diff --git a/.github/PULL_REQUEST_TEMPLATE/deployment-template.md b/.github/PULL_REQUEST_TEMPLATE/deployment-template.md index a8868f17a..c2ab585c0 100644 --- a/.github/PULL_REQUEST_TEMPLATE/deployment-template.md +++ b/.github/PULL_REQUEST_TEMPLATE/deployment-template.md @@ -6,6 +6,7 @@ - [ ] TX IDs are properly generated - [ ] Action IDs are generated after deployment (if applicable) - [ ] Outputs for all target networks are generated, and linked in the task `readme` +- [ ] Addresses files are up to date with the new deployment - [ ] Contracts are verified in every network - [ ] Deployments `CHANGELOG` is updated - [ ] There are no code changes of any kind diff --git a/.github/workflows/deployment-checks.yml b/.github/workflows/deployment-checks.yml index de74cf3e3..41ac976a9 100644 --- a/.github/workflows/deployment-checks.yml +++ b/.github/workflows/deployment-checks.yml @@ -67,6 +67,29 @@ jobs: - name: Check Action IDs run: yarn workspace @balancer-labs/v2-deployments check-action-ids + check-address-lookup: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Compile balancer-js + run: yarn workspace @balancer-labs/balancer-js build + - name: Prepare Config + run: yarn workspace @balancer-labs/v2-deployments ci:prepare-config + env: + MAINNET_RPC_ENDPOINT: ${{ secrets.MAINNET_INFURA_ENDPOINT }} + POLYGON_RPC_ENDPOINT: ${{ secrets.POLYGON_INFURA_ENDPOINT }} + ARBITRUM_RPC_ENDPOINT: ${{ secrets.ARBITRUM_INFURA_ENDPOINT }} + OPTIMISM_RPC_ENDPOINT: ${{ secrets.OPTIMISM_INFURA_ENDPOINT }} + BINANCE_RPC_ENDPOINT: ${{ secrets.BINANCE_INFURA_ENDPOINT }} + GNOSIS_RPC_ENDPOINT: ${{ secrets.GNOSIS_INFURA_ENDPOINT }} + AVALANCHE_RPC_ENDPOINT: ${{ secrets.AVALANCHE_INFURA_ENDPOINT }} + GOERLI_RPC_ENDPOINT: ${{ secrets.GOERLI_INFURA_ENDPOINT }} + SEPOLIA_RPC_ENDPOINT: ${{ secrets.SEPOLIA_INFURA_ENDPOINT }} + - name: Check Deployment Address Lookup File + run: yarn workspace @balancer-labs/v2-deployments check-address-lookup + markdown-link-check: runs-on: ubuntu-latest steps: diff --git a/pkg/deployments/addresses/arbitrum.json b/pkg/deployments/addresses/arbitrum.json index fab567684..c68c3fa2a 100644 --- a/pkg/deployments/addresses/arbitrum.json +++ b/pkg/deployments/addresses/arbitrum.json @@ -175,21 +175,13 @@ "task": "20221021-managed-pool", "name": "ManagedPoolFactory" }, - "0x1B57f637Ce3408f1f834b0b70f9A595b062DAea7": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "AaveLinearPoolFactory" - }, - "0xe7234Ab7854285bb0D68A26f3d2f2087C6057825": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLendingPool" - }, - "0x22be81ecAe87F1Ae1db9e17d6B072f846e07FC45": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockStaticAToken" + "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { + "task": "20221122-composable-stable-pool-v2", + "name": "ComposableStablePoolFactory" }, - "0x77f0e64Faf0FDeAF0b632919214ba142f0478424": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLinearPool" + "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { + "task": "20221122-composable-stable-pool-v2", + "name": "MockComposableStablePool" }, "0xb5e56CC3d2e38e53b1166175C59e921A37cDC1E2": { "task": "20221123-pool-recovery-helper", @@ -199,14 +191,6 @@ "task": "20221124-authorizer-adaptor-entrypoint", "name": "AuthorizerAdaptorEntrypoint" }, - "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { - "task": "20221122-composable-stable-pool-v2", - "name": "ComposableStablePoolFactory" - }, - "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { - "task": "20221122-composable-stable-pool-v2", - "name": "MockComposableStablePool" - }, "0xa2D801064652A269D92EE2A59F3261155ec66830": { "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "AaveLinearPoolFactory" @@ -223,8 +207,188 @@ "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "MockAaveLinearPool" }, + "0xf23b4DB826DbA14c0e857029dfF076b1c0264843": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "AaveLinearPoolFactory" + }, + "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLendingPool" + }, + "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockStaticAToken" + }, + "0x11884dA90FB4221b3aa288a7741C51eC4Fc43B2f": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLinearPool" + }, + "0x1c99324EDC771c82A0DCCB780CC7DDA0045E50e7": { + "task": "20230206-composable-stable-pool-v3", + "name": "ComposableStablePoolFactory" + }, + "0x231B05F3a92d578EFf772f2Ddf6DacFFB3609749": { + "task": "20230206-composable-stable-pool-v3", + "name": "MockComposableStablePool" + }, + "0xa3B9515A9c557455BC53F7a535A85219b59e8B2E": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "ERC4626LinearPoolFactory" + }, + "0x62aaB12865d7281048c337D53a4dde9d770321E6": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "MockERC4626Token" + }, + "0xf984eb2B8a7eF780245a797A2fCcd82f346409ca": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "MockERC4626LinearPool" + }, + "0xf1665E19bc105BE4EDD3739F88315cC699cc5b65": { + "task": "20230206-weighted-pool-v3", + "name": "WeightedPoolFactory" + }, + "0x96d7e549eA1d810725e4Cd1f51ed6b4AE8496338": { + "task": "20230206-weighted-pool-v3", + "name": "MockWeightedPool" + }, + "0xD8B6b96c88ad626EB6209c4876e3B14f45f8803A": { + "task": "20230213-yearn-linear-pool", + "name": "YearnLinearPoolFactory" + }, + "0x1b986138a4F2aA538E79fdEC222dad93F8d66703": { + "task": "20230213-yearn-linear-pool", + "name": "MockYearnTokenVault" + }, + "0x81fC12C60ee5b753cf5fD0ADC342dFb5f3817E32": { + "task": "20230213-yearn-linear-pool", + "name": "MockYearnLinearPool" + }, + "0x9805dcfD25e6De36bad8fe9D3Fe2c9b44B764102": { + "task": "20230222-merkle-orchard-v2", + "name": "MerkleOrchard" + }, "0x5cF4928a3205728bd12830E1840F7DB85c62a4B9": { "task": "20230223-protocol-id-registry", "name": "ProtocolIdRegistry" + }, + "0xD87F44Df0159DC78029AB9CA7D7e57E7249F5ACD": { + "task": "20230314-batch-relayer-v5", + "name": "BatchRelayerLibrary" + }, + "0x598ce0f1ab64B27256759ef99d883EE51138b9bd": { + "task": "20230314-batch-relayer-v5", + "name": "BalancerRelayer" + }, + "0xa523f47A933D5020b23629dDf689695AA94612Dc": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGauge" + }, + "0x6817149cb753BF529565B4D023d7507eD2ff4Bc0": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGaugeFactory" + }, + "0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68": { + "task": "20230316-l2-balancer-pseudo-minter", + "name": "L2BalancerPseudoMinter" + }, + "0x9dA18982a33FD0c7051B19F0d7C76F2d5E7e017c": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "NullVotingEscrow" + }, + "0x81cFAE226343B24BA12EC6521Db2C79E7aeeb310": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "VotingEscrowDelegationProxy" + }, + "0x2498A2B0d6462d2260EAC50aE1C3e03F4829BA95": { + "task": "20230320-composable-stable-pool-v4", + "name": "ComposableStablePoolFactory" + }, + "0xFF7e6B102516e071dcDA763EE9D02c1515481db5": { + "task": "20230320-composable-stable-pool-v4", + "name": "MockComposableStablePool" + }, + "0xc7E5ED1054A24Ef31D827E6F86caA58B3Bc168d7": { + "task": "20230320-weighted-pool-v4", + "name": "WeightedPoolFactory" + }, + "0x129C6402FF88611Aa59BF2e14B39e091822e2C9c": { + "task": "20230320-weighted-pool-v4", + "name": "MockWeightedPool" + }, + "0x12Ca9De662A7Bf5Dc89e034a5083eF751B08EDe7": { + "task": "20230404-l2-layer0-bridge-forwarder", + "name": "L2LayerZeroBridgeForwarder" + }, + "0x7ADbdabaA80F654568421887c12F09E0C7BD9629": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "ERC4626LinearPoolFactory" + }, + "0x4bE0E4d6184348c5BA845a4010528CFC779610b8": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "MockERC4626Token" + }, + "0x3f53A862919ccFA023CB6AcE91378a79Fb0F6Bf5": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "MockERC4626LinearPool" + }, + "0x19DFEF0a828EEC0c85FbB335aa65437417390b85": { + "task": "20230409-yearn-linear-pool-v2", + "name": "YearnLinearPoolFactory" + }, + "0xb15608d28eb43378A7e7780aDD3fE9bC132bAf40": { + "task": "20230409-yearn-linear-pool-v2", + "name": "MockYearnTokenVault" + }, + "0x1Fa7F727934226aedaB636D62a084931b97d366b": { + "task": "20230409-yearn-linear-pool-v2", + "name": "MockYearnLinearPool" + }, + "0x7396f99B48e7436b152427bfA3DD6Aa8C7C6d05B": { + "task": "20230410-aave-linear-pool-v5", + "name": "AaveLinearPoolFactory" + }, + "0x533a16F90E7d3Ca31dbc608E5EC54967710F0D2A": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLendingPool" + }, + "0x8b7854708c0C54f9D7d1FF351D4F84E6dE0E134C": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockStaticAToken" + }, + "0x19b1C92631405A0a9495ccbA0BeCF4f2e8e908bD": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLinearPool" + }, + "0xA69E0Ccf150a29369D8Bbc0B3f510849dB7E8EEE": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0xDF9B5B00Ef9bca66e9902Bd813dB14e4343Be025": { + "task": "20230411-managed-pool-v2", + "name": "CircuitBreakerLib" + }, + "0x300Ab2038EAc391f26D9F895dc61F8F66a548833": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAmmLib" + }, + "0x03F3Fb107e74F2EAC9358862E91ad3c692712054": { + "task": "20230411-managed-pool-v2", + "name": "ExternalWeightedMath" + }, + "0x682f0dDBFd41D1272982f64a499Fb62d80e27589": { + "task": "20230411-managed-pool-v2", + "name": "RecoveryModeHelper" + }, + "0x8eA89804145c007e7D226001A96955ad53836087": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolFactory" + }, + "0xf5A71257B331C02dA1Eae52151C3d600f16B76F0": { + "task": "20230411-managed-pool-v2", + "name": "MockManagedPool" + }, + "0x6B1Da720Be2D11d95177ccFc40A917c2688f396c": { + "task": "20230414-authorizer-wrapper", + "name": "AuthorizerWithAdaptorValidation" } } \ No newline at end of file diff --git a/pkg/deployments/addresses/avalanche.json b/pkg/deployments/addresses/avalanche.json new file mode 100644 index 000000000..c5c07f0c9 --- /dev/null +++ b/pkg/deployments/addresses/avalanche.json @@ -0,0 +1,194 @@ +{ + "0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6": { + "task": "20210418-authorizer", + "name": "Authorizer" + }, + "0xBA12222222228d8Ba445958a75a0704d566BF2C8": { + "task": "20210418-vault", + "name": "Vault" + }, + "0xce88686553686DA562CE7Cea497CE749DA109f9F": { + "task": "20210418-vault", + "name": "ProtocolFeesCollector" + }, + "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9": { + "task": "20210418-vault", + "name": "BalancerHelpers" + }, + "0x0F3e0c4218b7b0108a3643cFe9D3ec0d4F57c54e": { + "task": "20211202-no-protocol-fee-lbp", + "name": "NoProtocolFeeLiquidityBootstrappingPoolFactory" + }, + "0xdAE7e32ADc5d490a43cCba1f0c736033F2b4eFca": { + "task": "20220325-authorizer-adaptor", + "name": "AuthorizerAdaptor" + }, + "0x41B953164995c11C81DA73D212ED8Af25741b7Ac": { + "task": "20220413-child-chain-gauge-factory", + "name": "RewardsOnlyGauge" + }, + "0xD7FAD3bd59D6477cbe1BE7f646F7f1BA25b230f8": { + "task": "20220413-child-chain-gauge-factory", + "name": "ChildChainStreamer" + }, + "0xb08E16cFc07C684dAA2f93C70323BAdb2A6CBFd2": { + "task": "20220413-child-chain-gauge-factory", + "name": "ChildChainLiquidityGaugeFactory" + }, + "0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75": { + "task": "20220517-protocol-fee-withdrawer", + "name": "ProtocolFeesWithdrawer" + }, + "0xf302f9F50958c5593770FDf4d4812309fF77414f": { + "task": "20220527-child-chain-gauge-token-adder", + "name": "ChildChainGaugeTokenAdder" + }, + "0xC128a9954e6c874eA3d62ce62B468bA073093F25": { + "task": "20220707-distribution-scheduler", + "name": "DistributionScheduler" + }, + "0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD": { + "task": "20220721-balancer-queries", + "name": "BalancerQueries" + }, + "0x239e55F427D44C3cc793f49bFB507ebe76638a2b": { + "task": "20220725-protocol-fee-percentages-provider", + "name": "ProtocolFeePercentagesProvider" + }, + "0x2E96068b3D5B5BAE3D7515da4A1D2E52d08A2647": { + "task": "20220812-child-chain-reward-helper", + "name": "ChildChainGaugeRewardHelper" + }, + "0x6f5a2eE11E7a772AeB5114A20d0D7c0ff61EB8A0": { + "task": "20220916-batch-relayer-v4", + "name": "BatchRelayerLibrary" + }, + "0x9A7b723101ba5A4672960A3b65840AB3b7805048": { + "task": "20220916-batch-relayer-v4", + "name": "BalancerRelayer" + }, + "0x3b8cA519122CdD8efb272b0D3085453404B25bD0": { + "task": "20221123-pool-recovery-helper", + "name": "PoolRecoveryHelper" + }, + "0x4E7bBd911cf1EFa442BC1b2e9Ea01ffE785412EC": { + "task": "20221124-authorizer-adaptor-entrypoint", + "name": "AuthorizerAdaptorEntrypoint" + }, + "0x94f68b54191F62f781Fe8298A8A5Fa3ed772d227": { + "task": "20230206-weighted-pool-v3", + "name": "WeightedPoolFactory" + }, + "0xE867AD0a48e8f815DC0cda2CDb275e0F163A480b": { + "task": "20230206-weighted-pool-v3", + "name": "MockWeightedPool" + }, + "0x45fFd460cC6642B8D8Fb12373DFd77Ceb0f4932B": { + "task": "20230314-batch-relayer-v5", + "name": "BatchRelayerLibrary" + }, + "0x03F1ab8b19bcE21EB06C364aEc9e40322572a1e9": { + "task": "20230314-batch-relayer-v5", + "name": "BalancerRelayer" + }, + "0x4b7b369989e613ff2C65768B7Cf930cC927F901E": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGauge" + }, + "0x161f4014C27773840ccb4EC1957113e6DD028846": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGaugeFactory" + }, + "0xEa924b45a3fcDAAdf4E5cFB1665823B8F8F2039B": { + "task": "20230316-l2-balancer-pseudo-minter", + "name": "L2BalancerPseudoMinter" + }, + "0x6B1Da720Be2D11d95177ccFc40A917c2688f396c": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "NullVotingEscrow" + }, + "0x0c6052254551EAe3ECac77B01DFcf1025418828f": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "VotingEscrowDelegationProxy" + }, + "0x3B1eb8EB7b43882b385aB30533D9A2BeF9052a98": { + "task": "20230320-composable-stable-pool-v4", + "name": "ComposableStablePoolFactory" + }, + "0xEa4643102dFC03d5e382e7827Bf767f6587E9965": { + "task": "20230320-composable-stable-pool-v4", + "name": "MockComposableStablePool" + }, + "0x230a59F4d9ADc147480f03B0D3fFfeCd56c3289a": { + "task": "20230320-weighted-pool-v4", + "name": "WeightedPoolFactory" + }, + "0xb2b5B452d53401391155EA48C4451f6E9b0dD058": { + "task": "20230320-weighted-pool-v4", + "name": "MockWeightedPool" + }, + "0x4638ab64022927C9bD5947607459D13f57f1551C": { + "task": "20230404-l2-layer0-bridge-forwarder", + "name": "L2LayerZeroBridgeForwarder" + }, + "0x4507d91Cd2C0D51D9B4F30Bf0B93AFC938A70BA5": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "ERC4626LinearPoolFactory" + }, + "0x2EbE41E1aa44D61c206A94474932dADC7D3FD9E3": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "MockERC4626Token" + }, + "0xEd3E2F496cbCd8e212192fb8D1499842f04A0D19": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "MockERC4626LinearPool" + }, + "0x6caf662b573F577DE01165d2d38D1910bba41F8A": { + "task": "20230410-aave-linear-pool-v5", + "name": "AaveLinearPoolFactory" + }, + "0x57EA28A99394978D060E483477C0Fd9fb9aFa96c": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLendingPool" + }, + "0xD8B6b96c88ad626EB6209c4876e3B14f45f8803A": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockStaticAToken" + }, + "0xA826a114B0c7dB4d1FF4a4BE845a78998c64564C": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLinearPool" + }, + "0xAcf05BE5134d64d150d153818F8C67EE36996650": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0x9129E834e15eA19b6069e8f08a8EcFc13686B8dC": { + "task": "20230411-managed-pool-v2", + "name": "CircuitBreakerLib" + }, + "0xA69E0Ccf150a29369D8Bbc0B3f510849dB7E8EEE": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAmmLib" + }, + "0xDF9B5B00Ef9bca66e9902Bd813dB14e4343Be025": { + "task": "20230411-managed-pool-v2", + "name": "ExternalWeightedMath" + }, + "0x300Ab2038EAc391f26D9F895dc61F8F66a548833": { + "task": "20230411-managed-pool-v2", + "name": "RecoveryModeHelper" + }, + "0x03F3Fb107e74F2EAC9358862E91ad3c692712054": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolFactory" + }, + "0x3Fb81f6FB0dd94c6fC7e138887f1CA4CDB5E2999": { + "task": "20230411-managed-pool-v2", + "name": "MockManagedPool" + }, + "0x8df317a729fcaA260306d7de28888932cb579b88": { + "task": "20230414-authorizer-wrapper", + "name": "AuthorizerWithAdaptorValidation" + } +} \ No newline at end of file diff --git a/pkg/deployments/addresses/bsc.json b/pkg/deployments/addresses/bsc.json index 965acb7a6..589cb5b47 100644 --- a/pkg/deployments/addresses/bsc.json +++ b/pkg/deployments/addresses/bsc.json @@ -55,21 +55,13 @@ "task": "20220916-batch-relayer-v4", "name": "BalancerRelayer" }, - "0x4E7bBd911cf1EFa442BC1b2e9Ea01ffE785412EC": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "AaveLinearPoolFactory" - }, - "0xEd5ba579bB5D516263ff6E1C10fcAc1040075Fe2": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLendingPool" - }, - "0xB848f50141F3D4255b37aC288C25C109104F2158": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockStaticAToken" + "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { + "task": "20221122-composable-stable-pool-v2", + "name": "ComposableStablePoolFactory" }, - "0x4ca6AC0509E6381Ca7CD872a6cdC0Fbf00600Fa1": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLinearPool" + "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { + "task": "20221122-composable-stable-pool-v2", + "name": "MockComposableStablePool" }, "0x3b8cA519122CdD8efb272b0D3085453404B25bD0": { "task": "20221123-pool-recovery-helper", @@ -79,14 +71,6 @@ "task": "20221124-authorizer-adaptor-entrypoint", "name": "AuthorizerAdaptorEntrypoint" }, - "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { - "task": "20221122-composable-stable-pool-v2", - "name": "ComposableStablePoolFactory" - }, - "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { - "task": "20221122-composable-stable-pool-v2", - "name": "MockComposableStablePool" - }, "0x1cbbE6cEa5E4fE7D69c586b4e362A646DEEf105d": { "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "AaveLinearPoolFactory" @@ -102,5 +86,113 @@ "0x1a505Ba1cA84D1A4dCF14c8E4866e556B060c974": { "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "MockAaveLinearPool" + }, + "0xf23b4DB826DbA14c0e857029dfF076b1c0264843": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "AaveLinearPoolFactory" + }, + "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLendingPool" + }, + "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockStaticAToken" + }, + "0x11884dA90FB4221b3aa288a7741C51eC4Fc43B2f": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLinearPool" + }, + "0xacAaC3e6D6Df918Bf3c809DFC7d42de0e4a72d4C": { + "task": "20230206-composable-stable-pool-v3", + "name": "ComposableStablePoolFactory" + }, + "0xB521E108c8aC5aD91Dc16d0001b7253D3B3beBC5": { + "task": "20230206-composable-stable-pool-v3", + "name": "MockComposableStablePool" + }, + "0x6e4cF292C5349c79cCd66349c3Ed56357dD11B46": { + "task": "20230206-weighted-pool-v3", + "name": "WeightedPoolFactory" + }, + "0x463957510888720f1EA65B599e996aaD4264206A": { + "task": "20230206-weighted-pool-v3", + "name": "MockWeightedPool" + }, + "0x45fFd460cC6642B8D8Fb12373DFd77Ceb0f4932B": { + "task": "20230314-batch-relayer-v5", + "name": "BatchRelayerLibrary" + }, + "0x03F1ab8b19bcE21EB06C364aEc9e40322572a1e9": { + "task": "20230314-batch-relayer-v5", + "name": "BalancerRelayer" + }, + "0x1802953277FD955f9a254B80Aa0582f193cF1d77": { + "task": "20230320-composable-stable-pool-v4", + "name": "ComposableStablePoolFactory" + }, + "0x7C53dBf28a23faB07E322fb35eC53A296f548a45": { + "task": "20230320-composable-stable-pool-v4", + "name": "MockComposableStablePool" + }, + "0x230a59F4d9ADc147480f03B0D3fFfeCd56c3289a": { + "task": "20230320-weighted-pool-v4", + "name": "WeightedPoolFactory" + }, + "0xE7eE2d64bCB1B2C915898E9DA0947DA1D413DCAF": { + "task": "20230320-weighted-pool-v4", + "name": "MockWeightedPool" + }, + "0x20AabBC59F3cE58e0ef931380d8Bf2A6fE681019": { + "task": "20230404-l2-layer0-bridge-forwarder", + "name": "L2LayerZeroBridgeForwarder" + }, + "0xE605Dbe1cA85dCdb8F43CEfA427f3B0fC06f6ba6": { + "task": "20230410-aave-linear-pool-v5", + "name": "AaveLinearPoolFactory" + }, + "0x5F43FBa61f63Fa6bFF101a0A0458cEA917f6B347": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLendingPool" + }, + "0xC101dcA301a4011C1F925e9622e749e550a1B667": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockStaticAToken" + }, + "0x2Ba5fd37e71Ab2633602553BE7ad5A377D7ED31A": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLinearPool" + }, + "0x59562f93c447656F6E4799fC1FC7c3d977C3324F": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0x2498A2B0d6462d2260EAC50aE1C3e03F4829BA95": { + "task": "20230411-managed-pool-v2", + "name": "CircuitBreakerLib" + }, + "0xDEd7Fef7D8eCdcB74F22f0169e1A9EC696e6695d": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAmmLib" + }, + "0x8df317a729fcaA260306d7de28888932cb579b88": { + "task": "20230411-managed-pool-v2", + "name": "ExternalWeightedMath" + }, + "0x3B1eb8EB7b43882b385aB30533D9A2BeF9052a98": { + "task": "20230411-managed-pool-v2", + "name": "RecoveryModeHelper" + }, + "0x4C32a8a8fDa4E24139B51b456B42290f51d6A1c4": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolFactory" + }, + "0x710A461Ea47AE36C45CBA8Cb6ce964e8A5cb87eD": { + "task": "20230411-managed-pool-v2", + "name": "MockManagedPool" + }, + "0xAcf05BE5134d64d150d153818F8C67EE36996650": { + "task": "20230414-authorizer-wrapper", + "name": "AuthorizerWithAdaptorValidation" } } \ No newline at end of file diff --git a/pkg/deployments/addresses/gnosis.json b/pkg/deployments/addresses/gnosis.json index a77bed352..d2b5c99eb 100644 --- a/pkg/deployments/addresses/gnosis.json +++ b/pkg/deployments/addresses/gnosis.json @@ -15,14 +15,46 @@ "task": "20210418-vault", "name": "BalancerHelpers" }, + "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { + "task": "20211202-no-protocol-fee-lbp", + "name": "NoProtocolFeeLiquidityBootstrappingPoolFactory" + }, "0x5aDDCCa35b7A0D07C74063c48700C8590E87864E": { "task": "20220325-authorizer-adaptor", "name": "AuthorizerAdaptor" }, + "0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8": { + "task": "20220404-erc4626-linear-pool-v2", + "name": "ERC4626LinearPoolFactory" + }, + "0x45fFd460cC6642B8D8Fb12373DFd77Ceb0f4932B": { + "task": "20220413-child-chain-gauge-factory", + "name": "RewardsOnlyGauge" + }, + "0x230a59F4d9ADc147480f03B0D3fFfeCd56c3289a": { + "task": "20220413-child-chain-gauge-factory", + "name": "ChildChainStreamer" + }, + "0x809B79b53F18E9bc08A961ED4678B901aC93213a": { + "task": "20220413-child-chain-gauge-factory", + "name": "ChildChainLiquidityGaugeFactory" + }, + "0x4fb47126Fa83A8734991E41B942Ac29A3266C968": { + "task": "20220425-unbutton-aave-linear-pool", + "name": "UnbuttonAaveLinearPoolFactory" + }, "0xdAE7e32ADc5d490a43cCba1f0c736033F2b4eFca": { "task": "20220517-protocol-fee-withdrawer", "name": "ProtocolFeesWithdrawer" }, + "0x1802953277FD955f9a254B80Aa0582f193cF1d77": { + "task": "20220527-child-chain-gauge-token-adder", + "name": "ChildChainGaugeTokenAdder" + }, + "0xf23b4DB826DbA14c0e857029dfF076b1c0264843": { + "task": "20220609-stable-pool-v2", + "name": "StablePoolFactory" + }, "0x0F3e0c4218b7b0108a3643cFe9D3ec0d4F57c54e": { "task": "20220721-balancer-queries", "name": "BalancerQueries" @@ -31,6 +63,14 @@ "task": "20220725-protocol-fee-percentages-provider", "name": "ProtocolFeePercentagesProvider" }, + "0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd": { + "task": "20220812-child-chain-reward-helper", + "name": "ChildChainGaugeRewardHelper" + }, + "0xf302f9F50958c5593770FDf4d4812309fF77414f": { + "task": "20220908-weighted-pool-v2", + "name": "WeightedPoolFactory" + }, "0xD7FAD3bd59D6477cbe1BE7f646F7f1BA25b230f8": { "task": "20220916-batch-relayer-v4", "name": "BatchRelayerLibrary" @@ -39,30 +79,6 @@ "task": "20220916-batch-relayer-v4", "name": "BalancerRelayer" }, - "0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75": { - "task": "20221124-authorizer-adaptor-entrypoint", - "name": "AuthorizerAdaptorEntrypoint" - }, - "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { - "task": "20211202-no-protocol-fee-lbp", - "name": "NoProtocolFeeLiquidityBootstrappingPoolFactory" - }, - "0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8": { - "task": "20220404-erc4626-linear-pool-v2", - "name": "ERC4626LinearPoolFactory" - }, - "0x4fb47126Fa83A8734991E41B942Ac29A3266C968": { - "task": "20220425-unbutton-aave-linear-pool", - "name": "UnbuttonAaveLinearPoolFactory" - }, - "0xf23b4DB826DbA14c0e857029dfF076b1c0264843": { - "task": "20220609-stable-pool-v2", - "name": "StablePoolFactory" - }, - "0xf302f9F50958c5593770FDf4d4812309fF77414f": { - "task": "20220908-weighted-pool-v2", - "name": "WeightedPoolFactory" - }, "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6": { "task": "20221122-composable-stable-pool-v2", "name": "ComposableStablePoolFactory" @@ -75,6 +91,10 @@ "task": "20221123-pool-recovery-helper", "name": "PoolRecoveryHelper" }, + "0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75": { + "task": "20221124-authorizer-adaptor-entrypoint", + "name": "AuthorizerAdaptorEntrypoint" + }, "0x9dd5Db2d38b50bEF682cE532bCca5DfD203915E1": { "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "AaveLinearPoolFactory" @@ -91,28 +111,136 @@ "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "MockAaveLinearPool" }, - "0x45fFd460cC6642B8D8Fb12373DFd77Ceb0f4932B": { - "task": "20220413-child-chain-gauge-factory", - "name": "RewardsOnlyGauge" + "0x9dA18982a33FD0c7051B19F0d7C76F2d5E7e017c": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "AaveLinearPoolFactory" }, - "0x230a59F4d9ADc147480f03B0D3fFfeCd56c3289a": { - "task": "20220413-child-chain-gauge-factory", - "name": "ChildChainStreamer" + "0x81cFAE226343B24BA12EC6521Db2C79E7aeeb310": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLendingPool" }, - "0x809B79b53F18E9bc08A961ED4678B901aC93213a": { - "task": "20220413-child-chain-gauge-factory", - "name": "ChildChainLiquidityGaugeFactory" + "0xa523f47A933D5020b23629dDf689695AA94612Dc": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockStaticAToken" }, - "0x1802953277FD955f9a254B80Aa0582f193cF1d77": { - "task": "20220527-child-chain-gauge-token-adder", - "name": "ChildChainGaugeTokenAdder" + "0x225E0047671939A8d78e08EBd692788Abe63f15c": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLinearPool" }, - "0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd": { - "task": "20220812-child-chain-reward-helper", - "name": "ChildChainGaugeRewardHelper" + "0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD": { + "task": "20230206-composable-stable-pool-v3", + "name": "ComposableStablePoolFactory" + }, + "0x07c896050dD6E273c199f06d7516F8A4A369d23A": { + "task": "20230206-composable-stable-pool-v3", + "name": "MockComposableStablePool" + }, + "0xC128a9954e6c874eA3d62ce62B468bA073093F25": { + "task": "20230206-weighted-pool-v3", + "name": "WeightedPoolFactory" + }, + "0xE051605A83dEAe38d26a7346B100EF1AC2ef8a0b": { + "task": "20230206-weighted-pool-v3", + "name": "MockWeightedPool" }, "0x6B5dA774890Db7B7b96C6f44e6a4b0F657399E2e": { "task": "20230223-protocol-id-registry", "name": "ProtocolIdRegistry" + }, + "0xb9aD3466cdd42015cc05d4804DC68D562b6a2065": { + "task": "20230314-batch-relayer-v5", + "name": "BatchRelayerLibrary" + }, + "0x3536fD480CA495Ac91E698A703248A8915c137a3": { + "task": "20230314-batch-relayer-v5", + "name": "BalancerRelayer" + }, + "0x96484f2aBF5e58b15176dbF1A799627B53F13B6d": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGauge" + }, + "0x83E443EF4f9963C77bd860f94500075556668cb8": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGaugeFactory" + }, + "0xA8920455934Da4D853faac1f94Fe7bEf72943eF1": { + "task": "20230316-l2-balancer-pseudo-minter", + "name": "L2BalancerPseudoMinter" + }, + "0x013D4382F291be5688AFBcc741Ee8A24C66B2C92": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "NullVotingEscrow" + }, + "0x7A2535f5fB47b8e44c02Ef5D9990588313fe8F05": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "VotingEscrowDelegationProxy" + }, + "0xD87F44Df0159DC78029AB9CA7D7e57E7249F5ACD": { + "task": "20230320-composable-stable-pool-v4", + "name": "ComposableStablePoolFactory" + }, + "0xf3678A0b54C61ccD88Ce321c2e07f87aC75F08B9": { + "task": "20230320-composable-stable-pool-v4", + "name": "MockComposableStablePool" + }, + "0x6CaD2ea22BFA7F4C14Aae92E47F510Cd5C509bc7": { + "task": "20230320-weighted-pool-v4", + "name": "WeightedPoolFactory" + }, + "0xd8752f9b0A2c2813796AbD2bE212A32FFd656EF1": { + "task": "20230320-weighted-pool-v4", + "name": "MockWeightedPool" + }, + "0xeb151668006CD04DAdD098AFd0a82e78F77076c3": { + "task": "20230404-l2-layer0-bridge-forwarder", + "name": "L2LayerZeroBridgeForwarder" + }, + "0x62aaB12865d7281048c337D53a4dde9d770321E6": { + "task": "20230410-aave-linear-pool-v5", + "name": "AaveLinearPoolFactory" + }, + "0x040dBA12Bb3D5C0A73ddfe84C220Be3ddBA06966": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLendingPool" + }, + "0x35d8f4a4C0E95f3d925CB4CbBbf513a0172eD8A4": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockStaticAToken" + }, + "0x1AC55C31DaC78ca943CB8ebfCa5945ce09e036e2": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLinearPool" + }, + "0x4C32a8a8fDa4E24139B51b456B42290f51d6A1c4": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0x54f8F9d28e26Fa5864cfA80f50A5Df95fD85f46a": { + "task": "20230411-managed-pool-v2", + "name": "CircuitBreakerLib" + }, + "0xAcf05BE5134d64d150d153818F8C67EE36996650": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAmmLib" + }, + "0x9129E834e15eA19b6069e8f08a8EcFc13686B8dC": { + "task": "20230411-managed-pool-v2", + "name": "ExternalWeightedMath" + }, + "0xA69E0Ccf150a29369D8Bbc0B3f510849dB7E8EEE": { + "task": "20230411-managed-pool-v2", + "name": "RecoveryModeHelper" + }, + "0xDF9B5B00Ef9bca66e9902Bd813dB14e4343Be025": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolFactory" + }, + "0xc061361fDa32fF5b65F7D98aCC9a87349d3F0768": { + "task": "20230411-managed-pool-v2", + "name": "MockManagedPool" + }, + "0x03F3Fb107e74F2EAC9358862E91ad3c692712054": { + "task": "20230414-authorizer-wrapper", + "name": "AuthorizerWithAdaptorValidation" } } \ No newline at end of file diff --git a/pkg/deployments/addresses/goerli.json b/pkg/deployments/addresses/goerli.json index 064991185..c436bedac 100644 --- a/pkg/deployments/addresses/goerli.json +++ b/pkg/deployments/addresses/goerli.json @@ -11,6 +11,10 @@ "task": "20210418-vault", "name": "BalancerHelpers" }, + "0xce88686553686DA562CE7Cea497CE749DA109f9F": { + "task": "20210418-vault", + "name": "ProtocolFeesCollector" + }, "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9": { "task": "20210418-weighted-pool", "name": "WeightedPoolFactory" @@ -119,6 +123,10 @@ "task": "20220325-single-recipient-gauge-factory", "name": "SingleRecipientGaugeFactory" }, + "0x5825120665066E3B54D1B21ce45889aff5d41f62": { + "task": "20220325-single-recipient-gauge-factory", + "name": "SingleRecipientGauge" + }, "0xfA8449189744799aD2AcE7e0EBAC8BB7575eff47": { "task": "20220325-test-balancer-token", "name": "TestBalancerToken" @@ -255,21 +263,13 @@ "task": "20221021-managed-pool", "name": "ManagedPoolFactory" }, - "0x4C4287b07d293E361281bCeEe8715c8CDeB64E34": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "AaveLinearPoolFactory" - }, - "0x6d471c05f8A99Bd8f991467A8283e3DC968b8D7c": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLendingPool" - }, - "0x5c89d9E1A668d0B39F4EC242F280bdDd445C633c": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockStaticAToken" + "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { + "task": "20221122-composable-stable-pool-v2", + "name": "ComposableStablePoolFactory" }, - "0x88D07558470484c03d3bb44c3ECc36CAfCF43253": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLinearPool" + "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { + "task": "20221122-composable-stable-pool-v2", + "name": "MockComposableStablePool" }, "0x1cbbE6cEa5E4fE7D69c586b4e362A646DEEf105d": { "task": "20221123-pool-recovery-helper", @@ -279,14 +279,6 @@ "task": "20221124-authorizer-adaptor-entrypoint", "name": "AuthorizerAdaptorEntrypoint" }, - "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { - "task": "20221122-composable-stable-pool-v2", - "name": "ComposableStablePoolFactory" - }, - "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { - "task": "20221122-composable-stable-pool-v2", - "name": "MockComposableStablePool" - }, "0xee47ef369CDa5a65639D7794b70a4d247826DdF3": { "task": "20221202-timelock-authorizer", "name": "TimelockAuthorizerMigrator" @@ -319,8 +311,236 @@ "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "MockAaveLinearPool" }, + "0xBd35248F8325DD1cB2bBf9D01E80A6bb99a792Dd": { + "task": "20230109-gauge-adder-v3", + "name": "GaugeAdder" + }, + "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "AaveLinearPoolFactory" + }, + "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLendingPool" + }, + "0x9dd5Db2d38b50bEF682cE532bCca5DfD203915E1": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockStaticAToken" + }, + "0x707B7d4a1bAe449d546DCAb869256591bbB3d70b": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLinearPool" + }, + "0xbfD9769b061E57e478690299011A028194D66e3C": { + "task": "20230206-composable-stable-pool-v3", + "name": "ComposableStablePoolFactory" + }, + "0x2EF26d97B5870600BE341561298938c2e5df84f0": { + "task": "20230206-composable-stable-pool-v3", + "name": "MockComposableStablePool" + }, + "0xBa240C856498e2d7a70AF4911AaFae0D6b565a5B": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "ERC4626LinearPoolFactory" + }, + "0xa1C22168262fbaf5a87b9Aa6A13122BE630085E9": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "MockERC4626Token" + }, + "0x744644537fB1AE7c4E05f6331e87126b4fd0C325": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "MockERC4626LinearPool" + }, + "0x26575A44755E0aaa969FDda1E4291Df22C5624Ea": { + "task": "20230206-weighted-pool-v3", + "name": "WeightedPoolFactory" + }, + "0x0441ff033652bcEB75a011887F17B5dfC84Ddc6f": { + "task": "20230206-weighted-pool-v3", + "name": "MockWeightedPool" + }, + "0x813EE7a840CE909E7Fea2117A44a90b8063bd4fd": { + "task": "20230208-euler-linear-pool", + "name": "EulerLinearPoolFactory" + }, + "0xB99eDc4b289B0F2284fCF3f66884191BdCe29624": { + "task": "20230208-euler-linear-pool", + "name": "MockEulerToken" + }, + "0x43Fa2c00419F60e18966Aa043DEBd4701CB91B6d": { + "task": "20230208-euler-linear-pool", + "name": "MockEulerLinearPool" + }, + "0x806E02Dea8d4a0882caD9fA3Fa75B212328692dE": { + "task": "20230213-gearbox-linear-pool", + "name": "GearboxLinearPoolFactory" + }, + "0xa496bE32F7C9Abc49E8ba91A23d37cF6fA58651B": { + "task": "20230213-gearbox-linear-pool", + "name": "MockGearboxVault" + }, + "0x4E11AEec21baF1660b1a46472963cB3DA7811C89": { + "task": "20230213-gearbox-linear-pool", + "name": "MockGearboxDieselToken" + }, + "0x007E1830BcC05039c3926d6478F6B2912376e52E": { + "task": "20230213-gearbox-linear-pool", + "name": "MockGearboxLinearPool" + }, + "0x2a12a248f9b56cE6e7fAbA62D1bBA8735FB513F9": { + "task": "20230213-yearn-linear-pool", + "name": "YearnLinearPoolFactory" + }, + "0x057Cf03e3E0EC8D5a5FaFb3A0fC99a0aA0C1989e": { + "task": "20230213-yearn-linear-pool", + "name": "MockYearnTokenVault" + }, + "0x6D2b8b4EBa8ac88F8467D84bE010d344bFBD90e2": { + "task": "20230213-yearn-linear-pool", + "name": "MockYearnLinearPool" + }, + "0xE3881627B8DeeBCCF9c23B291430a549Fc0bE5F7": { + "task": "20230215-single-recipient-gauge-factory-v2", + "name": "SingleRecipientGaugeFactory" + }, + "0x0e9aDdc34F93BCcB45D1F744B9F9301285C5b48F": { + "task": "20230215-single-recipient-gauge-factory-v2", + "name": "SingleRecipientGauge" + }, + "0x5cF4928a3205728bd12830E1840F7DB85c62a4B9": { + "task": "20230222-merkle-orchard-v2", + "name": "MerkleOrchard" + }, "0x4fb47126Fa83A8734991E41B942Ac29A3266C968": { "task": "20230223-protocol-id-registry", "name": "ProtocolIdRegistry" + }, + "0x45fFd460cC6642B8D8Fb12373DFd77Ceb0f4932B": { + "task": "20230314-batch-relayer-v5", + "name": "BatchRelayerLibrary" + }, + "0x03F1ab8b19bcE21EB06C364aEc9e40322572a1e9": { + "task": "20230314-batch-relayer-v5", + "name": "BalancerRelayer" + }, + "0x18C100415988bEF4354EfFAd1188d1c22041B046": { + "task": "20230315-silo-linear-pool", + "name": "SiloLinearPoolFactory" + }, + "0xac190662aD9b53A4E6D4CD321dbf5d3ECD0E29b0": { + "task": "20230315-silo-linear-pool", + "name": "MockSiloRepository" + }, + "0x144245D4223FC7e4D463401a30522C960298a16e": { + "task": "20230315-silo-linear-pool", + "name": "MockSilo" + }, + "0x3eFCeb450fb799f67cd97cDC27a0F4Cd7B02B63B": { + "task": "20230315-silo-linear-pool", + "name": "MockShareToken" + }, + "0x58cA9F130d2e27EC94d19e53a6BEb2C4084f2638": { + "task": "20230315-silo-linear-pool", + "name": "MockSiloLinearPool" + }, + "0x6B5dA774890Db7B7b96C6f44e6a4b0F657399E2e": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGauge" + }, + "0x7Ba29fE8E83dd6097A7298075C4AFfdBda3121cC": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGaugeFactory" + }, + "0x81cFAE226343B24BA12EC6521Db2C79E7aeeb310": { + "task": "20230316-l2-balancer-pseudo-minter", + "name": "L2BalancerPseudoMinter" + }, + "0xa523f47A933D5020b23629dDf689695AA94612Dc": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "NullVotingEscrow" + }, + "0x6817149cb753BF529565B4D023d7507eD2ff4Bc0": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "VotingEscrowDelegationProxy" + }, + "0x1802953277FD955f9a254B80Aa0582f193cF1d77": { + "task": "20230320-composable-stable-pool-v4", + "name": "ComposableStablePoolFactory" + }, + "0x5D343D374A769D1AB102e0418a516DadB08A86E4": { + "task": "20230320-composable-stable-pool-v4", + "name": "MockComposableStablePool" + }, + "0x230a59F4d9ADc147480f03B0D3fFfeCd56c3289a": { + "task": "20230320-weighted-pool-v4", + "name": "WeightedPoolFactory" + }, + "0x072ED560cc042d7aB1c080a9e4fA8C6f4858dEb3": { + "task": "20230320-weighted-pool-v4", + "name": "MockWeightedPool" + }, + "0x7159c4b96bfCfCA232355B55778e85Cf9E245192": { + "task": "20230403-timelock-authorizer", + "name": "TimelockAuthorizerMigrator" + }, + "0x70E26F740bAd6a2CDd762e2478496268882C21d4": { + "task": "20230403-timelock-authorizer", + "name": "TimelockAuthorizer" + }, + "0xEF44D6786b2b4d544b7850Fe67CE6381626Bf2D6": { + "task": "20230404-l2-layer0-bridge-forwarder", + "name": "L2LayerZeroBridgeForwarder" + }, + "0x30FD8a0f7009F50616aFDaB4aF91a0A2Ef4eaE49": { + "task": "20230410-silo-linear-pool-v2", + "name": "SiloLinearPoolFactory" + }, + "0x7153De1A6d71360F07017838c28dEcA0d6C03e2a": { + "task": "20230410-silo-linear-pool-v2", + "name": "MockSiloRepository" + }, + "0xa7A7e22398622bf71fF31DAe5355EC7843b13806": { + "task": "20230410-silo-linear-pool-v2", + "name": "MockSilo" + }, + "0xB8BDCbF8ccf443D055d5Ffe1d8154fAc8187fC94": { + "task": "20230410-silo-linear-pool-v2", + "name": "MockShareToken" + }, + "0xBbb66a4fFf47701EC6c528dB615f5E7bF1AbDAAF": { + "task": "20230410-silo-linear-pool-v2", + "name": "MockSiloLinearPool" + }, + "0xAcf05BE5134d64d150d153818F8C67EE36996650": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0x9129E834e15eA19b6069e8f08a8EcFc13686B8dC": { + "task": "20230411-managed-pool-v2", + "name": "CircuitBreakerLib" + }, + "0xA69E0Ccf150a29369D8Bbc0B3f510849dB7E8EEE": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAmmLib" + }, + "0xDF9B5B00Ef9bca66e9902Bd813dB14e4343Be025": { + "task": "20230411-managed-pool-v2", + "name": "ExternalWeightedMath" + }, + "0x300Ab2038EAc391f26D9F895dc61F8F66a548833": { + "task": "20230411-managed-pool-v2", + "name": "RecoveryModeHelper" + }, + "0x03F3Fb107e74F2EAC9358862E91ad3c692712054": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolFactory" + }, + "0xff79b51ec2934Dd1810a8e0325e3B08708720B26": { + "task": "20230411-managed-pool-v2", + "name": "MockManagedPool" + }, + "0x8eA89804145c007e7D226001A96955ad53836087": { + "task": "20230414-authorizer-wrapper", + "name": "AuthorizerWithAdaptorValidation" } } \ No newline at end of file diff --git a/pkg/deployments/addresses/mainnet.json b/pkg/deployments/addresses/mainnet.json index 83cee4e75..92b7922a3 100644 --- a/pkg/deployments/addresses/mainnet.json +++ b/pkg/deployments/addresses/mainnet.json @@ -315,21 +315,13 @@ "task": "20221021-managed-pool", "name": "ManagedPoolFactory" }, - "0xb5a0a6bceCB2988bb348c2546BbA9c2bD9A04A1e": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "AaveLinearPoolFactory" - }, - "0xc40e9101993ce134411e86E1bCB3Ffc27019CD13": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLendingPool" - }, - "0xbA54bb8a7E0eefe160164d00c06A4F2ee8459a5f": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockStaticAToken" + "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { + "task": "20221122-composable-stable-pool-v2", + "name": "ComposableStablePoolFactory" }, - "0xe23D111cb71414830B93F078977B7f53A5e996eE": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLinearPool" + "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { + "task": "20221122-composable-stable-pool-v2", + "name": "MockComposableStablePool" }, "0x1b300C86980a5195bCF49bD419A068D98dC133Db": { "task": "20221123-pool-recovery-helper", @@ -339,14 +331,6 @@ "task": "20221124-authorizer-adaptor-entrypoint", "name": "AuthorizerAdaptorEntrypoint" }, - "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { - "task": "20221122-composable-stable-pool-v2", - "name": "ComposableStablePoolFactory" - }, - "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { - "task": "20221122-composable-stable-pool-v2", - "name": "MockComposableStablePool" - }, "0xf8ee6f1F9B54F9b2C192D703ea2d22112cBC062b": { "task": "20221202-timelock-authorizer", "name": "TimelockAuthorizerMigrator" @@ -379,6 +363,110 @@ "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "MockAaveLinearPool" }, + "0xE0f34c6AD719e6877062B7D97E12c61c096509AF": { + "task": "20230109-gauge-adder-migration-v2-to-v3", + "name": "GaugeAdderMigrationCoordinator" + }, + "0x5efBb12F01f27F0E020565866effC1dA491E91A4": { + "task": "20230109-gauge-adder-v3", + "name": "GaugeAdder" + }, + "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6": { + "task": "20230130-ta-transition-migrator", + "name": "TimelockAuthorizerTransitionMigrator" + }, + "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "AaveLinearPoolFactory" + }, + "0x9dd5Db2d38b50bEF682cE532bCca5DfD203915E1": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLendingPool" + }, + "0x9805dcfD25e6De36bad8fe9D3Fe2c9b44B764102": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockStaticAToken" + }, + "0x331d50e0b00fc1C32742F151E56B9B616227E23E": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLinearPool" + }, + "0xdba127fBc23fb20F5929C546af220A991b5C6e01": { + "task": "20230206-composable-stable-pool-v3", + "name": "ComposableStablePoolFactory" + }, + "0x222bc81C6F3C17e9e9Aba47a12f55a1Dea42f163": { + "task": "20230206-composable-stable-pool-v3", + "name": "MockComposableStablePool" + }, + "0x67A25ca2350Ebf4a0C475cA74C257C94a373b828": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "ERC4626LinearPoolFactory" + }, + "0xE605Dbe1cA85dCdb8F43CEfA427f3B0fC06f6ba6": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "MockERC4626Token" + }, + "0xfeF969638C52899f91781f1Be594aF6f40B99BAd": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "MockERC4626LinearPool" + }, + "0x5Dd94Da3644DDD055fcf6B3E1aa310Bb7801EB8b": { + "task": "20230206-weighted-pool-v3", + "name": "WeightedPoolFactory" + }, + "0x1576d472d82A72a1Ec7C57FcA770BD752D124A62": { + "task": "20230206-weighted-pool-v3", + "name": "MockWeightedPool" + }, + "0x5F43FBa61f63Fa6bFF101a0A0458cEA917f6B347": { + "task": "20230208-euler-linear-pool", + "name": "EulerLinearPoolFactory" + }, + "0xC101dcA301a4011C1F925e9622e749e550a1B667": { + "task": "20230208-euler-linear-pool", + "name": "MockEulerToken" + }, + "0xDEC02e6642e2c999aF429F5cE944653CAd15e093": { + "task": "20230208-euler-linear-pool", + "name": "MockEulerLinearPool" + }, + "0x2EbE41E1aa44D61c206A94474932dADC7D3FD9E3": { + "task": "20230213-gearbox-linear-pool", + "name": "GearboxLinearPoolFactory" + }, + "0x7ADbdabaA80F654568421887c12F09E0C7BD9629": { + "task": "20230213-gearbox-linear-pool", + "name": "MockGearboxVault" + }, + "0x4bE0E4d6184348c5BA845a4010528CFC779610b8": { + "task": "20230213-gearbox-linear-pool", + "name": "MockGearboxDieselToken" + }, + "0xa8b103A10A94f4f2D7Ed2FdCd5545E8075573307": { + "task": "20230213-gearbox-linear-pool", + "name": "MockGearboxLinearPool" + }, + "0x8b7854708c0C54f9D7d1FF351D4F84E6dE0E134C": { + "task": "20230213-yearn-linear-pool", + "name": "YearnLinearPoolFactory" + }, + "0x5C5fCf8fBd4cd563cED27e7D066b88ee20E1867A": { + "task": "20230213-yearn-linear-pool", + "name": "MockYearnTokenVault" + }, + "0x0a0fb4ff697de5ac5b6770cd8ee1b72af80b57cf": { + "task": "20230213-yearn-linear-pool", + "name": "MockYearnLinearPool" + }, + "0x4fb47126Fa83A8734991E41B942Ac29A3266C968": { + "task": "20230215-single-recipient-gauge-factory-v2", + "name": "SingleRecipientGaugeFactory" + }, + "0xb2007B8B7E0260042517f635CFd8E6dD2Dd7f007": { + "task": "20230215-single-recipient-gauge-factory-v2", + "name": "SingleRecipientGauge" + }, "0x2a18B396829bc29F66a1E59fAdd7a0269A6605E8": { "task": "20230217-gnosis-root-gauge-factory", "name": "GnosisRootGaugeFactory" @@ -387,8 +475,164 @@ "task": "20230217-gnosis-root-gauge-factory", "name": "GnosisRootGauge" }, + "0xE3881627B8DeeBCCF9c23B291430a549Fc0bE5F7": { + "task": "20230222-merkle-orchard-v2", + "name": "MerkleOrchard" + }, "0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68": { "task": "20230223-protocol-id-registry", "name": "ProtocolIdRegistry" + }, + "0xf77018c0d817dA22caDbDf504C00c0d32cE1e5C2": { + "task": "20230314-batch-relayer-v5", + "name": "BatchRelayerLibrary" + }, + "0xfeA793Aa415061C483D2390414275AD314B3F621": { + "task": "20230314-batch-relayer-v5", + "name": "BalancerRelayer" + }, + "0xfd1c0e6f02f71842b6ffF7CdC7A017eE1Fd3CdAC": { + "task": "20230315-silo-linear-pool", + "name": "SiloLinearPoolFactory" + }, + "0xdB6dF721A6E7Fdb97363079B01F107860Ac156F9": { + "task": "20230315-silo-linear-pool", + "name": "MockSiloRepository" + }, + "0xE719Aef17468c7e10c0c205be62C990754DFF7E5": { + "task": "20230315-silo-linear-pool", + "name": "MockSilo" + }, + "0xBc4099300E69Ff4e52F3b18728054EF00449b9e5": { + "task": "20230315-silo-linear-pool", + "name": "MockShareToken" + }, + "0x395d8A1D9aD82B5ABE558F8AbbFe183B27138af4": { + "task": "20230315-silo-linear-pool", + "name": "MockSiloLinearPool" + }, + "0xfADa0f4547AB2de89D1304A668C39B3E09Aa7c76": { + "task": "20230320-composable-stable-pool-v4", + "name": "ComposableStablePoolFactory" + }, + "0x5537f945D8c3FCFDc1b8DECEEBD220FAD26aFdA8": { + "task": "20230320-composable-stable-pool-v4", + "name": "MockComposableStablePool" + }, + "0x897888115Ada5773E02aA29F775430BFB5F34c51": { + "task": "20230320-weighted-pool-v4", + "name": "WeightedPoolFactory" + }, + "0x8055b8C947De30130BC1Ec750C8F345a50006B23": { + "task": "20230320-weighted-pool-v4", + "name": "MockWeightedPool" + }, + "0x813EE7a840CE909E7Fea2117A44a90b8063bd4fd": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "ERC4626LinearPoolFactory" + }, + "0xB99eDc4b289B0F2284fCF3f66884191BdCe29624": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "MockERC4626Token" + }, + "0x9516a2d25958EdB8da246a320f2c7d94A0DBe25d": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "MockERC4626LinearPool" + }, + "0x39A79EB449Fc05C92c39aA6f0e9BfaC03BE8dE5B": { + "task": "20230409-gearbox-linear-pool-v2", + "name": "GearboxLinearPoolFactory" + }, + "0xC7B779AB638b7A59f490ac95199502343a81E006": { + "task": "20230409-gearbox-linear-pool-v2", + "name": "MockGearboxVault" + }, + "0xb7A32B67AAdB3866cC5c2FaBc6C6aB8a9027c3c1": { + "task": "20230409-gearbox-linear-pool-v2", + "name": "MockGearboxDieselToken" + }, + "0x0d05Aac44aC7Dd3c7ba5d50Be93EB884A057d234": { + "task": "20230409-gearbox-linear-pool-v2", + "name": "MockGearboxLinearPool" + }, + "0x5F5222Ffa40F2AEd6380D022184D6ea67C776eE0": { + "task": "20230409-yearn-linear-pool-v2", + "name": "YearnLinearPoolFactory" + }, + "0x806E02Dea8d4a0882caD9fA3Fa75B212328692dE": { + "task": "20230409-yearn-linear-pool-v2", + "name": "MockYearnTokenVault" + }, + "0xAC5B4EF7eDe2F2843a704E96dcAA637F4BA3Dc3f": { + "task": "20230409-yearn-linear-pool-v2", + "name": "MockYearnLinearPool" + }, + "0x0b576c1245F479506e7C8bbc4dB4db07C1CD31F9": { + "task": "20230410-aave-linear-pool-v5", + "name": "AaveLinearPoolFactory" + }, + "0x28fa1E40011aDF98898E8243B2a48BB21EbF0C29": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLendingPool" + }, + "0x1F3C910c416eD2340150281C5eB93325C38817A1": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockStaticAToken" + }, + "0x4cE277Df0FeB5B4d07a0ca2ADCf5326E4005239d": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLinearPool" + }, + "0x4E11AEec21baF1660b1a46472963cB3DA7811C89": { + "task": "20230410-silo-linear-pool-v2", + "name": "SiloLinearPoolFactory" + }, + "0x8E2DfC5E111dbe14E9d725210b9342688Dd51c6c": { + "task": "20230410-silo-linear-pool-v2", + "name": "MockSiloRepository" + }, + "0x66c94AE8D795E98F69Ca65FFaC87B38B17Be3ca2": { + "task": "20230410-silo-linear-pool-v2", + "name": "MockSilo" + }, + "0x192E67544694a7bAA2DeA94f9B1Df58BB3395A12": { + "task": "20230410-silo-linear-pool-v2", + "name": "MockShareToken" + }, + "0x74CBfAF94A3577c539a9dCEE9870A6349a33b34f": { + "task": "20230410-silo-linear-pool-v2", + "name": "MockSiloLinearPool" + }, + "0x4148bf5B0688eD0a87F317c6534Cb841f503349e": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0x4967b3353Cdf9E5C67421a3890d35f2f3BB50527": { + "task": "20230411-managed-pool-v2", + "name": "CircuitBreakerLib" + }, + "0xb37646ACBb1A91287721B2CdBe01BA0DbA5E57A2": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAmmLib" + }, + "0x3db89f0CA3b388f2BcDbccD2ff8E13C22459CF75": { + "task": "20230411-managed-pool-v2", + "name": "ExternalWeightedMath" + }, + "0x7827108Af2fd9910EA7cf361d9b827941FA7D809": { + "task": "20230411-managed-pool-v2", + "name": "RecoveryModeHelper" + }, + "0xBF904F9F340745B4f0c4702c7B6Ab1e808eA6b93": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolFactory" + }, + "0xD0cbF6765997b7CA7Be6440F5E305B2ec7B96065": { + "task": "20230411-managed-pool-v2", + "name": "MockManagedPool" + }, + "0x6048A8c631Fb7e77EcA533Cf9C29784e482391e7": { + "task": "20230414-authorizer-wrapper", + "name": "AuthorizerWithAdaptorValidation" } } \ No newline at end of file diff --git a/pkg/deployments/addresses/optimism.json b/pkg/deployments/addresses/optimism.json index 983120da4..f9cd5fa7c 100644 --- a/pkg/deployments/addresses/optimism.json +++ b/pkg/deployments/addresses/optimism.json @@ -135,21 +135,13 @@ "task": "20221021-managed-pool", "name": "ManagedPoolFactory" }, - "0x9Bf6468Facac0F71C7ecA8D71a5Fb5f65bdAb319": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "AaveLinearPoolFactory" - }, - "0xcd7F93C86f30B90a181f81934FA4f281c7bfF246": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLendingPool" - }, - "0x5D5629FC838f5eA67d14264b7316FFD4294b0998": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockStaticAToken" + "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { + "task": "20221122-composable-stable-pool-v2", + "name": "ComposableStablePoolFactory" }, - "0x6dDBcF8886B7741D9AE60B9e9950F9F56543Ae54": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLinearPool" + "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { + "task": "20221122-composable-stable-pool-v2", + "name": "MockComposableStablePool" }, "0x26743984e3357eFC59f2fd6C1aFDC310335a61c9": { "task": "20221123-pool-recovery-helper", @@ -159,14 +151,6 @@ "task": "20221124-authorizer-adaptor-entrypoint", "name": "AuthorizerAdaptorEntrypoint" }, - "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { - "task": "20221122-composable-stable-pool-v2", - "name": "ComposableStablePoolFactory" - }, - "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { - "task": "20221122-composable-stable-pool-v2", - "name": "MockComposableStablePool" - }, "0xAd3CC7852382C09fdCE54784292c6aB7fb9Df917": { "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "AaveLinearPoolFactory" @@ -183,8 +167,184 @@ "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "MockAaveLinearPool" }, + "0xf23b4DB826DbA14c0e857029dfF076b1c0264843": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "AaveLinearPoolFactory" + }, + "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLendingPool" + }, + "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockStaticAToken" + }, + "0x11884dA90FB4221b3aa288a7741C51eC4Fc43B2f": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLinearPool" + }, + "0xe2E901AB09f37884BA31622dF3Ca7FC19AA443Be": { + "task": "20230206-composable-stable-pool-v3", + "name": "ComposableStablePoolFactory" + }, + "0x9BF7c3b63c77b4B4F2717776F15A4bec1b532a28": { + "task": "20230206-composable-stable-pool-v3", + "name": "MockComposableStablePool" + }, + "0xa3B9515A9c557455BC53F7a535A85219b59e8B2E": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "ERC4626LinearPoolFactory" + }, + "0x62aaB12865d7281048c337D53a4dde9d770321E6": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "MockERC4626Token" + }, + "0xf984eb2B8a7eF780245a797A2fCcd82f346409ca": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "MockERC4626LinearPool" + }, + "0xA0DAbEBAAd1b243BBb243f933013d560819eB66f": { + "task": "20230206-weighted-pool-v3", + "name": "WeightedPoolFactory" + }, + "0xbC99aa9bD55d3f8431Ecec24Da03AEc1D6e62754": { + "task": "20230206-weighted-pool-v3", + "name": "MockWeightedPool" + }, + "0xD8B6b96c88ad626EB6209c4876e3B14f45f8803A": { + "task": "20230213-yearn-linear-pool", + "name": "YearnLinearPoolFactory" + }, + "0x1b986138a4F2aA538E79fdEC222dad93F8d66703": { + "task": "20230213-yearn-linear-pool", + "name": "MockYearnTokenVault" + }, + "0x81fC12C60ee5b753cf5fD0ADC342dFb5f3817E32": { + "task": "20230213-yearn-linear-pool", + "name": "MockYearnLinearPool" + }, "0x9805dcfD25e6De36bad8fe9D3Fe2c9b44B764102": { "task": "20230223-protocol-id-registry", "name": "ProtocolIdRegistry" + }, + "0x45fFd460cC6642B8D8Fb12373DFd77Ceb0f4932B": { + "task": "20230314-batch-relayer-v5", + "name": "BatchRelayerLibrary" + }, + "0x03F1ab8b19bcE21EB06C364aEc9e40322572a1e9": { + "task": "20230314-batch-relayer-v5", + "name": "BalancerRelayer" + }, + "0x81cFAE226343B24BA12EC6521Db2C79E7aeeb310": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGauge" + }, + "0xa523f47A933D5020b23629dDf689695AA94612Dc": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGaugeFactory" + }, + "0x4fb47126Fa83A8734991E41B942Ac29A3266C968": { + "task": "20230316-l2-balancer-pseudo-minter", + "name": "L2BalancerPseudoMinter" + }, + "0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "NullVotingEscrow" + }, + "0x9dA18982a33FD0c7051B19F0d7C76F2d5E7e017c": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "VotingEscrowDelegationProxy" + }, + "0x1802953277FD955f9a254B80Aa0582f193cF1d77": { + "task": "20230320-composable-stable-pool-v4", + "name": "ComposableStablePoolFactory" + }, + "0x11A4cF51Bb0Bb4D925CAdFDA61FcDA952d64889C": { + "task": "20230320-composable-stable-pool-v4", + "name": "MockComposableStablePool" + }, + "0x230a59F4d9ADc147480f03B0D3fFfeCd56c3289a": { + "task": "20230320-weighted-pool-v4", + "name": "WeightedPoolFactory" + }, + "0x62F5f9a446d198E8E4c84eE56e5217416720EdAF": { + "task": "20230320-weighted-pool-v4", + "name": "MockWeightedPool" + }, + "0xbef13D1e54D0c79DA8B0AD704883E1Cea7EB2100": { + "task": "20230404-l2-layer0-bridge-forwarder", + "name": "L2LayerZeroBridgeForwarder" + }, + "0x7ADbdabaA80F654568421887c12F09E0C7BD9629": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "ERC4626LinearPoolFactory" + }, + "0x4bE0E4d6184348c5BA845a4010528CFC779610b8": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "MockERC4626Token" + }, + "0x2DA61Ef3Cdcb97efb0f7099c02527fabFe94Dee5": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "MockERC4626LinearPool" + }, + "0x19DFEF0a828EEC0c85FbB335aa65437417390b85": { + "task": "20230409-yearn-linear-pool-v2", + "name": "YearnLinearPoolFactory" + }, + "0xb15608d28eb43378A7e7780aDD3fE9bC132bAf40": { + "task": "20230409-yearn-linear-pool-v2", + "name": "MockYearnTokenVault" + }, + "0x34557eF500Bfc060B8e3f2DA58EF725Bb7D32202": { + "task": "20230409-yearn-linear-pool-v2", + "name": "MockYearnLinearPool" + }, + "0x7396f99B48e7436b152427bfA3DD6Aa8C7C6d05B": { + "task": "20230410-aave-linear-pool-v5", + "name": "AaveLinearPoolFactory" + }, + "0x533a16F90E7d3Ca31dbc608E5EC54967710F0D2A": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLendingPool" + }, + "0x8b7854708c0C54f9D7d1FF351D4F84E6dE0E134C": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockStaticAToken" + }, + "0x45d37982784F022A9864748b4E8750e1e7019604": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLinearPool" + }, + "0x59562f93c447656F6E4799fC1FC7c3d977C3324F": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0x2498A2B0d6462d2260EAC50aE1C3e03F4829BA95": { + "task": "20230411-managed-pool-v2", + "name": "CircuitBreakerLib" + }, + "0xDEd7Fef7D8eCdcB74F22f0169e1A9EC696e6695d": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAmmLib" + }, + "0x8df317a729fcaA260306d7de28888932cb579b88": { + "task": "20230411-managed-pool-v2", + "name": "ExternalWeightedMath" + }, + "0x3B1eb8EB7b43882b385aB30533D9A2BeF9052a98": { + "task": "20230411-managed-pool-v2", + "name": "RecoveryModeHelper" + }, + "0x4C32a8a8fDa4E24139B51b456B42290f51d6A1c4": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolFactory" + }, + "0xb4AF4fdd49da2A2BA9522EAdCF86D407a69f19c8": { + "task": "20230411-managed-pool-v2", + "name": "MockManagedPool" + }, + "0xAcf05BE5134d64d150d153818F8C67EE36996650": { + "task": "20230414-authorizer-wrapper", + "name": "AuthorizerWithAdaptorValidation" } } \ No newline at end of file diff --git a/pkg/deployments/addresses/polygon.json b/pkg/deployments/addresses/polygon.json index d262bb449..b49519bcc 100644 --- a/pkg/deployments/addresses/polygon.json +++ b/pkg/deployments/addresses/polygon.json @@ -171,21 +171,13 @@ "task": "20221021-managed-pool", "name": "ManagedPoolFactory" }, - "0x94522C4586cb15E08AFF943545Fb2c8Ca7f508cE": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "AaveLinearPoolFactory" - }, - "0x6c7F4D97269eCE163fd08D5C2584A21E4a33934c": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLendingPool" - }, - "0x97207B095e4D5C9a6e4cfbfcd2C3358E03B90c4A": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockStaticAToken" + "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { + "task": "20221122-composable-stable-pool-v2", + "name": "ComposableStablePoolFactory" }, - "0xfCCcB77A946b6a3BD59d149F083B5BfbB8004D6D": { - "task": "20221115-aave-rebalanced-linear-pool", - "name": "MockAaveLinearPool" + "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { + "task": "20221122-composable-stable-pool-v2", + "name": "MockComposableStablePool" }, "0x495F696430F4A51F7fcB98FbE68a9Cb7A07fB1bA": { "task": "20221123-pool-recovery-helper", @@ -195,14 +187,6 @@ "task": "20221124-authorizer-adaptor-entrypoint", "name": "AuthorizerAdaptorEntrypoint" }, - "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": { - "task": "20221122-composable-stable-pool-v2", - "name": "ComposableStablePoolFactory" - }, - "0x373b347bc87998b151A5E9B6bB6ca692b766648a": { - "task": "20221122-composable-stable-pool-v2", - "name": "MockComposableStablePool" - }, "0x35c425234DC42e7402f54cC54573f77842963a56": { "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "AaveLinearPoolFactory" @@ -219,8 +203,188 @@ "task": "20221207-aave-rebalanced-linear-pool-v3", "name": "MockAaveLinearPool" }, - "0xa523f47a933d5020b23629ddf689695aa94612dc": { + "0xf23b4DB826DbA14c0e857029dfF076b1c0264843": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "AaveLinearPoolFactory" + }, + "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLendingPool" + }, + "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockStaticAToken" + }, + "0x11884dA90FB4221b3aa288a7741C51eC4Fc43B2f": { + "task": "20230206-aave-rebalanced-linear-pool-v4", + "name": "MockAaveLinearPool" + }, + "0x7bc6C0E73EDAa66eF3F6E2f27b0EE8661834c6C9": { + "task": "20230206-composable-stable-pool-v3", + "name": "ComposableStablePoolFactory" + }, + "0xeff1d57A28167E6982DCa1D63321810400f73929": { + "task": "20230206-composable-stable-pool-v3", + "name": "MockComposableStablePool" + }, + "0xa3B9515A9c557455BC53F7a535A85219b59e8B2E": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "ERC4626LinearPoolFactory" + }, + "0x040dBA12Bb3D5C0A73ddfe84C220Be3ddBA06966": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "MockERC4626Token" + }, + "0xf984eb2B8a7eF780245a797A2fCcd82f346409ca": { + "task": "20230206-erc4626-linear-pool-v3", + "name": "MockERC4626LinearPool" + }, + "0x82e4cFaef85b1B6299935340c964C942280327f4": { + "task": "20230206-weighted-pool-v3", + "name": "WeightedPoolFactory" + }, + "0x93ECf386cD53718aF16a09C325a56D1bB60aDc37": { + "task": "20230206-weighted-pool-v3", + "name": "MockWeightedPool" + }, + "0x7396f99B48e7436b152427bfA3DD6Aa8C7C6d05B": { + "task": "20230213-yearn-linear-pool", + "name": "YearnLinearPoolFactory" + }, + "0x533a16F90E7d3Ca31dbc608E5EC54967710F0D2A": { + "task": "20230213-yearn-linear-pool", + "name": "MockYearnTokenVault" + }, + "0x0320C1C5B6df19A194D48882aaEC1c72940081D9": { + "task": "20230213-yearn-linear-pool", + "name": "MockYearnLinearPool" + }, + "0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68": { + "task": "20230222-merkle-orchard-v2", + "name": "MerkleOrchard" + }, + "0xa523f47A933D5020b23629dDf689695AA94612Dc": { "task": "20230223-protocol-id-registry", "name": "ProtocolIdRegistry" + }, + "0x4271de2595c3d85d2D455C5778adF2d7Ad54322C": { + "task": "20230314-batch-relayer-v5", + "name": "BatchRelayerLibrary" + }, + "0xd18d5D377eb23362e54Fa496597d7E962d56C554": { + "task": "20230314-batch-relayer-v5", + "name": "BalancerRelayer" + }, + "0xc9b36096f5201ea332Db35d6D195774ea0D5988f": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGauge" + }, + "0x22625eEDd92c81a219A83e1dc48f88d54786B017": { + "task": "20230316-child-chain-gauge-factory-v2", + "name": "ChildChainGaugeFactory" + }, + "0x47B489bf5836f83ABD928C316F8e39bC0587B020": { + "task": "20230316-l2-balancer-pseudo-minter", + "name": "L2BalancerPseudoMinter" + }, + "0x1311Fbc9F60359639174c1e7cC2032DbDb5Cc4d1": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "NullVotingEscrow" + }, + "0x0f08eEf2C785AA5e7539684aF04755dEC1347b7c": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "VotingEscrowDelegationProxy" + }, + "0x6Ab5549bBd766A43aFb687776ad8466F8b42f777": { + "task": "20230320-composable-stable-pool-v4", + "name": "ComposableStablePoolFactory" + }, + "0x0f25823cF786b78696b16536e2F2B9835289AB51": { + "task": "20230320-composable-stable-pool-v4", + "name": "MockComposableStablePool" + }, + "0xFc8a407Bba312ac761D8BFe04CE1201904842B76": { + "task": "20230320-weighted-pool-v4", + "name": "WeightedPoolFactory" + }, + "0xb77E03655ee894AadE216A83D05511A9F9895126": { + "task": "20230320-weighted-pool-v4", + "name": "MockWeightedPool" + }, + "0xB98F54A74590a6e681fF664b2Fa22EBfFe1a929E": { + "task": "20230404-l2-layer0-bridge-forwarder", + "name": "L2LayerZeroBridgeForwarder" + }, + "0x5C5fCf8fBd4cd563cED27e7D066b88ee20E1867A": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "ERC4626LinearPoolFactory" + }, + "0x19DFEF0a828EEC0c85FbB335aa65437417390b85": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "MockERC4626Token" + }, + "0xc55eC796A4dEBE625d95436a3531f4950b11bdcf": { + "task": "20230409-erc4626-linear-pool-v4", + "name": "MockERC4626LinearPool" + }, + "0x0b576c1245F479506e7C8bbc4dB4db07C1CD31F9": { + "task": "20230409-yearn-linear-pool-v2", + "name": "YearnLinearPoolFactory" + }, + "0x28fa1E40011aDF98898E8243B2a48BB21EbF0C29": { + "task": "20230409-yearn-linear-pool-v2", + "name": "MockYearnTokenVault" + }, + "0xdae301690004946424E41051aCe1791083be42a1": { + "task": "20230409-yearn-linear-pool-v2", + "name": "MockYearnLinearPool" + }, + "0xAB2372275809E15198A7968C7f324053867cdB0C": { + "task": "20230410-aave-linear-pool-v5", + "name": "AaveLinearPoolFactory" + }, + "0x0Df6bb26533EB86F371B1F70EeCdD955420523C6": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLendingPool" + }, + "0xE72B2780D3C57F781Bd4E8572E200CD7E9A447C2": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockStaticAToken" + }, + "0x0889b240A5876aae745Ac19f1771853671dC5d36": { + "task": "20230410-aave-linear-pool-v5", + "name": "MockAaveLinearPool" + }, + "0xf553bf40DB86c35f3058434039D51Aad29c6180b": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0xEDFd0A7005A7c72c44Ff13bEa370c86A9D11beE1": { + "task": "20230411-managed-pool-v2", + "name": "CircuitBreakerLib" + }, + "0xCEFD59EedAFA9EE8Ccda1AaF944088E68B5BD890": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolAmmLib" + }, + "0x72EbAFDdC4C7d3EB702c81295D90A8B29F008a03": { + "task": "20230411-managed-pool-v2", + "name": "ExternalWeightedMath" + }, + "0x1eb79551CA0e83EC145608BC39a0c7F10cA21Aa5": { + "task": "20230411-managed-pool-v2", + "name": "RecoveryModeHelper" + }, + "0xB8Dfa4fd0F083de2B7EDc0D5eeD5E684e54bA45D": { + "task": "20230411-managed-pool-v2", + "name": "ManagedPoolFactory" + }, + "0x074eFD7806e6c28e8b6611075b1Aa62c6c408090": { + "task": "20230411-managed-pool-v2", + "name": "MockManagedPool" + }, + "0x020301b0a99EFB6816B41007765Fb577259eC418": { + "task": "20230414-authorizer-wrapper", + "name": "AuthorizerWithAdaptorValidation" } } \ No newline at end of file diff --git a/pkg/deployments/addresses/sepolia.json b/pkg/deployments/addresses/sepolia.json index 870e0c7c3..5ad5a67f3 100644 --- a/pkg/deployments/addresses/sepolia.json +++ b/pkg/deployments/addresses/sepolia.json @@ -1,8 +1,4 @@ { - "0x6CaD2ea22BFA7F4C14Aae92E47F510Cd5C509bc7": { - "task": "20230223-protocol-id-registry", - "name": "ProtocolIdRegistry" - }, "0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6": { "task": "20210418-authorizer", "name": "Authorizer" @@ -31,10 +27,6 @@ "task": "20220325-authorizer-adaptor", "name": "AuthorizerAdaptor" }, - "0xb19382073c7A0aDdbb56Ac6AF1808Fa49e377B75": { - "task": "20220325-test-balancer-token", - "name": "TestBalancerToken" - }, "0xEF454a7B3f965D3f6723E462405246f8Cd865425": { "task": "20220325-bal-token-holder-factory", "name": "BALTokenHolderFactory" @@ -55,6 +47,10 @@ "task": "20220325-gauge-controller", "name": "BalancerMinter" }, + "0xb19382073c7A0aDdbb56Ac6AF1808Fa49e377B75": { + "task": "20220325-test-balancer-token", + "name": "TestBalancerToken" + }, "0x0c5538098EBe88175078972F514C9e101D325D4F": { "task": "20220325-ve-delegation", "name": "VotingEscrowDelegation" @@ -75,6 +71,10 @@ "task": "20220530-preseeded-voting-escrow-delegation", "name": "PreseededVotingEscrowDelegation" }, + "0xA6971317Fb06c76Ef731601C64433a4846fCa707": { + "task": "20220714-fee-distributor-v2", + "name": "FeeDistributor" + }, "0x1802953277FD955f9a254B80Aa0582f193cF1d77": { "task": "20220721-balancer-queries", "name": "BalancerQueries" @@ -115,6 +115,10 @@ "task": "20230215-single-recipient-gauge-factory-v2", "name": "SingleRecipientGauge" }, + "0x6CaD2ea22BFA7F4C14Aae92E47F510Cd5C509bc7": { + "task": "20230223-protocol-id-registry", + "name": "ProtocolIdRegistry" + }, "0x5F6848976C2914403B425F18B589A65772F082E3": { "task": "20230314-batch-relayer-v5", "name": "BatchRelayerLibrary" @@ -123,18 +127,6 @@ "task": "20230314-batch-relayer-v5", "name": "BalancerRelayer" }, - "0x475D18169BE8a89357A9ee3Ab00ca386d20fA229": { - "task": "20230316-l2-ve-delegation-proxy", - "name": "NullVotingEscrow" - }, - "0xD87F44Df0159DC78029AB9CA7D7e57E7249F5ACD": { - "task": "20230316-l2-ve-delegation-proxy", - "name": "VotingEscrowDelegationProxy" - }, - "0xb51f7fFc97CeDFb6922e8B9Bbf3eF7575fafD630": { - "task": "20230316-l2-balancer-pseudo-minter", - "name": "L2BalancerPseudoMinter" - }, "0xC49Ca921c4CD1117162eAEEc0ee969649997950c": { "task": "20230316-child-chain-gauge-factory-v2", "name": "ChildChainGauge" @@ -143,6 +135,18 @@ "task": "20230316-child-chain-gauge-factory-v2", "name": "ChildChainGaugeFactory" }, + "0xb51f7fFc97CeDFb6922e8B9Bbf3eF7575fafD630": { + "task": "20230316-l2-balancer-pseudo-minter", + "name": "L2BalancerPseudoMinter" + }, + "0x475D18169BE8a89357A9ee3Ab00ca386d20fA229": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "NullVotingEscrow" + }, + "0xD87F44Df0159DC78029AB9CA7D7e57E7249F5ACD": { + "task": "20230316-l2-ve-delegation-proxy", + "name": "VotingEscrowDelegationProxy" + }, "0xA3fd20E29358c056B727657E83DFd139abBC9924": { "task": "20230320-composable-stable-pool-v4", "name": "ComposableStablePoolFactory" diff --git a/pkg/deployments/hardhat.config.ts b/pkg/deployments/hardhat.config.ts index f1739ee30..7e8b7c278 100644 --- a/pkg/deployments/hardhat.config.ts +++ b/pkg/deployments/hardhat.config.ts @@ -26,7 +26,7 @@ import { getActionIdInfo, fetchTheGraphPermissions, } from './src/actionId'; -import { saveContractDeploymentAddresses } from './src/network'; +import { checkContractDeploymentAddresses, saveContractDeploymentAddresses } from './src/network'; import { name } from './package.json'; const THEGRAPHURLS: { [key: string]: string } = { @@ -256,24 +256,48 @@ task('get-action-ids-info', `Reconstructs all the permissions from TheGraph AP a } ); -task('build-address-lookup', `Build a lookup table from contract addresses to the relevant deployment`) - .addOptionalParam('id', 'Specific task ID') - .setAction(async (args: { id?: string; verbose?: boolean }, hre: HardhatRuntimeEnvironment) => { +task('build-address-lookup', `Build a lookup table from contract addresses to the relevant deployment`).setAction( + async (args: { verbose?: boolean }, hre: HardhatRuntimeEnvironment) => { Logger.setDefaults(false, args.verbose || false); - - if (args.id) { - const task = new Task(args.id, TaskMode.READ_ONLY, hre.network.name); - saveContractDeploymentAddresses(task); - } else { - for (const taskID of Task.getAllTaskIds()) { - if (taskID.startsWith('00000000-')) { - continue; - } - const task = new Task(taskID, TaskMode.READ_ONLY, hre.network.name); - saveContractDeploymentAddresses(task); - } + if (hre.network.name === 'hardhat') { + logger.warn(`invalid network: ${hre.network.name}`); + return; } - }); + + // Create Task objects, excluding tokens tasks. + const tasks = Task.getAllTaskIds() + .filter((taskId) => !taskId.startsWith('00000000-')) + .map((taskId) => new Task(taskId, TaskMode.READ_ONLY, hre.network.name)); + + saveContractDeploymentAddresses(tasks, hre.network.name); + logger.success(`Address lookup generated for network ${hre.network.name}`); + } +); + +task( + 'check-address-lookup', + `Check whether the existing lookup table from contract addresses to the relevant deployments is correct` +).setAction(async (args: { verbose?: boolean }, hre: HardhatRuntimeEnvironment) => { + Logger.setDefaults(false, args.verbose || false); + if (hre.network.name === 'hardhat') { + logger.warn(`invalid network: ${hre.network.name}`); + return; + } + + // Create Task objects, excluding tokens tasks. + const tasks = Task.getAllTaskIds() + .filter((taskId) => !taskId.startsWith('00000000-')) + .map((taskId) => new Task(taskId, TaskMode.READ_ONLY, hre.network.name)); + + const addressLookupFileOk = checkContractDeploymentAddresses(tasks, hre.network.name); + if (!addressLookupFileOk) { + throw new Error( + `Address lookup file is incorrect for network ${hre.network.name}. Please run 'build-address-lookup' to regenerate it` + ); + } else { + logger.success(`Address lookup file is correct for network ${hre.network.name}`); + } +}); task(TASK_TEST).addOptionalParam('id', 'Specific task ID of the fork test to run.').setAction(test); diff --git a/pkg/deployments/package.json b/pkg/deployments/package.json index be0987cf7..4e44d9688 100644 --- a/pkg/deployments/package.json +++ b/pkg/deployments/package.json @@ -28,7 +28,8 @@ "check-deployments": "hardhat check-deployments --network mainnet && hardhat check-deployments --network polygon && hardhat check-deployments --network arbitrum && hardhat check-deployments --network optimism && hardhat check-deployments --network goerli && hardhat check-deployments --network bsc && hardhat check-deployments --network avalanche && hardhat check-deployments --network sepolia", "check-action-ids": "hardhat check-action-ids --network mainnet && hardhat check-action-ids --network polygon && hardhat check-action-ids --network arbitrum && hardhat check-action-ids --network optimism && hardhat check-action-ids --network bsc && hardhat check-action-ids --network avalanche && hardhat check-action-ids --network sepolia", "extract-artifacts": "hardhat extract-artifacts", - "build-address-lookup": "hardhat build-address-lookup --network mainnet && hardhat build-address-lookup --network polygon && hardhat build-address-lookup --network arbitrum && hardhat build-address-lookup --network optimism && hardhat build-address-lookup --network goerli && hardhat build-address-lookup --network gnosis && hardhat build-address-lookup --network bsc && hardhat build-address-lookup --network avalanche", + "build-address-lookup": "hardhat build-address-lookup --network mainnet && hardhat build-address-lookup --network polygon && hardhat build-address-lookup --network arbitrum && hardhat build-address-lookup --network optimism && hardhat build-address-lookup --network gnosis && hardhat build-address-lookup --network bsc && hardhat build-address-lookup --network avalanche && hardhat build-address-lookup --network goerli && hardhat build-address-lookup --network sepolia", + "check-address-lookup": "hardhat check-address-lookup --network mainnet && hardhat check-address-lookup --network polygon && hardhat check-address-lookup --network arbitrum && hardhat check-address-lookup --network optimism && hardhat check-address-lookup --network gnosis && hardhat check-address-lookup --network bsc && hardhat check-address-lookup --network avalanche && hardhat check-address-lookup --network goerli && hardhat check-address-lookup --network sepolia", "lint": "yarn lint:solidity && yarn lint:typescript", "lint:solidity": "solhint 'tasks/**/*.sol'", "lint:typescript": "NODE_NO_WARNINGS=1 eslint . --ext .ts --ignore-path ../../.eslintignore --max-warnings 0", diff --git a/pkg/deployments/src/network.ts b/pkg/deployments/src/network.ts index 26d9f48b8..66d28b251 100644 --- a/pkg/deployments/src/network.ts +++ b/pkg/deployments/src/network.ts @@ -42,25 +42,53 @@ export function getContractDeploymentTransactionHash(deployedAddress: string, ne return txHash; } -export function saveContractDeploymentAddresses(task: Task): void { - if (task.network === 'hardhat') return; +/** + * Saves a file with the canonical deployment addresses for all tasks in a given network. + */ +export function saveContractDeploymentAddresses(tasks: Task[], network: string): void { + if (network === 'hardhat') return; + + const allTaskEntries = buildContractDeploymentAddressesEntries(tasks); + const filePath = path.join(CONTRACT_ADDRESSES_DIRECTORY, `${network}.json`); + + fs.writeFileSync(filePath, _stringifyEntries(allTaskEntries)); +} + +/** + * Builds an object that maps deployment addresses to {task ID, contract name} for all given tasks. + */ +export function buildContractDeploymentAddressesEntries(tasks: Task[]): object { + let allTaskEntries = {}; + + for (const task of tasks) { + const taskEntries = Object.fromEntries( + Object.entries(task.output({ ensure: false })).map(([name, address]) => [address, { task: task.id, name }]) + ); + allTaskEntries = { + ...allTaskEntries, + ...taskEntries, + }; + } + + return allTaskEntries; +} - const newEntries = Object.fromEntries( - Object.entries(task.output({ ensure: false })).map(([name, address]) => [address, { task: task.id, name }]) - ); +/** + * Returns true if the existing deployment addresses file stored in `CONTRACT_ADDRESSES_DIRECTORY` matches the + * canonical one for the given network; false otherwise. + */ +export function checkContractDeploymentAddresses(tasks: Task[], network: string): boolean { + const allTaskEntries = buildContractDeploymentAddressesEntries(tasks); - const filePath = path.join(CONTRACT_ADDRESSES_DIRECTORY, `${task.network}.json`); + const filePath = path.join(CONTRACT_ADDRESSES_DIRECTORY, `${network}.json`); const fileExists = fs.existsSync(filePath) && fs.statSync(filePath).isFile(); // Load the existing content if any exists. - let newFileContents: Record = fileExists - ? JSON.parse(fs.readFileSync(filePath).toString()) - : {}; - // Write the task's entries into the file.. - newFileContents = { - ...newFileContents, - ...newEntries, - }; + const existingFileContents: string = fileExists ? fs.readFileSync(filePath).toString() : ''; - fs.writeFileSync(filePath, JSON.stringify(newFileContents, null, 2)); + return _stringifyEntries(allTaskEntries) === existingFileContents; +} + +function _stringifyEntries(entries: object): string { + return JSON.stringify(entries, null, 2); }