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

Metaplex Auctioneer执行executeSale缺少额外账户密钥问题咨询

问题说明

调用Auctioneer JS SDK中Metaplex Auction House Auctioneer模块的executeSale函数时触发程序报错,错误日志如下:

'Program neer8g6yJq2mQM6KbnViEDAD4gr3gRZyMMf4F2p3MEh invoke [1]',
    'Program log: Instruction: ExecuteSale',
    'Program hausS13jsjafwWwGqZTUQRmWyvyxn9EQpqMwV1PBBmk invoke [2]',
    'Program log: Instruction: AuctioneerExecuteSale',
    'Program log: ProgramError occurred. Error Code: NotEnoughAccountKeys. Error Number: 47244640256. Error Message: The instruction expected additional account keys.',
    'Program hausS13jsjafwWwGqZTUQRmWyvyxn9EQpqMwV1PBBmk consumed 68367 of 137171 compute units',
    'Program hausS13jsjafwWwGqZTUQRmWyvyxn9EQpqMwV1PBBmk failed: insufficient account keys for instruction',
    'Program neer8g6yJq2mQM6KbnViEDAD4gr3gRZyMMf4F2p3MEh consumed 131196 of 200000 compute units',
    'Program neer8g6yJq2mQM6KbnViEDAD4gr3gRZyMMf4F2p3MEh failed: insufficient account keys for instruction'

现有三个待确认问题:

  • 该问题是否已完成官方修复
  • metaplex-program-library仓库编号588的PR是否可以修复该bug
  • 参考上述PR改动重部署程序并拿到新的Auctioneer程序地址后,如何搭配旧版SDK使用重部署的程序

解答

官方修复进度

该报错是旧版Auctioneer程序AuctioneerExecuteSale指令缺失必要账户入参校验导致的已知问题,官方已在后续正式版本中合并对应修复补丁,主网部署的官方Auctioneer程序已经完成更新,将SDK升级到对应最新稳定版即可解决官方程序实例下的同类报错。

PR修复有效性

你提到的588号PR正是针对该问题的修复补丁:该补丁补全了AuctioneerExecuteSale指令的必填账户列表,对齐了上层Auction House程序对execute sale指令的账户校验规则,本地部署验证可以完全解决日志中提示的账户不足报错。

自定义部署程序适配旧版SDK方案

旧版Auctioneer JS SDK默认硬编码了官方Auctioneer程序地址,要替换为自行重部署的程序地址,按以下步骤操作即可:

  • 初始化AuctionHouse客户端实例时,跳过默认程序地址配置项,手动传入你重部署生成的Auctioneer程序ID
  • 覆盖SDK内置的executeSale指令账户构造逻辑,补全588号PR中新增的必填账户字段,避免SDK按旧逻辑构造交易时漏传账户
  • 交易发送前手动校验传入账户的顺序、权限与你部署的程序指令要求完全匹配

临时适配方案:如果不想修改SDK底层源码,也可以在构造交易时将自定义程序地址作为额外账户传入,覆盖SDK默认的程序ID参数,但该方案需要手动对齐所有账户顺序,出错概率较高,非特殊场景不推荐使用。


内容的提问来源于stack exchange,提问作者Abhishek Faliya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:27:09