2022-09-23 14:54:27 +02:00
|
|
|
import { Address } from '@graphprotocol/graph-ts'
|
|
|
|
import {
|
|
|
|
Claimed,
|
|
|
|
CheckpointToken
|
|
|
|
} from '../@types/veFeeDistributor/veFeeDistributor'
|
|
|
|
import { weiToDecimal } from './utils/generic'
|
|
|
|
import { getveOCEAN, getVeFeeDistributor } from './utils/veUtils'
|
|
|
|
import { VeClaim, VeFeeDistributorCheckPoint } from '../@types/schema'
|
|
|
|
import { getToken } from './utils/tokenUtils'
|
|
|
|
|
|
|
|
export function handleClaimed(event: Claimed): void {
|
|
|
|
const distributor = getVeFeeDistributor(event.address)
|
|
|
|
const id =
|
|
|
|
event.transaction.hash.toHexString() + '-' + event.logIndex.toString()
|
|
|
|
const veOcean = getveOCEAN(event.params.recipient.toHexString())
|
|
|
|
const token = getToken(Address.fromString(distributor.token), false)
|
|
|
|
const claim = new VeClaim(id)
|
|
|
|
claim.amount = weiToDecimal(
|
|
|
|
event.params.amount.toBigDecimal(),
|
|
|
|
token.decimals
|
|
|
|
)
|
|
|
|
claim.claim_epoch = event.params.claim_epoch
|
|
|
|
claim.max_epoch = event.params.max_epoch
|
|
|
|
|
|
|
|
claim.veOcean = veOcean.id
|
|
|
|
claim.VeFeeDistributor = distributor.id
|
|
|
|
|
|
|
|
claim.block = event.block.number.toI32()
|
|
|
|
claim.tx = event.transaction.hash.toHex()
|
2023-05-13 14:00:52 +02:00
|
|
|
claim.eventIndex = event.logIndex.toI32()
|
2022-09-23 14:54:27 +02:00
|
|
|
claim.timestamp = event.block.timestamp
|
|
|
|
claim.save()
|
|
|
|
}
|
|
|
|
|
|
|
|
export function handleCheckpoint(event: CheckpointToken): void {
|
|
|
|
const distributor = getVeFeeDistributor(event.address)
|
|
|
|
const id =
|
|
|
|
event.transaction.hash.toHexString() + '-' + event.logIndex.toString()
|
|
|
|
const token = getToken(Address.fromString(distributor.token), false)
|
|
|
|
const checkpoint = new VeFeeDistributorCheckPoint(id)
|
|
|
|
checkpoint.tokens = weiToDecimal(
|
|
|
|
event.params.tokens.toBigDecimal(),
|
|
|
|
token.decimals
|
|
|
|
)
|
|
|
|
checkpoint.sender = event.transaction.from.toHexString()
|
|
|
|
checkpoint.block = event.block.number.toI32()
|
|
|
|
checkpoint.tx = event.transaction.hash.toHex()
|
2023-05-13 14:00:52 +02:00
|
|
|
checkpoint.eventIndex = event.logIndex.toI32()
|
2022-09-23 14:54:27 +02:00
|
|
|
checkpoint.timestamp = event.params.time
|
|
|
|
checkpoint.VeFeeDistributor = distributor.id
|
|
|
|
checkpoint.save()
|
|
|
|
}
|