
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
-
订单取消或完成。
比推快讯
更多 >>- MOVE 24 小时涨近 40%,市值升至 4.05 亿美元
- 美股走高,纳指现涨0.7%
- 美联储古尔斯比:如果关税影响消失了,我们应该继续降息
- 国际油价持续走低,美油日内下跌 5%
- 特朗普与美防长及参谋长联席会议成员在战情室会面
- 市场消息:美军飞机从沙特空军基地起飞
- 卡塔尔方面称美军基地遭袭未造成人员伤亡
- 中东地区所有美军基地响起警报
- 美国白宫:已获悉并密切关注针对卡塔尔乌代德基地的潜在威胁
- 伊朗确认袭击美国卡塔尔乌代德基地
- AXIOS网站记者Barak Ravid:以色列官员称,伊朗向美国卡塔尔基地发射了6枚导弹
- 外媒:伊朗准备在未来数分钟内向美国基地发射导弹
- 华尔街日报:伊朗正将其导弹发射器部署就位
- AXIOS:特朗普正准备应对伊朗袭击中东美军基地,回应取决于伊朗报复的规模
- 加密风投基金 Frachtis 已完成 2000 万美元募资
- 特朗普:美核潜艇发射 30 枚“战斧”导弹袭击伊核设施,全部命中目标
- CZ 回应 BNB 市场扩展,强调 BNB 与 Binance 无直接关联
- 外媒:伊朗对美国袭击的报复“极有可能”在几小时后发生
- 数据:今日美国比特币 ETF 净流入 131 枚 BTC,以太坊 ETF 净流出 7,049 枚 ETH
- 伊朗或数小时内袭击美军设施,比特币短线下跌 0.25%
- 某交易员清仓 ETH 多单获利 127 万美元,随后以 40 倍杠杆做空 BTC
- 伊朗希望美国付出“直接”代价,估计战争持续两年
- Newton Protocol 公布代币经济学:总供应量 10 亿枚,初始流通为占比 21.5%
- 以色列国防军发言人:以色列将在未来几天内攻击伊朗的军事基础设施
- 以太坊网络 Gas 费升至 25 gwei
- 特斯拉涨幅扩大至 8%,Circle 涨幅扩大至超 15%
- 美联储理事暗示:或将支持 7 月降息
- Newton Protocol(NEWT)已成为币安 HODLer 空投第 24 个项目
- 美元指数 DXY 短线下挫 20 点,报 98.92
- 美联储理事:是考虑调整政策利率的时候了
- 美股 Circle 涨超 9%,再创历史新高
- CZ:还有其他几家公司在准备储备 BNB 金库,他们均与币安无关
- Circle 总市值超越 USDC
- 工信部等九部门:到 2027 年黄金资源量增长 5%~10%,黄金、白银产量增长 5%以上
- 特朗普喊单,呼吁压低油价
- 多名前对冲基金高管计划募资 1 亿美元建仓 BNB,打造 BNB 财政策略公司
- 以太坊市值近三日蒸发超 350 亿美元,相当于三个洛杉矶湖人队
- 上市汽车设计公司 ECD 获得 5 亿美元股权融资,用于建立比特币储备
- 美股开盘,三大指数涨跌不一
- 美股 Fiserv 盘前涨 5.56%,市值升至 905.83 亿美元
- 欧洲央行行长拉加德:欧盟立法者应为数字欧元铺平道路
- Blueprint Finance 宣布完成 950 万美元融资,Polychain Capital 领投
- 消息人士:伊朗最快在一两天对美军进行报复
- 巴西上市公司 Méliuz 斥资 2861 万美元购入 275.43 枚比特币
- 美国确信伊朗核设施已彻底摧毁
- 美股盘前 Eyenovia 涨 4.51%,市值升至 1213.66 万美元
- DeFi 基础设施公司 Veda 完成 1800 万美元融资,CoinFund 领投
- 纳斯达克上市公司 Eyenovia 宣布完成 5000 万美元私募,并购买超过 100 万枚 HYPE 代币
- Anthony Pompliano 宣布 10 亿美元合并成立 ProCap Financial,拟打造比特币原生金融平台
- Nano Labs 拟申请港元及离岸人民币稳定币相关牌照