Space SIP is the first NFT space battleship game with worldclass design of gaming experience in a real-value collectible ecosystem.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
SIPToken.setTax(uint256) (contracts/token/SIPToken.sol#95-97) should emit an event for:
- _tax = tax (contracts/token/SIPToken.sol#96)
Emit an event for critical parameter changes.
Additional information: link
SIPToken.constructor(address,address,address,address,address,address,address,address,address,address,address,address).mining (contracts/token/SIPToken.sol#53) lacks a zero-check on :
- _miningAddr = mining (contracts/token/SIPToken.sol#59)
SIPToken.constructor(address,address,address,address,address,address,address,address,address,address,address,address).bpAddr (contracts/token/SIPToken.sol#57) lacks a zero-check on :
- _bpAddr = bpAddr (contracts/token/SIPToken.sol#62)
SIPToken.setBPAddress(address).bpAddr (contracts/token/SIPToken.sol#85) lacks a zero-check on :
- _bpAddr = bpAddr (contracts/token/SIPToken.sol#86)
SIPToken.setFeeKeeperAddress(address).feeKeeper (contracts/token/SIPToken.sol#90) lacks a zero-check on :
- _feeKeeper = feeKeeper (contracts/token/SIPToken.sol#91)
Check that the address is not zero.
Additional information: link
Reentrancy in SIPToken._transfer(address,address,uint256) (contracts/token/SIPToken.sol#185-217):
External calls:
- IBotPrevention(_bpAddr).protect(sender,recipient,amount) (contracts/token/SIPToken.sol#200)
State variables written after the call(s):
- super._transfer(sender,recipient,amount) (contracts/token/SIPToken.sol#205)
- _balances[sender] = senderBalance - amount (@openzeppelin/contracts/token/ERC20/ERC20.sol#233)
- _balances[recipient] += amount (@openzeppelin/contracts/token/ERC20/ERC20.sol#235)
- super._transfer(sender,_feeKeeper,taxAmount) (contracts/token/SIPToken.sol#211)
- _balances[sender] = senderBalance - amount (@openzeppelin/contracts/token/ERC20/ERC20.sol#233)
- _balances[recipient] += amount (@openzeppelin/contracts/token/ERC20/ERC20.sol#235)
- super._transfer(sender,recipient,amount) (contracts/token/SIPToken.sol#216)
- _balances[sender] = senderBalance - amount (@openzeppelin/contracts/token/ERC20/ERC20.sol#233)
- _balances[recipient] += amount (@openzeppelin/contracts/token/ERC20/ERC20.sol#235)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in SIPToken._transfer(address,address,uint256) (contracts/token/SIPToken.sol#185-217):
External calls:
- IBotPrevention(_bpAddr).protect(sender,recipient,amount) (contracts/token/SIPToken.sol#200)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (@openzeppelin/contracts/token/ERC20/ERC20.sol#237)
- super._transfer(sender,_feeKeeper,taxAmount) (contracts/token/SIPToken.sol#211)
- Transfer(sender,recipient,amount) (@openzeppelin/contracts/token/ERC20/ERC20.sol#237)
- super._transfer(sender,recipient,amount) (contracts/token/SIPToken.sol#205)
- Transfer(sender,recipient,amount) (@openzeppelin/contracts/token/ERC20/ERC20.sol#237)
- super._transfer(sender,recipient,amount) (contracts/token/SIPToken.sol#216)
Apply the check-effects-interactions pattern.
Additional information: link
Different versions of Solidity is used:
- Version used: ['^0.8.0', '^0.8.2']
- ^0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3)
- ^0.8.0 (@openzeppelin/contracts/security/Pausable.sol#3)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/Context.sol#3)
- ^0.8.2 (contracts/BP/interfaces/IBotPrevention.sol#2)
- ^0.8.2 (contracts/common/BlackList.sol#2)
- ^0.8.2 (contracts/interfaces/IBP.sol#2)
- ^0.8.2 (contracts/token/SIPToken.sol#2)
Use one Solidity version.
Additional information: link
Context._msgData() (@openzeppelin/contracts/utils/Context.sol#20-22) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/security/Pausable.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Context.sol#3) allows old versions
Pragma version^0.8.2 (contracts/BP/interfaces/IBotPrevention.sol#2) allows old versions
Pragma version^0.8.2 (contracts/common/BlackList.sol#2) allows old versions
Pragma version^0.8.2 (contracts/interfaces/IBP.sol#2) allows old versions
Pragma version^0.8.2 (contracts/token/SIPToken.sol#2) allows old versions
solc-0.8.2 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
Parameter BlackList.getBlackListStatus(address)._maker (contracts/common/BlackList.sol#8) is not in mixedCase
Parameter BlackList.addBlackList(address)._evilUser (contracts/common/BlackList.sol#18) is not in mixedCase
Parameter BlackList.removeBlackList(address)._clearedUser (contracts/common/BlackList.sol#23) is not in mixedCase
Constant Configurable.cap (contracts/token/SIPToken.sol#17) is not in UPPER_CASE_WITH_UNDERSCORES
Event SIPToken__issue(bytes32) (contracts/token/SIPToken.sol#40) is not in CapWords
Parameter SIPToken.addPair(address)._address (contracts/token/SIPToken.sol#100) is not in mixedCase
Parameter SIPToken.removePair(address)._address (contracts/token/SIPToken.sol#105) is not in mixedCase
Parameter SIPToken.addExcludedTaxAddress(address)._address (contracts/token/SIPToken.sol#110) is not in mixedCase
Parameter SIPToken.removeExcludedTaxAddress(address)._address (contracts/token/SIPToken.sol#115) is not in mixedCase
Parameter SIPToken.destroyBlackFunds(address)._blackListedUser (contracts/token/SIPToken.sol#133) is not in mixedCase
Parameter SIPToken.mint(address)._to (contracts/token/SIPToken.sol#141) is not in mixedCase
Parameter SIPToken.transfer(address,uint256)._to (contracts/token/SIPToken.sol#161) is not in mixedCase
Parameter SIPToken.transfer(address,uint256)._value (contracts/token/SIPToken.sol#161) is not in mixedCase
Parameter SIPToken.transferFrom(address,address,uint256)._from (contracts/token/SIPToken.sol#168) is not in mixedCase
Parameter SIPToken.transferFrom(address,address,uint256)._to (contracts/token/SIPToken.sol#169) is not in mixedCase
Parameter SIPToken.transferFrom(address,address,uint256)._value (contracts/token/SIPToken.sol#170) is not in mixedCase
Variable SIPToken._burntAmount (contracts/token/SIPToken.sol#21) is not in mixedCase
Variable SIPToken._dirtyFunds (contracts/token/SIPToken.sol#22) is not in mixedCase
Variable SIPToken._tax (contracts/token/SIPToken.sol#23) is not in mixedCase
Variable SIPToken._feeKeeper (contracts/token/SIPToken.sol#24) is not in mixedCase
Variable SIPToken._miningAddr (contracts/token/SIPToken.sol#25) is not in mixedCase
Variable SIPToken._bpAddr (contracts/token/SIPToken.sol#30) is not in mixedCase
Variable SIPToken._isEnableBP (contracts/token/SIPToken.sol#31) is not in mixedCase
Variable SIPToken._isPair (contracts/token/SIPToken.sol#34) is not in mixedCase
Variable SIPToken._excludedTax (contracts/token/SIPToken.sol#37) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
SIPToken.slitherConstructorConstantVariables() (contracts/token/SIPToken.sol#20-218) uses literals with too many digits:
- BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD (contracts/token/SIPToken.sol#27)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (@openzeppelin/contracts/access/Ownable.sol#53-55)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (@openzeppelin/contracts/access/Ownable.sol#61-64)
name() should be declared external:
- ERC20.name() (@openzeppelin/contracts/token/ERC20/ERC20.sol#61-63)
symbol() should be declared external:
- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#69-71)
decimals() should be declared external:
- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#86-88)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#112-115)
- SIPToken.transfer(address,uint256) (contracts/token/SIPToken.sol#161-165)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#131-134)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#149-163)
- SIPToken.transferFrom(address,address,uint256) (contracts/token/SIPToken.sol#167-182)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#177-180)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#196-204)
addBlackList(address) should be declared external:
- BlackList.addBlackList(address) (contracts/common/BlackList.sol#18-21)
removeBlackList(address) should be declared external:
- BlackList.removeBlackList(address) (contracts/common/BlackList.sol#23-26)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find whitepaper 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 scam / 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
Twitter account link seems to be invalid