Secured MoonRat Token Token Logo

SMRAT [Secured MoonRat] Token

About SMRAT

Listings

Token 13 months
CoinGecko 12 months
CoinMarketCap 13 months
white paper

The Secured MoonRat Token brings the most revolutionary mechanism to BSC ecosystem: Earn $BNB just by holding SMRAT token

The Secured MoonRat Token is the stablest and the most secured version to Earn BNB

Secured MoonRat Token is a community-driven, fair launched DeFi project built on Binance Smart Chain #BSC. Three functions occur during each trade: Reflection, LP Acquisition, & Burn

Laser Scorebeta Last Audit: 9 May 2022

report
Code:

Third Party Audit: Certik audit

Utils.swapETHForTokens(address,address,uint256) (#778-797) sends eth to arbitrary user
Dangerous calls:
- pancakeRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: ethAmount}(0,path,address(recipient),block.timestamp + 360) (#791-796)
Utils.addLiquidity(address,address,uint256,uint256) (#799-816) sends eth to arbitrary user
Dangerous calls:
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
Ensure that an arbitrary user cannot withdraw unauthorized funds.

Additional information: link

Reentrancy in SecuredMoonRat._transfer(address,address,uint256,uint256) (#1200-1225):
External calls:
- swapAndLiquify(from,to) (#1213)
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
- pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#769-775)
- Utils.swapTokensForEth(address(pancakeRouter),tokenAmountToBeSwapped) (#1422)
- Utils.addLiquidity(address(pancakeRouter),owner(),otherPiece,bnbToBeAddedToLiquidity) (#1435)
External calls sending eth:
- swapAndLiquify(from,to) (#1213)
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#1156)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1253)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1262)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1273)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#1078)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1254)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1264)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1274)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#1080)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- _rTotal = _rTotal.sub(rFee) (#1111)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#1158)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#1077)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#1272)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1263)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#1079)
Apply the check-effects-interactions pattern.

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.

SecuredMoonRat.claimBNBReward() (#1331-1353) contains a tautology or contradiction:
- require(bool,string)(balanceOf(msg.sender) >= 0,Error: must own MRAT to claim reward) (#1333)
Fix the incorrect comparison by changing the value type or the comparison.

Additional information: link

SecuredMoonRat._decimals (#915) should be constant
SecuredMoonRat._name (#913) should be constant
SecuredMoonRat._symbol (#914) should be constant
SecuredMoonRat._tTotal (#909) should be constant
SecuredMoonRat.rewardThreshold (#1297) should be constant
SecuredMoonRat.threshHoldTopUpRate (#1283) should be constant
Add the constant attributes to state variables that never change.

Additional information: link

Variable IPancakeRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#549) is too similar to IPancakeRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#550)
Variable SecuredMoonRat._transferToExcluded(address,address,uint256).rTransferAmount (#1261) is too similar to SecuredMoonRat._transferToExcluded(address,address,uint256).tTransferAmount (#1261)
Variable SecuredMoonRat._getValues(uint256).rTransferAmount (#1117) is too similar to SecuredMoonRat._transferToExcluded(address,address,uint256).tTransferAmount (#1261)
Variable SecuredMoonRat._transferBothExcluded(address,address,uint256).rTransferAmount (#1076) is too similar to SecuredMoonRat._transferBothExcluded(address,address,uint256).tTransferAmount (#1076)
Variable SecuredMoonRat._transferFromExcluded(address,address,uint256).rTransferAmount (#1271) is too similar to SecuredMoonRat._transferToExcluded(address,address,uint256).tTransferAmount (#1261)
Variable SecuredMoonRat._transferStandard(address,address,uint256).rTransferAmount (#1252) is too similar to SecuredMoonRat._transferStandard(address,address,uint256).tTransferAmount (#1252)
Variable SecuredMoonRat._transferStandard(address,address,uint256).rTransferAmount (#1252) is too similar to SecuredMoonRat._getTValues(uint256).tTransferAmount (#1124)
Variable SecuredMoonRat.reflectionFromToken(uint256,bool).rTransferAmount (#1041) is too similar to SecuredMoonRat._getTValues(uint256).tTransferAmount (#1124)
Variable SecuredMoonRat._transferBothExcluded(address,address,uint256).rTransferAmount (#1076) is too similar to SecuredMoonRat._transferStandard(address,address,uint256).tTransferAmount (#1252)
Variable SecuredMoonRat._transferBothExcluded(address,address,uint256).rTransferAmount (#1076) is too similar to SecuredMoonRat._getTValues(uint256).tTransferAmount (#1124)
Variable SecuredMoonRat._transferToExcluded(address,address,uint256).rTransferAmount (#1261) is too similar to SecuredMoonRat._getTValues(uint256).tTransferAmount (#1124)
Variable SecuredMoonRat._getValues(uint256).rTransferAmount (#1117) is too similar to SecuredMoonRat._transferStandard(address,address,uint256).tTransferAmount (#1252)
Variable SecuredMoonRat._getValues(uint256).rTransferAmount (#1117) is too similar to SecuredMoonRat._getTValues(uint256).tTransferAmount (#1124)
Variable SecuredMoonRat._transferFromExcluded(address,address,uint256).rTransferAmount (#1271) is too similar to SecuredMoonRat._transferBothExcluded(address,address,uint256).tTransferAmount (#1076)
Variable SecuredMoonRat._transferBothExcluded(address,address,uint256).rTransferAmount (#1076) is too similar to SecuredMoonRat._transferFromExcluded(address,address,uint256).tTransferAmount (#1271)
Variable SecuredMoonRat._transferFromExcluded(address,address,uint256).rTransferAmount (#1271) is too similar to SecuredMoonRat._transferStandard(address,address,uint256).tTransferAmount (#1252)
Variable SecuredMoonRat._transferFromExcluded(address,address,uint256).rTransferAmount (#1271) is too similar to SecuredMoonRat._getTValues(uint256).tTransferAmount (#1124)
Variable SecuredMoonRat._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1132) is too similar to SecuredMoonRat._transferToExcluded(address,address,uint256).tTransferAmount (#1261)
Variable SecuredMoonRat._transferFromExcluded(address,address,uint256).rTransferAmount (#1271) is too similar to SecuredMoonRat._transferFromExcluded(address,address,uint256).tTransferAmount (#1271)
Variable SecuredMoonRat._transferStandard(address,address,uint256).rTransferAmount (#1252) is too similar to SecuredMoonRat._transferToExcluded(address,address,uint256).tTransferAmount (#1261)
Variable SecuredMoonRat.reflectionFromToken(uint256,bool).rTransferAmount (#1041) is too similar to SecuredMoonRat._transferToExcluded(address,address,uint256).tTransferAmount (#1261)
Variable SecuredMoonRat._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1132) is too similar to SecuredMoonRat._getTValues(uint256).tTransferAmount (#1124)
Variable SecuredMoonRat._transferBothExcluded(address,address,uint256).rTransferAmount (#1076) is too similar to SecuredMoonRat._transferToExcluded(address,address,uint256).tTransferAmount (#1261)
Variable SecuredMoonRat._getValues(uint256).rTransferAmount (#1117) is too similar to SecuredMoonRat._transferFromExcluded(address,address,uint256).tTransferAmount (#1271)
Variable SecuredMoonRat._transferToExcluded(address,address,uint256).rTransferAmount (#1261) is too similar to SecuredMoonRat._transferStandard(address,address,uint256).tTransferAmount (#1252)
Variable SecuredMoonRat.reflectionFromToken(uint256,bool).rTransferAmount (#1041) is too similar to SecuredMoonRat._transferStandard(address,address,uint256).tTransferAmount (#1252)
Variable SecuredMoonRat._transferToExcluded(address,address,uint256).rTransferAmount (#1261) is too similar to SecuredMoonRat._getValues(uint256).tTransferAmount (#1116)
Variable SecuredMoonRat._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1132) is too similar to SecuredMoonRat._transferFromExcluded(address,address,uint256).tTransferAmount (#1271)
Variable SecuredMoonRat.reflectionFromToken(uint256,bool).rTransferAmount (#1041) is too similar to SecuredMoonRat._getValues(uint256).tTransferAmount (#1116)
Variable SecuredMoonRat._transferToExcluded(address,address,uint256).rTransferAmount (#1261) is too similar to SecuredMoonRat._transferBothExcluded(address,address,uint256).tTransferAmount (#1076)
Variable SecuredMoonRat.reflectionFromToken(uint256,bool).rTransferAmount (#1041) is too similar to SecuredMoonRat._transferBothExcluded(address,address,uint256).tTransferAmount (#1076)
Variable SecuredMoonRat._transferBothExcluded(address,address,uint256).rTransferAmount (#1076) is too similar to SecuredMoonRat._getValues(uint256).tTransferAmount (#1116)
Variable SecuredMoonRat._transferToExcluded(address,address,uint256).rTransferAmount (#1261) is too similar to SecuredMoonRat._transferFromExcluded(address,address,uint256).tTransferAmount (#1271)
Variable SecuredMoonRat._transferStandard(address,address,uint256).rTransferAmount (#1252) is too similar to SecuredMoonRat._getValues(uint256).tTransferAmount (#1116)
Variable SecuredMoonRat.reflectionFromToken(uint256,bool).rTransferAmount (#1041) is too similar to SecuredMoonRat._transferFromExcluded(address,address,uint256).tTransferAmount (#1271)
Variable SecuredMoonRat._transferStandard(address,address,uint256).rTransferAmount (#1252) is too similar to SecuredMoonRat._transferBothExcluded(address,address,uint256).tTransferAmount (#1076)
Variable SecuredMoonRat._getValues(uint256).rTransferAmount (#1117) is too similar to SecuredMoonRat._getValues(uint256).tTransferAmount (#1116)
Variable SecuredMoonRat._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1132) is too similar to SecuredMoonRat._transferStandard(address,address,uint256).tTransferAmount (#1252)
Variable SecuredMoonRat._transferFromExcluded(address,address,uint256).rTransferAmount (#1271) is too similar to SecuredMoonRat._getValues(uint256).tTransferAmount (#1116)
Variable SecuredMoonRat._getValues(uint256).rTransferAmount (#1117) is too similar to SecuredMoonRat._transferBothExcluded(address,address,uint256).tTransferAmount (#1076)
Variable SecuredMoonRat._transferStandard(address,address,uint256).rTransferAmount (#1252) is too similar to SecuredMoonRat._transferFromExcluded(address,address,uint256).tTransferAmount (#1271)
Variable SecuredMoonRat._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1132) is too similar to SecuredMoonRat._getValues(uint256).tTransferAmount (#1116)
Variable SecuredMoonRat._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#1132) is too similar to SecuredMoonRat._transferBothExcluded(address,address,uint256).tTransferAmount (#1076)
Prevent variables from having similar names.

Additional information: link

Address._functionCallWithValue(address,bytes,uint256,string) (#365-386) is never used and should be removed
Address.functionCall(address,bytes) (#325-327) is never used and should be removed
Address.functionCall(address,bytes,string) (#335-337) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#350-352) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#360-363) is never used and should be removed
Address.isContract(address) (#272-281) is never used and should be removed
Address.sendValue(address,uint256) (#299-305) is never used and should be removed
Context._msgData() (#244-247) is never used and should be removed
Remove unused functions.

Additional information: link

SecuredMoonRat._rTotal (#910) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
SecuredMoonRat._maxTxAmount (#1284) is set pre-construction with a non-constant function or state variable:
- _tTotal
SecuredMoonRat._previousTaxFee (#1293) is set pre-construction with a non-constant function or state variable:
- _taxFee
SecuredMoonRat._previousLiquidityFee (#1296) is set pre-construction with a non-constant function or state variable:
- _liquidityFee
SecuredMoonRat.minTokenNumberToSell (#1299) is set pre-construction with a non-constant function or state variable:
- _tTotal.mul(1).div(10000).div(10)
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.6.8 (#9) allows old versions
Pragma version>=0.6.8 (#679) allows old versions
Pragma version>=0.6.8 (#821) allows old versions
Pragma version>=0.6.8 (#889) allows old versions
solc-0.6.8 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 Address.sendValue(address,uint256) (#299-305):
- (success) = recipient.call{value: amount}() (#303)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#365-386):
- (success,returndata) = target.call{value: weiValue}(data) (#369)
Low level call in SecuredMoonRat.claimBNBReward() (#1331-1353):
- (sent) = address(msg.sender).call{value: reward}() (#1351)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Function IPancakePair.DOMAIN_SEPARATOR() (#506) is not in mixedCase
Function IPancakePair.PERMIT_TYPEHASH() (#507) is not in mixedCase
Function IPancakePair.MINIMUM_LIQUIDITY() (#524) is not in mixedCase
Function IPancakeRouter01.WETH() (#544) is not in mixedCase
Parameter SecuredMoonRat.setSwapAndLiquifyEnabled(bool)._enabled (#1102) is not in mixedCase
Parameter SecuredMoonRat.calculateTaxFee(uint256)._amount (#1161) is not in mixedCase
Parameter SecuredMoonRat.calculateLiquidityFee(uint256)._amount (#1167) is not in mixedCase
Parameter SecuredMoonRat.setExcludeFromMaxTx(address,bool)._address (#1305) is not in mixedCase
Variable SecuredMoonRat._maxTxAmount (#1284) is not in mixedCase
Variable SecuredMoonRat._taxFee (#1292) is not in mixedCase
Variable SecuredMoonRat._liquidityFee (#1295) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Redundant expression "this (#245)" inContext (#239-248)
Remove redundant statements if they congest code but offer no value.

Additional information: link

SecuredMoonRat.constructor(address) (#941-965) uses literals with too many digits:
- _isExcludedFromMaxTx[address(0x000000000000000000000000000000000000dEaD)] = true (#961)
SecuredMoonRat.calculateBNBReward(address) (#1309-1324) uses literals with too many digits:
- totalSupply = uint256(_tTotal).sub(balanceOf(address(0))).sub(balanceOf(0x000000000000000000000000000000000000dEaD)).sub(balanceOf(address(pancakePair))) (#1310-1313)
SecuredMoonRat.claimBNBReward() (#1331-1353) uses literals with too many digits:
- Utils.swapETHForTokens(address(pancakeRouter),address(0x000000000000000000000000000000000000dEaD),reward.div(5)) (#1339-1343)
SecuredMoonRat.slitherConstructorVariables() (#894-1459) uses literals with too many digits:
- _tTotal = 1000000000 * 10 ** 6 * 10 ** 9 (#909)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

SecuredMoonRat.allowance(address,address).owner (#993) shadows:
- Ownable.owner() (#420-422) (function)
SecuredMoonRat._approve(address,address,uint256).owner (#1192) shadows:
- Ownable.owner() (#420-422) (function)
SecuredMoonRat.calculateBNBReward(address).totalSupply (#1310-1313) shadows:
- SecuredMoonRat.totalSupply() (#979-981) (function)
- IBEP20.totalSupply() (#13) (function)
Rename the local variables that shadow another component.

Additional information: link

SecuredMoonRat.setTaxFeePercent(uint256) (#1094-1096) should emit an event for:
- _taxFee = taxFee (#1095)
SecuredMoonRat.setLiquidityFeePercent(uint256) (#1098-1100) should emit an event for:
- _liquidityFee = liquidityFee (#1099)
SecuredMoonRat.setMaxTxPercent(uint256) (#1301-1303) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10000) (#1302)
Emit an event for critical parameter changes.

Additional information: link

Reentrancy in SecuredMoonRat.claimBNBReward() (#1331-1353):
External calls:
- Utils.swapETHForTokens(address(pancakeRouter),address(0x000000000000000000000000000000000000dEaD),reward.div(5)) (#1339-1343)
State variables written after the call(s):
- nextAvailableClaimDate[msg.sender] = block.timestamp + getRewardCycleBlock() (#1348)
Apply the check-effects-interactions pattern.

Additional information: link

Utils.addLiquidity(address,address,uint256,uint256) (#799-816) ignores return value by pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
Ensure that all the return values of the function calls are used.

Additional information: link

Reentrancy in SecuredMoonRat._transfer(address,address,uint256,uint256) (#1200-1225):
External calls:
- swapAndLiquify(from,to) (#1213)
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
- pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#769-775)
- Utils.swapTokensForEth(address(pancakeRouter),tokenAmountToBeSwapped) (#1422)
- Utils.addLiquidity(address(pancakeRouter),owner(),otherPiece,bnbToBeAddedToLiquidity) (#1435)
External calls sending eth:
- swapAndLiquify(from,to) (#1213)
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- _liquidityFee = _previousLiquidityFee (#1185)
- _liquidityFee = 0 (#1180)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- _previousLiquidityFee = _liquidityFee (#1177)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- _previousTaxFee = _taxFee (#1176)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- _tFeeTotal = _tFeeTotal.add(tFee) (#1112)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- _taxFee = _previousTaxFee (#1184)
- _taxFee = 0 (#1179)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- nextAvailableClaimDate[recipient] = nextAvailableClaimDate[recipient] + Utils.calculateTopUpClaim(currentRecipientBalance,basedRewardCycleBlock,threshHoldTopUpRate,amount) (#1359-1364)
Reentrancy in SecuredMoonRat.constructor(address) (#941-965):
External calls:
- pancakePair = IPancakeFactory(_pancakeRouter.factory()).createPair(address(this),_pancakeRouter.WETH()) (#948-949)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#955)
- _isExcludedFromFee[address(this)] = true (#956)
- _isExcludedFromMaxTx[owner()] = true (#959)
- _isExcludedFromMaxTx[address(this)] = true (#960)
- _isExcludedFromMaxTx[address(0x000000000000000000000000000000000000dEaD)] = true (#961)
- _isExcludedFromMaxTx[address(0)] = true (#962)
- pancakeRouter = _pancakeRouter (#952)
Reentrancy in SecuredMoonRat.transferFrom(address,address,uint256) (#1002-1006):
External calls:
- _transfer(sender,recipient,amount,0) (#1003)
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
- pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#769-775)
- Utils.swapTokensForEth(address(pancakeRouter),tokenAmountToBeSwapped) (#1422)
- Utils.addLiquidity(address(pancakeRouter),owner(),otherPiece,bnbToBeAddedToLiquidity) (#1435)
External calls sending eth:
- _transfer(sender,recipient,amount,0) (#1003)
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,BEP20: transfer amount exceeds allowance)) (#1004)
- _allowances[owner][spender] = amount (#1196)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in SecuredMoonRat._transfer(address,address,uint256,uint256) (#1200-1225):
External calls:
- swapAndLiquify(from,to) (#1213)
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
- pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#769-775)
- Utils.swapTokensForEth(address(pancakeRouter),tokenAmountToBeSwapped) (#1422)
- Utils.addLiquidity(address(pancakeRouter),owner(),otherPiece,bnbToBeAddedToLiquidity) (#1435)
External calls sending eth:
- swapAndLiquify(from,to) (#1213)
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#1257)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- Transfer(sender,recipient,tTransferAmount) (#1277)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- Transfer(sender,recipient,tTransferAmount) (#1267)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
- Transfer(sender,recipient,tTransferAmount) (#1083)
- _tokenTransfer(from,to,amount,takeFee) (#1224)
Reentrancy in SecuredMoonRat.claimBNBReward() (#1331-1353):
External calls:
- Utils.swapETHForTokens(address(pancakeRouter),address(0x000000000000000000000000000000000000dEaD),reward.div(5)) (#1339-1343)
Event emitted after the call(s):
- ClaimBNBSuccessfully(msg.sender,reward,nextAvailableClaimDate[msg.sender]) (#1349)
Reentrancy in SecuredMoonRat.constructor(address) (#941-965):
External calls:
- pancakePair = IPancakeFactory(_pancakeRouter.factory()).createPair(address(this),_pancakeRouter.WETH()) (#948-949)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#964)
Reentrancy in SecuredMoonRat.swapAndLiquify(address,address) (#1388-1439):
External calls:
- Utils.swapTokensForEth(address(pancakeRouter),tokenAmountToBeSwapped) (#1422)
- Utils.addLiquidity(address(pancakeRouter),owner(),otherPiece,bnbToBeAddedToLiquidity) (#1435)
Event emitted after the call(s):
- SwapAndLiquify(piece,deltaBalance,otherPiece) (#1437)
Reentrancy in SecuredMoonRat.transferFrom(address,address,uint256) (#1002-1006):
External calls:
- _transfer(sender,recipient,amount,0) (#1003)
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
- pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#769-775)
- Utils.swapTokensForEth(address(pancakeRouter),tokenAmountToBeSwapped) (#1422)
- Utils.addLiquidity(address(pancakeRouter),owner(),otherPiece,bnbToBeAddedToLiquidity) (#1435)
External calls sending eth:
- _transfer(sender,recipient,amount,0) (#1003)
- pancakeRouter.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner,block.timestamp + 360) (#808-815)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#1197)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,BEP20: transfer amount exceeds allowance)) (#1004)
Apply the check-effects-interactions pattern.

Additional information: link

Ownable.unlock() (#467-472) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now > _lockTime,Contract is locked until 7 days) (#469)
Utils.isLotteryWon(uint256,uint256) (#701-705) uses timestamp for comparisons
Dangerous comparisons:
- luckyNumber <= winPercentage (#704)
SecuredMoonRat.getRewardCycleBlock() (#1326-1329) uses timestamp for comparisons
Dangerous comparisons:
- block.timestamp >= disableEasyRewardFrom (#1327)
SecuredMoonRat.claimBNBReward() (#1331-1353) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(nextAvailableClaimDate[msg.sender] <= block.timestamp,Error: next available not reached) (#1332)
SecuredMoonRat.ensureMaxTxAmount(address,address,uint256,uint256) (#1367-1381) uses timestamp for comparisons
Dangerous comparisons:
- value < disruptiveCoverageFee && block.timestamp >= disruptiveTransferEnabledFrom (#1377)
Avoid relying on block.timestamp.

Additional information: link

Address.isContract(address) (#272-281) uses assembly
- INLINE ASM (#279)
Address._functionCallWithValue(address,bytes,uint256,string) (#365-386) uses assembly
- INLINE ASM (#378-381)
Do not use evm assembly.

Additional information: link

SecuredMoonRat.ensureMaxTxAmount(address,address,uint256,uint256) (#1367-1381) compares to a boolean constant:
-_isExcludedFromMaxTx[from] == false && _isExcludedFromMaxTx[to] == false (#1374-1375)
Remove the equality to the boolean constant.

Additional information: link

SecuredMoonRat.includeInReward(address) (#1062-1073) has costly operations inside a loop:
- _excluded.pop() (#1069)
Use a local variable to hold the loop computation result.

Additional information: link

renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#439-442)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#448-452)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#454-456)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#459-464)
unlock() should be declared external:
- Ownable.unlock() (#467-472)
calculateBNBReward(uint256,uint256,uint256,uint256,uint256,address) should be declared external:
- Utils.calculateBNBReward(uint256,uint256,uint256,uint256,uint256,address) (#707-729)
calculateTopUpClaim(uint256,uint256,uint256,uint256) should be declared external:
- Utils.calculateTopUpClaim(uint256,uint256,uint256,uint256) (#731-755)
swapTokensForEth(address,uint256) should be declared external:
- Utils.swapTokensForEth(address,uint256) (#757-776)
swapETHForTokens(address,address,uint256) should be declared external:
- Utils.swapETHForTokens(address,address,uint256) (#778-797)
addLiquidity(address,address,uint256,uint256) should be declared external:
- Utils.addLiquidity(address,address,uint256,uint256) (#799-816)
name() should be declared external:
- SecuredMoonRat.name() (#967-969)
symbol() should be declared external:
- SecuredMoonRat.symbol() (#971-973)
decimals() should be declared external:
- SecuredMoonRat.decimals() (#975-977)
totalSupply() should be declared external:
- SecuredMoonRat.totalSupply() (#979-981)
transfer(address,uint256) should be declared external:
- SecuredMoonRat.transfer(address,uint256) (#988-991)
allowance(address,address) should be declared external:
- SecuredMoonRat.allowance(address,address) (#993-995)
approve(address,uint256) should be declared external:
- SecuredMoonRat.approve(address,uint256) (#997-1000)
transferFrom(address,address,uint256) should be declared external:
- SecuredMoonRat.transferFrom(address,address,uint256) (#1002-1006)
increaseAllowance(address,uint256) should be declared external:
- SecuredMoonRat.increaseAllowance(address,uint256) (#1008-1011)
decreaseAllowance(address,uint256) should be declared external:
- SecuredMoonRat.decreaseAllowance(address,uint256) (#1013-1016)
isExcludedFromReward(address) should be declared external:
- SecuredMoonRat.isExcludedFromReward(address) (#1018-1020)
totalFees() should be declared external:
- SecuredMoonRat.totalFees() (#1022-1024)
deliver(uint256) should be declared external:
- SecuredMoonRat.deliver(uint256) (#1026-1033)
reflectionFromToken(uint256,bool) should be declared external:
- SecuredMoonRat.reflectionFromToken(uint256,bool) (#1035-1044)
excludeFromReward(address) should be declared external:
- SecuredMoonRat.excludeFromReward(address) (#1052-1060)
excludeFromFee(address) should be declared external:
- SecuredMoonRat.excludeFromFee(address) (#1086-1088)
includeInFee(address) should be declared external:
- SecuredMoonRat.includeInFee(address) (#1090-1092)
isExcludedFromFee(address) should be declared external:
- SecuredMoonRat.isExcludedFromFee(address) (#1188-1190)
setExcludeFromMaxTx(address,bool) should be declared external:
- SecuredMoonRat.setExcludeFromMaxTx(address,bool) (#1305-1307)
claimBNBReward() should be declared external:
- SecuredMoonRat.claimBNBReward() (#1331-1353)
disruptiveTransfer(address,uint256) should be declared external:
- SecuredMoonRat.disruptiveTransfer(address,uint256) (#1383-1386)
activateContract() should be declared external:
- SecuredMoonRat.activateContract() (#1441-1457)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:


Token is deployed only at one blockchain

Contract has 10% buy tax and 9% sell tax.
Taxes are low but contract ownership is not renounced. Token has a high risk of becoming a honeypot.


Last post in Twitter was more than 30 days ago

Search:


Unable to find whitepaper link on the website


Token is not listed at Mobula.Finance

Additional information: link


Token has a considerable age, but social accounts / website are missing or have few users


Token has relatively low CoinGecko rank

Anti-Scam Checks

Price for SMRAT

News for SMRAT