1
1
pub mod instance;
2
2
3
- use crate :: polling_monitor:: { spawn_monitor, IpfsService , PollingMonitor , PollingMonitorMetrics } ;
3
+ use crate :: polling_monitor:: {
4
+ spawn_monitor, IpfsItem , IpfsService , PollingMonitor , PollingMonitorMetrics ,
5
+ } ;
4
6
use anyhow:: { self , Error } ;
5
7
use bytes:: Bytes ;
6
8
use graph:: {
@@ -10,7 +12,6 @@ use graph::{
10
12
subgraph:: { MappingError , SharedProofOfIndexing } ,
11
13
} ,
12
14
data_source:: { offchain, CausalityRegion , DataSource , TriggerData } ,
13
- ipfs_client:: CidFile ,
14
15
prelude:: {
15
16
BlockNumber , BlockState , CancelGuard , DeploymentHash , MetricsRegistry , RuntimeHostBuilder ,
16
17
SubgraphInstanceMetrics , TriggerProcessor ,
@@ -134,12 +135,14 @@ impl<C: Blockchain, T: RuntimeHostBuilder<C>> IndexingContext<C, T> {
134
135
logger : & Logger ,
135
136
data_source : DataSource < C > ,
136
137
) -> Result < Option < Arc < T :: Host > > , Error > {
137
- let source = data_source. as_offchain ( ) . map ( |ds| ds. source . clone ( ) ) ;
138
- let host = self . instance . add_dynamic_data_source ( logger, data_source) ?;
138
+ let host = self
139
+ . instance
140
+ . add_dynamic_data_source ( logger, data_source. clone ( ) ) ?;
139
141
140
142
if host. is_some ( ) {
141
- if let Some ( source) = source {
142
- self . offchain_monitor . add_source ( source) ?;
143
+ if let Some ( data_source) = data_source. as_offchain ( ) {
144
+ self . offchain_monitor
145
+ . add_source ( data_source. source . clone ( ) ) ?;
143
146
}
144
147
}
145
148
@@ -157,8 +160,8 @@ impl<C: Blockchain, T: RuntimeHostBuilder<C>> IndexingContext<C, T> {
157
160
}
158
161
159
162
pub struct OffchainMonitor {
160
- ipfs_monitor : PollingMonitor < CidFile > ,
161
- ipfs_monitor_rx : mpsc:: Receiver < ( CidFile , Bytes ) > ,
163
+ ipfs_monitor : PollingMonitor < IpfsItem > ,
164
+ ipfs_monitor_rx : mpsc:: Receiver < ( IpfsItem , Bytes ) > ,
162
165
}
163
166
164
167
impl OffchainMonitor {
@@ -183,7 +186,10 @@ impl OffchainMonitor {
183
186
184
187
fn add_source ( & mut self , source : offchain:: Source ) -> Result < ( ) , Error > {
185
188
match source {
186
- offchain:: Source :: Ipfs ( cid_file) => self . ipfs_monitor . monitor ( cid_file) ,
189
+ offchain:: Source :: Ipfs ( item, causality_region) => self . ipfs_monitor . monitor ( IpfsItem {
190
+ item,
191
+ causality_region,
192
+ } ) ,
187
193
} ;
188
194
Ok ( ( ) )
189
195
}
@@ -194,8 +200,8 @@ impl OffchainMonitor {
194
200
let mut triggers = vec ! [ ] ;
195
201
loop {
196
202
match self . ipfs_monitor_rx . try_recv ( ) {
197
- Ok ( ( cid_file , data) ) => triggers. push ( offchain:: TriggerData {
198
- source : offchain:: Source :: Ipfs ( cid_file ) ,
203
+ Ok ( ( item , data) ) => triggers. push ( offchain:: TriggerData {
204
+ source : offchain:: Source :: Ipfs ( item . item , item . causality_region ) ,
199
205
data : Arc :: new ( data) ,
200
206
} ) ,
201
207
Err ( TryRecvError :: Disconnected ) => {
0 commit comments