TheDogelonFather - Smart Contract Audit Report

Summary

TheDogelonFather Audit Report TheDogelonFather is a new project that provides automated rewards to users who hold the token via frictionless fee redistribution.

TheDogelonFather is deployed at 0xdf1c1b185d7cdd2afcb74757d50aa9589c9c2ad3 on the Ethereum Mainnet.


Notes on the Contract:
  • TheDogelonFather is a fork of Reflect Finance. The key notable difference is the altered total supply and the increased (doubled) transaction fee.
  • The total supply of the token is 1 trillion.
  • No mint or burn functions exist, though the circulating supply can be decreased by sending tokens to 0x...dead.
  • 49.6% of the total supply has been send to Vitalik Buterin's public address.
  • 11.4% of the token's supply is in Uniswap liquidity. 99% of liquidity is locked for 1 year.
  • One wallet holds 9.5% of the supply, which poses some risk if this wallet were to sell all together.
  • The team holds 2.6% of the supply. The next largest holder has 1.5%.

  • 100% of the 2% fee that is charged on token transfers will be redistributed to existing token holders instantly and automatically at the time of each transaction.
  • There is a maximum number of tokens that can be sent on each transaction. The team can update this value, but it must be at least 1% of the total supply.
  • The owner can exclude any address from the fee mechanism.
  • Ownership has been renounced, so none of these above variables can be renounced.
  • 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.
  • There is also some unnecessecary logic in the fee calculation, but this has no tangible impact on security or user functionality. As this contract is already deployed, this is also merely informational.
  • Utilization of SafeMath to prevent overflows.

Audit Findings Summary
  • No external threats were identified.
  • Date: May 9th, 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


Inheritence 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

 +  TDEF (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