import { Address, Account, Rpc, SolanaRpcApi, AddressesByLookupTableAddress } from '@solana/kit'; import { AddressLookupTable, fetchAllAddressLookupTable } from '@solana-program/address-lookup-table'; export async function getAllLookupTables( connection: Rpc, addresses: Address[], ): Promise[]> { if (addresses.length === 0) { return []; } const lutAccounts = await fetchAllAddressLookupTable(connection, addresses); return lutAccounts; } export function transformFromLookupTableAccounts( lookupTableAccounts: Account[], ): AddressesByLookupTableAddress { const addressesByLookupTable: AddressesByLookupTableAddress = {}; if (lookupTableAccounts.length === 0) { return addressesByLookupTable; } lookupTableAccounts.forEach((account) => { addressesByLookupTable[account.address] = account.data.addresses || []; }); return addressesByLookupTable; }