snowbridge_pallet_outbound_queue_v2/api.rs
1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: 2023 Snowfork <hello@snowfork.com>
3//! Helpers for implementing runtime api
4
5use crate::{Config, MessageLeaves};
6use frame_support::storage::StorageStreamIter;
7use snowbridge_merkle_tree::{merkle_proof, MerkleProof};
8
9pub fn prove_message<T>(leaf_index: u64) -> Option<MerkleProof>
10where
11 T: Config,
12{
13 if !MessageLeaves::<T>::exists() {
14 return None
15 }
16 let proof =
17 merkle_proof::<<T as Config>::Hashing, _>(MessageLeaves::<T>::stream_iter(), leaf_index);
18 Some(proof)
19}