Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
FUCKTRUDEAUINU._addLiquidity(uint256,uint256) (#896-911) sends eth to arbitrary user
Dangerous calls:
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in FUCKTRUDEAUINU._beforeTokenTransfer(address) (#853-869):
External calls:
- swapBack() (#863)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#922-928)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
External calls sending eth:
- swapBack() (#863)
- recipient.transfer(amount) (#934)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
State variables written after the call(s):
- swapping = false (#865)
Reentrancy in FUCKTRUDEAUINU._transfer(address,address,uint256) (#815-851):
External calls:
- _beforeTokenTransfer(recipient) (#848)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#922-928)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
External calls sending eth:
- _beforeTokenTransfer(recipient) (#848)
- recipient.transfer(amount) (#934)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
State variables written after the call(s):
- _transferTokens(sender,recipient,amount,_isTakeFee) (#849)
- _balances[sender] = _balances[sender].sub(tAmount) (#800)
- _balances[recipient] = _balances[recipient].add(tAmount) (#763)
- _balances[recipient] = _balances[recipient].add(tTransferAmount) (#801)
- _transferTokens(sender,recipient,amount,_isTakeFee) (#849)
- _reflectedBalances[sender] = _reflectedBalances[sender].sub(rAmount) (#794)
- _reflectedBalances[recipient] = _reflectedBalances[recipient].add(rTransferAmount) (#795)
- _reflectedBalances[recipient] = _reflectedBalances[recipient].add(rAmount) (#761)
- _transferTokens(sender,recipient,amount,_isTakeFee) (#849)
- _reflectedSupply = _reflectedSupply.sub(rFee) (#601)
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.
FUCKTRUDEAUINU._getValues(uint256,uint256) (#554-564) performs a multiplication on the result of a division:
-tTotalFees = tAmount.mul(feesSum).div(FEES_DIVISOR) (#556)
-rTotalFees = tTotalFees.mul(currentRate) (#560)
FUCKTRUDEAUINU._redistribute(uint256,uint256,uint256) (#597-604) performs a multiplication on the result of a division:
-tFee = amount.mul(fee).div(FEES_DIVISOR) (#598)
-rFee = tFee.mul(currentRate) (#599)
FUCKTRUDEAUINU._burn(uint256,uint256,uint256) (#606-613) performs a multiplication on the result of a division:
-tBurn = amount.mul(fee).div(FEES_DIVISOR) (#607)
-rBurn = tBurn.mul(currentRate) (#608)
FUCKTRUDEAUINU._takeFee(uint256,uint256,uint256,address) (#757-766) performs a multiplication on the result of a division:
-tAmount = amount.mul(fee).div(FEES_DIVISOR) (#758)
-rAmount = tAmount.mul(currentRate) (#759)
FUCKTRUDEAUINU.swapBack() (#871-894) performs a multiplication on the result of a division:
-splitLiquidityPortion = lpPortionOfSwap.div(2) (#872)
-amountToLiquify = balanceOf(address(this)).mul(splitLiquidityPortion).div(FEES_DIVISOR) (#873)
FUCKTRUDEAUINU.swapBack() (#871-894) performs a multiplication on the result of a division:
-splitLiquidityPortion = lpPortionOfSwap.div(2) (#872)
-amountBNBLiquidity = amountBNB.mul(splitLiquidityPortion).div(FEES_DIVISOR) (#885)
Consider ordering multiplication before division.
Additional information: link
FUCKTRUDEAUINU.allowance(address,address).owner (#424) shadows:
- Ownable.owner() (#196-198) (function)
FUCKTRUDEAUINU._approve(address,address,uint256).owner (#489) shadows:
- Ownable.owner() (#196-198) (function)
Rename the local variables that shadow another component.
Additional information: link
FUCKTRUDEAUINU.updateSwapTokensAt(uint256) (#661-663) should emit an event for:
- swapTokensAtAmount = _swaptokens * (10 ** 18) (#662)
FUCKTRUDEAUINU.updateWalletMax(uint256) (#665-667) should emit an event for:
- maxWalletBalance = _walletMax * (10 ** 18) (#666)
FUCKTRUDEAUINU.updateTransactionMax(uint256) (#669-671) should emit an event for:
- maxTxAmount = _txMax * (10 ** 18) (#670)
FUCKTRUDEAUINU.updateRfiFee(uint256) (#677-680) should emit an event for:
- rfiFee = newFee (#678)
FUCKTRUDEAUINU.updateMarketingFee(uint256) (#682-685) should emit an event for:
- marketingFee = newFee (#683)
FUCKTRUDEAUINU.updateDevFee(uint256) (#687-690) should emit an event for:
- devFee = newFee (#688)
FUCKTRUDEAUINU.updateTeamFee(uint256) (#692-695) should emit an event for:
- teamFee = newFee (#693)
FUCKTRUDEAUINU.updateLpFee(uint256) (#697-700) should emit an event for:
- lpFee = newFee (#698)
FUCKTRUDEAUINU.updatePortionsOfSwap(uint256,uint256,uint256,uint256) (#723-733) should emit an event for:
- marketingPortionOfSwap = marketingPortion (#729)
- devPortionOfSwap = devPortion (#730)
- lpPortionOfSwap = lpPortion (#731)
- teamPortionOfSwap = teamPortion (#732)
FUCKTRUDEAUINU.setFeesDivisor(uint256) (#735-737) should emit an event for:
- FEES_DIVISOR = divisor (#736)
Emit an event for critical parameter changes.
Additional information: link
FUCKTRUDEAUINU.whitelistDxSale(address,address)._presaleAddress (#627) lacks a zero-check on :
- presaleAddress = _presaleAddress (#628)
Check that the address is not zero.
Additional information: link
Reentrancy in FUCKTRUDEAUINU._transfer(address,address,uint256) (#815-851):
External calls:
- _beforeTokenTransfer(recipient) (#848)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#922-928)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
External calls sending eth:
- _beforeTokenTransfer(recipient) (#848)
- recipient.transfer(amount) (#934)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
State variables written after the call(s):
- _transferTokens(sender,recipient,amount,_isTakeFee) (#849)
- collectedFeeTotal = collectedFeeTotal.add(tFee) (#603)
- collectedFeeTotal = collectedFeeTotal.add(tAmount) (#765)
Reentrancy in FUCKTRUDEAUINU.constructor() (#372-394):
External calls:
- pair = IPancakeV2Factory(_newPancakeRouter.factory()).createPair(address(this),_newPancakeRouter.WETH()) (#376)
State variables written after the call(s):
- _approve(owner(),address(router),~ uint256(0)) (#391)
- _allowances[owner][spender] = amount (#493)
- _exclude(owner()) (#384)
- _balances[account] = tokenFromReflection(_reflectedBalances[account]) (#531)
- _exclude(address(this)) (#385)
- _balances[account] = tokenFromReflection(_reflectedBalances[account]) (#531)
- _exclude(pair) (#388)
- _balances[account] = tokenFromReflection(_reflectedBalances[account]) (#531)
- _exclude(deadAddress) (#389)
- _balances[account] = tokenFromReflection(_reflectedBalances[account]) (#531)
- _exclude(owner()) (#384)
- _excluded.push(account) (#534)
- _exclude(address(this)) (#385)
- _excluded.push(account) (#534)
- _exclude(pair) (#388)
- _excluded.push(account) (#534)
- _exclude(deadAddress) (#389)
- _excluded.push(account) (#534)
- _isExcludedFromFee[owner()] = true (#380)
- _isExcludedFromFee[address(this)] = true (#381)
- _exclude(owner()) (#384)
- _isExcludedFromRewards[account] = true (#533)
- _exclude(address(this)) (#385)
- _isExcludedFromRewards[account] = true (#533)
- _exclude(pair) (#388)
- _isExcludedFromRewards[account] = true (#533)
- _exclude(deadAddress) (#389)
- _isExcludedFromRewards[account] = true (#533)
- router = _newPancakeRouter (#377)
Reentrancy in FUCKTRUDEAUINU.swapBack() (#871-894):
External calls:
- swapTokensForETH(amountToSwap) (#878)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#922-928)
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
External calls sending eth:
- transferToAddress(address(marketingWallet),amountBNBMarketing) (#888)
- recipient.transfer(amount) (#934)
- transferToAddress(address(devWallet),amountBNBDev) (#889)
- recipient.transfer(amount) (#934)
- transferToAddress(address(teamWallet),amountBNBTeam) (#890)
- recipient.transfer(amount) (#934)
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
State variables written after the call(s):
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
- _allowances[owner][spender] = amount (#493)
Reentrancy in FUCKTRUDEAUINU.transferFrom(address,address,uint256) (#433-437):
External calls:
- _transfer(sender,recipient,amount) (#434)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#922-928)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
External calls sending eth:
- _transfer(sender,recipient,amount) (#434)
- recipient.transfer(amount) (#934)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#435)
- _allowances[owner][spender] = amount (#493)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in FUCKTRUDEAUINU._addLiquidity(uint256,uint256) (#896-911):
External calls:
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
Event emitted after the call(s):
- LiquidityAdded(tokenAmountSent,ethAmountSent,liquidity) (#910)
Reentrancy in FUCKTRUDEAUINU._transfer(address,address,uint256) (#815-851):
External calls:
- _beforeTokenTransfer(recipient) (#848)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#922-928)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
External calls sending eth:
- _beforeTokenTransfer(recipient) (#848)
- recipient.transfer(amount) (#934)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#788)
- _transferTokens(sender,recipient,amount,_isTakeFee) (#849)
Reentrancy in FUCKTRUDEAUINU.constructor() (#372-394):
External calls:
- pair = IPancakeV2Factory(_newPancakeRouter.factory()).createPair(address(this),_newPancakeRouter.WETH()) (#376)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#494)
- _approve(owner(),address(router),~ uint256(0)) (#391)
- Transfer(address(0),owner(),_totalSupply) (#393)
Reentrancy in FUCKTRUDEAUINU.swapBack() (#871-894):
External calls:
- swapTokensForETH(amountToSwap) (#878)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#922-928)
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
External calls sending eth:
- transferToAddress(address(marketingWallet),amountBNBMarketing) (#888)
- recipient.transfer(amount) (#934)
- transferToAddress(address(devWallet),amountBNBDev) (#889)
- recipient.transfer(amount) (#934)
- transferToAddress(address(teamWallet),amountBNBTeam) (#890)
- recipient.transfer(amount) (#934)
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#494)
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
- LiquidityAdded(tokenAmountSent,ethAmountSent,liquidity) (#910)
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
Reentrancy in FUCKTRUDEAUINU.swapTokensForETH(uint256) (#913-931):
External calls:
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#922-928)
Event emitted after the call(s):
- SwapTokensForETH(tokenAmount,path) (#930)
Reentrancy in FUCKTRUDEAUINU.transferFrom(address,address,uint256) (#433-437):
External calls:
- _transfer(sender,recipient,amount) (#434)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#922-928)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
External calls sending eth:
- _transfer(sender,recipient,amount) (#434)
- recipient.transfer(amount) (#934)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#494)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#435)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable.unlock() (#231-236) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is locked until 7 days) (#233)
FUCKTRUDEAUINU._transferTokens(address,address,uint256,bool) (#768-777) uses timestamp for comparisons
Dangerous comparisons:
- antiBotEnabled && block.timestamp <= _startTimeForSwap (#771)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#130-132) uses assembly
- INLINE ASM (#131)
Address._verifyCallResult(bool,bytes,string) (#171-180) uses assembly
- INLINE ASM (#174-177)
Do not use evm assembly.
Additional information: link
FUCKTRUDEAUINU.includeInReward(address) (#537-548) has costly operations inside a loop:
- _excluded.pop() (#544)
Use a local variable to hold the loop computation result.
Additional information: link
Address._verifyCallResult(bool,bytes,string) (#171-180) is never used and should be removed
Address.functionCall(address,bytes) (#137-140) is never used and should be removed
Address.functionCall(address,bytes,string) (#141-144) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#145-148) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#149-154) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#163-165) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#166-170) is never used and should be removed
Address.functionStaticCall(address,bytes) (#155-157) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#158-162) is never used and should be removed
Address.isContract(address) (#130-132) is never used and should be removed
Address.sendValue(address,uint256) (#133-136) is never used and should be removed
Context._msgData() (#126) is never used and should be removed
FUCKTRUDEAUINU._burn(uint256,uint256,uint256) (#606-613) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#88-95) is never used and should be removed
SafeMath.mod(uint256,uint256) (#72-75) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#97-104) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#19-23) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#38-41) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#43-46) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#30-35) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#25-28) is never used and should be removed
Remove unused functions.
Additional information: link
FUCKTRUDEAUINU.totalFee (#335) is set pre-construction with a non-constant function or state variable:
- rfiFee.add(marketingFee).add(devFee).add(teamFee).add(lpFee)
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) (#133-136):
- (success) = recipient.call{value: amount}() (#134)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#149-154):
- (success,returndata) = target.call{value: value}(data) (#152)
Low level call in Address.functionStaticCall(address,bytes,string) (#158-162):
- (success,returndata) = target.staticcall(data) (#160)
Low level call in Address.functionDelegateCall(address,bytes,string) (#166-170):
- (success,returndata) = target.delegatecall(data) (#168)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IPancakeV2Router.WETH() (#246) is not in mixedCase
Parameter FUCKTRUDEAUINU.whitelistDxSale(address,address)._presaleAddress (#627) is not in mixedCase
Parameter FUCKTRUDEAUINU.whitelistDxSale(address,address)._routerAddress (#627) is not in mixedCase
Parameter FUCKTRUDEAUINU.setSwapEnabled(bool)._enabled (#657) is not in mixedCase
Parameter FUCKTRUDEAUINU.updateSwapTokensAt(uint256)._swaptokens (#661) is not in mixedCase
Parameter FUCKTRUDEAUINU.updateWalletMax(uint256)._walletMax (#665) is not in mixedCase
Parameter FUCKTRUDEAUINU.updateTransactionMax(uint256)._txMax (#669) is not in mixedCase
Function FUCKTRUDEAUINU.TransferETH(address,uint256) (#937-940) is not in mixedCase
Constant FUCKTRUDEAUINU._name (#303) is not in UPPER_CASE_WITH_UNDERSCORES
Constant FUCKTRUDEAUINU._symbol (#304) is not in UPPER_CASE_WITH_UNDERSCORES
Constant FUCKTRUDEAUINU._decimals (#305) is not in UPPER_CASE_WITH_UNDERSCORES
Constant FUCKTRUDEAUINU._totalSupply (#308) is not in UPPER_CASE_WITH_UNDERSCORES
Variable FUCKTRUDEAUINU._reflectedSupply (#309) is not in mixedCase
Variable FUCKTRUDEAUINU._startTimeForSwap (#326) is not in mixedCase
Variable FUCKTRUDEAUINU.FEES_DIVISOR (#328) is not in mixedCase
Variable FUCKTRUDEAUINU._reflectedBalances (#347) is not in mixedCase
Variable FUCKTRUDEAUINU._balances (#348) is not in mixedCase
Variable FUCKTRUDEAUINU._allowances (#349) is not in mixedCase
Variable FUCKTRUDEAUINU._isBlacklisted (#351) is not in mixedCase
Variable FUCKTRUDEAUINU._isExcludedFromFee (#353) is not in mixedCase
Variable FUCKTRUDEAUINU._isExcludedFromRewards (#354) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#126)" inContext (#124-127)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in FUCKTRUDEAUINU._beforeTokenTransfer(address) (#853-869):
External calls:
- swapBack() (#863)
- recipient.transfer(amount) (#934)
External calls sending eth:
- swapBack() (#863)
- recipient.transfer(amount) (#934)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
State variables written after the call(s):
- swapping = false (#865)
Reentrancy in FUCKTRUDEAUINU._transfer(address,address,uint256) (#815-851):
External calls:
- _beforeTokenTransfer(recipient) (#848)
- recipient.transfer(amount) (#934)
External calls sending eth:
- _beforeTokenTransfer(recipient) (#848)
- recipient.transfer(amount) (#934)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
State variables written after the call(s):
- _transferTokens(sender,recipient,amount,_isTakeFee) (#849)
- _balances[sender] = _balances[sender].sub(tAmount) (#800)
- _balances[recipient] = _balances[recipient].add(tAmount) (#763)
- _balances[recipient] = _balances[recipient].add(tTransferAmount) (#801)
- _transferTokens(sender,recipient,amount,_isTakeFee) (#849)
- _reflectedBalances[sender] = _reflectedBalances[sender].sub(rAmount) (#794)
- _reflectedBalances[recipient] = _reflectedBalances[recipient].add(rTransferAmount) (#795)
- _reflectedBalances[recipient] = _reflectedBalances[recipient].add(rAmount) (#761)
- _transferTokens(sender,recipient,amount,_isTakeFee) (#849)
- _reflectedSupply = _reflectedSupply.sub(rFee) (#601)
- _transferTokens(sender,recipient,amount,_isTakeFee) (#849)
- collectedFeeTotal = collectedFeeTotal.add(tFee) (#603)
- collectedFeeTotal = collectedFeeTotal.add(tAmount) (#765)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#788)
- _transferTokens(sender,recipient,amount,_isTakeFee) (#849)
Reentrancy in FUCKTRUDEAUINU.swapBack() (#871-894):
External calls:
- transferToAddress(address(marketingWallet),amountBNBMarketing) (#888)
- recipient.transfer(amount) (#934)
- transferToAddress(address(devWallet),amountBNBDev) (#889)
- recipient.transfer(amount) (#934)
- transferToAddress(address(teamWallet),amountBNBTeam) (#890)
- recipient.transfer(amount) (#934)
External calls sending eth:
- transferToAddress(address(marketingWallet),amountBNBMarketing) (#888)
- recipient.transfer(amount) (#934)
- transferToAddress(address(devWallet),amountBNBDev) (#889)
- recipient.transfer(amount) (#934)
- transferToAddress(address(teamWallet),amountBNBTeam) (#890)
- recipient.transfer(amount) (#934)
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
State variables written after the call(s):
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
- _allowances[owner][spender] = amount (#493)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#494)
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
- LiquidityAdded(tokenAmountSent,ethAmountSent,liquidity) (#910)
- _addLiquidity(amountToLiquify,amountBNBLiquidity) (#893)
Reentrancy in FUCKTRUDEAUINU.transferFrom(address,address,uint256) (#433-437):
External calls:
- _transfer(sender,recipient,amount) (#434)
- recipient.transfer(amount) (#934)
External calls sending eth:
- _transfer(sender,recipient,amount) (#434)
- recipient.transfer(amount) (#934)
- (tokenAmountSent,ethAmountSent,liquidity) = router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#901-908)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#435)
- _allowances[owner][spender] = amount (#493)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#494)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#435)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IPancakeV2Router.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#251) is too similar to IPancakeV2Router.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#252)
Variable FUCKTRUDEAUINU.theReflection(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#791) is too similar to FUCKTRUDEAUINU.theReflection(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#792)
Variable FUCKTRUDEAUINU.processReflectedBal(address,address,uint256,uint256).rTransferAmount (#781) is too similar to FUCKTRUDEAUINU.theReflection(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#792)
Variable FUCKTRUDEAUINU.theReflection(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#791) is too similar to FUCKTRUDEAUINU._getValues(uint256,uint256).tTransferAmount (#557)
Variable FUCKTRUDEAUINU.processReflectedBal(address,address,uint256,uint256).rTransferAmount (#781) is too similar to FUCKTRUDEAUINU._getValues(uint256,uint256).tTransferAmount (#557)
Variable FUCKTRUDEAUINU.processReflectedBal(address,address,uint256,uint256).rTransferAmount (#781) is too similar to FUCKTRUDEAUINU.processReflectedBal(address,address,uint256,uint256).tTransferAmount (#782)
Variable FUCKTRUDEAUINU._getValues(uint256,uint256).rTransferAmount (#561) is too similar to FUCKTRUDEAUINU.theReflection(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#792)
Variable FUCKTRUDEAUINU.reflectionFromToken(uint256,bool).rTransferAmount (#510) is too similar to FUCKTRUDEAUINU._getValues(uint256,uint256).tTransferAmount (#557)
Variable FUCKTRUDEAUINU._getValues(uint256,uint256).rTransferAmount (#561) is too similar to FUCKTRUDEAUINU._getValues(uint256,uint256).tTransferAmount (#557)
Variable FUCKTRUDEAUINU.theReflection(address,address,uint256,uint256,uint256,uint256).rTransferAmount (#791) is too similar to FUCKTRUDEAUINU.processReflectedBal(address,address,uint256,uint256).tTransferAmount (#782)
Variable FUCKTRUDEAUINU.reflectionFromToken(uint256,bool).rTransferAmount (#510) is too similar to FUCKTRUDEAUINU.processReflectedBal(address,address,uint256,uint256).tTransferAmount (#782)
Variable FUCKTRUDEAUINU.reflectionFromToken(uint256,bool).rTransferAmount (#510) is too similar to FUCKTRUDEAUINU.theReflection(address,address,uint256,uint256,uint256,uint256).tTransferAmount (#792)
Variable FUCKTRUDEAUINU._getValues(uint256,uint256).rTransferAmount (#561) is too similar to FUCKTRUDEAUINU.processReflectedBal(address,address,uint256,uint256).tTransferAmount (#782)
Prevent variables from having similar names.
Additional information: link
FUCKTRUDEAUINU.slitherConstructorVariables() (#292-943) uses literals with too many digits:
- deadAddress = 0x000000000000000000000000000000000000dEaD (#296)
FUCKTRUDEAUINU.slitherConstructorVariables() (#292-943) uses literals with too many digits:
- swapTokensAtAmount = 10000000 * (10 ** 18) (#322)
FUCKTRUDEAUINU.slitherConstructorConstantVariables() (#292-943) uses literals with too many digits:
- _totalSupply = 1000000000000 * (10 ** 18) (#308)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
FUCKTRUDEAUINU.antiBotFee (#325) should be constant
FUCKTRUDEAUINU.deadAddress (#296) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#205-208)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#210-214)
getUnlockTime() should be declared external:
- Ownable.getUnlockTime() (#216-218)
getTime() should be declared external:
- Ownable.getTime() (#220-222)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#224-229)
unlock() should be declared external:
- Ownable.unlock() (#231-236)
increaseAllowance(address,uint256) should be declared external:
- FUCKTRUDEAUINU.increaseAllowance(address,uint256) (#479-482)
decreaseAllowance(address,uint256) should be declared external:
- FUCKTRUDEAUINU.decreaseAllowance(address,uint256) (#484-487)
isExcludedFromFee(address) should be declared external:
- FUCKTRUDEAUINU.isExcludedFromFee(address) (#623-625)
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