11use std:: marker:: PhantomData ;
22use std:: sync:: Arc ;
3+ use std:: time:: Duration ;
34
45use super :: {
56 test_ptr, NoopAdapterSelector , NoopRuntimeAdapter , StaticStreamBuilder , Stores , NODE_ID ,
67} ;
7- use graph:: blockchain:: BlockPtr ;
8+ use graph:: blockchain:: { BlockPtr , TriggersAdapterSelector } ;
89use graph:: cheap_clone:: CheapClone ;
910use graph:: firehose:: { FirehoseEndpoint , FirehoseEndpoints } ;
1011use graph:: prelude:: ethabi:: ethereum_types:: H256 ;
@@ -19,6 +20,22 @@ use graph_chain_ethereum::{Chain, ENV_VARS};
1920use graph_mock:: MockMetricsRegistry ;
2021
2122pub async fn chain ( blocks : Vec < BlockWithTriggers < Chain > > , stores : & Stores ) -> Chain {
23+ chain_with_adapter_selector (
24+ blocks,
25+ stores,
26+ NoopAdapterSelector {
27+ x : PhantomData ,
28+ triggers_in_block_sleep : Duration :: ZERO ,
29+ } ,
30+ )
31+ . await
32+ }
33+
34+ pub async fn chain_with_adapter_selector (
35+ blocks : Vec < BlockWithTriggers < Chain > > ,
36+ stores : & Stores ,
37+ adapter_selector : impl TriggersAdapterSelector < Chain > + ' static ,
38+ ) -> Chain {
2239 let logger = graph:: log:: logger ( true ) ;
2340 let logger_factory = LoggerFactory :: new ( logger. cheap_clone ( ) , None ) ;
2441 let node_id = NodeId :: new ( NODE_ID ) . unwrap ( ) ;
@@ -49,7 +66,7 @@ pub async fn chain(blocks: Vec<BlockWithTriggers<Chain>>, stores: &Stores) -> Ch
4966 EthereumNetworkAdapters { adapters : vec ! [ ] } ,
5067 stores. chain_head_listener . cheap_clone ( ) ,
5168 Arc :: new ( StaticStreamBuilder { chain : blocks } ) ,
52- Arc :: new ( NoopAdapterSelector { x : PhantomData } ) ,
69+ Arc :: new ( adapter_selector ) ,
5370 Arc :: new ( NoopRuntimeAdapter { x : PhantomData } ) ,
5471 ENV_VARS . reorg_threshold ,
5572 // We assume the tested chain is always ingestible for now
0 commit comments