テスト用アカウントの作成 | JavaScriptでのXRPL開発 三段編
スクリプトの作成
-
プロジェクトディレクトリに
createAccounts.js
という新しいファイルを作成します。 -
以下のコードを
createAccounts.js
に貼り付けます。import { Client, Wallet } from 'xrpl';// 作成したいアカウントリストconst accountNames = ['ISSUER_A','ISSUER_B','ALICE','BOB','CHARLIE','DANIEL',];// アカウントのウォレットを格納するオブジェクトconst wallets = {};// クライアントを作成const client = new Client('wss://s.altnet.rippletest.net:51233');const main = async () => {await client.connect();for (const name of accountNames) {const wallet = Wallet.generate();wallets[name] = wallet;await fundAccount(wallet);console.log(`${name}_ADDRESS: ${wallet.address}`);console.log(`${name}_SEED: ${wallet.seed}`);}await client.disconnect();};// Faucetからアカウントに資金を追加するconst fundAccount = async (wallet) => {const response = await client.fundWallet(wallet);// console.log(response);};main().catch(console.error);
スクリプトの実行
-
コマンドラインで以下のコマンドを実行して、スクリプトを実行します。
Terminal window node createAccounts.js -
成功すれば、コンソールに以下が表示されます。
Terminal window ISSUER_A_ADDRESS: r████████████████████████████ISSUER_A_SEED: s████████████████████████████ISSUER_B_ADDRESS: r████████████████████████████ISSUER_B_SEED: s████████████████████████████ALICE_ADDRESS: r████████████████████████████ALICE_SEED: s████████████████████████████BOB_ADDRESS: r████████████████████████████BOB_SEED: s████████████████████████████CHARLIE_ADDRESS: r████████████████████████████CHARLIE_SEED: s████████████████████████████DANIEL_ADDRESS: r████████████████████████████DANIEL_SEED: s████████████████████████████上記を元に、メモをしておきましょう。
# トークン発行者AAddress:Secret:# トークン発行者BAddress:Secret:# アリスAddress:Secret:# ボブAddress:Secret:# チャーリーAddress:Secret:# ダニエルAddress:Secret:
環境変数ファイルの作成
環境変数ファイル(.env)を利用することで、効率的なソース管理ができるようになります。
このテストプロジェクトでは、アカウントの秘密鍵を管理するために使用します。
.env
ファイルで管理することで、各ソースで共通のアカウントの呼び出しが可能になります。
プロダクションレベルのプロジェクトでは必須の知識となりますので覚えておきましょう。
ライブラリのインストール
dotenv
ライブラリをインストールします。
npm install dotenv
.env ファイルの作成
プロジェクトのルートに.env
というファイルを作成し、以下のように定義してください。
ISSUER_A_SEED=s████████████████████████████ISSUER_B_SEED=s████████████████████████████ALICE_SEED=s████████████████████████████BOB_SEED=s████████████████████████████CHARLIE_SEED=s████████████████████████████DANIEL_SEED=s████████████████████████████
※不可視ファイルのため、Finderなどでは標準で表示されません。
wallets.js の作成
プロジェクトのルートにwallets.js
というファイルを作成し、以下のソースを記述してください。
上記で作成した.env
に定義した情報からアカウント情報生成し、オブジェクトをexport
するスクリプトを作成します。
import { Wallet } from 'xrpl';import { config } from 'dotenv';
config(); // dotenvの設定を読み込む
export const wallets = { issuerA: Wallet.fromSeed(process.env.ISSUER_A_SEED), issuerB: Wallet.fromSeed(process.env.ISSUER_B_SEED), alice: Wallet.fromSeed(process.env.ALICE_SEED), bob: Wallet.fromSeed(process.env.BOB_SEED), charlie: Wallet.fromSeed(process.env.CHARLIE_SEED), daniel: Wallet.fromSeed(process.env.DANIEL_SEED),};
使用方法
以下のように使用することができます。
import { Client} from 'xrpl';import { wallets } from './wallets.js';
const client = new Client('wss://s.altnet.rippletest.net:51233');
async function main() { try { await client.connect();
const { issuerA, issuerB, alice, bob, charlie, daniel } = wallets;
... }}
このように、少し工夫するだけで各ファイルで共通のアカウント情報を呼び出すことができるようになりました。
効率的に学習を進めることができると思いますし、自分で考えたプロダクトなどにも応用できるかと思います。