Show / Hide Table of Contents
invokefunction 方法
使用给定的操作和参数,通过合约脚本哈希调用智能合约之后返回结果。
参数说明
你需要根据传入地址的数据类型,使用正确的字节序格式。如果数据类型为 Hash160,输入大端序 scripthash;如果数据类型为 ByteArray,则输入小端序 scripthash。
例如:
调用示例
请求正文:
响应正文:
响应说明:
-
script:合约的调用脚本,在 Neo 官网上可以解析 https://neo.org/converter
-
state:虚拟机状态, HALT
表示虚拟机执行成功, FAULT
表示虚拟机执行时遇到异常退出。
-
gasconsumed:调用智能合约时消耗的系统手续费。
-
exception: 合约执行过程中的异常信息,无异常时为 null
。
-
notifications:合约执行过程中产生的 event 信息,交易上链后可以通过 getapplicationlog 来查看。
-
diagnostics:合约调用的过程信息和存储区改变情况,该请求只是测试调用,不会改变链上真实存储区,这里显示的存储区改变是模拟交易发送上链后的存储区变化情况。
-
stack:合约执行结果,其中 value 如果是字符串或 ByteArray,则是 Base64 编码后的结果。
-
tx:本次调用合约交易的 Base64 编码,需要打开钱包并且传入正确的签名账户参数,否则返回结果不包含该字段。
-
pendingsignature:签名未完成的交易,如果该交易需要多个签名而当前打开的钱包中不包含所有签名账户时,返回结果包含该字段。
特别说明
当合约执行结果里包含迭代器 Iterator 类型时,会根据 RpcServer
插件的 config.json
文件中 SessionEnabled
字段的值来决定是否返回 session
,如果 SessionEnabled
为 true
,返回结果中会包含 session
字段,用来在 traverseiterator 方法中进一步获取 Iterator 的详细内容,如果 SessionEnabled
为 false
,则返回结果中不包含 session
,无法进一步获取 Iterator 的详细内容。
如下示例是 SessionEnabled
为 true
时的 Iterator 类型返回结果:
获取 Iterator 请参考 traverseiterator 方法。