@@ -352,8 +352,15 @@ impl<C: Blockchain> TriggersAdapterWrapper<C> {
352352 if !filter. subgraph_filter . is_empty ( ) {
353353 // TODO: handle empty range, or empty entity set bellow
354354 if to <= from {
355+ let entities = BTreeMap :: < BlockNumber , Entity > :: new ( ) ;
355356 return self
356- . mock_subgraph_triggers ( Logger :: root ( slog:: Discard , o ! ( ) ) , from, to, filter)
357+ . subgraph_triggers (
358+ Logger :: root ( slog:: Discard , o ! ( ) ) ,
359+ from,
360+ to,
361+ filter,
362+ entities,
363+ )
357364 . await ;
358365 }
359366
@@ -433,7 +440,10 @@ impl<C: Blockchain> TriggersAdapterWrapper<C> {
433440 . into_iter ( )
434441 . map ( |block| {
435442 let key = block. number ( ) ;
436- let entity = entities. get ( & key) . unwrap ( ) ;
443+ let entity = match entities. get ( & key) {
444+ Some ( e) => e,
445+ None => & Self :: create_mock_entity ( & block) ,
446+ } ;
437447 let trigger_data = vec ! [ Self :: create_subgraph_trigger_from_entity(
438448 first_filter,
439449 entity,
@@ -456,48 +466,6 @@ impl<C: Blockchain> TriggersAdapterWrapper<C> {
456466 }
457467 }
458468
459- // TODO(krishna): Currently this is a mock implementation of subgraph triggers.
460- // This will be replaced with the actual implementation which will use the filters to
461- // query the database of the source subgraph and return the entity triggers.
462- async fn mock_subgraph_triggers (
463- & self ,
464- logger : Logger ,
465- from : BlockNumber ,
466- to : BlockNumber ,
467- filter : & Arc < TriggerFilterWrapper < C > > ,
468- ) -> Result < ( Vec < BlockWithTriggers < C > > , BlockNumber ) , Error > {
469- let logger2 = logger. cheap_clone ( ) ;
470- let adapter = self . adapter . clone ( ) ;
471- // let to_ptr = eth.next_existing_ptr_to_number(&logger, to).await?;
472- // let to = to_ptr.block_number();
473-
474- let first_filter = filter. subgraph_filter . first ( ) . unwrap ( ) ;
475-
476- let blocks = adapter
477- . load_blocks_by_numbers ( logger, HashSet :: from_iter ( from..=to) )
478- . await ?
479- . into_iter ( )
480- . map ( |block| {
481- let trigger_data = vec ! [ Self :: create_mock_subgraph_trigger( first_filter, & block) ] ;
482- BlockWithTriggers :: new_with_subgraph_triggers ( block, trigger_data, & logger2)
483- } )
484- . collect ( ) ;
485-
486- Ok ( ( blocks, to) )
487- }
488-
489- fn create_mock_subgraph_trigger (
490- filter : & SubgraphFilter ,
491- block : & C :: Block ,
492- ) -> subgraph:: TriggerData {
493- let mock_entity = Self :: create_mock_entity ( block) ;
494- subgraph:: TriggerData {
495- source : filter. subgraph . clone ( ) ,
496- entity : mock_entity,
497- entity_type : filter. entities . first ( ) . unwrap ( ) . clone ( ) ,
498- }
499- }
500-
501469 fn create_mock_entity ( block : & C :: Block ) -> Entity {
502470 let id = DeploymentHash :: new ( "test" ) . unwrap ( ) ;
503471 let data_schema = InputSchema :: parse_latest (
0 commit comments