Hierocoin - Smart Contract Audit Report

Summary

Hierocoin Audit Report Hierocoin ($BAR) is a new BEP20 token on the Binance Smart Chain.

We reviewed the Hierocoin contract that is deployed at 0x34550001Fbf7d6e42e812763C91eF96F129742AB on the Binance Smartchain mainnet.

Notes on the Contract:
  • The total supply of the token is set to 93 million $BAR [93,000,000].
  • Any user can burn their own tokens to reduce the total supply.
  • At the time of writing this report, 91.19% of the total supply belongs to a Presale contract.
  • 4.28% of the total supply belongs to a Unicrypt token vesting contract.
  • The next four holders own a cumulative 4.27% of the total supply.

  • Although there are team-restricted functions to mint tokens and pause trading that are present in the contract, the team has renounced their minting and pausing rights and can no longer access these functions.
  • No other ownership-restricted functions are present.
  • Some gas optimizations can be achieved through marking functions external instead of public. As this contract is already deployed, this is informational.
  • The contract complies with the BEP20 Token standard.
  • The contract utilizes Safemath libraries to prevent overflows/underflows.

Audit Findings Summary
  • No external threats were identified.
  • Date: November 18th, 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
 
 + [Lib] SafeMath 
    - [Int] mul
    - [Int] mul
    - [Int] div
    - [Int] div
    - [Int] sub
    - [Int] sub
    - [Int] add
    - [Int] add
    - [Int] mod

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

 +  ERC20Pistachio (IERC20)
    - [Pub]  #
    - [Pub] totalSupply
    - [Pub] balanceOf
    - [Pub] allowance
    - [Pub] transfer #
    - [Pub] approve #
    - [Pub] transferFrom #
    - [Pub] increaseAllowance #
    - [Pub] decreaseAllowance #
    - [Int] _transfer #
    - [Int] _mint #
    - [Int] _burn #
    - [Int] _burnFrom #

 +  ERC20Burnable (ERC20Pistachio)
    - [Pub] burn #
       - modifiers: whenBurnableActive
    - [Pub] burnFrom #
       - modifiers: whenBurnableActive
    - [Int] _setBurnableActive #

 + [Lib] Roles 
    - [Int] add #
    - [Int] remove #
    - [Int] has

 +  MinterRole 
    - [Int]  #
    - [Pub] isMinter
    - [Pub] addMinter #
       - modifiers: onlyMinter
    - [Pub] renounceMinter #
    - [Int] _addMinter #
    - [Int] _removeMinter #

 +  ERC20Mintable (ERC20Pistachio, MinterRole)
    - [Pub] mint #
       - modifiers: onlyMinter,whenMintableActive
    - [Int] _setMintableActive #

 +  PauserRole 
    - [Int]  #
    - [Pub] isPauser
    - [Pub] addPauser #
       - modifiers: onlyPauser
    - [Pub] renouncePauser #
    - [Int] _addPauser #
    - [Int] _removePauser #

 +  Pausable (PauserRole)
    - [Int]  #
    - [Pub] paused
    - [Pub] pause #
       - modifiers: onlyPauser,whenNotPaused,whenPausableActive
    - [Pub] unpause #
       - modifiers: onlyPauser,whenPaused,whenPausableActive
    - [Int] _setPausableActive #

 +  ERC20Chocolate (ERC20Pistachio, ERC20Burnable, ERC20Mintable, Pausable)
    - [Pub]  #
       - modifiers: ERC20Pistachio
    - [Pub] cap
    - [Int] _mint #
    - [Pub] transfer #
       - modifiers: whenNotPaused
    - [Pub] transferFrom #
       - modifiers: whenNotPaused
    - [Pub] approve #
       - modifiers: whenNotPaused
    - [Pub] increaseAllowance #
       - modifiers: whenNotPaused
    - [Pub] decreaseAllowance #
       - modifiers: whenNotPaused