Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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 @@ -1228,6 +1232,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 @@ -374,6 +376,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 = updateLegacyAdvancedIndexerMetrics(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 = updateLegacyAdvancedIndexerMetrics(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 = updateLegacyAdvancedIndexerMetrics(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