Trade and earn crypto on the new big thing in a decentralized forest.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
HeggToken._writeCheckpoint(address,uint32,uint256,uint256) (dist/farm/HeggToken.sol#1101-1119) uses a dangerous strict equality:
- nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber (dist/farm/HeggToken.sol#1111)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
Different versions of Solidity is used:
- Version used: ['0.6.12', '>=0.4.0', '^0.6.2']
- >=0.4.0 (dist/farm/HeggToken.sol#8)
- >=0.4.0 (dist/farm/HeggToken.sol#39)
- >=0.4.0 (dist/farm/HeggToken.sol#116)
- >=0.4.0 (dist/farm/HeggToken.sol#217)
- ^0.6.2 (dist/farm/HeggToken.sol#409)
- >=0.4.0 (dist/farm/HeggToken.sol#573)
- 0.6.12 (dist/farm/HeggToken.sol#892)
Use one Solidity version.
Additional information: link
BEP20.constructor(string,string).name (dist/farm/HeggToken.sol#626) shadows:
- BEP20.name() (dist/farm/HeggToken.sol#642-644) (function)
- IBEP20.name() (dist/farm/HeggToken.sol#137) (function)
BEP20.constructor(string,string).symbol (dist/farm/HeggToken.sol#626) shadows:
- BEP20.symbol() (dist/farm/HeggToken.sol#656-658) (function)
- IBEP20.symbol() (dist/farm/HeggToken.sol#132) (function)
BEP20.allowance(address,address).owner (dist/farm/HeggToken.sol#690) shadows:
- Ownable.owner() (dist/farm/HeggToken.sol#70-72) (function)
BEP20._approve(address,address,uint256).owner (dist/farm/HeggToken.sol#862) shadows:
- Ownable.owner() (dist/farm/HeggToken.sol#70-72) (function)
Rename the local variables that shadow another component.
Additional information: link
HeggToken.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (dist/farm/HeggToken.sol#967-1008) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now <= expiry,HEGG::delegateBySig: signature expired) (dist/farm/HeggToken.sol#1006)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (dist/farm/HeggToken.sol#432-443) uses assembly
- INLINE ASM (dist/farm/HeggToken.sol#439-441)
Address._functionCallWithValue(address,bytes,uint256,string) (dist/farm/HeggToken.sol#540-566) uses assembly
- INLINE ASM (dist/farm/HeggToken.sol#558-561)
HeggToken.getChainId() (dist/farm/HeggToken.sol#1126-1130) uses assembly
- INLINE ASM (dist/farm/HeggToken.sol#1128)
Do not use evm assembly.
Additional information: link
Low level call in Address.sendValue(address,uint256) (dist/farm/HeggToken.sol#461-467):
- (success) = recipient.call{value: amount}() (dist/farm/HeggToken.sol#465)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (dist/farm/HeggToken.sol#540-566):
- (success,returndata) = target.call{value: weiValue}(data) (dist/farm/HeggToken.sol#549)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Parameter HeggToken.mint(address,uint256)._to (dist/farm/HeggToken.sol#897) is not in mixedCase
Parameter HeggToken.mint(address,uint256)._amount (dist/farm/HeggToken.sol#897) is not in mixedCase
Variable HeggToken._delegates (dist/farm/HeggToken.sol#909) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (dist/farm/HeggToken.sol#30)" inContext (dist/farm/HeggToken.sol#20-33)
Remove redundant statements if they congest code but offer no value.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (dist/farm/HeggToken.sol#89-92)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (dist/farm/HeggToken.sol#98-100)
decimals() should be declared external:
- BEP20.decimals() (dist/farm/HeggToken.sol#649-651)
symbol() should be declared external:
- BEP20.symbol() (dist/farm/HeggToken.sol#656-658)
totalSupply() should be declared external:
- BEP20.totalSupply() (dist/farm/HeggToken.sol#663-665)
transfer(address,uint256) should be declared external:
- BEP20.transfer(address,uint256) (dist/farm/HeggToken.sol#682-685)
allowance(address,address) should be declared external:
- BEP20.allowance(address,address) (dist/farm/HeggToken.sol#690-692)
approve(address,uint256) should be declared external:
- BEP20.approve(address,uint256) (dist/farm/HeggToken.sol#701-704)
transferFrom(address,address,uint256) should be declared external:
- BEP20.transferFrom(address,address,uint256) (dist/farm/HeggToken.sol#718-730)
increaseAllowance(address,uint256) should be declared external:
- BEP20.increaseAllowance(address,uint256) (dist/farm/HeggToken.sol#744-747)
decreaseAllowance(address,uint256) should be declared external:
- BEP20.decreaseAllowance(address,uint256) (dist/farm/HeggToken.sol#763-770)
mint(uint256) should be declared external:
- BEP20.mint(uint256) (dist/farm/HeggToken.sol#780-783)
mint(address,uint256) should be declared external:
- HeggToken.mint(address,uint256) (dist/farm/HeggToken.sol#897-900)
Use the external attribute for functions never called from the contract.
Additional information: link
Contract ownership is semi-renounced (passed to a contract)
Address._functionCallWithValue(address,bytes,uint256,string) (dist/farm/HeggToken.sol#540-566) is never used and should be removed
Address.functionCall(address,bytes) (dist/farm/HeggToken.sol#487-489) is never used and should be removed
Address.functionCall(address,bytes,string) (dist/farm/HeggToken.sol#497-503) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (dist/farm/HeggToken.sol#516-522) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (dist/farm/HeggToken.sol#530-538) is never used and should be removed
Address.isContract(address) (dist/farm/HeggToken.sol#432-443) is never used and should be removed
Address.sendValue(address,uint256) (dist/farm/HeggToken.sol#461-467) is never used and should be removed
BEP20._burn(address,uint256) (dist/farm/HeggToken.sol#840-846) is never used and should be removed
BEP20._burnFrom(address,uint256) (dist/farm/HeggToken.sol#879-886) is never used and should be removed
Context._msgData() (dist/farm/HeggToken.sol#29-32) is never used and should be removed
SafeMath.div(uint256,uint256) (dist/farm/HeggToken.sol#321-323) is never used and should be removed
SafeMath.div(uint256,uint256,string) (dist/farm/HeggToken.sol#337-347) is never used and should be removed
SafeMath.min(uint256,uint256) (dist/farm/HeggToken.sol#386-388) is never used and should be removed
SafeMath.mod(uint256,uint256) (dist/farm/HeggToken.sol#361-363) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (dist/farm/HeggToken.sol#377-384) is never used and should be removed
SafeMath.mul(uint256,uint256) (dist/farm/HeggToken.sol#295-307) is never used and should be removed
SafeMath.sqrt(uint256) (dist/farm/HeggToken.sol#391-402) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version>=0.4.0 (dist/farm/HeggToken.sol#8) allows old versions
Pragma version>=0.4.0 (dist/farm/HeggToken.sol#39) allows old versions
Pragma version>=0.4.0 (dist/farm/HeggToken.sol#116) allows old versions
Pragma version>=0.4.0 (dist/farm/HeggToken.sol#217) allows old versions
Pragma version^0.6.2 (dist/farm/HeggToken.sol#409) allows old versions
Pragma version>=0.4.0 (dist/farm/HeggToken.sol#573) allows old versions
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
Young tokens have high risks of price dump / death
Token has relatively low CoinGecko rank
Young tokens have high risks of price dump / death
Token has relatively low CoinMarketCap rank
Unable to find Youtube account