メインコンテンツまでスキップ

4. 学習用アカウントの準備

本書では、実際のネットワーク上の資産は扱わず、テストネット上で動作を確認できる専用アカウントを用意します。 テストネットでは faucet(フォーセット)を利用して、少量の XYM を無料で受け取ることができます。 これにより、安全に開発や学習を進めることができます。

4.1 ニーモニックからの生成

4.1.1 4 つのアカウントを生成

Symbol SDK では、ニーモニックから複数のアカウントを派生させることができます。 学習用として、送信者・受信者・マルチシグ関連・特殊用途など、4 つのアカウントをあらかじめ生成しておくと便利です。

【コード例:ニーモニックからアカウントを生成】

4.1.2 コンスタントクラスに設定

生成したアカウントは、プログラム内で使いやすいように定数クラスにまとめます。 これにより、学習中に毎回アカウントを生成する必要がなくなり、ソースコードの見やすさと再利用性が向上します。

src/KeyStore.ts
import { Bip32 } from 'symbol-sdk';
import { KeyPair, SymbolFacade } from 'symbol-sdk/symbol';

export class KeyStore {
private readonly mnemonic =
'evil method angle water happy candy dawn follow stand identify expand only ' +
'***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** *****';
private readonly password = '';

private keypairs: KeyPair[] = [];

constructor(networkType: 'mainnet' | 'testnet' = 'testnet') {
const maxAccounts = 4;
const facade = new SymbolFacade(networkType);
const bip32Node = new Bip32().fromMnemonic(this.mnemonic, this.password);
for (let i = 0; i < maxAccounts; i++) {
const bip32Path = facade.bip32Path(i);
const childBip32Node = bip32Node.derivePath(bip32Path);
const keypair = SymbolFacade.bip32NodeToKeyPair(childBip32Node);
this.keypairs.push(keypair);
}
}

public get AlicePrivateKey() {
return this.keypairs[0].privateKey;
}
public get AlicePublicKey() {
return this.keypairs[0].publicKey;
}

public get BobPrivateKey() {
return this.keypairs[1].privateKey;
}
public get BobPublicKey() {
return this.keypairs[1].publicKey;
}

public get CarolPrivateKey() {
return this.keypairs[2].privateKey;
}
public get CarolPublicKey() {
return this.keypairs[2].publicKey;
}

public get DavePrivateKey() {
return this.keypairs[3].privateKey;
}
public get DavePublicKey() {
return this.keypairs[3].publicKey;
}
}

4.2 テストネットでの利用

4.2.1 フォーセットから少量 XYM を取得

テストネットの XYM は、以下のフォーセットから入手できます。

XYM を受け取るには、10 人以上のフォロワーがいて、作成から 31 日以上経過した x.com アカウントが必要です。

4.2.2 デスクトップウォレットに設定

取得した XYM を確認するために、公式の Symbol デスクトップウォレットに学習用アカウントをインポートします。 ウォレットに設定しておくことで、トランザクションの確認や署名状態の確認などが簡単に行えます。