4

使用官方项目部署 Uniswap-v2

 2 years ago
source link: https://learnblockchain.cn/article/3513
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

使用官方项目部署 Uniswap-v2

使用官方项目部署 Uniswap-v2

原文发布在 https://github.com/33357/smartcontract-apps这是一个面向中文社区,分析市面上智能合约应用的架构与实现的仓库。欢迎关注开源知识项目!

获取测试代币

我们选择Rinkeby测试网络部署Uniswap-v2,首先需要获取测试代币。

使用 remix 部署合约

  • 打开 remix 官网。

  • 部署WETH

    • 编译设置
      • 新建文件 WETH.sol,将 WETH合约源码 复制过来。
      • 使用默认环境编译
    • 部署设置
      • CONTRACT 选择 WETH9,ENVIRONMENT 选择 Injected Web3
      • 连接 MetaMask 的 Rinkeby 网络进行部署。
  • 部署Factory

    • 编译设置
      • 新建文件 UniswapV2Factory.sol,将 Factor合约源码 复制过来。
      • 使用默认环境编译
    • 部署设置
      • 随便设置一个 _feeToSetter 地址之后,CONTRACT 选择UniswapV2Factory,ENVIRONMENT 选择 Injected Web3
      • 连接 MetaMask 的 Rinkeby 网络进行部署。
  • 部署Router

    • 编译设置
      • 新建文件 UniswapV2Router02.sol,将 Router合约源码 复制过来。
      • 在remix中获取 UniswapV2Factory.sol 中 CONTRACT 为 UniswapV2Pair 时 Bytecode 的object对象,粘贴到 keccak_256 后获取hash值(注意要用hex模式),替换 UniswapV2Router02.sol 中的 initCode 码(之所这么做是因为Router需要通过这个hash找到Pair的地址,而hash会随着编译环境的改变而变化,真他妈是个鬼才!)
      • 允许 Enable optimization(不然会因为bytecode 过长部署失败)进行编译。
    • 部署设置
      • 填入上面的 Factory 和 WETH 地址之后,CONTRACT 选择 UniswapV2Router02,ENVIRONMENT 选择 Injected Web3
      • 连接 MetaMask 的 Rinkeby 网络进行部署。
    • ubuntu 20.04
    • node v16.13.0
    • npm 8.1.4
    • yarn 1.22.17
    • 下载 Uniswap-v2 版的interface,这里我选择的 uniswap-interface 版本是 v2.6.5
    • 进入项目根目录后,执行 yarn && yarn start ,安装好依赖后确认可以成功启动。
    • 项目根目录下检索(包括 node_modules/@uniswap/ )“0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D”替换成你部署的 router 地址
    • 检索 “0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f”替换成你部署的 factory 地址
    • 检索“96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f”替换成你部署 Pair 的 initcode
    • 检索“0xc778417E063141139Fce010982780140Aa0cD5Ab”替换成你部署的 WETH 地址
    • 执行 yarn start,测试添加流动和 swap 交易。

发布到github

  • 安装gh-pages

    • yarn add gh-pages
  • 生成前端代码

    • yarn build
  • 修改配置文件

    • 修改package.json文件中的"homepage"属性为"https://用户名.github.io/项目名称"
    • 添加package.json文件中的"scripts"属性"deploy": "gh-pages -d build"
  • 发布项目到github

    • git add .
    • git commit -m "first commit"
    • git push
  • 部署前端界面

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

  • 发表于 3天前
  • 阅读 ( 94 )
  • 学分 ( 3 )
  • 分类:Uniswap

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK