TokenInstruction.approveChecked constructor
TokenInstruction.approveChecked({
- required int amount,
- required int decimals,
- required Ed25519HDPublicKey mint,
- required Ed25519HDPublicKey source,
- required Ed25519HDPublicKey delegate,
- required Ed25519HDPublicKey sourceOwner,
- List<
Ed25519HDPublicKey> signers = const <Ed25519HDPublicKey>[],
Approves a delegate. A delegate is given the authority over tokens on behalf of the source account's owner.
This instruction differs from TokenInstruction.approve in that the token mint and decimals value is checked by the caller. This may be useful when creating transactions offline or within a hardware wallet.
Implementation
factory TokenInstruction.approveChecked({
required int amount,
required int decimals,
required Ed25519HDPublicKey mint,
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: mint, 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.approveCheckedInstructionIndex,
ByteArray.u64(amount),
ByteArray.u8(decimals),
],
),
);