PIP Name: PIP-41: Deploy Upgraded Compass EVM to the Upgraded Paloma Mainnet (messenger) and controlled by the upgraded Pigeon relayer network.
Status: Proposed
Author(s): @BoweryKing
Type: EVM Proposal
Discussions-to:
Created: 09/03/2023
Simple Summary
The Paloma Compass-EVM for pigeon requires an upgrade to prepare Compass-EVM for Gravity Bridge functionality that will allow Validators to use EVM pools to trade GRAINs. This upgrade will require a new deployment of the Compass-EVM contract to the Paloma Messenger
Mainnet. The old Compass-EVM will be abandoned by the flock and all user will need to update their contracts to use the newest address for Paloma’s compass-EVM.
Abstract
Paloma Compass-EVM is the arbitrary logic call contract that deploys to each supported EVM-chain on the Paloma network. The Compass-EVM manages arbitrary contract calls as well as bridge functionality secured by the Paloma validator set of Paloma validators. From time to time, the Compass-EVM undergoes upgrades for increased security and performance.
Motivation
Paloma is meant to monitor and deliver messages across multiple blockchains via its network of validator datacenters. We are relaunching deployment on EVM target chains with new upgrades the Pigeon relay messaging system with the new messenger
mainnet that comes with features required for the Paloma bridge to be fully functional.
Specification Overview
Technical Specification
- Run the governance command to deploy the smart contract to all evm chains
palomad tx gov submit-legacy-proposal evm propose-new-smart-contract '[JSON ABI BLOB]' [HEX BLOB] \
--title "Updated ABI - Vote to Deploy the new and improved Paloma CompassEVM to the Paloma Messenger Mainnet" \
--description "Updated ABI - PIP-41 Paloma Deploys a new Paloma CompassEVM on Paloma's Messenger mainnet to supported EVM Mainnet chains for Pigeons to send messages on EVM mainnet chains from the Paloma Mainnet." \
--deposit 10000000ugrain \
--fees 6000ugrain \
--gas auto \
--from=<From Paloma Address> \
--chain-id=messenger \
--yes sync
If the proposal passes, Compass EVM will be deployed to all existing and future supported EVM target chains.
Rationale
Compass EVM manages arbitrary contract calls as well as bridge functionality secured by the Paloma validator set. In order to send messages cross-chain securely, Compass EVM needs to be deployed. The new Compass-EVM will include new event emitters as well as new functions for blueprint ERC20 contracts that will be launched from Paloma and owned by the Paloma validator set.
The ‘[JSON ABI BLOB]’ [HEX BLOB] for proposal is outlined below is based on the commit hash: rename turnstone to compass (#25) · palomachain/compass-evm@6776efb · GitHub
'[{"name": "ValsetUpdated", "inputs": [{"name": "checkpoint", "type": "bytes32", "indexed": false}, {"name": "valset_id", "type": "uint256", "indexed": false}], "anonymous": false, "type": "event"}, {"name": "LogicCallEvent", "inputs": [{"name": "logic_contract_address", "type": "address", "indexed": false}, {"name": "payload", "type": "bytes", "indexed": false}, {"name": "message_id", "type": "uint256", "indexed": false}], "anonymous": false, "type": "event"}, {"name": "SendToPalomaEvent", "inputs": [{"name": "token", "type": "address", "indexed": false}, {"name": "sender", "type": "address", "indexed": false}, {"name": "receiver", "type": "string", "indexed": false}, {"name": "amount", "type": "uint256", "indexed": false}], "anonymous": false, "type": "event"}, {"name": "BatchSendEvent", "inputs": [{"name": "token", "type": "address", "indexed": false}, {"name": "message_id", "type": "uint256", "indexed": false}], "anonymous": false, "type": "event"}, {"name": "ERC20DeployedEvent", "inputs": [{"name": "paloma_denom", "type": "string", "indexed": false}, {"name": "token_contract", "type": "address", "indexed": false}, {"name": "name", "type": "string", "indexed": false}, {"name": "symbol", "type": "string", "indexed": false}, {"name": "decimals", "type": "uint8", "indexed": false}], "anonymous": false, "type": "event"}, {"stateMutability": "nonpayable", "type": "constructor", "inputs": [{"name": "compass_id", "type": "bytes32"}, {"name": "valset", "type": "tuple", "components": [{"name": "validators", "type": "address[]"}, {"name": "powers", "type": "uint256[]"}, {"name": "valset_id", "type": "uint256"}]}], "outputs": []}, {"stateMutability": "pure", "type": "function", "name": "compass_id", "inputs": [], "outputs": [{"name": "", "type": "bytes32"}]}, {"stateMutability": "nonpayable", "type": "function", "name": "update_valset", "inputs": [{"name": "consensus", "type": "tuple", "components": [{"name": "valset", "type": "tuple", "components": [{"name": "validators", "type": "address[]"}, {"name": "powers", "type": "uint256[]"}, {"name": "valset_id", "type": "uint256"}]}, {"name": "signatures", "type": "tuple[]", "components": [{"name": "v", "type": "uint256"}, {"name": "r", "type": "uint256"}, {"name": "s", "type": "uint256"}]}]}, {"name": "new_valset", "type": "tuple", "components": [{"name": "validators", "type": "address[]"}, {"name": "powers", "type": "uint256[]"}, {"name": "valset_id", "type": "uint256"}]}], "outputs": []}, {"stateMutability": "nonpayable", "type": "function", "name": "submit_logic_call", "inputs": [{"name": "consensus", "type": "tuple", "components": [{"name": "valset", "type": "tuple", "components": [{"name": "validators", "type": "address[]"}, {"name": "powers", "type": "uint256[]"}, {"name": "valset_id", "type": "uint256"}]}, {"name": "signatures", "type": "tuple[]", "components": [{"name": "v", "type": "uint256"}, {"name": "r", "type": "uint256"}, {"name": "s", "type": "uint256"}]}]}, {"name": "args", "type": "tuple", "components": [{"name": "logic_contract_address", "type": "address"}, {"name": "payload", "type": "bytes"}]}, {"name": "message_id", "type": "uint256"}, {"name": "deadline", "type": "uint256"}], "outputs": []}, {"stateMutability": "nonpayable", "type": "function", "name": "send_token_to_paloma", "inputs": [{"name": "token", "type": "address"}, {"name": "receiver", "type": "string"}, {"name": "amount", "type": "uint256"}], "outputs": []}, {"stateMutability": "nonpayable", "type": "function", "name": "submit_batch", "inputs": [{"name": "consensus", "type": "tuple", "components": [{"name": "valset", "type": "tuple", "components": [{"name": "validators", "type": "address[]"}, {"name": "powers", "type": "uint256[]"}, {"name": "valset_id", "type": "uint256"}]}, {"name": "signatures", "type": "tuple[]", "components": [{"name": "v", "type": "uint256"}, {"name": "r", "type": "uint256"}, {"name": "s", "type": "uint256"}]}]}, {"name": "token", "type": "address"}, {"name": "args", "type": "tuple", "components": [{"name": "receiver", "type": "address[]"}, {"name": "amount", "type": "uint256[]"}]}, {"name": "message_id", "type": "uint256"}, {"name": "deadline", "type": "uint256"}], "outputs": []}, {"stateMutability": "nonpayable", "type": "function", "name": "deploy_erc20", "inputs": [{"name": "_paloma_denom", "type": "string"}, {"name": "_name", "type": "string"}, {"name": "_symbol", "type": "string"}, {"name": "_decimals", "type": "uint8"}, {"name": "_blueprint", "type": "address"}], "outputs": []}, {"stateMutability": "view", "type": "function", "name": "last_checkpoint", "inputs": [], "outputs": [{"name": "", "type": "bytes32"}]}, {"stateMutability": "view", "type": "function", "name": "last_valset_id", "inputs": [], "outputs": [{"name": "", "type": "uint256"}]}, {"stateMutability": "view", "type": "function", "name": "message_id_used", "inputs": [{"name": "arg0", "type": "uint256"}], "outputs": [{"name": "", "type": "bool"}]}]' 0x6020611dbd600039600051602081611d9d016000396000518101610140602082611d9d0160003960005111611d9857602081611d9d01600039600051806040526000816101408111611d9857801561008357905b60208160051b6020860101611d9d016000396000518060a01c611d98578160051b60600152600101818118610053575b50505050602060208201611d9d016000396000518101610140602082611d9d0160003960005111611d9857602081611d9d016000396000518061286052602082018160051b8082611d9d016128803950505050602060408201611d9d01600039600051615080525034611d98576020611d9d60003960005161a200526040366150a03760006040516101408111611d9857801561018857905b8060051b606001516150e0526150a0516150c05161286051811015611d985760051b6128800151808201828110611d9857905090506150a05263aaaaaaaa6150a0511061016857610188565b6150c05160018101818110611d985790506150c05260010181811861011c575b505063aaaaaaaa6150a05110156101ff5760126150e0527f496e73756666696369656e7420506f7765720000000000000000000000000000615100526150e0506150e0518061510001601f826000031636823750506308c379a06150a05260206150c052601f19601f6150e05101166044016150bcfd5b63299018c261510452600460808061512452806151240160006040518083528060051b6000826101408111611d9857801561025357905b8060051b606001518160051b602088010152600101818118610236575b50508201602001915050905081019050806151445280615124016000612860518083528060051b6000826101408111611d985780156102ac57905b8060051b61288001518160051b60208801015260010181811861028e575b5050820160200191505090508101905061508051615164526020611d9d6000396000516151845201615100526151008051602082012090506150e0526150e051600055615080516001557f09d40458cf931745f8d532ef13fa9c74bfb7fe0edcee88e0a677b0cbef88f0f96150e0516151005261508051615120526040615100a1611a5861033f6187a839611a786187a8f36003361161000c57611514565b60003560e01c34611a46576384d38f2c811861003e5760043610611a46576020611a5860003960005160405260206040f35b63eadf4af78118610518576101e43610611a46576004356004018035810180358101610140813511611a465780358061cb40526000816101408111611a465780156100ab57905b8060051b6020850101358060a01c611a46578160051b61cb600152600101818118610085575b5050505060208101358101610140813511611a465780358061f36052602082018160051b808261f3803750505050604081013562011b80525060208101358101610140813511611a465780358062011ba0526020820160608202808262011bc037505050505060243560040180358101610140813511611a4657803580620193c0526000816101408111611a4657801561016857905b8060051b6020850101358060a01c611a46578160051b620193e00152600101818118610141575b5050505060208101358101610140813511611a46578035806201bbe052602082018160051b80826201bc00375050505060408101356201e400525062011b80516201e40051116102215760116201e420527f496e76616c69642056616c7365742049440000000000000000000000000000006201e440526201e420506201e42051806201e44001601f826000031636823750506308c379a06201e3e05260206201e40052601f19601f6201e4205101166044016201e3fcfd5b6040366201e420376000620193c0516101408111611a465780156102b857905b8060051b620193e001516201e460526201e420516201e440516201bbe051811015611a465760051b6201bc000151808201828110611a4657905090506201e4205263aaaaaaaa6201e4205110610296576102b8565b6201e4405160018101818110611a465790506201e44052600101818118610241575b505063aaaaaaaa6201e4205110156103395760126201e460527f496e73756666696369656e7420506f77657200000000000000000000000000006201e480526201e460506201e46051806201e48001601f826000031636823750506308c379a06201e4205260206201e44052601f19601f6201e4605101166044016201e43cfd5b61cb4051806040528060051b8060608261cb6060045afa50505061f3605180612860528060051b806128808261f38060045afa50505062011b8051615080526103846201e46061178d565b6201e4605160005418156104015760146201e480527f496e636f727265637420436865636b706f696e740000000000000000000000006201e4a0526201e480506201e48051806201e4a001601f826000031636823750506308c379a06201e4405260206201e46052601f19601f6201e4805101166044016201e45cfd5b620193c051806040528060051b80606082620193e060045afa5050506201bbe05180612860528060051b80612880826201bc0060045afa5050506201e40051615080526104506201e48061178d565b6201e480516201e4605261cb4051806101a0528060051b806101c08261cb6060045afa50505061f36051806129c0528060051b806129e08261f38060045afa50505062011b80516151e05262011ba051806152005260608102806152208262011bc060045afa5050506201e4605161ca20526104ca6115bd565b6201e460516000556201e400516001557f09d40458cf931745f8d532ef13fa9c74bfb7fe0edcee88e0a677b0cbef88f0f96201e460516201e480526201e400516201e4a05260406201e480a1005b631029ae6f81186109cb576101e43610611a46576004356004018035810180358101610140813511611a465780358061cb40526000816101408111611a4657801561058557905b8060051b6020850101358060a01c611a46578160051b61cb60015260010181811861055f575b5050505060208101358101610140813511611a465780358061f36052602082018160051b808261f3803750505050604081013562011b80525060208101358101610140813511611a465780358062011ba0526020820160608202808262011bc037505050505060243560040180358060a01c611a4657620193c05260208101358101615000813511611a4657803580620193e0526020820181816201940037505050506064354211156106a15760076201e400527f54696d656f7574000000000000000000000000000000000000000000000000006201e420526201e400506201e40051806201e42001601f826000031636823750506308c379a06201e3c05260206201e3e052601f19601f6201e4005101166044016201e3dcfd5b60026044356020526000526040600020541561072657600f6201e400527f55736564204d6573736167655f494400000000000000000000000000000000006201e420526201e400506201e40051806201e42001601f826000031636823750506308c379a06201e3c05260206201e3e052601f19601f6201e4005101166044016201e3dcfd5b6001600260443560205260005260406000205561cb4051806040528060051b8060608261cb6060045afa50505061f3605180612860528060051b806128808261f38060045afa50505062011b8051615080526107846201e40061178d565b6201e4005160005418156108015760146201e420527f496e636f727265637420436865636b706f696e740000000000000000000000006201e440526201e420506201e42051806201e44001601f826000031636823750506308c379a06201e3e05260206201e40052601f19601f6201e4205101166044016201e3fcfd5b63980721b26201e4245260046080806201e44452806201e444016040620193c0518252806020830152808201620193e051808252602082018181836201940060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190509050810190506044356201e464526020611a586000396000516201e484526064356201e4a452016201e420526201e4208051602082012090506201e4005261cb4051806101a0528060051b806101c08261cb6060045afa50505061f36051806129c0528060051b806129e08261f38060045afa50505062011b80516151e05262011ba051806152005260608102806152208262011bc060045afa5050506201e4005161ca205261091b6115bd565b620193e0600060008251602084016000620193c0515af19050610943573d600060003e3d6000fd5b7f0d2bd340033bb64fd086788e6685b480a9bf10b98d63e9b8073eb5d0bd6c6ee96060620193c0516201e42052806201e44052806201e42001620193e051808252602082018181836201940060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190506044356201e460526201e420a1005b63b39dcd5e8118610bb25760843610611a46576004358060a01c611a46576101e0526024356004016040813511611a465780358061020052602082018181610220375050506101e0516370a0823161028052306102a0526020610280602461029c845afa610a3e573d600060003e3d6000fd5b60203d10611a4657610280905051610260526101e051604052336060523060805260443560a052610a6d611877565b6101e0516370a0823161028052306102a0526020610280602461029c845afa610a9b573d600060003e3d6000fd5b60203d10611a465761028090505161026051808203828111611a4657905090506102605261026051610b2d57600d610280527f5a65726f205472616e73666572000000000000000000000000000000000000006102a0526102805061028051806102a001601f826000031636823750506308c379a061024052602061026052601f19601f61028051011660440161025cfd5b7f75a16dbdc936366f3b5b1a7aaabc5d7b28dcf94ce2eb5b3efbe0bce0da7ee66960806101e05161028052336102a052806102c0528061028001610200518082526020820181818361022060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190506044356102e052610280a1005b630ffc0bdb81186111b2576102243610611a46576004356004018035810180358101610140813511611a465780358061cb40526000816101408111611a46578015610c1f57905b8060051b6020850101358060a01c611a46578160051b61cb600152600101818118610bf9575b5050505060208101358101610140813511611a465780358061f36052602082018160051b808261f3803750505050604081013562011b80525060208101358101610140813511611a465780358062011ba0526020820160608202808262011bc03750505050506024358060a01c611a4657620193c052604435600401803581016040813511611a4657803580620193e05260008160408111611a46578015610cea57905b8060051b6020850101358060a01c611a46578160051b620194000152600101818118610cc3575b50505050602081013581016040813511611a465780358062019c0052602082018160051b808262019c20375050505050608435421115610d935760076201a420527f54696d656f7574000000000000000000000000000000000000000000000000006201a440526201a420506201a42051806201a44001601f826000031636823750506308c379a06201a3e05260206201a40052601f19601f6201a4205101166044016201a3fcfd5b600260643560205260005260406000205415610e1857600f6201a420527f55736564204d6573736167655f494400000000000000000000000000000000006201a440526201a420506201a42051806201a44001601f826000031636823750506308c379a06201a3e05260206201a40052601f19601f6201a4205101166044016201a3fcfd5b620193e0516201a4205262019c00516201a420511815610ea15760106201a440527f556e6d61746368656420506172616d73000000000000000000000000000000006201a460526201a440506201a44051806201a46001601f826000031636823750506308c379a06201a4005260206201a42052601f19601f6201a4405101166044016201a41cfd5b6001600260643560205260005260406000205561cb4051806040528060051b8060608261cb6060045afa50505061f3605180612860528060051b806128808261f38060045afa50505062011b805161508052610eff6201a44061178d565b6201a440516000541815610f7c5760146201a460527f496e636f727265637420436865636b706f696e740000000000000000000000006201a480526201a460506201a46051806201a48001601f826000031636823750506308c379a06201a4205260206201a44052601f19601f6201a4605101166044016201a43cfd5b63ecaa10b96201a46452600460a0620193c0516201a48452806201a4a452806201a4840160408082528082016000620193e0518083528060051b60008260408111611a46578015610fe857905b8060051b6201940001518160051b602088010152600101818118610fc9575b50508201602001915050905081019050806020830152808201600062019c00518083528060051b60008260408111611a4657801561104157905b8060051b62019c2001518160051b602088010152600101818118611022575b505082016020019150509050810190509050810190506064356201a4c4526020611a586000396000516201a4e4526084356201a50452016201a460526201a4608051602082012090506201a4405261cb4051806101a0528060051b806101c08261cb6060045afa50505061f36051806129c0528060051b806129e08261f38060045afa50505062011b80516151e05262011ba051806152005260608102806152208262011bc060045afa5050506201a4405161ca20526110ff6115bd565b60006040905b806201a460526201a420516201a460511061111f57611174565b620193c0516040526201a46051620193e051811015611a465760051b6201940001516060526201a4605162019c0051811015611a465760051b62019c200151608052611169611966565b600101818118611105575b50507fba199fb06e908b6eca45bc6e460f07d1888e4a0606361da80e679eac61d11103620193c0516201a460526064356201a4805260406201a460a1005b6308a92ad781186114a7576101043610611a46576004356004016040813511611a46578035806040526020820181816060375050506024356004016040813511611a465780358060a05260208201818160c0375050506044356004016020813511611a465780358061010052602082018035610120525050506064358060081c611a4657610140526084358060a01c611a465761016052303318156112b7576007610180527f496e76616c6964000000000000000000000000000000000000000000000000006101a0526101805061018051806101a001601f826000031636823750506308c379a061014052602061016052601f19601f61018051011660440161015cfd5b610160516080306101a0526101a0516101e0528061020052806101e00160a0518082526020820181818360c060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190508061022052806101e001610100518082526020820161012051815250508051806020830101601f82600003163682375050601f19601f82516020010116905081019050610140516101c0526101c051610240526003823b035960018212611a465781600382863c8181018381856101e060045afa5050828201816000f08015611a46579050905090509050610180527f7144f66490771d357f3d6d385605288e1579754e5555f2e01114a2945f394e5b60a0806101a052806101a00160405180825260208201818183606060045afa5050508051806020830101601f82600003163682375050601f19601f82516020010116905081019050610180516101c052806101e052806101a00160a0518082526020820181818360c060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190508061020052806101a001610100518082526020820161012051815250508051806020830101601f82600003163682375050601f19601f8251602001011690508101905061014051610220526101a0a1005b63a9a4a98381186114c65760043610611a465760005460405260206040f35b634da6ecc981186114e55760043610611a465760015460405260206040f35b6338d6172d81186115125760243610611a4657600260043560205260005260406000205460405260206040f35b505b60006000fd5b6000601c610100527f19457468657265756d205369676e6564204d6573736167653a0a333200000000610120526101008051602082018361016001815181525050808301925050506060518161016001526020810190508061014052610140905080516020820120905060e05260e051610100526080516101205260a0516101405260c0516101605260206000608061010060015afa5060005160405114815250565b60403661ca40376000615200516101408111611a4657801561171457905b6060810261522001805161ca8052602081015161caa052604081015161cac0525061ca8051156116f45761ca40516101a051811015611a465760051b6101c0015160405261ca205160605261ca805160805261caa05160a05261cac05160c05261164661cae061151a565b61cae0516116b457601161cb00527f496e76616c6964205369676e617475726500000000000000000000000000000061cb205261cb005061cb00518061cb2001601f826000031636823750506308c379a061cac052602061cae052601f19601f61cb0051011660440161cadcfd5b61ca605161ca40516129c051811015611a465760051b6129e00151808201828110611a46579050905061ca605263aaaaaaaa61ca6051106116f457611714565b61ca405160018101818110611a4657905061ca40526001018181186115db575b505063aaaaaaaa61ca6051101561178b57601261ca80527f496e73756666696369656e7420506f776572000000000000000000000000000061caa05261ca805061ca80518061caa001601f826000031636823750506308c379a061ca4052602061ca6052601f19601f61ca8051011660440161ca5cfd5b565b63299018c26150a45260046080806150c452806150c40160006040518083528060051b6000826101408111611a465780156117e157905b8060051b606001518160051b6020880101526001018181186117c4575b50508201602001915050905081019050806150e452806150c4016000612860518083528060051b6000826101408111611a4657801561183a57905b8060051b61288001518160051b60208801015260010181811861181c575b5050820160200191505090508101905061508051615104526020611a5860003960005161512452016150a0526150a0805160208201209050815250565b6323b872dd610104526004606051610124526080516101445260a05161016452606001610100526101005060206101c06101005161012060006040515af16118c4573d600060003e3d6000fd5b3d602081183d60201002186101a0526101a080518060c05260208201805160e05250505060c051156119645760e05160c05160200360031b1c611964576013610100527f5472616e7366657246726f6d206661696c6564000000000000000000000000006101205261010050610100518061012001601f826000031636823750506308c379a060c052602060e052601f19601f61010051011660440160dcfd5b565b63a9059cbb60e4526004606051610104526080516101245260400160e05260e050602061018060e05161010060006040515af16119a8573d600060003e3d6000fd5b3d602081183d60201002186101605261016080518060a05260208201805160c05250505060a05115611a445760c05160a05160200360031b1c611a4457601360e0527f5472616e7366657246726f6d206661696c6564000000000000000000000000006101005260e05060e0518061010001601f826000031636823750506308c379a060a052602060c052601f19601f60e051011660440160bcfd5b565b600080fda165767970657283000307000b005b600080fd