commit
e1da5e6b7d
@ -0,0 +1,154 @@ |
|||||||
|
var React = require('react'); |
||||||
|
|
||||||
|
module.exports = React.createClass({ |
||||||
|
|
||||||
|
getInitialState: function() |
||||||
|
{ |
||||||
|
return { |
||||||
|
currentSelected: null, |
||||||
|
currentAddress: null |
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
getDefaultProps: function()
|
||||||
|
{ |
||||||
|
return { |
||||||
|
vmTrace: null |
||||||
|
}; |
||||||
|
},
|
||||||
|
|
||||||
|
render: function()
|
||||||
|
{
|
||||||
|
if (!this.props.vmTrace || !this.props.vmTrace.vmtrace || this.props.vmTrace.vmtrace.length === 0) |
||||||
|
return null; |
||||||
|
this.state.currentAddress = this.props.vmTrace.vmtrace[0].address |
||||||
|
this.state.currentSelected = this.props.vmTrace.codesmap[this.state.currentAddress][this.props.vmTrace.vmtrace[0].pc] |
||||||
|
return ( |
||||||
|
<div> |
||||||
|
<div id="action" > |
||||||
|
<button onClick={this.stepIntoBack} >stepIntoBack</button> |
||||||
|
<button onClick={this.stepOverBack} >stepOverBack</button> |
||||||
|
<button onClick={this.stepOverForward} >stepOverForward</button> |
||||||
|
<button onClick={this.stepIntoForward} >stepIntoForward</button> |
||||||
|
</div> |
||||||
|
<div> |
||||||
|
<select size="10" ref='itemsList' value={this.state.currentSelected}> |
||||||
|
{ this.renderAssemblyItems() } |
||||||
|
</select> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}, |
||||||
|
|
||||||
|
renderAssemblyItems: function() |
||||||
|
{ |
||||||
|
if (this.props.vmTrace) |
||||||
|
{
|
||||||
|
var selectedItem = this.state.currentSelected |
||||||
|
return this.props.vmTrace.vmtrace.map(function(item, i)
|
||||||
|
{ |
||||||
|
return <option key={i} value={i} >{item.instname}</option>; |
||||||
|
});
|
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
|
||||||
|
stepIntoBack: function () |
||||||
|
{ |
||||||
|
this.moveSelection(-1) |
||||||
|
}, |
||||||
|
|
||||||
|
stepOverBack: function() |
||||||
|
{ |
||||||
|
if (this.isReturnInstruction(this.state.currentSelected - 1)) |
||||||
|
this.stepOutBack(); |
||||||
|
else |
||||||
|
this.moveSelection(-1); |
||||||
|
}, |
||||||
|
|
||||||
|
stepOverForward: function() |
||||||
|
{ |
||||||
|
if (this.isCallInstruction(this.state.currentSelected)) |
||||||
|
this.stepOutForward(); |
||||||
|
else |
||||||
|
this.moveSelection(1); |
||||||
|
}, |
||||||
|
|
||||||
|
stepIntoForward: function() |
||||||
|
{ |
||||||
|
this.moveSelection(1) |
||||||
|
}, |
||||||
|
|
||||||
|
stepOverBack: function() |
||||||
|
{ |
||||||
|
if (this.isReturnInstruction(this.state.currentSelected - 1)) |
||||||
|
this.stepOutBack(); |
||||||
|
else |
||||||
|
this.moveSelection(-1); |
||||||
|
}, |
||||||
|
|
||||||
|
stepOverForward: function() |
||||||
|
{ |
||||||
|
if (this.isCallInstruction(this.state.currentSelected)) |
||||||
|
this.stepOutForward(); |
||||||
|
else |
||||||
|
this.moveSelection(1); |
||||||
|
}, |
||||||
|
|
||||||
|
isCallInstruction: function(index) |
||||||
|
{ |
||||||
|
var state = this.props.vmTrace.vmtrace[index]; |
||||||
|
return state.instname === "CALL" || state.instname === "CREATE"; |
||||||
|
}, |
||||||
|
|
||||||
|
isReturnInstruction: function(index) |
||||||
|
{ |
||||||
|
var state = this.props.vmTrace.vmtrace[index]; |
||||||
|
return state.instname === "RETURN" |
||||||
|
}, |
||||||
|
|
||||||
|
stepOutBack: function() |
||||||
|
{ |
||||||
|
var i = this.state.currentSelected - 1; |
||||||
|
var depth = 0; |
||||||
|
while (--i >= 0) { |
||||||
|
if (this.isCallInstruction(i)) |
||||||
|
if (depth == 0) |
||||||
|
break; |
||||||
|
else depth--; |
||||||
|
else if (this.isReturnInstruction(i)) |
||||||
|
depth++; |
||||||
|
} |
||||||
|
this.selectState(i); |
||||||
|
}, |
||||||
|
|
||||||
|
stepOutForward: function() |
||||||
|
{ |
||||||
|
var i = this.state.currentSelected; |
||||||
|
var depth = 0; |
||||||
|
while (++i < this.props.vmTrace.vmtrace.length) { |
||||||
|
if (this.isReturnInstruction(i)) |
||||||
|
if (depth == 0) |
||||||
|
break; |
||||||
|
else |
||||||
|
depth--; |
||||||
|
else if (this.isCallInstruction(i)) |
||||||
|
depth++; |
||||||
|
} |
||||||
|
this.selectState(i + 1); |
||||||
|
}, |
||||||
|
|
||||||
|
moveSelection: function(incr) |
||||||
|
{ |
||||||
|
this.selectState(this.state.currentSelected + incr) |
||||||
|
}, |
||||||
|
|
||||||
|
selectState: function(index) |
||||||
|
{ |
||||||
|
var newIndex = this.props.vmTrace.codesmap[this.state.currentAddress][this.props.vmTrace.vmtrace[index].pc] |
||||||
|
this.state.currentSelected = index |
||||||
|
this.refs.itemsList.value = this.state.currentSelected |
||||||
|
if (this.props.vmTrace.vmtrace[index].address && this.state.currentAddress !== this.props.vmTrace.vmtrace[index].address) |
||||||
|
this.state.currentAddress = this.props.vmTrace.vmtrace[index].address |
||||||
|
}, |
||||||
|
}) |
@ -1,7 +1,8 @@ |
|||||||
var React = require('react'); |
var React = require('react'); |
||||||
|
var AssemblyItemsBrowser = require('./assemblyItemsBrowser'); |
||||||
|
|
||||||
module.exports = React.createClass({ |
module.exports = React.createClass({ |
||||||
render: function() { |
render: function() { |
||||||
return (<div>{this.props.vmTrace}</div>) |
return ( <AssemblyItemsBrowser vmTrace={this.props.vmTrace} /> ) |
||||||
} |
} |
||||||
}); |
}); |
||||||
|
@ -1,5 +1,5 @@ |
|||||||
module.exports = { |
module.exports = { |
||||||
retrieveVmTrace: function(blockNumber, txNumber) { |
retrieveVmTrace: function(blockNumber, txNumber) { |
||||||
return web3.admin.vmTrace(blockNumber, parseInt(txNumber), "TmrjdiILLn0="); |
return web3.admin.vmTrace(blockNumber, parseInt(txNumber)); |
||||||
} |
} |
||||||
} |
} |
||||||
|
@ -1,270 +1,270 @@ |
|||||||
module.exports = { |
module.exports = { |
||||||
extend: function(web3) { |
extend: function(web3) { |
||||||
|
|
||||||
// ADMIN
|
// ADMIN
|
||||||
web3._extend({ |
web3._extend({ |
||||||
property: 'admin', |
property: 'admin', |
||||||
methods: |
methods: |
||||||
[ |
[ |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'addPeer', |
name: 'addPeer', |
||||||
call: 'admin_addPeer', |
call: 'admin_addPeer', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.utils.fromDecimal], |
inputFormatter: [web3._extend.utils.fromDecimal], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'exportChain', |
name: 'exportChain', |
||||||
call: 'admin_exportChain', |
call: 'admin_exportChain', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [null], |
inputFormatter: [null], |
||||||
outputFormatter: function(obj) { return obj; } |
outputFormatter: function(obj) { return obj; } |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'importChain', |
name: 'importChain', |
||||||
call: 'admin_importChain', |
call: 'admin_importChain', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [null], |
inputFormatter: [null], |
||||||
outputFormatter: function(obj) { return obj; } |
outputFormatter: function(obj) { return obj; } |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'verbosity', |
name: 'verbosity', |
||||||
call: 'admin_verbosity', |
call: 'admin_verbosity', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.utils.formatInputInt], |
inputFormatter: [web3._extend.utils.formatInputInt], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'setSolc', |
name: 'setSolc', |
||||||
call: 'admin_setSolc', |
call: 'admin_setSolc', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [null], |
inputFormatter: [null], |
||||||
outputFormatter: web3._extend.formatters.formatOutputString |
outputFormatter: web3._extend.formatters.formatOutputString |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'startRPC', |
name: 'startRPC', |
||||||
call: 'admin_startRPC', |
call: 'admin_startRPC', |
||||||
params: 4, |
params: 4, |
||||||
inputFormatter: [null,web3._extend.utils.formatInputInteger,null,null], |
inputFormatter: [null,web3._extend.utils.formatInputInteger,null,null], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'stopRPC', |
name: 'stopRPC', |
||||||
call: 'admin_stopRPC', |
call: 'admin_stopRPC', |
||||||
params: 0, |
params: 0, |
||||||
inputFormatter: [], |
inputFormatter: [], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'vmTrace', |
name: 'vmTrace', |
||||||
call: 'admin_eth_vmTrace', |
call: 'admin_eth_vmTrace', |
||||||
inputFormatter: [null, null, null], |
inputFormatter: [null, null], |
||||||
params: 3 |
params: 2 |
||||||
}),
|
}),
|
||||||
], |
], |
||||||
properties: |
properties: |
||||||
[ |
[ |
||||||
new web3._extend.Property({ |
new web3._extend.Property({ |
||||||
name: 'nodeInfo', |
name: 'nodeInfo', |
||||||
getter: 'admin_nodeInfo', |
getter: 'admin_nodeInfo', |
||||||
outputFormatter: web3._extend.formatters.formatOutputString |
outputFormatter: web3._extend.formatters.formatOutputString |
||||||
}), |
}), |
||||||
new web3._extend.Property({ |
new web3._extend.Property({ |
||||||
name: 'peers', |
name: 'peers', |
||||||
getter: 'admin_peers', |
getter: 'admin_peers', |
||||||
outputFormatter: function(obj) { return obj; } |
outputFormatter: function(obj) { return obj; } |
||||||
}), |
}), |
||||||
new web3._extend.Property({ |
new web3._extend.Property({ |
||||||
name: 'datadir', |
name: 'datadir', |
||||||
getter: 'admin_datadir', |
getter: 'admin_datadir', |
||||||
outputFormatter: web3._extend.formatters.formatOutputString |
outputFormatter: web3._extend.formatters.formatOutputString |
||||||
}), |
}), |
||||||
new web3._extend.Property({ |
new web3._extend.Property({ |
||||||
name: 'chainSyncStatus', |
name: 'chainSyncStatus', |
||||||
getter: 'admin_chainSyncStatus', |
getter: 'admin_chainSyncStatus', |
||||||
outputFormatter: function(obj) { return obj; } |
outputFormatter: function(obj) { return obj; } |
||||||
}) |
}) |
||||||
] |
] |
||||||
}); |
}); |
||||||
|
|
||||||
// DEBUG
|
// DEBUG
|
||||||
web3._extend({ |
web3._extend({ |
||||||
property: 'debug', |
property: 'debug', |
||||||
methods: |
methods: |
||||||
[ |
[ |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'printBlock', |
name: 'printBlock', |
||||||
call: 'debug_printBlock', |
call: 'debug_printBlock', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.formatters.formatInputInt], |
inputFormatter: [web3._extend.formatters.formatInputInt], |
||||||
outputFormatter: web3._extend.formatters.formatOutputString |
outputFormatter: web3._extend.formatters.formatOutputString |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'getBlockRlp', |
name: 'getBlockRlp', |
||||||
call: 'debug_getBlockRlp', |
call: 'debug_getBlockRlp', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.formatters.formatInputInt], |
inputFormatter: [web3._extend.formatters.formatInputInt], |
||||||
outputFormatter: web3._extend.formatters.formatOutputString |
outputFormatter: web3._extend.formatters.formatOutputString |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'setHead', |
name: 'setHead', |
||||||
call: 'debug_setHead', |
call: 'debug_setHead', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.formatters.formatInputInt], |
inputFormatter: [web3._extend.formatters.formatInputInt], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'processBlock', |
name: 'processBlock', |
||||||
call: 'debug_processBlock', |
call: 'debug_processBlock', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.formatters.formatInputInt], |
inputFormatter: [web3._extend.formatters.formatInputInt], |
||||||
outputFormatter: function(obj) { return obj; } |
outputFormatter: function(obj) { return obj; } |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'seedHash', |
name: 'seedHash', |
||||||
call: 'debug_seedHash', |
call: 'debug_seedHash', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.formatters.formatInputInt], |
inputFormatter: [web3._extend.formatters.formatInputInt], |
||||||
outputFormatter: web3._extend.formatters.formatOutputString |
outputFormatter: web3._extend.formatters.formatOutputString |
||||||
}) , |
}) , |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'dumpBlock', |
name: 'dumpBlock', |
||||||
call: 'debug_dumpBlock', |
call: 'debug_dumpBlock', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.formatters.formatInputInt], |
inputFormatter: [web3._extend.formatters.formatInputInt], |
||||||
outputFormatter: function(obj) { return obj; } |
outputFormatter: function(obj) { return obj; } |
||||||
}) |
}) |
||||||
], |
], |
||||||
properties: |
properties: |
||||||
[ |
[ |
||||||
] |
] |
||||||
}); |
}); |
||||||
|
|
||||||
// MINER
|
// MINER
|
||||||
web3._extend({ |
web3._extend({ |
||||||
property: 'miner', |
property: 'miner', |
||||||
methods: |
methods: |
||||||
[ |
[ |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'start', |
name: 'start', |
||||||
call: 'miner_start', |
call: 'miner_start', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.formatters.formatInputInt], |
inputFormatter: [web3._extend.formatters.formatInputInt], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'stop', |
name: 'stop', |
||||||
call: 'miner_stop', |
call: 'miner_stop', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.formatters.formatInputInt], |
inputFormatter: [web3._extend.formatters.formatInputInt], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'setExtra', |
name: 'setExtra', |
||||||
call: 'miner_setExtra', |
call: 'miner_setExtra', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.utils.formatInputString], |
inputFormatter: [web3._extend.utils.formatInputString], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'setGasPrice', |
name: 'setGasPrice', |
||||||
call: 'miner_setGasPrice', |
call: 'miner_setGasPrice', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.utils.formatInputString], |
inputFormatter: [web3._extend.utils.formatInputString], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'startAutoDAG', |
name: 'startAutoDAG', |
||||||
call: 'miner_startAutoDAG', |
call: 'miner_startAutoDAG', |
||||||
params: 0, |
params: 0, |
||||||
inputFormatter: [], |
inputFormatter: [], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'stopAutoDAG', |
name: 'stopAutoDAG', |
||||||
call: 'miner_stopAutoDAG', |
call: 'miner_stopAutoDAG', |
||||||
params: 0, |
params: 0, |
||||||
inputFormatter: [], |
inputFormatter: [], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'makeDAG', |
name: 'makeDAG', |
||||||
call: 'miner_makeDAG', |
call: 'miner_makeDAG', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.formatters.inputDefaultBlockNumberFormatter], |
inputFormatter: [web3._extend.formatters.inputDefaultBlockNumberFormatter], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}) |
}) |
||||||
], |
], |
||||||
properties: |
properties: |
||||||
[ |
[ |
||||||
new web3._extend.Property({ |
new web3._extend.Property({ |
||||||
name: 'hashrate', |
name: 'hashrate', |
||||||
getter: 'miner_hashrate', |
getter: 'miner_hashrate', |
||||||
outputFormatter: web3._extend.utils.toDecimal |
outputFormatter: web3._extend.utils.toDecimal |
||||||
}) |
}) |
||||||
] |
] |
||||||
}); |
}); |
||||||
|
|
||||||
// NETWORK
|
// NETWORK
|
||||||
web3._extend({ |
web3._extend({ |
||||||
property: 'network', |
property: 'network', |
||||||
methods: |
methods: |
||||||
[ |
[ |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'addPeer', |
name: 'addPeer', |
||||||
call: 'net_addPeer', |
call: 'net_addPeer', |
||||||
params: 1, |
params: 1, |
||||||
inputFormatter: [web3._extend.utils.formatInputString], |
inputFormatter: [web3._extend.utils.formatInputString], |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Method({ |
new web3._extend.Method({ |
||||||
name: 'getPeerCount', |
name: 'getPeerCount', |
||||||
call: 'net_peerCount', |
call: 'net_peerCount', |
||||||
params: 0, |
params: 0, |
||||||
inputFormatter: [], |
inputFormatter: [], |
||||||
outputFormatter: web3._extend.formatters.formatOutputString |
outputFormatter: web3._extend.formatters.formatOutputString |
||||||
}) |
}) |
||||||
], |
], |
||||||
properties: |
properties: |
||||||
[ |
[ |
||||||
new web3._extend.Property({ |
new web3._extend.Property({ |
||||||
name: 'listening', |
name: 'listening', |
||||||
getter: 'net_listening', |
getter: 'net_listening', |
||||||
outputFormatter: web3._extend.formatters.formatOutputBool |
outputFormatter: web3._extend.formatters.formatOutputBool |
||||||
}), |
}), |
||||||
new web3._extend.Property({ |
new web3._extend.Property({ |
||||||
name: 'peerCount', |
name: 'peerCount', |
||||||
getter: 'net_peerCount', |
getter: 'net_peerCount', |
||||||
outputFormatter: web3._extend.utils.toDecimal |
outputFormatter: web3._extend.utils.toDecimal |
||||||
}), |
}), |
||||||
new web3._extend.Property({ |
new web3._extend.Property({ |
||||||
name: 'peers', |
name: 'peers', |
||||||
getter: 'net_peers', |
getter: 'net_peers', |
||||||
outputFormatter: function(obj) { return obj; } |
outputFormatter: function(obj) { return obj; } |
||||||
}), |
}), |
||||||
new web3._extend.Property({ |
new web3._extend.Property({ |
||||||
name: 'version', |
name: 'version', |
||||||
getter: 'net_version', |
getter: 'net_version', |
||||||
outputFormatter: web3._extend.formatters.formatOutputString |
outputFormatter: web3._extend.formatters.formatOutputString |
||||||
}) |
}) |
||||||
] |
] |
||||||
}); |
}); |
||||||
|
|
||||||
// TX POOL
|
// TX POOL
|
||||||
web3._extend({ |
web3._extend({ |
||||||
property: 'txpool', |
property: 'txpool', |
||||||
methods: |
methods: |
||||||
[ |
[ |
||||||
], |
], |
||||||
properties: |
properties: |
||||||
[ |
[ |
||||||
new web3._extend.Property({ |
new web3._extend.Property({ |
||||||
name: 'status', |
name: 'status', |
||||||
getter: 'txpool_status', |
getter: 'txpool_status', |
||||||
outputFormatter: function(obj) { return obj; } |
outputFormatter: function(obj) { return obj; } |
||||||
}) |
}) |
||||||
] |
] |
||||||
}); |
}); |
||||||
} |
} |
||||||
}; |
}; |
||||||
|
|
||||||
|
Loading…
Reference in new issue