比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 火必APP > Info

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

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的智能合約是開源的。

NMR在多個平臺出現價差,近50%交易量來自韓國交易所:9月2日消息,Coingecko行情顯示,NMR在多個平臺出現價差,其中Bithumb溢價最高,暫報22.65 USDT。此外,超過50%的NMR交易量來自韓國交易所Upbit以及Bithumb。過去24小時,NMR漲幅超過85%,暫報20.5 USDT。[2023/9/3 13:14:05]

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

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

授權交易所使用你的token

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

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

getExpectedReturn()

swap()

getExpectedReturn-估算最佳兌換方案

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

Core DAO宣布推出2億美元生態基金:金色財經報道,Core DAO 宣布推出 2 億美元的生態系統基金,旨在加速開發基于Core layer1 區塊鏈的去中心化應用程序和協議?。該基金得到了加密貨幣交易所 Bitget 的支持和 MEXC 的支持。

Core DAO 的生態系統基金聲稱通過不采用基于贈款的系統,在該系統中,項目獲得資金支持的主要要求是承諾建立在特定協議上。相反,生態系統基金將激勵每個項目實現預先商定的定制基準,為核心社區提供有形價值。[2023/4/18 14:10:57]

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

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

ZigZag創始人提議交易額達10萬美元用戶可獲取300 ZZ空投獎勵:1月29日消息,ZK Rollup訂單簿DEX ZigZag創始人Kedar發文表示,首個提案擬定交易額達到10萬美元用戶可獲取300ZZ空投獎勵。(共有50萬個交易用戶,有3000萬個ZZToken可供空投)快照時間大概率為2022年12月31日。交易用戶空投將控制在ZZ總量的30%范圍內。到空投期結束時,社區持有的ZZ Token數量將超過投資者和團隊持有的ZZ Token。Gitcoin捐助者將在未來的空投中得到補償。[2023/1/29 11:34:53]

這個方法接收5個參數:

fromToken:當前擁有的token的地址

toToken:要交換的token的地址

amount:想要交換的token數量

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

以太坊轉賬成本持續下降,Gas費用觸及19個月低點:7月3日消息,以太坊的平均Gas費用在2022年7月2日觸及19個月以來(2020年11月12日)低點,為0.0016 ETH(約合1.67美元)。

2016年7月至2017年5月期間,以太坊網絡費用在0.01美元至0.10美元之間。在2021年5月12日,平均費用達到了每筆交易69美元。

在2021年8月至2022年2月期間,每次轉賬的費用低于20美元。在這段時間里,每筆交易的費用有時會達到30美元、40美元或50美元。2022年5月1日,由于當天熱門的NFT銷售事件,平均網絡費用躍升至196美元。

上述費用僅適用于發送ETH,而OpenSea合約、DEX兌換或ERC20轉賬可能會花費更多。(Bitcoin.com)[2022/7/3 1:48:00]

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

這個方法有2個返回值:

The Sandbox美國CEO:即使處在”加密寒冬”,人們仍涌向Web3:金色財經報道,The Sandbox美國地區 CEO?Mathieu Nouzareth?在?NFT?年度行業盛會NFT.NYC大會中接受采訪時表示,即使處在\"加密寒冬\",人們仍涌向 Web3。我們希望成為虛擬世界中的曼哈頓,聚集令人興奮的品牌和藝術家,但我們的愿景并不是取代現實。Mathieu Nouzareth 在談到市場崩盤時表示:The Sandbox 并沒有切實受到影響,我認為原因是因為我們是一款游戲,游戲受宏觀經濟環境的影響較小,人們來是因為它真的很有趣,任何人都可以享受它。[2022/6/22 4:43:58]

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

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

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

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

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:TOKEKENTOKTOKENfruittokenEurocoinTokenCharix TokenTransparent Token

火必APP
數字貨幣中的黃金BTC,為什么會吸引更多的資金涌入?_區塊鏈

1.一年內價格漲近5倍,比特幣漲勢引人注目自從BTC突破20000大關之后,BTC就備受業界的關注,在12月16日晚BTC突破了20000大關之后BTC的勢頭依舊不減.

1900/1/1 0:00:00
黃凌波:解讀 2021 分布式資本投資策略與布局_EFI

黃凌波認為2021年區塊鏈領域大致有三個投資機會:核心生態發展、DeFi與增量市場。原文標題:《黃凌波:分布式資本2021年的投資策略與布局|非共識大會》演講:黃凌波,分布式資本合伙人12月23.

1900/1/1 0:00:00
調查:Findora 巨額公募開啟 斯坦福明星被疑“中國版壞血”_NDO

一位神秘的中國女子,獲得斯坦福大佬神奇背書。大佬突然因癌癥去世,斯坦福頂級技術團隊集體出走,雙方各執一詞,互相攻擊起訴,光環開始崩塌.

1900/1/1 0:00:00
社科院金融所副所長:短期內不宜對央行數字貨幣的作用過于樂觀_數字貨幣

??注:本文為筆者在中國宏觀經濟論壇宏觀經濟熱點問題研討會上的發言實錄,已經本人審閱。轉載請務必注明出處.

1900/1/1 0:00:00
HomiEx(紅米交易所)將于 12月25日18:00 上線USDC、TUSD、PAX

親愛的用戶: 紅米交易所將上線USDC/USDT、TUSD/USDT、PAX/USDT交易對,具體時間安排如下.

1900/1/1 0:00:00
螞蟻鏈在中國信通院的測試中同比提升 40%,CTPS 突破 3.3 萬_TPS

鏈聞消息,在中國信息通信研究院最新發布的可信區塊鏈測試結果中,螞蟻鏈在4節點性能測試中取得第一名,較去年最好結果提升40%達到33,491CTPS.

1900/1/1 0:00:00
ads