diff options
author | Fabio Berger <me@fabioberger.com> | 2018-10-09 17:42:35 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-10-09 17:42:35 +0800 |
commit | 6c9f7839c3948e60f2987f474bb2ad6457588fa3 (patch) | |
tree | 5736c15290289124e24392bc81eb4f8426c468f1 /packages/order-utils/src | |
parent | 9654397b292ee03c503313e3fbb127ebb4b7d76b (diff) | |
parent | 3ac9dac4f0a6b3875b7ae0ea6dd1855743768ef2 (diff) | |
download | dexon-sol-tools-6c9f7839c3948e60f2987f474bb2ad6457588fa3.tar dexon-sol-tools-6c9f7839c3948e60f2987f474bb2ad6457588fa3.tar.gz dexon-sol-tools-6c9f7839c3948e60f2987f474bb2ad6457588fa3.tar.bz2 dexon-sol-tools-6c9f7839c3948e60f2987f474bb2ad6457588fa3.tar.lz dexon-sol-tools-6c9f7839c3948e60f2987f474bb2ad6457588fa3.tar.xz dexon-sol-tools-6c9f7839c3948e60f2987f474bb2ad6457588fa3.tar.zst dexon-sol-tools-6c9f7839c3948e60f2987f474bb2ad6457588fa3.zip |
Merge branch 'development' into dev-section-redesign
* development:
Clarifies use of schemas outside of Javascript/TypeScript.
Fix typo
Add asset-buyer to published packages section in README
Publish
Updated CHANGELOGS
Update BuyQuote interface
Add missing default options
Remove unused constants
Add fee order with a takerFee
Add additional order factory methods and refactor test to use them
Add comments about buy quote calculation
Update CHANGELOG
Fix linter
Add additional test for slippage
Add buy_quote_calculator_test
Diffstat (limited to 'packages/order-utils/src')
-rw-r--r-- | packages/order-utils/src/order_factory.ts | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/packages/order-utils/src/order_factory.ts b/packages/order-utils/src/order_factory.ts index 46a69ae4d..b1292903a 100644 --- a/packages/order-utils/src/order_factory.ts +++ b/packages/order-utils/src/order_factory.ts @@ -8,8 +8,21 @@ import { orderHashUtils } from './order_hash'; import { generatePseudoRandomSalt } from './salt'; import { signatureUtils } from './signature_utils'; import { CreateOrderOpts } from './types'; - export const orderFactory = { + createOrderFromPartial(partialOrder: Partial<Order>): Order { + const defaultOrder = generateEmptyOrder(); + return { + ...defaultOrder, + ...partialOrder, + }; + }, + createSignedOrderFromPartial(partialSignedOrder: Partial<SignedOrder>): SignedOrder { + const defaultOrder = generateEmptySignedOrder(); + return { + ...defaultOrder, + ...partialSignedOrder, + }; + }, createOrder( makerAddress: string, makerAssetAmount: BigNumber, @@ -69,6 +82,30 @@ export const orderFactory = { }, }; +function generateEmptySignedOrder(): SignedOrder { + return { + ...generateEmptyOrder(), + signature: constants.NULL_BYTES, + }; +} +function generateEmptyOrder(): Order { + return { + senderAddress: constants.NULL_ADDRESS, + makerAddress: constants.NULL_ADDRESS, + takerAddress: constants.NULL_ADDRESS, + makerFee: constants.ZERO_AMOUNT, + takerFee: constants.ZERO_AMOUNT, + makerAssetAmount: constants.ZERO_AMOUNT, + takerAssetAmount: constants.ZERO_AMOUNT, + makerAssetData: constants.NULL_BYTES, + takerAssetData: constants.NULL_BYTES, + salt: generatePseudoRandomSalt(), + exchangeAddress: constants.NULL_ADDRESS, + feeRecipientAddress: constants.NULL_ADDRESS, + expirationTimeSeconds: constants.INFINITE_TIMESTAMP_SEC, + }; +} + function generateDefaultCreateOrderOpts(): { takerAddress: string; senderAddress: string; |