micro-sol-signer
Version: 
Create, sign & decode Solana transactions with minimum deps
1,121 lines • 942 kB
TypeScript
import * as P from 'micro-packed';
import * as idl from './idl/index.ts';
import { Decimal, PRECISION, pubKey, shortU16 } from './idl/index.ts';
export { Offchain } from './offchain.ts';
export { Decimal, PRECISION, pubKey, shortU16 };
export type Bytes = Uint8Array;
export declare function validateAddress(address: string): void;
export type Account = {
    address: string;
    sign: boolean;
    write: boolean;
};
export type Instruction = {
    program: string;
    keys: Account[];
    data: Bytes;
};
export type Message = {
    feePayer: string;
    blockhash: string;
    instructions: Instruction[];
};
declare const MessageVersion: P.CoderType<number | 'legacy'>;
export declare const MessageRaw: P.CoderType<P.Values<{
    legacy: {
        TAG: "legacy";
        data: P.StructInput<{
            header: P.StructInput<{
                requiredSignatures: /*elided*/ any;
                readSigned: /*elided*/ any;
                readUnsigned: /*elided*/ any;
            }>;
            keys: string[];
            blockhash: string;
            instructions: P.StructInput<{
                programIdx: /*elided*/ any;
                keys: /*elided*/ any;
                data: /*elided*/ any;
            }>[];
        }>;
    };
    0: {
        TAG: 0;
        data: P.StructInput<{
            header: P.StructInput<{
                requiredSignatures: /*elided*/ any;
                readSigned: /*elided*/ any;
                readUnsigned: /*elided*/ any;
            }>;
            keys: string[];
            blockhash: string;
            instructions: P.StructInput<{
                programIdx: /*elided*/ any;
                keys: /*elided*/ any;
                data: /*elided*/ any;
            }>[];
            ALT: P.StructInput<{
                account: /*elided*/ any;
                writableIndexes: /*elided*/ any;
                readonlyIndexes: /*elided*/ any;
            }>[];
        }>;
    };
}>>;
type Version = P.UnwrapCoder<typeof MessageRaw>['TAG'];
type MessageType = {
    version: P.UnwrapCoder<typeof MessageVersion>;
    feePayer: string;
    blockhash: string;
    instructions: Instruction[];
};
export declare const Message: P.CoderType<MessageType>;
export declare const TransactionRaw: P.CoderType<P.StructInput<{
    signatures: P.Bytes[];
    msg: P.Values<{
        legacy: {
            TAG: "legacy";
            data: P.StructInput<{
                header: /*elided*/ any;
                keys: /*elided*/ any;
                blockhash: /*elided*/ any;
                instructions: /*elided*/ any;
            }>;
        };
        0: {
            TAG: 0;
            data: P.StructInput<{
                header: /*elided*/ any;
                keys: /*elided*/ any;
                blockhash: /*elided*/ any;
                instructions: /*elided*/ any;
                ALT: /*elided*/ any;
            }>;
        };
    }>;
}>>;
export declare const Transaction: P.CoderType<{
    signatures: {
        [k: string]: P.Bytes;
    };
    msg: MessageType;
}>;
export declare function AddressLookupTables(tables: Record<string, string[]>): {
    resolve: (tx: P.UnwrapCoder<typeof Transaction>) => {
        signatures: {
            [k: string]: P.Bytes;
        };
        msg: {
            instructions: {
                program: string;
                keys: {
                    address: string;
                    sign: boolean;
                    write: boolean;
                }[];
                data: Bytes;
            }[];
            version: P.UnwrapCoder<typeof MessageVersion>;
            feePayer: string;
            blockhash: string;
        };
    };
    compress(tx: P.UnwrapCoder<typeof Transaction>): {
        signatures: {
            [k: string]: P.Bytes;
        };
        msg: {
            instructions: {
                program: string;
                keys: {
                    address: string;
                    sign: boolean;
                    write: boolean;
                }[];
                data: Bytes;
            }[];
            version: P.UnwrapCoder<typeof MessageVersion>;
            feePayer: string;
            blockhash: string;
        };
    };
};
export declare const PROGRAMS: {
    memo: {
        program: {
            name: "memo";
            contract: "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";
            types: idl.GetDefinedTypes<readonly []>;
            pdas: {};
            instructions: idl.ParsedInstructions<readonly [{
                readonly kind: "instructionNode";
                readonly accounts: readonly [];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "memo";
                    readonly type: {
                        readonly kind: "stringTypeNode";
                        readonly encoding: "utf8";
                    };
                    readonly docs: readonly [];
                }];
                readonly remainingAccounts: readonly [{
                    readonly kind: "instructionRemainingAccountsNode";
                    readonly value: {
                        readonly kind: "argumentValueNode";
                        readonly name: "signers";
                    };
                    readonly isOptional: true;
                    readonly isSigner: true;
                }];
                readonly name: "addMemo";
                readonly idlName: "addMemo";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }], idl.GetDefinedTypes<readonly []>>;
            accounts: idl.AccountDefinitions<readonly [], idl.GetDefinedTypes<readonly []>>;
        };
        additionalPrograms: {};
    };
    solanaConfig: {
        program: {
            name: "solanaConfig";
            contract: "Config1111111111111111111111111111111111111";
            types: idl.GetDefinedTypes<readonly [{
                readonly kind: "definedTypeNode";
                readonly name: "configKeys";
                readonly type: {
                    readonly kind: "arrayTypeNode";
                    readonly item: {
                        readonly kind: "tupleTypeNode";
                        readonly items: readonly [{
                            readonly kind: "publicKeyTypeNode";
                        }, {
                            readonly kind: "booleanTypeNode";
                            readonly size: {
                                readonly kind: "numberTypeNode";
                                readonly format: "u8";
                                readonly endian: "le";
                            };
                        }];
                    };
                    readonly count: {
                        readonly kind: "prefixedCountNode";
                        readonly prefix: {
                            readonly kind: "numberTypeNode";
                            readonly format: "shortU16";
                            readonly endian: "le";
                        };
                    };
                };
                readonly docs: readonly ["A collection of keys to be stored in Config account data.", "Each key tuple comprises a unique `Pubkey` identifier,", "and `bool` whether that key is a signer of the data."];
            }]>;
            pdas: {};
            instructions: idl.ParsedInstructions<readonly [{
                readonly kind: "instructionNode";
                readonly accounts: readonly [{
                    readonly kind: "instructionAccountNode";
                    readonly name: "configAccount";
                    readonly isWritable: true;
                    readonly isSigner: "either";
                    readonly isOptional: false;
                    readonly docs: readonly ["The config account to be modified.", "Must sign during the first call to `store` to initialize the account,", "or if no signers are configured in the config data."];
                }];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "keys";
                    readonly type: {
                        readonly kind: "definedTypeLinkNode";
                        readonly name: "configKeys";
                    };
                    readonly docs: readonly ["List of pubkeys to store in the config account,", "and whether each pubkey needs to sign subsequent calls to `store`.", "Non-signer pubkeys do not need to be passed to the program as accounts."];
                }, {
                    readonly kind: "instructionArgumentNode";
                    readonly name: "data";
                    readonly type: {
                        readonly kind: "bytesTypeNode";
                    };
                    readonly docs: readonly ["Arbitrary data to store in the config account."];
                }];
                readonly remainingAccounts: readonly [{
                    readonly kind: "instructionRemainingAccountsNode";
                    readonly value: {
                        readonly kind: "argumentValueNode";
                        readonly name: "signers";
                    };
                    readonly isOptional: true;
                    readonly isSigner: true;
                }];
                readonly name: "store";
                readonly docs: readonly ["Stores keys and data in a config account.", "Keys can be marked as signer or non-signer.", "Only non-signer keys and data can be updated. Signer keys are immutable."];
                readonly optionalAccountStrategy: "omitted";
            }], idl.GetDefinedTypes<readonly [{
                readonly kind: "definedTypeNode";
                readonly name: "configKeys";
                readonly type: {
                    readonly kind: "arrayTypeNode";
                    readonly item: {
                        readonly kind: "tupleTypeNode";
                        readonly items: readonly [{
                            readonly kind: "publicKeyTypeNode";
                        }, {
                            readonly kind: "booleanTypeNode";
                            readonly size: {
                                readonly kind: "numberTypeNode";
                                readonly format: "u8";
                                readonly endian: "le";
                            };
                        }];
                    };
                    readonly count: {
                        readonly kind: "prefixedCountNode";
                        readonly prefix: {
                            readonly kind: "numberTypeNode";
                            readonly format: "shortU16";
                            readonly endian: "le";
                        };
                    };
                };
                readonly docs: readonly ["A collection of keys to be stored in Config account data.", "Each key tuple comprises a unique `Pubkey` identifier,", "and `bool` whether that key is a signer of the data."];
            }]>>;
            accounts: idl.AccountDefinitions<readonly [{
                readonly kind: "accountNode";
                readonly data: {
                    readonly kind: "structTypeNode";
                    readonly fields: readonly [{
                        readonly kind: "structFieldTypeNode";
                        readonly name: "keys";
                        readonly type: {
                            readonly kind: "definedTypeLinkNode";
                            readonly name: "configKeys";
                        };
                        readonly docs: readonly ["List of pubkeys stored in the config account,", "and whether each pubkey needs to sign subsequent calls to `store`."];
                    }, {
                        readonly kind: "structFieldTypeNode";
                        readonly name: "data";
                        readonly type: {
                            readonly kind: "bytesTypeNode";
                        };
                        readonly docs: readonly ["Arbitrary data to store in the config account."];
                    }];
                };
                readonly name: "config";
                readonly docs: readonly [];
            }], idl.GetDefinedTypes<readonly [{
                readonly kind: "definedTypeNode";
                readonly name: "configKeys";
                readonly type: {
                    readonly kind: "arrayTypeNode";
                    readonly item: {
                        readonly kind: "tupleTypeNode";
                        readonly items: readonly [{
                            readonly kind: "publicKeyTypeNode";
                        }, {
                            readonly kind: "booleanTypeNode";
                            readonly size: {
                                readonly kind: "numberTypeNode";
                                readonly format: "u8";
                                readonly endian: "le";
                            };
                        }];
                    };
                    readonly count: {
                        readonly kind: "prefixedCountNode";
                        readonly prefix: {
                            readonly kind: "numberTypeNode";
                            readonly format: "shortU16";
                            readonly endian: "le";
                        };
                    };
                };
                readonly docs: readonly ["A collection of keys to be stored in Config account data.", "Each key tuple comprises a unique `Pubkey` identifier,", "and `bool` whether that key is a signer of the data."];
            }]>>;
        };
        additionalPrograms: {};
    };
    computeBudget: {
        program: {
            name: "computeBudget";
            contract: "ComputeBudget111111111111111111111111111111";
            types: idl.GetDefinedTypes<readonly []>;
            pdas: {};
            instructions: idl.ParsedInstructions<readonly [{
                readonly kind: "instructionNode";
                readonly accounts: readonly [];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "discriminator";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u8";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "numberValueNode";
                        readonly number: 0;
                    };
                    readonly defaultValueStrategy: "omitted";
                }, {
                    readonly kind: "instructionArgumentNode";
                    readonly name: "units";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u32";
                        readonly endian: "le";
                    };
                    readonly docs: readonly ["Units to request for transaction-wide compute."];
                }, {
                    readonly kind: "instructionArgumentNode";
                    readonly name: "additionalFee";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u32";
                        readonly endian: "le";
                    };
                    readonly docs: readonly ["Prioritization fee lamports."];
                }];
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "requestUnits";
                readonly idlName: "requestUnits";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }, {
                readonly kind: "instructionNode";
                readonly accounts: readonly [];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "discriminator";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u8";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "numberValueNode";
                        readonly number: 1;
                    };
                    readonly defaultValueStrategy: "omitted";
                }, {
                    readonly kind: "instructionArgumentNode";
                    readonly name: "bytes";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u32";
                        readonly endian: "le";
                    };
                    readonly docs: readonly ["Requested transaction-wide program heap size in bytes.", "Must be multiple of 1024. Applies to each program, including CPIs."];
                }];
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "requestHeapFrame";
                readonly idlName: "requestHeapFrame";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }, {
                readonly kind: "instructionNode";
                readonly accounts: readonly [];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "discriminator";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u8";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "numberValueNode";
                        readonly number: 2;
                    };
                    readonly defaultValueStrategy: "omitted";
                }, {
                    readonly kind: "instructionArgumentNode";
                    readonly name: "units";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u32";
                        readonly endian: "le";
                    };
                    readonly docs: readonly ["Transaction-wide compute unit limit."];
                }];
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "setComputeUnitLimit";
                readonly idlName: "setComputeUnitLimit";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }, {
                readonly kind: "instructionNode";
                readonly accounts: readonly [];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "discriminator";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u8";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "numberValueNode";
                        readonly number: 3;
                    };
                    readonly defaultValueStrategy: "omitted";
                }, {
                    readonly kind: "instructionArgumentNode";
                    readonly name: "microLamports";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u64";
                        readonly endian: "le";
                    };
                    readonly docs: readonly ["Transaction compute unit price used for prioritization fees."];
                }];
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "setComputeUnitPrice";
                readonly idlName: "setComputeUnitPrice";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }, {
                readonly kind: "instructionNode";
                readonly accounts: readonly [];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "discriminator";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u8";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "numberValueNode";
                        readonly number: 4;
                    };
                    readonly defaultValueStrategy: "omitted";
                }, {
                    readonly kind: "instructionArgumentNode";
                    readonly name: "accountDataSizeLimit";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u32";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                }];
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "setLoadedAccountsDataSizeLimit";
                readonly idlName: "setLoadedAccountsDataSizeLimit";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }], idl.GetDefinedTypes<readonly []>>;
            accounts: idl.AccountDefinitions<readonly [], idl.GetDefinedTypes<readonly []>>;
        };
        additionalPrograms: {};
    };
    addressLookupTable: {
        program: {
            name: "addressLookupTable";
            contract: "AddressLookupTab1e1111111111111111111111111";
            types: idl.GetDefinedTypes<readonly []>;
            pdas: {
                addressLookupTable: (value: {
                    authority: string;
                    recentSlot: bigint;
                }) => string;
            };
            instructions: idl.ParsedInstructions<readonly [{
                readonly kind: "instructionNode";
                readonly accounts: readonly [{
                    readonly kind: "instructionAccountNode";
                    readonly name: "address";
                    readonly isWritable: true;
                    readonly isSigner: false;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "pdaValueNode";
                        readonly pda: {
                            readonly kind: "pdaLinkNode";
                            readonly name: "addressLookupTable";
                        };
                        readonly seeds: readonly [{
                            readonly kind: "pdaSeedValueNode";
                            readonly name: "authority";
                            readonly value: {
                                readonly kind: "accountValueNode";
                                readonly name: "authority";
                            };
                        }, {
                            readonly kind: "pdaSeedValueNode";
                            readonly name: "recentSlot";
                            readonly value: {
                                readonly kind: "argumentValueNode";
                                readonly name: "recentSlot";
                            };
                        }];
                    };
                }, {
                    readonly kind: "instructionAccountNode";
                    readonly name: "authority";
                    readonly isWritable: false;
                    readonly isSigner: true;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "identityValueNode";
                    };
                }, {
                    readonly kind: "instructionAccountNode";
                    readonly name: "payer";
                    readonly isWritable: true;
                    readonly isSigner: true;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "accountValueNode";
                        readonly name: "authority";
                    };
                }, {
                    readonly kind: "instructionAccountNode";
                    readonly name: "systemProgram";
                    readonly isWritable: false;
                    readonly isSigner: false;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "publicKeyValueNode";
                        readonly publicKey: "11111111111111111111111111111111";
                        readonly identifier: "splSystem";
                    };
                }];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "discriminator";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u32";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "numberValueNode";
                        readonly number: 0;
                    };
                    readonly defaultValueStrategy: "omitted";
                }, {
                    readonly kind: "instructionArgumentNode";
                    readonly name: "recentSlot";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u64";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                }, {
                    readonly kind: "instructionArgumentNode";
                    readonly name: "bump";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u8";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "accountBumpValueNode";
                        readonly name: "address";
                    };
                }];
                readonly byteDeltas: readonly [{
                    readonly kind: "instructionByteDeltaNode";
                    readonly value: {
                        readonly kind: "numberValueNode";
                        readonly number: 56;
                    };
                    readonly withHeader: true;
                }];
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "createLookupTable";
                readonly idlName: "CreateLookupTable";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }, {
                readonly kind: "instructionNode";
                readonly accounts: readonly [{
                    readonly kind: "instructionAccountNode";
                    readonly name: "address";
                    readonly isWritable: true;
                    readonly isSigner: false;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                }, {
                    readonly kind: "instructionAccountNode";
                    readonly name: "authority";
                    readonly isWritable: false;
                    readonly isSigner: true;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "identityValueNode";
                    };
                }];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "discriminator";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u32";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "numberValueNode";
                        readonly number: 1;
                    };
                    readonly defaultValueStrategy: "omitted";
                }];
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "freezeLookupTable";
                readonly idlName: "FreezeLookupTable";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }, {
                readonly kind: "instructionNode";
                readonly accounts: readonly [{
                    readonly kind: "instructionAccountNode";
                    readonly name: "address";
                    readonly isWritable: true;
                    readonly isSigner: false;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                }, {
                    readonly kind: "instructionAccountNode";
                    readonly name: "authority";
                    readonly isWritable: false;
                    readonly isSigner: true;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "identityValueNode";
                    };
                }, {
                    readonly kind: "instructionAccountNode";
                    readonly name: "payer";
                    readonly isWritable: true;
                    readonly isSigner: true;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "payerValueNode";
                    };
                }, {
                    readonly kind: "instructionAccountNode";
                    readonly name: "systemProgram";
                    readonly isWritable: false;
                    readonly isSigner: false;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "publicKeyValueNode";
                        readonly publicKey: "11111111111111111111111111111111";
                        readonly identifier: "splSystem";
                    };
                }];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "discriminator";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u32";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "numberValueNode";
                        readonly number: 2;
                    };
                    readonly defaultValueStrategy: "omitted";
                }, {
                    readonly kind: "instructionArgumentNode";
                    readonly name: "addresses";
                    readonly type: {
                        readonly kind: "arrayTypeNode";
                        readonly item: {
                            readonly kind: "publicKeyTypeNode";
                        };
                        readonly count: {
                            readonly kind: "prefixedCountNode";
                            readonly prefix: {
                                readonly kind: "numberTypeNode";
                                readonly format: "u64";
                                readonly endian: "le";
                            };
                        };
                    };
                    readonly docs: readonly [];
                }];
                readonly byteDeltas: readonly [{
                    readonly kind: "instructionByteDeltaNode";
                    readonly value: {
                        readonly kind: "resolverValueNode";
                        readonly name: "resolveExtendLookupTableBytes";
                        readonly dependsOn: readonly [{
                            readonly kind: "argumentValueNode";
                            readonly name: "addresses";
                        }];
                    };
                    readonly withHeader: false;
                }];
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "extendLookupTable";
                readonly idlName: "ExtendLookupTable";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }, {
                readonly kind: "instructionNode";
                readonly accounts: readonly [{
                    readonly kind: "instructionAccountNode";
                    readonly name: "address";
                    readonly isWritable: true;
                    readonly isSigner: false;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                }, {
                    readonly kind: "instructionAccountNode";
                    readonly name: "authority";
                    readonly isWritable: false;
                    readonly isSigner: true;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "identityValueNode";
                    };
                }];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "discriminator";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u32";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "numberValueNode";
                        readonly number: 3;
                    };
                    readonly defaultValueStrategy: "omitted";
                }];
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "deactivateLookupTable";
                readonly idlName: "DeactivateLookupTable";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }, {
                readonly kind: "instructionNode";
                readonly accounts: readonly [{
                    readonly kind: "instructionAccountNode";
                    readonly name: "address";
                    readonly isWritable: true;
                    readonly isSigner: false;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                }, {
                    readonly kind: "instructionAccountNode";
                    readonly name: "authority";
                    readonly isWritable: false;
                    readonly isSigner: true;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "identityValueNode";
                    };
                }, {
                    readonly kind: "instructionAccountNode";
                    readonly name: "recipient";
                    readonly isWritable: true;
                    readonly isSigner: false;
                    readonly isOptional: false;
                    readonly docs: readonly [];
                }];
                readonly arguments: readonly [{
                    readonly kind: "instructionArgumentNode";
                    readonly name: "discriminator";
                    readonly type: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u32";
                        readonly endian: "le";
                    };
                    readonly docs: readonly [];
                    readonly defaultValue: {
                        readonly kind: "numberValueNode";
                        readonly number: 4;
                    };
                    readonly defaultValueStrategy: "omitted";
                }];
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "closeLookupTable";
                readonly idlName: "CloseLookupTable";
                readonly docs: readonly [];
                readonly optionalAccountStrategy: "programId";
            }], idl.GetDefinedTypes<readonly []>>;
            accounts: idl.AccountDefinitions<readonly [{
                readonly kind: "accountNode";
                readonly data: {
                    readonly kind: "structTypeNode";
                    readonly fields: readonly [{
                        readonly kind: "structFieldTypeNode";
                        readonly name: "discriminator";
                        readonly type: {
                            readonly kind: "numberTypeNode";
                            readonly format: "u32";
                            readonly endian: "le";
                        };
                        readonly docs: readonly [];
                        readonly defaultValue: {
                            readonly kind: "numberValueNode";
                            readonly number: 1;
                        };
                        readonly defaultValueStrategy: "omitted";
                    }, {
                        readonly kind: "structFieldTypeNode";
                        readonly name: "deactivationSlot";
                        readonly type: {
                            readonly kind: "numberTypeNode";
                            readonly format: "u64";
                            readonly endian: "le";
                        };
                        readonly docs: readonly [];
                    }, {
                        readonly kind: "structFieldTypeNode";
                        readonly name: "lastExtendedSlot";
                        readonly type: {
                            readonly kind: "numberTypeNode";
                            readonly format: "u64";
                            readonly endian: "le";
                        };
                        readonly docs: readonly [];
                    }, {
                        readonly kind: "structFieldTypeNode";
                        readonly name: "lastExtendedSlotStartIndex";
                        readonly type: {
                            readonly kind: "numberTypeNode";
                            readonly format: "u8";
                            readonly endian: "le";
                        };
                        readonly docs: readonly [];
                    }, {
                        readonly kind: "structFieldTypeNode";
                        readonly name: "authority";
                        readonly type: {
                            readonly kind: "optionTypeNode";
                            readonly item: {
                                readonly kind: "publicKeyTypeNode";
                            };
                            readonly prefix: {
                                readonly kind: "numberTypeNode";
                                readonly format: "u8";
                                readonly endian: "le";
                            };
                            readonly fixed: true;
                            readonly idlOption: "option";
                        };
                        readonly docs: readonly [];
                    }, {
                        readonly kind: "structFieldTypeNode";
                        readonly name: "padding";
                        readonly type: {
                            readonly kind: "numberTypeNode";
                            readonly format: "u16";
                            readonly endian: "le";
                        };
                        readonly docs: readonly [];
                        readonly defaultValue: {
                            readonly kind: "numberValueNode";
                            readonly number: 0;
                        };
                        readonly defaultValueStrategy: "omitted";
                    }, {
                        readonly kind: "structFieldTypeNode";
                        readonly name: "addresses";
                        readonly type: {
                            readonly kind: "arrayTypeNode";
                            readonly item: {
                                readonly kind: "publicKeyTypeNode";
                            };
                            readonly count: {
                                readonly kind: "remainderCountNode";
                            };
                        };
                        readonly docs: readonly [];
                    }];
                };
                readonly pda: {
                    readonly kind: "pdaLinkNode";
                    readonly name: "addressLookupTable";
                };
                readonly discriminators: readonly [{
                    readonly kind: "fieldDiscriminatorNode";
                    readonly name: "discriminator";
                    readonly offset: 0;
                }];
                readonly name: "addressLookupTable";
                readonly idlName: "AddressLookupTable";
                readonly docs: readonly [];
            }], idl.GetDefinedTypes<readonly []>>;
        };
        additionalPrograms: {};
    };
    "token-2022": {
        program: {
            name: "token-2022";
            contract: "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
            types: idl.GetDefinedTypes<readonly [{
                readonly kind: "definedTypeNode";
                readonly name: "accountState";
                readonly docs: readonly [];
                readonly type: {
                    readonly kind: "enumTypeNode";
                    readonly variants: readonly [{
                        readonly kind: "enumEmptyVariantTypeNode";
                        readonly name: "uninitialized";
                    }, {
                        readonly kind: "enumEmptyVariantTypeNode";
                        readonly name: "initialized";
                    }, {
                        readonly kind: "enumEmptyVariantTypeNode";
                        readonly name: "frozen";
                    }];
                    readonly size: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u8";
                        readonly endian: "le";
                    };
                };
            }, {
                readonly kind: "definedTypeNode";
                readonly name: "authorityType";
                readonly docs: readonly [];
                readonly type: {
                    readonly kind: "enumTypeNode";
                    readonly variants: readonly [{
                        readonly kind: "enumEmptyVariantTypeNode";
                        readonly name: "mintTokens";
                    }, {
                        readonly kind: "enumEmptyVariantTypeNode";
                        readonly name: "freezeAccount";
                    }, {
                        readonly kind: "enumEmptyVariantTypeNode";
                        readonly name: "accountOwner";
                    }, {
                        readonly kind: "enumEmptyVariantTypeNode";
                        readonly name: "closeAccount";
                    }];
                    readonly size: {
                        readonly kind: "numberTypeNode";
                        readonly format: "u8";
                        readonly endian: "le";
                    };
                };
            }, {
                readonly kind: "definedTypeNode";
                readonly name: "transferFee";
                readonly docs: readonly [];
                readonly type: {
                    readonly kind: "structTypeNode";
                    readonly fields: readonly [{
                        readonly kind: "structFieldTypeNode";
                        readonly name: "epoch";
                        readonly docs: readonly ["First epoch where the transfer fee takes effect."];
                        readonly type: {
                            readonly kind: "numberTypeNode";
                            readonly format: "u64";
                            readonly endian: "le";
                        };
                    }, {
                        readonly kind: "structFieldTypeNode";
                        readonly name: "maximumFee";
                        readonly docs: readonly ["Maximum fee assessed on transfers, expressed as an amount of tokens."];
                        readonly type: {
                            readonly kind: "numberTypeNode";
                            readonly format: "u64";
                            readonly endian: "le";
                        };
                    }, {
                        readonly kind: "structFieldTypeNode";
                        readonly name: "transferFeeBasisPoints";
                        readonly docs: readonly ["Amount of transfer collected as fees, expressed as basis points of the", "transfer amount, ie. increments of 0.01%."];
                        readonly type: {
                            readonly kind: "amountTypeNode";
                            readonly decimals: 2;
                            readonly unit: "%";
                            readonly number: {
                                readonly kind: "numberTypeNode";
                                readonly format: "u16";
                                readonly endian: "le";
                            };
                        };
                    }];
                };
            }, {
                readonly kind: "definedTypeNode";
                readonly name: "encryptedBalance";
                readonly docs: readonly ["ElGamal ciphertext containing an account balance."];
                readonly type: {
                    readonly kind: "fixedSizeTypeNode";
                    readonly size: 64;
                    readonly type: {
                        readonly kind: "bytesTypeNode";
                    };
                };
            }, {
                readonly kind: "definedTypeNode";
                readonly name: "decryptableBalance";
                readonly docs: readonly ["Authenticated encryption containing an account balance."];
                readonly type: {
                    readonly kind: "fixedSizeTypeNode";
                    readonly size: 36;
                    readonly type: {
                        readonly kind: "bytesTypeNode";
                    };
                };