aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rpc/api.go8
-rw-r--r--rpc/args.go4
-rw-r--r--rpc/args_test.go2
-rw-r--r--xeth/xeth.go7
4 files changed, 12 insertions, 9 deletions
diff --git a/rpc/api.go b/rpc/api.go
index aa5b54199..8d1a412d1 100644
--- a/rpc/api.go
+++ b/rpc/api.go
@@ -245,7 +245,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
return err
}
- block := api.xeth().EthBlockByHash(args.Hash)
+ block := api.xeth().EthBlockByHexstring(args.Hash)
br := NewBlockRes(block)
br.fullTx = true
@@ -273,14 +273,14 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
return err
}
- br := NewBlockRes(api.xeth().EthBlockByHash(args.Hash))
+ br := NewBlockRes(api.xeth().EthBlockByHexstring(args.Hash))
if args.Index > int64(len(br.Uncles)) || args.Index < 0 {
return NewValidationError("Index", "does not exist")
}
uhash := br.Uncles[args.Index].Hex()
- uncle := NewBlockRes(api.xeth().EthBlockByHash(uhash))
+ uncle := NewBlockRes(api.xeth().EthBlockByHexstring(uhash))
*reply = uncle
case "eth_getUncleByBlockNumberAndIndex":
@@ -298,7 +298,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
}
uhash := v.Uncles[args.Index].Hex()
- uncle := NewBlockRes(api.xeth().EthBlockByHash(uhash))
+ uncle := NewBlockRes(api.xeth().EthBlockByHexstring(uhash))
*reply = uncle
case "eth_getCompilers":
diff --git a/rpc/args.go b/rpc/args.go
index 5b655024c..9a51959f4 100644
--- a/rpc/args.go
+++ b/rpc/args.go
@@ -35,7 +35,7 @@ func blockHeight(raw interface{}, number *int64) (err error) {
}
type GetBlockByHashArgs struct {
- BlockHash string
+ BlockHash common.Hash
IncludeTxs bool
}
@@ -54,7 +54,7 @@ func (args *GetBlockByHashArgs) UnmarshalJSON(b []byte) (err error) {
if !ok {
return NewDecodeParamError("BlockHash not a string")
}
- args.BlockHash = argstr
+ args.BlockHash = common.HexToHash(argstr)
if len(obj) > 1 {
args.IncludeTxs = obj[1].(bool)
diff --git a/rpc/args_test.go b/rpc/args_test.go
index 5cbafd4b2..c6d3a558b 100644
--- a/rpc/args_test.go
+++ b/rpc/args_test.go
@@ -83,7 +83,7 @@ func TestGetBalanceEmptyArgs(t *testing.T) {
func TestGetBlockByHashArgs(t *testing.T) {
input := `["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", true]`
expected := new(GetBlockByHashArgs)
- expected.BlockHash = "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
+ expected.BlockHash = common.HexToHash("0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331")
expected.IncludeTxs = true
args := new(GetBlockByHashArgs)
diff --git a/xeth/xeth.go b/xeth/xeth.go
index bf30fc2fc..92e73c7d5 100644
--- a/xeth/xeth.go
+++ b/xeth/xeth.go
@@ -160,13 +160,16 @@ func (self *XEth) BlockByHash(strHash string) *Block {
return NewBlock(block)
}
-func (self *XEth) EthBlockByHash(strHash string) *types.Block {
- hash := common.HexToHash(strHash)
+func (self *XEth) EthBlockByHash(hash common.Hash) *types.Block {
block := self.backend.ChainManager().GetBlock(hash)
return block
}
+func (self *XEth) EthBlockByHexstring(strHash string) *types.Block {
+ return self.EthBlockByHash(common.HexToHash(strHash))
+}
+
func (self *XEth) EthTransactionByHash(hash string) *types.Transaction {
data, _ := self.backend.ExtraDb().Get(common.FromHex(hash))
if len(data) != 0 {