运行时依赖
安装命令
点击复制技能文档
Hook 概述 通过委托 hook-builder 代理构建完整的 Uniswap V4 hook。处理整个开发生命周期:理解需求、确定 hook 标志、生成 Solidity 合约、生成 Foundry 测试、挖掘 CREATE2 地址并产生部署脚本。返回直接写入项目的生产就绪代码工件。
何时使用 激活以下用户请求: "构建 V4 hook" "创建限价单 hook" "构建动态费率 hook" "创建 TWAMM hook" "自定义 V4 hook" "在波动性期间收取更高费率的 hook" "构建将 LP 费用分配给 staker 的 hook" "创建具有 oracle 集成的 hook"
参数 参数 | 必需 | 默认值 | 描述 ---|---|---|--- behavior | 是 | -- | hook 行为描述(例如 "限价单"、"动态费率"、"TWAMM"、"oracle 基础定价") callbacks | 否 | 自动检测 | 如果用户知道,则为特定的 V4 回调(例如 "beforeSwap, afterSwap") constraints | 否 | -- | Gas 预算、安全要求或特定设计约束 chain | 否 | ethereum | 部署的目标链(影响 PoolManager 地址)
工作流程 从用户请求中提取参数:识别 hook 行为、任何明确提到的回调、约束和目标链。委托 hook-builder:调用 Task(subagent_type:hook-builder)并传入完整的上下文。hook-builder 代理将: 理解需求并确定所需的回调 将回调映射到 hook 标志并验证标志组合 生成扩展 BaseHook 的 Solidity 合约并附带 NatSpec 生成全面 Foundry 测试(单元测试、集成测试、边界测试、Gas 快照) 挖掘 CREATE2 盐以产生编码所需标志的地址 产生具有验证步骤的部署脚本 向用户呈现结果,包括: 写入的文件(合约路径、测试路径、部署脚本路径) hook 架构说明(其功能、状态流向) 实现的回调及其标志位掩码 每个回调的 Gas 估算(来自 Foundry 测试输出) 开发人员的下一步骤(运行测试、部署到测试网、主网考虑)
输出格式 呈现摘要,然后是生成的文件: V4 Hook 已构建:LimitOrderHook 合约:src/hooks/LimitOrderHook.sol(187 行) 测试:test/hooks/LimitOrderHook.t.sol(12 个测试) 部署:script/DeployLimitOrderHook.s.sol 回调:beforeSwap, afterSwap 标志:0x00C0 CREATE2:挖掘盐、验证地址 Gas 估算:beforeSwap:~45,000 Gas,afterSwap:~32,000 Gas,总开销每次交换:~77,000 Gas 架构:在特定 tick 处放置订单并存储在链上订单簿中。在 beforeSwap 期间,hook 检查目标 tick 处的匹配订单。匹配的订单在同一事务中原子性地填充。 下一步骤:
- 运行测试:forge test --match-contract LimitOrderHookTest
- 部署到测试网:forge script script/DeployLimitOrderHook.s.sol --rpc-url sepolia
- 在 Etherscan 上验证:forge verify-contract LimitOrderHook
重要说明 此技能完全委托给 hook-builder 代理 - 它不直接调用 MCP 工具。hook-builder 生成具有重入保护和访问控制的生产质量 Solidity 代码。CREATE2 地址挖掘确保部署的地址在其前导字节中编码正确的 hook 标志(由 V4 PoolManager 要求)。必须安装 Foundry 才能生成测试和编译。如果找不到,技能将提供安装说明。生成的代码使用 Solidity ^0.8.26 并从 @uniswap/v4-core 和 @uniswap/v4-periphery 导入。
错误处理 错误 | 用户面向消息 | 建议操作 ---|---|--- INVALID_CALLBACK_COMBINATION | "请求的行为需要冲突的回调。" | 简化 hook 行为或将其拆分为多个 hook CREATE2_MINING_TIMEOUT | "无法在时间限制内挖掘有效的 CREATE2 地址。" | 增加挖掘时间限制或减少所需标志 FORGE_NOT_INSTALLED | "需要 Foundry(forge),但未安装。" | 安装:curl -L https://foundry.paradigm.xyz | bash && foundryup VAGUE_REQUIREMENTS | "需要更多关于所需 hook 行为的详细信息。" | 描述特定的行为(例如 "在 tick 边界处执行的限价单") COMPILATION_ERROR | "生成的合约有编译错误。" | 查看错误输出并调整需求