extractTableLookup method

ExtractTableLookup? extractTableLookup(
  1. AddressLookupTableAccount lookupTable
)

Implementation

ExtractTableLookup? extractTableLookup(
  AddressLookupTableAccount lookupTable,
) {
  final writableIndexesAndKeys = _drainKeysFoundInLookupTable(
    lookupTable.addresses,
    (keyMeta) =>
        !keyMeta.isSigner && !keyMeta.isInvoked && keyMeta.isWritable,
  );
  final readonlyIndexesAndKeys = _drainKeysFoundInLookupTable(
    lookupTable.addresses,
    (keyMeta) =>
        !keyMeta.isSigner && !keyMeta.isInvoked && !keyMeta.isWritable,
  );
  if (writableIndexesAndKeys.$1.isEmpty &&
      readonlyIndexesAndKeys.$1.isEmpty) {
    return null;
  }
  return ExtractTableLookup(
    lookup: AddressTableLookup(
      accountKey: lookupTable.key,
      writableIndexes: writableIndexesAndKeys.$1,
      readonlyIndexes: readonlyIndexesAndKeys.$1,
    ),
    readable: readonlyIndexesAndKeys.$2,
    writable: writableIndexesAndKeys.$2,
  );
}