diff options
author | F. Eugene Aumson <feuGeneA@users.noreply.github.com> | 2018-09-25 01:30:37 +0800 |
---|---|---|
committer | F. Eugene Aumson <feuGeneA@users.noreply.github.com> | 2018-09-25 01:30:37 +0800 |
commit | 2116548eed666c3c61277f17e996fee720301f31 (patch) | |
tree | 6f4b601b59659ac9134ffe4efed79c8a8a2750e0 /packages/asset-buyer/src/utils/order_utils.ts | |
parent | 57fca16d7b1dc61c060c90fa440b1dc947aefb93 (diff) | |
parent | b830c28d83a33c0170d4f150ee287ea97ccf7865 (diff) | |
download | dexon-sol-tools-2116548eed666c3c61277f17e996fee720301f31.tar dexon-sol-tools-2116548eed666c3c61277f17e996fee720301f31.tar.gz dexon-sol-tools-2116548eed666c3c61277f17e996fee720301f31.tar.bz2 dexon-sol-tools-2116548eed666c3c61277f17e996fee720301f31.tar.lz dexon-sol-tools-2116548eed666c3c61277f17e996fee720301f31.tar.xz dexon-sol-tools-2116548eed666c3c61277f17e996fee720301f31.tar.zst dexon-sol-tools-2116548eed666c3c61277f17e996fee720301f31.zip |
Merge remote-tracking branch 'upstream/development' into sol-doc
Diffstat (limited to 'packages/asset-buyer/src/utils/order_utils.ts')
-rw-r--r-- | packages/asset-buyer/src/utils/order_utils.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/asset-buyer/src/utils/order_utils.ts b/packages/asset-buyer/src/utils/order_utils.ts new file mode 100644 index 000000000..62166eb76 --- /dev/null +++ b/packages/asset-buyer/src/utils/order_utils.ts @@ -0,0 +1,30 @@ +import { SignedOrder } from '@0xproject/types'; +import { BigNumber } from '@0xproject/utils'; + +import { constants } from '../constants'; + +export const orderUtils = { + isOrderExpired(order: SignedOrder): boolean { + return orderUtils.willOrderExpire(order, 0); + }, + willOrderExpire(order: SignedOrder, secondsFromNow: number): boolean { + const millisecondsInSecond = 1000; + const currentUnixTimestampSec = new BigNumber(Date.now() / millisecondsInSecond).round(); + return order.expirationTimeSeconds.lessThan(currentUnixTimestampSec.minus(secondsFromNow)); + }, + calculateRemainingMakerAssetAmount(order: SignedOrder, remainingTakerAssetAmount: BigNumber): BigNumber { + if (remainingTakerAssetAmount.eq(0)) { + return constants.ZERO_AMOUNT; + } + return remainingTakerAssetAmount.times(order.makerAssetAmount).dividedToIntegerBy(order.takerAssetAmount); + }, + calculateRemainingTakerAssetAmount(order: SignedOrder, remainingMakerAssetAmount: BigNumber): BigNumber { + if (remainingMakerAssetAmount.eq(0)) { + return constants.ZERO_AMOUNT; + } + return remainingMakerAssetAmount.times(order.takerAssetAmount).dividedToIntegerBy(order.makerAssetAmount); + }, + isOpenOrder(order: SignedOrder): boolean { + return order.takerAddress === constants.NULL_ADDRESS; + }, +}; |