reth_transaction_pool/blobstore/
noop.rs1use crate::blobstore::{BlobStore, BlobStoreCleanupStat, BlobStoreError, PooledBlobSidecar};
2use alloy_eips::{
3 eip4844::{BlobAndProofV1, BlobAndProofV2, BlobCellsAndProofsV1},
4 eip7594::{BlobTransactionSidecarVariant, Cell},
5};
6use alloy_primitives::{TxHash, B128, B256};
7use std::sync::Arc;
8
9#[derive(Clone, Copy, Debug, PartialOrd, PartialEq, Eq, Default)]
11#[non_exhaustive]
12pub struct NoopBlobStore;
13
14impl BlobStore for NoopBlobStore {
15 fn insert(&self, _tx: B256, _data: PooledBlobSidecar) -> Result<(), BlobStoreError> {
16 Ok(())
17 }
18
19 fn insert_all(&self, _txs: Vec<(B256, PooledBlobSidecar)>) -> Result<(), BlobStoreError> {
20 Ok(())
21 }
22
23 fn delete(&self, _tx: B256) -> Result<(), BlobStoreError> {
24 Ok(())
25 }
26
27 fn delete_all(&self, _txs: Vec<B256>) -> Result<(), BlobStoreError> {
28 Ok(())
29 }
30
31 fn cleanup(&self) -> BlobStoreCleanupStat {
32 BlobStoreCleanupStat::default()
33 }
34
35 fn get(&self, _tx: B256) -> Result<Option<Arc<BlobTransactionSidecarVariant>>, BlobStoreError> {
36 Ok(None)
37 }
38
39 fn contains(&self, _tx: B256) -> Result<bool, BlobStoreError> {
40 Ok(false)
41 }
42
43 fn get_all(
44 &self,
45 _txs: Vec<B256>,
46 ) -> Result<Vec<(B256, Arc<BlobTransactionSidecarVariant>)>, BlobStoreError> {
47 Ok(vec![])
48 }
49
50 fn get_exact(
51 &self,
52 txs: Vec<B256>,
53 ) -> Result<Vec<Arc<BlobTransactionSidecarVariant>>, BlobStoreError> {
54 if txs.is_empty() {
55 return Ok(vec![])
56 }
57 Err(BlobStoreError::MissingSidecar(txs[0]))
58 }
59
60 fn get_by_versioned_hashes_v1(
61 &self,
62 versioned_hashes: &[B256],
63 ) -> Result<Vec<Option<BlobAndProofV1>>, BlobStoreError> {
64 Ok(vec![None; versioned_hashes.len()])
65 }
66
67 fn get_by_versioned_hashes_v2(
68 &self,
69 _versioned_hashes: &[B256],
70 ) -> Result<Option<Vec<BlobAndProofV2>>, BlobStoreError> {
71 Ok(None)
72 }
73
74 fn get_by_versioned_hashes_v3(
75 &self,
76 versioned_hashes: &[B256],
77 ) -> Result<Vec<Option<BlobAndProofV2>>, BlobStoreError> {
78 Ok(vec![None; versioned_hashes.len()])
79 }
80
81 fn get_by_versioned_hashes_v4(
82 &self,
83 versioned_hashes: &[B256],
84 _indices_bitarray: B128,
85 ) -> Result<Vec<Option<BlobCellsAndProofsV1>>, BlobStoreError> {
86 Ok(vec![None; versioned_hashes.len()])
87 }
88
89 fn has_versioned_hashes(&self, versioned_hashes: &[B256]) -> Result<Vec<bool>, BlobStoreError> {
90 Ok(vec![false; versioned_hashes.len()])
91 }
92
93 fn get_cells(
94 &self,
95 tx_hash: TxHash,
96 indices_bitarray: B128,
97 ) -> Result<Option<Vec<Cell>>, BlobStoreError> {
98 let _ = (tx_hash, indices_bitarray);
99 Ok(None)
100 }
101
102 fn data_size_hint(&self) -> Option<usize> {
103 Some(0)
104 }
105
106 fn blobs_len(&self) -> usize {
107 0
108 }
109}