Zum Hauptinhalt springen
GET
IDL abrufen
Die Pfadparameter, das response-Schema und die Beispiele auf dieser Seite werden aus der OpenAPI-Definition generiert. Get IDL gibt die IDL eines Programms zum Stand eines slots zurück: die neueste Version, die bei oder vor slot aktiv wurde. slot muss keiner Version exakt entsprechen. Du kannst also einen beliebigen Zeitpunkt in der Vergangenheit angeben. Um eine bestimmte Version abzurufen, übergib ihren slot aus IDL-Versionen auflisten. Die IDL stammt aus demselben Katalog, den Parsed Events und Parsed Streams zum Dekodieren von Anweisungen verwenden. Der Orb Explorer verwendet diese endpoints, um Programm-IDLs anzuzeigen.

Anwendungsfälle

  • Verlauf mit der richtigen Schnittstelle dekodieren. Übergib den slot einer Transaktion, um die IDL abzurufen, die bei ihrer Ausführung aktiv war. Programme ändern im Lauf der Zeit ihre Anweisungen und Konten. Daher kann die aktuelle IDL ältere Transaktionen falsch interpretieren.
  • Exakte Namen für Filter ermitteln. Transaktionsverlauf durchsuchen match.programs[].instructions akzeptiert Anweisungsnamen in der Schreibweise der IDL.
  • Änderungen an der Schnittstelle prüfen. Rufe zwei Versionen ab und vergleiche ihre instructions, um zu sehen, was bei einem Upgrade hinzugefügt oder entfernt wurde. Sieh dir das Beispiel unter IDL-Versionen auflisten an.

IDL-Formate

Die response enthält das IDL-Dokument so, wie es gespeichert ist. Programme im Katalog verwenden eines von zwei Anchor-Formaten. Die Versionen eines Programms können beide verwenden. Prüfe vor dem Lesen, welches Format du erhalten hast: Beide Formate enthalten instructions. Die meisten IDLs enthalten außerdem accounts, types und errors. Viele enthalten auch events.

Credits

Jeder request kostet 10 Credits und ist in allen Tarifen verfügbar. Weitere Informationen findest du unter Credits.

Fehler

Andere Fehler geben einen JSON-Inhalt mit einer error-Meldung zurück, zum Beispiel {"error": "no IDL found for program KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD at or before slot 1"}.

Request-Parameter

string
erforderlich
Programmadresse, Base58-kodiert.
number
erforderlich
Nachzuschlagender slot. Er muss nicht dem Aktivierungs-slot einer Version entsprechen. Übergib einen slot aus „IDL-Versionen auflisten“, um genau diese Version abzurufen. Übergib alternativ den slot einer Transaktion, um die IDL abzurufen, die bei ihrer Ausführung gültig war.

Autorisierungen

api-key
string
query
erforderlich

Pfadparameter

programId
string
erforderlich

Programm-Adresse, Base58-codiert.

Beispiel:

"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD"

slot
integer<uint64>
erforderlich

Der nachzuschlagende slot. Er muss nicht dem Aktivierungs-slot einer Version entsprechen. Übergib einen slot aus „IDL-Versionen auflisten“, um genau diese Version abzurufen, oder den slot einer Transaktion, um die IDL abzurufen, die bei ihrer Ausführung gültig war.

Erforderlicher Bereich: x >= 0
Beispiel:

205509752

Antwort

Das IDL-Dokument in der gespeicherten Form. Es kommen sowohl das alte Anchor-Format als auch das Format von Anchor 0.30+ vor. Prüfe daher vor dem Lesen, welches Format du erhalten hast.

Ein IDL-Dokument, das in der gespeicherten Form zurückgegeben wird. Es kommen zwei Formate vor:

  • Altes Anchor-Format (vor 0.30): name und version auf der obersten Ebene. Anweisungskonten verwenden isMut und isSigner.
  • Anchor 0.30+: address und metadata (name, version, spec, description) auf der obersten Ebene. Anweisungen enthalten einen discriminator, und Anweisungskonten verwenden writable und signer.

Beide Formate enthalten instructions. Die meisten IDLs enthalten außerdem accounts, types und errors, viele auch events. Die Versionen eines Programms können unterschiedliche Formate verwenden.