Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ticker ($NEXUS) 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.
Nexus._approve(address,address,uint256).owner (contracts/Nexus.sol#330) shadows:
- Ownable.owner() (contracts/Ownable.sol#32-34) (function)
Rename the local variables that shadow another component.
Additional information: link
Nexus.setMaxTxAmount(uint256) (contracts/Nexus.sol#255-257) should emit an event for:
- maxTxAmount = newMaxTxAmount (contracts/Nexus.sol#256)
Emit an event for critical parameter changes.
Additional information: link
Nexus.setPresaleAddress(address).presale (contracts/Nexus.sol#285) lacks a zero-check on :
- presaleAddress = presale (contracts/Nexus.sol#286)
Check that the address is not zero.
Additional information: link
Reentrancy in Nexus.setRouterAddress(address) (contracts/Nexus.sol#259-277):
External calls:
- uniswapV2Pair = factory.createPair(address(this),_newPancakeRouter.WETH()) (contracts/Nexus.sol#266-269)
State variables written after the call(s):
- uniswapV2Router = _newPancakeRouter (contracts/Nexus.sol#274)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Nexus.setRouterAddress(address) (contracts/Nexus.sol#259-277):
External calls:
- uniswapV2Pair = factory.createPair(address(this),_newPancakeRouter.WETH()) (contracts/Nexus.sol#266-269)
Event emitted after the call(s):
- UpdatePancakeRouter(uniswapV2Router,uniswapV2Pair) (contracts/Nexus.sol#276)
Apply the check-effects-interactions pattern.
Additional information: link
Nexus._transfer(address,address,uint256) (contracts/Nexus.sol#341-423) uses timestamp for comparisons
Dangerous comparisons:
- onlyVipMarket && openAllMarketTime >= block.timestamp (contracts/Nexus.sol#366)
- require(bool,string)(_timestamp - lastSwapTime >= lockedBetweenSells,Lock time has not been released from last swap) (contracts/Nexus.sol#375-378)
- onlyVipMarket && openAllMarketTime >= block.timestamp (contracts/Nexus.sol#390)
- require(bool,string)(_timestamp - lastSwapTime_scope_0 >= lockedBetweenBuys,Lock time has not been released from last swap) (contracts/Nexus.sol#401-404)
Avoid relying on block.timestamp.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (contracts/Address.sol#43-60) uses assembly
- INLINE ASM (contracts/Address.sol#52-55)
Do not use evm assembly.
Additional information: link
SafeMath.mod(uint256,uint256,string) (contracts/SafeMath.sol#53-56) is never used and should be removed
Remove unused functions.
Additional information: link
Nexus._previousMarketFee (contracts/Nexus.sol#36) is set pre-construction with a non-constant function or state variable:
- marketFee
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.4 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/Address.sol#43-60):
- (success,returndata) = target.call{value: weiValue}(data) (contracts/Address.sol#46)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Constant Nexus._total (contracts/Nexus.sol#29) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (contracts/Context.sol#12)" inContext (contracts/Context.sol#6-15)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (contracts/IUniswapV2Router01.sol#13) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (contracts/IUniswapV2Router01.sol#14)
Prevent variables from having similar names.
Additional information: link
Nexus.slitherConstructorConstantVariables() (contracts/Nexus.sol#12-467) uses literals with too many digits:
- _total = 10000000 * 10 ** _decimals (contracts/Nexus.sol#29)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (contracts/Ownable.sol#59-62)
Use the external attribute for functions never called from the contract.
Additional information: link
Young tokens have high risks of price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Young tokens have high risks of price dump / death
Token has relatively low CoinMarketCap rank
Twitter account link seems to be invalid