Burn calories and earn tokens.
ERC20.transferToken(address,uint256,address) (#979-988) ignores return value by IERC20(coinAddress).transfer(to,value) (#987)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Contract ownership is not renounced (belongs to a wallet)
Different versions of Solidity are used:
- Version used: ['0.7.4', '^0.7.4']
- 0.7.4 (#4)
- 0.7.4 (#251)
- 0.7.4 (#342)
- 0.7.4 (#367)
- ^0.7.4 (#466)
- 0.7.4 (#1045)
- 0.7.4 (#1391)
Use one Solidity version.
Additional information: link
SafeMath.tryDiv(uint256,uint256) (#73-80) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#87-94) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#25-33) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#239-246) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#215-222) is never used and should be removed
ERC20._setupDecimals(uint8) (#870-872) is never used and should be removed
Context._msgData() (#359-362) is never used and should be removed
SafeMath.mod(uint256,uint256) (#173-176) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#54-66) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#40-47) is never used and should be removed
Remove unused functions.
Additional information: link
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#671-698)
modifyWhiteListPool(address[],address[]) should be declared external:
- ERC20.modifyWhiteListPool(address[],address[]) (#1014-1024)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#422-425)
isExcludedToFee(address) should be declared external:
- ERC20.isExcludedToFee(address) (#947-949)
enableMint(bool) should be declared external:
- ERC20.enableMint(bool) (#909-912)
isExcludedFromFee(address) should be declared external:
- ERC20.isExcludedFromFee(address) (#931-933)
changeFee(uint256) should be declared external:
- ERC20.changeFee(uint256) (#1010-1012)
decimals() should be declared external:
- ERC20.decimals() (#570-572)
modifyWhiteListReceiver(address[],address[]) should be declared external:
- ERC20.modifyWhiteListReceiver(address[],address[]) (#935-945)
burn(uint256) should be declared external:
- Token.burn(uint256) (#1413-1415)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#739-753)
setNumTokensSellToAddToLiquidityt(uint256) should be declared external:
- ERC20.setNumTokensSellToAddToLiquidityt(uint256) (#914-917)
symbol() should be declared external:
- ERC20.symbol() (#553-555)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#584-592)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#602-626)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#712-723)
mint(uint256) should be declared external:
- ERC20.mint(uint256) (#903-907)
modifyBlackList(address[],address[]) should be declared external:
- ERC20.modifyBlackList(address[],address[]) (#951-961)
changeFeeWallet(address) should be declared external:
- ERC20.changeFeeWallet(address) (#1006-1008)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#431-438)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#440-442)
name() should be declared external:
- ERC20.name() (#545-547)
setFeeWallet(address) should be declared external:
- ERC20.setFeeWallet(address) (#1030-1032)
isExcludedFromPool(address) should be declared external:
- ERC20.isExcludedFromPool(address) (#1026-1028)
modifyWhiteListBot(address[],address[]) should be declared external:
- ERC20.modifyWhiteListBot(address[],address[]) (#990-1000)
modifyWhiteListSender(address[],address[]) should be declared external:
- ERC20.modifyWhiteListSender(address[],address[]) (#919-929)
unlock() should be declared external:
- Ownable.unlock() (#453-461)
setFeeTransfer(uint256) should be declared external:
- ERC20.setFeeTransfer(uint256) (#1034-1040)
totalSupply() should be declared external:
- ERC20.totalSupply() (#577-579)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#648-656)
isBlackList(address) should be declared external:
- ERC20.isBlackList(address) (#963-965)
transferToken(address,uint256,address) should be declared external:
- ERC20.transferToken(address,uint256,address) (#979-988)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#445-450)
isExcludedFromBot(address) should be declared external:
- ERC20.isExcludedFromBot(address) (#1002-1004)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#631-639)
Use the external attribute for functions never called from the contract.
Additional information: link
ERC20.modifyWhiteListReceiver(address[],address[]).index (#939) is a local variable never initialized
ERC20.modifyWhiteListSender(address[],address[]).index_scope_0 (#926) is a local variable never initialized
ERC20.modifyBlackList(address[],address[]).index_scope_0 (#958) is a local variable never initialized
ERC20.modifyWhiteListSender(address[],address[]).index (#923) is a local variable never initialized
ERC20.modifyWhiteListPool(address[],address[]).index (#1018) is a local variable never initialized
ERC20.modifyWhiteListBot(address[],address[]).index_scope_0 (#997) is a local variable never initialized
ERC20.modifyWhiteListBot(address[],address[]).index (#994) is a local variable never initialized
ERC20.modifyBlackList(address[],address[]).index (#955) is a local variable never initialized
ERC20.modifyWhiteListPool(address[],address[]).index_scope_0 (#1021) is a local variable never initialized
ERC20.modifyWhiteListReceiver(address[],address[]).index_scope_0 (#942) 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
ERC20.allowance(address,address).owner (#631) shadows:
- Ownable.owner() (#403-405) (function)
ERC20._approve(address,address,uint256).owner (#852) shadows:
- Ownable.owner() (#403-405) (function)
Rename the local variables that shadow another component.
Additional information: link
ERC20.setNumTokensSellToAddToLiquidityt(uint256) (#914-917) should emit an event for:
- _numTokensSellToAddToLiquidity = numTokensSellToAddToLiquidity (#915)
Emit an event for critical parameter changes.
Additional information: link
ERC20.changeFeeWallet(address).feeWallet (#1006) lacks a zero-check on :
- _feeWallet = feeWallet (#1007)
ERC20.transferToken(address,uint256,address).to (#982) lacks a zero-check on :
- to.transfer(value) (#985)
ERC20.setFeeWallet(address).newFeeWallet (#1030) lacks a zero-check on :
- _feeWallet = newFeeWallet (#1031)
Check that the address is not zero.
Additional information: link
Ownable.unlock() (#453-461) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is locked until 7 days) (#458)
Avoid relying on block.timestamp.
Additional information: link
ERC20.transfer(address,uint256) (#602-626) compares to a boolean constant:
-_msgSender() == owner() || whiteListSender[_msgSender()] == true || whiteListReceiver[recipient] == true (#619-621)
ERC20.transfer(address,uint256) (#602-626) compares to a boolean constant:
-_msgSender() != owner() && whiteListSender[_msgSender()] == false && whiteListReceiver[recipient] == false (#611-613)
ERC20.transferFrom(address,address,uint256) (#671-698) compares to a boolean constant:
-sender != owner() && whiteListSender[_msgSender()] == false && whiteListSender[sender] == false && whiteListReceiver[recipient] == false (#679-682)
Token._transfer(address,address,uint256) (#1417-1437) compares to a boolean constant:
-amount > _numTokensSellToAddToLiquidity && limitSell == true && recipient == uniswapV2Pair (#1432)
Remove the equality to the boolean constant.
Additional information: link
solc-0.7.4 is not recommended for deployment
Pragma version^0.7.4 (#466) allows old versions
Pragma version0.7.4 (#251) allows old versions
Pragma version0.7.4 (#4) allows old versions
Pragma version0.7.4 (#367) allows old versions
Pragma version0.7.4 (#1391) allows old versions
Pragma version0.7.4 (#342) allows old versions
Pragma version0.7.4 (#1045) 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 ERC20._feeTransfer (#517) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#1112) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#1142) is not in mixedCase
Parameter ERC20.setAntiBot(bool)._enable (#967) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#1110) is not in mixedCase
Parameter ERC20.enableMint(bool)._pmintable (#909) is not in mixedCase
Variable ERC20._feeWallet (#519) is not in mixedCase
Variable ERC20._numTokensSellToAddToLiquidity (#516) is not in mixedCase
Parameter ERC20.setLimitSell(bool)._enable (#975) is not in mixedCase
Parameter ERC20.setSwapWhiteList(bool)._enable (#971) is not in mixedCase
Function IUniswapV2Router01.WETH() (#1186) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#360)" inContext (#354-363)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#1191) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#1192)
Prevent variables from having similar names.
Additional information: link
Token.maxSupply (#1396) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
Unable to find token on CoinHunt
Additional information: link
Unable to find code repository for the project
Unable to find Discord account