pod_types/rpc/
receipt.rs

1use alloy_network::ReceiptResponse;
2use alloy_primitives::{Address, B256, BlockHash, TxHash};
3use alloy_rpc_types::TransactionReceipt;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct PodReceiptResponse {
8    #[serde(flatten)]
9    pub receipt: TransactionReceipt,
10}
11
12impl std::ops::Deref for PodReceiptResponse {
13    type Target = TransactionReceipt;
14    fn deref(&self) -> &TransactionReceipt {
15        &self.receipt
16    }
17}
18
19impl ReceiptResponse for PodReceiptResponse {
20    fn contract_address(&self) -> Option<Address> {
21        // For now not allowing deployments
22        None
23    }
24
25    fn status(&self) -> bool {
26        self.receipt.status()
27    }
28
29    fn block_hash(&self) -> Option<BlockHash> {
30        // todo
31        Some(BlockHash::default())
32    }
33
34    fn block_number(&self) -> Option<u64> {
35        // todo
36        None
37    }
38
39    fn transaction_hash(&self) -> TxHash {
40        self.receipt.transaction_hash()
41    }
42
43    fn transaction_index(&self) -> Option<u64> {
44        // todo
45        None
46    }
47
48    fn gas_used(&self) -> u64 {
49        self.receipt.gas_used()
50    }
51
52    fn effective_gas_price(&self) -> u128 {
53        self.receipt.effective_gas_price()
54    }
55
56    fn blob_gas_used(&self) -> Option<u64> {
57        // todo
58        None
59    }
60
61    fn blob_gas_price(&self) -> Option<u128> {
62        // todo
63        None
64    }
65
66    fn from(&self) -> Address {
67        self.receipt.from()
68    }
69
70    fn to(&self) -> Option<Address> {
71        self.receipt.to()
72    }
73
74    fn cumulative_gas_used(&self) -> u64 {
75        // todo
76        self.receipt.cumulative_gas_used()
77    }
78
79    fn state_root(&self) -> Option<B256> {
80        // todo
81        None
82    }
83}