From 459e045e042dd406e4f03e566630e249da1aac74 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Sun, 5 Jul 2020 08:47:22 -0400 Subject: [PATCH] refactor getSourceLocationFromVMTraceIndex to a promise --- .../src/solidity-decoder/internalCallTree.js | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/libs/remix-debug/src/solidity-decoder/internalCallTree.js b/libs/remix-debug/src/solidity-decoder/internalCallTree.js index a1c9da1969..7a14e0fc70 100644 --- a/libs/remix-debug/src/solidity-decoder/internalCallTree.js +++ b/libs/remix-debug/src/solidity-decoder/internalCallTree.js @@ -126,18 +126,19 @@ class InternalCallTree { extractSourceLocation (step) { return new Promise((resolve, reject) => { - try { - const address = this.traceManager.getCurrentCalledAddressAt(step) - try { - this.sourceLocationTracker.getSourceLocationFromVMTraceIndex(address, step, this.solidityProxy.contracts).then(resolve).catch((error) => { - return reject('InternalCallTree - Cannot retrieve sourcelocation for step ' + step + ' ' + error) - }) - } catch (error) { + this.traceManager.getCurrentCalledAddressAt(step, (error, address) => { + if (!error) { + try { + this.sourceLocationTracker.getSourceLocationFromVMTraceIndex(address, step, this.solidityProxy.contracts).then(resolve).catch((error) => { + return reject('InternalCallTree - Cannot retrieve sourcelocation for step ' + step + ' ' + error) + }) + } catch (error) { + return reject('InternalCallTree - Cannot retrieve address for step ' + step + ' ' + error) + } + } else { return reject('InternalCallTree - Cannot retrieve address for step ' + step + ' ' + error) } - } catch (error) { - return reject('InternalCallTree - Cannot retrieve address for step ' + step + ' ' + error) - } + }) }) }