RavenMoon ($RVM) is an automatic $BUSD reward token and built on the BSC network.
You can earn $BUSD passive income just by holding $RVM.
2% of every buy/sell is taken (total 4%) and redistributed to all $RVM holders in $BUSD.
3% of every buy/sell is taken (total 6%) and used for buyback & burn events alongside the marketing. This will create a "HYPE LOOP" and $RVM will rise like a raven!
RavenMoon.sendBNB(address,uint256) (#998-1003) sends eth to arbitrary user
Dangerous calls:
- (success) = recipient.call{value: amount}() (#1001)
RavenMoon.swapAndSendDividends(uint256) (#1171-1189) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,address(this),block.timestamp) (#1176-1180)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
RavenMoon.claimStuckTokens(address) (#983-992) ignores return value by ERC20token.transfer(msg.sender,balance) (#991)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Reentrancy in RavenMoon._transfer(address,address,uint256) (#1049-1144):
External calls:
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(contractTokenBalance,0,path,address(this),block.timestamp) (#1084-1089)
- sendBNB(address(marketingWallet),marketingBNB) (#1095)
- (success) = recipient.call{value: amount}() (#1001)
- swapAndSendDividends(rewardBNB) (#1100)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,address(this),block.timestamp) (#1176-1180)
- success = IERC20(rewardToken).transfer(address(dividendTracker),balanceRewardToken) (#1183)
- dividendTracker.distributeDividends(balanceRewardToken) (#1186)
External calls sending eth:
- sendBNB(address(marketingWallet),marketingBNB) (#1095)
- (success) = recipient.call{value: amount}() (#1001)
- swapAndSendDividends(rewardBNB) (#1100)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,address(this),block.timestamp) (#1176-1180)
State variables written after the call(s):
- super._transfer(from,address(this),fees) (#1125)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#504)
- _balances[recipient] = _balances[recipient].add(amount) (#505)
- super._transfer(from,to,amount) (#1129)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#504)
- _balances[recipient] = _balances[recipient].add(amount) (#505)
- swapping = false (#1105)
Reentrancy in DividendPayingToken._withdrawDividendOfUser(address) (#600-616):
External calls:
- (success) = address(user).call{gas: 5000,value: _withdrawableDividend}() (#605)
State variables written after the call(s):
- withdrawnDividends[user] = withdrawnDividends[user].sub(_withdrawableDividend) (#608)
Apply the check-effects-interactions pattern.
Additional information: link
Contract ownership is not renounced (belongs to a wallet)
Combination 1: Reentrancy vulnerabilities + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 2: Unchecked transfer + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 3: Reentrancy vulnerabilities + Unchecked transfer vulnerability. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
RavenMoon._transfer(address,address,uint256) (#1049-1144) ignores return value by dividendTracker.process(gas) (#1137-1142)
RavenMoon.claim() (#1282-1284) ignores return value by dividendTracker.processAccount(address(msg.sender),false) (#1283)
RavenMoon.claimAddress(address) (#1286-1288) ignores return value by dividendTracker.processAccount(address(claimee),false) (#1287)
Ensure that all the return values of the function calls are used.
Additional information: link
Pragma version0.8.16 (#6) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.16 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
SafeMathInt.MAX_INT256 (#106) is never used in SafeMathInt (#104-141)
Remove unused state variables.
Additional information: link
Reentrancy in RavenMoon.updateDividendTracker(address) (#1194-1210):
External calls:
- newDividendTracker.excludeFromDividends(address(newDividendTracker)) (#1201)
- newDividendTracker.excludeFromDividends(address(this)) (#1202)
- newDividendTracker.excludeFromDividends(DEAD) (#1203)
- newDividendTracker.excludeFromDividends(address(uniswapV2Router)) (#1204)
- newDividendTracker.excludeFromDividends(address(uniswapV2Pair)) (#1205)
State variables written after the call(s):
- dividendTracker = newDividendTracker (#1209)
Apply the check-effects-interactions pattern.
Additional information: link
RavenMoon._transfer(address,address,uint256).iterations (#1137) is a local variable never initialized
RavenMoon._transfer(address,address,uint256).claims (#1137) is a local variable never initialized
RavenMoon._transfer(address,address,uint256).lastProcessedIndex (#1137) is a local variable never initialized
RavenMoon._transfer(address,address,uint256)._totalFees (#1109) 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
DividendPayingToken.constructor(string,string,address)._name (#577) shadows:
- ERC20._name (#434) (state variable)
DividendPayingToken.constructor(string,string,address)._symbol (#577) shadows:
- ERC20._symbol (#435) (state variable)
DividendPayingToken.dividendOf(address)._owner (#618) shadows:
- Ownable._owner (#19) (state variable)
DividendPayingToken.withdrawableDividendOf(address)._owner (#622) shadows:
- Ownable._owner (#19) (state variable)
DividendPayingToken.withdrawnDividendOf(address)._owner (#626) shadows:
- Ownable._owner (#19) (state variable)
DividendPayingToken.accumulativeDividendOf(address)._owner (#630) shadows:
- Ownable._owner (#19) (state variable)
Rename the local variables that shadow another component.
Additional information: link
DividendTracker.setLastProcessedIndex(uint256) (#724-726) should emit an event for:
- lastProcessedIndex = index (#725)
RavenMoon.setSwapTokensAtAmount(uint256) (#1155-1161) should emit an event for:
- swapTokensAtAmount = newAmount (#1160)
Emit an event for critical parameter changes.
Additional information: link
DividendPayingToken.constructor(string,string,address)._rewardToken (#577) lacks a zero-check on :
- rewardToken = _rewardToken (#578)
RavenMoon.updateUniswapV2Router(address)._uniswapV2Pair (#1009-1010) lacks a zero-check on :
- uniswapV2Pair = _uniswapV2Pair (#1011)
Check that the address is not zero.
Additional information: link
DividendPayingToken._withdrawDividendOfUser(address) (#600-616) has external calls inside a loop: (success) = address(user).call{gas: 5000,value: _withdrawableDividend}() (#605)
Favor pull over push strategy for external calls.
Additional information: link
Variable 'RavenMoon._transfer(address,address,uint256).lastProcessedIndex (#1137)' in RavenMoon._transfer(address,address,uint256) (#1049-1144) potentially used before declaration: ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1138)
Variable 'RavenMoon._transfer(address,address,uint256).claims (#1137)' in RavenMoon._transfer(address,address,uint256) (#1049-1144) potentially used before declaration: ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1138)
Variable 'RavenMoon._transfer(address,address,uint256).iterations (#1137)' in RavenMoon._transfer(address,address,uint256) (#1049-1144) potentially used before declaration: ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1138)
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 RavenMoon.constructor() (#935-965):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#947-948)
State variables written after the call(s):
- _approve(address(this),address(uniswapV2Router),type()(uint256).max) (#953)
- _allowances[owner][spender] = amount (#532)
- uniswapV2Pair = _uniswapV2Pair (#951)
- uniswapV2Router = _uniswapV2Router (#950)
Reentrancy in RavenMoon.constructor() (#935-965):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#947-948)
- _setAutomatedMarketMakerPair(_uniswapV2Pair,true) (#955)
- dividendTracker.excludeFromDividends(pair) (#1019)
- dividendTracker.excludeFromDividends(address(dividendTracker)) (#957)
- dividendTracker.excludeFromDividends(address(this)) (#958)
- dividendTracker.excludeFromDividends(DEAD) (#959)
- dividendTracker.excludeFromDividends(address(_uniswapV2Router)) (#960)
State variables written after the call(s):
- _isExcludedFromFees[owner()] = true (#962)
- _isExcludedFromFees[DEAD] = true (#963)
- _isExcludedFromFees[address(this)] = true (#964)
Reentrancy in DividendTracker.processAccount(address,bool) (#872-882):
External calls:
- amount = _withdrawDividendOfUser(account) (#873)
- (success) = address(user).call{gas: 5000,value: _withdrawableDividend}() (#605)
State variables written after the call(s):
- lastClaimTimes[account] = block.timestamp (#876)
Reentrancy in RavenMoon.updateUniswapV2Router(address) (#1005-1012):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#1009-1010)
State variables written after the call(s):
- uniswapV2Pair = _uniswapV2Pair (#1011)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in RavenMoon._setAutomatedMarketMakerPair(address,bool) (#1014-1023):
External calls:
- dividendTracker.excludeFromDividends(pair) (#1019)
Event emitted after the call(s):
- SetAutomatedMarketMakerPair(pair,value) (#1022)
Reentrancy in RavenMoon._transfer(address,address,uint256) (#1049-1144):
External calls:
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(contractTokenBalance,0,path,address(this),block.timestamp) (#1084-1089)
- sendBNB(address(marketingWallet),marketingBNB) (#1095)
- (success) = recipient.call{value: amount}() (#1001)
External calls sending eth:
- sendBNB(address(marketingWallet),marketingBNB) (#1095)
- (success) = recipient.call{value: amount}() (#1001)
Event emitted after the call(s):
- SendMarketing(marketingBNB) (#1096)
Reentrancy in RavenMoon._transfer(address,address,uint256) (#1049-1144):
External calls:
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(contractTokenBalance,0,path,address(this),block.timestamp) (#1084-1089)
- sendBNB(address(marketingWallet),marketingBNB) (#1095)
- (success) = recipient.call{value: amount}() (#1001)
- swapAndSendDividends(rewardBNB) (#1100)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,address(this),block.timestamp) (#1176-1180)
- success = IERC20(rewardToken).transfer(address(dividendTracker),balanceRewardToken) (#1183)
- dividendTracker.distributeDividends(balanceRewardToken) (#1186)
External calls sending eth:
- sendBNB(address(marketingWallet),marketingBNB) (#1095)
- (success) = recipient.call{value: amount}() (#1001)
- swapAndSendDividends(rewardBNB) (#1100)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,address(this),block.timestamp) (#1176-1180)
Event emitted after the call(s):
- SendDividends(balanceRewardToken) (#1187)
- swapAndSendDividends(rewardBNB) (#1100)
- Transfer(sender,recipient,amount) (#506)
- super._transfer(from,to,amount) (#1129)
- Transfer(sender,recipient,amount) (#506)
- super._transfer(from,address(this),fees) (#1125)
Reentrancy in RavenMoon._transfer(address,address,uint256) (#1049-1144):
External calls:
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(contractTokenBalance,0,path,address(this),block.timestamp) (#1084-1089)
- sendBNB(address(marketingWallet),marketingBNB) (#1095)
- (success) = recipient.call{value: amount}() (#1001)
- swapAndSendDividends(rewardBNB) (#1100)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,address(this),block.timestamp) (#1176-1180)
- success = IERC20(rewardToken).transfer(address(dividendTracker),balanceRewardToken) (#1183)
- dividendTracker.distributeDividends(balanceRewardToken) (#1186)
- dividendTracker.setBalance(address(from),balanceOf(from)) (#1131)
- dividendTracker.setBalance(address(to),balanceOf(to)) (#1132)
- dividendTracker.process(gas) (#1137-1142)
External calls sending eth:
- sendBNB(address(marketingWallet),marketingBNB) (#1095)
- (success) = recipient.call{value: amount}() (#1001)
- swapAndSendDividends(rewardBNB) (#1100)
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,address(this),block.timestamp) (#1176-1180)
Event emitted after the call(s):
- ProcessedDividendTracker(iterations,claims,lastProcessedIndex,true,gas,tx.origin) (#1138)
Reentrancy in RavenMoon.constructor() (#935-965):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#947-948)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#533)
- _approve(address(this),address(uniswapV2Router),type()(uint256).max) (#953)
Reentrancy in RavenMoon.constructor() (#935-965):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#947-948)
- _setAutomatedMarketMakerPair(_uniswapV2Pair,true) (#955)
- dividendTracker.excludeFromDividends(pair) (#1019)
Event emitted after the call(s):
- SetAutomatedMarketMakerPair(pair,value) (#1022)
- _setAutomatedMarketMakerPair(_uniswapV2Pair,true) (#955)
Reentrancy in DividendTracker.processAccount(address,bool) (#872-882):
External calls:
- amount = _withdrawDividendOfUser(account) (#873)
- (success) = address(user).call{gas: 5000,value: _withdrawableDividend}() (#605)
Event emitted after the call(s):
- Claim(account,amount,automatic) (#877)
Reentrancy in RavenMoon.processDividendTracker(uint256) (#1277-1280):
External calls:
- (iterations,claims,lastProcessedIndex) = dividendTracker.process(gas) (#1278)
Event emitted after the call(s):
- ProcessedDividendTracker(iterations,claims,lastProcessedIndex,false,gas,tx.origin) (#1279)
Reentrancy in RavenMoon.swapAndSendDividends(uint256) (#1171-1189):
External calls:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,address(this),block.timestamp) (#1176-1180)
- success = IERC20(rewardToken).transfer(address(dividendTracker),balanceRewardToken) (#1183)
- dividendTracker.distributeDividends(balanceRewardToken) (#1186)
External calls sending eth:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(0,path,address(this),block.timestamp) (#1176-1180)
Event emitted after the call(s):
- SendDividends(balanceRewardToken) (#1187)
Reentrancy in RavenMoon.updateDividendTracker(address) (#1194-1210):
External calls:
- newDividendTracker.excludeFromDividends(address(newDividendTracker)) (#1201)
- newDividendTracker.excludeFromDividends(address(this)) (#1202)
- newDividendTracker.excludeFromDividends(DEAD) (#1203)
- newDividendTracker.excludeFromDividends(address(uniswapV2Router)) (#1204)
- newDividendTracker.excludeFromDividends(address(uniswapV2Pair)) (#1205)
Event emitted after the call(s):
- UpdateDividendTracker(newAddress,address(dividendTracker)) (#1207)
Apply the check-effects-interactions pattern.
Additional information: link
DividendTracker.getAccount(address) (#736-779) uses timestamp for comparisons
Dangerous comparisons:
- nextClaimTime > block.timestamp (#776-778)
DividendTracker.canAutoClaim(uint256) (#800-806) uses timestamp for comparisons
Dangerous comparisons:
- lastClaimTime > block.timestamp (#801)
- block.timestamp.sub(lastClaimTime) >= claimWait (#805)
Avoid relying on block.timestamp.
Additional information: link
Context._msgData() (#13-15) is never used and should be removed
DividendPayingToken._transfer(address,address,uint256) (#635-641) is never used and should be removed
SafeMath.div(uint256,uint256) (#82-84) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#86-92) is never used and should be removed
SafeMath.mod(uint256,uint256) (#94-96) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#98-101) is never used and should be removed
SafeMathInt.abs(int256) (#133-136) is never used and should be removed
SafeMathInt.div(int256,int256) (#116-122) is never used and should be removed
SafeMathInt.mul(int256,int256) (#108-115) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in DividendPayingToken._withdrawDividendOfUser(address) (#600-616):
- (success) = address(user).call{gas: 5000,value: _withdrawableDividend}() (#605)
Low level call in RavenMoon.sendBNB(address,uint256) (#998-1003):
- (success) = recipient.call{value: amount}() (#1001)
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() (#237) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#238) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#255) is not in mixedCase
Function IUniswapV2Router01.WETH() (#275) is not in mixedCase
Parameter DividendPayingToken.dividendOf(address)._owner (#618) is not in mixedCase
Parameter DividendPayingToken.withdrawableDividendOf(address)._owner (#622) is not in mixedCase
Parameter DividendPayingToken.withdrawnDividendOf(address)._owner (#626) is not in mixedCase
Parameter DividendPayingToken.accumulativeDividendOf(address)._owner (#630) is not in mixedCase
Constant DividendPayingToken.magnitude (#568) is not in UPPER_CASE_WITH_UNDERSCORES
Parameter DividendTracker.updateMinimumTokenBalanceForDividends(uint256)._newMinimumBalance (#702) is not in mixedCase
Parameter DividendTracker.getAccount(address)._account (#736) is not in mixedCase
Parameter RavenMoon.changeMarketingWallet(address)._marketingWallet (#1042) is not in mixedCase
Parameter RavenMoon.setSwapEnabled(bool)._swapEnabled (#1147) is not in mixedCase
Parameter RavenMoon.setSwapWithLimit(bool)._swapWithLimit (#1163) is not in mixedCase
Variable RavenMoon.DEAD (#903) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#280) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#281)
Variable DividendPayingToken._withdrawDividendOfUser(address)._withdrawableDividend (#601) is too similar to DividendTracker.getAccount(address).withdrawableDividends (#741)
Prevent variables from having similar names.
Additional information: link
DividendTracker.getAccountAtIndex(uint256) (#781-798) uses literals with too many digits:
- (0x0000000000000000000000000000000000000000,- 1,- 1,0,0,0,0,0) (#792)
RavenMoon.updateGasForProcessing(uint256) (#1212-1217) uses literals with too many digits:
- require(bool,string)(newValue >= 200000 && newValue <= 500000,gasForProcessing must be between 200,000 and 500,000) (#1213)
RavenMoon.slitherConstructorVariables() (#885-1302) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (#903)
RavenMoon.slitherConstructorVariables() (#885-1302) uses literals with too many digits:
- gasForProcessing = 300000 (#915)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
RavenMoon.DEAD (#903) should be constant
RavenMoon._totalFeesOnBuy (#893) should be constant
RavenMoon._totalFeesOnSell (#894) should be constant
RavenMoon.marketingFeeOnBuy (#890) should be constant
RavenMoon.marketingFeeOnSell (#891) should be constant
RavenMoon.rewardFeeOnBuy (#887) should be constant
RavenMoon.rewardFeeOnSell (#888) should be constant
RavenMoon.rewardToken (#914) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#36-38)
get(IterableMapping.Map,address) should be declared external:
- IterableMapping.get(IterableMapping.Map,address) (#159-161)
getIndexOfKey(IterableMapping.Map,address) should be declared external:
- IterableMapping.getIndexOfKey(IterableMapping.Map,address) (#163-168)
getKeyAtIndex(IterableMapping.Map,uint256) should be declared external:
- IterableMapping.getKeyAtIndex(IterableMapping.Map,uint256) (#170-172)
size(IterableMapping.Map) should be declared external:
- IterableMapping.size(IterableMapping.Map) (#174-176)
name() should be declared external:
- ERC20.name() (#442-444)
symbol() should be declared external:
- ERC20.symbol() (#446-448)
decimals() should be declared external:
- ERC20.decimals() (#450-452)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#462-465)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#467-469)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#471-474)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#476-484)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#486-489)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#491-494)
distributeDividends(uint256) should be declared external:
- DividendPayingToken.distributeDividends(uint256) (#583-594)
withdrawDividend() should be declared external:
- DividendPayingToken.withdrawDividend() (#596-598)
- DividendTracker.withdrawDividend() (#698-700)
dividendOf(address) should be declared external:
- DividendPayingToken.dividendOf(address) (#618-620)
withdrawnDividendOf(address) should be declared external:
- DividendPayingToken.withdrawnDividendOf(address) (#626-628)
getAccountAtIndex(uint256) should be declared external:
- DividendTracker.getAccountAtIndex(uint256) (#781-798)
process(uint256) should be declared external:
- DividendTracker.process(uint256) (#825-870)
isExcludedFromFees(address) should be declared external:
- RavenMoon.isExcludedFromFees(address) (#1033-1035)
updateDividendTracker(address) should be declared external:
- RavenMoon.updateDividendTracker(address) (#1194-1210)
updateGasForProcessing(uint256) should be declared external:
- RavenMoon.updateGasForProcessing(uint256) (#1212-1217)
withdrawableDividendOf(address) should be declared external:
- RavenMoon.withdrawableDividendOf(address) (#1235-1237)
dividendTokenBalanceOf(address) should be declared external:
- RavenMoon.dividendTokenBalanceOf(address) (#1239-1241)
totalRewardsEarned(address) should be declared external:
- RavenMoon.totalRewardsEarned(address) (#1243-1245)
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 KYC or doxxing proof
Unable to verify that token and website are owned by the same team (no listings + unable to find contract on website)
Unable to find token on CoinGecko
Additional information: link
Unable to find token on CoinMarketCap
Additional information: link
Token is not listed at Mobula.Finance
Additional information: link
Unable to find token on CoinHunt
Additional information: link
Unable to verify token contract address on the website
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
Twitter account has few posts