mcpField
G
grimoire-uniswap

grimoire-uniswap

github.com/franalgaba其他61.1k 次安装25 周前更新
代码仓库

关于 grimoire-uniswap

grimoire-uniswap 是用于查询 Uniswap 元数据并为 spell 准备代币或池子输入的命令行技能。池子查询支持 The Graph 或链上工厂合约。

主要功能

  1. 01按链查询路由器地址
  2. 02按符号或地址查找代币
  3. 03查找代币对的池子
  4. 04生成代币和池子快照
  5. 05通过 The Graph 或 RPC 查询池子

适用场景

  1. 01查看指定链的 Uniswap 路由器地址
  2. 02按代币对和费率查找池子
  3. 03根据代币元数据生成 spell 参数
  4. 04为 spell 准备池子输入

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/franalgaba/grimoire --skill grimoire-uniswap

安装后在 Claude Code 中输入/grimoire-uniswap确认已加载。

详细介绍

Grimoire Uniswap 技能

使用此技能检查 Uniswap 元数据,并为 spells 生成代币/池快照。

推荐调用方式:

  • grimoire venue uniswap ...
  • npx -y @grimoirelabs/cli venue uniswap ...(无需安装)
  • bun run packages/cli/src/index.ts venue uniswap ...(在仓库本地运行)
  • grimoire-uniswap ...(来自 @grimoirelabs/venues 的独立二进制文件)

建议预检:

  • grimoire venue doctor --adapter uniswap --chain 1 --rpc-url <rpc> --json

命令

  • grimoire venue uniswap info — 适配器元数据
  • grimoire venue uniswap routers [--chain <id>] — 各链上的路由器地址
  • grimoire venue uniswap tokens [--chain <id>] [--symbol <sym>] [--address <addr>] [--source <url>] — 查询代币列表
  • grimoire venue uniswap tokens-snapshot [--chain <id>] [--symbol <sym>] [--address <addr>] [--source <url>] — 为代币生成 spell 的 params: 块(仅限 Agent)
  • grimoire venue uniswap pools --token0 <address|symbol> --token1 <address|symbol> [--chain <id>] [--fee <bps>] [--limit <n>] [--source <url>] [--endpoint <url>] [--graph-key <key>] [--subgraph-id <id>] [--rpc-url <url>] [--factory <address>] — 查找代币对对应的池
  • grimoire venue uniswap pools-snapshot --token0 <address|symbol> --token1 <address|symbol> [--chain <id>] [--fee <bps>] [--limit <n>] [--source <url>] [--endpoint <url>] [--graph-key <key>] [--subgraph-id <id>] [--rpc-url <url>] [--factory <address>] — 为池生成 spell 的 params: 块(仅限 Agent)

池数据源

可以从 The Graph(子图)或直接从链上工厂合约获取池数据:

  • 子图(设置 GRAPH_API_KEY 时为默认方式):查询 The Graph 去中心化网络。内置子图 ID 适用于 Ethereum、Optimism、Polygon、Base 和 Arbitrum。
  • RPC(回退方式):如果没有可用的图配置,pools 会通过链上工厂查询池(提供 --rpc-url/RPC_URL 时使用该地址,否则在可用情况下使用链的默认 RPC)。
  • 强制使用 RPC 模式:提供 --rpc-url,并省略 --graph-key。

环境变量

变量描述
GRAPH_API_KEY用于子图查询的 The Graph API 密钥(请前往 https://thegraph.com/studio/apikeys/ 获取)
RPC_URL用于链上池查询的备用 RPC URL

示例

grimoire venue uniswap info --format table
grimoire venue uniswap routers
grimoire venue uniswap routers --chain 1
grimoire venue uniswap tokens --chain 1 --symbol USDC --format spell
grimoire venue uniswap pools --chain 1 --token0 USDC --token1 WETH --fee 3000 --format spell
grimoire venue uniswap pools --chain 8453 --token0 USDC --token1 WETH --fee 500 --rpc-url $RPC_URL --format table
grimoire venue uniswap pools --chain 8453 --token0 USDC --token1 WETH --fee 500 --graph-key $GRAPH_API_KEY --subgraph-id <id>
grimoire venue uniswap tokens-snapshot --chain 1 --symbol USDC
grimoire venue uniswap pools-snapshot --chain 1 --token0 USDC --token1 WETH --rpc-url $RPC_URL

使用 tokens-snapshot 或 pools-snapshot 输出用于 spell 输入的 params: 块。这些命令仅限 Agent 使用(交互模式下会抑制输出)。

指标范围(Spell 对比)

Uniswap V3 和 V4 提供 quote_out,用于协议对比:

v3_out = metric("quote_out", uni_v3, USDC, "asset_out=WETH,amount=1000000,fee_tier=3000")
v4_out = metric("quote_out", uni_v4, USDC, "asset_out=WETH,amount=1000000,fee_tier=3000,tick_spacing=60")

选择器字段:

  • 必填:asset_out
  • 可选:amount(默认为 1 个输入资产单位)、fee_tier
  • V4 可选:tick_spacing

Spell 约束

在以 Uniswap 为目标的 .spell 文件中编写兑换操作时,使用 with 子句设置约束:

uniswap_v3.swap(USDC, WETH, params.amount) with (
  fee_tier=3000,
  max_slippage=50,
  min_output=900000000000000,
  deadline=300,
)

必须指定 fee_tier。 如果未指定 fee_tier,适配器会报错。它是操作参数(而非约束),并从 with() 子句中提取。

常见费率等级:500(0.05%)、3000(0.3%)、10000(1%)。

参数类型描述
fee_tier整数(bps)必填。 Uniswap 池费率等级(例如 500、3000、10000)
约束类型描述
max_slippage整数(bps)最大滑点,以基点为单位(例如 50 = 0.5%)
min_output整数(wei)最低输出数量下限
max_input整数(wei)最大输入数量上限
deadline整数(秒)从现在起算的交易截止时间
require_quote布尔值如果链上报价获取失败则报错
require_simulation布尔值如果模拟不可用则报错
max_gas整数(wei)Gas 估算上限

兑换时务必同时设置 max_slippage 和 min_output,以防意外损失。

支持的适配器

适配器路由器授权流程
@uniswap_v3SwapRouter02标准 ERC20 授权
@uniswap_v4Universal RouterPermit2

说明

  • CLI 目前提供 V3 元数据。V4 适配器可通过 createUniswapV4Adapter() 以编程方式使用。
  • 查询元数据(tokens、pools)时,即使你的 spell venue 是 uniswap_v4,也请使用 grimoire venue uniswap ...。
  • 输出为 JSON 或表格;tokens 和 pools 也支持 --format spell。
  • 自动化和可复现快照场景下,建议使用 --format json。
  • 仅提供元数据(不提供链上报价端点)。

评论

支持 Markdown