作者:@MrAndersonChen / 來源:https://twitter.com/MrAndersonChen/status/168128879842312601
翻譯:火火/白話區塊鏈
在花了一些時間閱讀#UniswapX的材料和代碼庫后,@MrAndersonChen 寫了進行一個推特來描述其背后的具體運行原理!希望對您有所幫助。
https://github.com/Uniswap/UniswapX/tree/main
簡而言之,UniswapX是一種路由器協議(routing),允許交易者在AMM之間進行交換。
該架構由幾個關鍵組件組成:交換器(Swapper)、填充器(Filler)、反應器(Reactor)和執行器(Excutor)。存儲庫中有一個清晰的體系結構圖表。現在按順序解釋一下。
1.交換器(Swapper)
#Swapper創建并簽署一個訂單,其中包含將輸入代幣交換為輸出代幣的指令,然后將簽名的訂單發送到 Filler。好處是什么呢?更好的價格,無gas交換,MEV保護,失敗交易無成本,甚至可以實現跨鏈交換。
2.填充器(Filler)
#Filler執行訂單并支付gas費。這涉及調用反應器的“execute()”并決定執行器。根據白皮書,Filler 可能是MEV搜索者,做市商或其他鏈上代理。
3.反應器(Reactor)
#Reactor是負責結算訂單的合同。它并沒有真正執行訂單,而是通過調用fill Contract的'reactor Callback'將其傳遞給執行者(也稱為fill Contract)。
https://github.com/Uniswap/UniswapX/blob/main/src/reactors/BaseReactor.sol
4.執行器(Excutor)
#Executor,實現一個策略來填寫訂單并將輸出代幣轉移給收件人。它能夠一次填寫多個訂單。
一個官方的例子是 SwapRouter02Executor.sol,它使用 swapRouter02 的簡單策略來完成訂單。此合約只能由某些特定的 Filler 調用,因為它會檢查 Filler 是否被列入白名單。
https://github.com/Uniswap/UniswapX/blob/main/src/sample-executors/SwapRouter02Executor.sol
5.小結
借助 UniswapX,routing 成為一個復雜且競爭激烈的網絡。任何人都可以按照接口(IReactor.sol 和 IReactorCallback.sol)構建自己的 Reactor 來創建新的訂單類型,或自己的執行器來創建新的訂單匹配策略。
無論如何,最終的受益者永遠是swapper。