mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 18:11:10 +00:00
Bridge: make some headers submissions free (#4102)
supersedes https://github.com/paritytech/parity-bridges-common/pull/2873 Draft because of couple of TODOs: - [x] fix remaining TODOs; - [x] double check that all changes from https://github.com/paritytech/parity-bridges-common/pull/2873 are correctly ported; - [x] create a separate PR (on top of that one or a follow up?) for https://github.com/paritytech/polkadot-sdk/tree/sv-try-new-bridge-fees; - [x] fix compilation issues (haven't checked, but there should be many). --------- Co-authored-by: Adrian Catangiu <adrian@parity.io>
This commit is contained in:
committed by
GitHub
parent
4f3d43a0c4
commit
a633e954f3
@@ -236,6 +236,12 @@ where
|
||||
pub trait Parachain: Chain {
|
||||
/// Parachain identifier.
|
||||
const PARACHAIN_ID: u32;
|
||||
/// Maximal size of the parachain header.
|
||||
///
|
||||
/// This isn't a strict limit. The relayer may submit larger headers and the
|
||||
/// pallet will accept the call. The limit is only used to compute whether
|
||||
/// the refund can be made.
|
||||
const MAX_HEADER_SIZE: u32;
|
||||
}
|
||||
|
||||
impl<T> Parachain for T
|
||||
@@ -244,6 +250,8 @@ where
|
||||
<T as UnderlyingChainProvider>::Chain: Parachain,
|
||||
{
|
||||
const PARACHAIN_ID: u32 = <<T as UnderlyingChainProvider>::Chain as Parachain>::PARACHAIN_ID;
|
||||
const MAX_HEADER_SIZE: u32 =
|
||||
<<T as UnderlyingChainProvider>::Chain as Parachain>::MAX_HEADER_SIZE;
|
||||
}
|
||||
|
||||
/// Adapter for `Get<u32>` to access `PARACHAIN_ID` from `trait Parachain`
|
||||
@@ -306,6 +314,11 @@ macro_rules! decl_bridge_finality_runtime_apis {
|
||||
pub const [<BEST_FINALIZED_ $chain:upper _HEADER_METHOD>]: &str =
|
||||
stringify!([<$chain:camel FinalityApi_best_finalized>]);
|
||||
|
||||
/// Name of the `<ThisChain>FinalityApi::free_headers_interval` runtime method.
|
||||
pub const [<FREE_HEADERS_INTERVAL_FOR_ $chain:upper _METHOD>]: &str =
|
||||
stringify!([<$chain:camel FinalityApi_free_headers_interval>]);
|
||||
|
||||
|
||||
$(
|
||||
/// Name of the `<ThisChain>FinalityApi::accepted_<consensus>_finality_proofs`
|
||||
/// runtime method.
|
||||
@@ -322,6 +335,13 @@ macro_rules! decl_bridge_finality_runtime_apis {
|
||||
/// Returns number and hash of the best finalized header known to the bridge module.
|
||||
fn best_finalized() -> Option<bp_runtime::HeaderId<Hash, BlockNumber>>;
|
||||
|
||||
/// Returns free headers interval, if it is configured in the runtime.
|
||||
/// The caller expects that if his transaction improves best known header
|
||||
/// at least by the free_headers_interval`, it will be fee-free.
|
||||
///
|
||||
/// See [`pallet_bridge_grandpa::Config::FreeHeadersInterval`] for details.
|
||||
fn free_headers_interval() -> Option<BlockNumber>;
|
||||
|
||||
$(
|
||||
/// Returns the justifications accepted in the current block.
|
||||
fn [<synced_headers_ $consensus:lower _info>](
|
||||
|
||||
Reference in New Issue
Block a user