LOFI is a deflationary static rewards token for use on the LOFI-DEFI platform currently in development which will be a social platform with streaming and NFT elements for use of artists and musicians to connect them with token holders.
LofiDefi.withdraw() (contracts/LOFIDEFI.sol#298-302) ignores return value by IERC20(address(this)).transfer(msg.sender,balance) (contracts/LOFIDEFI.sol#300)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract name (LOFI-DEFI) contains non-alphanumeric characters.
Not a direct threat, but may indicate unreliable intentions of developer. Non-alphanumeric chars (,.;!#*&") are extremely rare among low risk tokens.
LofiDefi._approve(address,address,uint256).owner (contracts/LOFIDEFI.sol#516) shadows:
- Ownable.owner() (contracts/LOFIDEFI.sol#111) (function)
Rename the local variables that shadow another component.
Additional information: link
LofiDefi.setMaxTxPercent(uint256) (contracts/LOFIDEFI.sol#419-423) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10 ** 2) (contracts/LOFIDEFI.sol#420-422)
Emit an event for critical parameter changes.
Additional information: link
LofiDefi._setDevWallet(address)._DEV_ADDRESS (contracts/LOFIDEFI.sol#512) lacks a zero-check on :
- DEV_ADDRESS = _DEV_ADDRESS (contracts/LOFIDEFI.sol#513)
Check that the address is not zero.
Additional information: link
Reentrancy in LofiDefi.setRouterAddress(address) (contracts/LOFIDEFI.sol#643-647):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_newPancakeRouter.factory()).createPair(address(this),_newPancakeRouter.WETH()) (contracts/LOFIDEFI.sol#645)
State variables written after the call(s):
- uniswapV2Router = _newPancakeRouter (contracts/LOFIDEFI.sol#646)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in LofiDefi.constructor() (contracts/LOFIDEFI.sol#267-286):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (contracts/LOFIDEFI.sol#271)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (contracts/LOFIDEFI.sol#285)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable.unlock() (contracts/LOFIDEFI.sol#127-132) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is locked until 7 days) (contracts/LOFIDEFI.sol#129)
Avoid relying on block.timestamp.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (contracts/LOFIDEFI.sol#81-98) uses assembly
- INLINE ASM (contracts/LOFIDEFI.sol#90-93)
Do not use evm assembly.
Additional information: link
SafeMath.mod(uint256,uint256,string) (contracts/LOFIDEFI.sol#39) is never used and should be removed
Remove unused functions.
Additional information: link
LofiDefi._previousDevFee (contracts/LOFIDEFI.sol#258) is set pre-construction with a non-constant function or state variable:
- _devFee
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.
Additional information: link
solc-0.8.0 is not recommended for deployment
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
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (contracts/LOFIDEFI.sol#81-98):
- (success,returndata) = target.call{value: weiValue}(data) (contracts/LOFIDEFI.sol#84)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Variable LofiDefi._maxTxAmount (contracts/LOFIDEFI.sol#262) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (contracts/LOFIDEFI.sol#44)" inContext (contracts/LOFIDEFI.sol#42-45)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable LofiDefi._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (contracts/LOFIDEFI.sol#451) is too similar to LofiDefi._transferBothExcluded(address,address,uint256).tTransferAmount (contracts/LOFIDEFI.sol#627)
Prevent variables from having similar names.
Additional information: link
LofiDefi.slitherConstructorVariables() (contracts/LOFIDEFI.sol#226-650) uses literals with too many digits:
- _maxTxAmount = 10000000000 * 10 ** 9 (contracts/LOFIDEFI.sol#262)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
LofiDefi._tTotal (contracts/LOFIDEFI.sol#242) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
setRouterAddress(address) should be declared external:
- LofiDefi.setRouterAddress(address) (contracts/LOFIDEFI.sol#643-647)
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 whitepaper link on the website
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of price dump / death
Young tokens have high risks of price dump / death
Token has relatively low CoinGecko rank
Token has relatively low CoinMarketCap rank
Twitter account link seems to be invalid