From 1680c7fea37fbe804171918b9aac639c3b12bde8 Mon Sep 17 00:00:00 2001
From: UnArbosSix
Date: Tue, 28 Jul 2026 12:19:24 -0700
Subject: [PATCH 1/7] make childkey cooldown configurable in tempos
---
eco-tests/src/helpers.rs | 8 ++--
eco-tests/src/tests_mentat_indexer.rs | 4 +-
pallets/admin-utils/src/benchmarking.rs | 10 +++++
pallets/admin-utils/src/lib.rs | 20 +++++++++
pallets/admin-utils/src/tests/mod.rs | 24 +++++++++++
pallets/admin-utils/src/weights.rs | 13 ++++++
pallets/subtensor/src/lib.rs | 21 ++++++++--
pallets/subtensor/src/macros/dispatches.rs | 6 ++-
pallets/subtensor/src/staking/set_children.rs | 9 ++--
pallets/subtensor/src/tests/children.rs | 42 +++++++++----------
pallets/subtensor/src/tests/mock.rs | 8 ++--
pallets/subtensor/src/utils/misc.rs | 5 +++
pallets/subtensor/src/weights.rs | 16 ++++---
runtime/src/lib.rs | 2 +-
runtime/src/proxy_filters/call_groups.rs | 1 +
scripts/localnet_patch.sh | 9 +---
sdk/python/bittensor/_generated/calls.py | 8 +++-
sdk/python/bittensor/_generated/storage.py | 3 +-
sdk/python/codegen/check.py | 1 +
.../00-register-network.test.ts | 4 +-
ts-tests/utils/children.ts | 9 ++++
21 files changed, 162 insertions(+), 61 deletions(-)
diff --git a/eco-tests/src/helpers.rs b/eco-tests/src/helpers.rs
index 1696e33634..16f7ddeaa9 100644
--- a/eco-tests/src/helpers.rs
+++ b/eco-tests/src/helpers.rs
@@ -237,8 +237,9 @@ pub fn setup_neuron_with_stake(netuid: NetUid, hotkey: U256, coldkey: U256, stak
}
pub fn wait_set_pending_children_cooldown(netuid: NetUid) {
- let cooldown = DefaultPendingCooldown::::get();
- step_block(cooldown as u16); // Wait for cooldown to pass
+ let cooldown = u64::from(SubtensorModule::get_tempo(netuid))
+ .saturating_mul(u64::from(ChildKeyCooldownTempos::::get()));
+ run_to_block(System::block_number().saturating_add(cooldown));
step_epochs(1, netuid); // Run next epoch
}
@@ -276,8 +277,7 @@ pub fn mock_set_children_no_epochs(netuid: NetUid, parent: &U256, child_vec: &[(
let backup_block = SubtensorModule::get_current_block_as_u64();
PendingChildKeys::::insert(netuid, parent, (child_vec, 0));
FirstEmissionBlockNumber::::insert(netuid, 0);
- let cooldown = PendingChildKeyCooldown::::get();
- System::set_block_number(cooldown + 1);
+ System::set_block_number(1);
SubtensorModule::do_set_pending_children(netuid);
System::set_block_number(backup_block);
}
diff --git a/eco-tests/src/tests_mentat_indexer.rs b/eco-tests/src/tests_mentat_indexer.rs
index cbada47961..f9f32dd416 100644
--- a/eco-tests/src/tests_mentat_indexer.rs
+++ b/eco-tests/src/tests_mentat_indexer.rs
@@ -169,9 +169,11 @@ fn indexer_root_claim_type() {
}
#[test]
-fn indexer_pending_childkey_cooldown() {
+fn indexer_childkey_cooldown_tempos() {
new_test_ext(1).execute_with(|| {
+ #[allow(deprecated)]
let _: u64 = PendingChildKeyCooldown::::get();
+ let _: u16 = ChildKeyCooldownTempos::::get();
});
}
diff --git a/pallets/admin-utils/src/benchmarking.rs b/pallets/admin-utils/src/benchmarking.rs
index 8832654a75..58f466e1b1 100644
--- a/pallets/admin-utils/src/benchmarking.rs
+++ b/pallets/admin-utils/src/benchmarking.rs
@@ -884,6 +884,16 @@ mod benchmarks {
_(RawOrigin::Root, u64::MAX);
}
+ #[benchmark]
+ fn sudo_set_childkey_cooldown_tempos() {
+ let tempos = 2u16;
+
+ #[extrinsic_call]
+ _(RawOrigin::Root, tempos);
+
+ assert_eq!(pallet_subtensor::ChildKeyCooldownTempos::::get(), tempos);
+ }
+
#[benchmark]
fn sudo_set_burn_half_life() {
let netuid = NetUid::from(1);
diff --git a/pallets/admin-utils/src/lib.rs b/pallets/admin-utils/src/lib.rs
index 25877b7820..4e0d2f6ac8 100644
--- a/pallets/admin-utils/src/lib.rs
+++ b/pallets/admin-utils/src/lib.rs
@@ -96,6 +96,11 @@ pub mod pallet {
/// Indicates if the Bonds Reset was enabled or disabled.
enabled: bool,
},
+ /// Event emitted when the childkey activation cooldown is set.
+ ChildKeyCooldownTemposSet {
+ /// The new cooldown, measured in subnet tempos.
+ tempos: u16,
+ },
/// Event emitted when the burn half-life parameter is set for a subnet.
BurnHalfLifeSet {
/// The network identifier.
@@ -2413,6 +2418,21 @@ pub mod pallet {
Ok(())
}
+
+ /// Sets the childkey activation cooldown as a number of subnet tempos.
+ /// Only callable by root.
+ #[pallet::call_index(102)]
+ #[pallet::weight(::WeightInfo::sudo_set_childkey_cooldown_tempos())]
+ pub fn sudo_set_childkey_cooldown_tempos(
+ origin: OriginFor,
+ tempos: u16,
+ ) -> DispatchResult {
+ ensure_root(origin)?;
+ pallet_subtensor::Pallet::::set_childkey_cooldown_tempos(tempos);
+ Self::deposit_event(Event::ChildKeyCooldownTemposSet { tempos });
+ log::debug!("ChildKeyCooldownTemposSet( tempos: {tempos:?} ) ");
+ Ok(())
+ }
}
}
diff --git a/pallets/admin-utils/src/tests/mod.rs b/pallets/admin-utils/src/tests/mod.rs
index a0bf21ed04..0efc209dce 100644
--- a/pallets/admin-utils/src/tests/mod.rs
+++ b/pallets/admin-utils/src/tests/mod.rs
@@ -3383,3 +3383,27 @@ fn test_sudo_set_start_call_delay_permissions_and_zero_delay() {
);
});
}
+
+#[test]
+fn test_sudo_set_childkey_cooldown_tempos() {
+ new_test_ext().execute_with(|| {
+ assert_eq!(pallet_subtensor::ChildKeyCooldownTempos::::get(), 2);
+
+ assert_noop!(
+ AdminUtils::sudo_set_childkey_cooldown_tempos(
+ <::RuntimeOrigin>::signed(U256::from(1)),
+ 3,
+ ),
+ DispatchError::BadOrigin
+ );
+
+ assert_ok!(AdminUtils::sudo_set_childkey_cooldown_tempos(
+ <::RuntimeOrigin>::root(),
+ 3,
+ ));
+ assert_eq!(pallet_subtensor::ChildKeyCooldownTempos::::get(), 3);
+ frame_system::Pallet::::assert_last_event(RuntimeEvent::AdminUtils(
+ crate::Event::ChildKeyCooldownTemposSet { tempos: 3 },
+ ));
+ });
+}
diff --git a/pallets/admin-utils/src/weights.rs b/pallets/admin-utils/src/weights.rs
index 28e4a61c13..8c62003c3e 100644
--- a/pallets/admin-utils/src/weights.rs
+++ b/pallets/admin-utils/src/weights.rs
@@ -116,6 +116,7 @@ pub trait WeightInfo {
fn sudo_set_net_tao_flow_enabled() -> Weight;
fn sudo_set_max_mechanism_count() -> Weight;
fn sudo_set_start_call_delay() -> Weight;
+ fn sudo_set_childkey_cooldown_tempos() -> Weight;
fn sudo_set_burn_half_life() -> Weight;
fn sudo_set_burn_increase_mult() -> Weight;
fn sudo_set_owner_cut_enabled() -> Weight;
@@ -1039,6 +1040,12 @@ impl WeightInfo for SubstrateWeight {
Weight::from_parts(5_831_000, 0)
.saturating_add(T::DbWeight::get().writes(1_u64))
}
+ /// Storage: `SubtensorModule::ChildKeyCooldownTempos` (r:0 w:1)
+ /// Proof: `SubtensorModule::ChildKeyCooldownTempos` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+ fn sudo_set_childkey_cooldown_tempos() -> Weight {
+ Weight::from_parts(5_731_000, 0)
+ .saturating_add(T::DbWeight::get().writes(1_u64))
+ }
/// Storage: `SubtensorModule::Tempo` (r:1 w:0)
/// Proof: `SubtensorModule::Tempo` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `SubtensorModule::PendingEpochAt` (r:1 w:0)
@@ -2412,6 +2419,12 @@ impl WeightInfo for () {
Weight::from_parts(5_831_000, 0)
.saturating_add(RocksDbWeight::get().writes(1_u64))
}
+ /// Storage: `SubtensorModule::ChildKeyCooldownTempos` (r:0 w:1)
+ /// Proof: `SubtensorModule::ChildKeyCooldownTempos` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+ fn sudo_set_childkey_cooldown_tempos() -> Weight {
+ Weight::from_parts(5_731_000, 0)
+ .saturating_add(RocksDbWeight::get().writes(1_u64))
+ }
/// Storage: `SubtensorModule::Tempo` (r:1 w:0)
/// Proof: `SubtensorModule::Tempo` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `SubtensorModule::PendingEpochAt` (r:1 w:0)
diff --git a/pallets/subtensor/src/lib.rs b/pallets/subtensor/src/lib.rs
index 3cf4318e9d..4d3ec3809a 100644
--- a/pallets/subtensor/src/lib.rs
+++ b/pallets/subtensor/src/lib.rs
@@ -1111,12 +1111,18 @@ pub mod pallet {
T::InitialColdkeySwapReannouncementDelay::get()
}
- /// Default value for applying pending items (e.g. childkeys).
+ /// Deprecated block-based default for applying pending childkeys.
#[pallet::type_value]
pub fn DefaultPendingCooldown() -> u64 {
prod_or_fast!(7_200, 15)
}
+ /// Default childkey cooldown, measured in subnet tempos.
+ #[pallet::type_value]
+ pub fn DefaultChildKeyCooldownTempos() -> u16 {
+ 2
+ }
+
/// Default minimum stake.
#[pallet::type_value]
pub fn DefaultMinStake() -> TaoBalance {
@@ -2979,18 +2985,25 @@ pub mod pallet {
#[pallet::storage]
pub type HasMigrationRun = StorageMap<_, Identity, Vec, bool, ValueQuery>;
- /// Default value for pending childkey cooldown (settable by root).
- /// Uses the same value as DefaultPendingCooldown for consistency.
+ /// Deprecated block-based pending childkey cooldown default.
+ ///
+ /// Use [`DefaultChildKeyCooldownTempos`] instead.
#[pallet::type_value]
pub fn DefaultPendingChildKeyCooldown() -> u64 {
DefaultPendingCooldown::::get()
}
- /// Storage value for pending childkey cooldown, settable by root.
+ /// Deprecated block-based childkey cooldown retained for storage compatibility.
+ #[deprecated(note = "Use `ChildKeyCooldownTempos` instead")]
#[pallet::storage]
pub type PendingChildKeyCooldown =
StorageValue<_, u64, ValueQuery, DefaultPendingChildKeyCooldown>;
+ /// Number of subnet tempos before a pending childkey update can be applied.
+ #[pallet::storage]
+ pub type ChildKeyCooldownTempos =
+ StorageValue<_, u16, ValueQuery, DefaultChildKeyCooldownTempos>;
+
#[pallet::genesis_config]
pub struct GenesisConfig {
/// Stakes record in genesis.
diff --git a/pallets/subtensor/src/macros/dispatches.rs b/pallets/subtensor/src/macros/dispatches.rs
index 4c190a7497..8a1cb0ab43 100644
--- a/pallets/subtensor/src/macros/dispatches.rs
+++ b/pallets/subtensor/src/macros/dispatches.rs
@@ -1630,7 +1630,10 @@ mod dispatches {
Self::do_burn_alpha(origin, hotkey, amount, netuid).map(|_| ())
}
- /// Sets the pending childkey cooldown (in blocks). Root only.
+ /// Deprecated block-based setting retained for call-index and storage compatibility.
+ /// This setting no longer controls childkey activation.
+ /// Use `AdminUtils::sudo_set_childkey_cooldown_tempos` instead.
+ #[deprecated(note = "Use `AdminUtils::sudo_set_childkey_cooldown_tempos` instead")]
#[pallet::call_index(109)]
#[pallet::weight(::WeightInfo::set_pending_childkey_cooldown())]
pub fn set_pending_childkey_cooldown(
@@ -1638,6 +1641,7 @@ mod dispatches {
cooldown: u64,
) -> DispatchResult {
ensure_root(origin)?;
+ #[allow(deprecated)]
PendingChildKeyCooldown::::put(cooldown);
Ok(())
}
diff --git a/pallets/subtensor/src/staking/set_children.rs b/pallets/subtensor/src/staking/set_children.rs
index 2c516eda5d..16f99a5379 100644
--- a/pallets/subtensor/src/staking/set_children.rs
+++ b/pallets/subtensor/src/staking/set_children.rs
@@ -558,9 +558,10 @@ impl Pallet {
return Ok(());
}
- // Calculate cool-down block
- let cooldown_block =
- Self::get_current_block_as_u64().saturating_add(PendingChildKeyCooldown::::get());
+ // Calculate the cooldown from this subnet's tempo.
+ let cooldown = u64::from(Self::get_tempo(netuid))
+ .saturating_mul(u64::from(ChildKeyCooldownTempos::::get()));
+ let cooldown_block = Self::get_current_block_as_u64().saturating_add(cooldown);
// Insert or update PendingChildKeys
PendingChildKeys::::insert(netuid, hotkey.clone(), (children.clone(), cooldown_block));
@@ -604,7 +605,7 @@ impl Pallet {
pub fn do_set_pending_children(netuid: NetUid) {
let current_block = Self::get_current_block_as_u64();
- // If the childkey cools down before the subnet start call + PendingChildKeyCooldown:
+ // If the childkey cools down before the subnet start call + configured cooldown:
// - If Start call happened: Normal track
// - If Start call didn't happen: Apply immediately
// TODO: This check may be removed after all ck are applied after the runtime upgrade
diff --git a/pallets/subtensor/src/tests/children.rs b/pallets/subtensor/src/tests/children.rs
index 703ecb4807..761cf8bce6 100644
--- a/pallets/subtensor/src/tests/children.rs
+++ b/pallets/subtensor/src/tests/children.rs
@@ -4088,8 +4088,6 @@ fn test_dividend_distribution_with_children_same_coldkey_owner() {
#[test]
fn test_pending_cooldown_as_expected() {
let curr_block = 1;
- // TODO: Fix when CHK splitting patched
- // let expected_cooldown = prod_or_fast!(7200, 15);
new_test_ext(curr_block).execute_with(|| {
let coldkey = U256::from(1);
@@ -4099,10 +4097,11 @@ fn test_pending_cooldown_as_expected() {
let netuid = NetUid::from(1);
let proportion1: u64 = 1000;
let proportion2: u64 = 2000;
- let expected_cooldown = PendingChildKeyCooldown::::get();
+ let tempo = 13;
+ let expected_cooldown = u64::from(tempo) * u64::from(ChildKeyCooldownTempos::::get());
// Add network and register hotkey
- add_network(netuid, 13, 0);
+ add_network(netuid, tempo, 0);
register_ok_neuron(netuid, hotkey, coldkey, 0);
// Set multiple children
@@ -4123,6 +4122,19 @@ fn test_pending_cooldown_as_expected() {
});
}
+#[test]
+#[allow(deprecated)]
+fn test_deprecated_pending_childkey_cooldown_is_retained() {
+ new_test_ext(1).execute_with(|| {
+ assert_ok!(SubtensorModule::set_pending_childkey_cooldown(
+ RuntimeOrigin::root(),
+ 1,
+ ));
+
+ assert_eq!(PendingChildKeyCooldown::::get(), 1);
+ });
+}
+
#[test]
fn test_do_set_childkey_take_success() {
new_test_ext(1).execute_with(|| {
@@ -4419,15 +4431,11 @@ fn test_root_children_enable_subnet_owner_set_weights() {
));
// --- Verify do_set_root_validators_for_subnet creates parent-child relationships ---
- assert_ok!(SubtensorModule::set_pending_childkey_cooldown(
- RuntimeOrigin::root(),
- 0,
- ));
-
assert_ok!(SubtensorModule::do_set_root_validators_for_subnet(netuid));
- // Activate pending children (cooldown is 0, advance 1 block)
- step_block(1);
+ // Activate pending children after the two-tempo cooldown.
+ let cooldown_block = PendingChildKeys::::get(netuid, root_val_hotkey_1).1;
+ run_to_block(cooldown_block.saturating_add(1));
SubtensorModule::do_set_pending_children(netuid);
// Each root validator should have the subnet owner hotkey as a child on netuid
@@ -4496,12 +4504,6 @@ fn test_register_network_schedules_root_validators() {
root_stake,
);
- // --- Minimize cooldown so pending children activate quickly ---
- assert_ok!(SubtensorModule::set_pending_childkey_cooldown(
- RuntimeOrigin::root(),
- 0,
- ));
-
// --- Set a high stake threshold ---
let high_threshold = 500_000_000u64;
SubtensorModule::set_stake_threshold(high_threshold);
@@ -4619,12 +4621,6 @@ fn test_register_network_schedules_root_validators_auto_parent_delegation_flag()
root_stake,
);
- // --- Minimize cooldown so pending children activate quickly ---
- assert_ok!(SubtensorModule::set_pending_childkey_cooldown(
- RuntimeOrigin::root(),
- 0,
- ));
-
// --- Set a high stake threshold ---
let high_threshold = 500_000_000u64;
SubtensorModule::set_stake_threshold(high_threshold);
diff --git a/pallets/subtensor/src/tests/mock.rs b/pallets/subtensor/src/tests/mock.rs
index d9ab976293..f9ab48d8fd 100644
--- a/pallets/subtensor/src/tests/mock.rs
+++ b/pallets/subtensor/src/tests/mock.rs
@@ -985,8 +985,9 @@ pub fn setup_neuron_with_stake(netuid: NetUid, hotkey: U256, coldkey: U256, stak
#[allow(dead_code)]
pub fn wait_set_pending_children_cooldown(netuid: NetUid) {
- let cooldown = DefaultPendingCooldown::::get();
- step_block(cooldown as u16); // Wait for cooldown to pass
+ let cooldown = u64::from(SubtensorModule::get_tempo(netuid))
+ .saturating_mul(u64::from(ChildKeyCooldownTempos::::get()));
+ run_to_block(System::block_number().saturating_add(cooldown));
step_epochs(1, netuid); // Run next epoch
}
@@ -1028,8 +1029,7 @@ pub fn mock_set_children_no_epochs(netuid: NetUid, parent: &U256, child_vec: &[(
let backup_block = SubtensorModule::get_current_block_as_u64();
PendingChildKeys::::insert(netuid, parent, (child_vec, 0));
FirstEmissionBlockNumber::::insert(netuid, 0);
- let cooldown = PendingChildKeyCooldown::::get();
- System::set_block_number(cooldown + 1);
+ System::set_block_number(1);
SubtensorModule::do_set_pending_children(netuid);
System::set_block_number(backup_block);
}
diff --git a/pallets/subtensor/src/utils/misc.rs b/pallets/subtensor/src/utils/misc.rs
index cc60a933ea..a4bd8bf44f 100644
--- a/pallets/subtensor/src/utils/misc.rs
+++ b/pallets/subtensor/src/utils/misc.rs
@@ -90,6 +90,11 @@ impl Pallet {
Self::deposit_event(Event::OwnerHyperparamRateLimitSet(epochs));
}
+ /// Set the number of subnet tempos before a pending childkey update can activate.
+ pub fn set_childkey_cooldown_tempos(tempos: u16) {
+ ChildKeyCooldownTempos::::set(tempos);
+ }
+
/// If owner is `Some`, record last-blocks for the provided `TransactionType`s.
pub fn record_owner_rl(
maybe_owner: Option<::AccountId>,
diff --git a/pallets/subtensor/src/weights.rs b/pallets/subtensor/src/weights.rs
index 63bd54336a..77ce7d7e65 100644
--- a/pallets/subtensor/src/weights.rs
+++ b/pallets/subtensor/src/weights.rs
@@ -3484,8 +3484,10 @@ impl WeightInfo for SubstrateWeight {
/// Proof: `SubtensorModule::StakeThreshold` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `SubtensorModule::SubtokenEnabled` (r:1 w:0)
/// Proof: `SubtensorModule::SubtokenEnabled` (`max_values`: None, `max_size`: None, mode: `Measured`)
- /// Storage: `SubtensorModule::PendingChildKeyCooldown` (r:1 w:0)
- /// Proof: `SubtensorModule::PendingChildKeyCooldown` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+ /// Storage: `SubtensorModule::Tempo` (r:1 w:0)
+ /// Proof: `SubtensorModule::Tempo` (`max_values`: None, `max_size`: None, mode: `Measured`)
+ /// Storage: `SubtensorModule::ChildKeyCooldownTempos` (r:1 w:0)
+ /// Proof: `SubtensorModule::ChildKeyCooldownTempos` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `SubtensorModule::PendingChildKeys` (r:0 w:1)
/// Proof: `SubtensorModule::PendingChildKeys` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// The range of component `c` is `[1, 5]`.
@@ -3495,7 +3497,7 @@ impl WeightInfo for SubstrateWeight {
// Estimated: `9951`
// Minimum execution time: 50_000_000 picoseconds.
Weight::from_parts(55_660_572, 9951)
- .saturating_add(T::DbWeight::get().reads(17_u64))
+ .saturating_add(T::DbWeight::get().reads(18_u64))
.saturating_add(T::DbWeight::get().writes(2_u64))
}
fn schedule_swap_coldkey() -> Weight {
@@ -7098,8 +7100,10 @@ impl WeightInfo for () {
/// Proof: `SubtensorModule::StakeThreshold` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `SubtensorModule::SubtokenEnabled` (r:1 w:0)
/// Proof: `SubtensorModule::SubtokenEnabled` (`max_values`: None, `max_size`: None, mode: `Measured`)
- /// Storage: `SubtensorModule::PendingChildKeyCooldown` (r:1 w:0)
- /// Proof: `SubtensorModule::PendingChildKeyCooldown` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+ /// Storage: `SubtensorModule::Tempo` (r:1 w:0)
+ /// Proof: `SubtensorModule::Tempo` (`max_values`: None, `max_size`: None, mode: `Measured`)
+ /// Storage: `SubtensorModule::ChildKeyCooldownTempos` (r:1 w:0)
+ /// Proof: `SubtensorModule::ChildKeyCooldownTempos` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `SubtensorModule::PendingChildKeys` (r:0 w:1)
/// Proof: `SubtensorModule::PendingChildKeys` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// The range of component `c` is `[1, 5]`.
@@ -7109,7 +7113,7 @@ impl WeightInfo for () {
// Estimated: `9951`
// Minimum execution time: 50_000_000 picoseconds.
Weight::from_parts(55_660_572, 9951)
- .saturating_add(RocksDbWeight::get().reads(17_u64))
+ .saturating_add(RocksDbWeight::get().reads(18_u64))
.saturating_add(RocksDbWeight::get().writes(2_u64))
}
fn schedule_swap_coldkey() -> Weight {
diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs
index 95eaca16ee..521906bb58 100644
--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -235,7 +235,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
// `spec_version`, and `authoring_version` are the same between Wasm and native.
// This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use
// the compatible custom types.
- spec_version: 440,
+ spec_version: 441,
impl_version: 1,
apis: RUNTIME_API_VERSIONS,
transaction_version: 1,
diff --git a/runtime/src/proxy_filters/call_groups.rs b/runtime/src/proxy_filters/call_groups.rs
index 213b9be332..4451878c69 100644
--- a/runtime/src/proxy_filters/call_groups.rs
+++ b/runtime/src/proxy_filters/call_groups.rs
@@ -577,6 +577,7 @@ call_filter_group!(
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_ck_burn),
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_admin_freeze_window),
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_owner_hparam_rate_limit),
+ RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_childkey_cooldown_tempos),
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_min_allowed_uids),
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_min_non_immune_uids),
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_tao_flow_cutoff),
diff --git a/scripts/localnet_patch.sh b/scripts/localnet_patch.sh
index 647434ed00..b5508b5b04 100755
--- a/scripts/localnet_patch.sh
+++ b/scripts/localnet_patch.sh
@@ -47,14 +47,7 @@ echo "Applying patches..."
# hardcodes `pub const InitialStartCallDelay: u64 = 0;` which already gives
# local testing an immediate start_call.
-# Patch 2: DefaultPendingCooldown
-patch_file \
- "pallets/subtensor/src/lib.rs" \
- "pub fn DefaultPendingCooldown() -> u64 {" \
- 's|pub fn DefaultPendingCooldown\(\) -> u64 \{\s*prod_or_fast!\(7_200, 15\)\s*\}|pub fn DefaultPendingCooldown() -> u64 {\n prod_or_fast!(15, 15)\n }|g' \
- "Reduce DefaultPendingCooldown for local testing"
-
-# Patch 3: SetChildren rate limit
+# Patch 2: SetChildren rate limit
patch_file \
"pallets/subtensor/src/utils/rate_limiting.rs" \
"Self::SetChildren => 150, // 30 minutes" \
diff --git a/sdk/python/bittensor/_generated/calls.py b/sdk/python/bittensor/_generated/calls.py
index 7a70fa3db2..225abfa0d6 100644
--- a/sdk/python/bittensor/_generated/calls.py
+++ b/sdk/python/bittensor/_generated/calls.py
@@ -467,7 +467,7 @@ def set_min_collateral(netuid: 'NetUid', hotkey: 'AccountId32', min_locked: 'Alp
@staticmethod
def set_pending_childkey_cooldown(cooldown: 'u64') -> Call:
- 'Sets the pending childkey cooldown (in blocks). Root only.'
+ 'Deprecated block-based setting retained for compatibility. It no longer controls childkey activation. Use AdminUtils.sudo_set_childkey_cooldown_tempos instead.'
return Call('SubtensorModule', 'set_pending_childkey_cooldown', {'cooldown': cooldown})
@staticmethod
@@ -1202,6 +1202,11 @@ def sudo_set_start_call_delay(delay: 'u64') -> Call:
'Sets the delay before a subnet can call start'
return Call('AdminUtils', 'sudo_set_start_call_delay', {'delay': delay})
+ @staticmethod
+ def sudo_set_childkey_cooldown_tempos(tempos: 'u16') -> Call:
+ 'Sets the childkey activation cooldown as a number of subnet tempos. Only callable by root.'
+ return Call('AdminUtils', 'sudo_set_childkey_cooldown_tempos', {'tempos': tempos})
+
@staticmethod
def sudo_set_subnet_emission_enabled(netuid: 'NetUid', enabled: 'bool') -> Call:
'Enables or disables subnet pool-side emission for a subnet. This does not remove the subnet from emission share calculation and does not change `alpha_out`, owner cut, root proportion, pending server emission, or pending validator emission. It only zeros the pool-side `alpha_in`, `tao_in`, and `excess_tao` chain-buy paths.'
@@ -1623,4 +1628,3 @@ def set_pallet_status(enabled: 'bool') -> Call:
'Set a status for the limit orders pallet Must be called by root It allows disabling or enabling the pallet true means enabling, false means disabling'
return Call('LimitOrders', 'set_pallet_status', {'enabled': enabled})
-
diff --git a/sdk/python/bittensor/_generated/storage.py b/sdk/python/bittensor/_generated/storage.py
index 5b7807db67..2366bcb132 100644
--- a/sdk/python/bittensor/_generated/storage.py
+++ b/sdk/python/bittensor/_generated/storage.py
@@ -314,7 +314,9 @@ class SubtensorModule:
ColdkeyCollateralHotkeys = Item('SubtensorModule', 'ColdkeyCollateralHotkeys', 'BoundedVec')
AutoParentDelegationEnabled = Item('SubtensorModule', 'AutoParentDelegationEnabled', 'bool')
HasMigrationRun = Item('SubtensorModule', 'HasMigrationRun', 'bool')
+ # Deprecated: use ChildKeyCooldownTempos.
PendingChildKeyCooldown = Item('SubtensorModule', 'PendingChildKeyCooldown', 'u64')
+ ChildKeyCooldownTempos = Item('SubtensorModule', 'ChildKeyCooldownTempos', 'u16')
class Sudo:
Key = Item('Sudo', 'Key', 'AccountId32')
@@ -436,4 +438,3 @@ class LimitOrders:
Orders = Item('LimitOrders', 'Orders', 'OrderStatus')
LimitOrdersEnabled = Item('LimitOrders', 'LimitOrdersEnabled', 'bool')
HasMigrationRun = Item('LimitOrders', 'HasMigrationRun', 'bool')
-
diff --git a/sdk/python/codegen/check.py b/sdk/python/codegen/check.py
index cdf1de5e6b..c19c187a6d 100644
--- a/sdk/python/codegen/check.py
+++ b/sdk/python/codegen/check.py
@@ -224,6 +224,7 @@ def check_drift(endpoint: str) -> int:
"sudo_set_adjustment_interval",
"sudo_set_admin_freeze_window",
"sudo_set_ck_burn",
+ "sudo_set_childkey_cooldown_tempos",
"sudo_set_coldkey_swap_announcement_delay",
"sudo_set_coldkey_swap_reannouncement_delay",
"sudo_set_commit_reveal_version",
diff --git a/ts-tests/suites/zombienet_subnets/00-register-network.test.ts b/ts-tests/suites/zombienet_subnets/00-register-network.test.ts
index 632c91f684..8058af84ef 100644
--- a/ts-tests/suites/zombienet_subnets/00-register-network.test.ts
+++ b/ts-tests/suites/zombienet_subnets/00-register-network.test.ts
@@ -14,7 +14,7 @@ import {
waitForBlocks,
} from "../../utils";
import { sudoSetStakeThreshold } from "../../utils/admin_utils.ts";
-import { getChildren, setAutoParentDelegationEnabled, sudoSetPendingChildKeyCooldown } from "../../utils/children.ts";
+import { getChildren, setAutoParentDelegationEnabled, sudoSetChildKeyCooldownTempos } from "../../utils/children.ts";
import { Keyring } from "@polkadot/keyring";
describeSuite({
@@ -62,7 +62,7 @@ describeSuite({
await forceSetBalance(api, addr);
}
- await sudoSetPendingChildKeyCooldown(api, 0n);
+ await sudoSetChildKeyCooldownTempos(api, 0);
await sudoSetStakeThreshold(api, 0n);
diff --git a/ts-tests/utils/children.ts b/ts-tests/utils/children.ts
index f779ed486c..cb4cc93479 100644
--- a/ts-tests/utils/children.ts
+++ b/ts-tests/utils/children.ts
@@ -23,6 +23,7 @@ export async function getChildren(
return (raw ?? []).map(([proportion, child]: [bigint, string]) => ({ proportion, child }));
}
+/** @deprecated Use sudoSetChildKeyCooldownTempos. */
export async function sudoSetPendingChildKeyCooldown(api: TypedApi, cooldown: bigint): Promise {
const keyring = new Keyring({ type: "sr25519" });
const alice = keyring.addFromUri("//Alice");
@@ -30,3 +31,11 @@ export async function sudoSetPendingChildKeyCooldown(api: TypedApi, tempos: number): Promise {
+ const keyring = new Keyring({ type: "sr25519" });
+ const alice = keyring.addFromUri("//Alice");
+ const inner = api.tx.AdminUtils.sudo_set_childkey_cooldown_tempos({ tempos });
+ const tx = api.tx.Sudo.sudo({ call: inner.decodedCall });
+ await waitForTransactionWithRetry(api, tx, alice, "sudo_set_childkey_cooldown_tempos");
+}
From 68c7da7eacbcb0b0d0a35a674440ecbc1f94a0be Mon Sep 17 00:00:00 2001
From: UnArbosSix
Date: Tue, 28 Jul 2026 12:31:07 -0700
Subject: [PATCH 2/7] move event
---
pallets/admin-utils/src/lib.rs | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/pallets/admin-utils/src/lib.rs b/pallets/admin-utils/src/lib.rs
index 4e0d2f6ac8..700c788284 100644
--- a/pallets/admin-utils/src/lib.rs
+++ b/pallets/admin-utils/src/lib.rs
@@ -96,11 +96,6 @@ pub mod pallet {
/// Indicates if the Bonds Reset was enabled or disabled.
enabled: bool,
},
- /// Event emitted when the childkey activation cooldown is set.
- ChildKeyCooldownTemposSet {
- /// The new cooldown, measured in subnet tempos.
- tempos: u16,
- },
/// Event emitted when the burn half-life parameter is set for a subnet.
BurnHalfLifeSet {
/// The network identifier.
@@ -139,6 +134,12 @@ pub mod pallet {
/// The new drain ratio (alpha released per alpha of emission earned).
drain_ratio: U64F64,
},
+
+ /// Event emitted when the childkey activation cooldown is set.
+ ChildKeyCooldownTemposSet {
+ /// The new cooldown, measured in subnet tempos.
+ tempos: u16,
+ },
}
// Errors inform users that something went wrong.
From 06ad1360f77a9abe2ec7ff02869537d116713d50 Mon Sep 17 00:00:00 2001
From: UnArbosSix
Date: Tue, 28 Jul 2026 12:33:36 -0700
Subject: [PATCH 3/7] fix boundry & test
---
pallets/subtensor/src/staking/set_children.rs | 2 +-
pallets/subtensor/src/tests/children.rs | 69 +++++++++++++++++++
2 files changed, 70 insertions(+), 1 deletion(-)
diff --git a/pallets/subtensor/src/staking/set_children.rs b/pallets/subtensor/src/staking/set_children.rs
index 16f99a5379..cbbe8014de 100644
--- a/pallets/subtensor/src/staking/set_children.rs
+++ b/pallets/subtensor/src/staking/set_children.rs
@@ -616,7 +616,7 @@ impl Pallet {
PendingChildKeys::::iter_prefix(netuid).for_each(
|(hotkey, (children, cool_down_block))| {
- if (cool_down_block < current_block) || !start_call_occured {
+ if (cool_down_block <= current_block) || !start_call_occured {
Self::persist_pending_chidren_ok(netuid, &hotkey, &children);
to_remove.push(hotkey);
}
diff --git a/pallets/subtensor/src/tests/children.rs b/pallets/subtensor/src/tests/children.rs
index 761cf8bce6..b471af7717 100644
--- a/pallets/subtensor/src/tests/children.rs
+++ b/pallets/subtensor/src/tests/children.rs
@@ -4122,6 +4122,75 @@ fn test_pending_cooldown_as_expected() {
});
}
+#[test]
+fn test_pending_children_activate_after_exactly_configured_tempos() {
+ new_test_ext(1).execute_with(|| {
+ let coldkey = U256::from(1);
+ let parent = U256::from(2);
+ let child = U256::from(3);
+ let netuid = NetUid::from(1);
+ let tempo = 5;
+ let cooldown_tempos = 2;
+
+ add_network(netuid, tempo, 0);
+ register_ok_neuron(netuid, parent, coldkey, 0);
+ ChildKeyCooldownTempos::::put(cooldown_tempos);
+
+ // Anchor the next epoch to exactly one tempo after this block.
+ let scheduled_at = System::block_number();
+ LastEpochBlock::::insert(netuid, scheduled_at);
+ BlocksSinceLastStep::::insert(netuid, 0);
+
+ mock_schedule_children(&coldkey, &parent, netuid, &[(u64::MAX, child)]);
+
+ let deadline = scheduled_at + u64::from(tempo) * u64::from(cooldown_tempos);
+ assert_eq!(PendingChildKeys::::get(netuid, parent).1, deadline);
+
+ step_epochs(1, netuid);
+ assert_eq!(System::block_number(), scheduled_at + u64::from(tempo));
+ assert!(PendingChildKeys::::contains_key(netuid, parent));
+ assert!(ChildKeys::::get(parent, netuid).is_empty());
+
+ step_epochs(1, netuid);
+ assert_eq!(System::block_number(), deadline);
+ assert!(!PendingChildKeys::::contains_key(netuid, parent));
+ assert_eq!(
+ ChildKeys::::get(parent, netuid),
+ vec![(u64::MAX, child)]
+ );
+ });
+}
+
+#[test]
+fn test_pending_children_zero_cooldown_activates_at_deadline() {
+ new_test_ext(1).execute_with(|| {
+ let coldkey = U256::from(1);
+ let parent = U256::from(2);
+ let child = U256::from(3);
+ let netuid = NetUid::from(1);
+
+ add_network(netuid, 5, 0);
+ register_ok_neuron(netuid, parent, coldkey, 0);
+ ChildKeyCooldownTempos::::put(0);
+
+ let scheduled_at = System::block_number();
+ mock_schedule_children(&coldkey, &parent, netuid, &[(u64::MAX, child)]);
+
+ assert_eq!(
+ PendingChildKeys::::get(netuid, parent).1,
+ scheduled_at
+ );
+
+ SubtensorModule::do_set_pending_children(netuid);
+
+ assert!(!PendingChildKeys::::contains_key(netuid, parent));
+ assert_eq!(
+ ChildKeys::::get(parent, netuid),
+ vec![(u64::MAX, child)]
+ );
+ });
+}
+
#[test]
#[allow(deprecated)]
fn test_deprecated_pending_childkey_cooldown_is_retained() {
From 35923430e95a927e907d8479e5ca642160267916 Mon Sep 17 00:00:00 2001
From: UnArbosSix
Date: Tue, 28 Jul 2026 12:54:20 -0700
Subject: [PATCH 4/7] update metadata
---
.../chain/BondsMovingAverageMaxReached.mdx | 2 +-
.../chain/CollateralDrainRatioOutOfBounds.mdx | 2 +-
.../chain/CollateralLockShareTooHigh.mdx | 2 +-
docs/errors/chain/Deprecated.mdx | 2 +-
docs/errors/chain/InvalidValue.mdx | 2 +-
.../MaxAllowedUIdsLessThanCurrentUIds.mdx | 2 +-
...edUidsGreaterThanDefaultMaxAllowedUids.mdx | 2 +-
.../MaxAllowedUidsLessThanMinAllowedUids.mdx | 2 +-
.../chain/MaxValidatorsLargerThanMaxUIds.mdx | 2 +-
.../MinAllowedUidsGreaterThanCurrentUids.mdx | 2 +-
...inAllowedUidsGreaterThanMaxAllowedUids.mdx | 2 +-
.../errors/chain/NegativeSigmoidSteepness.mdx | 2 +-
.../errors/chain/NotPermittedOnRootSubnet.mdx | 2 +-
docs/errors/chain/POWRegistrationDisabled.mdx | 2 +-
docs/errors/chain/SubnetDoesNotExist.mdx | 2 +-
docs/errors/chain/ValueNotInBounds.mdx | 2 +-
docs/hyperparameters/index.mdx | 84 +--
docs/query/associated-evm-key.mdx | 2 +-
docs/query/auto-stake-all.mdx | 2 +-
docs/query/auto-stake.mdx | 2 +-
docs/query/blocks-since-last-step.mdx | 2 +-
docs/query/blocks-since-last-update.mdx | 2 +-
docs/query/bonds.mdx | 2 +-
docs/query/burn.mdx | 2 +-
docs/query/children.mdx | 2 +-
docs/query/coldkey-lock.mdx | 2 +-
docs/query/coldkey-swap-announcement.mdx | 4 +-
docs/query/commit-reveal-enabled.mdx | 2 +-
docs/query/delegate-take.mdx | 6 +-
docs/query/difficulty.mdx | 2 +-
docs/query/epoch-status.mdx | 10 +-
docs/query/hotkey-identities.mdx | 4 +-
docs/query/hotkey-owner.mdx | 2 +-
docs/query/identity.mdx | 2 +-
docs/query/immunity-period.mdx | 2 +-
docs/query/lease.mdx | 2 +-
docs/query/leases.mdx | 2 +-
docs/query/locks-for-coldkey.mdx | 2 +-
docs/query/max-weight-limit.mdx | 2 +-
docs/query/mechanism-count.mdx | 2 +-
docs/query/mechanism-emission-split.mdx | 2 +-
docs/query/min-allowed-weights.mdx | 2 +-
docs/query/miner-collateral.mdx | 2 +-
docs/query/netuids-for-hotkey.mdx | 2 +-
docs/query/owned-hotkeys.mdx | 2 +-
docs/query/parents.mdx | 2 +-
docs/query/pending-children.mdx | 2 +-
docs/query/reveal-period.mdx | 2 +-
docs/query/root-claim-type.mdx | 2 +-
docs/query/staking-hotkeys.mdx | 2 +-
docs/query/subnet-collateral.mdx | 2 +-
docs/query/subnet-convictions.mdx | 18 +-
docs/query/subnet-emission-enabled.mdx | 2 +-
docs/query/subnet-identity.mdx | 2 +-
docs/query/subnet-names.mdx | 2 +-
docs/query/subnet-start-schedule.mdx | 2 +-
docs/query/subnet.mdx | 6 +-
docs/query/subnets.mdx | 8 +-
docs/query/timelocked-weight-commits.mdx | 2 +-
docs/query/token-symbols.mdx | 2 +-
docs/query/tx-rate-limit.mdx | 2 +-
docs/query/uid.mdx | 2 +-
docs/query/weights-rate-limit.mdx | 2 +-
docs/query/weights.mdx | 2 +-
docs/tx/add-collateral.mdx | 4 +-
docs/tx/add-stake-limit.mdx | 4 +-
docs/tx/add-stake.mdx | 6 +-
docs/tx/announce-coldkey-swap.mdx | 6 +-
docs/tx/associate-evm-key.mdx | 4 +-
docs/tx/associate-hotkey.mdx | 4 +-
docs/tx/burned-register.mdx | 4 +-
docs/tx/claim-root.mdx | 22 +-
docs/tx/clear-coldkey-swap-announcement.mdx | 4 +-
docs/tx/commit-weights.mdx | 4 +-
docs/tx/decrease-take.mdx | 4 +-
docs/tx/dispute-coldkey-swap.mdx | 4 +-
docs/tx/increase-take.mdx | 4 +-
docs/tx/lock-stake.mdx | 4 +-
docs/tx/move-lock.mdx | 4 +-
docs/tx/move-stake.mdx | 4 +-
docs/tx/register-leased-network.mdx | 4 +-
docs/tx/register-subnet.mdx | 4 +-
docs/tx/remove-stake-limit.mdx | 4 +-
docs/tx/remove-stake.mdx | 6 +-
docs/tx/reset-axon.mdx | 4 +-
docs/tx/reveal-weights.mdx | 4 +-
docs/tx/root-register.mdx | 4 +-
docs/tx/serve-axon-tls.mdx | 4 +-
docs/tx/serve-axon.mdx | 4 +-
docs/tx/serve-prometheus.mdx | 4 +-
docs/tx/set-auto-stake.mdx | 4 +-
docs/tx/set-childkey-take.mdx | 6 +-
docs/tx/set-children.mdx | 4 +-
docs/tx/set-hyperparameter.mdx | 64 +--
docs/tx/set-identity.mdx | 4 +-
docs/tx/set-mechanism-count.mdx | 4 +-
docs/tx/set-min-collateral.mdx | 4 +-
docs/tx/set-perpetual-lock.mdx | 4 +-
docs/tx/set-root-claim-type.mdx | 4 +-
docs/tx/set-subnet-emission-enabled.mdx | 4 +-
docs/tx/set-subnet-identity.mdx | 4 +-
docs/tx/set-take.mdx | 6 +-
docs/tx/set-weights.mdx | 8 +-
docs/tx/stake-burn.mdx | 4 +-
docs/tx/start-call.mdx | 4 +-
docs/tx/swap-coldkey-announced.mdx | 4 +-
docs/tx/swap-hotkey.mdx | 4 +-
docs/tx/swap-stake.mdx | 6 +-
docs/tx/terminate-lease.mdx | 4 +-
docs/tx/transfer-stake.mdx | 6 +-
docs/tx/trim-subnet.mdx | 4 +-
docs/tx/unstake-all-alpha.mdx | 4 +-
docs/tx/unstake-all.mdx | 4 +-
docs/tx/update-symbol.mdx | 4 +-
eco-tests/src/helpers.rs | 4 +-
pallets/subtensor/src/tests/mock.rs | 4 +-
runtime/src/proxy_filters/call_groups.rs | 2 +
runtime/tests/claim_root_weight.rs | 7 +-
sdk/bittensor-core/src/digest/mod.rs | 9 +-
.../bittensor/_transport/utils/receipt.py | 10 +-
sdk/python/bittensor/result.py | 14 +-
sdk/python/codegen/check.py | 2 +
.../public/catalog/errors.json | 64 +--
.../public/catalog/intents.json | 516 +++++++++---------
.../public/catalog/reads.json | 272 ++++-----
.../(pages-without-footer)/releases/page.tsx | 10 +
.../releases/v441-upgrade/page.tsx | 177 ++++++
127 files changed, 919 insertions(+), 720 deletions(-)
create mode 100644 website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v441-upgrade/page.tsx
diff --git a/docs/errors/chain/BondsMovingAverageMaxReached.mdx b/docs/errors/chain/BondsMovingAverageMaxReached.mdx
index 4a2472f53e..f5ea16c037 100644
--- a/docs/errors/chain/BondsMovingAverageMaxReached.mdx
+++ b/docs/errors/chain/BondsMovingAverageMaxReached.mdx
@@ -9,7 +9,7 @@ A subnet owner called `sudo_set_bonds_moving_average` with a value above 975000,
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`limit_exceeded`](/docs/errors/limit-exceeded).
-Declared at [`pallets/admin-utils/src/lib.rs#L149`](/code/pallets/admin-utils/src/lib.rs#L149).
+Declared at [`pallets/admin-utils/src/lib.rs#L155`](/code/pallets/admin-utils/src/lib.rs#L155).
## Remediation
diff --git a/docs/errors/chain/CollateralDrainRatioOutOfBounds.mdx b/docs/errors/chain/CollateralDrainRatioOutOfBounds.mdx
index a2c04b5312..42b5ccd782 100644
--- a/docs/errors/chain/CollateralDrainRatioOutOfBounds.mdx
+++ b/docs/errors/chain/CollateralDrainRatioOutOfBounds.mdx
@@ -9,7 +9,7 @@ description: "Check the argument values against the operation schema"
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L173`](/code/pallets/admin-utils/src/lib.rs#L173).
+Declared at [`pallets/admin-utils/src/lib.rs#L179`](/code/pallets/admin-utils/src/lib.rs#L179).
## Remediation
diff --git a/docs/errors/chain/CollateralLockShareTooHigh.mdx b/docs/errors/chain/CollateralLockShareTooHigh.mdx
index 0c5972ba32..b16705299e 100644
--- a/docs/errors/chain/CollateralLockShareTooHigh.mdx
+++ b/docs/errors/chain/CollateralLockShareTooHigh.mdx
@@ -9,7 +9,7 @@ description: "Check the argument values against the operation schema"
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L171`](/code/pallets/admin-utils/src/lib.rs#L171).
+Declared at [`pallets/admin-utils/src/lib.rs#L177`](/code/pallets/admin-utils/src/lib.rs#L177).
## Remediation
diff --git a/docs/errors/chain/Deprecated.mdx b/docs/errors/chain/Deprecated.mdx
index 4a36df3953..768c94f139 100644
--- a/docs/errors/chain/Deprecated.mdx
+++ b/docs/errors/chain/Deprecated.mdx
@@ -9,7 +9,7 @@ The extrinsic has been removed and always fails, e.g. `schedule_swap_coldkey`, t
Declared by the `SubtensorModule`, `AdminUtils`, `Swap` pallets; it classifies to the semantic code [`disabled`](/docs/errors/disabled).
-Declared at [`pallets/subtensor/src/macros/errors.rs#L287`](/code/pallets/subtensor/src/macros/errors.rs#L287), [`pallets/admin-utils/src/lib.rs#L169`](/code/pallets/admin-utils/src/lib.rs#L169), [`pallets/swap/src/pallet/mod.rs#L181`](/code/pallets/swap/src/pallet/mod.rs#L181).
+Declared at [`pallets/subtensor/src/macros/errors.rs#L287`](/code/pallets/subtensor/src/macros/errors.rs#L287), [`pallets/admin-utils/src/lib.rs#L175`](/code/pallets/admin-utils/src/lib.rs#L175), [`pallets/swap/src/pallet/mod.rs#L181`](/code/pallets/swap/src/pallet/mod.rs#L181).
## Remediation
diff --git a/docs/errors/chain/InvalidValue.mdx b/docs/errors/chain/InvalidValue.mdx
index 7a28fabfb3..85523aa288 100644
--- a/docs/errors/chain/InvalidValue.mdx
+++ b/docs/errors/chain/InvalidValue.mdx
@@ -9,7 +9,7 @@ A generic out-of-range parameter on an admin or sudo call, e.g. mechanism counts
Declared by the `SubtensorModule`, `AdminUtils` pallets; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/subtensor/src/macros/errors.rs#L257`](/code/pallets/subtensor/src/macros/errors.rs#L257), [`pallets/admin-utils/src/lib.rs#L163`](/code/pallets/admin-utils/src/lib.rs#L163).
+Declared at [`pallets/subtensor/src/macros/errors.rs#L257`](/code/pallets/subtensor/src/macros/errors.rs#L257), [`pallets/admin-utils/src/lib.rs#L169`](/code/pallets/admin-utils/src/lib.rs#L169).
## Remediation
diff --git a/docs/errors/chain/MaxAllowedUIdsLessThanCurrentUIds.mdx b/docs/errors/chain/MaxAllowedUIdsLessThanCurrentUIds.mdx
index c5c72923de..9e7842e7f5 100644
--- a/docs/errors/chain/MaxAllowedUIdsLessThanCurrentUIds.mdx
+++ b/docs/errors/chain/MaxAllowedUIdsLessThanCurrentUIds.mdx
@@ -9,7 +9,7 @@ description: "Check the argument values against the operation schema"
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L147`](/code/pallets/admin-utils/src/lib.rs#L147).
+Declared at [`pallets/admin-utils/src/lib.rs#L153`](/code/pallets/admin-utils/src/lib.rs#L153).
## Remediation
diff --git a/docs/errors/chain/MaxAllowedUidsGreaterThanDefaultMaxAllowedUids.mdx b/docs/errors/chain/MaxAllowedUidsGreaterThanDefaultMaxAllowedUids.mdx
index 65629933b6..1a1b8617b1 100644
--- a/docs/errors/chain/MaxAllowedUidsGreaterThanDefaultMaxAllowedUids.mdx
+++ b/docs/errors/chain/MaxAllowedUidsGreaterThanDefaultMaxAllowedUids.mdx
@@ -9,7 +9,7 @@ description: "Check the argument values against the operation schema"
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L161`](/code/pallets/admin-utils/src/lib.rs#L161).
+Declared at [`pallets/admin-utils/src/lib.rs#L167`](/code/pallets/admin-utils/src/lib.rs#L167).
## Remediation
diff --git a/docs/errors/chain/MaxAllowedUidsLessThanMinAllowedUids.mdx b/docs/errors/chain/MaxAllowedUidsLessThanMinAllowedUids.mdx
index f37269ac00..5cb39bbe4d 100644
--- a/docs/errors/chain/MaxAllowedUidsLessThanMinAllowedUids.mdx
+++ b/docs/errors/chain/MaxAllowedUidsLessThanMinAllowedUids.mdx
@@ -9,7 +9,7 @@ description: "Check the argument values against the operation schema"
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L159`](/code/pallets/admin-utils/src/lib.rs#L159).
+Declared at [`pallets/admin-utils/src/lib.rs#L165`](/code/pallets/admin-utils/src/lib.rs#L165).
## Remediation
diff --git a/docs/errors/chain/MaxValidatorsLargerThanMaxUIds.mdx b/docs/errors/chain/MaxValidatorsLargerThanMaxUIds.mdx
index 5ed19b6852..4350b8d274 100644
--- a/docs/errors/chain/MaxValidatorsLargerThanMaxUIds.mdx
+++ b/docs/errors/chain/MaxValidatorsLargerThanMaxUIds.mdx
@@ -9,7 +9,7 @@ description: "Check the argument values against the operation schema"
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L145`](/code/pallets/admin-utils/src/lib.rs#L145).
+Declared at [`pallets/admin-utils/src/lib.rs#L151`](/code/pallets/admin-utils/src/lib.rs#L151).
## Remediation
diff --git a/docs/errors/chain/MinAllowedUidsGreaterThanCurrentUids.mdx b/docs/errors/chain/MinAllowedUidsGreaterThanCurrentUids.mdx
index bffee219b7..898575e56e 100644
--- a/docs/errors/chain/MinAllowedUidsGreaterThanCurrentUids.mdx
+++ b/docs/errors/chain/MinAllowedUidsGreaterThanCurrentUids.mdx
@@ -9,7 +9,7 @@ description: "Check the argument values against the operation schema"
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L155`](/code/pallets/admin-utils/src/lib.rs#L155).
+Declared at [`pallets/admin-utils/src/lib.rs#L161`](/code/pallets/admin-utils/src/lib.rs#L161).
## Remediation
diff --git a/docs/errors/chain/MinAllowedUidsGreaterThanMaxAllowedUids.mdx b/docs/errors/chain/MinAllowedUidsGreaterThanMaxAllowedUids.mdx
index adc77f2b11..fb22d7cc91 100644
--- a/docs/errors/chain/MinAllowedUidsGreaterThanMaxAllowedUids.mdx
+++ b/docs/errors/chain/MinAllowedUidsGreaterThanMaxAllowedUids.mdx
@@ -9,7 +9,7 @@ description: "Check the argument values against the operation schema"
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L157`](/code/pallets/admin-utils/src/lib.rs#L157).
+Declared at [`pallets/admin-utils/src/lib.rs#L163`](/code/pallets/admin-utils/src/lib.rs#L163).
## Remediation
diff --git a/docs/errors/chain/NegativeSigmoidSteepness.mdx b/docs/errors/chain/NegativeSigmoidSteepness.mdx
index 5533cd833c..0b117cb93c 100644
--- a/docs/errors/chain/NegativeSigmoidSteepness.mdx
+++ b/docs/errors/chain/NegativeSigmoidSteepness.mdx
@@ -9,7 +9,7 @@ A non-root caller (subnet owner) passed a negative value to `sudo_set_alpha_sigm
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L151`](/code/pallets/admin-utils/src/lib.rs#L151).
+Declared at [`pallets/admin-utils/src/lib.rs#L157`](/code/pallets/admin-utils/src/lib.rs#L157).
## Remediation
diff --git a/docs/errors/chain/NotPermittedOnRootSubnet.mdx b/docs/errors/chain/NotPermittedOnRootSubnet.mdx
index f05998b258..0272dd9fa7 100644
--- a/docs/errors/chain/NotPermittedOnRootSubnet.mdx
+++ b/docs/errors/chain/NotPermittedOnRootSubnet.mdx
@@ -9,7 +9,7 @@ An admin-utils call that only applies to regular subnets (burn half-life, burn i
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L165`](/code/pallets/admin-utils/src/lib.rs#L165).
+Declared at [`pallets/admin-utils/src/lib.rs#L171`](/code/pallets/admin-utils/src/lib.rs#L171).
## Remediation
diff --git a/docs/errors/chain/POWRegistrationDisabled.mdx b/docs/errors/chain/POWRegistrationDisabled.mdx
index 427a04ebf9..1f574069fa 100644
--- a/docs/errors/chain/POWRegistrationDisabled.mdx
+++ b/docs/errors/chain/POWRegistrationDisabled.mdx
@@ -9,7 +9,7 @@ description: "This call or feature is switched off on this network"
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`disabled`](/docs/errors/disabled).
-Declared at [`pallets/admin-utils/src/lib.rs#L167`](/code/pallets/admin-utils/src/lib.rs#L167).
+Declared at [`pallets/admin-utils/src/lib.rs#L173`](/code/pallets/admin-utils/src/lib.rs#L173).
## Remediation
diff --git a/docs/errors/chain/SubnetDoesNotExist.mdx b/docs/errors/chain/SubnetDoesNotExist.mdx
index f12bce9909..e4fdb0ed33 100644
--- a/docs/errors/chain/SubnetDoesNotExist.mdx
+++ b/docs/errors/chain/SubnetDoesNotExist.mdx
@@ -9,7 +9,7 @@ The admin-utils call targets a netuid with no registered subnet. Verify the `net
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`subnet_not_exists`](/docs/errors/subnet-not-exists).
-Declared at [`pallets/admin-utils/src/lib.rs#L143`](/code/pallets/admin-utils/src/lib.rs#L143).
+Declared at [`pallets/admin-utils/src/lib.rs#L149`](/code/pallets/admin-utils/src/lib.rs#L149).
## Remediation
diff --git a/docs/errors/chain/ValueNotInBounds.mdx b/docs/errors/chain/ValueNotInBounds.mdx
index 3c1153520b..1bd3ea9ab1 100644
--- a/docs/errors/chain/ValueNotInBounds.mdx
+++ b/docs/errors/chain/ValueNotInBounds.mdx
@@ -9,7 +9,7 @@ An admin-utils argument fell outside its allowed range: `min_burn` must be below
Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).
-Declared at [`pallets/admin-utils/src/lib.rs#L153`](/code/pallets/admin-utils/src/lib.rs#L153).
+Declared at [`pallets/admin-utils/src/lib.rs#L159`](/code/pallets/admin-utils/src/lib.rs#L159).
## Remediation
diff --git a/docs/hyperparameters/index.mdx b/docs/hyperparameters/index.mdx
index a1d5b8a399..f4eb08516b 100644
--- a/docs/hyperparameters/index.mdx
+++ b/docs/hyperparameters/index.mdx
@@ -9,50 +9,50 @@ Read them with `btcli sudo get --netuid N` (the [`subnet_hyperparameters`](/docs
| Hyperparameter | Unit | Owner-settable | What it controls | Source |
| --- | --- | --- | --- | --- |
-| [`rho`](/docs/hyperparameters/rho) | integer | yes | trust curve steepness | [`Rho`](/code/pallets/subtensor/src/lib.rs#L2154) |
-| [`kappa`](/docs/hyperparameters/kappa) | fraction (u16, 65535 = 1.0) | root only | consensus majority-stake threshold | [`Kappa`](/code/pallets/subtensor/src/lib.rs#L2163) |
-| [`immunity_period`](/docs/hyperparameters/immunity-period) | blocks (12s) | yes | prune-immunity window for new neurons | [`ImmunityPeriod`](/code/pallets/subtensor/src/lib.rs#L2192) |
-| [`min_allowed_weights`](/docs/hyperparameters/min-allowed-weights) | integer | yes | minimum weights per submission | [`MinAllowedWeights`](/code/pallets/subtensor/src/lib.rs#L2218) |
-| [`max_weights_limit`](/docs/hyperparameters/max-weights-limit) | fraction (u16, 65535 = 1.0) | root only | cap on a single miner's weight | [`MaxWeightsLimit`](/code/pallets/subtensor/src/lib.rs#L2208) |
-| [`tempo`](/docs/hyperparameters/tempo) | blocks (12s) | yes | blocks per consensus epoch | [`Tempo`](/code/pallets/subtensor/src/lib.rs#L1982) |
-| [`min_difficulty`](/docs/hyperparameters/min-difficulty) | PoW difficulty (u64) | root only | PoW registration difficulty floor | [`MinDifficulty`](/code/pallets/subtensor/src/lib.rs#L2296) |
-| [`max_difficulty`](/docs/hyperparameters/max-difficulty) | PoW difficulty (u64) | yes | PoW registration difficulty ceiling | [`MaxDifficulty`](/code/pallets/subtensor/src/lib.rs#L2301) |
-| [`difficulty`](/docs/hyperparameters/difficulty) | PoW difficulty (u64) | root only | current PoW registration difficulty | [`Difficulty`](/code/pallets/subtensor/src/lib.rs#L2282) |
-| [`weights_version`](/docs/hyperparameters/weights-version) | integer | yes | minimum version key for set_weights | [`WeightsVersionKey`](/code/pallets/subtensor/src/lib.rs#L2213) |
-| [`weights_rate_limit`](/docs/hyperparameters/weights-rate-limit) | blocks (12s) | root only | wait between weight submissions | [`WeightsSetRateLimit`](/code/pallets/subtensor/src/lib.rs#L2248) |
-| [`adjustment_interval`](/docs/hyperparameters/adjustment-interval) | blocks (12s) | root only | difficulty/burn adjustment cadence | [`AdjustmentInterval`](/code/pallets/subtensor/src/lib.rs#L2228) |
-| [`activity_cutoff`](/docs/hyperparameters/activity-cutoff) | blocks (12s) | root only | no-weights window before inactive | [`ActivityCutoff`](/code/pallets/subtensor/src/lib.rs#L2198) |
-| [`activity_cutoff_factor`](/docs/hyperparameters/activity-cutoff-factor) | integer | yes | activity cutoff, per-mille of tempo | [`ActivityCutoffFactorMilli`](/code/pallets/subtensor/src/lib.rs#L2025) |
-| [`registration_allowed`](/docs/hyperparameters/registration-allowed) | flag | root only | new neuron registrations allowed | [`NetworkRegistrationAllowed`](/code/pallets/subtensor/src/lib.rs#L2063) |
-| [`network_pow_registration_allowed`](/docs/hyperparameters/network-pow-registration-allowed) | flag | yes | PoW registration toggle | [`NetworkPowRegistrationAllowed`](/code/pallets/subtensor/src/lib.rs#L2068) |
-| [`target_regs_per_interval`](/docs/hyperparameters/target-regs-per-interval) | integer | root only | registration-rate controller target | [`TargetRegistrationsPerInterval`](/code/pallets/subtensor/src/lib.rs#L2263) |
-| [`min_burn`](/docs/hyperparameters/min-burn) | TAO amount in rao | yes | burned-registration cost floor | [`MinBurn`](/code/pallets/subtensor/src/lib.rs#L2286) |
-| [`max_burn`](/docs/hyperparameters/max-burn) | TAO amount in rao | yes | burned-registration cost ceiling | [`MaxBurn`](/code/pallets/subtensor/src/lib.rs#L2291) |
-| [`bonds_moving_avg`](/docs/hyperparameters/bonds-moving-avg) | fraction (1,000,000 = 1.0) | yes | bonds EMA smoothing factor | [`BondsMovingAverage`](/code/pallets/subtensor/src/lib.rs#L2233) |
-| [`max_regs_per_block`](/docs/hyperparameters/max-regs-per-block) | integer | root only | per-block registration cap | [`MaxRegistrationsPerBlock`](/code/pallets/subtensor/src/lib.rs#L1898) |
-| [`serving_rate_limit`](/docs/hyperparameters/serving-rate-limit) | blocks (12s) | yes | cooldown between axon serve calls | [`ServingRateLimit`](/code/pallets/subtensor/src/lib.rs#L2149) |
-| [`max_validators`](/docs/hyperparameters/max-validators) | integer | root only | top-stake validator permit cap | [`MaxAllowedValidators`](/code/pallets/subtensor/src/lib.rs#L2223) |
-| [`adjustment_alpha`](/docs/hyperparameters/adjustment-alpha) | fraction (u64, u64::MAX = 1.0) | yes | difficulty/burn adjust smoothing | [`AdjustmentAlpha`](/code/pallets/subtensor/src/lib.rs#L2268) |
-| [`commit_reveal_period`](/docs/hyperparameters/commit-reveal-period) | epochs (tempos) | yes | weight commit-to-reveal delay | [`RevealPeriodEpochs`](/code/pallets/subtensor/src/lib.rs#L2710) |
-| [`commit_reveal_weights_enabled`](/docs/hyperparameters/commit-reveal-weights-enabled) | flag | yes | commit-reveal weights toggle | [`CommitRevealWeightsEnabled`](/code/pallets/subtensor/src/lib.rs#L2273) |
+| [`rho`](/docs/hyperparameters/rho) | integer | yes | trust curve steepness | [`Rho`](/code/pallets/subtensor/src/lib.rs#L2166) |
+| [`kappa`](/docs/hyperparameters/kappa) | fraction (u16, 65535 = 1.0) | root only | consensus majority-stake threshold | [`Kappa`](/code/pallets/subtensor/src/lib.rs#L2175) |
+| [`immunity_period`](/docs/hyperparameters/immunity-period) | blocks (12s) | yes | prune-immunity window for new neurons | [`ImmunityPeriod`](/code/pallets/subtensor/src/lib.rs#L2204) |
+| [`min_allowed_weights`](/docs/hyperparameters/min-allowed-weights) | integer | yes | minimum weights per submission | [`MinAllowedWeights`](/code/pallets/subtensor/src/lib.rs#L2230) |
+| [`max_weights_limit`](/docs/hyperparameters/max-weights-limit) | fraction (u16, 65535 = 1.0) | root only | cap on a single miner's weight | [`MaxWeightsLimit`](/code/pallets/subtensor/src/lib.rs#L2220) |
+| [`tempo`](/docs/hyperparameters/tempo) | blocks (12s) | yes | blocks per consensus epoch | [`Tempo`](/code/pallets/subtensor/src/lib.rs#L1994) |
+| [`min_difficulty`](/docs/hyperparameters/min-difficulty) | PoW difficulty (u64) | root only | PoW registration difficulty floor | [`MinDifficulty`](/code/pallets/subtensor/src/lib.rs#L2308) |
+| [`max_difficulty`](/docs/hyperparameters/max-difficulty) | PoW difficulty (u64) | yes | PoW registration difficulty ceiling | [`MaxDifficulty`](/code/pallets/subtensor/src/lib.rs#L2313) |
+| [`difficulty`](/docs/hyperparameters/difficulty) | PoW difficulty (u64) | root only | current PoW registration difficulty | [`Difficulty`](/code/pallets/subtensor/src/lib.rs#L2294) |
+| [`weights_version`](/docs/hyperparameters/weights-version) | integer | yes | minimum version key for set_weights | [`WeightsVersionKey`](/code/pallets/subtensor/src/lib.rs#L2225) |
+| [`weights_rate_limit`](/docs/hyperparameters/weights-rate-limit) | blocks (12s) | root only | wait between weight submissions | [`WeightsSetRateLimit`](/code/pallets/subtensor/src/lib.rs#L2260) |
+| [`adjustment_interval`](/docs/hyperparameters/adjustment-interval) | blocks (12s) | root only | difficulty/burn adjustment cadence | [`AdjustmentInterval`](/code/pallets/subtensor/src/lib.rs#L2240) |
+| [`activity_cutoff`](/docs/hyperparameters/activity-cutoff) | blocks (12s) | root only | no-weights window before inactive | [`ActivityCutoff`](/code/pallets/subtensor/src/lib.rs#L2210) |
+| [`activity_cutoff_factor`](/docs/hyperparameters/activity-cutoff-factor) | integer | yes | activity cutoff, per-mille of tempo | [`ActivityCutoffFactorMilli`](/code/pallets/subtensor/src/lib.rs#L2037) |
+| [`registration_allowed`](/docs/hyperparameters/registration-allowed) | flag | root only | new neuron registrations allowed | [`NetworkRegistrationAllowed`](/code/pallets/subtensor/src/lib.rs#L2075) |
+| [`network_pow_registration_allowed`](/docs/hyperparameters/network-pow-registration-allowed) | flag | yes | PoW registration toggle | [`NetworkPowRegistrationAllowed`](/code/pallets/subtensor/src/lib.rs#L2080) |
+| [`target_regs_per_interval`](/docs/hyperparameters/target-regs-per-interval) | integer | root only | registration-rate controller target | [`TargetRegistrationsPerInterval`](/code/pallets/subtensor/src/lib.rs#L2275) |
+| [`min_burn`](/docs/hyperparameters/min-burn) | TAO amount in rao | yes | burned-registration cost floor | [`MinBurn`](/code/pallets/subtensor/src/lib.rs#L2298) |
+| [`max_burn`](/docs/hyperparameters/max-burn) | TAO amount in rao | yes | burned-registration cost ceiling | [`MaxBurn`](/code/pallets/subtensor/src/lib.rs#L2303) |
+| [`bonds_moving_avg`](/docs/hyperparameters/bonds-moving-avg) | fraction (1,000,000 = 1.0) | yes | bonds EMA smoothing factor | [`BondsMovingAverage`](/code/pallets/subtensor/src/lib.rs#L2245) |
+| [`max_regs_per_block`](/docs/hyperparameters/max-regs-per-block) | integer | root only | per-block registration cap | [`MaxRegistrationsPerBlock`](/code/pallets/subtensor/src/lib.rs#L1910) |
+| [`serving_rate_limit`](/docs/hyperparameters/serving-rate-limit) | blocks (12s) | yes | cooldown between axon serve calls | [`ServingRateLimit`](/code/pallets/subtensor/src/lib.rs#L2161) |
+| [`max_validators`](/docs/hyperparameters/max-validators) | integer | root only | top-stake validator permit cap | [`MaxAllowedValidators`](/code/pallets/subtensor/src/lib.rs#L2235) |
+| [`adjustment_alpha`](/docs/hyperparameters/adjustment-alpha) | fraction (u64, u64::MAX = 1.0) | yes | difficulty/burn adjust smoothing | [`AdjustmentAlpha`](/code/pallets/subtensor/src/lib.rs#L2280) |
+| [`commit_reveal_period`](/docs/hyperparameters/commit-reveal-period) | epochs (tempos) | yes | weight commit-to-reveal delay | [`RevealPeriodEpochs`](/code/pallets/subtensor/src/lib.rs#L2722) |
+| [`commit_reveal_weights_enabled`](/docs/hyperparameters/commit-reveal-weights-enabled) | flag | yes | commit-reveal weights toggle | [`CommitRevealWeightsEnabled`](/code/pallets/subtensor/src/lib.rs#L2285) |
| [`alpha_high`](/docs/hyperparameters/alpha-high) | fraction (u16, 65535 = 1.0) | yes | liquid-alpha smoothing upper bound | — |
| [`alpha_low`](/docs/hyperparameters/alpha-low) | fraction (u16, 65535 = 1.0) | yes | liquid-alpha smoothing lower bound | — |
-| [`liquid_alpha_enabled`](/docs/hyperparameters/liquid-alpha-enabled) | flag | yes | per-weight bonds EMA (liquid alpha) | [`LiquidAlphaOn`](/code/pallets/subtensor/src/lib.rs#L2350) |
-| [`bonds_penalty`](/docs/hyperparameters/bonds-penalty) | fraction (u16, 65535 = 1.0) | yes | penalty on out-of-consensus bonds | [`BondsPenalty`](/code/pallets/subtensor/src/lib.rs#L2238) |
-| [`alpha_sigmoid_steepness`](/docs/hyperparameters/alpha-sigmoid-steepness) | integer | yes | liquid-alpha sigmoid steepness | [`AlphaSigmoidSteepness`](/code/pallets/subtensor/src/lib.rs#L2158) |
-| [`min_childkey_take`](/docs/hyperparameters/min-childkey-take) | fraction (u16, 65535 = 1.0) | yes | floor for childkey take | [`MinChildkeyTakePerSubnet`](/code/pallets/subtensor/src/lib.rs#L1342) |
-| [`owner_immune_neuron_limit`](/docs/hyperparameters/owner-immune-neuron-limit) | integer | yes | owner-designated prune-immune UIDs | [`ImmuneOwnerUidsLimit`](/code/pallets/subtensor/src/lib.rs#L2449) |
-| [`max_allowed_uids`](/docs/hyperparameters/max-allowed-uids) | integer | yes | neuron slot capacity before pruning | [`MaxAllowedUids`](/code/pallets/subtensor/src/lib.rs#L2187) |
-| [`burn_increase_mult`](/docs/hyperparameters/burn-increase-mult) | multiplier (U64F64 bits / 2^64) | yes | burn cost bump per registration | [`BurnIncreaseMult`](/code/pallets/subtensor/src/lib.rs#L2882) |
-| [`burn_half_life`](/docs/hyperparameters/burn-half-life) | blocks (12s) | yes | burn cost decay half-life | [`BurnHalfLife`](/code/pallets/subtensor/src/lib.rs#L2877) |
-| [`collateral_lock_share`](/docs/hyperparameters/collateral-lock-share) | fraction (u16, 65535 = 1.0) | yes | registration price share locked | [`CollateralLockShare`](/code/pallets/subtensor/src/lib.rs#L2891) |
-| [`collateral_drain_ratio`](/docs/hyperparameters/collateral-drain-ratio) | multiplier (U64F64 bits / 2^64) | yes | collateral released per α earned | [`CollateralDrainRatio`](/code/pallets/subtensor/src/lib.rs#L2900) |
-| [`yuma3_enabled`](/docs/hyperparameters/yuma3-enabled) | flag | yes | yuma3 consensus variant toggle | [`Yuma3On`](/code/pallets/subtensor/src/lib.rs#L2355) |
+| [`liquid_alpha_enabled`](/docs/hyperparameters/liquid-alpha-enabled) | flag | yes | per-weight bonds EMA (liquid alpha) | [`LiquidAlphaOn`](/code/pallets/subtensor/src/lib.rs#L2362) |
+| [`bonds_penalty`](/docs/hyperparameters/bonds-penalty) | fraction (u16, 65535 = 1.0) | yes | penalty on out-of-consensus bonds | [`BondsPenalty`](/code/pallets/subtensor/src/lib.rs#L2250) |
+| [`alpha_sigmoid_steepness`](/docs/hyperparameters/alpha-sigmoid-steepness) | integer | yes | liquid-alpha sigmoid steepness | [`AlphaSigmoidSteepness`](/code/pallets/subtensor/src/lib.rs#L2170) |
+| [`min_childkey_take`](/docs/hyperparameters/min-childkey-take) | fraction (u16, 65535 = 1.0) | yes | floor for childkey take | [`MinChildkeyTakePerSubnet`](/code/pallets/subtensor/src/lib.rs#L1354) |
+| [`owner_immune_neuron_limit`](/docs/hyperparameters/owner-immune-neuron-limit) | integer | yes | owner-designated prune-immune UIDs | [`ImmuneOwnerUidsLimit`](/code/pallets/subtensor/src/lib.rs#L2461) |
+| [`max_allowed_uids`](/docs/hyperparameters/max-allowed-uids) | integer | yes | neuron slot capacity before pruning | [`MaxAllowedUids`](/code/pallets/subtensor/src/lib.rs#L2199) |
+| [`burn_increase_mult`](/docs/hyperparameters/burn-increase-mult) | multiplier (U64F64 bits / 2^64) | yes | burn cost bump per registration | [`BurnIncreaseMult`](/code/pallets/subtensor/src/lib.rs#L2894) |
+| [`burn_half_life`](/docs/hyperparameters/burn-half-life) | blocks (12s) | yes | burn cost decay half-life | [`BurnHalfLife`](/code/pallets/subtensor/src/lib.rs#L2889) |
+| [`collateral_lock_share`](/docs/hyperparameters/collateral-lock-share) | fraction (u16, 65535 = 1.0) | yes | registration price share locked | [`CollateralLockShare`](/code/pallets/subtensor/src/lib.rs#L2903) |
+| [`collateral_drain_ratio`](/docs/hyperparameters/collateral-drain-ratio) | multiplier (U64F64 bits / 2^64) | yes | collateral released per α earned | [`CollateralDrainRatio`](/code/pallets/subtensor/src/lib.rs#L2912) |
+| [`yuma3_enabled`](/docs/hyperparameters/yuma3-enabled) | flag | yes | yuma3 consensus variant toggle | [`Yuma3On`](/code/pallets/subtensor/src/lib.rs#L2367) |
| [`yuma_version`](/docs/hyperparameters/yuma-version) | integer | root only | epoch consensus variant (2 or 3) | — |
| [`subnet_is_active`](/docs/hyperparameters/subnet-is-active) | flag | root only | subnet started (staking + emissions) | — |
-| [`subnet_emission_enabled`](/docs/hyperparameters/subnet-emission-enabled) | flag | root only | root switch for TAO emission share | [`SubnetEmissionEnabled`](/code/pallets/subtensor/src/lib.rs#L1515) |
+| [`subnet_emission_enabled`](/docs/hyperparameters/subnet-emission-enabled) | flag | root only | root switch for TAO emission share | [`SubnetEmissionEnabled`](/code/pallets/subtensor/src/lib.rs#L1527) |
| [`user_liquidity_enabled`](/docs/hyperparameters/user-liquidity-enabled) | flag | root only | legacy user-LP flag (always false) | — |
-| [`bonds_reset_enabled`](/docs/hyperparameters/bonds-reset-enabled) | flag | yes | bonds reset on metadata commit | [`BondsResetOn`](/code/pallets/subtensor/src/lib.rs#L2243) |
-| [`transfers_enabled`](/docs/hyperparameters/transfers-enabled) | flag | yes | stake transfers between coldkeys | [`TransferToggle`](/code/pallets/subtensor/src/lib.rs#L1966) |
-| [`owner_cut_enabled`](/docs/hyperparameters/owner-cut-enabled) | flag | yes | owner emission cut toggle | [`OwnerCutEnabled`](/code/pallets/subtensor/src/lib.rs#L1941) |
-| [`owner_cut_auto_lock_enabled`](/docs/hyperparameters/owner-cut-auto-lock-enabled) | flag | yes | auto-lock the owner's emission cut | [`OwnerCutAutoLockEnabled`](/code/pallets/subtensor/src/lib.rs#L1758) |
+| [`bonds_reset_enabled`](/docs/hyperparameters/bonds-reset-enabled) | flag | yes | bonds reset on metadata commit | [`BondsResetOn`](/code/pallets/subtensor/src/lib.rs#L2255) |
+| [`transfers_enabled`](/docs/hyperparameters/transfers-enabled) | flag | yes | stake transfers between coldkeys | [`TransferToggle`](/code/pallets/subtensor/src/lib.rs#L1978) |
+| [`owner_cut_enabled`](/docs/hyperparameters/owner-cut-enabled) | flag | yes | owner emission cut toggle | [`OwnerCutEnabled`](/code/pallets/subtensor/src/lib.rs#L1953) |
+| [`owner_cut_auto_lock_enabled`](/docs/hyperparameters/owner-cut-auto-lock-enabled) | flag | yes | auto-lock the owner's emission cut | [`OwnerCutAutoLockEnabled`](/code/pallets/subtensor/src/lib.rs#L1770) |
diff --git a/docs/query/associated-evm-key.mdx b/docs/query/associated-evm-key.mdx
index 07541bfd72..a3f016be54 100644
--- a/docs/query/associated-evm-key.mdx
+++ b/docs/query/associated-evm-key.mdx
@@ -43,6 +43,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.AssociatedEvmAddress`](/code/pallets/subtensor/src/lib.rs#L2775)
+- Storage [`SubtensorModule.AssociatedEvmAddress`](/code/pallets/subtensor/src/lib.rs#L2787)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/auto-stake-all.mdx b/docs/query/auto-stake-all.mdx
index 4e02f3c739..68870728ba 100644
--- a/docs/query/auto-stake-all.mdx
+++ b/docs/query/auto-stake-all.mdx
@@ -43,6 +43,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.AutoStakeDestination`](/code/pallets/subtensor/src/lib.rs#L1564)
+- Storage [`SubtensorModule.AutoStakeDestination`](/code/pallets/subtensor/src/lib.rs#L1576)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/auto-stake.mdx b/docs/query/auto-stake.mdx
index 83fcc6b801..986951fe9d 100644
--- a/docs/query/auto-stake.mdx
+++ b/docs/query/auto-stake.mdx
@@ -43,6 +43,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.AutoStakeDestination`](/code/pallets/subtensor/src/lib.rs#L1564)
+- Storage [`SubtensorModule.AutoStakeDestination`](/code/pallets/subtensor/src/lib.rs#L1576)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/blocks-since-last-step.mdx b/docs/query/blocks-since-last-step.mdx
index e59158b8c5..bec94a4f5d 100644
--- a/docs/query/blocks-since-last-step.mdx
+++ b/docs/query/blocks-since-last-step.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.BlocksSinceLastStep`](/code/pallets/subtensor/src/lib.rs#L2124)
+- Storage [`SubtensorModule.BlocksSinceLastStep`](/code/pallets/subtensor/src/lib.rs#L2136)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/blocks-since-last-update.mdx b/docs/query/blocks-since-last-update.mdx
index 50c283954f..e24b4e05d6 100644
--- a/docs/query/blocks-since-last-update.mdx
+++ b/docs/query/blocks-since-last-update.mdx
@@ -48,6 +48,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.LastUpdate`](/code/pallets/subtensor/src/lib.rs#L2507)
+- Storage [`SubtensorModule.LastUpdate`](/code/pallets/subtensor/src/lib.rs#L2519)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/bonds.mdx b/docs/query/bonds.mdx
index e97b1bb09e..ec119910ee 100644
--- a/docs/query/bonds.mdx
+++ b/docs/query/bonds.mdx
@@ -46,6 +46,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Bonds`](/code/pallets/subtensor/src/lib.rs#L2535)
+- Storage [`SubtensorModule.Bonds`](/code/pallets/subtensor/src/lib.rs#L2547)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/burn.mdx b/docs/query/burn.mdx
index 0bf41c692e..800761a6a8 100644
--- a/docs/query/burn.mdx
+++ b/docs/query/burn.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Burn`](/code/pallets/subtensor/src/lib.rs#L2278)
+- Storage [`SubtensorModule.Burn`](/code/pallets/subtensor/src/lib.rs#L2290)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/children.mdx b/docs/query/children.mdx
index d93c797301..ab439f3846 100644
--- a/docs/query/children.mdx
+++ b/docs/query/children.mdx
@@ -44,6 +44,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.ChildKeys`](/code/pallets/subtensor/src/lib.rs#L1387)
+- Storage [`SubtensorModule.ChildKeys`](/code/pallets/subtensor/src/lib.rs#L1399)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/coldkey-lock.mdx b/docs/query/coldkey-lock.mdx
index bd9e878e3c..f4589a85dd 100644
--- a/docs/query/coldkey-lock.mdx
+++ b/docs/query/coldkey-lock.mdx
@@ -44,6 +44,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Lock`](/code/pallets/subtensor/src/lib.rs#L1687)
+- Storage [`SubtensorModule.Lock`](/code/pallets/subtensor/src/lib.rs#L1699)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/coldkey-swap-announcement.mdx b/docs/query/coldkey-swap-announcement.mdx
index b3c8290d07..d3d67716d5 100644
--- a/docs/query/coldkey-swap-announcement.mdx
+++ b/docs/query/coldkey-swap-announcement.mdx
@@ -43,7 +43,7 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.ColdkeySwapAnnouncements`](/code/pallets/subtensor/src/lib.rs#L1599)
-- Storage [`SubtensorModule.ColdkeySwapDisputes`](/code/pallets/subtensor/src/lib.rs#L1605)
+- Storage [`SubtensorModule.ColdkeySwapAnnouncements`](/code/pallets/subtensor/src/lib.rs#L1611)
+- Storage [`SubtensorModule.ColdkeySwapDisputes`](/code/pallets/subtensor/src/lib.rs#L1617)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/commit-reveal-enabled.mdx b/docs/query/commit-reveal-enabled.mdx
index 9b71660608..30bcff05ce 100644
--- a/docs/query/commit-reveal-enabled.mdx
+++ b/docs/query/commit-reveal-enabled.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.CommitRevealWeightsEnabled`](/code/pallets/subtensor/src/lib.rs#L2273)
+- Storage [`SubtensorModule.CommitRevealWeightsEnabled`](/code/pallets/subtensor/src/lib.rs#L2285)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/delegate-take.mdx b/docs/query/delegate-take.mdx
index 6de83de500..5f2a2126af 100644
--- a/docs/query/delegate-take.mdx
+++ b/docs/query/delegate-take.mdx
@@ -43,8 +43,8 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Delegates`](/code/pallets/subtensor/src/lib.rs#L1357)
-- Storage [`SubtensorModule.MinDelegateTake`](/code/pallets/subtensor/src/lib.rs#L1330)
-- Storage [`SubtensorModule.MaxDelegateTake`](/code/pallets/subtensor/src/lib.rs#L1326)
+- Storage [`SubtensorModule.Delegates`](/code/pallets/subtensor/src/lib.rs#L1369)
+- Storage [`SubtensorModule.MinDelegateTake`](/code/pallets/subtensor/src/lib.rs#L1342)
+- Storage [`SubtensorModule.MaxDelegateTake`](/code/pallets/subtensor/src/lib.rs#L1338)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/difficulty.mdx b/docs/query/difficulty.mdx
index 685694a19a..3e44308336 100644
--- a/docs/query/difficulty.mdx
+++ b/docs/query/difficulty.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Difficulty`](/code/pallets/subtensor/src/lib.rs#L2282)
+- Storage [`SubtensorModule.Difficulty`](/code/pallets/subtensor/src/lib.rs#L2294)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/epoch-status.mdx b/docs/query/epoch-status.mdx
index 509236361e..5877d01b39 100644
--- a/docs/query/epoch-status.mdx
+++ b/docs/query/epoch-status.mdx
@@ -45,11 +45,11 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Tempo`](/code/pallets/subtensor/src/lib.rs#L1982)
-- Storage [`SubtensorModule.LastEpochBlock`](/code/pallets/subtensor/src/lib.rs#L2007)
-- Storage [`SubtensorModule.BlocksSinceLastStep`](/code/pallets/subtensor/src/lib.rs#L2124)
-- Storage [`SubtensorModule.PendingEpochAt`](/code/pallets/subtensor/src/lib.rs#L2013)
-- Storage [`SubtensorModule.SubnetEpochIndex`](/code/pallets/subtensor/src/lib.rs#L2019)
+- Storage [`SubtensorModule.Tempo`](/code/pallets/subtensor/src/lib.rs#L1994)
+- Storage [`SubtensorModule.LastEpochBlock`](/code/pallets/subtensor/src/lib.rs#L2019)
+- Storage [`SubtensorModule.BlocksSinceLastStep`](/code/pallets/subtensor/src/lib.rs#L2136)
+- Storage [`SubtensorModule.PendingEpochAt`](/code/pallets/subtensor/src/lib.rs#L2025)
+- Storage [`SubtensorModule.SubnetEpochIndex`](/code/pallets/subtensor/src/lib.rs#L2031)
- Runtime API [`SubnetInfoRuntimeApi.get_next_epoch_start_block`](/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1196-L1210)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/hotkey-identities.mdx b/docs/query/hotkey-identities.mdx
index 94c85c6e43..369e1f1886 100644
--- a/docs/query/hotkey-identities.mdx
+++ b/docs/query/hotkey-identities.mdx
@@ -42,7 +42,7 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Owner`](/code/pallets/subtensor/src/lib.rs#L1347)
-- Storage [`SubtensorModule.IdentitiesV2`](/code/pallets/subtensor/src/lib.rs#L2597)
+- Storage [`SubtensorModule.Owner`](/code/pallets/subtensor/src/lib.rs#L1359)
+- Storage [`SubtensorModule.IdentitiesV2`](/code/pallets/subtensor/src/lib.rs#L2609)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/hotkey-owner.mdx b/docs/query/hotkey-owner.mdx
index 5c7f0aabf4..caeb4b94b4 100644
--- a/docs/query/hotkey-owner.mdx
+++ b/docs/query/hotkey-owner.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Owner`](/code/pallets/subtensor/src/lib.rs#L1347)
+- Storage [`SubtensorModule.Owner`](/code/pallets/subtensor/src/lib.rs#L1359)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/identity.mdx b/docs/query/identity.mdx
index 13e112bdc1..7b478abf71 100644
--- a/docs/query/identity.mdx
+++ b/docs/query/identity.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.IdentitiesV2`](/code/pallets/subtensor/src/lib.rs#L2597)
+- Storage [`SubtensorModule.IdentitiesV2`](/code/pallets/subtensor/src/lib.rs#L2609)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/immunity-period.mdx b/docs/query/immunity-period.mdx
index 76690936a3..ff6398724c 100644
--- a/docs/query/immunity-period.mdx
+++ b/docs/query/immunity-period.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.ImmunityPeriod`](/code/pallets/subtensor/src/lib.rs#L2192)
+- Storage [`SubtensorModule.ImmunityPeriod`](/code/pallets/subtensor/src/lib.rs#L2204)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/lease.mdx b/docs/query/lease.mdx
index cfc9343b5c..fed525c66d 100644
--- a/docs/query/lease.mdx
+++ b/docs/query/lease.mdx
@@ -43,6 +43,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.SubnetLeases`](/code/pallets/subtensor/src/lib.rs#L2793)
+- Storage [`SubtensorModule.SubnetLeases`](/code/pallets/subtensor/src/lib.rs#L2805)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/leases.mdx b/docs/query/leases.mdx
index ffbecf7bc2..62137367b5 100644
--- a/docs/query/leases.mdx
+++ b/docs/query/leases.mdx
@@ -40,6 +40,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.SubnetLeases`](/code/pallets/subtensor/src/lib.rs#L2793)
+- Storage [`SubtensorModule.SubnetLeases`](/code/pallets/subtensor/src/lib.rs#L2805)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/locks-for-coldkey.mdx b/docs/query/locks-for-coldkey.mdx
index 5b7f2625a8..1248796391 100644
--- a/docs/query/locks-for-coldkey.mdx
+++ b/docs/query/locks-for-coldkey.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Lock`](/code/pallets/subtensor/src/lib.rs#L1687)
+- Storage [`SubtensorModule.Lock`](/code/pallets/subtensor/src/lib.rs#L1699)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/max-weight-limit.mdx b/docs/query/max-weight-limit.mdx
index c3e3f6cd47..b8ed35d133 100644
--- a/docs/query/max-weight-limit.mdx
+++ b/docs/query/max-weight-limit.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.MaxWeightsLimit`](/code/pallets/subtensor/src/lib.rs#L2208)
+- Storage [`SubtensorModule.MaxWeightsLimit`](/code/pallets/subtensor/src/lib.rs#L2220)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/mechanism-count.mdx b/docs/query/mechanism-count.mdx
index c13e8b0ac8..5f143c9620 100644
--- a/docs/query/mechanism-count.mdx
+++ b/docs/query/mechanism-count.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.MechanismCountCurrent`](/code/pallets/subtensor/src/lib.rs#L2867)
+- Storage [`SubtensorModule.MechanismCountCurrent`](/code/pallets/subtensor/src/lib.rs#L2879)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/mechanism-emission-split.mdx b/docs/query/mechanism-emission-split.mdx
index 29a15063e7..8c256087b3 100644
--- a/docs/query/mechanism-emission-split.mdx
+++ b/docs/query/mechanism-emission-split.mdx
@@ -43,6 +43,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.MechanismEmissionSplit`](/code/pallets/subtensor/src/lib.rs#L2872)
+- Storage [`SubtensorModule.MechanismEmissionSplit`](/code/pallets/subtensor/src/lib.rs#L2884)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/min-allowed-weights.mdx b/docs/query/min-allowed-weights.mdx
index 8249b7385f..88fe638910 100644
--- a/docs/query/min-allowed-weights.mdx
+++ b/docs/query/min-allowed-weights.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.MinAllowedWeights`](/code/pallets/subtensor/src/lib.rs#L2218)
+- Storage [`SubtensorModule.MinAllowedWeights`](/code/pallets/subtensor/src/lib.rs#L2230)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/miner-collateral.mdx b/docs/query/miner-collateral.mdx
index 900ff95a2f..80f643a32d 100644
--- a/docs/query/miner-collateral.mdx
+++ b/docs/query/miner-collateral.mdx
@@ -56,6 +56,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Owner`](/code/pallets/subtensor/src/lib.rs#L1347)
+- Storage [`SubtensorModule.Owner`](/code/pallets/subtensor/src/lib.rs#L1359)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/netuids-for-hotkey.mdx b/docs/query/netuids-for-hotkey.mdx
index ab19ef6244..7753baff19 100644
--- a/docs/query/netuids-for-hotkey.mdx
+++ b/docs/query/netuids-for-hotkey.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.IsNetworkMember`](/code/pallets/subtensor/src/lib.rs#L2050)
+- Storage [`SubtensorModule.IsNetworkMember`](/code/pallets/subtensor/src/lib.rs#L2062)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/owned-hotkeys.mdx b/docs/query/owned-hotkeys.mdx
index 1a203fa705..520edf480f 100644
--- a/docs/query/owned-hotkeys.mdx
+++ b/docs/query/owned-hotkeys.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.OwnedHotkeys`](/code/pallets/subtensor/src/lib.rs#L1559)
+- Storage [`SubtensorModule.OwnedHotkeys`](/code/pallets/subtensor/src/lib.rs#L1571)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/parents.mdx b/docs/query/parents.mdx
index 1081445ff6..c0f4bb44c1 100644
--- a/docs/query/parents.mdx
+++ b/docs/query/parents.mdx
@@ -44,6 +44,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.ParentKeys`](/code/pallets/subtensor/src/lib.rs#L1400)
+- Storage [`SubtensorModule.ParentKeys`](/code/pallets/subtensor/src/lib.rs#L1412)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/pending-children.mdx b/docs/query/pending-children.mdx
index 51afd882d4..e3ef344f2d 100644
--- a/docs/query/pending-children.mdx
+++ b/docs/query/pending-children.mdx
@@ -48,6 +48,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.PendingChildKeys`](/code/pallets/subtensor/src/lib.rs#L1374)
+- Storage [`SubtensorModule.PendingChildKeys`](/code/pallets/subtensor/src/lib.rs#L1386)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/reveal-period.mdx b/docs/query/reveal-period.mdx
index 66766a6858..4ac53fd78e 100644
--- a/docs/query/reveal-period.mdx
+++ b/docs/query/reveal-period.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.RevealPeriodEpochs`](/code/pallets/subtensor/src/lib.rs#L2710)
+- Storage [`SubtensorModule.RevealPeriodEpochs`](/code/pallets/subtensor/src/lib.rs#L2722)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/root-claim-type.mdx b/docs/query/root-claim-type.mdx
index 30f45338fd..a8054fc1ef 100644
--- a/docs/query/root-claim-type.mdx
+++ b/docs/query/root-claim-type.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.RootClaimType`](/code/pallets/subtensor/src/lib.rs#L2752)
+- Storage [`SubtensorModule.RootClaimType`](/code/pallets/subtensor/src/lib.rs#L2764)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/staking-hotkeys.mdx b/docs/query/staking-hotkeys.mdx
index a76a093fd7..c362a1adc5 100644
--- a/docs/query/staking-hotkeys.mdx
+++ b/docs/query/staking-hotkeys.mdx
@@ -43,6 +43,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.StakingHotkeys`](/code/pallets/subtensor/src/lib.rs#L1554)
+- Storage [`SubtensorModule.StakingHotkeys`](/code/pallets/subtensor/src/lib.rs#L1566)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/subnet-collateral.mdx b/docs/query/subnet-collateral.mdx
index 46647d7852..e65daea9fa 100644
--- a/docs/query/subnet-collateral.mdx
+++ b/docs/query/subnet-collateral.mdx
@@ -46,6 +46,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Uids`](/code/pallets/subtensor/src/lib.rs#L2460)
+- Storage [`SubtensorModule.Uids`](/code/pallets/subtensor/src/lib.rs#L2472)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/subnet-convictions.mdx b/docs/query/subnet-convictions.mdx
index 00d6c11b31..34167b7cb9 100644
--- a/docs/query/subnet-convictions.mdx
+++ b/docs/query/subnet-convictions.mdx
@@ -49,14 +49,14 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.HotkeyLock`](/code/pallets/subtensor/src/lib.rs#L1713)
-- Storage [`SubtensorModule.DecayingHotkeyLock`](/code/pallets/subtensor/src/lib.rs#L1725)
-- Storage [`SubtensorModule.OwnerLock`](/code/pallets/subtensor/src/lib.rs#L1737)
-- Storage [`SubtensorModule.DecayingOwnerLock`](/code/pallets/subtensor/src/lib.rs#L1741)
-- Storage [`SubtensorModule.SubnetOwnerHotkey`](/code/pallets/subtensor/src/lib.rs#L2139)
-- Storage [`SubtensorModule.SubnetAlphaOut`](/code/pallets/subtensor/src/lib.rs#L1545)
-- Storage [`SubtensorModule.UnlockRate`](/code/pallets/subtensor/src/lib.rs#L1779)
-- Storage [`SubtensorModule.MaturityRate`](/code/pallets/subtensor/src/lib.rs#L1775)
-- Storage [`SubtensorModule.NetworkRegisteredAt`](/code/pallets/subtensor/src/lib.rs#L2073)
+- Storage [`SubtensorModule.HotkeyLock`](/code/pallets/subtensor/src/lib.rs#L1725)
+- Storage [`SubtensorModule.DecayingHotkeyLock`](/code/pallets/subtensor/src/lib.rs#L1737)
+- Storage [`SubtensorModule.OwnerLock`](/code/pallets/subtensor/src/lib.rs#L1749)
+- Storage [`SubtensorModule.DecayingOwnerLock`](/code/pallets/subtensor/src/lib.rs#L1753)
+- Storage [`SubtensorModule.SubnetOwnerHotkey`](/code/pallets/subtensor/src/lib.rs#L2151)
+- Storage [`SubtensorModule.SubnetAlphaOut`](/code/pallets/subtensor/src/lib.rs#L1557)
+- Storage [`SubtensorModule.UnlockRate`](/code/pallets/subtensor/src/lib.rs#L1791)
+- Storage [`SubtensorModule.MaturityRate`](/code/pallets/subtensor/src/lib.rs#L1787)
+- Storage [`SubtensorModule.NetworkRegisteredAt`](/code/pallets/subtensor/src/lib.rs#L2085)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/subnet-emission-enabled.mdx b/docs/query/subnet-emission-enabled.mdx
index 3da35ec8f5..e35a0708f8 100644
--- a/docs/query/subnet-emission-enabled.mdx
+++ b/docs/query/subnet-emission-enabled.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.SubnetEmissionEnabled`](/code/pallets/subtensor/src/lib.rs#L1515)
+- Storage [`SubtensorModule.SubnetEmissionEnabled`](/code/pallets/subtensor/src/lib.rs#L1527)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/subnet-identity.mdx b/docs/query/subnet-identity.mdx
index b350bb0c91..489ba9e05f 100644
--- a/docs/query/subnet-identity.mdx
+++ b/docs/query/subnet-identity.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.SubnetIdentitiesV3`](/code/pallets/subtensor/src/lib.rs#L2602)
+- Storage [`SubtensorModule.SubnetIdentitiesV3`](/code/pallets/subtensor/src/lib.rs#L2614)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/subnet-names.mdx b/docs/query/subnet-names.mdx
index 09801c56ac..dd48354e63 100644
--- a/docs/query/subnet-names.mdx
+++ b/docs/query/subnet-names.mdx
@@ -40,6 +40,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.SubnetIdentitiesV3`](/code/pallets/subtensor/src/lib.rs#L2602)
+- Storage [`SubtensorModule.SubnetIdentitiesV3`](/code/pallets/subtensor/src/lib.rs#L2614)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/subnet-start-schedule.mdx b/docs/query/subnet-start-schedule.mdx
index 3a361e161c..d29fad9b0d 100644
--- a/docs/query/subnet-start-schedule.mdx
+++ b/docs/query/subnet-start-schedule.mdx
@@ -43,7 +43,7 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.NetworkRegisteredAt`](/code/pallets/subtensor/src/lib.rs#L2073)
+- Storage [`SubtensorModule.NetworkRegisteredAt`](/code/pallets/subtensor/src/lib.rs#L2085)
- Constant [`SubtensorModule.InitialStartCallDelay`](/code/runtime/src/lib.rs#L851)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/subnet.mdx b/docs/query/subnet.mdx
index 524fbae650..15a1e7fe44 100644
--- a/docs/query/subnet.mdx
+++ b/docs/query/subnet.mdx
@@ -42,8 +42,8 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Tempo`](/code/pallets/subtensor/src/lib.rs#L1982)
-- Storage [`SubtensorModule.Burn`](/code/pallets/subtensor/src/lib.rs#L2278)
-- Storage [`SubtensorModule.SubnetworkN`](/code/pallets/subtensor/src/lib.rs#L2041)
+- Storage [`SubtensorModule.Tempo`](/code/pallets/subtensor/src/lib.rs#L1994)
+- Storage [`SubtensorModule.Burn`](/code/pallets/subtensor/src/lib.rs#L2290)
+- Storage [`SubtensorModule.SubnetworkN`](/code/pallets/subtensor/src/lib.rs#L2053)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/subnets.mdx b/docs/query/subnets.mdx
index 8cbfd1fe21..b05b6dbc13 100644
--- a/docs/query/subnets.mdx
+++ b/docs/query/subnets.mdx
@@ -40,9 +40,9 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.NetworksAdded`](/code/pallets/subtensor/src/lib.rs#L2045)
-- Storage [`SubtensorModule.Tempo`](/code/pallets/subtensor/src/lib.rs#L1982)
-- Storage [`SubtensorModule.Burn`](/code/pallets/subtensor/src/lib.rs#L2278)
-- Storage [`SubtensorModule.SubnetworkN`](/code/pallets/subtensor/src/lib.rs#L2041)
+- Storage [`SubtensorModule.NetworksAdded`](/code/pallets/subtensor/src/lib.rs#L2057)
+- Storage [`SubtensorModule.Tempo`](/code/pallets/subtensor/src/lib.rs#L1994)
+- Storage [`SubtensorModule.Burn`](/code/pallets/subtensor/src/lib.rs#L2290)
+- Storage [`SubtensorModule.SubnetworkN`](/code/pallets/subtensor/src/lib.rs#L2053)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/timelocked-weight-commits.mdx b/docs/query/timelocked-weight-commits.mdx
index 154fad9fe4..1205326246 100644
--- a/docs/query/timelocked-weight-commits.mdx
+++ b/docs/query/timelocked-weight-commits.mdx
@@ -47,6 +47,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.TimelockedWeightCommits`](/code/pallets/subtensor/src/lib.rs#L2658)
+- Storage [`SubtensorModule.TimelockedWeightCommits`](/code/pallets/subtensor/src/lib.rs#L2670)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/token-symbols.mdx b/docs/query/token-symbols.mdx
index 6a6d4acb11..b9912874c5 100644
--- a/docs/query/token-symbols.mdx
+++ b/docs/query/token-symbols.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.TokenSymbol`](/code/pallets/subtensor/src/lib.rs#L1793)
+- Storage [`SubtensorModule.TokenSymbol`](/code/pallets/subtensor/src/lib.rs#L1805)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/tx-rate-limit.mdx b/docs/query/tx-rate-limit.mdx
index 905dbde058..90031157d5 100644
--- a/docs/query/tx-rate-limit.mdx
+++ b/docs/query/tx-rate-limit.mdx
@@ -40,6 +40,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.TxRateLimit`](/code/pallets/subtensor/src/lib.rs#L2336)
+- Storage [`SubtensorModule.TxRateLimit`](/code/pallets/subtensor/src/lib.rs#L2348)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/uid.mdx b/docs/query/uid.mdx
index fe39eb74be..b2480a76ad 100644
--- a/docs/query/uid.mdx
+++ b/docs/query/uid.mdx
@@ -43,6 +43,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Uids`](/code/pallets/subtensor/src/lib.rs#L2460)
+- Storage [`SubtensorModule.Uids`](/code/pallets/subtensor/src/lib.rs#L2472)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/weights-rate-limit.mdx b/docs/query/weights-rate-limit.mdx
index afe8742563..a41370795d 100644
--- a/docs/query/weights-rate-limit.mdx
+++ b/docs/query/weights-rate-limit.mdx
@@ -42,6 +42,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.WeightsSetRateLimit`](/code/pallets/subtensor/src/lib.rs#L2248)
+- Storage [`SubtensorModule.WeightsSetRateLimit`](/code/pallets/subtensor/src/lib.rs#L2260)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/query/weights.mdx b/docs/query/weights.mdx
index 3f1470b328..fdeef988ad 100644
--- a/docs/query/weights.mdx
+++ b/docs/query/weights.mdx
@@ -47,6 +47,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`.
## On-chain implementation
-- Storage [`SubtensorModule.Weights`](/code/pallets/subtensor/src/lib.rs#L2522)
+- Storage [`SubtensorModule.Weights`](/code/pallets/subtensor/src/lib.rs#L2534)
Every file is browsable under [/code](/code) exactly as built into the runtime.
diff --git a/docs/tx/add-collateral.mdx b/docs/tx/add-collateral.mdx
index 7431a44d7a..c7f5b10318 100644
--- a/docs/tx/add-collateral.mdx
+++ b/docs/tx/add-collateral.mdx
@@ -23,7 +23,7 @@ to clear unshielded at an unbounded AMM price.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_collateral`](/code/pallets/subtensor/src/macros/dispatches.rs#L2450-L2460) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_collateral`](/code/pallets/subtensor/src/macros/dispatches.rs#L2470-L2480) |
## Parameters
@@ -77,7 +77,7 @@ result = sub.execute_tool("add_collateral", {...}, wallet)
## On-chain implementation
-`SubtensorModule.add_collateral` — [`pallets/subtensor/src/macros/dispatches.rs#L2452`](/code/pallets/subtensor/src/macros/dispatches.rs#L2450-L2460):
+`SubtensorModule.add_collateral` — [`pallets/subtensor/src/macros/dispatches.rs#L2472`](/code/pallets/subtensor/src/macros/dispatches.rs#L2470-L2480):
```rust
#[pallet::call_index(144)]
diff --git a/docs/tx/add-stake-limit.mdx b/docs/tx/add-stake-limit.mdx
index 9f02e57544..ab62d4eeaf 100644
--- a/docs/tx/add-stake-limit.mdx
+++ b/docs/tx/add-stake-limit.mdx
@@ -15,7 +15,7 @@ for large amounts or thin pools, where the swap itself moves the price.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1393-L1412) |
## Parameters
@@ -74,7 +74,7 @@ result = sub.execute_tool("add_stake_limit", {...}, wallet)
## On-chain implementation
-`SubtensorModule.add_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1394`](/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411):
+`SubtensorModule.add_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1395`](/code/pallets/subtensor/src/macros/dispatches.rs#L1393-L1412):
```rust
#[pallet::call_index(88)]
diff --git a/docs/tx/add-stake.mdx b/docs/tx/add-stake.mdx
index 51c68bfb6f..5694e50fc2 100644
--- a/docs/tx/add-stake.mdx
+++ b/docs/tx/add-stake.mdx
@@ -22,7 +22,7 @@ reserve (`InsufficientLiquidity`).
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L559-L568), [`SubtensorModule.add_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L560-L569), [`SubtensorModule.add_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1393-L1412) |
## Parameters
@@ -79,7 +79,7 @@ result = sub.execute_tool("add_stake", {...}, wallet)
## On-chain implementation
-`SubtensorModule.add_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L561`](/code/pallets/subtensor/src/macros/dispatches.rs#L559-L568):
+`SubtensorModule.add_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L562`](/code/pallets/subtensor/src/macros/dispatches.rs#L560-L569):
```rust
#[pallet::call_index(2)]
@@ -96,7 +96,7 @@ pub fn add_stake(
Delegates to [`do_add_stake`](/code/pallets/subtensor/src/staking/add_stake.rs#L30).
-`SubtensorModule.add_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1394`](/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411):
+`SubtensorModule.add_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1395`](/code/pallets/subtensor/src/macros/dispatches.rs#L1393-L1412):
```rust
#[pallet::call_index(88)]
diff --git a/docs/tx/announce-coldkey-swap.mdx b/docs/tx/announce-coldkey-swap.mdx
index 26d4081d16..3058cb418d 100644
--- a/docs/tx/announce-coldkey-swap.mdx
+++ b/docs/tx/announce-coldkey-swap.mdx
@@ -23,7 +23,7 @@ an unauthorized one with `dispute_coldkey_swap`.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.announce_coldkey_swap`](/code/pallets/subtensor/src/macros/dispatches.rs#L1986-L2014) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.announce_coldkey_swap`](/code/pallets/subtensor/src/macros/dispatches.rs#L2006-L2034) |
## Parameters
@@ -72,7 +72,7 @@ result = sub.execute_tool("announce_coldkey_swap", {...}, wallet)
## On-chain implementation
-`SubtensorModule.announce_coldkey_swap` — [`pallets/subtensor/src/macros/dispatches.rs#L1988`](/code/pallets/subtensor/src/macros/dispatches.rs#L1986-L2014):
+`SubtensorModule.announce_coldkey_swap` — [`pallets/subtensor/src/macros/dispatches.rs#L2008`](/code/pallets/subtensor/src/macros/dispatches.rs#L2006-L2034):
```rust
#[pallet::call_index(125)]
@@ -106,6 +106,6 @@ pub fn announce_coldkey_swap(
}
```
-Delegates to [`get_key_swap_cost`](/code/pallets/subtensor/src/utils/misc.rs#L827), [`charge_swap_cost`](/code/pallets/subtensor/src/swap/swap_coldkey.rs#L68).
+Delegates to [`get_key_swap_cost`](/code/pallets/subtensor/src/utils/misc.rs#L832), [`charge_swap_cost`](/code/pallets/subtensor/src/swap/swap_coldkey.rs#L68).
Every file is browsable under [/code](/code) exactly as built into the runtime, or as plain text under `/code/raw/` (index: [`/code/index.json`](/code/index.json)).
diff --git a/docs/tx/associate-evm-key.mdx b/docs/tx/associate-evm-key.mdx
index 067ad382d0..7a868b3eb9 100644
--- a/docs/tx/associate-evm-key.mdx
+++ b/docs/tx/associate-evm-key.mdx
@@ -20,7 +20,7 @@ neuron.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.associate_evm_key`](/code/pallets/subtensor/src/macros/dispatches.rs#L1574-L1588) |
+| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.associate_evm_key`](/code/pallets/subtensor/src/macros/dispatches.rs#L1575-L1589) |
## Parameters
@@ -78,7 +78,7 @@ result = sub.execute_tool("associate_evm_key", {...}, wallet)
## On-chain implementation
-`SubtensorModule.associate_evm_key` — [`pallets/subtensor/src/macros/dispatches.rs#L1580`](/code/pallets/subtensor/src/macros/dispatches.rs#L1574-L1588):
+`SubtensorModule.associate_evm_key` — [`pallets/subtensor/src/macros/dispatches.rs#L1581`](/code/pallets/subtensor/src/macros/dispatches.rs#L1575-L1589):
```rust
#[pallet::call_index(93)]
diff --git a/docs/tx/associate-hotkey.mdx b/docs/tx/associate-hotkey.mdx
index e8ff711891..554961f2bf 100644
--- a/docs/tx/associate-hotkey.mdx
+++ b/docs/tx/associate-hotkey.mdx
@@ -15,7 +15,7 @@ take over the hotkey.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.try_associate_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L1520-L1528) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.try_associate_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L1521-L1529) |
## Parameters
@@ -62,7 +62,7 @@ result = sub.execute_tool("associate_hotkey", {...}, wallet)
## On-chain implementation
-`SubtensorModule.try_associate_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L1522`](/code/pallets/subtensor/src/macros/dispatches.rs#L1520-L1528):
+`SubtensorModule.try_associate_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L1523`](/code/pallets/subtensor/src/macros/dispatches.rs#L1521-L1529):
```rust
#[pallet::call_index(91)]
diff --git a/docs/tx/burned-register.mdx b/docs/tx/burned-register.mdx
index 214a417ee9..5f3659d966 100644
--- a/docs/tx/burned-register.mdx
+++ b/docs/tx/burned-register.mdx
@@ -21,7 +21,7 @@ period ends. Use `root_register` instead for the root network
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.burned_register`](/code/pallets/subtensor/src/macros/dispatches.rs#L816-L824) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.burned_register`](/code/pallets/subtensor/src/macros/dispatches.rs#L817-L825) |
## Parameters
@@ -71,7 +71,7 @@ result = sub.execute_tool("burned_register", {...}, wallet)
## On-chain implementation
-`SubtensorModule.burned_register` — [`pallets/subtensor/src/macros/dispatches.rs#L818`](/code/pallets/subtensor/src/macros/dispatches.rs#L816-L824):
+`SubtensorModule.burned_register` — [`pallets/subtensor/src/macros/dispatches.rs#L819`](/code/pallets/subtensor/src/macros/dispatches.rs#L817-L825):
```rust
#[pallet::call_index(7)]
diff --git a/docs/tx/claim-root.mdx b/docs/tx/claim-root.mdx
index 3a41959421..2f9ecfa9c1 100644
--- a/docs/tx/claim-root.mdx
+++ b/docs/tx/claim-root.mdx
@@ -17,7 +17,7 @@ deadline — but each call pays out only the subnets listed.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.claim_root`](/code/pallets/subtensor/src/macros/dispatches.rs#L1890-L1908) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.claim_root`](/code/pallets/subtensor/src/macros/dispatches.rs#L1896-L1928) |
## Parameters
@@ -66,11 +66,17 @@ result = sub.execute_tool("claim_root", {...}, wallet)
## On-chain implementation
-`SubtensorModule.claim_root` — [`pallets/subtensor/src/macros/dispatches.rs#L1892`](/code/pallets/subtensor/src/macros/dispatches.rs#L1890-L1908):
+`SubtensorModule.claim_root` — [`pallets/subtensor/src/macros/dispatches.rs#L1904`](/code/pallets/subtensor/src/macros/dispatches.rs#L1896-L1928):
```rust
#[pallet::call_index(121)]
-#[pallet::weight(::WeightInfo::claim_root())]
+// The benchmark covers one hotkey and one subnet. Manual claims bound both
+// dimensions below and refund unused weight after execution.
+#[pallet::weight(
+ ::WeightInfo::claim_root()
+ .saturating_mul(MAX_ROOT_CLAIM_HOTKEYS as u64)
+ .saturating_mul(MAX_SUBNET_CLAIMS as u64)
+)]
pub fn claim_root(
origin: OriginFor,
subnets: BTreeSet,
@@ -83,9 +89,17 @@ pub fn claim_root(
Error::::InvalidSubnetNumber
);
+ let hotkey_count = StakingHotkeys::::decode_len(&coldkey).unwrap_or_default();
+ ensure!(
+ hotkey_count <= MAX_ROOT_CLAIM_HOTKEYS,
+ Error::::TooManyRootClaimHotkeys
+ );
+
Self::maybe_add_coldkey_index(&coldkey);
- let weight = Self::do_root_claim(coldkey, Some(subnets))?;
+ let weight = T::DbWeight::get()
+ .reads(1)
+ .saturating_add(Self::do_root_claim(coldkey, Some(subnets))?);
Ok((Some(weight), Pays::Yes).into())
}
```
diff --git a/docs/tx/clear-coldkey-swap-announcement.mdx b/docs/tx/clear-coldkey-swap-announcement.mdx
index 0cf073a023..f32e7cf712 100644
--- a/docs/tx/clear-coldkey-swap-announcement.mdx
+++ b/docs/tx/clear-coldkey-swap-announcement.mdx
@@ -17,7 +17,7 @@ right call instead.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.clear_coldkey_swap_announcement`](/code/pallets/subtensor/src/macros/dispatches.rs#L2185-L2202) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.clear_coldkey_swap_announcement`](/code/pallets/subtensor/src/macros/dispatches.rs#L2205-L2222) |
## Parameters
@@ -62,7 +62,7 @@ result = sub.execute_tool("clear_coldkey_swap_announcement", {...}, wallet)
## On-chain implementation
-`SubtensorModule.clear_coldkey_swap_announcement` — [`pallets/subtensor/src/macros/dispatches.rs#L2187`](/code/pallets/subtensor/src/macros/dispatches.rs#L2185-L2202):
+`SubtensorModule.clear_coldkey_swap_announcement` — [`pallets/subtensor/src/macros/dispatches.rs#L2207`](/code/pallets/subtensor/src/macros/dispatches.rs#L2205-L2222):
```rust
#[pallet::call_index(133)]
diff --git a/docs/tx/commit-weights.mdx b/docs/tx/commit-weights.mdx
index cae59e3f30..a89bd5cb77 100644
--- a/docs/tx/commit-weights.mdx
+++ b/docs/tx/commit-weights.mdx
@@ -16,7 +16,7 @@ commit-reveal setting.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.commit_timelocked_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869) |
+| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.commit_timelocked_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L1856-L1874) |
## Parameters
@@ -70,7 +70,7 @@ result = sub.execute_tool("commit_weights", {...}, wallet)
## On-chain implementation
-`SubtensorModule.commit_timelocked_mechanism_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L1853`](/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869):
+`SubtensorModule.commit_timelocked_mechanism_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L1858`](/code/pallets/subtensor/src/macros/dispatches.rs#L1856-L1874):
```rust
#[pallet::call_index(118)]
diff --git a/docs/tx/decrease-take.mdx b/docs/tx/decrease-take.mdx
index a8f2c201ca..85724ffa91 100644
--- a/docs/tx/decrease-take.mdx
+++ b/docs/tx/decrease-take.mdx
@@ -14,7 +14,7 @@ Use `set_take` to land on an absolute value without tracking direction.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.decrease_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L490-L498) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.decrease_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L491-L499) |
## Parameters
@@ -64,7 +64,7 @@ result = sub.execute_tool("decrease_take", {...}, wallet)
## On-chain implementation
-`SubtensorModule.decrease_take` — [`pallets/subtensor/src/macros/dispatches.rs#L492`](/code/pallets/subtensor/src/macros/dispatches.rs#L490-L498):
+`SubtensorModule.decrease_take` — [`pallets/subtensor/src/macros/dispatches.rs#L493`](/code/pallets/subtensor/src/macros/dispatches.rs#L491-L499):
```rust
#[pallet::call_index(65)]
diff --git a/docs/tx/dispute-coldkey-swap.mdx b/docs/tx/dispute-coldkey-swap.mdx
index a55a96619e..683dc17a37 100644
--- a/docs/tx/dispute-coldkey-swap.mdx
+++ b/docs/tx/dispute-coldkey-swap.mdx
@@ -18,7 +18,7 @@ you made yourself.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.dispute_coldkey_swap`](/code/pallets/subtensor/src/macros/dispatches.rs#L2055-L2074) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.dispute_coldkey_swap`](/code/pallets/subtensor/src/macros/dispatches.rs#L2075-L2094) |
## Parameters
@@ -63,7 +63,7 @@ result = sub.execute_tool("dispute_coldkey_swap", {...}, wallet)
## On-chain implementation
-`SubtensorModule.dispute_coldkey_swap` — [`pallets/subtensor/src/macros/dispatches.rs#L2057`](/code/pallets/subtensor/src/macros/dispatches.rs#L2055-L2074):
+`SubtensorModule.dispute_coldkey_swap` — [`pallets/subtensor/src/macros/dispatches.rs#L2077`](/code/pallets/subtensor/src/macros/dispatches.rs#L2075-L2094):
```rust
#[pallet::call_index(127)]
diff --git a/docs/tx/increase-take.mdx b/docs/tx/increase-take.mdx
index b90af10493..61f69d8587 100644
--- a/docs/tx/increase-take.mdx
+++ b/docs/tx/increase-take.mdx
@@ -15,7 +15,7 @@ without tracking the direction yourself.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.increase_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L523-L531) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.increase_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L524-L532) |
## Parameters
@@ -65,7 +65,7 @@ result = sub.execute_tool("increase_take", {...}, wallet)
## On-chain implementation
-`SubtensorModule.increase_take` — [`pallets/subtensor/src/macros/dispatches.rs#L525`](/code/pallets/subtensor/src/macros/dispatches.rs#L523-L531):
+`SubtensorModule.increase_take` — [`pallets/subtensor/src/macros/dispatches.rs#L526`](/code/pallets/subtensor/src/macros/dispatches.rs#L524-L532):
```rust
#[pallet::call_index(66)]
diff --git a/docs/tx/lock-stake.mdx b/docs/tx/lock-stake.mdx
index 79fcf19da5..ec4b0485a3 100644
--- a/docs/tx/lock-stake.mdx
+++ b/docs/tx/lock-stake.mdx
@@ -21,7 +21,7 @@ persists is controlled per coldkey per subnet with
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.lock_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L2257-L2267) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.lock_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L2277-L2287) |
## Parameters
@@ -74,7 +74,7 @@ result = sub.execute_tool("lock_stake", {...}, wallet)
## On-chain implementation
-`SubtensorModule.lock_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L2259`](/code/pallets/subtensor/src/macros/dispatches.rs#L2257-L2267):
+`SubtensorModule.lock_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L2279`](/code/pallets/subtensor/src/macros/dispatches.rs#L2277-L2287):
```rust
#[pallet::call_index(136)]
diff --git a/docs/tx/move-lock.mdx b/docs/tx/move-lock.mdx
index c08b3f59e5..e25f0b17e2 100644
--- a/docs/tx/move-lock.mdx
+++ b/docs/tx/move-lock.mdx
@@ -16,7 +16,7 @@ existing lock on the subnet to move.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.move_lock`](/code/pallets/subtensor/src/macros/dispatches.rs#L2281-L2290) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.move_lock`](/code/pallets/subtensor/src/macros/dispatches.rs#L2301-L2310) |
## Parameters
@@ -68,7 +68,7 @@ result = sub.execute_tool("move_lock", {...}, wallet)
## On-chain implementation
-`SubtensorModule.move_lock` — [`pallets/subtensor/src/macros/dispatches.rs#L2283`](/code/pallets/subtensor/src/macros/dispatches.rs#L2281-L2290):
+`SubtensorModule.move_lock` — [`pallets/subtensor/src/macros/dispatches.rs#L2303`](/code/pallets/subtensor/src/macros/dispatches.rs#L2301-L2310):
```rust
#[pallet::call_index(137)]
diff --git a/docs/tx/move-stake.mdx b/docs/tx/move-stake.mdx
index 26b664b268..8740a9b666 100644
--- a/docs/tx/move-stake.mdx
+++ b/docs/tx/move-stake.mdx
@@ -16,7 +16,7 @@ changes.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.move_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1256-L1274) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.move_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1257-L1275) |
## Parameters
@@ -77,7 +77,7 @@ result = sub.execute_tool("move_stake", {...}, wallet)
## On-chain implementation
-`SubtensorModule.move_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1258`](/code/pallets/subtensor/src/macros/dispatches.rs#L1256-L1274):
+`SubtensorModule.move_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1259`](/code/pallets/subtensor/src/macros/dispatches.rs#L1257-L1275):
```rust
#[pallet::call_index(85)]
diff --git a/docs/tx/register-leased-network.mdx b/docs/tx/register-leased-network.mdx
index 71ff678c13..70c7cbcebf 100644
--- a/docs/tx/register-leased-network.mdx
+++ b/docs/tx/register-leased-network.mdx
@@ -19,7 +19,7 @@ perpetual and ownership never transfers.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.register_leased_network`](/code/pallets/subtensor/src/macros/dispatches.rs#L1672-L1680) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.register_leased_network`](/code/pallets/subtensor/src/macros/dispatches.rs#L1677-L1685) |
## Parameters
@@ -69,7 +69,7 @@ result = sub.execute_tool("register_leased_network", {...}, wallet)
## On-chain implementation
-`SubtensorModule.register_leased_network` — [`pallets/subtensor/src/macros/dispatches.rs#L1674`](/code/pallets/subtensor/src/macros/dispatches.rs#L1672-L1680):
+`SubtensorModule.register_leased_network` — [`pallets/subtensor/src/macros/dispatches.rs#L1679`](/code/pallets/subtensor/src/macros/dispatches.rs#L1677-L1685):
```rust
#[pallet::call_index(110)]
diff --git a/docs/tx/register-subnet.mdx b/docs/tx/register-subnet.mdx
index e6024e0a04..cc6505fd7f 100644
--- a/docs/tx/register-subnet.mdx
+++ b/docs/tx/register-subnet.mdx
@@ -27,7 +27,7 @@ current cost before sending.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.register_network`](/code/pallets/subtensor/src/macros/dispatches.rs#L1003-L1007) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.register_network`](/code/pallets/subtensor/src/macros/dispatches.rs#L1004-L1008) |
## Parameters
@@ -74,7 +74,7 @@ result = sub.execute_tool("register_subnet", {...}, wallet)
## On-chain implementation
-`SubtensorModule.register_network` — [`pallets/subtensor/src/macros/dispatches.rs#L1005`](/code/pallets/subtensor/src/macros/dispatches.rs#L1003-L1007):
+`SubtensorModule.register_network` — [`pallets/subtensor/src/macros/dispatches.rs#L1006`](/code/pallets/subtensor/src/macros/dispatches.rs#L1004-L1008):
```rust
#[pallet::call_index(59)]
diff --git a/docs/tx/remove-stake-limit.mdx b/docs/tx/remove-stake-limit.mdx
index 0fa466bc2a..220f213fa4 100644
--- a/docs/tx/remove-stake-limit.mdx
+++ b/docs/tx/remove-stake-limit.mdx
@@ -16,7 +16,7 @@ this over plain `remove_stake` when exiting large positions.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.remove_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.remove_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1446-L1464) |
## Parameters
@@ -75,7 +75,7 @@ result = sub.execute_tool("remove_stake_limit", {...}, wallet)
## On-chain implementation
-`SubtensorModule.remove_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1447`](/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463):
+`SubtensorModule.remove_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1448`](/code/pallets/subtensor/src/macros/dispatches.rs#L1446-L1464):
```rust
#[pallet::call_index(89)]
diff --git a/docs/tx/remove-stake.mdx b/docs/tx/remove-stake.mdx
index 928e8ade62..cbe4407b62 100644
--- a/docs/tx/remove-stake.mdx
+++ b/docs/tx/remove-stake.mdx
@@ -22,7 +22,7 @@ position instead of leaving dust (`AmountTooLow`).
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.remove_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L593-L602), [`SubtensorModule.remove_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.remove_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L594-L603), [`SubtensorModule.remove_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1446-L1464) |
## Parameters
@@ -79,7 +79,7 @@ result = sub.execute_tool("remove_stake", {...}, wallet)
## On-chain implementation
-`SubtensorModule.remove_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L595`](/code/pallets/subtensor/src/macros/dispatches.rs#L593-L602):
+`SubtensorModule.remove_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L596`](/code/pallets/subtensor/src/macros/dispatches.rs#L594-L603):
```rust
#[pallet::call_index(3)]
@@ -96,7 +96,7 @@ pub fn remove_stake(
Delegates to [`do_remove_stake`](/code/pallets/subtensor/src/staking/remove_stake.rs#L35).
-`SubtensorModule.remove_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1447`](/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463):
+`SubtensorModule.remove_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1448`](/code/pallets/subtensor/src/macros/dispatches.rs#L1446-L1464):
```rust
#[pallet::call_index(89)]
diff --git a/docs/tx/reset-axon.mdx b/docs/tx/reset-axon.mdx
index 9df96c0396..0c9541d30f 100644
--- a/docs/tx/reset-axon.mdx
+++ b/docs/tx/reset-axon.mdx
@@ -13,7 +13,7 @@ is back up.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.serve_axon`](/code/pallets/subtensor/src/macros/dispatches.rs#L640-L665) |
+| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.serve_axon`](/code/pallets/subtensor/src/macros/dispatches.rs#L641-L666) |
## Parameters
@@ -62,7 +62,7 @@ result = sub.execute_tool("reset_axon", {...}, wallet)
## On-chain implementation
-`SubtensorModule.serve_axon` — [`pallets/subtensor/src/macros/dispatches.rs#L642`](/code/pallets/subtensor/src/macros/dispatches.rs#L640-L665):
+`SubtensorModule.serve_axon` — [`pallets/subtensor/src/macros/dispatches.rs#L643`](/code/pallets/subtensor/src/macros/dispatches.rs#L641-L666):
```rust
#[pallet::call_index(4)]
diff --git a/docs/tx/reveal-weights.mdx b/docs/tx/reveal-weights.mdx
index d3555d3089..171d7ffedb 100644
--- a/docs/tx/reveal-weights.mdx
+++ b/docs/tx/reveal-weights.mdx
@@ -18,7 +18,7 @@ salt-based commits — the timelocked path used by `set_weights` and
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.reveal_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L275-L286) |
+| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.reveal_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L276-L287) |
## Parameters
@@ -77,7 +77,7 @@ result = sub.execute_tool("reveal_weights", {...}, wallet)
## On-chain implementation
-`SubtensorModule.reveal_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L277`](/code/pallets/subtensor/src/macros/dispatches.rs#L275-L286):
+`SubtensorModule.reveal_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L278`](/code/pallets/subtensor/src/macros/dispatches.rs#L276-L287):
```rust
#[pallet::call_index(97)]
diff --git a/docs/tx/root-register.mdx b/docs/tx/root-register.mdx
index d438a2dcf6..2af74bb9ee 100644
--- a/docs/tx/root-register.mdx
+++ b/docs/tx/root-register.mdx
@@ -17,7 +17,7 @@ hitting either cap fails until the window passes. Use
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.root_register`](/code/pallets/subtensor/src/macros/dispatches.rs#L809-L813) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.root_register`](/code/pallets/subtensor/src/macros/dispatches.rs#L810-L814) |
## Parameters
@@ -64,7 +64,7 @@ result = sub.execute_tool("root_register", {...}, wallet)
## On-chain implementation
-`SubtensorModule.root_register` — [`pallets/subtensor/src/macros/dispatches.rs#L811`](/code/pallets/subtensor/src/macros/dispatches.rs#L809-L813):
+`SubtensorModule.root_register` — [`pallets/subtensor/src/macros/dispatches.rs#L812`](/code/pallets/subtensor/src/macros/dispatches.rs#L810-L814):
```rust
#[pallet::call_index(62)]
diff --git a/docs/tx/serve-axon-tls.mdx b/docs/tx/serve-axon-tls.mdx
index 37ba43cc50..74fc172604 100644
--- a/docs/tx/serve-axon-tls.mdx
+++ b/docs/tx/serve-axon-tls.mdx
@@ -15,7 +15,7 @@ the hotkey, which must be registered on the subnet. Use plain
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.serve_axon_tls`](/code/pallets/subtensor/src/macros/dispatches.rs#L706-L732) |
+| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.serve_axon_tls`](/code/pallets/subtensor/src/macros/dispatches.rs#L707-L733) |
## Parameters
@@ -75,7 +75,7 @@ result = sub.execute_tool("serve_axon_tls", {...}, wallet)
## On-chain implementation
-`SubtensorModule.serve_axon_tls` — [`pallets/subtensor/src/macros/dispatches.rs#L708`](/code/pallets/subtensor/src/macros/dispatches.rs#L706-L732):
+`SubtensorModule.serve_axon_tls` — [`pallets/subtensor/src/macros/dispatches.rs#L709`](/code/pallets/subtensor/src/macros/dispatches.rs#L707-L733):
```rust
#[pallet::call_index(40)]
diff --git a/docs/tx/serve-axon.mdx b/docs/tx/serve-axon.mdx
index d7c8920552..15a7c9a5ee 100644
--- a/docs/tx/serve-axon.mdx
+++ b/docs/tx/serve-axon.mdx
@@ -15,7 +15,7 @@ endpoint.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.serve_axon`](/code/pallets/subtensor/src/macros/dispatches.rs#L640-L665) |
+| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.serve_axon`](/code/pallets/subtensor/src/macros/dispatches.rs#L641-L666) |
## Parameters
@@ -72,7 +72,7 @@ result = sub.execute_tool("serve_axon", {...}, wallet)
## On-chain implementation
-`SubtensorModule.serve_axon` — [`pallets/subtensor/src/macros/dispatches.rs#L642`](/code/pallets/subtensor/src/macros/dispatches.rs#L640-L665):
+`SubtensorModule.serve_axon` — [`pallets/subtensor/src/macros/dispatches.rs#L643`](/code/pallets/subtensor/src/macros/dispatches.rs#L641-L666):
```rust
#[pallet::call_index(4)]
diff --git a/docs/tx/serve-prometheus.mdx b/docs/tx/serve-prometheus.mdx
index 4026ee94c9..c923195c27 100644
--- a/docs/tx/serve-prometheus.mdx
+++ b/docs/tx/serve-prometheus.mdx
@@ -13,7 +13,7 @@ data — running the metrics server is up to the caller.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.serve_prometheus`](/code/pallets/subtensor/src/macros/dispatches.rs#L748-L759) |
+| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.serve_prometheus`](/code/pallets/subtensor/src/macros/dispatches.rs#L749-L760) |
## Parameters
@@ -69,7 +69,7 @@ result = sub.execute_tool("serve_prometheus", {...}, wallet)
## On-chain implementation
-`SubtensorModule.serve_prometheus` — [`pallets/subtensor/src/macros/dispatches.rs#L750`](/code/pallets/subtensor/src/macros/dispatches.rs#L748-L759):
+`SubtensorModule.serve_prometheus` — [`pallets/subtensor/src/macros/dispatches.rs#L751`](/code/pallets/subtensor/src/macros/dispatches.rs#L749-L760):
```rust
#[pallet::call_index(5)]
diff --git a/docs/tx/set-auto-stake.mdx b/docs/tx/set-auto-stake.mdx
index c098db4fd6..d76d1775f4 100644
--- a/docs/tx/set-auto-stake.mdx
+++ b/docs/tx/set-auto-stake.mdx
@@ -17,7 +17,7 @@ back with the `auto_stake` read.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_coldkey_auto_stake_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L1785-L1827) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_coldkey_auto_stake_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L1790-L1832) |
## Parameters
@@ -67,7 +67,7 @@ result = sub.execute_tool("set_auto_stake", {...}, wallet)
## On-chain implementation
-`SubtensorModule.set_coldkey_auto_stake_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L1787`](/code/pallets/subtensor/src/macros/dispatches.rs#L1785-L1827):
+`SubtensorModule.set_coldkey_auto_stake_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L1792`](/code/pallets/subtensor/src/macros/dispatches.rs#L1790-L1832):
```rust
#[pallet::call_index(114)]
diff --git a/docs/tx/set-childkey-take.mdx b/docs/tx/set-childkey-take.mdx
index 627f399d34..c7c66aae09 100644
--- a/docs/tx/set-childkey-take.mdx
+++ b/docs/tx/set-childkey-take.mdx
@@ -14,7 +14,7 @@ minimum and maximum childkey take bounds, and rate-limits only increases
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_childkey_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L926-L938) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_childkey_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L927-L939) |
## Parameters
@@ -67,7 +67,7 @@ result = sub.execute_tool("set_childkey_take", {...}, wallet)
## On-chain implementation
-`SubtensorModule.set_childkey_take` — [`pallets/subtensor/src/macros/dispatches.rs#L928`](/code/pallets/subtensor/src/macros/dispatches.rs#L926-L938):
+`SubtensorModule.set_childkey_take` — [`pallets/subtensor/src/macros/dispatches.rs#L929`](/code/pallets/subtensor/src/macros/dispatches.rs#L927-L939):
```rust
#[pallet::call_index(75)]
@@ -85,6 +85,6 @@ pub fn set_childkey_take(
}
```
-Delegates to [`do_set_childkey_take`](/code/pallets/subtensor/src/staking/set_children.rs#L707).
+Delegates to [`do_set_childkey_take`](/code/pallets/subtensor/src/staking/set_children.rs#L708).
Every file is browsable under [/code](/code) exactly as built into the runtime, or as plain text under `/code/raw/` (index: [`/code/index.json`](/code/index.json)).
diff --git a/docs/tx/set-children.mdx b/docs/tx/set-children.mdx
index 7bd80dc4c6..26ada12cbf 100644
--- a/docs/tx/set-children.mdx
+++ b/docs/tx/set-children.mdx
@@ -26,7 +26,7 @@ is not yet enabled, where they apply immediately.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_children`](/code/pallets/subtensor/src/macros/dispatches.rs#L1078-L1088) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_children`](/code/pallets/subtensor/src/macros/dispatches.rs#L1079-L1089) |
## Parameters
@@ -79,7 +79,7 @@ result = sub.execute_tool("set_children", {...}, wallet)
## On-chain implementation
-`SubtensorModule.set_children` — [`pallets/subtensor/src/macros/dispatches.rs#L1080`](/code/pallets/subtensor/src/macros/dispatches.rs#L1078-L1088):
+`SubtensorModule.set_children` — [`pallets/subtensor/src/macros/dispatches.rs#L1081`](/code/pallets/subtensor/src/macros/dispatches.rs#L1079-L1089):
```rust
#[pallet::call_index(67)]
diff --git a/docs/tx/set-hyperparameter.mdx b/docs/tx/set-hyperparameter.mdx
index 241506a59c..a69f91734b 100644
--- a/docs/tx/set-hyperparameter.mdx
+++ b/docs/tx/set-hyperparameter.mdx
@@ -19,7 +19,7 @@ fail. Read current values back with the `subnet_hyperparameters` read.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | subnet owner | AdminUtils | [`AdminUtils.sudo_set_tempo`](/code/pallets/admin-utils/src/lib.rs#L1021-L1036), [`AdminUtils.sudo_set_immunity_period`](/code/pallets/admin-utils/src/lib.rs#L474-L502), [`AdminUtils.sudo_set_min_allowed_weights`](/code/pallets/admin-utils/src/lib.rs#L507-L535), [`AdminUtils.sudo_set_weights_version_key`](/code/pallets/admin-utils/src/lib.rs#L359-L389), [`AdminUtils.sudo_set_activity_cutoff_factor`](/code/pallets/admin-utils/src/lib.rs#L679-L695), [`AdminUtils.sudo_set_min_burn`](/code/pallets/admin-utils/src/lib.rs#L761-L795), [`AdminUtils.sudo_set_max_burn`](/code/pallets/admin-utils/src/lib.rs#L800-L834), [`AdminUtils.sudo_set_bonds_moving_average`](/code/pallets/admin-utils/src/lib.rs#L892-L926), [`AdminUtils.sudo_set_bonds_penalty`](/code/pallets/admin-utils/src/lib.rs#L931-L957), [`AdminUtils.sudo_set_serving_rate_limit`](/code/pallets/admin-utils/src/lib.rs#L276-L297), [`AdminUtils.sudo_set_commit_reveal_weights_interval`](/code/pallets/admin-utils/src/lib.rs#L1374-L1403), [`AdminUtils.sudo_set_max_allowed_uids`](/code/pallets/admin-utils/src/lib.rs#L540-L585), [`AdminUtils.sudo_set_burn_increase_mult`](/code/pallets/admin-utils/src/lib.rs#L2193-L2233), [`AdminUtils.sudo_set_burn_half_life`](/code/pallets/admin-utils/src/lib.rs#L2151-L2189), [`AdminUtils.sudo_set_collateral_lock_share`](/code/pallets/admin-utils/src/lib.rs#L2317-L2352), [`AdminUtils.sudo_set_collateral_drain_ratio`](/code/pallets/admin-utils/src/lib.rs#L2360-L2401), [`AdminUtils.sudo_set_adjustment_alpha`](/code/pallets/admin-utils/src/lib.rs#L443-L469), [`AdminUtils.sudo_set_rho`](/code/pallets/admin-utils/src/lib.rs#L606-L628), [`AdminUtils.sudo_set_max_difficulty`](/code/pallets/admin-utils/src/lib.rs#L326-L354), [`AdminUtils.sudo_set_alpha_sigmoid_steepness`](/code/pallets/admin-utils/src/lib.rs#L1625-L1659), [`AdminUtils.sudo_set_min_childkey_take_per_subnet`](/code/pallets/admin-utils/src/lib.rs#L1198-L1232), [`AdminUtils.sudo_set_owner_immune_neuron_limit`](/code/pallets/admin-utils/src/lib.rs#L1811-L1831), [`AdminUtils.sudo_set_alpha_values`](/code/pallets/admin-utils/src/lib.rs#L1299-L1324), [`AdminUtils.sudo_set_commit_reveal_weights_enabled`](/code/pallets/admin-utils/src/lib.rs#L1237-L1264), [`AdminUtils.sudo_set_liquid_alpha_enabled`](/code/pallets/admin-utils/src/lib.rs#L1275-L1296), [`AdminUtils.sudo_set_network_pow_registration_allowed`](/code/pallets/admin-utils/src/lib.rs#L721-L729), [`AdminUtils.sudo_set_yuma3_enabled`](/code/pallets/admin-utils/src/lib.rs#L1670-L1693), [`AdminUtils.sudo_set_bonds_reset_enabled`](/code/pallets/admin-utils/src/lib.rs#L1704-L1727), [`AdminUtils.sudo_set_toggle_transfer`](/code/pallets/admin-utils/src/lib.rs#L1463-L1485), [`AdminUtils.sudo_set_owner_cut_enabled`](/code/pallets/admin-utils/src/lib.rs#L2237-L2257), [`AdminUtils.sudo_set_owner_cut_auto_lock_enabled`](/code/pallets/admin-utils/src/lib.rs#L2261-L2281) |
+| `coldkey` | subnet owner | AdminUtils | [`AdminUtils.sudo_set_tempo`](/code/pallets/admin-utils/src/lib.rs#L1027-L1042), [`AdminUtils.sudo_set_immunity_period`](/code/pallets/admin-utils/src/lib.rs#L480-L508), [`AdminUtils.sudo_set_min_allowed_weights`](/code/pallets/admin-utils/src/lib.rs#L513-L541), [`AdminUtils.sudo_set_weights_version_key`](/code/pallets/admin-utils/src/lib.rs#L365-L395), [`AdminUtils.sudo_set_activity_cutoff_factor`](/code/pallets/admin-utils/src/lib.rs#L685-L701), [`AdminUtils.sudo_set_min_burn`](/code/pallets/admin-utils/src/lib.rs#L767-L801), [`AdminUtils.sudo_set_max_burn`](/code/pallets/admin-utils/src/lib.rs#L806-L840), [`AdminUtils.sudo_set_bonds_moving_average`](/code/pallets/admin-utils/src/lib.rs#L898-L932), [`AdminUtils.sudo_set_bonds_penalty`](/code/pallets/admin-utils/src/lib.rs#L937-L963), [`AdminUtils.sudo_set_serving_rate_limit`](/code/pallets/admin-utils/src/lib.rs#L282-L303), [`AdminUtils.sudo_set_commit_reveal_weights_interval`](/code/pallets/admin-utils/src/lib.rs#L1380-L1409), [`AdminUtils.sudo_set_max_allowed_uids`](/code/pallets/admin-utils/src/lib.rs#L546-L591), [`AdminUtils.sudo_set_burn_increase_mult`](/code/pallets/admin-utils/src/lib.rs#L2199-L2239), [`AdminUtils.sudo_set_burn_half_life`](/code/pallets/admin-utils/src/lib.rs#L2157-L2195), [`AdminUtils.sudo_set_collateral_lock_share`](/code/pallets/admin-utils/src/lib.rs#L2323-L2358), [`AdminUtils.sudo_set_collateral_drain_ratio`](/code/pallets/admin-utils/src/lib.rs#L2366-L2407), [`AdminUtils.sudo_set_adjustment_alpha`](/code/pallets/admin-utils/src/lib.rs#L449-L475), [`AdminUtils.sudo_set_rho`](/code/pallets/admin-utils/src/lib.rs#L612-L634), [`AdminUtils.sudo_set_max_difficulty`](/code/pallets/admin-utils/src/lib.rs#L332-L360), [`AdminUtils.sudo_set_alpha_sigmoid_steepness`](/code/pallets/admin-utils/src/lib.rs#L1631-L1665), [`AdminUtils.sudo_set_min_childkey_take_per_subnet`](/code/pallets/admin-utils/src/lib.rs#L1204-L1238), [`AdminUtils.sudo_set_owner_immune_neuron_limit`](/code/pallets/admin-utils/src/lib.rs#L1817-L1837), [`AdminUtils.sudo_set_alpha_values`](/code/pallets/admin-utils/src/lib.rs#L1305-L1330), [`AdminUtils.sudo_set_commit_reveal_weights_enabled`](/code/pallets/admin-utils/src/lib.rs#L1243-L1270), [`AdminUtils.sudo_set_liquid_alpha_enabled`](/code/pallets/admin-utils/src/lib.rs#L1281-L1302), [`AdminUtils.sudo_set_network_pow_registration_allowed`](/code/pallets/admin-utils/src/lib.rs#L727-L735), [`AdminUtils.sudo_set_yuma3_enabled`](/code/pallets/admin-utils/src/lib.rs#L1676-L1699), [`AdminUtils.sudo_set_bonds_reset_enabled`](/code/pallets/admin-utils/src/lib.rs#L1710-L1733), [`AdminUtils.sudo_set_toggle_transfer`](/code/pallets/admin-utils/src/lib.rs#L1469-L1491), [`AdminUtils.sudo_set_owner_cut_enabled`](/code/pallets/admin-utils/src/lib.rs#L2243-L2263), [`AdminUtils.sudo_set_owner_cut_auto_lock_enabled`](/code/pallets/admin-utils/src/lib.rs#L2267-L2287) |
## Parameters
@@ -76,36 +76,36 @@ result = sub.execute_tool("set_hyperparameter", {...}, wallet)
| Chain call | Source |
| --- | --- |
-| `AdminUtils.sudo_set_tempo` | [`pallets/admin-utils/src/lib.rs#L1032`](/code/pallets/admin-utils/src/lib.rs#L1021-L1036) |
-| `AdminUtils.sudo_set_immunity_period` | [`pallets/admin-utils/src/lib.rs#L476`](/code/pallets/admin-utils/src/lib.rs#L474-L502) |
-| `AdminUtils.sudo_set_min_allowed_weights` | [`pallets/admin-utils/src/lib.rs#L509`](/code/pallets/admin-utils/src/lib.rs#L507-L535) |
-| `AdminUtils.sudo_set_weights_version_key` | [`pallets/admin-utils/src/lib.rs#L361`](/code/pallets/admin-utils/src/lib.rs#L359-L389) |
-| `AdminUtils.sudo_set_activity_cutoff_factor` | [`pallets/admin-utils/src/lib.rs#L681`](/code/pallets/admin-utils/src/lib.rs#L679-L695) |
-| `AdminUtils.sudo_set_min_burn` | [`pallets/admin-utils/src/lib.rs#L763`](/code/pallets/admin-utils/src/lib.rs#L761-L795) |
-| `AdminUtils.sudo_set_max_burn` | [`pallets/admin-utils/src/lib.rs#L802`](/code/pallets/admin-utils/src/lib.rs#L800-L834) |
-| `AdminUtils.sudo_set_bonds_moving_average` | [`pallets/admin-utils/src/lib.rs#L894`](/code/pallets/admin-utils/src/lib.rs#L892-L926) |
-| `AdminUtils.sudo_set_bonds_penalty` | [`pallets/admin-utils/src/lib.rs#L933`](/code/pallets/admin-utils/src/lib.rs#L931-L957) |
-| `AdminUtils.sudo_set_serving_rate_limit` | [`pallets/admin-utils/src/lib.rs#L278`](/code/pallets/admin-utils/src/lib.rs#L276-L297) |
-| `AdminUtils.sudo_set_commit_reveal_weights_interval` | [`pallets/admin-utils/src/lib.rs#L1376`](/code/pallets/admin-utils/src/lib.rs#L1374-L1403) |
-| `AdminUtils.sudo_set_max_allowed_uids` | [`pallets/admin-utils/src/lib.rs#L542`](/code/pallets/admin-utils/src/lib.rs#L540-L585) |
-| `AdminUtils.sudo_set_burn_increase_mult` | [`pallets/admin-utils/src/lib.rs#L2195`](/code/pallets/admin-utils/src/lib.rs#L2193-L2233) |
-| `AdminUtils.sudo_set_burn_half_life` | [`pallets/admin-utils/src/lib.rs#L2153`](/code/pallets/admin-utils/src/lib.rs#L2151-L2189) |
-| `AdminUtils.sudo_set_collateral_lock_share` | [`pallets/admin-utils/src/lib.rs#L2319`](/code/pallets/admin-utils/src/lib.rs#L2317-L2352) |
-| `AdminUtils.sudo_set_collateral_drain_ratio` | [`pallets/admin-utils/src/lib.rs#L2362`](/code/pallets/admin-utils/src/lib.rs#L2360-L2401) |
-| `AdminUtils.sudo_set_adjustment_alpha` | [`pallets/admin-utils/src/lib.rs#L445`](/code/pallets/admin-utils/src/lib.rs#L443-L469) |
-| `AdminUtils.sudo_set_rho` | [`pallets/admin-utils/src/lib.rs#L608`](/code/pallets/admin-utils/src/lib.rs#L606-L628) |
-| `AdminUtils.sudo_set_max_difficulty` | [`pallets/admin-utils/src/lib.rs#L328`](/code/pallets/admin-utils/src/lib.rs#L326-L354) |
-| `AdminUtils.sudo_set_alpha_sigmoid_steepness` | [`pallets/admin-utils/src/lib.rs#L1627`](/code/pallets/admin-utils/src/lib.rs#L1625-L1659) |
-| `AdminUtils.sudo_set_min_childkey_take_per_subnet` | [`pallets/admin-utils/src/lib.rs#L1200`](/code/pallets/admin-utils/src/lib.rs#L1198-L1232) |
-| `AdminUtils.sudo_set_owner_immune_neuron_limit` | [`pallets/admin-utils/src/lib.rs#L1813`](/code/pallets/admin-utils/src/lib.rs#L1811-L1831) |
-| `AdminUtils.sudo_set_alpha_values` | [`pallets/admin-utils/src/lib.rs#L1301`](/code/pallets/admin-utils/src/lib.rs#L1299-L1324) |
-| `AdminUtils.sudo_set_commit_reveal_weights_enabled` | [`pallets/admin-utils/src/lib.rs#L1239`](/code/pallets/admin-utils/src/lib.rs#L1237-L1264) |
-| `AdminUtils.sudo_set_liquid_alpha_enabled` | [`pallets/admin-utils/src/lib.rs#L1277`](/code/pallets/admin-utils/src/lib.rs#L1275-L1296) |
-| `AdminUtils.sudo_set_network_pow_registration_allowed` | [`pallets/admin-utils/src/lib.rs#L723`](/code/pallets/admin-utils/src/lib.rs#L721-L729) |
-| `AdminUtils.sudo_set_yuma3_enabled` | [`pallets/admin-utils/src/lib.rs#L1672`](/code/pallets/admin-utils/src/lib.rs#L1670-L1693) |
-| `AdminUtils.sudo_set_bonds_reset_enabled` | [`pallets/admin-utils/src/lib.rs#L1706`](/code/pallets/admin-utils/src/lib.rs#L1704-L1727) |
-| `AdminUtils.sudo_set_toggle_transfer` | [`pallets/admin-utils/src/lib.rs#L1465`](/code/pallets/admin-utils/src/lib.rs#L1463-L1485) |
-| `AdminUtils.sudo_set_owner_cut_enabled` | [`pallets/admin-utils/src/lib.rs#L2239`](/code/pallets/admin-utils/src/lib.rs#L2237-L2257) |
-| `AdminUtils.sudo_set_owner_cut_auto_lock_enabled` | [`pallets/admin-utils/src/lib.rs#L2263`](/code/pallets/admin-utils/src/lib.rs#L2261-L2281) |
+| `AdminUtils.sudo_set_tempo` | [`pallets/admin-utils/src/lib.rs#L1038`](/code/pallets/admin-utils/src/lib.rs#L1027-L1042) |
+| `AdminUtils.sudo_set_immunity_period` | [`pallets/admin-utils/src/lib.rs#L482`](/code/pallets/admin-utils/src/lib.rs#L480-L508) |
+| `AdminUtils.sudo_set_min_allowed_weights` | [`pallets/admin-utils/src/lib.rs#L515`](/code/pallets/admin-utils/src/lib.rs#L513-L541) |
+| `AdminUtils.sudo_set_weights_version_key` | [`pallets/admin-utils/src/lib.rs#L367`](/code/pallets/admin-utils/src/lib.rs#L365-L395) |
+| `AdminUtils.sudo_set_activity_cutoff_factor` | [`pallets/admin-utils/src/lib.rs#L687`](/code/pallets/admin-utils/src/lib.rs#L685-L701) |
+| `AdminUtils.sudo_set_min_burn` | [`pallets/admin-utils/src/lib.rs#L769`](/code/pallets/admin-utils/src/lib.rs#L767-L801) |
+| `AdminUtils.sudo_set_max_burn` | [`pallets/admin-utils/src/lib.rs#L808`](/code/pallets/admin-utils/src/lib.rs#L806-L840) |
+| `AdminUtils.sudo_set_bonds_moving_average` | [`pallets/admin-utils/src/lib.rs#L900`](/code/pallets/admin-utils/src/lib.rs#L898-L932) |
+| `AdminUtils.sudo_set_bonds_penalty` | [`pallets/admin-utils/src/lib.rs#L939`](/code/pallets/admin-utils/src/lib.rs#L937-L963) |
+| `AdminUtils.sudo_set_serving_rate_limit` | [`pallets/admin-utils/src/lib.rs#L284`](/code/pallets/admin-utils/src/lib.rs#L282-L303) |
+| `AdminUtils.sudo_set_commit_reveal_weights_interval` | [`pallets/admin-utils/src/lib.rs#L1382`](/code/pallets/admin-utils/src/lib.rs#L1380-L1409) |
+| `AdminUtils.sudo_set_max_allowed_uids` | [`pallets/admin-utils/src/lib.rs#L548`](/code/pallets/admin-utils/src/lib.rs#L546-L591) |
+| `AdminUtils.sudo_set_burn_increase_mult` | [`pallets/admin-utils/src/lib.rs#L2201`](/code/pallets/admin-utils/src/lib.rs#L2199-L2239) |
+| `AdminUtils.sudo_set_burn_half_life` | [`pallets/admin-utils/src/lib.rs#L2159`](/code/pallets/admin-utils/src/lib.rs#L2157-L2195) |
+| `AdminUtils.sudo_set_collateral_lock_share` | [`pallets/admin-utils/src/lib.rs#L2325`](/code/pallets/admin-utils/src/lib.rs#L2323-L2358) |
+| `AdminUtils.sudo_set_collateral_drain_ratio` | [`pallets/admin-utils/src/lib.rs#L2368`](/code/pallets/admin-utils/src/lib.rs#L2366-L2407) |
+| `AdminUtils.sudo_set_adjustment_alpha` | [`pallets/admin-utils/src/lib.rs#L451`](/code/pallets/admin-utils/src/lib.rs#L449-L475) |
+| `AdminUtils.sudo_set_rho` | [`pallets/admin-utils/src/lib.rs#L614`](/code/pallets/admin-utils/src/lib.rs#L612-L634) |
+| `AdminUtils.sudo_set_max_difficulty` | [`pallets/admin-utils/src/lib.rs#L334`](/code/pallets/admin-utils/src/lib.rs#L332-L360) |
+| `AdminUtils.sudo_set_alpha_sigmoid_steepness` | [`pallets/admin-utils/src/lib.rs#L1633`](/code/pallets/admin-utils/src/lib.rs#L1631-L1665) |
+| `AdminUtils.sudo_set_min_childkey_take_per_subnet` | [`pallets/admin-utils/src/lib.rs#L1206`](/code/pallets/admin-utils/src/lib.rs#L1204-L1238) |
+| `AdminUtils.sudo_set_owner_immune_neuron_limit` | [`pallets/admin-utils/src/lib.rs#L1819`](/code/pallets/admin-utils/src/lib.rs#L1817-L1837) |
+| `AdminUtils.sudo_set_alpha_values` | [`pallets/admin-utils/src/lib.rs#L1307`](/code/pallets/admin-utils/src/lib.rs#L1305-L1330) |
+| `AdminUtils.sudo_set_commit_reveal_weights_enabled` | [`pallets/admin-utils/src/lib.rs#L1245`](/code/pallets/admin-utils/src/lib.rs#L1243-L1270) |
+| `AdminUtils.sudo_set_liquid_alpha_enabled` | [`pallets/admin-utils/src/lib.rs#L1283`](/code/pallets/admin-utils/src/lib.rs#L1281-L1302) |
+| `AdminUtils.sudo_set_network_pow_registration_allowed` | [`pallets/admin-utils/src/lib.rs#L729`](/code/pallets/admin-utils/src/lib.rs#L727-L735) |
+| `AdminUtils.sudo_set_yuma3_enabled` | [`pallets/admin-utils/src/lib.rs#L1678`](/code/pallets/admin-utils/src/lib.rs#L1676-L1699) |
+| `AdminUtils.sudo_set_bonds_reset_enabled` | [`pallets/admin-utils/src/lib.rs#L1712`](/code/pallets/admin-utils/src/lib.rs#L1710-L1733) |
+| `AdminUtils.sudo_set_toggle_transfer` | [`pallets/admin-utils/src/lib.rs#L1471`](/code/pallets/admin-utils/src/lib.rs#L1469-L1491) |
+| `AdminUtils.sudo_set_owner_cut_enabled` | [`pallets/admin-utils/src/lib.rs#L2245`](/code/pallets/admin-utils/src/lib.rs#L2243-L2263) |
+| `AdminUtils.sudo_set_owner_cut_auto_lock_enabled` | [`pallets/admin-utils/src/lib.rs#L2269`](/code/pallets/admin-utils/src/lib.rs#L2267-L2287) |
Every file is browsable under [/code](/code) exactly as built into the runtime, or as plain text under `/code/raw/` (index: [`/code/index.json`](/code/index.json)).
diff --git a/docs/tx/set-identity.mdx b/docs/tx/set-identity.mdx
index ce6fd88233..bdd626889a 100644
--- a/docs/tx/set-identity.mdx
+++ b/docs/tx/set-identity.mdx
@@ -17,7 +17,7 @@ cosmetic: no effect on balances, stake, or permissions.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_identity`](/code/pallets/subtensor/src/macros/dispatches.rs#L1119-L1141) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_identity`](/code/pallets/subtensor/src/macros/dispatches.rs#L1120-L1142) |
## Parameters
@@ -72,7 +72,7 @@ result = sub.execute_tool("set_identity", {...}, wallet)
## On-chain implementation
-`SubtensorModule.set_identity` — [`pallets/subtensor/src/macros/dispatches.rs#L1121`](/code/pallets/subtensor/src/macros/dispatches.rs#L1119-L1141):
+`SubtensorModule.set_identity` — [`pallets/subtensor/src/macros/dispatches.rs#L1122`](/code/pallets/subtensor/src/macros/dispatches.rs#L1120-L1142):
```rust
#[pallet::call_index(68)]
diff --git a/docs/tx/set-mechanism-count.mdx b/docs/tx/set-mechanism-count.mdx
index e61e34b124..786ac6b716 100644
--- a/docs/tx/set-mechanism-count.mdx
+++ b/docs/tx/set-mechanism-count.mdx
@@ -16,7 +16,7 @@ end-of-epoch admin freeze window.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | subnet owner | AdminUtils | [`AdminUtils.sudo_set_mechanism_count`](/code/pallets/admin-utils/src/lib.rs#L1871-L1893) |
+| `coldkey` | subnet owner | AdminUtils | [`AdminUtils.sudo_set_mechanism_count`](/code/pallets/admin-utils/src/lib.rs#L1877-L1899) |
## Parameters
@@ -68,7 +68,7 @@ result = sub.execute_tool("set_mechanism_count", {...}, wallet)
## On-chain implementation
-`AdminUtils.sudo_set_mechanism_count` — [`pallets/admin-utils/src/lib.rs#L1873`](/code/pallets/admin-utils/src/lib.rs#L1871-L1893):
+`AdminUtils.sudo_set_mechanism_count` — [`pallets/admin-utils/src/lib.rs#L1879`](/code/pallets/admin-utils/src/lib.rs#L1877-L1899):
```rust
#[pallet::call_index(76)]
diff --git a/docs/tx/set-min-collateral.mdx b/docs/tx/set-min-collateral.mdx
index 2231be96c2..abf95fd96e 100644
--- a/docs/tx/set-min-collateral.mdx
+++ b/docs/tx/set-min-collateral.mdx
@@ -15,7 +15,7 @@ immediately). Zero clears the floor and restores pure drain behavior.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_min_collateral`](/code/pallets/subtensor/src/macros/dispatches.rs#L2485-L2494) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_min_collateral`](/code/pallets/subtensor/src/macros/dispatches.rs#L2505-L2514) |
## Parameters
@@ -68,7 +68,7 @@ result = sub.execute_tool("set_min_collateral", {...}, wallet)
## On-chain implementation
-`SubtensorModule.set_min_collateral` — [`pallets/subtensor/src/macros/dispatches.rs#L2487`](/code/pallets/subtensor/src/macros/dispatches.rs#L2485-L2494):
+`SubtensorModule.set_min_collateral` — [`pallets/subtensor/src/macros/dispatches.rs#L2507`](/code/pallets/subtensor/src/macros/dispatches.rs#L2505-L2514):
```rust
#[pallet::call_index(145)]
diff --git a/docs/tx/set-perpetual-lock.mdx b/docs/tx/set-perpetual-lock.mdx
index ccf168fe20..3a7ea40974 100644
--- a/docs/tx/set-perpetual-lock.mdx
+++ b/docs/tx/set-perpetual-lock.mdx
@@ -15,7 +15,7 @@ illiquid until you switch back to decaying and the lock runs off.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_perpetual_lock`](/code/pallets/subtensor/src/macros/dispatches.rs#L2297-L2306) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_perpetual_lock`](/code/pallets/subtensor/src/macros/dispatches.rs#L2317-L2326) |
## Parameters
@@ -67,7 +67,7 @@ result = sub.execute_tool("set_perpetual_lock", {...}, wallet)
## On-chain implementation
-`SubtensorModule.set_perpetual_lock` — [`pallets/subtensor/src/macros/dispatches.rs#L2299`](/code/pallets/subtensor/src/macros/dispatches.rs#L2297-L2306):
+`SubtensorModule.set_perpetual_lock` — [`pallets/subtensor/src/macros/dispatches.rs#L2319`](/code/pallets/subtensor/src/macros/dispatches.rs#L2317-L2326):
```rust
#[pallet::call_index(138)]
diff --git a/docs/tx/set-root-claim-type.mdx b/docs/tx/set-root-claim-type.mdx
index e6284cbac3..53978f7d79 100644
--- a/docs/tx/set-root-claim-type.mdx
+++ b/docs/tx/set-root-claim-type.mdx
@@ -14,7 +14,7 @@ already claimed. Read it back with the `root_claim_type` read.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_root_claim_type`](/code/pallets/subtensor/src/macros/dispatches.rs#L1917-L1933) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_root_claim_type`](/code/pallets/subtensor/src/macros/dispatches.rs#L1937-L1953) |
## Parameters
@@ -62,7 +62,7 @@ result = sub.execute_tool("set_root_claim_type", {...}, wallet)
## On-chain implementation
-`SubtensorModule.set_root_claim_type` — [`pallets/subtensor/src/macros/dispatches.rs#L1919`](/code/pallets/subtensor/src/macros/dispatches.rs#L1917-L1933):
+`SubtensorModule.set_root_claim_type` — [`pallets/subtensor/src/macros/dispatches.rs#L1939`](/code/pallets/subtensor/src/macros/dispatches.rs#L1937-L1953):
```rust
#[pallet::call_index(122)]
diff --git a/docs/tx/set-subnet-emission-enabled.mdx b/docs/tx/set-subnet-emission-enabled.mdx
index 5ee7d358c0..065039efef 100644
--- a/docs/tx/set-subnet-emission-enabled.mdx
+++ b/docs/tx/set-subnet-emission-enabled.mdx
@@ -24,7 +24,7 @@ read.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | root (chain sudo) | AdminUtils | [`AdminUtils.sudo_set_subnet_emission_enabled`](/code/pallets/admin-utils/src/lib.rs#L2289-L2309), `Sudo.sudo` |
+| `coldkey` | root (chain sudo) | AdminUtils | [`AdminUtils.sudo_set_subnet_emission_enabled`](/code/pallets/admin-utils/src/lib.rs#L2295-L2315), `Sudo.sudo` |
## Verify
@@ -85,7 +85,7 @@ result = sub.execute_tool("set_subnet_emission_enabled", {...}, wallet)
## On-chain implementation
-`AdminUtils.sudo_set_subnet_emission_enabled` — [`pallets/admin-utils/src/lib.rs#L2291`](/code/pallets/admin-utils/src/lib.rs#L2289-L2309):
+`AdminUtils.sudo_set_subnet_emission_enabled` — [`pallets/admin-utils/src/lib.rs#L2297`](/code/pallets/admin-utils/src/lib.rs#L2295-L2315):
```rust
#[pallet::call_index(94)]
diff --git a/docs/tx/set-subnet-identity.mdx b/docs/tx/set-subnet-identity.mdx
index 30f4a60250..1340587359 100644
--- a/docs/tx/set-subnet-identity.mdx
+++ b/docs/tx/set-subnet-identity.mdx
@@ -15,7 +15,7 @@ for economics use `set_hyperparameter`.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.set_subnet_identity`](/code/pallets/subtensor/src/macros/dispatches.rs#L1154-L1180) |
+| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.set_subnet_identity`](/code/pallets/subtensor/src/macros/dispatches.rs#L1155-L1181) |
## Parameters
@@ -74,7 +74,7 @@ result = sub.execute_tool("set_subnet_identity", {...}, wallet)
## On-chain implementation
-`SubtensorModule.set_subnet_identity` — [`pallets/subtensor/src/macros/dispatches.rs#L1156`](/code/pallets/subtensor/src/macros/dispatches.rs#L1154-L1180):
+`SubtensorModule.set_subnet_identity` — [`pallets/subtensor/src/macros/dispatches.rs#L1157`](/code/pallets/subtensor/src/macros/dispatches.rs#L1155-L1181):
```rust
#[pallet::call_index(78)]
diff --git a/docs/tx/set-take.mdx b/docs/tx/set-take.mdx
index e4f3d1231a..c6cf32965a 100644
--- a/docs/tx/set-take.mdx
+++ b/docs/tx/set-take.mdx
@@ -15,7 +15,7 @@ hotkey. If the move is upward it inherits the increase path's constraints
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.increase_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L523-L531), [`SubtensorModule.decrease_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L490-L498) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.increase_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L524-L532), [`SubtensorModule.decrease_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L491-L499) |
## Parameters
@@ -65,7 +65,7 @@ result = sub.execute_tool("set_take", {...}, wallet)
## On-chain implementation
-`SubtensorModule.increase_take` — [`pallets/subtensor/src/macros/dispatches.rs#L525`](/code/pallets/subtensor/src/macros/dispatches.rs#L523-L531):
+`SubtensorModule.increase_take` — [`pallets/subtensor/src/macros/dispatches.rs#L526`](/code/pallets/subtensor/src/macros/dispatches.rs#L524-L532):
```rust
#[pallet::call_index(66)]
@@ -81,7 +81,7 @@ pub fn increase_take(
Delegates to [`do_increase_take`](/code/pallets/subtensor/src/staking/increase_take.rs#L27).
-`SubtensorModule.decrease_take` — [`pallets/subtensor/src/macros/dispatches.rs#L492`](/code/pallets/subtensor/src/macros/dispatches.rs#L490-L498):
+`SubtensorModule.decrease_take` — [`pallets/subtensor/src/macros/dispatches.rs#L493`](/code/pallets/subtensor/src/macros/dispatches.rs#L491-L499):
```rust
#[pallet::call_index(65)]
diff --git a/docs/tx/set-weights.mdx b/docs/tx/set-weights.mdx
index b11e1db90a..43d6fb9e4f 100644
--- a/docs/tx/set-weights.mdx
+++ b/docs/tx/set-weights.mdx
@@ -22,7 +22,7 @@ unless you specifically need to force one path.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L128-L143), [`SubtensorModule.commit_timelocked_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869) |
+| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L129-L144), [`SubtensorModule.commit_timelocked_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L1856-L1874) |
## Parameters
@@ -75,7 +75,7 @@ result = sub.execute_tool("set_weights", {...}, wallet)
## On-chain implementation
-`SubtensorModule.set_mechanism_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L130`](/code/pallets/subtensor/src/macros/dispatches.rs#L128-L143):
+`SubtensorModule.set_mechanism_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L131`](/code/pallets/subtensor/src/macros/dispatches.rs#L129-L144):
```rust
#[pallet::call_index(119)]
@@ -96,9 +96,9 @@ pub fn set_mechanism_weights(
}
```
-Delegates to [`get_commit_reveal_weights_enabled`](/code/pallets/subtensor/src/utils/misc.rs#L607), [`do_set_mechanism_weights`](/code/pallets/subtensor/src/subnets/weights.rs#L916).
+Delegates to [`get_commit_reveal_weights_enabled`](/code/pallets/subtensor/src/utils/misc.rs#L612), [`do_set_mechanism_weights`](/code/pallets/subtensor/src/subnets/weights.rs#L916).
-`SubtensorModule.commit_timelocked_mechanism_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L1853`](/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869):
+`SubtensorModule.commit_timelocked_mechanism_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L1858`](/code/pallets/subtensor/src/macros/dispatches.rs#L1856-L1874):
```rust
#[pallet::call_index(118)]
diff --git a/docs/tx/stake-burn.mdx b/docs/tx/stake-burn.mdx
index d8766cd125..98e987681c 100644
--- a/docs/tx/stake-burn.mdx
+++ b/docs/tx/stake-burn.mdx
@@ -18,7 +18,7 @@ cap.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake_burn`](/code/pallets/subtensor/src/macros/dispatches.rs#L2169-L2179) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake_burn`](/code/pallets/subtensor/src/macros/dispatches.rs#L2189-L2199) |
## Parameters
@@ -74,7 +74,7 @@ result = sub.execute_tool("stake_burn", {...}, wallet)
## On-chain implementation
-`SubtensorModule.add_stake_burn` — [`pallets/subtensor/src/macros/dispatches.rs#L2171`](/code/pallets/subtensor/src/macros/dispatches.rs#L2169-L2179):
+`SubtensorModule.add_stake_burn` — [`pallets/subtensor/src/macros/dispatches.rs#L2191`](/code/pallets/subtensor/src/macros/dispatches.rs#L2189-L2199):
```rust
#[pallet::call_index(132)]
diff --git a/docs/tx/start-call.mdx b/docs/tx/start-call.mdx
index a9878949f8..41b97dbcf0 100644
--- a/docs/tx/start-call.mdx
+++ b/docs/tx/start-call.mdx
@@ -16,7 +16,7 @@ as soon as the delay allows.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.start_call`](/code/pallets/subtensor/src/macros/dispatches.rs#L1538-L1543) |
+| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.start_call`](/code/pallets/subtensor/src/macros/dispatches.rs#L1539-L1544) |
## Parameters
@@ -65,7 +65,7 @@ result = sub.execute_tool("start_call", {...}, wallet)
## On-chain implementation
-`SubtensorModule.start_call` — [`pallets/subtensor/src/macros/dispatches.rs#L1540`](/code/pallets/subtensor/src/macros/dispatches.rs#L1538-L1543):
+`SubtensorModule.start_call` — [`pallets/subtensor/src/macros/dispatches.rs#L1541`](/code/pallets/subtensor/src/macros/dispatches.rs#L1539-L1544):
```rust
#[pallet::call_index(92)]
diff --git a/docs/tx/swap-coldkey-announced.mdx b/docs/tx/swap-coldkey-announced.mdx
index e48ba8ec55..3a4340af43 100644
--- a/docs/tx/swap-coldkey-announced.mdx
+++ b/docs/tx/swap-coldkey-announced.mdx
@@ -15,7 +15,7 @@ future operations sign with the new coldkey.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.swap_coldkey_announced`](/code/pallets/subtensor/src/macros/dispatches.rs#L2024-L2046) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.swap_coldkey_announced`](/code/pallets/subtensor/src/macros/dispatches.rs#L2044-L2066) |
## Parameters
@@ -64,7 +64,7 @@ result = sub.execute_tool("swap_coldkey_announced", {...}, wallet)
## On-chain implementation
-`SubtensorModule.swap_coldkey_announced` — [`pallets/subtensor/src/macros/dispatches.rs#L2026`](/code/pallets/subtensor/src/macros/dispatches.rs#L2024-L2046):
+`SubtensorModule.swap_coldkey_announced` — [`pallets/subtensor/src/macros/dispatches.rs#L2046`](/code/pallets/subtensor/src/macros/dispatches.rs#L2044-L2066):
```rust
#[pallet::call_index(126)]
diff --git a/docs/tx/swap-hotkey.mdx b/docs/tx/swap-hotkey.mdx
index 9c91bca8ae..615f7c82aa 100644
--- a/docs/tx/swap-hotkey.mdx
+++ b/docs/tx/swap-hotkey.mdx
@@ -23,7 +23,7 @@ instead.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.swap_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L836-L849) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.swap_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L837-L850) |
## Parameters
@@ -74,7 +74,7 @@ result = sub.execute_tool("swap_hotkey", {...}, wallet)
## On-chain implementation
-`SubtensorModule.swap_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L842`](/code/pallets/subtensor/src/macros/dispatches.rs#L836-L849):
+`SubtensorModule.swap_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L843`](/code/pallets/subtensor/src/macros/dispatches.rs#L837-L850):
```rust
#[pallet::call_index(70)]
diff --git a/docs/tx/swap-stake.mdx b/docs/tx/swap-stake.mdx
index 10a7bace0c..f14887ffaa 100644
--- a/docs/tx/swap-stake.mdx
+++ b/docs/tx/swap-stake.mdx
@@ -18,7 +18,7 @@ only if you want to control each leg separately.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.swap_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1342-L1358), [`SubtensorModule.swap_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1490-L1510) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.swap_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1343-L1359), [`SubtensorModule.swap_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1491-L1511) |
## Parameters
@@ -78,7 +78,7 @@ result = sub.execute_tool("swap_stake", {...}, wallet)
## On-chain implementation
-`SubtensorModule.swap_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1344`](/code/pallets/subtensor/src/macros/dispatches.rs#L1342-L1358):
+`SubtensorModule.swap_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1345`](/code/pallets/subtensor/src/macros/dispatches.rs#L1343-L1359):
```rust
#[pallet::call_index(87)]
@@ -102,7 +102,7 @@ pub fn swap_stake(
Delegates to [`do_swap_stake`](/code/pallets/subtensor/src/staking/move_stake.rs#L260).
-`SubtensorModule.swap_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1492`](/code/pallets/subtensor/src/macros/dispatches.rs#L1490-L1510):
+`SubtensorModule.swap_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1493`](/code/pallets/subtensor/src/macros/dispatches.rs#L1491-L1511):
```rust
#[pallet::call_index(90)]
diff --git a/docs/tx/terminate-lease.mdx b/docs/tx/terminate-lease.mdx
index 978da36226..4d1696b077 100644
--- a/docs/tx/terminate-lease.mdx
+++ b/docs/tx/terminate-lease.mdx
@@ -14,7 +14,7 @@ block with the `lease` read before calling.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.terminate_lease`](/code/pallets/subtensor/src/macros/dispatches.rs#L1695-L1703) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.terminate_lease`](/code/pallets/subtensor/src/macros/dispatches.rs#L1700-L1708) |
## Parameters
@@ -64,7 +64,7 @@ result = sub.execute_tool("terminate_lease", {...}, wallet)
## On-chain implementation
-`SubtensorModule.terminate_lease` — [`pallets/subtensor/src/macros/dispatches.rs#L1697`](/code/pallets/subtensor/src/macros/dispatches.rs#L1695-L1703):
+`SubtensorModule.terminate_lease` — [`pallets/subtensor/src/macros/dispatches.rs#L1702`](/code/pallets/subtensor/src/macros/dispatches.rs#L1700-L1708):
```rust
#[pallet::call_index(111)]
diff --git a/docs/tx/transfer-stake.mdx b/docs/tx/transfer-stake.mdx
index 3b948f2e6d..db8c747f69 100644
--- a/docs/tx/transfer-stake.mdx
+++ b/docs/tx/transfer-stake.mdx
@@ -19,7 +19,7 @@ this as an unbounded spend and blocks it until the cap is raised. Use
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.transfer_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1300-L1318), [`SubtensorModule.transfer_stake_and_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L2392-L2412) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.transfer_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1301-L1319), [`SubtensorModule.transfer_stake_and_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L2412-L2432) |
## Parameters
@@ -81,7 +81,7 @@ result = sub.execute_tool("transfer_stake", {...}, wallet)
## On-chain implementation
-`SubtensorModule.transfer_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1302`](/code/pallets/subtensor/src/macros/dispatches.rs#L1300-L1318):
+`SubtensorModule.transfer_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1303`](/code/pallets/subtensor/src/macros/dispatches.rs#L1301-L1319):
```rust
#[pallet::call_index(86)]
@@ -107,7 +107,7 @@ pub fn transfer_stake(
Delegates to [`do_transfer_stake`](/code/pallets/subtensor/src/staking/move_stake.rs#L120).
-`SubtensorModule.transfer_stake_and_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L2394`](/code/pallets/subtensor/src/macros/dispatches.rs#L2392-L2412):
+`SubtensorModule.transfer_stake_and_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L2414`](/code/pallets/subtensor/src/macros/dispatches.rs#L2412-L2432):
```rust
#[pallet::call_index(143)]
diff --git a/docs/tx/trim-subnet.mdx b/docs/tx/trim-subnet.mdx
index 0c318f7804..6a1b68a100 100644
--- a/docs/tx/trim-subnet.mdx
+++ b/docs/tx/trim-subnet.mdx
@@ -21,7 +21,7 @@ at or above the current UID count instead.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | subnet owner | AdminUtils | [`AdminUtils.sudo_trim_to_max_allowed_uids`](/code/pallets/admin-utils/src/lib.rs#L1925-L1947) |
+| `coldkey` | subnet owner | AdminUtils | [`AdminUtils.sudo_trim_to_max_allowed_uids`](/code/pallets/admin-utils/src/lib.rs#L1931-L1953) |
## Parameters
@@ -73,7 +73,7 @@ result = sub.execute_tool("trim_subnet", {...}, wallet)
## On-chain implementation
-`AdminUtils.sudo_trim_to_max_allowed_uids` — [`pallets/admin-utils/src/lib.rs#L1927`](/code/pallets/admin-utils/src/lib.rs#L1925-L1947):
+`AdminUtils.sudo_trim_to_max_allowed_uids` — [`pallets/admin-utils/src/lib.rs#L1933`](/code/pallets/admin-utils/src/lib.rs#L1931-L1953):
```rust
#[pallet::call_index(78)]
diff --git a/docs/tx/unstake-all-alpha.mdx b/docs/tx/unstake-all-alpha.mdx
index 6c96c92213..d644a93902 100644
--- a/docs/tx/unstake-all-alpha.mdx
+++ b/docs/tx/unstake-all-alpha.mdx
@@ -16,7 +16,7 @@ incur slippage.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.unstake_all_alpha`](/code/pallets/subtensor/src/macros/dispatches.rs#L1235-L1239) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.unstake_all_alpha`](/code/pallets/subtensor/src/macros/dispatches.rs#L1236-L1240) |
## Parameters
@@ -65,7 +65,7 @@ result = sub.execute_tool("unstake_all_alpha", {...}, wallet)
## On-chain implementation
-`SubtensorModule.unstake_all_alpha` — [`pallets/subtensor/src/macros/dispatches.rs#L1237`](/code/pallets/subtensor/src/macros/dispatches.rs#L1235-L1239):
+`SubtensorModule.unstake_all_alpha` — [`pallets/subtensor/src/macros/dispatches.rs#L1238`](/code/pallets/subtensor/src/macros/dispatches.rs#L1236-L1240):
```rust
#[pallet::call_index(84)]
diff --git a/docs/tx/unstake-all.mdx b/docs/tx/unstake-all.mdx
index 59c75bb442..9d50f19650 100644
--- a/docs/tx/unstake-all.mdx
+++ b/docs/tx/unstake-all.mdx
@@ -17,7 +17,7 @@ staked.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.unstake_all`](/code/pallets/subtensor/src/macros/dispatches.rs#L1211-L1215) |
+| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.unstake_all`](/code/pallets/subtensor/src/macros/dispatches.rs#L1212-L1216) |
## Parameters
@@ -66,7 +66,7 @@ result = sub.execute_tool("unstake_all", {...}, wallet)
## On-chain implementation
-`SubtensorModule.unstake_all` — [`pallets/subtensor/src/macros/dispatches.rs#L1213`](/code/pallets/subtensor/src/macros/dispatches.rs#L1211-L1215):
+`SubtensorModule.unstake_all` — [`pallets/subtensor/src/macros/dispatches.rs#L1214`](/code/pallets/subtensor/src/macros/dispatches.rs#L1212-L1216):
```rust
#[pallet::call_index(83)]
diff --git a/docs/tx/update-symbol.mdx b/docs/tx/update-symbol.mdx
index e028138654..22496ffe11 100644
--- a/docs/tx/update-symbol.mdx
+++ b/docs/tx/update-symbol.mdx
@@ -15,7 +15,7 @@ stake, and emissions are untouched.
| Signer | Origin | Pallet | Wraps |
| --- | --- | --- | --- |
-| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.update_symbol`](/code/pallets/subtensor/src/macros/dispatches.rs#L1720-L1737) |
+| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.update_symbol`](/code/pallets/subtensor/src/macros/dispatches.rs#L1725-L1742) |
## Parameters
@@ -67,7 +67,7 @@ result = sub.execute_tool("update_symbol", {...}, wallet)
## On-chain implementation
-`SubtensorModule.update_symbol` — [`pallets/subtensor/src/macros/dispatches.rs#L1722`](/code/pallets/subtensor/src/macros/dispatches.rs#L1720-L1737):
+`SubtensorModule.update_symbol` — [`pallets/subtensor/src/macros/dispatches.rs#L1727`](/code/pallets/subtensor/src/macros/dispatches.rs#L1725-L1742):
```rust
#[pallet::call_index(112)]
diff --git a/eco-tests/src/helpers.rs b/eco-tests/src/helpers.rs
index 16f7ddeaa9..cd29472325 100644
--- a/eco-tests/src/helpers.rs
+++ b/eco-tests/src/helpers.rs
@@ -238,8 +238,8 @@ pub fn setup_neuron_with_stake(netuid: NetUid, hotkey: U256, coldkey: U256, stak
pub fn wait_set_pending_children_cooldown(netuid: NetUid) {
let cooldown = u64::from(SubtensorModule::get_tempo(netuid))
- .saturating_mul(u64::from(ChildKeyCooldownTempos::::get()));
- run_to_block(System::block_number().saturating_add(cooldown));
+ * u64::from(ChildKeyCooldownTempos::::get());
+ run_to_block(System::block_number() + cooldown);
step_epochs(1, netuid); // Run next epoch
}
diff --git a/pallets/subtensor/src/tests/mock.rs b/pallets/subtensor/src/tests/mock.rs
index f9ab48d8fd..f766760ff2 100644
--- a/pallets/subtensor/src/tests/mock.rs
+++ b/pallets/subtensor/src/tests/mock.rs
@@ -986,8 +986,8 @@ pub fn setup_neuron_with_stake(netuid: NetUid, hotkey: U256, coldkey: U256, stak
#[allow(dead_code)]
pub fn wait_set_pending_children_cooldown(netuid: NetUid) {
let cooldown = u64::from(SubtensorModule::get_tempo(netuid))
- .saturating_mul(u64::from(ChildKeyCooldownTempos::::get()));
- run_to_block(System::block_number().saturating_add(cooldown));
+ * u64::from(ChildKeyCooldownTempos::::get());
+ run_to_block(System::block_number() + cooldown);
step_epochs(1, netuid); // Run next epoch
}
diff --git a/runtime/src/proxy_filters/call_groups.rs b/runtime/src/proxy_filters/call_groups.rs
index 4451878c69..50a0d17f9a 100644
--- a/runtime/src/proxy_filters/call_groups.rs
+++ b/runtime/src/proxy_filters/call_groups.rs
@@ -582,6 +582,8 @@ call_filter_group!(
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_min_non_immune_uids),
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_tao_flow_cutoff),
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_tao_flow_normalization_exponent),
+ RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_emission_bar_quantile),
+ RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_emission_gate_exponent),
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_tao_flow_smoothing_factor),
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_net_tao_flow_enabled),
RuntimeCall::AdminUtils(AdminUtilsCall::sudo_set_max_mechanism_count),
diff --git a/runtime/tests/claim_root_weight.rs b/runtime/tests/claim_root_weight.rs
index fe91ccdde1..d5a2eb9340 100644
--- a/runtime/tests/claim_root_weight.rs
+++ b/runtime/tests/claim_root_weight.rs
@@ -34,10 +34,9 @@ fn claim_root_with_extensions_fits_normal_extrinsic_limit() {
let mut dispatch_info = call.get_dispatch_info();
dispatch_info.extension_weight = extensions.weight(&call);
- let max_extrinsic = BlockWeights::get()
- .get(DispatchClass::Normal)
- .max_extrinsic
- .expect("normal extrinsics have a configured maximum");
+ let Some(max_extrinsic) = BlockWeights::get().get(DispatchClass::Normal).max_extrinsic else {
+ panic!("normal extrinsics must have a configured maximum");
+ };
assert!(
dispatch_info.total_weight().all_lte(max_extrinsic),
diff --git a/sdk/bittensor-core/src/digest/mod.rs b/sdk/bittensor-core/src/digest/mod.rs
index a9c61fdb7f..513d6f2495 100644
--- a/sdk/bittensor-core/src/digest/mod.rs
+++ b/sdk/bittensor-core/src/digest/mod.rs
@@ -190,10 +190,11 @@ mod tests {
#[test]
fn digest_matches_polkadot_js_merkleize_metadata() {
let golden = golden();
- let spec_version = golden["network"]["spec_version"]
- .as_u64()
- .and_then(|value| u32::try_from(value).ok())
- .expect("golden.json network.spec_version fits u32");
+ let spec_version_u64: u64 =
+ serde_json::from_value(golden["network"]["spec_version"].clone())
+ .expect("golden.json network.spec_version is an unsigned integer");
+ let spec_version =
+ u32::try_from(spec_version_u64).expect("golden.json network.spec_version fits u32");
let metadata = golden_metadata_v15();
let digest = metadata_digest(&metadata, &chain_info(spec_version)).unwrap();
assert_eq!(
diff --git a/sdk/python/bittensor/_transport/utils/receipt.py b/sdk/python/bittensor/_transport/utils/receipt.py
index 53af3b7f12..4c33d25655 100644
--- a/sdk/python/bittensor/_transport/utils/receipt.py
+++ b/sdk/python/bittensor/_transport/utils/receipt.py
@@ -210,17 +210,11 @@ def build_system_error_message(dispatch_error: dict) -> Optional[dict]:
name = str(variant)
elif "Arithmetic" in dispatch_error:
variant = dispatch_error["Arithmetic"]
- name = (
- str(next(iter(variant)))
- if isinstance(variant, dict) and variant
- else "Arithmetic"
- )
+ name = str(next(iter(variant))) if isinstance(variant, dict) and variant else "Arithmetic"
elif "Transactional" in dispatch_error:
variant = dispatch_error["Transactional"]
name = (
- str(next(iter(variant)))
- if isinstance(variant, dict) and variant
- else "Transactional"
+ str(next(iter(variant))) if isinstance(variant, dict) and variant else "Transactional"
)
elif "Exhausted" in dispatch_error:
name = "Exhausted"
diff --git a/sdk/python/bittensor/result.py b/sdk/python/bittensor/result.py
index d0e9ffee56..2d54fceb00 100644
--- a/sdk/python/bittensor/result.py
+++ b/sdk/python/bittensor/result.py
@@ -312,8 +312,7 @@ class ConnectionNotReady(BittensorError):
"use the same new coldkey you announced"
),
"Payment": (
- "fund the signing account so it can cover fees (and tip); check with "
- "`btcli wallet balance`"
+ "fund the signing account so it can cover fees (and tip); check with `btcli wallet balance`"
),
"Future": (
"the nonce is too high; wait for pending extrinsics or resubmit with "
@@ -326,8 +325,7 @@ class ConnectionNotReady(BittensorError):
"the command — if it keeps failing, use a local wallet or file a bug"
),
"ZeroMaxAmount": (
- "relax the price/slippage limit or wait for a better price so max_amount "
- "is non-zero"
+ "relax the price/slippage limit or wait for a better price so max_amount is non-zero"
),
"AmountTooLow": (
"raise the amount above the chain minimum stake (after fees/slippage); "
@@ -631,9 +629,11 @@ def chain_error_from_dispatch(err: Any) -> ChainError:
if wrapper not in err:
continue
variant = err[wrapper]
- if wrapper in ("Token", "Arithmetic", "Transactional") and isinstance(
- variant, dict
- ) and variant:
+ if (
+ wrapper in ("Token", "Arithmetic", "Transactional")
+ and isinstance(variant, dict)
+ and variant
+ ):
name = next(iter(variant))
elif wrapper in ("BadOrigin", "CannotLookup", "Other"):
name = wrapper
diff --git a/sdk/python/codegen/check.py b/sdk/python/codegen/check.py
index c19c187a6d..b2cae9516d 100644
--- a/sdk/python/codegen/check.py
+++ b/sdk/python/codegen/check.py
@@ -232,6 +232,8 @@ def check_drift(endpoint: str) -> int:
"sudo_set_difficulty",
"sudo_set_dissolve_network_schedule_duration",
"sudo_set_ema_price_halving_period",
+ "sudo_set_emission_bar_quantile",
+ "sudo_set_emission_gate_exponent",
"sudo_set_evm_chain_id",
"sudo_set_kappa",
"sudo_set_lock_reduction_interval",
diff --git a/website/apps/bittensor-website/public/catalog/errors.json b/website/apps/bittensor-website/public/catalog/errors.json
index 3d991156f0..9b839e197f 100644
--- a/website/apps/bittensor-website/public/catalog/errors.json
+++ b/website/apps/bittensor-website/public/catalog/errors.json
@@ -546,8 +546,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 149,
- "url": "/code/pallets/admin-utils/src/lib.rs#L149",
+ "line": 155,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L155",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -1041,8 +1041,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 173,
- "url": "/code/pallets/admin-utils/src/lib.rs#L173",
+ "line": 179,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L179",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -1059,8 +1059,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 171,
- "url": "/code/pallets/admin-utils/src/lib.rs#L171",
+ "line": 177,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L177",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -1374,8 +1374,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 169,
- "url": "/code/pallets/admin-utils/src/lib.rs#L169",
+ "line": 175,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L175",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
@@ -2632,8 +2632,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 163,
- "url": "/code/pallets/admin-utils/src/lib.rs#L163",
+ "line": 169,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L169",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -2884,8 +2884,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 147,
- "url": "/code/pallets/admin-utils/src/lib.rs#L147",
+ "line": 153,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L153",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -2902,8 +2902,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 161,
- "url": "/code/pallets/admin-utils/src/lib.rs#L161",
+ "line": 167,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L167",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -2920,8 +2920,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 159,
- "url": "/code/pallets/admin-utils/src/lib.rs#L159",
+ "line": 165,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L165",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -2992,8 +2992,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 145,
- "url": "/code/pallets/admin-utils/src/lib.rs#L145",
+ "line": 151,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L151",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -3090,8 +3090,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 155,
- "url": "/code/pallets/admin-utils/src/lib.rs#L155",
+ "line": 161,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L161",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -3108,8 +3108,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 157,
- "url": "/code/pallets/admin-utils/src/lib.rs#L157",
+ "line": 163,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L163",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -3207,8 +3207,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 151,
- "url": "/code/pallets/admin-utils/src/lib.rs#L151",
+ "line": 157,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L157",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -3749,8 +3749,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 165,
- "url": "/code/pallets/admin-utils/src/lib.rs#L165",
+ "line": 171,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L171",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -3991,8 +3991,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 167,
- "url": "/code/pallets/admin-utils/src/lib.rs#L167",
+ "line": 173,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L173",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -4693,8 +4693,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 143,
- "url": "/code/pallets/admin-utils/src/lib.rs#L143",
+ "line": 149,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L149",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -5477,8 +5477,8 @@
{
"pallet": "AdminUtils",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 153,
- "url": "/code/pallets/admin-utils/src/lib.rs#L153",
+ "line": 159,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L159",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
diff --git a/website/apps/bittensor-website/public/catalog/intents.json b/website/apps/bittensor-website/public/catalog/intents.json
index a2ef42923c..fb1c3d8d40 100644
--- a/website/apps/bittensor-website/public/catalog/intents.json
+++ b/website/apps/bittensor-website/public/catalog/intents.json
@@ -56,9 +56,9 @@
"pallet": "SubtensorModule",
"call": "add_collateral",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 2452,
- "end_line": 2460,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2450-L2460",
+ "line": 2472,
+ "end_line": 2480,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2470-L2480",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -179,18 +179,18 @@
"pallet": "SubtensorModule",
"call": "add_stake",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 561,
- "end_line": 568,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L559-L568",
+ "line": 562,
+ "end_line": 569,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L560-L569",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
},
{
"pallet": "SubtensorModule",
"call": "add_stake_limit",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1394,
- "end_line": 1411,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411",
+ "line": 1395,
+ "end_line": 1412,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1393-L1412",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -258,9 +258,9 @@
"pallet": "SubtensorModule",
"call": "add_stake_limit",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1394,
- "end_line": 1411,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411",
+ "line": 1395,
+ "end_line": 1412,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1393-L1412",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -300,9 +300,9 @@
"pallet": "SubtensorModule",
"call": "announce_coldkey_swap",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1988,
- "end_line": 2014,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1986-L2014",
+ "line": 2008,
+ "end_line": 2034,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2006-L2034",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -357,9 +357,9 @@
"pallet": "SubtensorModule",
"call": "associate_evm_key",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1580,
- "end_line": 1588,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1574-L1588",
+ "line": 1581,
+ "end_line": 1589,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1575-L1589",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -397,9 +397,9 @@
"pallet": "SubtensorModule",
"call": "try_associate_hotkey",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1522,
- "end_line": 1528,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1520-L1528",
+ "line": 1523,
+ "end_line": 1529,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1521-L1529",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -485,9 +485,9 @@
"pallet": "SubtensorModule",
"call": "burned_register",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 818,
- "end_line": 824,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L816-L824",
+ "line": 819,
+ "end_line": 825,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L817-L825",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -530,9 +530,9 @@
"pallet": "SubtensorModule",
"call": "claim_root",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1892,
- "end_line": 1908,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1890-L1908",
+ "line": 1904,
+ "end_line": 1928,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1896-L1928",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -565,9 +565,9 @@
"pallet": "SubtensorModule",
"call": "clear_coldkey_swap_announcement",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 2187,
- "end_line": 2202,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2185-L2202",
+ "line": 2207,
+ "end_line": 2222,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2205-L2222",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -633,9 +633,9 @@
"pallet": "SubtensorModule",
"call": "commit_timelocked_mechanism_weights",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1853,
- "end_line": 1869,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869",
+ "line": 1858,
+ "end_line": 1874,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1856-L1874",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -879,9 +879,9 @@
"pallet": "SubtensorModule",
"call": "decrease_take",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 492,
- "end_line": 498,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L490-L498",
+ "line": 493,
+ "end_line": 499,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L491-L499",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -914,9 +914,9 @@
"pallet": "SubtensorModule",
"call": "dispute_coldkey_swap",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 2057,
- "end_line": 2074,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2055-L2074",
+ "line": 2077,
+ "end_line": 2094,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2075-L2094",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -1200,9 +1200,9 @@
"pallet": "SubtensorModule",
"call": "increase_take",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 525,
- "end_line": 531,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L523-L531",
+ "line": 526,
+ "end_line": 532,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L524-L532",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -1318,9 +1318,9 @@
"pallet": "SubtensorModule",
"call": "lock_stake",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 2259,
- "end_line": 2267,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2257-L2267",
+ "line": 2279,
+ "end_line": 2287,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2277-L2287",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -1365,9 +1365,9 @@
"pallet": "SubtensorModule",
"call": "move_lock",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 2283,
- "end_line": 2290,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2281-L2290",
+ "line": 2303,
+ "end_line": 2310,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2301-L2310",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -1436,9 +1436,9 @@
"pallet": "SubtensorModule",
"call": "move_stake",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1258,
- "end_line": 1274,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1256-L1274",
+ "line": 1259,
+ "end_line": 1275,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1257-L1275",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -1700,9 +1700,9 @@
"pallet": "SubtensorModule",
"call": "register_leased_network",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1674,
- "end_line": 1680,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1672-L1680",
+ "line": 1679,
+ "end_line": 1685,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1677-L1685",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -1740,9 +1740,9 @@
"pallet": "SubtensorModule",
"call": "register_network",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1005,
- "end_line": 1007,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1003-L1007",
+ "line": 1006,
+ "end_line": 1008,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1004-L1008",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -1904,18 +1904,18 @@
"pallet": "SubtensorModule",
"call": "remove_stake",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 595,
- "end_line": 602,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L593-L602",
+ "line": 596,
+ "end_line": 603,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L594-L603",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
},
{
"pallet": "SubtensorModule",
"call": "remove_stake_limit",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1447,
- "end_line": 1463,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463",
+ "line": 1448,
+ "end_line": 1464,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1446-L1464",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -1989,9 +1989,9 @@
"pallet": "SubtensorModule",
"call": "remove_stake_limit",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1447,
- "end_line": 1463,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463",
+ "line": 1448,
+ "end_line": 1464,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1446-L1464",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -2031,9 +2031,9 @@
"pallet": "SubtensorModule",
"call": "serve_axon",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 642,
- "end_line": 665,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L640-L665",
+ "line": 643,
+ "end_line": 666,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L641-L666",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -2101,9 +2101,9 @@
"pallet": "SubtensorModule",
"call": "reveal_weights",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 277,
- "end_line": 286,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L275-L286",
+ "line": 278,
+ "end_line": 287,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L276-L287",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -2141,9 +2141,9 @@
"pallet": "SubtensorModule",
"call": "root_register",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 811,
- "end_line": 813,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L809-L813",
+ "line": 812,
+ "end_line": 814,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L810-L814",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -2201,9 +2201,9 @@
"pallet": "SubtensorModule",
"call": "serve_axon",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 642,
- "end_line": 665,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L640-L665",
+ "line": 643,
+ "end_line": 666,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L641-L666",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -2266,9 +2266,9 @@
"pallet": "SubtensorModule",
"call": "serve_axon_tls",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 708,
- "end_line": 732,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L706-L732",
+ "line": 709,
+ "end_line": 733,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L707-L733",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -2322,9 +2322,9 @@
"pallet": "SubtensorModule",
"call": "serve_prometheus",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 750,
- "end_line": 759,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L748-L759",
+ "line": 751,
+ "end_line": 760,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L749-L760",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -2368,9 +2368,9 @@
"pallet": "SubtensorModule",
"call": "set_coldkey_auto_stake_hotkey",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1787,
- "end_line": 1827,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1785-L1827",
+ "line": 1792,
+ "end_line": 1832,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1790-L1832",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -2423,9 +2423,9 @@
"pallet": "SubtensorModule",
"call": "set_childkey_take",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 928,
- "end_line": 938,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L926-L938",
+ "line": 929,
+ "end_line": 939,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L927-L939",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -2474,9 +2474,9 @@
"pallet": "SubtensorModule",
"call": "set_children",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1080,
- "end_line": 1088,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1078-L1088",
+ "line": 1081,
+ "end_line": 1089,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1079-L1089",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -2705,279 +2705,279 @@
"pallet": "AdminUtils",
"call": "sudo_set_tempo",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1032,
- "end_line": 1036,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1021-L1036",
+ "line": 1038,
+ "end_line": 1042,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1027-L1042",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_immunity_period",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 476,
- "end_line": 502,
- "url": "/code/pallets/admin-utils/src/lib.rs#L474-L502",
+ "line": 482,
+ "end_line": 508,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L480-L508",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_min_allowed_weights",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 509,
- "end_line": 535,
- "url": "/code/pallets/admin-utils/src/lib.rs#L507-L535",
+ "line": 515,
+ "end_line": 541,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L513-L541",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_weights_version_key",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 361,
- "end_line": 389,
- "url": "/code/pallets/admin-utils/src/lib.rs#L359-L389",
+ "line": 367,
+ "end_line": 395,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L365-L395",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_activity_cutoff_factor",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 681,
- "end_line": 695,
- "url": "/code/pallets/admin-utils/src/lib.rs#L679-L695",
+ "line": 687,
+ "end_line": 701,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L685-L701",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_min_burn",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 763,
- "end_line": 795,
- "url": "/code/pallets/admin-utils/src/lib.rs#L761-L795",
+ "line": 769,
+ "end_line": 801,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L767-L801",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_max_burn",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 802,
- "end_line": 834,
- "url": "/code/pallets/admin-utils/src/lib.rs#L800-L834",
+ "line": 808,
+ "end_line": 840,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L806-L840",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_bonds_moving_average",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 894,
- "end_line": 926,
- "url": "/code/pallets/admin-utils/src/lib.rs#L892-L926",
+ "line": 900,
+ "end_line": 932,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L898-L932",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_bonds_penalty",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 933,
- "end_line": 957,
- "url": "/code/pallets/admin-utils/src/lib.rs#L931-L957",
+ "line": 939,
+ "end_line": 963,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L937-L963",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_serving_rate_limit",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 278,
- "end_line": 297,
- "url": "/code/pallets/admin-utils/src/lib.rs#L276-L297",
+ "line": 284,
+ "end_line": 303,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L282-L303",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_commit_reveal_weights_interval",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1376,
- "end_line": 1403,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1374-L1403",
+ "line": 1382,
+ "end_line": 1409,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1380-L1409",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_max_allowed_uids",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 542,
- "end_line": 585,
- "url": "/code/pallets/admin-utils/src/lib.rs#L540-L585",
+ "line": 548,
+ "end_line": 591,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L546-L591",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_burn_increase_mult",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 2195,
- "end_line": 2233,
- "url": "/code/pallets/admin-utils/src/lib.rs#L2193-L2233",
+ "line": 2201,
+ "end_line": 2239,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L2199-L2239",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_burn_half_life",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 2153,
- "end_line": 2189,
- "url": "/code/pallets/admin-utils/src/lib.rs#L2151-L2189",
+ "line": 2159,
+ "end_line": 2195,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L2157-L2195",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_collateral_lock_share",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 2319,
- "end_line": 2352,
- "url": "/code/pallets/admin-utils/src/lib.rs#L2317-L2352",
+ "line": 2325,
+ "end_line": 2358,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L2323-L2358",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_collateral_drain_ratio",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 2362,
- "end_line": 2401,
- "url": "/code/pallets/admin-utils/src/lib.rs#L2360-L2401",
+ "line": 2368,
+ "end_line": 2407,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L2366-L2407",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_adjustment_alpha",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 445,
- "end_line": 469,
- "url": "/code/pallets/admin-utils/src/lib.rs#L443-L469",
+ "line": 451,
+ "end_line": 475,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L449-L475",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_rho",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 608,
- "end_line": 628,
- "url": "/code/pallets/admin-utils/src/lib.rs#L606-L628",
+ "line": 614,
+ "end_line": 634,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L612-L634",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_max_difficulty",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 328,
- "end_line": 354,
- "url": "/code/pallets/admin-utils/src/lib.rs#L326-L354",
+ "line": 334,
+ "end_line": 360,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L332-L360",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_alpha_sigmoid_steepness",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1627,
- "end_line": 1659,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1625-L1659",
+ "line": 1633,
+ "end_line": 1665,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1631-L1665",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_min_childkey_take_per_subnet",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1200,
- "end_line": 1232,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1198-L1232",
+ "line": 1206,
+ "end_line": 1238,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1204-L1238",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_owner_immune_neuron_limit",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1813,
- "end_line": 1831,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1811-L1831",
+ "line": 1819,
+ "end_line": 1837,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1817-L1837",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_alpha_values",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1301,
- "end_line": 1324,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1299-L1324",
+ "line": 1307,
+ "end_line": 1330,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1305-L1330",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_commit_reveal_weights_enabled",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1239,
- "end_line": 1264,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1237-L1264",
+ "line": 1245,
+ "end_line": 1270,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1243-L1270",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_liquid_alpha_enabled",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1277,
- "end_line": 1296,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1275-L1296",
+ "line": 1283,
+ "end_line": 1302,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1281-L1302",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_network_pow_registration_allowed",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 723,
- "end_line": 729,
- "url": "/code/pallets/admin-utils/src/lib.rs#L721-L729",
+ "line": 729,
+ "end_line": 735,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L727-L735",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_yuma3_enabled",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1672,
- "end_line": 1693,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1670-L1693",
+ "line": 1678,
+ "end_line": 1699,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1676-L1699",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_bonds_reset_enabled",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1706,
- "end_line": 1727,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1704-L1727",
+ "line": 1712,
+ "end_line": 1733,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1710-L1733",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_toggle_transfer",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1465,
- "end_line": 1485,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1463-L1485",
+ "line": 1471,
+ "end_line": 1491,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1469-L1491",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_owner_cut_enabled",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 2239,
- "end_line": 2257,
- "url": "/code/pallets/admin-utils/src/lib.rs#L2237-L2257",
+ "line": 2245,
+ "end_line": 2263,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L2243-L2263",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
},
{
"pallet": "AdminUtils",
"call": "sudo_set_owner_cut_auto_lock_enabled",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 2263,
- "end_line": 2281,
- "url": "/code/pallets/admin-utils/src/lib.rs#L2261-L2281",
+ "line": 2269,
+ "end_line": 2287,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L2267-L2287",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -3041,9 +3041,9 @@
"pallet": "SubtensorModule",
"call": "set_identity",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1121,
- "end_line": 1141,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1119-L1141",
+ "line": 1122,
+ "end_line": 1142,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1120-L1142",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3088,9 +3088,9 @@
"pallet": "AdminUtils",
"call": "sudo_set_mechanism_count",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1873,
- "end_line": 1893,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1871-L1893",
+ "line": 1879,
+ "end_line": 1899,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1877-L1899",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -3148,9 +3148,9 @@
"pallet": "SubtensorModule",
"call": "set_min_collateral",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 2487,
- "end_line": 2494,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2485-L2494",
+ "line": 2507,
+ "end_line": 2514,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2505-L2514",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3195,9 +3195,9 @@
"pallet": "SubtensorModule",
"call": "set_perpetual_lock",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 2299,
- "end_line": 2306,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2297-L2306",
+ "line": 2319,
+ "end_line": 2326,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2317-L2326",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3239,9 +3239,9 @@
"pallet": "SubtensorModule",
"call": "set_root_claim_type",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1919,
- "end_line": 1933,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1917-L1933",
+ "line": 1939,
+ "end_line": 1953,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1937-L1953",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3293,9 +3293,9 @@
"pallet": "AdminUtils",
"call": "sudo_set_subnet_emission_enabled",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 2291,
- "end_line": 2309,
- "url": "/code/pallets/admin-utils/src/lib.rs#L2289-L2309",
+ "line": 2297,
+ "end_line": 2315,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L2295-L2315",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -3368,9 +3368,9 @@
"pallet": "SubtensorModule",
"call": "set_subnet_identity",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1156,
- "end_line": 1180,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1154-L1180",
+ "line": 1157,
+ "end_line": 1181,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1155-L1181",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3422,18 +3422,18 @@
"pallet": "SubtensorModule",
"call": "increase_take",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 525,
- "end_line": 531,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L523-L531",
+ "line": 526,
+ "end_line": 532,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L524-L532",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
},
{
"pallet": "SubtensorModule",
"call": "decrease_take",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 492,
- "end_line": 498,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L490-L498",
+ "line": 493,
+ "end_line": 499,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L491-L499",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3499,18 +3499,18 @@
"pallet": "SubtensorModule",
"call": "set_mechanism_weights",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 130,
- "end_line": 143,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L128-L143",
+ "line": 131,
+ "end_line": 144,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L129-L144",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
},
{
"pallet": "SubtensorModule",
"call": "commit_timelocked_mechanism_weights",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1853,
- "end_line": 1869,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869",
+ "line": 1858,
+ "end_line": 1874,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1856-L1874",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3573,9 +3573,9 @@
"pallet": "SubtensorModule",
"call": "add_stake_burn",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 2171,
- "end_line": 2179,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2169-L2179",
+ "line": 2191,
+ "end_line": 2199,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2189-L2199",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3615,9 +3615,9 @@
"pallet": "SubtensorModule",
"call": "start_call",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1540,
- "end_line": 1543,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1538-L1543",
+ "line": 1541,
+ "end_line": 1544,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1539-L1544",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3657,9 +3657,9 @@
"pallet": "SubtensorModule",
"call": "swap_coldkey_announced",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 2026,
- "end_line": 2046,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2024-L2046",
+ "line": 2046,
+ "end_line": 2066,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2044-L2066",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3707,9 +3707,9 @@
"pallet": "SubtensorModule",
"call": "swap_hotkey",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 842,
- "end_line": 849,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L836-L849",
+ "line": 843,
+ "end_line": 850,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L837-L850",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3785,18 +3785,18 @@
"pallet": "SubtensorModule",
"call": "swap_stake",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1344,
- "end_line": 1358,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1342-L1358",
+ "line": 1345,
+ "end_line": 1359,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1343-L1359",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
},
{
"pallet": "SubtensorModule",
"call": "swap_stake_limit",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1492,
- "end_line": 1510,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1490-L1510",
+ "line": 1493,
+ "end_line": 1511,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1491-L1511",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -3840,9 +3840,9 @@
"pallet": "SubtensorModule",
"call": "terminate_lease",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1697,
- "end_line": 1703,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1695-L1703",
+ "line": 1702,
+ "end_line": 1708,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1700-L1708",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -4017,18 +4017,18 @@
"pallet": "SubtensorModule",
"call": "transfer_stake",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1302,
- "end_line": 1318,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1300-L1318",
+ "line": 1303,
+ "end_line": 1319,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1301-L1319",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
},
{
"pallet": "SubtensorModule",
"call": "transfer_stake_and_hotkey",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 2394,
- "end_line": 2412,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2392-L2412",
+ "line": 2414,
+ "end_line": 2432,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2412-L2432",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -4073,9 +4073,9 @@
"pallet": "AdminUtils",
"call": "sudo_trim_to_max_allowed_uids",
"path": "pallets/admin-utils/src/lib.rs",
- "line": 1927,
- "end_line": 1947,
- "url": "/code/pallets/admin-utils/src/lib.rs#L1925-L1947",
+ "line": 1933,
+ "end_line": 1953,
+ "url": "/code/pallets/admin-utils/src/lib.rs#L1931-L1953",
"raw_url": "/code/raw/pallets/admin-utils/src/lib.rs"
}
]
@@ -4115,9 +4115,9 @@
"pallet": "SubtensorModule",
"call": "unstake_all",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1213,
- "end_line": 1215,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1211-L1215",
+ "line": 1214,
+ "end_line": 1216,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1212-L1216",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -4157,9 +4157,9 @@
"pallet": "SubtensorModule",
"call": "unstake_all_alpha",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1237,
- "end_line": 1239,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1235-L1239",
+ "line": 1238,
+ "end_line": 1240,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1236-L1240",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
@@ -4363,9 +4363,9 @@
"pallet": "SubtensorModule",
"call": "update_symbol",
"path": "pallets/subtensor/src/macros/dispatches.rs",
- "line": 1722,
- "end_line": 1737,
- "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1720-L1737",
+ "line": 1727,
+ "end_line": 1742,
+ "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1725-L1742",
"raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs"
}
]
diff --git a/website/apps/bittensor-website/public/catalog/reads.json b/website/apps/bittensor-website/public/catalog/reads.json
index 40a9b768a0..72cfcab3f4 100644
--- a/website/apps/bittensor-website/public/catalog/reads.json
+++ b/website/apps/bittensor-website/public/catalog/reads.json
@@ -71,8 +71,8 @@
"container": "SubtensorModule",
"name": "AssociatedEvmAddress",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2775,
- "url": "/code/pallets/subtensor/src/lib.rs#L2775",
+ "line": 2787,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2787",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -99,8 +99,8 @@
"container": "SubtensorModule",
"name": "AutoStakeDestination",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1564,
- "url": "/code/pallets/subtensor/src/lib.rs#L1564",
+ "line": 1576,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1576",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -125,8 +125,8 @@
"container": "SubtensorModule",
"name": "AutoStakeDestination",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1564,
- "url": "/code/pallets/subtensor/src/lib.rs#L1564",
+ "line": 1576,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1576",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -221,8 +221,8 @@
"container": "SubtensorModule",
"name": "BlocksSinceLastStep",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2124,
- "url": "/code/pallets/subtensor/src/lib.rs#L2124",
+ "line": 2136,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2136",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -249,8 +249,8 @@
"container": "SubtensorModule",
"name": "LastUpdate",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2507,
- "url": "/code/pallets/subtensor/src/lib.rs#L2507",
+ "line": 2519,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2519",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -304,8 +304,8 @@
"container": "SubtensorModule",
"name": "Bonds",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2535,
- "url": "/code/pallets/subtensor/src/lib.rs#L2535",
+ "line": 2547,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2547",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -330,8 +330,8 @@
"container": "SubtensorModule",
"name": "Burn",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2278,
- "url": "/code/pallets/subtensor/src/lib.rs#L2278",
+ "line": 2290,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2290",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -358,8 +358,8 @@
"container": "SubtensorModule",
"name": "ChildKeys",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1387,
- "url": "/code/pallets/subtensor/src/lib.rs#L1387",
+ "line": 1399,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1399",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -386,8 +386,8 @@
"container": "SubtensorModule",
"name": "Lock",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1687,
- "url": "/code/pallets/subtensor/src/lib.rs#L1687",
+ "line": 1699,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1699",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -412,8 +412,8 @@
"container": "SubtensorModule",
"name": "ColdkeySwapAnnouncements",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1599,
- "url": "/code/pallets/subtensor/src/lib.rs#L1599",
+ "line": 1611,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1611",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -421,8 +421,8 @@
"container": "SubtensorModule",
"name": "ColdkeySwapDisputes",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1605,
- "url": "/code/pallets/subtensor/src/lib.rs#L1605",
+ "line": 1617,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1617",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -462,8 +462,8 @@
"container": "SubtensorModule",
"name": "CommitRevealWeightsEnabled",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2273,
- "url": "/code/pallets/subtensor/src/lib.rs#L2273",
+ "line": 2285,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2285",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -632,8 +632,8 @@
"container": "SubtensorModule",
"name": "Delegates",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1357,
- "url": "/code/pallets/subtensor/src/lib.rs#L1357",
+ "line": 1369,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1369",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -641,8 +641,8 @@
"container": "SubtensorModule",
"name": "MinDelegateTake",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1330,
- "url": "/code/pallets/subtensor/src/lib.rs#L1330",
+ "line": 1342,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1342",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -650,8 +650,8 @@
"container": "SubtensorModule",
"name": "MaxDelegateTake",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1326,
- "url": "/code/pallets/subtensor/src/lib.rs#L1326",
+ "line": 1338,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1338",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -726,8 +726,8 @@
"container": "SubtensorModule",
"name": "Difficulty",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2282,
- "url": "/code/pallets/subtensor/src/lib.rs#L2282",
+ "line": 2294,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2294",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -752,8 +752,8 @@
"container": "SubtensorModule",
"name": "Tempo",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1982,
- "url": "/code/pallets/subtensor/src/lib.rs#L1982",
+ "line": 1994,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1994",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -761,8 +761,8 @@
"container": "SubtensorModule",
"name": "LastEpochBlock",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2007,
- "url": "/code/pallets/subtensor/src/lib.rs#L2007",
+ "line": 2019,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2019",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -770,8 +770,8 @@
"container": "SubtensorModule",
"name": "BlocksSinceLastStep",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2124,
- "url": "/code/pallets/subtensor/src/lib.rs#L2124",
+ "line": 2136,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2136",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -779,8 +779,8 @@
"container": "SubtensorModule",
"name": "PendingEpochAt",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2013,
- "url": "/code/pallets/subtensor/src/lib.rs#L2013",
+ "line": 2025,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2025",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -788,8 +788,8 @@
"container": "SubtensorModule",
"name": "SubnetEpochIndex",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2019,
- "url": "/code/pallets/subtensor/src/lib.rs#L2019",
+ "line": 2031,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2031",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -875,8 +875,8 @@
"container": "SubtensorModule",
"name": "Owner",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1347,
- "url": "/code/pallets/subtensor/src/lib.rs#L1347",
+ "line": 1359,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1359",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -884,8 +884,8 @@
"container": "SubtensorModule",
"name": "IdentitiesV2",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2597,
- "url": "/code/pallets/subtensor/src/lib.rs#L2597",
+ "line": 2609,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2609",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -910,8 +910,8 @@
"container": "SubtensorModule",
"name": "Owner",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1347,
- "url": "/code/pallets/subtensor/src/lib.rs#L1347",
+ "line": 1359,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1359",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -936,8 +936,8 @@
"container": "SubtensorModule",
"name": "IdentitiesV2",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2597,
- "url": "/code/pallets/subtensor/src/lib.rs#L2597",
+ "line": 2609,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2609",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -962,8 +962,8 @@
"container": "SubtensorModule",
"name": "ImmunityPeriod",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2192,
- "url": "/code/pallets/subtensor/src/lib.rs#L2192",
+ "line": 2204,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2204",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1026,8 +1026,8 @@
"container": "SubtensorModule",
"name": "SubnetLeases",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2793,
- "url": "/code/pallets/subtensor/src/lib.rs#L2793",
+ "line": 2805,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2805",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1048,8 +1048,8 @@
"container": "SubtensorModule",
"name": "SubnetLeases",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2793,
- "url": "/code/pallets/subtensor/src/lib.rs#L2793",
+ "line": 2805,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2805",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1074,8 +1074,8 @@
"container": "SubtensorModule",
"name": "Lock",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1687,
- "url": "/code/pallets/subtensor/src/lib.rs#L1687",
+ "line": 1699,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1699",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1100,8 +1100,8 @@
"container": "SubtensorModule",
"name": "MaxWeightsLimit",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2208,
- "url": "/code/pallets/subtensor/src/lib.rs#L2208",
+ "line": 2220,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2220",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1126,8 +1126,8 @@
"container": "SubtensorModule",
"name": "MechanismCountCurrent",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2867,
- "url": "/code/pallets/subtensor/src/lib.rs#L2867",
+ "line": 2879,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2879",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1152,8 +1152,8 @@
"container": "SubtensorModule",
"name": "MechanismEmissionSplit",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2872,
- "url": "/code/pallets/subtensor/src/lib.rs#L2872",
+ "line": 2884,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2884",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1226,8 +1226,8 @@
"container": "SubtensorModule",
"name": "MinAllowedWeights",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2218,
- "url": "/code/pallets/subtensor/src/lib.rs#L2218",
+ "line": 2230,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2230",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1256,8 +1256,8 @@
"container": "SubtensorModule",
"name": "Owner",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1347,
- "url": "/code/pallets/subtensor/src/lib.rs#L1347",
+ "line": 1359,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1359",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1333,8 +1333,8 @@
"container": "SubtensorModule",
"name": "IsNetworkMember",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2050,
- "url": "/code/pallets/subtensor/src/lib.rs#L2050",
+ "line": 2062,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2062",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1425,8 +1425,8 @@
"container": "SubtensorModule",
"name": "OwnedHotkeys",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1559,
- "url": "/code/pallets/subtensor/src/lib.rs#L1559",
+ "line": 1571,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1571",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1453,8 +1453,8 @@
"container": "SubtensorModule",
"name": "ParentKeys",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1400,
- "url": "/code/pallets/subtensor/src/lib.rs#L1400",
+ "line": 1412,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1412",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1481,8 +1481,8 @@
"container": "SubtensorModule",
"name": "PendingChildKeys",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1374,
- "url": "/code/pallets/subtensor/src/lib.rs#L1374",
+ "line": 1386,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1386",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1591,8 +1591,8 @@
"container": "SubtensorModule",
"name": "RevealPeriodEpochs",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2710,
- "url": "/code/pallets/subtensor/src/lib.rs#L2710",
+ "line": 2722,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2722",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1645,8 +1645,8 @@
"container": "SubtensorModule",
"name": "RootClaimType",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2752,
- "url": "/code/pallets/subtensor/src/lib.rs#L2752",
+ "line": 2764,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2764",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1810,8 +1810,8 @@
"container": "SubtensorModule",
"name": "StakingHotkeys",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1554,
- "url": "/code/pallets/subtensor/src/lib.rs#L1554",
+ "line": 1566,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1566",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1836,8 +1836,8 @@
"container": "SubtensorModule",
"name": "Tempo",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1982,
- "url": "/code/pallets/subtensor/src/lib.rs#L1982",
+ "line": 1994,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1994",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -1845,8 +1845,8 @@
"container": "SubtensorModule",
"name": "Burn",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2278,
- "url": "/code/pallets/subtensor/src/lib.rs#L2278",
+ "line": 2290,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2290",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -1854,8 +1854,8 @@
"container": "SubtensorModule",
"name": "SubnetworkN",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2041,
- "url": "/code/pallets/subtensor/src/lib.rs#L2041",
+ "line": 2053,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2053",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1880,8 +1880,8 @@
"container": "SubtensorModule",
"name": "Uids",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2460,
- "url": "/code/pallets/subtensor/src/lib.rs#L2460",
+ "line": 2472,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2472",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -1906,8 +1906,8 @@
"container": "SubtensorModule",
"name": "HotkeyLock",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1713,
- "url": "/code/pallets/subtensor/src/lib.rs#L1713",
+ "line": 1725,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1725",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -1915,8 +1915,8 @@
"container": "SubtensorModule",
"name": "DecayingHotkeyLock",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1725,
- "url": "/code/pallets/subtensor/src/lib.rs#L1725",
+ "line": 1737,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1737",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -1924,8 +1924,8 @@
"container": "SubtensorModule",
"name": "OwnerLock",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1737,
- "url": "/code/pallets/subtensor/src/lib.rs#L1737",
+ "line": 1749,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1749",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -1933,8 +1933,8 @@
"container": "SubtensorModule",
"name": "DecayingOwnerLock",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1741,
- "url": "/code/pallets/subtensor/src/lib.rs#L1741",
+ "line": 1753,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1753",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -1942,8 +1942,8 @@
"container": "SubtensorModule",
"name": "SubnetOwnerHotkey",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2139,
- "url": "/code/pallets/subtensor/src/lib.rs#L2139",
+ "line": 2151,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2151",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -1951,8 +1951,8 @@
"container": "SubtensorModule",
"name": "SubnetAlphaOut",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1545,
- "url": "/code/pallets/subtensor/src/lib.rs#L1545",
+ "line": 1557,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1557",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -1960,8 +1960,8 @@
"container": "SubtensorModule",
"name": "UnlockRate",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1779,
- "url": "/code/pallets/subtensor/src/lib.rs#L1779",
+ "line": 1791,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1791",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -1969,8 +1969,8 @@
"container": "SubtensorModule",
"name": "MaturityRate",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1775,
- "url": "/code/pallets/subtensor/src/lib.rs#L1775",
+ "line": 1787,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1787",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -1978,8 +1978,8 @@
"container": "SubtensorModule",
"name": "NetworkRegisteredAt",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2073,
- "url": "/code/pallets/subtensor/src/lib.rs#L2073",
+ "line": 2085,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2085",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -2004,8 +2004,8 @@
"container": "SubtensorModule",
"name": "SubnetEmissionEnabled",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1515,
- "url": "/code/pallets/subtensor/src/lib.rs#L1515",
+ "line": 1527,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1527",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -2057,8 +2057,8 @@
"container": "SubtensorModule",
"name": "SubnetIdentitiesV3",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2602,
- "url": "/code/pallets/subtensor/src/lib.rs#L2602",
+ "line": 2614,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2614",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -2079,8 +2079,8 @@
"container": "SubtensorModule",
"name": "SubnetIdentitiesV3",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2602,
- "url": "/code/pallets/subtensor/src/lib.rs#L2602",
+ "line": 2614,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2614",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -2128,8 +2128,8 @@
"container": "SubtensorModule",
"name": "NetworkRegisteredAt",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2073,
- "url": "/code/pallets/subtensor/src/lib.rs#L2073",
+ "line": 2085,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2085",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -2159,8 +2159,8 @@
"container": "SubtensorModule",
"name": "NetworksAdded",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2045,
- "url": "/code/pallets/subtensor/src/lib.rs#L2045",
+ "line": 2057,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2057",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -2168,8 +2168,8 @@
"container": "SubtensorModule",
"name": "Tempo",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1982,
- "url": "/code/pallets/subtensor/src/lib.rs#L1982",
+ "line": 1994,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1994",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -2177,8 +2177,8 @@
"container": "SubtensorModule",
"name": "Burn",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2278,
- "url": "/code/pallets/subtensor/src/lib.rs#L2278",
+ "line": 2290,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2290",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
},
{
@@ -2186,8 +2186,8 @@
"container": "SubtensorModule",
"name": "SubnetworkN",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2041,
- "url": "/code/pallets/subtensor/src/lib.rs#L2041",
+ "line": 2053,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2053",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -2214,8 +2214,8 @@
"container": "SubtensorModule",
"name": "TimelockedWeightCommits",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2658,
- "url": "/code/pallets/subtensor/src/lib.rs#L2658",
+ "line": 2670,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2670",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -2247,8 +2247,8 @@
"container": "SubtensorModule",
"name": "TokenSymbol",
"path": "pallets/subtensor/src/lib.rs",
- "line": 1793,
- "url": "/code/pallets/subtensor/src/lib.rs#L1793",
+ "line": 1805,
+ "url": "/code/pallets/subtensor/src/lib.rs#L1805",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -2269,8 +2269,8 @@
"container": "SubtensorModule",
"name": "TxRateLimit",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2336,
- "url": "/code/pallets/subtensor/src/lib.rs#L2336",
+ "line": 2348,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2348",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -2297,8 +2297,8 @@
"container": "SubtensorModule",
"name": "Uids",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2460,
- "url": "/code/pallets/subtensor/src/lib.rs#L2460",
+ "line": 2472,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2472",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -2325,8 +2325,8 @@
"container": "SubtensorModule",
"name": "Weights",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2522,
- "url": "/code/pallets/subtensor/src/lib.rs#L2522",
+ "line": 2534,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2534",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
@@ -2351,8 +2351,8 @@
"container": "SubtensorModule",
"name": "WeightsSetRateLimit",
"path": "pallets/subtensor/src/lib.rs",
- "line": 2248,
- "url": "/code/pallets/subtensor/src/lib.rs#L2248",
+ "line": 2260,
+ "url": "/code/pallets/subtensor/src/lib.rs#L2260",
"raw_url": "/code/raw/pallets/subtensor/src/lib.rs"
}
]
diff --git a/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx
index 0b050e853e..38b1a4e33a 100644
--- a/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx
+++ b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx
@@ -22,6 +22,16 @@ type Release = {
// Newest first. Add new releases to the top.
const releases: Release[] = [
+ {
+ tag: 'v441',
+ date: 'July 2026',
+ title: 'Two-Tempo Child Keys',
+ summary:
+ 'Child-key updates now cool down for two subnet tempos instead of a fixed 24 hours. ' +
+ 'The delay follows each subnet cadence, with root-sudo configuration and preserved ' +
+ 'legacy interfaces.',
+ href: '/releases/v441-upgrade',
+ },
{
tag: 'v440',
date: 'July 2026',
diff --git a/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v441-upgrade/page.tsx b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v441-upgrade/page.tsx
new file mode 100644
index 0000000000..4b88e24c43
--- /dev/null
+++ b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v441-upgrade/page.tsx
@@ -0,0 +1,177 @@
+import FadeInWrapper from '@/app/components/FadeInWrapper';
+import {Code} from '@/app/components/Code/Code';
+import {Link} from '@raofoundation/ui';
+import type {Metadata} from 'next';
+import {Suspense} from 'react';
+import styles from '../v436-upgrade/page.module.css';
+
+export const metadata: Metadata = {
+ title: 'The V441 Upgrade — Two-Tempo Child Keys',
+ description:
+ 'Child-key updates now cool down for two subnet tempos instead of a fixed 24 hours. ' +
+ 'The delay follows each subnet cadence and is configurable by root sudo.',
+ alternates: {canonical: '/releases/v441-upgrade'},
+};
+
+const page = () => {
+ return (
+ }>
+
+
+
The V441 Upgrade
+
+ Two-Tempo Child Keys · July 2026
+
+
+
+
+
Introduction
+
+ Child keys let a hotkey delegate a share of its stake weight to other hotkeys. Changes
+ are delayed before they take effect so parent-child relationships cannot be rewired
+ instantly.
+
+
+ Until now, every child-key update waited a fixed 7,200 blocks — approximately 24 hours —
+ regardless of the subnet's own operating cadence. Spec 441{' '}
+ replaces that fixed delay with a default of two subnet tempos.
+
+
+ The result is a cooldown expressed in the unit that matters to the subnet: its epoch
+ cycle. Child-key updates become usable sooner while still spanning two complete
+ consensus periods by default.
+
+
+
+
+
The cooldown follows the subnet
+
+ A tempo is the number of blocks between a subnet's epochs. V441 stores one global
+ cooldown value in tempos, then converts it to blocks using the tempo of the subnet where
+ the child-key update was submitted.
+
+ With the default setting, a subnet with a 360-block tempo waits 720 blocks; a subnet
+ with a 100-block tempo waits 200. If the subnet tempo later changes, already-scheduled
+ updates keep the deadline calculated when they were submitted.
+
+
+
+
+
Exact activation boundary
+
+ The deadline is inclusive. A pending update is eligible when the current block is equal
+ to or greater than its cooldown block. If an update is submitted on epoch block{' '}
+ B and the subnet tempo is T, the default deadline is{' '}
+ B + 2T, and it activates on that second epoch — not one tempo later.
+
+
+
+ Pending child keys are processed with subnet epochs. An update submitted between epoch
+ boundaries becomes eligible after its full two-tempo block delay and is applied at the
+ first subnet epoch that processes it. A root-configured value of zero makes the update
+ eligible immediately at its deadline.
+
+
+
+
+
Parameters and administration
+
+
+
+
Setting
+
Before V441
+
V441 default
+
+
+
+
+
Child-key cooldown
+
7,200 blocks (~24 hours)
+
2 subnet tempos
+
+
+
Unit
+
Blocks
+
Tempos
+
+
+
Configuration
+
Legacy Subtensor setting
+
Root sudo through AdminUtils
+
+
+
+
+ The new ChildKeyCooldownTempos storage value can be changed only through{' '}
+ AdminUtils.sudo_set_childkey_cooldown_tempos, which requires a root origin.
+ A successful change emits AdminUtils.ChildKeyCooldownTemposSet with the new
+ value.
+
+
+
+
+
Compatibility
+
+ V441 layers the tempo-based setting on top of the existing chain interface. The legacy{' '}
+ DefaultPendingChildKeyCooldown, PendingChildKeyCooldown{' '}
+ storage, and set_pending_childkey_cooldown call remain available at their
+ existing names and indexes so stored chain data and older clients continue to decode.
+
+
+ Those block-based interfaces are deprecated and no longer control child-key activation.
+ New clients should read ChildKeyCooldownTempos and use the root-only
+ AdminUtils call.
+
+
+
+
+
What to do
+
+
+ Node operators: wait for the on-chain spec_version to
+ move to 441, then update to the matching release.
+
+
+ Subnet owners and validators: no action is required. New child-key
+ updates use the two-tempo default automatically.
+
+
+ Client developers: migrate from the deprecated block-based storage
+ and call to ChildKeyCooldownTempos and the AdminUtils sudo call.
+
+
+ Root administrators: keep the default at two unless governance
+ explicitly chooses a different network-wide number of tempos.
+
+
+
+ Signers: after the release train proposes, use{' '}
+ btcli upgrade sign --url <v441 release URL> -w <wallet>.
+
+
+
+
+
+ Read the child-key cooldown implementation
+
+
+
+
+ );
+};
+
+export default page;
From effdf6d8929965feb51f8a7078a22c72fe2aab98 Mon Sep 17 00:00:00 2001
From: UnArbosSix
Date: Tue, 28 Jul 2026 13:17:48 -0700
Subject: [PATCH 5/7] max(commit reveal, tempo)
---
pallets/subtensor/src/staking/set_children.rs | 8 ++-
pallets/subtensor/src/tests/children.rs | 57 +++++++++++++++++--
pallets/subtensor/src/tests/mock.rs | 5 +-
pallets/subtensor/src/weights.rs | 8 ++-
4 files changed, 67 insertions(+), 11 deletions(-)
diff --git a/pallets/subtensor/src/staking/set_children.rs b/pallets/subtensor/src/staking/set_children.rs
index cbbe8014de..ebf9b8b3ee 100644
--- a/pallets/subtensor/src/staking/set_children.rs
+++ b/pallets/subtensor/src/staking/set_children.rs
@@ -558,9 +558,11 @@ impl Pallet {
return Ok(());
}
- // Calculate the cooldown from this subnet's tempo.
- let cooldown = u64::from(Self::get_tempo(netuid))
- .saturating_mul(u64::from(ChildKeyCooldownTempos::::get()));
+ // Keep a relationship pending for at least the commit-reveal window so one
+ // stake position cannot be moved between validator identities inside it.
+ let cooldown_tempos =
+ u64::from(ChildKeyCooldownTempos::::get()).max(Self::get_reveal_period(netuid));
+ let cooldown = u64::from(Self::get_tempo(netuid)).saturating_mul(cooldown_tempos);
let cooldown_block = Self::get_current_block_as_u64().saturating_add(cooldown);
// Insert or update PendingChildKeys
diff --git a/pallets/subtensor/src/tests/children.rs b/pallets/subtensor/src/tests/children.rs
index b471af7717..8d7f5464db 100644
--- a/pallets/subtensor/src/tests/children.rs
+++ b/pallets/subtensor/src/tests/children.rs
@@ -4098,7 +4098,9 @@ fn test_pending_cooldown_as_expected() {
let proportion1: u64 = 1000;
let proportion2: u64 = 2000;
let tempo = 13;
- let expected_cooldown = u64::from(tempo) * u64::from(ChildKeyCooldownTempos::::get());
+ let cooldown_tempos = u64::from(ChildKeyCooldownTempos::::get())
+ .max(SubtensorModule::get_reveal_period(netuid));
+ let expected_cooldown = u64::from(tempo) * cooldown_tempos;
// Add network and register hotkey
add_network(netuid, tempo, 0);
@@ -4122,6 +4124,45 @@ fn test_pending_cooldown_as_expected() {
});
}
+#[test]
+fn test_pending_cooldown_respects_commit_reveal_period() {
+ new_test_ext(1).execute_with(|| {
+ let coldkey = U256::from(1);
+ let parent = U256::from(2);
+ let child = U256::from(3);
+ let netuid = NetUid::from(1);
+ let tempo = 5;
+ let childkey_cooldown_tempos = 2;
+ let reveal_period = 3;
+
+ add_network(netuid, tempo, 0);
+ register_ok_neuron(netuid, parent, coldkey, 0);
+ ChildKeyCooldownTempos::::put(childkey_cooldown_tempos);
+ assert_ok!(SubtensorModule::set_reveal_period(netuid, reveal_period));
+
+ let scheduled_at = System::block_number();
+ LastEpochBlock::::insert(netuid, scheduled_at);
+ BlocksSinceLastStep::::insert(netuid, 0);
+
+ mock_schedule_children(&coldkey, &parent, netuid, &[(u64::MAX, child)]);
+
+ let deadline = scheduled_at + u64::from(tempo) * reveal_period;
+ assert_eq!(PendingChildKeys::::get(netuid, parent).1, deadline);
+
+ step_epochs(childkey_cooldown_tempos, netuid);
+ assert!(PendingChildKeys::::contains_key(netuid, parent));
+ assert!(ChildKeys::::get(parent, netuid).is_empty());
+
+ step_epochs(1, netuid);
+ assert_eq!(System::block_number(), deadline);
+ assert!(!PendingChildKeys::::contains_key(netuid, parent));
+ assert_eq!(
+ ChildKeys::::get(parent, netuid),
+ vec![(u64::MAX, child)]
+ );
+ });
+}
+
#[test]
fn test_pending_children_activate_after_exactly_configured_tempos() {
new_test_ext(1).execute_with(|| {
@@ -4162,27 +4203,35 @@ fn test_pending_children_activate_after_exactly_configured_tempos() {
}
#[test]
-fn test_pending_children_zero_cooldown_activates_at_deadline() {
+fn test_pending_children_zero_cooldown_uses_commit_reveal_floor() {
new_test_ext(1).execute_with(|| {
let coldkey = U256::from(1);
let parent = U256::from(2);
let child = U256::from(3);
let netuid = NetUid::from(1);
+ let tempo = 5;
+ let reveal_period = 1;
- add_network(netuid, 5, 0);
+ add_network(netuid, tempo, 0);
register_ok_neuron(netuid, parent, coldkey, 0);
ChildKeyCooldownTempos::::put(0);
+ assert_ok!(SubtensorModule::set_reveal_period(netuid, reveal_period));
let scheduled_at = System::block_number();
+ LastEpochBlock::::insert(netuid, scheduled_at);
+ BlocksSinceLastStep::::insert(netuid, 0);
mock_schedule_children(&coldkey, &parent, netuid, &[(u64::MAX, child)]);
assert_eq!(
PendingChildKeys::::get(netuid, parent).1,
- scheduled_at
+ scheduled_at + u64::from(tempo) * reveal_period
);
SubtensorModule::do_set_pending_children(netuid);
+ assert!(PendingChildKeys::::contains_key(netuid, parent));
+ assert!(ChildKeys::::get(parent, netuid).is_empty());
+ step_epochs(1, netuid);
assert!(!PendingChildKeys::::contains_key(netuid, parent));
assert_eq!(
ChildKeys::::get(parent, netuid),
diff --git a/pallets/subtensor/src/tests/mock.rs b/pallets/subtensor/src/tests/mock.rs
index f766760ff2..b6188174cd 100644
--- a/pallets/subtensor/src/tests/mock.rs
+++ b/pallets/subtensor/src/tests/mock.rs
@@ -985,8 +985,9 @@ pub fn setup_neuron_with_stake(netuid: NetUid, hotkey: U256, coldkey: U256, stak
#[allow(dead_code)]
pub fn wait_set_pending_children_cooldown(netuid: NetUid) {
- let cooldown = u64::from(SubtensorModule::get_tempo(netuid))
- * u64::from(ChildKeyCooldownTempos::::get());
+ let cooldown_tempos = u64::from(ChildKeyCooldownTempos::::get())
+ .max(SubtensorModule::get_reveal_period(netuid));
+ let cooldown = u64::from(SubtensorModule::get_tempo(netuid)) * cooldown_tempos;
run_to_block(System::block_number() + cooldown);
step_epochs(1, netuid); // Run next epoch
}
diff --git a/pallets/subtensor/src/weights.rs b/pallets/subtensor/src/weights.rs
index 77ce7d7e65..88fc8eac5b 100644
--- a/pallets/subtensor/src/weights.rs
+++ b/pallets/subtensor/src/weights.rs
@@ -3488,6 +3488,8 @@ impl WeightInfo for SubstrateWeight {
/// Proof: `SubtensorModule::Tempo` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `SubtensorModule::ChildKeyCooldownTempos` (r:1 w:0)
/// Proof: `SubtensorModule::ChildKeyCooldownTempos` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+ /// Storage: `SubtensorModule::RevealPeriodEpochs` (r:1 w:0)
+ /// Proof: `SubtensorModule::RevealPeriodEpochs` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `SubtensorModule::PendingChildKeys` (r:0 w:1)
/// Proof: `SubtensorModule::PendingChildKeys` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// The range of component `c` is `[1, 5]`.
@@ -3497,7 +3499,7 @@ impl WeightInfo for SubstrateWeight {
// Estimated: `9951`
// Minimum execution time: 50_000_000 picoseconds.
Weight::from_parts(55_660_572, 9951)
- .saturating_add(T::DbWeight::get().reads(18_u64))
+ .saturating_add(T::DbWeight::get().reads(19_u64))
.saturating_add(T::DbWeight::get().writes(2_u64))
}
fn schedule_swap_coldkey() -> Weight {
@@ -7104,6 +7106,8 @@ impl WeightInfo for () {
/// Proof: `SubtensorModule::Tempo` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `SubtensorModule::ChildKeyCooldownTempos` (r:1 w:0)
/// Proof: `SubtensorModule::ChildKeyCooldownTempos` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+ /// Storage: `SubtensorModule::RevealPeriodEpochs` (r:1 w:0)
+ /// Proof: `SubtensorModule::RevealPeriodEpochs` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `SubtensorModule::PendingChildKeys` (r:0 w:1)
/// Proof: `SubtensorModule::PendingChildKeys` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// The range of component `c` is `[1, 5]`.
@@ -7113,7 +7117,7 @@ impl WeightInfo for () {
// Estimated: `9951`
// Minimum execution time: 50_000_000 picoseconds.
Weight::from_parts(55_660_572, 9951)
- .saturating_add(RocksDbWeight::get().reads(18_u64))
+ .saturating_add(RocksDbWeight::get().reads(19_u64))
.saturating_add(RocksDbWeight::get().writes(2_u64))
}
fn schedule_swap_coldkey() -> Weight {
From 4b4389bd7e285f4f5f05bae8aec93847730eeae7 Mon Sep 17 00:00:00 2001
From: UnArbosSix
Date: Tue, 28 Jul 2026 13:45:32 -0700
Subject: [PATCH 6/7] update more metadata
---
sdk/python/bittensor/_generated/calls.py | 17 ++--
sdk/python/bittensor/_generated/constants.py | 3 +-
sdk/python/bittensor/_generated/errors.py | 3 +-
.../bittensor/_generated/runtime_apis.py | 7 +-
sdk/python/bittensor/_generated/storage.py | 3 +-
.../bittensor/error_descriptions/subtensor.py | 5 +
sdk/python/bittensor/error_map.py | 1 +
sdk/python/codegen/emit_python.py | 6 +-
.../(pages-without-footer)/releases/page.tsx | 8 +-
.../releases/v441-upgrade/page.tsx | 91 ++++++++++++-------
10 files changed, 86 insertions(+), 58 deletions(-)
diff --git a/sdk/python/bittensor/_generated/calls.py b/sdk/python/bittensor/_generated/calls.py
index 225abfa0d6..e8598f49bc 100644
--- a/sdk/python/bittensor/_generated/calls.py
+++ b/sdk/python/bittensor/_generated/calls.py
@@ -1,7 +1,7 @@
"""Generated from runtime metadata by codegen. DO NOT EDIT BY HAND.
Regenerate with: python -m codegen
-Spec version: 440
+Spec version: 441
"""
from typing import Any, NamedTuple
@@ -257,7 +257,7 @@ def burned_register(netuid: 'NetUid', hotkey: 'AccountId32') -> Call:
@staticmethod
def claim_root(subnets: 'BTreeSet') -> Call:
- "Claims the root emissions for a coldkey. # Arguments * `origin`: The signature of the caller's coldkey. # Events * `RootClaimed`: On the successfully claiming the root emissions for a coldkey. # Errors * `InvalidSubnetNumber`: The subnet set is empty or exceeds the maximum number of claims."
+ "Claims the root emissions for a coldkey. # Arguments * `origin`: The signature of the caller's coldkey. # Events * `RootClaimed`: On the successfully claiming the root emissions for a coldkey. # Errors * `InvalidSubnetNumber`: The subnet set is empty or exceeds the maximum number of claims. * `TooManyRootClaimHotkeys`: The coldkey's hotkey fanout exceeds one claim's bound."
return Call('SubtensorModule', 'claim_root', {'subnets': subnets})
@staticmethod
@@ -467,7 +467,7 @@ def set_min_collateral(netuid: 'NetUid', hotkey: 'AccountId32', min_locked: 'Alp
@staticmethod
def set_pending_childkey_cooldown(cooldown: 'u64') -> Call:
- 'Deprecated block-based setting retained for compatibility. It no longer controls childkey activation. Use AdminUtils.sudo_set_childkey_cooldown_tempos instead.'
+ 'Deprecated block-based setting retained for call-index and storage compatibility. This setting no longer controls childkey activation. Use `AdminUtils::sudo_set_childkey_cooldown_tempos` instead.'
return Call('SubtensorModule', 'set_pending_childkey_cooldown', {'cooldown': cooldown})
@staticmethod
@@ -937,6 +937,11 @@ def sudo_set_burn_increase_mult(netuid: 'NetUid', burn_increase_mult: 'FixedU128
'Set BurnIncreaseMult for a subnet. It is only callable by root and subnet owner.'
return Call('AdminUtils', 'sudo_set_burn_increase_mult', {'netuid': netuid, 'burn_increase_mult': burn_increase_mult})
+ @staticmethod
+ def sudo_set_childkey_cooldown_tempos(tempos: 'u16') -> Call:
+ 'Sets the childkey activation cooldown as a number of subnet tempos. Only callable by root.'
+ return Call('AdminUtils', 'sudo_set_childkey_cooldown_tempos', {'tempos': tempos})
+
@staticmethod
def sudo_set_ck_burn(burn: 'u64') -> Call:
'Sets the childkey burn for a subnet. It is only callable by the root account. The extrinsic will call the Subtensor pallet to set the childkey burn.'
@@ -1202,11 +1207,6 @@ def sudo_set_start_call_delay(delay: 'u64') -> Call:
'Sets the delay before a subnet can call start'
return Call('AdminUtils', 'sudo_set_start_call_delay', {'delay': delay})
- @staticmethod
- def sudo_set_childkey_cooldown_tempos(tempos: 'u16') -> Call:
- 'Sets the childkey activation cooldown as a number of subnet tempos. Only callable by root.'
- return Call('AdminUtils', 'sudo_set_childkey_cooldown_tempos', {'tempos': tempos})
-
@staticmethod
def sudo_set_subnet_emission_enabled(netuid: 'NetUid', enabled: 'bool') -> Call:
'Enables or disables subnet pool-side emission for a subnet. This does not remove the subnet from emission share calculation and does not change `alpha_out`, owner cut, root proportion, pending server emission, or pending validator emission. It only zeros the pool-side `alpha_in`, `tao_in`, and `excess_tao` chain-buy paths.'
@@ -1627,4 +1627,3 @@ def execute_orders(orders: 'BoundedVec', should_fail: 'bool') -> Call:
def set_pallet_status(enabled: 'bool') -> Call:
'Set a status for the limit orders pallet Must be called by root It allows disabling or enabling the pallet true means enabling, false means disabling'
return Call('LimitOrders', 'set_pallet_status', {'enabled': enabled})
-
diff --git a/sdk/python/bittensor/_generated/constants.py b/sdk/python/bittensor/_generated/constants.py
index 6b90f809d8..c29fc66471 100644
--- a/sdk/python/bittensor/_generated/constants.py
+++ b/sdk/python/bittensor/_generated/constants.py
@@ -1,7 +1,7 @@
"""Generated from runtime metadata by codegen. DO NOT EDIT BY HAND.
Regenerate with: python -m codegen
-Spec version: 440
+Spec version: 441
Pallet constant descriptors: unpack into substrate.constant.
"""
@@ -185,4 +185,3 @@ class LimitOrders:
MaxOrdersPerBatch = Item('LimitOrders', 'MaxOrdersPerBatch')
PalletId = Item('LimitOrders', 'PalletId')
PalletHotkey = Item('LimitOrders', 'PalletHotkey')
-
diff --git a/sdk/python/bittensor/_generated/errors.py b/sdk/python/bittensor/_generated/errors.py
index fabd28868f..ae5fd77ae2 100644
--- a/sdk/python/bittensor/_generated/errors.py
+++ b/sdk/python/bittensor/_generated/errors.py
@@ -1,7 +1,7 @@
"""Generated from runtime metadata by codegen. DO NOT EDIT BY HAND.
Regenerate with: python -m codegen
-Spec version: 440
+Spec version: 441
"""
from dataclasses import dataclass
@@ -198,6 +198,7 @@ class ErrorInfo:
(7, 154): ErrorInfo('SubtensorModule', 'InsufficientAlphaBalance', 'The caller does not have enough Alpha stake for the operation.'),
(7, 155): ErrorInfo('SubtensorModule', 'ColdkeyCollateralIncomplete', "Coldkey swap could not fully migrate miner collateral: the old coldkey's [`ColdkeyMinerCollateral`] aggregate remained non-zero after migrating every indexed collateral hotkey. Failing closed avoids under-locking the destination unstake guard."),
(7, 156): ErrorInfo('SubtensorModule', 'ColdkeyCollateralPositionsFull', 'This coldkey already has the maximum number of distinct hotkeys with miner collateral on the subnet ([`crate::MAX_COLDKEY_COLLATERAL_HOTKEYS`]).'),
+ (7, 157): ErrorInfo('SubtensorModule', 'TooManyRootClaimHotkeys', 'The coldkey has too many staking hotkeys for a single manual root claim.'),
(11, 0): ErrorInfo('Utility', 'TooManyCalls', 'Too many calls batched.'),
(11, 1): ErrorInfo('Utility', 'InvalidDerivedAccount', 'Bad input data for derived account ID'),
(12, 0): ErrorInfo('Sudo', 'RequireSudo', 'Sender must be the Sudo account.'),
diff --git a/sdk/python/bittensor/_generated/runtime_apis.py b/sdk/python/bittensor/_generated/runtime_apis.py
index c132a56001..4c3669c6b5 100644
--- a/sdk/python/bittensor/_generated/runtime_apis.py
+++ b/sdk/python/bittensor/_generated/runtime_apis.py
@@ -1,7 +1,7 @@
"""Generated from runtime metadata by codegen. DO NOT EDIT BY HAND.
Regenerate with: python -m codegen
-Spec version: 440
+Spec version: 441
Runtime API method descriptors: unpack into substrate.runtime_call.
"""
@@ -30,10 +30,6 @@ class BabeApi:
generate_key_ownership_proof = Method('BabeApi', 'generate_key_ownership_proof')
submit_report_equivocation_unsigned_extrinsic = Method('BabeApi', 'submit_report_equivocation_unsigned_extrinsic')
-class Benchmark:
- benchmark_metadata = Method('Benchmark', 'benchmark_metadata')
- dispatch_benchmark = Method('Benchmark', 'dispatch_benchmark')
-
class BlockBuilder:
apply_extrinsic = Method('BlockBuilder', 'apply_extrinsic')
finalize_block = Method('BlockBuilder', 'finalize_block')
@@ -172,4 +168,3 @@ class TransactionPaymentCallApi:
query_call_fee_details = Method('TransactionPaymentCallApi', 'query_call_fee_details')
query_weight_to_fee = Method('TransactionPaymentCallApi', 'query_weight_to_fee')
query_length_to_fee = Method('TransactionPaymentCallApi', 'query_length_to_fee')
-
diff --git a/sdk/python/bittensor/_generated/storage.py b/sdk/python/bittensor/_generated/storage.py
index 2366bcb132..b134b94826 100644
--- a/sdk/python/bittensor/_generated/storage.py
+++ b/sdk/python/bittensor/_generated/storage.py
@@ -1,7 +1,7 @@
"""Generated from runtime metadata by codegen. DO NOT EDIT BY HAND.
Regenerate with: python -m codegen
-Spec version: 440
+Spec version: 441
Storage item descriptors: unpack into substrate.query/query_map. Each carries its VALUE's type identity (value_type_ident) so normalization can key on the runtime's own type names without a node round-trip.
"""
@@ -314,7 +314,6 @@ class SubtensorModule:
ColdkeyCollateralHotkeys = Item('SubtensorModule', 'ColdkeyCollateralHotkeys', 'BoundedVec')
AutoParentDelegationEnabled = Item('SubtensorModule', 'AutoParentDelegationEnabled', 'bool')
HasMigrationRun = Item('SubtensorModule', 'HasMigrationRun', 'bool')
- # Deprecated: use ChildKeyCooldownTempos.
PendingChildKeyCooldown = Item('SubtensorModule', 'PendingChildKeyCooldown', 'u64')
ChildKeyCooldownTempos = Item('SubtensorModule', 'ChildKeyCooldownTempos', 'u16')
diff --git a/sdk/python/bittensor/error_descriptions/subtensor.py b/sdk/python/bittensor/error_descriptions/subtensor.py
index bf8dc5a342..39b28750ad 100644
--- a/sdk/python/bittensor/error_descriptions/subtensor.py
+++ b/sdk/python/bittensor/error_descriptions/subtensor.py
@@ -730,6 +730,11 @@
"`TargetRegistrationsPerInterval` for the subnet. Compare `RegistrationsThisInterval` "
"against that hyperparameter and wait for the next interval to start."
),
+ "TooManyRootClaimHotkeys": (
+ "The coldkey has more staking hotkeys than a single manual root claim can process. "
+ "Reduce the coldkey's staking-hotkey fanout below `MAX_ROOT_CLAIM_HOTKEYS`, or use "
+ "automatic root claiming instead."
+ ),
"TooManyUIDsPerMechanism": (
"Setting max UIDs or mechanism count would make max_uids times mechanism_count exceed "
"the chain default of 256 UIDs per subnet. Check `MaxAllowedUids` and the subnet's "
diff --git a/sdk/python/bittensor/error_map.py b/sdk/python/bittensor/error_map.py
index 478959bfcf..52eb992bd1 100644
--- a/sdk/python/bittensor/error_map.py
+++ b/sdk/python/bittensor/error_map.py
@@ -217,6 +217,7 @@ class ErrorCode(str, Enum):
"InvalidNumRootClaim": _C.INVALID_ARGUMENT,
"InvalidRootClaimThreshold": _C.INVALID_ARGUMENT,
"InvalidSubnetNumber": _C.INVALID_ARGUMENT,
+ "TooManyRootClaimHotkeys": _C.LIMIT_EXCEEDED,
"TooManyUIDsPerMechanism": _C.LIMIT_EXCEEDED,
"VotingPowerTrackingNotEnabled": _C.DISABLED,
"InvalidVotingPowerEmaAlpha": _C.INVALID_ARGUMENT,
diff --git a/sdk/python/codegen/emit_python.py b/sdk/python/codegen/emit_python.py
index 48ae6dbdde..aff7cb70e2 100644
--- a/sdk/python/codegen/emit_python.py
+++ b/sdk/python/codegen/emit_python.py
@@ -108,7 +108,7 @@ def emit_errors(ir: MetadataIR) -> str:
f" {key}: ErrorInfo({pallet.name!r}, {error.name!r}, {error.docs!r}),\n"
)
lines.append("}\n")
- return "".join(lines)
+ return "".join(lines).rstrip() + "\n"
def emit_calls(ir: MetadataIR) -> str:
@@ -164,7 +164,7 @@ def emit_calls(ir: MetadataIR) -> str:
f" return Call({pallet.name!r}, {call.name!r}, {{{param_dict}}})\n\n"
)
lines.append("\n")
- return "".join(lines)
+ return "".join(lines).rstrip() + "\n"
def _emit_item_classes(
@@ -219,7 +219,7 @@ def _emit_item_classes(
else:
lines.append(f" {_py_name(entry)} = {item_class}({group_name!r}, {entry!r})\n")
lines.append("\n")
- return "".join(lines)
+ return "".join(lines).rstrip() + "\n"
def emit_storage(ir: MetadataIR) -> str:
diff --git a/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx
index 38b1a4e33a..6539589fcf 100644
--- a/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx
+++ b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx
@@ -25,11 +25,11 @@ const releases: Release[] = [
{
tag: 'v441',
date: 'July 2026',
- title: 'Two-Tempo Child Keys',
+ title: 'Commit-Reveal-Safe Child Keys',
summary:
- 'Child-key updates now cool down for two subnet tempos instead of a fixed 24 hours. ' +
- 'The delay follows each subnet cadence, with root-sudo configuration and preserved ' +
- 'legacy interfaces.',
+ 'Child-key updates now cool down for the greater of the configured tempo count and the ' +
+ 'subnet reveal period, preventing intra-window stake hopping while preserving legacy ' +
+ 'interfaces.',
href: '/releases/v441-upgrade',
},
{
diff --git a/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v441-upgrade/page.tsx b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v441-upgrade/page.tsx
index 4b88e24c43..12c8908cc5 100644
--- a/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v441-upgrade/page.tsx
+++ b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v441-upgrade/page.tsx
@@ -6,10 +6,11 @@ import {Suspense} from 'react';
import styles from '../v436-upgrade/page.module.css';
export const metadata: Metadata = {
- title: 'The V441 Upgrade — Two-Tempo Child Keys',
+ title: 'The V441 Upgrade — Commit-Reveal-Safe Child Keys',
description:
- 'Child-key updates now cool down for two subnet tempos instead of a fixed 24 hours. ' +
- 'The delay follows each subnet cadence and is configurable by root sudo.',
+ 'Child-key updates now cool down for the greater of the configured tempo count and the ' +
+ 'subnet reveal period, preventing stake from hopping between validator identities inside ' +
+ 'one commit-reveal window.',
alternates: {canonical: '/releases/v441-upgrade'},
};
@@ -20,7 +21,7 @@ const page = () => {
The V441 Upgrade
- Two-Tempo Child Keys · July 2026
+ Commit-Reveal-Safe Child Keys · July 2026
@@ -34,34 +35,58 @@ const page = () => {
Until now, every child-key update waited a fixed 7,200 blocks — approximately 24 hours —
regardless of the subnet's own operating cadence. Spec 441{' '}
- replaces that fixed delay with a default of two subnet tempos.
+ replaces that fixed delay with a subnet-aware rule. The configured default is{' '}
+ two subnet tempos, but the effective cooldown can never be shorter than
+ that subnet's commit-reveal period.
- The result is a cooldown expressed in the unit that matters to the subnet: its epoch
- cycle. Child-key updates become usable sooner while still spanning two complete
- consensus periods by default.
+ In symbols, for subnet tempo T, configured child-key cooldown{' '}
+ C, and reveal period R, a relationship submitted at block{' '}
+ B receives the deadline B + T × max(C, R).
-
The cooldown follows the subnet
+
Why the reveal-period floor matters
+
+ A parent stake position changes the inherited stake used for epoch consensus and
+ validator-permit selection. Without a reveal-period floor, one mature position could be
+ redirected between validator identities that keep separate weight commits, activity
+ histories, permits, and bond portfolios.
+
+
+ V441 keeps every new relationship pending through at least one complete commit-reveal
+ window. This prevents the same capital position from hopping to whichever identity is
+ currently most advantageous while commitments from that window are still unresolved.
+ Existing permit-loss behavior still clears an abandoned validator's bonds; the new
+ floor also covers validators that retain a permit on residual stake.
+
+
+
+
+
The cooldown follows the subnet and its reveal period
A tempo is the number of blocks between a subnet's epochs. V441 stores one global
- cooldown value in tempos, then converts it to blocks using the tempo of the subnet where
- the child-key update was submitted.
+ child-key cooldown in tempos, compares it with the subnet's{' '}
+ RevealPeriodEpochs, and converts the larger value to blocks using the
+ subnet tempo at submission.
::get())
+ .max(Self::get_reveal_period(netuid));
let cooldown = u64::from(Self::get_tempo(netuid))
- .saturating_mul(u64::from(ChildKeyCooldownTempos::::get()));
+ .saturating_mul(cooldown_tempos);
let cooldown_block = Self::get_current_block_as_u64()
.saturating_add(cooldown);`}
/>
- With the default setting, a subnet with a 360-block tempo waits 720 blocks; a subnet
- with a 100-block tempo waits 200. If the subnet tempo later changes, already-scheduled
- updates keep the deadline calculated when they were submitted.
+ With the two-tempo default, a subnet with a 360-block tempo and one-epoch reveal period
+ waits 720 blocks. If its reveal period is three epochs, it waits 1,080 blocks instead. A
+ 100-block subnet with a five-epoch reveal period waits 500 blocks. Changes made after
+ submission do not rewrite an already-scheduled deadline.
@@ -70,8 +95,8 @@ let cooldown_block = Self::get_current_block_as_u64()
The deadline is inclusive. A pending update is eligible when the current block is equal
to or greater than its cooldown block. If an update is submitted on epoch block{' '}
- B and the subnet tempo is T, the default deadline is{' '}
- B + 2T, and it activates on that second epoch — not one tempo later.
+ B, it becomes eligible at B + T × max(C, R) — not one tempo
+ later.
Pending child keys are processed with subnet epochs. An update submitted between epoch
- boundaries becomes eligible after its full two-tempo block delay and is applied at the
- first subnet epoch that processes it. A root-configured value of zero makes the update
- eligible immediately at its deadline.
+ boundaries becomes eligible after its full block delay and is applied at the first
+ subnet epoch that processes it. Setting ChildKeyCooldownTempos to zero does
+ not disable the protection: the subnet reveal period remains the minimum.
@@ -101,17 +126,17 @@ let cooldown_block = Self::get_current_block_as_u64()
Child-key cooldown
7,200 blocks (~24 hours)
-
2 subnet tempos
+
Tempo × max(configured cooldown, reveal period)
-
Unit
-
Blocks
-
Tempos
+
Configured cooldown
+
Legacy block setting
+
2 tempos by default, global root setting
-
Configuration
-
Legacy Subtensor setting
-
Root sudo through AdminUtils
+
Security floor
+
None
+
Per-subnet RevealPeriodEpochs
@@ -119,7 +144,9 @@ let cooldown_block = Self::get_current_block_as_u64()
The new ChildKeyCooldownTempos storage value can be changed only through{' '}
AdminUtils.sudo_set_childkey_cooldown_tempos, which requires a root origin.
A successful change emits AdminUtils.ChildKeyCooldownTemposSet with the new
- value.
+ value. Raising a subnet's reveal period above that value automatically raises its
+ effective child-key cooldown; lowering it cannot take the cooldown below the configured
+ global floor.
@@ -147,15 +174,17 @@ let cooldown_block = Self::get_current_block_as_u64()
Subnet owners and validators: no action is required. New child-key
- updates use the two-tempo default automatically.
+ updates use the two-tempo default automatically, or the subnet reveal period when it
+ is longer.
Client developers: migrate from the deprecated block-based storage
and call to ChildKeyCooldownTempos and the AdminUtils sudo call.
- Root administrators: keep the default at two unless governance
- explicitly chooses a different network-wide number of tempos.
+ Root administrators:ChildKeyCooldownTempos controls the
+ global floor. The commit-reveal floor applies even if this value is configured below a
+ subnet's reveal period.
From cf486cd8f025f40d1fcb2982cacfb0a6dc984ba6 Mon Sep 17 00:00:00 2001
From: UnArbosSix
Date: Tue, 28 Jul 2026 13:51:46 -0700
Subject: [PATCH 7/7] update metadata again
---
docs/errors/chain/TooManyRootClaimHotkeys.mdx | 18 ++++++++++++++++++
docs/errors/chain/index.mdx | 1 +
docs/errors/chain/meta.json | 1 +
docs/errors/index.mdx | 2 +-
docs/errors/limit-exceeded.mdx | 1 +
docs/tx/set-childkey-take.mdx | 2 +-
.../public/catalog/errors.json | 18 ++++++++++++++++++
7 files changed, 41 insertions(+), 2 deletions(-)
create mode 100644 docs/errors/chain/TooManyRootClaimHotkeys.mdx
diff --git a/docs/errors/chain/TooManyRootClaimHotkeys.mdx b/docs/errors/chain/TooManyRootClaimHotkeys.mdx
new file mode 100644
index 0000000000..f08147582e
--- /dev/null
+++ b/docs/errors/chain/TooManyRootClaimHotkeys.mdx
@@ -0,0 +1,18 @@
+---
+title: "TooManyRootClaimHotkeys"
+description: "A chain-side capacity limit was hit; reduce the size or count of the request"
+---
+
+{/* GENERATED by scripts/generate.py from the SDK registries — do not edit. */}
+
+The coldkey has more staking hotkeys than a single manual root claim can process. Reduce the coldkey's staking-hotkey fanout below `MAX_ROOT_CLAIM_HOTKEYS`, or use automatic root claiming instead.
+
+Declared by the `SubtensorModule` pallet; it classifies to the semantic code [`limit_exceeded`](/docs/errors/limit-exceeded).
+
+Declared at [`pallets/subtensor/src/macros/errors.rs#L350`](/code/pallets/subtensor/src/macros/errors.rs#L350).
+
+## Remediation
+
+A chain-side capacity limit was hit; reduce the size or count of the request
+
+The same explanation is available in the terminal: `btcli explain TooManyRootClaimHotkeys`.
diff --git a/docs/errors/chain/index.mdx b/docs/errors/chain/index.mdx
index 37c1c21465..a1fc91cd8d 100644
--- a/docs/errors/chain/index.mdx
+++ b/docs/errors/chain/index.mdx
@@ -330,6 +330,7 @@ The exact chain error name (from the extrinsic receipt) maps to a semantic [code
| [`TooManyRegistrationsThisBlock`](/docs/errors/chain/TooManyRegistrationsThisBlock) | [`rate_limited`](/docs/errors/rate-limited) | Registrations in the current block already reached the subnet's per-block cap (`MaxRegistrationsPerBlock`, the max_regs_per_block hyperparameter); root registration enforces the same cap on netuid 0. Retry in the next block. |
| [`TooManyRegistrationsThisInterval`](/docs/errors/chain/TooManyRegistrationsThisInterval) | [`rate_limited`](/docs/errors/rate-limited) | Registrations in the current interval reached the cap of three times `TargetRegistrationsPerInterval` for the subnet. Compare `RegistrationsThisInterval` against that hyperparameter and wait for the next interval to start. |
| [`TooManyReserves`](/docs/errors/chain/TooManyReserves) | [`limit_exceeded`](/docs/errors/limit-exceeded) | The account already has the maximum number of named reserves. Check the account's `Reserves` entry against the `MaxReserves` constant; a named reserve must be unreserved before adding another. |
+| [`TooManyRootClaimHotkeys`](/docs/errors/chain/TooManyRootClaimHotkeys) | [`limit_exceeded`](/docs/errors/limit-exceeded) | The coldkey has more staking hotkeys than a single manual root claim can process. Reduce the coldkey's staking-hotkey fanout below `MAX_ROOT_CLAIM_HOTKEYS`, or use automatic root claiming instead. |
| [`TooManySignatories`](/docs/errors/chain/TooManySignatories) | [`limit_exceeded`](/docs/errors/limit-exceeded) | The multisig signatory list exceeds the maximum allowed. Compare the length of `other_signatories` plus the sender against the pallet's `MaxSignatories` constant. |
| [`TooManyTopics`](/docs/errors/chain/TooManyTopics) | [`limit_exceeded`](/docs/errors/limit-exceeded) | The number of topics passed to `seal_deposit_event` exceeds the schedule's `event_topics` limit. Reduce the number of indexed topics in the contract's event definition or compare against the schedule limit. |
| [`TooManyUIDsPerMechanism`](/docs/errors/chain/TooManyUIDsPerMechanism) | [`limit_exceeded`](/docs/errors/limit-exceeded) | Setting max UIDs or mechanism count would make max_uids times mechanism_count exceed the chain default of 256 UIDs per subnet. Check `MaxAllowedUids` and the subnet's mechanism count so their product stays within the limit. |
diff --git a/docs/errors/chain/meta.json b/docs/errors/chain/meta.json
index bbed59e330..6e3332ee7a 100644
--- a/docs/errors/chain/meta.json
+++ b/docs/errors/chain/meta.json
@@ -323,6 +323,7 @@
"TooManyRegistrationsThisBlock",
"TooManyRegistrationsThisInterval",
"TooManyReserves",
+ "TooManyRootClaimHotkeys",
"TooManySignatories",
"TooManyTopics",
"TooManyUIDsPerMechanism",
diff --git a/docs/errors/index.mdx b/docs/errors/index.mdx
index 36bce6b647..345fc3dfe1 100644
--- a/docs/errors/index.mdx
+++ b/docs/errors/index.mdx
@@ -21,7 +21,7 @@ A failed `execute` returns an `ExtrinsicResult` whose `error` has a semantic `co
| [`disabled`](/docs/errors/disabled) | 19 | This call or feature is switched off on this network |
| [`too_early`](/docs/errors/too-early) | 18 | The required window has not opened yet; wait some blocks and retry |
| [`expired`](/docs/errors/expired) | 5 | The window has closed; restart the flow with fresh state |
-| [`limit_exceeded`](/docs/errors/limit-exceeded) | 37 | A chain-side capacity limit was hit; reduce the size or count of the request |
+| [`limit_exceeded`](/docs/errors/limit-exceeded) | 38 | A chain-side capacity limit was hit; reduce the size or count of the request |
| [`unit_mismatch`](/docs/errors/unit-mismatch) | — | Match the Balance netuid to the operation's currency |
| [`invalid_argument`](/docs/errors/invalid-argument) | 135 | Check the argument values against the operation schema |
| [`policy_violation`](/docs/errors/policy-violation) | 2 | The action exceeds a configured safety policy |
diff --git a/docs/errors/limit-exceeded.mdx b/docs/errors/limit-exceeded.mdx
index ca115f42be..987f1a1324 100644
--- a/docs/errors/limit-exceeded.mdx
+++ b/docs/errors/limit-exceeded.mdx
@@ -48,6 +48,7 @@ The exact chain error names (from the extrinsic receipt) that classify to `limit
| [`TooManyHolds`](/docs/errors/chain/TooManyHolds) | The account already carries the maximum number of balance holds, one per hold reason variant. Check the account's `Holds` entry; an existing hold must be released before a new reason can place another. |
| [`TooManyPendingExtrinsics`](/docs/errors/chain/TooManyPendingExtrinsics) | `store_encrypted` was rejected because the shield pallet's queue of encrypted extrinsics is already at capacity. Compare the `PendingExtrinsics` count against `MaxPendingExtrinsicsLimit` and wait for queued items to be processed or expire. |
| [`TooManyReserves`](/docs/errors/chain/TooManyReserves) | The account already has the maximum number of named reserves. Check the account's `Reserves` entry against the `MaxReserves` constant; a named reserve must be unreserved before adding another. |
+| [`TooManyRootClaimHotkeys`](/docs/errors/chain/TooManyRootClaimHotkeys) | The coldkey has more staking hotkeys than a single manual root claim can process. Reduce the coldkey's staking-hotkey fanout below `MAX_ROOT_CLAIM_HOTKEYS`, or use automatic root claiming instead. |
| [`TooManySignatories`](/docs/errors/chain/TooManySignatories) | The multisig signatory list exceeds the maximum allowed. Compare the length of `other_signatories` plus the sender against the pallet's `MaxSignatories` constant. |
| [`TooManyTopics`](/docs/errors/chain/TooManyTopics) | The number of topics passed to `seal_deposit_event` exceeds the schedule's `event_topics` limit. Reduce the number of indexed topics in the contract's event definition or compare against the schedule limit. |
| [`TooManyUIDsPerMechanism`](/docs/errors/chain/TooManyUIDsPerMechanism) | Setting max UIDs or mechanism count would make max_uids times mechanism_count exceed the chain default of 256 UIDs per subnet. Check `MaxAllowedUids` and the subnet's mechanism count so their product stays within the limit. |
diff --git a/docs/tx/set-childkey-take.mdx b/docs/tx/set-childkey-take.mdx
index c7c66aae09..ce1bba4743 100644
--- a/docs/tx/set-childkey-take.mdx
+++ b/docs/tx/set-childkey-take.mdx
@@ -85,6 +85,6 @@ pub fn set_childkey_take(
}
```
-Delegates to [`do_set_childkey_take`](/code/pallets/subtensor/src/staking/set_children.rs#L708).
+Delegates to [`do_set_childkey_take`](/code/pallets/subtensor/src/staking/set_children.rs#L710).
Every file is browsable under [/code](/code) exactly as built into the runtime, or as plain text under `/code/raw/` (index: [`/code/index.json`](/code/index.json)).
diff --git a/website/apps/bittensor-website/public/catalog/errors.json b/website/apps/bittensor-website/public/catalog/errors.json
index 9b839e197f..e6e72b81fb 100644
--- a/website/apps/bittensor-website/public/catalog/errors.json
+++ b/website/apps/bittensor-website/public/catalog/errors.json
@@ -5059,6 +5059,24 @@
"Balances"
]
},
+ "TooManyRootClaimHotkeys": {
+ "code": "limit_exceeded",
+ "description": "The coldkey has more staking hotkeys than a single manual root claim can process. Reduce the coldkey's staking-hotkey fanout below `MAX_ROOT_CLAIM_HOTKEYS`, or use automatic root claiming instead.",
+ "docs_url": "/docs/errors/chain/TooManyRootClaimHotkeys",
+ "markdown_url": "/llms.mdx/docs/errors/chain/TooManyRootClaimHotkeys/content.md",
+ "pallets": [
+ "SubtensorModule"
+ ],
+ "sources": [
+ {
+ "pallet": "SubtensorModule",
+ "path": "pallets/subtensor/src/macros/errors.rs",
+ "line": 350,
+ "url": "/code/pallets/subtensor/src/macros/errors.rs#L350",
+ "raw_url": "/code/raw/pallets/subtensor/src/macros/errors.rs"
+ }
+ ]
+ },
"TooManySignatories": {
"code": "limit_exceeded",
"description": "The multisig signatory list exceeds the maximum allowed. Compare the length of `other_signatories` plus the sender against the pallet's `MaxSignatories` constant.",