3ddf58cef9
- Fix pezpallet-welati EnsureOrigin implementations (3 fixes)
- Remove incorrect #[cfg(not(feature = "runtime-benchmarks"))] blocks
- Affects EnsureSerok, EnsureParlementer, EnsureDiwan
- Fix asset-hub-zagros governance origins macros (2 fixes)
- Remove non-benchmark try_successful_origin from decl_unit_ensures!
- Remove non-benchmark try_successful_origin from decl_ensure!
- Rename snowbridge -> pezsnowbridge for consistency
- Update WORKFLOW_PLAN.md with build status and package names
- Correct package names: pezkuwi-teyrchain-bin, pezstaging-node-cli
- Mark completed builds: pezkuwi, pezkuwi-teyrchain-bin,
pezstaging-node-cli, teyrchain-template-node
45 lines
1.1 KiB
Rust
45 lines
1.1 KiB
Rust
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-FileCopyrightText: 2023 Snowfork <hello@snowfork.com>
|
|
//! Implementation for [`pezsnowbridge_outbound_queue_primitives::v2::SendMessage`]
|
|
use super::*;
|
|
use codec::Encode;
|
|
use pezframe_support::{
|
|
ensure,
|
|
traits::{EnqueueMessage, Get},
|
|
};
|
|
use pezsnowbridge_outbound_queue_primitives::{
|
|
v2::{Message, SendMessage},
|
|
SendError,
|
|
};
|
|
use pezsp_core::H256;
|
|
use pezsp_runtime::BoundedVec;
|
|
|
|
impl<T> SendMessage for Pezpallet<T>
|
|
where
|
|
T: Config,
|
|
{
|
|
type Ticket = Message;
|
|
|
|
fn validate(message: &Message) -> Result<Self::Ticket, SendError> {
|
|
// The inner payload should not be too large
|
|
let payload = message.encode();
|
|
ensure!(
|
|
payload.len() < T::MaxMessagePayloadSize::get() as usize,
|
|
SendError::MessageTooLarge
|
|
);
|
|
|
|
Ok(message.clone())
|
|
}
|
|
|
|
fn deliver(ticket: Self::Ticket) -> Result<H256, SendError> {
|
|
let origin = ticket.origin.into();
|
|
|
|
let message =
|
|
BoundedVec::try_from(ticket.encode()).map_err(|_| SendError::MessageTooLarge)?;
|
|
|
|
T::MessageQueue::enqueue_message(message.as_bounded_slice(), origin);
|
|
Self::deposit_event(Event::MessageQueued { message: ticket.clone() });
|
|
Ok(ticket.id)
|
|
}
|
|
}
|