使用Metaplex上传NFT到Solana触发map属性读取错误如何解决?
报错原因
你遇到的TypeError: Cannot read properties of undefined (reading 'map')错误,直接触发点是上传脚本中的manifest.properties.creators.map调用:manifest是脚本读取的NFT元数据文件解析后的对象,调用map失败说明manifest.properties.creators字段为undefined,不存在于元数据中。
常见触发场景
- 元数据文件字段层级错误:
creators字段没有放在properties节点下,或者字段名拼写错误(比如写成单数creator、首字母大写Creators) - 资产路径配置错误:命令中指定的
/nft-assets路径不存在,或者路径下没有符合命名规范的元数据文件,导致脚本读取到空内容 - 元数据格式不规范:
creators没有按要求配置为数组类型
修复方案
校验资产路径
确认你执行的上传命令中/nft-assets路径正确,该目录下的资产命名严格遵循数字.后缀规则:比如0.png对应0.json、1.png对应1.json,没有缺号、跳号。修正元数据格式
打开首个元数据文件0.json,确保包含符合规范的properties.creators字段,示例格式如下:
{ "name": "NFT #0", "symbol": "TEST", "description": "NFT描述", "seller_fee_basis_points": 500, "image": "0.png", "properties": { "files": [ { "uri": "0.png", "type": "image/png" } ], "creators": [ { "address": "你的Solana钱包公钥", "share": 100 } ] } }
注意所有creator的share字段总和必须等于100,每个creator必须包含address和share两个必填字段。
- 清空缓存重试
修复完成后先删除项目下.cache目录的所有缓存文件,再重新执行上传命令:ts-node ~/metaplex-master/js/packages/cli/src/candy-machine-cli.ts upload /nft-assets --env devnet --keypair ~/.config/solana/devnet.json
内容的提问来源于stack exchange,提问作者112233
相关产品推荐
相关产品推荐

