ウォレットの基本操作として、SOL とトークンの残高を確認できるようになりましょう。
Phantom を開くと、SOL とトークンの残高が確認できます。
この確認をプログラムから行います。
ではプログラムから SOL 残高を確認してみます。
tour_de_whirlpool フォルダを Visual Studio Code などの開発ツールで開き、src フォルダの下に「011_get_sol_balance.ts」を作り、内容は下記とします。
import { Keypair, Connection } from "@solana/web3.js";
import secret from "../wallet.json";
const RPC_ENDPOINT_URL = "<https://api.devnet.solana.com>";
const COMMITMENT = 'confirmed';
async function main() {
// Devnet の RPC への要求用のコネクションを作成
const connection = new Connection(RPC_ENDPOINT_URL, COMMITMENT);
// wallet.json から秘密鍵を読み込み (秘密鍵と公開鍵のペアは Keypair クラスで管理する)
const keypair = Keypair.fromSecretKey(new Uint8Array(secret));
// 使用する RPC とウォレットの公開鍵を表示
// 公開鍵を表示する場合は Base58 形式の文字列で表示する
console.log("endpoint:", connection.rpcEndpoint);
console.log("wallet pubkey:", keypair.publicKey.toBase58());
// SOL 残高取得
// Connection クラスの getBalance メソッドを利用する
const sol_balance = await connection.getBalance(keypair.publicKey);
// SOL 残高表示
// lamports 単位の整数で内部管理されているため SOL 単位にするには 10^9 で割る (1 SOL = 10^9 lamports)
console.log("lamports:", sol_balance);
console.log("SOL:", sol_balance / 10**9);
}
main();
実行し、Phantom の画面と同じ公開鍵と SOL の残高が表示されることを確認します。
$ ts-node src/011_get_sol_balance.ts endpoint: https://api.devnet.solana.com wallet pubkey: 2fng9ronQimfU3osQUDAcuQnoXH3DhsyzFTyppnfGfm8 lamports: 1191782892 SOL: 1.191782892