$BEATN - Be active & earn everywhere - DeFi 3.0 #AutoStaking Fixed APY of 705,526.99 % compounding EVERY 12 MINUTES combined with the #MoveToEarn app.
💻 WEB 3.0 READY | 📱 DAPP READY | ➕ HUGE APY || KYC AND AUDIT 🖼 NFT Collection | BEATN is building an ecosystem that will combine the power of cryptocurrency/blockchain and healthcare.
BEATN.swapBack() (#853-893) sends eth to arbitrary user
Dangerous calls:
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#881-884)
- (success,None) = address(beatnRiskFreeValueReceiver).call{gas: 30000,value: currentBalance.mul(beatnRiskFreeValueFee).div(_currentFee)}() (#885-888)
- (success,None) = address(beatnNftHolderReceiver).call{gas: 30000,value: currentBalance.mul(beatnNftHolderFee).div(_currentFee)}() (#889-892)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in BEATN._transferFrom(address,address,uint256) (#735-778):
External calls:
- rebase() (#754)
- pairContract.sync() (#695)
- addLiquidity() (#757)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#830-836)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#841-848)
- swapBack() (#760)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#867-873)
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#881-884)
- (success,None) = address(beatnRiskFreeValueReceiver).call{gas: 30000,value: currentBalance.mul(beatnRiskFreeValueFee).div(_currentFee)}() (#885-888)
- (success,None) = address(beatnNftHolderReceiver).call{gas: 30000,value: currentBalance.mul(beatnNftHolderFee).div(_currentFee)}() (#889-892)
External calls sending eth:
- addLiquidity() (#757)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#841-848)
- swapBack() (#760)
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#881-884)
- (success,None) = address(beatnRiskFreeValueReceiver).call{gas: 30000,value: currentBalance.mul(beatnRiskFreeValueFee).div(_currentFee)}() (#885-888)
- (success,None) = address(beatnNftHolderReceiver).call{gas: 30000,value: currentBalance.mul(beatnNftHolderFee).div(_currentFee)}() (#889-892)
State variables written after the call(s):
- _gonBalances[sender] = _gonBalances[sender].sub(gonAmount) (#764)
- _gonBalances[recipient] = _gonBalances[recipient].add(gonAmountReceived) (#768-770)
- gonAmountReceived = takeFee(sender,recipient,gonAmount) (#765-767)
- _gonBalances[firePit] = _gonBalances[firePit].add(gonAmount.mul(firePitFee).div(feeDenominator)) (#793-795)
- _gonBalances[address(this)] = _gonBalances[address(this)].add(gonAmount.mul(maintainFee).div(feeDenominator)) (#799-801)
- _gonBalances[autoLiquidityReceiver] = _gonBalances[autoLiquidityReceiver].add(gonAmount.mul(liquidityFee).div(feeDenominator)) (#802-804)
- swapBack() (#760)
- inSwap = true (#590)
- inSwap = false (#592)
Apply the check-effects-interactions pattern.
Additional information: link
BEATN._name (#545) shadows:
- ERC20Detailed._name (#512)
BEATN._symbol (#546) shadows:
- ERC20Detailed._symbol (#513)
BEATN._decimals (#547) shadows:
- ERC20Detailed._decimals (#514)
Remove the state variable shadowing.
Additional information: link
Too many vulnerabilities (Unchecked transfer, Reentrancy vulnerability, etc.). High risk of a scam. DYOR & manual audit are advised.
BEATN.isAntiBotEnded() (#627-632) uses a dangerous strict equality:
- antiBotStart == 0 (#628)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
Contract ownership is not renounced (belongs to a wallet)
BEATN.swapBack().success (#881) is written in both
(success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#881-884)
(success,None) = address(beatnRiskFreeValueReceiver).call{gas: 30000,value: currentBalance.mul(beatnRiskFreeValueFee).div(_currentFee)}() (#885-888)
BEATN.swapBack().success (#881) is written in both
(success,None) = address(beatnRiskFreeValueReceiver).call{gas: 30000,value: currentBalance.mul(beatnRiskFreeValueFee).div(_currentFee)}() (#885-888)
(success,None) = address(beatnNftHolderReceiver).call{gas: 30000,value: currentBalance.mul(beatnNftHolderFee).div(_currentFee)}() (#889-892)
Fix or remove the writes.
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.
BEATN.addLiquidity() (#810-851) ignores return value by router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#841-848)
Ensure that all the return values of the function calls are used.
Additional information: link
BEATN.rebase() (#666-698) performs a multiplication on the result of a division:
-times = deltaTime.div(720) (#671)
-epoch = times.mul(12) (#672)
BEATN.rebase() (#666-698) performs a multiplication on the result of a division:
-times = deltaTime.div(720) (#671)
-_lastRebasedTime = _lastRebasedTime.add(times.mul(720)) (#693)
BEATN.getLiquidityBacking(uint256) (#1047-1055) performs a multiplication on the result of a division:
-liquidityBalance = _gonBalances[pair].div(_gonsPerFragment) (#1052)
-accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply()) (#1053-1054)
Consider ordering multiplication before division.
Additional information: link
BEATN.setFeeReceivers(address,address,address,address)._autoLiquidityReceiver (#1036) lacks a zero-check on :
- autoLiquidityReceiver = _autoLiquidityReceiver (#1041)
BEATN.setFeeReceivers(address,address,address,address)._treasuryReceiver (#1037) lacks a zero-check on :
- treasuryReceiver = _treasuryReceiver (#1042)
BEATN.setFeeReceivers(address,address,address,address)._beatnRiskFreeValueReceiver (#1038) lacks a zero-check on :
- beatnRiskFreeValueReceiver = _beatnRiskFreeValueReceiver (#1043)
BEATN.setFeeReceivers(address,address,address,address)._beatnNftHolderReceiver (#1039) lacks a zero-check on :
- beatnNftHolderReceiver = _beatnNftHolderReceiver (#1044)
BEATN.setPairAddress(address)._pairAddress (#1061) lacks a zero-check on :
- pairAddress = _pairAddress (#1062)
Check that the address is not zero.
Additional information: link
Reentrancy in BEATN.addLiquidity() (#810-851):
External calls:
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#830-836)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#841-848)
External calls sending eth:
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#841-848)
State variables written after the call(s):
- _lastAddLiquidityTime = block.timestamp (#850)
Reentrancy in BEATN.constructor() (#636-664):
External calls:
- pair = IPancakeSwapFactory(router.factory()).createPair(router.WETH(),address(this)) (#638-641)
State variables written after the call(s):
- _allowedFragments[address(this)][address(router)] = uint256(- 1) (#648)
- _autoAddLiquidity = true (#658)
- _autoRebase = true (#657)
- _gonBalances[treasuryReceiver] = TOTAL_GONS (#653)
- _gonsPerFragment = TOTAL_GONS.div(_totalSupply) (#654)
- _initRebaseStartTime = block.timestamp (#655)
- _isFeeExempt[treasuryReceiver] = true (#659)
- _isFeeExempt[address(this)] = true (#660)
- _lastRebasedTime = block.timestamp (#656)
- _transferOwnership(treasuryReceiver) (#662)
- _owner = newOwner (#507)
- _totalSupply = INITIAL_FRAGMENTS_SUPPLY (#652)
- autoLiquidityReceiver = 0xeceb087f4535dD4C7444Eb18Cb44b03A5803E367 (#643)
- beatnNftHolderReceiver = 0x8a96d017C6f0BfA20492a309cfb1033970C03460 (#646)
- beatnRiskFreeValueReceiver = 0x4Fa13011a18fa22AD747AC23984f81bC902Dd25d (#645)
- pairAddress = pair (#649)
- pairContract = IPancakeSwapPair(pair) (#650)
- treasuryReceiver = 0xF7A2D448df3f80196CcB5F5Dc90a0e68A080f5Dc (#644)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in BEATN._transferFrom(address,address,uint256) (#735-778):
External calls:
- rebase() (#754)
- pairContract.sync() (#695)
- addLiquidity() (#757)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#830-836)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#841-848)
- swapBack() (#760)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#867-873)
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#881-884)
- (success,None) = address(beatnRiskFreeValueReceiver).call{gas: 30000,value: currentBalance.mul(beatnRiskFreeValueFee).div(_currentFee)}() (#885-888)
- (success,None) = address(beatnNftHolderReceiver).call{gas: 30000,value: currentBalance.mul(beatnNftHolderFee).div(_currentFee)}() (#889-892)
External calls sending eth:
- addLiquidity() (#757)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#841-848)
- swapBack() (#760)
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#881-884)
- (success,None) = address(beatnRiskFreeValueReceiver).call{gas: 30000,value: currentBalance.mul(beatnRiskFreeValueFee).div(_currentFee)}() (#885-888)
- (success,None) = address(beatnNftHolderReceiver).call{gas: 30000,value: currentBalance.mul(beatnNftHolderFee).div(_currentFee)}() (#889-892)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount.div(_gonsPerFragment)) (#806)
- gonAmountReceived = takeFee(sender,recipient,gonAmount) (#765-767)
- Transfer(sender,recipient,gonAmountReceived.div(_gonsPerFragment)) (#772-776)
Reentrancy in BEATN.constructor() (#636-664):
External calls:
- pair = IPancakeSwapFactory(router.factory()).createPair(router.WETH(),address(this)) (#638-641)
Event emitted after the call(s):
- OwnershipTransferred(_owner,newOwner) (#506)
- _transferOwnership(treasuryReceiver) (#662)
- Transfer(address(0x0),treasuryReceiver,_totalSupply) (#663)
Reentrancy in BEATN.rebase() (#666-698):
External calls:
- pairContract.sync() (#695)
Event emitted after the call(s):
- LogRebase(epoch,_totalSupply) (#697)
Apply the check-effects-interactions pattern.
Additional information: link
BEATN.isAntiBotEnded() (#627-632) uses timestamp for comparisons
Dangerous comparisons:
- antiBotStart == 0 (#628)
- block.timestamp > antiBotStart.add(antiBotDuration) (#631)
BEATN.rebase() (#666-698) uses timestamp for comparisons
Dangerous comparisons:
- deltaTimeFromInit < (31536000) (#674)
- deltaTimeFromInit >= (7 * 31536000) (#676)
- deltaTimeFromInit >= (2 * 31536000) (#678)
- i < times (#684)
BEATN.shouldRebase() (#923-930) uses timestamp for comparisons
Dangerous comparisons:
- _autoRebase && (_totalSupply < MAX_SUPPLY) && msg.sender != pair && ! inSwap && block.timestamp >= (_lastRebasedTime + 720) (#924-929)
BEATN.shouldAddLiquidity() (#932-938) uses timestamp for comparisons
Dangerous comparisons:
- _autoAddLiquidity && ! inSwap && msg.sender != pair && block.timestamp >= (_lastAddLiquidityTime + 172800) (#933-937)
Avoid relying on block.timestamp.
Additional information: link
SafeMath.mod(uint256,uint256) (#90-93) is never used and should be removed
SafeMathInt.abs(int256) (#35-38) is never used and should be removed
SafeMathInt.add(int256,int256) (#29-33) is never used and should be removed
SafeMathInt.div(int256,int256) (#17-21) is never used and should be removed
SafeMathInt.mul(int256,int256) (#9-15) is never used and should be removed
SafeMathInt.sub(int256,int256) (#23-27) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.7.4 (#3) allows old versions
solc-0.7.4 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 BEATN.swapBack() (#853-893):
- (success) = address(treasuryReceiver).call{gas: 30000,value: currentBalance.mul(treasuryFee).div(_currentFee)}() (#881-884)
- (success,None) = address(beatnRiskFreeValueReceiver).call{gas: 30000,value: currentBalance.mul(beatnRiskFreeValueFee).div(_currentFee)}() (#885-888)
- (success,None) = address(beatnNftHolderReceiver).call{gas: 30000,value: currentBalance.mul(beatnNftHolderFee).div(_currentFee)}() (#889-892)
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() (#158) is not in mixedCase
Function IPancakeSwapPair.PERMIT_TYPEHASH() (#160) is not in mixedCase
Function IPancakeSwapPair.MINIMUM_LIQUIDITY() (#191) is not in mixedCase
Function IPancakeSwapRouter.WETH() (#237) is not in mixedCase
Parameter BEATN.setAddLPAddress(address)._address (#617) is not in mixedCase
Parameter BEATN.setAntiBotAmount(uint256)._amount (#622) is not in mixedCase
Parameter BEATN.setAutoRebase(bool)._flag (#944) is not in mixedCase
Parameter BEATN.setAutoAddLiquidity(bool)._flag (#953) is not in mixedCase
Parameter BEATN.checkFeeExempt(address)._addr (#1016) is not in mixedCase
Parameter BEATN.setFeeReceivers(address,address,address,address)._autoLiquidityReceiver (#1036) is not in mixedCase
Parameter BEATN.setFeeReceivers(address,address,address,address)._treasuryReceiver (#1037) is not in mixedCase
Parameter BEATN.setFeeReceivers(address,address,address,address)._beatnRiskFreeValueReceiver (#1038) is not in mixedCase
Parameter BEATN.setFeeReceivers(address,address,address,address)._beatnNftHolderReceiver (#1039) is not in mixedCase
Parameter BEATN.setWhitelist(address)._addr (#1057) is not in mixedCase
Parameter BEATN.setPairAddress(address)._pairAddress (#1061) is not in mixedCase
Parameter BEATN.setLP(address)._address (#1065) is not in mixedCase
Constant BEATN._name (#545) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BEATN._symbol (#546) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BEATN._decimals (#547) is not in UPPER_CASE_WITH_UNDERSCORES
Variable BEATN._isFeeExempt (#550) is not in mixedCase
Constant BEATN.liquidityFee (#564) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BEATN.treasuryFee (#565) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BEATN.beatnRiskFreeValueFee (#566) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BEATN.beatnNftHolderFee (#567) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BEATN.firePitFee (#568) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BEATN.feeDenominator (#573) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BEATN.firePit (#577-578) is not in UPPER_CASE_WITH_UNDERSCORES
Variable BEATN._autoRebase (#600) is not in mixedCase
Variable BEATN._autoAddLiquidity (#601) is not in mixedCase
Variable BEATN._initRebaseStartTime (#602) is not in mixedCase
Variable BEATN._lastRebasedTime (#603) is not in mixedCase
Variable BEATN._lastAddLiquidityTime (#604) is not in mixedCase
Variable BEATN._totalSupply (#605) is not in mixedCase
Constant BEATN.antiBotDuration (#615) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Variable IPancakeSwapRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#242) is too similar to IPancakeSwapRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#243)
Prevent variables from having similar names.
Additional information: link
BEATN.slitherConstructorConstantVariables() (#539-1079) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (#575)
BEATN.slitherConstructorConstantVariables() (#539-1079) uses literals with too many digits:
- ZERO = 0x0000000000000000000000000000000000000000 (#576)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SafeMathInt.MAX_INT256 (#7) is never used in SafeMathInt (#5-39)
Remove unused state variables.
Additional information: link
BEATN.totalFee (#569-572) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
owner() should be declared external:
- Ownable.owner() (#482-484)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#495-498)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#500-502)
name() should be declared external:
- ERC20Detailed.name() (#526-528)
symbol() should be declared external:
- ERC20Detailed.symbol() (#530-532)
decimals() should be declared external:
- ERC20Detailed.decimals() (#534-536)
setAddLPAddress(address) should be declared external:
- BEATN.setAddLPAddress(address) (#617-620)
setAntiBotAmount(uint256) should be declared external:
- BEATN.setAntiBotAmount(uint256) (#622-625)
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 audit link on the website
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
Unable to find token on CoinHunt
Additional information: link
Unable to find code repository for the project
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