How to get ABI / code|读取合约接口与 WASM¶
本文的节点、CLI 与 RPC 目标版本为 FullOn Core v0.9.2。合约、CDT 和钱包各有独立版本;其已注明的核验范围不因 Core 升级自动改变。详见版本基线与升级说明。
ABI 是动作和数据结构的接口描述;WASM 是已部署的可执行字节码。获取 WASM 不能还原原始 C++ 源码,也不能证明某个 Git 仓库就是部署来源。
前提¶
安装 flon-tools 的 fucli,准备经核对的 RPC 地址。以下 contractacct 是占位账户名,需替换。所有示例为只读请求。
export FULLON_RPC='http://127.0.0.1:8888'
fucli -u "$FULLON_RPC" get abi contractacct -f contract.abi
fucli -u "$FULLON_RPC" get code contractacct -c contract.wasm -a contract.abi
get code 会输出 code hash;只有加 -c 才将 WASM 保存到文件。get abi -f 保存解码后的 ABI。
通过 HTTP RPC¶
curl --fail --silent --show-error --max-time 15 -X POST "$FULLON_RPC/v1/chain/get_abi" -H 'Content-Type: application/json' --data '{"account_name":"contractacct"}' | jq '.abi'
curl --fail --silent --show-error --max-time 15 -X POST "$FULLON_RPC/v1/chain/get_code_hash" -H 'Content-Type: application/json' --data '{"account_name":"contractacct"}' | jq
需要原始数据时使用 get_raw_code_and_abi 或 get_raw_abi,字段类型和编码见RPC 参考。不要把 JSON 中的编码字符串直接保存成二进制 WASM。
验证和缓存¶
核对 chain ID 与账户名,记录 code hash、ABI 和读取时间。不同请求不是同一状态的原子快照;升级期间应重新核对哈希。ABI 变化后需重新序列化并签名交易。账户可能尚无代码或 ABI,查询失败不一定是节点故障。
来源¶
fucli get code / get abi 参数与实现,源码审阅:2026-11-02。