PeacockCoin - Smart Contract Audit Report

Summary

PEKC Audit Report PeacockCoin is a new token where fees charged from transactions are shared among token holders. Fee sharing is instant, increasing the balance of all token holders with each transaction.

PeacockCoin is deployed at 0x050787de0cf5da03d9387b344334d51cae5dd0fd on the Binance Smart Chain.

Notes on the contract:
  • PeacockCoin is a fork of Reflect Finance (RFI). The key notable differences are the transfer tax which is 5x that of RFI, and the increased total supply.
  • The total supply of the token is 100 quadrillion.
  • No mint or burn functions exist, though the circulating supply can be decreased by sending tokens to 0x...dead.
  • ~56% of the total supply has been send to the 0xdead address.
  • ~3.1% of the token's supply is held in the Pancakeswap liquidity pool. 98% of liquidity has bee sent to the 0xdead address.
  • 1 wallet holds about the same amount or more than the LP pool.

  • 100% of the fee charged on token transfers is redistributed to existing token holders instantly and automatically at the time of each transaction.
  • The owner can exclude any address from the fee mechanism.
  • The 5x-ing of the standard fee performs a multiplication on the result of a division. While this can lead to slighlty less accurate results, the large supply of the token makes this impact negligible at most.
  • 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.
  • Utilization of SafeMath to prevent overflows.

Audit Findings Summary
  • No external threats were identified.
  • The wallets which hold more tokens than available in LP pool pose a risk to liquidity.
  • Date: April 9th, 2021
  • Update Date: April 14th, 2021 - Updated token allocations

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)
    - [Pub]  #
    - [Pub] owner
    - [Pub] renounceOwnership #
       - modifiers: onlyOwner
    - [Pub] transferOwnership #
       - modifiers: onlyOwner

 +  PEKC (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
    - [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