- PoolBase.sol (declarations for the pool and basic functions);
- PoolHelper.sol (contains main helper functions);
- PoolFactory.sol (simple factory producing pools as clones)
- LiquidPool.sol (main pool high level logic);
- LiquidRouter.sol (main router, to call pools and store hashes);
- Babylonian.sol (can be skipped, library used in several other projects);
- IChainLink.sol (simple interface file for chainlink interactions, does not contain logic);
- ILiquidInit.sol (simple interface file for the initial pool call, does not contain logic);
- ILiquidPool.sol (simple interface file for main functions of the pool, does not contain logic);
- ILiquidRouter.sol (simple interface file for the router, does not contain logic);
- LiquidEvents.sol (simple events for the the pool, does not contain logic);
- RouterEvents.sol (simple events for the the router, does not contain logic);
- AccessControl.sol (simple role manager);
- PoolShareToken.sol (reviewed before as part of other audit, exact same copy)
- PoolViews.sol (only contains external views does not affect the state)
- LiquidTransfer.sol (simple helper to move NFT tokens)
skip them (these files are purely for testing and test scenarios, not part of the actual product or scope of the audit)
- NFT721.sol (represents regular NFT);
- TestToken.sol (represents regular ERC20);
- TesterPool.sol (mock wrapper for testing pools);
- TesterChainlink.sol (for testing chainlink);
- TestHeartBeatStandAlone.sol (for testing chainlink);