mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 00:01:09 +00:00
Add Storage Info to Various Pallets (#10810)
* atomic swap * bounties * bounties fmt * gilt * indices * nicks * randomness-collective-flip * recovery * reuse maxapprovals * Update tests.rs * Update frame/randomness-collective-flip/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * use the correct bound * complete recovery * use `bounded_vec` macro * Update tests.rs * transaction payment * uniques * mmr * example offchain worker * beefy-mmr * Update frame/recovery/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Use BoundedVec instead of a type-parameterized BoundedString * cargo fmt * Update frame/atomic-swap/src/lib.rs * use config const * Update lib.rs * update mel_bound * fmt Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
This commit is contained in:
@@ -107,7 +107,7 @@ type PositiveImbalanceOf<T> = pallet_treasury::PositiveImbalanceOf<T>;
|
||||
pub type BountyIndex = u32;
|
||||
|
||||
/// A bounty proposal.
|
||||
#[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo)]
|
||||
#[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo, MaxEncodedLen)]
|
||||
pub struct Bounty<AccountId, Balance, BlockNumber> {
|
||||
/// The account proposing it.
|
||||
proposer: AccountId,
|
||||
@@ -133,7 +133,7 @@ impl<AccountId: PartialEq + Clone + Ord, Balance, BlockNumber: Clone>
|
||||
}
|
||||
|
||||
/// The status of a bounty proposal.
|
||||
#[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo)]
|
||||
#[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo, MaxEncodedLen)]
|
||||
pub enum BountyStatus<AccountId, BlockNumber> {
|
||||
/// The bounty is proposed and waiting for approval.
|
||||
Proposed,
|
||||
@@ -180,7 +180,6 @@ pub mod pallet {
|
||||
|
||||
#[pallet::pallet]
|
||||
#[pallet::generate_store(pub(super) trait Store)]
|
||||
#[pallet::without_storage_info]
|
||||
pub struct Pallet<T>(_);
|
||||
|
||||
#[pallet::config]
|
||||
@@ -249,6 +248,8 @@ pub mod pallet {
|
||||
Premature,
|
||||
/// The bounty cannot be closed because it has active child-bounties.
|
||||
HasActiveChildBounty,
|
||||
/// Too many approvals are already queued.
|
||||
TooManyQueued,
|
||||
}
|
||||
|
||||
#[pallet::event]
|
||||
@@ -288,12 +289,14 @@ pub mod pallet {
|
||||
/// The description of each bounty.
|
||||
#[pallet::storage]
|
||||
#[pallet::getter(fn bounty_descriptions)]
|
||||
pub type BountyDescriptions<T: Config> = StorageMap<_, Twox64Concat, BountyIndex, Vec<u8>>;
|
||||
pub type BountyDescriptions<T: Config> =
|
||||
StorageMap<_, Twox64Concat, BountyIndex, BoundedVec<u8, T::MaximumReasonLength>>;
|
||||
|
||||
/// Bounty indices that have been approved but not yet funded.
|
||||
#[pallet::storage]
|
||||
#[pallet::getter(fn bounty_approvals)]
|
||||
pub type BountyApprovals<T: Config> = StorageValue<_, Vec<BountyIndex>, ValueQuery>;
|
||||
pub type BountyApprovals<T: Config> =
|
||||
StorageValue<_, BoundedVec<BountyIndex, T::MaxApprovals>, ValueQuery>;
|
||||
|
||||
#[pallet::call]
|
||||
impl<T: Config> Pallet<T> {
|
||||
@@ -341,7 +344,8 @@ pub mod pallet {
|
||||
|
||||
bounty.status = BountyStatus::Approved;
|
||||
|
||||
BountyApprovals::<T>::append(bounty_id);
|
||||
BountyApprovals::<T>::try_append(bounty_id)
|
||||
.map_err(|()| Error::<T>::TooManyQueued)?;
|
||||
|
||||
Ok(())
|
||||
})?;
|
||||
@@ -780,17 +784,15 @@ impl<T: Config> Pallet<T> {
|
||||
description: Vec<u8>,
|
||||
value: BalanceOf<T>,
|
||||
) -> DispatchResult {
|
||||
ensure!(
|
||||
description.len() <= T::MaximumReasonLength::get() as usize,
|
||||
Error::<T>::ReasonTooBig
|
||||
);
|
||||
let bounded_description: BoundedVec<_, _> =
|
||||
description.try_into().map_err(|()| Error::<T>::ReasonTooBig)?;
|
||||
ensure!(value >= T::BountyValueMinimum::get(), Error::<T>::InvalidValue);
|
||||
|
||||
let index = Self::bounty_count();
|
||||
|
||||
// reserve deposit for new bounty
|
||||
let bond = T::BountyDepositBase::get() +
|
||||
T::DataDepositPerByte::get() * (description.len() as u32).into();
|
||||
T::DataDepositPerByte::get() * (bounded_description.len() as u32).into();
|
||||
T::Currency::reserve(&proposer, bond)
|
||||
.map_err(|_| Error::<T>::InsufficientProposersBalance)?;
|
||||
|
||||
@@ -806,7 +808,7 @@ impl<T: Config> Pallet<T> {
|
||||
};
|
||||
|
||||
Bounties::<T>::insert(index, &bounty);
|
||||
BountyDescriptions::<T>::insert(index, description);
|
||||
BountyDescriptions::<T>::insert(index, bounded_description);
|
||||
|
||||
Self::deposit_event(Event::<T>::BountyProposed { index });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user