syntax = "proto3";

package arpc.common;

// Serialized instruction extracted from a Solana transaction message.
message CompiledInstruction {
  // Index into the account_key list identifying the program id.
  uint32 program_id_index = 1;
  // Packed list of account indexes referenced by the instruction.
  bytes accounts = 2;
  // Opaque program input data.
  bytes data = 3;
}

// Lookup metadata for address table accesses used by versioned messages.
message MessageAddressTableLookup {
  // Account key of the address lookup table.
  bytes account_key = 1;
  // Indexes of writable keys fetched from the table.
  bytes writable_indexes = 2;
  // Indexes of readonly keys fetched from the table.
  bytes readonly_indexes = 3;
}
