mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 07:31:02 +00:00
Start version guards for the ED loop (#2678)
This commit is contained in:
committed by
Bastian Köcher
parent
2718ed2709
commit
1c2b6b21da
-16
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use relay_substrate_client::{AccountKeyPairOf, Client};
|
|
||||||
use substrate_relay_helper::{
|
use substrate_relay_helper::{
|
||||||
equivocation::SubstrateEquivocationDetectionPipeline,
|
equivocation::SubstrateEquivocationDetectionPipeline,
|
||||||
finality::SubstrateFinalitySyncPipeline,
|
finality::SubstrateFinalitySyncPipeline,
|
||||||
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
||||||
TransactionParams,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Description of Kusama -> PolkadotBridgeHub finalized headers bridge.
|
/// Description of Kusama -> PolkadotBridgeHub finalized headers bridge.
|
||||||
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for KusamaFinalityToBridgeHubPolkadot {
|
|||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl SubstrateFinalitySyncPipeline for KusamaFinalityToBridgeHubPolkadot {
|
impl SubstrateFinalitySyncPipeline for KusamaFinalityToBridgeHubPolkadot {
|
||||||
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
||||||
|
|
||||||
async fn start_relay_guards(
|
|
||||||
target_client: &Client<Self::TargetChain>,
|
|
||||||
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
|
|
||||||
enable_version_guard: bool,
|
|
||||||
) -> relay_substrate_client::Result<()> {
|
|
||||||
if enable_version_guard {
|
|
||||||
relay_substrate_client::guard::abort_on_spec_version_change(
|
|
||||||
target_client.clone(),
|
|
||||||
target_client.simple_runtime_version().await?.spec_version,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
|
|||||||
-16
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use relay_substrate_client::{AccountKeyPairOf, Client};
|
|
||||||
use substrate_relay_helper::{
|
use substrate_relay_helper::{
|
||||||
equivocation::SubstrateEquivocationDetectionPipeline,
|
equivocation::SubstrateEquivocationDetectionPipeline,
|
||||||
finality::SubstrateFinalitySyncPipeline,
|
finality::SubstrateFinalitySyncPipeline,
|
||||||
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
||||||
TransactionParams,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Description of Polkadot -> KusamaBridgeHub finalized headers bridge.
|
/// Description of Polkadot -> KusamaBridgeHub finalized headers bridge.
|
||||||
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for PolkadotFinalityToBridgeHubKusama {
|
|||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl SubstrateFinalitySyncPipeline for PolkadotFinalityToBridgeHubKusama {
|
impl SubstrateFinalitySyncPipeline for PolkadotFinalityToBridgeHubKusama {
|
||||||
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
||||||
|
|
||||||
async fn start_relay_guards(
|
|
||||||
target_client: &Client<Self::TargetChain>,
|
|
||||||
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
|
|
||||||
enable_version_guard: bool,
|
|
||||||
) -> relay_substrate_client::Result<()> {
|
|
||||||
if enable_version_guard {
|
|
||||||
relay_substrate_client::guard::abort_on_spec_version_change(
|
|
||||||
target_client.clone(),
|
|
||||||
target_client.simple_runtime_version().await?.spec_version,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
|
|||||||
-16
@@ -22,12 +22,10 @@ use crate::cli::bridge::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use relay_substrate_client::{AccountKeyPairOf, Client};
|
|
||||||
use substrate_relay_helper::{
|
use substrate_relay_helper::{
|
||||||
equivocation::SubstrateEquivocationDetectionPipeline,
|
equivocation::SubstrateEquivocationDetectionPipeline,
|
||||||
finality::SubstrateFinalitySyncPipeline,
|
finality::SubstrateFinalitySyncPipeline,
|
||||||
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
||||||
TransactionParams,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Description of `PolkadotBulletin` -> `PolkadotBridgeHub` finalized headers bridge.
|
/// Description of `PolkadotBulletin` -> `PolkadotBridgeHub` finalized headers bridge.
|
||||||
@@ -59,20 +57,6 @@ impl SubstrateFinalityPipeline for PolkadotBulletinFinalityToBridgeHubPolkadot {
|
|||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl SubstrateFinalitySyncPipeline for PolkadotBulletinFinalityToBridgeHubPolkadot {
|
impl SubstrateFinalitySyncPipeline for PolkadotBulletinFinalityToBridgeHubPolkadot {
|
||||||
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
||||||
|
|
||||||
async fn start_relay_guards(
|
|
||||||
target_client: &Client<Self::TargetChain>,
|
|
||||||
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
|
|
||||||
enable_version_guard: bool,
|
|
||||||
) -> relay_substrate_client::Result<()> {
|
|
||||||
if enable_version_guard {
|
|
||||||
relay_substrate_client::guard::abort_on_spec_version_change(
|
|
||||||
target_client.clone(),
|
|
||||||
target_client.simple_runtime_version().await?.spec_version,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
|
|||||||
-16
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use relay_substrate_client::{AccountKeyPairOf, Client};
|
|
||||||
use substrate_relay_helper::{
|
use substrate_relay_helper::{
|
||||||
equivocation::SubstrateEquivocationDetectionPipeline,
|
equivocation::SubstrateEquivocationDetectionPipeline,
|
||||||
finality::SubstrateFinalitySyncPipeline,
|
finality::SubstrateFinalitySyncPipeline,
|
||||||
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
||||||
TransactionParams,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Description of Polkadot -> `PolkadotBulletin` finalized headers bridge.
|
/// Description of Polkadot -> `PolkadotBulletin` finalized headers bridge.
|
||||||
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for PolkadotFinalityToPolkadotBulletin {
|
|||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl SubstrateFinalitySyncPipeline for PolkadotFinalityToPolkadotBulletin {
|
impl SubstrateFinalitySyncPipeline for PolkadotFinalityToPolkadotBulletin {
|
||||||
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
||||||
|
|
||||||
async fn start_relay_guards(
|
|
||||||
target_client: &Client<Self::TargetChain>,
|
|
||||||
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
|
|
||||||
enable_version_guard: bool,
|
|
||||||
) -> relay_substrate_client::Result<()> {
|
|
||||||
if enable_version_guard {
|
|
||||||
relay_substrate_client::guard::abort_on_spec_version_change(
|
|
||||||
target_client.clone(),
|
|
||||||
target_client.simple_runtime_version().await?.spec_version,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
|
|||||||
-16
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use relay_substrate_client::{AccountKeyPairOf, Client};
|
|
||||||
use substrate_relay_helper::{
|
use substrate_relay_helper::{
|
||||||
equivocation::SubstrateEquivocationDetectionPipeline,
|
equivocation::SubstrateEquivocationDetectionPipeline,
|
||||||
finality::SubstrateFinalitySyncPipeline,
|
finality::SubstrateFinalitySyncPipeline,
|
||||||
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
||||||
TransactionParams,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Description of Rococo -> Westend finalized headers bridge.
|
/// Description of Rococo -> Westend finalized headers bridge.
|
||||||
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for RococoFinalityToBridgeHubWestend {
|
|||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl SubstrateFinalitySyncPipeline for RococoFinalityToBridgeHubWestend {
|
impl SubstrateFinalitySyncPipeline for RococoFinalityToBridgeHubWestend {
|
||||||
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
||||||
|
|
||||||
async fn start_relay_guards(
|
|
||||||
target_client: &Client<Self::TargetChain>,
|
|
||||||
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
|
|
||||||
enable_version_guard: bool,
|
|
||||||
) -> relay_substrate_client::Result<()> {
|
|
||||||
if enable_version_guard {
|
|
||||||
relay_substrate_client::guard::abort_on_spec_version_change(
|
|
||||||
target_client.clone(),
|
|
||||||
target_client.simple_runtime_version().await?.spec_version,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
|
|||||||
-16
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use relay_substrate_client::{AccountKeyPairOf, Client};
|
|
||||||
use substrate_relay_helper::{
|
use substrate_relay_helper::{
|
||||||
equivocation::SubstrateEquivocationDetectionPipeline,
|
equivocation::SubstrateEquivocationDetectionPipeline,
|
||||||
finality::SubstrateFinalitySyncPipeline,
|
finality::SubstrateFinalitySyncPipeline,
|
||||||
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
||||||
TransactionParams,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Description of Westend -> Rococo finalized headers bridge.
|
/// Description of Westend -> Rococo finalized headers bridge.
|
||||||
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for WestendFinalityToBridgeHubRococo {
|
|||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl SubstrateFinalitySyncPipeline for WestendFinalityToBridgeHubRococo {
|
impl SubstrateFinalitySyncPipeline for WestendFinalityToBridgeHubRococo {
|
||||||
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
||||||
|
|
||||||
async fn start_relay_guards(
|
|
||||||
target_client: &Client<Self::TargetChain>,
|
|
||||||
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
|
|
||||||
enable_version_guard: bool,
|
|
||||||
) -> relay_substrate_client::Result<()> {
|
|
||||||
if enable_version_guard {
|
|
||||||
relay_substrate_client::guard::abort_on_spec_version_change(
|
|
||||||
target_client.clone(),
|
|
||||||
target_client.simple_runtime_version().await?.spec_version,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
|
|||||||
-16
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use relay_substrate_client::{AccountKeyPairOf, Client};
|
|
||||||
use substrate_relay_helper::{
|
use substrate_relay_helper::{
|
||||||
equivocation::SubstrateEquivocationDetectionPipeline,
|
equivocation::SubstrateEquivocationDetectionPipeline,
|
||||||
finality::SubstrateFinalitySyncPipeline,
|
finality::SubstrateFinalitySyncPipeline,
|
||||||
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
||||||
TransactionParams,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Description of Rococo -> Wococo finalized headers bridge.
|
/// Description of Rococo -> Wococo finalized headers bridge.
|
||||||
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for RococoFinalityToBridgeHubWococo {
|
|||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl SubstrateFinalitySyncPipeline for RococoFinalityToBridgeHubWococo {
|
impl SubstrateFinalitySyncPipeline for RococoFinalityToBridgeHubWococo {
|
||||||
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
||||||
|
|
||||||
async fn start_relay_guards(
|
|
||||||
target_client: &Client<Self::TargetChain>,
|
|
||||||
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
|
|
||||||
enable_version_guard: bool,
|
|
||||||
) -> relay_substrate_client::Result<()> {
|
|
||||||
if enable_version_guard {
|
|
||||||
relay_substrate_client::guard::abort_on_spec_version_change(
|
|
||||||
target_client.clone(),
|
|
||||||
target_client.simple_runtime_version().await?.spec_version,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
|
|||||||
-16
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use relay_substrate_client::{AccountKeyPairOf, Client};
|
|
||||||
use substrate_relay_helper::{
|
use substrate_relay_helper::{
|
||||||
equivocation::SubstrateEquivocationDetectionPipeline,
|
equivocation::SubstrateEquivocationDetectionPipeline,
|
||||||
finality::SubstrateFinalitySyncPipeline,
|
finality::SubstrateFinalitySyncPipeline,
|
||||||
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
|
||||||
TransactionParams,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Description of Wococo -> Rococo finalized headers bridge.
|
/// Description of Wococo -> Rococo finalized headers bridge.
|
||||||
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for WococoFinalityToBridgeHubRococo {
|
|||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl SubstrateFinalitySyncPipeline for WococoFinalityToBridgeHubRococo {
|
impl SubstrateFinalitySyncPipeline for WococoFinalityToBridgeHubRococo {
|
||||||
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
|
||||||
|
|
||||||
async fn start_relay_guards(
|
|
||||||
target_client: &Client<Self::TargetChain>,
|
|
||||||
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
|
|
||||||
enable_version_guard: bool,
|
|
||||||
) -> relay_substrate_client::Result<()> {
|
|
||||||
if enable_version_guard {
|
|
||||||
relay_substrate_client::guard::abort_on_spec_version_change(
|
|
||||||
target_client.clone(),
|
|
||||||
target_client.simple_runtime_version().await?.spec_version,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ use async_trait::async_trait;
|
|||||||
use relay_substrate_client::ChainWithTransactions;
|
use relay_substrate_client::ChainWithTransactions;
|
||||||
use structopt::StructOpt;
|
use structopt::StructOpt;
|
||||||
use strum::{EnumString, EnumVariantNames, VariantNames};
|
use strum::{EnumString, EnumVariantNames, VariantNames};
|
||||||
use substrate_relay_helper::equivocation;
|
use substrate_relay_helper::{equivocation, equivocation::SubstrateEquivocationDetectionPipeline};
|
||||||
|
|
||||||
/// Start equivocation detection loop.
|
/// Start equivocation detection loop.
|
||||||
#[derive(StructOpt)]
|
#[derive(StructOpt)]
|
||||||
@@ -73,8 +73,15 @@ where
|
|||||||
Self::Source: ChainWithTransactions,
|
Self::Source: ChainWithTransactions,
|
||||||
{
|
{
|
||||||
async fn start(data: DetectEquivocations) -> anyhow::Result<()> {
|
async fn start(data: DetectEquivocations) -> anyhow::Result<()> {
|
||||||
|
let source_client = data.source.into_client::<Self::Source>().await?;
|
||||||
|
Self::Equivocation::start_relay_guards(
|
||||||
|
&source_client,
|
||||||
|
source_client.can_start_version_guard(),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
equivocation::run::<Self::Equivocation>(
|
equivocation::run::<Self::Equivocation>(
|
||||||
data.source.into_client::<Self::Source>().await?,
|
source_client,
|
||||||
data.target.into_client::<Self::Target>().await?,
|
data.target.into_client::<Self::Target>().await?,
|
||||||
data.source_sign.transaction_params::<Self::Source>()?,
|
data.source_sign.transaction_params::<Self::Source>()?,
|
||||||
data.prometheus_params.into_metrics_params()?,
|
data.prometheus_params.into_metrics_params()?,
|
||||||
|
|||||||
@@ -96,11 +96,7 @@ trait HeadersRelayer: RelayToRelayHeadersCliBridge {
|
|||||||
signer: target_sign,
|
signer: target_sign,
|
||||||
mortality: target_transactions_mortality,
|
mortality: target_transactions_mortality,
|
||||||
};
|
};
|
||||||
Self::Finality::start_relay_guards(
|
Self::Finality::start_relay_guards(&target_client, target_client.can_start_version_guard())
|
||||||
&target_client,
|
|
||||||
&target_transactions_params,
|
|
||||||
target_client.can_start_version_guard(),
|
|
||||||
)
|
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
substrate_relay_helper::finality::run::<Self::Finality>(
|
substrate_relay_helper::finality::run::<Self::Finality>(
|
||||||
|
|||||||
-2
@@ -218,13 +218,11 @@ where
|
|||||||
|
|
||||||
<L2R as ParachainToRelayHeadersCliBridge>::RelayFinality::start_relay_guards(
|
<L2R as ParachainToRelayHeadersCliBridge>::RelayFinality::start_relay_guards(
|
||||||
&self.common.right.client,
|
&self.common.right.client,
|
||||||
&self.left_headers_to_right_transaction_params,
|
|
||||||
self.common.right.client.can_start_version_guard(),
|
self.common.right.client.can_start_version_guard(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
<R2L as ParachainToRelayHeadersCliBridge>::RelayFinality::start_relay_guards(
|
<R2L as ParachainToRelayHeadersCliBridge>::RelayFinality::start_relay_guards(
|
||||||
&self.common.left.client,
|
&self.common.left.client,
|
||||||
&self.right_headers_to_left_transaction_params,
|
|
||||||
self.common.left.client.can_start_version_guard(),
|
self.common.left.client.can_start_version_guard(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|||||||
@@ -200,13 +200,11 @@ where
|
|||||||
|
|
||||||
<L2R as RelayToRelayHeadersCliBridge>::Finality::start_relay_guards(
|
<L2R as RelayToRelayHeadersCliBridge>::Finality::start_relay_guards(
|
||||||
&self.common.right.client,
|
&self.common.right.client,
|
||||||
&self.left_headers_to_right_transaction_params,
|
|
||||||
self.common.right.client.can_start_version_guard(),
|
self.common.right.client.can_start_version_guard(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
<R2L as ParachainToRelayHeadersCliBridge>::RelayFinality::start_relay_guards(
|
<R2L as ParachainToRelayHeadersCliBridge>::RelayFinality::start_relay_guards(
|
||||||
&self.common.left.client,
|
&self.common.left.client,
|
||||||
&self.right_headers_to_left_transaction_params,
|
|
||||||
self.common.left.client.can_start_version_guard(),
|
self.common.left.client.can_start_version_guard(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|||||||
@@ -156,13 +156,11 @@ where
|
|||||||
|
|
||||||
<L2R as RelayToRelayHeadersCliBridge>::Finality::start_relay_guards(
|
<L2R as RelayToRelayHeadersCliBridge>::Finality::start_relay_guards(
|
||||||
&self.common.right.client,
|
&self.common.right.client,
|
||||||
&self.left_to_right_transaction_params,
|
|
||||||
self.common.right.client.can_start_version_guard(),
|
self.common.right.client.can_start_version_guard(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
<R2L as RelayToRelayHeadersCliBridge>::Finality::start_relay_guards(
|
<R2L as RelayToRelayHeadersCliBridge>::Finality::start_relay_guards(
|
||||||
&self.common.left.client,
|
&self.common.left.client,
|
||||||
&self.right_to_left_transaction_params,
|
|
||||||
self.common.left.client.can_start_version_guard(),
|
self.common.left.client.can_start_version_guard(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|||||||
@@ -66,6 +66,20 @@ pub trait SubstrateEquivocationDetectionPipeline:
|
|||||||
{
|
{
|
||||||
/// How the `report_equivocation` call is built ?
|
/// How the `report_equivocation` call is built ?
|
||||||
type ReportEquivocationCallBuilder: ReportEquivocationCallBuilder<Self>;
|
type ReportEquivocationCallBuilder: ReportEquivocationCallBuilder<Self>;
|
||||||
|
|
||||||
|
/// Add relay guards if required.
|
||||||
|
async fn start_relay_guards(
|
||||||
|
source_client: &Client<Self::SourceChain>,
|
||||||
|
enable_version_guard: bool,
|
||||||
|
) -> relay_substrate_client::Result<()> {
|
||||||
|
if enable_version_guard {
|
||||||
|
relay_substrate_client::guard::abort_on_spec_version_change(
|
||||||
|
source_client.clone(),
|
||||||
|
source_client.simple_runtime_version().await?.spec_version,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type FinalityProoffOf<P> = <<P as SubstrateFinalityPipeline>::FinalityEngine as Engine<
|
type FinalityProoffOf<P> = <<P as SubstrateFinalityPipeline>::FinalityEngine as Engine<
|
||||||
|
|||||||
@@ -75,10 +75,15 @@ pub trait SubstrateFinalitySyncPipeline: BaseSubstrateFinalitySyncPipeline {
|
|||||||
|
|
||||||
/// Add relay guards if required.
|
/// Add relay guards if required.
|
||||||
async fn start_relay_guards(
|
async fn start_relay_guards(
|
||||||
_target_client: &Client<Self::TargetChain>,
|
target_client: &Client<Self::TargetChain>,
|
||||||
_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
|
enable_version_guard: bool,
|
||||||
_enable_version_guard: bool,
|
|
||||||
) -> relay_substrate_client::Result<()> {
|
) -> relay_substrate_client::Result<()> {
|
||||||
|
if enable_version_guard {
|
||||||
|
relay_substrate_client::guard::abort_on_spec_version_change(
|
||||||
|
target_client.clone(),
|
||||||
|
target_client.simple_runtime_version().await?.spec_version,
|
||||||
|
);
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user