eViral - Smart Contract 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.
Notes on the Contract:
Audit Findings Summary
- 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.
- 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
|Arbitrary Storage Write||N/A||PASS|
|Delegate Call to Untrusted Contract||N/A||PASS|
|Dependence on Predictable Variables||N/A||PASS|
|State Change External Calls||N/A||PASS|
|User Supplied Assertion||N/A||PASS|
|Critical Solidity Compiler||N/A||PASS|
|Overall Contract Safety||PASS|
($) = 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] ($)