Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
ECDSA.recover(bytes32,bytes) (#695-728) uses assembly
- INLINE ASM (#708-712)
- INLINE ASM (#717-722)
Do not use evm assembly.
Additional information: link
Context._msgData() (#21-24) is never used and should be removed
Counters.current(Counters.Counter) (#651-653) is never used and should be removed
Counters.decrement(Counters.Counter) (#661-667) is never used and should be removed
Counters.increment(Counters.Counter) (#655-659) is never used and should be removed
Counters.reset(Counters.Counter) (#669-671) is never used and should be removed
ECDSA.recover(bytes32,bytes) (#695-728) is never used and should be removed
ECDSA.recover(bytes32,uint8,bytes32,bytes32) (#734-752) is never used and should be removed
ECDSA.toEthSignedMessageHash(bytes32) (#762-766) is never used and should be removed
ECDSA.toTypedDataHash(bytes32,bytes32) (#777-779) is never used and should be removed
EIP712._buildDomainSeparator(bytes32,bytes32,bytes32) (#849-859) is never used and should be removed
EIP712._domainSeparatorV4() (#841-847) is never used and should be removed
EIP712._hashTypedDataV4(bytes32) (#876-878) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (#4) 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 EIP712._CACHED_DOMAIN_SEPARATOR (#807) is not in mixedCase
Variable EIP712._CACHED_CHAIN_ID (#808) is not in mixedCase
Variable EIP712._HASHED_NAME (#810) is not in mixedCase
Variable EIP712._HASHED_VERSION (#811) is not in mixedCase
Variable EIP712._TYPE_HASH (#812) is not in mixedCase
Function R4ptoken.Swapin(bytes32,address,uint256) (#1044-1048) is not in mixedCase
Function R4ptoken.Swapout(uint256,address) (#1050-1055) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#22)" inContext (#16-25)
Remove redundant statements if they congest code but offer no value.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#74-77)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#83-87)
name() should be declared external:
- ERC20.name() (#237-239)
symbol() should be declared external:
- ERC20.symbol() (#245-247)
decimals() should be declared external:
- ERC20.decimals() (#262-264)
totalSupply() should be declared external:
- ERC20.totalSupply() (#269-271)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#276-278)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#288-291)
- R4ptoken.transfer(address,uint256) (#978-981)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#307-310)
- R4ptoken.approve(address,uint256) (#990-993)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#349-352)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#368-376)
burn(uint256) should be declared external:
- ERC20Burnable.burn(uint256) (#502-504)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (#517-524)
addMinter(address) should be declared external:
- MinterRole.addMinter(address) (#942-944)
renounceMinter() should be declared external:
- MinterRole.renounceMinter() (#946-948)
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