From c2819b9df9e55630133f727596cf2f77130144db Mon Sep 17 00:00:00 2001 From: Juan Ignacio Ubeira Date: Mon, 13 Jan 2025 13:25:21 -0300 Subject: [PATCH 1/2] Monad testnet deployment. --- deployment-txs/monad_testnet.json | 18 ++++++++++++++++++ hardhat.config.ts | 8 ++++++++ package.json | 8 ++++---- src/types.ts | 1 + .../00000000-tokens/output/monad_testnet.json | 5 +++++ v2/tasks/20210418-authorizer/input.ts | 3 +++ .../output/monad_testnet.json | 3 +++ v2/tasks/20220325-test-balancer-token/input.ts | 3 +++ .../output/monad_testnet.json | 3 +++ .../00000000-permit2/output/monad_testnet.json | 3 +++ v3/tasks/20241204-v3-vault/index.ts | 2 +- v3/tasks/20241204-v3-vault/input.ts | 2 +- .../output/monad_testnet.json | 7 +++++++ .../output/monad_testnet.json | 3 +++ .../output/monad_testnet.json | 3 +++ .../output/monad_testnet.json | 3 +++ v3/tasks/20241205-v3-router/input.ts | 3 --- .../output/monad_testnet.json | 3 +++ .../output/monad_testnet.json | 4 ++++ .../output/monad_testnet.json | 3 +++ .../output/monad_testnet.json | 4 ++++ 21 files changed, 83 insertions(+), 9 deletions(-) create mode 100644 deployment-txs/monad_testnet.json create mode 100644 v2/tasks/00000000-tokens/output/monad_testnet.json create mode 100644 v2/tasks/20210418-authorizer/output/monad_testnet.json create mode 100644 v2/tasks/20220325-test-balancer-token/output/monad_testnet.json create mode 100644 v3/tasks/00000000-permit2/output/monad_testnet.json create mode 100644 v3/tasks/20241204-v3-vault/output/monad_testnet.json create mode 100644 v3/tasks/20241205-v3-batch-router/output/monad_testnet.json create mode 100644 v3/tasks/20241205-v3-buffer-router/output/monad_testnet.json create mode 100644 v3/tasks/20241205-v3-composite-liquidity-router/output/monad_testnet.json create mode 100644 v3/tasks/20241205-v3-router/output/monad_testnet.json create mode 100644 v3/tasks/20241205-v3-stable-pool/output/monad_testnet.json create mode 100644 v3/tasks/20241205-v3-vault-explorer/output/monad_testnet.json create mode 100644 v3/tasks/20241205-v3-weighted-pool/output/monad_testnet.json diff --git a/deployment-txs/monad_testnet.json b/deployment-txs/monad_testnet.json new file mode 100644 index 000000000..d47acc10a --- /dev/null +++ b/deployment-txs/monad_testnet.json @@ -0,0 +1,18 @@ +{ + "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5": "0x69e5ca8ffce2bc76b710a6beacdeef3ce50e3cb298368bf1db10f30b81f943b9", + "0xF24917fB88261a37Cc57F686eBC831a5c0B9fD39": "0x5784720e40d101d78e9329afd6eb4748c1e30760f481edc52972769e6980b7e1", + "0x1452b94e9E1D535a05d4C087a6428B512Af36D0F": "0xa6bb832214fc3e148d37b8371f91b5ee5912a57b5d5268b8af495f980ed8a564", + "0x9F1f11a414AF861bef8108B3cE2Cbc43DEBB3165": "0xa6bb832214fc3e148d37b8371f91b5ee5912a57b5d5268b8af495f980ed8a564", + "0xcdB7d6554F54e6cb9a05ac87E69f0cd0B51a729c": "0xa6bb832214fc3e148d37b8371f91b5ee5912a57b5d5268b8af495f980ed8a564", + "0xd07101ebD191C366D5A177cA67826014B0E42Ae3": "0xa6bb832214fc3e148d37b8371f91b5ee5912a57b5d5268b8af495f980ed8a564", + "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288": "0xf4121350f46d65af554b6acab8825d7bdcd69bdd0c7da385b25340f63fc5f039", + "0x9Ac3E70dB606659Bf32D4BdFbb687AD193FD1F5B": "0x154a3a9fb21d4e022029a63a2f6c0e65a3d10e1a8be3922ff8926ddc025c860f", + "0x36caC20dd805d128c1a6Dd16eeA845C574b5A17C": "0xc05c2f02c3edd4499df604fb7bb11c3d98d4d3dc8658c5e80d9ea3b577716676", + "0x85a80afee867aDf27B50BdB7b76DA70f1E853062": "0x4cf0fe978bb26c67e006db27b7424cf79c588d01ae12905ab42c15b28017b318", + "0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8": "0x914b62536713c009f06c9c236fcfcacbaff45b3ba1deb2cf649ebd281d1f6a5a", + "0xf23b4DB826DbA14c0e857029dfF076b1c0264843": "0x01fc8c64d80e3bff28024e28448efb50f9e2619548afbc8774a57f1079a82f1e", + "0x482B7a3e1bfF909eEACA6bCBf08d1060B5A4433f": "0x7b58e11b080655de144e4e541268e982656732e0fdf2b09a1660abd51082c26a", + "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88": "0x0fb44194a74caf72ebd8d2b3dd454365e3dd5b3ac30088ab8ac5391a8304b66b", + "0x67c2A650f6Eda2b448061c8cE6923571493C2aD2": "0x9a7cfa961dfb207f0852b56a9411b5972ed1f2327156e0e1a4efdfcc29ac8b4d", + "0x9805dcfD25e6De36bad8fe9D3Fe2c9b44B764102": "0x223b844f28a1a5bf512c63275ccd19142e3a02dfee31978c9bf3e96a88a273bd" +} \ No newline at end of file diff --git a/hardhat.config.ts b/hardhat.config.ts index c59aa849e..1468673c2 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -477,6 +477,14 @@ export default { browserURL: 'https://modescan.io', }, }, + { + network: 'monad_testnet', + chainId: 10143, + urls: { + apiURL: 'https://explorer.monad-testnet.category.xyz/api', + browserURL: 'https://explorer.monad-testnet.category.xyz/', + }, + }, ], }, }; diff --git a/package.json b/package.json index 6d7bec542..e360414a9 100644 --- a/package.json +++ b/package.json @@ -25,12 +25,12 @@ "check": "yarn check-artifacts && yarn check-deployments", "check-artifacts": "hardhat check-artifacts", "check-network-deployments": "hardhat check-deployments --network", - "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 gnosis && hardhat check-deployments --network bsc && hardhat check-deployments --network avalanche && hardhat check-deployments --network zkevm && hardhat check-deployments --network base && hardhat check-deployments --network fraxtal && hardhat check-deployments --network mode && hardhat check-deployments --network sepolia", + "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 gnosis && hardhat check-deployments --network bsc && hardhat check-deployments --network avalanche && hardhat check-deployments --network zkevm && hardhat check-deployments --network base && hardhat check-deployments --network fraxtal && hardhat check-deployments --network mode && hardhat check-deployments --network sepolia && hardhat check-deployments --network monad_testnet", "check-network-action-ids": "hardhat check-action-ids --network", - "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 && hardhat check-action-ids --network avalanche && hardhat check-action-ids --network zkevm && hardhat check-action-ids --network base && hardhat check-action-ids --network fraxtal && hardhat check-action-ids --network mode && hardhat check-action-ids --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 gnosis && hardhat check-action-ids --network bsc && hardhat check-action-ids --network avalanche && hardhat check-action-ids --network zkevm && hardhat check-action-ids --network base && hardhat check-action-ids --network fraxtal && hardhat check-action-ids --network mode && hardhat check-action-ids --network sepolia && hardhat check-action-ids --network monad_testnet", "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 gnosis && hardhat build-address-lookup --network bsc && hardhat build-address-lookup --network avalanche && hardhat build-address-lookup --network zkevm && hardhat build-address-lookup --network base && hardhat build-address-lookup --network fraxtal && hardhat build-address-lookup --network mode && 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 zkevm && hardhat check-address-lookup --network base && hardhat check-address-lookup --network fraxtal && hardhat check-address-lookup --network mode && hardhat check-address-lookup --network sepolia", + "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 zkevm && hardhat build-address-lookup --network base && hardhat build-address-lookup --network fraxtal && hardhat build-address-lookup --network mode && hardhat build-address-lookup --network sepolia && hardhat build-address-lookup --network monad_testnet", + "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 zkevm && hardhat check-address-lookup --network base && hardhat check-address-lookup --network fraxtal && hardhat check-address-lookup --network mode && hardhat check-address-lookup --network sepolia && hardhat check-address-lookup --network monad_testnet", "build-timelock-authorizer-config": "hardhat build-timelock-authorizer-config --network mainnet && hardhat build-timelock-authorizer-config --network polygon && hardhat build-timelock-authorizer-config --network arbitrum && hardhat build-timelock-authorizer-config --network optimism && hardhat build-timelock-authorizer-config --network gnosis && hardhat build-timelock-authorizer-config --network bsc && hardhat build-timelock-authorizer-config --network avalanche && hardhat build-timelock-authorizer-config --network zkevm && hardhat build-timelock-authorizer-config --network base && hardhat build-timelock-authorizer-config --network fraxtal && hardhat build-timelock-authorizer-config --network mode && hardhat build-timelock-authorizer-config --network sepolia", "check-timelock-authorizer-config": "hardhat check-timelock-authorizer-config --network mainnet && hardhat check-timelock-authorizer-config --network polygon && hardhat check-timelock-authorizer-config --network arbitrum && hardhat check-timelock-authorizer-config --network optimism && hardhat check-timelock-authorizer-config --network gnosis && hardhat check-timelock-authorizer-config --network bsc && hardhat check-timelock-authorizer-config --network avalanche && hardhat check-timelock-authorizer-config --network zkevm && hardhat check-timelock-authorizer-config --network base && hardhat check-timelock-authorizer-config --network fraxtal && hardhat check-timelock-authorizer-config --network mode && hardhat check-timelock-authorizer-config --network sepolia", "verify-network-timelock-authorizer-config": "hardhat verify-timelock-authorizer-config --network", diff --git a/src/types.ts b/src/types.ts index 64fc4946a..96c1a0c13 100644 --- a/src/types.ts +++ b/src/types.ts @@ -18,6 +18,7 @@ export const NETWORKS = [ 'base', 'fraxtal', 'mode', + 'monad_testnet', ]; export type Network = (typeof NETWORKS)[number]; diff --git a/v2/tasks/00000000-tokens/output/monad_testnet.json b/v2/tasks/00000000-tokens/output/monad_testnet.json new file mode 100644 index 000000000..ee1f85605 --- /dev/null +++ b/v2/tasks/00000000-tokens/output/monad_testnet.json @@ -0,0 +1,5 @@ +{ + "WETH": "0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701", + "BAL": "0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8" +} + \ No newline at end of file diff --git a/v2/tasks/20210418-authorizer/input.ts b/v2/tasks/20210418-authorizer/input.ts index 1f008f65e..0940d9a26 100644 --- a/v2/tasks/20210418-authorizer/input.ts +++ b/v2/tasks/20210418-authorizer/input.ts @@ -39,4 +39,7 @@ export default { mode: { admin: '0x4f22C2784Cbd2B24a172566491Ee73fee1A63c2e', }, + monad_testnet: { + admin: '0x9098b50ee2d9E4c3C69928A691DA3b192b4C9673', + }, }; diff --git a/v2/tasks/20210418-authorizer/output/monad_testnet.json b/v2/tasks/20210418-authorizer/output/monad_testnet.json new file mode 100644 index 000000000..718a10d91 --- /dev/null +++ b/v2/tasks/20210418-authorizer/output/monad_testnet.json @@ -0,0 +1,3 @@ +{ + "Authorizer": "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5" +} \ No newline at end of file diff --git a/v2/tasks/20220325-test-balancer-token/input.ts b/v2/tasks/20220325-test-balancer-token/input.ts index 9470aec69..8f6c76260 100644 --- a/v2/tasks/20220325-test-balancer-token/input.ts +++ b/v2/tasks/20220325-test-balancer-token/input.ts @@ -9,4 +9,7 @@ export default { base: { Admin: '0xC40DCFB13651e64C8551007aa57F9260827B6462', }, + monad_testnet: { + Admin: '0x9098b50ee2d9E4c3C69928A691DA3b192b4C9673', + }, }; diff --git a/v2/tasks/20220325-test-balancer-token/output/monad_testnet.json b/v2/tasks/20220325-test-balancer-token/output/monad_testnet.json new file mode 100644 index 000000000..cc92c68bb --- /dev/null +++ b/v2/tasks/20220325-test-balancer-token/output/monad_testnet.json @@ -0,0 +1,3 @@ +{ + "TestBalancerToken": "0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8" +} \ No newline at end of file diff --git a/v3/tasks/00000000-permit2/output/monad_testnet.json b/v3/tasks/00000000-permit2/output/monad_testnet.json new file mode 100644 index 000000000..3e300f6ce --- /dev/null +++ b/v3/tasks/00000000-permit2/output/monad_testnet.json @@ -0,0 +1,3 @@ +{ + "Permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3" +} diff --git a/v3/tasks/20241204-v3-vault/index.ts b/v3/tasks/20241204-v3-vault/index.ts index 904367078..33554d2f4 100644 --- a/v3/tasks/20241204-v3-vault/index.ts +++ b/v3/tasks/20241204-v3-vault/index.ts @@ -21,7 +21,7 @@ export default async (task: Task, { force, from }: TaskRunOptions = {}): Promise const vaultAddress = await vaultFactory.getDeploymentAddress(input.salt); if (vaultAddress !== input.targetVaultAddress) { - throw Error('Incorrect target address'); + throw Error(`Incorrect target address: ${vaultAddress}`); } const deployTransaction = await task.deployFactoryContracts( diff --git a/v3/tasks/20241204-v3-vault/input.ts b/v3/tasks/20241204-v3-vault/input.ts index 8a922833c..c21847ac3 100644 --- a/v3/tasks/20241204-v3-vault/input.ts +++ b/v3/tasks/20241204-v3-vault/input.ts @@ -27,7 +27,7 @@ const vaultAdminArtifact = Vault.artifact('VaultAdmin'); const vaultAdminCreationCode = vaultAdminArtifact.bytecode; const salt = '0x3877188e9e5da25b11fdb7f5e8d4fdddce2d22707ba04878a8e14700dd46fa82'; -const targetVaultAddress = '0xbA1333333333a1BA1108E8412f11850A5C319bA9'; +const targetVaultAddress = '0xd07101ebD191C366D5A177cA67826014B0E42Ae3'; // For monad testnet export default { Authorizer, diff --git a/v3/tasks/20241204-v3-vault/output/monad_testnet.json b/v3/tasks/20241204-v3-vault/output/monad_testnet.json new file mode 100644 index 000000000..71cf9fd4b --- /dev/null +++ b/v3/tasks/20241204-v3-vault/output/monad_testnet.json @@ -0,0 +1,7 @@ +{ + "VaultFactory": "0xF24917fB88261a37Cc57F686eBC831a5c0B9fD39", + "ProtocolFeeController": "0x1452b94e9E1D535a05d4C087a6428B512Af36D0F", + "VaultAdmin": "0x9F1f11a414AF861bef8108B3cE2Cbc43DEBB3165", + "VaultExtension": "0xcdB7d6554F54e6cb9a05ac87E69f0cd0B51a729c", + "Vault": "0xd07101ebD191C366D5A177cA67826014B0E42Ae3" +} \ No newline at end of file diff --git a/v3/tasks/20241205-v3-batch-router/output/monad_testnet.json b/v3/tasks/20241205-v3-batch-router/output/monad_testnet.json new file mode 100644 index 000000000..6d40a6ac7 --- /dev/null +++ b/v3/tasks/20241205-v3-batch-router/output/monad_testnet.json @@ -0,0 +1,3 @@ +{ + "BatchRouter": "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288" +} \ No newline at end of file diff --git a/v3/tasks/20241205-v3-buffer-router/output/monad_testnet.json b/v3/tasks/20241205-v3-buffer-router/output/monad_testnet.json new file mode 100644 index 000000000..0e39cb7d5 --- /dev/null +++ b/v3/tasks/20241205-v3-buffer-router/output/monad_testnet.json @@ -0,0 +1,3 @@ +{ + "BufferRouter": "0x9Ac3E70dB606659Bf32D4BdFbb687AD193FD1F5B" +} \ No newline at end of file diff --git a/v3/tasks/20241205-v3-composite-liquidity-router/output/monad_testnet.json b/v3/tasks/20241205-v3-composite-liquidity-router/output/monad_testnet.json new file mode 100644 index 000000000..b99f29ee1 --- /dev/null +++ b/v3/tasks/20241205-v3-composite-liquidity-router/output/monad_testnet.json @@ -0,0 +1,3 @@ +{ + "CompositeLiquidityRouter": "0x36caC20dd805d128c1a6Dd16eeA845C574b5A17C" +} \ No newline at end of file diff --git a/v3/tasks/20241205-v3-router/input.ts b/v3/tasks/20241205-v3-router/input.ts index 575f0f49c..56a77db6b 100644 --- a/v3/tasks/20241205-v3-router/input.ts +++ b/v3/tasks/20241205-v3-router/input.ts @@ -3,21 +3,18 @@ import { Task, TaskMode } from '@src'; export type RouterDeployment = { Vault: string; WETH: string; - BAL: string; Permit2: string; RouterVersion: string; }; const Vault = new Task('20241204-v3-vault', TaskMode.READ_ONLY); const WETH = new Task('00000000-tokens', TaskMode.READ_ONLY); -const BAL = new Task('00000000-tokens', TaskMode.READ_ONLY); const Permit2 = new Task('00000000-permit2', TaskMode.READ_ONLY); const BaseVersion = { version: 1, deployment: '20241205-v3-router' }; export default { Vault, WETH, - BAL, Permit2, RouterVersion: JSON.stringify({ name: 'Router', ...BaseVersion }), }; diff --git a/v3/tasks/20241205-v3-router/output/monad_testnet.json b/v3/tasks/20241205-v3-router/output/monad_testnet.json new file mode 100644 index 000000000..f79f36ee5 --- /dev/null +++ b/v3/tasks/20241205-v3-router/output/monad_testnet.json @@ -0,0 +1,3 @@ +{ + "Router": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062" +} \ No newline at end of file diff --git a/v3/tasks/20241205-v3-stable-pool/output/monad_testnet.json b/v3/tasks/20241205-v3-stable-pool/output/monad_testnet.json new file mode 100644 index 000000000..5d4c446b7 --- /dev/null +++ b/v3/tasks/20241205-v3-stable-pool/output/monad_testnet.json @@ -0,0 +1,4 @@ +{ + "StablePoolFactory": "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88", + "MockStablePool": "0x67c2A650f6Eda2b448061c8cE6923571493C2aD2" +} \ No newline at end of file diff --git a/v3/tasks/20241205-v3-vault-explorer/output/monad_testnet.json b/v3/tasks/20241205-v3-vault-explorer/output/monad_testnet.json new file mode 100644 index 000000000..35aec5504 --- /dev/null +++ b/v3/tasks/20241205-v3-vault-explorer/output/monad_testnet.json @@ -0,0 +1,3 @@ +{ + "VaultExplorer": "0x9805dcfD25e6De36bad8fe9D3Fe2c9b44B764102" +} \ No newline at end of file diff --git a/v3/tasks/20241205-v3-weighted-pool/output/monad_testnet.json b/v3/tasks/20241205-v3-weighted-pool/output/monad_testnet.json new file mode 100644 index 000000000..1fc201969 --- /dev/null +++ b/v3/tasks/20241205-v3-weighted-pool/output/monad_testnet.json @@ -0,0 +1,4 @@ +{ + "WeightedPoolFactory": "0xf23b4DB826DbA14c0e857029dfF076b1c0264843", + "MockWeightedPool": "0x482B7a3e1bfF909eEACA6bCBf08d1060B5A4433f" +} \ No newline at end of file From 1abc101e4f12105d48c17526a41c3f0b0b4edf42 Mon Sep 17 00:00:00 2001 From: Juan Ignacio Ubeira Date: Mon, 13 Jan 2025 13:27:55 -0300 Subject: [PATCH 2/2] Monad testnet addresses. --- addresses/monad_testnet.json | 126 +++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 addresses/monad_testnet.json diff --git a/addresses/monad_testnet.json b/addresses/monad_testnet.json new file mode 100644 index 000000000..fcb51c7c9 --- /dev/null +++ b/addresses/monad_testnet.json @@ -0,0 +1,126 @@ +{ + "20210418-authorizer": { + "contracts": [ + { + "name": "Authorizer", + "address": "0xE39B5e3B6D74016b2F6A9673D7d7493B6DF549d5" + } + ], + "status": "ACTIVE", + "version": "v2" + }, + "20220325-test-balancer-token": { + "contracts": [ + { + "name": "TestBalancerToken", + "address": "0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8" + } + ], + "status": "ACTIVE", + "version": "v2" + }, + "20241204-v3-vault": { + "contracts": [ + { + "name": "VaultFactory", + "address": "0xF24917fB88261a37Cc57F686eBC831a5c0B9fD39" + }, + { + "name": "ProtocolFeeController", + "address": "0x1452b94e9E1D535a05d4C087a6428B512Af36D0F" + }, + { + "name": "VaultAdmin", + "address": "0x9F1f11a414AF861bef8108B3cE2Cbc43DEBB3165" + }, + { + "name": "VaultExtension", + "address": "0xcdB7d6554F54e6cb9a05ac87E69f0cd0B51a729c" + }, + { + "name": "Vault", + "address": "0xd07101ebD191C366D5A177cA67826014B0E42Ae3" + } + ], + "status": "ACTIVE", + "version": "v3" + }, + "20241205-v3-batch-router": { + "contracts": [ + { + "name": "BatchRouter", + "address": "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288" + } + ], + "status": "ACTIVE", + "version": "v3" + }, + "20241205-v3-buffer-router": { + "contracts": [ + { + "name": "BufferRouter", + "address": "0x9Ac3E70dB606659Bf32D4BdFbb687AD193FD1F5B" + } + ], + "status": "ACTIVE", + "version": "v3" + }, + "20241205-v3-composite-liquidity-router": { + "contracts": [ + { + "name": "CompositeLiquidityRouter", + "address": "0x36caC20dd805d128c1a6Dd16eeA845C574b5A17C" + } + ], + "status": "ACTIVE", + "version": "v3" + }, + "20241205-v3-router": { + "contracts": [ + { + "name": "Router", + "address": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062" + } + ], + "status": "ACTIVE", + "version": "v3" + }, + "20241205-v3-stable-pool": { + "contracts": [ + { + "name": "StablePoolFactory", + "address": "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88" + }, + { + "name": "MockStablePool", + "address": "0x67c2A650f6Eda2b448061c8cE6923571493C2aD2" + } + ], + "status": "ACTIVE", + "version": "v3" + }, + "20241205-v3-vault-explorer": { + "contracts": [ + { + "name": "VaultExplorer", + "address": "0x9805dcfD25e6De36bad8fe9D3Fe2c9b44B764102" + } + ], + "status": "ACTIVE", + "version": "v3" + }, + "20241205-v3-weighted-pool": { + "contracts": [ + { + "name": "WeightedPoolFactory", + "address": "0xf23b4DB826DbA14c0e857029dfF076b1c0264843" + }, + { + "name": "MockWeightedPool", + "address": "0x482B7a3e1bfF909eEACA6bCBf08d1060B5A4433f" + } + ], + "status": "ACTIVE", + "version": "v3" + } +} \ No newline at end of file