aboutsummaryrefslogtreecommitdiffstats
path: root/packages/order-utils/test
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/test
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/test')
-rw-r--r--packages/order-utils/test/order_hash_test.ts2
-rw-r--r--packages/order-utils/test/signature_utils_test.ts59
2 files changed, 28 insertions, 33 deletions
diff --git a/packages/order-utils/test/order_hash_test.ts b/packages/order-utils/test/order_hash_test.ts
index 7cb87c8ab..21ae22589 100644
--- a/packages/order-utils/test/order_hash_test.ts
+++ b/packages/order-utils/test/order_hash_test.ts
@@ -39,7 +39,7 @@ describe('Order hashing', () => {
it('throws a readable error message if taker format is invalid', async () => {
const orderWithInvalidtakerFormat = {
...order,
- taker: (null as any) as string,
+ takerAddress: (null as any) as string,
};
const expectedErrorMessage =
'Order taker must be of type string. If you want anyone to be able to fill an order - pass ZeroEx.NULL_ADDRESS';
diff --git a/packages/order-utils/test/signature_utils_test.ts b/packages/order-utils/test/signature_utils_test.ts
index 4babd5582..773a32a56 100644
--- a/packages/order-utils/test/signature_utils_test.ts
+++ b/packages/order-utils/test/signature_utils_test.ts
@@ -7,7 +7,7 @@ import 'make-promises-safe';
import 'mocha';
import * as Sinon from 'sinon';
-import { ecSignOrderHashAsync, generatePseudoRandomSalt, orderHashUtils } from '../src';
+import { ecSignOrderHashAsync, generatePseudoRandomSalt, MessagePrefixType, orderHashUtils } from '../src';
import { isValidECSignature, isValidSignatureAsync } from '../src/signature_utils';
import { chaiSetup } from './utils/chai_setup';
@@ -16,8 +16,6 @@ import { provider, web3Wrapper } from './utils/web3_wrapper';
chaiSetup.configure();
const expect = chai.expect;
-const SHOULD_ADD_PERSONAL_MESSAGE_PREFIX = false;
-
describe('Signature utils', () => {
describe('#isValidSignature', () => {
let dataHex = '0x6927e990021d23b1eb7b8789f6a6feaf98fe104bb0cf8259421b79f9a34222b0';
@@ -75,28 +73,28 @@ describe('Signature utils', () => {
// TODO: remaining sigs
});
describe('#isValidECSignature', () => {
- // The Exchange smart contract `isValidECSignature` method only validates orderHashes and assumes
- // the length of the data is exactly 32 bytes. Thus for these tests, we use data of this size.
- const dataHex = '0x6927e990021d23b1eb7b8789f6a6feaf98fe104bb0cf8259421b79f9a34222b0';
+ // TODO: Replace this with a vanilla signature without ANY prefix or modification
const signature = {
v: 27,
- r: '0x61a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc33',
- s: '0x40349190569279751135161d22529dc25add4f6069af05be04cacbda2ace2254',
+ r: '0xaca7da997ad177f040240cdccf6905b71ab16b74434388c3a72f34fd25d64393',
+ s: '0x46b2bac274ff29b48b3ea6e2d04c1336eaceafda3c53ab483fc3ff12fac3ebf2',
};
- const address = '0x5409ed021d9299bf6814279a6a1411a7e866a631';
+ const data = '0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad';
+ const address = '0x0e5cb767cce09a7f3ca594df118aa519be5e2b5a';
+
it("should return false if the data doesn't pertain to the signature & address", async () => {
expect(isValidECSignature('0x0', signature, address)).to.be.false();
});
it("should return false if the address doesn't pertain to the signature & data", async () => {
const validUnrelatedAddress = '0x8b0292b11a196601ed2ce54b665cafeca0347d42';
- expect(isValidECSignature(dataHex, signature, validUnrelatedAddress)).to.be.false();
+ expect(isValidECSignature(data, signature, validUnrelatedAddress)).to.be.false();
});
- it("should return false if the signature doesn't pertain to the dataHex & address", async () => {
+ it("should return false if the signature doesn't pertain to the data & address", async () => {
const wrongSignature = _.assign({}, signature, { v: 28 });
- expect(isValidECSignature(dataHex, wrongSignature, address)).to.be.false();
+ expect(isValidECSignature(data, wrongSignature, address)).to.be.false();
});
- it('should return true if the signature does pertain to the dataHex & address', async () => {
- const isValidSignatureLocal = isValidECSignature(dataHex, signature, address);
+ it('should return true if the signature does pertain to the data & address', async () => {
+ const isValidSignatureLocal = isValidECSignature(data, signature, address);
expect(isValidSignatureLocal).to.be.true();
});
});
@@ -147,12 +145,11 @@ describe('Signature utils', () => {
r: '0x61a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc33',
s: '0x40349190569279751135161d22529dc25add4f6069af05be04cacbda2ace2254',
};
- 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);
expect(ecSignature).to.deep.equal(expectedECSignature);
});
it('should return the correct ECSignature for signatureHex concatenated as R + S + V', async () => {
@@ -181,12 +178,11 @@ describe('Signature utils', () => {
},
};
- const ecSignature = await ecSignOrderHashAsync(
- fakeProvider,
- orderHash,
- makerAddress,
- SHOULD_ADD_PERSONAL_MESSAGE_PREFIX,
- );
+ const messagePrefixOpts = {
+ prefixType: MessagePrefixType.EthSign,
+ shouldAddPrefixBeforeCallingEthSign: false,
+ };
+ const ecSignature = await ecSignOrderHashAsync(fakeProvider, orderHash, makerAddress, messagePrefixOpts);
expect(ecSignature).to.deep.equal(expectedECSignature);
});
it('should return the correct ECSignature for signatureHex concatenated as V + R + S', async () => {
@@ -212,12 +208,11 @@ describe('Signature utils', () => {
},
};
- const ecSignature = await ecSignOrderHashAsync(
- fakeProvider,
- orderHash,
- makerAddress,
- SHOULD_ADD_PERSONAL_MESSAGE_PREFIX,
- );
+ const messagePrefixOpts = {
+ prefixType: MessagePrefixType.EthSign,
+ shouldAddPrefixBeforeCallingEthSign: false,
+ };
+ const ecSignature = await ecSignOrderHashAsync(fakeProvider, orderHash, makerAddress, messagePrefixOpts);
expect(ecSignature).to.deep.equal(expectedECSignature);
});
});