From a13f4e37255a912c90f7648128dfdd54e5d9a0c1 Mon Sep 17 00:00:00 2001 From: yann300 Date: Thu, 16 May 2019 14:56:43 +0200 Subject: [PATCH] make Debugger.prototype.debug returns a Promise --- remix-debug/src/debugger/debugger.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/remix-debug/src/debugger/debugger.js b/remix-debug/src/debugger/debugger.js index 0d9ede06de..f1f585b167 100644 --- a/remix-debug/src/debugger/debugger.js +++ b/remix-debug/src/debugger/debugger.js @@ -72,31 +72,41 @@ Debugger.prototype.debug = function (blockNumber, txNumber, tx, loadingCb) { const self = this let web3 = this.debugger.web3 + return new Promise((resolve, reject) => { if (this.debugger.traceManager.isLoading) { - return + return resolve() } if (tx) { if (!tx.to) { tx.to = traceHelper.contractCreationToken('0') } - return self.debugTx(tx, loadingCb) + self.debugTx(tx, loadingCb) + return resolve() } try { if (txNumber.indexOf('0x') !== -1) { return web3.eth.getTransaction(txNumber, function (_error, result) { + if (_error) return reject(_error) + if (!result) return reject('cannot find transaction ' + txNumber) let tx = result self.debugTx(tx, loadingCb) + return resolve() }) } web3.eth.getTransactionFromBlock(blockNumber, txNumber, function (_error, result) { + if (_error) return reject(_error) + if (!result) return reject('cannot find transaction ' + blockNumber + ' ' + txNumber) let tx = result self.debugTx(tx, loadingCb) + return resolve() }) } catch (e) { console.error(e.message) + return reject(e.message) } + }) } Debugger.prototype.debugTx = function (tx, loadingCb) {