mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 07:31:02 +00:00
Add RococoBridgeHub <> WococoBridgeHub full 2 way bridge (#1663)
* Add RococoBridgeHub <> WococoBridgeHub full 2 way bridge * Use StorageMapKeyProvider instead of account_info_storage_key() Avoid duplicating storage_map_final_key() * clippy + leftovers
This commit is contained in:
committed by
Bastian Köcher
parent
786db04bbc
commit
7b74940539
@@ -44,6 +44,8 @@ use crate::{
|
||||
millau_headers_to_rialto_parachain::MillauToRialtoParachainCliBridge,
|
||||
rialto_headers_to_millau::RialtoToMillauCliBridge,
|
||||
rialto_parachains_to_millau::RialtoParachainToMillauCliBridge,
|
||||
rococo_parachains_to_bridge_hub_wococo::BridgeHubRococoToBridgeHubWococoCliBridge,
|
||||
wococo_parachains_to_bridge_hub_rococo::BridgeHubWococoToBridgeHubRococoCliBridge,
|
||||
},
|
||||
cli::{
|
||||
bridge::{
|
||||
@@ -51,6 +53,7 @@ use crate::{
|
||||
RelayToRelayHeadersCliBridge,
|
||||
},
|
||||
chain_schema::*,
|
||||
relay_headers_and_messages::parachain_to_parachain::ParachainToParachainBridge,
|
||||
CliChain, HexLaneId, PrometheusParams,
|
||||
},
|
||||
declare_chain_cli_schema,
|
||||
@@ -190,14 +193,29 @@ where
|
||||
declare_chain_cli_schema!(Millau, millau);
|
||||
declare_chain_cli_schema!(Rialto, rialto);
|
||||
declare_chain_cli_schema!(RialtoParachain, rialto_parachain);
|
||||
declare_chain_cli_schema!(Rococo, rococo);
|
||||
declare_chain_cli_schema!(BridgeHubRococo, bridge_hub_rococo);
|
||||
declare_chain_cli_schema!(Wococo, wococo);
|
||||
declare_chain_cli_schema!(BridgeHubWococo, bridge_hub_wococo);
|
||||
// Means to override signers of different layer transactions.
|
||||
declare_chain_cli_schema!(MillauHeadersToRialto, millau_headers_to_rialto);
|
||||
declare_chain_cli_schema!(MillauHeadersToRialtoParachain, millau_headers_to_rialto_parachain);
|
||||
declare_chain_cli_schema!(RialtoHeadersToMillau, rialto_headers_to_millau);
|
||||
declare_chain_cli_schema!(RialtoParachainsToMillau, rialto_parachains_to_millau);
|
||||
declare_chain_cli_schema!(RococoHeadersToBridgeHubWococo, rococo_headers_to_bridge_hub_wococo);
|
||||
declare_chain_cli_schema!(
|
||||
RococoParachainsToBridgeHubWococo,
|
||||
rococo_parachains_to_bridge_hub_wococo
|
||||
);
|
||||
declare_chain_cli_schema!(WococoHeadersToBridgeHubRococo, wococo_headers_to_bridge_hub_rococo);
|
||||
declare_chain_cli_schema!(
|
||||
WococoParachainsToBridgeHubRococo,
|
||||
wococo_parachains_to_bridge_hub_rococo
|
||||
);
|
||||
// All supported bridges.
|
||||
declare_relay_to_relay_bridge_schema!(Millau, Rialto);
|
||||
declare_relay_to_parachain_bridge_schema!(Millau, RialtoParachain, Rialto);
|
||||
declare_parachain_to_parachain_bridge_schema!(BridgeHubRococo, Rococo, BridgeHubWococo, Wococo);
|
||||
|
||||
/// Base portion of the bidirectional complex relay.
|
||||
///
|
||||
@@ -410,6 +428,32 @@ impl Full2WayBridge for MillauRialtoParachainFull2WayBridge {
|
||||
}
|
||||
}
|
||||
|
||||
/// BridgeHubRococo <> BridgeHubWococo complex relay.
|
||||
pub struct BridgeHubRococoBridgeHubWococoFull2WayBridge {
|
||||
base: <Self as Full2WayBridge>::Base,
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl Full2WayBridge for BridgeHubRococoBridgeHubWococoFull2WayBridge {
|
||||
type Base = ParachainToParachainBridge<Self::L2R, Self::R2L>;
|
||||
type Left = relay_bridge_hub_rococo_client::BridgeHubRococo;
|
||||
type Right = relay_bridge_hub_wococo_client::BridgeHubWococo;
|
||||
type L2R = BridgeHubRococoToBridgeHubWococoCliBridge;
|
||||
type R2L = BridgeHubWococoToBridgeHubRococoCliBridge;
|
||||
|
||||
fn new(base: Self::Base) -> anyhow::Result<Self> {
|
||||
Ok(Self { base })
|
||||
}
|
||||
|
||||
fn base(&self) -> &Self::Base {
|
||||
&self.base
|
||||
}
|
||||
|
||||
fn mut_base(&mut self) -> &mut Self::Base {
|
||||
&mut self.base
|
||||
}
|
||||
}
|
||||
|
||||
/// Complex headers+messages relay.
|
||||
#[derive(Debug, PartialEq, StructOpt)]
|
||||
pub enum RelayHeadersAndMessages {
|
||||
@@ -417,6 +461,8 @@ pub enum RelayHeadersAndMessages {
|
||||
MillauRialto(MillauRialtoHeadersAndMessages),
|
||||
/// Millau <> RialtoParachain relay.
|
||||
MillauRialtoParachain(MillauRialtoParachainHeadersAndMessages),
|
||||
/// BridgeHubRococo <> BridgeHubWococo relay.
|
||||
BridgeHubRococoBridgeHubWococo(BridgeHubRococoBridgeHubWococoHeadersAndMessages),
|
||||
}
|
||||
|
||||
impl RelayHeadersAndMessages {
|
||||
@@ -429,6 +475,10 @@ impl RelayHeadersAndMessages {
|
||||
MillauRialtoParachainFull2WayBridge::new(params.into_bridge().await?)?
|
||||
.run()
|
||||
.await,
|
||||
RelayHeadersAndMessages::BridgeHubRococoBridgeHubWococo(params) =>
|
||||
BridgeHubRococoBridgeHubWococoFull2WayBridge::new(params.into_bridge().await?)?
|
||||
.run()
|
||||
.await,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -118,7 +118,7 @@ macro_rules! declare_parachain_to_parachain_bridge_schema {
|
||||
left_parachains_to_right_sign_override: [<$left_chain ParachainsTo $right_parachain SigningParams>],
|
||||
}
|
||||
|
||||
impl [<$left_chain $right_parachain HeadersAndMessages>] {
|
||||
impl [<$left_parachain $right_parachain HeadersAndMessages>] {
|
||||
async fn into_bridge<
|
||||
Left: ChainWithTransactions + CliChain<KeyPair = AccountKeyPairOf<Left>>,
|
||||
LeftRelay: CliChain,
|
||||
@@ -132,7 +132,7 @@ macro_rules! declare_parachain_to_parachain_bridge_schema {
|
||||
+ ParachainToRelayHeadersCliBridge<SourceRelay = RightRelay>,
|
||||
>(
|
||||
self,
|
||||
) -> anyhow::Result<RelayToParachainBridge<L2R, R2L>> {
|
||||
) -> anyhow::Result<ParachainToParachainBridge<L2R, R2L>> {
|
||||
Ok(ParachainToParachainBridge {
|
||||
common: Full2WayBridgeCommonParams::new::<L2R>(
|
||||
self.shared,
|
||||
@@ -151,7 +151,7 @@ macro_rules! declare_parachain_to_parachain_bridge_schema {
|
||||
accounts: vec![],
|
||||
},
|
||||
)?,
|
||||
left_relay: self.left_relay.into_client::<RightRelay>().await?,
|
||||
left_relay: self.left_relay.into_client::<LeftRelay>().await?,
|
||||
right_relay: self.right_relay.into_client::<RightRelay>().await?,
|
||||
right_headers_to_left_transaction_params: self
|
||||
.right_relay_headers_to_left_sign_override
|
||||
|
||||
Reference in New Issue
Block a user