cumulus_pallet_session_benchmarking/
inner.rs1#![cfg(feature = "runtime-benchmarks")]
18
19use alloc::{vec, vec::Vec};
20
21use codec::Decode;
22use frame_benchmarking::v2::*;
23use frame_system::RawOrigin;
24use pallet_session::*;
25pub struct Pallet<T: Config>(pallet_session::Pallet<T>);
26pub trait Config: pallet_session::Config {}
27
28#[benchmarks]
29mod benchmarks {
30 use super::*;
31
32 #[benchmark]
33 fn set_keys() -> Result<(), BenchmarkError> {
34 let caller: T::AccountId = whitelisted_caller();
35 frame_system::Pallet::<T>::inc_providers(&caller);
36 let keys = T::Keys::decode(&mut sp_runtime::traits::TrailingZeroInput::zeroes()).unwrap();
37 let proof: Vec<u8> = vec![0, 1, 2, 3];
38 <pallet_session::Pallet<T>>::ensure_can_pay_key_deposit(&caller).unwrap();
39
40 #[extrinsic_call]
41 _(RawOrigin::Signed(caller), keys, proof);
42
43 Ok(())
44 }
45
46 #[benchmark]
47 fn purge_keys() -> Result<(), BenchmarkError> {
48 let caller: T::AccountId = whitelisted_caller();
49 frame_system::Pallet::<T>::inc_providers(&caller);
50 let keys = T::Keys::decode(&mut sp_runtime::traits::TrailingZeroInput::zeroes()).unwrap();
51 let proof: Vec<u8> = vec![0, 1, 2, 3];
52 <pallet_session::Pallet<T>>::ensure_can_pay_key_deposit(&caller).unwrap();
53 let _t = pallet_session::Pallet::<T>::set_keys(
54 RawOrigin::Signed(caller.clone()).into(),
55 keys,
56 proof,
57 );
58
59 #[extrinsic_call]
60 _(RawOrigin::Signed(caller));
61
62 Ok(())
63 }
64}