Metaplex 拍卖行 execute_sale 函数抛出错误“程序日志:在 'index out of bounds: the len is 0 but the index is 0' 时出现恐慌”

Metaplex Auction house execute_sale function is throwing error " Program log: panicked at 'index out of bounds: the len is 0 but the index is 0'"

当我尝试使用 execute_sale transactio falis 时它抛出了这个错误

“等待交易确认超时”

https://solscan.io/tx/3ZxL5ATkhXWM995RKaMqRuNHfDjANCg5fPjxuq2oSbsU8p7tKsia2w7Apk2cBopinhGviXGQckC8rGTJC7C8Wchw?cluster=devnet

我输入

  1. 拍卖行地址 2.buyerPrice 3.token 铸造地址 4.token 尺码 5.buyer_pub_key 6.seller_pub_key 7.my 私钥

当 execute_sale 函数找不到匹配的买卖订单来执行销售时,就会发生“索引越界”。

要确保 execute_sale 有效,您需要满足以下条件:

  1. 价格为 P 的铸币厂 X 的卖单(确保您的资金费用账户有资金)
  2. 针对 mint X 的买单(确保您的钱包中有足够的资金,因为资金会进入托管)
  3. 买卖订单价格必须相同
  4. 必须针对同一拍卖行实例发出买卖订单
  5. 当您调用 execute_sale 时,指定的价格必须与买入和卖出订单价格一致。

当满足以上条件时,execute_sale即可生效。如果 execute_sale 无法找到匹配的 sell/buy 订单对,那么您将收到 not-so-helpful 索引越界错误。