referrerpolicy=no-referrer-when-downgrade

snowbridge_pallet_outbound_queue_v2/
process_message_impl.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: 2023 Snowfork <hello@snowfork.com>
3//! Implementation for [`frame_support::traits::ProcessMessage`]
4use super::*;
5use crate::weights::WeightInfo;
6use frame_support::{
7	traits::{ProcessMessage, ProcessMessageError},
8	weights::WeightMeter,
9};
10
11impl<T: Config> ProcessMessage for Pallet<T> {
12	type Origin = AggregateMessageOrigin;
13	fn process_message(
14		message: &[u8],
15		origin: Self::Origin,
16		meter: &mut WeightMeter,
17		_: &mut [u8; 32],
18	) -> Result<bool, ProcessMessageError> {
19		let weight = T::WeightInfo::do_process_message();
20		if meter.try_consume(weight).is_err() {
21			Self::deposit_event(Event::MessagePostponed {
22				payload: message.to_vec(),
23				reason: ProcessMessageError::Overweight(weight),
24			});
25			return Err(ProcessMessageError::Overweight(weight))
26		}
27		Self::do_process_message(origin, message)
28	}
29}