bridge_runtime_common/
messages_api.rs1use bp_messages::{InboundMessageDetails, MessageNonce, MessagePayload, OutboundMessageDetails};
20use sp_std::vec::Vec;
21
22pub fn outbound_message_details<Runtime, MessagesPalletInstance>(
24 lane: Runtime::LaneId,
25 begin: MessageNonce,
26 end: MessageNonce,
27) -> Vec<OutboundMessageDetails>
28where
29 Runtime: pallet_bridge_messages::Config<MessagesPalletInstance>,
30 MessagesPalletInstance: 'static,
31{
32 (begin..=end)
33 .filter_map(|nonce| {
34 let message_data =
35 pallet_bridge_messages::Pallet::<Runtime, MessagesPalletInstance>::outbound_message_data(lane, nonce)?;
36 Some(OutboundMessageDetails {
37 nonce,
38 dispatch_weight: frame_support::weights::Weight::zero(),
41 size: message_data.len() as _,
42 })
43 })
44 .collect()
45}
46
47pub fn inbound_message_details<Runtime, MessagesPalletInstance>(
49 lane: Runtime::LaneId,
50 messages: Vec<(MessagePayload, OutboundMessageDetails)>,
51) -> Vec<InboundMessageDetails>
52where
53 Runtime: pallet_bridge_messages::Config<MessagesPalletInstance>,
54 MessagesPalletInstance: 'static,
55{
56 messages
57 .into_iter()
58 .map(|(payload, details)| {
59 pallet_bridge_messages::Pallet::<Runtime, MessagesPalletInstance>::inbound_message_data(
60 lane, payload, details,
61 )
62 })
63 .collect()
64}