🐋Whale Club is Dual Reward DeFi Protocol with Auto-Staking & Auto-Compounding, Offering The Most Sustainable & Realistic Fix APY Return - 96,000% without the gimmick of "Highest APY in Crypto"!
🎯Fixed APY - 96,000%
💸5% USDT Reward (Auto Distributed)
🔑Access to Private Whale Club Community on Discord
🖼1000 Whale Club Limited-NFT Collection
🎰Weekly Giveaway - WhalePot
✅KYC + Double Audit
How Whale Club Different From others APY Project?
✅ WE ARE THE LOWEST APY RETURN IN CRYPTO SPACE!
✅ WE ARE NOT BULLSHITING INVESTORS WITH HIGH APY WHERE IT WILL NOT SUSTAIN IN A LONG RUN, WE PROVIDE REALISTIC APY RETURN - 96,000%
✅ WE BURN OUR LIQUIDITY STRAIGHT TO DEAD ADDRESS
✅ AUTO BURN EVERY TRANSACTION TO DEAD ADDRESS TOO
📖 Whitepaper - https://whaleclub.gitbook.io/whale-club-docs/
WhaleClub.swapBack() (#864-900) sends eth to arbitrary user
Dangerous calls:
- (success) = address(clubFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(clubFund).div(clubFund.add(USDTDividend))}() (#890-895)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in WhaleClub._transferFrom(address,address,uint256) (#746-789):
External calls:
- rebase() (#758)
- pairContract.sync() (#705)
- addLiquidity() (#762)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#841-847)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,AutoLiquidityReceiver,block.timestamp) (#852-859)
- swapBack() (#766)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#878-884)
- (success) = address(clubFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(clubFund).div(clubFund.add(USDTDividend))}() (#890-895)
- distributor.deposit{value: amountETHToTreasuryAndSIF.mul(USDTDividend).div(clubFund.add(USDTDividend))}() (#897-899)
External calls sending eth:
- addLiquidity() (#762)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,AutoLiquidityReceiver,block.timestamp) (#852-859)
- swapBack() (#766)
- (success) = address(clubFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(clubFund).div(clubFund.add(USDTDividend))}() (#890-895)
- distributor.deposit{value: amountETHToTreasuryAndSIF.mul(USDTDividend).div(clubFund.add(USDTDividend))}() (#897-899)
State variables written after the call(s):
- _gonBalances[sender] = _gonBalances[sender].sub(gonAmount) (#770)
- _gonBalances[recipient] = _gonBalances[recipient].add(gonAmountReceived) (#774-776)
- gonAmountReceived = takeFee(sender,recipient,gonAmount) (#771-773)
- _gonBalances[AutoBurnAddress] = _gonBalances[AutoBurnAddress].add(gonAmount.div(feeDenominator).mul(autoBurn)) (#806-808)
- _gonBalances[address(this)] = _gonBalances[address(this)].add(gonAmount.div(feeDenominator).mul(_treasuryFee.add(USDTDividend))) (#809-811)
- _gonBalances[AutoLiquidityReceiver] = _gonBalances[AutoLiquidityReceiver].add(gonAmount.div(feeDenominator).mul(autoLiquidity)) (#812-814)
- swapBack() (#766)
- inSwap = true (#629)
- inSwap = false (#631)
Apply the check-effects-interactions pattern.
Additional information: link
DividendDistributor.distributeDividend(address) (#464-475) ignores return value by USDT.transfer(shareholder,amount) (#470)
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.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
WhaleClub.isContract(address) (#1106-1110) uses assembly
- INLINE ASM (#1108)
Do not use evm assembly.
Additional information: link
DividendDistributor.process(uint256) (#435-458) has costly operations inside a loop:
- currentIndex = 0 (#446)
DividendDistributor.distributeDividend(address) (#464-475) has costly operations inside a loop:
- totalDistributed = totalDistributed.add(amount) (#469)
DividendDistributor.process(uint256) (#435-458) has costly operations inside a loop:
- currentIndex ++ (#455)
Use a local variable to hold the loop computation result.
Additional information: link
WhaleClub.rebase() (#688-708) performs a multiplication on the result of a division:
-times = deltaTime.div(600) (#693)
-epoch = times.mul(10) (#694)
WhaleClub.rebase() (#688-708) performs a multiplication on the result of a division:
-times = deltaTime.div(600) (#693)
-_lastRebasedTime = _lastRebasedTime.add(times.mul(600)) (#703)
WhaleClub.takeFee(address,address,uint256) (#791-818) performs a multiplication on the result of a division:
-feeAmount = gonAmount.div(feeDenominator).mul(_totalFee) (#804)
WhaleClub.takeFee(address,address,uint256) (#791-818) performs a multiplication on the result of a division:
-_gonBalances[AutoBurnAddress] = _gonBalances[AutoBurnAddress].add(gonAmount.div(feeDenominator).mul(autoBurn)) (#806-808)
WhaleClub.takeFee(address,address,uint256) (#791-818) performs a multiplication on the result of a division:
-_gonBalances[address(this)] = _gonBalances[address(this)].add(gonAmount.div(feeDenominator).mul(_treasuryFee.add(USDTDividend))) (#809-811)
WhaleClub.takeFee(address,address,uint256) (#791-818) performs a multiplication on the result of a division:
-_gonBalances[AutoLiquidityReceiver] = _gonBalances[AutoLiquidityReceiver].add(gonAmount.div(feeDenominator).mul(autoLiquidity)) (#812-814)
WhaleClub.getLiquidityBacking(uint256) (#1068-1076) performs a multiplication on the result of a division:
-liquidityBalance = _gonBalances[pair].div(_gonsPerFragment) (#1073)
-accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply()) (#1074-1075)
Consider ordering multiplication before division.
Additional information: link
Reentrancy in DividendDistributor.distributeDividend(address) (#464-475):
External calls:
- USDT.transfer(shareholder,amount) (#470)
State variables written after the call(s):
- shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount) (#472)
- shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount) (#473)
Reentrancy in DividendDistributor.process(uint256) (#435-458):
External calls:
- distributeDividend(shareholders[currentIndex]) (#450)
- USDT.transfer(shareholder,amount) (#470)
State variables written after the call(s):
- currentIndex ++ (#455)
Reentrancy in DividendDistributor.setShare(address,uint256) (#399-413):
External calls:
- distributeDividend(shareholder) (#401)
- USDT.transfer(shareholder,amount) (#470)
State variables written after the call(s):
- shares[shareholder].amount = amount (#411)
- shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount) (#412)
Apply the check-effects-interactions pattern.
Additional information: link
WhaleClub.addLiquidity() (#820-862) ignores return value by router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,AutoLiquidityReceiver,block.timestamp) (#852-859)
Ensure that all the return values of the function calls are used.
Additional information: link
DividendDistributor.setDistributionCriteria(uint256,uint256) (#394-397) should emit an event for:
- minPeriod = _minPeriod (#395)
- minDistribution = _minDistribution (#396)
Emit an event for critical parameter changes.
Additional information: link
WhaleClub.setFeeReceivers(address)._clubFundReceiver (#1063) lacks a zero-check on :
- clubFundReceiver = _clubFundReceiver (#1065)
Check that the address is not zero.
Additional information: link
DividendDistributor.distributeDividend(address) (#464-475) has external calls inside a loop: USDT.transfer(shareholder,amount) (#470)
Favor pull over push strategy for external calls.
Additional information: link
Reentrancy in WhaleClub.addLiquidity() (#820-862):
External calls:
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#841-847)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,AutoLiquidityReceiver,block.timestamp) (#852-859)
External calls sending eth:
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,AutoLiquidityReceiver,block.timestamp) (#852-859)
State variables written after the call(s):
- _lastAddLiquidityTime = block.timestamp (#861)
Reentrancy in WhaleClub.constructor() (#652-686):
External calls:
- pair = IPancakeSwapFactory(router.factory()).createPair(router.WETH(),address(this)) (#654-657)
State variables written after the call(s):
- AutoBurnAddress = 0x000000000000000000000000000000000000dEaD (#661)
- AutoLiquidityReceiver = 0x000000000000000000000000000000000000dEaD (#659)
- _allowedFragments[address(this)][address(router)] = uint256(- 1) (#663)
- _autoAddLiquidity = false (#680)
- _autoRebase = false (#679)
- _gonBalances[clubFundReceiver] = TOTAL_GONS (#675)
- _gonsPerFragment = TOTAL_GONS.div(_totalSupply) (#676)
- _initRebaseStartTime = block.timestamp (#677)
- _isFeeExempt[clubFundReceiver] = true (#681)
- _isFeeExempt[address(this)] = true (#682)
- _lastRebasedTime = block.timestamp (#678)
- _transferOwnership(clubFundReceiver) (#684)
- _owner = newOwner (#547)
- _totalSupply = INITIAL_FRAGMENTS_SUPPLY (#674)
- clubFundReceiver = 0xe7Ff1aE40aa5aE2608469c99a291e81F6E4548c1 (#660)
- distributor = new DividendDistributor(0x10ED43C718714eb63d5aA57B78B54704E256024E) (#666)
- isDividendExempt[msg.sender] = true (#669)
- isDividendExempt[pair] = true (#670)
- isDividendExempt[address(this)] = true (#671)
- isDividendExempt[DEAD] = true (#672)
- pairContract = IPancakeSwapPair(pair) (#664)
- whaleclubDividendReceiver = address(distributor) (#667)
Reentrancy in DividendDistributor.deposit() (#415-433):
External calls:
- router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(0,path,address(this),block.timestamp) (#422-427)
State variables written after the call(s):
- dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)) (#432)
- totalDividends = totalDividends.add(amount) (#431)
Reentrancy in DividendDistributor.distributeDividend(address) (#464-475):
External calls:
- USDT.transfer(shareholder,amount) (#470)
State variables written after the call(s):
- shareholderClaims[shareholder] = block.timestamp (#471)
Reentrancy in DividendDistributor.setShare(address,uint256) (#399-413):
External calls:
- distributeDividend(shareholder) (#401)
- USDT.transfer(shareholder,amount) (#470)
State variables written after the call(s):
- addShareholder(shareholder) (#405)
- shareholderIndexes[shareholder] = shareholders.length (#497)
- removeShareholder(shareholder) (#407)
- shareholderIndexes[shareholders[shareholders.length - 1]] = shareholderIndexes[shareholder] (#503)
- addShareholder(shareholder) (#405)
- shareholders.push(shareholder) (#498)
- removeShareholder(shareholder) (#407)
- shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length - 1] (#502)
- shareholders.pop() (#504)
- totalShares = totalShares.sub(shares[shareholder].amount).add(amount) (#410)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in WhaleClub._transferFrom(address,address,uint256) (#746-789):
External calls:
- rebase() (#758)
- pairContract.sync() (#705)
- addLiquidity() (#762)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#841-847)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,AutoLiquidityReceiver,block.timestamp) (#852-859)
- swapBack() (#766)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#878-884)
- (success) = address(clubFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(clubFund).div(clubFund.add(USDTDividend))}() (#890-895)
- distributor.deposit{value: amountETHToTreasuryAndSIF.mul(USDTDividend).div(clubFund.add(USDTDividend))}() (#897-899)
- distributor.setShare(sender,balanceOf(sender)) (#778)
- distributor.setShare(recipient,balanceOf(recipient)) (#779)
- distributor.process(distributorGas) (#781)
External calls sending eth:
- addLiquidity() (#762)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,AutoLiquidityReceiver,block.timestamp) (#852-859)
- swapBack() (#766)
- (success) = address(clubFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(clubFund).div(clubFund.add(USDTDividend))}() (#890-895)
- distributor.deposit{value: amountETHToTreasuryAndSIF.mul(USDTDividend).div(clubFund.add(USDTDividend))}() (#897-899)
Event emitted after the call(s):
- Transfer(sender,recipient,gonAmountReceived.div(_gonsPerFragment)) (#783-787)
Reentrancy in WhaleClub._transferFrom(address,address,uint256) (#746-789):
External calls:
- rebase() (#758)
- pairContract.sync() (#705)
- addLiquidity() (#762)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#841-847)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,AutoLiquidityReceiver,block.timestamp) (#852-859)
- swapBack() (#766)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#878-884)
- (success) = address(clubFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(clubFund).div(clubFund.add(USDTDividend))}() (#890-895)
- distributor.deposit{value: amountETHToTreasuryAndSIF.mul(USDTDividend).div(clubFund.add(USDTDividend))}() (#897-899)
External calls sending eth:
- addLiquidity() (#762)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,AutoLiquidityReceiver,block.timestamp) (#852-859)
- swapBack() (#766)
- (success) = address(clubFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(clubFund).div(clubFund.add(USDTDividend))}() (#890-895)
- distributor.deposit{value: amountETHToTreasuryAndSIF.mul(USDTDividend).div(clubFund.add(USDTDividend))}() (#897-899)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount.div(_gonsPerFragment)) (#816)
- gonAmountReceived = takeFee(sender,recipient,gonAmount) (#771-773)
Reentrancy in WhaleClub.constructor() (#652-686):
External calls:
- pair = IPancakeSwapFactory(router.factory()).createPair(router.WETH(),address(this)) (#654-657)
Event emitted after the call(s):
- OwnershipTransferred(_owner,newOwner) (#546)
- _transferOwnership(clubFundReceiver) (#684)
- Transfer(address(0x0),clubFundReceiver,_totalSupply) (#685)
Reentrancy in WhaleClub.rebase() (#688-708):
External calls:
- pairContract.sync() (#705)
Event emitted after the call(s):
- LogRebase(epoch,_totalSupply) (#707)
Apply the check-effects-interactions pattern.
Additional information: link
DividendDistributor.shouldDistribute(address) (#460-462) uses timestamp for comparisons
Dangerous comparisons:
- shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution (#461)
WhaleClub.rebase() (#688-708) uses timestamp for comparisons
Dangerous comparisons:
- i < times (#696)
WhaleClub.shouldRebase() (#928-935) uses timestamp for comparisons
Dangerous comparisons:
- _autoRebase && (_totalSupply < MAX_SUPPLY) && msg.sender != pair && ! inSwap && block.timestamp >= (_lastRebasedTime + 600) (#929-934)
WhaleClub.shouldAddLiquidity() (#937-943) uses timestamp for comparisons
Dangerous comparisons:
- _autoAddLiquidity && ! inSwap && msg.sender != pair && block.timestamp >= (_lastAddLiquidityTime + 3600) (#938-942)
Avoid relying on block.timestamp.
Additional information: link
SafeMath.mod(uint256,uint256) (#105-108) is never used and should be removed
SafeMathInt.abs(int256) (#50-53) is never used and should be removed
SafeMathInt.add(int256,int256) (#44-48) is never used and should be removed
SafeMathInt.div(int256,int256) (#32-36) is never used and should be removed
SafeMathInt.mul(int256,int256) (#24-30) is never used and should be removed
SafeMathInt.sub(int256,int256) (#38-42) is never used and should be removed
Remove unused functions.
Additional information: link
WhaleClub.totalFee (#606-609) is set pre-construction with a non-constant function or state variable:
- autoLiquidity.add(clubFund).add(USDTDividend).add(autoBurn)
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.7.4 (#18) allows old versions
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 WhaleClub.swapBack() (#864-900):
- (success) = address(clubFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(clubFund).div(clubFund.add(USDTDividend))}() (#890-895)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IPancakeSwapPair.DOMAIN_SEPARATOR() (#155) is not in mixedCase
Function IPancakeSwapPair.PERMIT_TYPEHASH() (#156) is not in mixedCase
Function IPancakeSwapPair.MINIMUM_LIQUIDITY() (#173) is not in mixedCase
Function IPancakeSwapRouter.WETH() (#193) is not in mixedCase
Parameter DividendDistributor.setDistributionCriteria(uint256,uint256)._minPeriod (#394) is not in mixedCase
Parameter DividendDistributor.setDistributionCriteria(uint256,uint256)._minDistribution (#394) is not in mixedCase
Variable DividendDistributor._token (#349) is not in mixedCase
Variable DividendDistributor.USDT (#357) is not in mixedCase
Parameter WhaleClub.setAutoRebase(bool)._flag (#951) is not in mixedCase
Parameter WhaleClub.setAutoAddLiquidity(bool)._flag (#960) is not in mixedCase
Parameter WhaleClub.checkFeeExempt(address)._addr (#1023) is not in mixedCase
Parameter WhaleClub.setDistributionCriteria(uint256,uint256)._minPeriod (#1038) is not in mixedCase
Parameter WhaleClub.setDistributionCriteria(uint256,uint256)._minDistribution (#1038) is not in mixedCase
Parameter WhaleClub.setFeeReceivers(address)._clubFundReceiver (#1063) is not in mixedCase
Parameter WhaleClub.setWhitelist(address)._addr (#1078) is not in mixedCase
Parameter WhaleClub.setBotBlacklist(address,bool)._botAddress (#1082) is not in mixedCase
Parameter WhaleClub.setBotBlacklist(address,bool)._flag (#1082) is not in mixedCase
Parameter WhaleClub.setBlocklists(address[],bool)._flag (#1087) is not in mixedCase
Parameter WhaleClub.setLP(address)._address (#1094) is not in mixedCase
Variable WhaleClub._isFeeExempt (#587) is not in mixedCase
Variable WhaleClub.USDTDividend (#603) is not in mixedCase
Variable WhaleClub.DEAD (#612) is not in mixedCase
Variable WhaleClub.ZERO (#613) is not in mixedCase
Variable WhaleClub.AutoLiquidityReceiver (#615) is not in mixedCase
Variable WhaleClub.AutoBurnAddress (#622) is not in mixedCase
Variable WhaleClub._autoRebase (#639) is not in mixedCase
Variable WhaleClub._autoAddLiquidity (#640) is not in mixedCase
Variable WhaleClub._initRebaseStartTime (#641) is not in mixedCase
Variable WhaleClub._lastRebasedTime (#642) is not in mixedCase
Variable WhaleClub._lastAddLiquidityTime (#643) is not in mixedCase
Variable WhaleClub._totalSupply (#644) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable IPancakeSwapRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#198) is too similar to IPancakeSwapRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#199)
Prevent variables from having similar names.
Additional information: link
WhaleClub.constructor() (#652-686) uses literals with too many digits:
- AutoLiquidityReceiver = 0x000000000000000000000000000000000000dEaD (#659)
WhaleClub.constructor() (#652-686) uses literals with too many digits:
- AutoBurnAddress = 0x000000000000000000000000000000000000dEaD (#661)
WhaleClub.slitherConstructorVariables() (#579-1114) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (#612)
WhaleClub.slitherConstructorVariables() (#579-1114) uses literals with too many digits:
- ZERO = 0x0000000000000000000000000000000000000000 (#613)
WhaleClub.slitherConstructorVariables() (#579-1114) uses literals with too many digits:
- distributorGas = 500000 (#620)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SafeMathInt.MAX_INT256 (#22) is never used in SafeMathInt (#20-54)
Remove unused state variables.
Additional information: link
DividendDistributor.dividendsPerShareAccuracyFactor (#372) should be constant
WhaleClub.DEAD (#612) should be constant
WhaleClub.USDTDividend (#603) should be constant
WhaleClub.ZERO (#613) should be constant
WhaleClub.autoBurn (#605) should be constant
WhaleClub.autoLiquidity (#601) should be constant
WhaleClub.clubFund (#602) should be constant
WhaleClub.feeDenominator (#610) should be constant
WhaleClub.sellFee (#604) should be constant
WhaleClub.swapEnabled (#623) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
owner() should be declared external:
- Ownable.owner() (#522-524)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#535-538)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#540-542)
name() should be declared external:
- ERC20Detailed.name() (#566-568)
symbol() should be declared external:
- ERC20Detailed.symbol() (#570-572)
decimals() should be declared external:
- ERC20Detailed.decimals() (#574-576)
getLiquidityBacking(uint256) should be declared external:
- WhaleClub.getLiquidityBacking(uint256) (#1068-1076)
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
Young tokens have high risks of scam / price dump / death
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 Youtube account
Unable to find Discord account