以下のページでは、Injectiveに接続するコマンドラインインターフェースであるDocumentation Index
Fetch the complete documentation index at: https://injectivelabs-mintlify-jp-developers-first-half-1777019423.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
injectivedで何ができるかを説明します。injectivedを使用して、スマートコントラクトのアップロード、データのクエリ、ステーキング活動の管理、ガバナンスプロポーザルの操作などを通じて、Injectiveブロックチェーンと対話できます。
前提条件
injectivedがインストールされていることを確認
詳細については、injectivedのインストールを参照してください。injectivedのインストールに成功していれば、次のコマンドを実行できるはずです:
Docker化されたCLIの使用
Dockerから実行する場合、コンテナにホームディレクトリをマウントする必要があります。- dockerがイメージ
injectivelabs/injective-core:v1.14.1を実行します injectivedはコンテナ内からCLIを実行するコマンドですkeys addはキーを追加するコマンドですmy_keyはキーの名前です--home /root/.injectiveはコンテナ内のCLIのホームディレクトリです-v ~/.injective:/root/.injectiveはホストの~/.injectiveディレクトリをコンテナの/root/.injectiveディレクトリにマウントするだけです。
/root/.injective/keyring-fileディレクトリに保存されます。これは、ホストの~/.injective/keyring-fileディレクトリと同じです。
すべてのキーを一覧表示するには、次のコマンドを実行します:
RPCエンドポイントの使用
Injectiveブロックチェーンにアクセスする前に、ノードが実行されている必要があります。自分自身のフルノードを実行するか、他のノードに接続するかのいずれかを選択できます。 状態をクエリしてトランザクションを送信するには、ピア接続ネットワーク全体のアクセスポイントであるノードに接続する必要があります。自分自身のフルノードを実行するか、他のノードに接続するかのいずれかを選択できます。 自分のノードを実行するは上級ユーザー向けです。ほとんどのユーザーには、パブリックノードへの接続をお勧めします。 RPCエンドポイントを設定するには、次のコマンドを使用します:testnetのみの場合、次を使用できます:
https://k8s.testnet.tm.injective.network:443 (chain-id injective-888)一般的なヘルプ
injectivedに関する一般的な情報については、次のコマンドを実行します:
injectivedコマンドに関する詳細情報については、コマンドの後に-hまたは--helpフラグを付けます。例:
injectivedクライアントの設定
injectivedのより多くのオプションを設定するには、~/.injective/config/ディレクトリのconfig.tomlファイルを編集します。keyring-backendがfileに設定されている場合、Keyringファイルは~/.injective/keyring-fileディレクトリに配置されます。keyring-backendをtestまたはosに設定することもできます。testの場合、ファイル~/.injective/keyring-testとして保存されますが、パスワード保護はされません。
ファイル内のすべてのオプションはCLIを使用して設定できます: injectived config set client <option> <value>。
トランザクションの生成、署名、ブロードキャスト
次のコマンドを実行すると、送信者のアカウントから受信者のアカウントにINJトークンが送信されます。1000injは送信するINJトークンの量で、1 INJ = 10^18 injであるため、1000injは非常に小さな単位(ごく少額)です。
- 1つの
Msg(x/bankのMsgSend)を持つトランザクションを生成し、生成されたトランザクションをコンソールに出力します。 $MY_WALLETアカウントからトランザクションを送信する確認をユーザーに求めます。- keyringから
$MY_WALLETを取得します。前のステップでCLIのkeyringをセットアップしているため、これが可能です。 - keyringのアカウントで生成されたトランザクションに署名します。
- 署名されたトランザクションをネットワークにブロードキャストします。CLIがパブリックInjectiveノードのRPCエンドポイントに接続されているため、これが可能です。
トランザクションの生成のみ
トランザクションの生成は、任意のtxコマンドに--generate-onlyフラグを追加するだけで簡単に行えます。例:
> unsigned_tx.jsonを追加することで、署名されていないトランザクションをファイルに保存することもできます(署名者間でより簡単にやり取りするため)。
事前に生成されたトランザクションの署名
CLIを使用してトランザクションに署名するには、署名されていないトランザクションがファイルに保存されている必要があります。署名されていないトランザクションが現在のディレクトリのunsigned_tx.jsonというファイルにあると仮定しましょう(上記の段落を参照)。その後、次のコマンドを実行します:
MY_WALLETのキーを使用してSIGN_MODE_DIRECTで署名します。署名されたトランザクションはJSONとしてコンソールに出力され、上記と同様にコマンドラインに> signed_tx.jsonを追加することでファイルに保存できます。
tx signコマンドで考慮すべきいくつかの有用なフラグ:
--sign-mode:amino-jsonを使用してSIGN_MODE_LEGACY_AMINO_JSONでトランザクションに署名できます、--offline: オフラインモードで署名します。これは、tx signコマンドが署名に必要な署名者のアカウント番号とシーケンスを取得するためにノードに接続しないことを意味します。この場合、--account-numberと--sequenceフラグを手動で指定する必要があります。これは、インターネットにアクセスできないセキュアな環境での署名など、オフライン署名に役立ちます。
複数の署名者による署名(Multi Sig)
複数の署名者による署名はtx multi-signコマンドで行われます。このコマンドは、すべての署名者がSIGN_MODE_LEGACY_AMINO_JSONを使用することを前提としています。フローはtx signコマンドのフローと類似していますが、署名されていないトランザクションファイルに署名する代わりに、各署名者が以前の署名者によって署名されたファイルに署名します。tx multi-signコマンドは、既存のトランザクションに署名を追加します。署名者は、トランザクションで指定された順序と同じ順序で署名することが重要です。これはGetSigners()メソッドを使用して取得できます。
例えば、unsigned_tx.jsonから始めて、トランザクションに4人の署名者がいると仮定すると、次のように実行します:
トランザクションのブロードキャスト
トランザクションのブロードキャストは、次のコマンドを使用して行います:--broadcast-modeフラグを渡して、ノードから受信するレスポンスを指定できます:
block: CLIはトランザクションがブロックに含まれるのを待ちます。sync: CLIはCheckTx実行レスポンスのみを待機します。含まれていることを確認するために、トランザクション結果を手動でクエリしてください。async: CLIは即座に戻ります(トランザクションが失敗する可能性があります) - 使用しないでください。
