referrerpolicy=no-referrer-when-downgrade
messages_relay::message_lane

Trait MessageLane

Source
pub trait MessageLane:
    'static
    + Clone
    + Send
    + Sync {
    type LaneId: Clone + Send + Sync + Labeled;
    type MessagesProof: Clone + Debug + Send + Sync;
    type MessagesReceivingProof: Clone + Debug + Send + Sync;
    type SourceChainBalance: AtLeast32BitUnsigned + Clone + Copy + Debug + PartialOrd + Sub<Output = Self::SourceChainBalance> + SaturatingAdd + Zero + Send + Sync;
    type SourceHeaderNumber: BlockNumberBase;
    type SourceHeaderHash: Clone + Debug + Default + PartialEq + Send + Sync;
    type TargetHeaderNumber: BlockNumberBase;
    type TargetHeaderHash: Clone + Debug + Default + PartialEq + Send + Sync;

    const SOURCE_NAME: &'static str;
    const TARGET_NAME: &'static str;
}
Expand description

One-way message lane.

Required Associated Constants§

Source

const SOURCE_NAME: &'static str

Name of the messages source.

Source

const TARGET_NAME: &'static str

Name of the messages target.

Required Associated Types§

Source

type LaneId: Clone + Send + Sync + Labeled

Lane identifier type.

Source

type MessagesProof: Clone + Debug + Send + Sync

Messages proof.

Source

type MessagesReceivingProof: Clone + Debug + Send + Sync

Messages receiving proof.

Source

type SourceChainBalance: AtLeast32BitUnsigned + Clone + Copy + Debug + PartialOrd + Sub<Output = Self::SourceChainBalance> + SaturatingAdd + Zero + Send + Sync

The type of the source chain token balance, that is used to:

  1. pay transaction fees;
  2. pay message delivery and dispatch fee;
  3. pay relayer rewards.
Source

type SourceHeaderNumber: BlockNumberBase

Number of the source header.

Source

type SourceHeaderHash: Clone + Debug + Default + PartialEq + Send + Sync

Hash of the source header.

Source

type TargetHeaderNumber: BlockNumberBase

Number of the target header.

Source

type TargetHeaderHash: Clone + Debug + Default + PartialEq + Send + Sync

Hash of the target header.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§