referrerpolicy=no-referrer-when-downgrade

snowbridge_pallet_inbound_queue/benchmarking/
mod.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: 2023 Snowfork <hello@snowfork.com>
3use super::*;
4
5use crate::Pallet as InboundQueue;
6use frame_benchmarking::v2::*;
7use frame_support::assert_ok;
8use frame_system::RawOrigin;
9use snowbridge_pallet_inbound_queue_fixtures::register_token::make_register_token_message;
10
11#[benchmarks]
12mod benchmarks {
13	use super::*;
14
15	#[benchmark]
16	fn submit() -> Result<(), BenchmarkError> {
17		let caller: T::AccountId = whitelisted_caller();
18
19		let create_message = make_register_token_message();
20
21		T::Helper::initialize_storage(
22			create_message.finalized_header,
23			create_message.block_roots_root,
24		);
25
26		let sovereign_account = sibling_sovereign_account::<T>(1000u32.into());
27
28		let minimum_balance = T::Token::minimum_balance();
29
30		// So that the receiving account exists
31		assert_ok!(T::Token::mint_into(&caller, minimum_balance));
32		// Fund the sovereign account (parachain sovereign account) so it can transfer a reward
33		// fee to the caller account
34		assert_ok!(T::Token::mint_into(
35			&sovereign_account,
36			3_000_000_000_000u128
37				.try_into()
38				.unwrap_or_else(|_| panic!("unable to cast sovereign account balance")),
39		));
40
41		#[block]
42		{
43			assert_ok!(InboundQueue::<T>::submit(
44				RawOrigin::Signed(caller.clone()).into(),
45				create_message.event,
46			));
47		}
48
49		Ok(())
50	}
51
52	impl_benchmark_test_suite!(InboundQueue, crate::mock::new_tester(), crate::mock::Test);
53}