自定义程序错误:0x3f元plex糖果机createSetCollectionDuringMintInstruction



我有一个几周前设置的metaplex糖果机和收藏。铸币开始工作,但现在失败了。

报告的错误是

custom program error: 0x3f

似乎是从嵌套指令到元数据程序。应该是

set_and_verify_collection
readonly code: number = 0x3f;
readonly name: string = 'DataTypeMismatch';

可以从元数据反序列化中抛出。

https://github.com/metaplex-foundation/metaplex-program-library/blob/master/token-metadata/program/src/state/mod.rs

为令牌元数据和集合元数据调用。

我相信在这个方法中只有这两个地方会抛出它。AccountInfo被解析为多个帐户,但它只被反序列化为一个类型化实体,并考虑到这两个实体的大小和类型。

检查元数据,在集合上,它存在并且长度看起来正常,对于元plex元数据帐户来说是679字节。

现在,由于tx失败,正在生成的令牌的元数据不存在。但是,如果我尝试在没有添加'SetCollectionDuringMint'指令的情况下进行交易,则tx成功。

有趣。该令牌的元数据帐户已分配零字节。

我不记得这个变化。事实上,如果我查看源代码历史,找到较早的版本,我并没有明确要求创建元数据帐户。我只是在预先分配帐户,并在糖果机上打电话给薄荷糖。

糖果机是否更改为不再自动为铸造的NFT创建元数据帐户?

我刚把问题打出来,就突然想到可能的原因是什么。

几个星期前,我注意到这个旧的v2版本的糖果机,实际上并没有在违反约束的情况下停止交易的执行,而是向客户收取错误执行交易的费用。

这可能是'bot tax'协议允许真正的错误,可能发生的更早,被抑制。

v3的糖果机已经使这个东西你可以禁用,但我们是有点耦合到v2的时刻。

无论如何,我认为这里发生的事情是,机器人征税版本的糖果机,允许nft铸造,但实际上并没有完成设置。然后下一条指令,在铸币期间设置收集,无法完成。

真正的故障发生在交易的早期,在铸币厂的某个地方,我们不再符合铸币厂的标准,旧版本的糖果机只是向我们收费,默默地失败了。

不幸的是,根本原因仍然不清楚。从现在到那时可能发生的另一个变化是,集合现在是"活动的",已经超过了上线日期。我必须深入研究验证约束,看看是否有与此更改日期转换相关的任何与bot税相关的短路。

编辑:更新:看起来有一些变化,具体到devnet的令牌元数据程序和我的机器受到影响。我需要一些新的开发机器。

最新更新