# \[BIP-353\] Grant Permissions for Composable Stable Pool Factory v5

**URL:** <https://forum.balancer.fi/t/bip-353-grant-permissions-for-composable-stable-pool-factory-v5/4974>\
**Category:** General Proposal\
**Created:** [July 12, 2023, 4:01pm UTC](https://forum.balancer.fi/t/bip-353-grant-permissions-for-composable-stable-pool-factory-v5/4974 "2023-07-12T16:01:12Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![solarcurve](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/solarcurve/32/1487_2.png) [@solarcurve](https://forum.balancer.fi/u/solarcurve)\
**Post date:** [July 12, 2023, 4:01pm UTC](https://forum.balancer.fi/t/bip-353-grant-permissions-for-composable-stable-pool-factory-v5/4974/1 "2023-07-12T16:01:12Z")

</div>

## [Payload PR - BIP-353](https://github.com/BalancerMaxis/multisig-ops/pull/358)

## Background

The [v5 Composable Stable Pool Factory](https://github.com/balancer/balancer-deployments/tree/master/tasks/20230711-composable-stable-pool-v5) were deployed to fix issue reported by a whitehat and requiring many CSPv4 pools to be put in recovery mode. A full disclosure about the issue will be posted by Balancer Labs once they have wrapped up the ImmuniFi process(paid out). 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](https://github.com/BalancerMaxis/multisig-ops/blob/main/action-scripts/gen_add_permissions_payload.py) with inputs and outputs in [this directory](https://github.com/BalancerMaxis/multisig-ops/tree/staging/BIPs/2023-W28/BIP-353)

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

| Filename | Description of Contents |
| --- | --- |
| [inputs.json](https://github.com/BalancerMaxis/multisig-ops/blob/staging/BIPs/2023-W28/BIP-353/inputs.json) | The inputs to the script mapping functions and deployments to target addresses that can execute them. |
| [results\_address\_sorted.md](https://github.com/BalancerMaxis/multisig-ops/blob/staging/BIPs/2023-W28/BIP-353/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](https://github.com/BalancerMaxis/multisig-ops/blob/staging/BIPs/2023-W28/BIP-353/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](https://github.com/BalancerMaxis/multisig-ops/blob/staging/BIPs/2023-W28/BIP-353/function_descriptions.md) | A table that describes what each function that is being granted privileged access to allows. |
| [`chainname`.json](https://github.com/BalancerMaxis/multisig-ops/tree/staging/BIPs/2023-W28/BIP-353/) | For each change with changes, a transaction builder json named after said chain exists to apply the changes described in the tables. |

_More information about the various Balancer Multisigs and their functions can be found in the [multisig-ops repo](https://github.com/BalancerMaxis/multisig-ops/blob/staging/multisigs.md)_

# 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](https://github.com/BalancerMaxis/multisig-ops/tree/staging/BIPs/2023-W28/BIP-353/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-deployments](https://github.com/balancer/balancer-deployments/tree/master/action-ids).

For record, the contents of [results\_address\_sorted.md](https://github.com/BalancerMaxis/multisig-ops/tree/staging/BIPs/2023-W28/BIP-353/results_address_sorted.md) are printed here:

| deployment | chain | function | role | caller | caller\_address |
| --- | --- | --- | --- | --- | --- |
| 20230711-composable-stable-pool-v5 | arbitrum | enableRecoveryMode() | 0xa6c4d4b9774fc0afef75aa08e9c80377e0b5e5be609a4dafefe381cc580a9e7b | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xb5e56CC3d2e38e53b1166175C59e921A37cDC1E2 |
| 20230711-composable-stable-pool-v5 | arbitrum | setSwapFeePercentage(uint256) | 0xfab324385696857b52130b135e7e81f8b7f34382c9b27f254b6bca9a70fe0784 | multisigs/lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230711-composable-stable-pool-v5 | arbitrum | startAmplificationParameterUpdate(uint256,uint256) | 0x3be753be2ced552d75d5556694d2012e157294f50103c95273191fb5a0209481 | multisigs/lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230711-composable-stable-pool-v5 | arbitrum | stopAmplificationParameterUpdate() | 0x9d2042bf873d984ff8ce2661c7f5854078b8bbf1d618d0509ec379533d3ba9af | multisigs/lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230711-composable-stable-pool-v5 | arbitrum | disable() | 0x063bbaf4b25095681176c8be04d41958e40ee88e0a6fe895a8d225cda9bd64ad | multisigs/emergency | 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D |
| 20230711-composable-stable-pool-v5 | arbitrum | disableRecoveryMode() | 0xc0255b53e66bf2965d8fbd2af1cec52f34060d539ff8dd3c96a8d6aaa678d109 | multisigs/emergency | 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D |
| 20230711-composable-stable-pool-v5 | arbitrum | enableRecoveryMode() | 0xa6c4d4b9774fc0afef75aa08e9c80377e0b5e5be609a4dafefe381cc580a9e7b | multisigs/emergency | 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D |
| 20230711-composable-stable-pool-v5 | arbitrum | pause() | 0x998b893d641593fd3aa179e7641c4e0a7ead0e9f8d25df6d5637ab28d32e924e | multisigs/emergency | 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D |
| 20230711-composable-stable-pool-v5 | avalanche | disable() | 0x1426567817459896eea032971802f23ffedf7dbce9ba83c56000f1f9616a25ed | multisigs/emergency | 0x308f8d3536261C32c97D2f85ddc357f5cCdF33F0 |
| 20230711-composable-stable-pool-v5 | avalanche | disableRecoveryMode() | 0xffb70f4f9562b3a5f8e82e3c9eeb43b6769d1af1086819e6881cb0456404ecc1 | multisigs/emergency | 0x308f8d3536261C32c97D2f85ddc357f5cCdF33F0 |
| 20230711-composable-stable-pool-v5 | avalanche | enableRecoveryMode() | 0x4fba353c4ff3db60adac7b39685b4c7079fa9c9080841748fc9ce74f8a1160b0 | multisigs/emergency | 0x308f8d3536261C32c97D2f85ddc357f5cCdF33F0 |
| 20230711-composable-stable-pool-v5 | avalanche | pause() | 0x2f33caac3ea80144501f854d7fc8870e770fe1ec5260b2f09d45014e4ae11b0c | multisigs/emergency | 0x308f8d3536261C32c97D2f85ddc357f5cCdF33F0 |
| 20230711-composable-stable-pool-v5 | avalanche | setSwapFeePercentage(uint256) | 0x846447d11e52871f13911642f2df294a08a10c704fd3746ee2b8e99ef3dd802a | multisigs/lm | 0x326A7778DB9B741Cb2acA0DE07b9402C7685dAc6 |
| 20230711-composable-stable-pool-v5 | avalanche | startAmplificationParameterUpdate(uint256,uint256) | 0x61422cbfc16cfb61b82397377ab5165c6755ee7466a24630f4027d79453e83e5 | multisigs/lm | 0x326A7778DB9B741Cb2acA0DE07b9402C7685dAc6 |
| 20230711-composable-stable-pool-v5 | avalanche | stopAmplificationParameterUpdate() | 0x28dcd620872aaaed93f0363c5b4b038f3b1fcaba6944fb976d670390e56accd0 | multisigs/lm | 0x326A7778DB9B741Cb2acA0DE07b9402C7685dAc6 |
| 20230711-composable-stable-pool-v5 | avalanche | enableRecoveryMode() | 0x4fba353c4ff3db60adac7b39685b4c7079fa9c9080841748fc9ce74f8a1160b0 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x3b8cA519122CdD8efb272b0D3085453404B25bD0 |
| 20230711-composable-stable-pool-v5 | gnosis | setSwapFeePercentage(uint256) | 0x22627da2e7670aed1292420d5f0a2a49a7bd5992e0aef001702aa3285b5979b3 | multisigs/lm | 0x14969B55a675d13a1700F71A37511bc22D90155a |
| 20230711-composable-stable-pool-v5 | gnosis | startAmplificationParameterUpdate(uint256,uint256) | 0x86f2cd537c832d7823d7b51e7f52288e383427c8c41180561f0f8054bc216f56 | multisigs/lm | 0x14969B55a675d13a1700F71A37511bc22D90155a |
| 20230711-composable-stable-pool-v5 | gnosis | stopAmplificationParameterUpdate() | 0x0c055dc6cd1d6558914ef49c536f751680f8c413a3563007992801443bcca7a5 | multisigs/lm | 0x14969B55a675d13a1700F71A37511bc22D90155a |
| 20230711-composable-stable-pool-v5 | gnosis | enableRecoveryMode() | 0x73c3332de64a6f7b137bea3255a221d779cc0f170ea4892ff0581faf799230ff | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68 |
| 20230711-composable-stable-pool-v5 | gnosis | disable() | 0x3dd110fd101a1be6115ceb811a85535de6c9c019360c7d67c022c48a3dd685d9 | multisigs/emergency | 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962 |
| 20230711-composable-stable-pool-v5 | gnosis | disableRecoveryMode() | 0x8f33b1eaf9e2f2523d32b89a23d1a83e1225eb96ef489fde9b81bc44c7e207c1 | multisigs/emergency | 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962 |
| 20230711-composable-stable-pool-v5 | gnosis | enableRecoveryMode() | 0x73c3332de64a6f7b137bea3255a221d779cc0f170ea4892ff0581faf799230ff | multisigs/emergency | 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962 |
| 20230711-composable-stable-pool-v5 | gnosis | pause() | 0x04221c483f49fe794f5ce394e0ffc086722e106b9fef863610ccfbe1a019b997 | multisigs/emergency | 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962 |
| 20230711-composable-stable-pool-v5 | mainnet | enableRecoveryMode() | 0x9a645ed7f1bf603a8f6a44b2227b47a0355b902e65abb9d45e60bbc7e220992f | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x1b300C86980a5195bCF49bD419A068D98dC133Db |
| 20230711-composable-stable-pool-v5 | mainnet | disable() | 0xceeb84f98e049989237e570ba87203572b1ba663061d817739b66a9fb08a7901 | multisigs/emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230711-composable-stable-pool-v5 | mainnet | disableRecoveryMode() | 0x004ed6bc39c7b1141c8d34bc8c481dde189197c700d070129e6f6a3cbbfdce9f | multisigs/emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230711-composable-stable-pool-v5 | mainnet | enableRecoveryMode() | 0x9a645ed7f1bf603a8f6a44b2227b47a0355b902e65abb9d45e60bbc7e220992f | multisigs/emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230711-composable-stable-pool-v5 | mainnet | pause() | 0xbb09fe1ad67eb7a320ad9131d81ea3835e51215410ea5d5866bc516003d06287 | multisigs/emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230711-composable-stable-pool-v5 | mainnet | setSwapFeePercentage(uint256) | 0x42bc3b76ebdb675c6f7836b464d27c7517e14b05dc08bb944a4837563fc805ca | multisigs/lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230711-composable-stable-pool-v5 | mainnet | startAmplificationParameterUpdate(uint256,uint256) | 0x6bf9f64e8755a240cd5604ab5cabd4a1eed020059be9a1a64be071859f023276 | multisigs/lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230711-composable-stable-pool-v5 | mainnet | stopAmplificationParameterUpdate() | 0xd5e70e51651eb5be66f83b01794f74b5dbb417b607bf0425c5c5d3aa7386b38b | multisigs/lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230711-composable-stable-pool-v5 | optimism | setSwapFeePercentage(uint256) | 0x167c1baf0159e423e633f0a68e1025918332919ade802b33759880576cb2c50d | multisigs/lm | 0x09Df1626110803C7b3b07085Ef1E053494155089 |
| 20230711-composable-stable-pool-v5 | optimism | startAmplificationParameterUpdate(uint256,uint256) | 0xadd685e44755d3d511a26b97a7c40f42354f1e494795ad163dd79e22da45026e | multisigs/lm | 0x09Df1626110803C7b3b07085Ef1E053494155089 |
| 20230711-composable-stable-pool-v5 | optimism | stopAmplificationParameterUpdate() | 0xdbfdeb1d2ce00232fda29f8069f731deb70f0e1438aa8a1e35e89eac02403c23 | multisigs/lm | 0x09Df1626110803C7b3b07085Ef1E053494155089 |
| 20230711-composable-stable-pool-v5 | optimism | enableRecoveryMode() | 0x7f42c77cb4b9f8e5f51b922886e6f62e00feaf246cccf2927a0f00dd3150e1ae | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x26743984e3357eFC59f2fd6C1aFDC310335a61c9 |
| 20230711-composable-stable-pool-v5 | optimism | disable() | 0x209075578b0c6819e5f117c0e9c4cafdfb4bac956e8ea969ff11fb444cd95b08 | multisigs/emergency | 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B |
| 20230711-composable-stable-pool-v5 | optimism | disableRecoveryMode() | 0xb4b8b756b9cc9f73e9debc41c8f8a805f6f964192d26d6f1bf764f147279bc8b | multisigs/emergency | 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B |
| 20230711-composable-stable-pool-v5 | optimism | enableRecoveryMode() | 0x7f42c77cb4b9f8e5f51b922886e6f62e00feaf246cccf2927a0f00dd3150e1ae | multisigs/emergency | 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B |
| 20230711-composable-stable-pool-v5 | optimism | pause() | 0xb4dacaceeadf349e2eaf81fae99db22f312f7b8d19bd3aa0aae4d74e8c40460a | multisigs/emergency | 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B |
| 20230711-composable-stable-pool-v5 | polygon | disable() | 0x740f4332364e3e7815877d3129b935f10ce37584e973ed33b93e793000a1c263 | multisigs/emergency | 0x3c58668054c299bE836a0bBB028Bee3aD4724846 |
| 20230711-composable-stable-pool-v5 | polygon | disableRecoveryMode() | 0xacd6e3cd60fe4741be79438b5d7599a59db6fe321838b1aafd090cb76ac6a5d0 | multisigs/emergency | 0x3c58668054c299bE836a0bBB028Bee3aD4724846 |
| 20230711-composable-stable-pool-v5 | polygon | enableRecoveryMode() | 0x2ac3edb051b1334473999eeea35bc4ff0f87e8c066b66f6940819629a2ccf820 | multisigs/emergency | 0x3c58668054c299bE836a0bBB028Bee3aD4724846 |
| 20230711-composable-stable-pool-v5 | polygon | pause() | 0x91ce64502d2ca1550ea11bbfcdc5a965e2646c09818313a851c0eeb71cedbb1d | multisigs/emergency | 0x3c58668054c299bE836a0bBB028Bee3aD4724846 |
| 20230711-composable-stable-pool-v5 | polygon | enableRecoveryMode() | 0x2ac3edb051b1334473999eeea35bc4ff0f87e8c066b66f6940819629a2ccf820 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x495F696430F4A51F7fcB98FbE68a9Cb7A07fB1bA |
| 20230711-composable-stable-pool-v5 | polygon | setSwapFeePercentage(uint256) | 0x8e9ee99533bd178c1573e352145db0eeb33e8722b92d1d6fbc1de799b41f180c | multisigs/lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230711-composable-stable-pool-v5 | polygon | startAmplificationParameterUpdate(uint256,uint256) | 0x38db2dc993d272984aa505f0b59a8b6aac970193c0e50bfa5e8ba503c053a2a5 | multisigs/lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230711-composable-stable-pool-v5 | polygon | stopAmplificationParameterUpdate() | 0xbb90aa662dea36fc9db5c97eafcf6a4379941e6e2675d8c1bc1416a42b77db25 | multisigs/lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230711-composable-stable-pool-v5 | zkevm | disable() | 0x0ebf042d38f8e1bb630c3010c686232d7334f90360a82eb23623fd01fbe8e656 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230711-composable-stable-pool-v5 | zkevm | disableRecoveryMode() | 0xcfd45e344ead8485b80a5f9da66791663c8306984e9c6dc12eda2ee747cce604 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230711-composable-stable-pool-v5 | zkevm | enableRecoveryMode() | 0x6fa5acf6e6e303c2d281bf1af5f4d83642a125c5a3308cdf67e956bec276b69e | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230711-composable-stable-pool-v5 | zkevm | pause() | 0xa5d55e5978cb5ab0a8b23eed8889931ca33b54522edde10e348f4f96d35f0b35 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230711-composable-stable-pool-v5 | zkevm | setSwapFeePercentage(uint256) | 0x04dd8b85ae9bff95ec24f18269d23bd2d04784d5f5d8b35261545b82ed754a85 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230711-composable-stable-pool-v5 | zkevm | startAmplificationParameterUpdate(uint256,uint256) | 0x1307ea331d8ab1feffafb967ddf20c66fd92ce496eda1de129a4608d4b40f313 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230711-composable-stable-pool-v5 | zkevm | stopAmplificationParameterUpdate() | 0xbd408e756684e5ea83089ee33aa05ce9410b392967bffc71c11fb394026e7a09 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230711-composable-stable-pool-v5 | zkevm | enableRecoveryMode() | 0x6fa5acf6e6e303c2d281bf1af5f4d83642a125c5a3308cdf67e956bec276b69e | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd |

## Risk Assessment

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

## References

[Balancer Deployments](https://github.com/balancer/balancer-deployments)  
[BAL Addresses](https://github.com/BalancerMaxis/bal_addresses)

---

<div class="post-metadata">

**Author:** ![Xeonus](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/xeonus/32/3621_2.png) [@Xeonus](https://forum.balancer.fi/u/Xeonus)\
**Post date:** [July 12, 2023, 8:04pm UTC](https://forum.balancer.fi/t/bip-353-grant-permissions-for-composable-stable-pool-factory-v5/4974/2 "2023-07-12T20:04:04Z")

</div>

[**https://snapshot.org/#/balancer.eth/proposal/0x42c6aa9444292fb9d9ee3f0045e851781e5fafd794f388e7422bf1ab2803c4d6**](https://snapshot.org/#/balancer.eth/proposal/0x42c6aa9444292fb9d9ee3f0045e851781e5fafd794f388e7422bf1ab2803c4d6)
