Equalizer - Smart Contract Audit Report
Equalizer is building a platform enabling flash loans to equalize DeFi markets.For this audit, we analyzed the project's on-chain bridge logic.
We previously reviewed their token deployments to Ethereum here and BSC here.
We reviewed the project's bridge logic at 0xC18685Aa9efBc77Fee907A124dA6221210163b3A on the Ethereum Testnet.
Notes on the Contract:
The team has developed a cross-chain bridge which will allow users to deposits their native Equalizer tokens across the ETH or BSC blockchain. This contract serves as the on and off ramp for each chain. Users can send their tokens to the bridge contract on the ETH chain to bring those tokens over to the BSC chain, and vice versa. There is a fee that users must pay when initiating a cross-chain swap, by default in the amount of 5 tokens. The team can update the fee and claim the collected fees at any time. Cross-chain swaps involve some off-chain logic run by the team. Please note we have not reviewed the off-chain logic related to the bridge. Utilization of SafeMath to prevent overflows.
Audit Findings Summary:
- No security issues were identified.
- Users must trust the team as they will operate off-chain logic to power the bridge used for cross-chain transfers.
- Date: May 5th, 2021
- Date: May 11th, 2021 - Deployment to mainnet with minor improvements.
Combined External Threat Results
|Arbitrary Storage Write||N/A||PASS|
|Delegate Call to Untrusted Contract||N/A||PASS|
|Dependence on Predictable Variables||N/A||PASS|
|State Change External Calls||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] IBridgeV1 - [Ext] SwapOut # - [Ext] SwapIn # + Context - [Int] _msgSender - [Int] _msgData + Ownable (Context) - [Pub]
# - [Pub] owner - [Pub] renounceOwnership # - modifiers: onlyOwner - [Pub] transferOwnership # - modifiers: onlyOwner + [Int] IERC20 - [Ext] totalSupply - [Ext] balanceOf - [Ext] transfer # - [Ext] allowance - [Ext] approve # - [Ext] transferFrom # + [Lib] SafeMath - [Int] tryAdd - [Int] trySub - [Int] tryMul - [Int] tryDiv - [Int] tryMod - [Int] add - [Int] sub - [Int] mul - [Int] div - [Int] mod - [Int] sub - [Int] div - [Int] mod + Bridge (IBridgeV1, Ownable) - [Pub] # - [Ext] SwapOut # - [Ext] SwapIn # - modifiers: onlyOwner - [Ext] withdraw # - modifiers: onlyOwner - [Ext] updateFee # - modifiers: onlyOwner - [Ext] addLiquidity #