Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
ERC1967Upgrade._upgradeToAndCall(address,bytes,bool) (#409-418) ignores return value by Address.functionDelegateCall(newImplementation,data) (#416)
ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (#480-489) ignores return value by Address.functionDelegateCall(IBeacon(newBeacon).getLogic(),data) (#487)
Ensure that all the return values of the function calls are used.
Additional information: link
Modifier TransparentUpgradeableBase.ifAdmin() (#552-558) does not always execute _; or revert
All the paths in a modifier must execute _ or revert.
Additional information: link
ERC1967Upgrade._ROLLBACK_SLOT (#373) is never used in TransparentUpgradeableBase (#536-630)
Remove unused state variables.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#692-694)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#700-703)
Use the external attribute for functions never called from the contract.
Additional information: link
solc-0.8.16 is not recommended for deployment
Pragma version^0.8.0 (#8) 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
StorageSlot.getUint256Slot(bytes32) (#131-136) uses assembly
- INLINE ASM (#133-135)
StorageSlot.getBooleanSlot(bytes32) (#111-116) uses assembly
- INLINE ASM (#113-115)
Address.verifyCallResult(bool,bytes,string) (#333-353) uses assembly
- INLINE ASM (#345-348)
Base._delegate(address) (#16-39) uses assembly
- INLINE ASM (#17-38)
StorageSlot.getBytes32Slot(bytes32) (#121-126) uses assembly
- INLINE ASM (#123-125)
StorageSlot.getAddressSlot(bytes32) (#101-106) uses assembly
- INLINE ASM (#103-105)
Do not use evm assembly.
Additional information: link
TransparentUpgradeableBase (#536-630) should inherit from IBeacon (#355-362)
Inherit from the missing interface or contract.
Additional information: link
Address.sendValue(address,uint256) (#192-197) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#246-252) is never used and should be removed
StorageSlot.getUint256Slot(bytes32) (#131-136) is never used and should be removed
ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (#480-489) is never used and should be removed
TransparentUpgradeableBase._admin() (#619-621) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#260-271) is never used and should be removed
Context._msgData() (#649-651) is never used and should be removed
Address.functionStaticCall(address,bytes) (#279-281) is never used and should be removed
ERC1967Upgrade._setBeacon(address) (#466-473) is never used and should be removed
StorageSlot.getBooleanSlot(bytes32) (#111-116) is never used and should be removed
StorageSlot.getBytes32Slot(bytes32) (#121-126) is never used and should be removed
Address.functionCall(address,bytes,string) (#227-233) is never used and should be removed
ERC1967Upgrade._getBeacon() (#459-461) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#289-298) is never used and should be removed
Address.functionCall(address,bytes) (#217-219) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#260-271):
- (success,returndata) = target.call{value: value}(data) (#269)
Low level call in Address.functionDelegateCall(address,bytes,string) (#316-325):
- (success,returndata) = target.delegatecall(data) (#323)
Low level call in Address.sendValue(address,uint256) (#192-197):
- (success) = recipient.call{value: amount}() (#195)
Low level call in Address.functionStaticCall(address,bytes,string) (#289-298):
- (success,returndata) = target.staticcall(data) (#296)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Attempt to swap token was unsuccessful. For some reason it is untradeable. If token is not in presale stage and is not traded outside PancakeSwap, then it's a scam
Additional information: link
Contract has 0% buy tax and 100% sell tax.
Taxes are extremely high (over 30%)
Additional information: link
Average 30d PancakeSwap liquidity is less than $100. Token is either dead or inactive.
Average 30d number of PancakeSwap swaps is less than 1. Token is either dead or inactive.
Average 30d PancakeSwap volume is less than $100. Token is either dead or inactive.
Average PancakeSwap trading volume, liqudity, number of swaps are extremely low. Token seems to be dead.
Token makes many airdrops and seems to be a phishing / airdrop scam
Additional information: link
Token is deployed only at one blockchain
Token has only one trading pair
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 is marked as scam (rug pull, honeypot, phishing, etc.)
Additional information: link
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
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Young tokens have high risks of price dump / death
Unable to find Telegram and Twitter accounts