diff options
author | Amir Bandeali <abandeali1@gmail.com> | 2018-03-08 08:05:43 +0800 |
---|---|---|
committer | Amir Bandeali <abandeali1@gmail.com> | 2018-04-21 04:56:16 +0800 |
commit | 3ff8a319c5460caaf9edc1bea68e807fe0611aaa (patch) | |
tree | 77c255e42d1dfcedad7f1692c9467e28cd9a3802 /packages/contracts/src/utils/order_factory.ts | |
parent | cd8f8e1e4acc00e9e31265050456a4c98d79a7d4 (diff) | |
download | dexon-sol-tools-3ff8a319c5460caaf9edc1bea68e807fe0611aaa.tar dexon-sol-tools-3ff8a319c5460caaf9edc1bea68e807fe0611aaa.tar.gz dexon-sol-tools-3ff8a319c5460caaf9edc1bea68e807fe0611aaa.tar.bz2 dexon-sol-tools-3ff8a319c5460caaf9edc1bea68e807fe0611aaa.tar.lz dexon-sol-tools-3ff8a319c5460caaf9edc1bea68e807fe0611aaa.tar.xz dexon-sol-tools-3ff8a319c5460caaf9edc1bea68e807fe0611aaa.tar.zst dexon-sol-tools-3ff8a319c5460caaf9edc1bea68e807fe0611aaa.zip |
Add utils for hashing and signing orders, update wrappers
Diffstat (limited to 'packages/contracts/src/utils/order_factory.ts')
-rw-r--r-- | packages/contracts/src/utils/order_factory.ts | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/packages/contracts/src/utils/order_factory.ts b/packages/contracts/src/utils/order_factory.ts index d5c3a9544..3f09cedf3 100644 --- a/packages/contracts/src/utils/order_factory.ts +++ b/packages/contracts/src/utils/order_factory.ts @@ -1,37 +1,35 @@ -import { Order, ZeroEx } from '0x.js'; +import { ZeroEx } from '0x.js'; import { BigNumber } from '@0xproject/utils'; -import { Web3Wrapper } from '@0xproject/web3-wrapper'; import * as _ from 'lodash'; -import { signedOrderUtils } from './signed_order_utils'; -import { DefaultOrderParams, SignedOrder } from './types'; +import { orderUtils } from './order_utils'; +import { signingUtils } from './signing_utils'; +import { DefaultOrderParams, SignatureType, SignedOrder, UnsignedOrder } from './types'; export class OrderFactory { - private _defaultOrderParams: Partial<Order>; - private _zeroEx: ZeroEx; - constructor(zeroEx: ZeroEx, defaultOrderParams: Partial<Order>) { + private _defaultOrderParams: Partial<UnsignedOrder>; + private _secretKey: Buffer; + constructor(secretKey: Buffer, defaultOrderParams: Partial<UnsignedOrder>) { this._defaultOrderParams = defaultOrderParams; - this._zeroEx = zeroEx; + this._secretKey = secretKey; } - public async newSignedOrderAsync(customOrderParams: Partial<Order> = {}): Promise<SignedOrder> { + public newSignedOrder( + customOrderParams: Partial<UnsignedOrder> = {}, + signatureType: SignatureType = SignatureType.Ecrecover, + ): SignedOrder { const randomExpiration = new BigNumber(Math.floor((Date.now() + Math.random() * 100000000000) / 1000)); const order = ({ - expirationTimestampSeconds: randomExpiration, + expirationTimeSeconds: randomExpiration, salt: ZeroEx.generatePseudoRandomSalt(), takerAddress: ZeroEx.NULL_ADDRESS, ...this._defaultOrderParams, ...customOrderParams, - } as any) as SignedOrder; - const orderHashHex = signedOrderUtils.getOrderHashHex(order); - const shouldAddPersonalMessagePrefix = false; - const ecSignature = await this._zeroEx.signOrderHashAsync( - orderHashHex, - order.makerAddress, - shouldAddPersonalMessagePrefix, - ); + } as any) as UnsignedOrder; + const orderHashBuff = orderUtils.getOrderHashBuff(order); + const signature = signingUtils.signMessage(orderHashBuff, this._secretKey, signatureType); const signedOrder = { ...order, - ecSignature, + signature: `0x${signature.toString('hex')}`, }; return signedOrder; } |