88 "encoding/json"
99 "fmt"
1010 "math/big"
11+ "strconv"
1112
1213 "cosmossdk.io/log"
1314 "cosmossdk.io/math"
@@ -25,6 +26,7 @@ import (
2526)
2627
2728// ----------- Event topic constants -----------
29+ // Deprecated: Use Keeper instance fields (k.topicXXX) instead of these global constants
2830var (
2931 // Legacy events remain unchanged (backward compatibility)
3032 SubnetRegisteredTopic = crypto .Keccak256Hash ([]byte ("SubnetRegistered(address,uint16,uint256,uint256,address,string)" )).Hex ()
@@ -61,6 +63,23 @@ type Keeper struct {
6163 subnetManagerABI abi.ABI
6264 neuronManagerABI abi.ABI
6365 globalStakingABI abi.ABI
66+
67+ // Event topic IDs
68+ topicSubnetRegistered string
69+ topicStakedSelf string
70+ topicUnstakedSelf string
71+ topicStakedDelegated string
72+ topicUnstakedDelegated string
73+ topicWeightsSet string
74+ topicNetworkRegistered string
75+ topicSubnetActivated string
76+ topicNetworkConfigUpdated string
77+ topicNeuronRegistered string
78+ topicNeuronDeregistered string
79+ topicNeuronStakeChanged string
80+ topicServiceUpdated string
81+ topicSubnetAllocationChanged string
82+ topicDeallocatedFromSubnet string
6483}
6584
6685// ----------- Keeper initialization -----------
@@ -75,7 +94,7 @@ func NewKeeper(
7594 neuronManagerABI abi.ABI ,
7695 globalStakingABI abi.ABI ,
7796) * Keeper {
78- return & Keeper {
97+ k := & Keeper {
7998 cdc : cdc ,
8099 storeKey : storeKey ,
81100 subnetRegistryABI : subnetRegistryABI ,
@@ -86,6 +105,24 @@ func NewKeeper(
86105 neuronManagerABI : neuronManagerABI ,
87106 globalStakingABI : globalStakingABI ,
88107 }
108+ // Legacy events
109+ k .topicSubnetRegistered = k .subnetRegistryABI .Events ["SubnetRegistered" ].ID .Hex ()
110+ k .topicStakedSelf = k .stakingSelfABI .Events ["Staked" ].ID .Hex ()
111+ k .topicUnstakedSelf = k .stakingSelfABI .Events ["Unstaked" ].ID .Hex ()
112+ k .topicStakedDelegated = k .stakingDelegatedABI .Events ["Staked" ].ID .Hex ()
113+ k .topicUnstakedDelegated = k .stakingDelegatedABI .Events ["Unstaked" ].ID .Hex ()
114+ k .topicWeightsSet = k .weightsABI .Events ["WeightsSet" ].ID .Hex ()
115+ // New events
116+ k .topicNetworkRegistered = k .subnetManagerABI .Events ["NetworkRegistered" ].ID .Hex ()
117+ k .topicSubnetActivated = k .subnetManagerABI .Events ["SubnetActivated" ].ID .Hex ()
118+ k .topicNetworkConfigUpdated = k .subnetManagerABI .Events ["NetworkConfigUpdated" ].ID .Hex ()
119+ k .topicNeuronRegistered = k .neuronManagerABI .Events ["NeuronRegistered" ].ID .Hex ()
120+ k .topicNeuronDeregistered = k .neuronManagerABI .Events ["NeuronDeregistered" ].ID .Hex ()
121+ k .topicNeuronStakeChanged = k .neuronManagerABI .Events ["StakeAllocationChanged" ].ID .Hex ()
122+ k .topicServiceUpdated = k .neuronManagerABI .Events ["ServiceUpdated" ].ID .Hex ()
123+ k .topicSubnetAllocationChanged = k .globalStakingABI .Events ["SubnetAllocationChanged" ].ID .Hex ()
124+ k .topicDeallocatedFromSubnet = k .globalStakingABI .Events ["DeallocatedFromSubnet" ].ID .Hex ()
125+ return k
89126}
90127
91128// ----------- Logger -----------
@@ -106,51 +143,51 @@ func (k *Keeper) HandleEvmLogs(ctx sdk.Context, logs []ethTypes.Log) {
106143
107144 switch topic {
108145 // Legacy events (maintain compatibility)
109- case SubnetRegisteredTopic :
146+ case k . topicSubnetRegistered :
110147 k .Logger (ctx ).Debug ("Identified SubnetRegistered event" )
111148 k .handleSubnetRegistered (ctx , log )
112- case StakedSelfTopic :
149+ case k . topicStakedSelf :
113150 k .Logger (ctx ).Debug ("Identified StakedSelf event" )
114151 k .handleStaked (ctx , log )
115- case UnstakedSelfTopic :
152+ case k . topicUnstakedSelf :
116153 k .Logger (ctx ).Debug ("Identified UnstakedSelf event" )
117154 k .handleUnstaked (ctx , log )
118- case StakedDelegatedTopic :
155+ case k . topicStakedDelegated :
119156 k .Logger (ctx ).Debug ("Identified StakedDelegated event" )
120157 k .handleDelegatedStaked (ctx , log )
121- case UnstakedDelegatedTopic :
158+ case k . topicUnstakedDelegated :
122159 k .Logger (ctx ).Debug ("Identified UnstakedDelegated event" )
123160 k .handleDelegatedUnstaked (ctx , log )
124- case WeightsSetTopic :
161+ case k . topicWeightsSet :
125162 k .Logger (ctx ).Debug ("Identified WeightsSet event" )
126163 k .handleWeightsSet (ctx , log )
127164
128165 // New events
129- case NetworkRegisteredTopic :
166+ case k . topicNetworkRegistered :
130167 k .Logger (ctx ).Debug ("Identified NetworkRegistered event" )
131168 k .handleNetworkRegistered (ctx , log )
132- case SubnetActivatedTopic :
169+ case k . topicSubnetActivated :
133170 k .Logger (ctx ).Debug ("Identified SubnetActivated event" )
134171 k .handleSubnetActivated (ctx , log )
135- case NetworkConfigUpdatedTopic :
172+ case k . topicNetworkConfigUpdated :
136173 k .Logger (ctx ).Debug ("Identified NetworkConfigUpdated event" )
137174 k .handleNetworkConfigUpdated (ctx , log )
138- case NeuronRegisteredTopic :
175+ case k . topicNeuronRegistered :
139176 k .Logger (ctx ).Debug ("Identified NeuronRegistered event" )
140177 k .handleNeuronRegistered (ctx , log )
141- case NeuronDeregisteredTopic :
178+ case k . topicNeuronDeregistered :
142179 k .Logger (ctx ).Debug ("Identified NeuronDeregistered event" )
143180 k .handleNeuronDeregistered (ctx , log )
144- case NeuronStakeChangedTopic :
181+ case k . topicNeuronStakeChanged :
145182 k .Logger (ctx ).Debug ("Identified NeuronStakeChanged event" )
146183 k .handleNeuronStakeChanged (ctx , log )
147- case ServiceUpdatedTopic :
184+ case k . topicServiceUpdated :
148185 k .Logger (ctx ).Debug ("Identified ServiceUpdated event" )
149186 k .handleServiceUpdated (ctx , log )
150- case SubnetAllocationChangedTopic :
187+ case k . topicSubnetAllocationChanged :
151188 k .Logger (ctx ).Debug ("Identified SubnetAllocationChanged event" )
152189 k .handleSubnetAllocationChanged (ctx , log )
153- case DeallocatedFromSubnetTopic :
190+ case k . topicDeallocatedFromSubnet :
154191 k .Logger (ctx ).Debug ("Identified DeallocatedFromSubnet event" )
155192 k .handleDeallocatedFromSubnet (ctx , log )
156193 default :
@@ -385,10 +422,10 @@ func (k Keeper) handleNetworkRegistered(ctx sdk.Context, log ethTypes.Log) {
385422
386423 // Override Core network parameters (if event has values)
387424 if event .Hyperparams .Rho != 0 {
388- params ["rho" ] = fmt . Sprintf ( "%.1f" , float64 (event .Hyperparams .Rho )/ 10000.0 ) // uint16 to float64, assuming original value is scaled by 10000
425+ params ["rho" ] = strconv . FormatFloat ( float64 (event .Hyperparams .Rho )/ 10000.0 , 'f' , - 1 , 64 )
389426 }
390427 if event .Hyperparams .Kappa != 0 {
391- params ["kappa" ] = fmt .Sprintf ("%.1f " , float64 ( event .Hyperparams .Kappa )/ 10000.0 ) // uint16 to float64, assuming original value is scaled by 10000
428+ params ["kappa" ] = fmt .Sprintf ("%d " , event .Hyperparams .Kappa )
392429 }
393430 if event .Hyperparams .ImmunityPeriod != 0 {
394431 params ["immunity_period" ] = fmt .Sprintf ("%d" , event .Hyperparams .ImmunityPeriod )
0 commit comments