Что означает "Ошибка пользовательской программы 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. Для этого вам может понадобиться написать некоторую пользовательскую логику сериализации.