[BIP-509] Wire Up Batch Relayer V6

BIP-509: Wire Up Batch Relayer V6

PR with Payload


More than six months after BIP-216 (batch relayer v5), the last day of October saw the deployment of the newest batch relayer: v6 (changelog).

This BIP proposes to give it the necessary permissions on all chains it was deployed on, except for BSC and the testnets.


Payloads were generated by passing this config to the same script as for BIP-216.

Here is a detailed overview of the permissions that are being granted to the relayer:

function description
exitPool(bytes32,address,address,(address[],uint256[],bytes,bool)) Allow a relayer to remove liquidity from a pool on the user’s behalf. Relayer permissions notes
joinPool(bytes32,address,address,(address[],uint256[],bytes,bool)) Allow a relayer to add liquidity to a pool on the user’s behalf. Relayer permissions notes
batchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes)[],address[],(address,bool,address,bool),int256[],uint256) Allow a relayer to make a multihop trade or source liquidity from multiple pools on a users behalf. Relayer permissions notes
manageUserBalance((uint8,address,uint256,address,address)[]) Utilize existing Vault allowances and internal balances so that a user does not have to re-approve the new relayer for each token. Relayer permissions notes
setRelayerApproval(address,address,bool) Approve the relayer on the user’s behalf (user must still provide a signed message). Relayer permissions notes
swap((bytes32,uint8,address,address,uint256,bytes),(address,bool,address,bool),uint256,uint256) Allow a relayer to trade within a single pool on the user’s behalf. Relayer permissions notes

More output files can be found in this dir: BIPS/00batched/2023-W47/BIP-XXX/

The batch relayer has been reviewed by certora and we got the green light from the SC team to go to governance: https://snapshot.org/#/balancer.eth/proposal/0xd69a1a1096d234c91df484276a2230e3629a0725d5e5fc59785bd2f0fb8b152f