Resource Management Strategy Game
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#179-200):
- (success,returndata) = target.call{value: weiValue}(data) (#183)
Low level call in Address.sendValue(address,uint256) (#154-160):
- (success) = recipient.call{value: amount}() (#158)
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 (#11)" inContext (#5-14)
Remove redundant statements if they congest code but offer no value.
Additional information: link
MscpToken.slitherConstructorVariables() (#205-578) uses literals with too many digits:
- limitSupply = 1111111111000000000000000000 (#221)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
MscpToken.SCALER (#218) is never used in MscpToken (#205-578)
Remove unused state variables.
Additional information: link
MscpToken.allowance(address,address).owner (#375) shadows:
- Ownable.owner() (#35-37) (function)
MscpToken._approve(address,address,uint256).owner (#544) shadows:
- Ownable.owner() (#35-37) (function)
Rename the local variables that shadow another component.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#179-200) uses assembly
- INLINE ASM (#192-195)
Address.isContract(address) (#143-152) uses assembly
- INLINE ASM (#150)
Do not use evm assembly.
Additional information: link
Different versions of Solidity are used:
- Version used: ['0.6.7', '^0.6.0', '^0.6.2']
- ^0.6.0 (#3)
- ^0.6.0 (#16)
- ^0.6.0 (#70)
- ^0.6.0 (#83)
- ^0.6.2 (#140)
- 0.6.7 (#203)
Use one Solidity version.
Additional information: link
Pragma version^0.6.0 (#16) allows old versions
Pragma version^0.6.0 (#83) allows old versions
Pragma version^0.6.2 (#140) allows old versions
Pragma version^0.6.0 (#70) allows old versions
Pragma version0.6.7 (#203) allows old versions
solc-0.6.7 is not recommended for deployment
Pragma version^0.6.0 (#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 MscpToken.addBridge(address)._bridge (#247) is not in mixedCase
Constant MscpToken._symbol (#215) is not in UPPER_CASE_WITH_UNDERSCORES
Constant MscpToken._name (#214) is not in UPPER_CASE_WITH_UNDERSCORES
Parameter MscpToken.removeBridge(address)._bridge (#256) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
SafeMath.mul(uint256,uint256) (#104-116) is never used and should be removed
Address.sendValue(address,uint256) (#154-160) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#170-172) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#134-137) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#174-177) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#122-128) is never used and should be removed
Context._msgData() (#10-13) is never used and should be removed
SafeMath.mod(uint256,uint256) (#130-132) is never used and should be removed
SafeMath.div(uint256,uint256) (#118-120) is never used and should be removed
Address._functionCallWithValue(address,bytes,uint256,string) (#179-200) is never used and should be removed
Address.isContract(address) (#143-152) is never used and should be removed
Address.functionCall(address,bytes,string) (#166-168) is never used and should be removed
Address.functionCall(address,bytes) (#162-164) is never used and should be removed
Remove unused functions.
Additional information: link
MscpToken.limitSupply (#221) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
burnFrom(address,uint256) should be declared external:
- MscpToken.burnFrom(address,uint256) (#301-308)
balanceOf(address) should be declared external:
- MscpToken.balanceOf(address) (#352-354)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#54-57)
decimals() should be declared external:
- MscpToken.decimals() (#338-340)
burn(uint256) should be declared external:
- MscpToken.burn(uint256) (#286-288)
owner() should be declared external:
- Ownable.owner() (#35-37)
transferFrom(address,address,uint256) should be declared external:
- MscpToken.transferFrom(address,address,uint256) (#407-417)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#63-67)
totalSupply() should be declared external:
- MscpToken.totalSupply() (#345-347)
approve(address,uint256) should be declared external:
- MscpToken.approve(address,uint256) (#393-396)
transfer(address,uint256) should be declared external:
- MscpToken.transfer(address,uint256) (#363-366)
decreaseAllowance(address,uint256) should be declared external:
- MscpToken.decreaseAllowance(address,uint256) (#450-458)
increaseAllowance(address,uint256) should be declared external:
- MscpToken.increaseAllowance(address,uint256) (#431-434)
symbol() should be declared external:
- MscpToken.symbol() (#325-327)
name() should be declared external:
- MscpToken.name() (#317-319)
Use the external attribute for functions never called from the contract.
Additional information: link
Contract ownership is semi-renounced (passed to a contract)
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Unable to find token contract audit
Unable to verify token contract address on the website
Token is not listed at Mobula.Finance
Additional information: link
Unable to find audit link on the website
Unable to find whitepaper link on the website
Unable to find token on CoinHunt
Additional information: link
Token has relatively low CoinMarketCap rank
Unable to find Youtube account
Unable to find Discord account