MVS: A Decentralized Currency in Multiverse
MultiverseCoin._writeCheckpoint(address,uint32,uint256,uint256) (contracts/token/MultiverseCoin.sol#1096-1118) uses a dangerous strict equality:
- nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber (contracts/token/MultiverseCoin.sol#1108-1109)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
Variable MultiverseCoin.TOTAL_SUPPLY (contracts/token/MultiverseCoin.sol#875) is too similar to ERC20._totalSupply (contracts/token/MultiverseCoin.sol#599)
Prevent variables from having similar names.
Additional information: link
MultiverseCoin.slitherConstructorConstantVariables() (contracts/token/MultiverseCoin.sol#865-1136) uses literals with too many digits:
- TOTAL_SUPPLY = 20000000000 * (10 ** 18) (contracts/token/MultiverseCoin.sol#875)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
ERC20.constructor(string,string).name (contracts/token/MultiverseCoin.sol#614) shadows:
- ERC20.name() (contracts/token/MultiverseCoin.sol#630-632) (function)
- IERC20.name() (contracts/token/MultiverseCoin.sol#123) (function)
ERC20.allowance(address,address).owner (contracts/token/MultiverseCoin.sol#683) shadows:
- Ownable.owner() (contracts/token/MultiverseCoin.sol#62-64) (function)
ERC20.constructor(string,string).symbol (contracts/token/MultiverseCoin.sol#614) shadows:
- ERC20.symbol() (contracts/token/MultiverseCoin.sol#644-646) (function)
- IERC20.symbol() (contracts/token/MultiverseCoin.sol#118) (function)
ERC20._approve(address,address,uint256).owner (contracts/token/MultiverseCoin.sol#853) shadows:
- Ownable.owner() (contracts/token/MultiverseCoin.sol#62-64) (function)
Rename the local variables that shadow another component.
Additional information: link
MultiverseCoin.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (contracts/token/MultiverseCoin.sol#971-1001) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now <= expiry,delegateBySig: signature expired) (contracts/token/MultiverseCoin.sol#999)
Avoid relying on block.timestamp.
Additional information: link
MultiverseCoin.getChainId() (contracts/token/MultiverseCoin.sol#1129-1135) uses assembly
- INLINE ASM (contracts/token/MultiverseCoin.sol#1131-1133)
Address._functionCallWithValue(address,bytes,uint256,string) (contracts/token/MultiverseCoin.sol#532-560) uses assembly
- INLINE ASM (contracts/token/MultiverseCoin.sol#552-555)
Address.isContract(address) (contracts/token/MultiverseCoin.sol#409-420) uses assembly
- INLINE ASM (contracts/token/MultiverseCoin.sol#416-418)
Do not use evm assembly.
Additional information: link
Pragma version>=0.6.0<0.8.0 (contracts/token/MultiverseCoin.sol#3) is too complex
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 Address._functionCallWithValue(address,bytes,uint256,string) (contracts/token/MultiverseCoin.sol#532-560):
- (success,returndata) = target.call{value: weiValue}(data) (contracts/token/MultiverseCoin.sol#541-543)
Low level call in Address.sendValue(address,uint256) (contracts/token/MultiverseCoin.sol#438-447):
- (success) = recipient.call{value: amount}() (contracts/token/MultiverseCoin.sol#442)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Variable MultiverseCoin._delegates (contracts/token/MultiverseCoin.sol#883) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (contracts/token/MultiverseCoin.sol#25)" inContext (contracts/token/MultiverseCoin.sol#15-28)
Remove redundant statements if they congest code but offer no value.
Additional information: link
SafeMath.mul(uint256,uint256) (contracts/token/MultiverseCoin.sol#278-290) is never used and should be removed
Address.sendValue(address,uint256) (contracts/token/MultiverseCoin.sol#438-447) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (contracts/token/MultiverseCoin.sol#499-511) is never used and should be removed
SafeMath.sqrt(uint256) (contracts/token/MultiverseCoin.sol#374-385) is never used and should be removed
SafeMath.min(uint256,uint256) (contracts/token/MultiverseCoin.sol#369-371) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (contracts/token/MultiverseCoin.sol#360-367) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (contracts/token/MultiverseCoin.sol#519-530) is never used and should be removed
SafeMath.div(uint256,uint256,string) (contracts/token/MultiverseCoin.sol#320-330) is never used and should be removed
Context._msgData() (contracts/token/MultiverseCoin.sol#24-27) is never used and should be removed
SafeMath.mod(uint256,uint256) (contracts/token/MultiverseCoin.sol#344-346) is never used and should be removed
SafeMath.div(uint256,uint256) (contracts/token/MultiverseCoin.sol#304-306) is never used and should be removed
Address._functionCallWithValue(address,bytes,uint256,string) (contracts/token/MultiverseCoin.sol#532-560) is never used and should be removed
Address.isContract(address) (contracts/token/MultiverseCoin.sol#409-420) is never used and should be removed
Address.functionCall(address,bytes,string) (contracts/token/MultiverseCoin.sol#480-486) is never used and should be removed
Address.functionCall(address,bytes) (contracts/token/MultiverseCoin.sol#467-472) is never used and should be removed
Remove unused functions.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (contracts/token/MultiverseCoin.sol#81-84)
decimals() should be declared external:
- ERC20.decimals() (contracts/token/MultiverseCoin.sol#637-639)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (contracts/token/MultiverseCoin.sol#775-788)
symbol() should be declared external:
- ERC20.symbol() (contracts/token/MultiverseCoin.sol#644-646)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (contracts/token/MultiverseCoin.sol#749-759)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (contracts/token/MultiverseCoin.sol#90-92)
totalSupply() should be declared external:
- ERC20.totalSupply() (contracts/token/MultiverseCoin.sol#651-653)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (contracts/token/MultiverseCoin.sol#699-706)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (contracts/token/MultiverseCoin.sol#683-690)
Use the external attribute for functions never called from the contract.
Additional information: link
Token has relatively low CoinGecko rank
Token has relatively low CoinMarketCap rank
Twitter account link seems to be invalid
Unable to find Youtube account
Unable to find Discord account