Hierocoin - Smart Contract Audit Report
Summary
Hierocoin ($BAR) is a new BEP20 token on the Binance Smart Chain.
Notes on the Contract:Audit Findings Summary
- 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.
- No external threats were identified.
- Date: November 18th, 2021
Audit 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 |
Function Graph
Inheritence Chart
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