Portify Token - Smart Contract Audit Report

Summary

Portify Audit Report Portify Token is a new BEP20 token on the Binance Smart Chain.

The Portify Token contract is deployed at 0x69083b64988933e8b4783e8302b9bbf90163280e on the Binance Smartchain mainnet.


Notes on the Contract:
  • The total supply of the token is set to 100 million [100,000,000] $PFY.
  • The contract features a mint locking function, that was called upon deployment to the mainnet, which prevents the owner from minting tokens until a 90 day time limit has been reached (December 20th, 2021). When minting is not locked, the owner can call this mint locking function at any time, which would subsequently lock minting for another 90 days.
  • When minting is not locked, the owner has the ability to mint tokens up to a hard cap of 180,000,000 $PFY.
  • No burn functions are present; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
  • At the time of writing this report, 100% of the total $PFY token supply is in possession of the owner as the project was recently deployed.

  • No other ownership-restriction functions are present.
  • Ownership has not been renounced.
  • The contract complies with the BEP20 standard.
  • As the project is deployed with Solidity v0.8.0, it is protected from overflows.
Audit Findings Summary
  • No external threats were identified.
  • Please ensure trust in the team as they have some control over the total token supply via minting.
  • Date: August 23rd, 2021
  • Updated September 22nd, 2021 to reflect mainnet deployment and added mint locking functionality.

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

 +  Context 
    - [Int] _msgSender
    - [Int] _msgData

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

 + [Int] IERC20Metadata (IERC20)
    - [Ext] name
    - [Ext] symbol
    - [Ext] decimals

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

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

 +  Portify (Ownable, ERC20)
    - [Pub]  #
       - modifiers: ERC20
    - [Pub] lockMint #
       - modifiers: onlyOwner
    - [Ext] mint #
       - modifiers: onlyOwner
    - [Pub] decimals