Skip to content

Commit

Permalink
[Q-5] unitTime and rewardsPerUnitTime setter functions don’t check fo…
Browse files Browse the repository at this point in the history
…r new input data
  • Loading branch information
kumaryash90 committed Dec 9, 2022
1 parent 2744f3f commit 4470dfb
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 2 deletions.
8 changes: 8 additions & 0 deletions contracts/extension/Staking1155.sol
Expand Up @@ -110,6 +110,8 @@ abstract contract Staking1155 is ReentrancyGuard, IStaking1155 {
StakingCondition memory condition = _nextConditionId == 0
? defaultCondition[nextDefaultConditionId - 1]
: stakingConditions[_tokenId][_nextConditionId - 1];
require(_timeUnit != condition.timeUnit, "Time-unit unchanged.");

_setStakingCondition(_tokenId, _timeUnit, condition.rewardsPerUnitTime);

emit UpdatedTimeUnit(_tokenId, condition.timeUnit, _timeUnit);
Expand All @@ -134,6 +136,8 @@ abstract contract Staking1155 is ReentrancyGuard, IStaking1155 {
StakingCondition memory condition = _nextConditionId == 0
? defaultCondition[nextDefaultConditionId - 1]
: stakingConditions[_tokenId][_nextConditionId - 1];
require(_rewardsPerUnitTime != condition.rewardsPerUnitTime, "Reward unchanged.");

_setStakingCondition(_tokenId, condition.timeUnit, _rewardsPerUnitTime);

emit UpdatedRewardsPerUnitTime(_tokenId, condition.rewardsPerUnitTime, _rewardsPerUnitTime);
Expand All @@ -153,6 +157,8 @@ abstract contract Staking1155 is ReentrancyGuard, IStaking1155 {
}

StakingCondition memory _defaultCondition = defaultCondition[nextDefaultConditionId - 1];
require(_defaultTimeUnit != _defaultCondition.timeUnit, "Default time-unit unchanged.");

_setDefaultStakingCondition(_defaultTimeUnit, _defaultCondition.rewardsPerUnitTime);

emit UpdatedDefaultTimeUnit(_defaultCondition.timeUnit, _defaultTimeUnit);
Expand All @@ -172,6 +178,8 @@ abstract contract Staking1155 is ReentrancyGuard, IStaking1155 {
}

StakingCondition memory _defaultCondition = defaultCondition[nextDefaultConditionId - 1];
require(_defaultRewardsPerUnitTime != _defaultCondition.rewardsPerUnitTime, "Default reward unchanged.");

_setDefaultStakingCondition(_defaultCondition.timeUnit, _defaultRewardsPerUnitTime);

emit UpdatedDefaultRewardsPerUnitTime(_defaultCondition.rewardsPerUnitTime, _defaultRewardsPerUnitTime);
Expand Down
8 changes: 8 additions & 0 deletions contracts/extension/Staking1155Upgradeable.sol
Expand Up @@ -112,6 +112,8 @@ abstract contract Staking1155Upgradeable is ReentrancyGuardUpgradeable, IStaking
StakingCondition memory condition = _nextConditionId == 0
? defaultCondition[nextDefaultConditionId - 1]
: stakingConditions[_tokenId][_nextConditionId - 1];
require(_timeUnit != condition.timeUnit, "Time-unit unchanged.");

_setStakingCondition(_tokenId, _timeUnit, condition.rewardsPerUnitTime);

emit UpdatedTimeUnit(_tokenId, condition.timeUnit, _timeUnit);
Expand All @@ -136,6 +138,8 @@ abstract contract Staking1155Upgradeable is ReentrancyGuardUpgradeable, IStaking
StakingCondition memory condition = _nextConditionId == 0
? defaultCondition[nextDefaultConditionId - 1]
: stakingConditions[_tokenId][_nextConditionId - 1];
require(_rewardsPerUnitTime != condition.rewardsPerUnitTime, "Reward unchanged.");

_setStakingCondition(_tokenId, condition.timeUnit, _rewardsPerUnitTime);

emit UpdatedRewardsPerUnitTime(_tokenId, condition.rewardsPerUnitTime, _rewardsPerUnitTime);
Expand All @@ -155,6 +159,8 @@ abstract contract Staking1155Upgradeable is ReentrancyGuardUpgradeable, IStaking
}

StakingCondition memory _defaultCondition = defaultCondition[nextDefaultConditionId - 1];
require(_defaultTimeUnit != _defaultCondition.timeUnit, "Default time-unit unchanged.");

_setDefaultStakingCondition(_defaultTimeUnit, _defaultCondition.rewardsPerUnitTime);

emit UpdatedDefaultTimeUnit(_defaultCondition.timeUnit, _defaultTimeUnit);
Expand All @@ -174,6 +180,8 @@ abstract contract Staking1155Upgradeable is ReentrancyGuardUpgradeable, IStaking
}

StakingCondition memory _defaultCondition = defaultCondition[nextDefaultConditionId - 1];
require(_defaultRewardsPerUnitTime != _defaultCondition.rewardsPerUnitTime, "Default reward unchanged.");

_setDefaultStakingCondition(_defaultCondition.timeUnit, _defaultRewardsPerUnitTime);

emit UpdatedDefaultRewardsPerUnitTime(_defaultCondition.rewardsPerUnitTime, _defaultRewardsPerUnitTime);
Expand Down
6 changes: 6 additions & 0 deletions contracts/extension/Staking20.sol
Expand Up @@ -101,6 +101,8 @@ abstract contract Staking20 is ReentrancyGuard, IStaking20 {
}

StakingCondition memory condition = stakingConditions[nextConditionId - 1];
require(_timeUnit != condition.timeUnit, "Time-unit unchanged.");

_setStakingCondition(_timeUnit, condition.rewardRatioNumerator, condition.rewardRatioDenominator);

emit UpdatedTimeUnit(condition.timeUnit, _timeUnit);
Expand All @@ -123,6 +125,10 @@ abstract contract Staking20 is ReentrancyGuard, IStaking20 {
}

StakingCondition memory condition = stakingConditions[nextConditionId - 1];
require(
_numerator != condition.rewardRatioNumerator || _denominator != condition.rewardRatioDenominator,
"Reward ratio unchanged."
);
_setStakingCondition(condition.timeUnit, _numerator, _denominator);

emit UpdatedRewardRatio(
Expand Down
6 changes: 6 additions & 0 deletions contracts/extension/Staking20Upgradeable.sol
Expand Up @@ -103,6 +103,8 @@ abstract contract Staking20Upgradeable is ReentrancyGuardUpgradeable, IStaking20
}

StakingCondition memory condition = stakingConditions[nextConditionId - 1];
require(_timeUnit != condition.timeUnit, "Time-unit unchanged.");

_setStakingCondition(_timeUnit, condition.rewardRatioNumerator, condition.rewardRatioDenominator);

emit UpdatedTimeUnit(condition.timeUnit, _timeUnit);
Expand All @@ -125,6 +127,10 @@ abstract contract Staking20Upgradeable is ReentrancyGuardUpgradeable, IStaking20
}

StakingCondition memory condition = stakingConditions[nextConditionId - 1];
require(
_numerator != condition.rewardRatioNumerator || _denominator != condition.rewardRatioDenominator,
"Reward ratio unchanged."
);
_setStakingCondition(condition.timeUnit, _numerator, _denominator);

emit UpdatedRewardRatio(
Expand Down
4 changes: 4 additions & 0 deletions contracts/extension/Staking721.sol
Expand Up @@ -99,6 +99,8 @@ abstract contract Staking721 is ReentrancyGuard, IStaking721 {
}

StakingCondition memory condition = stakingConditions[nextConditionId - 1];
require(_timeUnit != condition.timeUnit, "Time-unit unchanged.");

_setStakingCondition(_timeUnit, condition.rewardsPerUnitTime);

emit UpdatedTimeUnit(condition.timeUnit, _timeUnit);
Expand All @@ -119,6 +121,8 @@ abstract contract Staking721 is ReentrancyGuard, IStaking721 {
}

StakingCondition memory condition = stakingConditions[nextConditionId - 1];
require(_rewardsPerUnitTime != condition.rewardsPerUnitTime, "Reward unchanged.");

_setStakingCondition(condition.timeUnit, _rewardsPerUnitTime);

emit UpdatedRewardsPerUnitTime(condition.rewardsPerUnitTime, _rewardsPerUnitTime);
Expand Down
4 changes: 4 additions & 0 deletions contracts/extension/Staking721Upgradeable.sol
Expand Up @@ -101,6 +101,8 @@ abstract contract Staking721Upgradeable is ReentrancyGuardUpgradeable, IStaking7
}

StakingCondition memory condition = stakingConditions[nextConditionId - 1];
require(_timeUnit != condition.timeUnit, "Time-unit unchanged.");

_setStakingCondition(_timeUnit, condition.rewardsPerUnitTime);

emit UpdatedTimeUnit(condition.timeUnit, _timeUnit);
Expand All @@ -121,6 +123,8 @@ abstract contract Staking721Upgradeable is ReentrancyGuardUpgradeable, IStaking7
}

StakingCondition memory condition = stakingConditions[nextConditionId - 1];
require(_rewardsPerUnitTime != condition.rewardsPerUnitTime, "Reward unchanged.");

_setStakingCondition(condition.timeUnit, _rewardsPerUnitTime);

emit UpdatedRewardsPerUnitTime(condition.rewardsPerUnitTime, _rewardsPerUnitTime);
Expand Down
2 changes: 1 addition & 1 deletion src/test/staking/EditionStake.t.sol
Expand Up @@ -1079,7 +1079,7 @@ contract Macro_EditionStakeTest is BaseTest {
stakeContract.withdraw(2, tokenAmount);

// timeUnit can't be changed back to a nonzero value
newTimeUnit = 60;
newTimeUnit = 40;
// vm.expectRevert(stdError.divisionError);
vm.prank(deployer);
stakeContract.setDefaultTimeUnit(newTimeUnit);
Expand Down
2 changes: 1 addition & 1 deletion src/test/staking/NFTStake.t.sol
Expand Up @@ -287,7 +287,7 @@ contract NFTStakeTest is BaseTest {
assertEq(timeUnit, stakeContract.getTimeUnit());

// set new value and check
uint256 newTimeUnit = 1 minutes;
uint256 newTimeUnit = 2 minutes;
vm.prank(deployer);
stakeContract.setTimeUnit(newTimeUnit);
assertEq(newTimeUnit, stakeContract.getTimeUnit());
Expand Down

0 comments on commit 4470dfb

Please sign in to comment.