0xBeb0009ACa35087ce7cCF11637E24dd1Aad3bf2A contract, which now settles some RFQ trades instead of going straight to BebopSettlement. The router is used for highly liquid tokens; BebopSettlement still handles multi-token swaps and less liquid tokens.
Do you need to migrate?
If your integration already reads these fields from the quote response, no changes are required. Confirm both:- Approvals. You approve the
approvalTargetfrom the quote response, not a hardcoded address. See Token approvals. - Broadcast. You send the returned
txobject as-is;tx.toalready targets the correct contract.
approvalTarget and tx from the quote response.
Reading the calldata
You don’t build the router calldata yourself. Bebop returns it ready to broadcast intx.data. If you want to decode it (for verification or logging), it’s a call to the router’s swap function:
| Parameter | Description |
|---|---|
exactAmount | Fill mode. > 0: exactIn, you send exactly this amount of fromToken. < 0: exactOut, you want exactly |exactAmount| of toToken after fees. == 0: use whatever fromToken balance the router holds. |
order | The signed order struct. fromAmount / toAmount define the quote ratio used for scaling. |
routerSignature | The router signer’s EIP-712 signature over the order. |
bebopPmmCalldata | The raw BebopSettlement.swapSingle / swapAggregate calldata the router wraps. |