Skip to content

Commit 05b4935

Browse files
committed
feat: added provision delegated fields
1 parent 3cc767b commit 05b4935

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

schema.graphql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -890,6 +890,14 @@ type Provision @entity {
890890
indexingRewardsCut: BigInt!
891891

892892
# Might want to add polymorphic handling of different fee cuts through a generic hashmap in the future
893+
894+
# Delegation
895+
"Tokens delegated to the provision"
896+
delegatedTokens: BigInt!
897+
"Total shares of the delegator pool"
898+
delegatorShares: BigInt!
899+
"Exchange rate of of tokens received for each share"
900+
delegationExchangeRate: BigDecimal!
893901
}
894902

895903
enum PaymentTypes {

src/mappings/helpers/helpers.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,9 @@ export function createOrLoadProvision(indexerAddress: Bytes, verifierAddress: By
209209
provision.queryFeeCut = BigInt.fromI32(0)
210210
provision.indexingFeeCut = BigInt.fromI32(0)
211211
provision.indexingRewardsCut = BigInt.fromI32(0)
212+
provision.delegatedTokens = BigInt.fromI32(0)
213+
provision.delegatorShares = BigInt.fromI32(0)
214+
provision.delegationExchangeRate = BigInt.fromI32(0).toBigDecimal()
212215
provision.save()
213216
}
214217

src/mappings/horizonStaking.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -273,9 +273,9 @@ export function handleThawRequestFulfilled(event: ThawRequestFulfilled): void {
273273
export function handleTokensToDelegationPoolAdded(event: TokensToDelegationPoolAdded): void {
274274
let indexer = Indexer.load(event.params.serviceProvider.toHexString())!
275275
let provision = createOrLoadProvision(event.params.serviceProvider, event.params.verifier, event.block.timestamp)
276-
indexer.delegatedTokens = indexer.delegatedTokens.plus(event.params.tokens)
277-
indexer = updateAdvancedIndexerMetricsHorizon(indexer, provision)
278-
indexer = updateDelegationExchangeRate(indexer)
279-
indexer = calculateCapacities(indexer)
276+
provision.delegatedTokens = provision.delegatedTokens.plus(event.params.tokens)
277+
provision.save()
278+
279+
indexer.delegatedTokens = indexer.delegatedTokens.plus(event.params.tokens) // this only serves as a general tracker, but the real deal is per provision
280280
indexer.save()
281281
}

0 commit comments

Comments
 (0)