Skip to content

Commit dce0815

Browse files
authored
Deployment: Protocol Fee Controller Migration (#206)
* add deployment outputs * add deployment tx ids * add deployment action ids (not sure why it generated one for `migratePools`, which is permissionless) * update addresses * update changelog * move WeightedPoolFactory deployment to the fork test
1 parent 715f7a3 commit dce0815

24 files changed

+129
-11
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
- Deployed V3 Liquidity Bootstrapping Pool to Mainnet, Gnosis, Arbitrum, Base and Sepolia.
2929
- Deployed V3 Hook Examples to Sepolia.
3030
- Deployed V3 Protocol Fee Controller V2 to Mainnet, Gnosis, Arbitrum, Base and Sepolia.
31+
- Deployed V3 Protocol Fee Controller Migration to Mainnet, Gnosis, Arbitrum, Base and Sepolia.
3132

3233
#### V2
3334

action-ids/arbitrum/action-ids.json

+9
Original file line numberDiff line numberDiff line change
@@ -1048,5 +1048,14 @@
10481048
"withdrawProtocolFeesForToken(address,address,address)": "0x610537725ddaed423abcb2b23d9191781b990fceb0f445f4bfe56f049514ff4c"
10491049
}
10501050
}
1051+
},
1052+
"20250221-protocol-fee-controller-migration": {
1053+
"ProtocolFeeControllerMigration": {
1054+
"useAdaptor": false,
1055+
"actionIds": {
1056+
"finalizeMigration()": "0xf2e99293214bb798dd007d998933c26df87063dcace3335292200398836b4327",
1057+
"migratePools(address[])": "0xfe18fcf002cb32980254e2e611de6b99756f16047b4a767bc36fc6f51156462f"
1058+
}
1059+
}
10511060
}
10521061
}

action-ids/base/action-ids.json

+9
Original file line numberDiff line numberDiff line change
@@ -613,5 +613,14 @@
613613
"withdrawProtocolFeesForToken(address,address,address)": "0x0ef595d0eed0a6e5adfc1fe810c72ad3d4b23e7c0d66a74fd4799e2f799af0bf"
614614
}
615615
}
616+
},
617+
"20250221-protocol-fee-controller-migration": {
618+
"ProtocolFeeControllerMigration": {
619+
"useAdaptor": false,
620+
"actionIds": {
621+
"finalizeMigration()": "0xb2ea78ad7492bf6616d379d1c842b07b58cc73d263d08a1f4b1b9d30bc26efac",
622+
"migratePools(address[])": "0x8c8aaef94887d0b21bb3337531084db882c8c20fdc0c70bac758746dd38bf477"
623+
}
624+
}
616625
}
617626
}

action-ids/gnosis/action-ids.json

+9
Original file line numberDiff line numberDiff line change
@@ -762,5 +762,14 @@
762762
"withdrawProtocolFeesForToken(address,address,address)": "0x7c0fa8c5add2fab51cc64b00dc8278f6829e8235e9ac804973fc336736b88ba6"
763763
}
764764
}
765+
},
766+
"20250221-protocol-fee-controller-migration": {
767+
"ProtocolFeeControllerMigration": {
768+
"useAdaptor": false,
769+
"actionIds": {
770+
"finalizeMigration()": "0x522351475deb850093dc3f48122e83134d8eca074fc3385c06fd4f16904e046d",
771+
"migratePools(address[])": "0xeebbba261ff01c78dfb8d0ca3998caeb6a29762281eb4bb355fba072716234aa"
772+
}
773+
}
765774
}
766775
}

action-ids/mainnet/action-ids.json

+9
Original file line numberDiff line numberDiff line change
@@ -1755,5 +1755,14 @@
17551755
"withdrawProtocolFeesForToken(address,address,address)": "0x9fe8e7d354d4d4c9b828af97a9fb461b79747eb597d1d1919127b884ed03a3df"
17561756
}
17571757
}
1758+
},
1759+
"20250221-protocol-fee-controller-migration": {
1760+
"ProtocolFeeControllerMigration": {
1761+
"useAdaptor": false,
1762+
"actionIds": {
1763+
"finalizeMigration()": "0xebf97e324090ac50c328482b5ab66d37fb0e4bb5afe45fb890915675775ffc62",
1764+
"migratePools(address[])": "0xd164fa6b7677a2d8dd3fbca8e238117766cc02a275535f42d6ea11bbc1389bd6"
1765+
}
1766+
}
17581767
}
17591768
}

action-ids/sepolia/action-ids.json

+9
Original file line numberDiff line numberDiff line change
@@ -868,5 +868,14 @@
868868
"withdrawProtocolFeesForToken(address,address,address)": "0xf489956ed3a8dd00249abca47f304d128e3b1efd58ccde48fcbafc3e48d510c8"
869869
}
870870
}
871+
},
872+
"20250221-protocol-fee-controller-migration": {
873+
"ProtocolFeeControllerMigration": {
874+
"useAdaptor": false,
875+
"actionIds": {
876+
"finalizeMigration()": "0x8c292d8e1af8e556f1aa3edc7a1214d5e14b9fb1afa68649633af554a5a6b881",
877+
"migratePools(address[])": "0x5da11bd4a075f242f7d1c1b44155f4fb690bd3476a3bc58330904891b1ca3e49"
878+
}
879+
}
871880
}
872881
}

addresses/arbitrum.json

+10
Original file line numberDiff line numberDiff line change
@@ -1003,6 +1003,16 @@
10031003
"status": "ACTIVE",
10041004
"version": "v3"
10051005
},
1006+
"20250221-protocol-fee-controller-migration": {
1007+
"contracts": [
1008+
{
1009+
"name": "ProtocolFeeControllerMigration",
1010+
"address": "0xdDea349828096DcdC0Cc5B7Db5F924f146AadD90"
1011+
}
1012+
],
1013+
"status": "SCRIPT",
1014+
"version": "v3"
1015+
},
10061016
"20250221-v3-cow-swap-fee-burner": {
10071017
"contracts": [
10081018
{

addresses/base.json

+10
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,16 @@
603603
"status": "ACTIVE",
604604
"version": "v3"
605605
},
606+
"20250221-protocol-fee-controller-migration": {
607+
"contracts": [
608+
{
609+
"name": "ProtocolFeeControllerMigration",
610+
"address": "0x1b6F057520B4e826271D47b8bdab98E35Af17E59"
611+
}
612+
],
613+
"status": "SCRIPT",
614+
"version": "v3"
615+
},
606616
"20250221-v3-cow-swap-fee-burner": {
607617
"contracts": [
608618
{

addresses/gnosis.json

+10
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,16 @@
723723
"status": "ACTIVE",
724724
"version": "v3"
725725
},
726+
"20250221-protocol-fee-controller-migration": {
727+
"contracts": [
728+
{
729+
"name": "ProtocolFeeControllerMigration",
730+
"address": "0x6B1Da720Be2D11d95177ccFc40A917c2688f396c"
731+
}
732+
],
733+
"status": "SCRIPT",
734+
"version": "v3"
735+
},
726736
"20250221-v3-cow-swap-fee-burner": {
727737
"contracts": [
728738
{

addresses/mainnet.json

+10
Original file line numberDiff line numberDiff line change
@@ -1551,6 +1551,16 @@
15511551
"status": "ACTIVE",
15521552
"version": "v3"
15531553
},
1554+
"20250221-protocol-fee-controller-migration": {
1555+
"contracts": [
1556+
{
1557+
"name": "ProtocolFeeControllerMigration",
1558+
"address": "0x75635f85600Fc357906417f6b78AAf8755d2888D"
1559+
}
1560+
],
1561+
"status": "SCRIPT",
1562+
"version": "v3"
1563+
},
15541564
"20250221-v3-cow-swap-fee-burner": {
15551565
"contracts": [
15561566
{

addresses/sepolia.json

+10
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,16 @@
841841
"status": "ACTIVE",
842842
"version": "v3"
843843
},
844+
"20250221-protocol-fee-controller-migration": {
845+
"contracts": [
846+
{
847+
"name": "ProtocolFeeControllerMigration",
848+
"address": "0x79232d3431463dC2B8Fd8fb28B352B9Ba92Eb280"
849+
}
850+
],
851+
"status": "SCRIPT",
852+
"version": "v3"
853+
},
844854
"20250221-v3-cow-swap-fee-burner": {
845855
"contracts": [
846856
{

deployment-txs/arbitrum.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -133,5 +133,6 @@
133133
"0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77": "0xb060e5e512b014e37b742ce34da7f511e6db0e0c7af472ab62f042435efe07dc",
134134
"0x4BB42f71CAB7Bd13e9f958dA4351B9fa2d3A42FF": "0x228dfaabff50f2d035a189d6f280b04a635d4b37d7c2bbe5ecc561724ef8331c",
135135
"0x9d3E72c11aD7bF7132a141FF6F716491c6d01518": "0xcd632709a737532599a4f5d5e4d49c2eeacaea367134a9b092ed088deb7a58f4",
136-
"0x4638ab64022927C9bD5947607459D13f57f1551C": "0xb82524d1c08f1b460a36b8517daec94b15388bf357adc9b4128da5b943b1f4a8"
136+
"0x4638ab64022927C9bD5947607459D13f57f1551C": "0xb82524d1c08f1b460a36b8517daec94b15388bf357adc9b4128da5b943b1f4a8",
137+
"0xdDea349828096DcdC0Cc5B7Db5F924f146AadD90": "0x9d1c32e7e4613447aaf1e5f0d5a98281336ec17e41e0bd34e4084eaf39a91c63"
137138
}

deployment-txs/base.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -79,5 +79,6 @@
7979
"0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd": "0xabd8175c001b552de99936ded29fa0032099a702c7f1ccf09e40cb346d47c7d6",
8080
"0x662112B8CB18889e81459b92CA0f894a2ef2c1B8": "0x180ca26e5161143171e3ec630e79e2d09d72082dfc9063ef7e3f4af361a68884",
8181
"0x9Ce89Efb4EbE2BC692003Af804e7A33FBBE93043": "0xf500b23b868bd6f950e198539dc083917239ff0c8c42aee228f5dc1851d9af49",
82-
"0x2FF226CD12C80511a641A6101F071d853A4e5363": "0xf7d2d372f9a5398b2a9c11c66900b313beb7a310eeea71d1212e7151e67fdb57"
82+
"0x2FF226CD12C80511a641A6101F071d853A4e5363": "0xf7d2d372f9a5398b2a9c11c66900b313beb7a310eeea71d1212e7151e67fdb57",
83+
"0x1b6F057520B4e826271D47b8bdab98E35Af17E59": "0xa14b5ca70f4c7c3476f95abe671b7e8fcb9160e3609f54d65e4809fab23fa043"
8384
}

deployment-txs/gnosis.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -95,5 +95,6 @@
9595
"0xAE563E3f8219521950555F5962419C8919758Ea2": "0x378fc93acf3fbe9a9004b025a9f6c11a97aa40ed91ed5ccbe79fee0e8767a89d",
9696
"0x6eE18fbb1BBcC5CF700cD75ea1aef2bb21e3cB3F": "0x4f7c8c50da5b332f44f6c06212732d7517796dde45412883665069e2109271eb",
9797
"0xc08dDF053003efa63eC7CA1B0ecd4024445A5c51": "0x9428fa9f68c9244f911fd3763370bd4689cacafe4d67c483e218c466d8f3a309",
98-
"0xa7d524046ef89de9F8e4f2d7B029f66cCB738d48": "0xfe856c93d059d68888b48bc26d8f54f5d1c78390c616964ed1ef5e57d5d2ed76"
98+
"0xa7d524046ef89de9F8e4f2d7B029f66cCB738d48": "0xfe856c93d059d68888b48bc26d8f54f5d1c78390c616964ed1ef5e57d5d2ed76",
99+
"0x6B1Da720Be2D11d95177ccFc40A917c2688f396c": "0xf1ae80ae9d5a33d9934362523e178a96cde018dfcaf6168192a9dc2afc5dca41"
99100
}

deployment-txs/mainnet.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -194,5 +194,6 @@
194194
"0x0E800D8d2E8b4694610AEdc385Aa6D763492B106": "0x59796d239fbc3f452e401e3c82ea5ec05cc8a92b46ec89797c4855ea6b19f9fb",
195195
"0x4eff2d77D9fFbAeFB4b141A3e494c085b3FF4Cb5": "0x2f15b5edae8f2e18a42a409b5c568f74c119c1ff86d9d32951b29c53edfc6cd4",
196196
"0xdBB8aD38C990Bd4ca2c88A6E6CfDF5045B0d4FB0": "0x4b858e90f3901823fa347543123d6c47a66226a4ab317827d717d1f476259068",
197-
"0x212F884252792ebaaA811FB0678444b21c7C2879": "0x33f5b66b4770d10bedb9bc46f4ac8a2e6dd771068a6a6aa2d8c16fbbc512ffdd"
197+
"0x212F884252792ebaaA811FB0678444b21c7C2879": "0x33f5b66b4770d10bedb9bc46f4ac8a2e6dd771068a6a6aa2d8c16fbbc512ffdd",
198+
"0x75635f85600Fc357906417f6b78AAf8755d2888D": "0xc2230af0ba9fecf37a8da0e2808a227997f640008146330fa883b32799f077d8"
198199
}

deployment-txs/sepolia.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -113,5 +113,6 @@
113113
"0x3400AaFA47C6dC0D8Ffc2380D3665f701cD53eBc": "0xa77de078ac7b3b8962e6c43fa7a8a3124ec224c1203a2f359d9cd69d1aeafb15",
114114
"0xA714753434481DbaBf7921963f18190636eCde69": "0x0cd109852b120305517211c9df21dcd99afe0e803a91989c6379708a76dfb895",
115115
"0x410E6933B5d9F7ffBAB35AF4aAbCaA82a4C1F287": "0xb48230c909c2e18c6380a5eb6ec9dfc6a66a01a9b402524a789818c0f222acfd",
116-
"0x931d2a630f6bdfe872F98ea967447c8F99d4823a": "0x9e4f758c9ee4fbe851b89a9eff0f51b6dff035bd6c1f9c31dfa166c919138132"
116+
"0x931d2a630f6bdfe872F98ea967447c8F99d4823a": "0x9e4f758c9ee4fbe851b89a9eff0f51b6dff035bd6c1f9c31dfa166c919138132",
117+
"0x79232d3431463dC2B8Fd8fb28B352B9Ba92Eb280": "0x3e55eae81b04fb999f194da6dd1435683d007b21eae39f2d4bb5303fe2445b85"
117118
}

v3/scripts/20250221-protocol-fee-controller-migration/index.ts

-4
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,4 @@ export default async (task: Task, { force, from }: TaskRunOptions = {}): Promise
77
const args = [input.Vault, input.ProtocolFeeController];
88

99
await task.deployAndVerify('ProtocolFeeControllerMigration', args, from, force);
10-
11-
// Deploy a version of the WeightedPoolFactory that allows pool creators.
12-
const factoryArgs = [input.Vault, 0, '', ''];
13-
await task.deployAndVerify('WeightedPoolFactory', factoryArgs, from, force);
1410
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"ProtocolFeeControllerMigration": "0xdDea349828096DcdC0Cc5B7Db5F924f146AadD90"
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"ProtocolFeeControllerMigration": "0x1b6F057520B4e826271D47b8bdab98E35Af17E59"
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"ProtocolFeeControllerMigration": "0x6B1Da720Be2D11d95177ccFc40A917c2688f396c"
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"ProtocolFeeControllerMigration": "0x75635f85600Fc357906417f6b78AAf8755d2888D"
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"ProtocolFeeControllerMigration": "0x79232d3431463dC2B8Fd8fb28B352B9Ba92Eb280"
3+
}

v3/scripts/20250221-protocol-fee-controller-migration/readme.md

+5
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,10 @@ We then simulate a second migration, this time using the full infrastructure in
77
## Useful Files
88

99
- [Code](https://github.com/balancer/balancer-v3-monorepo/commit/40b4cd30889103dd17c0d87bc7d3d397823b65a0).
10+
- [Ethereum mainnet addresses](./output/mainnet.json)
11+
- [Gnosis mainnet addresses](./output/gnosis.json)
12+
- [Arbitrum mainnet addresses](./output/arbitrum.json)
13+
- [Base mainnet addresses](./output/base.json)
14+
- [Sepolia testnet addresses](./output/sepolia.json)
1015
- [`ProtocolFeeControllerMigration` artifact](./artifact/ProtocolFeeControllerMigration.json)
1116
- [`WeightedPoolFactory` artifact](./artifact/WeightedPoolFactory.json)

v3/scripts/20250221-protocol-fee-controller-migration/test/task.fork.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,9 @@ describeForkTest('ProtocolFeeControllerMigration', 'mainnet', 22020651, function
220220
});
221221

222222
it('deploys a pool with a creator', async () => {
223-
// Special version that allows pool creators.
224-
const factory = await migrationTask.deployedInstance('WeightedPoolFactory');
223+
// Deploy a version of the WeightedPoolFactory that allows pool creators.
224+
const factoryArgs = [input.Vault, 0, '', ''];
225+
const factory = await migrationTask.deploy('WeightedPoolFactory', factoryArgs, admin, true);
225226

226227
const tokensTask = new Task('00000000-tokens', TaskMode.READ_ONLY, getForkedNetwork(hre));
227228

0 commit comments

Comments
 (0)