ZooBCのあらゆるトランザクションを構築・署名・送信する、1つのコマンドラインツールです。シンプルなsend-zbcから、マルチシグ、ノード登録、取引所、オンチェーンストレージ、ガバナンスまで、50のコマンドを備えています。デフォルトでは機械が扱いやすい形式(JSONで入力し、JSONで出力)で動作し、人間向けの対話モードも用意しています。
01入手する
Linux x86_64版をダウンロードし、展開して実行するだけです。インストールも依存関係も不要です。
⬇ zoobc-cliをダウンロード(Linux x86_64)
# unpack and put it on your PATH tar xzf zoobc-cli-linux-x86_64.tar.gz sudo mv zoobc-cli /usr/local/bin/ # point it at any node or gateway (default: http://localhost:8080) # https://zoobc.network is the public TestNet gateway, not MainNet zoobc-cli list --api https://zoobc.network
他のプラットフォームにも今後対応します。現時点では Ubuntu / Linux x86_64 版のみです。
023つの実行方法
デフォルト:JSONで入力、JSONで出力
パラメーターを位置引数として渡すと、結果がJSONで返ります。他のアプリやスクリプトが呼び出すのはこのモードです。最初のパラメーターは常に送信者の秘密鍵です。
zoobc-cli send-zbc <privkey> ZBC_4HFG43GR_… 100000000 --api $API → {"transaction_hash":"a5f1…","amount":100000000, …}
対話モード:--verbose
各フィールドを1つずつ入力するよう促し、人間が読みやすい形式で結果を表示します。単発の操作に最適です。
zoobc-cli issue-token --verbose --api $API Sender private key: … · Symbol: … · Name: … · Decimals: …
パイプでJSONを渡す:--json-input
標準入力からパラメーターをJSONオブジェクトとして読み込みます。キーはhelp <cmd>が一覧表示するものとまったく同じです。
echo '{"sender_privkey":"…","recipient":"ZBC_…","amount":"100000000"}' \
| zoobc-cli send-zbc --json-input --api $API
03送信内容を調べる
2つの組み込みコマンドで必要な情報はすべてわかるため、ソースを読む必要はありません。
zoobc-cli list # every command, grouped by category zoobc-cli help multisig # the JSON fields for ONE command
help <cmd>は、各フィールドのキー、必須かどうか、デフォルト値、そしてすぐに編集できるサンプルのJSONオブジェクトを表示します:
multisig, N-of-M multisig SendZBC (inner tx + participant signatures) (tx type 5)
sender_privkey (required) Sender private key (64 hex)
participants (required) comma-separated participant ZBC addresses
min_signatures (required) required signatures (N of M)
nonce (optional) multisig account nonce [default: 0]
signer_privkeys (required) participant keys that sign now
recipient (required) inner SendZBC recipient address
amount (required) inner SendZBC amount (atomic units)
inner_fee (optional) inner SendZBC fee (atomic) [default: 10000000]
Sample: {"sender_privkey":"…","participants":"…", …}
04共通フラグと規約
| --api <url> | ノードまたはゲートウェイのエンドポイント。デフォルトはhttp://localhost:8080です。公開TestNetを使うにはhttps://zoobc.networkを指定します。これはMainNetではなく、稼働中のテストネットワークです。 |
| --fee <n> | トランザクション手数料を上書きします(アトミック単位のZBC)。省略すると、デフォルト値またはサイズに応じた最低額が使われます。 |
| --verbose | 対話式の入力 + 人間が読みやすい出力(モード2を参照)。 |
| --json-input | 標準入力からパラメーターをJSONオブジェクトとして読み込みます(モード3)。 |
金額と価格はすべてアトミック単位の整数です(ZBCは×1e8、トークン量は×10^decimals、注文価格は×1e8)。アドレスは完全なZBC_…文字列でも16進数でも指定できます。不正な入力でツールがクラッシュすることはなく、JSONのエラーオブジェクトを返します(--verboseではテキストのエラー).
05実例
# transfer a colored token zoobc-cli transfer-token $KEY ZBC_6FINNB6J_… <token_id> 500 --api $API # register a validator node (owner signs; node key supplies the pubkey; PoOwnership is built for you) zoobc-cli register-node $OWNER_KEY $NODE_KEY 100000000000 --api $API # open an N-of-M multisig and sign with your key (others co-sign later) zoobc-cli multisig $KEY "ZBC_A…,ZBC_B…,ZBC_C…" 2 0 "$KEY" ZBC_A… 100000000 5000000 --api $API # schedule a vesting/recurring payment: 1 ZBC per fire, 12 fires, monthly zoobc-cli scheduled-transfer $KEY ZBC_… 0 100000000 2592000 12 0 0 0 0 --api $API
06全50コマンド
すべてのトランザクションについて、バイト単位で正確なボディレイアウトはトランザクションマニュアルに掲載しています。コマンドのフィールドを確認するにはzoobc-cli help <cmd>を実行してください。
| send-zbc | アドレスにZBCを送る |
| liquid-payment | ZBCを時間をかけて少しずつ送る(ベスティング) |
| liquid-payment-stop | リキッドペイメントを停止(按分で精算) |
| transfer-token | 保有するカラードトークンを送る |
| issue-token | カラードコインのトークンを発行 |
| mint-token | ミント可能なトークンを追加発行 |
| burn-token | トークンをバーン(償還可能なら裏付け資産を償還) |
| finance-token | トークンの存続資金を補充 |
| market-create | (base,quote)のオーダーブックマーケットを開設 |
| order-place | 指値/成行注文を出す |
| order-cancel | 未約定の注文を取り消す |
| swap-create | アトミックスワップのオファーを作成 |
| swap-accept | スワップオファーを受諾(約定) |
| swap-cancel | 未成立のスワップオファーを取り消す |
| app-create | アプリを作成(2人対戦またはソロ対ハウス) |
| app-join | オープンなアプリに参加 |
| app-move | 手を送信 |
| app-resign | アプリを投了 |
| app-claim | 期限切れのアプリを請求 |
| app-settle | ステートチャネルアプリを精算(バウチャーを再生) |
| store-file | 分散型ストレージのファイルをアンカー(マニフェスト + 利用料) |
| add-prepaid-storage | アカウントのストレージ利用料を入金 |
| setup-dataset | アカウントデータセットのプロパティ→値を設定 |
| remove-dataset | アカウントデータセットのプロパティを削除 |
| delete-dataset | データセットオブジェクトを削除(デポジットを返金) |
| set-dataset-policy | データセットオブジェクトの管理ポリシーを設定 |
| transfer-dataset | データセットオブジェクトの譲渡を提案 |
| accept-dataset | 保留中のデータセット譲渡を受諾 |
| multisig | N-of-MマルチシグのSendZBC(内部tx + 署名) |
| escrow-request | 受取人起点のエスクローリクエストを作成 |
| approve-escrow | エスクローを承認 / 拒否 / 失効 |
| scheduled-transfer | タイマーによるベスティング / 定期送金 |
| cancel-schedule | 保留中の予約送金を取り消す |
| reassign-schedule | スケジュールの受取人を変更 |
| create-trigger | 将来のSendZBCを予約(キーパー/オラクル) |
| cancel-trigger | 保留中のトリガーを取り消す(返金) |
| attest-event | 外部イベントを証明(オラクルノード) |
| fee-vote-commit | 手数料スケール投票のコミットフェーズ |
| fee-vote-reveal | 手数料スケール投票の公開フェーズ |
| register-node | バリデーターノードを登録(所有者が署名し、ProofOfOwnershipを構築) |
| update-node | ノードのロック残高 / 登録情報を更新 |
| remove-node | ノードをバリデーターセットから除外 |
| claim-node | 以前に削除した登録を請求 |
| register-gateway | ゲートウェイを登録(鍵 + ドメイン + URL、ステークをロック) |
| unregister-gateway | ゲートウェイを撤回し、ステークを返金 |
| gateway-heartbeat | ゲートウェイの稼働を証明(GATEWAYの鍵で署名。中継は任意の送信者が可能) |
| register-release | 署名済みバイナリのリリースを公開 |
| revoke-release | 公開済みのリリースを取り消す |
| release-authority-propose | 新しいリリース権限者を提案 |
| release-authority-accept | リリース権限者の引き継ぎを受諾 |