発行者からトークンを送付する | JavaScriptでのXRPL開発初段編
XRPLでは、トラストラインを設定したアカウントとユーザー間であれば、即座にトークンを送金することができるようになります。
先ほどの章で、アリスはチャーリーが発行体となるDOJ
トークンを10,000
ほど受領する権利を得ましたので、チャーリーからアリスに1000 DOJ
を送付してみます。
前提
このガイドでは、以下の登場人物が登場する設定で進行します。
- チャーリー(トークン発行者)
- アリス(トークン受領者)
スクリプトを作成
以下は、チャーリーからアリスにトークンを送金するスクリプトです。
-
プロジェクトディレクトリに
payment_token.js
という新しいファイルを作成します。 -
以下のコードを
payment_token.js
に貼り付けます。const xrpl = require('xrpl');async function paymentToken() {// Testnetサーバーに接続しますconst client = new xrpl.Client('wss://s.altnet.rippletest.net:51233');await client.connect();// トークン発行者のウォレットシークレットキーを設定(チャーリー)const issuerWallet = xrpl.Wallet.fromSecret('charlie_wallet_secret_here');// トークン受領者のウォレットアドレスを設定(アリス)const recipientWalletAddress = 'alice_wallet_address_here';const currencyCode = 'DOJ'; // トークンの通貨コードconst amount = '1000'; // 送金するトークンの量try {const response = await client.submitAndWait({TransactionType: 'Payment', // 支払いAccount: issuerWallet.address, // チャーリーのアドレス(トークン発行者)Destination: recipientWalletAddress, // アリスのアドレスAmount: {issuer: issuerWallet.address, // チャーリーのアドレス(トークン発行者)currency: currencyCode, // DOJvalue: amount, // 1000},},{ wallet: issuerWallet } // チャーリー(トークン発行者)のウォレットで認証);// コンソールに結果を出力しますconsole.log('Transaction result:', response);} catch (error) {// エラーハンドリングconsole.error('An error occurred:', error);}// client.disconnect()メソッドを呼び出して、サーバーとの接続を切断しますclient.disconnect();}paymentToken().catch(console.error);charlie_wallet_secret_here
には、テストネットのチャーリーのシークレットキーを入力してください。alice_wallet_address_here
には、テストネットのアリスのアドレスを入力してください。
スクリプトの実行
-
コマンドラインで以下のコマンドを実行して、スクリプトを実行します。
Terminal window node payment_token.js -
成功すれば、コンソールに以下が表示されます。
Terminal window {id: 12,result: {Account: 'rh8xETfGs1Ktizj9EXZb5QpW4aqk8bWUSU', // 差出人のアドレス(トークン発行者:チャーリー)Amount: {currency: 'DOJ',issuer: 'rh8xETfGs1Ktizj9EXZb5QpW4aqk8bWUSU', // トークン発行者のアドレス(チャーリー)value: '1000'},DeliverMax: {currency: 'DOJ',issuer: 'rh8xETfGs1Ktizj9EXZb5QpW4aqk8bWUSU',value: '1000'},Destination: 'rQr8KfkCQcpqvFwmRspDoaL36reZhcdaeA', // アリスのアドレスFee: '12', // 送金手数料: 12 dropsFlags: 0,LastLedgerSequence: 475482,Sequence: 473776,SigningPubKey: 'EDF36017DE68C9A5E24ECB129161EACE7AE303E3FF151FF71E1160B0EEA6B8074F',TransactionType: 'Payment',TxnSignature: '8BFCFDD9E88C09277376C295C494231883C15BF91AEC86CFC288CF58731526CD8BDE4B13CC4EAEE1E6E51254F0BB0A8B9E7ACC1C0ABFEB9EB5C4ECBA891A330B',ctid: 'C007414800000001',date: 768404212,hash: '89283A3D48F7776E9FCE061713A787415A8E79428C318709C133A7A5F085EDC5', // ハッシュ値inLedger: 475464,ledger_index: 475464, // レジャーインデックス番号meta: {AffectedNodes: [Array],TransactionIndex: 0,TransactionResult: 'tesSUCCESS', // 成功delivered_amount: [Object]},validated: true // 検証済みのトランザクション},type: 'response'}ここで実際にアリスのアカウントアドレス情報用いて、エクスプローラーで確認してみましょう。成功していれば、
1000 DOJ
を受領できていることが確認できるかと思います。このように、XRPLではトラストライン機能を利用することで、非常にスマートで安全にトークンを発行することが可能となっています。