aboutsummaryrefslogtreecommitdiffstats
path: root/packages/order-utils/src/order_factory.ts
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-05-31 05:08:43 +0800
committerFabio Berger <me@fabioberger.com>2018-05-31 05:08:43 +0800
commit32833b7301ede19b3b80d95df32c0565efdd583a (patch)
tree4e8d954d281f39462cb800a77c17088720211fe3 /packages/order-utils/src/order_factory.ts
parent3302c892844e85d3a36460cb381abbb62d5730d4 (diff)
downloaddexon-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.ts31
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;
+}