比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads

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

律師以準備文件過多為由申請暫時釋放SBF:金色財經報道,在8月25日向美國紐約南區地方法院提交的文件中,SBF的法律團隊表示,檢察官提出的允許FTX前首席執行官Sam Bankman-Fried在審判前獲取發現材料的準備時間是不夠的,因為美國司法部提供了約400萬頁的發現材料,還有“數百萬頁的文件和數TB的數據”供SBF審查以進行刑事審判。律師們表示,除了暫時釋放SBF以外,任何措施都無法妥善解決這些問題,也無法保障SBF參與自己辯護的權利。[2023/8/26 10:03:50]

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

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

授權交易所使用你的token

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

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

getExpectedReturn()

安全團隊:JIM2.0代幣存在后門功能,請盡快移除WETH/JIM2.0交易對中資產:7月17日消息,據Beosin Alert監測,以太坊上的JIM2.0代幣存在后門功能,允許其合約所有者無限鑄幣。建議用戶盡快移除WETH/JIM2.0交易對中的資產。[2023/7/17 10:59:24]

swap()

getExpectedReturn-估算最佳兌換方案

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

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

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

FTX相關地址將4817萬美元轉入Alameda,部分已流入幣安和Coinbase:金色財經報道,據鏈上觀察員@JieData_Com數據監測,今日FTX相關地址(0x77f、0x97f 開頭)的資金開始流出,共計4817萬美元轉入Alameda Research。

其中,0x77f開頭地址已轉移2854萬枚USDC到0x2553開頭新地址,轉移1962萬枚USDT到0xad6開頭地址,部分已轉入幣安和Coinbase。[2023/3/14 13:02:43]

這個方法接收5個參數:

fromToken:當前擁有的token的地址

toToken:要交換的token的地址

amount:想要交換的token數量

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

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

杜均:CZ面對監管的態度是一個巨大挑戰:金色財經報道,據火幣聯合創始人杜均在社交媒體披露,ABCDECapital8月正式對外投資,目前已經領投7個項目,覆蓋安全、數據、社交、ZK、NFT等賽道,如@MetatrustLabs、@ScopeProtocol等。

今天Binance占據了75%的市場份額,無論愿意與否,CZ面對監管的態度代表了整個行業的態度,對于CZ這是一個巨大的挑戰。FTX事件的影響力遠超預期,最近幾年傳統機構入場最大功臣一個是Coinbase、一個是Circle、另外一個就是FTX。FTX的暴雷,讓傳統老錢和政府機構對于Crypto世界的混沌無序害怕甚至厭惡,未來很長一段時間里政府不會有更寬松的政策支持Crypto的發展與創新,主權基金也不會把錢放進來。[2022/12/13 21:41:32]

這個方法有2個返回值:

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

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

TokenPocket官網遭受異常流量攻擊,正緊急維護:10月11日,據官方公告,TokenPocket 官網遭受異常流量攻擊,技術團隊正在進行緊急維護。技術維護期間,TokenPocket 網站將不能正常訪問,用戶資產安全不會受到影響。官方提醒用戶提高警惕,注意識別欺詐風險。[2022/10/11 10:31:06]

目前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:TOKENTOKKENTOKEmytoken幣怎么挖BXX TokenLightHouse TokenQToken

比特幣最新價格
APE:支點國際站關于上線UNI幣種USDT合約公告

尊敬的客戶: 平臺已上線UNIUSDT本位永續合約并開放交易。UNI的USDT本位永續合約是正向合約,采用穩定幣USDT作為保證金.

1900/1/1 0:00:00
ETH:老山說幣:ETH開啟大幅補漲 市場多頭情緒濃烈

各位朋友們,你們好,我是老山說幣。在這個市場,如果你處于一直虧損的狀態,不如換個環境。也許正是你的一次改變,會給你帶來不一樣的結果.

1900/1/1 0:00:00
以太坊:馮楚昊:上漲中的回撤只是調整 你以為的結束可能只是開始

縱觀整個上周走勢,可謂是多頭的又一輪狂歡,從調整到破位上漲,6000余點的漲幅也僅僅用了一周的時間,日線的三連陽又一次開啟了多頭牛市,30000也變得近在咫尺,雖然隔日價格沖高大幅回撤.

1900/1/1 0:00:00
BTC:我的投資經歷:尋找自己的投資風格

我體驗了一段時間的技術分析之后,并沒有達到自己預期的效果,并且在這個體驗的過程中越來越對這個方式比較抗拒,于是我開始尋找其它的途徑.

1900/1/1 0:00:00
以太坊:技術周刊|以太坊2.0合約存入ETH突破200萬枚

本周技術周刊包含以太坊、波卡、Filecoin、BSN網絡的技術類新聞。 以太坊網絡 Sigma?Prime發布以太坊2.0客戶端Lighthousev1.0.5版本據官方消息,以太坊2.0客戶.

1900/1/1 0:00:00
元宇宙:巴德言幣:12.26ETH行情解析,切勿追漲殺跌!

各位老鐵大家好,我是你們的朋友巴德。跟著我的客戶都是做了很久的,不是我帶他們收獲了多少,而是我用心在指導,毫無保留的教技術,經常熬夜盯盤。深夜告知客戶出場或進單.

1900/1/1 0:00:00
ads