Saltar al contenido principal
GET
Obtener IDL
Los parámetros de ruta, el esquema de respuesta y los ejemplos de esta página se generan a partir de la definición de OpenAPI. Obtener IDL devuelve el IDL de un programa correspondiente a un slot: la versión más reciente que se activó en slot o antes. slot no necesita coincidir exactamente con una versión, por lo que puedes pasar cualquier punto del historial. Para obtener una versión específica, pasa su slot desde Listar versiones de IDL. El IDL proviene del mismo catálogo que Parsed Events y Parsed Streams usan para decodificar instrucciones. El explorador Orb usa estos endpoints para mostrar los IDL de los programas.

Casos de uso

  • Decodifica el historial con la interfaz correcta. Pasa el slot de una transacción para obtener el IDL que estaba vigente cuando se ejecutó. Los programas cambian sus instrucciones y cuentas con el tiempo, por lo que el IDL actual puede interpretar incorrectamente las transacciones anteriores.
  • Encuentra los nombres exactos para los filtros. Escanear el historial de transacciones match.programs[].instructions acepta los nombres de las instrucciones tal como aparecen en el IDL.
  • Revisa los cambios de la interfaz. Obtén dos versiones y compara sus instructions para ver qué añadió o eliminó una actualización. Consulta el ejemplo en Listar versiones de IDL.

Formatos de IDL

La respuesta es el documento IDL tal como está almacenado. Los programas del catálogo usan uno de dos formatos de Anchor, y las versiones de un mismo programa pueden usar ambos. Comprueba qué formato recibiste antes de leerlo: Ambos formatos tienen instructions. La mayoría de los IDL también tienen accounts, types e errors, y muchos tienen events.

Créditos

Cada solicitud cuesta 10 créditos y está disponible en todos los planes. Consulta Créditos.

Errores

Otros errores devuelven un cuerpo JSON con un mensaje error, como {"error": "no IDL found for program KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD at or before slot 1"}.

Parámetros de la solicitud

string
requerido
Dirección del programa codificada en base58.
number
requerido
Slot que se buscará. No necesita coincidir con el slot de activación de una versión. Pasa un slot de Listar versiones de IDL para obtener esa versión exacta, o el slot de una transacción para obtener el IDL que estaba vigente cuando se ejecutó.

Autorizaciones

api-key
string
query
requerido

Parámetros de ruta

programId
string
requerido

Dirección del programa, codificada en base58.

Ejemplo:

"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD"

slot
integer<uint64>
requerido

Slot que quieres consultar. No tiene que coincidir con el slot de activación de una versión. Pasa un slot de Listar versiones de IDL para obtener esa versión exacta o el slot de una transacción para obtener la IDL vigente cuando se ejecutó.

Rango requerido: x >= 0
Ejemplo:

205509752

Respuesta

El documento IDL tal como está almacenado. Se usan tanto el formato heredado de Anchor como el formato de Anchor 0.30+, así que comprueba cuál recibiste antes de leerlo.

Un documento IDL devuelto tal como está almacenado. Se usan dos formatos:

  • Anchor heredado (anterior a 0.30): name y version en el nivel superior. Las cuentas de las instrucciones usan isMut e isSigner.
  • Anchor 0.30+: address y metadata (name, version, spec, description) en el nivel superior. Las instrucciones incluyen un discriminator y las cuentas de las instrucciones usan writable y signer.

Ambos formatos tienen instructions. La mayoría de las IDL también tienen accounts, types y errors, y muchas tienen events. Las versiones de un programa pueden usar formatos diferentes.