TokenRecover.recoverBEP20(address,uint256) (#1344-1346) ignores return value by IBEP20(tokenAddress).transfer(owner(),tokenAmount) (#1345)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ownership is not renounced (belongs to a wallet)
Low level call in Address.sendValue(address,uint256) (#887-893):
- (success) = recipient.call{value: amount}() (#891)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#948-955):
- (success,returndata) = target.call{value: value}(data) (#953)
Low level call in Address.functionStaticCall(address,bytes,string) (#973-979):
- (success,returndata) = target.staticcall(data) (#977)
Low level call in Address.functionDelegateCall(address,bytes,string) (#997-1003):
- (success,returndata) = target.delegatecall(data) (#1001)
Low level call in ERC165Checker._supportsERC165Interface(address,bytes4) (#1127-1132):
- (success,result) = account.staticcall{gas: 30000}(encodedParams) (#1129)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Redundant expression "this (#25)" inContext (#19-28)
Remove redundant statements if they congest code but offer no value.
Additional information: link
BEP20.allowance(address,address).owner (#365) shadows:
- Ownable.owner() (#65-67) (function)
BEP20._approve(address,address,uint256).owner (#497) shadows:
- Ownable.owner() (#65-67) (function)
Rename the local variables that shadow another component.
Additional information: link
Reentrancy in AmazingBEP20.constructor(string,string,uint8,uint256,address) (#1385-1394):
External calls:
- ServicePayer(feeReceiver_,AmazingBEP20) (#1391)
- IPayable(receiver).pay{value: msg.value}(serviceName) (#1365)
State variables written after the call(s):
- _mint(_msgSender(),initialBalance_) (#1393)
- _balances[account] += amount (#455)
- _setupDecimals(decimals_) (#1392)
- _decimals = decimals_ (#516)
- _mint(_msgSender(),initialBalance_) (#1393)
- _totalSupply += amount (#454)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in AmazingBEP20.constructor(string,string,uint8,uint256,address) (#1385-1394):
External calls:
- ServicePayer(feeReceiver_,AmazingBEP20) (#1391)
- IPayable(receiver).pay{value: msg.value}(serviceName) (#1365)
Event emitted after the call(s):
- Transfer(address(0),account,amount) (#456)
- _mint(_msgSender(),initialBalance_) (#1393)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#860-869) uses assembly
- INLINE ASM (#867)
Address._verifyCallResult(bool,bytes,string) (#1005-1022) uses assembly
- INLINE ASM (#1014-1017)
Do not use evm assembly.
Additional information: link
Address._verifyCallResult(bool,bytes,string) (#1005-1022) is never used and should be removed
Address.functionCall(address,bytes) (#913-915) is never used and should be removed
Address.functionCall(address,bytes,string) (#923-925) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#938-940) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#948-955) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#987-989) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#997-1003) is never used and should be removed
Address.functionStaticCall(address,bytes) (#963-965) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#973-979) is never used and should be removed
Address.sendValue(address,uint256) (#887-893) is never used and should be removed
Context._msgData() (#24-27) is never used and should be removed
ERC165Checker._supportsERC165Interface(address,bytes4) (#1127-1132) is never used and should be removed
ERC165Checker.getSupportedInterfaces(address,bytes4[]) (#1075-1088) is never used and should be removed
ERC165Checker.supportsAllInterfaces(address,bytes4[]) (#1099-1114) is never used and should be removed
ERC165Checker.supportsERC165(address) (#1046-1051) is never used and should be removed
ERC165Checker.supportsInterface(address,bytes4) (#1059-1063) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (#7) allows old versions
Pragma version^0.8.0 (#34) allows old versions
Pragma version^0.8.0 (#104) allows old versions
Pragma version^0.8.0 (#208) allows old versions
Pragma version^0.8.0 (#544) allows old versions
Pragma version^0.8.0 (#610) allows old versions
Pragma version^0.8.0 (#651) allows old versions
Pragma version^0.8.0 (#678) allows old versions
Pragma version^0.8.0 (#771) allows old versions
Pragma version^0.8.0 (#805) allows old versions
Pragma version^0.8.0 (#837) allows old versions
Pragma version^0.8.0 (#1029) allows old versions
Pragma version^0.8.0 (#1139) allows old versions
Pragma version^0.8.0 (#1169) allows old versions
Pragma version^0.8.0 (#1330) allows old versions
Pragma version^0.8.0 (#1353) allows old versions
Pragma version^0.8.0 (#1373) 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
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#84-87)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#93-97)
name() should be declared external:
- BEP20.name() (#260-262)
symbol() should be declared external:
- BEP20.symbol() (#268-270)
decimals() should be declared external:
- BEP20.decimals() (#285-287)
totalSupply() should be declared external:
- BEP20.totalSupply() (#292-294)
balanceOf(address) should be declared external:
- BEP20.balanceOf(address) (#299-301)
getOwner() should be declared external:
- BEP20.getOwner() (#306-308)
increaseAllowance(address,uint256) should be declared external:
- BEP20.increaseAllowance(address,uint256) (#381-384)
decreaseAllowance(address,uint256) should be declared external:
- BEP20.decreaseAllowance(address,uint256) (#400-406)
mintingFinished() should be declared external:
- BEP20Mintable.mintingFinished() (#571-573)
mint(address,uint256) should be declared external:
- BEP20Mintable.mint(address,uint256) (#583-585)
finishMinting() should be declared external:
- BEP20Mintable.finishMinting() (#592-594)
burn(uint256) should be declared external:
- BEP20Burnable.burn(uint256) (#624-626)
burnFrom(address,uint256) should be declared external:
- BEP20Burnable.burnFrom(address,uint256) (#639-644)
transferAndCall(address,uint256) should be declared external:
- BEP20Operable.transferAndCall(address,uint256) (#1198-1200)
transferFromAndCall(address,address,uint256) should be declared external:
- BEP20Operable.transferFromAndCall(address,address,uint256) (#1229-1235)
approveAndCall(address,uint256) should be declared external:
- BEP20Operable.approveAndCall(address,uint256) (#1262-1264)
recoverBEP20(address,uint256) should be declared external:
- TokenRecover.recoverBEP20(address,uint256) (#1344-1346)
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