[BIP-253] Permission granting for managed v2, composableStable v4, weighted v4 factories

Payload PR - BIP-253

Background

The v4 Weighted Pool Factory and the v4 Composable Stable Pool Factory were deployed to allow the use of create2 instead of create. The v2 Managed Pool Factory allows using create2, adds reentrancy protection, and has various other improvements. Some initial “wire-up” of permissions is required to bring them into standard function. This BIP lays out these changes and requests permission to apply them.

English Specification

The transaction details were generated by this script with inputs and outputs in this directory

The following files can be found both linked below and in the payload PR linked above:

Filename Description of Contents
inputs.json The inputs to the script mapping functions and deployments to target addresses that can execute them.
results_address_sorted.md The resulting changes printed in a table sorted by target chain and target address. (to easily understand permisisons granted)
results_deployment_sorted.md The resulting changes printed in a table sorted by target chain and target deployment. (for verification against action ids)
function_descriptions.md A table that describes what each function that is being granted privileged access to allows.
chainname.json For each change with changes, a transaction builder json named after said chain exists to apply the changes described in the tables.

In the tables above:

The “emergency” caller group:

  • maps to the Balancer Emergency DAO Multisig as defined in this vote.

The “feeManager” caller group:

  • maps to the feeManager multisig controlled by the Balancer Maxis on all chains except mainnet.
  • On mainnet a special feeSetter multisig exists to manage a-factors and a gautletFeeSetter contract that allows bulk changing of fees.
  • The maxi’s functionally control all contracts that make up the feeManager target group.

More information about the various Balancer Multisigs and their functions can be found in the multisig-ops repo

Specification

As described in the payload json, the authorizer will be called to grant the roles as described.

The change can be reviewed by the below by comparing the results_deployment_sorted.md file to the source of truth, which should match the order found in the source of truth for actionIds on the balancer-v2-monorepo.

For record, the contents of results_address_sorted.md are printed here:

deployment chain function role target target_address
20230411-managed-pool-v2 arbitrum enableRecoveryMode() 0xb213b9fefdba263a47d6449bab5d563a39489f656d504fd24d5b9efe6fe23a61 20221123-pool-recovery-helper/PoolRecoveryHelper 0xb5e56CC3d2e38e53b1166175C59e921A37cDC1E2
20230320-composable-stable-pool-v4 arbitrum enableRecoveryMode() 0xa7152bc948bf07e3c3fff4953f5f4962d845ee3261d784e6e9b31f160d99da54 20221123-pool-recovery-helper/PoolRecoveryHelper 0xb5e56CC3d2e38e53b1166175C59e921A37cDC1E2
20230320-weighted-pool-v4 arbitrum enableRecoveryMode() 0xe184fa0d5bfa8981c4a008826c1302ad4a0235d114bd82980681f620c748abc1 20221123-pool-recovery-helper/PoolRecoveryHelper 0xb5e56CC3d2e38e53b1166175C59e921A37cDC1E2
20230320-composable-stable-pool-v4 arbitrum setSwapFeePercentage(uint256) 0x50ccb689033ea83f58a1b54b091916255bb56c2334a12ed908ecb06f72d2a688 multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230320-composable-stable-pool-v4 arbitrum startAmplificationParameterUpdate(uint256,uint256) 0x197a2915652227e96ce9367b8488b59f12fa838f0ae2381b1437dcf3992b8349 multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230320-composable-stable-pool-v4 arbitrum stopAmplificationParameterUpdate() 0x76fe94a15b02391aba1fbac69e9d2f37f355fe1e5031c218535568ee6bb98219 multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230320-weighted-pool-v4 arbitrum setSwapFeePercentage(uint256) 0x70368640683195889d0f146ab060210f43fbb1c317a87bdf17a4dca8d8feed86 multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230411-managed-pool-v2 arbitrum disable() 0x8d305e761700b38cf2bc3f9e2c4ad60807e843cf2efd2415b902b1163f8f9a22 multisig/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20230411-managed-pool-v2 arbitrum enableRecoveryMode() 0xb213b9fefdba263a47d6449bab5d563a39489f656d504fd24d5b9efe6fe23a61 multisig/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20230411-managed-pool-v2 arbitrum pause() 0x6c331c074092fbc25cd1032630ed25155aa5b81afa1d296bf5a0f0e9e0c6e846 multisig/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20230320-composable-stable-pool-v4 arbitrum disable() 0x2459196cb4ed0fe6ae2ab5497be53008d92acf640cb0174ce413b1e613d56e35 multisig/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20230320-composable-stable-pool-v4 arbitrum enableRecoveryMode() 0xa7152bc948bf07e3c3fff4953f5f4962d845ee3261d784e6e9b31f160d99da54 multisig/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20230320-composable-stable-pool-v4 arbitrum pause() 0x4af83a29926fe55935b85568f0f0cab066e294993eaba067cdef68541ccf0195 multisig/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20230320-weighted-pool-v4 arbitrum disable() 0x06cafebf5a6142d1acfc442d8a4f2b4d40a7cdfa6c1311679adc8fd679a559a7 multisig/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20230320-weighted-pool-v4 arbitrum enableRecoveryMode() 0xe184fa0d5bfa8981c4a008826c1302ad4a0235d114bd82980681f620c748abc1 multisig/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20230320-weighted-pool-v4 arbitrum pause() 0xd98740b6136649627930e4de42dd9232af00b3ded6023d9d9202b47f0356ff43 multisig/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20230320-composable-stable-pool-v4 gnosis setSwapFeePercentage(uint256) 0xceef6cf4faeffc4260dea255a7815f36c153816232b663a816c08b761ad73cbc multisig/lm 0x14969B55a675d13a1700F71A37511bc22D90155a
20230320-composable-stable-pool-v4 gnosis startAmplificationParameterUpdate(uint256,uint256) 0x144167e496476037f70eaed5c87faa423fb69e52609d0b4ee48a8284784a800d multisig/lm 0x14969B55a675d13a1700F71A37511bc22D90155a
20230320-composable-stable-pool-v4 gnosis stopAmplificationParameterUpdate() 0x6470d89bfdcc75143ff276dba3b9742eb1e31ae77d9c6e1330743a621d33e755 multisig/lm 0x14969B55a675d13a1700F71A37511bc22D90155a
20230320-weighted-pool-v4 gnosis setSwapFeePercentage(uint256) 0x0e439756a3aff035984c3a9be923d228a560b708849149e6384abd264011962a multisig/lm 0x14969B55a675d13a1700F71A37511bc22D90155a
20230411-managed-pool-v2 gnosis enableRecoveryMode() 0x46efbab063c0b0398c10c3e97d24a5263780379231f3ead5ac0eaf2e9cf8a318 20221123-pool-recovery-helper/PoolRecoveryHelper 0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68
20230320-composable-stable-pool-v4 gnosis enableRecoveryMode() 0xb35863a581c2826e59cfa027d5228768a0fcc02c7497f27c05e435870fa4e34b 20221123-pool-recovery-helper/PoolRecoveryHelper 0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68
20230320-weighted-pool-v4 gnosis enableRecoveryMode() 0x1d8c9dcce0bb3a303ff9556ace00e75eb744769eeeac8c5beb115a1d697378bd 20221123-pool-recovery-helper/PoolRecoveryHelper 0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68
20230411-managed-pool-v2 gnosis disable() 0xad5264d61ee90db6d19d6e36a2c93f6d23112459b8a494e489fa1b8f0b9fac38 multisig/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20230411-managed-pool-v2 gnosis enableRecoveryMode() 0x46efbab063c0b0398c10c3e97d24a5263780379231f3ead5ac0eaf2e9cf8a318 multisig/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20230411-managed-pool-v2 gnosis pause() 0x376ffebf3f39d793f8453bbf54f031a0b93c0455a242f89dc6c534b14016e7c5 multisig/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20230320-composable-stable-pool-v4 gnosis disable() 0x51d0341d2686f3ed15bf4f4b5745540b32c4723280e3eefa8dabcb4a366ab0d2 multisig/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20230320-composable-stable-pool-v4 gnosis enableRecoveryMode() 0xb35863a581c2826e59cfa027d5228768a0fcc02c7497f27c05e435870fa4e34b multisig/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20230320-composable-stable-pool-v4 gnosis pause() 0x21ea7ba7282a115973d24d0598646f2b24b98bfd5ed4811eafc19282ada7063c multisig/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20230320-weighted-pool-v4 gnosis disable() 0xee4957b205e6db89fef568d9e8aa4fce4a9a8de50ccf9bf7bd611d8c9fa20a07 multisig/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20230320-weighted-pool-v4 gnosis enableRecoveryMode() 0x1d8c9dcce0bb3a303ff9556ace00e75eb744769eeeac8c5beb115a1d697378bd multisig/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20230320-weighted-pool-v4 gnosis pause() 0x424af7587d00b5e073c5d47ad47b564a6510fa9fb35fb0393c6e83f928227270 multisig/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20230411-managed-pool-v2 mainnet enableRecoveryMode() 0xfab707b8c3c30c3593808e391f0e18aad40b6e8621b45494988ca0a31a55aff5 20221123-pool-recovery-helper/PoolRecoveryHelper 0x1b300C86980a5195bCF49bD419A068D98dC133Db
20230320-composable-stable-pool-v4 mainnet enableRecoveryMode() 0x97b984f4d02757894d110e636f8e8fcdb03099f5c473e4f494496f3eff253cde 20221123-pool-recovery-helper/PoolRecoveryHelper 0x1b300C86980a5195bCF49bD419A068D98dC133Db
20230320-weighted-pool-v4 mainnet enableRecoveryMode() 0xa311a2d0d64a462699773489c804dc8760412f0ab9958da8d266a409200a8947 20221123-pool-recovery-helper/PoolRecoveryHelper 0x1b300C86980a5195bCF49bD419A068D98dC133Db
20230411-managed-pool-v2 mainnet disable() 0x3a8726e9b397a00fc6ba5b2cb40716b9844deceaeb064d72a63d4d2f149d9e2a multisig/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20230411-managed-pool-v2 mainnet enableRecoveryMode() 0xfab707b8c3c30c3593808e391f0e18aad40b6e8621b45494988ca0a31a55aff5 multisig/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20230411-managed-pool-v2 mainnet pause() 0x93d028247647bd545d7dfbf7369348eca5dc45b20bf8bdb759610f808016af1b multisig/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20230320-composable-stable-pool-v4 mainnet disable() 0xe31225bb7818ffa444c35f1c3b7dd416438415dcdd675d609ea6343c1a1111ad multisig/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20230320-composable-stable-pool-v4 mainnet enableRecoveryMode() 0x97b984f4d02757894d110e636f8e8fcdb03099f5c473e4f494496f3eff253cde multisig/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20230320-composable-stable-pool-v4 mainnet pause() 0x409c04f28f6c508db18cec1f9381aa1dced3dc1f8fa8113485974bcb9664c57b multisig/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20230320-weighted-pool-v4 mainnet disable() 0x493661c8d8cc29f86981a64d4fbc5cec0d83e973a00ccf48867d9d565577cc43 multisig/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20230320-weighted-pool-v4 mainnet enableRecoveryMode() 0xa311a2d0d64a462699773489c804dc8760412f0ab9958da8d266a409200a8947 multisig/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20230320-weighted-pool-v4 mainnet pause() 0xf027a6de0f5fcff0e202ce375789440fe96671a3d602f11b72666eb3b3e0835f multisig/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20230320-composable-stable-pool-v4 mainnet setSwapFeePercentage(uint256) 0x0acc45f3ac7c04369514ee383aad82d5c1eef484fbf9ca5f6d87ad5c5859da40 multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230320-composable-stable-pool-v4 mainnet startAmplificationParameterUpdate(uint256,uint256) 0xa67ca78c7311cd47624917626fa335f80b4bd4290a39d66dbe5fa4e9c75e09c4 multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230320-composable-stable-pool-v4 mainnet stopAmplificationParameterUpdate() 0x682fca1bedeeef7829d348be1ad1b4374173ca952cf181baff30e5249425ce8b multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230320-weighted-pool-v4 mainnet setSwapFeePercentage(uint256) 0xa5547190e3d59f2bfeb4174ca3454b2f2acaeed644bc7ad7018014516f73f2bd multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230320-composable-stable-pool-v4 optimism setSwapFeePercentage(uint256) 0xe92c5e92fd07c923b506e4ef7eb29972642a073312f496c812148a15bb6b8967 multisig/lm 0x09Df1626110803C7b3b07085Ef1E053494155089
20230320-composable-stable-pool-v4 optimism startAmplificationParameterUpdate(uint256,uint256) 0x3d1105ece259c9620b4c0b8c8a01554fdbf4efacfe00c648fa8f99a98c7c26bd multisig/lm 0x09Df1626110803C7b3b07085Ef1E053494155089
20230320-composable-stable-pool-v4 optimism stopAmplificationParameterUpdate() 0x39e75d95add118410df221d6d408e602d372ebc0e6657e596e87ab948b093408 multisig/lm 0x09Df1626110803C7b3b07085Ef1E053494155089
20230320-weighted-pool-v4 optimism setSwapFeePercentage(uint256) 0x32725667b078898f78f53e59f45eb1837b34a9469dbe36f9270b674247b23abf multisig/lm 0x09Df1626110803C7b3b07085Ef1E053494155089
20230411-managed-pool-v2 optimism enableRecoveryMode() 0xadbf17d5cbdfa6f1473b5c3fae1de6e9959223e464815fc481499cd58a591bab 20221123-pool-recovery-helper/PoolRecoveryHelper 0x26743984e3357eFC59f2fd6C1aFDC310335a61c9
20230320-composable-stable-pool-v4 optimism enableRecoveryMode() 0xf7c36607b85de415dd5d9b2e4c47d42f2093d7338fc8af38b88070683da54da1 20221123-pool-recovery-helper/PoolRecoveryHelper 0x26743984e3357eFC59f2fd6C1aFDC310335a61c9
20230320-weighted-pool-v4 optimism enableRecoveryMode() 0x8ceae9d0f076b4b0c529529f6bf11832835b93b533445c655b840015f7025e50 20221123-pool-recovery-helper/PoolRecoveryHelper 0x26743984e3357eFC59f2fd6C1aFDC310335a61c9
20230411-managed-pool-v2 optimism disable() 0xa8ff4830c7bf9a4c5c71257a9e4272ae652308e2fadfe8e0b2b862f77ead95d7 multisig/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20230411-managed-pool-v2 optimism enableRecoveryMode() 0xadbf17d5cbdfa6f1473b5c3fae1de6e9959223e464815fc481499cd58a591bab multisig/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20230411-managed-pool-v2 optimism pause() 0x0cce170c212bd2a0cb239b2e279b6a7527ddab4a9bfe5a6801db9f4e55b3f0df multisig/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20230320-composable-stable-pool-v4 optimism disable() 0xdb0e2ca147bb165fcfd2631fb8cb87ab34aa8fb9d2a81e95334a207f753f0302 multisig/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20230320-composable-stable-pool-v4 optimism enableRecoveryMode() 0xf7c36607b85de415dd5d9b2e4c47d42f2093d7338fc8af38b88070683da54da1 multisig/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20230320-composable-stable-pool-v4 optimism pause() 0x6464a19f906714393234821d14f9899d08c3c32edac6ac68a28e8e2c444dc372 multisig/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20230320-weighted-pool-v4 optimism disable() 0xd7acda26118b9ff06dd8526d0197d58c0c7ed83074be6d915bff2db42b5581ae multisig/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20230320-weighted-pool-v4 optimism enableRecoveryMode() 0x8ceae9d0f076b4b0c529529f6bf11832835b93b533445c655b840015f7025e50 multisig/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20230320-weighted-pool-v4 optimism pause() 0xb9c5dbd31b49d898a12157d05b5f59e61b30533c20fe266652c1017837135f0c multisig/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20230411-managed-pool-v2 polygon disable() 0x855759a5f9e9b4b303700b2720e91e78c453fd1a58be9c84122ad342d492a99e multisig/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20230411-managed-pool-v2 polygon enableRecoveryMode() 0x356381b4c3ae04ffd3d8778286ace45849220e97b1397a1deb1fbcffdbf294d8 multisig/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20230411-managed-pool-v2 polygon pause() 0xfa21c40c9cc6c92667996b0306f905fe8138de4a48895627c3e23ae693e13c14 multisig/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20230320-composable-stable-pool-v4 polygon disable() 0xa544127d0ad449e0603bfabd973ce71e16260ff91463b98f8e17ca841b863671 multisig/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20230320-composable-stable-pool-v4 polygon enableRecoveryMode() 0x237ec20a8fc896e2ccd593e146cfb897d33a3aec61da4c3a35d5d91e5ff3c5f3 multisig/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20230320-composable-stable-pool-v4 polygon pause() 0xad24869d8e59d11e376f5dd5087c9c3e7ecf500f6aa2f0272120b16e2bd1a1ce multisig/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20230320-weighted-pool-v4 polygon disable() 0xbcd976054e605d08b3c0674552476261b198b61b307ff1b8b5dda320cf3f6027 multisig/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20230320-weighted-pool-v4 polygon enableRecoveryMode() 0x2ea86ec12cc48f7c7a247493f2eadbe33029a24816226ba4c7ac4b4087949c4a multisig/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20230320-weighted-pool-v4 polygon pause() 0x0334e3e272e2cd5eb2537ae08beca8f9d1665f0ce03a7026b1dfc8665ffe12af multisig/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20230411-managed-pool-v2 polygon enableRecoveryMode() 0x356381b4c3ae04ffd3d8778286ace45849220e97b1397a1deb1fbcffdbf294d8 20221123-pool-recovery-helper/PoolRecoveryHelper 0x495F696430F4A51F7fcB98FbE68a9Cb7A07fB1bA
20230320-composable-stable-pool-v4 polygon enableRecoveryMode() 0x237ec20a8fc896e2ccd593e146cfb897d33a3aec61da4c3a35d5d91e5ff3c5f3 20221123-pool-recovery-helper/PoolRecoveryHelper 0x495F696430F4A51F7fcB98FbE68a9Cb7A07fB1bA
20230320-weighted-pool-v4 polygon enableRecoveryMode() 0x2ea86ec12cc48f7c7a247493f2eadbe33029a24816226ba4c7ac4b4087949c4a 20221123-pool-recovery-helper/PoolRecoveryHelper 0x495F696430F4A51F7fcB98FbE68a9Cb7A07fB1bA
20230320-composable-stable-pool-v4 polygon setSwapFeePercentage(uint256) 0xdc4f292a9c37b8bfbaf2dc78ff4d2a53114e770bcb186a21957939f01ffbfe6b multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230320-composable-stable-pool-v4 polygon startAmplificationParameterUpdate(uint256,uint256) 0x3dc055c2eb0eb929c7bf4eec68903547110bbb0c41c81959c15b122062ce5703 multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230320-composable-stable-pool-v4 polygon stopAmplificationParameterUpdate() 0xe394fbc4dc19aef582d4ee54bbbddddca8bffe39a3af34cb2e8ba09b2bf43b46 multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230320-weighted-pool-v4 polygon setSwapFeePercentage(uint256) 0x0ad9662eb9978d490b9f9bc897a15af8892817d0c299cb8ec0c624cccd6b192d multisig/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860

Risk Assessment

This BIP is routine operation for provisioning a new factory. The new factories are themselves a risk mitigation.

References

Directory of Addresses used by script which generated the table and multsig payloads

https://snapshot.org/#/balancer.eth/proposal/0x167276289834a906533f0a0696e348fe2c17a25e28dfee844e988e40ba977869