@thru/programs 0.2.29 → 0.2.31

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.
Files changed (42) hide show
  1. package/dist/amm/index.cjs +6424 -0
  2. package/dist/amm/index.cjs.map +1 -0
  3. package/dist/amm/index.d.cts +1424 -0
  4. package/dist/amm/index.d.ts +1424 -0
  5. package/dist/amm/index.js +6360 -0
  6. package/dist/amm/index.js.map +1 -0
  7. package/dist/chunk-P5OABVJI.js +28 -0
  8. package/dist/chunk-P5OABVJI.js.map +1 -0
  9. package/dist/multicall/index.cjs +1 -1
  10. package/dist/multicall/index.cjs.map +1 -1
  11. package/dist/multicall/index.d.cts +2 -2
  12. package/dist/multicall/index.d.ts +2 -2
  13. package/dist/multicall/index.js +1 -1
  14. package/dist/multicall/index.js.map +1 -1
  15. package/dist/passkey-manager/index.cjs +33 -27
  16. package/dist/passkey-manager/index.cjs.map +1 -1
  17. package/dist/passkey-manager/index.d.cts +4 -3
  18. package/dist/passkey-manager/index.d.ts +4 -3
  19. package/dist/passkey-manager/index.js +9 -28
  20. package/dist/passkey-manager/index.js.map +1 -1
  21. package/dist/token/index.cjs +1760 -275
  22. package/dist/token/index.cjs.map +1 -1
  23. package/dist/token/index.d.cts +124 -20
  24. package/dist/token/index.d.ts +124 -20
  25. package/dist/token/index.js +1760 -275
  26. package/dist/token/index.js.map +1 -1
  27. package/package.json +9 -2
  28. package/src/amm/abi/thru/common/primitives/types.ts +2269 -0
  29. package/src/amm/abi/thru/program/amm/types.ts +5621 -0
  30. package/src/amm/index.test.ts +255 -0
  31. package/src/amm/index.ts +434 -0
  32. package/src/helpers/bytes.ts +25 -0
  33. package/src/multicall/abi/thru/common/primitives/types.ts +5 -6
  34. package/src/multicall/abi/thru/program/multicall/types.ts +1 -2
  35. package/src/passkey-manager/abi/thru/blockchain/state_proof/types.ts +0 -1
  36. package/src/passkey-manager/abi/thru/common/primitives/types.ts +0 -1
  37. package/src/passkey-manager/abi/thru/program/passkey_manager/types.ts +4 -5
  38. package/src/passkey-manager/encoding.ts +2 -26
  39. package/src/token/abi/thru/blockchain/state_proof/types.ts +101 -21
  40. package/src/token/abi/thru/common/primitives/types.ts +1295 -167
  41. package/src/token/abi/thru/program/token/types.ts +647 -237
  42. package/tsup.config.ts +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/helpers/bytes.ts","../../src/amm/abi/thru/common/primitives/types.ts","../../src/amm/abi/thru/program/amm/types.ts","../../src/amm/index.ts"],"names":["remainder","low","high","InstructionData","__tnWarnings","__tnHasNativeBigInt","__tnHasBigIntDataView","__tnConsole","__tnLogWarn","__tnWarnOnce","__tnResolveBuilderInput","__tnCreateFamWriter","__tnMask32","__tnSignBit32","__tnToBigInt","__tnBigIntToNumber","__tnBigIntEquals","__tnBigIntGreaterThan","__tnRaiseIrError","__tnCheckedAdd","__tnCheckedMul","__tnAlign","__tnSplitUint64","__tnSplitInt64","__tnPolyfillReadUint64","__tnPolyfillReadInt64","__tnPolyfillWriteUint64","__tnPolyfillWriteInt64","__tnFootprintRegistry","__tnValidateRegistry","__tnDynamicValidateRegistry","__tnRegisterFootprint","__tnRegisterValidate","__tnRegisterDynamicValidate","__tnInvokeFootprint","__tnInvokeValidate","__tnInvokeDynamicValidate","__tnEvalFootprint","__tnEvalIrNode","__tnTryEvalIr","__tnNormalizeIrError","__tnIsEvalError","__tnValidateIrTree","AmmInitPoolInstruction","AmmInstruction","AmmEvent","encodeAddress","Pubkey"],"mappings":"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","file":"index.cjs","sourcesContent":["export function bytesEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\n\nexport function compareBytes(a: Uint8Array, b: Uint8Array): number {\n const len = Math.min(a.length, b.length);\n for (let i = 0; i < len; i++) {\n if (a[i] !== b[i]) return a[i] - b[i];\n }\n return a.length - b.length;\n}\n\nexport function uniqueAccounts(accounts: Uint8Array[]): Uint8Array[] {\n const unique: Uint8Array[] = [];\n for (const account of accounts) {\n if (!unique.some((candidate) => bytesEqual(candidate, account))) {\n unique.push(account);\n }\n }\n return unique;\n}\n","/* Auto-generated TypeScript code */\n/* WARNING: Do not modify this file directly. It is generated from ABI definitions. */\n\ntype __TnIrNode =\n | { readonly op: \"zero\" }\n | { readonly op: \"const\"; readonly value: bigint }\n | { readonly op: \"field\"; readonly param: string }\n | {\n readonly op: \"add\";\n readonly left: __TnIrNode;\n readonly right: __TnIrNode;\n }\n | {\n readonly op: \"mul\";\n readonly left: __TnIrNode;\n readonly right: __TnIrNode;\n }\n | {\n readonly op: \"align\";\n readonly alignment: number;\n readonly node: __TnIrNode;\n }\n | {\n readonly op: \"switch\";\n readonly tag: string;\n readonly cases: readonly { readonly value: number; readonly node: __TnIrNode }[];\n readonly default?: __TnIrNode;\n }\n | {\n readonly op: \"call\";\n readonly typeName: string;\n readonly args: readonly { readonly name: string; readonly source: string }[];\n }\n | {\n readonly op: \"sumOverArray\";\n readonly count: __TnIrNode;\n readonly elementTypeName: string;\n readonly fieldName: string;\n };\n\ntype __TnIrContext = {\n params: Record<string, bigint>;\n buffer?: Uint8Array;\n typeName?: string;\n};\n\ntype __TnValidateResult = {\n ok: boolean;\n code?: string;\n consumed?: bigint;\n params?: Record<string, bigint>;\n};\ntype __TnEvalResult =\n | { ok: true; value: bigint }\n | { ok: false; code: string };\ntype __TnBuilderLike = { build(): Uint8Array };\ntype __TnStructFieldInput =\n | Uint8Array\n | __TnBuilderLike\n | { buffer?: Uint8Array }\n | { asUint8Array?: () => Uint8Array }\n | { bytes?: () => Uint8Array };\ntype __TnVariantDescriptor = {\n readonly name: string;\n readonly tag: number;\n readonly payloadSize: number | null;\n readonly payloadType?: string;\n readonly createPayloadBuilder?: () => unknown | null;\n};\ntype __TnVariantSelectorResult<Parent> = {\n select(\n name: string\n ): { writePayload(payload: Uint8Array | __TnBuilderLike): { finish(): Parent } };\n finish(): Parent;\n};\ntype __TnFamWriterResult<Parent> = {\n write(payload: Uint8Array | __TnBuilderLike): { finish(): Parent };\n finish(): Parent;\n};\ntype __TnConsole = { warn?: (...args: unknown[]) => void };\n\nconst __tnWarnings = new Set<string>();\nconst __tnHasNativeBigInt = typeof BigInt === \"function\";\nconst __tnHasBigIntDataView =\n typeof DataView !== \"undefined\" &&\n typeof DataView.prototype.getBigInt64 === \"function\" &&\n typeof DataView.prototype.getBigUint64 === \"function\" &&\n typeof DataView.prototype.setBigInt64 === \"function\" &&\n typeof DataView.prototype.setBigUint64 === \"function\";\nconst __tnConsole: __TnConsole | undefined =\n typeof globalThis !== \"undefined\"\n ? (globalThis as { console?: __TnConsole }).console\n : undefined;\n\nfunction __tnLogWarn(message: string): void {\n if (__tnConsole && typeof __tnConsole.warn === \"function\") {\n __tnConsole.warn(message);\n }\n}\n\nfunction __tnWarnOnce(message: string): void {\n if (!__tnWarnings.has(message)) {\n __tnWarnings.add(message);\n __tnLogWarn(message);\n }\n}\n\nfunction __tnResolveBuilderInput(\n input: Uint8Array | __TnBuilderLike,\n context: string\n): Uint8Array {\n if (input instanceof Uint8Array) {\n return new Uint8Array(input);\n }\n if (input && typeof (input as __TnBuilderLike).build === \"function\") {\n const built = (input as __TnBuilderLike).build();\n if (!(built instanceof Uint8Array)) {\n throw new Error(`${context}: builder did not return Uint8Array`);\n }\n return new Uint8Array(built);\n }\n throw new Error(`${context}: expected Uint8Array or builder`);\n}\n\nfunction __tnResolveStructFieldInput(\n input: __TnStructFieldInput,\n context: string\n): Uint8Array {\n if (\n input instanceof Uint8Array ||\n (input && typeof (input as __TnBuilderLike).build === \"function\")\n ) {\n return __tnResolveBuilderInput(input as Uint8Array | __TnBuilderLike, context);\n }\n if (input && typeof (input as { asUint8Array?: () => Uint8Array }).asUint8Array === \"function\") {\n const bytes = (input as { asUint8Array: () => Uint8Array }).asUint8Array();\n return new Uint8Array(bytes);\n }\n if (input && typeof (input as { bytes?: () => Uint8Array }).bytes === \"function\") {\n const bytes = (input as { bytes: () => Uint8Array }).bytes();\n return new Uint8Array(bytes);\n }\n if (input && (input as { buffer?: unknown }).buffer instanceof Uint8Array) {\n return new Uint8Array((input as { buffer: Uint8Array }).buffer);\n }\n throw new Error(`${context}: expected Uint8Array, builder, or view-like value`);\n}\n\nfunction __tnMaybeCallBuilder(ctor: unknown): unknown | null {\n if (!ctor) {\n return null;\n }\n const builderFn = (ctor as { builder?: () => unknown }).builder;\n return typeof builderFn === \"function\" ? builderFn() : null;\n}\n\nfunction __tnCreateVariantSelector<Parent, Descriptor extends __TnVariantDescriptor>(\n parent: Parent,\n descriptors: readonly Descriptor[],\n assign: (descriptor: Descriptor, payload: Uint8Array) => void\n): __TnVariantSelectorResult<Parent> {\n return {\n select(name: string) {\n const descriptor = descriptors.find((variant) => variant.name === name);\n if (!descriptor) {\n throw new Error(`Unknown variant '${name}'`);\n }\n return {\n writePayload(payload: Uint8Array | __TnBuilderLike) {\n const bytes = __tnResolveBuilderInput(\n payload,\n `variant ${descriptor.name}`\n );\n if (\n descriptor.payloadSize !== null &&\n bytes.length !== descriptor.payloadSize\n ) {\n throw new Error(\n `Payload for ${descriptor.name} must be ${descriptor.payloadSize} bytes`\n );\n }\n assign(descriptor, bytes);\n return {\n finish(): Parent {\n return parent;\n },\n };\n },\n };\n },\n finish(): Parent {\n return parent;\n },\n };\n}\n\nfunction __tnCreateFamWriter<Parent>(\n parent: Parent,\n fieldName: string,\n assign: (bytes: Uint8Array) => void\n): __TnFamWriterResult<Parent> {\n let hasWritten = false;\n return {\n write(payload: Uint8Array | __TnBuilderLike) {\n const bytes = __tnResolveBuilderInput(\n payload,\n `flexible array '${fieldName}'`\n );\n const copy = new Uint8Array(bytes);\n assign(copy);\n hasWritten = true;\n return {\n finish(): Parent {\n return parent;\n },\n };\n },\n finish(): Parent {\n if (!hasWritten) {\n throw new Error(\n `flexible array '${fieldName}' requires write() before finish()`\n );\n }\n return parent;\n },\n };\n}\n\nconst __tnMask32 = __tnHasNativeBigInt\n ? (BigInt(1) << BigInt(32)) - BigInt(1)\n : 0xffffffff;\nconst __tnSignBit32 = __tnHasNativeBigInt\n ? BigInt(1) << BigInt(31)\n : 0x80000000;\n\nfunction __tnToBigInt(value: number | bigint): bigint {\n if (__tnHasNativeBigInt) {\n return typeof value === \"bigint\" ? value : BigInt(value);\n }\n if (typeof value === \"bigint\") return value;\n if (!Number.isFinite(value)) {\n throw new Error(\"IR runtime received non-finite numeric input\");\n }\n if (!Number.isSafeInteger(value)) {\n __tnWarnOnce(\n `[thru-net] Precision loss while polyfilling BigInt (value=${value})`\n );\n }\n return (value as unknown) as bigint;\n}\n\nfunction __tnBigIntToNumber(value: bigint, context: string): number {\n if (__tnHasNativeBigInt) {\n const converted = Number(value);\n if (!Number.isFinite(converted)) {\n throw new Error(`${context} overflowed Number range`);\n }\n return converted;\n }\n return value as unknown as number;\n}\n\nfunction __tnBigIntEquals(lhs: bigint, rhs: bigint): boolean {\n if (__tnHasNativeBigInt) return lhs === rhs;\n return (lhs as unknown as number) === (rhs as unknown as number);\n}\n\nfunction __tnBigIntGreaterThan(lhs: bigint, rhs: bigint): boolean {\n if (__tnHasNativeBigInt) return lhs > rhs;\n return (lhs as unknown as number) > (rhs as unknown as number);\n}\n\nfunction __tnPopcount(value: number | bigint): number {\n let v =\n typeof value === \"bigint\"\n ? Number(value & BigInt(0xffffffff))\n : Number(value) >>> 0;\n v = v - ((v >>> 1) & 0x55555555);\n v = (v & 0x33333333) + ((v >>> 2) & 0x33333333);\n return (((v + (v >>> 4)) & 0x0f0f0f0f) * 0x01010101) >>> 24;\n}\n\nfunction __tnRaiseIrError(code: string, message: string): never {\n const err = new Error(message);\n (err as { code?: string }).code = code;\n throw err;\n}\n\nfunction __tnCheckedAdd(lhs: bigint, rhs: bigint): bigint {\n if (__tnHasNativeBigInt) {\n const result = (lhs as bigint) + (rhs as bigint);\n if (result < BigInt(0)) {\n __tnRaiseIrError(\n \"tn.ir.overflow\",\n \"IR runtime detected negative size via addition\"\n );\n }\n return result;\n }\n const left = lhs as unknown as number;\n const right = rhs as unknown as number;\n const sum = left + right;\n if (sum < 0 || !Number.isFinite(sum)) {\n __tnRaiseIrError(\n \"tn.ir.overflow\",\n \"IR runtime detected invalid addition result\"\n );\n }\n if (!Number.isSafeInteger(sum)) {\n __tnWarnOnce(\"[thru-net] Precision loss while polyfilling BigInt addition\");\n }\n return (sum as unknown) as bigint;\n}\n\nfunction __tnCheckedMul(lhs: bigint, rhs: bigint): bigint {\n if (__tnHasNativeBigInt) {\n const result = (lhs as bigint) * (rhs as bigint);\n if (result < BigInt(0)) {\n __tnRaiseIrError(\n \"tn.ir.overflow\",\n \"IR runtime detected negative size via multiplication\"\n );\n }\n return result;\n }\n const left = lhs as unknown as number;\n const right = rhs as unknown as number;\n const product = left * right;\n if (product < 0 || !Number.isFinite(product)) {\n __tnRaiseIrError(\n \"tn.ir.overflow\",\n \"IR runtime detected invalid multiplication result\"\n );\n }\n if (!Number.isSafeInteger(product)) {\n __tnWarnOnce(\n \"[thru-net] Precision loss while polyfilling BigInt multiplication\"\n );\n }\n return (product as unknown) as bigint;\n}\n\nfunction __tnAlign(value: bigint, alignment: number): bigint {\n if (alignment <= 1) return value;\n const alignBig = __tnToBigInt(alignment);\n if (__tnHasNativeBigInt) {\n const remainder = value % alignBig;\n if (__tnBigIntEquals(remainder, __tnToBigInt(0))) {\n return value;\n }\n const delta = alignBig - remainder;\n return __tnCheckedAdd(value, delta);\n }\n const current = __tnBigIntToNumber(value, \"IR align\");\n const alignNum = alignment >>> 0;\n const remainder = current % alignNum;\n const next = remainder === 0 ? current : current + (alignNum - remainder);\n return __tnToBigInt(next);\n}\n\nfunction __tnSplitUint64(value: bigint): { high: number; low: number } {\n if (__tnHasNativeBigInt) {\n const low = Number(value & (__tnMask32 as bigint));\n const high = Number((value >> BigInt(32)) & (__tnMask32 as bigint));\n return { high, low };\n }\n const num = __tnBigIntToNumber(value, \"DataView.setBigUint64\");\n const low = num >>> 0;\n const high = Math.floor(num / 4294967296) >>> 0;\n return { high, low };\n}\n\nfunction __tnSplitInt64(value: bigint): { high: number; low: number } {\n if (__tnHasNativeBigInt) {\n const low = Number(value & (__tnMask32 as bigint));\n let high = Number((value >> BigInt(32)) & (__tnMask32 as bigint));\n if ((BigInt(high) & (__tnSignBit32 as bigint)) !== BigInt(0)) {\n high -= 0x100000000;\n }\n return { high, low };\n }\n const num = __tnBigIntToNumber(value, \"DataView.setBigInt64\");\n const low = num >>> 0;\n const high = Math.floor(num / 4294967296);\n return { high, low };\n}\n\nfunction __tnPolyfillReadUint64(\n view: DataView,\n offset: number,\n littleEndian: boolean\n): bigint {\n const low = littleEndian\n ? view.getUint32(offset, true)\n : view.getUint32(offset + 4, false);\n const high = littleEndian\n ? view.getUint32(offset + 4, true)\n : view.getUint32(offset, false);\n if (__tnHasNativeBigInt) {\n return (BigInt(high) << BigInt(32)) | BigInt(low);\n }\n const value = high * 4294967296 + low;\n if (!Number.isSafeInteger(value)) {\n __tnWarnOnce(\n \"[thru-net] Precision loss while polyfilling DataView.getBigUint64\"\n );\n }\n return (value as unknown) as bigint;\n}\n\nfunction __tnPolyfillReadInt64(\n view: DataView,\n offset: number,\n littleEndian: boolean\n): bigint {\n const low = littleEndian\n ? view.getUint32(offset, true)\n : view.getUint32(offset + 4, false);\n const high = littleEndian\n ? view.getInt32(offset + 4, true)\n : view.getInt32(offset, false);\n if (__tnHasNativeBigInt) {\n return (BigInt(high) << BigInt(32)) | BigInt(low);\n }\n const value = high * 4294967296 + low;\n if (!Number.isSafeInteger(value)) {\n __tnWarnOnce(\n \"[thru-net] Precision loss while polyfilling DataView.getBigInt64\"\n );\n }\n return (value as unknown) as bigint;\n}\n\nfunction __tnPolyfillWriteUint64(\n view: DataView,\n offset: number,\n value: bigint,\n littleEndian: boolean\n): void {\n const parts = __tnSplitUint64(value);\n if (littleEndian) {\n view.setUint32(offset, parts.low, true);\n view.setUint32(offset + 4, parts.high, true);\n } else {\n view.setUint32(offset, parts.high, false);\n view.setUint32(offset + 4, parts.low, false);\n }\n}\n\nfunction __tnPolyfillWriteInt64(\n view: DataView,\n offset: number,\n value: bigint,\n littleEndian: boolean\n): void {\n const parts = __tnSplitInt64(value);\n if (littleEndian) {\n view.setUint32(offset, parts.low >>> 0, true);\n view.setInt32(offset + 4, parts.high | 0, true);\n } else {\n view.setInt32(offset, parts.high | 0, false);\n view.setUint32(offset + 4, parts.low >>> 0, false);\n }\n}\n\nif (typeof DataView !== \"undefined\" && !__tnHasBigIntDataView) {\n const proto = DataView.prototype as unknown as Record<string, unknown>;\n if (typeof proto.getBigUint64 !== \"function\") {\n (proto as any).getBigUint64 = function (\n offset: number,\n littleEndian?: boolean\n ): bigint {\n __tnWarnOnce(\n \"[thru-net] Polyfilling DataView.getBigUint64; precision may be lost\"\n );\n return __tnPolyfillReadUint64(this, offset, !!littleEndian);\n };\n }\n if (typeof proto.getBigInt64 !== \"function\") {\n (proto as any).getBigInt64 = function (\n offset: number,\n littleEndian?: boolean\n ): bigint {\n __tnWarnOnce(\n \"[thru-net] Polyfilling DataView.getBigInt64; precision may be lost\"\n );\n return __tnPolyfillReadInt64(this, offset, !!littleEndian);\n };\n }\n if (typeof proto.setBigUint64 !== \"function\") {\n (proto as any).setBigUint64 = function (\n offset: number,\n value: bigint,\n littleEndian?: boolean\n ): void {\n __tnWarnOnce(\n \"[thru-net] Polyfilling DataView.setBigUint64; precision may be lost\"\n );\n __tnPolyfillWriteUint64(this, offset, value, !!littleEndian);\n };\n }\n if (typeof proto.setBigInt64 !== \"function\") {\n (proto as any).setBigInt64 = function (\n offset: number,\n value: bigint,\n littleEndian?: boolean\n ): void {\n __tnWarnOnce(\n \"[thru-net] Polyfilling DataView.setBigInt64; precision may be lost\"\n );\n __tnPolyfillWriteInt64(this, offset, value, !!littleEndian);\n };\n }\n if (!__tnHasNativeBigInt) {\n __tnWarnOnce(\n \"[thru-net] BigInt is unavailable; falling back to lossy 64-bit polyfill\"\n );\n }\n}\n\nconst __tnFootprintRegistry: Record<\n string,\n (params: Record<string, bigint>) => bigint\n> = {};\nconst __tnValidateRegistry: Record<\n string,\n (buffer: Uint8Array, params: Record<string, bigint>) => __TnValidateResult\n> = {};\nconst __tnDynamicValidateRegistry: Record<\n string,\n (buffer: Uint8Array) => __TnValidateResult\n> = {};\n\nfunction __tnRegisterFootprint(\n typeName: string,\n fn: (params: Record<string, bigint>) => bigint\n): void {\n __tnFootprintRegistry[typeName] = fn;\n}\n\nfunction __tnRegisterValidate(\n typeName: string,\n fn: (buffer: Uint8Array, params: Record<string, bigint>) => __TnValidateResult\n): void {\n __tnValidateRegistry[typeName] = fn;\n}\n\nfunction __tnRegisterDynamicValidate(\n typeName: string,\n fn: (buffer: Uint8Array) => __TnValidateResult\n): void {\n __tnDynamicValidateRegistry[typeName] = fn;\n}\n\nfunction __tnInvokeFootprint(\n typeName: string,\n params: Record<string, bigint>\n): bigint {\n const fn = __tnFootprintRegistry[typeName];\n if (!fn) throw new Error(`IR runtime missing footprint for ${typeName}`);\n return fn(params);\n}\n\nfunction __tnInvokeValidate(\n typeName: string,\n buffer: Uint8Array,\n params: Record<string, bigint>\n): __TnValidateResult {\n const fn = __tnValidateRegistry[typeName];\n if (!fn) throw new Error(`IR runtime missing validate helper for ${typeName}`);\n return fn(buffer, params);\n}\n\nfunction __tnInvokeDynamicValidate(\n typeName: string,\n buffer: Uint8Array\n): __TnValidateResult {\n const fn = __tnDynamicValidateRegistry[typeName];\n if (!fn) throw new Error(`IR runtime missing dynamic validate helper for ${typeName}`);\n return fn(buffer);\n}\n\nfunction __tnEvalFootprint(node: __TnIrNode, ctx: __TnIrContext): bigint {\n return __tnEvalIrNode(node, ctx, __tnToBigInt(0));\n}\n\nfunction __tnTryEvalFootprint(\n node: __TnIrNode,\n ctx: __TnIrContext\n): __TnEvalResult {\n return __tnTryEvalIr(node, ctx);\n}\n\nfunction __tnTryEvalIr(\n node: __TnIrNode,\n ctx: __TnIrContext\n): __TnEvalResult {\n try {\n return { ok: true, value: __tnEvalIrNode(node, ctx, __tnToBigInt(0)) };\n } catch (err) {\n return { ok: false, code: __tnNormalizeIrError(err) };\n }\n}\n\nfunction __tnIsEvalError(result: __TnEvalResult): result is { ok: false; code: string } {\n return result.ok === false;\n}\n\nfunction __tnValidateIrTree(\n ir: { readonly typeName: string; readonly root: __TnIrNode },\n buffer: Uint8Array,\n params: Record<string, bigint>\n): __TnValidateResult {\n const evalResult = __tnTryEvalIr(ir.root, {\n params,\n buffer,\n typeName: ir.typeName,\n });\n if (__tnIsEvalError(evalResult)) {\n return { ok: false, code: evalResult.code };\n }\n const required = evalResult.value;\n const available = __tnToBigInt(buffer.length);\n if (__tnBigIntGreaterThan(required, available)) {\n return { ok: false, code: \"tn.buffer_too_small\", consumed: required };\n }\n return { ok: true, consumed: required };\n}\n\nfunction __tnEvalIrNode(\n node: __TnIrNode,\n ctx: __TnIrContext,\n baseOffset: bigint\n): bigint {\n switch (node.op) {\n case \"zero\":\n return __tnToBigInt(0);\n case \"const\":\n return node.value;\n case \"field\": {\n const val = ctx.params[node.param];\n if (val === undefined) {\n const prefix = ctx.typeName ? `${ctx.typeName}: ` : \"\";\n __tnRaiseIrError(\n \"tn.ir.missing_param\",\n `${prefix}Missing IR parameter '${node.param}'`\n );\n }\n return val;\n }\n case \"add\":\n {\n const left = __tnEvalIrNode(node.left, ctx, baseOffset);\n const right = __tnEvalIrNode(\n node.right,\n ctx,\n __tnCheckedAdd(baseOffset, left)\n );\n return __tnCheckedAdd(left, right);\n }\n case \"mul\":\n return __tnCheckedMul(\n __tnEvalIrNode(node.left, ctx, baseOffset),\n __tnEvalIrNode(node.right, ctx, baseOffset)\n );\n case \"align\":\n return __tnAlign(__tnEvalIrNode(node.node, ctx, baseOffset), node.alignment);\n case \"switch\": {\n const tagVal = ctx.params[node.tag];\n if (tagVal === undefined) {\n const prefix = ctx.typeName ? `${ctx.typeName}: ` : \"\";\n __tnRaiseIrError(\n \"tn.ir.missing_param\",\n `${prefix}Missing IR switch tag '${node.tag}'`\n );\n }\n const tagNumber = Number(tagVal);\n for (const caseNode of node.cases) {\n if (caseNode.value === tagNumber) {\n return __tnEvalIrNode(caseNode.node, ctx, baseOffset);\n }\n }\n if (node.default) return __tnEvalIrNode(node.default, ctx, baseOffset);\n __tnRaiseIrError(\n \"tn.ir.invalid_tag\",\n `Unhandled IR switch value ${tagNumber} for '${node.tag}'`\n );\n }\n case \"call\": {\n const nestedParams: Record<string, bigint> = Object.create(null);\n for (const arg of node.args) {\n const val = ctx.params[arg.source];\n if (val === undefined) {\n const prefix = ctx.typeName ? `${ctx.typeName}: ` : \"\";\n __tnRaiseIrError(\n \"tn.ir.missing_param\",\n `${prefix}Missing IR parameter '${arg.source}' for nested call`\n );\n }\n nestedParams[arg.name] = val;\n }\n if (ctx.buffer) {\n const nestedOffset = __tnBigIntToNumber(baseOffset, \"IR nested offset\");\n const nestedResult = __tnInvokeValidate(\n node.typeName,\n ctx.buffer.subarray(nestedOffset),\n nestedParams\n );\n if (!nestedResult.ok) {\n const nestedCode =\n nestedResult.code ?? `tn.ir.runtime_error: ${node.typeName}`;\n const prefixed = nestedCode.startsWith(\"tn.\")\n ? nestedCode\n : `tn.ir.runtime_error: ${node.typeName} -> ${nestedCode}`;\n __tnRaiseIrError(\n prefixed,\n `Nested validator ${node.typeName} failed`\n );\n }\n if (nestedResult.consumed !== undefined) {\n return nestedResult.consumed;\n }\n }\n return __tnInvokeFootprint(node.typeName, nestedParams);\n }\n case \"sumOverArray\": {\n if (!ctx.buffer) {\n __tnRaiseIrError(\n \"tn.ir.missing_buffer\",\n `Jagged array '${node.fieldName}' requires buffer-backed validation`\n );\n }\n const count = __tnBigIntToNumber(\n __tnEvalIrNode(node.count, ctx, baseOffset),\n `Jagged array '${node.fieldName}' count`\n );\n let cursor = __tnBigIntToNumber(baseOffset, \"IR jagged array offset\");\n let total = __tnToBigInt(0);\n for (let i = 0; i < count; i++) {\n const result = __tnInvokeDynamicValidate(\n node.elementTypeName,\n ctx.buffer.subarray(cursor)\n );\n if (!result.ok || result.consumed === undefined) {\n const code = result.code ?? \"tn.ir.runtime_error\";\n __tnRaiseIrError(\n code,\n `Jagged array '${node.fieldName}' element ${i} failed validation`\n );\n }\n cursor += __tnBigIntToNumber(result.consumed, \"IR jagged element size\");\n total = __tnCheckedAdd(total, result.consumed);\n }\n return total;\n }\n default:\n __tnRaiseIrError(\n \"tn.ir.runtime_error\",\n `Unsupported IR node ${(node as { op: string }).op}`\n );\n }\n}\n\nfunction __tnNormalizeIrError(err: unknown): string {\n if (err && typeof err === \"object\" && \"code\" in err) {\n const maybeCode = (err as { code?: string }).code;\n if (typeof maybeCode === \"string\" && maybeCode.length > 0) {\n return maybeCode;\n }\n }\n const message =\n err && typeof err === \"object\" && \"message\" in err\n ? String((err as { message?: unknown }).message ?? \"\")\n : typeof err === \"string\"\n ? err\n : \"\";\n if (message.includes(\"Missing IR parameter\")) return \"tn.ir.missing_param\";\n if (message.includes(\"Unhandled IR switch value\")) return \"tn.ir.invalid_tag\";\n if (\n message.includes(\"invalid\") ||\n message.includes(\"overflow\") ||\n message.includes(\"negative size\")\n ) {\n return \"tn.ir.overflow\";\n }\n if (message.length > 0) return `tn.ir.runtime_error: ${message}`;\n return \"tn.ir.runtime_error\";\n}\n\n/* ----- TYPE DEFINITION FOR Date ----- */\n\nconst __tn_ir_Date = {\n typeName: \"Date\",\n root: { op: \"const\", value: 6n }\n} as const;\n\nexport class Date {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): Date {\n if (!buffer || buffer.length === undefined) throw new Error(\"Date.__tnCreateView requires a Uint8Array\");\n return new Date(new Uint8Array(buffer));\n }\n\n static builder(): DateBuilder {\n return new DateBuilder();\n }\n\n static fromBuilder(builder: DateBuilder): Date | null {\n const buffer = builder.build();\n return Date.from_array(buffer);\n }\n\n get_year(): number {\n const offset = 0;\n return this.view.getInt32(offset, true); /* little-endian */\n }\n\n set_year(value: number): void {\n const offset = 0;\n this.view.setInt32(offset, value, true); /* little-endian */\n }\n\n get year(): number {\n return this.get_year();\n }\n\n set year(value: number) {\n this.set_year(value);\n }\n\n get_month(): number {\n const offset = 4;\n return this.view.getUint8(offset);\n }\n\n set_month(value: number): void {\n const offset = 4;\n this.view.setUint8(offset, value);\n }\n\n get month(): number {\n return this.get_month();\n }\n\n set month(value: number) {\n this.set_month(value);\n }\n\n get_day(): number {\n const offset = 5;\n return this.view.getUint8(offset);\n }\n\n set_day(value: number): void {\n const offset = 5;\n this.view.setUint8(offset, value);\n }\n\n get day(): number {\n return this.get_day();\n }\n\n set day(value: number) {\n this.set_day(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_Date.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_Date, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for Date');\n }\n return __tnBigIntToNumber(irResult, 'Date::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 6) return { ok: false, code: \"tn.buffer_too_small\", consumed: 6 };\n return { ok: true, consumed: 6 };\n }\n\n static new(year: number, month: number, day: number): Date {\n const buffer = new Uint8Array(6);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setInt32(0, year, true); /* year (little-endian) */\n view.setUint8(4, month); /* month */\n view.setUint8(5, day); /* day */\n\n return new Date(buffer);\n }\n\n static from_array(buffer: Uint8Array): Date | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new Date(buffer);\n }\n\n}\n\nexport class DateBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(6);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_year(value: number): this {\n this.view.setInt32(0, value, true);\n return this;\n }\n\n set_month(value: number): this {\n this.view.setUint8(4, value);\n return this;\n }\n\n set_day(value: number): this {\n this.view.setUint8(5, value);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): Date {\n const view = Date.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build Date\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"Date\", (params) => Date.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Date\", (buffer, params) => Date.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"Date\", (buffer) => { const result = Date.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR Duration ----- */\n\nconst __tn_ir_Duration = {\n typeName: \"Duration\",\n root: { op: \"const\", value: 12n }\n} as const;\n\nexport class Duration {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): Duration {\n if (!buffer || buffer.length === undefined) throw new Error(\"Duration.__tnCreateView requires a Uint8Array\");\n return new Duration(new Uint8Array(buffer));\n }\n\n static builder(): DurationBuilder {\n return new DurationBuilder();\n }\n\n static fromBuilder(builder: DurationBuilder): Duration | null {\n const buffer = builder.build();\n return Duration.from_array(buffer);\n }\n\n get_seconds(): bigint {\n const offset = 0;\n return this.view.getBigInt64(offset, true); /* little-endian */\n }\n\n set_seconds(value: bigint): void {\n const offset = 0;\n this.view.setBigInt64(offset, value, true); /* little-endian */\n }\n\n get seconds(): bigint {\n return this.get_seconds();\n }\n\n set seconds(value: bigint) {\n this.set_seconds(value);\n }\n\n get_nanos(): number {\n const offset = 8;\n return this.view.getInt32(offset, true); /* little-endian */\n }\n\n set_nanos(value: number): void {\n const offset = 8;\n this.view.setInt32(offset, value, true); /* little-endian */\n }\n\n get nanos(): number {\n return this.get_nanos();\n }\n\n set nanos(value: number) {\n this.set_nanos(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_Duration.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_Duration, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for Duration');\n }\n return __tnBigIntToNumber(irResult, 'Duration::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 12) return { ok: false, code: \"tn.buffer_too_small\", consumed: 12 };\n return { ok: true, consumed: 12 };\n }\n\n static new(seconds: bigint, nanos: number): Duration {\n const buffer = new Uint8Array(12);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setBigInt64(0, seconds, true); /* seconds (little-endian) */\n view.setInt32(8, nanos, true); /* nanos (little-endian) */\n\n return new Duration(buffer);\n }\n\n static from_array(buffer: Uint8Array): Duration | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new Duration(buffer);\n }\n\n}\n\nexport class DurationBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(12);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_seconds(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigInt64(0, cast, true);\n return this;\n }\n\n set_nanos(value: number): this {\n this.view.setInt32(8, value, true);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): Duration {\n const view = Duration.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build Duration\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"Duration\", (params) => Duration.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Duration\", (buffer, params) => Duration.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"Duration\", (buffer) => { const result = Duration.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR FixedPoint ----- */\n\nconst __tn_ir_FixedPoint = {\n typeName: \"FixedPoint\",\n root: { op: \"const\", value: 9n }\n} as const;\n\nexport class FixedPoint {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): FixedPoint {\n if (!buffer || buffer.length === undefined) throw new Error(\"FixedPoint.__tnCreateView requires a Uint8Array\");\n return new FixedPoint(new Uint8Array(buffer));\n }\n\n static builder(): FixedPointBuilder {\n return new FixedPointBuilder();\n }\n\n static fromBuilder(builder: FixedPointBuilder): FixedPoint | null {\n const buffer = builder.build();\n return FixedPoint.from_array(buffer);\n }\n\n get_mantissa(): bigint {\n const offset = 0;\n return this.view.getBigInt64(offset, true); /* little-endian */\n }\n\n set_mantissa(value: bigint): void {\n const offset = 0;\n this.view.setBigInt64(offset, value, true); /* little-endian */\n }\n\n get mantissa(): bigint {\n return this.get_mantissa();\n }\n\n set mantissa(value: bigint) {\n this.set_mantissa(value);\n }\n\n get_scale(): number {\n const offset = 8;\n return this.view.getUint8(offset);\n }\n\n set_scale(value: number): void {\n const offset = 8;\n this.view.setUint8(offset, value);\n }\n\n get scale(): number {\n return this.get_scale();\n }\n\n set scale(value: number) {\n this.set_scale(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_FixedPoint.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_FixedPoint, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for FixedPoint');\n }\n return __tnBigIntToNumber(irResult, 'FixedPoint::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 9) return { ok: false, code: \"tn.buffer_too_small\", consumed: 9 };\n return { ok: true, consumed: 9 };\n }\n\n static new(mantissa: bigint, scale: number): FixedPoint {\n const buffer = new Uint8Array(9);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setBigInt64(0, mantissa, true); /* mantissa (little-endian) */\n view.setUint8(8, scale); /* scale */\n\n return new FixedPoint(buffer);\n }\n\n static from_array(buffer: Uint8Array): FixedPoint | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new FixedPoint(buffer);\n }\n\n}\n\nexport class FixedPointBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(9);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mantissa(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigInt64(0, cast, true);\n return this;\n }\n\n set_scale(value: number): this {\n this.view.setUint8(8, value);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): FixedPoint {\n const view = FixedPoint.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build FixedPoint\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"FixedPoint\", (params) => FixedPoint.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"FixedPoint\", (buffer, params) => FixedPoint.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"FixedPoint\", (buffer) => { const result = FixedPoint.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR Hash ----- */\n\nconst __tn_ir_Hash = {\n typeName: \"Hash\",\n root: { op: \"const\", value: 32n }\n} as const;\n\nexport class Hash {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): Hash {\n if (!buffer || buffer.length === undefined) throw new Error(\"Hash.__tnCreateView requires a Uint8Array\");\n return new Hash(new Uint8Array(buffer));\n }\n\n static builder(): HashBuilder {\n return new HashBuilder();\n }\n\n static fromBuilder(builder: HashBuilder): Hash | null {\n const buffer = builder.build();\n return Hash.from_array(buffer);\n }\n\n get_bytes(): number[] {\n const offset = 0;\n const result: number[] = [];\n for (let i = 0; i < 32; i++) {\n result.push(this.view.getUint8((offset + i * 1)));\n }\n return result;\n }\n\n set_bytes(value: number[]): void {\n const offset = 0;\n if (value.length !== 32) {\n throw new Error('Array length must be 32');\n }\n for (let i = 0; i < 32; i++) {\n this.view.setUint8((offset + i * 1), value[i]);\n }\n }\n\n get bytes(): number[] {\n return this.get_bytes();\n }\n\n set bytes(value: number[]) {\n this.set_bytes(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_Hash.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_Hash, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for Hash');\n }\n return __tnBigIntToNumber(irResult, 'Hash::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 32) return { ok: false, code: \"tn.buffer_too_small\", consumed: 32 };\n return { ok: true, consumed: 32 };\n }\n\n static from_array(buffer: Uint8Array): Hash | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new Hash(buffer);\n }\n\n}\n\nexport class HashBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(32);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_bytes(values: number[]): this {\n if (values.length !== 32) throw new Error(\"bytes expects 32 elements\");\n for (let i = 0; i < values.length; i++) {\n const byteOffset = 0 + i * 1;\n this.view.setUint8(byteOffset, values[i]);\n }\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): Hash {\n const view = Hash.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build Hash\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"Hash\", (params) => Hash.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Hash\", (buffer, params) => Hash.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"Hash\", (buffer) => { const result = Hash.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR InstructionData ----- */\n\nconst __tn_ir_InstructionData = {\n typeName: \"InstructionData\",\n root: { op: \"align\", alignment: 1, node: { op: \"add\", left: { op: \"add\", left: { op: \"align\", alignment: 2, node: { op: \"const\", value: 2n } }, right: { op: \"align\", alignment: 8, node: { op: \"const\", value: 8n } } }, right: { op: \"align\", alignment: 1, node: { op: \"mul\", left: { op: \"field\", param: \"data.data_size\" }, right: { op: \"const\", value: 1n } } } } }\n} as const;\n\nexport class InstructionData {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n private __tnParams: InstructionData.Params;\n\n private constructor(private buffer: Uint8Array, params?: InstructionData.Params, fieldContext?: Record<string, number | bigint>) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n this.__tnFieldContext = fieldContext ?? null;\n if (params) {\n this.__tnParams = params;\n } else {\n const derived = InstructionData.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"InstructionData: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: InstructionData.Params, fieldContext?: Record<string, number | bigint> }): InstructionData {\n if (!buffer || buffer.length === undefined) throw new Error(\"InstructionData.__tnCreateView requires a Uint8Array\");\n let params = opts?.params ?? null;\n if (!params) {\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const derived = InstructionData.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"InstructionData.__tnCreateView: failed to derive params\");\n params = derived.params;\n }\n const instance = new InstructionData(new Uint8Array(buffer), params, opts?.fieldContext);\n return instance;\n }\n\n dynamicParams(): InstructionData.Params {\n return this.__tnParams;\n }\n\n withFieldContext(context: Record<string, number | bigint>): this {\n this.__tnFieldContext = context;\n return this;\n }\n\n private __tnResolveFieldRef(path: string): number {\n const getterName = `get_${path.replace(/[.]/g, '_')}`;\n const getter = (this as any)[getterName];\n if (typeof getter === \"function\") {\n const value = getter.call(this);\n return typeof value === \"bigint\" ? __tnBigIntToNumber(value, \"InstructionData::__tnResolveFieldRef\") : value;\n }\n if (this.__tnFieldContext && Object.prototype.hasOwnProperty.call(this.__tnFieldContext, path)) {\n const contextValue = this.__tnFieldContext[path];\n return typeof contextValue === \"bigint\" ? __tnBigIntToNumber(contextValue, \"InstructionData::__tnResolveFieldRef\") : contextValue;\n }\n throw new Error(\"InstructionData: field reference '\" + path + \"' is not available; provide fieldContext when creating this view\");\n }\n\n static builder(): InstructionDataBuilder {\n return new InstructionDataBuilder();\n }\n\n static fromBuilder(builder: InstructionDataBuilder): InstructionData | null {\n const buffer = builder.build();\n const params = builder.dynamicParams();\n return InstructionData.from_array(buffer, { params });\n }\n\n static readonly flexibleArrayWriters = Object.freeze([\n { field: \"data\", method: \"data\", sizeField: \"data_size\", paramKey: \"data_size\", elementSize: 1 },\n ] as const);\n\n private static __tnExtractParams(view: DataView, buffer: Uint8Array): { params: InstructionData.Params; derived: Record<string, bigint> | null } | null {\n if (buffer.length < 10) {\n return null;\n }\n const __tnParam_data_data_size = __tnToBigInt(view.getBigUint64(2, true));\n const __tnExtractedParams = InstructionData.Params.fromValues({\n data_data_size: __tnParam_data_data_size,\n });\n return { params: __tnExtractedParams, derived: null };\n }\n\n get_program_idx(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_program_idx(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get program_idx(): number {\n return this.get_program_idx();\n }\n\n set program_idx(value: number) {\n this.set_program_idx(value);\n }\n\n get_data_size(): bigint {\n const offset = 2;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_data_size(value: bigint): void {\n const offset = 2;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get data_size(): bigint {\n return this.get_data_size();\n }\n\n set data_size(value: bigint) {\n this.set_data_size(value);\n }\n\n get_data_length(): number {\n return this.__tnResolveFieldRef(\"data_size\");\n }\n\n get_data_at(index: number): number {\n const offset = 10;\n return this.view.getUint8(offset + index * 1);\n }\n\n get_data(): number[] {\n const len = this.get_data_length();\n const result: number[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_data_at(i));\n }\n return result;\n }\n\n set_data_at(index: number, value: number): void {\n const offset = 10;\n this.view.setUint8((offset + index * 1), value);\n }\n\n set_data(value: number[]): void {\n const len = Math.min(this.get_data_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_data_at(i, value[i]);\n }\n }\n\n get data(): number[] {\n return this.get_data();\n }\n\n set data(value: number[]) {\n this.set_data(value);\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_InstructionData.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_InstructionData, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(data_data_size: number | bigint): bigint {\n const params = InstructionData.Params.fromValues({\n data_data_size: data_data_size,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: InstructionData.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"data.data_size\"] = params.data_data_size;\n return record;\n }\n\n static footprintIrFromParams(params: InstructionData.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: InstructionData.Params): number {\n const irResult = this.footprintIrFromParams(params);\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for InstructionData');\n return __tnBigIntToNumber(irResult, 'InstructionData::footprintFromParams');\n }\n\n static footprintFromValues(input: { data_data_size: number | bigint }): number {\n const params = InstructionData.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: InstructionData.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: InstructionData.Params }): { ok: boolean; code?: string; consumed?: number; params?: InstructionData.Params } {\n if (!buffer || buffer.length === undefined) {\n return { ok: false, code: \"tn.invalid_buffer\" };\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n let params = opts?.params ?? null;\n if (!params) {\n const extracted = this.__tnExtractParams(view, buffer);\n if (!extracted) return { ok: false, code: \"tn.param_extraction_failed\" };\n params = extracted.params;\n }\n const __tnParamsRec = this.__tnPackParams(params);\n const irResult = this.__tnValidateInternal(buffer, __tnParamsRec);\n if (!irResult.ok) {\n return { ok: false, code: irResult.code, consumed: irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'InstructionData::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'InstructionData::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: InstructionData.Params }): InstructionData | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n let params = opts?.params ?? null;\n if (!params) {\n const derived = this.__tnExtractParams(view, buffer);\n if (!derived) return null;\n params = derived.params;\n }\n const validation = this.validate(buffer, { params });\n if (!validation.ok) {\n return null;\n }\n const cached = validation.params ?? params;\n const state = new InstructionData(buffer, cached);\n return state;\n }\n\n\n}\n\nexport namespace InstructionData {\n export type Params = {\n /** ABI path: data.data_size */\n readonly data_data_size: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n data_data_size: \"data.data_size\",\n } as const);\n\n export const Params = {\n fromValues(input: { data_data_size: number | bigint }): Params {\n return {\n data_data_size: __tnToBigInt(input.data_data_size),\n };\n },\n fromBuilder(source: { dynamicParams(): Params } | { params: Params } | Params): Params {\n if ((source as { dynamicParams?: () => Params }).dynamicParams) {\n return (source as { dynamicParams(): Params }).dynamicParams();\n }\n if ((source as { params?: Params }).params) {\n return (source as { params: Params }).params;\n }\n return source as Params;\n }\n };\n\n export function params(input: { data_data_size: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\nexport class InstructionDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n private __tnCachedParams: InstructionData.Params | null = null;\n private __tnLastBuffer: Uint8Array | null = null;\n private __tnLastParams: InstructionData.Params | null = null;\n private __tnFam_data: Uint8Array | null = null;\n private __tnFam_dataCount: number | null = null;\n private __tnFamWriter_data?: __TnFamWriterResult<InstructionDataBuilder>;\n\n constructor() {\n this.buffer = new Uint8Array(10);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n private __tnInvalidate(): void {\n this.__tnCachedParams = null;\n this.__tnLastBuffer = null;\n this.__tnLastParams = null;\n }\n\n set_program_idx(value: number): this {\n this.view.setUint16(0, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_data_size(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(2, cast, true);\n this.__tnInvalidate();\n return this;\n }\n\n data(): __TnFamWriterResult<InstructionDataBuilder> {\n if (!this.__tnFamWriter_data) {\n this.__tnFamWriter_data = __tnCreateFamWriter(this, \"data\", (payload) => {\n const bytes = new Uint8Array(payload);\n const elementCount = bytes.length;\n this.__tnFam_data = bytes;\n this.__tnFam_dataCount = elementCount;\n this.set_data_size(__tnToBigInt(elementCount));\n this.__tnInvalidate();\n });\n }\n return this.__tnFamWriter_data!;\n }\n\n build(): Uint8Array {\n const params = this.__tnComputeParams();\n const size = InstructionData.footprintFromParams(params);\n const buffer = new Uint8Array(size);\n this.__tnWriteInto(buffer);\n this.__tnValidateOrThrow(buffer, params);\n return buffer;\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n const params = this.__tnComputeParams();\n const size = InstructionData.footprintFromParams(params);\n if (target.length - offset < size) throw new Error(\"InstructionDataBuilder: target buffer too small\");\n const slice = target.subarray(offset, offset + size);\n this.__tnWriteInto(slice);\n this.__tnValidateOrThrow(slice, params);\n return target;\n }\n\n finish(): InstructionData {\n const buffer = this.build();\n const params = this.__tnLastParams ?? this.__tnComputeParams();\n const view = InstructionData.from_array(buffer, { params });\n if (!view) throw new Error(\"InstructionDataBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): InstructionData {\n return this.finish();\n }\n\n dynamicParams(): InstructionData.Params {\n return this.__tnComputeParams();\n }\n\n private __tnComputeParams(): InstructionData.Params {\n if (this.__tnCachedParams) return this.__tnCachedParams;\n const params = InstructionData.Params.fromValues({\n data_data_size: (() => { if (this.__tnFam_dataCount === null) throw new Error(\"InstructionDataBuilder: field 'data' must be written before computing params\"); return __tnToBigInt(this.__tnFam_dataCount); })(),\n });\n this.__tnCachedParams = params;\n return params;\n }\n\n private __tnWriteInto(target: Uint8Array): void {\n target.set(this.buffer, 0);\n let cursor = this.buffer.length;\n const __tnLocal_data_bytes = this.__tnFam_data;\n if (!__tnLocal_data_bytes) throw new Error(\"InstructionDataBuilder: field 'data' must be written before build\");\n target.set(__tnLocal_data_bytes, cursor);\n cursor += __tnLocal_data_bytes.length;\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array, params: InstructionData.Params): void {\n const result = InstructionData.validate(buffer, { params });\n if (!result.ok) {\n throw new Error(`${ InstructionData }Builder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n this.__tnLastParams = result.params ?? params;\n this.__tnLastBuffer = buffer;\n }\n}\n\n__tnRegisterFootprint(\"InstructionData\", (params) => InstructionData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"InstructionData\", (buffer, params) => InstructionData.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"InstructionData\", (buffer) => { const result = InstructionData.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR Pubkey ----- */\n\nconst __tn_ir_Pubkey = {\n typeName: \"Pubkey\",\n root: { op: \"const\", value: 32n }\n} as const;\n\nexport class Pubkey {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): Pubkey {\n if (!buffer || buffer.length === undefined) throw new Error(\"Pubkey.__tnCreateView requires a Uint8Array\");\n return new Pubkey(new Uint8Array(buffer));\n }\n\n static builder(): PubkeyBuilder {\n return new PubkeyBuilder();\n }\n\n static fromBuilder(builder: PubkeyBuilder): Pubkey | null {\n const buffer = builder.build();\n return Pubkey.from_array(buffer);\n }\n\n get_bytes(): number[] {\n const offset = 0;\n const result: number[] = [];\n for (let i = 0; i < 32; i++) {\n result.push(this.view.getUint8((offset + i * 1)));\n }\n return result;\n }\n\n set_bytes(value: number[]): void {\n const offset = 0;\n if (value.length !== 32) {\n throw new Error('Array length must be 32');\n }\n for (let i = 0; i < 32; i++) {\n this.view.setUint8((offset + i * 1), value[i]);\n }\n }\n\n get bytes(): number[] {\n return this.get_bytes();\n }\n\n set bytes(value: number[]) {\n this.set_bytes(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_Pubkey.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_Pubkey, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for Pubkey');\n }\n return __tnBigIntToNumber(irResult, 'Pubkey::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 32) return { ok: false, code: \"tn.buffer_too_small\", consumed: 32 };\n return { ok: true, consumed: 32 };\n }\n\n static from_array(buffer: Uint8Array): Pubkey | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new Pubkey(buffer);\n }\n\n}\n\nexport class PubkeyBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(32);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_bytes(values: number[]): this {\n if (values.length !== 32) throw new Error(\"bytes expects 32 elements\");\n for (let i = 0; i < values.length; i++) {\n const byteOffset = 0 + i * 1;\n this.view.setUint8(byteOffset, values[i]);\n }\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): Pubkey {\n const view = Pubkey.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build Pubkey\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"Pubkey\", (params) => Pubkey.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Pubkey\", (buffer, params) => Pubkey.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"Pubkey\", (buffer) => { const result = Pubkey.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR Signature ----- */\n\nconst __tn_ir_Signature = {\n typeName: \"Signature\",\n root: { op: \"const\", value: 64n }\n} as const;\n\nexport class Signature {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): Signature {\n if (!buffer || buffer.length === undefined) throw new Error(\"Signature.__tnCreateView requires a Uint8Array\");\n return new Signature(new Uint8Array(buffer));\n }\n\n static builder(): SignatureBuilder {\n return new SignatureBuilder();\n }\n\n static fromBuilder(builder: SignatureBuilder): Signature | null {\n const buffer = builder.build();\n return Signature.from_array(buffer);\n }\n\n get_bytes(): number[] {\n const offset = 0;\n const result: number[] = [];\n for (let i = 0; i < 64; i++) {\n result.push(this.view.getUint8((offset + i * 1)));\n }\n return result;\n }\n\n set_bytes(value: number[]): void {\n const offset = 0;\n if (value.length !== 64) {\n throw new Error('Array length must be 64');\n }\n for (let i = 0; i < 64; i++) {\n this.view.setUint8((offset + i * 1), value[i]);\n }\n }\n\n get bytes(): number[] {\n return this.get_bytes();\n }\n\n set bytes(value: number[]) {\n this.set_bytes(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_Signature.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_Signature, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for Signature');\n }\n return __tnBigIntToNumber(irResult, 'Signature::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 64) return { ok: false, code: \"tn.buffer_too_small\", consumed: 64 };\n return { ok: true, consumed: 64 };\n }\n\n static from_array(buffer: Uint8Array): Signature | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new Signature(buffer);\n }\n\n}\n\nexport class SignatureBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(64);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_bytes(values: number[]): this {\n if (values.length !== 64) throw new Error(\"bytes expects 64 elements\");\n for (let i = 0; i < values.length; i++) {\n const byteOffset = 0 + i * 1;\n this.view.setUint8(byteOffset, values[i]);\n }\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): Signature {\n const view = Signature.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build Signature\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"Signature\", (params) => Signature.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Signature\", (buffer, params) => Signature.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"Signature\", (buffer) => { const result = Signature.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR Timestamp ----- */\n\nconst __tn_ir_Timestamp = {\n typeName: \"Timestamp\",\n root: { op: \"const\", value: 8n }\n} as const;\n\nexport class Timestamp {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): Timestamp {\n if (!buffer || buffer.length === undefined) throw new Error(\"Timestamp.__tnCreateView requires a Uint8Array\");\n return new Timestamp(new Uint8Array(buffer));\n }\n\n static builder(): TimestampBuilder {\n return new TimestampBuilder();\n }\n\n static fromBuilder(builder: TimestampBuilder): Timestamp | null {\n const buffer = builder.build();\n return Timestamp.from_array(buffer);\n }\n\n get_seconds(): bigint {\n const offset = 0;\n return this.view.getBigInt64(offset, true); /* little-endian */\n }\n\n set_seconds(value: bigint): void {\n const offset = 0;\n this.view.setBigInt64(offset, value, true); /* little-endian */\n }\n\n get seconds(): bigint {\n return this.get_seconds();\n }\n\n set seconds(value: bigint) {\n this.set_seconds(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_Timestamp.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_Timestamp, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for Timestamp');\n }\n return __tnBigIntToNumber(irResult, 'Timestamp::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 8) return { ok: false, code: \"tn.buffer_too_small\", consumed: 8 };\n return { ok: true, consumed: 8 };\n }\n\n static new(seconds: bigint): Timestamp {\n const buffer = new Uint8Array(8);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setBigInt64(0, seconds, true); /* seconds (little-endian) */\n\n return new Timestamp(buffer);\n }\n\n static from_array(buffer: Uint8Array): Timestamp | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new Timestamp(buffer);\n }\n\n}\n\nexport class TimestampBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(8);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_seconds(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigInt64(0, cast, true);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): Timestamp {\n const view = Timestamp.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build Timestamp\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"Timestamp\", (params) => Timestamp.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Timestamp\", (buffer, params) => Timestamp.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"Timestamp\", (buffer) => { const result = Timestamp.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n","/* Auto-generated TypeScript code */\n/* WARNING: Do not modify this file directly. It is generated from ABI definitions. */\n\nimport { Pubkey } from \"../../common/primitives/types\";\n\ntype __TnIrNode =\n | { readonly op: \"zero\" }\n | { readonly op: \"const\"; readonly value: bigint }\n | { readonly op: \"field\"; readonly param: string }\n | {\n readonly op: \"add\";\n readonly left: __TnIrNode;\n readonly right: __TnIrNode;\n }\n | {\n readonly op: \"mul\";\n readonly left: __TnIrNode;\n readonly right: __TnIrNode;\n }\n | {\n readonly op: \"align\";\n readonly alignment: number;\n readonly node: __TnIrNode;\n }\n | {\n readonly op: \"switch\";\n readonly tag: string;\n readonly cases: readonly { readonly value: number; readonly node: __TnIrNode }[];\n readonly default?: __TnIrNode;\n }\n | {\n readonly op: \"call\";\n readonly typeName: string;\n readonly args: readonly { readonly name: string; readonly source: string }[];\n }\n | {\n readonly op: \"sumOverArray\";\n readonly count: __TnIrNode;\n readonly elementTypeName: string;\n readonly fieldName: string;\n };\n\ntype __TnIrContext = {\n params: Record<string, bigint>;\n buffer?: Uint8Array;\n typeName?: string;\n};\n\ntype __TnValidateResult = {\n ok: boolean;\n code?: string;\n consumed?: bigint;\n params?: Record<string, bigint>;\n};\ntype __TnEvalResult =\n | { ok: true; value: bigint }\n | { ok: false; code: string };\ntype __TnBuilderLike = { build(): Uint8Array };\ntype __TnStructFieldInput =\n | Uint8Array\n | __TnBuilderLike\n | { buffer?: Uint8Array }\n | { asUint8Array?: () => Uint8Array }\n | { bytes?: () => Uint8Array };\ntype __TnVariantDescriptor = {\n readonly name: string;\n readonly tag: number;\n readonly payloadSize: number | null;\n readonly payloadType?: string;\n readonly createPayloadBuilder?: () => unknown | null;\n};\ntype __TnVariantSelectorResult<Parent> = {\n select(\n name: string\n ): { writePayload(payload: Uint8Array | __TnBuilderLike): { finish(): Parent } };\n finish(): Parent;\n};\ntype __TnFamWriterResult<Parent> = {\n write(payload: Uint8Array | __TnBuilderLike): { finish(): Parent };\n finish(): Parent;\n};\ntype __TnConsole = { warn?: (...args: unknown[]) => void };\n\nconst __tnWarnings = new Set<string>();\nconst __tnHasNativeBigInt = typeof BigInt === \"function\";\nconst __tnHasBigIntDataView =\n typeof DataView !== \"undefined\" &&\n typeof DataView.prototype.getBigInt64 === \"function\" &&\n typeof DataView.prototype.getBigUint64 === \"function\" &&\n typeof DataView.prototype.setBigInt64 === \"function\" &&\n typeof DataView.prototype.setBigUint64 === \"function\";\nconst __tnConsole: __TnConsole | undefined =\n typeof globalThis !== \"undefined\"\n ? (globalThis as { console?: __TnConsole }).console\n : undefined;\n\nfunction __tnLogWarn(message: string): void {\n if (__tnConsole && typeof __tnConsole.warn === \"function\") {\n __tnConsole.warn(message);\n }\n}\n\nfunction __tnWarnOnce(message: string): void {\n if (!__tnWarnings.has(message)) {\n __tnWarnings.add(message);\n __tnLogWarn(message);\n }\n}\n\nfunction __tnResolveBuilderInput(\n input: Uint8Array | __TnBuilderLike,\n context: string\n): Uint8Array {\n if (input instanceof Uint8Array) {\n return new Uint8Array(input);\n }\n if (input && typeof (input as __TnBuilderLike).build === \"function\") {\n const built = (input as __TnBuilderLike).build();\n if (!(built instanceof Uint8Array)) {\n throw new Error(`${context}: builder did not return Uint8Array`);\n }\n return new Uint8Array(built);\n }\n throw new Error(`${context}: expected Uint8Array or builder`);\n}\n\nfunction __tnResolveStructFieldInput(\n input: __TnStructFieldInput,\n context: string\n): Uint8Array {\n if (\n input instanceof Uint8Array ||\n (input && typeof (input as __TnBuilderLike).build === \"function\")\n ) {\n return __tnResolveBuilderInput(input as Uint8Array | __TnBuilderLike, context);\n }\n if (input && typeof (input as { asUint8Array?: () => Uint8Array }).asUint8Array === \"function\") {\n const bytes = (input as { asUint8Array: () => Uint8Array }).asUint8Array();\n return new Uint8Array(bytes);\n }\n if (input && typeof (input as { bytes?: () => Uint8Array }).bytes === \"function\") {\n const bytes = (input as { bytes: () => Uint8Array }).bytes();\n return new Uint8Array(bytes);\n }\n if (input && (input as { buffer?: unknown }).buffer instanceof Uint8Array) {\n return new Uint8Array((input as { buffer: Uint8Array }).buffer);\n }\n throw new Error(`${context}: expected Uint8Array, builder, or view-like value`);\n}\n\nfunction __tnMaybeCallBuilder(ctor: unknown): unknown | null {\n if (!ctor) {\n return null;\n }\n const builderFn = (ctor as { builder?: () => unknown }).builder;\n return typeof builderFn === \"function\" ? builderFn() : null;\n}\n\nfunction __tnCreateVariantSelector<Parent, Descriptor extends __TnVariantDescriptor>(\n parent: Parent,\n descriptors: readonly Descriptor[],\n assign: (descriptor: Descriptor, payload: Uint8Array) => void\n): __TnVariantSelectorResult<Parent> {\n return {\n select(name: string) {\n const descriptor = descriptors.find((variant) => variant.name === name);\n if (!descriptor) {\n throw new Error(`Unknown variant '${name}'`);\n }\n return {\n writePayload(payload: Uint8Array | __TnBuilderLike) {\n const bytes = __tnResolveBuilderInput(\n payload,\n `variant ${descriptor.name}`\n );\n if (\n descriptor.payloadSize !== null &&\n bytes.length !== descriptor.payloadSize\n ) {\n throw new Error(\n `Payload for ${descriptor.name} must be ${descriptor.payloadSize} bytes`\n );\n }\n assign(descriptor, bytes);\n return {\n finish(): Parent {\n return parent;\n },\n };\n },\n };\n },\n finish(): Parent {\n return parent;\n },\n };\n}\n\nfunction __tnCreateFamWriter<Parent>(\n parent: Parent,\n fieldName: string,\n assign: (bytes: Uint8Array) => void\n): __TnFamWriterResult<Parent> {\n let hasWritten = false;\n return {\n write(payload: Uint8Array | __TnBuilderLike) {\n const bytes = __tnResolveBuilderInput(\n payload,\n `flexible array '${fieldName}'`\n );\n const copy = new Uint8Array(bytes);\n assign(copy);\n hasWritten = true;\n return {\n finish(): Parent {\n return parent;\n },\n };\n },\n finish(): Parent {\n if (!hasWritten) {\n throw new Error(\n `flexible array '${fieldName}' requires write() before finish()`\n );\n }\n return parent;\n },\n };\n}\n\nconst __tnMask32 = __tnHasNativeBigInt\n ? (BigInt(1) << BigInt(32)) - BigInt(1)\n : 0xffffffff;\nconst __tnSignBit32 = __tnHasNativeBigInt\n ? BigInt(1) << BigInt(31)\n : 0x80000000;\n\nfunction __tnToBigInt(value: number | bigint): bigint {\n if (__tnHasNativeBigInt) {\n return typeof value === \"bigint\" ? value : BigInt(value);\n }\n if (typeof value === \"bigint\") return value;\n if (!Number.isFinite(value)) {\n throw new Error(\"IR runtime received non-finite numeric input\");\n }\n if (!Number.isSafeInteger(value)) {\n __tnWarnOnce(\n `[thru-net] Precision loss while polyfilling BigInt (value=${value})`\n );\n }\n return (value as unknown) as bigint;\n}\n\nfunction __tnBigIntToNumber(value: bigint, context: string): number {\n if (__tnHasNativeBigInt) {\n const converted = Number(value);\n if (!Number.isFinite(converted)) {\n throw new Error(`${context} overflowed Number range`);\n }\n return converted;\n }\n return value as unknown as number;\n}\n\nfunction __tnBigIntEquals(lhs: bigint, rhs: bigint): boolean {\n if (__tnHasNativeBigInt) return lhs === rhs;\n return (lhs as unknown as number) === (rhs as unknown as number);\n}\n\nfunction __tnBigIntGreaterThan(lhs: bigint, rhs: bigint): boolean {\n if (__tnHasNativeBigInt) return lhs > rhs;\n return (lhs as unknown as number) > (rhs as unknown as number);\n}\n\nfunction __tnPopcount(value: number | bigint): number {\n let v =\n typeof value === \"bigint\"\n ? Number(value & BigInt(0xffffffff))\n : Number(value) >>> 0;\n v = v - ((v >>> 1) & 0x55555555);\n v = (v & 0x33333333) + ((v >>> 2) & 0x33333333);\n return (((v + (v >>> 4)) & 0x0f0f0f0f) * 0x01010101) >>> 24;\n}\n\nfunction __tnRaiseIrError(code: string, message: string): never {\n const err = new Error(message);\n (err as { code?: string }).code = code;\n throw err;\n}\n\nfunction __tnCheckedAdd(lhs: bigint, rhs: bigint): bigint {\n if (__tnHasNativeBigInt) {\n const result = (lhs as bigint) + (rhs as bigint);\n if (result < BigInt(0)) {\n __tnRaiseIrError(\n \"tn.ir.overflow\",\n \"IR runtime detected negative size via addition\"\n );\n }\n return result;\n }\n const left = lhs as unknown as number;\n const right = rhs as unknown as number;\n const sum = left + right;\n if (sum < 0 || !Number.isFinite(sum)) {\n __tnRaiseIrError(\n \"tn.ir.overflow\",\n \"IR runtime detected invalid addition result\"\n );\n }\n if (!Number.isSafeInteger(sum)) {\n __tnWarnOnce(\"[thru-net] Precision loss while polyfilling BigInt addition\");\n }\n return (sum as unknown) as bigint;\n}\n\nfunction __tnCheckedMul(lhs: bigint, rhs: bigint): bigint {\n if (__tnHasNativeBigInt) {\n const result = (lhs as bigint) * (rhs as bigint);\n if (result < BigInt(0)) {\n __tnRaiseIrError(\n \"tn.ir.overflow\",\n \"IR runtime detected negative size via multiplication\"\n );\n }\n return result;\n }\n const left = lhs as unknown as number;\n const right = rhs as unknown as number;\n const product = left * right;\n if (product < 0 || !Number.isFinite(product)) {\n __tnRaiseIrError(\n \"tn.ir.overflow\",\n \"IR runtime detected invalid multiplication result\"\n );\n }\n if (!Number.isSafeInteger(product)) {\n __tnWarnOnce(\n \"[thru-net] Precision loss while polyfilling BigInt multiplication\"\n );\n }\n return (product as unknown) as bigint;\n}\n\nfunction __tnAlign(value: bigint, alignment: number): bigint {\n if (alignment <= 1) return value;\n const alignBig = __tnToBigInt(alignment);\n if (__tnHasNativeBigInt) {\n const remainder = value % alignBig;\n if (__tnBigIntEquals(remainder, __tnToBigInt(0))) {\n return value;\n }\n const delta = alignBig - remainder;\n return __tnCheckedAdd(value, delta);\n }\n const current = __tnBigIntToNumber(value, \"IR align\");\n const alignNum = alignment >>> 0;\n const remainder = current % alignNum;\n const next = remainder === 0 ? current : current + (alignNum - remainder);\n return __tnToBigInt(next);\n}\n\nfunction __tnSplitUint64(value: bigint): { high: number; low: number } {\n if (__tnHasNativeBigInt) {\n const low = Number(value & (__tnMask32 as bigint));\n const high = Number((value >> BigInt(32)) & (__tnMask32 as bigint));\n return { high, low };\n }\n const num = __tnBigIntToNumber(value, \"DataView.setBigUint64\");\n const low = num >>> 0;\n const high = Math.floor(num / 4294967296) >>> 0;\n return { high, low };\n}\n\nfunction __tnSplitInt64(value: bigint): { high: number; low: number } {\n if (__tnHasNativeBigInt) {\n const low = Number(value & (__tnMask32 as bigint));\n let high = Number((value >> BigInt(32)) & (__tnMask32 as bigint));\n if ((BigInt(high) & (__tnSignBit32 as bigint)) !== BigInt(0)) {\n high -= 0x100000000;\n }\n return { high, low };\n }\n const num = __tnBigIntToNumber(value, \"DataView.setBigInt64\");\n const low = num >>> 0;\n const high = Math.floor(num / 4294967296);\n return { high, low };\n}\n\nfunction __tnPolyfillReadUint64(\n view: DataView,\n offset: number,\n littleEndian: boolean\n): bigint {\n const low = littleEndian\n ? view.getUint32(offset, true)\n : view.getUint32(offset + 4, false);\n const high = littleEndian\n ? view.getUint32(offset + 4, true)\n : view.getUint32(offset, false);\n if (__tnHasNativeBigInt) {\n return (BigInt(high) << BigInt(32)) | BigInt(low);\n }\n const value = high * 4294967296 + low;\n if (!Number.isSafeInteger(value)) {\n __tnWarnOnce(\n \"[thru-net] Precision loss while polyfilling DataView.getBigUint64\"\n );\n }\n return (value as unknown) as bigint;\n}\n\nfunction __tnPolyfillReadInt64(\n view: DataView,\n offset: number,\n littleEndian: boolean\n): bigint {\n const low = littleEndian\n ? view.getUint32(offset, true)\n : view.getUint32(offset + 4, false);\n const high = littleEndian\n ? view.getInt32(offset + 4, true)\n : view.getInt32(offset, false);\n if (__tnHasNativeBigInt) {\n return (BigInt(high) << BigInt(32)) | BigInt(low);\n }\n const value = high * 4294967296 + low;\n if (!Number.isSafeInteger(value)) {\n __tnWarnOnce(\n \"[thru-net] Precision loss while polyfilling DataView.getBigInt64\"\n );\n }\n return (value as unknown) as bigint;\n}\n\nfunction __tnPolyfillWriteUint64(\n view: DataView,\n offset: number,\n value: bigint,\n littleEndian: boolean\n): void {\n const parts = __tnSplitUint64(value);\n if (littleEndian) {\n view.setUint32(offset, parts.low, true);\n view.setUint32(offset + 4, parts.high, true);\n } else {\n view.setUint32(offset, parts.high, false);\n view.setUint32(offset + 4, parts.low, false);\n }\n}\n\nfunction __tnPolyfillWriteInt64(\n view: DataView,\n offset: number,\n value: bigint,\n littleEndian: boolean\n): void {\n const parts = __tnSplitInt64(value);\n if (littleEndian) {\n view.setUint32(offset, parts.low >>> 0, true);\n view.setInt32(offset + 4, parts.high | 0, true);\n } else {\n view.setInt32(offset, parts.high | 0, false);\n view.setUint32(offset + 4, parts.low >>> 0, false);\n }\n}\n\nif (typeof DataView !== \"undefined\" && !__tnHasBigIntDataView) {\n const proto = DataView.prototype as unknown as Record<string, unknown>;\n if (typeof proto.getBigUint64 !== \"function\") {\n (proto as any).getBigUint64 = function (\n offset: number,\n littleEndian?: boolean\n ): bigint {\n __tnWarnOnce(\n \"[thru-net] Polyfilling DataView.getBigUint64; precision may be lost\"\n );\n return __tnPolyfillReadUint64(this, offset, !!littleEndian);\n };\n }\n if (typeof proto.getBigInt64 !== \"function\") {\n (proto as any).getBigInt64 = function (\n offset: number,\n littleEndian?: boolean\n ): bigint {\n __tnWarnOnce(\n \"[thru-net] Polyfilling DataView.getBigInt64; precision may be lost\"\n );\n return __tnPolyfillReadInt64(this, offset, !!littleEndian);\n };\n }\n if (typeof proto.setBigUint64 !== \"function\") {\n (proto as any).setBigUint64 = function (\n offset: number,\n value: bigint,\n littleEndian?: boolean\n ): void {\n __tnWarnOnce(\n \"[thru-net] Polyfilling DataView.setBigUint64; precision may be lost\"\n );\n __tnPolyfillWriteUint64(this, offset, value, !!littleEndian);\n };\n }\n if (typeof proto.setBigInt64 !== \"function\") {\n (proto as any).setBigInt64 = function (\n offset: number,\n value: bigint,\n littleEndian?: boolean\n ): void {\n __tnWarnOnce(\n \"[thru-net] Polyfilling DataView.setBigInt64; precision may be lost\"\n );\n __tnPolyfillWriteInt64(this, offset, value, !!littleEndian);\n };\n }\n if (!__tnHasNativeBigInt) {\n __tnWarnOnce(\n \"[thru-net] BigInt is unavailable; falling back to lossy 64-bit polyfill\"\n );\n }\n}\n\nconst __tnFootprintRegistry: Record<\n string,\n (params: Record<string, bigint>) => bigint\n> = {};\nconst __tnValidateRegistry: Record<\n string,\n (buffer: Uint8Array, params: Record<string, bigint>) => __TnValidateResult\n> = {};\nconst __tnDynamicValidateRegistry: Record<\n string,\n (buffer: Uint8Array) => __TnValidateResult\n> = {};\n\nfunction __tnRegisterFootprint(\n typeName: string,\n fn: (params: Record<string, bigint>) => bigint\n): void {\n __tnFootprintRegistry[typeName] = fn;\n}\n\nfunction __tnRegisterValidate(\n typeName: string,\n fn: (buffer: Uint8Array, params: Record<string, bigint>) => __TnValidateResult\n): void {\n __tnValidateRegistry[typeName] = fn;\n}\n\nfunction __tnRegisterDynamicValidate(\n typeName: string,\n fn: (buffer: Uint8Array) => __TnValidateResult\n): void {\n __tnDynamicValidateRegistry[typeName] = fn;\n}\n\nfunction __tnInvokeFootprint(\n typeName: string,\n params: Record<string, bigint>\n): bigint {\n const fn = __tnFootprintRegistry[typeName];\n if (!fn) throw new Error(`IR runtime missing footprint for ${typeName}`);\n return fn(params);\n}\n\nfunction __tnInvokeValidate(\n typeName: string,\n buffer: Uint8Array,\n params: Record<string, bigint>\n): __TnValidateResult {\n const fn = __tnValidateRegistry[typeName];\n if (!fn) throw new Error(`IR runtime missing validate helper for ${typeName}`);\n return fn(buffer, params);\n}\n\nfunction __tnInvokeDynamicValidate(\n typeName: string,\n buffer: Uint8Array\n): __TnValidateResult {\n const fn = __tnDynamicValidateRegistry[typeName];\n if (!fn) throw new Error(`IR runtime missing dynamic validate helper for ${typeName}`);\n return fn(buffer);\n}\n\nfunction __tnEvalFootprint(node: __TnIrNode, ctx: __TnIrContext): bigint {\n return __tnEvalIrNode(node, ctx, __tnToBigInt(0));\n}\n\nfunction __tnTryEvalFootprint(\n node: __TnIrNode,\n ctx: __TnIrContext\n): __TnEvalResult {\n return __tnTryEvalIr(node, ctx);\n}\n\nfunction __tnTryEvalIr(\n node: __TnIrNode,\n ctx: __TnIrContext\n): __TnEvalResult {\n try {\n return { ok: true, value: __tnEvalIrNode(node, ctx, __tnToBigInt(0)) };\n } catch (err) {\n return { ok: false, code: __tnNormalizeIrError(err) };\n }\n}\n\nfunction __tnIsEvalError(result: __TnEvalResult): result is { ok: false; code: string } {\n return result.ok === false;\n}\n\nfunction __tnValidateIrTree(\n ir: { readonly typeName: string; readonly root: __TnIrNode },\n buffer: Uint8Array,\n params: Record<string, bigint>\n): __TnValidateResult {\n const evalResult = __tnTryEvalIr(ir.root, {\n params,\n buffer,\n typeName: ir.typeName,\n });\n if (__tnIsEvalError(evalResult)) {\n return { ok: false, code: evalResult.code };\n }\n const required = evalResult.value;\n const available = __tnToBigInt(buffer.length);\n if (__tnBigIntGreaterThan(required, available)) {\n return { ok: false, code: \"tn.buffer_too_small\", consumed: required };\n }\n return { ok: true, consumed: required };\n}\n\nfunction __tnEvalIrNode(\n node: __TnIrNode,\n ctx: __TnIrContext,\n baseOffset: bigint\n): bigint {\n switch (node.op) {\n case \"zero\":\n return __tnToBigInt(0);\n case \"const\":\n return node.value;\n case \"field\": {\n const val = ctx.params[node.param];\n if (val === undefined) {\n const prefix = ctx.typeName ? `${ctx.typeName}: ` : \"\";\n __tnRaiseIrError(\n \"tn.ir.missing_param\",\n `${prefix}Missing IR parameter '${node.param}'`\n );\n }\n return val;\n }\n case \"add\":\n {\n const left = __tnEvalIrNode(node.left, ctx, baseOffset);\n const right = __tnEvalIrNode(\n node.right,\n ctx,\n __tnCheckedAdd(baseOffset, left)\n );\n return __tnCheckedAdd(left, right);\n }\n case \"mul\":\n return __tnCheckedMul(\n __tnEvalIrNode(node.left, ctx, baseOffset),\n __tnEvalIrNode(node.right, ctx, baseOffset)\n );\n case \"align\":\n return __tnAlign(__tnEvalIrNode(node.node, ctx, baseOffset), node.alignment);\n case \"switch\": {\n const tagVal = ctx.params[node.tag];\n if (tagVal === undefined) {\n const prefix = ctx.typeName ? `${ctx.typeName}: ` : \"\";\n __tnRaiseIrError(\n \"tn.ir.missing_param\",\n `${prefix}Missing IR switch tag '${node.tag}'`\n );\n }\n const tagNumber = Number(tagVal);\n for (const caseNode of node.cases) {\n if (caseNode.value === tagNumber) {\n return __tnEvalIrNode(caseNode.node, ctx, baseOffset);\n }\n }\n if (node.default) return __tnEvalIrNode(node.default, ctx, baseOffset);\n __tnRaiseIrError(\n \"tn.ir.invalid_tag\",\n `Unhandled IR switch value ${tagNumber} for '${node.tag}'`\n );\n }\n case \"call\": {\n const nestedParams: Record<string, bigint> = Object.create(null);\n for (const arg of node.args) {\n const val = ctx.params[arg.source];\n if (val === undefined) {\n const prefix = ctx.typeName ? `${ctx.typeName}: ` : \"\";\n __tnRaiseIrError(\n \"tn.ir.missing_param\",\n `${prefix}Missing IR parameter '${arg.source}' for nested call`\n );\n }\n nestedParams[arg.name] = val;\n }\n if (ctx.buffer) {\n const nestedOffset = __tnBigIntToNumber(baseOffset, \"IR nested offset\");\n const nestedResult = __tnInvokeValidate(\n node.typeName,\n ctx.buffer.subarray(nestedOffset),\n nestedParams\n );\n if (!nestedResult.ok) {\n const nestedCode =\n nestedResult.code ?? `tn.ir.runtime_error: ${node.typeName}`;\n const prefixed = nestedCode.startsWith(\"tn.\")\n ? nestedCode\n : `tn.ir.runtime_error: ${node.typeName} -> ${nestedCode}`;\n __tnRaiseIrError(\n prefixed,\n `Nested validator ${node.typeName} failed`\n );\n }\n if (nestedResult.consumed !== undefined) {\n return nestedResult.consumed;\n }\n }\n return __tnInvokeFootprint(node.typeName, nestedParams);\n }\n case \"sumOverArray\": {\n if (!ctx.buffer) {\n __tnRaiseIrError(\n \"tn.ir.missing_buffer\",\n `Jagged array '${node.fieldName}' requires buffer-backed validation`\n );\n }\n const count = __tnBigIntToNumber(\n __tnEvalIrNode(node.count, ctx, baseOffset),\n `Jagged array '${node.fieldName}' count`\n );\n let cursor = __tnBigIntToNumber(baseOffset, \"IR jagged array offset\");\n let total = __tnToBigInt(0);\n for (let i = 0; i < count; i++) {\n const result = __tnInvokeDynamicValidate(\n node.elementTypeName,\n ctx.buffer.subarray(cursor)\n );\n if (!result.ok || result.consumed === undefined) {\n const code = result.code ?? \"tn.ir.runtime_error\";\n __tnRaiseIrError(\n code,\n `Jagged array '${node.fieldName}' element ${i} failed validation`\n );\n }\n cursor += __tnBigIntToNumber(result.consumed, \"IR jagged element size\");\n total = __tnCheckedAdd(total, result.consumed);\n }\n return total;\n }\n default:\n __tnRaiseIrError(\n \"tn.ir.runtime_error\",\n `Unsupported IR node ${(node as { op: string }).op}`\n );\n }\n}\n\nfunction __tnNormalizeIrError(err: unknown): string {\n if (err && typeof err === \"object\" && \"code\" in err) {\n const maybeCode = (err as { code?: string }).code;\n if (typeof maybeCode === \"string\" && maybeCode.length > 0) {\n return maybeCode;\n }\n }\n const message =\n err && typeof err === \"object\" && \"message\" in err\n ? String((err as { message?: unknown }).message ?? \"\")\n : typeof err === \"string\"\n ? err\n : \"\";\n if (message.includes(\"Missing IR parameter\")) return \"tn.ir.missing_param\";\n if (message.includes(\"Unhandled IR switch value\")) return \"tn.ir.invalid_tag\";\n if (\n message.includes(\"invalid\") ||\n message.includes(\"overflow\") ||\n message.includes(\"negative size\")\n ) {\n return \"tn.ir.overflow\";\n }\n if (message.length > 0) return `tn.ir.runtime_error: ${message}`;\n return \"tn.ir.runtime_error\";\n}\n\n__tnRegisterFootprint(\"Pubkey\", (params) => Pubkey.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Pubkey\", (buffer, params) => Pubkey.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"Pubkey\", (buffer) => { const result = Pubkey.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR AmmAddLiquidityInstruction ----- */\n\nconst __tn_ir_AmmAddLiquidityInstruction = {\n typeName: \"AmmAddLiquidityInstruction\",\n root: { op: \"const\", value: 34n }\n} as const;\n\nexport class AmmAddLiquidityInstruction {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): AmmAddLiquidityInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"AmmAddLiquidityInstruction.__tnCreateView requires a Uint8Array\");\n return new AmmAddLiquidityInstruction(new Uint8Array(buffer));\n }\n\n static builder(): AmmAddLiquidityInstructionBuilder {\n return new AmmAddLiquidityInstructionBuilder();\n }\n\n static fromBuilder(builder: AmmAddLiquidityInstructionBuilder): AmmAddLiquidityInstruction | null {\n const buffer = builder.build();\n return AmmAddLiquidityInstruction.from_array(buffer);\n }\n\n get_pool_account_idx(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_pool_account_idx(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get pool_account_idx(): number {\n return this.get_pool_account_idx();\n }\n\n set pool_account_idx(value: number) {\n this.set_pool_account_idx(value);\n }\n\n get_depositor_account_idx(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_depositor_account_idx(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get depositor_account_idx(): number {\n return this.get_depositor_account_idx();\n }\n\n set depositor_account_idx(value: number) {\n this.set_depositor_account_idx(value);\n }\n\n get_depositor_token_one_account_idx(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_depositor_token_one_account_idx(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get depositor_token_one_account_idx(): number {\n return this.get_depositor_token_one_account_idx();\n }\n\n set depositor_token_one_account_idx(value: number) {\n this.set_depositor_token_one_account_idx(value);\n }\n\n get_depositor_token_two_account_idx(): number {\n const offset = 6;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_depositor_token_two_account_idx(value: number): void {\n const offset = 6;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get depositor_token_two_account_idx(): number {\n return this.get_depositor_token_two_account_idx();\n }\n\n set depositor_token_two_account_idx(value: number) {\n this.set_depositor_token_two_account_idx(value);\n }\n\n get_depositor_lp_account_idx(): number {\n const offset = 8;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_depositor_lp_account_idx(value: number): void {\n const offset = 8;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get depositor_lp_account_idx(): number {\n return this.get_depositor_lp_account_idx();\n }\n\n set depositor_lp_account_idx(value: number) {\n this.set_depositor_lp_account_idx(value);\n }\n\n get_vault_one_account_idx(): number {\n const offset = 10;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_vault_one_account_idx(value: number): void {\n const offset = 10;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get vault_one_account_idx(): number {\n return this.get_vault_one_account_idx();\n }\n\n set vault_one_account_idx(value: number) {\n this.set_vault_one_account_idx(value);\n }\n\n get_vault_two_account_idx(): number {\n const offset = 12;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_vault_two_account_idx(value: number): void {\n const offset = 12;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get vault_two_account_idx(): number {\n return this.get_vault_two_account_idx();\n }\n\n set vault_two_account_idx(value: number) {\n this.set_vault_two_account_idx(value);\n }\n\n get_lp_mint_account_idx(): number {\n const offset = 14;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_lp_mint_account_idx(value: number): void {\n const offset = 14;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get lp_mint_account_idx(): number {\n return this.get_lp_mint_account_idx();\n }\n\n set lp_mint_account_idx(value: number) {\n this.set_lp_mint_account_idx(value);\n }\n\n get_token_program_account_idx(): number {\n const offset = 16;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_program_account_idx(value: number): void {\n const offset = 16;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_program_account_idx(): number {\n return this.get_token_program_account_idx();\n }\n\n set token_program_account_idx(value: number) {\n this.set_token_program_account_idx(value);\n }\n\n get_max_amount_mint_one(): bigint {\n const offset = 18;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_max_amount_mint_one(value: bigint): void {\n const offset = 18;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get max_amount_mint_one(): bigint {\n return this.get_max_amount_mint_one();\n }\n\n set max_amount_mint_one(value: bigint) {\n this.set_max_amount_mint_one(value);\n }\n\n get_max_amount_mint_two(): bigint {\n const offset = 26;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_max_amount_mint_two(value: bigint): void {\n const offset = 26;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get max_amount_mint_two(): bigint {\n return this.get_max_amount_mint_two();\n }\n\n set max_amount_mint_two(value: bigint) {\n this.set_max_amount_mint_two(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_AmmAddLiquidityInstruction.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_AmmAddLiquidityInstruction, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for AmmAddLiquidityInstruction');\n }\n return __tnBigIntToNumber(irResult, 'AmmAddLiquidityInstruction::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 34) return { ok: false, code: \"tn.buffer_too_small\", consumed: 34 };\n return { ok: true, consumed: 34 };\n }\n\n static new(pool_account_idx: number, depositor_account_idx: number, depositor_token_one_account_idx: number, depositor_token_two_account_idx: number, depositor_lp_account_idx: number, vault_one_account_idx: number, vault_two_account_idx: number, lp_mint_account_idx: number, token_program_account_idx: number, max_amount_mint_one: bigint, max_amount_mint_two: bigint): AmmAddLiquidityInstruction {\n const buffer = new Uint8Array(34);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, pool_account_idx, true); /* pool_account_idx (little-endian) */\n view.setUint16(2, depositor_account_idx, true); /* depositor_account_idx (little-endian) */\n view.setUint16(4, depositor_token_one_account_idx, true); /* depositor_token_one_account_idx (little-endian) */\n view.setUint16(6, depositor_token_two_account_idx, true); /* depositor_token_two_account_idx (little-endian) */\n view.setUint16(8, depositor_lp_account_idx, true); /* depositor_lp_account_idx (little-endian) */\n view.setUint16(10, vault_one_account_idx, true); /* vault_one_account_idx (little-endian) */\n view.setUint16(12, vault_two_account_idx, true); /* vault_two_account_idx (little-endian) */\n view.setUint16(14, lp_mint_account_idx, true); /* lp_mint_account_idx (little-endian) */\n view.setUint16(16, token_program_account_idx, true); /* token_program_account_idx (little-endian) */\n view.setBigUint64(18, max_amount_mint_one, true); /* max_amount_mint_one (little-endian) */\n view.setBigUint64(26, max_amount_mint_two, true); /* max_amount_mint_two (little-endian) */\n\n return new AmmAddLiquidityInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): AmmAddLiquidityInstruction | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new AmmAddLiquidityInstruction(buffer);\n }\n\n}\n\nexport class AmmAddLiquidityInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(34);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_pool_account_idx(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_depositor_account_idx(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_depositor_token_one_account_idx(value: number): this {\n this.view.setUint16(4, value, true);\n return this;\n }\n\n set_depositor_token_two_account_idx(value: number): this {\n this.view.setUint16(6, value, true);\n return this;\n }\n\n set_depositor_lp_account_idx(value: number): this {\n this.view.setUint16(8, value, true);\n return this;\n }\n\n set_vault_one_account_idx(value: number): this {\n this.view.setUint16(10, value, true);\n return this;\n }\n\n set_vault_two_account_idx(value: number): this {\n this.view.setUint16(12, value, true);\n return this;\n }\n\n set_lp_mint_account_idx(value: number): this {\n this.view.setUint16(14, value, true);\n return this;\n }\n\n set_token_program_account_idx(value: number): this {\n this.view.setUint16(16, value, true);\n return this;\n }\n\n set_max_amount_mint_one(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(18, cast, true);\n return this;\n }\n\n set_max_amount_mint_two(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(26, cast, true);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): AmmAddLiquidityInstruction {\n const view = AmmAddLiquidityInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build AmmAddLiquidityInstruction\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"AmmAddLiquidityInstruction\", (params) => AmmAddLiquidityInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"AmmAddLiquidityInstruction\", (buffer, params) => AmmAddLiquidityInstruction.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"AmmAddLiquidityInstruction\", (buffer) => { const result = AmmAddLiquidityInstruction.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR AmmError ----- */\n\nconst __tn_ir_AmmError = {\n typeName: \"AmmError\",\n root: { op: \"const\", value: 8n }\n} as const;\n\nexport class AmmError {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): AmmError {\n if (!buffer || buffer.length === undefined) throw new Error(\"AmmError.__tnCreateView requires a Uint8Array\");\n return new AmmError(new Uint8Array(buffer));\n }\n\n static builder(): AmmErrorBuilder {\n return new AmmErrorBuilder();\n }\n\n static fromBuilder(builder: AmmErrorBuilder): AmmError | null {\n const buffer = builder.build();\n return AmmError.from_array(buffer);\n }\n\n get_code(): bigint {\n const offset = 0;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_code(value: bigint): void {\n const offset = 0;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get code(): bigint {\n return this.get_code();\n }\n\n set code(value: bigint) {\n this.set_code(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_AmmError.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_AmmError, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for AmmError');\n }\n return __tnBigIntToNumber(irResult, 'AmmError::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 8) return { ok: false, code: \"tn.buffer_too_small\", consumed: 8 };\n return { ok: true, consumed: 8 };\n }\n\n static new(code: bigint): AmmError {\n const buffer = new Uint8Array(8);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setBigUint64(0, code, true); /* code (little-endian) */\n\n return new AmmError(buffer);\n }\n\n static from_array(buffer: Uint8Array): AmmError | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new AmmError(buffer);\n }\n\n}\n\nexport class AmmErrorBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(8);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_code(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(0, cast, true);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): AmmError {\n const view = AmmError.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build AmmError\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"AmmError\", (params) => AmmError.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"AmmError\", (buffer, params) => AmmError.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"AmmError\", (buffer) => { const result = AmmError.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR AmmSwapInstruction ----- */\n\nconst __tn_ir_AmmSwapInstruction = {\n typeName: \"AmmSwapInstruction\",\n root: { op: \"const\", value: 24n }\n} as const;\n\nexport class AmmSwapInstruction {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): AmmSwapInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"AmmSwapInstruction.__tnCreateView requires a Uint8Array\");\n return new AmmSwapInstruction(new Uint8Array(buffer));\n }\n\n static builder(): AmmSwapInstructionBuilder {\n return new AmmSwapInstructionBuilder();\n }\n\n static fromBuilder(builder: AmmSwapInstructionBuilder): AmmSwapInstruction | null {\n const buffer = builder.build();\n return AmmSwapInstruction.from_array(buffer);\n }\n\n get_pool_account_idx(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_pool_account_idx(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get pool_account_idx(): number {\n return this.get_pool_account_idx();\n }\n\n set pool_account_idx(value: number) {\n this.set_pool_account_idx(value);\n }\n\n get_user_transfer_authority_idx(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_user_transfer_authority_idx(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get user_transfer_authority_idx(): number {\n return this.get_user_transfer_authority_idx();\n }\n\n set user_transfer_authority_idx(value: number) {\n this.set_user_transfer_authority_idx(value);\n }\n\n get_user_input_account_idx(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_user_input_account_idx(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get user_input_account_idx(): number {\n return this.get_user_input_account_idx();\n }\n\n set user_input_account_idx(value: number) {\n this.set_user_input_account_idx(value);\n }\n\n get_user_output_account_idx(): number {\n const offset = 6;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_user_output_account_idx(value: number): void {\n const offset = 6;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get user_output_account_idx(): number {\n return this.get_user_output_account_idx();\n }\n\n set user_output_account_idx(value: number) {\n this.set_user_output_account_idx(value);\n }\n\n get_vault_input_account_idx(): number {\n const offset = 8;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_vault_input_account_idx(value: number): void {\n const offset = 8;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get vault_input_account_idx(): number {\n return this.get_vault_input_account_idx();\n }\n\n set vault_input_account_idx(value: number) {\n this.set_vault_input_account_idx(value);\n }\n\n get_vault_output_account_idx(): number {\n const offset = 10;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_vault_output_account_idx(value: number): void {\n const offset = 10;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get vault_output_account_idx(): number {\n return this.get_vault_output_account_idx();\n }\n\n set vault_output_account_idx(value: number) {\n this.set_vault_output_account_idx(value);\n }\n\n get_lp_mint_account_idx(): number {\n const offset = 12;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_lp_mint_account_idx(value: number): void {\n const offset = 12;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get lp_mint_account_idx(): number {\n return this.get_lp_mint_account_idx();\n }\n\n set lp_mint_account_idx(value: number) {\n this.set_lp_mint_account_idx(value);\n }\n\n get_token_program_account_idx(): number {\n const offset = 14;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_program_account_idx(value: number): void {\n const offset = 14;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_program_account_idx(): number {\n return this.get_token_program_account_idx();\n }\n\n set token_program_account_idx(value: number) {\n this.set_token_program_account_idx(value);\n }\n\n get_amount_in(): bigint {\n const offset = 16;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount_in(value: bigint): void {\n const offset = 16;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount_in(): bigint {\n return this.get_amount_in();\n }\n\n set amount_in(value: bigint) {\n this.set_amount_in(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_AmmSwapInstruction.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_AmmSwapInstruction, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for AmmSwapInstruction');\n }\n return __tnBigIntToNumber(irResult, 'AmmSwapInstruction::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 24) return { ok: false, code: \"tn.buffer_too_small\", consumed: 24 };\n return { ok: true, consumed: 24 };\n }\n\n static new(pool_account_idx: number, user_transfer_authority_idx: number, user_input_account_idx: number, user_output_account_idx: number, vault_input_account_idx: number, vault_output_account_idx: number, lp_mint_account_idx: number, token_program_account_idx: number, amount_in: bigint): AmmSwapInstruction {\n const buffer = new Uint8Array(24);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, pool_account_idx, true); /* pool_account_idx (little-endian) */\n view.setUint16(2, user_transfer_authority_idx, true); /* user_transfer_authority_idx (little-endian) */\n view.setUint16(4, user_input_account_idx, true); /* user_input_account_idx (little-endian) */\n view.setUint16(6, user_output_account_idx, true); /* user_output_account_idx (little-endian) */\n view.setUint16(8, vault_input_account_idx, true); /* vault_input_account_idx (little-endian) */\n view.setUint16(10, vault_output_account_idx, true); /* vault_output_account_idx (little-endian) */\n view.setUint16(12, lp_mint_account_idx, true); /* lp_mint_account_idx (little-endian) */\n view.setUint16(14, token_program_account_idx, true); /* token_program_account_idx (little-endian) */\n view.setBigUint64(16, amount_in, true); /* amount_in (little-endian) */\n\n return new AmmSwapInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): AmmSwapInstruction | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new AmmSwapInstruction(buffer);\n }\n\n}\n\nexport class AmmSwapInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(24);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_pool_account_idx(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_user_transfer_authority_idx(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_user_input_account_idx(value: number): this {\n this.view.setUint16(4, value, true);\n return this;\n }\n\n set_user_output_account_idx(value: number): this {\n this.view.setUint16(6, value, true);\n return this;\n }\n\n set_vault_input_account_idx(value: number): this {\n this.view.setUint16(8, value, true);\n return this;\n }\n\n set_vault_output_account_idx(value: number): this {\n this.view.setUint16(10, value, true);\n return this;\n }\n\n set_lp_mint_account_idx(value: number): this {\n this.view.setUint16(12, value, true);\n return this;\n }\n\n set_token_program_account_idx(value: number): this {\n this.view.setUint16(14, value, true);\n return this;\n }\n\n set_amount_in(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(16, cast, true);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): AmmSwapInstruction {\n const view = AmmSwapInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build AmmSwapInstruction\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"AmmSwapInstruction\", (params) => AmmSwapInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"AmmSwapInstruction\", (buffer, params) => AmmSwapInstruction.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"AmmSwapInstruction\", (buffer) => { const result = AmmSwapInstruction.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR AmmWithdrawLiquidityInstruction ----- */\n\nconst __tn_ir_AmmWithdrawLiquidityInstruction = {\n typeName: \"AmmWithdrawLiquidityInstruction\",\n root: { op: \"const\", value: 26n }\n} as const;\n\nexport class AmmWithdrawLiquidityInstruction {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): AmmWithdrawLiquidityInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"AmmWithdrawLiquidityInstruction.__tnCreateView requires a Uint8Array\");\n return new AmmWithdrawLiquidityInstruction(new Uint8Array(buffer));\n }\n\n static builder(): AmmWithdrawLiquidityInstructionBuilder {\n return new AmmWithdrawLiquidityInstructionBuilder();\n }\n\n static fromBuilder(builder: AmmWithdrawLiquidityInstructionBuilder): AmmWithdrawLiquidityInstruction | null {\n const buffer = builder.build();\n return AmmWithdrawLiquidityInstruction.from_array(buffer);\n }\n\n get_pool_account_idx(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_pool_account_idx(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get pool_account_idx(): number {\n return this.get_pool_account_idx();\n }\n\n set pool_account_idx(value: number) {\n this.set_pool_account_idx(value);\n }\n\n get_withdrawer_account_idx(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_withdrawer_account_idx(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get withdrawer_account_idx(): number {\n return this.get_withdrawer_account_idx();\n }\n\n set withdrawer_account_idx(value: number) {\n this.set_withdrawer_account_idx(value);\n }\n\n get_withdrawer_token_one_account_idx(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_withdrawer_token_one_account_idx(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get withdrawer_token_one_account_idx(): number {\n return this.get_withdrawer_token_one_account_idx();\n }\n\n set withdrawer_token_one_account_idx(value: number) {\n this.set_withdrawer_token_one_account_idx(value);\n }\n\n get_withdrawer_token_two_account_idx(): number {\n const offset = 6;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_withdrawer_token_two_account_idx(value: number): void {\n const offset = 6;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get withdrawer_token_two_account_idx(): number {\n return this.get_withdrawer_token_two_account_idx();\n }\n\n set withdrawer_token_two_account_idx(value: number) {\n this.set_withdrawer_token_two_account_idx(value);\n }\n\n get_withdrawer_lp_account_idx(): number {\n const offset = 8;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_withdrawer_lp_account_idx(value: number): void {\n const offset = 8;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get withdrawer_lp_account_idx(): number {\n return this.get_withdrawer_lp_account_idx();\n }\n\n set withdrawer_lp_account_idx(value: number) {\n this.set_withdrawer_lp_account_idx(value);\n }\n\n get_vault_one_account_idx(): number {\n const offset = 10;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_vault_one_account_idx(value: number): void {\n const offset = 10;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get vault_one_account_idx(): number {\n return this.get_vault_one_account_idx();\n }\n\n set vault_one_account_idx(value: number) {\n this.set_vault_one_account_idx(value);\n }\n\n get_vault_two_account_idx(): number {\n const offset = 12;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_vault_two_account_idx(value: number): void {\n const offset = 12;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get vault_two_account_idx(): number {\n return this.get_vault_two_account_idx();\n }\n\n set vault_two_account_idx(value: number) {\n this.set_vault_two_account_idx(value);\n }\n\n get_lp_mint_account_idx(): number {\n const offset = 14;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_lp_mint_account_idx(value: number): void {\n const offset = 14;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get lp_mint_account_idx(): number {\n return this.get_lp_mint_account_idx();\n }\n\n set lp_mint_account_idx(value: number) {\n this.set_lp_mint_account_idx(value);\n }\n\n get_token_program_account_idx(): number {\n const offset = 16;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_program_account_idx(value: number): void {\n const offset = 16;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_program_account_idx(): number {\n return this.get_token_program_account_idx();\n }\n\n set token_program_account_idx(value: number) {\n this.set_token_program_account_idx(value);\n }\n\n get_lp_amount(): bigint {\n const offset = 18;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_lp_amount(value: bigint): void {\n const offset = 18;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get lp_amount(): bigint {\n return this.get_lp_amount();\n }\n\n set lp_amount(value: bigint) {\n this.set_lp_amount(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_AmmWithdrawLiquidityInstruction.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_AmmWithdrawLiquidityInstruction, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for AmmWithdrawLiquidityInstruction');\n }\n return __tnBigIntToNumber(irResult, 'AmmWithdrawLiquidityInstruction::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 26) return { ok: false, code: \"tn.buffer_too_small\", consumed: 26 };\n return { ok: true, consumed: 26 };\n }\n\n static new(pool_account_idx: number, withdrawer_account_idx: number, withdrawer_token_one_account_idx: number, withdrawer_token_two_account_idx: number, withdrawer_lp_account_idx: number, vault_one_account_idx: number, vault_two_account_idx: number, lp_mint_account_idx: number, token_program_account_idx: number, lp_amount: bigint): AmmWithdrawLiquidityInstruction {\n const buffer = new Uint8Array(26);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, pool_account_idx, true); /* pool_account_idx (little-endian) */\n view.setUint16(2, withdrawer_account_idx, true); /* withdrawer_account_idx (little-endian) */\n view.setUint16(4, withdrawer_token_one_account_idx, true); /* withdrawer_token_one_account_idx (little-endian) */\n view.setUint16(6, withdrawer_token_two_account_idx, true); /* withdrawer_token_two_account_idx (little-endian) */\n view.setUint16(8, withdrawer_lp_account_idx, true); /* withdrawer_lp_account_idx (little-endian) */\n view.setUint16(10, vault_one_account_idx, true); /* vault_one_account_idx (little-endian) */\n view.setUint16(12, vault_two_account_idx, true); /* vault_two_account_idx (little-endian) */\n view.setUint16(14, lp_mint_account_idx, true); /* lp_mint_account_idx (little-endian) */\n view.setUint16(16, token_program_account_idx, true); /* token_program_account_idx (little-endian) */\n view.setBigUint64(18, lp_amount, true); /* lp_amount (little-endian) */\n\n return new AmmWithdrawLiquidityInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): AmmWithdrawLiquidityInstruction | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new AmmWithdrawLiquidityInstruction(buffer);\n }\n\n}\n\nexport class AmmWithdrawLiquidityInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(26);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_pool_account_idx(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_withdrawer_account_idx(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_withdrawer_token_one_account_idx(value: number): this {\n this.view.setUint16(4, value, true);\n return this;\n }\n\n set_withdrawer_token_two_account_idx(value: number): this {\n this.view.setUint16(6, value, true);\n return this;\n }\n\n set_withdrawer_lp_account_idx(value: number): this {\n this.view.setUint16(8, value, true);\n return this;\n }\n\n set_vault_one_account_idx(value: number): this {\n this.view.setUint16(10, value, true);\n return this;\n }\n\n set_vault_two_account_idx(value: number): this {\n this.view.setUint16(12, value, true);\n return this;\n }\n\n set_lp_mint_account_idx(value: number): this {\n this.view.setUint16(14, value, true);\n return this;\n }\n\n set_token_program_account_idx(value: number): this {\n this.view.setUint16(16, value, true);\n return this;\n }\n\n set_lp_amount(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(18, cast, true);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): AmmWithdrawLiquidityInstruction {\n const view = AmmWithdrawLiquidityInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build AmmWithdrawLiquidityInstruction\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"AmmWithdrawLiquidityInstruction\", (params) => AmmWithdrawLiquidityInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"AmmWithdrawLiquidityInstruction\", (buffer, params) => AmmWithdrawLiquidityInstruction.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"AmmWithdrawLiquidityInstruction\", (buffer) => { const result = AmmWithdrawLiquidityInstruction.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR Seed32 ----- */\n\nconst __tn_ir_Seed32 = {\n typeName: \"Seed32\",\n root: { op: \"const\", value: 32n }\n} as const;\n\nexport class Seed32 {\n private view: DataView;\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n private static readonly __tnElementSize = 1;\n private static readonly __tnElementCount: number | null = 32;\n\n get length(): number {\n const explicit = Seed32.__tnElementCount;\n if (explicit !== null) {\n return explicit;\n }\n const stride = Seed32.__tnElementSize;\n if (stride > 0) {\n return Math.floor(this.buffer.length / stride);\n }\n return this.buffer.length;\n }\n\n getElementBytes(index: number): Uint8Array {\n if (!Number.isInteger(index) || index < 0) {\n throw new RangeError('Seed32::getElementBytes index must be a non-negative integer');\n }\n const stride = Seed32.__tnElementSize;\n if (stride <= 0) {\n throw new Error('Seed32::getElementBytes requires constant element size');\n }\n const start = index * stride;\n const end = start + stride;\n if (end > this.buffer.length) {\n throw new RangeError('Seed32::getElementBytes out of bounds');\n }\n return this.buffer.subarray(start, end);\n }\n\n static from_array(buffer: Uint8Array): Seed32 | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const validation = Seed32.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new Seed32(buffer);\n }\n\n asUint8Array(): Uint8Array {\n return new Uint8Array(this.buffer);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_Seed32.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_Seed32, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for Seed32');\n }\n return __tnBigIntToNumber(irResult, 'Seed32::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 32) return { ok: false, code: \"tn.buffer_too_small\", consumed: 32 };\n return { ok: true, consumed: 32 };\n }\n\n}\n\n__tnRegisterFootprint(\"Seed32\", (params) => Seed32.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Seed32\", (buffer, params) => Seed32.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"Seed32\", (buffer) => { const result = Seed32.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR SwapEventData ----- */\n\nconst __tn_ir_SwapEventData = {\n typeName: \"SwapEventData\",\n root: { op: \"const\", value: 113n }\n} as const;\n\nexport class SwapEventData {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): SwapEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"SwapEventData.__tnCreateView requires a Uint8Array\");\n return new SwapEventData(new Uint8Array(buffer));\n }\n\n static builder(): SwapEventDataBuilder {\n return new SwapEventDataBuilder();\n }\n\n static fromBuilder(builder: SwapEventDataBuilder): SwapEventData | null {\n const buffer = builder.build();\n return SwapEventData.from_array(buffer);\n }\n\n get_pool(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_pool(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get pool(): Pubkey {\n return this.get_pool();\n }\n\n set pool(value: Pubkey) {\n this.set_pool(value);\n }\n\n get_sender(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_sender(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 32;\n this.buffer.set(sourceBytes, offset);\n }\n\n get sender(): Pubkey {\n return this.get_sender();\n }\n\n set sender(value: Pubkey) {\n this.set_sender(value);\n }\n\n get_to(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_to(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get to(): Pubkey {\n return this.get_to();\n }\n\n set to(value: Pubkey) {\n this.set_to(value);\n }\n\n get_amount_in(): bigint {\n const offset = 96;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount_in(value: bigint): void {\n const offset = 96;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount_in(): bigint {\n return this.get_amount_in();\n }\n\n set amount_in(value: bigint) {\n this.set_amount_in(value);\n }\n\n get_amount_out(): bigint {\n const offset = 104;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount_out(value: bigint): void {\n const offset = 104;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount_out(): bigint {\n return this.get_amount_out();\n }\n\n set amount_out(value: bigint) {\n this.set_amount_out(value);\n }\n\n get_swap_direction(): number {\n const offset = 112;\n return this.view.getUint8(offset);\n }\n\n set_swap_direction(value: number): void {\n const offset = 112;\n this.view.setUint8(offset, value);\n }\n\n get swap_direction(): number {\n return this.get_swap_direction();\n }\n\n set swap_direction(value: number) {\n this.set_swap_direction(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_SwapEventData.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_SwapEventData, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for SwapEventData');\n }\n return __tnBigIntToNumber(irResult, 'SwapEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 113) return { ok: false, code: \"tn.buffer_too_small\", consumed: 113 };\n return { ok: true, consumed: 113 };\n }\n\n static from_array(buffer: Uint8Array): SwapEventData | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new SwapEventData(buffer);\n }\n\n}\n\nexport class SwapEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(113);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_pool(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"pool expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_sender(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"sender expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_to(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"to expects 32 bytes\");\n this.buffer.set(value, 64);\n return this;\n }\n\n set_amount_in(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(96, cast, true);\n return this;\n }\n\n set_amount_out(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(104, cast, true);\n return this;\n }\n\n set_swap_direction(value: number): this {\n this.view.setUint8(112, value);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): SwapEventData {\n const view = SwapEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build SwapEventData\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"SwapEventData\", (params) => SwapEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"SwapEventData\", (buffer, params) => SwapEventData.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"SwapEventData\", (buffer) => { const result = SwapEventData.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR SyncEventData ----- */\n\nconst __tn_ir_SyncEventData = {\n typeName: \"SyncEventData\",\n root: { op: \"const\", value: 48n }\n} as const;\n\nexport class SyncEventData {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): SyncEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"SyncEventData.__tnCreateView requires a Uint8Array\");\n return new SyncEventData(new Uint8Array(buffer));\n }\n\n static builder(): SyncEventDataBuilder {\n return new SyncEventDataBuilder();\n }\n\n static fromBuilder(builder: SyncEventDataBuilder): SyncEventData | null {\n const buffer = builder.build();\n return SyncEventData.from_array(buffer);\n }\n\n get_pool(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_pool(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get pool(): Pubkey {\n return this.get_pool();\n }\n\n set pool(value: Pubkey) {\n this.set_pool(value);\n }\n\n get_reserve_one(): bigint {\n const offset = 32;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_reserve_one(value: bigint): void {\n const offset = 32;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get reserve_one(): bigint {\n return this.get_reserve_one();\n }\n\n set reserve_one(value: bigint) {\n this.set_reserve_one(value);\n }\n\n get_reserve_two(): bigint {\n const offset = 40;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_reserve_two(value: bigint): void {\n const offset = 40;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get reserve_two(): bigint {\n return this.get_reserve_two();\n }\n\n set reserve_two(value: bigint) {\n this.set_reserve_two(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_SyncEventData.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_SyncEventData, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for SyncEventData');\n }\n return __tnBigIntToNumber(irResult, 'SyncEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 48) return { ok: false, code: \"tn.buffer_too_small\", consumed: 48 };\n return { ok: true, consumed: 48 };\n }\n\n static from_array(buffer: Uint8Array): SyncEventData | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new SyncEventData(buffer);\n }\n\n}\n\nexport class SyncEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(48);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_pool(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"pool expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_reserve_one(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(32, cast, true);\n return this;\n }\n\n set_reserve_two(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(40, cast, true);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): SyncEventData {\n const view = SyncEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build SyncEventData\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"SyncEventData\", (params) => SyncEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"SyncEventData\", (buffer, params) => SyncEventData.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"SyncEventData\", (buffer) => { const result = SyncEventData.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR AmmInitPoolInstruction ----- */\n\nconst __tn_ir_AmmInitPoolInstruction = {\n typeName: \"AmmInitPoolInstruction\",\n root: { op: \"align\", alignment: 1, node: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"add\", left: { op: \"align\", alignment: 2, node: { op: \"const\", value: 2n } }, right: { op: \"align\", alignment: 2, node: { op: \"const\", value: 2n } } }, right: { op: \"align\", alignment: 2, node: { op: \"const\", value: 2n } } }, right: { op: \"align\", alignment: 2, node: { op: \"const\", value: 2n } } }, right: { op: \"align\", alignment: 2, node: { op: \"const\", value: 2n } } }, right: { op: \"align\", alignment: 2, node: { op: \"const\", value: 2n } } }, right: { op: \"align\", alignment: 2, node: { op: \"const\", value: 2n } } }, right: { op: \"align\", alignment: 2, node: { op: \"const\", value: 2n } } }, right: { op: \"align\", alignment: 2, node: { op: \"const\", value: 2n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 8, node: { op: \"const\", value: 8n } } }, right: { op: \"align\", alignment: 8, node: { op: \"const\", value: 8n } } }, right: { op: \"align\", alignment: 8, node: { op: \"const\", value: 8n } } }, right: { op: \"align\", alignment: 8, node: { op: \"const\", value: 8n } } }, right: { op: \"align\", alignment: 1, node: { op: \"mul\", left: { op: \"field\", param: \"pool_proof.pool_proof_size\" }, right: { op: \"const\", value: 1n } } } }, right: { op: \"align\", alignment: 1, node: { op: \"mul\", left: { op: \"field\", param: \"lp_mint_proof.lp_mint_proof_size\" }, right: { op: \"const\", value: 1n } } } }, right: { op: \"align\", alignment: 1, node: { op: \"mul\", left: { op: \"field\", param: \"vault_one_proof.vault_one_proof_size\" }, right: { op: \"const\", value: 1n } } } }, right: { op: \"align\", alignment: 1, node: { op: \"mul\", left: { op: \"field\", param: \"vault_two_proof.vault_two_proof_size\" }, right: { op: \"const\", value: 1n } } } } }\n} as const;\n\nexport class AmmInitPoolInstruction {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n private __tnParams: AmmInitPoolInstruction.Params;\n\n private constructor(private buffer: Uint8Array, params?: AmmInitPoolInstruction.Params, fieldContext?: Record<string, number | bigint>) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n this.__tnFieldContext = fieldContext ?? null;\n if (params) {\n this.__tnParams = params;\n } else {\n const derived = AmmInitPoolInstruction.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"AmmInitPoolInstruction: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: AmmInitPoolInstruction.Params, fieldContext?: Record<string, number | bigint> }): AmmInitPoolInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"AmmInitPoolInstruction.__tnCreateView requires a Uint8Array\");\n let params = opts?.params ?? null;\n if (!params) {\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const derived = AmmInitPoolInstruction.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"AmmInitPoolInstruction.__tnCreateView: failed to derive params\");\n params = derived.params;\n }\n const instance = new AmmInitPoolInstruction(new Uint8Array(buffer), params, opts?.fieldContext);\n return instance;\n }\n\n dynamicParams(): AmmInitPoolInstruction.Params {\n return this.__tnParams;\n }\n\n withFieldContext(context: Record<string, number | bigint>): this {\n this.__tnFieldContext = context;\n return this;\n }\n\n private __tnResolveFieldRef(path: string): number {\n const getterName = `get_${path.replace(/[.]/g, '_')}`;\n const getter = (this as any)[getterName];\n if (typeof getter === \"function\") {\n const value = getter.call(this);\n return typeof value === \"bigint\" ? __tnBigIntToNumber(value, \"AmmInitPoolInstruction::__tnResolveFieldRef\") : value;\n }\n if (this.__tnFieldContext && Object.prototype.hasOwnProperty.call(this.__tnFieldContext, path)) {\n const contextValue = this.__tnFieldContext[path];\n return typeof contextValue === \"bigint\" ? __tnBigIntToNumber(contextValue, \"AmmInitPoolInstruction::__tnResolveFieldRef\") : contextValue;\n }\n throw new Error(\"AmmInitPoolInstruction: field reference '\" + path + \"' is not available; provide fieldContext when creating this view\");\n }\n\n static builder(): AmmInitPoolInstructionBuilder {\n return new AmmInitPoolInstructionBuilder();\n }\n\n static fromBuilder(builder: AmmInitPoolInstructionBuilder): AmmInitPoolInstruction | null {\n const buffer = builder.build();\n const params = builder.dynamicParams();\n return AmmInitPoolInstruction.from_array(buffer, { params });\n }\n\n static readonly flexibleArrayWriters = Object.freeze([\n { field: \"pool_proof\", method: \"pool_proof\", sizeField: \"pool_proof_size\", paramKey: \"pool_proof_size\", elementSize: 1 },\n { field: \"lp_mint_proof\", method: \"lp_mint_proof\", sizeField: \"lp_mint_proof_size\", paramKey: \"lp_mint_proof_size\", elementSize: 1 },\n { field: \"vault_one_proof\", method: \"vault_one_proof\", sizeField: \"vault_one_proof_size\", paramKey: \"vault_one_proof_size\", elementSize: 1 },\n { field: \"vault_two_proof\", method: \"vault_two_proof\", sizeField: \"vault_two_proof_size\", paramKey: \"vault_two_proof_size\", elementSize: 1 },\n ] as const);\n\n static __tnComputeSequentialLayout(view: DataView, buffer: Uint8Array): { params: Record<string, bigint> | null; offsets: Record<string, number> | null; derived: Record<string, bigint> | null } | null {\n const offsets: Record<string, number> = Object.create(null);\n const __tnLength = buffer.length;\n let __tnFieldValue_payer_account_idx: number | null = null;\n let __tnFieldValue_pool_account_idx: number | null = null;\n let __tnFieldValue_lp_mint_account_idx: number | null = null;\n let __tnFieldValue_vault_one_account_idx: number | null = null;\n let __tnFieldValue_vault_two_account_idx: number | null = null;\n let __tnFieldValue_mint_one_account_idx: number | null = null;\n let __tnFieldValue_mint_two_account_idx: number | null = null;\n let __tnFieldValue_token_program_account_idx: number | null = null;\n let __tnFieldValue_swap_fee_bps: number | null = null;\n let __tnFieldValue_pool_proof_size: bigint | null = null;\n let __tnFieldValue_lp_mint_proof_size: bigint | null = null;\n let __tnFieldValue_vault_one_proof_size: bigint | null = null;\n let __tnFieldValue_vault_two_proof_size: bigint | null = null;\n let __tnCursorMutable = 0;\n if (__tnCursorMutable + 2 > __tnLength) return null;\n const __tnRead_payer_account_idx = view.getUint16(__tnCursorMutable, true);\n __tnFieldValue_payer_account_idx = __tnRead_payer_account_idx;\n __tnCursorMutable += 2;\n if (__tnCursorMutable + 2 > __tnLength) return null;\n const __tnRead_pool_account_idx = view.getUint16(__tnCursorMutable, true);\n __tnFieldValue_pool_account_idx = __tnRead_pool_account_idx;\n __tnCursorMutable += 2;\n if (__tnCursorMutable + 2 > __tnLength) return null;\n const __tnRead_lp_mint_account_idx = view.getUint16(__tnCursorMutable, true);\n __tnFieldValue_lp_mint_account_idx = __tnRead_lp_mint_account_idx;\n __tnCursorMutable += 2;\n if (__tnCursorMutable + 2 > __tnLength) return null;\n const __tnRead_vault_one_account_idx = view.getUint16(__tnCursorMutable, true);\n __tnFieldValue_vault_one_account_idx = __tnRead_vault_one_account_idx;\n __tnCursorMutable += 2;\n if (__tnCursorMutable + 2 > __tnLength) return null;\n const __tnRead_vault_two_account_idx = view.getUint16(__tnCursorMutable, true);\n __tnFieldValue_vault_two_account_idx = __tnRead_vault_two_account_idx;\n __tnCursorMutable += 2;\n if (__tnCursorMutable + 2 > __tnLength) return null;\n const __tnRead_mint_one_account_idx = view.getUint16(__tnCursorMutable, true);\n __tnFieldValue_mint_one_account_idx = __tnRead_mint_one_account_idx;\n __tnCursorMutable += 2;\n if (__tnCursorMutable + 2 > __tnLength) return null;\n const __tnRead_mint_two_account_idx = view.getUint16(__tnCursorMutable, true);\n __tnFieldValue_mint_two_account_idx = __tnRead_mint_two_account_idx;\n __tnCursorMutable += 2;\n if (__tnCursorMutable + 2 > __tnLength) return null;\n const __tnRead_token_program_account_idx = view.getUint16(__tnCursorMutable, true);\n __tnFieldValue_token_program_account_idx = __tnRead_token_program_account_idx;\n __tnCursorMutable += 2;\n if (__tnCursorMutable + 2 > __tnLength) return null;\n const __tnRead_swap_fee_bps = view.getUint16(__tnCursorMutable, true);\n __tnFieldValue_swap_fee_bps = __tnRead_swap_fee_bps;\n __tnCursorMutable += 2;\n if (__tnCursorMutable + 32 > __tnLength) return null;\n __tnCursorMutable += 32;\n if (__tnCursorMutable + 8 > __tnLength) return null;\n const __tnRead_pool_proof_size = view.getBigUint64(__tnCursorMutable, true);\n __tnFieldValue_pool_proof_size = __tnRead_pool_proof_size;\n __tnCursorMutable += 8;\n if (__tnCursorMutable + 8 > __tnLength) return null;\n const __tnRead_lp_mint_proof_size = view.getBigUint64(__tnCursorMutable, true);\n __tnFieldValue_lp_mint_proof_size = __tnRead_lp_mint_proof_size;\n __tnCursorMutable += 8;\n if (__tnCursorMutable + 8 > __tnLength) return null;\n const __tnRead_vault_one_proof_size = view.getBigUint64(__tnCursorMutable, true);\n __tnFieldValue_vault_one_proof_size = __tnRead_vault_one_proof_size;\n __tnCursorMutable += 8;\n if (__tnCursorMutable + 8 > __tnLength) return null;\n const __tnRead_vault_two_proof_size = view.getBigUint64(__tnCursorMutable, true);\n __tnFieldValue_vault_two_proof_size = __tnRead_vault_two_proof_size;\n __tnCursorMutable += 8;\n if (__tnFieldValue_pool_proof_size === null) return null;\n const __tnArrayCount_pool_proof = Math.trunc(Number(__tnFieldValue_pool_proof_size));\n if (!Number.isFinite(__tnArrayCount_pool_proof) || __tnArrayCount_pool_proof < 0) return null;\n const __tnArrayBytes_pool_proof = __tnArrayCount_pool_proof * 1;\n if (__tnCursorMutable + __tnArrayBytes_pool_proof > __tnLength) return null;\n __tnCursorMutable += __tnArrayBytes_pool_proof;\n if (__tnFieldValue_lp_mint_proof_size === null) return null;\n const __tnArrayCount_lp_mint_proof = Math.trunc(Number(__tnFieldValue_lp_mint_proof_size));\n if (!Number.isFinite(__tnArrayCount_lp_mint_proof) || __tnArrayCount_lp_mint_proof < 0) return null;\n const __tnArrayBytes_lp_mint_proof = __tnArrayCount_lp_mint_proof * 1;\n offsets[\"lp_mint_proof\"] = __tnCursorMutable;\n if (__tnCursorMutable + __tnArrayBytes_lp_mint_proof > __tnLength) return null;\n __tnCursorMutable += __tnArrayBytes_lp_mint_proof;\n if (__tnFieldValue_vault_one_proof_size === null) return null;\n const __tnArrayCount_vault_one_proof = Math.trunc(Number(__tnFieldValue_vault_one_proof_size));\n if (!Number.isFinite(__tnArrayCount_vault_one_proof) || __tnArrayCount_vault_one_proof < 0) return null;\n const __tnArrayBytes_vault_one_proof = __tnArrayCount_vault_one_proof * 1;\n offsets[\"vault_one_proof\"] = __tnCursorMutable;\n if (__tnCursorMutable + __tnArrayBytes_vault_one_proof > __tnLength) return null;\n __tnCursorMutable += __tnArrayBytes_vault_one_proof;\n if (__tnFieldValue_vault_two_proof_size === null) return null;\n const __tnArrayCount_vault_two_proof = Math.trunc(Number(__tnFieldValue_vault_two_proof_size));\n if (!Number.isFinite(__tnArrayCount_vault_two_proof) || __tnArrayCount_vault_two_proof < 0) return null;\n const __tnArrayBytes_vault_two_proof = __tnArrayCount_vault_two_proof * 1;\n offsets[\"vault_two_proof\"] = __tnCursorMutable;\n if (__tnCursorMutable + __tnArrayBytes_vault_two_proof > __tnLength) return null;\n __tnCursorMutable += __tnArrayBytes_vault_two_proof;\n return { params: null, offsets: offsets, derived: null };\n }\n\n private static __tnExtractParams(view: DataView, buffer: Uint8Array): { params: AmmInitPoolInstruction.Params; derived: Record<string, bigint> | null } | null {\n if (buffer.length < 66) {\n return null;\n }\n const __tnParam_lp_mint_proof_lp_mint_proof_size = __tnToBigInt(view.getBigUint64(58, true));\n if (buffer.length < 58) {\n return null;\n }\n const __tnParam_pool_proof_pool_proof_size = __tnToBigInt(view.getBigUint64(50, true));\n if (buffer.length < 74) {\n return null;\n }\n const __tnParam_vault_one_proof_vault_one_proof_size = __tnToBigInt(view.getBigUint64(66, true));\n if (buffer.length < 82) {\n return null;\n }\n const __tnParam_vault_two_proof_vault_two_proof_size = __tnToBigInt(view.getBigUint64(74, true));\n const __tnExtractedParams = AmmInitPoolInstruction.Params.fromValues({\n lp_mint_proof_lp_mint_proof_size: __tnParam_lp_mint_proof_lp_mint_proof_size,\n pool_proof_pool_proof_size: __tnParam_pool_proof_pool_proof_size,\n vault_one_proof_vault_one_proof_size: __tnParam_vault_one_proof_vault_one_proof_size,\n vault_two_proof_vault_two_proof_size: __tnParam_vault_two_proof_vault_two_proof_size,\n });\n return { params: __tnExtractedParams, derived: null };\n }\n\n /* Dynamic offsets are derived once per view; mutating length fields later does not invalidate this cache. */\n private __tnDynamicOffsetCache: Record<string, number> | null = null;\n private __tnGetDynamicOffset(field: string): number {\n if (!this.__tnDynamicOffsetCache) {\n this.__tnDynamicOffsetCache = this.__tnComputeDynamicOffsets();\n }\n const offset = this.__tnDynamicOffsetCache[field];\n if (offset === undefined) {\n throw new Error(\"AmmInitPoolInstruction: field '\" + field + \"' does not have a dynamic offset\");\n }\n return offset;\n }\n\n private __tnComputeDynamicOffsets(): Record<string, number> {\n const layout = AmmInitPoolInstruction.__tnComputeSequentialLayout(this.view, this.buffer);\n if (!layout || !layout.offsets) {\n throw new Error(\"AmmInitPoolInstruction: failed to compute dynamic offsets\");\n }\n return layout.offsets;\n }\n\n get_payer_account_idx(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_payer_account_idx(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get payer_account_idx(): number {\n return this.get_payer_account_idx();\n }\n\n set payer_account_idx(value: number) {\n this.set_payer_account_idx(value);\n }\n\n get_pool_account_idx(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_pool_account_idx(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get pool_account_idx(): number {\n return this.get_pool_account_idx();\n }\n\n set pool_account_idx(value: number) {\n this.set_pool_account_idx(value);\n }\n\n get_lp_mint_account_idx(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_lp_mint_account_idx(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get lp_mint_account_idx(): number {\n return this.get_lp_mint_account_idx();\n }\n\n set lp_mint_account_idx(value: number) {\n this.set_lp_mint_account_idx(value);\n }\n\n get_vault_one_account_idx(): number {\n const offset = 6;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_vault_one_account_idx(value: number): void {\n const offset = 6;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get vault_one_account_idx(): number {\n return this.get_vault_one_account_idx();\n }\n\n set vault_one_account_idx(value: number) {\n this.set_vault_one_account_idx(value);\n }\n\n get_vault_two_account_idx(): number {\n const offset = 8;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_vault_two_account_idx(value: number): void {\n const offset = 8;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get vault_two_account_idx(): number {\n return this.get_vault_two_account_idx();\n }\n\n set vault_two_account_idx(value: number) {\n this.set_vault_two_account_idx(value);\n }\n\n get_mint_one_account_idx(): number {\n const offset = 10;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_one_account_idx(value: number): void {\n const offset = 10;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_one_account_idx(): number {\n return this.get_mint_one_account_idx();\n }\n\n set mint_one_account_idx(value: number) {\n this.set_mint_one_account_idx(value);\n }\n\n get_mint_two_account_idx(): number {\n const offset = 12;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_two_account_idx(value: number): void {\n const offset = 12;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_two_account_idx(): number {\n return this.get_mint_two_account_idx();\n }\n\n set mint_two_account_idx(value: number) {\n this.set_mint_two_account_idx(value);\n }\n\n get_token_program_account_idx(): number {\n const offset = 14;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_program_account_idx(value: number): void {\n const offset = 14;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_program_account_idx(): number {\n return this.get_token_program_account_idx();\n }\n\n set token_program_account_idx(value: number) {\n this.set_token_program_account_idx(value);\n }\n\n get_swap_fee_bps(): number {\n const offset = 16;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_swap_fee_bps(value: number): void {\n const offset = 16;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get swap_fee_bps(): number {\n return this.get_swap_fee_bps();\n }\n\n set swap_fee_bps(value: number) {\n this.set_swap_fee_bps(value);\n }\n\n get_lp_mint_seed(): Seed32 {\n const offset = 18;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Seed32.from_array(slice)!;\n }\n\n set_lp_mint_seed(value: Seed32): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 18;\n this.buffer.set(sourceBytes, offset);\n }\n\n get lp_mint_seed(): Seed32 {\n return this.get_lp_mint_seed();\n }\n\n set lp_mint_seed(value: Seed32) {\n this.set_lp_mint_seed(value);\n }\n\n get_pool_proof_size(): bigint {\n const offset = 50;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_pool_proof_size(value: bigint): void {\n const offset = 50;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get pool_proof_size(): bigint {\n return this.get_pool_proof_size();\n }\n\n set pool_proof_size(value: bigint) {\n this.set_pool_proof_size(value);\n }\n\n get_lp_mint_proof_size(): bigint {\n const offset = 58;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_lp_mint_proof_size(value: bigint): void {\n const offset = 58;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get lp_mint_proof_size(): bigint {\n return this.get_lp_mint_proof_size();\n }\n\n set lp_mint_proof_size(value: bigint) {\n this.set_lp_mint_proof_size(value);\n }\n\n get_vault_one_proof_size(): bigint {\n const offset = 66;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_vault_one_proof_size(value: bigint): void {\n const offset = 66;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get vault_one_proof_size(): bigint {\n return this.get_vault_one_proof_size();\n }\n\n set vault_one_proof_size(value: bigint) {\n this.set_vault_one_proof_size(value);\n }\n\n get_vault_two_proof_size(): bigint {\n const offset = 74;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_vault_two_proof_size(value: bigint): void {\n const offset = 74;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get vault_two_proof_size(): bigint {\n return this.get_vault_two_proof_size();\n }\n\n set vault_two_proof_size(value: bigint) {\n this.set_vault_two_proof_size(value);\n }\n\n get_pool_proof_length(): number {\n return this.__tnResolveFieldRef(\"pool_proof_size\");\n }\n\n get_pool_proof_at(index: number): number {\n const offset = 82;\n return this.view.getUint8(offset + index * 1);\n }\n\n get_pool_proof(): number[] {\n const len = this.get_pool_proof_length();\n const result: number[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_pool_proof_at(i));\n }\n return result;\n }\n\n set_pool_proof_at(index: number, value: number): void {\n const offset = 82;\n this.view.setUint8((offset + index * 1), value);\n }\n\n set_pool_proof(value: number[]): void {\n const len = Math.min(this.get_pool_proof_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_pool_proof_at(i, value[i]);\n }\n }\n\n get pool_proof(): number[] {\n return this.get_pool_proof();\n }\n\n set pool_proof(value: number[]) {\n this.set_pool_proof(value);\n }\n\n get_lp_mint_proof_length(): number {\n return this.__tnResolveFieldRef(\"lp_mint_proof_size\");\n }\n\n get_lp_mint_proof_at(index: number): number {\n const offset = this.__tnGetDynamicOffset(\"lp_mint_proof\");\n return this.view.getUint8(offset + index * 1);\n }\n\n get_lp_mint_proof(): number[] {\n const len = this.get_lp_mint_proof_length();\n const result: number[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_lp_mint_proof_at(i));\n }\n return result;\n }\n\n set_lp_mint_proof_at(index: number, value: number): void {\n const offset = this.__tnGetDynamicOffset(\"lp_mint_proof\");\n this.view.setUint8((offset + index * 1), value);\n }\n\n set_lp_mint_proof(value: number[]): void {\n const len = Math.min(this.get_lp_mint_proof_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_lp_mint_proof_at(i, value[i]);\n }\n }\n\n get lp_mint_proof(): number[] {\n return this.get_lp_mint_proof();\n }\n\n set lp_mint_proof(value: number[]) {\n this.set_lp_mint_proof(value);\n }\n\n get_vault_one_proof_length(): number {\n return this.__tnResolveFieldRef(\"vault_one_proof_size\");\n }\n\n get_vault_one_proof_at(index: number): number {\n const offset = this.__tnGetDynamicOffset(\"vault_one_proof\");\n return this.view.getUint8(offset + index * 1);\n }\n\n get_vault_one_proof(): number[] {\n const len = this.get_vault_one_proof_length();\n const result: number[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_vault_one_proof_at(i));\n }\n return result;\n }\n\n set_vault_one_proof_at(index: number, value: number): void {\n const offset = this.__tnGetDynamicOffset(\"vault_one_proof\");\n this.view.setUint8((offset + index * 1), value);\n }\n\n set_vault_one_proof(value: number[]): void {\n const len = Math.min(this.get_vault_one_proof_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_vault_one_proof_at(i, value[i]);\n }\n }\n\n get vault_one_proof(): number[] {\n return this.get_vault_one_proof();\n }\n\n set vault_one_proof(value: number[]) {\n this.set_vault_one_proof(value);\n }\n\n get_vault_two_proof_length(): number {\n return this.__tnResolveFieldRef(\"vault_two_proof_size\");\n }\n\n get_vault_two_proof_at(index: number): number {\n const offset = this.__tnGetDynamicOffset(\"vault_two_proof\");\n return this.view.getUint8(offset + index * 1);\n }\n\n get_vault_two_proof(): number[] {\n const len = this.get_vault_two_proof_length();\n const result: number[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_vault_two_proof_at(i));\n }\n return result;\n }\n\n set_vault_two_proof_at(index: number, value: number): void {\n const offset = this.__tnGetDynamicOffset(\"vault_two_proof\");\n this.view.setUint8((offset + index * 1), value);\n }\n\n set_vault_two_proof(value: number[]): void {\n const len = Math.min(this.get_vault_two_proof_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_vault_two_proof_at(i, value[i]);\n }\n }\n\n get vault_two_proof(): number[] {\n return this.get_vault_two_proof();\n }\n\n set vault_two_proof(value: number[]) {\n this.set_vault_two_proof(value);\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_AmmInitPoolInstruction.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_AmmInitPoolInstruction, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(lp_mint_proof_lp_mint_proof_size: number | bigint, pool_proof_pool_proof_size: number | bigint, vault_one_proof_vault_one_proof_size: number | bigint, vault_two_proof_vault_two_proof_size: number | bigint): bigint {\n const params = AmmInitPoolInstruction.Params.fromValues({\n lp_mint_proof_lp_mint_proof_size: lp_mint_proof_lp_mint_proof_size,\n pool_proof_pool_proof_size: pool_proof_pool_proof_size,\n vault_one_proof_vault_one_proof_size: vault_one_proof_vault_one_proof_size,\n vault_two_proof_vault_two_proof_size: vault_two_proof_vault_two_proof_size,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: AmmInitPoolInstruction.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"lp_mint_proof.lp_mint_proof_size\"] = params.lp_mint_proof_lp_mint_proof_size;\n record[\"pool_proof.pool_proof_size\"] = params.pool_proof_pool_proof_size;\n record[\"vault_one_proof.vault_one_proof_size\"] = params.vault_one_proof_vault_one_proof_size;\n record[\"vault_two_proof.vault_two_proof_size\"] = params.vault_two_proof_vault_two_proof_size;\n return record;\n }\n\n static footprintIrFromParams(params: AmmInitPoolInstruction.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: AmmInitPoolInstruction.Params): number {\n const irResult = this.footprintIrFromParams(params);\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for AmmInitPoolInstruction');\n return __tnBigIntToNumber(irResult, 'AmmInitPoolInstruction::footprintFromParams');\n }\n\n static footprintFromValues(input: { lp_mint_proof_lp_mint_proof_size: number | bigint, pool_proof_pool_proof_size: number | bigint, vault_one_proof_vault_one_proof_size: number | bigint, vault_two_proof_vault_two_proof_size: number | bigint }): number {\n const params = AmmInitPoolInstruction.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: AmmInitPoolInstruction.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: AmmInitPoolInstruction.Params }): { ok: boolean; code?: string; consumed?: number; params?: AmmInitPoolInstruction.Params } {\n if (!buffer || buffer.length === undefined) {\n return { ok: false, code: \"tn.invalid_buffer\" };\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n let params = opts?.params ?? null;\n if (!params) {\n const extracted = this.__tnExtractParams(view, buffer);\n if (!extracted) return { ok: false, code: \"tn.param_extraction_failed\" };\n params = extracted.params;\n }\n const __tnParamsRec = this.__tnPackParams(params);\n const irResult = this.__tnValidateInternal(buffer, __tnParamsRec);\n if (!irResult.ok) {\n return { ok: false, code: irResult.code, consumed: irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'AmmInitPoolInstruction::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'AmmInitPoolInstruction::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: AmmInitPoolInstruction.Params }): AmmInitPoolInstruction | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n let params = opts?.params ?? null;\n if (!params) {\n const derived = this.__tnExtractParams(view, buffer);\n if (!derived) return null;\n params = derived.params;\n }\n const validation = this.validate(buffer, { params });\n if (!validation.ok) {\n return null;\n }\n const cached = validation.params ?? params;\n const state = new AmmInitPoolInstruction(buffer, cached);\n return state;\n }\n\n\n}\n\nexport namespace AmmInitPoolInstruction {\n export type Params = {\n /** ABI path: lp_mint_proof.lp_mint_proof_size */\n readonly lp_mint_proof_lp_mint_proof_size: bigint;\n /** ABI path: pool_proof.pool_proof_size */\n readonly pool_proof_pool_proof_size: bigint;\n /** ABI path: vault_one_proof.vault_one_proof_size */\n readonly vault_one_proof_vault_one_proof_size: bigint;\n /** ABI path: vault_two_proof.vault_two_proof_size */\n readonly vault_two_proof_vault_two_proof_size: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n lp_mint_proof_lp_mint_proof_size: \"lp_mint_proof.lp_mint_proof_size\",\n pool_proof_pool_proof_size: \"pool_proof.pool_proof_size\",\n vault_one_proof_vault_one_proof_size: \"vault_one_proof.vault_one_proof_size\",\n vault_two_proof_vault_two_proof_size: \"vault_two_proof.vault_two_proof_size\",\n } as const);\n\n export const Params = {\n fromValues(input: { lp_mint_proof_lp_mint_proof_size: number | bigint, pool_proof_pool_proof_size: number | bigint, vault_one_proof_vault_one_proof_size: number | bigint, vault_two_proof_vault_two_proof_size: number | bigint }): Params {\n return {\n lp_mint_proof_lp_mint_proof_size: __tnToBigInt(input.lp_mint_proof_lp_mint_proof_size),\n pool_proof_pool_proof_size: __tnToBigInt(input.pool_proof_pool_proof_size),\n vault_one_proof_vault_one_proof_size: __tnToBigInt(input.vault_one_proof_vault_one_proof_size),\n vault_two_proof_vault_two_proof_size: __tnToBigInt(input.vault_two_proof_vault_two_proof_size),\n };\n },\n fromBuilder(source: { dynamicParams(): Params } | { params: Params } | Params): Params {\n if ((source as { dynamicParams?: () => Params }).dynamicParams) {\n return (source as { dynamicParams(): Params }).dynamicParams();\n }\n if ((source as { params?: Params }).params) {\n return (source as { params: Params }).params;\n }\n return source as Params;\n }\n };\n\n export function params(input: { lp_mint_proof_lp_mint_proof_size: number | bigint, pool_proof_pool_proof_size: number | bigint, vault_one_proof_vault_one_proof_size: number | bigint, vault_two_proof_vault_two_proof_size: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\nexport class AmmInitPoolInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n private __tnCachedParams: AmmInitPoolInstruction.Params | null = null;\n private __tnLastBuffer: Uint8Array | null = null;\n private __tnLastParams: AmmInitPoolInstruction.Params | null = null;\n private __tnFam_pool_proof: Uint8Array | null = null;\n private __tnFam_pool_proofCount: number | null = null;\n private __tnFamWriter_pool_proof?: __TnFamWriterResult<AmmInitPoolInstructionBuilder>;\n private __tnFam_lp_mint_proof: Uint8Array | null = null;\n private __tnFam_lp_mint_proofCount: number | null = null;\n private __tnFamWriter_lp_mint_proof?: __TnFamWriterResult<AmmInitPoolInstructionBuilder>;\n private __tnFam_vault_one_proof: Uint8Array | null = null;\n private __tnFam_vault_one_proofCount: number | null = null;\n private __tnFamWriter_vault_one_proof?: __TnFamWriterResult<AmmInitPoolInstructionBuilder>;\n private __tnFam_vault_two_proof: Uint8Array | null = null;\n private __tnFam_vault_two_proofCount: number | null = null;\n private __tnFamWriter_vault_two_proof?: __TnFamWriterResult<AmmInitPoolInstructionBuilder>;\n\n constructor() {\n this.buffer = new Uint8Array(82);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n private __tnInvalidate(): void {\n this.__tnCachedParams = null;\n this.__tnLastBuffer = null;\n this.__tnLastParams = null;\n }\n\n set_payer_account_idx(value: number): this {\n this.view.setUint16(0, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_pool_account_idx(value: number): this {\n this.view.setUint16(2, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_lp_mint_account_idx(value: number): this {\n this.view.setUint16(4, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_vault_one_account_idx(value: number): this {\n this.view.setUint16(6, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_vault_two_account_idx(value: number): this {\n this.view.setUint16(8, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_mint_one_account_idx(value: number): this {\n this.view.setUint16(10, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_mint_two_account_idx(value: number): this {\n this.view.setUint16(12, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_token_program_account_idx(value: number): this {\n this.view.setUint16(14, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_swap_fee_bps(value: number): this {\n this.view.setUint16(16, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_lp_mint_seed(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"lp_mint_seed expects 32 bytes\");\n this.buffer.set(value, 18);\n this.__tnInvalidate();\n return this;\n }\n\n set_pool_proof_size(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(50, cast, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_lp_mint_proof_size(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(58, cast, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_vault_one_proof_size(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(66, cast, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_vault_two_proof_size(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(74, cast, true);\n this.__tnInvalidate();\n return this;\n }\n\n pool_proof(): __TnFamWriterResult<AmmInitPoolInstructionBuilder> {\n if (!this.__tnFamWriter_pool_proof) {\n this.__tnFamWriter_pool_proof = __tnCreateFamWriter(this, \"pool_proof\", (payload) => {\n const bytes = new Uint8Array(payload);\n const elementCount = bytes.length;\n this.__tnFam_pool_proof = bytes;\n this.__tnFam_pool_proofCount = elementCount;\n this.set_pool_proof_size(__tnToBigInt(elementCount));\n this.__tnInvalidate();\n });\n }\n return this.__tnFamWriter_pool_proof!;\n }\n\n lp_mint_proof(): __TnFamWriterResult<AmmInitPoolInstructionBuilder> {\n if (!this.__tnFamWriter_lp_mint_proof) {\n this.__tnFamWriter_lp_mint_proof = __tnCreateFamWriter(this, \"lp_mint_proof\", (payload) => {\n const bytes = new Uint8Array(payload);\n const elementCount = bytes.length;\n this.__tnFam_lp_mint_proof = bytes;\n this.__tnFam_lp_mint_proofCount = elementCount;\n this.set_lp_mint_proof_size(__tnToBigInt(elementCount));\n this.__tnInvalidate();\n });\n }\n return this.__tnFamWriter_lp_mint_proof!;\n }\n\n vault_one_proof(): __TnFamWriterResult<AmmInitPoolInstructionBuilder> {\n if (!this.__tnFamWriter_vault_one_proof) {\n this.__tnFamWriter_vault_one_proof = __tnCreateFamWriter(this, \"vault_one_proof\", (payload) => {\n const bytes = new Uint8Array(payload);\n const elementCount = bytes.length;\n this.__tnFam_vault_one_proof = bytes;\n this.__tnFam_vault_one_proofCount = elementCount;\n this.set_vault_one_proof_size(__tnToBigInt(elementCount));\n this.__tnInvalidate();\n });\n }\n return this.__tnFamWriter_vault_one_proof!;\n }\n\n vault_two_proof(): __TnFamWriterResult<AmmInitPoolInstructionBuilder> {\n if (!this.__tnFamWriter_vault_two_proof) {\n this.__tnFamWriter_vault_two_proof = __tnCreateFamWriter(this, \"vault_two_proof\", (payload) => {\n const bytes = new Uint8Array(payload);\n const elementCount = bytes.length;\n this.__tnFam_vault_two_proof = bytes;\n this.__tnFam_vault_two_proofCount = elementCount;\n this.set_vault_two_proof_size(__tnToBigInt(elementCount));\n this.__tnInvalidate();\n });\n }\n return this.__tnFamWriter_vault_two_proof!;\n }\n\n build(): Uint8Array {\n const params = this.__tnComputeParams();\n const size = AmmInitPoolInstruction.footprintFromParams(params);\n const buffer = new Uint8Array(size);\n this.__tnWriteInto(buffer);\n this.__tnValidateOrThrow(buffer, params);\n return buffer;\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n const params = this.__tnComputeParams();\n const size = AmmInitPoolInstruction.footprintFromParams(params);\n if (target.length - offset < size) throw new Error(\"AmmInitPoolInstructionBuilder: target buffer too small\");\n const slice = target.subarray(offset, offset + size);\n this.__tnWriteInto(slice);\n this.__tnValidateOrThrow(slice, params);\n return target;\n }\n\n finish(): AmmInitPoolInstruction {\n const buffer = this.build();\n const params = this.__tnLastParams ?? this.__tnComputeParams();\n const view = AmmInitPoolInstruction.from_array(buffer, { params });\n if (!view) throw new Error(\"AmmInitPoolInstructionBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): AmmInitPoolInstruction {\n return this.finish();\n }\n\n dynamicParams(): AmmInitPoolInstruction.Params {\n return this.__tnComputeParams();\n }\n\n private __tnComputeParams(): AmmInitPoolInstruction.Params {\n if (this.__tnCachedParams) return this.__tnCachedParams;\n const params = AmmInitPoolInstruction.Params.fromValues({\n lp_mint_proof_lp_mint_proof_size: (() => { if (this.__tnFam_lp_mint_proofCount === null) throw new Error(\"AmmInitPoolInstructionBuilder: field 'lp_mint_proof' must be written before computing params\"); return __tnToBigInt(this.__tnFam_lp_mint_proofCount); })(),\n pool_proof_pool_proof_size: (() => { if (this.__tnFam_pool_proofCount === null) throw new Error(\"AmmInitPoolInstructionBuilder: field 'pool_proof' must be written before computing params\"); return __tnToBigInt(this.__tnFam_pool_proofCount); })(),\n vault_one_proof_vault_one_proof_size: (() => { if (this.__tnFam_vault_one_proofCount === null) throw new Error(\"AmmInitPoolInstructionBuilder: field 'vault_one_proof' must be written before computing params\"); return __tnToBigInt(this.__tnFam_vault_one_proofCount); })(),\n vault_two_proof_vault_two_proof_size: (() => { if (this.__tnFam_vault_two_proofCount === null) throw new Error(\"AmmInitPoolInstructionBuilder: field 'vault_two_proof' must be written before computing params\"); return __tnToBigInt(this.__tnFam_vault_two_proofCount); })(),\n });\n this.__tnCachedParams = params;\n return params;\n }\n\n private __tnWriteInto(target: Uint8Array): void {\n target.set(this.buffer, 0);\n let cursor = this.buffer.length;\n const __tnLocal_pool_proof_bytes = this.__tnFam_pool_proof;\n if (!__tnLocal_pool_proof_bytes) throw new Error(\"AmmInitPoolInstructionBuilder: field 'pool_proof' must be written before build\");\n target.set(__tnLocal_pool_proof_bytes, cursor);\n cursor += __tnLocal_pool_proof_bytes.length;\n const __tnLocal_lp_mint_proof_bytes = this.__tnFam_lp_mint_proof;\n if (!__tnLocal_lp_mint_proof_bytes) throw new Error(\"AmmInitPoolInstructionBuilder: field 'lp_mint_proof' must be written before build\");\n target.set(__tnLocal_lp_mint_proof_bytes, cursor);\n cursor += __tnLocal_lp_mint_proof_bytes.length;\n const __tnLocal_vault_one_proof_bytes = this.__tnFam_vault_one_proof;\n if (!__tnLocal_vault_one_proof_bytes) throw new Error(\"AmmInitPoolInstructionBuilder: field 'vault_one_proof' must be written before build\");\n target.set(__tnLocal_vault_one_proof_bytes, cursor);\n cursor += __tnLocal_vault_one_proof_bytes.length;\n const __tnLocal_vault_two_proof_bytes = this.__tnFam_vault_two_proof;\n if (!__tnLocal_vault_two_proof_bytes) throw new Error(\"AmmInitPoolInstructionBuilder: field 'vault_two_proof' must be written before build\");\n target.set(__tnLocal_vault_two_proof_bytes, cursor);\n cursor += __tnLocal_vault_two_proof_bytes.length;\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array, params: AmmInitPoolInstruction.Params): void {\n const result = AmmInitPoolInstruction.validate(buffer, { params });\n if (!result.ok) {\n throw new Error(`${ AmmInitPoolInstruction }Builder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n this.__tnLastParams = result.params ?? params;\n this.__tnLastBuffer = buffer;\n }\n}\n\n__tnRegisterFootprint(\"AmmInitPoolInstruction\", (params) => AmmInitPoolInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"AmmInitPoolInstruction\", (buffer, params) => AmmInitPoolInstruction.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"AmmInitPoolInstruction\", (buffer) => { const result = AmmInitPoolInstruction.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR AmmInstruction ----- */\n\nconst __tn_ir_AmmInstruction = {\n typeName: \"AmmInstruction\",\n root: { op: \"align\", alignment: 1, node: { op: \"add\", left: { op: \"align\", alignment: 4, node: { op: \"const\", value: 4n } }, right: { op: \"align\", alignment: 1, node: { op: \"field\", param: \"payload.payload_size\" } } } }\n} as const;\n\nexport class AmmInstruction_payload_Inner {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n private constructor(private buffer: Uint8Array, private descriptor: __TnVariantDescriptor | null, fieldContext?: Record<string, number | bigint>) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n this.__tnFieldContext = fieldContext ?? null;\n }\n\n static __tnCreate(payload: Uint8Array, descriptor: __TnVariantDescriptor | null, fieldContext?: Record<string, number | bigint>): AmmInstruction_payload_Inner {\n return new AmmInstruction_payload_Inner(new Uint8Array(payload), descriptor, fieldContext);\n }\n\n bytes(): Uint8Array {\n return new Uint8Array(this.buffer);\n }\n\n variant(): __TnVariantDescriptor | null {\n return this.descriptor;\n }\n\n asInitPool(): AmmInitPoolInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 0) return null;\n return AmmInitPoolInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asAddLiquidity(): AmmAddLiquidityInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 1) return null;\n return AmmAddLiquidityInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asWithdrawLiquidity(): AmmWithdrawLiquidityInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 2) return null;\n return AmmWithdrawLiquidityInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asSwap(): AmmSwapInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 3) return null;\n return AmmSwapInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n}\n\nexport class AmmInstruction {\n private view: DataView;\n private static readonly __tnFieldOffset_payload = 4;\n private __tnParams: AmmInstruction.Params;\n\n private constructor(private buffer: Uint8Array, params?: AmmInstruction.Params) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n if (params) {\n this.__tnParams = params;\n } else {\n const derived = AmmInstruction.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"AmmInstruction: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: AmmInstruction.Params, fieldContext?: Record<string, number | bigint> }): AmmInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"AmmInstruction.__tnCreateView requires a Uint8Array\");\n let params = opts?.params ?? null;\n if (!params) {\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const derived = AmmInstruction.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"AmmInstruction.__tnCreateView: failed to derive params\");\n params = derived.params;\n }\n const instance = new AmmInstruction(new Uint8Array(buffer), params);\n return instance;\n }\n\n dynamicParams(): AmmInstruction.Params {\n return this.__tnParams;\n }\n\n static builder(): AmmInstructionBuilder {\n return new AmmInstructionBuilder();\n }\n\n static fromBuilder(builder: AmmInstructionBuilder): AmmInstruction | null {\n const buffer = builder.build();\n const params = builder.dynamicParams();\n return AmmInstruction.from_array(buffer, { params });\n }\n\n static readonly payloadVariantDescriptors = Object.freeze([\n {\n name: \"init_pool\",\n tag: 0,\n payloadSize: null,\n payloadType: \"AmmInstruction::payload::init_pool\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(AmmInitPoolInstruction),\n },\n {\n name: \"add_liquidity\",\n tag: 1,\n payloadSize: 34,\n payloadType: \"AmmInstruction::payload::add_liquidity\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(AmmAddLiquidityInstruction),\n },\n {\n name: \"withdraw_liquidity\",\n tag: 2,\n payloadSize: 26,\n payloadType: \"AmmInstruction::payload::withdraw_liquidity\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(AmmWithdrawLiquidityInstruction),\n },\n {\n name: \"swap\",\n tag: 3,\n payloadSize: 24,\n payloadType: \"AmmInstruction::payload::swap\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(AmmSwapInstruction),\n },\n ] as const);\n\n static __tnComputeSequentialLayout(view: DataView, buffer: Uint8Array): { params: Record<string, bigint> | null; offsets: Record<string, number> | null; derived: Record<string, bigint> | null } | null {\n const __tnLength = buffer.length;\n let __tnParamSeq_payload_payload_size: bigint | null = null;\n let __tnFieldValue_discriminant: number | null = null;\n let __tnCursorMutable = 0;\n if (__tnCursorMutable + 4 > __tnLength) return null;\n const __tnRead_discriminant = view.getUint32(__tnCursorMutable, true);\n __tnFieldValue_discriminant = __tnRead_discriminant;\n __tnCursorMutable += 4;\n const __tnEnumTagValue_payload = __tnFieldValue_discriminant;\n if (__tnEnumTagValue_payload === null) return null;\n let __tnEnumSize_payload = 0;\n switch (Number(__tnEnumTagValue_payload)) {\n case 0: break;\n case 1: break;\n case 2: break;\n case 3: break;\n default: return null;\n }\n if (__tnCursorMutable > __tnLength) return null;\n __tnEnumSize_payload = __tnLength - __tnCursorMutable;\n __tnCursorMutable = __tnLength;\n __tnParamSeq_payload_payload_size = __tnToBigInt(__tnEnumSize_payload);\n const params: Record<string, bigint> = Object.create(null);\n if (__tnParamSeq_payload_payload_size === null) return null;\n params[\"payload_payload_size\"] = __tnParamSeq_payload_payload_size as bigint;\n return { params, offsets: null, derived: null };\n }\n\n private static __tnExtractParams(view: DataView, buffer: Uint8Array): { params: AmmInstruction.Params; derived: Record<string, bigint> | null } | null {\n if (buffer.length < 4) {\n return null;\n }\n const __tnParam_payload_discriminant = __tnToBigInt(view.getUint32(0, true));\n const __tnLayout = AmmInstruction.__tnComputeSequentialLayout(view, buffer);\n if (!__tnLayout || !__tnLayout.params) return null;\n const __tnSeqParams = __tnLayout.params;\n const __tnParamSeq_payload_payload_size = __tnSeqParams[\"payload_payload_size\"];\n if (__tnParamSeq_payload_payload_size === undefined) return null;\n const __tnExtractedParams = AmmInstruction.Params.fromValues({\n payload_discriminant: __tnParam_payload_discriminant,\n payload_payload_size: __tnParamSeq_payload_payload_size as bigint,\n });\n return { params: __tnExtractedParams, derived: null };\n }\n\n get_discriminant(): number {\n const offset = 0;\n return this.view.getUint32(offset, true); /* little-endian */\n }\n\n set_discriminant(value: number): void {\n const offset = 0;\n this.view.setUint32(offset, value, true); /* little-endian */\n }\n\n get discriminant(): number {\n return this.get_discriminant();\n }\n\n set discriminant(value: number) {\n this.set_discriminant(value);\n }\n\n payloadVariant(): typeof AmmInstruction.payloadVariantDescriptors[number] | null {\n const tag = this.view.getUint8(0);\n return AmmInstruction.payloadVariantDescriptors.find((variant) => variant.tag === tag) ?? null;\n }\n\n payload(): AmmInstruction_payload_Inner {\n const descriptor = this.payloadVariant();\n if (!descriptor) throw new Error(\"AmmInstruction: unknown payload variant\");\n const offset = AmmInstruction.__tnFieldOffset_payload;\n const remaining = this.buffer.length - offset;\n const payloadLength = descriptor.payloadSize ?? remaining;\n if (payloadLength < 0 || offset + payloadLength > this.buffer.length) throw new Error(\"AmmInstruction: payload exceeds buffer bounds\");\n const slice = this.buffer.subarray(offset, offset + payloadLength);\n return AmmInstruction_payload_Inner.__tnCreate(slice, descriptor, undefined);\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_AmmInstruction.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_AmmInstruction, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(payload_discriminant: number | bigint, payload_payload_size: number | bigint): bigint {\n const params = AmmInstruction.Params.fromValues({\n payload_discriminant: payload_discriminant,\n payload_payload_size: payload_payload_size,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: AmmInstruction.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"payload.discriminant\"] = params.payload_discriminant;\n record[\"payload.payload_size\"] = params.payload_payload_size;\n return record;\n }\n\n static footprintIrFromParams(params: AmmInstruction.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: AmmInstruction.Params): number {\n const irResult = this.footprintIrFromParams(params);\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for AmmInstruction');\n return __tnBigIntToNumber(irResult, 'AmmInstruction::footprintFromParams');\n }\n\n static footprintFromValues(input: { payload_discriminant: number | bigint, payload_payload_size: number | bigint }): number {\n const params = AmmInstruction.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: AmmInstruction.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: AmmInstruction.Params }): { ok: boolean; code?: string; consumed?: number; params?: AmmInstruction.Params } {\n if (!buffer || buffer.length === undefined) {\n return { ok: false, code: \"tn.invalid_buffer\" };\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n let params = opts?.params ?? null;\n if (!params) {\n const extracted = this.__tnExtractParams(view, buffer);\n if (!extracted) return { ok: false, code: \"tn.param_extraction_failed\" };\n params = extracted.params;\n }\n const __tnParamsRec = this.__tnPackParams(params);\n const irResult = this.__tnValidateInternal(buffer, __tnParamsRec);\n if (!irResult.ok) {\n return { ok: false, code: irResult.code, consumed: irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'AmmInstruction::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'AmmInstruction::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: AmmInstruction.Params }): AmmInstruction | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n let params = opts?.params ?? null;\n if (!params) {\n const derived = this.__tnExtractParams(view, buffer);\n if (!derived) return null;\n params = derived.params;\n }\n const validation = this.validate(buffer, { params });\n if (!validation.ok) {\n return null;\n }\n const cached = validation.params ?? params;\n const state = new AmmInstruction(buffer, cached);\n return state;\n }\n\n\n}\n\nexport namespace AmmInstruction {\n export type Params = {\n /** ABI path: payload.discriminant */\n readonly payload_discriminant: bigint;\n /** ABI path: payload.payload_size */\n readonly payload_payload_size: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n payload_discriminant: \"payload.discriminant\",\n payload_payload_size: \"payload.payload_size\",\n } as const);\n\n export const Params = {\n fromValues(input: { payload_discriminant: number | bigint, payload_payload_size: number | bigint }): Params {\n return {\n payload_discriminant: __tnToBigInt(input.payload_discriminant),\n payload_payload_size: __tnToBigInt(input.payload_payload_size),\n };\n },\n fromBuilder(source: { dynamicParams(): Params } | { params: Params } | Params): Params {\n if ((source as { dynamicParams?: () => Params }).dynamicParams) {\n return (source as { dynamicParams(): Params }).dynamicParams();\n }\n if ((source as { params?: Params }).params) {\n return (source as { params: Params }).params;\n }\n return source as Params;\n }\n };\n\n export function params(input: { payload_discriminant: number | bigint, payload_payload_size: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\nexport class AmmInstructionBuilder {\n private __tnPrefixBuffer: Uint8Array;\n private __tnPrefixView: DataView;\n private __tnField_discriminant: number | null = null;\n private __tnPayload_payload: { descriptor: typeof AmmInstruction.payloadVariantDescriptors[number]; bytes: Uint8Array } | null = null;\n private __tnCachedParams: AmmInstruction.Params | null = null;\n private __tnLastBuffer: Uint8Array | null = null;\n private __tnLastParams: AmmInstruction.Params | null = null;\n private __tnVariantSelector_payload?: __TnVariantSelectorResult<AmmInstructionBuilder>;\n\n constructor() {\n this.__tnPrefixBuffer = new Uint8Array(4);\n this.__tnPrefixView = new DataView(this.__tnPrefixBuffer.buffer, this.__tnPrefixBuffer.byteOffset, this.__tnPrefixBuffer.byteLength);\n }\n\n private __tnInvalidate(): void {\n this.__tnCachedParams = null;\n this.__tnLastBuffer = null;\n this.__tnLastParams = null;\n }\n\n private __tnAssign_discriminant(value: number): void {\n this.__tnField_discriminant = value & 0xff;\n this.__tnInvalidate();\n }\n\n set_discriminant(value: number): this {\n this.__tnAssign_discriminant(value);\n return this;\n }\n\n payload(): __TnVariantSelectorResult<AmmInstructionBuilder> {\n if (!this.__tnVariantSelector_payload) {\n this.__tnVariantSelector_payload = __tnCreateVariantSelector(this, AmmInstruction.payloadVariantDescriptors, (descriptor, payload) => {\n this.__tnPayload_payload = { descriptor, bytes: new Uint8Array(payload) };\n this.__tnAssign_discriminant(descriptor.tag);\n });\n }\n return this.__tnVariantSelector_payload!;\n }\n\n build(): Uint8Array {\n const params = this.__tnComputeParams();\n if (this.__tnField_discriminant === null) throw new Error(\"AmmInstructionBuilder: field 'discriminant' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"AmmInstructionBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 4 + payloadLength;\n const footprintSize = AmmInstruction.footprintFromParams(params);\n const size = Math.max(requiredSize, footprintSize);\n const buffer = new Uint8Array(size);\n this.__tnWriteInto(buffer);\n this.__tnValidateOrThrow(buffer, params);\n return buffer;\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n const params = this.__tnComputeParams();\n if (this.__tnField_discriminant === null) throw new Error(\"AmmInstructionBuilder: field 'discriminant' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"AmmInstructionBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 4 + payloadLength;\n const footprintSize = AmmInstruction.footprintFromParams(params);\n const size = Math.max(requiredSize, footprintSize);\n if (target.length - offset < size) throw new Error(\"AmmInstructionBuilder: target buffer too small\");\n const slice = target.subarray(offset, offset + size);\n this.__tnWriteInto(slice);\n this.__tnValidateOrThrow(slice, params);\n return target;\n }\n\n finish(): AmmInstruction {\n const buffer = this.build();\n const params = this.__tnLastParams ?? this.__tnComputeParams();\n const view = AmmInstruction.from_array(buffer, { params });\n if (!view) throw new Error(\"AmmInstructionBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): AmmInstruction {\n return this.finish();\n }\n\n dynamicParams(): AmmInstruction.Params {\n return this.__tnComputeParams();\n }\n\n private __tnComputeParams(): AmmInstruction.Params {\n if (this.__tnCachedParams) return this.__tnCachedParams;\n const params = AmmInstruction.Params.fromValues({\n payload_discriminant: (() => { if (this.__tnField_discriminant === null) throw new Error(\"AmmInstructionBuilder: missing enum tag\"); return __tnToBigInt(this.__tnField_discriminant); })(),\n payload_payload_size: (() => { if (!this.__tnPayload_payload) throw new Error(\"AmmInstructionBuilder: payload 'payload' must be selected before build\"); return __tnToBigInt(this.__tnPayload_payload.bytes.length); })(),\n });\n this.__tnCachedParams = params;\n return params;\n }\n\n private __tnWriteInto(target: Uint8Array): void {\n if (this.__tnField_discriminant === null) throw new Error(\"AmmInstructionBuilder: field 'discriminant' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"AmmInstructionBuilder: payload variant not selected\");\n const view = new DataView(target.buffer, target.byteOffset, target.byteLength);\n target.set(this.__tnPrefixBuffer, 0);\n view.setUint32(0, this.__tnField_discriminant, true);\n target.set(this.__tnPayload_payload.bytes, 4);\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array, params: AmmInstruction.Params): void {\n const result = AmmInstruction.validate(buffer, { params });\n if (!result.ok) {\n throw new Error(`${ AmmInstruction }Builder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n this.__tnLastParams = result.params ?? params;\n this.__tnLastBuffer = buffer;\n }\n}\n\n__tnRegisterFootprint(\"AmmInstruction\", (params) => AmmInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"AmmInstruction\", (buffer, params) => AmmInstruction.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"AmmInstruction\", (buffer) => { const result = AmmInstruction.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR AmmPoolMetadata ----- */\n\nconst __tn_ir_AmmPoolMetadata = {\n typeName: \"AmmPoolMetadata\",\n root: { op: \"const\", value: 203n }\n} as const;\n\nexport class AmmPoolMetadata {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): AmmPoolMetadata {\n if (!buffer || buffer.length === undefined) throw new Error(\"AmmPoolMetadata.__tnCreateView requires a Uint8Array\");\n return new AmmPoolMetadata(new Uint8Array(buffer));\n }\n\n static builder(): AmmPoolMetadataBuilder {\n return new AmmPoolMetadataBuilder();\n }\n\n static fromBuilder(builder: AmmPoolMetadataBuilder): AmmPoolMetadata | null {\n const buffer = builder.build();\n return AmmPoolMetadata.from_array(buffer);\n }\n\n get_is_initialized(): number {\n const offset = 0;\n return this.view.getUint8(offset);\n }\n\n set_is_initialized(value: number): void {\n const offset = 0;\n this.view.setUint8(offset, value);\n }\n\n get is_initialized(): number {\n return this.get_is_initialized();\n }\n\n set is_initialized(value: number) {\n this.set_is_initialized(value);\n }\n\n get_locked_lp_supply(): bigint {\n const offset = 1;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_locked_lp_supply(value: bigint): void {\n const offset = 1;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get locked_lp_supply(): bigint {\n return this.get_locked_lp_supply();\n }\n\n set locked_lp_supply(value: bigint) {\n this.set_locked_lp_supply(value);\n }\n\n get_swap_fee_bps(): number {\n const offset = 9;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_swap_fee_bps(value: number): void {\n const offset = 9;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get swap_fee_bps(): number {\n return this.get_swap_fee_bps();\n }\n\n set swap_fee_bps(value: number) {\n this.set_swap_fee_bps(value);\n }\n\n get_swap_pool_authority(): Pubkey {\n const offset = 11;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_swap_pool_authority(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 11;\n this.buffer.set(sourceBytes, offset);\n }\n\n get swap_pool_authority(): Pubkey {\n return this.get_swap_pool_authority();\n }\n\n set swap_pool_authority(value: Pubkey) {\n this.set_swap_pool_authority(value);\n }\n\n get_mint_one(): Pubkey {\n const offset = 43;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_mint_one(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 43;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint_one(): Pubkey {\n return this.get_mint_one();\n }\n\n set mint_one(value: Pubkey) {\n this.set_mint_one(value);\n }\n\n get_mint_two(): Pubkey {\n const offset = 75;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_mint_two(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 75;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint_two(): Pubkey {\n return this.get_mint_two();\n }\n\n set mint_two(value: Pubkey) {\n this.set_mint_two(value);\n }\n\n get_vault_one(): Pubkey {\n const offset = 107;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_vault_one(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 107;\n this.buffer.set(sourceBytes, offset);\n }\n\n get vault_one(): Pubkey {\n return this.get_vault_one();\n }\n\n set vault_one(value: Pubkey) {\n this.set_vault_one(value);\n }\n\n get_vault_two(): Pubkey {\n const offset = 139;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_vault_two(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 139;\n this.buffer.set(sourceBytes, offset);\n }\n\n get vault_two(): Pubkey {\n return this.get_vault_two();\n }\n\n set vault_two(value: Pubkey) {\n this.set_vault_two(value);\n }\n\n get_lp_mint(): Pubkey {\n const offset = 171;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_lp_mint(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 171;\n this.buffer.set(sourceBytes, offset);\n }\n\n get lp_mint(): Pubkey {\n return this.get_lp_mint();\n }\n\n set lp_mint(value: Pubkey) {\n this.set_lp_mint(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_AmmPoolMetadata.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_AmmPoolMetadata, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for AmmPoolMetadata');\n }\n return __tnBigIntToNumber(irResult, 'AmmPoolMetadata::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 203) return { ok: false, code: \"tn.buffer_too_small\", consumed: 203 };\n return { ok: true, consumed: 203 };\n }\n\n static from_array(buffer: Uint8Array): AmmPoolMetadata | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new AmmPoolMetadata(buffer);\n }\n\n}\n\nexport class AmmPoolMetadataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(203);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_is_initialized(value: number): this {\n this.view.setUint8(0, value);\n return this;\n }\n\n set_locked_lp_supply(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(1, cast, true);\n return this;\n }\n\n set_swap_fee_bps(value: number): this {\n this.view.setUint16(9, value, true);\n return this;\n }\n\n set_swap_pool_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"swap_pool_authority expects 32 bytes\");\n this.buffer.set(value, 11);\n return this;\n }\n\n set_mint_one(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint_one expects 32 bytes\");\n this.buffer.set(value, 43);\n return this;\n }\n\n set_mint_two(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint_two expects 32 bytes\");\n this.buffer.set(value, 75);\n return this;\n }\n\n set_vault_one(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"vault_one expects 32 bytes\");\n this.buffer.set(value, 107);\n return this;\n }\n\n set_vault_two(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"vault_two expects 32 bytes\");\n this.buffer.set(value, 139);\n return this;\n }\n\n set_lp_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"lp_mint expects 32 bytes\");\n this.buffer.set(value, 171);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): AmmPoolMetadata {\n const view = AmmPoolMetadata.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build AmmPoolMetadata\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"AmmPoolMetadata\", (params) => AmmPoolMetadata.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"AmmPoolMetadata\", (buffer, params) => AmmPoolMetadata.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"AmmPoolMetadata\", (buffer) => { const result = AmmPoolMetadata.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR BurnEventData ----- */\n\nconst __tn_ir_BurnEventData = {\n typeName: \"BurnEventData\",\n root: { op: \"const\", value: 128n }\n} as const;\n\nexport class BurnEventData {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): BurnEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"BurnEventData.__tnCreateView requires a Uint8Array\");\n return new BurnEventData(new Uint8Array(buffer));\n }\n\n static builder(): BurnEventDataBuilder {\n return new BurnEventDataBuilder();\n }\n\n static fromBuilder(builder: BurnEventDataBuilder): BurnEventData | null {\n const buffer = builder.build();\n return BurnEventData.from_array(buffer);\n }\n\n get_pool(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_pool(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get pool(): Pubkey {\n return this.get_pool();\n }\n\n set pool(value: Pubkey) {\n this.set_pool(value);\n }\n\n get_sender(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_sender(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 32;\n this.buffer.set(sourceBytes, offset);\n }\n\n get sender(): Pubkey {\n return this.get_sender();\n }\n\n set sender(value: Pubkey) {\n this.set_sender(value);\n }\n\n get_to(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_to(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get to(): Pubkey {\n return this.get_to();\n }\n\n set to(value: Pubkey) {\n this.set_to(value);\n }\n\n get_amount_one(): bigint {\n const offset = 96;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount_one(value: bigint): void {\n const offset = 96;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount_one(): bigint {\n return this.get_amount_one();\n }\n\n set amount_one(value: bigint) {\n this.set_amount_one(value);\n }\n\n get_amount_two(): bigint {\n const offset = 104;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount_two(value: bigint): void {\n const offset = 104;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount_two(): bigint {\n return this.get_amount_two();\n }\n\n set amount_two(value: bigint) {\n this.set_amount_two(value);\n }\n\n get_lp_burned(): bigint {\n const offset = 112;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_lp_burned(value: bigint): void {\n const offset = 112;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get lp_burned(): bigint {\n return this.get_lp_burned();\n }\n\n set lp_burned(value: bigint) {\n this.set_lp_burned(value);\n }\n\n get_lp_total_supply(): bigint {\n const offset = 120;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_lp_total_supply(value: bigint): void {\n const offset = 120;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get lp_total_supply(): bigint {\n return this.get_lp_total_supply();\n }\n\n set lp_total_supply(value: bigint) {\n this.set_lp_total_supply(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_BurnEventData.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_BurnEventData, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for BurnEventData');\n }\n return __tnBigIntToNumber(irResult, 'BurnEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 128) return { ok: false, code: \"tn.buffer_too_small\", consumed: 128 };\n return { ok: true, consumed: 128 };\n }\n\n static from_array(buffer: Uint8Array): BurnEventData | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new BurnEventData(buffer);\n }\n\n}\n\nexport class BurnEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(128);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_pool(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"pool expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_sender(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"sender expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_to(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"to expects 32 bytes\");\n this.buffer.set(value, 64);\n return this;\n }\n\n set_amount_one(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(96, cast, true);\n return this;\n }\n\n set_amount_two(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(104, cast, true);\n return this;\n }\n\n set_lp_burned(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(112, cast, true);\n return this;\n }\n\n set_lp_total_supply(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(120, cast, true);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): BurnEventData {\n const view = BurnEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build BurnEventData\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"BurnEventData\", (params) => BurnEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"BurnEventData\", (buffer, params) => BurnEventData.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"BurnEventData\", (buffer) => { const result = BurnEventData.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR MintEventData ----- */\n\nconst __tn_ir_MintEventData = {\n typeName: \"MintEventData\",\n root: { op: \"const\", value: 96n }\n} as const;\n\nexport class MintEventData {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): MintEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"MintEventData.__tnCreateView requires a Uint8Array\");\n return new MintEventData(new Uint8Array(buffer));\n }\n\n static builder(): MintEventDataBuilder {\n return new MintEventDataBuilder();\n }\n\n static fromBuilder(builder: MintEventDataBuilder): MintEventData | null {\n const buffer = builder.build();\n return MintEventData.from_array(buffer);\n }\n\n get_pool(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_pool(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get pool(): Pubkey {\n return this.get_pool();\n }\n\n set pool(value: Pubkey) {\n this.set_pool(value);\n }\n\n get_sender(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_sender(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 32;\n this.buffer.set(sourceBytes, offset);\n }\n\n get sender(): Pubkey {\n return this.get_sender();\n }\n\n set sender(value: Pubkey) {\n this.set_sender(value);\n }\n\n get_amount_one(): bigint {\n const offset = 64;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount_one(value: bigint): void {\n const offset = 64;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount_one(): bigint {\n return this.get_amount_one();\n }\n\n set amount_one(value: bigint) {\n this.set_amount_one(value);\n }\n\n get_amount_two(): bigint {\n const offset = 72;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount_two(value: bigint): void {\n const offset = 72;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount_two(): bigint {\n return this.get_amount_two();\n }\n\n set amount_two(value: bigint) {\n this.set_amount_two(value);\n }\n\n get_lp_minted(): bigint {\n const offset = 80;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_lp_minted(value: bigint): void {\n const offset = 80;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get lp_minted(): bigint {\n return this.get_lp_minted();\n }\n\n set lp_minted(value: bigint) {\n this.set_lp_minted(value);\n }\n\n get_lp_total_supply(): bigint {\n const offset = 88;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_lp_total_supply(value: bigint): void {\n const offset = 88;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get lp_total_supply(): bigint {\n return this.get_lp_total_supply();\n }\n\n set lp_total_supply(value: bigint) {\n this.set_lp_total_supply(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_MintEventData.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_MintEventData, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for MintEventData');\n }\n return __tnBigIntToNumber(irResult, 'MintEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 96) return { ok: false, code: \"tn.buffer_too_small\", consumed: 96 };\n return { ok: true, consumed: 96 };\n }\n\n static from_array(buffer: Uint8Array): MintEventData | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new MintEventData(buffer);\n }\n\n}\n\nexport class MintEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(96);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_pool(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"pool expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_sender(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"sender expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_amount_one(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(64, cast, true);\n return this;\n }\n\n set_amount_two(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(72, cast, true);\n return this;\n }\n\n set_lp_minted(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(80, cast, true);\n return this;\n }\n\n set_lp_total_supply(value: bigint): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(88, cast, true);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): MintEventData {\n const view = MintEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build MintEventData\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"MintEventData\", (params) => MintEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"MintEventData\", (buffer, params) => MintEventData.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"MintEventData\", (buffer) => { const result = MintEventData.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR PoolInitEventData ----- */\n\nconst __tn_ir_PoolInitEventData = {\n typeName: \"PoolInitEventData\",\n root: { op: \"const\", value: 194n }\n} as const;\n\nexport class PoolInitEventData {\n private view: DataView;\n\n private constructor(private buffer: Uint8Array) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): PoolInitEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"PoolInitEventData.__tnCreateView requires a Uint8Array\");\n return new PoolInitEventData(new Uint8Array(buffer));\n }\n\n static builder(): PoolInitEventDataBuilder {\n return new PoolInitEventDataBuilder();\n }\n\n static fromBuilder(builder: PoolInitEventDataBuilder): PoolInitEventData | null {\n const buffer = builder.build();\n return PoolInitEventData.from_array(buffer);\n }\n\n get_pool(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_pool(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get pool(): Pubkey {\n return this.get_pool();\n }\n\n set pool(value: Pubkey) {\n this.set_pool(value);\n }\n\n get_mint_one(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_mint_one(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 32;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint_one(): Pubkey {\n return this.get_mint_one();\n }\n\n set mint_one(value: Pubkey) {\n this.set_mint_one(value);\n }\n\n get_mint_two(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_mint_two(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint_two(): Pubkey {\n return this.get_mint_two();\n }\n\n set mint_two(value: Pubkey) {\n this.set_mint_two(value);\n }\n\n get_lp_mint(): Pubkey {\n const offset = 96;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_lp_mint(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 96;\n this.buffer.set(sourceBytes, offset);\n }\n\n get lp_mint(): Pubkey {\n return this.get_lp_mint();\n }\n\n set lp_mint(value: Pubkey) {\n this.set_lp_mint(value);\n }\n\n get_vault_one(): Pubkey {\n const offset = 128;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_vault_one(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 128;\n this.buffer.set(sourceBytes, offset);\n }\n\n get vault_one(): Pubkey {\n return this.get_vault_one();\n }\n\n set vault_one(value: Pubkey) {\n this.set_vault_one(value);\n }\n\n get_vault_two(): Pubkey {\n const offset = 160;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_vault_two(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 160;\n this.buffer.set(sourceBytes, offset);\n }\n\n get vault_two(): Pubkey {\n return this.get_vault_two();\n }\n\n set vault_two(value: Pubkey) {\n this.set_vault_two(value);\n }\n\n get_swap_fee_bps(): number {\n const offset = 192;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_swap_fee_bps(value: number): void {\n const offset = 192;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get swap_fee_bps(): number {\n return this.get_swap_fee_bps();\n }\n\n set swap_fee_bps(value: number) {\n this.set_swap_fee_bps(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_PoolInitEventData.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_PoolInitEventData, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(): bigint {\n return this.__tnFootprintInternal(Object.create(null));\n }\n\n static footprint(): number {\n const irResult = this.footprintIr();\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) {\n throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for PoolInitEventData');\n }\n return __tnBigIntToNumber(irResult, 'PoolInitEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 194) return { ok: false, code: \"tn.buffer_too_small\", consumed: 194 };\n return { ok: true, consumed: 194 };\n }\n\n static from_array(buffer: Uint8Array): PoolInitEventData | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const validation = this.validate(buffer);\n if (!validation.ok) {\n return null;\n }\n return new PoolInitEventData(buffer);\n }\n\n}\n\nexport class PoolInitEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(194);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_pool(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"pool expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_mint_one(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint_one expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_mint_two(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint_two expects 32 bytes\");\n this.buffer.set(value, 64);\n return this;\n }\n\n set_lp_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"lp_mint expects 32 bytes\");\n this.buffer.set(value, 96);\n return this;\n }\n\n set_vault_one(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"vault_one expects 32 bytes\");\n this.buffer.set(value, 128);\n return this;\n }\n\n set_vault_two(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"vault_two expects 32 bytes\");\n this.buffer.set(value, 160);\n return this;\n }\n\n set_swap_fee_bps(value: number): this {\n this.view.setUint16(192, value, true);\n return this;\n }\n\n build(): Uint8Array {\n return this.buffer.slice();\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n if (target.length - offset < this.buffer.length) throw new Error(\"target buffer too small\");\n target.set(this.buffer, offset);\n return target;\n }\n\n finish(): PoolInitEventData {\n const view = PoolInitEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build PoolInitEventData\");\n return view;\n }\n}\n\n__tnRegisterFootprint(\"PoolInitEventData\", (params) => PoolInitEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"PoolInitEventData\", (buffer, params) => PoolInitEventData.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"PoolInitEventData\", (buffer) => { const result = PoolInitEventData.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n\n/* ----- TYPE DEFINITION FOR AmmEvent ----- */\n\nconst __tn_ir_AmmEvent = {\n typeName: \"AmmEvent\",\n root: { op: \"align\", alignment: 1, node: { op: \"add\", left: { op: \"align\", alignment: 1, node: { op: \"const\", value: 1n } }, right: { op: \"align\", alignment: 1, node: { op: \"switch\", tag: \"AmmEvent::payload.event_type\", cases: [{ value: 0, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 194n } } }, { value: 1, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 96n } } }, { value: 2, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 128n } } }, { value: 3, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 113n } } }, { value: 4, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 48n } } }] } } } }\n} as const;\n\nexport class AmmEvent_payload_Inner {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n private constructor(private buffer: Uint8Array, private descriptor: __TnVariantDescriptor | null, fieldContext?: Record<string, number | bigint>) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n this.__tnFieldContext = fieldContext ?? null;\n }\n\n static __tnCreate(payload: Uint8Array, descriptor: __TnVariantDescriptor | null, fieldContext?: Record<string, number | bigint>): AmmEvent_payload_Inner {\n return new AmmEvent_payload_Inner(new Uint8Array(payload), descriptor, fieldContext);\n }\n\n bytes(): Uint8Array {\n return new Uint8Array(this.buffer);\n }\n\n variant(): __TnVariantDescriptor | null {\n return this.descriptor;\n }\n\n asPoolInit(): PoolInitEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 0) return null;\n return PoolInitEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asMint(): MintEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 1) return null;\n return MintEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asBurn(): BurnEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 2) return null;\n return BurnEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asSwap(): SwapEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 3) return null;\n return SwapEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asSync(): SyncEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 4) return null;\n return SyncEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n}\n\nexport class AmmEvent {\n private view: DataView;\n private static readonly __tnFieldOffset_payload = 1;\n private __tnParams: AmmEvent.Params;\n\n private constructor(private buffer: Uint8Array, params?: AmmEvent.Params) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n if (params) {\n this.__tnParams = params;\n } else {\n const derived = AmmEvent.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"AmmEvent: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: AmmEvent.Params, fieldContext?: Record<string, number | bigint> }): AmmEvent {\n if (!buffer || buffer.length === undefined) throw new Error(\"AmmEvent.__tnCreateView requires a Uint8Array\");\n let params = opts?.params ?? null;\n if (!params) {\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const derived = AmmEvent.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"AmmEvent.__tnCreateView: failed to derive params\");\n params = derived.params;\n }\n const instance = new AmmEvent(new Uint8Array(buffer), params);\n return instance;\n }\n\n dynamicParams(): AmmEvent.Params {\n return this.__tnParams;\n }\n\n static builder(): AmmEventBuilder {\n return new AmmEventBuilder();\n }\n\n static fromBuilder(builder: AmmEventBuilder): AmmEvent | null {\n const buffer = builder.build();\n const params = builder.dynamicParams();\n return AmmEvent.from_array(buffer, { params });\n }\n\n static readonly payloadVariantDescriptors = Object.freeze([\n {\n name: \"pool_init\",\n tag: 0,\n payloadSize: 194,\n payloadType: \"AmmEvent::payload::pool_init\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(PoolInitEventData),\n },\n {\n name: \"mint\",\n tag: 1,\n payloadSize: 96,\n payloadType: \"AmmEvent::payload::mint\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(MintEventData),\n },\n {\n name: \"burn\",\n tag: 2,\n payloadSize: 128,\n payloadType: \"AmmEvent::payload::burn\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(BurnEventData),\n },\n {\n name: \"swap\",\n tag: 3,\n payloadSize: 113,\n payloadType: \"AmmEvent::payload::swap\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(SwapEventData),\n },\n {\n name: \"sync\",\n tag: 4,\n payloadSize: 48,\n payloadType: \"AmmEvent::payload::sync\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(SyncEventData),\n },\n ] as const);\n\n private static __tnExtractParams(view: DataView, buffer: Uint8Array): { params: AmmEvent.Params; derived: Record<string, bigint> | null } | null {\n if (buffer.length < 1) {\n return null;\n }\n const __tnParam_payload_event_type = __tnToBigInt(view.getUint8(0));\n const __tnExtractedParams = AmmEvent.Params.fromValues({\n payload_event_type: __tnParam_payload_event_type,\n });\n return { params: __tnExtractedParams, derived: null };\n }\n\n get_event_type(): number {\n const offset = 0;\n return this.view.getUint8(offset);\n }\n\n set_event_type(value: number): void {\n const offset = 0;\n this.view.setUint8(offset, value);\n }\n\n get event_type(): number {\n return this.get_event_type();\n }\n\n set event_type(value: number) {\n this.set_event_type(value);\n }\n\n payloadVariant(): typeof AmmEvent.payloadVariantDescriptors[number] | null {\n const tag = this.view.getUint8(0);\n return AmmEvent.payloadVariantDescriptors.find((variant) => variant.tag === tag) ?? null;\n }\n\n payload(): AmmEvent_payload_Inner {\n const descriptor = this.payloadVariant();\n if (!descriptor) throw new Error(\"AmmEvent: unknown payload variant\");\n const offset = AmmEvent.__tnFieldOffset_payload;\n const remaining = this.buffer.length - offset;\n const payloadLength = descriptor.payloadSize ?? remaining;\n if (payloadLength < 0 || offset + payloadLength > this.buffer.length) throw new Error(\"AmmEvent: payload exceeds buffer bounds\");\n const slice = this.buffer.subarray(offset, offset + payloadLength);\n return AmmEvent_payload_Inner.__tnCreate(slice, descriptor, undefined);\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_AmmEvent.root, { params: __tnParams });\n }\n\n private static __tnValidateInternal(buffer: Uint8Array, __tnParams: Record<string, bigint>): { ok: boolean; code?: string; consumed?: bigint } {\n return __tnValidateIrTree(__tn_ir_AmmEvent, buffer, __tnParams);\n }\n\n static __tnInvokeFootprint(__tnParams: Record<string, bigint>): bigint {\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static __tnInvokeValidate(buffer: Uint8Array, __tnParams: Record<string, bigint>): __TnValidateResult {\n return this.__tnValidateInternal(buffer, __tnParams);\n }\n\n static footprintIr(payload_event_type: number | bigint): bigint {\n const params = AmmEvent.Params.fromValues({\n payload_event_type: payload_event_type,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: AmmEvent.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"payload.event_type\"] = params.payload_event_type;\n record[\"AmmEvent::payload.event_type\"] = params.payload_event_type;\n return record;\n }\n\n static footprintIrFromParams(params: AmmEvent.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: AmmEvent.Params): number {\n const irResult = this.footprintIrFromParams(params);\n const maxSafe = __tnToBigInt(Number.MAX_SAFE_INTEGER);\n if (__tnBigIntGreaterThan(irResult, maxSafe)) throw new Error('footprint exceeds Number.MAX_SAFE_INTEGER for AmmEvent');\n return __tnBigIntToNumber(irResult, 'AmmEvent::footprintFromParams');\n }\n\n static footprintFromValues(input: { payload_event_type: number | bigint }): number {\n const params = AmmEvent.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: AmmEvent.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: AmmEvent.Params }): { ok: boolean; code?: string; consumed?: number; params?: AmmEvent.Params } {\n if (!buffer || buffer.length === undefined) {\n return { ok: false, code: \"tn.invalid_buffer\" };\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n let params = opts?.params ?? null;\n if (!params) {\n const extracted = this.__tnExtractParams(view, buffer);\n if (!extracted) return { ok: false, code: \"tn.param_extraction_failed\" };\n params = extracted.params;\n }\n const __tnParamsRec = this.__tnPackParams(params);\n const irResult = this.__tnValidateInternal(buffer, __tnParamsRec);\n if (!irResult.ok) {\n return { ok: false, code: irResult.code, consumed: irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'AmmEvent::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'AmmEvent::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: AmmEvent.Params }): AmmEvent | null {\n if (!buffer || buffer.length === undefined) {\n return null;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n let params = opts?.params ?? null;\n if (!params) {\n const derived = this.__tnExtractParams(view, buffer);\n if (!derived) return null;\n params = derived.params;\n }\n const validation = this.validate(buffer, { params });\n if (!validation.ok) {\n return null;\n }\n const cached = validation.params ?? params;\n const state = new AmmEvent(buffer, cached);\n return state;\n }\n\n\n}\n\nexport namespace AmmEvent {\n export type Params = {\n /** ABI path: payload.event_type */\n readonly payload_event_type: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n payload_event_type: \"payload.event_type\",\n } as const);\n\n export const Params = {\n fromValues(input: { payload_event_type: number | bigint }): Params {\n return {\n payload_event_type: __tnToBigInt(input.payload_event_type),\n };\n },\n fromBuilder(source: { dynamicParams(): Params } | { params: Params } | Params): Params {\n if ((source as { dynamicParams?: () => Params }).dynamicParams) {\n return (source as { dynamicParams(): Params }).dynamicParams();\n }\n if ((source as { params?: Params }).params) {\n return (source as { params: Params }).params;\n }\n return source as Params;\n }\n };\n\n export function params(input: { payload_event_type: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\nexport class AmmEventBuilder {\n private __tnPrefixBuffer: Uint8Array;\n private __tnPrefixView: DataView;\n private __tnField_event_type: number | null = null;\n private __tnPayload_payload: { descriptor: typeof AmmEvent.payloadVariantDescriptors[number]; bytes: Uint8Array } | null = null;\n private __tnCachedParams: AmmEvent.Params | null = null;\n private __tnLastBuffer: Uint8Array | null = null;\n private __tnLastParams: AmmEvent.Params | null = null;\n private __tnVariantSelector_payload?: __TnVariantSelectorResult<AmmEventBuilder>;\n\n constructor() {\n this.__tnPrefixBuffer = new Uint8Array(1);\n this.__tnPrefixView = new DataView(this.__tnPrefixBuffer.buffer, this.__tnPrefixBuffer.byteOffset, this.__tnPrefixBuffer.byteLength);\n }\n\n private __tnInvalidate(): void {\n this.__tnCachedParams = null;\n this.__tnLastBuffer = null;\n this.__tnLastParams = null;\n }\n\n private __tnAssign_event_type(value: number): void {\n this.__tnField_event_type = value & 0xff;\n this.__tnInvalidate();\n }\n\n set_event_type(value: number): this {\n this.__tnAssign_event_type(value);\n return this;\n }\n\n payload(): __TnVariantSelectorResult<AmmEventBuilder> {\n if (!this.__tnVariantSelector_payload) {\n this.__tnVariantSelector_payload = __tnCreateVariantSelector(this, AmmEvent.payloadVariantDescriptors, (descriptor, payload) => {\n this.__tnPayload_payload = { descriptor, bytes: new Uint8Array(payload) };\n this.__tnAssign_event_type(descriptor.tag);\n });\n }\n return this.__tnVariantSelector_payload!;\n }\n\n build(): Uint8Array {\n const params = this.__tnComputeParams();\n if (this.__tnField_event_type === null) throw new Error(\"AmmEventBuilder: field 'event_type' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"AmmEventBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 1 + payloadLength;\n const footprintSize = AmmEvent.footprintFromParams(params);\n const size = Math.max(requiredSize, footprintSize);\n const buffer = new Uint8Array(size);\n this.__tnWriteInto(buffer);\n this.__tnValidateOrThrow(buffer, params);\n return buffer;\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n const params = this.__tnComputeParams();\n if (this.__tnField_event_type === null) throw new Error(\"AmmEventBuilder: field 'event_type' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"AmmEventBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 1 + payloadLength;\n const footprintSize = AmmEvent.footprintFromParams(params);\n const size = Math.max(requiredSize, footprintSize);\n if (target.length - offset < size) throw new Error(\"AmmEventBuilder: target buffer too small\");\n const slice = target.subarray(offset, offset + size);\n this.__tnWriteInto(slice);\n this.__tnValidateOrThrow(slice, params);\n return target;\n }\n\n finish(): AmmEvent {\n const buffer = this.build();\n const params = this.__tnLastParams ?? this.__tnComputeParams();\n const view = AmmEvent.from_array(buffer, { params });\n if (!view) throw new Error(\"AmmEventBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): AmmEvent {\n return this.finish();\n }\n\n dynamicParams(): AmmEvent.Params {\n return this.__tnComputeParams();\n }\n\n private __tnComputeParams(): AmmEvent.Params {\n if (this.__tnCachedParams) return this.__tnCachedParams;\n const params = AmmEvent.Params.fromValues({\n payload_event_type: (() => { if (this.__tnField_event_type === null) throw new Error(\"AmmEventBuilder: missing enum tag\"); return __tnToBigInt(this.__tnField_event_type); })(),\n });\n this.__tnCachedParams = params;\n return params;\n }\n\n private __tnWriteInto(target: Uint8Array): void {\n if (this.__tnField_event_type === null) throw new Error(\"AmmEventBuilder: field 'event_type' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"AmmEventBuilder: payload variant not selected\");\n const view = new DataView(target.buffer, target.byteOffset, target.byteLength);\n target.set(this.__tnPrefixBuffer, 0);\n view.setUint8(0, this.__tnField_event_type);\n target.set(this.__tnPayload_payload.bytes, 1);\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array, params: AmmEvent.Params): void {\n const result = AmmEvent.validate(buffer, { params });\n if (!result.ok) {\n throw new Error(`${ AmmEvent }Builder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n this.__tnLastParams = result.params ?? params;\n this.__tnLastBuffer = buffer;\n }\n}\n\n__tnRegisterFootprint(\"AmmEvent\", (params) => AmmEvent.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"AmmEvent\", (buffer, params) => AmmEvent.__tnInvokeValidate(buffer, params));\n__tnRegisterDynamicValidate(\"AmmEvent\", (buffer) => { const result = AmmEvent.validate(buffer); const params = (result as { params?: Record<string, bigint> }).params; return { ok: result.ok, code: result.code, consumed: result.consumed === undefined ? undefined : __tnToBigInt(result.consumed), params }; });\n","import { Pubkey } from '@thru/sdk';\nimport { encodeAddress } from '@thru/sdk/helpers';\nimport type { Account } from '@thru/sdk';\nimport type { Thru } from '@thru/sdk/client';\nimport { compareBytes } from '../helpers/bytes';\nimport {\n AmmAddLiquidityInstructionBuilder,\n AmmInitPoolInstructionBuilder,\n AmmInstructionBuilder,\n AmmPoolMetadata as AmmPoolMetadataView,\n AmmSwapInstructionBuilder,\n AmmWithdrawLiquidityInstructionBuilder,\n} from './abi/thru/program/amm/types';\n\nexport {\n AmmAddLiquidityInstruction,\n AmmAddLiquidityInstructionBuilder,\n AmmError,\n AmmErrorBuilder,\n AmmEvent,\n AmmEventBuilder,\n AmmInitPoolInstruction,\n AmmInitPoolInstructionBuilder,\n AmmInstruction,\n AmmInstructionBuilder,\n AmmPoolMetadata as AmmPoolMetadataView,\n AmmPoolMetadataBuilder,\n AmmSwapInstruction,\n AmmSwapInstructionBuilder,\n AmmWithdrawLiquidityInstruction,\n AmmWithdrawLiquidityInstructionBuilder,\n BurnEventData,\n BurnEventDataBuilder,\n MintEventData,\n MintEventDataBuilder,\n PoolInitEventData,\n PoolInitEventDataBuilder,\n Seed32,\n SwapEventData,\n SwapEventDataBuilder,\n SyncEventData,\n SyncEventDataBuilder,\n} from './abi/thru/program/amm/types';\n\nexport const AMM_INSTRUCTION_INIT_POOL = 0;\nexport const AMM_INSTRUCTION_ADD_LIQUIDITY = 1;\nexport const AMM_INSTRUCTION_WITHDRAW_LIQUIDITY = 2;\nexport const AMM_INSTRUCTION_SWAP = 3;\n\nexport const AMM_EVENT_POOL_INIT = 0;\nexport const AMM_EVENT_MINT = 1;\nexport const AMM_EVENT_BURN = 2;\nexport const AMM_EVENT_SWAP = 3;\nexport const AMM_EVENT_SYNC = 4;\n\nexport const AMM_BPS_DENOMINATOR = 10_000;\nexport const AMM_DEFAULT_SWAP_FEE_BPS = 30;\nexport const AMM_MAX_SWAP_FEE_BPS = 500;\nexport const AMM_MINIMUM_LIQUIDITY = 1_000n;\nexport const AMM_LP_DECIMALS = 6;\nexport const AMM_LP_SCALE = 1_000_000n;\nexport const AMM_POOL_METADATA_SIZE = 203;\nexport const AMM_PROGRAM_ADDRESS =\n 'taCnhMCcBZSJ8MDLGYBnTIRgmWxZx_jNjoNwOwzk1g4ST1';\n\ntype AmmInstructionVariant = 'init_pool' | 'add_liquidity' | 'withdraw_liquidity' | 'swap';\n\nexport const AMM_ERROR_LABELS: Record<number, string> = {\n 1: 'Invalid instruction data size',\n 2: 'Invalid instruction',\n 3: 'Account already initialized',\n 4: 'Account not initialized',\n 5: 'Invalid account index',\n 6: 'Invalid mint ordering',\n 7: 'Unauthorized operation',\n 8: 'Pool create failed',\n 9: 'LP mint create failed',\n 10: 'Vault one create failed',\n 11: 'Vault two create failed',\n 12: 'Account resize failed',\n 13: 'Account set writable failed',\n 14: 'LP mint init failed',\n 15: 'Vault one init failed',\n 16: 'Vault two init failed',\n 17: 'Liquidity bounds',\n 18: 'Vault mismatch',\n 19: 'LP mint mismatch',\n};\n\nconst PUBKEY_LENGTH = 32;\nconst LP_MINT_SEED_LABEL = asciiBytes('lp_mint');\nexport const AMM_VAULT_ONE_SEED = oneByteSeed(0x01);\nexport const AMM_VAULT_TWO_SEED = oneByteSeed(0x02);\n\nexport type AccountLookupContext = {\n getAccountIndex: (pubkey: Uint8Array) => number;\n};\n\nexport type InstructionData = (context: AccountLookupContext) => Promise<Uint8Array>;\n\nexport interface SortedAmmMints {\n mintOneBytes: Uint8Array;\n mintTwoBytes: Uint8Array;\n mintOneAddress: string;\n mintTwoAddress: string;\n inputOrder: 'already-sorted' | 'swapped';\n}\n\nexport interface AmmPoolAddresses {\n mintOneAddress: string;\n mintTwoAddress: string;\n mintOneBytes: Uint8Array;\n mintTwoBytes: Uint8Array;\n poolAddress: string;\n poolBytes: Uint8Array;\n poolSeed: Uint8Array;\n lpMintSeed: Uint8Array;\n vaultOneSeed: Uint8Array;\n vaultTwoSeed: Uint8Array;\n swapFeeBps: number;\n inputOrder: 'already-sorted' | 'swapped';\n}\n\nexport interface AmmPoolMetadata {\n isInitialized: boolean;\n lockedLpSupply: bigint;\n swapFeeBps: number;\n swapPoolAuthority: string;\n mintOne: string;\n mintTwo: string;\n vaultOne: string;\n vaultTwo: string;\n lpMint: string;\n}\n\nexport interface AmmQuoteExactIn {\n amountIn: bigint;\n amountInAfterFee: bigint;\n feeAmount: bigint;\n amountOut: bigint;\n}\n\nexport interface InitPoolArgs {\n payerAccountBytes: Uint8Array;\n poolAccountBytes: Uint8Array;\n lpMintAccountBytes: Uint8Array;\n vaultOneAccountBytes: Uint8Array;\n vaultTwoAccountBytes: Uint8Array;\n mintOneAccountBytes: Uint8Array;\n mintTwoAccountBytes: Uint8Array;\n tokenProgramAccountBytes: Uint8Array;\n swapFeeBps: number;\n lpMintSeed: Uint8Array;\n poolStateProof: Uint8Array;\n lpMintStateProof: Uint8Array;\n vaultOneStateProof: Uint8Array;\n vaultTwoStateProof: Uint8Array;\n}\n\nexport interface AddLiquidityArgs {\n poolAccountBytes: Uint8Array;\n depositorAccountBytes: Uint8Array;\n depositorTokenOneAccountBytes: Uint8Array;\n depositorTokenTwoAccountBytes: Uint8Array;\n depositorLpAccountBytes: Uint8Array;\n vaultOneAccountBytes: Uint8Array;\n vaultTwoAccountBytes: Uint8Array;\n lpMintAccountBytes: Uint8Array;\n tokenProgramAccountBytes: Uint8Array;\n maxAmountMintOne: bigint;\n maxAmountMintTwo: bigint;\n}\n\nexport interface WithdrawLiquidityArgs {\n poolAccountBytes: Uint8Array;\n withdrawerAccountBytes: Uint8Array;\n withdrawerTokenOneAccountBytes: Uint8Array;\n withdrawerTokenTwoAccountBytes: Uint8Array;\n withdrawerLpAccountBytes: Uint8Array;\n vaultOneAccountBytes: Uint8Array;\n vaultTwoAccountBytes: Uint8Array;\n lpMintAccountBytes: Uint8Array;\n tokenProgramAccountBytes: Uint8Array;\n lpAmount: bigint;\n}\n\nexport interface SwapArgs {\n poolAccountBytes: Uint8Array;\n userTransferAuthorityBytes: Uint8Array;\n userInputAccountBytes: Uint8Array;\n userOutputAccountBytes: Uint8Array;\n vaultInputAccountBytes: Uint8Array;\n vaultOutputAccountBytes: Uint8Array;\n lpMintAccountBytes: Uint8Array;\n tokenProgramAccountBytes: Uint8Array;\n amountIn: bigint;\n}\n\nexport function sortAmmMints(\n mintA: Uint8Array | string,\n mintB: Uint8Array | string\n): SortedAmmMints {\n const mintABytes = toPubkeyBytes(mintA);\n const mintBBytes = toPubkeyBytes(mintB);\n const comparison = compareBytes(mintABytes, mintBBytes);\n if (comparison === 0) throw new Error('AMM mints must be distinct');\n const alreadySorted = comparison < 0;\n const mintOneBytes = alreadySorted ? mintABytes : mintBBytes;\n const mintTwoBytes = alreadySorted ? mintBBytes : mintABytes;\n return {\n mintOneBytes,\n mintTwoBytes,\n mintOneAddress: encodeAddress(mintOneBytes),\n mintTwoAddress: encodeAddress(mintTwoBytes),\n inputOrder: alreadySorted ? 'already-sorted' : 'swapped',\n };\n}\n\nexport function deriveAmmLpMintSeed(thru: Thru, poolBytes: Uint8Array | string): Uint8Array {\n return thru.helpers.deriveAddress([\n toPubkeyBytes(poolBytes),\n LP_MINT_SEED_LABEL,\n ]).bytes;\n}\n\nexport function deriveAmmPoolAddresses(\n thru: Thru,\n args: {\n ammProgramAddress: string;\n mintAAddress: string;\n mintBAddress: string;\n swapFeeBps?: number;\n }\n): AmmPoolAddresses {\n const swapFeeBps = args.swapFeeBps ?? AMM_DEFAULT_SWAP_FEE_BPS;\n assertU16(swapFeeBps, 'swapFeeBps');\n if (swapFeeBps <= 0 || swapFeeBps > AMM_MAX_SWAP_FEE_BPS) {\n throw new Error(`swapFeeBps must be 1-${AMM_MAX_SWAP_FEE_BPS}`);\n }\n\n const sorted = sortAmmMints(args.mintAAddress, args.mintBAddress);\n const feeBytes = new Uint8Array(2);\n new DataView(feeBytes.buffer).setUint16(0, swapFeeBps, true);\n const poolSeed = thru.helpers.deriveAddress([\n sorted.mintOneBytes,\n sorted.mintTwoBytes,\n feeBytes,\n ]).bytes;\n const pool = thru.helpers.deriveProgramAddress({\n programAddress: args.ammProgramAddress,\n seed: poolSeed,\n ephemeral: false,\n });\n const lpMintSeed = deriveAmmLpMintSeed(thru, pool.bytes);\n\n return {\n ...sorted,\n poolAddress: pool.address,\n poolBytes: pool.bytes,\n poolSeed,\n lpMintSeed,\n vaultOneSeed: AMM_VAULT_ONE_SEED.slice(),\n vaultTwoSeed: AMM_VAULT_TWO_SEED.slice(),\n swapFeeBps,\n };\n}\n\nexport function createInitPoolInstruction(args: InitPoolArgs): InstructionData {\n assertU16(args.swapFeeBps, 'swapFeeBps');\n const lpMintSeed = Pubkey.from(args.lpMintSeed).toBytes();\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n const builder = new AmmInitPoolInstructionBuilder()\n .set_payer_account_idx(accountIndex(context, args.payerAccountBytes))\n .set_pool_account_idx(accountIndex(context, args.poolAccountBytes))\n .set_lp_mint_account_idx(accountIndex(context, args.lpMintAccountBytes))\n .set_vault_one_account_idx(accountIndex(context, args.vaultOneAccountBytes))\n .set_vault_two_account_idx(accountIndex(context, args.vaultTwoAccountBytes))\n .set_mint_one_account_idx(accountIndex(context, args.mintOneAccountBytes))\n .set_mint_two_account_idx(accountIndex(context, args.mintTwoAccountBytes))\n .set_token_program_account_idx(accountIndex(context, args.tokenProgramAccountBytes))\n .set_swap_fee_bps(args.swapFeeBps)\n .set_lp_mint_seed(lpMintSeed);\n builder.pool_proof().write(args.poolStateProof).finish();\n builder.lp_mint_proof().write(args.lpMintStateProof).finish();\n builder.vault_one_proof().write(args.vaultOneStateProof).finish();\n builder.vault_two_proof().write(args.vaultTwoStateProof).finish();\n return buildAmmInstruction('init_pool', builder.build());\n };\n}\n\nexport function createAddLiquidityInstruction(args: AddLiquidityArgs): InstructionData {\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n assertU64(args.maxAmountMintOne, 'maxAmountMintOne');\n assertU64(args.maxAmountMintTwo, 'maxAmountMintTwo');\n const payload = new AmmAddLiquidityInstructionBuilder()\n .set_pool_account_idx(accountIndex(context, args.poolAccountBytes))\n .set_depositor_account_idx(accountIndex(context, args.depositorAccountBytes))\n .set_depositor_token_one_account_idx(accountIndex(context, args.depositorTokenOneAccountBytes))\n .set_depositor_token_two_account_idx(accountIndex(context, args.depositorTokenTwoAccountBytes))\n .set_depositor_lp_account_idx(accountIndex(context, args.depositorLpAccountBytes))\n .set_vault_one_account_idx(accountIndex(context, args.vaultOneAccountBytes))\n .set_vault_two_account_idx(accountIndex(context, args.vaultTwoAccountBytes))\n .set_lp_mint_account_idx(accountIndex(context, args.lpMintAccountBytes))\n .set_token_program_account_idx(accountIndex(context, args.tokenProgramAccountBytes))\n .set_max_amount_mint_one(args.maxAmountMintOne)\n .set_max_amount_mint_two(args.maxAmountMintTwo)\n .build();\n return buildAmmInstruction('add_liquidity', payload);\n };\n}\n\nexport function createWithdrawLiquidityInstruction(args: WithdrawLiquidityArgs): InstructionData {\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n assertU64(args.lpAmount, 'lpAmount');\n const payload = new AmmWithdrawLiquidityInstructionBuilder()\n .set_pool_account_idx(accountIndex(context, args.poolAccountBytes))\n .set_withdrawer_account_idx(accountIndex(context, args.withdrawerAccountBytes))\n .set_withdrawer_token_one_account_idx(accountIndex(context, args.withdrawerTokenOneAccountBytes))\n .set_withdrawer_token_two_account_idx(accountIndex(context, args.withdrawerTokenTwoAccountBytes))\n .set_withdrawer_lp_account_idx(accountIndex(context, args.withdrawerLpAccountBytes))\n .set_vault_one_account_idx(accountIndex(context, args.vaultOneAccountBytes))\n .set_vault_two_account_idx(accountIndex(context, args.vaultTwoAccountBytes))\n .set_lp_mint_account_idx(accountIndex(context, args.lpMintAccountBytes))\n .set_token_program_account_idx(accountIndex(context, args.tokenProgramAccountBytes))\n .set_lp_amount(args.lpAmount)\n .build();\n return buildAmmInstruction('withdraw_liquidity', payload);\n };\n}\n\nexport function createSwapInstruction(args: SwapArgs): InstructionData {\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n assertU64(args.amountIn, 'amountIn');\n const payload = new AmmSwapInstructionBuilder()\n .set_pool_account_idx(accountIndex(context, args.poolAccountBytes))\n .set_user_transfer_authority_idx(accountIndex(context, args.userTransferAuthorityBytes))\n .set_user_input_account_idx(accountIndex(context, args.userInputAccountBytes))\n .set_user_output_account_idx(accountIndex(context, args.userOutputAccountBytes))\n .set_vault_input_account_idx(accountIndex(context, args.vaultInputAccountBytes))\n .set_vault_output_account_idx(accountIndex(context, args.vaultOutputAccountBytes))\n .set_lp_mint_account_idx(accountIndex(context, args.lpMintAccountBytes))\n .set_token_program_account_idx(accountIndex(context, args.tokenProgramAccountBytes))\n .set_amount_in(args.amountIn)\n .build();\n return buildAmmInstruction('swap', payload);\n };\n}\n\nexport function parseAmmPoolMetadata(accountOrData: Account | Uint8Array): AmmPoolMetadata {\n const data = accountOrData instanceof Uint8Array ? accountOrData : accountOrData.data?.data;\n if (!data) throw new Error('AMM pool account data is missing');\n if (data.length < AMM_POOL_METADATA_SIZE) throw new Error('AMM pool account data is malformed');\n\n const metadata = AmmPoolMetadataView.from_array(data);\n if (!metadata) throw new Error('AMM pool account data is malformed');\n return {\n isInitialized: metadata.get_is_initialized() !== 0,\n lockedLpSupply: metadata.get_locked_lp_supply(),\n swapFeeBps: metadata.get_swap_fee_bps(),\n swapPoolAuthority: pubkeyViewToAddress(metadata.get_swap_pool_authority()),\n mintOne: pubkeyViewToAddress(metadata.get_mint_one()),\n mintTwo: pubkeyViewToAddress(metadata.get_mint_two()),\n vaultOne: pubkeyViewToAddress(metadata.get_vault_one()),\n vaultTwo: pubkeyViewToAddress(metadata.get_vault_two()),\n lpMint: pubkeyViewToAddress(metadata.get_lp_mint()),\n };\n}\n\nexport function quoteAmmSwapExactIn(args: {\n amountIn: bigint;\n reserveIn: bigint;\n reserveOut: bigint;\n swapFeeBps: number;\n}): AmmQuoteExactIn {\n if (args.amountIn <= 0n) throw new Error('amountIn must be positive');\n if (args.reserveIn <= 0n || args.reserveOut <= 0n) {\n throw new Error('reserves must be positive');\n }\n assertU16(args.swapFeeBps, 'swapFeeBps');\n const feeAmount = (args.amountIn * BigInt(args.swapFeeBps)) / BigInt(AMM_BPS_DENOMINATOR);\n const amountInAfterFee = args.amountIn - feeAmount;\n if (amountInAfterFee <= 0n) throw new Error('amountIn is fully consumed by fees');\n const amountOut = (amountInAfterFee * args.reserveOut) / (args.reserveIn + amountInAfterFee);\n return {\n amountIn: args.amountIn,\n amountInAfterFee,\n feeAmount,\n amountOut,\n };\n}\n\nfunction toPubkeyBytes(value: Uint8Array | string): Uint8Array {\n return Pubkey.from(value).toBytes();\n}\n\nfunction assertU16(value: number, label: string): void {\n if (!Number.isInteger(value) || value < 0 || value > 0xffff) {\n throw new Error(`${label} must be an integer between 0 and 65535`);\n }\n}\n\nfunction assertU64(value: bigint, label: string): void {\n if (value < 0n || value > 0xffffffffffffffffn) {\n throw new Error(`${label} must be between 0 and 18446744073709551615`);\n }\n}\n\nfunction accountIndex(context: AccountLookupContext, pubkey: Uint8Array): number {\n const index = context.getAccountIndex(pubkey);\n assertU16(index, 'account index');\n return index;\n}\n\nfunction buildAmmInstruction(variant: AmmInstructionVariant, payload: Uint8Array): Uint8Array {\n const builder = new AmmInstructionBuilder();\n builder.payload().select(variant).writePayload(payload).finish();\n return builder.build();\n}\n\nfunction pubkeyViewToAddress(pubkey: unknown): string {\n const buffer = (pubkey as { buffer?: Uint8Array }).buffer;\n if (!buffer) throw new Error('generated Pubkey view did not expose a buffer');\n return encodeAddress(buffer);\n}\n\nfunction asciiBytes(value: string): Uint8Array {\n return new TextEncoder().encode(value);\n}\n\nfunction oneByteSeed(value: number): Uint8Array {\n const seed = new Uint8Array(PUBKEY_LENGTH);\n seed[0] = value;\n return seed;\n}\n"]}