Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
TXT._writeCheckpoint(address,uint32,uint256,uint256) (#865-883) uses a dangerous strict equality:
- nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber (#875)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
BEP20.constructor(string,string).name (#412) shadows:
- BEP20.name() (#428-430) (function)
- IBEP20.name() (#124) (function)
BEP20.constructor(string,string).symbol (#412) shadows:
- BEP20.symbol() (#436-438) (function)
- IBEP20.symbol() (#119) (function)
BEP20.allowance(address,address).owner (#477) shadows:
- Ownable.owner() (#66-68) (function)
BEP20._approve(address,address,uint256).owner (#636) shadows:
- Ownable.owner() (#66-68) (function)
Rename the local variables that shadow another component.
Additional information: link
TXT.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (#731-772) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now <= expiry,TXT::delegateBySig: signature expired) (#770)
Avoid relying on block.timestamp.
Additional information: link
TXT.getChainId() (#890-894) uses assembly
- INLINE ASM (#892)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['0.6.12', '>=0.4.0', '>=0.6.4', '^0.6.0']
- ^0.6.0 (#9)
- ^0.6.0 (#35)
- >=0.6.4 (#103)
- ^0.6.0 (#199)
- >=0.4.0 (#360)
- 0.6.12 (#658)
Use one Solidity version.
Additional information: link
BEP20._burnFrom(address,uint256) (#650-653) is never used and should be removed
Context._msgData() (#26-29) is never used and should be removed
SafeMath.div(uint256,uint256) (#299-301) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#315-321) is never used and should be removed
SafeMath.mod(uint256,uint256) (#335-337) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#351-354) is never used and should be removed
SafeMath.mul(uint256,uint256) (#273-285) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.6.0 (#9) allows old versions
Pragma version^0.6.0 (#35) allows old versions
Pragma version>=0.6.4 (#103) allows old versions
Pragma version^0.6.0 (#199) allows old versions
Pragma version>=0.4.0 (#360) 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
Parameter TXT.mint(address,uint256)._to (#663) is not in mixedCase
Parameter TXT.mint(address,uint256)._amount (#663) is not in mixedCase
Function TXT._transferownership(address) (#672-674) is not in mixedCase
Parameter TXT._transferownership(address)._addr (#672) is not in mixedCase
Variable TXT._delegates (#675) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#27)" inContext (#21-30)
Remove redundant statements if they congest code but offer no value.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#85-88)
symbol() should be declared external:
- BEP20.symbol() (#436-438)
decimals() should be declared external:
- BEP20.decimals() (#443-445)
totalSupply() should be declared external:
- BEP20.totalSupply() (#450-452)
transfer(address,uint256) should be declared external:
- BEP20.transfer(address,uint256) (#469-472)
allowance(address,address) should be declared external:
- BEP20.allowance(address,address) (#477-479)
approve(address,uint256) should be declared external:
- BEP20.approve(address,uint256) (#488-491)
transferFrom(address,address,uint256) should be declared external:
- BEP20.transferFrom(address,address,uint256) (#505-513)
increaseAllowance(address,uint256) should be declared external:
- BEP20.increaseAllowance(address,uint256) (#527-530)
decreaseAllowance(address,uint256) should be declared external:
- BEP20.decreaseAllowance(address,uint256) (#546-549)
mint(uint256) should be declared external:
- BEP20.mint(uint256) (#559-562)
mint(address,uint256) should be declared external:
- TXT.mint(address,uint256) (#663-666)
burn(address,uint256) should be declared external:
- TXT.burn(address,uint256) (#668-670)
_transferownership(address) should be declared external:
- TXT._transferownership(address) (#672-674)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Token has a considerable age, but we're still unable to find its website
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Token has a considerable age, but social accounts / website are missing or have few users
Token has a considerable age, but average PancakeSwap 30d trading volume is low
Young tokens have high risks of price dump / death
Unable to find Telegram and Twitter accounts