BFIC COIN ($BFIC) is a new BEP-20 token on the Binance Smart Chain.
We reviewed the BFIC contract at 0x50e6D27B775F07e7fa30a1Bd47A6F05E276c37bF on the Binance Smart Chain mainnet.Notes on the Contract:Audit Findings Summary
- The total supply of the token is set to 210 million $BFIC [210,000,000].
- No mint functions are accessible beyond deployment.
- Any user can burn their own tokens to reduce the total supply.
- The total supply was split amongst seven team wallets upon deployment.
- There is a 1% burn fee charged on all transfers. The tokens collected from the burn fee are removed from the total supply.
- Any address that owns the old version of the $BFIC token is able to convert their tokens to new $BFIC tokens via the exchange() function. The ratio of old $BFIC to new $BFIC is 10:1. The old $BFIC token contract was out of scope for the purpose of this audit.
- The team must ensure that a sufficient amount of tokens are held in the new contract to ensure users' conversions are successful.
- Users will have to grant the new contract an approval for their entire old $BFIC token balance in order for an exchange to be successful.
- If an exchange is successful, the user's old tokens will be sent to the 0x..dead address.
- The 1% burn fee is applied on each exchange.
- The contract complies with the BEP-20 token standard.
- As the contract is deployed with Solidity v0.8.10 it is protected from overflows/underflows.
- No external threats were identified.
- Please ensure trust in the team prior to investing as they currently own a large portion of the total supply.
- Further, ensure trust in the team as they are responsible for supplying the contract address with a sufficient amount of tokens in order for a user's token conversion to be successful.
- Date: January 21st, 2022.
Vulnerability Category | Notes | Result |
---|---|---|
Arbitrary Storage Write | N/A | PASS |
Arbitrary Jump | N/A | PASS |
Centralization of Control | The team currently owns a large portion of the total supply. | PASS |
Delegate Call to Untrusted Contract | N/A | PASS |
Dependence on Predictable Variables | N/A | PASS |
Deprecated Opcodes | N/A | PASS |
Ether Thief | N/A | PASS |
Exceptions | N/A | PASS |
External Calls | N/A | PASS |
Flash Loans | N/A | PASS |
Integer Over/Underflow | N/A | PASS |
Multiple Sends | N/A | PASS |
Oracles | N/A | PASS |
Suicide | N/A | PASS |
State Change External Calls | N/A | PASS |
Unchecked Retval | N/A | PASS |
User Supplied Assertion | N/A | PASS |
Critical Solidity Compiler | N/A | PASS |
Overall Contract Safety | PASS |
($) = payable function
# = non-constant function
+ [Int] IERC20
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] allowance
- [Ext] approve #
- [Ext] transferFrom #
+ [Int] IERC20Metadata (IERC20)
- [Ext] name
- [Ext] symbol
- [Ext] decimals
+ [Int] OldCoin
- [Ext] transferFrom #
- [Ext] balanceOf
- [Ext] burn #
+ Context
- [Int] _msgSender
- [Int] _msgData
+ BFIC (Context, IERC20, IERC20Metadata)
- [Pub] #
- [Ext] exchange #
- [Pub] name
- [Pub] symbol
- [Pub] decimals
- [Pub] totalSupply
- [Pub] balanceOf
- [Pub] transfer #
- [Pub] allowance
- [Pub] approve #
- [Pub] transferFrom #
- [Pub] increaseAllowance #
- [Pub] decreaseAllowance #
- [Int] _transfer #
- [Int] _mint #
- [Int] _burn #
- [Ext] burn #
- [Int] _approve #
- [Int] _beforeTokenTransfer #
- [Int] _afterTokenTransfer #