diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2018-08-03 04:22:04 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2018-08-06 06:33:52 +0800 |
commit | 09c0fc94fc91134acfdee1017d7a50e2047b019b (patch) | |
tree | 4ba69cf8e4777fd4411ffbfe96545883a358c662 /packages/order-utils/src/market_utils.ts | |
parent | e5d65b585a2b0a159f50320eaf5bfec05a869478 (diff) | |
download | dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar.gz dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar.bz2 dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar.lz dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar.xz dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar.zst dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.zip |
Implement first round of tests for findOrdersThatCoverMakerAssetFillAmount
Diffstat (limited to 'packages/order-utils/src/market_utils.ts')
-rw-r--r-- | packages/order-utils/src/market_utils.ts | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/packages/order-utils/src/market_utils.ts b/packages/order-utils/src/market_utils.ts index 4ddcc6ec8..710eddf8a 100644 --- a/packages/order-utils/src/market_utils.ts +++ b/packages/order-utils/src/market_utils.ts @@ -39,10 +39,17 @@ export const marketUtils = { return { resultOrders, remainingFillAmount: constants.ZERO_AMOUNT }; } else { const orderState = orderStates[index]; - const makerAssetAmountAvailable = getMakerAssetAmountAvailable(orderState); + const makerAssetAmountAvailable = orderState.remainingFillableMakerAssetAmount; + // if there is no makerAssetAmountAvailable do not append order to resultOrders + // if we have exceeded the total amount we want to fill set remainingFillAmount to 0 return { - resultOrders: _.concat(resultOrders, order), - remainingFillAmount: remainingFillAmount.minus(makerAssetAmountAvailable), + resultOrders: makerAssetAmountAvailable.gt(constants.ZERO_AMOUNT) + ? _.concat(resultOrders, order) + : resultOrders, + remainingFillAmount: BigNumber.max( + constants.ZERO_AMOUNT, + remainingFillAmount.minus(makerAssetAmountAvailable), + ), }; } }, @@ -83,7 +90,7 @@ export const marketUtils = { signedOrders, (accFees, order, index) => { const orderState = orderStates[index]; - const makerAssetAmountAvailable = getMakerAssetAmountAvailable(orderState); + const makerAssetAmountAvailable = orderState.remainingFillableMakerAssetAmount; const feeToFillMakerAssetAmountAvailable = makerAssetAmountAvailable .div(order.makerAssetAmount) .mul(order.takerFee); @@ -99,11 +106,3 @@ export const marketUtils = { ); }, }; - -const getMakerAssetAmountAvailable = (orderState: OrderRelevantState) => { - return BigNumber.min( - orderState.makerBalance, - orderState.remainingFillableMakerAssetAmount, - orderState.makerProxyAllowance, - ); -}; |