Gold Rush Casino token is a high yielding, passive income project, with an active utility function, operating on the BSC network. The massive 12% rewards are paid to holders in BUSD, and not as reflections of the native token. The Token has 8% Buy and 8% Sell Taxes. The casino game’s “Play to Earn” Utility function does not operate using GRC, instead uses BUSD to buy-in or cash-out.
GoldRushCasino.swapAndSendDividends(uint256) (#1816-1882) sends eth to arbitrary user
Dangerous calls:
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
GoldRushCasinoDividendTracker._reinvestDividendOfUser(address) (#2261-2315) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,address(this),block.timestamp) (#2280-2302)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in GoldRushCasinoDividendTracker._reinvestDividendOfUser(address) (#2261-2315):
External calls:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,address(this),block.timestamp) (#2280-2302)
- GoldRushCasinoContract.transfer(account,received) (#2296)
External calls sending eth:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,address(this),block.timestamp) (#2280-2302)
State variables written after the call(s):
- withdrawnDividends[account] = withdrawnDividends[account].sub(_withdrawableDividend) (#2305-2307)
Reentrancy in GoldRushCasino._transfer(address,address,uint256) (#1562-1737):
External calls:
- swapAndLiquify(swapTokens) (#1688)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- swapAndSendDividends(remainingBalance) (#1692)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
External calls sending eth:
- swapAndLiquify(swapTokens) (#1688)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
- swapAndSendDividends(remainingBalance) (#1692)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
State variables written after the call(s):
- super._transfer(from,address(this),fees) (#1708)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#322-325)
- _balances[recipient] = _balances[recipient].add(amount) (#326)
- buyAmount = 0 (#1693)
- buyAmount = buyAmount.add(fees) (#1705)
- sellAmount = 0 (#1694)
- sellAmount = sellAmount.add(fees) (#1703)
- swapping = false (#1695)
Reentrancy in GoldRushCasino._transfer(address,address,uint256) (#1562-1737):
External calls:
- swapAndLiquify(swapTokens) (#1688)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- swapAndSendDividends(remainingBalance) (#1692)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
- dividendTracker.process(gas) (#1714-1727)
External calls sending eth:
- swapAndLiquify(swapTokens) (#1688)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
- swapAndSendDividends(remainingBalance) (#1692)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
State variables written after the call(s):
- super._transfer(from,to,amount) (#1730)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#322-325)
- _balances[recipient] = _balances[recipient].add(amount) (#326)
Reentrancy in DividendPayingToken._withdrawDividendOfUser(address) (#897-924):
External calls:
- (success) = user.call{gas: 3000,value: _withdrawableDividend}() (#908-911)
State variables written after the call(s):
- withdrawnDividends[user] = withdrawnDividends[user].sub(_withdrawableDividend) (#914-916)
Reentrancy in GoldRushCasinoDividendTracker._withdrawDividendOfUser(address) (#2317-2368):
External calls:
- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (#2332-2335)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,user,block.timestamp) (#2340-2354)
State variables written after the call(s):
- withdrawnDividends[user] = withdrawnDividends[user].sub(_withdrawableDividend) (#2358-2360)
Reentrancy in GoldRushCasino.forceSwapAndSendDividends(uint256) (#1804-1814):
External calls:
- swapAndSendDividends(tokens) (#1810)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
External calls sending eth:
- swapAndSendDividends(tokens) (#1810)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
State variables written after the call(s):
- buyAmount = buyAmount.sub(fromBuy) (#1812)
- sellAmount = sellAmount.sub(fromSell) (#1813)
Apply the check-effects-interactions pattern.
Additional information: link
GoldRushCasinoDividendTracker._reinvestDividendOfUser(address) (#2261-2315) ignores return value by GoldRushCasinoContract.transfer(account,received) (#2296)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
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.
Contract ownership is not renounced (belongs to a wallet)
GoldRushCasino._transfer(address,address,uint256).iterations (#1715) is a local variable never initialized
GoldRushCasino._transfer(address,address,uint256).claims (#1716) is a local variable never initialized
GoldRushCasino.swapAndSendDividends(uint256).dividendsFromBuy (#1829) is a local variable never initialized
GoldRushCasino._transfer(address,address,uint256).lastProcessedIndex (#1717) is a local variable never initialized
GoldRushCasinoDividendTracker._withdrawDividendOfUser(address).success (#2329) is a local variable never initialized
GoldRushCasino.swapAndSendDividends(uint256).dividendsFromSell (#1830) is a local variable never initialized
GoldRushCasino.swapAndSendDividends(uint256).feePortions (#1856) is a local variable never initialized
GoldRushCasinoDividendTracker._reinvestDividendOfUser(address).success (#2267) 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
GoldRushCasino.claim() (#1526-1528) ignores return value by dividendTracker.processAccount(address(msg.sender),false) (#1527)
GoldRushCasino._transfer(address,address,uint256) (#1562-1737) ignores return value by dividendTracker.process(gas) (#1714-1727)
GoldRushCasino.addLiquidity(uint256,uint256) (#1788-1801) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
Ensure that all the return values of the function calls are used.
Additional information: link
DividendPayingToken.constructor(string,string)._name (#870) shadows:
- ERC20._name (#202) (state variable)
DividendPayingToken.constructor(string,string)._symbol (#870) shadows:
- ERC20._symbol (#203) (state variable)
GoldRushCasinoDividendTracker.constructor(address,address,address,string,string)._name (#1948) shadows:
- ERC20._name (#202) (state variable)
Rename the local variables that shadow another component.
Additional information: link
GoldRushCasino.setcooldowntimer(uint256) (#1316-1319) should emit an event for:
- cooldowntimer = value (#1318)
GoldRushCasino.setVestingTime(uint256) (#1335-1343) should emit an event for:
- vestingTimer1 = initialtimer (#1338)
- vestingTimer2 = vestingTimer1 + 2073600 (#1339)
- vestingTimer3 = vestingTimer2 + 2073600 (#1340)
- vestingTimer4 = vestingTimer3 + 2073600 (#1341)
GoldRushCasino.setSwapTriggerAmount(uint256) (#1346-1348) should emit an event for:
- swapTokensAtAmount = amount * (10 ** 18) (#1347)
GoldRushCasino.forceSwapAndSendDividends(uint256) (#1804-1814) should emit an event for:
- buyAmount = buyAmount.sub(fromBuy) (#1812)
- sellAmount = sellAmount.sub(fromSell) (#1813)
Emit an event for critical parameter changes.
Additional information: link
GoldRushCasino._transfer(address,address,uint256) (#1562-1737) performs a multiplication on the result of a division:
-swapAmountBought = contractTokenBalance.mul(buyAmount).div(totalBuySell) (#1671-1673)
-swapBuyTokens = swapAmountBought.mul(liquidityFee).div(totalBuyFees) (#1678-1680)
GoldRushCasino._transfer(address,address,uint256) (#1562-1737) performs a multiplication on the result of a division:
-swapAmountSold = contractTokenBalance.mul(sellAmount).div(totalBuySell) (#1674-1676)
-swapSellTokens = swapAmountSold.mul(liquidityFee).div(totalSellFees) (#1682-1684)
GoldRushCasino.swapAndSendDividends(uint256) (#1816-1882) performs a multiplication on the result of a division:
-dividendsFromBuy = address(this).balance.mul(buyAmount).div(totalAmount).mul(buyRewardsFee).div(buyRewardsFee + buyMarketingFees + buyCharityFees + buyDevFee) (#1833-1838)
GoldRushCasino.swapAndSendDividends(uint256) (#1816-1882) performs a multiplication on the result of a division:
-dividendsFromSell = address(this).balance.mul(sellAmount).div(totalAmount).mul(sellRewardsFee).div(sellRewardsFee + sellMarketingFees + sellCharityFees + sellDevFee) (#1841-1846)
GoldRushCasino.swapAndSendDividends(uint256) (#1816-1882) performs a multiplication on the result of a division:
-feePortions = address(this).balance.div(_completeFees) (#1858)
-charityPayout = buyCharityFees.add(sellCharityFees) * feePortions (#1862)
GoldRushCasino.swapAndSendDividends(uint256) (#1816-1882) performs a multiplication on the result of a division:
-feePortions = address(this).balance.div(_completeFees) (#1858)
-devPayout = buyDevFee.add(sellDevFee) * feePortions (#1863)
Consider ordering multiplication before division.
Additional information: link
Reentrancy in GoldRushCasino.transferAdmin(address) (#1390-1395):
External calls:
- dividendTracker.excludeFromDividends(newOwner) (#1391)
State variables written after the call(s):
- transferOwnership(newOwner) (#1394)
- _owner = newOwner (#590)
Apply the check-effects-interactions pattern.
Additional information: link
GoldRushCasino._transfer(address,address,uint256) (#1562-1737) uses tx.origin for authorization: require(bool,string)(block.timestamp >= _holderLastTransferTimestamp[tx.origin] + cooldowntimer,cooldown period active) (#1629-1630)
GoldRushCasino._transfer(address,address,uint256) (#1562-1737) uses tx.origin for authorization: require(bool,string)(_holderLastTransferBlock[tx.origin] != block.number,Too many TX in block) (#1645)
GoldRushCasino._transfer(address,address,uint256) (#1562-1737) uses tx.origin for authorization: require(bool,string)(block.timestamp >= _holderLastTransferTimestamp[tx.origin] + cooldowntimer,cooldown period active) (#1646-1647)
Do not use tx.origin for authorization.
Additional information: link
GoldRushCasino.setTrueDefiRouter(address)._router (#1224) lacks a zero-check on :
- tefiRouter = _router (#1225)
GoldRushCasino.setMarketingWallet(address).wallet (#1265) lacks a zero-check on :
- marketingWallet = address(wallet) (#1267)
GoldRushCasino.setCharityWallet(address).wallet (#1272) lacks a zero-check on :
- charityWallet = address(wallet) (#1274)
GoldRushCasino.setDevWallet(address).wallet (#1279) lacks a zero-check on :
- devWallet = address(wallet) (#1281)
Ownable.constructor().msgSender (#565) lacks a zero-check on :
- _owner = msgSender (#566)
GoldRushCasinoDividendTracker.constructor(address,address,address,string,string).token (#1947) lacks a zero-check on :
- defaultToken = token (#1953)
GoldRushCasinoDividendTracker.updatePayoutToken(address).token (#2253) lacks a zero-check on :
- defaultToken = token (#2254)
Check that the address is not zero.
Additional information: link
GoldRushCasino.airdropToWallets(address[],uint256[]) (#1885-1897) has external calls inside a loop: dividendTracker.setBalance(address(wallet),balanceOf(wallet)) (#1895)
GoldRushCasinoDividendTracker._reinvestDividendOfUser(address) (#2261-2315) has external calls inside a loop: path[0] = uniswapV2Router.WETH() (#2274)
GoldRushCasinoDividendTracker._reinvestDividendOfUser(address) (#2261-2315) has external calls inside a loop: prevBalance = GoldRushCasinoContract.balanceOf(address(this)) (#2277)
GoldRushCasinoDividendTracker._reinvestDividendOfUser(address) (#2261-2315) has external calls inside a loop: uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,address(this),block.timestamp) (#2280-2302)
GoldRushCasinoDividendTracker._reinvestDividendOfUser(address) (#2261-2315) has external calls inside a loop: received = GoldRushCasinoContract.balanceOf(address(this)).sub(prevBalance) (#2291-2293)
GoldRushCasinoDividendTracker._reinvestDividendOfUser(address) (#2261-2315) has external calls inside a loop: GoldRushCasinoContract.transfer(account,received) (#2296)
GoldRushCasinoDividendTracker._withdrawDividendOfUser(address) (#2317-2368) has external calls inside a loop: (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (#2332-2335)
GoldRushCasinoDividendTracker._withdrawDividendOfUser(address) (#2317-2368) has external calls inside a loop: path[0] = uniswapV2Router.WETH() (#2338)
GoldRushCasinoDividendTracker._withdrawDividendOfUser(address) (#2317-2368) has external calls inside a loop: uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,user,block.timestamp) (#2340-2354)
Favor pull over push strategy for external calls.
Additional information: link
Variable 'GoldRushCasino._transfer(address,address,uint256).claims (#1716)' in GoldRushCasino._transfer(address,address,uint256) (#1562-1737) potentially used before declaration: ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1719-1726)
Variable 'GoldRushCasino._transfer(address,address,uint256).iterations (#1715)' in GoldRushCasino._transfer(address,address,uint256) (#1562-1737) potentially used before declaration: ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1719-1726)
Variable 'GoldRushCasino._transfer(address,address,uint256).lastProcessedIndex (#1717)' in GoldRushCasino._transfer(address,address,uint256) (#1562-1737) potentially used before declaration: ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1719-1726)
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 GoldRushCasino._transfer(address,address,uint256) (#1562-1737):
External calls:
- swapAndLiquify(swapTokens) (#1688)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- swapAndSendDividends(remainingBalance) (#1692)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
External calls sending eth:
- swapAndLiquify(swapTokens) (#1688)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
- swapAndSendDividends(remainingBalance) (#1692)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
State variables written after the call(s):
- swapAndSendDividends(remainingBalance) (#1692)
- _allowances[owner][spender] = amount (#361)
Reentrancy in GoldRushCasino.constructor() (#1148-1218):
External calls:
- uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#1188-1191)
- _setAutomatedMarketMakerPair(uniswapV2Pair,true) (#1193)
- dividendTracker.excludeFromDividends(pair) (#1378)
State variables written after the call(s):
- _setAutomatedMarketMakerPair(uniswapV2Pair,true) (#1193)
- automatedMarketMakerPairs[pair] = value (#1375)
Reentrancy in GoldRushCasino.constructor() (#1148-1218):
External calls:
- uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#1188-1191)
- _setAutomatedMarketMakerPair(uniswapV2Pair,true) (#1193)
- dividendTracker.excludeFromDividends(pair) (#1378)
- dividendTracker.excludeFromDividends(address(dividendTracker)) (#1196)
- dividendTracker.excludeFromDividends(address(this)) (#1197)
- dividendTracker.excludeFromDividends(DEAD) (#1198)
- dividendTracker.excludeFromDividends(address(0)) (#1199)
- dividendTracker.excludeFromDividends(router) (#1200)
- dividendTracker.excludeFromDividends(marketingWallet) (#1201)
- dividendTracker.excludeFromDividends(charityWallet) (#1202)
- dividendTracker.excludeFromDividends(devWallet) (#1203)
- dividendTracker.excludeFromDividends(owner()) (#1204)
State variables written after the call(s):
- _mint(owner(),totalTokenSupply) (#1212)
- _balances[account] = _balances[account].add(amount) (#336)
- _isExcludedFromFees[address(this)] = true (#1207)
- _isExcludedFromFees[address(dividendTracker)] = true (#1208)
- _isExcludedFromFees[msg.sender] = true (#1209)
- _mint(owner(),totalTokenSupply) (#1212)
- _totalSupply = _totalSupply.add(amount) (#335)
- canTransferBeforeTradingIsEnabled[owner()] = true (#1214)
- canTransferBeforeTradingIsEnabled[address(this)] = true (#1215)
- swapTokensAtAmount = totalTokenSupply / 5000 (#1213)
- whitelistForPublicTrade[msg.sender] = true (#1217)
Reentrancy in GoldRushCasinoDividendTracker.processAccount(address,bool) (#2217-2247):
External calls:
- amount = _reinvestDividendOfUser(account) (#2232-2234)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,address(this),block.timestamp) (#2280-2302)
- GoldRushCasinoContract.transfer(account,received) (#2296)
- amount = _withdrawDividendOfUser(account) (#2232-2234)
- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (#2332-2335)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,user,block.timestamp) (#2340-2354)
External calls sending eth:
- amount = _reinvestDividendOfUser(account) (#2232-2234)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,address(this),block.timestamp) (#2280-2302)
- amount = _withdrawDividendOfUser(account) (#2232-2234)
- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (#2332-2335)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,user,block.timestamp) (#2340-2354)
State variables written after the call(s):
- lastClaimTimes[account] = block.timestamp (#2237)
Reentrancy in GoldRushCasino.setCharityWallet(address) (#1272-1276):
External calls:
- dividendTracker.excludeFromDividends(wallet) (#1273)
State variables written after the call(s):
- charityWallet = address(wallet) (#1274)
Reentrancy in GoldRushCasino.setDevWallet(address) (#1279-1283):
External calls:
- dividendTracker.excludeFromDividends(wallet) (#1280)
State variables written after the call(s):
- devWallet = address(wallet) (#1281)
Reentrancy in GoldRushCasino.setMarketingWallet(address) (#1265-1269):
External calls:
- dividendTracker.excludeFromDividends(wallet) (#1266)
State variables written after the call(s):
- marketingWallet = address(wallet) (#1267)
Reentrancy in GoldRushCasino.setTrueDefiRouter(address) (#1224-1234):
External calls:
- dividendTracker.excludeFromDividends(_router) (#1229)
State variables written after the call(s):
- launchblock = block.number (#1231)
- tradingEnabled = true (#1232)
Reentrancy in GoldRushCasino.swapAndLiquify(uint256) (#1739-1747):
External calls:
- swapTokensForEth(half) (#1743)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- addLiquidity(otherHalf,newBalance) (#1745)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1745)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#1745)
- _allowances[owner][spender] = amount (#361)
Reentrancy in GoldRushCasino.transferAdmin(address) (#1390-1395):
External calls:
- dividendTracker.excludeFromDividends(newOwner) (#1391)
State variables written after the call(s):
- _isExcludedFromFees[newOwner] = true (#1392)
- canTransferBeforeTradingIsEnabled[newOwner] = true (#1393)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in GoldRushCasino._setAutomatedMarketMakerPair(address,bool) (#1374-1382):
External calls:
- dividendTracker.excludeFromDividends(pair) (#1378)
Event emitted after the call(s):
- SetAutomatedMarketMakerPair(pair,value) (#1381)
Reentrancy in GoldRushCasino._transfer(address,address,uint256) (#1562-1737):
External calls:
- swapAndLiquify(swapTokens) (#1688)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- swapAndSendDividends(remainingBalance) (#1692)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
External calls sending eth:
- swapAndLiquify(swapTokens) (#1688)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
- swapAndSendDividends(remainingBalance) (#1692)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#362)
- swapAndSendDividends(remainingBalance) (#1692)
- SendDividends(dividends,marketingPayout + charityPayout + devPayout,success && successOp1 && successOp2 && successOp3) (#1877-1881)
- swapAndSendDividends(remainingBalance) (#1692)
- Transfer(sender,recipient,amount) (#327)
- super._transfer(from,address(this),fees) (#1708)
Reentrancy in GoldRushCasino._transfer(address,address,uint256) (#1562-1737):
External calls:
- swapAndLiquify(swapTokens) (#1688)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- swapAndSendDividends(remainingBalance) (#1692)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
- dividendTracker.process(gas) (#1714-1727)
External calls sending eth:
- swapAndLiquify(swapTokens) (#1688)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
- swapAndSendDividends(remainingBalance) (#1692)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
Event emitted after the call(s):
- ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1719-1726)
- Transfer(sender,recipient,amount) (#327)
- super._transfer(from,to,amount) (#1730)
Reentrancy in GoldRushCasinoDividendTracker._withdrawDividendOfUser(address) (#2317-2368):
External calls:
- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (#2332-2335)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,user,block.timestamp) (#2340-2354)
Event emitted after the call(s):
- DividendWithdrawn(user,_withdrawableDividend) (#2363)
Reentrancy in GoldRushCasino.constructor() (#1148-1218):
External calls:
- uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#1188-1191)
- _setAutomatedMarketMakerPair(uniswapV2Pair,true) (#1193)
- dividendTracker.excludeFromDividends(pair) (#1378)
Event emitted after the call(s):
- SetAutomatedMarketMakerPair(pair,value) (#1381)
- _setAutomatedMarketMakerPair(uniswapV2Pair,true) (#1193)
Reentrancy in GoldRushCasino.constructor() (#1148-1218):
External calls:
- uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#1188-1191)
- _setAutomatedMarketMakerPair(uniswapV2Pair,true) (#1193)
- dividendTracker.excludeFromDividends(pair) (#1378)
- dividendTracker.excludeFromDividends(address(dividendTracker)) (#1196)
- dividendTracker.excludeFromDividends(address(this)) (#1197)
- dividendTracker.excludeFromDividends(DEAD) (#1198)
- dividendTracker.excludeFromDividends(address(0)) (#1199)
- dividendTracker.excludeFromDividends(router) (#1200)
- dividendTracker.excludeFromDividends(marketingWallet) (#1201)
- dividendTracker.excludeFromDividends(charityWallet) (#1202)
- dividendTracker.excludeFromDividends(devWallet) (#1203)
- dividendTracker.excludeFromDividends(owner()) (#1204)
Event emitted after the call(s):
- Transfer(address(0),account,amount) (#337)
- _mint(owner(),totalTokenSupply) (#1212)
Reentrancy in GoldRushCasinoDividendTracker.processAccount(address,bool) (#2217-2247):
External calls:
- amount = _reinvestDividendOfUser(account) (#2232-2234)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,address(this),block.timestamp) (#2280-2302)
- GoldRushCasinoContract.transfer(account,received) (#2296)
- amount = _withdrawDividendOfUser(account) (#2232-2234)
- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (#2332-2335)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,user,block.timestamp) (#2340-2354)
External calls sending eth:
- amount = _reinvestDividendOfUser(account) (#2232-2234)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,address(this),block.timestamp) (#2280-2302)
- amount = _withdrawDividendOfUser(account) (#2232-2234)
- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (#2332-2335)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}(0,path,user,block.timestamp) (#2340-2354)
Event emitted after the call(s):
- Claim(account,amount,automatic) (#2241)
- DividendReinvested(account,amount,automatic) (#2239)
Reentrancy in GoldRushCasino.processDividendTracker(uint256) (#1510-1524):
External calls:
- (iterations,claims,lastProcessedIndex) = dividendTracker.process(gas) (#1511-1515)
Event emitted after the call(s):
- ProcessedDividendTracker(iterations,claims,lastProcessedIndex,false,gas,tx.origin) (#1516-1523)
Reentrancy in GoldRushCasino.setCharityWallet(address) (#1272-1276):
External calls:
- dividendTracker.excludeFromDividends(wallet) (#1273)
Event emitted after the call(s):
- updateCharityWallet(wallet) (#1275)
Reentrancy in GoldRushCasino.setDevWallet(address) (#1279-1283):
External calls:
- dividendTracker.excludeFromDividends(wallet) (#1280)
Event emitted after the call(s):
- updateDevWallet(wallet) (#1282)
Reentrancy in GoldRushCasino.setMarketingWallet(address) (#1265-1269):
External calls:
- dividendTracker.excludeFromDividends(wallet) (#1266)
Event emitted after the call(s):
- updateMarketingWallet(wallet) (#1268)
Reentrancy in GoldRushCasino.setPresaleWallet(address) (#1258-1263):
External calls:
- dividendTracker.excludeFromDividends(wallet) (#1261)
Event emitted after the call(s):
- SetPreSaleWallet(wallet) (#1262)
Reentrancy in GoldRushCasino.setTrueDefiRouter(address) (#1224-1234):
External calls:
- dividendTracker.excludeFromDividends(_router) (#1229)
Event emitted after the call(s):
- TradingEnabled() (#1233)
Reentrancy in GoldRushCasino.swapAndLiquify(uint256) (#1739-1747):
External calls:
- swapTokensForEth(half) (#1743)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- addLiquidity(otherHalf,newBalance) (#1745)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#1745)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#1793-1800)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#362)
- addLiquidity(otherHalf,newBalance) (#1745)
- SwapAndLiquify(half,newBalance,otherHalf) (#1746)
Reentrancy in GoldRushCasino.swapAndSendDividends(uint256) (#1816-1882):
External calls:
- swapTokensForEth(tokens) (#1820)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1754-1760)
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
External calls sending eth:
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
Event emitted after the call(s):
- SendDividends(dividends,marketingPayout + charityPayout + devPayout,success && successOp1 && successOp2 && successOp3) (#1877-1881)
Reentrancy in GoldRushCasino.transferAdmin(address) (#1390-1395):
External calls:
- dividendTracker.excludeFromDividends(newOwner) (#1391)
Event emitted after the call(s):
- OwnershipTransferred(_owner,newOwner) (#589)
- transferOwnership(newOwner) (#1394)
Reentrancy in GoldRushCasino.updatePayoutToken(address) (#1763-1766):
External calls:
- dividendTracker.updatePayoutToken(token) (#1764)
Event emitted after the call(s):
- UpdatePayoutToken(token) (#1765)
Apply the check-effects-interactions pattern.
Additional information: link
GoldRushCasino._transfer(address,address,uint256) (#1562-1737) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp >= _holderVestingStarted[from] + vestingTimer1,tokens vested) (#1584)
- block.timestamp >= _holderVestingStarted[from] + vestingTimer1 && block.timestamp < _holderVestingStarted[from] + vestingTimer2 (#1586-1587)
- block.timestamp >= _holderVestingStarted[from] + vestingTimer2 && block.timestamp < _holderVestingStarted[from] + vestingTimer3 (#1591-1592)
- block.timestamp >= _holderVestingStarted[from] + vestingTimer3 && block.timestamp < _holderVestingStarted[from] + vestingTimer4 (#1596-1597)
- block.timestamp >= _holderVestingStarted[from] + vestingTimer4 (#1601)
- require(bool,string)(block.timestamp >= _holderLastTransferTimestamp[tx.origin] + cooldowntimer,cooldown period active) (#1629-1630)
- require(bool,string)(block.timestamp >= _holderLastTransferTimestamp[tx.origin] + cooldowntimer,cooldown period active) (#1646-1647)
Avoid relying on block.timestamp.
Additional information: link
GoldRushCasino._transfer(address,address,uint256) (#1562-1737) compares to a boolean constant:
-enabledPublicTrading == false && tefiRouter != address(0) (#1608)
Remove the equality to the boolean constant.
Additional information: link
Context._msgData() (#9-12) is never used and should be removed
DividendPayingToken._transfer(address,address,uint256) (#962-977) is never used and should be removed
DividendPayingToken._withdrawDividendOfUser(address) (#897-924) is never used and should be removed
IterableMapping.get(IterableMapping.Map,address) (#2380-2382) is never used and should be removed
SafeMath.mod(uint256,uint256) (#530-532) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#546-553) is never used and should be removed
SafeMathInt.abs(int256) (#627-630) is never used and should be removed
SafeMathInt.div(int256,int256) (#607-613) is never used and should be removed
SafeMathInt.mul(int256,int256) (#598-605) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.1 (#2) allows old versions
solc-0.8.15 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
Low level call in DividendPayingToken._withdrawDividendOfUser(address) (#897-924):
- (success) = user.call{gas: 3000,value: _withdrawableDividend}() (#908-911)
Low level call in GoldRushCasino.swapAndSendDividends(uint256) (#1816-1882):
- (success,None) = address(dividendTracker).call{value: dividends}() (#1851)
- (successOp1,None) = address(marketingWallet).call{value: marketingPayout}() (#1866)
- (successOp2,None) = address(charityWallet).call{value: charityPayout}() (#1870)
- (successOp3,None) = address(devWallet).call{value: devPayout}() (#1874)
Low level call in GoldRushCasinoDividendTracker._withdrawDividendOfUser(address) (#2317-2368):
- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (#2332-2335)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#48) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#50) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#81) is not in mixedCase
Variable ERC20._totalSupply (#200) is not in mixedCase
Function IUniswapV2Router01.WETH() (#649) is not in mixedCase
Parameter DividendPayingToken.dividendOf(address)._owner (#926) is not in mixedCase
Parameter DividendPayingToken.withdrawableDividendOf(address)._owner (#930) is not in mixedCase
Parameter DividendPayingToken.withdrawnDividendOf(address)._owner (#939) is not in mixedCase
Parameter DividendPayingToken.accumulativeDividendOf(address)._owner (#948) is not in mixedCase
Constant DividendPayingToken.magnitude (#861) is not in UPPER_CASE_WITH_UNDERSCORES
Event GoldRushCasinoupdateMarketingWallet(address) (#1090) is not in CapWords
Event GoldRushCasinoupdateCharityWallet(address) (#1091) is not in CapWords
Event GoldRushCasinoupdateDevWallet(address) (#1092) is not in CapWords
Parameter GoldRushCasino.setPublicTrading(bool)._flag (#1220) is not in mixedCase
Parameter GoldRushCasino.setTrueDefiRouter(address)._router (#1224) is not in mixedCase
Parameter GoldRushCasino.setWhitelistForPublicTrade(address,bool)._addr (#1236) is not in mixedCase
Parameter GoldRushCasino.setWhitelistForPublicTrade(address,bool)._flag (#1236) is not in mixedCase
Parameter GoldRushCasino.isTrading(address,address)._sender (#1240) is not in mixedCase
Parameter GoldRushCasino.isTrading(address,address)._recipient (#1240) is not in mixedCase
Function GoldRushCasino.VestTokens(address[]) (#1322-1332) is not in mixedCase
Parameter GoldRushCasino.updateFees(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256).RewardsBuy (#1405) is not in mixedCase
Parameter GoldRushCasino.updateFees(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256).RewardsSell (#1406) is not in mixedCase
Variable GoldRushCasino.DEAD (#1018) is not in mixedCase
Parameter GoldRushCasinoDividendTracker.getAccount(address)._account (#2070) is not in mixedCase
Variable GoldRushCasinoDividendTracker.GoldRushCasinoContract (#1921) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#10)" inContext (#4-13)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#654) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#655)
Variable GoldRushCasino.vestingTimer1 (#1064) is too similar to GoldRushCasino.vestingTimer2 (#1065)
Variable GoldRushCasino.vestingTimer2 (#1065) is too similar to GoldRushCasino.vestingTimer3 (#1066)
Variable GoldRushCasino.vestingTimer2 (#1065) is too similar to GoldRushCasino.vestingTimer4 (#1067)
Variable GoldRushCasino.vestingTimer1 (#1064) is too similar to GoldRushCasino.vestingTimer3 (#1066)
Variable GoldRushCasino.vestingTimer3 (#1066) is too similar to GoldRushCasino.vestingTimer4 (#1067)
Variable GoldRushCasino.vestingTimer1 (#1064) is too similar to GoldRushCasino.vestingTimer4 (#1067)
Variable GoldRushCasinoDividendTracker._withdrawDividendOfUser(address)._withdrawableDividend (#2322) is too similar to GoldRushCasinoDividendTracker.getAccount(address).withdrawableDividends (#2077)
Variable DividendPayingToken._withdrawDividendOfUser(address)._withdrawableDividend (#902) is too similar to GoldRushCasinoDividendTracker.getAccount(address).withdrawableDividends (#2077)
Variable GoldRushCasinoDividendTracker._reinvestDividendOfUser(address)._withdrawableDividend (#2265) is too similar to GoldRushCasinoDividendTracker.getAccount(address).withdrawableDividends (#2077)
Prevent variables from having similar names.
Additional information: link
GoldRushCasino.updateGasForProcessing(uint256) (#1384-1388) uses literals with too many digits:
- require(bool)(newValue >= 200000 && newValue <= 1000000) (#1385)
GoldRushCasino.slitherConstructorVariables() (#1012-1898) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (#1018)
GoldRushCasino.slitherConstructorVariables() (#1012-1898) uses literals with too many digits:
- gasForProcessing = 300000 (#1050)
GoldRushCasinoDividendTracker.constructor(address,address,address,string,string) (#1944-1961) uses literals with too many digits:
- minimumTokenBalanceForAutoDividends = 1_000_000_000_000000000000000000 (#1955)
GoldRushCasinoDividendTracker.getAccountAtIndex(uint256) (#2111-2137) uses literals with too many digits:
- (0x0000000000000000000000000000000000000000,- 1,- 1,0,0,0) (#2124-2131)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SafeMathInt.MAX_INT256 (#596) is never used in SafeMathInt (#594-636)
Remove unused state variables.
Additional information: link
GoldRushCasino.DEAD (#1018) should be constant
GoldRushCasino.gasPriceLimit (#1075) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
name() should be declared external:
- ERC20.name() (#210-212)
- GoldRushCasinoDividendTracker.name() (#1967-1969)
symbol() should be declared external:
- ERC20.symbol() (#214-216)
- GoldRushCasinoDividendTracker.symbol() (#1971-1973)
decimals() should be declared external:
- ERC20.decimals() (#218-220)
- GoldRushCasino.decimals() (#1251-1253)
- GoldRushCasinoDividendTracker.decimals() (#1963-1965)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#236-244)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#246-254)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#256-264)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#266-281)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#283-294)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#296-310)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#579-582)
withdrawDividend() should be declared external:
- DividendPayingToken.withdrawDividend() (#893-895)
- GoldRushCasinoDividendTracker.withdrawDividend() (#1983-1988)
dividendOf(address) should be declared external:
- DividendPayingToken.dividendOf(address) (#926-928)
withdrawnDividendOf(address) should be declared external:
- DividendPayingToken.withdrawnDividendOf(address) (#939-946)
setExcludeFees(address,bool) should be declared external:
- GoldRushCasino.setExcludeFees(address,bool) (#1286-1289)
setExcludeDividends(address) should be declared external:
- GoldRushCasino.setExcludeDividends(address) (#1292-1294)
setIncludeDividends(address) should be declared external:
- GoldRushCasino.setIncludeDividends(address) (#1297-1300)
VestTokens(address[]) should be declared external:
- GoldRushCasino.VestTokens(address[]) (#1322-1332)
setVestingTime(uint256) should be declared external:
- GoldRushCasino.setVestingTime(uint256) (#1335-1343)
setSwapTriggerAmount(uint256) should be declared external:
- GoldRushCasino.setSwapTriggerAmount(uint256) (#1346-1348)
enableSwapAndLiquify(bool) should be declared external:
- GoldRushCasino.enableSwapAndLiquify(bool) (#1351-1355)
setAutomatedMarketMakerPair(address,bool) should be declared external:
- GoldRushCasino.setAutomatedMarketMakerPair(address,bool) (#1358-1363)
setAllowCustomTokens(bool) should be declared external:
- GoldRushCasino.setAllowCustomTokens(bool) (#1366-1368)
setAllowAutoReinvest(bool) should be declared external:
- GoldRushCasino.setAllowAutoReinvest(bool) (#1370-1372)
updateGasForProcessing(uint256) should be declared external:
- GoldRushCasino.updateGasForProcessing(uint256) (#1384-1388)
transferAdmin(address) should be declared external:
- GoldRushCasino.transferAdmin(address) (#1390-1395)
updateFees(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) should be declared external:
- GoldRushCasino.updateFees(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (#1398-1447)
isExcludedFromFees(address) should be declared external:
- GoldRushCasino.isExcludedFromFees(address) (#1460-1462)
withdrawableDividendOf(address) should be declared external:
- GoldRushCasino.withdrawableDividendOf(address) (#1464-1470)
dividendTokenBalanceOf(address) should be declared external:
- GoldRushCasino.dividendTokenBalanceOf(address) (#1472-1478)
updatePayoutToken(address) should be declared external:
- GoldRushCasino.updatePayoutToken(address) (#1763-1766)
getPayoutToken() should be declared external:
- GoldRushCasino.getPayoutToken() (#1768-1770)
setMinimumTokenBalanceForAutoDividends(uint256) should be declared external:
- GoldRushCasino.setMinimumTokenBalanceForAutoDividends(uint256) (#1773-1778)
setMinimumTokenBalanceForDividends(uint256) should be declared external:
- GoldRushCasino.setMinimumTokenBalanceForDividends(uint256) (#1781-1786)
getAccountAtIndex(uint256) should be declared external:
- GoldRushCasinoDividendTracker.getAccountAtIndex(uint256) (#2111-2137)
process(uint256) should be declared external:
- GoldRushCasinoDividendTracker.process(uint256) (#2163-2215)
updateUniswapV2Router(address) should be declared external:
- GoldRushCasinoDividendTracker.updateUniswapV2Router(address) (#2249-2251)
updatePayoutToken(address) should be declared external:
- GoldRushCasinoDividendTracker.updatePayoutToken(address) (#2253-2255)
getPayoutToken() should be declared external:
- GoldRushCasinoDividendTracker.getPayoutToken() (#2257-2259)
Use the external attribute for functions never called from the contract.
Additional information: link
Not a direct threat, but may indicate unreliable intentions of developer. Widespread names (e.g. Elon, King, Moon, Doge) are common among meme-tokens and scams. The allow to gain free hype and attract unexperienced investors.
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
Young tokens have high risks of price dump / death
Twitter account has less than 100 followers
Unable to find Blog account (Reddit or Medium)
Unable to find Youtube account