## Introduction
* Safety comes from a team with many years of experience in the Crypto industry and developed a centralized exchange that ranks at the top of Coinmarketcap. However, following the extremely strong DeFi flow and untapped potential, we decided to research and develop a completely new ecosystem in the direction of multi-network decentralization. Today, when many Blockchain networks are recognized and widely used, finding a network that can ensure stability and scalability is a dilemma. Experiencing surveys and evaluations from the community's experience, Safety decided to choose Binance Smart Chain to build its ecosystem, which focused on deploying the entire Dapp on the Safepal cryptocurrency wallet platform invested by Binance. Safepal is an e-wallet platform that allows blockchain multi-network operations, which is also an advantage for Safety and the long-term orientation of the development team. Safety was born to solve the obstacles when participating in transactions in the current market by easily circulating book assets across different Blockchains, promising to open a new direction for protocols in this billion dollar market
## Ecosystem
* Token SFT:
+ SFT, can be used to incentivize traders, We do not sell it in the initial stage, it is distributed by the market traders themselves and it will be distributed in the staking and referral stage.
+ SFT is also a proof of stake token in trading
+ SFT is also a reward for the prize value and rewards for community developers.
+ SFT works on the growth of the community and is the medium for all transactions.
* Safetyswap: Safetyswap is a protocol for multi-token automated marketplace creation. It allows portfolio owners to create Safety Pools and traders can trade with them. Safety Pools contain two or more tokens, each with an independent weight representing its share of the total pool value. Pools provide liquidity to the Safety Pools Protocol and charge traders a fee to access it. Pools can be considered an automatic market makers, as anyone can swap any two tokens in any pool.
* Farming: Farms allow users to earn SFT while supporting SFT Swap by staking LP Tokens.
* Staking: POSL: A Staking Mechanism weight and balance function - This allows you to receive SFT tokens. We adopt a Proof of Stake method so that staking participants will deposit SFT Tokens and get real value from the new SFT based on the price of the SFT Token.
* NFT game: SFT Infinity is structured as an Open Digital Pet Ocean. The SFT core team will build functionality for game assets linked to the SFT brand by community consensus. Ocean SFT must be fun above all else; only by having a rich gaming experience can the ecosystem attract enough participants to accumulate value for the network. At the same time, it helps users to increase the community's income.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
SFTToken._writeCheckpoint(address,uint32,uint256,uint256) (#893-911) uses a dangerous strict equality:
- nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber (#903)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
BEP20._approve(address,address,uint256).owner (#644) shadows:
- Ownable.owner() (#76-78) (function)
Rename the local variables that shadow another component.
Additional information: link
SFTToken.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (#759-800) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now <= expiry,SFT::delegateBySig: signature expired) (#798)
Avoid relying on block.timestamp.
Additional information: link
SFTToken.getChainId() (#918-922) uses assembly
- INLINE ASM (#920)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['0.6.12', '>=0.4.0', '>=0.6.0<0.8.0', '>=0.6.4']
- >=0.6.0<0.8.0 (#19)
- >=0.6.0<0.8.0 (#46)
- >=0.6.4 (#113)
- >=0.6.0<0.8.0 (#210)
- >=0.4.0 (#372)
- 0.6.12 (#666)
Use one Solidity version.
Additional information: link
SafeMath.mul(uint256,uint256) (#284-296) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version>=0.4.0 (#372) 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
Variable SFTToken._delegates (#701) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#37)" inContext (#31-40)
Remove redundant statements if they congest code but offer no value.
Additional information: link
mint(address,uint256) should be declared external:
- SFTToken.mint(address,uint256) (#689-692)
Use the external attribute for functions never called from the contract.
Additional information: link
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
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
Unable to find code repository for the project
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
Young tokens have high risks of price dump / death
Token has relatively low CoinGecko rank
Token has relatively low CoinMarketCap rank
Telegram account link seems to be invalid
Twitter account link seems to be invalid
Unable to find Blog account (Reddit or Medium)
Unable to find Youtube account
Unable to find Discord account