HeroFi is an aRPG game based on blockchain technology.
Contract ownership is not renounced (belongs to a wallet)
BEP20.constructor(string,string).name (#627) shadows:
- BEP20.name() (#643-645) (function)
- IBEP20.name() (#181) (function)
BEP20.constructor(string,string).symbol (#627) shadows:
- BEP20.symbol() (#657-659) (function)
- IBEP20.symbol() (#176) (function)
BEP20.allowance(address,address).owner (#695) shadows:
- Ownable.owner() (#120-122) (function)
BEP20._approve(address,address,uint256).owner (#867) shadows:
- Ownable.owner() (#120-122) (function)
Rename the local variables that shadow another component.
Additional information: link
Address.isContract(address) (#467-478) uses assembly
- INLINE ASM (#474-476)
Address._functionCallWithValue(address,bytes,uint256,string) (#575-601) uses assembly
- INLINE ASM (#593-596)
Do not use evm assembly.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#575-601) is never used and should be removed
Address.functionCall(address,bytes) (#522-524) is never used and should be removed
Address.functionCall(address,bytes,string) (#532-538) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#551-557) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#565-573) is never used and should be removed
Address.isContract(address) (#467-478) is never used and should be removed
Address.sendValue(address,uint256) (#496-502) is never used and should be removed
BEP20._burn(address,uint256) (#845-851) is never used and should be removed
BEP20._burnFrom(address,uint256) (#884-891) is never used and should be removed
Context._msgData() (#25-28) is never used and should be removed
SafeERC20._callOptionalReturn(BEP20,bytes) (#77-87) is never used and should be removed
SafeERC20.safeApprove(BEP20,address,uint256) (#50-59) is never used and should be removed
SafeERC20.safeDecreaseAllowance(BEP20,address,uint256) (#66-69) is never used and should be removed
SafeERC20.safeIncreaseAllowance(BEP20,address,uint256) (#61-64) is never used and should be removed
SafeERC20.safeTransfer(BEP20,address,uint256) (#35-37) is never used and should be removed
SafeERC20.safeTransferFrom(BEP20,address,address,uint256) (#39-41) is never used and should be removed
SafeMath.div(uint256,uint256) (#361-363) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#377-387) is never used and should be removed
SafeMath.min(uint256,uint256) (#426-428) is never used and should be removed
SafeMath.mod(uint256,uint256) (#401-403) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#417-424) is never used and should be removed
SafeMath.mul(uint256,uint256) (#335-347) is never used and should be removed
SafeMath.sqrt(uint256) (#431-442) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#496-502):
- (success) = recipient.call{value: amount}() (#500)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#575-601):
- (success,returndata) = target.call{value: weiValue}(data) (#584)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Redundant expression "this (#26)" inContext (#16-29)
Remove redundant statements if they congest code but offer no value.
Additional information: link
HeroFiEgg.constructor() (#895-897) uses literals with too many digits:
- _mint(msg.sender,520000000 * 10 ** 18) (#896)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#139-142)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#148-150)
name() should be declared external:
- BEP20.name() (#643-645)
decimals() should be declared external:
- BEP20.decimals() (#650-652)
symbol() should be declared external:
- BEP20.symbol() (#657-659)
totalSupply() should be declared external:
- BEP20.totalSupply() (#664-666)
balanceOf(address) should be declared external:
- BEP20.balanceOf(address) (#675-677)
transfer(address,uint256) should be declared external:
- BEP20.transfer(address,uint256) (#687-690)
allowance(address,address) should be declared external:
- BEP20.allowance(address,address) (#695-697)
approve(address,uint256) should be declared external:
- BEP20.approve(address,uint256) (#706-709)
transferFrom(address,address,uint256) should be declared external:
- BEP20.transferFrom(address,address,uint256) (#723-735)
increaseAllowance(address,uint256) should be declared external:
- BEP20.increaseAllowance(address,uint256) (#749-752)
decreaseAllowance(address,uint256) should be declared external:
- BEP20.decreaseAllowance(address,uint256) (#768-775)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find audit link on the website
Unable to find token on CoinHunt
Additional information: link
Young tokens have high risks of price dump / death
Young tokens have high risks of price dump / death
Young tokens have high risks of price dump / death