aboutsummaryrefslogtreecommitdiffstats
path: root/packages/order-utils/src
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-10-09 17:42:35 +0800
committerFabio Berger <me@fabioberger.com>2018-10-09 17:42:35 +0800
commit6c9f7839c3948e60f2987f474bb2ad6457588fa3 (patch)
tree5736c15290289124e24392bc81eb4f8426c468f1 /packages/order-utils/src
parent9654397b292ee03c503313e3fbb127ebb4b7d76b (diff)
parent3ac9dac4f0a6b3875b7ae0ea6dd1855743768ef2 (diff)
downloaddexon-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.ts39
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;