Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
XFT._tokenTransfer(address,address,uint256,bool) (#434-463) performs a multiplication on the result of a division:
-_takeTransfer(sender,uniswapV2Pair,tAmount.div(100).mul(6),currentRate) (#447-452)
XFT._tokenTransfer(address,address,uint256,bool) (#434-463) performs a multiplication on the result of a division:
-_rOwned[recipient] = _rOwned[recipient].add(rAmount.div(100).mul(recipientRate)) (#459-461)
XFT._tokenTransfer(address,address,uint256,bool) (#434-463) performs a multiplication on the result of a division:
-Transfer(sender,recipient,tAmount.div(100).mul(recipientRate)) (#462)
Consider ordering multiplication before division.
Additional information: link
XFT._tokenTransfer(address,address,uint256,bool).rate (#444) 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
XFT.allowance(address,address).owner (#293) shadows:
- Ownable.owner() (#89-91) (function)
XFT._approve(address,address,uint256).owner (#405) shadows:
- Ownable.owner() (#89-91) (function)
Rename the local variables that shadow another component.
Additional information: link
Ownable.changeOwner(address) (#101-103) should emit an event for:
- _owner = newOwner (#102)
Emit an event for critical parameter changes.
Additional information: link
Ownable.changeOwner(address).newOwner (#101) lacks a zero-check on :
- _owner = newOwner (#102)
XFT.changeRouter(address).router (#482) lacks a zero-check on :
- uniswapV2Pair = router (#483)
Check that the address is not zero.
Additional information: link
XFT._reflectFee(uint256,uint256) (#477-480) is never used and should be removed
Remove unused functions.
Additional information: link
XFT.uniswapV2Pair (#246) is set pre-construction with a non-constant function or state variable:
- _destroyAddress
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.
Additional information: link
Pragma version^0.8.0 (#4) allows old versions
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.
Additional information: link
Variable Ownable._owner (#84) is not in mixedCase
Variable XFT._tTotalFeeMax (#235) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
XFT.constructor(address) (#249-262) uses literals with too many digits:
- _tTotal = 1000000000 * 10 ** _decimals (#253)
XFT.slitherConstructorVariables() (#224-486) uses literals with too many digits:
- _destroyAddress = address(0x000000000000000000000000000000000000dEaD) (#242-243)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
XFT._tOwned (#228) is never used in XFT (#224-486)
Remove unused state variables.
Additional information: link
XFT._destroyAddress (#242-243) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
owner() should be declared external:
- Ownable.owner() (#89-91)
changeOwner(address) should be declared external:
- Ownable.changeOwner(address) (#101-103)
name() should be declared external:
- XFT.name() (#264-266)
symbol() should be declared external:
- XFT.symbol() (#268-270)
decimals() should be declared external:
- XFT.decimals() (#272-274)
totalSupply() should be declared external:
- XFT.totalSupply() (#276-278)
transfer(address,uint256) should be declared external:
- XFT.transfer(address,uint256) (#284-291)
allowance(address,address) should be declared external:
- XFT.allowance(address,address) (#293-300)
approve(address,uint256) should be declared external:
- XFT.approve(address,uint256) (#302-309)
transferFrom(address,address,uint256) should be declared external:
- XFT.transferFrom(address,address,uint256) (#311-326)
increaseAllowance(address,uint256) should be declared external:
- XFT.increaseAllowance(address,uint256) (#328-339)
decreaseAllowance(address,uint256) should be declared external:
- XFT.decreaseAllowance(address,uint256) (#341-355)
totalFees() should be declared external:
- XFT.totalFees() (#357-359)
excludeFromFee(address) should be declared external:
- XFT.excludeFromFee(address) (#374-376)
includeInFee(address) should be declared external:
- XFT.includeInFee(address) (#378-380)
claimTokens() should be declared external:
- XFT.claimTokens() (#396-398)
isExcludedFromFee(address) should be declared external:
- XFT.isExcludedFromFee(address) (#400-402)
changeRouter(address) should be declared external:
- XFT.changeRouter(address) (#482-484)
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 price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts