Technical details

Technical details

Technical details

New smart contracts

The Panther Protocol will be extended with the following newly deployed smart contracts:

On the Ethereum mainnet:

at 0x39ed49B3cEA4796E669f2542a41B876646c1BBe7: AdvancedStakeV2ActionMsgTranslator

On the Polygon network:

  • at 0x7f076D64055E19d0f9E84160748c6c3CED9c28aC: AdvancedStakeV2ActionMsgTranslator

Existing smart contract affected or involved

The proposal transactions will involve the following pre-existing smart contracts:

On the Ethereum mainnet:

  • at 0x505796f5bc290269d2522cf19135ad7aa60dfd77: DAO_Multisig

  • at 0xf4d06d72dACdD8393FA4eA72FdcC10049711F899: Staking

  • at 0x347a58878D04951588741d4d16d54B742c7f60fC: RewardMaster

  • at 0xFED599513aB078Edea7Cf46574154f92b0B9FCAB: AdvancedStakeRewardAdviserAndMsgSender

  • at 0x909E34d3f6124C324ac83DccA84b74398a6fa173: ZKPToken

  • at 0xb476104aa9D1f30180a01987FB09b1e96dDCF14B: VestingPools

  • at 0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2: FxRoot

  • at 0x4A4FC40d2475f493EcA3Ec436b924237AA1b0a76: MaticBridgeModule

  • at 0x4e59b44847b379578588920cA78FbF26c0B4956C: DeterministicDeploymentProxy (github.com/Arachnid/deterministic-deployment-proxy

On the Polygon network:

Transactions

This proposal initiates the execution of several blockchain transactions. These transactions have been pre-encoded during the submission of the proposal to snapshot.org and can be independently verified using the snapshot.org web interface.

Batch 1 transaction 1

Deploy the AdvancedStakeV2ActionMsgTranslator on the Polygon network by invoking the DeterministicDeploymentProxy on the Polygon Network. The transaction will initiate a call to FxRoot on the Ethereum mainnet, which will bridge the contract bytecode to the Polygon network through the MaticBridgeModule:FxRoot@eth::sendMessageToChild(0x4A4FC40d2475f493EcA3Ec436b924237AA1b0a76, 0x0000000000000000000000004e59b44847b379578588920ca78fbf26c0b4956c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000005248484806d0109ded292adb1e26b7422b1a421b02e037a04defec1d1ac2d98413660a060405234801561001057600080fd5b506040516104e43803806104e483398101604081905261002f91610089565b6001600160a01b0381166100785760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b604482015260640160405180910390fd5b6001600160a01b03166080526100b9565b60006020828403121561009b57600080fd5b81516001600160a01b03811681146100b257600080fd5b9392505050565b6080516104096100db6000396000818161010101526101af01526104096000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e9cb032414610030575b600080fd5b61004361003e3660046102cc565b6100be565b6040516100b59190600060a08201905073ffffffffffffffffffffffffffffffffffffffff80845116835260208401516bffffffffffffffffffffffff808216602086015282604087015116604086015280606087015116606086015250508060808501511660808401525092915050565b60405180910390f35b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091523373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101735760405162461bcd60e51b815260206004820152601160248201527f414d543a20756e617574686f72697a656400000000000000000000000000000060448201526064015b60405180910390fd5b63e6ab1cdf60e01b6001600160e01b031984160161022457604051630dc3282360e11b815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690631b865046906101ed906319932b9d60e31b90869060040161039d565b600060405180830381600087803b15801561020757600080fd5b505af115801561021b573d6000803e3d6000fd5b50505050610284565b6001600160e01b03198316636a8ecb8160e01b146102845760405162461bcd60e51b815260206004820152601760248201527f414d543a20756e737570706f7274656420616374696f6e000000000000000000604482015260640161016a565b506040805160a08101825260008082526020820181905291810182905260608101829052608081019190915292915050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156102df57600080fd5b82356001600160e01b0319811681146102f757600080fd5b9150602083013567ffffffffffffffff8082111561031457600080fd5b818501915085601f83011261032857600080fd5b81358181111561033a5761033a6102b6565b604051601f8201601f19908116603f01168101908382118183101715610362576103626102b6565b8160405282815288602084870101111561037b57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b63ffffffff60e01b8316815260006020604081840152835180604085015260005b818110156103da578581018301518582016060015282016103be565b506000606082860101526060601f19601f83011685010192505050939250505056fea164736f6c6343000810000a00000000000000000000000009220dd0c342ee92c333faa6879984d63b4dff0300000000000000000000000000000000000000000000000000000000)

Batch 2 transaction 1

Deploy the AdvancedStakeV2ActionMsgTranslator on the Ethereum mainnet using the DeterministicDeploymentProxy:DeterministicDeploymentProxy@eth::call( 0x8484806d0109ded292adb1e26b7422b1a421b02e037a04defec1d1ac2d98413660a060405234801561001057600080fd5b506040516104e43803806104e483398101604081905261002f91610089565b6001600160a01b0381166100785760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b604482015260640160405180910390fd5b6001600160a01b03166080526100b9565b60006020828403121561009b57600080fd5b81516001600160a01b03811681146100b257600080fd5b9392505050565b6080516104096100db6000396000818161010101526101af01526104096000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e9cb032414610030575b600080fd5b61004361003e3660046102cc565b6100be565b6040516100b59190600060a08201905073ffffffffffffffffffffffffffffffffffffffff80845116835260208401516bffffffffffffffffffffffff808216602086015282604087015116604086015280606087015116606086015250508060808501511660808401525092915050565b60405180910390f35b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091523373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101735760405162461bcd60e51b815260206004820152601160248201527f414d543a20756e617574686f72697a656400000000000000000000000000000060448201526064015b60405180910390fd5b63e6ab1cdf60e01b6001600160e01b031984160161022457604051630dc3282360e11b815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690631b865046906101ed906319932b9d60e31b90869060040161039d565b600060405180830381600087803b15801561020757600080fd5b505af115801561021b573d6000803e3d6000fd5b50505050610284565b6001600160e01b03198316636a8ecb8160e01b146102845760405162461bcd60e51b815260206004820152601760248201527f414d543a20756e737570706f7274656420616374696f6e000000000000000000604482015260640161016a565b506040805160a08101825260008082526020820181905291810182905260608101829052608081019190915292915050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156102df57600080fd5b82356001600160e01b0319811681146102f757600080fd5b9150602083013567ffffffffffffffff8082111561031457600080fd5b818501915085601f83011261032857600080fd5b81358181111561033a5761033a6102b6565b604051601f8201601f19908116603f01168101908382118183101715610362576103626102b6565b8160405282815288602084870101111561037b57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b63ffffffff60e01b8316815260006020604081840152835180604085015260005b818110156103da578581018301518582016060015282016103be565b506000606082860101526060601f19601f83011685010192505050939250505056fea164736f6c6343000810000a000000000000000000000000347a58878d04951588741d4d16d54b742c7f60fc )

Batch 2 transaction 2…5

Configure the Staking and AdvancedStakeRewardAdviserAndMsgSender contracts on the Ethereum mainnet to work with the newly deployed AdvancedStakeV2ActionMsgTranslator:RewardMaster@eth::addRewardAdviser( “0xf4d06d72dACdD8393FA4eA72FdcC10049711F899”, “0x1954e321”, “0x39ed49B3cEA4796E669f2542a41B876646c1BBe7”)RewardMaster@eth::addRewardAdviser( “0xf4d06d72dACdD8393FA4eA72FdcC10049711F899”, “0x6a8ecb81”, “0x39ed49B3cEA4796E669f2542a41B876646c1BBe7”)RewardMaster@eth::addRewardAdviser( “0x39ed49B3cEA4796E669f2542a41B876646c1BBe7”, “0xcc995ce8”, “0xFED599513aB078Edea7Cf46574154f92b0B9FCAB”)RewardMaster@eth::addRewardAdviser( “0x39ed49B3cEA4796E669f2542a41B876646c1BBe7”, “0xb8372e55”, “0xFED599513aB078Edea7Cf46574154f92b0B9FCAB”)

Batch 2 transaction 6

Enable Advanced Stakes V2 on the Ethereum mainnet from Thursday, April 6, 2023, at 6:00:00 PM UTC until Tuesday, August 22, 2023, at 12:00:00 PM UTC, with a lock period of 60 days:Staking@eth::addTerms( “0x8496de05”, [true,true,1000,0,1680804000,1692705600,0,0,5184000])

Batch 3

Configure the Staking and AdvancedStakeRewardAdviserAndMsgSender contracts on the Polygon network to interact with the newly deployed AdvancedStakeV2ActionMsgTranslator.FxRoot@eth::sendMessageToChild( 0x4A4FC40d2475f493EcA3Ec436b924237AA1b0a76, 0x00000000000000000000000009220dd0c342ee92c333faa6879984d63b4dff03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000006499ff97360000000000000000000000004cec451f63dbe47d9da2debe2b734e4cb4000eac1954e321000000000000000000000000000000000000000000000000000000000000000000000000000000007f076d64055e19d0f9e84160748c6c3ced9c28ac00000000000000000000000000000000000000000000000000000000)FxRoot@eth::sendMessageToChild( 0x4A4FC40d2475f493EcA3Ec436b924237AA1b0a76, 0x00000000000000000000000009220dd0c342ee92c333faa6879984d63b4dff03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017000000000000000000000000000000000000000000000000000000000000006499ff97360000000000000000000000004cec451f63dbe47d9da2debe2b734e4cb4000eac6a8ecb81000000000000000000000000000000000000000000000000000000000000000000000000000000007f076d64055e19d0f9e84160748c6c3ced9c28ac00000000000000000000000000000000000000000000000000000000)FxRoot@eth::sendMessageToChild( 0x4A4FC40d2475f493EcA3Ec436b924237AA1b0a76, 0x00000000000000000000000009220dd0c342ee92c333faa6879984d63b4dff03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000006499ff97360000000000000000000000007f076d64055e19d0f9e84160748c6c3ced9c28accc995ce8000000000000000000000000000000000000000000000000000000000000000000000000000000008f15a43961c27c74cb4f55234a78802401614de300000000000000000000000000000000000000000000000000000000)FxRoot@eth::sendMessageToChild( 0x4A4FC40d2475f493EcA3Ec436b924237AA1b0a76, 0x00000000000000000000000009220dd0c342ee92c333faa6879984d63b4dff03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000006499ff97360000000000000000000000007f076d64055e19d0f9e84160748c6c3ced9c28acb8372e55000000000000000000000000000000000000000000000000000000000000000000000000000000008f15a43961c27c74cb4f55234a78802401614de300000000000000000000000000000000000000000000000000000000)FxRoot@eth::sendMessageToChild calls on the Ethereum network represents encoded transactions that will trigger the corresponding calls on the Polygon network. This is done through the bridging mechanism provided by the MaticBridgeModule. Once the transactions are executed on the Ethereum network, they will be relayed to the Polygon network, where they will be decoded and executed as the intended calls. The transactions mentioned above represent the following calls on the Polygon network:RewardMaster@matic::addRewardAdviser( “0x4cEc451F63DBE47D9dA2DeBE2B734E4CB4000Eac”, “0x1954e321”, “0x7f076D64055E19d0f9E84160748c6c3CED9c28aC”)RewardMaster@matic::addRewardAdviser( “0x4cEc451F63DBE47D9dA2DeBE2B734E4CB4000Eac”, “0x6a8ecb81”, “0x7f076D64055E19d0f9E84160748c6c3CED9c28aC”)RewardMaster@matic::addRewardAdviser( “0x7f076D64055E19d0f9E84160748c6c3CED9c28aC”, “0xcc995ce8”, “0x8f15a43961c27C74CB4F55234A78802401614de3”)RewardMaster@matic::addRewardAdviser( “0x7f076D64055E19d0f9E84160748c6c3CED9c28aC”, “0xb8372e55”, “0x8f15a43961c27C74CB4F55234A78802401614de3”)

Batch 3 transaction 5

Enable advanced stakes V2 on Polygon starting from Thursday, April 6, 2023 at 6:00:00 PM UTC until Tuesday, August 22, 2023 at 12:00:00 PM UTC, with a lock period of 60 days:FxRoot@eth::sendMessageToChild( 0x4A4FC40d2475f493EcA3Ec436b924237AA1b0a76, 0x0000000000000000000000004cec451f63dbe47d9da2debe2b734e4cb4000eac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000001445391dff58496de05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000642f08a00000000000000000000000000000000000000000000000000000000064e4a3400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004f1a0000000000000000000000000000000000000000000000000000000000)The transaction will call FxRoot on the mainnet to bridge the following configuration data to the Polygon network through MaticBridgeModule:Staking@matic::addTerms( “0x8496de05”, [true,true,1000,0,1680804000,1692705600,0,0,5184000])

Batch 3 transaction 6

Update the advanced staking reward parameters by changing the end time to Tuesday, August 22, 2023 at 4:00:00 PM GMT:FxRoot@eth::sendMessageToChild( 0x4A4FC40d2475f493EcA3Ec436b924237AA1b0a76, 0x0000000000000000000000008f15a43961c27c74cb4f55234a78802401614de3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b0000000000000000000000000000000000000000000000000000000000000084bfa6946000000000000000000000000000000000000000000000000000000000639226200000000000000000000000000000000000000000000000000000000064e4db80000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000)The transaction will invoke the FxRoot on the mainnet to facilitate the transfer of the following configuration call across the Polygon bridge:AdvancedStakeRewardController@matic::updateRewardParams( [1670522400,1692720000,15,15] )

Batch 4 transaction 1

Transfer ZKP reward to the community member for executing the PIP-11:ZKPToken@eth::transfer( “0xE1B583De9cB37196031b771686734a31ec365768”, “2000000000000000000000”)

Batch 4 transaction 2…3

Add and configure a 100,000 $ZKP Vesting Pool designated for Community Deployment rewards:VestingPools@eth::addVestingPools( [“0x505796f5bc290269d2522cf19135ad7aa60dfd77”], [[false,true,1683450000,1,100000000000,100000000000,0]])VestingPools@eth::updatePoolTime(18, 1681732800, 1)

Last updated