Monkey Claus Game - Smart Contract Audit Report
Summary
Monkey Claus Game ($MCG) is a new BEP20 token that pays out static rewards to holders.
Notes on the Contract:Audit Findings Summary
- The total supply of the token is set to 1 billion $MCG [1,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.
- There was no token allocation for our team to analyze as the contract has yet to be deployed to the mainnet.
- There is a 3% redistribution fee, 2% burn fee, 4% marketing fee, and 3% prize fund fee when selling tokens to Pancakeswap, where neither the sender nor the recipient are excluded from fees.
- The tokens collected from the redistribution fee are removed from the circulating supply; This serves as a frictionless fee redistribution which automatically benefits all token holders at the time of each transaction.
- The tokens collected from the burn fee are sent to the 0x00 address.
- The tokens collected from the marketing fee are sent to the team's Marketing wallet.
- The tokens collected from the prize fund fee are sent to the team's Prize Fund wallet.
- Although the SafeMath library is utilized, the contract is deployed with Solidity v0.8.9 which has built-in overflow checks. SafeMath can be safely removed to reduce contract size and increase gas savings.
- Some gas optimizations can be achieved through declaring functions external instead of public, and some variables that could be declared constant.
Ownership Controls:- The owner can exclude and include accounts from transfer fees and reward distribution.
- The owner can enable/disable transfer fees at any time.
- The owner can update the team's Marketing wallet, and Prize Fund wallet to any addresses at any time.
- The owner can update the Pancakeswap Router to any address at any time.
- No external threats were identified.
- As with any presale, please ensure trust in the team prior to investing..
- Date: December 16th, 2021
Audit Results
Vulnerability Category | Notes | Result |
---|---|---|
Arbitrary Storage Write | N/A | PASS |
Arbitrary Jump | N/A | PASS |
Centralization of Control | The project has not yet been launched by the team. | 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] IBEP20
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] allowance
- [Ext] approve #
- [Ext] transferFrom #
+ [Int] IDexFactory
- [Ext] createPair #
+ [Int] IDexRouter
- [Ext] factory
- [Ext] WETH
- [Ext] addLiquidityETH ($)
- [Ext] swapExactTokensForETHSupportingFeeOnTransferTokens #
+ Context
- [Int] _msgSender
- [Int] _msgData
+ Ownable (Context)
- [Pub] #
- [Pub] owner
- [Pub] renounceOwnership #
- modifiers: onlyOwner
- [Pub] transferOwnership #
- modifiers: onlyOwner
- [Prv] _setOwner #
+ MCG (Context, IBEP20, 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] isExcludedFromReward
- [Pub] isExcludedFromFee
- [Pub] totalHolderDistribution
- [Pub] deliver #
- [Pub] reflectionFromToken
- [Pub] tokenFromReflection
- [Ext] includeInReward #
- modifiers: onlyOwner
- [Pub] excludeFromReward #
- modifiers: onlyOwner
- [Pub] includeOrExcludeFromFee #
- modifiers: onlyOwner
- [Ext] enableOrDisableFees #
- modifiers: onlyOwner
- [Ext] setprizeFundWalletAddress #
- modifiers: onlyOwner
- [Ext] setliquidityPoolAddress #
- modifiers: onlyOwner
- [Ext] setmarketWalletAddress #
- modifiers: onlyOwner
- [Ext] setRoute #
- modifiers: onlyOwner
- [Ext] ($)
- [Int] totalFeePerTx
- [Prv] _getRate
- [Prv] _getCurrentSupply
- [Prv] setSellFee #
- [Prv] removeAllFee #
- [Prv] _approve #
- [Prv] _transfer #
- [Prv] _tokenTransfer #
- [Prv] _transferStandard #
- [Prv] _transferToExcluded #
- [Prv] _transferFromExcluded #
- [Prv] _transferBothExcluded #
- [Int] _takeBurnFee #
- [Int] _takeMarketaFee #
- [Int] _takePrizeFundFee #
- [Prv] _reflectFee #
+ [Lib] SafeMath
- [Int] add
- [Int] sub
- [Int] sub
- [Int] mul
- [Int] div
- [Int] div
- [Int] mod
- [Int] mod