diff --git a/packages/asset-swapper/CHANGELOG.json b/packages/asset-swapper/CHANGELOG.json index b19f13e9c7..2fcccf7d8a 100644 --- a/packages/asset-swapper/CHANGELOG.json +++ b/packages/asset-swapper/CHANGELOG.json @@ -21,6 +21,10 @@ { "note": "Support `Mirror Protocol` with hops to `UST`", "pr": 142 + }, + { + "note": "Fix protocol fee in fee schedule for `RfqOrder`", + "pr": 146 } ] }, 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 efc5335faa..b5cafdacb6 100644 --- a/packages/asset-swapper/src/utils/market_operation_utils/constants.ts +++ b/packages/asset-swapper/src/utils/market_operation_utils/constants.ts @@ -1,3 +1,4 @@ +import { FillQuoteTransformerOrderType } from '@0x/protocol-utils'; import { BigNumber } from '@0x/utils'; import { TokenAdjacencyGraphBuilder } from '../token_adjacency_graph_builder'; @@ -501,9 +502,13 @@ export const BALANCER_MAX_POOLS_FETCHED = 3; */ // tslint:disable:custom-no-magic-numbers export const DEFAULT_GAS_SCHEDULE: Required = { - [ERC20BridgeSource.Native]: _fillData => { - // const nativeFillData = (_fillData as NativeRfqOrderFillData|NativeLimitOrderFillData) - return 100e3; + [ERC20BridgeSource.Native]: fillData => { + // TODO jacob re-order imports so there is no circular rependency with SignedNativeOrder + const nativeFillData = fillData as ({ type: FillQuoteTransformerOrderType }); + return nativeFillData && nativeFillData.type === FillQuoteTransformerOrderType.Limit + ? PROTOCOL_FEE_MULTIPLIER.plus(100e3).toNumber() + : // TODO jacob revisit wth v4 LimitOrders + 100e3; }, [ERC20BridgeSource.Uniswap]: () => 90e3, [ERC20BridgeSource.LiquidityProvider]: fillData => { @@ -618,15 +623,7 @@ export const DEFAULT_GAS_SCHEDULE: Required = { }, }; -export const DEFAULT_FEE_SCHEDULE: Required = Object.assign( - {}, - ...(Object.keys(DEFAULT_GAS_SCHEDULE) as ERC20BridgeSource[]).map(k => ({ - [k]: - k === ERC20BridgeSource.Native - ? (fillData: FillData) => PROTOCOL_FEE_MULTIPLIER.plus(DEFAULT_GAS_SCHEDULE[k](fillData)) - : (fillData: FillData) => DEFAULT_GAS_SCHEDULE[k](fillData), - })), -); +export const DEFAULT_FEE_SCHEDULE: Required = { ...DEFAULT_GAS_SCHEDULE }; // tslint:enable:custom-no-magic-numbers