ウォレットの基本操作として、SOL とトークンの残高を確認できるようになりましょう。

プログラムで実現すること

Phantom を開くと、SOL とトークンの残高が確認できます。

この確認をプログラムから行います。

スクリーンショット 2022-06-14 17.17.10.png

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