@@ -355,8 +355,15 @@ impl<C: Blockchain> TriggersAdapterWrapper<C> {
355355 if !filter. subgraph_filter . is_empty ( ) {
356356 // TODO: handle empty range, or empty entity set bellow
357357 if to <= from {
358+ let entities = BTreeMap :: < BlockNumber , Entity > :: new ( ) ;
358359 return self
359- . mock_subgraph_triggers ( Logger :: root ( slog:: Discard , o ! ( ) ) , from, to, filter)
360+ . subgraph_triggers (
361+ Logger :: root ( slog:: Discard , o ! ( ) ) ,
362+ from,
363+ to,
364+ filter,
365+ entities,
366+ )
360367 . await ;
361368 }
362369
@@ -436,7 +443,10 @@ impl<C: Blockchain> TriggersAdapterWrapper<C> {
436443 . into_iter ( )
437444 . map ( |block| {
438445 let key = block. number ( ) ;
439- let entity = entities. get ( & key) . unwrap ( ) ;
446+ let entity = match entities. get ( & key) {
447+ Some ( e) => e,
448+ None => & Self :: create_mock_entity ( & block) ,
449+ } ;
440450 let trigger_data = vec ! [ Self :: create_subgraph_trigger_from_entity(
441451 first_filter,
442452 entity,
@@ -459,48 +469,6 @@ impl<C: Blockchain> TriggersAdapterWrapper<C> {
459469 }
460470 }
461471
462- // TODO(krishna): Currently this is a mock implementation of subgraph triggers.
463- // This will be replaced with the actual implementation which will use the filters to
464- // query the database of the source subgraph and return the entity triggers.
465- async fn mock_subgraph_triggers (
466- & self ,
467- logger : Logger ,
468- from : BlockNumber ,
469- to : BlockNumber ,
470- filter : & Arc < TriggerFilterWrapper < C > > ,
471- ) -> Result < ( Vec < BlockWithTriggers < C > > , BlockNumber ) , Error > {
472- let logger2 = logger. cheap_clone ( ) ;
473- let adapter = self . adapter . clone ( ) ;
474- // let to_ptr = eth.next_existing_ptr_to_number(&logger, to).await?;
475- // let to = to_ptr.block_number();
476-
477- let first_filter = filter. subgraph_filter . first ( ) . unwrap ( ) ;
478-
479- let blocks = adapter
480- . load_blocks_by_numbers ( logger, HashSet :: from_iter ( from..=to) )
481- . await ?
482- . into_iter ( )
483- . map ( |block| {
484- let trigger_data = vec ! [ Self :: create_mock_subgraph_trigger( first_filter, & block) ] ;
485- BlockWithTriggers :: new_with_subgraph_triggers ( block, trigger_data, & logger2)
486- } )
487- . collect ( ) ;
488-
489- Ok ( ( blocks, to) )
490- }
491-
492- fn create_mock_subgraph_trigger (
493- filter : & SubgraphFilter ,
494- block : & C :: Block ,
495- ) -> subgraph:: TriggerData {
496- let mock_entity = Self :: create_mock_entity ( block) ;
497- subgraph:: TriggerData {
498- source : filter. subgraph . clone ( ) ,
499- entity : mock_entity,
500- entity_type : filter. entities . first ( ) . unwrap ( ) . clone ( ) ,
501- }
502- }
503-
504472 fn create_mock_entity ( block : & C :: Block ) -> Entity {
505473 let id = DeploymentHash :: new ( "test" ) . unwrap ( ) ;
506474 let data_schema = InputSchema :: parse_latest (
0 commit comments