@@ -40,6 +40,10 @@ use relay_to_relay::*;
40
40
41
41
use crate :: {
42
42
bridges:: {
43
+ kusama_polkadot:: {
44
+ kusama_parachains_to_bridge_hub_polkadot:: BridgeHubKusamaToBridgeHubPolkadotCliBridge ,
45
+ polkadot_parachains_to_bridge_hub_kusama:: BridgeHubPolkadotToBridgeHubKusamaCliBridge ,
46
+ } ,
43
47
rialto_millau:: {
44
48
millau_headers_to_rialto:: MillauToRialtoCliBridge ,
45
49
rialto_headers_to_millau:: RialtoToMillauCliBridge ,
@@ -202,6 +206,10 @@ declare_chain_cli_schema!(Rococo, rococo);
202
206
declare_chain_cli_schema ! ( BridgeHubRococo , bridge_hub_rococo) ;
203
207
declare_chain_cli_schema ! ( Wococo , wococo) ;
204
208
declare_chain_cli_schema ! ( BridgeHubWococo , bridge_hub_wococo) ;
209
+ declare_chain_cli_schema ! ( Kusama , kusama) ;
210
+ declare_chain_cli_schema ! ( BridgeHubKusama , bridge_hub_kusama) ;
211
+ declare_chain_cli_schema ! ( Polkadot , polkadot) ;
212
+ declare_chain_cli_schema ! ( BridgeHubPolkadot , bridge_hub_polkadot) ;
205
213
// Means to override signers of different layer transactions.
206
214
declare_chain_cli_schema ! ( MillauHeadersToRialto , millau_headers_to_rialto) ;
207
215
declare_chain_cli_schema ! ( MillauHeadersToRialtoParachain , millau_headers_to_rialto_parachain) ;
@@ -217,10 +225,21 @@ declare_chain_cli_schema!(
217
225
WococoParachainsToBridgeHubRococo ,
218
226
wococo_parachains_to_bridge_hub_rococo
219
227
) ;
228
+ declare_chain_cli_schema ! ( KusamaHeadersToBridgeHubPolkadot , kusama_headers_to_bridge_hub_polkadot) ;
229
+ declare_chain_cli_schema ! (
230
+ KusamaParachainsToBridgeHubPolkadot ,
231
+ kusama_parachains_to_bridge_hub_polkadot
232
+ ) ;
233
+ declare_chain_cli_schema ! ( PolkadotHeadersToBridgeHubKusama , polkadot_headers_to_bridge_hub_kusama) ;
234
+ declare_chain_cli_schema ! (
235
+ PolkadotParachainsToBridgeHubKusama ,
236
+ polkadot_parachains_to_bridge_hub_kusama
237
+ ) ;
220
238
// All supported bridges.
221
239
declare_relay_to_relay_bridge_schema ! ( Millau , Rialto ) ;
222
240
declare_relay_to_parachain_bridge_schema ! ( Millau , RialtoParachain , Rialto ) ;
223
241
declare_parachain_to_parachain_bridge_schema ! ( BridgeHubRococo , Rococo , BridgeHubWococo , Wococo ) ;
242
+ declare_parachain_to_parachain_bridge_schema ! ( BridgeHubKusama , Kusama , BridgeHubPolkadot , Polkadot ) ;
224
243
225
244
/// Base portion of the bidirectional complex relay.
226
245
///
@@ -463,6 +482,32 @@ impl Full2WayBridge for BridgeHubRococoBridgeHubWococoFull2WayBridge {
463
482
}
464
483
}
465
484
485
+ /// BridgeHubKusama <> BridgeHubPolkadot complex relay.
486
+ pub struct BridgeHubKusamaBridgeHubPolkadotFull2WayBridge {
487
+ base : <Self as Full2WayBridge >:: Base ,
488
+ }
489
+
490
+ #[ async_trait]
491
+ impl Full2WayBridge for BridgeHubKusamaBridgeHubPolkadotFull2WayBridge {
492
+ type Base = ParachainToParachainBridge < Self :: L2R , Self :: R2L > ;
493
+ type Left = relay_bridge_hub_kusama_client:: BridgeHubKusama ;
494
+ type Right = relay_bridge_hub_polkadot_client:: BridgeHubPolkadot ;
495
+ type L2R = BridgeHubKusamaToBridgeHubPolkadotCliBridge ;
496
+ type R2L = BridgeHubPolkadotToBridgeHubKusamaCliBridge ;
497
+
498
+ fn new ( base : Self :: Base ) -> anyhow:: Result < Self > {
499
+ Ok ( Self { base } )
500
+ }
501
+
502
+ fn base ( & self ) -> & Self :: Base {
503
+ & self . base
504
+ }
505
+
506
+ fn mut_base ( & mut self ) -> & mut Self :: Base {
507
+ & mut self . base
508
+ }
509
+ }
510
+
466
511
/// Complex headers+messages relay.
467
512
#[ derive( Debug , PartialEq , StructOpt ) ]
468
513
pub enum RelayHeadersAndMessages {
@@ -472,6 +517,8 @@ pub enum RelayHeadersAndMessages {
472
517
MillauRialtoParachain ( MillauRialtoParachainHeadersAndMessages ) ,
473
518
/// BridgeHubRococo <> BridgeHubWococo relay.
474
519
BridgeHubRococoBridgeHubWococo ( BridgeHubRococoBridgeHubWococoHeadersAndMessages ) ,
520
+ /// BridgeHubKusama <> BridgeHubPolkadot relay.
521
+ BridgeHubKusamaBridgeHubPolkadot ( BridgeHubKusamaBridgeHubPolkadotHeadersAndMessages ) ,
475
522
}
476
523
477
524
impl RelayHeadersAndMessages {
@@ -488,6 +535,10 @@ impl RelayHeadersAndMessages {
488
535
BridgeHubRococoBridgeHubWococoFull2WayBridge :: new ( params. into_bridge ( ) . await ?) ?
489
536
. run ( )
490
537
. await ,
538
+ RelayHeadersAndMessages :: BridgeHubKusamaBridgeHubPolkadot ( params) =>
539
+ BridgeHubKusamaBridgeHubPolkadotFull2WayBridge :: new ( params. into_bridge ( ) . await ?) ?
540
+ . run ( )
541
+ . await ,
491
542
}
492
543
}
493
544
}
0 commit comments