Skip to content

Commit

Permalink
track which rewardpool claimed rewards belong to on clm interactions (#…
Browse files Browse the repository at this point in the history
…27)

* track which rewardpool claimed rewards belong to on clm interactions

* pass claimed rewardpool individually

* update comments
  • Loading branch information
seguido authored Aug 21, 2024
1 parent 1e00398 commit cf9ec7f
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
5 changes: 5 additions & 0 deletions schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -854,6 +854,11 @@ type ClmPositionInteraction @entity(immutable: true) {
rewardPoolBalancesDelta: [BigInt!]!
"Amount of reward tokens change in the interaction. Ordered by clm.rewardTokensOrder."
rewardBalancesDelta: [BigInt!]!
"""
RewardPool from which rewards were claimed.
TODO: this is required because rewardBalancesDelta and clm.rewardTokensOrder contains all reward tokens of all potential rewardpools. Maybe rewardBalancesDelta should be an array of array of bigint. Or smth else altogether.
"""
claimedRewardPool: ClmRewardPool
"Amount of underlying token 0 change in the interaction"
underlyingBalance0Delta: BigInt!
"Amount of underlying token 0 change in the interaction"
Expand Down
14 changes: 8 additions & 6 deletions src/clm/interaction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { getClmRewardPool, getCLM, isClmInitialized } from "./entity/clm"
import { getTransaction } from "../common/entity/transaction"
import { getInvestor } from "../common/entity/investor"
import { getClmPosition } from "./entity/position"
import { CLM, ClmPositionInteraction } from "../../generated/schema"
import { CLM, ClmPositionInteraction, ClmRewardPool } from "../../generated/schema"
import { BURN_ADDRESS, SHARE_TOKEN_MINT_ADDRESS } from "../config"
import { ZERO_BI } from "../common/utils/decimal"
import { fetchCLMData, updateCLMDataAndSnapshots } from "./utils/clm-data"
Expand Down Expand Up @@ -48,7 +48,7 @@ export function handleClmManagerTransfer(event: ClmManagerTransferEvent): void {
!event.params.from.equals(managerAddress) &&
!isRewardPoolFrom
) {
updateUserPosition(clm, event, event.params.from, event.params.value.neg(), [], [])
updateUserPosition(clm, event, event.params.from, event.params.value.neg(), [], [], null)
}

if (
Expand All @@ -57,7 +57,7 @@ export function handleClmManagerTransfer(event: ClmManagerTransferEvent): void {
!event.params.to.equals(managerAddress) &&
!isRewardPoolTo
) {
updateUserPosition(clm, event, event.params.to, event.params.value, [], [])
updateUserPosition(clm, event, event.params.to, event.params.value, [], [], null)
}
}

Expand Down Expand Up @@ -105,7 +105,7 @@ export function handleClmRewardPoolTransfer(event: RewardPoolTransferEvent): voi
!event.params.to.equals(managerAddress) &&
!isRewardPoolTo
) {
updateUserPosition(clm, event, event.params.to, ZERO_BI, rewardPoolBalancesDelta, [])
updateUserPosition(clm, event, event.params.to, ZERO_BI, rewardPoolBalancesDelta, [], null)
}

if (
Expand All @@ -118,7 +118,7 @@ export function handleClmRewardPoolTransfer(event: RewardPoolTransferEvent): voi
for (let i = 0; i < rewardPoolBalancesDelta.length; i++) {
negRewardPoolBalancesDelta.push(rewardPoolBalancesDelta[i].neg())
}
updateUserPosition(clm, event, event.params.from, ZERO_BI, negRewardPoolBalancesDelta, [])
updateUserPosition(clm, event, event.params.from, ZERO_BI, negRewardPoolBalancesDelta, [], null)
}
}

Expand All @@ -136,7 +136,7 @@ export function handleClmRewardPoolRewardPaid(event: RewardPoolRewardPaidEvent):
}
}

updateUserPosition(clm, event, event.params.user, ZERO_BI, [], rewardBalancesDelta)
updateUserPosition(clm, event, event.params.user, ZERO_BI, [], rewardBalancesDelta, rewardPool)
}

function updateUserPosition(
Expand All @@ -146,6 +146,7 @@ function updateUserPosition(
managerBalanceDelta: BigInt,
rewardPoolBalancesDelta: Array<BigInt>,
rewardBalancesDelta: Array<BigInt>,
claimedRewardPool: ClmRewardPool | null,
): void {
if (!isClmInitialized(clm)) {
return
Expand Down Expand Up @@ -234,6 +235,7 @@ function updateUserPosition(
interaction.managerBalanceDelta = managerBalanceDelta
interaction.rewardPoolBalancesDelta = rewardPoolBalancesDelta
interaction.rewardBalancesDelta = rewardBalancesDelta
interaction.claimedRewardPool = claimedRewardPool ? claimedRewardPool.id : null

interaction.underlyingBalance0 = ZERO_BI
interaction.underlyingBalance1 = ZERO_BI
Expand Down

0 comments on commit cf9ec7f

Please sign in to comment.