From 59ac5493625807d357d5845b4579c64300eb2924 Mon Sep 17 00:00:00 2001 From: Tom French <15848336+TomAFrench@users.noreply.github.com> Date: Mon, 28 Nov 2022 21:22:42 +0000 Subject: [PATCH] Add address lookup table to find contract task/name (#2031) * refactor: make unnecessarily async functions sync * docs: fix typos * feat: add lookup table from contract addresses back to a deployment task and named contract * chore: generate lookup tables * fix: include lookup table in build output * refactor: build address lookup table at build time * chore: update lookup table to contain deprecated contracts * fix: stop attempting to build address lookup table when building deployments This prevents the monorepo being built without rpc api keys --- pkg/deployments/addresses/arbitrum.json | 202 ++++++++++++++ pkg/deployments/addresses/bsc.json | 82 ++++++ pkg/deployments/addresses/gnosis.json | 46 ++++ pkg/deployments/addresses/goerli.json | 282 +++++++++++++++++++ pkg/deployments/addresses/mainnet.json | 342 ++++++++++++++++++++++++ pkg/deployments/addresses/optimism.json | 162 +++++++++++ pkg/deployments/addresses/polygon.json | 198 ++++++++++++++ pkg/deployments/hardhat.config.ts | 20 ++ pkg/deployments/index.ts | 21 +- pkg/deployments/package.json | 1 + pkg/deployments/src/network.ts | 27 ++ pkg/deployments/tsconfig.json | 2 +- 12 files changed, 1383 insertions(+), 2 deletions(-) create mode 100644 pkg/deployments/addresses/arbitrum.json create mode 100644 pkg/deployments/addresses/bsc.json create mode 100644 pkg/deployments/addresses/gnosis.json create mode 100644 pkg/deployments/addresses/goerli.json create mode 100644 pkg/deployments/addresses/mainnet.json create mode 100644 pkg/deployments/addresses/optimism.json create mode 100644 pkg/deployments/addresses/polygon.json diff --git a/pkg/deployments/addresses/arbitrum.json b/pkg/deployments/addresses/arbitrum.json new file mode 100644 index 0000000000..abc2b4cf1c --- /dev/null +++ b/pkg/deployments/addresses/arbitrum.json @@ -0,0 +1,202 @@ +{ + "0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6": { + "task": "20210418-authorizer", + "name": "Authorizer" + }, + "0xBA12222222228d8Ba445958a75a0704d566BF2C8": { + "task": "20210418-vault", + "name": "Vault" + }, + "0x77d46184d22CA6a3726a2F500c776767b6A3d6Ab": { + "task": "20210418-vault", + "name": "BalancerHelpers" + }, + "0xce88686553686DA562CE7Cea497CE749DA109f9F": { + "task": "20210418-vault", + "name": "ProtocolFeesCollector" + }, + "0x7dFdEF5f355096603419239CE743BfaF1120312B": { + "task": "20210418-weighted-pool", + "name": "WeightedPoolFactory" + }, + "0xCF0a32Bbef8F064969F21f7e02328FB577382018": { + "task": "20210418-weighted-pool", + "name": "WeightedPool2TokensFactory" + }, + "0x2433477A10FC5d31B9513C638F19eE85CaED53Fd": { + "task": "20210624-stable-pool", + "name": "StablePoolFactory" + }, + "0x142B9666a0a3A30477b052962ddA81547E7029ab": { + "task": "20210721-liquidity-bootstrapping-pool", + "name": "LiquidityBootstrappingPoolFactory" + }, + "0x6783995f91A3D7f7C24B523669488F96cCa88d31": { + "task": "20210727-meta-stable-pool", + "name": "QueryProcessor" + }, + "0xEBFD5681977E38Af65A7487DC70B8221D089cCAD": { + "task": "20210727-meta-stable-pool", + "name": "MetaStablePoolFactory" + }, + "0xaCd615B3705B9c880E4E7293f1030B34e57B4c1c": { + "task": "20210907-investment-pool", + "name": "InvestmentPoolFactory" + }, + "0x6bd0B17713aaa29A2d7c9A39dDc120114f9fD809": { + "task": "20210913-bal-arbitrum-merkle", + "name": "MerkleRedeem" + }, + "0xC6bD2497332d24094eC16a7261eec5C412B5a2C1": { + "task": "20210928-mcb-arbitrum-merkle", + "name": "MerkleRedeem" + }, + "0x751A0bC0e3f75b38e01Cf25bFCE7fF36DE1C87DE": { + "task": "20211012-merkle-orchard", + "name": "MerkleOrchard" + }, + "0x1802953277FD955f9a254B80Aa0582f193cF1d77": { + "task": "20211202-no-protocol-fee-lbp", + "name": "NoProtocolFeeLiquidityBootstrappingPoolFactory" + }, + "0x72D07D7DcA67b8A406aD1Ec34ce969c90bFEE768": { + "task": "20211203-batch-relayer", + "name": "BatchRelayerLibrary" + }, + "0x466262c2a275aB106E54D95B5B04603e12b58cA1": { + "task": "20211203-batch-relayer", + "name": "BalancerRelayer" + }, + "0xdcdbf71A870cc60C6F9B621E28a7D3Ffd6Dd4965": { + "task": "20211208-aave-linear-pool", + "name": "AaveLinearPoolFactory" + }, + "0xdAE7e32ADc5d490a43cCba1f0c736033F2b4eFca": { + "task": "20211208-stable-phantom-pool", + "name": "StablePhantomPoolFactory" + }, + "0x1554ee754707D5C93b7934AF404747Aba521Aaf2": { + "task": "20220318-batch-relayer-v2", + "name": "BatchRelayerLibrary" + }, + "0x440eC9C8b78518D420E6fb6c6c838421F28BC280": { + "task": "20220318-batch-relayer-v2", + "name": "BalancerRelayer" + }, + "0x0F3e0c4218b7b0108a3643cFe9D3ec0d4F57c54e": { + "task": "20220325-authorizer-adaptor", + "name": "AuthorizerAdaptor" + }, + "0x2794953110874981a0d301286c986992022A62a1": { + "task": "20220404-erc4626-linear-pool-v2", + "name": "ERC4626LinearPoolFactory" + }, + "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" + }, + "0x8878f1273466157a79570DdE1A42130e551B6EAd": { + "task": "20220425-unbutton-aave-linear-pool", + "name": "UnbuttonAaveLinearPoolFactory" + }, + "0x8E5698dC4897DC12243c8642e77B4f21349Db97C": { + "task": "20220513-double-entrypoint-fix-relayer", + "name": "DoubleEntrypointFixRelayer" + }, + "0x70Bbd023481788e443472e123AB963e5EBF58D06": { + "task": "20220517-protocol-fee-withdrawer", + "name": "ProtocolFeesWithdrawer" + }, + "0xbfD9769b061E57e478690299011A028194D66e3C": { + "task": "20220527-child-chain-gauge-token-adder", + "name": "ChildChainGaugeTokenAdder" + }, + "0xEF44D6786b2b4d544b7850Fe67CE6381626Bf2D6": { + "task": "20220609-stable-pool-v2", + "name": "StablePoolFactory" + }, + "0x4f4269F7008430860693aeDB86b0C55962D6E9b7": { + "task": "20220720-batch-relayer-v3", + "name": "BatchRelayerLibrary" + }, + "0x42E49B48573c725ee32d2579060Ed06894f97002": { + "task": "20220720-batch-relayer-v3", + "name": "BalancerRelayer" + }, + "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5": { + "task": "20220721-balancer-queries", + "name": "BalancerQueries" + }, + "0x5ef4c5352882b10893b70DbcaA0C000965bd23c5": { + "task": "20220725-protocol-fee-percentages-provider", + "name": "ProtocolFeePercentagesProvider" + }, + "0xA0DAbEBAAd1b243BBb243f933013d560819eB66f": { + "task": "20220812-child-chain-reward-helper", + "name": "ChildChainGaugeRewardHelper" + }, + "0xe2E901AB09f37884BA31622dF3Ca7FC19AA443Be": { + "task": "20220817-aave-rebalanced-linear-pool", + "name": "AaveLinearPoolFactory" + }, + "0xaEb406b0E430BF5Ea2Dc0B9Fe62E4E53f74B3a33": { + "task": "20220906-composable-stable-pool", + "name": "ComposableStablePoolFactory" + }, + "0x8df6EfEc5547e31B0eb7d1291B511FF8a2bf987c": { + "task": "20220908-weighted-pool-v2", + "name": "WeightedPoolFactory" + }, + "0x967F7AdD4Fd5AF0553B7A45F225ec26EDD699E61": { + "task": "20220916-batch-relayer-v4", + "name": "BatchRelayerLibrary" + }, + "0x5bf3B7c14b10f16939d63Bd679264A1Aa951B4D5": { + "task": "20220916-batch-relayer-v4", + "name": "BalancerRelayer" + }, + "0xF24917fB88261a37Cc57F686eBC831a5c0B9fD39": { + "task": "20221021-managed-pool", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0xE42FFA682A26EF8F25891db4882932711D42e467": { + "task": "20221021-managed-pool", + "name": "CircuitBreakerLib" + }, + "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288": { + "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" + }, + "0x77f0e64Faf0FDeAF0b632919214ba142f0478424": { + "task": "20221115-aave-rebalanced-linear-pool", + "name": "MockAaveLinearPool" + }, + "0xb5e56CC3d2e38e53b1166175C59e921A37cDC1E2": { + "task": "20221123-pool-recovery-helper", + "name": "PoolRecoveryHelper" + }, + "0x97207B095e4D5C9a6e4cfbfcd2C3358E03B90c4A": { + "task": "20221124-authorizer-adaptor-entrypoint", + "name": "AuthorizerAdaptorEntrypoint" + } +} \ No newline at end of file diff --git a/pkg/deployments/addresses/bsc.json b/pkg/deployments/addresses/bsc.json new file mode 100644 index 0000000000..3fadd61a37 --- /dev/null +++ b/pkg/deployments/addresses/bsc.json @@ -0,0 +1,82 @@ +{ + "0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6": { + "task": "20210418-authorizer", + "name": "Authorizer" + }, + "0xBA12222222228d8Ba445958a75a0704d566BF2C8": { + "task": "20210418-vault", + "name": "Vault" + }, + "0xce88686553686DA562CE7Cea497CE749DA109f9F": { + "task": "20210418-vault", + "name": "ProtocolFeesCollector" + }, + "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9": { + "task": "20210418-vault", + "name": "BalancerHelpers" + }, + "0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD": { + "task": "20211202-no-protocol-fee-lbp", + "name": "NoProtocolFeeLiquidityBootstrappingPoolFactory" + }, + "0x41B953164995c11C81DA73D212ED8Af25741b7Ac": { + "task": "20220325-authorizer-adaptor", + "name": "AuthorizerAdaptor" + }, + "0xD7FAD3bd59D6477cbe1BE7f646F7f1BA25b230f8": { + "task": "20220517-protocol-fee-withdrawer", + "name": "ProtocolFeesWithdrawer" + }, + "0x239e55F427D44C3cc793f49bFB507ebe76638a2b": { + "task": "20220721-balancer-queries", + "name": "BalancerQueries" + }, + "0xb08E16cFc07C684dAA2f93C70323BAdb2A6CBFd2": { + "task": "20220725-protocol-fee-percentages-provider", + "name": "ProtocolFeePercentagesProvider" + }, + "0x2E96068b3D5B5BAE3D7515da4A1D2E52d08A2647": { + "task": "20220817-aave-rebalanced-linear-pool", + "name": "AaveLinearPoolFactory" + }, + "0xf302f9F50958c5593770FDf4d4812309fF77414f": { + "task": "20220906-composable-stable-pool", + "name": "ComposableStablePoolFactory" + }, + "0xC128a9954e6c874eA3d62ce62B468bA073093F25": { + "task": "20220908-weighted-pool-v2", + "name": "WeightedPoolFactory" + }, + "0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75": { + "task": "20220916-batch-relayer-v4", + "name": "BatchRelayerLibrary" + }, + "0x4574ccBcC09A00C9eE55fB92Fe353699A4fA800e": { + "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" + }, + "0x4ca6AC0509E6381Ca7CD872a6cdC0Fbf00600Fa1": { + "task": "20221115-aave-rebalanced-linear-pool", + "name": "MockAaveLinearPool" + }, + "0x3b8cA519122CdD8efb272b0D3085453404B25bD0": { + "task": "20221123-pool-recovery-helper", + "name": "PoolRecoveryHelper" + }, + "0xeb151668006CD04DAdD098AFd0a82e78F77076c3": { + "task": "20221124-authorizer-adaptor-entrypoint", + "name": "AuthorizerAdaptorEntrypoint" + } +} \ No newline at end of file diff --git a/pkg/deployments/addresses/gnosis.json b/pkg/deployments/addresses/gnosis.json new file mode 100644 index 0000000000..ff8b9c7f3d --- /dev/null +++ b/pkg/deployments/addresses/gnosis.json @@ -0,0 +1,46 @@ +{ + "0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6": { + "task": "20210418-authorizer", + "name": "Authorizer" + }, + "0xBA12222222228d8Ba445958a75a0704d566BF2C8": { + "task": "20210418-vault", + "name": "Vault" + }, + "0xce88686553686DA562CE7Cea497CE749DA109f9F": { + "task": "20210418-vault", + "name": "ProtocolFeesCollector" + }, + "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9": { + "task": "20210418-vault", + "name": "BalancerHelpers" + }, + "0x5aDDCCa35b7A0D07C74063c48700C8590E87864E": { + "task": "20220325-authorizer-adaptor", + "name": "AuthorizerAdaptor" + }, + "0xdAE7e32ADc5d490a43cCba1f0c736033F2b4eFca": { + "task": "20220517-protocol-fee-withdrawer", + "name": "ProtocolFeesWithdrawer" + }, + "0x0F3e0c4218b7b0108a3643cFe9D3ec0d4F57c54e": { + "task": "20220721-balancer-queries", + "name": "BalancerQueries" + }, + "0x41B953164995c11C81DA73D212ED8Af25741b7Ac": { + "task": "20220725-protocol-fee-percentages-provider", + "name": "ProtocolFeePercentagesProvider" + }, + "0xD7FAD3bd59D6477cbe1BE7f646F7f1BA25b230f8": { + "task": "20220916-batch-relayer-v4", + "name": "BatchRelayerLibrary" + }, + "0xeF606F58A4FD0fCcb066c6203d0994694d3eB2D3": { + "task": "20220916-batch-relayer-v4", + "name": "BalancerRelayer" + }, + "0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75": { + "task": "20221124-authorizer-adaptor-entrypoint", + "name": "AuthorizerAdaptorEntrypoint" + } +} \ No newline at end of file diff --git a/pkg/deployments/addresses/goerli.json b/pkg/deployments/addresses/goerli.json new file mode 100644 index 0000000000..028d733e17 --- /dev/null +++ b/pkg/deployments/addresses/goerli.json @@ -0,0 +1,282 @@ +{ + "0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6": { + "task": "20210418-authorizer", + "name": "Authorizer" + }, + "0xBA12222222228d8Ba445958a75a0704d566BF2C8": { + "task": "20210418-vault", + "name": "Vault" + }, + "0x5aDDCCa35b7A0D07C74063c48700C8590E87864E": { + "task": "20210418-vault", + "name": "BalancerHelpers" + }, + "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9": { + "task": "20210418-weighted-pool", + "name": "WeightedPoolFactory" + }, + "0xA5bf2ddF098bb0Ef6d120C98217dD6B141c74EE0": { + "task": "20210418-weighted-pool", + "name": "WeightedPool2TokensFactory" + }, + "0x44afeb87c871D8fEA9398a026DeA2BD3A13F5769": { + "task": "20210624-stable-pool", + "name": "StablePoolFactory" + }, + "0xb48Cc42C45d262534e46d5965a9Ac496F1B7a830": { + "task": "20210721-liquidity-bootstrapping-pool", + "name": "LiquidityBootstrappingPoolFactory" + }, + "0xf97c7788d2D74b12CbAb2Efa0c69a44280211457": { + "task": "20210727-meta-stable-pool", + "name": "QueryProcessor" + }, + "0xA55F73E2281c60206ba43A3590dB07B8955832Be": { + "task": "20210727-meta-stable-pool", + "name": "MetaStablePoolFactory" + }, + "0xdc10e8f47B6858E32218E01db224795235872B19": { + "task": "20210812-lido-relayer", + "name": "LidoRelayer" + }, + "0x80a94F458491CA88F09767E58a92FD23Cbf1196F": { + "task": "20210812-wsteth-rate-provider", + "name": "WstETHRateProvider" + }, + "0x3C9F788131A26329A689Bd951b5aCb4454669487": { + "task": "20210907-investment-pool", + "name": "InvestmentPoolFactory" + }, + "0x35b50C7955e7D0E8298e043C9F4dCDef737b9f5a": { + "task": "20211012-merkle-orchard", + "name": "MerkleOrchard" + }, + "0xB0C726778C3AE4B3454D85557A48e8fa502bDD6A": { + "task": "20211202-no-protocol-fee-lbp", + "name": "NoProtocolFeeLiquidityBootstrappingPoolFactory" + }, + "0xFB2f4CE9843E1069CC1F9d76e0236d6dFF2b1eeA": { + "task": "20211203-batch-relayer", + "name": "BatchRelayerLibrary" + }, + "0x8002d3e5875b38C5B03da83aeB430dC63E047F62": { + "task": "20211203-batch-relayer", + "name": "BalancerRelayer" + }, + "0x94470C12fc192e071F12Fec1152861608CE01562": { + "task": "20211208-aave-linear-pool", + "name": "AaveLinearPoolFactory" + }, + "0x41E9036AE350baEDCC7107760A020Dca3c0731ec": { + "task": "20211208-stable-phantom-pool", + "name": "StablePhantomPoolFactory" + }, + "0x10aF508f3b0e067Dd5eA3149A003457F49C8bB69": { + "task": "20220318-batch-relayer-v2", + "name": "BatchRelayerLibrary" + }, + "0x12A39C1A0d17f354d02670961DEf678223Aa15Da": { + "task": "20220318-batch-relayer-v2", + "name": "BalancerRelayer" + }, + "0x5D90225De345eE24d1d2B6F45DE90B056F5265A1": { + "task": "20220325-authorizer-adaptor", + "name": "AuthorizerAdaptor" + }, + "0x45E617B07021B97407367624648d1A0A358a751A": { + "task": "20220325-bal-token-holder-factory", + "name": "BALTokenHolderFactory" + }, + "0x0F32D7D830E20809Bcb9071581A696135dD472B7": { + "task": "20220325-balancer-token-admin", + "name": "BalancerTokenAdmin" + }, + "0x0Df18b22fB1DD4c1D4bfBF783A8acF0758979328": { + "task": "20220325-gauge-adder", + "name": "GaugeAdder" + }, + "0x33A99Dcc4C85C014cf12626959111D5898bbCAbF": { + "task": "20220325-gauge-controller", + "name": "VotingEscrow" + }, + "0xBB1CE49b16d55A1f2c6e88102f32144C7334B116": { + "task": "20220325-gauge-controller", + "name": "GaugeController" + }, + "0xdf0399539A72E2689B8B2DD53C3C2A0883879fDd": { + "task": "20220325-gauge-controller", + "name": "BalancerMinter" + }, + "0xfE734760aD346d4013FD597c4f4a897aef332128": { + "task": "20220325-mainnet-gauge-factory", + "name": "LiquidityGaugeV5" + }, + "0x224E808FBD9e491Be8988B8A0451FBF777C81B8A": { + "task": "20220325-mainnet-gauge-factory", + "name": "LiquidityGaugeFactory" + }, + "0xd14FFA46C211eac64338c27549c3312380f850Fa": { + "task": "20220325-single-recipient-gauge-factory", + "name": "SingleRecipientGaugeFactory" + }, + "0xfA8449189744799aD2AcE7e0EBAC8BB7575eff47": { + "task": "20220325-test-balancer-token", + "name": "TestBalancerToken" + }, + "0xcfF73979321788d59a6170fF012730dB2087f31c": { + "task": "20220325-ve-delegation", + "name": "VotingEscrowDelegation" + }, + "0xA1F107D1cD709514AE8A914eCB757E95f9cedB31": { + "task": "20220325-ve-delegation", + "name": "VotingEscrowDelegationProxy" + }, + "0xdc15A3C5D16413C1C1F75Db0f75c4ae2a4104650": { + "task": "20220404-erc4626-linear-pool-v2", + "name": "ERC4626LinearPoolFactory" + }, + "0x40Bd3fAef4268EA40F4c372D7f0A44C3EFaAA6b1": { + "task": "20220413-child-chain-gauge-factory", + "name": "RewardsOnlyGauge" + }, + "0x5B5B72D76B68f4Bb1d2A10EF0fc77711f8Ec7ed0": { + "task": "20220413-child-chain-gauge-factory", + "name": "ChildChainStreamer" + }, + "0x393B918Cc2Ffa238732E83dD4eE52343f57d767b": { + "task": "20220413-child-chain-gauge-factory", + "name": "ChildChainLiquidityGaugeFactory" + }, + "0x7F91dcdE02F72b478Dc73cB21730cAcA907c8c44": { + "task": "20220420-fee-distributor", + "name": "FeeDistributor" + }, + "0x1b6DF1fF5db99F8a8A04D38f7478BAB056Fa35A7": { + "task": "20220420-smart-wallet-checker", + "name": "SmartWalletChecker" + }, + "0x194F864aF5a7F224E9E79Cf110cC5B4e36e2ddFc": { + "task": "20220421-smart-wallet-checker-coordinator", + "name": "SmartWalletCheckerCoordinator" + }, + "0x4b9A00DD766DB94Df48C2901C321174a5cE75529": { + "task": "20220425-unbutton-aave-linear-pool", + "name": "UnbuttonAaveLinearPoolFactory" + }, + "0xBe9458ab5B6F289e524410141c8d5E20A6b035fe": { + "task": "20220513-double-entrypoint-fix-relayer", + "name": "DoubleEntrypointFixRelayer" + }, + "0x85153B639a35d6e6CF8B291Aca237FbE67377154": { + "task": "20220517-protocol-fee-withdrawer", + "name": "ProtocolFeesWithdrawer" + }, + "0x55B18f514D7f0C6C886d0C23Ac72dF5D3B5F8850": { + "task": "20220527-child-chain-gauge-token-adder", + "name": "ChildChainGaugeTokenAdder" + }, + "0x7AF980bDBc36D21CE228EfABCCA35707566A2be5": { + "task": "20220530-preseeded-voting-escrow-delegation", + "name": "PreseededVotingEscrowDelegation" + }, + "0xD360B8afb3d7463bE823bE1Ec3c33aA173EbE86e": { + "task": "20220609-stable-pool-v2", + "name": "StablePoolFactory" + }, + "0x42bAF6db21250fa76d015621D2F6DF172858A5cb": { + "task": "20220628-gauge-adder-v2", + "name": "GaugeAdder" + }, + "0x05a0BF0540F346b6Dac25550738343BEb51C0f65": { + "task": "20220707-distribution-scheduler", + "name": "DistributionScheduler" + }, + "0x42B67611B208E2e9b4CC975F6D74c87b865aE066": { + "task": "20220714-fee-distributor-v2", + "name": "FeeDistributor" + }, + "0xdcdbf71A870cc60C6F9B621E28a7D3Ffd6Dd4965": { + "task": "20220720-batch-relayer-v3", + "name": "BatchRelayerLibrary" + }, + "0x7b9B6f094DC2Bd1c12024b0D9CC63d6993Be1888": { + "task": "20220720-batch-relayer-v3", + "name": "BalancerRelayer" + }, + "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5": { + "task": "20220721-balancer-queries", + "name": "BalancerQueries" + }, + "0x0F3e0c4218b7b0108a3643cFe9D3ec0d4F57c54e": { + "task": "20220725-protocol-fee-percentages-provider", + "name": "ProtocolFeePercentagesProvider" + }, + "0xC128a9954e6c874eA3d62ce62B468bA073093F25": { + "task": "20220812-child-chain-reward-helper", + "name": "ChildChainGaugeRewardHelper" + }, + "0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD": { + "task": "20220817-aave-rebalanced-linear-pool", + "name": "AaveLinearPoolFactory" + }, + "0x2E96068b3D5B5BAE3D7515da4A1D2E52d08A2647": { + "task": "20220822-mainnet-gauge-factory-v2", + "name": "LiquidityGaugeV5" + }, + "0x3b8cA519122CdD8efb272b0D3085453404B25bD0": { + "task": "20220822-mainnet-gauge-factory-v2", + "name": "LiquidityGaugeFactory" + }, + "0xB848f50141F3D4255b37aC288C25C109104F2158": { + "task": "20220906-composable-stable-pool", + "name": "ComposableStablePoolFactory" + }, + "0x94f68b54191F62f781Fe8298A8A5Fa3ed772d227": { + "task": "20220908-weighted-pool-v2", + "name": "WeightedPoolFactory" + }, + "0xeb151668006CD04DAdD098AFd0a82e78F77076c3": { + "task": "20220916-batch-relayer-v4", + "name": "BatchRelayerLibrary" + }, + "0x00e695aA8000df01B8DC8401B4C34Fba5D56BBb2": { + "task": "20220916-batch-relayer-v4", + "name": "BalancerRelayer" + }, + "0x0343311A33994a3d27273505560ED73dC2BD0Db3": { + "task": "20221021-managed-pool", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0x782640c4e71F523152AE0942ee7589fB24c8367D": { + "task": "20221021-managed-pool", + "name": "CircuitBreakerLib" + }, + "0x3EAd2FdcBEE244d9fA5b8d233EfedD34Bb7D2434": { + "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" + }, + "0x88D07558470484c03d3bb44c3ECc36CAfCF43253": { + "task": "20221115-aave-rebalanced-linear-pool", + "name": "MockAaveLinearPool" + }, + "0x1cbbE6cEa5E4fE7D69c586b4e362A646DEEf105d": { + "task": "20221123-pool-recovery-helper", + "name": "PoolRecoveryHelper" + }, + "0xacAaC3e6D6Df918Bf3c809DFC7d42de0e4a72d4C": { + "task": "20221124-authorizer-adaptor-entrypoint", + "name": "AuthorizerAdaptorEntrypoint" + } +} \ No newline at end of file diff --git a/pkg/deployments/addresses/mainnet.json b/pkg/deployments/addresses/mainnet.json new file mode 100644 index 0000000000..6e02be0e2d --- /dev/null +++ b/pkg/deployments/addresses/mainnet.json @@ -0,0 +1,342 @@ +{ + "0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6": { + "task": "20210418-authorizer", + "name": "Authorizer" + }, + "0xBA12222222228d8Ba445958a75a0704d566BF2C8": { + "task": "20210418-vault", + "name": "Vault" + }, + "0x5aDDCCa35b7A0D07C74063c48700C8590E87864E": { + "task": "20210418-vault", + "name": "BalancerHelpers" + }, + "0xce88686553686DA562CE7Cea497CE749DA109f9F": { + "task": "20210418-vault", + "name": "ProtocolFeesCollector" + }, + "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9": { + "task": "20210418-weighted-pool", + "name": "WeightedPoolFactory" + }, + "0xA5bf2ddF098bb0Ef6d120C98217dD6B141c74EE0": { + "task": "20210418-weighted-pool", + "name": "WeightedPool2TokensFactory" + }, + "0xc66Ba2B6595D3613CCab350C886aCE23866EDe24": { + "task": "20210624-stable-pool", + "name": "StablePoolFactory" + }, + "0x751A0bC0e3f75b38e01Cf25bFCE7fF36DE1C87DE": { + "task": "20210721-liquidity-bootstrapping-pool", + "name": "LiquidityBootstrappingPoolFactory" + }, + "0x469b58680774AAc9Ad66447eFB4EF634756A2cC5": { + "task": "20210727-meta-stable-pool", + "name": "QueryProcessor" + }, + "0x67d27634E44793fE63c467035E31ea8635117cd4": { + "task": "20210727-meta-stable-pool", + "name": "MetaStablePoolFactory" + }, + "0x884226c9f7b7205f607922E0431419276a64CF8f": { + "task": "20210811-ldo-merkle", + "name": "MerkleRedeem" + }, + "0xdcdbf71A870cc60C6F9B621E28a7D3Ffd6Dd4965": { + "task": "20210812-lido-relayer", + "name": "LidoRelayer" + }, + "0x72D07D7DcA67b8A406aD1Ec34ce969c90bFEE768": { + "task": "20210812-wsteth-rate-provider", + "name": "WstETHRateProvider" + }, + "0x48767F9F868a4A7b86A90736632F6E44C2df7fa9": { + "task": "20210907-investment-pool", + "name": "InvestmentPoolFactory" + }, + "0xdAE7e32ADc5d490a43cCba1f0c736033F2b4eFca": { + "task": "20211012-merkle-orchard", + "name": "MerkleOrchard" + }, + "0x0F3e0c4218b7b0108a3643cFe9D3ec0d4F57c54e": { + "task": "20211202-no-protocol-fee-lbp", + "name": "NoProtocolFeeLiquidityBootstrappingPoolFactory" + }, + "0x41B953164995c11C81DA73D212ED8Af25741b7Ac": { + "task": "20211203-batch-relayer", + "name": "BatchRelayerLibrary" + }, + "0xAc9f49eF3ab0BbC929f7b1bb0A17E1Fca5786251": { + "task": "20211203-batch-relayer", + "name": "BalancerRelayer" + }, + "0xD7FAD3bd59D6477cbe1BE7f646F7f1BA25b230f8": { + "task": "20211208-aave-linear-pool", + "name": "AaveLinearPoolFactory" + }, + "0xb08E16cFc07C684dAA2f93C70323BAdb2A6CBFd2": { + "task": "20211208-stable-phantom-pool", + "name": "StablePhantomPoolFactory" + }, + "0xd45369c11870e2057D5be17Cc106d32Ea416F7c4": { + "task": "20220318-batch-relayer-v2", + "name": "BatchRelayerLibrary" + }, + "0x51CC53375A8920aE54C0561E73a9d0423A74832e": { + "task": "20220318-batch-relayer-v2", + "name": "BalancerRelayer" + }, + "0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75": { + "task": "20220325-authorizer-adaptor", + "name": "AuthorizerAdaptor" + }, + "0xB848f50141F3D4255b37aC288C25C109104F2158": { + "task": "20220325-bal-token-holder-factory", + "name": "BALTokenHolderFactory" + }, + "0xf302f9F50958c5593770FDf4d4812309fF77414f": { + "task": "20220325-balancer-token-admin", + "name": "BalancerTokenAdmin" + }, + "0xEd5ba579bB5D516263ff6E1C10fcAc1040075Fe2": { + "task": "20220325-gauge-adder", + "name": "GaugeAdder" + }, + "0xC128a9954e6c874eA3d62ce62B468bA073093F25": { + "task": "20220325-gauge-controller", + "name": "VotingEscrow" + }, + "0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD": { + "task": "20220325-gauge-controller", + "name": "GaugeController" + }, + "0x239e55F427D44C3cc793f49bFB507ebe76638a2b": { + "task": "20220325-gauge-controller", + "name": "BalancerMinter" + }, + "0x3b8cA519122CdD8efb272b0D3085453404B25bD0": { + "task": "20220325-mainnet-gauge-factory", + "name": "LiquidityGaugeV5" + }, + "0x4E7bBd911cf1EFa442BC1b2e9Ea01ffE785412EC": { + "task": "20220325-mainnet-gauge-factory", + "name": "LiquidityGaugeFactory" + }, + "0x94f68b54191F62f781Fe8298A8A5Fa3ed772d227": { + "task": "20220325-single-recipient-gauge-factory", + "name": "SingleRecipientGaugeFactory" + }, + "0x5D3d2D18148baAcE45D09254513BcF2C548C4480": { + "task": "20220325-single-recipient-gauge-factory", + "name": "SingleRecipientGauge" + }, + "0x2E96068b3D5B5BAE3D7515da4A1D2E52d08A2647": { + "task": "20220325-ve-delegation", + "name": "VotingEscrowDelegation" + }, + "0x6f5a2eE11E7a772AeB5114A20d0D7c0ff61EB8A0": { + "task": "20220325-ve-delegation", + "name": "VotingEscrowDelegationProxy" + }, + "0xeb151668006CD04DAdD098AFd0a82e78F77076c3": { + "task": "20220325-veBAL-deployment-coordinator", + "name": "veBALDeploymentCoordinator" + }, + "0xE061bF85648e9FA7b59394668CfEef980aEc4c66": { + "task": "20220404-erc4626-linear-pool-v2", + "name": "ERC4626LinearPoolFactory" + }, + "0xad901309d9e9DbC5Df19c84f729f429F0189a633": { + "task": "20220413-arbitrum-root-gauge-factory", + "name": "ArbitrumRootGaugeFactory" + }, + "0x715C777C6149C31A75D0d29633bbBE0A14370bDC": { + "task": "20220413-arbitrum-root-gauge-factory", + "name": "ArbitrumRootGauge" + }, + "0x4C4287b07d293E361281bCeEe8715c8CDeB64E34": { + "task": "20220413-polygon-root-gauge-factory", + "name": "PolygonRootGaugeFactory" + }, + "0xe53D8f8aAaFD95FCc7196E393EC5a907Df44495E": { + "task": "20220413-polygon-root-gauge-factory", + "name": "PolygonRootGauge" + }, + "0xd13AFc362F619b840C8f4AaC1D957cE219eF37Ca": { + "task": "20220415-veBAL-L2-gauge-setup-coordinator", + "name": "veBALL2GaugeSetupCoordinator" + }, + "0xee47ef369CDa5a65639D7794b70a4d247826DdF3": { + "task": "20220418-veBAL-gauge-fix-coordinator", + "name": "veBALGaugeFixCoordinator" + }, + "0x26743984e3357eFC59f2fd6C1aFDC310335a61c9": { + "task": "20220420-fee-distributor", + "name": "FeeDistributor" + }, + "0x7869296Efd0a76872fEE62A058C8fBca5c1c826C": { + "task": "20220420-smart-wallet-checker", + "name": "SmartWalletChecker" + }, + "0x26575A44755E0aaa969FDda1E4291Df22C5624Ea": { + "task": "20220421-smart-wallet-checker-coordinator", + "name": "SmartWalletCheckerCoordinator" + }, + "0x9588c26142e345f1A0d005CfC0C6DF29A8Fa010C": { + "task": "20220425-unbutton-aave-linear-pool", + "name": "UnbuttonAaveLinearPoolFactory" + }, + "0xcA96C4f198d343E251b1a01F3EBA061ef3DA73C1": { + "task": "20220513-double-entrypoint-fix-relayer", + "name": "DoubleEntrypointFixRelayer" + }, + "0x5ef4c5352882b10893b70DbcaA0C000965bd23c5": { + "task": "20220517-protocol-fee-withdrawer", + "name": "ProtocolFeesWithdrawer" + }, + "0xB496FF44746A8693A060FafD984Da41B253f6790": { + "task": "20220530-preseeded-voting-escrow-delegation", + "name": "PreseededVotingEscrowDelegation" + }, + "0x34ac9f7ebA9213C827fE5Abf5b09A16F4D0cC69b": { + "task": "20220606-tribe-bal-minter-coordinator", + "name": "TribeBALMinterCoordinator" + }, + "0x8df6EfEc5547e31B0eb7d1291B511FF8a2bf987c": { + "task": "20220609-stable-pool-v2", + "name": "StablePoolFactory" + }, + "0x56a1bAf2f7A163CE66067f0062DA60930dd0CB31": { + "task": "20220610-snx-recovery-coordinator", + "name": "SNXRecoveryCoordinator" + }, + "0x2fFB7B215Ae7F088eC2530C7aa8E1B24E398f26a": { + "task": "20220628-gauge-adder-v2", + "name": "GaugeAdder" + }, + "0x3083A1C455ff38d39e58Dbac5040f465cF73C5c8": { + "task": "20220628-optimism-root-gauge-factory", + "name": "OptimismRootGaugeFactory" + }, + "0xcA734aD0b286EA7dD6367a504a48FB75cd12a97F": { + "task": "20220628-optimism-root-gauge-factory", + "name": "OptimismRootGauge" + }, + "0xBd35248F8325DD1cB2bBf9D01E80A6bb99a792Dd": { + "task": "20220707-distribution-scheduler", + "name": "DistributionScheduler" + }, + "0xD3cf852898b21fc233251427c2DC93d3d604F3BB": { + "task": "20220714-fee-distributor-v2", + "name": "FeeDistributor" + }, + "0xD966d712F470067B60D37246404D6DFe5Bf0B419": { + "task": "20220720-batch-relayer-v3", + "name": "BatchRelayerLibrary" + }, + "0x886A3Ec7bcC508B8795990B60Fa21f85F9dB7948": { + "task": "20220720-batch-relayer-v3", + "name": "BalancerRelayer" + }, + "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5": { + "task": "20220721-balancer-queries", + "name": "BalancerQueries" + }, + "0x1B57f637Ce3408f1f834b0b70f9A595b062DAea7": { + "task": "20220721-gauge-adder-migration-coordinator", + "name": "GaugeAdderMigrationCoordinator" + }, + "0x97207B095e4D5C9a6e4cfbfcd2C3358E03B90c4A": { + "task": "20220725-protocol-fee-percentages-provider", + "name": "ProtocolFeePercentagesProvider" + }, + "0x6A0AC04f5C2A10297D5FA79FA6358837a8770041": { + "task": "20220817-aave-rebalanced-linear-pool", + "name": "AaveLinearPoolFactory" + }, + "0xe5F96070CA00cd54795416B1a4b4c2403231c548": { + "task": "20220822-mainnet-gauge-factory-v2", + "name": "LiquidityGaugeV5" + }, + "0xf1665E19bc105BE4EDD3739F88315cC699cc5b65": { + "task": "20220822-mainnet-gauge-factory-v2", + "name": "LiquidityGaugeFactory" + }, + "0x1c99324EDC771c82A0DCCB780CC7DDA0045E50e7": { + "task": "20220823-arbitrum-root-gauge-factory-v2", + "name": "ArbitrumRootGaugeFactory" + }, + "0x6337949cbC4825Bbd09242c811770F6F6fee9FfC": { + "task": "20220823-arbitrum-root-gauge-factory-v2", + "name": "ArbitrumRootGauge" + }, + "0x866D4B65694c66fbFD15Dd6fa933D0A6b3940A36": { + "task": "20220823-optimism-root-gauge-factory-v2", + "name": "OptimismRootGaugeFactory" + }, + "0xBC230b1a66A138cD9cFC7b352390025978dFAdde": { + "task": "20220823-optimism-root-gauge-factory-v2", + "name": "OptimismRootGauge" + }, + "0xa98Bce70c92aD2ef3288dbcd659bC0d6b62f8F13": { + "task": "20220823-polygon-root-gauge-factory-v2", + "name": "PolygonRootGaugeFactory" + }, + "0xfeb1A24C2752E53576133cdb718F25bC64eBDD52": { + "task": "20220823-polygon-root-gauge-factory-v2", + "name": "PolygonRootGauge" + }, + "0xf9ac7B9dF2b3454E841110CcE5550bD5AC6f875F": { + "task": "20220906-composable-stable-pool", + "name": "ComposableStablePoolFactory" + }, + "0xcC508a455F5b0073973107Db6a878DdBDab957bC": { + "task": "20220908-weighted-pool-v2", + "name": "WeightedPoolFactory" + }, + "0xd02992266BB6a6324A3aB8B62FeCBc9a3C58d1F9": { + "task": "20220916-batch-relayer-v4", + "name": "BatchRelayerLibrary" + }, + "0x2536dfeeCB7A0397CF98eDaDA8486254533b1aFA": { + "task": "20220916-batch-relayer-v4", + "name": "BalancerRelayer" + }, + "0xE42FFA682A26EF8F25891db4882932711D42e467": { + "task": "20221021-managed-pool", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288": { + "task": "20221021-managed-pool", + "name": "CircuitBreakerLib" + }, + "0x9Ac3E70dB606659Bf32D4BdFbb687AD193FD1F5B": { + "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" + }, + "0xe23D111cb71414830B93F078977B7f53A5e996eE": { + "task": "20221115-aave-rebalanced-linear-pool", + "name": "MockAaveLinearPool" + }, + "0x1b300C86980a5195bCF49bD419A068D98dC133Db": { + "task": "20221123-pool-recovery-helper", + "name": "PoolRecoveryHelper" + }, + "0xf5dECDB1f3d1ee384908Fbe16D2F0348AE43a9eA": { + "task": "20221124-authorizer-adaptor-entrypoint", + "name": "AuthorizerAdaptorEntrypoint" + } +} \ No newline at end of file diff --git a/pkg/deployments/addresses/optimism.json b/pkg/deployments/addresses/optimism.json new file mode 100644 index 0000000000..931281e2d1 --- /dev/null +++ b/pkg/deployments/addresses/optimism.json @@ -0,0 +1,162 @@ +{ + "0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6": { + "task": "20210418-authorizer", + "name": "Authorizer" + }, + "0xBA12222222228d8Ba445958a75a0704d566BF2C8": { + "task": "20210418-vault", + "name": "Vault" + }, + "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9": { + "task": "20210418-vault", + "name": "BalancerHelpers" + }, + "0xce88686553686DA562CE7Cea497CE749DA109f9F": { + "task": "20210418-vault", + "name": "ProtocolFeesCollector" + }, + "0xdAE7e32ADc5d490a43cCba1f0c736033F2b4eFca": { + "task": "20210418-weighted-pool", + "name": "WeightedPoolFactory" + }, + "0x0F3e0c4218b7b0108a3643cFe9D3ec0d4F57c54e": { + "task": "20210418-weighted-pool", + "name": "WeightedPool2TokensFactory" + }, + "0x41B953164995c11C81DA73D212ED8Af25741b7Ac": { + "task": "20210624-stable-pool", + "name": "StablePoolFactory" + }, + "0xD7FAD3bd59D6477cbe1BE7f646F7f1BA25b230f8": { + "task": "20210727-meta-stable-pool", + "name": "QueryProcessor" + }, + "0xb08E16cFc07C684dAA2f93C70323BAdb2A6CBFd2": { + "task": "20210727-meta-stable-pool", + "name": "MetaStablePoolFactory" + }, + "0xf302f9F50958c5593770FDf4d4812309fF77414f": { + "task": "20211202-no-protocol-fee-lbp", + "name": "NoProtocolFeeLiquidityBootstrappingPoolFactory" + }, + "0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75": { + "task": "20220325-authorizer-adaptor", + "name": "AuthorizerAdaptor" + }, + "0x4C4287b07d293E361281bCeEe8715c8CDeB64E34": { + "task": "20220404-erc4626-linear-pool-v2", + "name": "ERC4626LinearPoolFactory" + }, + "0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD": { + "task": "20220413-child-chain-gauge-factory", + "name": "RewardsOnlyGauge" + }, + "0x239e55F427D44C3cc793f49bFB507ebe76638a2b": { + "task": "20220413-child-chain-gauge-factory", + "name": "ChildChainStreamer" + }, + "0x2E96068b3D5B5BAE3D7515da4A1D2E52d08A2647": { + "task": "20220413-child-chain-gauge-factory", + "name": "ChildChainLiquidityGaugeFactory" + }, + "0x6d471c05f8A99Bd8f991467A8283e3DC968b8D7c": { + "task": "20220425-unbutton-aave-linear-pool", + "name": "UnbuttonAaveLinearPoolFactory" + }, + "0x3b8cA519122CdD8efb272b0D3085453404B25bD0": { + "task": "20220513-double-entrypoint-fix-relayer", + "name": "DoubleEntrypointFixRelayer" + }, + "0xC128a9954e6c874eA3d62ce62B468bA073093F25": { + "task": "20220517-protocol-fee-withdrawer", + "name": "ProtocolFeesWithdrawer" + }, + "0x6f5a2eE11E7a772AeB5114A20d0D7c0ff61EB8A0": { + "task": "20220527-child-chain-gauge-token-adder", + "name": "ChildChainGaugeTokenAdder" + }, + "0xeb151668006CD04DAdD098AFd0a82e78F77076c3": { + "task": "20220609-stable-pool-v2", + "name": "StablePoolFactory" + }, + "0x1cbbE6cEa5E4fE7D69c586b4e362A646DEEf105d": { + "task": "20220610-snx-recovery-coordinator", + "name": "SNXRecoveryCoordinator" + }, + "0x5c89d9E1A668d0B39F4EC242F280bdDd445C633c": { + "task": "20220720-batch-relayer-v3", + "name": "BatchRelayerLibrary" + }, + "0x195CcCBE464EF9073d1f7A1ba1C9Bf0f56dfFFff": { + "task": "20220720-batch-relayer-v3", + "name": "BalancerRelayer" + }, + "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5": { + "task": "20220721-balancer-queries", + "name": "BalancerQueries" + }, + "0xacAaC3e6D6Df918Bf3c809DFC7d42de0e4a72d4C": { + "task": "20220725-protocol-fee-percentages-provider", + "name": "ProtocolFeePercentagesProvider" + }, + "0x8aB784368A1883DA90D8513b48801e2Db1cb2D5D": { + "task": "20220812-child-chain-reward-helper", + "name": "ChildChainGaugeRewardHelper" + }, + "0x994086630773dC6cB54D3A5E0Ef0963532789E75": { + "task": "20220817-aave-rebalanced-linear-pool", + "name": "AaveLinearPoolFactory" + }, + "0xf145caFB67081895EE80eB7c04A30Cf87f07b745": { + "task": "20220906-composable-stable-pool", + "name": "ComposableStablePoolFactory" + }, + "0xad901309d9e9DbC5Df19c84f729f429F0189a633": { + "task": "20220908-weighted-pool-v2", + "name": "WeightedPoolFactory" + }, + "0x8E5698dC4897DC12243c8642e77B4f21349Db97C": { + "task": "20220916-batch-relayer-v4", + "name": "BatchRelayerLibrary" + }, + "0x1a58897Ab366082028ced3740900ecBD765Af738": { + "task": "20220916-batch-relayer-v4", + "name": "BalancerRelayer" + }, + "0xF24917fB88261a37Cc57F686eBC831a5c0B9fD39": { + "task": "20221021-managed-pool", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0xE42FFA682A26EF8F25891db4882932711D42e467": { + "task": "20221021-managed-pool", + "name": "CircuitBreakerLib" + }, + "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288": { + "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" + }, + "0x6dDBcF8886B7741D9AE60B9e9950F9F56543Ae54": { + "task": "20221115-aave-rebalanced-linear-pool", + "name": "MockAaveLinearPool" + }, + "0x26743984e3357eFC59f2fd6C1aFDC310335a61c9": { + "task": "20221123-pool-recovery-helper", + "name": "PoolRecoveryHelper" + }, + "0xed86ff0c507D3AF5F35d3523B77C17415FCfFaCb": { + "task": "20221124-authorizer-adaptor-entrypoint", + "name": "AuthorizerAdaptorEntrypoint" + } +} \ No newline at end of file diff --git a/pkg/deployments/addresses/polygon.json b/pkg/deployments/addresses/polygon.json new file mode 100644 index 0000000000..06dd71e1e2 --- /dev/null +++ b/pkg/deployments/addresses/polygon.json @@ -0,0 +1,198 @@ +{ + "0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6": { + "task": "20210418-authorizer", + "name": "Authorizer" + }, + "0xBA12222222228d8Ba445958a75a0704d566BF2C8": { + "task": "20210418-vault", + "name": "Vault" + }, + "0x239e55F427D44C3cc793f49bFB507ebe76638a2b": { + "task": "20210418-vault", + "name": "BalancerHelpers" + }, + "0xce88686553686DA562CE7Cea497CE749DA109f9F": { + "task": "20210418-vault", + "name": "ProtocolFeesCollector" + }, + "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9": { + "task": "20210418-weighted-pool", + "name": "WeightedPoolFactory" + }, + "0xA5bf2ddF098bb0Ef6d120C98217dD6B141c74EE0": { + "task": "20210418-weighted-pool", + "name": "WeightedPool2TokensFactory" + }, + "0xc66Ba2B6595D3613CCab350C886aCE23866EDe24": { + "task": "20210624-stable-pool", + "name": "StablePoolFactory" + }, + "0x751A0bC0e3f75b38e01Cf25bFCE7fF36DE1C87DE": { + "task": "20210721-liquidity-bootstrapping-pool", + "name": "LiquidityBootstrappingPoolFactory" + }, + "0x72D07D7DcA67b8A406aD1Ec34ce969c90bFEE768": { + "task": "20210727-meta-stable-pool", + "name": "QueryProcessor" + }, + "0xdAE7e32ADc5d490a43cCba1f0c736033F2b4eFca": { + "task": "20210727-meta-stable-pool", + "name": "MetaStablePoolFactory" + }, + "0x0f7bb7ce7b6ed9366F9b6B910AdeFE72dC538193": { + "task": "20210907-investment-pool", + "name": "InvestmentPoolFactory" + }, + "0x0F3e0c4218b7b0108a3643cFe9D3ec0d4F57c54e": { + "task": "20211012-merkle-orchard", + "name": "MerkleOrchard" + }, + "0x41B953164995c11C81DA73D212ED8Af25741b7Ac": { + "task": "20211202-no-protocol-fee-lbp", + "name": "NoProtocolFeeLiquidityBootstrappingPoolFactory" + }, + "0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75": { + "task": "20211203-batch-relayer", + "name": "BatchRelayerLibrary" + }, + "0x4574ccBcC09A00C9eE55fB92Fe353699A4fA800e": { + "task": "20211203-batch-relayer", + "name": "BalancerRelayer" + }, + "0xf302f9F50958c5593770FDf4d4812309fF77414f": { + "task": "20211208-aave-linear-pool", + "name": "AaveLinearPoolFactory" + }, + "0xC128a9954e6c874eA3d62ce62B468bA073093F25": { + "task": "20211208-stable-phantom-pool", + "name": "StablePhantomPoolFactory" + }, + "0xC6bD2497332d24094eC16a7261eec5C412B5a2C1": { + "task": "20220304-erc4626-linear-pool", + "name": "ERC4626LinearPoolFactory" + }, + "0xC4eD21Aa0Bec959ED7e4A83B2CD46dd00a0205dA": { + "task": "20220318-batch-relayer-v2", + "name": "BatchRelayerLibrary" + }, + "0xF537dDd7f4cc72C6C08866b62EAe9378f1F62da8": { + "task": "20220318-batch-relayer-v2", + "name": "BalancerRelayer" + }, + "0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD": { + "task": "20220325-authorizer-adaptor", + "name": "AuthorizerAdaptor" + }, + "0x6637dA12881f66dC7E42b8879B0a79faF43C9be2": { + "task": "20220404-erc4626-linear-pool-v2", + "name": "ERC4626LinearPoolFactory" + }, + "0x2E96068b3D5B5BAE3D7515da4A1D2E52d08A2647": { + "task": "20220413-child-chain-gauge-factory", + "name": "RewardsOnlyGauge" + }, + "0x6f5a2eE11E7a772AeB5114A20d0D7c0ff61EB8A0": { + "task": "20220413-child-chain-gauge-factory", + "name": "ChildChainStreamer" + }, + "0x3b8cA519122CdD8efb272b0D3085453404B25bD0": { + "task": "20220413-child-chain-gauge-factory", + "name": "ChildChainLiquidityGaugeFactory" + }, + "0x6bAF5Fa330F2d7C59f2bB57cF4b2C927B7f160d2": { + "task": "20220425-unbutton-aave-linear-pool", + "name": "UnbuttonAaveLinearPoolFactory" + }, + "0x79d0011892fe558FC5a4ec7D4Ca5db59069f460f": { + "task": "20220513-double-entrypoint-fix-relayer", + "name": "DoubleEntrypointFixRelayer" + }, + "0xEF44D6786b2b4d544b7850Fe67CE6381626Bf2D6": { + "task": "20220517-protocol-fee-withdrawer", + "name": "ProtocolFeesWithdrawer" + }, + "0x1554ee754707D5C93b7934AF404747Aba521Aaf2": { + "task": "20220527-child-chain-gauge-token-adder", + "name": "ChildChainGaugeTokenAdder" + }, + "0xcA96C4f198d343E251b1a01F3EBA061ef3DA73C1": { + "task": "20220609-stable-pool-v2", + "name": "StablePoolFactory" + }, + "0x5ef4c5352882b10893b70DbcaA0C000965bd23c5": { + "task": "20220720-batch-relayer-v3", + "name": "BatchRelayerLibrary" + }, + "0xcf6a66E32dCa0e26AcC3426b851FD8aCbF12Dac7": { + "task": "20220720-batch-relayer-v3", + "name": "BalancerRelayer" + }, + "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5": { + "task": "20220721-balancer-queries", + "name": "BalancerQueries" + }, + "0x42AC0e6FA47385D55Aff070d79eF0079868C48a6": { + "task": "20220725-protocol-fee-percentages-provider", + "name": "ProtocolFeePercentagesProvider" + }, + "0xaEb406b0E430BF5Ea2Dc0B9Fe62E4E53f74B3a33": { + "task": "20220812-child-chain-reward-helper", + "name": "ChildChainGaugeRewardHelper" + }, + "0x8df6EfEc5547e31B0eb7d1291B511FF8a2bf987c": { + "task": "20220817-aave-rebalanced-linear-pool", + "name": "AaveLinearPoolFactory" + }, + "0x136FD06Fa01eCF624C7F2B3CB15742c1339dC2c4": { + "task": "20220906-composable-stable-pool", + "name": "ComposableStablePoolFactory" + }, + "0x0e39C3D9b2ec765eFd9c5c70BB290B1fCD8536E3": { + "task": "20220908-weighted-pool-v2", + "name": "WeightedPoolFactory" + }, + "0x156C628135327F41748D8c8802fC043870714E9a": { + "task": "20220916-batch-relayer-v4", + "name": "BatchRelayerLibrary" + }, + "0x28A224d9d398a1eBB7BA69BCA515898966Bb1B6b": { + "task": "20220916-batch-relayer-v4", + "name": "BalancerRelayer" + }, + "0xE42FFA682A26EF8F25891db4882932711D42e467": { + "task": "20221021-managed-pool", + "name": "ManagedPoolAddRemoveTokenLib" + }, + "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288": { + "task": "20221021-managed-pool", + "name": "CircuitBreakerLib" + }, + "0x9Ac3E70dB606659Bf32D4BdFbb687AD193FD1F5B": { + "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" + }, + "0xfCCcB77A946b6a3BD59d149F083B5BfbB8004D6D": { + "task": "20221115-aave-rebalanced-linear-pool", + "name": "MockAaveLinearPool" + }, + "0x495F696430F4A51F7fcB98FbE68a9Cb7A07fB1bA": { + "task": "20221123-pool-recovery-helper", + "name": "PoolRecoveryHelper" + }, + "0xAB093cd16e765b5B23D34030aaFaF026558e0A19": { + "task": "20221124-authorizer-adaptor-entrypoint", + "name": "AuthorizerAdaptorEntrypoint" + } +} \ No newline at end of file diff --git a/pkg/deployments/hardhat.config.ts b/pkg/deployments/hardhat.config.ts index 7bb9e317a9..b31bb12e91 100644 --- a/pkg/deployments/hardhat.config.ts +++ b/pkg/deployments/hardhat.config.ts @@ -17,6 +17,7 @@ import Task, { TaskMode } from './src/task'; import Verifier from './src/verifier'; import { Logger } from './src/logger'; import { checkActionIds, checkActionIdUniqueness, saveActionIds } from './src/actionId'; +import { saveContractDeploymentAddresses } from './src/network'; task('deploy', 'Run deployment task') .addParam('id', 'Deployment task ID') @@ -204,6 +205,25 @@ task('check-action-ids', `Check that contract action-ids correspond the expected checkActionIdUniqueness(hre.network.name); }); +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) => { + 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); + } + } + }); + task(TASK_TEST).addOptionalParam('id', 'Specific task ID of the fork test to run.').setAction(test); export default { diff --git a/pkg/deployments/index.ts b/pkg/deployments/index.ts index 89746d27c8..5a60e33481 100644 --- a/pkg/deployments/index.ts +++ b/pkg/deployments/index.ts @@ -1,6 +1,17 @@ import { Contract } from 'ethers'; import { Artifact } from 'hardhat/types'; +/** + * @dev Returns the task id and contract name for a canonical contract deployed on a specific network + * @param address Address of the contract to be fetched + * @param network Name of the network looking the deployment for (e.g. mainnet, polygon, goerli, etc) + */ +export function lookupBalancerContractByAddress(address: string, network: string): { task: string; name: string } { + // eslint-disable-next-line @typescript-eslint/no-var-requires + const networkAddresses = require(getBalancerContractAddresses(network)); + return networkAddresses[address]; +} + /** * @dev Creates an ethers Contract object for a canonical contract deployed on a specific network * @param task ID of the task to fetch the deployed contract @@ -25,7 +36,7 @@ export async function getBalancerContractAt(task: string, contract: string, addr } /** - * @dev Returns the artifact for a contract from a specific task + * @dev Returns the contract's artifact from a specific task * @param task ID of the task to look the ABI of the required contract * @param contract Name of the contract to looking the ABI of */ @@ -92,3 +103,11 @@ function getBalancerContractArtifactPath(task: string, contract: string): string function getBalancerDeploymentPath(task: string, network: string): string { return `@balancer-labs/v2-deployments/dist/tasks/${task}/output/${network}.json`; } + +/** + * @dev Returns the path for the list of Balancer contract addresses on a network + * @param network Name of the network looking the deployment path for (e.g. mainnet, polygon, goerli, etc) + */ +function getBalancerContractAddresses(network: string): string { + return `@balancer-labs/v2-deployments/dist/addresses/${network}.json`; +} diff --git a/pkg/deployments/package.json b/pkg/deployments/package.json index ab331c2938..a68ac9f420 100644 --- a/pkg/deployments/package.json +++ b/pkg/deployments/package.json @@ -26,6 +26,7 @@ "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 gnosis && hardhat check-deployments --network bsc", "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 gnosis && hardhat check-action-ids --network bsc", "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", "lint": "eslint . --ext .ts --ignore-path ../../.eslintignore --max-warnings 0", "prepack": "yarn build", "test": "hardhat test ./**/test/*.ts", diff --git a/pkg/deployments/src/network.ts b/pkg/deployments/src/network.ts index 51b6a6a01a..06fc25fd55 100644 --- a/pkg/deployments/src/network.ts +++ b/pkg/deployments/src/network.ts @@ -1,9 +1,11 @@ import fs from 'fs'; import path from 'path'; +import Task from './task'; import { Network } from './types'; const DEPLOYMENT_TXS_DIRECTORY = path.resolve(__dirname, '../deployment-txs'); +const CONTRACT_ADDRESSES_DIRECTORY = path.resolve(__dirname, '../addresses'); export function saveContractDeploymentTransactionHash( deployedAddress: string, @@ -39,3 +41,28 @@ export function getContractDeploymentTransactionHash(deployedAddress: string, ne return txHash; } + +export function saveContractDeploymentAddresses(task: Task): void { + if (task.network === 'hardhat') return; + + const newEntries = Object.fromEntries( + Object.entries(task.output({ ensure: false })) + .filter(([name]) => name !== 'timestamp') + .map(([name, address]) => [address, { task: task.id, name }]) + ); + + const filePath = path.join(CONTRACT_ADDRESSES_DIRECTORY, `${task.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, + }; + + fs.writeFileSync(filePath, JSON.stringify(newFileContents, null, 2)); +} diff --git a/pkg/deployments/tsconfig.json b/pkg/deployments/tsconfig.json index eb77aed915..bd9bd069f8 100644 --- a/pkg/deployments/tsconfig.json +++ b/pkg/deployments/tsconfig.json @@ -6,7 +6,7 @@ "outDir": "dist", "resolveJsonModule": true }, - "include": ["index.ts", "src", "tasks/**/abi/*.json", "tasks/**/bytecode/*.json", "tasks/**/output/*.json"], + "include": ["index.ts", "src", "addresses/**/*.json", "tasks/**/abi/*.json", "tasks/**/bytecode/*.json", "tasks/**/output/*.json"], "exclude": ["tasks/**/test", "tasks/**/output/test.json"], "files": ["./hardhat.config.ts"] }