一款测试NEO交易的自动化测试工具
- UTXO转账
- 合约调用
- 签名
- 支付手续费
- 自定义执行脚本
都用于调试、打印信息。语法:
echo <object1> <object2> ...
发起一次交易, 接收一个交易描述
tx "transfer-neo"
指定交易版本
tx-v 0|1
指定交易类型,目前只支持ContractTransaction
和InvocationTransaction
tx-type "contract"|"invocation"
指定网络费用
te-fee <float>
指定交易的Attribute,接收两个字符串参数,其中第一个参数为usage,值有ContractHash, ECDH02, ECDH03, Script, Vote, DescriptionUrl, Description, Hash1-Hash15, Remark, Remark1-Remark15;第二个参数为data。
该命令可以声明多个。
tx-attr "Script" "5e40b22e86dc6ff4a7b0416450971469fe71040d"
tx-attr "Hash1" "abcd"
交易发起者,接收一个私钥,用于转账UTXO模型代币、支付手续费和交易签名. 构建交易时会使用该私钥对交易进行签名并放入交易的witness
中
tx-initiator <PrivateKey>
指定UTXO模型代币转账, 接收三个参数:
- 资产哈希,字符串类型
- 钱包地址,字符串
- 转账数量,数量值类型
该命令可以多次声明
tx-vout <asset_hash> <address> <value>
使用给定的参数以散列值调用智能合约,接收一个json数组,方便构造自定义脚本。数组元素为构建执行脚本参数。
包含type
和value
两个字段;type
支持以下类型:
- Boolean
- Integer
- Hash160
- Hash256
- String
- Array
- AppCall
- Address
- OpCode
tx-invoke '[
[
{
"type": "AppCall",
"value": "dc675afc61a7c0f7b3d2682bf6e1d8ed865a0e5f"
},
{
"type": "String",
"value": "name"
},
{
"type":"Boolean",
"value": false
}
]'
使用给定的操作和参数,以散列值调用智能合约。 接收json数组。
scripthash:智能合约脚本散列值。
operation:操作名称(字符串)。
params:传递给智能合约操作的参数。
type
字段支持以下类型:
- Boolean
- Integer
- Hash160
- Hash256
- String
- Array
- AppCall
- Address
- OpCode
tx-invokefunc '[
"af7c7328eee5a275a3bcaee2bf0cf662b5e739be",
"balanceOf",
[
{
"type": "Hash160",
"value": "91b83e96f2a7c4fdf0c1688441ec61986c7cae26"
}
]
]'
指定调用的脚本,接收脚本的十六进制的字符串。
tx-invokesscript <Script>
指定见证人,接收两个字符串参数。其中
-
普通地址的私钥或智能合约的哈希脚本。
-
调用脚本,当witness为只能合约的哈希脚本时,该值为验证智能合约的参数;当witness为普通地址的私钥时,该值为空即可。
该命令可以多次声明使用
tx-witness <witness> <invocation>
广播交易。接收一个节点地址
tx-send "http://localhost:20332"
发起一个HTTP请求
req <http-method> <url>
用于指定请求包或返回包的json
格式正文内容。语法:
body <json-data>
ret 用来获得返回包。语法:
ret [<status-code>]
let 用于变量赋值,和主流命令式编程语言的 =
最为接近。例如:
let $(var-name) <expression>
equal 要求两个 object 的内容精确相等:
equal <object1> <object2>
取得环境变量的值
返回当前时间