extend static method

TransactionInstruction extend({
  1. required Pubkey address,
  2. required Pubkey authority,
  3. required Pubkey payer,
  4. required List<Pubkey> addresses,
})

Implementation

static TransactionInstruction extend({
  // Keys
  required final Pubkey address,
  required final Pubkey authority,
  required final Pubkey payer,
  // Data
  required final List<Pubkey> addresses,
}) {
  final List<AccountMeta> keys = [
    AccountMeta.writable(address),
    AccountMeta.signer(authority),
    AccountMeta.signerAndWritable(payer),
    AccountMeta(SystemProgram.programId),
  ];

  final BorshStringSizedCodec pubkeyCodec = borsh.pubkey;
  final List<Iterable<int>> data = [
    borsh.u64.encode(BigInt.from(addresses.length)),
    for (final Pubkey address in addresses)
      pubkeyCodec.encode(address.toBase58())
  ];

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