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. +

+ ::get())); +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. +

+
+ +
+

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

+ + + + + + + + + + + + + + + + + + + + + + + + + +
SettingBefore V441V441 default
Child-key cooldown7,200 blocks (~24 hours)2 subnet tempos
UnitBlocksTempos
ConfigurationLegacy Subtensor settingRoot 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.",