Skip to content

Commit

Permalink
Start finality relay spec-version guards for Rococo <> Wococo finalit…
Browse files Browse the repository at this point in the history
…y relays (paritytech#965)

* start finality relay guards

* comment
  • Loading branch information
svyatonik authored and serban300 committed Apr 10, 2024
1 parent 0f4245f commit ec7e960
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use crate::finality_pipeline::{SubstrateFinalitySyncPipeline, SubstrateFinalityT
use bp_header_chain::justification::GrandpaJustification;
use codec::Encode;
use relay_rococo_client::{Rococo, SyncHeader as RococoSyncHeader};
use relay_substrate_client::{Chain, TransactionSignScheme};
use relay_substrate_client::{Chain, Client, TransactionSignScheme};
use relay_utils::metrics::MetricsParams;
use relay_wococo_client::{SigningParams as WococoSigningParams, Wococo};
use sp_core::{Bytes, Pair};
Expand All @@ -38,6 +38,13 @@ impl SubstrateFinalitySyncPipeline for RococoFinalityToWococo {
crate::chains::add_polkadot_kusama_price_metrics::<Self>(params)
}

fn start_relay_guards(target_client: &Client<Self::TargetChain>) {
relay_substrate_client::guard::abort_on_spec_version_change(
target_client.clone(),
bp_wococo::VERSION.spec_version,
)
}

fn transactions_author(&self) -> bp_wococo::AccountId {
(*self.target_sign.public().as_array_ref()).into()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use crate::finality_pipeline::{SubstrateFinalitySyncPipeline, SubstrateFinalityT
use bp_header_chain::justification::GrandpaJustification;
use codec::Encode;
use relay_rococo_client::{Rococo, SigningParams as RococoSigningParams};
use relay_substrate_client::{Chain, TransactionSignScheme};
use relay_substrate_client::{Chain, Client, TransactionSignScheme};
use relay_utils::metrics::MetricsParams;
use relay_wococo_client::{SyncHeader as WococoSyncHeader, Wococo};
use sp_core::{Bytes, Pair};
Expand All @@ -38,6 +38,13 @@ impl SubstrateFinalitySyncPipeline for WococoFinalityToRococo {
crate::chains::add_polkadot_kusama_price_metrics::<Self>(params)
}

fn start_relay_guards(target_client: &Client<Self::TargetChain>) {
relay_substrate_client::guard::abort_on_spec_version_change(
target_client.clone(),
bp_rococo::VERSION.spec_version,
)
}

fn transactions_author(&self) -> bp_rococo::AccountId {
(*self.target_sign.public().as_array_ref()).into()
}
Expand Down
1 change: 1 addition & 0 deletions bridges/relays/bin-substrate/src/cli/relay_headers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ impl RelayHeaders {
let target_client = self.target.to_client::<Target>().await?;
let target_sign = self.target_sign.to_keypair::<Target>()?;
let metrics_params = Finality::customize_metrics(self.prometheus_params.into())?;
Finality::start_relay_guards(&target_client);

crate::finality_pipeline::run(
Finality::new(target_client.clone(), target_sign),
Expand Down
7 changes: 7 additions & 0 deletions bridges/relays/bin-substrate/src/finality_pipeline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,13 @@ pub trait SubstrateFinalitySyncPipeline: FinalitySyncPipeline {
Ok(params)
}

/// Start finality relay guards.
///
/// Different finality bridges may have different set of guards - e.g. on ephemeral chains we
/// don't need version guards, on test chains we don't care that much about relayer account
/// balance, ... So the implementation is left to the specific bridges.
fn start_relay_guards(_target_client: &Client<Self::TargetChain>) {}

/// Returns id of account that we're using to sign transactions at target chain.
fn transactions_author(&self) -> <Self::TargetChain as Chain>::AccountId;

Expand Down

0 comments on commit ec7e960

Please sign in to comment.