Skip to content

Commit 9cae5a2

Browse files
authored
Merge pull request #303 from graphprotocol/andras/horizon-delegatedstake-lockeduntil
2 parents 47d4fbe + 8e788ba commit 9cae5a2

File tree

1 file changed

+32
-7
lines changed

1 file changed

+32
-7
lines changed

src/mappings/horizonStaking.ts

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -282,13 +282,39 @@ export function handleThawRequestCreated(event: ThawRequestCreated): void {
282282
}
283283
request.save()
284284

285-
// update latest thawingUntil for provision and indexer
286-
let provision = createOrLoadProvision(event.params.serviceProvider, event.params.verifier, event.block.timestamp)
287-
provision.thawingUntil = event.params.thawingUntil > provision.thawingUntil ? event.params.thawingUntil : provision.thawingUntil
288-
provision.save()
285+
if (request.type == 'Provision') {
286+
// update latest thawingUntil for provision and indexer
287+
let provision = createOrLoadProvision(
288+
event.params.serviceProvider,
289+
event.params.verifier,
290+
event.block.timestamp,
291+
)
292+
provision.thawingUntil =
293+
event.params.thawingUntil > provision.thawingUntil
294+
? event.params.thawingUntil
295+
: provision.thawingUntil
296+
provision.save()
297+
298+
indexer.thawingUntil =
299+
event.params.thawingUntil > indexer.thawingUntil
300+
? event.params.thawingUntil
301+
: indexer.thawingUntil
302+
indexer.save()
303+
} else {
304+
// update delegated stake for delegation thaw request
305+
let delegatedStake = createOrLoadDelegatedStakeForProvision(
306+
owner.id,
307+
indexer.id,
308+
dataService.id,
309+
event.block.timestamp.toI32(),
310+
)
289311

290-
indexer.thawingUntil = event.params.thawingUntil > indexer.thawingUntil ? event.params.thawingUntil : indexer.thawingUntil
291-
indexer.save()
312+
delegatedStake.lockedUntil =
313+
event.params.thawingUntil > delegatedStake.lockedUntil
314+
? event.params.thawingUntil
315+
: delegatedStake.lockedUntil
316+
delegatedStake.save()
317+
}
292318
}
293319

294320
export function handleThawRequestFulfilled(event: ThawRequestFulfilled): void {
@@ -469,7 +495,6 @@ export function handleTokensUndelegated(event: TokensUndelegated): void {
469495
delegatedStake.unstakedTokens = delegatedStake.unstakedTokens.plus(event.params.tokens)
470496
delegatedStake.shareAmount = delegatedStake.shareAmount.minus(event.params.shares)
471497
delegatedStake.lockedTokens = delegatedStake.lockedTokens.plus(event.params.tokens)
472-
//delegatedStake.lockedUntil = event.params.until.toI32() // until always updates and overwrites the past lockedUntil time
473498
delegatedStake.lastUndelegatedAt = event.block.timestamp.toI32()
474499

475500
let currentBalance = event.params.shares.toBigDecimal().times(beforeUpdateDelegationExchangeRate)

0 commit comments

Comments
 (0)