@solana-program/system 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/index.js +125 -35
- package/dist/src/index.js.map +1 -1
- package/dist/src/index.mjs +125 -35
- package/dist/src/index.mjs.map +1 -1
- package/dist/types/generated/accounts/nonce.d.ts +7 -7
- package/dist/types/generated/accounts/nonce.d.ts.map +1 -1
- package/dist/types/generated/errors/system.d.ts +4 -2
- package/dist/types/generated/errors/system.d.ts.map +1 -1
- package/dist/types/generated/instructions/advanceNonceAccount.d.ts +3 -1
- package/dist/types/generated/instructions/advanceNonceAccount.d.ts.map +1 -1
- package/dist/types/generated/instructions/allocate.d.ts +3 -1
- package/dist/types/generated/instructions/allocate.d.ts.map +1 -1
- package/dist/types/generated/instructions/allocateWithSeed.d.ts +6 -4
- package/dist/types/generated/instructions/allocateWithSeed.d.ts.map +1 -1
- package/dist/types/generated/instructions/assign.d.ts +5 -3
- package/dist/types/generated/instructions/assign.d.ts.map +1 -1
- package/dist/types/generated/instructions/assignWithSeed.d.ts +6 -4
- package/dist/types/generated/instructions/assignWithSeed.d.ts.map +1 -1
- package/dist/types/generated/instructions/authorizeNonceAccount.d.ts +5 -3
- package/dist/types/generated/instructions/authorizeNonceAccount.d.ts.map +1 -1
- package/dist/types/generated/instructions/createAccount.d.ts +5 -3
- package/dist/types/generated/instructions/createAccount.d.ts.map +1 -1
- package/dist/types/generated/instructions/createAccountAllowPrefund.d.ts +5 -3
- package/dist/types/generated/instructions/createAccountAllowPrefund.d.ts.map +1 -1
- package/dist/types/generated/instructions/createAccountWithSeed.d.ts +6 -4
- package/dist/types/generated/instructions/createAccountWithSeed.d.ts.map +1 -1
- package/dist/types/generated/instructions/initializeNonceAccount.d.ts +5 -3
- package/dist/types/generated/instructions/initializeNonceAccount.d.ts.map +1 -1
- package/dist/types/generated/instructions/transferSol.d.ts +3 -1
- package/dist/types/generated/instructions/transferSol.d.ts.map +1 -1
- package/dist/types/generated/instructions/transferSolWithSeed.d.ts +5 -3
- package/dist/types/generated/instructions/transferSolWithSeed.d.ts.map +1 -1
- package/dist/types/generated/instructions/upgradeNonceAccount.d.ts +3 -1
- package/dist/types/generated/instructions/upgradeNonceAccount.d.ts.map +1 -1
- package/dist/types/generated/instructions/withdrawNonceAccount.d.ts +3 -1
- package/dist/types/generated/instructions/withdrawNonceAccount.d.ts.map +1 -1
- package/dist/types/generated/programs/system.d.ts +46 -16
- package/dist/types/generated/programs/system.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/generated/accounts/nonce.ts +17 -8
- package/src/generated/errors/system.ts +5 -1
- package/src/generated/instructions/advanceNonceAccount.ts +3 -2
- package/src/generated/instructions/allocate.ts +3 -2
- package/src/generated/instructions/allocateWithSeed.ts +6 -4
- package/src/generated/instructions/assign.ts +5 -3
- package/src/generated/instructions/assignWithSeed.ts +9 -3
- package/src/generated/instructions/authorizeNonceAccount.ts +5 -3
- package/src/generated/instructions/createAccount.ts +5 -3
- package/src/generated/instructions/createAccountAllowPrefund.ts +5 -3
- package/src/generated/instructions/createAccountWithSeed.ts +6 -4
- package/src/generated/instructions/initializeNonceAccount.ts +5 -3
- package/src/generated/instructions/transferSol.ts +3 -2
- package/src/generated/instructions/transferSolWithSeed.ts +9 -3
- package/src/generated/instructions/upgradeNonceAccount.ts +3 -2
- package/src/generated/instructions/withdrawNonceAccount.ts +3 -2
- package/src/generated/programs/system.ts +119 -28
package/dist/src/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/generated/types/nonceState.ts","../../src/generated/types/nonceVersion.ts","../../src/generated/accounts/nonce.ts","../../src/generated/instructions/advanceNonceAccount.ts","../../src/generated/instructions/allocate.ts","../../src/generated/instructions/allocateWithSeed.ts","../../src/generated/instructions/assign.ts","../../src/generated/instructions/assignWithSeed.ts","../../src/generated/instructions/authorizeNonceAccount.ts","../../src/generated/instructions/createAccount.ts","../../src/generated/instructions/createAccountAllowPrefund.ts","../../src/generated/instructions/createAccountWithSeed.ts","../../src/generated/instructions/initializeNonceAccount.ts","../../src/generated/instructions/transferSol.ts","../../src/generated/instructions/transferSolWithSeed.ts","../../src/generated/instructions/upgradeNonceAccount.ts","../../src/generated/instructions/withdrawNonceAccount.ts","../../src/generated/programs/system.ts","../../src/generated/errors/system.ts"],"names":["NonceState","NonceVersion","getEnumEncoder","getU32Encoder","getEnumDecoder","getU32Decoder","combineCodec","getStructEncoder","getStructDecoder","transformEncoder","getU64Encoder","getU64Decoder","getAccountMetaFactory","SolanaError","SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS","getAddressEncoder","getAddressDecoder","addEncoderSizePrefix","getUtf8Encoder","addDecoderSizePrefix","getUtf8Decoder","BASE_ACCOUNT_SIZE","SystemAccount","SystemInstruction"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getEnumDecoder,\n getEnumEncoder,\n getU32Decoder,\n getU32Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport enum NonceState {\n Uninitialized,\n Initialized,\n}\n\nexport type NonceStateArgs = NonceState;\n\nexport function getNonceStateEncoder(): FixedSizeEncoder<NonceStateArgs> {\n return getEnumEncoder(NonceState, { size: getU32Encoder() });\n}\n\nexport function getNonceStateDecoder(): FixedSizeDecoder<NonceState> {\n return getEnumDecoder(NonceState, { size: getU32Decoder() });\n}\n\nexport function getNonceStateCodec(): FixedSizeCodec<NonceStateArgs, NonceState> {\n return combineCodec(getNonceStateEncoder(), getNonceStateDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getEnumDecoder,\n getEnumEncoder,\n getU32Decoder,\n getU32Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport enum NonceVersion {\n Legacy,\n Current,\n}\n\nexport type NonceVersionArgs = NonceVersion;\n\nexport function getNonceVersionEncoder(): FixedSizeEncoder<NonceVersionArgs> {\n return getEnumEncoder(NonceVersion, { size: getU32Encoder() });\n}\n\nexport function getNonceVersionDecoder(): FixedSizeDecoder<NonceVersion> {\n return getEnumDecoder(NonceVersion, { size: getU32Decoder() });\n}\n\nexport function getNonceVersionCodec(): FixedSizeCodec<NonceVersionArgs, NonceVersion> {\n return combineCodec(getNonceVersionEncoder(), getNonceVersionDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n type Account,\n type Address,\n type EncodedAccount,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type MaybeAccount,\n type MaybeEncodedAccount,\n} from '@solana/kit';\nimport {\n getNonceStateDecoder,\n getNonceStateEncoder,\n getNonceVersionDecoder,\n getNonceVersionEncoder,\n type NonceState,\n type NonceStateArgs,\n type NonceVersion,\n type NonceVersionArgs,\n} from '../types';\n\nexport type Nonce = {\n version: NonceVersion;\n state: NonceState;\n authority: Address;\n blockhash: Address;\n lamportsPerSignature: bigint;\n};\n\nexport type NonceArgs = {\n version: NonceVersionArgs;\n state: NonceStateArgs;\n authority: Address;\n blockhash: Address;\n lamportsPerSignature: number | bigint;\n};\n\n/** Gets the encoder for {@link NonceArgs} account data. */\nexport function getNonceEncoder(): FixedSizeEncoder<NonceArgs> {\n return getStructEncoder([\n ['version', getNonceVersionEncoder()],\n ['state', getNonceStateEncoder()],\n ['authority', getAddressEncoder()],\n ['blockhash', getAddressEncoder()],\n ['lamportsPerSignature', getU64Encoder()],\n ]);\n}\n\n/** Gets the decoder for {@link Nonce} account data. */\nexport function getNonceDecoder(): FixedSizeDecoder<Nonce> {\n return getStructDecoder([\n ['version', getNonceVersionDecoder()],\n ['state', getNonceStateDecoder()],\n ['authority', getAddressDecoder()],\n ['blockhash', getAddressDecoder()],\n ['lamportsPerSignature', getU64Decoder()],\n ]);\n}\n\n/** Gets the codec for {@link Nonce} account data. */\nexport function getNonceCodec(): FixedSizeCodec<NonceArgs, Nonce> {\n return combineCodec(getNonceEncoder(), getNonceDecoder());\n}\n\nexport function decodeNonce<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>,\n): Account<Nonce, TAddress>;\nexport function decodeNonce<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>,\n): MaybeAccount<Nonce, TAddress>;\nexport function decodeNonce<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,\n): Account<Nonce, TAddress> | MaybeAccount<Nonce, TAddress> {\n return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getNonceDecoder());\n}\n\nexport async function fetchNonce<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig,\n): Promise<Account<Nonce, TAddress>> {\n const maybeAccount = await fetchMaybeNonce(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeNonce<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig,\n): Promise<MaybeAccount<Nonce, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodeNonce(maybeAccount);\n}\n\nexport async function fetchAllNonce(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig,\n): Promise<Account<Nonce>[]> {\n const maybeAccounts = await fetchAllMaybeNonce(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeNonce(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig,\n): Promise<MaybeAccount<Nonce>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map(maybeAccount => decodeNonce(maybeAccount));\n}\n\nexport function getNonceSize(): number {\n return 80;\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const ADVANCE_NONCE_ACCOUNT_DISCRIMINATOR = 4;\n\nexport function getAdvanceNonceAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(ADVANCE_NONCE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type AdvanceNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNonceAccount extends string | AccountMeta<string> = string,\n TAccountRecentBlockhashesSysvar extends string | AccountMeta<string> =\n 'SysvarRecentB1ockHashes11111111111111111111',\n TAccountNonceAuthority extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNonceAccount extends string ? WritableAccount<TAccountNonceAccount> : TAccountNonceAccount,\n TAccountRecentBlockhashesSysvar extends string\n ? ReadonlyAccount<TAccountRecentBlockhashesSysvar>\n : TAccountRecentBlockhashesSysvar,\n TAccountNonceAuthority extends string\n ? ReadonlySignerAccount<TAccountNonceAuthority> & AccountSignerMeta<TAccountNonceAuthority>\n : TAccountNonceAuthority,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AdvanceNonceAccountInstructionData = { discriminator: number };\n\nexport type AdvanceNonceAccountInstructionDataArgs = {};\n\nexport function getAdvanceNonceAccountInstructionDataEncoder(): FixedSizeEncoder<AdvanceNonceAccountInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', getU32Encoder()]]), value => ({\n ...value,\n discriminator: ADVANCE_NONCE_ACCOUNT_DISCRIMINATOR,\n }));\n}\n\nexport function getAdvanceNonceAccountInstructionDataDecoder(): FixedSizeDecoder<AdvanceNonceAccountInstructionData> {\n return getStructDecoder([['discriminator', getU32Decoder()]]);\n}\n\nexport function getAdvanceNonceAccountInstructionDataCodec(): FixedSizeCodec<\n AdvanceNonceAccountInstructionDataArgs,\n AdvanceNonceAccountInstructionData\n> {\n return combineCodec(getAdvanceNonceAccountInstructionDataEncoder(), getAdvanceNonceAccountInstructionDataDecoder());\n}\n\nexport type AdvanceNonceAccountInput<\n TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput = InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput = InstructionSignerInput,\n> = {\n nonceAccount: TAccountNonceAccount;\n recentBlockhashesSysvar?: TAccountRecentBlockhashesSysvar;\n nonceAuthority: TAccountNonceAuthority;\n};\n\nexport function getAdvanceNonceAccountInstruction<\n TAccountNonceAccount extends InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AdvanceNonceAccountInput<TAccountNonceAccount, TAccountRecentBlockhashesSysvar, TAccountNonceAuthority>,\n config?: { programAddress?: TProgramAddress },\n): AdvanceNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true },\n recentBlockhashesSysvar: { value: input.recentBlockhashesSysvar ?? null, isSigner: false, isWritable: false },\n nonceAuthority: { value: input.nonceAuthority ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Resolve default values.\n if (!accounts.recentBlockhashesSysvar.value) {\n accounts.recentBlockhashesSysvar.value =\n 'SysvarRecentB1ockHashes11111111111111111111' as Address<'SysvarRecentB1ockHashes11111111111111111111'>;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('nonceAccount', accounts.nonceAccount),\n getAccountMeta('recentBlockhashesSysvar', accounts.recentBlockhashesSysvar),\n getAccountMeta('nonceAuthority', accounts.nonceAuthority),\n ],\n data: getAdvanceNonceAccountInstructionDataEncoder().encode({}),\n programAddress,\n } as AdvanceNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n >);\n}\n\nexport type ParsedAdvanceNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n nonceAccount: TAccountMetas[0];\n recentBlockhashesSysvar: TAccountMetas[1];\n nonceAuthority: TAccountMetas[2];\n };\n data: AdvanceNonceAccountInstructionData;\n};\n\nexport function parseAdvanceNonceAccountInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAdvanceNonceAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 3) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 3,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n nonceAccount: getNextAccount(),\n recentBlockhashesSysvar: getNextAccount(),\n nonceAuthority: getNextAccount(),\n },\n data: getAdvanceNonceAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const ALLOCATE_DISCRIMINATOR = 8;\n\nexport function getAllocateDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(ALLOCATE_DISCRIMINATOR);\n}\n\nexport type AllocateInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNewAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNewAccount extends string\n ? WritableSignerAccount<TAccountNewAccount> & AccountSignerMeta<TAccountNewAccount>\n : TAccountNewAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AllocateInstructionData = { discriminator: number; space: bigint };\n\nexport type AllocateInstructionDataArgs = { space: number | bigint };\n\nexport function getAllocateInstructionDataEncoder(): FixedSizeEncoder<AllocateInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['space', getU64Encoder()],\n ]),\n value => ({ ...value, discriminator: ALLOCATE_DISCRIMINATOR }),\n );\n}\n\nexport function getAllocateInstructionDataDecoder(): FixedSizeDecoder<AllocateInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['space', getU64Decoder()],\n ]);\n}\n\nexport function getAllocateInstructionDataCodec(): FixedSizeCodec<\n AllocateInstructionDataArgs,\n AllocateInstructionData\n> {\n return combineCodec(getAllocateInstructionDataEncoder(), getAllocateInstructionDataDecoder());\n}\n\nexport type AllocateInput<TAccountNewAccount extends InstructionSignerInput = InstructionSignerInput> = {\n newAccount: TAccountNewAccount;\n space: AllocateInstructionDataArgs['space'];\n};\n\nexport function getAllocateInstruction<\n TAccountNewAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AllocateInput<TAccountNewAccount>,\n config?: { programAddress?: TProgramAddress },\n): AllocateInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = { newAccount: { value: input.newAccount ?? null, isSigner: true, isWritable: true } };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [getAccountMeta('newAccount', accounts.newAccount)],\n data: getAllocateInstructionDataEncoder().encode(args as AllocateInstructionDataArgs),\n programAddress,\n } as AllocateInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>\n >);\n}\n\nexport type ParsedAllocateInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n newAccount: TAccountMetas[0];\n };\n data: AllocateInstructionData;\n};\n\nexport function parseAllocateInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAllocateInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 1) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 1,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { newAccount: getNextAccount() },\n data: getAllocateInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const ALLOCATE_WITH_SEED_DISCRIMINATOR = 9;\n\nexport function getAllocateWithSeedDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(ALLOCATE_WITH_SEED_DISCRIMINATOR);\n}\n\nexport type AllocateWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNewAccount extends string | AccountMeta<string> = string,\n TAccountBaseAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNewAccount extends string ? WritableAccount<TAccountNewAccount> : TAccountNewAccount,\n TAccountBaseAccount extends string\n ? ReadonlySignerAccount<TAccountBaseAccount> & AccountSignerMeta<TAccountBaseAccount>\n : TAccountBaseAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AllocateWithSeedInstructionData = {\n discriminator: number;\n base: Address;\n seed: string;\n space: bigint;\n programAddress: Address;\n};\n\nexport type AllocateWithSeedInstructionDataArgs = {\n base: Address;\n seed: string;\n space: number | bigint;\n programAddress: Address;\n};\n\nexport function getAllocateWithSeedInstructionDataEncoder(): Encoder<AllocateWithSeedInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['base', getAddressEncoder()],\n ['seed', addEncoderSizePrefix(getUtf8Encoder(), getU64Encoder())],\n ['space', getU64Encoder()],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: ALLOCATE_WITH_SEED_DISCRIMINATOR }),\n );\n}\n\nexport function getAllocateWithSeedInstructionDataDecoder(): Decoder<AllocateWithSeedInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['base', getAddressDecoder()],\n ['seed', addDecoderSizePrefix(getUtf8Decoder(), getU64Decoder())],\n ['space', getU64Decoder()],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getAllocateWithSeedInstructionDataCodec(): Codec<\n AllocateWithSeedInstructionDataArgs,\n AllocateWithSeedInstructionData\n> {\n return combineCodec(getAllocateWithSeedInstructionDataEncoder(), getAllocateWithSeedInstructionDataDecoder());\n}\n\nexport type AllocateWithSeedInput<\n TAccountNewAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput = InstructionSignerInput,\n> = {\n newAccount: TAccountNewAccount;\n baseAccount: TAccountBaseAccount;\n base: AllocateWithSeedInstructionDataArgs['base'];\n seed: AllocateWithSeedInstructionDataArgs['seed'];\n space: AllocateWithSeedInstructionDataArgs['space'];\n programAddress: AllocateWithSeedInstructionDataArgs['programAddress'];\n};\n\nexport function getAllocateWithSeedInstruction<\n TAccountNewAccount extends InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AllocateWithSeedInput<TAccountNewAccount, TAccountBaseAccount>,\n config?: { programAddress?: TProgramAddress },\n): AllocateWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n newAccount: { value: input.newAccount ?? null, isSigner: false, isWritable: true },\n baseAccount: { value: input.baseAccount ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [\n getAccountMeta('newAccount', accounts.newAccount),\n getAccountMeta('baseAccount', accounts.baseAccount),\n ],\n data: getAllocateWithSeedInstructionDataEncoder().encode(args as AllocateWithSeedInstructionDataArgs),\n programAddress,\n } as AllocateWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n >);\n}\n\nexport type ParsedAllocateWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n newAccount: TAccountMetas[0];\n baseAccount: TAccountMetas[1];\n };\n data: AllocateWithSeedInstructionData;\n};\n\nexport function parseAllocateWithSeedInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAllocateWithSeedInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { newAccount: getNextAccount(), baseAccount: getNextAccount() },\n data: getAllocateWithSeedInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const ASSIGN_DISCRIMINATOR = 1;\n\nexport function getAssignDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(ASSIGN_DISCRIMINATOR);\n}\n\nexport type AssignInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountAccount extends string\n ? WritableSignerAccount<TAccountAccount> & AccountSignerMeta<TAccountAccount>\n : TAccountAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AssignInstructionData = { discriminator: number; programAddress: Address };\n\nexport type AssignInstructionDataArgs = { programAddress: Address };\n\nexport function getAssignInstructionDataEncoder(): FixedSizeEncoder<AssignInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: ASSIGN_DISCRIMINATOR }),\n );\n}\n\nexport function getAssignInstructionDataDecoder(): FixedSizeDecoder<AssignInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getAssignInstructionDataCodec(): FixedSizeCodec<AssignInstructionDataArgs, AssignInstructionData> {\n return combineCodec(getAssignInstructionDataEncoder(), getAssignInstructionDataDecoder());\n}\n\nexport type AssignInput<TAccountAccount extends InstructionSignerInput = InstructionSignerInput> = {\n account: TAccountAccount;\n programAddress: AssignInstructionDataArgs['programAddress'];\n};\n\nexport function getAssignInstruction<\n TAccountAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AssignInput<TAccountAccount>,\n config?: { programAddress?: TProgramAddress },\n): AssignInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAccount, InstructionAccountInputAddress<TAccountAccount>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = { account: { value: input.account ?? null, isSigner: true, isWritable: true } };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [getAccountMeta('account', accounts.account)],\n data: getAssignInstructionDataEncoder().encode(args as AssignInstructionDataArgs),\n programAddress,\n } as AssignInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAccount, InstructionAccountInputAddress<TAccountAccount>>\n >);\n}\n\nexport type ParsedAssignInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n account: TAccountMetas[0];\n };\n data: AssignInstructionData;\n};\n\nexport function parseAssignInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAssignInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 1) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 1,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { account: getNextAccount() },\n data: getAssignInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const ASSIGN_WITH_SEED_DISCRIMINATOR = 10;\n\nexport function getAssignWithSeedDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(ASSIGN_WITH_SEED_DISCRIMINATOR);\n}\n\nexport type AssignWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountAccount extends string | AccountMeta<string> = string,\n TAccountBaseAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountAccount extends string ? WritableAccount<TAccountAccount> : TAccountAccount,\n TAccountBaseAccount extends string\n ? ReadonlySignerAccount<TAccountBaseAccount> & AccountSignerMeta<TAccountBaseAccount>\n : TAccountBaseAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AssignWithSeedInstructionData = {\n discriminator: number;\n base: Address;\n seed: string;\n programAddress: Address;\n};\n\nexport type AssignWithSeedInstructionDataArgs = { base: Address; seed: string; programAddress: Address };\n\nexport function getAssignWithSeedInstructionDataEncoder(): Encoder<AssignWithSeedInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['base', getAddressEncoder()],\n ['seed', addEncoderSizePrefix(getUtf8Encoder(), getU64Encoder())],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: ASSIGN_WITH_SEED_DISCRIMINATOR }),\n );\n}\n\nexport function getAssignWithSeedInstructionDataDecoder(): Decoder<AssignWithSeedInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['base', getAddressDecoder()],\n ['seed', addDecoderSizePrefix(getUtf8Decoder(), getU64Decoder())],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getAssignWithSeedInstructionDataCodec(): Codec<\n AssignWithSeedInstructionDataArgs,\n AssignWithSeedInstructionData\n> {\n return combineCodec(getAssignWithSeedInstructionDataEncoder(), getAssignWithSeedInstructionDataDecoder());\n}\n\nexport type AssignWithSeedInput<\n TAccountAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput = InstructionSignerInput,\n> = {\n account: TAccountAccount;\n baseAccount: TAccountBaseAccount;\n base: AssignWithSeedInstructionDataArgs['base'];\n seed: AssignWithSeedInstructionDataArgs['seed'];\n programAddress: AssignWithSeedInstructionDataArgs['programAddress'];\n};\n\nexport function getAssignWithSeedInstruction<\n TAccountAccount extends InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AssignWithSeedInput<TAccountAccount, TAccountBaseAccount>,\n config?: { programAddress?: TProgramAddress },\n): AssignWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAccount, InstructionAccountInputAddress<TAccountAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n account: { value: input.account ?? null, isSigner: false, isWritable: true },\n baseAccount: { value: input.baseAccount ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [getAccountMeta('account', accounts.account), getAccountMeta('baseAccount', accounts.baseAccount)],\n data: getAssignWithSeedInstructionDataEncoder().encode(args as AssignWithSeedInstructionDataArgs),\n programAddress,\n } as AssignWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAccount, InstructionAccountInputAddress<TAccountAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n >);\n}\n\nexport type ParsedAssignWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n account: TAccountMetas[0];\n baseAccount: TAccountMetas[1];\n };\n data: AssignWithSeedInstructionData;\n};\n\nexport function parseAssignWithSeedInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAssignWithSeedInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { account: getNextAccount(), baseAccount: getNextAccount() },\n data: getAssignWithSeedInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const AUTHORIZE_NONCE_ACCOUNT_DISCRIMINATOR = 7;\n\nexport function getAuthorizeNonceAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(AUTHORIZE_NONCE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type AuthorizeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNonceAccount extends string | AccountMeta<string> = string,\n TAccountNonceAuthority extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNonceAccount extends string ? WritableAccount<TAccountNonceAccount> : TAccountNonceAccount,\n TAccountNonceAuthority extends string\n ? ReadonlySignerAccount<TAccountNonceAuthority> & AccountSignerMeta<TAccountNonceAuthority>\n : TAccountNonceAuthority,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AuthorizeNonceAccountInstructionData = { discriminator: number; newNonceAuthority: Address };\n\nexport type AuthorizeNonceAccountInstructionDataArgs = { newNonceAuthority: Address };\n\nexport function getAuthorizeNonceAccountInstructionDataEncoder(): FixedSizeEncoder<AuthorizeNonceAccountInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['newNonceAuthority', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: AUTHORIZE_NONCE_ACCOUNT_DISCRIMINATOR }),\n );\n}\n\nexport function getAuthorizeNonceAccountInstructionDataDecoder(): FixedSizeDecoder<AuthorizeNonceAccountInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['newNonceAuthority', getAddressDecoder()],\n ]);\n}\n\nexport function getAuthorizeNonceAccountInstructionDataCodec(): FixedSizeCodec<\n AuthorizeNonceAccountInstructionDataArgs,\n AuthorizeNonceAccountInstructionData\n> {\n return combineCodec(\n getAuthorizeNonceAccountInstructionDataEncoder(),\n getAuthorizeNonceAccountInstructionDataDecoder(),\n );\n}\n\nexport type AuthorizeNonceAccountInput<\n TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput = InstructionSignerInput,\n> = {\n nonceAccount: TAccountNonceAccount;\n nonceAuthority: TAccountNonceAuthority;\n newNonceAuthority: AuthorizeNonceAccountInstructionDataArgs['newNonceAuthority'];\n};\n\nexport function getAuthorizeNonceAccountInstruction<\n TAccountNonceAccount extends InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AuthorizeNonceAccountInput<TAccountNonceAccount, TAccountNonceAuthority>,\n config?: { programAddress?: TProgramAddress },\n): AuthorizeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true },\n nonceAuthority: { value: input.nonceAuthority ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [\n getAccountMeta('nonceAccount', accounts.nonceAccount),\n getAccountMeta('nonceAuthority', accounts.nonceAuthority),\n ],\n data: getAuthorizeNonceAccountInstructionDataEncoder().encode(args as AuthorizeNonceAccountInstructionDataArgs),\n programAddress,\n } as AuthorizeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n >);\n}\n\nexport type ParsedAuthorizeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n nonceAccount: TAccountMetas[0];\n nonceAuthority: TAccountMetas[1];\n };\n data: AuthorizeNonceAccountInstructionData;\n};\n\nexport function parseAuthorizeNonceAccountInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAuthorizeNonceAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { nonceAccount: getNextAccount(), nonceAuthority: getNextAccount() },\n data: getAuthorizeNonceAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n BASE_ACCOUNT_SIZE,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type InstructionWithByteDelta,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const CREATE_ACCOUNT_DISCRIMINATOR = 0;\n\nexport function getCreateAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(CREATE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type CreateAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountPayer extends string | AccountMeta<string> = string,\n TAccountNewAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountPayer extends string\n ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer>\n : TAccountPayer,\n TAccountNewAccount extends string\n ? WritableSignerAccount<TAccountNewAccount> & AccountSignerMeta<TAccountNewAccount>\n : TAccountNewAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type CreateAccountInstructionData = {\n discriminator: number;\n lamports: bigint;\n space: bigint;\n programAddress: Address;\n};\n\nexport type CreateAccountInstructionDataArgs = {\n lamports: number | bigint;\n space: number | bigint;\n programAddress: Address;\n};\n\nexport function getCreateAccountInstructionDataEncoder(): FixedSizeEncoder<CreateAccountInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['lamports', getU64Encoder()],\n ['space', getU64Encoder()],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: CREATE_ACCOUNT_DISCRIMINATOR }),\n );\n}\n\nexport function getCreateAccountInstructionDataDecoder(): FixedSizeDecoder<CreateAccountInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['lamports', getU64Decoder()],\n ['space', getU64Decoder()],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getCreateAccountInstructionDataCodec(): FixedSizeCodec<\n CreateAccountInstructionDataArgs,\n CreateAccountInstructionData\n> {\n return combineCodec(getCreateAccountInstructionDataEncoder(), getCreateAccountInstructionDataDecoder());\n}\n\nexport type CreateAccountInput<\n TAccountPayer extends InstructionSignerInput = InstructionSignerInput,\n TAccountNewAccount extends InstructionSignerInput = InstructionSignerInput,\n> = {\n payer: TAccountPayer;\n newAccount: TAccountNewAccount;\n lamports: CreateAccountInstructionDataArgs['lamports'];\n space: CreateAccountInstructionDataArgs['space'];\n programAddress: CreateAccountInstructionDataArgs['programAddress'];\n};\n\nexport function getCreateAccountInstruction<\n TAccountPayer extends InstructionSignerInput,\n TAccountNewAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: CreateAccountInput<TAccountPayer, TAccountNewAccount>,\n config?: { programAddress?: TProgramAddress },\n): CreateAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>\n> &\n InstructionWithByteDelta {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n payer: { value: input.payer ?? null, isSigner: true, isWritable: true },\n newAccount: { value: input.newAccount ?? null, isSigner: true, isWritable: true },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Bytes created or reallocated by the instruction.\n const byteDelta: number = [Number(args.space) + BASE_ACCOUNT_SIZE].reduce((a, b) => a + b, 0);\n\n return Object.freeze({\n accounts: [getAccountMeta('payer', accounts.payer), getAccountMeta('newAccount', accounts.newAccount)],\n byteDelta,\n data: getCreateAccountInstructionDataEncoder().encode(args as CreateAccountInstructionDataArgs),\n programAddress,\n } as CreateAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>\n > &\n InstructionWithByteDelta);\n}\n\nexport type ParsedCreateAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n payer: TAccountMetas[0];\n newAccount: TAccountMetas[1];\n };\n data: CreateAccountInstructionData;\n};\n\nexport function parseCreateAccountInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedCreateAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { payer: getNextAccount(), newAccount: getNextAccount() },\n data: getCreateAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n BASE_ACCOUNT_SIZE,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type InstructionWithByteDelta,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const CREATE_ACCOUNT_ALLOW_PREFUND_DISCRIMINATOR = 13;\n\nexport function getCreateAccountAllowPrefundDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(CREATE_ACCOUNT_ALLOW_PREFUND_DISCRIMINATOR);\n}\n\nexport type CreateAccountAllowPrefundInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNewAccount extends string | AccountMeta<string> = string,\n TAccountPayer extends string | AccountMeta<string> | undefined = undefined,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNewAccount extends string\n ? WritableSignerAccount<TAccountNewAccount> & AccountSignerMeta<TAccountNewAccount>\n : TAccountNewAccount,\n ...(TAccountPayer extends undefined\n ? []\n : [\n TAccountPayer extends string\n ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer>\n : TAccountPayer,\n ]),\n ...TRemainingAccounts,\n ]\n >;\n\nexport type CreateAccountAllowPrefundInstructionData = {\n discriminator: number;\n lamports: bigint;\n space: bigint;\n programAddress: Address;\n};\n\nexport type CreateAccountAllowPrefundInstructionDataArgs = {\n lamports?: number | bigint;\n space: number | bigint;\n programAddress: Address;\n};\n\nexport function getCreateAccountAllowPrefundInstructionDataEncoder(): FixedSizeEncoder<CreateAccountAllowPrefundInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['lamports', getU64Encoder()],\n ['space', getU64Encoder()],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({\n ...value,\n discriminator: CREATE_ACCOUNT_ALLOW_PREFUND_DISCRIMINATOR,\n lamports: value.lamports ?? 0,\n }),\n );\n}\n\nexport function getCreateAccountAllowPrefundInstructionDataDecoder(): FixedSizeDecoder<CreateAccountAllowPrefundInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['lamports', getU64Decoder()],\n ['space', getU64Decoder()],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getCreateAccountAllowPrefundInstructionDataCodec(): FixedSizeCodec<\n CreateAccountAllowPrefundInstructionDataArgs,\n CreateAccountAllowPrefundInstructionData\n> {\n return combineCodec(\n getCreateAccountAllowPrefundInstructionDataEncoder(),\n getCreateAccountAllowPrefundInstructionDataDecoder(),\n );\n}\n\nexport type CreateAccountAllowPrefundInput<\n TAccountNewAccount extends InstructionSignerInput = InstructionSignerInput,\n TAccountPayer extends InstructionSignerInput = InstructionSignerInput,\n> = {\n newAccount: TAccountNewAccount;\n payer?: TAccountPayer;\n lamports?: CreateAccountAllowPrefundInstructionDataArgs['lamports'];\n space: CreateAccountAllowPrefundInstructionDataArgs['space'];\n programAddress: CreateAccountAllowPrefundInstructionDataArgs['programAddress'];\n};\n\nexport function getCreateAccountAllowPrefundInstruction<\n TAccountNewAccount extends InstructionSignerInput,\n TAccountPayer extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: CreateAccountAllowPrefundInput<TAccountNewAccount, TAccountPayer>,\n config?: { programAddress?: TProgramAddress },\n): CreateAccountAllowPrefundInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>\n> &\n InstructionWithByteDelta {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n newAccount: { value: input.newAccount ?? null, isSigner: true, isWritable: true },\n payer: { value: input.payer ?? null, isSigner: true, isWritable: true },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Bytes created or reallocated by the instruction.\n const byteDelta: number = [Number(args.space) + BASE_ACCOUNT_SIZE].reduce((a, b) => a + b, 0);\n\n return Object.freeze({\n accounts: [getAccountMeta('newAccount', accounts.newAccount), getAccountMeta('payer', accounts.payer)].filter(\n <T>(x: T | undefined): x is T => x !== undefined,\n ),\n byteDelta,\n data: getCreateAccountAllowPrefundInstructionDataEncoder().encode(\n args as CreateAccountAllowPrefundInstructionDataArgs,\n ),\n programAddress,\n } as CreateAccountAllowPrefundInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>\n > &\n InstructionWithByteDelta);\n}\n\nexport type ParsedCreateAccountAllowPrefundInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n newAccount: TAccountMetas[0];\n payer?: TAccountMetas[1] | undefined;\n };\n data: CreateAccountAllowPrefundInstructionData;\n};\n\nexport function parseCreateAccountAllowPrefundInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedCreateAccountAllowPrefundInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 1) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 1,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n let optionalAccountsRemaining = instruction.accounts.length - 1;\n const getNextOptionalAccount = () => {\n if (optionalAccountsRemaining === 0) return undefined;\n optionalAccountsRemaining -= 1;\n return getNextAccount();\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { newAccount: getNextAccount(), payer: getNextOptionalAccount() },\n data: getCreateAccountAllowPrefundInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const CREATE_ACCOUNT_WITH_SEED_DISCRIMINATOR = 3;\n\nexport function getCreateAccountWithSeedDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(CREATE_ACCOUNT_WITH_SEED_DISCRIMINATOR);\n}\n\nexport type CreateAccountWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountPayer extends string | AccountMeta<string> = string,\n TAccountNewAccount extends string | AccountMeta<string> = string,\n TAccountBaseAccount extends string | AccountMeta<string> | undefined = undefined,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountPayer extends string\n ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer>\n : TAccountPayer,\n TAccountNewAccount extends string ? WritableAccount<TAccountNewAccount> : TAccountNewAccount,\n ...(TAccountBaseAccount extends undefined\n ? []\n : [\n TAccountBaseAccount extends string\n ? ReadonlySignerAccount<TAccountBaseAccount> & AccountSignerMeta<TAccountBaseAccount>\n : TAccountBaseAccount,\n ]),\n ...TRemainingAccounts,\n ]\n >;\n\nexport type CreateAccountWithSeedInstructionData = {\n discriminator: number;\n base: Address;\n seed: string;\n amount: bigint;\n space: bigint;\n programAddress: Address;\n};\n\nexport type CreateAccountWithSeedInstructionDataArgs = {\n base: Address;\n seed: string;\n amount: number | bigint;\n space: number | bigint;\n programAddress: Address;\n};\n\nexport function getCreateAccountWithSeedInstructionDataEncoder(): Encoder<CreateAccountWithSeedInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['base', getAddressEncoder()],\n ['seed', addEncoderSizePrefix(getUtf8Encoder(), getU64Encoder())],\n ['amount', getU64Encoder()],\n ['space', getU64Encoder()],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: CREATE_ACCOUNT_WITH_SEED_DISCRIMINATOR }),\n );\n}\n\nexport function getCreateAccountWithSeedInstructionDataDecoder(): Decoder<CreateAccountWithSeedInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['base', getAddressDecoder()],\n ['seed', addDecoderSizePrefix(getUtf8Decoder(), getU64Decoder())],\n ['amount', getU64Decoder()],\n ['space', getU64Decoder()],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getCreateAccountWithSeedInstructionDataCodec(): Codec<\n CreateAccountWithSeedInstructionDataArgs,\n CreateAccountWithSeedInstructionData\n> {\n return combineCodec(\n getCreateAccountWithSeedInstructionDataEncoder(),\n getCreateAccountWithSeedInstructionDataDecoder(),\n );\n}\n\nexport type CreateAccountWithSeedInput<\n TAccountPayer extends InstructionSignerInput = InstructionSignerInput,\n TAccountNewAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput = InstructionSignerInput,\n> = {\n payer: TAccountPayer;\n newAccount: TAccountNewAccount;\n baseAccount?: TAccountBaseAccount;\n base: CreateAccountWithSeedInstructionDataArgs['base'];\n seed: CreateAccountWithSeedInstructionDataArgs['seed'];\n amount: CreateAccountWithSeedInstructionDataArgs['amount'];\n space: CreateAccountWithSeedInstructionDataArgs['space'];\n programAddress: CreateAccountWithSeedInstructionDataArgs['programAddress'];\n};\n\nexport function getCreateAccountWithSeedInstruction<\n TAccountPayer extends InstructionSignerInput,\n TAccountNewAccount extends InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: CreateAccountWithSeedInput<TAccountPayer, TAccountNewAccount, TAccountBaseAccount>,\n config?: { programAddress?: TProgramAddress },\n): CreateAccountWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n payer: { value: input.payer ?? null, isSigner: true, isWritable: true },\n newAccount: { value: input.newAccount ?? null, isSigner: false, isWritable: true },\n baseAccount: { value: input.baseAccount ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [\n getAccountMeta('payer', accounts.payer),\n getAccountMeta('newAccount', accounts.newAccount),\n getAccountMeta('baseAccount', accounts.baseAccount),\n ].filter(<T>(x: T | undefined): x is T => x !== undefined),\n data: getCreateAccountWithSeedInstructionDataEncoder().encode(args as CreateAccountWithSeedInstructionDataArgs),\n programAddress,\n } as CreateAccountWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n >);\n}\n\nexport type ParsedCreateAccountWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n payer: TAccountMetas[0];\n newAccount: TAccountMetas[1];\n baseAccount?: TAccountMetas[2] | undefined;\n };\n data: CreateAccountWithSeedInstructionData;\n};\n\nexport function parseCreateAccountWithSeedInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedCreateAccountWithSeedInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n let optionalAccountsRemaining = instruction.accounts.length - 2;\n const getNextOptionalAccount = () => {\n if (optionalAccountsRemaining === 0) return undefined;\n optionalAccountsRemaining -= 1;\n return getNextAccount();\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { payer: getNextAccount(), newAccount: getNextAccount(), baseAccount: getNextOptionalAccount() },\n data: getCreateAccountWithSeedInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const INITIALIZE_NONCE_ACCOUNT_DISCRIMINATOR = 6;\n\nexport function getInitializeNonceAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(INITIALIZE_NONCE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type InitializeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNonceAccount extends string | AccountMeta<string> = string,\n TAccountRecentBlockhashesSysvar extends string | AccountMeta<string> =\n 'SysvarRecentB1ockHashes11111111111111111111',\n TAccountRentSysvar extends string | AccountMeta<string> = 'SysvarRent111111111111111111111111111111111',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNonceAccount extends string ? WritableAccount<TAccountNonceAccount> : TAccountNonceAccount,\n TAccountRecentBlockhashesSysvar extends string\n ? ReadonlyAccount<TAccountRecentBlockhashesSysvar>\n : TAccountRecentBlockhashesSysvar,\n TAccountRentSysvar extends string ? ReadonlyAccount<TAccountRentSysvar> : TAccountRentSysvar,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type InitializeNonceAccountInstructionData = { discriminator: number; nonceAuthority: Address };\n\nexport type InitializeNonceAccountInstructionDataArgs = { nonceAuthority: Address };\n\nexport function getInitializeNonceAccountInstructionDataEncoder(): FixedSizeEncoder<InitializeNonceAccountInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['nonceAuthority', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: INITIALIZE_NONCE_ACCOUNT_DISCRIMINATOR }),\n );\n}\n\nexport function getInitializeNonceAccountInstructionDataDecoder(): FixedSizeDecoder<InitializeNonceAccountInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['nonceAuthority', getAddressDecoder()],\n ]);\n}\n\nexport function getInitializeNonceAccountInstructionDataCodec(): FixedSizeCodec<\n InitializeNonceAccountInstructionDataArgs,\n InitializeNonceAccountInstructionData\n> {\n return combineCodec(\n getInitializeNonceAccountInstructionDataEncoder(),\n getInitializeNonceAccountInstructionDataDecoder(),\n );\n}\n\nexport type InitializeNonceAccountInput<\n TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput = InstructionAccountInput,\n TAccountRentSysvar extends InstructionAccountInput = InstructionAccountInput,\n> = {\n nonceAccount: TAccountNonceAccount;\n recentBlockhashesSysvar?: TAccountRecentBlockhashesSysvar;\n rentSysvar?: TAccountRentSysvar;\n nonceAuthority: InitializeNonceAccountInstructionDataArgs['nonceAuthority'];\n};\n\nexport function getInitializeNonceAccountInstruction<\n TAccountNonceAccount extends InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput,\n TAccountRentSysvar extends InstructionAccountInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: InitializeNonceAccountInput<TAccountNonceAccount, TAccountRecentBlockhashesSysvar, TAccountRentSysvar>,\n config?: { programAddress?: TProgramAddress },\n): InitializeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountRentSysvar, InstructionAccountInputAddress<TAccountRentSysvar>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true },\n recentBlockhashesSysvar: { value: input.recentBlockhashesSysvar ?? null, isSigner: false, isWritable: false },\n rentSysvar: { value: input.rentSysvar ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.recentBlockhashesSysvar.value) {\n accounts.recentBlockhashesSysvar.value =\n 'SysvarRecentB1ockHashes11111111111111111111' as Address<'SysvarRecentB1ockHashes11111111111111111111'>;\n }\n if (!accounts.rentSysvar.value) {\n accounts.rentSysvar.value =\n 'SysvarRent111111111111111111111111111111111' as Address<'SysvarRent111111111111111111111111111111111'>;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('nonceAccount', accounts.nonceAccount),\n getAccountMeta('recentBlockhashesSysvar', accounts.recentBlockhashesSysvar),\n getAccountMeta('rentSysvar', accounts.rentSysvar),\n ],\n data: getInitializeNonceAccountInstructionDataEncoder().encode(\n args as InitializeNonceAccountInstructionDataArgs,\n ),\n programAddress,\n } as InitializeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountRentSysvar, InstructionAccountInputAddress<TAccountRentSysvar>>\n >);\n}\n\nexport type ParsedInitializeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n nonceAccount: TAccountMetas[0];\n recentBlockhashesSysvar: TAccountMetas[1];\n rentSysvar: TAccountMetas[2];\n };\n data: InitializeNonceAccountInstructionData;\n};\n\nexport function parseInitializeNonceAccountInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedInitializeNonceAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 3) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 3,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n nonceAccount: getNextAccount(),\n recentBlockhashesSysvar: getNextAccount(),\n rentSysvar: getNextAccount(),\n },\n data: getInitializeNonceAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const TRANSFER_SOL_DISCRIMINATOR = 2;\n\nexport function getTransferSolDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(TRANSFER_SOL_DISCRIMINATOR);\n}\n\nexport type TransferSolInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountSource extends string | AccountMeta<string> = string,\n TAccountDestination extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountSource extends string\n ? WritableSignerAccount<TAccountSource> & AccountSignerMeta<TAccountSource>\n : TAccountSource,\n TAccountDestination extends string ? WritableAccount<TAccountDestination> : TAccountDestination,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type TransferSolInstructionData = { discriminator: number; amount: bigint };\n\nexport type TransferSolInstructionDataArgs = { amount: number | bigint };\n\nexport function getTransferSolInstructionDataEncoder(): FixedSizeEncoder<TransferSolInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['amount', getU64Encoder()],\n ]),\n value => ({ ...value, discriminator: TRANSFER_SOL_DISCRIMINATOR }),\n );\n}\n\nexport function getTransferSolInstructionDataDecoder(): FixedSizeDecoder<TransferSolInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['amount', getU64Decoder()],\n ]);\n}\n\nexport function getTransferSolInstructionDataCodec(): FixedSizeCodec<\n TransferSolInstructionDataArgs,\n TransferSolInstructionData\n> {\n return combineCodec(getTransferSolInstructionDataEncoder(), getTransferSolInstructionDataDecoder());\n}\n\nexport type TransferSolInput<\n TAccountSource extends InstructionSignerInput = InstructionSignerInput,\n TAccountDestination extends InstructionAccountInput = InstructionAccountInput,\n> = {\n source: TAccountSource;\n destination: TAccountDestination;\n amount: TransferSolInstructionDataArgs['amount'];\n};\n\nexport function getTransferSolInstruction<\n TAccountSource extends InstructionSignerInput,\n TAccountDestination extends InstructionAccountInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: TransferSolInput<TAccountSource, TAccountDestination>,\n config?: { programAddress?: TProgramAddress },\n): TransferSolInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSource, InstructionAccountInputAddress<TAccountSource>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n source: { value: input.source ?? null, isSigner: true, isWritable: true },\n destination: { value: input.destination ?? null, isSigner: false, isWritable: true },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [getAccountMeta('source', accounts.source), getAccountMeta('destination', accounts.destination)],\n data: getTransferSolInstructionDataEncoder().encode(args as TransferSolInstructionDataArgs),\n programAddress,\n } as TransferSolInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSource, InstructionAccountInputAddress<TAccountSource>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>\n >);\n}\n\nexport type ParsedTransferSolInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n source: TAccountMetas[0];\n destination: TAccountMetas[1];\n };\n data: TransferSolInstructionData;\n};\n\nexport function parseTransferSolInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedTransferSolInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { source: getNextAccount(), destination: getNextAccount() },\n data: getTransferSolInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const TRANSFER_SOL_WITH_SEED_DISCRIMINATOR = 11;\n\nexport function getTransferSolWithSeedDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(TRANSFER_SOL_WITH_SEED_DISCRIMINATOR);\n}\n\nexport type TransferSolWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountSource extends string | AccountMeta<string> = string,\n TAccountBaseAccount extends string | AccountMeta<string> = string,\n TAccountDestination extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountSource extends string ? WritableAccount<TAccountSource> : TAccountSource,\n TAccountBaseAccount extends string\n ? ReadonlySignerAccount<TAccountBaseAccount> & AccountSignerMeta<TAccountBaseAccount>\n : TAccountBaseAccount,\n TAccountDestination extends string ? WritableAccount<TAccountDestination> : TAccountDestination,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type TransferSolWithSeedInstructionData = {\n discriminator: number;\n amount: bigint;\n fromSeed: string;\n fromOwner: Address;\n};\n\nexport type TransferSolWithSeedInstructionDataArgs = { amount: number | bigint; fromSeed: string; fromOwner: Address };\n\nexport function getTransferSolWithSeedInstructionDataEncoder(): Encoder<TransferSolWithSeedInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['amount', getU64Encoder()],\n ['fromSeed', addEncoderSizePrefix(getUtf8Encoder(), getU64Encoder())],\n ['fromOwner', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: TRANSFER_SOL_WITH_SEED_DISCRIMINATOR }),\n );\n}\n\nexport function getTransferSolWithSeedInstructionDataDecoder(): Decoder<TransferSolWithSeedInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['amount', getU64Decoder()],\n ['fromSeed', addDecoderSizePrefix(getUtf8Decoder(), getU64Decoder())],\n ['fromOwner', getAddressDecoder()],\n ]);\n}\n\nexport function getTransferSolWithSeedInstructionDataCodec(): Codec<\n TransferSolWithSeedInstructionDataArgs,\n TransferSolWithSeedInstructionData\n> {\n return combineCodec(getTransferSolWithSeedInstructionDataEncoder(), getTransferSolWithSeedInstructionDataDecoder());\n}\n\nexport type TransferSolWithSeedInput<\n TAccountSource extends InstructionAccountInput = InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput = InstructionSignerInput,\n TAccountDestination extends InstructionAccountInput = InstructionAccountInput,\n> = {\n source: TAccountSource;\n baseAccount: TAccountBaseAccount;\n destination: TAccountDestination;\n amount: TransferSolWithSeedInstructionDataArgs['amount'];\n fromSeed: TransferSolWithSeedInstructionDataArgs['fromSeed'];\n fromOwner: TransferSolWithSeedInstructionDataArgs['fromOwner'];\n};\n\nexport function getTransferSolWithSeedInstruction<\n TAccountSource extends InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput,\n TAccountDestination extends InstructionAccountInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: TransferSolWithSeedInput<TAccountSource, TAccountBaseAccount, TAccountDestination>,\n config?: { programAddress?: TProgramAddress },\n): TransferSolWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSource, InstructionAccountInputAddress<TAccountSource>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n source: { value: input.source ?? null, isSigner: false, isWritable: true },\n baseAccount: { value: input.baseAccount ?? null, isSigner: true, isWritable: false },\n destination: { value: input.destination ?? null, isSigner: false, isWritable: true },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [\n getAccountMeta('source', accounts.source),\n getAccountMeta('baseAccount', accounts.baseAccount),\n getAccountMeta('destination', accounts.destination),\n ],\n data: getTransferSolWithSeedInstructionDataEncoder().encode(args as TransferSolWithSeedInstructionDataArgs),\n programAddress,\n } as TransferSolWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSource, InstructionAccountInputAddress<TAccountSource>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>\n >);\n}\n\nexport type ParsedTransferSolWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n source: TAccountMetas[0];\n baseAccount: TAccountMetas[1];\n destination: TAccountMetas[2];\n };\n data: TransferSolWithSeedInstructionData;\n};\n\nexport function parseTransferSolWithSeedInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedTransferSolWithSeedInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 3) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 3,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { source: getNextAccount(), baseAccount: getNextAccount(), destination: getNextAccount() },\n data: getTransferSolWithSeedInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const UPGRADE_NONCE_ACCOUNT_DISCRIMINATOR = 12;\n\nexport function getUpgradeNonceAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(UPGRADE_NONCE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type UpgradeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNonceAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNonceAccount extends string ? WritableAccount<TAccountNonceAccount> : TAccountNonceAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type UpgradeNonceAccountInstructionData = { discriminator: number };\n\nexport type UpgradeNonceAccountInstructionDataArgs = {};\n\nexport function getUpgradeNonceAccountInstructionDataEncoder(): FixedSizeEncoder<UpgradeNonceAccountInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', getU32Encoder()]]), value => ({\n ...value,\n discriminator: UPGRADE_NONCE_ACCOUNT_DISCRIMINATOR,\n }));\n}\n\nexport function getUpgradeNonceAccountInstructionDataDecoder(): FixedSizeDecoder<UpgradeNonceAccountInstructionData> {\n return getStructDecoder([['discriminator', getU32Decoder()]]);\n}\n\nexport function getUpgradeNonceAccountInstructionDataCodec(): FixedSizeCodec<\n UpgradeNonceAccountInstructionDataArgs,\n UpgradeNonceAccountInstructionData\n> {\n return combineCodec(getUpgradeNonceAccountInstructionDataEncoder(), getUpgradeNonceAccountInstructionDataDecoder());\n}\n\nexport type UpgradeNonceAccountInput<TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput> = {\n nonceAccount: TAccountNonceAccount;\n};\n\nexport function getUpgradeNonceAccountInstruction<\n TAccountNonceAccount extends InstructionAccountInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: UpgradeNonceAccountInput<TAccountNonceAccount>,\n config?: { programAddress?: TProgramAddress },\n): UpgradeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = { nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true } };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n return Object.freeze({\n accounts: [getAccountMeta('nonceAccount', accounts.nonceAccount)],\n data: getUpgradeNonceAccountInstructionDataEncoder().encode({}),\n programAddress,\n } as UpgradeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>\n >);\n}\n\nexport type ParsedUpgradeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n nonceAccount: TAccountMetas[0];\n };\n data: UpgradeNonceAccountInstructionData;\n};\n\nexport function parseUpgradeNonceAccountInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedUpgradeNonceAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 1) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 1,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { nonceAccount: getNextAccount() },\n data: getUpgradeNonceAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const WITHDRAW_NONCE_ACCOUNT_DISCRIMINATOR = 5;\n\nexport function getWithdrawNonceAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(WITHDRAW_NONCE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type WithdrawNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNonceAccount extends string | AccountMeta<string> = string,\n TAccountRecipientAccount extends string | AccountMeta<string> = string,\n TAccountRecentBlockhashesSysvar extends string | AccountMeta<string> =\n 'SysvarRecentB1ockHashes11111111111111111111',\n TAccountRentSysvar extends string | AccountMeta<string> = 'SysvarRent111111111111111111111111111111111',\n TAccountNonceAuthority extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNonceAccount extends string ? WritableAccount<TAccountNonceAccount> : TAccountNonceAccount,\n TAccountRecipientAccount extends string\n ? WritableAccount<TAccountRecipientAccount>\n : TAccountRecipientAccount,\n TAccountRecentBlockhashesSysvar extends string\n ? ReadonlyAccount<TAccountRecentBlockhashesSysvar>\n : TAccountRecentBlockhashesSysvar,\n TAccountRentSysvar extends string ? ReadonlyAccount<TAccountRentSysvar> : TAccountRentSysvar,\n TAccountNonceAuthority extends string\n ? ReadonlySignerAccount<TAccountNonceAuthority> & AccountSignerMeta<TAccountNonceAuthority>\n : TAccountNonceAuthority,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type WithdrawNonceAccountInstructionData = { discriminator: number; withdrawAmount: bigint };\n\nexport type WithdrawNonceAccountInstructionDataArgs = { withdrawAmount: number | bigint };\n\nexport function getWithdrawNonceAccountInstructionDataEncoder(): FixedSizeEncoder<WithdrawNonceAccountInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['withdrawAmount', getU64Encoder()],\n ]),\n value => ({ ...value, discriminator: WITHDRAW_NONCE_ACCOUNT_DISCRIMINATOR }),\n );\n}\n\nexport function getWithdrawNonceAccountInstructionDataDecoder(): FixedSizeDecoder<WithdrawNonceAccountInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['withdrawAmount', getU64Decoder()],\n ]);\n}\n\nexport function getWithdrawNonceAccountInstructionDataCodec(): FixedSizeCodec<\n WithdrawNonceAccountInstructionDataArgs,\n WithdrawNonceAccountInstructionData\n> {\n return combineCodec(\n getWithdrawNonceAccountInstructionDataEncoder(),\n getWithdrawNonceAccountInstructionDataDecoder(),\n );\n}\n\nexport type WithdrawNonceAccountInput<\n TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountRecipientAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput = InstructionAccountInput,\n TAccountRentSysvar extends InstructionAccountInput = InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput = InstructionSignerInput,\n> = {\n nonceAccount: TAccountNonceAccount;\n recipientAccount: TAccountRecipientAccount;\n recentBlockhashesSysvar?: TAccountRecentBlockhashesSysvar;\n rentSysvar?: TAccountRentSysvar;\n nonceAuthority: TAccountNonceAuthority;\n withdrawAmount: WithdrawNonceAccountInstructionDataArgs['withdrawAmount'];\n};\n\nexport function getWithdrawNonceAccountInstruction<\n TAccountNonceAccount extends InstructionAccountInput,\n TAccountRecipientAccount extends InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput,\n TAccountRentSysvar extends InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: WithdrawNonceAccountInput<\n TAccountNonceAccount,\n TAccountRecipientAccount,\n TAccountRecentBlockhashesSysvar,\n TAccountRentSysvar,\n TAccountNonceAuthority\n >,\n config?: { programAddress?: TProgramAddress },\n): WithdrawNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<TAccountRecipientAccount, InstructionAccountInputAddress<TAccountRecipientAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountRentSysvar, InstructionAccountInputAddress<TAccountRentSysvar>>,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n> {\n // Program address.\n const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true },\n recipientAccount: { value: input.recipientAccount ?? null, isSigner: false, isWritable: true },\n recentBlockhashesSysvar: { value: input.recentBlockhashesSysvar ?? null, isSigner: false, isWritable: false },\n rentSysvar: { value: input.rentSysvar ?? null, isSigner: false, isWritable: false },\n nonceAuthority: { value: input.nonceAuthority ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.recentBlockhashesSysvar.value) {\n accounts.recentBlockhashesSysvar.value =\n 'SysvarRecentB1ockHashes11111111111111111111' as Address<'SysvarRecentB1ockHashes11111111111111111111'>;\n }\n if (!accounts.rentSysvar.value) {\n accounts.rentSysvar.value =\n 'SysvarRent111111111111111111111111111111111' as Address<'SysvarRent111111111111111111111111111111111'>;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('nonceAccount', accounts.nonceAccount),\n getAccountMeta('recipientAccount', accounts.recipientAccount),\n getAccountMeta('recentBlockhashesSysvar', accounts.recentBlockhashesSysvar),\n getAccountMeta('rentSysvar', accounts.rentSysvar),\n getAccountMeta('nonceAuthority', accounts.nonceAuthority),\n ],\n data: getWithdrawNonceAccountInstructionDataEncoder().encode(args as WithdrawNonceAccountInstructionDataArgs),\n programAddress,\n } as WithdrawNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecipientAccount,\n InstructionAccountInputAddress<TAccountRecipientAccount>\n >,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountRentSysvar, InstructionAccountInputAddress<TAccountRentSysvar>>,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n >);\n}\n\nexport type ParsedWithdrawNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n nonceAccount: TAccountMetas[0];\n recipientAccount: TAccountMetas[1];\n recentBlockhashesSysvar: TAccountMetas[2];\n rentSysvar: TAccountMetas[3];\n nonceAuthority: TAccountMetas[4];\n };\n data: WithdrawNonceAccountInstructionData;\n};\n\nexport function parseWithdrawNonceAccountInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedWithdrawNonceAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 5) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 5,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n nonceAccount: getNextAccount(),\n recipientAccount: getNextAccount(),\n recentBlockhashesSysvar: getNextAccount(),\n rentSysvar: getNextAccount(),\n nonceAuthority: getNextAccount(),\n },\n data: getWithdrawNonceAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n assertIsInstructionWithAccounts,\n containsBytes,\n extendClient,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION,\n SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE,\n SolanaError,\n type Address,\n type ClientWithPayer,\n type ClientWithRpc,\n type ClientWithTransactionPlanning,\n type ClientWithTransactionSending,\n type ExtendedClient,\n type GetAccountInfoApi,\n type GetMultipleAccountsApi,\n type Instruction,\n type InstructionWithData,\n type ReadonlyUint8Array,\n} from '@solana/kit';\nimport {\n addSelfFetchFunctions,\n addSelfPlanAndSendFunctions,\n type SelfFetchFunctions,\n type SelfPlanAndSendFunctions,\n} from '@solana/kit/program-client-core';\nimport { getNonceCodec, type Nonce, type NonceArgs } from '../accounts';\nimport {\n getAdvanceNonceAccountInstruction,\n getAllocateInstruction,\n getAllocateWithSeedInstruction,\n getAssignInstruction,\n getAssignWithSeedInstruction,\n getAuthorizeNonceAccountInstruction,\n getCreateAccountAllowPrefundInstruction,\n getCreateAccountInstruction,\n getCreateAccountWithSeedInstruction,\n getInitializeNonceAccountInstruction,\n getTransferSolInstruction,\n getTransferSolWithSeedInstruction,\n getUpgradeNonceAccountInstruction,\n getWithdrawNonceAccountInstruction,\n parseAdvanceNonceAccountInstruction,\n parseAllocateInstruction,\n parseAllocateWithSeedInstruction,\n parseAssignInstruction,\n parseAssignWithSeedInstruction,\n parseAuthorizeNonceAccountInstruction,\n parseCreateAccountAllowPrefundInstruction,\n parseCreateAccountInstruction,\n parseCreateAccountWithSeedInstruction,\n parseInitializeNonceAccountInstruction,\n parseTransferSolInstruction,\n parseTransferSolWithSeedInstruction,\n parseUpgradeNonceAccountInstruction,\n parseWithdrawNonceAccountInstruction,\n type AdvanceNonceAccountInput,\n type AllocateInput,\n type AllocateWithSeedInput,\n type AssignInput,\n type AssignWithSeedInput,\n type AuthorizeNonceAccountInput,\n type CreateAccountAllowPrefundInput,\n type CreateAccountInput,\n type CreateAccountWithSeedInput,\n type InitializeNonceAccountInput,\n type ParsedAdvanceNonceAccountInstruction,\n type ParsedAllocateInstruction,\n type ParsedAllocateWithSeedInstruction,\n type ParsedAssignInstruction,\n type ParsedAssignWithSeedInstruction,\n type ParsedAuthorizeNonceAccountInstruction,\n type ParsedCreateAccountAllowPrefundInstruction,\n type ParsedCreateAccountInstruction,\n type ParsedCreateAccountWithSeedInstruction,\n type ParsedInitializeNonceAccountInstruction,\n type ParsedTransferSolInstruction,\n type ParsedTransferSolWithSeedInstruction,\n type ParsedUpgradeNonceAccountInstruction,\n type ParsedWithdrawNonceAccountInstruction,\n type TransferSolInput,\n type TransferSolWithSeedInput,\n type UpgradeNonceAccountInput,\n type WithdrawNonceAccountInput,\n} from '../instructions';\n\nexport const SYSTEM_PROGRAM_ADDRESS = '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n\nexport enum SystemAccount {\n Nonce,\n}\n\nexport enum SystemInstruction {\n CreateAccount,\n Assign,\n TransferSol,\n CreateAccountWithSeed,\n AdvanceNonceAccount,\n WithdrawNonceAccount,\n InitializeNonceAccount,\n AuthorizeNonceAccount,\n Allocate,\n AllocateWithSeed,\n AssignWithSeed,\n TransferSolWithSeed,\n UpgradeNonceAccount,\n CreateAccountAllowPrefund,\n}\n\nexport function identifySystemInstruction(\n instruction: { data: ReadonlyUint8Array } | ReadonlyUint8Array,\n): SystemInstruction {\n const data = 'data' in instruction ? instruction.data : instruction;\n if (containsBytes(data, getU32Encoder().encode(0), 0)) {\n return SystemInstruction.CreateAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(1), 0)) {\n return SystemInstruction.Assign;\n }\n if (containsBytes(data, getU32Encoder().encode(2), 0)) {\n return SystemInstruction.TransferSol;\n }\n if (containsBytes(data, getU32Encoder().encode(3), 0)) {\n return SystemInstruction.CreateAccountWithSeed;\n }\n if (containsBytes(data, getU32Encoder().encode(4), 0)) {\n return SystemInstruction.AdvanceNonceAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(5), 0)) {\n return SystemInstruction.WithdrawNonceAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(6), 0)) {\n return SystemInstruction.InitializeNonceAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(7), 0)) {\n return SystemInstruction.AuthorizeNonceAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(8), 0)) {\n return SystemInstruction.Allocate;\n }\n if (containsBytes(data, getU32Encoder().encode(9), 0)) {\n return SystemInstruction.AllocateWithSeed;\n }\n if (containsBytes(data, getU32Encoder().encode(10), 0)) {\n return SystemInstruction.AssignWithSeed;\n }\n if (containsBytes(data, getU32Encoder().encode(11), 0)) {\n return SystemInstruction.TransferSolWithSeed;\n }\n if (containsBytes(data, getU32Encoder().encode(12), 0)) {\n return SystemInstruction.UpgradeNonceAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(13), 0)) {\n return SystemInstruction.CreateAccountAllowPrefund;\n }\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION, {\n instructionData: data,\n programName: 'system',\n });\n}\n\nexport type ParsedSystemInstruction<TProgram extends string = '11111111111111111111111111111111'> =\n | ({ instructionType: SystemInstruction.CreateAccount } & ParsedCreateAccountInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.Assign } & ParsedAssignInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.TransferSol } & ParsedTransferSolInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.CreateAccountWithSeed } & ParsedCreateAccountWithSeedInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.AdvanceNonceAccount } & ParsedAdvanceNonceAccountInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.WithdrawNonceAccount } & ParsedWithdrawNonceAccountInstruction<TProgram>)\n | ({\n instructionType: SystemInstruction.InitializeNonceAccount;\n } & ParsedInitializeNonceAccountInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.AuthorizeNonceAccount } & ParsedAuthorizeNonceAccountInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.Allocate } & ParsedAllocateInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.AllocateWithSeed } & ParsedAllocateWithSeedInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.AssignWithSeed } & ParsedAssignWithSeedInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.TransferSolWithSeed } & ParsedTransferSolWithSeedInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.UpgradeNonceAccount } & ParsedUpgradeNonceAccountInstruction<TProgram>)\n | ({\n instructionType: SystemInstruction.CreateAccountAllowPrefund;\n } & ParsedCreateAccountAllowPrefundInstruction<TProgram>);\n\nexport function parseSystemInstruction<TProgram extends string>(\n instruction: Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array>,\n): ParsedSystemInstruction<TProgram> {\n const instructionType = identifySystemInstruction(instruction);\n switch (instructionType) {\n case SystemInstruction.CreateAccount: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: SystemInstruction.CreateAccount, ...parseCreateAccountInstruction(instruction) };\n }\n case SystemInstruction.Assign: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: SystemInstruction.Assign, ...parseAssignInstruction(instruction) };\n }\n case SystemInstruction.TransferSol: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: SystemInstruction.TransferSol, ...parseTransferSolInstruction(instruction) };\n }\n case SystemInstruction.CreateAccountWithSeed: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.CreateAccountWithSeed,\n ...parseCreateAccountWithSeedInstruction(instruction),\n };\n }\n case SystemInstruction.AdvanceNonceAccount: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.AdvanceNonceAccount,\n ...parseAdvanceNonceAccountInstruction(instruction),\n };\n }\n case SystemInstruction.WithdrawNonceAccount: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.WithdrawNonceAccount,\n ...parseWithdrawNonceAccountInstruction(instruction),\n };\n }\n case SystemInstruction.InitializeNonceAccount: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.InitializeNonceAccount,\n ...parseInitializeNonceAccountInstruction(instruction),\n };\n }\n case SystemInstruction.AuthorizeNonceAccount: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.AuthorizeNonceAccount,\n ...parseAuthorizeNonceAccountInstruction(instruction),\n };\n }\n case SystemInstruction.Allocate: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: SystemInstruction.Allocate, ...parseAllocateInstruction(instruction) };\n }\n case SystemInstruction.AllocateWithSeed: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.AllocateWithSeed,\n ...parseAllocateWithSeedInstruction(instruction),\n };\n }\n case SystemInstruction.AssignWithSeed: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.AssignWithSeed,\n ...parseAssignWithSeedInstruction(instruction),\n };\n }\n case SystemInstruction.TransferSolWithSeed: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.TransferSolWithSeed,\n ...parseTransferSolWithSeedInstruction(instruction),\n };\n }\n case SystemInstruction.UpgradeNonceAccount: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.UpgradeNonceAccount,\n ...parseUpgradeNonceAccountInstruction(instruction),\n };\n }\n case SystemInstruction.CreateAccountAllowPrefund: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.CreateAccountAllowPrefund,\n ...parseCreateAccountAllowPrefundInstruction(instruction),\n };\n }\n default:\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE, {\n instructionType: instructionType as string,\n programName: 'system',\n });\n }\n}\n\nexport type SystemPlugin = {\n accounts: SystemPluginAccounts;\n instructions: SystemPluginInstructions;\n identifyInstruction: typeof identifySystemInstruction;\n parseInstruction: typeof parseSystemInstruction;\n};\n\nexport type SystemPluginAccounts = { nonce: ReturnType<typeof getNonceCodec> & SelfFetchFunctions<NonceArgs, Nonce> };\n\nexport type SystemPluginInstructions = {\n createAccount: (\n input: MakeOptional<CreateAccountInput, 'payer'>,\n ) => ReturnType<typeof getCreateAccountInstruction> & SelfPlanAndSendFunctions;\n assign: (input: AssignInput) => ReturnType<typeof getAssignInstruction> & SelfPlanAndSendFunctions;\n transferSol: (input: TransferSolInput) => ReturnType<typeof getTransferSolInstruction> & SelfPlanAndSendFunctions;\n createAccountWithSeed: (\n input: MakeOptional<CreateAccountWithSeedInput, 'payer'>,\n ) => ReturnType<typeof getCreateAccountWithSeedInstruction> & SelfPlanAndSendFunctions;\n advanceNonceAccount: (\n input: AdvanceNonceAccountInput,\n ) => ReturnType<typeof getAdvanceNonceAccountInstruction> & SelfPlanAndSendFunctions;\n withdrawNonceAccount: (\n input: WithdrawNonceAccountInput,\n ) => ReturnType<typeof getWithdrawNonceAccountInstruction> & SelfPlanAndSendFunctions;\n initializeNonceAccount: (\n input: InitializeNonceAccountInput,\n ) => ReturnType<typeof getInitializeNonceAccountInstruction> & SelfPlanAndSendFunctions;\n authorizeNonceAccount: (\n input: AuthorizeNonceAccountInput,\n ) => ReturnType<typeof getAuthorizeNonceAccountInstruction> & SelfPlanAndSendFunctions;\n allocate: (input: AllocateInput) => ReturnType<typeof getAllocateInstruction> & SelfPlanAndSendFunctions;\n allocateWithSeed: (\n input: AllocateWithSeedInput,\n ) => ReturnType<typeof getAllocateWithSeedInstruction> & SelfPlanAndSendFunctions;\n assignWithSeed: (\n input: AssignWithSeedInput,\n ) => ReturnType<typeof getAssignWithSeedInstruction> & SelfPlanAndSendFunctions;\n transferSolWithSeed: (\n input: TransferSolWithSeedInput,\n ) => ReturnType<typeof getTransferSolWithSeedInstruction> & SelfPlanAndSendFunctions;\n upgradeNonceAccount: (\n input: UpgradeNonceAccountInput,\n ) => ReturnType<typeof getUpgradeNonceAccountInstruction> & SelfPlanAndSendFunctions;\n createAccountAllowPrefund: (\n input: CreateAccountAllowPrefundInput,\n ) => ReturnType<typeof getCreateAccountAllowPrefundInstruction> & SelfPlanAndSendFunctions;\n};\n\nexport type SystemPluginRequirements = ClientWithRpc<GetAccountInfoApi & GetMultipleAccountsApi> &\n ClientWithPayer &\n ClientWithTransactionPlanning &\n ClientWithTransactionSending;\n\nexport function systemProgram() {\n return <T extends SystemPluginRequirements>(client: T): ExtendedClient<T, { system: SystemPlugin }> => {\n return extendClient(client, {\n system: <SystemPlugin>{\n accounts: { nonce: addSelfFetchFunctions(client, getNonceCodec()) },\n instructions: {\n createAccount: input =>\n addSelfPlanAndSendFunctions(\n client,\n getCreateAccountInstruction({ ...input, payer: input.payer ?? client.payer }),\n ),\n assign: input => addSelfPlanAndSendFunctions(client, getAssignInstruction(input)),\n transferSol: input => addSelfPlanAndSendFunctions(client, getTransferSolInstruction(input)),\n createAccountWithSeed: input =>\n addSelfPlanAndSendFunctions(\n client,\n getCreateAccountWithSeedInstruction({ ...input, payer: input.payer ?? client.payer }),\n ),\n advanceNonceAccount: input =>\n addSelfPlanAndSendFunctions(client, getAdvanceNonceAccountInstruction(input)),\n withdrawNonceAccount: input =>\n addSelfPlanAndSendFunctions(client, getWithdrawNonceAccountInstruction(input)),\n initializeNonceAccount: input =>\n addSelfPlanAndSendFunctions(client, getInitializeNonceAccountInstruction(input)),\n authorizeNonceAccount: input =>\n addSelfPlanAndSendFunctions(client, getAuthorizeNonceAccountInstruction(input)),\n allocate: input => addSelfPlanAndSendFunctions(client, getAllocateInstruction(input)),\n allocateWithSeed: input =>\n addSelfPlanAndSendFunctions(client, getAllocateWithSeedInstruction(input)),\n assignWithSeed: input => addSelfPlanAndSendFunctions(client, getAssignWithSeedInstruction(input)),\n transferSolWithSeed: input =>\n addSelfPlanAndSendFunctions(client, getTransferSolWithSeedInstruction(input)),\n upgradeNonceAccount: input =>\n addSelfPlanAndSendFunctions(client, getUpgradeNonceAccountInstruction(input)),\n createAccountAllowPrefund: input =>\n addSelfPlanAndSendFunctions(client, getCreateAccountAllowPrefundInstruction(input)),\n },\n identifyInstruction: identifySystemInstruction,\n parseInstruction: parseSystemInstruction,\n },\n });\n };\n}\n\ntype MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n isProgramError,\n type Address,\n type SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM,\n type SolanaError,\n} from '@solana/kit';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\n/** AccountAlreadyInUse: an account with the same address already exists */\nexport const SYSTEM_ERROR__ACCOUNT_ALREADY_IN_USE = 0x0; // 0\n/** ResultWithNegativeLamports: account does not have enough SOL to perform the operation */\nexport const SYSTEM_ERROR__RESULT_WITH_NEGATIVE_LAMPORTS = 0x1; // 1\n/** InvalidProgramId: cannot assign account to this program id */\nexport const SYSTEM_ERROR__INVALID_PROGRAM_ID = 0x2; // 2\n/** InvalidAccountDataLength: cannot allocate account data of this length */\nexport const SYSTEM_ERROR__INVALID_ACCOUNT_DATA_LENGTH = 0x3; // 3\n/** MaxSeedLengthExceeded: length of requested seed is too long */\nexport const SYSTEM_ERROR__MAX_SEED_LENGTH_EXCEEDED = 0x4; // 4\n/** AddressWithSeedMismatch: provided address does not match addressed derived from seed */\nexport const SYSTEM_ERROR__ADDRESS_WITH_SEED_MISMATCH = 0x5; // 5\n/** NonceNoRecentBlockhashes: advancing stored nonce requires a populated RecentBlockhashes sysvar */\nexport const SYSTEM_ERROR__NONCE_NO_RECENT_BLOCKHASHES = 0x6; // 6\n/** NonceBlockhashNotExpired: stored nonce is still in recent_blockhashes */\nexport const SYSTEM_ERROR__NONCE_BLOCKHASH_NOT_EXPIRED = 0x7; // 7\n/** NonceUnexpectedBlockhashValue: specified nonce does not match stored nonce */\nexport const SYSTEM_ERROR__NONCE_UNEXPECTED_BLOCKHASH_VALUE = 0x8; // 8\n\nexport type SystemError =\n | typeof SYSTEM_ERROR__ACCOUNT_ALREADY_IN_USE\n | typeof SYSTEM_ERROR__ADDRESS_WITH_SEED_MISMATCH\n | typeof SYSTEM_ERROR__INVALID_ACCOUNT_DATA_LENGTH\n | typeof SYSTEM_ERROR__INVALID_PROGRAM_ID\n | typeof SYSTEM_ERROR__MAX_SEED_LENGTH_EXCEEDED\n | typeof SYSTEM_ERROR__NONCE_BLOCKHASH_NOT_EXPIRED\n | typeof SYSTEM_ERROR__NONCE_NO_RECENT_BLOCKHASHES\n | typeof SYSTEM_ERROR__NONCE_UNEXPECTED_BLOCKHASH_VALUE\n | typeof SYSTEM_ERROR__RESULT_WITH_NEGATIVE_LAMPORTS;\n\nlet systemErrorMessages: Record<SystemError, string> | undefined;\nif (process.env['NODE_ENV'] !== 'production') {\n systemErrorMessages = {\n [SYSTEM_ERROR__ACCOUNT_ALREADY_IN_USE]: `an account with the same address already exists`,\n [SYSTEM_ERROR__ADDRESS_WITH_SEED_MISMATCH]: `provided address does not match addressed derived from seed`,\n [SYSTEM_ERROR__INVALID_ACCOUNT_DATA_LENGTH]: `cannot allocate account data of this length`,\n [SYSTEM_ERROR__INVALID_PROGRAM_ID]: `cannot assign account to this program id`,\n [SYSTEM_ERROR__MAX_SEED_LENGTH_EXCEEDED]: `length of requested seed is too long`,\n [SYSTEM_ERROR__NONCE_BLOCKHASH_NOT_EXPIRED]: `stored nonce is still in recent_blockhashes`,\n [SYSTEM_ERROR__NONCE_NO_RECENT_BLOCKHASHES]: `advancing stored nonce requires a populated RecentBlockhashes sysvar`,\n [SYSTEM_ERROR__NONCE_UNEXPECTED_BLOCKHASH_VALUE]: `specified nonce does not match stored nonce`,\n [SYSTEM_ERROR__RESULT_WITH_NEGATIVE_LAMPORTS]: `account does not have enough SOL to perform the operation`,\n };\n}\n\nexport function getSystemErrorMessage(code: SystemError): string {\n if (process.env['NODE_ENV'] !== 'production') {\n return (systemErrorMessages as Record<SystemError, string>)[code];\n }\n\n return 'Error message not available in production bundles.';\n}\n\nexport function isSystemError<TProgramErrorCode extends SystemError>(\n error: unknown,\n transactionMessage: { instructions: Record<number, { programAddress: Address }> },\n code?: TProgramErrorCode,\n): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> &\n Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> {\n return isProgramError<TProgramErrorCode>(error, transactionMessage, SYSTEM_PROGRAM_ADDRESS, code);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/generated/types/nonceState.ts","../../src/generated/types/nonceVersion.ts","../../src/generated/accounts/nonce.ts","../../src/generated/instructions/advanceNonceAccount.ts","../../src/generated/instructions/allocate.ts","../../src/generated/instructions/allocateWithSeed.ts","../../src/generated/instructions/assign.ts","../../src/generated/instructions/assignWithSeed.ts","../../src/generated/instructions/authorizeNonceAccount.ts","../../src/generated/instructions/createAccount.ts","../../src/generated/instructions/createAccountAllowPrefund.ts","../../src/generated/instructions/createAccountWithSeed.ts","../../src/generated/instructions/initializeNonceAccount.ts","../../src/generated/instructions/transferSol.ts","../../src/generated/instructions/transferSolWithSeed.ts","../../src/generated/instructions/upgradeNonceAccount.ts","../../src/generated/instructions/withdrawNonceAccount.ts","../../src/generated/programs/system.ts","../../src/generated/errors/system.ts"],"names":["NonceState","NonceVersion","getEnumEncoder","getU32Encoder","getEnumDecoder","getU32Decoder","combineCodec","getStructEncoder","getStructDecoder","transformEncoder","getU64Encoder","getU64Decoder","getAccountMetaFactory","SolanaError","SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS","getAddressEncoder","getAddressDecoder","addEncoderSizePrefix","getUtf8Encoder","addDecoderSizePrefix","getUtf8Decoder","BASE_ACCOUNT_SIZE","SystemAccount","SystemInstruction"],"mappings":";;;;AAmBO,IAAK,UAAA,qBAAAA,WAAAA,KAAL;AACH,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAA;AAFQ,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AAOL,SAAS,oBAAA,GAAyD;AACrE,EAAA,OAAO,eAAe,UAAA,EAAY,EAAE,IAAA,EAAM,aAAA,IAAiB,CAAA;AAC/D;AAEO,SAAS,oBAAA,GAAqD;AACjE,EAAA,OAAO,eAAe,UAAA,EAAY,EAAE,IAAA,EAAM,aAAA,IAAiB,CAAA;AAC/D;AAEO,SAAS,kBAAA,GAAiE;AAC7E,EAAA,OAAO,YAAA,CAAa,oBAAA,EAAqB,EAAG,oBAAA,EAAsB,CAAA;AACtE;ACjBO,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACH,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAA;AAFQ,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AAOL,SAAS,sBAAA,GAA6D;AACzE,EAAA,OAAOC,eAAe,YAAA,EAAc,EAAE,IAAA,EAAMC,aAAAA,IAAiB,CAAA;AACjE;AAEO,SAAS,sBAAA,GAAyD;AACrE,EAAA,OAAOC,eAAe,YAAA,EAAc,EAAE,IAAA,EAAMC,aAAAA,IAAiB,CAAA;AACjE;AAEO,SAAS,oBAAA,GAAuE;AACnF,EAAA,OAAOC,YAAAA,CAAa,sBAAA,EAAuB,EAAG,sBAAA,EAAwB,CAAA;AAC1E;;;ACyBO,SAAS,eAAA,GAA+C;AAC3D,EAAA,OAAO,gBAAA,CAAiB;AAAA,IACpB,CAAC,SAAA,EAAW,sBAAA,EAAwB,CAAA;AAAA,IACpC,CAAC,OAAA,EAAS,oBAAA,EAAsB,CAAA;AAAA,IAChC,CAAC,WAAA,EAAa,iBAAA,EAAmB,CAAA;AAAA,IACjC,CAAC,WAAA,EAAa,iBAAA,EAAmB,CAAA;AAAA,IACjC,CAAC,sBAAA,EAAwB,aAAA,EAAe;AAAA,GAC3C,CAAA;AACL;AAGO,SAAS,eAAA,GAA2C;AACvD,EAAA,OAAO,gBAAA,CAAiB;AAAA,IACpB,CAAC,SAAA,EAAW,sBAAA,EAAwB,CAAA;AAAA,IACpC,CAAC,OAAA,EAAS,oBAAA,EAAsB,CAAA;AAAA,IAChC,CAAC,WAAA,EAAa,iBAAA,EAAmB,CAAA;AAAA,IACjC,CAAC,WAAA,EAAa,iBAAA,EAAmB,CAAA;AAAA,IACjC,CAAC,sBAAA,EAAwB,aAAA,EAAe;AAAA,GAC3C,CAAA;AACL;AAGO,SAAS,aAAA,GAAkD;AAC9D,EAAA,OAAOA,YAAAA,CAAa,eAAA,EAAgB,EAAG,eAAA,EAAiB,CAAA;AAC5D;AAQO,SAAS,YACZ,cAAA,EACwD;AACxD,EAAA,OAAO,aAAA,CAAc,cAAA,EAAiD,eAAA,EAAiB,CAAA;AAC3F;AAEA,eAAsB,UAAA,CAClB,GAAA,EACA,OAAA,EACA,MAAA,EACiC;AACjC,EAAA,MAAM,YAAA,GAAe,MAAM,eAAA,CAAgB,GAAA,EAAK,SAAS,MAAM,CAAA;AAC/D,EAAA,mBAAA,CAAoB,YAAY,CAAA;AAChC,EAAA,OAAO,YAAA;AACX;AAEA,eAAsB,eAAA,CAClB,GAAA,EACA,OAAA,EACA,MAAA,EACsC;AACtC,EAAA,MAAM,eAAe,MAAM,mBAAA;AAAA,IACvB,GAAA;AAAA,IACA,OAAO,OAAA,KAAY,QAAA,GAAW,OAAA,GAAU,OAAA,CAAQ,OAAA;AAAA,IAChD;AAAA,GACJ;AACA,EAAA,OAAO,YAAY,YAAY,CAAA;AACnC;AAEA,eAAsB,aAAA,CAClB,GAAA,EACA,SAAA,EACA,MAAA,EACyB;AACzB,EAAA,MAAM,aAAA,GAAgB,MAAM,kBAAA,CAAmB,GAAA,EAAK,WAAW,MAAM,CAAA;AACrE,EAAA,mBAAA,CAAoB,aAAa,CAAA;AACjC,EAAA,OAAO,aAAA;AACX;AAEA,eAAsB,kBAAA,CAClB,GAAA,EACA,SAAA,EACA,MAAA,EAC8B;AAC9B,EAAA,MAAM,gBAAgB,MAAM,oBAAA;AAAA,IACxB,GAAA;AAAA,IACA,SAAA,CAAU,IAAI,CAAA,CAAA,KAAM,OAAO,MAAM,QAAA,GAAW,CAAA,GAAI,EAAE,OAAQ,CAAA;AAAA,IAC1D;AAAA,GACJ;AACA,EAAA,OAAO,aAAA,CAAc,GAAA,CAAI,CAAA,YAAA,KAAgB,WAAA,CAAY,YAAY,CAAC,CAAA;AACtE;AAEO,SAAS,YAAA,GAAuB;AACnC,EAAA,OAAO,EAAA;AACX;AC1GO,IAAM,mCAAA,GAAsC;AAE5C,SAAS,wCAAA,GAA+D;AAC3E,EAAA,OAAOH,aAAAA,EAAc,CAAE,MAAA,CAAO,mCAAmC,CAAA;AACrE;AA4BO,SAAS,4CAAA,GAAyG;AACrH,EAAA,OAAO,gBAAA,CAAiBI,gBAAAA,CAAiB,CAAC,CAAC,eAAA,EAAiBJ,eAAe,CAAC,CAAC,CAAA,EAAG,CAAA,KAAA,MAAU;AAAA,IACtF,GAAG,KAAA;AAAA,IACH,aAAA,EAAe;AAAA,GACnB,CAAE,CAAA;AACN;AAEO,SAAS,4CAAA,GAAqG;AACjH,EAAA,OAAOK,iBAAiB,CAAC,CAAC,iBAAiBH,aAAAA,EAAe,CAAC,CAAC,CAAA;AAChE;AAEO,SAAS,0CAAA,GAGd;AACE,EAAA,OAAOC,YAAAA,CAAa,4CAAA,EAA6C,EAAG,4CAAA,EAA8C,CAAA;AACtH;AAYO,SAAS,iCAAA,CAMZ,OACA,MAAA,EASF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiB,qBAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,YAAA,EAAc,EAAE,KAAA,EAAO,KAAA,CAAM,gBAAgB,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAK;AAAA,IACrF,uBAAA,EAAyB,EAAE,KAAA,EAAO,KAAA,CAAM,2BAA2B,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,KAAA,EAAM;AAAA,IAC5G,cAAA,EAAgB,EAAE,KAAA,EAAO,KAAA,CAAM,kBAAkB,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,KAAA;AAAM,GAC7F;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,IAAI,CAAC,QAAA,CAAS,uBAAA,CAAwB,KAAA,EAAO;AACzC,IAAA,QAAA,CAAS,wBAAwB,KAAA,GAC7B,6CAAA;AAAA,EACR;AAEA,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU;AAAA,MACN,cAAA,CAAe,cAAA,EAAgB,QAAA,CAAS,YAAY,CAAA;AAAA,MACpD,cAAA,CAAe,yBAAA,EAA2B,QAAA,CAAS,uBAAuB,CAAA;AAAA,MAC1E,cAAA,CAAe,gBAAA,EAAkB,QAAA,CAAS,cAAc;AAAA,KAC5D;AAAA,IACA,IAAA,EAAM,4CAAA,EAA6C,CAAE,MAAA,CAAO,EAAE,CAAA;AAAA,IAC9D;AAAA,GASH,CAAA;AACL;AAeO,SAAS,oCAIZ,WAAA,EAG6D;AAC7D,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAI,YAAY,yDAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,QAAA,EAAU;AAAA,MACN,cAAc,cAAA,EAAe;AAAA,MAC7B,yBAAyB,cAAA,EAAe;AAAA,MACxC,gBAAgB,cAAA;AAAe,KACnC;AAAA,IACA,IAAA,EAAM,4CAAA,EAA6C,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GAChF;AACJ;AChKO,IAAM,sBAAA,GAAyB;AAE/B,SAAS,6BAAA,GAAoD;AAChE,EAAA,OAAOH,aAAAA,EAAc,CAAE,MAAA,CAAO,sBAAsB,CAAA;AACxD;AAqBO,SAAS,iCAAA,GAAmF;AAC/F,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,OAAA,EAASO,aAAAA,EAAe;AAAA,KAC5B,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,sBAAA,EAAuB;AAAA,GAChE;AACJ;AAEO,SAAS,iCAAA,GAA+E;AAC3F,EAAA,OAAOF,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,OAAA,EAASM,aAAAA,EAAe;AAAA,GAC5B,CAAA;AACL;AAEO,SAAS,+BAAA,GAGd;AACE,EAAA,OAAOL,YAAAA,CAAa,iCAAA,EAAkC,EAAG,iCAAA,EAAmC,CAAA;AAChG;AAOO,SAAS,sBAAA,CAIZ,OACA,MAAA,EAIF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB,EAAE,UAAA,EAAY,EAAE,KAAA,EAAO,KAAA,CAAM,UAAA,IAAc,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,IAAA,EAAK,EAAE;AAC7G,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAExB,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,UAAU,CAAC,cAAA,CAAe,YAAA,EAAc,QAAA,CAAS,UAAU,CAAC,CAAA;AAAA,IAC5D,IAAA,EAAM,iCAAA,EAAkC,CAAE,MAAA,CAAO,IAAmC,CAAA;AAAA,IACpF;AAAA,GAIH,CAAA;AACL;AAaO,SAAS,yBACZ,WAAA,EAGkD;AAClD,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,QAAA,EAAU,EAAE,UAAA,EAAY,cAAA,EAAe,EAAE;AAAA,IACzC,IAAA,EAAM,iCAAA,EAAkC,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GACrE;AACJ;AChHO,IAAM,gCAAA,GAAmC;AAEzC,SAAS,qCAAA,GAA4D;AACxE,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,gCAAgC,CAAA;AAClE;AAkCO,SAAS,yCAAA,GAA0F;AACtG,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,MAAA,EAAQY,iBAAAA,EAAmB,CAAA;AAAA,MAC5B,CAAC,MAAA,EAAQ,oBAAA,CAAqB,gBAAe,EAAGL,aAAAA,EAAe,CAAC,CAAA;AAAA,MAChE,CAAC,OAAA,EAASA,aAAAA,EAAe,CAAA;AAAA,MACzB,CAAC,gBAAA,EAAkBK,iBAAAA,EAAmB;AAAA,KACzC,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,gCAAA,EAAiC;AAAA,GAC1E;AACJ;AAEO,SAAS,yCAAA,GAAsF;AAClG,EAAA,OAAOP,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,MAAA,EAAQW,iBAAAA,EAAmB,CAAA;AAAA,IAC5B,CAAC,MAAA,EAAQ,oBAAA,CAAqB,gBAAe,EAAGL,aAAAA,EAAe,CAAC,CAAA;AAAA,IAChE,CAAC,OAAA,EAASA,aAAAA,EAAe,CAAA;AAAA,IACzB,CAAC,gBAAA,EAAkBK,iBAAAA,EAAmB;AAAA,GACzC,CAAA;AACL;AAEO,SAAS,uCAAA,GAGd;AACE,EAAA,OAAOV,YAAAA,CAAa,yCAAA,EAA0C,EAAG,yCAAA,EAA2C,CAAA;AAChH;AAcO,SAAS,8BAAA,CAKZ,OACA,MAAA,EAKF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,UAAA,EAAY,EAAE,KAAA,EAAO,KAAA,CAAM,cAAc,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAK;AAAA,IACjF,WAAA,EAAa,EAAE,KAAA,EAAO,KAAA,CAAM,eAAe,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,KAAA;AAAM,GACvF;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAExB,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU;AAAA,MACN,cAAA,CAAe,YAAA,EAAc,QAAA,CAAS,UAAU,CAAA;AAAA,MAChD,cAAA,CAAe,aAAA,EAAe,QAAA,CAAS,WAAW;AAAA,KACtD;AAAA,IACA,IAAA,EAAM,yCAAA,EAA0C,CAAE,MAAA,CAAO,IAA2C,CAAA;AAAA,IACpG;AAAA,GAKH,CAAA;AACL;AAcO,SAAS,iCACZ,WAAA,EAG0D;AAC1D,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,UAAU,EAAE,UAAA,EAAY,gBAAe,EAAG,WAAA,EAAa,gBAAe,EAAE;AAAA,IACxE,IAAA,EAAM,yCAAA,EAA0C,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GAC7E;AACJ;ACrKO,IAAM,oBAAA,GAAuB;AAE7B,SAAS,2BAAA,GAAkD;AAC9D,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,oBAAoB,CAAA;AACtD;AAqBO,SAAS,+BAAA,GAA+E;AAC3F,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,gBAAA,EAAkBY,iBAAAA,EAAmB;AAAA,KACzC,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,GAC9D;AACJ;AAEO,SAAS,+BAAA,GAA2E;AACvF,EAAA,OAAOP,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,gBAAA,EAAkBW,iBAAAA,EAAmB;AAAA,GACzC,CAAA;AACL;AAEO,SAAS,6BAAA,GAAkG;AAC9G,EAAA,OAAOV,YAAAA,CAAa,+BAAA,EAAgC,EAAG,+BAAA,EAAiC,CAAA;AAC5F;AAOO,SAAS,oBAAA,CAIZ,OACA,MAAA,EAIF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB,EAAE,OAAA,EAAS,EAAE,KAAA,EAAO,KAAA,CAAM,OAAA,IAAW,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,IAAA,EAAK,EAAE;AACvG,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAExB,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,UAAU,CAAC,cAAA,CAAe,SAAA,EAAW,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,IACtD,IAAA,EAAM,+BAAA,EAAgC,CAAE,MAAA,CAAO,IAAiC,CAAA;AAAA,IAChF;AAAA,GAIH,CAAA;AACL;AAaO,SAAS,uBACZ,WAAA,EAGgD;AAChD,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,QAAA,EAAU,EAAE,OAAA,EAAS,cAAA,EAAe,EAAE;AAAA,IACtC,IAAA,EAAM,+BAAA,EAAgC,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GACnE;AACJ;AC9GO,IAAM,8BAAA,GAAiC;AAEvC,SAAS,mCAAA,GAA0D;AACtE,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,8BAA8B,CAAA;AAChE;AAgCO,SAAS,uCAAA,GAAsF;AAClG,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,MAAA,EAAQY,iBAAAA,EAAmB,CAAA;AAAA,MAC5B,CAAC,MAAA,EAAQE,oBAAAA,CAAqBC,gBAAe,EAAGR,aAAAA,EAAe,CAAC,CAAA;AAAA,MAChE,CAAC,gBAAA,EAAkBK,iBAAAA,EAAmB;AAAA,KACzC,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,8BAAA,EAA+B;AAAA,GACxE;AACJ;AAEO,SAAS,uCAAA,GAAkF;AAC9F,EAAA,OAAOP,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,MAAA,EAAQW,iBAAAA,EAAmB,CAAA;AAAA,IAC5B,CAAC,MAAA,EAAQG,oBAAAA,CAAqBC,gBAAe,EAAGT,aAAAA,EAAe,CAAC,CAAA;AAAA,IAChE,CAAC,gBAAA,EAAkBK,iBAAAA,EAAmB;AAAA,GACzC,CAAA;AACL;AAEO,SAAS,qCAAA,GAGd;AACE,EAAA,OAAOV,YAAAA,CAAa,uCAAA,EAAwC,EAAG,uCAAA,EAAyC,CAAA;AAC5G;AAaO,SAAS,4BAAA,CAKZ,OACA,MAAA,EAKF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,OAAA,EAAS,EAAE,KAAA,EAAO,KAAA,CAAM,WAAW,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAK;AAAA,IAC3E,WAAA,EAAa,EAAE,KAAA,EAAO,KAAA,CAAM,eAAe,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,KAAA;AAAM,GACvF;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAExB,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU,CAAC,cAAA,CAAe,SAAA,EAAW,QAAA,CAAS,OAAO,CAAA,EAAG,cAAA,CAAe,aAAA,EAAe,QAAA,CAAS,WAAW,CAAC,CAAA;AAAA,IAC3G,IAAA,EAAM,uCAAA,EAAwC,CAAE,MAAA,CAAO,IAAyC,CAAA;AAAA,IAChG;AAAA,GAKH,CAAA;AACL;AAcO,SAAS,+BACZ,WAAA,EAGwD;AACxD,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,UAAU,EAAE,OAAA,EAAS,gBAAe,EAAG,WAAA,EAAa,gBAAe,EAAE;AAAA,IACrE,IAAA,EAAM,uCAAA,EAAwC,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GAC3E;AACJ;AC3JO,IAAM,qCAAA,GAAwC;AAE9C,SAAS,0CAAA,GAAiE;AAC7E,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,qCAAqC,CAAA;AACvE;AAuBO,SAAS,8CAAA,GAA6G;AACzH,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,mBAAA,EAAqBY,iBAAAA,EAAmB;AAAA,KAC5C,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,qCAAA,EAAsC;AAAA,GAC/E;AACJ;AAEO,SAAS,8CAAA,GAAyG;AACrH,EAAA,OAAOP,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,mBAAA,EAAqBW,iBAAAA,EAAmB;AAAA,GAC5C,CAAA;AACL;AAEO,SAAS,4CAAA,GAGd;AACE,EAAA,OAAOV,YAAAA;AAAA,IACH,8CAAA,EAA+C;AAAA,IAC/C,8CAAA;AAA+C,GACnD;AACJ;AAWO,SAAS,mCAAA,CAKZ,OACA,MAAA,EAKF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,YAAA,EAAc,EAAE,KAAA,EAAO,KAAA,CAAM,gBAAgB,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAK;AAAA,IACrF,cAAA,EAAgB,EAAE,KAAA,EAAO,KAAA,CAAM,kBAAkB,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,KAAA;AAAM,GAC7F;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAExB,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU;AAAA,MACN,cAAA,CAAe,cAAA,EAAgB,QAAA,CAAS,YAAY,CAAA;AAAA,MACpD,cAAA,CAAe,gBAAA,EAAkB,QAAA,CAAS,cAAc;AAAA,KAC5D;AAAA,IACA,IAAA,EAAM,8CAAA,EAA+C,CAAE,MAAA,CAAO,IAAgD,CAAA;AAAA,IAC9G;AAAA,GAKH,CAAA;AACL;AAcO,SAAS,sCAIZ,WAAA,EAG+D;AAC/D,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,UAAU,EAAE,YAAA,EAAc,gBAAe,EAAG,cAAA,EAAgB,gBAAe,EAAE;AAAA,IAC7E,IAAA,EAAM,8CAAA,EAA+C,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GAClF;AACJ;AC7IO,IAAM,4BAAA,GAA+B;AAErC,SAAS,kCAAA,GAAyD;AACrE,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,4BAA4B,CAAA;AAC9D;AAkCO,SAAS,sCAAA,GAA6F;AACzG,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,UAAA,EAAYO,aAAAA,EAAe,CAAA;AAAA,MAC5B,CAAC,OAAA,EAASA,aAAAA,EAAe,CAAA;AAAA,MACzB,CAAC,gBAAA,EAAkBK,iBAAAA,EAAmB;AAAA,KACzC,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,4BAAA,EAA6B;AAAA,GACtE;AACJ;AAEO,SAAS,sCAAA,GAAyF;AACrG,EAAA,OAAOP,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,UAAA,EAAYM,aAAAA,EAAe,CAAA;AAAA,IAC5B,CAAC,OAAA,EAASA,aAAAA,EAAe,CAAA;AAAA,IACzB,CAAC,gBAAA,EAAkBK,iBAAAA,EAAmB;AAAA,GACzC,CAAA;AACL;AAEO,SAAS,oCAAA,GAGd;AACE,EAAA,OAAOV,YAAAA,CAAa,sCAAA,EAAuC,EAAG,sCAAA,EAAwC,CAAA;AAC1G;AAaO,SAAS,2BAAA,CAKZ,OACA,MAAA,EAMyB;AAEzB,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,CAAM,SAAS,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,IAAA,EAAK;AAAA,IACtE,UAAA,EAAY,EAAE,KAAA,EAAO,KAAA,CAAM,cAAc,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,IAAA;AAAK,GACpF;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAGxB,EAAA,MAAM,SAAA,GAAoB,CAAC,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,GAAI,iBAAiB,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,GAAG,CAAC,CAAA;AAE5F,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU,CAAC,cAAA,CAAe,OAAA,EAAS,QAAA,CAAS,KAAK,CAAA,EAAG,cAAA,CAAe,YAAA,EAAc,QAAA,CAAS,UAAU,CAAC,CAAA;AAAA,IACrG,SAAA;AAAA,IACA,IAAA,EAAM,sCAAA,EAAuC,CAAE,MAAA,CAAO,IAAwC,CAAA;AAAA,IAC9F;AAAA,GAMwB,CAAA;AAChC;AAcO,SAAS,8BACZ,WAAA,EAGuD;AACvD,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,UAAU,EAAE,KAAA,EAAO,gBAAe,EAAG,UAAA,EAAY,gBAAe,EAAE;AAAA,IAClE,IAAA,EAAM,sCAAA,EAAuC,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GAC1E;AACJ;AC7JO,IAAM,0CAAA,GAA6C;AAEnD,SAAS,8CAAA,GAAqE;AACjF,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,0CAA0C,CAAA;AAC5E;AAsCO,SAAS,kDAAA,GAAqH;AACjI,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,UAAA,EAAYO,aAAAA,EAAe,CAAA;AAAA,MAC5B,CAAC,OAAA,EAASA,aAAAA,EAAe,CAAA;AAAA,MACzB,CAAC,gBAAA,EAAkBK,iBAAAA,EAAmB;AAAA,KACzC,CAAA;AAAA,IACD,CAAA,KAAA,MAAU;AAAA,MACN,GAAG,KAAA;AAAA,MACH,aAAA,EAAe,0CAAA;AAAA,MACf,QAAA,EAAU,MAAM,QAAA,IAAY;AAAA,KAChC;AAAA,GACJ;AACJ;AAEO,SAAS,kDAAA,GAAiH;AAC7H,EAAA,OAAOP,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,UAAA,EAAYM,aAAAA,EAAe,CAAA;AAAA,IAC5B,CAAC,OAAA,EAASA,aAAAA,EAAe,CAAA;AAAA,IACzB,CAAC,gBAAA,EAAkBK,iBAAAA,EAAmB;AAAA,GACzC,CAAA;AACL;AAEO,SAAS,gDAAA,GAGd;AACE,EAAA,OAAOV,YAAAA;AAAA,IACH,kDAAA,EAAmD;AAAA,IACnD,kDAAA;AAAmD,GACvD;AACJ;AAaO,SAAS,uCAAA,CAKZ,OACA,MAAA,EAMyB;AAEzB,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,UAAA,EAAY,EAAE,KAAA,EAAO,KAAA,CAAM,cAAc,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,IAAA,EAAK;AAAA,IAChF,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,CAAM,SAAS,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,IAAA;AAAK,GAC1E;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAGxB,EAAA,MAAM,SAAA,GAAoB,CAAC,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,GAAIS,iBAAiB,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,GAAG,CAAC,CAAA;AAE5F,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU,CAAC,cAAA,CAAe,YAAA,EAAc,QAAA,CAAS,UAAU,CAAA,EAAG,cAAA,CAAe,OAAA,EAAS,QAAA,CAAS,KAAK,CAAC,CAAA,CAAE,MAAA;AAAA,MACnG,CAAI,MAA6B,CAAA,KAAM;AAAA,KAC3C;AAAA,IACA,SAAA;AAAA,IACA,IAAA,EAAM,oDAAmD,CAAE,MAAA;AAAA,MACvD;AAAA,KACJ;AAAA,IACA;AAAA,GAMwB,CAAA;AAChC;AAcO,SAAS,0CAIZ,WAAA,EAGmE;AACnE,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIR,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,IAAI,yBAAA,GAA4B,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA;AAC9D,EAAA,MAAM,yBAAyB,MAAM;AACjC,IAAA,IAAI,yBAAA,KAA8B,GAAG,OAAO,MAAA;AAC5C,IAAA,yBAAA,IAA6B,CAAA;AAC7B,IAAA,OAAO,cAAA,EAAe;AAAA,EAC1B,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,UAAU,EAAE,UAAA,EAAY,gBAAe,EAAG,KAAA,EAAO,wBAAuB,EAAE;AAAA,IAC1E,IAAA,EAAM,kDAAA,EAAmD,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GACtF;AACJ;AChLO,IAAM,sCAAA,GAAyC;AAE/C,SAAS,0CAAA,GAAiE;AAC7E,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,sCAAsC,CAAA;AACxE;AA4CO,SAAS,8CAAA,GAAoG;AAChH,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,MAAA,EAAQY,iBAAAA,EAAmB,CAAA;AAAA,MAC5B,CAAC,MAAA,EAAQE,oBAAAA,CAAqBC,gBAAe,EAAGR,aAAAA,EAAe,CAAC,CAAA;AAAA,MAChE,CAAC,QAAA,EAAUA,aAAAA,EAAe,CAAA;AAAA,MAC1B,CAAC,OAAA,EAASA,aAAAA,EAAe,CAAA;AAAA,MACzB,CAAC,gBAAA,EAAkBK,iBAAAA,EAAmB;AAAA,KACzC,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,sCAAA,EAAuC;AAAA,GAChF;AACJ;AAEO,SAAS,8CAAA,GAAgG;AAC5G,EAAA,OAAOP,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,MAAA,EAAQW,iBAAAA,EAAmB,CAAA;AAAA,IAC5B,CAAC,MAAA,EAAQG,oBAAAA,CAAqBC,gBAAe,EAAGT,aAAAA,EAAe,CAAC,CAAA;AAAA,IAChE,CAAC,QAAA,EAAUA,aAAAA,EAAe,CAAA;AAAA,IAC1B,CAAC,OAAA,EAASA,aAAAA,EAAe,CAAA;AAAA,IACzB,CAAC,gBAAA,EAAkBK,iBAAAA,EAAmB;AAAA,GACzC,CAAA;AACL;AAEO,SAAS,4CAAA,GAGd;AACE,EAAA,OAAOV,YAAAA;AAAA,IACH,8CAAA,EAA+C;AAAA,IAC/C,8CAAA;AAA+C,GACnD;AACJ;AAiBO,SAAS,mCAAA,CAMZ,OACA,MAAA,EAMF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,CAAM,SAAS,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,IAAA,EAAK;AAAA,IACtE,UAAA,EAAY,EAAE,KAAA,EAAO,KAAA,CAAM,cAAc,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAK;AAAA,IACjF,WAAA,EAAa,EAAE,KAAA,EAAO,KAAA,CAAM,eAAe,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,KAAA;AAAM,GACvF;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAExB,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU;AAAA,MACN,cAAA,CAAe,OAAA,EAAS,QAAA,CAAS,KAAK,CAAA;AAAA,MACtC,cAAA,CAAe,YAAA,EAAc,QAAA,CAAS,UAAU,CAAA;AAAA,MAChD,cAAA,CAAe,aAAA,EAAe,QAAA,CAAS,WAAW;AAAA,KACtD,CAAE,MAAA,CAAO,CAAI,CAAA,KAA6B,MAAM,MAAS,CAAA;AAAA,IACzD,IAAA,EAAM,8CAAA,EAA+C,CAAE,MAAA,CAAO,IAAgD,CAAA;AAAA,IAC9G;AAAA,GAMH,CAAA;AACL;AAeO,SAAS,sCAIZ,WAAA,EAG+D;AAC/D,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,IAAI,yBAAA,GAA4B,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA;AAC9D,EAAA,MAAM,yBAAyB,MAAM;AACjC,IAAA,IAAI,yBAAA,KAA8B,GAAG,OAAO,MAAA;AAC5C,IAAA,yBAAA,IAA6B,CAAA;AAC7B,IAAA,OAAO,cAAA,EAAe;AAAA,EAC1B,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,QAAA,EAAU,EAAE,KAAA,EAAO,cAAA,EAAe,EAAG,YAAY,cAAA,EAAe,EAAG,WAAA,EAAa,sBAAA,EAAuB,EAAE;AAAA,IACzG,IAAA,EAAM,8CAAA,EAA+C,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GAClF;AACJ;ACvMO,IAAM,sCAAA,GAAyC;AAE/C,SAAS,2CAAA,GAAkE;AAC9E,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,sCAAsC,CAAA;AACxE;AA0BO,SAAS,+CAAA,GAA+G;AAC3H,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,gBAAA,EAAkBY,iBAAAA,EAAmB;AAAA,KACzC,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,sCAAA,EAAuC;AAAA,GAChF;AACJ;AAEO,SAAS,+CAAA,GAA2G;AACvH,EAAA,OAAOP,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,gBAAA,EAAkBW,iBAAAA,EAAmB;AAAA,GACzC,CAAA;AACL;AAEO,SAAS,6CAAA,GAGd;AACE,EAAA,OAAOV,YAAAA;AAAA,IACH,+CAAA,EAAgD;AAAA,IAChD,+CAAA;AAAgD,GACpD;AACJ;AAaO,SAAS,oCAAA,CAMZ,OACA,MAAA,EASF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,YAAA,EAAc,EAAE,KAAA,EAAO,KAAA,CAAM,gBAAgB,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAK;AAAA,IACrF,uBAAA,EAAyB,EAAE,KAAA,EAAO,KAAA,CAAM,2BAA2B,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,KAAA,EAAM;AAAA,IAC5G,UAAA,EAAY,EAAE,KAAA,EAAO,KAAA,CAAM,cAAc,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,KAAA;AAAM,GACtF;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAGxB,EAAA,IAAI,CAAC,QAAA,CAAS,uBAAA,CAAwB,KAAA,EAAO;AACzC,IAAA,QAAA,CAAS,wBAAwB,KAAA,GAC7B,6CAAA;AAAA,EACR;AACA,EAAA,IAAI,CAAC,QAAA,CAAS,UAAA,CAAW,KAAA,EAAO;AAC5B,IAAA,QAAA,CAAS,WAAW,KAAA,GAChB,6CAAA;AAAA,EACR;AAEA,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU;AAAA,MACN,cAAA,CAAe,cAAA,EAAgB,QAAA,CAAS,YAAY,CAAA;AAAA,MACpD,cAAA,CAAe,yBAAA,EAA2B,QAAA,CAAS,uBAAuB,CAAA;AAAA,MAC1E,cAAA,CAAe,YAAA,EAAc,QAAA,CAAS,UAAU;AAAA,KACpD;AAAA,IACA,IAAA,EAAM,iDAAgD,CAAE,MAAA;AAAA,MACpD;AAAA,KACJ;AAAA,IACA;AAAA,GASH,CAAA;AACL;AAeO,SAAS,uCAIZ,WAAA,EAGgE;AAChE,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,QAAA,EAAU;AAAA,MACN,cAAc,cAAA,EAAe;AAAA,MAC7B,yBAAyB,cAAA,EAAe;AAAA,MACxC,YAAY,cAAA;AAAe,KAC/B;AAAA,IACA,IAAA,EAAM,+CAAA,EAAgD,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GACnF;AACJ;AC/KO,IAAM,0BAAA,GAA6B;AAEnC,SAAS,gCAAA,GAAuD;AACnE,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,0BAA0B,CAAA;AAC5D;AAuBO,SAAS,oCAAA,GAAyF;AACrG,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,QAAA,EAAUO,aAAAA,EAAe;AAAA,KAC7B,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,0BAAA,EAA2B;AAAA,GACpE;AACJ;AAEO,SAAS,oCAAA,GAAqF;AACjG,EAAA,OAAOF,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,QAAA,EAAUM,aAAAA,EAAe;AAAA,GAC7B,CAAA;AACL;AAEO,SAAS,kCAAA,GAGd;AACE,EAAA,OAAOL,YAAAA,CAAa,oCAAA,EAAqC,EAAG,oCAAA,EAAsC,CAAA;AACtG;AAWO,SAAS,yBAAA,CAKZ,OACA,MAAA,EAKF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,MAAA,EAAQ,EAAE,KAAA,EAAO,KAAA,CAAM,UAAU,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,IAAA,EAAK;AAAA,IACxE,WAAA,EAAa,EAAE,KAAA,EAAO,KAAA,CAAM,eAAe,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA;AAAK,GACvF;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAExB,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU,CAAC,cAAA,CAAe,QAAA,EAAU,QAAA,CAAS,MAAM,CAAA,EAAG,cAAA,CAAe,aAAA,EAAe,QAAA,CAAS,WAAW,CAAC,CAAA;AAAA,IACzG,IAAA,EAAM,oCAAA,EAAqC,CAAE,MAAA,CAAO,IAAsC,CAAA;AAAA,IAC1F;AAAA,GAKH,CAAA;AACL;AAcO,SAAS,4BACZ,WAAA,EAGqD;AACrD,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,UAAU,EAAE,MAAA,EAAQ,gBAAe,EAAG,WAAA,EAAa,gBAAe,EAAE;AAAA,IACpE,IAAA,EAAM,oCAAA,EAAqC,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GACxE;AACJ;AC/HO,IAAM,oCAAA,GAAuC;AAE7C,SAAS,wCAAA,GAA+D;AAC3E,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,oCAAoC,CAAA;AACtE;AAkCO,SAAS,4CAAA,GAAgG;AAC5G,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,QAAA,EAAUO,aAAAA,EAAe,CAAA;AAAA,MAC1B,CAAC,UAAA,EAAYO,oBAAAA,CAAqBC,gBAAe,EAAGR,aAAAA,EAAe,CAAC,CAAA;AAAA,MACpE,CAAC,WAAA,EAAaK,iBAAAA,EAAmB;AAAA,KACpC,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,oCAAA,EAAqC;AAAA,GAC9E;AACJ;AAEO,SAAS,4CAAA,GAA4F;AACxG,EAAA,OAAOP,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,QAAA,EAAUM,aAAAA,EAAe,CAAA;AAAA,IAC1B,CAAC,UAAA,EAAYQ,oBAAAA,CAAqBC,gBAAe,EAAGT,aAAAA,EAAe,CAAC,CAAA;AAAA,IACpE,CAAC,WAAA,EAAaK,iBAAAA,EAAmB;AAAA,GACpC,CAAA;AACL;AAEO,SAAS,0CAAA,GAGd;AACE,EAAA,OAAOV,YAAAA,CAAa,4CAAA,EAA6C,EAAG,4CAAA,EAA8C,CAAA;AACtH;AAeO,SAAS,iCAAA,CAMZ,OACA,MAAA,EAMF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,MAAA,EAAQ,EAAE,KAAA,EAAO,KAAA,CAAM,UAAU,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAK;AAAA,IACzE,WAAA,EAAa,EAAE,KAAA,EAAO,KAAA,CAAM,eAAe,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,KAAA,EAAM;AAAA,IACnF,WAAA,EAAa,EAAE,KAAA,EAAO,KAAA,CAAM,eAAe,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA;AAAK,GACvF;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAExB,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU;AAAA,MACN,cAAA,CAAe,QAAA,EAAU,QAAA,CAAS,MAAM,CAAA;AAAA,MACxC,cAAA,CAAe,aAAA,EAAe,QAAA,CAAS,WAAW,CAAA;AAAA,MAClD,cAAA,CAAe,aAAA,EAAe,QAAA,CAAS,WAAW;AAAA,KACtD;AAAA,IACA,IAAA,EAAM,4CAAA,EAA6C,CAAE,MAAA,CAAO,IAA8C,CAAA;AAAA,IAC1G;AAAA,GAMH,CAAA;AACL;AAeO,SAAS,oCAIZ,WAAA,EAG6D;AAC7D,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,QAAA,EAAU,EAAE,MAAA,EAAQ,cAAA,EAAe,EAAG,aAAa,cAAA,EAAe,EAAG,WAAA,EAAa,cAAA,EAAe,EAAE;AAAA,IACnG,IAAA,EAAM,4CAAA,EAA6C,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GAChF;AACJ;ACjLO,IAAM,mCAAA,GAAsC;AAE5C,SAAS,wCAAA,GAA+D;AAC3E,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,mCAAmC,CAAA;AACrE;AAmBO,SAAS,4CAAA,GAAyG;AACrH,EAAA,OAAOM,gBAAAA,CAAiBF,gBAAAA,CAAiB,CAAC,CAAC,eAAA,EAAiBJ,eAAe,CAAC,CAAC,CAAA,EAAG,CAAA,KAAA,MAAU;AAAA,IACtF,GAAG,KAAA;AAAA,IACH,aAAA,EAAe;AAAA,GACnB,CAAE,CAAA;AACN;AAEO,SAAS,4CAAA,GAAqG;AACjH,EAAA,OAAOK,iBAAiB,CAAC,CAAC,iBAAiBH,aAAAA,EAAe,CAAC,CAAC,CAAA;AAChE;AAEO,SAAS,0CAAA,GAGd;AACE,EAAA,OAAOC,YAAAA,CAAa,4CAAA,EAA6C,EAAG,4CAAA,EAA8C,CAAA;AACtH;AAMO,SAAS,iCAAA,CAIZ,OACA,MAAA,EAIF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB,EAAE,YAAA,EAAc,EAAE,KAAA,EAAO,KAAA,CAAM,YAAA,IAAgB,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAK,EAAE;AAClH,EAAA,MAAM,QAAA,GAAW,gBAAA;AAEjB,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,UAAU,CAAC,cAAA,CAAe,cAAA,EAAgB,QAAA,CAAS,YAAY,CAAC,CAAA;AAAA,IAChE,IAAA,EAAM,4CAAA,EAA6C,CAAE,MAAA,CAAO,EAAE,CAAA;AAAA,IAC9D;AAAA,GAIH,CAAA;AACL;AAaO,SAAS,oCAIZ,WAAA,EAG6D;AAC7D,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,QAAA,EAAU,EAAE,YAAA,EAAc,cAAA,EAAe,EAAE;AAAA,IAC3C,IAAA,EAAM,4CAAA,EAA6C,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GAChF;AACJ;AC1GO,IAAM,oCAAA,GAAuC;AAE7C,SAAS,yCAAA,GAAgE;AAC5E,EAAA,OAAOX,aAAAA,EAAc,CAAE,MAAA,CAAO,oCAAoC,CAAA;AACtE;AAkCO,SAAS,6CAAA,GAA2G;AACvH,EAAA,OAAOM,gBAAAA;AAAA,IACHF,gBAAAA,CAAiB;AAAA,MACb,CAAC,eAAA,EAAiBJ,aAAAA,EAAe,CAAA;AAAA,MACjC,CAAC,gBAAA,EAAkBO,aAAAA,EAAe;AAAA,KACrC,CAAA;AAAA,IACD,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,eAAe,oCAAA,EAAqC;AAAA,GAC9E;AACJ;AAEO,SAAS,6CAAA,GAAuG;AACnH,EAAA,OAAOF,gBAAAA,CAAiB;AAAA,IACpB,CAAC,eAAA,EAAiBH,aAAAA,EAAe,CAAA;AAAA,IACjC,CAAC,gBAAA,EAAkBM,aAAAA,EAAe;AAAA,GACrC,CAAA;AACL;AAEO,SAAS,2CAAA,GAGd;AACE,EAAA,OAAOL,YAAAA;AAAA,IACH,6CAAA,EAA8C;AAAA,IAC9C,6CAAA;AAA8C,GAClD;AACJ;AAiBO,SAAS,kCAAA,CAQZ,OAOA,MAAA,EAWF;AAEE,EAAA,MAAM,mBAAA,GAAsB,QAAQ,cAAA,IAAkB,sBAAA;AACtD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAG3G,EAAA,MAAM,cAAA,GAAiBM,qBAAAA,CAAsB,cAAA,EAAgB,SAAS,CAAA;AAGtE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACrB,YAAA,EAAc,EAAE,KAAA,EAAO,KAAA,CAAM,gBAAgB,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAK;AAAA,IACrF,gBAAA,EAAkB,EAAE,KAAA,EAAO,KAAA,CAAM,oBAAoB,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAK;AAAA,IAC7F,uBAAA,EAAyB,EAAE,KAAA,EAAO,KAAA,CAAM,2BAA2B,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,KAAA,EAAM;AAAA,IAC5G,UAAA,EAAY,EAAE,KAAA,EAAO,KAAA,CAAM,cAAc,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,KAAA,EAAM;AAAA,IAClF,cAAA,EAAgB,EAAE,KAAA,EAAO,KAAA,CAAM,kBAAkB,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,KAAA;AAAM,GAC7F;AACA,EAAA,MAAM,QAAA,GAAW,gBAAA;AAGjB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAGxB,EAAA,IAAI,CAAC,QAAA,CAAS,uBAAA,CAAwB,KAAA,EAAO;AACzC,IAAA,QAAA,CAAS,wBAAwB,KAAA,GAC7B,6CAAA;AAAA,EACR;AACA,EAAA,IAAI,CAAC,QAAA,CAAS,UAAA,CAAW,KAAA,EAAO;AAC5B,IAAA,QAAA,CAAS,WAAW,KAAA,GAChB,6CAAA;AAAA,EACR;AAEA,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,QAAA,EAAU;AAAA,MACN,cAAA,CAAe,cAAA,EAAgB,QAAA,CAAS,YAAY,CAAA;AAAA,MACpD,cAAA,CAAe,kBAAA,EAAoB,QAAA,CAAS,gBAAgB,CAAA;AAAA,MAC5D,cAAA,CAAe,yBAAA,EAA2B,QAAA,CAAS,uBAAuB,CAAA;AAAA,MAC1E,cAAA,CAAe,YAAA,EAAc,QAAA,CAAS,UAAU,CAAA;AAAA,MAChD,cAAA,CAAe,gBAAA,EAAkB,QAAA,CAAS,cAAc;AAAA,KAC5D;AAAA,IACA,IAAA,EAAM,6CAAA,EAA8C,CAAE,MAAA,CAAO,IAA+C,CAAA;AAAA,IAC5G;AAAA,GAcH,CAAA;AACL;AAiBO,SAAS,qCAIZ,WAAA,EAG8D;AAC9D,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACjC,IAAA,MAAM,IAAIC,YAAYC,yDAAAA,EAA2D;AAAA,MAC7E,kBAAA,EAAoB,YAAY,QAAA,CAAS,MAAA;AAAA,MACzC,oBAAA,EAAsB;AAAA,KACzB,CAAA;AAAA,EACL;AACA,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,MAAM,iBAAiB,MAAM;AACzB,IAAA,MAAM,WAAA,GAAe,WAAA,CAAY,QAAA,CAA2B,YAAY,CAAA;AACxE,IAAA,YAAA,IAAgB,CAAA;AAChB,IAAA,OAAO,WAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO;AAAA,IACH,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,QAAA,EAAU;AAAA,MACN,cAAc,cAAA,EAAe;AAAA,MAC7B,kBAAkB,cAAA,EAAe;AAAA,MACjC,yBAAyB,cAAA,EAAe;AAAA,MACxC,YAAY,cAAA,EAAe;AAAA,MAC3B,gBAAgB,cAAA;AAAe,KACnC;AAAA,IACA,IAAA,EAAM,6CAAA,EAA8C,CAAE,MAAA,CAAO,YAAY,IAAI;AAAA,GACjF;AACJ;;;AC7JO,IAAM,sBAAA,GAAyB;AAE/B,IAAK,aAAA,qBAAAQ,cAAAA,KAAL;AACH,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA;AADQ,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAIL,IAAK,iBAAA,qBAAAC,kBAAAA,KAAL;AACH,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,wBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,wBAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,2BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,2BAAA;AAdQ,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AAiBL,SAAS,0BACZ,WAAA,EACiB;AACjB,EAAA,MAAM,IAAA,GAAO,MAAA,IAAU,WAAA,GAAc,WAAA,CAAY,IAAA,GAAO,WAAA;AACxD,EAAA,IAAI,aAAA,CAAc,MAAMpB,aAAAA,EAAc,CAAE,OAAO,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,CAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,CAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,CAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,CAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,CAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,CAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,CAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,CAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,CAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,CAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,EAAE,CAAA,EAAG,CAAC,CAAA,EAAG;AACpD,IAAA,OAAO,EAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,EAAE,CAAA,EAAG,CAAC,CAAA,EAAG;AACpD,IAAA,OAAO,EAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,EAAE,CAAA,EAAG,CAAC,CAAA,EAAG;AACpD,IAAA,OAAO,EAAA;AAAA,EACX;AACA,EAAA,IAAI,aAAA,CAAc,MAAMA,aAAAA,EAAc,CAAE,OAAO,EAAE,CAAA,EAAG,CAAC,CAAA,EAAG;AACpD,IAAA,OAAO,EAAA;AAAA,EACX;AACA,EAAA,MAAM,IAAIU,YAAY,6DAAA,EAA+D;AAAA,IACjF,eAAA,EAAiB,IAAA;AAAA,IACjB,WAAA,EAAa;AAAA,GAChB,CAAA;AACL;AAsBO,SAAS,uBACZ,WAAA,EACiC;AACjC,EAAA,MAAM,eAAA,GAAkB,0BAA0B,WAAW,CAAA;AAC7D,EAAA,QAAQ,eAAA;AAAiB,IACrB,KAAK,CAAA,sBAAiC;AAClC,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO,EAAE,eAAA,EAAiB,CAAA,sBAAiC,GAAG,6BAAA,CAA8B,WAAW,CAAA,EAAE;AAAA,IAC7G;AAAA,IACA,KAAK,CAAA,eAA0B;AAC3B,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO,EAAE,eAAA,EAAiB,CAAA,eAA0B,GAAG,sBAAA,CAAuB,WAAW,CAAA,EAAE;AAAA,IAC/F;AAAA,IACA,KAAK,CAAA,oBAA+B;AAChC,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO,EAAE,eAAA,EAAiB,CAAA,oBAA+B,GAAG,2BAAA,CAA4B,WAAW,CAAA,EAAE;AAAA,IACzG;AAAA,IACA,KAAK,CAAA,8BAAyC;AAC1C,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO;AAAA,QACH,eAAA,EAAiB,CAAA;AAAA,QACjB,GAAG,sCAAsC,WAAW;AAAA,OACxD;AAAA,IACJ;AAAA,IACA,KAAK,CAAA,4BAAuC;AACxC,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO;AAAA,QACH,eAAA,EAAiB,CAAA;AAAA,QACjB,GAAG,oCAAoC,WAAW;AAAA,OACtD;AAAA,IACJ;AAAA,IACA,KAAK,CAAA,6BAAwC;AACzC,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO;AAAA,QACH,eAAA,EAAiB,CAAA;AAAA,QACjB,GAAG,qCAAqC,WAAW;AAAA,OACvD;AAAA,IACJ;AAAA,IACA,KAAK,CAAA,+BAA0C;AAC3C,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO;AAAA,QACH,eAAA,EAAiB,CAAA;AAAA,QACjB,GAAG,uCAAuC,WAAW;AAAA,OACzD;AAAA,IACJ;AAAA,IACA,KAAK,CAAA,8BAAyC;AAC1C,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO;AAAA,QACH,eAAA,EAAiB,CAAA;AAAA,QACjB,GAAG,sCAAsC,WAAW;AAAA,OACxD;AAAA,IACJ;AAAA,IACA,KAAK,CAAA,iBAA4B;AAC7B,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO,EAAE,eAAA,EAAiB,CAAA,iBAA4B,GAAG,wBAAA,CAAyB,WAAW,CAAA,EAAE;AAAA,IACnG;AAAA,IACA,KAAK,CAAA,yBAAoC;AACrC,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO;AAAA,QACH,eAAA,EAAiB,CAAA;AAAA,QACjB,GAAG,iCAAiC,WAAW;AAAA,OACnD;AAAA,IACJ;AAAA,IACA,KAAK,EAAA,uBAAkC;AACnC,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO;AAAA,QACH,eAAA,EAAiB,EAAA;AAAA,QACjB,GAAG,+BAA+B,WAAW;AAAA,OACjD;AAAA,IACJ;AAAA,IACA,KAAK,EAAA,4BAAuC;AACxC,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO;AAAA,QACH,eAAA,EAAiB,EAAA;AAAA,QACjB,GAAG,oCAAoC,WAAW;AAAA,OACtD;AAAA,IACJ;AAAA,IACA,KAAK,EAAA,4BAAuC;AACxC,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO;AAAA,QACH,eAAA,EAAiB,EAAA;AAAA,QACjB,GAAG,oCAAoC,WAAW;AAAA,OACtD;AAAA,IACJ;AAAA,IACA,KAAK,EAAA,kCAA6C;AAC9C,MAAA,+BAAA,CAAgC,WAAW,CAAA;AAC3C,MAAA,OAAO;AAAA,QACH,eAAA,EAAiB,EAAA;AAAA,QACjB,GAAG,0CAA0C,WAAW;AAAA,OAC5D;AAAA,IACJ;AAAA,IACA;AACI,MAAA,MAAM,IAAIA,YAAY,4DAAA,EAA8D;AAAA,QAChF,eAAA;AAAA,QACA,WAAA,EAAa;AAAA,OAChB,CAAA;AAAA;AAEb;AA2EO,SAAS,aAAA,CAAc,MAAA,GAAoD,EAAC,EAAG;AAClF,EAAA,OAAO,CAAqC,MAAA,KAA2D;AACnG,IAAA,OAAO,aAAa,MAAA,EAAQ;AAAA,MACxB,MAAA,EAAsB;AAAA,QAClB,UAAU,EAAE,KAAA,EAAO,sBAAsB,MAAA,EAAQ,aAAA,EAAe,CAAA,EAAE;AAAA,QAClE,YAAA,EAAc;AAAA,UACV,aAAA,EAAe,CAAC,KAAA,EAAO,iBAAA,KACnB,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,2BAAA;AAAA,cACI,EAAE,GAAG,KAAA,EAAO,OAAO,KAAA,CAAM,KAAA,IAAS,OAAO,KAAA,EAAM;AAAA,cAC/C,EAAE,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,OAAO,cAAA;AAAe;AACjF,WACJ;AAAA,UACJ,MAAA,EAAQ,CAAC,KAAA,EAAO,iBAAA,KACZ,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,qBAAqB,KAAA,EAAO;AAAA,cACxB,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,WAAA,EAAa,CAAC,KAAA,EAAO,iBAAA,KACjB,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,0BAA0B,KAAA,EAAO;AAAA,cAC7B,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,qBAAA,EAAuB,CAAC,KAAA,EAAO,iBAAA,KAC3B,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,mCAAA;AAAA,cACI,EAAE,GAAG,KAAA,EAAO,OAAO,KAAA,CAAM,KAAA,IAAS,OAAO,KAAA,EAAM;AAAA,cAC/C,EAAE,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,OAAO,cAAA;AAAe;AACjF,WACJ;AAAA,UACJ,mBAAA,EAAqB,CAAC,KAAA,EAAO,iBAAA,KACzB,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,kCAAkC,KAAA,EAAO;AAAA,cACrC,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,oBAAA,EAAsB,CAAC,KAAA,EAAO,iBAAA,KAC1B,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,mCAAmC,KAAA,EAAO;AAAA,cACtC,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,sBAAA,EAAwB,CAAC,KAAA,EAAO,iBAAA,KAC5B,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,qCAAqC,KAAA,EAAO;AAAA,cACxC,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,qBAAA,EAAuB,CAAC,KAAA,EAAO,iBAAA,KAC3B,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,oCAAoC,KAAA,EAAO;AAAA,cACvC,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,QAAA,EAAU,CAAC,KAAA,EAAO,iBAAA,KACd,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,uBAAuB,KAAA,EAAO;AAAA,cAC1B,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,gBAAA,EAAkB,CAAC,KAAA,EAAO,iBAAA,KACtB,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,+BAA+B,KAAA,EAAO;AAAA,cAClC,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,cAAA,EAAgB,CAAC,KAAA,EAAO,iBAAA,KACpB,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,6BAA6B,KAAA,EAAO;AAAA,cAChC,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,mBAAA,EAAqB,CAAC,KAAA,EAAO,iBAAA,KACzB,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,kCAAkC,KAAA,EAAO;AAAA,cACrC,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,mBAAA,EAAqB,CAAC,KAAA,EAAO,iBAAA,KACzB,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,kCAAkC,KAAA,EAAO;AAAA,cACrC,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA,WACL;AAAA,UACJ,yBAAA,EAA2B,CAAC,KAAA,EAAO,iBAAA,KAC/B,2BAAA;AAAA,YACI,MAAA;AAAA,YACA,wCAAwC,KAAA,EAAO;AAAA,cAC3C,cAAA,EAAgB,iBAAA,EAAmB,cAAA,IAAkB,MAAA,CAAO;AAAA,aAC/D;AAAA;AACL,SACR;AAAA,QACA,mBAAA,EAAqB,yBAAA;AAAA,QACrB,gBAAA,EAAkB;AAAA;AACtB,KACH,CAAA;AAAA,EACL,CAAA;AACJ;;;ACxcO,IAAM,oCAAA,GAAuC;AAE7C,IAAM,2CAAA,GAA8C;AAEpD,IAAM,gCAAA,GAAmC;AAEzC,IAAM,yCAAA,GAA4C;AAElD,IAAM,sCAAA,GAAyC;AAE/C,IAAM,wCAAA,GAA2C;AAEjD,IAAM,yCAAA,GAA4C;AAElD,IAAM,yCAAA,GAA4C;AAElD,IAAM,8CAAA,GAAiD;AAa9D,IAAI,mBAAA;AACJ,IAAI,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA,KAAM,YAAA,EAAc;AAC1C,EAAA,mBAAA,GAAsB;AAAA,IAClB,CAAC,oCAAoC,GAAG,CAAA,+CAAA,CAAA;AAAA,IACxC,CAAC,wCAAwC,GAAG,CAAA,2DAAA,CAAA;AAAA,IAC5C,CAAC,yCAAyC,GAAG,CAAA,2CAAA,CAAA;AAAA,IAC7C,CAAC,gCAAgC,GAAG,CAAA,wCAAA,CAAA;AAAA,IACpC,CAAC,sCAAsC,GAAG,CAAA,oCAAA,CAAA;AAAA,IAC1C,CAAC,yCAAyC,GAAG,CAAA,2CAAA,CAAA;AAAA,IAC7C,CAAC,yCAAyC,GAAG,CAAA,oEAAA,CAAA;AAAA,IAC7C,CAAC,8CAA8C,GAAG,CAAA,2CAAA,CAAA;AAAA,IAClD,CAAC,2CAA2C,GAAG,CAAA,yDAAA;AAAA,GACnD;AACJ;AAEO,SAAS,sBAAsB,IAAA,EAA2B;AAC7D,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA,KAAM,YAAA,EAAc;AAC1C,IAAA,OAAQ,oBAAoD,IAAI,CAAA;AAAA,EACpE;AAEA,EAAA,OAAO,oDAAA;AACX;AAEO,SAAS,cACZ,KAAA,EACA,kBAAA,EACA,IAAA,EACA,MAAA,GAAoD,EAAC,EAEQ;AAC7D,EAAA,MAAM,mBAAA,GAAsB,OAAO,cAAA,IAAkB,sBAAA;AACrD,EAAA,MAAM,cAAA,GAAiB,OAAO,mBAAA,KAAwB,QAAA,GAAW,sBAAsB,mBAAA,CAAoB,OAAA;AAC3G,EAAA,OAAO,cAAA,CAAkC,KAAA,EAAO,kBAAA,EAAoB,cAAA,EAAgB,IAAI,CAAA;AAC5F","file":"index.mjs","sourcesContent":["/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getEnumDecoder,\n getEnumEncoder,\n getU32Decoder,\n getU32Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport enum NonceState {\n Uninitialized,\n Initialized,\n}\n\nexport type NonceStateArgs = NonceState;\n\nexport function getNonceStateEncoder(): FixedSizeEncoder<NonceStateArgs> {\n return getEnumEncoder(NonceState, { size: getU32Encoder() });\n}\n\nexport function getNonceStateDecoder(): FixedSizeDecoder<NonceState> {\n return getEnumDecoder(NonceState, { size: getU32Decoder() });\n}\n\nexport function getNonceStateCodec(): FixedSizeCodec<NonceStateArgs, NonceState> {\n return combineCodec(getNonceStateEncoder(), getNonceStateDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getEnumDecoder,\n getEnumEncoder,\n getU32Decoder,\n getU32Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport enum NonceVersion {\n Legacy,\n Current,\n}\n\nexport type NonceVersionArgs = NonceVersion;\n\nexport function getNonceVersionEncoder(): FixedSizeEncoder<NonceVersionArgs> {\n return getEnumEncoder(NonceVersion, { size: getU32Encoder() });\n}\n\nexport function getNonceVersionDecoder(): FixedSizeDecoder<NonceVersion> {\n return getEnumDecoder(NonceVersion, { size: getU32Decoder() });\n}\n\nexport function getNonceVersionCodec(): FixedSizeCodec<NonceVersionArgs, NonceVersion> {\n return combineCodec(getNonceVersionEncoder(), getNonceVersionDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU64Decoder,\n getU64Encoder,\n type Account,\n type Address,\n type EncodedAccount,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type MaybeAccount,\n type MaybeEncodedAccount,\n} from '@solana/kit';\nimport {\n getNonceStateDecoder,\n getNonceStateEncoder,\n getNonceVersionDecoder,\n getNonceVersionEncoder,\n type NonceState,\n type NonceStateArgs,\n type NonceVersion,\n type NonceVersionArgs,\n} from '../types';\n\nexport type Nonce = {\n version: NonceVersion;\n state: NonceState;\n authority: Address;\n blockhash: Address;\n lamportsPerSignature: bigint;\n};\n\nexport type NonceArgs = {\n version: NonceVersionArgs;\n state: NonceStateArgs;\n authority: Address | HasAddress;\n blockhash: Address | HasAddress;\n lamportsPerSignature: number | bigint;\n};\n\n/** Gets the encoder for {@link NonceArgs} account data. */\nexport function getNonceEncoder(): FixedSizeEncoder<NonceArgs> {\n return getStructEncoder([\n ['version', getNonceVersionEncoder()],\n ['state', getNonceStateEncoder()],\n ['authority', getAddressEncoder()],\n ['blockhash', getAddressEncoder()],\n ['lamportsPerSignature', getU64Encoder()],\n ]);\n}\n\n/** Gets the decoder for {@link Nonce} account data. */\nexport function getNonceDecoder(): FixedSizeDecoder<Nonce> {\n return getStructDecoder([\n ['version', getNonceVersionDecoder()],\n ['state', getNonceStateDecoder()],\n ['authority', getAddressDecoder()],\n ['blockhash', getAddressDecoder()],\n ['lamportsPerSignature', getU64Decoder()],\n ]);\n}\n\n/** Gets the codec for {@link Nonce} account data. */\nexport function getNonceCodec(): FixedSizeCodec<NonceArgs, Nonce> {\n return combineCodec(getNonceEncoder(), getNonceDecoder());\n}\n\nexport function decodeNonce<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>,\n): Account<Nonce, TAddress>;\nexport function decodeNonce<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>,\n): MaybeAccount<Nonce, TAddress>;\nexport function decodeNonce<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,\n): Account<Nonce, TAddress> | MaybeAccount<Nonce, TAddress> {\n return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getNonceDecoder());\n}\n\nexport async function fetchNonce<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress> | HasAddress<TAddress>,\n config?: FetchAccountConfig,\n): Promise<Account<Nonce, TAddress>> {\n const maybeAccount = await fetchMaybeNonce(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeNonce<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress> | HasAddress<TAddress>,\n config?: FetchAccountConfig,\n): Promise<MaybeAccount<Nonce, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(\n rpc,\n typeof address === 'string' ? address : address.address,\n config,\n );\n return decodeNonce(maybeAccount);\n}\n\nexport async function fetchAllNonce(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address | HasAddress>,\n config?: FetchAccountsConfig,\n): Promise<Account<Nonce>[]> {\n const maybeAccounts = await fetchAllMaybeNonce(rpc, addresses, config);\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeNonce(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address | HasAddress>,\n config?: FetchAccountsConfig,\n): Promise<MaybeAccount<Nonce>[]> {\n const maybeAccounts = await fetchEncodedAccounts(\n rpc,\n addresses.map(a => (typeof a === 'string' ? a : a.address)),\n config,\n );\n return maybeAccounts.map(maybeAccount => decodeNonce(maybeAccount));\n}\n\nexport function getNonceSize(): number {\n return 80;\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const ADVANCE_NONCE_ACCOUNT_DISCRIMINATOR = 4;\n\nexport function getAdvanceNonceAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(ADVANCE_NONCE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type AdvanceNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNonceAccount extends string | AccountMeta<string> = string,\n TAccountRecentBlockhashesSysvar extends string | AccountMeta<string> =\n 'SysvarRecentB1ockHashes11111111111111111111',\n TAccountNonceAuthority extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNonceAccount extends string ? WritableAccount<TAccountNonceAccount> : TAccountNonceAccount,\n TAccountRecentBlockhashesSysvar extends string\n ? ReadonlyAccount<TAccountRecentBlockhashesSysvar>\n : TAccountRecentBlockhashesSysvar,\n TAccountNonceAuthority extends string\n ? ReadonlySignerAccount<TAccountNonceAuthority> & AccountSignerMeta<TAccountNonceAuthority>\n : TAccountNonceAuthority,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AdvanceNonceAccountInstructionData = { discriminator: number };\n\nexport type AdvanceNonceAccountInstructionDataArgs = {};\n\nexport function getAdvanceNonceAccountInstructionDataEncoder(): FixedSizeEncoder<AdvanceNonceAccountInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', getU32Encoder()]]), value => ({\n ...value,\n discriminator: ADVANCE_NONCE_ACCOUNT_DISCRIMINATOR,\n }));\n}\n\nexport function getAdvanceNonceAccountInstructionDataDecoder(): FixedSizeDecoder<AdvanceNonceAccountInstructionData> {\n return getStructDecoder([['discriminator', getU32Decoder()]]);\n}\n\nexport function getAdvanceNonceAccountInstructionDataCodec(): FixedSizeCodec<\n AdvanceNonceAccountInstructionDataArgs,\n AdvanceNonceAccountInstructionData\n> {\n return combineCodec(getAdvanceNonceAccountInstructionDataEncoder(), getAdvanceNonceAccountInstructionDataDecoder());\n}\n\nexport type AdvanceNonceAccountInput<\n TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput = InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput = InstructionSignerInput,\n> = {\n nonceAccount: TAccountNonceAccount;\n recentBlockhashesSysvar?: TAccountRecentBlockhashesSysvar;\n nonceAuthority: TAccountNonceAuthority;\n};\n\nexport function getAdvanceNonceAccountInstruction<\n TAccountNonceAccount extends InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AdvanceNonceAccountInput<TAccountNonceAccount, TAccountRecentBlockhashesSysvar, TAccountNonceAuthority>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): AdvanceNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true },\n recentBlockhashesSysvar: { value: input.recentBlockhashesSysvar ?? null, isSigner: false, isWritable: false },\n nonceAuthority: { value: input.nonceAuthority ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Resolve default values.\n if (!accounts.recentBlockhashesSysvar.value) {\n accounts.recentBlockhashesSysvar.value =\n 'SysvarRecentB1ockHashes11111111111111111111' as Address<'SysvarRecentB1ockHashes11111111111111111111'>;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('nonceAccount', accounts.nonceAccount),\n getAccountMeta('recentBlockhashesSysvar', accounts.recentBlockhashesSysvar),\n getAccountMeta('nonceAuthority', accounts.nonceAuthority),\n ],\n data: getAdvanceNonceAccountInstructionDataEncoder().encode({}),\n programAddress,\n } as AdvanceNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n >);\n}\n\nexport type ParsedAdvanceNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n nonceAccount: TAccountMetas[0];\n recentBlockhashesSysvar: TAccountMetas[1];\n nonceAuthority: TAccountMetas[2];\n };\n data: AdvanceNonceAccountInstructionData;\n};\n\nexport function parseAdvanceNonceAccountInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAdvanceNonceAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 3) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 3,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n nonceAccount: getNextAccount(),\n recentBlockhashesSysvar: getNextAccount(),\n nonceAuthority: getNextAccount(),\n },\n data: getAdvanceNonceAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const ALLOCATE_DISCRIMINATOR = 8;\n\nexport function getAllocateDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(ALLOCATE_DISCRIMINATOR);\n}\n\nexport type AllocateInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNewAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNewAccount extends string\n ? WritableSignerAccount<TAccountNewAccount> & AccountSignerMeta<TAccountNewAccount>\n : TAccountNewAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AllocateInstructionData = { discriminator: number; space: bigint };\n\nexport type AllocateInstructionDataArgs = { space: number | bigint };\n\nexport function getAllocateInstructionDataEncoder(): FixedSizeEncoder<AllocateInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['space', getU64Encoder()],\n ]),\n value => ({ ...value, discriminator: ALLOCATE_DISCRIMINATOR }),\n );\n}\n\nexport function getAllocateInstructionDataDecoder(): FixedSizeDecoder<AllocateInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['space', getU64Decoder()],\n ]);\n}\n\nexport function getAllocateInstructionDataCodec(): FixedSizeCodec<\n AllocateInstructionDataArgs,\n AllocateInstructionData\n> {\n return combineCodec(getAllocateInstructionDataEncoder(), getAllocateInstructionDataDecoder());\n}\n\nexport type AllocateInput<TAccountNewAccount extends InstructionSignerInput = InstructionSignerInput> = {\n newAccount: TAccountNewAccount;\n space: AllocateInstructionDataArgs['space'];\n};\n\nexport function getAllocateInstruction<\n TAccountNewAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AllocateInput<TAccountNewAccount>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): AllocateInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = { newAccount: { value: input.newAccount ?? null, isSigner: true, isWritable: true } };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [getAccountMeta('newAccount', accounts.newAccount)],\n data: getAllocateInstructionDataEncoder().encode(args as AllocateInstructionDataArgs),\n programAddress,\n } as AllocateInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>\n >);\n}\n\nexport type ParsedAllocateInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n newAccount: TAccountMetas[0];\n };\n data: AllocateInstructionData;\n};\n\nexport function parseAllocateInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAllocateInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 1) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 1,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { newAccount: getNextAccount() },\n data: getAllocateInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const ALLOCATE_WITH_SEED_DISCRIMINATOR = 9;\n\nexport function getAllocateWithSeedDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(ALLOCATE_WITH_SEED_DISCRIMINATOR);\n}\n\nexport type AllocateWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNewAccount extends string | AccountMeta<string> = string,\n TAccountBaseAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNewAccount extends string ? WritableAccount<TAccountNewAccount> : TAccountNewAccount,\n TAccountBaseAccount extends string\n ? ReadonlySignerAccount<TAccountBaseAccount> & AccountSignerMeta<TAccountBaseAccount>\n : TAccountBaseAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AllocateWithSeedInstructionData = {\n discriminator: number;\n base: Address;\n seed: string;\n space: bigint;\n programAddress: Address;\n};\n\nexport type AllocateWithSeedInstructionDataArgs = {\n base: Address | HasAddress;\n seed: string;\n space: number | bigint;\n programAddress: Address | HasAddress;\n};\n\nexport function getAllocateWithSeedInstructionDataEncoder(): Encoder<AllocateWithSeedInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['base', getAddressEncoder()],\n ['seed', addEncoderSizePrefix(getUtf8Encoder(), getU64Encoder())],\n ['space', getU64Encoder()],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: ALLOCATE_WITH_SEED_DISCRIMINATOR }),\n );\n}\n\nexport function getAllocateWithSeedInstructionDataDecoder(): Decoder<AllocateWithSeedInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['base', getAddressDecoder()],\n ['seed', addDecoderSizePrefix(getUtf8Decoder(), getU64Decoder())],\n ['space', getU64Decoder()],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getAllocateWithSeedInstructionDataCodec(): Codec<\n AllocateWithSeedInstructionDataArgs,\n AllocateWithSeedInstructionData\n> {\n return combineCodec(getAllocateWithSeedInstructionDataEncoder(), getAllocateWithSeedInstructionDataDecoder());\n}\n\nexport type AllocateWithSeedInput<\n TAccountNewAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput = InstructionSignerInput,\n> = {\n newAccount: TAccountNewAccount;\n baseAccount: TAccountBaseAccount;\n base: AllocateWithSeedInstructionDataArgs['base'];\n seed: AllocateWithSeedInstructionDataArgs['seed'];\n space: AllocateWithSeedInstructionDataArgs['space'];\n programAddress: AllocateWithSeedInstructionDataArgs['programAddress'];\n};\n\nexport function getAllocateWithSeedInstruction<\n TAccountNewAccount extends InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AllocateWithSeedInput<TAccountNewAccount, TAccountBaseAccount>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): AllocateWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n newAccount: { value: input.newAccount ?? null, isSigner: false, isWritable: true },\n baseAccount: { value: input.baseAccount ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [\n getAccountMeta('newAccount', accounts.newAccount),\n getAccountMeta('baseAccount', accounts.baseAccount),\n ],\n data: getAllocateWithSeedInstructionDataEncoder().encode(args as AllocateWithSeedInstructionDataArgs),\n programAddress,\n } as AllocateWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n >);\n}\n\nexport type ParsedAllocateWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n newAccount: TAccountMetas[0];\n baseAccount: TAccountMetas[1];\n };\n data: AllocateWithSeedInstructionData;\n};\n\nexport function parseAllocateWithSeedInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAllocateWithSeedInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { newAccount: getNextAccount(), baseAccount: getNextAccount() },\n data: getAllocateWithSeedInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const ASSIGN_DISCRIMINATOR = 1;\n\nexport function getAssignDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(ASSIGN_DISCRIMINATOR);\n}\n\nexport type AssignInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountAccount extends string\n ? WritableSignerAccount<TAccountAccount> & AccountSignerMeta<TAccountAccount>\n : TAccountAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AssignInstructionData = { discriminator: number; programAddress: Address };\n\nexport type AssignInstructionDataArgs = { programAddress: Address | HasAddress };\n\nexport function getAssignInstructionDataEncoder(): FixedSizeEncoder<AssignInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: ASSIGN_DISCRIMINATOR }),\n );\n}\n\nexport function getAssignInstructionDataDecoder(): FixedSizeDecoder<AssignInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getAssignInstructionDataCodec(): FixedSizeCodec<AssignInstructionDataArgs, AssignInstructionData> {\n return combineCodec(getAssignInstructionDataEncoder(), getAssignInstructionDataDecoder());\n}\n\nexport type AssignInput<TAccountAccount extends InstructionSignerInput = InstructionSignerInput> = {\n account: TAccountAccount;\n programAddress: AssignInstructionDataArgs['programAddress'];\n};\n\nexport function getAssignInstruction<\n TAccountAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AssignInput<TAccountAccount>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): AssignInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAccount, InstructionAccountInputAddress<TAccountAccount>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = { account: { value: input.account ?? null, isSigner: true, isWritable: true } };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [getAccountMeta('account', accounts.account)],\n data: getAssignInstructionDataEncoder().encode(args as AssignInstructionDataArgs),\n programAddress,\n } as AssignInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAccount, InstructionAccountInputAddress<TAccountAccount>>\n >);\n}\n\nexport type ParsedAssignInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n account: TAccountMetas[0];\n };\n data: AssignInstructionData;\n};\n\nexport function parseAssignInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAssignInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 1) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 1,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { account: getNextAccount() },\n data: getAssignInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const ASSIGN_WITH_SEED_DISCRIMINATOR = 10;\n\nexport function getAssignWithSeedDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(ASSIGN_WITH_SEED_DISCRIMINATOR);\n}\n\nexport type AssignWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountAccount extends string | AccountMeta<string> = string,\n TAccountBaseAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountAccount extends string ? WritableAccount<TAccountAccount> : TAccountAccount,\n TAccountBaseAccount extends string\n ? ReadonlySignerAccount<TAccountBaseAccount> & AccountSignerMeta<TAccountBaseAccount>\n : TAccountBaseAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AssignWithSeedInstructionData = {\n discriminator: number;\n base: Address;\n seed: string;\n programAddress: Address;\n};\n\nexport type AssignWithSeedInstructionDataArgs = {\n base: Address | HasAddress;\n seed: string;\n programAddress: Address | HasAddress;\n};\n\nexport function getAssignWithSeedInstructionDataEncoder(): Encoder<AssignWithSeedInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['base', getAddressEncoder()],\n ['seed', addEncoderSizePrefix(getUtf8Encoder(), getU64Encoder())],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: ASSIGN_WITH_SEED_DISCRIMINATOR }),\n );\n}\n\nexport function getAssignWithSeedInstructionDataDecoder(): Decoder<AssignWithSeedInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['base', getAddressDecoder()],\n ['seed', addDecoderSizePrefix(getUtf8Decoder(), getU64Decoder())],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getAssignWithSeedInstructionDataCodec(): Codec<\n AssignWithSeedInstructionDataArgs,\n AssignWithSeedInstructionData\n> {\n return combineCodec(getAssignWithSeedInstructionDataEncoder(), getAssignWithSeedInstructionDataDecoder());\n}\n\nexport type AssignWithSeedInput<\n TAccountAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput = InstructionSignerInput,\n> = {\n account: TAccountAccount;\n baseAccount: TAccountBaseAccount;\n base: AssignWithSeedInstructionDataArgs['base'];\n seed: AssignWithSeedInstructionDataArgs['seed'];\n programAddress: AssignWithSeedInstructionDataArgs['programAddress'];\n};\n\nexport function getAssignWithSeedInstruction<\n TAccountAccount extends InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AssignWithSeedInput<TAccountAccount, TAccountBaseAccount>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): AssignWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAccount, InstructionAccountInputAddress<TAccountAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n account: { value: input.account ?? null, isSigner: false, isWritable: true },\n baseAccount: { value: input.baseAccount ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [getAccountMeta('account', accounts.account), getAccountMeta('baseAccount', accounts.baseAccount)],\n data: getAssignWithSeedInstructionDataEncoder().encode(args as AssignWithSeedInstructionDataArgs),\n programAddress,\n } as AssignWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountAccount, InstructionAccountInputAddress<TAccountAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n >);\n}\n\nexport type ParsedAssignWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n account: TAccountMetas[0];\n baseAccount: TAccountMetas[1];\n };\n data: AssignWithSeedInstructionData;\n};\n\nexport function parseAssignWithSeedInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAssignWithSeedInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { account: getNextAccount(), baseAccount: getNextAccount() },\n data: getAssignWithSeedInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const AUTHORIZE_NONCE_ACCOUNT_DISCRIMINATOR = 7;\n\nexport function getAuthorizeNonceAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(AUTHORIZE_NONCE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type AuthorizeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNonceAccount extends string | AccountMeta<string> = string,\n TAccountNonceAuthority extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNonceAccount extends string ? WritableAccount<TAccountNonceAccount> : TAccountNonceAccount,\n TAccountNonceAuthority extends string\n ? ReadonlySignerAccount<TAccountNonceAuthority> & AccountSignerMeta<TAccountNonceAuthority>\n : TAccountNonceAuthority,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type AuthorizeNonceAccountInstructionData = { discriminator: number; newNonceAuthority: Address };\n\nexport type AuthorizeNonceAccountInstructionDataArgs = { newNonceAuthority: Address | HasAddress };\n\nexport function getAuthorizeNonceAccountInstructionDataEncoder(): FixedSizeEncoder<AuthorizeNonceAccountInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['newNonceAuthority', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: AUTHORIZE_NONCE_ACCOUNT_DISCRIMINATOR }),\n );\n}\n\nexport function getAuthorizeNonceAccountInstructionDataDecoder(): FixedSizeDecoder<AuthorizeNonceAccountInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['newNonceAuthority', getAddressDecoder()],\n ]);\n}\n\nexport function getAuthorizeNonceAccountInstructionDataCodec(): FixedSizeCodec<\n AuthorizeNonceAccountInstructionDataArgs,\n AuthorizeNonceAccountInstructionData\n> {\n return combineCodec(\n getAuthorizeNonceAccountInstructionDataEncoder(),\n getAuthorizeNonceAccountInstructionDataDecoder(),\n );\n}\n\nexport type AuthorizeNonceAccountInput<\n TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput = InstructionSignerInput,\n> = {\n nonceAccount: TAccountNonceAccount;\n nonceAuthority: TAccountNonceAuthority;\n newNonceAuthority: AuthorizeNonceAccountInstructionDataArgs['newNonceAuthority'];\n};\n\nexport function getAuthorizeNonceAccountInstruction<\n TAccountNonceAccount extends InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: AuthorizeNonceAccountInput<TAccountNonceAccount, TAccountNonceAuthority>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): AuthorizeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true },\n nonceAuthority: { value: input.nonceAuthority ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [\n getAccountMeta('nonceAccount', accounts.nonceAccount),\n getAccountMeta('nonceAuthority', accounts.nonceAuthority),\n ],\n data: getAuthorizeNonceAccountInstructionDataEncoder().encode(args as AuthorizeNonceAccountInstructionDataArgs),\n programAddress,\n } as AuthorizeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n >);\n}\n\nexport type ParsedAuthorizeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n nonceAccount: TAccountMetas[0];\n nonceAuthority: TAccountMetas[1];\n };\n data: AuthorizeNonceAccountInstructionData;\n};\n\nexport function parseAuthorizeNonceAccountInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedAuthorizeNonceAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { nonceAccount: getNextAccount(), nonceAuthority: getNextAccount() },\n data: getAuthorizeNonceAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n BASE_ACCOUNT_SIZE,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type InstructionWithByteDelta,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const CREATE_ACCOUNT_DISCRIMINATOR = 0;\n\nexport function getCreateAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(CREATE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type CreateAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountPayer extends string | AccountMeta<string> = string,\n TAccountNewAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountPayer extends string\n ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer>\n : TAccountPayer,\n TAccountNewAccount extends string\n ? WritableSignerAccount<TAccountNewAccount> & AccountSignerMeta<TAccountNewAccount>\n : TAccountNewAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type CreateAccountInstructionData = {\n discriminator: number;\n lamports: bigint;\n space: bigint;\n programAddress: Address;\n};\n\nexport type CreateAccountInstructionDataArgs = {\n lamports: number | bigint;\n space: number | bigint;\n programAddress: Address | HasAddress;\n};\n\nexport function getCreateAccountInstructionDataEncoder(): FixedSizeEncoder<CreateAccountInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['lamports', getU64Encoder()],\n ['space', getU64Encoder()],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: CREATE_ACCOUNT_DISCRIMINATOR }),\n );\n}\n\nexport function getCreateAccountInstructionDataDecoder(): FixedSizeDecoder<CreateAccountInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['lamports', getU64Decoder()],\n ['space', getU64Decoder()],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getCreateAccountInstructionDataCodec(): FixedSizeCodec<\n CreateAccountInstructionDataArgs,\n CreateAccountInstructionData\n> {\n return combineCodec(getCreateAccountInstructionDataEncoder(), getCreateAccountInstructionDataDecoder());\n}\n\nexport type CreateAccountInput<\n TAccountPayer extends InstructionSignerInput = InstructionSignerInput,\n TAccountNewAccount extends InstructionSignerInput = InstructionSignerInput,\n> = {\n payer: TAccountPayer;\n newAccount: TAccountNewAccount;\n lamports: CreateAccountInstructionDataArgs['lamports'];\n space: CreateAccountInstructionDataArgs['space'];\n programAddress: CreateAccountInstructionDataArgs['programAddress'];\n};\n\nexport function getCreateAccountInstruction<\n TAccountPayer extends InstructionSignerInput,\n TAccountNewAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: CreateAccountInput<TAccountPayer, TAccountNewAccount>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): CreateAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>\n> &\n InstructionWithByteDelta {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n payer: { value: input.payer ?? null, isSigner: true, isWritable: true },\n newAccount: { value: input.newAccount ?? null, isSigner: true, isWritable: true },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Bytes created or reallocated by the instruction.\n const byteDelta: number = [Number(args.space) + BASE_ACCOUNT_SIZE].reduce((a, b) => a + b, 0);\n\n return Object.freeze({\n accounts: [getAccountMeta('payer', accounts.payer), getAccountMeta('newAccount', accounts.newAccount)],\n byteDelta,\n data: getCreateAccountInstructionDataEncoder().encode(args as CreateAccountInstructionDataArgs),\n programAddress,\n } as CreateAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>\n > &\n InstructionWithByteDelta);\n}\n\nexport type ParsedCreateAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n payer: TAccountMetas[0];\n newAccount: TAccountMetas[1];\n };\n data: CreateAccountInstructionData;\n};\n\nexport function parseCreateAccountInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedCreateAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { payer: getNextAccount(), newAccount: getNextAccount() },\n data: getCreateAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n BASE_ACCOUNT_SIZE,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type InstructionWithByteDelta,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const CREATE_ACCOUNT_ALLOW_PREFUND_DISCRIMINATOR = 13;\n\nexport function getCreateAccountAllowPrefundDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(CREATE_ACCOUNT_ALLOW_PREFUND_DISCRIMINATOR);\n}\n\nexport type CreateAccountAllowPrefundInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNewAccount extends string | AccountMeta<string> = string,\n TAccountPayer extends string | AccountMeta<string> | undefined = undefined,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNewAccount extends string\n ? WritableSignerAccount<TAccountNewAccount> & AccountSignerMeta<TAccountNewAccount>\n : TAccountNewAccount,\n ...(TAccountPayer extends undefined\n ? []\n : [\n TAccountPayer extends string\n ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer>\n : TAccountPayer,\n ]),\n ...TRemainingAccounts,\n ]\n >;\n\nexport type CreateAccountAllowPrefundInstructionData = {\n discriminator: number;\n lamports: bigint;\n space: bigint;\n programAddress: Address;\n};\n\nexport type CreateAccountAllowPrefundInstructionDataArgs = {\n lamports?: number | bigint;\n space: number | bigint;\n programAddress: Address | HasAddress;\n};\n\nexport function getCreateAccountAllowPrefundInstructionDataEncoder(): FixedSizeEncoder<CreateAccountAllowPrefundInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['lamports', getU64Encoder()],\n ['space', getU64Encoder()],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({\n ...value,\n discriminator: CREATE_ACCOUNT_ALLOW_PREFUND_DISCRIMINATOR,\n lamports: value.lamports ?? 0,\n }),\n );\n}\n\nexport function getCreateAccountAllowPrefundInstructionDataDecoder(): FixedSizeDecoder<CreateAccountAllowPrefundInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['lamports', getU64Decoder()],\n ['space', getU64Decoder()],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getCreateAccountAllowPrefundInstructionDataCodec(): FixedSizeCodec<\n CreateAccountAllowPrefundInstructionDataArgs,\n CreateAccountAllowPrefundInstructionData\n> {\n return combineCodec(\n getCreateAccountAllowPrefundInstructionDataEncoder(),\n getCreateAccountAllowPrefundInstructionDataDecoder(),\n );\n}\n\nexport type CreateAccountAllowPrefundInput<\n TAccountNewAccount extends InstructionSignerInput = InstructionSignerInput,\n TAccountPayer extends InstructionSignerInput = InstructionSignerInput,\n> = {\n newAccount: TAccountNewAccount;\n payer?: TAccountPayer;\n lamports?: CreateAccountAllowPrefundInstructionDataArgs['lamports'];\n space: CreateAccountAllowPrefundInstructionDataArgs['space'];\n programAddress: CreateAccountAllowPrefundInstructionDataArgs['programAddress'];\n};\n\nexport function getCreateAccountAllowPrefundInstruction<\n TAccountNewAccount extends InstructionSignerInput,\n TAccountPayer extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: CreateAccountAllowPrefundInput<TAccountNewAccount, TAccountPayer>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): CreateAccountAllowPrefundInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>\n> &\n InstructionWithByteDelta {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n newAccount: { value: input.newAccount ?? null, isSigner: true, isWritable: true },\n payer: { value: input.payer ?? null, isSigner: true, isWritable: true },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Bytes created or reallocated by the instruction.\n const byteDelta: number = [Number(args.space) + BASE_ACCOUNT_SIZE].reduce((a, b) => a + b, 0);\n\n return Object.freeze({\n accounts: [getAccountMeta('newAccount', accounts.newAccount), getAccountMeta('payer', accounts.payer)].filter(\n <T>(x: T | undefined): x is T => x !== undefined,\n ),\n byteDelta,\n data: getCreateAccountAllowPrefundInstructionDataEncoder().encode(\n args as CreateAccountAllowPrefundInstructionDataArgs,\n ),\n programAddress,\n } as CreateAccountAllowPrefundInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>\n > &\n InstructionWithByteDelta);\n}\n\nexport type ParsedCreateAccountAllowPrefundInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n newAccount: TAccountMetas[0];\n payer?: TAccountMetas[1] | undefined;\n };\n data: CreateAccountAllowPrefundInstructionData;\n};\n\nexport function parseCreateAccountAllowPrefundInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedCreateAccountAllowPrefundInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 1) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 1,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n let optionalAccountsRemaining = instruction.accounts.length - 1;\n const getNextOptionalAccount = () => {\n if (optionalAccountsRemaining === 0) return undefined;\n optionalAccountsRemaining -= 1;\n return getNextAccount();\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { newAccount: getNextAccount(), payer: getNextOptionalAccount() },\n data: getCreateAccountAllowPrefundInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const CREATE_ACCOUNT_WITH_SEED_DISCRIMINATOR = 3;\n\nexport function getCreateAccountWithSeedDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(CREATE_ACCOUNT_WITH_SEED_DISCRIMINATOR);\n}\n\nexport type CreateAccountWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountPayer extends string | AccountMeta<string> = string,\n TAccountNewAccount extends string | AccountMeta<string> = string,\n TAccountBaseAccount extends string | AccountMeta<string> | undefined = undefined,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountPayer extends string\n ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer>\n : TAccountPayer,\n TAccountNewAccount extends string ? WritableAccount<TAccountNewAccount> : TAccountNewAccount,\n ...(TAccountBaseAccount extends undefined\n ? []\n : [\n TAccountBaseAccount extends string\n ? ReadonlySignerAccount<TAccountBaseAccount> & AccountSignerMeta<TAccountBaseAccount>\n : TAccountBaseAccount,\n ]),\n ...TRemainingAccounts,\n ]\n >;\n\nexport type CreateAccountWithSeedInstructionData = {\n discriminator: number;\n base: Address;\n seed: string;\n amount: bigint;\n space: bigint;\n programAddress: Address;\n};\n\nexport type CreateAccountWithSeedInstructionDataArgs = {\n base: Address | HasAddress;\n seed: string;\n amount: number | bigint;\n space: number | bigint;\n programAddress: Address | HasAddress;\n};\n\nexport function getCreateAccountWithSeedInstructionDataEncoder(): Encoder<CreateAccountWithSeedInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['base', getAddressEncoder()],\n ['seed', addEncoderSizePrefix(getUtf8Encoder(), getU64Encoder())],\n ['amount', getU64Encoder()],\n ['space', getU64Encoder()],\n ['programAddress', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: CREATE_ACCOUNT_WITH_SEED_DISCRIMINATOR }),\n );\n}\n\nexport function getCreateAccountWithSeedInstructionDataDecoder(): Decoder<CreateAccountWithSeedInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['base', getAddressDecoder()],\n ['seed', addDecoderSizePrefix(getUtf8Decoder(), getU64Decoder())],\n ['amount', getU64Decoder()],\n ['space', getU64Decoder()],\n ['programAddress', getAddressDecoder()],\n ]);\n}\n\nexport function getCreateAccountWithSeedInstructionDataCodec(): Codec<\n CreateAccountWithSeedInstructionDataArgs,\n CreateAccountWithSeedInstructionData\n> {\n return combineCodec(\n getCreateAccountWithSeedInstructionDataEncoder(),\n getCreateAccountWithSeedInstructionDataDecoder(),\n );\n}\n\nexport type CreateAccountWithSeedInput<\n TAccountPayer extends InstructionSignerInput = InstructionSignerInput,\n TAccountNewAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput = InstructionSignerInput,\n> = {\n payer: TAccountPayer;\n newAccount: TAccountNewAccount;\n baseAccount?: TAccountBaseAccount;\n base: CreateAccountWithSeedInstructionDataArgs['base'];\n seed: CreateAccountWithSeedInstructionDataArgs['seed'];\n amount: CreateAccountWithSeedInstructionDataArgs['amount'];\n space: CreateAccountWithSeedInstructionDataArgs['space'];\n programAddress: CreateAccountWithSeedInstructionDataArgs['programAddress'];\n};\n\nexport function getCreateAccountWithSeedInstruction<\n TAccountPayer extends InstructionSignerInput,\n TAccountNewAccount extends InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: CreateAccountWithSeedInput<TAccountPayer, TAccountNewAccount, TAccountBaseAccount>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): CreateAccountWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n payer: { value: input.payer ?? null, isSigner: true, isWritable: true },\n newAccount: { value: input.newAccount ?? null, isSigner: false, isWritable: true },\n baseAccount: { value: input.baseAccount ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [\n getAccountMeta('payer', accounts.payer),\n getAccountMeta('newAccount', accounts.newAccount),\n getAccountMeta('baseAccount', accounts.baseAccount),\n ].filter(<T>(x: T | undefined): x is T => x !== undefined),\n data: getCreateAccountWithSeedInstructionDataEncoder().encode(args as CreateAccountWithSeedInstructionDataArgs),\n programAddress,\n } as CreateAccountWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountPayer, InstructionAccountInputAddress<TAccountPayer>>,\n ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>\n >);\n}\n\nexport type ParsedCreateAccountWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n payer: TAccountMetas[0];\n newAccount: TAccountMetas[1];\n baseAccount?: TAccountMetas[2] | undefined;\n };\n data: CreateAccountWithSeedInstructionData;\n};\n\nexport function parseCreateAccountWithSeedInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedCreateAccountWithSeedInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n let optionalAccountsRemaining = instruction.accounts.length - 2;\n const getNextOptionalAccount = () => {\n if (optionalAccountsRemaining === 0) return undefined;\n optionalAccountsRemaining -= 1;\n return getNextAccount();\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { payer: getNextAccount(), newAccount: getNextAccount(), baseAccount: getNextOptionalAccount() },\n data: getCreateAccountWithSeedInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const INITIALIZE_NONCE_ACCOUNT_DISCRIMINATOR = 6;\n\nexport function getInitializeNonceAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(INITIALIZE_NONCE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type InitializeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNonceAccount extends string | AccountMeta<string> = string,\n TAccountRecentBlockhashesSysvar extends string | AccountMeta<string> =\n 'SysvarRecentB1ockHashes11111111111111111111',\n TAccountRentSysvar extends string | AccountMeta<string> = 'SysvarRent111111111111111111111111111111111',\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNonceAccount extends string ? WritableAccount<TAccountNonceAccount> : TAccountNonceAccount,\n TAccountRecentBlockhashesSysvar extends string\n ? ReadonlyAccount<TAccountRecentBlockhashesSysvar>\n : TAccountRecentBlockhashesSysvar,\n TAccountRentSysvar extends string ? ReadonlyAccount<TAccountRentSysvar> : TAccountRentSysvar,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type InitializeNonceAccountInstructionData = { discriminator: number; nonceAuthority: Address };\n\nexport type InitializeNonceAccountInstructionDataArgs = { nonceAuthority: Address | HasAddress };\n\nexport function getInitializeNonceAccountInstructionDataEncoder(): FixedSizeEncoder<InitializeNonceAccountInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['nonceAuthority', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: INITIALIZE_NONCE_ACCOUNT_DISCRIMINATOR }),\n );\n}\n\nexport function getInitializeNonceAccountInstructionDataDecoder(): FixedSizeDecoder<InitializeNonceAccountInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['nonceAuthority', getAddressDecoder()],\n ]);\n}\n\nexport function getInitializeNonceAccountInstructionDataCodec(): FixedSizeCodec<\n InitializeNonceAccountInstructionDataArgs,\n InitializeNonceAccountInstructionData\n> {\n return combineCodec(\n getInitializeNonceAccountInstructionDataEncoder(),\n getInitializeNonceAccountInstructionDataDecoder(),\n );\n}\n\nexport type InitializeNonceAccountInput<\n TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput = InstructionAccountInput,\n TAccountRentSysvar extends InstructionAccountInput = InstructionAccountInput,\n> = {\n nonceAccount: TAccountNonceAccount;\n recentBlockhashesSysvar?: TAccountRecentBlockhashesSysvar;\n rentSysvar?: TAccountRentSysvar;\n nonceAuthority: InitializeNonceAccountInstructionDataArgs['nonceAuthority'];\n};\n\nexport function getInitializeNonceAccountInstruction<\n TAccountNonceAccount extends InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput,\n TAccountRentSysvar extends InstructionAccountInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: InitializeNonceAccountInput<TAccountNonceAccount, TAccountRecentBlockhashesSysvar, TAccountRentSysvar>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): InitializeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountRentSysvar, InstructionAccountInputAddress<TAccountRentSysvar>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true },\n recentBlockhashesSysvar: { value: input.recentBlockhashesSysvar ?? null, isSigner: false, isWritable: false },\n rentSysvar: { value: input.rentSysvar ?? null, isSigner: false, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.recentBlockhashesSysvar.value) {\n accounts.recentBlockhashesSysvar.value =\n 'SysvarRecentB1ockHashes11111111111111111111' as Address<'SysvarRecentB1ockHashes11111111111111111111'>;\n }\n if (!accounts.rentSysvar.value) {\n accounts.rentSysvar.value =\n 'SysvarRent111111111111111111111111111111111' as Address<'SysvarRent111111111111111111111111111111111'>;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('nonceAccount', accounts.nonceAccount),\n getAccountMeta('recentBlockhashesSysvar', accounts.recentBlockhashesSysvar),\n getAccountMeta('rentSysvar', accounts.rentSysvar),\n ],\n data: getInitializeNonceAccountInstructionDataEncoder().encode(\n args as InitializeNonceAccountInstructionDataArgs,\n ),\n programAddress,\n } as InitializeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountRentSysvar, InstructionAccountInputAddress<TAccountRentSysvar>>\n >);\n}\n\nexport type ParsedInitializeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n nonceAccount: TAccountMetas[0];\n recentBlockhashesSysvar: TAccountMetas[1];\n rentSysvar: TAccountMetas[2];\n };\n data: InitializeNonceAccountInstructionData;\n};\n\nexport function parseInitializeNonceAccountInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedInitializeNonceAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 3) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 3,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n nonceAccount: getNextAccount(),\n recentBlockhashesSysvar: getNextAccount(),\n rentSysvar: getNextAccount(),\n },\n data: getInitializeNonceAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableAccount,\n type WritableSignerAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const TRANSFER_SOL_DISCRIMINATOR = 2;\n\nexport function getTransferSolDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(TRANSFER_SOL_DISCRIMINATOR);\n}\n\nexport type TransferSolInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountSource extends string | AccountMeta<string> = string,\n TAccountDestination extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountSource extends string\n ? WritableSignerAccount<TAccountSource> & AccountSignerMeta<TAccountSource>\n : TAccountSource,\n TAccountDestination extends string ? WritableAccount<TAccountDestination> : TAccountDestination,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type TransferSolInstructionData = { discriminator: number; amount: bigint };\n\nexport type TransferSolInstructionDataArgs = { amount: number | bigint };\n\nexport function getTransferSolInstructionDataEncoder(): FixedSizeEncoder<TransferSolInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['amount', getU64Encoder()],\n ]),\n value => ({ ...value, discriminator: TRANSFER_SOL_DISCRIMINATOR }),\n );\n}\n\nexport function getTransferSolInstructionDataDecoder(): FixedSizeDecoder<TransferSolInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['amount', getU64Decoder()],\n ]);\n}\n\nexport function getTransferSolInstructionDataCodec(): FixedSizeCodec<\n TransferSolInstructionDataArgs,\n TransferSolInstructionData\n> {\n return combineCodec(getTransferSolInstructionDataEncoder(), getTransferSolInstructionDataDecoder());\n}\n\nexport type TransferSolInput<\n TAccountSource extends InstructionSignerInput = InstructionSignerInput,\n TAccountDestination extends InstructionAccountInput = InstructionAccountInput,\n> = {\n source: TAccountSource;\n destination: TAccountDestination;\n amount: TransferSolInstructionDataArgs['amount'];\n};\n\nexport function getTransferSolInstruction<\n TAccountSource extends InstructionSignerInput,\n TAccountDestination extends InstructionAccountInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: TransferSolInput<TAccountSource, TAccountDestination>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): TransferSolInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSource, InstructionAccountInputAddress<TAccountSource>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n source: { value: input.source ?? null, isSigner: true, isWritable: true },\n destination: { value: input.destination ?? null, isSigner: false, isWritable: true },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [getAccountMeta('source', accounts.source), getAccountMeta('destination', accounts.destination)],\n data: getTransferSolInstructionDataEncoder().encode(args as TransferSolInstructionDataArgs),\n programAddress,\n } as TransferSolInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSource, InstructionAccountInputAddress<TAccountSource>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>\n >);\n}\n\nexport type ParsedTransferSolInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n source: TAccountMetas[0];\n destination: TAccountMetas[1];\n };\n data: TransferSolInstructionData;\n};\n\nexport function parseTransferSolInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedTransferSolInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 2) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 2,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { source: getNextAccount(), destination: getNextAccount() },\n data: getTransferSolInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n addDecoderSizePrefix,\n addEncoderSizePrefix,\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getUtf8Decoder,\n getUtf8Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type HasAddress,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const TRANSFER_SOL_WITH_SEED_DISCRIMINATOR = 11;\n\nexport function getTransferSolWithSeedDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(TRANSFER_SOL_WITH_SEED_DISCRIMINATOR);\n}\n\nexport type TransferSolWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountSource extends string | AccountMeta<string> = string,\n TAccountBaseAccount extends string | AccountMeta<string> = string,\n TAccountDestination extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountSource extends string ? WritableAccount<TAccountSource> : TAccountSource,\n TAccountBaseAccount extends string\n ? ReadonlySignerAccount<TAccountBaseAccount> & AccountSignerMeta<TAccountBaseAccount>\n : TAccountBaseAccount,\n TAccountDestination extends string ? WritableAccount<TAccountDestination> : TAccountDestination,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type TransferSolWithSeedInstructionData = {\n discriminator: number;\n amount: bigint;\n fromSeed: string;\n fromOwner: Address;\n};\n\nexport type TransferSolWithSeedInstructionDataArgs = {\n amount: number | bigint;\n fromSeed: string;\n fromOwner: Address | HasAddress;\n};\n\nexport function getTransferSolWithSeedInstructionDataEncoder(): Encoder<TransferSolWithSeedInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['amount', getU64Encoder()],\n ['fromSeed', addEncoderSizePrefix(getUtf8Encoder(), getU64Encoder())],\n ['fromOwner', getAddressEncoder()],\n ]),\n value => ({ ...value, discriminator: TRANSFER_SOL_WITH_SEED_DISCRIMINATOR }),\n );\n}\n\nexport function getTransferSolWithSeedInstructionDataDecoder(): Decoder<TransferSolWithSeedInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['amount', getU64Decoder()],\n ['fromSeed', addDecoderSizePrefix(getUtf8Decoder(), getU64Decoder())],\n ['fromOwner', getAddressDecoder()],\n ]);\n}\n\nexport function getTransferSolWithSeedInstructionDataCodec(): Codec<\n TransferSolWithSeedInstructionDataArgs,\n TransferSolWithSeedInstructionData\n> {\n return combineCodec(getTransferSolWithSeedInstructionDataEncoder(), getTransferSolWithSeedInstructionDataDecoder());\n}\n\nexport type TransferSolWithSeedInput<\n TAccountSource extends InstructionAccountInput = InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput = InstructionSignerInput,\n TAccountDestination extends InstructionAccountInput = InstructionAccountInput,\n> = {\n source: TAccountSource;\n baseAccount: TAccountBaseAccount;\n destination: TAccountDestination;\n amount: TransferSolWithSeedInstructionDataArgs['amount'];\n fromSeed: TransferSolWithSeedInstructionDataArgs['fromSeed'];\n fromOwner: TransferSolWithSeedInstructionDataArgs['fromOwner'];\n};\n\nexport function getTransferSolWithSeedInstruction<\n TAccountSource extends InstructionAccountInput,\n TAccountBaseAccount extends InstructionSignerInput,\n TAccountDestination extends InstructionAccountInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: TransferSolWithSeedInput<TAccountSource, TAccountBaseAccount, TAccountDestination>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): TransferSolWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSource, InstructionAccountInputAddress<TAccountSource>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n source: { value: input.source ?? null, isSigner: false, isWritable: true },\n baseAccount: { value: input.baseAccount ?? null, isSigner: true, isWritable: false },\n destination: { value: input.destination ?? null, isSigner: false, isWritable: true },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n return Object.freeze({\n accounts: [\n getAccountMeta('source', accounts.source),\n getAccountMeta('baseAccount', accounts.baseAccount),\n getAccountMeta('destination', accounts.destination),\n ],\n data: getTransferSolWithSeedInstructionDataEncoder().encode(args as TransferSolWithSeedInstructionDataArgs),\n programAddress,\n } as TransferSolWithSeedInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountSource, InstructionAccountInputAddress<TAccountSource>>,\n ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>,\n ResolvedInstructionAccountMeta<TAccountDestination, InstructionAccountInputAddress<TAccountDestination>>\n >);\n}\n\nexport type ParsedTransferSolWithSeedInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n source: TAccountMetas[0];\n baseAccount: TAccountMetas[1];\n destination: TAccountMetas[2];\n };\n data: TransferSolWithSeedInstructionData;\n};\n\nexport function parseTransferSolWithSeedInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedTransferSolWithSeedInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 3) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 3,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { source: getNextAccount(), baseAccount: getNextAccount(), destination: getNextAccount() },\n data: getTransferSolWithSeedInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const UPGRADE_NONCE_ACCOUNT_DISCRIMINATOR = 12;\n\nexport function getUpgradeNonceAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(UPGRADE_NONCE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type UpgradeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNonceAccount extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNonceAccount extends string ? WritableAccount<TAccountNonceAccount> : TAccountNonceAccount,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type UpgradeNonceAccountInstructionData = { discriminator: number };\n\nexport type UpgradeNonceAccountInstructionDataArgs = {};\n\nexport function getUpgradeNonceAccountInstructionDataEncoder(): FixedSizeEncoder<UpgradeNonceAccountInstructionDataArgs> {\n return transformEncoder(getStructEncoder([['discriminator', getU32Encoder()]]), value => ({\n ...value,\n discriminator: UPGRADE_NONCE_ACCOUNT_DISCRIMINATOR,\n }));\n}\n\nexport function getUpgradeNonceAccountInstructionDataDecoder(): FixedSizeDecoder<UpgradeNonceAccountInstructionData> {\n return getStructDecoder([['discriminator', getU32Decoder()]]);\n}\n\nexport function getUpgradeNonceAccountInstructionDataCodec(): FixedSizeCodec<\n UpgradeNonceAccountInstructionDataArgs,\n UpgradeNonceAccountInstructionData\n> {\n return combineCodec(getUpgradeNonceAccountInstructionDataEncoder(), getUpgradeNonceAccountInstructionDataDecoder());\n}\n\nexport type UpgradeNonceAccountInput<TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput> = {\n nonceAccount: TAccountNonceAccount;\n};\n\nexport function getUpgradeNonceAccountInstruction<\n TAccountNonceAccount extends InstructionAccountInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: UpgradeNonceAccountInput<TAccountNonceAccount>,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): UpgradeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = { nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true } };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n return Object.freeze({\n accounts: [getAccountMeta('nonceAccount', accounts.nonceAccount)],\n data: getUpgradeNonceAccountInstructionDataEncoder().encode({}),\n programAddress,\n } as UpgradeNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>\n >);\n}\n\nexport type ParsedUpgradeNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n nonceAccount: TAccountMetas[0];\n };\n data: UpgradeNonceAccountInstructionData;\n};\n\nexport function parseUpgradeNonceAccountInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedUpgradeNonceAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 1) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 1,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: { nonceAccount: getNextAccount() },\n data: getUpgradeNonceAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type WritableAccount,\n} from '@solana/kit';\nimport {\n getAccountMetaFactory,\n type InstructionAccountInput,\n type InstructionAccountInputAddress,\n type InstructionSignerInput,\n type ResolvedInstructionAccount,\n type ResolvedInstructionAccountMeta,\n} from '@solana/kit/program-client-core';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\nexport const WITHDRAW_NONCE_ACCOUNT_DISCRIMINATOR = 5;\n\nexport function getWithdrawNonceAccountDiscriminatorBytes(): ReadonlyUint8Array {\n return getU32Encoder().encode(WITHDRAW_NONCE_ACCOUNT_DISCRIMINATOR);\n}\n\nexport type WithdrawNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountNonceAccount extends string | AccountMeta<string> = string,\n TAccountRecipientAccount extends string | AccountMeta<string> = string,\n TAccountRecentBlockhashesSysvar extends string | AccountMeta<string> =\n 'SysvarRecentB1ockHashes11111111111111111111',\n TAccountRentSysvar extends string | AccountMeta<string> = 'SysvarRent111111111111111111111111111111111',\n TAccountNonceAuthority extends string | AccountMeta<string> = string,\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountNonceAccount extends string ? WritableAccount<TAccountNonceAccount> : TAccountNonceAccount,\n TAccountRecipientAccount extends string\n ? WritableAccount<TAccountRecipientAccount>\n : TAccountRecipientAccount,\n TAccountRecentBlockhashesSysvar extends string\n ? ReadonlyAccount<TAccountRecentBlockhashesSysvar>\n : TAccountRecentBlockhashesSysvar,\n TAccountRentSysvar extends string ? ReadonlyAccount<TAccountRentSysvar> : TAccountRentSysvar,\n TAccountNonceAuthority extends string\n ? ReadonlySignerAccount<TAccountNonceAuthority> & AccountSignerMeta<TAccountNonceAuthority>\n : TAccountNonceAuthority,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type WithdrawNonceAccountInstructionData = { discriminator: number; withdrawAmount: bigint };\n\nexport type WithdrawNonceAccountInstructionDataArgs = { withdrawAmount: number | bigint };\n\nexport function getWithdrawNonceAccountInstructionDataEncoder(): FixedSizeEncoder<WithdrawNonceAccountInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', getU32Encoder()],\n ['withdrawAmount', getU64Encoder()],\n ]),\n value => ({ ...value, discriminator: WITHDRAW_NONCE_ACCOUNT_DISCRIMINATOR }),\n );\n}\n\nexport function getWithdrawNonceAccountInstructionDataDecoder(): FixedSizeDecoder<WithdrawNonceAccountInstructionData> {\n return getStructDecoder([\n ['discriminator', getU32Decoder()],\n ['withdrawAmount', getU64Decoder()],\n ]);\n}\n\nexport function getWithdrawNonceAccountInstructionDataCodec(): FixedSizeCodec<\n WithdrawNonceAccountInstructionDataArgs,\n WithdrawNonceAccountInstructionData\n> {\n return combineCodec(\n getWithdrawNonceAccountInstructionDataEncoder(),\n getWithdrawNonceAccountInstructionDataDecoder(),\n );\n}\n\nexport type WithdrawNonceAccountInput<\n TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountRecipientAccount extends InstructionAccountInput = InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput = InstructionAccountInput,\n TAccountRentSysvar extends InstructionAccountInput = InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput = InstructionSignerInput,\n> = {\n nonceAccount: TAccountNonceAccount;\n recipientAccount: TAccountRecipientAccount;\n recentBlockhashesSysvar?: TAccountRecentBlockhashesSysvar;\n rentSysvar?: TAccountRentSysvar;\n nonceAuthority: TAccountNonceAuthority;\n withdrawAmount: WithdrawNonceAccountInstructionDataArgs['withdrawAmount'];\n};\n\nexport function getWithdrawNonceAccountInstruction<\n TAccountNonceAccount extends InstructionAccountInput,\n TAccountRecipientAccount extends InstructionAccountInput,\n TAccountRecentBlockhashesSysvar extends InstructionAccountInput,\n TAccountRentSysvar extends InstructionAccountInput,\n TAccountNonceAuthority extends InstructionSignerInput,\n TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,\n>(\n input: WithdrawNonceAccountInput<\n TAccountNonceAccount,\n TAccountRecipientAccount,\n TAccountRecentBlockhashesSysvar,\n TAccountRentSysvar,\n TAccountNonceAuthority\n >,\n config?: { programAddress?: TProgramAddress | { readonly address: TProgramAddress } },\n): WithdrawNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<TAccountRecipientAccount, InstructionAccountInputAddress<TAccountRecipientAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountRentSysvar, InstructionAccountInputAddress<TAccountRentSysvar>>,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n> {\n // Program address.\n const programAddressInput = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n\n // Account meta helper.\n const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');\n\n // Original accounts.\n const originalAccounts = {\n nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true },\n recipientAccount: { value: input.recipientAccount ?? null, isSigner: false, isWritable: true },\n recentBlockhashesSysvar: { value: input.recentBlockhashesSysvar ?? null, isSigner: false, isWritable: false },\n rentSysvar: { value: input.rentSysvar ?? null, isSigner: false, isWritable: false },\n nonceAuthority: { value: input.nonceAuthority ?? null, isSigner: true, isWritable: false },\n };\n const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.recentBlockhashesSysvar.value) {\n accounts.recentBlockhashesSysvar.value =\n 'SysvarRecentB1ockHashes11111111111111111111' as Address<'SysvarRecentB1ockHashes11111111111111111111'>;\n }\n if (!accounts.rentSysvar.value) {\n accounts.rentSysvar.value =\n 'SysvarRent111111111111111111111111111111111' as Address<'SysvarRent111111111111111111111111111111111'>;\n }\n\n return Object.freeze({\n accounts: [\n getAccountMeta('nonceAccount', accounts.nonceAccount),\n getAccountMeta('recipientAccount', accounts.recipientAccount),\n getAccountMeta('recentBlockhashesSysvar', accounts.recentBlockhashesSysvar),\n getAccountMeta('rentSysvar', accounts.rentSysvar),\n getAccountMeta('nonceAuthority', accounts.nonceAuthority),\n ],\n data: getWithdrawNonceAccountInstructionDataEncoder().encode(args as WithdrawNonceAccountInstructionDataArgs),\n programAddress,\n } as WithdrawNonceAccountInstruction<\n TProgramAddress,\n ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,\n ResolvedInstructionAccountMeta<\n TAccountRecipientAccount,\n InstructionAccountInputAddress<TAccountRecipientAccount>\n >,\n ResolvedInstructionAccountMeta<\n TAccountRecentBlockhashesSysvar,\n InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>\n >,\n ResolvedInstructionAccountMeta<TAccountRentSysvar, InstructionAccountInputAddress<TAccountRentSysvar>>,\n ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>\n >);\n}\n\nexport type ParsedWithdrawNonceAccountInstruction<\n TProgram extends string = typeof SYSTEM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n nonceAccount: TAccountMetas[0];\n recipientAccount: TAccountMetas[1];\n recentBlockhashesSysvar: TAccountMetas[2];\n rentSysvar: TAccountMetas[3];\n nonceAuthority: TAccountMetas[4];\n };\n data: WithdrawNonceAccountInstructionData;\n};\n\nexport function parseWithdrawNonceAccountInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedWithdrawNonceAccountInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 5) {\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 5,\n });\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n nonceAccount: getNextAccount(),\n recipientAccount: getNextAccount(),\n recentBlockhashesSysvar: getNextAccount(),\n rentSysvar: getNextAccount(),\n nonceAuthority: getNextAccount(),\n },\n data: getWithdrawNonceAccountInstructionDataDecoder().decode(instruction.data),\n };\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n assertIsInstructionWithAccounts,\n containsBytes,\n extendClient,\n getU32Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION,\n SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE,\n SolanaError,\n type Address,\n type ClientWithPayer,\n type ClientWithRpc,\n type ClientWithTransactionPlanning,\n type ClientWithTransactionSending,\n type ExtendedClient,\n type GetAccountInfoApi,\n type GetMultipleAccountsApi,\n type HasAddress,\n type Instruction,\n type InstructionWithData,\n type ReadonlyUint8Array,\n} from '@solana/kit';\nimport {\n addSelfFetchFunctions,\n addSelfPlanAndSendFunctions,\n type SelfFetchFunctions,\n type SelfPlanAndSendFunctions,\n} from '@solana/kit/program-client-core';\nimport { getNonceCodec, type Nonce, type NonceArgs } from '../accounts';\nimport {\n getAdvanceNonceAccountInstruction,\n getAllocateInstruction,\n getAllocateWithSeedInstruction,\n getAssignInstruction,\n getAssignWithSeedInstruction,\n getAuthorizeNonceAccountInstruction,\n getCreateAccountAllowPrefundInstruction,\n getCreateAccountInstruction,\n getCreateAccountWithSeedInstruction,\n getInitializeNonceAccountInstruction,\n getTransferSolInstruction,\n getTransferSolWithSeedInstruction,\n getUpgradeNonceAccountInstruction,\n getWithdrawNonceAccountInstruction,\n parseAdvanceNonceAccountInstruction,\n parseAllocateInstruction,\n parseAllocateWithSeedInstruction,\n parseAssignInstruction,\n parseAssignWithSeedInstruction,\n parseAuthorizeNonceAccountInstruction,\n parseCreateAccountAllowPrefundInstruction,\n parseCreateAccountInstruction,\n parseCreateAccountWithSeedInstruction,\n parseInitializeNonceAccountInstruction,\n parseTransferSolInstruction,\n parseTransferSolWithSeedInstruction,\n parseUpgradeNonceAccountInstruction,\n parseWithdrawNonceAccountInstruction,\n type AdvanceNonceAccountInput,\n type AllocateInput,\n type AllocateWithSeedInput,\n type AssignInput,\n type AssignWithSeedInput,\n type AuthorizeNonceAccountInput,\n type CreateAccountAllowPrefundInput,\n type CreateAccountInput,\n type CreateAccountWithSeedInput,\n type InitializeNonceAccountInput,\n type ParsedAdvanceNonceAccountInstruction,\n type ParsedAllocateInstruction,\n type ParsedAllocateWithSeedInstruction,\n type ParsedAssignInstruction,\n type ParsedAssignWithSeedInstruction,\n type ParsedAuthorizeNonceAccountInstruction,\n type ParsedCreateAccountAllowPrefundInstruction,\n type ParsedCreateAccountInstruction,\n type ParsedCreateAccountWithSeedInstruction,\n type ParsedInitializeNonceAccountInstruction,\n type ParsedTransferSolInstruction,\n type ParsedTransferSolWithSeedInstruction,\n type ParsedUpgradeNonceAccountInstruction,\n type ParsedWithdrawNonceAccountInstruction,\n type TransferSolInput,\n type TransferSolWithSeedInput,\n type UpgradeNonceAccountInput,\n type WithdrawNonceAccountInput,\n} from '../instructions';\n\nexport const SYSTEM_PROGRAM_ADDRESS = '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;\n\nexport enum SystemAccount {\n Nonce,\n}\n\nexport enum SystemInstruction {\n CreateAccount,\n Assign,\n TransferSol,\n CreateAccountWithSeed,\n AdvanceNonceAccount,\n WithdrawNonceAccount,\n InitializeNonceAccount,\n AuthorizeNonceAccount,\n Allocate,\n AllocateWithSeed,\n AssignWithSeed,\n TransferSolWithSeed,\n UpgradeNonceAccount,\n CreateAccountAllowPrefund,\n}\n\nexport function identifySystemInstruction(\n instruction: { data: ReadonlyUint8Array } | ReadonlyUint8Array,\n): SystemInstruction {\n const data = 'data' in instruction ? instruction.data : instruction;\n if (containsBytes(data, getU32Encoder().encode(0), 0)) {\n return SystemInstruction.CreateAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(1), 0)) {\n return SystemInstruction.Assign;\n }\n if (containsBytes(data, getU32Encoder().encode(2), 0)) {\n return SystemInstruction.TransferSol;\n }\n if (containsBytes(data, getU32Encoder().encode(3), 0)) {\n return SystemInstruction.CreateAccountWithSeed;\n }\n if (containsBytes(data, getU32Encoder().encode(4), 0)) {\n return SystemInstruction.AdvanceNonceAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(5), 0)) {\n return SystemInstruction.WithdrawNonceAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(6), 0)) {\n return SystemInstruction.InitializeNonceAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(7), 0)) {\n return SystemInstruction.AuthorizeNonceAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(8), 0)) {\n return SystemInstruction.Allocate;\n }\n if (containsBytes(data, getU32Encoder().encode(9), 0)) {\n return SystemInstruction.AllocateWithSeed;\n }\n if (containsBytes(data, getU32Encoder().encode(10), 0)) {\n return SystemInstruction.AssignWithSeed;\n }\n if (containsBytes(data, getU32Encoder().encode(11), 0)) {\n return SystemInstruction.TransferSolWithSeed;\n }\n if (containsBytes(data, getU32Encoder().encode(12), 0)) {\n return SystemInstruction.UpgradeNonceAccount;\n }\n if (containsBytes(data, getU32Encoder().encode(13), 0)) {\n return SystemInstruction.CreateAccountAllowPrefund;\n }\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION, {\n instructionData: data,\n programName: 'system',\n });\n}\n\nexport type ParsedSystemInstruction<TProgram extends string = '11111111111111111111111111111111'> =\n | ({ instructionType: SystemInstruction.CreateAccount } & ParsedCreateAccountInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.Assign } & ParsedAssignInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.TransferSol } & ParsedTransferSolInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.CreateAccountWithSeed } & ParsedCreateAccountWithSeedInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.AdvanceNonceAccount } & ParsedAdvanceNonceAccountInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.WithdrawNonceAccount } & ParsedWithdrawNonceAccountInstruction<TProgram>)\n | ({\n instructionType: SystemInstruction.InitializeNonceAccount;\n } & ParsedInitializeNonceAccountInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.AuthorizeNonceAccount } & ParsedAuthorizeNonceAccountInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.Allocate } & ParsedAllocateInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.AllocateWithSeed } & ParsedAllocateWithSeedInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.AssignWithSeed } & ParsedAssignWithSeedInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.TransferSolWithSeed } & ParsedTransferSolWithSeedInstruction<TProgram>)\n | ({ instructionType: SystemInstruction.UpgradeNonceAccount } & ParsedUpgradeNonceAccountInstruction<TProgram>)\n | ({\n instructionType: SystemInstruction.CreateAccountAllowPrefund;\n } & ParsedCreateAccountAllowPrefundInstruction<TProgram>);\n\nexport function parseSystemInstruction<TProgram extends string>(\n instruction: Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array>,\n): ParsedSystemInstruction<TProgram> {\n const instructionType = identifySystemInstruction(instruction);\n switch (instructionType) {\n case SystemInstruction.CreateAccount: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: SystemInstruction.CreateAccount, ...parseCreateAccountInstruction(instruction) };\n }\n case SystemInstruction.Assign: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: SystemInstruction.Assign, ...parseAssignInstruction(instruction) };\n }\n case SystemInstruction.TransferSol: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: SystemInstruction.TransferSol, ...parseTransferSolInstruction(instruction) };\n }\n case SystemInstruction.CreateAccountWithSeed: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.CreateAccountWithSeed,\n ...parseCreateAccountWithSeedInstruction(instruction),\n };\n }\n case SystemInstruction.AdvanceNonceAccount: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.AdvanceNonceAccount,\n ...parseAdvanceNonceAccountInstruction(instruction),\n };\n }\n case SystemInstruction.WithdrawNonceAccount: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.WithdrawNonceAccount,\n ...parseWithdrawNonceAccountInstruction(instruction),\n };\n }\n case SystemInstruction.InitializeNonceAccount: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.InitializeNonceAccount,\n ...parseInitializeNonceAccountInstruction(instruction),\n };\n }\n case SystemInstruction.AuthorizeNonceAccount: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.AuthorizeNonceAccount,\n ...parseAuthorizeNonceAccountInstruction(instruction),\n };\n }\n case SystemInstruction.Allocate: {\n assertIsInstructionWithAccounts(instruction);\n return { instructionType: SystemInstruction.Allocate, ...parseAllocateInstruction(instruction) };\n }\n case SystemInstruction.AllocateWithSeed: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.AllocateWithSeed,\n ...parseAllocateWithSeedInstruction(instruction),\n };\n }\n case SystemInstruction.AssignWithSeed: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.AssignWithSeed,\n ...parseAssignWithSeedInstruction(instruction),\n };\n }\n case SystemInstruction.TransferSolWithSeed: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.TransferSolWithSeed,\n ...parseTransferSolWithSeedInstruction(instruction),\n };\n }\n case SystemInstruction.UpgradeNonceAccount: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.UpgradeNonceAccount,\n ...parseUpgradeNonceAccountInstruction(instruction),\n };\n }\n case SystemInstruction.CreateAccountAllowPrefund: {\n assertIsInstructionWithAccounts(instruction);\n return {\n instructionType: SystemInstruction.CreateAccountAllowPrefund,\n ...parseCreateAccountAllowPrefundInstruction(instruction),\n };\n }\n default:\n throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE, {\n instructionType: instructionType as string,\n programName: 'system',\n });\n }\n}\n\nexport type SystemPlugin = {\n accounts: SystemPluginAccounts;\n instructions: SystemPluginInstructions;\n identifyInstruction: typeof identifySystemInstruction;\n parseInstruction: typeof parseSystemInstruction;\n};\n\nexport type SystemPluginAccounts = { nonce: ReturnType<typeof getNonceCodec> & SelfFetchFunctions<NonceArgs, Nonce> };\n\nexport type SystemPluginInstructions = {\n createAccount: (\n input: MakeOptional<CreateAccountInput, 'payer'>,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getCreateAccountInstruction> & SelfPlanAndSendFunctions;\n assign: (\n input: AssignInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getAssignInstruction> & SelfPlanAndSendFunctions;\n transferSol: (\n input: TransferSolInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getTransferSolInstruction> & SelfPlanAndSendFunctions;\n createAccountWithSeed: (\n input: MakeOptional<CreateAccountWithSeedInput, 'payer'>,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getCreateAccountWithSeedInstruction> & SelfPlanAndSendFunctions;\n advanceNonceAccount: (\n input: AdvanceNonceAccountInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getAdvanceNonceAccountInstruction> & SelfPlanAndSendFunctions;\n withdrawNonceAccount: (\n input: WithdrawNonceAccountInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getWithdrawNonceAccountInstruction> & SelfPlanAndSendFunctions;\n initializeNonceAccount: (\n input: InitializeNonceAccountInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getInitializeNonceAccountInstruction> & SelfPlanAndSendFunctions;\n authorizeNonceAccount: (\n input: AuthorizeNonceAccountInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getAuthorizeNonceAccountInstruction> & SelfPlanAndSendFunctions;\n allocate: (\n input: AllocateInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getAllocateInstruction> & SelfPlanAndSendFunctions;\n allocateWithSeed: (\n input: AllocateWithSeedInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getAllocateWithSeedInstruction> & SelfPlanAndSendFunctions;\n assignWithSeed: (\n input: AssignWithSeedInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getAssignWithSeedInstruction> & SelfPlanAndSendFunctions;\n transferSolWithSeed: (\n input: TransferSolWithSeedInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getTransferSolWithSeedInstruction> & SelfPlanAndSendFunctions;\n upgradeNonceAccount: (\n input: UpgradeNonceAccountInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getUpgradeNonceAccountInstruction> & SelfPlanAndSendFunctions;\n createAccountAllowPrefund: (\n input: CreateAccountAllowPrefundInput,\n config?: { programAddress?: Address | HasAddress },\n ) => ReturnType<typeof getCreateAccountAllowPrefundInstruction> & SelfPlanAndSendFunctions;\n};\n\nexport type SystemPluginRequirements = ClientWithRpc<GetAccountInfoApi & GetMultipleAccountsApi> &\n ClientWithPayer &\n ClientWithTransactionPlanning &\n ClientWithTransactionSending;\n\nexport function systemProgram(config: { programAddress?: Address | HasAddress } = {}) {\n return <T extends SystemPluginRequirements>(client: T): ExtendedClient<T, { system: SystemPlugin }> => {\n return extendClient(client, {\n system: <SystemPlugin>{\n accounts: { nonce: addSelfFetchFunctions(client, getNonceCodec()) },\n instructions: {\n createAccount: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getCreateAccountInstruction(\n { ...input, payer: input.payer ?? client.payer },\n { programAddress: instructionConfig?.programAddress ?? config.programAddress },\n ),\n ),\n assign: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getAssignInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n transferSol: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getTransferSolInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n createAccountWithSeed: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getCreateAccountWithSeedInstruction(\n { ...input, payer: input.payer ?? client.payer },\n { programAddress: instructionConfig?.programAddress ?? config.programAddress },\n ),\n ),\n advanceNonceAccount: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getAdvanceNonceAccountInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n withdrawNonceAccount: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getWithdrawNonceAccountInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n initializeNonceAccount: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getInitializeNonceAccountInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n authorizeNonceAccount: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getAuthorizeNonceAccountInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n allocate: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getAllocateInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n allocateWithSeed: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getAllocateWithSeedInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n assignWithSeed: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getAssignWithSeedInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n transferSolWithSeed: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getTransferSolWithSeedInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n upgradeNonceAccount: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getUpgradeNonceAccountInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n createAccountAllowPrefund: (input, instructionConfig) =>\n addSelfPlanAndSendFunctions(\n client,\n getCreateAccountAllowPrefundInstruction(input, {\n programAddress: instructionConfig?.programAddress ?? config.programAddress,\n }),\n ),\n },\n identifyInstruction: identifySystemInstruction,\n parseInstruction: parseSystemInstruction,\n },\n });\n };\n}\n\ntype MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n isProgramError,\n type Address,\n type HasAddress,\n type SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM,\n type SolanaError,\n} from '@solana/kit';\nimport { SYSTEM_PROGRAM_ADDRESS } from '../programs';\n\n/** AccountAlreadyInUse: an account with the same address already exists */\nexport const SYSTEM_ERROR__ACCOUNT_ALREADY_IN_USE = 0x0; // 0\n/** ResultWithNegativeLamports: account does not have enough SOL to perform the operation */\nexport const SYSTEM_ERROR__RESULT_WITH_NEGATIVE_LAMPORTS = 0x1; // 1\n/** InvalidProgramId: cannot assign account to this program id */\nexport const SYSTEM_ERROR__INVALID_PROGRAM_ID = 0x2; // 2\n/** InvalidAccountDataLength: cannot allocate account data of this length */\nexport const SYSTEM_ERROR__INVALID_ACCOUNT_DATA_LENGTH = 0x3; // 3\n/** MaxSeedLengthExceeded: length of requested seed is too long */\nexport const SYSTEM_ERROR__MAX_SEED_LENGTH_EXCEEDED = 0x4; // 4\n/** AddressWithSeedMismatch: provided address does not match addressed derived from seed */\nexport const SYSTEM_ERROR__ADDRESS_WITH_SEED_MISMATCH = 0x5; // 5\n/** NonceNoRecentBlockhashes: advancing stored nonce requires a populated RecentBlockhashes sysvar */\nexport const SYSTEM_ERROR__NONCE_NO_RECENT_BLOCKHASHES = 0x6; // 6\n/** NonceBlockhashNotExpired: stored nonce is still in recent_blockhashes */\nexport const SYSTEM_ERROR__NONCE_BLOCKHASH_NOT_EXPIRED = 0x7; // 7\n/** NonceUnexpectedBlockhashValue: specified nonce does not match stored nonce */\nexport const SYSTEM_ERROR__NONCE_UNEXPECTED_BLOCKHASH_VALUE = 0x8; // 8\n\nexport type SystemError =\n | typeof SYSTEM_ERROR__ACCOUNT_ALREADY_IN_USE\n | typeof SYSTEM_ERROR__ADDRESS_WITH_SEED_MISMATCH\n | typeof SYSTEM_ERROR__INVALID_ACCOUNT_DATA_LENGTH\n | typeof SYSTEM_ERROR__INVALID_PROGRAM_ID\n | typeof SYSTEM_ERROR__MAX_SEED_LENGTH_EXCEEDED\n | typeof SYSTEM_ERROR__NONCE_BLOCKHASH_NOT_EXPIRED\n | typeof SYSTEM_ERROR__NONCE_NO_RECENT_BLOCKHASHES\n | typeof SYSTEM_ERROR__NONCE_UNEXPECTED_BLOCKHASH_VALUE\n | typeof SYSTEM_ERROR__RESULT_WITH_NEGATIVE_LAMPORTS;\n\nlet systemErrorMessages: Record<SystemError, string> | undefined;\nif (process.env['NODE_ENV'] !== 'production') {\n systemErrorMessages = {\n [SYSTEM_ERROR__ACCOUNT_ALREADY_IN_USE]: `an account with the same address already exists`,\n [SYSTEM_ERROR__ADDRESS_WITH_SEED_MISMATCH]: `provided address does not match addressed derived from seed`,\n [SYSTEM_ERROR__INVALID_ACCOUNT_DATA_LENGTH]: `cannot allocate account data of this length`,\n [SYSTEM_ERROR__INVALID_PROGRAM_ID]: `cannot assign account to this program id`,\n [SYSTEM_ERROR__MAX_SEED_LENGTH_EXCEEDED]: `length of requested seed is too long`,\n [SYSTEM_ERROR__NONCE_BLOCKHASH_NOT_EXPIRED]: `stored nonce is still in recent_blockhashes`,\n [SYSTEM_ERROR__NONCE_NO_RECENT_BLOCKHASHES]: `advancing stored nonce requires a populated RecentBlockhashes sysvar`,\n [SYSTEM_ERROR__NONCE_UNEXPECTED_BLOCKHASH_VALUE]: `specified nonce does not match stored nonce`,\n [SYSTEM_ERROR__RESULT_WITH_NEGATIVE_LAMPORTS]: `account does not have enough SOL to perform the operation`,\n };\n}\n\nexport function getSystemErrorMessage(code: SystemError): string {\n if (process.env['NODE_ENV'] !== 'production') {\n return (systemErrorMessages as Record<SystemError, string>)[code];\n }\n\n return 'Error message not available in production bundles.';\n}\n\nexport function isSystemError<TProgramErrorCode extends SystemError>(\n error: unknown,\n transactionMessage: { instructions: Record<number, { programAddress: Address }> },\n code?: TProgramErrorCode,\n config: { programAddress?: Address | HasAddress } = {},\n): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> &\n Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> {\n const programAddressInput = config.programAddress ?? SYSTEM_PROGRAM_ADDRESS;\n const programAddress = typeof programAddressInput === 'string' ? programAddressInput : programAddressInput.address;\n return isProgramError<TProgramErrorCode>(error, transactionMessage, programAddress, code);\n}\n"]}
|