sui基础(2)-sui命令行工具

sui 命令行工具的常用命令汇总

1. 综合

主要是作为客户端连接网络节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 本地第一次执行,会引导创建客户端网络信息
# 生成客户端配置,用来和网络节点(如测试网)连接会默认产生yml,提供节点地址
# 开发网:https://fullnode.devnet.sui.io:443
# 测试网:https://fullnode.testnet.sui.io:443
# 默认位置:/Users/ld/.sui/sui_config/client.yaml
sui client

# 自定义配置位置
sui client --client.config ~/sui/bin/validator/client/client.yml

# 快速配置,会快速生成客户端配置、账户以及节点等信息,
# 这里我们需要用到的是客户端配置以及账户
sui genesis

# 读取默认账户
# 若是自定义配置,必须在client之后加上--client.config
sui client active-address
sui client --client.config ~/sui/bin/validator/client/client.yml active-address

# 查看网络配置,有哪几种网络
sui client envs
sui client --client.config ~/sui/bin/validator/client/client.yml envs

# 切换网络
sui client switch --env 网络名称(envs中提供)

# 添加一个新的网络
sui client new-env --alias <ALIAS> --rpc <RPC>

2. 常用命令

  1. 交互式命令入口
1
2
3
4
5
# 交互式控制台方式,同样可以连接网络
sui console

# 默认配置在/Users/ld/.sui/sui_config/client.yaml,可以使用如下方式覆盖默认配置
sui console --client.config /workspace/config-files
  1. 查看地址列表
1
sui client addresses
  1. 查看当前默认账户
1
sui client active-address
  1. 切换默认地址
1
sui client switch --address  xxx
  1. 查看gas
1
2
3
4
5
6
# 查看默认账户的gas
sui client gas
sui client --client.config ~/sui/bin/validator/client/client.yml gas

# 查看指定账户的gas
sui client gas 地址
  1. 生成地址
    24个单词的助记词
    可选择:ed25519、secp256k1、secp256r1
1
sui client new-address Secp256k1

可以手动编辑client.yaml,将已存在的账户加入到其中
7. 查看账户拥有的对象

1
2
3
4
5
# 默认账户查看
sui client objects

# 指定账户查看
sui client objects 地址
  1. 查看一个对象的详细信息
1
2
3
4
sui client object <ID>

# 使用json格式查看
sui client object <ID> --json
  1. 将当前账户的一个对象转移给另一个账户
1
2
# gas-budget 是gas上限
sui client transfer --to 接收地址 --object-id 当前对象号 --gas-budget 1000
  1. 创建一个nft
1
2
3
4
5
# 创建默认nft
sui client create-example-nft

# 自定义创建nft
sui client create-example-nft --url=https://user-images.githubusercontent.com/76067158/166136286-c60fe70e-b982-4813-932a-0414d0f55cfb.png --description="The greatest chef in the world" --name="Greatest Chef"

3. Coin的合并与拆分

  1. 合并Coin,至少需要3个Object,其中两个用来合并,另一个用来支付gas
1
2
3
4
5
6
7
# 查看指定账户拥有哪些对象
sui client objects 账户地址

# 合并coin
sui client merge-coin --primary-coin 第一个object --coin-to-merge 第二个object --gas-budget gas预算值(猜测:会根据值选一个合适的Object拆分来支付gas,或者合并多个小Object来支付gas)
# 合并示例:
sui client merge-coin --primary-coin 0x33e3e1d64f76b71a80ec4f332f4d1a6742c537f2bb32473b01b1dcb1caac9427 --coin-to-merge 0x11af4b844ff94b3fbef6e36b518da3ad4c5856fa686464524a876b463d129760 --gas-budget 1000
  1. 拆分Coin,至少需要2个Object,一个用来拆分,另一个用来支付gas
1
2
3
4
5
6
7
# 同样先查看指定账户拥有哪些对象
sui client objects 账户地址

# 拆分coin
sui client split-coin --coin-id 要拆分的Object --amounts 拆分值1 拆分值2 拆分值3 --gas-budget gas预算值
# 合并示例:
sui client split-coin --coin-id 0x11af4b844ff94b3fbef6e36b518da3ad4c5856fa686464524a876b463d129760 --amounts 1000 5000 3000 --gas-budget 1000

4. genesis自定义初始化配置

1
sui genesis --config 自定义配置路径

自定义配置模板如下gensis.yaml

1
2
3
4
5
6
7
8
9
10
11
---
validator_config_info: ~
committee_size: 4
accounts:
- gas_objects:
- object_id: "0x33e3e1d64f76b71a80ec4f332f4d1a6742c537f2bb32473b01b1dcb1caac9427"
gas_value: 100000
gas_object_ranges: []
move_packages: ["<Paths to custom move packages>"]
sui_framework_lib_path: ~
move_framework_lib_path: ~

5. 账户规则

  1. 默认生成的keystore中,是一个私钥base64的集合列表
  2. 使用sui keytool generate ed25519生成的xxx.key其中是一个base64密钥
  3. 使用sui keytool unpack base64私钥可解析成成一个账户文件xxx.key,其中包含地址、keypair、key scheme等信息

3. 总结

本文编辑完毕

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2017-2023 Jason
  • Visitors: | Views:

谢谢打赏~

微信