Chuyển đến nội dung chính
GET
Lấy IDL
Các tham số đường dẫn, lược đồ phản hồi và ví dụ trên trang này được tạo từ định nghĩa OpenAPI. Lấy IDL trả về IDL của chương trình tại một slot: phiên bản mới nhất bắt đầu có hiệu lực tại hoặc trước slot. slot không cần khớp chính xác với một phiên bản, vì vậy bạn có thể truyền bất kỳ thời điểm nào trong lịch sử. Để lấy một phiên bản cụ thể, hãy truyền slot của phiên bản đó từ Liệt kê các phiên bản IDL. IDL đến từ cùng danh mục mà Sự kiện đã phân tích và Luồng đã phân tích sử dụng để giải mã các lệnh. Trình khám phá Orb sử dụng các endpoint này để hiển thị IDL của chương trình.

Trường hợp sử dụng

  • Giải mã lịch sử bằng đúng giao diện. Truyền slot của một giao dịch để lấy IDL đang có hiệu lực khi giao dịch đó được thực thi. Các chương trình thay đổi lệnh và tài khoản theo thời gian, vì vậy IDL hiện tại có thể diễn giải sai các giao dịch cũ.
  • Tìm tên chính xác cho bộ lọc. Quét lịch sử giao dịch match.programs[].instructions chấp nhận tên lệnh đúng như cách chúng được ghi trong IDL.
  • Xem xét các thay đổi về giao diện. Lấy hai phiên bản và so sánh instructions của chúng để xem bản nâng cấp đã thêm hoặc xóa những gì. Xem ví dụ tại Liệt kê các phiên bản IDL.

Định dạng IDL

Phản hồi là tài liệu IDL đúng như được lưu trữ. Các chương trình trong danh mục sử dụng một trong hai định dạng Anchor và các phiên bản của cùng một chương trình có thể sử dụng cả hai. Hãy kiểm tra định dạng bạn nhận được trước khi đọc: Cả hai định dạng đều có instructions. Hầu hết IDL cũng có accounts, types và errors; nhiều IDL còn có events.

Credit

Mỗi yêu cầu tốn 10 credit và khả dụng trong tất cả các gói. Xem Credit.

Lỗi

Các lỗi khác trả về nội dung JSON có thông báo error, chẳng hạn như {"error": "no IDL found for program KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD at or before slot 1"}.

Tham số yêu cầu

string
bắt buộc
Địa chỉ chương trình, được mã hóa bằng base58.
number
bắt buộc
Slot cần tra cứu. Slot này không cần khớp với slot kích hoạt của một phiên bản. Truyền slot từ Liệt kê các phiên bản IDL để lấy chính xác phiên bản đó hoặc truyền slot của một giao dịch để lấy IDL có hiệu lực khi giao dịch được thực thi.

Ủy quyền

api-key
string
query
bắt buộc

Tham số đường dẫn

programId
string
bắt buộc

Địa chỉ chương trình, được mã hóa bằng base58.

Ví dụ:

"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD"

slot
integer<uint64>
bắt buộc

Slot cần tra cứu. Slot này không cần khớp với slot kích hoạt của một phiên bản. Truyền một slot từ Liệt kê các phiên bản IDL để lấy chính xác phiên bản đó, hoặc slot của một giao dịch để lấy IDL có hiệu lực khi giao dịch được thực thi.

Phạm vi bắt buộc: x >= 0
Ví dụ:

205509752

Phản hồi

Tài liệu IDL được trả về đúng như khi lưu trữ. Cả định dạng Anchor cũ và định dạng Anchor 0.30+ đều có thể xuất hiện, vì vậy hãy kiểm tra định dạng đã nhận trước khi đọc.

Một tài liệu IDL, được trả về đúng như khi lưu trữ. Có hai định dạng:

  • Anchor cũ (trước 0.30): có name và version ở cấp cao nhất. Các tài khoản của lệnh sử dụng isMut và isSigner.
  • Anchor 0.30+: có address và metadata (name, version, spec, description) ở cấp cao nhất. Các lệnh chứa một discriminator, còn tài khoản của lệnh sử dụng writable và signer.

Cả hai định dạng đều có instructions. Hầu hết IDL cũng có accounts, types và errors; nhiều IDL còn có events. Các phiên bản của cùng một chương trình có thể sử dụng các định dạng khác nhau.