mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 08:41:02 +00:00
Chain specific message lane apis (#503)
* replace generic message lane APIs with chain-specific * moved SubstrateHeadersSyncPipeline to headers_pipeline.rs * substrate-specific message lane trait * Update relays/substrate/src/messages_lane.rs Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
This commit is contained in:
committed by
Bastian Köcher
parent
d2ab81340a
commit
53791a1d4a
@@ -22,7 +22,7 @@
|
||||
|
||||
mod millau_hash;
|
||||
|
||||
use bp_message_lane::MessageNonce;
|
||||
use bp_message_lane::{LaneId, MessageNonce};
|
||||
use bp_runtime::Chain;
|
||||
use frame_support::{weights::Weight, RuntimeDebug};
|
||||
use sp_core::Hasher as HasherT;
|
||||
@@ -111,6 +111,18 @@ pub const IS_KNOWN_MILLAU_BLOCK_METHOD: &str = "MillauHeaderApi_is_known_block";
|
||||
/// Name of the `MillauHeaderApi::incomplete_headers` runtime method.
|
||||
pub const INCOMPLETE_MILLAU_HEADERS_METHOD: &str = "MillauHeaderApi_incomplete_headers";
|
||||
|
||||
/// Name of the `ToMillauOutboundLaneApi::messages_dispatch_weight` runtime method.
|
||||
pub const TO_MILLAU_MESSAGES_DISPATCH_WEIGHT_METHOD: &str = "ToMillauOutboundLaneApi_messages_dispatch_weight";
|
||||
/// Name of the `ToMillauOutboundLaneApi::latest_received_nonce` runtime method.
|
||||
pub const TO_MILLAU_LATEST_RECEIVED_NONCE_METHOD: &str = "ToMillauOutboundLaneApi_latest_received_nonce";
|
||||
/// Name of the `ToMillauOutboundLaneApi::latest_generated_nonce` runtime method.
|
||||
pub const TO_MILLAU_LATEST_GENERATED_NONCE_METHOD: &str = "ToMillauOutboundLaneApi_latest_generated_nonce";
|
||||
|
||||
/// Name of the `FromMillauInboundLaneApi::latest_received_nonce` runtime method.
|
||||
pub const FROM_MILLAU_LATEST_RECEIVED_NONCE_METHOD: &str = "FromMillauInboundLaneApi_latest_received_nonce";
|
||||
/// Name of the `FromMillauInboundLaneApi::latest_onfirmed_nonce` runtime method.
|
||||
pub const FROM_MILLAU_LATEST_CONFIRMED_NONCE_METHOD: &str = "FromMillauInboundLaneApi_latest_confirmed_nonce";
|
||||
|
||||
/// Alias to 512-bit hash when used in the context of a transaction signature on the chain.
|
||||
pub type Signature = MultiSignature;
|
||||
|
||||
@@ -149,4 +161,35 @@ sp_api::decl_runtime_apis! {
|
||||
/// Returns true if the header is considered finalized by the runtime.
|
||||
fn is_finalized_block(hash: Hash) -> bool;
|
||||
}
|
||||
|
||||
/// Outbound message lane API for messages that are sent to Millau chain.
|
||||
///
|
||||
/// This API is implemented by runtimes that are sending messages to Millau chain, not the
|
||||
/// Millau runtime itself.
|
||||
pub trait ToMillauOutboundLaneApi {
|
||||
/// Returns dispatch weight of all messages in given inclusive range.
|
||||
///
|
||||
/// If some (or all) messages are missing from the storage, they'll also will
|
||||
/// be missing from the resulting vector. The vector is ordered by the nonce.
|
||||
fn messages_dispatch_weight(
|
||||
lane: LaneId,
|
||||
begin: MessageNonce,
|
||||
end: MessageNonce,
|
||||
) -> Vec<(MessageNonce, Weight)>;
|
||||
/// Returns nonce of the latest message, received by bridged chain.
|
||||
fn latest_received_nonce(lane: LaneId) -> MessageNonce;
|
||||
/// Returns nonce of the latest message, generated by given lane.
|
||||
fn latest_generated_nonce(lane: LaneId) -> MessageNonce;
|
||||
}
|
||||
|
||||
/// Inbound message lane API for messages sent by Millau chain.
|
||||
///
|
||||
/// This API is implemented by runtimes that are receiving messages from Millau chain, not the
|
||||
/// Millau runtime itself.
|
||||
pub trait FromMillauInboundLaneApi {
|
||||
/// Returns nonce of the latest message, received by given lane.
|
||||
fn latest_received_nonce(lane: LaneId) -> MessageNonce;
|
||||
/// Nonce of latest message that has been confirmed to the bridged chain.
|
||||
fn latest_confirmed_nonce(lane: LaneId) -> MessageNonce;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user