# \[BIP-285\] New Linear Pool Factory Permissions

**URL:** <https://forum.balancer.fi/t/bip-285-new-linear-pool-factory-permissions/4755>\
**Category:** General Proposal\
**Created:** [May 10, 2023, 12:29am UTC](https://forum.balancer.fi/t/bip-285-new-linear-pool-factory-permissions/4755 "2023-05-10T00:29:41Z")\
**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:** [May 10, 2023, 12:29am UTC](https://forum.balancer.fi/t/bip-285-new-linear-pool-factory-permissions/4755/1 "2023-05-10T00:29:41Z")

</div>

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

## Background

This new generation of linear pool factories was deployed to implement `create2` functionality. Otherwise there are no changes compared to the previous generation.

## English Specification

The transaction details were generated by [this script](https://github.com/BalancerMaxis/multisig-ops/blob/main/tools/python/gen_add_permissions_payload.py) with inputs and outputs in [this directory](https://github.com/BalancerMaxis/multisig-ops/tree/staging/BIPs/BIP-285)

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/BIP-285/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/BIP-285/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/BIP-285/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/BIP-285/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/BIP-285/) | 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/BIP-183/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](https://github.com/balancer-labs/balancer-v2-monorepo/tree/master/pkg/deployments/action-ids).

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

| deployment | chain | function | role | target | target\_address |
| --- | --- | --- | --- | --- | --- |
| 20230409-erc4626-linear-pool-v4 | arbitrum | enableRecoveryMode() | 0x04105ccf7d08e1e33d81a35a5ced3da44c613e81d864b1e22b1f3d54c5c37c8b | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xb5e56CC3d2e38e53b1166175C59e921A37cDC1E2 |
| 20230409-yearn-linear-pool-v2 | arbitrum | enableRecoveryMode() | 0xe92818032e649cabfbbf9828641b240d0c8a4ac9437a937f8e99c6b9f92d0fb8 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xb5e56CC3d2e38e53b1166175C59e921A37cDC1E2 |
| 20230410-aave-linear-pool-v5 | arbitrum | enableRecoveryMode() | 0xe5346592e9128cab4378e32315f1836824e56d46f901b9e6bafa554e72c9585a | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xb5e56CC3d2e38e53b1166175C59e921A37cDC1E2 |
| 20230409-erc4626-linear-pool-v4 | arbitrum | setSwapFeePercentage(uint256) | 0x430c53d88f8da9ce15fbc710a70e95543153a914f3fd38afd4ded87b4d32b273 | lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230409-yearn-linear-pool-v2 | arbitrum | setSwapFeePercentage(uint256) | 0xb74250de83c56252b0309fc8272338dbe9fac2232b39897af72c3df142d55e20 | lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230410-aave-linear-pool-v5 | arbitrum | setSwapFeePercentage(uint256) | 0xe2034e57b6e5473c618804022a6b6a56a83df1c39435869038988698f9137b73 | lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230409-erc4626-linear-pool-v4 | arbitrum | disable() | 0x5cdea6ae677e1afa17c4dba1377e544c6f83a79c1e3cc7341290a0e7d8a23251 | emergency | 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D |
| 20230409-erc4626-linear-pool-v4 | arbitrum | pause() | 0x1df6fb8357a54c9e82f443013986d6c1fdfdd7561c49f474fe9000fa1ddfb5e1 | emergency | 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D |
| 20230409-yearn-linear-pool-v2 | arbitrum | disable() | 0x66db2fcfa4b70b33f43f7867dfaa73830a40a9c21793ab4a4181017cec69c0f4 | emergency | 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D |
| 20230409-yearn-linear-pool-v2 | arbitrum | pause() | 0x7da8797db7760574755019e2675d1f816315b7c76c7977ec6c618ffbc4f260b9 | emergency | 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D |
| 20230410-aave-linear-pool-v5 | arbitrum | disable() | 0x6b623ee459a550297f0b0660446eef4dbf89e9d7e9d29addbbe907763506089b | emergency | 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D |
| 20230410-aave-linear-pool-v5 | arbitrum | pause() | 0x2e3db35aff883a61c66722429d09c6fa8afb1b3fd23a906453a02c3ad7a5156c | emergency | 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D |
| 20230410-aave-linear-pool-v5 | gnosis | setSwapFeePercentage(uint256) | 0xebcf876ca20204aac10dbecae7d6f0e45424ffc906585668776d5726b64f464a | lm | 0x14969B55a675d13a1700F71A37511bc22D90155a |
| 20230410-aave-linear-pool-v5 | gnosis | enableRecoveryMode() | 0x7461fb1ee70d064228f527e7d349d2429d9abb1a2ec29524519c9dd586f8f3c6 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68 |
| 20230410-aave-linear-pool-v5 | gnosis | disable() | 0x540a18483d139c6574abe9cc2f83f7d983b9e06eba4f560be96ef9504d4c9208 | emergency | 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962 |
| 20230410-aave-linear-pool-v5 | gnosis | pause() | 0xa35728781c343f60b02e19dc90a50f0991daefdab1c5de541899d28dd065f7bf | emergency | 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962 |
| 20230409-erc4626-linear-pool-v4 | mainnet | enableRecoveryMode() | 0xbc3dae38c30f2686b160e7154a2d649e84222b9f9de4e3347380cd82f23771ad | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x1b300C86980a5195bCF49bD419A068D98dC133Db |
| 20230409-gearbox-linear-pool-v2 | mainnet | enableRecoveryMode() | 0x6576d422b86632e2199a13b9ed43bb27cfa9a1e2f521809e4a9efaa1853c5c1c | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x1b300C86980a5195bCF49bD419A068D98dC133Db |
| 20230409-yearn-linear-pool-v2 | mainnet | enableRecoveryMode() | 0x256eccbca05f769e9349017e92e50ee5d1801d9afbbaf9f6986f61d8ccfb6cb0 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x1b300C86980a5195bCF49bD419A068D98dC133Db |
| 20230410-aave-linear-pool-v5 | mainnet | enableRecoveryMode() | 0x4e4c0dff3668c7cab151f99058e4bb3470cdb320ea5c7584fdf29c1bef04a196 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x1b300C86980a5195bCF49bD419A068D98dC133Db |
| 20230410-silo-linear-pool-v2 | mainnet | enableRecoveryMode() | 0x034ee1ea95f848440061786bb02a338bc9a003951046d1386ab163bf1fb70192 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x1b300C86980a5195bCF49bD419A068D98dC133Db |
| 20230409-erc4626-linear-pool-v4 | mainnet | disable() | 0x3dcf6c9d1f7bcff6477a09e1a18ca76f56c83f7e055276096a5acdd3c24f022a | emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230409-erc4626-linear-pool-v4 | mainnet | pause() | 0x92740abcb256f64824759ca687fc8af1a6ba7900e201545f9b848d3e3daab488 | emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230409-gearbox-linear-pool-v2 | mainnet | disable() | 0x57b420cd0179ca826befca79e15b477a14fa8df7bd71e0bddbc60060e4d8de5c | emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230409-gearbox-linear-pool-v2 | mainnet | pause() | 0xc9ce9f716205eba29c6af3ed2bd373ffa9f597d05d26415731204217a539c2ba | emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230409-yearn-linear-pool-v2 | mainnet | disable() | 0x811fd661839b93538ac3d909ccceb9891e6b47ee6e71d0871fb62da2d3b484cc | emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230409-yearn-linear-pool-v2 | mainnet | pause() | 0x8b150ea30fbe0118f4af39209fe69ed20bcfde20eefb28ff25899e34c5f9f0f5 | emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230410-aave-linear-pool-v5 | mainnet | pause() | 0x6de4e265ea76d035e89a589a1a6a280934f6fc3ebb5d4cf453a2e589d0fdb4bc | emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230410-aave-linear-pool-v5 | mainnet | disable() | 0xcc2b10c657509434d44ea360695df848ccc5e8a27438dd62f0ae87b147224965 | emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230410-silo-linear-pool-v2 | mainnet | disable() | 0x821049bb6ef72deac25b0e490181aaefac3d90d182e80bca5c3f65f46efc4f5a | emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230410-silo-linear-pool-v2 | mainnet | pause() | 0x7b287abc448e5afd5a48345f9648865a2bbe004d466ea8d591e05682400ca48d | emergency | 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888 |
| 20230409-erc4626-linear-pool-v4 | mainnet | setSwapFeePercentage(uint256) | 0xd41187a1d52918991b8e886e7e02dadf9f3899ff8134eaa5aa4e8f6a81dec3ab | gauntletFeeSetter | 0xE4a8ed6c1D8d048bD29A00946BFcf2DB10E7923B |
| 20230409-gearbox-linear-pool-v2 | mainnet | setSwapFeePercentage(uint256) | 0x0724bafdb03f8d97bf0372ebba73684e8da490a627cc54840323b96c0f8a54d7 | gauntletFeeSetter | 0xE4a8ed6c1D8d048bD29A00946BFcf2DB10E7923B |
| 20230409-yearn-linear-pool-v2 | mainnet | setSwapFeePercentage(uint256) | 0x479aa48247a9811620c0d80d6cb740bbc8d9424523952ff24ff7e07f3d10f955 | gauntletFeeSetter | 0xE4a8ed6c1D8d048bD29A00946BFcf2DB10E7923B |
| 20230410-aave-linear-pool-v5 | mainnet | setSwapFeePercentage(uint256) | 0x24d685d4b3197ce4efaf94536add3319b1d449f6501b4e29b5365aa0a4defa71 | gauntletFeeSetter | 0xE4a8ed6c1D8d048bD29A00946BFcf2DB10E7923B |
| 20230410-silo-linear-pool-v2 | mainnet | setSwapFeePercentage(uint256) | 0xf7939f1289f961848c0a92aaeff509b21549a13102c87a1c7925a11395ae7d91 | gauntletFeeSetter | 0xE4a8ed6c1D8d048bD29A00946BFcf2DB10E7923B |
| 20230409-erc4626-linear-pool-v4 | optimism | setSwapFeePercentage(uint256) | 0x430c53d88f8da9ce15fbc710a70e95543153a914f3fd38afd4ded87b4d32b273 | lm | 0x09Df1626110803C7b3b07085Ef1E053494155089 |
| 20230409-yearn-linear-pool-v2 | optimism | setSwapFeePercentage(uint256) | 0xb74250de83c56252b0309fc8272338dbe9fac2232b39897af72c3df142d55e20 | lm | 0x09Df1626110803C7b3b07085Ef1E053494155089 |
| 20230410-aave-linear-pool-v5 | optimism | setSwapFeePercentage(uint256) | 0xe2034e57b6e5473c618804022a6b6a56a83df1c39435869038988698f9137b73 | lm | 0x09Df1626110803C7b3b07085Ef1E053494155089 |
| 20230409-erc4626-linear-pool-v4 | optimism | enableRecoveryMode() | 0x04105ccf7d08e1e33d81a35a5ced3da44c613e81d864b1e22b1f3d54c5c37c8b | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x26743984e3357eFC59f2fd6C1aFDC310335a61c9 |
| 20230409-yearn-linear-pool-v2 | optimism | enableRecoveryMode() | 0xe92818032e649cabfbbf9828641b240d0c8a4ac9437a937f8e99c6b9f92d0fb8 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x26743984e3357eFC59f2fd6C1aFDC310335a61c9 |
| 20230410-aave-linear-pool-v5 | optimism | enableRecoveryMode() | 0xe5346592e9128cab4378e32315f1836824e56d46f901b9e6bafa554e72c9585a | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x26743984e3357eFC59f2fd6C1aFDC310335a61c9 |
| 20230409-erc4626-linear-pool-v4 | optimism | disable() | 0x5cdea6ae677e1afa17c4dba1377e544c6f83a79c1e3cc7341290a0e7d8a23251 | emergency | 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B |
| 20230409-erc4626-linear-pool-v4 | optimism | pause() | 0x1df6fb8357a54c9e82f443013986d6c1fdfdd7561c49f474fe9000fa1ddfb5e1 | emergency | 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B |
| 20230409-yearn-linear-pool-v2 | optimism | disable() | 0x66db2fcfa4b70b33f43f7867dfaa73830a40a9c21793ab4a4181017cec69c0f4 | emergency | 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B |
| 20230409-yearn-linear-pool-v2 | optimism | pause() | 0x7da8797db7760574755019e2675d1f816315b7c76c7977ec6c618ffbc4f260b9 | emergency | 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B |
| 20230410-aave-linear-pool-v5 | optimism | disable() | 0x6b623ee459a550297f0b0660446eef4dbf89e9d7e9d29addbbe907763506089b | emergency | 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B |
| 20230410-aave-linear-pool-v5 | optimism | pause() | 0x2e3db35aff883a61c66722429d09c6fa8afb1b3fd23a906453a02c3ad7a5156c | emergency | 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B |
| 20230409-erc4626-linear-pool-v4 | polygon | disable() | 0x04add3612b5eacdfcdfd76721e5a8c64fa27447ca2e7471d7a8eb367740462e0 | emergency | 0x3c58668054c299bE836a0bBB028Bee3aD4724846 |
| 20230409-erc4626-linear-pool-v4 | polygon | pause() | 0x900d676b02cc16ed6fb55deda4c1fd5d404fe928336a39685fe16808565a1ba5 | emergency | 0x3c58668054c299bE836a0bBB028Bee3aD4724846 |
| 20230409-yearn-linear-pool-v2 | polygon | pause() | 0x6de4e265ea76d035e89a589a1a6a280934f6fc3ebb5d4cf453a2e589d0fdb4bc | emergency | 0x3c58668054c299bE836a0bBB028Bee3aD4724846 |
| 20230409-yearn-linear-pool-v2 | polygon | disable() | 0xcc2b10c657509434d44ea360695df848ccc5e8a27438dd62f0ae87b147224965 | emergency | 0x3c58668054c299bE836a0bBB028Bee3aD4724846 |
| 20230410-aave-linear-pool-v5 | polygon | disable() | 0x2ae506b369e2f6eedec062e22693d622cc0ac89b1430f29816fc5513156223c6 | emergency | 0x3c58668054c299bE836a0bBB028Bee3aD4724846 |
| 20230410-aave-linear-pool-v5 | polygon | pause() | 0x5ecef7668309699a26afb3349f1d64db694a6d211d7306128795d0f409d08076 | emergency | 0x3c58668054c299bE836a0bBB028Bee3aD4724846 |
| 20230409-erc4626-linear-pool-v4 | polygon | enableRecoveryMode() | 0x0ab8486492d2c210b3e25cbe0edc6da056cb86a87d97e1505c437891d0feeb8a | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x495F696430F4A51F7fcB98FbE68a9Cb7A07fB1bA |
| 20230409-yearn-linear-pool-v2 | polygon | enableRecoveryMode() | 0x4e4c0dff3668c7cab151f99058e4bb3470cdb320ea5c7584fdf29c1bef04a196 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x495F696430F4A51F7fcB98FbE68a9Cb7A07fB1bA |
| 20230410-aave-linear-pool-v5 | polygon | enableRecoveryMode() | 0x2702eaf4dd3129a963b411073e79e54b4810837c737bfa553cf21c7628be4564 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0x495F696430F4A51F7fcB98FbE68a9Cb7A07fB1bA |
| 20230409-erc4626-linear-pool-v4 | polygon | setSwapFeePercentage(uint256) | 0xe1afc8536d46588e42d553c6d54fc45fa8a579ee70d6955bd4eda71cf8892c77 | lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230409-yearn-linear-pool-v2 | polygon | setSwapFeePercentage(uint256) | 0x24d685d4b3197ce4efaf94536add3319b1d449f6501b4e29b5365aa0a4defa71 | lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |
| 20230410-aave-linear-pool-v5 | polygon | setSwapFeePercentage(uint256) | 0x1969df6358bc97bc5e8735ef854618289d0135f964426f4f34d78eaa7d078a16 | lm | 0xc38c5f97B34E175FFd35407fc91a937300E33860 |

## Risk Assessment

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

## References

[Monorepo Deployment Addresses](https://github.com/balancer-labs/balancer-v2-monorepo/tree/master/pkg/deployments)

---

<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:** [May 10, 2023, 7:23pm UTC](https://forum.balancer.fi/t/bip-285-new-linear-pool-factory-permissions/4755/2 "2023-05-10T19:23:06Z")

</div>

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