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 None
23 }
24
25 fn status(&self) -> bool {
26 self.receipt.status()
27 }
28
29 fn block_hash(&self) -> Option<BlockHash> {
30 Some(BlockHash::default())
32 }
33
34 fn block_number(&self) -> Option<u64> {
35 None
37 }
38
39 fn transaction_hash(&self) -> TxHash {
40 self.receipt.transaction_hash()
41 }
42
43 fn transaction_index(&self) -> Option<u64> {
44 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 None
59 }
60
61 fn blob_gas_price(&self) -> Option<u128> {
62 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 self.receipt.cumulative_gas_used()
77 }
78
79 fn state_root(&self) -> Option<B256> {
80 None
82 }
83}