trevm 0.34.2

A typestate API wrapper for the revm EVM implementation
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
use alloy::consensus::{Receipt, ReceiptWithBloom};
use revm::context::result::ExecutionResult;

/// Create an Ethereum [`ReceiptEnvelope`] from an execution result.
///
/// [`ReceiptEnvelope`]: alloy::consensus::ReceiptEnvelope
pub fn ethereum_receipt(result: ExecutionResult, prior_gas_used: u64) -> ReceiptWithBloom {
    let cumulative_gas_used = prior_gas_used.saturating_add(result.gas_used());

    Receipt { status: result.is_success().into(), cumulative_gas_used, logs: result.into_logs() }
        .into()
}