// SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: 2023 Snowfork //! Helpers for implementing runtime api use crate::{Config, MessageLeaves}; use frame_support::storage::StorageStreamIter; use snowbridge_core::outbound::{Message, SendMessage}; use snowbridge_outbound_queue_merkle_tree::{merkle_proof, MerkleProof}; pub fn prove_message(leaf_index: u64) -> Option where T: Config, { if !MessageLeaves::::exists() { return None } let proof = merkle_proof::<::Hashing, _>(MessageLeaves::::stream_iter(), leaf_index); Some(proof) } pub fn calculate_fee(message: Message) -> Option where T: Config, { match crate::Pallet::::validate(&message) { Ok((_, fees)) => Some(fees.total()), _ => None, } }