mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 20:21:03 +00:00
Benchmark's successful origin api update (#13146)
* try successful origin unimplemented by default * error as a default impl for try_successful_origin * remove successful_origin func of EnsureOrigin trait * default impl -> unimplemented!() * update EnsureOriginWithArg * fix EnsureOriginWithArg * prefix unused arg with underscore * use try_successful_origin instead successful_origin, map err to Weightless * fix tests * remove default impl * unwrap for indirect origin dep * replace unwrap by expect with a message --------- Co-authored-by: parity-processbot <>
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
|
||||
use super::*;
|
||||
|
||||
use frame_benchmarking::v1::{account, benchmarks, whitelist_account};
|
||||
use frame_benchmarking::v1::{account, benchmarks, whitelist_account, BenchmarkError};
|
||||
use frame_support::{
|
||||
assert_noop, assert_ok,
|
||||
traits::{Currency, EnsureOrigin, Get, OnInitialize, UnfilteredDispatchable},
|
||||
@@ -177,7 +177,8 @@ benchmarks! {
|
||||
}
|
||||
|
||||
emergency_cancel {
|
||||
let origin = T::CancellationOrigin::successful_origin();
|
||||
let origin =
|
||||
T::CancellationOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
|
||||
let ref_index = add_referendum::<T>(0).0;
|
||||
assert_ok!(Democracy::<T>::referendum_status(ref_index));
|
||||
}: _<T::RuntimeOrigin>(origin, ref_index)
|
||||
@@ -200,10 +201,13 @@ benchmarks! {
|
||||
let (ref_index, hash) = add_referendum::<T>(0);
|
||||
assert_ok!(Democracy::<T>::referendum_status(ref_index));
|
||||
// Place our proposal in the external queue, too.
|
||||
assert_ok!(
|
||||
Democracy::<T>::external_propose(T::ExternalOrigin::successful_origin(), make_proposal::<T>(0))
|
||||
);
|
||||
let origin = T::BlacklistOrigin::successful_origin();
|
||||
assert_ok!(Democracy::<T>::external_propose(
|
||||
T::ExternalOrigin::try_successful_origin()
|
||||
.expect("ExternalOrigin has no successful origin required for the benchmark"),
|
||||
make_proposal::<T>(0)
|
||||
));
|
||||
let origin =
|
||||
T::BlacklistOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
|
||||
}: _<T::RuntimeOrigin>(origin, hash, Some(ref_index))
|
||||
verify {
|
||||
// Referendum has been canceled
|
||||
@@ -215,7 +219,8 @@ benchmarks! {
|
||||
|
||||
// Worst case scenario, we external propose a previously blacklisted proposal
|
||||
external_propose {
|
||||
let origin = T::ExternalOrigin::successful_origin();
|
||||
let origin =
|
||||
T::ExternalOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
|
||||
let proposal = make_proposal::<T>(0);
|
||||
// Add proposal to blacklist with block number 0
|
||||
|
||||
@@ -233,7 +238,8 @@ benchmarks! {
|
||||
}
|
||||
|
||||
external_propose_majority {
|
||||
let origin = T::ExternalMajorityOrigin::successful_origin();
|
||||
let origin = T::ExternalMajorityOrigin::try_successful_origin()
|
||||
.map_err(|_| BenchmarkError::Weightless)?;
|
||||
let proposal = make_proposal::<T>(0);
|
||||
}: _<T::RuntimeOrigin>(origin, proposal)
|
||||
verify {
|
||||
@@ -242,7 +248,8 @@ benchmarks! {
|
||||
}
|
||||
|
||||
external_propose_default {
|
||||
let origin = T::ExternalDefaultOrigin::successful_origin();
|
||||
let origin = T::ExternalDefaultOrigin::try_successful_origin()
|
||||
.map_err(|_| BenchmarkError::Weightless)?;
|
||||
let proposal = make_proposal::<T>(0);
|
||||
}: _<T::RuntimeOrigin>(origin, proposal)
|
||||
verify {
|
||||
@@ -251,13 +258,15 @@ benchmarks! {
|
||||
}
|
||||
|
||||
fast_track {
|
||||
let origin_propose = T::ExternalDefaultOrigin::successful_origin();
|
||||
let origin_propose = T::ExternalDefaultOrigin::try_successful_origin()
|
||||
.expect("ExternalDefaultOrigin has no successful origin required for the benchmark");
|
||||
let proposal = make_proposal::<T>(0);
|
||||
let proposal_hash = proposal.hash();
|
||||
Democracy::<T>::external_propose_default(origin_propose, proposal)?;
|
||||
|
||||
// NOTE: Instant origin may invoke a little bit more logic, but may not always succeed.
|
||||
let origin_fast_track = T::FastTrackOrigin::successful_origin();
|
||||
let origin_fast_track =
|
||||
T::FastTrackOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
|
||||
let voting_period = T::FastTrackVotingPeriod::get();
|
||||
let delay = 0u32;
|
||||
}: _<T::RuntimeOrigin>(origin_fast_track, proposal_hash, voting_period, delay.into())
|
||||
@@ -269,7 +278,8 @@ benchmarks! {
|
||||
let proposal = make_proposal::<T>(0);
|
||||
let proposal_hash = proposal.hash();
|
||||
|
||||
let origin_propose = T::ExternalDefaultOrigin::successful_origin();
|
||||
let origin_propose = T::ExternalDefaultOrigin::try_successful_origin()
|
||||
.expect("ExternalDefaultOrigin has no successful origin required for the benchmark");
|
||||
Democracy::<T>::external_propose_default(origin_propose, proposal)?;
|
||||
|
||||
let mut vetoers: BoundedVec<T::AccountId, _> = Default::default();
|
||||
@@ -279,7 +289,7 @@ benchmarks! {
|
||||
vetoers.sort();
|
||||
Blacklist::<T>::insert(proposal_hash, (T::BlockNumber::zero(), vetoers));
|
||||
|
||||
let origin = T::VetoOrigin::successful_origin();
|
||||
let origin = T::VetoOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
|
||||
ensure!(NextExternal::<T>::get().is_some(), "no external proposal");
|
||||
}: _<T::RuntimeOrigin>(origin, proposal_hash)
|
||||
verify {
|
||||
@@ -293,7 +303,8 @@ benchmarks! {
|
||||
for i in 0 .. T::MaxProposals::get() {
|
||||
add_proposal::<T>(i)?;
|
||||
}
|
||||
let cancel_origin = T::CancelProposalOrigin::successful_origin();
|
||||
let cancel_origin = T::CancelProposalOrigin::try_successful_origin()
|
||||
.map_err(|_| BenchmarkError::Weightless)?;
|
||||
}: _<T::RuntimeOrigin>(cancel_origin, 0)
|
||||
|
||||
cancel_referendum {
|
||||
@@ -313,7 +324,8 @@ benchmarks! {
|
||||
// Launch external
|
||||
LastTabledWasExternal::<T>::put(false);
|
||||
|
||||
let origin = T::ExternalMajorityOrigin::successful_origin();
|
||||
let origin = T::ExternalMajorityOrigin::try_successful_origin()
|
||||
.map_err(|_| BenchmarkError::Weightless)?;
|
||||
let proposal = make_proposal::<T>(r);
|
||||
let call = Call::<T>::external_propose_majority { proposal };
|
||||
call.dispatch_bypass_filter(origin)?;
|
||||
|
||||
Reference in New Issue
Block a user