Перейти к основному содержанию
GET
Получить IDL
Параметры пути, схема ответа и примеры на этой странице сгенерированы из определения OpenAPI. Get IDL возвращает IDL программы по состоянию на определенный слот: последнюю версию, которая стала активной в момент slot или до него. slot не обязательно должен точно соответствовать версии, поэтому можно передать любую точку в истории. Чтобы получить конкретную версию, передайте ее slot из раздела Список версий IDL. IDL поступает из того же каталога, который Parsed Events и Parsed Streams используют для декодирования инструкций. Обозреватель Orb использует эти конечные точки для отображения IDL программ.

Варианты использования

  • Декодирование истории с правильным интерфейсом. Передайте слот транзакции, чтобы получить IDL, действовавший на момент ее выполнения. Инструкции и учетные записи программ со временем меняются, поэтому текущий IDL может неверно интерпретировать старые транзакции.
  • Поиск точных имен для фильтров. Сканирование истории транзакций match.programs[].instructions принимает имена инструкций в том виде, в котором они указаны в IDL.
  • Просмотр изменений интерфейса. Получите две версии и сравните их instructions, чтобы узнать, что было добавлено или удалено при обновлении. См. пример в разделе Список версий IDL.

Форматы IDL

Ответ содержит документ IDL в том виде, в котором он хранится. Программы в каталоге используют один из двух форматов Anchor, причем версии одной программы могут использовать оба формата. Перед чтением проверьте, какой формат вы получили: Оба формата содержат instructions. Большинство IDL также содержат accounts, types и errors, а многие — events.

Кредиты

Каждый запрос стоит 10 кредитов и доступен на всех тарифных планах. См. раздел Кредиты.

Ошибки

При других ошибках возвращается тело JSON с сообщением error, например {"error": "no IDL found for program KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD at or before slot 1"}.

Параметры запроса

string
обязательно
Адрес программы в кодировке base58.
number
обязательно
Слот для поиска. Он не обязан совпадать со слотом активации версии. Передайте slot из списка версий IDL, чтобы получить конкретную версию, или слот транзакции, чтобы получить IDL, действовавший на момент ее выполнения.

Авторизации

api-key
string
query
обязательно

Параметры пути

programId
string
обязательно

Адрес программы в кодировке base58.

Пример:

"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD"

slot
integer<uint64>
обязательно

Слот для поиска. Он не обязан совпадать со слотом активации версии. Передайте slot из ответа метода «Получить список версий IDL», чтобы получить конкретную версию, или слот транзакции, чтобы получить IDL, действовавший во время ее выполнения.

Требуемый диапазон: x >= 0
Пример:

205509752

Ответ

Документ IDL в сохраненном виде. Встречаются как устаревший формат Anchor, так и формат Anchor 0.30+, поэтому перед чтением проверьте, какой формат вы получили.

Документ IDL, возвращаемый в сохраненном виде. Встречаются два формата:

  • Устаревший Anchor (до версии 0.30): поля верхнего уровня name и version. В учетных записях инструкций используются isMut и isSigner.
  • Anchor 0.30+: поля верхнего уровня address и metadata (name, version, spec, description). Инструкции содержат discriminator, а в учетных записях инструкций используются writable и signer.

В обоих форматах есть instructions. Большинство IDL также содержат accounts, types и errors, а многие — events. Версии одной программы могут использовать разные форматы.