Uniswap V4是如何实现限价单交易的?
昨日,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 注:布尔值是 Python 中一种取值仅能为真或假的数据类型,它赋予了编程语言在逻辑上表达真或假的能力。如果没有这种能力,很多功能将无法被实现。
7. recoverToken 函数:这个函数允许合约的拥有者在特殊情况下从合约中取回 token。例如,当由于某种原因订单未被执行,用户可以通过这个函数来找回他们锁定在合约中的 token。
有了 Hooks,限价单的运行机制就很明显了:
-在 Hooks 合约上下订单;
-Hooks 合约将你的订单添加到其 V4 交易上;
-根据自定义或托管预言机,当价格到限价单价格时,会触发 Hooks 自动执行 Swap 操作,并调整流动性;
-Hooks 自动 remove order
-订单取消或完成。
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
LuBian 矿池遭黑客攻击被窃取巨额比特币事件技术溯源分析报告作者:国家计算机病毒应急处理中心2020年12月29日,LuBian矿池发生一起重大黑客攻击事件,总计127272.06953176枚比特币(当时市值约35亿美元,现市值已达150亿美元)被攻击者窃取
-
为什么加密市场情绪突然变得如此悲观?原文标题:Why Did Crypto Sentiment Get So Bearish? 原文作者:Jack Inabinet,Bankless 原文编译:Peggy,BlockBeats编者按:在
-
宏观解读:鲍威尔的“浓雾驾驶”与金融“饥饿游戏”原文标题:"Driving in Fog” and the Financial Hunger Games 原文作者:@arndxt_xo 原文编译:叮当,Odaily 星球日报大幅回调与量化宽松(QE
-
DeFi 的自然选择:适者生存作者:cryptographic 编译:Block unicorn前言 自然是冷酷无情的,它没有情感,没有感觉,没有依恋,它只进行着一场永无止境的考验:这种设计是否值得生存。 金融市场亦是如此,随着时
-
MEET48:从造星梦工厂走向链上奈飞 —— AIUGC 与 Web3 重塑文娱经济
Web3文娱正从泡沫退潮迎来重启时刻,以MEET48为代表的项目正通过AI Web3 UGC技术融合重塑内容生产与价值分配范式,构建可持续代币经济体系,从应用走向基础设施,致力成为"链上奈飞"并推动W
-
BitMEX Alpha:这次也一样,加密周期不会失效“每当我们听到‘这次不一样’时,周期最终都证明‘并无不同’。” 每隔四年,比特币市场都会遵循一个极其一致的节奏,而塑造这个节奏的是一个比特币的原生代码:挖矿奖励减半。大约每 210,000 个区块,网
-
利润压缩下的矿企求生:Marathon 卖币求生,行业抛售潮暗涌原文作者:Gino Matos 原文编译:Luffy,Foresight NewsMarathon 的第三季度财报中,暗藏着一项明确的政策转变。公司宣布,今后将出售部分新挖出的比特币,以支撑运营资金需
-
Geth 源码系列:交易设计及实现1. 交易简介 以太坊执行层可以看作是一个交易驱动的状态机,交易是唯一修改状态的方式。交易只能由 EOA 发起,并且会在交易中附加私钥的签名,交易执行之后就会更新以太坊网络的状态。以太坊网络中最简单的
- 成交量排行
- 币种热搜榜
OFFICIAL TRUMP
Pepe
泰达币
比特币
以太坊
USD Coin
Solana
大零币
瑞波币
First Digital USD
币安币
Filecoin
狗狗币
Internet Computer(Dfinity)
达世币
ZEN
AR
OKB
BSV
ETC
EOS
MINA
CFX