移除中文注释
This commit is contained in:
parent
6f4fdaa135
commit
9ab09f768d
@ -13,11 +13,8 @@ contract RewardDistributor is IRewardDistributor, ReentrancyGuard, Governable {
|
|||||||
using SafeERC20 for IERC20;
|
using SafeERC20 for IERC20;
|
||||||
|
|
||||||
address public override rewardToken;
|
address public override rewardToken;
|
||||||
// 1个token, 在指定周期内, 每秒可获得的收益
|
|
||||||
// 比如收益是150%, 周期是1年, 那么 1.5 / (365 * 24 * 3600)
|
|
||||||
uint256 public override tokensPerInterval;
|
uint256 public override tokensPerInterval;
|
||||||
uint256 public lastDistributionTime;
|
uint256 public lastDistributionTime;
|
||||||
// RewardTracker合约地址
|
|
||||||
address public rewardTracker;
|
address public rewardTracker;
|
||||||
|
|
||||||
address public admin;
|
address public admin;
|
||||||
@ -64,9 +61,7 @@ contract RewardDistributor is IRewardDistributor, ReentrancyGuard, Governable {
|
|||||||
uint256 timeDiff = block.timestamp - lastDistributionTime;
|
uint256 timeDiff = block.timestamp - lastDistributionTime;
|
||||||
return tokensPerInterval * timeDiff;
|
return tokensPerInterval * timeDiff;
|
||||||
}
|
}
|
||||||
// changed
|
|
||||||
// 从RewardTracker合约中调用
|
|
||||||
// 由于我们是每个用户单独计算收益, 所以这里需要传入具体数量, 用于计算需要transafer的数量
|
|
||||||
function distribute(uint256 _amount, uint256 _decimals) external override returns (uint256) {
|
function distribute(uint256 _amount, uint256 _decimals) external override returns (uint256) {
|
||||||
require(msg.sender == rewardTracker, "RewardDistributor: invalid msg.sender");
|
require(msg.sender == rewardTracker, "RewardDistributor: invalid msg.sender");
|
||||||
uint256 amount = pendingRewards();
|
uint256 amount = pendingRewards();
|
||||||
|
@ -26,19 +26,14 @@ contract RewardTracker is IERC20, ReentrancyGuard, IRewardTracker, Governable {
|
|||||||
|
|
||||||
address public distributor;
|
address public distributor;
|
||||||
mapping(address token => bool status) public isDepositToken;
|
mapping(address token => bool status) public isDepositToken;
|
||||||
// 用户存入的token数量
|
|
||||||
mapping(address account => mapping(address token => uint256 amount)) public override depositBalances;
|
mapping(address account => mapping(address token => uint256 amount)) public override depositBalances;
|
||||||
// token总存入数量, 所有用户
|
|
||||||
mapping(address token => uint256 amount) public totalDepositSupply;
|
mapping(address token => uint256 amount) public totalDepositSupply;
|
||||||
|
|
||||||
uint256 public cumulativeRewardPerToken;
|
uint256 public cumulativeRewardPerToken;
|
||||||
// 用户stake的token数量
|
|
||||||
mapping(address account => uint256 amount) public override stakedAmounts;
|
mapping(address account => uint256 amount) public override stakedAmounts;
|
||||||
mapping(address account => uint256 amount) public claimableReward;
|
mapping(address account => uint256 amount) public claimableReward;
|
||||||
mapping(address account => uint256 amount) public previousCumulatedRewardPerToken;
|
mapping(address account => uint256 amount) public previousCumulatedRewardPerToken;
|
||||||
// 用户累计收益
|
|
||||||
mapping(address account => uint256 amount) public override cumulativeRewards;
|
mapping(address account => uint256 amount) public override cumulativeRewards;
|
||||||
// 平均
|
|
||||||
mapping(address account => uint256 amount) public override averageStakedAmounts;
|
mapping(address account => uint256 amount) public override averageStakedAmounts;
|
||||||
|
|
||||||
bool public inPrivateTransferMode;
|
bool public inPrivateTransferMode;
|
||||||
@ -181,7 +176,6 @@ contract RewardTracker is IERC20, ReentrancyGuard, IRewardTracker, Governable {
|
|||||||
return claimableReward[_account];
|
return claimableReward[_account];
|
||||||
}
|
}
|
||||||
uint256 pendingRewards = IRewardDistributor(distributor).pendingRewards() * PRECISION;
|
uint256 pendingRewards = IRewardDistributor(distributor).pendingRewards() * PRECISION;
|
||||||
// 这里是pendingRewards是总的奖励,需要除以总的token数量, 我们是固定的比例的收益, 所以不需要再除以总数
|
|
||||||
uint256 nextCumulativeRewardPerToken = cumulativeRewardPerToken + pendingRewards;
|
uint256 nextCumulativeRewardPerToken = cumulativeRewardPerToken + pendingRewards;
|
||||||
return
|
return
|
||||||
claimableReward[_account] +
|
claimableReward[_account] +
|
||||||
|
@ -28,14 +28,8 @@ contract Vester is IVester, IERC20, ReentrancyGuard, Governable {
|
|||||||
|
|
||||||
mapping(address account => uint256 amount) public balances;
|
mapping(address account => uint256 amount) public balances;
|
||||||
mapping(address account => uint256 amount) public override pairAmounts;
|
mapping(address account => uint256 amount) public override pairAmounts;
|
||||||
// 累积claim的数量, 每次计算后, 将可claim的数量从balances中转移到cumulativeClaimAmounts中,
|
|
||||||
// 在claim和deposit时, 会更新cumulativeClaimAmounts
|
|
||||||
// 然后减去claimedAmounts, 就是可claim的数量
|
|
||||||
// claim以后, cumulativeClaimAmounts的值和claimedAmounts的值都会增加, 且相等
|
|
||||||
mapping(address account => uint256 amount) public override cumulativeClaimAmounts;
|
mapping(address account => uint256 amount) public override cumulativeClaimAmounts;
|
||||||
// 已经claim了的数量, 只有在claim以后才会更新
|
|
||||||
mapping(address account => uint256 amount) public override claimedAmounts;
|
mapping(address account => uint256 amount) public override claimedAmounts;
|
||||||
// 最后claim的时间
|
|
||||||
mapping(address account => uint256 time) public lastVestingTimes;
|
mapping(address account => uint256 time) public lastVestingTimes;
|
||||||
|
|
||||||
mapping(address account => uint256 amount) public override cumulativeRewardDeductions;
|
mapping(address account => uint256 amount) public override cumulativeRewardDeductions;
|
||||||
@ -266,7 +260,6 @@ contract Vester is IVester, IERC20, ReentrancyGuard, Governable {
|
|||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @dev Deposit ES tokens to the contract
|
* @dev Deposit ES tokens to the contract
|
||||||
* 将esToken transfer到合约, 更新cumulativeClaimAmounts, lastVestingTimes, balances
|
|
||||||
*/
|
*/
|
||||||
function _deposit(address _account, uint256 _amount) private {
|
function _deposit(address _account, uint256 _amount) private {
|
||||||
require(_amount > 0, "Vester: invalid _amount");
|
require(_amount > 0, "Vester: invalid _amount");
|
||||||
@ -318,11 +311,8 @@ contract Vester is IVester, IERC20, ReentrancyGuard, Governable {
|
|||||||
if (balance == 0) {
|
if (balance == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
// vestedAmount = balance + cumulativeClaimAmount + 最后一次vesting 至今的可提取金额
|
|
||||||
uint256 vestedAmount = getVestedAmount(_account);
|
uint256 vestedAmount = getVestedAmount(_account);
|
||||||
uint256 claimableAmount = (vestedAmount * timeDiff) / vestingDuration;
|
uint256 claimableAmount = (vestedAmount * timeDiff) / vestingDuration;
|
||||||
// 如果claimableAmount < balance, 返回claimableAmount
|
|
||||||
// 否则返回balance, 保证claimableAmount <= balance
|
|
||||||
if (claimableAmount < balance) {
|
if (claimableAmount < balance) {
|
||||||
return claimableAmount;
|
return claimableAmount;
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,5 @@ interface IRewardDistributor {
|
|||||||
function rewardToken() external view returns (address);
|
function rewardToken() external view returns (address);
|
||||||
function tokensPerInterval() external view returns (uint256);
|
function tokensPerInterval() external view returns (uint256);
|
||||||
function pendingRewards() external view returns (uint256);
|
function pendingRewards() external view returns (uint256);
|
||||||
// changed
|
|
||||||
function distribute(uint256 _amount, uint256 _decimals) external returns (uint256);
|
function distribute(uint256 _amount, uint256 _decimals) external returns (uint256);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user