UNPKG

micro-sol-signer

Version:

Create, sign & decode Solana transactions with minimum deps

1,121 lines 942 kB
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"; }; };