Passer au contenu principal
GET
Obtenir l’IDL
Les paramètres de chemin, le schéma de réponse et les exemples de cette page sont générés à partir de la définition OpenAPI. Get IDL renvoie l’IDL d’un programme à un slot donné : la dernière version devenue active au niveau de slot ou avant. slot ne doit pas nécessairement correspondre exactement à une version ; vous pouvez donc indiquer n’importe quel point de l’historique. Pour récupérer une version précise, transmettez son slot depuis Lister les versions d’IDL. L’IDL provient du même catalogue que celui utilisé par Parsed Events et Parsed Streams pour décoder les instructions. L’explorateur Orb utilise ces endpoints pour afficher les IDL des programmes.

Cas d’utilisation

  • Décodez l’historique avec la bonne interface. Transmettez le slot d’une transaction pour obtenir l’IDL qui était actif lors de son exécution. Les instructions et les comptes des programmes évoluent au fil du temps. L’IDL actuel peut donc interpréter incorrectement les anciennes transactions.
  • Trouvez les noms exacts à utiliser dans les filtres. Analyser l’historique des transactions match.programs[].instructions accepte les noms d’instructions tels qu’ils figurent dans l’IDL.
  • Examinez les modifications apportées à l’interface. Récupérez deux versions et comparez leurs instructions pour voir ce qu’une mise à niveau a ajouté ou supprimé. Consultez l’exemple dans Lister les versions d’IDL.

Formats d’IDL

La réponse correspond au document IDL tel qu’il est stocké. Les programmes du catalogue utilisent l’un des deux formats Anchor, et les versions d’un même programme peuvent utiliser les deux. Vérifiez le format reçu avant de le lire : Les deux formats comportent instructions. La plupart des IDL comportent également accounts, types et errors, et beaucoup comportent events.

Crédits

Chaque requête coûte 10 crédits et est disponible avec toutes les offres. Consultez la page Crédits.

Erreurs

Les autres erreurs renvoient un corps JSON contenant un message error, tel que {"error": "no IDL found for program KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD at or before slot 1"}.

Paramètres de la requête

string
requis
Adresse du programme, encodée en base58.
number
requis
Slot à rechercher. Il ne doit pas nécessairement correspondre au slot d’activation d’une version. Transmettez un slot depuis Lister les versions d’IDL pour obtenir cette version précise, ou le slot d’une transaction pour obtenir l’IDL en vigueur lors de son exécution.

Autorisations

api-key
string
query
requis

Paramètres de chemin

programId
string
requis

Adresse du programme, encodée en base58.

Exemple:

"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD"

slot
integer<uint64>
requis

Slot à rechercher. Il ne doit pas nécessairement correspondre au slot d’activation d’une version. Transmettez un slot provenant de Répertorier les versions de l’IDL pour obtenir cette version précise, ou le slot d’une transaction pour obtenir l’IDL en vigueur lors de son exécution.

Plage requise: x >= 0
Exemple:

205509752

Réponse

Document IDL tel qu’il est stocké. Le format Anchor historique et le format Anchor 0.30+ sont tous deux utilisés. Vérifiez donc le format reçu avant de lire le document.

Un document IDL, renvoyé tel qu’il est stocké. Deux formats sont utilisés :

  • Anchor historique (avant la version 0.30) : name et version au niveau supérieur. Les comptes d’instruction utilisent isMut et isSigner.
  • Anchor 0.30+ : address et metadata (name, version, spec, description) au niveau supérieur. Les instructions contiennent un discriminator, et les comptes d’instruction utilisent writable et signer.

Les deux formats comportent instructions. La plupart des IDL comportent également accounts, types et errors, et beaucoup comportent events. Les versions d’un même programme peuvent utiliser des formats différents.