Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
test
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
谢昇
test
Commits
3cd70795
Commit
3cd70795
authored
May 31, 2019
by
谢昇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update CLI独立模块命令.md
parent
8df36274
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
149 additions
and
73 deletions
+149
-73
CLI独立模块命令.md
CLI独立模块命令.md
+149
-73
No files found.
CLI独立模块命令.md
View file @
3cd70795
# 部分功能性模块使用流程
**版本:V6.2.0**
# 部分功能性模块使用流程
**版本:V6.2.0**
# 部分模块使用流程
## userdata模块 发送文件
测试链中测试时,需要将cmd
\w
rite
\w
rite.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
```
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment