Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Commit

Permalink
Revert "Add storage size component to weights (#12277)"
Browse files Browse the repository at this point in the history
This reverts commit 17c07af.
  • Loading branch information
coderobe committed Oct 4, 2022
1 parent 1b1a5e1 commit d56f89b
Show file tree
Hide file tree
Showing 20 changed files with 128 additions and 531 deletions.
62 changes: 11 additions & 51 deletions frame/alliance/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ use frame_support::{
ChangeMembers, Currency, Get, InitializeMembers, IsSubType, OnUnbalanced,
ReservableCurrency,
},
weights::{OldWeight, Weight},
weights::Weight,
};
use pallet_identity::IdentityField;

Expand Down Expand Up @@ -620,22 +620,25 @@ pub mod pallet {
.max(T::WeightInfo::close_early_disapproved(x, y, p2))
.max(T::WeightInfo::close_approved(b, x, y, p2))
.max(T::WeightInfo::close_disapproved(x, y, p2))
.saturating_add(p1.into())
.saturating_add(p1)
})]
#[allow(deprecated)]
#[deprecated(note = "1D weight is used in this extrinsic, please migrate to use `close`")]
pub fn close_old_weight(
pub fn close(
origin: OriginFor<T>,
proposal_hash: T::Hash,
#[pallet::compact] index: ProposalIndex,
#[pallet::compact] proposal_weight_bound: OldWeight,
#[pallet::compact] proposal_weight_bound: Weight,
#[pallet::compact] length_bound: u32,
) -> DispatchResultWithPostInfo {
let proposal_weight_bound: Weight = proposal_weight_bound.into();
let who = ensure_signed(origin)?;
ensure!(Self::has_voting_rights(&who), Error::<T, I>::NoVotingRights);

Self::do_close(proposal_hash, index, proposal_weight_bound, length_bound)
let info = T::ProposalProvider::close_proposal(
proposal_hash,
index,
proposal_weight_bound,
length_bound,
)?;
Ok(info.into())
}

/// Initialize the Alliance, onboard founders, fellows, and allies.
Expand Down Expand Up @@ -982,34 +985,6 @@ pub mod pallet {
Self::deposit_event(Event::UnscrupulousItemRemoved { items });
Ok(())
}

/// Close a vote that is either approved, disapproved, or whose voting period has ended.
///
/// Requires the sender to be a founder or fellow.
#[pallet::weight({
let b = *length_bound;
let x = T::MaxFounders::get();
let y = T::MaxFellows::get();
let p1 = *proposal_weight_bound;
let p2 = T::MaxProposals::get();
T::WeightInfo::close_early_approved(b, x, y, p2)
.max(T::WeightInfo::close_early_disapproved(x, y, p2))
.max(T::WeightInfo::close_approved(b, x, y, p2))
.max(T::WeightInfo::close_disapproved(x, y, p2))
.saturating_add(p1)
})]
pub fn close(
origin: OriginFor<T>,
proposal_hash: T::Hash,
#[pallet::compact] index: ProposalIndex,
proposal_weight_bound: Weight,
#[pallet::compact] length_bound: u32,
) -> DispatchResultWithPostInfo {
let who = ensure_signed(origin)?;
ensure!(Self::has_voting_rights(&who), Error::<T, I>::NoVotingRights);

Self::do_close(proposal_hash, index, proposal_weight_bound, length_bound)
}
}
}

Expand Down Expand Up @@ -1222,19 +1197,4 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {
}
res
}

fn do_close(
proposal_hash: T::Hash,
index: ProposalIndex,
proposal_weight_bound: Weight,
length_bound: u32,
) -> DispatchResultWithPostInfo {
let info = T::ProposalProvider::close_proposal(
proposal_hash,
index,
proposal_weight_bound,
length_bound,
)?;
Ok(info.into())
}
}
3 changes: 1 addition & 2 deletions frame/babe/src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -852,8 +852,7 @@ fn valid_equivocation_reports_dont_pay_fees() {
.get_dispatch_info();

// it should have non-zero weight and the fee has to be paid.
// TODO: account for proof size weight
assert!(info.weight.ref_time() > 0);
assert!(info.weight.all_gt(Weight::zero()));
assert_eq!(info.pays_fee, Pays::Yes);

// report the equivocation.
Expand Down
69 changes: 4 additions & 65 deletions frame/collective/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ use frame_support::{
traits::{
Backing, ChangeMembers, EnsureOrigin, Get, GetBacking, InitializeMembers, StorageVersion,
},
weights::{OldWeight, Weight},
weights::Weight,
};

#[cfg(test)]
Expand Down Expand Up @@ -620,20 +620,17 @@ pub mod pallet {
.max(T::WeightInfo::close_early_disapproved(m, p2))
.max(T::WeightInfo::close_approved(b, m, p2))
.max(T::WeightInfo::close_disapproved(m, p2))
.saturating_add(p1.into())
.saturating_add(p1)
},
DispatchClass::Operational
))]
#[allow(deprecated)]
#[deprecated(note = "1D weight is used in this extrinsic, please migrate to `close`")]
pub fn close_old_weight(
pub fn close(
origin: OriginFor<T>,
proposal_hash: T::Hash,
#[pallet::compact] index: ProposalIndex,
#[pallet::compact] proposal_weight_bound: OldWeight,
#[pallet::compact] proposal_weight_bound: Weight,
#[pallet::compact] length_bound: u32,
) -> DispatchResultWithPostInfo {
let proposal_weight_bound: Weight = proposal_weight_bound.into();
let _ = ensure_signed(origin)?;

Self::do_close(proposal_hash, index, proposal_weight_bound, length_bound)
Expand Down Expand Up @@ -662,64 +659,6 @@ pub mod pallet {
let proposal_count = Self::do_disapprove_proposal(proposal_hash);
Ok(Some(T::WeightInfo::disapprove_proposal(proposal_count)).into())
}

/// Close a vote that is either approved, disapproved or whose voting period has ended.
///
/// May be called by any signed account in order to finish voting and close the proposal.
///
/// If called before the end of the voting period it will only close the vote if it is
/// has enough votes to be approved or disapproved.
///
/// If called after the end of the voting period abstentions are counted as rejections
/// unless there is a prime member set and the prime member cast an approval.
///
/// If the close operation completes successfully with disapproval, the transaction fee will
/// be waived. Otherwise execution of the approved operation will be charged to the caller.
///
/// + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed
/// proposal.
/// + `length_bound`: The upper bound for the length of the proposal in storage. Checked via
/// `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.
///
/// # <weight>
/// ## Weight
/// - `O(B + M + P1 + P2)` where:
/// - `B` is `proposal` size in bytes (length-fee-bounded)
/// - `M` is members-count (code- and governance-bounded)
/// - `P1` is the complexity of `proposal` preimage.
/// - `P2` is proposal-count (code-bounded)
/// - DB:
/// - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)
/// - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec
/// `O(P2)`)
/// - any mutations done while executing `proposal` (`P1`)
/// - up to 3 events
/// # </weight>
#[pallet::weight((
{
let b = *length_bound;
let m = T::MaxMembers::get();
let p1 = *proposal_weight_bound;
let p2 = T::MaxProposals::get();
T::WeightInfo::close_early_approved(b, m, p2)
.max(T::WeightInfo::close_early_disapproved(m, p2))
.max(T::WeightInfo::close_approved(b, m, p2))
.max(T::WeightInfo::close_disapproved(m, p2))
.saturating_add(p1)
},
DispatchClass::Operational
))]
pub fn close(
origin: OriginFor<T>,
proposal_hash: T::Hash,
#[pallet::compact] index: ProposalIndex,
proposal_weight_bound: Weight,
#[pallet::compact] length_bound: u32,
) -> DispatchResultWithPostInfo {
let _ = ensure_signed(origin)?;

Self::do_close(proposal_hash, index, proposal_weight_bound, length_bound)
}
}
}

Expand Down
Loading

0 comments on commit d56f89b

Please sign in to comment.