@@ -108,6 +108,8 @@ export function handleStakeLocked(event: StakeLocked): void {
108108 // update indexer
109109 let id = event . params . indexer . toHexString ( )
110110 let indexer = Indexer . load ( id ) !
111+ indexer . lockedTokens = event . params . tokens
112+ indexer . tokensLockedUntil = event . params . until . toI32 ( )
111113 indexer . legacyLockedTokens = event . params . tokens
112114 indexer . legacyTokensLockedUntil = event . params . until . toI32 ( )
113115 indexer = updateLegacyAdvancedIndexerMetrics ( indexer as Indexer )
@@ -118,7 +120,7 @@ export function handleStakeLocked(event: StakeLocked): void {
118120 graphNetwork . totalUnstakedTokensLocked = graphNetwork . totalUnstakedTokensLocked . plus (
119121 event . params . tokens ,
120122 )
121- if ( indexer . stakedTokens == indexer . lockedTokens . plus ( indexer . legacyLockedTokens ) ) {
123+ if ( indexer . stakedTokens == indexer . lockedTokens ) {
122124 graphNetwork . stakedIndexersCount = graphNetwork . stakedIndexersCount - 1
123125 }
124126 graphNetwork . save ( )
@@ -136,6 +138,8 @@ export function handleStakeWithdrawn(event: StakeWithdrawn): void {
136138 let id = event . params . indexer . toHexString ( )
137139 let indexer = Indexer . load ( id ) !
138140 indexer . stakedTokens = indexer . stakedTokens . minus ( event . params . tokens )
141+ indexer . lockedTokens = indexer . lockedTokens . minus ( event . params . tokens )
142+ indexer . tokensLockedUntil = 0 // always set to 0 when withdrawn
139143 indexer . legacyLockedTokens = indexer . legacyLockedTokens . minus ( event . params . tokens )
140144 indexer . legacyTokensLockedUntil = 0 // always set to 0 when withdrawn
141145 indexer = updateLegacyAdvancedIndexerMetrics ( indexer as Indexer )
@@ -176,9 +180,12 @@ export function handleStakeSlashed(event: StakeSlashed): void {
176180 : indexer . legacyLockedTokens
177181
178182 indexer . legacyLockedTokens = indexer . legacyLockedTokens . minus ( tokensToUnlock )
183+ indexer . lockedTokens = indexer . lockedTokens . minus ( tokensToUnlock )
179184
180185 if ( indexer . legacyLockedTokens . equals ( BigInt . fromI32 ( 0 ) ) ) {
181186 indexer . legacyTokensLockedUntil = 0
187+ }
188+ if ( indexer . lockedTokens . equals ( BigInt . fromI32 ( 0 ) ) ) {
182189 indexer . tokensLockedUntil = 0
183190 }
184191 }
@@ -289,7 +296,9 @@ export function handleStakeDelegatedLocked(event: StakeDelegatedLocked): void {
289296
290297 delegatedStake . unstakedTokens = delegatedStake . unstakedTokens . plus ( event . params . tokens )
291298 delegatedStake . shareAmount = delegatedStake . shareAmount . minus ( event . params . shares )
299+ delegatedStake . lockedTokens = delegatedStake . lockedTokens . plus ( event . params . tokens )
292300 delegatedStake . legacyLockedTokens = delegatedStake . legacyLockedTokens . plus ( event . params . tokens )
301+ delegatedStake . lockedUntil = event . params . until . toI32 ( ) // until always updates and overwrites the past lockedUntil time
293302 delegatedStake . legacyLockedUntil = event . params . until . toI32 ( ) // until always updates and overwrites the past lockedUntil time
294303 delegatedStake . lastUndelegatedAt = event . block . timestamp . toI32 ( )
295304
@@ -327,7 +336,9 @@ export function handleStakeDelegatedWithdrawn(event: StakeDelegatedWithdrawn): v
327336 let delegatorID = event . params . delegator . toHexString ( )
328337 let id = joinID ( [ delegatorID , indexerID ] )
329338 let delegatedStake = DelegatedStake . load ( id ) !
339+ delegatedStake . lockedTokens = BigInt . fromI32 ( 0 )
330340 delegatedStake . legacyLockedTokens = BigInt . fromI32 ( 0 )
341+ delegatedStake . lockedUntil = 0
331342 delegatedStake . legacyLockedUntil = 0
332343 delegatedStake . save ( )
333344}
0 commit comments