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
# 更新系统
sudo apt-get update && sudo apt upgrade -y

# 安装基础依赖
sudo apt install -y curl wget git build-essential
pkg-config \
libudev-dev llvm libclang-dev \
libssl-dev

# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

# 安装sui
curl -sSfL https://raw.githubusercontent.com/Mystenlabs/suiup/main/install.sh | sh

# 将 export PATH="/home/move/.local/bin:$PATH" 添加至 .bashrc 并加载
source .bashrc

# 安装 sui
suiup install sui

# 验证安装
rustc --version
sui --version

2. Sui CLI 基础

2.1 网络配置

1
2
3
4
5
# 查看所有已配置的环境
sui client envs

# 查看当前活跃的环境
sui client active-env

添加网络

1
2
3
4
sui client new-env --alias mainnet --rpc https://fullnode.mainnet.sui.io:443	# 主网
sui client new-env --alias testnet --rpc https://fullnode.testnet.sui.io:443 # 测试网
sui client new-env --alias devnet --rpc https://fullnode.devnet.sui.io:443 # 开发网
sui client new-env --alias local --rpc http://127.0.0.1:9000 # 本地网络

切换网络

1
2
3
4
sui client switch --env mainnet		# 主网
sui client switch --env testnet # 测试网
sui client switch --env devnet # 开发网
sui client switch --env local # 本地网络

2.2 钱包管理

创建钱包

1
2
3
4
5
6
7
8
9
10
11
# 生成钱包地址
sui client new-address ed25519

# 生成指定别名的钱包地址
sui client new-address ed25519 <YOUR_ALIAS>

# 导出钱包
sui keytool export --key-identity <YOUR_ALIAS>

# 导入钱包
sui keytool import <PRIVATE_KEY> ed25519 --alias <YOUR_ALIAS>

管理钱包

1
2
3
4
5
6
7
8
9
10
11
# 查看所有钱包地址
sui client addresses

# 查看当前默认的钱包地址
sui client active-address

# 切换默认钱包地址
sui client switch --address <YOUR_ALIAS_OR_ADDRESS>

# 删除指定钱包地址
sui client remove-address <YOUR_ALIAS_OR_ADDRESS>

2.3 账户操作

余额查询

1
2
3
4
5
6
7
8
9
10
11
# 请求测试币
sui client faucet

# 为指定地址获取测试代币
sui client faucet --address <YOUR_ALIAS_OR_ADDRESS>

# 查看余额
sui client balance

# 查看指定地址余额
sui client balance <YOUR_ALIAS_OR_ADDRESS>

账户信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看支付交易费用的 Coin 对象列表
sui client gas

# 查看指定地址的 Gas 对象列表
sui client gas <YOUR_ALIAS_OR_ADDRESS>

# 查看默认地址的所有对象
sui client objects

# 查看默认地址的所有对象(JSON 格式)
sui client objects --json

# 查看指定地址的所有对象
sui client objects <ADDRESS>

# 查看指定对象的详细信息
sui client object <OBJECT_ID>

# 查看指定对象的详细信息(JSON 格式)
sui client object <OBJECT_ID> --json

2.4 交易

转账

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 转移整个对象
sui client transfer --to <YOUR_ALIAS_OR_ADDRESS> --object-id <OBJECT_ID>

# 转移指定数量的 SUI
sui client transfer-sui \
--to <YOUR_ALIAS_OR_ADDRESS> \
--sui-coin-object-id <OBJECT_ID> \
--amount <AMOUNT> \
--gas-budget <GAS_BUDGET>

# 转移所有的 SUI
sui client transfer-sui \
--to <YOUR_ALIAS_OR_ADDRESS> \
--sui-coin-object-id <OBJECT_ID> \
--gas-budget <GAS_BUDGET>

交易信息查询

1
2
3
4
5
# 查看交易详情
sui client tx-block <TRANSACTION_DIGEST>

# # 查看交易详情(JSON 格式)
sui client tx-block <TRANSACTION_DIGEST> --json

2.5 本地测试链

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 启动本地链
RUST_LOG="off,sui_node=info" sui start --with-faucet --force-regenesis
# `RUST_LOG="off,sui_node=info"`: 设置日志级别,只显示 sui_node 的 info 级别日志
# `--with-faucet`: 启用水龙头功能,可以获取测试代币
# `--force-regenesis`: 强制重新生成创世区块,会清空之前的数据

# 检查本地链状态
curl --location --request POST 'http://127.0.0.1:9000' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"id": 1,
"method": "sui_getTotalTransactionBlocks",
"params": []
}'