关于 canhelp
canhelp 是供开发者检查 Internet Computer Canister 接口的技能。它解析 Canister 名称或 ID、获取 Candid 文件,并按结构整理方法与类型。
主要功能
- 01解析 Canister 名称或 ID
- 02获取 Candid 接口
- 03区分查询与更新方法
- 04整理自定义类型
- 05处理多个匹配项及获取错误
适用场景
- 01集成前检查 Canister
- 02查看可用方法与类型
- 03排查接口获取失败原因
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dfinity/ icskills --skill canhelp安装后在 Claude Code 中输入/canhelp确认已加载。
附带文件scripts/fetch-candid.shscripts/resolve-canister-id.sh
详细介绍
给定 $ARGUMENTS 中的容器 ID 或名称,获取并总结其 Candid 接口。
步骤
-
通过运行技能基础目录中的解析脚本来解析容器 ID:
./scripts/resolve-canister-id.sh "$ARGUMENTS"如果
$ARGUMENTS已是有效的主体 ID,脚本会原样输出。 否则,脚本会查询 IC Dashboard API,并以<canister-id> <name>(每行一条)的格式输出匹配项。- 如果只有一个结果,请清楚地显示解析出的容器 ID,并直接使用它。
- 如果有多个结果,请向用户展示列表,并让用户在继续前选出一个。
-
使用解析出的容器 ID 获取 Candid 接口:
./scripts/fetch-candid.sh <resolved-canister-id>脚本会输出已下载
.did文件的路径。 -
使用
Read工具读取文件。 -
按以下结构以易读的形式呈现结果:
容器
<canister-id>查询方法:
method_name(arg1: type1, arg2: type2) → return_type— 根据名称推断出的方法功能简介
更新方法:
method_name(arg1: type1) → return_type
类型:
- 列出接口中定义的所有自定义 record/variant 类型及其字段
指南
- 按查询方法和更新方法分组
- 在每组内按字母顺序对方法排序
- 对于复杂的嵌套类型,展示顶层结构并注明存在嵌套
- 如果 Candid 非常庞大(>100 个方法),则显示方法总数,并仅列出看起来最重要的方法,同时表示可按需展示完整列表
- 如果获取成功但 Candid 接口为空,请说明该容器未在 wasm 元数据中公开其 Candid 接口
- 如果获取失败,请建议用户确认容器 ID,并确认已安装
icp
评论
支持 Markdown