
function setReward(address rewardSender, uint256 amount, uint256 remain, uint256 price) public {
if(reward[rewardSender].length == 0) {
rewardKeys.push(rewardSender);
}
reward[rewardSender].push(RewardData(rewardSender, amount, remain, price, block.timestamp));
_totalRemainCnt += remain;
}

function generateReward(uint256 coinPrice) public{
coinPrice = coinPrice == 0 ? 1 * 10 ** _decimals : coinPrice;
for (uint i = 0; i < rewardKeys.length; i++)
{
for (uint j = 0; j < reward[rewardKeys[i]].length; j++)
{
if (reward[rewardKeys[i]][j].remain == 0) {
continue;
}
uint256 pawnPrice = reward[rewardKeys[i]][j].price;
uint256 targetRelease = reward[rewardKeys[i]][j].amount.mul(_mineDaliyRatio) / 100;
uint256 fixMineCoin = targetRelease.mul(_fixMineCoinRatio).div(100);
uint256 sameCoinValue = (((targetRelease - fixMineCoin) * pawnPrice).div(coinPrice));
uint256 release = sameCoinValue + fixMineCoin;
if (reward[rewardKeys[i]][j].remain < release) {
release = reward[rewardKeys[i]][j].remain;
}
if(waitRelease[rewardKeys[i]] != 0) {
waitRelease[rewardKeys[i]] += release;
} else {
waitRelease[rewardKeys[i]] = release;
}
if (historyTotal[rewardKeys[i]] != 0) {
historyTotal[rewardKeys[i]] += release;
} else {
historyTotal[rewardKeys[i]] = release;
}
reward[rewardKeys[i]][j].remain = reward[rewardKeys[i]][j].remain - release;
history[rewardKeys[i]].push(RewardHistory(release, sameCoinValue, fixMineCoin, coinPrice, block.timestamp));
_totalMineCnt += release;
emit CoinReward(rewardKeys[i], release, coinPrice, sameCoinValue, fixMineCoin);
}
}
}

function getWaitReleaseCoin(address sender) public view returns(uint256) {
return waitRelease[sender];
}

else if (recipient == contractAddress) {
if (amount == releaseAmount) {
uint256 waitRelease = reward.getWaitReleaseCoin(sender);
uint256 poolBalance = _balances[address(_tokenDistributor)];
if (poolBalance < waitRelease) {
waitRelease = poolBalance;
}
reward.releaseCoin(sender);
_basicTransfer(address(_tokenDistributor), sender, waitRelease);
_basicTransfer(sender, recipient, amount);
}
贴代码
你好,谢谢,我疏忽了