The Next Generation Of Meme & Auto-Staking: Hippo is a decentralized financial asset that pays users with a fixed compound interest formula that is sustainable. 1. Buy 2. Hold 3. Earn
Hippo.swapBack() (contracts/contracts/HippoToken.sol#871-917) sends eth to arbitrary user
Dangerous calls:
- (success) = address(hippoTreasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(treasuryFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#897-902)
- (success,None) = address(hippoInsuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(hippoInsuranceFundFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#904-909)
- (success,None) = address(hippoCharityReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(charityFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#911-916)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in Hippo._transferFrom(address,address,uint256) (contracts/contracts/HippoToken.sol#752-789):
External calls:
- rebase() (contracts/contracts/HippoToken.sol#763)
- pairContract.sync() (contracts/contracts/HippoToken.sol#712)
- addLiquidity() (contracts/contracts/HippoToken.sol#767)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (contracts/contracts/HippoToken.sol#848-854)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (contracts/contracts/HippoToken.sol#859-866)
- swapBack() (contracts/contracts/HippoToken.sol#771)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (contracts/contracts/HippoToken.sol#885-891)
- (success) = address(hippoTreasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(treasuryFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#897-902)
- (success,None) = address(hippoInsuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(hippoInsuranceFundFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#904-909)
- (success,None) = address(hippoCharityReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(charityFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#911-916)
External calls sending eth:
- addLiquidity() (contracts/contracts/HippoToken.sol#767)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (contracts/contracts/HippoToken.sol#859-866)
- swapBack() (contracts/contracts/HippoToken.sol#771)
- (success) = address(hippoTreasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(treasuryFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#897-902)
- (success,None) = address(hippoInsuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(hippoInsuranceFundFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#904-909)
- (success,None) = address(hippoCharityReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(charityFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#911-916)
State variables written after the call(s):
- _gonBalances[sender] = _gonBalances[sender].sub(gonAmount) (contracts/contracts/HippoToken.sol#775)
- _gonBalances[recipient] = _gonBalances[recipient].add(gonAmountReceived) (contracts/contracts/HippoToken.sol#779-781)
- gonAmountReceived = takeFee(sender,recipient,gonAmount) (contracts/contracts/HippoToken.sol#776-778)
- _gonBalances[watermelonPit] = _gonBalances[watermelonPit].add(gonAmount.mul(watermelonPitFee).div(feeDenominator)) (contracts/contracts/HippoToken.sol#806-808)
- _gonBalances[address(this)] = _gonBalances[address(this)].add(gonAmount.mul(_treasuryFee.add(hippoInsuranceFundFee)).div(feeDenominator)) (contracts/contracts/HippoToken.sol#810-814)
- _gonBalances[autoLiquidityReceiver] = _gonBalances[autoLiquidityReceiver].add(gonAmount.mul(liquidityFee).div(feeDenominator)) (contracts/contracts/HippoToken.sol#816-818)
- _gonBalances[hippoCharityReceiver] = _gonBalances[hippoCharityReceiver].add(gonAmount.mul(charityFee).div(feeDenominator)) (contracts/contracts/HippoToken.sol#820-822)
- swapBack() (contracts/contracts/HippoToken.sol#771)
- inSwap = true (contracts/contracts/HippoToken.sol#612)
- inSwap = false (contracts/contracts/HippoToken.sol#614)
Apply the check-effects-interactions pattern.
Additional information: link
Hippo._name (contracts/contracts/HippoToken.sol#570) shadows:
- ERC20Detailed._name (contracts/contracts/HippoToken.sol#537)
Hippo._symbol (contracts/contracts/HippoToken.sol#571) shadows:
- ERC20Detailed._symbol (contracts/contracts/HippoToken.sol#538)
Hippo._decimals (contracts/contracts/HippoToken.sol#572) shadows:
- ERC20Detailed._decimals (contracts/contracts/HippoToken.sol#539)
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.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
Hippo.swapBack().success (contracts/contracts/HippoToken.sol#897) is written in both
(success) = address(hippoTreasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(treasuryFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#897-902)
(success,None) = address(hippoInsuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(hippoInsuranceFundFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#904-909)
Hippo.swapBack().success (contracts/contracts/HippoToken.sol#897) is written in both
(success,None) = address(hippoInsuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(hippoInsuranceFundFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#904-909)
(success,None) = address(hippoCharityReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(charityFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#911-916)
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.
Variable IPancakeSwapRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (contracts/contracts/HippoToken.sol#267) is too similar to IPancakeSwapRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (contracts/contracts/HippoToken.sol#268)
Prevent variables from having similar names.
Additional information: link
Hippo.rebase().rebaseRate (contracts/contracts/HippoToken.sol#681) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
Contract name (HIPPO.FINANCIAL) contains non-alphanumeric characters.
Not a direct threat, but may indicate unreliable intentions of developer. Non-alphanumeric chars (,.;!#*&") are extremely rare among low risk tokens.
Hippo.totalFee (contracts/contracts/HippoToken.sol#594) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
Hippo.rebase() (contracts/contracts/HippoToken.sol#679-715) performs a multiplication on the result of a division:
-times = deltaTime.div(900) (contracts/contracts/HippoToken.sol#684)
-epoch = times.mul(15) (contracts/contracts/HippoToken.sol#685)
Hippo.rebase() (contracts/contracts/HippoToken.sol#679-715) performs a multiplication on the result of a division:
-times = deltaTime.div(900) (contracts/contracts/HippoToken.sol#684)
-_lastRebasedTime = _lastRebasedTime.add(times.mul(900)) (contracts/contracts/HippoToken.sol#710)
Hippo.getLiquidityBacking(uint256) (contracts/contracts/HippoToken.sol#1073-1081) performs a multiplication on the result of a division:
-liquidityBalance = _gonBalances[pair].div(_gonsPerFragment) (contracts/contracts/HippoToken.sol#1078)
-accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply()) (contracts/contracts/HippoToken.sol#1079-1080)
Consider ordering multiplication before division.
Additional information: link
Hippo.addLiquidity() (contracts/contracts/HippoToken.sol#828-869) ignores return value by router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (contracts/contracts/HippoToken.sol#859-866)
Ensure that all the return values of the function calls are used.
Additional information: link
Hippo.setFeeReceivers(address,address,address,address,address)._autoLiquidityReceiver (contracts/contracts/HippoToken.sol#1060) lacks a zero-check on :
- autoLiquidityReceiver = _autoLiquidityReceiver (contracts/contracts/HippoToken.sol#1066)
Hippo.setFeeReceivers(address,address,address,address,address)._hippoTreasuryReceiver (contracts/contracts/HippoToken.sol#1061) lacks a zero-check on :
- hippoTreasuryReceiver = _hippoTreasuryReceiver (contracts/contracts/HippoToken.sol#1067)
Hippo.setFeeReceivers(address,address,address,address,address)._hippoInsuranceFundReceiver (contracts/contracts/HippoToken.sol#1062) lacks a zero-check on :
- hippoInsuranceFundReceiver = _hippoInsuranceFundReceiver (contracts/contracts/HippoToken.sol#1068)
Hippo.setFeeReceivers(address,address,address,address,address)._hippoCharityReceiver (contracts/contracts/HippoToken.sol#1063) lacks a zero-check on :
- hippoCharityReceiver = _hippoCharityReceiver (contracts/contracts/HippoToken.sol#1069)
Hippo.setFeeReceivers(address,address,address,address,address)._watermelonPit (contracts/contracts/HippoToken.sol#1064) lacks a zero-check on :
- watermelonPit = _watermelonPit (contracts/contracts/HippoToken.sol#1070)
Hippo.setPairAddress(address)._pairAddress (contracts/contracts/HippoToken.sol#1098) lacks a zero-check on :
- pairAddress = _pairAddress (contracts/contracts/HippoToken.sol#1099)
Check that the address is not zero.
Additional information: link
Reentrancy in Hippo.addLiquidity() (contracts/contracts/HippoToken.sol#828-869):
External calls:
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (contracts/contracts/HippoToken.sol#848-854)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (contracts/contracts/HippoToken.sol#859-866)
External calls sending eth:
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (contracts/contracts/HippoToken.sol#859-866)
State variables written after the call(s):
- _lastAddLiquidityTime = block.timestamp (contracts/contracts/HippoToken.sol#868)
Reentrancy in Hippo.constructor() (contracts/contracts/HippoToken.sol#634-667):
External calls:
- pair = IPancakeSwapFactory(router.factory()).createPair(router.WETH(),address(this)) (contracts/contracts/HippoToken.sol#639-642)
State variables written after the call(s):
- _allowedFragments[address(this)][address(router)] = uint256(- 1) (contracts/contracts/HippoToken.sol#650)
- _autoAddLiquidity = true (contracts/contracts/HippoToken.sol#661)
- _autoRebase = false (contracts/contracts/HippoToken.sol#659)
- _gonBalances[hippoTreasuryReceiver] = TOTAL_GONS (contracts/contracts/HippoToken.sol#655)
- _gonsPerFragment = TOTAL_GONS.div(_totalSupply) (contracts/contracts/HippoToken.sol#656)
- _initRebaseStartTime = block.timestamp (contracts/contracts/HippoToken.sol#657)
- _isFeeExempt[hippoTreasuryReceiver] = true (contracts/contracts/HippoToken.sol#662)
- _isFeeExempt[address(this)] = true (contracts/contracts/HippoToken.sol#663)
- _isRebaseStarted = false (contracts/contracts/HippoToken.sol#660)
- _lastRebasedTime = block.timestamp (contracts/contracts/HippoToken.sol#658)
- _transferOwnership(hippoTreasuryReceiver) (contracts/contracts/HippoToken.sol#665)
- _owner = newOwner (contracts/contracts/HippoToken.sol#532)
- _totalSupply = INITIAL_FRAGMENTS_SUPPLY (contracts/contracts/HippoToken.sol#654)
- autoLiquidityReceiver = 0x83BF2BC76d18E4819a49b542D95Fe07F1DA74205 (contracts/contracts/HippoToken.sol#644)
- hippoCharityReceiver = 0x4B439d3D3F0Ff69495011816C726AA7B6205c7CC (contracts/contracts/HippoToken.sol#647)
- hippoInsuranceFundReceiver = 0xeb8D83e1D8E92A663FFC8AA5031cf35643a6fa52 (contracts/contracts/HippoToken.sol#646)
- hippoTreasuryReceiver = 0x67668C8C88E9aA159Ddf25dD93Af2F83B1032D89 (contracts/contracts/HippoToken.sol#645)
- pairAddress = pair (contracts/contracts/HippoToken.sol#651)
- pairContract = IPancakeSwapPair(pair) (contracts/contracts/HippoToken.sol#652)
- watermelonPit = ZERO (contracts/contracts/HippoToken.sol#648)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Hippo._transferFrom(address,address,uint256) (contracts/contracts/HippoToken.sol#752-789):
External calls:
- rebase() (contracts/contracts/HippoToken.sol#763)
- pairContract.sync() (contracts/contracts/HippoToken.sol#712)
- addLiquidity() (contracts/contracts/HippoToken.sol#767)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (contracts/contracts/HippoToken.sol#848-854)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (contracts/contracts/HippoToken.sol#859-866)
- swapBack() (contracts/contracts/HippoToken.sol#771)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (contracts/contracts/HippoToken.sol#885-891)
- (success) = address(hippoTreasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(treasuryFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#897-902)
- (success,None) = address(hippoInsuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(hippoInsuranceFundFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#904-909)
- (success,None) = address(hippoCharityReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(charityFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#911-916)
External calls sending eth:
- addLiquidity() (contracts/contracts/HippoToken.sol#767)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (contracts/contracts/HippoToken.sol#859-866)
- swapBack() (contracts/contracts/HippoToken.sol#771)
- (success) = address(hippoTreasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(treasuryFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#897-902)
- (success,None) = address(hippoInsuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(hippoInsuranceFundFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#904-909)
- (success,None) = address(hippoCharityReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(charityFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#911-916)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount.div(_gonsPerFragment)) (contracts/contracts/HippoToken.sol#824)
- gonAmountReceived = takeFee(sender,recipient,gonAmount) (contracts/contracts/HippoToken.sol#776-778)
- Transfer(sender,recipient,gonAmountReceived.div(_gonsPerFragment)) (contracts/contracts/HippoToken.sol#783-787)
Reentrancy in Hippo.constructor() (contracts/contracts/HippoToken.sol#634-667):
External calls:
- pair = IPancakeSwapFactory(router.factory()).createPair(router.WETH(),address(this)) (contracts/contracts/HippoToken.sol#639-642)
Event emitted after the call(s):
- OwnershipTransferred(_owner,newOwner) (contracts/contracts/HippoToken.sol#531)
- _transferOwnership(hippoTreasuryReceiver) (contracts/contracts/HippoToken.sol#665)
- Transfer(address(0x0),hippoTreasuryReceiver,_totalSupply) (contracts/contracts/HippoToken.sol#666)
Reentrancy in Hippo.rebase() (contracts/contracts/HippoToken.sol#679-715):
External calls:
- pairContract.sync() (contracts/contracts/HippoToken.sol#712)
Event emitted after the call(s):
- LogRebase(epoch,_totalSupply) (contracts/contracts/HippoToken.sol#714)
Apply the check-effects-interactions pattern.
Additional information: link
Hippo.rebase() (contracts/contracts/HippoToken.sol#679-715) uses timestamp for comparisons
Dangerous comparisons:
- deltaTimeFromInit < 31536000 (contracts/contracts/HippoToken.sol#687)
- (deltaTimeFromInit >= 31536000) && (deltaTimeFromInit < (15 * 31536000) / 10) (contracts/contracts/HippoToken.sol#690-691)
- (deltaTimeFromInit >= (15 * 31536000) / 10) && (deltaTimeFromInit < (7 * 31536000)) (contracts/contracts/HippoToken.sol#695-696)
- deltaTimeFromInit >= (7 * 31536000) (contracts/contracts/HippoToken.sol#699)
- i < times (contracts/contracts/HippoToken.sol#703)
Hippo.shouldRebase() (contracts/contracts/HippoToken.sol#947-954) uses timestamp for comparisons
Dangerous comparisons:
- _autoRebase && (_totalSupply < MAX_SUPPLY) && msg.sender != pair && ! inSwap && block.timestamp >= (_lastRebasedTime + 900) (contracts/contracts/HippoToken.sol#948-953)
Hippo.shouldAddLiquidity() (contracts/contracts/HippoToken.sol#956-962) uses timestamp for comparisons
Dangerous comparisons:
- _autoAddLiquidity && ! inSwap && msg.sender != pair && block.timestamp >= (_lastAddLiquidityTime + 172800) (contracts/contracts/HippoToken.sol#957-961)
Avoid relying on block.timestamp.
Additional information: link
Hippo.isContract(address) (contracts/contracts/HippoToken.sol#1114-1120) uses assembly
- INLINE ASM (contracts/contracts/HippoToken.sol#1116-1118)
Do not use evm assembly.
Additional information: link
SafeMath.mod(uint256,uint256) (contracts/contracts/HippoToken.sol#115-118) is never used and should be removed
SafeMathInt.abs(int256) (contracts/contracts/HippoToken.sol#60-63) is never used and should be removed
SafeMathInt.add(int256,int256) (contracts/contracts/HippoToken.sol#54-58) is never used and should be removed
SafeMathInt.div(int256,int256) (contracts/contracts/HippoToken.sol#42-46) is never used and should be removed
SafeMathInt.mul(int256,int256) (contracts/contracts/HippoToken.sol#34-40) is never used and should be removed
SafeMathInt.sub(int256,int256) (contracts/contracts/HippoToken.sol#48-52) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.7.4 (contracts/contracts/HippoToken.sol#28) 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 Hippo.swapBack() (contracts/contracts/HippoToken.sol#871-917):
- (success) = address(hippoTreasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(treasuryFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#897-902)
- (success,None) = address(hippoInsuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(hippoInsuranceFundFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#904-909)
- (success,None) = address(hippoCharityReceiver).call{gas: 30000,value: amountETHToTreasuryAndHIF.mul(charityFee).div(treasuryFee.add(hippoInsuranceFundFee).add(charityFee))}() (contracts/contracts/HippoToken.sol#911-916)
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() (contracts/contracts/HippoToken.sol#183) is not in mixedCase
Function IPancakeSwapPair.PERMIT_TYPEHASH() (contracts/contracts/HippoToken.sol#185) is not in mixedCase
Function IPancakeSwapPair.MINIMUM_LIQUIDITY() (contracts/contracts/HippoToken.sol#216) is not in mixedCase
Function IPancakeSwapRouter.WETH() (contracts/contracts/HippoToken.sol#262) is not in mixedCase
Parameter Hippo.setAutoRebase(bool)._flag (contracts/contracts/HippoToken.sol#968) is not in mixedCase
Parameter Hippo.setAutoAddLiquidity(bool)._flag (contracts/contracts/HippoToken.sol#977) is not in mixedCase
Parameter Hippo.checkFeeExempt(address)._addr (contracts/contracts/HippoToken.sol#1040) is not in mixedCase
Parameter Hippo.setFeeReceivers(address,address,address,address,address)._autoLiquidityReceiver (contracts/contracts/HippoToken.sol#1060) is not in mixedCase
Parameter Hippo.setFeeReceivers(address,address,address,address,address)._hippoTreasuryReceiver (contracts/contracts/HippoToken.sol#1061) is not in mixedCase
Parameter Hippo.setFeeReceivers(address,address,address,address,address)._hippoInsuranceFundReceiver (contracts/contracts/HippoToken.sol#1062) is not in mixedCase
Parameter Hippo.setFeeReceivers(address,address,address,address,address)._hippoCharityReceiver (contracts/contracts/HippoToken.sol#1063) is not in mixedCase
Parameter Hippo.setFeeReceivers(address,address,address,address,address)._watermelonPit (contracts/contracts/HippoToken.sol#1064) is not in mixedCase
Parameter Hippo.setWhitelist(address)._addr (contracts/contracts/HippoToken.sol#1083) is not in mixedCase
Parameter Hippo.setBotBlacklist(address,bool)._botAddress (contracts/contracts/HippoToken.sol#1087) is not in mixedCase
Parameter Hippo.setBotBlacklist(address,bool)._flag (contracts/contracts/HippoToken.sol#1087) is not in mixedCase
Parameter Hippo.setPairAddress(address)._pairAddress (contracts/contracts/HippoToken.sol#1098) is not in mixedCase
Parameter Hippo.setLP(address)._address (contracts/contracts/HippoToken.sol#1102) is not in mixedCase
Constant Hippo._name (contracts/contracts/HippoToken.sol#570) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Hippo._symbol (contracts/contracts/HippoToken.sol#571) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Hippo._decimals (contracts/contracts/HippoToken.sol#572) is not in UPPER_CASE_WITH_UNDERSCORES
Variable Hippo._isFeeExempt (contracts/contracts/HippoToken.sol#575) is not in mixedCase
Constant Hippo.liquidityFee (contracts/contracts/HippoToken.sol#588) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Hippo.treasuryFee (contracts/contracts/HippoToken.sol#589) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Hippo.hippoInsuranceFundFee (contracts/contracts/HippoToken.sol#590) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Hippo.watermelonPitFee (contracts/contracts/HippoToken.sol#591) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Hippo.charityFee (contracts/contracts/HippoToken.sol#592) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Hippo.sellFee (contracts/contracts/HippoToken.sol#593) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Hippo.feeDenominator (contracts/contracts/HippoToken.sol#596) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Hippo.swapEnabled (contracts/contracts/HippoToken.sol#607) is not in UPPER_CASE_WITH_UNDERSCORES
Variable Hippo._autoRebase (contracts/contracts/HippoToken.sol#621) is not in mixedCase
Variable Hippo._autoAddLiquidity (contracts/contracts/HippoToken.sol#622) is not in mixedCase
Variable Hippo._initRebaseStartTime (contracts/contracts/HippoToken.sol#623) is not in mixedCase
Variable Hippo._lastRebasedTime (contracts/contracts/HippoToken.sol#624) is not in mixedCase
Variable Hippo._lastAddLiquidityTime (contracts/contracts/HippoToken.sol#625) is not in mixedCase
Variable Hippo._totalSupply (contracts/contracts/HippoToken.sol#626) is not in mixedCase
Variable Hippo._isRebaseStarted (contracts/contracts/HippoToken.sol#628) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Hippo.rebase() (contracts/contracts/HippoToken.sol#679-715) uses literals with too many digits:
- rebaseRate = 20000000 (contracts/contracts/HippoToken.sol#693)
Hippo.rebase() (contracts/contracts/HippoToken.sol#679-715) uses literals with too many digits:
- rebaseRate = 1200000 (contracts/contracts/HippoToken.sol#698)
Hippo.rebase() (contracts/contracts/HippoToken.sol#679-715) uses literals with too many digits:
- rebaseRate = 200000 (contracts/contracts/HippoToken.sol#700)
Hippo.slitherConstructorConstantVariables() (contracts/contracts/HippoToken.sol#564-1123) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (contracts/contracts/HippoToken.sol#598)
Hippo.slitherConstructorConstantVariables() (contracts/contracts/HippoToken.sol#564-1123) uses literals with too many digits:
- ZERO = 0x0000000000000000000000000000000000000000 (contracts/contracts/HippoToken.sol#599)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SafeMathInt.MAX_INT256 (contracts/contracts/HippoToken.sol#32) is never used in SafeMathInt (contracts/contracts/HippoToken.sol#30-64)
Remove unused state variables.
Additional information: link
owner() should be declared external:
- Ownable.owner() (contracts/contracts/HippoToken.sol#507-509)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (contracts/contracts/HippoToken.sol#520-523)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (contracts/contracts/HippoToken.sol#525-527)
name() should be declared external:
- ERC20Detailed.name() (contracts/contracts/HippoToken.sol#551-553)
symbol() should be declared external:
- ERC20Detailed.symbol() (contracts/contracts/HippoToken.sol#555-557)
decimals() should be declared external:
- ERC20Detailed.decimals() (contracts/contracts/HippoToken.sol#559-561)
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 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
Telegram account has relatively few subscribers
Unable to find Blog account (Reddit or Medium)
Unable to find Youtube account
Twitter account has few posts