diff --git a/packages/lsd-staking/project.yaml b/packages/lsd-staking/project.yaml index 0381aef..5b507e7 100644 --- a/packages/lsd-staking/project.yaml +++ b/packages/lsd-staking/project.yaml @@ -65,4 +65,4 @@ dataSources: kind: substrate/AcalaEvmEvent filter: topics: - - LSTPoolConverted(uint256 poolId, address beforeShareType, address afterShareType, uint256 beforeShareTokenAmount, uint256 afterShareTokenAmount) \ No newline at end of file + - LSTPoolConverted(uint256 poolId, address beforeShareType, address afterShareType, uint256 beforeShareTokenAmount, uint256 afterShareTokenAmount) diff --git a/packages/lsd-staking/src/handlers/index.ts b/packages/lsd-staking/src/handlers/index.ts index d3fe408..53755ac 100644 --- a/packages/lsd-staking/src/handlers/index.ts +++ b/packages/lsd-staking/src/handlers/index.ts @@ -26,6 +26,7 @@ export async function handleRewardsDeductionRateSet( const poolEntity = await Pool.get(poolId.toString()); poolEntity.rewardsDeductionRate = rate.toBigInt(); + poolEntity.totalShare = BigInt(0); await poolEntity.save(); const rewardsDeductionRateSetRecordEntity = new RewardsDeductionRateSetRecord(`${event.transactionHash}-${event.logIndex}`, event.blockTimestamp, event.from, poolId.toBigInt(), rate.toBigInt()); @@ -48,17 +49,18 @@ export async function handleRewardRuleUpdate( } let rewardSupplyEntity = await RewardSupply.get(id); - if (rewardRuleEntity === undefined) { + if (rewardSupplyEntity === undefined) { rewardSupplyEntity = new RewardSupply(id); rewardSupplyEntity.amount = BigInt(0); } - const now = BigInt(event.blockTimestamp.getTime() / 1000); + const now = BigInt(Math.floor(event.blockTimestamp.getTime() / 1000)); const remain = rewardRuleEntity.endTime > now ? (rewardRuleEntity.endTime - now) * rewardRuleEntity.rewardRate : BigInt(0); rewardRuleEntity.rewardRate = rewardRate.toBigInt(); rewardRuleEntity.endTime = endTime.toBigInt(); + const added = rewardRuleEntity.rewardRate * (rewardRuleEntity.endTime - now) - remain; if (added > BigInt(0)) { rewardSupplyEntity.amount = rewardSupplyEntity.amount + remain; diff --git a/packages/lsd-staking/src/index.ts b/packages/lsd-staking/src/index.ts index 72ce943..55d8e9c 100644 --- a/packages/lsd-staking/src/index.ts +++ b/packages/lsd-staking/src/index.ts @@ -1,2 +1,2 @@ //Exports all handler functions -// export * from './mappings/mappingHandlers' +export * from './mappings/mappingHandlers' diff --git a/packages/lsd-staking/src/mappings/mappingHandlers.ts b/packages/lsd-staking/src/mappings/mappingHandlers.ts index 89e2a32..9205764 100644 --- a/packages/lsd-staking/src/mappings/mappingHandlers.ts +++ b/packages/lsd-staking/src/mappings/mappingHandlers.ts @@ -1 +1 @@ -// export * from '../handlers'; +export * from '../handlers';