Return nil for certain fields on eth_getTransactionByHash when not part of a block

This commit is contained in:
Taylor Gerring 2015-05-18 10:09:00 -05:00
parent d381d9a74c
commit a528bd04db
1 changed files with 7 additions and 3 deletions

View File

@ -1,6 +1,7 @@
package rpc package rpc
import ( import (
"bytes"
"encoding/json" "encoding/json"
"math/big" "math/big"
// "sync" // "sync"
@ -247,9 +248,12 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
tx, bhash, bnum, txi := api.xeth().EthTransactionByHash(args.Hash) tx, bhash, bnum, txi := api.xeth().EthTransactionByHash(args.Hash)
if tx != nil { if tx != nil {
v := NewTransactionRes(tx) v := NewTransactionRes(tx)
// if the blockhash is 0, assume this is a pending transaction
if bytes.Compare(bhash.Bytes(), []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}) != 0 {
v.BlockHash = newHexData(bhash) v.BlockHash = newHexData(bhash)
v.BlockNumber = newHexNum(bnum) v.BlockNumber = newHexNum(bnum)
v.TxIndex = newHexNum(txi) v.TxIndex = newHexNum(txi)
}
*reply = v *reply = v
} }
case "eth_getTransactionByBlockHashAndIndex": case "eth_getTransactionByBlockHashAndIndex":