拿到 ABI 和回执之后,要能分清函数描述、输入编码、事件以及执行结果。尤其不要把不同链的 status 约定直接套用。
本文由个人备赛旧笔记整理,整理日期为 2026-11-03。命令、输出和测试记录属于当时的实验环境;本文未重新搭建整套环境验证。
阅读前先确认
FISCO BCOS 回执中 status 为 0 表示成功;gasUsed 是消耗的 Gas 数量,不能直接理解成 wei。output 为空也不必然表示失败。
合约ABI
Application Binary Interface
ABI是智能合约与外部世界交互的接口规范,它定义了如何与合约进行数据编码和解码的规则。
组成核心要素:
- 函数签名:
- 函数选择器的签名包含函数名和规范化参数类型,不包含返回类型;ABI 条目另有返回值描述
- 事件定义
- 事件名和参数 包括indexed
- 错误定义
- 自定义错误类型
- 构造函数
- 合约部署时的初始化函数
- 回退函数
- 处理未匹配函数调用的默认函数
示例:
1 | [ |
分段解析:
1 | { |
函数名:
addCompany参数 ;
_companyAddress、_companyName、_creditAsset以及相应的参数类型输出: 类型布尔
状态可变性:
nonpayable
1 | { |
函数名:
createReceipt参数:
_accepterAddress、_receiptType、_transferType、_amount状态可变性:
stateMutability输出类型:
uint256
1 | { |
- 事件名:
ReceiptCreated - 参数:
receiptId、sender、accepter、amount
合约调用参数解析
交易回执
1 | { |
核对资料
复现时的自查
- 记录自己实际使用的版本、配置和缺失依赖。
- 对照本篇关键步骤,保存命令或调用结果,并解释结果代表什么。
- 对失败或与原记录不一致的情况保留错误信息,不把历史输出当成自己的验证结果。
本文作者 Allureluoli
文字版权归作者所有,转载请注明出处;商业用途请先联系二月。