diff --git a/packages/asset-swapper/src/index.ts b/packages/asset-swapper/src/index.ts index 0c87279cc8..a6ce6ff596 100644 --- a/packages/asset-swapper/src/index.ts +++ b/packages/asset-swapper/src/index.ts @@ -132,6 +132,7 @@ export { CurveFillData, CurveFunctionSelectors, CurveInfo, + CreamFillData, DexSample, DODOFillData, ERC20BridgeSource, 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 790f083c03..d3a6bb7c60 100644 --- a/packages/asset-swapper/src/utils/market_operation_utils/constants.ts +++ b/packages/asset-swapper/src/utils/market_operation_utils/constants.ts @@ -25,6 +25,7 @@ export const SELL_SOURCE_FILTER = new SourceFilters([ ERC20BridgeSource.Shell, ERC20BridgeSource.MultiHop, ERC20BridgeSource.Dodo, + ERC20BridgeSource.Cream, ]); /** @@ -47,6 +48,7 @@ export const BUY_SOURCE_FILTER = new SourceFilters( ERC20BridgeSource.SushiSwap, ERC20BridgeSource.MultiHop, ERC20BridgeSource.Dodo, + ERC20BridgeSource.Cream, ], [ERC20BridgeSource.MultiBridge], ); 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 e08353d8d7..d12f0e1dea 100644 --- a/packages/asset-swapper/src/utils/market_operation_utils/orders.ts +++ b/packages/asset-swapper/src/utils/market_operation_utils/orders.ts @@ -22,6 +22,7 @@ import { BalancerFillData, BancorFillData, CollapsedFill, + CreamFillData, CurveFillData, DexSample, DODOFillData, @@ -177,6 +178,8 @@ function getBridgeAddressFromFill(fill: CollapsedFill, opts: CreateOrderFromPath return opts.contractAddresses.bancorBridge; case ERC20BridgeSource.Balancer: return opts.contractAddresses.balancerBridge; + case ERC20BridgeSource.Cream: + return opts.contractAddresses.balancerBridge; case ERC20BridgeSource.LiquidityProvider: return (fill.fillData as LiquidityProviderFillData).poolAddress; case ERC20BridgeSource.MultiBridge: @@ -241,6 +244,14 @@ export function createBridgeOrder( createBalancerBridgeData(takerToken, balancerFillData.poolAddress), ); break; + case ERC20BridgeSource.Cream: + const creamFillData = (fill as CollapsedFill).fillData!; // tslint:disable-line:no-non-null-assertion + makerAssetData = assetDataUtils.encodeERC20BridgeAssetData( + makerToken, + bridgeAddress, + createBalancerBridgeData(takerToken, creamFillData.poolAddress), + ); + break; case ERC20BridgeSource.Bancor: const bancorFillData = (fill as CollapsedFill).fillData!; // tslint:disable-line:no-non-null-assertion makerAssetData = assetDataUtils.encodeERC20BridgeAssetData(