aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonid <logvinov.leon@gmail.com>2017-06-08 22:51:25 +0800
committerGitHub <noreply@github.com>2017-06-08 22:51:25 +0800
commit0b5abb29a9ab8f2fda5bc37980c3e40296cf7696 (patch)
tree28c1e21bd631c8327d4da57971d2ff15ba20797e
parent196130ff96cd20bd13c7bada0ba5eb8d62a2cdc5 (diff)
parent2195bc61347d6d132b6ce23ec05186c4afa4dd46 (diff)
downloaddexon-0x-contracts-0b5abb29a9ab8f2fda5bc37980c3e40296cf7696.tar.gz
dexon-0x-contracts-0b5abb29a9ab8f2fda5bc37980c3e40296cf7696.tar.zst
dexon-0x-contracts-0b5abb29a9ab8f2fda5bc37980c3e40296cf7696.zip
Merge branch 'master' into interfaceTweaks
-rw-r--r--src/contract_wrappers/exchange_wrapper.ts6
-rw-r--r--test/exchange_wrapper_test.ts22
2 files changed, 28 insertions, 0 deletions
diff --git a/src/contract_wrappers/exchange_wrapper.ts b/src/contract_wrappers/exchange_wrapper.ts
index d144d8aad..9cb2332fe 100644
--- a/src/contract_wrappers/exchange_wrapper.ts
+++ b/src/contract_wrappers/exchange_wrapper.ts
@@ -342,6 +342,12 @@ export class ExchangeWrapper extends ContractWrapper {
const orderHashHex = utils.getOrderHashHex(order, exchangeInstance.address);
return orderHashHex;
}
+ private async getOrderHashHexUsingContractCallAsync(order: Order|SignedOrder): Promise<string> {
+ const exchangeInstance = await this.getExchangeContractAsync();
+ const [orderAddresses, orderValues] = ExchangeWrapper.getOrderAddressesAndValues(order);
+ const orderHashHex = await exchangeInstance.getOrderHash.call(orderAddresses, orderValues);
+ return orderHashHex;
+ }
private async stopWatchingExchangeLogEventsAsync() {
const stopWatchingPromises = _.map(this.exchangeLogEventObjs, logEventObj => {
return promisify(logEventObj.stopWatching, logEventObj)();
diff --git a/test/exchange_wrapper_test.ts b/test/exchange_wrapper_test.ts
index 08936f1d2..6fef91946 100644
--- a/test/exchange_wrapper_test.ts
+++ b/test/exchange_wrapper_test.ts
@@ -661,4 +661,26 @@ describe('ExchangeWrapper', () => {
})();
});
});
+ describe('#getOrderHashHexUsingContractCallAsync', () => {
+ let makerTokenAddress: string;
+ let takerTokenAddress: string;
+ let makerAddress: string;
+ let takerAddress: string;
+ const fillableAmount = new BigNumber(5);
+ before(async () => {
+ [, makerAddress, takerAddress] = userAddresses;
+ const [makerToken, takerToken] = tokenUtils.getNonProtocolTokens();
+ makerTokenAddress = makerToken.address;
+ takerTokenAddress = takerToken.address;
+ });
+ it('get\'s the same hash as the local function', async () => {
+ const signedOrder = await fillScenarios.createFillableSignedOrderAsync(
+ makerTokenAddress, takerTokenAddress, makerAddress, takerAddress, fillableAmount,
+ );
+ const orderHash = await zeroEx.getOrderHashHexAsync(signedOrder);
+ const orderHashFromContract = await (zeroEx.exchange as any)
+ .getOrderHashHexUsingContractCallAsync(signedOrder);
+ expect(orderHash).to.equal(orderHashFromContract);
+ });
+ });
});