reth_rpc_eth_api/helpers/
receipt.rs

1//! Loads a receipt from database. Helper trait for `eth_` block and transaction RPC methods, that
2//! loads receipt data w.r.t. network.
3
4use alloy_consensus::transaction::TransactionMeta;
5use futures::Future;
6use reth_provider::{ProviderReceipt, ProviderTx, ReceiptProvider, TransactionsProvider};
7
8use crate::{EthApiTypes, RpcNodeCoreExt, RpcReceipt};
9
10/// Assembles transaction receipt data w.r.t to network.
11///
12/// Behaviour shared by several `eth_` RPC methods, not exclusive to `eth_` receipts RPC methods.
13pub trait LoadReceipt:
14    EthApiTypes + RpcNodeCoreExt<Provider: TransactionsProvider + ReceiptProvider> + Send + Sync
15{
16    /// Helper method for `eth_getBlockReceipts` and `eth_getTransactionReceipt`.
17    fn build_transaction_receipt(
18        &self,
19        tx: ProviderTx<Self::Provider>,
20        meta: TransactionMeta,
21        receipt: ProviderReceipt<Self::Provider>,
22    ) -> impl Future<Output = Result<RpcReceipt<Self::NetworkTypes>, Self::Error>> + Send;
23}