锚点中的“自定义程序错误 0xa2”是什么?

Eva*_*rad 1 anchor solana anchor-solana

我的 Anchor 程序抛出一个错误,如下所示:custom program error 0xa2。这是什么意思?我在哪里可以了解此错误的含义?

Eva*_*rad 5

这是Error: 162: 8 byte discriminator did not match what was expected

这意味着锚点期望帐户的数据以某个 8 字节开头,但事实并非如此。

这可能是因为您传递了错误的帐户类型(因此前 8 个字节完全错误),或者可能是因为您尝试使用 Zero_copy 但尚未实际写入这些字节(需要使用 #[account(零)] 在运行 .load_init()) 之前

如果您尝试从最初不是用 Anchor 编写的程序引用帐户,而现在您在 Anchor 中重写它,也可能会发生这种情况。您可能需要为此编写一些自定义序列化逻辑。