Skip to content

Commit fa4fcfe

Browse files
committed
fix: more fixes from reviews, and fixed addresses import preventing build
1 parent 402a572 commit fa4fcfe

File tree

3 files changed

+44
-51
lines changed

3 files changed

+44
-51
lines changed

src/mappings/horizonStaking.ts

Lines changed: 42 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import { BigInt } from '@graphprotocol/graph-ts'
2-
import { addresses } from '../../config/addresses.template'
3-
import { HorizonStakeDeposited, HorizonStakeLocked, HorizonStakeWithdrawn} from '../types/HorizonStaking/HorizonStaking'
2+
import { addresses } from '../../config/addresses'
3+
import { HorizonStakeDeposited, HorizonStakeLocked, HorizonStakeWithdrawn } from '../types/HorizonStaking/HorizonStaking'
44
import { Indexer } from '../types/schema'
55
import { calculateCapacities, createOrLoadEpoch, createOrLoadGraphNetwork, createOrLoadIndexer, updateAdvancedIndexerMetrics } from './helpers/helpers'
66

77

88
export function handleHorizonStakeDeposited(event: HorizonStakeDeposited): void {
9-
// To Do
109
let graphNetwork = createOrLoadGraphNetwork(event.block.number, event.address)
1110
// update indexer
1211
let indexer = createOrLoadIndexer(event.params.serviceProvider, event.block.timestamp)
@@ -15,64 +14,61 @@ export function handleHorizonStakeDeposited(event: HorizonStakeDeposited): void
1514
indexer = updateAdvancedIndexerMetrics(indexer as Indexer)
1615
indexer = calculateCapacities(indexer as Indexer)
1716
indexer.save()
18-
17+
1918
// Update graph network
2019
graphNetwork.totalTokensStaked = graphNetwork.totalTokensStaked.plus(event.params.tokens)
21-
if (previousStake == BigInt.fromI32(0)) {
22-
graphNetwork.stakedIndexersCount = graphNetwork.stakedIndexersCount + 1
20+
if (previousStake.isZero()) {
21+
graphNetwork.stakedIndexersCount = graphNetwork.stakedIndexersCount + 1
2322
}
2423
graphNetwork.save()
25-
24+
2625
// Update epoch
2726
let epoch = createOrLoadEpoch(
28-
addresses.isL1 ? event.block.number : graphNetwork.currentL1BlockNumber!,
27+
addresses.isL1 ? event.block.number : graphNetwork.currentL1BlockNumber!,
2928
)
3029
epoch.stakeDeposited = epoch.stakeDeposited.plus(event.params.tokens)
3130
epoch.save()
3231
}
3332

3433
export function handleHorizonStakeLocked(event: HorizonStakeLocked): void {
35-
// To Do
36-
let graphNetwork = createOrLoadGraphNetwork(event.block.number, event.address)
37-
// update indexer
38-
let id = event.params.serviceProvider.toHexString()
39-
let indexer = Indexer.load(id)!
40-
let oldLockedTokens = indexer.lockedTokens
41-
indexer.lockedTokens = event.params.tokens
42-
indexer.tokensLockedUntil = event.params.until.toI32()
43-
indexer = updateAdvancedIndexerMetrics(indexer as Indexer)
44-
indexer = calculateCapacities(indexer as Indexer)
45-
indexer.save()
34+
let graphNetwork = createOrLoadGraphNetwork(event.block.number, event.address)
35+
// update indexer
36+
let id = event.params.serviceProvider.toHexString()
37+
let indexer = Indexer.load(id)!
38+
indexer.lockedTokens = event.params.tokens
39+
indexer.tokensLockedUntil = event.params.until.toI32()
40+
indexer = updateAdvancedIndexerMetrics(indexer as Indexer)
41+
indexer = calculateCapacities(indexer as Indexer)
42+
indexer.save()
4643

47-
// update graph network
48-
// the tokens from the event replace the previously locked tokens
49-
// from this indexer
50-
graphNetwork.totalUnstakedTokensLocked = graphNetwork.totalUnstakedTokensLocked.plus(
51-
event.params.tokens,
52-
).minus(oldLockedTokens)
53-
if (indexer.stakedTokens == indexer.lockedTokens) {
54-
graphNetwork.stakedIndexersCount = graphNetwork.stakedIndexersCount - 1
55-
}
56-
graphNetwork.save()
44+
// update graph network
45+
graphNetwork.totalUnstakedTokensLocked = graphNetwork.totalUnstakedTokensLocked.plus(
46+
event.params.tokens,
47+
)
48+
graphNetwork.save()
5749
}
5850

5951
export function handleHorizonStakeWithdrawn(event: HorizonStakeWithdrawn): void {
60-
// To Do
61-
let graphNetwork = createOrLoadGraphNetwork(event.block.number, event.address)
62-
// update indexer
63-
let id = event.params.serviceProvider.toHexString()
64-
let indexer = Indexer.load(id)!
65-
indexer.stakedTokens = indexer.stakedTokens.minus(event.params.tokens)
66-
indexer.lockedTokens = BigInt.fromI32(0) // set to 0 to prevent issues when Stage 2 comes
67-
indexer.tokensLockedUntil = 0 // always set to 0 when withdrawn
68-
indexer = updateAdvancedIndexerMetrics(indexer as Indexer)
69-
indexer = calculateCapacities(indexer as Indexer)
70-
indexer.save()
52+
let graphNetwork = createOrLoadGraphNetwork(event.block.number, event.address)
53+
// update indexer
54+
let id = event.params.serviceProvider.toHexString()
55+
let indexer = Indexer.load(id)!
56+
indexer.stakedTokens = indexer.stakedTokens.minus(event.params.tokens)
57+
indexer.lockedTokens = BigInt.fromI32(0) // set to 0 to prevent issues when Stage 2 comes
58+
indexer.tokensLockedUntil = 0 // always set to 0 when withdrawn
59+
indexer = updateAdvancedIndexerMetrics(indexer as Indexer)
60+
indexer = calculateCapacities(indexer as Indexer)
61+
indexer.save()
7162

72-
// Update graph network
73-
graphNetwork.totalTokensStaked = graphNetwork.totalTokensStaked.minus(event.params.tokens)
74-
graphNetwork.totalUnstakedTokensLocked = graphNetwork.totalUnstakedTokensLocked.minus(
75-
event.params.tokens,
76-
)
77-
graphNetwork.save()
63+
// Update graph network
64+
graphNetwork.totalTokensStaked = graphNetwork.totalTokensStaked.minus(event.params.tokens)
65+
graphNetwork.totalUnstakedTokensLocked = graphNetwork.totalUnstakedTokensLocked.minus(
66+
event.params.tokens,
67+
)
68+
// We might want to introduce the notion of "provisioned indexer count" or "active indexer count"
69+
// to each data service since that's what this particular count wanted to convey.
70+
if (indexer.stakedTokens.isZero()) {
71+
graphNetwork.stakedIndexersCount = graphNetwork.stakedIndexersCount - 1
72+
}
73+
graphNetwork.save()
7874
}

src/mappings/staking.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,19 +106,16 @@ export function handleStakeLocked(event: StakeLocked): void {
106106
// update indexer
107107
let id = event.params.indexer.toHexString()
108108
let indexer = Indexer.load(id)!
109-
let oldLockedTokens = indexer.lockedTokens
110109
indexer.lockedTokens = event.params.tokens
111110
indexer.tokensLockedUntil = event.params.until.toI32()
112111
indexer = updateAdvancedIndexerMetrics(indexer as Indexer)
113112
indexer = calculateCapacities(indexer as Indexer)
114113
indexer.save()
115114

116115
// update graph network
117-
// the tokens from the event replace the previously locked tokens
118-
// from this indexer
119116
graphNetwork.totalUnstakedTokensLocked = graphNetwork.totalUnstakedTokensLocked.plus(
120117
event.params.tokens,
121-
).minus(oldLockedTokens)
118+
)
122119
if (indexer.stakedTokens == indexer.lockedTokens) {
123120
graphNetwork.stakedIndexersCount = graphNetwork.stakedIndexersCount - 1
124121
}

subgraph.template.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ dataSources:
388388
kind: ethereum/events
389389
apiVersion: 0.0.7
390390
language: wasm/assemblyscript
391-
file: ./src/mappings/staking.ts
391+
file: ./src/mappings/horizonStaking.ts
392392
entities:
393393
- GraphNetwork
394394
abis:

0 commit comments

Comments
 (0)