買以太坊 買以太坊
Ctrl+D 買以太坊
ads

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

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

Soramitsu與東南亞、日本開發數字貨幣跨境支付:金色財經報道,區塊鏈開發商Soramitsu參與了一個新項目,旨在實現柬埔寨、其他東南亞國家和日本之間的支付。它是柬埔寨Bakong項目的開發商,該項目創造了一種準中央銀行數字貨幣。新的Mutsumi項目將使用Bakong和穩定幣來支持日本中小企業通過電子商務向東南亞客戶銷售商品和數字服務。

數字化轉型公司 VIVIT 將負責運營該合資項目,多摩大學也參與其中。 它將利用柬埔寨使用的技術有效創建“Bakong經濟區”,使日本中小企業能夠進入大型離岸市場,計劃于2024年底啟動。[2023/8/8 21:32:07]

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

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

授權交易所使用你的token

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

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

Brave推出圖像和視頻搜索引擎Brave Search:金色財經報道,專注于隱私的搜索引擎和瀏覽器制造商Brave宣布推出自己的隱私保護圖像和視頻搜索Brave Search。該公司解釋說,這意味著用戶在想要圖像或視頻搜索結果時將不再需要離開Brave,因為結果現在將直接從Brave Search自己的獨立索引提供。

Brave曾在4月份宣布將不再使用Bing的索引,該索引此前占所有查詢結果的7%。Brave表示,圖像和視頻搜索功能已經開發了幾個月,其結果現在也將通過最近推出的Brave Search API提供。[2023/8/4 16:17:43]

getExpectedReturn()

swap()

getExpectedReturn-估算最佳兌換方案

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

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

比特幣全網未確認交易數量為21329筆:金色財經報道,BTC.com數據顯示,目前比特幣全網未確認交易數量為21329筆,全網算力為267.24 EH/s,24小時交易速率為3.43交易/s,目前全網難度為34.09 T,預測下次難度上調9.68%至37.40 T,距離調整還剩3天6小時。[2023/1/13 11:09:33]

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

這個方法接收5個參數:

fromToken:當前擁有的token的地址

toToken:要交換的token的地址

Nickelodeon: Rugrats & Hey Arnold! (ETH)系列NFT交易額激增 24小時排名達OpenSea第一:金色財經消息,據OpenSea數據顯示,Nickelodeon: Rugrats & Hey Arnold! (ETH)系列NFT近24小時交易額為1031.96ETH,24小時交易額增漲達11775.3%。近24小時交易額排名位列OpenSea第一。[2022/7/21 2:27:01]

amount:想要交換的token數量

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

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

這個方法有2個返回值:

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

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

Tether:USDT穩定性來自贖回設施而非交易價格:金色財經報道,Tether 官方網站發文《USD? – The Blueprint for Private Stablecoins》,文章指出 Tether 的抵押穩定幣 USDT 在動蕩的市場條件下仍能保持其穩定性,因為 USDT 的穩定性來自其贖回設施(經過驗證用戶將 USDT以 1:1 的比例兌換美元),而不是其在交易所的交易價格。如果 USDT 價格在主要交易所偏離 1 美元,就像 5 月發生的那樣,這并不意味著 USDT 已經失去了掛鉤。每當 USDT 在交易所偏離 1 美元時,Tether 都會繼續以 1:1 的比例快速將 USDT 兌換成美元,并且對贖回規模沒有限制,而這正是 Terra/Luna 失敗的原因,這個教訓不需要再學習了。[2022/6/16 4:32:50]

目前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:TOKKENTOKENTOKEIncome Island TokenGP TokenBXX TokenReelToken

以太坊交易
TBCC:談幣先鋒:昨日比特幣大幅回撤調整,調整完畢今日繼續走上行。_ethm幣三年后價格1元

比特幣走高后開啟回調,上行趨勢開始逐漸走回落,這也是多日以來,回落最多,跌幅最大的一次,可以說是為了更好的沖擊3萬,打下最好的基礎,此次回撤也屬預料之中,我想是破3萬發生一波回撤.

1900/1/1 0:00:00
比特幣:灰度概念開始輪動太子BCH_togetherbnb薇拉能上嗎

◆BTC?比特幣今天一根大陽線沖高28500附近,沒能延續就開始回落,該位置形成當前的阻力位。這兩天應該還還上攻一波就繼續回落,回踩到5日線25000附近,如果極端一點回到24000左右.

1900/1/1 0:00:00
BTC:看跌還是看漲?不如先來看看比特幣這四個關鍵價格指標_AYS

多個比特幣價格指標顯示,即使比特幣跌破2.2萬美元,證券交易員仍然看好比特幣。隨著比特幣價格在12月11日測試了17580美元的低點,也有一些分析師發布了看跌預期,但投資者仍然保持相對平靜.

1900/1/1 0:00:00
HBT:霍比特關于HBTC Chain節點競選投票的公告_HBTC

尊敬的社區用戶: HBTCChain主網目前正按預期進度開發中,測試網測試工作有序推進,我們預計在2020年12月完成主網節點競選及上線準備工作.

1900/1/1 0:00:00
PROT:老山說幣:比特幣沖高回落,后續走勢及操作思路_ethereal寓意之類的詞

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

1900/1/1 0:00:00
HomiEx(紅米交易所)將于 12月28日14:00 上線FAR

親愛的用戶: 紅米交易所將上線FAR/USDT交易對,具體時間安排如下。開放交易時間:12月28日14:00(UTC8)?開放充值時間:12月28日14:00(UTC8)?開放提現時間:12月2.

1900/1/1 0:00:00
ads