TokenInstruction.approve constructor

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

Approves a delegate.

A delegate is given the authority over tokens on behalf of the account's sourceOwner.

Implementation

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