BabyDoge Coin - Smart Contract Audit Report

Summary

BabyDoge Coin Finance Audit Report BabyDoge Coin ($BabyDoge) is a token where fees charged on transactions are shared among all token holders.

We reviewed BabyDoge Coin's token contract at 0xac8e13ecc30da7ff04b842f21a62a1fb0f10ebd5 on the Ethereum mainnet.

Notes on the contract:
  • BabyDoge Coin Finance implements and builds upon the fee-redistribution features pioneered by Reflect Finance (RFI).
  • The initial total supply of the token is 1 quadrillion $BabyDoge [1,000,000,000,000,000].
  • No mint or burn functions exist. However, the team sent 49.9% of the total supply to the burn address upon deployment.
  • Users who hold tokens will automatically benefit from the frictionless fee redistribution at the time of each transaction as the tokens collected through the "tax fee" are removed from the circulating supply.
  • 1.02% of the total supply belongs to the previous owner.
  • At the time of writing this report, 4.35% of the tokens are in UniswapV2 Liquidity.
  • Out of that liquidity, 98.83% of those LP Tokens are locked in a token locking contract and will vest to the team on December 30th, 2023.
  • 1% of the LP tokens are locked as a fee for the Unicrypt ILO.

  • There is a 2% fee on all transactions that is used to support the frictionless redistribution mechanism.
  • The contract includes anti bot logic by applying a transfer timeout upon completion of a transaction which will prevent holders from participating in a transfer for 15 seconds.
  • There is a maximum transaction amount that is 1% of the total supply.
  • Some gas optimizations can be achieved through declaring functions external instead of public and some variables constant. As this contract is already deployed, this is merely informational.
  • The team utilizes SafeMath to prevent overflows.
  • Ownership has been renounced.

Audit Findings Summary
  • No external vulnerabilities were identified.
  • Date: July 15th, 2021

Audit Results

Vulnerability CategoryNotesResult
Arbitrary Storage WriteN/APASS
Arbitrary JumpN/APASS
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 = Internal
 Ext = External
 Pub = Public
 
 +  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

 +  BABYDOGECOIN (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
    - [Pub] totalFees
    - [Ext] setMaxTxPercent #
       - modifiers: onlyOwner
    - [Pub] reflect #
    - [Pub] reflectionFromToken
    - [Pub] tokenFromReflection
    - [Ext] excludeAccount #
       - modifiers: onlyOwner
    - [Ext] includeAccount #
       - modifiers: onlyOwner
    - [Prv] _approve #
    - [Prv] _transfer #
    - [Prv] _transferStandard #
    - [Prv] _transferToExcluded #
    - [Prv] _transferFromExcluded #
    - [Prv] _transferBothExcluded #
    - [Prv] _reflectFee #
    - [Prv] _getValues
    - [Prv] _getTValues
    - [Prv] _getRValues
    - [Prv] _getRate
    - [Prv] _getCurrentSupply
    - [Ext] setUniswapPair #
       - modifiers: onlyOwner