[BIP-613] Wire up permissions and initial configuration for Mode and Fraxtal chains

Payload PR - BIP-613

Background

This BIP is to add permissions to the Balancer Multisigs as described in the payload PR linked above in order to enable the protocol to operate on Fraxtal and Mode.

It is similar to other permissions BIPs such as BIP-388 for Base and BIP-318 for AVAX.

Specifications

This BIP includes a number of payload files that perform various functions required to get a chain up and running. The payloads can be found with reports in the PR linked above, and are described in the tables below.

The transaction details for 00fraxtal.json and 00mode.json were generated by this script with inputs and outputs in this directory. These files were amended with transactions to set protocol fee percentages to 50% after generation.

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.
00chainname.json Transaction Payloads to invoke the permissions changes described above per chain. Also sets protcool fees to 50% on swap and yield.
BIP-613B-chainname.json Adds the gauge factory to the psuedominter on both chains
BIP-613C-chainname.json Configures the AuthorizorAdapter on both chains

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-deployments.

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

deployment function role chain caller caller_address
20220725-protocol-fee-percentages-provider setFeeTypePercentage(uint256,uint256) 0x6a0dbf850b77efe39084cc09b1e400307ad6949c5b87efdec8381b88592862fa fraxtal multisigs/dao 0x4f22C2784Cbd2B24a172566491Ee73fee1A63c2e
20230320-weighted-pool-v4 enableRecoveryMode() 0x55183eaafc9e607c22ca713ce26b115fe0e7e47216af41fcec2f0fff0d6f622a fraxtal 20221123-pool-recovery-helper/PoolRecoveryHelper 0x76578ecf9a141296Ec657847fb45B0585bCDa3a6
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x73c3332de64a6f7b137bea3255a221d779cc0f170ea4892ff0581faf799230ff fraxtal 20221123-pool-recovery-helper/PoolRecoveryHelper 0x76578ecf9a141296Ec657847fb45B0585bCDa3a6
20230411-managed-pool-v2 enableRecoveryMode() 0x1d087bf5277f83a51abd0bb650d0f671ec1075c10fc740f941334329621bb89d fraxtal 20221123-pool-recovery-helper/PoolRecoveryHelper 0x76578ecf9a141296Ec657847fb45B0585bCDa3a6
20210418-vault withdrawCollectedFees(address,uint256,address) 0xb2b6e48fa160a7c887d9d7a68b6a9bb9d47d4953d33e07f3a39e175d75e97796 fraxtal 20220517-protocol-fee-withdrawer/ProtocolFeesWithdrawer 0x85a80afee867aDf27B50BdB7b76DA70f1E853062
20230320-weighted-pool-v4 setSwapFeePercentage(uint256) 0x2ae3adc781b5bd1b6741f6a0d64c69c177a309fa771c818a298f437b11e338a9 fraxtal multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x22627da2e7670aed1292420d5f0a2a49a7bd5992e0aef001702aa3285b5979b3 fraxtal multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20240223-composable-stable-pool-v6 startAmplificationParameterUpdate(uint256,uint256) 0x86f2cd537c832d7823d7b51e7f52288e383427c8c41180561f0f8054bc216f56 fraxtal multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20240223-composable-stable-pool-v6 stopAmplificationParameterUpdate() 0x0c055dc6cd1d6558914ef49c536f751680f8c413a3563007992801443bcca7a5 fraxtal multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20230316-child-chain-gauge-factory-v2 add_reward(address,address) 0x5136d1203b14ba22a937b7e444c8af4b759cc078fda17daabcc62cb16d44f770 fraxtal multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20220517-protocol-fee-withdrawer withdrawCollectedFees(address,uint256,address) 0x0e9dc9cb7f6c04b4bd6a3a1454fea541139560e67c2305a90fa5021b5a9654a6 fraxtal multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20221123-pool-recovery-helper removePoolFactory(address) 0xe59f99daac75c9e44d591c49a65423101c290813a1ebd1ef8833a4dab984fa9a fraxtal multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20221123-pool-recovery-helper addPoolFactory(address) 0x8bd6c78035cf14d9a9eee5f76434919f54549515ffeb33ef262637ace4623751 fraxtal multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20230223-protocol-id-registry registerProtocolId(uint256,string) 0xafaf4ce764706ff75bea937f87b0d04970292af6c75a3e1bc4045bb9777dfa65 fraxtal multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20230223-protocol-id-registry renameProtocolId(uint256,string) 0x3ebf880359d778f39e7be152c0f9e08ca720deb5fec5c8d1f452538638a298db fraxtal multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20230320-weighted-pool-v4 pause() 0x9fca6ce6b2733f09e22be866cbbfc8b9b4b6822e7ff1e1c9b5c10895e2bbb6b0 fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20230320-weighted-pool-v4 disable() 0xf27a3cfffd6082308886cb5ef66425202d4b3180e84c6852d7d8109b4228a5ec fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20230320-weighted-pool-v4 enableRecoveryMode() 0x55183eaafc9e607c22ca713ce26b115fe0e7e47216af41fcec2f0fff0d6f622a fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20240223-composable-stable-pool-v6 pause() 0x04221c483f49fe794f5ce394e0ffc086722e106b9fef863610ccfbe1a019b997 fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20240223-composable-stable-pool-v6 disable() 0x3dd110fd101a1be6115ceb811a85535de6c9c019360c7d67c022c48a3dd685d9 fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x73c3332de64a6f7b137bea3255a221d779cc0f170ea4892ff0581faf799230ff fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20230411-managed-pool-v2 pause() 0xda3af9541f52be1def53d54294a906c129ad5721f0b79b6a7efa9d0b6ed49de5 fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20230411-managed-pool-v2 disable() 0xbd92af6a2dfb24acf76fcff3ee827e4d13aceb26a57d95e47b90581760c41049 fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20230411-managed-pool-v2 enableRecoveryMode() 0x1d087bf5277f83a51abd0bb650d0f671ec1075c10fc740f941334329621bb89d fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20210418-vault setPaused(bool) 0xb5593fe09464f360ecf835d5b9319ce69900ae1b29d13844b73c250b1f5f92fb fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20220517-protocol-fee-withdrawer denylistToken(address) 0x3d2eef14850cbbadfbbe943f0365f71562f347a7f22272c6fde14bc3b2e8890b fraxtal multisigs/emergency 0xC66d0Ba27b8309D27cCa70064dfb40b73DB6de9E
20210418-vault exitPool(bytes32,address,address,(address,uint256,bytes,bool)) 0xc149e88b59429ded7f601ab52ecd62331cac006ae07c16543439ed138dcb8d34 fraxtal 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault joinPool(bytes32,address,address,(address,uint256,bytes,bool)) 0x78ad1b68d148c070372f8643c4648efbb63c6a8a338f3c24714868e791367653 fraxtal 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault batchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes),address,(address,bool,address,bool),int256,uint256) 0x1282ab709b2b70070f829c46bc36f76b32ad4989fecb2fcb09a1b3ce00bbfc30 fraxtal 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault manageUserBalance((uint8,address,uint256,address,address)) 0xeba777d811cd36c06d540d7ff2ed18ed042fd67bbf7c9afcf88c818c7ee6b498 fraxtal 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault setRelayerApproval(address,address,bool) 0x0014a06d322ff07fcc02b12f93eb77bb76e28cdee4fc0670b9dec98d24bbfec8 fraxtal 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault swap((bytes32,uint8,address,address,uint256,bytes),(address,bool,address,bool),uint256,uint256) 0x7b8a1d293670124924a0f532213753b89db10bde737249d4540e9a03657d1aff fraxtal 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault setSwapFeePercentage(uint256) 0xb28b769768735d011b267f781c3be90bce51d5059ba015bc7a28b3e882fb2083 fraxtal 20220725-protocol-fee-percentages-provider/ProtocolFeePercentagesProvider 0xf23b4DB826DbA14c0e857029dfF076b1c0264843
20210418-vault setFlashLoanFeePercentage(uint256) 0xbe2a180d5cc5d803a8eec4cea569989fc1c593d7eeadd1f262f360a68b0e842e fraxtal 20220725-protocol-fee-percentages-provider/ProtocolFeePercentagesProvider 0xf23b4DB826DbA14c0e857029dfF076b1c0264843
20230320-weighted-pool-v4 enableRecoveryMode() 0xf0136d1b61d53c1164668375458dd86685a88c5324271349ace94b5f2743a932 mode 20221123-pool-recovery-helper/PoolRecoveryHelper 0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8
20240223-composable-stable-pool-v6 enableRecoveryMode() 0xccaf05adf78d1e0bda037c9eaa020571023c007befc81506bbe8ae647cdf260c mode 20221123-pool-recovery-helper/PoolRecoveryHelper 0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8
20230411-managed-pool-v2 enableRecoveryMode() 0x7f42c77cb4b9f8e5f51b922886e6f62e00feaf246cccf2927a0f00dd3150e1ae mode 20221123-pool-recovery-helper/PoolRecoveryHelper 0x4132f7AcC9dB7A6cF7BE2Dd3A9DC8b30C7E6E6c8
20220725-protocol-fee-percentages-provider setFeeTypePercentage(uint256,uint256) 0x1c81700c4527c26bb9aa170d0053c053b25de1492f19267ac6be7f8c62ef5569 mode multisigs/dao 0x4f22C2784Cbd2B24a172566491Ee73fee1A63c2e
20230320-weighted-pool-v4 pause() 0x7533f5ec889e599162d5b62c7931b402430fe4e92f30ca02054986fc9ba5f0d5 mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20230320-weighted-pool-v4 disable() 0xd9801dfe2a5b9b3b528585abebb08cd61b35502437c6bec85414ff7aaa387f84 mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20230320-weighted-pool-v4 enableRecoveryMode() 0xf0136d1b61d53c1164668375458dd86685a88c5324271349ace94b5f2743a932 mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20240223-composable-stable-pool-v6 pause() 0x7610899afab87ac343d3033932882e61b78ae3df6c6ca132e39b607f1761c624 mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20240223-composable-stable-pool-v6 disable() 0x4d30cbc2e28f426257db0dd64beff2e6fd04e66b7453e947fecc1cf4d0b4eef7 mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20240223-composable-stable-pool-v6 enableRecoveryMode() 0xccaf05adf78d1e0bda037c9eaa020571023c007befc81506bbe8ae647cdf260c mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20230411-managed-pool-v2 pause() 0xb4dacaceeadf349e2eaf81fae99db22f312f7b8d19bd3aa0aae4d74e8c40460a mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20230411-managed-pool-v2 disable() 0x209075578b0c6819e5f117c0e9c4cafdfb4bac956e8ea969ff11fb444cd95b08 mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20230411-managed-pool-v2 enableRecoveryMode() 0x7f42c77cb4b9f8e5f51b922886e6f62e00feaf246cccf2927a0f00dd3150e1ae mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20210418-vault setPaused(bool) 0xb5593fe09464f360ecf835d5b9319ce69900ae1b29d13844b73c250b1f5f92fb mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20220517-protocol-fee-withdrawer denylistToken(address) 0xb402f1c527ae841a6ab9272b0b11576bb706145b9e1857103b96b31606cb995a mode multisigs/emergency 0x66C4b8Ba38a7B57495b7D0581f25784E629516c2
20210418-vault setSwapFeePercentage(uint256) 0xb28b769768735d011b267f781c3be90bce51d5059ba015bc7a28b3e882fb2083 mode 20220725-protocol-fee-percentages-provider/ProtocolFeePercentagesProvider 0x85a80afee867aDf27B50BdB7b76DA70f1E853062
20210418-vault setFlashLoanFeePercentage(uint256) 0xbe2a180d5cc5d803a8eec4cea569989fc1c593d7eeadd1f262f360a68b0e842e mode 20220725-protocol-fee-percentages-provider/ProtocolFeePercentagesProvider 0x85a80afee867aDf27B50BdB7b76DA70f1E853062
20210418-vault withdrawCollectedFees(address,uint256,address) 0xb2b6e48fa160a7c887d9d7a68b6a9bb9d47d4953d33e07f3a39e175d75e97796 mode 20220517-protocol-fee-withdrawer/ProtocolFeesWithdrawer 0x9Ac3E70dB606659Bf32D4BdFbb687AD193FD1F5B
20230320-weighted-pool-v4 setSwapFeePercentage(uint256) 0xa1d496e6430b89d0d1db0f2a465fa90c6869e0fa261764f9ded0fc763c7fe5a6 mode multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0xa78f1cb63d3f446e1e9b8487adb64f8eb62fb54ea65fcacb2c71bd3984818985 mode multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20240223-composable-stable-pool-v6 startAmplificationParameterUpdate(uint256,uint256) 0xe14e689f3fefda81a75d35b8e900ec0af04143ad3c43dfc6f460cfb0a45815f6 mode multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20240223-composable-stable-pool-v6 stopAmplificationParameterUpdate() 0x9a098720ece757a23df7742e3f16c6ad6e0610120f10c8edbd6ac53cd9b7c951 mode multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20230316-child-chain-gauge-factory-v2 add_reward(address,address) 0xf27822b70ee081744165c05eea053ce08242fb70b8c76d0839da1cf7a4f5fa01 mode multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20220517-protocol-fee-withdrawer withdrawCollectedFees(address,uint256,address) 0x000dfb61af4938ab97859cfdca0fcf16419f15e36c90216b41d5e38d72ef208e mode multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20221123-pool-recovery-helper removePoolFactory(address) 0x8cda99fc04bda5395d59be6ecac7c4311f4b7fd26fdc0a111934a1aeb5c4637f mode multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20221123-pool-recovery-helper addPoolFactory(address) 0x921076734257eb232f70b5aff2cae0f998b4e1aa7a55ae3a0af1ce8629c33da9 mode multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20230223-protocol-id-registry registerProtocolId(uint256,string) 0xcdf8a72988961264bb6330f6907f1a0833ad472cbc1d9522cc8e23d8b6e7fbb9 mode multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20230223-protocol-id-registry renameProtocolId(uint256,string) 0xb484eabe5a2eb23a030770c8418e6b7ac968a740108f25f9360bc2bae2c41e4c mode multisigs/lm 0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e
20210418-vault exitPool(bytes32,address,address,(address,uint256,bytes,bool)) 0xc149e88b59429ded7f601ab52ecd62331cac006ae07c16543439ed138dcb8d34 mode 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault joinPool(bytes32,address,address,(address,uint256,bytes,bool)) 0x78ad1b68d148c070372f8643c4648efbb63c6a8a338f3c24714868e791367653 mode 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault batchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes),address,(address,bool,address,bool),int256,uint256) 0x1282ab709b2b70070f829c46bc36f76b32ad4989fecb2fcb09a1b3ce00bbfc30 mode 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault manageUserBalance((uint8,address,uint256,address,address)) 0xeba777d811cd36c06d540d7ff2ed18ed042fd67bbf7c9afcf88c818c7ee6b498 mode 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault setRelayerApproval(address,address,bool) 0x0014a06d322ff07fcc02b12f93eb77bb76e28cdee4fc0670b9dec98d24bbfec8 mode 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D
20210418-vault swap((bytes32,uint8,address,address,uint256,bytes),(address,bool,address,bool),uint256,uint256) 0x7b8a1d293670124924a0f532213753b89db10bde737249d4540e9a03657d1aff mode 20231031-batch-relayer-v6/BalancerRelayer 0xb541765F540447646A9545E0A4800A0Bacf9E13D

Risk Assessment

This is standard operating procedure for new chains. Detailed review is important, but at the moment the protocol is not active on these chains and there is no risk.

References

Balancer Deployments
BAL Addresses

2 Likes

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