명령어 인트로스펙션

요약

Instructions sysvar(Sysvar1nstructions1111111111111111111111111)를 사용하면 프로그램이 현재 트랜잭션의 모든 최상위 명령어를 인덱스 또는 상대 오프셋으로 읽을 수 있습니다. CPI 내부 명령어는 접근할 수 없습니다.

Instructions sysvar

프로그램은 Instructions sysvar(Sysvar1nstructions1111111111111111111111111)를 통해 현재 트랜잭션의 모든 최상위 명령어를 검사할 수 있습니다. 이를 통해 프로그램은 동일한 트랜잭션 내의 다른 명령어를 검사할 수 있으며, 예를 들어 특정 명령어가 실행 중인 명령어와 동일한 트랜잭션에 있는지 확인할 수 있습니다.

Instructions sysvar는 트랜잭션 메시지의 최상위 명령어만 포함합니다. CPI를 통해 호출된 내부 명령어는 이 sysvar를 통해 접근할 수 없습니다.

instructions sysvar는 일반적인 Sysvar 트레이트를 통해 접근되지 않습니다. 대신 solana_instructions_sysvar 크레이트의 자유 함수를 통해 접근됩니다.

sysvar 데이터는 사용자 정의 바이너리 레이아웃으로 직렬화됩니다:

오프셋크기설명
02num_instructions (u16, 리틀 엔디안)
22 * N각 명령어의 바이트 오프셋 (각각 u16)
가변가변직렬화된 명령어 데이터
마지막 2바이트2현재 명령어 인덱스 (u16, 리틀 엔디안)

각 직렬화된 명령어는 다음을 포함합니다: 계정 수(u16), 33바이트 항목으로 구성된 계정들(1바이트 플래그 + 32바이트 pubkey), 프로그램 ID(32바이트), 데이터 길이(u16), 그리고 원시 데이터 바이트.

주요 함수:

Is this page helpful?

목차

페이지 편집

관리자

© 2026 솔라나 재단.
모든 권리 보유.
연결하기