0

我正在尝试从公钥中获取帐户:

await program.account.myAccountType.fetch(somePubkey);

但随后 Anchor 抛出一个错误说:

Invalid account discriminator

什么是帐户鉴别器?

4

1 回答 1

1

帐户鉴别器是 Anchor 放在帐户前面的几个字节,例如标头。它让锚知道它应该将数据反序列化为哪种类型的帐户。

如果您尝试将某些内容获取为 ,则会发生此错误myAccountType,但它实际上是某个其他帐户的公钥,例如令牌帐户或程序中的另一个帐户。

以下是您可以尝试的一些事情:

  • 控制台记录somePubkey并将其放入资源管理器
  • 额外加倍确保您的意思是program.account.myAccountType而不是program.account.someOtherAccountType
于 2022-01-17T22:47:19.873 回答