如何在 Uniswap V4 中构建自定义 Hooks
Uniswap 是最受欢迎的 DeFi 协议之一,用于交易数字资产。Uniswap 从早期版本到 Uniswap v4 的演变中,经历了重大变化和改进。Uniswap v3 引入了集中流动性功能,允许流动性提供者选择价格范围,从而获得更高的费用。最新的 Uniswap v4 具有单例架构,增强了流动性管理和灵活性。
本详尽指南探讨了 Hooks 的概念以及开发人员如何在 Uniswap V4 中实现自定义 Hooks。
Hooks 是智能合约,为 Uniswap v4 中的流动性池提供额外功能,为开发人员提供定制能力。这些功能可以包括动态费率调整、链上限价订单以及与链上或 acles 的集成。
它类似于插件系统,将不同的操作插入到池中。这使开发人员可以部署具有自定义 Hooks 的池,这些 Hooks 与其他 Uniswap 池一起工作。
Hooks 可以在主要生命周期操作之前和之后执行,例如池创建、提供流动性和兑换。Uniswap v4 支持 hook 回调,例如:
通过利用这些 Hooks,开发人员可以向流动性池引入独特功能和优化。
以下是它的简单示例:
本教程将指导你创建一个用于 Uniswap V4 的自定义 Hook,该 Hook 限制了一天中特定时间段的交易。要在 Uniswap V4 中创建自定义 Hook,我们将从 Uniswap Foundation 提供的模板开始, 这里 。在开始之前,请确保你已在系统上安装了 Foundry。让我们开始吧!
git clone https://github.com/uniswapfoundation/v4-template.git
cd V4-template
git init
forge install
上述命令安装了辅助合约,如 v4-core 和 v4-periphery,用于构建 Hooks。
通过扩展来自 v4-periphery 存储库的 BaseHook 合约来实现任何 Hook。getHookPermissions
定义了哪些 Hooks 是活动的。在这种情况下,只有在兑换期间才执行 beforeSwap
函数。
现在,根据 Hook 调用,我们需要实现功能。我们将使用变量 openingTime
和 closingTime
指定交易时间。在发生任何兑换之前,Hook 将执行基于时间的限制,确保兑换仅在特定时间发生,否则将撤销兑换交易。以下是完整代码:
这一步至关重要,这就是像 BuildBear 这样的平台的重要性所在。BuildBear 测试网络为开发人员提供了先进的测试功能,具有独特的插件系统。你可以通过将其部署到 BuildBear Sandbox 来测试 Hooks 的整体功能,就像在主网络上一样。
要部署 Hook 合约,我们需要使用 CEATE2 在预定地址部署,并且 Hook 合约必须在地址中编码特定标志。在环境文件中设置如下:
# Hook Flags
BEFORE_SWAP=true
AFTER_SWAP=false
BEFORE_ADD_LIQUIDITY=false
AFTER_ADD_LIQUIDITY=false
BEFORE_REMOVE_LIQUIDITY=false
AFTER_REMOVE_LIQUIDITY=false
BEFORE_INITIALIZE=false
AFTER_INITIALIZE=false
BEFORE_DONATE=false
AFTER_DONATE=false
部署脚本如下:
如果你是 BuildBear 的新手,请查看这个 快速指南。在这里,我们将在 Sepolia 网络上部署它,请参考 poolManager 的部署地址这里。
在你的 BuildBear 仪表板的插件选项中,安装 SolidityScan 插件,以检查漏洞并获取详细的安全报告。
Sourcify 插件 是默认安装的,将用于智能合约验证。
使用以下命令部署和验证你的 Hook 合约。确保用你的实际 BuildBear RPC URL 和私钥替换占位符。还要确保你的帐户中有足够的代币或从水龙头获取。
forge script script/DeployHook.s.sol --rpc-url https://rpc.buildbear.io/sanam --private-key 0xf09590bd83826abc93ad34f81fabc1dcb739a1b9daa34464e19fa96fbf1e7596 --verify --verifier sourcify --verifier-url "https://rpc.buildbear.io/verify/sourcify/server/sanam" -vvvv --broadcast --slow
转到资源管理器,查看你的 Hook 在概述选项卡中的安全状态和漏洞计数,如下图所示:
Uniswap v4 通过优化流动性管理和交易功能推进了 DeFi 领域。新的 Hooks 功能提供了定制性和增强功能,极大地有利于去中心化交易所(DEX)和自动做市商(AMM)。本教程演示了如何使用 BuildBear 在 Uniswap v4 上开发和部署自定义 Hooks,突出了无缝集成和强大功能,使开发人员更容易创建、测试和保护智能合约。
BuildBear 是专为 DApp 开发和测试量身定制的平台。开发人员可以在各种区块链网络上构建个性化的私人测试网络沙盒。在 BuildBear 上,无限制地铸造原生和 ERC20 代币及快速的交易时间(不到 3 秒!),极大地增强了 DApp 开发生命周期。该平台配备了用于实时测试和调试的工具和插件,确保开发人员可以轻松跟踪复杂的区块链交易。
关注我们: Twitter | LinkedIn | Telegram | GitHub
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!