Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
SanjiInu.allowance(address,address).owner (#589) shadows:
- Ownable.owner() (#412-414) (function)
SanjiInu._approve(address,address,uint256).owner (#820) shadows:
- Ownable.owner() (#412-414) (function)
Rename the local variables that shadow another component.
Additional information: link
SanjiInu.setTaxFeePercent(uint256,uint256) (#690-693) should emit an event for:
- _buyTaxFee = buyTaxFee (#691)
- _sellTaxFee = sellTaxFee (#692)
SanjiInu.setBurnFee(uint256) (#696-698) should emit an event for:
- _burnFee = fee (#697)
SanjiInu.setAdvestisementFeePercent(uint256,uint256) (#700-703) should emit an event for:
- _sellAdvestisementFee = sellAdvestisementFee (#701)
- _buyAdvestisementFee = buyAdvestisementFee (#702)
SanjiInu.setMaxTxPercent(uint256) (#705-709) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10 ** 3) (#706-708)
Emit an event for critical parameter changes.
Additional information: link
SanjiInu.changeAdvestisementWallets(address).wallet (#563) lacks a zero-check on :
- advertisementWallet = wallet (#564)
SanjiInu.setAirdropContract(address)._airdropContract (#855) lacks a zero-check on :
- airdropContract = _airdropContract (#856)
Check that the address is not zero.
Additional information: link
Reentrancy in SanjiInu.constructor() (#541-557):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#546-547)
State variables written after the call(s):
- excludeFromReward(DEAD_ADDRESS) (#554)
- _excluded.push(account) (#647)
- excludeFromReward(DEAD_ADDRESS) (#554)
- _isExcluded[account] = true (#646)
- _isExcludedFromFee[owner()] = true (#551)
- _isExcludedFromFee[address(this)] = true (#552)
- excludeFromReward(DEAD_ADDRESS) (#554)
- _tOwned[account] = tokenFromReflection(_rOwned[account]) (#644)
- ammPairs[_uniswapV2Pair] = true (#549)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in SanjiInu.constructor() (#541-557):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#546-547)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#556)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable.unlock() (#459-464) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now > _lockTime,Contract is locked until 7 days) (#461)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#264-273) uses assembly
- INLINE ASM (#271)
Address._functionCallWithValue(address,bytes,uint256,string) (#357-378) uses assembly
- INLINE ASM (#370-373)
Do not use evm assembly.
Additional information: link
SanjiInu.includeInReward(address) (#650-661) has costly operations inside a loop:
- _excluded.pop() (#657)
SanjiInu._reflectFee(uint256,uint256) (#713-716) has costly operations inside a loop:
- _rTotal = _rTotal.sub(rFee) (#714)
SanjiInu._reflectFee(uint256,uint256) (#713-716) has costly operations inside a loop:
- _tFeeTotal = _tFeeTotal.add(tFee) (#715)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#357-378) is never used and should be removed
Address.functionCall(address,bytes) (#317-319) is never used and should be removed
Address.functionCall(address,bytes,string) (#327-329) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#342-344) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#352-355) is never used and should be removed
Address.isContract(address) (#264-273) is never used and should be removed
Address.sendValue(address,uint256) (#291-297) is never used and should be removed
Context._msgData() (#236-239) is never used and should be removed
SafeMath.mod(uint256,uint256) (#209-211) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#225-228) is never used and should be removed
Remove unused functions.
Additional information: link
SanjiInu._rTotal (#502) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
SanjiInu._taxFee (#517) is set pre-construction with a non-constant function or state variable:
- _buyTaxFee
SanjiInu._previousTaxFee (#518) is set pre-construction with a non-constant function or state variable:
- _taxFee
SanjiInu._previousBurn (#522) is set pre-construction with a non-constant function or state variable:
- _burnFee
SanjiInu._advestisementFee (#527) is set pre-construction with a non-constant function or state variable:
- _buyAdvestisementFee
SanjiInu._previousAdvestisementFee (#528) is set pre-construction with a non-constant function or state variable:
- _advestisementFee
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) (#291-297):
- (success) = recipient.call{value: amount}() (#295)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#357-378):
- (success,returndata) = target.call{value: weiValue}(data) (#361)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Router01.WETH() (#479) is not in mixedCase
Parameter SanjiInu.calculateTaxFee(uint256)._amount (#778) is not in mixedCase
Parameter SanjiInu.calculateAdvestisementFee(uint256)._amount (#784) is not in mixedCase
Parameter SanjiInu.calculateBurnFee(uint256)._amount (#790) is not in mixedCase
Parameter SanjiInu.setAirdropContract(address)._airdropContract (#855) is not in mixedCase
Variable SanjiInu._buyTaxFee (#509) is not in mixedCase
Variable SanjiInu._buyAdvestisementFee (#510) is not in mixedCase
Variable SanjiInu._sellTaxFee (#514) is not in mixedCase
Variable SanjiInu._sellAdvestisementFee (#515) is not in mixedCase
Variable SanjiInu._advestisementFee (#527) is not in mixedCase
Variable SanjiInu._maxTxAmount (#532) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#237)" inContext (#231-240)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable SanjiInu._takeAdvertisement(uint256).rAdvertisement (#762) is too similar to SanjiInu._transferStandard(address,address,uint256).tAdvertisement (#935)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rAdvertisement (#737) is too similar to SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).tAdvertisement (#734)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rAdvertisement (#737) is too similar to SanjiInu._transferStandard(address,address,uint256).tAdvertisement (#935)
Variable SanjiInu._takeAdvertisement(uint256).rAdvertisement (#762) is too similar to SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).tAdvertisement (#734)
Variable SanjiInu._getValues(uint256).rTransferAmount (#720) is too similar to SanjiInu._getTValues(uint256).tTransferAmount (#729)
Variable SanjiInu._transferToExcluded(address,address,uint256).rTransferAmount (#946) is too similar to SanjiInu._transferStandard(address,address,uint256).tTransferAmount (#935)
Variable SanjiInu._transferBothExcluded(address,address,uint256).rTransferAmount (#664) is too similar to SanjiInu._transferBothExcluded(address,address,uint256).tTransferAmount (#664)
Variable SanjiInu._transferToExcluded(address,address,uint256).rTransferAmount (#946) is too similar to SanjiInu._transferToExcluded(address,address,uint256).tTransferAmount (#946)
Variable SanjiInu._transferFromExcluded(address,address,uint256).rTransferAmount (#958) is too similar to SanjiInu._transferStandard(address,address,uint256).tTransferAmount (#935)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#739) is too similar to SanjiInu._transferStandard(address,address,uint256).tTransferAmount (#935)
Variable SanjiInu.reflectionFromToken(uint256,bool).rTransferAmount (#630) is too similar to SanjiInu._transferStandard(address,address,uint256).tTransferAmount (#935)
Variable SanjiInu._transferToExcluded(address,address,uint256).rTransferAmount (#946) is too similar to SanjiInu._transferFromExcluded(address,address,uint256).tTransferAmount (#958)
Variable SanjiInu._transferBothExcluded(address,address,uint256).rTransferAmount (#664) is too similar to SanjiInu._transferStandard(address,address,uint256).tTransferAmount (#935)
Variable SanjiInu._transferFromExcluded(address,address,uint256).rTransferAmount (#958) is too similar to SanjiInu._transferToExcluded(address,address,uint256).tTransferAmount (#946)
Variable SanjiInu._transferBothExcluded(address,address,uint256).rTransferAmount (#664) is too similar to SanjiInu._transferToExcluded(address,address,uint256).tTransferAmount (#946)
Variable SanjiInu._transferFromExcluded(address,address,uint256).rTransferAmount (#958) is too similar to SanjiInu._transferFromExcluded(address,address,uint256).tTransferAmount (#958)
Variable SanjiInu._transferBothExcluded(address,address,uint256).rTransferAmount (#664) is too similar to SanjiInu._transferFromExcluded(address,address,uint256).tTransferAmount (#958)
Variable SanjiInu._getValues(uint256).rTransferAmount (#720) is too similar to SanjiInu._transferStandard(address,address,uint256).tTransferAmount (#935)
Variable SanjiInu._transferToExcluded(address,address,uint256).rTransferAmount (#946) is too similar to SanjiInu._getTValues(uint256).tTransferAmount (#729)
Variable SanjiInu._transferFromExcluded(address,address,uint256).rTransferAmount (#958) is too similar to SanjiInu._getTValues(uint256).tTransferAmount (#729)
Variable SanjiInu._transferStandard(address,address,uint256).rTransferAmount (#935) is too similar to SanjiInu._transferStandard(address,address,uint256).tTransferAmount (#935)
Variable SanjiInu._transferBothExcluded(address,address,uint256).rTransferAmount (#664) is too similar to SanjiInu._getTValues(uint256).tTransferAmount (#729)
Variable SanjiInu._getValues(uint256).rTransferAmount (#720) is too similar to SanjiInu._transferFromExcluded(address,address,uint256).tTransferAmount (#958)
Variable SanjiInu._transferToExcluded(address,address,uint256).rTransferAmount (#946) is too similar to SanjiInu._transferBothExcluded(address,address,uint256).tTransferAmount (#664)
Variable SanjiInu._takeAdvertisement(uint256).rAdvertisement (#762) is too similar to SanjiInu._getTValues(uint256).tAdvertisement (#726)
Variable SanjiInu._takeAdvertisement(uint256).rAdvertisement (#762) is too similar to SanjiInu._takeAdvertisement(uint256).tAdvertisement (#760)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rAdvertisement (#737) is too similar to SanjiInu._getTValues(uint256).tAdvertisement (#726)
Variable SanjiInu._takeAdvertisement(uint256).rAdvertisement (#762) is too similar to SanjiInu._transferBothExcluded(address,address,uint256).tAdvertisement (#664)
Variable SanjiInu._takeAdvertisement(uint256).rAdvertisement (#762) is too similar to SanjiInu._transferFromExcluded(address,address,uint256).tAdvertisement (#958)
Variable SanjiInu._takeAdvertisement(uint256).rAdvertisement (#762) is too similar to SanjiInu._transferToExcluded(address,address,uint256).tAdvertisement (#946)
Variable SanjiInu._takeAdvertisement(uint256).rAdvertisement (#762) is too similar to SanjiInu._getValues(uint256).tAdvertisement (#719)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rAdvertisement (#737) is too similar to SanjiInu._takeAdvertisement(uint256).tAdvertisement (#760)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rAdvertisement (#737) is too similar to SanjiInu._transferBothExcluded(address,address,uint256).tAdvertisement (#664)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rAdvertisement (#737) is too similar to SanjiInu._transferFromExcluded(address,address,uint256).tAdvertisement (#958)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rAdvertisement (#737) is too similar to SanjiInu._transferToExcluded(address,address,uint256).tAdvertisement (#946)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rAdvertisement (#737) is too similar to SanjiInu._getValues(uint256).tAdvertisement (#719)
Variable SanjiInu.reflectionFromToken(uint256,bool).rTransferAmount (#630) is too similar to SanjiInu._transferBothExcluded(address,address,uint256).tTransferAmount (#664)
Variable SanjiInu.reflectionFromToken(uint256,bool).rTransferAmount (#630) is too similar to SanjiInu._transferToExcluded(address,address,uint256).tTransferAmount (#946)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#739) is too similar to SanjiInu._getTValues(uint256).tTransferAmount (#729)
Variable SanjiInu.reflectionFromToken(uint256,bool).rTransferAmount (#630) is too similar to SanjiInu._getValues(uint256).tTransferAmount (#719)
Variable SanjiInu.reflectionFromToken(uint256,bool).rTransferAmount (#630) is too similar to SanjiInu._transferFromExcluded(address,address,uint256).tTransferAmount (#958)
Variable SanjiInu._transferBothExcluded(address,address,uint256).rTransferAmount (#664) is too similar to SanjiInu._getValues(uint256).tTransferAmount (#719)
Variable SanjiInu._transferStandard(address,address,uint256).rTransferAmount (#935) is too similar to SanjiInu._transferBothExcluded(address,address,uint256).tTransferAmount (#664)
Variable SanjiInu._transferStandard(address,address,uint256).rTransferAmount (#935) is too similar to SanjiInu._transferToExcluded(address,address,uint256).tTransferAmount (#946)
Variable SanjiInu._transferStandard(address,address,uint256).rTransferAmount (#935) is too similar to SanjiInu._getValues(uint256).tTransferAmount (#719)
Variable SanjiInu.reflectionFromToken(uint256,bool).rTransferAmount (#630) is too similar to SanjiInu._getTValues(uint256).tTransferAmount (#729)
Variable SanjiInu._transferStandard(address,address,uint256).rTransferAmount (#935) is too similar to SanjiInu._transferFromExcluded(address,address,uint256).tTransferAmount (#958)
Variable SanjiInu._transferFromExcluded(address,address,uint256).rTransferAmount (#958) is too similar to SanjiInu._transferBothExcluded(address,address,uint256).tTransferAmount (#664)
Variable SanjiInu._transferToExcluded(address,address,uint256).rTransferAmount (#946) is too similar to SanjiInu._getValues(uint256).tTransferAmount (#719)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#739) is too similar to SanjiInu._transferBothExcluded(address,address,uint256).tTransferAmount (#664)
Variable SanjiInu._transferFromExcluded(address,address,uint256).rTransferAmount (#958) is too similar to SanjiInu._getValues(uint256).tTransferAmount (#719)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#739) is too similar to SanjiInu._transferToExcluded(address,address,uint256).tTransferAmount (#946)
Variable SanjiInu._getValues(uint256).rTransferAmount (#720) is too similar to SanjiInu._transferBothExcluded(address,address,uint256).tTransferAmount (#664)
Variable SanjiInu._getValues(uint256).rTransferAmount (#720) is too similar to SanjiInu._transferToExcluded(address,address,uint256).tTransferAmount (#946)
Variable SanjiInu._transferStandard(address,address,uint256).rTransferAmount (#935) is too similar to SanjiInu._getTValues(uint256).tTransferAmount (#729)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#739) is too similar to SanjiInu._getValues(uint256).tTransferAmount (#719)
Variable SanjiInu._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#739) is too similar to SanjiInu._transferFromExcluded(address,address,uint256).tTransferAmount (#958)
Variable SanjiInu._getValues(uint256).rTransferAmount (#720) is too similar to SanjiInu._getValues(uint256).tTransferAmount (#719)
Prevent variables from having similar names.
Additional information: link
SanjiInu.slitherConstructorVariables() (#486-969) uses literals with too many digits:
- _maxTxAmount = 100000 * 1e9 * 10 ** 18 (#532)
SanjiInu.slitherConstructorConstantVariables() (#486-969) uses literals with too many digits:
- DEAD_ADDRESS = 0x000000000000000000000000000000000000dEaD (#530)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SanjiInu._decimals (#507) should be constant
SanjiInu._name (#505) should be constant
SanjiInu._symbol (#506) should be constant
SanjiInu._tTotal (#501) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#431-434)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#440-444)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#446-448)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#451-456)
unlock() should be declared external:
- Ownable.unlock() (#459-464)
name() should be declared external:
- SanjiInu.name() (#559-561)
changeAdvestisementWallets(address) should be declared external:
- SanjiInu.changeAdvestisementWallets(address) (#563-565)
symbol() should be declared external:
- SanjiInu.symbol() (#567-569)
decimals() should be declared external:
- SanjiInu.decimals() (#571-573)
totalSupply() should be declared external:
- SanjiInu.totalSupply() (#575-577)
balanceOf(address) should be declared external:
- SanjiInu.balanceOf(address) (#579-582)
transfer(address,uint256) should be declared external:
- SanjiInu.transfer(address,uint256) (#584-587)
allowance(address,address) should be declared external:
- SanjiInu.allowance(address,address) (#589-591)
approve(address,uint256) should be declared external:
- SanjiInu.approve(address,uint256) (#593-596)
transferFrom(address,address,uint256) should be declared external:
- SanjiInu.transferFrom(address,address,uint256) (#598-602)
increaseAllowance(address,uint256) should be declared external:
- SanjiInu.increaseAllowance(address,uint256) (#604-607)
decreaseAllowance(address,uint256) should be declared external:
- SanjiInu.decreaseAllowance(address,uint256) (#609-612)
isExcludedFromReward(address) should be declared external:
- SanjiInu.isExcludedFromReward(address) (#614-616)
totalFees() should be declared external:
- SanjiInu.totalFees() (#618-620)
reflectionFromToken(uint256,bool) should be declared external:
- SanjiInu.reflectionFromToken(uint256,bool) (#624-633)
excludeFromFee(address) should be declared external:
- SanjiInu.excludeFromFee(address) (#675-677)
manageAmmPairs(address,bool) should be declared external:
- SanjiInu.manageAmmPairs(address,bool) (#680-682)
includeInFee(address) should be declared external:
- SanjiInu.includeInFee(address) (#686-688)
isExcludedFromFee(address) should be declared external:
- SanjiInu.isExcludedFromFee(address) (#816-818)
turnOffAntibotMode() should be declared external:
- SanjiInu.turnOffAntibotMode() (#851-853)
setAirdropContract(address) should be declared external:
- SanjiInu.setAirdropContract(address) (#855-857)
setAntibotModeWhitelist(address[],address[]) should be declared external:
- SanjiInu.setAntibotModeWhitelist(address[],address[]) (#859-862)
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