mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 01:11:10 +00:00
Refund referendum submission deposit (#12788)
* optinal submission deposit and migration * refund submission deposit call, test, bench * try runtime fixes * assert for bench * Only refund cancelled/approved referenda deposits * update storage version Co-authored-by: Gav <gavin@parity.io>
This commit is contained in:
Generated
+1
@@ -5871,6 +5871,7 @@ dependencies = [
|
||||
"frame-benchmarking",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"log",
|
||||
"pallet-balances",
|
||||
"pallet-preimage",
|
||||
"pallet-scheduler",
|
||||
|
||||
@@ -26,6 +26,7 @@ frame-system = { version = "4.0.0-dev", default-features = false, path = "../sys
|
||||
sp-io = { version = "7.0.0", default-features = false, path = "../../primitives/io" }
|
||||
sp-runtime = { version = "7.0.0", default-features = false, path = "../../primitives/runtime" }
|
||||
sp-std = { version = "5.0.0", default-features = false, path = "../../primitives/std" }
|
||||
log = { version = "0.4.17", default-features = false }
|
||||
|
||||
[dev-dependencies]
|
||||
assert_matches = { version = "1.5" }
|
||||
|
||||
@@ -264,6 +264,19 @@ benchmarks_instance_pallet! {
|
||||
assert_matches!(ReferendumInfoFor::<T, I>::get(index), Some(ReferendumInfo::Cancelled(_, _, None)));
|
||||
}
|
||||
|
||||
refund_submission_deposit {
|
||||
let (origin, index) = create_referendum::<T, I>();
|
||||
let caller = frame_system::ensure_signed(origin.clone()).unwrap();
|
||||
let balance = T::Currency::free_balance(&caller);
|
||||
assert_ok!(Referenda::<T, I>::cancel(T::CancelOrigin::successful_origin(), index));
|
||||
assert_matches!(ReferendumInfoFor::<T, I>::get(index), Some(ReferendumInfo::Cancelled(_, Some(_), _)));
|
||||
}: _<T::RuntimeOrigin>(origin, index)
|
||||
verify {
|
||||
assert_matches!(ReferendumInfoFor::<T, I>::get(index), Some(ReferendumInfo::Cancelled(_, None, _)));
|
||||
let new_balance = T::Currency::free_balance(&caller);
|
||||
assert!(new_balance > balance);
|
||||
}
|
||||
|
||||
cancel {
|
||||
let (_origin, index) = create_referendum::<T, I>();
|
||||
place_deposit::<T, I>(index);
|
||||
|
||||
@@ -85,6 +85,7 @@ use sp_runtime::{
|
||||
use sp_std::{fmt::Debug, prelude::*};
|
||||
|
||||
mod branch;
|
||||
pub mod migration;
|
||||
mod types;
|
||||
pub mod weights;
|
||||
|
||||
@@ -140,8 +141,12 @@ pub mod pallet {
|
||||
use frame_support::pallet_prelude::*;
|
||||
use frame_system::pallet_prelude::*;
|
||||
|
||||
/// The current storage version.
|
||||
const STORAGE_VERSION: StorageVersion = StorageVersion::new(1);
|
||||
|
||||
#[pallet::pallet]
|
||||
#[pallet::generate_store(pub(super) trait Store)]
|
||||
#[pallet::storage_version(STORAGE_VERSION)]
|
||||
pub struct Pallet<T, I = ()>(_);
|
||||
|
||||
#[pallet::config]
|
||||
@@ -342,6 +347,15 @@ pub mod pallet {
|
||||
/// The final tally of votes in this referendum.
|
||||
tally: T::Tally,
|
||||
},
|
||||
/// The submission deposit has been refunded.
|
||||
SubmissionDepositRefunded {
|
||||
/// Index of the referendum.
|
||||
index: ReferendumIndex,
|
||||
/// The account who placed the deposit.
|
||||
who: T::AccountId,
|
||||
/// The amount placed by the account.
|
||||
amount: BalanceOf<T, I>,
|
||||
},
|
||||
}
|
||||
|
||||
#[pallet::error]
|
||||
@@ -368,6 +382,8 @@ pub mod pallet {
|
||||
NoPermission,
|
||||
/// The deposit cannot be refunded since none was made.
|
||||
NoDeposit,
|
||||
/// The referendum status is invalid for this operation.
|
||||
BadStatus,
|
||||
}
|
||||
|
||||
#[pallet::call]
|
||||
@@ -495,7 +511,7 @@ pub mod pallet {
|
||||
Self::deposit_event(Event::<T, I>::Cancelled { index, tally: status.tally });
|
||||
let info = ReferendumInfo::Cancelled(
|
||||
frame_system::Pallet::<T>::block_number(),
|
||||
status.submission_deposit,
|
||||
Some(status.submission_deposit),
|
||||
status.decision_deposit,
|
||||
);
|
||||
ReferendumInfoFor::<T, I>::insert(index, info);
|
||||
@@ -579,6 +595,36 @@ pub mod pallet {
|
||||
};
|
||||
Ok(Some(branch.weight::<T, I>()).into())
|
||||
}
|
||||
|
||||
/// Refund the Submission Deposit for a closed referendum back to the depositor.
|
||||
///
|
||||
/// - `origin`: must be `Signed` or `Root`.
|
||||
/// - `index`: The index of a closed referendum whose Submission Deposit has not yet been
|
||||
/// refunded.
|
||||
///
|
||||
/// Emits `SubmissionDepositRefunded`.
|
||||
#[pallet::weight(T::WeightInfo::refund_submission_deposit())]
|
||||
pub fn refund_submission_deposit(
|
||||
origin: OriginFor<T>,
|
||||
index: ReferendumIndex,
|
||||
) -> DispatchResult {
|
||||
ensure_signed_or_root(origin)?;
|
||||
let mut info =
|
||||
ReferendumInfoFor::<T, I>::get(index).ok_or(Error::<T, I>::BadReferendum)?;
|
||||
let deposit = info
|
||||
.take_submission_deposit()
|
||||
.map_err(|_| Error::<T, I>::BadStatus)?
|
||||
.ok_or(Error::<T, I>::NoDeposit)?;
|
||||
Self::refund_deposit(Some(deposit.clone()));
|
||||
ReferendumInfoFor::<T, I>::insert(index, info);
|
||||
let e = Event::<T, I>::SubmissionDepositRefunded {
|
||||
index,
|
||||
who: deposit.who,
|
||||
amount: deposit.amount,
|
||||
};
|
||||
Self::deposit_event(e);
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -671,9 +717,9 @@ impl<T: Config<I>, I: 'static> Polling<T::Tally> for Pallet<T, I> {
|
||||
Self::note_one_fewer_deciding(status.track);
|
||||
let now = frame_system::Pallet::<T>::block_number();
|
||||
let info = if approved {
|
||||
ReferendumInfo::Approved(now, status.submission_deposit, status.decision_deposit)
|
||||
ReferendumInfo::Approved(now, Some(status.submission_deposit), status.decision_deposit)
|
||||
} else {
|
||||
ReferendumInfo::Rejected(now, status.submission_deposit, status.decision_deposit)
|
||||
ReferendumInfo::Rejected(now, Some(status.submission_deposit), status.decision_deposit)
|
||||
};
|
||||
ReferendumInfoFor::<T, I>::insert(index, info);
|
||||
Ok(())
|
||||
@@ -995,7 +1041,7 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {
|
||||
return (
|
||||
ReferendumInfo::TimedOut(
|
||||
now,
|
||||
status.submission_deposit,
|
||||
Some(status.submission_deposit),
|
||||
status.decision_deposit,
|
||||
),
|
||||
true,
|
||||
@@ -1027,7 +1073,7 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {
|
||||
return (
|
||||
ReferendumInfo::Approved(
|
||||
now,
|
||||
status.submission_deposit,
|
||||
Some(status.submission_deposit),
|
||||
status.decision_deposit,
|
||||
),
|
||||
true,
|
||||
@@ -1052,7 +1098,7 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {
|
||||
return (
|
||||
ReferendumInfo::Rejected(
|
||||
now,
|
||||
status.submission_deposit,
|
||||
Some(status.submission_deposit),
|
||||
status.decision_deposit,
|
||||
),
|
||||
true,
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
// This file is part of Substrate.
|
||||
|
||||
// Copyright (C) 2017-2022 Parity Technologies (UK) Ltd.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//! Storage migrations for the referenda pallet.
|
||||
|
||||
use super::*;
|
||||
use codec::{Decode, Encode, EncodeLike, MaxEncodedLen};
|
||||
use frame_support::{pallet_prelude::*, storage_alias, traits::OnRuntimeUpgrade};
|
||||
use log;
|
||||
|
||||
/// Initial version of storage types.
|
||||
pub mod v0 {
|
||||
use super::*;
|
||||
// ReferendumStatus and its dependency types referenced from the latest version while staying
|
||||
// unchanged. [`super::test::referendum_status_v0()`] checks its immutability between v0 and
|
||||
// latest version.
|
||||
#[cfg(test)]
|
||||
pub(super) use super::{ReferendumStatus, ReferendumStatusOf};
|
||||
|
||||
pub type ReferendumInfoOf<T, I> = ReferendumInfo<
|
||||
TrackIdOf<T, I>,
|
||||
PalletsOriginOf<T>,
|
||||
<T as frame_system::Config>::BlockNumber,
|
||||
BoundedCallOf<T, I>,
|
||||
BalanceOf<T, I>,
|
||||
TallyOf<T, I>,
|
||||
<T as frame_system::Config>::AccountId,
|
||||
ScheduleAddressOf<T, I>,
|
||||
>;
|
||||
|
||||
/// Info regarding a referendum, present or past.
|
||||
#[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo, MaxEncodedLen)]
|
||||
pub enum ReferendumInfo<
|
||||
TrackId: Eq + PartialEq + Debug + Encode + Decode + TypeInfo + Clone,
|
||||
RuntimeOrigin: Eq + PartialEq + Debug + Encode + Decode + TypeInfo + Clone,
|
||||
Moment: Eq + PartialEq + Debug + Encode + Decode + TypeInfo + Clone + EncodeLike,
|
||||
Call: Eq + PartialEq + Debug + Encode + Decode + TypeInfo + Clone,
|
||||
Balance: Eq + PartialEq + Debug + Encode + Decode + TypeInfo + Clone,
|
||||
Tally: Eq + PartialEq + Debug + Encode + Decode + TypeInfo + Clone,
|
||||
AccountId: Eq + PartialEq + Debug + Encode + Decode + TypeInfo + Clone,
|
||||
ScheduleAddress: Eq + PartialEq + Debug + Encode + Decode + TypeInfo + Clone,
|
||||
> {
|
||||
/// Referendum has been submitted and is being voted on.
|
||||
Ongoing(
|
||||
ReferendumStatus<
|
||||
TrackId,
|
||||
RuntimeOrigin,
|
||||
Moment,
|
||||
Call,
|
||||
Balance,
|
||||
Tally,
|
||||
AccountId,
|
||||
ScheduleAddress,
|
||||
>,
|
||||
),
|
||||
/// Referendum finished with approval. Submission deposit is held.
|
||||
Approved(Moment, Deposit<AccountId, Balance>, Option<Deposit<AccountId, Balance>>),
|
||||
/// Referendum finished with rejection. Submission deposit is held.
|
||||
Rejected(Moment, Deposit<AccountId, Balance>, Option<Deposit<AccountId, Balance>>),
|
||||
/// Referendum finished with cancellation. Submission deposit is held.
|
||||
Cancelled(Moment, Deposit<AccountId, Balance>, Option<Deposit<AccountId, Balance>>),
|
||||
/// Referendum finished and was never decided. Submission deposit is held.
|
||||
TimedOut(Moment, Deposit<AccountId, Balance>, Option<Deposit<AccountId, Balance>>),
|
||||
/// Referendum finished with a kill.
|
||||
Killed(Moment),
|
||||
}
|
||||
|
||||
#[storage_alias]
|
||||
pub type ReferendumInfoFor<T: Config<I>, I: 'static> =
|
||||
StorageMap<Pallet<T, I>, Blake2_128Concat, ReferendumIndex, ReferendumInfoOf<T, I>>;
|
||||
}
|
||||
|
||||
pub mod v1 {
|
||||
use super::*;
|
||||
|
||||
/// The log target.
|
||||
const TARGET: &'static str = "runtime::democracy::migration::v1";
|
||||
|
||||
/// Transforms a submission deposit of ReferendumInfo(Approved|Rejected|Cancelled|TimedOut) to
|
||||
/// optional value, making it refundable.
|
||||
pub struct MigrateV0ToV1<T, I = ()>(PhantomData<(T, I)>);
|
||||
impl<T: Config<I>, I: 'static> OnRuntimeUpgrade for MigrateV0ToV1<T, I> {
|
||||
#[cfg(feature = "try-runtime")]
|
||||
fn pre_upgrade() -> Result<Vec<u8>, &'static str> {
|
||||
let onchain_version = Pallet::<T, I>::on_chain_storage_version();
|
||||
assert_eq!(onchain_version, 0, "migration from version 0 to 1.");
|
||||
let referendum_count = v0::ReferendumInfoFor::<T, I>::iter().count();
|
||||
log::info!(
|
||||
target: TARGET,
|
||||
"pre-upgrade state contains '{}' referendums.",
|
||||
referendum_count
|
||||
);
|
||||
Ok((referendum_count as u32).encode())
|
||||
}
|
||||
|
||||
fn on_runtime_upgrade() -> Weight {
|
||||
let current_version = Pallet::<T, I>::current_storage_version();
|
||||
let onchain_version = Pallet::<T, I>::on_chain_storage_version();
|
||||
let mut weight = T::DbWeight::get().reads(1);
|
||||
log::info!(
|
||||
target: TARGET,
|
||||
"running migration with current storage version {:?} / onchain {:?}.",
|
||||
current_version,
|
||||
onchain_version
|
||||
);
|
||||
if onchain_version != 0 {
|
||||
log::warn!(target: TARGET, "skipping migration from v0 to v1.");
|
||||
return weight
|
||||
}
|
||||
v0::ReferendumInfoFor::<T, I>::iter().for_each(|(key, value)| {
|
||||
let maybe_new_value = match value {
|
||||
v0::ReferendumInfo::Ongoing(_) | v0::ReferendumInfo::Killed(_) => None,
|
||||
v0::ReferendumInfo::Approved(e, s, d) =>
|
||||
Some(ReferendumInfo::Approved(e, Some(s), d)),
|
||||
v0::ReferendumInfo::Rejected(e, s, d) =>
|
||||
Some(ReferendumInfo::Rejected(e, Some(s), d)),
|
||||
v0::ReferendumInfo::Cancelled(e, s, d) =>
|
||||
Some(ReferendumInfo::Cancelled(e, Some(s), d)),
|
||||
v0::ReferendumInfo::TimedOut(e, s, d) =>
|
||||
Some(ReferendumInfo::TimedOut(e, Some(s), d)),
|
||||
};
|
||||
if let Some(new_value) = maybe_new_value {
|
||||
weight.saturating_accrue(T::DbWeight::get().reads_writes(1, 1));
|
||||
log::info!(target: TARGET, "migrating referendum #{:?}", &key);
|
||||
ReferendumInfoFor::<T, I>::insert(key, new_value);
|
||||
} else {
|
||||
weight.saturating_accrue(T::DbWeight::get().reads(1));
|
||||
}
|
||||
});
|
||||
StorageVersion::new(1).put::<Pallet<T, I>>();
|
||||
weight.saturating_accrue(T::DbWeight::get().writes(1));
|
||||
weight
|
||||
}
|
||||
|
||||
#[cfg(feature = "try-runtime")]
|
||||
fn post_upgrade(state: Vec<u8>) -> Result<(), &'static str> {
|
||||
let onchain_version = Pallet::<T, I>::on_chain_storage_version();
|
||||
assert_eq!(onchain_version, 1, "must upgrade from version 0 to 1.");
|
||||
let pre_referendum_count: u32 = Decode::decode(&mut &state[..])
|
||||
.expect("failed to decode the state from pre-upgrade.");
|
||||
let post_referendum_count = ReferendumInfoFor::<T, I>::iter().count() as u32;
|
||||
assert_eq!(
|
||||
post_referendum_count, pre_referendum_count,
|
||||
"must migrate all referendums."
|
||||
);
|
||||
log::info!(target: TARGET, "migrated all referendums.");
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
pub mod test {
|
||||
use super::*;
|
||||
use crate::mock::{Test as T, *};
|
||||
use core::str::FromStr;
|
||||
|
||||
// create referendum status v0.
|
||||
fn create_status_v0() -> v0::ReferendumStatusOf<T, ()> {
|
||||
let origin: OriginCaller = frame_system::RawOrigin::Root.into();
|
||||
let track = <T as Config<()>>::Tracks::track_for(&origin).unwrap();
|
||||
v0::ReferendumStatusOf::<T, ()> {
|
||||
track,
|
||||
in_queue: true,
|
||||
origin,
|
||||
proposal: set_balance_proposal_bounded(1),
|
||||
enactment: DispatchTime::At(1),
|
||||
tally: TallyOf::<T, ()>::new(track),
|
||||
submission_deposit: Deposit { who: 1, amount: 10 },
|
||||
submitted: 1,
|
||||
decision_deposit: None,
|
||||
alarm: None,
|
||||
deciding: None,
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
pub fn referendum_status_v0() {
|
||||
// make sure the bytes of the encoded referendum v0 is decodable.
|
||||
let ongoing_encoded = sp_core::Bytes::from_str("0x00000000013001012a000000000000000400000100000000000000010000000000000001000000000000000a00000000000000000000000000000000000100").unwrap();
|
||||
let ongoing_dec = v0::ReferendumInfoOf::<T, ()>::decode(&mut &*ongoing_encoded).unwrap();
|
||||
let ongoing = v0::ReferendumInfoOf::<T, ()>::Ongoing(create_status_v0());
|
||||
assert_eq!(ongoing, ongoing_dec);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn migration_v0_to_v1_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
// create and insert into the storage an ongoing referendum v0.
|
||||
let status_v0 = create_status_v0();
|
||||
let ongoing_v0 = v0::ReferendumInfoOf::<T, ()>::Ongoing(status_v0.clone());
|
||||
v0::ReferendumInfoFor::<T, ()>::insert(2, ongoing_v0);
|
||||
// create and insert into the storage an approved referendum v0.
|
||||
let approved_v0 = v0::ReferendumInfoOf::<T, ()>::Approved(
|
||||
123,
|
||||
Deposit { who: 1, amount: 10 },
|
||||
Some(Deposit { who: 2, amount: 20 }),
|
||||
);
|
||||
v0::ReferendumInfoFor::<T, ()>::insert(5, approved_v0);
|
||||
// run migration from v0 to v1.
|
||||
v1::MigrateV0ToV1::<T, ()>::on_runtime_upgrade();
|
||||
// fetch and assert migrated into v1 the ongoing referendum.
|
||||
let ongoing_v1 = ReferendumInfoFor::<T, ()>::get(2).unwrap();
|
||||
// referendum status schema is the same for v0 and v1.
|
||||
assert_eq!(ReferendumInfoOf::<T, ()>::Ongoing(status_v0), ongoing_v1);
|
||||
// fetch and assert migrated into v1 the approved referendum.
|
||||
let approved_v1 = ReferendumInfoFor::<T, ()>::get(5).unwrap();
|
||||
assert_eq!(
|
||||
approved_v1,
|
||||
ReferendumInfoOf::<T, ()>::Approved(
|
||||
123,
|
||||
Some(Deposit { who: 1, amount: 10 }),
|
||||
Some(Deposit { who: 2, amount: 20 })
|
||||
)
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -443,6 +443,44 @@ fn refund_deposit_works() {
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn refund_submission_deposit_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
// refund of non existing referendum fails.
|
||||
let e = Error::<Test>::BadReferendum;
|
||||
assert_noop!(Referenda::refund_submission_deposit(RuntimeOrigin::signed(1), 0), e);
|
||||
// create a referendum.
|
||||
let h = set_balance_proposal_bounded(1);
|
||||
assert_ok!(Referenda::submit(
|
||||
RuntimeOrigin::signed(1),
|
||||
Box::new(RawOrigin::Root.into()),
|
||||
h.clone(),
|
||||
DispatchTime::At(10),
|
||||
));
|
||||
// refund of an ongoing referendum fails.
|
||||
let e = Error::<Test>::BadStatus;
|
||||
assert_noop!(Referenda::refund_submission_deposit(RuntimeOrigin::signed(3), 0), e);
|
||||
// cancel referendum.
|
||||
assert_ok!(Referenda::cancel(RuntimeOrigin::signed(4), 0));
|
||||
// refund of canceled referendum works.
|
||||
assert_ok!(Referenda::refund_submission_deposit(RuntimeOrigin::signed(3), 0));
|
||||
// fails if already refunded.
|
||||
let e = Error::<Test>::NoDeposit;
|
||||
assert_noop!(Referenda::refund_submission_deposit(RuntimeOrigin::signed(2), 0), e);
|
||||
// create second referendum.
|
||||
assert_ok!(Referenda::submit(
|
||||
RuntimeOrigin::signed(1),
|
||||
Box::new(RawOrigin::Root.into()),
|
||||
h,
|
||||
DispatchTime::At(10),
|
||||
));
|
||||
// refund of a killed referendum fails.
|
||||
assert_ok!(Referenda::kill(RuntimeOrigin::root(), 1));
|
||||
let e = Error::<Test>::NoDeposit;
|
||||
assert_noop!(Referenda::refund_submission_deposit(RuntimeOrigin::signed(2), 0), e);
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn cancel_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
|
||||
@@ -221,13 +221,13 @@ pub enum ReferendumInfo<
|
||||
>,
|
||||
),
|
||||
/// Referendum finished with approval. Submission deposit is held.
|
||||
Approved(Moment, Deposit<AccountId, Balance>, Option<Deposit<AccountId, Balance>>),
|
||||
Approved(Moment, Option<Deposit<AccountId, Balance>>, Option<Deposit<AccountId, Balance>>),
|
||||
/// Referendum finished with rejection. Submission deposit is held.
|
||||
Rejected(Moment, Deposit<AccountId, Balance>, Option<Deposit<AccountId, Balance>>),
|
||||
Rejected(Moment, Option<Deposit<AccountId, Balance>>, Option<Deposit<AccountId, Balance>>),
|
||||
/// Referendum finished with cancellation. Submission deposit is held.
|
||||
Cancelled(Moment, Deposit<AccountId, Balance>, Option<Deposit<AccountId, Balance>>),
|
||||
Cancelled(Moment, Option<Deposit<AccountId, Balance>>, Option<Deposit<AccountId, Balance>>),
|
||||
/// Referendum finished and was never decided. Submission deposit is held.
|
||||
TimedOut(Moment, Deposit<AccountId, Balance>, Option<Deposit<AccountId, Balance>>),
|
||||
TimedOut(Moment, Option<Deposit<AccountId, Balance>>, Option<Deposit<AccountId, Balance>>),
|
||||
/// Referendum finished with a kill.
|
||||
Killed(Moment),
|
||||
}
|
||||
@@ -256,6 +256,19 @@ impl<
|
||||
Killed(_) => Ok(None),
|
||||
}
|
||||
}
|
||||
|
||||
/// Take the Submission Deposit from `self`, if there is one and it's in a valid state to be
|
||||
/// taken. Returns an `Err` if `self` is not in a valid state for the Submission Deposit to be
|
||||
/// refunded.
|
||||
pub fn take_submission_deposit(&mut self) -> Result<Option<Deposit<AccountId, Balance>>, ()> {
|
||||
use ReferendumInfo::*;
|
||||
match self {
|
||||
// Can only refund deposit if it's appoved or cancelled.
|
||||
Approved(_, s, _) | Cancelled(_, s, _) => Ok(s.take()),
|
||||
// Cannot refund deposit if Ongoing as this breaks assumptions.
|
||||
Ongoing(..) | Rejected(..) | TimedOut(..) | Killed(..) => Err(()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Type for describing a curve over the 2-dimensional space of axes between 0-1, as represented
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
// This file is part of Substrate.
|
||||
|
||||
// Copyright (C) 2022 Parity Technologies (UK) Ltd.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
@@ -18,24 +13,22 @@
|
||||
//! Autogenerated weights for pallet_referenda
|
||||
//!
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||
//! DATE: 2022-11-07, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! HOSTNAME: `bm2`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
||||
//! DATE: 2022-11-27, STEPS: `20`, REPEAT: 1, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! HOSTNAME: `cob`, CPU: `<UNKNOWN>`
|
||||
//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
||||
|
||||
// Executed Command:
|
||||
// ./target/production/substrate
|
||||
// ./target/release/substrate
|
||||
// benchmark
|
||||
// pallet
|
||||
// --chain=dev
|
||||
// --steps=50
|
||||
// --repeat=20
|
||||
// --pallet=pallet_referenda
|
||||
// --steps=20
|
||||
// --repeat=1
|
||||
// --pallet=pallet-referenda
|
||||
// --extrinsic=*
|
||||
// --execution=wasm
|
||||
// --wasm-execution=compiled
|
||||
// --heap-pages=4096
|
||||
// --output=./frame/referenda/src/weights.rs
|
||||
// --header=./HEADER-APACHE2
|
||||
// --output=./frame/referenda/src/._weights.rs
|
||||
// --template=./.maintain/frame-weight-template.hbs
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
@@ -54,6 +47,7 @@ pub trait WeightInfo {
|
||||
fn place_decision_deposit_passing() -> Weight;
|
||||
fn place_decision_deposit_failing() -> Weight;
|
||||
fn refund_decision_deposit() -> Weight;
|
||||
fn refund_submission_deposit() -> Weight;
|
||||
fn cancel() -> Weight;
|
||||
fn kill() -> Weight;
|
||||
fn one_fewer_deciding_queue_empty() -> Weight;
|
||||
@@ -83,231 +77,238 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
// Storage: Referenda ReferendumInfoFor (r:0 w:1)
|
||||
fn submit() -> Weight {
|
||||
// Minimum execution time: 41_475 nanoseconds.
|
||||
Weight::from_ref_time(42_153_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 29_000 nanoseconds.
|
||||
Weight::from_ref_time(29_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(2))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn place_decision_deposit_preparing() -> Weight {
|
||||
// Minimum execution time: 52_291 nanoseconds.
|
||||
Weight::from_ref_time(53_147_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 35_000 nanoseconds.
|
||||
Weight::from_ref_time(35_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(3))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:0)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
fn place_decision_deposit_queued() -> Weight {
|
||||
// Minimum execution time: 57_322 nanoseconds.
|
||||
Weight::from_ref_time(58_145_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 40_000 nanoseconds.
|
||||
Weight::from_ref_time(40_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(3))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:0)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
fn place_decision_deposit_not_queued() -> Weight {
|
||||
// Minimum execution time: 57_170 nanoseconds.
|
||||
Weight::from_ref_time(58_012_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 39_000 nanoseconds.
|
||||
Weight::from_ref_time(39_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(3))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn place_decision_deposit_passing() -> Weight {
|
||||
// Minimum execution time: 67_805 nanoseconds.
|
||||
Weight::from_ref_time(68_844_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(4 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(4 as u64))
|
||||
// Minimum execution time: 43_000 nanoseconds.
|
||||
Weight::from_ref_time(43_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
.saturating_add(T::DbWeight::get().writes(4))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn place_decision_deposit_failing() -> Weight {
|
||||
// Minimum execution time: 63_408 nanoseconds.
|
||||
Weight::from_ref_time(64_049_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(4 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(4 as u64))
|
||||
// Minimum execution time: 84_000 nanoseconds.
|
||||
Weight::from_ref_time(84_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
.saturating_add(T::DbWeight::get().writes(4))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
fn refund_decision_deposit() -> Weight {
|
||||
// Minimum execution time: 36_639 nanoseconds.
|
||||
Weight::from_ref_time(37_329_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
// Minimum execution time: 25_000 nanoseconds.
|
||||
Weight::from_ref_time(25_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(1))
|
||||
.saturating_add(T::DbWeight::get().writes(1))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
fn refund_submission_deposit() -> Weight {
|
||||
// Minimum execution time: 25_000 nanoseconds.
|
||||
Weight::from_ref_time(25_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(1))
|
||||
.saturating_add(T::DbWeight::get().writes(1))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn cancel() -> Weight {
|
||||
// Minimum execution time: 42_442 nanoseconds.
|
||||
Weight::from_ref_time(43_006_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 26_000 nanoseconds.
|
||||
Weight::from_ref_time(26_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(3))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn kill() -> Weight {
|
||||
// Minimum execution time: 74_681 nanoseconds.
|
||||
Weight::from_ref_time(75_567_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 47_000 nanoseconds.
|
||||
Weight::from_ref_time(47_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(3))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda TrackQueue (r:1 w:0)
|
||||
// Storage: Referenda DecidingCount (r:1 w:1)
|
||||
fn one_fewer_deciding_queue_empty() -> Weight {
|
||||
// Minimum execution time: 14_262 nanoseconds.
|
||||
Weight::from_ref_time(14_504_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
// Minimum execution time: 8_000 nanoseconds.
|
||||
Weight::from_ref_time(8_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(2))
|
||||
.saturating_add(T::DbWeight::get().writes(1))
|
||||
}
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn one_fewer_deciding_failing() -> Weight {
|
||||
// Minimum execution time: 88_618 nanoseconds.
|
||||
Weight::from_ref_time(89_443_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(4 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(4 as u64))
|
||||
// Minimum execution time: 88_000 nanoseconds.
|
||||
Weight::from_ref_time(88_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
.saturating_add(T::DbWeight::get().writes(4))
|
||||
}
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn one_fewer_deciding_passing() -> Weight {
|
||||
// Minimum execution time: 89_784 nanoseconds.
|
||||
Weight::from_ref_time(90_619_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(4 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(4 as u64))
|
||||
// Minimum execution time: 75_000 nanoseconds.
|
||||
Weight::from_ref_time(75_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
.saturating_add(T::DbWeight::get().writes(4))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_requeued_insertion() -> Weight {
|
||||
// Minimum execution time: 73_179 nanoseconds.
|
||||
Weight::from_ref_time(74_025_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 72_000 nanoseconds.
|
||||
Weight::from_ref_time(72_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(3))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_requeued_slide() -> Weight {
|
||||
// Minimum execution time: 73_168 nanoseconds.
|
||||
Weight::from_ref_time(73_769_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 56_000 nanoseconds.
|
||||
Weight::from_ref_time(56_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(3))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:0)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_queued() -> Weight {
|
||||
// Minimum execution time: 75_027 nanoseconds.
|
||||
Weight::from_ref_time(76_220_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(4 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 55_000 nanoseconds.
|
||||
Weight::from_ref_time(55_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:0)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_not_queued() -> Weight {
|
||||
// Minimum execution time: 74_815 nanoseconds.
|
||||
Weight::from_ref_time(75_803_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(4 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 60_000 nanoseconds.
|
||||
Weight::from_ref_time(60_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_no_deposit() -> Weight {
|
||||
// Minimum execution time: 31_877 nanoseconds.
|
||||
Weight::from_ref_time(32_236_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 22_000 nanoseconds.
|
||||
Weight::from_ref_time(22_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(2))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_preparing() -> Weight {
|
||||
// Minimum execution time: 33_322 nanoseconds.
|
||||
Weight::from_ref_time(33_762_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 21_000 nanoseconds.
|
||||
Weight::from_ref_time(21_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(2))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
fn nudge_referendum_timed_out() -> Weight {
|
||||
// Minimum execution time: 25_393 nanoseconds.
|
||||
Weight::from_ref_time(25_913_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
// Minimum execution time: 17_000 nanoseconds.
|
||||
Weight::from_ref_time(17_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(1))
|
||||
.saturating_add(T::DbWeight::get().writes(1))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_begin_deciding_failing() -> Weight {
|
||||
// Minimum execution time: 47_114 nanoseconds.
|
||||
Weight::from_ref_time(47_586_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 29_000 nanoseconds.
|
||||
Weight::from_ref_time(29_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(3))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_begin_deciding_passing() -> Weight {
|
||||
// Minimum execution time: 48_443 nanoseconds.
|
||||
Weight::from_ref_time(50_003_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 39_000 nanoseconds.
|
||||
Weight::from_ref_time(39_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(3))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_begin_confirming() -> Weight {
|
||||
// Minimum execution time: 44_556 nanoseconds.
|
||||
Weight::from_ref_time(45_167_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 31_000 nanoseconds.
|
||||
Weight::from_ref_time(31_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(2))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_end_confirming() -> Weight {
|
||||
// Minimum execution time: 45_474 nanoseconds.
|
||||
Weight::from_ref_time(46_105_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 30_000 nanoseconds.
|
||||
Weight::from_ref_time(30_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(2))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_continue_not_confirming() -> Weight {
|
||||
// Minimum execution time: 42_795 nanoseconds.
|
||||
Weight::from_ref_time(43_123_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 28_000 nanoseconds.
|
||||
Weight::from_ref_time(28_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(2))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_continue_confirming() -> Weight {
|
||||
// Minimum execution time: 41_928 nanoseconds.
|
||||
Weight::from_ref_time(42_272_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 30_000 nanoseconds.
|
||||
Weight::from_ref_time(30_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(2))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
// Storage: Scheduler Lookup (r:1 w:1)
|
||||
fn nudge_referendum_approved() -> Weight {
|
||||
// Minimum execution time: 55_186 nanoseconds.
|
||||
Weight::from_ref_time(55_714_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(4 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(4 as u64))
|
||||
// Minimum execution time: 45_000 nanoseconds.
|
||||
Weight::from_ref_time(45_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
.saturating_add(T::DbWeight::get().writes(4))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_rejected() -> Weight {
|
||||
// Minimum execution time: 44_892 nanoseconds.
|
||||
Weight::from_ref_time(45_353_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 30_000 nanoseconds.
|
||||
Weight::from_ref_time(30_000_000)
|
||||
.saturating_add(T::DbWeight::get().reads(2))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -317,230 +318,237 @@ impl WeightInfo for () {
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
// Storage: Referenda ReferendumInfoFor (r:0 w:1)
|
||||
fn submit() -> Weight {
|
||||
// Minimum execution time: 41_475 nanoseconds.
|
||||
Weight::from_ref_time(42_153_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 29_000 nanoseconds.
|
||||
Weight::from_ref_time(29_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(2))
|
||||
.saturating_add(RocksDbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn place_decision_deposit_preparing() -> Weight {
|
||||
// Minimum execution time: 52_291 nanoseconds.
|
||||
Weight::from_ref_time(53_147_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 35_000 nanoseconds.
|
||||
Weight::from_ref_time(35_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(3))
|
||||
.saturating_add(RocksDbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:0)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
fn place_decision_deposit_queued() -> Weight {
|
||||
// Minimum execution time: 57_322 nanoseconds.
|
||||
Weight::from_ref_time(58_145_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 40_000 nanoseconds.
|
||||
Weight::from_ref_time(40_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(3))
|
||||
.saturating_add(RocksDbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:0)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
fn place_decision_deposit_not_queued() -> Weight {
|
||||
// Minimum execution time: 57_170 nanoseconds.
|
||||
Weight::from_ref_time(58_012_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 39_000 nanoseconds.
|
||||
Weight::from_ref_time(39_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(3))
|
||||
.saturating_add(RocksDbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn place_decision_deposit_passing() -> Weight {
|
||||
// Minimum execution time: 67_805 nanoseconds.
|
||||
Weight::from_ref_time(68_844_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(4 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(4 as u64))
|
||||
// Minimum execution time: 43_000 nanoseconds.
|
||||
Weight::from_ref_time(43_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(4))
|
||||
.saturating_add(RocksDbWeight::get().writes(4))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn place_decision_deposit_failing() -> Weight {
|
||||
// Minimum execution time: 63_408 nanoseconds.
|
||||
Weight::from_ref_time(64_049_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(4 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(4 as u64))
|
||||
// Minimum execution time: 84_000 nanoseconds.
|
||||
Weight::from_ref_time(84_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(4))
|
||||
.saturating_add(RocksDbWeight::get().writes(4))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
fn refund_decision_deposit() -> Weight {
|
||||
// Minimum execution time: 36_639 nanoseconds.
|
||||
Weight::from_ref_time(37_329_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as u64))
|
||||
// Minimum execution time: 25_000 nanoseconds.
|
||||
Weight::from_ref_time(25_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(1))
|
||||
.saturating_add(RocksDbWeight::get().writes(1))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
fn refund_submission_deposit() -> Weight {
|
||||
// Minimum execution time: 25_000 nanoseconds.
|
||||
Weight::from_ref_time(25_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(1))
|
||||
.saturating_add(RocksDbWeight::get().writes(1))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn cancel() -> Weight {
|
||||
// Minimum execution time: 42_442 nanoseconds.
|
||||
Weight::from_ref_time(43_006_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 26_000 nanoseconds.
|
||||
Weight::from_ref_time(26_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(3))
|
||||
.saturating_add(RocksDbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn kill() -> Weight {
|
||||
// Minimum execution time: 74_681 nanoseconds.
|
||||
Weight::from_ref_time(75_567_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 47_000 nanoseconds.
|
||||
Weight::from_ref_time(47_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(3))
|
||||
.saturating_add(RocksDbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda TrackQueue (r:1 w:0)
|
||||
// Storage: Referenda DecidingCount (r:1 w:1)
|
||||
fn one_fewer_deciding_queue_empty() -> Weight {
|
||||
// Minimum execution time: 14_262 nanoseconds.
|
||||
Weight::from_ref_time(14_504_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as u64))
|
||||
// Minimum execution time: 8_000 nanoseconds.
|
||||
Weight::from_ref_time(8_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(2))
|
||||
.saturating_add(RocksDbWeight::get().writes(1))
|
||||
}
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn one_fewer_deciding_failing() -> Weight {
|
||||
// Minimum execution time: 88_618 nanoseconds.
|
||||
Weight::from_ref_time(89_443_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(4 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(4 as u64))
|
||||
// Minimum execution time: 88_000 nanoseconds.
|
||||
Weight::from_ref_time(88_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(4))
|
||||
.saturating_add(RocksDbWeight::get().writes(4))
|
||||
}
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
fn one_fewer_deciding_passing() -> Weight {
|
||||
// Minimum execution time: 89_784 nanoseconds.
|
||||
Weight::from_ref_time(90_619_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(4 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(4 as u64))
|
||||
// Minimum execution time: 75_000 nanoseconds.
|
||||
Weight::from_ref_time(75_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(4))
|
||||
.saturating_add(RocksDbWeight::get().writes(4))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_requeued_insertion() -> Weight {
|
||||
// Minimum execution time: 73_179 nanoseconds.
|
||||
Weight::from_ref_time(74_025_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 72_000 nanoseconds.
|
||||
Weight::from_ref_time(72_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(3))
|
||||
.saturating_add(RocksDbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_requeued_slide() -> Weight {
|
||||
// Minimum execution time: 73_168 nanoseconds.
|
||||
Weight::from_ref_time(73_769_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 56_000 nanoseconds.
|
||||
Weight::from_ref_time(56_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(3))
|
||||
.saturating_add(RocksDbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:0)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_queued() -> Weight {
|
||||
// Minimum execution time: 75_027 nanoseconds.
|
||||
Weight::from_ref_time(76_220_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(4 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 55_000 nanoseconds.
|
||||
Weight::from_ref_time(55_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(4))
|
||||
.saturating_add(RocksDbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:0)
|
||||
// Storage: Referenda TrackQueue (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_not_queued() -> Weight {
|
||||
// Minimum execution time: 74_815 nanoseconds.
|
||||
Weight::from_ref_time(75_803_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(4 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 60_000 nanoseconds.
|
||||
Weight::from_ref_time(60_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(4))
|
||||
.saturating_add(RocksDbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_no_deposit() -> Weight {
|
||||
// Minimum execution time: 31_877 nanoseconds.
|
||||
Weight::from_ref_time(32_236_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 22_000 nanoseconds.
|
||||
Weight::from_ref_time(22_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(2))
|
||||
.saturating_add(RocksDbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_preparing() -> Weight {
|
||||
// Minimum execution time: 33_322 nanoseconds.
|
||||
Weight::from_ref_time(33_762_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 21_000 nanoseconds.
|
||||
Weight::from_ref_time(21_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(2))
|
||||
.saturating_add(RocksDbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
fn nudge_referendum_timed_out() -> Weight {
|
||||
// Minimum execution time: 25_393 nanoseconds.
|
||||
Weight::from_ref_time(25_913_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as u64))
|
||||
// Minimum execution time: 17_000 nanoseconds.
|
||||
Weight::from_ref_time(17_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(1))
|
||||
.saturating_add(RocksDbWeight::get().writes(1))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_begin_deciding_failing() -> Weight {
|
||||
// Minimum execution time: 47_114 nanoseconds.
|
||||
Weight::from_ref_time(47_586_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 29_000 nanoseconds.
|
||||
Weight::from_ref_time(29_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(3))
|
||||
.saturating_add(RocksDbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Referenda DecidingCount (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_begin_deciding_passing() -> Weight {
|
||||
// Minimum execution time: 48_443 nanoseconds.
|
||||
Weight::from_ref_time(50_003_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as u64))
|
||||
// Minimum execution time: 39_000 nanoseconds.
|
||||
Weight::from_ref_time(39_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(3))
|
||||
.saturating_add(RocksDbWeight::get().writes(3))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_begin_confirming() -> Weight {
|
||||
// Minimum execution time: 44_556 nanoseconds.
|
||||
Weight::from_ref_time(45_167_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 31_000 nanoseconds.
|
||||
Weight::from_ref_time(31_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(2))
|
||||
.saturating_add(RocksDbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_end_confirming() -> Weight {
|
||||
// Minimum execution time: 45_474 nanoseconds.
|
||||
Weight::from_ref_time(46_105_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 30_000 nanoseconds.
|
||||
Weight::from_ref_time(30_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(2))
|
||||
.saturating_add(RocksDbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_continue_not_confirming() -> Weight {
|
||||
// Minimum execution time: 42_795 nanoseconds.
|
||||
Weight::from_ref_time(43_123_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 28_000 nanoseconds.
|
||||
Weight::from_ref_time(28_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(2))
|
||||
.saturating_add(RocksDbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_continue_confirming() -> Weight {
|
||||
// Minimum execution time: 41_928 nanoseconds.
|
||||
Weight::from_ref_time(42_272_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 30_000 nanoseconds.
|
||||
Weight::from_ref_time(30_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(2))
|
||||
.saturating_add(RocksDbWeight::get().writes(2))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:2 w:2)
|
||||
// Storage: Scheduler Lookup (r:1 w:1)
|
||||
fn nudge_referendum_approved() -> Weight {
|
||||
// Minimum execution time: 55_186 nanoseconds.
|
||||
Weight::from_ref_time(55_714_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(4 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(4 as u64))
|
||||
// Minimum execution time: 45_000 nanoseconds.
|
||||
Weight::from_ref_time(45_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(4))
|
||||
.saturating_add(RocksDbWeight::get().writes(4))
|
||||
}
|
||||
// Storage: Referenda ReferendumInfoFor (r:1 w:1)
|
||||
// Storage: Scheduler Agenda (r:1 w:1)
|
||||
fn nudge_referendum_rejected() -> Weight {
|
||||
// Minimum execution time: 44_892 nanoseconds.
|
||||
Weight::from_ref_time(45_353_000 as u64)
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as u64))
|
||||
// Minimum execution time: 30_000 nanoseconds.
|
||||
Weight::from_ref_time(30_000_000)
|
||||
.saturating_add(RocksDbWeight::get().reads(2))
|
||||
.saturating_add(RocksDbWeight::get().writes(2))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user