eYe Token - Smart Contract Audit Report


eYe Token Audit Report MEDIA EYE is building a new ERC20 token with a liquidity generation event.

We audited the project team's ERC20_Taxed contract at 0xf0d0036f959fe717b68edfb24e8ff336db82a342 on the Binance Smart Chain Testnet.

Notes on the Contract:
  • The total supply of the token is determined by the owner on deployment.
  • No mint or burn functions exist, though the circulating supply can be decreased by sending tokens to the 0x..dead address.
  • Initially, 100% of the total supply is held by the owner.

  • There is a tax fee on all transfers where both the sender is not on the sender tax whitelist and the recipient is not on the recipient tax whitelist.
  • The tokens collected from the tax fee are sent to the tax receiver wallet controlled by the team.
  • This contract also supports a Liquidity Generation Event consisting of one or many rounds as determined by the owner.
  • Each round has a set duration, a maximum contribution amount per user, and a whitelist of addresses that are able to participate; these values are determined by the LGE Whitelister address, which is set by the owner.
  • After the rounds are created and the Pair address is set, anyone may kick off the Liquidity Generation Event by transferring tokens to the Pair address.
  • Only whitelisted users may participate in the Liquidity Generation Event by purchasing tokens from the Pair; there may be a different set of whitelisted users for every round.
  • During the Liquidity Generation Event, the amount of purchased tokens are recorded to ensure it does not exceed the maximum allowed amount per user per round.
  • The LGE Whitelister address can set the Pair address, delete the round data, modify the round duration, maximum contribution amount, and list of whitelisted users for any round at any time.
  • The owner can set the tax rate to any value up to 10% at any time.
  • The owner can set the tax receiver address to any address at any time.
  • The owner can add or remove any address from the sender or recipient tax whitelists at any time; initially, only the owner and the tax receiver addresses are exempt from any tax fees.
  • The owner can set the LGE Whitelister address to any address at any time; initially, the owner is set as the LGE Whitelister.
  • The contract complies with the ERC-20 standard.
  • As the contract is deployed with Solidity v0.8.9, it is protected from overflows.

Audit Findings Summary
  • No security threats from outside attackers were identified.
  • Ensure trust in the team as they have some control in the ecosystem.
  • Date: November 5th, 2021

External Threat Results

Vulnerability Category Notes Result
Arbitrary Storage Write N/A PASS
Arbitrary Jump N/A 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

Smart Contract Graph

Multi-file Token

($) = payable function
 # = non-constant function

 + [Int] IERC20 
    - [Ext] totalSupply
    - [Ext] balanceOf
    - [Ext] transfer #
    - [Ext] allowance
    - [Ext] approve #
    - [Ext] transferFrom #

 + [Int] IERC20Metadata (IERC20)
    - [Ext] name
    - [Ext] symbol
    - [Ext] decimals

 +  Context 
    - [Int] _msgSender
    - [Int] _msgData

 +  ERC20 (Context, IERC20, IERC20Metadata)
    - [Pub]  #
    - [Pub] name
    - [Pub] symbol
    - [Pub] decimals
    - [Pub] totalSupply
    - [Pub] balanceOf
    - [Pub] transfer #
    - [Pub] allowance
    - [Pub] approve #
    - [Pub] transferFrom #
    - [Pub] increaseAllowance #
    - [Pub] decreaseAllowance #
    - [Int] _transfer #
    - [Int] _mint #
    - [Int] _burn #
    - [Int] _approve #
    - [Int] _beforeTokenTransfer #
    - [Int] _afterTokenTransfer #

 +  Ownable (Context)
    - [Pub]  #
    - [Pub] owner
    - [Pub] renounceOwnership #
       - modifiers: onlyOwner
    - [Pub] transferOwnership #
       - modifiers: onlyOwner

 +  ERC20_Taxed (ERC20, Ownable)
    - [Pub]  #
       - modifiers: ERC20
    - [Pub] getLGEWhitelistRound
    - [Ext] setTaxRate #
       - modifiers: onlyOwner
    - [Ext] setTaxReceiver #
       - modifiers: onlyOwner
    - [Ext] addToSenderWhitelist #
       - modifiers: onlyOwner
    - [Ext] removeFromSenderWhitelist #
       - modifiers: onlyOwner
    - [Ext] addToRecipientWhitelist #
       - modifiers: onlyOwner
    - [Ext] removeFromRecipientWhitelist #
       - modifiers: onlyOwner
    - [Ext] transferLGEWhitelister #
       - modifiers: onlyOwner
    - [Ext] createLGEWhitelist #
       - modifiers: onlyLGEWhitelister
    - [Ext] modifyLGEWhitelist #
       - modifiers: onlyLGEWhitelister
    - [Int] _transfer #
    - [Int] _applyLGEWhitelist #
    - [Int] _transferLGEWhitelister #