Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract locking ether found:
Contract BNBMoon (BNBMoon.sol#10-423) has payable functions:
- BNBMoon.receive() (BNBMoon.sol#76)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.
Additional information: link
BNBMoon.allowance(address,address).owner (BNBMoon.sol#156) shadows:
- Ownable.owner() (Ownable.sol#24-26) (function)
BNBMoon._approve(address,address,uint256).owner (BNBMoon.sol#377) shadows:
- Ownable.owner() (Ownable.sol#24-26) (function)
Rename the local variables that shadow another component.
Additional information: link
BNBMoon.setMaxStopFeeTotal(uint256) (BNBMoon.sol#239-242) should emit an event for:
- MAX_STOP_FEE_TOTAL = total (BNBMoon.sol#240)
Emit an event for critical parameter changes.
Additional information: link
BNBMoon.setExchangePool(address).exchangePool (BNBMoon.sol#252) lacks a zero-check on :
- _exchangePool = exchangePool (BNBMoon.sol#253)
BNBMoon.setFundAddress(address).fundAddress (BNBMoon.sol#256) lacks a zero-check on :
- _fundAddress = fundAddress (BNBMoon.sol#257)
Check that the address is not zero.
Additional information: link
Context._msgData() (Context.sol#10-13) is never used and should be removed
SafeMath.mod(uint256,uint256) (SafeMath.sol#64-67) is never used and should be removed
Remove unused functions.
Additional information: link
BNBMoon._previousFundFee (BNBMoon.sol#28) is set pre-construction with a non-constant function or state variable:
- _fundFee
BNBMoon._previousBurnFee (BNBMoon.sol#26) is set pre-construction with a non-constant function or state variable:
- _burnFee
BNBMoon._totalSupply (BNBMoon.sol#20) is set pre-construction with a non-constant function or state variable:
- 9500000000000000000000000000 * 10 ** uint256(_decimals)
BNBMoon.MAX_STOP_FEE_TOTAL (BNBMoon.sol#29) is set pre-construction with a non-constant function or state variable:
- 95 * 10 ** uint256(_decimals)
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
Parameter BNBMoon.setSwapAndLiquifyEnabled(bool)._enabled (BNBMoon.sol#234) is not in mixedCase
Parameter BNBMoon.calculateFundFee(uint256)._amount (BNBMoon.sol#391) is not in mixedCase
Parameter BNBMoon.calculateBurnFee(uint256)._amount (BNBMoon.sol#385) is not in mixedCase
Variable BNBMoon._burnFee (BNBMoon.sol#25) is not in mixedCase
Variable BNBMoon.MAX_STOP_FEE_TOTAL (BNBMoon.sol#29) is not in mixedCase
Variable BNBMoon._exchangePool (BNBMoon.sol#38) is not in mixedCase
Variable BNBMoon._fundFee (BNBMoon.sol#27) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (Context.sol#11)" inContext (Context.sol#5-14)
Remove redundant statements if they congest code but offer no value.
Additional information: link
BNBMoon.slitherConstructorVariables() (BNBMoon.sol#10-423) uses literals with too many digits:
- _totalSupply = 9500000000000000000000000000 * 10 ** uint256(_decimals) (BNBMoon.sol#20)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
BNBMoon._symbol (BNBMoon.sol#18) should be constant
BNBMoon._burnPool (BNBMoon.sol#22) should be constant
BNBMoon._decimals (BNBMoon.sol#19) should be constant
BNBMoon._name (BNBMoon.sol#17) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
setExchangePool(address) should be declared external:
- BNBMoon.setExchangePool(address) (BNBMoon.sol#252-254)
setFundAddress(address) should be declared external:
- BNBMoon.setFundAddress(address) (BNBMoon.sol#256-258)
name() should be declared external:
- BNBMoon.name() (BNBMoon.sol#81-83)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (Ownable.sol#43-46)
totalSupply() should be declared external:
- BNBMoon.totalSupply() (BNBMoon.sol#113-115)
transfer(address,uint256) should be declared external:
- BNBMoon.transfer(address,uint256) (BNBMoon.sol#132-135)
balanceOf(address) should be declared external:
- BNBMoon.balanceOf(address) (BNBMoon.sol#120-122)
decreaseAllowance(address,uint256) should be declared external:
- BNBMoon.decreaseAllowance(address,uint256) (BNBMoon.sol#226-232)
totalFundFee() should be declared external:
- BNBMoon.totalFundFee() (BNBMoon.sol#264-266)
transferFrom(address,address,uint256) should be declared external:
- BNBMoon.transferFrom(address,address,uint256) (BNBMoon.sol#185-193)
allowance(address,address) should be declared external:
- BNBMoon.allowance(address,address) (BNBMoon.sol#156-158)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (Ownable.sol#52-56)
setSwapAndLiquifyEnabled(bool) should be declared external:
- BNBMoon.setSwapAndLiquifyEnabled(bool) (BNBMoon.sol#234-237)
includeInFee(address) should be declared external:
- BNBMoon.includeInFee(address) (BNBMoon.sol#248-250)
excludeFromFee(address) should be declared external:
- BNBMoon.excludeFromFee(address) (BNBMoon.sol#244-246)
increaseAllowance(address,uint256) should be declared external:
- BNBMoon.increaseAllowance(address,uint256) (BNBMoon.sol#207-210)
burn(uint256) should be declared external:
- BNBMoon.burn(uint256) (BNBMoon.sol#148-151)
decimals() should be declared external:
- BNBMoon.decimals() (BNBMoon.sol#106-108)
approve(address,uint256) should be declared external:
- BNBMoon.approve(address,uint256) (BNBMoon.sol#167-170)
setMaxStopFeeTotal(uint256) should be declared external:
- BNBMoon.setMaxStopFeeTotal(uint256) (BNBMoon.sol#239-242)
totalBurnFee() should be declared external:
- BNBMoon.totalBurnFee() (BNBMoon.sol#260-262)
symbol() should be declared external:
- BNBMoon.symbol() (BNBMoon.sol#89-91)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Token has a considerable age, but we're still unable to find its website
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Token has a considerable age, but social accounts / website are missing or have few users
Token has a considerable age, but average PancakeSwap 30d trading volume is low
Unable to find Telegram and Twitter accounts