Что означает "Ошибка пользовательской программы 0xa2" в привязке?

Моя программа Anchor выдает ошибку, которая выглядит примерно так: custom program error 0xa2. Что это значит? Где я могу узнать, что означает эта ошибка?

1 ответ

Это Error: 162: 8 byte discriminator did not match what was expected.

Это означает, что якорь ожидал, что данные учетной записи будут начинаться с определенных 8 байтов, но этого не произошло.

Это может быть связано с тем, что вы передали неправильный тип учетной записи (поэтому первые 8 байтов были совершенно неправильными), или, возможно, потому, что вы пытаетесь использовать zero_copy и фактически еще не записали эти байты (нужно использовать #[account( ноль)] до запуска .load_init())

Это также может произойти, если вы пытаетесь сослаться на учетную запись из программы, которая изначально не была написана на Anchor, а теперь вы переписываете ее на Anchor. Для этого вам может понадобиться написать некоторую пользовательскую логику сериализации.

Другие вопросы по тегам