@solana/spl-token v.0.2.0で「getAccountInfo is not a function」エラー

@solana/spl-token v0.2.0 と @project-serum/anchor v0.25.0 の組み合わせて、 Anchor - escrow のサンプルを試していた時の現象。

やりたいこと

escrow のサンプルでは、トークアカウントを作成して、エスクロー型にするため、OwnerをPDAアカウントに変更する流れになっている(PDAに権限を渡して、送受金できるようにする仕組みになっている)。
サンプルでは、トークンアカウントのOwnerがPDAになっているかテストするケースが入っていて、そのテストをクリアできるようにしたい。

現象

anchor testを実行すると以下のエラーが発生。

ターミナル

  1) escrow
       Initialize escrow:
     TypeError: mintA.getAccountInfo is not a function
      at /Users/user/Documents/Programming/Blockchain/solana-anchor-react-minimal-example/anchor/escrow/latest/tests/escrow.ts:171:27
      at Generator.next (<anonymous>)
      at fulfilled (tests/escrow.ts:28:58)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)

escrow.ts(抜粋)

   mintA = await Token.createMint(
      provider.connection, // connection: Connection
      payer, // payer: Signer
      mintAuthority.publicKey, // mintAuthority: PublicKey
      null, // freezeAuthority: PublicKey | null
      0, // decimals: number
      TOKEN_PROGRAM_ID // programId = TOKEN_PROGRAM_ID
    );

   let _initializerTokenAccountA = await mintA.getAccountInfo(
      initializerTokenAccountA
    );

原因

@solana/spl-token v0.2.0 からは、 mint.getAccountInfo が使えなくなっているっぽい。
また、書き方も v0.1.x から大幅に変わっている。

対応

@solana/spl-token - getAccount を利用する。

import { TOKEN_PROGRAM_ID, createMint, getOrCreateAssociatedTokenAccount, mintTo, getAccount } from "@solana/spl-token";

    mintA = await createMint(
      connection, // connection
      payer, // payer
      mintAuthority.publicKey, // mintAuthority
      null, // freezeAuthority
      9 // decimals
    );

        const _initializerTokenAccountA = await getAccount(connection, initializerTokenAccountAPubkey);

備考

@solana/web3.js - Connection もあるが、これを使ってOwnerを取得しようとすると「TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA」になってしまい、トークンアドレス自体のOwnerを取得してきてしまう。