parent
93817b0daf
commit
223f5581d4
@ -0,0 +1,50 @@ |
|||||||
|
'use strict' |
||||||
|
var DropdownPanel = require('./DropdownPanel') |
||||||
|
var remixDebug = require('remix-debug') |
||||||
|
var StorageViewer = remixDebug.storage.StorageViewer |
||||||
|
var yo = require('yo-yo') |
||||||
|
|
||||||
|
function StoragePanel (_parent, _traceManager) { |
||||||
|
this.parent = _parent |
||||||
|
this.storageResolver = null |
||||||
|
this.traceManager = _traceManager |
||||||
|
this.basicPanel = new DropdownPanel('Storage', {json: true}) |
||||||
|
this.init() |
||||||
|
this.disabled = false |
||||||
|
} |
||||||
|
|
||||||
|
StoragePanel.prototype.render = function () { |
||||||
|
return yo`<div id='storagepanel' >${this.basicPanel.render()}</div>` |
||||||
|
} |
||||||
|
|
||||||
|
StoragePanel.prototype.init = function () { |
||||||
|
var self = this |
||||||
|
this.parent.event.register('indexChanged', this, function (index) { |
||||||
|
if (self.disabled) return |
||||||
|
if (index < 0) return |
||||||
|
if (self.parent.currentStepIndex !== index) return |
||||||
|
if (!self.storageResolver) return |
||||||
|
|
||||||
|
this.traceManager.getCurrentCalledAddressAt(index, (error, address) => { |
||||||
|
if (!error) { |
||||||
|
var storageViewer = new StorageViewer({ |
||||||
|
stepIndex: self.parent.currentStepIndex, |
||||||
|
tx: self.parent.tx, |
||||||
|
address: address |
||||||
|
}, self.storageResolver, self.traceManager) |
||||||
|
|
||||||
|
storageViewer.storageRange((error, storage) => { |
||||||
|
if (error) { |
||||||
|
console.log(error) |
||||||
|
self.basicPanel.update({}) |
||||||
|
} else if (self.parent.currentStepIndex === index) { |
||||||
|
var header = storageViewer.isComplete(address) ? 'completely loaded' : 'partially loaded...' |
||||||
|
self.basicPanel.update(storage, header) |
||||||
|
} |
||||||
|
}) |
||||||
|
} |
||||||
|
}) |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
module.exports = StoragePanel |
Loading…
Reference in new issue