From 337f022f90c304e2bc82669a94c1ce8d55b4224c Mon Sep 17 00:00:00 2001 From: DanielDerefaka Date: Thu, 25 Dec 2025 22:01:19 +0100 Subject: [PATCH 1/4] feat: add NeuronRegistrationBurn event for tracking alpha burned Adds a new event `NeuronRegistrationBurn` that is emitted during burned registration to track the exact amount of alpha that was burned. The event includes: - netuid: The subnet where registration occurred - hotkey: The registered hotkey - tao_cost: The TAO amount that was spent - alpha_burned: The alpha amount that was actually burned This enables accurate tracking of registration burn amounts for accounting and analytics purposes. Fixes #2104 --- pallets/subtensor/src/macros/events.rs | 3 +++ pallets/subtensor/src/subnets/registration.rs | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pallets/subtensor/src/macros/events.rs b/pallets/subtensor/src/macros/events.rs index a06e035d86..f8414a3d5f 100644 --- a/pallets/subtensor/src/macros/events.rs +++ b/pallets/subtensor/src/macros/events.rs @@ -44,6 +44,9 @@ mod events { WeightsSet(NetUidStorageIndex, u16), /// a new neuron account has been registered to the chain. NeuronRegistered(NetUid, u16, T::AccountId), + /// alpha has been burned during neuron registration. + /// (netuid, hotkey, tao_cost, alpha_burned) + NeuronRegistrationBurn(NetUid, T::AccountId, TaoCurrency, AlphaCurrency), /// multiple uids have been concurrently registered. BulkNeuronsRegistered(u16, u16), /// FIXME: Not used yet diff --git a/pallets/subtensor/src/subnets/registration.rs b/pallets/subtensor/src/subnets/registration.rs index a7771857bb..7cc818c994 100644 --- a/pallets/subtensor/src/subnets/registration.rs +++ b/pallets/subtensor/src/subnets/registration.rs @@ -160,9 +160,15 @@ impl Pallet { RegistrationsThisBlock::::mutate(netuid, |val| val.saturating_inc()); Self::increase_rao_recycled(netuid, Self::get_burn(netuid).into()); - // --- 13. Deposit successful event. + // --- 13. Deposit successful events. log::debug!("NeuronRegistered( netuid:{netuid:?} uid:{neuron_uid:?} hotkey:{hotkey:?} ) "); - Self::deposit_event(Event::NeuronRegistered(netuid, neuron_uid, hotkey)); + Self::deposit_event(Event::NeuronRegistered(netuid, neuron_uid, hotkey.clone())); + Self::deposit_event(Event::NeuronRegistrationBurn( + netuid, + hotkey, + actual_burn_amount.into(), + burned_alpha.into(), + )); // --- 14. Ok and done. Ok(()) From adbb6ebe43793efb593efa2e6ac47078fce87532 Mon Sep 17 00:00:00 2001 From: DanielDerefaka Date: Mon, 29 Dec 2025 13:37:31 +0100 Subject: [PATCH 2/4] feat: add NeuronRegistrationBurn event for tracking alpha burned - Added new event NeuronRegistrationBurn(NetUid, AccountId, TaoCurrency, AlphaCurrency) - Emitted during do_burned_registration to track actual alpha burned - Bumped spec_version to 366 for devnet-ready Fixes #2104 --- runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 52746675f9..48e49b76c9 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -241,7 +241,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: 365, + spec_version: 366, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, From eb9bc20d31883d7a9ffd72ff0b6b550262d2fbb2 Mon Sep 17 00:00:00 2001 From: DanielDerefaka Date: Mon, 29 Dec 2025 13:43:31 +0100 Subject: [PATCH 3/4] feat: expand NeuronRegistered event with tao_cost and alpha_burned Instead of creating a separate NeuronRegistrationBurn event, expanded the existing NeuronRegistered event to include the burn amounts: - NeuronRegistered(NetUid, u16, T::AccountId, TaoCurrency, AlphaCurrency) For POW and root registration (which don't burn), tao_cost and alpha_burned are 0. Fixes #2104 --- pallets/subtensor/src/coinbase/root.rs | 2 ++ pallets/subtensor/src/macros/events.rs | 6 ++---- pallets/subtensor/src/subnets/registration.rs | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pallets/subtensor/src/coinbase/root.rs b/pallets/subtensor/src/coinbase/root.rs index 328ce3805c..ccc292d514 100644 --- a/pallets/subtensor/src/coinbase/root.rs +++ b/pallets/subtensor/src/coinbase/root.rs @@ -184,6 +184,8 @@ impl Pallet { NetUid::ROOT, subnetwork_uid, hotkey, + 0, + 0, )); // --- 16. Finish and return success. diff --git a/pallets/subtensor/src/macros/events.rs b/pallets/subtensor/src/macros/events.rs index f8414a3d5f..c17f717acd 100644 --- a/pallets/subtensor/src/macros/events.rs +++ b/pallets/subtensor/src/macros/events.rs @@ -43,10 +43,8 @@ mod events { /// a caller successfully sets their weights on a subnetwork. WeightsSet(NetUidStorageIndex, u16), /// a new neuron account has been registered to the chain. - NeuronRegistered(NetUid, u16, T::AccountId), - /// alpha has been burned during neuron registration. - /// (netuid, hotkey, tao_cost, alpha_burned) - NeuronRegistrationBurn(NetUid, T::AccountId, TaoCurrency, AlphaCurrency), + /// (netuid, uid, hotkey, tao_cost, alpha_burned) + NeuronRegistered(NetUid, u16, T::AccountId, TaoCurrency, AlphaCurrency), /// multiple uids have been concurrently registered. BulkNeuronsRegistered(u16, u16), /// FIXME: Not used yet diff --git a/pallets/subtensor/src/subnets/registration.rs b/pallets/subtensor/src/subnets/registration.rs index 7cc818c994..c32e756679 100644 --- a/pallets/subtensor/src/subnets/registration.rs +++ b/pallets/subtensor/src/subnets/registration.rs @@ -162,9 +162,9 @@ impl Pallet { // --- 13. Deposit successful events. log::debug!("NeuronRegistered( netuid:{netuid:?} uid:{neuron_uid:?} hotkey:{hotkey:?} ) "); - Self::deposit_event(Event::NeuronRegistered(netuid, neuron_uid, hotkey.clone())); - Self::deposit_event(Event::NeuronRegistrationBurn( + Self::deposit_event(Event::NeuronRegistered( netuid, + neuron_uid, hotkey, actual_burn_amount.into(), burned_alpha.into(), @@ -334,7 +334,7 @@ impl Pallet { // --- 15. Deposit successful event. log::debug!("NeuronRegistered( netuid:{netuid:?} uid:{neuron_uid:?} hotkey:{hotkey:?} ) "); - Self::deposit_event(Event::NeuronRegistered(netuid, neuron_uid, hotkey)); + Self::deposit_event(Event::NeuronRegistered(netuid, neuron_uid, hotkey, 0, 0)); // --- 16. Ok and done. Ok(()) From f240bead9b464f5e22756f542fd469616bd768a7 Mon Sep 17 00:00:00 2001 From: DanielDerefaka Date: Mon, 29 Dec 2025 16:35:39 +0100 Subject: [PATCH 4/4] fix: add .into() for TaoCurrency/AlphaCurrency type conversion --- pallets/subtensor/src/coinbase/root.rs | 4 ++-- pallets/subtensor/src/subnets/registration.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pallets/subtensor/src/coinbase/root.rs b/pallets/subtensor/src/coinbase/root.rs index ccc292d514..88183a43b0 100644 --- a/pallets/subtensor/src/coinbase/root.rs +++ b/pallets/subtensor/src/coinbase/root.rs @@ -184,8 +184,8 @@ impl Pallet { NetUid::ROOT, subnetwork_uid, hotkey, - 0, - 0, + 0u64.into(), + 0u64.into(), )); // --- 16. Finish and return success. diff --git a/pallets/subtensor/src/subnets/registration.rs b/pallets/subtensor/src/subnets/registration.rs index c32e756679..459b494bc2 100644 --- a/pallets/subtensor/src/subnets/registration.rs +++ b/pallets/subtensor/src/subnets/registration.rs @@ -334,7 +334,7 @@ impl Pallet { // --- 15. Deposit successful event. log::debug!("NeuronRegistered( netuid:{netuid:?} uid:{neuron_uid:?} hotkey:{hotkey:?} ) "); - Self::deposit_event(Event::NeuronRegistered(netuid, neuron_uid, hotkey, 0, 0)); + Self::deposit_event(Event::NeuronRegistered(netuid, neuron_uid, hotkey, 0u64.into(), 0u64.into())); // --- 16. Ok and done. Ok(())