aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-05-30 04:14:18 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-05-30 04:14:18 +0800
commit7dddf2010e16167260f7ffbb7c7d2fd83609d8a0 (patch)
tree9e5ceec9bba32b24a8e4542076ddbba844787760
parent34de5986421cca90d37b30a1b64678a8a5149b57 (diff)
downloaddexon-0x-contracts-7dddf2010e16167260f7ffbb7c7d2fd83609d8a0.tar.gz
dexon-0x-contracts-7dddf2010e16167260f7ffbb7c7d2fd83609d8a0.tar.zst
dexon-0x-contracts-7dddf2010e16167260f7ffbb7c7d2fd83609d8a0.zip
Add getExchangeInstanceOrThrowAsync && getSenderAddressOrThrowAsync
-rw-r--r--src/contract_wrappers/exchange_wrapper.ts13
-rw-r--r--src/web3_wrapper.ts7
2 files changed, 14 insertions, 6 deletions
diff --git a/src/contract_wrappers/exchange_wrapper.ts b/src/contract_wrappers/exchange_wrapper.ts
index f0f153c2b..e18b6d35e 100644
--- a/src/contract_wrappers/exchange_wrapper.ts
+++ b/src/contract_wrappers/exchange_wrapper.ts
@@ -16,11 +16,8 @@ export class ExchangeWrapper extends ContractWrapper {
assert.doesConformToSchema('ecSignature', ecSignature, ecSignatureSchema);
assert.isETHAddressHex('signerAddressHex', signerAddressHex);
- const senderAddressIfExists = await this.web3Wrapper.getSenderAddressIfExistsAsync();
- assert.assert(!_.isUndefined(senderAddressIfExists), ZeroExError.USER_HAS_NO_ASSOCIATED_ADDRESSES);
-
- const contractInstance = await this.instantiateContractIfExistsAsync((ExchangeArtifacts as any));
- const exchangeInstance = contractInstance as ExchangeContract;
+ const senderAddress = await this.web3Wrapper.getSenderAddressOrThrowAsync();
+ const exchangeInstance = await this.getExchangeInstanceOrThrowAsync();
const isValidSignature = await exchangeInstance.isValidSignature.call(
signerAddressHex,
@@ -29,9 +26,13 @@ export class ExchangeWrapper extends ContractWrapper {
ecSignature.r,
ecSignature.s,
{
- from: senderAddressIfExists,
+ from: senderAddress,
},
);
return isValidSignature;
}
+ private async getExchangeInstanceOrThrowAsync(): Promise<ExchangeContract> {
+ const contractInstance = await this.instantiateContractIfExistsAsync((ExchangeArtifacts as any));
+ return contractInstance as ExchangeContract;
+ }
}
diff --git a/src/web3_wrapper.ts b/src/web3_wrapper.ts
index 3b460e4da..72daabe6f 100644
--- a/src/web3_wrapper.ts
+++ b/src/web3_wrapper.ts
@@ -2,6 +2,8 @@ import * as _ from 'lodash';
import * as Web3 from 'web3';
import * as BigNumber from 'bignumber.js';
import promisify = require('es6-promisify');
+import {ZeroExError} from "./types";
+import {assert} from "./utils/assert";
export class Web3Wrapper {
private web3: Web3;
@@ -20,6 +22,11 @@ export class Web3Wrapper {
const firstAccount = await this.getFirstAddressIfExistsAsync();
return firstAccount;
}
+ public async getSenderAddressOrThrowAsync(): Promise<string> {
+ const senderAddressIfExists = await this.getSenderAddressIfExistsAsync();
+ assert.assert(!_.isUndefined(senderAddressIfExists), ZeroExError.USER_HAS_NO_ASSOCIATED_ADDRESSES);
+ return senderAddressIfExists as string;
+ }
public async getFirstAddressIfExistsAsync(): Promise<string|undefined> {
const addresses = await promisify(this.web3.eth.getAccounts)();
if (_.isEmpty(addresses)) {