Monkey Claus Game - Smart Contract Audit Report

Summary

Monkey Claus Game Audit Report Monkey Claus Game ($MCG) is a new BEP20 token that pays out static rewards to holders.

We reviewed the MCG contract at 0xAb06532fD4d01351581EDCaD102f485fd5A45913 on the Binance Smart chain testnet.

Notes on the Contract:
  • 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.
Audit Findings Summary
  • 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 CategoryNotesResult
Arbitrary Storage WriteN/APASS
Arbitrary JumpN/APASS
Centralization of ControlThe project has not yet been launched by the team.PASS
Delegate Call to Untrusted ContractN/APASS
Dependence on Predictable VariablesN/APASS
Deprecated OpcodesN/APASS
Ether ThiefN/APASS
ExceptionsN/APASS
External CallsN/APASS
Flash LoansN/APASS
Integer Over/UnderflowN/APASS
Multiple SendsN/APASS
OraclesN/APASS
SuicideN/APASS
State Change External CallsN/APASS
Unchecked RetvalN/APASS
User Supplied AssertionN/APASS
Critical Solidity CompilerN/APASS
Overall Contract Safety PASS

Function Graph

ERC20 Token Graph


Inheritance Chart

Multi-file Token


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