SolanaのSPL TokenでcreateMintすると「fields must be array of Layout instances」エラー

現象

「"@solana/spl-token": "^0.2.0"」で仕様がいろいろ変わったみたいで、createMintすると以下のエラーが表示される。

TypeError: fields must be array of Layout instances

package.json

{
    "dependencies": {
        "@project-serum/anchor": "^0.22.1",
        "@solana/spl-token": "^0.2.0",
        "@solana/web3.js": "^1.36.0"
    },
    "devDependencies": {
        "@types/chai": "^4.3.0",
        "@types/mocha": "^9.0.0",
        "chai": "^4.3.6",
        "ts-mocha": "^8.0.0",
        "typescript": "^4.3.5"
    }
}

TypeScript

    mint = await createMint(
      connection,      // connection,
      provider.wallet.payer,           // payer,
      provider.wallet.publicKey,  // authority,
      null,            // freeze_authority???
      9                // decimals
    );

原因

(調査中)おそらくバージョン互換などで仕様が変わった???

"@solana/spl-token"の 0.2.x と 0.1.x で、いろいろ変わったように見える。
いままで動いていたものが動かなくなったりと。

対応

buffer-layoutの最新版を入れたら直った。

% npm add @solana/buffer-layout
% npm i

最終的に以下のようなバージョンになった。

package.json

{
    "dependencies": {
        "@project-serum/anchor": "^0.22.1",
        "@solana/buffer-layout": "^4.0.0",
        "@solana/spl-token": "^0.2.0",
        "@solana/web3.js": "^1.36.0"
    },
    "devDependencies": {
        "@types/chai": "^4.3.0",
        "@types/mocha": "^9.0.0",
        "chai": "^4.3.6",
        "ts-mocha": "^8.0.0",
        "typescript": "^4.3.5"
    }
}