diff options
author | obscuren <geffobscura@gmail.com> | 2015-04-14 18:49:30 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-04-14 18:49:30 +0800 |
commit | 13eb46ea94e48003608e32795a3070657dcb0d0c (patch) | |
tree | c04bef8ad852ae70676eedd7bd222412917a9519 /cmd | |
parent | 9800c84348b5492dd87802f82ef54c5b9676a52a (diff) | |
download | go-tangerine-13eb46ea94e48003608e32795a3070657dcb0d0c.tar.gz go-tangerine-13eb46ea94e48003608e32795a3070657dcb0d0c.tar.zst go-tangerine-13eb46ea94e48003608e32795a3070657dcb0d0c.zip |
geth: added print block to admin
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/geth/admin.go | 33 |
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 { |