|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|
MUNCH - Smart Contract Audit Report
MUNCH is a new token with frictionless fee redistribution and charity contribution on each transfer.We audited MUNCH's token contract contract at 0x944eee930933be5e23b690c8589021ec8619a301 on the Ethereum mainnet.
Overview of the Contract:
Audit Findings Summary
- The total supply of the token is set to 100 trillion.
- No mint or burn functions are present; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
- ~24.6% of the token's supply has been locked and unlocks in four portions in 1, 2, 3, and 4 weeks.
- Uniswap holds ~4.2% of the token's supply as liquidity. 98% of iquidity has been locked for 6 months.
- There are 2 wallets which hold as much or more tokens than the liquidity pool - One is the team's marketing address, and another is an investor who continues to purchase large amounts of tokens.
- The next largest holder has 2.5%
- Users who hold tokens will automatically receive a portion the fees from a transaction tax on each transfer.
- A portion of the fee charged on transactions is stored in the contract and, once a threshold value is met, these tokens will be sold for ETH and stored in the contract.
- The owner of the contract can transfer ETH out of the contract at any time to the charity wallet. The charity wallet address can be set at any time.
- The owner can update the tax rates at any time; up to a maximum of 21%
- We generally advise renouncing ownership to decrease the centralization of the project, though the team has elected to retain ownership so they can update the charity address.
- The owner of the contract can exclude and include users from transfer fees, update the maximum transaciton amount, update the fee percentages and update how the fees are allocated.
- There is a transfer limit, but it is set to the total supply. While the team can update this, the minimum vale is the total supply.
- Some functions could have been declared external instead of public to save some gas, but as this is already deployed this is merely informational.
- The contract utilizes SafeMath libraries to prevent overflows along with following the ERC standard.
- No security issues were identified in our analysis.
- Ensure trust in the team as they have notable control in the ecosystem and will be vested a large number of tokens.
- Date: April 23rd, 2021
- Update Date: April 25th, 2021 - Locking of tokens.
($) = payable function # = non-constant function + Context - [Int] _msgSender - [Int] _msgData + [Int] IERC20 - [Ext] totalSupply - [Ext] balanceOf - [Ext] transfer # - [Ext] allowance - [Ext] approve # - [Ext] transferFrom # + [Lib] SafeMath - [Int] add - [Int] sub - [Int] sub - [Int] mul - [Int] div - [Int] div - [Int] mod - [Int] mod + [Lib] Address - [Int] isContract - [Int] sendValue # - [Int] functionCall # - [Int] functionCall # - [Int] functionCallWithValue # - [Int] functionCallWithValue # - [Prv] _functionCallWithValue # + Ownable (Context) - [Int]
# - [Pub] owner - [Pub] renounceOwnership # - modifiers: onlyOwner - [Pub] transferOwnership # - modifiers: onlyOwner - [Pub] geUnlockTime - [Pub] lock # - modifiers: onlyOwner - [Pub] unlock # + [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 # + MUNCH (Context, IERC20, Ownable) - [Pub] # - [Pub] name - [Pub] symbol - [Pub] decimals - [Pub] totalSupply - [Pub] balanceOf - [Pub] transfer # - [Pub] allowance - [Pub] approve # - [Pub] transferFrom # - [Pub] increaseAllowance # - [Pub] decreaseAllowance # - [Pub] isExcluded - [Ext] setExcludeFromFee # - modifiers: onlyOwner - [Pub] totalFees - [Pub] deliver # - [Pub] reflectionFromToken - [Pub] tokenFromReflection - [Ext] excludeAccount # - modifiers: onlyOwner - [Ext] includeAccount # - modifiers: onlyOwner - [Prv] removeAllFee # - [Prv] restoreAllFee # - [Pub] isExcludedFromFee - [Prv] _approve # - [Prv] _transfer # - [Prv] swapTokensForEth # - modifiers: lockTheSwap - [Prv] sendETHToCharity # - [Ext] manualSwap # - modifiers: onlyOwner - [Ext] manualSend # - modifiers: onlyOwner - [Ext] setSwapEnabled # - modifiers: onlyOwner - [Prv] _tokenTransfer # - [Prv] _transferStandard # - [Prv] _transferToExcluded # - [Prv] _transferFromExcluded # - [Prv] _transferBothExcluded # - [Prv] _takeCharity # - [Prv] _reflectFee # - [Ext] ($) - [Prv] _getValues - [Prv] _getTValues - [Prv] _getRValues - [Prv] _getRate - [Prv] _getCurrentSupply - [Prv] _getTaxFee - [Prv] _getMaxTxAmount - [Pub] _getETHBalance - [Ext] _setTaxFee # - modifiers: onlyOwner - [Ext] _setCharityFee # - modifiers: onlyOwner - [Ext] _setCharityWallet # - modifiers: onlyOwner - [Ext] _setMaxTxAmount # - modifiers: onlyOwner