diff --git a/artifacts.json b/artifacts.json index 16a279dc7..fc65666a8 100644 --- a/artifacts.json +++ b/artifacts.json @@ -1,4 +1,11 @@ [ + { + "artifactPath": "artifacts/contracts/0.4.24/template/LidoTemplate.sol/LidoTemplate.json", + "sourcePath": "contracts/0.4.24/template/LidoTemplate.sol", + "name": "LidoTemplate", + "address": "0x752350797CB92Ad3BF1295Faf904B27585e66BF5", + "txHash": "0xdcd4ebe028aa3663a1fe8bbc92ae8489045e29d2a6ef5284083d9be5c3fa5f19" + }, { "artifactPath": "artifacts/contracts/0.4.24/Lido.sol/Lido.json", "sourcePath": "contracts/0.4.24/Lido.sol", diff --git a/dao-goerlidebug-deploy.sh b/dao-goerlidebug-deploy.sh deleted file mode 100755 index d18a9e41a..000000000 --- a/dao-goerlidebug-deploy.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -set -e +u -set -o pipefail - - -if [[ -z "$DEPLOYER" ]]; then - echo "Must set DEPLOYER env variable" 1>&2 - exit 1 -fi -if [[ -z "$RPC_URL" ]]; then - echo "Must set RPC_URL env variable" 1>&2 - exit 1 -fi -if [[ -z "$GATE_SEAL_FACTORY" ]]; then - echo "Must set GATE_SEAL_FACTORY env variable" 1>&2 - exit 1 -fi - -export GENESIS_TIME=1616508000 # Goerli genesis time -export DEPOSIT_CONTRACT=0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b - -export NETWORK=goerlidebug -export CHAIN_ID=5 - -export GAS_PRIORITY_FEE="${GAS_PRIORITY_FEE:=1}" -export GAS_MAX_FEE="${GAS_MAX_FEE:=100}" - -export NETWORK_STATE_FILE="deployed-${NETWORK}.json" -export NETWORK_STATE_DEFAULTS_FILE="deployed-testnet-defaults.json" - -bash dao-deploy.sh diff --git a/deployed-goerli.json b/deployed-goerli.json index 20a8e851a..16e1f0227 100644 --- a/deployed-goerli.json +++ b/deployed-goerli.json @@ -8,62 +8,83 @@ "miniMeTokenFactoryAddress": "0x92E2750729e04c9a5CF21A830Bd00cbd5139D992", "aragonIDAddress": "0x673cB86B60B9768Eebb05517fbF5a7F9f1Ab62C4", "deployer": "0x8303B3A462F4Cb4d2468DDcBD4c9f212914A3a7F", - "daoTemplateConstructorArgs": [ - "0x8303B3A462F4Cb4d2468DDcBD4c9f212914A3a7F", - "0x0B6769F500b293e3adacD97c3961189565069902", - "0x043e6DBC5CAd60874727d21ecC2aAeBf50A0de80", - "0x92E2750729e04c9a5CF21A830Bd00cbd5139D992", - "0x673cB86B60B9768Eebb05517fbF5a7F9f1Ab62C4", - "0x70B3284fD016a570146cE48fC54D7A81bCd94BBa" - ], - "daoTemplateDeployTx": "0xda8746bca23c7a4f7c58e1a3370cb1ffa1e250ace90fd4684dbb1842ee6ac921", - "daoTemplateAddress": "0x9A4a36B5fe517f98BD6529d4317B0b723F600AaD", + "lidoTemplate": { + "address": "0x9A4a36B5fe517f98BD6529d4317B0b723F600AaD", + "deployTx": "0xda8746bca23c7a4f7c58e1a3370cb1ffa1e250ace90fd4684dbb1842ee6ac921", + "constructorArgs": [ + "0x8303B3A462F4Cb4d2468DDcBD4c9f212914A3a7F", + "0x0B6769F500b293e3adacD97c3961189565069902", + "0x043e6DBC5CAd60874727d21ecC2aAeBf50A0de80", + "0x92E2750729e04c9a5CF21A830Bd00cbd5139D992", + "0x673cB86B60B9768Eebb05517fbF5a7F9f1Ab62C4", + "0x70B3284fD016a570146cE48fC54D7A81bCd94BBa" + ] + }, "app:lido": { - "ipfsCid": "QmbmPW5r9HMdyUARNJjjE7MNqBUGrXashwoWvqRZhc1t5b", - "contentURI": "0x697066733a516d626d5057357239484d64795541524e4a6a6a45374d4e714255477258617368776f577671525a686331743562", - "name": "lido", - "fullName": "lido.lidopm-testnet-prater.eth", - "id": "0x79ac01111b462384f1b7fba84a17b9ec1f5d2fddcfcb99487d71b443832556ea", - "proxyAddress": "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F", - "contract": "Lido", - "implementation": "0x26c41Ef17780cAdde73A2d00902e5e18856201b4", - "constructorArgs": [], - "implementationDeployCommit": "85a41c45d5d45b1a35118ad6023e6c7ead1072d2" + "implementation": { + "contract": "contracts/0.4.24/Lido.sol", + "address": "0x26c41Ef17780cAdde73A2d00902e5e18856201b4", + "constructorArgs": [] + }, + "aragonApp": { + "name": "lido", + "fullName": "lido.lidopm-testnet-prater.eth", + "id": "0x79ac01111b462384f1b7fba84a17b9ec1f5d2fddcfcb99487d71b443832556ea", + "ipfsCid": "QmbmPW5r9HMdyUARNJjjE7MNqBUGrXashwoWvqRZhc1t5b", + "contentURI": "0x697066733a516d626d5057357239484d64795541524e4a6a6a45374d4e714255477258617368776f577671525a686331743562" + }, + "proxy": { + "address": "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + } }, "app:oracle": { - "ipfsCid": "QmfACH9oSHFWgV81Dh8RSVcgaVBdhkZuHhZY2iZv5syBJK", - "contentURI": "0x697066733a516d66414348396f5348465767563831446838525356636761564264686b5a7548685a5932695a76357379424a4b", - "name": "oracle", - "fullName": "oracle.lidopm-testnet-prater.eth", - "id": "0xb2977cfc13b000b6807b9ae3cf4d938f4cc8ba98e1d68ad911c58924d6aa4f11", - "proxyAddress": "0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB" + "proxy": { + "address": "0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB" + }, + "implementation": { + "address": "0xcF9d64942DC9096520a8962a2d4496e680c6403b", + "contract": "contracts/0.4.24/oracle/LegacyOracle.sol" + }, + "aragonApp": { + "ipfsCid": "QmfACH9oSHFWgV81Dh8RSVcgaVBdhkZuHhZY2iZv5syBJK", + "contentURI": "0x697066733a516d66414348396f5348465767563831446838525356636761564264686b5a7548685a5932695a76357379424a4b", + "name": "oracle", + "fullName": "oracle.lidopm-testnet-prater.eth", + "id": "0xb2977cfc13b000b6807b9ae3cf4d938f4cc8ba98e1d68ad911c58924d6aa4f11", + } }, "app:node-operators-registry": { - "ipfsCid": "QmQExJkoyg7xWXJjLaYC75UAmsGY1STY41YTG3wEK7q8dd", - "contentURI": "0x697066733a516d5145784a6b6f7967377857584a6a4c615943373555416d7347593153545934315954473377454b3771386464", - "name": "node-operators-registry", - "fullName": "node-operators-registry.lidopm-testnet-prater.eth", - "id": "0x57384c8fcaf2c1c2144974769a6ea4e5cf69090d47f5327f8fc93827f8c0001a", - "proxyAddress": "0x9D4AF1Ee19Dad8857db3a45B0374c81c8A1C6320", - "contract": "NodeOperatorsRegistry", - "implementation": "0x4672275F75e8756a53cD87F08F67f51309675D57", - "constructorArgs": [], - "implementationDeployCommit": "85a41c45d5d45b1a35118ad6023e6c7ead1072d2" + "proxy": { + "address": "0x9D4AF1Ee19Dad8857db3a45B0374c81c8A1C6320" + }, + "implementation": { + "address": "0x4672275F75e8756a53cD87F08F67f51309675D57", + "contract": "contracts/0.4.24/nos/NodeOperatorsRegistry.sol", + "constructorArgs": [] + }, + "aragonApp": { + "ipfsCid": "QmQExJkoyg7xWXJjLaYC75UAmsGY1STY41YTG3wEK7q8dd", + "contentURI": "0x697066733a516d5145784a6b6f7967377857584a6a4c615943373555416d7347593153545934315954473377454b3771386464", + "name": "node-operators-registry", + "fullName": "node-operators-registry.lidopm-testnet-prater.eth", + "id": "0x57384c8fcaf2c1c2144974769a6ea4e5cf69090d47f5327f8fc93827f8c0001a" + } }, "lidoApmEnsName": "lidopm-testnet-prater.eth", "lidoApmDeployTx": "0x5177a441fbf121e4064979f53756cc2ee807c68684edae33f50868a40ebae013", "lidoApmAddress": "0x64361389f8Bb7A1ff64e0Ad97FfAa432399D45E7", + "chainSpec": { + "depositContractAddress": "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b", + "slotsPerEpoch": 32, + "secondsPerSlot": 12, + "genesisTime": 1616508000 + }, "daoInitialSettings": { "token": { "name": "Test Lido DAO Token", "symbol": "TESTLDO" }, - "beaconSpec": { - "depositContractAddress": "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b", - "slotsPerEpoch": 32, - "secondsPerSlot": 12, - "genesisTime": 1616508000 - }, "voting": { "minSupportRequired": "500000000000000000", "minAcceptanceQuorum": "50000000000000000", @@ -81,30 +102,69 @@ "daoAddress": "0x1dD91b354Ebd706aB3Ac7c727455C7BAA164945A", "daoTokenAddress": "0x56340274fB5a72af1A3C6609061c451De7961Bd4", "app:aragon-agent": { - "name": "aragon-agent", - "fullName": "aragon-agent.lidopm-testnet-prater.eth", - "id": "0xd4af5c5d5775bec8d4569a4d2462e0afcb7286b4129ee1ce70cdd44c59f0d961", - "proxyAddress": "0x4333218072D5d7008546737786663c38B4D561A4" + "implementation": { + "contract": "@aragon/apps-agent/contracts/Agent.sol", + "address": "0xf6Fe63e6Ff034D60f9F2a403A046e1c456b11Ab4", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-agent", + "fullName": "aragon-agent.lidopm-testnet-prater.eth", + "id": "0xd4af5c5d5775bec8d4569a4d2462e0afcb7286b4129ee1ce70cdd44c59f0d961" + }, + "proxy": { + "address": "0x4333218072D5d7008546737786663c38B4D561A4", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + } }, "app:aragon-finance": { - "name": "aragon-finance", - "fullName": "aragon-finance.lidopm-testnet-prater.eth", - "id": "0xb0f95ac3c63389bb668187b7363eabb9d22c52359fc70f5247004f369afbe860", - "proxyAddress": "0x75c7b1D23f1cad7Fb4D60281d7069E46440BC179" + "implementation": { + "contract": "@aragon/apps-finance/contracts/Finance.sol", + "address": "0xf6Fe63e6Ff034D60f9F2a403A046e1c456b11Ab4", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-finance", + "fullName": "aragon-finance.lidopm-testnet-prater.eth", + "id": "0xb0f95ac3c63389bb668187b7363eabb9d22c52359fc70f5247004f369afbe860" + }, + "proxy": { + "address": "0x75c7b1D23f1cad7Fb4D60281d7069E46440BC179", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + } }, "app:aragon-token-manager": { - "name": "aragon-token-manager", - "fullName": "aragon-token-manager.lidopm-testnet-prater.eth", - "id": "0x0cee0e187359b8e41a11706fbe2704f89554ac7156f1c18152d5cbbd085bb91c", - "proxyAddress": "0xDfe76d11b365f5e0023343A367f0b311701B3bc1" + "implementation": { + "contract": "@aragon/apps-lido/apps/token-manager/contracts/TokenManager.sol", + "address": "0xAb304946E8Ed172037aC9aBF9da58a6a7C8d443B", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-token-manager", + "fullName": "aragon-token-manager.lidopm-testnet-prater.eth", + "id": "0x0cee0e187359b8e41a11706fbe2704f89554ac7156f1c18152d5cbbd085bb91c" + }, + "proxy": { + "address": "0xDfe76d11b365f5e0023343A367f0b311701B3bc1", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + } }, "app:aragon-voting": { - "name": "aragon-voting", - "fullName": "aragon-voting.lidopm-testnet-prater.eth", - "id": "0xee7f2abf043afe722001aaa900627a6e29adcbcce63a561fbd97e0a0c6429b94", - "proxyAddress": "0xbc0B67b4553f4CF52a913DE9A6eD0057E2E758Db", - "baseAddress": "0x3DB95165e8efaF08a97A35F297FbCBd57a97aFe4", - "contentURI": "0x697066733a516d5962774366374d6e6932797a31553358334769485667396f35316a6b53586731533877433257547755684859" + "implementation": { + "contract": "@aragon/apps-lido/apps/voting/contracts/Voting.sol", + "address": "0x3DB95165e8efaF08a97A35F297FbCBd57a97aFe4", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-voting", + "fullName": "aragon-voting.lidopm-testnet-prater.eth", + "id": "0xee7f2abf043afe722001aaa900627a6e29adcbcce63a561fbd97e0a0c6429b94", + "contentURI": "0x697066733a516d5962774366374d6e6932797a31553358334769485667396f35316a6b53586731533877433257547755684859" + }, + "proxy": { + "address": "0xbc0B67b4553f4CF52a913DE9A6eD0057E2E758Db", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + } }, "vestingParams": { "unvestedTokensAmount": "230000000000000000000000", @@ -144,11 +204,13 @@ "deployTx": "0x3bce97664f6003ddf4e3cf7178527dbff6098b1a6fc9ba7c337cb6aca4ea91fb", "contract": "LidoExecutionLayerRewardsVault" }, - "dummyImplementation": { - "address": "0x6A03b1BbB79460169a205eFBCBc77ebE1011bCf8" + "dummyEmptyContract": { + "address": "0x6A03b1BbB79460169a205eFBCBc77ebE1011bCf8", + "contract": "contracts/0.8.9/test_helpers/DummyEmptyContract.sol", + "constructorArgs": [] }, "burner": { - "parameters": { + "deployParameters": { "totalCoverSharesBurnt": "0", "totalNonCoverSharesBurnt": "0" }, @@ -160,11 +222,10 @@ "0", "0" ], - "contract": "Burner", - "implementationDeployCommit": "85a41c45d5d45b1a35118ad6023e6c7ead1072d2" + "contract": "Burner" }, - "hashConsensusForAccounting": { - "parameters": { + "hashConsensusForAccountingOracle": { + "deployParameters": { "fastLaneLengthSlots": 10, "epochsPerFrame": 40 }, @@ -181,7 +242,7 @@ ] }, "accountingOracle": { - "parameters": { + "deployParameters": { "consensusVersion": 1 }, "contract": "AccountingOracle", @@ -195,8 +256,8 @@ 1616508000 ] }, - "hashConsensusForValidatorsExitBus": { - "parameters": { + "hashConsensusForValidatorsExitBusOracle": { + "deployParameters": { "fastLaneLengthSlots": 10, "epochsPerFrame": 20 }, @@ -213,7 +274,7 @@ ] }, "validatorsExitBusOracle": { - "parameters": { + "deployParameters": { "consensusVersion": 1 }, "contract": "ValidatorsExitBusOracle", @@ -225,9 +286,8 @@ "0x1eDf09b5023DC86737b59dE68a8130De878984f5" ] }, - "depositorPreviousAddress": "0xEd23AD3EA5Fb9d10e7371Caef1b141AD1C23A80c", "depositSecurityModule": { - "parameters": { + "deployParameters": { "maxDepositsPerBlock": 0, "minDepositBlockDistance": 1200, "pauseIntentValidityPeriodBlocks": 10 @@ -245,7 +305,7 @@ }, "oracleReportSanityChecker": { "deployCommit": "85a41c45d5d45b1a35118ad6023e6c7ead1072d2", - "parameters": { + "deployParameters": { "churnValidatorsPerDayLimit": 15000, "oneOffCLBalanceDecreaseBPLimit": 500, "annualBalanceIncreaseBPLimit": 1000, @@ -288,7 +348,7 @@ }, "withdrawalQueueERC721": { "implementationDeployCommit": "85a41c45d5d45b1a35118ad6023e6c7ead1072d2", - "parameters": { + "deployParameters": { "name": "stETH Withdrawal NFT", "symbol": "unstETH" }, @@ -302,7 +362,7 @@ ] }, "oracleDaemonConfig": { - "parameters": { + "deployParameters": { "NORMALIZED_CL_REWARD_PER_EPOCH": 64, "NORMALIZED_CL_REWARD_MISTAKE_RATE_BP": 1000, "REBASE_CHECK_NEAREST_EPOCH_DISTANCE": 4, diff --git a/deployed-goerlidebug.json b/deployed-goerlidebug.json deleted file mode 100644 index 7f5a6a845..000000000 --- a/deployed-goerlidebug.json +++ /dev/null @@ -1,423 +0,0 @@ -{ - "ipfsAPI": "http://127.0.0.1:5001/api/v0", - "multisigAddress": "0x22896Bfc68814BFD855b1a167255eE497006e730", - "owner": "0x22896Bfc68814BFD855b1a167255eE497006e730", - "gateSealAddress": "0x0000000000000000000000000000000000000000", - "lidoApmEnsName": "lidopm.eth", - "lidoApmEnsRegDurationSec": 94608000, - "daoAragonId": "lido-dao", - "chainSpec": { - "slotsPerEpoch": 32, - "secondsPerSlot": 12, - "genesisTime": "1616508000", - "depositContract": "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b" - }, - "daoInitialSettings": { - "voting": { - "minSupportRequired": "500000000000000000", - "minAcceptanceQuorum": "50000000000000000", - "voteDuration": 30, - "objectionPhaseDuration": 1 - }, - "fee": { - "totalPercent": 10, - "treasuryPercent": 0, - "insurancePercent": 50, - "nodeOperatorsPercent": 50 - }, - "token": { - "name": "TEST Lido DAO Token", - "symbol": "TLDO" - } - }, - "vestingParams": { - "unvestedTokensAmount": "230000000000000000000000", - "holders": { - "0xb4124cEB3451635DAcedd11767f004d8a28c6eE7": "530000000000000000000000", - "0x8401Eb5ff34cc943f096A32EF3d5113FEbE8D4Eb": "15000000000000000000000", - "0x306469457266CBBe7c0505e8Aad358622235e768": "15000000000000000000000", - "0xd873F6DC68e3057e4B7da74c6b304d0eF0B484C7": "15000000000000000000000", - "0xDcC5dD922fb1D0fd0c450a0636a8cE827521f0eD": "15000000000000000000000", - "0x27E9727FD9b8CdDdd0854F56712AD9DF647FaB74": "15000000000000000000000", - "0x9766D2e7FFde358AD0A40BB87c4B88D9FAC3F4dd": "15000000000000000000000", - "0xBd7055AB500cD1b0b0B14c82BdBe83ADCc2e8D06": "15000000000000000000000", - "0xe8898A4E589457D979Da4d1BDc35eC2aaf5a3f8E": "15000000000000000000000" - }, - "start": 1639659600, - "cliff": 1639660100, - "end": 1639660100, - "revokable": false - }, - "burner": { - "parameters": { - "totalCoverSharesBurnt": "0", - "totalNonCoverSharesBurnt": "0" - }, - "contract": "Burner", - "address": "0x2d56dc394872B11EA53061b7D4d36d7627214dFa", - "constructorArgs": [ - "0x22896Bfc68814BFD855b1a167255eE497006e730", - "0x8B45EaC0C592371E25d375136d3739A9bE91499B", - "0xFFA37E1dC50dB4df15A87F2f932B7b2315F40F7E", - "0", - "0" - ] - }, - "legacyOracle": { - "parameters": { - "lastCompletedEpochId": 0 - } - }, - "hashConsensusForAccounting": { - "parameters": { - "fastLaneLengthSlots": 10, - "epochsPerFrame": 12 - }, - "contract": "HashConsensus", - "address": "0x76fE2F037daaf56779875E93b2bdbc494013B2FC", - "constructorArgs": [ - 32, - 12, - "1616508000", - 12, - 10, - "0x22896Bfc68814BFD855b1a167255eE497006e730", - "0xB135C66Fb4186B730BaD960e8E396928Dfab1A0C" - ] - }, - "accountingOracle": { - "parameters": { - "maxExitedValidatorsPerDay": 240, - "maxExtraDataListItemsCount": 15, - "consensusVersion": 1 - }, - "contract": "AccountingOracle", - "implementation": "0x75791110E10730C70443C870fe55D5Bf4aAA6174", - "address": "0xB135C66Fb4186B730BaD960e8E396928Dfab1A0C", - "constructorArgs": [ - "0xf75A05430400e919Ff26C34862d9E7c4D0D71fc0", - "0xFFA37E1dC50dB4df15A87F2f932B7b2315F40F7E", - "0x5fE58fba2b35047cc8705E72A1f6B064A74363C6", - 12, - 1616508000 - ] - }, - "hashConsensusForValidatorsExitBus": { - "parameters": { - "fastLaneLengthSlots": 10, - "epochsPerFrame": 4 - }, - "contract": "HashConsensus", - "address": "0x844d5B4424CB64b5280008a3D03C0CAEFfda4E68", - "constructorArgs": [ - 32, - 12, - "1616508000", - 4, - 10, - "0x22896Bfc68814BFD855b1a167255eE497006e730", - "0xb9e9D4a4297B41006d598eb9B0769113Bc1B2e7A" - ] - }, - "validatorsExitBusOracle": { - "parameters": { - "consensusVersion": 1 - }, - "contract": "ValidatorsExitBusOracle", - "implementation": "0xDa7AeD7976F77F8eAe033cfDe60a9141ccC7e468", - "address": "0xb9e9D4a4297B41006d598eb9B0769113Bc1B2e7A", - "constructorArgs": [ - 12, - "1616508000", - "0xf75A05430400e919Ff26C34862d9E7c4D0D71fc0" - ] - }, - "depositSecurityModule": { - "parameters": { - "maxDepositsPerBlock": 150, - "minDepositBlockDistance": 5, - "pauseIntentValidityPeriodBlocks": 6646 - }, - "contract": "DepositSecurityModule", - "address": "0x9322D057df8fAbb9915ed1b0F67A6CcE36A680a4", - "constructorArgs": [ - "0xFFA37E1dC50dB4df15A87F2f932B7b2315F40F7E", - "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b", - "0xCbD1baA16816880F1b66639282a92ea4a85D6976", - 150, - 5, - 6646 - ] - }, - "oracleReportSanityChecker": { - "parameters": { - "churnValidatorsPerDayLimit": 1500, - "oneOffCLBalanceDecreaseBPLimit": 500, - "annualBalanceIncreaseBPLimit": 1000, - "simulatedShareRateDeviationBPLimit": 250, - "maxValidatorExitRequestsPerReport": 2000, - "maxAccountingExtraDataListItemsCount": 100, - "maxNodeOperatorsPerExtraDataItemCount": 100, - "requestTimestampMargin": 128, - "maxPositiveTokenRebase": 5000000 - }, - "contract": "OracleReportSanityChecker", - "address": "0x6555cf672e0bB5d995B1A154bA0630cd8B5bB028", - "constructorArgs": [ - "0xf75A05430400e919Ff26C34862d9E7c4D0D71fc0", - "0x22896Bfc68814BFD855b1a167255eE497006e730", - [ - 1500, - 500, - 1000, - 250, - 2000, - 100, - 100, - 128, - 5000000 - ], - [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [] - ] - ] - }, - "nodeOperatorsRegistry": { - "parameters": { - "stakingModuleTypeId": "curated-onchain-v1", - "stuckPenaltyDelay": "172800" - } - }, - "withdrawalQueueERC721": { - "parameters": { - "name": "stETH Withdrawal NFT", - "symbol": "unstETH" - }, - "contract": "WithdrawalQueueERC721", - "implementation": "0x9CB63c882f236B8549cCD33dd33a9d2ffa9e82ff", - "address": "0x3Bf0a905DED9fD15C6c8DcB90DC88C4460d691b5", - "constructorArgs": [ - "0xb7dD6c20BFA5925682e25BF13C3c74E2679e86aE", - "stETH Withdrawal NFT", - "unstETH" - ] - }, - "networkId": 5, - "chainId": "5", - "aragonEnsLabelName": "aragonpm", - "ensAddress": "0x9c7cbd3458B72Ca78Ed4AbE0a6586CEC03A01D2d", - "ensFactoryAddress": "0x44435f7D9E73374EF0fFAe0D15A312D45D1816CC", - "ensFactoryConstructorArgs": [], - "kernelBaseAddress": "0xfab35b116430634D528031eeb95F6d12f2778f59", - "kernelBaseConstructorArgs": [ - true - ], - "aclBaseAddress": "0xb1985Cbf532B5C3Abdf22104A0013E73cec76290", - "aclBaseConstructorArgs": [], - "evmScriptRegistryFactoryAddress": "0xca989d74cb9f5A3C0da81B11b9AC6e0D03eBAFc5", - "evmScriptRegistryFactoryConstructorArgs": [], - "daoFactoryAddress": "0xC01fC1F2787687Bc656EAc0356ba9Db6e6b7afb7", - "daoFactoryConstructorArgs": [ - "0xfab35b116430634D528031eeb95F6d12f2778f59", - "0xb1985Cbf532B5C3Abdf22104A0013E73cec76290", - "0xca989d74cb9f5A3C0da81B11b9AC6e0D03eBAFc5" - ], - "apmRegistryBaseAddress": "0x5F4FEf09Cbd5ad743632Fb869E80294933473f0B", - "apmRepoBaseAddress": "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8", - "ensSubdomainRegistrarBaseAddress": "0xF0d576c7d934bBeCc68FE15F1c5DAF98ea2B78bb", - "apmRegistryFactoryAddress": "0xE154732c5Eab277fd88a9fF6Bdff7805eD97BCB1", - "apmRegistryFactoryConstructorArgs": [ - "0xC01fC1F2787687Bc656EAc0356ba9Db6e6b7afb7", - "0x5F4FEf09Cbd5ad743632Fb869E80294933473f0B", - "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8", - "0xF0d576c7d934bBeCc68FE15F1c5DAF98ea2B78bb", - "0x9c7cbd3458B72Ca78Ed4AbE0a6586CEC03A01D2d", - "0x0000000000000000000000000000000000000000" - ], - "aragonApmRegistryAddress": "0x11f479Ba6cE12F23Bb654fBD632F8c5c74b200B6", - "aragonEnsNodeName": "aragonpm.eth", - "aragonEnsNode": "0x9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba", - "miniMeTokenFactoryAddress": "0xc7cc160b58F8Bb0baC94b80847E2CF2800565C50", - "miniMeTokenFactoryConstructorArgs": [], - "aragonIDAddress": "0xd517d9d04DA9B47dA23df91261bd3bF435BE964A", - "aragonIDConstructorArgs": [ - "0x9c7cbd3458B72Ca78Ed4AbE0a6586CEC03A01D2d", - "0x5b0d38607838657ee8b58d360eA83eDEc593BC74", - "0x7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86" - ], - "aragonIDEnsNodeName": "aragonid.eth", - "aragonIDEnsNode": "0x7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86", - "app:aragon-agent": { - "implementation": { - "contract": "Agent", - "address": "0x32f236423928c2c138F46351D9E5FD26331B1aa4", - "constructorArgs": [] - }, - "name": "aragon-agent", - "fullName": "aragon-agent.lidopm.eth", - "id": "0x701a4fd1f5174d12a0f1d9ad2c88d0ad11ab6aad0ac72b7d9ce621815f8016a9", - "proxyAddress": "0x8B45EaC0C592371E25d375136d3739A9bE91499B" - }, - "app:aragon-finance": { - "implementation": { - "contract": "Finance", - "address": "0xd6EbF043D30A7fe46D1Db32BA90a0A51207FE229", - "constructorArgs": [] - }, - "name": "aragon-finance", - "fullName": "aragon-finance.lidopm.eth", - "id": "0x5c9918c99c4081ca9459c178381be71d9da40e49e151687da55099c49a4237f1", - "proxyAddress": "0xCbf0eC3495AF55c7b4972b2368B638A3F5499231" - }, - "app:aragon-token-manager": { - "implementation": { - "contract": "TokenManager", - "address": "0x045dd46212A178428c088573A7d102B9d89a022A", - "constructorArgs": [] - }, - "name": "aragon-token-manager", - "fullName": "aragon-token-manager.lidopm.eth", - "id": "0xcd567bdf93dd0f6acc3bc7f2155f83244d56a65abbfbefb763e015420102c67b", - "proxyAddress": "0xE70b8B8d460f81Baf0B70D803436a91f966535ff" - }, - "app:aragon-voting": { - "implementation": { - "contract": "Voting", - "address": "0x6AcA050709469F1f98d8f40f68b1C83B533cd2b2", - "constructorArgs": [] - }, - "name": "aragon-voting", - "fullName": "aragon-voting.lidopm.eth", - "id": "0x0abcd104777321a82b010357f20887d61247493d89d2e987ff57bcecbde00e1e", - "proxyAddress": "0x2b283b6548061B29CaC29054e3a9B4e9Ced87559" - }, - "lidoTemplate": { - "contract": "LidoTemplate", - "address": "0x4E97A3972ce8511D87F334dA17a2C332542a5246", - "constructorArgs": [ - "0x22896Bfc68814BFD855b1a167255eE497006e730", - "0xC01fC1F2787687Bc656EAc0356ba9Db6e6b7afb7", - "0x9c7cbd3458B72Ca78Ed4AbE0a6586CEC03A01D2d", - "0xc7cc160b58F8Bb0baC94b80847E2CF2800565C50", - "0xd517d9d04DA9B47dA23df91261bd3bF435BE964A", - "0xE154732c5Eab277fd88a9fF6Bdff7805eD97BCB1" - ] - }, - "app:lido": { - "contract": "Lido", - "implementation": "0xa067FC95c22D51c3bC35fd4BE37414Ee8cc890d2", - "constructorArgs": [], - "name": "lido", - "fullName": "lido.lidopm.eth", - "id": "0x3ca7c3e38968823ccb4c78ea688df41356f182ae1d159e4ee608d30d68cef320", - "proxyAddress": "0xFFA37E1dC50dB4df15A87F2f932B7b2315F40F7E" - }, - "app:oracle": { - "contract": "LegacyOracle", - "implementation": "0x210f60EC8A4D020b3e22f15fee2d2364e9b22357", - "constructorArgs": [], - "name": "oracle", - "fullName": "oracle.lidopm.eth", - "id": "0x8b47ba2a8454ec799cd91646e7ec47168e91fd139b23f017455f3e5898aaba93", - "proxyAddress": "0x5fE58fba2b35047cc8705E72A1f6B064A74363C6" - }, - "app:node-operators-registry": { - "contract": "NodeOperatorsRegistry", - "implementation": "0xffDDF7025410412deaa05E3E1cE68FE53208afcb", - "constructorArgs": [], - "name": "node-operators-registry", - "fullName": "node-operators-registry.lidopm.eth", - "id": "0x7071f283424072341f856ac9e947e7ec0eb68719f757a7e785979b6b8717579d", - "proxyAddress": "0xe328c39F1673B13Bd369920FeAe5Af7a5209c3B0" - }, - "daoTemplateDeployBlock": 9762437, - "lidoApmDeployArguments": [ - "0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae", - "0x90a9580abeb24937fc658e497221c81ce8553b560304f9525821f32b17dbdaec" - ], - "lidoApmDeployTx": "0x283601f2bbd8b6c9886ad1f954088a73fc076fce96279fbbce09aee4bff06361", - "lidoApmAddress": "0xbBD27f48E11C04DF7F43f2698CB72abbf6b74332", - "createAppReposTx": "0x8a5f5d28f29cc4f3414bc3e2c9f1e1b062c72e70011279d291bebf737e80107f", - "newDaoTx": "0x9f407b6cbca2dda60f92c25551072c162dc7124c078de0712dccc4ed3928a126", - "daoAddress": "0x4cb18F390fF018a4dE5C4ED69Fa243Ecb2423847", - "daoTokenAddress": "0x09D6C024981961e7659707F408632A95404705c9", - "oracleDaemonConfig": { - "contract": "OracleDaemonConfig", - "address": "0x751eBebAe072bB6d1Bf084aBcd51178bB7394b89", - "constructorArgs": [ - "0x22896Bfc68814BFD855b1a167255eE497006e730", - [] - ] - }, - "lidoLocator": { - "contract": "LidoLocator", - "implementation": "0xd97563b3dd7e55f29Aa3aC451A5039Ef88d02428", - "address": "0xf75A05430400e919Ff26C34862d9E7c4D0D71fc0", - "constructorArgs": [ - [ - "0xB135C66Fb4186B730BaD960e8E396928Dfab1A0C", - "0x9322D057df8fAbb9915ed1b0F67A6CcE36A680a4", - "0xDDeF66a23D6dF581B43d27f8a96883f84f79c936", - "0x5fE58fba2b35047cc8705E72A1f6B064A74363C6", - "0xFFA37E1dC50dB4df15A87F2f932B7b2315F40F7E", - "0x6555cf672e0bB5d995B1A154bA0630cd8B5bB028", - "0x5fE58fba2b35047cc8705E72A1f6B064A74363C6", - "0x2d56dc394872B11EA53061b7D4d36d7627214dFa", - "0xCbD1baA16816880F1b66639282a92ea4a85D6976", - "0x8B45EaC0C592371E25d375136d3739A9bE91499B", - "0xb9e9D4a4297B41006d598eb9B0769113Bc1B2e7A", - "0x3Bf0a905DED9fD15C6c8DcB90DC88C4460d691b5", - "0x2b87Be0d7d87912D46b099205bB65f1cEAB6d37f", - "0x751eBebAe072bB6d1Bf084aBcd51178bB7394b89" - ] - ] - }, - "eip712StETH": { - "contract": "EIP712StETH", - "address": "0xb09e0C30cDAAb88527966F64D5BD084cC1bA31Eb", - "constructorArgs": [ - "0xFFA37E1dC50dB4df15A87F2f932B7b2315F40F7E" - ] - }, - "wstETH": { - "contract": "WstETH", - "address": "0xb7dD6c20BFA5925682e25BF13C3c74E2679e86aE", - "constructorArgs": [ - "0xFFA37E1dC50dB4df15A87F2f932B7b2315F40F7E" - ] - }, - "withdrawalVault": { - "contract": "WithdrawalVault", - "implementation": "0x1342e88645FEd0106191869390e40011708094c6", - "address": "0x2b87Be0d7d87912D46b099205bB65f1cEAB6d37f", - "constructorArgs": [ - "0xFFA37E1dC50dB4df15A87F2f932B7b2315F40F7E", - "0x8B45EaC0C592371E25d375136d3739A9bE91499B" - ] - }, - "executionLayerRewardsVault": { - "contract": "LidoExecutionLayerRewardsVault", - "address": "0xDDeF66a23D6dF581B43d27f8a96883f84f79c936", - "constructorArgs": [ - "0xFFA37E1dC50dB4df15A87F2f932B7b2315F40F7E", - "0x8B45EaC0C592371E25d375136d3739A9bE91499B" - ] - }, - "stakingRouter": { - "contract": "StakingRouter", - "implementation": "0x29261C17e0A4621Ae0EF2c6276cD1F10D37a6052", - "address": "0xCbD1baA16816880F1b66639282a92ea4a85D6976", - "constructorArgs": [ - "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b" - ] - } -} diff --git a/deployed-holesky.json b/deployed-holesky.json index eee81747e..364a20e73 100644 --- a/deployed-holesky.json +++ b/deployed-holesky.json @@ -1,4 +1,5 @@ { + "deployCommit": "eda16728a7c80f1bb55c3b91c668aae190a1efb0", "deployer": "0x22896Bfc68814BFD855b1a167255eE497006e730", "gateSeal": { "factoryAddress": "0x1134F7077055b0B3559BE52AfeF9aA22A0E1eEC2", @@ -46,7 +47,7 @@ "revokable": false }, "burner": { - "parameters": { + "deployParameters": { "totalCoverSharesBurnt": "0", "totalNonCoverSharesBurnt": "0" }, @@ -61,12 +62,12 @@ ] }, "legacyOracle": { - "parameters": { + "deployParameters": { "lastCompletedEpochId": 0 } }, - "hashConsensusForAccounting": { - "parameters": { + "hashConsensusForAccountingOracle": { + "deployParameters": { "fastLaneLengthSlots": 10, "epochsPerFrame": 12 }, @@ -83,9 +84,7 @@ ] }, "accountingOracle": { - "parameters": { - "maxExitedValidatorsPerDay": 240, - "maxExtraDataListItemsCount": 15, + "deployParameters": { "consensusVersion": 1 }, "proxy": { @@ -107,11 +106,10 @@ 12, 1695902400 ] - }, - "address": "0x4E97A3972ce8511D87F334dA17a2C332542a5246" + } }, - "hashConsensusForValidatorsExitBus": { - "parameters": { + "hashConsensusForValidatorsExitBusOracle": { + "deployParameters": { "fastLaneLengthSlots": 10, "epochsPerFrame": 4 }, @@ -128,7 +126,7 @@ ] }, "validatorsExitBusOracle": { - "parameters": { + "deployParameters": { "consensusVersion": 1 }, "proxy": { @@ -148,11 +146,10 @@ 1695902400, "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" ] - }, - "address": "0xffDDF7025410412deaa05E3E1cE68FE53208afcb" + } }, "depositSecurityModule": { - "parameters": { + "deployParameters": { "maxDepositsPerBlock": 150, "minDepositBlockDistance": 5, "pauseIntentValidityPeriodBlocks": 6646 @@ -169,7 +166,7 @@ ] }, "oracleReportSanityChecker": { - "parameters": { + "deployParameters": { "churnValidatorsPerDayLimit": 1500, "oneOffCLBalanceDecreaseBPLimit": 500, "annualBalanceIncreaseBPLimit": 1000, @@ -211,13 +208,13 @@ ] }, "nodeOperatorsRegistry": { - "parameters": { + "deployParameters": { "stakingModuleTypeId": "curated-onchain-v1", "stuckPenaltyDelay": 172800 } }, "withdrawalQueueERC721": { - "parameters": { + "deployParameters": { "name": "stETH Withdrawal NFT", "symbol": "unstETH" }, @@ -238,8 +235,7 @@ "stETH Withdrawal NFT", "unstETH" ] - }, - "address": "0xc7cc160b58F8Bb0baC94b80847E2CF2800565C50" + } }, "networkId": 17000, "chainId": 17000, @@ -633,7 +629,7 @@ "0x22896Bfc68814BFD855b1a167255eE497006e730", [] ], - "parameters": { + "deployParameters": { "NORMALIZED_CL_REWARD_PER_EPOCH": 64, "NORMALIZED_CL_REWARD_MISTAKE_RATE_BP": 1000, "REBASE_CHECK_NEAREST_EPOCH_DISTANCE": 1, @@ -681,8 +677,7 @@ "0xC01fC1F2787687Bc656EAc0356ba9Db6e6b7afb7" ] ] - }, - "address": "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" + } }, "eip712StETH": { "contract": "contracts/0.8.9/EIP712StETH.sol", @@ -714,8 +709,7 @@ "0xdA7d2573Df555002503F29aA4003e398d28cc00f", "0xd517d9d04DA9B47dA23df91261bd3bF435BE964A" ] - }, - "address": "0xF0179dEC45a37423EAD4FaD5fCb136197872EAd9" + } }, "executionLayerRewardsVault": { "contract": "contracts/0.8.9/LidoExecutionLayerRewardsVault.sol", @@ -741,8 +735,7 @@ "constructorArgs": [ "0x4242424242424242424242424242424242424242" ] - }, - "address": "0xd6EbF043D30A7fe46D1Db32BA90a0A51207FE229" + } }, "app:simple-dvt": { "stakingRouterModuleParams": { diff --git a/deployed-mainnet.json b/deployed-mainnet.json index 97746c4bc..b39f322c8 100644 --- a/deployed-mainnet.json +++ b/deployed-mainnet.json @@ -4,24 +4,24 @@ "ipfsAPI": "https://ipfs.infura.io:5001/api/v0", "lidoApmEnsName": "lidopm.eth", "lidoApmEnsRegDurationSec": 94608000, + "deployer": "0x55Bc991b2edF3DDb4c520B222bE4F378418ff0fA", "daoAragonId": "lido-dao", "ensAddress": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", "daoFactoryAddress": "0x7378ad1ba8f3c8e64bbb2a04473edd35846360f1", "apmRegistryFactoryAddress": "0xa0BC4B67F5FacDE4E50EAFF48691Cfc43F4E280A", "miniMeTokenFactoryAddress": "0x909d05f384d0663ed4be59863815ab43b4f347ec", "aragonIDAddress": "0x546aa2eae2514494eeadb7bbb35243348983c59d", - "deployer": "0x55Bc991b2edF3DDb4c520B222bE4F378418ff0fA", + "chainSpec": { + "depositContractAddress": "0x00000000219ab540356cBB839Cbe05303d7705Fa", + "slotsPerEpoch": 32, + "secondsPerSlot": 12, + "genesisTime": 1606824023 + }, "daoInitialSettings": { "token": { "name": "Lido DAO Token", "symbol": "LDO" }, - "beaconSpec": { - "depositContractAddress": "0x00000000219ab540356cBB839Cbe05303d7705Fa", - "slotsPerEpoch": 32, - "secondsPerSlot": 12, - "genesisTime": 1606824023 - }, "voting": { "minSupportRequired": "500000000000000000", "minAcceptanceQuorum": "50000000000000000", @@ -103,7 +103,8 @@ "end": 1671321600, "revokable": false }, - "daoTemplate": { + "lidoTemplate": { + "contract": "contracts/0.4.24/template/LidoTemplate.sol", "address": "0x752350797CB92Ad3BF1295Faf904B27585e66BF5", "deployTx": "0xdcd4ebe028aa3663a1fe8bbc92ae8489045e29d2a6ef5284083d9be5c3fa5f19", "constructorArgs": [ @@ -177,31 +178,83 @@ "lidoApmAddress": "0x0cb113890b04B49455DfE06554e2D784598A29C9", "createAppReposTx": "0xf48cb21c6be021dd18bd8e02ce89ac7b924245b859f0a8b7c47e88a39016ed41", "newDaoTx": "0x3feabd79e8549ad68d1827c074fa7123815c80206498946293d5373a160fd866", - "daoAddress": "0xb8FFC3Cd6e7Cf5a098A1c92F48009765B24088Dc", "daoTokenAddress": "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32", + "aragon-kernel": { + "implementation": { + "contract": "@aragon/os/contracts/kernel/Kernel.sol", + "address": "0x2b33CF282f867A7FF693A66e11B0FcC5552e4425", + "constructorArgs": [ + true + ] + }, + "proxy": { + "address": "0xb8FFC3Cd6e7Cf5a098A1c92F48009765B24088Dc", + "contract": "@aragon/os/contracts/kernel/KernelProxy.sol" + } + }, "app:aragon-agent": { - "name": "aragon-agent", - "fullName": "aragon-agent.lidopm.eth", - "id": "0x701a4fd1f5174d12a0f1d9ad2c88d0ad11ab6aad0ac72b7d9ce621815f8016a9", - "address": "0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c" + "implementation": { + "contract": "@aragon/apps-agent/contracts/Agent.sol", + "address": "0x3A93C17FC82CC33420d1809dDA9Fb715cc89dd37", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-agent", + "fullName": "aragon-agent.lidopm.eth", + "id": "0x701a4fd1f5174d12a0f1d9ad2c88d0ad11ab6aad0ac72b7d9ce621815f8016a9" + }, + "proxy": { + "address": "0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + } }, "app:aragon-finance": { - "address": "0xB9E5CBB9CA5b0d659238807E84D0176930753d86", - "name": "aragon-finance", - "fullName": "aragon-finance.lidopm.eth", - "id": "0x5c9918c99c4081ca9459c178381be71d9da40e49e151687da55099c49a4237f1" + "implementation": { + "contract": "@aragon/apps-finance/contracts/Finance.sol", + "address": "0x836835289A2E81B66AE5d95b7c8dBC0480dCf9da", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-finance", + "fullName": "aragon-finance.lidopm.eth", + "id": "0x5c9918c99c4081ca9459c178381be71d9da40e49e151687da55099c49a4237f1" + }, + "proxy": { + "address": "0xB9E5CBB9CA5b0d659238807E84D0176930753d86", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + } }, "app:aragon-token-manager": { - "address": "0xf73a1260d222f447210581DDf212D915c09a3249", - "name": "aragon-token-manager", - "fullName": "aragon-token-manager.lidopm.eth", - "id": "0xcd567bdf93dd0f6acc3bc7f2155f83244d56a65abbfbefb763e015420102c67b" + "implementation": { + "contract": "@aragon/apps-lido/apps/token-manager/contracts/TokenManager.sol", + "address": "0xde3A93028F2283cc28756B3674BD657eaFB992f4", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-token-manager", + "fullName": "aragon-token-manager.lidopm.eth", + "id": "0xcd567bdf93dd0f6acc3bc7f2155f83244d56a65abbfbefb763e015420102c67b" + }, + "proxy": { + "address": "0xf73a1260d222f447210581DDf212D915c09a3249", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + } }, "app:aragon-voting": { - "address": "0x2e59A20f205bB85a89C53f1936454680651E618e", - "name": "aragon-voting", - "fullName": "aragon-voting.lidopm.eth", - "id": "0x0abcd104777321a82b010357f20887d61247493d89d2e987ff57bcecbde00e1e" + "implementation": { + "contract": "@aragon/apps-lido/apps/voting/contracts/Voting.sol", + "address": "0x72fb5253AD16307B9E773d2A78CaC58E309d5Ba4", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-voting", + "fullName": "aragon-voting.lidopm.eth", + "id": "0x0abcd104777321a82b010357f20887d61247493d89d2e987ff57bcecbde00e1e" + }, + "proxy": { + "address": "0x2e59A20f205bB85a89C53f1936454680651E618e", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + } }, "wstETH": { "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", @@ -251,6 +304,9 @@ } }, "accountingOracle": { + "deployParameters": { + "consensusVersion": 1 + }, "proxy": { "address": "0x852deD011285fe67063a08005c71a85690503Cee", "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", @@ -271,10 +327,7 @@ "0x442af784A788A5bd6F42A01Ebe9F287a871243fb", 12, 1606824023 - ], - "deployParameters": { - "consensusVersion": 1 - } + ] } }, "hashConsensusForValidatorsExitBusOracle": { diff --git a/deployed-testnet-defaults.json b/deployed-testnet-defaults.json index f070bd7cb..7a64ed840 100644 --- a/deployed-testnet-defaults.json +++ b/deployed-testnet-defaults.json @@ -44,49 +44,47 @@ "revokable": false }, "burner": { - "parameters": { + "deployParameters": { "totalCoverSharesBurnt": "0", "totalNonCoverSharesBurnt": "0" } }, "legacyOracle": { - "parameters": { + "deployParameters": { "lastCompletedEpochId": 0 } }, - "hashConsensusForAccounting": { - "parameters": { + "hashConsensusForAccountingOracle": { + "deployParameters": { "fastLaneLengthSlots": 10, "epochsPerFrame": 12 } }, "accountingOracle": { - "parameters": { - "maxExitedValidatorsPerDay": 240, - "maxExtraDataListItemsCount": 15, + "deployParameters": { "consensusVersion": 1 } }, - "hashConsensusForValidatorsExitBus": { - "parameters": { + "hashConsensusForValidatorsExitBusOracle": { + "deployParameters": { "fastLaneLengthSlots": 10, "epochsPerFrame": 4 } }, "validatorsExitBusOracle": { - "parameters": { + "deployParameters": { "consensusVersion": 1 } }, "depositSecurityModule": { - "parameters": { + "deployParameters": { "maxDepositsPerBlock": 150, "minDepositBlockDistance": 5, "pauseIntentValidityPeriodBlocks": 6646 } }, "oracleReportSanityChecker": { - "parameters": { + "deployParameters": { "churnValidatorsPerDayLimit": 1500, "oneOffCLBalanceDecreaseBPLimit": 500, "annualBalanceIncreaseBPLimit": 1000, @@ -99,7 +97,7 @@ } }, "oracleDaemonConfig": { - "parameters": { + "deployParameters": { "NORMALIZED_CL_REWARD_PER_EPOCH": 64, "NORMALIZED_CL_REWARD_MISTAKE_RATE_BP": 1000, "REBASE_CHECK_NEAREST_EPOCH_DISTANCE": 1, @@ -112,13 +110,13 @@ } }, "nodeOperatorsRegistry": { - "parameters": { + "deployParameters": { "stakingModuleTypeId": "curated-onchain-v1", "stuckPenaltyDelay": 172800 } }, "withdrawalQueueERC721": { - "parameters": { + "deployParameters": { "name": "stETH Withdrawal NFT", "symbol": "unstETH" } diff --git a/docs/scratch-deploy.md b/docs/scratch-deploy.md index 27d85ddd5..265d294f3 100644 --- a/docs/scratch-deploy.md +++ b/docs/scratch-deploy.md @@ -153,7 +153,7 @@ NB, that part of the actions require preliminary granting of the required roles, ```js await stakingRouter.grantRole(STAKING_MODULE_MANAGE_ROLE, agent.address, { from: agent.address }) await stakingRouter.addStakingModule( - state.nodeOperatorsRegistry.parameters.stakingModuleTypeId, + state.nodeOperatorsRegistry.deployParameters.stakingModuleTypeId, nodeOperatorsRegistry.address, NOR_STAKING_MODULE_TARGET_SHARE_BP, NOR_STAKING_MODULE_MODULE_FEE_BP, diff --git a/scripts/helpers/deploy.js b/scripts/helpers/deploy.js index e8de5f695..fef08b4d8 100644 --- a/scripts/helpers/deploy.js +++ b/scripts/helpers/deploy.js @@ -1,4 +1,4 @@ -const { readNetworkState, persistNetworkState } = require('./persisted-network-state') +const { readNetworkState, persistNetworkState, persistNetworkState2 } = require('./persisted-network-state') const { artifacts, ethers } = require('hardhat') const fs = require('fs').promises const chalk = require('chalk') @@ -275,7 +275,6 @@ async function deployBehindOssifiableProxy(nameInState, artifactName, proxyOwner address: implementation, constructorArgs: constructorArgs, } - state[nameInState].address = state[nameInState].proxy.address persistNetworkState(network.name, netId, state) console.log() diff --git a/scripts/scratch/11-finalize-dao.js b/scripts/scratch/11-finalize-dao.js index eb1347b42..f5c24f861 100644 --- a/scripts/scratch/11-finalize-dao.js +++ b/scripts/scratch/11-finalize-dao.js @@ -68,7 +68,7 @@ async function finalizeDAO({ web3, artifacts }) { await log.makeTx(template, 'finalizeDAO', [ state.daoAragonId, state.vestingParams.unvestedTokensAmount, - state.stakingRouter.address + state.stakingRouter.proxy.address ], { from: state.deployer }) } diff --git a/scripts/scratch/12-check-dao.js b/scripts/scratch/12-check-dao.js index f60a094ce..9f0925f96 100644 --- a/scripts/scratch/12-check-dao.js +++ b/scripts/scratch/12-check-dao.js @@ -111,7 +111,7 @@ async function checkDAO({ web3, artifacts }) { artifacts.require('Voting').at(apps[APP_NAMES.ARAGON_VOTING].proxyAddress), artifacts.require('Burner').at(state.burner.address), artifacts.require('LidoExecutionLayerRewardsVault').at(state.executionLayerRewardsVault["address"]), - artifacts.require('StakingRouter').at(state.stakingRouter.address), + artifacts.require('StakingRouter').at(state.stakingRouter.proxy.address), ]) log.splitter() diff --git a/scripts/scratch/13-deploy-non-aragon-contracts.js b/scripts/scratch/13-deploy-non-aragon-contracts.js index a5dc4f81e..6339ef405 100644 --- a/scripts/scratch/13-deploy-non-aragon-contracts.js +++ b/scripts/scratch/13-deploy-non-aragon-contracts.js @@ -14,8 +14,8 @@ const REQUIRED_NET_STATE = [ "daoInitialSettings", "oracleReportSanityChecker", "burner", - "hashConsensusForAccounting", - "hashConsensusForValidatorsExitBus", + "hashConsensusForAccountingOracle", + "hashConsensusForValidatorsExitBusOracle", "withdrawalQueueERC721", ] @@ -31,11 +31,11 @@ async function deployNewContracts({ web3, artifacts }) { const agentAddress = state["app:aragon-agent"].proxy.address const treasuryAddress = agentAddress const chainSpec = state["chainSpec"] - const depositSecurityModuleParams = state["depositSecurityModule"].parameters - const burnerParams = state["burner"].parameters - const hashConsensusForAccountingParams = state["hashConsensusForAccounting"].parameters - const hashConsensusForExitBusParams = state["hashConsensusForValidatorsExitBus"].parameters - const withdrawalQueueERC721Params = state["withdrawalQueueERC721"].parameters + const depositSecurityModuleParams = state["depositSecurityModule"].deployParameters + const burnerParams = state["burner"].deployParameters + const hashConsensusForAccountingParams = state["hashConsensusForAccountingOracle"].deployParameters + const hashConsensusForExitBusParams = state["hashConsensusForValidatorsExitBusOracle"].deployParameters + const withdrawalQueueERC721Params = state["withdrawalQueueERC721"].deployParameters if (!DEPLOYER) { throw new Error('Deployer is not specified') @@ -45,7 +45,7 @@ async function deployNewContracts({ web3, artifacts }) { const admin = DEPLOYER const deployer = DEPLOYER - const sanityChecks = state["oracleReportSanityChecker"].parameters + const sanityChecks = state["oracleReportSanityChecker"].deployParameters logWideSplitter() if (!chainSpec.depositContract) { @@ -203,7 +203,7 @@ async function deployNewContracts({ web3, artifacts }) { admin, // admin accountingOracleAddress, // reportProcessor ] - await deployWithoutProxy("hashConsensusForAccounting", "HashConsensus", deployer, hashConsensusForAccountingArgs) + await deployWithoutProxy("hashConsensusForAccountingOracle", "HashConsensus", deployer, hashConsensusForAccountingArgs) logWideSplitter() // @@ -230,7 +230,7 @@ async function deployNewContracts({ web3, artifacts }) { admin, // admin validatorsExitBusOracleAddress, // reportProcessor ] - await deployWithoutProxy("hashConsensusForValidatorsExitBus", "HashConsensus", deployer, hashConsensusForExitBusArgs) + await deployWithoutProxy("hashConsensusForValidatorsExitBusOracle", "HashConsensus", deployer, hashConsensusForExitBusArgs) logWideSplitter() diff --git a/scripts/scratch/14-initialize-non-aragon-contracts.js b/scripts/scratch/14-initialize-non-aragon-contracts.js index 1bd3f7abf..406525b98 100644 --- a/scripts/scratch/14-initialize-non-aragon-contracts.js +++ b/scripts/scratch/14-initialize-non-aragon-contracts.js @@ -17,9 +17,9 @@ const REQUIRED_NET_STATE = [ "daoInitialSettings", "eip712StETH", "accountingOracle", - "hashConsensusForAccounting", + "hashConsensusForAccountingOracle", "validatorsExitBusOracle", - "hashConsensusForValidatorsExitBus", + "hashConsensusForValidatorsExitBusOracle", "withdrawalQueueERC721", "withdrawalVault", "nodeOperatorsRegistry", @@ -37,18 +37,18 @@ async function deployNewContracts({ web3, artifacts }) { const lidoAddress = state["app:lido"].proxy.address const legacyOracleAddress = state["app:oracle"].proxy.address const nodeOperatorsRegistryAddress = state["app:node-operators-registry"].proxy.address - const nodeOperatorsRegistryParams = state["nodeOperatorsRegistry"].parameters - - const validatorsExitBusOracleParams = state["validatorsExitBusOracle"].parameters - const accountingOracleParams = state["accountingOracle"].parameters - - const stakingRouterAddress = state["stakingRouter"].address - const withdrawalQueueAddress = state["withdrawalQueueERC721"].address - const lidoLocatorAddress = state["lidoLocator"].address - const accountingOracleAddress = state["accountingOracle"].address - const hashConsensusForAccountingAddress = state["hashConsensusForAccounting"].address - const ValidatorsExitBusOracleAddress = state["validatorsExitBusOracle"].address - const hashConsensusForValidatorsExitBusOracleAddress = state["hashConsensusForValidatorsExitBus"].address + const nodeOperatorsRegistryParams = state["nodeOperatorsRegistry"].deployParameters + + const validatorsExitBusOracleParams = state["validatorsExitBusOracle"].deployParameters + const accountingOracleParams = state["accountingOracle"].deployParameters + + const stakingRouterAddress = state["stakingRouter"].proxy.address + const withdrawalQueueAddress = state["withdrawalQueueERC721"].proxy.address + const lidoLocatorAddress = state["lidoLocator"].proxy.address + const accountingOracleAddress = state["accountingOracle"].proxy.address + const hashConsensusForAccountingAddress = state["hashConsensusForAccountingOracle"].address + const ValidatorsExitBusOracleAddress = state["validatorsExitBusOracle"].proxy.address + const hashConsensusForValidatorsExitBusOracleAddress = state["hashConsensusForValidatorsExitBusOracle"].address const eip712StETHAddress = state["eip712StETH"].address const withdrawalVaultAddress = state["withdrawalVault"].proxy.address const oracleDaemonConfigAddress = state.oracleDaemonConfig.address @@ -151,7 +151,7 @@ async function deployNewContracts({ web3, artifacts }) { const oracleDaemonConfig = await artifacts.require('OracleDaemonConfig').at(oracleDaemonConfigAddress) const CONFIG_MANAGER_ROLE = await oracleDaemonConfig.CONFIG_MANAGER_ROLE() await log.makeTx(oracleDaemonConfig, 'grantRole', [CONFIG_MANAGER_ROLE, testnetAdmin], { from: testnetAdmin }) - for (const [key, value] of Object.entries(state.oracleDaemonConfig.parameters)) { + for (const [key, value] of Object.entries(state.oracleDaemonConfig.deployParameters)) { await log.makeTx(oracleDaemonConfig, 'set', [key, hexPaddedToByte(value)], { from: DEPLOYER }) } await log.makeTx(oracleDaemonConfig, 'renounceRole', [CONFIG_MANAGER_ROLE, testnetAdmin], { from: testnetAdmin }) diff --git a/scripts/scratch/15-grant-roles.js b/scripts/scratch/15-grant-roles.js index 117c722c3..a9d7eb770 100644 --- a/scripts/scratch/15-grant-roles.js +++ b/scripts/scratch/15-grant-roles.js @@ -15,8 +15,8 @@ const REQUIRED_NET_STATE = [ "burner", "daoInitialSettings", "eip712StETH", - "hashConsensusForAccounting", - "hashConsensusForValidatorsExitBus", + "hashConsensusForAccountingOracle", + "hashConsensusForValidatorsExitBusOracle", "lidoLocator", "stakingRouter", "validatorsExitBusOracle", @@ -39,10 +39,10 @@ async function deployNewContracts({ web3, artifacts }) { const gateSealAddress = state.gateSeal.address const burnerAddress = state["burner"].address - const stakingRouterAddress = state["stakingRouter"].address - const withdrawalQueueAddress = state["withdrawalQueueERC721"].address - const accountingOracleAddress = state["accountingOracle"].address - const validatorsExitBusOracleAddress = state["validatorsExitBusOracle"].address + const stakingRouterAddress = state["stakingRouter"].proxy.address + const withdrawalQueueAddress = state["withdrawalQueueERC721"].proxy.address + const accountingOracleAddress = state["accountingOracle"].proxy.address + const validatorsExitBusOracleAddress = state["validatorsExitBusOracle"].proxy.address const depositSecurityModuleAddress = state.depositSecurityModule.address const deployer = state.deployer diff --git a/scripts/scratch/16-plug-curated-staking-module.js b/scripts/scratch/16-plug-curated-staking-module.js index b6afce185..66ee12a71 100644 --- a/scripts/scratch/16-plug-curated-staking-module.js +++ b/scripts/scratch/16-plug-curated-staking-module.js @@ -17,8 +17,8 @@ const REQUIRED_NET_STATE = [ "burner", "daoInitialSettings", "eip712StETH", - "hashConsensusForAccounting", - "hashConsensusForValidatorsExitBus", + "hashConsensusForAccountingOracle", + "hashConsensusForValidatorsExitBusOracle", "lidoLocator", "validatorsExitBusOracle", "withdrawalQueueERC721", @@ -40,13 +40,13 @@ async function deployNewContracts({ web3, artifacts }) { assertRequiredNetworkState(state, REQUIRED_NET_STATE) const deployer = state.deployer - const stakingRouter = await artifacts.require('StakingRouter').at(state.stakingRouter.address) + const stakingRouter = await artifacts.require('StakingRouter').at(state.stakingRouter.proxy.address) const nodeOperatorsRegistry = await artifacts.require('NodeOperatorsRegistry').at(state['app:node-operators-registry'].proxy.address) await log.makeTx(stakingRouter, 'grantRole', [STAKING_MODULE_MANAGE_ROLE, deployer], { from: deployer }) await log.makeTx(stakingRouter, 'addStakingModule', [ - state.nodeOperatorsRegistry.parameters.stakingModuleTypeId, + state.nodeOperatorsRegistry.deployParameters.stakingModuleTypeId, nodeOperatorsRegistry.address, NOR_STAKING_MODULE_TARGET_SHARE_BP, NOR_STAKING_MODULE_MODULE_FEE_BP, diff --git a/scripts/scratch/17-transfer-roles.js b/scripts/scratch/17-transfer-roles.js index ba6fcd8b2..3a2637509 100644 --- a/scripts/scratch/17-transfer-roles.js +++ b/scripts/scratch/17-transfer-roles.js @@ -7,8 +7,8 @@ const REQUIRED_NET_STATE = [ "accountingOracle", "burner", "daoInitialSettings", - "hashConsensusForAccounting", - "hashConsensusForValidatorsExitBus", + "hashConsensusForAccountingOracle", + "hashConsensusForValidatorsExitBusOracle", "lidoLocator", "stakingRouter", "validatorsExitBusOracle", @@ -52,19 +52,19 @@ async function deployNewContracts({ web3, artifacts }) { const agent = state["app:aragon-agent"].proxy.address await transferOZAdmin('Burner', state.burner.address, deployer, agent) - await transferOZAdmin('HashConsensus', state.hashConsensusForAccounting.address, deployer, agent) - await transferOZAdmin('HashConsensus', state.hashConsensusForValidatorsExitBus.address, deployer, agent) - await transferOZAdmin('StakingRouter', state.stakingRouter.address, deployer, agent) - await transferOZAdmin('AccountingOracle', state.accountingOracle.address, deployer, agent) - await transferOZAdmin('ValidatorsExitBusOracle', state.validatorsExitBusOracle.address, deployer, agent) - await transferOZAdmin('WithdrawalQueueERC721', state.withdrawalQueueERC721.address, deployer, agent) + await transferOZAdmin('HashConsensus', state.hashConsensusForAccountingOracle.address, deployer, agent) + await transferOZAdmin('HashConsensus', state.hashConsensusForValidatorsExitBusOracle.address, deployer, agent) + await transferOZAdmin('StakingRouter', state.stakingRouter.proxy.address, deployer, agent) + await transferOZAdmin('AccountingOracle', state.accountingOracle.proxy.address, deployer, agent) + await transferOZAdmin('ValidatorsExitBusOracle', state.validatorsExitBusOracle.proxy.address, deployer, agent) + await transferOZAdmin('WithdrawalQueueERC721', state.withdrawalQueueERC721.proxy.address, deployer, agent) await transferOZAdmin('OracleDaemonConfig', state.oracleDaemonConfig.address, deployer, agent) - await changeOssifiableProxyAdmin(state.lidoLocator.address, deployer, agent) - await changeOssifiableProxyAdmin(state.stakingRouter.address, deployer, agent) - await changeOssifiableProxyAdmin(state.accountingOracle.address, deployer, agent) - await changeOssifiableProxyAdmin(state.validatorsExitBusOracle.address, deployer, agent) - await changeOssifiableProxyAdmin(state.withdrawalQueueERC721.address, deployer, agent) + await changeOssifiableProxyAdmin(state.lidoLocator.proxy.address, deployer, agent) + await changeOssifiableProxyAdmin(state.stakingRouter.proxy.address, deployer, agent) + await changeOssifiableProxyAdmin(state.accountingOracle.proxy.address, deployer, agent) + await changeOssifiableProxyAdmin(state.validatorsExitBusOracle.proxy.address, deployer, agent) + await changeOssifiableProxyAdmin(state.withdrawalQueueERC721.proxy.address, deployer, agent) await changeDepositSecurityModuleAdmin(state.depositSecurityModule.address, deployer, agent) } diff --git a/scripts/scratch/checks/scratch-acceptance-test.js b/scripts/scratch/checks/scratch-acceptance-test.js index e24872e8a..b40146336 100644 --- a/scripts/scratch/checks/scratch-acceptance-test.js +++ b/scripts/scratch/checks/scratch-acceptance-test.js @@ -57,16 +57,16 @@ const NETWORK_STATE_FILE = process.env.NETWORK_STATE_FILE async function loadDeployedProtocol(state) { return { - stakingRouter: await artifacts.require('StakingRouter').at(state.stakingRouter.address), + stakingRouter: await artifacts.require('StakingRouter').at(state.stakingRouter.proxy.address), lido: await artifacts.require('Lido').at(state['app:lido'].proxy.address), voting: await artifacts.require('Voting').at(state['app:aragon-voting'].proxy.address), agent: await artifacts.require('Agent').at(state['app:aragon-agent'].proxy.address), nodeOperatorsRegistry: await artifacts.require('NodeOperatorsRegistry').at(state['app:node-operators-registry'].proxy.address), depositSecurityModule: await artifacts.require('DepositSecurityModule').at(state.depositSecurityModule.address), - accountingOracle: await artifacts.require('AccountingOracle').at(state.accountingOracle.address), - hashConsensusForAO: await artifacts.require('HashConsensus').at(state.hashConsensusForAccounting.address), + accountingOracle: await artifacts.require('AccountingOracle').at(state.accountingOracle.proxy.address), + hashConsensusForAO: await artifacts.require('HashConsensus').at(state.hashConsensusForAccountingOracle.address), elRewardsVault: await artifacts.require('LidoExecutionLayerRewardsVault').at(state.executionLayerRewardsVault.address), - withdrawalQueue: await artifacts.require('WithdrawalQueueERC721').at(state.withdrawalQueueERC721.address), + withdrawalQueue: await artifacts.require('WithdrawalQueueERC721').at(state.withdrawalQueueERC721.proxy.address), ldo: await artifacts.require('MiniMeToken').at(state.ldo.address), } } diff --git a/scripts/scratch/verify-contracts-code.sh b/scripts/scratch/verify-contracts-code.sh index 65a64935a..267f35b4f 100644 --- a/scripts/scratch/verify-contracts-code.sh +++ b/scripts/scratch/verify-contracts-code.sh @@ -36,8 +36,8 @@ function verify { verify dummyEmptyContract verify burner -verify hashConsensusForAccounting -verify hashConsensusForValidatorsExitBus +verify hashConsensusForAccountingOracle +verify hashConsensusForValidatorsExitBusOracle verify accountingOracle.implementation verify accountingOracle.proxy verify validatorsExitBusOracle.implementation