getapplicationlog 方法
根据交易 txid 获取合约的事件信息。合约事件信息会保存到 ApplicationLogs 目录。
此方法由插件提供,需要安装 ApplicationLogs 和 LevelDBStore 插件才可以调用。
参数说明
-
txid/blockhash:交易 ID 或区块 hash
-
trigger type: 可选参数, 有以下 trigger 类型:
-
OnPersist
-
PostPersist
-
Application
-
Verification
-
System: OnPersist | PostPersist
-
All: OnPersist | PostPersist | Verification | Application
默认获取所有类型,也可以指定某种类型。
-
调用示例
请求正文:
该交易是将 100 GAS 从 NgaiKFjurmNmiRzDRQGs44yzByXuSkdGPF 转到 NikhQp1aAD1YFCiwknhM5LQQebj4464bCJ。
响应正文 :
响应说明:
-
txid:交易 ID。
-
trigger:触发器。
-
vmstate:虚拟机执行状态,HALT 代表成功,FAULT 代表失败。
-
gasconsumed :该交易消耗的 GasToken 数量,即交易手续费。
-
notifications:智能合约通知。如果没有通知返回,表明该交易不成功,详情参见下文的Note说明。
-
contract:发出通知的合约,这里是 GasToken 原生合约。
-
eventname:通知的事件名称。
-
state:通知内容。其中 ByteString 为 Base64 编码表示的钱包地址,可以在 Data Convertor 进行转换。
上例显示的是一个成功转账交易的日志,但如果传输失败或NeoVM执行异常,显示结果可能是以下情况:
转账失败: 不返回 Transfer notifications。执行状态 vmstate 显示
HALT
且 stack 值为False
。NeoVM 异常: 可能返回或不返回 Transfer notifications。执行状态 vmstate 显示
FAULT
。