internal/ethapi: add status code to receipt rpc return

This commit is contained in:
rjl493456442 2017-08-26 15:30:56 +08:00 committed by Péter Szilágyi
parent d78ad226c2
commit a31835c8b4
No known key found for this signature in database
GPG Key ID: E9AE538CEDF8293D

View File

@ -46,6 +46,8 @@ import (
const (
defaultGas = 90000
defaultGasPrice = 50 * params.Shannon
receiptStatusSuccessful = 1
receiptStatusFailed = 0
)
// PublicEthereumAPI provides an API to access Ethereum related information.
@ -991,7 +993,6 @@ func (s *PublicTransactionPoolAPI) GetTransactionReceipt(hash common.Hash) (map[
from, _ := types.Sender(signer, tx)
fields := map[string]interface{}{
"root": hexutil.Bytes(receipt.PostState),
"blockHash": blockHash,
"blockNumber": hexutil.Uint64(blockNumber),
"transactionHash": hash,
@ -1004,6 +1005,16 @@ func (s *PublicTransactionPoolAPI) GetTransactionReceipt(hash common.Hash) (map[
"logs": receipt.Logs,
"logsBloom": receipt.Bloom,
}
// Assign receipt status or post state.
if len(receipt.PostState) > 0 {
fields["root"] = hexutil.Bytes(receipt.PostState)
} else {
fields["status"] = hexutil.Uint(receiptStatusSuccessful)
if receipt.Failed {
fields["status"] = hexutil.Uint(receiptStatusFailed)
}
}
if receipt.Logs == nil {
fields["logs"] = [][]*types.Log{}
}