BIP-509: Wire Up Batch Relayer V6
PR with Payload
TL;DR
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.
Specification
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/