SPLToken2022ExtensionsProgram.transferCheckedWithFee constructor

SPLToken2022ExtensionsProgram.transferCheckedWithFee({
  1. required SolAddress source,
  2. required SolAddress mint,
  3. required SolAddress destination,
  4. required SolAddress authority,
  5. required SPLToken2022TransferCheckedWithFeeLayout layout,
  6. SolAddress programId = SPLTokenProgramConst.token2022ProgramId,
  7. List<SolAddress> multiSigners = const [],
})

Transfer, providing expected mint information and fees

Implementation

factory SPLToken2022ExtensionsProgram.transferCheckedWithFee({
  /// The source account. Must include the
  /// [TransferFeeAmount] extension.
  required SolAddress source,

  /// he token mint.
  required SolAddress mint,

  /// The destination account.
  required SolAddress destination,

  /// The source account's owner/delegate.
  required SolAddress authority,
  required SPLToken2022TransferCheckedWithFeeLayout layout,
  SolAddress programId = SPLTokenProgramConst.token2022ProgramId,

  /// Multisignature owner/delegate
  List<SolAddress> multiSigners = const [],
}) {
  if (programId == SPLTokenProgramConst.tokenProgramId) {
    throw const MessageException("Token program does not support extensions");
  }
  return SPLToken2022ExtensionsProgram(
      keys: SPLTokenUtils.buildKeys(keys: [
        source.toWritable(),
        mint.toReadOnly(),
        destination.toWritable()
      ], owner: authority, multiSigners: multiSigners),
      programId: programId,
      layout: layout);
}