eViral - Smart Contract Audit Report

Summary

eViral Audit Report eViral strives to be a revolutionary new DeFi token on the Ethereum Blockchain that implements innovative tokenomics that pay out static rewards to holders, while ensuring a deflationary supply.

eViral's Token contract is deployed at 0x7CeC018CEEF82339ee583Fd95446334f2685d24f on the Ethereum mainnet.

Notes on the Contract:
  • The initial total supply of the token is set to ~2.7 trillion $eViral [2,718,281,828,459].
  • No mint or burn functions are present; and holders are not allowed to send tokens to the burn address unless indirectly through the use of the "burn fee" mechanism which only applies to transfers and sells (not applied on direct purchases from Uniswap).
  • At the time of writing this report, 5.38% of the total eViral token supply has been burned. 1.18% is held directly in the burn address, and 4.2% has been reduced from the total supply as a result of the "viral burn".
  • At the time of writing this report, 8.00% of the total eViral token supply is in liquidity.
  • 99.03% of that liquidity is held in a token locking contract that will vest to the team on Tuesday, September 6th 2022.
  • The top 5 wallets account for about 22.7% of the total supply.
  • There is a Max transaction amount that is set to 8,154,845,485 which is 0.3% of the initial total supply.
  • Transfers are limited to 2.72% of the balance of the Uniswap LP; and the transfer must be below the maximum transaction amount. (The owner is exempt from this).
  • When initially buying from Uniswap, a 7% “Team Fee” and 3% Reflection Fee will be incurred during the purchasing transaction. There is a buying 'cool-down' of 45 seconds after each transaction for each individual address.
  • The Fee structure for eViral varies depending on the situation. There is a 7% "Team Fee", 7% 'Reflection Fee' and a 1% 'Burn Fee' on all transactions for any holder that participates in a transfer after initial purchase (Uniswap and owner excluded). The contract has the ability to multiply these fees as a mechanism to discourage frequent selling.
  • On every transfer that occurs, a certain amount is burned from the total supply of the token; which in turn proportionally reduces the amount of eViral owned by all of the holders.
  • The code utilizes additional “Cooldown” functionality to limit the amount of sales that a wallet can make within a 24-hour span. The contract's logic sets a limit to to 5 "sells" in a day before the cool down on transactions for that address will reached the one-day threshold which will cause the holder to wait a 24 hour period from the time of their first sell. After that time has elapsed, their sell counter will reset to 0. The increments for this logic is as follows:
    1.) After the first ‘sell’ transaction is completed, there is a 1-hour cool down (7% Reflection, 1% Burn). Each subsequent sell within the 24-hour span will also increment the “Fee Multiplier” by 1 for the reflection and burn fees.
    2.) The second sell will apply a 2-hour cooldown (14% Reflection, 2% Burn).
    3.) The third sell will apply a 3-hour cool down (21% Reflection, 3% Burn).
    4.) The fourth sell will apply a 7-hour cool down (28% Reflection, 4% Burn).
    5.) The fifth sell will apply a 24-hour cool down from the time the first “sell” was transacted (as well as a 35% Reflection and 5% Burn).

  • Ownership has been renounced.
  • The contract utilizes SafeMath libraries along with following the ERC20 standard.
Audit Findings Summary
  • No external threats were identified.
  • Be aware of the top wallets that have a similar amount of eViral as the Liquidity Pool.
  • Ensure trust in the team prior to investing as they have notable control in the ecosystem.
  • Date: June 23rd, 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
 
 +  Context 
    - [Int] _msgSender

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

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

 + [Int] IUniswapV2Factory 
    - [Ext] createPair #

 + [Int] IUniswapV2Router02 
    - [Ext] swapExactTokensForETHSupportingFeeOnTransferTokens #
    - [Ext] factory
    - [Ext] WETH
    - [Ext] addLiquidityETH ($)

 +  VIRALETHEREUM (Context, IERC20, Ownable)
    - [Pub]  #
    - [Pub] name
    - [Pub] symbol
    - [Pub] decimals
    - [Pub] totalSupply
    - [Pub] balanceOf
    - [Pub] transfer #
    - [Pub] allowance
    - [Pub] approve #
    - [Pub] transferFrom #
    - [Pub] releaseEViral #
       - modifiers: onlyOwner
    - [Ext] addLiquidity #
       - modifiers: onlyOwner
    - [Ext] manualswap #
       - modifiers: onlyOwner
    - [Ext] manualsend #
       - modifiers: onlyOwner
    - [Ext] setCooldownEnabled #
       - modifiers: onlyOwner
    - [Ext] setMaxTxPercent #
       - modifiers: onlyOwner
    - [Prv] tokenFromReflection
    - [Prv] _approve #
    - [Prv] _transfer #
    - [Prv] removeAllFee #
    - [Prv] restoreAllFee #
    - [Prv] setFee #
    - [Prv] _tokenTransfer #
    - [Prv] _transferStandard #
    - [Prv] _takeTeam #
    - [Prv] _viralEthBurn #
    - [Prv] _reflectFee #
    - [Prv] _getValues
    - [Prv] _getTValues
    - [Prv] _getRValues
    - [Prv] _getRate
    - [Prv] _getCurrentSupply
    - [Prv] swapTokensForEth #
       - modifiers: lockTheSwap
    - [Prv] sendETHToFee #
    - [Ext]  ($)