発行者に紐づくトラストライン情報を確認する | JavaScriptでのXRPL開発初段編
先ほどの章では、Rippling
を許可したにもかかわらず、アリスからボブへのトークンの送付が失敗してしまいました。
原因を探るため、チャーリーに紐づくトラストラインの情報を一度確認してみましょう。
トラストラインのアカウント情報を取得するには、rippled
のパブリックメソッド
であるアカウントメソッド
を使用します。
前提
このガイドは、以下の登場人物が登場する設定で進行しています。
- チャーリー(トークン発行者)
- アリス(トークン受領者)
スクリプトを作成
トラストラインのリストを確認するため、account_linesコマンドを使用します。
-
プロジェクトディレクトリに
check_account_lines.js
という新しいファイルを作成します。 -
以下のコードを
check_account_lines.js
に貼り付けます。const xrpl = require('xrpl');async function checkAccountLines(accountAddress) {// Testnetに接続const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233');await client.connect();try {// account_lines コマンドを用いて確認const response = await client.request({command: 'account_lines', // コマンドaccount: accountAddress, // 確認したいアドレスledger_index: 'validated', // 確実に検証済みのレジャーから取得する});// コンソールに結果を出力しますconsole.log('Account Lines:', response.result.lines);} catch (error) {console.error('Error retrieving account lines:', error);}// client.disconnect()メソッドを呼び出して、サーバーとの接続を切断しますclient.disconnect();}// 関数に引数としてアカウントアドレスを渡すconst charlieAddress = 'charlie_wallet_address_here'; // チャーリーのアドレスcheckAccountLines(charlieAddress);charlie_wallet_address_here
には、テストネットのチャーリーのアドレスを入力してください。
スクリプトの実行
-
コマンドラインで以下のコマンドを実行して、スクリプトを実行します。
Terminal window node check_account_lines.js -
成功すれば、コンソールに以下が表示されます。
Terminal window Account Lines: [{ // アリスaccount: 'rQr8KfkCQcpqvFwmRspDoaL36reZhcdaeA',balance: '-1000', // アリスに対しての債務currency: 'DOJ',limit: '0',limit_peer: '10000',no_ripple: true, // No Rippleフラグno_ripple_peer: false,quality_in: 0,quality_out: 0},{ // ボブaccount: 'rDNVaJJSp9iQmHC8YAAwHytnLP9aXEPhDw',balance: '0',currency: 'DOJ',limit: '0',limit_peer: '10000',no_ripple: true, // No Rippleフラグno_ripple_peer: false,quality_in: 0,quality_out: 0}]発行者であるチャーリー視点で確認した結果、紐づくアカウントのトラストラインが、
no_ripple: true
となってしまっていました。また、
-1000
となっているのは、チャーリーの視点では「アリスに対して債務がある」という意味になるからです。例えるのであれば、これは国民が所有している国債と同じような概念となります。
Ripplingの許可とトラストラインの関係について
アリスとボブはトラストラインを設定し、チャーリーからトークンを送付してもらえる権利は得てはいますが、NoRippleフラグ
が有効になってしまっていました。
原因は、DOJ
トークンの発行者であるチャーリーのアカウントに対してRippleフラグ
を許可する前に、トラストラインをセットしてしまっていたことです。
基本的にユーザー間でのトークンの送付を許可したい場合は、発行者自身のアカウントのRippling
を有効にしてから、ユーザーにトラストラインをセットしてもらう必要がありますのでご注意ください。
次の章では、TrustSet
トランザクションを用いて、NoRippleフラグを無効化する方法を紹介します。