reth_evm_ethereum/
receipt.rs1use alloy_consensus::TxType;
2use evm2::{EvmTypes, TxResult};
3use reth_ethereum_primitives::{Receipt, TransactionSigned};
4use reth_evm::{ReceiptBuilder, ReceiptBuilderCtx};
5
6#[derive(Debug, Clone, Copy, Default)]
8#[non_exhaustive]
9pub struct RethReceiptBuilder;
10
11impl ReceiptBuilder for RethReceiptBuilder {
12 type Transaction = TransactionSigned;
13 type Receipt = Receipt;
14
15 fn build_receipt<T: EvmTypes>(&self, ctx: ReceiptBuilderCtx<TxType, TxResult<T>>) -> Receipt {
16 let ReceiptBuilderCtx { tx_type, result, cumulative_gas_used } = ctx;
17 Receipt {
18 tx_type,
19 success: result.status,
22 cumulative_gas_used,
23 logs: result.logs,
24 }
25 }
26}