diff options
author | Fabio Berger <me@fabioberger.com> | 2018-05-31 05:08:43 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-05-31 05:08:43 +0800 |
commit | 32833b7301ede19b3b80d95df32c0565efdd583a (patch) | |
tree | 4e8d954d281f39462cb800a77c17088720211fe3 /packages/order-utils/src/order_factory.ts | |
parent | 3302c892844e85d3a36460cb381abbb62d5730d4 (diff) | |
download | dexon-sol-tools-32833b7301ede19b3b80d95df32c0565efdd583a.tar dexon-sol-tools-32833b7301ede19b3b80d95df32c0565efdd583a.tar.gz dexon-sol-tools-32833b7301ede19b3b80d95df32c0565efdd583a.tar.bz2 dexon-sol-tools-32833b7301ede19b3b80d95df32c0565efdd583a.tar.lz dexon-sol-tools-32833b7301ede19b3b80d95df32c0565efdd583a.tar.xz dexon-sol-tools-32833b7301ede19b3b80d95df32c0565efdd583a.tar.zst dexon-sol-tools-32833b7301ede19b3b80d95df32c0565efdd583a.zip |
Fix order-utils tests
Diffstat (limited to 'packages/order-utils/src/order_factory.ts')
-rw-r--r-- | packages/order-utils/src/order_factory.ts | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/packages/order-utils/src/order_factory.ts b/packages/order-utils/src/order_factory.ts index fe341b845..3f3dc524c 100644 --- a/packages/order-utils/src/order_factory.ts +++ b/packages/order-utils/src/order_factory.ts @@ -1,12 +1,12 @@ -import { Provider, SignedOrder } from '@0xproject/types'; +import { ECSignature, Provider, SignedOrder } from '@0xproject/types'; import { BigNumber } from '@0xproject/utils'; +import * as ethUtil from 'ethereumjs-util'; import * as _ from 'lodash'; import { orderHashUtils } from './order_hash'; import { generatePseudoRandomSalt } from './salt'; -import { ecSignOrderHashAsync, getVRSHexString } from './signature_utils'; - -const SHOULD_ADD_PERSONAL_MESSAGE_PREFIX = false; +import { ecSignOrderHashAsync } from './signature_utils'; +import { MessagePrefixType } from './types'; export const orderFactory = { async createSignedOrderAsync( @@ -44,14 +44,25 @@ export const orderFactory = { expirationTimeSeconds, }; const orderHash = orderHashUtils.getOrderHashHex(order); - const ecSignature = await ecSignOrderHashAsync( - provider, - orderHash, - makerAddress, - SHOULD_ADD_PERSONAL_MESSAGE_PREFIX, - ); + const messagePrefixOpts = { + prefixType: MessagePrefixType.EthSign, + shouldAddPrefixBeforeCallingEthSign: false, + }; + const ecSignature = await ecSignOrderHashAsync(provider, orderHash, makerAddress, messagePrefixOpts); const signature = getVRSHexString(ecSignature); const signedOrder: SignedOrder = _.assign(order, { signature }); return signedOrder; }, }; + +function getVRSHexString(ecSignature: ECSignature): string { + const vrs = `0x${intToHex(ecSignature.v)}${ethUtil.stripHexPrefix(ecSignature.r)}${ethUtil.stripHexPrefix( + ecSignature.s, + )}`; + return vrs; +} + +function intToHex(i: number): string { + const hex = ethUtil.bufferToHex(ethUtil.toBuffer(i)); + return hex; +} |