DADDY DOLLAR ($DAD) is a new token in the Binance Smart Chain network, which allows each holder to receive permanent passive earnings, paid in $USDT. Simply hold $DAD tokens and get rewarded in USDT on every transaction! 💰 KYC ✅ Audited ✅ Experienced Team ✅ Safe Contract ✅Liquidity locked for 365 days ✅Autoclaim 🔥 Autoburn ✅DADDY’s Staking Pool ✅ Team token locked and vesting 🔥 Join TG to get to know about upcoming Airdrop and Whitelist spot!!
DaddyDollar._totalSupply (#720) shadows:
- BEP20._totalSupply (#170)
Remove the state variable shadowing.
Additional information: link
DaddyDollar.swapAndLiquify(uint256) (#1094-1113) sends eth to arbitrary user
Dangerous calls:
- _marketingWalletAddress.transfer(bnbForMarketing) (#1111)
DaddyDollar.addLiquidity(uint256,uint256) (#1151-1166) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in DaddyDollar._transfer(address,address,uint256) (#1002-1080):
External calls:
- swapAndLiquify(swapTokens) (#1026)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1124-1130)
- swapAndSendDividends(sellTokens) (#1029)
- success = IBEP20(USDT).transfer(address(dividendTracker),dividends) (#1171)
- dividendTracker.distributeUSDTDividends(dividends) (#1174)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1142-1148)
External calls sending eth:
- swapAndLiquify(swapTokens) (#1026)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
- _marketingWalletAddress.transfer(bnbForMarketing) (#1111)
- _developerWalletAddress.transfer(bnbForDeveloper) (#1112)
State variables written after the call(s):
- super._transfer(from,address(this),fees) (#1049)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#260)
- _balances[recipient] = _balances[recipient].add(amount) (#261)
- super._transfer(from,deadWallet,burnTokens) (#1050)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#260)
- _balances[recipient] = _balances[recipient].add(amount) (#261)
- super._transfer(from,address(this),fees_scope_0) (#1059)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#260)
- _balances[recipient] = _balances[recipient].add(amount) (#261)
- super._transfer(from,deadWallet,burnTokens_scope_1) (#1060)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#260)
- _balances[recipient] = _balances[recipient].add(amount) (#261)
- super._transfer(from,to,amount) (#1066)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#260)
- _balances[recipient] = _balances[recipient].add(amount) (#261)
- swapping = false (#1030)
Apply the check-effects-interactions pattern.
Additional information: link
DaddyDollar.swapAndSendToFee(uint256) (#1083-1091) ignores return value by IBEP20(USDT).transfer(_marketingWalletAddress,marketingShare) (#1089)
DaddyDollar.swapAndSendToFee(uint256) (#1083-1091) ignores return value by IBEP20(USDT).transfer(_developerWalletAddress,newBalance.sub(marketingShare)) (#1090)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Too many vulnerabilities (Unchecked transfer, Reentrancy vulnerability, etc.). High risk of a scam. DYOR & manual audit are advised.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
Combination 1: Reentrancy vulnerabilities + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 2: Unchecked transfer + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 3: Reentrancy vulnerabilities + Unchecked transfer vulnerability. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Redundant expression "this (#28)" inContext (#22-31)
Remove redundant statements if they congest code but offer no value.
Additional information: link
SafeMathInt.MAX_INT256 (#121) is never used in SafeMathInt (#119-155)
Remove unused state variables.
Additional information: link
DaddyDollar.swapAndSendToFee(uint256) (#1083-1091) performs a multiplication on the result of a division:
-marketingShare = newBalance.div(marketingFee + developerFee).mul(marketingFee) (#1088)
DaddyDollar.slitherConstructorVariables() (#706-1221) performs a multiplication on the result of a division:
-_walletMaxHoldingLimit = _totalSupply.div(100).mul(2) (#1191)
Consider ordering multiplication before division.
Additional information: link
Reentrancy in DividendPayingToken._withdrawDividendOfUser(address) (#364-380):
External calls:
- success = IBEP20(USDT).transfer(user,_withdrawableDividend) (#369)
State variables written after the call(s):
- withdrawnDividends[user] = withdrawnDividends[user].sub(_withdrawableDividend) (#372)
Reentrancy in DaddyDollar.updateDividendTracker(address) (#826-837):
External calls:
- newDividendTracker.excludeFromDividends(address(newDividendTracker)) (#831)
- newDividendTracker.excludeFromDividends(address(this)) (#832)
- newDividendTracker.excludeFromDividends(owner()) (#833)
- newDividendTracker.excludeFromDividends(address(uniswapV2Router)) (#834)
State variables written after the call(s):
- dividendTracker = newDividendTracker (#836)
Apply the check-effects-interactions pattern.
Additional information: link
DaddyDollar._transfer(address,address,uint256).lastProcessedIndex (#1073) is a local variable never initialized
DaddyDollar._transfer(address,address,uint256).iterations (#1073) is a local variable never initialized
DaddyDollar._transfer(address,address,uint256).claims (#1073) is a local variable never initialized
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
DaddyDollar.claim() (#984-986) ignores return value by dividendTracker.processAccount(address(msg.sender),false) (#985)
DaddyDollar._transfer(address,address,uint256) (#1002-1080) ignores return value by dividendTracker.process(gas) (#1073-1078)
DaddyDollar.addLiquidity(uint256,uint256) (#1151-1166) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
Ensure that all the return values of the function calls are used.
Additional information: link
DividendPayingToken.constructor(string,string)._name (#341) shadows:
- BEP20._name (#171) (state variable)
DividendPayingToken.constructor(string,string)._symbol (#341) shadows:
- BEP20._symbol (#172) (state variable)
DividendPayingToken.dividendOf(address)._owner (#383) shadows:
- Ownable._owner (#34) (state variable)
DividendPayingToken.withdrawableDividendOf(address)._owner (#388) shadows:
- Ownable._owner (#34) (state variable)
DividendPayingToken.withdrawnDividendOf(address)._owner (#392) shadows:
- Ownable._owner (#34) (state variable)
DividendPayingToken.accumulativeDividendOf(address)._owner (#396) shadows:
- Ownable._owner (#34) (state variable)
Rename the local variables that shadow another component.
Additional information: link
DaddyDollar.setExtraSaleFee(uint256) (#819-823) should emit an event for:
- extraSaleFee = _percentage (#822)
DaddyDollar.setUSDTRewardsFee(uint256) (#865-869) should emit an event for:
- USDTRewardsFee = value (#866)
- totalFees = USDTRewardsFee.add(liquidityFee).add(marketingFee).add(developerFee) (#867)
DaddyDollar.setLiquiditFee(uint256) (#871-875) should emit an event for:
- liquidityFee = value (#872)
- totalFees = USDTRewardsFee.add(liquidityFee).add(marketingFee).add(developerFee) (#873)
DaddyDollar.setMarketingFee(uint256) (#877-881) should emit an event for:
- marketingFee = value (#878)
- totalFees = USDTRewardsFee.add(liquidityFee).add(marketingFee).add(developerFee) (#879)
DaddyDollar.setDeveloperFee(uint256) (#883-887) should emit an event for:
- developerFee = value (#884)
- totalFees = USDTRewardsFee.add(liquidityFee).add(marketingFee).add(developerFee) (#885)
DaddyDollar.setBurnFee(uint256) (#890-893) should emit an event for:
- burnFee = value (#891)
DaddyDollar.setSwapTokensAtAmount(uint256) (#928-931) should emit an event for:
- swapTokensAtAmount = _value (#930)
Emit an event for critical parameter changes.
Additional information: link
DaddyDollar.updateUniswapV2Router(address)._uniswapV2Pair (#843-844) lacks a zero-check on :
- uniswapV2Pair = _uniswapV2Pair (#845)
DaddyDollar.setMarketingWallet(address).wallet (#861) lacks a zero-check on :
- _marketingWalletAddress = wallet (#862)
Check that the address is not zero.
Additional information: link
DividendPayingToken._withdrawDividendOfUser(address) (#364-380) has external calls inside a loop: success = IBEP20(USDT).transfer(user,_withdrawableDividend) (#369)
Favor pull over push strategy for external calls.
Additional information: link
Variable 'DaddyDollar._transfer(address,address,uint256).claims (#1073)' in DaddyDollar._transfer(address,address,uint256) (#1002-1080) potentially used before declaration: ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1074)
Variable 'DaddyDollar._transfer(address,address,uint256).iterations (#1073)' in DaddyDollar._transfer(address,address,uint256) (#1002-1080) potentially used before declaration: ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1074)
Variable 'DaddyDollar._transfer(address,address,uint256).lastProcessedIndex (#1073)' in DaddyDollar._transfer(address,address,uint256) (#1002-1080) potentially used before declaration: ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1074)
Move all variable declarations prior to any usage of the variable, and ensure that reaching a variable declaration does not depend on some conditional if it is used unconditionally.
Additional information: link
Reentrancy in DaddyDollar._transfer(address,address,uint256) (#1002-1080):
External calls:
- swapAndLiquify(swapTokens) (#1026)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1124-1130)
- swapAndSendDividends(sellTokens) (#1029)
- success = IBEP20(USDT).transfer(address(dividendTracker),dividends) (#1171)
- dividendTracker.distributeUSDTDividends(dividends) (#1174)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1142-1148)
External calls sending eth:
- swapAndLiquify(swapTokens) (#1026)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
- _marketingWalletAddress.transfer(bnbForMarketing) (#1111)
- _developerWalletAddress.transfer(bnbForDeveloper) (#1112)
State variables written after the call(s):
- swapAndSendDividends(sellTokens) (#1029)
- _allowances[owner][spender] = amount (#296)
Reentrancy in DaddyDollar.constructor() (#751-779):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#756-757)
State variables written after the call(s):
- uniswapV2Pair = _uniswapV2Pair (#759)
- uniswapV2Router = _uniswapV2Router (#758)
Reentrancy in DaddyDollar.constructor() (#751-779):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#756-757)
- _setAutomatedMarketMakerPair(_uniswapV2Pair,true) (#760)
- dividendTracker.excludeFromDividends(pair) (#906)
- dividendTracker.excludeFromDividends(address(dividendTracker)) (#762)
- dividendTracker.excludeFromDividends(address(this)) (#763)
- dividendTracker.excludeFromDividends(deadWallet) (#764)
- dividendTracker.excludeFromDividends(address(_uniswapV2Router)) (#765)
State variables written after the call(s):
- _mint(owner(),_totalSupply) (#778)
- _balances[account] = _balances[account].add(amount) (#272)
- excludeFromFees(owner(),true) (#767)
- _isExcludedFromFees[account] = excluded (#850)
- excludeFromFees(_marketingWalletAddress,true) (#768)
- _isExcludedFromFees[account] = excluded (#850)
- excludeFromFees(_developerWalletAddress,true) (#769)
- _isExcludedFromFees[account] = excluded (#850)
- excludeFromFees(address(this),true) (#770)
- _isExcludedFromFees[account] = excluded (#850)
- excludeWalletsFromWhales() (#772)
- _isExcludedFromWhale[owner()] = true (#1195)
- _isExcludedFromWhale[address(this)] = true (#1196)
- _isExcludedFromWhale[address(0)] = true (#1197)
- _isExcludedFromWhale[uniswapV2Pair] = true (#1198)
- _mint(owner(),_totalSupply) (#778)
- _totalSupply = _totalSupply.add(amount) (#271)
Reentrancy in DaddyDollarDividendTracker.processAccount(address,bool) (#1423-1433):
External calls:
- amount = _withdrawDividendOfUser(account) (#1424)
- success = IBEP20(USDT).transfer(user,_withdrawableDividend) (#369)
State variables written after the call(s):
- lastClaimTimes[account] = block.timestamp (#1427)
Reentrancy in DaddyDollar.swapAndLiquify(uint256) (#1094-1113):
External calls:
- swapTokensForEth(swapableTokens) (#1100)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1124-1130)
- addLiquidity(halfLiquidityTokens,bnbForLiquidity) (#1105)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
External calls sending eth:
- addLiquidity(halfLiquidityTokens,bnbForLiquidity) (#1105)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
State variables written after the call(s):
- addLiquidity(halfLiquidityTokens,bnbForLiquidity) (#1105)
- _allowances[owner][spender] = amount (#296)
Reentrancy in DaddyDollar.updateUniswapV2Router(address) (#839-846):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#843-844)
State variables written after the call(s):
- uniswapV2Pair = _uniswapV2Pair (#845)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in DaddyDollar._setAutomatedMarketMakerPair(address,bool) (#901-909):
External calls:
- dividendTracker.excludeFromDividends(pair) (#906)
Event emitted after the call(s):
- SetAutomatedMarketMakerPair(pair,value) (#908)
Reentrancy in DaddyDollar._transfer(address,address,uint256) (#1002-1080):
External calls:
- swapAndLiquify(swapTokens) (#1026)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1124-1130)
- swapAndSendDividends(sellTokens) (#1029)
- success = IBEP20(USDT).transfer(address(dividendTracker),dividends) (#1171)
- dividendTracker.distributeUSDTDividends(dividends) (#1174)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1142-1148)
External calls sending eth:
- swapAndLiquify(swapTokens) (#1026)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
- _marketingWalletAddress.transfer(bnbForMarketing) (#1111)
- _developerWalletAddress.transfer(bnbForDeveloper) (#1112)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#297)
- swapAndSendDividends(sellTokens) (#1029)
- SendDividends(tokens,dividends) (#1175)
- swapAndSendDividends(sellTokens) (#1029)
- Transfer(sender,recipient,amount) (#262)
- super._transfer(from,deadWallet,burnTokens) (#1050)
- Transfer(sender,recipient,amount) (#262)
- super._transfer(from,address(this),fees) (#1049)
- Transfer(sender,recipient,amount) (#262)
- super._transfer(from,address(this),fees_scope_0) (#1059)
- Transfer(sender,recipient,amount) (#262)
- super._transfer(from,deadWallet,burnTokens_scope_1) (#1060)
- Transfer(sender,recipient,amount) (#262)
- super._transfer(from,to,amount) (#1066)
Reentrancy in DaddyDollar._transfer(address,address,uint256) (#1002-1080):
External calls:
- swapAndLiquify(swapTokens) (#1026)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1124-1130)
- swapAndSendDividends(sellTokens) (#1029)
- success = IBEP20(USDT).transfer(address(dividendTracker),dividends) (#1171)
- dividendTracker.distributeUSDTDividends(dividends) (#1174)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1142-1148)
- dividendTracker.setBalance(address(from),balanceOf(from)) (#1067)
- dividendTracker.setBalance(address(to),balanceOf(to)) (#1068)
- dividendTracker.process(gas) (#1073-1078)
External calls sending eth:
- swapAndLiquify(swapTokens) (#1026)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
- _marketingWalletAddress.transfer(bnbForMarketing) (#1111)
- _developerWalletAddress.transfer(bnbForDeveloper) (#1112)
Event emitted after the call(s):
- ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1074)
Reentrancy in DaddyDollar.constructor() (#751-779):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#756-757)
- _setAutomatedMarketMakerPair(_uniswapV2Pair,true) (#760)
- dividendTracker.excludeFromDividends(pair) (#906)
Event emitted after the call(s):
- SetAutomatedMarketMakerPair(pair,value) (#908)
- _setAutomatedMarketMakerPair(_uniswapV2Pair,true) (#760)
Reentrancy in DaddyDollar.constructor() (#751-779):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#756-757)
- _setAutomatedMarketMakerPair(_uniswapV2Pair,true) (#760)
- dividendTracker.excludeFromDividends(pair) (#906)
- dividendTracker.excludeFromDividends(address(dividendTracker)) (#762)
- dividendTracker.excludeFromDividends(address(this)) (#763)
- dividendTracker.excludeFromDividends(deadWallet) (#764)
- dividendTracker.excludeFromDividends(address(_uniswapV2Router)) (#765)
Event emitted after the call(s):
- ExcludeFromFees(account,excluded) (#851)
- excludeFromFees(_developerWalletAddress,true) (#769)
- ExcludeFromFees(account,excluded) (#851)
- excludeFromFees(address(this),true) (#770)
- ExcludeFromFees(account,excluded) (#851)
- excludeFromFees(_marketingWalletAddress,true) (#768)
- ExcludeFromFees(account,excluded) (#851)
- excludeFromFees(owner(),true) (#767)
- Transfer(address(0),account,amount) (#273)
- _mint(owner(),_totalSupply) (#778)
Reentrancy in DaddyDollarDividendTracker.processAccount(address,bool) (#1423-1433):
External calls:
- amount = _withdrawDividendOfUser(account) (#1424)
- success = IBEP20(USDT).transfer(user,_withdrawableDividend) (#369)
Event emitted after the call(s):
- Claim(account,amount,automatic) (#1428)
Reentrancy in DaddyDollar.processDividendTracker(uint256) (#979-982):
External calls:
- (iterations,claims,lastProcessedIndex) = dividendTracker.process(gas) (#980)
Event emitted after the call(s):
- ProcessedDividendTracker(iterations,claims,lastProcessedIndex,false,gas,tx.origin) (#981)
Reentrancy in DaddyDollar.swapAndLiquify(uint256) (#1094-1113):
External calls:
- swapTokensForEth(swapableTokens) (#1100)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1124-1130)
- addLiquidity(halfLiquidityTokens,bnbForLiquidity) (#1105)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
External calls sending eth:
- addLiquidity(halfLiquidityTokens,bnbForLiquidity) (#1105)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#297)
- addLiquidity(halfLiquidityTokens,bnbForLiquidity) (#1105)
- SwapAndLiquify(halfLiquidityTokens,bnbForLiquidity,halfLiquidityTokens) (#1106)
Reentrancy in DaddyDollar.swapAndSendDividends(uint256) (#1168-1177):
External calls:
- swapTokensForUSDT(tokens) (#1169)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1142-1148)
- success = IBEP20(USDT).transfer(address(dividendTracker),dividends) (#1171)
- dividendTracker.distributeUSDTDividends(dividends) (#1174)
Event emitted after the call(s):
- SendDividends(tokens,dividends) (#1175)
Reentrancy in DaddyDollar.updateDividendTracker(address) (#826-837):
External calls:
- newDividendTracker.excludeFromDividends(address(newDividendTracker)) (#831)
- newDividendTracker.excludeFromDividends(address(this)) (#832)
- newDividendTracker.excludeFromDividends(owner()) (#833)
- newDividendTracker.excludeFromDividends(address(uniswapV2Router)) (#834)
Event emitted after the call(s):
- UpdateDividendTracker(newAddress,address(dividendTracker)) (#835)
Apply the check-effects-interactions pattern.
Additional information: link
DaddyDollarDividendTracker.getAccount(address) (#1285-1328) uses timestamp for comparisons
Dangerous comparisons:
- nextClaimTime > block.timestamp (#1325-1327)
DaddyDollarDividendTracker.canAutoClaim(uint256) (#1349-1355) uses timestamp for comparisons
Dangerous comparisons:
- lastClaimTime > block.timestamp (#1350)
- block.timestamp.sub(lastClaimTime) >= claimWait (#1354)
Avoid relying on block.timestamp.
Additional information: link
Context._msgData() (#27-30) is never used and should be removed
DaddyDollar.swapAndSendToFee(uint256) (#1083-1091) is never used and should be removed
DividendPayingToken._transfer(address,address,uint256) (#401-407) is never used and should be removed
SafeMath.mod(uint256,uint256) (#108-110) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#113-116) is never used and should be removed
SafeMathInt.abs(int256) (#146-149) is never used and should be removed
SafeMathInt.div(int256,int256) (#129-132) is never used and should be removed
SafeMathInt.mul(int256,int256) (#122-127) is never used and should be removed
Remove unused functions.
Additional information: link
DaddyDollar._maxTxAmount (#722) is set pre-construction with a non-constant function or state variable:
- _totalSupply.mul(2).div(100)
DaddyDollar.totalFees (#731) is set pre-construction with a non-constant function or state variable:
- USDTRewardsFee.add(liquidityFee).add(marketingFee).add(developerFee)
DaddyDollar._walletMaxHoldingLimit (#1191) is set pre-construction with a non-constant function or state variable:
- _totalSupply.div(100).mul(2)
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
Pragma version0.8.11 (#2) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.11 is not recommended for deployment
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.
Additional information: link
Parameter DividendPayingToken.dividendOf(address)._owner (#383) is not in mixedCase
Parameter DividendPayingToken.withdrawableDividendOf(address)._owner (#388) is not in mixedCase
Parameter DividendPayingToken.withdrawnDividendOf(address)._owner (#392) is not in mixedCase
Parameter DividendPayingToken.accumulativeDividendOf(address)._owner (#396) is not in mixedCase
Variable DividendPayingToken.USDT (#333) is not in mixedCase
Constant DividendPayingToken.magnitude (#334) is not in UPPER_CASE_WITH_UNDERSCORES
Function IUniswapV2Router01.WETH() (#502) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#659) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#660) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#667) is not in mixedCase
Parameter LockToken.includeToWhiteList(address,bool)._users (#700) is not in mixedCase
Parameter LockToken.includeToWhiteList(address,bool)._trueFalse (#700) is not in mixedCase
Parameter DaddyDollar.setExtraSaleFee(uint256)._percentage (#819) is not in mixedCase
Parameter DaddyDollar.setSwapTokensAtAmount(uint256)._value (#928) is not in mixedCase
Parameter DaddyDollar.recoverBnb(uint256)._amount (#997) is not in mixedCase
Parameter DaddyDollar.setSwapAndLiquifyEnabled(bool)._enabled (#1184) is not in mixedCase
Parameter DaddyDollar.setExcludedFromWhale(address,bool)._enabled (#1216) is not in mixedCase
Variable DaddyDollar._totalSupply (#720) is not in mixedCase
Variable DaddyDollar.USDT (#718) is not in mixedCase
Variable DaddyDollar._maxTxAmount (#722) is not in mixedCase
Variable DaddyDollar.USDTRewardsFee (#724) is not in mixedCase
Variable DaddyDollar._marketingWalletAddress (#733) is not in mixedCase
Variable DaddyDollar._developerWalletAddress (#734) is not in mixedCase
Variable DaddyDollar._walletMaxHoldingLimit (#1191) is not in mixedCase
Parameter DaddyDollarDividendTracker.getAccount(address)._account (#1285) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Reentrancy in DaddyDollar._transfer(address,address,uint256) (#1002-1080):
External calls:
- swapAndLiquify(swapTokens) (#1026)
- _marketingWalletAddress.transfer(bnbForMarketing) (#1111)
- _developerWalletAddress.transfer(bnbForDeveloper) (#1112)
External calls sending eth:
- swapAndLiquify(swapTokens) (#1026)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1157-1164)
- _marketingWalletAddress.transfer(bnbForMarketing) (#1111)
- _developerWalletAddress.transfer(bnbForDeveloper) (#1112)
State variables written after the call(s):
- swapAndSendDividends(sellTokens) (#1029)
- _allowances[owner][spender] = amount (#296)
- super._transfer(from,address(this),fees) (#1049)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#260)
- _balances[recipient] = _balances[recipient].add(amount) (#261)
- super._transfer(from,deadWallet,burnTokens) (#1050)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#260)
- _balances[recipient] = _balances[recipient].add(amount) (#261)
- super._transfer(from,address(this),fees_scope_0) (#1059)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#260)
- _balances[recipient] = _balances[recipient].add(amount) (#261)
- super._transfer(from,deadWallet,burnTokens_scope_1) (#1060)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#260)
- _balances[recipient] = _balances[recipient].add(amount) (#261)
- super._transfer(from,to,amount) (#1066)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#260)
- _balances[recipient] = _balances[recipient].add(amount) (#261)
- swapping = false (#1030)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#297)
- swapAndSendDividends(sellTokens) (#1029)
- ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1074)
- SendDividends(tokens,dividends) (#1175)
- swapAndSendDividends(sellTokens) (#1029)
- Transfer(sender,recipient,amount) (#262)
- super._transfer(from,to,amount) (#1066)
- Transfer(sender,recipient,amount) (#262)
- super._transfer(from,address(this),fees_scope_0) (#1059)
- Transfer(sender,recipient,amount) (#262)
- super._transfer(from,deadWallet,burnTokens_scope_1) (#1060)
- Transfer(sender,recipient,amount) (#262)
- super._transfer(from,deadWallet,burnTokens) (#1050)
- Transfer(sender,recipient,amount) (#262)
- super._transfer(from,address(this),fees) (#1049)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#506) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#507)
Variable DividendPayingToken._withdrawDividendOfUser(address)._withdrawableDividend (#365) is too similar to DaddyDollarDividendTracker.getAccount(address).withdrawableDividends (#1290)
Prevent variables from having similar names.
Additional information: link
DaddyDollar.updateGasForProcessing(uint256) (#912-917) uses literals with too many digits:
- require(bool,string)(newValue >= 200000 && newValue <= 500000,DaddyDollar: gasForProcessing must be between 200,000 and 500,000) (#913)
DaddyDollar.slitherConstructorVariables() (#706-1221) uses literals with too many digits:
- deadWallet = 0x000000000000000000000000000000000000dEaD (#716)
DaddyDollar.slitherConstructorVariables() (#706-1221) uses literals with too many digits:
- gasForProcessing = 300000 (#736)
DaddyDollarDividendTracker.getAccountAtIndex(uint256) (#1330-1347) uses literals with too many digits:
- (0x0000000000000000000000000000000000000000,- 1,- 1,0,0,0,0,0) (#1341)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
DaddyDollar._developerWalletAddress (#734) should be constant
DaddyDollar._totalSupply (#720) should be constant
DaddyDollar.deadWallet (#716) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#51-54)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#56-60)
name() should be declared external:
- BEP20.name() (#182-184)
symbol() should be declared external:
- BEP20.symbol() (#190-192)
decimals() should be declared external:
- BEP20.decimals() (#194-196)
transfer(address,uint256) should be declared external:
- BEP20.transfer(address,uint256) (#213-216)
allowance(address,address) should be declared external:
- BEP20.allowance(address,address) (#218-220)
approve(address,uint256) should be declared external:
- BEP20.approve(address,uint256) (#222-225)
transferFrom(address,address,uint256) should be declared external:
- BEP20.transferFrom(address,address,uint256) (#227-235)
increaseAllowance(address,uint256) should be declared external:
- BEP20.increaseAllowance(address,uint256) (#238-241)
decreaseAllowance(address,uint256) should be declared external:
- BEP20.decreaseAllowance(address,uint256) (#244-247)
distributeUSDTDividends(uint256) should be declared external:
- DividendPayingToken.distributeUSDTDividends(uint256) (#346-357)
withdrawDividend() should be declared external:
- DaddyDollarDividendTracker.withdrawDividend() (#1253-1255)
- DividendPayingToken.withdrawDividend() (#359-361)
dividendOf(address) should be declared external:
- DividendPayingToken.dividendOf(address) (#383-385)
withdrawnDividendOf(address) should be declared external:
- DividendPayingToken.withdrawnDividendOf(address) (#392-394)
get(IterableMapping.Map,address) should be declared external:
- IterableMapping.get(IterableMapping.Map,address) (#447-449)
getIndexOfKey(IterableMapping.Map,address) should be declared external:
- IterableMapping.getIndexOfKey(IterableMapping.Map,address) (#451-456)
getKeyAtIndex(IterableMapping.Map,uint256) should be declared external:
- IterableMapping.getKeyAtIndex(IterableMapping.Map,uint256) (#458-460)
size(IterableMapping.Map) should be declared external:
- IterableMapping.size(IterableMapping.Map) (#464-466)
updateDividendTracker(address) should be declared external:
- DaddyDollar.updateDividendTracker(address) (#826-837)
updateUniswapV2Router(address) should be declared external:
- DaddyDollar.updateUniswapV2Router(address) (#839-846)
excludeMultipleAccountsFromFees(address[],bool) should be declared external:
- DaddyDollar.excludeMultipleAccountsFromFees(address[],bool) (#854-859)
setAutomatedMarketMakerPair(address,bool) should be declared external:
- DaddyDollar.setAutomatedMarketMakerPair(address,bool) (#895-898)
updateGasForProcessing(uint256) should be declared external:
- DaddyDollar.updateGasForProcessing(uint256) (#912-917)
isExcludedFromFees(address) should be declared external:
- DaddyDollar.isExcludedFromFees(address) (#937-939)
withdrawableDividendOf(address) should be declared external:
- DaddyDollar.withdrawableDividendOf(address) (#941-943)
dividendTokenBalanceOf(address) should be declared external:
- DaddyDollar.dividendTokenBalanceOf(address) (#945-947)
setSwapAndLiquifyEnabled(bool) should be declared external:
- DaddyDollar.setSwapAndLiquifyEnabled(bool) (#1184-1188)
setExcludedFromWhale(address,bool) should be declared external:
- DaddyDollar.setExcludedFromWhale(address,bool) (#1216-1219)
getAccountAtIndex(uint256) should be declared external:
- DaddyDollarDividendTracker.getAccountAtIndex(uint256) (#1330-1347)
process(uint256) should be declared external:
- DaddyDollarDividendTracker.process(uint256) (#1374-1419)
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 whitepaper link on the website
Unable to find token on CoinGecko
Additional information: link
Unable to find token on CoinMarketCap
Additional information: link
Unable to find code repository for the project
Young tokens have high risks of scam / price dump / death
Alexa traffic rank is very low
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 no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Blog account (Reddit or Medium)
Unable to find Discord account