Files
pezkuwi-sdk/pezbridges/pezsnowbridge/pezpallets/outbound-queue-v2/src/send_message_impl.rs
T
pezkuwichain 3ddf58cef9 fix: EnsureOrigin try_successful_origin and snowbridge rename
- 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
2025-12-25 01:26:18 +03:00

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)
}
}