Solana Cookbookの Mint the NFT のセクションを試していたときに発生したエラー。
(「actions.mintNFT」でNFT化するセクション)
環境はいずれもlocalnetで実行。
- Arweave:testnet.redstone.tools(Arweaveはdevnet/testnetがないため有志のオンチェーンを利用)
- Solana:devnet(Metaplexはlocalnetがないため)
【2022/5/11 追記】
Arweave公式と思われるtestnetを発見しました。
host: www.arweave.run
port: 443
protocol: https
現象
以下を実行すると、creatorsが参照できないというエラーが表示される。
% ts-node mint_nft.ts
/Users/user/Documents/Programming/Blockchain/solana-anchor-react-minimal-example/js/metaplex/ts/node_modules/@metaplex/js/lib/index.cjs.js:85
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
^
TypeError: Cannot read properties of undefined (reading 'creators')
at /Users/user/Documents/Programming/Blockchain/solana-anchor-react-minimal-example/js/metaplex/ts/node_modules/@metaplex/js/src/actions/mintNFT.ts:47:19
at Generator.next (<anonymous>)
at fulfilled (/Users/user/Documents/Programming/Blockchain/solana-anchor-react-minimal-example/js/metaplex/ts/node_modules/@metaplex/js/lib/index.cjs.js:85:58)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
原因
2つ原因があった。
- creatorsのフィールドをJSONファイルに記述していなかった。
- ArweaveのアップロードしたJSONファイルのフォーマットがおかしくなっていた。
また、 Metaplexのドキュメント のサンプルJSONをコピペして使っていたが、これ自体がJSONフォーマットに沿っていなかった。そのため、コピペしたあとに正しい情報に修正が必要。
対応
正しいJSONファイルにする。
JSONLint でJSONフォーマットが正しいか確認する
または、 Arweaveにアップロード済みサンプルJSON をコピペして動作するか確認する