You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.9 KiB
72 lines
1.9 KiB
9 years ago
|
'use strict'
|
||
8 years ago
|
var DropdownPanel = require('./DropdownPanel')
|
||
7 years ago
|
var remixCore = require('remix-core')
|
||
|
var StorageViewer = remixCore.storage.StorageViewer
|
||
9 years ago
|
var yo = require('yo-yo')
|
||
|
|
||
8 years ago
|
function FullStoragesChanges (_parent, _traceManager) {
|
||
|
this.storageResolver = null
|
||
9 years ago
|
this.parent = _parent
|
||
|
this.traceManager = _traceManager
|
||
9 years ago
|
this.addresses = []
|
||
|
this.view
|
||
|
this.traceLength
|
||
8 years ago
|
this.basicPanel = new DropdownPanel('Full Storages Changes', {json: true})
|
||
9 years ago
|
this.init()
|
||
|
}
|
||
|
|
||
|
FullStoragesChanges.prototype.render = function () {
|
||
9 years ago
|
var view = yo`<div id='fullstorageschangespanel' >${this.basicPanel.render()}</div>`
|
||
|
if (!this.view) {
|
||
|
this.view = view
|
||
|
}
|
||
|
return view
|
||
|
}
|
||
|
|
||
9 years ago
|
FullStoragesChanges.prototype.init = function () {
|
||
|
var self = this
|
||
8 years ago
|
this.parent.event.register('newTraceLoaded', this, function (length) {
|
||
9 years ago
|
self.panels = []
|
||
|
self.traceManager.getAddresses(function (error, addresses) {
|
||
|
if (!error) {
|
||
|
self.addresses = addresses
|
||
8 years ago
|
self.basicPanel.update({})
|
||
9 years ago
|
}
|
||
|
})
|
||
|
|
||
|
self.traceManager.getLength(function (error, length) {
|
||
|
if (!error) {
|
||
|
self.traceLength = length
|
||
9 years ago
|
}
|
||
|
})
|
||
|
})
|
||
|
|
||
8 years ago
|
this.parent.event.register('indexChanged', this, function (index) {
|
||
9 years ago
|
if (index < 0) return
|
||
|
if (self.parent.currentStepIndex !== index) return
|
||
8 years ago
|
if (!self.storageResolver) return
|
||
9 years ago
|
|
||
9 years ago
|
if (index === self.traceLength - 1) {
|
||
|
var storageJSON = {}
|
||
|
for (var k in self.addresses) {
|
||
8 years ago
|
var address = self.addresses[k]
|
||
8 years ago
|
var storageViewer = new StorageViewer({
|
||
|
stepIndex: self.parent.currentStepIndex,
|
||
8 years ago
|
tx: self.parent.tx,
|
||
|
address: address
|
||
|
}, self.storageResolver, self.traceManager)
|
||
8 years ago
|
storageViewer.storageRange(function (error, result) {
|
||
9 years ago
|
if (!error) {
|
||
8 years ago
|
storageJSON[address] = result
|
||
8 years ago
|
self.basicPanel.update(storageJSON)
|
||
9 years ago
|
}
|
||
8 years ago
|
})
|
||
9 years ago
|
}
|
||
8 years ago
|
} else {
|
||
|
self.basicPanel.update({})
|
||
9 years ago
|
}
|
||
9 years ago
|
})
|
||
|
}
|
||
|
|
||
|
module.exports = FullStoragesChanges
|