如何在不到一小時的時間內建立諸如Uniswap之類的分散交換(DEX)

20201102_Uniswap_feature.jpg

構建單務交換很簡單。首先,我們需要三組代碼:

  1. 工廠合同
  2. 路由合同
  3. 前端代碼

工廠合同用於LP令牌創建,它將為每對交換創建一個LP令牌。路由合同是用戶要求與工廠合同互動的合同。可以在此處找到工廠合同源代碼:https://etherscan.io/address/0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aaaa6f#code

如果您不在主要以太坊網絡上部署代碼,則需要在上述源代碼的第398行之後添加以下行:

.

2.調用init_code_pair_hash的值並記錄下來,我們稍後需要它。

您可以找到init_code_pair_hash的值,如下圖所示。

Screenshot 2020-11-02 at 4.41.21 PM.png

然後,我們處理路由合同,路由合同源代碼可以到達這裡:https://etherscan.io/address/0x7A250D5630B4CF539739DF2C5C5DACB4C659F2488D#CODE

在第700行中搜索代碼:

hex'96E8AC4277198FF8B6F785478AA39F403CB768DD02CBEE326C3E7DA3488845F'//初始代碼哈希

我們需要用從工廠合同init_code_pair_hash獲得的哈希替換哈希。然後可以部署合同。需要兩個參數:

  1. 我們剛剛部署的工廠合同地址
  2. 韋斯地址

什麼是韋斯?

UNISWAP交換與ERC20代幣效果很好,但ETH不是ERC20。因此,交易所需要一個WETH轉換器將ETH轉換為ERC20標準WETH。匯率固定為1至1。根據您使用的網絡,請在下面選擇WETH地址作為輸入參數。

當然:02年9月2日

Ropsten:'0xC778417E063141139FCE010982780140AAAAAA0CD5AB'

Rinkeby:'0xC778417E063141139FCE010982780140AAA0CD5AB'

goerli:'0xb4fbf271143f4f4fbf7b91a5ded31805E42B2208D6''

科萬:0CASP。01

在我們編譯和部署路由合同後,請記住記下這兩個合同和INIT HASH代碼的地址。

下一步是在代碼的前端工作:

我們可以通過命令下載前端的代碼:

git克隆https://github.com/uniswap/uniswap-interface.git

CD UNISWAP接口

Screenshot 2020-11-02 at 4.53.25 PM.png

合同地址需要更換,我們需要在/uniswap-interface/hide/hide/constants/index.ts的第6行上替換路由器合同地址

我們還需要搜索出廠地址和初始哈希代碼以進行更換。確保還替換了node_module/@uniswap中的代碼。

畢竟,替換,在您的github上創建一個存儲庫。並在前端代碼的文件夾中鍵入以下命令。

CD UNISWAP接口

rm -rf .git

git init

git Remote添加原點https://github.com/ {username }/ {project name} .git

紗線添加GH頁

紗線構建

然後編輯package.json,將主頁的值替換為https://username.github.io/project名稱。保存文件後,鍵入以下命令,

git添加。

git commit -m“ uniswap Exchange部署”

git放

紗線部署

完成所有內容後,您可以通過https://username.github.io/project訪問帶有metAmask錢包的交易所。

 

原创文章,作者:Johnny Chiu,如若转载,请注明出处:https://www.kaixuan.pro/news/233086/