diff --git a/pallets/admin-utils/src/lib.rs b/pallets/admin-utils/src/lib.rs index de6ac5825b..b95d3ac82c 100644 --- a/pallets/admin-utils/src/lib.rs +++ b/pallets/admin-utils/src/lib.rs @@ -259,7 +259,8 @@ pub mod pallet { netuid: NetUid, min_difficulty: u64, ) -> DispatchResult { - pallet_subtensor::Pallet::::ensure_root_with_rate_limit(origin, netuid)?; + ensure_root(origin)?; + pallet_subtensor::Pallet::::ensure_admin_window_open(netuid)?; ensure!( pallet_subtensor::Pallet::::if_subnet_exist(netuid), @@ -710,7 +711,8 @@ pub mod pallet { netuid: NetUid, target_registrations_per_interval: u16, ) -> DispatchResult { - pallet_subtensor::Pallet::::ensure_root_with_rate_limit(origin, netuid)?; + ensure_root(origin)?; + pallet_subtensor::Pallet::::ensure_admin_window_open(netuid)?; ensure!( pallet_subtensor::Pallet::::if_subnet_exist(netuid), @@ -820,7 +822,8 @@ pub mod pallet { netuid: NetUid, difficulty: u64, ) -> DispatchResult { - pallet_subtensor::Pallet::::ensure_root_with_rate_limit(origin, netuid)?; + ensure_root(origin)?; + pallet_subtensor::Pallet::::ensure_admin_window_open(netuid)?; ensure!( pallet_subtensor::Pallet::::if_subnet_exist(netuid), Error::::SubnetDoesNotExist @@ -842,7 +845,8 @@ pub mod pallet { netuid: NetUid, max_allowed_validators: u16, ) -> DispatchResult { - pallet_subtensor::Pallet::::ensure_root_with_rate_limit(origin, netuid)?; + ensure_root(origin)?; + pallet_subtensor::Pallet::::ensure_admin_window_open(netuid)?; ensure!( pallet_subtensor::Pallet::::if_subnet_exist(netuid), Error::::SubnetDoesNotExist @@ -949,7 +953,8 @@ pub mod pallet { netuid: NetUid, max_registrations_per_block: u16, ) -> DispatchResult { - pallet_subtensor::Pallet::::ensure_root_with_rate_limit(origin, netuid)?; + ensure_root(origin)?; + pallet_subtensor::Pallet::::ensure_admin_window_open(netuid)?; ensure!( pallet_subtensor::Pallet::::if_subnet_exist(netuid), @@ -1013,7 +1018,8 @@ pub mod pallet { .saturating_add(::DbWeight::get().reads(3_u64)) .saturating_add(::DbWeight::get().writes(1_u64)))] pub fn sudo_set_tempo(origin: OriginFor, netuid: NetUid, tempo: u16) -> DispatchResult { - pallet_subtensor::Pallet::::ensure_root_with_rate_limit(origin, netuid)?; + ensure_root(origin)?; + pallet_subtensor::Pallet::::ensure_admin_window_open(netuid)?; ensure!( pallet_subtensor::Pallet::::if_subnet_exist(netuid), Error::::SubnetDoesNotExist @@ -1929,7 +1935,8 @@ pub mod pallet { netuid: NetUid, subtoken_enabled: bool, ) -> DispatchResult { - pallet_subtensor::Pallet::::ensure_root_with_rate_limit(origin, netuid)?; + ensure_root(origin)?; + pallet_subtensor::Pallet::::ensure_admin_window_open(netuid)?; pallet_subtensor::SubtokenEnabled::::set(netuid, subtoken_enabled); log::debug!( @@ -2126,7 +2133,8 @@ pub mod pallet { netuid: NetUid, min_allowed_uids: u16, ) -> DispatchResult { - pallet_subtensor::Pallet::::ensure_root_with_rate_limit(origin, netuid)?; + ensure_root(origin)?; + pallet_subtensor::Pallet::::ensure_admin_window_open(netuid)?; ensure!( pallet_subtensor::Pallet::::if_subnet_exist(netuid), diff --git a/pallets/subtensor/src/tests/ensure.rs b/pallets/subtensor/src/tests/ensure.rs index 3b4db87f4e..1253285306 100644 --- a/pallets/subtensor/src/tests/ensure.rs +++ b/pallets/subtensor/src/tests/ensure.rs @@ -63,26 +63,20 @@ fn ensure_subnet_owner_or_root_distinguishes_root_and_owner() { } #[test] -fn ensure_root_with_rate_limit_blocks_in_freeze_window() { +fn ensure_admin_window_open_blocks_in_freeze_window() { new_test_ext(1).execute_with(|| { - let netuid = NetUid::from(1); + let netuid = NetUid::from(0); let tempo = 10; add_network(netuid, 10, 0); - // Set freeze window to 3 let freeze_window = 3; crate::Pallet::::set_admin_freeze_window(freeze_window); - run_to_block((tempo - freeze_window + 1).into()); + System::set_block_number((tempo - freeze_window).into()); + assert!(crate::Pallet::::ensure_admin_window_open(netuid).is_err()); - // Root is blocked in freeze window - assert!( - crate::Pallet::::ensure_root_with_rate_limit( - <::RuntimeOrigin>::root(), - netuid - ) - .is_err() - ); + System::set_block_number((tempo - freeze_window - 1).into()); + assert!(crate::Pallet::::ensure_admin_window_open(netuid).is_ok()); }); } diff --git a/pallets/subtensor/src/utils/misc.rs b/pallets/subtensor/src/utils/misc.rs index cf2d55d168..70012fd44a 100644 --- a/pallets/subtensor/src/utils/misc.rs +++ b/pallets/subtensor/src/utils/misc.rs @@ -1,8 +1,6 @@ use super::*; use crate::Error; -use crate::system::{ - ensure_root, ensure_signed, ensure_signed_or_root, pallet_prelude::BlockNumberFor, -}; +use crate::system::{ensure_signed, ensure_signed_or_root, pallet_prelude::BlockNumberFor}; use safe_math::*; use sp_core::Get; use sp_core::U256; @@ -36,15 +34,6 @@ impl Pallet { } } - /// Like `ensure_root` but also prohibits calls during the last N blocks of the tempo. - pub fn ensure_root_with_rate_limit( - o: T::RuntimeOrigin, - netuid: NetUid, - ) -> Result<(), DispatchError> { - ensure_root(o)?; - Self::ensure_admin_window_open(netuid) - } - /// Ensure owner-or-root with a set of TransactionType rate checks (owner only). pub fn ensure_sn_owner_or_root_with_limits( o: T::RuntimeOrigin, diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index f10d7c067b..c5c3f35c0a 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -743,9 +743,6 @@ impl InstanceFilter for ProxyType { ProxyType::RootClaim => matches!( c, RuntimeCall::SubtensorModule(pallet_subtensor::Call::claim_root { .. }) - | RuntimeCall::SubtensorModule( - pallet_subtensor::Call::set_root_claim_type { .. } - ) ), } }