diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-07-06 16:53:21 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-07-06 16:53:21 +0800 |
commit | 35add89c879dd1d12e7ed702d7543f5a749a1d3e (patch) | |
tree | 003efe1e5d1ee270700b63264b8050c41aba14d6 /rpc/api/eth.go | |
parent | 46e7c8512edd6de49c546467505673155ebbd1c2 (diff) | |
parent | 6c7f5e3d0e6f4166f161278fdced3d90dfd6f9cc (diff) | |
download | dexon-35add89c879dd1d12e7ed702d7543f5a749a1d3e.tar dexon-35add89c879dd1d12e7ed702d7543f5a749a1d3e.tar.gz dexon-35add89c879dd1d12e7ed702d7543f5a749a1d3e.tar.bz2 dexon-35add89c879dd1d12e7ed702d7543f5a749a1d3e.tar.lz dexon-35add89c879dd1d12e7ed702d7543f5a749a1d3e.tar.xz dexon-35add89c879dd1d12e7ed702d7543f5a749a1d3e.tar.zst dexon-35add89c879dd1d12e7ed702d7543f5a749a1d3e.zip |
Merge pull request #1397 from tgerring/rpcreceipt
getTransactionReceipt RPC support
Diffstat (limited to 'rpc/api/eth.go')
-rw-r--r-- | rpc/api/eth.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/rpc/api/eth.go b/rpc/api/eth.go index db0b4b024..6d759a087 100644 --- a/rpc/api/eth.go +++ b/rpc/api/eth.go @@ -77,6 +77,7 @@ var ( "eth_submitWork": (*ethApi).SubmitWork, "eth_resend": (*ethApi).Resend, "eth_pendingTransactions": (*ethApi).PendingTransactions, + "eth_getTransactionReceipt": (*ethApi).GetTransactionReceipt, } ) @@ -596,3 +597,28 @@ func (self *ethApi) PendingTransactions(req *shared.Request) (interface{}, error return ltxs, nil } + +func (self *ethApi) GetTransactionReceipt(req *shared.Request) (interface{}, error) { + args := new(HashArgs) + if err := self.codec.Decode(req.Params, &args); err != nil { + return nil, shared.NewDecodeParamError(err.Error()) + } + + txhash := common.BytesToHash(common.FromHex(args.Hash)) + tx, bhash, bnum, txi := self.xeth.EthTransactionByHash(args.Hash) + rec := self.xeth.GetTxReceipt(txhash) + // We could have an error of "not found". Should disambiguate + // if err != nil { + // return err, nil + // } + if rec != nil && tx != nil { + v := NewReceiptRes(rec) + v.BlockHash = newHexData(bhash) + v.BlockNumber = newHexNum(bnum) + v.GasUsed = newHexNum(tx.Gas().Bytes()) + v.TransactionIndex = newHexNum(txi) + return v, nil + } + + return nil, nil +} |