mirror of https://github.com/status-im/op-geth.git
Initial getTransactionReceipt support
This commit is contained in:
parent
6f69b4d61f
commit
3a983d2419
|
@ -77,6 +77,7 @@ var (
|
|||
"eth_submitWork": (*ethApi).SubmitWork,
|
||||
"eth_resend": (*ethApi).Resend,
|
||||
"eth_pendingTransactions": (*ethApi).PendingTransactions,
|
||||
"eth_getTransactionReceipt": (*ethApi).GetTransactionReceipt,
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -596,3 +597,22 @@ 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())
|
||||
}
|
||||
|
||||
rec, _ := self.xeth.GetTxReceipt(common.StringToHash(args.Hash))
|
||||
// We could have an error of "not found". Should disambiguate
|
||||
// if err != nil {
|
||||
// return err, nil
|
||||
// }
|
||||
if rec != nil {
|
||||
v := NewReceiptRes(rec)
|
||||
return v, nil
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
|
|
@ -402,6 +402,29 @@ func NewUncleRes(h *types.Header) *UncleRes {
|
|||
// WorkProved string `json:"workProved"`
|
||||
// }
|
||||
|
||||
type ReceiptRes struct {
|
||||
TransactionHash *hexdata `json:transactionHash`
|
||||
TransactionIndex *hexnum `json:transactionIndex`
|
||||
BlockNumber *hexnum `json:blockNumber`
|
||||
BlockHash *hexdata `json:blockHash`
|
||||
CumulativeGasUsed *hexnum `json:cumulativeGasUsed`
|
||||
GasUsed *hexnum `json:gasUsed`
|
||||
ContractAddress *hexdata `json:contractAddress`
|
||||
Logs *[]interface{} `json:logs`
|
||||
}
|
||||
|
||||
func NewReceiptRes(rec *types.Receipt) *ReceiptRes {
|
||||
if rec == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
var v = new(ReceiptRes)
|
||||
// TODO fill out rest of object
|
||||
v.CumulativeGasUsed = newHexNum(rec.CumulativeGasUsed)
|
||||
|
||||
return v
|
||||
}
|
||||
|
||||
func numString(raw interface{}) (*big.Int, error) {
|
||||
var number *big.Int
|
||||
// Parse as integer
|
||||
|
|
Loading…
Reference in New Issue