Solana AnchorのTSファイルをReactに移行していたときに発生したエラー。
Buffer関連のエラーはよく発生するため、いろいろな情報があったが、自分のケースは以下でしか解決できなかった。
現象
以下のAnchorのTSコードをnpm startすると
// Get the PDA that is assigned authority to token account.
const [_pda, _nonce] = await PublicKey.findProgramAddress(
[Buffer.from(anchor.utils.bytes.utf8.encode("escrow"))],
program.programId
);
以下のエラーが発生する。
ReferenceError: Buffer is not defined
原因
詳しく調査していないが、Nodeサーバーのみ対応していて、Reactには対応していないモジュールがあると発生する現象だった気がする。
対応
以下のように追記する。
import { Buffer } from 'buffer';
// @ts-ignore
window.Buffer = Buffer;