Cellframe Token - Smart Contract Audit Report
SummaryCellframe ($CELL) is a new community-driven DeFi token on the Binance Smart Chain.
We reviewed the Cellframe Token contract at 0xf3e1449ddb6b218da2c9463d4594ceccc8934346 on the Binance Smartchain mainnet.
Notes on the Contract:
Audit Findings Summary
- The total supply of the token is set to 30.3 million [30,300,000] $CELL.
- No minting or burn functions are present beyond deployment; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
- At the time of writing this report, 89.11% of the total $CELL token supply is stored in a GnosisSafeProxy multi-signature contract.
- 0.85% of the total supply is in Pancakeswap liquidity.
- Of that liquidity, 99.98% of the LP tokens are stored in the same GnosisSafeProxy multi-signature contract mentioned above.
- There is a marketing fee charged on transactions, for any non-excluded address, when the user is either buying or selling via Pancakeswap.
- The tokens collected from the marketing fee are stored in the contract and, once a threshold value (determined by the owner) is met, the tokens will be swapped for BNB and sent back to the contract. The received BNB is then transferred to the team's marketing wallet.
- The contract complies with the BEP20 Token standard.
- As the contract is deployed with Solidity v0.8.x, it is protected from overflows.
- Ownership has not been renounced.
- The owner has the ability to modify the marketing fee to any percentage up to 100% at any time.
- The owner of the contract can exclude and include accounts from transfer fees and reward distribution.
- The owner can withdraw any ETH erroneously sent to the contract address.
- The owner has the ability to set a limit to the number of tokens that can be swapped during a given transaction. This value is based on a percentage of the tokens available in the PancakeswapV2 liquidity pool.
- The owner has the ability to update the marketing wallet at any time.
- No external threats were identified.
- Please ensure trust in the team prior to investing as they have substantial control in the ecosystem.
- Date: November 16th, 2021
|Arbitrary Storage Write||N/A||PASS|
|Delegate Call to Untrusted Contract||N/A||PASS|
|Dependence on Predictable Variables||N/A||PASS|
|State Change External Calls||N/A||PASS|
|User Supplied Assertion||N/A||PASS|
|Critical Solidity Compiler||N/A||PASS|
|Overall Contract Safety||PASS|
($) = payable function # = non-constant function + Context - [Int] _msgSender - [Int] _msgData + Ownable (Context) - [Pub]
# - [Pub] owner - [Pub] renounceOwnership # - modifiers: onlyOwner - [Pub] transferOwnership # - modifiers: onlyOwner - [Prv] _setOwner # + [Int] IERC20 - [Ext] totalSupply - [Ext] balanceOf - [Ext] transfer # - [Ext] allowance - [Ext] approve # - [Ext] transferFrom # + [Lib] Address - [Int] isContract - [Int] sendValue # - [Int] functionCall # - [Int] functionCall # - [Int] functionCallWithValue # - [Int] functionCallWithValue # - [Int] functionStaticCall - [Int] functionStaticCall - [Int] functionDelegateCall # - [Int] functionDelegateCall # - [Prv] _verifyCallResult + [Lib] SafeMath - [Int] tryAdd - [Int] trySub - [Int] tryMul - [Int] tryDiv - [Int] tryMod - [Int] add - [Int] sub - [Int] mul - [Int] div - [Int] mod - [Int] sub - [Int] div - [Int] mod + [Int] IUniswapV2Factory - [Ext] feeTo - [Ext] feeToSetter - [Ext] getPair - [Ext] allPairs - [Ext] allPairsLength - [Ext] createPair # - [Ext] setFeeTo # - [Ext] setFeeToSetter # + [Int] IUniswapV2Pair - [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] IUniswapV2Router01 - [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] IUniswapV2Router02 (IUniswapV2Router01) - [Ext] removeLiquidityETHSupportingFeeOnTransferTokens # - [Ext] removeLiquidityETHWithPermitSupportingFeeOnTransferTokens # - [Ext] swapExactTokensForTokensSupportingFeeOnTransferTokens # - [Ext] swapExactETHForTokensSupportingFeeOnTransferTokens ($) - [Ext] swapExactTokensForETHSupportingFeeOnTransferTokens # + ERC20 (Context, IERC20, Ownable) - [Pub] # - [Ext] setMarketingAddress # - modifiers: onlyOwner - [Ext] setMaxPriceImpPerc # - modifiers: onlyOwner - [Ext] setMarketingFee # - modifiers: onlyOwner - [Ext] excludeFromFee # - modifiers: onlyOwner - [Ext] includeInFee # - modifiers: onlyOwner - [Ext] isExcludedFromFee - [Ext] emergencyWithdraw # - modifiers: onlyOwner - [Pub] name - [Pub] symbol - [Pub] decimals - [Pub] totalSupply - [Pub] balanceOf - [Pub] transfer # - [Pub] allowance - [Pub] approve # - [Pub] transferFrom # - [Pub] increaseAllowance # - [Pub] decreaseAllowance # - [Int] _transfer # - [Prv] _takeFeeOnSwap # - [Prv] _swapTokens # - modifiers: lockTheSwap - [Prv] _swapTokensForEth # - [Prv] _sendETHToMarketing # - [Int] _mint # - [Int] _burn # - [Int] _approve # - [Int] _setupDecimals # - [Int] _beforeTokenTransfer # - [Ext] ($) + CellToken (ERC20) - [Pub] # - modifiers: ERC20