用途
submit-hook 用于把一个本实例已经部署的 Uniswap v4 hook 登记到公共注册表 aeonfun/univ4-hooks(即 aeon hook 市场背后的数据源)。它负责按注册表期望的格式整理条目,然后打开一个 PR 完成提交。hook 的 flags 与 callbacks 由注册表根据地址自行解码,因此本技能只需提供地址、链和人类可读的列表信息。
主要能力
- 从 memory/state/hook-deploys.json 的部署记录中挑选目标部署:若传入 0x... 地址则匹配对应记录,否则选取最近一条 network 为 "mainnet" 的记录。
- 对记录进行校验与筛选:仅提交主网部署(测试网或 dry-run 会被跳过);仅提交注册表支持的链(ethereum、base、robinhood、monad、bnb、arbitrum、unichain);并校验 int(hookAddress,16) & 0x3FFF == int(flags,16) 以确认记录一致。
- 生成列表信息:从记录的 brief/feature 推导 PascalCase 合约风格名称(如 MarketHoursGate),并据此确定 category(Fees、Rewards、Access、Games、Orders、Launch 之一)、klass(VALUE、FEE 或 GATE)和 template(dynamic、noop 或 freeform)。
- 撰写列表文案:mechanic(一行简介)、plain(2-4 句面向非开发者的说明)、rules(该 hook 强制执行的具体规则,每行一条,2-4 条)。
- 提交:调用辅助脚本 skills/submit-hook/submit-univ4.py 完成克隆、写入条目、重新生成注册表、打开 PR;若无推送权限则回退为提交结构化 issue。
- 幂等:若地址(任意链)或 slug 已被列出,辅助脚本会跳过,重复运行安全。
使用方式
技能接受一个变量 ${var},即要提交的 hook 地址(0x...);为空时表示使用 memory/state/hook-deploys.json 中最近一次主网部署。
提交时运行辅助脚本,示例命令:
python3 skills/submit-hook/submit-univ4.py
--address "$HOOK_ADDRESS" --chain "$CHAIN"
--name "$NAME" --category "$CATEGORY" --klass "$KLASS"
--template "$TEMPLATE" --stage deployed --source aeon --verified
--date "$(echo "$TIMESTAMP" | cut -c1-10)"
--mechanic "$MECHANIC" --plain "$PLAIN"
--rule "$RULE1" --rule "$RULE2" [--rule "$RULE3"]
建议先加 --dry-run 打印条目和预期动作而不触碰注册表,确认后再去掉该参数真正打开 PR。辅助脚本会打印 PR URL(回退时为 issue URL,或提示已列出)。完成后发送简短通知(hook 名称、链、PR/issue URL)并以 SUBMIT_HOOK_OK 退出。
适用场景
- 手动重新提交较早的部署,或自动列表失败的部署。
- 在 deploy-uni-hook 成功完成实时部署后,该技能通常会被自动调用,使 hook 落地即自动上架。
限制与降级规则
- 无 ledger 或无匹配记录:SUBMIT_HOOK_NONE(通知,不硬失败)。
- 测试网或 dry-run 部署:SUBMIT_HOOK_SKIP。
- 链不在注册表支持范围内:SUBMIT_HOOK_UNSUPPORTED_CHAIN。
- 记录中 flags != address & 0x3FFF:SUBMIT_HOOK_BAD_RECORD。
- 对注册表无推送权限:辅助脚本改为提交结构化 issue,仍以 SUBMIT_HOOK_OK 退出。
- 注册表会校验每个 PR:flags/callbacks 会从地址重新计算,schema 会被强制执行,聚合的 hooklist.json 会被检查;辅助脚本在推送前会重新生成 hooklist.json 与 HOOKS.md 以通过检查。
- 辅助脚本不会把 token 放在命令行上,它使用 gh CLI,从环境变量读取 GH_TOKEN。
暂未提供
关于收费、价格、平台支持范围、效果指标等具体信息,资料中暂未提供。