@@ -278,6 +278,7 @@ where
278
278
start_block_override : Option < BlockPtr > ,
279
279
graft_block_override : Option < BlockPtr > ,
280
280
history_blocks : Option < i32 > ,
281
+ ignore_graft_base : bool ,
281
282
) -> Result < DeploymentLocator , SubgraphRegistrarError > {
282
283
// We don't have a location for the subgraph yet; that will be
283
284
// assigned when we deploy for real. For logging purposes, make up a
@@ -330,6 +331,7 @@ where
330
331
self . version_switching_mode ,
331
332
& resolver,
332
333
history_blocks,
334
+ ignore_graft_base,
333
335
)
334
336
. await ?
335
337
}
@@ -348,6 +350,7 @@ where
348
350
self . version_switching_mode ,
349
351
& resolver,
350
352
history_blocks,
353
+ ignore_graft_base,
351
354
)
352
355
. await ?
353
356
}
@@ -366,6 +369,7 @@ where
366
369
self . version_switching_mode ,
367
370
& resolver,
368
371
history_blocks,
372
+ ignore_graft_base,
369
373
)
370
374
. await ?
371
375
}
@@ -384,6 +388,7 @@ where
384
388
self . version_switching_mode ,
385
389
& resolver,
386
390
history_blocks,
391
+ ignore_graft_base,
387
392
)
388
393
. await ?
389
394
}
@@ -570,6 +575,7 @@ async fn create_subgraph_version<C: Blockchain, S: SubgraphStore>(
570
575
version_switching_mode : SubgraphVersionSwitchingMode ,
571
576
resolver : & Arc < dyn LinkResolver > ,
572
577
history_blocks_override : Option < i32 > ,
578
+ ignore_graft_base : bool ,
573
579
) -> Result < DeploymentLocator , SubgraphRegistrarError > {
574
580
let raw_string = serde_yaml:: to_string ( & raw ) . unwrap ( ) ;
575
581
@@ -591,10 +597,21 @@ async fn create_subgraph_version<C: Blockchain, S: SubgraphStore>(
591
597
Err ( StoreError :: DeploymentNotFound ( _) ) => true ,
592
598
Err ( e) => return Err ( SubgraphRegistrarError :: StoreError ( e) ) ,
593
599
} ;
594
- let manifest = unvalidated
595
- . validate ( store. cheap_clone ( ) , should_validate)
596
- . await
597
- . map_err ( SubgraphRegistrarError :: ManifestValidationError ) ?;
600
+
601
+ let manifest = {
602
+ let should_validate = should_validate && !ignore_graft_base;
603
+
604
+ let mut manifest = unvalidated
605
+ . validate ( store. cheap_clone ( ) , should_validate)
606
+ . await
607
+ . map_err ( SubgraphRegistrarError :: ManifestValidationError ) ?;
608
+
609
+ if ignore_graft_base {
610
+ manifest. graft = None ;
611
+ }
612
+
613
+ manifest
614
+ } ;
598
615
599
616
let network_name: Word = manifest. network_name ( ) . into ( ) ;
600
617
0 commit comments