From 956d6ce5f1690661d2f1c8a41d78e46b5505fa60 Mon Sep 17 00:00:00 2001 From: BkChoy Date: Thu, 5 Dec 2024 03:53:32 -0500 Subject: [PATCH] tt --- .openzeppelin/mainnet.json | 625 +++++++ .openzeppelin/unknown-1088.json | 1561 +++++++++++++++++ contracts/metisStaking/L2Transmitter.sol | 6 +- deployments/mainnet.json | 16 + deployments/metis.json | 39 +- hardhat.config.ts | 12 +- .../1-deploy-metis-staking-l2.ts | 4 +- .../2-deploy-metis-staking-l1.ts | 12 +- .../99-transfer-ownership-l2.ts | 24 + .../999-transfer-ownership-l1.ts | 18 + scripts/prod/1.0.0-metis-staking/t.ts | 48 + 11 files changed, 2339 insertions(+), 26 deletions(-) create mode 100644 scripts/prod/1.0.0-metis-staking/99-transfer-ownership-l2.ts create mode 100644 scripts/prod/1.0.0-metis-staking/999-transfer-ownership-l1.ts create mode 100644 scripts/prod/1.0.0-metis-staking/t.ts diff --git a/.openzeppelin/mainnet.json b/.openzeppelin/mainnet.json index 65794920..ab3a7c37 100644 --- a/.openzeppelin/mainnet.json +++ b/.openzeppelin/mainnet.json @@ -124,6 +124,16 @@ "address": "0xAc12290b097f6893322F5430627e472131fBC1B5", "txHash": "0xc6872c8c1121511a8eff4730bf0c3419c9461e231170b6b74d8cba8778af6fcd", "kind": "uups" + }, + { + "address": "0x93c3d7039743f0a8cdB6D3e240f07153F2B52Ef1", + "txHash": "0x6a687219cf18c253fae0b80e4fb109db449dbb5fa3400fb0dc321dab7e3a51c2", + "kind": "uups" + }, + { + "address": "0x5e2A7B992769E43D4E76a4bB92de9c0532F25Cde", + "txHash": "0xa20e100161964021ee3a4c569c2a244d2d6a67cfd63b62ad32d4e3e88ac9aa79", + "kind": "uups" } ], "impls": { @@ -9704,6 +9714,621 @@ } } } + }, + "7000ce39e715bb4f4f5b11d848042029636579053e3c32dc3dee398ac249b3fe": { + "address": "0x9CBB383D2Db695aBBCbb37D4ff15949F5490C394", + "txHash": "0xc5cacbaa17c802a59381ca0aaaa2c39cde20862b8a5d00a5ffd15eefb48c5cb4", + "layout": { + "solcVersion": "0.8.15", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "151", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "token", + "offset": 0, + "slot": "201", + "type": "t_contract(IERC20Upgradeable)882", + "contract": "SequencerVault", + "src": "contracts/metisStaking/SequencerVault.sol:22" + }, + { + "label": "vaultController", + "offset": 0, + "slot": "202", + "type": "t_contract(IL1Strategy)4173", + "contract": "SequencerVault", + "src": "contracts/metisStaking/SequencerVault.sol:24" + }, + { + "label": "lockingPool", + "offset": 0, + "slot": "203", + "type": "t_contract(IMetisLockingPool)4278", + "contract": "SequencerVault", + "src": "contracts/metisStaking/SequencerVault.sol:26" + }, + { + "label": "pubkey", + "offset": 0, + "slot": "204", + "type": "t_bytes_storage", + "contract": "SequencerVault", + "src": "contracts/metisStaking/SequencerVault.sol:29" + }, + { + "label": "signer", + "offset": 0, + "slot": "205", + "type": "t_address", + "contract": "SequencerVault", + "src": "contracts/metisStaking/SequencerVault.sol:31" + }, + { + "label": "seqId", + "offset": 0, + "slot": "206", + "type": "t_uint256", + "contract": "SequencerVault", + "src": "contracts/metisStaking/SequencerVault.sol:33" + }, + { + "label": "rewardsReceiver", + "offset": 0, + "slot": "207", + "type": "t_address", + "contract": "SequencerVault", + "src": "contracts/metisStaking/SequencerVault.sol:36" + }, + { + "label": "trackedTotalDeposits", + "offset": 0, + "slot": "208", + "type": "t_uint128", + "contract": "SequencerVault", + "src": "contracts/metisStaking/SequencerVault.sol:38" + }, + { + "label": "lastWithdrawalBatchId", + "offset": 16, + "slot": "208", + "type": "t_uint64", + "contract": "SequencerVault", + "src": "contracts/metisStaking/SequencerVault.sol:41" + }, + { + "label": "exitDelayEndTime", + "offset": 24, + "slot": "208", + "type": "t_uint64", + "contract": "SequencerVault", + "src": "contracts/metisStaking/SequencerVault.sol:43" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes_storage": { + "label": "bytes", + "numberOfBytes": "32" + }, + "t_contract(IERC20Upgradeable)882": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_contract(IL1Strategy)4173": { + "label": "contract IL1Strategy", + "numberOfBytes": "20" + }, + "t_contract(IMetisLockingPool)4278": { + "label": "contract IMetisLockingPool", + "numberOfBytes": "20" + }, + "t_uint128": { + "label": "uint128", + "numberOfBytes": "16" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "namespaces": {} + } + }, + "147b696485a2995a6327cc5c29d9c79090e0979d8ccd137cc58e56d1acf8ba15": { + "address": "0xD6999c1dCb675Ae5568931BB0CFca0c4f4Fe21Ca", + "txHash": "0xaa688439a9e20abc3f9747a4f807d725b6035101681d050bfe3e4fe48bbb530a", + "layout": { + "solcVersion": "0.8.15", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "151", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "token", + "offset": 0, + "slot": "201", + "type": "t_contract(IERC20Upgradeable)3982", + "contract": "L1Strategy", + "src": "contracts/metisStaking/L1Strategy.sol:21" + }, + { + "label": "l1Transmitter", + "offset": 0, + "slot": "202", + "type": "t_address", + "contract": "L1Strategy", + "src": "contracts/metisStaking/L1Strategy.sol:23" + }, + { + "label": "lockingInfo", + "offset": 0, + "slot": "203", + "type": "t_contract(IMetisLockingInfo)29675", + "contract": "L1Strategy", + "src": "contracts/metisStaking/L1Strategy.sol:26" + }, + { + "label": "rewardRecipient", + "offset": 0, + "slot": "204", + "type": "t_address", + "contract": "L1Strategy", + "src": "contracts/metisStaking/L1Strategy.sol:29" + }, + { + "label": "minRewardsToClaim", + "offset": 0, + "slot": "205", + "type": "t_uint256", + "contract": "L1Strategy", + "src": "contracts/metisStaking/L1Strategy.sol:31" + }, + { + "label": "vaultImplementation", + "offset": 0, + "slot": "206", + "type": "t_address", + "contract": "L1Strategy", + "src": "contracts/metisStaking/L1Strategy.sol:34" + }, + { + "label": "vaults", + "offset": 0, + "slot": "207", + "type": "t_array(t_contract(ISequencerVault)29854)dyn_storage", + "contract": "L1Strategy", + "src": "contracts/metisStaking/L1Strategy.sol:36" + }, + { + "label": "totalDeposits", + "offset": 0, + "slot": "208", + "type": "t_uint256", + "contract": "L1Strategy", + "src": "contracts/metisStaking/L1Strategy.sol:39" + }, + { + "label": "totalQueuedTokens", + "offset": 0, + "slot": "209", + "type": "t_uint256", + "contract": "L1Strategy", + "src": "contracts/metisStaking/L1Strategy.sol:41" + }, + { + "label": "operatorRewardPercentage", + "offset": 0, + "slot": "210", + "type": "t_uint256", + "contract": "L1Strategy", + "src": "contracts/metisStaking/L1Strategy.sol:44" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_contract(ISequencerVault)29854)dyn_storage": { + "label": "contract ISequencerVault[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IERC20Upgradeable)3982": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_contract(IMetisLockingInfo)29675": { + "label": "contract IMetisLockingInfo", + "numberOfBytes": "20" + }, + "t_contract(ISequencerVault)29854": { + "label": "contract ISequencerVault", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "namespaces": {} + } + }, + "6274d4af51845c5458d68b07f272575edc924f668c25a19bfa0f6152c91f1e8e": { + "address": "0xB1abE6Ddc78cAeC754b690cC499E5fC8496B1063", + "txHash": "0x97a343c969b5366cbe0c2b3d13a44bdc3cd477a54fcc17edbfae68f63a137198", + "layout": { + "solcVersion": "0.8.15", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "151", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "i_router", + "offset": 0, + "slot": "201", + "type": "t_address", + "contract": "CCIPReceiverUpgradeable", + "src": "contracts/core/ccip/base/CCIPReceiverUpgradeable.sol:20" + }, + { + "label": "metisToken", + "offset": 0, + "slot": "202", + "type": "t_contract(IERC20Upgradeable)3982", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:23" + }, + { + "label": "depositController", + "offset": 0, + "slot": "203", + "type": "t_address", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:26" + }, + { + "label": "l1Strategy", + "offset": 0, + "slot": "204", + "type": "t_contract(IL1Strategy)29597", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:29" + }, + { + "label": "l2Transmitter", + "offset": 0, + "slot": "205", + "type": "t_address", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:31" + }, + { + "label": "l1StandardBridge", + "offset": 0, + "slot": "206", + "type": "t_contract(IL1StandardBridge)29514", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:34" + }, + { + "label": "l1StandardBridgeGasOracle", + "offset": 0, + "slot": "207", + "type": "t_contract(IL1StandardBridgeGasOracle)29527", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:36" + }, + { + "label": "l2ChainId", + "offset": 0, + "slot": "208", + "type": "t_uint256", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:38" + }, + { + "label": "l2MetisToken", + "offset": 0, + "slot": "209", + "type": "t_address", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:40" + }, + { + "label": "l2ChainSelector", + "offset": 20, + "slot": "209", + "type": "t_uint64", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:43" + }, + { + "label": "extraArgs", + "offset": 0, + "slot": "210", + "type": "t_bytes_storage", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:45" + }, + { + "label": "depositsSinceLastUpdate", + "offset": 0, + "slot": "211", + "type": "t_uint256", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:48" + }, + { + "label": "queuedWithdrawals", + "offset": 0, + "slot": "212", + "type": "t_uint256", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:50" + }, + { + "label": "minWithdrawalThreshold", + "offset": 0, + "slot": "213", + "type": "t_uint256", + "contract": "L1Transmitter", + "src": "contracts/metisStaking/L1Transmitter.sol:52" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes_storage": { + "label": "bytes", + "numberOfBytes": "32" + }, + "t_contract(IERC20Upgradeable)3982": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_contract(IL1StandardBridge)29514": { + "label": "contract IL1StandardBridge", + "numberOfBytes": "20" + }, + "t_contract(IL1StandardBridgeGasOracle)29527": { + "label": "contract IL1StandardBridgeGasOracle", + "numberOfBytes": "20" + }, + "t_contract(IL1Strategy)29597": { + "label": "contract IL1Strategy", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "namespaces": {} + } } } } diff --git a/.openzeppelin/unknown-1088.json b/.openzeppelin/unknown-1088.json index ae4303a5..27875cc3 100644 --- a/.openzeppelin/unknown-1088.json +++ b/.openzeppelin/unknown-1088.json @@ -5,6 +5,36 @@ "address": "0x8d87CBD8C3632b7ef117A15F8100943a23b7D03b", "txHash": "0xd3d2f739832ccda859262506bca8eb9e4a0bd0fb744c7b47100a15f4cd702af2", "kind": "uups" + }, + { + "address": "0x19282e0365a5b90c9864446448E29465A9d226Eb", + "txHash": "0xb83132d83a52507362f83474a7c7962b0ba9c7867e74c58ac7fcd5cdae6ddb79", + "kind": "uups" + }, + { + "address": "0xbEF37783DC468050722db5053F19E1cC91C80E3b", + "txHash": "0x72125b09ba652b6866b23ad15067287c0c9e8a084e5d97ca2acc3b59028c6dda", + "kind": "uups" + }, + { + "address": "0xa68285a07F683a447775E19D50a06Cd6748a4fAe", + "txHash": "0x40ecb2c22a1e6c4c1c8bc76d279b1123f17ec77bc921ed9fdb1c409a7333eb71", + "kind": "uups" + }, + { + "address": "0xfb8256CFCeeAcfb4835a3EbF47EBEa2902e30567", + "txHash": "0xf48b41e9abc7f6d6d1fb690f72a30a9db93e721511f0fbffc8e83fb743b412f0", + "kind": "uups" + }, + { + "address": "0xc4bAf9Df7Da0dB146D8AeDEe447246ed47b4c2E4", + "txHash": "0xbfc60cd3bf3bdc41787460a89933b8141d66fbb2d49e42e749024b2b3e3d583d", + "kind": "uups" + }, + { + "address": "0xb72d8F5213b3E52FAf13Aa074b03C4788e78349F", + "txHash": "0xc826e1d8bbdeb88e505ec91ca0edcdc7e8da74a64ffb570f9167587939a1dc89", + "kind": "uups" } ], "impls": { @@ -172,6 +202,1537 @@ }, "namespaces": {} } + }, + "b574d44de9402e56846a30c27e29033ea38aced6901d037d919bc157f3d3afcb": { + "address": "0x5e2A7B992769E43D4E76a4bB92de9c0532F25Cde", + "txHash": "0xf0e540d60ab995af3ca99a4095dd581dd536fea159d42c5b6cdfaa17af39a4cb", + "layout": { + "solcVersion": "0.8.15", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_balances", + "offset": 0, + "slot": "51", + "type": "t_mapping(t_address,t_uint256)", + "contract": "ERC20Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol:40" + }, + { + "label": "_allowances", + "offset": 0, + "slot": "52", + "type": "t_mapping(t_address,t_mapping(t_address,t_uint256))", + "contract": "ERC20Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol:42" + }, + { + "label": "_totalSupply", + "offset": 0, + "slot": "53", + "type": "t_uint256", + "contract": "ERC20Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol:44" + }, + { + "label": "_name", + "offset": 0, + "slot": "54", + "type": "t_string_storage", + "contract": "ERC20Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol:46" + }, + { + "label": "_symbol", + "offset": 0, + "slot": "55", + "type": "t_string_storage", + "contract": "ERC20Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol:47" + }, + { + "label": "__gap", + "offset": 0, + "slot": "56", + "type": "t_array(t_uint256)45_storage", + "contract": "ERC20Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol:376" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "151", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "_owner", + "offset": 0, + "slot": "201", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "202", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "token", + "offset": 0, + "slot": "251", + "type": "t_contract(IERC20Upgradeable)3938", + "contract": "StakingRewardsPool", + "src": "contracts/core/base/StakingRewardsPool.sol:19" + }, + { + "label": "shares", + "offset": 0, + "slot": "252", + "type": "t_mapping(t_address,t_uint256)", + "contract": "StakingRewardsPool", + "src": "contracts/core/base/StakingRewardsPool.sol:22" + }, + { + "label": "totalShares", + "offset": 0, + "slot": "253", + "type": "t_uint256", + "contract": "StakingRewardsPool", + "src": "contracts/core/base/StakingRewardsPool.sol:24" + }, + { + "label": "strategies", + "offset": 0, + "slot": "254", + "type": "t_array(t_address)dyn_storage", + "contract": "StakingPool", + "src": "contracts/core/StakingPool.sol:25" + }, + { + "label": "totalStaked", + "offset": 0, + "slot": "255", + "type": "t_uint256", + "contract": "StakingPool", + "src": "contracts/core/StakingPool.sol:27" + }, + { + "label": "unusedDepositLimit", + "offset": 0, + "slot": "256", + "type": "t_uint256", + "contract": "StakingPool", + "src": "contracts/core/StakingPool.sol:29" + }, + { + "label": "fees", + "offset": 0, + "slot": "257", + "type": "t_array(t_struct(Fee)8853_storage)dyn_storage", + "contract": "StakingPool", + "src": "contracts/core/StakingPool.sol:32" + }, + { + "label": "priorityPool", + "offset": 0, + "slot": "258", + "type": "t_address", + "contract": "StakingPool", + "src": "contracts/core/StakingPool.sol:35" + }, + { + "label": "rebaseController", + "offset": 0, + "slot": "259", + "type": "t_address", + "contract": "StakingPool", + "src": "contracts/core/StakingPool.sol:37" + }, + { + "label": "poolIndex", + "offset": 20, + "slot": "259", + "type": "t_uint16", + "contract": "StakingPool", + "src": "contracts/core/StakingPool.sol:38" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_address)dyn_storage": { + "label": "address[]", + "numberOfBytes": "32" + }, + "t_array(t_struct(Fee)8853_storage)dyn_storage": { + "label": "struct StakingPool.Fee[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)45_storage": { + "label": "uint256[45]", + "numberOfBytes": "1440" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IERC20Upgradeable)3938": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_mapping(t_address,t_uint256))": { + "label": "mapping(address => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(Fee)8853_storage": { + "label": "struct StakingPool.Fee", + "members": [ + { + "label": "receiver", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "basisPoints", + "type": "t_uint256", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint16": { + "label": "uint16", + "numberOfBytes": "2" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "namespaces": {} + } + }, + "3293f1e73ae69beef4541275f6a6b3069fce9b89d028486eae7b31156d8eb24c": { + "address": "0xBd4D051E786F368596b464e992D5b45b039492D7", + "txHash": "0xa2c53a9dc137205876b919af7d7f596699a1504ae08c562d2102050ea54ba754", + "layout": { + "solcVersion": "0.8.15", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "151", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "_paused", + "offset": 0, + "slot": "201", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "202", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:116" + }, + { + "label": "token", + "offset": 0, + "slot": "251", + "type": "t_contract(IERC20Upgradeable)3938", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:31" + }, + { + "label": "stakingPool", + "offset": 0, + "slot": "252", + "type": "t_contract(IStakingPool)11883", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:33" + }, + { + "label": "sdlPool", + "offset": 0, + "slot": "253", + "type": "t_contract(ISDLPool)11694", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:35" + }, + { + "label": "distributionOracle", + "offset": 0, + "slot": "254", + "type": "t_address", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:37" + }, + { + "label": "queueDepositMin", + "offset": 0, + "slot": "255", + "type": "t_uint128", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:40" + }, + { + "label": "queueDepositMax", + "offset": 16, + "slot": "255", + "type": "t_uint128", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:42" + }, + { + "label": "poolStatus", + "offset": 0, + "slot": "256", + "type": "t_enum(PoolStatus)13759", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:44" + }, + { + "label": "merkleRoot", + "offset": 0, + "slot": "257", + "type": "t_bytes32", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:47" + }, + { + "label": "ipfsHash", + "offset": 0, + "slot": "258", + "type": "t_bytes32", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:49" + }, + { + "label": "merkleTreeSize", + "offset": 0, + "slot": "259", + "type": "t_uint256", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:51" + }, + { + "label": "totalQueued", + "offset": 0, + "slot": "260", + "type": "t_uint256", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:54" + }, + { + "label": "depositsSinceLastUpdate", + "offset": 0, + "slot": "261", + "type": "t_uint256", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:56" + }, + { + "label": "sharesSinceLastUpdate", + "offset": 0, + "slot": "262", + "type": "t_uint256", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:58" + }, + { + "label": "accounts", + "offset": 0, + "slot": "263", + "type": "t_array(t_address)dyn_storage", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:61" + }, + { + "label": "accountIndexes", + "offset": 0, + "slot": "264", + "type": "t_mapping(t_address,t_uint256)", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:63" + }, + { + "label": "accountQueuedTokens", + "offset": 0, + "slot": "265", + "type": "t_mapping(t_address,t_uint256)", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:65" + }, + { + "label": "accountClaimed", + "offset": 0, + "slot": "266", + "type": "t_mapping(t_address,t_uint256)", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:67" + }, + { + "label": "accountSharesClaimed", + "offset": 0, + "slot": "267", + "type": "t_mapping(t_address,t_uint256)", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:69" + }, + { + "label": "rebaseController", + "offset": 0, + "slot": "268", + "type": "t_address", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:72" + }, + { + "label": "withdrawalPool", + "offset": 0, + "slot": "269", + "type": "t_contract(IWithdrawalPool)12031", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:75" + }, + { + "label": "allowInstantWithdrawals", + "offset": 20, + "slot": "269", + "type": "t_bool", + "contract": "PriorityPool", + "src": "contracts/core/priorityPool/PriorityPool.sol:77" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_address)dyn_storage": { + "label": "address[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IERC20Upgradeable)3938": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_contract(ISDLPool)11694": { + "label": "contract ISDLPool", + "numberOfBytes": "20" + }, + "t_contract(IStakingPool)11883": { + "label": "contract IStakingPool", + "numberOfBytes": "20" + }, + "t_contract(IWithdrawalPool)12031": { + "label": "contract IWithdrawalPool", + "numberOfBytes": "20" + }, + "t_enum(PoolStatus)13759": { + "label": "enum PriorityPool.PoolStatus", + "members": [ + "OPEN", + "DRAINING", + "CLOSED" + ], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_uint128": { + "label": "uint128", + "numberOfBytes": "16" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "namespaces": {} + } + }, + "45b5d8e97a5d524610449b2b65bdd39157eaf984222baabe0ba84aa80725b8cb": { + "address": "0x2D19e588f8CaDC2E036F7158a6A7A099524e87cd", + "txHash": "0x3dd015b6cb779c552b3b53733c81ecea9d24f1fe3a9c5656916a2c3e9e899c37", + "layout": { + "solcVersion": "0.8.15", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "151", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "token", + "offset": 0, + "slot": "201", + "type": "t_contract(IERC20Upgradeable)3938", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:37" + }, + { + "label": "lst", + "offset": 0, + "slot": "202", + "type": "t_contract(IERC20Upgradeable)3938", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:39" + }, + { + "label": "priorityPool", + "offset": 0, + "slot": "203", + "type": "t_contract(IPriorityPool)11598", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:41" + }, + { + "label": "queuedWithdrawals", + "offset": 0, + "slot": "204", + "type": "t_array(t_struct(Withdrawal)15689_storage)dyn_storage", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:44" + }, + { + "label": "queuedWithdrawalsByAccount", + "offset": 0, + "slot": "205", + "type": "t_mapping(t_address,t_array(t_uint256)dyn_storage)", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:46" + }, + { + "label": "withdrawalOwners", + "offset": 0, + "slot": "206", + "type": "t_mapping(t_uint256,t_address)", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:48" + }, + { + "label": "totalQueuedShareWithdrawals", + "offset": 0, + "slot": "207", + "type": "t_uint256", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:51" + }, + { + "label": "indexOfNextWithdrawal", + "offset": 0, + "slot": "208", + "type": "t_uint256", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:53" + }, + { + "label": "withdrawalBatches", + "offset": 0, + "slot": "209", + "type": "t_array(t_struct(WithdrawalBatch)15694_storage)dyn_storage", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:56" + }, + { + "label": "withdrawalBatchIdCutoff", + "offset": 0, + "slot": "210", + "type": "t_uint128", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:58" + }, + { + "label": "withdrawalIdCutoff", + "offset": 16, + "slot": "210", + "type": "t_uint128", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:60" + }, + { + "label": "minWithdrawalAmount", + "offset": 0, + "slot": "211", + "type": "t_uint256", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:63" + }, + { + "label": "minTimeBetweenWithdrawals", + "offset": 0, + "slot": "212", + "type": "t_uint64", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:66" + }, + { + "label": "timeOfLastWithdrawal", + "offset": 8, + "slot": "212", + "type": "t_uint64", + "contract": "WithdrawalPool", + "src": "contracts/core/priorityPool/WithdrawalPool.sol:68" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_struct(Withdrawal)15689_storage)dyn_storage": { + "label": "struct WithdrawalPool.Withdrawal[]", + "numberOfBytes": "32" + }, + "t_array(t_struct(WithdrawalBatch)15694_storage)dyn_storage": { + "label": "struct WithdrawalPool.WithdrawalBatch[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IERC20Upgradeable)3938": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_contract(IPriorityPool)11598": { + "label": "contract IPriorityPool", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_array(t_uint256)dyn_storage)": { + "label": "mapping(address => uint256[])", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_address)": { + "label": "mapping(uint256 => address)", + "numberOfBytes": "32" + }, + "t_struct(Withdrawal)15689_storage": { + "label": "struct WithdrawalPool.Withdrawal", + "members": [ + { + "label": "sharesRemaining", + "type": "t_uint128", + "offset": 0, + "slot": "0" + }, + { + "label": "partiallyWithdrawableAmount", + "type": "t_uint128", + "offset": 16, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_struct(WithdrawalBatch)15694_storage": { + "label": "struct WithdrawalPool.WithdrawalBatch", + "members": [ + { + "label": "indexOfLastWithdrawal", + "type": "t_uint128", + "offset": 0, + "slot": "0" + }, + { + "label": "stakePerShares", + "type": "t_uint128", + "offset": 16, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_uint128": { + "label": "uint128", + "numberOfBytes": "16" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "namespaces": {} + } + }, + "92136ae23382a6264540a88d928a9355450db6cc2004af2a98d45f9469c7aba1": { + "address": "0x88D89A8B037e9df1A750415826C16e9841Be9F9a", + "txHash": "0xd6189ac7b4c651bf679a6626bc9a6a4d8c255f1cdfc74aeb8eb76bc6ab341d97", + "layout": { + "solcVersion": "0.8.15", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "151", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "token", + "offset": 0, + "slot": "201", + "type": "t_contract(IERC20Upgradeable)3938", + "contract": "Strategy", + "src": "contracts/core/base/Strategy.sol:17" + }, + { + "label": "stakingPool", + "offset": 0, + "slot": "202", + "type": "t_contract(IStakingPool)11883", + "contract": "Strategy", + "src": "contracts/core/base/Strategy.sol:18" + }, + { + "label": "l2Transmitter", + "offset": 0, + "slot": "203", + "type": "t_address", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:23" + }, + { + "label": "maxDeposits", + "offset": 0, + "slot": "204", + "type": "t_uint256", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:26" + }, + { + "label": "fees", + "offset": 0, + "slot": "205", + "type": "t_array(t_struct(Fee)26150_storage)dyn_storage", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:28" + }, + { + "label": "totalDeposits", + "offset": 0, + "slot": "206", + "type": "t_uint256", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:31" + }, + { + "label": "totalQueuedTokens", + "offset": 0, + "slot": "207", + "type": "t_uint256", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:33" + }, + { + "label": "l1TotalDeposits", + "offset": 0, + "slot": "208", + "type": "t_uint256", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:36" + }, + { + "label": "tokensInTransitToL1", + "offset": 0, + "slot": "209", + "type": "t_uint256", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:38" + }, + { + "label": "tokensInTransitFromL1", + "offset": 0, + "slot": "210", + "type": "t_uint256", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:40" + }, + { + "label": "operatorRewardsToMint", + "offset": 0, + "slot": "211", + "type": "t_uint256", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:43" + }, + { + "label": "totalOperatorRewardShares", + "offset": 0, + "slot": "212", + "type": "t_uint256", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:45" + }, + { + "label": "operatorRewardShares", + "offset": 0, + "slot": "213", + "type": "t_mapping(t_address,t_uint256)", + "contract": "L2Strategy", + "src": "contracts/metisStaking/L2Strategy.sol:47" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_struct(Fee)26150_storage)dyn_storage": { + "label": "struct L2Strategy.Fee[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IERC20Upgradeable)3938": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_contract(IStakingPool)11883": { + "label": "contract IStakingPool", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_struct(Fee)26150_storage": { + "label": "struct L2Strategy.Fee", + "members": [ + { + "label": "receiver", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "basisPoints", + "type": "t_uint256", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "namespaces": {} + } + }, + "4e8cc7c889d4fea536ea0d18161c96fc385e604ead97c57edc0613b520c6ad36": { + "address": "0xDD0c427D8A4a59e1D99EC2e9B69C6ABF85ec21e5", + "txHash": "0xd6b58d5b5dd0ec91c95fe9fc87c8e5e3b0a84ede75c8caab4ce66ec3670658d5", + "layout": { + "solcVersion": "0.8.15", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "151", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "i_router", + "offset": 0, + "slot": "201", + "type": "t_address", + "contract": "CCIPReceiverUpgradeable", + "src": "contracts/core/ccip/base/CCIPReceiverUpgradeable.sol:20" + }, + { + "label": "metisToken", + "offset": 0, + "slot": "202", + "type": "t_contract(IERC20Upgradeable)3938", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:25" + }, + { + "label": "withdrawalPool", + "offset": 0, + "slot": "203", + "type": "t_contract(IWithdrawalPool)12031", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:28" + }, + { + "label": "l2Strategy", + "offset": 0, + "slot": "204", + "type": "t_contract(IL2Strategy)27846", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:31" + }, + { + "label": "l2StandardBridge", + "offset": 0, + "slot": "205", + "type": "t_contract(IL2StandardBridge)27800", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:33" + }, + { + "label": "l2StandardBridgeGasOracle", + "offset": 0, + "slot": "206", + "type": "t_contract(IL2StandardBridgeGasOracle)27808", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:35" + }, + { + "label": "l1Transmitter", + "offset": 0, + "slot": "207", + "type": "t_address", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:37" + }, + { + "label": "minDepositThreshold", + "offset": 0, + "slot": "208", + "type": "t_uint256", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:40" + }, + { + "label": "minTimeBetweenUpdates", + "offset": 0, + "slot": "209", + "type": "t_uint64", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:43" + }, + { + "label": "timeOfLastUpdate", + "offset": 8, + "slot": "209", + "type": "t_uint64", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:45" + }, + { + "label": "l1ChainSelector", + "offset": 16, + "slot": "209", + "type": "t_uint64", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:48" + }, + { + "label": "extraArgs", + "offset": 0, + "slot": "210", + "type": "t_bytes_storage", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:50" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes_storage": { + "label": "bytes", + "numberOfBytes": "32" + }, + "t_contract(IERC20Upgradeable)3938": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_contract(IL2StandardBridge)27800": { + "label": "contract IL2StandardBridge", + "numberOfBytes": "20" + }, + "t_contract(IL2StandardBridgeGasOracle)27808": { + "label": "contract IL2StandardBridgeGasOracle", + "numberOfBytes": "20" + }, + "t_contract(IL2Strategy)27846": { + "label": "contract IL2Strategy", + "numberOfBytes": "20" + }, + "t_contract(IWithdrawalPool)12031": { + "label": "contract IWithdrawalPool", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "namespaces": {} + } + }, + "92f0fde7302c313c53c08663687f3f46ca1339f5edb1d667ffab5ce3cf60eb0f": { + "address": "0x0cb8044f84E7463B35354bB697488ad3d4F5356F", + "txHash": "0xdcc9a36349fa3c47df45c8924d1b86987ff281831352abc30e015ce7f4ee3c31", + "layout": { + "solcVersion": "0.8.15", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "151", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "i_router", + "offset": 0, + "slot": "201", + "type": "t_address", + "contract": "CCIPReceiverUpgradeable", + "src": "contracts/core/ccip/base/CCIPReceiverUpgradeable.sol:20" + }, + { + "label": "metisToken", + "offset": 0, + "slot": "202", + "type": "t_contract(IERC20Upgradeable)1002", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:25" + }, + { + "label": "withdrawalPool", + "offset": 0, + "slot": "203", + "type": "t_contract(IWithdrawalPool)2994", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:28" + }, + { + "label": "l2Strategy", + "offset": 0, + "slot": "204", + "type": "t_contract(IL2Strategy)3736", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:31" + }, + { + "label": "l2StandardBridge", + "offset": 0, + "slot": "205", + "type": "t_contract(IL2StandardBridge)3690", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:33" + }, + { + "label": "l2StandardBridgeGasOracle", + "offset": 0, + "slot": "206", + "type": "t_contract(IL2StandardBridgeGasOracle)3698", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:35" + }, + { + "label": "l1Transmitter", + "offset": 0, + "slot": "207", + "type": "t_address", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:37" + }, + { + "label": "minDepositThreshold", + "offset": 0, + "slot": "208", + "type": "t_uint256", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:40" + }, + { + "label": "minTimeBetweenUpdates", + "offset": 0, + "slot": "209", + "type": "t_uint64", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:43" + }, + { + "label": "timeOfLastUpdate", + "offset": 8, + "slot": "209", + "type": "t_uint64", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:45" + }, + { + "label": "l1ChainSelector", + "offset": 16, + "slot": "209", + "type": "t_uint64", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:48" + }, + { + "label": "extraArgs", + "offset": 0, + "slot": "210", + "type": "t_bytes_storage", + "contract": "L2Transmitter", + "src": "contracts/metisStaking/L2Transmitter.sol:50" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes_storage": { + "label": "bytes", + "numberOfBytes": "32" + }, + "t_contract(IERC20Upgradeable)1002": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_contract(IL2StandardBridge)3690": { + "label": "contract IL2StandardBridge", + "numberOfBytes": "20" + }, + "t_contract(IL2StandardBridgeGasOracle)3698": { + "label": "contract IL2StandardBridgeGasOracle", + "numberOfBytes": "20" + }, + "t_contract(IL2Strategy)3736": { + "label": "contract IL2Strategy", + "numberOfBytes": "20" + }, + "t_contract(IWithdrawalPool)2994": { + "label": "contract IWithdrawalPool", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "namespaces": {} + } } } } diff --git a/contracts/metisStaking/L2Transmitter.sol b/contracts/metisStaking/L2Transmitter.sol index b925a01a..a0cb1201 100644 --- a/contracts/metisStaking/L2Transmitter.sol +++ b/contracts/metisStaking/L2Transmitter.sol @@ -157,12 +157,12 @@ contract L2Transmitter is UUPSUpgradeable, OwnableUpgradeable, CCIPReceiverUpgra * @return fee in native token **/ function getExecuteUpdateFee() external view returns (uint256) { - uint256 depositFee = l2StandardBridgeGasOracle.minErc20BridgeCost(); + uint256 bridgeFee = l2StandardBridgeGasOracle.minErc20BridgeCost(); Client.EVM2AnyMessage memory evm2AnyMessage = _buildCCIPMessage(type(uint256).max); - uint256 withdrawalFee = IRouterClient(getRouter()).getFee(l1ChainSelector, evm2AnyMessage); + uint256 ccipFee = IRouterClient(getRouter()).getFee(l1ChainSelector, evm2AnyMessage); - return MathUpgradeable.max(depositFee, withdrawalFee); + return bridgeFee + ccipFee; } /** diff --git a/deployments/mainnet.json b/deployments/mainnet.json index 5d7fd1e3..975b239f 100644 --- a/deployments/mainnet.json +++ b/deployments/mainnet.json @@ -174,5 +174,21 @@ "stLINK_WrappedTokenBridge": { "address": "0x6C1E2D2c55C83De945e3f37dF694cdE8452C1E82", "artifact": "WrappedTokenBridge" + }, + "METIS_L1Strategy": { + "address": "0x93c3d7039743f0a8cdB6D3e240f07153F2B52Ef1", + "artifact": "L1Strategy" + }, + "METIS_L1Transmitter": { + "address": "0x5e2A7B992769E43D4E76a4bB92de9c0532F25Cde", + "artifact": "L1Transmitter" + }, + "wstMETIS_SDLRewardsPool": { + "address": "0x19282e0365a5b90c9864446448E29465A9d226Eb", + "artifact": "RewardsPool" + }, + "METIS_WrappedSDToken": { + "address": "0xd7cf0e0fC12fB97e03841CE4f3086dB327CE0F2B", + "artifact": "WrappedSDToken" } } diff --git a/deployments/metis.json b/deployments/metis.json index ba16868b..ff383985 100644 --- a/deployments/metis.json +++ b/deployments/metis.json @@ -1,13 +1,30 @@ { - "METISToken": { - "address": "0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000", - "artifact": "@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20" - } + "METISToken": { + "address": "0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000", + "artifact": "@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20" + }, + "METIS_StakingPool": { + "address": "0x19282e0365a5b90c9864446448E29465A9d226Eb", + "artifact": "StakingPool" + }, + "METIS_L2Strategy": { + "address": "0xfb8256CFCeeAcfb4835a3EbF47EBEa2902e30567", + "artifact": "L2Strategy" + }, + "METIS_L2Transmitter": { + "address": "0xc4bAf9Df7Da0dB146D8AeDEe447246ed47b4c2E4", + "artifact": "L2Transmitter" + }, + "METIS_PriorityPool": { + "address": "0xbEF37783DC468050722db5053F19E1cC91C80E3b", + "artifact": "PriorityPool" + }, + "METIS_WithdrawalPool": { + "address": "0xa68285a07F683a447775E19D50a06Cd6748a4fAe", + "artifact": "WithdrawalPool" + }, + "METIS_WrappedSDToken": { + "address": "0x7F89e4A071136f8E3Ec12D8F87793Dc84038C054", + "artifact": "WrappedSDToken" + } } - - - - - - - diff --git a/hardhat.config.ts b/hardhat.config.ts index 3e13080a..561931fa 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -3,10 +3,11 @@ import '@nomicfoundation/hardhat-toolbox' import '@nomicfoundation/hardhat-ledger' import '@openzeppelin/hardhat-upgrades' -export const ledgerAccount = '0x23c4602e63ACfe29b930c530B19d44a84AF0d767' +export const ledgerAccount = '0x43975fe745cB4171E15ceEd5d8D05A3502e0e87B' const balance = '100000000000000000000000' const accounts = [ + 'f94a316b776d40462fe47bf4b97903c5e5b51db4c86b58cbac7a7128d675e817', 'c3381a96fa2be2aae2f2798e0887272e634417710aa09ecad9328754cdc8db8a', //0x11187eff852069a33d102476b2E8A9cc9167dAde '33a3d35ee3408a701f0ff775390ede800f728562ed656ec0036f9e4fd96e7d5b', //0x2228bdc8584595DfefA75597C96B13c00a2D88C2 'fd52fbad9cb1258e30e6f83d1f2ecb2f6702887c1444d968133f41f3edb3f566', //0x33375555d73620FefD26cD083c425759a259FA18 @@ -39,12 +40,12 @@ const config: HardhatUserConfig = { accounts, }, mainnet: { - url: '', - ledgerAccounts: [ledgerAccount], + url: 'https://1rpc.io/eth', + accounts, }, metis: { - url: '', - ledgerAccounts: [ledgerAccount], + url: 'https://andromeda.metis.io/?owner=1088', + accounts, }, testnet: { url: '', @@ -61,6 +62,7 @@ const config: HardhatUserConfig = { }, etherscan: { apiKey: { + mainnet: 'GV3837YRY145BWPQEQEI4WVHTEQVMWTW1X', metis: 'metis', }, customChains: [ diff --git a/scripts/prod/1.0.0-metis-staking/1-deploy-metis-staking-l2.ts b/scripts/prod/1.0.0-metis-staking/1-deploy-metis-staking-l2.ts index 9e9fb500..9d0f332a 100644 --- a/scripts/prod/1.0.0-metis-staking/1-deploy-metis-staking-l2.ts +++ b/scripts/prod/1.0.0-metis-staking/1-deploy-metis-staking-l2.ts @@ -1,7 +1,7 @@ import { ethers } from 'hardhat' import { ERC20, PriorityPool, StakingPool } from '../../../typechain-types' import { updateDeployments, deploy, getContract, deployUpgradeable } from '../../utils/deployment' -import { toEther, switchNetwork } from '../../utils/helpers' +import { toEther } from '../../utils/helpers' import { L2Strategy } from '../../../typechain-types/contracts/metisStaking/L2Strategy' // Wrapped stMETIS @@ -49,8 +49,6 @@ const L2TransmitterArgs = { } async function main() { - await switchNetwork(1088, '') - const metisToken = (await getContract('METISToken', true)) as ERC20 const stakingPool = (await deployUpgradeable( diff --git a/scripts/prod/1.0.0-metis-staking/2-deploy-metis-staking-l1.ts b/scripts/prod/1.0.0-metis-staking/2-deploy-metis-staking-l1.ts index d18c9fe1..9b3b5fa5 100644 --- a/scripts/prod/1.0.0-metis-staking/2-deploy-metis-staking-l1.ts +++ b/scripts/prod/1.0.0-metis-staking/2-deploy-metis-staking-l1.ts @@ -7,8 +7,9 @@ import { } from '../../utils/deployment' import { L1Strategy } from '../../../typechain-types/contracts/metisStaking/L1Strategy' import { toEther } from '../../utils/helpers' +import { ethers } from 'hardhat' -const l2Transmitter = '' +const l2Transmitter = '0xc4bAf9Df7Da0dB146D8AeDEe447246ed47b4c2E4' // wstMETIS const wstMETISArgs = { @@ -24,7 +25,7 @@ const L1StrategyArgs = { } // L1Transmitter const L1TransmitterArgs = { - depositController: '', // address authorized to deposit queued tokens + depositController: '0x43975fe745cB4171E15ceEd5d8D05A3502e0e87B', // address authorized to deposit queued tokens l1StandardBridge: '0x3980c9ed79d2c191A89E02Fa3529C60eD6e9c04b', // address of the L1 standard bridge l1StandardBridgeGasOracle: '0x7f6B0b7589febc40419a8646EFf9801b87397063', // address of MVM_DiscountOracle l2ChainId: '1088', // chain id of L2 @@ -32,7 +33,8 @@ const L1TransmitterArgs = { minWithdrawalThreshold: toEther(200), // must exceed this amount of withdrawable tokens to withdraw to L2 ccipRouter: '0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D', // address of CCIP router l2ChainSelector: '8805746078405598895', // CCIP chain selector for L2 - extraArgs: '', // extra args for outgoing CCIP messages + extraArgs: + '0x97a657c9' + ethers.AbiCoder.defaultAbiCoder().encode(['uint256'], [500000]).slice(2), // extra args for CCIP messaging } async function main() { @@ -44,7 +46,7 @@ async function main() { [wstMETISArgs.name, wstMETISArgs.symbol, wstMETISArgs.decimals, 0], true ) - console.log('METIS_WrappedSDToken deployed: ', await wrappedSDToken.getAddress()) + console.log('METIS_WrappedSDToken deployed: ', wrappedSDToken.target) const vaultImpAddress = (await deployImplementation('SequencerVault', true)) as string console.log('SequencerVault implementation deployed: ', vaultImpAddress) @@ -96,11 +98,13 @@ async function main() { METIS_L1Strategy: l1Strategy.target.toString(), METIS_L1Transmitter: l1Transmitter.target, wstMETIS_SDLRewardsPool: wstMetisSDLRewardsPool.target, + METIS_WrappedSDToken: wrappedSDToken.target, }, { METIS_L1Strategy: 'L1Strategy', METIS_L1Transmitter: 'L1Transmitter', wstMETIS_SDLRewardsPool: 'RewardsPool', + METIS_WrappedSDToken: 'WrappedSDToken', } ) } diff --git a/scripts/prod/1.0.0-metis-staking/99-transfer-ownership-l2.ts b/scripts/prod/1.0.0-metis-staking/99-transfer-ownership-l2.ts new file mode 100644 index 00000000..84900aff --- /dev/null +++ b/scripts/prod/1.0.0-metis-staking/99-transfer-ownership-l2.ts @@ -0,0 +1,24 @@ +import { getContract } from '../../utils/deployment' + +const owner = '0x43975fe745cB4171E15ceEd5d8D05A3502e0e87B' + +async function main() { + const stakingPool = await getContract('METIS_StakingPool') + const l2Strategy = await getContract('METIS_L2Strategy') + const l2Transmitter = await getContract('METIS_L2Transmitter') + const pp = await getContract('METIS_PriorityPool') + const wp = await getContract('METIS_WithdrawalPool') + + await (await stakingPool.transferOwnership(owner)).wait() + await (await l2Strategy.transferOwnership(owner)).wait() + await (await l2Transmitter.transferOwnership(owner)).wait() + await (await pp.transferOwnership(owner)).wait() + await (await wp.transferOwnership(owner)).wait() +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) diff --git a/scripts/prod/1.0.0-metis-staking/999-transfer-ownership-l1.ts b/scripts/prod/1.0.0-metis-staking/999-transfer-ownership-l1.ts new file mode 100644 index 00000000..b8cdbd7f --- /dev/null +++ b/scripts/prod/1.0.0-metis-staking/999-transfer-ownership-l1.ts @@ -0,0 +1,18 @@ +import { getContract } from '../../utils/deployment' + +const owner = '0x43975fe745cB4171E15ceEd5d8D05A3502e0e87B' + +async function main() { + const l1Strategy = await getContract('METIS_L1Strategy') + const l1Transmitter = await getContract('METIS_L1Transmitter') + + await (await l1Strategy.transferOwnership(owner)).wait() + await (await l1Transmitter.transferOwnership(owner)).wait() +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) diff --git a/scripts/prod/1.0.0-metis-staking/t.ts b/scripts/prod/1.0.0-metis-staking/t.ts new file mode 100644 index 00000000..a2f01edc --- /dev/null +++ b/scripts/prod/1.0.0-metis-staking/t.ts @@ -0,0 +1,48 @@ +import { ethers } from 'hardhat' +import { deployUpgradeable } from '../../utils/deployment' +import { toEther } from '../../utils/helpers' + +const L2TransmitterArgs = { + l2StandardBridge: '0x4200000000000000000000000000000000000010', // address of the L2 standard bridge + l2StandardBridgeGasOracle: '0x420000000000000000000000000000000000000F', // address of OVM_GasPriceOracle + minDepositThreshold: toEther(1000), // must exceed this amount of queued tokens to deposit to L1 + minTimeBetweenUpdates: 86400 * 7, // min amount of time between calls to executeUpdate + ccipRouter: '0x7b9FB8717D306e2e08ce2e1Efa81F026bf9AD13c', // address of CCIP router + l1ChainSelector: '5009297550715157269', // CCIP selector for L1 + extraArgs: + '0x97a657c9' + ethers.AbiCoder.defaultAbiCoder().encode(['uint256'], [500000]).slice(2), // extra args for CCIP messaging +} + +const metisToken = '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000' +const l2Strategy = '0xfb8256CFCeeAcfb4835a3EbF47EBEa2902e30567' +const withdrawalPool = '0xa68285a07F683a447775E19D50a06Cd6748a4fAe' + +const l1Transmitter = '0x5e2A7B992769E43D4E76a4bB92de9c0532F25Cde' + +async function main() { + const l2Transmitter = await deployUpgradeable( + 'L2Transmitter', + [ + metisToken, + l2Strategy, + L2TransmitterArgs.l2StandardBridge, + L2TransmitterArgs.l2StandardBridgeGasOracle, + l1Transmitter, + withdrawalPool, + L2TransmitterArgs.minDepositThreshold, + L2TransmitterArgs.minTimeBetweenUpdates, + L2TransmitterArgs.ccipRouter, + L2TransmitterArgs.l1ChainSelector, + L2TransmitterArgs.extraArgs, + ], + true + ) + console.log('METIS_L2Transmitter deployed: ', l2Transmitter.target) +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + })