aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-04-14 18:49:30 +0800
committerobscuren <geffobscura@gmail.com>2015-04-14 18:49:30 +0800
commit13eb46ea94e48003608e32795a3070657dcb0d0c (patch)
treec04bef8ad852ae70676eedd7bd222412917a9519 /cmd
parent9800c84348b5492dd87802f82ef54c5b9676a52a (diff)
downloaddexon-13eb46ea94e48003608e32795a3070657dcb0d0c.tar
dexon-13eb46ea94e48003608e32795a3070657dcb0d0c.tar.gz
dexon-13eb46ea94e48003608e32795a3070657dcb0d0c.tar.bz2
dexon-13eb46ea94e48003608e32795a3070657dcb0d0c.tar.lz
dexon-13eb46ea94e48003608e32795a3070657dcb0d0c.tar.xz
dexon-13eb46ea94e48003608e32795a3070657dcb0d0c.tar.zst
dexon-13eb46ea94e48003608e32795a3070657dcb0d0c.zip
geth: added print block to admin
Diffstat (limited to 'cmd')
-rw-r--r--cmd/geth/admin.go33
1 files changed, 32 insertions, 1 deletions
diff --git a/cmd/geth/admin.go b/cmd/geth/admin.go
index 5f1cb8c96..f8c717187 100644
--- a/cmd/geth/admin.go
+++ b/cmd/geth/admin.go
@@ -32,7 +32,6 @@ func (js *jsre) adminBindings() {
admin.Set("unlock", js.unlock)
admin.Set("import", js.importChain)
admin.Set("export", js.exportChain)
- admin.Set("dumpBlock", js.dumpBlock)
admin.Set("verbosity", js.verbosity)
admin.Set("backtrace", js.backtrace)
@@ -43,6 +42,12 @@ func (js *jsre) adminBindings() {
miner.Set("stop", js.stopMining)
miner.Set("hashrate", js.hashrate)
miner.Set("setExtra", js.setExtra)
+
+ admin.Set("debug", struct{}{})
+ t, _ = admin.Get("debug")
+ debug := t.Object()
+ debug.Set("printBlock", js.printBlock)
+ debug.Set("dumpBlock", js.dumpBlock)
}
func (js *jsre) setExtra(call otto.FunctionCall) otto.Value {
@@ -284,6 +289,32 @@ func (js *jsre) exportChain(call otto.FunctionCall) otto.Value {
return otto.TrueValue()
}
+func (js *jsre) printBlock(call otto.FunctionCall) otto.Value {
+ var block *types.Block
+ if len(call.ArgumentList) > 0 {
+ if call.Argument(0).IsNumber() {
+ num, _ := call.Argument(0).ToInteger()
+ block = js.ethereum.ChainManager().GetBlockByNumber(uint64(num))
+ } else if call.Argument(0).IsString() {
+ hash, _ := call.Argument(0).ToString()
+ block = js.ethereum.ChainManager().GetBlock(common.HexToHash(hash))
+ } else {
+ fmt.Println("invalid argument for dump. Either hex string or number")
+ }
+
+ } else {
+ block = js.ethereum.ChainManager().CurrentBlock()
+ }
+ if block == nil {
+ fmt.Println("block not found")
+ return otto.UndefinedValue()
+ }
+
+ fmt.Println(block)
+
+ return otto.UndefinedValue()
+}
+
func (js *jsre) dumpBlock(call otto.FunctionCall) otto.Value {
var block *types.Block
if len(call.ArgumentList) > 0 {