Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
CakeGold.swapBack(bool) (#635-684) sends eth to arbitrary user
Dangerous calls:
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in CakeGold._transferFrom(address,address,uint256) (#544-575):
External calls:
- swapBack(recipient == pair) (#553)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#651-657)
- distributor.deposit{value: amountBNBReflection}() (#667)
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
- triggerAutoBuyback() (#554)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
External calls sending eth:
- swapBack(recipient == pair) (#553)
- distributor.deposit{value: amountBNBReflection}() (#667)
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
- triggerAutoBuyback() (#554)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
State variables written after the call(s):
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#558)
- _balances[recipient] = _balances[recipient].add(amountReceived) (#562)
- amountReceived = takeFee(sender,recipient,amount) (#560)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#618)
- triggerAutoBuyback() (#554)
- inSwap = true (#485)
- inSwap = false (#485)
Apply the check-effects-interactions pattern.
Additional information: link
DividendDistributor.distributeDividend(address) (#369-380) ignores return value by CAKE.transfer(shareholder,amount) (#375)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
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.
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.
Reentrancy in DividendDistributor.distributeDividend(address) (#369-380):
External calls:
- CAKE.transfer(shareholder,amount) (#375)
State variables written after the call(s):
- shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount) (#377)
- shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount) (#378)
Reentrancy in DividendDistributor.process(uint256) (#338-362):
External calls:
- distributeDividend(shareholders[currentIndex]) (#354)
- CAKE.transfer(shareholder,amount) (#375)
State variables written after the call(s):
- currentIndex ++ (#359)
Reentrancy in DividendDistributor.setShare(address,uint256) (#302-316):
External calls:
- distributeDividend(shareholder) (#304)
- CAKE.transfer(shareholder,amount) (#375)
State variables written after the call(s):
- shares[shareholder].amount = amount (#314)
- shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount) (#315)
Apply the check-effects-interactions pattern.
Additional information: link
CakeGold.swapBack(bool) (#635-684) ignores return value by router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
Ensure that all the return values of the function calls are used.
Additional information: link
DividendDistributor.setDistributionCriteria(uint256,uint256) (#297-300) should emit an event for:
- minPeriod = _minPeriod (#298)
- minDistribution = _minDistribution (#299)
CakeGold.setAutoBuybackSettings(bool,uint256,uint256,uint256) (#727-734) should emit an event for:
- autoBuybackCap = _cap (#729)
- autoBuybackAmount = _amount (#731)
CakeGold.setBuybackMultiplierSettings(uint256,uint256,uint256) (#736-741) should emit an event for:
- buybackMultiplierNumerator = numerator (#738)
- buybackMultiplierDenominator = denominator (#739)
- buybackMultiplierLength = length (#740)
CakeGold.setTxLimit(uint256) (#753-756) should emit an event for:
- _maxTxAmount = amount (#755)
CakeGold.setBuyFees(uint256,uint256,uint256,uint256,uint256) (#776-783) should emit an event for:
- liquidityBuyFee = _liquidityFee (#777)
- reflectionBuyFee = _reflectionFee (#779)
- marketingBuyFee = _marketingFee (#780)
- totalBuyFee = _liquidityFee.add(_buybackFee).add(_reflectionFee).add(_marketingFee) (#781)
- buyFeeDenominator = _feeDenominator (#782)
CakeGold.setSellFees(uint256,uint256,uint256,uint256,uint256) (#785-792) should emit an event for:
- liquiditySellFee = _liquidityFee (#786)
- reflectionSellFee = _reflectionFee (#788)
- marketingSellFee = _marketingFee (#789)
- totalSellFee = _liquidityFee.add(_buybackFee).add(_reflectionFee).add(_marketingFee) (#790)
- sellFeeDenominator = _feeDenominator (#791)
CakeGold.setSwapBackSettings(bool,uint256) (#799-802) should emit an event for:
- swapThreshold = _amount (#801)
CakeGold.setTargetLiquidity(uint256,uint256) (#804-807) should emit an event for:
- targetLiquidity = _target (#805)
- targetLiquidityDenominator = _denominator (#806)
Emit an event for critical parameter changes.
Additional information: link
Auth.transferOwnership(address).adr (#178) lacks a zero-check on :
- owner = adr (#179)
CakeGold.constructor().owner_ (#495) lacks a zero-check on :
- autoLiquidityReceiver = owner_ (#505)
- marketingFeeReceiver = owner_ (#506)
CakeGold.setFeeReceivers(address,address)._autoLiquidityReceiver (#794) lacks a zero-check on :
- autoLiquidityReceiver = _autoLiquidityReceiver (#795)
CakeGold.setFeeReceivers(address,address)._marketingFeeReceiver (#794) lacks a zero-check on :
- marketingFeeReceiver = _marketingFeeReceiver (#796)
Check that the address is not zero.
Additional information: link
DividendDistributor.distributeDividend(address) (#369-380) has external calls inside a loop: CAKE.transfer(shareholder,amount) (#375)
Favor pull over push strategy for external calls.
Additional information: link
Reentrancy in CakeGold._transferFrom(address,address,uint256) (#544-575):
External calls:
- swapBack(recipient == pair) (#553)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#651-657)
- distributor.deposit{value: amountBNBReflection}() (#667)
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
- triggerAutoBuyback() (#554)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
External calls sending eth:
- swapBack(recipient == pair) (#553)
- distributor.deposit{value: amountBNBReflection}() (#667)
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
- triggerAutoBuyback() (#554)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
State variables written after the call(s):
- launch() (#556)
- launchedAt = block.number (#749)
- launch() (#556)
- launchedAtTimestamp = block.timestamp (#750)
Reentrancy in CakeGold.constructor() (#488-510):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#490)
State variables written after the call(s):
- _allowances[address(this)][address(router)] = ~ uint256(0) (#491)
- _balances[owner_] = _totalSupply (#508)
- autoLiquidityReceiver = owner_ (#505)
- distributor = new DividendDistributor(address(router)) (#493)
- isDividendExempt[pair] = true (#499)
- isDividendExempt[address(this)] = true (#500)
- isDividendExempt[DEAD] = true (#503)
- isFeeExempt[owner_] = true (#497)
- isFeeExempt[address(this)] = true (#501)
- isTxLimitExempt[owner_] = true (#498)
- isTxLimitExempt[address(this)] = true (#502)
- marketingFeeReceiver = owner_ (#506)
Reentrancy in DividendDistributor.deposit() (#318-336):
External calls:
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(0,path,address(this),block.timestamp) (#325-330)
State variables written after the call(s):
- dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)) (#335)
- totalDividends = totalDividends.add(amount) (#334)
Reentrancy in DividendDistributor.distributeDividend(address) (#369-380):
External calls:
- CAKE.transfer(shareholder,amount) (#375)
State variables written after the call(s):
- shareholderClaims[shareholder] = block.timestamp (#376)
Reentrancy in DividendDistributor.setShare(address,uint256) (#302-316):
External calls:
- distributeDividend(shareholder) (#304)
- CAKE.transfer(shareholder,amount) (#375)
State variables written after the call(s):
- addShareholder(shareholder) (#308)
- shareholderIndexes[shareholder] = shareholders.length (#403)
- removeShareholder(shareholder) (#310)
- shareholderIndexes[shareholders[shareholders.length - 1]] = shareholderIndexes[shareholder] (#409)
- addShareholder(shareholder) (#308)
- shareholders.push(shareholder) (#404)
- removeShareholder(shareholder) (#310)
- shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length - 1] (#408)
- shareholders.pop() (#410)
- totalShares = totalShares.sub(shares[shareholder].amount).add(amount) (#313)
Reentrancy in CakeGold.triggerAutoBuyback() (#707-712):
External calls:
- buyTokens(autoBuybackAmount,DEAD) (#708)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
State variables written after the call(s):
- autoBuybackAccumulator = autoBuybackAccumulator.add(autoBuybackAmount) (#710)
- autoBuybackBlockLast = block.number (#709)
- autoBuybackEnabled = false (#711)
Reentrancy in CakeGold.triggerManualBuyback(uint256,bool) (#694-700):
External calls:
- buyTokens(amount,DEAD) (#695)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
State variables written after the call(s):
- buybackMultiplierTriggeredAt = block.timestamp (#697)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in CakeGold._transferFrom(address,address,uint256) (#544-575):
External calls:
- swapBack(recipient == pair) (#553)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#651-657)
- distributor.deposit{value: amountBNBReflection}() (#667)
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
- triggerAutoBuyback() (#554)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
- distributor.setShare(sender,_balances[sender]) (#564)
- distributor.setShare(recipient,_balances[recipient]) (#565)
- distributor.process(distributorGas) (#567)
External calls sending eth:
- swapBack(recipient == pair) (#553)
- distributor.deposit{value: amountBNBReflection}() (#667)
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
- triggerAutoBuyback() (#554)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
Event emitted after the call(s):
- Transfer(sender,recipient,amountReceived) (#569)
Reentrancy in CakeGold._transferFrom(address,address,uint256) (#544-575):
External calls:
- swapBack(recipient == pair) (#553)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#651-657)
- distributor.deposit{value: amountBNBReflection}() (#667)
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
- triggerAutoBuyback() (#554)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
External calls sending eth:
- swapBack(recipient == pair) (#553)
- distributor.deposit{value: amountBNBReflection}() (#667)
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
- triggerAutoBuyback() (#554)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount) (#619)
- amountReceived = takeFee(sender,recipient,amount) (#560)
Reentrancy in CakeGold.constructor() (#488-510):
External calls:
- pair = IDEXFactory(router.factory()).createPair(WBNB,address(this)) (#490)
Event emitted after the call(s):
- Transfer(address(0),owner_,_totalSupply) (#509)
Reentrancy in CakeGold.swapBack(bool) (#635-684):
External calls:
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#651-657)
- distributor.deposit{value: amountBNBReflection}() (#667)
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
External calls sending eth:
- distributor.deposit{value: amountBNBReflection}() (#667)
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
- router.addLiquidityETH{value: amountBNBLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#674-681)
Event emitted after the call(s):
- AutoLiquify(amountBNBLiquidity,amountToLiquify) (#682)
Reentrancy in CakeGold.triggerManualBuyback(uint256,bool) (#694-700):
External calls:
- buyTokens(amount,DEAD) (#695)
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,to,block.timestamp) (#719-724)
Event emitted after the call(s):
- BuybackMultiplierActive(buybackMultiplierLength) (#698)
Apply the check-effects-interactions pattern.
Additional information: link
DividendDistributor.shouldDistribute(address) (#364-367) uses timestamp for comparisons
Dangerous comparisons:
- shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution (#365-366)
CakeGold._transferFrom(address,address,uint256) (#544-575) uses timestamp for comparisons
Dangerous comparisons:
- require(bool)(_balances[sender] > 0) (#556)
CakeGold.getMultipliedFee() (#601-610) uses timestamp for comparisons
Dangerous comparisons:
- launchedAtTimestamp + 86400 > block.timestamp (#602)
- buybackMultiplierTriggeredAt.add(buybackMultiplierLength) > block.timestamp (#604)
CakeGold.shouldSwapBack() (#624-629) uses timestamp for comparisons
Dangerous comparisons:
- msg.sender != pair && ! inSwap && swapEnabled && _balances[address(this)] >= swapThreshold (#625-628)
CakeGold.isOverLiquified(uint256,uint256) (#840-842) uses timestamp for comparisons
Dangerous comparisons:
- getLiquidityBacking(accuracy) > target (#841)
Avoid relying on block.timestamp.
Additional information: link
DividendDistributor.process(uint256) (#338-362) has costly operations inside a loop:
- currentIndex = 0 (#350)
DividendDistributor.distributeDividend(address) (#369-380) has costly operations inside a loop:
- totalDistributed = totalDistributed.add(amount) (#374)
DividendDistributor.process(uint256) (#338-362) has costly operations inside a loop:
- currentIndex ++ (#359)
Use a local variable to hold the loop computation result.
Additional information: link
SafeMath.div(uint256,uint256,string) (#94-99) is never used and should be removed
SafeMath.mod(uint256,uint256) (#83-85) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#101-106) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#26-32) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#53-58) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#60-65) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#41-51) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#34-39) is never used and should be removed
Remove unused functions.
Additional information: link
CakeGold._maxTxAmount (#426) is set pre-construction with a non-constant function or state variable:
- _totalSupply.div(1)
CakeGold.swapThreshold (#481) is set pre-construction with a non-constant function or state variable:
- _totalSupply / 20000
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 version^0.8.0 (#20) allows old versions
solc-0.8.0 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 CakeGold.swapBack(bool) (#635-684):
- (success) = address(marketingFeeReceiver).call{gas: 30000,value: amountBNBMarketing}() (#668)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IDEXRouter.WETH() (#193) is not in mixedCase
Parameter DividendDistributor.setDistributionCriteria(uint256,uint256)._minPeriod (#297) is not in mixedCase
Parameter DividendDistributor.setDistributionCriteria(uint256,uint256)._minDistribution (#297) is not in mixedCase
Variable DividendDistributor._token (#250) is not in mixedCase
Variable DividendDistributor.CAKE (#258) is not in mixedCase
Variable DividendDistributor.WBNB (#259) is not in mixedCase
Parameter CakeGold.tradingStatus(bool)._status (#631) is not in mixedCase
Parameter CakeGold.setAutoBuybackSettings(bool,uint256,uint256,uint256)._enabled (#727) is not in mixedCase
Parameter CakeGold.setAutoBuybackSettings(bool,uint256,uint256,uint256)._cap (#727) is not in mixedCase
Parameter CakeGold.setAutoBuybackSettings(bool,uint256,uint256,uint256)._amount (#727) is not in mixedCase
Parameter CakeGold.setAutoBuybackSettings(bool,uint256,uint256,uint256)._period (#727) is not in mixedCase
Parameter CakeGold.setBuyFees(uint256,uint256,uint256,uint256,uint256)._liquidityFee (#776) is not in mixedCase
Parameter CakeGold.setBuyFees(uint256,uint256,uint256,uint256,uint256)._buybackFee (#776) is not in mixedCase
Parameter CakeGold.setBuyFees(uint256,uint256,uint256,uint256,uint256)._reflectionFee (#776) is not in mixedCase
Parameter CakeGold.setBuyFees(uint256,uint256,uint256,uint256,uint256)._marketingFee (#776) is not in mixedCase
Parameter CakeGold.setBuyFees(uint256,uint256,uint256,uint256,uint256)._feeDenominator (#776) is not in mixedCase
Parameter CakeGold.setSellFees(uint256,uint256,uint256,uint256,uint256)._liquidityFee (#785) is not in mixedCase
Parameter CakeGold.setSellFees(uint256,uint256,uint256,uint256,uint256)._buybackFee (#785) is not in mixedCase
Parameter CakeGold.setSellFees(uint256,uint256,uint256,uint256,uint256)._reflectionFee (#785) is not in mixedCase
Parameter CakeGold.setSellFees(uint256,uint256,uint256,uint256,uint256)._marketingFee (#785) is not in mixedCase
Parameter CakeGold.setSellFees(uint256,uint256,uint256,uint256,uint256)._feeDenominator (#785) is not in mixedCase
Parameter CakeGold.setFeeReceivers(address,address)._autoLiquidityReceiver (#794) is not in mixedCase
Parameter CakeGold.setFeeReceivers(address,address)._marketingFeeReceiver (#794) is not in mixedCase
Parameter CakeGold.setSwapBackSettings(bool,uint256)._enabled (#799) is not in mixedCase
Parameter CakeGold.setSwapBackSettings(bool,uint256)._amount (#799) is not in mixedCase
Parameter CakeGold.setTargetLiquidity(uint256,uint256)._target (#804) is not in mixedCase
Parameter CakeGold.setTargetLiquidity(uint256,uint256)._denominator (#804) is not in mixedCase
Parameter CakeGold.setDistributionCriteria(uint256,uint256)._minPeriod (#814) is not in mixedCase
Parameter CakeGold.setDistributionCriteria(uint256,uint256)._minDistribution (#814) is not in mixedCase
Variable CakeGold.CAKE (#416) is not in mixedCase
Variable CakeGold.WBNB (#417) is not in mixedCase
Variable CakeGold.DEAD (#418) is not in mixedCase
Variable CakeGold.ZERO (#419) is not in mixedCase
Constant CakeGold._name (#421) is not in UPPER_CASE_WITH_UNDERSCORES
Constant CakeGold._symbol (#422) is not in UPPER_CASE_WITH_UNDERSCORES
Constant CakeGold._decimals (#423) is not in UPPER_CASE_WITH_UNDERSCORES
Variable CakeGold._totalSupply (#425) is not in mixedCase
Variable CakeGold._maxTxAmount (#426) is not in mixedCase
Variable CakeGold._balances (#428) is not in mixedCase
Variable CakeGold._allowances (#429) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable IDEXRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#198) is too similar to IDEXRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#199)
Prevent variables from having similar names.
Additional information: link
CakeGold.slitherConstructorVariables() (#414-847) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (#418)
CakeGold.slitherConstructorVariables() (#414-847) uses literals with too many digits:
- ZERO = 0x0000000000000000000000000000000000000000 (#419)
CakeGold.slitherConstructorVariables() (#414-847) uses literals with too many digits:
- _totalSupply = 100000 * (10 ** _decimals) (#425)
CakeGold.slitherConstructorVariables() (#414-847) uses literals with too many digits:
- distributorGas = 500000 (#478)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
CakeGold.CAKE (#416) is never used in CakeGold (#414-847)
Remove unused state variables.
Additional information: link
CakeGold.CAKE (#416) should be constant
CakeGold.DEAD (#418) should be constant
CakeGold.WBNB (#417) should be constant
CakeGold.ZERO (#419) should be constant
CakeGold._totalSupply (#425) should be constant
CakeGold.autoBuybackMultiplier (#470) should be constant
DividendDistributor.WBNB (#259) should be constant
DividendDistributor.dividendsPerShareAccuracyFactor (#272) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
authorize(address) should be declared external:
- Auth.authorize(address) (#150-152)
unauthorize(address) should be declared external:
- Auth.unauthorize(address) (#157-159)
transferOwnership(address) should be declared external:
- Auth.transferOwnership(address) (#178-182)
tradingStatus(bool) should be declared external:
- CakeGold.tradingStatus(bool) (#631-633)
getUnpaidEarnings(address) should be declared external:
- CakeGold.getUnpaidEarnings(address) (#822-824)
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