Commit 3cd70795 authored by 谢昇's avatar 谢昇

Update CLI独立模块命令.md

parent 8df36274
# 部分功能性模块使用流程
**版本:V6.2.0**
# 部分功能性模块使用流程
**版本:V6.2.0**
# 部分模块使用流程
## userdata模块 发送文件
测试链中测试时,需要将cmd\write\write.toml中的发送地址修改为自己的地址,并编译write.go后,运行write.exe
构造:
cli exec userdata -d "内容" -e user.write -t "标题"
```
返回note
```
※ -e后接的执行器必须以user.开头
返回得到的note,需要将该note以备注的形势,发送coins交易,并将to的地址指定为设定的地址后,签名发送
## hashlock 哈希锁定合约
Hashlock正常流程,完整过程:
使用一步交易命令:
cli send bty transfer -a 1 -t write.go中设置的地址 -n 返回的note -k 私钥or地址签名
```
返回交易哈希
```
※ -a后设置的金额须不下于1
1. 需要准备两个账户A和B,其中A是returnAddr,用于在锁定时间结束后,可以返回余额,B是toAddr,在锁定时间内,能够进行操作转移金额
我这里A:14KEKbYtKKQm4wMthSK9J4La4nAiidGozt B:1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx
发送后在write.exe中返回哈希,可使用该哈希查询得到发送的内容。
2. hashlock要求在lock动作时,合约里存在余额,这些余额在lock后会被frozen
./cli bty send_exec -a 1000 -e hashlock
由A签名并发送
3. lock操作
./cli hashlock lock -a 1000 -d 360 -r 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt -t 1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx -s mysecret
由A签名并发送
4. send操作
./cli hashlock send -s mysecret
由B签名并发送
## 隐私交易
5. 取回,从hashlock合约取钱
./cli bty withdraw -a 1000 -e hashlock
由B签名并发送
## tx group 构建交易组
即原子交易,将多个交易捆绑,若其中有任意一笔交易失败,则整个交易组所有交易失败。交易手续费由第一笔的交易的地址统一扣除。
首先构建多个交易:
cli bty transfer -t 地址A
注意:
A. 暂时未支持查询命令,如果需要监视操作过程,可以查询合约余额。在lock执行后,合约余额Frozen在A账户,在send完成后,合约余额在B账户
B. 因为send/withdraw都是由B地址签名完成的,因此这个B地址还需要有点钱作为手续费
C. 当前hash命令和一些其他的执行器类似,操作只是创建了交易,还需要签名并发送
D. lock过程指定了lock周期,只有在此时间内,才能成功进行send,超出这个周期只能进行unlock操作
附:
unlock操作,在lock动作后,超过设定时间,可以进行unlock操作,unlock后,余额在A账户,解除冻结状态,可以由A取回
./cli hashlock unlock -s mysecret
## multisig 多重签名合约
"1LmbKkDke6FB4mATfF1WQD2QLQQbk1JUFa" xs1
"1JDVvcppsUpfbaXqdoKyGTYV7eeakZgCHN" xs2
"1GV8NGi8fgbG5kqpL6v64fQNkszkxyvwZ7" xs3
"197MWT1nNxHnmz4Wd6SWCPbL3naUy5WLiz" xs4
"1PpeeGeWfT8hCUroKEYUur12SQsbTyMdQz" xs5
"1LFqpeEiGuWSVUMztxifLGTT7gsmJatGJi" xs6
地址4向unfreeze合约打入100JTT
创建对地址3的合约解冻
cli send unfreeze create fix_amount -a 0.01 -e token -s JTT -b 1GV8NGi8fgbG5kqpL6v64fQNkszkxyvwZ7 -p 60 -t 2 -k "197MWT1nNxHnmz4Wd6SWCPbL3naUy5WLiz"
查询该合约状态
cli unfreeze show --id mavl-unfreeze-f9cf7a1f2482ad1137bdc5af49bd1c2bbe6407308710cdbb21e6162e0cba0657
该id值无查询接口 需增加
```
返回字符串A1
{
"unfreezeID": "mavl-unfreeze-f9cf7a1f2482ad1137bdc5af49bd1c2bbe6407308710cdbb21e6162e0cba0657",
"startTime": "1547625329",
"assetExec": "token",
"assetSymbol": "JTT",
"totalCount": "200000000",
"initiator": "197MWT1nNxHnmz4Wd6SWCPbL3naUy5WLiz",
"beneficiary": "1GV8NGi8fgbG5kqpL6v64fQNkszkxyvwZ7",
"remaining": "200000000",
"means": "FixAmount",
"fixAmount": {
"period": "60",
"amount": "1000000"
}
}
```
cli bty transfer -t 地址B
查询可取回的份额
cli unfreeze show_withdraw --id mavl-unfreeze-f9cf7a1f2482ad1137bdc5af49bd1c2bbe6407308710cdbb21e6162e0cba0657
```
返回字符串A2
{
"unfreezeID": "mavl-unfreeze-f9cf7a1f2482ad1137bdc5af49bd1c2bbe6407308710cdbb21e6162e0cba0657",
"availableAmount": "14000000"
}
```
将两个交易组成交易组:
cli bty txgroup -t "字符串A1 字符串A2"
受益人取回冻结
cli send unfreeze withdraw --id mavl-unfreeze-f9cf7a1f2482ad1137bdc5af49bd1c2bbe6407308710cdbb21e6162e0cba0657 -k "1GV8NGi8fgbG5kqpL6v64fQNkszkxyvwZ7"
查询余额
cli token token_balance -a "1GV8NGi8fgbG5kqpL6v64fQNkszkxyvwZ7" -s JTT -e unfreeze
```
返回字符串A3
[
{
"Token": "JTT",
"balance": "0.3200",
"frozen": "0.0000",
"addr": "1GV8NGi8fgbG5kqpL6v64fQNkszkxyvwZ7"
}
]
```
终止合约
cli send unfreeze terminate --id mavl-unfreeze-f9cf7a1f2482ad1137bdc5af49bd1c2bbe6407308710cdbb21e6162e0cba0657 -k "197MWT1nNxHnmz4Wd6SWCPbL3naUy5WLiz"
签名,需根据index指定签名
cli wallet sign -d 字符串A3 -i 1 -a 签名地址
```
返回字符串A4
```
终止合约后,已解冻的部分也被收回,需求是否需要修改
cli wallet sign -d 字符串A4 -i 2 -a 签名地址
创建合约时,设置解冻周期为0,交易成功,执行失败,返回输入数据非法,应增加cli端限制。
设置总量为0时,返回encoding/hex: invalid byte: U+0074 't' 增加cli端限制
创建合约时,total值小于每次解冻值,交易成功并执行成功,应限制total大于每次解冻值
## para 跨链合约
## retrieve 钱包找回合约
```
返回字符串A5
Retrieve正常流程,完整过程:
1. 需要准备两个账户A和B,B是A的备份
我这里A:14KEKbYtKKQm4wMthSK9J4La4nAiidGozt B:1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx
2. 为了使最后retrieve能够看到效果,需要由A账户先打点钱进retrieve合约
./cli bty send_exec -a 100 -e retrieve
由A签名并发送
3. backup操作
./cli retrieve backup -b 1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx -t 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt -d 61
由A签名并发送
4. prepare操作
./cli retrieve prepare -b 1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx -t 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt
由B签名并发送
5. perform操作
./cli retrieve perform -b 1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx -t 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt
由B签名并发送
6. 取回,从retrieve合约取钱
./cli bty withdraw -a 100 -e retrieve
由B签名并发送
注意:
A. retrieve合约只能够负责合约里余额的转移,要想达到外部账户的效果,必须要往合约里打钱,并最后取回,否则即便retrieve操作成功,也看不到效果
B. 因为prepare/perform/withdraw都是由备份地址签名完成的,因此这个备份地址还需要有点钱作为手续费
C. 当前retrieve命令和一些其他的执行器类似,操作只是创建了交易,还需要签名并发送
D. retrieve操作需要注意,不同的操作需要不同的地址签名A/B
E. 备份过程指定了prepare以后多久能够进行perform操作,最少是60s,所以为了保证perform能够成功,需要在prepare以后等待一下再perform
F. 测试过程中可以用查询命令查看状态
./cli retrieve query -b 1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx -t 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt
```
发送:
cli wallet send -d 字符串A5
## token模块
## token token合约
发行bty token,分为预创建及完成创建两个阶段
向token合约地址转币:(一步完成)
cli send bty send_exec -e token -a 数量 -k 签名地址
......@@ -153,8 +230,7 @@ cli send token withdraw -a 数量 -s 标志 -e 执行器 -k 签名私钥
```
返回交易哈希
```
## trade模块
## trade trade合约
```
Available Commands:
buy Create a buying token transaction
......@@ -345,41 +421,41 @@ cli trade status_order -a "152xusBV1onddSYcyTmGcGr1Yva7GAc37w" -s 1
### revoke 撤销挂单
cli send trade revoke -s "mavl-trade-sell-64cb10c29bedbd5ad1b3e9317999c637aac695cfbcab64ff292922ef9e5881ab" -k "152xusBV1onddSYcyTmGcGr1Yva7GAc37w"
## unfreeze 冻结解冻合约
## retrieve 钱包找回
```
Retrieve正常流程,完整过程:
## privacy 隐私交易合约
1. 需要准备两个账户A和B,B是A的备份
我这里A:14KEKbYtKKQm4wMthSK9J4La4nAiidGozt B:1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx
## tx group 构建交易组
即原子交易,将多个交易捆绑,若其中有任意一笔交易失败,则整个交易组所有交易失败。交易手续费由第一笔的交易的地址统一扣除。
首先构建多个交易:
cli bty transfer -t 地址A
```
返回字符串A1
```
cli bty transfer -t 地址B
```
返回字符串A2
```
2. 为了使最后retrieve能够看到效果,需要由A账户先打点钱进retrieve合约
./cli bty send_exec -a 100 -e retrieve
由A签名并发送
将两个交易组成交易组:
3. backup操作
./cli retrieve backup -b 1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx -t 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt -d 61
由A签名并发送
cli bty txgroup -t "字符串A1 字符串A2"
```
返回字符串A3
```
4. prepare操作
./cli retrieve prepare -b 1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx -t 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt
由B签名并发送
签名,需根据index指定签名
cli wallet sign -d 字符串A3 -i 1 -a 签名地址
```
返回字符串A4
```
5. perform操作
./cli retrieve perform -b 1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx -t 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt
由B签名并发送
cli wallet sign -d 字符串A4 -i 2 -a 签名地址
```
返回字符串A5
```
6. 取回,从retrieve合约取钱
./cli bty withdraw -a 100 -e retrieve
由B签名并发送
发送:
cli wallet send -d 字符串A5
注意:
A. retrieve合约只能够负责合约里余额的转移,要想达到外部账户的效果,必须要往合约里打钱,并最后取回,否则即便retrieve操作成功,也看不到效果
B. 因为prepare/perform/withdraw都是由备份地址签名完成的,因此这个备份地址还需要有点钱作为手续费
C. 当前retrieve命令和一些其他的执行器类似,操作只是创建了交易,还需要签名并发送
D. retrieve操作需要注意,不同的操作需要不同的地址签名A/B
E. 备份过程指定了prepare以后多久能够进行perform操作,最少是60s,所以为了保证perform能够成功,需要在prepare以后等待一下再perform
F. 测试过程中可以用查询命令查看状态
./cli retrieve query -b 1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx -t 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment