Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Token.constructor(address,address,string,string).adminWallet_A_ (#1063) lacks a zero-check on :
- adminWallet_A = adminWallet_A_ (#1074)
Token.constructor(address,address,string,string).adminWallet_B_ (#1063) lacks a zero-check on :
- adminWallet_B = adminWallet_B_ (#1075)
Token.updateWalletA(address).walletA_ (#1103) lacks a zero-check on :
- adminWallet_A = walletA_ (#1104)
Token.updateWalletB(address).walletB_ (#1111) lacks a zero-check on :
- adminWallet_B = walletB_ (#1112)
Check that the address is not zero.
Additional information: link
Reentrancy in Token.constructor(address,address,string,string) (#1063-1076):
External calls:
- _swapV2PairAddress = IUniswapV2Factory(IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E).factory()).createPair(address(this),0x55d398326f99059fF775485246999027B3197955) (#1069-1070)
State variables written after the call(s):
- adminWallet_A = adminWallet_A_ (#1074)
- adminWallet_B = adminWallet_B_ (#1075)
- uniswapV2Pair = _swapV2PairAddress (#1071)
Apply the check-effects-interactions pattern.
Additional information: link
AccessControl._setRoleAdmin(bytes32,bytes32) (#1011-1015) is never used and should be removed
Context._msgData() (#275-277) is never used and should be removed
Strings.toHexString(address) (#248-250) is never used and should be removed
Strings.toHexString(uint256) (#217-228) is never used and should be removed
Strings.toString(uint256) (#192-212) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (#6) allows old versions
Pragma version^0.8.0 (#91) allows old versions
Pragma version^0.8.0 (#121) allows old versions
Pragma version^0.8.0 (#149) allows old versions
Pragma version^0.8.0 (#180) allows old versions
Pragma version^0.8.0 (#258) allows old versions
Pragma version^0.8.0 (#285) allows old versions
Pragma version^0.8.0 (#670) allows old versions
Pragma version^0.8.0 (#711) allows old versions
Pragma version^0.8.0 (#802) allows old versions
Pragma version^0.8.0 (#1048) 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 Token.adminWallet_A (#1056) is not in mixedCase
Variable Token.adminWallet_B (#1057) is not in mixedCase
Constant Token.fee_A (#1059) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Token.fee_B (#1061) is not in UPPER_CASE_WITH_UNDERSCORES
Function IUniswapV2Router01.WETH() (#1136) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable Token.adminWallet_A (#1056) is too similar to Token.adminWallet_B (#1057)
Variable Token.constructor(address,address,string,string).adminWallet_A_ (#1063) is too similar to Token.constructor(address,address,string,string).adminWallet_B_ (#1063)
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#1141) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#1142)
Prevent variables from having similar names.
Additional information: link
name() should be declared external:
- ERC20.name() (#342-344)
symbol() should be declared external:
- ERC20.symbol() (#350-352)
totalSupply() should be declared external:
- ERC20.totalSupply() (#374-376)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#381-383)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#393-397)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#416-420)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#438-447)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#461-465)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#481-490)
burn(uint256) should be declared external:
- ERC20Burnable.burn(uint256) (#685-687)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (#700-703)
grantRole(bytes32,address) should be declared external:
- AccessControl.grantRole(bytes32,address) (#941-943)
revokeRole(bytes32,address) should be declared external:
- AccessControl.revokeRole(bytes32,address) (#956-958)
renounceRole(bytes32,address) should be declared external:
- AccessControl.renounceRole(bytes32,address) (#976-980)
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