@thru/token-program 0.2.1 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +8 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/derivation.ts +10 -6
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts","../src/abi/thru/common/primitives/types.ts","../src/abi/thru/blockchain/state_proof/types.ts","../src/abi/thru/program/token/types.ts","../src/instructions/shared.ts","../src/instructions/initialize-mint.ts","../src/instructions/initialize-account.ts","../src/instructions/mint-to.ts","../src/instructions/transfer.ts","../src/derivation.ts","../src/accounts.ts","../src/format.ts"],"names":["remainder","low","high","__tnWarnings","__tnHasNativeBigInt","__tnHasBigIntDataView","__tnConsole","__tnLogWarn","__tnWarnOnce","__tnMask32","__tnSignBit32","__tnToBigInt","__tnBigIntToNumber","__tnBigIntEquals","__tnBigIntGreaterThan","__tnRaiseIrError","__tnCheckedAdd","__tnCheckedMul","__tnAlign","__tnSplitUint64","__tnSplitInt64","__tnPolyfillReadUint64","__tnPolyfillReadInt64","__tnPolyfillWriteUint64","__tnPolyfillWriteInt64","__tnFootprintRegistry","__tnValidateRegistry","__tnRegisterFootprint","__tnRegisterValidate","__tnInvokeFootprint","__tnInvokeValidate","__tnEvalFootprint","__tnEvalIrNode","__tnTryEvalIr","__tnNormalizeIrError","__tnIsEvalError","__tnValidateIrTree","StateProof","__tnResolveBuilderInput","__tnCreateVariantSelector","TokenProgramAccount","TokenEvent","TokenInstruction","Pubkey","hexToBytes"],"mappings":"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","file":"index.js","sourcesContent":["export const PUBKEY_LENGTH = 32;\nexport const TICKER_MAX_LENGTH = 8;\nexport const ZERO_PUBKEY = new Uint8Array(PUBKEY_LENGTH);\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\ntype __TnIrContext = {\n params: Record<string, bigint>;\n buffer?: Uint8Array;\n typeName?: string;\n};\n\ntype __TnValidateResult = { ok: boolean; code?: string; consumed?: bigint };\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> = {};\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 __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 __tnEvalFootprint(node: __TnIrNode, ctx: __TnIrContext): bigint {\n return __tnEvalIrNode(node, ctx);\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) };\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(node: __TnIrNode, ctx: __TnIrContext): 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 return __tnCheckedAdd(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"mul\":\n return __tnCheckedMul(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"align\":\n return __tnAlign(__tnEvalIrNode(node.node, ctx), 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);\n }\n }\n if (node.default) return __tnEvalIrNode(node.default, ctx);\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 nestedResult = __tnInvokeValidate(\n node.typeName,\n ctx.buffer,\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 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 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\n__tnRegisterFootprint(\"Hash\", (params) => Hash.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Hash\", (buffer, params) => Hash.__tnInvokeValidate(buffer, params));\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/* ----- 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\n__tnRegisterFootprint(\"Pubkey\", (params) => Pubkey.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Pubkey\", (buffer, params) => Pubkey.__tnInvokeValidate(buffer, params));\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/* ----- 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\n__tnRegisterFootprint(\"Signature\", (params) => Signature.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Signature\", (buffer, params) => Signature.__tnInvokeValidate(buffer, params));\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","/* Auto-generated TypeScript code */\n/* WARNING: Do not modify this file directly. It is generated from ABI definitions. */\n\nimport { Hash, 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\ntype __TnIrContext = {\n params: Record<string, bigint>;\n buffer?: Uint8Array;\n typeName?: string;\n};\n\ntype __TnValidateResult = { ok: boolean; code?: string; consumed?: bigint };\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> = {};\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 __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 __tnEvalFootprint(node: __TnIrNode, ctx: __TnIrContext): bigint {\n return __tnEvalIrNode(node, ctx);\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) };\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(node: __TnIrNode, ctx: __TnIrContext): 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 return __tnCheckedAdd(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"mul\":\n return __tnCheckedMul(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"align\":\n return __tnAlign(__tnEvalIrNode(node.node, ctx), 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);\n }\n }\n if (node.default) return __tnEvalIrNode(node.default, ctx);\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 nestedResult = __tnInvokeValidate(\n node.typeName,\n ctx.buffer,\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 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 StateProofHeader ----- */\n\nconst __tn_ir_StateProofHeader = {\n typeName: \"StateProofHeader\",\n root: { op: \"const\", value: 40n }\n} as const;\n\nexport class StateProofHeader {\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> }): StateProofHeader {\n if (!buffer || buffer.length === undefined) throw new Error(\"StateProofHeader.__tnCreateView requires a Uint8Array\");\n return new StateProofHeader(new Uint8Array(buffer));\n }\n\n static builder(): StateProofHeaderBuilder {\n return new StateProofHeaderBuilder();\n }\n\n static fromBuilder(builder: StateProofHeaderBuilder): StateProofHeader | null {\n const buffer = builder.build();\n return StateProofHeader.from_array(buffer);\n }\n\n get_type_slot(): bigint {\n const offset = 0;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_type_slot(value: bigint): void {\n const offset = 0;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get type_slot(): bigint {\n return this.get_type_slot();\n }\n\n set type_slot(value: bigint) {\n this.set_type_slot(value);\n }\n\n get_path_bitset(): Hash {\n const offset = 8;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Hash.from_array(slice)!;\n }\n\n set_path_bitset(value: Hash): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 8;\n this.buffer.set(sourceBytes, offset);\n }\n\n get path_bitset(): Hash {\n return this.get_path_bitset();\n }\n\n set path_bitset(value: Hash) {\n this.set_path_bitset(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_StateProofHeader.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_StateProofHeader, 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 StateProofHeader');\n }\n return __tnBigIntToNumber(irResult, 'StateProofHeader::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 40) return { ok: false, code: \"tn.buffer_too_small\", consumed: 40 };\n return { ok: true, consumed: 40 };\n }\n\n static from_array(buffer: Uint8Array): StateProofHeader | 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 StateProofHeader(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"StateProofHeader\", (params) => StateProofHeader.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"StateProofHeader\", (buffer, params) => StateProofHeader.__tnInvokeValidate(buffer, params));\n\nexport class StateProofHeaderBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(40);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_type_slot(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(0, cast, true);\n return this;\n }\n\n set_path_bitset(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"path_bitset expects 32 bytes\");\n this.buffer.set(value, 8);\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(): StateProofHeader {\n const view = StateProofHeader.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build StateProofHeader\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR StateProof ----- */\n\nconst __tn_ir_StateProof = {\n typeName: \"StateProof\",\n root: { op: \"align\", alignment: 1, node: { op: \"add\", left: { op: \"align\", alignment: 1, node: { op: \"const\", value: 40n } }, right: { op: \"align\", alignment: 1, node: { op: \"field\", param: \"proof_body.payload_size\" } } } }\n} as const;\n\nexport class StateProof_proof_body_existing_Inner {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n\n private constructor(private buffer: Uint8Array, 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 __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): StateProof_proof_body_existing_Inner {\n if (!buffer || buffer.length === undefined) throw new Error(\"StateProof_proof_body_existing_Inner.__tnCreateView requires a Uint8Array\");\n return new StateProof_proof_body_existing_Inner(new Uint8Array(buffer), opts?.fieldContext);\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, \"StateProof_proof_body_existing_Inner::__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, \"StateProof_proof_body_existing_Inner::__tnResolveFieldRef\") : contextValue;\n }\n throw new Error(\"StateProof_proof_body_existing_Inner: field reference '\" + path + \"' is not available; provide fieldContext when creating this view\");\n }\n\n get_sibling_hashes_length(): number {\n return ((__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.0\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.1\"))) + (__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.2\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.3\"))));\n }\n\n get_sibling_hashes_at(index: number): Hash {\n const offset = 0;\n const slice = this.buffer.subarray((offset + index * 32), (offset + (index + 1) * 32));\n return Hash.from_array(slice)!;\n }\n\n get_sibling_hashes(): Hash[] {\n const len = this.get_sibling_hashes_length();\n const result: Hash[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_sibling_hashes_at(i));\n }\n return result;\n }\n\n set_sibling_hashes_at(index: number, value: Hash): void {\n const offset = 0;\n const slice = this.buffer.subarray(offset + index * 32, offset + (index + 1) * 32);\n slice.set(value['buffer']);\n }\n\n set_sibling_hashes(value: Hash[]): void {\n const len = Math.min(this.get_sibling_hashes_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_sibling_hashes_at(i, value[i]);\n }\n }\n\n get sibling_hashes(): Hash[] {\n return this.get_sibling_hashes();\n }\n\n set sibling_hashes(value: Hash[]) {\n this.set_sibling_hashes(value);\n }\n\n}\n\nexport class StateProof_proof_body_updating_Inner {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n\n private constructor(private buffer: Uint8Array, 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 __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): StateProof_proof_body_updating_Inner {\n if (!buffer || buffer.length === undefined) throw new Error(\"StateProof_proof_body_updating_Inner.__tnCreateView requires a Uint8Array\");\n return new StateProof_proof_body_updating_Inner(new Uint8Array(buffer), opts?.fieldContext);\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, \"StateProof_proof_body_updating_Inner::__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, \"StateProof_proof_body_updating_Inner::__tnResolveFieldRef\") : contextValue;\n }\n throw new Error(\"StateProof_proof_body_updating_Inner: field reference '\" + path + \"' is not available; provide fieldContext when creating this view\");\n }\n\n get_existing_leaf_hash(): Hash {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Hash.from_array(slice)!;\n }\n\n set_existing_leaf_hash(value: Hash): 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 existing_leaf_hash(): Hash {\n return this.get_existing_leaf_hash();\n }\n\n set existing_leaf_hash(value: Hash) {\n this.set_existing_leaf_hash(value);\n }\n\n get_sibling_hashes_length(): number {\n return ((__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.0\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.1\"))) + (__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.2\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.3\"))));\n }\n\n get_sibling_hashes_at(index: number): Hash {\n const offset = 32;\n const slice = this.buffer.subarray((offset + index * 32), (offset + (index + 1) * 32));\n return Hash.from_array(slice)!;\n }\n\n get_sibling_hashes(): Hash[] {\n const len = this.get_sibling_hashes_length();\n const result: Hash[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_sibling_hashes_at(i));\n }\n return result;\n }\n\n set_sibling_hashes_at(index: number, value: Hash): void {\n const offset = 32;\n const slice = this.buffer.subarray(offset + index * 32, offset + (index + 1) * 32);\n slice.set(value['buffer']);\n }\n\n set_sibling_hashes(value: Hash[]): void {\n const len = Math.min(this.get_sibling_hashes_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_sibling_hashes_at(i, value[i]);\n }\n }\n\n get sibling_hashes(): Hash[] {\n return this.get_sibling_hashes();\n }\n\n set sibling_hashes(value: Hash[]) {\n this.set_sibling_hashes(value);\n }\n\n}\n\nexport class StateProof_proof_body_creation_Inner {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n\n private constructor(private buffer: Uint8Array, 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 __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): StateProof_proof_body_creation_Inner {\n if (!buffer || buffer.length === undefined) throw new Error(\"StateProof_proof_body_creation_Inner.__tnCreateView requires a Uint8Array\");\n return new StateProof_proof_body_creation_Inner(new Uint8Array(buffer), opts?.fieldContext);\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, \"StateProof_proof_body_creation_Inner::__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, \"StateProof_proof_body_creation_Inner::__tnResolveFieldRef\") : contextValue;\n }\n throw new Error(\"StateProof_proof_body_creation_Inner: field reference '\" + path + \"' is not available; provide fieldContext when creating this view\");\n }\n\n get_existing_leaf_pubkey(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_existing_leaf_pubkey(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 existing_leaf_pubkey(): Pubkey {\n return this.get_existing_leaf_pubkey();\n }\n\n set existing_leaf_pubkey(value: Pubkey) {\n this.set_existing_leaf_pubkey(value);\n }\n\n get_existing_leaf_hash(): Hash {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Hash.from_array(slice)!;\n }\n\n set_existing_leaf_hash(value: Hash): 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 existing_leaf_hash(): Hash {\n return this.get_existing_leaf_hash();\n }\n\n set existing_leaf_hash(value: Hash) {\n this.set_existing_leaf_hash(value);\n }\n\n get_sibling_hashes_length(): number {\n return ((__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.0\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.1\"))) + (__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.2\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.3\"))));\n }\n\n get_sibling_hashes_at(index: number): Hash {\n const offset = 64;\n const slice = this.buffer.subarray((offset + index * 32), (offset + (index + 1) * 32));\n return Hash.from_array(slice)!;\n }\n\n get_sibling_hashes(): Hash[] {\n const len = this.get_sibling_hashes_length();\n const result: Hash[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_sibling_hashes_at(i));\n }\n return result;\n }\n\n set_sibling_hashes_at(index: number, value: Hash): void {\n const offset = 64;\n const slice = this.buffer.subarray(offset + index * 32, offset + (index + 1) * 32);\n slice.set(value['buffer']);\n }\n\n set_sibling_hashes(value: Hash[]): void {\n const len = Math.min(this.get_sibling_hashes_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_sibling_hashes_at(i, value[i]);\n }\n }\n\n get sibling_hashes(): Hash[] {\n return this.get_sibling_hashes();\n }\n\n set sibling_hashes(value: Hash[]) {\n this.set_sibling_hashes(value);\n }\n\n}\n\nexport class StateProof_proof_body_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>): StateProof_proof_body_Inner {\n return new StateProof_proof_body_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 asExisting(): StateProof_proof_body_existing_Inner | null {\n if (!this.descriptor || this.descriptor.tag !== 0) return null;\n return StateProof_proof_body_existing_Inner.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asUpdating(): StateProof_proof_body_updating_Inner | null {\n if (!this.descriptor || this.descriptor.tag !== 1) return null;\n return StateProof_proof_body_updating_Inner.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asCreation(): StateProof_proof_body_creation_Inner | null {\n if (!this.descriptor || this.descriptor.tag !== 2) return null;\n return StateProof_proof_body_creation_Inner.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n}\n\nexport class StateProof {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n private static readonly __tnFieldOffset_proof_body = 40;\n private __tnParams: StateProof.Params;\n private __tnDerivedParams: Record<string, bigint> | null = null;\n\n private constructor(private buffer: Uint8Array, params?: StateProof.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 = StateProof.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"StateProof: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n this.__tnDerivedParams = derived.derived;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: StateProof.Params, fieldContext?: Record<string, number | bigint> }): StateProof {\n if (!buffer || buffer.length === undefined) throw new Error(\"StateProof.__tnCreateView requires a Uint8Array\");\n let params = opts?.params ?? null;\n let derivedRecord: Record<string, bigint> | null = null;\n if (!params) {\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const derived = StateProof.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"StateProof.__tnCreateView: failed to derive params\");\n params = derived.params;\n derivedRecord = derived.derived;\n }\n const instance = new StateProof(new Uint8Array(buffer), params, opts?.fieldContext);\n if (derivedRecord) instance.__tnDerivedParams = derivedRecord;\n return instance;\n }\n\n dynamicParams(): StateProof.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, \"StateProof::__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, \"StateProof::__tnResolveFieldRef\") : contextValue;\n }\n throw new Error(\"StateProof: field reference '\" + path + \"' is not available; provide fieldContext when creating this view\");\n }\n\n static builder(): StateProofBuilder {\n return new StateProofBuilder();\n }\n\n static fromBuilder(builder: StateProofBuilder): StateProof | null {\n const buffer = builder.build();\n const params = builder.dynamicParams();\n return StateProof.from_array(buffer, { params });\n }\n\n static readonly proof_bodyVariantDescriptors = Object.freeze([\n {\n name: \"existing\",\n tag: 0,\n payloadSize: null,\n payloadType: \"StateProof::proof_body::existing\",\n createPayloadBuilder: () => null,\n },\n {\n name: \"updating\",\n tag: 1,\n payloadSize: null,\n payloadType: \"StateProof::proof_body::updating\",\n createPayloadBuilder: () => null,\n },\n {\n name: \"creation\",\n tag: 2,\n payloadSize: null,\n payloadType: \"StateProof::proof_body::creation\",\n createPayloadBuilder: () => null,\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 derived: Record<string, bigint> = Object.create(null);\n const __tnLength = buffer.length;\n let __tnParamSeq_proof_body_payload_size: bigint | null = null;\n let __tnCursorMutable = 0;\n if (__tnLength < 8) return null;\n const __tnRef_hdr_type_slot = view.getBigUint64(0, true);\n if (__tnCursorMutable + 40 > __tnLength) return null;\n __tnCursorMutable += 40;\n const __tnEnumTagValue_proof_body = Math.trunc(Number(((__tnRef_hdr_type_slot >> 62n) & 3n)));\n if (!Number.isFinite(__tnEnumTagValue_proof_body)) return null;\n let __tnEnumSize_proof_body = 0;\n switch (Number(__tnEnumTagValue_proof_body)) {\n case 0: break;\n case 1: break;\n case 2: break;\n default: return null;\n }\n if (__tnCursorMutable > __tnLength) return null;\n __tnEnumSize_proof_body = __tnLength - __tnCursorMutable;\n __tnCursorMutable = __tnLength;\n derived[\"StateProof__proof_body_computed_tag\"] = __tnToBigInt(__tnEnumTagValue_proof_body);\n __tnParamSeq_proof_body_payload_size = __tnToBigInt(__tnEnumSize_proof_body);\n const params: Record<string, bigint> = Object.create(null);\n if (__tnParamSeq_proof_body_payload_size === null) return null;\n params[\"proof_body_payload_size\"] = __tnParamSeq_proof_body_payload_size as bigint;\n return { params, offsets: null, derived: derived };\n }\n\n private static __tnExtractParams(view: DataView, buffer: Uint8Array): { params: StateProof.Params; derived: Record<string, bigint> | null } | null {\n if (buffer.length < 8) {\n return null;\n }\n const __tnParam_proof_body_hdr_type_slot = __tnToBigInt(view.getBigUint64(0, true));\n const __tnLayout = StateProof.__tnComputeSequentialLayout(view, buffer);\n if (!__tnLayout || !__tnLayout.params) return null;\n const __tnSeqParams = __tnLayout.params;\n const __tnParamSeq_proof_body_payload_size = __tnSeqParams[\"proof_body_payload_size\"];\n if (__tnParamSeq_proof_body_payload_size === undefined) return null;\n const __tnExtractedParams = StateProof.Params.fromValues({\n proof_body_hdr_type_slot: __tnParam_proof_body_hdr_type_slot,\n proof_body_payload_size: __tnParamSeq_proof_body_payload_size as bigint,\n });\n return { params: __tnExtractedParams, derived: (__tnLayout && __tnLayout.derived ? __tnLayout.derived : null) };\n }\n\n private __tnEnsureDerivedParams(): Record<string, bigint> | null {\n if (this.__tnDerivedParams) return this.__tnDerivedParams;\n const layout = StateProof.__tnComputeSequentialLayout(this.view, this.buffer);\n if (!layout || !layout.derived) return null;\n this.__tnDerivedParams = layout.derived;\n return this.__tnDerivedParams;\n }\n\n private __tnReadDerivedParam(key: string): number | null {\n const params = this.__tnEnsureDerivedParams();\n if (!params) return null;\n const value = params[key];\n if (value === undefined) return null;\n return __tnBigIntToNumber(value, \"StateProof::__tnReadDerivedParam\");\n }\n\n get_hdr(): StateProofHeader {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 40);\n return StateProofHeader.from_array(slice)!;\n }\n\n set_hdr(value: StateProofHeader): 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 hdr(): StateProofHeader {\n return this.get_hdr();\n }\n\n set hdr(value: StateProofHeader) {\n this.set_hdr(value);\n }\n\n get_proof_body_computed_tag(): number {\n let tag = this.__tnReadDerivedParam(\"StateProof__proof_body_computed_tag\");\n if (tag === null) {\n tag = (((this.__tnResolveFieldRef(\"hdr.type_slot\") >> 62) & 3));\n }\n return tag;\n }\n\n proofBodyVariant(): typeof StateProof.proof_bodyVariantDescriptors[number] | null {\n const tag = this.get_proof_body_computed_tag();\n return StateProof.proof_bodyVariantDescriptors.find((variant) => variant.tag === tag) ?? null;\n }\n\n proof_body(): StateProof_proof_body_Inner {\n const descriptor = this.proofBodyVariant();\n if (!descriptor) throw new Error(\"StateProof: unknown proof_body variant\");\n const offset = StateProof.__tnFieldOffset_proof_body;\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(\"StateProof: payload exceeds buffer bounds\");\n const slice = this.buffer.subarray(offset, offset + payloadLength);\n const __tnAutoContext: Record<string, number | bigint> = {\n \"hdr.path_bitset.bytes.0\": this.view.getUint8(8),\n \"hdr.path_bitset.bytes.1\": this.view.getUint8(9),\n \"hdr.path_bitset.bytes.2\": this.view.getUint8(10),\n \"hdr.path_bitset.bytes.3\": this.view.getUint8(11),\n };\n const __tnMergedContext = this.__tnFieldContext ? { ...__tnAutoContext, ...this.__tnFieldContext } : __tnAutoContext;\n return StateProof_proof_body_Inner.__tnCreate(slice, descriptor, __tnMergedContext);\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_StateProof.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_StateProof, 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(proof_body_hdr_type_slot: number | bigint, proof_body_payload_size: number | bigint): bigint {\n const params = StateProof.Params.fromValues({\n proof_body_hdr_type_slot: proof_body_hdr_type_slot,\n proof_body_payload_size: proof_body_payload_size,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: StateProof.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"proof_body.hdr.type_slot\"] = params.proof_body_hdr_type_slot;\n record[\"proof_body.payload_size\"] = params.proof_body_payload_size;\n return record;\n }\n\n static footprintIrFromParams(params: StateProof.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: StateProof.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 StateProof');\n return __tnBigIntToNumber(irResult, 'StateProof::footprintFromParams');\n }\n\n static footprintFromValues(input: { proof_body_hdr_type_slot: number | bigint, proof_body_payload_size: number | bigint }): number {\n const params = StateProof.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: StateProof.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: StateProof.Params }): { ok: boolean; code?: string; consumed?: number; params?: StateProof.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, 'StateProof::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'StateProof::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: StateProof.Params }): StateProof | 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 let derivedRecord: Record<string, bigint> | null = null;\n if (!params) {\n const derived = this.__tnExtractParams(view, buffer);\n if (!derived) return null;\n params = derived.params;\n derivedRecord = derived.derived;\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 StateProof(buffer, cached);\n if (derivedRecord) state.__tnDerivedParams = derivedRecord;\n return state;\n }\n\n\n}\n\nexport namespace StateProof {\n export type Params = {\n /** ABI path: proof_body.hdr.type_slot */\n readonly proof_body_hdr_type_slot: bigint;\n /** ABI path: proof_body.payload_size */\n readonly proof_body_payload_size: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n proof_body_hdr_type_slot: \"proof_body.hdr.type_slot\",\n proof_body_payload_size: \"proof_body.payload_size\",\n } as const);\n\n export const Params = {\n fromValues(input: { proof_body_hdr_type_slot: number | bigint, proof_body_payload_size: number | bigint }): Params {\n return {\n proof_body_hdr_type_slot: __tnToBigInt(input.proof_body_hdr_type_slot),\n proof_body_payload_size: __tnToBigInt(input.proof_body_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: { proof_body_hdr_type_slot: number | bigint, proof_body_payload_size: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\n__tnRegisterFootprint(\"StateProof\", (params) => StateProof.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"StateProof\", (buffer, params) => StateProof.__tnInvokeValidate(buffer, params));\n\nexport class StateProofBuilder {\n private __tnPrefixBuffer: Uint8Array;\n private __tnPrefixView: DataView;\n private __tnPayload_proof_body: { descriptor: typeof StateProof.proof_bodyVariantDescriptors[number]; bytes: Uint8Array } | null = null;\n private __tnCachedParams: StateProof.Params | null = null;\n private __tnLastBuffer: Uint8Array | null = null;\n private __tnLastParams: StateProof.Params | null = null;\n private __tnVariantSelector_proof_body?: __TnVariantSelectorResult<StateProofBuilder>;\n\n constructor() {\n this.__tnPrefixBuffer = new Uint8Array(40);\n this.__tnPrefixView = new DataView(this.__tnPrefixBuffer.buffer, this.__tnPrefixBuffer.byteOffset, this.__tnPrefixBuffer.byteLength);\n }\n\n set_hdr(value: Uint8Array): this {\n if (value.length !== 40) throw new Error(\"hdr expects 40 bytes\");\n this.__tnPrefixBuffer.set(value, 0);\n this.__tnInvalidate();\n return this;\n }\n\n private __tnInvalidate(): void {\n this.__tnCachedParams = null;\n this.__tnLastBuffer = null;\n this.__tnLastParams = null;\n }\n\n proof_body(): __TnVariantSelectorResult<StateProofBuilder> {\n if (!this.__tnVariantSelector_proof_body) {\n this.__tnVariantSelector_proof_body = __tnCreateVariantSelector(this, StateProof.proof_bodyVariantDescriptors, (descriptor, payload) => {\n this.__tnPayload_proof_body = { descriptor, bytes: new Uint8Array(payload) };\n this.__tnInvalidate();\n });\n }\n return this.__tnVariantSelector_proof_body!;\n }\n\n build(): Uint8Array {\n const params = this.__tnComputeParams();\n if (!this.__tnPayload_proof_body) throw new Error(\"StateProofBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_proof_body.bytes.length;\n const requiredSize = 40 + payloadLength;\n const footprintSize = StateProof.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.__tnPayload_proof_body) throw new Error(\"StateProofBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_proof_body.bytes.length;\n const requiredSize = 40 + payloadLength;\n const footprintSize = StateProof.footprintFromParams(params);\n const size = Math.max(requiredSize, footprintSize);\n if (target.length - offset < size) throw new Error(\"StateProofBuilder: 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(): StateProof {\n const buffer = this.build();\n const params = this.__tnLastParams ?? this.__tnComputeParams();\n const view = StateProof.from_array(buffer, { params });\n if (!view) throw new Error(\"StateProofBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): StateProof {\n return this.finish();\n }\n\n dynamicParams(): StateProof.Params {\n return this.__tnComputeParams();\n }\n\n private __tnComputeParams(): StateProof.Params {\n if (this.__tnCachedParams) return this.__tnCachedParams;\n const params = StateProof.Params.fromValues({\n proof_body_hdr_type_slot: (() => { const slice = this.__tnPrefixBuffer.subarray(0, 40); const header = StateProofHeader.from_array(slice); if (!header) throw new Error(\"StateProofBuilder: field 'hdr' must be set before build\"); return __tnToBigInt(header.get_type_slot()); })(),\n proof_body_payload_size: (() => { if (!this.__tnPayload_proof_body) throw new Error(\"StateProofBuilder: payload 'proof_body' must be selected before build\"); return __tnToBigInt(this.__tnPayload_proof_body.bytes.length); })(),\n });\n this.__tnCachedParams = params;\n return params;\n }\n\n private __tnWriteInto(target: Uint8Array): void {\n if (!this.__tnPayload_proof_body) throw new Error(\"StateProofBuilder: payload variant not selected\");\n const view = new DataView(target.buffer, target.byteOffset, target.byteLength);\n target.set(this.__tnPrefixBuffer, 0);\n target.set(this.__tnPayload_proof_body.bytes, 40);\n const __tnLayout = StateProof.__tnComputeSequentialLayout(view, target);\n if (!__tnLayout || !__tnLayout.derived) throw new Error(\"StateProofBuilder: failed to derive enum tag\");\n const __tnDerivedTagValue = __tnLayout.derived[\"StateProof__proof_body_computed_tag\"];\n if (__tnDerivedTagValue === undefined) throw new Error(\"StateProofBuilder: computed enum tag missing\");\n const __tnDerivedTag = __tnBigIntToNumber(__tnDerivedTagValue, \"StateProofBuilder::__tnWriteInto\");\n const __tnExpectedTag = this.__tnPayload_proof_body!.descriptor.tag;\n if (__tnDerivedTag !== __tnExpectedTag) throw new Error(\"StateProofBuilder: computed enum tag does not match selected variant\");\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array, params: StateProof.Params): void {\n const result = StateProof.validate(buffer, { params });\n if (!result.ok) {\n throw new Error(`${ StateProof }Builder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n this.__tnLastParams = result.params ?? params;\n this.__tnLastBuffer = buffer;\n }\n}\n\n","/* Auto-generated TypeScript code */\n/* WARNING: Do not modify this file directly. It is generated from ABI definitions. */\n\nimport { StateProof } from \"../../blockchain/state_proof/types\";\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\ntype __TnIrContext = {\n params: Record<string, bigint>;\n buffer?: Uint8Array;\n typeName?: string;\n};\n\ntype __TnValidateResult = { ok: boolean; code?: string; consumed?: bigint };\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> = {};\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 __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 __tnEvalFootprint(node: __TnIrNode, ctx: __TnIrContext): bigint {\n return __tnEvalIrNode(node, ctx);\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) };\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(node: __TnIrNode, ctx: __TnIrContext): 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 return __tnCheckedAdd(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"mul\":\n return __tnCheckedMul(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"align\":\n return __tnAlign(__tnEvalIrNode(node.node, ctx), 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);\n }\n }\n if (node.default) return __tnEvalIrNode(node.default, ctx);\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 nestedResult = __tnInvokeValidate(\n node.typeName,\n ctx.buffer,\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 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 BurnInstruction ----- */\n\nconst __tn_ir_BurnInstruction = {\n typeName: \"BurnInstruction\",\n root: { op: \"const\", value: 14n }\n} as const;\n\nexport class BurnInstruction {\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> }): BurnInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"BurnInstruction.__tnCreateView requires a Uint8Array\");\n return new BurnInstruction(new Uint8Array(buffer));\n }\n\n static builder(): BurnInstructionBuilder {\n return new BurnInstructionBuilder();\n }\n\n static fromBuilder(builder: BurnInstructionBuilder): BurnInstruction | null {\n const buffer = builder.build();\n return BurnInstruction.from_array(buffer);\n }\n\n get_token_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_account_index(): number {\n return this.get_token_account_index();\n }\n\n set token_account_index(value: number) {\n this.set_token_account_index(value);\n }\n\n get_mint_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_authority_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_authority_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get authority_account_index(): number {\n return this.get_authority_account_index();\n }\n\n set authority_account_index(value: number) {\n this.set_authority_account_index(value);\n }\n\n get_amount(): bigint {\n const offset = 6;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 6;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_BurnInstruction.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_BurnInstruction, 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 BurnInstruction');\n }\n return __tnBigIntToNumber(irResult, 'BurnInstruction::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 14) return { ok: false, code: \"tn.buffer_too_small\", consumed: 14 };\n return { ok: true, consumed: 14 };\n }\n\n static new(token_account_index: number, mint_account_index: number, authority_account_index: number, amount: bigint): BurnInstruction {\n const buffer = new Uint8Array(14);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, token_account_index, true); /* token_account_index (little-endian) */\n view.setUint16(2, mint_account_index, true); /* mint_account_index (little-endian) */\n view.setUint16(4, authority_account_index, true); /* authority_account_index (little-endian) */\n view.setBigUint64(6, amount, true); /* amount (little-endian) */\n\n return new BurnInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): BurnInstruction | 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 BurnInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"BurnInstruction\", (params) => BurnInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"BurnInstruction\", (buffer, params) => BurnInstruction.__tnInvokeValidate(buffer, params));\n\nexport class BurnInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(14);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_token_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_authority_account_index(value: number): this {\n this.view.setUint16(4, value, true);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(6, 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(): BurnInstruction {\n const view = BurnInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build BurnInstruction\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR CloseAccountInstruction ----- */\n\nconst __tn_ir_CloseAccountInstruction = {\n typeName: \"CloseAccountInstruction\",\n root: { op: \"const\", value: 6n }\n} as const;\n\nexport class CloseAccountInstruction {\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> }): CloseAccountInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"CloseAccountInstruction.__tnCreateView requires a Uint8Array\");\n return new CloseAccountInstruction(new Uint8Array(buffer));\n }\n\n static builder(): CloseAccountInstructionBuilder {\n return new CloseAccountInstructionBuilder();\n }\n\n static fromBuilder(builder: CloseAccountInstructionBuilder): CloseAccountInstruction | null {\n const buffer = builder.build();\n return CloseAccountInstruction.from_array(buffer);\n }\n\n get_token_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_account_index(): number {\n return this.get_token_account_index();\n }\n\n set token_account_index(value: number) {\n this.set_token_account_index(value);\n }\n\n get_dest_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_dest_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get dest_account_index(): number {\n return this.get_dest_account_index();\n }\n\n set dest_account_index(value: number) {\n this.set_dest_account_index(value);\n }\n\n get_authority_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_authority_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get authority_account_index(): number {\n return this.get_authority_account_index();\n }\n\n set authority_account_index(value: number) {\n this.set_authority_account_index(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_CloseAccountInstruction.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_CloseAccountInstruction, 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 CloseAccountInstruction');\n }\n return __tnBigIntToNumber(irResult, 'CloseAccountInstruction::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(token_account_index: number, dest_account_index: number, authority_account_index: number): CloseAccountInstruction {\n const buffer = new Uint8Array(6);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, token_account_index, true); /* token_account_index (little-endian) */\n view.setUint16(2, dest_account_index, true); /* dest_account_index (little-endian) */\n view.setUint16(4, authority_account_index, true); /* authority_account_index (little-endian) */\n\n return new CloseAccountInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): CloseAccountInstruction | 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 CloseAccountInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"CloseAccountInstruction\", (params) => CloseAccountInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"CloseAccountInstruction\", (buffer, params) => CloseAccountInstruction.__tnInvokeValidate(buffer, params));\n\nexport class CloseAccountInstructionBuilder {\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_token_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_dest_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_authority_account_index(value: number): this {\n this.view.setUint16(4, 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(): CloseAccountInstruction {\n const view = CloseAccountInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build CloseAccountInstruction\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR FreezeAccountInstruction ----- */\n\nconst __tn_ir_FreezeAccountInstruction = {\n typeName: \"FreezeAccountInstruction\",\n root: { op: \"const\", value: 6n }\n} as const;\n\nexport class FreezeAccountInstruction {\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> }): FreezeAccountInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"FreezeAccountInstruction.__tnCreateView requires a Uint8Array\");\n return new FreezeAccountInstruction(new Uint8Array(buffer));\n }\n\n static builder(): FreezeAccountInstructionBuilder {\n return new FreezeAccountInstructionBuilder();\n }\n\n static fromBuilder(builder: FreezeAccountInstructionBuilder): FreezeAccountInstruction | null {\n const buffer = builder.build();\n return FreezeAccountInstruction.from_array(buffer);\n }\n\n get_token_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_account_index(): number {\n return this.get_token_account_index();\n }\n\n set token_account_index(value: number) {\n this.set_token_account_index(value);\n }\n\n get_mint_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_authority_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_authority_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get authority_account_index(): number {\n return this.get_authority_account_index();\n }\n\n set authority_account_index(value: number) {\n this.set_authority_account_index(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_FreezeAccountInstruction.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_FreezeAccountInstruction, 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 FreezeAccountInstruction');\n }\n return __tnBigIntToNumber(irResult, 'FreezeAccountInstruction::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(token_account_index: number, mint_account_index: number, authority_account_index: number): FreezeAccountInstruction {\n const buffer = new Uint8Array(6);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, token_account_index, true); /* token_account_index (little-endian) */\n view.setUint16(2, mint_account_index, true); /* mint_account_index (little-endian) */\n view.setUint16(4, authority_account_index, true); /* authority_account_index (little-endian) */\n\n return new FreezeAccountInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): FreezeAccountInstruction | 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 FreezeAccountInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"FreezeAccountInstruction\", (params) => FreezeAccountInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"FreezeAccountInstruction\", (buffer, params) => FreezeAccountInstruction.__tnInvokeValidate(buffer, params));\n\nexport class FreezeAccountInstructionBuilder {\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_token_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_authority_account_index(value: number): this {\n this.view.setUint16(4, 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(): FreezeAccountInstruction {\n const view = FreezeAccountInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build FreezeAccountInstruction\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR MintToInstruction ----- */\n\nconst __tn_ir_MintToInstruction = {\n typeName: \"MintToInstruction\",\n root: { op: \"const\", value: 14n }\n} as const;\n\nexport class MintToInstruction {\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> }): MintToInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"MintToInstruction.__tnCreateView requires a Uint8Array\");\n return new MintToInstruction(new Uint8Array(buffer));\n }\n\n static builder(): MintToInstructionBuilder {\n return new MintToInstructionBuilder();\n }\n\n static fromBuilder(builder: MintToInstructionBuilder): MintToInstruction | null {\n const buffer = builder.build();\n return MintToInstruction.from_array(buffer);\n }\n\n get_mint_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_dest_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_dest_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get dest_account_index(): number {\n return this.get_dest_account_index();\n }\n\n set dest_account_index(value: number) {\n this.set_dest_account_index(value);\n }\n\n get_authority_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_authority_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get authority_account_index(): number {\n return this.get_authority_account_index();\n }\n\n set authority_account_index(value: number) {\n this.set_authority_account_index(value);\n }\n\n get_amount(): bigint {\n const offset = 6;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 6;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_MintToInstruction.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_MintToInstruction, 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 MintToInstruction');\n }\n return __tnBigIntToNumber(irResult, 'MintToInstruction::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 14) return { ok: false, code: \"tn.buffer_too_small\", consumed: 14 };\n return { ok: true, consumed: 14 };\n }\n\n static new(mint_account_index: number, dest_account_index: number, authority_account_index: number, amount: bigint): MintToInstruction {\n const buffer = new Uint8Array(14);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, mint_account_index, true); /* mint_account_index (little-endian) */\n view.setUint16(2, dest_account_index, true); /* dest_account_index (little-endian) */\n view.setUint16(4, authority_account_index, true); /* authority_account_index (little-endian) */\n view.setBigUint64(6, amount, true); /* amount (little-endian) */\n\n return new MintToInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): MintToInstruction | 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 MintToInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"MintToInstruction\", (params) => MintToInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"MintToInstruction\", (buffer, params) => MintToInstruction.__tnInvokeValidate(buffer, params));\n\nexport class MintToInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(14);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_dest_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_authority_account_index(value: number): this {\n this.view.setUint16(4, value, true);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(6, 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(): MintToInstruction {\n const view = MintToInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build MintToInstruction\");\n return view;\n }\n}\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\n/* ----- TYPE DEFINITION FOR ThawAccountEventData ----- */\n\nconst __tn_ir_ThawAccountEventData = {\n typeName: \"ThawAccountEventData\",\n root: { op: \"const\", value: 96n }\n} as const;\n\nexport class ThawAccountEventData {\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> }): ThawAccountEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"ThawAccountEventData.__tnCreateView requires a Uint8Array\");\n return new ThawAccountEventData(new Uint8Array(buffer));\n }\n\n static builder(): ThawAccountEventDataBuilder {\n return new ThawAccountEventDataBuilder();\n }\n\n static fromBuilder(builder: ThawAccountEventDataBuilder): ThawAccountEventData | null {\n const buffer = builder.build();\n return ThawAccountEventData.from_array(buffer);\n }\n\n get_account(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_account(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 account(): Pubkey {\n return this.get_account();\n }\n\n set account(value: Pubkey) {\n this.set_account(value);\n }\n\n get_mint(): 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(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(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get authority(): Pubkey {\n return this.get_authority();\n }\n\n set authority(value: Pubkey) {\n this.set_authority(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_ThawAccountEventData.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_ThawAccountEventData, 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 ThawAccountEventData');\n }\n return __tnBigIntToNumber(irResult, 'ThawAccountEventData::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): ThawAccountEventData | 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 ThawAccountEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"ThawAccountEventData\", (params) => ThawAccountEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"ThawAccountEventData\", (buffer, params) => ThawAccountEventData.__tnInvokeValidate(buffer, params));\n\nexport class ThawAccountEventDataBuilder {\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_account(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"account expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"authority expects 32 bytes\");\n this.buffer.set(value, 64);\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(): ThawAccountEventData {\n const view = ThawAccountEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build ThawAccountEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR ThawAccountInstruction ----- */\n\nconst __tn_ir_ThawAccountInstruction = {\n typeName: \"ThawAccountInstruction\",\n root: { op: \"const\", value: 6n }\n} as const;\n\nexport class ThawAccountInstruction {\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> }): ThawAccountInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"ThawAccountInstruction.__tnCreateView requires a Uint8Array\");\n return new ThawAccountInstruction(new Uint8Array(buffer));\n }\n\n static builder(): ThawAccountInstructionBuilder {\n return new ThawAccountInstructionBuilder();\n }\n\n static fromBuilder(builder: ThawAccountInstructionBuilder): ThawAccountInstruction | null {\n const buffer = builder.build();\n return ThawAccountInstruction.from_array(buffer);\n }\n\n get_token_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_account_index(): number {\n return this.get_token_account_index();\n }\n\n set token_account_index(value: number) {\n this.set_token_account_index(value);\n }\n\n get_mint_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_authority_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_authority_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get authority_account_index(): number {\n return this.get_authority_account_index();\n }\n\n set authority_account_index(value: number) {\n this.set_authority_account_index(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_ThawAccountInstruction.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_ThawAccountInstruction, 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 ThawAccountInstruction');\n }\n return __tnBigIntToNumber(irResult, 'ThawAccountInstruction::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(token_account_index: number, mint_account_index: number, authority_account_index: number): ThawAccountInstruction {\n const buffer = new Uint8Array(6);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, token_account_index, true); /* token_account_index (little-endian) */\n view.setUint16(2, mint_account_index, true); /* mint_account_index (little-endian) */\n view.setUint16(4, authority_account_index, true); /* authority_account_index (little-endian) */\n\n return new ThawAccountInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): ThawAccountInstruction | 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 ThawAccountInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"ThawAccountInstruction\", (params) => ThawAccountInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"ThawAccountInstruction\", (buffer, params) => ThawAccountInstruction.__tnInvokeValidate(buffer, params));\n\nexport class ThawAccountInstructionBuilder {\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_token_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_authority_account_index(value: number): this {\n this.view.setUint16(4, 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(): ThawAccountInstruction {\n const view = ThawAccountInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build ThawAccountInstruction\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TickerField ----- */\n\nconst __tn_ir_TickerField = {\n typeName: \"TickerField\",\n root: { op: \"const\", value: 9n }\n} as const;\n\nexport class TickerField {\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> }): TickerField {\n if (!buffer || buffer.length === undefined) throw new Error(\"TickerField.__tnCreateView requires a Uint8Array\");\n return new TickerField(new Uint8Array(buffer));\n }\n\n static builder(): TickerFieldBuilder {\n return new TickerFieldBuilder();\n }\n\n static fromBuilder(builder: TickerFieldBuilder): TickerField | null {\n const buffer = builder.build();\n return TickerField.from_array(buffer);\n }\n\n get_length(): number {\n const offset = 0;\n return this.view.getUint8(offset);\n }\n\n set_length(value: number): void {\n const offset = 0;\n this.view.setUint8(offset, value);\n }\n\n get length(): number {\n return this.get_length();\n }\n\n set length(value: number) {\n this.set_length(value);\n }\n\n get_bytes(): number[] {\n const offset = 1;\n const result: number[] = [];\n for (let i = 0; i < 8; 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 = 1;\n if (value.length !== 8) {\n throw new Error('Array length must be 8');\n }\n for (let i = 0; i < 8; 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_TickerField.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_TickerField, 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 TickerField');\n }\n return __tnBigIntToNumber(irResult, 'TickerField::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 from_array(buffer: Uint8Array): TickerField | 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 TickerField(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"TickerField\", (params) => TickerField.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TickerField\", (buffer, params) => TickerField.__tnInvokeValidate(buffer, params));\n\nexport class TickerFieldBuilder {\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_length(value: number): this {\n this.view.setUint8(0, value);\n return this;\n }\n\n set_bytes(values: number[]): this {\n if (values.length !== 8) throw new Error(\"bytes expects 8 elements\");\n for (let i = 0; i < values.length; i++) {\n const byteOffset = 1 + 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(): TickerField {\n const view = TickerField.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build TickerField\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TokenAccount ----- */\n\nconst __tn_ir_TokenAccount = {\n typeName: \"TokenAccount\",\n root: { op: \"const\", value: 73n }\n} as const;\n\nexport class TokenAccount {\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> }): TokenAccount {\n if (!buffer || buffer.length === undefined) throw new Error(\"TokenAccount.__tnCreateView requires a Uint8Array\");\n return new TokenAccount(new Uint8Array(buffer));\n }\n\n static builder(): TokenAccountBuilder {\n return new TokenAccountBuilder();\n }\n\n static fromBuilder(builder: TokenAccountBuilder): TokenAccount | null {\n const buffer = builder.build();\n return TokenAccount.from_array(buffer);\n }\n\n get_mint(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_owner(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_owner(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 owner(): Pubkey {\n return this.get_owner();\n }\n\n set owner(value: Pubkey) {\n this.set_owner(value);\n }\n\n get_amount(): bigint {\n const offset = 64;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 64;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n get_is_frozen(): number {\n const offset = 72;\n return this.view.getUint8(offset);\n }\n\n set_is_frozen(value: number): void {\n const offset = 72;\n this.view.setUint8(offset, value);\n }\n\n get is_frozen(): number {\n return this.get_is_frozen();\n }\n\n set is_frozen(value: number) {\n this.set_is_frozen(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TokenAccount.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_TokenAccount, 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 TokenAccount');\n }\n return __tnBigIntToNumber(irResult, 'TokenAccount::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 73) return { ok: false, code: \"tn.buffer_too_small\", consumed: 73 };\n return { ok: true, consumed: 73 };\n }\n\n static from_array(buffer: Uint8Array): TokenAccount | 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 TokenAccount(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"TokenAccount\", (params) => TokenAccount.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TokenAccount\", (buffer, params) => TokenAccount.__tnInvokeValidate(buffer, params));\n\nexport class TokenAccountBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(73);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_owner(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"owner expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(64, cast, true);\n return this;\n }\n\n set_is_frozen(value: number): this {\n this.view.setUint8(72, 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(): TokenAccount {\n const view = TokenAccount.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build TokenAccount\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TokenMintAccount ----- */\n\nconst __tn_ir_TokenMintAccount = {\n typeName: \"TokenMintAccount\",\n root: { op: \"const\", value: 115n }\n} as const;\n\nexport class TokenMintAccount {\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> }): TokenMintAccount {\n if (!buffer || buffer.length === undefined) throw new Error(\"TokenMintAccount.__tnCreateView requires a Uint8Array\");\n return new TokenMintAccount(new Uint8Array(buffer));\n }\n\n static builder(): TokenMintAccountBuilder {\n return new TokenMintAccountBuilder();\n }\n\n static fromBuilder(builder: TokenMintAccountBuilder): TokenMintAccount | null {\n const buffer = builder.build();\n return TokenMintAccount.from_array(buffer);\n }\n\n get_decimals(): number {\n const offset = 0;\n return this.view.getUint8(offset);\n }\n\n set_decimals(value: number): void {\n const offset = 0;\n this.view.setUint8(offset, value);\n }\n\n get decimals(): number {\n return this.get_decimals();\n }\n\n set decimals(value: number) {\n this.set_decimals(value);\n }\n\n get_supply(): bigint {\n const offset = 1;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_supply(value: bigint): void {\n const offset = 1;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get supply(): bigint {\n return this.get_supply();\n }\n\n set supply(value: bigint) {\n this.set_supply(value);\n }\n\n get_creator(): Pubkey {\n const offset = 9;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_creator(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 9;\n this.buffer.set(sourceBytes, offset);\n }\n\n get creator(): Pubkey {\n return this.get_creator();\n }\n\n set creator(value: Pubkey) {\n this.set_creator(value);\n }\n\n get_mint_authority(): Pubkey {\n const offset = 41;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_mint_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 = 41;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint_authority(): Pubkey {\n return this.get_mint_authority();\n }\n\n set mint_authority(value: Pubkey) {\n this.set_mint_authority(value);\n }\n\n get_freeze_authority(): Pubkey {\n const offset = 73;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_freeze_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 = 73;\n this.buffer.set(sourceBytes, offset);\n }\n\n get freeze_authority(): Pubkey {\n return this.get_freeze_authority();\n }\n\n set freeze_authority(value: Pubkey) {\n this.set_freeze_authority(value);\n }\n\n get_has_freeze_authority(): number {\n const offset = 105;\n return this.view.getUint8(offset);\n }\n\n set_has_freeze_authority(value: number): void {\n const offset = 105;\n this.view.setUint8(offset, value);\n }\n\n get has_freeze_authority(): number {\n return this.get_has_freeze_authority();\n }\n\n set has_freeze_authority(value: number) {\n this.set_has_freeze_authority(value);\n }\n\n get_ticker(): TickerField {\n const offset = 106;\n const slice = this.buffer.subarray(offset, offset + 9);\n return TickerField.from_array(slice)!;\n }\n\n set_ticker(value: TickerField): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 106;\n this.buffer.set(sourceBytes, offset);\n }\n\n get ticker(): TickerField {\n return this.get_ticker();\n }\n\n set ticker(value: TickerField) {\n this.set_ticker(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TokenMintAccount.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_TokenMintAccount, 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 TokenMintAccount');\n }\n return __tnBigIntToNumber(irResult, 'TokenMintAccount::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 115) return { ok: false, code: \"tn.buffer_too_small\", consumed: 115 };\n return { ok: true, consumed: 115 };\n }\n\n static from_array(buffer: Uint8Array): TokenMintAccount | 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 TokenMintAccount(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"TokenMintAccount\", (params) => TokenMintAccount.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TokenMintAccount\", (buffer, params) => TokenMintAccount.__tnInvokeValidate(buffer, params));\n\nexport class TokenMintAccountBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(115);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_decimals(value: number): this {\n this.view.setUint8(0, value);\n return this;\n }\n\n set_supply(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(1, cast, true);\n return this;\n }\n\n set_creator(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"creator expects 32 bytes\");\n this.buffer.set(value, 9);\n return this;\n }\n\n set_mint_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint_authority expects 32 bytes\");\n this.buffer.set(value, 41);\n return this;\n }\n\n set_freeze_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"freeze_authority expects 32 bytes\");\n this.buffer.set(value, 73);\n return this;\n }\n\n set_has_freeze_authority(value: number): this {\n this.view.setUint8(105, value);\n return this;\n }\n\n set_ticker(value: Uint8Array): this {\n if (value.length !== 9) throw new Error(\"ticker expects 9 bytes\");\n this.buffer.set(value, 106);\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(): TokenMintAccount {\n const view = TokenMintAccount.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build TokenMintAccount\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TokenProgramAccount ----- */\n\nconst __tn_ir_TokenProgramAccount = {\n typeName: \"TokenProgramAccount\",\n root: { op: \"align\", alignment: 1, node: { op: \"align\", alignment: 1, node: { op: \"switch\", tag: \"TokenProgramAccount::data.payload_size\", cases: [{ value: 73, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 73n } } }, { value: 115, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 115n } } }] } } }\n} as const;\n\nexport class TokenProgramAccount {\n private view: DataView;\n private __tnParams: TokenProgramAccount.Params;\n\n private constructor(private buffer: Uint8Array, params?: TokenProgramAccount.Params) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n if (params) {\n this.__tnParams = params;\n } else {\n const derived = TokenProgramAccount.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"TokenProgramAccount: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: TokenProgramAccount.Params }): TokenProgramAccount {\n if (!buffer || buffer.length === undefined) throw new Error(\"TokenProgramAccount.__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 = TokenProgramAccount.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"TokenProgramAccount.__tnCreateView: failed to derive params\");\n params = derived.params;\n }\n const instance = new TokenProgramAccount(new Uint8Array(buffer), params);\n return instance;\n }\n\n dynamicParams(): TokenProgramAccount.Params {\n return this.__tnParams;\n }\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_data_payload_size: bigint | null = null;\n let __tnParamSeq_TokenProgramAccount__data_payload_size: bigint | null = null;\n let __tnCursorMutable = 0;\n const __tnSduAvailable_data = __tnLength - __tnCursorMutable;\n let __tnSduSize_data = -1;\n switch (__tnSduAvailable_data) {\n case 73: __tnSduSize_data = 73; break;\n case 115: __tnSduSize_data = 115; break;\n default: return null;\n }\n __tnParamSeq_data_payload_size = __tnToBigInt(__tnSduSize_data);\n __tnParamSeq_TokenProgramAccount__data_payload_size = __tnToBigInt(__tnSduSize_data);\n __tnCursorMutable += __tnSduSize_data;\n const params: Record<string, bigint> = Object.create(null);\n if (__tnParamSeq_data_payload_size === null) return null;\n params[\"data_payload_size\"] = __tnParamSeq_data_payload_size as bigint;\n if (__tnParamSeq_TokenProgramAccount__data_payload_size === null) return null;\n params[\"TokenProgramAccount__data_payload_size\"] = __tnParamSeq_TokenProgramAccount__data_payload_size as bigint;\n return { params, offsets: null, derived: null };\n }\n\n private static __tnExtractParams(view: DataView, buffer: Uint8Array): { params: TokenProgramAccount.Params; derived: Record<string, bigint> | null } | null {\n const __tnLayout = TokenProgramAccount.__tnComputeSequentialLayout(view, buffer);\n if (!__tnLayout || !__tnLayout.params) return null;\n const __tnSeqParams = __tnLayout.params;\n const __tnParamSeq_data_payload_size = __tnSeqParams[\"data_payload_size\"];\n if (__tnParamSeq_data_payload_size === undefined) return null;\n const __tnParamSeq_TokenProgramAccount__data_payload_size = __tnSeqParams[\"TokenProgramAccount__data_payload_size\"];\n if (__tnParamSeq_TokenProgramAccount__data_payload_size === undefined) return null;\n const __tnExtractedParams = TokenProgramAccount.Params.fromValues({\n data_payload_size: __tnParamSeq_data_payload_size as bigint,\n TokenProgramAccount__data_payload_size: __tnParamSeq_TokenProgramAccount__data_payload_size as bigint,\n });\n return { params: __tnExtractedParams, derived: null };\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TokenProgramAccount.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_TokenProgramAccount, 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_payload_size: number | bigint, TokenProgramAccount__data_payload_size: number | bigint): bigint {\n const params = TokenProgramAccount.Params.fromValues({\n data_payload_size: data_payload_size,\n TokenProgramAccount__data_payload_size: TokenProgramAccount__data_payload_size,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: TokenProgramAccount.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"data.payload_size\"] = params.data_payload_size;\n record[\"TokenProgramAccount::data.payload_size\"] = params.TokenProgramAccount__data_payload_size;\n return record;\n }\n\n static footprintIrFromParams(params: TokenProgramAccount.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: TokenProgramAccount.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 TokenProgramAccount');\n return __tnBigIntToNumber(irResult, 'TokenProgramAccount::footprintFromParams');\n }\n\n static footprintFromValues(input: { data_payload_size: number | bigint, TokenProgramAccount__data_payload_size: number | bigint }): number {\n const params = TokenProgramAccount.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: TokenProgramAccount.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: TokenProgramAccount.Params }): { ok: boolean; code?: string; consumed?: number; params?: TokenProgramAccount.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, 'TokenProgramAccount::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'TokenProgramAccount::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: TokenProgramAccount.Params }): TokenProgramAccount | 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 TokenProgramAccount(buffer, cached);\n return state;\n }\n\n\n}\n\nexport namespace TokenProgramAccount {\n export type Params = {\n /** ABI path: data.payload_size */\n readonly data_payload_size: bigint;\n /** Runtime payload size (bytes) selecting size-discriminated variant (ABI path: TokenProgramAccount::data.payload_size) */\n readonly TokenProgramAccount__data_payload_size: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n data_payload_size: \"data.payload_size\",\n TokenProgramAccount__data_payload_size: \"TokenProgramAccount::data.payload_size\",\n } as const);\n\n export const Params = {\n fromValues(input: { data_payload_size: number | bigint, TokenProgramAccount__data_payload_size: number | bigint }): Params {\n return {\n data_payload_size: __tnToBigInt(input.data_payload_size),\n TokenProgramAccount__data_payload_size: __tnToBigInt(input.TokenProgramAccount__data_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: { data_payload_size: number | bigint, TokenProgramAccount__data_payload_size: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\n__tnRegisterFootprint(\"TokenProgramAccount\", (params) => TokenProgramAccount.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TokenProgramAccount\", (buffer, params) => TokenProgramAccount.__tnInvokeValidate(buffer, params));\n\n/* ----- TYPE DEFINITION FOR TransferEventData ----- */\n\nconst __tn_ir_TransferEventData = {\n typeName: \"TransferEventData\",\n root: { op: \"const\", value: 88n }\n} as const;\n\nexport class TransferEventData {\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> }): TransferEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"TransferEventData.__tnCreateView requires a Uint8Array\");\n return new TransferEventData(new Uint8Array(buffer));\n }\n\n static builder(): TransferEventDataBuilder {\n return new TransferEventDataBuilder();\n }\n\n static fromBuilder(builder: TransferEventDataBuilder): TransferEventData | null {\n const buffer = builder.build();\n return TransferEventData.from_array(buffer);\n }\n\n get_source(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_source(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 source(): Pubkey {\n return this.get_source();\n }\n\n set source(value: Pubkey) {\n this.set_source(value);\n }\n\n get_dest(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_dest(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 dest(): Pubkey {\n return this.get_dest();\n }\n\n set dest(value: Pubkey) {\n this.set_dest(value);\n }\n\n get_amount(): bigint {\n const offset = 64;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 64;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n get_source_post_balance(): bigint {\n const offset = 72;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_source_post_balance(value: bigint): void {\n const offset = 72;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get source_post_balance(): bigint {\n return this.get_source_post_balance();\n }\n\n set source_post_balance(value: bigint) {\n this.set_source_post_balance(value);\n }\n\n get_dest_post_balance(): bigint {\n const offset = 80;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_dest_post_balance(value: bigint): void {\n const offset = 80;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get dest_post_balance(): bigint {\n return this.get_dest_post_balance();\n }\n\n set dest_post_balance(value: bigint) {\n this.set_dest_post_balance(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TransferEventData.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_TransferEventData, 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 TransferEventData');\n }\n return __tnBigIntToNumber(irResult, 'TransferEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 88) return { ok: false, code: \"tn.buffer_too_small\", consumed: 88 };\n return { ok: true, consumed: 88 };\n }\n\n static from_array(buffer: Uint8Array): TransferEventData | 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 TransferEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"TransferEventData\", (params) => TransferEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TransferEventData\", (buffer, params) => TransferEventData.__tnInvokeValidate(buffer, params));\n\nexport class TransferEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(88);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_source(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"source expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_dest(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"dest expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(64, cast, true);\n return this;\n }\n\n set_source_post_balance(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(72, cast, true);\n return this;\n }\n\n set_dest_post_balance(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(80, 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(): TransferEventData {\n const view = TransferEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build TransferEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TransferInstruction ----- */\n\nconst __tn_ir_TransferInstruction = {\n typeName: \"TransferInstruction\",\n root: { op: \"const\", value: 12n }\n} as const;\n\nexport class TransferInstruction {\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> }): TransferInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"TransferInstruction.__tnCreateView requires a Uint8Array\");\n return new TransferInstruction(new Uint8Array(buffer));\n }\n\n static builder(): TransferInstructionBuilder {\n return new TransferInstructionBuilder();\n }\n\n static fromBuilder(builder: TransferInstructionBuilder): TransferInstruction | null {\n const buffer = builder.build();\n return TransferInstruction.from_array(buffer);\n }\n\n get_source_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_source_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get source_account_index(): number {\n return this.get_source_account_index();\n }\n\n set source_account_index(value: number) {\n this.set_source_account_index(value);\n }\n\n get_dest_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_dest_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get dest_account_index(): number {\n return this.get_dest_account_index();\n }\n\n set dest_account_index(value: number) {\n this.set_dest_account_index(value);\n }\n\n get_amount(): bigint {\n const offset = 4;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 4;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TransferInstruction.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_TransferInstruction, 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 TransferInstruction');\n }\n return __tnBigIntToNumber(irResult, 'TransferInstruction::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(source_account_index: number, dest_account_index: number, amount: bigint): TransferInstruction {\n const buffer = new Uint8Array(12);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, source_account_index, true); /* source_account_index (little-endian) */\n view.setUint16(2, dest_account_index, true); /* dest_account_index (little-endian) */\n view.setBigUint64(4, amount, true); /* amount (little-endian) */\n\n return new TransferInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): TransferInstruction | 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 TransferInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"TransferInstruction\", (params) => TransferInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TransferInstruction\", (buffer, params) => TransferInstruction.__tnInvokeValidate(buffer, params));\n\nexport class TransferInstructionBuilder {\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_source_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_dest_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(4, 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(): TransferInstruction {\n const view = TransferInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build TransferInstruction\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR BurnEventData ----- */\n\nconst __tn_ir_BurnEventData = {\n typeName: \"BurnEventData\",\n root: { op: \"const\", value: 120n }\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_mint(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_account(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_account(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 account(): Pubkey {\n return this.get_account();\n }\n\n set account(value: Pubkey) {\n this.set_account(value);\n }\n\n get_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get authority(): Pubkey {\n return this.get_authority();\n }\n\n set authority(value: Pubkey) {\n this.set_authority(value);\n }\n\n get_amount(): bigint {\n const offset = 96;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 96;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n get_account_post_balance(): bigint {\n const offset = 104;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_account_post_balance(value: bigint): void {\n const offset = 104;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get account_post_balance(): bigint {\n return this.get_account_post_balance();\n }\n\n set account_post_balance(value: bigint) {\n this.set_account_post_balance(value);\n }\n\n get_mint_supply(): bigint {\n const offset = 112;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_mint_supply(value: bigint): void {\n const offset = 112;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get mint_supply(): bigint {\n return this.get_mint_supply();\n }\n\n set mint_supply(value: bigint) {\n this.set_mint_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 < 120) return { ok: false, code: \"tn.buffer_too_small\", consumed: 120 };\n return { ok: true, consumed: 120 };\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\n__tnRegisterFootprint(\"BurnEventData\", (params) => BurnEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"BurnEventData\", (buffer, params) => BurnEventData.__tnInvokeValidate(buffer, params));\n\nexport class BurnEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(120);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_account(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"account expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"authority expects 32 bytes\");\n this.buffer.set(value, 64);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(96, cast, true);\n return this;\n }\n\n set_account_post_balance(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(104, cast, true);\n return this;\n }\n\n set_mint_supply(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(112, 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/* ----- TYPE DEFINITION FOR CloseAccountEventData ----- */\n\nconst __tn_ir_CloseAccountEventData = {\n typeName: \"CloseAccountEventData\",\n root: { op: \"const\", value: 96n }\n} as const;\n\nexport class CloseAccountEventData {\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> }): CloseAccountEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"CloseAccountEventData.__tnCreateView requires a Uint8Array\");\n return new CloseAccountEventData(new Uint8Array(buffer));\n }\n\n static builder(): CloseAccountEventDataBuilder {\n return new CloseAccountEventDataBuilder();\n }\n\n static fromBuilder(builder: CloseAccountEventDataBuilder): CloseAccountEventData | null {\n const buffer = builder.build();\n return CloseAccountEventData.from_array(buffer);\n }\n\n get_account(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_account(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 account(): Pubkey {\n return this.get_account();\n }\n\n set account(value: Pubkey) {\n this.set_account(value);\n }\n\n get_destination(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_destination(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 destination(): Pubkey {\n return this.get_destination();\n }\n\n set destination(value: Pubkey) {\n this.set_destination(value);\n }\n\n get_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get authority(): Pubkey {\n return this.get_authority();\n }\n\n set authority(value: Pubkey) {\n this.set_authority(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_CloseAccountEventData.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_CloseAccountEventData, 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 CloseAccountEventData');\n }\n return __tnBigIntToNumber(irResult, 'CloseAccountEventData::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): CloseAccountEventData | 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 CloseAccountEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"CloseAccountEventData\", (params) => CloseAccountEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"CloseAccountEventData\", (buffer, params) => CloseAccountEventData.__tnInvokeValidate(buffer, params));\n\nexport class CloseAccountEventDataBuilder {\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_account(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"account expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_destination(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"destination expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"authority expects 32 bytes\");\n this.buffer.set(value, 64);\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(): CloseAccountEventData {\n const view = CloseAccountEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build CloseAccountEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR FreezeAccountEventData ----- */\n\nconst __tn_ir_FreezeAccountEventData = {\n typeName: \"FreezeAccountEventData\",\n root: { op: \"const\", value: 96n }\n} as const;\n\nexport class FreezeAccountEventData {\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> }): FreezeAccountEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"FreezeAccountEventData.__tnCreateView requires a Uint8Array\");\n return new FreezeAccountEventData(new Uint8Array(buffer));\n }\n\n static builder(): FreezeAccountEventDataBuilder {\n return new FreezeAccountEventDataBuilder();\n }\n\n static fromBuilder(builder: FreezeAccountEventDataBuilder): FreezeAccountEventData | null {\n const buffer = builder.build();\n return FreezeAccountEventData.from_array(buffer);\n }\n\n get_account(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_account(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 account(): Pubkey {\n return this.get_account();\n }\n\n set account(value: Pubkey) {\n this.set_account(value);\n }\n\n get_mint(): 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(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(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get authority(): Pubkey {\n return this.get_authority();\n }\n\n set authority(value: Pubkey) {\n this.set_authority(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_FreezeAccountEventData.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_FreezeAccountEventData, 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 FreezeAccountEventData');\n }\n return __tnBigIntToNumber(irResult, 'FreezeAccountEventData::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): FreezeAccountEventData | 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 FreezeAccountEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"FreezeAccountEventData\", (params) => FreezeAccountEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"FreezeAccountEventData\", (buffer, params) => FreezeAccountEventData.__tnInvokeValidate(buffer, params));\n\nexport class FreezeAccountEventDataBuilder {\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_account(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"account expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"authority expects 32 bytes\");\n this.buffer.set(value, 64);\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(): FreezeAccountEventData {\n const view = FreezeAccountEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build FreezeAccountEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR InitializeAccountEventData ----- */\n\nconst __tn_ir_InitializeAccountEventData = {\n typeName: \"InitializeAccountEventData\",\n root: { op: \"const\", value: 96n }\n} as const;\n\nexport class InitializeAccountEventData {\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> }): InitializeAccountEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"InitializeAccountEventData.__tnCreateView requires a Uint8Array\");\n return new InitializeAccountEventData(new Uint8Array(buffer));\n }\n\n static builder(): InitializeAccountEventDataBuilder {\n return new InitializeAccountEventDataBuilder();\n }\n\n static fromBuilder(builder: InitializeAccountEventDataBuilder): InitializeAccountEventData | null {\n const buffer = builder.build();\n return InitializeAccountEventData.from_array(buffer);\n }\n\n get_account(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_account(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 account(): Pubkey {\n return this.get_account();\n }\n\n set account(value: Pubkey) {\n this.set_account(value);\n }\n\n get_owner(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_owner(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 owner(): Pubkey {\n return this.get_owner();\n }\n\n set owner(value: Pubkey) {\n this.set_owner(value);\n }\n\n get_mint(): 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(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(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_InitializeAccountEventData.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_InitializeAccountEventData, 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 InitializeAccountEventData');\n }\n return __tnBigIntToNumber(irResult, 'InitializeAccountEventData::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): InitializeAccountEventData | 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 InitializeAccountEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"InitializeAccountEventData\", (params) => InitializeAccountEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"InitializeAccountEventData\", (buffer, params) => InitializeAccountEventData.__tnInvokeValidate(buffer, params));\n\nexport class InitializeAccountEventDataBuilder {\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_account(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"account expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_owner(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"owner expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 64);\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(): InitializeAccountEventData {\n const view = InitializeAccountEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build InitializeAccountEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR InitializeMintEventData ----- */\n\nconst __tn_ir_InitializeMintEventData = {\n typeName: \"InitializeMintEventData\",\n root: { op: \"const\", value: 115n }\n} as const;\n\nexport class InitializeMintEventData {\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> }): InitializeMintEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"InitializeMintEventData.__tnCreateView requires a Uint8Array\");\n return new InitializeMintEventData(new Uint8Array(buffer));\n }\n\n static builder(): InitializeMintEventDataBuilder {\n return new InitializeMintEventDataBuilder();\n }\n\n static fromBuilder(builder: InitializeMintEventDataBuilder): InitializeMintEventData | null {\n const buffer = builder.build();\n return InitializeMintEventData.from_array(buffer);\n }\n\n get_mint(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_mint_authority(): 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_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 = 32;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint_authority(): Pubkey {\n return this.get_mint_authority();\n }\n\n set mint_authority(value: Pubkey) {\n this.set_mint_authority(value);\n }\n\n get_freeze_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_freeze_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get freeze_authority(): Pubkey {\n return this.get_freeze_authority();\n }\n\n set freeze_authority(value: Pubkey) {\n this.set_freeze_authority(value);\n }\n\n get_supply(): bigint {\n const offset = 96;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_supply(value: bigint): void {\n const offset = 96;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get supply(): bigint {\n return this.get_supply();\n }\n\n set supply(value: bigint) {\n this.set_supply(value);\n }\n\n get_decimals(): number {\n const offset = 104;\n return this.view.getUint8(offset);\n }\n\n set_decimals(value: number): void {\n const offset = 104;\n this.view.setUint8(offset, value);\n }\n\n get decimals(): number {\n return this.get_decimals();\n }\n\n set decimals(value: number) {\n this.set_decimals(value);\n }\n\n get_has_freeze_authority(): number {\n const offset = 105;\n return this.view.getUint8(offset);\n }\n\n set_has_freeze_authority(value: number): void {\n const offset = 105;\n this.view.setUint8(offset, value);\n }\n\n get has_freeze_authority(): number {\n return this.get_has_freeze_authority();\n }\n\n set has_freeze_authority(value: number) {\n this.set_has_freeze_authority(value);\n }\n\n get_ticker(): TickerField {\n const offset = 106;\n const slice = this.buffer.subarray(offset, offset + 9);\n return TickerField.from_array(slice)!;\n }\n\n set_ticker(value: TickerField): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 106;\n this.buffer.set(sourceBytes, offset);\n }\n\n get ticker(): TickerField {\n return this.get_ticker();\n }\n\n set ticker(value: TickerField) {\n this.set_ticker(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_InitializeMintEventData.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_InitializeMintEventData, 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 InitializeMintEventData');\n }\n return __tnBigIntToNumber(irResult, 'InitializeMintEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 115) return { ok: false, code: \"tn.buffer_too_small\", consumed: 115 };\n return { ok: true, consumed: 115 };\n }\n\n static from_array(buffer: Uint8Array): InitializeMintEventData | 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 InitializeMintEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"InitializeMintEventData\", (params) => InitializeMintEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"InitializeMintEventData\", (buffer, params) => InitializeMintEventData.__tnInvokeValidate(buffer, params));\n\nexport class InitializeMintEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(115);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_mint_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint_authority expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_freeze_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"freeze_authority expects 32 bytes\");\n this.buffer.set(value, 64);\n return this;\n }\n\n set_supply(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(96, cast, true);\n return this;\n }\n\n set_decimals(value: number): this {\n this.view.setUint8(104, value);\n return this;\n }\n\n set_has_freeze_authority(value: number): this {\n this.view.setUint8(105, value);\n return this;\n }\n\n set_ticker(value: Uint8Array): this {\n if (value.length !== 9) throw new Error(\"ticker expects 9 bytes\");\n this.buffer.set(value, 106);\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(): InitializeMintEventData {\n const view = InitializeMintEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build InitializeMintEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR MintToEventData ----- */\n\nconst __tn_ir_MintToEventData = {\n typeName: \"MintToEventData\",\n root: { op: \"const\", value: 120n }\n} as const;\n\nexport class MintToEventData {\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> }): MintToEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"MintToEventData.__tnCreateView requires a Uint8Array\");\n return new MintToEventData(new Uint8Array(buffer));\n }\n\n static builder(): MintToEventDataBuilder {\n return new MintToEventDataBuilder();\n }\n\n static fromBuilder(builder: MintToEventDataBuilder): MintToEventData | null {\n const buffer = builder.build();\n return MintToEventData.from_array(buffer);\n }\n\n get_mint(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_dest(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_dest(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 dest(): Pubkey {\n return this.get_dest();\n }\n\n set dest(value: Pubkey) {\n this.set_dest(value);\n }\n\n get_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get authority(): Pubkey {\n return this.get_authority();\n }\n\n set authority(value: Pubkey) {\n this.set_authority(value);\n }\n\n get_amount(): bigint {\n const offset = 96;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 96;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n get_dest_post_balance(): bigint {\n const offset = 104;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_dest_post_balance(value: bigint): void {\n const offset = 104;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get dest_post_balance(): bigint {\n return this.get_dest_post_balance();\n }\n\n set dest_post_balance(value: bigint) {\n this.set_dest_post_balance(value);\n }\n\n get_mint_supply(): bigint {\n const offset = 112;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_mint_supply(value: bigint): void {\n const offset = 112;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get mint_supply(): bigint {\n return this.get_mint_supply();\n }\n\n set mint_supply(value: bigint) {\n this.set_mint_supply(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_MintToEventData.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_MintToEventData, 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 MintToEventData');\n }\n return __tnBigIntToNumber(irResult, 'MintToEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 120) return { ok: false, code: \"tn.buffer_too_small\", consumed: 120 };\n return { ok: true, consumed: 120 };\n }\n\n static from_array(buffer: Uint8Array): MintToEventData | 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 MintToEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"MintToEventData\", (params) => MintToEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"MintToEventData\", (buffer, params) => MintToEventData.__tnInvokeValidate(buffer, params));\n\nexport class MintToEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(120);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_dest(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"dest expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"authority expects 32 bytes\");\n this.buffer.set(value, 64);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(96, cast, true);\n return this;\n }\n\n set_dest_post_balance(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(104, cast, true);\n return this;\n }\n\n set_mint_supply(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(112, 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(): MintToEventData {\n const view = MintToEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build MintToEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TokenEvent ----- */\n\nconst __tn_ir_TokenEvent = {\n typeName: \"TokenEvent\",\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: \"TokenEvent::payload.event_type\", cases: [{ value: 0, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 115n } } }, { value: 1, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 96n } } }, { value: 2, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 88n } } }, { value: 3, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 120n } } }, { value: 4, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 120n } } }, { value: 5, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 96n } } }, { value: 6, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 96n } } }, { value: 7, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 96n } } }] } } } }\n} as const;\n\nexport class TokenEvent_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>): TokenEvent_payload_Inner {\n return new TokenEvent_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 asInitializeMint(): InitializeMintEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 0) return null;\n return InitializeMintEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asInitializeAccount(): InitializeAccountEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 1) return null;\n return InitializeAccountEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asTransfer(): TransferEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 2) return null;\n return TransferEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asMintTo(): MintToEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 3) return null;\n return MintToEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asBurn(): BurnEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 4) return null;\n return BurnEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asCloseAccount(): CloseAccountEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 5) return null;\n return CloseAccountEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asFreezeAccount(): FreezeAccountEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 6) return null;\n return FreezeAccountEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asThawAccount(): ThawAccountEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 7) return null;\n return ThawAccountEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n}\n\nexport class TokenEvent {\n private view: DataView;\n private static readonly __tnFieldOffset_payload = 1;\n private __tnParams: TokenEvent.Params;\n\n private constructor(private buffer: Uint8Array, params?: TokenEvent.Params) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n if (params) {\n this.__tnParams = params;\n } else {\n const derived = TokenEvent.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"TokenEvent: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: TokenEvent.Params }): TokenEvent {\n if (!buffer || buffer.length === undefined) throw new Error(\"TokenEvent.__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 = TokenEvent.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"TokenEvent.__tnCreateView: failed to derive params\");\n params = derived.params;\n }\n const instance = new TokenEvent(new Uint8Array(buffer), params);\n return instance;\n }\n\n dynamicParams(): TokenEvent.Params {\n return this.__tnParams;\n }\n\n static builder(): TokenEventBuilder {\n return new TokenEventBuilder();\n }\n\n static fromBuilder(builder: TokenEventBuilder): TokenEvent | null {\n const buffer = builder.build();\n const params = builder.dynamicParams();\n return TokenEvent.from_array(buffer, { params });\n }\n\n static readonly payloadVariantDescriptors = Object.freeze([\n {\n name: \"initialize_mint\",\n tag: 0,\n payloadSize: 115,\n payloadType: \"TokenEvent::payload::initialize_mint\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(InitializeMintEventData),\n },\n {\n name: \"initialize_account\",\n tag: 1,\n payloadSize: 96,\n payloadType: \"TokenEvent::payload::initialize_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(InitializeAccountEventData),\n },\n {\n name: \"transfer\",\n tag: 2,\n payloadSize: 88,\n payloadType: \"TokenEvent::payload::transfer\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(TransferEventData),\n },\n {\n name: \"mint_to\",\n tag: 3,\n payloadSize: 120,\n payloadType: \"TokenEvent::payload::mint_to\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(MintToEventData),\n },\n {\n name: \"burn\",\n tag: 4,\n payloadSize: 120,\n payloadType: \"TokenEvent::payload::burn\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(BurnEventData),\n },\n {\n name: \"close_account\",\n tag: 5,\n payloadSize: 96,\n payloadType: \"TokenEvent::payload::close_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(CloseAccountEventData),\n },\n {\n name: \"freeze_account\",\n tag: 6,\n payloadSize: 96,\n payloadType: \"TokenEvent::payload::freeze_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(FreezeAccountEventData),\n },\n {\n name: \"thaw_account\",\n tag: 7,\n payloadSize: 96,\n payloadType: \"TokenEvent::payload::thaw_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(ThawAccountEventData),\n },\n ] as const);\n\n private static __tnExtractParams(view: DataView, buffer: Uint8Array): { params: TokenEvent.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 if (buffer.length < 1) {\n return null;\n }\n const __tnParam_TokenEvent__payload_event_type = __tnToBigInt(view.getUint8(0));\n const __tnExtractedParams = TokenEvent.Params.fromValues({\n payload_event_type: __tnParam_payload_event_type,\n TokenEvent__payload_event_type: __tnParam_TokenEvent__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 TokenEvent.payloadVariantDescriptors[number] | null {\n const tag = this.view.getUint8(0);\n return TokenEvent.payloadVariantDescriptors.find((variant) => variant.tag === tag) ?? null;\n }\n\n payload(): TokenEvent_payload_Inner {\n const descriptor = this.payloadVariant();\n if (!descriptor) throw new Error(\"TokenEvent: unknown payload variant\");\n const offset = TokenEvent.__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(\"TokenEvent: payload exceeds buffer bounds\");\n const slice = this.buffer.subarray(offset, offset + payloadLength);\n return TokenEvent_payload_Inner.__tnCreate(slice, descriptor, undefined);\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TokenEvent.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_TokenEvent, 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, TokenEvent__payload_event_type: number | bigint): bigint {\n const params = TokenEvent.Params.fromValues({\n payload_event_type: payload_event_type,\n TokenEvent__payload_event_type: TokenEvent__payload_event_type,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: TokenEvent.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"payload.event_type\"] = params.payload_event_type;\n record[\"TokenEvent::payload.event_type\"] = params.TokenEvent__payload_event_type;\n return record;\n }\n\n static footprintIrFromParams(params: TokenEvent.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: TokenEvent.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 TokenEvent');\n return __tnBigIntToNumber(irResult, 'TokenEvent::footprintFromParams');\n }\n\n static footprintFromValues(input: { payload_event_type: number | bigint, TokenEvent__payload_event_type: number | bigint }): number {\n const params = TokenEvent.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: TokenEvent.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: TokenEvent.Params }): { ok: boolean; code?: string; consumed?: number; params?: TokenEvent.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, 'TokenEvent::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'TokenEvent::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: TokenEvent.Params }): TokenEvent | 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 TokenEvent(buffer, cached);\n return state;\n }\n\n\n}\n\nexport namespace TokenEvent {\n export type Params = {\n /** ABI path: payload.event_type */\n readonly payload_event_type: bigint;\n /** ABI path: TokenEvent::payload.event_type */\n readonly TokenEvent__payload_event_type: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n payload_event_type: \"payload.event_type\",\n TokenEvent__payload_event_type: \"TokenEvent::payload.event_type\",\n } as const);\n\n export const Params = {\n fromValues(input: { payload_event_type: number | bigint, TokenEvent__payload_event_type?: number | bigint }): Params {\n const payloadEventType = __tnToBigInt(input.payload_event_type);\n const tokenEventPayloadType = input.TokenEvent__payload_event_type !== undefined\n ? __tnToBigInt(input.TokenEvent__payload_event_type)\n : payloadEventType;\n return {\n payload_event_type: payloadEventType,\n TokenEvent__payload_event_type: tokenEventPayloadType,\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, TokenEvent__payload_event_type?: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\n__tnRegisterFootprint(\"TokenEvent\", (params) => TokenEvent.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TokenEvent\", (buffer, params) => TokenEvent.__tnInvokeValidate(buffer, params));\n\nexport class TokenEventBuilder {\n private __tnPrefixBuffer: Uint8Array;\n private __tnPrefixView: DataView;\n private __tnField_event_type: number | null = null;\n private __tnPayload_payload: { descriptor: typeof TokenEvent.payloadVariantDescriptors[number]; bytes: Uint8Array } | null = null;\n private __tnCachedParams: TokenEvent.Params | null = null;\n private __tnLastBuffer: Uint8Array | null = null;\n private __tnLastParams: TokenEvent.Params | null = null;\n private __tnVariantSelector_payload?: __TnVariantSelectorResult<TokenEventBuilder>;\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<TokenEventBuilder> {\n if (!this.__tnVariantSelector_payload) {\n this.__tnVariantSelector_payload = __tnCreateVariantSelector(this, TokenEvent.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(\"TokenEventBuilder: field 'event_type' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenEventBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 1 + payloadLength;\n const footprintSize = TokenEvent.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(\"TokenEventBuilder: field 'event_type' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenEventBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 1 + payloadLength;\n const footprintSize = TokenEvent.footprintFromParams(params);\n const size = Math.max(requiredSize, footprintSize);\n if (target.length - offset < size) throw new Error(\"TokenEventBuilder: 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(): TokenEvent {\n const buffer = this.build();\n const params = this.__tnLastParams ?? this.__tnComputeParams();\n const view = TokenEvent.from_array(buffer, { params });\n if (!view) throw new Error(\"TokenEventBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): TokenEvent {\n return this.finish();\n }\n\n dynamicParams(): TokenEvent.Params {\n return this.__tnComputeParams();\n }\n\n private __tnComputeParams(): TokenEvent.Params {\n if (this.__tnCachedParams) return this.__tnCachedParams;\n const eventType = __tnToBigInt(this.__tnPrefixView.getUint8(0));\n const params = TokenEvent.Params.fromValues({\n payload_event_type: eventType,\n TokenEvent__payload_event_type: eventType,\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(\"TokenEventBuilder: field 'event_type' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenEventBuilder: 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: TokenEvent.Params): void {\n const result = TokenEvent.validate(buffer, { params });\n if (!result.ok) {\n throw new Error(`${ TokenEvent }Builder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n this.__tnLastParams = result.params ?? params;\n this.__tnLastBuffer = buffer;\n }\n}\n\n/* ----- TYPE DEFINITION FOR InitializeAccountInstruction ----- */\n\nconst __tn_ir_InitializeAccountInstruction = {\n typeName: \"InitializeAccountInstruction\",\n root: { op: \"align\", alignment: 1, node: { 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: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 1, node: { op: \"call\", typeName: \"StateProof\", args: [{ name: \"proof_body.hdr.type_slot\", source: \"proof_body.hdr.type_slot\" }, { name: \"proof_body.payload_size\", source: \"proof_body.payload_size\" }] } } } }\n} as const;\n\nexport class InitializeAccountInstruction {\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> }): InitializeAccountInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"InitializeAccountInstruction.__tnCreateView requires a Uint8Array\");\n return new InitializeAccountInstruction(new Uint8Array(buffer));\n }\n\n static builder(): InitializeAccountInstructionBuilder {\n return new InitializeAccountInstructionBuilder();\n }\n\n static fromBuilder(builder: InitializeAccountInstructionBuilder): InitializeAccountInstruction | null {\n const buffer = builder.build();\n return InitializeAccountInstruction.from_array(buffer);\n }\n\n get_token_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_account_index(): number {\n return this.get_token_account_index();\n }\n\n set token_account_index(value: number) {\n this.set_token_account_index(value);\n }\n\n get_mint_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_owner_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_owner_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get owner_account_index(): number {\n return this.get_owner_account_index();\n }\n\n set owner_account_index(value: number) {\n this.set_owner_account_index(value);\n }\n\n get_new_account_seed(): Seed32 {\n const offset = 6;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Seed32.from_array(slice)!;\n }\n\n set_new_account_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 = 6;\n this.buffer.set(sourceBytes, offset);\n }\n\n get new_account_seed(): Seed32 {\n return this.get_new_account_seed();\n }\n\n set new_account_seed(value: Seed32) {\n this.set_new_account_seed(value);\n }\n\n get_state_proof(): StateProof {\n const offset = 38;\n const tail = this.buffer.subarray(offset);\n const validation = StateProof.validate(tail);\n if (!validation.ok || validation.consumed === undefined) {\n throw new Error(\"InitializeAccountInstruction: failed to read field 'state_proof' (invalid nested payload)\");\n }\n const length = validation.consumed;\n const slice = tail.subarray(0, length);\n const opts = validation.params ? { params: validation.params } : undefined;\n return StateProof.from_array(slice, opts)!;\n }\n\n set_state_proof(value: StateProof): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 38;\n this.buffer.set(sourceBytes, offset);\n }\n\n get state_proof(): StateProof {\n return this.get_state_proof();\n }\n\n set state_proof(value: StateProof) {\n this.set_state_proof(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_InitializeAccountInstruction.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_InitializeAccountInstruction, 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 InitializeAccountInstruction');\n }\n return __tnBigIntToNumber(irResult, 'InitializeAccountInstruction::footprint');\n }\n\n static validate(_buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n __tnLogWarn(\"InitializeAccountInstruction::validate falling back to basic length check\");\n return { ok: true, consumed: _buffer.length };\n }\n\n static from_array(buffer: Uint8Array): InitializeAccountInstruction | 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 InitializeAccountInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"InitializeAccountInstruction\", (params) => InitializeAccountInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"InitializeAccountInstruction\", (buffer, params) => InitializeAccountInstruction.__tnInvokeValidate(buffer, params));\n\nexport class InitializeAccountInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n private __tnTail_state_proof: Uint8Array | null = null;\n\n constructor() {\n this.buffer = new Uint8Array(38);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n private __tnInvalidate(): void {\n /* Placeholder for future cache invalidation. */\n }\n\n set_token_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_owner_account_index(value: number): this {\n this.view.setUint16(4, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_new_account_seed(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"new_account_seed expects 32 bytes\");\n this.buffer.set(value, 6);\n this.__tnInvalidate();\n return this;\n }\n\n set_state_proof(value: StateProof | __TnStructFieldInput): this {\n const bytes = __tnResolveStructFieldInput(value as __TnStructFieldInput, \"InitializeAccountInstructionBuilder::state_proof\");\n this.__tnTail_state_proof = bytes;\n this.__tnInvalidate();\n return this;\n }\n\n build(): Uint8Array {\n const fragments = this.__tnCollectTailFragments();\n const size = this.__tnComputeSize(fragments);\n const buffer = new Uint8Array(size);\n this.__tnWriteInto(buffer, fragments);\n this.__tnValidateOrThrow(buffer);\n return buffer;\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n const fragments = this.__tnCollectTailFragments();\n const size = this.__tnComputeSize(fragments);\n if (target.length - offset < size) throw new Error(\"InitializeAccountInstructionBuilder: target buffer too small\");\n const slice = target.subarray(offset, offset + size);\n this.__tnWriteInto(slice, fragments);\n this.__tnValidateOrThrow(slice);\n return target;\n }\n\n finish(): InitializeAccountInstruction {\n const buffer = this.build();\n const view = InitializeAccountInstruction.from_array(buffer);\n if (!view) throw new Error(\"InitializeAccountInstructionBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): InitializeAccountInstruction {\n return this.finish();\n }\n\n private __tnCollectTailFragments(): Uint8Array[] {\n return [\n (() => {\n const bytes = this.__tnTail_state_proof;\n if (!bytes) throw new Error(\"InitializeAccountInstructionBuilder: field 'state_proof' must be set before build()\");\n return bytes;\n })(),\n ];\n }\n\n private __tnComputeSize(fragments: readonly Uint8Array[]): number {\n let total = this.buffer.length;\n for (const fragment of fragments) {\n total += fragment.length;\n }\n return total;\n }\n\n private __tnWriteInto(target: Uint8Array, fragments: readonly Uint8Array[]): void {\n target.set(this.buffer, 0);\n let cursor = this.buffer.length;\n for (const fragment of fragments) {\n target.set(fragment, cursor);\n cursor += fragment.length;\n }\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array): void {\n const result = InitializeAccountInstruction.validate(buffer);\n if (!result.ok) {\n throw new Error(`InitializeAccountInstructionBuilder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n }\n}\n\n/* ----- TYPE DEFINITION FOR InitializeMintInstruction ----- */\n\nconst __tn_ir_InitializeMintInstruction = {\n typeName: \"InitializeMintInstruction\",\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: \"align\", alignment: 2, node: { op: \"const\", value: 2n } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 1n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 1n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 9n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 1, node: { op: \"call\", typeName: \"StateProof\", args: [{ name: \"proof_body.hdr.type_slot\", source: \"proof_body.hdr.type_slot\" }, { name: \"proof_body.payload_size\", source: \"proof_body.payload_size\" }] } } } }\n} as const;\n\nexport class InitializeMintInstruction {\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> }): InitializeMintInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"InitializeMintInstruction.__tnCreateView requires a Uint8Array\");\n return new InitializeMintInstruction(new Uint8Array(buffer));\n }\n\n static builder(): InitializeMintInstructionBuilder {\n return new InitializeMintInstructionBuilder();\n }\n\n static fromBuilder(builder: InitializeMintInstructionBuilder): InitializeMintInstruction | null {\n const buffer = builder.build();\n return InitializeMintInstruction.from_array(buffer);\n }\n\n get_mint_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_decimals(): number {\n const offset = 2;\n return this.view.getUint8(offset);\n }\n\n set_decimals(value: number): void {\n const offset = 2;\n this.view.setUint8(offset, value);\n }\n\n get decimals(): number {\n return this.get_decimals();\n }\n\n set decimals(value: number) {\n this.set_decimals(value);\n }\n\n get_creator(): Pubkey {\n const offset = 3;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_creator(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 3;\n this.buffer.set(sourceBytes, offset);\n }\n\n get creator(): Pubkey {\n return this.get_creator();\n }\n\n set creator(value: Pubkey) {\n this.set_creator(value);\n }\n\n get_mint_authority(): Pubkey {\n const offset = 35;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_mint_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 = 35;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint_authority(): Pubkey {\n return this.get_mint_authority();\n }\n\n set mint_authority(value: Pubkey) {\n this.set_mint_authority(value);\n }\n\n get_freeze_authority(): Pubkey {\n const offset = 67;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_freeze_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 = 67;\n this.buffer.set(sourceBytes, offset);\n }\n\n get freeze_authority(): Pubkey {\n return this.get_freeze_authority();\n }\n\n set freeze_authority(value: Pubkey) {\n this.set_freeze_authority(value);\n }\n\n get_has_freeze_authority(): number {\n const offset = 99;\n return this.view.getUint8(offset);\n }\n\n set_has_freeze_authority(value: number): void {\n const offset = 99;\n this.view.setUint8(offset, value);\n }\n\n get has_freeze_authority(): number {\n return this.get_has_freeze_authority();\n }\n\n set has_freeze_authority(value: number) {\n this.set_has_freeze_authority(value);\n }\n\n get_ticker(): TickerField {\n const offset = 100;\n const slice = this.buffer.subarray(offset, offset + 9);\n return TickerField.from_array(slice)!;\n }\n\n set_ticker(value: TickerField): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 100;\n this.buffer.set(sourceBytes, offset);\n }\n\n get ticker(): TickerField {\n return this.get_ticker();\n }\n\n set ticker(value: TickerField) {\n this.set_ticker(value);\n }\n\n get_seed(): Seed32 {\n const offset = 109;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Seed32.from_array(slice)!;\n }\n\n set_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 = 109;\n this.buffer.set(sourceBytes, offset);\n }\n\n get seed(): Seed32 {\n return this.get_seed();\n }\n\n set seed(value: Seed32) {\n this.set_seed(value);\n }\n\n get_state_proof(): StateProof {\n const offset = 141;\n const tail = this.buffer.subarray(offset);\n const validation = StateProof.validate(tail);\n if (!validation.ok || validation.consumed === undefined) {\n throw new Error(\"InitializeMintInstruction: failed to read field 'state_proof' (invalid nested payload)\");\n }\n const length = validation.consumed;\n const slice = tail.subarray(0, length);\n const opts = validation.params ? { params: validation.params } : undefined;\n return StateProof.from_array(slice, opts)!;\n }\n\n set_state_proof(value: StateProof): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 141;\n this.buffer.set(sourceBytes, offset);\n }\n\n get state_proof(): StateProof {\n return this.get_state_proof();\n }\n\n set state_proof(value: StateProof) {\n this.set_state_proof(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_InitializeMintInstruction.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_InitializeMintInstruction, 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 InitializeMintInstruction');\n }\n return __tnBigIntToNumber(irResult, 'InitializeMintInstruction::footprint');\n }\n\n static validate(_buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n __tnLogWarn(\"InitializeMintInstruction::validate falling back to basic length check\");\n return { ok: true, consumed: _buffer.length };\n }\n\n static from_array(buffer: Uint8Array): InitializeMintInstruction | 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 InitializeMintInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"InitializeMintInstruction\", (params) => InitializeMintInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"InitializeMintInstruction\", (buffer, params) => InitializeMintInstruction.__tnInvokeValidate(buffer, params));\n\nexport class InitializeMintInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n private __tnTail_state_proof: Uint8Array | null = null;\n\n constructor() {\n this.buffer = new Uint8Array(141);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n private __tnInvalidate(): void {\n /* Placeholder for future cache invalidation. */\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_decimals(value: number): this {\n this.view.setUint8(2, value);\n this.__tnInvalidate();\n return this;\n }\n\n set_creator(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"creator expects 32 bytes\");\n this.buffer.set(value, 3);\n this.__tnInvalidate();\n return this;\n }\n\n set_mint_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint_authority expects 32 bytes\");\n this.buffer.set(value, 35);\n this.__tnInvalidate();\n return this;\n }\n\n set_freeze_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"freeze_authority expects 32 bytes\");\n this.buffer.set(value, 67);\n this.__tnInvalidate();\n return this;\n }\n\n set_has_freeze_authority(value: number): this {\n this.view.setUint8(99, value);\n this.__tnInvalidate();\n return this;\n }\n\n set_ticker(value: Uint8Array): this {\n if (value.length !== 9) throw new Error(\"ticker expects 9 bytes\");\n this.buffer.set(value, 100);\n this.__tnInvalidate();\n return this;\n }\n\n set_seed(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"seed expects 32 bytes\");\n this.buffer.set(value, 109);\n this.__tnInvalidate();\n return this;\n }\n\n set_state_proof(value: StateProof | __TnStructFieldInput): this {\n const bytes = __tnResolveStructFieldInput(value as __TnStructFieldInput, \"InitializeMintInstructionBuilder::state_proof\");\n this.__tnTail_state_proof = bytes;\n this.__tnInvalidate();\n return this;\n }\n\n build(): Uint8Array {\n const fragments = this.__tnCollectTailFragments();\n const size = this.__tnComputeSize(fragments);\n const buffer = new Uint8Array(size);\n this.__tnWriteInto(buffer, fragments);\n this.__tnValidateOrThrow(buffer);\n return buffer;\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n const fragments = this.__tnCollectTailFragments();\n const size = this.__tnComputeSize(fragments);\n if (target.length - offset < size) throw new Error(\"InitializeMintInstructionBuilder: target buffer too small\");\n const slice = target.subarray(offset, offset + size);\n this.__tnWriteInto(slice, fragments);\n this.__tnValidateOrThrow(slice);\n return target;\n }\n\n finish(): InitializeMintInstruction {\n const buffer = this.build();\n const view = InitializeMintInstruction.from_array(buffer);\n if (!view) throw new Error(\"InitializeMintInstructionBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): InitializeMintInstruction {\n return this.finish();\n }\n\n private __tnCollectTailFragments(): Uint8Array[] {\n return [\n (() => {\n const bytes = this.__tnTail_state_proof;\n if (!bytes) throw new Error(\"InitializeMintInstructionBuilder: field 'state_proof' must be set before build()\");\n return bytes;\n })(),\n ];\n }\n\n private __tnComputeSize(fragments: readonly Uint8Array[]): number {\n let total = this.buffer.length;\n for (const fragment of fragments) {\n total += fragment.length;\n }\n return total;\n }\n\n private __tnWriteInto(target: Uint8Array, fragments: readonly Uint8Array[]): void {\n target.set(this.buffer, 0);\n let cursor = this.buffer.length;\n for (const fragment of fragments) {\n target.set(fragment, cursor);\n cursor += fragment.length;\n }\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array): void {\n const result = InitializeMintInstruction.validate(buffer);\n if (!result.ok) {\n throw new Error(`InitializeMintInstructionBuilder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n }\n}\n\n/* ----- TYPE DEFINITION FOR TokenInstruction ----- */\n\nconst __tn_ir_TokenInstruction = {\n typeName: \"TokenInstruction\",\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: \"field\", param: \"payload.payload_size\" } } } }\n} as const;\n\nexport class TokenInstruction_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>): TokenInstruction_payload_Inner {\n return new TokenInstruction_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 asInitializeMint(): InitializeMintInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 0) return null;\n return InitializeMintInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asInitializeAccount(): InitializeAccountInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 1) return null;\n return InitializeAccountInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asTransfer(): TransferInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 2) return null;\n return TransferInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asMintTo(): MintToInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 3) return null;\n return MintToInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asBurn(): BurnInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 4) return null;\n return BurnInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asCloseAccount(): CloseAccountInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 5) return null;\n return CloseAccountInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asFreezeAccount(): FreezeAccountInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 6) return null;\n return FreezeAccountInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asThawAccount(): ThawAccountInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 7) return null;\n return ThawAccountInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n}\n\nexport class TokenInstruction {\n private view: DataView;\n private static readonly __tnFieldOffset_payload = 1;\n private __tnParams: TokenInstruction.Params;\n\n private constructor(private buffer: Uint8Array, params?: TokenInstruction.Params) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n if (params) {\n this.__tnParams = params;\n } else {\n const derived = TokenInstruction.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"TokenInstruction: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: TokenInstruction.Params }): TokenInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"TokenInstruction.__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 = TokenInstruction.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"TokenInstruction.__tnCreateView: failed to derive params\");\n params = derived.params;\n }\n const instance = new TokenInstruction(new Uint8Array(buffer), params);\n return instance;\n }\n\n dynamicParams(): TokenInstruction.Params {\n return this.__tnParams;\n }\n\n static builder(): TokenInstructionBuilder {\n return new TokenInstructionBuilder();\n }\n\n static fromBuilder(builder: TokenInstructionBuilder): TokenInstruction | null {\n const buffer = builder.build();\n const params = builder.dynamicParams();\n return TokenInstruction.from_array(buffer, { params });\n }\n\n static readonly payloadVariantDescriptors = Object.freeze([\n {\n name: \"initialize_mint\",\n tag: 0,\n payloadSize: null,\n payloadType: \"TokenInstruction::payload::initialize_mint\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(InitializeMintInstruction),\n },\n {\n name: \"initialize_account\",\n tag: 1,\n payloadSize: null,\n payloadType: \"TokenInstruction::payload::initialize_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(InitializeAccountInstruction),\n },\n {\n name: \"transfer\",\n tag: 2,\n payloadSize: 12,\n payloadType: \"TokenInstruction::payload::transfer\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(TransferInstruction),\n },\n {\n name: \"mint_to\",\n tag: 3,\n payloadSize: 14,\n payloadType: \"TokenInstruction::payload::mint_to\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(MintToInstruction),\n },\n {\n name: \"burn\",\n tag: 4,\n payloadSize: 14,\n payloadType: \"TokenInstruction::payload::burn\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(BurnInstruction),\n },\n {\n name: \"close_account\",\n tag: 5,\n payloadSize: 6,\n payloadType: \"TokenInstruction::payload::close_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(CloseAccountInstruction),\n },\n {\n name: \"freeze_account\",\n tag: 6,\n payloadSize: 6,\n payloadType: \"TokenInstruction::payload::freeze_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(FreezeAccountInstruction),\n },\n {\n name: \"thaw_account\",\n tag: 7,\n payloadSize: 6,\n payloadType: \"TokenInstruction::payload::thaw_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(ThawAccountInstruction),\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_tag: number | null = null;\n let __tnCursorMutable = 0;\n if (__tnCursorMutable + 1 > __tnLength) return null;\n const __tnRead_tag = view.getUint8(__tnCursorMutable);\n __tnFieldValue_tag = __tnRead_tag;\n __tnCursorMutable += 1;\n const __tnEnumTagValue_payload = __tnFieldValue_tag;\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 case 4: break;\n case 5: break;\n case 6: break;\n case 7: 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: TokenInstruction.Params; derived: Record<string, bigint> | null } | null {\n if (buffer.length < 1) {\n return null;\n }\n const __tnParam_payload_tag = __tnToBigInt(view.getUint8(0));\n const __tnLayout = TokenInstruction.__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 = TokenInstruction.Params.fromValues({\n payload_payload_size: __tnParamSeq_payload_payload_size as bigint,\n payload_tag: __tnParam_payload_tag,\n });\n return { params: __tnExtractedParams, derived: null };\n }\n\n get_tag(): number {\n const offset = 0;\n return this.view.getUint8(offset);\n }\n\n set_tag(value: number): void {\n const offset = 0;\n this.view.setUint8(offset, value);\n }\n\n get tag(): number {\n return this.get_tag();\n }\n\n set tag(value: number) {\n this.set_tag(value);\n }\n\n payloadVariant(): typeof TokenInstruction.payloadVariantDescriptors[number] | null {\n const tag = this.view.getUint8(0);\n return TokenInstruction.payloadVariantDescriptors.find((variant) => variant.tag === tag) ?? null;\n }\n\n payload(): TokenInstruction_payload_Inner {\n const descriptor = this.payloadVariant();\n if (!descriptor) throw new Error(\"TokenInstruction: unknown payload variant\");\n const offset = TokenInstruction.__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(\"TokenInstruction: payload exceeds buffer bounds\");\n const slice = this.buffer.subarray(offset, offset + payloadLength);\n return TokenInstruction_payload_Inner.__tnCreate(slice, descriptor, undefined);\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TokenInstruction.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_TokenInstruction, 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_payload_size: number | bigint, payload_tag: number | bigint): bigint {\n const params = TokenInstruction.Params.fromValues({\n payload_payload_size: payload_payload_size,\n payload_tag: payload_tag,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: TokenInstruction.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"payload.payload_size\"] = params.payload_payload_size;\n record[\"payload.tag\"] = params.payload_tag;\n return record;\n }\n\n static footprintIrFromParams(params: TokenInstruction.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: TokenInstruction.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 TokenInstruction');\n return __tnBigIntToNumber(irResult, 'TokenInstruction::footprintFromParams');\n }\n\n static footprintFromValues(input: { payload_payload_size: number | bigint, payload_tag: number | bigint }): number {\n const params = TokenInstruction.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: TokenInstruction.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: TokenInstruction.Params }): { ok: boolean; code?: string; consumed?: number; params?: TokenInstruction.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, 'TokenInstruction::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'TokenInstruction::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: TokenInstruction.Params }): TokenInstruction | 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 TokenInstruction(buffer, cached);\n return state;\n }\n\n\n}\n\nexport namespace TokenInstruction {\n export type Params = {\n /** ABI path: payload.payload_size */\n readonly payload_payload_size: bigint;\n /** ABI path: payload.tag */\n readonly payload_tag: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n payload_payload_size: \"payload.payload_size\",\n payload_tag: \"payload.tag\",\n } as const);\n\n export const Params = {\n fromValues(input: { payload_payload_size: number | bigint, payload_tag: number | bigint }): Params {\n return {\n payload_payload_size: __tnToBigInt(input.payload_payload_size),\n payload_tag: __tnToBigInt(input.payload_tag),\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_payload_size: number | bigint, payload_tag: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\n__tnRegisterFootprint(\"TokenInstruction\", (params) => TokenInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TokenInstruction\", (buffer, params) => TokenInstruction.__tnInvokeValidate(buffer, params));\n\nexport class TokenInstructionBuilder {\n private __tnPrefixBuffer: Uint8Array;\n private __tnPrefixView: DataView;\n private __tnField_tag: number | null = null;\n private __tnPayload_payload: { descriptor: typeof TokenInstruction.payloadVariantDescriptors[number]; bytes: Uint8Array } | null = null;\n private __tnCachedParams: TokenInstruction.Params | null = null;\n private __tnLastBuffer: Uint8Array | null = null;\n private __tnLastParams: TokenInstruction.Params | null = null;\n private __tnVariantSelector_payload?: __TnVariantSelectorResult<TokenInstructionBuilder>;\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_tag(value: number): void {\n this.__tnField_tag = value & 0xff;\n this.__tnInvalidate();\n }\n\n set_tag(value: number): this {\n this.__tnAssign_tag(value);\n return this;\n }\n\n payload(): __TnVariantSelectorResult<TokenInstructionBuilder> {\n if (!this.__tnVariantSelector_payload) {\n this.__tnVariantSelector_payload = __tnCreateVariantSelector(this, TokenInstruction.payloadVariantDescriptors, (descriptor, payload) => {\n this.__tnPayload_payload = { descriptor, bytes: new Uint8Array(payload) };\n this.__tnAssign_tag(descriptor.tag);\n });\n }\n return this.__tnVariantSelector_payload!;\n }\n\n build(): Uint8Array {\n const params = this.__tnComputeParams();\n if (this.__tnField_tag === null) throw new Error(\"TokenInstructionBuilder: field 'tag' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenInstructionBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 1 + payloadLength;\n const footprintSize = TokenInstruction.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_tag === null) throw new Error(\"TokenInstructionBuilder: field 'tag' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenInstructionBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 1 + payloadLength;\n const footprintSize = TokenInstruction.footprintFromParams(params);\n const size = Math.max(requiredSize, footprintSize);\n if (target.length - offset < size) throw new Error(\"TokenInstructionBuilder: 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(): TokenInstruction {\n const buffer = this.build();\n const params = this.__tnLastParams ?? this.__tnComputeParams();\n const view = TokenInstruction.from_array(buffer, { params });\n if (!view) throw new Error(\"TokenInstructionBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): TokenInstruction {\n return this.finish();\n }\n\n dynamicParams(): TokenInstruction.Params {\n return this.__tnComputeParams();\n }\n\n private __tnComputeParams(): TokenInstruction.Params {\n if (this.__tnCachedParams) return this.__tnCachedParams;\n const params = TokenInstruction.Params.fromValues({\n payload_payload_size: (() => { if (!this.__tnPayload_payload) throw new Error(\"TokenInstructionBuilder: payload 'payload' must be selected before build\"); return __tnToBigInt(this.__tnPayload_payload.bytes.length); })(),\n payload_tag: (() => { if (this.__tnField_tag === null) throw new Error(\"TokenInstructionBuilder: missing enum tag\"); return __tnToBigInt(this.__tnField_tag); })(),\n });\n this.__tnCachedParams = params;\n return params;\n }\n\n private __tnWriteInto(target: Uint8Array): void {\n if (this.__tnField_tag === null) throw new Error(\"TokenInstructionBuilder: field 'tag' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenInstructionBuilder: 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_tag);\n target.set(this.__tnPayload_payload.bytes, 1);\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array, params: TokenInstruction.Params): void {\n const result = TokenInstruction.validate(buffer, { params });\n if (!result.ok) {\n throw new Error(`${ TokenInstruction }Builder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n this.__tnLastParams = result.params ?? params;\n this.__tnLastBuffer = buffer;\n }\n}\n","import {\n TokenInstruction,\n TokenInstructionBuilder,\n} from '../abi/thru/program/token/types';\n\nimport type { AccountLookupContext } from '../types';\n\nexport type { AccountLookupContext };\n\ntype TokenInstructionVariantName =\n (typeof TokenInstruction.payloadVariantDescriptors)[number]['name'];\n\nexport function buildTokenInstructionBytes(\n variant: TokenInstructionVariantName,\n payload: Uint8Array\n): Uint8Array {\n const builder = new TokenInstructionBuilder();\n builder.payload().select(variant).writePayload(payload).finish();\n return builder.build();\n}\n","import {\n InitializeMintInstructionBuilder,\n TickerFieldBuilder,\n} from '../abi/thru/program/token/types';\nimport { TICKER_MAX_LENGTH, ZERO_PUBKEY } from '../constants';\nimport type { AccountLookupContext, InitializeMintArgs, InstructionData } from '../types';\nimport { buildTokenInstructionBytes } from './shared';\n\nconst TEXT_ENCODER = new TextEncoder();\n\nexport function hexToBytes(hex: string): Uint8Array {\n const normalized = hex.startsWith('0x') ? hex.slice(2) : hex;\n if (normalized.length % 2 !== 0) {\n throw new Error('Hex string must have even number of characters');\n }\n const bytes = new Uint8Array(normalized.length / 2);\n for (let i = 0; i < normalized.length; i += 2) {\n bytes[i / 2] = parseInt(normalized.substring(i, i + 2), 16);\n }\n return bytes;\n}\n\nexport function createInitializeMintInstruction({\n mintAccountBytes,\n decimals,\n mintAuthorityBytes,\n freezeAuthorityBytes,\n ticker,\n seedHex,\n stateProof,\n creatorBytes,\n}: InitializeMintArgs): InstructionData {\n const hasFreezeAuthority = freezeAuthorityBytes ? 1 : 0;\n const seedBytes = hexToBytes(seedHex);\n if (seedBytes.length !== 32) {\n throw new Error('Seed must be 32 bytes (64 hex characters)');\n }\n const tickerFieldBytes = buildTickerFieldBytes(ticker);\n const creator = creatorBytes ?? mintAuthorityBytes;\n\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n const mintAccountIndex = context.getAccountIndex(mintAccountBytes);\n const mintAuthority = mintAuthorityBytes;\n const freezeAuthority = freezeAuthorityBytes ?? ZERO_PUBKEY;\n\n const payload = new InitializeMintInstructionBuilder()\n .set_mint_account_index(mintAccountIndex)\n .set_decimals(decimals)\n .set_creator(creator)\n .set_mint_authority(mintAuthority)\n .set_freeze_authority(freezeAuthority)\n .set_has_freeze_authority(hasFreezeAuthority)\n .set_ticker(tickerFieldBytes)\n .set_seed(seedBytes)\n .set_state_proof(stateProof)\n .build();\n\n return buildTokenInstructionBytes('initialize_mint', payload);\n };\n}\n\nfunction buildTickerFieldBytes(ticker: string): Uint8Array {\n const normalized = ticker.trim().toUpperCase();\n const tickerBytes = TEXT_ENCODER.encode(normalized);\n if (tickerBytes.length > TICKER_MAX_LENGTH) {\n throw new Error('Ticker must be 8 characters or less');\n }\n\n const padded = new Uint8Array(TICKER_MAX_LENGTH);\n padded.set(tickerBytes);\n\n return new TickerFieldBuilder()\n .set_length(tickerBytes.length)\n .set_bytes(Array.from(padded))\n .build();\n}\n","import { InitializeAccountInstructionBuilder } from '../abi/thru/program/token/types';\nimport type { AccountLookupContext, InitializeAccountArgs, InstructionData } from '../types';\nimport { buildTokenInstructionBytes } from './shared';\n\nexport function createInitializeAccountInstruction(\n args: InitializeAccountArgs\n): InstructionData {\n if (args.seedBytes.length !== 32) {\n throw new Error('Token account seed must be 32 bytes');\n }\n\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n const tokenAccountIndex = context.getAccountIndex(args.tokenAccountBytes);\n const mintAccountIndex = context.getAccountIndex(args.mintAccountBytes);\n const ownerAccountIndex = context.getAccountIndex(args.ownerAccountBytes);\n\n const payload = new InitializeAccountInstructionBuilder()\n .set_token_account_index(tokenAccountIndex)\n .set_mint_account_index(mintAccountIndex)\n .set_owner_account_index(ownerAccountIndex)\n .set_new_account_seed(args.seedBytes)\n .set_state_proof(args.stateProof)\n .build();\n\n return buildTokenInstructionBytes('initialize_account', payload);\n };\n}\n","import { MintToInstructionBuilder } from '../abi/thru/program/token/types';\nimport type { AccountLookupContext, MintToArgs, InstructionData } from '../types';\nimport { buildTokenInstructionBytes } from './shared';\n\ntype MintToInstructionBuilderWithBigInt = MintToInstructionBuilder & {\n set_amount(value: number | bigint): MintToInstructionBuilder;\n};\n\nexport function createMintToInstruction(args: MintToArgs): InstructionData {\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n const mintAccountIndex = context.getAccountIndex(args.mintAccountBytes);\n const destinationIndex = context.getAccountIndex(args.destinationAccountBytes);\n const authorityIndex = context.getAccountIndex(args.authorityAccountBytes);\n\n const payloadBuilder = new MintToInstructionBuilder()\n .set_mint_account_index(mintAccountIndex)\n .set_dest_account_index(destinationIndex)\n .set_authority_account_index(authorityIndex);\n\n (payloadBuilder as MintToInstructionBuilderWithBigInt).set_amount(args.amount);\n\n const payload = payloadBuilder.build();\n\n return buildTokenInstructionBytes('mint_to', payload);\n };\n}\n","import { TransferInstruction, TransferInstructionBuilder } from '../abi/thru/program/token/types';\nimport type { AccountLookupContext, TransferArgs, InstructionData } from '../types';\nimport { buildTokenInstructionBytes } from './shared';\n\ntype TransferInstructionBuilderWithBigInt = TransferInstructionBuilder & {\n set_amount(value: number | bigint): TransferInstructionBuilder;\n};\n\nexport function createTransferInstruction(args: TransferArgs): InstructionData {\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n const sourceIndex = context.getAccountIndex(args.sourceAccountBytes);\n const destinationIndex = context.getAccountIndex(args.destinationAccountBytes);\n\n const payloadBuilder = TransferInstruction.builder()\n .set_source_account_index(sourceIndex)\n .set_dest_account_index(destinationIndex);\n\n (payloadBuilder as TransferInstructionBuilderWithBigInt).set_amount(args.amount);\n\n const payload = payloadBuilder.build();\n\n return buildTokenInstructionBytes('transfer', payload);\n };\n}\n","import { deriveAddress, deriveProgramAddress, Pubkey } from '@thru/thru-sdk';\nimport { PUBKEY_LENGTH } from './constants';\n\nconst TOKEN_ACCOUNT_DEFAULT_SEED = new Uint8Array(PUBKEY_LENGTH);\n\nexport function deriveMintAddress(\n mintAuthorityAddress: string,\n seed: string,\n tokenProgramAddress: string\n): { address: string; bytes: Uint8Array; derivedSeed: Uint8Array } {\n const mintAuthorityBytes = Pubkey.from(mintAuthorityAddress).toBytes();\n const seedBytes = hexToBytes(seed);\n if (seedBytes.length !== 32) throw new Error('Seed must be 32 bytes (64 hex characters)');\n\n const { bytes: derivedSeed } = deriveAddress([mintAuthorityBytes, seedBytes]);\n\n const result = deriveProgramAddress({\n programAddress: tokenProgramAddress,\n seed: derivedSeed,\n ephemeral: false,\n });\n\n return {\n address: result.address,\n bytes: result.bytes,\n derivedSeed,\n };\n}\n\nexport function deriveTokenAccountAddress(\n ownerAddress: string,\n mintAddress: string,\n tokenProgramAddress: string,\n seed: Uint8Array = TOKEN_ACCOUNT_DEFAULT_SEED\n): { address: string; bytes: Uint8Array; derivedSeed: Uint8Array } {\n if (seed.length !== PUBKEY_LENGTH) throw new Error('Token account seed must be 32 bytes');\n\n const ownerBytes = Pubkey.from(ownerAddress).toBytes();\n const mintBytes = Pubkey.from(mintAddress).toBytes();\n\n const { bytes: derivedSeed } = deriveAddress([ownerBytes, mintBytes, seed]);\n\n const result = deriveProgramAddress({\n programAddress: tokenProgramAddress,\n seed: derivedSeed,\n ephemeral: false,\n });\n\n return {\n address: result.address,\n bytes: result.bytes,\n derivedSeed,\n };\n}\n\nexport function deriveWalletSeed(\n walletAddress: string,\n extraSeeds: Uint8Array[] = []\n): Uint8Array {\n const walletBytes = Pubkey.from(walletAddress).toBytes();\n return deriveAddress([walletBytes, ...extraSeeds]).bytes;\n}\n\nfunction hexToBytes(hex: string): Uint8Array {\n const normalized = hex.startsWith('0x') ? hex.slice(2) : hex;\n if (normalized.length % 2 !== 0) {\n throw new Error('Hex string must have even number of characters');\n }\n const bytes = new Uint8Array(normalized.length / 2);\n for (let i = 0; i < normalized.length; i += 2) {\n bytes[i / 2] = parseInt(normalized.substring(i, i + 2), 16);\n }\n return bytes;\n}\n","import { encodeAddress } from '@thru/helpers';\nimport type { Account } from '@thru/thru-sdk';\nimport { Pubkey as AbiPubkey } from './abi/thru/common/primitives/types';\nimport {\n TickerField,\n TokenAccount,\n TokenMintAccount,\n} from './abi/thru/program/token/types';\nimport type { MintAccountInfo, TokenAccountInfo } from './types';\n\nconst TEXT_DECODER = new TextDecoder();\n\nexport function parseMintAccountData(account: Account): MintAccountInfo {\n const data = account.data?.data;\n if (!data) {\n throw new Error('Mint account data is missing');\n }\n\n const parsed = TokenMintAccount.from_array(data);\n if (!parsed) {\n throw new Error('Mint account data is malformed');\n }\n\n const hasFreezeAuthority = parsed.get_has_freeze_authority() === 1;\n const freezeAuthority = hasFreezeAuthority\n ? encodeAddress(pubkeyToBytes(parsed.get_freeze_authority()))\n : null;\n\n return {\n decimals: parsed.get_decimals(),\n supply: parsed.get_supply(),\n creator: encodeAddress(pubkeyToBytes(parsed.get_creator())),\n mintAuthority: encodeAddress(pubkeyToBytes(parsed.get_mint_authority())),\n freezeAuthority,\n hasFreezeAuthority,\n ticker: decodeTicker(parsed.get_ticker()),\n };\n}\n\nexport function parseTokenAccountData(account: Account): TokenAccountInfo {\n const data = account.data?.data;\n if (!data) {\n throw new Error('Token account data is missing');\n }\n\n const parsed = TokenAccount.from_array(data);\n if (!parsed) {\n throw new Error('Token account data is malformed');\n }\n\n return {\n mint: encodeAddress(pubkeyToBytes(parsed.get_mint())),\n owner: encodeAddress(pubkeyToBytes(parsed.get_owner())),\n amount: parsed.get_amount(),\n isFrozen: parsed.get_is_frozen() === 1,\n };\n}\n\nexport function isAccountNotFoundError(err: unknown): boolean {\n if (!err) return false;\n return (err as { code?: number }).code === 5;\n}\n\nfunction pubkeyToBytes(pubkey: AbiPubkey): Uint8Array {\n return Uint8Array.from(pubkey.bytes);\n}\n\nfunction decodeTicker(field: TickerField): string {\n const length = field.get_length();\n const bytes = Uint8Array.from(field.get_bytes()).slice(0, length);\n return TEXT_DECODER.decode(bytes).replace(/\\0+$/, '');\n}\n","export function formatRawAmount(amount: bigint, decimals: number): string {\n if (decimals === 0) return amount.toString();\n const scale = BigInt(10) ** BigInt(decimals);\n const whole = amount / scale;\n const fraction = amount % scale;\n const fractionStr = fraction.toString().padStart(decimals, '0').replace(/0+$/, '');\n return fractionStr ? `${whole.toString()}.${fractionStr}` : whole.toString();\n}\n\nexport function bytesToHex(bytes: Uint8Array): string {\n return Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n const normalized = hex.startsWith('0x') ? hex.slice(2) : hex;\n if (normalized.length % 2 !== 0) {\n throw new Error('Hex string must have even number of characters');\n }\n const bytes = new Uint8Array(normalized.length / 2);\n for (let i = 0; i < normalized.length; i += 2) {\n bytes[i / 2] = parseInt(normalized.substring(i, i + 2), 16);\n }\n return bytes;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts","../src/abi/thru/common/primitives/types.ts","../src/abi/thru/blockchain/state_proof/types.ts","../src/abi/thru/program/token/types.ts","../src/instructions/shared.ts","../src/instructions/initialize-mint.ts","../src/instructions/initialize-account.ts","../src/instructions/mint-to.ts","../src/instructions/transfer.ts","../src/derivation.ts","../src/accounts.ts","../src/format.ts"],"names":["remainder","low","high","__tnWarnings","__tnHasNativeBigInt","__tnHasBigIntDataView","__tnConsole","__tnLogWarn","__tnWarnOnce","__tnMask32","__tnSignBit32","__tnToBigInt","__tnBigIntToNumber","__tnBigIntEquals","__tnBigIntGreaterThan","__tnRaiseIrError","__tnCheckedAdd","__tnCheckedMul","__tnAlign","__tnSplitUint64","__tnSplitInt64","__tnPolyfillReadUint64","__tnPolyfillReadInt64","__tnPolyfillWriteUint64","__tnPolyfillWriteInt64","__tnFootprintRegistry","__tnValidateRegistry","__tnRegisterFootprint","__tnRegisterValidate","__tnInvokeFootprint","__tnInvokeValidate","__tnEvalFootprint","__tnEvalIrNode","__tnTryEvalIr","__tnNormalizeIrError","__tnIsEvalError","__tnValidateIrTree","StateProof","__tnResolveBuilderInput","__tnCreateVariantSelector","TokenProgramAccount","TokenEvent","TokenInstruction","Pubkey","hexToBytes"],"mappings":"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","file":"index.js","sourcesContent":["export const PUBKEY_LENGTH = 32;\nexport const TICKER_MAX_LENGTH = 8;\nexport const ZERO_PUBKEY = new Uint8Array(PUBKEY_LENGTH);\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\ntype __TnIrContext = {\n params: Record<string, bigint>;\n buffer?: Uint8Array;\n typeName?: string;\n};\n\ntype __TnValidateResult = { ok: boolean; code?: string; consumed?: bigint };\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> = {};\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 __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 __tnEvalFootprint(node: __TnIrNode, ctx: __TnIrContext): bigint {\n return __tnEvalIrNode(node, ctx);\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) };\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(node: __TnIrNode, ctx: __TnIrContext): 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 return __tnCheckedAdd(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"mul\":\n return __tnCheckedMul(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"align\":\n return __tnAlign(__tnEvalIrNode(node.node, ctx), 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);\n }\n }\n if (node.default) return __tnEvalIrNode(node.default, ctx);\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 nestedResult = __tnInvokeValidate(\n node.typeName,\n ctx.buffer,\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 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 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\n__tnRegisterFootprint(\"Hash\", (params) => Hash.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Hash\", (buffer, params) => Hash.__tnInvokeValidate(buffer, params));\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/* ----- 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\n__tnRegisterFootprint(\"Pubkey\", (params) => Pubkey.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Pubkey\", (buffer, params) => Pubkey.__tnInvokeValidate(buffer, params));\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/* ----- 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\n__tnRegisterFootprint(\"Signature\", (params) => Signature.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"Signature\", (buffer, params) => Signature.__tnInvokeValidate(buffer, params));\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","/* Auto-generated TypeScript code */\n/* WARNING: Do not modify this file directly. It is generated from ABI definitions. */\n\nimport { Hash, 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\ntype __TnIrContext = {\n params: Record<string, bigint>;\n buffer?: Uint8Array;\n typeName?: string;\n};\n\ntype __TnValidateResult = { ok: boolean; code?: string; consumed?: bigint };\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> = {};\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 __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 __tnEvalFootprint(node: __TnIrNode, ctx: __TnIrContext): bigint {\n return __tnEvalIrNode(node, ctx);\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) };\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(node: __TnIrNode, ctx: __TnIrContext): 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 return __tnCheckedAdd(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"mul\":\n return __tnCheckedMul(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"align\":\n return __tnAlign(__tnEvalIrNode(node.node, ctx), 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);\n }\n }\n if (node.default) return __tnEvalIrNode(node.default, ctx);\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 nestedResult = __tnInvokeValidate(\n node.typeName,\n ctx.buffer,\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 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 StateProofHeader ----- */\n\nconst __tn_ir_StateProofHeader = {\n typeName: \"StateProofHeader\",\n root: { op: \"const\", value: 40n }\n} as const;\n\nexport class StateProofHeader {\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> }): StateProofHeader {\n if (!buffer || buffer.length === undefined) throw new Error(\"StateProofHeader.__tnCreateView requires a Uint8Array\");\n return new StateProofHeader(new Uint8Array(buffer));\n }\n\n static builder(): StateProofHeaderBuilder {\n return new StateProofHeaderBuilder();\n }\n\n static fromBuilder(builder: StateProofHeaderBuilder): StateProofHeader | null {\n const buffer = builder.build();\n return StateProofHeader.from_array(buffer);\n }\n\n get_type_slot(): bigint {\n const offset = 0;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_type_slot(value: bigint): void {\n const offset = 0;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get type_slot(): bigint {\n return this.get_type_slot();\n }\n\n set type_slot(value: bigint) {\n this.set_type_slot(value);\n }\n\n get_path_bitset(): Hash {\n const offset = 8;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Hash.from_array(slice)!;\n }\n\n set_path_bitset(value: Hash): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 8;\n this.buffer.set(sourceBytes, offset);\n }\n\n get path_bitset(): Hash {\n return this.get_path_bitset();\n }\n\n set path_bitset(value: Hash) {\n this.set_path_bitset(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_StateProofHeader.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_StateProofHeader, 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 StateProofHeader');\n }\n return __tnBigIntToNumber(irResult, 'StateProofHeader::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 40) return { ok: false, code: \"tn.buffer_too_small\", consumed: 40 };\n return { ok: true, consumed: 40 };\n }\n\n static from_array(buffer: Uint8Array): StateProofHeader | 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 StateProofHeader(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"StateProofHeader\", (params) => StateProofHeader.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"StateProofHeader\", (buffer, params) => StateProofHeader.__tnInvokeValidate(buffer, params));\n\nexport class StateProofHeaderBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(40);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_type_slot(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(0, cast, true);\n return this;\n }\n\n set_path_bitset(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"path_bitset expects 32 bytes\");\n this.buffer.set(value, 8);\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(): StateProofHeader {\n const view = StateProofHeader.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build StateProofHeader\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR StateProof ----- */\n\nconst __tn_ir_StateProof = {\n typeName: \"StateProof\",\n root: { op: \"align\", alignment: 1, node: { op: \"add\", left: { op: \"align\", alignment: 1, node: { op: \"const\", value: 40n } }, right: { op: \"align\", alignment: 1, node: { op: \"field\", param: \"proof_body.payload_size\" } } } }\n} as const;\n\nexport class StateProof_proof_body_existing_Inner {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n\n private constructor(private buffer: Uint8Array, 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 __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): StateProof_proof_body_existing_Inner {\n if (!buffer || buffer.length === undefined) throw new Error(\"StateProof_proof_body_existing_Inner.__tnCreateView requires a Uint8Array\");\n return new StateProof_proof_body_existing_Inner(new Uint8Array(buffer), opts?.fieldContext);\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, \"StateProof_proof_body_existing_Inner::__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, \"StateProof_proof_body_existing_Inner::__tnResolveFieldRef\") : contextValue;\n }\n throw new Error(\"StateProof_proof_body_existing_Inner: field reference '\" + path + \"' is not available; provide fieldContext when creating this view\");\n }\n\n get_sibling_hashes_length(): number {\n return ((__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.0\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.1\"))) + (__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.2\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.3\"))));\n }\n\n get_sibling_hashes_at(index: number): Hash {\n const offset = 0;\n const slice = this.buffer.subarray((offset + index * 32), (offset + (index + 1) * 32));\n return Hash.from_array(slice)!;\n }\n\n get_sibling_hashes(): Hash[] {\n const len = this.get_sibling_hashes_length();\n const result: Hash[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_sibling_hashes_at(i));\n }\n return result;\n }\n\n set_sibling_hashes_at(index: number, value: Hash): void {\n const offset = 0;\n const slice = this.buffer.subarray(offset + index * 32, offset + (index + 1) * 32);\n slice.set(value['buffer']);\n }\n\n set_sibling_hashes(value: Hash[]): void {\n const len = Math.min(this.get_sibling_hashes_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_sibling_hashes_at(i, value[i]);\n }\n }\n\n get sibling_hashes(): Hash[] {\n return this.get_sibling_hashes();\n }\n\n set sibling_hashes(value: Hash[]) {\n this.set_sibling_hashes(value);\n }\n\n}\n\nexport class StateProof_proof_body_updating_Inner {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n\n private constructor(private buffer: Uint8Array, 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 __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): StateProof_proof_body_updating_Inner {\n if (!buffer || buffer.length === undefined) throw new Error(\"StateProof_proof_body_updating_Inner.__tnCreateView requires a Uint8Array\");\n return new StateProof_proof_body_updating_Inner(new Uint8Array(buffer), opts?.fieldContext);\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, \"StateProof_proof_body_updating_Inner::__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, \"StateProof_proof_body_updating_Inner::__tnResolveFieldRef\") : contextValue;\n }\n throw new Error(\"StateProof_proof_body_updating_Inner: field reference '\" + path + \"' is not available; provide fieldContext when creating this view\");\n }\n\n get_existing_leaf_hash(): Hash {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Hash.from_array(slice)!;\n }\n\n set_existing_leaf_hash(value: Hash): 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 existing_leaf_hash(): Hash {\n return this.get_existing_leaf_hash();\n }\n\n set existing_leaf_hash(value: Hash) {\n this.set_existing_leaf_hash(value);\n }\n\n get_sibling_hashes_length(): number {\n return ((__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.0\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.1\"))) + (__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.2\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.3\"))));\n }\n\n get_sibling_hashes_at(index: number): Hash {\n const offset = 32;\n const slice = this.buffer.subarray((offset + index * 32), (offset + (index + 1) * 32));\n return Hash.from_array(slice)!;\n }\n\n get_sibling_hashes(): Hash[] {\n const len = this.get_sibling_hashes_length();\n const result: Hash[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_sibling_hashes_at(i));\n }\n return result;\n }\n\n set_sibling_hashes_at(index: number, value: Hash): void {\n const offset = 32;\n const slice = this.buffer.subarray(offset + index * 32, offset + (index + 1) * 32);\n slice.set(value['buffer']);\n }\n\n set_sibling_hashes(value: Hash[]): void {\n const len = Math.min(this.get_sibling_hashes_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_sibling_hashes_at(i, value[i]);\n }\n }\n\n get sibling_hashes(): Hash[] {\n return this.get_sibling_hashes();\n }\n\n set sibling_hashes(value: Hash[]) {\n this.set_sibling_hashes(value);\n }\n\n}\n\nexport class StateProof_proof_body_creation_Inner {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n\n private constructor(private buffer: Uint8Array, 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 __tnCreateView(buffer: Uint8Array, opts?: { fieldContext?: Record<string, number | bigint> }): StateProof_proof_body_creation_Inner {\n if (!buffer || buffer.length === undefined) throw new Error(\"StateProof_proof_body_creation_Inner.__tnCreateView requires a Uint8Array\");\n return new StateProof_proof_body_creation_Inner(new Uint8Array(buffer), opts?.fieldContext);\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, \"StateProof_proof_body_creation_Inner::__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, \"StateProof_proof_body_creation_Inner::__tnResolveFieldRef\") : contextValue;\n }\n throw new Error(\"StateProof_proof_body_creation_Inner: field reference '\" + path + \"' is not available; provide fieldContext when creating this view\");\n }\n\n get_existing_leaf_pubkey(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_existing_leaf_pubkey(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 existing_leaf_pubkey(): Pubkey {\n return this.get_existing_leaf_pubkey();\n }\n\n set existing_leaf_pubkey(value: Pubkey) {\n this.set_existing_leaf_pubkey(value);\n }\n\n get_existing_leaf_hash(): Hash {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Hash.from_array(slice)!;\n }\n\n set_existing_leaf_hash(value: Hash): 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 existing_leaf_hash(): Hash {\n return this.get_existing_leaf_hash();\n }\n\n set existing_leaf_hash(value: Hash) {\n this.set_existing_leaf_hash(value);\n }\n\n get_sibling_hashes_length(): number {\n return ((__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.0\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.1\"))) + (__tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.2\")) + __tnPopcount(this.__tnResolveFieldRef(\"hdr.path_bitset.bytes.3\"))));\n }\n\n get_sibling_hashes_at(index: number): Hash {\n const offset = 64;\n const slice = this.buffer.subarray((offset + index * 32), (offset + (index + 1) * 32));\n return Hash.from_array(slice)!;\n }\n\n get_sibling_hashes(): Hash[] {\n const len = this.get_sibling_hashes_length();\n const result: Hash[] = [];\n for (let i = 0; i < len; i++) {\n result.push(this.get_sibling_hashes_at(i));\n }\n return result;\n }\n\n set_sibling_hashes_at(index: number, value: Hash): void {\n const offset = 64;\n const slice = this.buffer.subarray(offset + index * 32, offset + (index + 1) * 32);\n slice.set(value['buffer']);\n }\n\n set_sibling_hashes(value: Hash[]): void {\n const len = Math.min(this.get_sibling_hashes_length(), value.length);\n for (let i = 0; i < len; i++) {\n this.set_sibling_hashes_at(i, value[i]);\n }\n }\n\n get sibling_hashes(): Hash[] {\n return this.get_sibling_hashes();\n }\n\n set sibling_hashes(value: Hash[]) {\n this.set_sibling_hashes(value);\n }\n\n}\n\nexport class StateProof_proof_body_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>): StateProof_proof_body_Inner {\n return new StateProof_proof_body_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 asExisting(): StateProof_proof_body_existing_Inner | null {\n if (!this.descriptor || this.descriptor.tag !== 0) return null;\n return StateProof_proof_body_existing_Inner.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asUpdating(): StateProof_proof_body_updating_Inner | null {\n if (!this.descriptor || this.descriptor.tag !== 1) return null;\n return StateProof_proof_body_updating_Inner.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asCreation(): StateProof_proof_body_creation_Inner | null {\n if (!this.descriptor || this.descriptor.tag !== 2) return null;\n return StateProof_proof_body_creation_Inner.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n}\n\nexport class StateProof {\n private view: DataView;\n private __tnFieldContext: Record<string, number | bigint> | null = null;\n private static readonly __tnFieldOffset_proof_body = 40;\n private __tnParams: StateProof.Params;\n private __tnDerivedParams: Record<string, bigint> | null = null;\n\n private constructor(private buffer: Uint8Array, params?: StateProof.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 = StateProof.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"StateProof: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n this.__tnDerivedParams = derived.derived;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: StateProof.Params, fieldContext?: Record<string, number | bigint> }): StateProof {\n if (!buffer || buffer.length === undefined) throw new Error(\"StateProof.__tnCreateView requires a Uint8Array\");\n let params = opts?.params ?? null;\n let derivedRecord: Record<string, bigint> | null = null;\n if (!params) {\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const derived = StateProof.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"StateProof.__tnCreateView: failed to derive params\");\n params = derived.params;\n derivedRecord = derived.derived;\n }\n const instance = new StateProof(new Uint8Array(buffer), params, opts?.fieldContext);\n if (derivedRecord) instance.__tnDerivedParams = derivedRecord;\n return instance;\n }\n\n dynamicParams(): StateProof.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, \"StateProof::__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, \"StateProof::__tnResolveFieldRef\") : contextValue;\n }\n throw new Error(\"StateProof: field reference '\" + path + \"' is not available; provide fieldContext when creating this view\");\n }\n\n static builder(): StateProofBuilder {\n return new StateProofBuilder();\n }\n\n static fromBuilder(builder: StateProofBuilder): StateProof | null {\n const buffer = builder.build();\n const params = builder.dynamicParams();\n return StateProof.from_array(buffer, { params });\n }\n\n static readonly proof_bodyVariantDescriptors = Object.freeze([\n {\n name: \"existing\",\n tag: 0,\n payloadSize: null,\n payloadType: \"StateProof::proof_body::existing\",\n createPayloadBuilder: () => null,\n },\n {\n name: \"updating\",\n tag: 1,\n payloadSize: null,\n payloadType: \"StateProof::proof_body::updating\",\n createPayloadBuilder: () => null,\n },\n {\n name: \"creation\",\n tag: 2,\n payloadSize: null,\n payloadType: \"StateProof::proof_body::creation\",\n createPayloadBuilder: () => null,\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 derived: Record<string, bigint> = Object.create(null);\n const __tnLength = buffer.length;\n let __tnParamSeq_proof_body_payload_size: bigint | null = null;\n let __tnCursorMutable = 0;\n if (__tnLength < 8) return null;\n const __tnRef_hdr_type_slot = view.getBigUint64(0, true);\n if (__tnCursorMutable + 40 > __tnLength) return null;\n __tnCursorMutable += 40;\n const __tnEnumTagValue_proof_body = Math.trunc(Number(((__tnRef_hdr_type_slot >> 62n) & 3n)));\n if (!Number.isFinite(__tnEnumTagValue_proof_body)) return null;\n let __tnEnumSize_proof_body = 0;\n switch (Number(__tnEnumTagValue_proof_body)) {\n case 0: break;\n case 1: break;\n case 2: break;\n default: return null;\n }\n if (__tnCursorMutable > __tnLength) return null;\n __tnEnumSize_proof_body = __tnLength - __tnCursorMutable;\n __tnCursorMutable = __tnLength;\n derived[\"StateProof__proof_body_computed_tag\"] = __tnToBigInt(__tnEnumTagValue_proof_body);\n __tnParamSeq_proof_body_payload_size = __tnToBigInt(__tnEnumSize_proof_body);\n const params: Record<string, bigint> = Object.create(null);\n if (__tnParamSeq_proof_body_payload_size === null) return null;\n params[\"proof_body_payload_size\"] = __tnParamSeq_proof_body_payload_size as bigint;\n return { params, offsets: null, derived: derived };\n }\n\n private static __tnExtractParams(view: DataView, buffer: Uint8Array): { params: StateProof.Params; derived: Record<string, bigint> | null } | null {\n if (buffer.length < 8) {\n return null;\n }\n const __tnParam_proof_body_hdr_type_slot = __tnToBigInt(view.getBigUint64(0, true));\n const __tnLayout = StateProof.__tnComputeSequentialLayout(view, buffer);\n if (!__tnLayout || !__tnLayout.params) return null;\n const __tnSeqParams = __tnLayout.params;\n const __tnParamSeq_proof_body_payload_size = __tnSeqParams[\"proof_body_payload_size\"];\n if (__tnParamSeq_proof_body_payload_size === undefined) return null;\n const __tnExtractedParams = StateProof.Params.fromValues({\n proof_body_hdr_type_slot: __tnParam_proof_body_hdr_type_slot,\n proof_body_payload_size: __tnParamSeq_proof_body_payload_size as bigint,\n });\n return { params: __tnExtractedParams, derived: (__tnLayout && __tnLayout.derived ? __tnLayout.derived : null) };\n }\n\n private __tnEnsureDerivedParams(): Record<string, bigint> | null {\n if (this.__tnDerivedParams) return this.__tnDerivedParams;\n const layout = StateProof.__tnComputeSequentialLayout(this.view, this.buffer);\n if (!layout || !layout.derived) return null;\n this.__tnDerivedParams = layout.derived;\n return this.__tnDerivedParams;\n }\n\n private __tnReadDerivedParam(key: string): number | null {\n const params = this.__tnEnsureDerivedParams();\n if (!params) return null;\n const value = params[key];\n if (value === undefined) return null;\n return __tnBigIntToNumber(value, \"StateProof::__tnReadDerivedParam\");\n }\n\n get_hdr(): StateProofHeader {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 40);\n return StateProofHeader.from_array(slice)!;\n }\n\n set_hdr(value: StateProofHeader): 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 hdr(): StateProofHeader {\n return this.get_hdr();\n }\n\n set hdr(value: StateProofHeader) {\n this.set_hdr(value);\n }\n\n get_proof_body_computed_tag(): number {\n let tag = this.__tnReadDerivedParam(\"StateProof__proof_body_computed_tag\");\n if (tag === null) {\n tag = (((this.__tnResolveFieldRef(\"hdr.type_slot\") >> 62) & 3));\n }\n return tag;\n }\n\n proofBodyVariant(): typeof StateProof.proof_bodyVariantDescriptors[number] | null {\n const tag = this.get_proof_body_computed_tag();\n return StateProof.proof_bodyVariantDescriptors.find((variant) => variant.tag === tag) ?? null;\n }\n\n proof_body(): StateProof_proof_body_Inner {\n const descriptor = this.proofBodyVariant();\n if (!descriptor) throw new Error(\"StateProof: unknown proof_body variant\");\n const offset = StateProof.__tnFieldOffset_proof_body;\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(\"StateProof: payload exceeds buffer bounds\");\n const slice = this.buffer.subarray(offset, offset + payloadLength);\n const __tnAutoContext: Record<string, number | bigint> = {\n \"hdr.path_bitset.bytes.0\": this.view.getUint8(8),\n \"hdr.path_bitset.bytes.1\": this.view.getUint8(9),\n \"hdr.path_bitset.bytes.2\": this.view.getUint8(10),\n \"hdr.path_bitset.bytes.3\": this.view.getUint8(11),\n };\n const __tnMergedContext = this.__tnFieldContext ? { ...__tnAutoContext, ...this.__tnFieldContext } : __tnAutoContext;\n return StateProof_proof_body_Inner.__tnCreate(slice, descriptor, __tnMergedContext);\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_StateProof.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_StateProof, 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(proof_body_hdr_type_slot: number | bigint, proof_body_payload_size: number | bigint): bigint {\n const params = StateProof.Params.fromValues({\n proof_body_hdr_type_slot: proof_body_hdr_type_slot,\n proof_body_payload_size: proof_body_payload_size,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: StateProof.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"proof_body.hdr.type_slot\"] = params.proof_body_hdr_type_slot;\n record[\"proof_body.payload_size\"] = params.proof_body_payload_size;\n return record;\n }\n\n static footprintIrFromParams(params: StateProof.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: StateProof.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 StateProof');\n return __tnBigIntToNumber(irResult, 'StateProof::footprintFromParams');\n }\n\n static footprintFromValues(input: { proof_body_hdr_type_slot: number | bigint, proof_body_payload_size: number | bigint }): number {\n const params = StateProof.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: StateProof.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: StateProof.Params }): { ok: boolean; code?: string; consumed?: number; params?: StateProof.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, 'StateProof::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'StateProof::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: StateProof.Params }): StateProof | 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 let derivedRecord: Record<string, bigint> | null = null;\n if (!params) {\n const derived = this.__tnExtractParams(view, buffer);\n if (!derived) return null;\n params = derived.params;\n derivedRecord = derived.derived;\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 StateProof(buffer, cached);\n if (derivedRecord) state.__tnDerivedParams = derivedRecord;\n return state;\n }\n\n\n}\n\nexport namespace StateProof {\n export type Params = {\n /** ABI path: proof_body.hdr.type_slot */\n readonly proof_body_hdr_type_slot: bigint;\n /** ABI path: proof_body.payload_size */\n readonly proof_body_payload_size: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n proof_body_hdr_type_slot: \"proof_body.hdr.type_slot\",\n proof_body_payload_size: \"proof_body.payload_size\",\n } as const);\n\n export const Params = {\n fromValues(input: { proof_body_hdr_type_slot: number | bigint, proof_body_payload_size: number | bigint }): Params {\n return {\n proof_body_hdr_type_slot: __tnToBigInt(input.proof_body_hdr_type_slot),\n proof_body_payload_size: __tnToBigInt(input.proof_body_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: { proof_body_hdr_type_slot: number | bigint, proof_body_payload_size: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\n__tnRegisterFootprint(\"StateProof\", (params) => StateProof.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"StateProof\", (buffer, params) => StateProof.__tnInvokeValidate(buffer, params));\n\nexport class StateProofBuilder {\n private __tnPrefixBuffer: Uint8Array;\n private __tnPrefixView: DataView;\n private __tnPayload_proof_body: { descriptor: typeof StateProof.proof_bodyVariantDescriptors[number]; bytes: Uint8Array } | null = null;\n private __tnCachedParams: StateProof.Params | null = null;\n private __tnLastBuffer: Uint8Array | null = null;\n private __tnLastParams: StateProof.Params | null = null;\n private __tnVariantSelector_proof_body?: __TnVariantSelectorResult<StateProofBuilder>;\n\n constructor() {\n this.__tnPrefixBuffer = new Uint8Array(40);\n this.__tnPrefixView = new DataView(this.__tnPrefixBuffer.buffer, this.__tnPrefixBuffer.byteOffset, this.__tnPrefixBuffer.byteLength);\n }\n\n set_hdr(value: Uint8Array): this {\n if (value.length !== 40) throw new Error(\"hdr expects 40 bytes\");\n this.__tnPrefixBuffer.set(value, 0);\n this.__tnInvalidate();\n return this;\n }\n\n private __tnInvalidate(): void {\n this.__tnCachedParams = null;\n this.__tnLastBuffer = null;\n this.__tnLastParams = null;\n }\n\n proof_body(): __TnVariantSelectorResult<StateProofBuilder> {\n if (!this.__tnVariantSelector_proof_body) {\n this.__tnVariantSelector_proof_body = __tnCreateVariantSelector(this, StateProof.proof_bodyVariantDescriptors, (descriptor, payload) => {\n this.__tnPayload_proof_body = { descriptor, bytes: new Uint8Array(payload) };\n this.__tnInvalidate();\n });\n }\n return this.__tnVariantSelector_proof_body!;\n }\n\n build(): Uint8Array {\n const params = this.__tnComputeParams();\n if (!this.__tnPayload_proof_body) throw new Error(\"StateProofBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_proof_body.bytes.length;\n const requiredSize = 40 + payloadLength;\n const footprintSize = StateProof.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.__tnPayload_proof_body) throw new Error(\"StateProofBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_proof_body.bytes.length;\n const requiredSize = 40 + payloadLength;\n const footprintSize = StateProof.footprintFromParams(params);\n const size = Math.max(requiredSize, footprintSize);\n if (target.length - offset < size) throw new Error(\"StateProofBuilder: 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(): StateProof {\n const buffer = this.build();\n const params = this.__tnLastParams ?? this.__tnComputeParams();\n const view = StateProof.from_array(buffer, { params });\n if (!view) throw new Error(\"StateProofBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): StateProof {\n return this.finish();\n }\n\n dynamicParams(): StateProof.Params {\n return this.__tnComputeParams();\n }\n\n private __tnComputeParams(): StateProof.Params {\n if (this.__tnCachedParams) return this.__tnCachedParams;\n const params = StateProof.Params.fromValues({\n proof_body_hdr_type_slot: (() => { const slice = this.__tnPrefixBuffer.subarray(0, 40); const header = StateProofHeader.from_array(slice); if (!header) throw new Error(\"StateProofBuilder: field 'hdr' must be set before build\"); return __tnToBigInt(header.get_type_slot()); })(),\n proof_body_payload_size: (() => { if (!this.__tnPayload_proof_body) throw new Error(\"StateProofBuilder: payload 'proof_body' must be selected before build\"); return __tnToBigInt(this.__tnPayload_proof_body.bytes.length); })(),\n });\n this.__tnCachedParams = params;\n return params;\n }\n\n private __tnWriteInto(target: Uint8Array): void {\n if (!this.__tnPayload_proof_body) throw new Error(\"StateProofBuilder: payload variant not selected\");\n const view = new DataView(target.buffer, target.byteOffset, target.byteLength);\n target.set(this.__tnPrefixBuffer, 0);\n target.set(this.__tnPayload_proof_body.bytes, 40);\n const __tnLayout = StateProof.__tnComputeSequentialLayout(view, target);\n if (!__tnLayout || !__tnLayout.derived) throw new Error(\"StateProofBuilder: failed to derive enum tag\");\n const __tnDerivedTagValue = __tnLayout.derived[\"StateProof__proof_body_computed_tag\"];\n if (__tnDerivedTagValue === undefined) throw new Error(\"StateProofBuilder: computed enum tag missing\");\n const __tnDerivedTag = __tnBigIntToNumber(__tnDerivedTagValue, \"StateProofBuilder::__tnWriteInto\");\n const __tnExpectedTag = this.__tnPayload_proof_body!.descriptor.tag;\n if (__tnDerivedTag !== __tnExpectedTag) throw new Error(\"StateProofBuilder: computed enum tag does not match selected variant\");\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array, params: StateProof.Params): void {\n const result = StateProof.validate(buffer, { params });\n if (!result.ok) {\n throw new Error(`${ StateProof }Builder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n this.__tnLastParams = result.params ?? params;\n this.__tnLastBuffer = buffer;\n }\n}\n\n","/* Auto-generated TypeScript code */\n/* WARNING: Do not modify this file directly. It is generated from ABI definitions. */\n\nimport { StateProof } from \"../../blockchain/state_proof/types\";\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\ntype __TnIrContext = {\n params: Record<string, bigint>;\n buffer?: Uint8Array;\n typeName?: string;\n};\n\ntype __TnValidateResult = { ok: boolean; code?: string; consumed?: bigint };\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> = {};\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 __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 __tnEvalFootprint(node: __TnIrNode, ctx: __TnIrContext): bigint {\n return __tnEvalIrNode(node, ctx);\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) };\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(node: __TnIrNode, ctx: __TnIrContext): 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 return __tnCheckedAdd(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"mul\":\n return __tnCheckedMul(\n __tnEvalIrNode(node.left, ctx),\n __tnEvalIrNode(node.right, ctx)\n );\n case \"align\":\n return __tnAlign(__tnEvalIrNode(node.node, ctx), 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);\n }\n }\n if (node.default) return __tnEvalIrNode(node.default, ctx);\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 nestedResult = __tnInvokeValidate(\n node.typeName,\n ctx.buffer,\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 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 BurnInstruction ----- */\n\nconst __tn_ir_BurnInstruction = {\n typeName: \"BurnInstruction\",\n root: { op: \"const\", value: 14n }\n} as const;\n\nexport class BurnInstruction {\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> }): BurnInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"BurnInstruction.__tnCreateView requires a Uint8Array\");\n return new BurnInstruction(new Uint8Array(buffer));\n }\n\n static builder(): BurnInstructionBuilder {\n return new BurnInstructionBuilder();\n }\n\n static fromBuilder(builder: BurnInstructionBuilder): BurnInstruction | null {\n const buffer = builder.build();\n return BurnInstruction.from_array(buffer);\n }\n\n get_token_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_account_index(): number {\n return this.get_token_account_index();\n }\n\n set token_account_index(value: number) {\n this.set_token_account_index(value);\n }\n\n get_mint_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_authority_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_authority_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get authority_account_index(): number {\n return this.get_authority_account_index();\n }\n\n set authority_account_index(value: number) {\n this.set_authority_account_index(value);\n }\n\n get_amount(): bigint {\n const offset = 6;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 6;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_BurnInstruction.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_BurnInstruction, 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 BurnInstruction');\n }\n return __tnBigIntToNumber(irResult, 'BurnInstruction::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 14) return { ok: false, code: \"tn.buffer_too_small\", consumed: 14 };\n return { ok: true, consumed: 14 };\n }\n\n static new(token_account_index: number, mint_account_index: number, authority_account_index: number, amount: bigint): BurnInstruction {\n const buffer = new Uint8Array(14);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, token_account_index, true); /* token_account_index (little-endian) */\n view.setUint16(2, mint_account_index, true); /* mint_account_index (little-endian) */\n view.setUint16(4, authority_account_index, true); /* authority_account_index (little-endian) */\n view.setBigUint64(6, amount, true); /* amount (little-endian) */\n\n return new BurnInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): BurnInstruction | 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 BurnInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"BurnInstruction\", (params) => BurnInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"BurnInstruction\", (buffer, params) => BurnInstruction.__tnInvokeValidate(buffer, params));\n\nexport class BurnInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(14);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_token_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_authority_account_index(value: number): this {\n this.view.setUint16(4, value, true);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(6, 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(): BurnInstruction {\n const view = BurnInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build BurnInstruction\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR CloseAccountInstruction ----- */\n\nconst __tn_ir_CloseAccountInstruction = {\n typeName: \"CloseAccountInstruction\",\n root: { op: \"const\", value: 6n }\n} as const;\n\nexport class CloseAccountInstruction {\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> }): CloseAccountInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"CloseAccountInstruction.__tnCreateView requires a Uint8Array\");\n return new CloseAccountInstruction(new Uint8Array(buffer));\n }\n\n static builder(): CloseAccountInstructionBuilder {\n return new CloseAccountInstructionBuilder();\n }\n\n static fromBuilder(builder: CloseAccountInstructionBuilder): CloseAccountInstruction | null {\n const buffer = builder.build();\n return CloseAccountInstruction.from_array(buffer);\n }\n\n get_token_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_account_index(): number {\n return this.get_token_account_index();\n }\n\n set token_account_index(value: number) {\n this.set_token_account_index(value);\n }\n\n get_dest_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_dest_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get dest_account_index(): number {\n return this.get_dest_account_index();\n }\n\n set dest_account_index(value: number) {\n this.set_dest_account_index(value);\n }\n\n get_authority_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_authority_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get authority_account_index(): number {\n return this.get_authority_account_index();\n }\n\n set authority_account_index(value: number) {\n this.set_authority_account_index(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_CloseAccountInstruction.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_CloseAccountInstruction, 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 CloseAccountInstruction');\n }\n return __tnBigIntToNumber(irResult, 'CloseAccountInstruction::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(token_account_index: number, dest_account_index: number, authority_account_index: number): CloseAccountInstruction {\n const buffer = new Uint8Array(6);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, token_account_index, true); /* token_account_index (little-endian) */\n view.setUint16(2, dest_account_index, true); /* dest_account_index (little-endian) */\n view.setUint16(4, authority_account_index, true); /* authority_account_index (little-endian) */\n\n return new CloseAccountInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): CloseAccountInstruction | 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 CloseAccountInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"CloseAccountInstruction\", (params) => CloseAccountInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"CloseAccountInstruction\", (buffer, params) => CloseAccountInstruction.__tnInvokeValidate(buffer, params));\n\nexport class CloseAccountInstructionBuilder {\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_token_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_dest_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_authority_account_index(value: number): this {\n this.view.setUint16(4, 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(): CloseAccountInstruction {\n const view = CloseAccountInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build CloseAccountInstruction\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR FreezeAccountInstruction ----- */\n\nconst __tn_ir_FreezeAccountInstruction = {\n typeName: \"FreezeAccountInstruction\",\n root: { op: \"const\", value: 6n }\n} as const;\n\nexport class FreezeAccountInstruction {\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> }): FreezeAccountInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"FreezeAccountInstruction.__tnCreateView requires a Uint8Array\");\n return new FreezeAccountInstruction(new Uint8Array(buffer));\n }\n\n static builder(): FreezeAccountInstructionBuilder {\n return new FreezeAccountInstructionBuilder();\n }\n\n static fromBuilder(builder: FreezeAccountInstructionBuilder): FreezeAccountInstruction | null {\n const buffer = builder.build();\n return FreezeAccountInstruction.from_array(buffer);\n }\n\n get_token_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_account_index(): number {\n return this.get_token_account_index();\n }\n\n set token_account_index(value: number) {\n this.set_token_account_index(value);\n }\n\n get_mint_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_authority_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_authority_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get authority_account_index(): number {\n return this.get_authority_account_index();\n }\n\n set authority_account_index(value: number) {\n this.set_authority_account_index(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_FreezeAccountInstruction.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_FreezeAccountInstruction, 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 FreezeAccountInstruction');\n }\n return __tnBigIntToNumber(irResult, 'FreezeAccountInstruction::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(token_account_index: number, mint_account_index: number, authority_account_index: number): FreezeAccountInstruction {\n const buffer = new Uint8Array(6);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, token_account_index, true); /* token_account_index (little-endian) */\n view.setUint16(2, mint_account_index, true); /* mint_account_index (little-endian) */\n view.setUint16(4, authority_account_index, true); /* authority_account_index (little-endian) */\n\n return new FreezeAccountInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): FreezeAccountInstruction | 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 FreezeAccountInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"FreezeAccountInstruction\", (params) => FreezeAccountInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"FreezeAccountInstruction\", (buffer, params) => FreezeAccountInstruction.__tnInvokeValidate(buffer, params));\n\nexport class FreezeAccountInstructionBuilder {\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_token_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_authority_account_index(value: number): this {\n this.view.setUint16(4, 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(): FreezeAccountInstruction {\n const view = FreezeAccountInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build FreezeAccountInstruction\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR MintToInstruction ----- */\n\nconst __tn_ir_MintToInstruction = {\n typeName: \"MintToInstruction\",\n root: { op: \"const\", value: 14n }\n} as const;\n\nexport class MintToInstruction {\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> }): MintToInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"MintToInstruction.__tnCreateView requires a Uint8Array\");\n return new MintToInstruction(new Uint8Array(buffer));\n }\n\n static builder(): MintToInstructionBuilder {\n return new MintToInstructionBuilder();\n }\n\n static fromBuilder(builder: MintToInstructionBuilder): MintToInstruction | null {\n const buffer = builder.build();\n return MintToInstruction.from_array(buffer);\n }\n\n get_mint_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_dest_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_dest_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get dest_account_index(): number {\n return this.get_dest_account_index();\n }\n\n set dest_account_index(value: number) {\n this.set_dest_account_index(value);\n }\n\n get_authority_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_authority_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get authority_account_index(): number {\n return this.get_authority_account_index();\n }\n\n set authority_account_index(value: number) {\n this.set_authority_account_index(value);\n }\n\n get_amount(): bigint {\n const offset = 6;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 6;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_MintToInstruction.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_MintToInstruction, 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 MintToInstruction');\n }\n return __tnBigIntToNumber(irResult, 'MintToInstruction::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 14) return { ok: false, code: \"tn.buffer_too_small\", consumed: 14 };\n return { ok: true, consumed: 14 };\n }\n\n static new(mint_account_index: number, dest_account_index: number, authority_account_index: number, amount: bigint): MintToInstruction {\n const buffer = new Uint8Array(14);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, mint_account_index, true); /* mint_account_index (little-endian) */\n view.setUint16(2, dest_account_index, true); /* dest_account_index (little-endian) */\n view.setUint16(4, authority_account_index, true); /* authority_account_index (little-endian) */\n view.setBigUint64(6, amount, true); /* amount (little-endian) */\n\n return new MintToInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): MintToInstruction | 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 MintToInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"MintToInstruction\", (params) => MintToInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"MintToInstruction\", (buffer, params) => MintToInstruction.__tnInvokeValidate(buffer, params));\n\nexport class MintToInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(14);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_dest_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_authority_account_index(value: number): this {\n this.view.setUint16(4, value, true);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(6, 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(): MintToInstruction {\n const view = MintToInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build MintToInstruction\");\n return view;\n }\n}\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\n/* ----- TYPE DEFINITION FOR ThawAccountEventData ----- */\n\nconst __tn_ir_ThawAccountEventData = {\n typeName: \"ThawAccountEventData\",\n root: { op: \"const\", value: 96n }\n} as const;\n\nexport class ThawAccountEventData {\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> }): ThawAccountEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"ThawAccountEventData.__tnCreateView requires a Uint8Array\");\n return new ThawAccountEventData(new Uint8Array(buffer));\n }\n\n static builder(): ThawAccountEventDataBuilder {\n return new ThawAccountEventDataBuilder();\n }\n\n static fromBuilder(builder: ThawAccountEventDataBuilder): ThawAccountEventData | null {\n const buffer = builder.build();\n return ThawAccountEventData.from_array(buffer);\n }\n\n get_account(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_account(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 account(): Pubkey {\n return this.get_account();\n }\n\n set account(value: Pubkey) {\n this.set_account(value);\n }\n\n get_mint(): 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(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(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get authority(): Pubkey {\n return this.get_authority();\n }\n\n set authority(value: Pubkey) {\n this.set_authority(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_ThawAccountEventData.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_ThawAccountEventData, 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 ThawAccountEventData');\n }\n return __tnBigIntToNumber(irResult, 'ThawAccountEventData::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): ThawAccountEventData | 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 ThawAccountEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"ThawAccountEventData\", (params) => ThawAccountEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"ThawAccountEventData\", (buffer, params) => ThawAccountEventData.__tnInvokeValidate(buffer, params));\n\nexport class ThawAccountEventDataBuilder {\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_account(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"account expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"authority expects 32 bytes\");\n this.buffer.set(value, 64);\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(): ThawAccountEventData {\n const view = ThawAccountEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build ThawAccountEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR ThawAccountInstruction ----- */\n\nconst __tn_ir_ThawAccountInstruction = {\n typeName: \"ThawAccountInstruction\",\n root: { op: \"const\", value: 6n }\n} as const;\n\nexport class ThawAccountInstruction {\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> }): ThawAccountInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"ThawAccountInstruction.__tnCreateView requires a Uint8Array\");\n return new ThawAccountInstruction(new Uint8Array(buffer));\n }\n\n static builder(): ThawAccountInstructionBuilder {\n return new ThawAccountInstructionBuilder();\n }\n\n static fromBuilder(builder: ThawAccountInstructionBuilder): ThawAccountInstruction | null {\n const buffer = builder.build();\n return ThawAccountInstruction.from_array(buffer);\n }\n\n get_token_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_account_index(): number {\n return this.get_token_account_index();\n }\n\n set token_account_index(value: number) {\n this.set_token_account_index(value);\n }\n\n get_mint_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_authority_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_authority_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get authority_account_index(): number {\n return this.get_authority_account_index();\n }\n\n set authority_account_index(value: number) {\n this.set_authority_account_index(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_ThawAccountInstruction.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_ThawAccountInstruction, 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 ThawAccountInstruction');\n }\n return __tnBigIntToNumber(irResult, 'ThawAccountInstruction::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(token_account_index: number, mint_account_index: number, authority_account_index: number): ThawAccountInstruction {\n const buffer = new Uint8Array(6);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, token_account_index, true); /* token_account_index (little-endian) */\n view.setUint16(2, mint_account_index, true); /* mint_account_index (little-endian) */\n view.setUint16(4, authority_account_index, true); /* authority_account_index (little-endian) */\n\n return new ThawAccountInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): ThawAccountInstruction | 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 ThawAccountInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"ThawAccountInstruction\", (params) => ThawAccountInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"ThawAccountInstruction\", (buffer, params) => ThawAccountInstruction.__tnInvokeValidate(buffer, params));\n\nexport class ThawAccountInstructionBuilder {\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_token_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_authority_account_index(value: number): this {\n this.view.setUint16(4, 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(): ThawAccountInstruction {\n const view = ThawAccountInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build ThawAccountInstruction\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TickerField ----- */\n\nconst __tn_ir_TickerField = {\n typeName: \"TickerField\",\n root: { op: \"const\", value: 9n }\n} as const;\n\nexport class TickerField {\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> }): TickerField {\n if (!buffer || buffer.length === undefined) throw new Error(\"TickerField.__tnCreateView requires a Uint8Array\");\n return new TickerField(new Uint8Array(buffer));\n }\n\n static builder(): TickerFieldBuilder {\n return new TickerFieldBuilder();\n }\n\n static fromBuilder(builder: TickerFieldBuilder): TickerField | null {\n const buffer = builder.build();\n return TickerField.from_array(buffer);\n }\n\n get_length(): number {\n const offset = 0;\n return this.view.getUint8(offset);\n }\n\n set_length(value: number): void {\n const offset = 0;\n this.view.setUint8(offset, value);\n }\n\n get length(): number {\n return this.get_length();\n }\n\n set length(value: number) {\n this.set_length(value);\n }\n\n get_bytes(): number[] {\n const offset = 1;\n const result: number[] = [];\n for (let i = 0; i < 8; 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 = 1;\n if (value.length !== 8) {\n throw new Error('Array length must be 8');\n }\n for (let i = 0; i < 8; 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_TickerField.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_TickerField, 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 TickerField');\n }\n return __tnBigIntToNumber(irResult, 'TickerField::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 from_array(buffer: Uint8Array): TickerField | 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 TickerField(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"TickerField\", (params) => TickerField.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TickerField\", (buffer, params) => TickerField.__tnInvokeValidate(buffer, params));\n\nexport class TickerFieldBuilder {\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_length(value: number): this {\n this.view.setUint8(0, value);\n return this;\n }\n\n set_bytes(values: number[]): this {\n if (values.length !== 8) throw new Error(\"bytes expects 8 elements\");\n for (let i = 0; i < values.length; i++) {\n const byteOffset = 1 + 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(): TickerField {\n const view = TickerField.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build TickerField\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TokenAccount ----- */\n\nconst __tn_ir_TokenAccount = {\n typeName: \"TokenAccount\",\n root: { op: \"const\", value: 73n }\n} as const;\n\nexport class TokenAccount {\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> }): TokenAccount {\n if (!buffer || buffer.length === undefined) throw new Error(\"TokenAccount.__tnCreateView requires a Uint8Array\");\n return new TokenAccount(new Uint8Array(buffer));\n }\n\n static builder(): TokenAccountBuilder {\n return new TokenAccountBuilder();\n }\n\n static fromBuilder(builder: TokenAccountBuilder): TokenAccount | null {\n const buffer = builder.build();\n return TokenAccount.from_array(buffer);\n }\n\n get_mint(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_owner(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_owner(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 owner(): Pubkey {\n return this.get_owner();\n }\n\n set owner(value: Pubkey) {\n this.set_owner(value);\n }\n\n get_amount(): bigint {\n const offset = 64;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 64;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n get_is_frozen(): number {\n const offset = 72;\n return this.view.getUint8(offset);\n }\n\n set_is_frozen(value: number): void {\n const offset = 72;\n this.view.setUint8(offset, value);\n }\n\n get is_frozen(): number {\n return this.get_is_frozen();\n }\n\n set is_frozen(value: number) {\n this.set_is_frozen(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TokenAccount.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_TokenAccount, 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 TokenAccount');\n }\n return __tnBigIntToNumber(irResult, 'TokenAccount::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 73) return { ok: false, code: \"tn.buffer_too_small\", consumed: 73 };\n return { ok: true, consumed: 73 };\n }\n\n static from_array(buffer: Uint8Array): TokenAccount | 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 TokenAccount(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"TokenAccount\", (params) => TokenAccount.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TokenAccount\", (buffer, params) => TokenAccount.__tnInvokeValidate(buffer, params));\n\nexport class TokenAccountBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(73);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_owner(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"owner expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(64, cast, true);\n return this;\n }\n\n set_is_frozen(value: number): this {\n this.view.setUint8(72, 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(): TokenAccount {\n const view = TokenAccount.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build TokenAccount\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TokenMintAccount ----- */\n\nconst __tn_ir_TokenMintAccount = {\n typeName: \"TokenMintAccount\",\n root: { op: \"const\", value: 115n }\n} as const;\n\nexport class TokenMintAccount {\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> }): TokenMintAccount {\n if (!buffer || buffer.length === undefined) throw new Error(\"TokenMintAccount.__tnCreateView requires a Uint8Array\");\n return new TokenMintAccount(new Uint8Array(buffer));\n }\n\n static builder(): TokenMintAccountBuilder {\n return new TokenMintAccountBuilder();\n }\n\n static fromBuilder(builder: TokenMintAccountBuilder): TokenMintAccount | null {\n const buffer = builder.build();\n return TokenMintAccount.from_array(buffer);\n }\n\n get_decimals(): number {\n const offset = 0;\n return this.view.getUint8(offset);\n }\n\n set_decimals(value: number): void {\n const offset = 0;\n this.view.setUint8(offset, value);\n }\n\n get decimals(): number {\n return this.get_decimals();\n }\n\n set decimals(value: number) {\n this.set_decimals(value);\n }\n\n get_supply(): bigint {\n const offset = 1;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_supply(value: bigint): void {\n const offset = 1;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get supply(): bigint {\n return this.get_supply();\n }\n\n set supply(value: bigint) {\n this.set_supply(value);\n }\n\n get_creator(): Pubkey {\n const offset = 9;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_creator(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 9;\n this.buffer.set(sourceBytes, offset);\n }\n\n get creator(): Pubkey {\n return this.get_creator();\n }\n\n set creator(value: Pubkey) {\n this.set_creator(value);\n }\n\n get_mint_authority(): Pubkey {\n const offset = 41;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_mint_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 = 41;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint_authority(): Pubkey {\n return this.get_mint_authority();\n }\n\n set mint_authority(value: Pubkey) {\n this.set_mint_authority(value);\n }\n\n get_freeze_authority(): Pubkey {\n const offset = 73;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_freeze_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 = 73;\n this.buffer.set(sourceBytes, offset);\n }\n\n get freeze_authority(): Pubkey {\n return this.get_freeze_authority();\n }\n\n set freeze_authority(value: Pubkey) {\n this.set_freeze_authority(value);\n }\n\n get_has_freeze_authority(): number {\n const offset = 105;\n return this.view.getUint8(offset);\n }\n\n set_has_freeze_authority(value: number): void {\n const offset = 105;\n this.view.setUint8(offset, value);\n }\n\n get has_freeze_authority(): number {\n return this.get_has_freeze_authority();\n }\n\n set has_freeze_authority(value: number) {\n this.set_has_freeze_authority(value);\n }\n\n get_ticker(): TickerField {\n const offset = 106;\n const slice = this.buffer.subarray(offset, offset + 9);\n return TickerField.from_array(slice)!;\n }\n\n set_ticker(value: TickerField): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 106;\n this.buffer.set(sourceBytes, offset);\n }\n\n get ticker(): TickerField {\n return this.get_ticker();\n }\n\n set ticker(value: TickerField) {\n this.set_ticker(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TokenMintAccount.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_TokenMintAccount, 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 TokenMintAccount');\n }\n return __tnBigIntToNumber(irResult, 'TokenMintAccount::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 115) return { ok: false, code: \"tn.buffer_too_small\", consumed: 115 };\n return { ok: true, consumed: 115 };\n }\n\n static from_array(buffer: Uint8Array): TokenMintAccount | 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 TokenMintAccount(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"TokenMintAccount\", (params) => TokenMintAccount.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TokenMintAccount\", (buffer, params) => TokenMintAccount.__tnInvokeValidate(buffer, params));\n\nexport class TokenMintAccountBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(115);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_decimals(value: number): this {\n this.view.setUint8(0, value);\n return this;\n }\n\n set_supply(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(1, cast, true);\n return this;\n }\n\n set_creator(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"creator expects 32 bytes\");\n this.buffer.set(value, 9);\n return this;\n }\n\n set_mint_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint_authority expects 32 bytes\");\n this.buffer.set(value, 41);\n return this;\n }\n\n set_freeze_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"freeze_authority expects 32 bytes\");\n this.buffer.set(value, 73);\n return this;\n }\n\n set_has_freeze_authority(value: number): this {\n this.view.setUint8(105, value);\n return this;\n }\n\n set_ticker(value: Uint8Array): this {\n if (value.length !== 9) throw new Error(\"ticker expects 9 bytes\");\n this.buffer.set(value, 106);\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(): TokenMintAccount {\n const view = TokenMintAccount.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build TokenMintAccount\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TokenProgramAccount ----- */\n\nconst __tn_ir_TokenProgramAccount = {\n typeName: \"TokenProgramAccount\",\n root: { op: \"align\", alignment: 1, node: { op: \"align\", alignment: 1, node: { op: \"switch\", tag: \"TokenProgramAccount::data.payload_size\", cases: [{ value: 73, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 73n } } }, { value: 115, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 115n } } }] } } }\n} as const;\n\nexport class TokenProgramAccount {\n private view: DataView;\n private __tnParams: TokenProgramAccount.Params;\n\n private constructor(private buffer: Uint8Array, params?: TokenProgramAccount.Params) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n if (params) {\n this.__tnParams = params;\n } else {\n const derived = TokenProgramAccount.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"TokenProgramAccount: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: TokenProgramAccount.Params }): TokenProgramAccount {\n if (!buffer || buffer.length === undefined) throw new Error(\"TokenProgramAccount.__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 = TokenProgramAccount.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"TokenProgramAccount.__tnCreateView: failed to derive params\");\n params = derived.params;\n }\n const instance = new TokenProgramAccount(new Uint8Array(buffer), params);\n return instance;\n }\n\n dynamicParams(): TokenProgramAccount.Params {\n return this.__tnParams;\n }\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_data_payload_size: bigint | null = null;\n let __tnParamSeq_TokenProgramAccount__data_payload_size: bigint | null = null;\n let __tnCursorMutable = 0;\n const __tnSduAvailable_data = __tnLength - __tnCursorMutable;\n let __tnSduSize_data = -1;\n switch (__tnSduAvailable_data) {\n case 73: __tnSduSize_data = 73; break;\n case 115: __tnSduSize_data = 115; break;\n default: return null;\n }\n __tnParamSeq_data_payload_size = __tnToBigInt(__tnSduSize_data);\n __tnParamSeq_TokenProgramAccount__data_payload_size = __tnToBigInt(__tnSduSize_data);\n __tnCursorMutable += __tnSduSize_data;\n const params: Record<string, bigint> = Object.create(null);\n if (__tnParamSeq_data_payload_size === null) return null;\n params[\"data_payload_size\"] = __tnParamSeq_data_payload_size as bigint;\n if (__tnParamSeq_TokenProgramAccount__data_payload_size === null) return null;\n params[\"TokenProgramAccount__data_payload_size\"] = __tnParamSeq_TokenProgramAccount__data_payload_size as bigint;\n return { params, offsets: null, derived: null };\n }\n\n private static __tnExtractParams(view: DataView, buffer: Uint8Array): { params: TokenProgramAccount.Params; derived: Record<string, bigint> | null } | null {\n const __tnLayout = TokenProgramAccount.__tnComputeSequentialLayout(view, buffer);\n if (!__tnLayout || !__tnLayout.params) return null;\n const __tnSeqParams = __tnLayout.params;\n const __tnParamSeq_data_payload_size = __tnSeqParams[\"data_payload_size\"];\n if (__tnParamSeq_data_payload_size === undefined) return null;\n const __tnParamSeq_TokenProgramAccount__data_payload_size = __tnSeqParams[\"TokenProgramAccount__data_payload_size\"];\n if (__tnParamSeq_TokenProgramAccount__data_payload_size === undefined) return null;\n const __tnExtractedParams = TokenProgramAccount.Params.fromValues({\n data_payload_size: __tnParamSeq_data_payload_size as bigint,\n TokenProgramAccount__data_payload_size: __tnParamSeq_TokenProgramAccount__data_payload_size as bigint,\n });\n return { params: __tnExtractedParams, derived: null };\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TokenProgramAccount.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_TokenProgramAccount, 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_payload_size: number | bigint, TokenProgramAccount__data_payload_size: number | bigint): bigint {\n const params = TokenProgramAccount.Params.fromValues({\n data_payload_size: data_payload_size,\n TokenProgramAccount__data_payload_size: TokenProgramAccount__data_payload_size,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: TokenProgramAccount.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"data.payload_size\"] = params.data_payload_size;\n record[\"TokenProgramAccount::data.payload_size\"] = params.TokenProgramAccount__data_payload_size;\n return record;\n }\n\n static footprintIrFromParams(params: TokenProgramAccount.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: TokenProgramAccount.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 TokenProgramAccount');\n return __tnBigIntToNumber(irResult, 'TokenProgramAccount::footprintFromParams');\n }\n\n static footprintFromValues(input: { data_payload_size: number | bigint, TokenProgramAccount__data_payload_size: number | bigint }): number {\n const params = TokenProgramAccount.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: TokenProgramAccount.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: TokenProgramAccount.Params }): { ok: boolean; code?: string; consumed?: number; params?: TokenProgramAccount.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, 'TokenProgramAccount::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'TokenProgramAccount::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: TokenProgramAccount.Params }): TokenProgramAccount | 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 TokenProgramAccount(buffer, cached);\n return state;\n }\n\n\n}\n\nexport namespace TokenProgramAccount {\n export type Params = {\n /** ABI path: data.payload_size */\n readonly data_payload_size: bigint;\n /** Runtime payload size (bytes) selecting size-discriminated variant (ABI path: TokenProgramAccount::data.payload_size) */\n readonly TokenProgramAccount__data_payload_size: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n data_payload_size: \"data.payload_size\",\n TokenProgramAccount__data_payload_size: \"TokenProgramAccount::data.payload_size\",\n } as const);\n\n export const Params = {\n fromValues(input: { data_payload_size: number | bigint, TokenProgramAccount__data_payload_size: number | bigint }): Params {\n return {\n data_payload_size: __tnToBigInt(input.data_payload_size),\n TokenProgramAccount__data_payload_size: __tnToBigInt(input.TokenProgramAccount__data_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: { data_payload_size: number | bigint, TokenProgramAccount__data_payload_size: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\n__tnRegisterFootprint(\"TokenProgramAccount\", (params) => TokenProgramAccount.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TokenProgramAccount\", (buffer, params) => TokenProgramAccount.__tnInvokeValidate(buffer, params));\n\n/* ----- TYPE DEFINITION FOR TransferEventData ----- */\n\nconst __tn_ir_TransferEventData = {\n typeName: \"TransferEventData\",\n root: { op: \"const\", value: 88n }\n} as const;\n\nexport class TransferEventData {\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> }): TransferEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"TransferEventData.__tnCreateView requires a Uint8Array\");\n return new TransferEventData(new Uint8Array(buffer));\n }\n\n static builder(): TransferEventDataBuilder {\n return new TransferEventDataBuilder();\n }\n\n static fromBuilder(builder: TransferEventDataBuilder): TransferEventData | null {\n const buffer = builder.build();\n return TransferEventData.from_array(buffer);\n }\n\n get_source(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_source(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 source(): Pubkey {\n return this.get_source();\n }\n\n set source(value: Pubkey) {\n this.set_source(value);\n }\n\n get_dest(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_dest(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 dest(): Pubkey {\n return this.get_dest();\n }\n\n set dest(value: Pubkey) {\n this.set_dest(value);\n }\n\n get_amount(): bigint {\n const offset = 64;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 64;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n get_source_post_balance(): bigint {\n const offset = 72;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_source_post_balance(value: bigint): void {\n const offset = 72;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get source_post_balance(): bigint {\n return this.get_source_post_balance();\n }\n\n set source_post_balance(value: bigint) {\n this.set_source_post_balance(value);\n }\n\n get_dest_post_balance(): bigint {\n const offset = 80;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_dest_post_balance(value: bigint): void {\n const offset = 80;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get dest_post_balance(): bigint {\n return this.get_dest_post_balance();\n }\n\n set dest_post_balance(value: bigint) {\n this.set_dest_post_balance(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TransferEventData.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_TransferEventData, 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 TransferEventData');\n }\n return __tnBigIntToNumber(irResult, 'TransferEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 88) return { ok: false, code: \"tn.buffer_too_small\", consumed: 88 };\n return { ok: true, consumed: 88 };\n }\n\n static from_array(buffer: Uint8Array): TransferEventData | 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 TransferEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"TransferEventData\", (params) => TransferEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TransferEventData\", (buffer, params) => TransferEventData.__tnInvokeValidate(buffer, params));\n\nexport class TransferEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(88);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_source(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"source expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_dest(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"dest expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(64, cast, true);\n return this;\n }\n\n set_source_post_balance(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(72, cast, true);\n return this;\n }\n\n set_dest_post_balance(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(80, 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(): TransferEventData {\n const view = TransferEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build TransferEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TransferInstruction ----- */\n\nconst __tn_ir_TransferInstruction = {\n typeName: \"TransferInstruction\",\n root: { op: \"const\", value: 12n }\n} as const;\n\nexport class TransferInstruction {\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> }): TransferInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"TransferInstruction.__tnCreateView requires a Uint8Array\");\n return new TransferInstruction(new Uint8Array(buffer));\n }\n\n static builder(): TransferInstructionBuilder {\n return new TransferInstructionBuilder();\n }\n\n static fromBuilder(builder: TransferInstructionBuilder): TransferInstruction | null {\n const buffer = builder.build();\n return TransferInstruction.from_array(buffer);\n }\n\n get_source_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_source_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get source_account_index(): number {\n return this.get_source_account_index();\n }\n\n set source_account_index(value: number) {\n this.set_source_account_index(value);\n }\n\n get_dest_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_dest_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get dest_account_index(): number {\n return this.get_dest_account_index();\n }\n\n set dest_account_index(value: number) {\n this.set_dest_account_index(value);\n }\n\n get_amount(): bigint {\n const offset = 4;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 4;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TransferInstruction.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_TransferInstruction, 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 TransferInstruction');\n }\n return __tnBigIntToNumber(irResult, 'TransferInstruction::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(source_account_index: number, dest_account_index: number, amount: bigint): TransferInstruction {\n const buffer = new Uint8Array(12);\n const view = new DataView(buffer.buffer);\n\n let offset = 0;\n view.setUint16(0, source_account_index, true); /* source_account_index (little-endian) */\n view.setUint16(2, dest_account_index, true); /* dest_account_index (little-endian) */\n view.setBigUint64(4, amount, true); /* amount (little-endian) */\n\n return new TransferInstruction(buffer);\n }\n\n static from_array(buffer: Uint8Array): TransferInstruction | 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 TransferInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"TransferInstruction\", (params) => TransferInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TransferInstruction\", (buffer, params) => TransferInstruction.__tnInvokeValidate(buffer, params));\n\nexport class TransferInstructionBuilder {\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_source_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n return this;\n }\n\n set_dest_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(4, 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(): TransferInstruction {\n const view = TransferInstruction.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build TransferInstruction\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR BurnEventData ----- */\n\nconst __tn_ir_BurnEventData = {\n typeName: \"BurnEventData\",\n root: { op: \"const\", value: 120n }\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_mint(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_account(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_account(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 account(): Pubkey {\n return this.get_account();\n }\n\n set account(value: Pubkey) {\n this.set_account(value);\n }\n\n get_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get authority(): Pubkey {\n return this.get_authority();\n }\n\n set authority(value: Pubkey) {\n this.set_authority(value);\n }\n\n get_amount(): bigint {\n const offset = 96;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 96;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n get_account_post_balance(): bigint {\n const offset = 104;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_account_post_balance(value: bigint): void {\n const offset = 104;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get account_post_balance(): bigint {\n return this.get_account_post_balance();\n }\n\n set account_post_balance(value: bigint) {\n this.set_account_post_balance(value);\n }\n\n get_mint_supply(): bigint {\n const offset = 112;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_mint_supply(value: bigint): void {\n const offset = 112;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get mint_supply(): bigint {\n return this.get_mint_supply();\n }\n\n set mint_supply(value: bigint) {\n this.set_mint_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 < 120) return { ok: false, code: \"tn.buffer_too_small\", consumed: 120 };\n return { ok: true, consumed: 120 };\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\n__tnRegisterFootprint(\"BurnEventData\", (params) => BurnEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"BurnEventData\", (buffer, params) => BurnEventData.__tnInvokeValidate(buffer, params));\n\nexport class BurnEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(120);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_account(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"account expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"authority expects 32 bytes\");\n this.buffer.set(value, 64);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(96, cast, true);\n return this;\n }\n\n set_account_post_balance(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(104, cast, true);\n return this;\n }\n\n set_mint_supply(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(112, 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/* ----- TYPE DEFINITION FOR CloseAccountEventData ----- */\n\nconst __tn_ir_CloseAccountEventData = {\n typeName: \"CloseAccountEventData\",\n root: { op: \"const\", value: 96n }\n} as const;\n\nexport class CloseAccountEventData {\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> }): CloseAccountEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"CloseAccountEventData.__tnCreateView requires a Uint8Array\");\n return new CloseAccountEventData(new Uint8Array(buffer));\n }\n\n static builder(): CloseAccountEventDataBuilder {\n return new CloseAccountEventDataBuilder();\n }\n\n static fromBuilder(builder: CloseAccountEventDataBuilder): CloseAccountEventData | null {\n const buffer = builder.build();\n return CloseAccountEventData.from_array(buffer);\n }\n\n get_account(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_account(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 account(): Pubkey {\n return this.get_account();\n }\n\n set account(value: Pubkey) {\n this.set_account(value);\n }\n\n get_destination(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_destination(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 destination(): Pubkey {\n return this.get_destination();\n }\n\n set destination(value: Pubkey) {\n this.set_destination(value);\n }\n\n get_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get authority(): Pubkey {\n return this.get_authority();\n }\n\n set authority(value: Pubkey) {\n this.set_authority(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_CloseAccountEventData.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_CloseAccountEventData, 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 CloseAccountEventData');\n }\n return __tnBigIntToNumber(irResult, 'CloseAccountEventData::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): CloseAccountEventData | 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 CloseAccountEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"CloseAccountEventData\", (params) => CloseAccountEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"CloseAccountEventData\", (buffer, params) => CloseAccountEventData.__tnInvokeValidate(buffer, params));\n\nexport class CloseAccountEventDataBuilder {\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_account(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"account expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_destination(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"destination expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"authority expects 32 bytes\");\n this.buffer.set(value, 64);\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(): CloseAccountEventData {\n const view = CloseAccountEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build CloseAccountEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR FreezeAccountEventData ----- */\n\nconst __tn_ir_FreezeAccountEventData = {\n typeName: \"FreezeAccountEventData\",\n root: { op: \"const\", value: 96n }\n} as const;\n\nexport class FreezeAccountEventData {\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> }): FreezeAccountEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"FreezeAccountEventData.__tnCreateView requires a Uint8Array\");\n return new FreezeAccountEventData(new Uint8Array(buffer));\n }\n\n static builder(): FreezeAccountEventDataBuilder {\n return new FreezeAccountEventDataBuilder();\n }\n\n static fromBuilder(builder: FreezeAccountEventDataBuilder): FreezeAccountEventData | null {\n const buffer = builder.build();\n return FreezeAccountEventData.from_array(buffer);\n }\n\n get_account(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_account(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 account(): Pubkey {\n return this.get_account();\n }\n\n set account(value: Pubkey) {\n this.set_account(value);\n }\n\n get_mint(): 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(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(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get authority(): Pubkey {\n return this.get_authority();\n }\n\n set authority(value: Pubkey) {\n this.set_authority(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_FreezeAccountEventData.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_FreezeAccountEventData, 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 FreezeAccountEventData');\n }\n return __tnBigIntToNumber(irResult, 'FreezeAccountEventData::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): FreezeAccountEventData | 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 FreezeAccountEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"FreezeAccountEventData\", (params) => FreezeAccountEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"FreezeAccountEventData\", (buffer, params) => FreezeAccountEventData.__tnInvokeValidate(buffer, params));\n\nexport class FreezeAccountEventDataBuilder {\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_account(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"account expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"authority expects 32 bytes\");\n this.buffer.set(value, 64);\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(): FreezeAccountEventData {\n const view = FreezeAccountEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build FreezeAccountEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR InitializeAccountEventData ----- */\n\nconst __tn_ir_InitializeAccountEventData = {\n typeName: \"InitializeAccountEventData\",\n root: { op: \"const\", value: 96n }\n} as const;\n\nexport class InitializeAccountEventData {\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> }): InitializeAccountEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"InitializeAccountEventData.__tnCreateView requires a Uint8Array\");\n return new InitializeAccountEventData(new Uint8Array(buffer));\n }\n\n static builder(): InitializeAccountEventDataBuilder {\n return new InitializeAccountEventDataBuilder();\n }\n\n static fromBuilder(builder: InitializeAccountEventDataBuilder): InitializeAccountEventData | null {\n const buffer = builder.build();\n return InitializeAccountEventData.from_array(buffer);\n }\n\n get_account(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_account(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 account(): Pubkey {\n return this.get_account();\n }\n\n set account(value: Pubkey) {\n this.set_account(value);\n }\n\n get_owner(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_owner(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 owner(): Pubkey {\n return this.get_owner();\n }\n\n set owner(value: Pubkey) {\n this.set_owner(value);\n }\n\n get_mint(): 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(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(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_InitializeAccountEventData.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_InitializeAccountEventData, 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 InitializeAccountEventData');\n }\n return __tnBigIntToNumber(irResult, 'InitializeAccountEventData::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): InitializeAccountEventData | 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 InitializeAccountEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"InitializeAccountEventData\", (params) => InitializeAccountEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"InitializeAccountEventData\", (buffer, params) => InitializeAccountEventData.__tnInvokeValidate(buffer, params));\n\nexport class InitializeAccountEventDataBuilder {\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_account(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"account expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_owner(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"owner expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 64);\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(): InitializeAccountEventData {\n const view = InitializeAccountEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build InitializeAccountEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR InitializeMintEventData ----- */\n\nconst __tn_ir_InitializeMintEventData = {\n typeName: \"InitializeMintEventData\",\n root: { op: \"const\", value: 115n }\n} as const;\n\nexport class InitializeMintEventData {\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> }): InitializeMintEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"InitializeMintEventData.__tnCreateView requires a Uint8Array\");\n return new InitializeMintEventData(new Uint8Array(buffer));\n }\n\n static builder(): InitializeMintEventDataBuilder {\n return new InitializeMintEventDataBuilder();\n }\n\n static fromBuilder(builder: InitializeMintEventDataBuilder): InitializeMintEventData | null {\n const buffer = builder.build();\n return InitializeMintEventData.from_array(buffer);\n }\n\n get_mint(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_mint_authority(): 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_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 = 32;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint_authority(): Pubkey {\n return this.get_mint_authority();\n }\n\n set mint_authority(value: Pubkey) {\n this.set_mint_authority(value);\n }\n\n get_freeze_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_freeze_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get freeze_authority(): Pubkey {\n return this.get_freeze_authority();\n }\n\n set freeze_authority(value: Pubkey) {\n this.set_freeze_authority(value);\n }\n\n get_supply(): bigint {\n const offset = 96;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_supply(value: bigint): void {\n const offset = 96;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get supply(): bigint {\n return this.get_supply();\n }\n\n set supply(value: bigint) {\n this.set_supply(value);\n }\n\n get_decimals(): number {\n const offset = 104;\n return this.view.getUint8(offset);\n }\n\n set_decimals(value: number): void {\n const offset = 104;\n this.view.setUint8(offset, value);\n }\n\n get decimals(): number {\n return this.get_decimals();\n }\n\n set decimals(value: number) {\n this.set_decimals(value);\n }\n\n get_has_freeze_authority(): number {\n const offset = 105;\n return this.view.getUint8(offset);\n }\n\n set_has_freeze_authority(value: number): void {\n const offset = 105;\n this.view.setUint8(offset, value);\n }\n\n get has_freeze_authority(): number {\n return this.get_has_freeze_authority();\n }\n\n set has_freeze_authority(value: number) {\n this.set_has_freeze_authority(value);\n }\n\n get_ticker(): TickerField {\n const offset = 106;\n const slice = this.buffer.subarray(offset, offset + 9);\n return TickerField.from_array(slice)!;\n }\n\n set_ticker(value: TickerField): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 106;\n this.buffer.set(sourceBytes, offset);\n }\n\n get ticker(): TickerField {\n return this.get_ticker();\n }\n\n set ticker(value: TickerField) {\n this.set_ticker(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_InitializeMintEventData.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_InitializeMintEventData, 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 InitializeMintEventData');\n }\n return __tnBigIntToNumber(irResult, 'InitializeMintEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 115) return { ok: false, code: \"tn.buffer_too_small\", consumed: 115 };\n return { ok: true, consumed: 115 };\n }\n\n static from_array(buffer: Uint8Array): InitializeMintEventData | 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 InitializeMintEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"InitializeMintEventData\", (params) => InitializeMintEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"InitializeMintEventData\", (buffer, params) => InitializeMintEventData.__tnInvokeValidate(buffer, params));\n\nexport class InitializeMintEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(115);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_mint_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint_authority expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_freeze_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"freeze_authority expects 32 bytes\");\n this.buffer.set(value, 64);\n return this;\n }\n\n set_supply(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(96, cast, true);\n return this;\n }\n\n set_decimals(value: number): this {\n this.view.setUint8(104, value);\n return this;\n }\n\n set_has_freeze_authority(value: number): this {\n this.view.setUint8(105, value);\n return this;\n }\n\n set_ticker(value: Uint8Array): this {\n if (value.length !== 9) throw new Error(\"ticker expects 9 bytes\");\n this.buffer.set(value, 106);\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(): InitializeMintEventData {\n const view = InitializeMintEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build InitializeMintEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR MintToEventData ----- */\n\nconst __tn_ir_MintToEventData = {\n typeName: \"MintToEventData\",\n root: { op: \"const\", value: 120n }\n} as const;\n\nexport class MintToEventData {\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> }): MintToEventData {\n if (!buffer || buffer.length === undefined) throw new Error(\"MintToEventData.__tnCreateView requires a Uint8Array\");\n return new MintToEventData(new Uint8Array(buffer));\n }\n\n static builder(): MintToEventDataBuilder {\n return new MintToEventDataBuilder();\n }\n\n static fromBuilder(builder: MintToEventDataBuilder): MintToEventData | null {\n const buffer = builder.build();\n return MintToEventData.from_array(buffer);\n }\n\n get_mint(): Pubkey {\n const offset = 0;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 0;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint(): Pubkey {\n return this.get_mint();\n }\n\n set mint(value: Pubkey) {\n this.set_mint(value);\n }\n\n get_dest(): Pubkey {\n const offset = 32;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_dest(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 dest(): Pubkey {\n return this.get_dest();\n }\n\n set dest(value: Pubkey) {\n this.set_dest(value);\n }\n\n get_authority(): Pubkey {\n const offset = 64;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_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 = 64;\n this.buffer.set(sourceBytes, offset);\n }\n\n get authority(): Pubkey {\n return this.get_authority();\n }\n\n set authority(value: Pubkey) {\n this.set_authority(value);\n }\n\n get_amount(): bigint {\n const offset = 96;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_amount(value: bigint): void {\n const offset = 96;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get amount(): bigint {\n return this.get_amount();\n }\n\n set amount(value: bigint) {\n this.set_amount(value);\n }\n\n get_dest_post_balance(): bigint {\n const offset = 104;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_dest_post_balance(value: bigint): void {\n const offset = 104;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get dest_post_balance(): bigint {\n return this.get_dest_post_balance();\n }\n\n set dest_post_balance(value: bigint) {\n this.set_dest_post_balance(value);\n }\n\n get_mint_supply(): bigint {\n const offset = 112;\n return this.view.getBigUint64(offset, true); /* little-endian */\n }\n\n set_mint_supply(value: bigint): void {\n const offset = 112;\n this.view.setBigUint64(offset, value, true); /* little-endian */\n }\n\n get mint_supply(): bigint {\n return this.get_mint_supply();\n }\n\n set mint_supply(value: bigint) {\n this.set_mint_supply(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_MintToEventData.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_MintToEventData, 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 MintToEventData');\n }\n return __tnBigIntToNumber(irResult, 'MintToEventData::footprint');\n }\n\n static validate(buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n if (buffer.length < 120) return { ok: false, code: \"tn.buffer_too_small\", consumed: 120 };\n return { ok: true, consumed: 120 };\n }\n\n static from_array(buffer: Uint8Array): MintToEventData | 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 MintToEventData(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"MintToEventData\", (params) => MintToEventData.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"MintToEventData\", (buffer, params) => MintToEventData.__tnInvokeValidate(buffer, params));\n\nexport class MintToEventDataBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n\n constructor() {\n this.buffer = new Uint8Array(120);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n set_mint(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint expects 32 bytes\");\n this.buffer.set(value, 0);\n return this;\n }\n\n set_dest(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"dest expects 32 bytes\");\n this.buffer.set(value, 32);\n return this;\n }\n\n set_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"authority expects 32 bytes\");\n this.buffer.set(value, 64);\n return this;\n }\n\n set_amount(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(96, cast, true);\n return this;\n }\n\n set_dest_post_balance(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(104, cast, true);\n return this;\n }\n\n set_mint_supply(value: number): this {\n const cast = __tnToBigInt(value);\n this.view.setBigUint64(112, 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(): MintToEventData {\n const view = MintToEventData.from_array(this.buffer.slice());\n if (!view) throw new Error(\"failed to build MintToEventData\");\n return view;\n }\n}\n\n/* ----- TYPE DEFINITION FOR TokenEvent ----- */\n\nconst __tn_ir_TokenEvent = {\n typeName: \"TokenEvent\",\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: \"TokenEvent::payload.event_type\", cases: [{ value: 0, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 115n } } }, { value: 1, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 96n } } }, { value: 2, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 88n } } }, { value: 3, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 120n } } }, { value: 4, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 120n } } }, { value: 5, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 96n } } }, { value: 6, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 96n } } }, { value: 7, node: { op: \"align\", alignment: 1, node: { op: \"const\", value: 96n } } }] } } } }\n} as const;\n\nexport class TokenEvent_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>): TokenEvent_payload_Inner {\n return new TokenEvent_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 asInitializeMint(): InitializeMintEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 0) return null;\n return InitializeMintEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asInitializeAccount(): InitializeAccountEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 1) return null;\n return InitializeAccountEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asTransfer(): TransferEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 2) return null;\n return TransferEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asMintTo(): MintToEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 3) return null;\n return MintToEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asBurn(): BurnEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 4) return null;\n return BurnEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asCloseAccount(): CloseAccountEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 5) return null;\n return CloseAccountEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asFreezeAccount(): FreezeAccountEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 6) return null;\n return FreezeAccountEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asThawAccount(): ThawAccountEventData | null {\n if (!this.descriptor || this.descriptor.tag !== 7) return null;\n return ThawAccountEventData.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n}\n\nexport class TokenEvent {\n private view: DataView;\n private static readonly __tnFieldOffset_payload = 1;\n private __tnParams: TokenEvent.Params;\n\n private constructor(private buffer: Uint8Array, params?: TokenEvent.Params) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n if (params) {\n this.__tnParams = params;\n } else {\n const derived = TokenEvent.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"TokenEvent: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: TokenEvent.Params }): TokenEvent {\n if (!buffer || buffer.length === undefined) throw new Error(\"TokenEvent.__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 = TokenEvent.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"TokenEvent.__tnCreateView: failed to derive params\");\n params = derived.params;\n }\n const instance = new TokenEvent(new Uint8Array(buffer), params);\n return instance;\n }\n\n dynamicParams(): TokenEvent.Params {\n return this.__tnParams;\n }\n\n static builder(): TokenEventBuilder {\n return new TokenEventBuilder();\n }\n\n static fromBuilder(builder: TokenEventBuilder): TokenEvent | null {\n const buffer = builder.build();\n const params = builder.dynamicParams();\n return TokenEvent.from_array(buffer, { params });\n }\n\n static readonly payloadVariantDescriptors = Object.freeze([\n {\n name: \"initialize_mint\",\n tag: 0,\n payloadSize: 115,\n payloadType: \"TokenEvent::payload::initialize_mint\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(InitializeMintEventData),\n },\n {\n name: \"initialize_account\",\n tag: 1,\n payloadSize: 96,\n payloadType: \"TokenEvent::payload::initialize_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(InitializeAccountEventData),\n },\n {\n name: \"transfer\",\n tag: 2,\n payloadSize: 88,\n payloadType: \"TokenEvent::payload::transfer\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(TransferEventData),\n },\n {\n name: \"mint_to\",\n tag: 3,\n payloadSize: 120,\n payloadType: \"TokenEvent::payload::mint_to\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(MintToEventData),\n },\n {\n name: \"burn\",\n tag: 4,\n payloadSize: 120,\n payloadType: \"TokenEvent::payload::burn\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(BurnEventData),\n },\n {\n name: \"close_account\",\n tag: 5,\n payloadSize: 96,\n payloadType: \"TokenEvent::payload::close_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(CloseAccountEventData),\n },\n {\n name: \"freeze_account\",\n tag: 6,\n payloadSize: 96,\n payloadType: \"TokenEvent::payload::freeze_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(FreezeAccountEventData),\n },\n {\n name: \"thaw_account\",\n tag: 7,\n payloadSize: 96,\n payloadType: \"TokenEvent::payload::thaw_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(ThawAccountEventData),\n },\n ] as const);\n\n private static __tnExtractParams(view: DataView, buffer: Uint8Array): { params: TokenEvent.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 if (buffer.length < 1) {\n return null;\n }\n const __tnParam_TokenEvent__payload_event_type = __tnToBigInt(view.getUint8(0));\n const __tnExtractedParams = TokenEvent.Params.fromValues({\n payload_event_type: __tnParam_payload_event_type,\n TokenEvent__payload_event_type: __tnParam_TokenEvent__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 TokenEvent.payloadVariantDescriptors[number] | null {\n const tag = this.view.getUint8(0);\n return TokenEvent.payloadVariantDescriptors.find((variant) => variant.tag === tag) ?? null;\n }\n\n payload(): TokenEvent_payload_Inner {\n const descriptor = this.payloadVariant();\n if (!descriptor) throw new Error(\"TokenEvent: unknown payload variant\");\n const offset = TokenEvent.__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(\"TokenEvent: payload exceeds buffer bounds\");\n const slice = this.buffer.subarray(offset, offset + payloadLength);\n return TokenEvent_payload_Inner.__tnCreate(slice, descriptor, undefined);\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TokenEvent.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_TokenEvent, 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, TokenEvent__payload_event_type: number | bigint): bigint {\n const params = TokenEvent.Params.fromValues({\n payload_event_type: payload_event_type,\n TokenEvent__payload_event_type: TokenEvent__payload_event_type,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: TokenEvent.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"payload.event_type\"] = params.payload_event_type;\n record[\"TokenEvent::payload.event_type\"] = params.TokenEvent__payload_event_type;\n return record;\n }\n\n static footprintIrFromParams(params: TokenEvent.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: TokenEvent.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 TokenEvent');\n return __tnBigIntToNumber(irResult, 'TokenEvent::footprintFromParams');\n }\n\n static footprintFromValues(input: { payload_event_type: number | bigint, TokenEvent__payload_event_type: number | bigint }): number {\n const params = TokenEvent.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: TokenEvent.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: TokenEvent.Params }): { ok: boolean; code?: string; consumed?: number; params?: TokenEvent.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, 'TokenEvent::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'TokenEvent::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: TokenEvent.Params }): TokenEvent | 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 TokenEvent(buffer, cached);\n return state;\n }\n\n\n}\n\nexport namespace TokenEvent {\n export type Params = {\n /** ABI path: payload.event_type */\n readonly payload_event_type: bigint;\n /** ABI path: TokenEvent::payload.event_type */\n readonly TokenEvent__payload_event_type: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n payload_event_type: \"payload.event_type\",\n TokenEvent__payload_event_type: \"TokenEvent::payload.event_type\",\n } as const);\n\n export const Params = {\n fromValues(input: { payload_event_type: number | bigint, TokenEvent__payload_event_type?: number | bigint }): Params {\n const payloadEventType = __tnToBigInt(input.payload_event_type);\n const tokenEventPayloadType = input.TokenEvent__payload_event_type !== undefined\n ? __tnToBigInt(input.TokenEvent__payload_event_type)\n : payloadEventType;\n return {\n payload_event_type: payloadEventType,\n TokenEvent__payload_event_type: tokenEventPayloadType,\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, TokenEvent__payload_event_type?: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\n__tnRegisterFootprint(\"TokenEvent\", (params) => TokenEvent.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TokenEvent\", (buffer, params) => TokenEvent.__tnInvokeValidate(buffer, params));\n\nexport class TokenEventBuilder {\n private __tnPrefixBuffer: Uint8Array;\n private __tnPrefixView: DataView;\n private __tnField_event_type: number | null = null;\n private __tnPayload_payload: { descriptor: typeof TokenEvent.payloadVariantDescriptors[number]; bytes: Uint8Array } | null = null;\n private __tnCachedParams: TokenEvent.Params | null = null;\n private __tnLastBuffer: Uint8Array | null = null;\n private __tnLastParams: TokenEvent.Params | null = null;\n private __tnVariantSelector_payload?: __TnVariantSelectorResult<TokenEventBuilder>;\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<TokenEventBuilder> {\n if (!this.__tnVariantSelector_payload) {\n this.__tnVariantSelector_payload = __tnCreateVariantSelector(this, TokenEvent.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(\"TokenEventBuilder: field 'event_type' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenEventBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 1 + payloadLength;\n const footprintSize = TokenEvent.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(\"TokenEventBuilder: field 'event_type' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenEventBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 1 + payloadLength;\n const footprintSize = TokenEvent.footprintFromParams(params);\n const size = Math.max(requiredSize, footprintSize);\n if (target.length - offset < size) throw new Error(\"TokenEventBuilder: 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(): TokenEvent {\n const buffer = this.build();\n const params = this.__tnLastParams ?? this.__tnComputeParams();\n const view = TokenEvent.from_array(buffer, { params });\n if (!view) throw new Error(\"TokenEventBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): TokenEvent {\n return this.finish();\n }\n\n dynamicParams(): TokenEvent.Params {\n return this.__tnComputeParams();\n }\n\n private __tnComputeParams(): TokenEvent.Params {\n if (this.__tnCachedParams) return this.__tnCachedParams;\n const eventType = __tnToBigInt(this.__tnPrefixView.getUint8(0));\n const params = TokenEvent.Params.fromValues({\n payload_event_type: eventType,\n TokenEvent__payload_event_type: eventType,\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(\"TokenEventBuilder: field 'event_type' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenEventBuilder: 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: TokenEvent.Params): void {\n const result = TokenEvent.validate(buffer, { params });\n if (!result.ok) {\n throw new Error(`${ TokenEvent }Builder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n this.__tnLastParams = result.params ?? params;\n this.__tnLastBuffer = buffer;\n }\n}\n\n/* ----- TYPE DEFINITION FOR InitializeAccountInstruction ----- */\n\nconst __tn_ir_InitializeAccountInstruction = {\n typeName: \"InitializeAccountInstruction\",\n root: { op: \"align\", alignment: 1, node: { 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: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 1, node: { op: \"call\", typeName: \"StateProof\", args: [{ name: \"proof_body.hdr.type_slot\", source: \"proof_body.hdr.type_slot\" }, { name: \"proof_body.payload_size\", source: \"proof_body.payload_size\" }] } } } }\n} as const;\n\nexport class InitializeAccountInstruction {\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> }): InitializeAccountInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"InitializeAccountInstruction.__tnCreateView requires a Uint8Array\");\n return new InitializeAccountInstruction(new Uint8Array(buffer));\n }\n\n static builder(): InitializeAccountInstructionBuilder {\n return new InitializeAccountInstructionBuilder();\n }\n\n static fromBuilder(builder: InitializeAccountInstructionBuilder): InitializeAccountInstruction | null {\n const buffer = builder.build();\n return InitializeAccountInstruction.from_array(buffer);\n }\n\n get_token_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_token_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get token_account_index(): number {\n return this.get_token_account_index();\n }\n\n set token_account_index(value: number) {\n this.set_token_account_index(value);\n }\n\n get_mint_account_index(): number {\n const offset = 2;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 2;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_owner_account_index(): number {\n const offset = 4;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_owner_account_index(value: number): void {\n const offset = 4;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get owner_account_index(): number {\n return this.get_owner_account_index();\n }\n\n set owner_account_index(value: number) {\n this.set_owner_account_index(value);\n }\n\n get_new_account_seed(): Seed32 {\n const offset = 6;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Seed32.from_array(slice)!;\n }\n\n set_new_account_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 = 6;\n this.buffer.set(sourceBytes, offset);\n }\n\n get new_account_seed(): Seed32 {\n return this.get_new_account_seed();\n }\n\n set new_account_seed(value: Seed32) {\n this.set_new_account_seed(value);\n }\n\n get_state_proof(): StateProof {\n const offset = 38;\n const tail = this.buffer.subarray(offset);\n const validation = StateProof.validate(tail);\n if (!validation.ok || validation.consumed === undefined) {\n throw new Error(\"InitializeAccountInstruction: failed to read field 'state_proof' (invalid nested payload)\");\n }\n const length = validation.consumed;\n const slice = tail.subarray(0, length);\n const opts = validation.params ? { params: validation.params } : undefined;\n return StateProof.from_array(slice, opts)!;\n }\n\n set_state_proof(value: StateProof): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 38;\n this.buffer.set(sourceBytes, offset);\n }\n\n get state_proof(): StateProof {\n return this.get_state_proof();\n }\n\n set state_proof(value: StateProof) {\n this.set_state_proof(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_InitializeAccountInstruction.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_InitializeAccountInstruction, 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 InitializeAccountInstruction');\n }\n return __tnBigIntToNumber(irResult, 'InitializeAccountInstruction::footprint');\n }\n\n static validate(_buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n __tnLogWarn(\"InitializeAccountInstruction::validate falling back to basic length check\");\n return { ok: true, consumed: _buffer.length };\n }\n\n static from_array(buffer: Uint8Array): InitializeAccountInstruction | 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 InitializeAccountInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"InitializeAccountInstruction\", (params) => InitializeAccountInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"InitializeAccountInstruction\", (buffer, params) => InitializeAccountInstruction.__tnInvokeValidate(buffer, params));\n\nexport class InitializeAccountInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n private __tnTail_state_proof: Uint8Array | null = null;\n\n constructor() {\n this.buffer = new Uint8Array(38);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n private __tnInvalidate(): void {\n /* Placeholder for future cache invalidation. */\n }\n\n set_token_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(2, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_owner_account_index(value: number): this {\n this.view.setUint16(4, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_new_account_seed(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"new_account_seed expects 32 bytes\");\n this.buffer.set(value, 6);\n this.__tnInvalidate();\n return this;\n }\n\n set_state_proof(value: StateProof | __TnStructFieldInput): this {\n const bytes = __tnResolveStructFieldInput(value as __TnStructFieldInput, \"InitializeAccountInstructionBuilder::state_proof\");\n this.__tnTail_state_proof = bytes;\n this.__tnInvalidate();\n return this;\n }\n\n build(): Uint8Array {\n const fragments = this.__tnCollectTailFragments();\n const size = this.__tnComputeSize(fragments);\n const buffer = new Uint8Array(size);\n this.__tnWriteInto(buffer, fragments);\n this.__tnValidateOrThrow(buffer);\n return buffer;\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n const fragments = this.__tnCollectTailFragments();\n const size = this.__tnComputeSize(fragments);\n if (target.length - offset < size) throw new Error(\"InitializeAccountInstructionBuilder: target buffer too small\");\n const slice = target.subarray(offset, offset + size);\n this.__tnWriteInto(slice, fragments);\n this.__tnValidateOrThrow(slice);\n return target;\n }\n\n finish(): InitializeAccountInstruction {\n const buffer = this.build();\n const view = InitializeAccountInstruction.from_array(buffer);\n if (!view) throw new Error(\"InitializeAccountInstructionBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): InitializeAccountInstruction {\n return this.finish();\n }\n\n private __tnCollectTailFragments(): Uint8Array[] {\n return [\n (() => {\n const bytes = this.__tnTail_state_proof;\n if (!bytes) throw new Error(\"InitializeAccountInstructionBuilder: field 'state_proof' must be set before build()\");\n return bytes;\n })(),\n ];\n }\n\n private __tnComputeSize(fragments: readonly Uint8Array[]): number {\n let total = this.buffer.length;\n for (const fragment of fragments) {\n total += fragment.length;\n }\n return total;\n }\n\n private __tnWriteInto(target: Uint8Array, fragments: readonly Uint8Array[]): void {\n target.set(this.buffer, 0);\n let cursor = this.buffer.length;\n for (const fragment of fragments) {\n target.set(fragment, cursor);\n cursor += fragment.length;\n }\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array): void {\n const result = InitializeAccountInstruction.validate(buffer);\n if (!result.ok) {\n throw new Error(`InitializeAccountInstructionBuilder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n }\n}\n\n/* ----- TYPE DEFINITION FOR InitializeMintInstruction ----- */\n\nconst __tn_ir_InitializeMintInstruction = {\n typeName: \"InitializeMintInstruction\",\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: \"align\", alignment: 2, node: { op: \"const\", value: 2n } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 1n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 1n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 9n } } }, right: { op: \"align\", alignment: 1, node: { op: \"const\", value: 32n } } }, right: { op: \"align\", alignment: 1, node: { op: \"call\", typeName: \"StateProof\", args: [{ name: \"proof_body.hdr.type_slot\", source: \"proof_body.hdr.type_slot\" }, { name: \"proof_body.payload_size\", source: \"proof_body.payload_size\" }] } } } }\n} as const;\n\nexport class InitializeMintInstruction {\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> }): InitializeMintInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"InitializeMintInstruction.__tnCreateView requires a Uint8Array\");\n return new InitializeMintInstruction(new Uint8Array(buffer));\n }\n\n static builder(): InitializeMintInstructionBuilder {\n return new InitializeMintInstructionBuilder();\n }\n\n static fromBuilder(builder: InitializeMintInstructionBuilder): InitializeMintInstruction | null {\n const buffer = builder.build();\n return InitializeMintInstruction.from_array(buffer);\n }\n\n get_mint_account_index(): number {\n const offset = 0;\n return this.view.getUint16(offset, true); /* little-endian */\n }\n\n set_mint_account_index(value: number): void {\n const offset = 0;\n this.view.setUint16(offset, value, true); /* little-endian */\n }\n\n get mint_account_index(): number {\n return this.get_mint_account_index();\n }\n\n set mint_account_index(value: number) {\n this.set_mint_account_index(value);\n }\n\n get_decimals(): number {\n const offset = 2;\n return this.view.getUint8(offset);\n }\n\n set_decimals(value: number): void {\n const offset = 2;\n this.view.setUint8(offset, value);\n }\n\n get decimals(): number {\n return this.get_decimals();\n }\n\n set decimals(value: number) {\n this.set_decimals(value);\n }\n\n get_creator(): Pubkey {\n const offset = 3;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_creator(value: Pubkey): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 3;\n this.buffer.set(sourceBytes, offset);\n }\n\n get creator(): Pubkey {\n return this.get_creator();\n }\n\n set creator(value: Pubkey) {\n this.set_creator(value);\n }\n\n get_mint_authority(): Pubkey {\n const offset = 35;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_mint_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 = 35;\n this.buffer.set(sourceBytes, offset);\n }\n\n get mint_authority(): Pubkey {\n return this.get_mint_authority();\n }\n\n set mint_authority(value: Pubkey) {\n this.set_mint_authority(value);\n }\n\n get_freeze_authority(): Pubkey {\n const offset = 67;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Pubkey.from_array(slice)!;\n }\n\n set_freeze_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 = 67;\n this.buffer.set(sourceBytes, offset);\n }\n\n get freeze_authority(): Pubkey {\n return this.get_freeze_authority();\n }\n\n set freeze_authority(value: Pubkey) {\n this.set_freeze_authority(value);\n }\n\n get_has_freeze_authority(): number {\n const offset = 99;\n return this.view.getUint8(offset);\n }\n\n set_has_freeze_authority(value: number): void {\n const offset = 99;\n this.view.setUint8(offset, value);\n }\n\n get has_freeze_authority(): number {\n return this.get_has_freeze_authority();\n }\n\n set has_freeze_authority(value: number) {\n this.set_has_freeze_authority(value);\n }\n\n get_ticker(): TickerField {\n const offset = 100;\n const slice = this.buffer.subarray(offset, offset + 9);\n return TickerField.from_array(slice)!;\n }\n\n set_ticker(value: TickerField): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 100;\n this.buffer.set(sourceBytes, offset);\n }\n\n get ticker(): TickerField {\n return this.get_ticker();\n }\n\n set ticker(value: TickerField) {\n this.set_ticker(value);\n }\n\n get_seed(): Seed32 {\n const offset = 109;\n const slice = this.buffer.subarray(offset, offset + 32);\n return Seed32.from_array(slice)!;\n }\n\n set_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 = 109;\n this.buffer.set(sourceBytes, offset);\n }\n\n get seed(): Seed32 {\n return this.get_seed();\n }\n\n set seed(value: Seed32) {\n this.set_seed(value);\n }\n\n get_state_proof(): StateProof {\n const offset = 141;\n const tail = this.buffer.subarray(offset);\n const validation = StateProof.validate(tail);\n if (!validation.ok || validation.consumed === undefined) {\n throw new Error(\"InitializeMintInstruction: failed to read field 'state_proof' (invalid nested payload)\");\n }\n const length = validation.consumed;\n const slice = tail.subarray(0, length);\n const opts = validation.params ? { params: validation.params } : undefined;\n return StateProof.from_array(slice, opts)!;\n }\n\n set_state_proof(value: StateProof): void {\n /* Copy bytes from source struct to this field */\n const sourceBytes = (value as any).buffer as Uint8Array;\n const offset = 141;\n this.buffer.set(sourceBytes, offset);\n }\n\n get state_proof(): StateProof {\n return this.get_state_proof();\n }\n\n set state_proof(value: StateProof) {\n this.set_state_proof(value);\n }\n\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_InitializeMintInstruction.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_InitializeMintInstruction, 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 InitializeMintInstruction');\n }\n return __tnBigIntToNumber(irResult, 'InitializeMintInstruction::footprint');\n }\n\n static validate(_buffer: Uint8Array, _opts?: { params?: never }): { ok: boolean; code?: string; consumed?: number } {\n __tnLogWarn(\"InitializeMintInstruction::validate falling back to basic length check\");\n return { ok: true, consumed: _buffer.length };\n }\n\n static from_array(buffer: Uint8Array): InitializeMintInstruction | 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 InitializeMintInstruction(buffer);\n }\n\n}\n\n__tnRegisterFootprint(\"InitializeMintInstruction\", (params) => InitializeMintInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"InitializeMintInstruction\", (buffer, params) => InitializeMintInstruction.__tnInvokeValidate(buffer, params));\n\nexport class InitializeMintInstructionBuilder {\n private buffer: Uint8Array;\n private view: DataView;\n private __tnTail_state_proof: Uint8Array | null = null;\n\n constructor() {\n this.buffer = new Uint8Array(141);\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n }\n\n private __tnInvalidate(): void {\n /* Placeholder for future cache invalidation. */\n }\n\n set_mint_account_index(value: number): this {\n this.view.setUint16(0, value, true);\n this.__tnInvalidate();\n return this;\n }\n\n set_decimals(value: number): this {\n this.view.setUint8(2, value);\n this.__tnInvalidate();\n return this;\n }\n\n set_creator(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"creator expects 32 bytes\");\n this.buffer.set(value, 3);\n this.__tnInvalidate();\n return this;\n }\n\n set_mint_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"mint_authority expects 32 bytes\");\n this.buffer.set(value, 35);\n this.__tnInvalidate();\n return this;\n }\n\n set_freeze_authority(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"freeze_authority expects 32 bytes\");\n this.buffer.set(value, 67);\n this.__tnInvalidate();\n return this;\n }\n\n set_has_freeze_authority(value: number): this {\n this.view.setUint8(99, value);\n this.__tnInvalidate();\n return this;\n }\n\n set_ticker(value: Uint8Array): this {\n if (value.length !== 9) throw new Error(\"ticker expects 9 bytes\");\n this.buffer.set(value, 100);\n this.__tnInvalidate();\n return this;\n }\n\n set_seed(value: Uint8Array): this {\n if (value.length !== 32) throw new Error(\"seed expects 32 bytes\");\n this.buffer.set(value, 109);\n this.__tnInvalidate();\n return this;\n }\n\n set_state_proof(value: StateProof | __TnStructFieldInput): this {\n const bytes = __tnResolveStructFieldInput(value as __TnStructFieldInput, \"InitializeMintInstructionBuilder::state_proof\");\n this.__tnTail_state_proof = bytes;\n this.__tnInvalidate();\n return this;\n }\n\n build(): Uint8Array {\n const fragments = this.__tnCollectTailFragments();\n const size = this.__tnComputeSize(fragments);\n const buffer = new Uint8Array(size);\n this.__tnWriteInto(buffer, fragments);\n this.__tnValidateOrThrow(buffer);\n return buffer;\n }\n\n buildInto(target: Uint8Array, offset = 0): Uint8Array {\n const fragments = this.__tnCollectTailFragments();\n const size = this.__tnComputeSize(fragments);\n if (target.length - offset < size) throw new Error(\"InitializeMintInstructionBuilder: target buffer too small\");\n const slice = target.subarray(offset, offset + size);\n this.__tnWriteInto(slice, fragments);\n this.__tnValidateOrThrow(slice);\n return target;\n }\n\n finish(): InitializeMintInstruction {\n const buffer = this.build();\n const view = InitializeMintInstruction.from_array(buffer);\n if (!view) throw new Error(\"InitializeMintInstructionBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): InitializeMintInstruction {\n return this.finish();\n }\n\n private __tnCollectTailFragments(): Uint8Array[] {\n return [\n (() => {\n const bytes = this.__tnTail_state_proof;\n if (!bytes) throw new Error(\"InitializeMintInstructionBuilder: field 'state_proof' must be set before build()\");\n return bytes;\n })(),\n ];\n }\n\n private __tnComputeSize(fragments: readonly Uint8Array[]): number {\n let total = this.buffer.length;\n for (const fragment of fragments) {\n total += fragment.length;\n }\n return total;\n }\n\n private __tnWriteInto(target: Uint8Array, fragments: readonly Uint8Array[]): void {\n target.set(this.buffer, 0);\n let cursor = this.buffer.length;\n for (const fragment of fragments) {\n target.set(fragment, cursor);\n cursor += fragment.length;\n }\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array): void {\n const result = InitializeMintInstruction.validate(buffer);\n if (!result.ok) {\n throw new Error(`InitializeMintInstructionBuilder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n }\n}\n\n/* ----- TYPE DEFINITION FOR TokenInstruction ----- */\n\nconst __tn_ir_TokenInstruction = {\n typeName: \"TokenInstruction\",\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: \"field\", param: \"payload.payload_size\" } } } }\n} as const;\n\nexport class TokenInstruction_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>): TokenInstruction_payload_Inner {\n return new TokenInstruction_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 asInitializeMint(): InitializeMintInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 0) return null;\n return InitializeMintInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asInitializeAccount(): InitializeAccountInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 1) return null;\n return InitializeAccountInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asTransfer(): TransferInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 2) return null;\n return TransferInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asMintTo(): MintToInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 3) return null;\n return MintToInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asBurn(): BurnInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 4) return null;\n return BurnInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asCloseAccount(): CloseAccountInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 5) return null;\n return CloseAccountInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asFreezeAccount(): FreezeAccountInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 6) return null;\n return FreezeAccountInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n asThawAccount(): ThawAccountInstruction | null {\n if (!this.descriptor || this.descriptor.tag !== 7) return null;\n return ThawAccountInstruction.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? undefined });\n }\n\n}\n\nexport class TokenInstruction {\n private view: DataView;\n private static readonly __tnFieldOffset_payload = 1;\n private __tnParams: TokenInstruction.Params;\n\n private constructor(private buffer: Uint8Array, params?: TokenInstruction.Params) {\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n if (params) {\n this.__tnParams = params;\n } else {\n const derived = TokenInstruction.__tnExtractParams(this.view, buffer);\n if (!derived) {\n throw new Error(\"TokenInstruction: failed to derive dynamic parameters\");\n }\n this.__tnParams = derived.params;\n }\n }\n\n static __tnCreateView(buffer: Uint8Array, opts?: { params?: TokenInstruction.Params }): TokenInstruction {\n if (!buffer || buffer.length === undefined) throw new Error(\"TokenInstruction.__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 = TokenInstruction.__tnExtractParams(view, buffer);\n if (!derived) throw new Error(\"TokenInstruction.__tnCreateView: failed to derive params\");\n params = derived.params;\n }\n const instance = new TokenInstruction(new Uint8Array(buffer), params);\n return instance;\n }\n\n dynamicParams(): TokenInstruction.Params {\n return this.__tnParams;\n }\n\n static builder(): TokenInstructionBuilder {\n return new TokenInstructionBuilder();\n }\n\n static fromBuilder(builder: TokenInstructionBuilder): TokenInstruction | null {\n const buffer = builder.build();\n const params = builder.dynamicParams();\n return TokenInstruction.from_array(buffer, { params });\n }\n\n static readonly payloadVariantDescriptors = Object.freeze([\n {\n name: \"initialize_mint\",\n tag: 0,\n payloadSize: null,\n payloadType: \"TokenInstruction::payload::initialize_mint\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(InitializeMintInstruction),\n },\n {\n name: \"initialize_account\",\n tag: 1,\n payloadSize: null,\n payloadType: \"TokenInstruction::payload::initialize_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(InitializeAccountInstruction),\n },\n {\n name: \"transfer\",\n tag: 2,\n payloadSize: 12,\n payloadType: \"TokenInstruction::payload::transfer\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(TransferInstruction),\n },\n {\n name: \"mint_to\",\n tag: 3,\n payloadSize: 14,\n payloadType: \"TokenInstruction::payload::mint_to\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(MintToInstruction),\n },\n {\n name: \"burn\",\n tag: 4,\n payloadSize: 14,\n payloadType: \"TokenInstruction::payload::burn\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(BurnInstruction),\n },\n {\n name: \"close_account\",\n tag: 5,\n payloadSize: 6,\n payloadType: \"TokenInstruction::payload::close_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(CloseAccountInstruction),\n },\n {\n name: \"freeze_account\",\n tag: 6,\n payloadSize: 6,\n payloadType: \"TokenInstruction::payload::freeze_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(FreezeAccountInstruction),\n },\n {\n name: \"thaw_account\",\n tag: 7,\n payloadSize: 6,\n payloadType: \"TokenInstruction::payload::thaw_account\",\n createPayloadBuilder: () => __tnMaybeCallBuilder(ThawAccountInstruction),\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_tag: number | null = null;\n let __tnCursorMutable = 0;\n if (__tnCursorMutable + 1 > __tnLength) return null;\n const __tnRead_tag = view.getUint8(__tnCursorMutable);\n __tnFieldValue_tag = __tnRead_tag;\n __tnCursorMutable += 1;\n const __tnEnumTagValue_payload = __tnFieldValue_tag;\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 case 4: break;\n case 5: break;\n case 6: break;\n case 7: 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: TokenInstruction.Params; derived: Record<string, bigint> | null } | null {\n if (buffer.length < 1) {\n return null;\n }\n const __tnParam_payload_tag = __tnToBigInt(view.getUint8(0));\n const __tnLayout = TokenInstruction.__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 = TokenInstruction.Params.fromValues({\n payload_payload_size: __tnParamSeq_payload_payload_size as bigint,\n payload_tag: __tnParam_payload_tag,\n });\n return { params: __tnExtractedParams, derived: null };\n }\n\n get_tag(): number {\n const offset = 0;\n return this.view.getUint8(offset);\n }\n\n set_tag(value: number): void {\n const offset = 0;\n this.view.setUint8(offset, value);\n }\n\n get tag(): number {\n return this.get_tag();\n }\n\n set tag(value: number) {\n this.set_tag(value);\n }\n\n payloadVariant(): typeof TokenInstruction.payloadVariantDescriptors[number] | null {\n const tag = this.view.getUint8(0);\n return TokenInstruction.payloadVariantDescriptors.find((variant) => variant.tag === tag) ?? null;\n }\n\n payload(): TokenInstruction_payload_Inner {\n const descriptor = this.payloadVariant();\n if (!descriptor) throw new Error(\"TokenInstruction: unknown payload variant\");\n const offset = TokenInstruction.__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(\"TokenInstruction: payload exceeds buffer bounds\");\n const slice = this.buffer.subarray(offset, offset + payloadLength);\n return TokenInstruction_payload_Inner.__tnCreate(slice, descriptor, undefined);\n }\n private static __tnFootprintInternal(__tnParams: Record<string, bigint>): bigint {\n return __tnEvalFootprint(__tn_ir_TokenInstruction.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_TokenInstruction, 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_payload_size: number | bigint, payload_tag: number | bigint): bigint {\n const params = TokenInstruction.Params.fromValues({\n payload_payload_size: payload_payload_size,\n payload_tag: payload_tag,\n });\n return this.footprintIrFromParams(params);\n }\n\n private static __tnPackParams(params: TokenInstruction.Params): Record<string, bigint> {\n const record: Record<string, bigint> = Object.create(null);\n record[\"payload.payload_size\"] = params.payload_payload_size;\n record[\"payload.tag\"] = params.payload_tag;\n return record;\n }\n\n static footprintIrFromParams(params: TokenInstruction.Params): bigint {\n const __tnParams = this.__tnPackParams(params);\n return this.__tnFootprintInternal(__tnParams);\n }\n\n static footprintFromParams(params: TokenInstruction.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 TokenInstruction');\n return __tnBigIntToNumber(irResult, 'TokenInstruction::footprintFromParams');\n }\n\n static footprintFromValues(input: { payload_payload_size: number | bigint, payload_tag: number | bigint }): number {\n const params = TokenInstruction.params(input);\n return this.footprintFromParams(params);\n }\n\n static footprint(params: TokenInstruction.Params): number {\n return this.footprintFromParams(params);\n }\n\n static validate(buffer: Uint8Array, opts?: { params?: TokenInstruction.Params }): { ok: boolean; code?: string; consumed?: number; params?: TokenInstruction.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, 'TokenInstruction::validate') : undefined, params };\n }\n const consumed = irResult.consumed ? __tnBigIntToNumber(irResult.consumed, 'TokenInstruction::validate') : undefined;\n return { ok: true, consumed, params };\n }\n\n static from_array(buffer: Uint8Array, opts?: { params?: TokenInstruction.Params }): TokenInstruction | 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 TokenInstruction(buffer, cached);\n return state;\n }\n\n\n}\n\nexport namespace TokenInstruction {\n export type Params = {\n /** ABI path: payload.payload_size */\n readonly payload_payload_size: bigint;\n /** ABI path: payload.tag */\n readonly payload_tag: bigint;\n };\n\n export const ParamKeys = Object.freeze({\n payload_payload_size: \"payload.payload_size\",\n payload_tag: \"payload.tag\",\n } as const);\n\n export const Params = {\n fromValues(input: { payload_payload_size: number | bigint, payload_tag: number | bigint }): Params {\n return {\n payload_payload_size: __tnToBigInt(input.payload_payload_size),\n payload_tag: __tnToBigInt(input.payload_tag),\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_payload_size: number | bigint, payload_tag: number | bigint }): Params {\n return Params.fromValues(input);\n }\n}\n\n__tnRegisterFootprint(\"TokenInstruction\", (params) => TokenInstruction.__tnInvokeFootprint(params));\n__tnRegisterValidate(\"TokenInstruction\", (buffer, params) => TokenInstruction.__tnInvokeValidate(buffer, params));\n\nexport class TokenInstructionBuilder {\n private __tnPrefixBuffer: Uint8Array;\n private __tnPrefixView: DataView;\n private __tnField_tag: number | null = null;\n private __tnPayload_payload: { descriptor: typeof TokenInstruction.payloadVariantDescriptors[number]; bytes: Uint8Array } | null = null;\n private __tnCachedParams: TokenInstruction.Params | null = null;\n private __tnLastBuffer: Uint8Array | null = null;\n private __tnLastParams: TokenInstruction.Params | null = null;\n private __tnVariantSelector_payload?: __TnVariantSelectorResult<TokenInstructionBuilder>;\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_tag(value: number): void {\n this.__tnField_tag = value & 0xff;\n this.__tnInvalidate();\n }\n\n set_tag(value: number): this {\n this.__tnAssign_tag(value);\n return this;\n }\n\n payload(): __TnVariantSelectorResult<TokenInstructionBuilder> {\n if (!this.__tnVariantSelector_payload) {\n this.__tnVariantSelector_payload = __tnCreateVariantSelector(this, TokenInstruction.payloadVariantDescriptors, (descriptor, payload) => {\n this.__tnPayload_payload = { descriptor, bytes: new Uint8Array(payload) };\n this.__tnAssign_tag(descriptor.tag);\n });\n }\n return this.__tnVariantSelector_payload!;\n }\n\n build(): Uint8Array {\n const params = this.__tnComputeParams();\n if (this.__tnField_tag === null) throw new Error(\"TokenInstructionBuilder: field 'tag' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenInstructionBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 1 + payloadLength;\n const footprintSize = TokenInstruction.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_tag === null) throw new Error(\"TokenInstructionBuilder: field 'tag' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenInstructionBuilder: payload variant not selected\");\n const payloadLength = this.__tnPayload_payload.bytes.length;\n const requiredSize = 1 + payloadLength;\n const footprintSize = TokenInstruction.footprintFromParams(params);\n const size = Math.max(requiredSize, footprintSize);\n if (target.length - offset < size) throw new Error(\"TokenInstructionBuilder: 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(): TokenInstruction {\n const buffer = this.build();\n const params = this.__tnLastParams ?? this.__tnComputeParams();\n const view = TokenInstruction.from_array(buffer, { params });\n if (!view) throw new Error(\"TokenInstructionBuilder: failed to finalize view\");\n return view;\n }\n\n finishView(): TokenInstruction {\n return this.finish();\n }\n\n dynamicParams(): TokenInstruction.Params {\n return this.__tnComputeParams();\n }\n\n private __tnComputeParams(): TokenInstruction.Params {\n if (this.__tnCachedParams) return this.__tnCachedParams;\n const params = TokenInstruction.Params.fromValues({\n payload_payload_size: (() => { if (!this.__tnPayload_payload) throw new Error(\"TokenInstructionBuilder: payload 'payload' must be selected before build\"); return __tnToBigInt(this.__tnPayload_payload.bytes.length); })(),\n payload_tag: (() => { if (this.__tnField_tag === null) throw new Error(\"TokenInstructionBuilder: missing enum tag\"); return __tnToBigInt(this.__tnField_tag); })(),\n });\n this.__tnCachedParams = params;\n return params;\n }\n\n private __tnWriteInto(target: Uint8Array): void {\n if (this.__tnField_tag === null) throw new Error(\"TokenInstructionBuilder: field 'tag' must be set before build\");\n if (!this.__tnPayload_payload) throw new Error(\"TokenInstructionBuilder: 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_tag);\n target.set(this.__tnPayload_payload.bytes, 1);\n }\n\n private __tnValidateOrThrow(buffer: Uint8Array, params: TokenInstruction.Params): void {\n const result = TokenInstruction.validate(buffer, { params });\n if (!result.ok) {\n throw new Error(`${ TokenInstruction }Builder: builder produced invalid buffer (code=${result.code ?? \"unknown\"})`);\n }\n this.__tnLastParams = result.params ?? params;\n this.__tnLastBuffer = buffer;\n }\n}\n","import {\n TokenInstruction,\n TokenInstructionBuilder,\n} from '../abi/thru/program/token/types';\n\nimport type { AccountLookupContext } from '../types';\n\nexport type { AccountLookupContext };\n\ntype TokenInstructionVariantName =\n (typeof TokenInstruction.payloadVariantDescriptors)[number]['name'];\n\nexport function buildTokenInstructionBytes(\n variant: TokenInstructionVariantName,\n payload: Uint8Array\n): Uint8Array {\n const builder = new TokenInstructionBuilder();\n builder.payload().select(variant).writePayload(payload).finish();\n return builder.build();\n}\n","import {\n InitializeMintInstructionBuilder,\n TickerFieldBuilder,\n} from '../abi/thru/program/token/types';\nimport { TICKER_MAX_LENGTH, ZERO_PUBKEY } from '../constants';\nimport type { AccountLookupContext, InitializeMintArgs, InstructionData } from '../types';\nimport { buildTokenInstructionBytes } from './shared';\n\nconst TEXT_ENCODER = new TextEncoder();\n\nexport function hexToBytes(hex: string): Uint8Array {\n const normalized = hex.startsWith('0x') ? hex.slice(2) : hex;\n if (normalized.length % 2 !== 0) {\n throw new Error('Hex string must have even number of characters');\n }\n const bytes = new Uint8Array(normalized.length / 2);\n for (let i = 0; i < normalized.length; i += 2) {\n bytes[i / 2] = parseInt(normalized.substring(i, i + 2), 16);\n }\n return bytes;\n}\n\nexport function createInitializeMintInstruction({\n mintAccountBytes,\n decimals,\n mintAuthorityBytes,\n freezeAuthorityBytes,\n ticker,\n seedHex,\n stateProof,\n creatorBytes,\n}: InitializeMintArgs): InstructionData {\n const hasFreezeAuthority = freezeAuthorityBytes ? 1 : 0;\n const seedBytes = hexToBytes(seedHex);\n if (seedBytes.length !== 32) {\n throw new Error('Seed must be 32 bytes (64 hex characters)');\n }\n const tickerFieldBytes = buildTickerFieldBytes(ticker);\n const creator = creatorBytes ?? mintAuthorityBytes;\n\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n const mintAccountIndex = context.getAccountIndex(mintAccountBytes);\n const mintAuthority = mintAuthorityBytes;\n const freezeAuthority = freezeAuthorityBytes ?? ZERO_PUBKEY;\n\n const payload = new InitializeMintInstructionBuilder()\n .set_mint_account_index(mintAccountIndex)\n .set_decimals(decimals)\n .set_creator(creator)\n .set_mint_authority(mintAuthority)\n .set_freeze_authority(freezeAuthority)\n .set_has_freeze_authority(hasFreezeAuthority)\n .set_ticker(tickerFieldBytes)\n .set_seed(seedBytes)\n .set_state_proof(stateProof)\n .build();\n\n return buildTokenInstructionBytes('initialize_mint', payload);\n };\n}\n\nfunction buildTickerFieldBytes(ticker: string): Uint8Array {\n const normalized = ticker.trim().toUpperCase();\n const tickerBytes = TEXT_ENCODER.encode(normalized);\n if (tickerBytes.length > TICKER_MAX_LENGTH) {\n throw new Error('Ticker must be 8 characters or less');\n }\n\n const padded = new Uint8Array(TICKER_MAX_LENGTH);\n padded.set(tickerBytes);\n\n return new TickerFieldBuilder()\n .set_length(tickerBytes.length)\n .set_bytes(Array.from(padded))\n .build();\n}\n","import { InitializeAccountInstructionBuilder } from '../abi/thru/program/token/types';\nimport type { AccountLookupContext, InitializeAccountArgs, InstructionData } from '../types';\nimport { buildTokenInstructionBytes } from './shared';\n\nexport function createInitializeAccountInstruction(\n args: InitializeAccountArgs\n): InstructionData {\n if (args.seedBytes.length !== 32) {\n throw new Error('Token account seed must be 32 bytes');\n }\n\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n const tokenAccountIndex = context.getAccountIndex(args.tokenAccountBytes);\n const mintAccountIndex = context.getAccountIndex(args.mintAccountBytes);\n const ownerAccountIndex = context.getAccountIndex(args.ownerAccountBytes);\n\n const payload = new InitializeAccountInstructionBuilder()\n .set_token_account_index(tokenAccountIndex)\n .set_mint_account_index(mintAccountIndex)\n .set_owner_account_index(ownerAccountIndex)\n .set_new_account_seed(args.seedBytes)\n .set_state_proof(args.stateProof)\n .build();\n\n return buildTokenInstructionBytes('initialize_account', payload);\n };\n}\n","import { MintToInstructionBuilder } from '../abi/thru/program/token/types';\nimport type { AccountLookupContext, MintToArgs, InstructionData } from '../types';\nimport { buildTokenInstructionBytes } from './shared';\n\ntype MintToInstructionBuilderWithBigInt = MintToInstructionBuilder & {\n set_amount(value: number | bigint): MintToInstructionBuilder;\n};\n\nexport function createMintToInstruction(args: MintToArgs): InstructionData {\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n const mintAccountIndex = context.getAccountIndex(args.mintAccountBytes);\n const destinationIndex = context.getAccountIndex(args.destinationAccountBytes);\n const authorityIndex = context.getAccountIndex(args.authorityAccountBytes);\n\n const payloadBuilder = new MintToInstructionBuilder()\n .set_mint_account_index(mintAccountIndex)\n .set_dest_account_index(destinationIndex)\n .set_authority_account_index(authorityIndex);\n\n (payloadBuilder as MintToInstructionBuilderWithBigInt).set_amount(args.amount);\n\n const payload = payloadBuilder.build();\n\n return buildTokenInstructionBytes('mint_to', payload);\n };\n}\n","import { TransferInstruction, TransferInstructionBuilder } from '../abi/thru/program/token/types';\nimport type { AccountLookupContext, TransferArgs, InstructionData } from '../types';\nimport { buildTokenInstructionBytes } from './shared';\n\ntype TransferInstructionBuilderWithBigInt = TransferInstructionBuilder & {\n set_amount(value: number | bigint): TransferInstructionBuilder;\n};\n\nexport function createTransferInstruction(args: TransferArgs): InstructionData {\n return async (context: AccountLookupContext): Promise<Uint8Array> => {\n const sourceIndex = context.getAccountIndex(args.sourceAccountBytes);\n const destinationIndex = context.getAccountIndex(args.destinationAccountBytes);\n\n const payloadBuilder = TransferInstruction.builder()\n .set_source_account_index(sourceIndex)\n .set_dest_account_index(destinationIndex);\n\n (payloadBuilder as TransferInstructionBuilderWithBigInt).set_amount(args.amount);\n\n const payload = payloadBuilder.build();\n\n return buildTokenInstructionBytes('transfer', payload);\n };\n}\n","import { Pubkey } from '@thru/thru-sdk';\nimport type { Thru } from '@thru/thru-sdk/client';\nimport { PUBKEY_LENGTH } from './constants';\n\nconst TOKEN_ACCOUNT_DEFAULT_SEED = new Uint8Array(PUBKEY_LENGTH);\n\nexport function deriveMintAddress(\n thru: Thru,\n mintAuthorityAddress: string,\n seed: string,\n tokenProgramAddress: string\n): { address: string; bytes: Uint8Array; derivedSeed: Uint8Array } {\n const mintAuthorityBytes = Pubkey.from(mintAuthorityAddress).toBytes();\n const seedBytes = hexToBytes(seed);\n if (seedBytes.length !== 32) throw new Error('Seed must be 32 bytes (64 hex characters)');\n\n const { bytes: derivedSeed } = thru.helpers.deriveAddress([mintAuthorityBytes, seedBytes]);\n\n const result = thru.helpers.deriveProgramAddress({\n programAddress: tokenProgramAddress,\n seed: derivedSeed,\n ephemeral: false,\n });\n\n return {\n address: result.address,\n bytes: result.bytes,\n derivedSeed,\n };\n}\n\nexport function deriveTokenAccountAddress(\n thru: Thru,\n ownerAddress: string,\n mintAddress: string,\n tokenProgramAddress: string,\n seed: Uint8Array = TOKEN_ACCOUNT_DEFAULT_SEED\n): { address: string; bytes: Uint8Array; derivedSeed: Uint8Array } {\n if (seed.length !== PUBKEY_LENGTH) throw new Error('Token account seed must be 32 bytes');\n\n const ownerBytes = Pubkey.from(ownerAddress).toBytes();\n const mintBytes = Pubkey.from(mintAddress).toBytes();\n\n const { bytes: derivedSeed } = thru.helpers.deriveAddress([ownerBytes, mintBytes, seed]);\n\n const result = thru.helpers.deriveProgramAddress({\n programAddress: tokenProgramAddress,\n seed: derivedSeed,\n ephemeral: false,\n });\n\n return {\n address: result.address,\n bytes: result.bytes,\n derivedSeed,\n };\n}\n\nexport function deriveWalletSeed(\n thru: Thru,\n walletAddress: string,\n extraSeeds: Uint8Array[] = []\n): Uint8Array {\n const walletBytes = Pubkey.from(walletAddress).toBytes();\n return thru.helpers.deriveAddress([walletBytes, ...extraSeeds]).bytes;\n}\n\nfunction hexToBytes(hex: string): Uint8Array {\n const normalized = hex.startsWith('0x') ? hex.slice(2) : hex;\n if (normalized.length % 2 !== 0) {\n throw new Error('Hex string must have even number of characters');\n }\n const bytes = new Uint8Array(normalized.length / 2);\n for (let i = 0; i < normalized.length; i += 2) {\n bytes[i / 2] = parseInt(normalized.substring(i, i + 2), 16);\n }\n return bytes;\n}\n","import { encodeAddress } from '@thru/helpers';\nimport type { Account } from '@thru/thru-sdk';\nimport { Pubkey as AbiPubkey } from './abi/thru/common/primitives/types';\nimport {\n TickerField,\n TokenAccount,\n TokenMintAccount,\n} from './abi/thru/program/token/types';\nimport type { MintAccountInfo, TokenAccountInfo } from './types';\n\nconst TEXT_DECODER = new TextDecoder();\n\nexport function parseMintAccountData(account: Account): MintAccountInfo {\n const data = account.data?.data;\n if (!data) {\n throw new Error('Mint account data is missing');\n }\n\n const parsed = TokenMintAccount.from_array(data);\n if (!parsed) {\n throw new Error('Mint account data is malformed');\n }\n\n const hasFreezeAuthority = parsed.get_has_freeze_authority() === 1;\n const freezeAuthority = hasFreezeAuthority\n ? encodeAddress(pubkeyToBytes(parsed.get_freeze_authority()))\n : null;\n\n return {\n decimals: parsed.get_decimals(),\n supply: parsed.get_supply(),\n creator: encodeAddress(pubkeyToBytes(parsed.get_creator())),\n mintAuthority: encodeAddress(pubkeyToBytes(parsed.get_mint_authority())),\n freezeAuthority,\n hasFreezeAuthority,\n ticker: decodeTicker(parsed.get_ticker()),\n };\n}\n\nexport function parseTokenAccountData(account: Account): TokenAccountInfo {\n const data = account.data?.data;\n if (!data) {\n throw new Error('Token account data is missing');\n }\n\n const parsed = TokenAccount.from_array(data);\n if (!parsed) {\n throw new Error('Token account data is malformed');\n }\n\n return {\n mint: encodeAddress(pubkeyToBytes(parsed.get_mint())),\n owner: encodeAddress(pubkeyToBytes(parsed.get_owner())),\n amount: parsed.get_amount(),\n isFrozen: parsed.get_is_frozen() === 1,\n };\n}\n\nexport function isAccountNotFoundError(err: unknown): boolean {\n if (!err) return false;\n return (err as { code?: number }).code === 5;\n}\n\nfunction pubkeyToBytes(pubkey: AbiPubkey): Uint8Array {\n return Uint8Array.from(pubkey.bytes);\n}\n\nfunction decodeTicker(field: TickerField): string {\n const length = field.get_length();\n const bytes = Uint8Array.from(field.get_bytes()).slice(0, length);\n return TEXT_DECODER.decode(bytes).replace(/\\0+$/, '');\n}\n","export function formatRawAmount(amount: bigint, decimals: number): string {\n if (decimals === 0) return amount.toString();\n const scale = BigInt(10) ** BigInt(decimals);\n const whole = amount / scale;\n const fraction = amount % scale;\n const fractionStr = fraction.toString().padStart(decimals, '0').replace(/0+$/, '');\n return fractionStr ? `${whole.toString()}.${fractionStr}` : whole.toString();\n}\n\nexport function bytesToHex(bytes: Uint8Array): string {\n return Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n const normalized = hex.startsWith('0x') ? hex.slice(2) : hex;\n if (normalized.length % 2 !== 0) {\n throw new Error('Hex string must have even number of characters');\n }\n const bytes = new Uint8Array(normalized.length / 2);\n for (let i = 0; i < normalized.length; i += 2) {\n bytes[i / 2] = parseInt(normalized.substring(i, i + 2), 16);\n }\n return bytes;\n}\n"]}
|