From b4c1a5ba602b589919a8b45cb2e8b4f187cfca59 Mon Sep 17 00:00:00 2001 From: mingda Date: Thu, 17 Sep 2020 15:16:46 +0800 Subject: [PATCH] add cliff rate --- contracts/token/LockedTokenVault.sol | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/contracts/token/LockedTokenVault.sol b/contracts/token/LockedTokenVault.sol index c25c868..bb526fa 100644 --- a/contracts/token/LockedTokenVault.sol +++ b/contracts/token/LockedTokenVault.sol @@ -36,6 +36,7 @@ contract LockedTokenVault is Ownable { uint256 public _START_RELEASE_TIME_; uint256 public _RELEASE_DURATION_; + uint256 public _CLIFF_RATE_; // ============ Modifiers ============ @@ -64,11 +65,13 @@ contract LockedTokenVault is Ownable { constructor( address _token, uint256 _startReleaseTime, - uint256 _releaseDuration + uint256 _releaseDuration, + uint256 _cliffRate ) public { _TOKEN_ = _token; _START_RELEASE_TIME_ = _startReleaseTime; _RELEASE_DURATION_ = _releaseDuration; + _CLIFF_RATE_ = _cliffRate; } function deposit(uint256 amount) external onlyOwner beforeStartRelease { @@ -175,7 +178,10 @@ contract LockedTokenVault is Ownable { uint256 timePast = block.timestamp.sub(_START_RELEASE_TIME_); if (timePast < _RELEASE_DURATION_) { uint256 remainingTime = _RELEASE_DURATION_.sub(timePast); - newRemaining = originBalances[holder].mul(remainingTime).div(_RELEASE_DURATION_); + newRemaining = originBalances[holder] + .sub(DecimalMath.mul(originBalances[holder], _CLIFF_RATE_)) + .mul(remainingTime) + .div(_RELEASE_DURATION_); } return remainingBalances[msg.sender].sub(newRemaining); }