Unireview Token - Smart Contract Audit Report

Summary

Unireview Audit Report Unireview Token ($UREV) is a new DeFi token on the Binance Smart Chain.

The Unireview Token contract is deployed at 0xdee5004afa9d5ee986dad63c6e7576c874cfd228 on the Binance Smart Chain Mainnet.

Notes of the contract:
  • The total supply of the token is 100 million [100,000,000] $UREV.
  • No minting functions are accessible beyond deployment.
  • Any user can burn their own tokens to reduce the total supply.
  • At the time of writing this report, 90% of the total $UREV token supply belongs to an AdminUpgradeabilityProxy contract.
  • The next largest holder is in possession of 5% of the total token supply.
  • 1% of the total supply is in Pancakeswap liquidity.
  • Of that liquidity, 99% of the LP tokens are stored in a UniswapV2 locker contract and will vest to the team on March 21, 2022.

  • The contact utilizes the EIP712 standard which offers a secure and user friendly method for typed message signing.
  • Any user can call the 'permit' function, which can be used to change an account's BEP20 allowance by presenting a message signed by the account.
  • No ownership-restriction functions are present.
  • The contract utilizes SafeMath to prevent overflows and complies with the BEP20 standard.
Audit Findings Summary
  • No external threats were identified.
  • Date: September 2nd, 2021
  • Updated September 28th, 2021 to reflect BSC Mainnet deployment.

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
Integer Over/UnderflowN/APASS
Multiple SendsN/APASS
SuicideN/APASS
State Change External CallsN/APASS
Unchecked RetvalN/APASS
User Supplied AssertionN/APASS
Critical Solidity CompilerN/APASS
Overall Contract Safety PASS

ERC20 Token Graph

Multi-file Token


 ($) = payable function
 # = non-constant function
 
 Int = Internal
 Ext = External
 Pub = Public

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

 +  ERC20Burnable (Context, ERC20)
    - [Pub] burn #
    - [Pub] burnFrom #

 + [Int] IERC20Permit 
    - [Ext] permit #
    - [Ext] nonces
    - [Ext] DOMAIN_SEPARATOR

 + [Lib] ECDSA 
    - [Int] recover
    - [Int] recover
    - [Int] recover
    - [Int] toEthSignedMessageHash
    - [Int] toTypedDataHash

 +  EIP712 
    - [Pub]  #
    - [Int] _domainSeparatorV4
    - [Prv] _buildDomainSeparator
    - [Int] _hashTypedDataV4

 + [Lib] Counters 
    - [Int] current
    - [Int] increment #
    - [Int] decrement #
    - [Int] reset #

 +  ERC20Permit (ERC20, IERC20Permit, EIP712)
    - [Pub]  #
       - modifiers: EIP712
    - [Pub] permit #
    - [Pub] nonces
    - [Ext] DOMAIN_SEPARATOR
    - [Int] _useNonce #

 +  UnireviewToken (ERC20, ERC20Burnable, ERC20Permit)
    - [Pub]  #
       - modifiers: ERC20,ERC20Permit