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

Моя программа Anchor дает мне Transaction simulation failed: Error processing Instruction 1: custom program error: 0xa7 и ничего полезного в логах.

Как мне вообще начать это отлаживать?

1 ответ

Ошибка пользовательской программы 0xa7 Error: 167: The given account is not owned by the executing program.

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

Это может произойти случайно, если вы забудете установить declare_id!(/* ... */)к идентификатору программы, которую вы пытаетесь поразить.

Рассмотрите возможность регистрации идентификатора программы, которую вы используете в своем клиенте javascript:

      console.log(program.programId)

А затем посмотрите, соответствует ли он открытому ключу, который находится в вашем target/idl/yourprogram.jsonфайл.

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