Cyberclassic is a first 3.0 third-person user-controlled NFT game based on Blockchain. Buy, own, train, and play your Cyborgs in tournaments to earn reward.
cyberclassic.constructor(string,string,uint256)._name (VIFA.sol#13) shadows:
- ERC20._name (ERC20.sol#41) (state variable)
cyberclassic.constructor(string,string,uint256)._symbol (VIFA.sol#14) shadows:
- ERC20._symbol (ERC20.sol#42) (state variable)
Rename the local variables that shadow another component.
Additional information: link
Address.isContract(address) (Address.sol#26-36) uses assembly
- INLINE ASM (Address.sol#32-34)
Address.verifyCallResult(bool,bytes,string) (Address.sol#195-215) uses assembly
- INLINE ASM (Address.sol#207-210)
Do not use evm assembly.
Additional information: link
Pragma version^0.8.0 (Address.sol#3) allows old versions
Pragma version^0.8.0 (Context.sol#3) allows old versions
Pragma version^0.8.0 (ERC20.sol#3) allows old versions
Pragma version^0.8.0 (IERC20.sol#3) allows old versions
Pragma version^0.8.0 (IERC20Metadata.sol#3) allows old versions
Pragma version^0.8.0 (Ownable.sol#3) allows old versions
Pragma version^0.8.0 (SafeERC20.sol#3) allows old versions
Pragma version^0.8.0 (VIFA.sol#2) allows old versions
solc-0.8.0 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
Address.functionCall(address,bytes) (Address.sol#79-81) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (Address.sol#108-114) is never used and should be removed
Address.functionDelegateCall(address,bytes) (Address.sol#168-170) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (Address.sol#178-187) is never used and should be removed
Address.functionStaticCall(address,bytes) (Address.sol#141-143) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (Address.sol#151-160) is never used and should be removed
Address.sendValue(address,uint256) (Address.sol#54-59) is never used and should be removed
Context._msgData() (Context.sol#20-22) is never used and should be removed
ERC20._burn(address,uint256) (ERC20.sol#274-289) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (SafeERC20.sol#44-57) is never used and should be removed
SafeERC20.safeDecreaseAllowance(IERC20,address,uint256) (SafeERC20.sol#68-79) is never used and should be removed
SafeERC20.safeIncreaseAllowance(IERC20,address,uint256) (SafeERC20.sol#59-66) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (SafeERC20.sol#28-35) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (Address.sol#54-59):
- (success) = recipient.call{value: amount}() (Address.sol#57)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (Address.sol#122-133):
- (success,returndata) = target.call{value: value}(data) (Address.sol#131)
Low level call in Address.functionStaticCall(address,bytes,string) (Address.sol#151-160):
- (success,returndata) = target.staticcall(data) (Address.sol#158)
Low level call in Address.functionDelegateCall(address,bytes,string) (Address.sol#178-187):
- (success,returndata) = target.delegatecall(data) (Address.sol#185)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Contract cyberclassic (VIFA.sol#9-25) is not in CapWords
Parameter cyberclassic.clearTokens(address,uint256)._token (VIFA.sol#20) is not in mixedCase
Parameter cyberclassic.clearTokens(address,uint256)._amount (VIFA.sol#20) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
name() should be declared external:
- ERC20.name() (ERC20.sol#61-63)
symbol() should be declared external:
- ERC20.symbol() (ERC20.sol#69-71)
decimals() should be declared external:
- ERC20.decimals() (ERC20.sol#86-88)
totalSupply() should be declared external:
- ERC20.totalSupply() (ERC20.sol#93-95)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (ERC20.sol#100-102)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (ERC20.sol#112-115)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (ERC20.sol#120-122)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (ERC20.sol#131-134)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (ERC20.sol#149-163)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (ERC20.sol#177-180)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (ERC20.sol#196-204)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (Ownable.sol#53-55)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (Ownable.sol#61-64)
Use the external attribute for functions never called from the contract.
Additional information: link
Contract ownership is semi-renounced (passed to a contract)
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
Token has relatively low CoinGecko rank
Token has relatively low CoinMarketCap rank
Young tokens have high risks of price dump / death
Young tokens have high risks of price dump / death
Last post in Twitter was more than 30 days ago