/** * @prettier */ import { AccountMeta, PublicKey, TransactionInstruction } from '@solana/web3.js'; export declare enum TokenInstruction { InitializeMint = 0, InitializeAccount = 1, InitializeMultisig = 2, Transfer = 3, Approve = 4, Revoke = 5, SetAuthority = 6, MintTo = 7, Burn = 8, CloseAccount = 9, FreezeAccount = 10, ThawAccount = 11, TransferChecked = 12, ApproveChecked = 13, MintToChecked = 14, BurnChecked = 15, InitializeAccount2 = 16, SyncNative = 17, InitializeAccount3 = 18, InitializeMultisig2 = 19, InitializeMint2 = 20 } export declare abstract class TokenError extends Error { name: string; constructor(message?: string); } /** Thrown if an instruction's program is invalid */ export declare class TokenInvalidInstructionProgramError extends TokenError { name: string; } /** Thrown if an instruction's keys are invalid */ export declare class TokenInvalidInstructionKeysError extends TokenError { name: string; } /** Thrown if an instruction's type is invalid */ export declare class TokenInvalidInstructionTypeError extends TokenError { name: string; } /** A decoded, valid TransferChecked instruction */ export interface DecodedTransferCheckedInstruction { programId: PublicKey; keys: { source: AccountMeta; mint: AccountMeta; destination: AccountMeta; owner: AccountMeta; multiSigners: AccountMeta[]; }; data: { instruction: TokenInstruction.TransferChecked; amount: number; decimals: number; }; } /** * Decode a TransferChecked instruction and validate it * * @param instruction Transaction instruction to decode * @param programId SPL Token program account * * @return Decoded, valid instruction */ export declare function decodeTransferCheckedInstruction(instruction: TransactionInstruction, programId?: PublicKey): DecodedTransferCheckedInstruction; /** A decoded, non-validated TransferChecked instruction */ export interface DecodedTransferCheckedInstructionUnchecked { programId: PublicKey; keys: { source: AccountMeta | undefined; mint: AccountMeta | undefined; destination: AccountMeta | undefined; owner: AccountMeta | undefined; multiSigners: AccountMeta[]; }; data: { instruction: number; amount: number; decimals: number; }; } //# sourceMappingURL=tokenEncodeDecode.d.ts.map