diff --git a/CHANGELOG.md b/CHANGELOG.md index 01742c01..fa4b8a79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ - Deployed V3 Protocol Fee Controller Migration to Mainnet, Gnosis, Arbitrum, Base and Sepolia. - Deployed V3 Balancer Contract Registry Initializer to Mainnet, Gnosis, Arbitrum, Base and Sepolia. - Deployed V3 GyroECLPFactory to Mainnet, Gnosis, Arbitrum, Base and Sepolia. +- Deployed V3 StablePoolFactory V2 to Mainnet, Gnosis, Arbitrum, Base and Sepolia. #### V2 diff --git a/action-ids/arbitrum/action-ids.json b/action-ids/arbitrum/action-ids.json index 6f49f245..031a6b0b 100644 --- a/action-ids/arbitrum/action-ids.json +++ b/action-ids/arbitrum/action-ids.json @@ -1066,5 +1066,25 @@ "disable()": "0x95095549d7b771b285d8bc313117157a9c18db08596228d492e3fbc7c5dc751b" } } + }, + "20250324-v3-stable-pool-v2": { + "StablePoolFactory": { + "useAdaptor": false, + "actionIds": { + "create(string,string,(address,uint8,address,bool)[],uint256,(address,address,address),uint256,address,bool,bool,bytes32)": "0x08534c968e72676777d853339d072b15f60871ecdc3da079ad90641fad669dfe", + "disable()": "0x54d04f96e1384dacfbc4bb06d4876678ad3ba07c255782bd693bc9df4b367e24" + } + }, + "StablePool": { + "useAdaptor": false, + "factoryOutput": "0xcb2840553945dBc776d98DABC141f9b2CceC3c30", + "actionIds": { + "emitApproval(address,address,uint256)": "0xf7ee6b1a49d7171018942ece36ab642194d01e66f9ce7a7f24e774f31232a1db", + "emitTransfer(address,address,uint256)": "0xb24aa5113342f8d106cd54f15f8f29431c0d3bdc7fcea9d7cfc173593f1e148e", + "incrementNonce()": "0x7b1fd2816c92ee01e563554b5fc647b9b4f6ee8a158f10d3c43caa35207276d0", + "startAmplificationParameterUpdate(uint256,uint256)": "0x87a1189b28fdc95169083fce17ba16e458982e97d3f968f5f016cb760ad6e446", + "stopAmplificationParameterUpdate()": "0x682ce9b36d460cdaea0f8e912dccfe5e5efc5cfaebbc80ec3b46a1a3fbebd902" + } + } } } \ No newline at end of file diff --git a/action-ids/base/action-ids.json b/action-ids/base/action-ids.json index 44059b07..60c3154e 100644 --- a/action-ids/base/action-ids.json +++ b/action-ids/base/action-ids.json @@ -631,5 +631,25 @@ "disable()": "0x9a2847fdb9a96a453c9e5f3eda469d4f53b4e5616cbf9c20f6c820d30a30e40c" } } + }, + "20250324-v3-stable-pool-v2": { + "StablePoolFactory": { + "useAdaptor": false, + "actionIds": { + "create(string,string,(address,uint8,address,bool)[],uint256,(address,address,address),uint256,address,bool,bool,bytes32)": "0xf5a7d1de79ad19ace11a3221189f23d259bbcec0e1237311b200b4c46df6d82f", + "disable()": "0x28e9e31c7abbe803f2c44dde4b6b484e671a6ee8ced3402269274f6064ab48b4" + } + }, + "StablePool": { + "useAdaptor": false, + "factoryOutput": "0xFC6f8a2f517E490eB46a1B09E8DFB47bF7175B53", + "actionIds": { + "emitApproval(address,address,uint256)": "0xe62290726031d47c3f4a6b8936a292d3e400ccbe3a4c86b716f73fe88771300b", + "emitTransfer(address,address,uint256)": "0x48a4c6720b3d8fdf70c6cd05c7d94417e0d2ce64e286dbe2dc835f1a9e0d8f49", + "incrementNonce()": "0xf3afa2a70cd21b98fafa5b0eee5a973da428a9842990d3f919092a7761185632", + "startAmplificationParameterUpdate(uint256,uint256)": "0x162acf3605955589919c676306e06273a14d48f4f1eb6942ea20b3a0f144f9db", + "stopAmplificationParameterUpdate()": "0xb16f8e0d65aa3b348bdc4caabcb62f3b96af0c4fa52827b2c98b627e626fd705" + } + } } } \ No newline at end of file diff --git a/action-ids/gnosis/action-ids.json b/action-ids/gnosis/action-ids.json index 808d8b61..a69f6b0b 100644 --- a/action-ids/gnosis/action-ids.json +++ b/action-ids/gnosis/action-ids.json @@ -780,5 +780,25 @@ "disable()": "0x43951d61361ec89c52166ef54cf1f4d74ead1426b610bb3fd62aeea215ce8faa" } } + }, + "20250324-v3-stable-pool-v2": { + "StablePoolFactory": { + "useAdaptor": false, + "actionIds": { + "create(string,string,(address,uint8,address,bool)[],uint256,(address,address,address),uint256,address,bool,bool,bytes32)": "0xa2f424f91a95200473043d3295d7da649c551f08ea7e04fd2257cc00b58c64e2", + "disable()": "0x3a974164b03a634d51c05b0322775609d8e50216de1c030b3840bbc63a2228a4" + } + }, + "StablePool": { + "useAdaptor": false, + "factoryOutput": "0x52bca81419B7770911f8C1Ae1903Fad97D522FF1", + "actionIds": { + "emitApproval(address,address,uint256)": "0xe180f3c89846926144464222d1370021da4604f10be791f524c83db3b1f5919a", + "emitTransfer(address,address,uint256)": "0xa5913ac995f4ec4d7227445fd6b021b01866676e4b46f781729e77ccbe976285", + "incrementNonce()": "0x18420dabc8a4fea24c99d545011a8b75ab75afe6f91a6f463ebac4dec8291617", + "startAmplificationParameterUpdate(uint256,uint256)": "0x097b12f86d47be3221b835a41252d4d8a233da415f4c73c864c9785a4ffd834c", + "stopAmplificationParameterUpdate()": "0x75ec2623175569519fdd26484797f97ea78036aa5caf0efa9d2c2a34a82eb41d" + } + } } } \ No newline at end of file diff --git a/action-ids/mainnet/action-ids.json b/action-ids/mainnet/action-ids.json index 089ea617..937e8a33 100644 --- a/action-ids/mainnet/action-ids.json +++ b/action-ids/mainnet/action-ids.json @@ -1773,5 +1773,25 @@ "disable()": "0x2d6f2043f87de4e7d3300eb8d3235d0a0015939b896057526473bb03cb53af84" } } + }, + "20250324-v3-stable-pool-v2": { + "StablePoolFactory": { + "useAdaptor": false, + "actionIds": { + "create(string,string,(address,uint8,address,bool)[],uint256,(address,address,address),uint256,address,bool,bool,bytes32)": "0xcb51ffc47f3646bd6ce7d1610eb0307c5f29dcc5bc834c8d9b0c659d13d3ee7f", + "disable()": "0x1ce35d5e0b5650d4ca16e1230c4b2f610f661a8ffa895e2262392ccbbd26179c" + } + }, + "StablePool": { + "useAdaptor": false, + "factoryOutput": "0x95BC5CA62Ed018b5206342479ded82e18e46dcbf", + "actionIds": { + "emitApproval(address,address,uint256)": "0x799a96fc36a98d6ccf8f6f96aba70d5c94d2c42aff521c68a8d7402510715b7e", + "emitTransfer(address,address,uint256)": "0xe4e729e1ae0562e3820860fd6a3825d354215b5fa6a70e0bf1c5d9a863242927", + "incrementNonce()": "0xe4003a9683ca3fdebfd2b568cb167f7dbb1f594849408633f6164f69f3b399af", + "startAmplificationParameterUpdate(uint256,uint256)": "0xf019efb33fadcd92c847fd863b9a8273ce47b81a4e59a3bd17ced56370207dbb", + "stopAmplificationParameterUpdate()": "0x0a095a996507c13952d3a5b1b925c33f16dfa0b0fd1f3911267a7d4db8d7746e" + } + } } } \ No newline at end of file diff --git a/action-ids/sepolia/action-ids.json b/action-ids/sepolia/action-ids.json index a4691d6c..4c2d208b 100644 --- a/action-ids/sepolia/action-ids.json +++ b/action-ids/sepolia/action-ids.json @@ -886,5 +886,25 @@ "disable()": "0x6e249c4893ceac00437225ee187ea2b943b82aa8b7c566877cca2f96b7fae837" } } + }, + "20250324-v3-stable-pool-v2": { + "StablePoolFactory": { + "useAdaptor": false, + "actionIds": { + "create(string,string,(address,uint8,address,bool)[],uint256,(address,address,address),uint256,address,bool,bool,bytes32)": "0x37c4801ad0aad30585d9c90298b4c67be518506ca273332aa86317dc69fd0af9", + "disable()": "0x1b82f620ecfa644bfecb095999d2fc2859db6bfbe3f1fc6774bccd0bfa8b76ce" + } + }, + "StablePool": { + "useAdaptor": false, + "factoryOutput": "0x1C72b94E0e291dEe39a239E6e9C47625b14dEA71", + "actionIds": { + "emitApproval(address,address,uint256)": "0xe49237cd193e79850055f20ff181b14f1cb5f85627a134b561c5c55084d40049", + "emitTransfer(address,address,uint256)": "0xd043cdde1b7e97ac20541ce853e41e33ec1df3be2f98affd58a9414fae8323d9", + "incrementNonce()": "0x6dd5fa94d25c0507a9d3f46319ce20e71ce8af803ad08c9eecf79513ceb161d0", + "startAmplificationParameterUpdate(uint256,uint256)": "0x397c757b0c4c382ac16c2bbb0f4196d1f93fd6e932f974664fb8c02a3fce31cb", + "stopAmplificationParameterUpdate()": "0xc15a7dbeb7af20822f8386c3d96cedeef34cb24a13c25415f96003cb75a1a859" + } + } } } \ No newline at end of file diff --git a/addresses/arbitrum.json b/addresses/arbitrum.json index 44f1fc96..4a2240cd 100644 --- a/addresses/arbitrum.json +++ b/addresses/arbitrum.json @@ -1080,5 +1080,19 @@ ], "status": "SCRIPT", "version": "v3" + }, + "20250324-v3-stable-pool-v2": { + "contracts": [ + { + "name": "StablePoolFactory", + "address": "0x44d33798dddCdAbc93Fe6a40C80588033Dc502d3" + }, + { + "name": "MockStablePool", + "address": "0xcb2840553945dBc776d98DABC141f9b2CceC3c30" + } + ], + "status": "ACTIVE", + "version": "v3" } } \ No newline at end of file diff --git a/addresses/base.json b/addresses/base.json index b62acc86..9f4974a9 100644 --- a/addresses/base.json +++ b/addresses/base.json @@ -680,5 +680,19 @@ ], "status": "SCRIPT", "version": "v3" + }, + "20250324-v3-stable-pool-v2": { + "contracts": [ + { + "name": "StablePoolFactory", + "address": "0xC49Ca921c4CD1117162eAEEc0ee969649997950c" + }, + { + "name": "MockStablePool", + "address": "0xFC6f8a2f517E490eB46a1B09E8DFB47bF7175B53" + } + ], + "status": "ACTIVE", + "version": "v3" } } \ No newline at end of file diff --git a/addresses/gnosis.json b/addresses/gnosis.json index 1384e670..88de3550 100644 --- a/addresses/gnosis.json +++ b/addresses/gnosis.json @@ -800,5 +800,19 @@ ], "status": "SCRIPT", "version": "v3" + }, + "20250324-v3-stable-pool-v2": { + "contracts": [ + { + "name": "StablePoolFactory", + "address": "0x161f4014C27773840ccb4EC1957113e6DD028846" + }, + { + "name": "MockStablePool", + "address": "0x52bca81419B7770911f8C1Ae1903Fad97D522FF1" + } + ], + "status": "ACTIVE", + "version": "v3" } } \ No newline at end of file diff --git a/addresses/mainnet.json b/addresses/mainnet.json index fd229c20..131571e5 100644 --- a/addresses/mainnet.json +++ b/addresses/mainnet.json @@ -1628,5 +1628,19 @@ ], "status": "SCRIPT", "version": "v3" + }, + "20250324-v3-stable-pool-v2": { + "contracts": [ + { + "name": "StablePoolFactory", + "address": "0xe42C2E153BB0A8899b59C73F5Ff941f9742F1197" + }, + { + "name": "MockStablePool", + "address": "0x95BC5CA62Ed018b5206342479ded82e18e46dcbf" + } + ], + "status": "ACTIVE", + "version": "v3" } } \ No newline at end of file diff --git a/addresses/sepolia.json b/addresses/sepolia.json index 48258c5b..9a908eea 100644 --- a/addresses/sepolia.json +++ b/addresses/sepolia.json @@ -918,5 +918,19 @@ ], "status": "SCRIPT", "version": "v3" + }, + "20250324-v3-stable-pool-v2": { + "contracts": [ + { + "name": "StablePoolFactory", + "address": "0xc274A11E09a3c92Ac64eAff5bEC4ee8f5dfEe207" + }, + { + "name": "MockStablePool", + "address": "0x1C72b94E0e291dEe39a239E6e9C47625b14dEA71" + } + ], + "status": "ACTIVE", + "version": "v3" } } \ No newline at end of file diff --git a/deployment-txs/arbitrum.json b/deployment-txs/arbitrum.json index e0cf6905..0540587c 100644 --- a/deployment-txs/arbitrum.json +++ b/deployment-txs/arbitrum.json @@ -137,5 +137,7 @@ "0xdDea349828096DcdC0Cc5B7Db5F924f146AadD90": "0x9d1c32e7e4613447aaf1e5f0d5a98281336ec17e41e0bd34e4084eaf39a91c63", "0x687b8C9b41E01Be8B591725fac5d5f52D0564d79": "0xef0850d991af6ace90084985c648f803781108edea7027851d3bec0da8f7ef71", "0x88ED12A90142fDBFe2a28f7d5b48927254C7e760": "0x4d698081792d9437c064c3ce0509ca126f149027a3174e7aa6ebbd351f7bcd80", - "0x875BED625E44D1cd03e512beBae085A440106529": "0x12ed2e288e9d49d6f9e5feb39c279e596b7427440825f01f8cbe606705255616" + "0x875BED625E44D1cd03e512beBae085A440106529": "0x12ed2e288e9d49d6f9e5feb39c279e596b7427440825f01f8cbe606705255616", + "0x44d33798dddCdAbc93Fe6a40C80588033Dc502d3": "0x39b85ee778313036afde824463fdb74d2dea60621a4e17744d962ba34f80ad4b", + "0xcb2840553945dBc776d98DABC141f9b2CceC3c30": "0xcc24fa34a59149f7315e7f6a9f88878e633e14536ef1061ded83dc985c8a275a" } \ No newline at end of file diff --git a/deployment-txs/base.json b/deployment-txs/base.json index fbeed270..02c609b8 100644 --- a/deployment-txs/base.json +++ b/deployment-txs/base.json @@ -83,5 +83,7 @@ "0x1b6F057520B4e826271D47b8bdab98E35Af17E59": "0xa14b5ca70f4c7c3476f95abe671b7e8fcb9160e3609f54d65e4809fab23fa043", "0x7EE4D172Ae50C627a1BFA9A99E1260C54dA26fdF": "0x43f8b0d856945005debbb83840cb3bcfa804c24b6d8fa5ad4be5150b15c9cb2e", "0x5F6848976C2914403B425F18B589A65772F082E3": "0xe99692e0c80903e7b875cbb76a77febf86c10e054d3d98f1f886366101c33a22", - "0x2196Ddb2b51F706857A2934eE79D9FBB463C5372": "0x8f5515e7d8e39a91f3557131b890eefb1e6cb967cf4c01f73ea17c5d1fd7be39" + "0x2196Ddb2b51F706857A2934eE79D9FBB463C5372": "0x8f5515e7d8e39a91f3557131b890eefb1e6cb967cf4c01f73ea17c5d1fd7be39", + "0xC49Ca921c4CD1117162eAEEc0ee969649997950c": "0x2bb5129b8c20751ab703c852f081e08c6623440e866ede8e1e1514694dad5e44", + "0xFC6f8a2f517E490eB46a1B09E8DFB47bF7175B53": "0x2ea6c1269746dcc75e2fde331aef306d2c878f741a8260a3eb8af959bf71af34" } \ No newline at end of file diff --git a/deployment-txs/gnosis.json b/deployment-txs/gnosis.json index 772e986f..c8d8c0d3 100644 --- a/deployment-txs/gnosis.json +++ b/deployment-txs/gnosis.json @@ -99,5 +99,7 @@ "0x6B1Da720Be2D11d95177ccFc40A917c2688f396c": "0xf1ae80ae9d5a33d9934362523e178a96cde018dfcaf6168192a9dc2afc5dca41", "0x0c6052254551EAe3ECac77B01DFcf1025418828f": "0x582cdf890b1c45a7b989c0b7794f6254a5d9023488ded1d5f329f816c2faba42", "0xEa924b45a3fcDAAdf4E5cFB1665823B8F8F2039B": "0xfb731a5912f589b4123d32d6fa9a8817012760d8056e336dd4ecdc719f9e1892", - "0x3459bCF85E86d9415025c1d245f9af799875Ee07": "0x77b4e83474549ca98468c92eaa0355881f0bea5c811c400b90675db7e9930391" + "0x3459bCF85E86d9415025c1d245f9af799875Ee07": "0x77b4e83474549ca98468c92eaa0355881f0bea5c811c400b90675db7e9930391", + "0x161f4014C27773840ccb4EC1957113e6DD028846": "0x1e98a0d84acf736697245a5937eb716a28303a7515b95bc224287fdaf542d94d", + "0x52bca81419B7770911f8C1Ae1903Fad97D522FF1": "0x8a72e4232cbd911f0edfcf2a916ef04551d8d36890fe81a7f4676bf871ac354d" } \ No newline at end of file diff --git a/deployment-txs/mainnet.json b/deployment-txs/mainnet.json index 8be0e70b..1d609cd7 100644 --- a/deployment-txs/mainnet.json +++ b/deployment-txs/mainnet.json @@ -198,5 +198,7 @@ "0x75635f85600Fc357906417f6b78AAf8755d2888D": "0xc2230af0ba9fecf37a8da0e2808a227997f640008146330fa883b32799f077d8", "0x91F17800Ca7DD29f2124D9D9eA8D4794693192C7": "0x1d8e45a12814f1bba11eb7ec73f7a6c447125ef247b96f2706817bb5ab978816", "0xE9B0a3bc48178D7FE2F5453C8bc1415d73F966d0": "0x795e515da7dfd9b5f6c62fe95efe9c87063f68592805021154ff5ae870b57a09", - "0xe912C791f7c4b6323EfBA294F66C0dE93c50eB5F": "0x89144e83221cc5b9340eb541922eace2596193d08b1eea45b9d0d0f53d4c8da2" + "0xe912C791f7c4b6323EfBA294F66C0dE93c50eB5F": "0x89144e83221cc5b9340eb541922eace2596193d08b1eea45b9d0d0f53d4c8da2", + "0xe42C2E153BB0A8899b59C73F5Ff941f9742F1197": "0x31c205dc31a18ebac64ebea30bd5bf0189241a49154f17eafd68e1854b9cfa17", + "0x95BC5CA62Ed018b5206342479ded82e18e46dcbf": "0xc6d89873a8888f06616d535ea251945736c07430255b4c640f895980011af9ca" } \ No newline at end of file diff --git a/deployment-txs/sepolia.json b/deployment-txs/sepolia.json index ee108c4c..8604fb22 100644 --- a/deployment-txs/sepolia.json +++ b/deployment-txs/sepolia.json @@ -117,5 +117,7 @@ "0x79232d3431463dC2B8Fd8fb28B352B9Ba92Eb280": "0x3e55eae81b04fb999f194da6dd1435683d007b21eae39f2d4bb5303fe2445b85", "0x6B7C56698bEb33E1f0226e73C5D417e575315106": "0x05e1b5d5fdb6f1298f3112f560030043ff03b3c85f8301be45a94c2b67a2fffb", "0x589cA6855C348d831b394676c25B125BcdC7F8ce": "0xb9431fb3bec8a3a2320f63b1da9d96e62bd152b8fff4634cd92e0e3530f32783", - "0xD2fB2b142c27094833f48c8a4a950ecc2e139F66": "0x581e7ae1d505f05e0482470b7aac15387d531aaca79dddc831e13966b59cf765" + "0xD2fB2b142c27094833f48c8a4a950ecc2e139F66": "0x581e7ae1d505f05e0482470b7aac15387d531aaca79dddc831e13966b59cf765", + "0xc274A11E09a3c92Ac64eAff5bEC4ee8f5dfEe207": "0xf803d198befdaa64913f7f07000fcb5632e4a95e58184079fbe84480c29b61cd", + "0x1C72b94E0e291dEe39a239E6e9C47625b14dEA71": "0x72de985094d02a2b4071053258ba2d58b5d265cc0bc039563bd4461d3b7b1812" } \ No newline at end of file diff --git a/v3/tasks/20250324-v3-stable-pool-v2/output/arbitrum.json b/v3/tasks/20250324-v3-stable-pool-v2/output/arbitrum.json new file mode 100644 index 00000000..a4414893 --- /dev/null +++ b/v3/tasks/20250324-v3-stable-pool-v2/output/arbitrum.json @@ -0,0 +1,4 @@ +{ + "StablePoolFactory": "0x44d33798dddCdAbc93Fe6a40C80588033Dc502d3", + "MockStablePool": "0xcb2840553945dBc776d98DABC141f9b2CceC3c30" +} \ No newline at end of file diff --git a/v3/tasks/20250324-v3-stable-pool-v2/output/base.json b/v3/tasks/20250324-v3-stable-pool-v2/output/base.json new file mode 100644 index 00000000..94eba997 --- /dev/null +++ b/v3/tasks/20250324-v3-stable-pool-v2/output/base.json @@ -0,0 +1,4 @@ +{ + "StablePoolFactory": "0xC49Ca921c4CD1117162eAEEc0ee969649997950c", + "MockStablePool": "0xFC6f8a2f517E490eB46a1B09E8DFB47bF7175B53" +} \ No newline at end of file diff --git a/v3/tasks/20250324-v3-stable-pool-v2/output/gnosis.json b/v3/tasks/20250324-v3-stable-pool-v2/output/gnosis.json new file mode 100644 index 00000000..1f3ff219 --- /dev/null +++ b/v3/tasks/20250324-v3-stable-pool-v2/output/gnosis.json @@ -0,0 +1,4 @@ +{ + "StablePoolFactory": "0x161f4014C27773840ccb4EC1957113e6DD028846", + "MockStablePool": "0x52bca81419B7770911f8C1Ae1903Fad97D522FF1" +} \ No newline at end of file diff --git a/v3/tasks/20250324-v3-stable-pool-v2/output/mainnet.json b/v3/tasks/20250324-v3-stable-pool-v2/output/mainnet.json new file mode 100644 index 00000000..4f81b12c --- /dev/null +++ b/v3/tasks/20250324-v3-stable-pool-v2/output/mainnet.json @@ -0,0 +1,4 @@ +{ + "StablePoolFactory": "0xe42C2E153BB0A8899b59C73F5Ff941f9742F1197", + "MockStablePool": "0x95BC5CA62Ed018b5206342479ded82e18e46dcbf" +} \ No newline at end of file diff --git a/v3/tasks/20250324-v3-stable-pool-v2/output/sepolia.json b/v3/tasks/20250324-v3-stable-pool-v2/output/sepolia.json new file mode 100644 index 00000000..d12b9eb7 --- /dev/null +++ b/v3/tasks/20250324-v3-stable-pool-v2/output/sepolia.json @@ -0,0 +1,4 @@ +{ + "StablePoolFactory": "0xc274A11E09a3c92Ac64eAff5bEC4ee8f5dfEe207", + "MockStablePool": "0x1C72b94E0e291dEe39a239E6e9C47625b14dEA71" +} \ No newline at end of file diff --git a/v3/tasks/20250324-v3-stable-pool-v2/readme.md b/v3/tasks/20250324-v3-stable-pool-v2/readme.md index 42e57fb2..cdb431ad 100644 --- a/v3/tasks/20250324-v3-stable-pool-v2/readme.md +++ b/v3/tasks/20250324-v3-stable-pool-v2/readme.md @@ -8,4 +8,9 @@ This version increases the maximum amplification parameter from 5,000 to 50,000. ## Useful Files - [Code](https://github.com/balancer/balancer-v3-monorepo/commit/e1ae7f091244ae20e5c1add3e7f89b6d33f48d23). +- [Ethereum mainnet addresses](./output/mainnet.json) +- [Gnosis mainnet addresses](./output/gnosis.json) +- [Arbitrum mainnet addresses](./output/arbitrum.json) +- [Base mainnet addresses](./output/base.json) +- [Sepolia testnet addresses](./output/sepolia.json) - [`StablePoolFactory` artifact](./artifact/StablePoolFactory.json)