Fanadise is the world's first influencer Utility NFTs platform. With Fanadise you can collect, stake, buy and sell NFTs, experiences and services from your favourite creators.
Reentrancy in Fanadise._transfer(address,address,uint256) (contracts/Fanadise.sol#140-165):
External calls:
- IFeeManager(feeContract).syncFee() (contracts/Fanadise.sol#157)
State variables written after the call(s):
- _balances[sender] -= amount (contracts/Fanadise.sol#162)
- _balances[recipient] += sendAmount (contracts/Fanadise.sol#163)
Apply the check-effects-interactions pattern.
Additional information: link
Fanadise._transfer(address,address,uint256).fee (contracts/Fanadise.sol#150) 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
Ownable.transferOwnership(address,bool)._newOwner (contracts/abstract/Ownable.sol#26) lacks a zero-check on :
- pendingOwner = _newOwner (contracts/abstract/Ownable.sol#34)
Fanadise.changeFeeContract(address,bool)._feeContract (contracts/Fanadise.sol#223) lacks a zero-check on :
- feeContract = _feeContract (contracts/Fanadise.sol#224)
Check that the address is not zero.
Additional information: link
Reentrancy in Fanadise._transfer(address,address,uint256) (contracts/Fanadise.sol#140-165):
External calls:
- IFeeManager(feeContract).syncFee() (contracts/Fanadise.sol#157)
Event emitted after the call(s):
- Transfer(sender,recipient,sendAmount) (contracts/Fanadise.sol#164)
Apply the check-effects-interactions pattern.
Additional information: link
ECDSA.recover(bytes32,bytes) (contracts/external/openzeppelin/ECDSA.sol#26-59) uses assembly
- INLINE ASM (contracts/external/openzeppelin/ECDSA.sol#39-43)
- INLINE ASM (contracts/external/openzeppelin/ECDSA.sol#48-53)
Do not use evm assembly.
Additional information: link
Parameter Fanadise.allowance(address,address)._owner (contracts/Fanadise.sol#104) is not in mixedCase
Function Fanadise.DOMAIN_SEPARATOR() (contracts/Fanadise.sol#180-182) is not in mixedCase
Parameter Fanadise.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)._owner (contracts/Fanadise.sol#185) is not in mixedCase
Parameter Fanadise.changeFeeContract(address,bool)._feeContract (contracts/Fanadise.sol#223) is not in mixedCase
Parameter Fanadise.changeFeeContract(address,bool)._isFeeManager (contracts/Fanadise.sol#223) is not in mixedCase
Parameter Ownable.transferOwnership(address,bool)._newOwner (contracts/abstract/Ownable.sol#26) is not in mixedCase
Parameter Ownable.transferOwnership(address,bool)._direct (contracts/abstract/Ownable.sol#26) is not in mixedCase
Parameter TransactionThrottler.setTradingStart(uint256)._time (contracts/abstract/TransactionThrottler.sol#27) is not in mixedCase
Parameter TransactionThrottler.setMaxTransferAmount(uint256)._amount (contracts/abstract/TransactionThrottler.sol#33) is not in mixedCase
Parameter TransactionThrottler.setRestrictionActive(bool)._active (contracts/abstract/TransactionThrottler.sol#38) is not in mixedCase
Parameter TransactionThrottler.unthrottleAccount(address,bool)._account (contracts/abstract/TransactionThrottler.sol#43) is not in mixedCase
Parameter TransactionThrottler.unthrottleAccount(address,bool)._unthrottled (contracts/abstract/TransactionThrottler.sol#43) is not in mixedCase
Parameter TransactionThrottler.whitelistAccount(address,bool)._account (contracts/abstract/TransactionThrottler.sol#53) is not in mixedCase
Parameter TransactionThrottler.whitelistAccount(address,bool)._whitelisted (contracts/abstract/TransactionThrottler.sol#53) is not in mixedCase
Constant TransactionThrottler._delayBetweenTx (contracts/abstract/TransactionThrottler.sol#11) is not in UPPER_CASE_WITH_UNDERSCORES
Variable EIP712._CACHED_DOMAIN_SEPARATOR (contracts/external/openzeppelin/draft-EIP712.sol#30) is not in mixedCase
Variable EIP712._CACHED_CHAIN_ID (contracts/external/openzeppelin/draft-EIP712.sol#31) is not in mixedCase
Variable EIP712._HASHED_NAME (contracts/external/openzeppelin/draft-EIP712.sol#33) is not in mixedCase
Variable EIP712._HASHED_VERSION (contracts/external/openzeppelin/draft-EIP712.sol#34) is not in mixedCase
Variable EIP712._TYPE_HASH (contracts/external/openzeppelin/draft-EIP712.sol#35) is not in mixedCase
Function IERC20.DOMAIN_SEPARATOR() (contracts/interfaces/IERC20.sol#33) is not in mixedCase
Constant Constants._name (contracts/libraries/Constants.sol#6) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Constants._symbol (contracts/libraries/Constants.sol#7) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Constants._decimals (contracts/libraries/Constants.sol#8) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Fanadise.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/Fanadise.sol#184-205) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp <= deadline,ERC20Permit: expired deadline) (contracts/Fanadise.sol#196)
TransactionThrottler.setTradingStart(uint256) (contracts/abstract/TransactionThrottler.sol#27-31) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(_tradingStart > block.timestamp,Protection: To late) (contracts/abstract/TransactionThrottler.sol#28)
Avoid relying on block.timestamp.
Additional information: link
ECDSA.recover(bytes32,bytes) (contracts/external/openzeppelin/ECDSA.sol#26-59) is never used and should be removed
ECDSA.toEthSignedMessageHash(bytes32) (contracts/external/openzeppelin/ECDSA.sol#93-97) is never used and should be removed
Remove unused functions.
Additional information: link
balanceOf(address) should be declared external:
- Fanadise.balanceOf(address) (contracts/Fanadise.sol#95-97)
Use the external attribute for functions never called from the contract.
Additional information: link
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Unable to find token/project description on the website or on BscScan, CoinMarketCap
Unable to find whitepaper link on the website
Unable to find token on CoinHunt
Additional information: link
Unable to find code repository for the project
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of price dump / death
Token has relatively low CoinGecko rank
Token has relatively low CoinMarketCap rank
Last post in Twitter was more than 30 days ago
Unable to find Discord account