错误的 ATA 帐户

Bad ATA account

使用metaplex auction-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 但后来我得到 0x12cPublicKeyMismatch.

希望能找到一些稳定的方法来完成这个,很多用户偶尔会遇到这种情况。

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

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

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