NMBTC Token - Smart Contract Audit Report
Summary
NMBTC Token ($NMBTC) is a new community-driven DeFi token on the Binance Smart Chain.
Notes on the Contract:Ownership Controls:
- The total supply of the token is set to 42 trillion $NMBTC [42,000,000,000,000].
- No minting or burn functions are present; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
- At the time of writing this report, 87.97% of the total supply has been sent to 0x..666 Burn address.
- 1% of the total supply belongs to the $NMBTC Contract address.
- 0.65% of the total supply is in Pancakeswap BUSD-T liquidity.
- Of that liquidity, 97.33% of the LP tokens belong to an unverified contract.
- 0.49% of the total supply is in Pancakeswap BNB liquidity.
- Of that liquidity, 98.5% of the LP tokens belong to an unverified contract.
- There is a 1% tax fee that is charged for any contract address that participate in a transfer. Although a liquidity fee exists in the contract, its percentage is set to 0 and cannot be changed.
- The tokens collected through the tax fee are sent to the Burn address.
- The contract utilizes the Safemath library to prevent overflows/underflows and complies with the BEP20 standard.
Audit Findings Summary
- Ownership has been renounced.
- The owner could previously modify the tax fee and liquidity fee for both fee structures to any percentages at any time.
- The owner could previously exclude and include accounts from transfer fees and reward distribution.
- The owner could previously pause all trading at any time.
- The owner could previously set and update a maximum transaction amount at any time, which will impose a limit to the number of tokens that could previously be transferred during any given transaction.
- The owner could previously enable/disable automatic liquidity adds at any time.
- The owner could previously update the threshold value needed to trigger an automatic liquidity add to any value.
- The owner could previously update the distribution percentages of tokens collected from the tax fee that are allocated to the Weekly rewards wallet, FOMO Admin wallet, and Burn address.
- The owner could previously enable/disable the weekly rewards mechanism.
- The owner could previously update the minimum number of tokens a user must own as well as the minimum number of tokens that must be transferred to another user in order to become an eligible player.
- The owner could previously update the number of top eligible players to any value at any time.
- The owner could previously update the time interval between each "weekly" rewards distribution to any value at any time.
- The owner could previously update the FOMO admin wallet to any address at any time. The owner must exercise caution when doing so as this wallet is responsible for paying rewards to buyers.
- The owner could previously update the amount of time needed between buying transactions from Pancakeswap and minimum token amount that determines if a user is eligible for FOMO rewards.
- No external threats were identified.
- Ownership has been renounced by the team.
- Date: December 3rd, 2021
- Updated December 21th, 2021 after the team renounced ownership.
Audit Results
Vulnerability Category | Notes | Result |
---|---|---|
Arbitrary Storage Write | N/A | PASS |
Arbitrary Jump | N/A | PASS |
Centralization of Control | 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
Inheritance Chart
Functions Overview
($) = payable function
# = non-constant function
+ [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
+ Context
- [Int] _msgSender
- [Int] _msgData
+ [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 #
+ ForwardAccount
- [Pub] #
+ NMBTC (Context, IERC20, Ownable)
- [Pub] #
- [Pub] setFomoAdmin #
- modifiers: onlyOwner
- [Pub] setfomoInterval #
- modifiers: onlyOwner
- [Pub] setMinFoMoBalance #
- modifiers: onlyOwner
- [Pub] getFomoAddress
- [Pub] name
- [Pub] symbol
- [Pub] decimals
- [Pub] totalSupply
- [Pub] balanceOf
- [Pub] transfer #
- [Pub] allowance
- [Pub] approve #
- [Pub] transferFrom #
- [Pub] increaseAllowance #
- [Pub] decreaseAllowance #
- [Pub] getTopPlayers
- [Pub] getTipTopPlayer
- [Pub] getPlayerAddr
- [Pub] getPlayerInfo
- [Pub] isExcludedFromReward
- [Pub] totalFees
- [Pub] deliver #
- [Pub] reflectionFromToken
- [Pub] tokenFromReflection
- [Pub] excludeFromReward #
- modifiers: onlyOwner
- [Ext] includeInReward #
- modifiers: onlyOwner
- [Prv] _transferBothExcluded #
- [Pub] excludeFromFee #
- modifiers: onlyOwner
- [Pub] includeInFee #
- modifiers: onlyOwner
- [Pub] setPauseTransfer #
- modifiers: onlyOwner
- [Pub] setPauseContractTransfer #
- modifiers: onlyOwner
- [Pub] setMaxRewardNum #
- modifiers: onlyOwner
- [Pub] setRewardInterval #
- modifiers: onlyOwner
- [Pub] setMaxPlayerLevel #
- modifiers: onlyOwner
- [Ext] setPlayerRewardRatio #
- modifiers: onlyOwner
- [Ext] setTaxFeePercent #
- modifiers: onlyOwner
- [Ext] setContractFeePercent #
- modifiers: onlyOwner
- [Ext] setWeeklyRewardPercent #
- modifiers: onlyOwner
- [Ext] setWeeklyRewardEnabled #
- modifiers: onlyOwner
- [Ext] setBurnPercent #
- modifiers: onlyOwner
- [Ext] setPlayerRewardPercent #
- modifiers: onlyOwner
- [Ext] setFomoPercent #
- modifiers: onlyOwner
- [Ext] createPair #
- modifiers: onlyOwner
- [Ext] setLiquidityFeePercent #
- modifiers: onlyOwner
- [Ext] setLiquidityFeeContractPercent #
- modifiers: onlyOwner
- [Ext] setplayerHoldingRatio #
- modifiers: onlyOwner
- [Ext] setMinReferAmount #
- modifiers: onlyOwner
- [Ext] setMaxTxPercent #
- modifiers: onlyOwner
- [Ext] setNumTokensSellToAddToLiquidity #
- modifiers: onlyOwner
- [Pub] setSwapAndLiquifyEnabled #
- modifiers: onlyOwner
- [Ext] ($)
- [Prv] _checkPlayerBalanceLimit
- [Prv] _playerRewardHandle #
- [Prv] _playerReward #
- [Prv] _reflectFee #
- [Prv] _getValues
- [Prv] _getTValues
- [Prv] _getRValues
- [Prv] _getRate
- [Prv] _getCurrentSupply
- [Prv] _takeLiquidity #
- [Prv] calculateTaxFee
- [Prv] calculateLiquidityFee
- [Prv] removeAllFee #
- [Prv] restoreAllFee #
- [Pub] isExcludedFromFee
- [Prv] _approve #
- [Prv] _transfer #
- [Prv] _awardsFoMo #
- [Prv] swapAndLiquify #
- modifiers: lockTheSwap
- [Prv] swapTokensForUsdt #
- [Prv] addLiquidity #
- [Prv] _bindRefer #
- [Prv] _isContractTransaction
- [Prv] _tokenTransfer #
- [Prv] _transferStandard #
- [Prv] _transferToExcluded #
- [Prv] _transferFromExcluded #
- [Prv] _rewardTopPlayers #
- [Prv] _updateTopPlayers #
- [Prv] _rankTopPlayers #
- [Prv] _updateTopPlayerTip #
- [Prv] _sendToPlayerReward #