以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > 火星幣 > Info

TOKEN:從代碼角度上看懂DEX的聚合交易?

Author:

Time:1900/1/1 0:00:00

1inch發幣了,不知道各位老鐵有沒有領到。有的人暗中竊喜,有人還不了解1inch,這篇文件就介紹了1inch的核心功能。

文章的主要步驟如下:

獲得最大的收益兌換方案

授權1inch合約操作你的代幣

利用第一步獲得的兌換方案進行交易

什么是去中心化交易所聚合器?

去中心化交易所聚合器,即DEX,以下都用DEX表示。DEX聚合器是一個平臺,它將搜索一組DEX,以尋找在給定時間和數量下執行交易的最佳價格。

1inchDEX聚合器

1inch的一大特色就是聚合交易,它會在很多個DEX找到收益最大的成交方式。比如100000dai想買x個eth,在uniswap成交77%,在Bancor成交23%,是最合算的,買到的eth最多。

1inch是由AntonBukov和SergejKunz開發的DEX聚合器,通過一次交易將訂單在多個DEX之間拆分,給用戶提供最好的兌換匯率。1inch的智能合約是開源的。

過去4小時爆倉1.16億美元,BTC爆倉5524.72萬美元:金色財經報道,據coinglass數據顯示,過去4小時爆倉1.16億美元,其中,多單爆倉2632.53萬美元,空單爆倉8988.56萬美元。BTC爆倉5524.72萬美元,多單爆倉1376.58萬美元,空單爆倉4148.14萬美元。ETH爆倉3111.83萬美元。[2023/6/22 21:53:19]

在1inch執行交易,過程其實很簡單:

根據輸入的token或ETH數量,獲得預期可兌換的token數量

授權交易所使用你的token

使用第一步的獲取的token數量進行交易

我們首先仔細了解一下1inch的智能合約,讓我們感興趣的是這兩個方法:

getExpectedReturn()

swap()

getExpectedReturn-估算最佳兌換方案

getExpectedReturn?可以隨意調用,不需要消耗任何gas。

“杰倫熊”Phanta Bear地板價24H漲幅達50%,現報0.42 ETH:1月31日消息,據平臺數據顯示,NFT項目Phanta Bear地板價現報0.42 ETH,24H漲幅達50%。

此前報道,今日,元宇宙項目Highstreet CEO在Twitter Space中表示,已確認Highstreet將與周杰倫進行合作。[2023/1/31 11:39:06]

這個函數需要傳入兌換參數,返回兌換的期望結果,以及交易在各個dex之間的兌換比例。

function?getExpectedReturn(????IERC20?fromToken,????IERC20?toToken,????uint256?amount,????uint256?parts,????uint256?disableFlags)?public?viewreturns(????uint256?returnAmount,????uint256?memory?distribution);

Casper協會宣布推出新的2500萬美元Casper加速資助計劃:金色財經報道,Casper協會宣布推出新的2500萬美元Casper加速資助計劃。這個計劃以支持開發人員和創新者在全球范圍內構建強大的Casper公共區塊鏈。根據該計劃的目的,選擇過程中的關鍵標準之一將是項目對更廣泛的 Casper 社區和整個 Casper 生態系統產生的積極影響。[2022/11/23 8:01:26]

這個方法接收5個參數:

fromToken:當前擁有的token的地址

toToken:要交換的token的地址

amount:想要交換的token數量

parts:賣出數量拆分成多少份進行最優分布的估算。查看distribution?可以了解更多細節,默認是100

disableFlags:標記位,用于調整1inch的算法,例如可設置禁用某個特定的DEX

這個方法有2個返回值:

基于Cardano的去中心化穩定幣Djed將于1月上線主網:金色財經報道,Cardano的第一個去中心化穩定幣Djed將于1月在主網上線。Djed是一種與美元軟掛鉤的去中心化穩定幣,將存在于Cardano的Layer1區塊鏈上。Djed以加密資產而非法定貨幣為后盾,由一家名為Coti的公司與Cardano首席開發商InputOutput合作開發。穩定幣已經開發了兩年多。一旦推出,Cardano用戶將能夠使用ADA并將其用作抵押品來鑄造穩定幣。[2022/11/22 7:53:39]

returnAmount:執行交易后將收到的token數量。

distribution:一個uint256類型的數組,代表交易在不同DEX中的分布情況。例如,parts設置為100,成交額度的25%在Kyber的,成交額度的75%在Uniswap,那么?distribution?看起來是這樣的:。

目前1inch支持的交易所和排序如下:

注意:如果你想交易Eth而不是ERC20token,fromToken需要設置為特殊的值?0x0或?0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE。

美元指數DXY站上111,日內漲0.75%:金色財經報道,行情顯示,美元指數DXY站上111,日內漲0.75%。[2022/9/22 7:12:41]

getExpectedReturn函數的返回值非常重要,因為接下來需要利用它來執行實際的鏈上兌換操作。

swap-執行多DEX兌換交易

要執行鏈上token兌換交易,就需要使用合約提供的另一個函數swap。調用swap時,需要傳入我們之前從getExpectedReturn返回的數據,這個操作需要花費gas。如果要賣出的是ERC20token,那么還需要先授權1inch合約可以操作你持有的待賣出token。swap函數的定義如下:

function?swap(????IERC20?fromToken,????IERC20?toToken,????uint256?amount,????uint256?minReturn,????uint256?memory?distribution,????uint256?disableFlags?)?public?payable;

swap函數接收6個參數:

fromToken:待賣出token的地址

toToken:待買入token的地址

amount:待賣出token的數量

minReturn:期望得到的待買入token的最少數量

distribution:兌換交易拆分分布數組

parts:執行估算時的拆分數量,默認值是100

disableFlags:標記位,例如可設置禁用某個特定的DEX

開發環境搭建

我們將使用?ganache-cli分叉(fork)當前的區塊鏈狀態,并提前在1個地址上充值了很多DAI。在示例中,地址是?0x78bc49be7bae5e0eec08780c86f0e8278b8b035b。我們還將gaslimit設置的非常高,因此在測試過程中不至于出現outofgas的問題,也不需要在每次交易前估算gas。啟動命令是:

ganache-cli?-f?https://mainnet

async?function?waitTransaction(txHash)?{????let?tx?=?null;????while?(tx?==?null)?{????????tx?=?await?web3

我們在之前已經獲得了兌換比率,現在把代碼變的更可讀,定義1個getQuote函數,返回一個包含所有參數的對象。

async?function?getQuote(fromToken,?toToken,?amount,?callback)?{????let?quote?=?null;????try?{????????quote?=?await?onesplitContract

一旦我們得到了兌換token的比率,接下來需要授權1inch可以操作我們持有的token,ERC20token標準不允許在一次交易中向合約發送token并觸發下一個操作。我們寫了一個簡單的函數,調用approval函數,并使用?waitTransaction?等待交易確認。

function?approveToken(tokenInstance,?receiver,?amount,?callback)?{????tokenInstance

);

最后的執行結果看起來是下面這樣的:

我們用1000DAI換回來5.85ETH。

在這個過程中,你可能會遇到的這樣一個錯誤提示:“VMExceptionwhileprocessingtransaction:revertOneSplit:actualreturnamountislessthanminReturn”。這表示鏈上的報價已經更新。如果想避免這種情況發生,你可以在代碼中引入一個滑點,根據交易金額,將minReturn參數減小1%或3%。

總結

1inch提供了出色的鏈上DEX聚合實現,可以在一個交易內利用多個DEX實現最優的兌換策略。1inch的API使用也很簡單,只需要用getExpectedReturn估算兌換方案,然后使用swap執行兌換方案,就可以得到最好的兌換結果。你不必總是用eth交易,也可以交換2個ERC20token,甚至可以用weth交易。

Tags:KENTOKTOKETOKENAero TokenLife Token V2IRISTOKENDopple Exchange Token

火星幣
BTC:LOEx|12月25日行情研報:瑞波監管恐慌,對BTC影響有限

一、 據WhaleAlert數據,北京時間12月25日01:27,Tether公司在以太坊網絡新增發2億枚USDT.

1900/1/1 0:00:00
DEF:2020年度“ DeFi 大狂歡”總結 下一年度的新方向又在哪里?

原文標題:2020年度“DeFi大狂歡”總結下一年度的新方向又在哪里?上周的年末總結提到,今年圈內的主題,可以說只有兩個:一個是BTC?,一個是DeFi.

1900/1/1 0:00:00
COIN:關于12月29日幣贏CoinW全平臺停服優化升級的公告

親愛的CoinW用戶: 為了提升服務質量,進一步優化您的交易體驗,幣贏CoinW定于2020年12月29日6:00(UTC8)對平臺進行系統升級,本次預期升級時長為約為8h.

1900/1/1 0:00:00
COI:Filecoin/FIL未來的價格靠什么去支撐?

有人說,filecoin將成為“之下一代比特幣”,創造財富神話!在主網上線之后的幾個小時之內,fil貨幣的價格從零飆升到200多美元,這在歷史上也是罕見的.

1900/1/1 0:00:00
FILDA:Filecoin挖礦與二級市場買FIL幣的區別在哪?

IPFS現在每一天都在被越來越多的人所關注,看著Fil的熱度如此之高,很多人都想參與進來分一杯羹,很多人就猶豫了,到底是參加挖礦好呢還是炒幣.

1900/1/1 0:00:00
COS:請勿錯過 2020年Cocos-BCX最后一場壓軸AMA

2020年彈指一揮間,留給我們最大的感觸是活著。從2020年1月疫情爆發,2月疫情加重,5月有所緩解,再幾個月期間的反反復復,再到如今當下疫情仍未徹底解決.

1900/1/1 0:00:00
ads