准备工作

工厂合约

工厂合约链接

在主合约添加

bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(UniswapV2Pair).creationCode));

编译EVM版本选择istanbul,优化次数999999。
构造参数为管理员地址。

图片替换文本

路由合约

路由合约链接

全局搜索hex,根据工厂合约查询到的INIT_CODE_PAIR_HASH的值,替换到路由合约中。
构造参数为工厂合约地址和WETH地址。

WETH合约

合约链接地址

Multicall合约

合约链接地址

前端工作

uniswap-sdk

建议使用2020.8.6版本的

git clone https://github.com/Uniswap/v2-sdk.git
  1. 修改工厂合约地址和Init Code

  2. 修改WETH地址

  3. 新增链ID

  4. 修改package.json打包上传npm

npm login

npm publish

uniswap前端

建议使用2020.9.1版本的

git clone https://github.com/Uniswap/uniswap-interface.git
  1. 移除uniswap依赖包
    npm remove @uniswap/sdk

  2. 新增sdk依赖
    npm i ll-bsc-sdk
    名称参考上图

  3. 修改路由合约,增加链名称

  4. 支持的链ID

  5. 新增multicall地址

  6. 修改tokenlist

格式如下:

{
  "name": "Default",
  "logoURI": "https://raw.githubusercontent.com/compound-finance/token-list/master/assets/compound-interface.svg",
  "keywords": [
    "compound",
    "defi"
  ],
  "timestamp": "2021-05-27T20:37:00.000+00:00",
  "tokens": [
    {
      "chainId": 97,
      "address": "0x27D55145b209781ccc88D90e1C218f3685fef2c8",
      "name": "dd",
      "symbol": "dd",
      "decimals": 18,
      "logoURI": "https://raw.githubusercontent.com/compound-finance/token-list/master/assets/asset_ZRX.svg"
    }
  ],
  "version": {
    "major": 2,
    "minor": 0,
    "patch": 0
  }
}

启动前端

yarn start