You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Metaplex candy-machine-v2源码第845行TypeError报错?

Metaplex Candy Machine V2 更新时报 Cannot read properties of undefined (reading 'program') 修复方案

报错基础信息

  • 触发场景:执行Candy Machine V2更新命令时抛出
  • 报错位置:C:\Users\Hardy V\Desktop\solana-nft-T1\metaplex-master\js\packages\cli\src\candy-machine-v2-cli.ts:845
  • 报错对应源码行:const candyMachine = new PublicKey(cacheContent.program.candyMachine);
  • 核心报错信息:TypeError: Cannot read properties of undefined (reading 'program'),即代码尝试从undefined值上读取program属性
    报错运行截图

根因定位

报错的直接原因是执行到该行时cacheContent变量为undefined,CLI没有成功加载到糖果机的本地缓存,常见触发场景:

  • 执行更新命令时未传入和创建糖果机时一致的-e/--env网络参数,CLI默认查找devnet环境缓存,对应缓存文件不存在
  • 执行命令的终端工作目录错误,CLI无法读取到当前目录下.cache文件夹内的对应网络缓存文件
  • 本地.cache目录下的缓存文件被误删、修改损坏,JSON解析失败导致cacheContent无法正常赋值

修复操作

  1. 确认创建糖果机时使用的Solana网络(devnet/testnet/mainnet-beta),执行更新命令时显式指定匹配的网络参数,主网更新命令参考:
    ts-node candy-machine-v2-cli.ts update_candy_machine -e mainnet-beta -k <你的本地钱包路径> -cp <糖果机配置文件路径>
  2. 执行命令前先确认当前终端工作目录为Candy Machine CLI的根目录,目录下存在.cache文件夹,且文件夹内包含对应网络的缓存文件(命名规则一般为temp-<网络名>.json)
  3. 如果缓存文件已丢失,直接通过Solana链上浏览器查询你之前部署的Candy Machine账户地址,手动在.cache目录下创建对应网络的缓存文件,补全program.candyMachine字段为你的糖果机公钥后即可正常执行更新操作。

内容的提问来源于stack exchange,提问作者Hardee Shareef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 07:01:02