GetBlockByHashArgs

This commit is contained in:
Taylor Gerring 2015-03-26 10:14:52 +01:00
parent 7e1e264375
commit c7dc379da5
4 changed files with 12 additions and 9 deletions

View File

@ -245,7 +245,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
return err return err
} }
block := api.xeth().EthBlockByHash(args.Hash) block := api.xeth().EthBlockByHexstring(args.Hash)
br := NewBlockRes(block) br := NewBlockRes(block)
br.fullTx = true br.fullTx = true
@ -273,14 +273,14 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
return 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 { if args.Index > int64(len(br.Uncles)) || args.Index < 0 {
return NewValidationError("Index", "does not exist") return NewValidationError("Index", "does not exist")
} }
uhash := br.Uncles[args.Index].Hex() uhash := br.Uncles[args.Index].Hex()
uncle := NewBlockRes(api.xeth().EthBlockByHash(uhash)) uncle := NewBlockRes(api.xeth().EthBlockByHexstring(uhash))
*reply = uncle *reply = uncle
case "eth_getUncleByBlockNumberAndIndex": case "eth_getUncleByBlockNumberAndIndex":
@ -298,7 +298,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
} }
uhash := v.Uncles[args.Index].Hex() uhash := v.Uncles[args.Index].Hex()
uncle := NewBlockRes(api.xeth().EthBlockByHash(uhash)) uncle := NewBlockRes(api.xeth().EthBlockByHexstring(uhash))
*reply = uncle *reply = uncle
case "eth_getCompilers": case "eth_getCompilers":

View File

@ -35,7 +35,7 @@ func blockHeight(raw interface{}, number *int64) (err error) {
} }
type GetBlockByHashArgs struct { type GetBlockByHashArgs struct {
BlockHash string BlockHash common.Hash
IncludeTxs bool IncludeTxs bool
} }
@ -54,7 +54,7 @@ func (args *GetBlockByHashArgs) UnmarshalJSON(b []byte) (err error) {
if !ok { if !ok {
return NewDecodeParamError("BlockHash not a string") return NewDecodeParamError("BlockHash not a string")
} }
args.BlockHash = argstr args.BlockHash = common.HexToHash(argstr)
if len(obj) > 1 { if len(obj) > 1 {
args.IncludeTxs = obj[1].(bool) args.IncludeTxs = obj[1].(bool)

View File

@ -83,7 +83,7 @@ func TestGetBalanceEmptyArgs(t *testing.T) {
func TestGetBlockByHashArgs(t *testing.T) { func TestGetBlockByHashArgs(t *testing.T) {
input := `["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", true]` input := `["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", true]`
expected := new(GetBlockByHashArgs) expected := new(GetBlockByHashArgs)
expected.BlockHash = "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331" expected.BlockHash = common.HexToHash("0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331")
expected.IncludeTxs = true expected.IncludeTxs = true
args := new(GetBlockByHashArgs) args := new(GetBlockByHashArgs)

View File

@ -160,13 +160,16 @@ func (self *XEth) BlockByHash(strHash string) *Block {
return NewBlock(block) return NewBlock(block)
} }
func (self *XEth) EthBlockByHash(strHash string) *types.Block { func (self *XEth) EthBlockByHash(hash common.Hash) *types.Block {
hash := common.HexToHash(strHash)
block := self.backend.ChainManager().GetBlock(hash) block := self.backend.ChainManager().GetBlock(hash)
return block return block
} }
func (self *XEth) EthBlockByHexstring(strHash string) *types.Block {
return self.EthBlockByHash(common.HexToHash(strHash))
}
func (self *XEth) EthTransactionByHash(hash string) *types.Transaction { func (self *XEth) EthTransactionByHash(hash string) *types.Transaction {
data, _ := self.backend.ExtraDb().Get(common.FromHex(hash)) data, _ := self.backend.ExtraDb().Get(common.FromHex(hash))
if len(data) != 0 { if len(data) != 0 {