Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ownership is not renounced (belongs to a wallet)
BeefSwap.constructor(address,address)._treasuryAddress (#120) lacks a zero-check on :
- treasuryAddress = _treasuryAddress (#122)
BeefSwap.constructor(address,address).admin (#120) lacks a zero-check on :
- ADMINISTRATOR = admin (#123)
BeefSwap.withdraw()._customerAddress (#204) lacks a zero-check on :
- _customerAddress.transfer(_dividends) (#214)
Check that the address is not zero.
Additional information: link
Pragma version^0.4.25 (#1) allows old versions
solc-0.4.25 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
BeefSwap.sell(uint256) (#223-260) performs a multiplication on the result of a division:
-_dividends = SafeMath.div(SafeMath.mul(_ethereum,sellFee_),100) (#233)
-profitPerShare_ = SafeMath.add(profitPerShare_,(_dividends * magnitude) / tokenSupply_) (#254)
BeefSwap.purchaseTokens(uint256,address) (#485-531) performs a multiplication on the result of a division:
-_fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / (tokenSupply_)))) (#516)
BeefSwap.tokensToEthereum_(uint256) (#633-655) performs a multiplication on the result of a division:
-_etherReceived = (SafeMath.sub((((tokenPriceInitial_ + (tokenPriceIncremental_ * (_tokenSupply / 1e18))) - tokenPriceIncremental_) * (tokens_ - 1e18)),(tokenPriceIncremental_ * ((tokens_ ** 2 - tokens_) / 1e18)) / 2) / 1e18) (#641-653)
Consider ordering multiplication before division.
Additional information: link
BeefSwap.buy(address) (#130-141) should emit an event for:
- totalTradingVolume = SafeMath.add(totalTradingVolume,msg.value) (#138)
BeefSwap.fallback() (#147-153) should emit an event for:
- totalTradingVolume = SafeMath.add(totalTradingVolume,msg.value) (#151)
Emit an event for critical parameter changes.
Additional information: link
Event BeefSwaponTokenPurchase(address,uint256,uint256,address) (#34-39) is not in CapWords
Event BeefSwaponTokenSell(address,uint256,uint256) (#41-45) is not in CapWords
Event BeefSwaponReinvestment(address,uint256,uint256) (#47-51) is not in CapWords
Event BeefSwaponWithdraw(address,uint256) (#53-56) is not in CapWords
Parameter BeefSwap.buy(address)._referredBy (#130) is not in mixedCase
Parameter BeefSwap.sell(uint256)._amountOfTokens (#223) is not in mixedCase
Parameter BeefSwap.transfer(address,uint256)._toAddress (#267) is not in mixedCase
Parameter BeefSwap.transfer(address,uint256)._amountOfTokens (#267) is not in mixedCase
Parameter BeefSwap.myDividends(bool)._includeReferralBonus (#383) is not in mixedCase
Parameter BeefSwap.balanceOf(address)._customerAddress (#395) is not in mixedCase
Parameter BeefSwap.dividendsOf(address)._customerAddress (#406) is not in mixedCase
Parameter BeefSwap.calculateTokensReceived(uint256)._ethereumToSpend (#455) is not in mixedCase
Parameter BeefSwap.calculateEthereumReceived(uint256)._tokensToSell (#470) is not in mixedCase
Parameter BeefSwap.purchaseTokens(uint256,address)._incomingEthereum (#485) is not in mixedCase
Parameter BeefSwap.purchaseTokens(uint256,address)._referredBy (#485) is not in mixedCase
Parameter BeefSwap.registerUser(address,address)._msgSender (#533) is not in mixedCase
Parameter BeefSwap.registerUser(address,address)._affFrom (#533) is not in mixedCase
Parameter BeefSwap.distributeReferral(address,uint256,uint256)._msgSender (#555) is not in mixedCase
Parameter BeefSwap.distributeReferral(address,uint256,uint256)._allaff (#555) is not in mixedCase
Parameter BeefSwap.distributeReferral(address,uint256,uint256)._incomingEthereum (#555) is not in mixedCase
Parameter BeefSwap.ethereumToTokens_(uint256)._ethereum (#598) is not in mixedCase
Parameter BeefSwap.tokensToEthereum_(uint256)._tokens (#633) is not in mixedCase
Constant BeefSwap.buyFee_ (#72) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BeefSwap.sellFee_ (#73) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BeefSwap.transferFee_ (#74) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BeefSwap.tokenPriceInitial_ (#75) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BeefSwap.tokenPriceIncremental_ (#76) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BeefSwap.magnitude (#77) is not in UPPER_CASE_WITH_UNDERSCORES
Variable BeefSwap.ADMINISTRATOR (#91) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Reentrancy in BeefSwap.exit() (#184-194):
External calls:
- sell(_tokens) (#190)
- treasuryAddress.transfer(_treasurePool) (#237)
- withdraw() (#193)
- _customerAddress.transfer(_dividends) (#214)
State variables written after the call(s):
- withdraw() (#193)
- payoutsTo_[_customerAddress] += int256(_dividends * magnitude) (#208)
- withdraw() (#193)
- referralBalance_[_customerAddress] = 0 (#212)
Event emitted after the call(s):
- onWithdraw(_customerAddress,_dividends) (#217)
- withdraw() (#193)
Reentrancy in BeefSwap.sell(uint256) (#223-260):
External calls:
- treasuryAddress.transfer(_treasurePool) (#237)
State variables written after the call(s):
- payoutsTo_[_customerAddress] -= _updatedPayouts (#249)
- profitPerShare_ = SafeMath.add(profitPerShare_,(_dividends * magnitude) / tokenSupply_) (#254)
- tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress],_tokens) (#245)
- tokenSupply_ = SafeMath.sub(tokenSupply_,_tokens) (#244)
- totalDividends = SafeMath.add(totalDividends,_dividends) (#241)
- totalTradingVolume = SafeMath.add(totalTradingVolume,_ethereum) (#250)
Event emitted after the call(s):
- Transfer(_customerAddress,address(0),_tokens) (#259)
- onTokenSell(_customerAddress,_tokens,_taxedEthereum) (#258)
Reentrancy in BeefSwap.transfer(address,uint256) (#267-303):
External calls:
- withdraw() (#277)
- _customerAddress.transfer(_dividends) (#214)
State variables written after the call(s):
- payoutsTo_[_customerAddress] -= int256(profitPerShare_ * _amountOfTokens) (#291)
- payoutsTo_[_toAddress] += int256(profitPerShare_ * _taxedTokens) (#292)
- profitPerShare_ = SafeMath.add(profitPerShare_,(_dividends * magnitude) / tokenSupply_) (#295)
- tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress],_amountOfTokens) (#287)
- tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress],_taxedTokens) (#288)
- tokenSupply_ = SafeMath.sub(tokenSupply_,_tokenFee) (#284)
- totalDividends = SafeMath.add(totalDividends,_dividends) (#282)
Event emitted after the call(s):
- Transfer(_customerAddress,_toAddress,_taxedTokens) (#298)
Reentrancy in BeefSwap.withdraw() (#199-218):
External calls:
- _customerAddress.transfer(_dividends) (#214)
Event emitted after the call(s):
- onWithdraw(_customerAddress,_dividends) (#217)
Apply the check-effects-interactions pattern.
Additional information: link
Variable BeefSwap.ethereumToTokens_(uint256)._tokenPriceInitial (#603) is too similar to BeefSwap.tokenPriceInitial_ (#75)
Variable BeefSwap.tokensToEthereum_(uint256)._tokenSupply (#640) is too similar to BeefSwap.tokenSupply_ (#78)
Prevent variables from having similar names.
Additional information: link
BeefSwap.transfer(address,uint256) (#267-303) uses literals with too many digits:
- _tokenFee = SafeMath.div(SafeMath.mul(_amountOfTokens,transferFee_),100000) (#279)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
BeefSwap.name (#69) should be constant
BeefSwap.stakingRequirement (#81) should be constant
BeefSwap.symbol (#70) should be constant
BeefSwap.treasurePool (#86) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
buy(address) should be declared external:
- BeefSwap.buy(address) (#130-141)
fallback() should be declared external:
- BeefSwap.fallback() (#147-153)
reinvest() should be declared external:
- BeefSwap.reinvest() (#158-179)
exit() should be declared external:
- BeefSwap.exit() (#184-194)
transfer(address,uint256) should be declared external:
- BeefSwap.transfer(address,uint256) (#267-303)
disableInitialStage() should be declared external:
- BeefSwap.disableInitialStage() (#307-312)
checkDevPool() should be declared external:
- BeefSwap.checkDevPool() (#314-321)
withdrawDevFee() should be declared external:
- BeefSwap.withdrawDevFee() (#323-330)
totalEthereumBalance() should be declared external:
- BeefSwap.totalEthereumBalance() (#338-344)
isOwner() should be declared external:
- BeefSwap.isOwner() (#346-352)
totalSupply() should be declared external:
- BeefSwap.totalSupply() (#357-363)
sellPrice() should be declared external:
- BeefSwap.sellPrice() (#417-431)
buyPrice() should be declared external:
- BeefSwap.buyPrice() (#435-449)
calculateTokensReceived(uint256) should be declared external:
- BeefSwap.calculateTokensReceived(uint256) (#455-465)
calculateEthereumReceived(uint256) should be declared external:
- BeefSwap.calculateEthereumReceived(uint256) (#470-480)
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