diff options
author | Fabio Berger <me@fabioberger.com> | 2017-06-03 01:45:57 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2017-06-03 01:45:57 +0800 |
commit | 1443c0838cbd795ae8e6273b1d7659c8e449f2eb (patch) | |
tree | 531df9d489dd4c5ce15623bee0beeae3ad58ccd4 /src/web3_wrapper.ts | |
parent | 3de655954743db4e2b9d02f5ac1243855b909236 (diff) | |
parent | d4320fec724c5bf34e7dcd006cba8ffe7a3c76d1 (diff) | |
download | dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar.gz dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar.bz2 dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar.lz dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar.xz dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar.zst dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.zip |
Merge branch 'master' into remainingTokenMethods
# Conflicts:
# src/types.ts
# src/web3_wrapper.ts
Diffstat (limited to 'src/web3_wrapper.ts')
-rw-r--r-- | src/web3_wrapper.ts | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/web3_wrapper.ts b/src/web3_wrapper.ts index 93203ff38..625a1dead 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; @@ -15,13 +17,16 @@ export class Web3Wrapper { public isAddress(address: string): boolean { return this.web3.isAddress(address); } - public async getSenderAddressIfExistsAsync(): Promise<string|undefined> { - const defaultAccount = this.web3.eth.defaultAccount; - if (!_.isUndefined(defaultAccount)) { - return defaultAccount; - } - const firstAccount = await this.getFirstAddressIfExistsAsync(); - return firstAccount; + public getDefaultAccount(): string { + return this.web3.eth.defaultAccount; + } + public setDefaultAccount(address: string): void { + this.web3.eth.defaultAccount = address; + } + 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 this.getAvailableSenderAddressesAsync(); @@ -68,6 +73,14 @@ export class Web3Wrapper { const {timestamp} = await promisify(this.web3.eth.getBlock)(blockHash); return timestamp; } + public async getSenderAddressIfExistsAsync(): Promise<string|undefined> { + const defaultAccount = this.web3.eth.defaultAccount; + if (!_.isUndefined(defaultAccount)) { + return defaultAccount; + } + const firstAccount = await this.getFirstAddressIfExistsAsync(); + return firstAccount; + } private async getAvailableSenderAddressesAsync(): Promise<string[]> { const addresses: string[] = await promisify(this.web3.eth.getAccounts)(); return addresses; |