https://t.co/niGnP0OhEV
Reentrancy in BearishShiba._transfer(address,address,uint256) (#691-738):
External calls:
- BP.protect(from,to,amount) (#708)
- swapTokens(contractTokenBalance) (#717)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#767-776)
- buyBackTokens(balance.div(100)) (#726)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
External calls sending eth:
- swapTokens(contractTokenBalance) (#717)
- recipient.transfer(amount) (#1056)
- buyBackTokens(balance.div(100)) (#726)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _liquidityFee = _previousLiquidityFee (#949)
- _liquidityFee = 0 (#944)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#918)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#843)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#834)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#864)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#835)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#854)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#855)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#845)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#866)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _rTotal = _rTotal.sub(rFee) (#873)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#920)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#853)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#863)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#844)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#865)
- buyBackTokens(balance.div(100)) (#726)
- inSwapAndLiquify = true (#525)
- inSwapAndLiquify = false (#527)
Apply the check-effects-interactions pattern.
Additional information: link
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ticker ($BShib) 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.
BearishShiba.addLiquidity(uint256,uint256) (#801-812) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#804-811)
Ensure that all the return values of the function calls are used.
Additional information: link
BearishShiba.allowance(address,address).owner (#576) shadows:
- Ownable.owner() (#179-181) (function)
BearishShiba._approve(address,address,uint256).owner (#683) shadows:
- Ownable.owner() (#179-181) (function)
Rename the local variables that shadow another component.
Additional information: link
BearishShiba.swapTokens(uint256) (#740-750) performs a multiplication on the result of a division:
-transferToAddressETH(rewardAddress,transferredBalance.div(_liquidityFee).mul(rewardDivisor)) (#747)
BearishShiba.swapTokens(uint256) (#740-750) performs a multiplication on the result of a division:
-transferToAddressETH(developmentAddress,transferredBalance.div(_liquidityFee).mul(developmentDivisor)) (#748)
Consider ordering multiplication before division.
Additional information: link
BearishShiba.setRewardAddress(address)._rewardAddress (#1016) lacks a zero-check on :
- rewardAddress = address(_rewardAddress) (#1017)
BearishShiba.setDevelopmentAddress(address)._developmentAddress (#1022) lacks a zero-check on :
- developmentAddress = address(_developmentAddress) (#1023)
BearishShiba.SetEnabledAddLiquidityAddress(address).newEnabledAddLiquidityAddress (#1033) lacks a zero-check on :
- _enabledAddLiquidityAddress = newEnabledAddLiquidityAddress (#1034)
Check that the address is not zero.
Additional information: link
Reentrancy in BearishShiba._transfer(address,address,uint256) (#691-738):
External calls:
- BP.protect(from,to,amount) (#708)
- swapTokens(contractTokenBalance) (#717)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#767-776)
- buyBackTokens(balance.div(100)) (#726)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
External calls sending eth:
- swapTokens(contractTokenBalance) (#717)
- recipient.transfer(amount) (#1056)
- buyBackTokens(balance.div(100)) (#726)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _previousLiquidityFee = _liquidityFee (#941)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _previousTaxFee = _taxFee (#940)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _tFeeTotal = _tFeeTotal.add(tFee) (#874)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _taxFee = _previousTaxFee (#948)
- _taxFee = 0 (#943)
Reentrancy in BearishShiba.constructor() (#530-547):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#535-536)
State variables written after the call(s):
- _approve(address(this),address(_uniswapV2Router),MAX_INT) (#539)
- _allowances[owner][spender] = amount (#687)
- _enabledAddLiquidityAddress = owner() (#541)
- _isExcludedFromFee[owner()] = true (#543)
- _isExcludedFromFee[address(this)] = true (#544)
- uniswapV2Router = _uniswapV2Router (#538)
Reentrancy in BearishShiba.transferFrom(address,address,uint256) (#586-590):
External calls:
- _transfer(sender,recipient,amount) (#587)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#767-776)
- BP.protect(from,to,amount) (#708)
External calls sending eth:
- _transfer(sender,recipient,amount) (#587)
- recipient.transfer(amount) (#1056)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#588)
- _allowances[owner][spender] = amount (#687)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in BearishShiba._transfer(address,address,uint256) (#691-738):
External calls:
- BP.protect(from,to,amount) (#708)
- swapTokens(contractTokenBalance) (#717)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#767-776)
External calls sending eth:
- swapTokens(contractTokenBalance) (#717)
- recipient.transfer(amount) (#1056)
Event emitted after the call(s):
- SwapTokensForETH(tokenAmount,path) (#774)
- swapTokens(contractTokenBalance) (#717)
Reentrancy in BearishShiba._transfer(address,address,uint256) (#691-738):
External calls:
- BP.protect(from,to,amount) (#708)
- swapTokens(contractTokenBalance) (#717)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#767-776)
- buyBackTokens(balance.div(100)) (#726)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
External calls sending eth:
- swapTokens(contractTokenBalance) (#717)
- recipient.transfer(amount) (#1056)
- buyBackTokens(balance.div(100)) (#726)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
Event emitted after the call(s):
- SwapETHForTokens(amount,path) (#795)
- buyBackTokens(balance.div(100)) (#726)
- Transfer(msg.sender,address(this),tLiquidity) (#921)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- Transfer(sender,recipient,tTransferAmount) (#838)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- Transfer(sender,recipient,tTransferAmount) (#848)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- Transfer(sender,recipient,tTransferAmount) (#858)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- Transfer(sender,recipient,tTransferAmount) (#869)
- _tokenTransfer(from,to,amount,takeFee) (#737)
Reentrancy in BearishShiba.constructor() (#530-547):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#535-536)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#688)
- _approve(address(this),address(_uniswapV2Router),MAX_INT) (#539)
- Transfer(address(0),_msgSender(),_tTotal) (#546)
Reentrancy in BearishShiba.swapETHForTokens(uint256) (#782-799):
External calls:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
Event emitted after the call(s):
- SwapETHForTokens(amount,path) (#795)
Reentrancy in BearishShiba.swapTokensForEth(uint256) (#759-780):
External calls:
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#767-776)
Event emitted after the call(s):
- SwapTokensForETH(tokenAmount,path) (#774)
Reentrancy in BearishShiba.transferFrom(address,address,uint256) (#586-590):
External calls:
- _transfer(sender,recipient,amount) (#587)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#767-776)
- BP.protect(from,to,amount) (#708)
External calls sending eth:
- _transfer(sender,recipient,amount) (#587)
- recipient.transfer(amount) (#1056)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#688)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#588)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#110-119) uses assembly
- INLINE ASM (#117)
Address._functionCallWithValue(address,bytes,uint256,string) (#147-164) uses assembly
- INLINE ASM (#156-159)
Do not use evm assembly.
Additional information: link
BearishShiba.setBotProtectionDisableForever() (#627-630) compares to a boolean constant:
-require(bool)(BPDisabledForever == false) (#628)
Remove the equality to the boolean constant.
Additional information: link
BearishShiba.includeInReward(address) (#670-681) has costly operations inside a loop:
- _excluded.pop() (#677)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#147-164) is never used and should be removed
Address.functionCall(address,bytes) (#130-132) is never used and should be removed
Address.functionCall(address,bytes,string) (#134-136) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#138-140) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#142-145) is never used and should be removed
Address.isContract(address) (#110-119) is never used and should be removed
Address.sendValue(address,uint256) (#121-127) is never used and should be removed
BearishShiba.addLiquidity(uint256,uint256) (#801-812) is never used and should be removed
Context._msgData() (#33-36) is never used and should be removed
SafeMath.mod(uint256,uint256) (#98-100) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#102-105) is never used and should be removed
Remove unused functions.
Additional information: link
BearishShiba._rTotal (#444) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
BearishShiba._previousTaxFee (#453) is set pre-construction with a non-constant function or state variable:
- _taxFee
BearishShiba._previousLiquidityFee (#456) is set pre-construction with a non-constant function or state variable:
- _liquidityFee
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-127):
- (success) = recipient.call{value: amount}() (#125)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#147-164):
- (success,returndata) = target.call{value: weiValue}(data) (#150)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#243) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#244) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#260) is not in mixedCase
Function IUniswapV2Router01.WETH() (#281) is not in mixedCase
Event BearishShibaonTaxFeeUpdated(uint256) (#461) is not in CapWords
Event BearishShibaonLiquidityFeeUpdated(uint256) (#462) is not in CapWords
Event BearishShibaonMaxTxAmountUpdated(uint256) (#464) is not in CapWords
Event BearishShibaonRewardDivisorUpdated(uint256) (#466) is not in CapWords
Event BearishShibaonDevelopmentDivisorUpdated(uint256) (#467) is not in CapWords
Event BearishShibaonNumTokensSellToAddToLiquidityUpdated(uint256) (#468) is not in CapWords
Event BearishShibaonBuybackUpperLimitUpdated(uint256) (#469) is not in CapWords
Event BearishShibaonRewardAddressUpdated(address) (#471) is not in CapWords
Event BearishShibaonDevelopmentAddressUpdated(address) (#472) is not in CapWords
Parameter BearishShiba.setBPAddrss(address)._bp (#618) is not in mixedCase
Parameter BearishShiba.setBpEnabled(bool)._enabled (#623) is not in mixedCase
Parameter BearishShiba.calculateTaxFee(uint256)._amount (#925) is not in mixedCase
Parameter BearishShiba.calculateLiquidityFee(uint256)._amount (#931) is not in mixedCase
Function BearishShiba.Sweep() (#964-967) is not in mixedCase
Parameter BearishShiba.setNumTokensSellToAddToLiquidity(uint256)._minimumTokensBeforeSwap (#1004) is not in mixedCase
Parameter BearishShiba.setRewardAddress(address)._rewardAddress (#1016) is not in mixedCase
Parameter BearishShiba.setDevelopmentAddress(address)._developmentAddress (#1022) is not in mixedCase
Parameter BearishShiba.setSwapAndLiquifyEnabled(bool)._enabled (#1028) is not in mixedCase
Function BearishShiba.SetEnabledAddLiquidityAddress(address) (#1033-1035) is not in mixedCase
Parameter BearishShiba.setBuyBackEnabled(bool)._enabled (#1037) is not in mixedCase
Variable BearishShiba.BP (#433) is not in mixedCase
Variable BearishShiba.BPDisabledForever (#435) is not in mixedCase
Variable BearishShiba._taxFee (#452) is not in mixedCase
Variable BearishShiba._liquidityFee (#455) is not in mixedCase
Variable BearishShiba.MAX_LIQUIDITY_FEE (#479) is not in mixedCase
Variable BearishShiba.MAX_TAX_FEE (#480) is not in mixedCase
Variable BearishShiba._maxTxAmount (#489) is not in mixedCase
Variable BearishShiba._enabledAddLiquidityAddress (#493) is not in mixedCase
Variable BearishShiba.MAX_INT (#502) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#34)" inContext (#28-37)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in BearishShiba._transfer(address,address,uint256) (#691-738):
External calls:
- swapTokens(contractTokenBalance) (#717)
- recipient.transfer(amount) (#1056)
External calls sending eth:
- swapTokens(contractTokenBalance) (#717)
- recipient.transfer(amount) (#1056)
- buyBackTokens(balance.div(100)) (#726)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _liquidityFee = _previousLiquidityFee (#949)
- _liquidityFee = 0 (#944)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _previousLiquidityFee = _liquidityFee (#941)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _previousTaxFee = _taxFee (#940)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#918)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#843)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#834)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#864)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#835)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#854)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#855)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#845)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#866)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _rTotal = _rTotal.sub(rFee) (#873)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _tFeeTotal = _tFeeTotal.add(tFee) (#874)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#920)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#853)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#863)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#844)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#865)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- _taxFee = _previousTaxFee (#948)
- _taxFee = 0 (#943)
- buyBackTokens(balance.div(100)) (#726)
- inSwapAndLiquify = true (#525)
- inSwapAndLiquify = false (#527)
Event emitted after the call(s):
- SwapETHForTokens(amount,path) (#795)
- buyBackTokens(balance.div(100)) (#726)
- Transfer(msg.sender,address(this),tLiquidity) (#921)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- Transfer(sender,recipient,tTransferAmount) (#838)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- Transfer(sender,recipient,tTransferAmount) (#848)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- Transfer(sender,recipient,tTransferAmount) (#858)
- _tokenTransfer(from,to,amount,takeFee) (#737)
- Transfer(sender,recipient,tTransferAmount) (#869)
- _tokenTransfer(from,to,amount,takeFee) (#737)
Reentrancy in BearishShiba.transferFrom(address,address,uint256) (#586-590):
External calls:
- _transfer(sender,recipient,amount) (#587)
- recipient.transfer(amount) (#1056)
External calls sending eth:
- _transfer(sender,recipient,amount) (#587)
- recipient.transfer(amount) (#1056)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp) (#789-797)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#588)
- _allowances[owner][spender] = amount (#687)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#688)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#588)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#286) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#287)
Variable BearishShiba._transferFromExcluded(address,address,uint256).rTransferAmount (#852) is too similar to BearishShiba._transferFromExcluded(address,address,uint256).tTransferAmount (#852)
Variable BearishShiba._transferStandard(address,address,uint256).rTransferAmount (#833) is too similar to BearishShiba._getTValues(uint256).tTransferAmount (#886)
Variable BearishShiba._transferStandard(address,address,uint256).rTransferAmount (#833) is too similar to BearishShiba._transferStandard(address,address,uint256).tTransferAmount (#833)
Variable BearishShiba.reflectionFromToken(uint256,bool).rTransferAmount (#648) is too similar to BearishShiba._getTValues(uint256).tTransferAmount (#886)
Variable BearishShiba._transferToExcluded(address,address,uint256).rTransferAmount (#842) is too similar to BearishShiba._getTValues(uint256).tTransferAmount (#886)
Variable BearishShiba._transferToExcluded(address,address,uint256).rTransferAmount (#842) is too similar to BearishShiba._getValues(uint256).tTransferAmount (#878)
Variable BearishShiba._getValues(uint256).rTransferAmount (#879) is too similar to BearishShiba._transferFromExcluded(address,address,uint256).tTransferAmount (#852)
Variable BearishShiba._transferToExcluded(address,address,uint256).rTransferAmount (#842) is too similar to BearishShiba._transferStandard(address,address,uint256).tTransferAmount (#833)
Variable BearishShiba._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#894) is too similar to BearishShiba._getTValues(uint256).tTransferAmount (#886)
Variable BearishShiba._transferFromExcluded(address,address,uint256).rTransferAmount (#852) is too similar to BearishShiba._getTValues(uint256).tTransferAmount (#886)
Variable BearishShiba._transferBothExcluded(address,address,uint256).rTransferAmount (#862) is too similar to BearishShiba._transferFromExcluded(address,address,uint256).tTransferAmount (#852)
Variable BearishShiba._transferStandard(address,address,uint256).rTransferAmount (#833) is too similar to BearishShiba._transferFromExcluded(address,address,uint256).tTransferAmount (#852)
Variable BearishShiba._transferToExcluded(address,address,uint256).rTransferAmount (#842) is too similar to BearishShiba._transferToExcluded(address,address,uint256).tTransferAmount (#842)
Variable BearishShiba._getValues(uint256).rTransferAmount (#879) is too similar to BearishShiba._getTValues(uint256).tTransferAmount (#886)
Variable BearishShiba.reflectionFromToken(uint256,bool).rTransferAmount (#648) is too similar to BearishShiba._transferFromExcluded(address,address,uint256).tTransferAmount (#852)
Variable BearishShiba._transferToExcluded(address,address,uint256).rTransferAmount (#842) is too similar to BearishShiba._transferFromExcluded(address,address,uint256).tTransferAmount (#852)
Variable BearishShiba._transferBothExcluded(address,address,uint256).rTransferAmount (#862) is too similar to BearishShiba._getTValues(uint256).tTransferAmount (#886)
Variable BearishShiba._getValues(uint256).rTransferAmount (#879) is too similar to BearishShiba._transferToExcluded(address,address,uint256).tTransferAmount (#842)
Variable BearishShiba._transferFromExcluded(address,address,uint256).rTransferAmount (#852) is too similar to BearishShiba._transferToExcluded(address,address,uint256).tTransferAmount (#842)
Variable BearishShiba._transferBothExcluded(address,address,uint256).rTransferAmount (#862) is too similar to BearishShiba._transferToExcluded(address,address,uint256).tTransferAmount (#842)
Variable BearishShiba.reflectionFromToken(uint256,bool).rTransferAmount (#648) is too similar to BearishShiba._transferToExcluded(address,address,uint256).tTransferAmount (#842)
Variable BearishShiba._transferStandard(address,address,uint256).rTransferAmount (#833) is too similar to BearishShiba._getValues(uint256).tTransferAmount (#878)
Variable BearishShiba._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#894) is too similar to BearishShiba._getValues(uint256).tTransferAmount (#878)
Variable BearishShiba._transferStandard(address,address,uint256).rTransferAmount (#833) is too similar to BearishShiba._transferBothExcluded(address,address,uint256).tTransferAmount (#862)
Variable BearishShiba._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#894) is too similar to BearishShiba._transferBothExcluded(address,address,uint256).tTransferAmount (#862)
Variable BearishShiba._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#894) is too similar to BearishShiba._transferStandard(address,address,uint256).tTransferAmount (#833)
Variable BearishShiba._transferStandard(address,address,uint256).rTransferAmount (#833) is too similar to BearishShiba._transferToExcluded(address,address,uint256).tTransferAmount (#842)
Variable BearishShiba._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#894) is too similar to BearishShiba._transferToExcluded(address,address,uint256).tTransferAmount (#842)
Variable BearishShiba._getValues(uint256).rTransferAmount (#879) is too similar to BearishShiba._getValues(uint256).tTransferAmount (#878)
Variable BearishShiba._transferToExcluded(address,address,uint256).rTransferAmount (#842) is too similar to BearishShiba._transferBothExcluded(address,address,uint256).tTransferAmount (#862)
Variable BearishShiba._transferBothExcluded(address,address,uint256).rTransferAmount (#862) is too similar to BearishShiba._getValues(uint256).tTransferAmount (#878)
Variable BearishShiba._transferFromExcluded(address,address,uint256).rTransferAmount (#852) is too similar to BearishShiba._getValues(uint256).tTransferAmount (#878)
Variable BearishShiba.reflectionFromToken(uint256,bool).rTransferAmount (#648) is too similar to BearishShiba._getValues(uint256).tTransferAmount (#878)
Variable BearishShiba._transferBothExcluded(address,address,uint256).rTransferAmount (#862) is too similar to BearishShiba._transferBothExcluded(address,address,uint256).tTransferAmount (#862)
Variable BearishShiba._getValues(uint256).rTransferAmount (#879) is too similar to BearishShiba._transferBothExcluded(address,address,uint256).tTransferAmount (#862)
Variable BearishShiba._getValues(uint256).rTransferAmount (#879) is too similar to BearishShiba._transferStandard(address,address,uint256).tTransferAmount (#833)
Variable BearishShiba._transferFromExcluded(address,address,uint256).rTransferAmount (#852) is too similar to BearishShiba._transferBothExcluded(address,address,uint256).tTransferAmount (#862)
Variable BearishShiba._transferBothExcluded(address,address,uint256).rTransferAmount (#862) is too similar to BearishShiba._transferStandard(address,address,uint256).tTransferAmount (#833)
Variable BearishShiba._transferFromExcluded(address,address,uint256).rTransferAmount (#852) is too similar to BearishShiba._transferStandard(address,address,uint256).tTransferAmount (#833)
Variable BearishShiba.reflectionFromToken(uint256,bool).rTransferAmount (#648) is too similar to BearishShiba._transferBothExcluded(address,address,uint256).tTransferAmount (#862)
Variable BearishShiba.reflectionFromToken(uint256,bool).rTransferAmount (#648) is too similar to BearishShiba._transferStandard(address,address,uint256).tTransferAmount (#833)
Variable BearishShiba._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#894) is too similar to BearishShiba._transferFromExcluded(address,address,uint256).tTransferAmount (#852)
Prevent variables from having similar names.
Additional information: link
BearishShiba.slitherConstructorVariables() (#422-1064) uses literals with too many digits:
- deadAddress = 0x000000000000000000000000000000000000dEaD (#428)
BearishShiba.slitherConstructorVariables() (#422-1064) uses literals with too many digits:
- _tTotal = 1000000000 * 10 ** 18 (#443)
BearishShiba.slitherConstructorVariables() (#422-1064) uses literals with too many digits:
- _maxTxAmount = 1000000 * 10 ** 18 (#489)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Ownable._previousOwner (#169) is never used in BearishShiba (#422-1064)
Remove unused state variables.
Additional information: link
BearishShiba.MAX_INT (#502) should be constant
BearishShiba.MAX_LIQUIDITY_FEE (#479) should be constant
BearishShiba.MAX_TAX_FEE (#480) should be constant
BearishShiba._decimals (#449) should be constant
BearishShiba._name (#447) should be constant
BearishShiba._symbol (#448) should be constant
BearishShiba._tTotal (#443) should be constant
Ownable._previousOwner (#169) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#188-191)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#193-197)
getTime() should be declared external:
- Ownable.getTime() (#200-202)
name() should be declared external:
- BearishShiba.name() (#550-552)
symbol() should be declared external:
- BearishShiba.symbol() (#554-556)
decimals() should be declared external:
- BearishShiba.decimals() (#558-560)
totalSupply() should be declared external:
- BearishShiba.totalSupply() (#562-564)
transfer(address,uint256) should be declared external:
- BearishShiba.transfer(address,uint256) (#571-574)
allowance(address,address) should be declared external:
- BearishShiba.allowance(address,address) (#576-578)
approve(address,uint256) should be declared external:
- BearishShiba.approve(address,uint256) (#580-583)
transferFrom(address,address,uint256) should be declared external:
- BearishShiba.transferFrom(address,address,uint256) (#586-590)
increaseAllowance(address,uint256) should be declared external:
- BearishShiba.increaseAllowance(address,uint256) (#592-595)
decreaseAllowance(address,uint256) should be declared external:
- BearishShiba.decreaseAllowance(address,uint256) (#597-600)
isExcludedFromReward(address) should be declared external:
- BearishShiba.isExcludedFromReward(address) (#602-604)
totalFees() should be declared external:
- BearishShiba.totalFees() (#606-608)
minimumTokensBeforeSwapAmount() should be declared external:
- BearishShiba.minimumTokensBeforeSwapAmount() (#610-612)
buyBackUpperLimitAmount() should be declared external:
- BearishShiba.buyBackUpperLimitAmount() (#614-616)
deliver(uint256) should be declared external:
- BearishShiba.deliver(uint256) (#632-639)
reflectionFromToken(uint256,bool) should be declared external:
- BearishShiba.reflectionFromToken(uint256,bool) (#642-651)
excludeFromReward(address) should be declared external:
- BearishShiba.excludeFromReward(address) (#659-668)
isExcludedFromFee(address) should be declared external:
- BearishShiba.isExcludedFromFee(address) (#952-954)
excludeFromFee(address) should be declared external:
- BearishShiba.excludeFromFee(address) (#956-958)
includeInFee(address) should be declared external:
- BearishShiba.includeInFee(address) (#960-962)
setBuyBackEnabled(bool) should be declared external:
- BearishShiba.setBuyBackEnabled(bool) (#1037-1040)
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 CoinGecko
Additional information: link
Unable to find token on CoinMarketCap
Additional information: link
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 scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Young tokens have high risks of price dump / death
Last post in Twitter was more than 30 days ago
Unable to find Blog account (Reddit or Medium)
Unable to find Youtube account
Unable to find Discord account