1. 发合约
通过第一节基本概念我们知道了需要四个合约Router、Factory、Pair、WETH才能跑起来。但是Factory我们可以直接使用uniswap的。Pair的代码在Factory之内,所以Pair合约也不用部署。WETH和ETH 1:1,有一种等价交换物的功能,所以这个也不需要我们部署,所以需要部署的只有Swap合约。合约代码在:
https://rinkeby.etherscan.io/address/0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
打开remix编译,注意EVM version要选istanbul
编译并部署
这里需要构造函数需要填入Factory和Weth的地址,分别填
0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
0xc778417e063141139fce010982780140aa0cd5ab
确认并打包后得到Swap合约地址
0xfA474D8E00e46b577DC011fF92CaF0501c632535
2. 本地跑Uniswap前端
获得前端源码并添加依赖
git clone https://github.com/Uniswap/uniswap-interfacecd uniswap-interfaceyarn
修改默认的Swap合约地址
在 uniswap-interface/src/constants/index.ts 第6行
ROUTE_ADDRESS改成我们发的swap合约的地址。
运行项目
yarn start
查看效果如下:
四. 部署Factory合约
使用uniswap的factory没有什么问题,如果你需要自己发factory合约也是可以的。但是有个问题是uniswap的前端项目uniswap-interface把factory的地址写死到了一个node module里面,你需要手动去改这个库才可以使uniswap使用你的factory合约。