diff --git a/index.js b/index.js new file mode 100644 index 0000000000..46f9a28b07 --- /dev/null +++ b/index.js @@ -0,0 +1,2 @@ +var Debugger = require('./src/Ethdebugger') +module.exports = Debugger diff --git a/src/Ethdebugger.js b/src/Ethdebugger.js index 49b828548b..4a1e04a260 100644 --- a/src/Ethdebugger.js +++ b/src/Ethdebugger.js @@ -11,15 +11,20 @@ var yo = require('yo-yo') var init = require('./helpers/init') var ui = require('./helpers/ui') -function Ethdebugger () { +function Ethdebugger (_web3) { util.extend(this, new EventManager()) this.currentStepIndex = -1 this.tx this.statusMessage = '' this.view + if (_web3) { + this.web3 = _web3 + init.extendWeb3(this.web3) + } else { + this.web3 = init.loadWeb3() + } - this.web3 = init.loadWeb3() this.traceManager = new TraceManager(this.web3) var self = this @@ -41,6 +46,10 @@ function Ethdebugger () { this.sticker = new Sticker(this, this.traceManager, this.web3) } +Ethdebugger.prototype.debug = function (tx) { + this.txBrowser.load(tx.hash) +} + Ethdebugger.prototype.render = function () { var view = yo`

VM Debugger

diff --git a/src/TxBrowser.js b/src/TxBrowser.js index d9c23f3e92..6ba1aff5ac 100644 --- a/src/TxBrowser.js +++ b/src/TxBrowser.js @@ -102,6 +102,12 @@ TxBrowser.prototype.updateTxN = function (ev) { this.txNumber = ev.target.value } +TxBrowser.prototype.load = function (txHash) { + this.txNumber = txHash + yo.update(this.view, this.render()) + this.submit() +} + TxBrowser.prototype.init = function (ev) { this.setDefaultValues() yo.update(this.view, this.render()) diff --git a/src/helpers/init.js b/src/helpers/init.js index bc1712165b..fdf71cf492 100644 --- a/src/helpers/init.js +++ b/src/helpers/init.js @@ -10,6 +10,10 @@ module.exports = { return web3 }, + extendWeb3: function (web3) { + Web3Admin.extend(web3) + }, + setProvider: function (web3, url) { web3.setProvider(new web3.providers.HttpProvider(url)) }