mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-17 10:20:44 +00:00
internal/ethapi: implement eth_getBlockReceipts (#27702)
This commit is contained in:
parent
da9d2e29f5
commit
f23e1a648c
1 changed files with 2 additions and 34 deletions
|
|
@ -2239,38 +2239,7 @@ func (s *PublicTransactionPoolAPI) GetTransactionReceipt(ctx context.Context, ha
|
||||||
// Derive the sender.
|
// Derive the sender.
|
||||||
bigblock := new(big.Int).SetUint64(blockNumber)
|
bigblock := new(big.Int).SetUint64(blockNumber)
|
||||||
signer := types.MakeSigner(s.b.ChainConfig(), bigblock)
|
signer := types.MakeSigner(s.b.ChainConfig(), bigblock)
|
||||||
from, _ := types.Sender(signer, tx)
|
return marshalReceipt(receipt, blockHash, blockNumber, signer, tx, int(index)), nil
|
||||||
|
|
||||||
fields := map[string]interface{}{
|
|
||||||
"blockHash": blockHash,
|
|
||||||
"blockNumber": hexutil.Uint64(blockNumber),
|
|
||||||
"transactionHash": hash,
|
|
||||||
"transactionIndex": hexutil.Uint64(index),
|
|
||||||
"from": from,
|
|
||||||
"to": tx.To(),
|
|
||||||
"gasUsed": hexutil.Uint64(receipt.GasUsed),
|
|
||||||
"cumulativeGasUsed": hexutil.Uint64(receipt.CumulativeGasUsed),
|
|
||||||
"contractAddress": nil,
|
|
||||||
"logs": receipt.Logs,
|
|
||||||
"logsBloom": receipt.Bloom,
|
|
||||||
"type": hexutil.Uint(tx.Type()),
|
|
||||||
"effectiveGasPrice": (*hexutil.Big)(receipt.EffectiveGasPrice),
|
|
||||||
}
|
|
||||||
|
|
||||||
// Assign receipt status or post state.
|
|
||||||
if len(receipt.PostState) > 0 {
|
|
||||||
fields["root"] = hexutil.Bytes(receipt.PostState)
|
|
||||||
} else {
|
|
||||||
fields["status"] = hexutil.Uint(receipt.Status)
|
|
||||||
}
|
|
||||||
if receipt.Logs == nil {
|
|
||||||
fields["logs"] = [][]*types.Log{}
|
|
||||||
}
|
|
||||||
// If the ContractAddress is 20 0x0 bytes, assume it is not a contract creation
|
|
||||||
if receipt.ContractAddress != (common.Address{}) {
|
|
||||||
fields["contractAddress"] = receipt.ContractAddress
|
|
||||||
}
|
|
||||||
return fields, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// marshalReceipt marshals a transaction receipt into a JSON object.
|
// marshalReceipt marshals a transaction receipt into a JSON object.
|
||||||
|
|
@ -2290,8 +2259,7 @@ func marshalReceipt(receipt *types.Receipt, blockHash common.Hash, blockNumber u
|
||||||
"logs": receipt.Logs,
|
"logs": receipt.Logs,
|
||||||
"logsBloom": receipt.Bloom,
|
"logsBloom": receipt.Bloom,
|
||||||
"type": hexutil.Uint(tx.Type()),
|
"type": hexutil.Uint(tx.Type()),
|
||||||
// uncomment below line after EIP-1559
|
"effectiveGasPrice": (*hexutil.Big)(receipt.EffectiveGasPrice),
|
||||||
// TODO: "effectiveGasPrice": (*hexutil.Big)(receipt.EffectiveGasPrice),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assign receipt status or post state.
|
// Assign receipt status or post state.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue