mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 18:41:03 +00:00
Change Runtime APIs best_finalized() signature
Change Runtime APIs best_finalized() signature to return Option<HeaderId> Signed-off-by: Serban Iorga <serban@parity.io>
This commit is contained in:
committed by
Bastian Köcher
parent
f13211344b
commit
7969459d07
@@ -40,6 +40,7 @@ use crate::{
|
||||
};
|
||||
|
||||
use beefy_primitives::{crypto::AuthorityId as BeefyId, mmr::MmrLeafVersion, ValidatorSet};
|
||||
use bp_runtime::{HeaderId, HeaderIdProvider};
|
||||
use bridge_runtime_common::messages::{
|
||||
source::estimate_message_dispatch_and_delivery_fee, MessageBridge,
|
||||
};
|
||||
@@ -56,9 +57,7 @@ use sp_mmr_primitives::{
|
||||
};
|
||||
use sp_runtime::{
|
||||
create_runtime_str, generic, impl_opaque_keys,
|
||||
traits::{
|
||||
Block as BlockT, Header as HeaderT, IdentityLookup, Keccak256, NumberFor, OpaqueKeys,
|
||||
},
|
||||
traits::{Block as BlockT, IdentityLookup, Keccak256, NumberFor, OpaqueKeys},
|
||||
transaction_validity::{TransactionSource, TransactionValidity},
|
||||
ApplyExtrinsicResult, FixedPointNumber, FixedU128, Perquintill,
|
||||
};
|
||||
@@ -818,19 +817,19 @@ impl_runtime_apis! {
|
||||
}
|
||||
|
||||
impl bp_rialto::RialtoFinalityApi<Block> for Runtime {
|
||||
fn best_finalized() -> Option<(bp_rialto::BlockNumber, bp_rialto::Hash)> {
|
||||
BridgeRialtoGrandpa::best_finalized().map(|header| (header.number, header.hash()))
|
||||
fn best_finalized() -> Option<HeaderId<bp_rialto::Hash, bp_rialto::BlockNumber>> {
|
||||
BridgeRialtoGrandpa::best_finalized().map(|header| header.id())
|
||||
}
|
||||
}
|
||||
|
||||
impl bp_westend::WestendFinalityApi<Block> for Runtime {
|
||||
fn best_finalized() -> Option<(bp_westend::BlockNumber, bp_westend::Hash)> {
|
||||
BridgeWestendGrandpa::best_finalized().map(|header| (header.number, header.hash()))
|
||||
fn best_finalized() -> Option<HeaderId<bp_westend::Hash, bp_westend::BlockNumber>> {
|
||||
BridgeWestendGrandpa::best_finalized().map(|header| header.id())
|
||||
}
|
||||
}
|
||||
|
||||
impl bp_westend::WestmintFinalityApi<Block> for Runtime {
|
||||
fn best_finalized() -> Option<(bp_westend::BlockNumber, bp_westend::Hash)> {
|
||||
fn best_finalized() -> Option<HeaderId<bp_westend::Hash, bp_westend::BlockNumber>> {
|
||||
// the parachains finality pallet is never decoding parachain heads, so it is
|
||||
// only done in the integration code
|
||||
use bp_westend::WESTMINT_PARACHAIN_ID;
|
||||
@@ -839,12 +838,12 @@ impl_runtime_apis! {
|
||||
WithWestendParachainsInstance,
|
||||
>::best_parachain_head(WESTMINT_PARACHAIN_ID.into())?;
|
||||
let head = bp_westend::Header::decode(&mut &encoded_head.0[..]).ok()?;
|
||||
Some((*head.number(), head.hash()))
|
||||
Some(head.id())
|
||||
}
|
||||
}
|
||||
|
||||
impl bp_rialto_parachain::RialtoParachainFinalityApi<Block> for Runtime {
|
||||
fn best_finalized() -> Option<(bp_rialto::BlockNumber, bp_rialto::Hash)> {
|
||||
fn best_finalized() -> Option<HeaderId<bp_rialto::Hash, bp_rialto::BlockNumber>> {
|
||||
// the parachains finality pallet is never decoding parachain heads, so it is
|
||||
// only done in the integration code
|
||||
let encoded_head = pallet_bridge_parachains::Pallet::<
|
||||
@@ -852,7 +851,7 @@ impl_runtime_apis! {
|
||||
WithRialtoParachainsInstance,
|
||||
>::best_parachain_head(bp_rialto_parachain::RIALTO_PARACHAIN_ID.into())?;
|
||||
let head = bp_rialto_parachain::Header::decode(&mut &encoded_head.0[..]).ok()?;
|
||||
Some((*head.number(), head.hash()))
|
||||
Some(head.id())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ use sp_version::NativeVersion;
|
||||
use sp_version::RuntimeVersion;
|
||||
|
||||
// A few exports that help ease life for downstream crates.
|
||||
use bp_runtime::{HeaderId, HeaderIdProvider};
|
||||
pub use frame_support::{
|
||||
construct_runtime, match_types, parameter_types,
|
||||
traits::{Everything, IsInVec, Nothing, Randomness},
|
||||
@@ -727,8 +728,8 @@ impl_runtime_apis! {
|
||||
}
|
||||
|
||||
impl bp_millau::MillauFinalityApi<Block> for Runtime {
|
||||
fn best_finalized() -> Option<(bp_millau::BlockNumber, bp_millau::Hash)> {
|
||||
BridgeMillauGrandpa::best_finalized().map(|header| (header.number, header.hash()))
|
||||
fn best_finalized() -> Option<HeaderId<bp_millau::Hash, bp_millau::BlockNumber>> {
|
||||
BridgeMillauGrandpa::best_finalized().map(|header| header.id())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ pub mod xcm_config;
|
||||
use crate::millau_messages::{ToMillauMessagePayload, WithMillauMessageBridge};
|
||||
|
||||
use beefy_primitives::{crypto::AuthorityId as BeefyId, mmr::MmrLeafVersion, ValidatorSet};
|
||||
use bp_runtime::{HeaderId, HeaderIdProvider};
|
||||
use bridge_runtime_common::messages::{
|
||||
source::estimate_message_dispatch_and_delivery_fee, MessageBridge,
|
||||
};
|
||||
@@ -653,8 +654,8 @@ impl_runtime_apis! {
|
||||
}
|
||||
|
||||
impl bp_millau::MillauFinalityApi<Block> for Runtime {
|
||||
fn best_finalized() -> Option<(bp_millau::BlockNumber, bp_millau::Hash)> {
|
||||
BridgeMillauGrandpa::best_finalized().map(|header| (header.number, header.hash()))
|
||||
fn best_finalized() -> Option<HeaderId<bp_millau::Hash, bp_millau::BlockNumber>> {
|
||||
BridgeMillauGrandpa::best_finalized().map(|header| header.id())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ sp_api::decl_runtime_apis! {
|
||||
/// Kusama runtime itself.
|
||||
pub trait KusamaFinalityApi {
|
||||
/// Returns number and hash of the best finalized header known to the bridge module.
|
||||
fn best_finalized() -> Option<(BlockNumber, Hash)>;
|
||||
fn best_finalized() -> Option<bp_runtime::HeaderId<Hash, BlockNumber>>;
|
||||
}
|
||||
|
||||
/// Outbound message lane API for messages that are sent to Kusama chain.
|
||||
|
||||
@@ -274,7 +274,7 @@ sp_api::decl_runtime_apis! {
|
||||
/// Millau runtime itself.
|
||||
pub trait MillauFinalityApi {
|
||||
/// Returns number and hash of the best finalized header known to the bridge module.
|
||||
fn best_finalized() -> Option<(BlockNumber, Hash)>;
|
||||
fn best_finalized() -> Option<bp_runtime::HeaderId<Hash, BlockNumber>>;
|
||||
}
|
||||
|
||||
/// Outbound message lane API for messages that are sent to Millau chain.
|
||||
|
||||
@@ -111,7 +111,7 @@ sp_api::decl_runtime_apis! {
|
||||
/// Polkadot runtime itself.
|
||||
pub trait PolkadotFinalityApi {
|
||||
/// Returns number and hash of the best finalized header known to the bridge module.
|
||||
fn best_finalized() -> Option<(BlockNumber, Hash)>;
|
||||
fn best_finalized() -> Option<bp_runtime::HeaderId<Hash, BlockNumber>>;
|
||||
}
|
||||
|
||||
/// Outbound message lane API for messages that are sent to Polkadot chain.
|
||||
|
||||
@@ -216,7 +216,7 @@ sp_api::decl_runtime_apis! {
|
||||
/// RialtoParachain runtime itself.
|
||||
pub trait RialtoParachainFinalityApi {
|
||||
/// Returns number and hash of the best finalized header known to the bridge module.
|
||||
fn best_finalized() -> Option<(BlockNumber, Hash)>;
|
||||
fn best_finalized() -> Option<bp_runtime::HeaderId<Hash, BlockNumber>>;
|
||||
}
|
||||
|
||||
/// Outbound message lane API for messages that are sent to RialtoParachain chain.
|
||||
|
||||
@@ -237,7 +237,7 @@ sp_api::decl_runtime_apis! {
|
||||
/// Rialto runtime itself.
|
||||
pub trait RialtoFinalityApi {
|
||||
/// Returns number and hash of the best finalized header known to the bridge module.
|
||||
fn best_finalized() -> Option<(BlockNumber, Hash)>;
|
||||
fn best_finalized() -> Option<bp_runtime::HeaderId<Hash, BlockNumber>>;
|
||||
}
|
||||
|
||||
/// Outbound message lane API for messages that are sent to Rialto chain.
|
||||
|
||||
@@ -106,7 +106,7 @@ sp_api::decl_runtime_apis! {
|
||||
/// Rococo runtime itself.
|
||||
pub trait RococoFinalityApi {
|
||||
/// Returns number and hash of the best finalized header known to the bridge module.
|
||||
fn best_finalized() -> Option<(BlockNumber, Hash)>;
|
||||
fn best_finalized() -> Option<bp_runtime::HeaderId<Hash, BlockNumber>>;
|
||||
}
|
||||
|
||||
/// Outbound message lane API for messages that are sent to Rococo chain.
|
||||
|
||||
@@ -104,7 +104,7 @@ sp_api::decl_runtime_apis! {
|
||||
/// Westend runtime itself.
|
||||
pub trait WestendFinalityApi {
|
||||
/// Returns number and hash of the best finalized header known to the bridge module.
|
||||
fn best_finalized() -> Option<(BlockNumber, Hash)>;
|
||||
fn best_finalized() -> Option<bp_runtime::HeaderId<Hash, BlockNumber>>;
|
||||
}
|
||||
|
||||
/// API for querying information about the finalized Westmint headers.
|
||||
@@ -113,7 +113,7 @@ sp_api::decl_runtime_apis! {
|
||||
/// Westmint runtime itself.
|
||||
pub trait WestmintFinalityApi {
|
||||
/// Returns number and hash of the best finalized header known to the bridge module.
|
||||
fn best_finalized() -> Option<(BlockNumber, Hash)>;
|
||||
fn best_finalized() -> Option<bp_runtime::HeaderId<Hash, BlockNumber>>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ sp_api::decl_runtime_apis! {
|
||||
/// Wococo runtime itself.
|
||||
pub trait WococoFinalityApi {
|
||||
/// Returns number and hash of the best finalized header known to the bridge module.
|
||||
fn best_finalized() -> Option<(BlockNumber, Hash)>;
|
||||
fn best_finalized() -> Option<bp_runtime::HeaderId<Hash, BlockNumber>>;
|
||||
}
|
||||
|
||||
/// Outbound message lane API for messages that are sent to Wococo chain.
|
||||
|
||||
@@ -82,7 +82,7 @@ pub const ACCOUNT_DERIVATION_PREFIX: &[u8] = b"pallet-bridge/account-derivation/
|
||||
pub const ROOT_ACCOUNT_DERIVATION_PREFIX: &[u8] = b"pallet-bridge/account-derivation/root";
|
||||
|
||||
/// Generic header Id.
|
||||
#[derive(RuntimeDebug, Default, Clone, Copy, Eq, Hash, PartialEq)]
|
||||
#[derive(RuntimeDebug, Default, Clone, Encode, Decode, Copy, Eq, Hash, PartialEq)]
|
||||
pub struct HeaderId<Hash, Number>(pub Number, pub Hash);
|
||||
|
||||
/// Generic header id provider.
|
||||
|
||||
@@ -562,17 +562,13 @@ where
|
||||
Some(at_self_hash),
|
||||
)
|
||||
.await?;
|
||||
let decoded_best_finalized_peer_on_self =
|
||||
Option::<(BlockNumberOf<PeerChain>, HashOf<PeerChain>)>::decode(
|
||||
|
||||
Option::<HeaderId<HashOf<PeerChain>, BlockNumberOf<PeerChain>>>::decode(
|
||||
&mut &encoded_best_finalized_peer_on_self.0[..],
|
||||
)
|
||||
.map_err(SubstrateError::ResponseParseFailed)?
|
||||
.map(Ok)
|
||||
.unwrap_or(Err(SubstrateError::BridgePalletIsNotInitialized))?;
|
||||
let peer_on_self_best_finalized_id =
|
||||
HeaderId(decoded_best_finalized_peer_on_self.0, decoded_best_finalized_peer_on_self.1);
|
||||
|
||||
Ok(peer_on_self_best_finalized_id)
|
||||
.unwrap_or(Err(SubstrateError::BridgePalletIsNotInitialized))
|
||||
}
|
||||
|
||||
fn make_message_details_map<C: Chain>(
|
||||
|
||||
@@ -107,14 +107,13 @@ where
|
||||
Some(at_block.1),
|
||||
)
|
||||
.await?;
|
||||
let decoded_best_finalized_source_block =
|
||||
Option::<(BlockNumberOf<P::SourceRelayChain>, HashOf<P::SourceRelayChain>)>::decode(
|
||||
|
||||
Option::<HeaderId<HashOf<P::SourceRelayChain>, BlockNumberOf<P::SourceRelayChain>>>::decode(
|
||||
&mut &encoded_best_finalized_source_block.0[..],
|
||||
)
|
||||
.map_err(SubstrateError::ResponseParseFailed)?
|
||||
.map(Ok)
|
||||
.unwrap_or(Err(SubstrateError::BridgePalletIsNotInitialized))?;
|
||||
Ok(HeaderId(decoded_best_finalized_source_block.0, decoded_best_finalized_source_block.1))
|
||||
.unwrap_or(Err(SubstrateError::BridgePalletIsNotInitialized))
|
||||
}
|
||||
|
||||
async fn parachain_head(
|
||||
|
||||
Reference in New Issue
Block a user