Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in GundamToken._transfer(address,address,uint256) (#660-674):
External calls:
- swapAndLiquify(swapThreshold,false) (#667)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
- _pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#621-628)
External calls sending eth:
- swapAndLiquify(swapThreshold,false) (#667)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#673)
- _rOwned[address(this)] = _rOwned[address(this)].add(rSecondary) (#577)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#703)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#696)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#720)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#712)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#697)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#705)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#713)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#722)
- _tokenTransfer(from,to,amount,takeFee) (#673)
- _rTotal = _rTotal.sub(rFee) (#573)
- _tokenTransfer(from,to,amount,takeFee) (#673)
- _tOwned[address(this)] = _tOwned[address(this)].add(tSecondary) (#579)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#719)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#711)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#704)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#721)
Reentrancy in GundamToken.ownerWithdrawDevelopmentBNB(uint256) (#831-836):
External calls:
- (sent) = msg.sender.call{value: (amountWei)}() (#833)
State variables written after the call(s):
- totalDevelopmentBNB -= amountWei (#835)
Reentrancy in GundamToken.ownerWithdrawMarketingBNB(uint256) (#825-830):
External calls:
- (sent) = msg.sender.call{value: (amountWei)}() (#827)
State variables written after the call(s):
- totalMarketingBNB -= amountWei (#829)
Apply the check-effects-interactions pattern.
Additional information: link
GundamToken.ownerWithdrawCakeLP(address) (#794-798) ignores return value by token.transfer(msg.sender,token.balanceOf(address(this))) (#797)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
GundamToken.totalCharityBNB (#415) is never initialized. It is used in:
- GundamToken.ownerFixStuckBNB() (#789-792)
GundamToken.totalProjectOperationBNB (#416) is never initialized. It is used in:
- GundamToken.ownerFixStuckBNB() (#789-792)
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
GundamToken.swapAndLiquify(uint8,bool).toSwap (#584) is written in both
toSwap = contractBalance (#594)
toSwap = liquidityBNBTokens + tokensLeft (#601)
Fix or remove the writes.
Additional information: link
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.
GundamToken.swapAndLiquify(uint8,bool) (#583-615) performs a multiplication on the result of a division:
-maxSwapSize = (2_500_000_000 * (10 ** _decimals)) / 100 (#588)
-totalLiquidityTokens = toSwap * _taxes.liquidityTax / 100 (#597)
-toSwap = maxSwapSize (#590)
Consider ordering multiplication before division.
Additional information: link
GundamToken.addLiquidity(uint256,uint256) (#631-643) ignores return value by _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
GundamToken._removeLiquidityPercent(uint8) (#644-657) ignores return value by lpToken.approve(address(_pancakeRouter),amount) (#647)
GundamToken._removeLiquidityPercent(uint8) (#644-657) ignores return value by _pancakeRouter.removeLiquidityETHSupportingFeeOnTransferTokens(address(this),amount,0,0,address(this),block.timestamp) (#648-656)
Ensure that all the return values of the function calls are used.
Additional information: link
GundamToken.allowance(address,address).owner (#480) shadows:
- Ownable.owner() (#182-184) (function)
GundamToken._approve(address,address,uint256).owner (#505) shadows:
- Ownable.owner() (#182-184) (function)
Rename the local variables that shadow another component.
Additional information: link
GundamToken.ownerWithdrawMarketingBNB(uint256) (#825-830) should emit an event for:
- totalMarketingBNB -= amountWei (#829)
GundamToken.ownerWithdrawDevelopmentBNB(uint256) (#831-836) should emit an event for:
- totalDevelopmentBNB -= amountWei (#835)
Emit an event for critical parameter changes.
Additional information: link
GundamToken.ownerUpdatePancakePair(address,address)._pancakePair (#810) lacks a zero-check on :
- _pancakePairAddress = _pancakePair (#811)
GundamToken.ownerUpdatePancakePair(address,address).pancakeRouter (#810) lacks a zero-check on :
- _pancakeRouterAddress = pancakeRouter (#812)
Check that the address is not zero.
Additional information: link
Reentrancy in GundamToken._transfer(address,address,uint256) (#660-674):
External calls:
- swapAndLiquify(swapThreshold,false) (#667)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
- _pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#621-628)
External calls sending eth:
- swapAndLiquify(swapThreshold,false) (#667)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#673)
- _previousReflectFee = _reflectFee (#562)
- _tokenTransfer(from,to,amount,takeFee) (#673)
- _previousSecondaryFee = _secondaryTax (#563)
- _tokenTransfer(from,to,amount,takeFee) (#673)
- _reflectFee = _previousReflectFee (#569)
- _reflectFee = 0 (#565)
- _tokenTransfer(from,to,amount,takeFee) (#673)
- _secondaryTax = _previousSecondaryFee (#570)
- _secondaryTax = 0 (#566)
- _tokenTransfer(from,to,amount,takeFee) (#673)
- _tFeeTotal = _tFeeTotal.add(tFee) (#574)
Reentrancy in GundamToken.constructor() (#440-454):
External calls:
- _pancakePairAddress = IPancakeFactory(_pancakeRouter.factory()).createPair(address(this),_pancakeRouter.WETH()) (#446)
State variables written after the call(s):
- _approve(address(this),address(_pancakeRouter),type()(uint256).max) (#447)
- _allowances[owner][spender] = amount (#509)
- excludeFromReward(address(_pancakePairAddress)) (#448)
- _excluded.push(account) (#759)
- excludeFromReward(address(burnWallet)) (#449)
- _excluded.push(account) (#759)
- excludeFromReward(address(this)) (#450)
- _excluded.push(account) (#759)
- excludeFromReward(address(_pancakePairAddress)) (#448)
- _isExcluded[account] = true (#758)
- excludeFromReward(address(burnWallet)) (#449)
- _isExcluded[account] = true (#758)
- excludeFromReward(address(this)) (#450)
- _isExcluded[account] = true (#758)
- _marketMakers[_pancakePairAddress] = true (#451)
- _rOwned[address(this)] = _rTotal (#452)
- excludeFromReward(address(_pancakePairAddress)) (#448)
- _tOwned[account] = tokenFromReflection(_rOwned[account]) (#756)
- excludeFromReward(address(burnWallet)) (#449)
- _tOwned[account] = tokenFromReflection(_rOwned[account]) (#756)
- excludeFromReward(address(this)) (#450)
- _tOwned[account] = tokenFromReflection(_rOwned[account]) (#756)
Reentrancy in GundamToken.swapAndLiquify(uint8,bool) (#583-615):
External calls:
- swapTokensForBNB(toSwap) (#603)
- _pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#621-628)
- addLiquidity(liquidityTokens,LPBNB) (#606)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
External calls sending eth:
- addLiquidity(liquidityTokens,LPBNB) (#606)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
State variables written after the call(s):
- totalDevelopmentBNB += developmentBNB (#612)
- totalMarketingBNB += marketingBNB (#611)
Reentrancy in GundamToken.transferFrom(address,address,uint256) (#487-491):
External calls:
- _transfer(sender,recipient,amount) (#488)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
- _pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#621-628)
External calls sending eth:
- _transfer(sender,recipient,amount) (#488)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,BEP20: transfer amount exceeds allowance)) (#489)
- _allowances[owner][spender] = amount (#509)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in GundamToken._transfer(address,address,uint256) (#660-674):
External calls:
- swapAndLiquify(swapThreshold,false) (#667)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
- _pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#621-628)
External calls sending eth:
- swapAndLiquify(swapThreshold,false) (#667)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#699)
- _tokenTransfer(from,to,amount,takeFee) (#673)
- Transfer(sender,recipient,tTransferAmount) (#715)
- _tokenTransfer(from,to,amount,takeFee) (#673)
- Transfer(sender,recipient,tTransferAmount) (#707)
- _tokenTransfer(from,to,amount,takeFee) (#673)
- Transfer(sender,recipient,tTransferAmount) (#724)
- _tokenTransfer(from,to,amount,takeFee) (#673)
Reentrancy in GundamToken.constructor() (#440-454):
External calls:
- _pancakePairAddress = IPancakeFactory(_pancakeRouter.factory()).createPair(address(this),_pancakeRouter.WETH()) (#446)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#510)
- _approve(address(this),address(_pancakeRouter),type()(uint256).max) (#447)
- Transfer(address(0),owner(),_tTotal) (#453)
Reentrancy in GundamToken.ownerTriggerSwap(uint8,bool) (#799-802):
External calls:
- swapAndLiquify(_swapThreshold,ignoreLimits) (#800)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
- _pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#621-628)
External calls sending eth:
- swapAndLiquify(_swapThreshold,ignoreLimits) (#800)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
Event emitted after the call(s):
- OwnerTriggerSwap(_swapThreshold,ignoreLimits) (#801)
Reentrancy in GundamToken.swapAndLiquify(uint8,bool) (#583-615):
External calls:
- swapTokensForBNB(toSwap) (#603)
- _pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#621-628)
- addLiquidity(liquidityTokens,LPBNB) (#606)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
External calls sending eth:
- addLiquidity(liquidityTokens,LPBNB) (#606)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
Event emitted after the call(s):
- SwapAndLiquify(liquidityTokens,LPBNB) (#614)
Reentrancy in GundamToken.transferFrom(address,address,uint256) (#487-491):
External calls:
- _transfer(sender,recipient,amount) (#488)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
- _pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#621-628)
External calls sending eth:
- _transfer(sender,recipient,amount) (#488)
- _pancakeRouter.addLiquidityETH{value: amountWei}(address(this),tokenAmount,0,0,address(this),block.timestamp) (#633-642)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#510)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,BEP20: transfer amount exceeds allowance)) (#489)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#94-101) uses assembly
- INLINE ASM (#99)
Address._functionCallWithValue(address,bytes,uint256,string) (#136-157) uses assembly
- INLINE ASM (#149-152)
Do not use evm assembly.
Additional information: link
GundamToken.includeInReward(address) (#761-772) has costly operations inside a loop:
- _excluded.pop() (#768)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#136-157) 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) (#122-124) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#126-128) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#131-134) is never used and should be removed
Address.isContract(address) (#94-101) is never used and should be removed
Address.sendValue(address,uint256) (#103-109) is never used and should be removed
Context._msgData() (#83-86) is never used and should be removed
GundamToken._removeLiquidityPercent(uint8) (#644-657) is never used and should be removed
SafeMath.mod(uint256,uint256) (#69-71) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#72-75) is never used and should be removed
Remove unused functions.
Additional information: link
GundamToken._tTotal (#405) is set pre-construction with a non-constant function or state variable:
- 2_500_000_000 * (10 ** _decimals)
GundamToken._rTotal (#406) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
GundamToken._previousReflectFee (#419) is set pre-construction with a non-constant function or state variable:
- _reflectFee
GundamToken._previousSecondaryFee (#421) is set pre-construction with a non-constant function or state variable:
- _secondaryTax
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) (#103-109):
- (success) = recipient.call{value: amount}() (#107)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#136-157):
- (success,returndata) = target.call{value: weiValue}(data) (#140)
Low level call in GundamToken.ownerWithdrawBNB() (#779-782):
- (success) = msg.sender.call{value: (address(this).balance)}() (#780)
Low level call in GundamToken.ownerWithdrawMarketingBNB(uint256) (#825-830):
- (sent) = msg.sender.call{value: (amountWei)}() (#827)
Low level call in GundamToken.ownerWithdrawDevelopmentBNB(uint256) (#831-836):
- (sent) = msg.sender.call{value: (amountWei)}() (#833)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IPancakeRouter01.WETH() (#298) is not in mixedCase
Function IPancakeBEP20.DOMAIN_SEPARATOR() (#356) is not in mixedCase
Function IPancakeBEP20.PERMIT_TYPEHASH() (#357) is not in mixedCase
Parameter GundamToken.calculateReflectFee(uint256)._amount (#549) is not in mixedCase
Parameter GundamToken.calculateSecondaryFee(uint256)._amount (#554) is not in mixedCase
Parameter GundamToken.swapAndLiquify(uint8,bool)._swapThreshold (#583) is not in mixedCase
Parameter GundamToken.ownerTriggerSwap(uint8,bool)._swapThreshold (#799) is not in mixedCase
Parameter GundamToken.ownerUpdatePancakePair(address,address)._pancakePair (#810) is not in mixedCase
Parameter GundamToken.ownerUpdateSwapThreshold(uint8)._swapThreshold (#820) is not in mixedCase
Variable GundamToken._reflectFee (#418) is not in mixedCase
Variable GundamToken._secondaryTax (#420) is not in mixedCase
Variable GundamToken._pancakeRouterAddress (#430) is not in mixedCase
Variable GundamToken._pancakePairAddress (#431) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#84)" inContext (#78-87)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable IPancakeRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#217) is too similar to IPancakeRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#218)
Variable GundamToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#529) is too similar to GundamToken._transferBothExcluded(address,address,uint256).tTransferAmount (#718)
Variable GundamToken._transferStandard(address,address,uint256).rTransferAmount (#695) is too similar to GundamToken._getValues(uint256).tTransferAmount (#515)
Variable GundamToken._transferBothExcluded(address,address,uint256).rTransferAmount (#718) is too similar to GundamToken._transferBothExcluded(address,address,uint256).tTransferAmount (#718)
Variable GundamToken._transferStandard(address,address,uint256).rTransferAmount (#695) is too similar to GundamToken._transferToExcluded(address,address,uint256).tTransferAmount (#702)
Variable GundamToken._transferToExcluded(address,address,uint256).rTransferAmount (#702) is too similar to GundamToken._transferBothExcluded(address,address,uint256).tTransferAmount (#718)
Variable GundamToken.reflectionFromToken(uint256,bool).rTransferAmount (#742) is too similar to GundamToken._getTValues(uint256).tTransferAmount (#522)
Variable GundamToken.reflectionFromToken(uint256,bool).rTransferAmount (#742) is too similar to GundamToken._transferBothExcluded(address,address,uint256).tTransferAmount (#718)
Variable GundamToken._transferFromExcluded(address,address,uint256).rTransferAmount (#710) is too similar to GundamToken._getValues(uint256).tTransferAmount (#515)
Variable GundamToken._transferFromExcluded(address,address,uint256).rTransferAmount (#710) is too similar to GundamToken._transferToExcluded(address,address,uint256).tTransferAmount (#702)
Variable GundamToken._transferStandard(address,address,uint256).rTransferAmount (#695) is too similar to GundamToken._transferBothExcluded(address,address,uint256).tTransferAmount (#718)
Variable GundamToken._transferStandard(address,address,uint256).rTransferAmount (#695) is too similar to GundamToken._getTValues(uint256).tTransferAmount (#522)
Variable GundamToken.reflectionFromToken(uint256,bool).rTransferAmount (#742) is too similar to GundamToken._transferStandard(address,address,uint256).tTransferAmount (#695)
Variable GundamToken._transferFromExcluded(address,address,uint256).rTransferAmount (#710) is too similar to GundamToken._transferBothExcluded(address,address,uint256).tTransferAmount (#718)
Variable GundamToken._transferToExcluded(address,address,uint256).rTransferAmount (#702) is too similar to GundamToken._getValues(uint256).tTransferAmount (#515)
Variable GundamToken._transferToExcluded(address,address,uint256).rTransferAmount (#702) is too similar to GundamToken._transferToExcluded(address,address,uint256).tTransferAmount (#702)
Variable GundamToken.reflectionFromToken(uint256,bool).rTransferAmount (#742) is too similar to GundamToken._getValues(uint256).tTransferAmount (#515)
Variable GundamToken.reflectionFromToken(uint256,bool).rTransferAmount (#742) is too similar to GundamToken._transferToExcluded(address,address,uint256).tTransferAmount (#702)
Variable GundamToken._getValues(uint256).rTransferAmount (#516) is too similar to GundamToken._transferBothExcluded(address,address,uint256).tTransferAmount (#718)
Variable GundamToken._transferStandard(address,address,uint256).rTransferAmount (#695) is too similar to GundamToken._transferStandard(address,address,uint256).tTransferAmount (#695)
Variable GundamToken._transferBothExcluded(address,address,uint256).rTransferAmount (#718) is too similar to GundamToken._getValues(uint256).tTransferAmount (#515)
Variable GundamToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#529) is too similar to GundamToken._getValues(uint256).tTransferAmount (#515)
Variable GundamToken._transferFromExcluded(address,address,uint256).rTransferAmount (#710) is too similar to GundamToken._transferStandard(address,address,uint256).tTransferAmount (#695)
Variable GundamToken._getValues(uint256).rTransferAmount (#516) is too similar to GundamToken._getValues(uint256).tTransferAmount (#515)
Variable GundamToken._transferBothExcluded(address,address,uint256).rTransferAmount (#718) is too similar to GundamToken._transferToExcluded(address,address,uint256).tTransferAmount (#702)
Variable GundamToken._transferBothExcluded(address,address,uint256).rTransferAmount (#718) is too similar to GundamToken._getTValues(uint256).tTransferAmount (#522)
Variable GundamToken._transferBothExcluded(address,address,uint256).rTransferAmount (#718) is too similar to GundamToken._transferFromExcluded(address,address,uint256).tTransferAmount (#710)
Variable GundamToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#529) is too similar to GundamToken._transferToExcluded(address,address,uint256).tTransferAmount (#702)
Variable GundamToken._transferToExcluded(address,address,uint256).rTransferAmount (#702) is too similar to GundamToken._transferStandard(address,address,uint256).tTransferAmount (#695)
Variable GundamToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#529) is too similar to GundamToken._getTValues(uint256).tTransferAmount (#522)
Variable GundamToken._getValues(uint256).rTransferAmount (#516) is too similar to GundamToken._transferToExcluded(address,address,uint256).tTransferAmount (#702)
Variable GundamToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#529) is too similar to GundamToken._transferFromExcluded(address,address,uint256).tTransferAmount (#710)
Variable GundamToken._getValues(uint256).rTransferAmount (#516) is too similar to GundamToken._getTValues(uint256).tTransferAmount (#522)
Variable GundamToken._getValues(uint256).rTransferAmount (#516) is too similar to GundamToken._transferFromExcluded(address,address,uint256).tTransferAmount (#710)
Variable GundamToken._transferBothExcluded(address,address,uint256).rTransferAmount (#718) is too similar to GundamToken._transferStandard(address,address,uint256).tTransferAmount (#695)
Variable GundamToken.reflectionFromToken(uint256,bool).rTransferAmount (#742) is too similar to GundamToken._transferFromExcluded(address,address,uint256).tTransferAmount (#710)
Variable GundamToken._transferFromExcluded(address,address,uint256).rTransferAmount (#710) is too similar to GundamToken._getTValues(uint256).tTransferAmount (#522)
Variable GundamToken._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#529) is too similar to GundamToken._transferStandard(address,address,uint256).tTransferAmount (#695)
Variable GundamToken._transferStandard(address,address,uint256).rTransferAmount (#695) is too similar to GundamToken._transferFromExcluded(address,address,uint256).tTransferAmount (#710)
Variable GundamToken._getValues(uint256).rTransferAmount (#516) is too similar to GundamToken._transferStandard(address,address,uint256).tTransferAmount (#695)
Variable GundamToken._transferFromExcluded(address,address,uint256).rTransferAmount (#710) is too similar to GundamToken._transferFromExcluded(address,address,uint256).tTransferAmount (#710)
Variable GundamToken._transferToExcluded(address,address,uint256).rTransferAmount (#702) is too similar to GundamToken._transferFromExcluded(address,address,uint256).tTransferAmount (#710)
Variable GundamToken._transferToExcluded(address,address,uint256).rTransferAmount (#702) is too similar to GundamToken._getTValues(uint256).tTransferAmount (#522)
Prevent variables from having similar names.
Additional information: link
GundamToken.slitherConstructorVariables() (#377-838) uses literals with too many digits:
- burnWallet = 0x000000000000000000000000000000000000dEaD (#409)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Ownable._previousOwner (#165) is never used in GundamToken (#377-838)
Ownable._lockTime (#166) is never used in GundamToken (#377-838)
Remove unused state variables.
Additional information: link
GundamToken._decimals (#403) should be constant
GundamToken._name (#401) should be constant
GundamToken._symbol (#402) should be constant
GundamToken.burnWallet (#409) should be constant
GundamToken.totalCharityBNB (#415) should be constant
GundamToken.totalProjectOperationBNB (#416) should be constant
Ownable._lockTime (#166) should be constant
Ownable._previousOwner (#165) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#193-196)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#202-206)
name() should be declared external:
- GundamToken.name() (#458-460)
symbol() should be declared external:
- GundamToken.symbol() (#461-463)
decimals() should be declared external:
- GundamToken.decimals() (#464-466)
totalSupply() should be declared external:
- GundamToken.totalSupply() (#467-469)
transfer(address,uint256) should be declared external:
- GundamToken.transfer(address,uint256) (#476-479)
allowance(address,address) should be declared external:
- GundamToken.allowance(address,address) (#480-482)
approve(address,uint256) should be declared external:
- GundamToken.approve(address,uint256) (#483-486)
transferFrom(address,address,uint256) should be declared external:
- GundamToken.transferFrom(address,address,uint256) (#487-491)
increaseAllowance(address,uint256) should be declared external:
- GundamToken.increaseAllowance(address,uint256) (#492-495)
decreaseAllowance(address,uint256) should be declared external:
- GundamToken.decreaseAllowance(address,uint256) (#496-499)
isExcludedFromReward(address) should be declared external:
- GundamToken.isExcludedFromReward(address) (#727-729)
totalFees() should be declared external:
- GundamToken.totalFees() (#730-732)
isExcludedFromFee(address) should be declared external:
- GundamToken.isExcludedFromFee(address) (#733-735)
reflectionFromToken(uint256,bool) should be declared external:
- GundamToken.reflectionFromToken(uint256,bool) (#736-745)
excludeFromFee(address,bool) should be declared external:
- GundamToken.excludeFromFee(address,bool) (#773-775)
ownerBlacklistAddress(address,bool) should be declared external:
- GundamToken.ownerBlacklistAddress(address,bool) (#776-778)
ownerWithdrawBNB() should be declared external:
- GundamToken.ownerWithdrawBNB() (#779-782)
ownerUpdateTaxes(uint8,uint8) should be declared external:
- GundamToken.ownerUpdateTaxes(uint8,uint8) (#783-788)
ownerFixStuckBNB() should be declared external:
- GundamToken.ownerFixStuckBNB() (#789-792)
ownerWithdrawCakeLP(address) should be declared external:
- GundamToken.ownerWithdrawCakeLP(address) (#794-798)
ownerTriggerSwap(uint8,bool) should be declared external:
- GundamToken.ownerTriggerSwap(uint8,bool) (#799-802)
ownerSwitchSwapAndLiquify(bool) should be declared external:
- GundamToken.ownerSwitchSwapAndLiquify(bool) (#803-806)
ownerUpdateAMM(address,bool) should be declared external:
- GundamToken.ownerUpdateAMM(address,bool) (#807-809)
ownerUpdatePancakePair(address,address) should be declared external:
- GundamToken.ownerUpdatePancakePair(address,address) (#810-813)
ownerUpdateSecondaryTaxes(uint8,uint8,uint8) should be declared external:
- GundamToken.ownerUpdateSecondaryTaxes(uint8,uint8,uint8) (#814-819)
ownerUpdateSwapThreshold(uint8) should be declared external:
- GundamToken.ownerUpdateSwapThreshold(uint8) (#820-824)
ownerWithdrawMarketingBNB(uint256) should be declared external:
- GundamToken.ownerWithdrawMarketingBNB(uint256) (#825-830)
ownerWithdrawDevelopmentBNB(uint256) should be declared external:
- GundamToken.ownerWithdrawDevelopmentBNB(uint256) (#831-836)
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