aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src/utils/signed_order_utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/contracts/src/utils/signed_order_utils.ts')
-rw-r--r--packages/contracts/src/utils/signed_order_utils.ts44
1 files changed, 44 insertions, 0 deletions
diff --git a/packages/contracts/src/utils/signed_order_utils.ts b/packages/contracts/src/utils/signed_order_utils.ts
new file mode 100644
index 000000000..6122748b4
--- /dev/null
+++ b/packages/contracts/src/utils/signed_order_utils.ts
@@ -0,0 +1,44 @@
+import { SignedOrder } from '0x.js';
+import { BigNumber } from '@0xproject/utils';
+import { Web3Wrapper } from '@0xproject/web3-wrapper';
+import ethUtil = require('ethereumjs-util');
+import * as _ from 'lodash';
+
+import { crypto } from './crypto';
+
+export const signedOrderUtils = {
+ createFill: (signedOrder: SignedOrder, takerTokenFillAmount?: BigNumber) => {
+ const fill = {
+ ...signedOrderUtils.getOrderAddressesAndValues(signedOrder),
+ takerTokenFillAmount: takerTokenFillAmount || signedOrder.takerTokenAmount,
+ ...signedOrder.ecSignature,
+ };
+ return fill;
+ },
+ createCancel(signedOrder: SignedOrder, takerTokenCancelAmount?: BigNumber) {
+ const cancel = {
+ ...signedOrderUtils.getOrderAddressesAndValues(signedOrder),
+ takerTokenCancelAmount: takerTokenCancelAmount || signedOrder.takerTokenAmount,
+ };
+ return cancel;
+ },
+ getOrderAddressesAndValues(signedOrder: SignedOrder) {
+ return {
+ orderAddresses: [
+ signedOrder.maker,
+ signedOrder.taker,
+ signedOrder.makerTokenAddress,
+ signedOrder.takerTokenAddress,
+ signedOrder.feeRecipient,
+ ],
+ orderValues: [
+ signedOrder.makerTokenAmount,
+ signedOrder.takerTokenAmount,
+ signedOrder.makerFee,
+ signedOrder.takerFee,
+ signedOrder.expirationUnixTimestampSec,
+ signedOrder.salt,
+ ],
+ };
+ },
+};