YooShi is developed from a decentralized meme coin to YooShi's game metaverse, devoting to build a bridge between the the P2E game and players and make the game not only for fun but also bring profits! YooShi GamePad provides gaming developers a series of gaming pre-launch supports, such as selling unique in-game assets in the form of NFT, Farms, NFT auction and trading marketplace, etc..
Yooshi.addLiquidity(uint256,uint256) (#1081-1094) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in Yooshi._transfer(address,address,uint256) (#994-1038):
External calls:
- swapAndLiquify(contractTokenBalance) (#1025)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1072-1078)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#1025)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#950)
- _rOwned[poolAddr] = _rOwned[poolAddr].add(rPool) (#959)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1199)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1189)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1178)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1211)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1190)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1201)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1212)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1180)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _rTotal = _rTotal.sub(rFee) (#943)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#952)
- _tOwned[poolAddr] = _tOwned[poolAddr].add(tPool) (#961)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#1177)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#1210)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1200)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1179)
Apply the check-effects-interactions pattern.
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.
Address.isContract(address) (#417-426) uses assembly
- INLINE ASM (#424)
Address._verifyCallResult(bool,bytes,string) (#562-579) uses assembly
- INLINE ASM (#571-574)
Do not use evm assembly.
Additional information: link
Variable Yooshi._transferStandard(address,address,uint256).rTransferAmount (#1188) is too similar to Yooshi._transferToExcluded(address,address,uint256).tTransferAmount (#1198)
Variable Yooshi._transferToExcluded(address,address,uint256).rTransferAmount (#1198) is too similar to Yooshi._transferStandard(address,address,uint256).tTransferAmount (#1188)
Variable Yooshi._transferStandard(address,address,uint256).rTransferAmount (#1188) is too similar to Yooshi._transferBothExcluded(address,address,uint256).tTransferAmount (#1176)
Variable Yooshi.reflectionFromToken(uint256,bool).rTransferAmount (#906) is too similar to Yooshi._getTValues(uint256).tTransferAmount (#1124)
Variable Yooshi._transferBothExcluded(address,address,uint256).rTransferAmount (#1176) is too similar to Yooshi._getTValues(uint256).tTransferAmount (#1124)
Variable Yooshi._transferToExcluded(address,address,uint256).rTransferAmount (#1198) is too similar to Yooshi._getValues(uint256).tTransferAmount (#1115)
Variable Yooshi._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1133) is too similar to Yooshi._getValues(uint256).tTransferAmount (#1115)
Variable Yooshi._transferStandard(address,address,uint256).rTransferAmount (#1188) is too similar to Yooshi._transferFromExcluded(address,address,uint256).tTransferAmount (#1209)
Variable Yooshi.reflectionFromToken(uint256,bool).rTransferAmount (#906) is too similar to Yooshi._transferFromExcluded(address,address,uint256).tTransferAmount (#1209)
Variable Yooshi._transferStandard(address,address,uint256).rTransferAmount (#1188) is too similar to Yooshi._getTValues(uint256).tTransferAmount (#1124)
Variable Yooshi._transferStandard(address,address,uint256).rTransferAmount (#1188) is too similar to Yooshi._getValues(uint256).tTransferAmount (#1115)
Variable Yooshi._transferFromExcluded(address,address,uint256).rTransferAmount (#1209) is too similar to Yooshi._transferStandard(address,address,uint256).tTransferAmount (#1188)
Variable Yooshi._transferBothExcluded(address,address,uint256).rTransferAmount (#1176) is too similar to Yooshi._transferToExcluded(address,address,uint256).tTransferAmount (#1198)
Variable Yooshi._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1133) is too similar to Yooshi._getTValues(uint256).tTransferAmount (#1124)
Variable Yooshi.reflectionFromToken(uint256,bool).rTransferAmount (#906) is too similar to Yooshi._transferToExcluded(address,address,uint256).tTransferAmount (#1198)
Variable Yooshi._transferBothExcluded(address,address,uint256).rTransferAmount (#1176) is too similar to Yooshi._transferBothExcluded(address,address,uint256).tTransferAmount (#1176)
Variable Yooshi._transferToExcluded(address,address,uint256).rTransferAmount (#1198) is too similar to Yooshi._transferBothExcluded(address,address,uint256).tTransferAmount (#1176)
Variable Yooshi._transferFromExcluded(address,address,uint256).rTransferAmount (#1209) is too similar to Yooshi._transferBothExcluded(address,address,uint256).tTransferAmount (#1176)
Variable Yooshi._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1133) is too similar to Yooshi._transferToExcluded(address,address,uint256).tTransferAmount (#1198)
Variable Yooshi._transferFromExcluded(address,address,uint256).rTransferAmount (#1209) is too similar to Yooshi._getValues(uint256).tTransferAmount (#1115)
Variable Yooshi._transferToExcluded(address,address,uint256).rTransferAmount (#1198) is too similar to Yooshi._transferToExcluded(address,address,uint256).tTransferAmount (#1198)
Variable Yooshi._getValues(uint256).rTransferAmount (#1116) is too similar to Yooshi._getValues(uint256).tTransferAmount (#1115)
Variable Yooshi._transferFromExcluded(address,address,uint256).rTransferAmount (#1209) is too similar to Yooshi._getTValues(uint256).tTransferAmount (#1124)
Variable Yooshi._transferBothExcluded(address,address,uint256).rTransferAmount (#1176) is too similar to Yooshi._getValues(uint256).tTransferAmount (#1115)
Variable Yooshi._getValues(uint256).rTransferAmount (#1116) is too similar to Yooshi._transferStandard(address,address,uint256).tTransferAmount (#1188)
Variable Yooshi._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1133) is too similar to Yooshi._transferFromExcluded(address,address,uint256).tTransferAmount (#1209)
Variable Yooshi._getValues(uint256).rTransferAmount (#1116) is too similar to Yooshi._transferToExcluded(address,address,uint256).tTransferAmount (#1198)
Variable Yooshi._transferToExcluded(address,address,uint256).rTransferAmount (#1198) is too similar to Yooshi._transferFromExcluded(address,address,uint256).tTransferAmount (#1209)
Variable Yooshi.reflectionFromToken(uint256,bool).rTransferAmount (#906) is too similar to Yooshi._transferStandard(address,address,uint256).tTransferAmount (#1188)
Variable Yooshi._transferBothExcluded(address,address,uint256).rTransferAmount (#1176) is too similar to Yooshi._transferFromExcluded(address,address,uint256).tTransferAmount (#1209)
Variable Yooshi._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1133) is too similar to Yooshi._transferStandard(address,address,uint256).tTransferAmount (#1188)
Variable Yooshi._getValues(uint256).rTransferAmount (#1116) is too similar to Yooshi._transferFromExcluded(address,address,uint256).tTransferAmount (#1209)
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#594) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#595)
Variable Yooshi._transferFromExcluded(address,address,uint256).rTransferAmount (#1209) is too similar to Yooshi._transferFromExcluded(address,address,uint256).tTransferAmount (#1209)
Variable Yooshi._transferStandard(address,address,uint256).rTransferAmount (#1188) is too similar to Yooshi._transferStandard(address,address,uint256).tTransferAmount (#1188)
Variable Yooshi._transferFromExcluded(address,address,uint256).rTransferAmount (#1209) is too similar to Yooshi._transferToExcluded(address,address,uint256).tTransferAmount (#1198)
Variable Yooshi._getValues(uint256).rTransferAmount (#1116) is too similar to Yooshi._transferBothExcluded(address,address,uint256).tTransferAmount (#1176)
Variable Yooshi.reflectionFromToken(uint256,bool).rTransferAmount (#906) is too similar to Yooshi._getValues(uint256).tTransferAmount (#1115)
Variable Yooshi.reflectionFromToken(uint256,bool).rTransferAmount (#906) is too similar to Yooshi._transferBothExcluded(address,address,uint256).tTransferAmount (#1176)
Variable Yooshi._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#1133) is too similar to Yooshi._transferBothExcluded(address,address,uint256).tTransferAmount (#1176)
Variable Yooshi._getValues(uint256).rTransferAmount (#1116) is too similar to Yooshi._getTValues(uint256).tTransferAmount (#1124)
Variable Yooshi._transferToExcluded(address,address,uint256).rTransferAmount (#1198) is too similar to Yooshi._getTValues(uint256).tTransferAmount (#1124)
Variable Yooshi._transferBothExcluded(address,address,uint256).rTransferAmount (#1176) is too similar to Yooshi._transferStandard(address,address,uint256).tTransferAmount (#1188)
Prevent variables from having similar names.
Additional information: link
Redundant expression "this (#317)" inContext (#311-320)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Yooshi.includeInReward(address) (#926-937) has costly operations inside a loop:
- _excluded.pop() (#933)
Use a local variable to hold the loop computation result.
Additional information: link
Reentrancy in Yooshi.transferFrom(address,address,uint256) (#871-875):
External calls:
- _transfer(sender,recipient,amount) (#872)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1072-1078)
External calls sending eth:
- _transfer(sender,recipient,amount) (#872)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#991)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#873)
Reentrancy in Yooshi.swapAndLiquify(uint256) (#1040-1061):
External calls:
- swapTokensForEth(half) (#1052)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1072-1078)
- addLiquidity(otherHalf,newBalance) (#1058)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1058)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#991)
- addLiquidity(otherHalf,newBalance) (#1058)
- SwapAndLiquify(half,newBalance,otherHalf) (#1060)
Reentrancy in Yooshi._transfer(address,address,uint256) (#994-1038):
External calls:
- swapAndLiquify(contractTokenBalance) (#1025)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1072-1078)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#1025)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#1194)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- Transfer(sender,recipient,tTransferAmount) (#1205)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- Transfer(sender,recipient,tTransferAmount) (#1216)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- Transfer(sender,recipient,tTransferAmount) (#1184)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
Apply the check-effects-interactions pattern.
Additional information: link
SafeMath.tryDiv(uint256,uint256) (#140-143) is never used and should be removed
Address.sendValue(address,uint256) (#444-450) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#495-497) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#150-153) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#554-560) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#544-546) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#104-108) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#290-293) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#505-512) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#270-273) is never used and should be removed
Context._msgData() (#316-319) is never used and should be removed
Address.functionStaticCall(address,bytes) (#520-522) is never used and should be removed
SafeMath.mod(uint256,uint256) (#232-235) is never used and should be removed
Address._verifyCallResult(bool,bytes,string) (#562-579) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#125-133) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#115-118) is never used and should be removed
Address.isContract(address) (#417-426) is never used and should be removed
Address.functionCall(address,bytes,string) (#480-482) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#530-536) is never used and should be removed
Address.functionCall(address,bytes) (#470-472) is never used and should be removed
Remove unused functions.
Additional information: link
Yooshi.setMaxTxPercent(uint256) (#1247-1251) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10 ** 2) (#1248-1250)
Yooshi.setNumTokensSellToAddToLiquidity(uint256) (#1258-1260) should emit an event for:
- numTokensSellToAddToLiquidity = _amount (#1259)
Yooshi.setPoolFeePercent(uint256) (#1243-1245) should emit an event for:
- _poolFee = poolFee (#1244)
Yooshi.setTaxFeePercent(uint256) (#1235-1237) should emit an event for:
- _taxFee = taxFee (#1236)
Yooshi.setLiquidityFeePercent(uint256) (#1239-1241) should emit an event for:
- _liquidityFee = liquidityFee (#1240)
Emit an event for critical parameter changes.
Additional information: link
Yooshi.constructor(address,address)._poolAddr (#815) lacks a zero-check on :
- poolAddr = _poolAddr (#816)
Check that the address is not zero.
Additional information: link
Yooshi.addLiquidity(uint256,uint256) (#1081-1094) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
Ensure that all the return values of the function calls are used.
Additional information: link
Reentrancy in Yooshi.transferFrom(address,address,uint256) (#871-875):
External calls:
- _transfer(sender,recipient,amount) (#872)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1072-1078)
External calls sending eth:
- _transfer(sender,recipient,amount) (#872)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#873)
- _allowances[owner][spender] = amount (#990)
Reentrancy in Yooshi.swapAndLiquify(uint256) (#1040-1061):
External calls:
- swapTokensForEth(half) (#1052)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1072-1078)
- addLiquidity(otherHalf,newBalance) (#1058)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1058)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#1058)
- _allowances[owner][spender] = amount (#990)
Reentrancy in Yooshi._transfer(address,address,uint256) (#994-1038):
External calls:
- swapAndLiquify(contractTokenBalance) (#1025)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1072-1078)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#1025)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1086-1093)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _liquidityFee = _previousLiquidityFee (#978)
- _liquidityFee = 0 (#972)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _poolFee = _previousPoolFee (#979)
- _poolFee = 0 (#973)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _previousLiquidityFee = _liquidityFee (#968)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _previousPoolFee = _poolFee (#969)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _previousTaxFee = _taxFee (#967)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _tFeeTotal = _tFeeTotal.add(tFee) (#944)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _tPoolTotal = _tPoolTotal.add(tPool) (#956)
- _tokenTransfer(from,to,amount,takeFee) (#1037)
- _taxFee = _previousTaxFee (#977)
- _taxFee = 0 (#971)
Apply the check-effects-interactions pattern.
Additional information: link
Yooshi._previousPoolFee (#790) is set pre-construction with a non-constant function or state variable:
- _poolFee
Yooshi._rTotal (#772) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
Yooshi._previousTaxFee (#784) is set pre-construction with a non-constant function or state variable:
- _taxFee
Yooshi._previousLiquidityFee (#787) 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.functionCallWithValue(address,bytes,uint256,string) (#505-512):
- (success,returndata) = target.call{value: value}(data) (#510)
Low level call in Address.sendValue(address,uint256) (#444-450):
- (success) = recipient.call{value: amount}() (#448)
Low level call in Address.functionDelegateCall(address,bytes,string) (#554-560):
- (success,returndata) = target.delegatecall(data) (#558)
Low level call in Address.functionStaticCall(address,bytes,string) (#530-536):
- (success,returndata) = target.staticcall(data) (#534)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Parameter Yooshi.setSwapAndLiquifyEnabled(bool)._enabled (#1253) is not in mixedCase
Variable Yooshi._maxTxAmount (#798) is not in mixedCase
Parameter Yooshi.calculateLiquidityFee(uint256)._amount (#1102) is not in mixedCase
Variable Yooshi._taxFee (#783) is not in mixedCase
Parameter Yooshi.calculateTaxFee(uint256)._amount (#1096) is not in mixedCase
Variable Yooshi._poolFee (#789) is not in mixedCase
Parameter Yooshi.setPoolAddr(address)._poolAddr (#1262) is not in mixedCase
Variable Yooshi._liquidityFee (#786) is not in mixedCase
Parameter Yooshi.setNumTokensSellToAddToLiquidity(uint256)._amount (#1258) is not in mixedCase
Function IUniswapV2Router01.WETH() (#589) is not in mixedCase
Parameter Yooshi.calculatePoolFee(uint256)._amount (#1108) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Yooshi.slitherConstructorVariables() (#757-1268) uses literals with too many digits:
- _maxTxAmount = 5000000 * 10 ** 6 * 10 ** 9 (#798)
Yooshi.slitherConstructorVariables() (#757-1268) uses literals with too many digits:
- _tTotal = 1000000000 * 10 ** 6 * 10 ** 9 (#771)
Yooshi.slitherConstructorVariables() (#757-1268) uses literals with too many digits:
- numTokensSellToAddToLiquidity = 500000 * 10 ** 6 * 10 ** 9 (#799)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Yooshi._approve(address,address,uint256).owner (#986) shadows:
- Ownable.owner() (#356-358) (function)
Yooshi.allowance(address,address).owner (#862) shadows:
- Ownable.owner() (#356-358) (function)
Rename the local variables that shadow another component.
Additional information: link
Yooshi._symbol (#780) should be constant
Yooshi._decimals (#781) should be constant
Yooshi._tTotal (#771) should be constant
Yooshi._name (#779) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
setNumTokensSellToAddToLiquidity(uint256) should be declared external:
- Yooshi.setNumTokensSellToAddToLiquidity(uint256) (#1258-1260)
isExcludedFromFee(address) should be declared external:
- Yooshi.isExcludedFromFee(address) (#982-984)
isExcludedFromReward(address) should be declared external:
- Yooshi.isExcludedFromReward(address) (#887-889)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#375-378)
setPoolAddr(address) should be declared external:
- Yooshi.setPoolAddr(address) (#1262-1266)
increaseAllowance(address,uint256) should be declared external:
- Yooshi.increaseAllowance(address,uint256) (#877-880)
totalSupply() should be declared external:
- Yooshi.totalSupply() (#848-850)
allowance(address,address) should be declared external:
- Yooshi.allowance(address,address) (#862-864)
decreaseAllowance(address,uint256) should be declared external:
- Yooshi.decreaseAllowance(address,uint256) (#882-885)
reflectionFromToken(uint256,bool) should be declared external:
- Yooshi.reflectionFromToken(uint256,bool) (#900-909)
transferFrom(address,address,uint256) should be declared external:
- Yooshi.transferFrom(address,address,uint256) (#871-875)
totalPools() should be declared external:
- Yooshi.totalPools() (#1223-1225)
excludeFromReward(address) should be declared external:
- Yooshi.excludeFromReward(address) (#917-924)
symbol() should be declared external:
- Yooshi.symbol() (#840-842)
excludeFromFee(address) should be declared external:
- Yooshi.excludeFromFee(address) (#1227-1229)
totalFees() should be declared external:
- Yooshi.totalFees() (#1219-1221)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#384-388)
includeInFee(address) should be declared external:
- Yooshi.includeInFee(address) (#1231-1233)
setSwapAndLiquifyEnabled(bool) should be declared external:
- Yooshi.setSwapAndLiquifyEnabled(bool) (#1253-1256)
approve(address,uint256) should be declared external:
- Yooshi.approve(address,uint256) (#866-869)
name() should be declared external:
- Yooshi.name() (#836-838)
deliver(uint256) should be declared external:
- Yooshi.deliver(uint256) (#891-898)
transfer(address,uint256) should be declared external:
- Yooshi.transfer(address,uint256) (#857-860)
decimals() should be declared external:
- Yooshi.decimals() (#844-846)
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 audit link on the website
Twitter account link seems to be invalid
Unable to find Youtube account