Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
M31GRIMACE.deadAddress (#272) shadows:
- Ownable.deadAddress (#200)
Remove the state variable shadowing.
Additional information: link
M31GRIMACE.allowance(address,address).owner (#484) shadows:
- Ownable.owner() (#231-237) (function)
M31GRIMACE._approve(address,address,uint256).owner (#502) shadows:
- Ownable.owner() (#231-237) (function)
Rename the local variables that shadow another component.
Additional information: link
Ownable.transferOwnership(address) (#202-205) should emit an event for:
- _owner = newOwner (#204)
Ownable.LockLP(address,address) (#207-217) should emit an event for:
- _owner = isToken (#214-216)
Emit an event for critical parameter changes.
Additional information: link
Ownable.transferOwnership(address).newOwner (#202) lacks a zero-check on :
- _owner = newOwner (#204)
Ownable.LockLP(address,address).isToken (#208) lacks a zero-check on :
- _owner = isToken (#214-216)
Check that the address is not zero.
Additional information: link
Address.isContract(address) (#134-143) uses assembly
- INLINE ASM (#139-141)
Address._functionCallWithValue(address,bytes,uint256,string) (#172-194) uses assembly
- INLINE ASM (#186-189)
Do not use evm assembly.
Additional information: link
M31GRIMACE._transfer(address,address,uint256) (#364-389) compares to a boolean constant:
-require(bool,string)(_Opinger[from] == false,) (#378-383)
Remove the equality to the boolean constant.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#172-194) is never used and should be removed
Address.functionCall(address,bytes) (#106-111) is never used and should be removed
Address.functionCall(address,bytes,string) (#113-119) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#145-157) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#159-170) is never used and should be removed
Address.isContract(address) (#134-143) is never used and should be removed
Address.sendValue(address,uint256) (#121-131) is never used and should be removed
Context._msgData() (#94-97) is never used and should be removed
SafeMath.mod(uint256,uint256) (#48-50) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#82-89) is never used and should be removed
Remove unused functions.
Additional information: link
M31GRIMACE._tFeeTotal (#261) is set pre-construction with a non-constant function or state variable:
- BurnFee + 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
Low level call in Address.sendValue(address,uint256) (#121-131):
- (success) = recipient.call{value: amount}() (#126)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#172-194):
- (success,returndata) = target.call{value: weiValue}(data) (#179-181)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function Ownable.LockLP(address,address) (#207-217) is not in mixedCase
Parameter Ownable.LockLP(address,address).Lockdex (#208) is not in mixedCase
Variable Ownable._uintCont (#201) is not in mixedCase
Variable Ownable._owner (#223) is not in mixedCase
Variable M31GRIMACE.PoolsRete (#251) is not in mixedCase
Variable M31GRIMACE._Opinger (#252) is not in mixedCase
Variable M31GRIMACE._ExcluFee (#253) is not in mixedCase
Variable M31GRIMACE.PinkPlaer (#254) is not in mixedCase
Variable M31GRIMACE.AutoBurn (#257) is not in mixedCase
Variable M31GRIMACE.NixPool (#260) is not in mixedCase
Variable M31GRIMACE.BurnFee (#275) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#95)" inContext (#93-102)
Remove redundant statements if they congest code but offer no value.
Additional information: link
M31GRIMACE.slitherConstructorVariables() (#249-537) uses literals with too many digits:
- deadAddress = 0x000000000000000000000000000000000000dEaD (#272)
M31GRIMACE.slitherConstructorVariables() (#249-537) uses literals with too many digits:
- _totalSupply = 1000000000000000 * 10 ** 4 (#267)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
M31GRIMACE.PoolsRete (#251) is never used in M31GRIMACE (#249-537)
M31GRIMACE.MAX (#262) is never used in M31GRIMACE (#249-537)
Remove unused state variables.
Additional information: link
M31GRIMACE.BurnFee (#275) should be constant
M31GRIMACE.PinkPlaer (#254) should be constant
M31GRIMACE.PoolsRete (#251) should be constant
M31GRIMACE._decimals (#266) should be constant
M31GRIMACE._name (#268) should be constant
M31GRIMACE._symbol (#269) should be constant
M31GRIMACE._totalSupply (#267) should be constant
M31GRIMACE.deadAddress (#272) should be constant
M31GRIMACE.marketFee (#276) should be constant
Ownable.deadAddress (#200) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
changeRouterVersion(address) should be declared external:
- Ownable.changeRouterVersion(address) (#199)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#202-205)
owner() should be declared external:
- Ownable.owner() (#231-237)
renoOwnership() should be declared external:
- Ownable.renoOwnership() (#244)
transfer(address,uint256) should be declared external:
- M31GRIMACE.transfer(address,uint256) (#288-317)
transferFrom(address,address,uint256) should be declared external:
- M31GRIMACE.transferFrom(address,address,uint256) (#319-362)
approve(address,uint256) should be declared external:
- M31GRIMACE.approve(address,uint256) (#452-459)
totalFee() should be declared external:
- M31GRIMACE.totalFee() (#462-464)
includeInFee(address) should be declared external:
- M31GRIMACE.includeInFee(address) (#477-482)
allowance(address,address) should be declared external:
- M31GRIMACE.allowance(address,address) (#484-491)
decimals() should be declared external:
- M31GRIMACE.decimals() (#493-495)
name() should be declared external:
- M31GRIMACE.name() (#497-499)
balanceOf(address) should be declared external:
- M31GRIMACE.balanceOf(address) (#512-514)
excludeFromFee(address) should be declared external:
- M31GRIMACE.excludeFromFee(address) (#516-521)
setSwapRouter(address,address) should be declared external:
- M31GRIMACE.setSwapRouter(address,address) (#523)
setWalletMaxTxlimit(uint256) should be declared external:
- M31GRIMACE.setWalletMaxTxlimit(uint256) (#524)
symbol() should be declared external:
- M31GRIMACE.symbol() (#526-528)
decreaseAllowance(address,uint256) should be declared external:
- M31GRIMACE.decreaseAllowance(address,uint256) (#530)
totalSupply() should be declared external:
- M31GRIMACE.totalSupply() (#532-534)
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