NFTeez Token - Smart Contract Audit Report
Summary
NFTeez ($NFTeez) is a new community-driven BEP20 token on the Binance Smart Chain that is an automatic liquidity providing protocol and automatically sends BUSD to the project initiative wallets.
Notes on the Contract:Audit Findings Summary
- The total supply of the token is set to 10 billion tokens [10,000,000,000] which are granted to the owner upon deployment.
- No minting or direct burn functions are present; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
- As the project has recently been deployed, there are 3 holders.
- At the time of writing this report, 53.19% of the total token supply has been sent to the Dead Address.
- 41.81% of the total token supply has been sent to an Unverified Presale contract.
- The owner/team retained 5.00% of the total supply (which is 10.68% of the current circulating supply).
- There is a "Liquidity Fee", "Buyback Fee", and a "Marketing Fee" charged on all transactions for any "non-excluded" address that participates in a transfer.
- The tokens collected from the transfer fees are stored in the contract address balance. Once a threshold value of 1,000,000 $NFTeez (0.01% of the total supply) a swap will occur for the purpose of funding the project's initiatives.
- The tokens that are allocated to the 'liquidity fee' will be swapped for the purpose of funding PancakeSwap liquidity.
- Liquidity-adds are conducted by selling half of the liquidity fee tokens for BNB, then pairing the received BNB with the token, and adding it as liquidity to the pair.
- The recipient of the newly created LP tokens is the zero address, to act as a proper liquidity locking mechanism.
- The tokens that are allocated to the "Marketing Fee" will be swapped for BUSD and sent to the team-controlled "marketingAndInitiativesWalletAddress".
- The tokens that are allocated to the "Buyback Fee" will be swapped for BUSD and sent to the team-controlled "buyBackAndBurnWalletAddress". Please note that there is no guarantee that the BUSD that is sent here will be used to buyback any tokens and subsequently burn them. This is not done automatically by the contract. Further, if the team intends to use these funds to buy tokens, it would save them a conversion to have swapped to BNB instead of BUSD.
- When a holder is selling their tokens to the PancakeSwap Pair, there is an additional fee of 1% that is applied and sent to the contract token balance.
- The contract utilizes SafeMath libraries along with following the BEP20 standard.
- As the project is compiled with Solidity v0.8.7, it is protected from overflow/underflow issues.
Ownership Controls:- Ownership has not been renounced.
- The owner can modify the "Liquidity Fee", "Buyback Fee", and a "Marketing Fee" to any percentages at any time.
- The owner can exclude any address from transfer fees at any time.
- The owner can remove/restore transfer fees at any time.
- The owner can set and update the "buyBackAndBurnWalletAddress" and "marketingAndInitiativesWalletAddress" at any time.
- The owner can set and update the 'PancakeSwap Router' and 'AMM Pair' addresses at any time.
- No external threats were identified.
- Please note that there is no automatic "Buyback and Burn" functionality within the contract.
- Please ensure trust in the team as they have substantial control in the ecosystem.
- The team has not conducted KYC Verification Procedures.
- Date: October 22nd, 2021
Audit Results
Vulnerability Category | Notes | Result |
---|---|---|
Arbitrary Storage Write | N/A | PASS |
Arbitrary Jump | N/A | 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 |
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
+ [Lib] SafeMathUint
- [Int] toInt256Safe
+ [Lib] SafeMathInt
- [Int] mul
- [Int] div
- [Int] sub
- [Int] add
- [Int] abs
- [Int] toUint256Safe
+ [Lib] SafeMath
- [Int] add
- [Int] sub
- [Int] sub
- [Int] mul
- [Int] div
- [Int] div
- [Int] mod
- [Int] mod
+ Context
- [Int] _msgSender
- [Int] _msgData
+ Ownable (Context)
- [Pub] #
- [Pub] owner
- [Pub] renounceOwnership #
- modifiers: onlyOwner
- [Pub] transferOwnership #
- modifiers: onlyOwner
+ [Int] IPancakeSwapV2Router01
- [Ext] factory
- [Ext] WETH
- [Ext] addLiquidity #
- [Ext] addLiquidityETH ($)
- [Ext] removeLiquidity #
- [Ext] removeLiquidityETH #
- [Ext] removeLiquidityWithPermit #
- [Ext] removeLiquidityETHWithPermit #
- [Ext] swapExactTokensForTokens #
- [Ext] swapTokensForExactTokens #
- [Ext] swapExactETHForTokens ($)
- [Ext] swapTokensForExactETH #
- [Ext] swapExactTokensForETH #
- [Ext] swapETHForExactTokens ($)
- [Ext] quote
- [Ext] getAmountOut
- [Ext] getAmountIn
- [Ext] getAmountsOut
- [Ext] getAmountsIn
+ [Int] IPancakeSwapV2Router02 (IPancakeSwapV2Router01)
- [Ext] removeLiquidityETHSupportingFeeOnTransferTokens #
- [Ext] removeLiquidityETHWithPermitSupportingFeeOnTransferTokens #
- [Ext] swapExactTokensForTokensSupportingFeeOnTransferTokens #
- [Ext] swapExactETHForTokensSupportingFeeOnTransferTokens ($)
- [Ext] swapExactTokensForETHSupportingFeeOnTransferTokens #
+ [Int] IPancakeSwapV2Pair
- [Ext] name
- [Ext] symbol
- [Ext] decimals
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] allowance
- [Ext] approve #
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] DOMAIN_SEPARATOR
- [Ext] PERMIT_TYPEHASH
- [Ext] nonces
- [Ext] permit #
- [Ext] MINIMUM_LIQUIDITY
- [Ext] factory
- [Ext] token0
- [Ext] token1
- [Ext] getReserves
- [Ext] price0CumulativeLast
- [Ext] price1CumulativeLast
- [Ext] kLast
- [Ext] mint #
- [Ext] burn #
- [Ext] swap #
- [Ext] skim #
- [Ext] sync #
- [Ext] initialize #
+ [Int] IPancakeSwapV2Factory
- [Ext] feeTo
- [Ext] feeToSetter
- [Ext] getPair
- [Ext] allPairs
- [Ext] allPairsLength
- [Ext] createPair #
- [Ext] setFeeTo #
- [Ext] setFeeToSetter #
+ [Lib] IterableMapping
- [Pub] get
- [Pub] getIndexOfKey
- [Pub] getKeyAtIndex
- [Pub] size
- [Pub] set #
- [Pub] remove #
+ [Int] IERC20
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] allowance
- [Ext] approve #
- [Ext] transferFrom #
+ [Int] IERC20Metadata (IERC20)
- [Ext] name
- [Ext] symbol
- [Ext] decimals
+ ERC20 (Context, IERC20, IERC20Metadata)
- [Pub] #
- [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 #
- [Int] _approve #
- [Int] _beforeTokenTransfer #
+ NFTeez (ERC20, Ownable)
- [Pub] #
- modifiers: ERC20
- [Ext] ($)
- [Pub] updatePancakeSwapV2Router #
- modifiers: onlyOwner
- [Pub] excludeFromFees #
- modifiers: onlyOwner
- [Pub] excludeMultipleAccountsFromFees #
- modifiers: onlyOwner
- [Pub] setMarketingWallet #
- modifiers: onlyOwner
- [Pub] setBuyBackWallet #
- modifiers: onlyOwner
- [Ext] setLiquidityFee #
- modifiers: onlyOwner
- [Ext] setMarketingFee #
- modifiers: onlyOwner
- [Ext] setBuyBackFee #
- modifiers: onlyOwner
- [Pub] setAutomatedMarketMakerPair #
- modifiers: onlyOwner
- [Prv] _setAutomatedMarketMakerPair #
- [Pub] removeAllFees #
- modifiers: onlyOwner
- [Pub] restoreAllFees #
- modifiers: onlyOwner
- [Pub] isExcludedFromFees
- [Int] _transfer #
- [Prv] swapAndLiquify #
- [Prv] swapTokensForEth #
- [Prv] swapTokensForBUSD #
- [Prv] swapAndSendMarketing #
- [Prv] swapAndSendBuyBack #
- [Prv] addLiquidity #