这里讲一下 uniswap
的整体架构。
在讲整体架构之前,我先列一下参考资料。
参考资料
整体架构
先看一下 uniswap
原始库中的代码库。
整个 UniswapV2
产品拆分出了多个小型的开源项目,主要包括:
uniswap-interface
uniswap-v2-sdk
uniswap-sdk-core
uniswap-info
uniswap-v2-subgraph
uniswap-v2-core
uniswap-v2-periphery
uniswap-lib
前三个是前端 App
项目,即提供交易的项目,对应于 https://app.uniswap.org
网页功能,展示页面都写在 uniswap-interface
项目中。uniswap-v2-sdk
和 uniswap-sdk-core
则是作为 SDK
而存在,uniswap-interface
会引用到 v2-sdk
和 sdk-core
,通过 @uniswap/v2-sdk
和 @uniswap/sdk-core
的方式引入到需要使用的 TS
文件中。
不过,uniswap-interface
最新代码其实是跟线上同步的,即是集成了 V3
版本的。如果只想部署 V2
版本的前端,那可以找出历史版本的项目代码进行部署,如果是不带流动性挖矿功能,推荐 2020
年 9
月份的版本,如果是带挖矿功能,那可以试试 2020
年 10
月份的版本。
uniswap-info
则是 Uniswap Analytics
项目,对应于官网页面 https://info.uniswap.org
,展示了一些统计分析数据,其数据主要是从 Subgraph
读取。uniswap-v2-subgraph
则是 Subgraph
项目了。
最后三个则是合约项目了,uniswap-v2-core
就是核心合约的实现; uniswap-v2-periphery
则提供了和 UniswapV2
进行交互的外围合约,主要就是路由合约;uniswap-lib
则封装了一些工具合约。core
和 periphery
里的合约实现是我们后面要重点讲解的内容。