Skip to content

Commit c797cd1

Browse files
authored
Merge pull request #2235 from opentensor/chore/explicit-admin-window-check
Chore/explicit admin window check
2 parents 8eaa911 + 703e8f9 commit c797cd1

File tree

3 files changed

+23
-32
lines changed

3 files changed

+23
-32
lines changed

pallets/admin-utils/src/lib.rs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,8 @@ pub mod pallet {
259259
netuid: NetUid,
260260
min_difficulty: u64,
261261
) -> DispatchResult {
262-
pallet_subtensor::Pallet::<T>::ensure_root_with_rate_limit(origin, netuid)?;
262+
ensure_root(origin)?;
263+
pallet_subtensor::Pallet::<T>::ensure_admin_window_open(netuid)?;
263264

264265
ensure!(
265266
pallet_subtensor::Pallet::<T>::if_subnet_exist(netuid),
@@ -710,7 +711,8 @@ pub mod pallet {
710711
netuid: NetUid,
711712
target_registrations_per_interval: u16,
712713
) -> DispatchResult {
713-
pallet_subtensor::Pallet::<T>::ensure_root_with_rate_limit(origin, netuid)?;
714+
ensure_root(origin)?;
715+
pallet_subtensor::Pallet::<T>::ensure_admin_window_open(netuid)?;
714716

715717
ensure!(
716718
pallet_subtensor::Pallet::<T>::if_subnet_exist(netuid),
@@ -820,7 +822,8 @@ pub mod pallet {
820822
netuid: NetUid,
821823
difficulty: u64,
822824
) -> DispatchResult {
823-
pallet_subtensor::Pallet::<T>::ensure_root_with_rate_limit(origin, netuid)?;
825+
ensure_root(origin)?;
826+
pallet_subtensor::Pallet::<T>::ensure_admin_window_open(netuid)?;
824827
ensure!(
825828
pallet_subtensor::Pallet::<T>::if_subnet_exist(netuid),
826829
Error::<T>::SubnetDoesNotExist
@@ -842,7 +845,8 @@ pub mod pallet {
842845
netuid: NetUid,
843846
max_allowed_validators: u16,
844847
) -> DispatchResult {
845-
pallet_subtensor::Pallet::<T>::ensure_root_with_rate_limit(origin, netuid)?;
848+
ensure_root(origin)?;
849+
pallet_subtensor::Pallet::<T>::ensure_admin_window_open(netuid)?;
846850
ensure!(
847851
pallet_subtensor::Pallet::<T>::if_subnet_exist(netuid),
848852
Error::<T>::SubnetDoesNotExist
@@ -949,7 +953,8 @@ pub mod pallet {
949953
netuid: NetUid,
950954
max_registrations_per_block: u16,
951955
) -> DispatchResult {
952-
pallet_subtensor::Pallet::<T>::ensure_root_with_rate_limit(origin, netuid)?;
956+
ensure_root(origin)?;
957+
pallet_subtensor::Pallet::<T>::ensure_admin_window_open(netuid)?;
953958

954959
ensure!(
955960
pallet_subtensor::Pallet::<T>::if_subnet_exist(netuid),
@@ -1013,7 +1018,8 @@ pub mod pallet {
10131018
.saturating_add(<T as frame_system::Config>::DbWeight::get().reads(3_u64))
10141019
.saturating_add(<T as frame_system::Config>::DbWeight::get().writes(1_u64)))]
10151020
pub fn sudo_set_tempo(origin: OriginFor<T>, netuid: NetUid, tempo: u16) -> DispatchResult {
1016-
pallet_subtensor::Pallet::<T>::ensure_root_with_rate_limit(origin, netuid)?;
1021+
ensure_root(origin)?;
1022+
pallet_subtensor::Pallet::<T>::ensure_admin_window_open(netuid)?;
10171023
ensure!(
10181024
pallet_subtensor::Pallet::<T>::if_subnet_exist(netuid),
10191025
Error::<T>::SubnetDoesNotExist
@@ -1929,7 +1935,8 @@ pub mod pallet {
19291935
netuid: NetUid,
19301936
subtoken_enabled: bool,
19311937
) -> DispatchResult {
1932-
pallet_subtensor::Pallet::<T>::ensure_root_with_rate_limit(origin, netuid)?;
1938+
ensure_root(origin)?;
1939+
pallet_subtensor::Pallet::<T>::ensure_admin_window_open(netuid)?;
19331940
pallet_subtensor::SubtokenEnabled::<T>::set(netuid, subtoken_enabled);
19341941

19351942
log::debug!(
@@ -2126,7 +2133,8 @@ pub mod pallet {
21262133
netuid: NetUid,
21272134
min_allowed_uids: u16,
21282135
) -> DispatchResult {
2129-
pallet_subtensor::Pallet::<T>::ensure_root_with_rate_limit(origin, netuid)?;
2136+
ensure_root(origin)?;
2137+
pallet_subtensor::Pallet::<T>::ensure_admin_window_open(netuid)?;
21302138

21312139
ensure!(
21322140
pallet_subtensor::Pallet::<T>::if_subnet_exist(netuid),

pallets/subtensor/src/tests/ensure.rs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,26 +63,20 @@ fn ensure_subnet_owner_or_root_distinguishes_root_and_owner() {
6363
}
6464

6565
#[test]
66-
fn ensure_root_with_rate_limit_blocks_in_freeze_window() {
66+
fn ensure_admin_window_open_blocks_in_freeze_window() {
6767
new_test_ext(1).execute_with(|| {
68-
let netuid = NetUid::from(1);
68+
let netuid = NetUid::from(0);
6969
let tempo = 10;
7070
add_network(netuid, 10, 0);
7171

72-
// Set freeze window to 3
7372
let freeze_window = 3;
7473
crate::Pallet::<Test>::set_admin_freeze_window(freeze_window);
7574

76-
run_to_block((tempo - freeze_window + 1).into());
75+
System::set_block_number((tempo - freeze_window).into());
76+
assert!(crate::Pallet::<Test>::ensure_admin_window_open(netuid).is_err());
7777

78-
// Root is blocked in freeze window
79-
assert!(
80-
crate::Pallet::<Test>::ensure_root_with_rate_limit(
81-
<<Test as Config>::RuntimeOrigin>::root(),
82-
netuid
83-
)
84-
.is_err()
85-
);
78+
System::set_block_number((tempo - freeze_window - 1).into());
79+
assert!(crate::Pallet::<Test>::ensure_admin_window_open(netuid).is_ok());
8680
});
8781
}
8882

pallets/subtensor/src/utils/misc.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
use super::*;
22
use crate::Error;
3-
use crate::system::{
4-
ensure_root, ensure_signed, ensure_signed_or_root, pallet_prelude::BlockNumberFor,
5-
};
3+
use crate::system::{ensure_signed, ensure_signed_or_root, pallet_prelude::BlockNumberFor};
64
use safe_math::*;
75
use sp_core::Get;
86
use sp_core::U256;
@@ -36,15 +34,6 @@ impl<T: Config> Pallet<T> {
3634
}
3735
}
3836

39-
/// Like `ensure_root` but also prohibits calls during the last N blocks of the tempo.
40-
pub fn ensure_root_with_rate_limit(
41-
o: T::RuntimeOrigin,
42-
netuid: NetUid,
43-
) -> Result<(), DispatchError> {
44-
ensure_root(o)?;
45-
Self::ensure_admin_window_open(netuid)
46-
}
47-
4837
/// Ensure owner-or-root with a set of TransactionType rate checks (owner only).
4938
pub fn ensure_sn_owner_or_root_with_limits(
5039
o: T::RuntimeOrigin,

0 commit comments

Comments
 (0)