pub type XcmOverPolkadotBulletin = Pallet<Runtime, Instance2>;
Aliased Type§
struct XcmOverPolkadotBulletin(/* private fields */);
Implementations
Source§impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
Sourcepub fn open_bridge(
origin: <T as Config>::RuntimeOrigin,
bridge_destination_universal_location: Box<VersionedInteriorLocation>,
) -> Result<(), DispatchError>
pub fn open_bridge( origin: <T as Config>::RuntimeOrigin, bridge_destination_universal_location: Box<VersionedInteriorLocation>, ) -> Result<(), DispatchError>
Open a bridge between two locations.
The caller must be within the T::OpenBridgeOrigin
filter (presumably: a sibling
parachain or a parent relay chain). The bridge_destination_universal_location
must be
a destination within the consensus of the T::BridgedNetwork
network.
The BridgeDeposit
amount is reserved on the caller account. This deposit
is unreserved after bridge is closed.
The states after this call: bridge is Opened
, outbound lane is Opened
, inbound lane
is Opened
.
Sourcepub fn close_bridge(
origin: <T as Config>::RuntimeOrigin,
bridge_destination_universal_location: Box<VersionedInteriorLocation>,
may_prune_messages: u64,
) -> Result<(), DispatchError>
pub fn close_bridge( origin: <T as Config>::RuntimeOrigin, bridge_destination_universal_location: Box<VersionedInteriorLocation>, may_prune_messages: u64, ) -> Result<(), DispatchError>
Try to close the bridge.
Can only be called by the “owner” of this side of the bridge, meaning that the inbound XCM channel with the local origin chain is working.
Closed bridge is a bridge without any traces in the runtime storage. So this method first tries to prune all queued messages at the outbound lane. When there are no outbound messages left, outbound and inbound lanes are purged. After that, funds are returned back to the owner of this side of the bridge.
The number of messages that we may prune in a single call is limited by the
may_prune_messages
argument. If there are more messages in the queue, the method
prunes exactly may_prune_messages
and exits early. The caller may call it again
until outbound queue is depleted and get his funds back.
The states after this call: everything is either Closed
, or purged from the
runtime storage.
Source§impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
Sourcepub fn do_open_bridge(
locations: Box<BridgeLocations>,
lane_id: <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId,
create_lanes: bool,
) -> Result<(), DispatchError>
pub fn do_open_bridge( locations: Box<BridgeLocations>, lane_id: <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId, create_lanes: bool, ) -> Result<(), DispatchError>
Open bridge for lane.
Source§impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
Sourcepub fn bridge_locations_from_origin(
origin: <T as Config>::RuntimeOrigin,
bridge_destination_universal_location: Box<VersionedInteriorLocation>,
) -> Result<Box<BridgeLocations>, DispatchError>
pub fn bridge_locations_from_origin( origin: <T as Config>::RuntimeOrigin, bridge_destination_universal_location: Box<VersionedInteriorLocation>, ) -> Result<Box<BridgeLocations>, DispatchError>
Return bridge endpoint locations and dedicated lane identifier. This method converts
runtime origin
argument to relative Location
using the T::OpenBridgeOrigin
converter.
Sourcepub fn bridge_locations(
bridge_origin_relative_location: Location,
bridge_destination_universal_location: Junctions,
) -> Result<Box<BridgeLocations>, DispatchError>
pub fn bridge_locations( bridge_origin_relative_location: Location, bridge_destination_universal_location: Junctions, ) -> Result<Box<BridgeLocations>, DispatchError>
Return bridge endpoint locations and dedicated bridge identifier (BridgeId
).
Sourcepub fn bridge(
bridge_id: &BridgeId,
) -> Option<Bridge<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::ThisChain, <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId>>
pub fn bridge( bridge_id: &BridgeId, ) -> Option<Bridge<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::ThisChain, <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId>>
Return bridge metadata by bridge_id
Sourcepub fn bridge_by_lane_id(
lane_id: &<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId,
) -> Option<(BridgeId, Bridge<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::ThisChain, <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId>)>
pub fn bridge_by_lane_id( lane_id: &<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId, ) -> Option<(BridgeId, Bridge<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::ThisChain, <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId>)>
Return bridge metadata by lane_id
Source§impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
Sourcepub fn do_try_state() -> Result<(), DispatchError>
pub fn do_try_state() -> Result<(), DispatchError>
Ensure the correctness of the state of this pallet.
Sourcepub fn do_try_state_for_bridge(
bridge_id: BridgeId,
bridge: Bridge<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::ThisChain, <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId>,
) -> Result<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId, DispatchError>
pub fn do_try_state_for_bridge( bridge_id: BridgeId, bridge: Bridge<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::ThisChain, <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId>, ) -> Result<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId, DispatchError>
Ensure the correctness of the state of the bridge.
Sourcepub fn do_try_state_for_messages() -> Result<(), DispatchError>
pub fn do_try_state_for_messages() -> Result<(), DispatchError>
Ensure the correctness of the state of the connected pallet_bridge_messages
instance.
Trait Implementations
Source§impl<T, I> BeforeAllRuntimeMigrations for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> BeforeAllRuntimeMigrations for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn before_all_runtime_migrations() -> Weight
fn before_all_runtime_migrations() -> Weight
Source§impl<T, I> Callable<T> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Callable<T> for Pallet<T, I>where
T: Config<I>,
I: 'static,
type RuntimeCall = Call<T, I>
Source§impl<T, I> DispatchViewFunction for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> DispatchViewFunction for Pallet<T, I>where
T: Config<I>,
I: 'static,
fn dispatch_view_function<O>(
id: &ViewFunctionId,
input: &mut &[u8],
output: &mut O,
) -> Result<(), ViewFunctionDispatchError>where
O: Output,
Source§impl<T, I> ExportXcm for Pallet<T, I>
impl<T, I> ExportXcm for Pallet<T, I>
Source§type Ticket = (BridgeId, Bridge<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::ThisChain, <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId>, <Pallet<T, <T as Config<I>>::BridgeMessagesPalletInstance> as MessagesBridge<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::OutboundPayload, <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId>>::SendMessageArgs, [u8; 32])
type Ticket = (BridgeId, Bridge<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::ThisChain, <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId>, <Pallet<T, <T as Config<I>>::BridgeMessagesPalletInstance> as MessagesBridge<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::OutboundPayload, <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId>>::SendMessageArgs, [u8; 32])
Source§fn validate(
network: NetworkId,
channel: u32,
universal_source: &mut Option<Junctions>,
destination: &mut Option<Junctions>,
message: &mut Option<Xcm<()>>,
) -> Result<(<Pallet<T, I> as ExportXcm>::Ticket, Assets), SendError>
fn validate( network: NetworkId, channel: u32, universal_source: &mut Option<Junctions>, destination: &mut Option<Junctions>, message: &mut Option<Xcm<()>>, ) -> Result<(<Pallet<T, I> as ExportXcm>::Ticket, Assets), SendError>
message
is deliverable to the given destination
on network
,
spoofing its source as universal_source
and if so determine the cost which will be paid by
this chain to do so, returning a Ticket
token which can be used to enact delivery. Read moreSource§impl<T, I> GetStorageVersion for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> GetStorageVersion for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn in_code_storage_version() -> <Pallet<T, I> as GetStorageVersion>::InCodeStorageVersion
fn in_code_storage_version() -> <Pallet<T, I> as GetStorageVersion>::InCodeStorageVersion
storage_version
attribute, or
NoStorageVersionSet
if the attribute is missing.Source§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
Source§fn current_storage_version() -> Self::InCodeStorageVersion
fn current_storage_version() -> Self::InCodeStorageVersion
in_code_storage_version
and will be removed after March 2024.Self::current_storage_version
instead. Read moreSource§impl<T, I> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn integrity_test()
fn integrity_test()
Source§fn try_state(
_n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Result<(), DispatchError>
fn try_state( _n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Result<(), DispatchError>
Source§fn on_initialize(_n: BlockNumber) -> Weight
fn on_initialize(_n: BlockNumber) -> Weight
Source§fn on_finalize(_n: BlockNumber)
fn on_finalize(_n: BlockNumber)
Source§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
Hooks::on_finalize
). Read moreSource§fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
Source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Executive
pallet. Read moreSource§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
Source§fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
Source§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
Source§impl<T, I> IntegrityTest for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> IntegrityTest for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> MessageDispatch for Pallet<T, I>
impl<T, I> MessageDispatch for Pallet<T, I>
Source§type DispatchPayload = Vec<u8>
type DispatchPayload = Vec<u8>
MessagePayload
used in delivery and this DispatchPayload
used in dispatch).Source§type DispatchLevelResult = XcmBlobMessageDispatchResult
type DispatchLevelResult = XcmBlobMessageDispatchResult
Source§type LaneId = <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId
type LaneId = <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId
Source§fn is_active(lane: <Pallet<T, I> as MessageDispatch>::LaneId) -> bool
fn is_active(lane: <Pallet<T, I> as MessageDispatch>::LaneId) -> bool
true
if dispatcher is ready to accept additional messages. The false
should
be treated as a hint by both dispatcher and its consumers - i.e. dispatcher shall not
simply drop messages if it returns false
. The consumer may still call the dispatch
if dispatcher has returned false
. Read moreSource§fn dispatch_weight(
message: &mut DispatchMessage<<Pallet<T, I> as MessageDispatch>::DispatchPayload, <Pallet<T, I> as MessageDispatch>::LaneId>,
) -> Weight
fn dispatch_weight( message: &mut DispatchMessage<<Pallet<T, I> as MessageDispatch>::DispatchPayload, <Pallet<T, I> as MessageDispatch>::LaneId>, ) -> Weight
Source§fn dispatch(
message: DispatchMessage<<Pallet<T, I> as MessageDispatch>::DispatchPayload, <Pallet<T, I> as MessageDispatch>::LaneId>,
) -> MessageDispatchResult<<Pallet<T, I> as MessageDispatch>::DispatchLevelResult>
fn dispatch( message: DispatchMessage<<Pallet<T, I> as MessageDispatch>::DispatchPayload, <Pallet<T, I> as MessageDispatch>::LaneId>, ) -> MessageDispatchResult<<Pallet<T, I> as MessageDispatch>::DispatchLevelResult>
Source§impl<T, I> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn on_finalize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
)
fn on_finalize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, )
Hooks::on_finalize
.Source§impl<T, I> OnGenesis for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnGenesis for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn on_genesis()
fn on_genesis()
Source§impl<T, I> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn on_initialize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Weight
fn on_initialize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Weight
Hooks::on_initialize
.Source§impl<T, I> OnMessagesDelivered<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnMessagesDelivered<<T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn on_messages_delivered(
lane_id: <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId,
enqueued_messages: u64,
)
fn on_messages_delivered( lane_id: <T as Config<<T as Config<I>>::BridgeMessagesPalletInstance>>::LaneId, enqueued_messages: u64, )
Source§impl<T, I> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> OnRuntimeUpgrade for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnRuntimeUpgrade for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
Hooks::pre_upgrade
.Source§fn post_upgrade(state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(state: Vec<u8>) -> Result<(), DispatchError>
Hooks::post_upgrade
.Source§fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
pre_upgrade
->
on_runtime_upgrade
-> post_upgrade
hooks for a migration. Read moreSource§impl<T, I> PalletInfoAccess for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> PalletInfoAccess for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn module_name() -> &'static str
fn module_name() -> &'static str
Source§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
Source§impl<T, I> PalletsInfoAccess for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> PalletsInfoAccess for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> StorageInfoTrait for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> StorageInfoTrait for Pallet<T, I>where
T: Config<I>,
I: 'static,
fn storage_info() -> Vec<StorageInfo>
Source§impl<T, I> TryDecodeEntireStorage for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> TryDecodeEntireStorage for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>
fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>
Ok(bytes_decoded)
if success.Source§impl<T, I> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> ViewFunctionIdPrefix for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> ViewFunctionIdPrefix for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> WhitelistedStorageKeys for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> WhitelistedStorageKeys for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
Vec<TrackedStorageKey>
indicating the storage keys that
should be whitelisted during benchmarking. This means that those keys
will be excluded from the benchmarking performance calculation.