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) {