【问题标题】:错误的 ATA 帐户
【发布时间】:2022-01-15 07:08:26
【问题描述】:

使用metaplexauction-house合约时,部分用户无法完成sell命令。 确认如果将相同的NFT发送到不同的钱包,那个钱包可以sell就好了。

问题似乎很糟糕ATA。 最初,通过https://github.com/metaplex-foundation/metaplex/blob/b7760611d0838307757b831505eaaffee25b1b2a/js/packages/cli/src/auction-house-cli.ts#L260 返回的ATA 帐户内部没有ownertoken

查看失败: https://explorer.solana.com/tx/4Y6ZBqeWH1yFvaEJ2Hv6mkCxqdVNt9GQ9iHq15PoJY5JVxmTzHJx3MSKABchMBaY3Jd5WY4HpeN4a9bSTQKEJv1Z

当发送到另一个钱包时,能够完成就好了。 https://explorer.solana.com/tx/GUybhU53qY56bu4j2raQyp7uecGLgaFge6GBvRNtX1u8gqDzocKk8MDg52upZV985UPW8FAregpwTv7JGyWdNwf

手动设置ATA后,仍然没有帮助。 https://explorer.solana.com/address/Cu6Dru1j6PZa3f9K2acuqsHcaVDRxniFVqPPk7WX7RaC

似乎由于令牌是0

尝试使用getTokenLargestAccounts 找到正确的ATA,但后来我得到0x12c,上面写着PublicKeyMismatch

希望有人能帮助我们找到一种稳定的方法来完成这项工作,这偶尔会发生在许多用户身上。

【问题讨论】:

    标签: solana nft metaplex


    【解决方案1】:

    您链接的代码 getATAForMint 实际上并未创建 ATA,这就是未填充 ownertoken 的原因。

    您正确链接的后续事务创建了 ATA,这就是它成功的原因。

    所以解决这个问题的一种方法是:

    【讨论】:

    • 对不起,我没有跟进。我添加了一个检查 ATA == maximumTokenAccount 以及 ATA 是否存在。将根据需要创建 ATA 并传输到 NFT。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    相关资源
    最近更新 更多