MoonTrustBSC - Smart Contract Audit Report
Summary
MoonTrustBSC ($MNTTBSC) is a new community-driven DeFi token on the Binance Smart Chain that is an automatic liquidity providing protocol that pays out static rewards to holders.
Notes on the Contract:Audit Findings Summary
- The total supply of the token is set to 694.2 billion $MNTTBSC [694,200,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, 99.99% of the total supply belongs to the team's staking contract. This contract was out of scope for the purpose of this audit.
- There is a tax fee for any non-excluded address that participates in a transfer.
- The tax fee percentages vary depending on how many tokens are being transferred. The breakdown is as follows:
If the number of tokens being transferred are:
- 1,000 or less, no tax fee is charged.
- Between 1,001 and 10,000 tokens, the tax fee is 1%.
- Between 10,001 and 100,000 tokens, the tax fee is 2%.
- Between 100,001 and 500,000 tokens, the tax fee is 4%.
- Between 500,001 and 1,000,000 tokens, the tax fee is 5%.
- Between 1,000,001 and 10,000,000 tokens, the tax fee is 7%.
- Greater than 10,000,000, the tax fee is 10%.
- Half of the tokens collected from the tax fee are sent to the Liquidity Pool address set by the team upon deployment. The remaining tokens are split between the Burn address and a wallet controlled by the team.
- Although the Safemath library is utilized, the contract is implemented with Solidity v0.8.1 which has built-in overflow checks. Safemath could be safely removed to reduce contract size and increase gas savings.
Ownership Controls:- Ownership has not been renounced.
- The owner can elect to decrease the tax fee percentages that are listed above, however cannot increase them.
- The owner can exclude and include accounts from the tax fee.
- No external threats were identified.
- Please ensure trust in the team prior to investing as 99.99% of the total supply belongs to the team's staking contract.
- Date: December 3rd, 2021
Audit Results
Vulnerability Category | Notes | Result |
---|---|---|
Arbitrary Storage Write | N/A | PASS |
Arbitrary Jump | N/A | PASS |
Centralization of Control | The team is in possession of 99.99% 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 |
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
+ [Int] IERC20
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] allowance
- [Ext] approve #
- [Ext] transferFrom #
+ Context
- [Int] _msgSender
- [Int] _msgData
+ ERC20 (Context, IERC20)
- [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 #
+ Ownable (Context)
- [Pub] #
- [Pub] owner
- [Pub] renounceOwnership #
- modifiers: onlyOwner
- [Pub] transferOwnership #
- modifiers: onlyOwner
+ BEP20 (ERC20, Ownable)
- [Pub] #
- modifiers: ERC20
- [Pub] getOwner
+ [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
+ MoonTrustToken (BEP20)
- [Pub] #
- modifiers: BEP20
- [Pub] balanceOf
- [Pub] distributionPoolBalance
- [Prv] getPoolShare
- [Prv] getPoolTransferShare
- [Int] _transfer #
- [Pub] addOrRemoveFromSenderWhitelist #
- modifiers: onlyOwner
- [Pub] addOrRemoveFromReceiverWhitelist #
- modifiers: onlyOwner
- [Pub] isSenderWhitelisted
- [Pub] isReceiverWhitelisted
- [Pub] setTaxMultiplicator #
- modifiers: onlyOwner
- [Pub] calculateTax
- [Pub] calculateBaseTax