# 命令行工具介绍

命令行工具介绍

- [命令行工具](./cmd.html#命令行工具)
- 命令详情
  - [全局参数](./cmd.html#全局参数)
  - 账户操作
    - [创建账户](./cmd.html#创建账户)
    - [查询账户余额](./cmd.html#查询账户余额)
    - [导入私钥](./cmd.html#导入私钥)
    - [导出私钥](./cmd.html#导出私钥)
  - 钱包操作
    - [修改钱包密码](./cmd.html#修改钱包密码)
    - [锁定和解锁钱包](./cmd.html#锁定和解锁钱包)
    - [交易签名](./cmd.html#交易签名)
    - [交易发送](./cmd.html#交易发送)
  - 区块操作
    - [查询最新区块头](./cmd.html#查询最新区块头)
    - [查询一定高度区间的区块信息或区块头信息](./cmd.html#查询一定高度区间的区块信息或区块头信息)
    - [查询某高度的区块哈希](./cmd.html#查询某高度的区块哈希)
    - [根据区块哈希查询区块信息](./cmd.html#根据区块哈希查询区块信息)
  - net操作
    - [查询节点同步状态](./cmd.html#查询节点同步状态)
    - [查询peer节点信息](./cmd.html#查询peer节点信息)
  - seed操作
    - [生成seed](./cmd.html#生成seed)
    - [导入seed并设置密码](./cmd.html#导入seed并设置密码)
    - [通过密码查询seed](./cmd.html#通过密码查询seed)
  - [send操作](./cmd.html#send操作)
  - [tx操作](./cmd.html#tx操作)

## 命令行工具

chain33-cli是chain33自带的命令行工具，可以进行基本的账户，交易，钱包操作和对应的信息查询。

## 命令详情

### 全局参数

用于指定chain33节点的地址端口和平行链名称

```
--paraName string    parachain
--rpc_laddr string   http url (default "https://localhost:8801")

```

示例

```
./chain33-cli --rpc_laddr "https://10.10.10.2:8901" --paraName "user.p.fzmtest." <cmd>
```

向节点`10.10.10.2`的平行链`user.p.fzmtest.`发送命令`cmd`

### 账户操作

账户命令用于创建账户，查询账户和余额，导入导出私钥

```
balance     Get balance of a account address
create      Create a new account with label
dump_key    Dump private key for account address
import_key  Import private key with label
```

#### 创建账户

```
./chain33-cli account create -l <label>
```

- label : 账户标签，可不填

#### 查询账户余额

```
./chain33-cli account balance -a <addr> -e <exec>
```

- addr : 账户地址
- exec : 智能合约名，可不填

#### 导入私钥

```
./chain33-cli account import_key -k <key> -l <label>
```

- key : 私钥
- label : 账户标签，可不填

#### 导出私钥

```
./chain33-cli account dump_key -a <addr>
```

- addr : 账户地址

### 钱包操作

钱包命令主要用于修改钱包密码，加解锁钱包，签名和发送交易

```
lock        Lock wallet
send        Send a transaction
sign        Sign transaction
unlock      Unlock wallet
set_pwd     Set password
```

#### 修改钱包密码

```
./chain33-cli wallet set_pwd -n <new> -o <old>
```

- new : 新密码
- old : 旧密码

#### 锁定和解锁钱包

```
./chain33-cli wallet lock 
./chain33-cli wallet unlock -p <pwd>
```

解锁钱包需要带上密码，密码最初由导入seed时设置

#### 交易签名

```
./chain33-cli wallet sign -k <private key> -d <raw data>
```

- private key : 签名私钥
- raw data : 交易原始数据

#### 交易发送

```
./chain33-cli wallet send -d <signed data>
```

- signed data : 签名后的交易

### 区块操作

区块命令主要用于查询区块高度，区块信息

```
get                    Get blocks between [start, end]
hash                   Get hash of block at height
headers                Get block headers between [start, end]
last_header            View last block header
query_hashs            Query block by hashs
view                   View block info by block hash
```

#### 查询最新区块头

```
./chain33-cli block last_header
```

#### 查询一定高度区间的区块信息或区块头信息

```
./chain33-cli block get -s <start> -d <end>
./chain33-cli block headers -s <start> -d <end>
```

- start : 起始高度
- end : 结束高度

#### 查询某高度的区块哈希

```
./chain33-cli block hash -t <height>
```

- height : 区块高度

#### 根据区块哈希查询区块信息

```
./chain33-cli block query_hashs -s <hash>
```

- hash : 区块哈希，可查询多个哈希，用空格分开

### net操作

net命令主要用于查询节点是否同步，查询peer节点的信息

```
is_sync       Get blockchain synchronization status
peer          Get remote peer nodes

```

#### 查询节点同步状态

```
./chain33-cli net is_sync
```

#### 查询peer节点信息

```
./chain33-cli net peer
```

### seed操作

seed是生成chain33钱包的随机数，创建账户和解锁钱包之前需要先创建或者导入seed

```
generate    Generate seed
get         Get seed by password
save        Save seed and encrypt with passwd

```

#### 生成seed

```
./chain33-cli seed generate -l <lang>
```

- lang : seed语言种类，0:English, 1:简体中文

#### 导入seed并设置密码

```
./chain33-cli seed save -s <seed> -p <pwd>
```

- seed : seed字符，使用空格分开
- pwd : 钱包密码，[8-30]个字符和数字的组合

#### 通过密码查询seed

```
./chain33-cli seed get -p <pwd>
```

- pwd : 钱包密码

### send操作

send命令用于coins转账，包含了交易签名和发送

```
./chain33-cli send coins transfer -a <count> -n <note> -t <toAddr> -k <privateKey>
```

- count : 转账金额
- text : 交易记录
- toAddr : 目标账户地址
- privateKey : 账户私钥

### tx操作

tx命令主要用于查询交易信息

```
./chain33-cli tx query -s <txhash>
```

- txhash : 交易哈希