Skip to content

Commit

Permalink
🐛 rewards: fix released calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
santichez committed Jun 5, 2024
1 parent bb38a54 commit ca93c22
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 30 deletions.
5 changes: 5 additions & 0 deletions .changeset/moody-beds-burn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/protocol": patch
---

🐛 rewards: fix released calculation
58 changes: 29 additions & 29 deletions .gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ DebtManagerTest:testFloatingToFixedRollHigherThanAvailableLiquidityWithSlippage(
DebtManagerTest:testFloatingToFixedRollHigherThanAvailableLiquidityWithSlippageWithThreePools() (gas: 2787984)
DebtManagerTest:testFloatingToFixedRollWithAccurateSlippage() (gas: 1687218)
DebtManagerTest:testFloatingToFixedRollWithAccurateSlippageWithPreviousPosition() (gas: 1924341)
DebtManagerTest:testFuzzRolls(uint8[4],uint8[4],uint256[4],uint40[4],uint8[4]) (runs: 256, μ: 6508761, ~: 6529787)
DebtManagerTest:testFuzzRolls(uint8[4],uint8[4],uint256[4],uint40[4],uint8[4]) (runs: 256, μ: 6504217, ~: 6529787)
DebtManagerTest:testLateFixedRoll() (gas: 1310831)
DebtManagerTest:testLateFixedRollWithThreeLoops() (gas: 1897545)
DebtManagerTest:testLateFixedToFloatingRoll() (gas: 1273784)
Expand Down Expand Up @@ -141,11 +141,11 @@ InterestRateModelTest:testFixedBorrowRate() (gas: 2052054)
InterestRateModelTest:testFixedRateRevertAlreadyMatured() (gas: 2046236)
InterestRateModelTest:testFixedRateRevertUtilizationExceeded() (gas: 2053399)
InterestRateModelTest:testFloatingBorrowRate() (gas: 2045540)
InterestRateModelTest:testFuzzFixedRateGrowth(uint256,uint256,uint256,uint256) (runs: 256, μ: 2067117, ~: 2063904)
InterestRateModelTest:testFuzzFixedRateTimeSensitivity(uint256,uint256,uint256) (runs: 256, μ: 2073166, ~: 2073210)
InterestRateModelTest:testFuzzReferenceLegacyRateFixed(uint32,uint256,uint256[2],uint256[2],uint256,uint256,uint256) (runs: 256, μ: 9973344, ~: 10137900)
InterestRateModelTest:testFuzzReferenceRateFixed(uint256,uint256,uint256,uint256,uint256,uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,uint256,uint256)) (runs: 256, μ: 2337454, ~: 2339865)
InterestRateModelTest:testFuzzReferenceRateFloating(uint256,uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 256, μ: 2275596, ~: 2276456)
InterestRateModelTest:testFuzzFixedRateGrowth(uint256,uint256,uint256,uint256) (runs: 256, μ: 2067148, ~: 2063904)
InterestRateModelTest:testFuzzFixedRateTimeSensitivity(uint256,uint256,uint256) (runs: 256, μ: 2073165, ~: 2073210)
InterestRateModelTest:testFuzzReferenceLegacyRateFixed(uint32,uint256,uint256[2],uint256[2],uint256,uint256,uint256) (runs: 256, μ: 9970772, ~: 10137385)
InterestRateModelTest:testFuzzReferenceRateFixed(uint256,uint256,uint256,uint256,uint256,uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,uint256,uint256)) (runs: 256, μ: 2337320, ~: 2339917)
InterestRateModelTest:testFuzzReferenceRateFloating(uint256,uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 256, μ: 2275592, ~: 2276418)
InterestRateModelTest:testMinTimeToMaturity() (gas: 2063554)
InterestRateModelTest:testRevertMaxUtilizationLowerThanWad() (gas: 266682)
MarketTest:testAccountLiquidityAdjustedDebt() (gas: 499440)
Expand Down Expand Up @@ -284,7 +284,7 @@ PoolLibTest:testAtomicDepositBorrowRepayWithdraw() (gas: 46018)
PoolLibTest:testBackupBorrow() (gas: 33676)
PoolLibTest:testEarningsAccrual() (gas: 38999)
PoolLibTest:testEarningsDistribution() (gas: 32640)
PoolLibTest:testFuzzAddRemoveAll(uint8[12]) (runs: 256, μ: 55244, ~: 54164)
PoolLibTest:testFuzzAddRemoveAll(uint8[12]) (runs: 256, μ: 55186, ~: 54164)
PoolLibTest:testMaturityRangeLimit() (gas: 7873)
PoolLibTest:testMaturityRangeTooWide() (gas: 6831)
PreviewerTest:testAccountsReturningAccurateAmounts() (gas: 1393698)
Expand All @@ -293,8 +293,8 @@ PreviewerTest:testAccountsWithAccountOnlyDeposit() (gas: 862391)
PreviewerTest:testAccountsWithAccountThatHasBalances() (gas: 2265026)
PreviewerTest:testAccountsWithEmptyAccount() (gas: 690558)
PreviewerTest:testAccountsWithIntermediateOperationsReturningAccurateAmounts() (gas: 17617503)
PreviewerTest:testActualTimeBeforeStartDistributionRewards() (gas: 7753427)
PreviewerTest:testEmptyExactly() (gas: 5645469)
PreviewerTest:testActualTimeBeforeStartDistributionRewards() (gas: 7759515)
PreviewerTest:testEmptyExactly() (gas: 5651562)
PreviewerTest:testExactlyReturningInterestRateModelData() (gas: 688149)
PreviewerTest:testFixedAvailableLiquidityProjectingNewFloatingDebt() (gas: 13301596)
PreviewerTest:testFixedPoolsA() (gas: 19318341)
Expand All @@ -305,7 +305,7 @@ PreviewerTest:testFlexibleAvailableLiquidity() (gas: 17242437)
PreviewerTest:testFlexibleBorrowSharesAndAssets() (gas: 4401038)
PreviewerTest:testFloatingAvailableLiquidityProjectingNewFloatingDebt() (gas: 12554334)
PreviewerTest:testFloatingRateAndUtilization() (gas: 1128246)
PreviewerTest:testJustUpdatedRewardRatesShouldStillReturnRate() (gas: 7174821)
PreviewerTest:testJustUpdatedRewardRatesShouldStillReturnRate() (gas: 7180914)
PreviewerTest:testMaxBorrowAssetsCapacity() (gas: 2469700)
PreviewerTest:testMaxBorrowAssetsCapacityForAccountWithShortfall() (gas: 10991846)
PreviewerTest:testMaxBorrowAssetsCapacityPerMarket() (gas: 13181978)
Expand Down Expand Up @@ -352,12 +352,12 @@ PreviewerTest:testPreviewWithdrawAtMaturityWithOneUnit() (gas: 251718)
PreviewerTest:testPreviewWithdrawAtMaturityWithSameTimestamp() (gas: 233406)
PreviewerTest:testPreviewWithdrawAtMaturityWithZeroAmount() (gas: 251675)
PreviewerTest:testReserveFactor() (gas: 707280)
PreviewerTest:testReturnRewardAssetUsdPrice() (gas: 6697322)
PreviewerTest:testRewardsRateAfterDistributionEnd() (gas: 7481122)
PreviewerTest:testRewardsRateOnlyWithFixedBorrows() (gas: 6788297)
PreviewerTest:testRewardsRateWithDifferentRewardLengths() (gas: 19241268)
PreviewerTest:testRewardsRateWithMarketWithDifferentDecimals() (gas: 18372292)
PreviewerTest:testRewardsRateX() (gas: 8127662)
PreviewerTest:testReturnRewardAssetUsdPrice() (gas: 6703410)
PreviewerTest:testRewardsRateAfterDistributionEnd() (gas: 7487215)
PreviewerTest:testRewardsRateOnlyWithFixedBorrows() (gas: 6794390)
PreviewerTest:testRewardsRateWithDifferentRewardLengths() (gas: 19247356)
PreviewerTest:testRewardsRateWithMarketWithDifferentDecimals() (gas: 18378380)
PreviewerTest:testRewardsRateX() (gas: 8133750)
PriceFeedDoubleTest:testPriceFeedDoubleReturningAccurateDecimals() (gas: 597567)
PriceFeedDoubleTest:testPriceFeedDoubleReturningPrice() (gas: 53190)
PriceFeedDoubleTest:testPriceFeedDoubleWithActualOnChainValues() (gas: 76310)
Expand Down Expand Up @@ -397,7 +397,7 @@ RewardsControllerTest:testClaim() (gas: 1192161)
RewardsControllerTest:testClaimAll() (gas: 2188738)
RewardsControllerTest:testClaimMarketWithoutRewards() (gas: 1240983)
RewardsControllerTest:testClaimWithNotEnabledRewardAsset() (gas: 1222637)
RewardsControllerTest:testConfigSettingNewStartWithOnGoingDistributionShouldNotUpdate() (gas: 430182)
RewardsControllerTest:testConfigSettingNewStartWithOnGoingDistributionShouldNotUpdate() (gas: 430275)
RewardsControllerTest:testConfigWithDistributionNotYetStartedShouldNotFail() (gas: 613404)
RewardsControllerTest:testConfigWithTransitionFactorHigherOrEqThanCap() (gas: 107189)
RewardsControllerTest:testConfigWithZeroDepositAllocationWeightFactorShouldRevert() (gas: 71542)
Expand All @@ -413,23 +413,23 @@ RewardsControllerTest:testPermitClaim() (gas: 1275282)
RewardsControllerTest:testSetDistributionConfigWithDifferentDecimals() (gas: 11445059)
RewardsControllerTest:testSetDistributionOperationShouldUpdateIndex() (gas: 136200)
RewardsControllerTest:testSetDistributionWithOnGoingMarketOperations() (gas: 1202358)
RewardsControllerTest:testSetHigherTotalDistribution() (gas: 1831201)
RewardsControllerTest:testSetLowerAndEqualDistributionPeriodThanCurrentTimestampShouldRevert() (gas: 1274696)
RewardsControllerTest:testSetLowerAndEqualTotalDistributionThanReleasedShouldRevert() (gas: 1267721)
RewardsControllerTest:testSetLowerDistributionPeriod() (gas: 2284176)
RewardsControllerTest:testSetLowerDistributionPeriodAndLowerTotalDistribution() (gas: 2286901)
RewardsControllerTest:testSetLowerTotalDistribution() (gas: 1831114)
RewardsControllerTest:testSetNewDistributionPeriod() (gas: 3143972)
RewardsControllerTest:testSetHigherTotalDistribution() (gas: 1831294)
RewardsControllerTest:testSetLowerAndEqualDistributionPeriodThanCurrentTimestampShouldRevert() (gas: 1274975)
RewardsControllerTest:testSetLowerAndEqualTotalDistributionThanReleasedShouldRevert() (gas: 1268000)
RewardsControllerTest:testSetLowerDistributionPeriod() (gas: 2284269)
RewardsControllerTest:testSetLowerDistributionPeriodAndLowerTotalDistribution() (gas: 2286994)
RewardsControllerTest:testSetLowerTotalDistribution() (gas: 1831207)
RewardsControllerTest:testSetNewDistributionPeriod() (gas: 3144065)
RewardsControllerTest:testSetNewDistributionPeriodAfterDistributionEnds() (gas: 1406666)
RewardsControllerTest:testSetNewTargetDebt() (gas: 1671525)
RewardsControllerTest:testSetNewTargetDebt() (gas: 1671618)
RewardsControllerTest:testSetNewTargetDebtAfterDistributionEnds() (gas: 1734966)
RewardsControllerTest:testSetNewTargetDebtWithClaimOnlyAtEnd() (gas: 1389661)
RewardsControllerTest:testSetNewTargetDebtWithClaimOnlyAtEnd() (gas: 1389754)
RewardsControllerTest:testSetNewTreasuryFeeShouldImpactAllocation() (gas: 658882)
RewardsControllerTest:testSetTargetDebtMultipleTimes() (gas: 2719324)
RewardsControllerTest:testSetTargetDebtMultipleTimes() (gas: 2719577)
RewardsControllerTest:testSetTargetDebtMultipleTimesAfterEnd() (gas: 2756094)
RewardsControllerTest:testSetTotalDistributionMultipleTimes() (gas: 1838222)
RewardsControllerTest:testSetTotalDistributionMultipleTimes() (gas: 1838475)
RewardsControllerTest:testTriggerHandleBorrowHookBeforeUpdatingFloatingDebt() (gas: 1879339)
RewardsControllerTest:testUpdateConfig() (gas: 1328855)
RewardsControllerTest:testUpdateConfig() (gas: 1328948)
RewardsControllerTest:testUpdateIndexesWithUtilizationEqualToOne() (gas: 1257771)
RewardsControllerTest:testUpdateIndexesWithUtilizationHigherThanOne() (gas: 1352512)
RewardsControllerTest:testUpdateWithTotalDebtZeroShouldUpdateLastUndistributed() (gas: 575506)
Expand Down
2 changes: 1 addition & 1 deletion contracts/RewardsController.sol
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,7 @@ contract RewardsController is Initializable, AccessControlUpgradeable {
released =
rewardData.lastConfigReleased +
rewardData.releaseRate *
(block.timestamp - rewardData.lastConfig);
(block.timestamp - Math.max(rewardData.lastConfig, start));
elapsed = block.timestamp - start;
if (configs[i].totalDistribution <= released || configs[i].distributionPeriod <= elapsed) {
revert InvalidConfig();
Expand Down

0 comments on commit ca93c22

Please sign in to comment.