Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -751,6 +751,10 @@ type Indexer @entity(immutable: false) {
lockedTokens: BigInt!
"The block when the Indexers tokens unlock"
tokensLockedUntil: Int!
"[Legacy only] CURRENT tokens locked"
legacyLockedTokens: BigInt!
"[Legacy only] The block when the Indexers tokens unlock"
legacyTokensLockedUntil: Int!
"Active allocations of stake for this Indexer"
allocations: [Allocation!]! @derivedFrom(field: "activeForIndexer")
"All allocations of stake for this Indexer (i.e. closed and active)"
Expand Down Expand Up @@ -1226,6 +1230,10 @@ type DelegatedStake @entity(immutable: false) {
lockedTokens: BigInt!
"Epoch the locked tokens get unlocked"
lockedUntil: Int!
"[Legacy only] CURRENT tokens locked"
legacyLockedTokens: BigInt!
"[Legacy only] Epoch the locked tokens get unlocked"
legacyLockedUntil: Int!
"Shares owned in the delegator pool. Used to calculate total amount delegated"
shareAmount: BigInt!
"The rate this delegator paid for their shares (calculated using average cost basis). Used for rewards calculations"
Expand Down
4 changes: 4 additions & 0 deletions src/mappings/helpers/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,8 +147,10 @@ export function createOrLoadIndexer(indexerAddress: Bytes, timestamp: BigInt ):
indexer.thawingTokens = BigInt.fromI32(0)
indexer.allocatedTokens = BigInt.fromI32(0)
indexer.lockedTokens = BigInt.fromI32(0)
indexer.legacyLockedTokens = BigInt.fromI32(0)
indexer.unstakedTokens = BigInt.fromI32(0)
indexer.tokensLockedUntil = 0
indexer.legacyTokensLockedUntil = 0
indexer.queryFeesCollected = BigInt.fromI32(0)
indexer.queryFeeRebates = BigInt.fromI32(0)
indexer.rewardsEarned = BigInt.fromI32(0)
Expand Down Expand Up @@ -373,6 +375,8 @@ export function createOrLoadDelegatedStake(
delegatedStake.unstakedTokens = BigInt.fromI32(0)
delegatedStake.lockedTokens = BigInt.fromI32(0)
delegatedStake.lockedUntil = 0
delegatedStake.legacyLockedTokens = BigInt.fromI32(0)
delegatedStake.legacyLockedUntil = 0
delegatedStake.shareAmount = BigInt.fromI32(0)
delegatedStake.personalExchangeRate = BigDecimal.fromString('1')
delegatedStake.realizedRewards = BigDecimal.fromString('0')
Expand Down
1 change: 1 addition & 0 deletions src/mappings/l1staking.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,5 +110,6 @@ export function handleStakeDelegatedUnlockedDueToL2Transfer(
])
let delegation = DelegatedStake.load(delegationID)!
delegation.lockedUntil = graphNetwork.currentEpoch
delegation.legacyLockedUntil = graphNetwork.currentEpoch
delegation.save()
}
9 changes: 9 additions & 0 deletions src/mappings/staking.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ export function handleStakeLocked(event: StakeLocked): void {
let indexer = Indexer.load(id)!
indexer.lockedTokens = event.params.tokens
indexer.tokensLockedUntil = event.params.until.toI32()
indexer.legacyLockedTokens = event.params.tokens
indexer.legacyTokensLockedUntil = event.params.until.toI32()
indexer = updateAdvancedIndexerMetrics(indexer as Indexer)
indexer = calculateCapacities(indexer as Indexer)
indexer.save()
Expand Down Expand Up @@ -135,6 +137,8 @@ export function handleStakeWithdrawn(event: StakeWithdrawn): void {
indexer.stakedTokens = indexer.stakedTokens.minus(event.params.tokens)
indexer.lockedTokens = indexer.lockedTokens.minus(event.params.tokens)
indexer.tokensLockedUntil = 0 // always set to 0 when withdrawn
indexer.legacyLockedTokens = indexer.legacyLockedTokens.minus(event.params.tokens)
indexer.legacyTokensLockedUntil = 0 // always set to 0 when withdrawn
indexer = updateAdvancedIndexerMetrics(indexer as Indexer)
indexer = calculateCapacities(indexer as Indexer)
indexer.save()
Expand Down Expand Up @@ -164,6 +168,7 @@ export function handleStakeSlashed(event: StakeSlashed): void {
let staking = Staking.bind(event.address)
let indexerStored = staking.stakes(event.params.indexer)
indexer.lockedTokens = indexerStored.tokensLocked
indexer.legacyLockedTokens = indexerStored.tokensLocked
indexer = updateAdvancedIndexerMetrics(indexer as Indexer)
indexer = calculateCapacities(indexer as Indexer)
indexer.save()
Expand Down Expand Up @@ -268,7 +273,9 @@ export function handleStakeDelegatedLocked(event: StakeDelegatedLocked): void {
delegatedStake.unstakedTokens = delegatedStake.unstakedTokens.plus(event.params.tokens)
delegatedStake.shareAmount = delegatedStake.shareAmount.minus(event.params.shares)
delegatedStake.lockedTokens = delegatedStake.lockedTokens.plus(event.params.tokens)
delegatedStake.legacyLockedTokens = delegatedStake.legacyLockedTokens.plus(event.params.tokens)
delegatedStake.lockedUntil = event.params.until.toI32() // until always updates and overwrites the past lockedUntil time
delegatedStake.legacyLockedUntil = event.params.until.toI32() // until always updates and overwrites the past lockedUntil time
delegatedStake.lastUndelegatedAt = event.block.timestamp.toI32()

let currentBalance = event.params.shares.toBigDecimal().times(beforeUpdateDelegationExchangeRate)
Expand Down Expand Up @@ -306,7 +313,9 @@ export function handleStakeDelegatedWithdrawn(event: StakeDelegatedWithdrawn): v
let id = joinID([delegatorID, indexerID])
let delegatedStake = DelegatedStake.load(id)!
delegatedStake.lockedTokens = BigInt.fromI32(0)
delegatedStake.legacyLockedTokens = BigInt.fromI32(0)
delegatedStake.lockedUntil = 0
delegatedStake.legacyLockedUntil = 0
delegatedStake.save()
}

Expand Down