diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-09-05 01:08:14 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-09-05 01:08:14 +0800 |
commit | c9e490bdaec53e3a93b5da8daaaf0b1d87d9de76 (patch) | |
tree | 49aa1f687e3b0727ff9a00815848c92cb64311f3 /src | |
parent | 6325a038188293658ad3d209cb95a2741911f5b9 (diff) | |
download | dexon-sol-tools-c9e490bdaec53e3a93b5da8daaaf0b1d87d9de76.tar dexon-sol-tools-c9e490bdaec53e3a93b5da8daaaf0b1d87d9de76.tar.gz dexon-sol-tools-c9e490bdaec53e3a93b5da8daaaf0b1d87d9de76.tar.bz2 dexon-sol-tools-c9e490bdaec53e3a93b5da8daaaf0b1d87d9de76.tar.lz dexon-sol-tools-c9e490bdaec53e3a93b5da8daaaf0b1d87d9de76.tar.xz dexon-sol-tools-c9e490bdaec53e3a93b5da8daaaf0b1d87d9de76.tar.zst dexon-sol-tools-c9e490bdaec53e3a93b5da8daaaf0b1d87d9de76.zip |
Implement zeroEx.awaitTransactionMined
Diffstat (limited to 'src')
-rw-r--r-- | src/0x.ts | 14 | ||||
-rw-r--r-- | src/web3_wrapper.ts | 4 |
2 files changed, 18 insertions, 0 deletions
@@ -1,5 +1,6 @@ import * as _ from 'lodash'; import * as BigNumber from 'bignumber.js'; +import * as Web3 from 'web3'; import {SchemaValidator, schemas} from '0x-json-schemas'; import {bigNumberConfigs} from './bignumber_config'; import * as ethUtil from 'ethereumjs-util'; @@ -248,4 +249,17 @@ export class ZeroEx { throw new Error(ZeroExError.InvalidSignature); } + public async awaitTransactionMined(txHash: string, + pollingIntervalMs: number = 500): Promise<Web3.TransactionReceipt> { + const txReceiptPromise = new Promise((resolve: (receipt: Web3.TransactionReceipt) => void, reject) => { + const intervalId = setInterval(async () => { + const transactionReceipt = await this._web3Wrapper.getTransactionReceiptAsync(txHash); + if (!_.isNull(transactionReceipt)) { + clearInterval(intervalId); + resolve(transactionReceipt); + } + }, pollingIntervalMs); + }); + return txReceiptPromise; + } } diff --git a/src/web3_wrapper.ts b/src/web3_wrapper.ts index 129017e7c..f3fe8a00b 100644 --- a/src/web3_wrapper.ts +++ b/src/web3_wrapper.ts @@ -27,6 +27,10 @@ export class Web3Wrapper { const nodeVersion = await promisify(this.web3.version.getNode)(); return nodeVersion; } + public async getTransactionReceiptAsync(txHash: string): Promise<Web3.TransactionReceipt> { + const transactionReceipt = await promisify(this.web3.eth.getTransactionReceipt)(txHash); + return transactionReceipt; + } public getCurrentProvider(): Web3.Provider { return this.web3.currentProvider; } |