Remove use of trait Store from all pallets and deprecate it. (#13535)

* Remove use of trait Store from staking pallet

* Remove use of trait Store from bounties pallet

* Remove use of trait Store from collective pallet

* Remove use of trait Store from babe pallet

* Remove use of trait Store from assets pallet

* Remove use of trait Store from grandpa pallet

* Remove use of trait Store from balances pallet

* Remove use of trait Store from authorship pallet

* Remove use of trait Store from authority-discovery pallet

* Remove use of trait Store from atomic-swap pallet

* Remove use of trait Store from sudo pallet

* Remove use of trait Store from scheduler pallet

* Remove use of trait Store from scored-pool pallet

* Remove use of trait Store from society pallet

* Remove use of trait Store from lottery pallet

* Remove use of trait Store from executive pallet

* Remove use of trait Store from democracy pallet

* Remove use of trait Store from elections-phragmen pallet

* Remove use of trait Store from indices pallet

* Remove use of trait Store from identity pallet

* Remove use of trait Store from multisig pallet

* Remove use of trait Store from merkle-mountain-range pallet

* Remove use of trait Store from im-online pallet

* Remove use of trait Store from membership pallet

* Remove use of trait Store from nicks pallet

* Remove use of trait Store from session pallet

* Remove use of trait Store from transaction-payment pallet

* Remove use of trait Store from utility pallet

* Remove use of trait Store from child-bounties pallet

* Remove use of trait Store from nis pallet

* Remove use of trait Store from nfts pallet

* Remove use of trait Store from conviction-voting pallet

* Remove use of trait Store from treasury pallet

* Remove use of trait Store from vesting pallet

* Remove use of trait Store from preimage pallet

* Remove use of trait Store from uniques pallet

* Remove use of trait Store from ranked-collective pallet

* Remove use of trait Store from beefy-mmr pallet

* Remove use of trait Store from referenda pallet

* Remove use of trait Store from whitelist pallet

* Remove use of trait Store from alliance pallet

* Remove use of trait Store from nomination-pools pallet

* Remove use of trait Store from state-trie-migration pallet

* Remove use of trait Store from message-queue pallet

* Remove use of trait Store from root-offences pallet

* Remove use of trait Store from root-testing pallet

* Remove use of trait Store from timestamps pallet

* Remove use of trait Store from system pallet

* Remove use of trait Store from offences pallet

* Remove use of trait Store from recovery pallet

* Remove use of trait Store from node-authorization pallet

* Remove use of trait Store from proxy pallet

* Remove use of trait Store from benchmarking pallet

* Remove use of trait Store from bags-list pallet

* Add deprecated warning in store_trait

* Change warning message

* Run cargo fmt

* Fix warning and update tests

* Remove unnecessary allow deprecated

* Remove use of trait Store

* Fix mismatch in expected output

* Minor update to warning message for deprecation of generate_store with Store trait attribute

* Fixes as per review comments

* Fixes as per review suggestions

* Remove use of Store trait from core-fellowship pallet

* Fix type in store_trait.rs

* Fixes as pre review comment
This commit is contained in:
Vivek Pandya
2023-03-13 21:00:05 +05:30
committed by GitHub
parent f6b9e056ae
commit 2009821cde
89 changed files with 119 additions and 168 deletions
@@ -20,7 +20,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// Configure the pallet by specifying the parameters and types on which it depends.
-1
View File
@@ -222,7 +222,6 @@ pub mod pallet {
use super::*;
#[pallet::pallet]
#[pallet::generate_store(pub (super) trait Store)]
#[pallet::storage_version(migration::STORAGE_VERSION)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
-1
View File
@@ -197,7 +197,6 @@ pub mod pallet {
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 = ()>(_);
-1
View File
@@ -184,7 +184,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(PhantomData<T>);
#[pallet::storage]
@@ -38,7 +38,6 @@ pub mod pallet {
use frame_support::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::config]
-1
View File
@@ -49,7 +49,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::hooks]
-1
View File
@@ -114,7 +114,6 @@ pub mod pallet {
/// The BABE Pallet
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::config]
-1
View File
@@ -99,7 +99,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(crate) trait Store)]
pub struct Pallet<T, I = ()>(_);
#[pallet::config]
-1
View File
@@ -253,7 +253,6 @@ pub mod pallet {
frame_support::traits::StorageVersion::new(1);
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
-1
View File
@@ -95,7 +95,6 @@ pub mod pallet {
/// BEEFY-MMR pallet.
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// The module's configuration trait.
@@ -32,7 +32,6 @@ pub mod pallet {
use sp_std::prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(PhantomData<T>);
#[pallet::config]
@@ -35,7 +35,6 @@ mod pallet_test {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(PhantomData<T>);
#[pallet::config]
@@ -34,7 +34,6 @@ mod pallet_test {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
pub trait OtherConfig {
-1
View File
@@ -188,7 +188,6 @@ pub mod pallet {
use super::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T, I = ()>(_);
#[pallet::config]
@@ -130,7 +130,6 @@ pub mod pallet {
use super::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::config]
-1
View File
@@ -175,7 +175,6 @@ pub mod pallet {
const STORAGE_VERSION: StorageVersion = StorageVersion::new(4);
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
#[pallet::without_storage_info]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
-1
View File
@@ -57,7 +57,6 @@ mod mock_democracy {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::config]
@@ -92,7 +92,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T, I = ()>(_);
#[pallet::config]
@@ -148,7 +148,6 @@ pub mod pallet {
const RANK_COUNT: usize = 9;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
#[pallet::config]
-1
View File
@@ -217,7 +217,6 @@ pub mod pallet {
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>(_);
@@ -187,7 +187,6 @@ pub mod pallet {
const STORAGE_VERSION: StorageVersion = StorageVersion::new(4);
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
#[pallet::without_storage_info]
pub struct Pallet<T>(PhantomData<T>);
@@ -379,7 +379,6 @@ pub mod pallet {
// Simple declaration of the `Pallet` type. It is placeholder we use to implement traits and
// method.
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
// Pallet implements [`Hooks`] trait to define some logic to execute in some context.
@@ -158,7 +158,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::hooks]
-1
View File
@@ -706,7 +706,6 @@ mod tests {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::config]
-1
View File
@@ -77,7 +77,6 @@ pub mod pallet {
const STORAGE_VERSION: StorageVersion = StorageVersion::new(4);
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
pub struct Pallet<T>(_);
-1
View File
@@ -152,7 +152,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// Information that is pertinent to identify the entity behind an account.
-1
View File
@@ -313,7 +313,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::config]
-1
View File
@@ -75,7 +75,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(PhantomData<T>);
#[pallet::call]
@@ -17,7 +17,7 @@
//! # DO NOT USE IN PRODUCTION
//!
//! The produced values do not fulfill the cryptographic requirements for random numbers.
//! The produced values do not fulfill the cryptographic requirements for random numbers.
//! Should not be used for high-stake production use-cases.
//!
//! # Randomness Pallet
@@ -51,7 +51,6 @@
//! use frame_system::pallet_prelude::*;
//!
//! #[pallet::pallet]
//! #[pallet::generate_store(pub(super) trait Store)]
//! pub struct Pallet<T>(_);
//!
//! #[pallet::config]
@@ -94,7 +93,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::config]
-1
View File
@@ -123,7 +123,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// The pallet's config trait.
-1
View File
@@ -50,7 +50,6 @@ pub mod pallet {
const STORAGE_VERSION: StorageVersion = StorageVersion::new(4);
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
@@ -121,7 +121,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
/// This pallet's configuration trait
+1 -2
View File
@@ -39,7 +39,7 @@
//! which queue it will be stored. Messages are stored by being appended to the last [`Page`] of a
//! book. Each book keeps track of its pages by indexing `Pages`. The `ReadyRing` contains all
//! queues which hold at least one unprocessed message and are thereby *ready* to be serviced. The
//! `ServiceHead` indicates which *ready* queue is the next to be serviced.
//! `ServiceHead` indicates which *ready* queue is the next to be serviced.
//! The pallet implements [`frame_support::traits::EnqueueMessage`],
//! [`frame_support::traits::ServiceQueues`] and has [`frame_support::traits::ProcessMessage`] and
//! [`OnQueueChanged`] hooks to communicate with the outside world.
@@ -438,7 +438,6 @@ pub mod pallet {
use super::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// The module configuration trait.
-1
View File
@@ -172,7 +172,6 @@ pub mod pallet {
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>(_);
-1
View File
@@ -75,7 +75,6 @@ pub mod pallet {
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 = ()>(PhantomData<(T, I)>);
-1
View File
@@ -114,7 +114,6 @@ pub mod pallet {
StorageMap<_, Twox64Concat, T::AccountId, (BoundedVec<u8, T::MaxLength>, BalanceOf<T>)>;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::call]
-1
View File
@@ -310,7 +310,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// A single bid, an item of a *queue* in `Queues`.
@@ -59,7 +59,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::without_storage_info]
pub struct Pallet<T>(_);
@@ -1214,7 +1214,6 @@ pub mod pallet {
const STORAGE_VERSION: StorageVersion = StorageVersion::new(3);
#[pallet::pallet]
#[pallet::generate_store(pub(crate) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
pub struct Pallet<T>(_);
-1
View File
@@ -49,7 +49,6 @@ pub mod pallet {
use frame_support::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::without_storage_info]
pub struct Pallet<T>(_);
-1
View File
@@ -107,7 +107,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
pub struct Pallet<T>(PhantomData<T>);
-1
View File
@@ -102,7 +102,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// Configuration trait.
@@ -321,7 +321,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
#[pallet::config]
-1
View File
@@ -218,7 +218,6 @@ pub mod pallet {
use sp_runtime::ArithmeticError;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// Configuration trait.
-1
View File
@@ -145,7 +145,6 @@ pub mod pallet {
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 = ()>(_);
-1
View File
@@ -57,7 +57,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::event]
-1
View File
@@ -39,7 +39,6 @@ pub mod pallet {
pub trait Config: frame_system::Config {}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::call]
-1
View File
@@ -155,7 +155,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
#[pallet::config]
-1
View File
@@ -172,7 +172,6 @@ pub mod pallet {
const STORAGE_VERSION: StorageVersion = StorageVersion::new(4);
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
pub struct Pallet<T>(_);
-1
View File
@@ -50,7 +50,6 @@ pub mod logger {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(PhantomData<T>);
#[pallet::hooks]
-1
View File
@@ -135,7 +135,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T, I = ()>(_);
#[pallet::config]
@@ -62,7 +62,6 @@ pub mod pallet {
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>(_);
@@ -97,7 +96,7 @@ impl<T: Config> Pallet<T> {
/// Prune historical stored session roots up to (but not including)
/// `up_to`.
pub fn prune_up_to(up_to: SessionIndex) {
<Self as Store>::StoredRange::mutate(|range| {
StoredRange::<T>::mutate(|range| {
let (start, end) = match *range {
Some(range) => range,
None => return, // nothing to prune.
@@ -109,7 +108,7 @@ impl<T: Config> Pallet<T> {
return // out of bounds. harmless.
}
(start..up_to).for_each(<Self as Store>::HistoricalSessions::remove);
(start..up_to).for_each(HistoricalSessions::<T>::remove);
let new_start = up_to;
*range = if new_start == end {
-1
View File
@@ -371,7 +371,6 @@ pub mod pallet {
const STORAGE_VERSION: StorageVersion = StorageVersion::new(0);
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
#[pallet::without_storage_info]
pub struct Pallet<T>(_);
-1
View File
@@ -371,7 +371,6 @@ pub mod pallet {
use super::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::without_storage_info]
pub struct Pallet<T, I = ()>(_);
+1 -1
View File
@@ -265,7 +265,7 @@ pub mod v10 {
impl<T: Config> OnRuntimeUpgrade for MigrateToV10<T> {
fn on_runtime_upgrade() -> frame_support::weights::Weight {
if StorageVersion::<T>::get() == ObsoleteReleases::V9_0_0 {
let pending_slashes = <Pallet<T> as Store>::UnappliedSlashes::iter().take(512);
let pending_slashes = UnappliedSlashes::<T>::iter().take(512);
for (era, slashes) in pending_slashes {
for slash in slashes {
// in the old slashing scheme, the slash era was the key at which we read
+2 -2
View File
@@ -682,7 +682,7 @@ impl<T: Config> Pallet<T> {
/// Apply previously-unapplied slashes on the beginning of a new era, after a delay.
fn apply_unapplied_slashes(active_era: EraIndex) {
let era_slashes = <Self as Store>::UnappliedSlashes::take(&active_era);
let era_slashes = UnappliedSlashes::<T>::take(&active_era);
log!(
debug,
"found {} slashes scheduled to be executed in era {:?}",
@@ -1369,7 +1369,7 @@ where
active_era,
slash_era + slash_defer_duration + 1,
);
<Self as Store>::UnappliedSlashes::mutate(
UnappliedSlashes::<T>::mutate(
slash_era.saturating_add(slash_defer_duration).saturating_add(One::one()),
move |for_later| for_later.push(unapplied),
);
+2 -3
View File
@@ -68,7 +68,6 @@ pub mod pallet {
const STORAGE_VERSION: StorageVersion = StorageVersion::new(13);
#[pallet::pallet]
#[pallet::generate_store(pub(crate) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
pub struct Pallet<T>(_);
@@ -1452,7 +1451,7 @@ pub mod pallet {
ensure!(!slash_indices.is_empty(), Error::<T>::EmptyTargets);
ensure!(is_sorted_and_unique(&slash_indices), Error::<T>::NotSortedAndUnique);
let mut unapplied = <Self as Store>::UnappliedSlashes::get(&era);
let mut unapplied = UnappliedSlashes::<T>::get(&era);
let last_item = slash_indices[slash_indices.len() - 1];
ensure!((last_item as usize) < unapplied.len(), Error::<T>::InvalidSlashIndex);
@@ -1461,7 +1460,7 @@ pub mod pallet {
unapplied.remove(index);
}
<Self as Store>::UnappliedSlashes::insert(&era, &unapplied);
UnappliedSlashes::<T>::insert(&era, &unapplied);
Ok(())
}
+20 -21
View File
@@ -50,8 +50,9 @@
//! Based on research at <https://research.web3.foundation/en/latest/polkadot/slashing/npos.html>
use crate::{
BalanceOf, Config, Error, Exposure, NegativeImbalanceOf, Pallet, Perbill, SessionInterface,
Store, UnappliedSlash,
BalanceOf, Config, Error, Exposure, NegativeImbalanceOf, NominatorSlashInEra,
OffendingValidators, Pallet, Perbill, SessionInterface, SpanSlash, UnappliedSlash,
ValidatorSlashInEra,
};
use codec::{Decode, Encode, MaxEncodedLen};
use frame_support::{
@@ -239,14 +240,13 @@ pub(crate) fn compute_slash<T: Config>(
return None
}
let prior_slash_p =
<Pallet<T> as Store>::ValidatorSlashInEra::get(&params.slash_era, params.stash)
.map_or(Zero::zero(), |(prior_slash_proportion, _)| prior_slash_proportion);
let prior_slash_p = ValidatorSlashInEra::<T>::get(&params.slash_era, params.stash)
.map_or(Zero::zero(), |(prior_slash_proportion, _)| prior_slash_proportion);
// compare slash proportions rather than slash values to avoid issues due to rounding
// error.
if params.slash.deconstruct() > prior_slash_p.deconstruct() {
<Pallet<T> as Store>::ValidatorSlashInEra::insert(
ValidatorSlashInEra::<T>::insert(
&params.slash_era,
params.stash,
&(params.slash, own_slash),
@@ -327,7 +327,7 @@ fn kick_out_if_recent<T: Config>(params: SlashParams<T>) {
/// If after adding the validator `OffendingValidatorsThreshold` is reached
/// a new era will be forced.
fn add_offending_validator<T: Config>(stash: &T::AccountId, disable: bool) {
<Pallet<T> as Store>::OffendingValidators::mutate(|offending| {
OffendingValidators::<T>::mutate(|offending| {
let validators = T::SessionInterface::validators();
let validator_index = match validators.iter().position(|i| i == stash) {
Some(index) => index,
@@ -388,10 +388,9 @@ fn slash_nominators<T: Config>(
let own_slash_difference = own_slash_by_validator.saturating_sub(own_slash_prior);
let mut era_slash =
<Pallet<T> as Store>::NominatorSlashInEra::get(&params.slash_era, stash)
.unwrap_or_else(Zero::zero);
NominatorSlashInEra::<T>::get(&params.slash_era, stash).unwrap_or_else(Zero::zero);
era_slash += own_slash_difference;
<Pallet<T> as Store>::NominatorSlashInEra::insert(&params.slash_era, stash, &era_slash);
NominatorSlashInEra::<T>::insert(&params.slash_era, stash, &era_slash);
era_slash
};
@@ -445,9 +444,9 @@ fn fetch_spans<'a, T: Config + 'a>(
slash_of: &'a mut BalanceOf<T>,
reward_proportion: Perbill,
) -> InspectingSpans<'a, T> {
let spans = <Pallet<T> as Store>::SlashingSpans::get(stash).unwrap_or_else(|| {
let spans = crate::SlashingSpans::<T>::get(stash).unwrap_or_else(|| {
let spans = SlashingSpans::new(window_start);
<Pallet<T> as Store>::SlashingSpans::insert(stash, &spans);
crate::SlashingSpans::<T>::insert(stash, &spans);
spans
});
@@ -496,7 +495,7 @@ impl<'a, T: 'a + Config> InspectingSpans<'a, T> {
) -> Option<SpanIndex> {
let target_span = self.era_span(slash_era)?;
let span_slash_key = (self.stash.clone(), target_span.index);
let mut span_record = <Pallet<T> as Store>::SpanSlash::get(&span_slash_key);
let mut span_record = SpanSlash::<T>::get(&span_slash_key);
let mut changed = false;
let reward = if span_record.slashed < slash {
@@ -527,7 +526,7 @@ impl<'a, T: 'a + Config> InspectingSpans<'a, T> {
if changed {
self.dirty = true;
<Pallet<T> as Store>::SpanSlash::insert(&span_slash_key, &span_record);
SpanSlash::<T>::insert(&span_slash_key, &span_record);
}
Some(target_span.index)
@@ -543,20 +542,20 @@ impl<'a, T: 'a + Config> Drop for InspectingSpans<'a, T> {
if let Some((start, end)) = self.spans.prune(self.window_start) {
for span_index in start..end {
<Pallet<T> as Store>::SpanSlash::remove(&(self.stash.clone(), span_index));
SpanSlash::<T>::remove(&(self.stash.clone(), span_index));
}
}
<Pallet<T> as Store>::SlashingSpans::insert(self.stash, &self.spans);
crate::SlashingSpans::<T>::insert(self.stash, &self.spans);
}
}
/// Clear slashing metadata for an obsolete era.
pub(crate) fn clear_era_metadata<T: Config>(obsolete_era: EraIndex) {
#[allow(deprecated)]
<Pallet<T> as Store>::ValidatorSlashInEra::remove_prefix(&obsolete_era, None);
ValidatorSlashInEra::<T>::remove_prefix(&obsolete_era, None);
#[allow(deprecated)]
<Pallet<T> as Store>::NominatorSlashInEra::remove_prefix(&obsolete_era, None);
NominatorSlashInEra::<T>::remove_prefix(&obsolete_era, None);
}
/// Clear slashing metadata for a dead account.
@@ -564,7 +563,7 @@ pub(crate) fn clear_stash_metadata<T: Config>(
stash: &T::AccountId,
num_slashing_spans: u32,
) -> DispatchResult {
let spans = match <Pallet<T> as Store>::SlashingSpans::get(stash) {
let spans = match crate::SlashingSpans::<T>::get(stash) {
None => return Ok(()),
Some(s) => s,
};
@@ -574,7 +573,7 @@ pub(crate) fn clear_stash_metadata<T: Config>(
Error::<T>::IncorrectSlashingSpans
);
<Pallet<T> as Store>::SlashingSpans::remove(stash);
crate::SlashingSpans::<T>::remove(stash);
// kill slashing-span metadata for account.
//
@@ -582,7 +581,7 @@ pub(crate) fn clear_stash_metadata<T: Config>(
// in that case, they may re-bond, but it would count again as span 0. Further ancient
// slashes would slash into this new bond, since metadata has now been cleared.
for span in spans.iter() {
<Pallet<T> as Store>::SpanSlash::remove(&(stash.clone(), span.index));
SpanSlash::<T>::remove(&(stash.clone(), span.index));
}
Ok(())
+22 -22
View File
@@ -512,10 +512,10 @@ fn no_candidate_emergency_condition() {
// initial validators
assert_eq_uvec!(validator_controllers(), vec![10, 20, 30, 40]);
let prefs = ValidatorPrefs { commission: Perbill::one(), ..Default::default() };
<Staking as crate::Store>::Validators::insert(11, prefs.clone());
Validators::<Test>::insert(11, prefs.clone());
// set the minimum validator count.
<Staking as crate::Store>::MinimumValidatorCount::put(10);
MinimumValidatorCount::<Test>::put(10);
// try to chill
let res = Staking::chill(RuntimeOrigin::signed(10));
@@ -536,7 +536,7 @@ fn no_candidate_emergency_condition() {
// changed)
assert_eq_uvec!(validator_controllers(), vec![10, 20, 30, 40]);
// The chill is still pending.
assert!(!<Staking as crate::Store>::Validators::contains_key(11));
assert!(!Validators::<Test>::contains_key(11));
// No new era is created.
assert_eq!(current_era, CurrentEra::<Test>::get());
});
@@ -2432,7 +2432,7 @@ fn slash_in_old_span_does_not_deselect() {
);
// the validator doesn't get chilled again
assert!(<Staking as Store>::Validators::iter().any(|(stash, _)| stash == 11));
assert!(Validators::<Test>::iter().any(|(stash, _)| stash == 11));
// but we are still forcing a new era
assert_eq!(Staking::force_era(), Forcing::ForceNew);
@@ -2449,7 +2449,7 @@ fn slash_in_old_span_does_not_deselect() {
);
// the validator doesn't get chilled again
assert!(<Staking as Store>::Validators::iter().any(|(stash, _)| stash == 11));
assert!(Validators::<Test>::iter().any(|(stash, _)| stash == 11));
// but it's disabled
assert!(is_disabled(10));
@@ -2648,8 +2648,8 @@ fn garbage_collection_after_slashing() {
);
assert_eq!(Balances::free_balance(11), 2000 - 200);
assert!(<Staking as crate::Store>::SlashingSpans::get(&11).is_some());
assert_eq!(<Staking as crate::Store>::SpanSlash::get(&(11, 0)).amount(), &200);
assert!(SlashingSpans::<Test>::get(&11).is_some());
assert_eq!(SpanSlash::<Test>::get(&(11, 0)).amount(), &200);
on_offence_now(
&[OffenceDetails {
@@ -2665,7 +2665,7 @@ fn garbage_collection_after_slashing() {
assert_eq!(Balances::free_balance(11), 2);
assert_eq!(Balances::total_balance(&11), 2);
let slashing_spans = <Staking as crate::Store>::SlashingSpans::get(&11).unwrap();
let slashing_spans = SlashingSpans::<Test>::get(&11).unwrap();
assert_eq!(slashing_spans.iter().count(), 2);
// reap_stash respects num_slashing_spans so that weight is accurate
@@ -2675,8 +2675,8 @@ fn garbage_collection_after_slashing() {
);
assert_ok!(Staking::reap_stash(RuntimeOrigin::signed(20), 11, 2));
assert!(<Staking as crate::Store>::SlashingSpans::get(&11).is_none());
assert_eq!(<Staking as crate::Store>::SpanSlash::get(&(11, 0)).amount(), &0);
assert!(SlashingSpans::<Test>::get(&11).is_none());
assert_eq!(SpanSlash::<Test>::get(&(11, 0)).amount(), &0);
})
}
@@ -2702,19 +2702,19 @@ fn garbage_collection_on_window_pruning() {
assert_eq!(Balances::free_balance(11), 900);
assert_eq!(Balances::free_balance(101), 2000 - (nominated_value / 10));
assert!(<Staking as crate::Store>::ValidatorSlashInEra::get(&now, &11).is_some());
assert!(<Staking as crate::Store>::NominatorSlashInEra::get(&now, &101).is_some());
assert!(ValidatorSlashInEra::<Test>::get(&now, &11).is_some());
assert!(NominatorSlashInEra::<Test>::get(&now, &101).is_some());
// + 1 because we have to exit the bonding window.
for era in (0..(BondingDuration::get() + 1)).map(|offset| offset + now + 1) {
assert!(<Staking as crate::Store>::ValidatorSlashInEra::get(&now, &11).is_some());
assert!(<Staking as crate::Store>::NominatorSlashInEra::get(&now, &101).is_some());
assert!(ValidatorSlashInEra::<Test>::get(&now, &11).is_some());
assert!(NominatorSlashInEra::<Test>::get(&now, &101).is_some());
mock::start_active_era(era);
}
assert!(<Staking as crate::Store>::ValidatorSlashInEra::get(&now, &11).is_none());
assert!(<Staking as crate::Store>::NominatorSlashInEra::get(&now, &101).is_none());
assert!(ValidatorSlashInEra::<Test>::get(&now, &11).is_none());
assert!(NominatorSlashInEra::<Test>::get(&now, &101).is_none());
})
}
@@ -2755,7 +2755,7 @@ fn slashing_nominators_by_span_max() {
slashing::SlashingSpan { index: 0, start: 0, length: Some(4) },
];
let get_span = |account| <Staking as crate::Store>::SlashingSpans::get(&account).unwrap();
let get_span = |account| SlashingSpans::<Test>::get(&account).unwrap();
assert_eq!(get_span(11).iter().collect::<Vec<_>>(), expected_spans);
@@ -2817,7 +2817,7 @@ fn slashes_are_summed_across_spans() {
assert_eq!(Balances::free_balance(21), 2000);
assert_eq!(Staking::slashable_balance_of(&21), 1000);
let get_span = |account| <Staking as crate::Store>::SlashingSpans::get(&account).unwrap();
let get_span = |account| SlashingSpans::<Test>::get(&account).unwrap();
on_offence_now(
&[OffenceDetails {
@@ -3192,7 +3192,7 @@ fn remove_multi_deferred() {
&[Perbill::from_percent(25)],
);
assert_eq!(<Staking as Store>::UnappliedSlashes::get(&4).len(), 5);
assert_eq!(UnappliedSlashes::<Test>::get(&4).len(), 5);
// fails if list is not sorted
assert_noop!(
@@ -3212,7 +3212,7 @@ fn remove_multi_deferred() {
assert_ok!(Staking::cancel_deferred_slash(RuntimeOrigin::root(), 4, vec![0, 2, 4]));
let slashes = <Staking as Store>::UnappliedSlashes::get(&4);
let slashes = UnappliedSlashes::<Test>::get(&4);
assert_eq!(slashes.len(), 2);
assert_eq!(slashes[0].validator, 21);
assert_eq!(slashes[1].validator, 42);
@@ -3267,7 +3267,7 @@ fn slash_kicks_validators_not_nominators_and_disables_nominator_for_kicked_valid
assert_eq!(Balances::free_balance(101), 2000 - nominator_slash_amount_11);
// check that validator was chilled.
assert!(<Staking as Store>::Validators::iter().all(|(stash, _)| stash != 11));
assert!(Validators::<Test>::iter().all(|(stash, _)| stash != 11));
// actually re-bond the slashed validator
assert_ok!(Staking::validate(RuntimeOrigin::signed(10), Default::default()));
@@ -3612,7 +3612,7 @@ fn zero_slash_keeps_nominators() {
assert_eq!(Balances::free_balance(101), 2000);
// 11 is still removed..
assert!(<Staking as Store>::Validators::iter().all(|(stash, _)| stash != 11));
assert!(Validators::<Test>::iter().all(|(stash, _)| stash != 11));
// but their nominations are kept.
assert_eq!(Staking::nominators(101).unwrap().targets, vec![11, 21]);
});
@@ -439,7 +439,6 @@ pub mod pallet {
/// The outer Pallet struct.
#[pallet::pallet]
#[pallet::generate_store(pub(crate) trait Store)]
pub struct Pallet<T>(_);
/// Configurations of this pallet.
-1
View File
@@ -133,7 +133,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(PhantomData<T>);
#[pallet::call]
-1
View File
@@ -39,7 +39,6 @@ pub mod logger {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(PhantomData<T>);
#[pallet::call]
@@ -22,7 +22,7 @@ use syn::spanned::Spanned;
/// * generate Store trait with all storages,
/// * implement Store trait for Pallet.
pub fn expand_store_trait(def: &mut Def) -> proc_macro2::TokenStream {
let (trait_vis, trait_store) =
let (trait_vis, trait_store, attribute_span) =
if let Some(store) = &def.pallet_struct.store { store } else { return Default::default() };
let type_impl_gen = &def.type_impl_generics(trait_store.span());
@@ -36,8 +36,19 @@ pub fn expand_store_trait(def: &mut Def) -> proc_macro2::TokenStream {
let storage_names = &def.storages.iter().map(|storage| &storage.ident).collect::<Vec<_>>();
let storage_cfg_attrs =
&def.storages.iter().map(|storage| &storage.cfg_attrs).collect::<Vec<_>>();
let warnig_struct_name = syn::Ident::new("Store", *attribute_span);
let warning: syn::ItemStruct = syn::parse_quote!(
#[deprecated(note = r"
Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon.
Check https://github.com/paritytech/substrate/pull/13535 for more details.")]
struct #warnig_struct_name;
);
quote::quote_spanned!(trait_store.span() =>
const _:() = {
#warning
const _: Option<#warnig_struct_name> = None;
};
#trait_vis trait #trait_store {
#(
#(#storage_cfg_attrs)*
@@ -38,7 +38,7 @@ pub struct PalletStructDef {
/// The keyword Pallet used (contains span).
pub pallet: keyword::Pallet,
/// Whether the trait `Store` must be generated.
pub store: Option<(syn::Visibility, keyword::Store)>,
pub store: Option<(syn::Visibility, keyword::Store, proc_macro2::Span)>,
/// The span of the pallet::pallet attribute.
pub attr_span: proc_macro2::Span,
/// Whether to specify the storages max encoded len when implementing `StorageInfoTrait`.
@@ -78,13 +78,13 @@ impl syn::parse::Parse for PalletStructAttr {
let lookahead = content.lookahead1();
if lookahead.peek(keyword::generate_store) {
let span = content.parse::<keyword::generate_store>()?.span();
content.parse::<keyword::generate_store>()?;
let generate_content;
syn::parenthesized!(generate_content in content);
let vis = generate_content.parse::<syn::Visibility>()?;
generate_content.parse::<syn::Token![trait]>()?;
let keyword = generate_content.parse::<keyword::Store>()?;
let span = content.span();
Ok(Self::GenerateStore { vis, keyword, span })
} else if lookahead.peek(keyword::without_storage_info) {
let span = content.parse::<keyword::without_storage_info>()?.span();
@@ -123,8 +123,8 @@ impl PalletStructDef {
let struct_attrs: Vec<PalletStructAttr> = helper::take_item_pallet_attrs(&mut item.attrs)?;
for attr in struct_attrs {
match attr {
PalletStructAttr::GenerateStore { vis, keyword, .. } if store.is_none() => {
store = Some((vis, keyword));
PalletStructAttr::GenerateStore { vis, keyword, span } if store.is_none() => {
store = Some((vis, keyword, span));
},
PalletStructAttr::WithoutStorageInfoTrait(span)
if without_storage_info.is_none() =>
@@ -158,7 +158,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(crate) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
pub struct Pallet<T>(_);
@@ -496,7 +495,6 @@ pub mod pallet2 {
}
#[pallet::pallet]
#[pallet::generate_store(pub(crate) trait Store)]
#[pallet::without_storage_info]
pub struct Pallet<T>(_);
@@ -946,15 +944,6 @@ fn validate_unsigned_expand() {
assert_eq!(validity, ValidTransaction::default());
}
#[test]
fn trait_store_expand() {
TestExternalities::default().execute_with(|| {
<pallet::Pallet<Runtime> as pallet::Store>::Value::get();
<pallet::Pallet<Runtime> as pallet::Store>::Map::get(1);
<pallet::Pallet<Runtime> as pallet::Store>::DoubleMap::get(1, 2);
})
}
#[test]
fn pallet_expand_deposit_event() {
TestExternalities::default().execute_with(|| {
@@ -46,7 +46,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(crate) trait Store)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
#[pallet::hooks]
@@ -260,7 +259,6 @@ pub mod pallet2 {
}
#[pallet::pallet]
#[pallet::generate_store(pub(crate) trait Store)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
#[pallet::event]
@@ -0,0 +1,11 @@
#[frame_support::pallet]
mod pallet {
#[pallet::config]
pub trait Config: frame_system::Config {}
#[pallet::pallet]
#[pallet::generate_store(trait Store)]
pub struct Pallet<T>(core::marker::PhantomData<T>);
}
fn main() {}
@@ -0,0 +1,9 @@
error: use of deprecated struct `pallet::_::Store`:
Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon.
Check https://github.com/paritytech/substrate/pull/13535 for more details.
--> tests/pallet_ui/deprecated_store_attr.rs:7:3
|
7 | #[pallet::generate_store(trait Store)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
@@ -8,7 +8,6 @@ mod pallet {
pub trait Config: frame_system::Config {}
#[pallet::pallet]
#[pallet::generate_store(trait Store)]
pub struct Pallet<T>(core::marker::PhantomData<T>);
#[pallet::hooks]
@@ -1,5 +1,5 @@
error: Invalid duplicated attribute
--> $DIR/duplicate_call_attr.rs:23:12
--> $DIR/duplicate_call_attr.rs:22:12
|
23 | #[pallet::call]
22 | #[pallet::call]
| ^^^^
@@ -6,7 +6,6 @@ mod pallet {
pub trait Config: frame_system::Config {}
#[pallet::pallet]
#[pallet::generate_store(trait Store)]
pub struct Pallet<T>(core::marker::PhantomData<T>);
#[pallet::storage]
@@ -1,47 +1,47 @@
error: Duplicate storage prefixes found for `Foo`
--> $DIR/duplicate_storage_prefix.rs:16:29
--> $DIR/duplicate_storage_prefix.rs:15:29
|
16 | #[pallet::storage_prefix = "Foo"]
15 | #[pallet::storage_prefix = "Foo"]
| ^^^^^
error: Duplicate storage prefixes found for `Foo`
--> $DIR/duplicate_storage_prefix.rs:13:7
--> $DIR/duplicate_storage_prefix.rs:12:7
|
13 | type Foo<T> = StorageValue<_, u8>;
12 | type Foo<T> = StorageValue<_, u8>;
| ^^^
error: Duplicate storage prefixes found for `CounterForBar`, used for counter associated to counted storage map
--> $DIR/duplicate_storage_prefix.rs:23:7
--> $DIR/duplicate_storage_prefix.rs:22:7
|
23 | type Bar<T> = CountedStorageMap<_, Twox64Concat, u16, u16>;
22 | type Bar<T> = CountedStorageMap<_, Twox64Concat, u16, u16>;
| ^^^
error: Duplicate storage prefixes found for `CounterForBar`
--> $DIR/duplicate_storage_prefix.rs:20:7
--> $DIR/duplicate_storage_prefix.rs:19:7
|
20 | type CounterForBar<T> = StorageValue<_, u16>;
19 | type CounterForBar<T> = StorageValue<_, u16>;
| ^^^^^^^^^^^^^
error[E0412]: cannot find type `_GeneratedPrefixForStorageFoo` in this scope
--> $DIR/duplicate_storage_prefix.rs:13:7
--> $DIR/duplicate_storage_prefix.rs:12:7
|
13 | type Foo<T> = StorageValue<_, u8>;
12 | type Foo<T> = StorageValue<_, u8>;
| ^^^ not found in this scope
error[E0412]: cannot find type `_GeneratedPrefixForStorageNotFoo` in this scope
--> $DIR/duplicate_storage_prefix.rs:17:7
--> $DIR/duplicate_storage_prefix.rs:16:7
|
17 | type NotFoo<T> = StorageValue<_, u16>;
16 | type NotFoo<T> = StorageValue<_, u16>;
| ^^^^^^ not found in this scope
error[E0412]: cannot find type `_GeneratedPrefixForStorageCounterForBar` in this scope
--> $DIR/duplicate_storage_prefix.rs:20:7
--> $DIR/duplicate_storage_prefix.rs:19:7
|
20 | type CounterForBar<T> = StorageValue<_, u16>;
19 | type CounterForBar<T> = StorageValue<_, u16>;
| ^^^^^^^^^^^^^ not found in this scope
error[E0412]: cannot find type `_GeneratedPrefixForStorageBar` in this scope
--> $DIR/duplicate_storage_prefix.rs:23:7
--> $DIR/duplicate_storage_prefix.rs:22:7
|
23 | type Bar<T> = CountedStorageMap<_, Twox64Concat, u16, u16>;
22 | type Bar<T> = CountedStorageMap<_, Twox64Concat, u16, u16>;
| ^^^ not found in this scope
@@ -1,5 +1,5 @@
error: Unexpected duplicated attribute
--> $DIR/duplicate_store_attr.rs:12:12
--> tests/pallet_ui/duplicate_store_attr.rs:12:3
|
12 | #[pallet::generate_store(trait Store)]
| ^^^^^^^^^^^^^^
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -1,5 +1,15 @@
error: use of deprecated struct `pallet::_::Store`:
Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon.
Check https://github.com/paritytech/substrate/pull/13535 for more details.
--> tests/pallet_ui/store_trait_leak_private.rs:11:3
|
11 | #[pallet::generate_store(pub trait Store)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
error[E0446]: private type `_GeneratedPrefixForStorageFoo<T>` in public interface
--> $DIR/store_trait_leak_private.rs:11:37
--> tests/pallet_ui/store_trait_leak_private.rs:11:37
|
11 | #[pallet::generate_store(pub trait Store)]
| ^^^^^ can't leak private type
-1
View File
@@ -29,7 +29,6 @@ mod module {
use frame_support::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::config]
-1
View File
@@ -357,7 +357,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub (super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::hooks]
-1
View File
@@ -151,7 +151,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(PhantomData<T>);
/// Current time for the current block.
-1
View File
@@ -121,7 +121,6 @@ pub mod pallet {
const STORAGE_VERSION: StorageVersion = StorageVersion::new(4);
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
#[pallet::without_storage_info]
pub struct Pallet<T, I = ()>(_);
@@ -124,7 +124,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::event]
@@ -295,7 +295,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::config]
@@ -141,7 +141,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::hooks]
-1
View File
@@ -140,7 +140,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
#[pallet::config]
-1
View File
@@ -71,7 +71,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T, I = ()>(_);
#[cfg(feature = "runtime-benchmarks")]
-1
View File
@@ -76,7 +76,6 @@ pub mod pallet {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// Configuration trait.
-1
View File
@@ -96,7 +96,6 @@ mod mock_democracy {
use frame_system::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::config]
-1
View File
@@ -211,7 +211,6 @@ pub mod pallet {
pub(crate) type StorageVersion<T: Config> = StorageValue<_, Releases, ValueQuery>;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::genesis_config]
-1
View File
@@ -88,7 +88,6 @@ pub mod pallet {
}
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::event]
@@ -47,7 +47,6 @@ mod pallet {
use frame_support::pallet_prelude::*;
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::without_storage_info]
pub struct Pallet<T>(PhantomData<T>);
@@ -94,7 +94,6 @@ use sp_storage::{StorageData, StorageKey};
/// use frame_support::pallet_prelude::*;
///
/// #[pallet::pallet]
/// #[pallet::generate_store(pub(super) trait Store)]
/// pub struct Pallet<T>(PhantomData<T>);
///
/// #[pallet::config]