From d969e6c353ea1c5001ff518feedf03b27bc5b6f1 Mon Sep 17 00:00:00 2001 From: open-junius Date: Tue, 28 May 2024 20:21:57 +0800 Subject: [PATCH 1/2] add set_target_stakes_per_interval extrinsic --- pallets/admin-utils/src/lib.rs | 19 +++++++++++++++++++ runtime/src/lib.rs | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/pallets/admin-utils/src/lib.rs b/pallets/admin-utils/src/lib.rs index 75264b6c6..da06506db 100644 --- a/pallets/admin-utils/src/lib.rs +++ b/pallets/admin-utils/src/lib.rs @@ -931,6 +931,24 @@ pub mod pallet { log::info!("TxMinDelegateTakeSet( tx_min_delegate_take: {:?} ) ", take); Ok(()) } + + /// The extrinsic sets the target stake per interval. + /// It is only callable by the root account. + /// The extrinsic will call the Subtensor pallet to set target stake per interval. + #[pallet::call_index(47)] + #[pallet::weight((0, DispatchClass::Operational, Pays::No))] + pub fn sudo_set_target_stakes_per_interval( + origin: OriginFor, + target_stakes_per_interval: u64, + ) -> DispatchResult { + ensure_root(origin)?; + T::Subtensor::set_target_stakes_per_interval(target_stakes_per_interval); + log::info!( + "TxTargetStakesPerIntervalSet( set_target_stakes_per_interval: {:?} ) ", + target_stakes_per_interval + ); + Ok(()) + } } } @@ -1023,4 +1041,5 @@ pub trait SubtensorInterface { fn get_nominator_min_required_stake() -> u64; fn set_nominator_min_required_stake(min_stake: u64); fn clear_small_nominations(); + fn set_target_stakes_per_interval(target_stakes_per_interval: u64); } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 8b8d0217a..d5371ad14 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -1130,6 +1130,10 @@ impl fn get_nominator_min_required_stake() -> u64 { SubtensorModule::get_nominator_min_required_stake() } + + fn set_target_stakes_per_interval(target_stakes_per_interval: u64) { + SubtensorModule::set_target_stakes_per_interval(target_stakes_per_interval) + } } impl pallet_admin_utils::Config for Runtime { From cf8be173be5563baaee3e6b5f40080cbdc15a5ae Mon Sep 17 00:00:00 2001 From: open-junius Date: Tue, 28 May 2024 20:55:28 +0800 Subject: [PATCH 2/2] add it in mock file --- pallets/admin-utils/tests/mock.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pallets/admin-utils/tests/mock.rs b/pallets/admin-utils/tests/mock.rs index 9a8cd818c..0df2da99e 100644 --- a/pallets/admin-utils/tests/mock.rs +++ b/pallets/admin-utils/tests/mock.rs @@ -450,6 +450,10 @@ impl pallet_admin_utils::SubtensorInterface f fn clear_small_nominations() { SubtensorModule::clear_small_nominations(); } + + fn set_target_stakes_per_interval(target_stakes_per_interval: u64) { + SubtensorModule::set_target_stakes_per_interval(target_stakes_per_interval); + } } impl pallet_admin_utils::Config for Test {