Bemil is an entertaining game with a Play to Earn feature, in which players can engage in battle modes with each other, build party & clan, explore the minigames and other features of the game in the space & galaxy theme..
Created in the pandemic period, the aim of Bemil is to create a world where people can have fun and make earnings at the same time - two factors that haven' t seemed to be available in these last 2 years.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Context.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/math/SafeMath.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Address.sol#3) 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
Parameter BemilToken.increaseMintingAllowance(address,uint256)._minter (contracts/BemilToken.sol#87) is not in mixedCase
Parameter BemilToken.burn(uint256)._amount (contracts/BemilToken.sol#43) is not in mixedCase
Parameter BemilToken.burnFrom(address,uint256)._amount (contracts/BemilToken.sol#58) is not in mixedCase
Parameter BemilToken.addMinter(address,uint256)._minter (contracts/BemilToken.sol#73) is not in mixedCase
Parameter BemilToken.mint(address,uint256)._amount (contracts/BemilToken.sol#65) is not in mixedCase
Parameter BemilToken.decreaseMintingAllowance(address,uint256)._minter (contracts/BemilToken.sol#95) is not in mixedCase
Parameter BemilToken.addMinter(address,uint256)._amount (contracts/BemilToken.sol#73) is not in mixedCase
Parameter BemilToken.isMinter(address)._account (contracts/BemilToken.sol#34) is not in mixedCase
Parameter BemilToken.burnFrom(address,uint256)._account (contracts/BemilToken.sol#58) is not in mixedCase
Parameter BemilToken.decreaseMintingAllowance(address,uint256)._subtractedValue (contracts/BemilToken.sol#95) is not in mixedCase
Parameter BemilToken.mint(address,uint256)._to (contracts/BemilToken.sol#65) is not in mixedCase
Parameter BemilToken.removeMinter(address)._minter (contracts/BemilToken.sol#80) is not in mixedCase
Parameter BemilToken.increaseMintingAllowance(address,uint256)._addedValue (contracts/BemilToken.sol#87) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
transfer(address,uint256) should be declared external:
- BEP20.transfer(address,uint256) (contracts/token/BEP20.sol#114-117)
symbol() should be declared external:
- BEP20.symbol() (contracts/token/BEP20.sol#88-90)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (@openzeppelin/contracts/access/Ownable.sol#53-55)
removeMinter(address) should be declared external:
- BemilToken.removeMinter(address) (contracts/BemilToken.sol#80-84)
approve(address,uint256) should be declared external:
- BEP20.approve(address,uint256) (contracts/token/BEP20.sol#133-136)
addMinter(address,uint256) should be declared external:
- BemilToken.addMinter(address,uint256) (contracts/BemilToken.sol#73-77)
name() should be declared external:
- BEP20.name() (contracts/token/BEP20.sol#74-76)
balanceOf(address) should be declared external:
- BEP20.balanceOf(address) (contracts/token/BEP20.sol#102-104)
transferFrom(address,address,uint256) should be declared external:
- BEP20.transferFrom(address,address,uint256) (contracts/token/BEP20.sol#150-162)
cap() should be declared external:
- BemilToken.cap() (contracts/BemilToken.sol#30-32)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (@openzeppelin/contracts/access/Ownable.sol#61-64)
decreaseMintingAllowance(address,uint256) should be declared external:
- BemilToken.decreaseMintingAllowance(address,uint256) (contracts/BemilToken.sol#95-100)
burn(uint256) should be declared external:
- BemilToken.burn(uint256) (contracts/BemilToken.sol#43-45)
increaseMintingAllowance(address,uint256) should be declared external:
- BemilToken.increaseMintingAllowance(address,uint256) (contracts/BemilToken.sol#87-92)
mint(address,uint256) should be declared external:
- BemilToken.mint(address,uint256) (contracts/BemilToken.sol#65-71)
decimals() should be declared external:
- BEP20.decimals() (contracts/token/BEP20.sol#81-83)
increaseAllowance(address,uint256) should be declared external:
- BEP20.increaseAllowance(address,uint256) (contracts/token/BEP20.sol#176-179)
decreaseAllowance(address,uint256) should be declared external:
- BEP20.decreaseAllowance(address,uint256) (contracts/token/BEP20.sol#195-202)
burnFrom(address,uint256) should be declared external:
- BemilToken.burnFrom(address,uint256) (contracts/BemilToken.sol#58-63)
Use the external attribute for functions never called from the contract.
Additional information: link
BEP20.allowance(address,address).owner (contracts/token/BEP20.sol#122) shadows:
- Ownable.owner() (@openzeppelin/contracts/access/Ownable.sol#34-36) (function)
BEP20._approve(address,address,uint256).owner (contracts/token/BEP20.sol#281) shadows:
- Ownable.owner() (@openzeppelin/contracts/access/Ownable.sol#34-36) (function)
Rename the local variables that shadow another component.
Additional information: link
Address.isContract(address) (@openzeppelin/contracts/utils/Address.sol#26-36) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#32-34)
Address.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#195-215) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#207-210)
Do not use evm assembly.
Additional information: link
Different versions of Solidity are used:
- Version used: ['0.8.4', '^0.8.0']
- ^0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/Address.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/Context.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/math/SafeMath.sol#3)
- 0.8.4 (contracts/BemilToken.sol#3)
- 0.8.4 (contracts/token/BEP20.sol#3)
- 0.8.4 (contracts/token/IBEP20.sol#3)
Use one Solidity version.
Additional information: link
SafeMath.mul(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#120-122) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#195-215) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#63-68) is never used and should be removed
Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#54-59) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts/utils/Address.sol#108-114) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#75-80) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#178-187) is never used and should be removed
BEP20._burnFrom(address,uint256) (contracts/token/BEP20.sol#298-305) is never used and should be removed
Address.functionDelegateCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#168-170) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#21-27) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (@openzeppelin/contracts/utils/math/SafeMath.sol#216-225) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#122-133) is never used and should be removed
SafeMath.div(uint256,uint256,string) (@openzeppelin/contracts/utils/math/SafeMath.sol#190-199) is never used and should be removed
Context._msgData() (@openzeppelin/contracts/utils/Context.sol#20-22) is never used and should be removed
Address.functionStaticCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#141-143) is never used and should be removed
SafeMath.mod(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#150-152) is never used and should be removed
SafeMath.div(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#134-136) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#46-56) is never used and should be removed
SafeMath.trySub(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#34-39) is never used and should be removed
Address.isContract(address) (@openzeppelin/contracts/utils/Address.sol#26-36) is never used and should be removed
Address.functionCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#89-95) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#151-160) is never used and should be removed
Address.functionCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#79-81) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#122-133):
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts/utils/Address.sol#131)
Low level call in Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#178-187):
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#185)
Low level call in Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#54-59):
- (success) = recipient.call{value: amount}() (@openzeppelin/contracts/utils/Address.sol#57)
Low level call in Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#151-160):
- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts/utils/Address.sol#158)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Token is not listed at Mobula.Finance
Additional information: link
Unable to find code repository for the project
Token has a considerable age, but social accounts / website are missing or have few users
Token has relatively low CoinGecko rank
Twitter account link seems to be invalid
Unable to find Youtube account
Unable to find Discord account