From f02df2d4f98494b8954c28dc01c76c074dcf4ba0 Mon Sep 17 00:00:00 2001 From: yann300 Date: Thu, 16 May 2019 14:56:02 +0200 Subject: [PATCH 1/4] fix bad reference --- remix-debug/src/debugger/VmDebugger.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/remix-debug/src/debugger/VmDebugger.js b/remix-debug/src/debugger/VmDebugger.js index a21e5c5f61..896efdceea 100644 --- a/remix-debug/src/debugger/VmDebugger.js +++ b/remix-debug/src/debugger/VmDebugger.js @@ -196,7 +196,7 @@ class VmDebuggerLogic { self.event.trigger('newTrace', []) }) - self.debugger.event.register('callTreeReady', function () { + self.debugger.callTree.event.register('callTreeReady', function () { if (self.debugger.callTree.reducedTrace.length) { return self.event.trigger('newCallTree', []) } From 1f2b062d529b576c89a5fd40dcf367e3cb55b5d2 Mon Sep 17 00:00:00 2001 From: yann300 Date: Thu, 16 May 2019 14:56:43 +0200 Subject: [PATCH 2/4] 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) { From eed93ca705d688e6b0bb8700bdaa91b72e5e75fd Mon Sep 17 00:00:00 2001 From: yann300 Date: Thu, 16 May 2019 15:03:18 +0200 Subject: [PATCH 3/4] fix health checking --- remix-debug/src/debugger/debugger.js | 44 ++++++++++++++-------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/remix-debug/src/debugger/debugger.js b/remix-debug/src/debugger/debugger.js index f1f585b167..9a2aac4415 100644 --- a/remix-debug/src/debugger/debugger.js +++ b/remix-debug/src/debugger/debugger.js @@ -73,39 +73,39 @@ Debugger.prototype.debug = function (blockNumber, txNumber, tx, loadingCb) { let web3 = this.debugger.web3 return new Promise((resolve, reject) => { - if (this.debugger.traceManager.isLoading) { + if (this.debugger.traceManager.isLoading) { return resolve() - } - - if (tx) { - if (!tx.to) { - tx.to = traceHelper.contractCreationToken('0') } + + if (tx) { + if (!tx.to) { + tx.to = traceHelper.contractCreationToken('0') + } self.debugTx(tx, loadingCb) return resolve() - } + } - try { - if (txNumber.indexOf('0x') !== -1) { - return web3.eth.getTransaction(txNumber, function (_error, result) { + 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) + let tx = result + self.debugTx(tx, loadingCb) return resolve() - }) - } - web3.eth.getTransactionFromBlock(blockNumber, txNumber, function (_error, result) { + }) + } + 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) + let tx = result + self.debugTx(tx, loadingCb) return resolve() - }) - } catch (e) { - console.error(e.message) + }) + } catch (e) { + console.error(e.message) return reject(e.message) - } + } }) } @@ -125,7 +125,7 @@ Debugger.prototype.debugTx = function (tx, loadingCb) { this.vmDebuggerLogic.start() this.step_manager.event.register('stepChanged', this, function (stepIndex) { - if (!stepIndex) { + if (typeof stepIndex !== 'number' || stepIndex >= self.step_manager.traceLength) { return self.event.trigger('endDebug') } From 7f8bf6c023d1cd8a318772a83e8b610ae18d001e Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 20 May 2019 10:32:52 +0200 Subject: [PATCH 4/4] use es6 --- remix-debug/src/debugger/debugger.js | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/remix-debug/src/debugger/debugger.js b/remix-debug/src/debugger/debugger.js index 9a2aac4415..56b911b844 100644 --- a/remix-debug/src/debugger/debugger.js +++ b/remix-debug/src/debugger/debugger.js @@ -69,7 +69,6 @@ Debugger.prototype.updateWeb3 = function (web3) { } Debugger.prototype.debug = function (blockNumber, txNumber, tx, loadingCb) { - const self = this let web3 = this.debugger.web3 return new Promise((resolve, reject) => { @@ -81,25 +80,23 @@ Debugger.prototype.debug = function (blockNumber, txNumber, tx, loadingCb) { if (!tx.to) { tx.to = traceHelper.contractCreationToken('0') } - self.debugTx(tx, loadingCb) + this.debugTx(tx, loadingCb) return resolve() } try { if (txNumber.indexOf('0x') !== -1) { - return web3.eth.getTransaction(txNumber, function (_error, result) { + return web3.eth.getTransaction(txNumber, (_error, tx) => { if (_error) return reject(_error) - if (!result) return reject('cannot find transaction ' + txNumber) - let tx = result - self.debugTx(tx, loadingCb) + if (!tx) return reject('cannot find transaction ' + txNumber) + this.debugTx(tx, loadingCb) return resolve() }) } - web3.eth.getTransactionFromBlock(blockNumber, txNumber, function (_error, result) { + web3.eth.getTransactionFromBlock(blockNumber, txNumber, (_error, tx) => { if (_error) return reject(_error) - if (!result) return reject('cannot find transaction ' + blockNumber + ' ' + txNumber) - let tx = result - self.debugTx(tx, loadingCb) + if (!tx) return reject('cannot find transaction ' + blockNumber + ' ' + txNumber) + this.debugTx(tx, loadingCb) return resolve() }) } catch (e) {