@meteora-ag/cp-amm-sdk 1.0.11-rc.4 → 1.0.11-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -6372,32 +6372,41 @@ var getUnClaimReward = (poolState, positionState) => {
6372
6372
  rewards: positionState.rewardInfos.length > 0 ? positionState.rewardInfos.map((item) => item.rewardPendings) : []
6373
6373
  };
6374
6374
  };
6375
- function getRewardInfo(poolState, positionState, rewardIndex, currentTime, periodTime) {
6376
- const poolReward = poolState.rewardInfos[rewardIndex];
6377
- const userRewardInfo = positionState.rewardInfos[rewardIndex];
6378
- const lastTimeRewardApplicable = BN6.min(currentTime, poolReward.rewardDurationEnd);
6375
+ function getRewardPerTokenStore(poolReward, poolLiquidity, currentTime) {
6376
+ const lastTimeRewardApplicable = BN6.min(
6377
+ currentTime,
6378
+ poolReward.rewardDurationEnd
6379
+ );
6379
6380
  const timePeriod = lastTimeRewardApplicable.sub(poolReward.lastUpdateTime);
6380
6381
  const currentTotalReward = timePeriod.mul(poolReward.rewardRate);
6381
- const rewardPerTokenStore = currentTotalReward.shln(128).div(poolState.liquidity);
6382
- const userRewardPerTokenCheckPoint = new BN6(
6383
- Buffer.from(userRewardInfo.rewardPerTokenCheckpoint).reverse()
6384
- );
6385
- const totalPositionLiquidity = positionState.unlockedLiquidity.add(positionState.vestedLiquidity).add(positionState.permanentLockedLiquidity);
6386
- const newReward = totalPositionLiquidity.mul(rewardPerTokenStore.sub(userRewardPerTokenCheckPoint)).shrn(192);
6382
+ const rewardPerTokenStore = currentTotalReward.shln(128).div(poolLiquidity);
6383
+ const totalRewardPerTokenStore = new BN6(
6384
+ Buffer.from(poolReward.rewardPerTokenStored).reverse()
6385
+ ).add(rewardPerTokenStore);
6386
+ return totalRewardPerTokenStore;
6387
+ }
6388
+ function getRewardInfo(poolState, rewardIndex, periodTime, currentTime) {
6389
+ const poolReward = poolState.rewardInfos[rewardIndex];
6387
6390
  const totalRewardPerPeriod = poolReward.rewardRate.mul(periodTime);
6388
- const rewardPerTokenStorePerPeriod = totalRewardPerPeriod.shln(128).div(poolState.liquidity);
6389
- const totalUserRewardPerPeriod = totalPositionLiquidity.mul(rewardPerTokenStorePerPeriod).shrn(192);
6390
6391
  const totalReward = poolReward.rewardRate.mul(poolReward.rewardDuration).shrn(64);
6392
+ const rewardPerTokenStore = getRewardPerTokenStore(poolReward, poolState.liquidity, currentTime);
6391
6393
  const totalRewardDistributed = rewardPerTokenStore.mul(poolState.liquidity).shrn(192);
6392
- console.log("userRewardInfo.rewardPendings: ", userRewardInfo.rewardPendings.toString());
6393
- console.log("newReward: ", newReward.toString());
6394
6394
  return {
6395
- rewardPendings: userRewardInfo.rewardPendings.add(newReward),
6396
- totalUserRewardPerPeriod,
6397
- totalPoolRewardPerPeriod: totalRewardPerPeriod,
6395
+ rewardPerPeriod: totalRewardPerPeriod.shrn(64),
6398
6396
  rewardBalance: totalReward.sub(totalRewardDistributed)
6399
6397
  };
6400
6398
  }
6399
+ function getUserRewardPending(poolState, positionState, rewardIndex, currentTime) {
6400
+ const poolReward = poolState.rewardInfos[rewardIndex];
6401
+ const userRewardInfo = positionState.rewardInfos[rewardIndex];
6402
+ const rewardPerTokenStore = getRewardPerTokenStore(poolReward, poolState.liquidity, currentTime);
6403
+ const totalPositionLiquidity = positionState.unlockedLiquidity.add(positionState.vestedLiquidity).add(positionState.permanentLockedLiquidity);
6404
+ const userRewardPerTokenCheckPoint = new BN6(
6405
+ Buffer.from(userRewardInfo.rewardPerTokenCheckpoint).reverse()
6406
+ );
6407
+ const newReward = totalPositionLiquidity.mul(rewardPerTokenStore.sub(userRewardPerTokenCheckPoint)).shrn(192);
6408
+ return userRewardInfo.rewardPendings.add(newReward);
6409
+ }
6401
6410
 
6402
6411
  // src/helpers/accountFilters.ts
6403
6412
  var positionByPoolFilter = (pool) => {
@@ -9028,6 +9037,7 @@ export {
9028
9037
  getTokenProgram,
9029
9038
  getTotalLockedLiquidity,
9030
9039
  getUnClaimReward,
9040
+ getUserRewardPending,
9031
9041
  isVestingComplete,
9032
9042
  mulDiv,
9033
9043
  positionByPoolFilter,