Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
SincereShib.sendETHToFee(uint256) (#297-300) sends eth to arbitrary user
Dangerous calls:
- _developmentAddress.transfer(amount.div(2)) (#298)
- _marketingAddress.transfer(amount.div(2)) (#299)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in SincereShib._transfer(address,address,uint256) (#244-281):
External calls:
- swapTokensForEth(contractTokenBalance) (#256)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#288-294)
External calls sending eth:
- sendETHToFee(address(this).balance) (#259)
- _developmentAddress.transfer(amount.div(2)) (#298)
- _marketingAddress.transfer(amount.div(2)) (#299)
State variables written after the call(s):
- _tokenTransfer(from,to,amount) (#280)
- _rOwned[address(this)] = _rOwned[address(this)].add(rTeam) (#338)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#328)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#329)
- _tokenTransfer(from,to,amount) (#280)
- _rTotal = _rTotal.sub(rFee) (#342)
Apply the check-effects-interactions pattern.
Additional information: link
SincereShib.rescueForeignTokens(address,address,uint256) (#307-310) ignores return value by Token(_tokenAddr).transfer(_to,_amount) (#309)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Combination 1: Reentrancy vulnerabilities + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 2: Unchecked transfer + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 3: Reentrancy vulnerabilities + Unchecked transfer vulnerability. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
SincereShib.allowance(address,address).owner (#216) shadows:
- Ownable.owner() (#108-110) (function)
SincereShib._approve(address,address,uint256).owner (#237) shadows:
- Ownable.owner() (#108-110) (function)
Rename the local variables that shadow another component.
Additional information: link
Ownable.transferOwnership(address).newOwner (#123) lacks a zero-check on :
- _owner = newOwner (#125)
SincereShib.setNewDevAddress(address).dev (#313) lacks a zero-check on :
- _developmentAddress = dev (#315)
SincereShib.setNewMarketingAddress(address).markt (#320) lacks a zero-check on :
- _marketingAddress = markt (#322)
Check that the address is not zero.
Additional information: link
Reentrancy in SincereShib._transfer(address,address,uint256) (#244-281):
External calls:
- swapTokensForEth(contractTokenBalance) (#256)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#288-294)
External calls sending eth:
- sendETHToFee(address(this).balance) (#259)
- _developmentAddress.transfer(amount.div(2)) (#298)
- _marketingAddress.transfer(amount.div(2)) (#299)
State variables written after the call(s):
- _redisFee = _redisFeeOnBuy (#264)
- _redisFee = _redisFeeOnSell (#269)
- _redisFee = 0 (#274)
- _tokenTransfer(from,to,amount) (#280)
- _tFeeTotal = _tFeeTotal.add(tFee) (#343)
- _taxFee = _taxFeeOnBuy (#265)
- _taxFee = _taxFeeOnSell (#270)
- _taxFee = 0 (#275)
Reentrancy in SincereShib.constructor() (#170-184):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#175-176)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#178)
- _isExcludedFromFee[address(this)] = true (#179)
- _isExcludedFromFee[_developmentAddress] = true (#180)
- _isExcludedFromFee[_marketingAddress] = true (#181)
Reentrancy in SincereShib.transferFrom(address,address,uint256) (#225-229):
External calls:
- _transfer(sender,recipient,amount) (#226)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#288-294)
External calls sending eth:
- _transfer(sender,recipient,amount) (#226)
- _developmentAddress.transfer(amount.div(2)) (#298)
- _marketingAddress.transfer(amount.div(2)) (#299)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#227)
- _allowances[owner][spender] = amount (#240)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in SincereShib._transfer(address,address,uint256) (#244-281):
External calls:
- swapTokensForEth(contractTokenBalance) (#256)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#288-294)
External calls sending eth:
- sendETHToFee(address(this).balance) (#259)
- _developmentAddress.transfer(amount.div(2)) (#298)
- _marketingAddress.transfer(amount.div(2)) (#299)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#332)
- _tokenTransfer(from,to,amount) (#280)
Reentrancy in SincereShib.constructor() (#170-184):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#175-176)
Event emitted after the call(s):
- Transfer(address(0x0000000000000000000000000000000000000000),_msgSender(),_tTotal) (#183)
Reentrancy in SincereShib.transferFrom(address,address,uint256) (#225-229):
External calls:
- _transfer(sender,recipient,amount) (#226)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#288-294)
External calls sending eth:
- _transfer(sender,recipient,amount) (#226)
- _developmentAddress.transfer(amount.div(2)) (#298)
- _marketingAddress.transfer(amount.div(2)) (#299)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#241)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#227)
Apply the check-effects-interactions pattern.
Additional information: link
Function IUniswapV2Router02.WETH() (#41) is not in mixedCase
Event SincereShibtokensRescued(address,address,uint256) (#306) is not in CapWords
Event SincereShibdevAddressUpdated(address,address) (#312) is not in CapWords
Event SincereShibmarketingAddressUpdated(address,address) (#319) is not in CapWords
Parameter SincereShib.rescueForeignTokens(address,address,uint256)._tokenAddr (#307) is not in mixedCase
Parameter SincereShib.rescueForeignTokens(address,address,uint256)._to (#307) is not in mixedCase
Parameter SincereShib.rescueForeignTokens(address,address,uint256)._amount (#307) is not in mixedCase
Parameter SincereShib.toggleSwap(bool)._swapEnabled (#405) is not in mixedCase
Constant SincereShib._tTotal (#139) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SincereShib._name (#152) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SincereShib._symbol (#153) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SincereShib._decimals (#154) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Reentrancy in SincereShib._transfer(address,address,uint256) (#244-281):
External calls:
- sendETHToFee(address(this).balance) (#259)
- _developmentAddress.transfer(amount.div(2)) (#298)
- _marketingAddress.transfer(amount.div(2)) (#299)
State variables written after the call(s):
- _tokenTransfer(from,to,amount) (#280)
- _rOwned[address(this)] = _rOwned[address(this)].add(rTeam) (#338)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#328)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#329)
- _tokenTransfer(from,to,amount) (#280)
- _rTotal = _rTotal.sub(rFee) (#342)
- _redisFee = _redisFeeOnBuy (#264)
- _redisFee = _redisFeeOnSell (#269)
- _redisFee = 0 (#274)
- _tokenTransfer(from,to,amount) (#280)
- _tFeeTotal = _tFeeTotal.add(tFee) (#343)
- _taxFee = _taxFeeOnBuy (#265)
- _taxFee = _taxFeeOnSell (#270)
- _taxFee = 0 (#275)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#332)
- _tokenTransfer(from,to,amount) (#280)
Reentrancy in SincereShib.transferFrom(address,address,uint256) (#225-229):
External calls:
- _transfer(sender,recipient,amount) (#226)
- _developmentAddress.transfer(amount.div(2)) (#298)
- _marketingAddress.transfer(amount.div(2)) (#299)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#227)
- _allowances[owner][spender] = amount (#240)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#241)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#227)
Apply the check-effects-interactions pattern.
Additional information: link
Variable SincereShib._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#366) is too similar to SincereShib._getTValues(uint256,uint256,uint256).tTransferAmount (#358)
Variable SincereShib._transferStandard(address,address,uint256).rTransferAmount (#327) is too similar to SincereShib._getTValues(uint256,uint256,uint256).tTransferAmount (#358)
Variable SincereShib._transferStandard(address,address,uint256).rTransferAmount (#327) is too similar to SincereShib._getValues(uint256).tTransferAmount (#349)
Variable SincereShib._transferStandard(address,address,uint256).rTransferAmount (#327) is too similar to SincereShib._transferStandard(address,address,uint256).tTransferAmount (#327)
Variable SincereShib._getValues(uint256).rTransferAmount (#351) is too similar to SincereShib._getTValues(uint256,uint256,uint256).tTransferAmount (#358)
Variable SincereShib._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#366) is too similar to SincereShib._getValues(uint256).tTransferAmount (#349)
Variable SincereShib._getValues(uint256).rTransferAmount (#351) is too similar to SincereShib._transferStandard(address,address,uint256).tTransferAmount (#327)
Variable SincereShib._getValues(uint256).rTransferAmount (#351) is too similar to SincereShib._getValues(uint256).tTransferAmount (#349)
Variable SincereShib._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#366) is too similar to SincereShib._transferStandard(address,address,uint256).tTransferAmount (#327)
Prevent variables from having similar names.
Additional information: link
SincereShib.constructor() (#170-184) uses literals with too many digits:
- Transfer(address(0x0000000000000000000000000000000000000000),_msgSender(),_tTotal) (#183)
SincereShib.slitherConstructorConstantVariables() (#130-415) uses literals with too many digits:
- _tTotal = 100000000000 * 10 ** 6 * 10 ** 9 (#139)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Ownable._previousOwner (#100) is never used in SincereShib (#130-415)
SincereShib._tOwned (#134) is never used in SincereShib (#130-415)
Remove unused state variables.
Additional information: link
Ownable._previousOwner (#100) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#117-120)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#123-126)
name() should be declared external:
- SincereShib.name() (#191-193)
symbol() should be declared external:
- SincereShib.symbol() (#195-197)
decimals() should be declared external:
- SincereShib.decimals() (#199-201)
totalSupply() should be declared external:
- SincereShib.totalSupply() (#203-205)
transfer(address,uint256) should be declared external:
- SincereShib.transfer(address,uint256) (#211-214)
allowance(address,address) should be declared external:
- SincereShib.allowance(address,address) (#216-218)
approve(address,uint256) should be declared external:
- SincereShib.approve(address,uint256) (#220-223)
transferFrom(address,address,uint256) should be declared external:
- SincereShib.transferFrom(address,address,uint256) (#225-229)
rescueForeignTokens(address,address,uint256) should be declared external:
- SincereShib.rescueForeignTokens(address,address,uint256) (#307-310)
setNewDevAddress(address) should be declared external:
- SincereShib.setNewDevAddress(address) (#313-317)
setNewMarketingAddress(address) should be declared external:
- SincereShib.setNewMarketingAddress(address) (#320-324)
setFee(uint256,uint256,uint256,uint256) should be declared external:
- SincereShib.setFee(uint256,uint256,uint256,uint256) (#394-403)
toggleSwap(bool) should be declared external:
- SincereShib.toggleSwap(bool) (#405-407)
excludeMultipleAccountsFromFees(address[],bool) should be declared external:
- SincereShib.excludeMultipleAccountsFromFees(address[],bool) (#409-413)
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