アカウント情報を確認する | JavaScriptでのXRPL開発初段編
先ほどの章で、アリスはチャーリーが発行体のトークンに対し、トラストラインをセットしました。
この章で、トラストラインがセットできているか確認することを目的に、rippled
のパブリックメソッド
を合わせて覚えてみましょう!
アカウント情報を取得するには、rippled
のパブリックメソッド
であるアカウントメソッド
を使用します。
前提
このガイドは、以下の登場人物が登場する設定で進行しています。
- チャーリー(トークン発行者)
- アリス(トークン受領者)
スクリプトを作成
アカウントが送金または受領できる通貨のリストを確認するため、account_currenciesコマンドを使用します。
-
プロジェクトディレクトリに
check_account_currencies.js
という新しいファイルを作成します。 -
以下のコードを
check_account_currencies.js
に貼り付けます。今回は再利用できるメソッドとして作成しています。
checkAccountCurrencies()
は引数のaccountAddress
に渡されたアドレスを元に情報を取得するメソッドです。const xrpl = require('xrpl');async function checkAccountCurrencies(accountAddress) {// Testnetサーバーに接続しますconst client = new xrpl.Client('wss://s.altnet.rippletest.net:51233');// client.connect()メソッドを呼び出して、サーバーに接続します// awaitを使って、接続が完了するまで待機しますawait client.connect();try {// account_currencies コマンドでトークンリストを取得しますconst response = await client.request({command: 'account_currencies',account: accountAddress,ledger_index: 'validated' // 確実に検証済みのレジャーから取得するには'validated'指定する必要があります});// コンソールに結果を出力しますconsole.log('Account Lines:', response);} catch (error) {console.error('Error retrieving account lines:', error);}// client.disconnect()メソッドを呼び出して、サーバーとの接続を切断しますawait client.disconnect();}const charlieAddress = 'charlie_wallet_address_here'; // チャーリーのアドレスcheckAccountCurrencies(charlieAddress); // 関数に引数としてアカウントアドレスを渡しますconst aliceAddress = 'alice_wallet_address_here'; // アリスのアドレスcheckAccountCurrencies(aliceAddress);charlie_wallet_address_here
には、テストネットのチャーリーのアドレスを入力してください。alice_wallet_address_here
には、テストネットのアリスのアドレスを入力してください。
スクリプトの実行
-
コマンドラインで以下のコマンドを実行して、スクリプトを実行します。
Terminal window node check_account_currencies.js -
成功すれば、コンソールに以下が表示されます。
Terminal window Account Lines: { // チャーリーの情報id: 1,result: {ledger_hash: 'D05315702B8617B192FB1666BF05F588A457C30D0F493C4FA802BAABDE34209E',ledger_index: 441812, // レジャーインデックス番号(このデータの参照元)receive_currencies: [], // 受領可能なトークンの配列send_currencies: [ 'DOJ' ], // 送信可能なトークンの配列validated: true // 検証済みの最新のレジャーから取得しているか?},type: 'response'}Account Lines: { // アリスの情報id: 1,result: {ledger_hash: 'D05315702B8617B192FB1666BF05F588A457C30D0F493C4FA802BAABDE34209E',ledger_index: 441812,receive_currencies: [ 'DOJ' ], // アリスが受領可能なトークンの配列send_currencies: [],validated: true},type: 'response'}DOJ
トークンの発行者であるチャーリーのアカウント情報の、send_currencies
にDOJ
トークンが含まれており、アリスのアカウント情報でも、receive_currencies
の配列にDOJ
トークンが受領できる状態であることも確認できました。このように、XRPLではウォレットごとのアカウント情報(状態)を保持しており、それらを元に厳密に検証・取引が行われています。
ledger_index、ledger_hashとは?
上記のコンソール・ログにledger_hash
が表示されたと思いますが、これはユニークなレジャー(台帳)のハッシュ値です。
このサンプルでは441812
番目に検証されたレジャーからデータを取得したということになります。
実際に、テストネットで441812
番目に検証されたレジャーを確認してみましょう。
このレジャー(441812
)のレジャーハッシュ値はD05315702B8617B192FB1666BF05F588A457C30D0F493C4FA802BAABDE34209E
となっており、上記のコンソール・ログと一致していることを確認できます。
コードなどの技術的な部分だけでなく、XRPLの全体像を理解していくにはこのように、目視で一つ一つ意味を確認・理解していくことが重要となります。
また、XRPL Explorerはテストネット版も提供しており、開発に必要なツールの一つなのでブックマークしておきましょう。