TokenInstruction.transfer constructor

TokenInstruction.transfer({
  1. required int amount,
  2. required Ed25519HDPublicKey source,
  3. required Ed25519HDPublicKey destination,
  4. required Ed25519HDPublicKey owner,
  5. List<Ed25519HDPublicKey> signers = const <Ed25519HDPublicKey>[],
})

Transfers tokens from one source account to destination either directly or via a delegate.

If this account is associated with the native mint then equal amounts of SOL and Tokens will be transferred to the destination account.

Implementation

factory TokenInstruction.transfer({
  required int amount,
  required Ed25519HDPublicKey source,
  required Ed25519HDPublicKey destination,
  required Ed25519HDPublicKey owner,
  List<Ed25519HDPublicKey> signers = const <Ed25519HDPublicKey>[],
}) =>
    TokenInstruction._(
      accounts: [
        AccountMeta.writeable(pubKey: source, isSigner: false),
        AccountMeta.writeable(pubKey: destination, isSigner: false),
        AccountMeta.readonly(
          pubKey: owner,
          isSigner: signers.isEmpty,
        ),
        ...signers.map(
          (pubKey) => AccountMeta.readonly(pubKey: pubKey, isSigner: true),
        ),
      ],
      data: ByteArray.merge([
        TokenProgram.transferInstructionIndex,
        ByteArray.u64(amount),
      ]),
    );