Hey team,
Great work so far.
I have seen people ask these questions, and I have also wondered myself, but if you can help us understand this, that would be great.
Is the burn + reflection logic manual? If not where in the contract does this logic reside?
Or, is the burn and reflection logic residing in another contract at another address?
It is understood, that the 10% tax exists in the contract, as the two fee variables declared in the token contract:
contract SafeMoon is Context, IERC20, Ownable
but where do we find the logic to:
- Reward tokens to holders, weighted by how many tokens they hold. I see references to
_rOwned and _tOwned
Is it these two functions:
function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
includeInReward is the only function I see that is making use of iterating over accounts, aside from _getCurrentSupply
Does the includeInReward function set who in included in the reflection?
function includeInReward(address account) external onlyOwner() {
require(_isExcluded[account], "Account is already excluded");
for (uint256 i = 0; i < _excluded.length; i++) {
if (_excluded[i] == account) {
_excluded[i] = _excluded[_excluded.length - 1];
_tOwned[account] = 0;
_isExcluded[account] = false;
_excluded.pop();
break;
}
}
}
- secondly, where is the logic to Burn the other 50% (from the 10% tax). I see the
burn function, and event declared but don't see where they are invoked. I also don't see the burn event is ever emitted in this contract.
These are pretty straightforward answers, and I think this will help quite a bit of supporters, including myself. Any help on this would be greatly appreciated
Love the approach overall 🚀
Hey team,
Great work so far.
I have seen people ask these questions, and I have also wondered myself, but if you can help us understand this, that would be great.
Is the burn + reflection logic manual? If not where in the contract does this logic reside?
Or, is the burn and reflection logic residing in another contract at another address?
It is understood, that the 10% tax exists in the contract, as the two fee variables declared in the token contract:
but where do we find the logic to:
_rOwnedand_tOwnedIs it these two functions:
includeInRewardis the only function I see that is making use of iterating over accounts, aside from_getCurrentSupplyDoes the includeInReward function set who in included in the reflection?
burnfunction, and event declared but don't see where they are invoked. I also don't see theburnevent is ever emitted in this contract.These are pretty straightforward answers, and I think this will help quite a bit of supporters, including myself. Any help on this would be greatly appreciated
Love the approach overall 🚀