Uniswap V4是如何实现限价单交易的?
V4 版本的新功能 Hooks 使交易者能够部署更复杂的交易订单,其中就包括限价单交易。
昨日,Uniswap 发布了未来即将推出的 Uniswap V4 版本代码草稿,相比 V3 出现了很多创新点。其中,最引人瞩目的一点就是 V4 版本出现了限价单交易。大家对于 Uniswap V4 如何实现限价单交易比较好奇,接下来为大家深入分析一下 Uni 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 路由合约执行时会被调用。该函数将检查交易的输入和输出金额是否符合预期,并返回适当的布尔值。
BlockBeats 注:布尔值是计算机编程语言中一种取值仅能为真或假的数据类型,它赋予了编程语言在逻辑上表达真或假的能力。如果没有这种能力,很多功能将无法被实现。
7. recoverToken 函数:这个函数允许合约的拥有者在特殊情况下从合约中取回 token。例如,当由于某种原因订单未被执行,用户可以通过这个函数来找回他们锁定在合约中的 token。
有了 Hooks,限价单的运行机制就很明显了:
-
在 Hooks 合约上下订单;
-
Hooks 合约将你的订单添加到其 V4 交易上;
-
根据自定义或托管预言机,当价格到限价单价格时,会触发 Hooks 自动执行 Swap 操作,并调整流动性;
-
Hooks 自动 remove order
-
订单取消或完成。
比推快讯
更多 >>- 中国台湾检方建议对ACE交易所诈骗案4名主要嫌疑人判处20年有期徒刑
- 香港交易所:收纳博时HashKey、华夏、嘉实比特币及以太币ETF为中央结算系统多柜台合资格证券
- 知情人士:惠理提交虚拟货币现货ETF申请后又主动退出
- 1亿枚 USDT 从 Tether Treasury 转移到 Bitfinex
- Optimism已修复其测试网的两个关键漏洞
- Arkham:与 Wisdomtree WBIT相关的钱包持有8900枚BTC,价值约 5.79 亿美元
- 纳指止步4周连跌,创去年11月以来最大单周涨幅
- DAI 单日链上转账金额达到 860 亿美元,创下历史新高
- 以太坊 Rollup 协议 Zircuit 拟于夏季启动主网,总锁仓价值已达25亿美元
- 美参议员警告用于交易儿童性虐待材料的加密活动有所增加
- 加密银行 Custodia Bank 就其美联储成员资格败诉一案提出上诉
- Yuga Labs裁员,专注于建立“更小、更灵活的加密原生团队”
- NFTfi基金会:NFTFI空投申领门户将从 4 月 30 日开放至 6 月 10 日
- dYdX Chain累计交易量突破1200亿美元
- Phoenix Wallet将从美国应用商店下架,Jack Dorsey称“感觉完全没有必要”
- 零知识 (ZK) 协议 Hinkal 完成140 万美元战略融资,估值 7000 万美元
- 姆爷Eminem取代马特·达蒙成为 Crypto.com 最新明星代言人
- 九只现货比特币ETF今日净减持2,987枚BTC,净流出约1.9亿美元
- Yuga Labs 聘请媒体资深人士 Won Kim 担任品牌合作主管
- 一巨鲸从3月1日至4月15日买入近2.5万枚BTC,价值达 16.8 亿美元
- Sam Altman、黄仁勋等科技巨头高管加入美国联邦人工智能安全委员会
- PENDLE 持仓第二巨鲸疑似在持有近一年后卖出 120 万枚 PENDLE ,预计获利 645 万美元
- 福克斯记者:马萨诸塞州参议员候选人John Deaton将提交法庭之友陈述,以支持Coinbase的上诉动议
- Azuki将Azuki #723捐赠给Arbitrum DAO财库
- 链上借贷协议Venus Protocol已于以太坊主网部署DAI市场
- 花旗现预计美联储将于7月降息,2024年共降息100个基点
- 零信任DePIN网络Staex完成战略轮融资,Moonrock Capital参投
- 灰度向Coinbase Prime等地址转入约1811.1枚BTC
- 比特币波动指数昨日降至60.53,日跌幅8.07%
- 美国利率期货合约交易员预计美联储九月首次降息的可能性增加
- 稳定币公司OpenDelta完成250万美元Pre-Seed轮融资
- 美国3月核心PCE物价指数年率2.8%,预期2.7%
- Web3游戏L3E7完成1000万美元融资
- 芝加哥期权交易所拟将数字资产衍生品业务整合到其全球衍生品和结算业务中
- 某鲸鱼地址将3527枚ezETH PT和3300枚ETH存入Zircuit
- Quantix Capital投资NFA Labs 1000万美美元
- Uniswap基金会向Auditless拨款120万美元以创建Protocol Grants Program
- Arthur Hayes:美财长耶伦或将推出天量流动性注入计划,加速加密牛市回归
- RWA协议The Conlony完成新一轮融资,TechStars等参投
比推专栏
更多 >>观点
项目
比推热门文章
- 中国台湾检方建议对ACE交易所诈骗案4名主要嫌疑人判处20年有期徒刑
- 香港交易所:收纳博时HashKey、华夏、嘉实比特币及以太币ETF为中央结算系统多柜台合资格证券
- 知情人士:惠理提交虚拟货币现货ETF申请后又主动退出
- 【比推每日新闻精选】与 Wisdomtree WBIT相关的钱包持有8900枚BTC,价值约 5.79 亿美元;DAI 单日链上转账金额达到 860 亿美元,创下历史新高;芝加哥期权交易所拟将数字资产业务整合到其全球衍生品和结算业务中
- 1亿枚 USDT 从 Tether Treasury 转移到 Bitfinex
- Optimism已修复其测试网的两个关键漏洞
- Arkham:与 Wisdomtree WBIT相关的钱包持有8900枚BTC,价值约 5.79 亿美元
- 【比推每日市场动态】再测6.4万美元,BTC无聊走势或将持续3到6个月
- 纳指止步4周连跌,创去年11月以来最大单周涨幅
- DAI 单日链上转账金额达到 860 亿美元,创下历史新高