Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Share.setTreasuryFund(address)._communityFund (#804) lacks a zero-check on :
- communityFund = _communityFund (#806)
Check that the address is not zero.
Additional information: link
Share.unclaimedTreasuryFund() (#815-820) uses timestamp for comparisons
Dangerous comparisons:
- _now > endTime (#817)
- communityFundLastClaimed >= _now (#818)
Share.unclaimedDevFund() (#822-827) uses timestamp for comparisons
Dangerous comparisons:
- _now > endTime (#824)
- devFundLastClaimed >= _now (#825)
Avoid relying on block.timestamp.
Additional information: link
Context._msgData() (#243-246) is never used and should be removed
ERC20._setupDecimals(uint8) (#617-619) is never used and should be removed
SafeMath.div(uint256,uint256) (#135-138) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#194-201) is never used and should be removed
SafeMath.mod(uint256,uint256) (#152-155) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#218-225) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#24-28) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#60-63) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#70-73) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#45-53) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#35-38) is never used and should be removed
Remove unused functions.
Additional information: link
Share.endTime (#786) is set pre-construction with a non-constant function or state variable:
- startTime + VESTING_DURATION
Share.communityFundLastClaimed (#794) is set pre-construction with a non-constant function or state variable:
- startTime
Share.devFundLastClaimed (#795) is set pre-construction with a non-constant function or state variable:
- startTime
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 Share.setTreasuryFund(address)._communityFund (#804) is not in mixedCase
Parameter Share.setDevFund(address)._devFund (#809) is not in mixedCase
Parameter Share.distributeReward(address)._farmingIncentiveFund (#848) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#244)" inContext (#238-247)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Share.communityFundRewardRate (#788) should be constant
Share.devFundRewardRate (#789) should be constant
Share.startTime (#785) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
name() should be declared external:
- ERC20.name() (#382-384)
symbol() should be declared external:
- ERC20.symbol() (#390-392)
decimals() should be declared external:
- ERC20.decimals() (#407-409)
totalSupply() should be declared external:
- ERC20.totalSupply() (#414-416)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#421-423)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#433-436)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#452-455)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#470-478)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#492-495)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#511-514)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (#670-675)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#726-729)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#735-739)
operator() should be declared external:
- Operator.operator() (#752-754)
isOperator() should be declared external:
- Operator.isOperator() (#761-763)
transferOperator(address) should be declared external:
- Operator.transferOperator(address) (#765-767)
Use the external attribute for functions never called from the contract.
Additional information: link
Contract ownership is semi-renounced (passed to a contract)
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