geth: added getBlockRlp for dumping block in rlp format
This commit is contained in:
		@@ -48,6 +48,32 @@ func (js *jsre) adminBindings() {
 | 
			
		||||
	debug := t.Object()
 | 
			
		||||
	debug.Set("printBlock", js.printBlock)
 | 
			
		||||
	debug.Set("dumpBlock", js.dumpBlock)
 | 
			
		||||
	debug.Set("getBlockRlp", js.getBlockRlp)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (js *jsre) getBlockRlp(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()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	encoded, _ := rlp.EncodeToBytes(block)
 | 
			
		||||
	return js.re.ToVal(fmt.Sprintf("%x", encoded))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (js *jsre) setExtra(call otto.FunctionCall) otto.Value {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user