mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 18:07:58 +00:00
Dynamic Benchmarking DB Whitelist (#6815)
* Add `get_whitelist` api * add whitelisted caller * Whitelist caller * remove caller 0 * initial piping of origin (not actual value yet) * remove attempt to pass origin around * Add whitelist for `DidUpdate` storage on `pallet_timestamp` * fix traits * only add to whitelist if !contains * PassBy not implemented error * Whitelist read/writes explicitly per key * update docs * reduce trait constraint * copy pasta * Apply suggestions from code review Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com> Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * rename functions @apopiak * missed some renaming * enable doc tests * Update docs Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com> Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
This commit is contained in:
@@ -23,7 +23,7 @@ use testing_utils::*;
|
||||
|
||||
use sp_runtime::traits::One;
|
||||
use frame_system::RawOrigin;
|
||||
pub use frame_benchmarking::{benchmarks, account};
|
||||
pub use frame_benchmarking::{benchmarks, account, whitelisted_caller};
|
||||
const SEED: u32 = 0;
|
||||
const MAX_SPANS: u32 = 100;
|
||||
const MAX_VALIDATORS: u32 = 1000;
|
||||
@@ -280,7 +280,7 @@ benchmarks! {
|
||||
let validator = create_validator_with_nominators::<T>(n, T::MaxNominatorRewardedPerValidator::get() as u32, true)?;
|
||||
|
||||
let current_era = CurrentEra::get().unwrap();
|
||||
let caller = account("caller", 0, SEED);
|
||||
let caller = whitelisted_caller();
|
||||
let balance_before = T::Currency::free_balance(&validator);
|
||||
}: _(RawOrigin::Signed(caller), validator.clone(), current_era)
|
||||
verify {
|
||||
@@ -294,7 +294,7 @@ benchmarks! {
|
||||
let validator = create_validator_with_nominators::<T>(n, T::MaxNominatorRewardedPerValidator::get() as u32, false)?;
|
||||
|
||||
let current_era = CurrentEra::get().unwrap();
|
||||
let caller = account("caller", 0, SEED);
|
||||
let caller = whitelisted_caller();
|
||||
let balance_before = T::Currency::free_balance(&validator);
|
||||
}: payout_stakers(RawOrigin::Signed(caller), validator.clone(), current_era)
|
||||
verify {
|
||||
@@ -419,7 +419,7 @@ benchmarks! {
|
||||
let total_payout = T::Currency::minimum_balance() * 1000.into();
|
||||
<ErasValidatorReward<T>>::insert(current_era, total_payout);
|
||||
|
||||
let caller: T::AccountId = account("caller", 0, SEED);
|
||||
let caller: T::AccountId = whitelisted_caller();
|
||||
}: {
|
||||
for arg in payout_calls_arg {
|
||||
<Staking<T>>::payout_stakers(RawOrigin::Signed(caller.clone()).into(), arg.0, arg.1)?;
|
||||
@@ -471,6 +471,10 @@ benchmarks! {
|
||||
|
||||
let era = <Staking<T>>::current_era().unwrap_or(0);
|
||||
let caller: T::AccountId = account("caller", n, SEED);
|
||||
|
||||
// Whitelist caller account from further DB operations.
|
||||
let caller_key = frame_system::Account::<T>::hashed_key_for(&caller);
|
||||
frame_benchmarking::benchmarking::add_to_whitelist(caller_key.into());
|
||||
}: {
|
||||
let result = <Staking<T>>::submit_election_solution(
|
||||
RawOrigin::Signed(caller.clone()).into(),
|
||||
@@ -532,6 +536,10 @@ benchmarks! {
|
||||
let era = <Staking<T>>::current_era().unwrap_or(0);
|
||||
let caller: T::AccountId = account("caller", n, SEED);
|
||||
|
||||
// Whitelist caller account from further DB operations.
|
||||
let caller_key = frame_system::Account::<T>::hashed_key_for(&caller);
|
||||
frame_benchmarking::benchmarking::add_to_whitelist(caller_key.into());
|
||||
|
||||
// submit a very bad solution on-chain
|
||||
{
|
||||
// this is needed to fool the chain to accept this solution.
|
||||
@@ -584,6 +592,10 @@ benchmarks! {
|
||||
let caller: T::AccountId = account("caller", n, SEED);
|
||||
let era = <Staking<T>>::current_era().unwrap_or(0);
|
||||
|
||||
// Whitelist caller account from further DB operations.
|
||||
let caller_key = frame_system::Account::<T>::hashed_key_for(&caller);
|
||||
frame_benchmarking::benchmarking::add_to_whitelist(caller_key.into());
|
||||
|
||||
// submit a seq-phragmen with all the good stuff on chain.
|
||||
{
|
||||
let (winners, compact, score, size) = get_seq_phragmen_solution::<T>(true);
|
||||
|
||||
Reference in New Issue
Block a user