Інтроспекція інструкцій

Підсумок

Системна змінна Instructions (Sysvar1nstructions1111111111111111111111111) дозволяє програмі читати всі інструкції верхнього рівня в поточній транзакції за індексом або відносним зміщенням. Внутрішні інструкції CPI недоступні.

Системна змінна Instructions

Програми можуть перевіряти всі інструкції верхнього рівня в поточній транзакції через системну змінну Instructions (Sysvar1nstructions1111111111111111111111111). Це дозволяє програмі перевіряти інші інструкції в тій самій транзакції, наприклад, щоб переконатися, що певна інструкція знаходиться в тій самій транзакції, що й інструкція, яку вона виконує.

Системна змінна Instructions містить лише інструкції верхнього рівня з повідомлення транзакції. Внутрішні інструкції, викликані через CPI, недоступні через цю системну змінну.

До системної змінної instructions не звертаються через звичайний трейт Sysvar. Натомість до неї звертаються через вільні функції в крейті solana_instructions_sysvar.

Дані системної змінної серіалізовані з власним бінарним форматом:

ЗміщенняРозмірОпис
02num_instructions (u16, little-endian)
22 * NБайтові зміщення для кожної інструкції (u16 кожне)
зміннезміннийСеріалізовані дані інструкції
останні 2 байти2Індекс поточної інструкції (u16, little-endian)

Кожна серіалізована інструкція містить: кількість акаунтів (u16), акаунти як 33-байтові записи (1 байт прапорця + 32-байтовий pubkey), ідентифікатор програми (32 байти), довжину даних (u16) та необроблені байти даних.

Ключові функції:

Is this page helpful?

Зміст

Редагувати сторінку

Керується

© 2026 Фонд Solana.
Всі права захищені.
Залишайтеся на зв'язку