menu-icon
anue logo
馬來西亞房產鉅亨號鉅亨買幣
search icon


區塊鏈

Uniswap V4是如何實現限價單交易的?

BlockBeats 律動財經


昨日,Uniswap 發布了未來即將推出的 Uniswap V4 版本代碼草稿,相比 V3 出現了很多創新點。其中,最引人矚目的一點就是 V4 版本出現了限價單交易。大家對於 Uniswap V4 如何實現限價單交易比較好奇,接下來為大家深入分析一下 Uni V4 版本如何實現限價單交易。

cover image of news article
律動財經圖片

相關閱讀:《關於 Uniswap V4,你需要知道的一切》

關於 Hooks

根據 Uniswap 官方白皮書,限價單交易隸屬於其新功能的 Hooks 之下,所以是依靠 Hooks 機制來實現鏈上限價單交易。


Hooks 是 Uniswap V4 的核心機制,指的是在資金池生命周期的某個特定時刻運行的代碼片段。與之前的 Uniswap 版本相比,新版本資金池的可定製程度更高,因此無論是創建池子,還是 LP(流動性提供者)添加/移除流動性,抑或是在 swap 之前/後,Hooks起到的作用都非常重要。

在 DeFi 中,Hooks 是一種編程概念,指的是一組用於在智能合約執行特定操作時自動觸發的函數或代碼片段,可用於在特定事件發生前、後或期間執行自定義邏輯。Hooks 為開發者提供了一種在智能合約的不同階段執行自定義邏輯的方式。通過使用Hooks,開發人員可以實現更靈活、可定製和可擴展的 DeFi 應用程序。

例如,Hooks可以用來創建具有根據市場條件變動的動態交換費用的資金池,而不是預先設置和靜態的交換費用。同時,Hooks還使交易者能夠下更複雜的訂單,例如限價訂單或 TWAP(時間加權平均價格)訂單,這些訂單會在一定時間內買入/賣出一定數量的 Token。

不僅如此,Hooks 還允許以不同的方式使用 Uniswap 的流動性。這類似於 Balancer 的 Boosted Pools,超出範圍的流動性可以存入其他協議,例如借貸者,以獲得額外的收益。

V4 限價單機制

通過分析 Uniswap V4 的限價單 LimitOrder.sol 的示例合約代碼,得出的限價單運行流程大概如下:

1. 導入庫和合約:引入了相關的庫,如 SafeERC20 和 IERC20,以及用於與 Uniswap V4 交互的合約,如 IUniswapV4Router02。

2. 定義變量:

- tokenIn:交易中的輸入的 token;

- tokenOut:交易中的輸出的 token;

- totalAmountIn:交易中輸入的 token 總量;

- minAmountOut:交易中用戶預期的最小輸出 token 量。

3. 定義限價單:

- OrderExecuted:當限價訂單成功執行時觸發的 token 價格。

4. 構造函數:在部署此合約時,需要提供以下參數:

- _router:Uniswap V4 的路由合約地址;

- _tokenIn:輸入 token 的合約地址;

- _tokenOut:輸出 token 的合約地址;

- _totalAmountIn:輸入 token 的總量;

- _minAmountOut:期望的最小輸出 token 量;

- _deadline:限價訂單的截止時間。

5. executeOrder 函數:該函數用於執行限價訂單

首先,該函數確保當前區塊的時間戳早於截止時間,然後計算交易的實際輸出金額。接下來,它會檢查實際輸出金額是否大於或等於最小輸出金額。如果滿足條件,它將使用 SafeERC20 庫安全地將輸入 token 從用戶地址轉移到合約地址,然後執行交易。最後,將輸出 token 發送回用戶,並觸發 OrderExecuted 事件。

6. onUniswapV4Swap 函數:這個函數是一個回調函數,當交易被 Uniswap V4 路由合約執行時會被調用。該函數將檢查交易的輸入和輸出金額是否符合預期,並返回適當的布爾值。

7. recoverToken 函數:這個函數允許合約的擁有者在特殊情況下從合約中取回 token。例如,當由於某種原因訂單未被執行,用戶可以通過這個函數來找回他們鎖定在合約中的 token。

有了 Hooks,限價單的運行機制就很明顯了:

-在 Hooks 合約上下訂單;

-Hooks 合約將你的訂單添加到其 V4 交易上;

-根據自定義或託管預言機,當價格到限價單價格時,會觸發 Hooks 自動執行 Swap 操作,並調整流動性;

-Hooks 自動 remove order

-訂單取消或完成。

原文連結

暢行幣圈交易全攻略,專家駐群實戰交流

▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群
不管是新手發問,還是老手交流,只要你想參與加密貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!

前往鉅亨買幣找交易所優惠

文章標籤



Empty