GiftEscrow - Smart Contract Audit Report


GiftEscrow Audit Report GIFT is a token with frictionless fee redistribution.

For this audit, we reviewed the project's GiftEscrow contract at 0x064f24fc29b28793031bff0e053066af02738087 on the Binance Smart Chain mainnet.

Notes on the Contract:
  • This contract allows the users to time-lock tokens & BNB and have them released to a specified beneficiary at a later time.
  • Users can deploy a new instance of an escrow contract, passing in the tokens they want to be locked.
  • A user creating an escrow contract also has the ability to recover the locked-up funds.
  • Funds stored in the contract can be sent to any address for redemption, and they must be redeemed via a transaciton creating using the team's off-chain server logic.
  • Some functions could have been declared external instead of public to save a small amount of gas. As this is already deployed though, this is merely informational.
  • Utilization of SafeMath to prevent overflows.

Audit Findings Summary:
  • No security issues from outside attackers were identified.
  • Further, ensure trust in the team as their off-chain logic will have control over the locked funds.
  • Date: June 16th, 2021.

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

Smart Contract Graph

Contract Inheritance

 ($) = 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 #

 + [Lib] SafeMath 
    - [Int] add
    - [Int] sub
    - [Int] sub
    - [Int] mul
    - [Int] div
    - [Int] div
    - [Int] mod
    - [Int] mod

 +  GiftingHandler 
    - [Pub]  #
    - [Pub] gift ($)
    - [Ext] viewGiftsSent
    - [Pub] redeem #
    - [Ext] viewGiftsRedeemed
    - [Pub] recover #
    - [Pub] changeRedeemer #
    - [Pub] changeRefundFee #

 +  GIFTEscrow 
    - [Pub]  ($)
    - [Ext] viewSender
    - [Ext] viewGiftedAmount
    - [Pub] withdraw #
    - [Pub] recover #