create static method

TransactionInstruction create({
  1. required ProgramAddress address,
  2. required Pubkey authority,
  3. required Pubkey payer,
  4. required BigInt recentSlot,
})

Implementation

static TransactionInstruction create({
  // Keys
  required final ProgramAddress address,
  required final Pubkey authority,
  required final Pubkey payer,
  // Data
  required final BigInt recentSlot,
}) {
  assert(findAddressLookupTable(authority, recentSlot).pubkey == address.pubkey);

  final List<AccountMeta> keys = [
    AccountMeta.writable(address.pubkey),
    AccountMeta.signer(authority),
    AccountMeta.signerAndWritable(payer),
    AccountMeta(SystemProgram.programId),
  ];

  final List<Iterable<int>> data = [
    recentSlot.toUint64Buffer(),
    [address.bump],
  ];

  return _instance.createTransactionIntruction(
    AddressLookupTableInstruction.createLookupTable,
    keys: keys,
    data: data,
  );
}