使用Uniswap V2部署自己的去中心化交易所

Dapp鏈接:https://www.chainpip.com/dapp-view/6724


部署UniswapV2前需要準(zhǔn)備的智能合約項(xiàng)目:

~uniswap-v2-core:核心合約

~uniswap-v2-periphery:與核心合約交互的邊緣合約鄙早,主要就是路由合約

~uniswap-lib:工具合約

整合以上三個(gè)項(xiàng)目到一個(gè)項(xiàng)目中:

uniswap-v2-core

core核心主要有三個(gè)合約文件:

~UniswapV2Factory.sol:工廠合約

~**UniswapV2Pair.sol:**配對(duì)合約

~**UniswapV2ERC20.sol:**LP Token 合約


UniswapV2Pair.sol管理著流動(dòng)性資金池舔箭,不同幣對(duì)有著不同的實(shí)例肤舞,比UniswapV2Pair.sol,如USDT-WETH這一個(gè)幣對(duì),就對(duì)應(yīng)一個(gè)UniswapV2Pair.sol合約地址**,DAI-WETH又對(duì)應(yīng)另一個(gè)UniswapV2Pair.sol**。

UniswapV2ERC20.sol則是用戶往資金池里注入流動(dòng)性的一種憑證悯仙,也稱為流動(dòng)性代幣囱修,其實(shí)也是一種ERC20代幣,同樣支持轉(zhuǎn)賬功能薄声。當(dāng)用戶在Uniswap v2添加兩個(gè)交易對(duì)( 如USDT-WETH)当船,也就是添加流動(dòng)性, Uniswap會(huì)增加對(duì)應(yīng)UniswapV2ERC20.sol實(shí)例(如USDT-WETH LP Token)的余額,Uniswap根據(jù)用戶持有LP Token的額度默辨,計(jì)算手續(xù)費(fèi)收益獎(jiǎng)勵(lì)給用戶德频。

每個(gè)UniswapV2Pair.sol都有對(duì)應(yīng)的一種UniswapV2ERC20.sol與之綁定。其實(shí)缩幸,UniswapV2Pair繼承了?UniswapV2ERC20壹置,所以配對(duì)合約本身其實(shí)也是LP Token合約。

UniswapV2Factory.sol則是用來部署UniswapV2Pair.sol的表谊,通過工廠合約的?createPair()函數(shù)來創(chuàng)建新的配對(duì)合約實(shí)例钞护。

uniswap-v2-periphery

periphery核心有兩個(gè)合約文件:

~UniswapV2Router01.sol:路由合約01版本

~UniswapV2Router02.sol:路由合約02版本,相比 01 版本主要增加了幾個(gè)支持交稅費(fèi)用的函數(shù)

這兩個(gè)合約只要部署一個(gè)就行爆办,本教程只部署UniswapV2Router01.sol

uniswap-lib

提供uniswap-v2-periphery的函數(shù)庫难咕。


開始部署Uniswap V2

在部署Uniswap V2之前,我們需要改下Uniswap V2代碼中init code hash值距辆,否則即便部署成功余佃,也使用不了。位于項(xiàng)目contracts/libraries/UniswapV2Library.sol文件中的pairFor函數(shù):

init code hash是UniswapV2Pair的bytecode通過keccak-256計(jì)算的值:

點(diǎn)擊Bytecode按鈕,在彈框中復(fù)制**Bytecode值,**打開網(wǎng)址 http://emn178.github.io/online-tools/keccak_256.html

記得選擇Input type為"Hex",最終得到的"02253df52a97965e4b0f62119b1048e43d71c7e02dd706e7a1d07655ed5f8642"跨算,就是我們要的init code hash

部署合約

只要部署三個(gè)合約:

~UniswapV2Factory

~WETH (可選, 也可使用鏈上已有的WETH地址)

~UniswapV2Router01

UniswapV2Factory參數(shù):

~_feeToSetter:設(shè)置手續(xù)費(fèi)的管理員爆土,可任選一個(gè)錢包地址

UniswapV2Router01參數(shù):

~_factory: UniswapV2Factory部署后的合約地址

~_WETH: WETH合約地址

添加流動(dòng)池

~addLiquidity:該接口支持添加兩種ERC20代幣作為流動(dòng)性

~addLiquidityETH:與上一個(gè)接口不同,該接口提供的流動(dòng)性資產(chǎn)诸蚕,其中有一個(gè)是ETH

添加兩個(gè)代幣流動(dòng)池

添加代幣與ETH流動(dòng)池

代幣授權(quán)

在添加流動(dòng)性時(shí)步势,需要先授權(quán)代幣給路由合約地址

可以使用一下授權(quán)面板氧猬,記得修改底部的合約地址為要授權(quán)的代幣地址

交易

~swapExactTokensForTokens:用ERC20兌換 ERC20,但支付的數(shù)量是指定的立润,而兌換回的數(shù)量則是未確定的

~swapTokensForExactTokens:也是用ERC20兌換 ERC20狂窑,與上一個(gè)函數(shù)不同,指定的是兌換回的數(shù)量

~swapExactETHForTokens:指定ETH數(shù)量?jī)稉Q ERC20

~swapTokensForExactETH:用ERC20兌換成指定數(shù)量的 ETH

~swapExactTokensForETH:用指定數(shù)量的ERC20兌換 ETH

~swapETHForExactTokens:用ETH兌換指定數(shù)量的 ERC20

~swapExactTokensForTokensSupportingFeeOnTransferTokens:指定數(shù)量的ERC20兌換 ERC20桑腮,支持轉(zhuǎn)賬時(shí)扣費(fèi)

~swapExactETHForTokensSupportingFeeOnTransferTokens:指定數(shù)量的ETH兌換 ERC20泉哈,支持轉(zhuǎn)賬時(shí)扣費(fèi)

~swapExactTokensForETHSupportingFeeOnTransferTokens:指定數(shù)量的ERC20兌換 ETH,支持轉(zhuǎn)賬時(shí)扣費(fèi)

代幣之間交易

原文鏈接(含可復(fù)制代碼):https://www.chainpip.com/dynamic/231

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末破讨,一起剝皮案震驚了整個(gè)濱河市丛晦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌提陶,老刑警劉巖烫沙,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異隙笆,居然都是意外死亡锌蓄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門撑柔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘸爽,“玉大人,你說我怎么就攤上這事铅忿〖艟觯” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵檀训,是天一觀的道長(zhǎng)柑潦。 經(jīng)常有香客問我,道長(zhǎng)峻凫,這世上最難降的妖魔是什么渗鬼? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮荧琼,結(jié)果婚禮上乍钻,老公的妹妹穿的比我還像新娘。我一直安慰自己铭腕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布多糠。 她就那樣靜靜地躺著累舷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夹孔。 梳的紋絲不亂的頭發(fā)上被盈,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天析孽,我揣著相機(jī)與錄音,去河邊找鬼只怎。 笑死袜瞬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的身堡。 我是一名探鬼主播邓尤,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼贴谎!你這毒婦竟也來了汞扎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤擅这,失蹤者是張志新(化名)和其女友劉穎澈魄,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仲翎,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痹扇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了溯香。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鲫构。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逐哈,靈堂內(nèi)的尸體忽然破棺而出芬迄,到底是詐尸還是另有隱情,我是刑警寧澤昂秃,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布禀梳,位于F島的核電站,受9級(jí)特大地震影響肠骆,放射性物質(zhì)發(fā)生泄漏算途。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一蚀腿、第九天 我趴在偏房一處隱蔽的房頂上張望嘴瓤。 院中可真熱鬧,春花似錦莉钙、人聲如沸廓脆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽停忿。三九已至,卻和暖如春蚊伞,著一層夾襖步出監(jiān)牢的瞬間席赂,已是汗流浹背吮铭。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颅停,地道東北人谓晌。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像癞揉,于是被迫代替她去往敵國和親纸肉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容