diff --git a/contracts/zero-ex/contracts/src/transformers/bridges/ArbitrumBridgeAdapter.sol b/contracts/zero-ex/contracts/src/transformers/bridges/ArbitrumBridgeAdapter.sol index 4d4eb0a6b5..70714bb565 100644 --- a/contracts/zero-ex/contracts/src/transformers/bridges/ArbitrumBridgeAdapter.sol +++ b/contracts/zero-ex/contracts/src/transformers/bridges/ArbitrumBridgeAdapter.sol @@ -27,6 +27,7 @@ import "./mixins/MixinGMX.sol"; import "./mixins/MixinNerve.sol"; import "./mixins/MixinUniswapV3.sol"; import "./mixins/MixinUniswapV2.sol"; +import "./mixins/MixinWOOFi.sol"; import "./mixins/MixinZeroExBridge.sol"; contract ArbitrumBridgeAdapter is @@ -41,6 +42,7 @@ contract ArbitrumBridgeAdapter is MixinNerve, MixinUniswapV3, MixinUniswapV2, + MixinWOOFi, MixinZeroExBridge { constructor(IEtherTokenV06 weth) public MixinCurve(weth) MixinAaveV3(true) {} @@ -108,6 +110,11 @@ contract ArbitrumBridgeAdapter is return (0, true); } boughtAmount = _tradeAaveV3(sellToken, buyToken, sellAmount, order.bridgeData); + } else if (protocolId == BridgeProtocols.WOOFI) { + if (dryRun) { + return (0, true); + } + boughtAmount = _tradeWOOFi(sellToken, buyToken, sellAmount, order.bridgeData); } emit BridgeFill(order.source, sellToken, buyToken, sellAmount, boughtAmount); diff --git a/contracts/zero-ex/contracts/src/transformers/bridges/OptimismBridgeAdapter.sol b/contracts/zero-ex/contracts/src/transformers/bridges/OptimismBridgeAdapter.sol index c5a4115ed5..502646d785 100644 --- a/contracts/zero-ex/contracts/src/transformers/bridges/OptimismBridgeAdapter.sol +++ b/contracts/zero-ex/contracts/src/transformers/bridges/OptimismBridgeAdapter.sol @@ -25,6 +25,7 @@ import "./mixins/MixinNerve.sol"; import "./mixins/MixinSolidly.sol"; import "./mixins/MixinSynthetix.sol"; import "./mixins/MixinUniswapV3.sol"; +import "./mixins/MixinWOOFi.sol"; import "./mixins/MixinZeroExBridge.sol"; contract OptimismBridgeAdapter is @@ -37,6 +38,7 @@ contract OptimismBridgeAdapter is MixinSynthetix, MixinUniswapV3, MixinSolidly, + MixinWOOFi, MixinZeroExBridge { constructor(IEtherTokenV06 weth) public MixinCurve(weth) MixinAaveV3(true) {} @@ -95,6 +97,11 @@ contract OptimismBridgeAdapter is return (0, true); } boughtAmount = _tradeAaveV3(sellToken, buyToken, sellAmount, order.bridgeData); + } else if (protocolId == BridgeProtocols.WOOFI) { + if (dryRun) { + return (0, true); + } + boughtAmount = _tradeWOOFi(sellToken, buyToken, sellAmount, order.bridgeData); } emit BridgeFill(order.source, sellToken, buyToken, sellAmount, boughtAmount); diff --git a/packages/contract-addresses/CHANGELOG.json b/packages/contract-addresses/CHANGELOG.json index a3c0057514..732860eaf0 100644 --- a/packages/contract-addresses/CHANGELOG.json +++ b/packages/contract-addresses/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "8.0.3", + "changes": [ + { + "note": "Upgrade Arbitrum FillQuoteTransformer to support Woofi", + "pr": 653 + } + ] + }, { "timestamp": 1675105183, "version": "8.0.2", diff --git a/packages/contract-addresses/addresses.json b/packages/contract-addresses/addresses.json index 505319d8ce..3d0be6ee44 100644 --- a/packages/contract-addresses/addresses.json +++ b/packages/contract-addresses/addresses.json @@ -248,7 +248,7 @@ "wethTransformer": "0x10e968968f49dd66a5efeebbb2edcb9c49c4fc49", "payTakerTransformer": "0xd81e65fc9bb7323bdbef8b2cdddd3b83fe41d630", "affiliateFeeTransformer": "0x970e318b8f074c20bf0cee06970f01dc7a761e50", - "fillQuoteTransformer": "0xaec6610c9069d6b7d604a5b0b3c1f6661489d0e1", + "fillQuoteTransformer": "0x2142414a2c19b4dc4ec050eb1391d1d49d096da1", "positiveSlippageFeeTransformer": "0x20f935b037e8490d8027f2751f9452725eee01ad" } }