-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Description
What's the issue?
You communicated that rewards are locked for either 6 months or until 80% of the network is staked. The bonded ratio starts at 80% and should decrease by 1% each week (so after e.g. 8 weeks it should be at ~72%).
Current Implementation
This function should return values from 80 down to 0. What it actually does is returning values from 100 down to 0.
function bondedTargetRewardUnlock() public view returns (uint256) {
uint256 passedTime = block.timestamp.sub(unbondingStartDate());
uint256 passedPercents = PERCENT_UNIT.mul(passedTime).div(unbondingPeriod()); // total duration from 0% to 100% is unbondingPeriod
if (passedPercents > PERCENT_UNIT) {
return 0;
}
return PERCENT_UNIT - passedPercents;
}
New implementation
So I'd suggest the following changes:
function bondedTargetStart() public pure returns (uint256) {
return 80;
}
// ...
function bondedTargetRewardUnlock() public view returns (uint256) {
uint256 passedTime = block.timestamp.sub(unbondingStartDate());
uint256 passedPercents = PERCENT_UNIT.mul(passedTime).div(unbondingPeriod());
if (passedPercents > bondedTargetStart()) {
// Limit passed percents to bondedTargetStart() as this is the maximum value
passedPercents = bondedTargetStart();
}
return bondedTargetStart() - passedPercents;
}
Metadata
Metadata
Assignees
Labels
No labels