PIP-41: Deploy Upgraded Compass EVM to the Upgraded Paloma Mainnet (messenger) and controlled by the upgraded Pigeon relayer network

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

  1. 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