@@ -40,6 +40,10 @@ use relay_to_relay::*;
4040
4141use crate :: {
4242 bridges:: {
43+ kusama_polkadot:: {
44+ kusama_parachains_to_bridge_hub_polkadot:: BridgeHubKusamaToBridgeHubPolkadotCliBridge ,
45+ polkadot_parachains_to_bridge_hub_kusama:: BridgeHubPolkadotToBridgeHubKusamaCliBridge ,
46+ } ,
4347 rialto_millau:: {
4448 millau_headers_to_rialto:: MillauToRialtoCliBridge ,
4549 rialto_headers_to_millau:: RialtoToMillauCliBridge ,
@@ -202,6 +206,10 @@ declare_chain_cli_schema!(Rococo, rococo);
202206declare_chain_cli_schema ! ( BridgeHubRococo , bridge_hub_rococo) ;
203207declare_chain_cli_schema ! ( Wococo , wococo) ;
204208declare_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) ;
205213// Means to override signers of different layer transactions.
206214declare_chain_cli_schema ! ( MillauHeadersToRialto , millau_headers_to_rialto) ;
207215declare_chain_cli_schema ! ( MillauHeadersToRialtoParachain , millau_headers_to_rialto_parachain) ;
@@ -217,10 +225,21 @@ declare_chain_cli_schema!(
217225 WococoParachainsToBridgeHubRococo ,
218226 wococo_parachains_to_bridge_hub_rococo
219227) ;
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+ ) ;
220238// All supported bridges.
221239declare_relay_to_relay_bridge_schema ! ( Millau , Rialto ) ;
222240declare_relay_to_parachain_bridge_schema ! ( Millau , RialtoParachain , Rialto ) ;
223241declare_parachain_to_parachain_bridge_schema ! ( BridgeHubRococo , Rococo , BridgeHubWococo , Wococo ) ;
242+ declare_parachain_to_parachain_bridge_schema ! ( BridgeHubKusama , Kusama , BridgeHubPolkadot , Polkadot ) ;
224243
225244/// Base portion of the bidirectional complex relay.
226245///
@@ -463,6 +482,32 @@ impl Full2WayBridge for BridgeHubRococoBridgeHubWococoFull2WayBridge {
463482 }
464483}
465484
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+
466511/// Complex headers+messages relay.
467512#[ derive( Debug , PartialEq , StructOpt ) ]
468513pub enum RelayHeadersAndMessages {
@@ -472,6 +517,8 @@ pub enum RelayHeadersAndMessages {
472517 MillauRialtoParachain ( MillauRialtoParachainHeadersAndMessages ) ,
473518 /// BridgeHubRococo <> BridgeHubWococo relay.
474519 BridgeHubRococoBridgeHubWococo ( BridgeHubRococoBridgeHubWococoHeadersAndMessages ) ,
520+ /// BridgeHubKusama <> BridgeHubPolkadot relay.
521+ BridgeHubKusamaBridgeHubPolkadot ( BridgeHubKusamaBridgeHubPolkadotHeadersAndMessages ) ,
475522}
476523
477524impl RelayHeadersAndMessages {
@@ -488,6 +535,10 @@ impl RelayHeadersAndMessages {
488535 BridgeHubRococoBridgeHubWococoFull2WayBridge :: new ( params. into_bridge ( ) . await ?) ?
489536 . run ( )
490537 . await ,
538+ RelayHeadersAndMessages :: BridgeHubKusamaBridgeHubPolkadot ( params) =>
539+ BridgeHubKusamaBridgeHubPolkadotFull2WayBridge :: new ( params. into_bridge ( ) . await ?) ?
540+ . run ( )
541+ . await ,
491542 }
492543 }
493544}
0 commit comments