Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
XR._tokenTransfer(address,address,uint256,bool) (#484-532) performs a multiplication on the result of a division:
-_rOwned[recipient] = _rOwned[recipient].add(rAmount.div(100).mul(recipientRate)) (#528-530)
XR._tokenTransfer(address,address,uint256,bool) (#484-532) performs a multiplication on the result of a division:
-Transfer(sender,recipient,tAmount.div(100).mul(recipientRate)) (#531)
XR._takeInviterFee(address,address,uint256,uint256) (#550-586) performs a multiplication on the result of a division:
-curTAmount = tAmount.div(1000).mul(rate) (#581)
XR._takeInviterFee2Sun(address,address,uint256,uint256) (#588-611) performs a multiplication on the result of a division:
-curTAmount = tAmount.div(100) (#607)
-curRAmount = curTAmount.mul(currentRate) (#608)
Consider ordering multiplication before division.
Additional information: link
XR._tokenTransfer(address,address,uint256,bool).rate (#496) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
XR.allowance(address,address).owner (#315) shadows:
- Ownable.owner() (#100-102) (function)
XR._approve(address,address,uint256).owner (#444) shadows:
- Ownable.owner() (#100-102) (function)
Rename the local variables that shadow another component.
Additional information: link
Ownable.changeOwner(address) (#112-114) should emit an event for:
- _owner = newOwner (#113)
Emit an event for critical parameter changes.
Additional information: link
Ownable.changeOwner(address).newOwner (#112) lacks a zero-check on :
- _owner = newOwner (#113)
XR.constructor(address,address).root (#270) lacks a zero-check on :
- _root = root (#282)
XR.changeRouter(address).router (#614) lacks a zero-check on :
- uniswapV2Pair = router (#615)
Check that the address is not zero.
Additional information: link
XR._reflectFee(uint256,uint256) (#545-548) is never used and should be removed
Remove unused functions.
Additional information: link
Variable Ownable._owner (#94) is not in mixedCase
Variable Ownable._root (#95) is not in mixedCase
Variable XR._tTotal (#252) is not in mixedCase
Variable XR._rTotal (#253) is not in mixedCase
Variable XR._tFeeTotal (#254) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
XR.constructor(address,address) (#270-284) uses literals with too many digits:
- _tTotal = 600000000000 * 10 ** _decimals (#275)
XR.slitherConstructorVariables() (#240-618) uses literals with too many digits:
- _destroyAddress = address(0x000000000000000000000000000000000000dEaD) (#260)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
XR._tOwned (#244) is never used in XR (#240-618)
XR.buyAmount (#245) is never used in XR (#240-618)
Remove unused state variables.
Additional information: link
XR._default (#262) should be constant
XR._destroyAddress (#260) should be constant
XR._fundAddress (#261) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
owner() should be declared external:
- Ownable.owner() (#100-102)
changeOwner(address) should be declared external:
- Ownable.changeOwner(address) (#112-114)
name() should be declared external:
- XR.name() (#286-288)
symbol() should be declared external:
- XR.symbol() (#290-292)
decimals() should be declared external:
- XR.decimals() (#294-296)
totalSupply() should be declared external:
- XR.totalSupply() (#298-300)
transfer(address,uint256) should be declared external:
- XR.transfer(address,uint256) (#306-313)
allowance(address,address) should be declared external:
- XR.allowance(address,address) (#315-322)
approve(address,uint256) should be declared external:
- XR.approve(address,uint256) (#324-331)
transferFrom(address,address,uint256) should be declared external:
- XR.transferFrom(address,address,uint256) (#333-348)
increaseAllowance(address,uint256) should be declared external:
- XR.increaseAllowance(address,uint256) (#350-361)
decreaseAllowance(address,uint256) should be declared external:
- XR.decreaseAllowance(address,uint256) (#363-377)
totalFees() should be declared external:
- XR.totalFees() (#379-381)
excludeFromFee(address) should be declared external:
- XR.excludeFromFee(address) (#396-398)
includeInFee(address) should be declared external:
- XR.includeInFee(address) (#400-402)
excludeFromVip(address) should be declared external:
- XR.excludeFromVip(address) (#404-406)
includeInVip(address) should be declared external:
- XR.includeInVip(address) (#408-410)
getInviter(address) should be declared external:
- XR.getInviter(address) (#420-422)
getInviterSunSize(address) should be declared external:
- XR.getInviterSunSize(address) (#424-426)
claimTokens() should be declared external:
- XR.claimTokens() (#435-437)
isExcludedFromFee(address) should be declared external:
- XR.isExcludedFromFee(address) (#439-441)
changeRouter(address) should be declared external:
- XR.changeRouter(address) (#614-616)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts