1
1
//! Providers that use alloy provider types on the backend.
2
2
3
+ use alloy_consensus:: Block ;
3
4
use alloy_primitives:: { Bytes , U64 } ;
4
5
use alloy_provider:: { Provider , ReqwestProvider } ;
5
6
use alloy_rlp:: Decodable ;
@@ -10,9 +11,9 @@ use kona_derive::{
10
11
traits:: L2ChainProvider ,
11
12
} ;
12
13
use lru:: LruCache ;
13
- use op_alloy_consensus :: OpBlock ;
14
- use op_alloy_genesis :: { RollupConfig , SystemConfig } ;
15
- use op_alloy_protocol :: { to_system_config , BatchValidationProvider , L2BlockInfo } ;
14
+ use maili_genesis :: { RollupConfig , SystemConfig } ;
15
+ use maili_protocol :: { to_system_config , BatchValidationProvider , L2BlockInfo } ;
16
+ use op_alloy_consensus :: OpTxEnvelope ;
16
17
use std:: { boxed:: Box , num:: NonZeroUsize , sync:: Arc } ;
17
18
18
19
const CACHE_SIZE : usize = 16 ;
@@ -30,7 +31,7 @@ pub struct AlloyL2ChainProvider {
30
31
/// The rollup configuration.
31
32
rollup_config : Arc < RollupConfig > ,
32
33
/// `block_by_number` LRU cache.
33
- block_by_number_cache : LruCache < u64 , OpBlock > ,
34
+ block_by_number_cache : LruCache < u64 , Block < OpTxEnvelope > > ,
34
35
/// `l2_block_info_by_number` LRU cache.
35
36
l2_block_info_by_number_cache : LruCache < u64 , L2BlockInfo > ,
36
37
/// `system_config_by_l2_hash` LRU cache.
@@ -105,6 +106,7 @@ impl From<AlloyL2ChainProviderError> for PipelineErrorKind {
105
106
#[ async_trait]
106
107
impl BatchValidationProvider for AlloyL2ChainProvider {
107
108
type Error = AlloyL2ChainProviderError ;
109
+ type Transaction = OpTxEnvelope ;
108
110
109
111
async fn l2_block_info_by_number ( & mut self , number : u64 ) -> Result < L2BlockInfo , Self :: Error > {
110
112
if let Some ( l2_block_info) = self . l2_block_info_by_number_cache . get ( & number) {
@@ -128,7 +130,10 @@ impl BatchValidationProvider for AlloyL2ChainProvider {
128
130
Ok ( l2_block_info)
129
131
}
130
132
131
- async fn block_by_number ( & mut self , number : u64 ) -> Result < OpBlock , Self :: Error > {
133
+ async fn block_by_number (
134
+ & mut self ,
135
+ number : u64 ,
136
+ ) -> Result < Block < Self :: Transaction > , Self :: Error > {
132
137
if let Some ( block) = self . block_by_number_cache . get ( & number) {
133
138
return Ok ( block. clone ( ) ) ;
134
139
}
@@ -141,7 +146,7 @@ impl BatchValidationProvider for AlloyL2ChainProvider {
141
146
return Err ( AlloyL2ChainProviderError :: BlockNotFound ( number) ) ;
142
147
}
143
148
} ;
144
- let block = match OpBlock :: decode ( & mut raw_block. as_ref ( ) ) {
149
+ let block: Block < Self :: Transaction > = match Block :: decode ( & mut raw_block. as_ref ( ) ) {
145
150
Ok ( b) => b,
146
151
Err ( _) => {
147
152
return Err ( AlloyL2ChainProviderError :: OpBlockDecode ( number) ) ;
0 commit comments