Introduction
Set in the 22nd century, Technology is evolving so quickly. That help everyone who have the best effort and passionate will be stronger to become the best Heroes on the pitch. Own the best players and upgrade equipments & skills to build the strongest club, conquer new challenges.
The competition on the pitch is increasingly fierce, everyone need the support of technology to become more stronger and stronger. Collect quality players, equip the strongest items to have the strongest Heroes on the pitch
Why Blockchain?
The Soccer Infinity team is made up of seasoned blockchain experts that have been involved in, or are currently developing, some of the industry's earliest infrastructure. With DeFi having been shown as one of the first genuine use cases of blockchain technology, we believe that gaming is the next big revolution.
By having important elements of the game stored on-chain, blockchain and especially NFT-based gaming will relieve some of the issues currently present in traditional gaming such as provable ownership and trust less item transfers.
Within the next few years, blockchain gaming will undoubtedly disrupt and earn its place in the overall gaming market, most notably the mobile phone gaming sector. We envision and hope to be able to provide these opportunities through our game, whilst also introducing new people to crypto in a fun and exciting way, starting with the sport that the world knows and loves — Football.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract locking ether found:
Contract SoccinToken (#1334-1420) has payable functions:
- SoccinToken.receive() (#1374)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.
Additional information: link
SoccinERC20.constructor(string,string).symbol (#1212) shadows:
- ERC20.symbol() (#894-896) (function)
- IERC20Metadata.symbol() (#817) (function)
Rename the local variables that shadow another component.
Additional information: link
SoccinERC20.setMinTokensBeforeSwap(uint256) (#1245-1248) should emit an event for:
- minimumForSwapFee = _minimumForSwapFee (#1247)
Emit an event for critical parameter changes.
Additional information: link
Reentrancy in SoccinToken.constructor(address) (#1342-1354):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#1347-1348)
State variables written after the call(s):
- _approve(address(this),address(uniswapV2Router),~ uint256(0)) (#1351)
- _allowances[owner][spender] = amount (#1137)
- _mint(beneficiary,4866 * 10 ** 5 * 10 ** 18) (#1353)
- _balances[account] += amount (#1082)
- _mint(beneficiary,4866 * 10 ** 5 * 10 ** 18) (#1353)
- _totalSupply += amount (#1081)
- uniswapV2Router = _uniswapV2Router (#1350)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in SoccinToken.constructor(address) (#1342-1354):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#1347-1348)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#1138)
- _approve(address(this),address(uniswapV2Router),~ uint256(0)) (#1351)
- Transfer(address(0),account,amount) (#1083)
- _mint(beneficiary,4866 * 10 ** 5 * 10 ** 18) (#1353)
Apply the check-effects-interactions pattern.
Additional information: link
SoccinERC20.enableTrading() (#1221-1225) compares to a boolean constant:
-require(bool)(enable == false) (#1222)
Remove the equality to the boolean constant.
Additional information: link
SafeMath.trySub(uint256,uint256) (#383-388) is never used and should be removed
Remove unused functions.
Additional information: link
solc-0.8.4 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
Constant SoccinToken.maxSupply (#1337) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#151) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#152)
Prevent variables from having similar names.
Additional information: link
SoccinERC20.GameContract (#1201) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
sweepTaxFee(bool) should be declared external:
- SoccinToken.sweepTaxFee(bool) (#1364-1371)
Use the external attribute for functions never called from the contract.
Additional information: link
Average PancakeSwap trading volume, liqudity, number of swaps are extremely low. Token seems to be dead.
Token is deployed only at one blockchain
Token has only one trading pair
Unable to find PancakeSwap trading pair to compute liquidity.
Unable to find PancakeSwap trading pair to compute volume.
Unable to find PancakeSwap trading pair to compute number of swaps.
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Token was delisted (assigned to inactive / untracked listing) from CoinMarketCap
Additional information: link
Unable to find token contract audit
Unable to verify token contract address on the website
Unable to find audit link on the website
Unable to find whitepaper link on the website
Unable to find Telegram link on the website
Unable to find Twitter 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 scam / price dump / death
Token has no active CoinMarketCap listing / rank
Token has relatively low CoinGecko rank
Twitter account link seems to be invalid
Unable to find Youtube account