aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-05-30 23:35:17 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-05-30 23:35:17 +0800
commitbe13cf127c00c762d03c5eaf17a11c2775701530 (patch)
treecda26032d212f7c08c72965813e17de8ed1c03d4 /test
parent843ec2d4cf4bbc9061ba6dc5a09fc6d694c3083a (diff)
downloaddexon-0x-contracts-be13cf127c00c762d03c5eaf17a11c2775701530.tar.gz
dexon-0x-contracts-be13cf127c00c762d03c5eaf17a11c2775701530.tar.zst
dexon-0x-contracts-be13cf127c00c762d03c5eaf17a11c2775701530.zip
Refactor getOrderHash to accept order as an object
Diffstat (limited to 'test')
-rw-r--r--test/0x.js_test.ts47
-rw-r--r--test/exchange_wrapper_test.ts7
-rw-r--r--test/utils/order.ts35
3 files changed, 43 insertions, 46 deletions
diff --git a/test/0x.js_test.ts b/test/0x.js_test.ts
index 5d23d7094..a84785f4b 100644
--- a/test/0x.js_test.ts
+++ b/test/0x.js_test.ts
@@ -7,6 +7,7 @@ import * as Sinon from 'sinon';
import {ZeroEx} from '../src/0x.js';
import {constants} from './utils/constants';
import {web3Factory} from './utils/web3_factory';
+import {Order} from '../src/types';
// Use BigNumber chai add-on
chai.use(ChaiBigNumber());
@@ -43,38 +44,28 @@ describe('ZeroEx library', () => {
});
describe('#getOrderHash', () => {
const expectedOrderHash = '0x103a5e97dab5dbeb8f385636f86a7d1e458a7ccbe1bd194727f0b2f85ab116c7';
+ const order: Order = {
+ maker: constants.NULL_ADDRESS,
+ feeRecipient: constants.NULL_ADDRESS,
+ makerTokenAddress: constants.NULL_ADDRESS,
+ takerTokenAddress: constants.NULL_ADDRESS,
+ salt: new BigNumber(0),
+ makerFee: new BigNumber(0),
+ takerFee: new BigNumber(0),
+ makerTokenAmount: new BigNumber(0),
+ takerTokenAmount: new BigNumber(0),
+ expirationUnixTimestampSec: new BigNumber(0),
+ };
+ const exchangeAddress = constants.NULL_ADDRESS;
it('defaults takerAddress to NULL address', () => {
- const orderHash = ZeroEx.getOrderHashHex(
- constants.NULL_ADDRESS,
- constants.NULL_ADDRESS,
- '',
- constants.NULL_ADDRESS,
- constants.NULL_ADDRESS,
- constants.NULL_ADDRESS,
- new BigNumber(0),
- new BigNumber(0),
- new BigNumber(0),
- new BigNumber(0),
- new BigNumber(0),
- new BigNumber(0),
- );
+ const orderHash = ZeroEx.getOrderHashHex(exchangeAddress, order);
expect(orderHash).to.be.equal(expectedOrderHash);
});
it('calculates the order hash', () => {
- const orderHash = ZeroEx.getOrderHashHex(
- constants.NULL_ADDRESS,
- constants.NULL_ADDRESS,
- constants.NULL_ADDRESS,
- constants.NULL_ADDRESS,
- constants.NULL_ADDRESS,
- constants.NULL_ADDRESS,
- new BigNumber(0),
- new BigNumber(0),
- new BigNumber(0),
- new BigNumber(0),
- new BigNumber(0),
- new BigNumber(0),
- );
+ const orderWithZeroTaker = _.assign(order, {
+ taker: constants.NULL_ADDRESS,
+ });
+ const orderHash = ZeroEx.getOrderHashHex(exchangeAddress, orderWithZeroTaker);
expect(orderHash).to.be.equal(expectedOrderHash);
});
});
diff --git a/test/exchange_wrapper_test.ts b/test/exchange_wrapper_test.ts
index e00edefbe..355a5d01b 100644
--- a/test/exchange_wrapper_test.ts
+++ b/test/exchange_wrapper_test.ts
@@ -4,9 +4,8 @@ import chaiAsPromised = require('chai-as-promised');
import {web3Factory} from './utils/web3_factory';
import {ZeroEx} from '../src/0x.js';
import {BlockchainLifecycle} from './utils/blockchain_lifecycle';
-import * as OrderJSON from './fixtures/orders/5_MLN_for_42_GLM.json';
import * as BigNumber from 'bignumber.js';
-import {signedOrderFromJSON} from './utils/order';
+import {createSignedOrder} from './utils/order';
const expect = chai.expect;
chai.use(chaiAsPromised);
@@ -94,8 +93,8 @@ describe('ExchangeWrapper', () => {
expect(isValid).to.be.true;
});
});
- describe('#fillOrderAsync', () => {
- const signedOrder = signedOrderFromJSON(OrderJSON);
+ describe('#fillOrderAsync', async () => {
+ const signedOrder = await createSignedOrder(zeroEx);
it('should throw when the fill amount is zero', async () => {
const fillAmount = new BigNumber(0);
expect(zeroEx.exchange.fillOrderAsync(signedOrder, fillAmount))
diff --git a/test/utils/order.ts b/test/utils/order.ts
index 690f50ef5..a69c1b62f 100644
--- a/test/utils/order.ts
+++ b/test/utils/order.ts
@@ -1,21 +1,28 @@
import {SignedOrder} from '../../src/types';
import * as BigNumber from 'bignumber.js';
import * as _ from 'lodash';
+import {ZeroEx} from '../../src/0x.js';
+import {constants} from './constants';
-export function signedOrderFromJSON(signedOrderJSON: any): SignedOrder {
- const signedOrder = {
- maker: signedOrderJSON.maker.address,
- taker: _.isEmpty(signedOrderJSON.taker.address) ? undefined : signedOrderJSON.taker.address,
- makerTokenAddress: signedOrderJSON.maker.token.address,
- takerTokenAddress: signedOrderJSON.taker.token.address,
- makerTokenAmount: new BigNumber(signedOrderJSON.maker.amount),
- takerTokenAmount: new BigNumber(signedOrderJSON.taker.amount),
- makerFee: new BigNumber(signedOrderJSON.maker.feeAmount),
- takerFee: new BigNumber(signedOrderJSON.taker.feeAmount),
- expirationUnixTimestampSec: new BigNumber(signedOrderJSON.expiration),
- feeRecipient: signedOrderJSON.feeRecipient,
- ecSignature: signedOrderJSON.signature,
- salt: new BigNumber(signedOrderJSON.salt),
+export async function createSignedOrder(zeroEx: ZeroEx): Promise<SignedOrder> {
+ // TODO: fetch properly
+ const EXCHANGE_ADDRESS = '0xb69e673309512a9d726f87304c6984054f87a93b';
+ const INF_TIMESTAMP = 2524604400;
+ const order = {
+ maker: '0x5409ed021d9299bf6814279a6a1411a7e866a631',
+ taker: undefined,
+ makerFee: new BigNumber(0),
+ takerFee: new BigNumber(0),
+ makerTokenAmount: new BigNumber(5000000000000000000),
+ takerTokenAmount: new BigNumber(42000000000000000000),
+ makerTokenAddress: '0x07f96aa816c1f244cbc6ef114bb2b023ba54a2eb',
+ takerTokenAddress: '0x1e2f9e10d02a6b8f8f69fcbf515e75039d2ea30d',
+ salt: ZeroEx.generatePseudoRandomSalt(),
+ feeRecipient: constants.NULL_ADDRESS,
+ expirationUnixTimestampSec: new BigNumber(INF_TIMESTAMP),
};
+ const orderHash = ZeroEx.getOrderHashHex(EXCHANGE_ADDRESS, order);
+ const ecSignature = await zeroEx.signOrderHashAsync(orderHash);
+ const signedOrder: SignedOrder = _.assign(order, {ecSignature});
return signedOrder;
}