mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 17:01:09 +00:00
Removed pallet::getter usage from Beefy and MMR pallets (#3740)
Part of #3326 cc @kianenigma @ggwpez @liamaharon polkadot address: 12poSUQPtcF1HUPQGY3zZu2P8emuW9YnsPduA4XG3oCEfJVp --------- Signed-off-by: Matteo Muraca <mmuraca247@gmail.com>
This commit is contained in:
@@ -190,7 +190,7 @@ where
|
||||
evidence: EquivocationEvidenceFor<T>,
|
||||
) -> Result<(), DispatchError> {
|
||||
let (equivocation_proof, key_owner_proof) = evidence;
|
||||
let reporter = reporter.or_else(|| <pallet_authorship::Pallet<T>>::author());
|
||||
let reporter = reporter.or_else(|| pallet_authorship::Pallet::<T>::author());
|
||||
let offender = equivocation_proof.offender_id().clone();
|
||||
|
||||
// We check the equivocation within the context of its set id (and
|
||||
|
||||
@@ -120,20 +120,17 @@ pub mod pallet {
|
||||
|
||||
/// The current authorities set
|
||||
#[pallet::storage]
|
||||
#[pallet::getter(fn authorities)]
|
||||
pub(super) type Authorities<T: Config> =
|
||||
pub type Authorities<T: Config> =
|
||||
StorageValue<_, BoundedVec<T::BeefyId, T::MaxAuthorities>, ValueQuery>;
|
||||
|
||||
/// The current validator set id
|
||||
#[pallet::storage]
|
||||
#[pallet::getter(fn validator_set_id)]
|
||||
pub(super) type ValidatorSetId<T: Config> =
|
||||
pub type ValidatorSetId<T: Config> =
|
||||
StorageValue<_, sp_consensus_beefy::ValidatorSetId, ValueQuery>;
|
||||
|
||||
/// Authorities set scheduled to be used with the next session
|
||||
#[pallet::storage]
|
||||
#[pallet::getter(fn next_authorities)]
|
||||
pub(super) type NextAuthorities<T: Config> =
|
||||
pub type NextAuthorities<T: Config> =
|
||||
StorageValue<_, BoundedVec<T::BeefyId, T::MaxAuthorities>, ValueQuery>;
|
||||
|
||||
/// A mapping from BEEFY set ID to the index of the *most recent* session for which its
|
||||
@@ -147,17 +144,14 @@ pub mod pallet {
|
||||
///
|
||||
/// TWOX-NOTE: `ValidatorSetId` is not under user control.
|
||||
#[pallet::storage]
|
||||
#[pallet::getter(fn session_for_set)]
|
||||
pub(super) type SetIdSession<T: Config> =
|
||||
pub type SetIdSession<T: Config> =
|
||||
StorageMap<_, Twox64Concat, sp_consensus_beefy::ValidatorSetId, SessionIndex>;
|
||||
|
||||
/// Block number where BEEFY consensus is enabled/started.
|
||||
/// By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively
|
||||
/// restarted from the newly set block number.
|
||||
#[pallet::storage]
|
||||
#[pallet::getter(fn genesis_block)]
|
||||
pub(super) type GenesisBlock<T: Config> =
|
||||
StorageValue<_, Option<BlockNumberFor<T>>, ValueQuery>;
|
||||
pub type GenesisBlock<T: Config> = StorageValue<_, Option<BlockNumberFor<T>>, ValueQuery>;
|
||||
|
||||
#[pallet::genesis_config]
|
||||
pub struct GenesisConfig<T: Config> {
|
||||
@@ -186,7 +180,7 @@ pub mod pallet {
|
||||
// we panic here as runtime maintainers can simply reconfigure genesis and restart
|
||||
// the chain easily
|
||||
.expect("Authorities vec too big");
|
||||
<GenesisBlock<T>>::put(&self.genesis_block);
|
||||
GenesisBlock::<T>::put(&self.genesis_block);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -303,8 +297,8 @@ pub mod pallet {
|
||||
impl<T: Config> Pallet<T> {
|
||||
/// Return the current active BEEFY validator set.
|
||||
pub fn validator_set() -> Option<ValidatorSet<T::BeefyId>> {
|
||||
let validators: BoundedVec<T::BeefyId, T::MaxAuthorities> = Self::authorities();
|
||||
let id: sp_consensus_beefy::ValidatorSetId = Self::validator_set_id();
|
||||
let validators: BoundedVec<T::BeefyId, T::MaxAuthorities> = Authorities::<T>::get();
|
||||
let id: sp_consensus_beefy::ValidatorSetId = ValidatorSetId::<T>::get();
|
||||
ValidatorSet::<T::BeefyId>::new(validators, id)
|
||||
}
|
||||
|
||||
@@ -326,19 +320,19 @@ impl<T: Config> Pallet<T> {
|
||||
new: BoundedVec<T::BeefyId, T::MaxAuthorities>,
|
||||
queued: BoundedVec<T::BeefyId, T::MaxAuthorities>,
|
||||
) {
|
||||
<Authorities<T>>::put(&new);
|
||||
Authorities::<T>::put(&new);
|
||||
|
||||
let new_id = Self::validator_set_id() + 1u64;
|
||||
<ValidatorSetId<T>>::put(new_id);
|
||||
let new_id = ValidatorSetId::<T>::get() + 1u64;
|
||||
ValidatorSetId::<T>::put(new_id);
|
||||
|
||||
<NextAuthorities<T>>::put(&queued);
|
||||
NextAuthorities::<T>::put(&queued);
|
||||
|
||||
if let Some(validator_set) = ValidatorSet::<T::BeefyId>::new(new, new_id) {
|
||||
let log = DigestItem::Consensus(
|
||||
BEEFY_ENGINE_ID,
|
||||
ConsensusLog::AuthoritiesChange(validator_set.clone()).encode(),
|
||||
);
|
||||
<frame_system::Pallet<T>>::deposit_log(log);
|
||||
frame_system::Pallet::<T>::deposit_log(log);
|
||||
|
||||
let next_id = new_id + 1;
|
||||
if let Some(next_validator_set) = ValidatorSet::<T::BeefyId>::new(queued, next_id) {
|
||||
@@ -355,7 +349,7 @@ impl<T: Config> Pallet<T> {
|
||||
return Ok(())
|
||||
}
|
||||
|
||||
if !<Authorities<T>>::get().is_empty() {
|
||||
if !Authorities::<T>::get().is_empty() {
|
||||
return Err(())
|
||||
}
|
||||
|
||||
@@ -364,10 +358,10 @@ impl<T: Config> Pallet<T> {
|
||||
.map_err(|_| ())?;
|
||||
|
||||
let id = GENESIS_AUTHORITY_SET_ID;
|
||||
<Authorities<T>>::put(bounded_authorities);
|
||||
<ValidatorSetId<T>>::put(id);
|
||||
Authorities::<T>::put(bounded_authorities);
|
||||
ValidatorSetId::<T>::put(id);
|
||||
// Like `pallet_session`, initialize the next validator set as well.
|
||||
<NextAuthorities<T>>::put(bounded_authorities);
|
||||
NextAuthorities::<T>::put(bounded_authorities);
|
||||
|
||||
if let Some(validator_set) = ValidatorSet::<T::BeefyId>::new(authorities.clone(), id) {
|
||||
let next_id = id + 1;
|
||||
@@ -442,9 +436,9 @@ where
|
||||
// We want to have at least one BEEFY mandatory block per session.
|
||||
Self::change_authorities(bounded_next_authorities, bounded_next_queued_authorities);
|
||||
|
||||
let validator_set_id = Self::validator_set_id();
|
||||
let validator_set_id = ValidatorSetId::<T>::get();
|
||||
// Update the mapping for the new set id that corresponds to the latest session (i.e. now).
|
||||
let session_index = <pallet_session::Pallet<T>>::current_index();
|
||||
let session_index = pallet_session::Pallet::<T>::current_index();
|
||||
SetIdSession::<T>::insert(validator_set_id, &session_index);
|
||||
// Prune old entry if limit reached.
|
||||
let max_set_id_session_entries = T::MaxSetIdSessionEntries::get().max(1);
|
||||
@@ -459,13 +453,13 @@ where
|
||||
ConsensusLog::<T::BeefyId>::OnDisabled(i as AuthorityIndex).encode(),
|
||||
);
|
||||
|
||||
<frame_system::Pallet<T>>::deposit_log(log);
|
||||
frame_system::Pallet::<T>::deposit_log(log);
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Config> IsMember<T::BeefyId> for Pallet<T> {
|
||||
fn is_member(authority_id: &T::BeefyId) -> bool {
|
||||
Self::authorities().iter().any(|id| id == authority_id)
|
||||
Authorities::<T>::get().iter().any(|id| id == authority_id)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ use sp_consensus_beefy::{
|
||||
};
|
||||
use sp_runtime::DigestItem;
|
||||
|
||||
use crate::{mock::*, Call, Config, Error, Weight, WeightInfo};
|
||||
use crate::{self as beefy, mock::*, Call, Config, Error, Weight, WeightInfo};
|
||||
|
||||
fn init_block(block: u64) {
|
||||
System::set_block_number(block);
|
||||
@@ -48,15 +48,15 @@ fn genesis_session_initializes_authorities() {
|
||||
let want = authorities.clone();
|
||||
|
||||
new_test_ext_raw_authorities(authorities).execute_with(|| {
|
||||
let authorities = Beefy::authorities();
|
||||
let authorities = beefy::Authorities::<Test>::get();
|
||||
|
||||
assert_eq!(authorities.len(), 4);
|
||||
assert_eq!(want[0], authorities[0]);
|
||||
assert_eq!(want[1], authorities[1]);
|
||||
|
||||
assert!(Beefy::validator_set_id() == 0);
|
||||
assert!(beefy::ValidatorSetId::<Test>::get() == 0);
|
||||
|
||||
let next_authorities = Beefy::next_authorities();
|
||||
let next_authorities = beefy::NextAuthorities::<Test>::get();
|
||||
|
||||
assert_eq!(next_authorities.len(), 4);
|
||||
assert_eq!(want[0], next_authorities[0]);
|
||||
@@ -70,11 +70,11 @@ fn session_change_updates_authorities() {
|
||||
let want_validators = authorities.clone();
|
||||
|
||||
new_test_ext(vec![1, 2, 3, 4]).execute_with(|| {
|
||||
assert!(0 == Beefy::validator_set_id());
|
||||
assert!(0 == beefy::ValidatorSetId::<Test>::get());
|
||||
|
||||
init_block(1);
|
||||
|
||||
assert!(1 == Beefy::validator_set_id());
|
||||
assert!(1 == beefy::ValidatorSetId::<Test>::get());
|
||||
|
||||
let want = beefy_log(ConsensusLog::AuthoritiesChange(
|
||||
ValidatorSet::new(want_validators, 1).unwrap(),
|
||||
@@ -85,7 +85,7 @@ fn session_change_updates_authorities() {
|
||||
|
||||
init_block(2);
|
||||
|
||||
assert!(2 == Beefy::validator_set_id());
|
||||
assert!(2 == beefy::ValidatorSetId::<Test>::get());
|
||||
|
||||
let want = beefy_log(ConsensusLog::AuthoritiesChange(
|
||||
ValidatorSet::new(vec![mock_beefy_id(2), mock_beefy_id(4)], 2).unwrap(),
|
||||
@@ -101,7 +101,7 @@ fn session_change_updates_next_authorities() {
|
||||
let want = vec![mock_beefy_id(1), mock_beefy_id(2), mock_beefy_id(3), mock_beefy_id(4)];
|
||||
|
||||
new_test_ext(vec![1, 2, 3, 4]).execute_with(|| {
|
||||
let next_authorities = Beefy::next_authorities();
|
||||
let next_authorities = beefy::NextAuthorities::<Test>::get();
|
||||
|
||||
assert_eq!(next_authorities.len(), 4);
|
||||
assert_eq!(want[0], next_authorities[0]);
|
||||
@@ -111,7 +111,7 @@ fn session_change_updates_next_authorities() {
|
||||
|
||||
init_block(1);
|
||||
|
||||
let next_authorities = Beefy::next_authorities();
|
||||
let next_authorities = beefy::NextAuthorities::<Test>::get();
|
||||
|
||||
assert_eq!(next_authorities.len(), 2);
|
||||
assert_eq!(want[1], next_authorities[0]);
|
||||
@@ -177,7 +177,7 @@ fn cleans_up_old_set_id_session_mappings() {
|
||||
// we should have a session id mapping for all the set ids from
|
||||
// `max_set_id_session_entries` eras we have observed
|
||||
for i in 1..=max_set_id_session_entries {
|
||||
assert!(Beefy::session_for_set(i as u64).is_some());
|
||||
assert!(beefy::SetIdSession::<Test>::get(i as u64).is_some());
|
||||
}
|
||||
|
||||
// go through another `max_set_id_session_entries` sessions
|
||||
@@ -185,12 +185,12 @@ fn cleans_up_old_set_id_session_mappings() {
|
||||
|
||||
// we should keep tracking the new mappings for new sessions
|
||||
for i in max_set_id_session_entries + 1..=max_set_id_session_entries * 2 {
|
||||
assert!(Beefy::session_for_set(i as u64).is_some());
|
||||
assert!(beefy::SetIdSession::<Test>::get(i as u64).is_some());
|
||||
}
|
||||
|
||||
// but the old ones should have been pruned by now
|
||||
for i in 1..=max_set_id_session_entries {
|
||||
assert!(Beefy::session_for_set(i as u64).is_none());
|
||||
assert!(beefy::SetIdSession::<Test>::get(i as u64).is_none());
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -804,7 +804,7 @@ fn set_new_genesis_works() {
|
||||
assert_ok!(Beefy::set_new_genesis(RuntimeOrigin::root(), new_genesis_delay,));
|
||||
let expected = System::block_number() + new_genesis_delay;
|
||||
// verify new genesis was set
|
||||
assert_eq!(Beefy::genesis_block(), Some(expected));
|
||||
assert_eq!(beefy::GenesisBlock::<Test>::get(), Some(expected));
|
||||
|
||||
// setting delay < 1 should fail
|
||||
assert_err!(
|
||||
|
||||
Reference in New Issue
Block a user