SafeShiba Token Logo

SAFESHIB [SafeShiba] Token

About SAFESHIB

Listings

Token 7 months
CoinGecko 40 days
CoinMarketCap 7 months
[CoinGecko] alert: SafeShiba has recently migrated from their old contract to a new one. Visit this post for more information and visit the old token page here.
white paper

The SafeShiba ecosystem is a holder driven and utility based token. Our mission is simple, provide the most value we can to investors with a sustainable long-term model.

Social

Laser Scorebeta Last Audit: 21 May 2022

report
Token is either risky or in presale. For presale 30+ is a fine score.

Anti-Scam

Links


Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)

Reentrancy in BuyBackToken._transfer(address,address,uint256) (#662-700):
External calls:
- swapTokens(contractTokenBalance) (#680)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#731-737)
- buyBackTokens(balance.div(100)) (#688)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
External calls sending eth:
- swapTokens(contractTokenBalance) (#680)
- recipient.transfer(amount) (#984)
- buyBackTokens(balance.div(100)) (#688)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _liquidityFee = _previousLiquidityFee (#911)
- _liquidityFee = 0 (#904)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#878)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#803)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#794)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#824)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#795)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#814)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#805)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#815)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#826)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _rTotal = _rTotal.sub(rFee) (#833)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#880)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#813)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#823)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#804)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#825)
- buyBackTokens(balance.div(100)) (#688)
- inSwapAndLiquify = true (#489)
- inSwapAndLiquify = false (#491)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- marketingFee = previousMarketingFee (#913)
- marketingFee = 0 (#906)
Apply the check-effects-interactions pattern.

Additional information: link


Contract ownership is not renounced (belongs to a wallet)

BuyBackToken.constructor(string,string,uint8,uint256,uint256,uint256,uint256,address)._ma (#494) lacks a zero-check on :
- marketingAddress = address(_ma) (#504)
BuyBackToken.setMarketingAddress(address)._marketingAddress (#955) lacks a zero-check on :
- marketingAddress = address(_marketingAddress) (#956)
Check that the address is not zero.

Additional information: link

BuyBackToken.constructor(string,string,uint8,uint256,uint256,uint256,uint256,address) (#494-535) performs a multiplication on the result of a division:
-_maxTxAmount = _tTotal.div(1000).mul(3) (#516)
BuyBackToken.constructor(string,string,uint8,uint256,uint256,uint256,uint256,address) (#494-535) performs a multiplication on the result of a division:
-minimumTokensBeforeSwap = _tTotal.div(10000).mul(2) (#518)
BuyBackToken.swapTokens(uint256) (#702-713) performs a multiplication on the result of a division:
-transferToAddressETH(dappbuilderAddress,transferredBalance.div(_liquidityFee).mul(dappbuilderFee)) (#710)
BuyBackToken.swapTokens(uint256) (#702-713) performs a multiplication on the result of a division:
-transferToAddressETH(marketingAddress,transferredBalance.div(_liquidityFee).mul(marketingFee.sub(dappbuilderFee))) (#711)
Consider ordering multiplication before division.

Additional information: link

BuyBackToken.addLiquidity(uint256,uint256) (#759-772) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#764-771)
Ensure that all the return values of the function calls are used.

Additional information: link

BuyBackToken.allowance(address,address).owner (#563) shadows:
- Ownable.owner() (#162-164) (function)
BuyBackToken._approve(address,address,uint256).owner (#654) shadows:
- Ownable.owner() (#162-164) (function)
Rename the local variables that shadow another component.

Additional information: link

BuyBackToken.setTaxFee(uint256) (#928-930) should emit an event for:
- _taxFee = taxFee (#929)
BuyBackToken.setBuybackFee(uint256) (#932-935) should emit an event for:
- buybackFee = _buybackFee (#933)
- _liquidityFee = buybackFee.add(marketingFee) (#934)
BuyBackToken.setMaxTxAmount(uint256) (#937-939) should emit an event for:
- _maxTxAmount = maxTxAmount (#938)
BuyBackToken.setMarketingFee(uint256) (#941-945) should emit an event for:
- marketingFee = _marketingFee (#943)
- _liquidityFee = buybackFee.add(marketingFee) (#944)
BuyBackToken.setNumTokensSellToAddToLiquidity(uint256) (#947-949) should emit an event for:
- minimumTokensBeforeSwap = _minimumTokensBeforeSwap (#948)
BuyBackToken.setBuybackUpperLimit(uint256) (#951-953) should emit an event for:
- buyBackUpperLimit = buyBackLimit (#952)
Emit an event for critical parameter changes.

Additional information: link

Reentrancy in BuyBackToken._transfer(address,address,uint256) (#662-700):
External calls:
- swapTokens(contractTokenBalance) (#680)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#731-737)
- buyBackTokens(balance.div(100)) (#688)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
External calls sending eth:
- swapTokens(contractTokenBalance) (#680)
- recipient.transfer(amount) (#984)
- buyBackTokens(balance.div(100)) (#688)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _previousLiquidityFee = _liquidityFee (#899)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _previousTaxFee = _taxFee (#898)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _tFeeTotal = _tFeeTotal.add(tFee) (#834)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _taxFee = _previousTaxFee (#910)
- _taxFee = 0 (#903)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- buybackFee = previousBuybackFee (#912)
- buybackFee = 0 (#905)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- previousBuybackFee = buybackFee (#900)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- previousMarketingFee = marketingFee (#901)
Reentrancy in BuyBackToken.constructor(string,string,uint8,uint256,uint256,uint256,uint256,address) (#494-535):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#525-526)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#531)
- _isExcludedFromFee[address(this)] = true (#532)
- uniswapV2Router = _uniswapV2Router (#528)
Reentrancy in BuyBackToken.transferFrom(address,address,uint256) (#572-576):
External calls:
- _transfer(sender,recipient,amount) (#573)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#731-737)
External calls sending eth:
- _transfer(sender,recipient,amount) (#573)
- recipient.transfer(amount) (#984)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#574)
- _allowances[owner][spender] = amount (#658)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in BuyBackToken._transfer(address,address,uint256) (#662-700):
External calls:
- swapTokens(contractTokenBalance) (#680)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#731-737)
- buyBackTokens(balance.div(100)) (#688)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
External calls sending eth:
- swapTokens(contractTokenBalance) (#680)
- recipient.transfer(amount) (#984)
- buyBackTokens(balance.div(100)) (#688)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
Event emitted after the call(s):
- SwapETHForTokens(amount,path) (#756)
- buyBackTokens(balance.div(100)) (#688)
- Transfer(sender,recipient,tTransferAmount) (#798)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- Transfer(sender,recipient,tTransferAmount) (#808)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- Transfer(sender,recipient,tTransferAmount) (#818)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- Transfer(sender,recipient,tTransferAmount) (#829)
- _tokenTransfer(from,to,amount,takeFee) (#699)
Reentrancy in BuyBackToken.constructor(string,string,uint8,uint256,uint256,uint256,uint256,address) (#494-535):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#525-526)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#534)
Reentrancy in BuyBackToken.swapETHForTokens(uint256) (#742-757):
External calls:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
Event emitted after the call(s):
- SwapETHForTokens(amount,path) (#756)
Reentrancy in BuyBackToken.swapTokensForEth(uint256) (#722-740):
External calls:
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#731-737)
Event emitted after the call(s):
- SwapTokensForETH(tokenAmount,path) (#739)
Reentrancy in BuyBackToken.transferFrom(address,address,uint256) (#572-576):
External calls:
- _transfer(sender,recipient,amount) (#573)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#731-737)
External calls sending eth:
- _transfer(sender,recipient,amount) (#573)
- recipient.transfer(amount) (#984)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#659)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#574)
Apply the check-effects-interactions pattern.

Additional information: link

Ownable.unlock() (#197-202) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is locked until 7 days) (#199)
Avoid relying on block.timestamp.

Additional information: link

Address.isContract(address) (#92-101) uses assembly
- INLINE ASM (#99)
Address._functionCallWithValue(address,bytes,uint256,string) (#129-146) uses assembly
- INLINE ASM (#138-141)
Do not use evm assembly.

Additional information: link

BuyBackToken.includeInReward(address) (#641-652) has costly operations inside a loop:
- _excluded.pop() (#648)
Use a local variable to hold the loop computation result.

Additional information: link

Low level call in Address.sendValue(address,uint256) (#103-109):
- (success) = recipient.call{value: amount}() (#107)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#129-146):
- (success,returndata) = target.call{value: weiValue}(data) (#132)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Redundant expression "this (#16)" inContext (#10-19)
Remove redundant statements if they congest code but offer no value.

Additional information: link

Reentrancy in BuyBackToken._transfer(address,address,uint256) (#662-700):
External calls:
- swapTokens(contractTokenBalance) (#680)
- recipient.transfer(amount) (#984)
External calls sending eth:
- swapTokens(contractTokenBalance) (#680)
- recipient.transfer(amount) (#984)
- buyBackTokens(balance.div(100)) (#688)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _liquidityFee = _previousLiquidityFee (#911)
- _liquidityFee = 0 (#904)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _previousLiquidityFee = _liquidityFee (#899)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _previousTaxFee = _taxFee (#898)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#878)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#803)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#794)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#824)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#795)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#814)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#805)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#815)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#826)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _rTotal = _rTotal.sub(rFee) (#833)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _tFeeTotal = _tFeeTotal.add(tFee) (#834)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#880)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#813)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#823)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#804)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#825)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- _taxFee = _previousTaxFee (#910)
- _taxFee = 0 (#903)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- buybackFee = previousBuybackFee (#912)
- buybackFee = 0 (#905)
- buyBackTokens(balance.div(100)) (#688)
- inSwapAndLiquify = true (#489)
- inSwapAndLiquify = false (#491)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- marketingFee = previousMarketingFee (#913)
- marketingFee = 0 (#906)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- previousBuybackFee = buybackFee (#900)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- previousMarketingFee = marketingFee (#901)
Event emitted after the call(s):
- SwapETHForTokens(amount,path) (#756)
- buyBackTokens(balance.div(100)) (#688)
- Transfer(sender,recipient,tTransferAmount) (#798)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- Transfer(sender,recipient,tTransferAmount) (#808)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- Transfer(sender,recipient,tTransferAmount) (#818)
- _tokenTransfer(from,to,amount,takeFee) (#699)
- Transfer(sender,recipient,tTransferAmount) (#829)
- _tokenTransfer(from,to,amount,takeFee) (#699)
Reentrancy in BuyBackToken.transferFrom(address,address,uint256) (#572-576):
External calls:
- _transfer(sender,recipient,amount) (#573)
- recipient.transfer(amount) (#984)
External calls sending eth:
- _transfer(sender,recipient,amount) (#573)
- recipient.transfer(amount) (#984)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,deadAddress,block.timestamp.add(300)) (#749-754)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#574)
- _allowances[owner][spender] = amount (#658)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#659)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#574)
Apply the check-effects-interactions pattern.

Additional information: link

BuyBackToken.slitherConstructorVariables() (#416-990) uses literals with too many digits:
- deadAddress = 0x000000000000000000000000000000000000dEaD (#422)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

Address._functionCallWithValue(address,bytes,uint256,string) (#129-146) is never used and should be removed
Address.functionCall(address,bytes) (#112-114) is never used and should be removed
Address.functionCall(address,bytes,string) (#116-118) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#120-122) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#124-127) is never used and should be removed
Address.isContract(address) (#92-101) is never used and should be removed
Address.sendValue(address,uint256) (#103-109) is never used and should be removed
BuyBackToken.addLiquidity(uint256,uint256) (#759-772) is never used and should be removed
Context._msgData() (#15-18) is never used and should be removed
SafeMath.mod(uint256,uint256) (#80-82) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#84-87) is never used and should be removed
Remove unused functions.

Additional information: link

Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#241) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#242) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#258) is not in mixedCase
Function IUniswapV2Router01.WETH() (#279) is not in mixedCase
Parameter BuyBackToken.calculateTaxFee(uint256)._amount (#883) is not in mixedCase
Parameter BuyBackToken.calculateLiquidityFee(uint256)._amount (#889) is not in mixedCase
Parameter BuyBackToken.setBuybackFee(uint256)._buybackFee (#932) is not in mixedCase
Parameter BuyBackToken.setMarketingFee(uint256)._marketingFee (#941) is not in mixedCase
Parameter BuyBackToken.setNumTokensSellToAddToLiquidity(uint256)._minimumTokensBeforeSwap (#947) is not in mixedCase
Parameter BuyBackToken.setMarketingAddress(address)._marketingAddress (#955) is not in mixedCase
Parameter BuyBackToken.setSwapAndLiquifyEnabled(bool)._enabled (#959) is not in mixedCase
Parameter BuyBackToken.setBuyBackEnabled(bool)._enabled (#964) is not in mixedCase
Parameter BuyBackToken.presale(bool)._presale (#969) is not in mixedCase
Variable BuyBackToken._taxFee (#442) is not in mixedCase
Variable BuyBackToken._maxTxAmount (#456) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#284) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#285)
Variable BuyBackToken.reflectionFromToken(uint256,bool).rTransferAmount (#620) is too similar to BuyBackToken._transferFromExcluded(address,address,uint256).tTransferAmount (#812)
Variable BuyBackToken._transferBothExcluded(address,address,uint256).rTransferAmount (#822) is too similar to BuyBackToken._transferFromExcluded(address,address,uint256).tTransferAmount (#812)
Variable BuyBackToken._getValues(uint256).rTransferAmount (#839) is too similar to BuyBackToken._transferFromExcluded(address,address,uint256).tTransferAmount (#812)
Variable BuyBackToken._transferStandard(address,address,uint256).rTransferAmount (#793) is too similar to BuyBackToken._transferFromExcluded(address,address,uint256).tTransferAmount (#812)
Variable BuyBackToken._transferToExcluded(address,address,uint256).rTransferAmount (#802) is too similar to BuyBackToken._getValues(uint256).tTransferAmount (#838)
Variable BuyBackToken.reflectionFromToken(uint256,bool).rTransferAmount (#620) is too similar to BuyBackToken._getTValues(uint256).tTransferAmount (#846)
Variable BuyBackToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#854) is too similar to BuyBackToken._transferBothExcluded(address,address,uint256).tTransferAmount (#822)
Variable BuyBackToken.reflectionFromToken(uint256,bool).rTransferAmount (#620) is too similar to BuyBackToken._getValues(uint256).tTransferAmount (#838)
Variable BuyBackToken._transferFromExcluded(address,address,uint256).rTransferAmount (#812) is too similar to BuyBackToken._transferFromExcluded(address,address,uint256).tTransferAmount (#812)
Variable BuyBackToken._transferToExcluded(address,address,uint256).rTransferAmount (#802) is too similar to BuyBackToken._transferStandard(address,address,uint256).tTransferAmount (#793)
Variable BuyBackToken._transferToExcluded(address,address,uint256).rTransferAmount (#802) is too similar to BuyBackToken._transferBothExcluded(address,address,uint256).tTransferAmount (#822)
Variable BuyBackToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#854) is too similar to BuyBackToken._transferFromExcluded(address,address,uint256).tTransferAmount (#812)
Variable BuyBackToken._transferStandard(address,address,uint256).rTransferAmount (#793) is too similar to BuyBackToken._transferStandard(address,address,uint256).tTransferAmount (#793)
Variable BuyBackToken.reflectionFromToken(uint256,bool).rTransferAmount (#620) is too similar to BuyBackToken._transferStandard(address,address,uint256).tTransferAmount (#793)
Variable BuyBackToken.reflectionFromToken(uint256,bool).rTransferAmount (#620) is too similar to BuyBackToken._transferBothExcluded(address,address,uint256).tTransferAmount (#822)
Variable BuyBackToken._transferBothExcluded(address,address,uint256).rTransferAmount (#822) is too similar to BuyBackToken._transferBothExcluded(address,address,uint256).tTransferAmount (#822)
Variable BuyBackToken._getValues(uint256).rTransferAmount (#839) is too similar to BuyBackToken._transferBothExcluded(address,address,uint256).tTransferAmount (#822)
Variable BuyBackToken._transferStandard(address,address,uint256).rTransferAmount (#793) is too similar to BuyBackToken._transferBothExcluded(address,address,uint256).tTransferAmount (#822)
Variable BuyBackToken._transferToExcluded(address,address,uint256).rTransferAmount (#802) is too similar to BuyBackToken._transferToExcluded(address,address,uint256).tTransferAmount (#802)
Variable BuyBackToken.reflectionFromToken(uint256,bool).rTransferAmount (#620) is too similar to BuyBackToken._transferToExcluded(address,address,uint256).tTransferAmount (#802)
Variable BuyBackToken._transferFromExcluded(address,address,uint256).rTransferAmount (#812) is too similar to BuyBackToken._transferBothExcluded(address,address,uint256).tTransferAmount (#822)
Variable BuyBackToken._transferToExcluded(address,address,uint256).rTransferAmount (#802) is too similar to BuyBackToken._transferFromExcluded(address,address,uint256).tTransferAmount (#812)
Variable BuyBackToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#854) is too similar to BuyBackToken._getValues(uint256).tTransferAmount (#838)
Variable BuyBackToken._transferFromExcluded(address,address,uint256).rTransferAmount (#812) is too similar to BuyBackToken._getTValues(uint256).tTransferAmount (#846)
Variable BuyBackToken._getValues(uint256).rTransferAmount (#839) is too similar to BuyBackToken._getValues(uint256).tTransferAmount (#838)
Variable BuyBackToken._transferBothExcluded(address,address,uint256).rTransferAmount (#822) is too similar to BuyBackToken._getValues(uint256).tTransferAmount (#838)
Variable BuyBackToken._transferStandard(address,address,uint256).rTransferAmount (#793) is too similar to BuyBackToken._getValues(uint256).tTransferAmount (#838)
Variable BuyBackToken._transferFromExcluded(address,address,uint256).rTransferAmount (#812) is too similar to BuyBackToken._transferStandard(address,address,uint256).tTransferAmount (#793)
Variable BuyBackToken._transferFromExcluded(address,address,uint256).rTransferAmount (#812) is too similar to BuyBackToken._transferToExcluded(address,address,uint256).tTransferAmount (#802)
Variable BuyBackToken._transferFromExcluded(address,address,uint256).rTransferAmount (#812) is too similar to BuyBackToken._getValues(uint256).tTransferAmount (#838)
Variable BuyBackToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#854) is too similar to BuyBackToken._getTValues(uint256).tTransferAmount (#846)
Variable BuyBackToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#854) is too similar to BuyBackToken._transferStandard(address,address,uint256).tTransferAmount (#793)
Variable BuyBackToken._transferBothExcluded(address,address,uint256).rTransferAmount (#822) is too similar to BuyBackToken._getTValues(uint256).tTransferAmount (#846)
Variable BuyBackToken._getValues(uint256).rTransferAmount (#839) is too similar to BuyBackToken._getTValues(uint256).tTransferAmount (#846)
Variable BuyBackToken._transferStandard(address,address,uint256).rTransferAmount (#793) is too similar to BuyBackToken._getTValues(uint256).tTransferAmount (#846)
Variable BuyBackToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#854) is too similar to BuyBackToken._transferToExcluded(address,address,uint256).tTransferAmount (#802)
Variable BuyBackToken._getValues(uint256).rTransferAmount (#839) is too similar to BuyBackToken._transferStandard(address,address,uint256).tTransferAmount (#793)
Variable BuyBackToken._transferBothExcluded(address,address,uint256).rTransferAmount (#822) is too similar to BuyBackToken._transferStandard(address,address,uint256).tTransferAmount (#793)
Variable BuyBackToken._transferBothExcluded(address,address,uint256).rTransferAmount (#822) is too similar to BuyBackToken._transferToExcluded(address,address,uint256).tTransferAmount (#802)
Variable BuyBackToken._getValues(uint256).rTransferAmount (#839) is too similar to BuyBackToken._transferToExcluded(address,address,uint256).tTransferAmount (#802)
Variable BuyBackToken._transferStandard(address,address,uint256).rTransferAmount (#793) is too similar to BuyBackToken._transferToExcluded(address,address,uint256).tTransferAmount (#802)
Variable BuyBackToken._transferToExcluded(address,address,uint256).rTransferAmount (#802) is too similar to BuyBackToken._getTValues(uint256).tTransferAmount (#846)
Prevent variables from having similar names.

Additional information: link

renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#171-174)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#176-180)
getUnlockTime() should be declared external:
- Ownable.getUnlockTime() (#182-184)
getTime() should be declared external:
- Ownable.getTime() (#186-188)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#190-195)
unlock() should be declared external:
- Ownable.unlock() (#197-202)
name() should be declared external:
- BuyBackToken.name() (#537-539)
symbol() should be declared external:
- BuyBackToken.symbol() (#541-543)
decimals() should be declared external:
- BuyBackToken.decimals() (#545-547)
transfer(address,uint256) should be declared external:
- BuyBackToken.transfer(address,uint256) (#558-561)
allowance(address,address) should be declared external:
- BuyBackToken.allowance(address,address) (#563-565)
approve(address,uint256) should be declared external:
- BuyBackToken.approve(address,uint256) (#567-570)
transferFrom(address,address,uint256) should be declared external:
- BuyBackToken.transferFrom(address,address,uint256) (#572-576)
increaseAllowance(address,uint256) should be declared external:
- BuyBackToken.increaseAllowance(address,uint256) (#578-581)
decreaseAllowance(address,uint256) should be declared external:
- BuyBackToken.decreaseAllowance(address,uint256) (#583-586)
isExcludedFromReward(address) should be declared external:
- BuyBackToken.isExcludedFromReward(address) (#588-590)
totalFees() should be declared external:
- BuyBackToken.totalFees() (#592-594)
minimumTokensBeforeSwapAmount() should be declared external:
- BuyBackToken.minimumTokensBeforeSwapAmount() (#596-598)
buyBackUpperLimitAmount() should be declared external:
- BuyBackToken.buyBackUpperLimitAmount() (#600-602)
deliver(uint256) should be declared external:
- BuyBackToken.deliver(uint256) (#604-611)
reflectionFromToken(uint256,bool) should be declared external:
- BuyBackToken.reflectionFromToken(uint256,bool) (#614-623)
excludeFromReward(address) should be declared external:
- BuyBackToken.excludeFromReward(address) (#631-639)
isExcludedFromFee(address) should be declared external:
- BuyBackToken.isExcludedFromFee(address) (#916-918)
excludeFromFee(address) should be declared external:
- BuyBackToken.excludeFromFee(address) (#920-922)
includeInFee(address) should be declared external:
- BuyBackToken.includeInFee(address) (#924-926)
setBuyBackEnabled(bool) should be declared external:
- BuyBackToken.setBuyBackEnabled(bool) (#964-967)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:


Token is deployed only at one blockchain


Token has only one trading pair

Contract has 3% buy tax and 3% sell tax.
Taxes are low but contract ownership is not renounced. Token has a high risk of becoming a honeypot.


Average 30d PancakeSwap liquidity is low.


Unable to find Discord account


BscScan page for the token does not contain additional info: website, socials, description, etc.

Additional information: link


Unable to find token contract audit


Unable to find audit link on the website


Unable to find token on CoinHunt

Additional information: link


Token is not listed at Mobula.Finance

Additional information: link


Young tokens have high risks of scam / price dump / death


Young tokens have high risks of scam / price dump / death


Token has relatively low CoinGecko rank


Token has relatively low CoinMarketCap rank


Young tokens have high risks of price dump / death


Young tokens have high risks of price dump / death

Price for SAFESHIB

News for SAFESHIB