GiftEscrow - Smart Contract Audit Report
Summary
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 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 |
Integer Over/Underflow | N/A | PASS |
Multiple Sends | 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 |
($) = 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 #