現象
「"@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"
}
}