diff --git a/contracts/zero-ex/contracts/src/transformers/bridges/BridgeAdapter.sol b/contracts/zero-ex/contracts/src/transformers/bridges/BridgeAdapter.sol index 60ecb0c183..0b8d5937e6 100644 --- a/contracts/zero-ex/contracts/src/transformers/bridges/BridgeAdapter.sol +++ b/contracts/zero-ex/contracts/src/transformers/bridges/BridgeAdapter.sol @@ -25,7 +25,6 @@ import "./BridgeProtocols.sol"; import "./mixins/MixinBalancer.sol"; import "./mixins/MixinBalancerV2.sol"; import "./mixins/MixinBancor.sol"; -import "./mixins/MixinClipper.sol"; import "./mixins/MixinCoFiX.sol"; import "./mixins/MixinCurve.sol"; import "./mixins/MixinCurveV2.sol"; @@ -51,7 +50,6 @@ contract BridgeAdapter is MixinBalancer, MixinBalancerV2, MixinBancor, - MixinClipper, MixinCoFiX, MixinCurve, MixinCurveV2, @@ -77,7 +75,6 @@ contract BridgeAdapter is MixinBalancer() MixinBalancerV2() MixinBancor(weth) - MixinClipper(weth) MixinCoFiX() MixinCurve(weth) MixinCurveV2() @@ -248,13 +245,6 @@ contract BridgeAdapter is sellAmount, order.bridgeData ); - } else if (protocolId == BridgeProtocols.CLIPPER) { - boughtAmount = _tradeClipper( - sellToken, - buyToken, - sellAmount, - order.bridgeData - ); } else { boughtAmount = _tradeZeroExBridge( sellToken, diff --git a/contracts/zero-ex/contracts/src/transformers/bridges/BridgeProtocols.sol b/contracts/zero-ex/contracts/src/transformers/bridges/BridgeProtocols.sol index 378857da21..acd0439e70 100644 --- a/contracts/zero-ex/contracts/src/transformers/bridges/BridgeProtocols.sol +++ b/contracts/zero-ex/contracts/src/transformers/bridges/BridgeProtocols.sol @@ -49,5 +49,5 @@ library BridgeProtocols { uint128 internal constant KYBERDMM = 19; uint128 internal constant CURVEV2 = 20; uint128 internal constant LIDO = 21; - uint128 internal constant CLIPPER = 22; + uint128 internal constant CLIPPER = 22; // Not used: Clipper is now using PLP interface } diff --git a/contracts/zero-ex/contracts/src/transformers/bridges/mixins/MixinClipper.sol b/contracts/zero-ex/contracts/src/transformers/bridges/mixins/MixinClipper.sol deleted file mode 100644 index f88a9eef0b..0000000000 --- a/contracts/zero-ex/contracts/src/transformers/bridges/mixins/MixinClipper.sol +++ /dev/null @@ -1,148 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -/* - - Copyright 2021 ZeroEx Intl. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -*/ - -pragma solidity ^0.6.5; -pragma experimental ABIEncoderV2; - -import "@0x/contracts-erc20/contracts/src/v06/LibERC20TokenV06.sol"; -import "@0x/contracts-erc20/contracts/src/v06/IERC20TokenV06.sol"; -import "@0x/contracts-erc20/contracts/src/v06/IEtherTokenV06.sol"; -import "../IBridgeAdapter.sol"; -import "../../../vendor/ILiquidityProvider.sol"; - -contract MixinClipper { - - using LibERC20TokenV06 for IERC20TokenV06; - - /// @dev Mainnet address of the WETH contract. - IEtherTokenV06 private immutable WETH; - - constructor(IEtherTokenV06 weth) - public - { - WETH = weth; - } - - function _tradeClipper( - IERC20TokenV06 sellToken, - IERC20TokenV06 buyToken, - uint256 sellAmount, - bytes memory bridgeData - ) - internal - returns (uint256 boughtAmount) - { - // We can only use ETH with Clipper, no WETH available - (ILiquidityProvider clipper, bytes memory auxiliaryData) = - abi.decode(bridgeData, (ILiquidityProvider, bytes)); - - if (sellToken == WETH) { - boughtAmount = _executeSellEthForToken( - clipper, - buyToken, - sellAmount, - auxiliaryData - ); - } else if (buyToken == WETH) { - boughtAmount = _executeSellTokenForEth( - clipper, - sellToken, - sellAmount, - auxiliaryData - ); - } else { - boughtAmount = _executeSellTokenForToken( - clipper, - sellToken, - buyToken, - sellAmount, - auxiliaryData - ); - } - - return boughtAmount; - } - - function _executeSellEthForToken( - ILiquidityProvider clipper, - IERC20TokenV06 buyToken, - uint256 sellAmount, - bytes memory auxiliaryData - ) - private - returns (uint256 boughtAmount) - { - // Clipper requires ETH and doesn't support WETH - WETH.withdraw(sellAmount); - boughtAmount = clipper.sellEthForToken{ value: sellAmount }( - buyToken, - address(this), - 1, - auxiliaryData - ); - } - - function _executeSellTokenForEth( - ILiquidityProvider clipper, - IERC20TokenV06 sellToken, - uint256 sellAmount, - bytes memory auxiliaryData - ) - private - returns (uint256 boughtAmount) - { - // Optimization: We can transfer the tokens into clipper rather than - // have an allowance updated - sellToken.compatTransfer(address(clipper), sellAmount); - - boughtAmount = clipper.sellTokenForEth( - sellToken, - payable(address(this)), - 1, - auxiliaryData - ); - - // we want WETH for possible future trades - WETH.deposit{ value: boughtAmount }(); - } - - function _executeSellTokenForToken( - ILiquidityProvider clipper, - IERC20TokenV06 sellToken, - IERC20TokenV06 buyToken, - uint256 sellAmount, - bytes memory auxiliaryData - ) - private - returns (uint256 boughtAmount) - { - // Optimization: We can transfer the tokens into clipper rather than - // have an allowance updated - sellToken.compatTransfer(address(clipper), sellAmount); - - boughtAmount = clipper.sellTokenForToken( - sellToken, - buyToken, - address(this), - 1, - auxiliaryData - ); - } -} diff --git a/contracts/zero-ex/package.json b/contracts/zero-ex/package.json index a1d6e48bbf..9e543a4004 100644 --- a/contracts/zero-ex/package.json +++ b/contracts/zero-ex/package.json @@ -43,7 +43,7 @@ "config": { "publicInterfaceContracts": "IZeroEx,ZeroEx,FullMigration,InitialMigration,IFlashWallet,IERC20Transformer,IOwnableFeature,ISimpleFunctionRegistryFeature,ITransformERC20Feature,FillQuoteTransformer,PayTakerTransformer,PositiveSlippageFeeTransformer,WethTransformer,OwnableFeature,SimpleFunctionRegistryFeature,TransformERC20Feature,AffiliateFeeTransformer,MetaTransactionsFeature,LogMetadataTransformer,BridgeAdapter,LiquidityProviderFeature,ILiquidityProviderFeature,NativeOrdersFeature,INativeOrdersFeature,FeeCollectorController,FeeCollector,CurveLiquidityProvider,BatchFillNativeOrdersFeature,IBatchFillNativeOrdersFeature,MultiplexFeature,IMultiplexFeature,OtcOrdersFeature,IOtcOrdersFeature", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually.", - "abis": "./test/generated-artifacts/@(AffiliateFeeTransformer|BatchFillNativeOrdersFeature|BootstrapFeature|BridgeAdapter|BridgeProtocols|CurveLiquidityProvider|FeeCollector|FeeCollectorController|FillQuoteTransformer|FixinCommon|FixinEIP712|FixinProtocolFees|FixinReentrancyGuard|FixinTokenSpender|FlashWallet|FullMigration|FundRecoveryFeature|IBatchFillNativeOrdersFeature|IBootstrapFeature|IBridgeAdapter|IERC20Bridge|IERC20Transformer|IFeature|IFlashWallet|IFundRecoveryFeature|ILiquidityProvider|ILiquidityProviderFeature|ILiquidityProviderSandbox|IMetaTransactionsFeature|IMooniswapPool|IMultiplexFeature|INativeOrdersEvents|INativeOrdersFeature|IOtcOrdersFeature|IOwnableFeature|IPancakeSwapFeature|ISimpleFunctionRegistryFeature|IStaking|ITestSimpleFunctionRegistryFeature|ITokenSpenderFeature|ITransformERC20Feature|IUniswapFeature|IUniswapV2Pair|IUniswapV3Feature|IUniswapV3Pool|IZeroEx|InitialMigration|LibBootstrap|LibCommonRichErrors|LibERC20Transformer|LibFeeCollector|LibLiquidityProviderRichErrors|LibMetaTransactionsRichErrors|LibMetaTransactionsStorage|LibMigrate|LibNativeOrder|LibNativeOrdersRichErrors|LibNativeOrdersStorage|LibOtcOrdersStorage|LibOwnableRichErrors|LibOwnableStorage|LibProxyRichErrors|LibProxyStorage|LibReentrancyGuardStorage|LibSignature|LibSignatureRichErrors|LibSimpleFunctionRegistryRichErrors|LibSimpleFunctionRegistryStorage|LibStorage|LibTransformERC20RichErrors|LibTransformERC20Storage|LibWalletRichErrors|LiquidityProviderFeature|LiquidityProviderSandbox|LogMetadataTransformer|MetaTransactionsFeature|MixinBalancer|MixinBalancerV2|MixinBancor|MixinClipper|MixinCoFiX|MixinCryptoCom|MixinCurve|MixinCurveV2|MixinDodo|MixinDodoV2|MixinKyber|MixinKyberDmm|MixinLido|MixinMStable|MixinMakerPSM|MixinMooniswap|MixinNerve|MixinOasis|MixinShell|MixinUniswap|MixinUniswapV2|MixinUniswapV3|MixinZeroExBridge|MooniswapLiquidityProvider|MultiplexFeature|MultiplexLiquidityProvider|MultiplexOtc|MultiplexRfq|MultiplexTransformERC20|MultiplexUniswapV2|MultiplexUniswapV3|NativeOrdersCancellation|NativeOrdersFeature|NativeOrdersInfo|NativeOrdersProtocolFees|NativeOrdersSettlement|OtcOrdersFeature|OwnableFeature|PancakeSwapFeature|PayTakerTransformer|PermissionlessTransformerDeployer|PositiveSlippageFeeTransformer|SimpleFunctionRegistryFeature|TestBridge|TestCallTarget|TestCurve|TestDelegateCaller|TestFeeCollectorController|TestFillQuoteTransformerBridge|TestFillQuoteTransformerExchange|TestFillQuoteTransformerHost|TestFixinProtocolFees|TestFixinTokenSpender|TestFullMigration|TestInitialMigration|TestLibNativeOrder|TestLibSignature|TestLiquidityProvider|TestMetaTransactionsNativeOrdersFeature|TestMetaTransactionsTransformERC20Feature|TestMigrator|TestMintTokenERC20Transformer|TestMintableERC20Token|TestMooniswap|TestNativeOrdersFeature|TestNoEthRecipient|TestOrderSignerRegistryWithContractWallet|TestPermissionlessTransformerDeployerSuicidal|TestPermissionlessTransformerDeployerTransformer|TestRfqOriginRegistration|TestSimpleFunctionRegistryFeatureImpl1|TestSimpleFunctionRegistryFeatureImpl2|TestStaking|TestTokenSpenderERC20Token|TestTransformERC20|TestTransformerBase|TestTransformerDeployerTransformer|TestTransformerHost|TestUniswapV2Factory|TestUniswapV2Pool|TestUniswapV3Factory|TestUniswapV3Feature|TestUniswapV3Pool|TestWeth|TestWethTransformerHost|TestZeroExFeature|TransformERC20Feature|Transformer|TransformerDeployer|UniswapFeature|UniswapV3Feature|WethTransformer|ZeroEx|ZeroExOptimized).json" + "abis": "./test/generated-artifacts/@(AffiliateFeeTransformer|BatchFillNativeOrdersFeature|BootstrapFeature|BridgeAdapter|BridgeProtocols|CurveLiquidityProvider|FeeCollector|FeeCollectorController|FillQuoteTransformer|FixinCommon|FixinEIP712|FixinProtocolFees|FixinReentrancyGuard|FixinTokenSpender|FlashWallet|FullMigration|FundRecoveryFeature|IBatchFillNativeOrdersFeature|IBootstrapFeature|IBridgeAdapter|IERC20Bridge|IERC20Transformer|IFeature|IFlashWallet|IFundRecoveryFeature|ILiquidityProvider|ILiquidityProviderFeature|ILiquidityProviderSandbox|IMetaTransactionsFeature|IMooniswapPool|IMultiplexFeature|INativeOrdersEvents|INativeOrdersFeature|IOtcOrdersFeature|IOwnableFeature|IPancakeSwapFeature|ISimpleFunctionRegistryFeature|IStaking|ITestSimpleFunctionRegistryFeature|ITokenSpenderFeature|ITransformERC20Feature|IUniswapFeature|IUniswapV2Pair|IUniswapV3Feature|IUniswapV3Pool|IZeroEx|InitialMigration|LibBootstrap|LibCommonRichErrors|LibERC20Transformer|LibFeeCollector|LibLiquidityProviderRichErrors|LibMetaTransactionsRichErrors|LibMetaTransactionsStorage|LibMigrate|LibNativeOrder|LibNativeOrdersRichErrors|LibNativeOrdersStorage|LibOtcOrdersStorage|LibOwnableRichErrors|LibOwnableStorage|LibProxyRichErrors|LibProxyStorage|LibReentrancyGuardStorage|LibSignature|LibSignatureRichErrors|LibSimpleFunctionRegistryRichErrors|LibSimpleFunctionRegistryStorage|LibStorage|LibTransformERC20RichErrors|LibTransformERC20Storage|LibWalletRichErrors|LiquidityProviderFeature|LiquidityProviderSandbox|LogMetadataTransformer|MetaTransactionsFeature|MixinBalancer|MixinBalancerV2|MixinBancor|MixinCoFiX|MixinCryptoCom|MixinCurve|MixinCurveV2|MixinDodo|MixinDodoV2|MixinKyber|MixinKyberDmm|MixinLido|MixinMStable|MixinMakerPSM|MixinMooniswap|MixinNerve|MixinOasis|MixinShell|MixinUniswap|MixinUniswapV2|MixinUniswapV3|MixinZeroExBridge|MooniswapLiquidityProvider|MultiplexFeature|MultiplexLiquidityProvider|MultiplexOtc|MultiplexRfq|MultiplexTransformERC20|MultiplexUniswapV2|MultiplexUniswapV3|NativeOrdersCancellation|NativeOrdersFeature|NativeOrdersInfo|NativeOrdersProtocolFees|NativeOrdersSettlement|OtcOrdersFeature|OwnableFeature|PancakeSwapFeature|PayTakerTransformer|PermissionlessTransformerDeployer|PositiveSlippageFeeTransformer|SimpleFunctionRegistryFeature|TestBridge|TestCallTarget|TestCurve|TestDelegateCaller|TestFeeCollectorController|TestFillQuoteTransformerBridge|TestFillQuoteTransformerExchange|TestFillQuoteTransformerHost|TestFixinProtocolFees|TestFixinTokenSpender|TestFullMigration|TestInitialMigration|TestLibNativeOrder|TestLibSignature|TestLiquidityProvider|TestMetaTransactionsNativeOrdersFeature|TestMetaTransactionsTransformERC20Feature|TestMigrator|TestMintTokenERC20Transformer|TestMintableERC20Token|TestMooniswap|TestNativeOrdersFeature|TestNoEthRecipient|TestOrderSignerRegistryWithContractWallet|TestPermissionlessTransformerDeployerSuicidal|TestPermissionlessTransformerDeployerTransformer|TestRfqOriginRegistration|TestSimpleFunctionRegistryFeatureImpl1|TestSimpleFunctionRegistryFeatureImpl2|TestStaking|TestTokenSpenderERC20Token|TestTransformERC20|TestTransformerBase|TestTransformerDeployerTransformer|TestTransformerHost|TestUniswapV2Factory|TestUniswapV2Pool|TestUniswapV3Factory|TestUniswapV3Feature|TestUniswapV3Pool|TestWeth|TestWethTransformerHost|TestZeroExFeature|TransformERC20Feature|Transformer|TransformerDeployer|UniswapFeature|UniswapV3Feature|WethTransformer|ZeroEx|ZeroExOptimized).json" }, "repository": { "type": "git", diff --git a/contracts/zero-ex/test/artifacts.ts b/contracts/zero-ex/test/artifacts.ts index 5e28180e9c..1b0b46fc75 100644 --- a/contracts/zero-ex/test/artifacts.ts +++ b/contracts/zero-ex/test/artifacts.ts @@ -84,7 +84,6 @@ import * as MetaTransactionsFeature from '../test/generated-artifacts/MetaTransa import * as MixinBalancer from '../test/generated-artifacts/MixinBalancer.json'; import * as MixinBalancerV2 from '../test/generated-artifacts/MixinBalancerV2.json'; import * as MixinBancor from '../test/generated-artifacts/MixinBancor.json'; -import * as MixinClipper from '../test/generated-artifacts/MixinClipper.json'; import * as MixinCoFiX from '../test/generated-artifacts/MixinCoFiX.json'; import * as MixinCryptoCom from '../test/generated-artifacts/MixinCryptoCom.json'; import * as MixinCurve from '../test/generated-artifacts/MixinCurve.json'; @@ -276,7 +275,6 @@ export const artifacts = { MixinBalancer: MixinBalancer as ContractArtifact, MixinBalancerV2: MixinBalancerV2 as ContractArtifact, MixinBancor: MixinBancor as ContractArtifact, - MixinClipper: MixinClipper as ContractArtifact, MixinCoFiX: MixinCoFiX as ContractArtifact, MixinCryptoCom: MixinCryptoCom as ContractArtifact, MixinCurve: MixinCurve as ContractArtifact, diff --git a/contracts/zero-ex/test/wrappers.ts b/contracts/zero-ex/test/wrappers.ts index 1a7c95b6d3..5af5690078 100644 --- a/contracts/zero-ex/test/wrappers.ts +++ b/contracts/zero-ex/test/wrappers.ts @@ -82,7 +82,6 @@ export * from '../test/generated-wrappers/meta_transactions_feature'; export * from '../test/generated-wrappers/mixin_balancer'; export * from '../test/generated-wrappers/mixin_balancer_v2'; export * from '../test/generated-wrappers/mixin_bancor'; -export * from '../test/generated-wrappers/mixin_clipper'; export * from '../test/generated-wrappers/mixin_co_fi_x'; export * from '../test/generated-wrappers/mixin_crypto_com'; export * from '../test/generated-wrappers/mixin_curve'; diff --git a/contracts/zero-ex/tsconfig.json b/contracts/zero-ex/tsconfig.json index 0ceda48b4a..3241e9801f 100644 --- a/contracts/zero-ex/tsconfig.json +++ b/contracts/zero-ex/tsconfig.json @@ -115,7 +115,6 @@ "test/generated-artifacts/MixinBalancer.json", "test/generated-artifacts/MixinBalancerV2.json", "test/generated-artifacts/MixinBancor.json", - "test/generated-artifacts/MixinClipper.json", "test/generated-artifacts/MixinCoFiX.json", "test/generated-artifacts/MixinCryptoCom.json", "test/generated-artifacts/MixinCurve.json", diff --git a/packages/asset-swapper/CHANGELOG.json b/packages/asset-swapper/CHANGELOG.json index df53a96a79..5a14c0d7e5 100644 --- a/packages/asset-swapper/CHANGELOG.json +++ b/packages/asset-swapper/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "16.29.1", + "changes": [ + { + "note": "Remove `Clipper` as a custom liquidity source", + "pr": 335 + } + ] + }, { "version": "16.29.0", "changes": [ diff --git a/packages/asset-swapper/src/utils/market_operation_utils/constants.ts b/packages/asset-swapper/src/utils/market_operation_utils/constants.ts index 47fb8a7750..9d2ed22546 100644 --- a/packages/asset-swapper/src/utils/market_operation_utils/constants.ts +++ b/packages/asset-swapper/src/utils/market_operation_utils/constants.ts @@ -99,7 +99,6 @@ export const SELL_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId( ERC20BridgeSource.UniswapV3, ERC20BridgeSource.CurveV2, ERC20BridgeSource.ShibaSwap, - ERC20BridgeSource.Clipper, ]), [ChainId.Ropsten]: new SourceFilters([ ERC20BridgeSource.Kyber, @@ -206,7 +205,6 @@ export const BUY_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId( ERC20BridgeSource.UniswapV3, ERC20BridgeSource.CurveV2, ERC20BridgeSource.ShibaSwap, - ERC20BridgeSource.Clipper, ]), [ChainId.Ropsten]: new SourceFilters([ ERC20BridgeSource.Kyber, @@ -1482,22 +1480,6 @@ export const LIDO_INFO_BY_CHAIN = valueByChainId( }, ); -export const CLIPPER_INFO_BY_CHAIN = valueByChainId( - { - [ChainId.Mainnet]: { - poolAddress: '0xe82906b6b1b04f631d126c974af57a3a7b6a99d9', - tokens: [ - MAINNET_TOKENS.WETH, // technically ETH but our sampler and mixin handle this - MAINNET_TOKENS.WBTC, - MAINNET_TOKENS.USDC, - MAINNET_TOKENS.USDT, - MAINNET_TOKENS.DAI, - ], - }, - }, - { poolAddress: NULL_ADDRESS, tokens: [] }, -); - export const BALANCER_SUBGRAPH_URL = 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer'; export const BALANCER_TOP_POOLS_FETCHED = 250; export const BALANCER_MAX_POOLS_FETCHED = 3; @@ -1759,7 +1741,6 @@ export const DEFAULT_GAS_SCHEDULE: Required = { return gas; }, [ERC20BridgeSource.Lido]: () => 226e3, - [ERC20BridgeSource.Clipper]: () => 170e3, // // BSC diff --git a/packages/asset-swapper/src/utils/market_operation_utils/orders.ts b/packages/asset-swapper/src/utils/market_operation_utils/orders.ts index b8b1016017..2666b89b85 100644 --- a/packages/asset-swapper/src/utils/market_operation_utils/orders.ts +++ b/packages/asset-swapper/src/utils/market_operation_utils/orders.ts @@ -3,7 +3,7 @@ import { AbiEncoder, BigNumber } from '@0x/utils'; import { AssetSwapperContractAddresses, MarketOperation } from '../../types'; -import { MAX_UINT256, NULL_BYTES, ZERO_AMOUNT } from './constants'; +import { MAX_UINT256, ZERO_AMOUNT } from './constants'; import { AggregationError, BalancerFillData, @@ -180,8 +180,6 @@ export function getErc20BridgeSourceToBridgeSource(source: ERC20BridgeSource): s return encodeBridgeSourceId(BridgeProtocol.Nerve, 'IronSwap'); case ERC20BridgeSource.ACryptos: return encodeBridgeSourceId(BridgeProtocol.Curve, 'ACryptoS'); - case ERC20BridgeSource.Clipper: - return encodeBridgeSourceId(BridgeProtocol.Clipper, 'Clipper'); case ERC20BridgeSource.Pangolin: return encodeBridgeSourceId(BridgeProtocol.UniswapV2, 'Pangolin'); case ERC20BridgeSource.TraderJoe: @@ -326,10 +324,6 @@ export function createBridgeDataForBridgeOrder(order: OptimizedMarketBridgeOrder const lidoFillData = (order as OptimizedMarketBridgeOrder).fillData; bridgeData = encoder.encode([lidoFillData.stEthTokenAddress]); break; - case ERC20BridgeSource.Clipper: - const clipperFillData = (order as OptimizedMarketBridgeOrder).fillData; - bridgeData = encoder.encode([clipperFillData.poolAddress, NULL_BYTES]); - break; default: throw new Error(AggregationError.NoBridgeForSource); } @@ -489,10 +483,6 @@ export const BRIDGE_ENCODERS: { ]), [ERC20BridgeSource.KyberDmm]: AbiEncoder.create('(address,address[],address[])'), [ERC20BridgeSource.Lido]: AbiEncoder.create('(address)'), - [ERC20BridgeSource.Clipper]: AbiEncoder.create([ - { name: 'provider', type: 'address' }, - { name: 'data', type: 'bytes' }, - ]), }; function getFillTokenAmounts(fill: CollapsedFill, side: MarketOperation): [BigNumber, BigNumber] { diff --git a/packages/asset-swapper/src/utils/market_operation_utils/sampler_operations.ts b/packages/asset-swapper/src/utils/market_operation_utils/sampler_operations.ts index 1dbc63de84..a00ce776f4 100644 --- a/packages/asset-swapper/src/utils/market_operation_utils/sampler_operations.ts +++ b/packages/asset-swapper/src/utils/market_operation_utils/sampler_operations.ts @@ -20,7 +20,6 @@ import { import { BALANCER_V2_VAULT_ADDRESS_BY_CHAIN, BANCOR_REGISTRY_BY_CHAIN_ID, - CLIPPER_INFO_BY_CHAIN, DODOV1_CONFIG_BY_CHAIN_ID, DODOV2_FACTORIES_BY_CHAIN_ID, KYBER_CONFIG_BY_CHAIN_ID, @@ -1416,32 +1415,6 @@ export class SamplerOperations { return this.getLidoSellQuotes(lidoInfo, makerToken, takerToken, takerFillAmounts); } - case ERC20BridgeSource.Clipper: - const { poolAddress: clipperPoolAddress, tokens: clipperTokens } = CLIPPER_INFO_BY_CHAIN[ - this.chainId - ]; - if ( - clipperPoolAddress === NULL_ADDRESS || - !clipperTokens.includes(makerToken) || - !clipperTokens.includes(takerToken) - ) { - return []; - } - // Clipper requires WETH to be represented as address(0) - const adjustedMakerToken = - makerToken === NATIVE_FEE_TOKEN_BY_CHAIN_ID[this.chainId] ? NULL_ADDRESS : makerToken; - const adjustedTakerToken = - takerToken === NATIVE_FEE_TOKEN_BY_CHAIN_ID[this.chainId] ? NULL_ADDRESS : takerToken; - // Supports the PLP interface - return this.getLiquidityProviderSellQuotes( - clipperPoolAddress, - adjustedMakerToken, - adjustedTakerToken, - takerFillAmounts, - // tslint:disable-next-line: custom-no-magic-numbers - 0, // Not used for Clipper - ERC20BridgeSource.Clipper, - ); default: throw new Error(`Unsupported sell sample source: ${source}`); } @@ -1706,32 +1679,6 @@ export class SamplerOperations { return this.getLidoBuyQuotes(lidoInfo, makerToken, takerToken, makerFillAmounts); } - case ERC20BridgeSource.Clipper: - const { poolAddress: clipperPoolAddress, tokens: clipperTokens } = CLIPPER_INFO_BY_CHAIN[ - this.chainId - ]; - if ( - clipperPoolAddress === NULL_ADDRESS || - !clipperTokens.includes(makerToken) || - !clipperTokens.includes(takerToken) - ) { - return []; - } - // Clipper requires WETH to be represented as address(0) - const adjustedMakerToken = - makerToken === NATIVE_FEE_TOKEN_BY_CHAIN_ID[this.chainId] ? NULL_ADDRESS : makerToken; - const adjustedTakerToken = - takerToken === NATIVE_FEE_TOKEN_BY_CHAIN_ID[this.chainId] ? NULL_ADDRESS : takerToken; - // Supports the PLP interface - return this.getLiquidityProviderBuyQuotes( - clipperPoolAddress, - adjustedMakerToken, - adjustedTakerToken, - makerFillAmounts, - // tslint:disable-next-line: custom-no-magic-numbers - 0, // Not used for Clipper - ERC20BridgeSource.Clipper, - ); default: throw new Error(`Unsupported buy sample source: ${source}`); } diff --git a/packages/asset-swapper/src/utils/market_operation_utils/types.ts b/packages/asset-swapper/src/utils/market_operation_utils/types.ts index 3e99836a1e..01d245147c 100644 --- a/packages/asset-swapper/src/utils/market_operation_utils/types.ts +++ b/packages/asset-swapper/src/utils/market_operation_utils/types.ts @@ -69,7 +69,6 @@ export enum ERC20BridgeSource { CurveV2 = 'Curve_V2', Lido = 'Lido', ShibaSwap = 'ShibaSwap', - Clipper = 'Clipper', // BSC only PancakeSwap = 'PancakeSwap', PancakeSwapV2 = 'PancakeSwap_V2', diff --git a/packages/protocol-utils/src/transformer_utils.ts b/packages/protocol-utils/src/transformer_utils.ts index bd9d804269..f37cd1a92f 100644 --- a/packages/protocol-utils/src/transformer_utils.ts +++ b/packages/protocol-utils/src/transformer_utils.ts @@ -131,7 +131,7 @@ export enum BridgeProtocol { KyberDmm, CurveV2, Lido, - Clipper, + Clipper, // Not used: Clipper is now using PLP interface } // tslint:enable: enum-naming