
本文作者:崔棉大师
演示地址: https://fankouzu.github.io/cuiswap/ (请在测试网使用)
准备Uniswap合约源码
源码结构
Uniswap在Github上面开源了全部合约代码,其中包括核心合约
,周边合约
两部分.Uniswap还开源了前端代码,前端代码使用React开发
- 核心合约
- 周边合约
- 前端代码
在Uniswap的核心代码中,主要包含3个合约:工厂合约
,配对合约
,ERC20合约
.其中配对合约继承了ERC20合约,我们可以把它们看作一个合约.工厂合约通过create2
方法部署配对合约,所以在部署合约时只需要部署工厂合约
. 周边合约中包括一些示例代码,例如价格预言机,闪电交换,其中最重要的是路由合约
.在周边合约的代码库中,包含两个路由合约
:UnsiwapV2Router01
,UnsiwapV2Router02
.工厂合约和配对合约需要通过路由合约调用才能更好的完成交易所的全部功能,所以我们还要部署路由合约
两个合约大部分相同,有小部分不同,如果将两个合约的差异化合并成一个合约,部署的时候将会出现out of gas
,所以才被分成了两个合约.常用功能两个合约中都包括,所以我们部署其中任意一个路由合约都可以
继承引用调用ERC20合约配对合约工厂合约路由合约
从浏览器中下载合约源码
如果你对合约代码并不熟悉,也可以跳过上面这部分,接下来我们将从以太坊浏览器中直接拷贝线上版合约源码
- 工厂合约
- 路由合约01[可选]
- 路由合约02
部署合约
准备部署账户
Uniswap的路由合约部署在以太坊的主网和Ro