Интроспекция инструкций

Кратко

Sysvar Instructions (Sysvar1nstructions1111111111111111111111111) позволяет программе читать все верхнеуровневые инструкции в текущей транзакции по индексу или относительному смещению. Внутренние инструкции CPI недоступны.

Sysvar Instructions

Программы могут анализировать все верхнеуровневые инструкции в текущей транзакции через sysvar Instructions (Sysvar1nstructions1111111111111111111111111). Это позволяет программе проверять другие инструкции в той же транзакции, например, чтобы убедиться, что определённая инструкция присутствует в одной транзакции с выполняемой.

Sysvar Instructions содержит только верхнеуровневые инструкции из сообщения транзакции. Внутренние инструкции, вызванные через CPI, недоступны через этот sysvar.

Доступ к sysvar instructions осуществляется не через стандартный трейт Sysvar. Вместо этого используются свободные функции из solana_instructions_sysvar crate.

Данные sysvar сериализуются с помощью собственного бинарного формата:

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

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

Ключевые функции:

Is this page helpful?

Содержание

Редактировать страницу

Управляется

© 2026 Solana Foundation.
Все права защищены.
Связаться с нами