PIP Name: PIP-48: Deploy Paloma v1.10.0 Compass EVM Upgrade to the Upgraded Paloma Mainnet (messenger) and all active target chains.
Status: Proposed
Author(s): @LARRY
Type: EVM Proposal
Discussions-to:
Created: 11/15/2023
Simple Summary
Paloma v1.10 and Pigeon v1.10 require additional metadata from EVM transactions to be available for attestation by Paloma pigeons. 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 v1.10.0 and Pigeon v1.10.0 upgrades require no atttestation data from target EVM chains. 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
This upgrade includes new constructor inputs for the Event Nonce that is incremented when an event is emitted on the Compass-EVM light client.
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 "Paloma V1.10.0 and Pigeon v1.10.0 upgrades require new and improved Paloma CompassEVM to the Paloma Messenger Mainnet" \
--description "PIP-48: Deploy Paloma v1.10.0 Upgraded Compass EVM to the Upgraded Paloma Mainnet (messenger) and controlled by the upgraded Pigeon relayer network to all active chains" \
--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: optimize (#28) · palomachain/compass-evm@fd5659d · GitHub
[{"name": "ValsetUpdated", "inputs": [{"name": "checkpoint", "type": "bytes32", "indexed": false}, {"name": "valset_id", "type": "uint256", "indexed": false}, {"name": "event_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}, {"name": "event_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}, {"name": "event_id", "type": "uint256", "indexed": false}], "anonymous": false, "type": "event"}, {"name": "BatchSendEvent", "inputs": [{"name": "token", "type": "address", "indexed": false}, {"name": "batch_id", "type": "uint256", "indexed": false}, {"name": "event_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}, {"name": "event_id", "type": "uint256", "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": "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": "batch_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": "compass_id", "inputs": [], "outputs": [{"name": "", "type": "bytes32"}]}, {"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": "last_event_id", "inputs": [], "outputs": [{"name": "", "type": "uint256"}]}, {"stateMutability": "view", "type": "function", "name": "last_batch_id", "inputs": [{"name": "arg0", "type": "address"}], "outputs": [{"name": "", "type": "uint256"}]}, {"stateMutability": "view", "type": "function", "name": "message_id_used", "inputs": [{"name": "arg0", "type": "uint256"}], "outputs": [{"name": "", "type": "bool"}]}]0x616600515034610315576020611b7f5f395f51602081611b5f015f395f51810160c8602082611b5f015f395f511161031557602081611b5f015f395f515f8160c8811161031557801561007c57905b60208160051b6020860101611b5f015f395f518060a01c610315578160051b6060015260010181811861004e575b5050806040525050602060208201611b5f015f395f51810160c8602082611b5f015f395f511161031557602081611b5f015f395f5160208160051b018083611b5f0161196039505050602060408201611b5f0161328039506020611b5f5f395f51616600526040366132a0375f60405160c8811161031557801561015e57905b8060051b606001516132e0526132a0516132c051611960518110156103155760051b611980015180820182811061031557905090506132a05263aaaaaaaa6132a051106101485761015e565b60016132c051016132c0526001018181186100fc575b505063aaaaaaaa6132a05110156101d45760126132e0527f496e73756666696369656e7420506f7765720000000000000000000000000000613300526132e0506132e0518061330001601f825f031636823750506308c379a06132a05260206132c052601f19601f6132e05101166044016132bcfd5b63299018c26133045260046080806133245280613324015f6040518083528060051b5f8260c8811161031557801561022557905b8060051b606001518160051b602088010152600101818118610208575b50508201602001915050905081019050806133445280613324015f611960518083528060051b5f8260c8811161031557801561027b57905b8060051b61198001518160051b60208801015260010181811861025d575b505082016020019150509050810190506132805161336452616600516133845201613300526133008051602082012090506132e0526132e0515f5561328051600155620186a06002557fb7ca5e46e360950244488bf096bf742a1f63183cf1ee5b3b0c53045b6247bf5b6132e051613300526132805161332052620186a0613340526060613300a1611830610319614dd039611850614dd0f35b5f80fd5f3560e01c6002600c820660011b61181801601e395f51565b6384d38f2c81186114c7573461181457602061183060403960206040f36114c7565b63a9a4a98381186100555734611814575f5460405260206040f35b631029ae6f81186114c7576101e43610341761181457600435600401803581018035810160c88135116118145780355f8160c881116118145780156100bc57905b8060051b6020850101358060a01c611814578160051b6180600152600101818118610096575b5050806180405250506020810135810160c881351161181457803560208160051b01808361996037505050604081013561b28052506020810135810160c881351161181457803560206060820201808361b2a0375050505060243560040180358060a01c6118145761fdc05260208101358101612800813511611814576020813501808261fde0375050506064354211156101bf57600762012600527f54696d656f757400000000000000000000000000000000000000000000000000620126205262012600506201260051806201262001601f825f031636823750506308c379a0620125c0526020620125e052601f19601f62012600510116604401620125dcfd5b60046044356020525f5260405f20541561024157600f62012600527f55736564204d6573736167655f49440000000000000000000000000000000000620126205262012600506201260051806201262001601f825f031636823750506308c379a0620125c0526020620125e052601f19601f62012600510116604401620125dcfd5b600160046044356020525f5260405f2055613260604061326061804060045afa5061026e62012600611736565b62012600515f5418156102e957601462012620527f496e636f727265637420436865636b706f696e74000000000000000000000000620126405262012620506201262051806201264001601f825f031636823750506308c379a0620125e05260206201260052601f19601f62012620510116604401620125fcfd5b63980721b2620126245260046080806201264452806201264401604061fdc0518252806020830152808201602061fde0510180828261fde060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081019050905081019050604435620126645260206118306201268439606435620126a452016201262052620126208051602082012090506201260052617d806101a0617d8061804060045afa506201260051617f20526103a6611574565b61fdc0515a61fde05f5f8251602084015f8787f19050905090506103cc573d5f5f3e3d5ffd5b600160025401620126205262012620516002557f0594b174e11e17c2cb4d0d303c2125060bea4f4da113a4e79edce87465592d00608061fdc0516201264052806201266052806201264001602061fde0510180828261fde060045afa50508051806020830101601f825f03163682375050601f19601f8251602001011690508101905060443562012680526201262051620126a05262012640a1006114c7565b634da6ecc9811861048857346118145760015460405260206040f35b6338d6172d81186114c7576024361034176118145760046004356020525f5260405f205460405260206040f36114c7565b6319429b8d81186114c757346118145760025460405260206040f36114c7565b63fa822567811861051457602436103417611814576004358060a01c6118145760405260036040516020525f5260405f205460605260206060f35b63eadf4af781186114c7576101e43610341761181457600435600401803581018035810160c88135116118145780355f8160c8811161181457801561057b57905b8060051b6020850101358060a01c611814578160051b6180600152600101818118610555575b5050806180405250506020810135810160c881351161181457803560208160051b01808361996037505050604081013561b28052506020810135810160c881351161181457803560206060820201808361b2a037505050506024356004018035810160c88135116118145780355f8160c8811161181457801561062057905b8060051b6020850101358060a01c611814578160051b61fde001526001018181186105fa575b50508061fdc05250506020810135810160c881351161181457803560208160051b018083620116e037505050604081013562013000525061b280516201300051116106d357601162013020527f496e76616c69642056616c736574204944000000000000000000000000000000620130405262013020506201302051806201304001601f825f031636823750506308c379a062012fe05260206201300052601f19601f6201302051011660440162012ffcfd5b60403662013020375f61fdc05160c8811161181457801561075c57905b8060051b61fde00151620130605262013020516201304051620116e0518110156118145760051b6201170001518082018281106118145790509050620130205263aaaaaaaa6201302051106107445761075c565b600162013040510162013040526001018181186106f0575b505063aaaaaaaa620130205110156107dc57601262013060527f496e73756666696369656e7420506f7765720000000000000000000000000000620130805262013060506201306051806201308001601f825f031636823750506308c379a0620130205260206201304052601f19601f620130605101166044016201303cfd5b613260604061326061804060045afa506107f862013060611736565b62013060515f54181561087357601462013080527f496e636f727265637420436865636b706f696e74000000000000000000000000620130a0526201308050620130805180620130a001601f825f031636823750506308c379a0620130405260206201306052601f19601f620130805101166044016201305cfd5b613260604061326061fdc060045afa5061088f62013080611736565b62013080516201306052617d806101a0617d8061804060045afa506201306051617f20526108bb611574565b62013060515f556201300051600155600160025401620130805262013080516002557fb7ca5e46e360950244488bf096bf742a1f63183cf1ee5b3b0c53045b6247bf5b6201306051620130a0526201300051620130c0526201308051620130e0526060620130a0a1006114c7565b63b39dcd5e81186114c757608436103417611814576004358060a01c611814576040526024356004016040813511611814576020813501808260603750506040516370a0823160e0523061010052602060e0602460fc845afa61098e573d5f5f3e3d5ffd5b60203d106118145760e090505160c0526040516323b872dd60e0523361010052306101205260443561014052602060e0606460fc5f855af16109d2573d5f5f3e3d5ffd5b3d6109e957803b1561181457600161016052610a01565b60203d106118145760e0518060011c61181457610160525b610160905051610a70576007610180527f5446206661696c000000000000000000000000000000000000000000000000006101a0526101805061018051806101a001601f825f031636823750506308c379a061014052602061016052601f19601f61018051011660440161015cfd5b6040516370a0823160e0523061010052602060e0602460fc845afa610a97573d5f5f3e3d5ffd5b60203d106118145760e090505160c051808203828111611814579050905060c05260c051610b1d57600d60e0527f5a65726f205472616e73666572000000000000000000000000000000000000006101005260e05060e0518061010001601f825f031636823750506308c379a060a052602060c052601f19601f60e051011660440160bcfd5b60016002540160e05260e0516002557ffe15510abe06d325676e9b14cbd5ae05ee35422f1c0d5bfa734f3ccdcc23635c60a060405161010052336101205280610140528061010001602060605101808282606060045afa50508051806020830101601f825f03163682375050601f19601f825160200101169050810190506044356101605260e05161018052610100a1006114c7565b630ffc0bdb81186111e8576102243610341761181457600435600401803581018035810160c88135116118145780355f8160c88111611814578015610c1a57905b8060051b6020850101358060a01c611814578160051b6180600152600101818118610bf4575b5050806180405250506020810135810160c881351161181457803560208160051b01808361996037505050604081013561b28052506020810135810160c881351161181457803560206060820201808361b2a037505050506024358060a01c6118145761fdc0526044356004018035810160408135116118145780355f8160408111611814578015610cce57905b8060051b6020850101358060a01c611814578160051b61fe000152600101818118610ca8575b50508061fde052505060208101358101604081351161181457803560208160051b018083620106003750505050608435421115610d7357600762010e20527f54696d656f75740000000000000000000000000000000000000000000000000062010e405262010e205062010e20518062010e4001601f825f031636823750506308c379a062010de052602062010e0052601f19601f62010e2051011660440162010dfcfd5b606435600361fdc0516020525f5260405f205410610df957600e62010e20527f57726f6e6720626174636820696400000000000000000000000000000000000062010e405262010e205062010e20518062010e4001601f825f031636823750506308c379a062010de052602062010e0052601f19601f62010e2051011660440162010dfcfd5b61fde05162010e2052620106005162010e20511815610e8057601062010e40527f556e6d61746368656420506172616d730000000000000000000000000000000062010e605262010e405062010e40518062010e6001601f825f031636823750506308c379a062010e0052602062010e2052601f19601f62010e4051011660440162010e1cfd5b613260604061326061804060045afa50610e9c62010e40611736565b62010e40515f541815610f1757601462010e60527f496e636f727265637420436865636b706f696e7400000000000000000000000062010e805262010e605062010e60518062010e8001601f825f031636823750506308c379a062010e2052602062010e4052601f19601f62010e6051011660440162010e3cfd5b63ecaa10b962010e6452600460a061fdc05162010e84528062010ea4528062010e840160408082528082015f61fde0518083528060051b5f8260408111611814578015610f7e57905b8060051b61fe0001518160051b602088010152600101818118610f60575b505082016020019150509050810190508060208301528082015f62010600518083528060051b5f8260408111611814578015610fd557905b8060051b6201062001518160051b602088010152600101818118610fb6575b5050820160200191505090508101905090508101905060643562010ec452602061183062010ee43960843562010f04520162010e605262010e6080516020820120905062010e4052617d806101a0617d8061804060045afa5062010e4051617f205261103f611574565b5f6040905b8062010e605262010e205162010e60511061105e5761117b565b61fdc05163a9059cbb62010e805262010e605161fde0518110156118145760051b61fe00015162010ea05262010e605162010600518110156118145760051b62010620015162010ec052602062010e80604462010e9c5f855af16110c4573d5f5f3e3d5ffd5b3d6110dc57803b1561181457600162010ee0526110f7565b60203d106118145762010e80518060011c6118145762010ee0525b62010ee090505161117057600762010f00527f5472206661696c0000000000000000000000000000000000000000000000000062010f205262010f005062010f00518062010f2001601f825f031636823750506308c379a062010ec052602062010ee052601f19601f62010f0051011660440162010edcfd5b600101818118611044575b505060016002540162010e605262010e6051600255606435600361fdc0516020525f5260405f20557fe33c10972f01a4d59d918f9c60929137db01805dd24267065165bdfc75b13af061fdc05162010e805260643562010ea05262010e605162010ec052606062010e80a1005b6308a92ad781186114c75761010436103417611814576004356004016040813511611814576020813501808260403750506024356004016040813511611814576020813501808260a0375050604435600401602081351161181457602081350180826101003750506064358060081c61181457610140526084358060a01c6118145761016052303318156112db576007610180527f496e76616c6964000000000000000000000000000000000000000000000000006101a0526101805061018051806101a001601f825f031636823750506308c379a061014052602061016052601f19601f61018051011660440161015cfd5b610160516080306101a0526101a0516101e0528061020052806101e001602060a0510180828260a060045afa50508051806020830101601f825f03163682375050601f19601f825160200101169050810190508061022052806101e0016101005181526101205160208201528051806020830101601f825f03163682375050601f19601f82516020010116905081019050610140516101c0526101c051610240526003823b0359600182126118145781600382863c8181018381856101e060045afa5050828201815ff08015611814579050905090509050610180526001600254016101a0526101a0516002557f82fe3a4fa49c6382d0c085746698ddbbafe6c2bf61285b19410644b5b26287c760c0806101c052806101c001602060405101808282604060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081019050610180516101e0528061020052806101c001602060a0510180828260a060045afa50508051806020830101601f825f03163682375050601f19601f825160200101169050810190508061022052806101c0016101005181526101205160208201528051806020830101601f825f03163682375050601f19601f8251602001011690508101905061014051610240526101a051610260526101c0a1005b5f5ffd5b5f601c610100527f19457468657265756d205369676e6564204d6573736167653a0a333200000000610120526101008051602082018361016001815181525050808301925050506060518161016001526020810190508061014052610140905080516020820120905060e0525f6101805260e051610100526080516101205260a0516101405260c051610160526020610180608061010060015afa506101805160405114815250565b604036617f40375f6134005160c881116118145780156116be57905b60608102613420018051617f80526020810151617fa0526040810151617fc05250617f8051156116a857617f40516101a0518110156118145760051b6101c00151604052617f2051606052617f8051608052617fa05160a052617fc05160c0526115fb617fe06114cb565b617fe051611668576011618000527f496e76616c6964205369676e61747572650000000000000000000000000000006180205261800050618000518061802001601f825f031636823750506308c379a0617fc0526020617fe052601f19601f618000510116604401617fdcfd5b617f6051617f4051611ac0518110156118145760051b611ae001518082018281106118145790509050617f605263aaaaaaaa617f6051106116a8576116be565b6001617f405101617f4052600101818118611590575b505063aaaaaaaa617f60511015611734576012617f80527f496e73756666696369656e7420506f7765720000000000000000000000000000617fa052617f8050617f805180617fa001601f825f031636823750506308c379a0617f40526020617f6052601f19601f617f80510116604401617f5cfd5b565b63299018c26132a45260046080806132c452806132c4015f6040518083528060051b5f8260c8811161181457801561178757905b8060051b606001518160051b60208801015260010181811861176a575b50508201602001915050905081019050806132e452806132c4015f611960518083528060051b5f8260c881116118145780156117dd57905b8060051b61198001518160051b6020880101526001018181186117bf575b505082016020019150509050810190506132805161330452602061183061332439016132a0526132a0805160208201209050815250565b5f80fd14c714c70929003a14c7046c14c704d9001804b914c70bb3841918308118181820a16576797065728300030a0016