From eafd3bc37f1599129b21a8f688f5e3e04b42d3e7 Mon Sep 17 00:00:00 2001 From: Yuri Tkachenko Date: Wed, 25 Dec 2024 12:41:23 +0000 Subject: [PATCH 1/3] chore: deploy devnet 2 --- deployed-holesky-vaults-devnet-2.json | 699 ++++++++++++++++++ scripts/dao-holesky-vaults-devnet-2-deploy.sh | 27 + 2 files changed, 726 insertions(+) create mode 100644 deployed-holesky-vaults-devnet-2.json create mode 100755 scripts/dao-holesky-vaults-devnet-2-deploy.sh diff --git a/deployed-holesky-vaults-devnet-2.json b/deployed-holesky-vaults-devnet-2.json new file mode 100644 index 000000000..5705b2713 --- /dev/null +++ b/deployed-holesky-vaults-devnet-2.json @@ -0,0 +1,699 @@ +{ + "accounting": { + "proxy": { + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "address": "0x92dc6c953c21D7Bb6e058a37e86E82b1fc2F2aA8", + "constructorArgs": [ + "0x26ec38263E420d85991A493fF846cCC182FF0e49", + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x" + ] + }, + "implementation": { + "contract": "contracts/0.8.25/Accounting.sol", + "address": "0x26ec38263E420d85991A493fF846cCC182FF0e49", + "constructorArgs": ["0x012428B1810377a69c0Af28580293CB58D816dED", "0x447C0D745D6CB3c473CF1F01EF749c9fea0F68f7"] + } + }, + "accountingOracle": { + "deployParameters": { + "consensusVersion": 2 + }, + "proxy": { + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "address": "0x469691156656533496a6310ae933c9652889AD4B", + "constructorArgs": [ + "0x9e1d676ab446B99CA4f0fcDA31893075c1FF52Fb", + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x" + ] + }, + "implementation": { + "contract": "contracts/0.8.9/oracle/AccountingOracle.sol", + "address": "0x9e1d676ab446B99CA4f0fcDA31893075c1FF52Fb", + "constructorArgs": [ + "0x012428B1810377a69c0Af28580293CB58D816dED", + "0xDc2aFB784fD659ab82388F44B08B194B63b7589e", + 12, + 1695902400 + ] + } + }, + "apmRegistryFactory": { + "contract": "@aragon/os/contracts/factory/APMRegistryFactory.sol", + "address": "0x837c3615958B8a3b934d063782c6805b24805811", + "constructorArgs": [ + "0x78d79B12A564fD6972A848aCbCD339c972C9070B", + "0x48E71CcA05E42E9065a41e62DfF8c2797d3f46e9", + "0xEfCb0F685DdDCCAe4ac1252C293Aa962279Ea591", + "0xDF45480e188CB92F05CF3DaF652cFD963e8c8428", + "0x174587a65114578A5120Edd53189B5d8de24FFc5", + "0x0000000000000000000000000000000000000000" + ] + }, + "app:aragon-agent": { + "implementation": { + "contract": "@aragon/apps-agent/contracts/Agent.sol", + "address": "0x897a3bC994bFD0B5C391da8bb5202c6e11CE4822", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-agent", + "fullName": "aragon-agent.lidopm.eth", + "id": "0x701a4fd1f5174d12a0f1d9ad2c88d0ad11ab6aad0ac72b7d9ce621815f8016a9" + }, + "proxy": { + "address": "0x93532c42194546DBcbE40090F7794142CedF7954", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "constructorArgs": [ + "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "0x701a4fd1f5174d12a0f1d9ad2c88d0ad11ab6aad0ac72b7d9ce621815f8016a9", + "0x8129fc1c" + ] + } + }, + "app:aragon-finance": { + "implementation": { + "contract": "@aragon/apps-finance/contracts/Finance.sol", + "address": "0x60Dd41539916c12460741700B8485b84457B7709", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-finance", + "fullName": "aragon-finance.lidopm.eth", + "id": "0x5c9918c99c4081ca9459c178381be71d9da40e49e151687da55099c49a4237f1" + }, + "proxy": { + "address": "0xC94Be1A1940999F3f57CcE032e1091272b611E14", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "constructorArgs": [ + "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "0x5c9918c99c4081ca9459c178381be71d9da40e49e151687da55099c49a4237f1", + "0x1798de8100000000000000000000000093532c42194546dbcbe40090f7794142cedf79540000000000000000000000000000000000000000000000000000000000278d00" + ] + } + }, + "app:aragon-token-manager": { + "implementation": { + "contract": "@aragon/apps-lido/apps/token-manager/contracts/TokenManager.sol", + "address": "0xF51f83e36cCA9FC13a96131667f604cED2EE4975", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-token-manager", + "fullName": "aragon-token-manager.lidopm.eth", + "id": "0xcd567bdf93dd0f6acc3bc7f2155f83244d56a65abbfbefb763e015420102c67b" + }, + "proxy": { + "address": "0x2550112206Cdb80E713c31f50c61e6910b232996", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "constructorArgs": [ + "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "0xcd567bdf93dd0f6acc3bc7f2155f83244d56a65abbfbefb763e015420102c67b", + "0x" + ] + } + }, + "app:aragon-voting": { + "implementation": { + "contract": "@aragon/apps-lido/apps/voting/contracts/Voting.sol", + "address": "0xa579e69995A919DdB98b9C38B4269c8a3eE962D6", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-voting", + "fullName": "aragon-voting.lidopm.eth", + "id": "0x0abcd104777321a82b010357f20887d61247493d89d2e987ff57bcecbde00e1e" + }, + "proxy": { + "address": "0xeF536f1E6b98c531b610b55D43f8d691F1c46431", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "constructorArgs": [ + "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "0x0abcd104777321a82b010357f20887d61247493d89d2e987ff57bcecbde00e1e", + "0x13e09453000000000000000000000000fb16d0cfebba5778b3390213c16f4cda4474782300000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000000b1a2bc2ec500000000000000000000000000000000000000000000000000000000000000000384000000000000000000000000000000000000000000000000000000000000012c" + ] + } + }, + "app:lido": { + "implementation": { + "contract": "contracts/0.4.24/Lido.sol", + "address": "0xD3c74c08D3e28162c86fC00a1399B7A117AB9e35", + "constructorArgs": [] + }, + "aragonApp": { + "name": "lido", + "fullName": "lido.lidopm.eth", + "id": "0x3ca7c3e38968823ccb4c78ea688df41356f182ae1d159e4ee608d30d68cef320" + }, + "proxy": { + "address": "0x447C0D745D6CB3c473CF1F01EF749c9fea0F68f7", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "constructorArgs": [ + "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "0x3ca7c3e38968823ccb4c78ea688df41356f182ae1d159e4ee608d30d68cef320", + "0x" + ] + } + }, + "app:node-operators-registry": { + "implementation": { + "contract": "contracts/0.4.24/nos/NodeOperatorsRegistry.sol", + "address": "0xdD14d15D18956e3672b67F0DB070Ff073e62cBbF", + "constructorArgs": [] + }, + "aragonApp": { + "name": "node-operators-registry", + "fullName": "node-operators-registry.lidopm.eth", + "id": "0x7071f283424072341f856ac9e947e7ec0eb68719f757a7e785979b6b8717579d" + }, + "proxy": { + "address": "0x24dfeb7F5D99f8ba086229A1A3F4A1392a491D20", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "constructorArgs": [ + "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "0x7071f283424072341f856ac9e947e7ec0eb68719f757a7e785979b6b8717579d", + "0x" + ] + } + }, + "app:oracle": { + "implementation": { + "contract": "contracts/0.4.24/oracle/LegacyOracle.sol", + "address": "0x7de407F5BE1468819ABB3Ed5546AeB8BFDE03C4a", + "constructorArgs": [] + }, + "aragonApp": { + "name": "oracle", + "fullName": "oracle.lidopm.eth", + "id": "0x8b47ba2a8454ec799cd91646e7ec47168e91fd139b23f017455f3e5898aaba93" + }, + "proxy": { + "address": "0xDc2aFB784fD659ab82388F44B08B194B63b7589e", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "constructorArgs": [ + "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "0x8b47ba2a8454ec799cd91646e7ec47168e91fd139b23f017455f3e5898aaba93", + "0x" + ] + } + }, + "app:simple-dvt": { + "aragonApp": { + "name": "simple-dvt", + "fullName": "simple-dvt.lidopm.eth", + "id": "0xe1635b63b5f7b5e545f2a637558a4029dea7905361a2f0fc28c66e9136cf86a4" + }, + "proxy": { + "address": "0x904Ac32679E792c30702522C5CbB40E4b123c16E", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "constructorArgs": [ + "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "0xe1635b63b5f7b5e545f2a637558a4029dea7905361a2f0fc28c66e9136cf86a4", + "0x" + ] + } + }, + "aragon-acl": { + "implementation": { + "contract": "@aragon/os/contracts/acl/ACL.sol", + "address": "0xE13c887842Dcd0cCC87B22fd12FF2C728A315F83", + "constructorArgs": [] + }, + "proxy": { + "address": "0x88628c0b3E180ef75FDdED2A598Caf1f10EC5f26", + "constructorArgs": [ + "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "0xe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a", + "0x00" + ], + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + }, + "aragonApp": { + "name": "aragon-acl", + "id": "0xe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a" + } + }, + "aragon-apm-registry": { + "implementation": { + "contract": "@aragon/os/contracts/apm/APMRegistry.sol", + "address": "0x48E71CcA05E42E9065a41e62DfF8c2797d3f46e9", + "constructorArgs": [] + }, + "proxy": { + "address": "0x9Be0405aBa6F612DeD98D5Dfc83A2f4EC92998bF", + "contract": "@aragon/os/contracts/apm/APMRegistry.sol" + } + }, + "aragon-evm-script-registry": { + "proxy": { + "address": "0xb05336C1060E79ec57E838a25389BdE8d053ACe9", + "constructorArgs": [ + "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "0xddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd61", + "0x00" + ], + "contract": "@aragon/os/contracts/apps/AppProxyPinned.sol" + }, + "aragonApp": { + "name": "aragon-evm-script-registry", + "id": "0xddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd61" + }, + "implementation": { + "address": "0xfd78aB5d7db0191CAC34314B470b6738bfB06aec", + "contract": "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol", + "constructorArgs": [] + } + }, + "aragon-kernel": { + "implementation": { + "contract": "@aragon/os/contracts/kernel/Kernel.sol", + "address": "0xd74A595BE71e4896310a15B9Ddabd7E02C8871C0", + "constructorArgs": [true] + }, + "proxy": { + "address": "0x08385b7de226Cd0d26Ec164a26Fe97c8e0d43eAA", + "contract": "@aragon/os/contracts/kernel/KernelProxy.sol", + "constructorArgs": ["0xd74A595BE71e4896310a15B9Ddabd7E02C8871C0"] + } + }, + "aragon-repo-base": { + "contract": "@aragon/os/contracts/apm/Repo.sol", + "address": "0xEfCb0F685DdDCCAe4ac1252C293Aa962279Ea591", + "constructorArgs": [] + }, + "aragonEnsLabelName": "aragonpm", + "aragonID": { + "address": "0x000EA2C5FA8F19d762Db3FFC6309273DAE468CC6", + "contract": "@aragon/id/contracts/FIFSResolvingRegistrar.sol", + "constructorArgs": [ + "0x174587a65114578A5120Edd53189B5d8de24FFc5", + "0xEd49e74d936bAeDB6c27076A108EcaF764bc407e", + "0x7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86" + ] + }, + "burner": { + "deployParameters": { + "totalCoverSharesBurnt": "0", + "totalNonCoverSharesBurnt": "0" + }, + "contract": "contracts/0.8.9/Burner.sol", + "address": "0x401c8330cC6eEc06473549D4D40b14cE4aE13b36", + "constructorArgs": [ + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x012428B1810377a69c0Af28580293CB58D816dED", + "0x447C0D745D6CB3c473CF1F01EF749c9fea0F68f7", + "0", + "0" + ] + }, + "callsScript": { + "address": "0x3b8F21D6A412aedF3BAAB9Af94BfF48FCf7bf807", + "contract": "@aragon/os/contracts/evmscript/executors/CallsScript.sol", + "constructorArgs": [] + }, + "chainId": 17000, + "chainSpec": { + "slotsPerEpoch": 32, + "secondsPerSlot": 12, + "genesisTime": 1695902400, + "depositContract": "0x4242424242424242424242424242424242424242" + }, + "createAppReposTx": "0x857f076b6797394d82d6208a24999d4a58bca74a5456287c2fe17576c9dfc0a4", + "daoAragonId": "lido-dao", + "daoFactory": { + "address": "0x78d79B12A564fD6972A848aCbCD339c972C9070B", + "contract": "@aragon/os/contracts/factory/DAOFactory.sol", + "constructorArgs": [ + "0xd74A595BE71e4896310a15B9Ddabd7E02C8871C0", + "0xE13c887842Dcd0cCC87B22fd12FF2C728A315F83", + "0x98CC44Ac22930846780165454e22B3dC1a32EACE" + ] + }, + "daoInitialSettings": { + "voting": { + "minSupportRequired": "500000000000000000", + "minAcceptanceQuorum": "50000000000000000", + "voteDuration": 900, + "objectionPhaseDuration": 300 + }, + "fee": { + "totalPercent": 10, + "treasuryPercent": 50, + "nodeOperatorsPercent": 50 + }, + "token": { + "name": "TEST Lido DAO Token", + "symbol": "TLDO" + } + }, + "delegation": { + "deployParameters": { + "wethContract": "0x94373a4919B3240D86eA41593D5eBa789FEF3848" + } + }, + "delegationImpl": { + "contract": "contracts/0.8.25/vaults/Delegation.sol", + "address": "0x11686D3aF5208138C661332c552Bd1FB89344511", + "constructorArgs": [ + "0x447C0D745D6CB3c473CF1F01EF749c9fea0F68f7", + "0x94373a4919B3240D86eA41593D5eBa789FEF3848", + "0xD154a2778a1d1a74F7ab01D42d199B4C9510690b" + ] + }, + "deployer": "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "depositSecurityModule": { + "deployParameters": { + "maxOperatorsPerUnvetting": 200, + "pauseIntentValidityPeriodBlocks": 6646, + "usePredefinedAddressInstead": "0x22f05077bE05be96d213C6bDBD61C8f506CcD126" + }, + "address": "0x22f05077be05be96d213c6bdbd61c8f506ccd126" + }, + "dummyEmptyContract": { + "contract": "contracts/0.8.9/utils/DummyEmptyContract.sol", + "address": "0xf2d5cFeC1b9c0aB38456eaE5eEb4472fD6261aF4", + "constructorArgs": [] + }, + "eip712StETH": { + "contract": "contracts/0.8.9/EIP712StETH.sol", + "address": "0x67A0e5316F4a77414B8EDBa9b832E820b8DeB108", + "constructorArgs": ["0x447C0D745D6CB3c473CF1F01EF749c9fea0F68f7"] + }, + "ens": { + "address": "0x174587a65114578A5120Edd53189B5d8de24FFc5", + "constructorArgs": ["0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2"], + "contract": "@aragon/os/contracts/lib/ens/ENS.sol" + }, + "ensFactory": { + "contract": "@aragon/os/contracts/factory/ENSFactory.sol", + "address": "0xC3e9708552E7737C9445d0f629BBA09366d260ee", + "constructorArgs": [] + }, + "ensNode": { + "nodeName": "aragonpm.eth", + "nodeIs": "0x9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba" + }, + "ensSubdomainRegistrar": { + "implementation": { + "contract": "@aragon/os/contracts/ens/ENSSubdomainRegistrar.sol", + "address": "0xDF45480e188CB92F05CF3DaF652cFD963e8c8428", + "constructorArgs": [] + } + }, + "evmScriptRegistryFactory": { + "contract": "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol", + "address": "0x98CC44Ac22930846780165454e22B3dC1a32EACE", + "constructorArgs": [] + }, + "executionLayerRewardsVault": { + "contract": "contracts/0.8.9/LidoExecutionLayerRewardsVault.sol", + "address": "0x9Da4F0C9EC79Dbc3550467d237B1C7980b5bF6c3", + "constructorArgs": ["0x447C0D745D6CB3c473CF1F01EF749c9fea0F68f7", "0x93532c42194546DBcbE40090F7794142CedF7954"] + }, + "gateSeal": { + "address": null, + "factoryAddress": null, + "sealDuration": 518400, + "expiryTimestamp": 1714521600, + "sealingCommittee": [] + }, + "hashConsensusForAccountingOracle": { + "deployParameters": { + "fastLaneLengthSlots": 10, + "epochsPerFrame": 12 + }, + "contract": "contracts/0.8.9/oracle/HashConsensus.sol", + "address": "0x8FB1ff5B8E2334383C176A7Aa87906bB70D069BB", + "constructorArgs": [ + 32, + 12, + 1695902400, + 12, + 10, + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x469691156656533496a6310ae933c9652889AD4B" + ] + }, + "hashConsensusForValidatorsExitBusOracle": { + "deployParameters": { + "fastLaneLengthSlots": 10, + "epochsPerFrame": 4 + }, + "contract": "contracts/0.8.9/oracle/HashConsensus.sol", + "address": "0xd14458aB1C3066f68cF7A32B36b950CaeB3F6271", + "constructorArgs": [ + 32, + 12, + 1695902400, + 4, + 10, + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x863Cc3d82DF998B1A4A187205B4DE1f7A2DfB95d" + ] + }, + "ldo": { + "address": "0xfB16d0cfEbBa5778b3390213c16F4cDa44747823", + "contract": "@aragon/minime/contracts/MiniMeToken.sol", + "constructorArgs": [ + "0x55fff739238Db9135D7749a542e22b166442fbb0", + "0x0000000000000000000000000000000000000000", + 0, + "TEST Lido DAO Token", + 18, + "TLDO", + true + ] + }, + "legacyOracle": { + "deployParameters": { + "lastCompletedEpochId": 0 + } + }, + "lidoApm": { + "deployArguments": [ + "0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae", + "0x90a9580abeb24937fc658e497221c81ce8553b560304f9525821f32b17dbdaec" + ], + "deployTx": "0x59d841d64d243e63dede4a223a94cac40ee9f51869531709647abbfaf90a8e89", + "address": "0x290da74e8b940D9B8e1f66bb514E4C389541cdBa" + }, + "lidoApmEnsName": "lidopm.eth", + "lidoApmEnsRegDurationSec": 94608000, + "lidoLocator": { + "proxy": { + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "address": "0x012428B1810377a69c0Af28580293CB58D816dED", + "constructorArgs": [ + "0xf2d5cFeC1b9c0aB38456eaE5eEb4472fD6261aF4", + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x" + ] + }, + "implementation": { + "contract": "contracts/0.8.9/LidoLocator.sol", + "address": "0xF22638A9a5AF1ef7F77DA1Dfc6EAA53048DBA6c7", + "constructorArgs": [ + { + "accountingOracle": "0x469691156656533496a6310ae933c9652889AD4B", + "depositSecurityModule": "0x22f05077bE05be96d213C6bDBD61C8f506CcD126", + "elRewardsVault": "0x9Da4F0C9EC79Dbc3550467d237B1C7980b5bF6c3", + "legacyOracle": "0xDc2aFB784fD659ab82388F44B08B194B63b7589e", + "lido": "0x447C0D745D6CB3c473CF1F01EF749c9fea0F68f7", + "oracleReportSanityChecker": "0x2E5422fD064f7f31C95997A2A0166291FddAE0b3", + "postTokenRebaseReceiver": "0x0000000000000000000000000000000000000000", + "burner": "0x401c8330cC6eEc06473549D4D40b14cE4aE13b36", + "stakingRouter": "0xcaD3Ce8e56BE2B66AAd764531AbeB40F10DE4749", + "treasury": "0x93532c42194546DBcbE40090F7794142CedF7954", + "validatorsExitBusOracle": "0x863Cc3d82DF998B1A4A187205B4DE1f7A2DfB95d", + "withdrawalQueue": "0xF86Db14A3bfD75B5698D66EF733f305Ed1369915", + "withdrawalVault": "0x906D67054aFcED22159632B1D5577cFb041e04b0", + "oracleDaemonConfig": "0x20b8D30A908EB051b14ddf9e17321BdFc6A957C5", + "accounting": "0x92dc6c953c21D7Bb6e058a37e86E82b1fc2F2aA8", + "wstETH": "0xD154a2778a1d1a74F7ab01D42d199B4C9510690b" + } + ] + } + }, + "lidoTemplate": { + "contract": "contracts/0.4.24/template/LidoTemplate.sol", + "address": "0x0cac9378fAA44d96EC236304E40eCfFD1374c981", + "constructorArgs": [ + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x78d79B12A564fD6972A848aCbCD339c972C9070B", + "0x174587a65114578A5120Edd53189B5d8de24FFc5", + "0x55fff739238Db9135D7749a542e22b166442fbb0", + "0x000EA2C5FA8F19d762Db3FFC6309273DAE468CC6", + "0x837c3615958B8a3b934d063782c6805b24805811" + ], + "deployBlock": 3008404 + }, + "lidoTemplateCreateStdAppReposTx": "0x67b041063375589faa78a6aee78c23f268044b04e6bd5516fde65dc7ae633eb7", + "lidoTemplateNewDaoTx": "0xa21c3a437571a94a757eb96182bd36fffd8fc34b4a1d7819a58db3ec6d63feab", + "minFirstAllocationStrategy": { + "contract": "contracts/common/lib/MinFirstAllocationStrategy.sol", + "address": "0x25d9306De069114dE109b6f5a2Cdc674aA358647", + "constructorArgs": [] + }, + "miniMeTokenFactory": { + "address": "0x55fff739238Db9135D7749a542e22b166442fbb0", + "contract": "@aragon/minime/contracts/MiniMeToken.sol", + "constructorArgs": [] + }, + "networkId": 17000, + "nodeOperatorsRegistry": { + "deployParameters": { + "stakingModuleTypeId": "curated-onchain-v1", + "stuckPenaltyDelay": 172800 + } + }, + "oracleDaemonConfig": { + "deployParameters": { + "NORMALIZED_CL_REWARD_PER_EPOCH": 64, + "NORMALIZED_CL_REWARD_MISTAKE_RATE_BP": 1000, + "REBASE_CHECK_NEAREST_EPOCH_DISTANCE": 1, + "REBASE_CHECK_DISTANT_EPOCH_DISTANCE": 23, + "VALIDATOR_DELAYED_TIMEOUT_IN_SLOTS": 7200, + "VALIDATOR_DELINQUENT_TIMEOUT_IN_SLOTS": 28800, + "NODE_OPERATOR_NETWORK_PENETRATION_THRESHOLD_BP": 100, + "PREDICTION_DURATION_IN_SLOTS": 50400, + "FINALIZATION_MAX_NEGATIVE_REBASE_EPOCH_SHIFT": 1350 + }, + "contract": "contracts/0.8.9/OracleDaemonConfig.sol", + "address": "0x20b8D30A908EB051b14ddf9e17321BdFc6A957C5", + "constructorArgs": ["0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", []] + }, + "oracleReportSanityChecker": { + "deployParameters": { + "exitedValidatorsPerDayLimit": 1500, + "appearedValidatorsPerDayLimit": 1500, + "deprecatedOneOffCLBalanceDecreaseBPLimit": 500, + "annualBalanceIncreaseBPLimit": 1000, + "simulatedShareRateDeviationBPLimit": 250, + "maxValidatorExitRequestsPerReport": 2000, + "maxItemsPerExtraDataTransaction": 8, + "maxNodeOperatorsPerExtraDataItem": 24, + "requestTimestampMargin": 128, + "maxPositiveTokenRebase": 5000000, + "initialSlashingAmountPWei": 1000, + "inactivityPenaltiesAmountPWei": 101, + "clBalanceOraclesErrorUpperBPLimit": 50 + }, + "contract": "contracts/0.8.9/sanity_checks/OracleReportSanityChecker.sol", + "address": "0x2E5422fD064f7f31C95997A2A0166291FddAE0b3", + "constructorArgs": [ + "0x012428B1810377a69c0Af28580293CB58D816dED", + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + [1500, 1500, 1000, 2000, 8, 24, 128, 5000000, 1000, 101, 50] + ] + }, + "scratchDeployGasUsed": "136191679", + "simpleDvt": { + "deployParameters": { + "stakingModuleTypeId": "simple-dvt-onchain-v1", + "stuckPenaltyDelay": 432000 + } + }, + "stakingRouter": { + "proxy": { + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "address": "0xcaD3Ce8e56BE2B66AAd764531AbeB40F10DE4749", + "constructorArgs": [ + "0x4f044DCdcE971B0Bd6cE6fd0484E52CC21e52899", + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x" + ] + }, + "implementation": { + "contract": "contracts/0.8.9/StakingRouter.sol", + "address": "0x4f044DCdcE971B0Bd6cE6fd0484E52CC21e52899", + "constructorArgs": ["0x4242424242424242424242424242424242424242"] + } + }, + "stakingVaultFactory": { + "contract": "contracts/0.8.25/vaults/VaultFactory.sol", + "address": "0x4A2D0f7433315D22d41F70FFd802eDf4Fb4fCf0c", + "constructorArgs": [ + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x470DD39a9E8fC13F4452f1C4c1A0B193Fbe2Ea5C", + "0x11686D3aF5208138C661332c552Bd1FB89344511" + ] + }, + "stakingVaultImpl": { + "contract": "contracts/0.8.25/vaults/StakingVault.sol", + "address": "0x470DD39a9E8fC13F4452f1C4c1A0B193Fbe2Ea5C", + "constructorArgs": ["0x92dc6c953c21D7Bb6e058a37e86E82b1fc2F2aA8", "0x4242424242424242424242424242424242424242"] + }, + "validatorsExitBusOracle": { + "deployParameters": { + "consensusVersion": 1 + }, + "proxy": { + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "address": "0x863Cc3d82DF998B1A4A187205B4DE1f7A2DfB95d", + "constructorArgs": [ + "0xdd886d802c60A360316fFeAE85Ef32a53f294ff9", + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x" + ] + }, + "implementation": { + "contract": "contracts/0.8.9/oracle/ValidatorsExitBusOracle.sol", + "address": "0xdd886d802c60A360316fFeAE85Ef32a53f294ff9", + "constructorArgs": [12, 1695902400, "0x012428B1810377a69c0Af28580293CB58D816dED"] + } + }, + "vestingParams": { + "unvestedTokensAmount": "0", + "holders": { + "0xCD1f9954330AF39a74Fd6e7B25781B4c24ee373f": "760000000000000000000000", + "0x51Af50A64Ec8A4F442A36Bd5dcEF1e86c127Bd51": "60000000000000000000000", + "0xaa6bfBCD634EE744CB8FE522b29ADD23124593D3": "60000000000000000000000", + "0xBA59A84C6440E8cccfdb5448877E26F1A431Fc8B": "60000000000000000000000", + "0x93532c42194546DBcbE40090F7794142CedF7954": "60000000000000000000000" + }, + "start": 0, + "cliff": 0, + "end": 0, + "revokable": false + }, + "withdrawalQueueERC721": { + "deployParameters": { + "name": "Lido: stETH Withdrawal NFT", + "symbol": "unstETH", + "baseUri": null + }, + "proxy": { + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "address": "0xF86Db14A3bfD75B5698D66EF733f305Ed1369915", + "constructorArgs": [ + "0x7932C102e2E79FE0C3E2315fE7814CA2AF31E1ab", + "0x7eF35783463DF06cF3D30cA796BBc0Dc3A1229B2", + "0x" + ] + }, + "implementation": { + "contract": "contracts/0.8.9/WithdrawalQueueERC721.sol", + "address": "0x7932C102e2E79FE0C3E2315fE7814CA2AF31E1ab", + "constructorArgs": ["0xD154a2778a1d1a74F7ab01D42d199B4C9510690b", "Lido: stETH Withdrawal NFT", "unstETH"] + } + }, + "withdrawalVault": { + "implementation": { + "contract": "contracts/0.8.9/WithdrawalVault.sol", + "address": "0x37C6b9A0ECa389335694a25f821eD24641037fe7", + "constructorArgs": ["0x447C0D745D6CB3c473CF1F01EF749c9fea0F68f7", "0x93532c42194546DBcbE40090F7794142CedF7954"] + }, + "proxy": { + "contract": "contracts/0.8.4/WithdrawalsManagerProxy.sol", + "address": "0x906D67054aFcED22159632B1D5577cFb041e04b0", + "constructorArgs": ["0xeF536f1E6b98c531b610b55D43f8d691F1c46431", "0x37C6b9A0ECa389335694a25f821eD24641037fe7"] + }, + "address": "0x906D67054aFcED22159632B1D5577cFb041e04b0" + }, + "wstETH": { + "contract": "contracts/0.6.12/WstETH.sol", + "address": "0xD154a2778a1d1a74F7ab01D42d199B4C9510690b", + "constructorArgs": ["0x447C0D745D6CB3c473CF1F01EF749c9fea0F68f7"] + } +} diff --git a/scripts/dao-holesky-vaults-devnet-2-deploy.sh b/scripts/dao-holesky-vaults-devnet-2-deploy.sh new file mode 100755 index 000000000..52fc0007c --- /dev/null +++ b/scripts/dao-holesky-vaults-devnet-2-deploy.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -e +u +set -o pipefail + +# Check for required environment variables +export NETWORK=holesky +export NETWORK_STATE_FILE="deployed-${NETWORK}-vaults-devnet-2.json" +export NETWORK_STATE_DEFAULTS_FILE="testnet-defaults.json" + +# Accounting Oracle args +export GAS_PRIORITY_FEE=2 +export GENESIS_TIME=1695902400 +export DSM_PREDEFINED_ADDRESS=0x22f05077be05be96d213c6bdbd61c8f506ccd126 + +# Holesky params: https://github.com/eth-clients/holesky/blob/main/README.md +export DEPOSIT_CONTRACT=0x4242424242424242424242424242424242424242 + +rm -f "${NETWORK_STATE_FILE}" +cp "scripts/defaults/${NETWORK_STATE_DEFAULTS_FILE}" "${NETWORK_STATE_FILE}" + +# Compile contracts +yarn compile + +# Generic migration steps file +export STEPS_FILE=scratch/steps.json + +yarn hardhat --network $NETWORK run --no-compile scripts/utils/migrate.ts From df8400fce6e94af1e57d8644c5ee0741b1e07d67 Mon Sep 17 00:00:00 2001 From: Yuri Tkachenko Date: Mon, 30 Dec 2024 12:01:19 +0000 Subject: [PATCH 2/3] chore: ignore only contracts in prettier --- .github/workflows/analyse.yml | 2 +- .prettierignore | 4 +- .../AccountingOracle__MockForLegacyOracle.sol | 27 +++++++------- .../Lido__HarnessForDistributeReward.sol | 16 ++------ ...locationStrategy__HarnessLegacyVersion.sol | 2 +- .../NodeOperatorsRegistry__Harness.sol | 14 +++---- ...TokenRebaseReceiver__MockForAccounting.sol | 16 ++------ ...StETH__HarnessForWithdrawalQueueDeploy.sol | 2 +- .../WithdrawalQueue__MockForAccounting.sol | 5 +-- .../StakingVault__HarnessForTestUpgrade.sol | 17 ++++----- .../vaults/contracts/WETH9__MockForVault.sol | 23 +++++------- .../DepositContract__MockForStakingVault.sol | 4 +- .../staking-vault/contracts/EthRejector.sol | 16 ++++---- .../VaultFactory__MockForStakingVault.sol | 6 +-- ...AccountingOracle__MockForSanityChecker.sol | 5 +-- .../Accounting__MockForAccountingOracle.sol | 9 ++--- .../Accounting__MockForSanityChecker.sol | 9 ++--- .../LidoLocator__MockForSanityChecker.sol | 22 ++--------- .../OracleReportSanityCheckerWrapper.sol | 6 +-- .../contracts/SecondOpinionOracle__Mock.sol | 37 +++++++++++++++---- ...ngRouter__MockForDepositSecurityModule.sol | 6 ++- .../StakingRouter__MockForSanityChecker.sol | 22 ++++++++--- .../oracle/OracleReportSanityCheckerMocks.sol | 23 +++++------- 23 files changed, 137 insertions(+), 156 deletions(-) diff --git a/.github/workflows/analyse.yml b/.github/workflows/analyse.yml index 016a2b748..3a4a625cb 100644 --- a/.github/workflows/analyse.yml +++ b/.github/workflows/analyse.yml @@ -40,7 +40,7 @@ jobs: - name: Run slither run: > - poetry run slither . --no-fail-pedantic --sarif results.sarif + poetry run slither . --no-fail-pedantic --sarif results.sarif - name: Check results.sarif presence id: results diff --git a/.prettierignore b/.prettierignore index 35c7b07b9..68e5788e7 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,5 +1,5 @@ -foundry -contracts +/foundry +/contracts .gitignore .prettierignore diff --git a/test/0.4.24/contracts/AccountingOracle__MockForLegacyOracle.sol b/test/0.4.24/contracts/AccountingOracle__MockForLegacyOracle.sol index ef32b4257..ce2c5adea 100644 --- a/test/0.4.24/contracts/AccountingOracle__MockForLegacyOracle.sol +++ b/test/0.4.24/contracts/AccountingOracle__MockForLegacyOracle.sol @@ -3,8 +3,8 @@ pragma solidity >=0.4.24 <0.9.0; -import { AccountingOracle, IReportReceiver } from "contracts/0.8.9/oracle/AccountingOracle.sol"; -import { ReportValues } from "contracts/0.8.9/oracle/AccountingOracle.sol"; +import {AccountingOracle, IReportReceiver} from "contracts/0.8.9/oracle/AccountingOracle.sol"; +import {ReportValues} from "contracts/0.8.9/oracle/AccountingOracle.sol"; interface ITimeProvider { function getTime() external view returns (uint256); @@ -36,17 +36,18 @@ contract AccountingOracle__MockForLegacyOracle { uint256 slotsElapsed = data.refSlot - _lastRefSlot; _lastRefSlot = data.refSlot; - IReportReceiver(LIDO).handleOracleReport(ReportValues( - data.refSlot * SECONDS_PER_SLOT, - slotsElapsed * SECONDS_PER_SLOT, - data.numValidators, - data.clBalanceGwei * 1e9, - data.withdrawalVaultBalance, - data.elRewardsVaultBalance, - data.sharesRequestedToBurn, - data.withdrawalFinalizationBatches, - new uint256[](0), - new int256[](0) + IReportReceiver(LIDO).handleOracleReport( + ReportValues( + data.refSlot * SECONDS_PER_SLOT, + slotsElapsed * SECONDS_PER_SLOT, + data.numValidators, + data.clBalanceGwei * 1e9, + data.withdrawalVaultBalance, + data.elRewardsVaultBalance, + data.sharesRequestedToBurn, + data.withdrawalFinalizationBatches, + new uint256[](0), + new int256[](0) ) ); } diff --git a/test/0.4.24/contracts/Lido__HarnessForDistributeReward.sol b/test/0.4.24/contracts/Lido__HarnessForDistributeReward.sol index cff7bc0e0..c0fc7d3c2 100644 --- a/test/0.4.24/contracts/Lido__HarnessForDistributeReward.sol +++ b/test/0.4.24/contracts/Lido__HarnessForDistributeReward.sol @@ -10,20 +10,11 @@ import {Lido} from "contracts/0.4.24/Lido.sol"; */ contract Lido__HarnessForDistributeReward is Lido { bytes32 internal constant ALLOW_TOKEN_POSITION = keccak256("lido.Lido.allowToken"); - uint256 internal constant UNLIMITED_TOKEN_REBASE = uint256(- 1); + uint256 internal constant UNLIMITED_TOKEN_REBASE = uint256(-1); uint256 private totalPooledEther; - function initialize( - address _lidoLocator, - address _eip712StETH - ) - public - payable - { - super.initialize( - _lidoLocator, - _eip712StETH - ); + function initialize(address _lidoLocator, address _eip712StETH) public payable { + super.initialize(_lidoLocator, _eip712StETH); _resume(); // _bootstrapInitialHolder @@ -91,5 +82,4 @@ contract Lido__HarnessForDistributeReward is Lido { function burnShares(address _account, uint256 _sharesAmount) public { _burnShares(_account, _sharesAmount); } - } diff --git a/test/0.4.24/contracts/MinFirstAllocationStrategy__HarnessLegacyVersion.sol b/test/0.4.24/contracts/MinFirstAllocationStrategy__HarnessLegacyVersion.sol index 902e17469..64ec4d44a 100644 --- a/test/0.4.24/contracts/MinFirstAllocationStrategy__HarnessLegacyVersion.sol +++ b/test/0.4.24/contracts/MinFirstAllocationStrategy__HarnessLegacyVersion.sol @@ -11,7 +11,7 @@ contract MinFirstAllocationStrategy__HarnessLegacyVersion { uint256[] memory capacities, uint256 maxAllocationSize ) public pure returns (uint256 allocated, uint256[] memory newAllocations) { - (allocated, newAllocations) = MinFirstAllocationStrategy.allocate(allocations, capacities, maxAllocationSize); + (allocated, newAllocations) = MinFirstAllocationStrategy.allocate(allocations, capacities, maxAllocationSize); } function allocateToBestCandidate( diff --git a/test/0.4.24/contracts/NodeOperatorsRegistry__Harness.sol b/test/0.4.24/contracts/NodeOperatorsRegistry__Harness.sol index e7378ad9d..e0e72c38a 100644 --- a/test/0.4.24/contracts/NodeOperatorsRegistry__Harness.sol +++ b/test/0.4.24/contracts/NodeOperatorsRegistry__Harness.sol @@ -128,13 +128,13 @@ contract NodeOperatorsRegistry__Harness is NodeOperatorsRegistry { function harness__getSigningKeysAllocationData( uint256 _keysCount ) - external - view - returns ( - uint256 allocatedKeysCount, - uint256[] memory nodeOperatorIds, - uint256[] memory activeKeyCountsAfterAllocation - ) + external + view + returns ( + uint256 allocatedKeysCount, + uint256[] memory nodeOperatorIds, + uint256[] memory activeKeyCountsAfterAllocation + ) { return _getSigningKeysAllocationData(_keysCount); } diff --git a/test/0.4.24/contracts/PostTokenRebaseReceiver__MockForAccounting.sol b/test/0.4.24/contracts/PostTokenRebaseReceiver__MockForAccounting.sol index 6a30d3f72..12928e5d8 100644 --- a/test/0.4.24/contracts/PostTokenRebaseReceiver__MockForAccounting.sol +++ b/test/0.4.24/contracts/PostTokenRebaseReceiver__MockForAccounting.sol @@ -3,16 +3,8 @@ pragma solidity 0.4.24; contract PostTokenRebaseReceiver__MockForAccounting { - event Mock__PostTokenRebaseHandled(); - function handlePostTokenRebase( - uint256, - uint256, - uint256, - uint256, - uint256, - uint256, - uint256 - ) external { - emit Mock__PostTokenRebaseHandled(); - } + event Mock__PostTokenRebaseHandled(); + function handlePostTokenRebase(uint256, uint256, uint256, uint256, uint256, uint256, uint256) external { + emit Mock__PostTokenRebaseHandled(); + } } diff --git a/test/0.4.24/contracts/StETH__HarnessForWithdrawalQueueDeploy.sol b/test/0.4.24/contracts/StETH__HarnessForWithdrawalQueueDeploy.sol index 1b34d1d8f..1b75643ba 100644 --- a/test/0.4.24/contracts/StETH__HarnessForWithdrawalQueueDeploy.sol +++ b/test/0.4.24/contracts/StETH__HarnessForWithdrawalQueueDeploy.sol @@ -40,7 +40,7 @@ contract StETH__HarnessForWithdrawalQueueDeploy is StETH { _emitTransferAfterMintingShares(_to, _sharesAmount); } - function mintSteth(address _to) external payable { + function mintSteth(address _to) external payable { uint256 sharesAmount = getSharesByPooledEth(msg.value); _mintShares(_to, sharesAmount); setTotalPooledEther(_getTotalPooledEther().add(msg.value)); diff --git a/test/0.4.24/contracts/WithdrawalQueue__MockForAccounting.sol b/test/0.4.24/contracts/WithdrawalQueue__MockForAccounting.sol index ed4715e5d..6811039b2 100644 --- a/test/0.4.24/contracts/WithdrawalQueue__MockForAccounting.sol +++ b/test/0.4.24/contracts/WithdrawalQueue__MockForAccounting.sol @@ -29,10 +29,7 @@ contract WithdrawalQueue__MockForAccounting { sharesToBurn = sharesToBurn_; } - function finalize( - uint256 _lastRequestIdToBeFinalized, - uint256 _maxShareRate - ) external payable { + function finalize(uint256 _lastRequestIdToBeFinalized, uint256 _maxShareRate) external payable { _maxShareRate; // some random fake event values diff --git a/test/0.8.25/vaults/contracts/StakingVault__HarnessForTestUpgrade.sol b/test/0.8.25/vaults/contracts/StakingVault__HarnessForTestUpgrade.sol index 7f57542b5..c7537baac 100644 --- a/test/0.8.25/vaults/contracts/StakingVault__HarnessForTestUpgrade.sol +++ b/test/0.8.25/vaults/contracts/StakingVault__HarnessForTestUpgrade.sol @@ -17,10 +17,8 @@ contract StakingVault__HarnessForTestUpgrade is IBeaconProxy, BeaconChainDeposit struct VaultStorage { uint128 reportValuation; int128 reportInOutDelta; - uint256 locked; int256 inOutDelta; - address operator; } @@ -48,7 +46,11 @@ contract StakingVault__HarnessForTestUpgrade is IBeaconProxy, BeaconChainDeposit /// @notice Initialize the contract storage explicitly. /// @param _owner owner address that can TBD /// @param - the calldata for initialize contract after upgrades - function initialize(address _owner, address _operator, bytes calldata /* _params */) external onlyBeacon reinitializer(_version) { + function initialize( + address _owner, + address _operator, + bytes calldata /* _params */ + ) external onlyBeacon reinitializer(_version) { __StakingVault_init_v2(); __Ownable_init(_owner); _getVaultStorage().operator = _operator; @@ -63,7 +65,7 @@ contract StakingVault__HarnessForTestUpgrade is IBeaconProxy, BeaconChainDeposit } event InitializedV2(); - function __StakingVault_init_v2() internal { + function __StakingVault_init_v2() internal { emit InitializedV2(); } @@ -71,7 +73,7 @@ contract StakingVault__HarnessForTestUpgrade is IBeaconProxy, BeaconChainDeposit return _getInitializedVersion(); } - function version() external pure virtual returns(uint64) { + function version() external pure virtual returns (uint64) { return _version; } @@ -81,10 +83,7 @@ contract StakingVault__HarnessForTestUpgrade is IBeaconProxy, BeaconChainDeposit function latestReport() external view returns (IStakingVault.Report memory) { VaultStorage storage $ = _getVaultStorage(); - return IStakingVault.Report({ - valuation: $.reportValuation, - inOutDelta: $.reportInOutDelta - }); + return IStakingVault.Report({valuation: $.reportValuation, inOutDelta: $.reportInOutDelta}); } function _getVaultStorage() private pure returns (VaultStorage storage $) { diff --git a/test/0.8.25/vaults/contracts/WETH9__MockForVault.sol b/test/0.8.25/vaults/contracts/WETH9__MockForVault.sol index 20fd45359..59de959c6 100644 --- a/test/0.8.25/vaults/contracts/WETH9__MockForVault.sol +++ b/test/0.8.25/vaults/contracts/WETH9__MockForVault.sol @@ -6,17 +6,17 @@ pragma solidity 0.4.24; import {StETH} from "contracts/0.4.24/StETH.sol"; contract WETH9__MockForVault { - string public name = "Wrapped Ether"; - string public symbol = "WETH"; - uint8 public decimals = 18; + string public name = "Wrapped Ether"; + string public symbol = "WETH"; + uint8 public decimals = 18; - event Approval(address indexed src, address indexed guy, uint wad); - event Transfer(address indexed src, address indexed dst, uint wad); - event Deposit(address indexed dst, uint wad); - event Withdrawal(address indexed src, uint wad); + event Approval(address indexed src, address indexed guy, uint wad); + event Transfer(address indexed src, address indexed dst, uint wad); + event Deposit(address indexed dst, uint wad); + event Withdrawal(address indexed src, uint wad); - mapping (address => uint) public balanceOf; - mapping (address => mapping (address => uint)) public allowance; + mapping(address => uint) public balanceOf; + mapping(address => mapping(address => uint)) public allowance; function() external payable { deposit(); @@ -48,10 +48,7 @@ contract WETH9__MockForVault { return transferFrom(msg.sender, dst, wad); } - function transferFrom(address src, address dst, uint wad) - public - returns (bool) - { + function transferFrom(address src, address dst, uint wad) public returns (bool) { require(balanceOf[src] >= wad); if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) { diff --git a/test/0.8.25/vaults/staking-vault/contracts/DepositContract__MockForStakingVault.sol b/test/0.8.25/vaults/staking-vault/contracts/DepositContract__MockForStakingVault.sol index e300a8180..9211eaf2e 100644 --- a/test/0.8.25/vaults/staking-vault/contracts/DepositContract__MockForStakingVault.sol +++ b/test/0.8.25/vaults/staking-vault/contracts/DepositContract__MockForStakingVault.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.0; contract DepositContract__MockForStakingVault { - event DepositEvent(bytes pubkey, bytes withdrawal_credentials, bytes signature, bytes32 deposit_data_root); + event DepositEvent(bytes pubkey, bytes withdrawal_credentials, bytes signature, bytes32 deposit_data_root); function deposit( bytes calldata pubkey, // 48 bytes @@ -12,6 +12,6 @@ contract DepositContract__MockForStakingVault { bytes calldata signature, // 96 bytes bytes32 deposit_data_root ) external payable { - emit DepositEvent(pubkey, withdrawal_credentials, signature, deposit_data_root); + emit DepositEvent(pubkey, withdrawal_credentials, signature, deposit_data_root); } } diff --git a/test/0.8.25/vaults/staking-vault/contracts/EthRejector.sol b/test/0.8.25/vaults/staking-vault/contracts/EthRejector.sol index 08ce145fe..932c7d2c0 100644 --- a/test/0.8.25/vaults/staking-vault/contracts/EthRejector.sol +++ b/test/0.8.25/vaults/staking-vault/contracts/EthRejector.sol @@ -4,14 +4,14 @@ pragma solidity ^0.8.0; contract EthRejector { - error ReceiveRejected(); - error FallbackRejected(); + error ReceiveRejected(); + error FallbackRejected(); - receive() external payable { - revert ReceiveRejected(); - } + receive() external payable { + revert ReceiveRejected(); + } - fallback() external payable { - revert FallbackRejected(); - } + fallback() external payable { + revert FallbackRejected(); + } } diff --git a/test/0.8.25/vaults/staking-vault/contracts/VaultFactory__MockForStakingVault.sol b/test/0.8.25/vaults/staking-vault/contracts/VaultFactory__MockForStakingVault.sol index ad0796280..6cb53a18f 100644 --- a/test/0.8.25/vaults/staking-vault/contracts/VaultFactory__MockForStakingVault.sol +++ b/test/0.8.25/vaults/staking-vault/contracts/VaultFactory__MockForStakingVault.sol @@ -3,9 +3,9 @@ pragma solidity ^0.8.0; -import { UpgradeableBeacon } from "@openzeppelin/contracts-v5.0.2/proxy/beacon/UpgradeableBeacon.sol"; -import { BeaconProxy } from "@openzeppelin/contracts-v5.0.2/proxy/beacon/BeaconProxy.sol"; -import { IStakingVault } from "contracts/0.8.25/vaults/interfaces/IStakingVault.sol"; +import {UpgradeableBeacon} from "@openzeppelin/contracts-v5.0.2/proxy/beacon/UpgradeableBeacon.sol"; +import {BeaconProxy} from "@openzeppelin/contracts-v5.0.2/proxy/beacon/BeaconProxy.sol"; +import {IStakingVault} from "contracts/0.8.25/vaults/interfaces/IStakingVault.sol"; contract VaultFactory__MockForStakingVault is UpgradeableBeacon { event VaultCreated(address indexed vault); diff --git a/test/0.8.9/contracts/AccountingOracle__MockForSanityChecker.sol b/test/0.8.9/contracts/AccountingOracle__MockForSanityChecker.sol index 2081ce12e..69ebef4a9 100644 --- a/test/0.8.9/contracts/AccountingOracle__MockForSanityChecker.sol +++ b/test/0.8.9/contracts/AccountingOracle__MockForSanityChecker.sol @@ -27,10 +27,7 @@ contract AccountingOracle__MockForSanityChecker { GENESIS_TIME = genesisTime; } - function submitReportData( - AccountingOracle.ReportData calldata data, - uint256 /* contractVersion */ - ) external { + function submitReportData(AccountingOracle.ReportData calldata data, uint256 /* contractVersion */) external { require(data.refSlot >= _lastRefSlot, "refSlot less than _lastRefSlot"); uint256 slotsElapsed = data.refSlot - _lastRefSlot; _lastRefSlot = data.refSlot; diff --git a/test/0.8.9/contracts/Accounting__MockForAccountingOracle.sol b/test/0.8.9/contracts/Accounting__MockForAccountingOracle.sol index cb1d77a22..15ae72c3f 100644 --- a/test/0.8.9/contracts/Accounting__MockForAccountingOracle.sol +++ b/test/0.8.9/contracts/Accounting__MockForAccountingOracle.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.9; -import { ReportValues } from "contracts/0.8.9/oracle/AccountingOracle.sol"; -import { IReportReceiver } from "contracts/0.8.9/oracle/AccountingOracle.sol"; +import {ReportValues} from "contracts/0.8.9/oracle/AccountingOracle.sol"; +import {IReportReceiver} from "contracts/0.8.9/oracle/AccountingOracle.sol"; contract Accounting__MockForAccountingOracle is IReportReceiver { struct HandleOracleReportCallData { @@ -15,9 +15,6 @@ contract Accounting__MockForAccountingOracle is IReportReceiver { HandleOracleReportCallData public lastCall__handleOracleReport; function handleOracleReport(ReportValues memory values) external override { - lastCall__handleOracleReport = HandleOracleReportCallData( - values, - ++lastCall__handleOracleReport.callCount - ); + lastCall__handleOracleReport = HandleOracleReportCallData(values, ++lastCall__handleOracleReport.callCount); } } diff --git a/test/0.8.9/contracts/Accounting__MockForSanityChecker.sol b/test/0.8.9/contracts/Accounting__MockForSanityChecker.sol index 5e3a1a37c..0dc59b476 100644 --- a/test/0.8.9/contracts/Accounting__MockForSanityChecker.sol +++ b/test/0.8.9/contracts/Accounting__MockForSanityChecker.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.9; -import { ReportValues } from "contracts/0.8.9/oracle/AccountingOracle.sol"; -import { IReportReceiver } from "contracts/0.8.9/oracle/AccountingOracle.sol"; +import {ReportValues} from "contracts/0.8.9/oracle/AccountingOracle.sol"; +import {IReportReceiver} from "contracts/0.8.9/oracle/AccountingOracle.sol"; contract Accounting__MockForSanityChecker is IReportReceiver { struct HandleOracleReportCallData { @@ -15,9 +15,6 @@ contract Accounting__MockForSanityChecker is IReportReceiver { HandleOracleReportCallData public lastCall__handleOracleReport; function handleOracleReport(ReportValues memory values) external override { - lastCall__handleOracleReport = HandleOracleReportCallData( - values, - ++lastCall__handleOracleReport.callCount - ); + lastCall__handleOracleReport = HandleOracleReportCallData(values, ++lastCall__handleOracleReport.callCount); } } diff --git a/test/0.8.9/contracts/LidoLocator__MockForSanityChecker.sol b/test/0.8.9/contracts/LidoLocator__MockForSanityChecker.sol index 0dd43fe02..c38818a9c 100644 --- a/test/0.8.9/contracts/LidoLocator__MockForSanityChecker.sol +++ b/test/0.8.9/contracts/LidoLocator__MockForSanityChecker.sol @@ -43,9 +43,7 @@ contract LidoLocator__MockForSanityChecker is ILidoLocator { address public immutable accounting; address public immutable wstETH; - constructor ( - ContractAddresses memory addresses - ) { + constructor(ContractAddresses memory addresses) { lido = addresses.lido; depositSecurityModule = addresses.depositSecurityModule; elRewardsVault = addresses.elRewardsVault; @@ -65,24 +63,10 @@ contract LidoLocator__MockForSanityChecker is ILidoLocator { } function coreComponents() external view returns (address, address, address, address, address, address) { - return ( - elRewardsVault, - oracleReportSanityChecker, - stakingRouter, - treasury, - withdrawalQueue, - withdrawalVault - ); + return (elRewardsVault, oracleReportSanityChecker, stakingRouter, treasury, withdrawalQueue, withdrawalVault); } - function oracleReportComponents() external view returns ( - address, - address, - address, - address, - address, - address - ) { + function oracleReportComponents() external view returns (address, address, address, address, address, address) { return ( accountingOracle, oracleReportSanityChecker, diff --git a/test/0.8.9/contracts/OracleReportSanityCheckerWrapper.sol b/test/0.8.9/contracts/OracleReportSanityCheckerWrapper.sol index 02d9fc6c5..250aad6b4 100644 --- a/test/0.8.9/contracts/OracleReportSanityCheckerWrapper.sol +++ b/test/0.8.9/contracts/OracleReportSanityCheckerWrapper.sol @@ -15,11 +15,7 @@ contract OracleReportSanityCheckerWrapper is OracleReportSanityChecker { address _lidoLocator, address _admin, LimitsList memory _limitsList - ) OracleReportSanityChecker( - _lidoLocator, - _admin, - _limitsList - ) {} + ) OracleReportSanityChecker(_lidoLocator, _admin, _limitsList) {} function addReportData(uint256 _timestamp, uint256 _exitedValidatorsCount, uint256 _negativeCLRebase) public { _addReportData(_timestamp, _exitedValidatorsCount, _negativeCLRebase); diff --git a/test/0.8.9/contracts/SecondOpinionOracle__Mock.sol b/test/0.8.9/contracts/SecondOpinionOracle__Mock.sol index 17fda805c..b73a5f7e5 100644 --- a/test/0.8.9/contracts/SecondOpinionOracle__Mock.sol +++ b/test/0.8.9/contracts/SecondOpinionOracle__Mock.sol @@ -4,14 +4,21 @@ pragma solidity 0.8.9; interface ISecondOpinionOracle { - function getReport(uint256 refSlot) + function getReport( + uint256 refSlot + ) external view - returns (bool success, uint256 clBalanceGwei, uint256 withdrawalVaultBalanceWei, uint256 numValidators, uint256 exitedValidators); + returns ( + bool success, + uint256 clBalanceGwei, + uint256 withdrawalVaultBalanceWei, + uint256 numValidators, + uint256 exitedValidators + ); } contract SecondOpinionOracle__Mock is ISecondOpinionOracle { - struct Report { bool success; uint256 clBalanceGwei; @@ -27,7 +34,6 @@ contract SecondOpinionOracle__Mock is ISecondOpinionOracle { } function addPlainReport(uint256 refSlot, uint256 clBalanceGwei, uint256 withdrawalVaultBalanceWei) external { - reports[refSlot] = Report({ success: true, clBalanceGwei: clBalanceGwei, @@ -41,10 +47,27 @@ contract SecondOpinionOracle__Mock is ISecondOpinionOracle { delete reports[refSlot]; } - function getReport(uint256 refSlot) external view override - returns (bool success, uint256 clBalanceGwei, uint256 withdrawalVaultBalanceWei, uint256 numValidators, uint256 exitedValidators) + function getReport( + uint256 refSlot + ) + external + view + override + returns ( + bool success, + uint256 clBalanceGwei, + uint256 withdrawalVaultBalanceWei, + uint256 numValidators, + uint256 exitedValidators + ) { Report memory report = reports[refSlot]; - return (report.success, report.clBalanceGwei, report.withdrawalVaultBalanceWei, report.numValidators, report.exitedValidators); + return ( + report.success, + report.clBalanceGwei, + report.withdrawalVaultBalanceWei, + report.numValidators, + report.exitedValidators + ); } } diff --git a/test/0.8.9/contracts/StakingRouter__MockForDepositSecurityModule.sol b/test/0.8.9/contracts/StakingRouter__MockForDepositSecurityModule.sol index 77be5d5ae..d489dd29e 100644 --- a/test/0.8.9/contracts/StakingRouter__MockForDepositSecurityModule.sol +++ b/test/0.8.9/contracts/StakingRouter__MockForDepositSecurityModule.sol @@ -9,7 +9,11 @@ import {StakingRouter} from "contracts/0.8.9/StakingRouter.sol"; contract StakingRouter__MockForDepositSecurityModule is IStakingRouter { error StakingModuleUnregistered(); - event StakingModuleVettedKeysDecreased(uint24 stakingModuleId, bytes nodeOperatorIds, bytes vettedSigningKeysCounts); + event StakingModuleVettedKeysDecreased( + uint24 stakingModuleId, + bytes nodeOperatorIds, + bytes vettedSigningKeysCounts + ); event StakingModuleDeposited(uint256 maxDepositsCount, uint24 stakingModuleId, bytes depositCalldata); event StakingModuleStatusSet( uint24 indexed stakingModuleId, diff --git a/test/0.8.9/contracts/StakingRouter__MockForSanityChecker.sol b/test/0.8.9/contracts/StakingRouter__MockForSanityChecker.sol index 1e729c0c1..e998d5075 100644 --- a/test/0.8.9/contracts/StakingRouter__MockForSanityChecker.sol +++ b/test/0.8.9/contracts/StakingRouter__MockForSanityChecker.sol @@ -6,7 +6,6 @@ pragma solidity 0.8.9; import {StakingRouter} from "contracts/0.8.9/StakingRouter.sol"; contract StakingRouter__MockForSanityChecker { - mapping(uint256 => StakingRouter.StakingModule) private modules; uint256[] private moduleIds; @@ -14,7 +13,21 @@ contract StakingRouter__MockForSanityChecker { constructor() {} function mock__addStakingModuleExitedValidators(uint24 moduleId, uint256 exitedValidators) external { - StakingRouter.StakingModule memory module = StakingRouter.StakingModule(moduleId, address(0), 0, 0, 0, 0, "", 0, 0, exitedValidators, 0, 0, 0); + StakingRouter.StakingModule memory module = StakingRouter.StakingModule( + moduleId, + address(0), + 0, + 0, + 0, + 0, + "", + 0, + 0, + exitedValidators, + 0, + 0, + 0 + ); modules[moduleId] = module; moduleIds.push(moduleId); } @@ -35,10 +48,7 @@ contract StakingRouter__MockForSanityChecker { return moduleIds; } - function getStakingModule(uint256 stakingModuleId) - public - view - returns (StakingRouter.StakingModule memory module) { + function getStakingModule(uint256 stakingModuleId) public view returns (StakingRouter.StakingModule memory module) { return modules[stakingModuleId]; } } diff --git a/test/0.8.9/contracts/oracle/OracleReportSanityCheckerMocks.sol b/test/0.8.9/contracts/oracle/OracleReportSanityCheckerMocks.sol index abc6a2e23..3fe1a880a 100644 --- a/test/0.8.9/contracts/oracle/OracleReportSanityCheckerMocks.sol +++ b/test/0.8.9/contracts/oracle/OracleReportSanityCheckerMocks.sol @@ -27,9 +27,7 @@ contract WithdrawalQueueStub is IWithdrawalQueue { function getWithdrawalStatus( uint256[] calldata _requestIds - ) external view returns ( - WithdrawalRequestStatus[] memory statuses - ) { + ) external view returns (WithdrawalRequestStatus[] memory statuses) { statuses = new WithdrawalRequestStatus[](_requestIds.length); for (uint256 i; i < _requestIds.length; ++i) { statuses[i].timestamp = _timestamps[_requestIds[i]]; @@ -41,9 +39,7 @@ contract BurnerStub { uint256 private nonCover; uint256 private cover; - function getSharesRequestedToBurn() external view returns ( - uint256 coverShares, uint256 nonCoverShares - ) { + function getSharesRequestedToBurn() external view returns (uint256 coverShares, uint256 nonCoverShares) { coverShares = cover; nonCoverShares = nonCover; } @@ -109,7 +105,9 @@ contract LidoLocatorStub is ILidoLocator { contract OracleReportSanityCheckerStub { error SelectorNotFound(bytes4 sig, uint256 value, bytes data); - fallback() external payable {revert SelectorNotFound(msg.sig, msg.value, msg.data);} + fallback() external payable { + revert SelectorNotFound(msg.sig, msg.value, msg.data); + } function checkAccountingOracleReport( uint256 _timeElapsed, @@ -145,12 +143,11 @@ contract OracleReportSanityCheckerStub { uint256, uint256 _etherToLockForWithdrawals, uint256 - ) external view returns ( - uint256 withdrawals, - uint256 elRewards, - uint256 simulatedSharesToBurn, - uint256 sharesToBurn - ) { + ) + external + view + returns (uint256 withdrawals, uint256 elRewards, uint256 simulatedSharesToBurn, uint256 sharesToBurn) + { withdrawals = _withdrawalVaultBalance; elRewards = _elRewardsVaultBalance; From 65ef7d551679391274e65594124f43f860803638 Mon Sep 17 00:00:00 2001 From: Yuri Tkachenko Date: Thu, 9 Jan 2025 11:31:06 +0000 Subject: [PATCH 3/3] chore: update devnet json --- deployed-holesky-vaults-devnet-2.json | 5 +++++ test/0.4.24/lido/lido.externalShares.test.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/deployed-holesky-vaults-devnet-2.json b/deployed-holesky-vaults-devnet-2.json index 5705b2713..53c26edad 100644 --- a/deployed-holesky-vaults-devnet-2.json +++ b/deployed-holesky-vaults-devnet-2.json @@ -695,5 +695,10 @@ "contract": "contracts/0.6.12/WstETH.sol", "address": "0xD154a2778a1d1a74F7ab01D42d199B4C9510690b", "constructorArgs": ["0x447C0D745D6CB3c473CF1F01EF749c9fea0F68f7"] + }, + "beaconProxy": { + "contract": "@openzeppelin/contracts-v5.0.2/proxy/beacon/BeaconProxy.sol", + "address": "0x8dF00f76f5C962Dd5F1e9F1675A93393b568c538", + "constructorArgs": ["0x4A2D0f7433315D22d41F70FFd802eDf4Fb4fCf0c", "0x"] } } diff --git a/test/0.4.24/lido/lido.externalShares.test.ts b/test/0.4.24/lido/lido.externalShares.test.ts index 5910e97c5..fc217f97a 100644 --- a/test/0.4.24/lido/lido.externalShares.test.ts +++ b/test/0.4.24/lido/lido.externalShares.test.ts @@ -64,7 +64,7 @@ describe("Lido.sol:externalShares", () => { }); }); - context("setMaxExternalBalanceBP", () => { + context("setMaxExternalRatioBP", () => { context("Reverts", () => { it("if caller is not authorized", async () => { await expect(lido.connect(whale).setMaxExternalRatioBP(1)).to.be.revertedWith("APP_AUTH_FAILED");