// Copyright 2020 Parity Technologies (UK) Ltd. // This file is part of Substrate. // Substrate is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Substrate is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Substrate. If not, see . //! Benchmarks for the Session Pallet. // This is separated into its own crate due to cyclic dependency issues. #![cfg_attr(not(feature = "std"), no_std)] use sp_std::prelude::*; use sp_std::vec; use frame_system::RawOrigin; use frame_benchmarking::benchmarks; use pallet_session::*; use pallet_session::Module as Session; use pallet_staking::{ MAX_NOMINATIONS, benchmarking::create_validator_with_nominators, }; pub struct Module(pallet_session::Module); pub trait Trait: pallet_session::Trait + pallet_staking::Trait {} benchmarks! { _ { } set_keys { let n in 1 .. MAX_NOMINATIONS as u32; let validator = create_validator_with_nominators::(n, MAX_NOMINATIONS as u32)?; let keys = T::Keys::default(); let proof: Vec = vec![0,1,2,3]; }: _(RawOrigin::Signed(validator), keys, proof) purge_keys { let n in 1 .. MAX_NOMINATIONS as u32; let validator = create_validator_with_nominators::(n, MAX_NOMINATIONS as u32)?; let keys = T::Keys::default(); let proof: Vec = vec![0,1,2,3]; Session::::set_keys(RawOrigin::Signed(validator.clone()).into(), keys, proof)?; }: _(RawOrigin::Signed(validator)) }