alloy_zksync/network/
header_response.rs

1use alloy::eips::eip7840::BlobParams;
2use serde::{Deserialize, Serialize};
3
4/// See [HeaderResponse](https://docs.rs/alloy/latest/alloy/network/primitives/trait.HeaderResponse.html).
5#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
6pub struct HeaderResponse {
7    hash: alloy::primitives::BlockHash,
8    #[serde(flatten)]
9    inner: crate::network::header::Header,
10}
11
12impl alloy::consensus::BlockHeader for HeaderResponse {
13    fn number(&self) -> u64 {
14        self.inner.number()
15    }
16
17    fn timestamp(&self) -> u64 {
18        self.inner.timestamp()
19    }
20
21    fn extra_data(&self) -> &alloy::primitives::Bytes {
22        self.inner.extra_data()
23    }
24
25    fn base_fee_per_gas(&self) -> Option<u64> {
26        self.inner.base_fee_per_gas()
27    }
28
29    fn next_block_blob_fee(&self, blob_params: BlobParams) -> Option<u128> {
30        self.inner.next_block_blob_fee(blob_params)
31    }
32
33    fn gas_limit(&self) -> u64 {
34        self.inner.gas_limit()
35    }
36
37    fn mix_hash(&self) -> Option<alloy::primitives::B256> {
38        self.inner.mix_hash()
39    }
40
41    fn difficulty(&self) -> alloy::primitives::U256 {
42        self.inner.difficulty()
43    }
44
45    fn parent_hash(&self) -> alloy::primitives::B256 {
46        self.inner.parent_hash()
47    }
48
49    fn ommers_hash(&self) -> alloy::primitives::B256 {
50        self.inner.ommers_hash()
51    }
52
53    fn beneficiary(&self) -> alloy::primitives::Address {
54        self.inner.beneficiary()
55    }
56
57    fn state_root(&self) -> alloy::primitives::B256 {
58        self.inner.state_root()
59    }
60
61    fn transactions_root(&self) -> alloy::primitives::B256 {
62        self.inner.transactions_root()
63    }
64
65    fn receipts_root(&self) -> alloy::primitives::B256 {
66        self.inner.receipts_root()
67    }
68
69    fn withdrawals_root(&self) -> Option<alloy::primitives::B256> {
70        self.inner.withdrawals_root()
71    }
72
73    fn logs_bloom(&self) -> alloy::primitives::Bloom {
74        self.inner.logs_bloom()
75    }
76
77    fn gas_used(&self) -> u64 {
78        self.inner.gas_used()
79    }
80
81    fn nonce(&self) -> Option<alloy::primitives::B64> {
82        self.inner.nonce()
83    }
84
85    fn blob_gas_used(&self) -> Option<u64> {
86        self.inner.blob_gas_used()
87    }
88
89    fn excess_blob_gas(&self) -> Option<u64> {
90        self.inner.excess_blob_gas()
91    }
92
93    fn parent_beacon_block_root(&self) -> Option<alloy::primitives::B256> {
94        self.inner.parent_beacon_block_root()
95    }
96
97    fn requests_hash(&self) -> Option<alloy::primitives::B256> {
98        self.inner.requests_hash()
99    }
100}
101
102impl alloy::network::primitives::HeaderResponse for HeaderResponse {
103    fn hash(&self) -> alloy::primitives::BlockHash {
104        self.hash
105    }
106}
107
108impl AsRef<crate::network::header::Header> for HeaderResponse {
109    fn as_ref(&self) -> &crate::network::header::Header {
110        &self.inner
111    }
112}