solana_svm_transaction/
message_address_table_lookup.rs

1use {solana_message::v0, solana_pubkey::Pubkey};
2
3/// A non-owning version of [`v0::MessageAddressTableLookup`].
4/// This simply references the data in the original message.
5#[derive(Debug, PartialEq, Eq, Clone)]
6pub struct SVMMessageAddressTableLookup<'a> {
7    /// Address lookup table account key
8    pub account_key: &'a Pubkey,
9    /// List of indexes used to load writable account addresses
10    pub writable_indexes: &'a [u8],
11    /// List of indexes used to load readonly account addresses
12    pub readonly_indexes: &'a [u8],
13}
14
15impl<'a> From<&'a v0::MessageAddressTableLookup> for SVMMessageAddressTableLookup<'a> {
16    fn from(lookup: &'a v0::MessageAddressTableLookup) -> Self {
17        Self {
18            account_key: &lookup.account_key,
19            writable_indexes: &lookup.writable_indexes,
20            readonly_indexes: &lookup.readonly_indexes,
21        }
22    }
23}