Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
RoyalRiches.sendETHToTeam(uint256) (#992-998) sends eth to arbitrary user
Dangerous calls:
- _marketingWalletAddress.transfer(amount.div(3)) (#995)
- _dipWalletAddress.transfer(amount.div(3)) (#996)
- _useWalletAddress.transfer(amount.div(15).mul(2)) (#997)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in RoyalRiches._transfer(address,address,uint256) (#914-974):
External calls:
- swapTokensForEth(contractTokenBalance) (#959)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#983-989)
External calls sending eth:
- sendETHToTeam(address(this).balance) (#963)
- _devWalletAddress.transfer(amount.div(15).mul(2)) (#993)
- _devWalletAddress2.transfer(amount.div(15)) (#994)
- _marketingWalletAddress.transfer(amount.div(3)) (#995)
- _dipWalletAddress.transfer(amount.div(3)) (#996)
- _useWalletAddress.transfer(amount.div(15).mul(2)) (#997)
State variables written after the call(s):
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _rOwned[address(this)] = _rOwned[address(this)].add(rTeam) (#1124)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1050)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1070)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1092)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1113)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1051)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1072)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1093)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1115)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _rTotal = _rTotal.sub(rFee) (#1130)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _tOwned[address(this)] = _tOwned[address(this)].add(tTeam) (#1126)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#1112)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#1091)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1071)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1114)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable._lockTime (#216) is never initialized. It is used in:
- Ownable.getUnlockTime() (#253-255)
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
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.
Low level call in Address.sendValue(address,uint256) (#132-143):
- (success) = recipient.call{value: amount}() (#138)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#188-210):
- (success,returndata) = target.call{value: weiValue}(data) (#195-197)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
RoyalRiches.sendETHToTeam(uint256) (#992-998) performs a multiplication on the result of a division:
-_devWalletAddress.transfer(amount.div(15).mul(2)) (#993)
RoyalRiches.sendETHToTeam(uint256) (#992-998) performs a multiplication on the result of a division:
-_useWalletAddress.transfer(amount.div(15).mul(2)) (#997)
Consider ordering multiplication before division.
Additional information: link
RoyalRiches._transfer(address,address,uint256) (#914-974) uses tx.origin for authorization: require(bool,string)(! _isBlackListed[tx.origin],You are blacklisted) (#924)
Do not use tx.origin for authorization.
Additional information: link
RoyalRiches.allowance(address,address).owner (#716) shadows:
- Ownable.owner() (#229-231) (function)
RoyalRiches._approve(address,address,uint256).owner (#903) shadows:
- Ownable.owner() (#229-231) (function)
Rename the local variables that shadow another component.
Additional information: link
RoyalRiches._setTaxFee(uint256) (#1239-1242) should emit an event for:
- _taxFee = taxFee (#1241)
RoyalRiches._setTeamFee(uint256) (#1244-1247) should emit an event for:
- _teamFee = teamFee (#1246)
RoyalRiches._setMaxTxAmount(uint256) (#1282-1284) should emit an event for:
- _maxTxAmount = maxTxAmount (#1283)
RoyalRiches._setMaxWalletSize(uint256) (#1286-1288) should emit an event for:
- _maxWalletSize = maxWalletSize (#1287)
Emit an event for critical parameter changes.
Additional information: link
RoyalRiches.constructor(address,address,address).marketingWalletAddress (#660) lacks a zero-check on :
- _marketingWalletAddress = marketingWalletAddress (#666)
RoyalRiches.constructor(address,address,address).dipWalletAddress (#661) lacks a zero-check on :
- _dipWalletAddress = dipWalletAddress (#667)
RoyalRiches.constructor(address,address,address).useWalletAddress (#662) lacks a zero-check on :
- _useWalletAddress = useWalletAddress (#668)
RoyalRiches._setUseWallet(address).useWalletAddress (#1261) lacks a zero-check on :
- _useWalletAddress = useWalletAddress (#1265)
RoyalRiches._setMarketingWallet(address).marketingWalletAddress (#1268) lacks a zero-check on :
- _marketingWalletAddress = marketingWalletAddress (#1272)
RoyalRiches._setDipWallet(address).dipWalletAddress (#1275) lacks a zero-check on :
- _dipWalletAddress = dipWalletAddress (#1279)
Check that the address is not zero.
Additional information: link
Reentrancy in RoyalRiches._transfer(address,address,uint256) (#914-974):
External calls:
- swapTokensForEth(contractTokenBalance) (#959)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#983-989)
External calls sending eth:
- sendETHToTeam(address(this).balance) (#963)
- _devWalletAddress.transfer(amount.div(15).mul(2)) (#993)
- _devWalletAddress2.transfer(amount.div(15)) (#994)
- _marketingWalletAddress.transfer(amount.div(3)) (#995)
- _dipWalletAddress.transfer(amount.div(3)) (#996)
- _useWalletAddress.transfer(amount.div(15).mul(2)) (#997)
State variables written after the call(s):
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _previousTaxFee = _taxFee (#886)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _previousTeamFee = _teamFee (#887)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _tFeeTotal = _tFeeTotal.add(tFee) (#1131)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _taxFee = _previousTaxFee (#894)
- _taxFee = 0 (#889)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _teamFee = _previousTeamFee (#895)
- _teamFee = 0 (#890)
Reentrancy in RoyalRiches.constructor(address,address,address) (#659-684):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#675-676)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#680)
- _isExcludedFromFee[address(this)] = true (#681)
- uniswapV2Router = _uniswapV2Router (#678)
Reentrancy in RoyalRiches.transferFrom(address,address,uint256) (#734-749):
External calls:
- _transfer(sender,recipient,amount) (#739)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#983-989)
External calls sending eth:
- _transfer(sender,recipient,amount) (#739)
- _devWalletAddress.transfer(amount.div(15).mul(2)) (#993)
- _devWalletAddress2.transfer(amount.div(15)) (#994)
- _marketingWalletAddress.transfer(amount.div(3)) (#995)
- _dipWalletAddress.transfer(amount.div(3)) (#996)
- _useWalletAddress.transfer(amount.div(15).mul(2)) (#997)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#740-747)
- _allowances[owner][spender] = amount (#910)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in RoyalRiches._transfer(address,address,uint256) (#914-974):
External calls:
- swapTokensForEth(contractTokenBalance) (#959)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#983-989)
External calls sending eth:
- sendETHToTeam(address(this).balance) (#963)
- _devWalletAddress.transfer(amount.div(15).mul(2)) (#993)
- _devWalletAddress2.transfer(amount.div(15)) (#994)
- _marketingWalletAddress.transfer(amount.div(3)) (#995)
- _dipWalletAddress.transfer(amount.div(3)) (#996)
- _useWalletAddress.transfer(amount.div(15).mul(2)) (#997)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#1054)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- Transfer(sender,recipient,tTransferAmount) (#1075)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- Transfer(sender,recipient,tTransferAmount) (#1096)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- Transfer(sender,recipient,tTransferAmount) (#1118)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
Reentrancy in RoyalRiches.constructor(address,address,address) (#659-684):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#675-676)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#683)
Reentrancy in RoyalRiches.transferFrom(address,address,uint256) (#734-749):
External calls:
- _transfer(sender,recipient,amount) (#739)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#983-989)
External calls sending eth:
- _transfer(sender,recipient,amount) (#739)
- _devWalletAddress.transfer(amount.div(15).mul(2)) (#993)
- _devWalletAddress2.transfer(amount.div(15)) (#994)
- _marketingWalletAddress.transfer(amount.div(3)) (#995)
- _dipWalletAddress.transfer(amount.div(3)) (#996)
- _useWalletAddress.transfer(amount.div(15).mul(2)) (#997)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#911)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#740-747)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#123-130) uses assembly
- INLINE ASM (#126-128)
Address._functionCallWithValue(address,bytes,uint256,string) (#188-210) uses assembly
- INLINE ASM (#202-205)
Do not use evm assembly.
Additional information: link
RoyalRiches.removeFromBlacklist(address) (#845-855) has costly operations inside a loop:
- _blackList.pop() (#851)
RoyalRiches.includeAccount(address) (#870-881) has costly operations inside a loop:
- _excluded.pop() (#877)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#188-210) is never used and should be removed
Address.functionCall(address,bytes) (#146-151) is never used and should be removed
Address.functionCall(address,bytes,string) (#153-159) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#161-173) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#175-186) is never used and should be removed
Address.isContract(address) (#123-130) is never used and should be removed
Address.sendValue(address,uint256) (#132-143) is never used and should be removed
Context._msgData() (#19-22) is never used and should be removed
SafeMath.mod(uint256,uint256) (#108-110) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#112-119) is never used and should be removed
Remove unused functions.
Additional information: link
RoyalRiches._previousTaxFee (#629) is set pre-construction with a non-constant function or state variable:
- _taxFee
RoyalRiches._previousTeamFee (#630) is set pre-construction with a non-constant function or state variable:
- _teamFee
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
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#321) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#323) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#354) is not in mixedCase
Function IUniswapV2Router01.WETH() (#400) is not in mixedCase
Event RoyalRichesbotAddedToBlacklist(address) (#650) is not in CapWords
Event RoyalRichesbotRemovedFromBlacklist(address) (#651) is not in CapWords
Function RoyalRiches._getTaxFee() (#1223-1225) is not in mixedCase
Function RoyalRiches._getTeamFee() (#1227-1229) is not in mixedCase
Function RoyalRiches._getMaxTxAmount() (#1231-1233) is not in mixedCase
Function RoyalRiches._getETHBalance() (#1235-1237) is not in mixedCase
Function RoyalRiches._setTaxFee(uint256) (#1239-1242) is not in mixedCase
Function RoyalRiches._setTeamFee(uint256) (#1244-1247) is not in mixedCase
Function RoyalRiches._setUseWallet(address) (#1261-1266) is not in mixedCase
Function RoyalRiches._setMarketingWallet(address) (#1268-1273) is not in mixedCase
Function RoyalRiches._setDipWallet(address) (#1275-1280) is not in mixedCase
Function RoyalRiches._setMaxTxAmount(uint256) (#1282-1284) is not in mixedCase
Function RoyalRiches._setMaxWalletSize(uint256) (#1286-1288) is not in mixedCase
Constant RoyalRiches._tTotal (#619) is not in UPPER_CASE_WITH_UNDERSCORES
Constant RoyalRiches._name (#623) is not in UPPER_CASE_WITH_UNDERSCORES
Constant RoyalRiches._symbol (#624) is not in UPPER_CASE_WITH_UNDERSCORES
Constant RoyalRiches._decimals (#625) is not in UPPER_CASE_WITH_UNDERSCORES
Variable RoyalRiches._devWalletAddress (#632) is not in mixedCase
Variable RoyalRiches._devWalletAddress2 (#633) is not in mixedCase
Variable RoyalRiches._marketingWalletAddress (#635) is not in mixedCase
Variable RoyalRiches._dipWalletAddress (#636) is not in mixedCase
Variable RoyalRiches._useWalletAddress (#637) is not in mixedCase
Constant RoyalRiches._numOfTokensToExchangeForTeam (#647) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#20)" inContext (#14-23)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in RoyalRiches._transfer(address,address,uint256) (#914-974):
External calls:
- sendETHToTeam(address(this).balance) (#963)
- _devWalletAddress.transfer(amount.div(15).mul(2)) (#993)
- _devWalletAddress2.transfer(amount.div(15)) (#994)
- _marketingWalletAddress.transfer(amount.div(3)) (#995)
- _dipWalletAddress.transfer(amount.div(3)) (#996)
- _useWalletAddress.transfer(amount.div(15).mul(2)) (#997)
State variables written after the call(s):
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _previousTaxFee = _taxFee (#886)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _previousTeamFee = _teamFee (#887)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _rOwned[address(this)] = _rOwned[address(this)].add(rTeam) (#1124)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1050)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1070)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1092)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1113)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1051)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1072)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1093)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1115)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _rTotal = _rTotal.sub(rFee) (#1130)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _tFeeTotal = _tFeeTotal.add(tFee) (#1131)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _tOwned[address(this)] = _tOwned[address(this)].add(tTeam) (#1126)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#1112)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#1091)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1071)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1114)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _taxFee = _previousTaxFee (#894)
- _taxFee = 0 (#889)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- _teamFee = _previousTeamFee (#895)
- _teamFee = 0 (#890)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#1054)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- Transfer(sender,recipient,tTransferAmount) (#1096)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- Transfer(sender,recipient,tTransferAmount) (#1075)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
- Transfer(sender,recipient,tTransferAmount) (#1118)
- _tokenTransfer(sender,recipient,amount,takeFee) (#973)
Reentrancy in RoyalRiches.transferFrom(address,address,uint256) (#734-749):
External calls:
- _transfer(sender,recipient,amount) (#739)
- _devWalletAddress.transfer(amount.div(15).mul(2)) (#993)
- _devWalletAddress2.transfer(amount.div(15)) (#994)
- _marketingWalletAddress.transfer(amount.div(3)) (#995)
- _dipWalletAddress.transfer(amount.div(3)) (#996)
- _useWalletAddress.transfer(amount.div(15).mul(2)) (#997)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#740-747)
- _allowances[owner][spender] = amount (#910)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#911)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#740-747)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#405) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#406)
Variable RoyalRiches._transferFromExcluded(address,address,uint256).rTransferAmount (#1085) is too similar to RoyalRiches._getTValues(uint256,uint256,uint256).tTransferAmount (#1178)
Variable RoyalRiches._transferToExcluded(address,address,uint256).rTransferAmount (#1064) is too similar to RoyalRiches._getTValues(uint256,uint256,uint256).tTransferAmount (#1178)
Variable RoyalRiches._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1199) is too similar to RoyalRiches._getTValues(uint256,uint256,uint256).tTransferAmount (#1178)
Variable RoyalRiches._getValues(uint256).rTransferAmount (#1154) is too similar to RoyalRiches._transferToExcluded(address,address,uint256).tTransferAmount (#1066)
Variable RoyalRiches._getValues(uint256).rTransferAmount (#1154) is too similar to RoyalRiches._transferStandard(address,address,uint256).tTransferAmount (#1046)
Variable RoyalRiches._transferStandard(address,address,uint256).rTransferAmount (#1044) is too similar to RoyalRiches._transferBothExcluded(address,address,uint256).tTransferAmount (#1108)
Variable RoyalRiches._getValues(uint256).rTransferAmount (#1154) is too similar to RoyalRiches._getValues(uint256).tTransferAmount (#1148)
Variable RoyalRiches._transferFromExcluded(address,address,uint256).rTransferAmount (#1085) is too similar to RoyalRiches._transferBothExcluded(address,address,uint256).tTransferAmount (#1108)
Variable RoyalRiches._transferBothExcluded(address,address,uint256).rTransferAmount (#1106) is too similar to RoyalRiches._transferBothExcluded(address,address,uint256).tTransferAmount (#1108)
Variable RoyalRiches._transferToExcluded(address,address,uint256).rTransferAmount (#1064) is too similar to RoyalRiches._transferBothExcluded(address,address,uint256).tTransferAmount (#1108)
Variable RoyalRiches._getValues(uint256).rTransferAmount (#1154) is too similar to RoyalRiches._getTValues(uint256,uint256,uint256).tTransferAmount (#1178)
Variable RoyalRiches._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1199) is too similar to RoyalRiches._transferBothExcluded(address,address,uint256).tTransferAmount (#1108)
Variable RoyalRiches.reflectionFromToken(uint256,bool).rTransferAmount (#817) is too similar to RoyalRiches._transferBothExcluded(address,address,uint256).tTransferAmount (#1108)
Variable RoyalRiches._transferStandard(address,address,uint256).rTransferAmount (#1044) is too similar to RoyalRiches._transferStandard(address,address,uint256).tTransferAmount (#1046)
Variable RoyalRiches._transferFromExcluded(address,address,uint256).rTransferAmount (#1085) is too similar to RoyalRiches._transferToExcluded(address,address,uint256).tTransferAmount (#1066)
Variable RoyalRiches._transferToExcluded(address,address,uint256).rTransferAmount (#1064) is too similar to RoyalRiches._transferToExcluded(address,address,uint256).tTransferAmount (#1066)
Variable RoyalRiches._transferFromExcluded(address,address,uint256).rTransferAmount (#1085) is too similar to RoyalRiches._transferStandard(address,address,uint256).tTransferAmount (#1046)
Variable RoyalRiches._transferToExcluded(address,address,uint256).rTransferAmount (#1064) is too similar to RoyalRiches._transferStandard(address,address,uint256).tTransferAmount (#1046)
Variable RoyalRiches._getValues(uint256).rTransferAmount (#1154) is too similar to RoyalRiches._transferBothExcluded(address,address,uint256).tTransferAmount (#1108)
Variable RoyalRiches._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1199) is too similar to RoyalRiches._transferStandard(address,address,uint256).tTransferAmount (#1046)
Variable RoyalRiches.reflectionFromToken(uint256,bool).rTransferAmount (#817) is too similar to RoyalRiches._getValues(uint256).tTransferAmount (#1148)
Variable RoyalRiches._transferBothExcluded(address,address,uint256).rTransferAmount (#1106) is too similar to RoyalRiches._getTValues(uint256,uint256,uint256).tTransferAmount (#1178)
Variable RoyalRiches._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1199) is too similar to RoyalRiches._transferFromExcluded(address,address,uint256).tTransferAmount (#1087)
Variable RoyalRiches._transferStandard(address,address,uint256).rTransferAmount (#1044) is too similar to RoyalRiches._transferToExcluded(address,address,uint256).tTransferAmount (#1066)
Variable RoyalRiches.reflectionFromToken(uint256,bool).rTransferAmount (#817) is too similar to RoyalRiches._transferStandard(address,address,uint256).tTransferAmount (#1046)
Variable RoyalRiches._getValues(uint256).rTransferAmount (#1154) is too similar to RoyalRiches._transferFromExcluded(address,address,uint256).tTransferAmount (#1087)
Variable RoyalRiches._transferToExcluded(address,address,uint256).rTransferAmount (#1064) is too similar to RoyalRiches._transferFromExcluded(address,address,uint256).tTransferAmount (#1087)
Variable RoyalRiches._transferStandard(address,address,uint256).rTransferAmount (#1044) is too similar to RoyalRiches._transferFromExcluded(address,address,uint256).tTransferAmount (#1087)
Variable RoyalRiches.reflectionFromToken(uint256,bool).rTransferAmount (#817) is too similar to RoyalRiches._transferToExcluded(address,address,uint256).tTransferAmount (#1066)
Variable RoyalRiches._transferFromExcluded(address,address,uint256).rTransferAmount (#1085) is too similar to RoyalRiches._transferFromExcluded(address,address,uint256).tTransferAmount (#1087)
Variable RoyalRiches._transferStandard(address,address,uint256).rTransferAmount (#1044) is too similar to RoyalRiches._getTValues(uint256,uint256,uint256).tTransferAmount (#1178)
Variable RoyalRiches._transferBothExcluded(address,address,uint256).rTransferAmount (#1106) is too similar to RoyalRiches._getValues(uint256).tTransferAmount (#1148)
Variable RoyalRiches.reflectionFromToken(uint256,bool).rTransferAmount (#817) is too similar to RoyalRiches._transferFromExcluded(address,address,uint256).tTransferAmount (#1087)
Variable RoyalRiches._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1199) is too similar to RoyalRiches._getValues(uint256).tTransferAmount (#1148)
Variable RoyalRiches._transferBothExcluded(address,address,uint256).rTransferAmount (#1106) is too similar to RoyalRiches._transferStandard(address,address,uint256).tTransferAmount (#1046)
Variable RoyalRiches.reflectionFromToken(uint256,bool).rTransferAmount (#817) is too similar to RoyalRiches._getTValues(uint256,uint256,uint256).tTransferAmount (#1178)
Variable RoyalRiches._transferToExcluded(address,address,uint256).rTransferAmount (#1064) is too similar to RoyalRiches._getValues(uint256).tTransferAmount (#1148)
Variable RoyalRiches._transferBothExcluded(address,address,uint256).rTransferAmount (#1106) is too similar to RoyalRiches._transferToExcluded(address,address,uint256).tTransferAmount (#1066)
Variable RoyalRiches._transferStandard(address,address,uint256).rTransferAmount (#1044) is too similar to RoyalRiches._getValues(uint256).tTransferAmount (#1148)
Variable RoyalRiches._transferFromExcluded(address,address,uint256).rTransferAmount (#1085) is too similar to RoyalRiches._getValues(uint256).tTransferAmount (#1148)
Variable RoyalRiches._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1199) is too similar to RoyalRiches._transferToExcluded(address,address,uint256).tTransferAmount (#1066)
Variable RoyalRiches._transferBothExcluded(address,address,uint256).rTransferAmount (#1106) is too similar to RoyalRiches._transferFromExcluded(address,address,uint256).tTransferAmount (#1087)
Prevent variables from having similar names.
Additional information: link
RoyalRiches.slitherConstructorVariables() (#603-1290) uses literals with too many digits:
- _maxTxAmount = 4000000 * 10 ** 18 (#646)
RoyalRiches.slitherConstructorVariables() (#603-1290) uses literals with too many digits:
- _maxWalletSize = 10000000 * 10 ** 18 (#648)
RoyalRiches.slitherConstructorConstantVariables() (#603-1290) uses literals with too many digits:
- _tTotal = 200000000 * 10 ** 18 (#619)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Ownable._previousOwner (#215) is never used in RoyalRiches (#603-1290)
Remove unused state variables.
Additional information: link
Ownable._lockTime (#216) should be constant
Ownable._previousOwner (#215) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#239-242)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#244-251)
getUnlockTime() should be declared external:
- Ownable.getUnlockTime() (#253-255)
name() should be declared external:
- RoyalRiches.name() (#686-688)
symbol() should be declared external:
- RoyalRiches.symbol() (#690-692)
decimals() should be declared external:
- RoyalRiches.decimals() (#694-696)
totalSupply() should be declared external:
- RoyalRiches.totalSupply() (#698-700)
transfer(address,uint256) should be declared external:
- RoyalRiches.transfer(address,uint256) (#707-714)
allowance(address,address) should be declared external:
- RoyalRiches.allowance(address,address) (#716-723)
approve(address,uint256) should be declared external:
- RoyalRiches.approve(address,uint256) (#725-732)
transferFrom(address,address,uint256) should be declared external:
- RoyalRiches.transferFrom(address,address,uint256) (#734-749)
increaseAllowance(address,uint256) should be declared external:
- RoyalRiches.increaseAllowance(address,uint256) (#751-762)
decreaseAllowance(address,uint256) should be declared external:
- RoyalRiches.decreaseAllowance(address,uint256) (#764-778)
isExcluded(address) should be declared external:
- RoyalRiches.isExcluded(address) (#780-782)
totalFees() should be declared external:
- RoyalRiches.totalFees() (#791-793)
deliver(uint256) should be declared external:
- RoyalRiches.deliver(uint256) (#795-805)
reflectionFromToken(uint256,bool) should be declared external:
- RoyalRiches.reflectionFromToken(uint256,bool) (#807-820)
isExcludedFromFee(address) should be declared external:
- RoyalRiches.isExcludedFromFee(address) (#898-900)
_getTaxFee() should be declared external:
- RoyalRiches._getTaxFee() (#1223-1225)
_getTeamFee() should be declared external:
- RoyalRiches._getTeamFee() (#1227-1229)
_getMaxTxAmount() should be declared external:
- RoyalRiches._getMaxTxAmount() (#1231-1233)
_getETHBalance() should be declared external:
- RoyalRiches._getETHBalance() (#1235-1237)
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