Skip to content

Commit 7a412ce

Browse files
committed
fix(ipfs): make IPFS accept a reference to the context
1 parent 981b013 commit 7a412ce

File tree

24 files changed

+144
-113
lines changed

24 files changed

+144
-113
lines changed

chain/ethereum/src/data_source.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1391,7 +1391,7 @@ impl UnresolvedMapping {
13911391
.try_collect::<Vec<_>>(),
13921392
async {
13931393
let module_bytes = resolver
1394-
.cat(LinkResolverContext::new(deployment_hash, logger), &link)
1394+
.cat(&LinkResolverContext::new(deployment_hash, logger), &link)
13951395
.await?;
13961396
Ok(Arc::new(module_bytes))
13971397
},

chain/near/src/data_source.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ impl UnresolvedMapping {
451451
let api_version = semver::Version::parse(&api_version)?;
452452

453453
let module_bytes = resolver
454-
.cat(LinkResolverContext::new(deployment_hash, logger), &link)
454+
.cat(&LinkResolverContext::new(deployment_hash, logger), &link)
455455
.await
456456
.with_context(|| format!("failed to resolve mapping {}", link.link))?;
457457

chain/substreams/src/data_source.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ impl blockchain::UnresolvedDataSource<Chain> for UnresolvedDataSource {
195195
) -> Result<DataSource, Error> {
196196
let content = resolver
197197
.cat(
198-
LinkResolverContext::new(deployment_hash, logger),
198+
&LinkResolverContext::new(deployment_hash, logger),
199199
&self.source.package.file,
200200
)
201201
.await?;
@@ -244,7 +244,7 @@ impl blockchain::UnresolvedDataSource<Chain> for UnresolvedDataSource {
244244
let handler = match (self.mapping.handler, self.mapping.file) {
245245
(Some(handler), Some(file)) => {
246246
let module_bytes = resolver
247-
.cat(LinkResolverContext::new(deployment_hash, logger), &file)
247+
.cat(&LinkResolverContext::new(deployment_hash, logger), &file)
248248
.await
249249
.with_context(|| format!("failed to resolve mapping {}", file.link))?;
250250

@@ -722,21 +722,21 @@ mod test {
722722
unimplemented!()
723723
}
724724

725-
async fn cat(&self, _ctx: LinkResolverContext, _link: &Link) -> Result<Vec<u8>, Error> {
725+
async fn cat(&self, _ctx: &LinkResolverContext, _link: &Link) -> Result<Vec<u8>, Error> {
726726
Ok(gen_package().encode_to_vec())
727727
}
728728

729729
async fn get_block(
730730
&self,
731-
_ctx: LinkResolverContext,
731+
_ctx: &LinkResolverContext,
732732
_link: &Link,
733733
) -> Result<Vec<u8>, Error> {
734734
unimplemented!()
735735
}
736736

737737
async fn json_stream(
738738
&self,
739-
_ctx: LinkResolverContext,
739+
_ctx: &LinkResolverContext,
740740
_link: &Link,
741741
) -> Result<JsonValueStream, Error> {
742742
unimplemented!()

core/src/polling_monitor/ipfs_service.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ impl IpfsServiceInner {
5959
let res = self
6060
.client
6161
.cat(
62-
ctx,
62+
&ctx,
6363
&path,
6464
self.max_file_size,
6565
Some(self.timeout),

core/src/subgraph/instance_manager.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ impl<S: SubgraphStore> SubgraphInstanceManager<S> {
284284
let file_bytes = self
285285
.link_resolver
286286
.cat(
287-
LinkResolverContext::new(&deployment.hash, &logger),
287+
&LinkResolverContext::new(&deployment.hash, &logger),
288288
&graft.base.to_ipfs_link(),
289289
)
290290
.await?;

core/src/subgraph/provider.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ impl<I: SubgraphInstanceManager> SubgraphAssignmentProviderTrait for SubgraphAss
9090
let file_bytes = self
9191
.link_resolver
9292
.cat(
93-
LinkResolverContext::new(&loc.hash, &logger),
93+
&LinkResolverContext::new(&loc.hash, &logger),
9494
&loc.hash.to_ipfs_link(),
9595
)
9696
.await

core/src/subgraph/registrar.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ where
291291
let file_bytes = self
292292
.resolver
293293
.cat(
294-
LinkResolverContext::new(&hash, &logger),
294+
&LinkResolverContext::new(&hash, &logger),
295295
&hash.to_ipfs_link(),
296296
)
297297
.await

graph/src/components/link_resolver/ipfs.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ impl LinkResolver for IpfsResolver {
6464
Box::new(s)
6565
}
6666

67-
async fn cat(&self, ctx: LinkResolverContext, link: &Link) -> Result<Vec<u8>, Error> {
67+
async fn cat(&self, ctx: &LinkResolverContext, link: &Link) -> Result<Vec<u8>, Error> {
6868
let LinkResolverContext {
6969
deployment_hash,
7070
logger,
@@ -81,20 +81,20 @@ impl LinkResolver for IpfsResolver {
8181
};
8282

8383
let ctx = IpfsContext {
84-
deployment_hash,
85-
logger,
84+
deployment_hash: deployment_hash.cheap_clone(),
85+
logger: logger.cheap_clone(),
8686
};
8787
let data = self
8888
.client
8989
.clone()
90-
.cat(ctx, &path, max_file_size, timeout, retry_policy)
90+
.cat(&ctx, &path, max_file_size, timeout, retry_policy)
9191
.await?
9292
.to_vec();
9393

9494
Ok(data)
9595
}
9696

97-
async fn get_block(&self, ctx: LinkResolverContext, link: &Link) -> Result<Vec<u8>, Error> {
97+
async fn get_block(&self, ctx: &LinkResolverContext, link: &Link) -> Result<Vec<u8>, Error> {
9898
let LinkResolverContext {
9999
deployment_hash,
100100
logger,
@@ -112,13 +112,13 @@ impl LinkResolver for IpfsResolver {
112112
};
113113

114114
let ctx = IpfsContext {
115-
deployment_hash,
116-
logger,
115+
deployment_hash: deployment_hash.cheap_clone(),
116+
logger: logger.cheap_clone(),
117117
};
118118
let data = self
119119
.client
120120
.clone()
121-
.get_block(ctx, &path, timeout, retry_policy)
121+
.get_block(&ctx, &path, timeout, retry_policy)
122122
.await?
123123
.to_vec();
124124

@@ -127,7 +127,7 @@ impl LinkResolver for IpfsResolver {
127127

128128
async fn json_stream(
129129
&self,
130-
ctx: LinkResolverContext,
130+
ctx: &LinkResolverContext,
131131
link: &Link,
132132
) -> Result<JsonValueStream, Error> {
133133
let LinkResolverContext {
@@ -148,13 +148,13 @@ impl LinkResolver for IpfsResolver {
148148
};
149149

150150
let ctx = IpfsContext {
151-
deployment_hash,
152-
logger,
151+
deployment_hash: deployment_hash.cheap_clone(),
152+
logger: logger.cheap_clone(),
153153
};
154154
let mut stream = self
155155
.client
156156
.clone()
157-
.cat_stream(ctx, &path, timeout, retry_policy)
157+
.cat_stream(&ctx, &path, timeout, retry_policy)
158158
.await?
159159
.fuse()
160160
.boxed()
@@ -266,7 +266,7 @@ mod tests {
266266
.unwrap();
267267
let resolver = IpfsResolver::new(Arc::new(client), Arc::new(env_vars));
268268

269-
let err = IpfsResolver::cat(&resolver, Default::default(), &Link { link: cid.clone() })
269+
let err = IpfsResolver::cat(&resolver, &Default::default(), &Link { link: cid.clone() })
270270
.await
271271
.unwrap_err();
272272

@@ -290,7 +290,7 @@ mod tests {
290290
let resolver = IpfsResolver::new(Arc::new(client), Arc::new(env_vars));
291291

292292
let stream =
293-
IpfsResolver::json_stream(&resolver, Default::default(), &Link { link: cid }).await?;
293+
IpfsResolver::json_stream(&resolver, &Default::default(), &Link { link: cid }).await?;
294294
stream.map_ok(|sv| sv.value).try_collect().await
295295
}
296296

graph/src/components/link_resolver/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,18 @@ pub trait LinkResolver: Send + Sync + 'static + Debug {
2626
fn with_retries(&self) -> Box<dyn LinkResolver>;
2727

2828
/// Fetches the link contents as bytes.
29-
async fn cat(&self, ctx: LinkResolverContext, link: &Link) -> Result<Vec<u8>, Error>;
29+
async fn cat(&self, ctx: &LinkResolverContext, link: &Link) -> Result<Vec<u8>, Error>;
3030

3131
/// Fetches the IPLD block contents as bytes.
32-
async fn get_block(&self, ctx: LinkResolverContext, link: &Link) -> Result<Vec<u8>, Error>;
32+
async fn get_block(&self, ctx: &LinkResolverContext, link: &Link) -> Result<Vec<u8>, Error>;
3333

3434
/// Read the contents of `link` and deserialize them into a stream of JSON
3535
/// values. The values must each be on a single line; newlines are significant
3636
/// as they are used to split the file contents and each line is deserialized
3737
/// separately.
3838
async fn json_stream(
3939
&self,
40-
ctx: LinkResolverContext,
40+
ctx: &LinkResolverContext,
4141
link: &Link,
4242
) -> Result<JsonValueStream, Error>;
4343
}

graph/src/data/subgraph/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ impl UnresolvedSchema {
427427
) -> Result<InputSchema, anyhow::Error> {
428428
let schema_bytes = resolver
429429
.cat(
430-
LinkResolverContext::new(deployment_hash, logger),
430+
&LinkResolverContext::new(deployment_hash, logger),
431431
&self.file,
432432
)
433433
.await

0 commit comments

Comments
 (0)