@geeqdev/geeq-sdk 0.2.0 → 0.2.2
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/README.md +12 -2
- package/dist/browser/geeq_core_bg.wasm +0 -0
- package/dist/browser/index.js +12468 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/node/geeq_core_bg.wasm +0 -0
- package/dist/node/index.cjs +12559 -0
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.js +12469 -0
- package/dist/node/index.js.map +1 -0
- package/dist/types/index.d.cts +2224 -0
- package/dist/types/index.d.ts +2224 -0
- package/package.json +8 -3
- package/.idea/geeq_sdk.iml +0 -12
- package/.idea/modules.xml +0 -8
- package/.idea/vcs.xml +0 -6
- package/.nvmrc +0 -1
- package/CONTRIBUTING.md +0 -20
- package/example/.env.example +0 -4
- package/example/README.md +0 -304
- package/example/USAGE.md +0 -74
- package/example/index.html +0 -12
- package/example/package-lock.json +0 -1557
- package/example/package.json +0 -25
- package/example/scripts/browser-check.mjs +0 -1421
- package/example/scripts/match-derivation.mjs +0 -65
- package/example/src/App.vue +0 -138
- package/example/src/components/AuthorityPanel.vue +0 -277
- package/example/src/components/ChainPanel.vue +0 -267
- package/example/src/components/ChainState.vue +0 -59
- package/example/src/components/CopyButton.vue +0 -25
- package/example/src/components/CreateAssetPanel.vue +0 -313
- package/example/src/components/DigitalAssetsPanel.vue +0 -68
- package/example/src/components/EvidencePanel.vue +0 -396
- package/example/src/components/ExplorerPanel.vue +0 -119
- package/example/src/components/KeypairPanel.vue +0 -182
- package/example/src/components/PhrasePanel.vue +0 -105
- package/example/src/components/SocketWarning.vue +0 -18
- package/example/src/components/StepGate.vue +0 -24
- package/example/src/components/TransferPanel.vue +0 -416
- package/example/src/components/TxDeadline.vue +0 -19
- package/example/src/components/TxFee.vue +0 -31
- package/example/src/components/TxStatus.vue +0 -105
- package/example/src/composables/useSocketConnection.ts +0 -80
- package/example/src/env.d.ts +0 -12
- package/example/src/main.ts +0 -5
- package/example/src/pennies.ts +0 -7
- package/example/src/style.css +0 -149
- package/example/tsconfig.json +0 -19
- package/example/vite.config.ts +0 -26
- package/jest.config.js +0 -18
- package/scripts/copy-wasm.mjs +0 -21
- package/scripts/smoke.mjs +0 -382
- package/tsconfig.build.json +0 -8
- package/tsconfig.json +0 -21
- package/tsup.config.ts +0 -60
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/errors.ts","../../src/wasm/browser/geeq_core.js","../../src/runtime/wasm-loader.browser.ts","../../src/runtime/init.ts","../../src/encoding/base64.ts","../../src/address/record-type.ts","../../src/crypto/account-id.ts","../../src/address/wallet-address.ts","../../src/crypto/mnemonic.ts","../../src/crypto/keypair.ts","../../src/assert.ts","../../src/amount.ts","../../src/capnp/netActorRec.capnp.ts","../../src/capnp/coinAcctRec.capnp.ts","../../src/capnp/proxyAcctRec.capnp.ts","../../src/capnp/chainStateView.capnp.ts","../../src/capnp/nodeContentStmt.capnp.ts","../../src/capnp/hubContentStmt.capnp.ts","../../src/capnp/relayContentStmt.capnp.ts","../../src/capnp/userValTx.capnp.ts","../../src/tx/expiry.ts","../../src/tx/encode.ts","../../src/tx/fee.ts","../../src/tx/transfer.ts","../../src/tx/proxy.ts","../../src/capnp/payload.capnp.ts","../../src/capnp/userAppTx.capnp.ts","../../src/tx/metadata.ts","../../src/tx/content.ts","../../src/tx/attestation.ts","../../src/tx/nft.ts","../../src/chain/select.ts","../../src/net/routes.ts","../../src/net/transport.ts","../../src/net/discovery.ts","../../src/capnp/paramAcctRec.capnp.ts","../../src/capnp/sysAcctRec.capnp.ts","../../src/capnp/valLayLedger.capnp.ts","../../src/ledger/coin-accounts.ts","../../src/ledger/geeq-ledger.ts","../../src/ledger/net-actors.ts","../../src/ledger/params.ts","../../src/ledger/proxy-accounts.ts","../../src/ledger/decode.ts","../../src/capnp/appLayRec.capnp.ts","../../src/capnp/misc.capnp.ts","../../src/capnp/appLayLedger.capnp.ts","../../src/ledger/nft-records.ts","../../src/net/read-ledger.ts","../../src/chain/geeq-node.ts","../../src/chain/nonce-guard.ts","../../src/chain/geeq-chain.ts","../../src/encoding/hex.ts","../../src/net/explorer.ts","../../src/net/websocket.ts","../../src/socket/tracked-tx.ts","../../src/socket/tx-status.ts","../../src/socket/geeq-socket.ts"],"names":["ptr","module","wasm","scureGenerate","scureValidate","Keypair","__S","__O","capnp2","capnp3","capnp6","UserValTxData","UserValTx","blake3","Message","AttestationSubgroupData","Payload","capnp9","UserAppTxData","UserAppTx","capnp13","capnp14","capnp16","resultOf","DEFAULT_TIMEOUT_MS"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Every error thrown by this SDK is a {@link GeeqError} carrying a stable\n * {@link GeeqErrorCode}. Branch on `code`, never on the message text.\n */\nexport type GeeqErrorCode =\n /** An SDK function was called before the engine finished loading. */\n | 'not-initialized'\n /** The WebAssembly engine could not be loaded. */\n | 'init-failed'\n /** A public or private key was the wrong length, or the pair did not match. */\n | 'invalid-key'\n /** A wallet address was malformed, or encoded a record type we do not know. */\n | 'invalid-address'\n /** A caller-supplied argument was outside its allowed range. */\n | 'invalid-argument'\n /** A node could not be reached at all — no HTTP response arrived. */\n | 'network-unreachable'\n /** A node, simulator or explorer answered with an error status. See `status` and `nodeDetails`. */\n | 'node-error'\n /** A node answered, but its ledger could not be decoded. */\n | 'ledger-unreadable'\n /** The node's chain is not the one the caller said to expect. */\n | 'chain-mismatch'\n /** The signing account has no record on this chain yet — it needs funding. */\n | 'account-not-found'\n /** The account exists but its record type cannot sign this transaction. */\n | 'account-not-attestable'\n /**\n * The node being targeted cannot be identified, or cannot process transactions. Also\n * thrown when a simulator or explorer answers with something it should not serve.\n */\n | 'node-unusable'\n /** Metadata exceeds a limit this chain publishes in its ledger. */\n | 'metadata-too-large'\n /** A second transaction was built for one account against one block. */\n | 'nonce-collision'\n /** The sending account does not hold enough coin. */\n | 'insufficient-funds'\n /** The amount is below the smallest transfer this chain accepts. */\n | 'amount-below-minimum'\n /** The sending account does not hold an NFT it was asked to send. */\n | 'nft-not-owned'\n /** A node's WebSocket could not be opened, or this runtime has no WebSocket at all. */\n | 'socket-unreachable'\n /** The {@link GeeqSocket} was disposed, so it will not send or receive again. */\n | 'socket-closed'\n\nexport interface GeeqErrorOptions {\n readonly cause?: unknown\n /** HTTP status, when a server answered. */\n readonly status?: number\n /**\n * The server's own `details`, verbatim; a list of them is joined with `; `. Never parse\n * it — branch on `code`.\n */\n readonly nodeDetails?: string\n}\n\nexport class GeeqError extends Error {\n readonly code: GeeqErrorCode\n readonly status?: number | undefined\n readonly nodeDetails?: string | undefined\n\n constructor(code: GeeqErrorCode, message: string, options?: GeeqErrorOptions) {\n // Only `cause` belongs to Error; the rest are ours. exactOptionalPropertyTypes\n // forbids handing it an explicit undefined, hence the ternary.\n super(message, options?.cause === undefined ? undefined : { cause: options.cause })\n this.name = 'GeeqError'\n this.code = code\n this.status = options?.status\n this.nodeDetails = options?.nodeDetails\n }\n}\n\nfunction make(code: GeeqErrorCode) {\n return (message: string, cause?: unknown): GeeqError =>\n new GeeqError(code, message, cause === undefined ? undefined : { cause })\n}\n\nexport function notInitialized(what: string): GeeqError {\n return new GeeqError(\n 'not-initialized',\n `${what} was called before the Geeq engine finished loading. ` +\n 'Await initGeeq() once at startup, or use the async helpers (generateKeypair, ' +\n 'importKeypair, createWalletAddress) which load it for you.',\n )\n}\n\n/** The default chain was used before one was installed. */\nexport function noChain(what: string): GeeqError {\n return new GeeqError(\n 'not-initialized',\n `${what} was called before a chain was initialised. ` +\n 'Await GeeqChain.init({ endpoint }) once at startup, or pass an explicit chain ' +\n 'from GeeqChain.connect({ endpoint }).',\n )\n}\n\nexport const invalidKey = make('invalid-key')\nexport const invalidAddress = make('invalid-address')\nexport const invalidArgument = make('invalid-argument')\nexport const ledgerUnreadable = make('ledger-unreadable')\nexport const chainMismatch = make('chain-mismatch')\nexport const accountNotFound = make('account-not-found')\nexport const accountNotAttestable = make('account-not-attestable')\nexport const nodeUnusable = make('node-unusable')\nexport const metadataTooLarge = make('metadata-too-large')\nexport const nonceCollision = make('nonce-collision')\nexport const insufficientFunds = make('insufficient-funds')\nexport const amountBelowMinimum = make('amount-below-minimum')\nexport const nftNotOwned = make('nft-not-owned')\nexport const socketUnreachable = make('socket-unreachable')\nexport const socketClosed = make('socket-closed')\nexport const networkUnreachable = make('network-unreachable')\n\n/** A node answered with an error status. `details` is the node's own message. */\nexport function nodeError(message: string, status: number, details?: string): GeeqError {\n return new GeeqError('node-error', message, {\n status,\n ...(details === undefined ? {} : { nodeDetails: details }),\n })\n}\n","let wasm;\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_export_2.set(idx, obj);\n return idx;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nconst cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\n\nif (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } );\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_export_2.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n}\n/**\n * `LogLevel` definition and methods can be found in this module\n * @param {LogLevel} level\n */\nexport function configureErrorHandling(level) {\n _assertClass(level, LogLevel);\n var ptr0 = level.__destroy_into_raw();\n wasm.configureErrorHandling(ptr0);\n}\n\n/**\n * @param {Uint8Array} genesis_block_buf\n * @returns {ChainStateView}\n */\nexport function generateInitialCsvCapnp(genesis_block_buf) {\n const ptr0 = passArray8ToWasm0(genesis_block_buf, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.generateInitialCsvCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChainStateView.__wrap(ret[0]);\n}\n\n/**\n * @param {Uint8Array} alb_buf\n * @param {Uint8Array} vlb_buf\n * @param {Uint8Array} all_buf\n * @param {Uint8Array} vll_buf\n * @param {Uint8Array} fork_data_buf\n * @returns {ChainStateView}\n */\nexport function generateCsvCapnp(alb_buf, vlb_buf, all_buf, vll_buf, fork_data_buf) {\n const ptr0 = passArray8ToWasm0(alb_buf, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(vlb_buf, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(all_buf, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray8ToWasm0(vll_buf, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray8ToWasm0(fork_data_buf, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ret = wasm.generateCsvCapnp(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChainStateView.__wrap(ret[0]);\n}\n\n/**\n * @param {Uint8Array} genesis_block_buf\n * @returns {ChainStateView}\n */\nexport function generateInitialCsvProto(genesis_block_buf) {\n const ptr0 = passArray8ToWasm0(genesis_block_buf, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.generateInitialCsvProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChainStateView.__wrap(ret[0]);\n}\n\n/**\n * @param {Uint8Array} alb_buf\n * @param {Uint8Array} vlb_buf\n * @param {Uint8Array} all_buf\n * @param {Uint8Array} vll_buf\n * @param {Uint8Array} fork_data_buf\n * @returns {ChainStateView}\n */\nexport function generateCsvProto(alb_buf, vlb_buf, all_buf, vll_buf, fork_data_buf) {\n const ptr0 = passArray8ToWasm0(alb_buf, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(vlb_buf, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(all_buf, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray8ToWasm0(vll_buf, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray8ToWasm0(fork_data_buf, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ret = wasm.generateCsvProto(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChainStateView.__wrap(ret[0]);\n}\n\nlet cachedUint32ArrayMemory0 = null;\n\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n * Returns key derivation path based on the logical hierarchy for deterministic wallets\n * defined in Geeq `Wallet Address Proposal` specification. Returns error if `record_type`\n * is `None`\n *\n * Note: this function may be not much of use because other functions exist for keypair\n * derivation, which are specifically based on logical hierarchy defined for Geeq wallets.\n * @param {RecordType} record_type\n * @param {CoinType} coin_type\n * @param {number} account\n * @param {number} address_index\n * @returns {Uint32Array}\n */\nexport function derivationPathGeeq(record_type, coin_type, account, address_index) {\n const ret = wasm.derivationPathGeeq(record_type, coin_type, account, address_index);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v1;\n}\n\n/**\n * Generates a random 32-byte value to be used as an identifying number for proxy accounts.\n *\n * Proxy account default IRN is deterministically derived according to Geeq `Wallet Address\n * Proposal` specification from public key that was used to create the record.\n *\n * ## Arguments\n *\n * `record_type` - enumeration defined in this library\n * `pub_key` - 32-byte ed25519 key\n * `mint_index` - sequential number tracked by wallet\n * @param {IrnRecordType} record_type\n * @param {Uint8Array} pub_key\n * @param {number} mint_index\n * @returns {Uint8Array}\n */\nexport function generateIrn(record_type, pub_key, mint_index) {\n const ptr0 = passArray8ToWasm0(pub_key, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.generateIrn(record_type, ptr0, len0, mint_index);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v2;\n}\n\n/**\n * Parses a BIP-0039 mnemonic, detects the language from the enabled languages and converts to seed\n * bytes. Supported number of words are 12, 15, 18, 21, and 24.\n *\n * ## Arguments\n *\n * `mnemonic` - string representing a wordlist\n * `passphrase` - normalized UTF-8 passphrase or an empty string\n * @param {string} mnemonic\n * @param {string} passphrase\n * @returns {Uint8Array}\n */\nexport function mnemonicToSeed(mnemonic, passphrase) {\n const ptr0 = passStringToWasm0(mnemonic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.mnemonicToSeed(ptr0, len0, ptr1, len1);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n var v3 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v3;\n}\n\n/**\n * Generates a 2-byte value to sync full addresses across wallets that use the same seed phrase.\n *\n * Seed ID is derived from the public key with derivation path m/0’/0’/0’/0’/0’ according to Geeq\n * `Wallet Address Proposal` specification.\n *\n * ## Arguments\n *\n * `seed` - BIP-0039 output\n * @param {Uint8Array} seed\n * @returns {Uint8Array}\n */\nexport function generateSeedId(seed) {\n const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.generateSeedId(ptr0, len0);\n var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v2;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n * @param {Uint8Array} public_key\n * @param {Uint8Array} signature\n * @param {Uint8Array} data\n * @returns {boolean}\n */\nexport function verify(public_key, signature, data) {\n const ptr0 = passArray8ToWasm0(public_key, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(signature, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.verify(ptr0, len0, ptr1, len1, ptr2, len2);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ret[0] !== 0;\n}\n\nfunction getArrayJsValueFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n const mem = getDataViewMemory0();\n const result = [];\n for (let i = ptr; i < ptr + 4 * len; i += 4) {\n result.push(wasm.__wbindgen_export_2.get(mem.getUint32(i, true)));\n }\n wasm.__externref_drop_slice(ptr, len);\n return result;\n}\n/**\n * Available values for level 2 of keypair derivation path defined in Geeq `Wallet Address\n * Proposal` specification. The intention is to conform with SLIP-0044 specification.\n * @enum {1 | 1019}\n */\nexport const CoinType = Object.freeze({\n Testnet: 1, \"1\": \"Testnet\",\n Mainnet: 1019, \"1019\": \"Mainnet\",\n});\n/**\n * A subset of `RecordType` enum defined here.\n * @enum {12 | 13 | 14 | 15 | 16}\n */\nexport const IrnRecordType = Object.freeze({\n ProxyNftMint: 12, \"12\": \"ProxyNftMint\",\n ProxyFunding: 13, \"13\": \"ProxyFunding\",\n ProxyMultisig: 14, \"14\": \"ProxyMultisig\",\n ProxyDce: 15, \"15\": \"ProxyDce\",\n ProxyTokenMint: 16, \"16\": \"ProxyTokenMint\",\n});\n/**\n * The list of record types defined in Geeq `Wallet Address Proposal` specification.\n * \"None\" is not a valid value.\n * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17}\n */\nexport const RecordType = Object.freeze({\n None: 0, \"0\": \"None\",\n AppCounterparty: 1, \"1\": \"AppCounterparty\",\n AppDce: 2, \"2\": \"AppDce\",\n AppNft: 3, \"3\": \"AppNft\",\n AppStackable: 4, \"4\": \"AppStackable\",\n CoinAsset: 5, \"5\": \"CoinAsset\",\n CoinHl: 6, \"6\": \"CoinHl\",\n CoinMicro: 7, \"7\": \"CoinMicro\",\n GtNwa: 8, \"8\": \"GtNwa\",\n ParamBoolean: 9, \"9\": \"ParamBoolean\",\n ParamCount2: 10, \"10\": \"ParamCount2\",\n ParamCount8: 11, \"11\": \"ParamCount8\",\n ProxyNftMint: 12, \"12\": \"ProxyNftMint\",\n ProxyFunding: 13, \"13\": \"ProxyFunding\",\n ProxyMultisig: 14, \"14\": \"ProxyMultisig\",\n ProxyDce: 15, \"15\": \"ProxyDce\",\n ProxyTokenMint: 16, \"16\": \"ProxyTokenMint\",\n Sys: 17, \"17\": \"Sys\",\n});\n\nconst AlbMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_albmerkletree_free(ptr >>> 0, 1));\n\nexport class AlbMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(AlbMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n AlbMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n AlbMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_albmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.albmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.albmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.albmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.albmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.albmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst AllMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_allmerkletree_free(ptr >>> 0, 1));\n\nexport class AllMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(AllMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n AllMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n AllMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_allmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.allmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLa() {\n const ret = wasm.allmerkletree_getThreeLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRa() {\n const ret = wasm.allmerkletree_getThreeRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLb() {\n const ret = wasm.allmerkletree_getThreeLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRb() {\n const ret = wasm.allmerkletree_getThreeRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.allmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.allmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.allmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.allmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst AppLayBlockFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_applayblock_free(ptr >>> 0, 1));\n\nexport class AppLayBlock {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(AppLayBlock.prototype);\n obj.__wbg_ptr = ptr;\n AppLayBlockFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n AppLayBlockFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_applayblock_free(ptr, 0);\n }\n /**\n * @returns {AlbMerkleTree}\n */\n merkleTree() {\n const ret = wasm.applayblock_merkleTree(this.__wbg_ptr);\n return AlbMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.applayblock_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AppLayBlock}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.applayblock_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AppLayBlock.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AppLayBlock}\n */\n static fromAppLayBlockProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.applayblock_fromAppLayBlockProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AppLayBlock.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AppLayBlock}\n */\n static fromAppLayBlockCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.applayblock_fromAppLayBlockCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AppLayBlock.__wrap(ret[0]);\n }\n}\n\nconst AppLayLedgerFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_applayledger_free(ptr >>> 0, 1));\n\nexport class AppLayLedger {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(AppLayLedger.prototype);\n obj.__wbg_ptr = ptr;\n AppLayLedgerFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n AppLayLedgerFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_applayledger_free(ptr, 0);\n }\n /**\n * @returns {AllMerkleTree}\n */\n merkleTree() {\n const ret = wasm.applayledger_merkleTree(this.__wbg_ptr);\n return AllMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.applayledger_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AppLayLedger}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.applayledger_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AppLayLedger.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AppLayLedger}\n */\n static fromAppLayLedgerProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.applayledger_fromAppLayLedgerProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AppLayLedger.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AppLayLedger}\n */\n static fromAppLayLedgerCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.applayledger_fromAppLayLedgerCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AppLayLedger.__wrap(ret[0]);\n }\n}\n\nconst AppLayRecFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_applayrec_free(ptr >>> 0, 1));\n\nexport class AppLayRec {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(AppLayRec.prototype);\n obj.__wbg_ptr = ptr;\n AppLayRecFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n AppLayRecFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_applayrec_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.applayrec_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AppLayRec}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.applayrec_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AppLayRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AppLayRec}\n */\n static fromAppLayRecProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.applayrec_fromAppLayRecProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AppLayRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AppLayRec}\n */\n static fromAppLayRecCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.applayrec_fromAppLayRecCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AppLayRec.__wrap(ret[0]);\n }\n}\n\nconst AttestationSubgroupFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_attestationsubgroup_free(ptr >>> 0, 1));\n\nexport class AttestationSubgroup {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(AttestationSubgroup.prototype);\n obj.__wbg_ptr = ptr;\n AttestationSubgroupFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n AttestationSubgroupFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_attestationsubgroup_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.attestationsubgroup_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AttestationSubgroup}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.attestationsubgroup_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AttestationSubgroup.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AttestationSubgroup}\n */\n static fromAttestationSubgroupProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.attestationsubgroup_fromAttestationSubgroupProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AttestationSubgroup.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AttestationSubgroup}\n */\n static fromAttestationSubgroupCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.attestationsubgroup_fromAttestationSubgroupCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AttestationSubgroup.__wrap(ret[0]);\n }\n}\n\nconst AttestationSubgroupDataFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_attestationsubgroupdata_free(ptr >>> 0, 1));\n\nexport class AttestationSubgroupData {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(AttestationSubgroupData.prototype);\n obj.__wbg_ptr = ptr;\n AttestationSubgroupDataFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n AttestationSubgroupDataFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_attestationsubgroupdata_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.attestationsubgroupdata_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AttestationSubgroupData}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.attestationsubgroupdata_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AttestationSubgroupData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AttestationSubgroupData}\n */\n static fromAttestationSubgroupDataProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.attestationsubgroupdata_fromAttestationSubgroupDataProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AttestationSubgroupData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AttestationSubgroupData}\n */\n static fromAttestationSubgroupProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.attestationsubgroupdata_fromAttestationSubgroupProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AttestationSubgroupData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AttestationSubgroupData}\n */\n static fromAttestationSubgroupCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.attestationsubgroupdata_fromAttestationSubgroupCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AttestationSubgroupData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AttestationSubgroupData}\n */\n static fromAttestationSubgroupDataCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.attestationsubgroupdata_fromAttestationSubgroupDataCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AttestationSubgroupData.__wrap(ret[0]);\n }\n}\n\nconst AuditAdminNetTxFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_auditadminnettx_free(ptr >>> 0, 1));\n\nexport class AuditAdminNetTx {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(AuditAdminNetTx.prototype);\n obj.__wbg_ptr = ptr;\n AuditAdminNetTxFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n AuditAdminNetTxFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_auditadminnettx_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.auditadminnettx_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AuditAdminNetTx}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.auditadminnettx_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AuditAdminNetTx.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AuditAdminNetTx}\n */\n static fromAuditAdminNetTxProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.auditadminnettx_fromAuditAdminNetTxProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AuditAdminNetTx.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {AuditAdminNetTx}\n */\n static fromAuditAdminNetTxCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.auditadminnettx_fromAuditAdminNetTxCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return AuditAdminNetTx.__wrap(ret[0]);\n }\n}\n\nconst ChainStateViewFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chainstateview_free(ptr >>> 0, 1));\n\nexport class ChainStateView {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChainStateView.prototype);\n obj.__wbg_ptr = ptr;\n ChainStateViewFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChainStateViewFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chainstateview_free(ptr, 0);\n }\n /**\n * @returns {CsvMerkleTree}\n */\n merkleTree() {\n const ret = wasm.chainstateview_merkleTree(this.__wbg_ptr);\n return CsvMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.chainstateview_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ChainStateView}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.chainstateview_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChainStateView.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ChainStateView}\n */\n static fromChainStateViewProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.chainstateview_fromChainStateViewProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChainStateView.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ChainStateView}\n */\n static fromChainStateViewCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.chainstateview_fromChainStateViewCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChainStateView.__wrap(ret[0]);\n }\n /**\n * @returns {Uint8Array}\n */\n getMerkleRootAlb() {\n const ret = wasm.chainstateview_getMerkleRootAlb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getMerkleRootVlb() {\n const ret = wasm.chainstateview_getMerkleRootVlb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getMerkleRootAll() {\n const ret = wasm.chainstateview_getMerkleRootAll(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getMerkleRootVll() {\n const ret = wasm.chainstateview_getMerkleRootVll(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getMerkleRootRcs() {\n const ret = wasm.chainstateview_getMerkleRootRcs(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getForkData() {\n const ret = wasm.chainstateview_getForkData(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst CoinAcctRecFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_coinacctrec_free(ptr >>> 0, 1));\n\nexport class CoinAcctRec {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CoinAcctRec.prototype);\n obj.__wbg_ptr = ptr;\n CoinAcctRecFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CoinAcctRecFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_coinacctrec_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.coinacctrec_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {CoinAcctRec}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.coinacctrec_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CoinAcctRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {CoinAcctRec}\n */\n static fromCoinAcctRecProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.coinacctrec_fromCoinAcctRecProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CoinAcctRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {CoinAcctRec}\n */\n static fromCoinAcctRecCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.coinacctrec_fromCoinAcctRecCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CoinAcctRec.__wrap(ret[0]);\n }\n}\n\nconst CsvMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csvmerkletree_free(ptr >>> 0, 1));\n\nexport class CsvMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsvMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n CsvMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsvMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csvmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.csvmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLa() {\n const ret = wasm.csvmerkletree_getThreeLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRa() {\n const ret = wasm.csvmerkletree_getThreeRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLb() {\n const ret = wasm.csvmerkletree_getThreeLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRb() {\n const ret = wasm.csvmerkletree_getThreeRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLc() {\n const ret = wasm.csvmerkletree_getThreeLc(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRc() {\n const ret = wasm.csvmerkletree_getThreeRc(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.csvmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLb() {\n const ret = wasm.csvmerkletree_getTwoLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRb() {\n const ret = wasm.csvmerkletree_getTwoRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.csvmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.csvmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.csvmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst FeeDistAdminNetTxFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_feedistadminnettx_free(ptr >>> 0, 1));\n\nexport class FeeDistAdminNetTx {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(FeeDistAdminNetTx.prototype);\n obj.__wbg_ptr = ptr;\n FeeDistAdminNetTxFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n FeeDistAdminNetTxFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_feedistadminnettx_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.feedistadminnettx_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {FeeDistAdminNetTx}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.feedistadminnettx_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return FeeDistAdminNetTx.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {FeeDistAdminNetTx}\n */\n static fromFeeDistAdminNetTxProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.feedistadminnettx_fromFeeDistAdminNetTxProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return FeeDistAdminNetTx.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {FeeDistAdminNetTx}\n */\n static fromFeeDistAdminNetTxCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.feedistadminnettx_fromFeeDistAdminNetTxCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return FeeDistAdminNetTx.__wrap(ret[0]);\n }\n}\n\nconst GenesisBlockFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_genesisblock_free(ptr >>> 0, 1));\n\nexport class GenesisBlock {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GenesisBlock.prototype);\n obj.__wbg_ptr = ptr;\n GenesisBlockFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GenesisBlockFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_genesisblock_free(ptr, 0);\n }\n /**\n * @returns {GenesisBlockMerkleTree}\n */\n merkleTree() {\n const ret = wasm.genesisblock_merkleTree(this.__wbg_ptr);\n return GenesisBlockMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.genesisblock_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {GenesisBlock}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.genesisblock_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GenesisBlock.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {GenesisBlock}\n */\n static fromGenesisBlockProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.genesisblock_fromGenesisBlockProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GenesisBlock.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {GenesisBlock}\n */\n static fromGenesisBlockCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.genesisblock_fromGenesisBlockCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GenesisBlock.__wrap(ret[0]);\n }\n}\n\nconst GenesisBlockDataFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_genesisblockdata_free(ptr >>> 0, 1));\n\nexport class GenesisBlockData {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GenesisBlockData.prototype);\n obj.__wbg_ptr = ptr;\n GenesisBlockDataFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GenesisBlockDataFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_genesisblockdata_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get chain_num() {\n const ret = wasm.__wbg_get_genesisblockdata_chain_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set chain_num(arg0) {\n wasm.__wbg_set_genesisblockdata_chain_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.genesisblockdata_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {GenesisBlockData}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.genesisblockdata_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GenesisBlockData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {GenesisBlockData}\n */\n static fromGenesisBlockDataProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.genesisblockdata_fromGenesisBlockDataProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GenesisBlockData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {GenesisBlockData}\n */\n static fromGenesisBlockProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.genesisblockdata_fromGenesisBlockProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GenesisBlockData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {GenesisBlockData}\n */\n static fromGenesisBlockDataCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.genesisblockdata_fromGenesisBlockDataCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GenesisBlockData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {GenesisBlockData}\n */\n static fromGenesisBlockCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.genesisblockdata_fromGenesisBlockCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GenesisBlockData.__wrap(ret[0]);\n }\n}\n\nconst GenesisBlockMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_genesisblockmerkletree_free(ptr >>> 0, 1));\n\nexport class GenesisBlockMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GenesisBlockMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n GenesisBlockMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GenesisBlockMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_genesisblockmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.genesisblockmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.genesisblockmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLa() {\n const ret = wasm.genesisblockmerkletree_getFourLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRa() {\n const ret = wasm.genesisblockmerkletree_getFourRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLb() {\n const ret = wasm.genesisblockmerkletree_getFourLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRb() {\n const ret = wasm.genesisblockmerkletree_getFourRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLa() {\n const ret = wasm.genesisblockmerkletree_getThreeLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRa() {\n const ret = wasm.genesisblockmerkletree_getThreeRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.genesisblockmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.genesisblockmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.genesisblockmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst HcsMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_hcsmerkletree_free(ptr >>> 0, 1));\n\nexport class HcsMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(HcsMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n HcsMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n HcsMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_hcsmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.hcsmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLa() {\n const ret = wasm.hcsmerkletree_getThreeLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRa() {\n const ret = wasm.hcsmerkletree_getThreeRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLa() {\n const ret = wasm.hcsmerkletree_getFourLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRa() {\n const ret = wasm.hcsmerkletree_getFourRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLb() {\n const ret = wasm.hcsmerkletree_getFourLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRb() {\n const ret = wasm.hcsmerkletree_getFourRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLb() {\n const ret = wasm.hcsmerkletree_getThreeLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRb() {\n const ret = wasm.hcsmerkletree_getThreeRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.hcsmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.hcsmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.hcsmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.hcsmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst HubContentStmtFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_hubcontentstmt_free(ptr >>> 0, 1));\n\nexport class HubContentStmt {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(HubContentStmt.prototype);\n obj.__wbg_ptr = ptr;\n HubContentStmtFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n HubContentStmtFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_hubcontentstmt_free(ptr, 0);\n }\n /**\n * @returns {HcsMerkleTree}\n */\n merkleTree() {\n const ret = wasm.hubcontentstmt_merkleTree(this.__wbg_ptr);\n return HcsMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.hubcontentstmt_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {HubContentStmt}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hubcontentstmt_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return HubContentStmt.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {HubContentStmt}\n */\n static fromHubContentStmtProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hubcontentstmt_fromHubContentStmtProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return HubContentStmt.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {HubContentStmt}\n */\n static fromHubContentStmtCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hubcontentstmt_fromHubContentStmtCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return HubContentStmt.__wrap(ret[0]);\n }\n}\n\nconst HubContentStmtDataFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_hubcontentstmtdata_free(ptr >>> 0, 1));\n\nexport class HubContentStmtData {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(HubContentStmtData.prototype);\n obj.__wbg_ptr = ptr;\n HubContentStmtDataFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n HubContentStmtDataFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_hubcontentstmtdata_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get block_num() {\n const ret = wasm.__wbg_get_hubcontentstmtdata_block_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set block_num(arg0) {\n wasm.__wbg_set_hubcontentstmtdata_block_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get chain_num() {\n const ret = wasm.__wbg_get_hubcontentstmtdata_chain_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set chain_num(arg0) {\n wasm.__wbg_set_hubcontentstmtdata_chain_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get node_num() {\n const ret = wasm.__wbg_get_hubcontentstmtdata_node_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set node_num(arg0) {\n wasm.__wbg_set_hubcontentstmtdata_node_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.hubcontentstmtdata_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {HubContentStmtData}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hubcontentstmtdata_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return HubContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {HubContentStmtData}\n */\n static fromHubContentStmtDataProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hubcontentstmtdata_fromHubContentStmtDataProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return HubContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {HubContentStmtData}\n */\n static fromHubContentStmtProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hubcontentstmtdata_fromHubContentStmtProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return HubContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {HubContentStmtData}\n */\n static fromHubContentStmtDataCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hubcontentstmtdata_fromHubContentStmtDataCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return HubContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {HubContentStmtData}\n */\n static fromHubContentStmtCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hubcontentstmtdata_fromHubContentStmtCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return HubContentStmtData.__wrap(ret[0]);\n }\n}\n\nconst KeypairFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_keypair_free(ptr >>> 0, 1));\n\nexport class Keypair {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Keypair.prototype);\n obj.__wbg_ptr = ptr;\n KeypairFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n KeypairFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_keypair_free(ptr, 0);\n }\n /**\n * @param {Uint8Array} public_key\n * @param {Uint8Array} secret_key\n * @returns {Keypair}\n */\n static import(public_key, secret_key) {\n const ptr0 = passArray8ToWasm0(public_key, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(secret_key, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.keypair_import(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return Keypair.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} secret_key\n * @returns {Keypair}\n */\n static fromSecretKey(secret_key) {\n const ptr0 = passArray8ToWasm0(secret_key, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.keypair_fromSecretKey(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return Keypair.__wrap(ret[0]);\n }\n /**\n * @returns {Keypair}\n */\n static generate() {\n const ret = wasm.keypair_generate();\n return Keypair.__wrap(ret);\n }\n /**\n * Generates an ed25519 keypair from binary seed according to SLIP-0010 derivation scheme.\n *\n * The same function as `fromMnemonic()` except that the seed is precalculated.\n * @param {Uint8Array} seed\n * @param {Uint32Array} path\n * @returns {Keypair}\n */\n static fromSeed(seed, path) {\n const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(path, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.keypair_fromSeed(ptr0, len0, ptr1, len1);\n return Keypair.__wrap(ret);\n }\n /**\n * Generates an ed25519 keypair from mnemonic code according to SLIP-0010 derivation scheme.\n *\n * Parses the wordlist generated according to BIP-0039 and converts the result into a binary\n * seed using an optional passphrase, which is then used to generate the keypair.\n *\n * Only hardened key generation from private parent key to private child key is supported.\n *\n * ## Arguments\n *\n * `mnemonic` - string representing a wordlist\n * `passphrase` - normalized UTF-8 passphrase or an empty string\n * `path` - arbitrary array of indices 0 through 2^31-1\n *\n * Note: values out of this range will be considered indices for a hardened child key.\n * Note: the derivation path is not expected to be based on a specific logical hierarchy.\n * @param {string} mnemonic\n * @param {Uint32Array} path\n * @param {string} passphrase\n * @returns {Keypair}\n */\n static fromMnemonic(mnemonic, path, passphrase) {\n const ptr0 = passStringToWasm0(mnemonic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(path, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.keypair_fromMnemonic(ptr0, len0, ptr1, len1, ptr2, len2);\n return Keypair.__wrap(ret);\n }\n /**\n * Generates an ed25519 keypair from binary seed according to SLIP-0010 derivation scheme.\n *\n * The same function as `tryFromMnemonicGeeqPath()` except that the seed is precalculated.\n * @param {Uint8Array} seed\n * @param {RecordType} record_type\n * @param {CoinType} coin_type\n * @param {number} account\n * @param {number} address_index\n * @returns {Keypair}\n */\n static tryFromSeedGeeqPath(seed, record_type, coin_type, account, address_index) {\n const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.keypair_tryFromSeedGeeqPath(ptr0, len0, record_type, coin_type, account, address_index);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return Keypair.__wrap(ret[0]);\n }\n /**\n * Generates an ed25519 keypair from mnemonic code according to SLIP-0010 derivation scheme.\n *\n * Parses the wordlist generated according to BIP-0039 and converts the result into a binary\n * seed using an optional passphrase, which is then used to generate the keypair.\n *\n * Derivation path is based on the logical hierarchy for deterministic wallets defined in Geeq\n * `Wallet Address Proposal` specification.\n *\n * Only hardened key generation from private parent key to private child key is supported.\n *\n * ## Arguments\n *\n * `mnemonic` - string representing a wordlist\n * `passphrase` - normalized UTF-8 passphrase or an empty string\n * `record_type`, `coin_type` - enumerations defined in this library\n * `account`, `address_index` - indices 0 through 2^31-1\n *\n * Note: values out of this range will be considered indices for a hardened child key.\n * Note: returns error if `record_type` is `None`.\n * @param {string} mnemonic\n * @param {string} passphrase\n * @param {RecordType} record_type\n * @param {CoinType} coin_type\n * @param {number} account\n * @param {number} address_index\n * @returns {Keypair}\n */\n static tryFromMnemonicGeeqPath(mnemonic, passphrase, record_type, coin_type, account, address_index) {\n const ptr0 = passStringToWasm0(mnemonic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.keypair_tryFromMnemonicGeeqPath(ptr0, len0, ptr1, len1, record_type, coin_type, account, address_index);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return Keypair.__wrap(ret[0]);\n }\n /**\n * Generates a random 32-byte value to be used as an identifying number for proxy accounts.\n *\n * The same function as `generateIrn()` except that this one does not throw an error.\n * @param {IrnRecordType} record_type\n * @param {number} mint_index\n * @returns {Uint8Array}\n */\n irn(record_type, mint_index) {\n const ret = wasm.keypair_irn(this.__wbg_ptr, record_type, mint_index);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n exportPublicKey() {\n const ret = wasm.keypair_exportPublicKey(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n exportSecretKey() {\n const ret = wasm.keypair_exportSecretKey(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} data\n * @returns {Uint8Array}\n */\n sign(data) {\n const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.keypair_sign(this.__wbg_ptr, ptr0, len0);\n var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v2;\n }\n}\n\nconst LogLevelFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_loglevel_free(ptr >>> 0, 1));\n\nexport class LogLevel {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(LogLevel.prototype);\n obj.__wbg_ptr = ptr;\n LogLevelFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n LogLevelFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_loglevel_free(ptr, 0);\n }\n /**\n * Allowed values for `level` - ['OFF', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE']\n * @param {string} level\n * @returns {LogLevel}\n */\n static fromString(level) {\n const ptr0 = passStringToWasm0(level, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.loglevel_fromString(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return LogLevel.__wrap(ret[0]);\n }\n}\n\nconst MerkleProofFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_merkleproof_free(ptr >>> 0, 1));\n/**\n * A struct that represents the MerkleProof\n *\n * ### Fields\n *\n * * `nodes` - List of merkle proof nodes\n * * `hash` - The hash, the proof was generated for\n */\nexport class MerkleProof {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(MerkleProof.prototype);\n obj.__wbg_ptr = ptr;\n MerkleProofFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MerkleProofFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_merkleproof_free(ptr, 0);\n }\n /**\n * @returns {any[]}\n */\n getNodes() {\n const ret = wasm.merkleproof_getNodes(this.__wbg_ptr);\n var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v1;\n }\n}\n\nconst MerkleProofNodeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_merkleproofnode_free(ptr >>> 0, 1));\n/**\n * A struct that represents a MerkleProof node\n *\n * ### Fields\n *\n * * `is_left` - A boolean value which indicates whether the node should be\n * hashed on the left or the right of the hash state\n *\n * * `value` - Merkle proof node value (32 byte hash)\n */\nexport class MerkleProofNode {\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MerkleProofNodeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_merkleproofnode_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getValue() {\n const ret = wasm.merkleproofnode_getValue(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst NalMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_nalmerkletree_free(ptr >>> 0, 1));\n\nexport class NalMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NalMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n NalMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NalMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_nalmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.nalmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.nalmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.nalmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.nalmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.nalmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst NcsMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_ncsmerkletree_free(ptr >>> 0, 1));\n\nexport class NcsMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NcsMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n NcsMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NcsMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_ncsmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.ncsmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLa() {\n const ret = wasm.ncsmerkletree_getThreeLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRa() {\n const ret = wasm.ncsmerkletree_getThreeRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLa() {\n const ret = wasm.ncsmerkletree_getFourLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRa() {\n const ret = wasm.ncsmerkletree_getFourRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLb() {\n const ret = wasm.ncsmerkletree_getFourLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRb() {\n const ret = wasm.ncsmerkletree_getFourRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLb() {\n const ret = wasm.ncsmerkletree_getThreeLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRb() {\n const ret = wasm.ncsmerkletree_getThreeRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.ncsmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.ncsmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.ncsmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.ncsmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst NetActorListFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_netactorlist_free(ptr >>> 0, 1));\n\nexport class NetActorList {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NetActorList.prototype);\n obj.__wbg_ptr = ptr;\n NetActorListFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NetActorListFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_netactorlist_free(ptr, 0);\n }\n /**\n * @returns {NalMerkleTree}\n */\n merkleTree() {\n const ret = wasm.netactorlist_merkleTree(this.__wbg_ptr);\n return NalMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.netactorlist_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NetActorList}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.netactorlist_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NetActorList.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NetActorList}\n */\n static fromNetActorListProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.netactorlist_fromNetActorListProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NetActorList.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NetActorList}\n */\n static fromNetActorListCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.netactorlist_fromNetActorListCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NetActorList.__wrap(ret[0]);\n }\n}\n\nconst NetActorRecFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_netactorrec_free(ptr >>> 0, 1));\n\nexport class NetActorRec {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NetActorRec.prototype);\n obj.__wbg_ptr = ptr;\n NetActorRecFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NetActorRecFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_netactorrec_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.netactorrec_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NetActorRec}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.netactorrec_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NetActorRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NetActorRec}\n */\n static fromNetActorRecProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.netactorrec_fromNetActorRecProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NetActorRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NetActorRec}\n */\n static fromNetActorRecCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.netactorrec_fromNetActorRecCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NetActorRec.__wrap(ret[0]);\n }\n}\n\nconst NodeContentStmtFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_nodecontentstmt_free(ptr >>> 0, 1));\n\nexport class NodeContentStmt {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NodeContentStmt.prototype);\n obj.__wbg_ptr = ptr;\n NodeContentStmtFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NodeContentStmtFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_nodecontentstmt_free(ptr, 0);\n }\n /**\n * @returns {NcsMerkleTree}\n */\n merkleTree() {\n const ret = wasm.nodecontentstmt_merkleTree(this.__wbg_ptr);\n return NcsMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.nodecontentstmt_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeContentStmt}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodecontentstmt_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeContentStmt.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeContentStmt}\n */\n static fromNodeContentStmtProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodecontentstmt_fromNodeContentStmtProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeContentStmt.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeContentStmt}\n */\n static fromNodeContentStmtCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodecontentstmt_fromNodeContentStmtCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeContentStmt.__wrap(ret[0]);\n }\n}\n\nconst NodeContentStmtDataFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_nodecontentstmtdata_free(ptr >>> 0, 1));\n\nexport class NodeContentStmtData {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NodeContentStmtData.prototype);\n obj.__wbg_ptr = ptr;\n NodeContentStmtDataFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NodeContentStmtDataFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_nodecontentstmtdata_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get block_num() {\n const ret = wasm.__wbg_get_nodecontentstmtdata_block_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set block_num(arg0) {\n wasm.__wbg_set_nodecontentstmtdata_block_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get chain_num() {\n const ret = wasm.__wbg_get_nodecontentstmtdata_chain_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set chain_num(arg0) {\n wasm.__wbg_set_nodecontentstmtdata_chain_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get node_num() {\n const ret = wasm.__wbg_get_nodecontentstmtdata_node_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set node_num(arg0) {\n wasm.__wbg_set_nodecontentstmtdata_node_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.nodecontentstmtdata_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeContentStmtData}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodecontentstmtdata_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeContentStmtData}\n */\n static fromNodeContentStmtDataProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodecontentstmtdata_fromNodeContentStmtDataProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeContentStmtData}\n */\n static fromNodeContentStmtProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodecontentstmtdata_fromNodeContentStmtProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeContentStmtData}\n */\n static fromNodeContentStmtDataCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodecontentstmtdata_fromNodeContentStmtDataCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeContentStmtData}\n */\n static fromNodeContentStmtCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodecontentstmtdata_fromNodeContentStmtCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeContentStmtData.__wrap(ret[0]);\n }\n}\n\nconst NodePayloadListFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_nodepayloadlist_free(ptr >>> 0, 1));\n\nexport class NodePayloadList {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NodePayloadList.prototype);\n obj.__wbg_ptr = ptr;\n NodePayloadListFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NodePayloadListFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_nodepayloadlist_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get block_num() {\n const ret = wasm.__wbg_get_nodepayloadlist_block_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set block_num(arg0) {\n wasm.__wbg_set_nodepayloadlist_block_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get chain_num() {\n const ret = wasm.__wbg_get_nodepayloadlist_chain_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set chain_num(arg0) {\n wasm.__wbg_set_nodepayloadlist_chain_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get node_num() {\n const ret = wasm.__wbg_get_nodepayloadlist_node_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set node_num(arg0) {\n wasm.__wbg_set_nodepayloadlist_node_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {NplMerkleTree}\n */\n merkleTree() {\n const ret = wasm.nodepayloadlist_merkleTree(this.__wbg_ptr);\n return NplMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.nodepayloadlist_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodePayloadList}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodepayloadlist_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodePayloadList.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodePayloadList}\n */\n static fromNodePayloadListProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodepayloadlist_fromNodePayloadListProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodePayloadList.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodePayloadList}\n */\n static fromNodePayloadListCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodepayloadlist_fromNodePayloadListCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodePayloadList.__wrap(ret[0]);\n }\n}\n\nconst NodeTxListFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_nodetxlist_free(ptr >>> 0, 1));\n\nexport class NodeTxList {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NodeTxList.prototype);\n obj.__wbg_ptr = ptr;\n NodeTxListFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NodeTxListFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_nodetxlist_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get block_num() {\n const ret = wasm.__wbg_get_nodetxlist_block_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set block_num(arg0) {\n wasm.__wbg_set_nodetxlist_block_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get chain_num() {\n const ret = wasm.__wbg_get_nodetxlist_chain_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set chain_num(arg0) {\n wasm.__wbg_set_nodetxlist_chain_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get node_num() {\n const ret = wasm.__wbg_get_nodetxlist_node_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set node_num(arg0) {\n wasm.__wbg_set_nodetxlist_node_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {NtlMerkleTree}\n */\n merkleTree() {\n const ret = wasm.nodetxlist_merkleTree(this.__wbg_ptr);\n return NtlMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.nodetxlist_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeTxList}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodetxlist_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeTxList.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeTxList}\n */\n static fromNodeTxListProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodetxlist_fromNodeTxListProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeTxList.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeTxList}\n */\n static fromNodeTxListCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nodetxlist_fromNodeTxListCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return NodeTxList.__wrap(ret[0]);\n }\n}\n\nconst NplMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_nplmerkletree_free(ptr >>> 0, 1));\n\nexport class NplMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NplMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n NplMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NplMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_nplmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.nplmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.nplmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.nplmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.nplmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.nplmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst NtlMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_ntlmerkletree_free(ptr >>> 0, 1));\n\nexport class NtlMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NtlMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n NtlMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NtlMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_ntlmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.ntlmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLa() {\n const ret = wasm.ntlmerkletree_getThreeLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRa() {\n const ret = wasm.ntlmerkletree_getThreeRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLb() {\n const ret = wasm.ntlmerkletree_getThreeLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRb() {\n const ret = wasm.ntlmerkletree_getThreeRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.ntlmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.ntlmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.ntlmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.ntlmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst PalMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_palmerkletree_free(ptr >>> 0, 1));\n\nexport class PalMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(PalMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n PalMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PalMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_palmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.palmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.palmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.palmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.palmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.palmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst ParamAcctListFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_paramacctlist_free(ptr >>> 0, 1));\n\nexport class ParamAcctList {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ParamAcctList.prototype);\n obj.__wbg_ptr = ptr;\n ParamAcctListFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ParamAcctListFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_paramacctlist_free(ptr, 0);\n }\n /**\n * @returns {PalMerkleTree}\n */\n merkleTree() {\n const ret = wasm.paramacctlist_merkleTree(this.__wbg_ptr);\n return PalMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.paramacctlist_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ParamAcctList}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.paramacctlist_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ParamAcctList.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ParamAcctList}\n */\n static fromParamAcctListProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.paramacctlist_fromParamAcctListProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ParamAcctList.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ParamAcctList}\n */\n static fromParamAcctListCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.paramacctlist_fromParamAcctListCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ParamAcctList.__wrap(ret[0]);\n }\n}\n\nconst ParamAcctRecFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_paramacctrec_free(ptr >>> 0, 1));\n\nexport class ParamAcctRec {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ParamAcctRec.prototype);\n obj.__wbg_ptr = ptr;\n ParamAcctRecFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ParamAcctRecFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_paramacctrec_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.paramacctrec_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ParamAcctRec}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.paramacctrec_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ParamAcctRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ParamAcctRec}\n */\n static fromParamAcctRecProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.paramacctrec_fromParamAcctRecProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ParamAcctRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ParamAcctRec}\n */\n static fromParamAcctRecCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.paramacctrec_fromParamAcctRecCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ParamAcctRec.__wrap(ret[0]);\n }\n}\n\nconst PayloadFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_payload_free(ptr >>> 0, 1));\n\nexport class Payload {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Payload.prototype);\n obj.__wbg_ptr = ptr;\n PayloadFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PayloadFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_payload_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.payload_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {Payload}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.payload_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return Payload.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {Payload}\n */\n static fromPayloadProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.payload_fromPayloadProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return Payload.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {Payload}\n */\n static fromPayloadCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.payload_fromPayloadCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return Payload.__wrap(ret[0]);\n }\n}\n\nconst ProxyAcctRecFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_proxyacctrec_free(ptr >>> 0, 1));\n\nexport class ProxyAcctRec {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ProxyAcctRec.prototype);\n obj.__wbg_ptr = ptr;\n ProxyAcctRecFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ProxyAcctRecFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_proxyacctrec_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.proxyacctrec_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ProxyAcctRec}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.proxyacctrec_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ProxyAcctRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ProxyAcctRec}\n */\n static fromProxyAcctRecProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.proxyacctrec_fromProxyAcctRecProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ProxyAcctRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ProxyAcctRec}\n */\n static fromProxyAcctRecCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.proxyacctrec_fromProxyAcctRecCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ProxyAcctRec.__wrap(ret[0]);\n }\n}\n\nconst RcsMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_rcsmerkletree_free(ptr >>> 0, 1));\n\nexport class RcsMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RcsMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n RcsMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RcsMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_rcsmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.rcsmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLa() {\n const ret = wasm.rcsmerkletree_getThreeLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRa() {\n const ret = wasm.rcsmerkletree_getThreeRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLa() {\n const ret = wasm.rcsmerkletree_getFourLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array | undefined}\n */\n getFourRa() {\n const ret = wasm.rcsmerkletree_getFourRa(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLb() {\n const ret = wasm.rcsmerkletree_getFourLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRb() {\n const ret = wasm.rcsmerkletree_getFourRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLb() {\n const ret = wasm.rcsmerkletree_getThreeLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRb() {\n const ret = wasm.rcsmerkletree_getThreeRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.rcsmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.rcsmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.rcsmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.rcsmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst RelayContentStmtFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_relaycontentstmt_free(ptr >>> 0, 1));\n\nexport class RelayContentStmt {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RelayContentStmt.prototype);\n obj.__wbg_ptr = ptr;\n RelayContentStmtFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RelayContentStmtFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_relaycontentstmt_free(ptr, 0);\n }\n /**\n * @returns {RcsMerkleTree}\n */\n merkleTree() {\n const ret = wasm.relaycontentstmt_merkleTree(this.__wbg_ptr);\n return RcsMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.relaycontentstmt_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RelayContentStmt}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.relaycontentstmt_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RelayContentStmt.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RelayContentStmt}\n */\n static fromRelayContentStmtProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.relaycontentstmt_fromRelayContentStmtProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RelayContentStmt.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RelayContentStmt}\n */\n static fromRelayContentStmtCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.relaycontentstmt_fromRelayContentStmtCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RelayContentStmt.__wrap(ret[0]);\n }\n}\n\nconst RelayContentStmtDataFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_relaycontentstmtdata_free(ptr >>> 0, 1));\n\nexport class RelayContentStmtData {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RelayContentStmtData.prototype);\n obj.__wbg_ptr = ptr;\n RelayContentStmtDataFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RelayContentStmtDataFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_relaycontentstmtdata_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get block_num() {\n const ret = wasm.__wbg_get_relaycontentstmtdata_block_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set block_num(arg0) {\n wasm.__wbg_set_relaycontentstmtdata_block_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get chain_num() {\n const ret = wasm.__wbg_get_relaycontentstmtdata_chain_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set chain_num(arg0) {\n wasm.__wbg_set_relaycontentstmtdata_chain_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get node_num() {\n const ret = wasm.__wbg_get_relaycontentstmtdata_node_num(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set node_num(arg0) {\n wasm.__wbg_set_relaycontentstmtdata_node_num(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.relaycontentstmtdata_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RelayContentStmtData}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.relaycontentstmtdata_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RelayContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RelayContentStmtData}\n */\n static fromRelayContentStmtDataProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.relaycontentstmtdata_fromRelayContentStmtDataProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RelayContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RelayContentStmtData}\n */\n static fromRelayContentStmtProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.relaycontentstmtdata_fromRelayContentStmtProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RelayContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RelayContentStmtData}\n */\n static fromRelayContentStmtDataCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.relaycontentstmtdata_fromRelayContentStmtDataCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RelayContentStmtData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RelayContentStmtData}\n */\n static fromRelayContentStmtCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.relaycontentstmtdata_fromRelayContentStmtCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RelayContentStmtData.__wrap(ret[0]);\n }\n}\n\nconst RfdAdminNetTxFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_rfdadminnettx_free(ptr >>> 0, 1));\n\nexport class RfdAdminNetTx {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RfdAdminNetTx.prototype);\n obj.__wbg_ptr = ptr;\n RfdAdminNetTxFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RfdAdminNetTxFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_rfdadminnettx_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.rfdadminnettx_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RfdAdminNetTx}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.rfdadminnettx_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RfdAdminNetTx.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RfdAdminNetTx}\n */\n static fromRfdAdminNetTxProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.rfdadminnettx_fromRfdAdminNetTxProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RfdAdminNetTx.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {RfdAdminNetTx}\n */\n static fromRfdAdminNetTxCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.rfdadminnettx_fromRfdAdminNetTxCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return RfdAdminNetTx.__wrap(ret[0]);\n }\n}\n\nconst SysAcctRecFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_sysacctrec_free(ptr >>> 0, 1));\n\nexport class SysAcctRec {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(SysAcctRec.prototype);\n obj.__wbg_ptr = ptr;\n SysAcctRecFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SysAcctRecFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sysacctrec_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get nonce() {\n const ret = wasm.__wbg_get_sysacctrec_nonce(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set nonce(arg0) {\n wasm.__wbg_set_sysacctrec_nonce(this.__wbg_ptr, arg0);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {SysAcctRec}\n */\n static fromSysAcctRecProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.sysacctrec_fromSysAcctRecProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return SysAcctRec.__wrap(ret[0]);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.sysacctrec_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {SysAcctRec}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.sysacctrec_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return SysAcctRec.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {SysAcctRec}\n */\n static fromSysAcctRecCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.sysacctrec_fromSysAcctRecCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return SysAcctRec.__wrap(ret[0]);\n }\n}\n\nconst UserAppTxFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_userapptx_free(ptr >>> 0, 1));\n\nexport class UserAppTx {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(UserAppTx.prototype);\n obj.__wbg_ptr = ptr;\n UserAppTxFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n UserAppTxFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_userapptx_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.userapptx_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserAppTx}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.userapptx_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserAppTx.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserAppTx}\n */\n static fromUserAppTxProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.userapptx_fromUserAppTxProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserAppTx.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserAppTx}\n */\n static fromUserAppTxCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.userapptx_fromUserAppTxCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserAppTx.__wrap(ret[0]);\n }\n}\n\nconst UserAppTxDataFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_userapptxdata_free(ptr >>> 0, 1));\n\nexport class UserAppTxData {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(UserAppTxData.prototype);\n obj.__wbg_ptr = ptr;\n UserAppTxDataFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n UserAppTxDataFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_userapptxdata_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.userapptxdata_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserAppTxData}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.userapptxdata_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserAppTxData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserAppTxData}\n */\n static fromUserAppTxDataProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.userapptxdata_fromUserAppTxDataProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserAppTxData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserAppTxData}\n */\n static fromUserAppTxProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.userapptxdata_fromUserAppTxProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserAppTxData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserAppTxData}\n */\n static fromUserAppTxDataCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.userapptxdata_fromUserAppTxDataCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserAppTxData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserAppTxData}\n */\n static fromUserAppTxCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.userapptxdata_fromUserAppTxCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserAppTxData.__wrap(ret[0]);\n }\n}\n\nconst UserValTxFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_uservaltx_free(ptr >>> 0, 1));\n\nexport class UserValTx {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(UserValTx.prototype);\n obj.__wbg_ptr = ptr;\n UserValTxFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n UserValTxFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_uservaltx_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.uservaltx_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserValTx}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.uservaltx_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserValTx.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserValTx}\n */\n static fromUserValTxProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.uservaltx_fromUserValTxProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserValTx.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserValTx}\n */\n static fromUserValTxCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.uservaltx_fromUserValTxCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserValTx.__wrap(ret[0]);\n }\n}\n\nconst UserValTxDataFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_uservaltxdata_free(ptr >>> 0, 1));\n\nexport class UserValTxData {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(UserValTxData.prototype);\n obj.__wbg_ptr = ptr;\n UserValTxDataFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n UserValTxDataFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_uservaltxdata_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.uservaltxdata_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserValTxData}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.uservaltxdata_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserValTxData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserValTxData}\n */\n static fromUserValTxDataProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.uservaltxdata_fromUserValTxDataProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserValTxData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserValTxData}\n */\n static fromUserValTxProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.uservaltxdata_fromUserValTxProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserValTxData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserValTxData}\n */\n static fromUserValTxDataCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.uservaltxdata_fromUserValTxDataCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserValTxData.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {UserValTxData}\n */\n static fromUserValTxCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.uservaltxdata_fromUserValTxCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return UserValTxData.__wrap(ret[0]);\n }\n}\n\nconst ValLayBlockFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_vallayblock_free(ptr >>> 0, 1));\n\nexport class ValLayBlock {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ValLayBlock.prototype);\n obj.__wbg_ptr = ptr;\n ValLayBlockFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ValLayBlockFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_vallayblock_free(ptr, 0);\n }\n /**\n * @returns {VlbMerkleTree}\n */\n merkleTree() {\n const ret = wasm.vallayblock_merkleTree(this.__wbg_ptr);\n return VlbMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.vallayblock_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ValLayBlock}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vallayblock_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ValLayBlock.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ValLayBlock}\n */\n static fromValLayBlockProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vallayblock_fromValLayBlockProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ValLayBlock.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ValLayBlock}\n */\n static fromValLayBlockCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vallayblock_fromValLayBlockCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ValLayBlock.__wrap(ret[0]);\n }\n}\n\nconst ValLayLedgerFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_vallayledger_free(ptr >>> 0, 1));\n\nexport class ValLayLedger {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ValLayLedger.prototype);\n obj.__wbg_ptr = ptr;\n ValLayLedgerFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ValLayLedgerFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_vallayledger_free(ptr, 0);\n }\n /**\n * @returns {VllMerkleTree}\n */\n merkleTree() {\n const ret = wasm.vallayledger_merkleTree(this.__wbg_ptr);\n return VllMerkleTree.__wrap(ret);\n }\n /**\n * @returns {Uint8Array}\n */\n flatten() {\n const ret = wasm.vallayledger_flatten(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ValLayLedger}\n */\n static fromFlattenedBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vallayledger_fromFlattenedBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ValLayLedger.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ValLayLedger}\n */\n static fromValLayLedgerProto(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vallayledger_fromValLayLedgerProto(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ValLayLedger.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n * @returns {ValLayLedger}\n */\n static fromValLayLedgerCapnp(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vallayledger_fromValLayLedgerCapnp(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ValLayLedger.__wrap(ret[0]);\n }\n}\n\nconst VlbMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_vlbmerkletree_free(ptr >>> 0, 1));\n\nexport class VlbMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(VlbMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n VlbMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n VlbMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_vlbmerkletree_free(ptr, 0);\n }\n /**\n * @param {Uint8Array} hash\n * @returns {MerkleProof}\n */\n fiveRaProof(hash) {\n const ptr0 = passArray8ToWasm0(hash, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vlbmerkletree_fiveRaProof(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return MerkleProof.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} hash\n * @returns {MerkleProof}\n */\n fourLaProof(hash) {\n const ptr0 = passArray8ToWasm0(hash, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vlbmerkletree_fourLaProof(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return MerkleProof.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} hash\n * @returns {MerkleProof}\n */\n fiveLaProof(hash) {\n const ptr0 = passArray8ToWasm0(hash, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vlbmerkletree_fiveLaProof(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return MerkleProof.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} hash\n * @returns {MerkleProof}\n */\n sevenRaTxProof(hash) {\n const ptr0 = passArray8ToWasm0(hash, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vlbmerkletree_sevenRaTxProof(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return MerkleProof.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} hash\n * @returns {MerkleProof}\n */\n oneLaProof(hash) {\n const ptr0 = passArray8ToWasm0(hash, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vlbmerkletree_oneLaProof(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return MerkleProof.__wrap(ret[0]);\n }\n /**\n * @param {Uint8Array} hash\n * @returns {MerkleProof}\n */\n sevenRbTxProof(hash) {\n const ptr0 = passArray8ToWasm0(hash, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.vlbmerkletree_sevenRbTxProof(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return MerkleProof.__wrap(ret[0]);\n }\n /**\n * @returns {Uint8Array}\n */\n getSevenLa() {\n const ret = wasm.vlbmerkletree_getSevenLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSevenRa() {\n const ret = wasm.vlbmerkletree_getSevenRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSevenLb() {\n const ret = wasm.vlbmerkletree_getSevenLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSevenRb() {\n const ret = wasm.vlbmerkletree_getSevenRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSevenLc() {\n const ret = wasm.vlbmerkletree_getSevenLc(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSevenRc() {\n const ret = wasm.vlbmerkletree_getSevenRc(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSevenLd() {\n const ret = wasm.vlbmerkletree_getSevenLd(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSevenRd() {\n const ret = wasm.vlbmerkletree_getSevenRd(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSixLa() {\n const ret = wasm.vlbmerkletree_getSixLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSixRa() {\n const ret = wasm.vlbmerkletree_getSixRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSixLc() {\n const ret = wasm.vlbmerkletree_getSixLc(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSixRc() {\n const ret = wasm.vlbmerkletree_getSixRc(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFiveLa() {\n const ret = wasm.vlbmerkletree_getFiveLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFiveRa() {\n const ret = wasm.vlbmerkletree_getFiveRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLa() {\n const ret = wasm.vlbmerkletree_getFourLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.vlbmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.vlbmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.vlbmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.vlbmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLa() {\n const ret = wasm.vlbmerkletree_getThreeLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRa() {\n const ret = wasm.vlbmerkletree_getThreeRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRa() {\n const ret = wasm.vlbmerkletree_getFourRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLb() {\n const ret = wasm.vlbmerkletree_getFourLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRb() {\n const ret = wasm.vlbmerkletree_getFourRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFiveLb() {\n const ret = wasm.vlbmerkletree_getFiveLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFiveRb() {\n const ret = wasm.vlbmerkletree_getFiveRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFiveLc() {\n const ret = wasm.vlbmerkletree_getFiveLc(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFiveRc() {\n const ret = wasm.vlbmerkletree_getFiveRc(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSixLb() {\n const ret = wasm.vlbmerkletree_getSixLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSixRb() {\n const ret = wasm.vlbmerkletree_getSixRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSixLd() {\n const ret = wasm.vlbmerkletree_getSixLd(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getSixRd() {\n const ret = wasm.vlbmerkletree_getSixRd(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.vlbmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst VllMerkleTreeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_vllmerkletree_free(ptr >>> 0, 1));\n\nexport class VllMerkleTree {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(VllMerkleTree.prototype);\n obj.__wbg_ptr = ptr;\n VllMerkleTreeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n VllMerkleTreeFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_vllmerkletree_free(ptr, 0);\n }\n /**\n * @returns {Uint8Array}\n */\n getOneLa() {\n const ret = wasm.vllmerkletree_getOneLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLa() {\n const ret = wasm.vllmerkletree_getThreeLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLa() {\n const ret = wasm.vllmerkletree_getFourLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRa() {\n const ret = wasm.vllmerkletree_getFourRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLb() {\n const ret = wasm.vllmerkletree_getFourLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRb() {\n const ret = wasm.vllmerkletree_getFourRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourLc() {\n const ret = wasm.vllmerkletree_getFourLc(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getFourRc() {\n const ret = wasm.vllmerkletree_getFourRc(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRa() {\n const ret = wasm.vllmerkletree_getThreeRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeLb() {\n const ret = wasm.vllmerkletree_getThreeLb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getThreeRb() {\n const ret = wasm.vllmerkletree_getThreeRb(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoLa() {\n const ret = wasm.vllmerkletree_getTwoLa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getTwoRa() {\n const ret = wasm.vllmerkletree_getTwoRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n getOneRa() {\n const ret = wasm.vllmerkletree_getOneRa(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * @returns {Uint8Array}\n */\n root() {\n const ret = wasm.vllmerkletree_root(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n}\n\nconst WalletAddressFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_walletaddress_free(ptr >>> 0, 1));\n/**\n * Wallet address based on Geeq `Wallet Address Proposal` specification.\n */\nexport class WalletAddress {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(WalletAddress.prototype);\n obj.__wbg_ptr = ptr;\n WalletAddressFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n WalletAddressFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_walletaddress_free(ptr, 0);\n }\n /**\n * ## Arguments\n *\n * `chain_num` - chain instance containing the record\n * `record_type` - enumeration defined in this library\n * `acct_num` - 32-byte IRN of a ledger record\n *\n * Note: returns error if `record_type` is `None`.\n * @param {number} chain_num\n * @param {RecordType} record_type\n * @param {Uint8Array} acct_num\n * @returns {WalletAddress}\n */\n static new(chain_num, record_type, acct_num) {\n const ptr0 = passArray8ToWasm0(acct_num, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.walletaddress_new(chain_num, record_type, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return WalletAddress.__wrap(ret[0]);\n }\n /**\n * @returns {RecordType}\n */\n exportRecordType() {\n const ret = wasm.walletaddress_exportRecordType(this.__wbg_ptr);\n return ret;\n }\n /**\n * @returns {number}\n */\n exportChainNum() {\n const ret = wasm.walletaddress_exportChainNum(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {Uint8Array}\n */\n exportAcctNum() {\n const ret = wasm.walletaddress_exportAcctNum(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * Returns a value in base58 format representing the wallet address of a ledger account.\n * @returns {string}\n */\n encode() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.walletaddress_encode(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Returns a value from which the components of a given wallet address can be extracted.\n *\n * ## Arguments\n *\n * `s` - string representing a wallet address in base58 format\n * @param {string} s\n * @returns {WalletAddress}\n */\n static decode(s) {\n const ptr0 = passStringToWasm0(s, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.walletaddress_decode(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return WalletAddress.__wrap(ret[0]);\n }\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_buffer_609cc3eee51ed158 = function(arg0) {\n const ret = arg0.buffer;\n return ret;\n };\n imports.wbg.__wbg_call_672a4d21634d4a24 = function() { return handleError(function (arg0, arg1) {\n const ret = arg0.call(arg1);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_call_7cccdd69e0791ae2 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.call(arg1, arg2);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_crypto_574e78ad8b13b65f = function(arg0) {\n const ret = arg0.crypto;\n return ret;\n };\n imports.wbg.__wbg_debug_e17b51583ca6a632 = function(arg0, arg1, arg2, arg3) {\n console.debug(arg0, arg1, arg2, arg3);\n };\n imports.wbg.__wbg_error_524f506f44df1645 = function(arg0) {\n console.error(arg0);\n };\n imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n };\n imports.wbg.__wbg_error_80de38b3f7cc3c3c = function(arg0, arg1, arg2, arg3) {\n console.error(arg0, arg1, arg2, arg3);\n };\n imports.wbg.__wbg_getRandomValues_b8f5dbd5f3995a9e = function() { return handleError(function (arg0, arg1) {\n arg0.getRandomValues(arg1);\n }, arguments) };\n imports.wbg.__wbg_info_033d8b8a0838f1d3 = function(arg0, arg1, arg2, arg3) {\n console.info(arg0, arg1, arg2, arg3);\n };\n imports.wbg.__wbg_log_cad59bb680daec67 = function(arg0, arg1, arg2, arg3) {\n console.log(arg0, arg1, arg2, arg3);\n };\n imports.wbg.__wbg_msCrypto_a61aeb35a24c1329 = function(arg0) {\n const ret = arg0.msCrypto;\n return ret;\n };\n imports.wbg.__wbg_new_405e22f390576ce2 = function() {\n const ret = new Object();\n return ret;\n };\n imports.wbg.__wbg_new_78feb108b6472713 = function() {\n const ret = new Array();\n return ret;\n };\n imports.wbg.__wbg_new_8a6f238a6ece86ea = function() {\n const ret = new Error();\n return ret;\n };\n imports.wbg.__wbg_new_a12002a7f91c75be = function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n };\n imports.wbg.__wbg_newnoargs_105ed471475aaf50 = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return ret;\n };\n imports.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a = function(arg0, arg1, arg2) {\n const ret = new Uint8Array(arg0, arg1 >>> 0, arg2 >>> 0);\n return ret;\n };\n imports.wbg.__wbg_newwithlength_a381634e90c276d4 = function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return ret;\n };\n imports.wbg.__wbg_node_905d3e251edff8a2 = function(arg0) {\n const ret = arg0.node;\n return ret;\n };\n imports.wbg.__wbg_now_807e54c39636c349 = function() {\n const ret = Date.now();\n return ret;\n };\n imports.wbg.__wbg_process_dc0fbacc7c1c06f7 = function(arg0) {\n const ret = arg0.process;\n return ret;\n };\n imports.wbg.__wbg_randomFillSync_ac0988aba3254290 = function() { return handleError(function (arg0, arg1) {\n arg0.randomFillSync(arg1);\n }, arguments) };\n imports.wbg.__wbg_require_60cc747a6bc5215a = function() { return handleError(function () {\n const ret = module.require;\n return ret;\n }, arguments) };\n imports.wbg.__wbg_set_37837023f3d740e8 = function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n };\n imports.wbg.__wbg_set_3807d5f0bfc24aa7 = function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n };\n imports.wbg.__wbg_set_65595bdd868b3009 = function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n };\n imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_88a902d13a557d07 = function() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0 = function() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_static_accessor_SELF_37c5d418e4bf5819 = function() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_static_accessor_WINDOW_5de37043a91a9c40 = function() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_subarray_aa9065fa9dc5df96 = function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n };\n imports.wbg.__wbg_versions_c01dfd4722a88165 = function(arg0) {\n const ret = arg0.versions;\n return ret;\n };\n imports.wbg.__wbg_warn_aaf1f4664a035bd6 = function(arg0, arg1, arg2, arg3) {\n console.warn(arg0, arg1, arg2, arg3);\n };\n imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbindgen_error_new = function(arg0, arg1) {\n const ret = new Error(getStringFromWasm0(arg0, arg1));\n return ret;\n };\n imports.wbg.__wbindgen_init_externref_table = function() {\n const table = wasm.__wbindgen_export_2;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n ;\n };\n imports.wbg.__wbindgen_is_function = function(arg0) {\n const ret = typeof(arg0) === 'function';\n return ret;\n };\n imports.wbg.__wbindgen_is_object = function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n };\n imports.wbg.__wbindgen_is_string = function(arg0) {\n const ret = typeof(arg0) === 'string';\n return ret;\n };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n };\n imports.wbg.__wbindgen_memory = function() {\n const ret = wasm.memory;\n return ret;\n };\n imports.wbg.__wbindgen_number_new = function(arg0) {\n const ret = arg0;\n return ret;\n };\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n return imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {\n\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n wasm.__wbindgen_start();\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n __wbg_init_memory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('geeq_core_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n __wbg_init_memory(imports);\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","import initWasm from '../wasm/browser/geeq_core'\nimport type { WasmSource } from '../types'\n\n/**\n * Browser loader: finds the engine's .wasm file and starts it.\n *\n * If the app passes its own `source`, that is used. Otherwise it is the .wasm file\n * that ships next to this script in `dist/browser/`.\n *\n * `new URL('./geeq_core_bg.wasm', import.meta.url)` means \"geeq_core_bg.wasm in the\n * same folder as this file\". Keep it written exactly this way: Vite, webpack, Rollup\n * and Parcel spot this pattern and copy the .wasm into the app's build for you.\n *\n * The Node build swaps this module for `wasm-loader.node.ts` at bundle time.\n */\nexport async function loadWasm(source?: WasmSource): Promise<void> {\n const wasm = source ?? new URL('./geeq_core_bg.wasm', import.meta.url)\n\n // `module_or_path` is the option name wasm-bindgen expects. Passing `wasm`\n // directly instead also works, but prints a deprecation warning.\n await initWasm({ module_or_path: wasm })\n}\n","import { GeeqError, notInitialized } from '../errors'\nimport type { InitOptions } from '../types'\nimport { loadWasm } from './wasm-loader.browser'\n\nlet inflight: Promise<void> | null = null\nlet ready = false\n\n/**\n * Load the Geeq engine. Idempotent and single-flight: concurrent callers share one\n * load, and repeat calls after success resolve immediately.\n *\n * You rarely need to call this yourself — every async entry point in the SDK awaits\n * it first. Call it at startup if you would rather pay the cost up front.\n */\nexport function initGeeq(options: InitOptions = {}): Promise<void> {\n if (ready) return Promise.resolve()\n\n if (inflight === null) {\n inflight = loadWasm(options.wasm)\n .then(() => {\n ready = true\n })\n .catch((cause: unknown) => {\n // Clear the cached promise so a later call can retry with, say, an\n // explicit `wasm` source rather than being stuck with the first failure.\n inflight = null\n throw new GeeqError(\n 'init-failed',\n 'Could not load the Geeq WebAssembly engine. If your bundler does not emit ' +\n 'geeq_core_bg.wasm automatically, pass its URL as initGeeq({ wasm }).',\n { cause },\n )\n })\n }\n\n return inflight\n}\n\n/** True once the engine is loaded and the synchronous APIs are usable. */\nexport function isGeeqReady(): boolean {\n return ready\n}\n\n/** @internal Guard for synchronous APIs that require a loaded engine. */\nexport function assertReady(what: string): void {\n if (!ready) {\n throw notInitialized(what)\n }\n}\n","import { invalidArgument } from '../errors'\n\n/**\n * Base64 in both directions, with one behaviour on every runtime.\n *\n * The platform primitives disagree on bad input: `Buffer.from(s, 'base64')` silently\n * drops characters it does not recognise and returns a short buffer, while `atob`\n * throws. Decoding a ledger through the first would turn \"this URL is not a Geeq node\"\n * into \"this ledger is corrupt\" — so the input is validated here and both paths take\n * the same branch.\n */\n\n/** Standard alphabet, correct padding, whole 4-character groups. */\nconst BASE64 = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/\n\nexport function toBase64(bytes: Uint8Array): string {\n if (typeof btoa === 'function') {\n let binary = ''\n for (const byte of bytes) binary += String.fromCharCode(byte)\n return btoa(binary)\n }\n return Buffer.from(bytes).toString('base64')\n}\n\n/**\n * Decode base64, rejecting anything the alphabet does not cover.\n *\n * `label` names the thing being decoded so the message points at the caller's data\n * rather than at this function.\n */\nexport function fromBase64(value: string, label = 'value'): Uint8Array {\n if (typeof value !== 'string') {\n throw invalidArgument(`${label} must be a base64 string, received ${typeof value}.`)\n }\n if (value === '') return new Uint8Array(0)\n\n if (!BASE64.test(value)) {\n // Naming the offending character and its index is the difference between \"this is\n // not base64\" and \"your proxy returned an HTML login page\".\n const index = value.search(/[^A-Za-z0-9+/=]/u)\n const detail =\n index === -1\n ? `its length (${value.length}) is not a multiple of 4, or its padding is misplaced`\n : `it contains ${JSON.stringify(value[index])} at index ${index}`\n throw invalidArgument(\n `${label} is not valid base64: ${detail}. ` +\n 'A value that looks like markup or JSON usually means the URL is not a Geeq node.',\n )\n }\n\n if (typeof atob === 'function') {\n const binary = atob(value)\n const bytes = new Uint8Array(binary.length)\n for (let i = 0; i < binary.length; i += 1) bytes[i] = binary.charCodeAt(i)\n return bytes\n }\n return new Uint8Array(Buffer.from(value, 'base64'))\n}\n","import { invalidArgument } from '../errors'\nimport { WasmCoinType, WasmRecordType } from '../runtime/bindings'\nimport type { GeeqCoinType, GeeqRecordType } from '../types'\n\n/**\n * Applications speak in readable record-type names; the protocol speaks in\n * numbers. This is the only place the two vocabularies meet.\n */\nconst RECORD_TYPE_TO_WASM: Readonly<Record<GeeqRecordType, number>> = {\n 'app-counterparty': WasmRecordType.AppCounterparty,\n 'app-dce': WasmRecordType.AppDce,\n 'app-nft': WasmRecordType.AppNft,\n 'app-stackable': WasmRecordType.AppStackable,\n 'coin-asset': WasmRecordType.CoinAsset,\n 'coin-hl': WasmRecordType.CoinHl,\n 'coin-micro': WasmRecordType.CoinMicro,\n 'gt-nwa': WasmRecordType.GtNwa,\n 'param-boolean': WasmRecordType.ParamBoolean,\n 'param-count-2': WasmRecordType.ParamCount2,\n 'param-count-8': WasmRecordType.ParamCount8,\n 'proxy-nft-mint': WasmRecordType.ProxyNftMint,\n 'proxy-funding': WasmRecordType.ProxyFunding,\n 'proxy-multisig': WasmRecordType.ProxyMultisig,\n 'proxy-dce': WasmRecordType.ProxyDce,\n 'proxy-token-mint': WasmRecordType.ProxyTokenMint,\n sys: WasmRecordType.Sys,\n}\n\nconst WASM_TO_RECORD_TYPE: ReadonlyMap<number, GeeqRecordType> = new Map(\n (Object.entries(RECORD_TYPE_TO_WASM) as Array<[GeeqRecordType, number]>).map(\n ([name, value]) => [value, name],\n ),\n)\n\n/** Every record type this SDK understands, for validation and tooling. */\nexport const GEEQ_RECORD_TYPES = Object.freeze(\n Object.keys(RECORD_TYPE_TO_WASM) as GeeqRecordType[],\n)\n\nexport const DEFAULT_RECORD_TYPE: GeeqRecordType = 'coin-asset'\n\n/** @internal */\nexport function toWasmRecordType(recordType: GeeqRecordType): number {\n const value = RECORD_TYPE_TO_WASM[recordType]\n if (value === undefined) {\n throw invalidArgument(\n `Unknown record type \"${String(recordType)}\". Expected one of: ${GEEQ_RECORD_TYPES.join(', ')}.`,\n )\n }\n return value\n}\n\n/** @internal */\nexport function fromWasmRecordType(value: number): GeeqRecordType {\n const name = WASM_TO_RECORD_TYPE.get(value)\n if (name === undefined) {\n throw invalidArgument(\n `The engine returned record type ${value}, which this SDK version does not know. ` +\n 'Your SDK is probably older than the chain you are talking to.',\n )\n }\n return name\n}\n\nconst COIN_TYPE_TO_WASM: Readonly<Record<GeeqCoinType, number>> = {\n mainnet: WasmCoinType.Mainnet,\n testnet: WasmCoinType.Testnet,\n}\n\n/** @internal */\nexport function toWasmCoinType(coinType: GeeqCoinType): number {\n const value = COIN_TYPE_TO_WASM[coinType]\n if (value === undefined) {\n throw invalidArgument(`Unknown coin type \"${String(coinType)}\". Expected 'mainnet' or 'testnet'.`)\n }\n return value\n}\n","import { blake3 } from '@noble/hashes/blake3'\nimport { invalidArgument, invalidKey } from '../errors'\n\n/** Account ids and public keys are both 32 bytes. */\nexport const ACCOUNT_ID_BYTES = 32\nexport const PUBLIC_KEY_BYTES = 32\n\n/**\n * Any way of naming an account that does not need the engine.\n *\n * Structural on purpose: a {@link GeeqKeypair} already carries `accountId`, so it\n * satisfies this without the crypto layer importing the keypair type and without the\n * caller unwrapping anything.\n */\nexport type AccountRef =\n | Uint8Array\n | { readonly accountId: Uint8Array }\n | { readonly publicKey: Uint8Array }\n\n/**\n * Derive the 32-byte account id for a public key.\n *\n * This is a pure hash — it needs no engine and no network, so it works before\n * {@link initGeeq} has resolved.\n */\nexport function accountIdFromPublicKey(publicKey: Uint8Array): Uint8Array {\n if (publicKey.length !== PUBLIC_KEY_BYTES) {\n throw invalidKey(\n `A public key must be ${PUBLIC_KEY_BYTES} bytes, received ${publicKey.length}.`,\n )\n }\n return blake3(publicKey, { dkLen: ACCOUNT_ID_BYTES })\n}\n\n/**\n * Resolve any {@link AccountRef} to a 32-byte account id.\n *\n * Shared by the address layer and the ledger layer: both need to turn \"whatever the\n * caller had to hand\" into the one value records are keyed by, and two copies of this\n * would drift. Pure — no engine, no network.\n *\n * `accountId` is checked before `publicKey` so that a keypair, which carries both,\n * takes the cheap path instead of re-hashing its own public key.\n *\n * @internal\n */\nexport function resolveAccountId(account: AccountRef): Uint8Array {\n if (account instanceof Uint8Array) {\n if (account.length !== ACCOUNT_ID_BYTES) {\n throw invalidKey(\n `An account id must be ${ACCOUNT_ID_BYTES} bytes, received ${account.length}.`,\n )\n }\n return account\n }\n\n if (account !== null && typeof account === 'object') {\n const { accountId } = account as { accountId?: unknown }\n if (accountId !== undefined) {\n if (!(accountId instanceof Uint8Array)) {\n throw invalidKey('accountId must be a Uint8Array.')\n }\n if (accountId.length !== ACCOUNT_ID_BYTES) {\n throw invalidKey(\n `An account id must be ${ACCOUNT_ID_BYTES} bytes, received ${accountId.length}.`,\n )\n }\n return accountId\n }\n\n const { publicKey } = account as { publicKey?: unknown }\n if (publicKey !== undefined) {\n if (!(publicKey instanceof Uint8Array)) {\n throw invalidKey('publicKey must be a Uint8Array.')\n }\n return accountIdFromPublicKey(publicKey)\n }\n }\n\n throw invalidArgument(\n `Provide a keypair, a ${ACCOUNT_ID_BYTES}-byte accountId, or a ${PUBLIC_KEY_BYTES}-byte publicKey.`,\n )\n}\n","import { GeeqError, invalidAddress, invalidArgument } from '../errors'\nimport { WasmWalletAddress } from '../runtime/bindings'\nimport { assertReady, initGeeq } from '../runtime/init'\nimport { resolveAccountId } from '../crypto/account-id'\nimport type { DecodedWalletAddress, GeeqRecordType, WalletAddressOptions } from '../types'\nimport { DEFAULT_RECORD_TYPE, fromWasmRecordType, toWasmRecordType } from './record-type'\n\n/** Identify the account either by its public key or by its account id. */\nexport type AccountIdentifier =\n | { readonly publicKey: Uint8Array; readonly accountId?: never }\n | { readonly accountId: Uint8Array; readonly publicKey?: never }\n\nexport type CreateWalletAddressInput = AccountIdentifier & WalletAddressOptions\n\nfunction assertChainNumber(chainNumber: number): void {\n if (!Number.isInteger(chainNumber) || chainNumber < 0 || chainNumber > 0xffffffff) {\n throw invalidArgument(\n `chainNumber must be an integer between 0 and 4294967295, received ${String(chainNumber)}.`,\n )\n }\n}\n\n/**\n * Build the base58 wallet address for an account. Synchronous; requires the engine\n * to be loaded already. Most callers want {@link createWalletAddress} instead.\n */\nexport function createWalletAddressSync(input: CreateWalletAddressInput): string {\n assertReady('createWalletAddressSync')\n assertChainNumber(input.chainNumber)\n\n const recordType: GeeqRecordType = input.recordType ?? DEFAULT_RECORD_TYPE\n const accountId = resolveAccountId(input)\n\n let address: WasmWalletAddress | undefined\n try {\n address = WasmWalletAddress.new(input.chainNumber, toWasmRecordType(recordType), accountId)\n return address.encode()\n } catch (cause) {\n throw invalidAddress(\n `Could not build a wallet address for record type \"${recordType}\" on chain ${input.chainNumber}.`,\n cause,\n )\n } finally {\n address?.free()\n }\n}\n\n/**\n * Build the base58 wallet address for an account, loading the engine if needed.\n *\n * ```ts\n * const address = await createWalletAddress({ publicKey, chainNumber: 1 })\n * ```\n */\nexport async function createWalletAddress(input: CreateWalletAddressInput): Promise<string> {\n await initGeeq()\n return createWalletAddressSync(input)\n}\n\n/** Decode a base58 wallet address. Synchronous; requires the engine to be loaded. */\nexport function decodeWalletAddressSync(address: string): DecodedWalletAddress {\n assertReady('decodeWalletAddressSync')\n\n if (typeof address !== 'string' || address.length === 0) {\n throw invalidAddress('A wallet address must be a non-empty base58 string.')\n }\n\n let decoded: WasmWalletAddress | undefined\n try {\n decoded = WasmWalletAddress.decode(address)\n return Object.freeze({\n address,\n chainNumber: decoded.exportChainNum(),\n recordType: fromWasmRecordType(decoded.exportRecordType()),\n accountId: decoded.exportAcctNum(),\n })\n } catch (cause) {\n if (cause instanceof GeeqError) throw cause\n throw invalidAddress(`\"${address}\" is not a valid Geeq wallet address.`, cause)\n } finally {\n decoded?.free()\n }\n}\n\n/** Decode a base58 wallet address, loading the engine if needed. */\nexport async function decodeWalletAddress(address: string): Promise<DecodedWalletAddress> {\n await initGeeq()\n return decodeWalletAddressSync(address)\n}\n\n/**\n * True when `address` decodes as a Geeq wallet address. Requires a loaded engine.\n *\n * Throws `not-initialized` rather than answering before the engine has loaded: `false`\n * would call every address invalid, including good ones.\n */\nexport function isValidWalletAddress(address: string): boolean {\n try {\n decodeWalletAddressSync(address)\n return true\n } catch (error) {\n if (error instanceof GeeqError && error.code === 'not-initialized') throw error\n return false\n }\n}\n","import { generateMnemonic as scureGenerate, validateMnemonic as scureValidate } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { invalidArgument } from '../errors'\n\n/** Supported mnemonic lengths. 12 words is the common default; 24 is the strongest. */\nexport type MnemonicWordCount = 12 | 15 | 18 | 21 | 24\n\nconst ENTROPY_BITS: Readonly<Record<MnemonicWordCount, number>> = {\n 12: 128,\n 15: 160,\n 18: 192,\n 21: 224,\n 24: 256,\n}\n\nexport const MNEMONIC_WORD_COUNTS = Object.freeze([12, 15, 18, 21, 24] as const)\n\nexport interface GenerateMnemonicOptions {\n /** How many words to generate. Defaults to 12. */\n readonly words?: MnemonicWordCount\n}\n\n/**\n * Generate a fresh BIP-39 recovery phrase, using the platform's cryptographically\n * secure random source.\n *\n * Pure JavaScript — no engine needed, so this works before {@link initGeeq}\n * resolves. Phrases are generated from the English wordlist, which is what\n * {@link keypairFromMnemonic} expects.\n *\n * The phrase is the *only* way to recover the wallet. Show it to the user once,\n * let them write it down, and never transmit or persist it in plaintext.\n *\n * ```ts\n * const mnemonic = generateMnemonic() // 12 words\n * const long = generateMnemonic({ words: 24 }) // 24 words\n * ```\n */\nexport function generateMnemonic(options: GenerateMnemonicOptions = {}): string {\n const words = options.words ?? 12\n const bits = ENTROPY_BITS[words]\n if (bits === undefined) {\n throw invalidArgument(\n `words must be one of ${MNEMONIC_WORD_COUNTS.join(', ')}, received ${String(words)}.`,\n )\n }\n return scureGenerate(wordlist, bits)\n}\n\n/**\n * Check a recovery phrase for the right word count, known words, and a valid\n * checksum. Use it to give immediate feedback on a restore form rather than\n * waiting for {@link keypairFromMnemonic} to throw.\n *\n * Pure JavaScript — no engine needed.\n */\nexport function validateMnemonic(mnemonic: string): boolean {\n if (typeof mnemonic !== 'string') return false\n try {\n return scureValidate(normalizeMnemonic(mnemonic), wordlist)\n } catch {\n return false\n }\n}\n\n/** Trim and collapse whitespace so pasted phrases validate as typed ones do. */\nexport function normalizeMnemonic(mnemonic: string): string {\n return mnemonic.trim().replace(/\\s+/gu, ' ').toLowerCase()\n}\n","import { toBase64 } from '../encoding/base64'\nimport { invalidArgument, invalidKey } from '../errors'\nimport { WasmKeypair, wasmVerify } from '../runtime/bindings'\nimport { assertReady, initGeeq } from '../runtime/init'\nimport { DEFAULT_RECORD_TYPE, toWasmCoinType, toWasmRecordType } from '../address/record-type'\nimport { createWalletAddressSync } from '../address/wallet-address'\nimport type {\n GeeqKeypair,\n MnemonicOptions,\n WalletAddressOptions,\n} from '../types'\nimport { PUBLIC_KEY_BYTES, accountIdFromPublicKey } from './account-id'\nimport { normalizeMnemonic } from './mnemonic'\n\nconst SECRET_KEY_BYTES = 32\nconst SIGNATURE_BYTES = 64\n\n/**\n * Wraps an engine-side keypair. The byte fields are copied out once at\n * construction so the object stays fully readable after {@link dispose}, which\n * only releases the engine handle used for signing.\n */\nclass Keypair implements GeeqKeypair {\n readonly publicKey: Uint8Array\n readonly privateKey: Uint8Array\n readonly accountId: Uint8Array\n\n /**\n * The engine-side handle.\n *\n * Deliberately a plain non-enumerable property rather than a `#private` field:\n * private fields are unreachable through a Proxy, so a keypair placed in\n * proxy-based reactive state — Vue's `ref`/`reactive`, MobX, Valtio — would\n * throw `TypeError: Cannot read from private field` on every method call.\n * Non-enumerable keeps it out of spreads, `Object.keys` and devtools noise.\n */\n private handle: WasmKeypair | null\n\n constructor(inner: WasmKeypair) {\n this.handle = inner\n Object.defineProperty(this, 'handle', { enumerable: false })\n this.publicKey = inner.exportPublicKey()\n this.privateKey = inner.exportSecretKey()\n this.accountId = accountIdFromPublicKey(this.publicKey)\n }\n\n getAddress(options: WalletAddressOptions): string {\n return createWalletAddressSync({\n accountId: this.accountId,\n chainNumber: options.chainNumber,\n recordType: options.recordType ?? DEFAULT_RECORD_TYPE,\n })\n }\n\n sign(message: Uint8Array): Uint8Array {\n if (this.handle === null) {\n throw invalidKey('This keypair has been disposed and can no longer sign.')\n }\n if (!(message instanceof Uint8Array)) {\n throw invalidArgument('sign() expects a Uint8Array.')\n }\n return this.handle.sign(message)\n }\n\n dispose(): void {\n this.handle?.free()\n this.handle = null\n }\n\n /** Keeps secret material out of logs, `console.log` and error breadcrumbs. */\n toJSON(): { readonly type: 'GeeqKeypair'; readonly publicKey: string } {\n return { type: 'GeeqKeypair', publicKey: toBase64(this.publicKey) }\n }\n\n toString(): string {\n return '[GeeqKeypair]'\n }\n}\n\nfunction assertBytes(value: unknown, expected: number, label: string): Uint8Array {\n if (!(value instanceof Uint8Array)) {\n throw invalidKey(`${label} must be a Uint8Array.`)\n }\n if (value.length !== expected) {\n throw invalidKey(`${label} must be ${expected} bytes, received ${value.length}.`)\n }\n return value\n}\n\n/** Create a brand new random keypair. Synchronous; requires a loaded engine. */\nexport function generateKeypairSync(): GeeqKeypair {\n assertReady('generateKeypairSync')\n return new Keypair(WasmKeypair.generate())\n}\n\n/** Create a brand new random keypair, loading the engine if needed. */\nexport async function generateKeypair(): Promise<GeeqKeypair> {\n await initGeeq()\n return generateKeypairSync()\n}\n\n/** Re-create a keypair from stored public and private key bytes. */\nexport function importKeypairSync(publicKey: Uint8Array, privateKey: Uint8Array): GeeqKeypair {\n assertReady('importKeypairSync')\n assertBytes(publicKey, PUBLIC_KEY_BYTES, 'publicKey')\n assertBytes(privateKey, SECRET_KEY_BYTES, 'privateKey')\n\n let keypair: Keypair\n try {\n // Deliberately derived from the secret key rather than via the engine's\n // import(), which accepts a mismatched pair and stores the given public key\n // verbatim — yielding a keypair whose signatures the chain would reject.\n keypair = new Keypair(WasmKeypair.fromSecretKey(privateKey))\n } catch (cause) {\n throw invalidKey('Could not import this keypair. Check the private key is correct.', cause)\n }\n\n if (!bytesEqual(keypair.publicKey, publicKey)) {\n keypair.dispose()\n throw invalidKey(\n 'publicKey does not match privateKey. Check the two halves came from the same keypair.',\n )\n }\n return keypair\n}\n\n/** Re-create a keypair from stored key bytes, loading the engine if needed. */\nexport async function importKeypair(\n publicKey: Uint8Array,\n privateKey: Uint8Array,\n): Promise<GeeqKeypair> {\n await initGeeq()\n return importKeypairSync(publicKey, privateKey)\n}\n\n/** Recover a keypair from its 32-byte secret key alone. */\nexport function keypairFromSecretKeySync(privateKey: Uint8Array): GeeqKeypair {\n assertReady('keypairFromSecretKeySync')\n assertBytes(privateKey, SECRET_KEY_BYTES, 'privateKey')\n try {\n return new Keypair(WasmKeypair.fromSecretKey(privateKey))\n } catch (cause) {\n throw invalidKey('Could not derive a keypair from this secret key.', cause)\n }\n}\n\n/** Recover a keypair from its secret key, loading the engine if needed. */\nexport async function keypairFromSecretKey(privateKey: Uint8Array): Promise<GeeqKeypair> {\n await initGeeq()\n return keypairFromSecretKeySync(privateKey)\n}\n\n/**\n * Derive a keypair from a BIP-39 mnemonic along Geeq's standard derivation path.\n *\n * The same mnemonic and options always produce the same keypair, so this is how a\n * wallet is restored on another device.\n */\nexport function keypairFromMnemonicSync(\n mnemonic: string,\n options: MnemonicOptions = {},\n): GeeqKeypair {\n assertReady('keypairFromMnemonicSync')\n\n if (typeof mnemonic !== 'string' || mnemonic.trim().length === 0) {\n throw invalidArgument('mnemonic must be a non-empty BIP-39 phrase.')\n }\n const account = options.account ?? 0\n const addressIndex = options.addressIndex ?? 0\n for (const [label, value] of [['account', account], ['addressIndex', addressIndex]] as const) {\n if (!Number.isInteger(value) || value < 0 || value > 0x7fffffff) {\n throw invalidArgument(`${label} must be an integer between 0 and 2147483647.`)\n }\n }\n\n try {\n return new Keypair(\n WasmKeypair.tryFromMnemonicGeeqPath(\n normalizeMnemonic(mnemonic),\n options.passphrase ?? '',\n toWasmRecordType(options.recordType ?? DEFAULT_RECORD_TYPE),\n toWasmCoinType(options.coinType ?? 'mainnet'),\n account,\n addressIndex,\n ),\n )\n } catch (cause) {\n throw invalidKey(\n 'Could not derive a keypair from this mnemonic. Check the words and the passphrase.',\n cause,\n )\n }\n}\n\n/** Derive a keypair from a mnemonic, loading the engine if needed. */\nexport async function keypairFromMnemonic(\n mnemonic: string,\n options: MnemonicOptions = {},\n): Promise<GeeqKeypair> {\n await initGeeq()\n return keypairFromMnemonicSync(mnemonic, options)\n}\n\n/** Verify an Ed25519 signature. Requires a loaded engine. */\nexport function verifySignature(\n publicKey: Uint8Array,\n signature: Uint8Array,\n message: Uint8Array,\n): boolean {\n assertReady('verifySignature')\n assertBytes(publicKey, PUBLIC_KEY_BYTES, 'publicKey')\n assertBytes(signature, SIGNATURE_BYTES, 'signature')\n return wasmVerify(publicKey, signature, message)\n}\n\nfunction bytesEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false\n let diff = 0\n for (let i = 0; i < a.length; i += 1) diff |= (a[i] as number) ^ (b[i] as number)\n return diff === 0\n}\n","import { invalidArgument } from './errors'\n\n/**\n * Argument checks shared across layers. Each one names the argument and what it received,\n * so the message points at the caller's data rather than at this file.\n *\n * @internal\n */\n\n/** The largest value the protocol's 32-bit fields hold: chain, block, node, nonce, index. */\nexport const MAX_UINT32 = 0xffffffff\n\n/** @internal */\nexport function assertUint32(value: number, label: string): void {\n if (!Number.isInteger(value) || value < 0 || value > MAX_UINT32) {\n throw invalidArgument(\n `${label} must be an integer between 0 and ${MAX_UINT32}, received ${String(value)}.`,\n )\n }\n}\n\n/** @internal An optional option in milliseconds. Undefined means \"use the default\". */\nexport function assertDuration(value: number | undefined, label: string): void {\n if (value === undefined) return\n if (!Number.isFinite(value) || value < 0) {\n throw invalidArgument(\n `${label} must be a non-negative number of milliseconds, received ${String(value)}.`,\n )\n }\n}\n","import { Uint64 } from 'capnp-ts'\n\nimport { invalidArgument } from './errors'\n\n/**\n * An amount of coin, with its unit stated.\n *\n * The protocol counts only **pennies**, as geeq_node_core calls them. A Geeq is a display\n * unit, and how many pennies make one is not on the chain: the app says, as\n * `penniesPerGeeq` when it connects, and every conversion takes it from there.\n *\n * Every amount crossing this SDK's surface names its unit, because the alternative is a\n * bare number that means one thing to the caller and another to the chain. That mistake\n * does not throw — it just moves the wrong amount.\n *\n * ```ts\n * { geeq: \"12.34\" } // human-facing: what someone typed\n * { pennies: balance } // protocol-facing: as the chain counts it\n * ```\n */\nexport type GeeqAmount = { readonly geeq: string | number } | { readonly pennies: bigint | number }\n\n/**\n * @internal The decimal places in a Geeq: the zeros in `penniesPerGeeq`. It must be a\n * power of ten, so that every amount of pennies has an exact decimal form.\n */\nexport function decimalsOf(penniesPerGeeq: bigint): number {\n const text = typeof penniesPerGeeq === 'bigint' ? String(penniesPerGeeq) : ''\n if (!/^10*$/u.test(text)) {\n throw invalidArgument(\n `penniesPerGeeq must be a bigint power of ten (1n, 10n, 100n, …), received ${String(penniesPerGeeq)}.`,\n )\n }\n return text.length - 1\n}\n\n/** Parse a decimal Geeq string into pennies. Rejects more precision than exists. */\nfunction geeqToPennies(value: string | number, penniesPerGeeq: bigint): bigint {\n const decimals = decimalsOf(penniesPerGeeq)\n // Numbers go through their string form: 0.1 + 0.2 is not 0.3, and money written as a\n // float has already lost whatever the float lost.\n const text = typeof value === 'number' ? String(value) : value.trim()\n\n if (typeof value === 'number' && !Number.isFinite(value)) {\n throw invalidArgument(`An amount in geeq must be a finite number, received ${text}.`)\n }\n if (typeof value === 'number' && Number.isInteger(value) && !Number.isSafeInteger(value)) {\n throw invalidArgument(\n `${text} is too large to be exact as a JavaScript number, so it may not be what was ` +\n 'typed. Pass it as a string: { geeq: \"…\" }.',\n )\n }\n if (text.startsWith('-')) {\n throw invalidArgument(`An amount cannot be negative, received ${text}.`)\n }\n\n const match = /^(\\d+)(?:\\.(\\d+))?$/u.exec(text)\n if (match === null) {\n throw invalidArgument(\n `An amount in geeq must be a decimal number such as \"12.34\", received ${JSON.stringify(text)}.`,\n )\n }\n\n const whole = match[1] as string\n const fraction = match[2] ?? ''\n if (fraction.length > decimals) {\n throw invalidArgument(\n `${text} has ${fraction.length} decimal places, but at ${penniesPerGeeq} pennies to a ` +\n `Geeq only ${decimals} are possible. Round it, or give the exact figure as { pennies }.`,\n )\n }\n return BigInt(whole) * penniesPerGeeq + BigInt(fraction.padEnd(decimals, '0'))\n}\n\n/**\n * Resolve any {@link GeeqAmount} to pennies, the unit the protocol uses. A `{ geeq }`\n * figure is read at `penniesPerGeeq` to the Geeq; `{ pennies }` is taken as it is.\n */\nexport function toPennies(amount: GeeqAmount, penniesPerGeeq: bigint): bigint {\n if (amount !== null && typeof amount === 'object') {\n if ('pennies' in amount) {\n const { pennies } = amount\n if (typeof pennies === 'bigint') {\n if (pennies < 0n) throw invalidArgument(`An amount cannot be negative, received ${pennies}.`)\n return pennies\n }\n if (typeof pennies === 'number') {\n if (!Number.isInteger(pennies)) {\n throw invalidArgument(\n `An amount in pennies must be a whole number, received ${pennies}. Pennies are ` +\n 'already the smallest unit — there is nothing below them.',\n )\n }\n // Above 2^53 a number has already been rounded to its nearest representable\n // neighbour, so converting it would move a different amount from the one meant.\n if (!Number.isSafeInteger(pennies)) {\n throw invalidArgument(\n `${pennies} pennies is too large to be exact as a JavaScript number. Pass it as ` +\n 'a bigint: { pennies: 123n }.',\n )\n }\n if (pennies < 0) throw invalidArgument(`An amount cannot be negative, received ${pennies}.`)\n return BigInt(pennies)\n }\n }\n if ('geeq' in amount) return geeqToPennies(amount.geeq, penniesPerGeeq)\n }\n throw invalidArgument(\n 'An amount must name its unit: { geeq: \"12.34\" } or { pennies } as the chain counts them.',\n )\n}\n\n/**\n * Format pennies as a decimal Geeq string at `penniesPerGeeq` to the Geeq, the way the Geeq\n * wallet shows amounts: every place the unit has, trailing zeros dropped.\n *\n * A negative figure — a shortfall, say — keeps its sign: `-1.5`, not `-1.-5`.\n */\nexport function formatGeeq(pennies: bigint, penniesPerGeeq: bigint): string {\n const decimals = decimalsOf(penniesPerGeeq)\n // Split the magnitude, not the signed value: bigint division truncates toward zero, so\n // both halves of a negative figure would carry the sign.\n const sign = pennies < 0n ? '-' : ''\n const magnitude = pennies < 0n ? -pennies : pennies\n const whole = magnitude / penniesPerGeeq\n const fraction = String(magnitude % penniesPerGeeq).padStart(decimals, '0').replace(/0+$/u, '')\n return fraction === '' ? `${sign}${whole}` : `${sign}${whole}.${fraction}`\n}\n\n/** @internal Read a Cap'n Proto UInt64 as a bigint. Little-endian, as the protocol writes it. */\nexport function uint64ToPennies(value: Uint64): bigint {\n return value.toDataView().getBigUint64(0, true)\n}\n\n/** @internal Write pennies as a Cap'n Proto UInt64. */\nexport function penniesToUint64(pennies: bigint): Uint64 {\n if (pennies < 0n || pennies > 0xffffffffffffffffn) {\n throw invalidArgument(`An amount must fit in a uint64, received ${pennies} pennies.`)\n }\n const view = new DataView(new ArrayBuffer(8))\n view.setBigUint64(0, pennies, true)\n return Uint64.fromDataView(view)\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nexport const _capnpFileId = \"80ea766574d713dd\";\nexport enum NetActorStatus {\n NET_ACTOR_STATUS_CHAIN_ADMIN,\n NET_ACTOR_STATUS_HUB,\n NET_ACTOR_STATUS_LEAVING,\n NET_ACTOR_STATUS_LISTENING,\n NET_ACTOR_STATUS_NODE,\n NET_ACTOR_STATUS_READY,\n NET_ACTOR_STATUS_RELAY,\n NET_ACTOR_STATUS_SUSPENDED\n}\nexport enum NetActorType {\n NET_ACTOR_TYPE_ANCHOR_NODE,\n NET_ACTOR_TYPE_ANON_NODE,\n NET_ACTOR_TYPE_CERT_NODE,\n NET_ACTOR_TYPE_CERT_AUTH,\n NET_ACTOR_TYPE_CHAIN_ADMIN,\n NET_ACTOR_TYPE_RELAY,\n NET_ACTOR_TYPE_TREASURY_AGENT\n}\nexport class NetActorRec extends __S {\n static readonly _capnp = { displayName: \"NetActorRec\", id: \"f1538e8c7d324cbf\", size: new __O(40, 3) };\n getRecStatus(): NetActorStatus { return __S.getUint16(0, this); }\n setRecStatus(value: NetActorStatus): void { __S.setUint16(0, value, this); }\n getNonce(): number { return __S.getUint32(4, this); }\n setNonce(value: number): void { __S.setUint32(4, value, this); }\n getBlockNumLiveness(): number { return __S.getUint32(8, this); }\n setBlockNumLiveness(value: number): void { __S.setUint32(8, value, this); }\n getBlockNumRemove(): number { return __S.getUint32(12, this); }\n setBlockNumRemove(value: number): void { __S.setUint32(12, value, this); }\n getAmtCoin(): capnp.Uint64 { return __S.getUint64(16, this); }\n setAmtCoin(value: capnp.Uint64): void { __S.setUint64(16, value, this); }\n getIpAddr(): string { return __S.getText(0, this); }\n setIpAddr(value: string): void { __S.setText(0, value, this); }\n getPortNum(): number { return __S.getUint16(2, this); }\n setPortNum(value: number): void { __S.setUint16(2, value, this); }\n getNetActorType(): NetActorType { return __S.getUint16(24, this); }\n setNetActorType(value: NetActorType): void { __S.setUint16(24, value, this); }\n getNodeNumSelf(): number { return __S.getUint32(28, this); }\n setNodeNumSelf(value: number): void { __S.setUint32(28, value, this); }\n getNodeNumSponsor(): number { return __S.getUint32(32, this); }\n setNodeNumSponsor(value: number): void { __S.setUint32(32, value, this); }\n adoptAcctNumRfd(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumRfd(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRfd()); }\n getAcctNumRfd(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumRfd(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumRfd(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumRfd(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(2, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(2, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"NetActorRec_\" + super.toString(); }\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nexport const _capnpFileId = \"efe91e8494755b9a\";\nexport class TokenAssetSubgroup extends __S {\n static readonly _capnp = { displayName: \"TokenAssetSubgroup\", id: \"f2ccc7e7067b1ddd\", size: new __O(8, 1) };\n adoptTokenName(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownTokenName(): capnp.Orphan<capnp.Data> { return __S.disown(this.getTokenName()); }\n getTokenName(): capnp.Data { return __S.getData(0, this); }\n hasTokenName(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenName(length: number): capnp.Data { return __S.initData(0, length, this); }\n setTokenName(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n getAmtToken(): capnp.Uint64 { return __S.getUint64(0, this); }\n setAmtToken(value: capnp.Uint64): void { __S.setUint64(0, value, this); }\n toString(): string { return \"TokenAssetSubgroup_\" + super.toString(); }\n}\nexport class NftAssetSubgroup extends __S {\n static readonly _capnp = { displayName: \"NftAssetSubgroup\", id: \"dc56d34bab978e1e\", size: new __O(8, 1) };\n getFlagCounterpartyNft(): boolean { return __S.getBit(0, this); }\n setFlagCounterpartyNft(value: boolean): void { __S.setBit(0, value, this); }\n adoptAcctNumApp(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumApp(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumApp()); }\n getAcctNumApp(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumApp(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumApp(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumApp(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"NftAssetSubgroup_\" + super.toString(); }\n}\nexport class CoinAssetRec extends __S {\n static readonly _capnp = { displayName: \"CoinAssetRec\", id: \"ed00ff6fd50cecf4\", size: new __O(8, 2) };\n static _TokenAssetSubgroups: capnp.ListCtor<TokenAssetSubgroup>;\n static _NftAssetSubgroups: capnp.ListCtor<NftAssetSubgroup>;\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n adoptTokenAssetSubgroups(value: capnp.Orphan<capnp.List<TokenAssetSubgroup>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownTokenAssetSubgroups(): capnp.Orphan<capnp.List<TokenAssetSubgroup>> { return __S.disown(this.getTokenAssetSubgroups()); }\n getTokenAssetSubgroups(): capnp.List<TokenAssetSubgroup> { return __S.getList(0, CoinAssetRec._TokenAssetSubgroups, this); }\n hasTokenAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenAssetSubgroups(length: number): capnp.List<TokenAssetSubgroup> { return __S.initList(0, CoinAssetRec._TokenAssetSubgroups, length, this); }\n setTokenAssetSubgroups(value: capnp.List<TokenAssetSubgroup>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptNftAssetSubgroups(value: capnp.Orphan<capnp.List<NftAssetSubgroup>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownNftAssetSubgroups(): capnp.Orphan<capnp.List<NftAssetSubgroup>> { return __S.disown(this.getNftAssetSubgroups()); }\n getNftAssetSubgroups(): capnp.List<NftAssetSubgroup> { return __S.getList(1, CoinAssetRec._NftAssetSubgroups, this); }\n hasNftAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initNftAssetSubgroups(length: number): capnp.List<NftAssetSubgroup> { return __S.initList(1, CoinAssetRec._NftAssetSubgroups, length, this); }\n setNftAssetSubgroups(value: capnp.List<NftAssetSubgroup>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"CoinAssetRec_\" + super.toString(); }\n}\nexport class CoinHlRec extends __S {\n static readonly _capnp = { displayName: \"CoinHlRec\", id: \"a0ae5bd74d8d0d1d\", size: new __O(8, 5) };\n static _TokenAssetSubgroups: capnp.ListCtor<TokenAssetSubgroup>;\n static _NftAssetSubgroups: capnp.ListCtor<NftAssetSubgroup>;\n adoptTokenAssetSubgroups(value: capnp.Orphan<capnp.List<TokenAssetSubgroup>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownTokenAssetSubgroups(): capnp.Orphan<capnp.List<TokenAssetSubgroup>> { return __S.disown(this.getTokenAssetSubgroups()); }\n getTokenAssetSubgroups(): capnp.List<TokenAssetSubgroup> { return __S.getList(0, CoinHlRec._TokenAssetSubgroups, this); }\n hasTokenAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenAssetSubgroups(length: number): capnp.List<TokenAssetSubgroup> { return __S.initList(0, CoinHlRec._TokenAssetSubgroups, length, this); }\n setTokenAssetSubgroups(value: capnp.List<TokenAssetSubgroup>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptNftAssetSubgroups(value: capnp.Orphan<capnp.List<NftAssetSubgroup>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownNftAssetSubgroups(): capnp.Orphan<capnp.List<NftAssetSubgroup>> { return __S.disown(this.getNftAssetSubgroups()); }\n getNftAssetSubgroups(): capnp.List<NftAssetSubgroup> { return __S.getList(1, CoinHlRec._NftAssetSubgroups, this); }\n hasNftAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initNftAssetSubgroups(length: number): capnp.List<NftAssetSubgroup> { return __S.initList(1, CoinHlRec._NftAssetSubgroups, length, this); }\n setNftAssetSubgroups(value: capnp.List<NftAssetSubgroup>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptHlDigest(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownHlDigest(): capnp.Orphan<capnp.Data> { return __S.disown(this.getHlDigest()); }\n getHlDigest(): capnp.Data { return __S.getData(2, this); }\n hasHlDigest(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initHlDigest(length: number): capnp.Data { return __S.initData(2, length, this); }\n setHlDigest(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n getBlockNumRfd(): number { return __S.getUint32(0, this); }\n setBlockNumRfd(value: number): void { __S.setUint32(0, value, this); }\n adoptAcctNumRfd(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(3, this)); }\n disownAcctNumRfd(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRfd()); }\n getAcctNumRfd(): capnp.Data { return __S.getData(3, this); }\n hasAcctNumRfd(): boolean { return !__S.isNull(__S.getPointer(3, this)); }\n initAcctNumRfd(length: number): capnp.Data { return __S.initData(3, length, this); }\n setAcctNumRfd(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(3, this)); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(4, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(4, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(4, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(4, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(4, this)); }\n toString(): string { return \"CoinHlRec_\" + super.toString(); }\n}\nexport class CoinMicroRec extends __S {\n static readonly _capnp = { displayName: \"CoinMicroRec\", id: \"f88cd46faf2df15b\", size: new __O(8, 1) };\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n getBlockNumRfd(): number { return __S.getUint32(4, this); }\n setBlockNumRfd(value: number): void { __S.setUint32(4, value, this); }\n adoptAcctNumRfd(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumRfd(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRfd()); }\n getAcctNumRfd(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumRfd(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumRfd(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumRfd(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"CoinMicroRec_\" + super.toString(); }\n}\nexport enum CoinAcctRec_RecType_Which {\n ASSET = 0,\n HL = 1,\n MICRO = 2\n}\nexport class CoinAcctRec_RecType extends __S {\n static readonly ASSET = CoinAcctRec_RecType_Which.ASSET;\n static readonly HL = CoinAcctRec_RecType_Which.HL;\n static readonly MICRO = CoinAcctRec_RecType_Which.MICRO;\n static readonly _capnp = { displayName: \"recType\", id: \"e284c8578fa0bf7f\", size: new __O(16, 2) };\n adoptAsset(value: capnp.Orphan<CoinAssetRec>): void {\n __S.setUint16(8, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAsset(): capnp.Orphan<CoinAssetRec> { return __S.disown(this.getAsset()); }\n getAsset(): CoinAssetRec {\n __S.testWhich(\"asset\", __S.getUint16(8, this), 0, this);\n return __S.getStruct(0, CoinAssetRec, this);\n }\n hasAsset(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAsset(): CoinAssetRec {\n __S.setUint16(8, 0, this);\n return __S.initStructAt(0, CoinAssetRec, this);\n }\n isAsset(): boolean { return __S.getUint16(8, this) === 0; }\n setAsset(value: CoinAssetRec): void {\n __S.setUint16(8, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptHl(value: capnp.Orphan<CoinHlRec>): void {\n __S.setUint16(8, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownHl(): capnp.Orphan<CoinHlRec> { return __S.disown(this.getHl()); }\n getHl(): CoinHlRec {\n __S.testWhich(\"hl\", __S.getUint16(8, this), 1, this);\n return __S.getStruct(0, CoinHlRec, this);\n }\n hasHl(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initHl(): CoinHlRec {\n __S.setUint16(8, 1, this);\n return __S.initStructAt(0, CoinHlRec, this);\n }\n isHl(): boolean { return __S.getUint16(8, this) === 1; }\n setHl(value: CoinHlRec): void {\n __S.setUint16(8, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMicro(value: capnp.Orphan<CoinMicroRec>): void {\n __S.setUint16(8, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMicro(): capnp.Orphan<CoinMicroRec> { return __S.disown(this.getMicro()); }\n getMicro(): CoinMicroRec {\n __S.testWhich(\"micro\", __S.getUint16(8, this), 2, this);\n return __S.getStruct(0, CoinMicroRec, this);\n }\n hasMicro(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMicro(): CoinMicroRec {\n __S.setUint16(8, 2, this);\n return __S.initStructAt(0, CoinMicroRec, this);\n }\n isMicro(): boolean { return __S.getUint16(8, this) === 2; }\n setMicro(value: CoinMicroRec): void {\n __S.setUint16(8, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"CoinAcctRec_RecType_\" + super.toString(); }\n which(): CoinAcctRec_RecType_Which { return __S.getUint16(8, this); }\n}\nexport class CoinAcctRec extends __S {\n static readonly _capnp = { displayName: \"CoinAcctRec\", id: \"ba5ccb364bd263f7\", size: new __O(16, 2) };\n getRecType(): CoinAcctRec_RecType { return __S.getAs(CoinAcctRec_RecType, this); }\n initRecType(): CoinAcctRec_RecType { return __S.getAs(CoinAcctRec_RecType, this); }\n getAmtCoin(): capnp.Uint64 { return __S.getUint64(0, this); }\n setAmtCoin(value: capnp.Uint64): void { __S.setUint64(0, value, this); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"CoinAcctRec_\" + super.toString(); }\n}\nCoinAssetRec._TokenAssetSubgroups = capnp.CompositeList(TokenAssetSubgroup);\nCoinAssetRec._NftAssetSubgroups = capnp.CompositeList(NftAssetSubgroup);\nCoinHlRec._TokenAssetSubgroups = capnp.CompositeList(TokenAssetSubgroup);\nCoinHlRec._NftAssetSubgroups = capnp.CompositeList(NftAssetSubgroup);\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nimport { TokenAssetSubgroup, NftAssetSubgroup } from \"./coinAcctRec.capnp\";\nexport const _capnpFileId = \"94403f3b9f0ad517\";\nexport enum DceRecStatus {\n DCE_REC_STATUS_FINALIZED,\n DCE_REC_STATUS_LOCKED,\n DCE_REC_STATUS_UNLOCKED\n}\nexport class MultiUserSubgroup extends __S {\n static readonly _capnp = { displayName: \"MultiUserSubgroup\", id: \"e7e15be6e60a5ff9\", size: new __O(8, 1) };\n adoptAcctNumMultiUser(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumMultiUser(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumMultiUser()); }\n getAcctNumMultiUser(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumMultiUser(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumMultiUser(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumMultiUser(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n toString(): string { return \"MultiUserSubgroup_\" + super.toString(); }\n}\nexport class ProxyDceRec extends __S {\n static readonly _capnp = { displayName: \"ProxyDceRec\", id: \"e350ffbdd2da95cc\", size: new __O(8, 2) };\n static _MultiUserSubgroups: capnp.ListCtor<MultiUserSubgroup>;\n getRecStatus(): DceRecStatus { return __S.getUint16(0, this); }\n setRecStatus(value: DceRecStatus): void { __S.setUint16(0, value, this); }\n adoptAcctNumAdminUser(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumAdminUser(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumAdminUser()); }\n getAcctNumAdminUser(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumAdminUser(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumAdminUser(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumAdminUser(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptMultiUserSubgroups(value: capnp.Orphan<capnp.List<MultiUserSubgroup>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownMultiUserSubgroups(): capnp.Orphan<capnp.List<MultiUserSubgroup>> { return __S.disown(this.getMultiUserSubgroups()); }\n getMultiUserSubgroups(): capnp.List<MultiUserSubgroup> { return __S.getList(1, ProxyDceRec._MultiUserSubgroups, this); }\n hasMultiUserSubgroups(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initMultiUserSubgroups(length: number): capnp.List<MultiUserSubgroup> { return __S.initList(1, ProxyDceRec._MultiUserSubgroups, length, this); }\n setMultiUserSubgroups(value: capnp.List<MultiUserSubgroup>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"ProxyDceRec_\" + super.toString(); }\n}\nexport class ProxyFundingRec extends __S {\n static readonly _capnp = { displayName: \"ProxyFundingRec\", id: \"bca7e50951e56285\", size: new __O(0, 2) };\n static _MultiUserSubgroups: capnp.ListCtor<MultiUserSubgroup>;\n adoptAcctNumAdminUser(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumAdminUser(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumAdminUser()); }\n getAcctNumAdminUser(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumAdminUser(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumAdminUser(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumAdminUser(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptMultiUserSubgroups(value: capnp.Orphan<capnp.List<MultiUserSubgroup>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownMultiUserSubgroups(): capnp.Orphan<capnp.List<MultiUserSubgroup>> { return __S.disown(this.getMultiUserSubgroups()); }\n getMultiUserSubgroups(): capnp.List<MultiUserSubgroup> { return __S.getList(1, ProxyFundingRec._MultiUserSubgroups, this); }\n hasMultiUserSubgroups(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initMultiUserSubgroups(length: number): capnp.List<MultiUserSubgroup> { return __S.initList(1, ProxyFundingRec._MultiUserSubgroups, length, this); }\n setMultiUserSubgroups(value: capnp.List<MultiUserSubgroup>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"ProxyFundingRec_\" + super.toString(); }\n}\nexport class ProxyMultisigRec extends __S {\n static readonly _capnp = { displayName: \"ProxyMultisigRec\", id: \"9014dd31dd669c90\", size: new __O(8, 3) };\n static _TokenAssetSubgroups: capnp.ListCtor<TokenAssetSubgroup>;\n static _NftAssetSubgroups: capnp.ListCtor<NftAssetSubgroup>;\n static _MultiUserSubgroups: capnp.ListCtor<MultiUserSubgroup>;\n adoptTokenAssetSubgroups(value: capnp.Orphan<capnp.List<TokenAssetSubgroup>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownTokenAssetSubgroups(): capnp.Orphan<capnp.List<TokenAssetSubgroup>> { return __S.disown(this.getTokenAssetSubgroups()); }\n getTokenAssetSubgroups(): capnp.List<TokenAssetSubgroup> { return __S.getList(0, ProxyMultisigRec._TokenAssetSubgroups, this); }\n hasTokenAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenAssetSubgroups(length: number): capnp.List<TokenAssetSubgroup> { return __S.initList(0, ProxyMultisigRec._TokenAssetSubgroups, length, this); }\n setTokenAssetSubgroups(value: capnp.List<TokenAssetSubgroup>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptNftAssetSubgroups(value: capnp.Orphan<capnp.List<NftAssetSubgroup>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownNftAssetSubgroups(): capnp.Orphan<capnp.List<NftAssetSubgroup>> { return __S.disown(this.getNftAssetSubgroups()); }\n getNftAssetSubgroups(): capnp.List<NftAssetSubgroup> { return __S.getList(1, ProxyMultisigRec._NftAssetSubgroups, this); }\n hasNftAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initNftAssetSubgroups(length: number): capnp.List<NftAssetSubgroup> { return __S.initList(1, ProxyMultisigRec._NftAssetSubgroups, length, this); }\n setNftAssetSubgroups(value: capnp.List<NftAssetSubgroup>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptMultiUserSubgroups(value: capnp.Orphan<capnp.List<MultiUserSubgroup>>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownMultiUserSubgroups(): capnp.Orphan<capnp.List<MultiUserSubgroup>> { return __S.disown(this.getMultiUserSubgroups()); }\n getMultiUserSubgroups(): capnp.List<MultiUserSubgroup> { return __S.getList(2, ProxyMultisigRec._MultiUserSubgroups, this); }\n hasMultiUserSubgroups(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initMultiUserSubgroups(length: number): capnp.List<MultiUserSubgroup> { return __S.initList(2, ProxyMultisigRec._MultiUserSubgroups, length, this); }\n setMultiUserSubgroups(value: capnp.List<MultiUserSubgroup>): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n getSigThreshold(): number { return __S.getUint16(0, this); }\n setSigThreshold(value: number): void { __S.setUint16(0, value, this); }\n toString(): string { return \"ProxyMultisigRec_\" + super.toString(); }\n}\nexport class ProxyNftMintRec extends __S {\n static readonly _capnp = { displayName: \"ProxyNftMintRec\", id: \"ae1911db2032a6a2\", size: new __O(0, 1) };\n adoptAcctNumAdminUser(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumAdminUser(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumAdminUser()); }\n getAcctNumAdminUser(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumAdminUser(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumAdminUser(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumAdminUser(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"ProxyNftMintRec_\" + super.toString(); }\n}\nexport class ProxyTokenMintRec extends __S {\n static readonly _capnp = { displayName: \"ProxyTokenMintRec\", id: \"cf0023a9e9725088\", size: new __O(40, 2) };\n getBlockNum(): number { return __S.getUint32(0, this); }\n setBlockNum(value: number): void { __S.setUint32(0, value, this); }\n adoptTokenAssetSubgroup(value: capnp.Orphan<TokenAssetSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownTokenAssetSubgroup(): capnp.Orphan<TokenAssetSubgroup> { return __S.disown(this.getTokenAssetSubgroup()); }\n getTokenAssetSubgroup(): TokenAssetSubgroup { return __S.getStruct(0, TokenAssetSubgroup, this); }\n hasTokenAssetSubgroup(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenAssetSubgroup(): TokenAssetSubgroup { return __S.initStructAt(0, TokenAssetSubgroup, this); }\n setTokenAssetSubgroup(value: TokenAssetSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n getAmtTokenBurned(): capnp.Uint64 { return __S.getUint64(8, this); }\n setAmtTokenBurned(value: capnp.Uint64): void { __S.setUint64(8, value, this); }\n getAmtTokenMinted(): capnp.Uint64 { return __S.getUint64(16, this); }\n setAmtTokenMinted(value: capnp.Uint64): void { __S.setUint64(16, value, this); }\n getAmtTokenMax(): capnp.Uint64 { return __S.getUint64(24, this); }\n setAmtTokenMax(value: capnp.Uint64): void { __S.setUint64(24, value, this); }\n getAmtTokenAuth(): capnp.Uint64 { return __S.getUint64(32, this); }\n setAmtTokenAuth(value: capnp.Uint64): void { __S.setUint64(32, value, this); }\n adoptAcctNumAdminUser(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumAdminUser(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumAdminUser()); }\n getAcctNumAdminUser(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumAdminUser(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumAdminUser(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumAdminUser(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"ProxyTokenMintRec_\" + super.toString(); }\n}\nexport enum ProxyAcctRec_RecType_Which {\n DCE = 0,\n FUNDING = 3,\n MULTISIG = 1,\n NFT_MINT = 2,\n TOKEN_MINT = 4\n}\nexport class ProxyAcctRec_RecType extends __S {\n static readonly DCE = ProxyAcctRec_RecType_Which.DCE;\n static readonly FUNDING = ProxyAcctRec_RecType_Which.FUNDING;\n static readonly MULTISIG = ProxyAcctRec_RecType_Which.MULTISIG;\n static readonly NFT_MINT = ProxyAcctRec_RecType_Which.NFT_MINT;\n static readonly TOKEN_MINT = ProxyAcctRec_RecType_Which.TOKEN_MINT;\n static readonly _capnp = { displayName: \"recType\", id: \"bf877cf81c80e0b7\", size: new __O(16, 2) };\n adoptDce(value: capnp.Orphan<ProxyDceRec>): void {\n __S.setUint16(4, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownDce(): capnp.Orphan<ProxyDceRec> { return __S.disown(this.getDce()); }\n getDce(): ProxyDceRec {\n __S.testWhich(\"dce\", __S.getUint16(4, this), 0, this);\n return __S.getStruct(0, ProxyDceRec, this);\n }\n hasDce(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initDce(): ProxyDceRec {\n __S.setUint16(4, 0, this);\n return __S.initStructAt(0, ProxyDceRec, this);\n }\n isDce(): boolean { return __S.getUint16(4, this) === 0; }\n setDce(value: ProxyDceRec): void {\n __S.setUint16(4, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptFunding(value: capnp.Orphan<ProxyFundingRec>): void {\n __S.setUint16(4, 3, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownFunding(): capnp.Orphan<ProxyFundingRec> { return __S.disown(this.getFunding()); }\n getFunding(): ProxyFundingRec {\n __S.testWhich(\"funding\", __S.getUint16(4, this), 3, this);\n return __S.getStruct(0, ProxyFundingRec, this);\n }\n hasFunding(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initFunding(): ProxyFundingRec {\n __S.setUint16(4, 3, this);\n return __S.initStructAt(0, ProxyFundingRec, this);\n }\n isFunding(): boolean { return __S.getUint16(4, this) === 3; }\n setFunding(value: ProxyFundingRec): void {\n __S.setUint16(4, 3, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMultisig(value: capnp.Orphan<ProxyMultisigRec>): void {\n __S.setUint16(4, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMultisig(): capnp.Orphan<ProxyMultisigRec> { return __S.disown(this.getMultisig()); }\n getMultisig(): ProxyMultisigRec {\n __S.testWhich(\"multisig\", __S.getUint16(4, this), 1, this);\n return __S.getStruct(0, ProxyMultisigRec, this);\n }\n hasMultisig(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMultisig(): ProxyMultisigRec {\n __S.setUint16(4, 1, this);\n return __S.initStructAt(0, ProxyMultisigRec, this);\n }\n isMultisig(): boolean { return __S.getUint16(4, this) === 1; }\n setMultisig(value: ProxyMultisigRec): void {\n __S.setUint16(4, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptNftMint(value: capnp.Orphan<ProxyNftMintRec>): void {\n __S.setUint16(4, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownNftMint(): capnp.Orphan<ProxyNftMintRec> { return __S.disown(this.getNftMint()); }\n getNftMint(): ProxyNftMintRec {\n __S.testWhich(\"nftMint\", __S.getUint16(4, this), 2, this);\n return __S.getStruct(0, ProxyNftMintRec, this);\n }\n hasNftMint(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNftMint(): ProxyNftMintRec {\n __S.setUint16(4, 2, this);\n return __S.initStructAt(0, ProxyNftMintRec, this);\n }\n isNftMint(): boolean { return __S.getUint16(4, this) === 2; }\n setNftMint(value: ProxyNftMintRec): void {\n __S.setUint16(4, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptTokenMint(value: capnp.Orphan<ProxyTokenMintRec>): void {\n __S.setUint16(4, 4, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownTokenMint(): capnp.Orphan<ProxyTokenMintRec> { return __S.disown(this.getTokenMint()); }\n getTokenMint(): ProxyTokenMintRec {\n __S.testWhich(\"tokenMint\", __S.getUint16(4, this), 4, this);\n return __S.getStruct(0, ProxyTokenMintRec, this);\n }\n hasTokenMint(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenMint(): ProxyTokenMintRec {\n __S.setUint16(4, 4, this);\n return __S.initStructAt(0, ProxyTokenMintRec, this);\n }\n isTokenMint(): boolean { return __S.getUint16(4, this) === 4; }\n setTokenMint(value: ProxyTokenMintRec): void {\n __S.setUint16(4, 4, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"ProxyAcctRec_RecType_\" + super.toString(); }\n which(): ProxyAcctRec_RecType_Which { return __S.getUint16(4, this); }\n}\nexport class ProxyAcctRec extends __S {\n static readonly _capnp = { displayName: \"ProxyAcctRec\", id: \"cc760a7f3addcb69\", size: new __O(16, 2) };\n getRecType(): ProxyAcctRec_RecType { return __S.getAs(ProxyAcctRec_RecType, this); }\n initRecType(): ProxyAcctRec_RecType { return __S.getAs(ProxyAcctRec_RecType, this); }\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n getAmtCoin(): capnp.Uint64 { return __S.getUint64(8, this); }\n setAmtCoin(value: capnp.Uint64): void { __S.setUint64(8, value, this); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"ProxyAcctRec_\" + super.toString(); }\n}\nProxyDceRec._MultiUserSubgroups = capnp.CompositeList(MultiUserSubgroup);\nProxyFundingRec._MultiUserSubgroups = capnp.CompositeList(MultiUserSubgroup);\nProxyMultisigRec._TokenAssetSubgroups = capnp.CompositeList(TokenAssetSubgroup);\nProxyMultisigRec._NftAssetSubgroups = capnp.CompositeList(NftAssetSubgroup);\nProxyMultisigRec._MultiUserSubgroups = capnp.CompositeList(MultiUserSubgroup);\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nexport const _capnpFileId = \"a7e8a4684ffc42aa\";\nexport class ChainStateView extends __S {\n static readonly _capnp = { displayName: \"ChainStateView\", id: \"8b6888e93ad5b866\", size: new __O(0, 6) };\n adoptMerkleRootAlb(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownMerkleRootAlb(): capnp.Orphan<capnp.Data> { return __S.disown(this.getMerkleRootAlb()); }\n getMerkleRootAlb(): capnp.Data { return __S.getData(0, this); }\n hasMerkleRootAlb(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMerkleRootAlb(length: number): capnp.Data { return __S.initData(0, length, this); }\n setMerkleRootAlb(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptMerkleRootVlb(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownMerkleRootVlb(): capnp.Orphan<capnp.Data> { return __S.disown(this.getMerkleRootVlb()); }\n getMerkleRootVlb(): capnp.Data { return __S.getData(1, this); }\n hasMerkleRootVlb(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initMerkleRootVlb(length: number): capnp.Data { return __S.initData(1, length, this); }\n setMerkleRootVlb(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptMerkleRootAll(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownMerkleRootAll(): capnp.Orphan<capnp.Data> { return __S.disown(this.getMerkleRootAll()); }\n getMerkleRootAll(): capnp.Data { return __S.getData(2, this); }\n hasMerkleRootAll(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initMerkleRootAll(length: number): capnp.Data { return __S.initData(2, length, this); }\n setMerkleRootAll(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n adoptMerkleRootVll(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(3, this)); }\n disownMerkleRootVll(): capnp.Orphan<capnp.Data> { return __S.disown(this.getMerkleRootVll()); }\n getMerkleRootVll(): capnp.Data { return __S.getData(3, this); }\n hasMerkleRootVll(): boolean { return !__S.isNull(__S.getPointer(3, this)); }\n initMerkleRootVll(length: number): capnp.Data { return __S.initData(3, length, this); }\n setMerkleRootVll(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(3, this)); }\n adoptMerkleRootRcs(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(4, this)); }\n disownMerkleRootRcs(): capnp.Orphan<capnp.Data> { return __S.disown(this.getMerkleRootRcs()); }\n getMerkleRootRcs(): capnp.Data { return __S.getData(4, this); }\n hasMerkleRootRcs(): boolean { return !__S.isNull(__S.getPointer(4, this)); }\n initMerkleRootRcs(length: number): capnp.Data { return __S.initData(4, length, this); }\n setMerkleRootRcs(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(4, this)); }\n adoptForkData(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(5, this)); }\n disownForkData(): capnp.Orphan<capnp.Data> { return __S.disown(this.getForkData()); }\n getForkData(): capnp.Data { return __S.getData(5, this); }\n hasForkData(): boolean { return !__S.isNull(__S.getPointer(5, this)); }\n initForkData(length: number): capnp.Data { return __S.initData(5, length, this); }\n setForkData(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(5, this)); }\n toString(): string { return \"ChainStateView_\" + super.toString(); }\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nimport { ChainStateView } from \"./chainStateView.capnp\";\nexport const _capnpFileId = \"aed9e2106d912962\";\nexport class NodeContentStmtData extends __S {\n static readonly _capnp = { displayName: \"NodeContentStmtData\", id: \"d8e366de453ef3c7\", size: new __O(24, 4) };\n getBlockNum(): number { return __S.getUint32(0, this); }\n setBlockNum(value: number): void { __S.setUint32(0, value, this); }\n getChainNum(): number { return __S.getUint32(4, this); }\n setChainNum(value: number): void { __S.setUint32(4, value, this); }\n getNodeNum(): number { return __S.getUint32(8, this); }\n setNodeNum(value: number): void { __S.setUint32(8, value, this); }\n getTimestamp(): capnp.Int64 { return __S.getInt64(16, this); }\n setTimestamp(value: capnp.Int64): void { __S.setInt64(16, value, this); }\n adoptChainStateView(value: capnp.Orphan<ChainStateView>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownChainStateView(): capnp.Orphan<ChainStateView> { return __S.disown(this.getChainStateView()); }\n getChainStateView(): ChainStateView { return __S.getStruct(0, ChainStateView, this); }\n hasChainStateView(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initChainStateView(): ChainStateView { return __S.initStructAt(0, ChainStateView, this); }\n setChainStateView(value: ChainStateView): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptRefMerkleRootNpl(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownRefMerkleRootNpl(): capnp.Orphan<capnp.Data> { return __S.disown(this.getRefMerkleRootNpl()); }\n getRefMerkleRootNpl(): capnp.Data { return __S.getData(1, this); }\n hasRefMerkleRootNpl(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initRefMerkleRootNpl(length: number): capnp.Data { return __S.initData(1, length, this); }\n setRefMerkleRootNpl(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptRefMerkleRootNtl(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownRefMerkleRootNtl(): capnp.Orphan<capnp.Data> { return __S.disown(this.getRefMerkleRootNtl()); }\n getRefMerkleRootNtl(): capnp.Data { return __S.getData(2, this); }\n hasRefMerkleRootNtl(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initRefMerkleRootNtl(length: number): capnp.Data { return __S.initData(2, length, this); }\n setRefMerkleRootNtl(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(3, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(3, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(3, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(3, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(3, this)); }\n toString(): string { return \"NodeContentStmtData_\" + super.toString(); }\n}\nexport class NodeContentStmt extends __S {\n static readonly _capnp = { displayName: \"NodeContentStmt\", id: \"d48cdd71966ef907\", size: new __O(0, 2) };\n adoptData(value: capnp.Orphan<NodeContentStmtData>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownData(): capnp.Orphan<NodeContentStmtData> { return __S.disown(this.getData()); }\n getData(): NodeContentStmtData { return __S.getStruct(0, NodeContentStmtData, this); }\n hasData(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initData(): NodeContentStmtData { return __S.initStructAt(0, NodeContentStmtData, this); }\n setData(value: NodeContentStmtData): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptSignature(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownSignature(): capnp.Orphan<capnp.Data> { return __S.disown(this.getSignature()); }\n getSignature(): capnp.Data { return __S.getData(1, this); }\n hasSignature(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initSignature(length: number): capnp.Data { return __S.initData(1, length, this); }\n setSignature(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"NodeContentStmt_\" + super.toString(); }\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nimport { ChainStateView } from \"./chainStateView.capnp\";\nimport { NodeContentStmtData, NodeContentStmt } from \"./nodeContentStmt.capnp\";\nexport const _capnpFileId = \"95e2769cd87644db\";\nexport class HubContentStmtData extends __S {\n static readonly _capnp = { displayName: \"HubContentStmtData\", id: \"c77fa7b5b93dbdb3\", size: new __O(24, 3) };\n static _NodeContentStmts: capnp.ListCtor<NodeContentStmt>;\n getBlockNum(): number { return __S.getUint32(0, this); }\n setBlockNum(value: number): void { __S.setUint32(0, value, this); }\n getChainNum(): number { return __S.getUint32(4, this); }\n setChainNum(value: number): void { __S.setUint32(4, value, this); }\n getNodeNum(): number { return __S.getUint32(8, this); }\n setNodeNum(value: number): void { __S.setUint32(8, value, this); }\n getTimestamp(): capnp.Int64 { return __S.getInt64(16, this); }\n setTimestamp(value: capnp.Int64): void { __S.setInt64(16, value, this); }\n adoptChainStateView(value: capnp.Orphan<ChainStateView>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownChainStateView(): capnp.Orphan<ChainStateView> { return __S.disown(this.getChainStateView()); }\n getChainStateView(): ChainStateView { return __S.getStruct(0, ChainStateView, this); }\n hasChainStateView(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initChainStateView(): ChainStateView { return __S.initStructAt(0, ChainStateView, this); }\n setChainStateView(value: ChainStateView): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptNodeContentStmts(value: capnp.Orphan<capnp.List<NodeContentStmt>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownNodeContentStmts(): capnp.Orphan<capnp.List<NodeContentStmt>> { return __S.disown(this.getNodeContentStmts()); }\n getNodeContentStmts(): capnp.List<NodeContentStmt> { return __S.getList(1, HubContentStmtData._NodeContentStmts, this); }\n hasNodeContentStmts(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initNodeContentStmts(length: number): capnp.List<NodeContentStmt> { return __S.initList(1, HubContentStmtData._NodeContentStmts, length, this); }\n setNodeContentStmts(value: capnp.List<NodeContentStmt>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(2, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(2, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"HubContentStmtData_\" + super.toString(); }\n}\nexport class HubContentStmt extends __S {\n static readonly _capnp = { displayName: \"HubContentStmt\", id: \"c88d710f61a87b23\", size: new __O(0, 2) };\n adoptData(value: capnp.Orphan<HubContentStmtData>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownData(): capnp.Orphan<HubContentStmtData> { return __S.disown(this.getData()); }\n getData(): HubContentStmtData { return __S.getStruct(0, HubContentStmtData, this); }\n hasData(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initData(): HubContentStmtData { return __S.initStructAt(0, HubContentStmtData, this); }\n setData(value: HubContentStmtData): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptSignature(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownSignature(): capnp.Orphan<capnp.Data> { return __S.disown(this.getSignature()); }\n getSignature(): capnp.Data { return __S.getData(1, this); }\n hasSignature(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initSignature(length: number): capnp.Data { return __S.initData(1, length, this); }\n setSignature(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"HubContentStmt_\" + super.toString(); }\n}\nHubContentStmtData._NodeContentStmts = capnp.CompositeList(NodeContentStmt);\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nimport { ChainStateView } from \"./chainStateView.capnp\";\nimport { HubContentStmtData, HubContentStmt } from \"./hubContentStmt.capnp\";\nexport const _capnpFileId = \"cdd94136617c0106\";\nexport enum RelayContentStmtData_HubContentStmt_Which {\n SOME = 0,\n NONE = 1\n}\nexport class RelayContentStmtData_HubContentStmt extends __S {\n static readonly SOME = RelayContentStmtData_HubContentStmt_Which.SOME;\n static readonly NONE = RelayContentStmtData_HubContentStmt_Which.NONE;\n static readonly _capnp = { displayName: \"hubContentStmt\", id: \"fb2ef5ae6b4a95ed\", size: new __O(24, 3) };\n adoptSome(value: capnp.Orphan<HubContentStmt>): void {\n __S.setUint16(12, 0, this);\n __S.adopt(value, __S.getPointer(1, this));\n }\n disownSome(): capnp.Orphan<HubContentStmt> { return __S.disown(this.getSome()); }\n getSome(): HubContentStmt {\n __S.testWhich(\"some\", __S.getUint16(12, this), 0, this);\n return __S.getStruct(1, HubContentStmt, this);\n }\n hasSome(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initSome(): HubContentStmt {\n __S.setUint16(12, 0, this);\n return __S.initStructAt(1, HubContentStmt, this);\n }\n isSome(): boolean { return __S.getUint16(12, this) === 0; }\n setSome(value: HubContentStmt): void {\n __S.setUint16(12, 0, this);\n __S.copyFrom(value, __S.getPointer(1, this));\n }\n isNone(): boolean { return __S.getUint16(12, this) === 1; }\n setNone(): void { __S.setUint16(12, 1, this); }\n toString(): string { return \"RelayContentStmtData_HubContentStmt_\" + super.toString(); }\n which(): RelayContentStmtData_HubContentStmt_Which { return __S.getUint16(12, this); }\n}\nexport class RelayContentStmtData extends __S {\n static readonly _capnp = { displayName: \"RelayContentStmtData\", id: \"ab19bde2ae833958\", size: new __O(24, 3) };\n getBlockNum(): number { return __S.getUint32(0, this); }\n setBlockNum(value: number): void { __S.setUint32(0, value, this); }\n getChainNum(): number { return __S.getUint32(4, this); }\n setChainNum(value: number): void { __S.setUint32(4, value, this); }\n getNodeNum(): number { return __S.getUint32(8, this); }\n setNodeNum(value: number): void { __S.setUint32(8, value, this); }\n getTimestamp(): capnp.Int64 { return __S.getInt64(16, this); }\n setTimestamp(value: capnp.Int64): void { __S.setInt64(16, value, this); }\n adoptChainStateView(value: capnp.Orphan<ChainStateView>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownChainStateView(): capnp.Orphan<ChainStateView> { return __S.disown(this.getChainStateView()); }\n getChainStateView(): ChainStateView { return __S.getStruct(0, ChainStateView, this); }\n hasChainStateView(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initChainStateView(): ChainStateView { return __S.initStructAt(0, ChainStateView, this); }\n setChainStateView(value: ChainStateView): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n getHubContentStmt(): RelayContentStmtData_HubContentStmt { return __S.getAs(RelayContentStmtData_HubContentStmt, this); }\n initHubContentStmt(): RelayContentStmtData_HubContentStmt { return __S.getAs(RelayContentStmtData_HubContentStmt, this); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(2, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(2, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"RelayContentStmtData_\" + super.toString(); }\n}\nexport class RelayContentStmt extends __S {\n static readonly _capnp = { displayName: \"RelayContentStmt\", id: \"a2cf95dbe243bb45\", size: new __O(0, 2) };\n adoptData(value: capnp.Orphan<RelayContentStmtData>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownData(): capnp.Orphan<RelayContentStmtData> { return __S.disown(this.getData()); }\n getData(): RelayContentStmtData { return __S.getStruct(0, RelayContentStmtData, this); }\n hasData(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initData(): RelayContentStmtData { return __S.initStructAt(0, RelayContentStmtData, this); }\n setData(value: RelayContentStmtData): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptSignature(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownSignature(): capnp.Orphan<capnp.Data> { return __S.disown(this.getSignature()); }\n getSignature(): capnp.Data { return __S.getData(1, this); }\n hasSignature(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initSignature(length: number): capnp.Data { return __S.initData(1, length, this); }\n setSignature(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"RelayContentStmt_\" + super.toString(); }\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { NetActorStatus, NetActorType } from './netActorRec.capnp';\nimport { DceRecStatus } from './proxyAcctRec.capnp';\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nimport { TokenAssetSubgroup, NftAssetSubgroup } from \"./coinAcctRec.capnp\";\nimport { HubContentStmtData, HubContentStmt } from \"./hubContentStmt.capnp\";\nimport { NodeContentStmtData, NodeContentStmt } from \"./nodeContentStmt.capnp\";\nimport { RelayContentStmtData, RelayContentStmt } from \"./relayContentStmt.capnp\";\nexport const _capnpFileId = \"bc63e89e9ec5f899\";\nexport class TokenAssetSubgroupEntry extends __S {\n static readonly _capnp = { displayName: \"TokenAssetSubgroupEntry\", id: \"9d91bc3d6f78ea7e\", size: new __O(8, 1) };\n getPosition(): number { return __S.getUint32(0, this); }\n setPosition(value: number): void { __S.setUint32(0, value, this); }\n adoptItem(value: capnp.Orphan<TokenAssetSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownItem(): capnp.Orphan<TokenAssetSubgroup> { return __S.disown(this.getItem()); }\n getItem(): TokenAssetSubgroup { return __S.getStruct(0, TokenAssetSubgroup, this); }\n hasItem(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initItem(): TokenAssetSubgroup { return __S.initStructAt(0, TokenAssetSubgroup, this); }\n setItem(value: TokenAssetSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"TokenAssetSubgroupEntry_\" + super.toString(); }\n}\nexport class NftAssetSubgroupEntry extends __S {\n static readonly _capnp = { displayName: \"NftAssetSubgroupEntry\", id: \"8402226dbc8c7857\", size: new __O(8, 1) };\n getPosition(): number { return __S.getUint32(0, this); }\n setPosition(value: number): void { __S.setUint32(0, value, this); }\n adoptItem(value: capnp.Orphan<NftAssetSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownItem(): capnp.Orphan<NftAssetSubgroup> { return __S.disown(this.getItem()); }\n getItem(): NftAssetSubgroup { return __S.getStruct(0, NftAssetSubgroup, this); }\n hasItem(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initItem(): NftAssetSubgroup { return __S.initStructAt(0, NftAssetSubgroup, this); }\n setItem(value: NftAssetSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"NftAssetSubgroupEntry_\" + super.toString(); }\n}\nexport enum CoinAssetTx_AmtCoin_Which {\n SOME = 0,\n NONE = 1\n}\nexport class CoinAssetTx_AmtCoin extends __S {\n static readonly SOME = CoinAssetTx_AmtCoin_Which.SOME;\n static readonly NONE = CoinAssetTx_AmtCoin_Which.NONE;\n static readonly _capnp = { displayName: \"amtCoin\", id: \"c8fc567a6493a1b6\", size: new __O(16, 4) };\n getSome(): capnp.Uint64 {\n __S.testWhich(\"some\", __S.getUint16(4, this), 0, this);\n return __S.getUint64(8, this);\n }\n isSome(): boolean { return __S.getUint16(4, this) === 0; }\n setSome(value: capnp.Uint64): void {\n __S.setUint16(4, 0, this);\n __S.setUint64(8, value, this);\n }\n isNone(): boolean { return __S.getUint16(4, this) === 1; }\n setNone(): void { __S.setUint16(4, 1, this); }\n toString(): string { return \"CoinAssetTx_AmtCoin_\" + super.toString(); }\n which(): CoinAssetTx_AmtCoin_Which { return __S.getUint16(4, this); }\n}\nexport class CoinAssetTx extends __S {\n static readonly _capnp = { displayName: \"CoinAssetTx\", id: \"eed83b251db4f8d7\", size: new __O(16, 4) };\n static _TokenAssetSubgroups: capnp.ListCtor<TokenAssetSubgroupEntry>;\n static _NftAssetSubgroups: capnp.ListCtor<NftAssetSubgroupEntry>;\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n getAmtCoin(): CoinAssetTx_AmtCoin { return __S.getAs(CoinAssetTx_AmtCoin, this); }\n initAmtCoin(): CoinAssetTx_AmtCoin { return __S.getAs(CoinAssetTx_AmtCoin, this); }\n adoptTokenAssetSubgroups(value: capnp.Orphan<capnp.List<TokenAssetSubgroupEntry>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownTokenAssetSubgroups(): capnp.Orphan<capnp.List<TokenAssetSubgroupEntry>> { return __S.disown(this.getTokenAssetSubgroups()); }\n getTokenAssetSubgroups(): capnp.List<TokenAssetSubgroupEntry> { return __S.getList(0, CoinAssetTx._TokenAssetSubgroups, this); }\n hasTokenAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenAssetSubgroups(length: number): capnp.List<TokenAssetSubgroupEntry> { return __S.initList(0, CoinAssetTx._TokenAssetSubgroups, length, this); }\n setTokenAssetSubgroups(value: capnp.List<TokenAssetSubgroupEntry>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptNftAssetSubgroups(value: capnp.Orphan<capnp.List<NftAssetSubgroupEntry>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownNftAssetSubgroups(): capnp.Orphan<capnp.List<NftAssetSubgroupEntry>> { return __S.disown(this.getNftAssetSubgroups()); }\n getNftAssetSubgroups(): capnp.List<NftAssetSubgroupEntry> { return __S.getList(1, CoinAssetTx._NftAssetSubgroups, this); }\n hasNftAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initNftAssetSubgroups(length: number): capnp.List<NftAssetSubgroupEntry> { return __S.initList(1, CoinAssetTx._NftAssetSubgroups, length, this); }\n setNftAssetSubgroups(value: capnp.List<NftAssetSubgroupEntry>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(2, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(2, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(3, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(3, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(3, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(3, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(3, this)); }\n toString(): string { return \"CoinAssetTx_\" + super.toString(); }\n}\nexport enum CoinBurnTx_AmtCoin_Which {\n SOME = 0,\n NONE = 1\n}\nexport class CoinBurnTx_AmtCoin extends __S {\n static readonly SOME = CoinBurnTx_AmtCoin_Which.SOME;\n static readonly NONE = CoinBurnTx_AmtCoin_Which.NONE;\n static readonly _capnp = { displayName: \"amtCoin\", id: \"858b7a8f2b073861\", size: new __O(16, 3) };\n getSome(): capnp.Uint64 {\n __S.testWhich(\"some\", __S.getUint16(4, this), 0, this);\n return __S.getUint64(8, this);\n }\n isSome(): boolean { return __S.getUint16(4, this) === 0; }\n setSome(value: capnp.Uint64): void {\n __S.setUint16(4, 0, this);\n __S.setUint64(8, value, this);\n }\n isNone(): boolean { return __S.getUint16(4, this) === 1; }\n setNone(): void { __S.setUint16(4, 1, this); }\n toString(): string { return \"CoinBurnTx_AmtCoin_\" + super.toString(); }\n which(): CoinBurnTx_AmtCoin_Which { return __S.getUint16(4, this); }\n}\nexport class CoinBurnTx extends __S {\n static readonly _capnp = { displayName: \"CoinBurnTx\", id: \"c9dc8daf34dc6a48\", size: new __O(16, 3) };\n static _TokenAssetSubgroups: capnp.ListCtor<TokenAssetSubgroupEntry>;\n static _NftAssetSubgroups: capnp.ListCtor<NftAssetSubgroupEntry>;\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n getAmtCoin(): CoinBurnTx_AmtCoin { return __S.getAs(CoinBurnTx_AmtCoin, this); }\n initAmtCoin(): CoinBurnTx_AmtCoin { return __S.getAs(CoinBurnTx_AmtCoin, this); }\n adoptTokenAssetSubgroups(value: capnp.Orphan<capnp.List<TokenAssetSubgroupEntry>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownTokenAssetSubgroups(): capnp.Orphan<capnp.List<TokenAssetSubgroupEntry>> { return __S.disown(this.getTokenAssetSubgroups()); }\n getTokenAssetSubgroups(): capnp.List<TokenAssetSubgroupEntry> { return __S.getList(0, CoinBurnTx._TokenAssetSubgroups, this); }\n hasTokenAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenAssetSubgroups(length: number): capnp.List<TokenAssetSubgroupEntry> { return __S.initList(0, CoinBurnTx._TokenAssetSubgroups, length, this); }\n setTokenAssetSubgroups(value: capnp.List<TokenAssetSubgroupEntry>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptNftAssetSubgroups(value: capnp.Orphan<capnp.List<NftAssetSubgroupEntry>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownNftAssetSubgroups(): capnp.Orphan<capnp.List<NftAssetSubgroupEntry>> { return __S.disown(this.getNftAssetSubgroups()); }\n getNftAssetSubgroups(): capnp.List<NftAssetSubgroupEntry> { return __S.getList(1, CoinBurnTx._NftAssetSubgroups, this); }\n hasNftAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initNftAssetSubgroups(length: number): capnp.List<NftAssetSubgroupEntry> { return __S.initList(1, CoinBurnTx._NftAssetSubgroups, length, this); }\n setNftAssetSubgroups(value: capnp.List<NftAssetSubgroupEntry>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(2, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(2, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"CoinBurnTx_\" + super.toString(); }\n}\nexport enum CoinHlTx_AmtCoin_Which {\n SOME = 0,\n NONE = 1\n}\nexport class CoinHlTx_AmtCoin extends __S {\n static readonly SOME = CoinHlTx_AmtCoin_Which.SOME;\n static readonly NONE = CoinHlTx_AmtCoin_Which.NONE;\n static readonly _capnp = { displayName: \"amtCoin\", id: \"e345377f1711cca5\", size: new __O(24, 7) };\n getSome(): capnp.Uint64 {\n __S.testWhich(\"some\", __S.getUint16(16, this), 0, this);\n return __S.getUint64(8, this);\n }\n isSome(): boolean { return __S.getUint16(16, this) === 0; }\n setSome(value: capnp.Uint64): void {\n __S.setUint16(16, 0, this);\n __S.setUint64(8, value, this);\n }\n isNone(): boolean { return __S.getUint16(16, this) === 1; }\n setNone(): void { __S.setUint16(16, 1, this); }\n toString(): string { return \"CoinHlTx_AmtCoin_\" + super.toString(); }\n which(): CoinHlTx_AmtCoin_Which { return __S.getUint16(16, this); }\n}\nexport class CoinHlTx extends __S {\n static readonly _capnp = { displayName: \"CoinHlTx\", id: \"df3b75893ec01b2e\", size: new __O(24, 7) };\n static _TokenAssetSubgroups: capnp.ListCtor<TokenAssetSubgroupEntry>;\n static _NftAssetSubgroups: capnp.ListCtor<NftAssetSubgroupEntry>;\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n getAmtCoin(): CoinHlTx_AmtCoin { return __S.getAs(CoinHlTx_AmtCoin, this); }\n initAmtCoin(): CoinHlTx_AmtCoin { return __S.getAs(CoinHlTx_AmtCoin, this); }\n adoptTokenAssetSubgroups(value: capnp.Orphan<capnp.List<TokenAssetSubgroupEntry>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownTokenAssetSubgroups(): capnp.Orphan<capnp.List<TokenAssetSubgroupEntry>> { return __S.disown(this.getTokenAssetSubgroups()); }\n getTokenAssetSubgroups(): capnp.List<TokenAssetSubgroupEntry> { return __S.getList(0, CoinHlTx._TokenAssetSubgroups, this); }\n hasTokenAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenAssetSubgroups(length: number): capnp.List<TokenAssetSubgroupEntry> { return __S.initList(0, CoinHlTx._TokenAssetSubgroups, length, this); }\n setTokenAssetSubgroups(value: capnp.List<TokenAssetSubgroupEntry>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptNftAssetSubgroups(value: capnp.Orphan<capnp.List<NftAssetSubgroupEntry>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownNftAssetSubgroups(): capnp.Orphan<capnp.List<NftAssetSubgroupEntry>> { return __S.disown(this.getNftAssetSubgroups()); }\n getNftAssetSubgroups(): capnp.List<NftAssetSubgroupEntry> { return __S.getList(1, CoinHlTx._NftAssetSubgroups, this); }\n hasNftAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initNftAssetSubgroups(length: number): capnp.List<NftAssetSubgroupEntry> { return __S.initList(1, CoinHlTx._NftAssetSubgroups, length, this); }\n setNftAssetSubgroups(value: capnp.List<NftAssetSubgroupEntry>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptHlDigest(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownHlDigest(): capnp.Orphan<capnp.Data> { return __S.disown(this.getHlDigest()); }\n getHlDigest(): capnp.Data { return __S.getData(2, this); }\n hasHlDigest(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initHlDigest(length: number): capnp.Data { return __S.initData(2, length, this); }\n setHlDigest(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n getBlockNumRfd(): number { return __S.getUint32(4, this); }\n setBlockNumRfd(value: number): void { __S.setUint32(4, value, this); }\n adoptAcctNumRfd(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(3, this)); }\n disownAcctNumRfd(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRfd()); }\n getAcctNumRfd(): capnp.Data { return __S.getData(3, this); }\n hasAcctNumRfd(): boolean { return !__S.isNull(__S.getPointer(3, this)); }\n initAcctNumRfd(length: number): capnp.Data { return __S.initData(3, length, this); }\n setAcctNumRfd(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(3, this)); }\n adoptAcctNumHlTar(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(4, this)); }\n disownAcctNumHlTar(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumHlTar()); }\n getAcctNumHlTar(): capnp.Data { return __S.getData(4, this); }\n hasAcctNumHlTar(): boolean { return !__S.isNull(__S.getPointer(4, this)); }\n initAcctNumHlTar(length: number): capnp.Data { return __S.initData(4, length, this); }\n setAcctNumHlTar(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(4, this)); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(5, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(5, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(5, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(5, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(5, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(6, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(6, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(6, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(6, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(6, this)); }\n toString(): string { return \"CoinHlTx_\" + super.toString(); }\n}\nexport class CoinMicroTx extends __S {\n static readonly _capnp = { displayName: \"CoinMicroTx\", id: \"876c1af780fb99c2\", size: new __O(8, 3) };\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n getBlockNumRfd(): number { return __S.getUint32(4, this); }\n setBlockNumRfd(value: number): void { __S.setUint32(4, value, this); }\n adoptAcctNumRfd(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumRfd(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRfd()); }\n getAcctNumRfd(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumRfd(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumRfd(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumRfd(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(2, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(2, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"CoinMicroTx_\" + super.toString(); }\n}\nexport class CoinPiTx extends __S {\n static readonly _capnp = { displayName: \"CoinPiTx\", id: \"b391c77a3ee33c32\", size: new __O(0, 3) };\n adoptHlPreImage(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownHlPreImage(): capnp.Orphan<capnp.Data> { return __S.disown(this.getHlPreImage()); }\n getHlPreImage(): capnp.Data { return __S.getData(0, this); }\n hasHlPreImage(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initHlPreImage(length: number): capnp.Data { return __S.initData(0, length, this); }\n setHlPreImage(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(2, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(2, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"CoinPiTx_\" + super.toString(); }\n}\nexport enum CoinTx_TxType_Which {\n ASSET = 0,\n BURN = 1,\n HL = 2,\n MICRO = 3,\n PI = 4\n}\nexport class CoinTx_TxType extends __S {\n static readonly ASSET = CoinTx_TxType_Which.ASSET;\n static readonly BURN = CoinTx_TxType_Which.BURN;\n static readonly HL = CoinTx_TxType_Which.HL;\n static readonly MICRO = CoinTx_TxType_Which.MICRO;\n static readonly PI = CoinTx_TxType_Which.PI;\n static readonly _capnp = { displayName: \"txType\", id: \"c2370419be668e08\", size: new __O(8, 1) };\n adoptAsset(value: capnp.Orphan<CoinAssetTx>): void {\n __S.setUint16(0, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAsset(): capnp.Orphan<CoinAssetTx> { return __S.disown(this.getAsset()); }\n getAsset(): CoinAssetTx {\n __S.testWhich(\"asset\", __S.getUint16(0, this), 0, this);\n return __S.getStruct(0, CoinAssetTx, this);\n }\n hasAsset(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAsset(): CoinAssetTx {\n __S.setUint16(0, 0, this);\n return __S.initStructAt(0, CoinAssetTx, this);\n }\n isAsset(): boolean { return __S.getUint16(0, this) === 0; }\n setAsset(value: CoinAssetTx): void {\n __S.setUint16(0, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptBurn(value: capnp.Orphan<CoinBurnTx>): void {\n __S.setUint16(0, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownBurn(): capnp.Orphan<CoinBurnTx> { return __S.disown(this.getBurn()); }\n getBurn(): CoinBurnTx {\n __S.testWhich(\"burn\", __S.getUint16(0, this), 1, this);\n return __S.getStruct(0, CoinBurnTx, this);\n }\n hasBurn(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initBurn(): CoinBurnTx {\n __S.setUint16(0, 1, this);\n return __S.initStructAt(0, CoinBurnTx, this);\n }\n isBurn(): boolean { return __S.getUint16(0, this) === 1; }\n setBurn(value: CoinBurnTx): void {\n __S.setUint16(0, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptHl(value: capnp.Orphan<CoinHlTx>): void {\n __S.setUint16(0, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownHl(): capnp.Orphan<CoinHlTx> { return __S.disown(this.getHl()); }\n getHl(): CoinHlTx {\n __S.testWhich(\"hl\", __S.getUint16(0, this), 2, this);\n return __S.getStruct(0, CoinHlTx, this);\n }\n hasHl(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initHl(): CoinHlTx {\n __S.setUint16(0, 2, this);\n return __S.initStructAt(0, CoinHlTx, this);\n }\n isHl(): boolean { return __S.getUint16(0, this) === 2; }\n setHl(value: CoinHlTx): void {\n __S.setUint16(0, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMicro(value: capnp.Orphan<CoinMicroTx>): void {\n __S.setUint16(0, 3, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMicro(): capnp.Orphan<CoinMicroTx> { return __S.disown(this.getMicro()); }\n getMicro(): CoinMicroTx {\n __S.testWhich(\"micro\", __S.getUint16(0, this), 3, this);\n return __S.getStruct(0, CoinMicroTx, this);\n }\n hasMicro(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMicro(): CoinMicroTx {\n __S.setUint16(0, 3, this);\n return __S.initStructAt(0, CoinMicroTx, this);\n }\n isMicro(): boolean { return __S.getUint16(0, this) === 3; }\n setMicro(value: CoinMicroTx): void {\n __S.setUint16(0, 3, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptPi(value: capnp.Orphan<CoinPiTx>): void {\n __S.setUint16(0, 4, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownPi(): capnp.Orphan<CoinPiTx> { return __S.disown(this.getPi()); }\n getPi(): CoinPiTx {\n __S.testWhich(\"pi\", __S.getUint16(0, this), 4, this);\n return __S.getStruct(0, CoinPiTx, this);\n }\n hasPi(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initPi(): CoinPiTx {\n __S.setUint16(0, 4, this);\n return __S.initStructAt(0, CoinPiTx, this);\n }\n isPi(): boolean { return __S.getUint16(0, this) === 4; }\n setPi(value: CoinPiTx): void {\n __S.setUint16(0, 4, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"CoinTx_TxType_\" + super.toString(); }\n which(): CoinTx_TxType_Which { return __S.getUint16(0, this); }\n}\nexport class CoinTx extends __S {\n static readonly _capnp = { displayName: \"CoinTx\", id: \"9ce419b50c3b8bc4\", size: new __O(8, 1) };\n getTxType(): CoinTx_TxType { return __S.getAs(CoinTx_TxType, this); }\n initTxType(): CoinTx_TxType { return __S.getAs(CoinTx_TxType, this); }\n toString(): string { return \"CoinTx_\" + super.toString(); }\n}\nexport class AcctNumEntry extends __S {\n static readonly _capnp = { displayName: \"AcctNumEntry\", id: \"d44ddbf2ec12869b\", size: new __O(8, 1) };\n getPosition(): number { return __S.getUint16(0, this); }\n setPosition(value: number): void { __S.setUint16(0, value, this); }\n adoptItem(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownItem(): capnp.Orphan<capnp.Data> { return __S.disown(this.getItem()); }\n getItem(): capnp.Data { return __S.getData(0, this); }\n hasItem(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initItem(length: number): capnp.Data { return __S.initData(0, length, this); }\n setItem(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"AcctNumEntry_\" + super.toString(); }\n}\nexport class ProxyCreateDceTx extends __S {\n static readonly _capnp = { displayName: \"ProxyCreateDceTx\", id: \"f9b4142d6749b273\", size: new __O(0, 2) };\n static _AcctNumMultiUsers: capnp.ListCtor<AcctNumEntry>;\n adoptAcctNumAdminUser(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumAdminUser(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumAdminUser()); }\n getAcctNumAdminUser(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumAdminUser(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumAdminUser(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumAdminUser(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumMultiUsers(value: capnp.Orphan<capnp.List<AcctNumEntry>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumMultiUsers(): capnp.Orphan<capnp.List<AcctNumEntry>> { return __S.disown(this.getAcctNumMultiUsers()); }\n getAcctNumMultiUsers(): capnp.List<AcctNumEntry> { return __S.getList(1, ProxyCreateDceTx._AcctNumMultiUsers, this); }\n hasAcctNumMultiUsers(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumMultiUsers(length: number): capnp.List<AcctNumEntry> { return __S.initList(1, ProxyCreateDceTx._AcctNumMultiUsers, length, this); }\n setAcctNumMultiUsers(value: capnp.List<AcctNumEntry>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"ProxyCreateDceTx_\" + super.toString(); }\n}\nexport class ProxyCreateFundingTx extends __S {\n static readonly _capnp = { displayName: \"ProxyCreateFundingTx\", id: \"cb0fa8df1de0f87d\", size: new __O(0, 2) };\n static _AcctNumMultiUsers: capnp.ListCtor<AcctNumEntry>;\n adoptAcctNumAdminUser(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumAdminUser(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumAdminUser()); }\n getAcctNumAdminUser(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumAdminUser(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumAdminUser(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumAdminUser(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumMultiUsers(value: capnp.Orphan<capnp.List<AcctNumEntry>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumMultiUsers(): capnp.Orphan<capnp.List<AcctNumEntry>> { return __S.disown(this.getAcctNumMultiUsers()); }\n getAcctNumMultiUsers(): capnp.List<AcctNumEntry> { return __S.getList(1, ProxyCreateFundingTx._AcctNumMultiUsers, this); }\n hasAcctNumMultiUsers(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumMultiUsers(length: number): capnp.List<AcctNumEntry> { return __S.initList(1, ProxyCreateFundingTx._AcctNumMultiUsers, length, this); }\n setAcctNumMultiUsers(value: capnp.List<AcctNumEntry>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"ProxyCreateFundingTx_\" + super.toString(); }\n}\nexport class ProxyCreateMultisigTx extends __S {\n static readonly _capnp = { displayName: \"ProxyCreateMultisigTx\", id: \"ffcb92410ccb0c7e\", size: new __O(8, 1) };\n static _AcctNumMultiUsers: capnp.ListCtor<AcctNumEntry>;\n adoptAcctNumMultiUsers(value: capnp.Orphan<capnp.List<AcctNumEntry>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumMultiUsers(): capnp.Orphan<capnp.List<AcctNumEntry>> { return __S.disown(this.getAcctNumMultiUsers()); }\n getAcctNumMultiUsers(): capnp.List<AcctNumEntry> { return __S.getList(0, ProxyCreateMultisigTx._AcctNumMultiUsers, this); }\n hasAcctNumMultiUsers(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumMultiUsers(length: number): capnp.List<AcctNumEntry> { return __S.initList(0, ProxyCreateMultisigTx._AcctNumMultiUsers, length, this); }\n setAcctNumMultiUsers(value: capnp.List<AcctNumEntry>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n getSigThreshold(): number { return __S.getUint16(0, this); }\n setSigThreshold(value: number): void { __S.setUint16(0, value, this); }\n toString(): string { return \"ProxyCreateMultisigTx_\" + super.toString(); }\n}\nexport class ProxyCreateNftMintTx extends __S {\n static readonly _capnp = { displayName: \"ProxyCreateNftMintTx\", id: \"bfc046025d39f551\", size: new __O(0, 1) };\n adoptAcctNumAdminUser(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumAdminUser(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumAdminUser()); }\n getAcctNumAdminUser(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumAdminUser(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumAdminUser(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumAdminUser(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"ProxyCreateNftMintTx_\" + super.toString(); }\n}\nexport class ProxyCreateTokenMintTx extends __S {\n static readonly _capnp = { displayName: \"ProxyCreateTokenMintTx\", id: \"be7d7d622a61537b\", size: new __O(16, 2) };\n adoptTokenAssetSubgroup(value: capnp.Orphan<TokenAssetSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownTokenAssetSubgroup(): capnp.Orphan<TokenAssetSubgroup> { return __S.disown(this.getTokenAssetSubgroup()); }\n getTokenAssetSubgroup(): TokenAssetSubgroup { return __S.getStruct(0, TokenAssetSubgroup, this); }\n hasTokenAssetSubgroup(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenAssetSubgroup(): TokenAssetSubgroup { return __S.initStructAt(0, TokenAssetSubgroup, this); }\n setTokenAssetSubgroup(value: TokenAssetSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n getAmtTokenMax(): capnp.Uint64 { return __S.getUint64(0, this); }\n setAmtTokenMax(value: capnp.Uint64): void { __S.setUint64(0, value, this); }\n getAmtTokenAuth(): capnp.Uint64 { return __S.getUint64(8, this); }\n setAmtTokenAuth(value: capnp.Uint64): void { __S.setUint64(8, value, this); }\n adoptAcctNumAdminUser(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumAdminUser(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumAdminUser()); }\n getAcctNumAdminUser(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumAdminUser(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumAdminUser(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumAdminUser(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"ProxyCreateTokenMintTx_\" + super.toString(); }\n}\nexport enum ProxyCreateTx_TxType_Which {\n DCE = 4,\n FUNDING = 2,\n MULTISIG = 0,\n NFT_MINT = 1,\n TOKEN_MINT = 3\n}\nexport class ProxyCreateTx_TxType extends __S {\n static readonly DCE = ProxyCreateTx_TxType_Which.DCE;\n static readonly FUNDING = ProxyCreateTx_TxType_Which.FUNDING;\n static readonly MULTISIG = ProxyCreateTx_TxType_Which.MULTISIG;\n static readonly NFT_MINT = ProxyCreateTx_TxType_Which.NFT_MINT;\n static readonly TOKEN_MINT = ProxyCreateTx_TxType_Which.TOKEN_MINT;\n static readonly _capnp = { displayName: \"txType\", id: \"9b8638e7a77b1730\", size: new __O(16, 3) };\n adoptDce(value: capnp.Orphan<ProxyCreateDceTx>): void {\n __S.setUint16(4, 4, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownDce(): capnp.Orphan<ProxyCreateDceTx> { return __S.disown(this.getDce()); }\n getDce(): ProxyCreateDceTx {\n __S.testWhich(\"dce\", __S.getUint16(4, this), 4, this);\n return __S.getStruct(0, ProxyCreateDceTx, this);\n }\n hasDce(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initDce(): ProxyCreateDceTx {\n __S.setUint16(4, 4, this);\n return __S.initStructAt(0, ProxyCreateDceTx, this);\n }\n isDce(): boolean { return __S.getUint16(4, this) === 4; }\n setDce(value: ProxyCreateDceTx): void {\n __S.setUint16(4, 4, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptFunding(value: capnp.Orphan<ProxyCreateFundingTx>): void {\n __S.setUint16(4, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownFunding(): capnp.Orphan<ProxyCreateFundingTx> { return __S.disown(this.getFunding()); }\n getFunding(): ProxyCreateFundingTx {\n __S.testWhich(\"funding\", __S.getUint16(4, this), 2, this);\n return __S.getStruct(0, ProxyCreateFundingTx, this);\n }\n hasFunding(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initFunding(): ProxyCreateFundingTx {\n __S.setUint16(4, 2, this);\n return __S.initStructAt(0, ProxyCreateFundingTx, this);\n }\n isFunding(): boolean { return __S.getUint16(4, this) === 2; }\n setFunding(value: ProxyCreateFundingTx): void {\n __S.setUint16(4, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMultisig(value: capnp.Orphan<ProxyCreateMultisigTx>): void {\n __S.setUint16(4, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMultisig(): capnp.Orphan<ProxyCreateMultisigTx> { return __S.disown(this.getMultisig()); }\n getMultisig(): ProxyCreateMultisigTx {\n __S.testWhich(\"multisig\", __S.getUint16(4, this), 0, this);\n return __S.getStruct(0, ProxyCreateMultisigTx, this);\n }\n hasMultisig(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMultisig(): ProxyCreateMultisigTx {\n __S.setUint16(4, 0, this);\n return __S.initStructAt(0, ProxyCreateMultisigTx, this);\n }\n isMultisig(): boolean { return __S.getUint16(4, this) === 0; }\n setMultisig(value: ProxyCreateMultisigTx): void {\n __S.setUint16(4, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptNftMint(value: capnp.Orphan<ProxyCreateNftMintTx>): void {\n __S.setUint16(4, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownNftMint(): capnp.Orphan<ProxyCreateNftMintTx> { return __S.disown(this.getNftMint()); }\n getNftMint(): ProxyCreateNftMintTx {\n __S.testWhich(\"nftMint\", __S.getUint16(4, this), 1, this);\n return __S.getStruct(0, ProxyCreateNftMintTx, this);\n }\n hasNftMint(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNftMint(): ProxyCreateNftMintTx {\n __S.setUint16(4, 1, this);\n return __S.initStructAt(0, ProxyCreateNftMintTx, this);\n }\n isNftMint(): boolean { return __S.getUint16(4, this) === 1; }\n setNftMint(value: ProxyCreateNftMintTx): void {\n __S.setUint16(4, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptTokenMint(value: capnp.Orphan<ProxyCreateTokenMintTx>): void {\n __S.setUint16(4, 3, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownTokenMint(): capnp.Orphan<ProxyCreateTokenMintTx> { return __S.disown(this.getTokenMint()); }\n getTokenMint(): ProxyCreateTokenMintTx {\n __S.testWhich(\"tokenMint\", __S.getUint16(4, this), 3, this);\n return __S.getStruct(0, ProxyCreateTokenMintTx, this);\n }\n hasTokenMint(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenMint(): ProxyCreateTokenMintTx {\n __S.setUint16(4, 3, this);\n return __S.initStructAt(0, ProxyCreateTokenMintTx, this);\n }\n isTokenMint(): boolean { return __S.getUint16(4, this) === 3; }\n setTokenMint(value: ProxyCreateTokenMintTx): void {\n __S.setUint16(4, 3, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"ProxyCreateTx_TxType_\" + super.toString(); }\n which(): ProxyCreateTx_TxType_Which { return __S.getUint16(4, this); }\n}\nexport class ProxyCreateTx extends __S {\n static readonly _capnp = { displayName: \"ProxyCreateTx\", id: \"97311dbc140cf063\", size: new __O(16, 3) };\n getTxType(): ProxyCreateTx_TxType { return __S.getAs(ProxyCreateTx_TxType, this); }\n initTxType(): ProxyCreateTx_TxType { return __S.getAs(ProxyCreateTx_TxType, this); }\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n getAmtCoin(): capnp.Uint64 { return __S.getUint64(8, this); }\n setAmtCoin(value: capnp.Uint64): void { __S.setUint64(8, value, this); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(2, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(2, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"ProxyCreateTx_\" + super.toString(); }\n}\nexport enum ProxyAssetTx_TokenAssetSubgroup_Which {\n SOME = 0,\n NONE = 1\n}\nexport class ProxyAssetTx_TokenAssetSubgroup extends __S {\n static readonly SOME = ProxyAssetTx_TokenAssetSubgroup_Which.SOME;\n static readonly NONE = ProxyAssetTx_TokenAssetSubgroup_Which.NONE;\n static readonly _capnp = { displayName: \"tokenAssetSubgroup\", id: \"bd7638deaa4a6ea2\", size: new __O(16, 2) };\n adoptSome(value: capnp.Orphan<TokenAssetSubgroup>): void {\n __S.setUint16(8, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownSome(): capnp.Orphan<TokenAssetSubgroup> { return __S.disown(this.getSome()); }\n getSome(): TokenAssetSubgroup {\n __S.testWhich(\"some\", __S.getUint16(8, this), 0, this);\n return __S.getStruct(0, TokenAssetSubgroup, this);\n }\n hasSome(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initSome(): TokenAssetSubgroup {\n __S.setUint16(8, 0, this);\n return __S.initStructAt(0, TokenAssetSubgroup, this);\n }\n isSome(): boolean { return __S.getUint16(8, this) === 0; }\n setSome(value: TokenAssetSubgroup): void {\n __S.setUint16(8, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n isNone(): boolean { return __S.getUint16(8, this) === 1; }\n setNone(): void { __S.setUint16(8, 1, this); }\n toString(): string { return \"ProxyAssetTx_TokenAssetSubgroup_\" + super.toString(); }\n which(): ProxyAssetTx_TokenAssetSubgroup_Which { return __S.getUint16(8, this); }\n}\nexport class ProxyAssetTx extends __S {\n static readonly _capnp = { displayName: \"ProxyAssetTx\", id: \"94caf17f7c6bd85e\", size: new __O(16, 2) };\n getAmtCoin(): capnp.Uint64 { return __S.getUint64(0, this); }\n setAmtCoin(value: capnp.Uint64): void { __S.setUint64(0, value, this); }\n getTokenAssetSubgroup(): ProxyAssetTx_TokenAssetSubgroup { return __S.getAs(ProxyAssetTx_TokenAssetSubgroup, this); }\n initTokenAssetSubgroup(): ProxyAssetTx_TokenAssetSubgroup { return __S.getAs(ProxyAssetTx_TokenAssetSubgroup, this); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"ProxyAssetTx_\" + super.toString(); }\n}\nexport class ProxyDeleteRecTx extends __S {\n static readonly _capnp = { displayName: \"ProxyDeleteRecTx\", id: \"c886745dc0126b8b\", size: new __O(0, 1) };\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"ProxyDeleteRecTx_\" + super.toString(); }\n}\nexport enum ProxyHlTx_TokenAssetSubgroup_Which {\n SOME = 0,\n NONE = 1\n}\nexport class ProxyHlTx_TokenAssetSubgroup extends __S {\n static readonly SOME = ProxyHlTx_TokenAssetSubgroup_Which.SOME;\n static readonly NONE = ProxyHlTx_TokenAssetSubgroup_Which.NONE;\n static readonly _capnp = { displayName: \"tokenAssetSubgroup\", id: \"bb72ace3c976e426\", size: new __O(16, 5) };\n adoptSome(value: capnp.Orphan<TokenAssetSubgroup>): void {\n __S.setUint16(12, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownSome(): capnp.Orphan<TokenAssetSubgroup> { return __S.disown(this.getSome()); }\n getSome(): TokenAssetSubgroup {\n __S.testWhich(\"some\", __S.getUint16(12, this), 0, this);\n return __S.getStruct(0, TokenAssetSubgroup, this);\n }\n hasSome(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initSome(): TokenAssetSubgroup {\n __S.setUint16(12, 0, this);\n return __S.initStructAt(0, TokenAssetSubgroup, this);\n }\n isSome(): boolean { return __S.getUint16(12, this) === 0; }\n setSome(value: TokenAssetSubgroup): void {\n __S.setUint16(12, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n isNone(): boolean { return __S.getUint16(12, this) === 1; }\n setNone(): void { __S.setUint16(12, 1, this); }\n toString(): string { return \"ProxyHlTx_TokenAssetSubgroup_\" + super.toString(); }\n which(): ProxyHlTx_TokenAssetSubgroup_Which { return __S.getUint16(12, this); }\n}\nexport class ProxyHlTx extends __S {\n static readonly _capnp = { displayName: \"ProxyHlTx\", id: \"c7aaed11fc0189a3\", size: new __O(16, 5) };\n getAmtCoin(): capnp.Uint64 { return __S.getUint64(0, this); }\n setAmtCoin(value: capnp.Uint64): void { __S.setUint64(0, value, this); }\n getTokenAssetSubgroup(): ProxyHlTx_TokenAssetSubgroup { return __S.getAs(ProxyHlTx_TokenAssetSubgroup, this); }\n initTokenAssetSubgroup(): ProxyHlTx_TokenAssetSubgroup { return __S.getAs(ProxyHlTx_TokenAssetSubgroup, this); }\n adoptHlDigest(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownHlDigest(): capnp.Orphan<capnp.Data> { return __S.disown(this.getHlDigest()); }\n getHlDigest(): capnp.Data { return __S.getData(1, this); }\n hasHlDigest(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initHlDigest(length: number): capnp.Data { return __S.initData(1, length, this); }\n setHlDigest(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n getBlockNumRfd(): number { return __S.getUint32(8, this); }\n setBlockNumRfd(value: number): void { __S.setUint32(8, value, this); }\n adoptAcctNumRfd(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownAcctNumRfd(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRfd()); }\n getAcctNumRfd(): capnp.Data { return __S.getData(2, this); }\n hasAcctNumRfd(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initAcctNumRfd(length: number): capnp.Data { return __S.initData(2, length, this); }\n setAcctNumRfd(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n adoptAcctNumHlTar(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(3, this)); }\n disownAcctNumHlTar(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumHlTar()); }\n getAcctNumHlTar(): capnp.Data { return __S.getData(3, this); }\n hasAcctNumHlTar(): boolean { return !__S.isNull(__S.getPointer(3, this)); }\n initAcctNumHlTar(length: number): capnp.Data { return __S.initData(3, length, this); }\n setAcctNumHlTar(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(3, this)); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(4, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(4, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(4, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(4, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(4, this)); }\n toString(): string { return \"ProxyHlTx_\" + super.toString(); }\n}\nexport class ProxyMintTokenTx extends __S {\n static readonly _capnp = { displayName: \"ProxyMintTokenTx\", id: \"c0252769cede4864\", size: new __O(0, 0) };\n toString(): string { return \"ProxyMintTokenTx_\" + super.toString(); }\n}\nexport class ProxySendTx extends __S {\n static readonly _capnp = { displayName: \"ProxySendTx\", id: \"83101ef9b24e95d6\", size: new __O(8, 0) };\n getAmtCoin(): capnp.Uint64 { return __S.getUint64(0, this); }\n setAmtCoin(value: capnp.Uint64): void { __S.setUint64(0, value, this); }\n toString(): string { return \"ProxySendTx_\" + super.toString(); }\n}\nexport class ProxyUpdateTx extends __S {\n static readonly _capnp = { displayName: \"ProxyUpdateTx\", id: \"a07638490f94a33f\", size: new __O(8, 1) };\n static _AcctNumMultiUsers: capnp.ListCtor<AcctNumEntry>;\n getRecStatus(): DceRecStatus { return __S.getUint16(0, this); }\n setRecStatus(value: DceRecStatus): void { __S.setUint16(0, value, this); }\n adoptAcctNumMultiUsers(value: capnp.Orphan<capnp.List<AcctNumEntry>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumMultiUsers(): capnp.Orphan<capnp.List<AcctNumEntry>> { return __S.disown(this.getAcctNumMultiUsers()); }\n getAcctNumMultiUsers(): capnp.List<AcctNumEntry> { return __S.getList(0, ProxyUpdateTx._AcctNumMultiUsers, this); }\n hasAcctNumMultiUsers(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumMultiUsers(length: number): capnp.List<AcctNumEntry> { return __S.initList(0, ProxyUpdateTx._AcctNumMultiUsers, length, this); }\n setAcctNumMultiUsers(value: capnp.List<AcctNumEntry>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"ProxyUpdateTx_\" + super.toString(); }\n}\nexport enum ProxyAdminTx_TxType_Which {\n ASSET = 0,\n DELETE_REC = 1,\n HL = 2,\n MINT_TOKEN = 3,\n SEND = 4,\n UPDATE = 5\n}\nexport class ProxyAdminTx_TxType extends __S {\n static readonly ASSET = ProxyAdminTx_TxType_Which.ASSET;\n static readonly DELETE_REC = ProxyAdminTx_TxType_Which.DELETE_REC;\n static readonly HL = ProxyAdminTx_TxType_Which.HL;\n static readonly MINT_TOKEN = ProxyAdminTx_TxType_Which.MINT_TOKEN;\n static readonly SEND = ProxyAdminTx_TxType_Which.SEND;\n static readonly UPDATE = ProxyAdminTx_TxType_Which.UPDATE;\n static readonly _capnp = { displayName: \"txType\", id: \"e2309c07aa45ee09\", size: new __O(8, 3) };\n adoptAsset(value: capnp.Orphan<ProxyAssetTx>): void {\n __S.setUint16(4, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAsset(): capnp.Orphan<ProxyAssetTx> { return __S.disown(this.getAsset()); }\n getAsset(): ProxyAssetTx {\n __S.testWhich(\"asset\", __S.getUint16(4, this), 0, this);\n return __S.getStruct(0, ProxyAssetTx, this);\n }\n hasAsset(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAsset(): ProxyAssetTx {\n __S.setUint16(4, 0, this);\n return __S.initStructAt(0, ProxyAssetTx, this);\n }\n isAsset(): boolean { return __S.getUint16(4, this) === 0; }\n setAsset(value: ProxyAssetTx): void {\n __S.setUint16(4, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptDeleteRec(value: capnp.Orphan<ProxyDeleteRecTx>): void {\n __S.setUint16(4, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownDeleteRec(): capnp.Orphan<ProxyDeleteRecTx> { return __S.disown(this.getDeleteRec()); }\n getDeleteRec(): ProxyDeleteRecTx {\n __S.testWhich(\"deleteRec\", __S.getUint16(4, this), 1, this);\n return __S.getStruct(0, ProxyDeleteRecTx, this);\n }\n hasDeleteRec(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initDeleteRec(): ProxyDeleteRecTx {\n __S.setUint16(4, 1, this);\n return __S.initStructAt(0, ProxyDeleteRecTx, this);\n }\n isDeleteRec(): boolean { return __S.getUint16(4, this) === 1; }\n setDeleteRec(value: ProxyDeleteRecTx): void {\n __S.setUint16(4, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptHl(value: capnp.Orphan<ProxyHlTx>): void {\n __S.setUint16(4, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownHl(): capnp.Orphan<ProxyHlTx> { return __S.disown(this.getHl()); }\n getHl(): ProxyHlTx {\n __S.testWhich(\"hl\", __S.getUint16(4, this), 2, this);\n return __S.getStruct(0, ProxyHlTx, this);\n }\n hasHl(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initHl(): ProxyHlTx {\n __S.setUint16(4, 2, this);\n return __S.initStructAt(0, ProxyHlTx, this);\n }\n isHl(): boolean { return __S.getUint16(4, this) === 2; }\n setHl(value: ProxyHlTx): void {\n __S.setUint16(4, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMintToken(value: capnp.Orphan<ProxyMintTokenTx>): void {\n __S.setUint16(4, 3, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMintToken(): capnp.Orphan<ProxyMintTokenTx> { return __S.disown(this.getMintToken()); }\n getMintToken(): ProxyMintTokenTx {\n __S.testWhich(\"mintToken\", __S.getUint16(4, this), 3, this);\n return __S.getStruct(0, ProxyMintTokenTx, this);\n }\n hasMintToken(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMintToken(): ProxyMintTokenTx {\n __S.setUint16(4, 3, this);\n return __S.initStructAt(0, ProxyMintTokenTx, this);\n }\n isMintToken(): boolean { return __S.getUint16(4, this) === 3; }\n setMintToken(value: ProxyMintTokenTx): void {\n __S.setUint16(4, 3, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptSend(value: capnp.Orphan<ProxySendTx>): void {\n __S.setUint16(4, 4, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownSend(): capnp.Orphan<ProxySendTx> { return __S.disown(this.getSend()); }\n getSend(): ProxySendTx {\n __S.testWhich(\"send\", __S.getUint16(4, this), 4, this);\n return __S.getStruct(0, ProxySendTx, this);\n }\n hasSend(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initSend(): ProxySendTx {\n __S.setUint16(4, 4, this);\n return __S.initStructAt(0, ProxySendTx, this);\n }\n isSend(): boolean { return __S.getUint16(4, this) === 4; }\n setSend(value: ProxySendTx): void {\n __S.setUint16(4, 4, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptUpdate(value: capnp.Orphan<ProxyUpdateTx>): void {\n __S.setUint16(4, 5, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownUpdate(): capnp.Orphan<ProxyUpdateTx> { return __S.disown(this.getUpdate()); }\n getUpdate(): ProxyUpdateTx {\n __S.testWhich(\"update\", __S.getUint16(4, this), 5, this);\n return __S.getStruct(0, ProxyUpdateTx, this);\n }\n hasUpdate(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initUpdate(): ProxyUpdateTx {\n __S.setUint16(4, 5, this);\n return __S.initStructAt(0, ProxyUpdateTx, this);\n }\n isUpdate(): boolean { return __S.getUint16(4, this) === 5; }\n setUpdate(value: ProxyUpdateTx): void {\n __S.setUint16(4, 5, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"ProxyAdminTx_TxType_\" + super.toString(); }\n which(): ProxyAdminTx_TxType_Which { return __S.getUint16(4, this); }\n}\nexport class ProxyAdminTx extends __S {\n static readonly _capnp = { displayName: \"ProxyAdminTx\", id: \"932b45a6e7f66f9f\", size: new __O(8, 3) };\n getTxType(): ProxyAdminTx_TxType { return __S.getAs(ProxyAdminTx_TxType, this); }\n initTxType(): ProxyAdminTx_TxType { return __S.getAs(ProxyAdminTx_TxType, this); }\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(2, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(2, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"ProxyAdminTx_\" + super.toString(); }\n}\nexport class MultisigAssetTx extends __S {\n static readonly _capnp = { displayName: \"MultisigAssetTx\", id: \"c6a73bf48b71e3d4\", size: new __O(0, 1) };\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"MultisigAssetTx_\" + super.toString(); }\n}\nexport class MultisigBurnTx extends __S {\n static readonly _capnp = { displayName: \"MultisigBurnTx\", id: \"c0de84c8cfae6798\", size: new __O(0, 0) };\n toString(): string { return \"MultisigBurnTx_\" + super.toString(); }\n}\nexport class MultisigHlTx extends __S {\n static readonly _capnp = { displayName: \"MultisigHlTx\", id: \"f61a9d41591ef4ba\", size: new __O(8, 4) };\n adoptHlDigest(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownHlDigest(): capnp.Orphan<capnp.Data> { return __S.disown(this.getHlDigest()); }\n getHlDigest(): capnp.Data { return __S.getData(0, this); }\n hasHlDigest(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initHlDigest(length: number): capnp.Data { return __S.initData(0, length, this); }\n setHlDigest(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n getBlockNumRfd(): number { return __S.getUint32(0, this); }\n setBlockNumRfd(value: number): void { __S.setUint32(0, value, this); }\n adoptAcctNumRfd(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumRfd(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRfd()); }\n getAcctNumRfd(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumRfd(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumRfd(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumRfd(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptAcctNumHlTar(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownAcctNumHlTar(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumHlTar()); }\n getAcctNumHlTar(): capnp.Data { return __S.getData(2, this); }\n hasAcctNumHlTar(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initAcctNumHlTar(length: number): capnp.Data { return __S.initData(2, length, this); }\n setAcctNumHlTar(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(3, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(3, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(3, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(3, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(3, this)); }\n toString(): string { return \"MultisigHlTx_\" + super.toString(); }\n}\nexport enum MultisigTx_TxType_Which {\n ASSET = 0,\n BURN = 1,\n HL = 2\n}\nexport class MultisigTx_TxType extends __S {\n static readonly ASSET = MultisigTx_TxType_Which.ASSET;\n static readonly BURN = MultisigTx_TxType_Which.BURN;\n static readonly HL = MultisigTx_TxType_Which.HL;\n static readonly _capnp = { displayName: \"txType\", id: \"f1c1c13b42e7a9b0\", size: new __O(24, 4) };\n adoptAsset(value: capnp.Orphan<MultisigAssetTx>): void {\n __S.setUint16(8, 0, this);\n __S.adopt(value, __S.getPointer(1, this));\n }\n disownAsset(): capnp.Orphan<MultisigAssetTx> { return __S.disown(this.getAsset()); }\n getAsset(): MultisigAssetTx {\n __S.testWhich(\"asset\", __S.getUint16(8, this), 0, this);\n return __S.getStruct(1, MultisigAssetTx, this);\n }\n hasAsset(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAsset(): MultisigAssetTx {\n __S.setUint16(8, 0, this);\n return __S.initStructAt(1, MultisigAssetTx, this);\n }\n isAsset(): boolean { return __S.getUint16(8, this) === 0; }\n setAsset(value: MultisigAssetTx): void {\n __S.setUint16(8, 0, this);\n __S.copyFrom(value, __S.getPointer(1, this));\n }\n adoptBurn(value: capnp.Orphan<MultisigBurnTx>): void {\n __S.setUint16(8, 1, this);\n __S.adopt(value, __S.getPointer(1, this));\n }\n disownBurn(): capnp.Orphan<MultisigBurnTx> { return __S.disown(this.getBurn()); }\n getBurn(): MultisigBurnTx {\n __S.testWhich(\"burn\", __S.getUint16(8, this), 1, this);\n return __S.getStruct(1, MultisigBurnTx, this);\n }\n hasBurn(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initBurn(): MultisigBurnTx {\n __S.setUint16(8, 1, this);\n return __S.initStructAt(1, MultisigBurnTx, this);\n }\n isBurn(): boolean { return __S.getUint16(8, this) === 1; }\n setBurn(value: MultisigBurnTx): void {\n __S.setUint16(8, 1, this);\n __S.copyFrom(value, __S.getPointer(1, this));\n }\n adoptHl(value: capnp.Orphan<MultisigHlTx>): void {\n __S.setUint16(8, 2, this);\n __S.adopt(value, __S.getPointer(1, this));\n }\n disownHl(): capnp.Orphan<MultisigHlTx> { return __S.disown(this.getHl()); }\n getHl(): MultisigHlTx {\n __S.testWhich(\"hl\", __S.getUint16(8, this), 2, this);\n return __S.getStruct(1, MultisigHlTx, this);\n }\n hasHl(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initHl(): MultisigHlTx {\n __S.setUint16(8, 2, this);\n return __S.initStructAt(1, MultisigHlTx, this);\n }\n isHl(): boolean { return __S.getUint16(8, this) === 2; }\n setHl(value: MultisigHlTx): void {\n __S.setUint16(8, 2, this);\n __S.copyFrom(value, __S.getPointer(1, this));\n }\n toString(): string { return \"MultisigTx_TxType_\" + super.toString(); }\n which(): MultisigTx_TxType_Which { return __S.getUint16(8, this); }\n}\nexport enum MultisigTx_AmtCoin_Which {\n SOME = 0,\n NONE = 1\n}\nexport class MultisigTx_AmtCoin extends __S {\n static readonly SOME = MultisigTx_AmtCoin_Which.SOME;\n static readonly NONE = MultisigTx_AmtCoin_Which.NONE;\n static readonly _capnp = { displayName: \"amtCoin\", id: \"d6894b8a44c48dce\", size: new __O(24, 4) };\n getSome(): capnp.Uint64 {\n __S.testWhich(\"some\", __S.getUint16(10, this), 0, this);\n return __S.getUint64(16, this);\n }\n isSome(): boolean { return __S.getUint16(10, this) === 0; }\n setSome(value: capnp.Uint64): void {\n __S.setUint16(10, 0, this);\n __S.setUint64(16, value, this);\n }\n isNone(): boolean { return __S.getUint16(10, this) === 1; }\n setNone(): void { __S.setUint16(10, 1, this); }\n toString(): string { return \"MultisigTx_AmtCoin_\" + super.toString(); }\n which(): MultisigTx_AmtCoin_Which { return __S.getUint16(10, this); }\n}\nexport class MultisigTx extends __S {\n static readonly _capnp = { displayName: \"MultisigTx\", id: \"ebb6c38a332bfc78\", size: new __O(24, 4) };\n static _TokenAssetSubgroups: capnp.ListCtor<TokenAssetSubgroupEntry>;\n static _NftAssetSubgroups: capnp.ListCtor<NftAssetSubgroupEntry>;\n getTxType(): MultisigTx_TxType { return __S.getAs(MultisigTx_TxType, this); }\n initTxType(): MultisigTx_TxType { return __S.getAs(MultisigTx_TxType, this); }\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n getAmtCoin(): MultisigTx_AmtCoin { return __S.getAs(MultisigTx_AmtCoin, this); }\n initAmtCoin(): MultisigTx_AmtCoin { return __S.getAs(MultisigTx_AmtCoin, this); }\n getBlockNumInclusion(): number { return __S.getUint32(4, this); }\n setBlockNumInclusion(value: number): void { __S.setUint32(4, value, this); }\n adoptTokenAssetSubgroups(value: capnp.Orphan<capnp.List<TokenAssetSubgroupEntry>>): void { __S.adopt(value, __S.getPointer(3, this)); }\n disownTokenAssetSubgroups(): capnp.Orphan<capnp.List<TokenAssetSubgroupEntry>> { return __S.disown(this.getTokenAssetSubgroups()); }\n getTokenAssetSubgroups(): capnp.List<TokenAssetSubgroupEntry> { return __S.getList(3, MultisigTx._TokenAssetSubgroups, this); }\n hasTokenAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(3, this)); }\n initTokenAssetSubgroups(length: number): capnp.List<TokenAssetSubgroupEntry> { return __S.initList(3, MultisigTx._TokenAssetSubgroups, length, this); }\n setTokenAssetSubgroups(value: capnp.List<TokenAssetSubgroupEntry>): void { __S.copyFrom(value, __S.getPointer(3, this)); }\n adoptNftAssetSubgroups(value: capnp.Orphan<capnp.List<NftAssetSubgroupEntry>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownNftAssetSubgroups(): capnp.Orphan<capnp.List<NftAssetSubgroupEntry>> { return __S.disown(this.getNftAssetSubgroups()); }\n getNftAssetSubgroups(): capnp.List<NftAssetSubgroupEntry> { return __S.getList(0, MultisigTx._NftAssetSubgroups, this); }\n hasNftAssetSubgroups(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNftAssetSubgroups(length: number): capnp.List<NftAssetSubgroupEntry> { return __S.initList(0, MultisigTx._NftAssetSubgroups, length, this); }\n setNftAssetSubgroups(value: capnp.List<NftAssetSubgroupEntry>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(2, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(2, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"MultisigTx_\" + super.toString(); }\n}\nexport class NetActorRecCreateTx extends __S {\n static readonly _capnp = { displayName: \"NetActorRecCreateTx\", id: \"d09e41db4cf5d1e5\", size: new __O(8, 0) };\n getNetActorType(): NetActorType { return __S.getUint16(0, this); }\n setNetActorType(value: NetActorType): void { __S.setUint16(0, value, this); }\n toString(): string { return \"NetActorRecCreateTx_\" + super.toString(); }\n}\nexport enum NetActorRecUpdateTx_RecStatus_Which {\n SOME = 0,\n NONE = 1\n}\nexport class NetActorRecUpdateTx_RecStatus extends __S {\n static readonly SOME = NetActorRecUpdateTx_RecStatus_Which.SOME;\n static readonly NONE = NetActorRecUpdateTx_RecStatus_Which.NONE;\n static readonly _capnp = { displayName: \"recStatus\", id: \"f4f3095ba0dc1e11\", size: new __O(16, 2) };\n getSome(): NetActorStatus {\n __S.testWhich(\"some\", __S.getUint16(2, this), 0, this);\n return __S.getUint16(0, this);\n }\n isSome(): boolean { return __S.getUint16(2, this) === 0; }\n setSome(value: NetActorStatus): void {\n __S.setUint16(2, 0, this);\n __S.setUint16(0, value, this);\n }\n isNone(): boolean { return __S.getUint16(2, this) === 1; }\n setNone(): void { __S.setUint16(2, 1, this); }\n toString(): string { return \"NetActorRecUpdateTx_RecStatus_\" + super.toString(); }\n which(): NetActorRecUpdateTx_RecStatus_Which { return __S.getUint16(2, this); }\n}\nexport enum NetActorRecUpdateTx_IpAddr_Which {\n SOME = 0,\n NONE = 1\n}\nexport class NetActorRecUpdateTx_IpAddr extends __S {\n static readonly SOME = NetActorRecUpdateTx_IpAddr_Which.SOME;\n static readonly NONE = NetActorRecUpdateTx_IpAddr_Which.NONE;\n static readonly _capnp = { displayName: \"ipAddr\", id: \"b0e8e9dd7fa14e94\", size: new __O(16, 2) };\n getSome(): string {\n __S.testWhich(\"some\", __S.getUint16(4, this), 0, this);\n return __S.getText(0, this);\n }\n isSome(): boolean { return __S.getUint16(4, this) === 0; }\n setSome(value: string): void {\n __S.setUint16(4, 0, this);\n __S.setText(0, value, this);\n }\n isNone(): boolean { return __S.getUint16(4, this) === 1; }\n setNone(): void { __S.setUint16(4, 1, this); }\n toString(): string { return \"NetActorRecUpdateTx_IpAddr_\" + super.toString(); }\n which(): NetActorRecUpdateTx_IpAddr_Which { return __S.getUint16(4, this); }\n}\nexport enum NetActorRecUpdateTx_PortNum_Which {\n SOME = 0,\n NONE = 1\n}\nexport class NetActorRecUpdateTx_PortNum extends __S {\n static readonly SOME = NetActorRecUpdateTx_PortNum_Which.SOME;\n static readonly NONE = NetActorRecUpdateTx_PortNum_Which.NONE;\n static readonly _capnp = { displayName: \"portNum\", id: \"9a27319d5922b337\", size: new __O(16, 2) };\n getSome(): number {\n __S.testWhich(\"some\", __S.getUint16(8, this), 0, this);\n return __S.getUint16(6, this);\n }\n isSome(): boolean { return __S.getUint16(8, this) === 0; }\n setSome(value: number): void {\n __S.setUint16(8, 0, this);\n __S.setUint16(6, value, this);\n }\n isNone(): boolean { return __S.getUint16(8, this) === 1; }\n setNone(): void { __S.setUint16(8, 1, this); }\n toString(): string { return \"NetActorRecUpdateTx_PortNum_\" + super.toString(); }\n which(): NetActorRecUpdateTx_PortNum_Which { return __S.getUint16(8, this); }\n}\nexport enum NetActorRecUpdateTx_AcctNumRfd_Which {\n SOME = 0,\n NONE = 1\n}\nexport class NetActorRecUpdateTx_AcctNumRfd extends __S {\n static readonly SOME = NetActorRecUpdateTx_AcctNumRfd_Which.SOME;\n static readonly NONE = NetActorRecUpdateTx_AcctNumRfd_Which.NONE;\n static readonly _capnp = { displayName: \"acctNumRfd\", id: \"acd21c4384ee380b\", size: new __O(16, 2) };\n adoptSome(value: capnp.Orphan<capnp.Data>): void {\n __S.setUint16(10, 0, this);\n __S.adopt(value, __S.getPointer(1, this));\n }\n disownSome(): capnp.Orphan<capnp.Data> { return __S.disown(this.getSome()); }\n getSome(): capnp.Data {\n __S.testWhich(\"some\", __S.getUint16(10, this), 0, this);\n return __S.getData(1, this);\n }\n hasSome(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initSome(length: number): capnp.Data {\n __S.setUint16(10, 0, this);\n return __S.initData(1, length, this);\n }\n isSome(): boolean { return __S.getUint16(10, this) === 0; }\n setSome(value: capnp.Data): void {\n __S.setUint16(10, 0, this);\n __S.copyFrom(value, __S.getPointer(1, this));\n }\n isNone(): boolean { return __S.getUint16(10, this) === 1; }\n setNone(): void { __S.setUint16(10, 1, this); }\n toString(): string { return \"NetActorRecUpdateTx_AcctNumRfd_\" + super.toString(); }\n which(): NetActorRecUpdateTx_AcctNumRfd_Which { return __S.getUint16(10, this); }\n}\nexport class NetActorRecUpdateTx extends __S {\n static readonly _capnp = { displayName: \"NetActorRecUpdateTx\", id: \"ad976b003e4f49c9\", size: new __O(16, 2) };\n getRecStatus(): NetActorRecUpdateTx_RecStatus { return __S.getAs(NetActorRecUpdateTx_RecStatus, this); }\n initRecStatus(): NetActorRecUpdateTx_RecStatus { return __S.getAs(NetActorRecUpdateTx_RecStatus, this); }\n getIpAddr(): NetActorRecUpdateTx_IpAddr { return __S.getAs(NetActorRecUpdateTx_IpAddr, this); }\n initIpAddr(): NetActorRecUpdateTx_IpAddr { return __S.getAs(NetActorRecUpdateTx_IpAddr, this); }\n getPortNum(): NetActorRecUpdateTx_PortNum { return __S.getAs(NetActorRecUpdateTx_PortNum, this); }\n initPortNum(): NetActorRecUpdateTx_PortNum { return __S.getAs(NetActorRecUpdateTx_PortNum, this); }\n getAcctNumRfd(): NetActorRecUpdateTx_AcctNumRfd { return __S.getAs(NetActorRecUpdateTx_AcctNumRfd, this); }\n initAcctNumRfd(): NetActorRecUpdateTx_AcctNumRfd { return __S.getAs(NetActorRecUpdateTx_AcctNumRfd, this); }\n toString(): string { return \"NetActorRecUpdateTx_\" + super.toString(); }\n}\nexport enum NetActorRecTx_TxType_Which {\n CREATE = 0,\n UPDATE = 1\n}\nexport class NetActorRecTx_TxType extends __S {\n static readonly CREATE = NetActorRecTx_TxType_Which.CREATE;\n static readonly UPDATE = NetActorRecTx_TxType_Which.UPDATE;\n static readonly _capnp = { displayName: \"txType\", id: \"a46aaef729ceb359\", size: new __O(8, 3) };\n adoptCreate(value: capnp.Orphan<NetActorRecCreateTx>): void {\n __S.setUint16(4, 0, this);\n __S.adopt(value, __S.getPointer(1, this));\n }\n disownCreate(): capnp.Orphan<NetActorRecCreateTx> { return __S.disown(this.getCreate()); }\n getCreate(): NetActorRecCreateTx {\n __S.testWhich(\"create\", __S.getUint16(4, this), 0, this);\n return __S.getStruct(1, NetActorRecCreateTx, this);\n }\n hasCreate(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initCreate(): NetActorRecCreateTx {\n __S.setUint16(4, 0, this);\n return __S.initStructAt(1, NetActorRecCreateTx, this);\n }\n isCreate(): boolean { return __S.getUint16(4, this) === 0; }\n setCreate(value: NetActorRecCreateTx): void {\n __S.setUint16(4, 0, this);\n __S.copyFrom(value, __S.getPointer(1, this));\n }\n adoptUpdate(value: capnp.Orphan<NetActorRecUpdateTx>): void {\n __S.setUint16(4, 1, this);\n __S.adopt(value, __S.getPointer(1, this));\n }\n disownUpdate(): capnp.Orphan<NetActorRecUpdateTx> { return __S.disown(this.getUpdate()); }\n getUpdate(): NetActorRecUpdateTx {\n __S.testWhich(\"update\", __S.getUint16(4, this), 1, this);\n return __S.getStruct(1, NetActorRecUpdateTx, this);\n }\n hasUpdate(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initUpdate(): NetActorRecUpdateTx {\n __S.setUint16(4, 1, this);\n return __S.initStructAt(1, NetActorRecUpdateTx, this);\n }\n isUpdate(): boolean { return __S.getUint16(4, this) === 1; }\n setUpdate(value: NetActorRecUpdateTx): void {\n __S.setUint16(4, 1, this);\n __S.copyFrom(value, __S.getPointer(1, this));\n }\n toString(): string { return \"NetActorRecTx_TxType_\" + super.toString(); }\n which(): NetActorRecTx_TxType_Which { return __S.getUint16(4, this); }\n}\nexport class NetActorRecTx extends __S {\n static readonly _capnp = { displayName: \"NetActorRecTx\", id: \"c0c5135f271ad32c\", size: new __O(8, 3) };\n getTxType(): NetActorRecTx_TxType { return __S.getAs(NetActorRecTx_TxType, this); }\n initTxType(): NetActorRecTx_TxType { return __S.getAs(NetActorRecTx_TxType, this); }\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(2, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(2, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"NetActorRecTx_\" + super.toString(); }\n}\nexport enum ParamAcctRecTx_ParamType_Which {\n ALLOW_ATTEST = 0,\n ALLOW_FUNDING_PROXIES = 1,\n ALLOW_COINS = 2,\n ALLOW_COUNTERPARTY = 3,\n ALLOW_DCE = 4,\n ALLOW_DYNAMIC_NAL = 5,\n ALLOW_FEES = 6,\n ALLOW_GBB = 7,\n ALLOW_HASH_LOCKS = 8,\n ALLOW_MICROCOINS = 9,\n ALLOW_MULTISIG = 10,\n ALLOW_NFT = 11,\n ALLOW_STACKABLE = 12,\n ALLOW_TOKEN = 13,\n ALLOW_TREASURY = 14,\n GBB_AMT = 15,\n GEEQ_NORM = 16,\n METADATA_FIXED_BYTES = 17,\n METADATA_FIXED_NUM = 18,\n METADATA_VAR_BYTES = 19,\n METADATA_VAR_NUM = 20,\n MIN_TX_AMT = 21,\n NTL_MAX_NUM = 22,\n RENT_INTERVAL = 23,\n TARGET_ANCHOR_NODE = 24,\n TARGET_ANON_NODE = 25,\n TARGET_BLOCK_INTERVAL = 26,\n TARGET_CERT_NODE = 27,\n TARGET_GOSSIP_NET = 28\n}\nexport class ParamAcctRecTx_ParamType extends __S {\n static readonly ALLOW_ATTEST = ParamAcctRecTx_ParamType_Which.ALLOW_ATTEST;\n static readonly ALLOW_FUNDING_PROXIES = ParamAcctRecTx_ParamType_Which.ALLOW_FUNDING_PROXIES;\n static readonly ALLOW_COINS = ParamAcctRecTx_ParamType_Which.ALLOW_COINS;\n static readonly ALLOW_COUNTERPARTY = ParamAcctRecTx_ParamType_Which.ALLOW_COUNTERPARTY;\n static readonly ALLOW_DCE = ParamAcctRecTx_ParamType_Which.ALLOW_DCE;\n static readonly ALLOW_DYNAMIC_NAL = ParamAcctRecTx_ParamType_Which.ALLOW_DYNAMIC_NAL;\n static readonly ALLOW_FEES = ParamAcctRecTx_ParamType_Which.ALLOW_FEES;\n static readonly ALLOW_GBB = ParamAcctRecTx_ParamType_Which.ALLOW_GBB;\n static readonly ALLOW_HASH_LOCKS = ParamAcctRecTx_ParamType_Which.ALLOW_HASH_LOCKS;\n static readonly ALLOW_MICROCOINS = ParamAcctRecTx_ParamType_Which.ALLOW_MICROCOINS;\n static readonly ALLOW_MULTISIG = ParamAcctRecTx_ParamType_Which.ALLOW_MULTISIG;\n static readonly ALLOW_NFT = ParamAcctRecTx_ParamType_Which.ALLOW_NFT;\n static readonly ALLOW_STACKABLE = ParamAcctRecTx_ParamType_Which.ALLOW_STACKABLE;\n static readonly ALLOW_TOKEN = ParamAcctRecTx_ParamType_Which.ALLOW_TOKEN;\n static readonly ALLOW_TREASURY = ParamAcctRecTx_ParamType_Which.ALLOW_TREASURY;\n static readonly GBB_AMT = ParamAcctRecTx_ParamType_Which.GBB_AMT;\n static readonly GEEQ_NORM = ParamAcctRecTx_ParamType_Which.GEEQ_NORM;\n static readonly METADATA_FIXED_BYTES = ParamAcctRecTx_ParamType_Which.METADATA_FIXED_BYTES;\n static readonly METADATA_FIXED_NUM = ParamAcctRecTx_ParamType_Which.METADATA_FIXED_NUM;\n static readonly METADATA_VAR_BYTES = ParamAcctRecTx_ParamType_Which.METADATA_VAR_BYTES;\n static readonly METADATA_VAR_NUM = ParamAcctRecTx_ParamType_Which.METADATA_VAR_NUM;\n static readonly MIN_TX_AMT = ParamAcctRecTx_ParamType_Which.MIN_TX_AMT;\n static readonly NTL_MAX_NUM = ParamAcctRecTx_ParamType_Which.NTL_MAX_NUM;\n static readonly RENT_INTERVAL = ParamAcctRecTx_ParamType_Which.RENT_INTERVAL;\n static readonly TARGET_ANCHOR_NODE = ParamAcctRecTx_ParamType_Which.TARGET_ANCHOR_NODE;\n static readonly TARGET_ANON_NODE = ParamAcctRecTx_ParamType_Which.TARGET_ANON_NODE;\n static readonly TARGET_BLOCK_INTERVAL = ParamAcctRecTx_ParamType_Which.TARGET_BLOCK_INTERVAL;\n static readonly TARGET_CERT_NODE = ParamAcctRecTx_ParamType_Which.TARGET_CERT_NODE;\n static readonly TARGET_GOSSIP_NET = ParamAcctRecTx_ParamType_Which.TARGET_GOSSIP_NET;\n static readonly _capnp = { displayName: \"paramType\", id: \"ed97b59c2e688c24\", size: new __O(16, 2) };\n getAllowAttest(): boolean {\n __S.testWhich(\"allowAttest\", __S.getUint16(6, this), 0, this);\n return __S.getBit(32, this);\n }\n isAllowAttest(): boolean { return __S.getUint16(6, this) === 0; }\n setAllowAttest(value: boolean): void {\n __S.setUint16(6, 0, this);\n __S.setBit(32, value, this);\n }\n getAllowFundingProxies(): boolean {\n __S.testWhich(\"allowFundingProxies\", __S.getUint16(6, this), 1, this);\n return __S.getBit(32, this);\n }\n isAllowFundingProxies(): boolean { return __S.getUint16(6, this) === 1; }\n setAllowFundingProxies(value: boolean): void {\n __S.setUint16(6, 1, this);\n __S.setBit(32, value, this);\n }\n getAllowCoins(): boolean {\n __S.testWhich(\"allowCoins\", __S.getUint16(6, this), 2, this);\n return __S.getBit(32, this);\n }\n isAllowCoins(): boolean { return __S.getUint16(6, this) === 2; }\n setAllowCoins(value: boolean): void {\n __S.setUint16(6, 2, this);\n __S.setBit(32, value, this);\n }\n getAllowCounterparty(): boolean {\n __S.testWhich(\"allowCounterparty\", __S.getUint16(6, this), 3, this);\n return __S.getBit(32, this);\n }\n isAllowCounterparty(): boolean { return __S.getUint16(6, this) === 3; }\n setAllowCounterparty(value: boolean): void {\n __S.setUint16(6, 3, this);\n __S.setBit(32, value, this);\n }\n getAllowDce(): boolean {\n __S.testWhich(\"allowDce\", __S.getUint16(6, this), 4, this);\n return __S.getBit(32, this);\n }\n isAllowDce(): boolean { return __S.getUint16(6, this) === 4; }\n setAllowDce(value: boolean): void {\n __S.setUint16(6, 4, this);\n __S.setBit(32, value, this);\n }\n getAllowDynamicNal(): boolean {\n __S.testWhich(\"allowDynamicNal\", __S.getUint16(6, this), 5, this);\n return __S.getBit(32, this);\n }\n isAllowDynamicNal(): boolean { return __S.getUint16(6, this) === 5; }\n setAllowDynamicNal(value: boolean): void {\n __S.setUint16(6, 5, this);\n __S.setBit(32, value, this);\n }\n getAllowFees(): boolean {\n __S.testWhich(\"allowFees\", __S.getUint16(6, this), 6, this);\n return __S.getBit(32, this);\n }\n isAllowFees(): boolean { return __S.getUint16(6, this) === 6; }\n setAllowFees(value: boolean): void {\n __S.setUint16(6, 6, this);\n __S.setBit(32, value, this);\n }\n getAllowGbb(): boolean {\n __S.testWhich(\"allowGbb\", __S.getUint16(6, this), 7, this);\n return __S.getBit(32, this);\n }\n isAllowGbb(): boolean { return __S.getUint16(6, this) === 7; }\n setAllowGbb(value: boolean): void {\n __S.setUint16(6, 7, this);\n __S.setBit(32, value, this);\n }\n getAllowHashLocks(): boolean {\n __S.testWhich(\"allowHashLocks\", __S.getUint16(6, this), 8, this);\n return __S.getBit(32, this);\n }\n isAllowHashLocks(): boolean { return __S.getUint16(6, this) === 8; }\n setAllowHashLocks(value: boolean): void {\n __S.setUint16(6, 8, this);\n __S.setBit(32, value, this);\n }\n getAllowMicrocoins(): boolean {\n __S.testWhich(\"allowMicrocoins\", __S.getUint16(6, this), 9, this);\n return __S.getBit(32, this);\n }\n isAllowMicrocoins(): boolean { return __S.getUint16(6, this) === 9; }\n setAllowMicrocoins(value: boolean): void {\n __S.setUint16(6, 9, this);\n __S.setBit(32, value, this);\n }\n getAllowMultisig(): boolean {\n __S.testWhich(\"allowMultisig\", __S.getUint16(6, this), 10, this);\n return __S.getBit(32, this);\n }\n isAllowMultisig(): boolean { return __S.getUint16(6, this) === 10; }\n setAllowMultisig(value: boolean): void {\n __S.setUint16(6, 10, this);\n __S.setBit(32, value, this);\n }\n getAllowNft(): boolean {\n __S.testWhich(\"allowNft\", __S.getUint16(6, this), 11, this);\n return __S.getBit(32, this);\n }\n isAllowNft(): boolean { return __S.getUint16(6, this) === 11; }\n setAllowNft(value: boolean): void {\n __S.setUint16(6, 11, this);\n __S.setBit(32, value, this);\n }\n getAllowStackable(): boolean {\n __S.testWhich(\"allowStackable\", __S.getUint16(6, this), 12, this);\n return __S.getBit(32, this);\n }\n isAllowStackable(): boolean { return __S.getUint16(6, this) === 12; }\n setAllowStackable(value: boolean): void {\n __S.setUint16(6, 12, this);\n __S.setBit(32, value, this);\n }\n getAllowToken(): boolean {\n __S.testWhich(\"allowToken\", __S.getUint16(6, this), 13, this);\n return __S.getBit(32, this);\n }\n isAllowToken(): boolean { return __S.getUint16(6, this) === 13; }\n setAllowToken(value: boolean): void {\n __S.setUint16(6, 13, this);\n __S.setBit(32, value, this);\n }\n getAllowTreasury(): boolean {\n __S.testWhich(\"allowTreasury\", __S.getUint16(6, this), 14, this);\n return __S.getBit(32, this);\n }\n isAllowTreasury(): boolean { return __S.getUint16(6, this) === 14; }\n setAllowTreasury(value: boolean): void {\n __S.setUint16(6, 14, this);\n __S.setBit(32, value, this);\n }\n getGbbAmt(): capnp.Uint64 {\n __S.testWhich(\"gbbAmt\", __S.getUint16(6, this), 15, this);\n return __S.getUint64(8, this);\n }\n isGbbAmt(): boolean { return __S.getUint16(6, this) === 15; }\n setGbbAmt(value: capnp.Uint64): void {\n __S.setUint16(6, 15, this);\n __S.setUint64(8, value, this);\n }\n getGeeqNorm(): capnp.Uint64 {\n __S.testWhich(\"geeqNorm\", __S.getUint16(6, this), 16, this);\n return __S.getUint64(8, this);\n }\n isGeeqNorm(): boolean { return __S.getUint16(6, this) === 16; }\n setGeeqNorm(value: capnp.Uint64): void {\n __S.setUint16(6, 16, this);\n __S.setUint64(8, value, this);\n }\n getMetadataFixedBytes(): number {\n __S.testWhich(\"metadataFixedBytes\", __S.getUint16(6, this), 17, this);\n return __S.getUint16(8, this);\n }\n isMetadataFixedBytes(): boolean { return __S.getUint16(6, this) === 17; }\n setMetadataFixedBytes(value: number): void {\n __S.setUint16(6, 17, this);\n __S.setUint16(8, value, this);\n }\n getMetadataFixedNum(): number {\n __S.testWhich(\"metadataFixedNum\", __S.getUint16(6, this), 18, this);\n return __S.getUint16(8, this);\n }\n isMetadataFixedNum(): boolean { return __S.getUint16(6, this) === 18; }\n setMetadataFixedNum(value: number): void {\n __S.setUint16(6, 18, this);\n __S.setUint16(8, value, this);\n }\n getMetadataVarBytes(): number {\n __S.testWhich(\"metadataVarBytes\", __S.getUint16(6, this), 19, this);\n return __S.getUint16(8, this);\n }\n isMetadataVarBytes(): boolean { return __S.getUint16(6, this) === 19; }\n setMetadataVarBytes(value: number): void {\n __S.setUint16(6, 19, this);\n __S.setUint16(8, value, this);\n }\n getMetadataVarNum(): number {\n __S.testWhich(\"metadataVarNum\", __S.getUint16(6, this), 20, this);\n return __S.getUint16(8, this);\n }\n isMetadataVarNum(): boolean { return __S.getUint16(6, this) === 20; }\n setMetadataVarNum(value: number): void {\n __S.setUint16(6, 20, this);\n __S.setUint16(8, value, this);\n }\n getMinTxAmt(): capnp.Uint64 {\n __S.testWhich(\"minTxAmt\", __S.getUint16(6, this), 21, this);\n return __S.getUint64(8, this);\n }\n isMinTxAmt(): boolean { return __S.getUint16(6, this) === 21; }\n setMinTxAmt(value: capnp.Uint64): void {\n __S.setUint16(6, 21, this);\n __S.setUint64(8, value, this);\n }\n getNtlMaxNum(): number {\n __S.testWhich(\"ntlMaxNum\", __S.getUint16(6, this), 22, this);\n return __S.getUint16(8, this);\n }\n isNtlMaxNum(): boolean { return __S.getUint16(6, this) === 22; }\n setNtlMaxNum(value: number): void {\n __S.setUint16(6, 22, this);\n __S.setUint16(8, value, this);\n }\n getRentInterval(): capnp.Uint64 {\n __S.testWhich(\"rentInterval\", __S.getUint16(6, this), 23, this);\n return __S.getUint64(8, this);\n }\n isRentInterval(): boolean { return __S.getUint16(6, this) === 23; }\n setRentInterval(value: capnp.Uint64): void {\n __S.setUint16(6, 23, this);\n __S.setUint64(8, value, this);\n }\n getTargetAnchorNode(): number {\n __S.testWhich(\"targetAnchorNode\", __S.getUint16(6, this), 24, this);\n return __S.getUint16(8, this);\n }\n isTargetAnchorNode(): boolean { return __S.getUint16(6, this) === 24; }\n setTargetAnchorNode(value: number): void {\n __S.setUint16(6, 24, this);\n __S.setUint16(8, value, this);\n }\n getTargetAnonNode(): number {\n __S.testWhich(\"targetAnonNode\", __S.getUint16(6, this), 25, this);\n return __S.getUint16(8, this);\n }\n isTargetAnonNode(): boolean { return __S.getUint16(6, this) === 25; }\n setTargetAnonNode(value: number): void {\n __S.setUint16(6, 25, this);\n __S.setUint16(8, value, this);\n }\n getTargetBlockInterval(): capnp.Uint64 {\n __S.testWhich(\"targetBlockInterval\", __S.getUint16(6, this), 26, this);\n return __S.getUint64(8, this);\n }\n isTargetBlockInterval(): boolean { return __S.getUint16(6, this) === 26; }\n setTargetBlockInterval(value: capnp.Uint64): void {\n __S.setUint16(6, 26, this);\n __S.setUint64(8, value, this);\n }\n getTargetCertNode(): number {\n __S.testWhich(\"targetCertNode\", __S.getUint16(6, this), 27, this);\n return __S.getUint16(8, this);\n }\n isTargetCertNode(): boolean { return __S.getUint16(6, this) === 27; }\n setTargetCertNode(value: number): void {\n __S.setUint16(6, 27, this);\n __S.setUint16(8, value, this);\n }\n getTargetGossipNet(): number {\n __S.testWhich(\"targetGossipNet\", __S.getUint16(6, this), 28, this);\n return __S.getUint16(8, this);\n }\n isTargetGossipNet(): boolean { return __S.getUint16(6, this) === 28; }\n setTargetGossipNet(value: number): void {\n __S.setUint16(6, 28, this);\n __S.setUint16(8, value, this);\n }\n toString(): string { return \"ParamAcctRecTx_ParamType_\" + super.toString(); }\n which(): ParamAcctRecTx_ParamType_Which { return __S.getUint16(6, this); }\n}\nexport class ParamAcctRecTx extends __S {\n static readonly _capnp = { displayName: \"ParamAcctRecTx\", id: \"b78b9a6573605402\", size: new __O(16, 2) };\n getParamType(): ParamAcctRecTx_ParamType { return __S.getAs(ParamAcctRecTx_ParamType, this); }\n initParamType(): ParamAcctRecTx_ParamType { return __S.getAs(ParamAcctRecTx_ParamType, this); }\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(1, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(1, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"ParamAcctRecTx_\" + super.toString(); }\n}\nexport class AuditHubTx extends __S {\n static readonly _capnp = { displayName: \"AuditHubTx\", id: \"ee4e6f8ba301507d\", size: new __O(0, 2) };\n adoptHubContentStmtFirst(value: capnp.Orphan<HubContentStmt>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownHubContentStmtFirst(): capnp.Orphan<HubContentStmt> { return __S.disown(this.getHubContentStmtFirst()); }\n getHubContentStmtFirst(): HubContentStmt { return __S.getStruct(0, HubContentStmt, this); }\n hasHubContentStmtFirst(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initHubContentStmtFirst(): HubContentStmt { return __S.initStructAt(0, HubContentStmt, this); }\n setHubContentStmtFirst(value: HubContentStmt): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptHubContentStmtSecond(value: capnp.Orphan<HubContentStmt>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownHubContentStmtSecond(): capnp.Orphan<HubContentStmt> { return __S.disown(this.getHubContentStmtSecond()); }\n getHubContentStmtSecond(): HubContentStmt { return __S.getStruct(1, HubContentStmt, this); }\n hasHubContentStmtSecond(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initHubContentStmtSecond(): HubContentStmt { return __S.initStructAt(1, HubContentStmt, this); }\n setHubContentStmtSecond(value: HubContentStmt): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AuditHubTx_\" + super.toString(); }\n}\nexport class AuditNodeTx extends __S {\n static readonly _capnp = { displayName: \"AuditNodeTx\", id: \"c86f93926c6f1952\", size: new __O(0, 2) };\n adoptNodeContentStmtFirst(value: capnp.Orphan<NodeContentStmt>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownNodeContentStmtFirst(): capnp.Orphan<NodeContentStmt> { return __S.disown(this.getNodeContentStmtFirst()); }\n getNodeContentStmtFirst(): NodeContentStmt { return __S.getStruct(0, NodeContentStmt, this); }\n hasNodeContentStmtFirst(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNodeContentStmtFirst(): NodeContentStmt { return __S.initStructAt(0, NodeContentStmt, this); }\n setNodeContentStmtFirst(value: NodeContentStmt): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptNodeContentStmtSecond(value: capnp.Orphan<NodeContentStmt>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownNodeContentStmtSecond(): capnp.Orphan<NodeContentStmt> { return __S.disown(this.getNodeContentStmtSecond()); }\n getNodeContentStmtSecond(): NodeContentStmt { return __S.getStruct(1, NodeContentStmt, this); }\n hasNodeContentStmtSecond(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initNodeContentStmtSecond(): NodeContentStmt { return __S.initStructAt(1, NodeContentStmt, this); }\n setNodeContentStmtSecond(value: NodeContentStmt): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AuditNodeTx_\" + super.toString(); }\n}\nexport class AuditRelayTx extends __S {\n static readonly _capnp = { displayName: \"AuditRelayTx\", id: \"bf562ef971e04d24\", size: new __O(0, 2) };\n adoptRelayContentStmtFirst(value: capnp.Orphan<RelayContentStmt>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownRelayContentStmtFirst(): capnp.Orphan<RelayContentStmt> { return __S.disown(this.getRelayContentStmtFirst()); }\n getRelayContentStmtFirst(): RelayContentStmt { return __S.getStruct(0, RelayContentStmt, this); }\n hasRelayContentStmtFirst(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initRelayContentStmtFirst(): RelayContentStmt { return __S.initStructAt(0, RelayContentStmt, this); }\n setRelayContentStmtFirst(value: RelayContentStmt): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptRelayContentStmtSecond(value: capnp.Orphan<RelayContentStmt>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownRelayContentStmtSecond(): capnp.Orphan<RelayContentStmt> { return __S.disown(this.getRelayContentStmtSecond()); }\n getRelayContentStmtSecond(): RelayContentStmt { return __S.getStruct(1, RelayContentStmt, this); }\n hasRelayContentStmtSecond(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initRelayContentStmtSecond(): RelayContentStmt { return __S.initStructAt(1, RelayContentStmt, this); }\n setRelayContentStmtSecond(value: RelayContentStmt): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AuditRelayTx_\" + super.toString(); }\n}\nexport enum AuditTx_TxType_Which {\n HUB = 0,\n NODE = 1,\n RELAY = 2\n}\nexport class AuditTx_TxType extends __S {\n static readonly HUB = AuditTx_TxType_Which.HUB;\n static readonly NODE = AuditTx_TxType_Which.NODE;\n static readonly RELAY = AuditTx_TxType_Which.RELAY;\n static readonly _capnp = { displayName: \"txType\", id: \"95cffd5b7bad35aa\", size: new __O(16, 2) };\n adoptHub(value: capnp.Orphan<AuditHubTx>): void {\n __S.setUint16(8, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownHub(): capnp.Orphan<AuditHubTx> { return __S.disown(this.getHub()); }\n getHub(): AuditHubTx {\n __S.testWhich(\"hub\", __S.getUint16(8, this), 0, this);\n return __S.getStruct(0, AuditHubTx, this);\n }\n hasHub(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initHub(): AuditHubTx {\n __S.setUint16(8, 0, this);\n return __S.initStructAt(0, AuditHubTx, this);\n }\n isHub(): boolean { return __S.getUint16(8, this) === 0; }\n setHub(value: AuditHubTx): void {\n __S.setUint16(8, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptNode(value: capnp.Orphan<AuditNodeTx>): void {\n __S.setUint16(8, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownNode(): capnp.Orphan<AuditNodeTx> { return __S.disown(this.getNode()); }\n getNode(): AuditNodeTx {\n __S.testWhich(\"node\", __S.getUint16(8, this), 1, this);\n return __S.getStruct(0, AuditNodeTx, this);\n }\n hasNode(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNode(): AuditNodeTx {\n __S.setUint16(8, 1, this);\n return __S.initStructAt(0, AuditNodeTx, this);\n }\n isNode(): boolean { return __S.getUint16(8, this) === 1; }\n setNode(value: AuditNodeTx): void {\n __S.setUint16(8, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptRelay(value: capnp.Orphan<AuditRelayTx>): void {\n __S.setUint16(8, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownRelay(): capnp.Orphan<AuditRelayTx> { return __S.disown(this.getRelay()); }\n getRelay(): AuditRelayTx {\n __S.testWhich(\"relay\", __S.getUint16(8, this), 2, this);\n return __S.getStruct(0, AuditRelayTx, this);\n }\n hasRelay(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initRelay(): AuditRelayTx {\n __S.setUint16(8, 2, this);\n return __S.initStructAt(0, AuditRelayTx, this);\n }\n isRelay(): boolean { return __S.getUint16(8, this) === 2; }\n setRelay(value: AuditRelayTx): void {\n __S.setUint16(8, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"AuditTx_TxType_\" + super.toString(); }\n which(): AuditTx_TxType_Which { return __S.getUint16(8, this); }\n}\nexport class AuditTx extends __S {\n static readonly _capnp = { displayName: \"AuditTx\", id: \"e9cc52cf4815771c\", size: new __O(16, 2) };\n getTxType(): AuditTx_TxType { return __S.getAs(AuditTx_TxType, this); }\n initTxType(): AuditTx_TxType { return __S.getAs(AuditTx_TxType, this); }\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n getNodeNumAudited(): number { return __S.getUint32(4, this); }\n setNodeNumAudited(value: number): void { __S.setUint32(4, value, this); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(1, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(1, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AuditTx_\" + super.toString(); }\n}\nexport enum UserValTxData_Tx_Which {\n COIN = 0,\n PROXY_CREATE = 1,\n PROXY_ADMIN = 2,\n MULTISIG = 3,\n NET_ACTOR_REC = 4,\n PARAM_ACCT_REC = 5,\n AUDIT = 6\n}\nexport class UserValTxData_Tx extends __S {\n static readonly COIN = UserValTxData_Tx_Which.COIN;\n static readonly PROXY_CREATE = UserValTxData_Tx_Which.PROXY_CREATE;\n static readonly PROXY_ADMIN = UserValTxData_Tx_Which.PROXY_ADMIN;\n static readonly MULTISIG = UserValTxData_Tx_Which.MULTISIG;\n static readonly NET_ACTOR_REC = UserValTxData_Tx_Which.NET_ACTOR_REC;\n static readonly PARAM_ACCT_REC = UserValTxData_Tx_Which.PARAM_ACCT_REC;\n static readonly AUDIT = UserValTxData_Tx_Which.AUDIT;\n static readonly _capnp = { displayName: \"tx\", id: \"8fc1761e104d4888\", size: new __O(16, 1) };\n adoptCoin(value: capnp.Orphan<CoinTx>): void {\n __S.setUint16(12, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownCoin(): capnp.Orphan<CoinTx> { return __S.disown(this.getCoin()); }\n getCoin(): CoinTx {\n __S.testWhich(\"coin\", __S.getUint16(12, this), 0, this);\n return __S.getStruct(0, CoinTx, this);\n }\n hasCoin(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initCoin(): CoinTx {\n __S.setUint16(12, 0, this);\n return __S.initStructAt(0, CoinTx, this);\n }\n isCoin(): boolean { return __S.getUint16(12, this) === 0; }\n setCoin(value: CoinTx): void {\n __S.setUint16(12, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptProxyCreate(value: capnp.Orphan<ProxyCreateTx>): void {\n __S.setUint16(12, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownProxyCreate(): capnp.Orphan<ProxyCreateTx> { return __S.disown(this.getProxyCreate()); }\n getProxyCreate(): ProxyCreateTx {\n __S.testWhich(\"proxyCreate\", __S.getUint16(12, this), 1, this);\n return __S.getStruct(0, ProxyCreateTx, this);\n }\n hasProxyCreate(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initProxyCreate(): ProxyCreateTx {\n __S.setUint16(12, 1, this);\n return __S.initStructAt(0, ProxyCreateTx, this);\n }\n isProxyCreate(): boolean { return __S.getUint16(12, this) === 1; }\n setProxyCreate(value: ProxyCreateTx): void {\n __S.setUint16(12, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptProxyAdmin(value: capnp.Orphan<ProxyAdminTx>): void {\n __S.setUint16(12, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownProxyAdmin(): capnp.Orphan<ProxyAdminTx> { return __S.disown(this.getProxyAdmin()); }\n getProxyAdmin(): ProxyAdminTx {\n __S.testWhich(\"proxyAdmin\", __S.getUint16(12, this), 2, this);\n return __S.getStruct(0, ProxyAdminTx, this);\n }\n hasProxyAdmin(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initProxyAdmin(): ProxyAdminTx {\n __S.setUint16(12, 2, this);\n return __S.initStructAt(0, ProxyAdminTx, this);\n }\n isProxyAdmin(): boolean { return __S.getUint16(12, this) === 2; }\n setProxyAdmin(value: ProxyAdminTx): void {\n __S.setUint16(12, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMultisig(value: capnp.Orphan<MultisigTx>): void {\n __S.setUint16(12, 3, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMultisig(): capnp.Orphan<MultisigTx> { return __S.disown(this.getMultisig()); }\n getMultisig(): MultisigTx {\n __S.testWhich(\"multisig\", __S.getUint16(12, this), 3, this);\n return __S.getStruct(0, MultisigTx, this);\n }\n hasMultisig(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMultisig(): MultisigTx {\n __S.setUint16(12, 3, this);\n return __S.initStructAt(0, MultisigTx, this);\n }\n isMultisig(): boolean { return __S.getUint16(12, this) === 3; }\n setMultisig(value: MultisigTx): void {\n __S.setUint16(12, 3, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptNetActorRec(value: capnp.Orphan<NetActorRecTx>): void {\n __S.setUint16(12, 4, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownNetActorRec(): capnp.Orphan<NetActorRecTx> { return __S.disown(this.getNetActorRec()); }\n getNetActorRec(): NetActorRecTx {\n __S.testWhich(\"netActorRec\", __S.getUint16(12, this), 4, this);\n return __S.getStruct(0, NetActorRecTx, this);\n }\n hasNetActorRec(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNetActorRec(): NetActorRecTx {\n __S.setUint16(12, 4, this);\n return __S.initStructAt(0, NetActorRecTx, this);\n }\n isNetActorRec(): boolean { return __S.getUint16(12, this) === 4; }\n setNetActorRec(value: NetActorRecTx): void {\n __S.setUint16(12, 4, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptParamAcctRec(value: capnp.Orphan<ParamAcctRecTx>): void {\n __S.setUint16(12, 5, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownParamAcctRec(): capnp.Orphan<ParamAcctRecTx> { return __S.disown(this.getParamAcctRec()); }\n getParamAcctRec(): ParamAcctRecTx {\n __S.testWhich(\"paramAcctRec\", __S.getUint16(12, this), 5, this);\n return __S.getStruct(0, ParamAcctRecTx, this);\n }\n hasParamAcctRec(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initParamAcctRec(): ParamAcctRecTx {\n __S.setUint16(12, 5, this);\n return __S.initStructAt(0, ParamAcctRecTx, this);\n }\n isParamAcctRec(): boolean { return __S.getUint16(12, this) === 5; }\n setParamAcctRec(value: ParamAcctRecTx): void {\n __S.setUint16(12, 5, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAudit(value: capnp.Orphan<AuditTx>): void {\n __S.setUint16(12, 6, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAudit(): capnp.Orphan<AuditTx> { return __S.disown(this.getAudit()); }\n getAudit(): AuditTx {\n __S.testWhich(\"audit\", __S.getUint16(12, this), 6, this);\n return __S.getStruct(0, AuditTx, this);\n }\n hasAudit(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAudit(): AuditTx {\n __S.setUint16(12, 6, this);\n return __S.initStructAt(0, AuditTx, this);\n }\n isAudit(): boolean { return __S.getUint16(12, this) === 6; }\n setAudit(value: AuditTx): void {\n __S.setUint16(12, 6, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"UserValTxData_Tx_\" + super.toString(); }\n which(): UserValTxData_Tx_Which { return __S.getUint16(12, this); }\n}\nexport class UserValTxData extends __S {\n static readonly _capnp = { displayName: \"UserValTxData\", id: \"a50418a6266b68c9\", size: new __O(16, 1) };\n getBlockNum(): number { return __S.getUint32(0, this); }\n setBlockNum(value: number): void { __S.setUint32(0, value, this); }\n getChainNum(): number { return __S.getUint32(4, this); }\n setChainNum(value: number): void { __S.setUint32(4, value, this); }\n getNodeNum(): number { return __S.getUint32(8, this); }\n setNodeNum(value: number): void { __S.setUint32(8, value, this); }\n getTx(): UserValTxData_Tx { return __S.getAs(UserValTxData_Tx, this); }\n initTx(): UserValTxData_Tx { return __S.getAs(UserValTxData_Tx, this); }\n toString(): string { return \"UserValTxData_\" + super.toString(); }\n}\nexport class MultisigEndSubgroup extends __S {\n static readonly _capnp = { displayName: \"MultisigEndSubgroup\", id: \"802604f0df7f56db\", size: new __O(0, 2) };\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(0, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(0, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptSignature(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownSignature(): capnp.Orphan<capnp.Data> { return __S.disown(this.getSignature()); }\n getSignature(): capnp.Data { return __S.getData(1, this); }\n hasSignature(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initSignature(length: number): capnp.Data { return __S.initData(1, length, this); }\n setSignature(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"MultisigEndSubgroup_\" + super.toString(); }\n}\nexport class MultisigEndSubgroupEntry extends __S {\n static readonly _capnp = { displayName: \"MultisigEndSubgroupEntry\", id: \"fbe2c254c97419d2\", size: new __O(8, 1) };\n getPosition(): number { return __S.getUint16(0, this); }\n setPosition(value: number): void { __S.setUint16(0, value, this); }\n adoptItem(value: capnp.Orphan<MultisigEndSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownItem(): capnp.Orphan<MultisigEndSubgroup> { return __S.disown(this.getItem()); }\n getItem(): MultisigEndSubgroup { return __S.getStruct(0, MultisigEndSubgroup, this); }\n hasItem(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initItem(): MultisigEndSubgroup { return __S.initStructAt(0, MultisigEndSubgroup, this); }\n setItem(value: MultisigEndSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"MultisigEndSubgroupEntry_\" + super.toString(); }\n}\nexport enum UserValTx_Signature_Which {\n SOME = 0,\n NONE = 1\n}\nexport class UserValTx_Signature extends __S {\n static readonly SOME = UserValTx_Signature_Which.SOME;\n static readonly NONE = UserValTx_Signature_Which.NONE;\n static readonly _capnp = { displayName: \"signature\", id: \"ee088482c13cd971\", size: new __O(8, 3) };\n adoptSome(value: capnp.Orphan<capnp.Data>): void {\n __S.setUint16(0, 0, this);\n __S.adopt(value, __S.getPointer(1, this));\n }\n disownSome(): capnp.Orphan<capnp.Data> { return __S.disown(this.getSome()); }\n getSome(): capnp.Data {\n __S.testWhich(\"some\", __S.getUint16(0, this), 0, this);\n return __S.getData(1, this);\n }\n hasSome(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initSome(length: number): capnp.Data {\n __S.setUint16(0, 0, this);\n return __S.initData(1, length, this);\n }\n isSome(): boolean { return __S.getUint16(0, this) === 0; }\n setSome(value: capnp.Data): void {\n __S.setUint16(0, 0, this);\n __S.copyFrom(value, __S.getPointer(1, this));\n }\n isNone(): boolean { return __S.getUint16(0, this) === 1; }\n setNone(): void { __S.setUint16(0, 1, this); }\n toString(): string { return \"UserValTx_Signature_\" + super.toString(); }\n which(): UserValTx_Signature_Which { return __S.getUint16(0, this); }\n}\nexport class UserValTx extends __S {\n static readonly _capnp = { displayName: \"UserValTx\", id: \"b383e92d8fb8ccac\", size: new __O(8, 3) };\n static _Endorsements: capnp.ListCtor<MultisigEndSubgroupEntry>;\n adoptData(value: capnp.Orphan<UserValTxData>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownData(): capnp.Orphan<UserValTxData> { return __S.disown(this.getData()); }\n getData(): UserValTxData { return __S.getStruct(0, UserValTxData, this); }\n hasData(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initData(): UserValTxData { return __S.initStructAt(0, UserValTxData, this); }\n setData(value: UserValTxData): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n getSignature(): UserValTx_Signature { return __S.getAs(UserValTx_Signature, this); }\n initSignature(): UserValTx_Signature { return __S.getAs(UserValTx_Signature, this); }\n adoptEndorsements(value: capnp.Orphan<capnp.List<MultisigEndSubgroupEntry>>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownEndorsements(): capnp.Orphan<capnp.List<MultisigEndSubgroupEntry>> { return __S.disown(this.getEndorsements()); }\n getEndorsements(): capnp.List<MultisigEndSubgroupEntry> { return __S.getList(2, UserValTx._Endorsements, this); }\n hasEndorsements(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initEndorsements(length: number): capnp.List<MultisigEndSubgroupEntry> { return __S.initList(2, UserValTx._Endorsements, length, this); }\n setEndorsements(value: capnp.List<MultisigEndSubgroupEntry>): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"UserValTx_\" + super.toString(); }\n}\nCoinAssetTx._TokenAssetSubgroups = capnp.CompositeList(TokenAssetSubgroupEntry);\nCoinAssetTx._NftAssetSubgroups = capnp.CompositeList(NftAssetSubgroupEntry);\nCoinBurnTx._TokenAssetSubgroups = capnp.CompositeList(TokenAssetSubgroupEntry);\nCoinBurnTx._NftAssetSubgroups = capnp.CompositeList(NftAssetSubgroupEntry);\nCoinHlTx._TokenAssetSubgroups = capnp.CompositeList(TokenAssetSubgroupEntry);\nCoinHlTx._NftAssetSubgroups = capnp.CompositeList(NftAssetSubgroupEntry);\nProxyCreateDceTx._AcctNumMultiUsers = capnp.CompositeList(AcctNumEntry);\nProxyCreateFundingTx._AcctNumMultiUsers = capnp.CompositeList(AcctNumEntry);\nProxyCreateMultisigTx._AcctNumMultiUsers = capnp.CompositeList(AcctNumEntry);\nProxyUpdateTx._AcctNumMultiUsers = capnp.CompositeList(AcctNumEntry);\nMultisigTx._TokenAssetSubgroups = capnp.CompositeList(TokenAssetSubgroupEntry);\nMultisigTx._NftAssetSubgroups = capnp.CompositeList(NftAssetSubgroupEntry);\nUserValTx._Endorsements = capnp.CompositeList(MultisigEndSubgroupEntry);\n","/**\n * How many blocks the chain may move past a transaction's target block before nodes\n * refuse it.\n *\n * A node accepts a target within `[N-8, N+1]` of its own last committed block N\n * (geeq_node_core `indicator-function-worker.ts`, Block Target Consistency), and answers\n * anything older with an HTTP 400 and a `nonsane` status.\n *\n * @internal\n */\nexport const TARGET_BLOCK_SLACK = 8\n","import type { Message } from 'capnp-ts'\n\nimport { assertUint32 } from '../assert'\nimport { invalidArgument } from '../errors'\nimport type { ChainStateInput, GeeqKeypair } from '../types'\nimport { TARGET_BLOCK_SLACK } from './expiry'\n\n/**\n * What every transaction builder shares: the checks on its inputs, the Cap'n Proto\n * packing, the engine's canonical flatten, and the fields every built transaction reports\n * about what it is pinned to. One copy, so the four builders cannot drift apart.\n *\n * @internal\n */\n\n/** Every refHash the chain computes is a 32-byte BLAKE3. */\nexport const REF_HASH_BYTES = 32\n\n/** @internal */\nexport function assertKeypair(keypair: GeeqKeypair): void {\n if (keypair === null || typeof keypair !== 'object' || typeof keypair.sign !== 'function') {\n throw invalidArgument('keypair must be a GeeqKeypair.')\n }\n}\n\n/** @internal The four numbers a transaction carries are each a uint32 on the wire. */\nexport function assertChainState(chainState: ChainStateInput): void {\n assertUint32(chainState.chainNumber, 'chainNumber')\n assertUint32(chainState.blockNumber, 'blockNumber')\n assertUint32(chainState.nodeNumber, 'nodeNumber')\n assertUint32(chainState.nonce, 'nonce')\n}\n\n/** The two shapes a builder accepts chain state in: four numbers, or one object. */\ntype FlatOrStateInput =\n | { readonly chainState: ChainStateInput }\n | {\n readonly chainState?: never\n readonly chainNumber: number\n readonly blockNumber: number\n readonly nodeNumber: number\n readonly nonce: number\n }\n\n/**\n * Normalise the two input shapes into one chain state.\n *\n * The flat four-number form is kept for replay and offline signing; the object form is\n * what a chain read produces. Everything after this sees only the object.\n *\n * @internal\n */\nexport function resolveChainState(input: FlatOrStateInput): ChainStateInput {\n if (input.chainState !== undefined) return input.chainState\n return {\n chainNumber: input.chainNumber,\n blockNumber: input.blockNumber,\n nodeNumber: input.nodeNumber,\n nonce: input.nonce,\n }\n}\n\n/**\n * What a built transaction reports about what it is pinned to: the state itself, frozen,\n * the last block a node takes it at, and the node it must go to when a chain read chose it.\n *\n * @internal\n */\nexport function pinning(chainState: ChainStateInput): {\n readonly chainState: ChainStateInput\n readonly validUntilBlock: number\n readonly nodeUrl?: string\n} {\n return {\n chainState: Object.freeze({ ...chainState }),\n validUntilBlock: chainState.blockNumber + TARGET_BLOCK_SLACK,\n ...(chainState.nodeUrl === undefined ? {} : { nodeUrl: chainState.nodeUrl }),\n }\n}\n\n/** @internal A message as it is submitted: Cap'n Proto packed. */\nexport function packed(message: Message): Uint8Array {\n return new Uint8Array(message.toPackedArrayBuffer())\n}\n\n/**\n * Flattening is what makes a signature verifiable by the chain: the engine turns a\n * Cap'n Proto message into the one canonical byte sequence the protocol signs over.\n * Signing the capnp bytes directly would produce a signature every node rejects,\n * because packing is not canonical.\n *\n * @internal\n */\nexport function flatten<T extends { flatten(): Uint8Array; free(): void }>(\n parse: () => T,\n what: string,\n): Uint8Array {\n let handle: T | undefined\n try {\n handle = parse()\n return handle.flatten()\n } catch (cause) {\n throw invalidArgument(`Could not encode the ${what} for signing.`, cause)\n } finally {\n handle?.free()\n }\n}\n","import { invalidArgument } from '../errors'\nimport type { GeeqFee } from '../types'\n\n/** The coin part of a fee never exceeds this many times `geeqNorm`, in pennies. */\nconst COIN_FEE_CAP = 10_000_000n\n\n/**\n * What the chain will charge for a transaction, worked out exactly as the node works it out\n * (geeq_node_core `wrappers/base.ts`, `calculateTransactionFee`):\n *\n * - **data** — `geeqNorm` pennies for every byte of the signed, flattened transaction, and\n * of its flattened payload when it has one;\n * - **coin** — a quarter of a percent of the amount sent, rounded down, and never more than\n * `geeqNorm × 10⁷` pennies. An attestation sends no amount, so it pays only for its data.\n *\n * `undefined` when the chain's `geeqNorm` is not known — the four numbers were supplied by\n * hand, or the chain does not publish it.\n *\n * @internal\n */\nexport function feeFor(bytes: number, amount: bigint, geeqNorm: bigint | undefined): GeeqFee | undefined {\n if (geeqNorm === undefined) return undefined\n if (typeof geeqNorm !== 'bigint' || geeqNorm < 0n) {\n throw invalidArgument('geeqNorm must be a bigint of zero or more, as the ledger holds it.')\n }\n\n const data = BigInt(bytes) * geeqNorm\n const cap = geeqNorm * COIN_FEE_CAP\n const coin = amount / 400n < cap ? amount / 400n : cap\n return Object.freeze({ total: data + coin, data, coin, bytes })\n}\n","import { blake3 } from '@noble/hashes/blake3'\nimport { Message } from 'capnp-ts'\nimport { UserValTx as CapnpUserValTx } from '../capnp/userValTx.capnp'\n\nimport { assertUint32 } from '../assert'\nimport { penniesToUint64 } from '../amount'\nimport { ACCOUNT_ID_BYTES, PUBLIC_KEY_BYTES, resolveAccountId } from '../crypto/account-id'\nimport type { AccountRef } from '../crypto/account-id'\nimport { toBase64 } from '../encoding/base64'\nimport { invalidArgument } from '../errors'\nimport { WasmUserValTx, WasmUserValTxData } from '../runtime/bindings'\nimport { assertReady, initGeeq } from '../runtime/init'\nimport type { CoinTransferTx, CoinTransferTxInput, GeeqKeypair } from '../types'\nimport {\n REF_HASH_BYTES,\n assertChainState,\n assertKeypair,\n flatten,\n packed,\n pinning,\n resolveChainState,\n} from './encode'\nimport { feeFor } from './fee'\n\n/**\n * Sign a built validation-layer transaction and work out the id the node files it under.\n * Every validation-layer transaction — a transfer, a proxy creation — ends this way.\n *\n * @internal\n */\nexport function signValidationTx(\n message: Message,\n tx: CapnpUserValTx,\n keypair: GeeqKeypair,\n what: string,\n): { transaction: string; transactionHash: Uint8Array; bytes: number } {\n // A signature is a union here rather than a plain field, so it has to be told it is\n // absent before it can be told what it is.\n tx.initSignature().setNone()\n tx.initEndorsements(0)\n\n // Signed over the signature-EXCLUDED flatten, which is what the node verifies against.\n const flattened = flatten(() => WasmUserValTxData.fromUserValTxCapnp(packed(message)), what)\n const signature = keypair.sign(flattened)\n tx.getSignature().initSome(signature.length)\n tx.getSignature().getSome().copyBuffer(signature)\n\n // The opposite of an attestation: the node identifies a validation-layer transaction by\n // the hash of its signature-EXCLUDED flatten (geeq_node_core's UVT wrapper overrides\n // computeRefHash with the no-signature form), and that is the value its uut_status\n // events carry. Taken from the finished message rather than reusing the preimage, so\n // it is computed exactly as the node computes it on receipt.\n const transactionHash = blake3(\n flatten(() => WasmUserValTxData.fromUserValTxCapnp(packed(message)), `signed ${what}`),\n { dkLen: REF_HASH_BYTES },\n )\n\n // The fee, though, charges for the flatten WITH the signature: the node's data fee asks\n // for that form whatever the transaction is identified by.\n const signed = flatten(() => WasmUserValTx.fromUserValTxCapnp(packed(message)), `signed ${what}`)\n\n return { transaction: toBase64(packed(message)), transactionHash, bytes: signed.length }\n}\n\n/**\n * Build and sign a coin transfer. Synchronous; requires a loaded engine.\n *\n * Unlike an attestation this is a **validation layer** transaction: it carries no\n * separate payload, so there is one base64 blob to submit rather than two, and it is\n * posted as type `uvt`.\n *\n * NFTs ride along in the same transaction, with coin: the chain's minimum transfer\n * applies even when the point is the NFTs.\n *\n * Offline — it opens no sockets and reads no ledger. It cannot check that the sender can\n * afford the transfer, that the amount clears the chain's minimum, or that it holds the\n * NFTs; all three need a ledger. {@link GeeqChain.createTransfer} does check them.\n */\nexport function createCoinTransferTxSync(input: CoinTransferTxInput): CoinTransferTx {\n assertReady('createCoinTransferTxSync')\n\n const { keypair } = input\n assertKeypair(keypair)\n\n const chainState = resolveChainState(input)\n const { chainNumber, blockNumber, nodeNumber, nonce } = chainState\n assertChainState(chainState)\n\n const receiver = resolveAccountId(input.to as AccountRef)\n if (toBase64(receiver) === toBase64(keypair.accountId)) {\n throw invalidArgument(\n 'to is the sending account. A transfer to yourself moves nothing and still spends ' +\n 'a nonce and a fee.',\n )\n }\n\n const pennies = input.amount\n if (typeof pennies !== 'bigint') {\n throw invalidArgument('amount must already be resolved to pennies as a bigint.')\n }\n if (pennies <= 0n) {\n throw invalidArgument(`amount must be greater than zero, received ${pennies} pennies.`)\n }\n\n const nfts = input.nfts ?? []\n for (const nft of nfts) {\n if (!(nft.id instanceof Uint8Array) || nft.id.length !== ACCOUNT_ID_BYTES) {\n throw invalidArgument(`An NFT id must be ${ACCOUNT_ID_BYTES} bytes.`)\n }\n assertUint32(nft.position, 'An NFT position')\n }\n if (new Set(nfts.map((nft) => toBase64(nft.id))).size !== nfts.length) {\n throw invalidArgument('The same NFT is listed twice, and the chain refuses a transfer that does that.')\n }\n\n const message = new Message()\n const tx = message.initRoot(CapnpUserValTx)\n\n const data = tx.initData()\n data.setChainNum(chainNumber)\n data.setBlockNum(blockNumber)\n data.setNodeNum(nodeNumber)\n\n const asset = data.initTx().initCoin().initTxType().initAsset()\n asset.setNonce(nonce)\n asset.initAmtCoin().setSome(penniesToUint64(pennies))\n // Both lists must exist even when empty, or the message is not well formed.\n asset.initTokenAssetSubgroups(0)\n const nftList = asset.initNftAssetSubgroups(nfts.length)\n nfts.forEach((nft, index) => {\n const entry = nftList.get(index)\n entry.setPosition(nft.position)\n const item = entry.initItem()\n item.initAcctNumApp(ACCOUNT_ID_BYTES)\n item.getAcctNumApp().copyBuffer(nft.id)\n })\n asset.initAcctNumRcv(ACCOUNT_ID_BYTES)\n asset.getAcctNumRcv().copyBuffer(receiver)\n asset.initPubKey(PUBLIC_KEY_BYTES)\n asset.getPubKey().copyBuffer(keypair.publicKey)\n\n const { transaction, transactionHash, bytes } = signValidationTx(message, tx, keypair, 'transfer')\n\n return Object.freeze({\n transaction,\n transactionHash,\n publicKey: keypair.publicKey,\n amount: pennies,\n nfts: Object.freeze(nfts.map((nft) => nft.id)),\n to: receiver,\n fee: feeFor(bytes, pennies, chainState.geeqNorm),\n ...pinning(chainState),\n })\n}\n\n/** Build and sign a coin transfer, loading the engine if needed. */\nexport async function createCoinTransferTx(\n input: CoinTransferTxInput,\n): Promise<CoinTransferTx> {\n await initGeeq()\n return createCoinTransferTxSync(input)\n}\n","import { Message } from 'capnp-ts'\nimport { UserValTx as CapnpUserValTx } from '../capnp/userValTx.capnp'\n\nimport { createWalletAddressSync } from '../address/wallet-address'\nimport { penniesToUint64 } from '../amount'\nimport { assertUint32 } from '../assert'\nimport { ACCOUNT_ID_BYTES, PUBLIC_KEY_BYTES } from '../crypto/account-id'\nimport { toBase64 } from '../encoding/base64'\nimport { invalidArgument } from '../errors'\nimport type { GeeqLedger } from '../ledger/geeq-ledger'\nimport { WasmIrnRecordType, wasmGenerateIrn } from '../runtime/bindings'\nimport { assertReady, initGeeq } from '../runtime/init'\nimport type { GeeqNftMintProxies, NftMintProxyTx, NftMintProxyTxInput } from '../types'\nimport { assertChainState, assertKeypair, pinning } from './encode'\nimport { feeFor } from './fee'\nimport { signValidationTx } from './transfer'\n\n/**\n * How many indexes past the last one found the search keeps going before it decides an\n * admin's remaining proxies were not derived from its key. Indexes are taken in order, so\n * a gap is only ever creations that never landed.\n */\nconst MAX_INDEX_GAP = 100\n\n/**\n * The id of an admin's `index`-th NFT mint proxy.\n *\n * Derived rather than random, exactly as the Geeq wallet derives it, so every proxy an\n * account made can be found again from its key alone. Requires a loaded engine.\n *\n * @internal\n */\nexport function nftMintProxyId(adminPublicKey: Uint8Array, index: number): Uint8Array {\n return wasmGenerateIrn(WasmIrnRecordType.ProxyNftMint, adminPublicKey, index)\n}\n\n/**\n * An admin's NFT mint proxies in `ledger`, each with its index, and the index the next\n * one takes. Requires a loaded engine.\n *\n * The ledger knows a proxy's admin but not its index, so the index is found by deriving\n * the admin's ids in order — 1, 2, 3… — until every proxy is matched.\n *\n * @internal\n */\nexport function nftMintProxiesIn(\n ledger: GeeqLedger,\n admin: { readonly publicKey: Uint8Array },\n): GeeqNftMintProxies {\n const owned = ledger.findProxyAccounts({ admin })\n const ids = new Set(owned.map((proxy) => toBase64(proxy.accountId)))\n\n const indexOf = new Map<string, number>()\n let index = 0\n let highest = 0\n while (indexOf.size < ids.size && index - highest < MAX_INDEX_GAP) {\n index += 1\n const id = toBase64(nftMintProxyId(admin.publicKey, index))\n if (ids.has(id)) {\n indexOf.set(id, index)\n highest = index\n }\n }\n\n const proxies = owned\n .map((proxy) =>\n Object.freeze({\n ...proxy,\n index: indexOf.get(toBase64(proxy.accountId)),\n address: createWalletAddressSync({\n accountId: proxy.accountId,\n chainNumber: ledger.chainNumber,\n recordType: 'proxy-nft-mint',\n }),\n }),\n )\n .sort((a, b) => (a.index ?? Number.MAX_SAFE_INTEGER) - (b.index ?? Number.MAX_SAFE_INTEGER))\n\n return Object.freeze({ proxies, nextIndex: highest + 1 })\n}\n\n/**\n * Build and sign a transaction that creates an NFT mint proxy. Synchronous; requires a\n * loaded engine.\n *\n * A proxy is a record of its own on the chain. It holds coin, carries its own nonce, and\n * names one admin — the signer here — who is the only key that can mint NFTs through it.\n * The signer pays `amount` onto it, plus the fee.\n *\n * Offline: it cannot check that the index is unused or that the signer can afford it.\n * {@link GeeqChain.createNftMintProxy} does both.\n */\nexport function createNftMintProxyTxSync(input: NftMintProxyTxInput): NftMintProxyTx {\n assertReady('createNftMintProxyTxSync')\n\n const { keypair, index, amount, chainState } = input\n assertKeypair(keypair)\n assertUint32(index, 'index')\n if (index === 0) {\n throw invalidArgument(\"index counts from 1, as the Geeq wallet counts an admin's proxies.\")\n }\n if (typeof amount !== 'bigint' || amount <= 0n) {\n throw invalidArgument('amount must be a number of pennies greater than zero, as a bigint.')\n }\n assertChainState(chainState)\n const { chainNumber, blockNumber, nodeNumber, nonce } = chainState\n\n const message = new Message()\n const tx = message.initRoot(CapnpUserValTx)\n\n const data = tx.initData()\n data.setChainNum(chainNumber)\n data.setBlockNum(blockNumber)\n data.setNodeNum(nodeNumber)\n\n // The nonce and the payer's key sit on the proxy creation itself, as they do on a coin\n // transfer's asset arm. The new record's id goes in the receiver's slot.\n const proxyAccountId = nftMintProxyId(keypair.publicKey, index)\n const create = data.initTx().initProxyCreate()\n create.setNonce(nonce)\n create.setAmtCoin(penniesToUint64(amount))\n create.initAcctNumRcv(ACCOUNT_ID_BYTES)\n create.getAcctNumRcv().copyBuffer(proxyAccountId)\n create.initPubKey(PUBLIC_KEY_BYTES)\n create.getPubKey().copyBuffer(keypair.publicKey)\n\n // The admin is named by account id. A mint through the proxy is checked against it.\n const nftMint = create.initTxType().initNftMint()\n nftMint.initAcctNumAdminUser(ACCOUNT_ID_BYTES)\n nftMint.getAcctNumAdminUser().copyBuffer(keypair.accountId)\n\n const { transaction, transactionHash, bytes } = signValidationTx(message, tx, keypair, 'proxy creation')\n\n return Object.freeze({\n transaction,\n transactionHash,\n publicKey: keypair.publicKey,\n amount,\n index,\n proxyAccountId,\n proxyAddress: createWalletAddressSync({\n accountId: proxyAccountId,\n chainNumber,\n recordType: 'proxy-nft-mint',\n }),\n // The funding counts as the amount sent, so it carries the coin part of the fee too.\n fee: feeFor(bytes, amount, chainState.geeqNorm),\n ...pinning(chainState),\n })\n}\n\n/** Build and sign a proxy creation, loading the engine if needed. */\nexport async function createNftMintProxyTx(input: NftMintProxyTxInput): Promise<NftMintProxyTx> {\n await initGeeq()\n return createNftMintProxyTxSync(input)\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nexport const _capnpFileId = \"ef4a658e8f588895\";\nexport class MetadataEntry extends __S {\n static readonly _capnp = { displayName: \"MetadataEntry\", id: \"8b5484c573e430cb\", size: new __O(8, 1) };\n getPosition(): number { return __S.getUint8(0, this); }\n setPosition(value: number): void { __S.setUint8(0, value, this); }\n adoptItem(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownItem(): capnp.Orphan<capnp.Data> { return __S.disown(this.getItem()); }\n getItem(): capnp.Data { return __S.getData(0, this); }\n hasItem(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initItem(length: number): capnp.Data { return __S.initData(0, length, this); }\n setItem(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"MetadataEntry_\" + super.toString(); }\n}\nexport class AttestationSubgroupData extends __S {\n static readonly _capnp = { displayName: \"AttestationSubgroupData\", id: \"ed65040cefda9a59\", size: new __O(8, 4) };\n static _Metadata: capnp.ListCtor<MetadataEntry>;\n adoptAttestHash(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAttestHash(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAttestHash()); }\n getAttestHash(): capnp.Data { return __S.getData(0, this); }\n hasAttestHash(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestHash(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAttestHash(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptMetadata(value: capnp.Orphan<capnp.List<MetadataEntry>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownMetadata(): capnp.Orphan<capnp.List<MetadataEntry>> { return __S.disown(this.getMetadata()); }\n getMetadata(): capnp.List<MetadataEntry> { return __S.getList(1, AttestationSubgroupData._Metadata, this); }\n hasMetadata(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initMetadata(length: number): capnp.List<MetadataEntry> { return __S.initList(1, AttestationSubgroupData._Metadata, length, this); }\n setMetadata(value: capnp.List<MetadataEntry>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n getChainNum(): number { return __S.getUint32(0, this); }\n setChainNum(value: number): void { __S.setUint32(0, value, this); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(2, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(2, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(3, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(3, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(3, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(3, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(3, this)); }\n toString(): string { return \"AttestationSubgroupData_\" + super.toString(); }\n}\nexport class AttestationSubgroup extends __S {\n static readonly _capnp = { displayName: \"AttestationSubgroup\", id: \"f70f4229940d7798\", size: new __O(0, 2) };\n adoptData(value: capnp.Orphan<AttestationSubgroupData>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownData(): capnp.Orphan<AttestationSubgroupData> { return __S.disown(this.getData()); }\n getData(): AttestationSubgroupData { return __S.getStruct(0, AttestationSubgroupData, this); }\n hasData(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initData(): AttestationSubgroupData { return __S.initStructAt(0, AttestationSubgroupData, this); }\n setData(value: AttestationSubgroupData): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptSignature(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownSignature(): capnp.Orphan<capnp.Data> { return __S.disown(this.getSignature()); }\n getSignature(): capnp.Data { return __S.getData(1, this); }\n hasSignature(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initSignature(length: number): capnp.Data { return __S.initData(1, length, this); }\n setSignature(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AttestationSubgroup_\" + super.toString(); }\n}\nexport class AppAttestCommitPayload extends __S {\n static readonly _capnp = { displayName: \"AppAttestCommitPayload\", id: \"bdcc1e74849e9a49\", size: new __O(0, 1) };\n adoptAttestationSubgroup(value: capnp.Orphan<AttestationSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAttestationSubgroup(): capnp.Orphan<AttestationSubgroup> { return __S.disown(this.getAttestationSubgroup()); }\n getAttestationSubgroup(): AttestationSubgroup { return __S.getStruct(0, AttestationSubgroup, this); }\n hasAttestationSubgroup(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestationSubgroup(): AttestationSubgroup { return __S.initStructAt(0, AttestationSubgroup, this); }\n setAttestationSubgroup(value: AttestationSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"AppAttestCommitPayload_\" + super.toString(); }\n}\nexport class AppCounterpartyPayload extends __S {\n static readonly _capnp = { displayName: \"AppCounterpartyPayload\", id: \"82092f0921a7413a\", size: new __O(0, 2) };\n adoptAttestationSubgroup(value: capnp.Orphan<AttestationSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAttestationSubgroup(): capnp.Orphan<AttestationSubgroup> { return __S.disown(this.getAttestationSubgroup()); }\n getAttestationSubgroup(): AttestationSubgroup { return __S.getStruct(0, AttestationSubgroup, this); }\n hasAttestationSubgroup(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestationSubgroup(): AttestationSubgroup { return __S.initStructAt(0, AttestationSubgroup, this); }\n setAttestationSubgroup(value: AttestationSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumApp(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumApp(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumApp()); }\n getAcctNumApp(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumApp(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumApp(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumApp(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AppCounterpartyPayload_\" + super.toString(); }\n}\nexport class AppDceCommitPayload extends __S {\n static readonly _capnp = { displayName: \"AppDceCommitPayload\", id: \"8feb174963e246c4\", size: new __O(0, 2) };\n adoptAttestationSubgroup(value: capnp.Orphan<AttestationSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAttestationSubgroup(): capnp.Orphan<AttestationSubgroup> { return __S.disown(this.getAttestationSubgroup()); }\n getAttestationSubgroup(): AttestationSubgroup { return __S.getStruct(0, AttestationSubgroup, this); }\n hasAttestationSubgroup(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestationSubgroup(): AttestationSubgroup { return __S.initStructAt(0, AttestationSubgroup, this); }\n setAttestationSubgroup(value: AttestationSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumApp(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumApp(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumApp()); }\n getAcctNumApp(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumApp(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumApp(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumApp(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AppDceCommitPayload_\" + super.toString(); }\n}\nexport class AppNftMintPayload extends __S {\n static readonly _capnp = { displayName: \"AppNftMintPayload\", id: \"e88ff75a9b0a011d\", size: new __O(0, 2) };\n adoptAttestationSubgroup(value: capnp.Orphan<AttestationSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAttestationSubgroup(): capnp.Orphan<AttestationSubgroup> { return __S.disown(this.getAttestationSubgroup()); }\n getAttestationSubgroup(): AttestationSubgroup { return __S.getStruct(0, AttestationSubgroup, this); }\n hasAttestationSubgroup(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestationSubgroup(): AttestationSubgroup { return __S.initStructAt(0, AttestationSubgroup, this); }\n setAttestationSubgroup(value: AttestationSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumApp(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumApp(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumApp()); }\n getAcctNumApp(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumApp(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumApp(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumApp(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AppNftMintPayload_\" + super.toString(); }\n}\nexport class AppStackablePayload extends __S {\n static readonly _capnp = { displayName: \"AppStackablePayload\", id: \"ec61dbbf2d17ba3f\", size: new __O(0, 2) };\n adoptAttestationSubgroup(value: capnp.Orphan<AttestationSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAttestationSubgroup(): capnp.Orphan<AttestationSubgroup> { return __S.disown(this.getAttestationSubgroup()); }\n getAttestationSubgroup(): AttestationSubgroup { return __S.getStruct(0, AttestationSubgroup, this); }\n hasAttestationSubgroup(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestationSubgroup(): AttestationSubgroup { return __S.initStructAt(0, AttestationSubgroup, this); }\n setAttestationSubgroup(value: AttestationSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumApp(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumApp(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumApp()); }\n getAcctNumApp(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumApp(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumApp(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumApp(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AppStackablePayload_\" + super.toString(); }\n}\nexport enum Payload_TxType_Which {\n ATTEST_COMMIT = 3,\n COUNTERPARTY = 0,\n DCE_COMMIT = 1,\n NFT_MINT = 2,\n STACKABLE = 4\n}\nexport class Payload_TxType extends __S {\n static readonly ATTEST_COMMIT = Payload_TxType_Which.ATTEST_COMMIT;\n static readonly COUNTERPARTY = Payload_TxType_Which.COUNTERPARTY;\n static readonly DCE_COMMIT = Payload_TxType_Which.DCE_COMMIT;\n static readonly NFT_MINT = Payload_TxType_Which.NFT_MINT;\n static readonly STACKABLE = Payload_TxType_Which.STACKABLE;\n static readonly _capnp = { displayName: \"txType\", id: \"c6f172bb724cb0ad\", size: new __O(8, 1) };\n adoptAttestCommit(value: capnp.Orphan<AppAttestCommitPayload>): void {\n __S.setUint16(0, 3, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAttestCommit(): capnp.Orphan<AppAttestCommitPayload> { return __S.disown(this.getAttestCommit()); }\n getAttestCommit(): AppAttestCommitPayload {\n __S.testWhich(\"attestCommit\", __S.getUint16(0, this), 3, this);\n return __S.getStruct(0, AppAttestCommitPayload, this);\n }\n hasAttestCommit(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestCommit(): AppAttestCommitPayload {\n __S.setUint16(0, 3, this);\n return __S.initStructAt(0, AppAttestCommitPayload, this);\n }\n isAttestCommit(): boolean { return __S.getUint16(0, this) === 3; }\n setAttestCommit(value: AppAttestCommitPayload): void {\n __S.setUint16(0, 3, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptCounterparty(value: capnp.Orphan<AppCounterpartyPayload>): void {\n __S.setUint16(0, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownCounterparty(): capnp.Orphan<AppCounterpartyPayload> { return __S.disown(this.getCounterparty()); }\n getCounterparty(): AppCounterpartyPayload {\n __S.testWhich(\"counterparty\", __S.getUint16(0, this), 0, this);\n return __S.getStruct(0, AppCounterpartyPayload, this);\n }\n hasCounterparty(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initCounterparty(): AppCounterpartyPayload {\n __S.setUint16(0, 0, this);\n return __S.initStructAt(0, AppCounterpartyPayload, this);\n }\n isCounterparty(): boolean { return __S.getUint16(0, this) === 0; }\n setCounterparty(value: AppCounterpartyPayload): void {\n __S.setUint16(0, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptDceCommit(value: capnp.Orphan<AppDceCommitPayload>): void {\n __S.setUint16(0, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownDceCommit(): capnp.Orphan<AppDceCommitPayload> { return __S.disown(this.getDceCommit()); }\n getDceCommit(): AppDceCommitPayload {\n __S.testWhich(\"dceCommit\", __S.getUint16(0, this), 1, this);\n return __S.getStruct(0, AppDceCommitPayload, this);\n }\n hasDceCommit(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initDceCommit(): AppDceCommitPayload {\n __S.setUint16(0, 1, this);\n return __S.initStructAt(0, AppDceCommitPayload, this);\n }\n isDceCommit(): boolean { return __S.getUint16(0, this) === 1; }\n setDceCommit(value: AppDceCommitPayload): void {\n __S.setUint16(0, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptNftMint(value: capnp.Orphan<AppNftMintPayload>): void {\n __S.setUint16(0, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownNftMint(): capnp.Orphan<AppNftMintPayload> { return __S.disown(this.getNftMint()); }\n getNftMint(): AppNftMintPayload {\n __S.testWhich(\"nftMint\", __S.getUint16(0, this), 2, this);\n return __S.getStruct(0, AppNftMintPayload, this);\n }\n hasNftMint(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNftMint(): AppNftMintPayload {\n __S.setUint16(0, 2, this);\n return __S.initStructAt(0, AppNftMintPayload, this);\n }\n isNftMint(): boolean { return __S.getUint16(0, this) === 2; }\n setNftMint(value: AppNftMintPayload): void {\n __S.setUint16(0, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptStackable(value: capnp.Orphan<AppStackablePayload>): void {\n __S.setUint16(0, 4, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownStackable(): capnp.Orphan<AppStackablePayload> { return __S.disown(this.getStackable()); }\n getStackable(): AppStackablePayload {\n __S.testWhich(\"stackable\", __S.getUint16(0, this), 4, this);\n return __S.getStruct(0, AppStackablePayload, this);\n }\n hasStackable(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initStackable(): AppStackablePayload {\n __S.setUint16(0, 4, this);\n return __S.initStructAt(0, AppStackablePayload, this);\n }\n isStackable(): boolean { return __S.getUint16(0, this) === 4; }\n setStackable(value: AppStackablePayload): void {\n __S.setUint16(0, 4, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"Payload_TxType_\" + super.toString(); }\n which(): Payload_TxType_Which { return __S.getUint16(0, this); }\n}\nexport class Payload extends __S {\n static readonly _capnp = { displayName: \"Payload\", id: \"ce38033936892306\", size: new __O(8, 1) };\n getTxType(): Payload_TxType { return __S.getAs(Payload_TxType, this); }\n initTxType(): Payload_TxType { return __S.getAs(Payload_TxType, this); }\n toString(): string { return \"Payload_\" + super.toString(); }\n}\nAttestationSubgroupData._Metadata = capnp.CompositeList(MetadataEntry);\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nexport const _capnpFileId = \"85d75e8c65739c64\";\nexport enum AppAttestCommitTx_AcctNumVal_Which {\n SOME = 0,\n NONE = 1\n}\nexport class AppAttestCommitTx_AcctNumVal extends __S {\n static readonly SOME = AppAttestCommitTx_AcctNumVal_Which.SOME;\n static readonly NONE = AppAttestCommitTx_AcctNumVal_Which.NONE;\n static readonly _capnp = { displayName: \"acctNumVal\", id: \"e94c5ba4455d57c5\", size: new __O(8, 1) };\n adoptSome(value: capnp.Orphan<capnp.Data>): void {\n __S.setUint16(0, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownSome(): capnp.Orphan<capnp.Data> { return __S.disown(this.getSome()); }\n getSome(): capnp.Data {\n __S.testWhich(\"some\", __S.getUint16(0, this), 0, this);\n return __S.getData(0, this);\n }\n hasSome(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initSome(length: number): capnp.Data {\n __S.setUint16(0, 0, this);\n return __S.initData(0, length, this);\n }\n isSome(): boolean { return __S.getUint16(0, this) === 0; }\n setSome(value: capnp.Data): void {\n __S.setUint16(0, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n isNone(): boolean { return __S.getUint16(0, this) === 1; }\n setNone(): void { __S.setUint16(0, 1, this); }\n toString(): string { return \"AppAttestCommitTx_AcctNumVal_\" + super.toString(); }\n which(): AppAttestCommitTx_AcctNumVal_Which { return __S.getUint16(0, this); }\n}\nexport class AppAttestCommitTx extends __S {\n static readonly _capnp = { displayName: \"AppAttestCommitTx\", id: \"e580d25d1b6ba36f\", size: new __O(8, 1) };\n getAcctNumVal(): AppAttestCommitTx_AcctNumVal { return __S.getAs(AppAttestCommitTx_AcctNumVal, this); }\n initAcctNumVal(): AppAttestCommitTx_AcctNumVal { return __S.getAs(AppAttestCommitTx_AcctNumVal, this); }\n toString(): string { return \"AppAttestCommitTx_\" + super.toString(); }\n}\nexport class AppCounterpartyTx extends __S {\n static readonly _capnp = { displayName: \"AppCounterpartyTx\", id: \"bb1813a66504f16d\", size: new __O(8, 2) };\n getAmtCoin(): capnp.Uint64 { return __S.getUint64(0, this); }\n setAmtCoin(value: capnp.Uint64): void { __S.setUint64(0, value, this); }\n adoptAcctNumApp(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumApp(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumApp()); }\n getAcctNumApp(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumApp(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumApp(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumApp(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AppCounterpartyTx_\" + super.toString(); }\n}\nexport class AppDceCommitTx extends __S {\n static readonly _capnp = { displayName: \"AppDceCommitTx\", id: \"f72c62900362dc69\", size: new __O(0, 2) };\n adoptAcctNumApp(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumApp(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumApp()); }\n getAcctNumApp(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumApp(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumApp(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumApp(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AppDceCommitTx_\" + super.toString(); }\n}\nexport class AppNftMintTx extends __S {\n static readonly _capnp = { displayName: \"AppNftMintTx\", id: \"f6ade2b4b5066495\", size: new __O(8, 3) };\n getAmtCoin(): capnp.Uint64 { return __S.getUint64(0, this); }\n setAmtCoin(value: capnp.Uint64): void { __S.setUint64(0, value, this); }\n adoptAcctNumApp(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumApp(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumApp()); }\n getAcctNumApp(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumApp(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumApp(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumApp(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumRcv(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumRcv()); }\n getAcctNumRcv(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumRcv(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumRcv(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumRcv(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(2, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(2, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"AppNftMintTx_\" + super.toString(); }\n}\nexport class AppStackableTx extends __S {\n static readonly _capnp = { displayName: \"AppStackableTx\", id: \"d879b48be3b5969e\", size: new __O(0, 1) };\n adoptAcctNumApp(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAcctNumApp(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumApp()); }\n getAcctNumApp(): capnp.Data { return __S.getData(0, this); }\n hasAcctNumApp(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAcctNumApp(length: number): capnp.Data { return __S.initData(0, length, this); }\n setAcctNumApp(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"AppStackableTx_\" + super.toString(); }\n}\nexport enum UserAppTxData_TxType_Which {\n ATTEST_COMMIT = 3,\n COUNTERPARTY = 0,\n DCE_COMMIT = 1,\n NFT_MINT = 2,\n STACKABLE = 4\n}\nexport class UserAppTxData_TxType extends __S {\n static readonly ATTEST_COMMIT = UserAppTxData_TxType_Which.ATTEST_COMMIT;\n static readonly COUNTERPARTY = UserAppTxData_TxType_Which.COUNTERPARTY;\n static readonly DCE_COMMIT = UserAppTxData_TxType_Which.DCE_COMMIT;\n static readonly NFT_MINT = UserAppTxData_TxType_Which.NFT_MINT;\n static readonly STACKABLE = UserAppTxData_TxType_Which.STACKABLE;\n static readonly _capnp = { displayName: \"txType\", id: \"bfb08803f1d013b0\", size: new __O(24, 3) };\n adoptAttestCommit(value: capnp.Orphan<AppAttestCommitTx>): void {\n __S.setUint16(16, 3, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAttestCommit(): capnp.Orphan<AppAttestCommitTx> { return __S.disown(this.getAttestCommit()); }\n getAttestCommit(): AppAttestCommitTx {\n __S.testWhich(\"attestCommit\", __S.getUint16(16, this), 3, this);\n return __S.getStruct(0, AppAttestCommitTx, this);\n }\n hasAttestCommit(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestCommit(): AppAttestCommitTx {\n __S.setUint16(16, 3, this);\n return __S.initStructAt(0, AppAttestCommitTx, this);\n }\n isAttestCommit(): boolean { return __S.getUint16(16, this) === 3; }\n setAttestCommit(value: AppAttestCommitTx): void {\n __S.setUint16(16, 3, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptCounterparty(value: capnp.Orphan<AppCounterpartyTx>): void {\n __S.setUint16(16, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownCounterparty(): capnp.Orphan<AppCounterpartyTx> { return __S.disown(this.getCounterparty()); }\n getCounterparty(): AppCounterpartyTx {\n __S.testWhich(\"counterparty\", __S.getUint16(16, this), 0, this);\n return __S.getStruct(0, AppCounterpartyTx, this);\n }\n hasCounterparty(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initCounterparty(): AppCounterpartyTx {\n __S.setUint16(16, 0, this);\n return __S.initStructAt(0, AppCounterpartyTx, this);\n }\n isCounterparty(): boolean { return __S.getUint16(16, this) === 0; }\n setCounterparty(value: AppCounterpartyTx): void {\n __S.setUint16(16, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptDceCommit(value: capnp.Orphan<AppDceCommitTx>): void {\n __S.setUint16(16, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownDceCommit(): capnp.Orphan<AppDceCommitTx> { return __S.disown(this.getDceCommit()); }\n getDceCommit(): AppDceCommitTx {\n __S.testWhich(\"dceCommit\", __S.getUint16(16, this), 1, this);\n return __S.getStruct(0, AppDceCommitTx, this);\n }\n hasDceCommit(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initDceCommit(): AppDceCommitTx {\n __S.setUint16(16, 1, this);\n return __S.initStructAt(0, AppDceCommitTx, this);\n }\n isDceCommit(): boolean { return __S.getUint16(16, this) === 1; }\n setDceCommit(value: AppDceCommitTx): void {\n __S.setUint16(16, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptNftMint(value: capnp.Orphan<AppNftMintTx>): void {\n __S.setUint16(16, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownNftMint(): capnp.Orphan<AppNftMintTx> { return __S.disown(this.getNftMint()); }\n getNftMint(): AppNftMintTx {\n __S.testWhich(\"nftMint\", __S.getUint16(16, this), 2, this);\n return __S.getStruct(0, AppNftMintTx, this);\n }\n hasNftMint(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNftMint(): AppNftMintTx {\n __S.setUint16(16, 2, this);\n return __S.initStructAt(0, AppNftMintTx, this);\n }\n isNftMint(): boolean { return __S.getUint16(16, this) === 2; }\n setNftMint(value: AppNftMintTx): void {\n __S.setUint16(16, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptStackable(value: capnp.Orphan<AppStackableTx>): void {\n __S.setUint16(16, 4, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownStackable(): capnp.Orphan<AppStackableTx> { return __S.disown(this.getStackable()); }\n getStackable(): AppStackableTx {\n __S.testWhich(\"stackable\", __S.getUint16(16, this), 4, this);\n return __S.getStruct(0, AppStackableTx, this);\n }\n hasStackable(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initStackable(): AppStackableTx {\n __S.setUint16(16, 4, this);\n return __S.initStructAt(0, AppStackableTx, this);\n }\n isStackable(): boolean { return __S.getUint16(16, this) === 4; }\n setStackable(value: AppStackableTx): void {\n __S.setUint16(16, 4, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"UserAppTxData_TxType_\" + super.toString(); }\n which(): UserAppTxData_TxType_Which { return __S.getUint16(16, this); }\n}\nexport class UserAppTxData extends __S {\n static readonly _capnp = { displayName: \"UserAppTxData\", id: \"98975903ffaee6bc\", size: new __O(24, 3) };\n getTxType(): UserAppTxData_TxType { return __S.getAs(UserAppTxData_TxType, this); }\n initTxType(): UserAppTxData_TxType { return __S.getAs(UserAppTxData_TxType, this); }\n getBlockNum(): number { return __S.getUint32(0, this); }\n setBlockNum(value: number): void { __S.setUint32(0, value, this); }\n getChainNum(): number { return __S.getUint32(4, this); }\n setChainNum(value: number): void { __S.setUint32(4, value, this); }\n getNodeNum(): number { return __S.getUint32(8, this); }\n setNodeNum(value: number): void { __S.setUint32(8, value, this); }\n getNonce(): number { return __S.getUint32(12, this); }\n setNonce(value: number): void { __S.setUint32(12, value, this); }\n adoptRefHashPayload(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownRefHashPayload(): capnp.Orphan<capnp.Data> { return __S.disown(this.getRefHashPayload()); }\n getRefHashPayload(): capnp.Data { return __S.getData(1, this); }\n hasRefHashPayload(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initRefHashPayload(length: number): capnp.Data { return __S.initData(1, length, this); }\n setRefHashPayload(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptPubKey(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownPubKey(): capnp.Orphan<capnp.Data> { return __S.disown(this.getPubKey()); }\n getPubKey(): capnp.Data { return __S.getData(2, this); }\n hasPubKey(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initPubKey(length: number): capnp.Data { return __S.initData(2, length, this); }\n setPubKey(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"UserAppTxData_\" + super.toString(); }\n}\nexport class UserAppTx extends __S {\n static readonly _capnp = { displayName: \"UserAppTx\", id: \"acade1a8415efce2\", size: new __O(0, 2) };\n adoptData(value: capnp.Orphan<UserAppTxData>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownData(): capnp.Orphan<UserAppTxData> { return __S.disown(this.getData()); }\n getData(): UserAppTxData { return __S.getStruct(0, UserAppTxData, this); }\n hasData(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initData(): UserAppTxData { return __S.initStructAt(0, UserAppTxData, this); }\n setData(value: UserAppTxData): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptSignature(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownSignature(): capnp.Orphan<capnp.Data> { return __S.disown(this.getSignature()); }\n getSignature(): capnp.Data { return __S.getData(1, this); }\n hasSignature(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initSignature(length: number): capnp.Data { return __S.initData(1, length, this); }\n setSignature(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"UserAppTx_\" + super.toString(); }\n}\n","import { invalidArgument, metadataTooLarge } from '../errors'\nimport type { GeeqMetadataLimits } from '../types'\n\n/** Labels are kept in the order given and encoded as UTF-8. */\nexport function encodeMetadata(\n metadata: readonly (string | Uint8Array)[] | undefined,\n): Uint8Array[] {\n if (metadata === undefined) return []\n const encoder = new TextEncoder()\n return metadata.map((item, index) => {\n if (typeof item === 'string') return encoder.encode(item)\n if (item instanceof Uint8Array) return item\n throw invalidArgument(`metadata[${index}] must be a string or a Uint8Array.`)\n })\n}\n\n/**\n * Check encoded metadata against the limits the chain publishes in its ledger.\n *\n * The node enforces both of these at submit time, so catching them here turns an\n * opaque HTTP 400 into a message naming the entry and the limit — and does it before\n * anything is signed. Skipped entirely when the ledger carries no such parameters,\n * because a missing parameter is a schema difference, not a caller error.\n */\nexport function assertMetadataWithinLimits(\n encoded: readonly Uint8Array[],\n limits: GeeqMetadataLimits | undefined,\n context: { readonly chainNumber: number; readonly blockNumber: number },\n): void {\n if (limits === undefined) return\n\n if (encoded.length > limits.maxEntries) {\n throw metadataTooLarge(\n `metadata has ${encoded.length} entries but chain ${context.chainNumber} allows at ` +\n `most ${limits.maxEntries} (parameter metadataVarNum, read at block ` +\n `${context.blockNumber}). Remove ${encoded.length - limits.maxEntries}.`,\n )\n }\n\n for (let index = 0; index < encoded.length; index += 1) {\n const entry = encoded[index] as Uint8Array\n if (entry.length > limits.maxBytesPerEntry) {\n throw metadataTooLarge(\n `metadata[${index}] is ${entry.length} bytes but chain ${context.chainNumber} ` +\n `allows at most ${limits.maxBytesPerEntry} bytes per entry (parameter ` +\n `metadataVarBytes, read at block ${context.blockNumber}). Characters outside ` +\n 'ASCII cost more than one byte each once encoded as UTF-8, so shorten it.',\n )\n }\n }\n}\n\n/** What one metadata entry costs, and whether the chain would take it. */\nexport interface MetadataEntryReport {\n readonly index: number\n /** Length once encoded as UTF-8, which is what the limit is measured in. */\n readonly bytes: number\n readonly overLimit: boolean\n}\n\nexport interface MetadataReport {\n readonly entries: readonly MetadataEntryReport[]\n readonly count: number\n readonly tooManyEntries: boolean\n readonly withinLimits: boolean\n /** Undefined when the chain publishes no limits, in which case nothing is checked. */\n readonly limits: GeeqMetadataLimits | undefined\n}\n\n/**\n * Measure metadata against a chain's limits without throwing.\n *\n * The same rules {@link assertMetadataWithinLimits} enforces, reported rather than\n * raised, so a UI can colour a field as someone types instead of waiting for a failed\n * build. Byte lengths are UTF-8, which is the only measure that matters here — a label\n * of ten emoji is forty bytes, and counting characters would call it short.\n */\nexport function inspectMetadata(\n metadata: readonly (string | Uint8Array)[] | undefined,\n limits: GeeqMetadataLimits | undefined,\n): MetadataReport {\n const encoded = encodeMetadata(metadata)\n const maxBytes = limits?.maxBytesPerEntry\n const entries = encoded.map((entry, index) =>\n Object.freeze({\n index,\n bytes: entry.length,\n overLimit: maxBytes !== undefined && entry.length > maxBytes,\n }),\n )\n const tooManyEntries = limits !== undefined && encoded.length > limits.maxEntries\n\n return Object.freeze({\n entries: Object.freeze(entries),\n count: encoded.length,\n tooManyEntries,\n withinLimits: !tooManyEntries && !entries.some((entry) => entry.overLimit),\n limits,\n })\n}\n","import { blake3 } from '@noble/hashes/blake3'\n\nimport { invalidArgument } from '../errors'\n\n/** The protocol attests a 32-byte BLAKE3 digest and rejects any other length. */\nexport const ATTEST_HASH_BYTES = 32\n\n/**\n * Anything that can be attested.\n *\n * A `File` from an `<input type=\"file\">` is a `Blob`, so it can be passed straight in —\n * there is no need to read it into a buffer first. A string is encoded as UTF-8.\n */\nexport type GeeqContent = Uint8Array | ArrayBuffer | Blob | string\n\n/** Read any accepted content into bytes. Async only because a `Blob` requires it. */\nexport async function readContent(content: GeeqContent): Promise<Uint8Array> {\n if (content instanceof Uint8Array) return content\n if (typeof content === 'string') return new TextEncoder().encode(content)\n if (content instanceof ArrayBuffer) return new Uint8Array(content)\n if (typeof Blob !== 'undefined' && content instanceof Blob) {\n return new Uint8Array(await content.arrayBuffer())\n }\n throw invalidArgument(\n 'content must be a string, a Uint8Array, an ArrayBuffer, or a Blob (which includes ' +\n 'a File from a file input).',\n )\n}\n\n/**\n * The digest that goes on chain.\n *\n * The content itself never leaves the device; only this does. Pure BLAKE3, so it needs\n * no engine and no network and works before {@link initGeeq} has resolved — which is\n * what lets a UI show the digest as someone types.\n *\n * Use this rather than calling a hash library directly: the length and the algorithm are\n * both fixed by the protocol, and a digest of any other width is rejected when the\n * transaction is built.\n */\nexport function attestHashOfSync(content: Uint8Array | ArrayBuffer | string): Uint8Array {\n if (typeof Blob !== 'undefined' && content instanceof Blob) {\n throw invalidArgument(\n 'attestHashOfSync cannot read a Blob. Use attestHashOf, which awaits it.',\n )\n }\n const bytes =\n content instanceof Uint8Array\n ? content\n : typeof content === 'string'\n ? new TextEncoder().encode(content)\n : content instanceof ArrayBuffer\n ? new Uint8Array(content)\n : undefined\n\n if (bytes === undefined) {\n throw invalidArgument(\n 'content must be a string, a Uint8Array or an ArrayBuffer. For a Blob or a File, ' +\n 'use attestHashOf.',\n )\n }\n return blake3(bytes, { dkLen: ATTEST_HASH_BYTES })\n}\n\n/** {@link attestHashOfSync}, also accepting a `Blob` or a `File`. */\nexport async function attestHashOf(content: GeeqContent): Promise<Uint8Array> {\n return blake3(await readContent(content), { dkLen: ATTEST_HASH_BYTES })\n}\n\n/** Reject a digest the chain would refuse, naming what was wrong. */\nexport function assertAttestHash(attestHash: unknown): Uint8Array {\n if (!(attestHash instanceof Uint8Array)) {\n throw invalidArgument('attestHash must be a Uint8Array.')\n }\n if (attestHash.length !== ATTEST_HASH_BYTES) {\n throw invalidArgument(\n `attestHash must be ${ATTEST_HASH_BYTES} bytes, received ${attestHash.length}. ` +\n 'Use attestHashOf() to produce one.',\n )\n }\n return attestHash\n}\n","import { blake3 } from '@noble/hashes/blake3'\nimport { Message } from 'capnp-ts'\nimport {\n AttestationSubgroup as CapnpAttestationSubgroup,\n Payload as CapnpPayload,\n} from '../capnp/payload.capnp'\nimport { UserAppTx as CapnpUserAppTx } from '../capnp/userAppTx.capnp'\n\nimport { toBase64 } from '../encoding/base64'\nimport { assertMetadataWithinLimits, encodeMetadata } from './metadata'\nimport { ATTEST_HASH_BYTES, assertAttestHash } from './content'\nimport {\n REF_HASH_BYTES,\n assertChainState,\n assertKeypair,\n flatten,\n packed,\n pinning,\n resolveChainState,\n} from './encode'\nimport { feeFor } from './fee'\nimport {\n WasmAttestationSubgroupData,\n WasmPayload,\n WasmUserAppTx,\n WasmUserAppTxData,\n} from '../runtime/bindings'\nimport { assertReady, initGeeq } from '../runtime/init'\nimport { ACCOUNT_ID_BYTES, PUBLIC_KEY_BYTES } from '../crypto/account-id'\nimport type { AttestationTx, AttestationTxInput, GeeqKeypair } from '../types'\n\n/**\n * Build and sign an attestation subgroup: a hash, its labels, and the account vouching\n * for them. An attestation and an NFT mint carry the same subgroup; it names the signer's\n * own account in one and the minting proxy in the other.\n *\n * Also returns the signature-excluded flatten — what was signed, and what an NFT's id is\n * the hash of.\n *\n * @internal\n */\nexport function signAttestationSubgroup(input: {\n readonly keypair: GeeqKeypair\n readonly attestHash: Uint8Array\n readonly metadata: readonly Uint8Array[]\n readonly chainNumber: number\n readonly accountId: Uint8Array\n}): { subgroup: CapnpAttestationSubgroup; flattened: Uint8Array } {\n const { keypair, attestHash, metadata } = input\n\n const message = new Message()\n const subgroup = message.initRoot(CapnpAttestationSubgroup)\n const data = subgroup.initData()\n data.setChainNum(input.chainNumber)\n data.initAttestHash(ATTEST_HASH_BYTES)\n data.getAttestHash().copyBuffer(attestHash)\n data.initAcctNumVal(ACCOUNT_ID_BYTES)\n data.getAcctNumVal().copyBuffer(input.accountId)\n data.initPubKey(PUBLIC_KEY_BYTES)\n data.getPubKey().copyBuffer(keypair.publicKey)\n\n data.initMetadata(metadata.length)\n const metadataList = data.getMetadata()\n metadata.forEach((item, index) => {\n const entry = metadataList.get(index)\n // Subgroup positions are 1-based throughout the protocol, so the first label is\n // position 1. The node sorts by this field on read, which is what preserves the\n // order the caller gave.\n entry.setPosition(index + 1)\n entry.initItem(item.length)\n entry.getItem().copyBuffer(item)\n })\n\n // The subgroup is signed over its data alone, before the signature field exists.\n const flattened = flatten(\n () => WasmAttestationSubgroupData.fromAttestationSubgroupCapnp(packed(message)),\n 'attestation subgroup',\n )\n const signature = keypair.sign(flattened)\n subgroup.initSignature(signature.length)\n subgroup.getSignature().copyBuffer(signature)\n\n return { subgroup, flattened }\n}\n\n/**\n * A payload as it is submitted, the hash its transaction references it by, and its\n * flattened size, which the fee charges for.\n *\n * @internal\n */\nexport function packPayload(message: Message): {\n payload: string\n refHashPayload: Uint8Array\n bytes: number\n} {\n const flattened = flatten(() => WasmPayload.fromPayloadCapnp(packed(message)), 'payload')\n return {\n payload: toBase64(packed(message)),\n refHashPayload: blake3(flattened, { dkLen: REF_HASH_BYTES }),\n bytes: flattened.length,\n }\n}\n\n/**\n * Sign a built application-layer transaction and work out the id the node files it under.\n * Every application-layer transaction — an attestation, an NFT mint — ends this way.\n *\n * @internal\n */\nexport function signAppTx(\n message: Message,\n tx: CapnpUserAppTx,\n keypair: GeeqKeypair,\n): { transaction: string; transactionHash: Uint8Array; bytes: number } {\n // Signed over the signature-EXCLUDED flatten. The node verifies against exactly this\n // form: its flatten worker swaps in the `…Data` class whenever the signature is left\n // out, and its signature check asks for the flatten without one.\n const flattened = flatten(\n () => WasmUserAppTxData.fromUserAppTxCapnp(packed(message)),\n 'transaction',\n )\n const signature = keypair.sign(flattened)\n tx.initSignature(signature.length)\n tx.getSignature().copyBuffer(signature)\n\n // The chain identifies a transaction by the hash of its signature-INCLUDED flatten —\n // that is the value its status events carry. Hashing the signing preimage instead\n // yields a plausible-looking 32 bytes that no node has ever heard of, so this has to\n // happen after the signature is attached, and through the non-Data class. The same\n // flatten is what the fee charges for.\n const signed = flatten(\n () => WasmUserAppTx.fromUserAppTxCapnp(packed(message)),\n 'signed transaction',\n )\n\n return {\n transaction: toBase64(packed(message)),\n transactionHash: blake3(signed, { dkLen: REF_HASH_BYTES }),\n bytes: signed.length,\n }\n}\n\n/**\n * Build and sign an attestation transaction. Synchronous; requires a loaded engine.\n *\n * This function is offline: it opens no sockets and reads no ledger. It needs chain\n * state that only a node can supply, so either pass the four values yourself or let\n * {@link GeeqChain} read them and hand you a `chainState`.\n *\n * The transaction is signed but **not submitted**. Post\n * {@link AttestationTx.transaction} and {@link AttestationTx.payload} to the node named\n * by {@link AttestationTx.nodeUrl}.\n */\nexport function createAttestationTxSync(input: AttestationTxInput): AttestationTx {\n assertReady('createAttestationTxSync')\n\n const { keypair, attestHash } = input\n const chainState = resolveChainState(input)\n const { chainNumber, blockNumber, nodeNumber, nonce } = chainState\n\n assertKeypair(keypair)\n assertAttestHash(attestHash)\n assertChainState(chainState)\n\n const metadata = encodeMetadata(input.metadata)\n assertMetadataWithinLimits(metadata, chainState.metadataLimits, { chainNumber, blockNumber })\n\n // 1. The attestation subgroup: what is being attested, and by whom. The account's\n // identifying record number is the BLAKE3 of its public key, which is exactly the\n // account id the keypair already carries.\n const { subgroup } = signAttestationSubgroup({\n keypair,\n attestHash,\n metadata,\n chainNumber,\n accountId: keypair.accountId,\n })\n\n // 2. The payload carries the signed subgroup.\n const payloadMessage = new Message()\n const payloadRoot = payloadMessage.initRoot(CapnpPayload)\n payloadRoot.initTxType().initAttestCommit()\n payloadRoot.getTxType().getAttestCommit().setAttestationSubgroup(subgroup)\n const { payload, refHashPayload, bytes: payloadBytes } = packPayload(payloadMessage)\n\n // 3. The transaction references the payload by hash rather than carrying it, and\n // names the block and node that should process it.\n const txMessage = new Message()\n const tx = txMessage.initRoot(CapnpUserAppTx)\n const txData = tx.getData()\n txData.initTxType().initAttestCommit()\n txData.getTxType().getAttestCommit().initAcctNumVal().setNone()\n txData.setChainNum(chainNumber)\n txData.setBlockNum(blockNumber)\n txData.setNodeNum(nodeNumber)\n txData.setNonce(nonce)\n txData.initRefHashPayload(refHashPayload.length)\n txData.getRefHashPayload().copyBuffer(refHashPayload)\n txData.initPubKey(PUBLIC_KEY_BYTES)\n txData.getPubKey().copyBuffer(keypair.publicKey)\n\n const { transaction, transactionHash, bytes } = signAppTx(txMessage, tx, keypair)\n\n return Object.freeze({\n transaction,\n payload,\n refHashPayload,\n transactionHash,\n publicKey: keypair.publicKey,\n // An attestation sends no coin, so it pays only for its bytes: the transaction's and\n // the payload's.\n fee: feeFor(bytes + payloadBytes, 0n, chainState.geeqNorm),\n ...pinning(chainState),\n })\n}\n\n/** Build and sign an attestation transaction, loading the engine if needed. */\nexport async function createAttestationTx(input: AttestationTxInput): Promise<AttestationTx> {\n await initGeeq()\n return createAttestationTxSync(input)\n}\n","import { blake3 } from '@noble/hashes/blake3'\nimport { Message } from 'capnp-ts'\nimport { Payload as CapnpPayload } from '../capnp/payload.capnp'\nimport { UserAppTx as CapnpUserAppTx } from '../capnp/userAppTx.capnp'\n\nimport { penniesToUint64 } from '../amount'\nimport { ACCOUNT_ID_BYTES, PUBLIC_KEY_BYTES, resolveAccountId } from '../crypto/account-id'\nimport { invalidArgument } from '../errors'\nimport { assertReady, initGeeq } from '../runtime/init'\nimport type { NftMintTx, NftMintTxInput } from '../types'\nimport { packPayload, signAppTx, signAttestationSubgroup } from './attestation'\nimport { assertAttestHash } from './content'\nimport { assertChainState, assertKeypair, pinning } from './encode'\nimport { feeFor } from './fee'\nimport { assertMetadataWithinLimits, encodeMetadata } from './metadata'\n\n/**\n * Build and sign an NFT mint. Synchronous; requires a loaded engine.\n *\n * An NFT is minted through a proxy, and the proxy is the sender: it pays the fee and\n * `amount`, which goes to the receiver with the NFT, and it spends its own nonce. Its\n * admin — the signer here — is the only key the chain accepts for it. The NFT itself is an\n * attestation subgroup, as an attestation carries: the content's hash and its labels,\n * signed by the admin and naming the proxy.\n *\n * Offline: it cannot check that the proxy exists, is the signer's, or can pay.\n * {@link GeeqChain.mintNft} does all three.\n */\nexport function createNftMintTxSync(input: NftMintTxInput): NftMintTx {\n assertReady('createNftMintTxSync')\n\n const { keypair, attestHash, amount, chainState } = input\n assertKeypair(keypair)\n const proxyAccountId = resolveAccountId(input.proxyAccountId)\n const to = resolveAccountId(input.to)\n assertAttestHash(attestHash)\n if (typeof amount !== 'bigint' || amount <= 0n) {\n throw invalidArgument('amount must be a number of pennies greater than zero, as a bigint.')\n }\n assertChainState(chainState)\n const { chainNumber, blockNumber, nodeNumber, nonce } = chainState\n\n const metadata = encodeMetadata(input.metadata)\n assertMetadataWithinLimits(metadata, chainState.metadataLimits, { chainNumber, blockNumber })\n\n // 1. The NFT: what it stands for, signed by the admin and naming the proxy. Its id is the\n // hash of the signature-excluded subgroup, as the Geeq wallet computes it.\n const { subgroup, flattened } = signAttestationSubgroup({\n keypair,\n attestHash,\n metadata,\n chainNumber,\n accountId: proxyAccountId,\n })\n const nftId = blake3(flattened, { dkLen: ACCOUNT_ID_BYTES })\n\n // 2. The payload carries the subgroup and the id.\n const payloadMessage = new Message()\n const mintPayload = payloadMessage.initRoot(CapnpPayload).initTxType().initNftMint()\n mintPayload.setAttestationSubgroup(subgroup)\n mintPayload.initAcctNumApp(ACCOUNT_ID_BYTES)\n mintPayload.getAcctNumApp().copyBuffer(nftId)\n const { payload, refHashPayload, bytes: payloadBytes } = packPayload(payloadMessage)\n\n // 3. The transaction: from the proxy, to the receiver. The nonce is the proxy's, and the\n // key is the admin's, which the node checks against the admin the proxy names.\n const txMessage = new Message()\n const tx = txMessage.initRoot(CapnpUserAppTx)\n const txData = tx.getData()\n const mint = txData.initTxType().initNftMint()\n mint.setAmtCoin(penniesToUint64(amount))\n mint.initAcctNumApp(ACCOUNT_ID_BYTES)\n mint.getAcctNumApp().copyBuffer(nftId)\n mint.initAcctNumRcv(ACCOUNT_ID_BYTES)\n mint.getAcctNumRcv().copyBuffer(to)\n mint.initAcctNumVal(ACCOUNT_ID_BYTES)\n mint.getAcctNumVal().copyBuffer(proxyAccountId)\n txData.setChainNum(chainNumber)\n txData.setBlockNum(blockNumber)\n txData.setNodeNum(nodeNumber)\n txData.setNonce(nonce)\n txData.initRefHashPayload(refHashPayload.length)\n txData.getRefHashPayload().copyBuffer(refHashPayload)\n txData.initPubKey(PUBLIC_KEY_BYTES)\n txData.getPubKey().copyBuffer(keypair.publicKey)\n\n const { transaction, transactionHash, bytes } = signAppTx(txMessage, tx, keypair)\n\n return Object.freeze({\n transaction,\n payload,\n refHashPayload,\n transactionHash,\n publicKey: keypair.publicKey,\n nftId,\n proxyAccountId,\n to,\n amount,\n fee: feeFor(bytes + payloadBytes, amount, chainState.geeqNorm),\n ...pinning(chainState),\n })\n}\n\n/** Build and sign an NFT mint, loading the engine if needed. */\nexport async function createNftMintTx(input: NftMintTxInput): Promise<NftMintTx> {\n await initGeeq()\n return createNftMintTxSync(input)\n}\n","import { invalidArgument, nodeUnusable } from '../errors'\nimport type { GeeqLedger } from '../ledger/geeq-ledger'\nimport type { GeeqLedgerNode } from '../ledger/net-actors'\n\n/**\n * The port every Geeq node answers client traffic on.\n *\n * Nodes terminate TLS on 2082 and that is the only client-facing port; an endpoint\n * given without one is resolved to it rather than to the scheme's default, because a\n * request to 443 would fail opaquely in a browser with no way to tell why.\n */\nexport const GEEQ_NODE_PORT = 2082\n\n/** The host part of a node URL, which is what the net actor list records. */\nexport function hostOf(url: string | URL): string {\n try {\n return new URL(String(url)).hostname\n } catch (cause) {\n throw invalidArgument(\n `endpoint must be an absolute URL such as https://1.2.3.4:2082, received ${JSON.stringify(String(url))}.`,\n cause,\n )\n }\n}\n\n/** Normalise a node URL to an origin with no trailing slash, so it is safe to append to. */\nexport function originOf(url: string | URL): string {\n hostOf(url) // same validation, same message\n const parsed = new URL(String(url))\n const port = parsed.port === '' ? String(GEEQ_NODE_PORT) : parsed.port\n return `${parsed.protocol}//${parsed.hostname}:${port}${parsed.pathname.replace(/\\/+$/u, '')}`\n}\n\n/**\n * Normalise an ordinary service URL, leaving its port exactly as given.\n *\n * Distinct from {@link originOf} on purpose: a node directory is a normal web service\n * on whatever port it was deployed on, so filling in the Geeq node port would send\n * every request to the wrong place.\n */\nexport function serviceOriginOf(url: string | URL): string {\n hostOf(url)\n const parsed = new URL(String(url))\n return `${parsed.protocol}//${parsed.host}${parsed.pathname.replace(/\\/+$/u, '')}`\n}\n\nfunction listAlternatives(ledger: GeeqLedger): string {\n const processing = ledger.processingNodes.filter((node) => !node.retiring)\n if (processing.length === 0) {\n return 'This ledger lists no node that is currently processing transactions.'\n }\n const listed = processing\n .map((node) => `${node.host} (node ${node.nodeNumber})`)\n .join(', ')\n return `Nodes in this ledger that are processing: ${listed}.`\n}\n\nfunction assertUsable(node: GeeqLedgerNode, ledger: GeeqLedger): GeeqLedgerNode {\n if (!node.processing) {\n // Name the role and status verbatim: they are what the operator sees too, and the\n // node's own rejection ('not processing') says nothing about which is wrong.\n const detail =\n node.role === 'relay'\n ? 'a relay registers no transaction handler at all'\n : 'only anon-node, anchor-node or cert-node with status node or hub processes transactions'\n throw nodeUnusable(\n `Node ${node.nodeNumber} at ${node.host} is a ${node.role} with status ` +\n `\"${node.status}\", so it will not accept this transaction — ${detail}. ` +\n listAlternatives(ledger),\n )\n }\n\n if (node.retiring) {\n // The node checks its own rotation deadline before accepting anything and answers\n // 503 'Block chain is stopped' once it is within two blocks of it. That is knowable\n // here, and a 503 naming a stopped chain is a badly misleading thing to hand someone\n // whose chain is running perfectly well.\n throw nodeUnusable(\n `Node ${node.nodeNumber} at ${node.host} leaves the active set at block ` +\n `${node.retiresAtBlock} and the ledger is already at ${ledger.blockNumber}, so it ` +\n 'will answer 503 \"Block chain is stopped\" rather than accept a transaction. This ' +\n `is the node rotating out, not the chain halting. ${listAlternatives(ledger)}`,\n )\n }\n\n return node\n}\n\nexport interface SelectNodeOptions {\n /** Skip host matching entirely. Required behind a gateway or a DNS name. */\n readonly nodeNumber?: number | undefined\n}\n\n/**\n * Choose the net actor record that a transaction should name.\n *\n * Matching is on **host only**. A record's `port` is the node's own listen port, while\n * a client reaches it through a proxy on another one, so requiring both to agree finds\n * nothing on a correctly deployed chain. Port is used solely to disambiguate when one\n * address carries several records.\n *\n * This never silently retargets. A different node means a different address, a\n * different certificate, a different CORS origin and a different operator seeing the\n * transaction, so an unusable node is reported with its alternatives and the caller\n * decides.\n */\nexport function selectNode(\n ledger: GeeqLedger,\n endpoint: string | URL,\n options: SelectNodeOptions = {},\n): GeeqLedgerNode {\n if (options.nodeNumber !== undefined) {\n const named = ledger.findNode({ nodeNumber: options.nodeNumber })\n if (named === undefined) {\n throw nodeUnusable(\n `nodeNumber ${options.nodeNumber} is not in the net actor list of the ledger ` +\n `served by ${String(endpoint)}, which lists ${ledger.nodes.length} records. ` +\n listAlternatives(ledger),\n )\n }\n return assertUsable(named, ledger)\n }\n\n const host = hostOf(endpoint)\n const candidates = ledger.findNodes(host)\n\n if (candidates.length === 0) {\n // Almost always a hostname or a gateway: the list holds bare IPs and a browser\n // cannot resolve a name to one, so there is nothing the SDK can infer here.\n throw nodeUnusable(\n `${host} is not in the net actor list of the ledger it served ` +\n `(${ledger.nodes.length} records, none at that address). A node is matched by ` +\n 'its IP address, so a DNS name, a gateway or a proxy cannot be matched at all — ' +\n `pass nodeNumber explicitly for those. ${listAlternatives(ledger)}`,\n )\n }\n\n if (candidates.length === 1) return assertUsable(candidates[0] as GeeqLedgerNode, ledger)\n\n const processing = candidates.filter((node) => node.processing && !node.retiring)\n if (processing.length === 1) return processing[0] as GeeqLedgerNode\n\n const numbers = candidates.map((node) => node.nodeNumber).join(', ')\n throw nodeUnusable(\n `${host} matches ${candidates.length} net actor records (node numbers ${numbers}) ` +\n `and ${processing.length} of them are processing, so the SDK cannot choose. ` +\n 'Pass nodeNumber explicitly.',\n )\n}\n","/**\n * Every node route the SDK knows, in one place.\n *\n * `origin` is an absolute node URL with no trailing slash — see `originOf`.\n */\n\n/** `GET` the current validation layer ledger, base64 packed capnp under `result`. */\nexport function ledgerRoute(origin: string): string {\n return `${origin}/api/blocks?type=vll`\n}\n\n/** `GET` the current application layer ledger, where NFT records live. Same envelope. */\nexport function appLedgerRoute(origin: string): string {\n return `${origin}/api/blocks?type=all`\n}\n\n/**\n * Where a signed transaction is POSTed.\n *\n * The SDK does not submit — this is exported so an application builds the same URL the\n * SDK read from, rather than keeping its own copy of the path.\n */\nexport function submitRoute(origin: string): string {\n return `${origin}/api/blocks/process`\n}\n\n/**\n * The node's client WebSocket, where transaction status events arrive.\n *\n * Same host and port as the HTTP API — the node's TLS front door routes `/ws/` to the\n * socket server and `/api/` to the HTTP one — so the only change is the scheme. The\n * trailing slash is part of the route: the proxy answers `/ws` with a redirect, and a\n * WebSocket handshake treats a redirect as failure.\n */\nexport function socketRoute(origin: string): string {\n const url = new URL(origin)\n const scheme =\n url.protocol === 'https:' ? 'wss:' : url.protocol === 'http:' ? 'ws:' : url.protocol\n return `${scheme}//${url.host}${url.pathname.replace(/\\/+$/u, '')}/ws/`\n}\n\n/**\n * The body a node expects for an application-layer transaction: an attestation or an NFT\n * mint, each a transaction and its payload.\n */\nexport function attestationSubmitBody(transaction: string, payload: string): string {\n return JSON.stringify({ type: 'uat', data: { transaction, payload } })\n}\n\n/**\n * The body a node expects for a coin transfer.\n *\n * A different type and a different shape from an attestation: a validation-layer\n * transaction carries no separate payload, so there is one blob rather than two.\n */\nexport function coinTransferSubmitBody(transaction: string): string {\n return JSON.stringify({ type: 'uvt', data: { transaction } })\n}\n\n/**\n * Discovery routes on the chain's directory service.\n *\n * Only these two are ever called. The same service also exposes routes that start and\n * stop nodes, install a genesis block, and — on `/api/accounts` — hand out plaintext\n * private keys. None of those belong anywhere near an SDK, so the paths live here and\n * nowhere else, and nothing constructs a URL against that origin by hand.\n */\nexport function chainsRoute(origin: string): string {\n return `${origin}/api/admin/simulation/chains`\n}\n\nexport function nodesRoute(origin: string, systemId: number): string {\n return `${origin}/api/nodes?systemId=${encodeURIComponent(String(systemId))}`\n}\n\n/** A block explorer's transaction lookup. The explorer files transactions by hex refHash. */\nexport function explorerTransactionRoute(explorer: string, refHashHex: string): string {\n return `${explorer}/api/transactions/byRefHash?refHash=${refHashHex}`\n}\n","import { GeeqError, networkUnreachable, nodeError } from '../errors'\n\n/** A response, narrowed to what this SDK reads. A WHATWG `Response` satisfies it. */\nexport interface GeeqHttpResponse {\n readonly ok: boolean\n readonly status: number\n text(): Promise<string>\n}\n\n/** A request, narrowed to what this SDK sends. Assignable to `RequestInit`. */\nexport interface GeeqRequestInit {\n readonly method?: string\n readonly headers?: Readonly<Record<string, string>>\n readonly body?: string\n readonly signal?: AbortSignal\n}\n\n/**\n * How the SDK reaches a node.\n *\n * Deliberately a structural subset of WHATWG `fetch`, so `{ transport: fetch }`\n * typechecks with no adapter, and so does undici with a custom dispatcher, a relative\n * URL through a dev proxy, or a scripted array of responses in a test.\n */\nexport type GeeqTransport = (\n url: string,\n init?: GeeqRequestInit,\n) => Promise<GeeqHttpResponse>\n\n/**\n * `globalThis.fetch`, resolved at call time.\n *\n * Never a stored reference: an unbound `fetch` throws `Illegal invocation` in a\n * browser, and capturing it would defeat any test that swaps `globalThis.fetch` after\n * this module is imported.\n */\nexport const defaultTransport: GeeqTransport = (url, init) =>\n globalThis.fetch(url, init as RequestInit)\n\nexport interface RequestOptions {\n readonly transport: GeeqTransport\n readonly timeoutMs: number\n readonly retries: number\n readonly headers?: Readonly<Record<string, string>> | undefined\n readonly signal?: AbortSignal | undefined\n readonly method?: string | undefined\n readonly body?: string | undefined\n}\n\n/**\n * The one failure a browser can be certain about before making a request.\n *\n * An https page may not load an http subresource. The browser blocks it and reports a\n * generic network failure, so issuing the request would only turn a knowable cause into\n * an ambiguous one.\n */\nfunction assertSchemeReachable(url: string): void {\n const location = (globalThis as { location?: { protocol?: string } }).location\n if (location?.protocol !== 'https:') return\n\n let scheme: string\n try {\n scheme = new URL(url).protocol\n } catch {\n return\n }\n if (scheme !== 'http:') return\n\n throw networkUnreachable(\n `This page is served over https and the node URL ${url} is http, so the browser ` +\n 'will block the request as mixed content before it is sent. Use the node\\'s https ' +\n 'URL (port 2082 by default), or serve this page over http while developing.',\n )\n}\n\n/** The four causes a browser cannot tell apart, each with what to do about it. */\nfunction opaqueFailureMessage(url: string): string {\n return (\n `Could not reach the Geeq node at ${url}. A browser reports network failures ` +\n 'opaquely, so this is one of four things: (1) the node does not answer CORS for ' +\n 'this origin — pass your own `transport` routing through a proxy you control; ' +\n \"(2) the node's TLS certificate is not trusted, which is common because nodes are \" +\n 'addressed by bare IP — open the URL in a tab to see the interstitial; (3) this ' +\n 'page is https and the node is http, which browsers block; or (4) the node is down ' +\n 'or the URL is wrong.'\n )\n}\n\nfunction describeCause(cause: unknown): string | undefined {\n if (cause !== null && typeof cause === 'object') {\n const { code } = cause as { code?: unknown }\n if (typeof code === 'string') return code\n }\n return undefined\n}\n\n/** Pull the node's own `details` out of an error body without trusting its shape. */\nfunction nodeDetailsOf(body: string): string | undefined {\n try {\n const parsed: unknown = JSON.parse(body)\n if (parsed !== null && typeof parsed === 'object') {\n const { details, error } = parsed as { details?: unknown; error?: unknown }\n if (typeof details === 'string' && details !== '') return details\n // A block explorer sends its reasons as a list.\n if (Array.isArray(details)) {\n const joined = details.filter((item) => typeof item === 'string').join('; ')\n if (joined !== '') return joined\n }\n if (typeof error === 'string' && error !== '') return error\n }\n } catch {\n // Not JSON. The raw body is still the most useful thing we have.\n }\n return body === '' ? undefined : body.slice(0, 400)\n}\n\n/**\n * `signal.throwIfAborted()`, written out: a polyfilled `AbortSignal` may not have it.\n * A call rather than an inline check also keeps TypeScript from narrowing `aborted` to\n * false for the rest of the function — it can change across an `await`.\n */\nfunction throwIfAborted(signal: AbortSignal | undefined): void {\n if (signal?.aborted === true) throw signal.reason\n}\n\n/**\n * Make one request and return its body, mapping every failure onto a typed error.\n *\n * Retries only a transport failure, and only because reads are idempotent. A response\n * that arrived is never retried: the node has decided.\n */\nexport async function requestText(url: string, options: RequestOptions): Promise<string> {\n assertSchemeReachable(url)\n\n const { signal } = options\n let lastCause: unknown\n for (let attempt = 0; attempt <= options.retries; attempt += 1) {\n // An 'abort' listener never fires for a signal that is already aborted, so without\n // this the request would go out anyway — and so would a retry after an abort.\n throwIfAborted(signal)\n\n // Composed by hand rather than with AbortSignal.any, which needs Node 20.3 and\n // Safari 17.4 — too new for a library that supports Node 20. The caller's reason is\n // passed on, so a fetch that honours it rejects with exactly what the caller aborted with.\n const controller = new AbortController()\n const onAbort = (): void => controller.abort(signal?.reason)\n signal?.addEventListener('abort', onAbort)\n let timedOut = false\n const timer = setTimeout(() => {\n timedOut = true\n controller.abort()\n }, options.timeoutMs)\n\n try {\n const response = await options.transport(url, {\n signal: controller.signal,\n ...(options.method === undefined ? {} : { method: options.method }),\n ...(options.headers === undefined ? {} : { headers: options.headers }),\n ...(options.body === undefined ? {} : { body: options.body }),\n })\n\n const body = await response.text()\n if (!response.ok) {\n const details = nodeDetailsOf(body)\n throw nodeError(\n `The node at ${url} answered HTTP ${response.status}` +\n (details === undefined ? ' with no detail.' : `: ${JSON.stringify(details)}.`),\n response.status,\n details,\n )\n }\n return body\n } catch (cause) {\n if (cause instanceof GeeqError) throw cause\n\n // A caller-driven abort is theirs to observe, not ours to relabel.\n if (signal?.aborted === true) throw signal.reason\n\n if (timedOut) {\n throw networkUnreachable(\n `The node at ${url} did not answer within ${options.timeoutMs}ms. Raise ` +\n 'timeoutMs if the node is simply slow, or try another node.',\n cause,\n )\n }\n lastCause = cause\n } finally {\n clearTimeout(timer)\n signal?.removeEventListener('abort', onAbort)\n }\n }\n\n const code = describeCause(lastCause)\n throw networkUnreachable(\n code === undefined\n ? opaqueFailureMessage(url)\n : `Could not reach the Geeq node at ${url}: ${code}.`,\n lastCause,\n )\n}\n\n/**\n * Wait for `promise`, or stop waiting when `signal` aborts.\n *\n * For a request several callers share: aborting one caller's wait must not cancel the\n * request out from under the others, so the request runs on without any caller's signal\n * and each caller races its own against it.\n *\n * @internal\n */\nexport function raceAbort<T>(promise: Promise<T>, signal: AbortSignal | undefined): Promise<T> {\n if (signal === undefined) return promise\n if (signal.aborted) return Promise.reject(signal.reason)\n return new Promise<T>((resolve, reject) => {\n const onAbort = (): void => reject(signal.reason)\n signal.addEventListener('abort', onAbort, { once: true })\n promise\n .then(resolve, reject)\n .finally(() => signal.removeEventListener('abort', onAbort))\n })\n}\n","import { invalidArgument, nodeUnusable } from '../errors'\nimport { GEEQ_NODE_PORT } from '../chain/select'\nimport { chainsRoute, nodesRoute } from './routes'\nimport type { RequestOptions } from './transport'\nimport { requestText } from './transport'\n\n/** How the directory classifies a node. Only `'active'` processes transactions. */\nexport type GeeqNodeKind = 'active' | 'relay' | 'listener' | 'chain-admin' | 'none' | 'unknown'\n\n/** One chain the directory knows about. */\nexport interface GeeqDiscoveredChain {\n /** The directory's own row id, which every other directory route calls `systemId`. */\n readonly systemId: number\n /** The protocol chain number — what a transaction carries and a node checks. */\n readonly chainNumber: number\n readonly name: string | undefined\n}\n\n/**\n * One node the directory knows about.\n *\n * Note what is **missing**: a node number. The directory can say where a node is but\n * not who it is in the chain's own net actor list, so the ledger read is still the only\n * way to learn the number a transaction must carry.\n */\nexport interface GeeqDiscoveredNode {\n readonly host: string\n readonly kind: GeeqNodeKind\n /** The directory's own lifecycle state — `new`, `ready`, `stopped`. */\n readonly status: string\n /** Where to reach it. Always the client port; the directory's own port is internal. */\n readonly url: string\n}\n\nconst KINDS: ReadonlySet<string> = new Set([\n 'active',\n 'relay',\n 'listener',\n 'chain-admin',\n 'none',\n])\n\nfunction resultOf(body: string, url: string): unknown[] {\n let parsed: unknown\n try {\n parsed = JSON.parse(body)\n } catch (cause) {\n throw nodeUnusable(\n `The directory at ${url} did not answer with JSON. A proxy or login page in front ` +\n 'of it is the usual reason.',\n cause,\n )\n }\n const result = (parsed as { result?: unknown })?.result\n if (!Array.isArray(result)) {\n throw nodeUnusable(\n `The directory at ${url} answered without a \"result\" array, so it does not look ` +\n 'like a Geeq node directory.',\n )\n }\n return result\n}\n\n/** Every chain the directory knows about. */\nexport async function listChains(\n origin: string,\n request: RequestOptions,\n): Promise<GeeqDiscoveredChain[]> {\n const url = chainsRoute(origin)\n const rows = resultOf(await requestText(url, request), url)\n\n return rows\n .map((row) => row as { id?: unknown; chainNumber?: unknown; name?: unknown })\n .filter((row) => typeof row.id === 'number' && typeof row.chainNumber === 'number')\n .map((row) =>\n Object.freeze({\n systemId: row.id as number,\n chainNumber: row.chainNumber as number,\n name: typeof row.name === 'string' ? row.name : undefined,\n }),\n )\n}\n\nexport interface NodeAddressing {\n /** Scheme for the node URLs. Defaults to the directory's own. */\n readonly protocol?: string | undefined\n /** Client port. Defaults to {@link GEEQ_NODE_PORT}; override only for local setups. */\n readonly port?: number | undefined\n}\n\n/** Every node the directory lists for one chain. */\nexport async function listNodes(\n origin: string,\n systemId: number,\n request: RequestOptions,\n addressing: NodeAddressing = {},\n): Promise<GeeqDiscoveredNode[]> {\n const protocol = addressing.protocol ?? new URL(origin).protocol\n const port = addressing.port ?? GEEQ_NODE_PORT\n const url = nodesRoute(origin, systemId)\n const rows = resultOf(await requestText(url, request), url)\n\n return rows\n .map((row) => row as { ip?: unknown; type?: unknown; status?: unknown })\n .filter((row) => typeof row.ip === 'string' && row.ip !== '')\n .map((row) => {\n const kind = typeof row.type === 'string' && KINDS.has(row.type) ? row.type : 'unknown'\n return Object.freeze({\n host: row.ip as string,\n kind: kind as GeeqNodeKind,\n status: typeof row.status === 'string' ? row.status : 'unknown',\n // The directory reports the node's own internal listener, which is not where\n // clients connect, so its port field is deliberately ignored in favour of the\n // one port every node answers on.\n url: `${protocol}//${row.ip as string}:${port}`,\n })\n })\n}\n\nexport interface DiscoverOptions extends NodeAddressing {\n readonly origin: string\n /** Select the chain by the name the directory gives it. Matched case-insensitively. */\n readonly chainName?: string | undefined\n /** Select by protocol chain number, or — alongside `chainName` — assert it. */\n readonly chainNumber?: number | undefined\n readonly request: RequestOptions\n}\n\nexport interface Discovery {\n readonly chain: GeeqDiscoveredChain\n /** Every node listed for the chain, in directory order. */\n readonly nodes: readonly GeeqDiscoveredNode[]\n /** Those that will actually take a transaction. */\n readonly usable: readonly GeeqDiscoveredNode[]\n}\n\n/** True when the directory says this node is an active one that has not been stopped. */\nexport function isUsable(node: GeeqDiscoveredNode): boolean {\n return node.kind === 'active' && node.status !== 'stopped'\n}\n\n/**\n * Find a chain in the directory and list its nodes.\n *\n * This reads two routes and nothing else. The directory is a deployment control plane:\n * it has no authentication, and its other routes create and destroy machines and serve\n * private keys. Treat every value it returns as a hint about *where* to look, never as\n * authority about the chain itself — that comes from the ledger.\n */\nexport async function discover(options: DiscoverOptions): Promise<Discovery> {\n const chains = await listChains(options.origin, options.request)\n\n if (chains.length === 0) {\n throw nodeUnusable(`The directory at ${options.origin} lists no chains.`)\n }\n\n const listed = chains\n .map((c) => `${c.name ?? '(unnamed)'} (chain ${c.chainNumber})`)\n .join(', ')\n\n let chain: GeeqDiscoveredChain | undefined\n\n if (options.chainName !== undefined) {\n // Names are what a person types, so match them the way a person means them.\n const wanted = options.chainName.trim().toLowerCase()\n const matches = chains.filter((c) => c.name?.trim().toLowerCase() === wanted)\n\n if (matches.length === 0) {\n throw invalidArgument(\n `The directory at ${options.origin} has no chain named ` +\n `${JSON.stringify(options.chainName)}. Available: ${listed}.`,\n )\n }\n if (matches.length > 1) {\n throw invalidArgument(\n `The directory at ${options.origin} lists ${matches.length} chains named ` +\n `${JSON.stringify(options.chainName)} (numbers ` +\n `${matches.map((c) => c.chainNumber).join(', ')}), so the name does not identify ` +\n 'one. Select it by chainNumber instead.',\n )\n }\n chain = matches[0]\n } else if (options.chainNumber !== undefined) {\n chain = chains.find((c) => c.chainNumber === options.chainNumber)\n if (chain === undefined) {\n throw invalidArgument(\n `The directory at ${options.origin} does not list chain ${options.chainNumber}. ` +\n `Available: ${listed}.`,\n )\n }\n } else {\n if (chains.length > 1) {\n throw invalidArgument(\n `The directory at ${options.origin} lists ${chains.length} chains, so chainName ` +\n `or chainNumber is required to choose one. Available: ${listed}.`,\n )\n }\n chain = chains[0]\n }\n\n const resolved = chain as GeeqDiscoveredChain\n\n // A name and a number together are an assertion, not two ways of choosing.\n if (\n options.chainName !== undefined &&\n options.chainNumber !== undefined &&\n resolved.chainNumber !== options.chainNumber\n ) {\n throw invalidArgument(\n `The directory at ${options.origin} says ${JSON.stringify(options.chainName)} is ` +\n `chain ${resolved.chainNumber}, but chainNumber was given as ` +\n `${options.chainNumber}. Drop one of the two.`,\n )\n }\n const nodes = await listNodes(options.origin, resolved.systemId, options.request, {\n ...(options.protocol === undefined ? {} : { protocol: options.protocol }),\n ...(options.port === undefined ? {} : { port: options.port }),\n })\n const usable = nodes.filter(isUsable)\n\n if (usable.length === 0) {\n const seen = nodes.map((n) => `${n.host} (${n.kind}/${n.status})`).join(', ')\n throw nodeUnusable(\n `The directory at ${options.origin} lists no node for chain ${resolved.chainNumber} ` +\n 'that is active and running. Only an active node processes transactions. ' +\n (seen === '' ? 'It listed none at all.' : `It listed: ${seen}.`),\n )\n }\n\n return Object.freeze({ chain: resolved, nodes: Object.freeze([...nodes]), usable: Object.freeze(usable) })\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nexport const _capnpFileId = \"90db5e39a2d60999\";\nexport class ParamBoolean extends __S {\n static readonly _capnp = { displayName: \"ParamBoolean\", id: \"e96128ad27ec12cc\", size: new __O(8, 0) };\n getCurrentValue(): boolean { return __S.getBit(0, this); }\n setCurrentValue(value: boolean): void { __S.setBit(0, value, this); }\n getMinimumValue(): boolean { return __S.getBit(1, this); }\n setMinimumValue(value: boolean): void { __S.setBit(1, value, this); }\n getMaximumValue(): boolean { return __S.getBit(2, this); }\n setMaximumValue(value: boolean): void { __S.setBit(2, value, this); }\n toString(): string { return \"ParamBoolean_\" + super.toString(); }\n}\nexport class ParamCountTwo extends __S {\n static readonly _capnp = { displayName: \"ParamCountTwo\", id: \"811c067fceb895d4\", size: new __O(8, 0) };\n getCurrentValue(): number { return __S.getUint16(0, this); }\n setCurrentValue(value: number): void { __S.setUint16(0, value, this); }\n getMinimumValue(): number { return __S.getUint16(2, this); }\n setMinimumValue(value: number): void { __S.setUint16(2, value, this); }\n getMaximumValue(): number { return __S.getUint16(4, this); }\n setMaximumValue(value: number): void { __S.setUint16(4, value, this); }\n toString(): string { return \"ParamCountTwo_\" + super.toString(); }\n}\nexport class ParamCountEight extends __S {\n static readonly _capnp = { displayName: \"ParamCountEight\", id: \"f211b4f65dca0ff9\", size: new __O(24, 0) };\n getCurrentValue(): capnp.Uint64 { return __S.getUint64(0, this); }\n setCurrentValue(value: capnp.Uint64): void { __S.setUint64(0, value, this); }\n getMinimumValue(): capnp.Uint64 { return __S.getUint64(8, this); }\n setMinimumValue(value: capnp.Uint64): void { __S.setUint64(8, value, this); }\n getMaximumValue(): capnp.Uint64 { return __S.getUint64(16, this); }\n setMaximumValue(value: capnp.Uint64): void { __S.setUint64(16, value, this); }\n toString(): string { return \"ParamCountEight_\" + super.toString(); }\n}\nexport enum ParamAcctRec_ParamType_Which {\n ALLOW_ATTEST = 7,\n ALLOW_FUNDING_PROXIES = 8,\n ALLOW_COINS = 0,\n ALLOW_COUNTERPARTY = 1,\n ALLOW_DCE = 27,\n ALLOW_DYNAMIC_NAL = 28,\n ALLOW_FEES = 2,\n ALLOW_GBB = 11,\n ALLOW_HASH_LOCKS = 3,\n ALLOW_MICROCOINS = 4,\n ALLOW_MULTISIG = 5,\n ALLOW_NFT = 6,\n ALLOW_STACKABLE = 26,\n ALLOW_TOKEN = 9,\n ALLOW_TREASURY = 10,\n GBB_AMT = 13,\n GEEQ_NORM = 14,\n METADATA_FIXED_BYTES = 16,\n METADATA_FIXED_NUM = 17,\n METADATA_VAR_BYTES = 18,\n METADATA_VAR_NUM = 19,\n MIN_TX_AMT = 25,\n NTL_MAX_NUM = 15,\n RENT_INTERVAL = 20,\n TARGET_ANCHOR_NODE = 21,\n TARGET_ANON_NODE = 22,\n TARGET_BLOCK_INTERVAL = 12,\n TARGET_CERT_NODE = 23,\n TARGET_GOSSIP_NET = 24\n}\nexport class ParamAcctRec_ParamType extends __S {\n static readonly ALLOW_ATTEST = ParamAcctRec_ParamType_Which.ALLOW_ATTEST;\n static readonly ALLOW_FUNDING_PROXIES = ParamAcctRec_ParamType_Which.ALLOW_FUNDING_PROXIES;\n static readonly ALLOW_COINS = ParamAcctRec_ParamType_Which.ALLOW_COINS;\n static readonly ALLOW_COUNTERPARTY = ParamAcctRec_ParamType_Which.ALLOW_COUNTERPARTY;\n static readonly ALLOW_DCE = ParamAcctRec_ParamType_Which.ALLOW_DCE;\n static readonly ALLOW_DYNAMIC_NAL = ParamAcctRec_ParamType_Which.ALLOW_DYNAMIC_NAL;\n static readonly ALLOW_FEES = ParamAcctRec_ParamType_Which.ALLOW_FEES;\n static readonly ALLOW_GBB = ParamAcctRec_ParamType_Which.ALLOW_GBB;\n static readonly ALLOW_HASH_LOCKS = ParamAcctRec_ParamType_Which.ALLOW_HASH_LOCKS;\n static readonly ALLOW_MICROCOINS = ParamAcctRec_ParamType_Which.ALLOW_MICROCOINS;\n static readonly ALLOW_MULTISIG = ParamAcctRec_ParamType_Which.ALLOW_MULTISIG;\n static readonly ALLOW_NFT = ParamAcctRec_ParamType_Which.ALLOW_NFT;\n static readonly ALLOW_STACKABLE = ParamAcctRec_ParamType_Which.ALLOW_STACKABLE;\n static readonly ALLOW_TOKEN = ParamAcctRec_ParamType_Which.ALLOW_TOKEN;\n static readonly ALLOW_TREASURY = ParamAcctRec_ParamType_Which.ALLOW_TREASURY;\n static readonly GBB_AMT = ParamAcctRec_ParamType_Which.GBB_AMT;\n static readonly GEEQ_NORM = ParamAcctRec_ParamType_Which.GEEQ_NORM;\n static readonly METADATA_FIXED_BYTES = ParamAcctRec_ParamType_Which.METADATA_FIXED_BYTES;\n static readonly METADATA_FIXED_NUM = ParamAcctRec_ParamType_Which.METADATA_FIXED_NUM;\n static readonly METADATA_VAR_BYTES = ParamAcctRec_ParamType_Which.METADATA_VAR_BYTES;\n static readonly METADATA_VAR_NUM = ParamAcctRec_ParamType_Which.METADATA_VAR_NUM;\n static readonly MIN_TX_AMT = ParamAcctRec_ParamType_Which.MIN_TX_AMT;\n static readonly NTL_MAX_NUM = ParamAcctRec_ParamType_Which.NTL_MAX_NUM;\n static readonly RENT_INTERVAL = ParamAcctRec_ParamType_Which.RENT_INTERVAL;\n static readonly TARGET_ANCHOR_NODE = ParamAcctRec_ParamType_Which.TARGET_ANCHOR_NODE;\n static readonly TARGET_ANON_NODE = ParamAcctRec_ParamType_Which.TARGET_ANON_NODE;\n static readonly TARGET_BLOCK_INTERVAL = ParamAcctRec_ParamType_Which.TARGET_BLOCK_INTERVAL;\n static readonly TARGET_CERT_NODE = ParamAcctRec_ParamType_Which.TARGET_CERT_NODE;\n static readonly TARGET_GOSSIP_NET = ParamAcctRec_ParamType_Which.TARGET_GOSSIP_NET;\n static readonly _capnp = { displayName: \"paramType\", id: \"d44240b7255d985f\", size: new __O(8, 2) };\n adoptAllowAttest(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 7, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowAttest(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowAttest()); }\n getAllowAttest(): ParamBoolean {\n __S.testWhich(\"allowAttest\", __S.getUint16(4, this), 7, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowAttest(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowAttest(): ParamBoolean {\n __S.setUint16(4, 7, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowAttest(): boolean { return __S.getUint16(4, this) === 7; }\n setAllowAttest(value: ParamBoolean): void {\n __S.setUint16(4, 7, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowFundingProxies(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 8, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowFundingProxies(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowFundingProxies()); }\n getAllowFundingProxies(): ParamBoolean {\n __S.testWhich(\"allowFundingProxies\", __S.getUint16(4, this), 8, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowFundingProxies(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowFundingProxies(): ParamBoolean {\n __S.setUint16(4, 8, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowFundingProxies(): boolean { return __S.getUint16(4, this) === 8; }\n setAllowFundingProxies(value: ParamBoolean): void {\n __S.setUint16(4, 8, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowCoins(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowCoins(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowCoins()); }\n getAllowCoins(): ParamBoolean {\n __S.testWhich(\"allowCoins\", __S.getUint16(4, this), 0, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowCoins(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowCoins(): ParamBoolean {\n __S.setUint16(4, 0, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowCoins(): boolean { return __S.getUint16(4, this) === 0; }\n setAllowCoins(value: ParamBoolean): void {\n __S.setUint16(4, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowCounterparty(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowCounterparty(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowCounterparty()); }\n getAllowCounterparty(): ParamBoolean {\n __S.testWhich(\"allowCounterparty\", __S.getUint16(4, this), 1, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowCounterparty(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowCounterparty(): ParamBoolean {\n __S.setUint16(4, 1, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowCounterparty(): boolean { return __S.getUint16(4, this) === 1; }\n setAllowCounterparty(value: ParamBoolean): void {\n __S.setUint16(4, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowDce(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 27, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowDce(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowDce()); }\n getAllowDce(): ParamBoolean {\n __S.testWhich(\"allowDce\", __S.getUint16(4, this), 27, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowDce(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowDce(): ParamBoolean {\n __S.setUint16(4, 27, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowDce(): boolean { return __S.getUint16(4, this) === 27; }\n setAllowDce(value: ParamBoolean): void {\n __S.setUint16(4, 27, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowDynamicNal(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 28, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowDynamicNal(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowDynamicNal()); }\n getAllowDynamicNal(): ParamBoolean {\n __S.testWhich(\"allowDynamicNal\", __S.getUint16(4, this), 28, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowDynamicNal(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowDynamicNal(): ParamBoolean {\n __S.setUint16(4, 28, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowDynamicNal(): boolean { return __S.getUint16(4, this) === 28; }\n setAllowDynamicNal(value: ParamBoolean): void {\n __S.setUint16(4, 28, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowFees(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowFees(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowFees()); }\n getAllowFees(): ParamBoolean {\n __S.testWhich(\"allowFees\", __S.getUint16(4, this), 2, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowFees(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowFees(): ParamBoolean {\n __S.setUint16(4, 2, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowFees(): boolean { return __S.getUint16(4, this) === 2; }\n setAllowFees(value: ParamBoolean): void {\n __S.setUint16(4, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowGbb(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 11, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowGbb(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowGbb()); }\n getAllowGbb(): ParamBoolean {\n __S.testWhich(\"allowGbb\", __S.getUint16(4, this), 11, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowGbb(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowGbb(): ParamBoolean {\n __S.setUint16(4, 11, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowGbb(): boolean { return __S.getUint16(4, this) === 11; }\n setAllowGbb(value: ParamBoolean): void {\n __S.setUint16(4, 11, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowHashLocks(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 3, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowHashLocks(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowHashLocks()); }\n getAllowHashLocks(): ParamBoolean {\n __S.testWhich(\"allowHashLocks\", __S.getUint16(4, this), 3, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowHashLocks(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowHashLocks(): ParamBoolean {\n __S.setUint16(4, 3, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowHashLocks(): boolean { return __S.getUint16(4, this) === 3; }\n setAllowHashLocks(value: ParamBoolean): void {\n __S.setUint16(4, 3, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowMicrocoins(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 4, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowMicrocoins(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowMicrocoins()); }\n getAllowMicrocoins(): ParamBoolean {\n __S.testWhich(\"allowMicrocoins\", __S.getUint16(4, this), 4, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowMicrocoins(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowMicrocoins(): ParamBoolean {\n __S.setUint16(4, 4, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowMicrocoins(): boolean { return __S.getUint16(4, this) === 4; }\n setAllowMicrocoins(value: ParamBoolean): void {\n __S.setUint16(4, 4, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowMultisig(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 5, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowMultisig(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowMultisig()); }\n getAllowMultisig(): ParamBoolean {\n __S.testWhich(\"allowMultisig\", __S.getUint16(4, this), 5, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowMultisig(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowMultisig(): ParamBoolean {\n __S.setUint16(4, 5, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowMultisig(): boolean { return __S.getUint16(4, this) === 5; }\n setAllowMultisig(value: ParamBoolean): void {\n __S.setUint16(4, 5, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowNft(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 6, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowNft(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowNft()); }\n getAllowNft(): ParamBoolean {\n __S.testWhich(\"allowNft\", __S.getUint16(4, this), 6, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowNft(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowNft(): ParamBoolean {\n __S.setUint16(4, 6, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowNft(): boolean { return __S.getUint16(4, this) === 6; }\n setAllowNft(value: ParamBoolean): void {\n __S.setUint16(4, 6, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowStackable(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 26, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowStackable(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowStackable()); }\n getAllowStackable(): ParamBoolean {\n __S.testWhich(\"allowStackable\", __S.getUint16(4, this), 26, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowStackable(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowStackable(): ParamBoolean {\n __S.setUint16(4, 26, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowStackable(): boolean { return __S.getUint16(4, this) === 26; }\n setAllowStackable(value: ParamBoolean): void {\n __S.setUint16(4, 26, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowToken(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 9, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowToken(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowToken()); }\n getAllowToken(): ParamBoolean {\n __S.testWhich(\"allowToken\", __S.getUint16(4, this), 9, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowToken(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowToken(): ParamBoolean {\n __S.setUint16(4, 9, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowToken(): boolean { return __S.getUint16(4, this) === 9; }\n setAllowToken(value: ParamBoolean): void {\n __S.setUint16(4, 9, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptAllowTreasury(value: capnp.Orphan<ParamBoolean>): void {\n __S.setUint16(4, 10, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownAllowTreasury(): capnp.Orphan<ParamBoolean> { return __S.disown(this.getAllowTreasury()); }\n getAllowTreasury(): ParamBoolean {\n __S.testWhich(\"allowTreasury\", __S.getUint16(4, this), 10, this);\n return __S.getStruct(0, ParamBoolean, this);\n }\n hasAllowTreasury(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAllowTreasury(): ParamBoolean {\n __S.setUint16(4, 10, this);\n return __S.initStructAt(0, ParamBoolean, this);\n }\n isAllowTreasury(): boolean { return __S.getUint16(4, this) === 10; }\n setAllowTreasury(value: ParamBoolean): void {\n __S.setUint16(4, 10, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptGbbAmt(value: capnp.Orphan<ParamCountEight>): void {\n __S.setUint16(4, 13, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownGbbAmt(): capnp.Orphan<ParamCountEight> { return __S.disown(this.getGbbAmt()); }\n getGbbAmt(): ParamCountEight {\n __S.testWhich(\"gbbAmt\", __S.getUint16(4, this), 13, this);\n return __S.getStruct(0, ParamCountEight, this);\n }\n hasGbbAmt(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initGbbAmt(): ParamCountEight {\n __S.setUint16(4, 13, this);\n return __S.initStructAt(0, ParamCountEight, this);\n }\n isGbbAmt(): boolean { return __S.getUint16(4, this) === 13; }\n setGbbAmt(value: ParamCountEight): void {\n __S.setUint16(4, 13, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptGeeqNorm(value: capnp.Orphan<ParamCountEight>): void {\n __S.setUint16(4, 14, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownGeeqNorm(): capnp.Orphan<ParamCountEight> { return __S.disown(this.getGeeqNorm()); }\n getGeeqNorm(): ParamCountEight {\n __S.testWhich(\"geeqNorm\", __S.getUint16(4, this), 14, this);\n return __S.getStruct(0, ParamCountEight, this);\n }\n hasGeeqNorm(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initGeeqNorm(): ParamCountEight {\n __S.setUint16(4, 14, this);\n return __S.initStructAt(0, ParamCountEight, this);\n }\n isGeeqNorm(): boolean { return __S.getUint16(4, this) === 14; }\n setGeeqNorm(value: ParamCountEight): void {\n __S.setUint16(4, 14, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMetadataFixedBytes(value: capnp.Orphan<ParamCountTwo>): void {\n __S.setUint16(4, 16, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMetadataFixedBytes(): capnp.Orphan<ParamCountTwo> { return __S.disown(this.getMetadataFixedBytes()); }\n getMetadataFixedBytes(): ParamCountTwo {\n __S.testWhich(\"metadataFixedBytes\", __S.getUint16(4, this), 16, this);\n return __S.getStruct(0, ParamCountTwo, this);\n }\n hasMetadataFixedBytes(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMetadataFixedBytes(): ParamCountTwo {\n __S.setUint16(4, 16, this);\n return __S.initStructAt(0, ParamCountTwo, this);\n }\n isMetadataFixedBytes(): boolean { return __S.getUint16(4, this) === 16; }\n setMetadataFixedBytes(value: ParamCountTwo): void {\n __S.setUint16(4, 16, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMetadataFixedNum(value: capnp.Orphan<ParamCountTwo>): void {\n __S.setUint16(4, 17, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMetadataFixedNum(): capnp.Orphan<ParamCountTwo> { return __S.disown(this.getMetadataFixedNum()); }\n getMetadataFixedNum(): ParamCountTwo {\n __S.testWhich(\"metadataFixedNum\", __S.getUint16(4, this), 17, this);\n return __S.getStruct(0, ParamCountTwo, this);\n }\n hasMetadataFixedNum(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMetadataFixedNum(): ParamCountTwo {\n __S.setUint16(4, 17, this);\n return __S.initStructAt(0, ParamCountTwo, this);\n }\n isMetadataFixedNum(): boolean { return __S.getUint16(4, this) === 17; }\n setMetadataFixedNum(value: ParamCountTwo): void {\n __S.setUint16(4, 17, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMetadataVarBytes(value: capnp.Orphan<ParamCountTwo>): void {\n __S.setUint16(4, 18, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMetadataVarBytes(): capnp.Orphan<ParamCountTwo> { return __S.disown(this.getMetadataVarBytes()); }\n getMetadataVarBytes(): ParamCountTwo {\n __S.testWhich(\"metadataVarBytes\", __S.getUint16(4, this), 18, this);\n return __S.getStruct(0, ParamCountTwo, this);\n }\n hasMetadataVarBytes(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMetadataVarBytes(): ParamCountTwo {\n __S.setUint16(4, 18, this);\n return __S.initStructAt(0, ParamCountTwo, this);\n }\n isMetadataVarBytes(): boolean { return __S.getUint16(4, this) === 18; }\n setMetadataVarBytes(value: ParamCountTwo): void {\n __S.setUint16(4, 18, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMetadataVarNum(value: capnp.Orphan<ParamCountTwo>): void {\n __S.setUint16(4, 19, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMetadataVarNum(): capnp.Orphan<ParamCountTwo> { return __S.disown(this.getMetadataVarNum()); }\n getMetadataVarNum(): ParamCountTwo {\n __S.testWhich(\"metadataVarNum\", __S.getUint16(4, this), 19, this);\n return __S.getStruct(0, ParamCountTwo, this);\n }\n hasMetadataVarNum(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMetadataVarNum(): ParamCountTwo {\n __S.setUint16(4, 19, this);\n return __S.initStructAt(0, ParamCountTwo, this);\n }\n isMetadataVarNum(): boolean { return __S.getUint16(4, this) === 19; }\n setMetadataVarNum(value: ParamCountTwo): void {\n __S.setUint16(4, 19, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptMinTxAmt(value: capnp.Orphan<ParamCountEight>): void {\n __S.setUint16(4, 25, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownMinTxAmt(): capnp.Orphan<ParamCountEight> { return __S.disown(this.getMinTxAmt()); }\n getMinTxAmt(): ParamCountEight {\n __S.testWhich(\"minTxAmt\", __S.getUint16(4, this), 25, this);\n return __S.getStruct(0, ParamCountEight, this);\n }\n hasMinTxAmt(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initMinTxAmt(): ParamCountEight {\n __S.setUint16(4, 25, this);\n return __S.initStructAt(0, ParamCountEight, this);\n }\n isMinTxAmt(): boolean { return __S.getUint16(4, this) === 25; }\n setMinTxAmt(value: ParamCountEight): void {\n __S.setUint16(4, 25, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptNtlMaxNum(value: capnp.Orphan<ParamCountTwo>): void {\n __S.setUint16(4, 15, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownNtlMaxNum(): capnp.Orphan<ParamCountTwo> { return __S.disown(this.getNtlMaxNum()); }\n getNtlMaxNum(): ParamCountTwo {\n __S.testWhich(\"ntlMaxNum\", __S.getUint16(4, this), 15, this);\n return __S.getStruct(0, ParamCountTwo, this);\n }\n hasNtlMaxNum(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNtlMaxNum(): ParamCountTwo {\n __S.setUint16(4, 15, this);\n return __S.initStructAt(0, ParamCountTwo, this);\n }\n isNtlMaxNum(): boolean { return __S.getUint16(4, this) === 15; }\n setNtlMaxNum(value: ParamCountTwo): void {\n __S.setUint16(4, 15, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptRentInterval(value: capnp.Orphan<ParamCountEight>): void {\n __S.setUint16(4, 20, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownRentInterval(): capnp.Orphan<ParamCountEight> { return __S.disown(this.getRentInterval()); }\n getRentInterval(): ParamCountEight {\n __S.testWhich(\"rentInterval\", __S.getUint16(4, this), 20, this);\n return __S.getStruct(0, ParamCountEight, this);\n }\n hasRentInterval(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initRentInterval(): ParamCountEight {\n __S.setUint16(4, 20, this);\n return __S.initStructAt(0, ParamCountEight, this);\n }\n isRentInterval(): boolean { return __S.getUint16(4, this) === 20; }\n setRentInterval(value: ParamCountEight): void {\n __S.setUint16(4, 20, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptTargetAnchorNode(value: capnp.Orphan<ParamCountTwo>): void {\n __S.setUint16(4, 21, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownTargetAnchorNode(): capnp.Orphan<ParamCountTwo> { return __S.disown(this.getTargetAnchorNode()); }\n getTargetAnchorNode(): ParamCountTwo {\n __S.testWhich(\"targetAnchorNode\", __S.getUint16(4, this), 21, this);\n return __S.getStruct(0, ParamCountTwo, this);\n }\n hasTargetAnchorNode(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTargetAnchorNode(): ParamCountTwo {\n __S.setUint16(4, 21, this);\n return __S.initStructAt(0, ParamCountTwo, this);\n }\n isTargetAnchorNode(): boolean { return __S.getUint16(4, this) === 21; }\n setTargetAnchorNode(value: ParamCountTwo): void {\n __S.setUint16(4, 21, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptTargetAnonNode(value: capnp.Orphan<ParamCountTwo>): void {\n __S.setUint16(4, 22, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownTargetAnonNode(): capnp.Orphan<ParamCountTwo> { return __S.disown(this.getTargetAnonNode()); }\n getTargetAnonNode(): ParamCountTwo {\n __S.testWhich(\"targetAnonNode\", __S.getUint16(4, this), 22, this);\n return __S.getStruct(0, ParamCountTwo, this);\n }\n hasTargetAnonNode(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTargetAnonNode(): ParamCountTwo {\n __S.setUint16(4, 22, this);\n return __S.initStructAt(0, ParamCountTwo, this);\n }\n isTargetAnonNode(): boolean { return __S.getUint16(4, this) === 22; }\n setTargetAnonNode(value: ParamCountTwo): void {\n __S.setUint16(4, 22, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptTargetBlockInterval(value: capnp.Orphan<ParamCountEight>): void {\n __S.setUint16(4, 12, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownTargetBlockInterval(): capnp.Orphan<ParamCountEight> { return __S.disown(this.getTargetBlockInterval()); }\n getTargetBlockInterval(): ParamCountEight {\n __S.testWhich(\"targetBlockInterval\", __S.getUint16(4, this), 12, this);\n return __S.getStruct(0, ParamCountEight, this);\n }\n hasTargetBlockInterval(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTargetBlockInterval(): ParamCountEight {\n __S.setUint16(4, 12, this);\n return __S.initStructAt(0, ParamCountEight, this);\n }\n isTargetBlockInterval(): boolean { return __S.getUint16(4, this) === 12; }\n setTargetBlockInterval(value: ParamCountEight): void {\n __S.setUint16(4, 12, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptTargetCertNode(value: capnp.Orphan<ParamCountTwo>): void {\n __S.setUint16(4, 23, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownTargetCertNode(): capnp.Orphan<ParamCountTwo> { return __S.disown(this.getTargetCertNode()); }\n getTargetCertNode(): ParamCountTwo {\n __S.testWhich(\"targetCertNode\", __S.getUint16(4, this), 23, this);\n return __S.getStruct(0, ParamCountTwo, this);\n }\n hasTargetCertNode(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTargetCertNode(): ParamCountTwo {\n __S.setUint16(4, 23, this);\n return __S.initStructAt(0, ParamCountTwo, this);\n }\n isTargetCertNode(): boolean { return __S.getUint16(4, this) === 23; }\n setTargetCertNode(value: ParamCountTwo): void {\n __S.setUint16(4, 23, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptTargetGossipNet(value: capnp.Orphan<ParamCountTwo>): void {\n __S.setUint16(4, 24, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownTargetGossipNet(): capnp.Orphan<ParamCountTwo> { return __S.disown(this.getTargetGossipNet()); }\n getTargetGossipNet(): ParamCountTwo {\n __S.testWhich(\"targetGossipNet\", __S.getUint16(4, this), 24, this);\n return __S.getStruct(0, ParamCountTwo, this);\n }\n hasTargetGossipNet(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTargetGossipNet(): ParamCountTwo {\n __S.setUint16(4, 24, this);\n return __S.initStructAt(0, ParamCountTwo, this);\n }\n isTargetGossipNet(): boolean { return __S.getUint16(4, this) === 24; }\n setTargetGossipNet(value: ParamCountTwo): void {\n __S.setUint16(4, 24, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"ParamAcctRec_ParamType_\" + super.toString(); }\n which(): ParamAcctRec_ParamType_Which { return __S.getUint16(4, this); }\n}\nexport class ParamAcctRec extends __S {\n static readonly _capnp = { displayName: \"ParamAcctRec\", id: \"95f6e18b915682ef\", size: new __O(8, 2) };\n getParamType(): ParamAcctRec_ParamType { return __S.getAs(ParamAcctRec_ParamType, this); }\n initParamType(): ParamAcctRec_ParamType { return __S.getAs(ParamAcctRec_ParamType, this); }\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"ParamAcctRec_\" + super.toString(); }\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nexport const _capnpFileId = \"ce97aec2e3665956\";\nexport class SysAcctRec extends __S {\n static readonly _capnp = { displayName: \"SysAcctRec\", id: \"f784ad5bcf854133\", size: new __O(48, 3) };\n getNonce(): number { return __S.getUint32(0, this); }\n setNonce(value: number): void { __S.setUint32(0, value, this); }\n getAmtCoinUncommitted(): capnp.Uint64 { return __S.getUint64(8, this); }\n setAmtCoinUncommitted(value: capnp.Uint64): void { __S.setUint64(8, value, this); }\n getAmtCoinBurned(): capnp.Uint64 { return __S.getUint64(16, this); }\n setAmtCoinBurned(value: capnp.Uint64): void { __S.setUint64(16, value, this); }\n getAmtCoinCirculating(): capnp.Uint64 { return __S.getUint64(24, this); }\n setAmtCoinCirculating(value: capnp.Uint64): void { __S.setUint64(24, value, this); }\n getBlockNumCurrent(): number { return __S.getUint32(4, this); }\n setBlockNumCurrent(value: number): void { __S.setUint32(4, value, this); }\n getBlockNumNextRent(): number { return __S.getUint32(32, this); }\n setBlockNumNextRent(value: number): void { __S.setUint32(32, value, this); }\n getChainNum(): number { return __S.getUint32(36, this); }\n setChainNum(value: number): void { __S.setUint32(36, value, this); }\n getNodeNum(): number { return __S.getUint32(40, this); }\n setNodeNum(value: number): void { __S.setUint32(40, value, this); }\n adoptActiveNetHash(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownActiveNetHash(): capnp.Orphan<capnp.Data> { return __S.disown(this.getActiveNetHash()); }\n getActiveNetHash(): capnp.Data { return __S.getData(0, this); }\n hasActiveNetHash(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initActiveNetHash(length: number): capnp.Data { return __S.initData(0, length, this); }\n setActiveNetHash(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAcctNumAdminUser(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumAdminUser(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumAdminUser()); }\n getAcctNumAdminUser(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumAdminUser(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumAdminUser(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumAdminUser(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptAcctNumVal(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownAcctNumVal(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumVal()); }\n getAcctNumVal(): capnp.Data { return __S.getData(2, this); }\n hasAcctNumVal(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initAcctNumVal(length: number): capnp.Data { return __S.initData(2, length, this); }\n setAcctNumVal(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n toString(): string { return \"SysAcctRec_\" + super.toString(); }\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nimport { TokenAssetSubgroup, NftAssetSubgroup, CoinAssetRec, CoinHlRec, CoinMicroRec, CoinAcctRec } from \"./coinAcctRec.capnp\";\nimport { NetActorRec } from \"./netActorRec.capnp\";\nimport { ParamBoolean, ParamCountTwo, ParamCountEight, ParamAcctRec } from \"./paramAcctRec.capnp\";\nimport { MultiUserSubgroup, ProxyDceRec, ProxyFundingRec, ProxyMultisigRec, ProxyNftMintRec, ProxyTokenMintRec, ProxyAcctRec } from \"./proxyAcctRec.capnp\";\nimport { SysAcctRec } from \"./sysAcctRec.capnp\";\nexport const _capnpFileId = \"fc9fd9e8367eae85\";\nexport class NetActorList extends __S {\n static readonly _capnp = { displayName: \"NetActorList\", id: \"cb69154de78302bf\", size: new __O(0, 1) };\n static _NetActorRecs: capnp.ListCtor<NetActorRec>;\n adoptNetActorRecs(value: capnp.Orphan<capnp.List<NetActorRec>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownNetActorRecs(): capnp.Orphan<capnp.List<NetActorRec>> { return __S.disown(this.getNetActorRecs()); }\n getNetActorRecs(): capnp.List<NetActorRec> { return __S.getList(0, NetActorList._NetActorRecs, this); }\n hasNetActorRecs(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNetActorRecs(length: number): capnp.List<NetActorRec> { return __S.initList(0, NetActorList._NetActorRecs, length, this); }\n setNetActorRecs(value: capnp.List<NetActorRec>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"NetActorList_\" + super.toString(); }\n}\nexport class ParamAcctList extends __S {\n static readonly _capnp = { displayName: \"ParamAcctList\", id: \"9f10966c1823b346\", size: new __O(0, 1) };\n static _ParamAcctRecs: capnp.ListCtor<ParamAcctRec>;\n adoptParamAcctRecs(value: capnp.Orphan<capnp.List<ParamAcctRec>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownParamAcctRecs(): capnp.Orphan<capnp.List<ParamAcctRec>> { return __S.disown(this.getParamAcctRecs()); }\n getParamAcctRecs(): capnp.List<ParamAcctRec> { return __S.getList(0, ParamAcctList._ParamAcctRecs, this); }\n hasParamAcctRecs(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initParamAcctRecs(length: number): capnp.List<ParamAcctRec> { return __S.initList(0, ParamAcctList._ParamAcctRecs, length, this); }\n setParamAcctRecs(value: capnp.List<ParamAcctRec>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"ParamAcctList_\" + super.toString(); }\n}\nexport class ValLayLedger extends __S {\n static readonly _capnp = { displayName: \"ValLayLedger\", id: \"ce5af3ba903430bd\", size: new __O(8, 5) };\n static _CoinAcctRecs: capnp.ListCtor<CoinAcctRec>;\n static _ProxyAcctRecs: capnp.ListCtor<ProxyAcctRec>;\n getBlockNum(): number { return __S.getUint32(0, this); }\n setBlockNum(value: number): void { __S.setUint32(0, value, this); }\n getChainNum(): number { return __S.getUint32(4, this); }\n setChainNum(value: number): void { __S.setUint32(4, value, this); }\n adoptSysAcctRec(value: capnp.Orphan<SysAcctRec>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownSysAcctRec(): capnp.Orphan<SysAcctRec> { return __S.disown(this.getSysAcctRec()); }\n getSysAcctRec(): SysAcctRec { return __S.getStruct(0, SysAcctRec, this); }\n hasSysAcctRec(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initSysAcctRec(): SysAcctRec { return __S.initStructAt(0, SysAcctRec, this); }\n setSysAcctRec(value: SysAcctRec): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptNetActorList(value: capnp.Orphan<NetActorList>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownNetActorList(): capnp.Orphan<NetActorList> { return __S.disown(this.getNetActorList()); }\n getNetActorList(): NetActorList { return __S.getStruct(1, NetActorList, this); }\n hasNetActorList(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initNetActorList(): NetActorList { return __S.initStructAt(1, NetActorList, this); }\n setNetActorList(value: NetActorList): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n adoptParamAcctList(value: capnp.Orphan<ParamAcctList>): void { __S.adopt(value, __S.getPointer(2, this)); }\n disownParamAcctList(): capnp.Orphan<ParamAcctList> { return __S.disown(this.getParamAcctList()); }\n getParamAcctList(): ParamAcctList { return __S.getStruct(2, ParamAcctList, this); }\n hasParamAcctList(): boolean { return !__S.isNull(__S.getPointer(2, this)); }\n initParamAcctList(): ParamAcctList { return __S.initStructAt(2, ParamAcctList, this); }\n setParamAcctList(value: ParamAcctList): void { __S.copyFrom(value, __S.getPointer(2, this)); }\n adoptCoinAcctRecs(value: capnp.Orphan<capnp.List<CoinAcctRec>>): void { __S.adopt(value, __S.getPointer(3, this)); }\n disownCoinAcctRecs(): capnp.Orphan<capnp.List<CoinAcctRec>> { return __S.disown(this.getCoinAcctRecs()); }\n getCoinAcctRecs(): capnp.List<CoinAcctRec> { return __S.getList(3, ValLayLedger._CoinAcctRecs, this); }\n hasCoinAcctRecs(): boolean { return !__S.isNull(__S.getPointer(3, this)); }\n initCoinAcctRecs(length: number): capnp.List<CoinAcctRec> { return __S.initList(3, ValLayLedger._CoinAcctRecs, length, this); }\n setCoinAcctRecs(value: capnp.List<CoinAcctRec>): void { __S.copyFrom(value, __S.getPointer(3, this)); }\n adoptProxyAcctRecs(value: capnp.Orphan<capnp.List<ProxyAcctRec>>): void { __S.adopt(value, __S.getPointer(4, this)); }\n disownProxyAcctRecs(): capnp.Orphan<capnp.List<ProxyAcctRec>> { return __S.disown(this.getProxyAcctRecs()); }\n getProxyAcctRecs(): capnp.List<ProxyAcctRec> { return __S.getList(4, ValLayLedger._ProxyAcctRecs, this); }\n hasProxyAcctRecs(): boolean { return !__S.isNull(__S.getPointer(4, this)); }\n initProxyAcctRecs(length: number): capnp.List<ProxyAcctRec> { return __S.initList(4, ValLayLedger._ProxyAcctRecs, length, this); }\n setProxyAcctRecs(value: capnp.List<ProxyAcctRec>): void { __S.copyFrom(value, __S.getPointer(4, this)); }\n toString(): string { return \"ValLayLedger_\" + super.toString(); }\n}\nNetActorList._NetActorRecs = capnp.CompositeList(NetActorRec);\nParamAcctList._ParamAcctRecs = capnp.CompositeList(ParamAcctRec);\nValLayLedger._CoinAcctRecs = capnp.CompositeList(CoinAcctRec);\nValLayLedger._ProxyAcctRecs = capnp.CompositeList(ProxyAcctRec);\n","import type { CoinAcctRec } from '../capnp/coinAcctRec.capnp'\n\nimport { uint64ToPennies } from '../amount'\n\n/** Which coin record subtype an account is. Only `'asset'` may sign an attestation. */\nexport type GeeqCoinRecordKind = 'asset' | 'hl' | 'micro' | 'unknown'\n\n/** One coin account record, as plain values. */\nexport interface GeeqCoinAccount {\n readonly accountId: Uint8Array\n readonly kind: GeeqCoinRecordKind\n /**\n * `undefined` for a hash-lock record, which carries no nonce field at all, and for a\n * record whose subtype could not be read.\n */\n readonly nonce: number | undefined\n /** Balance in pennies. Use `formatGeeq` to show it. */\n readonly balance: bigint\n /** The NFTs it holds, in the order its record lists them. Read for coin-asset records only. */\n readonly nfts: readonly GeeqHeldNft[]\n}\n\n/** One NFT an account holds, as its record lists it. */\nexport interface GeeqHeldNft {\n /** The NFT's 32-byte id. */\n readonly id: Uint8Array\n /** A counterparty NFT moves only with a counterparty transaction, never a plain transfer. */\n readonly counterparty: boolean\n}\n\n/** What we keep per account. The id is the map key, so it is not repeated here. */\nexport interface CoinAccountFacts {\n readonly kind: GeeqCoinRecordKind\n readonly nonce: number | undefined\n readonly balance: bigint\n readonly nfts: readonly GeeqHeldNft[]\n}\n\n/**\n * Read a coin account's subtype and nonce without tripping the union's zero value.\n *\n * `getAsset()` throws on a record of another subtype, and — worse — `ASSET` is the\n * union's zero value, so a record whose tag is unset and whose pointer is null passes\n * capnp-ts's `testWhich`. `getStruct` then calls `initStruct`, MUTATING the decoded\n * message and handing back a zeroed struct whose `getNonce()` is `0`. A silent nonce of\n * zero is the worst possible failure here, so every arm is guarded by both `isX()` and\n * `hasX()` and an unreadable record reports `'unknown'` instead of a number.\n */\nexport function readCoinAccount(record: CoinAcctRec): CoinAccountFacts {\n const recType = record.getRecType()\n // The balance lives on the outer record, so every subtype has one.\n const balance = uint64ToPennies(record.getAmtCoin())\n\n if (recType.isAsset()) {\n if (!recType.hasAsset()) return { kind: 'unknown', nonce: undefined, balance, nfts: [] }\n const asset = recType.getAsset()\n const nfts = asset.getNftAssetSubgroups().toArray().map((nft) => ({\n id: new Uint8Array(nft.getAcctNumApp().toArrayBuffer()),\n counterparty: nft.getFlagCounterpartyNft(),\n }))\n return { kind: 'asset', nonce: asset.getNonce(), balance, nfts }\n }\n if (recType.isHl()) {\n // Hash-lock records have no nonce field in the schema at all.\n return { kind: 'hl', nonce: undefined, balance, nfts: [] }\n }\n if (recType.isMicro()) {\n return recType.hasMicro()\n ? { kind: 'micro', nonce: recType.getMicro().getNonce(), balance, nfts: [] }\n : { kind: 'unknown', nonce: undefined, balance, nfts: [] }\n }\n return { kind: 'unknown', nonce: undefined, balance, nfts: [] }\n}\n","import { resolveAccountId } from '../crypto/account-id'\nimport type { AccountRef } from '../crypto/account-id'\nimport { fromBase64, toBase64 } from '../encoding/base64'\nimport type { GeeqMetadataLimits } from '../types'\nimport type { CoinAccountFacts, GeeqCoinAccount } from './coin-accounts'\nimport type { GeeqLedgerNode } from './net-actors'\nimport type { GeeqProxyAccount, ProxyAccountFacts } from './proxy-accounts'\n\n/** @internal — built by {@link decodeValidationLedger}, never by hand. */\nexport interface GeeqLedgerInit {\n readonly chainNumber: number\n readonly blockNumber: number\n readonly nodes: readonly GeeqLedgerNode[]\n readonly metadataLimits: GeeqMetadataLimits | undefined\n readonly minimumTransfer: bigint | undefined\n readonly geeqNorm: bigint | undefined\n readonly accounts: ReadonlyMap<string, CoinAccountFacts>\n readonly proxies: ReadonlyMap<string, ProxyAccountFacts>\n readonly readAt: number\n readonly nodeUrl: string | undefined\n}\n\n/**\n * One validation layer ledger, decoded into plain values.\n *\n * This is a snapshot, not a view: the Cap'n Proto `Message` it came from is released\n * the moment decoding finishes. That is deliberate and load-bearing. capnp-ts counts a\n * traversal budget per `Message` and never resets it, so a retained handle rescanned on\n * every transaction eventually throws `PTR_TRAVERSAL_LIMIT_EXCEEDED`; and reading a\n * malformed union arm mutates the message in place. Neither can happen to a snapshot.\n *\n * It holds no WebAssembly handle, so unlike a keypair it needs no `dispose()`.\n */\nexport class GeeqLedger {\n /** The ledger's own chain number. A transaction must name exactly this. */\n readonly chainNumber: number\n /** N — the last block committed to this ledger. */\n readonly blockNumber: number\n /** N + 1 — the block a transaction built now should ask for. */\n readonly targetBlockNumber: number\n /** Every net actor, in ledger order. */\n readonly nodes: readonly GeeqLedgerNode[]\n /** Undefined when this chain publishes no metadata parameters. */\n readonly metadataLimits: GeeqMetadataLimits | undefined\n /**\n * The smallest transfer this chain accepts, in pennies.\n *\n * Undefined when the chain does not publish the parameters it is derived from.\n */\n readonly minimumTransfer: bigint | undefined\n /**\n * The chain's `geeqNorm` parameter, which the minimum transfer and every fee are\n * multiples of. Undefined when the chain does not publish it.\n */\n readonly geeqNorm: bigint | undefined\n /** `Date.now()` when this was read, so callers can judge staleness. */\n readonly readAt: number\n /** The node it was read from, when it came from one. */\n readonly nodeUrl: string | undefined\n\n // Deliberately a TypeScript `private`, not a `#private` field. A `#private` is\n // unreachable through a Proxy, which breaks Vue's ref() — the same trap documented\n // on Keypair in src/crypto/keypair.ts. Non-enumerable so it stays out of logs and\n // structured clones, since on a busy chain it is the largest thing here.\n private readonly accounts!: ReadonlyMap<string, CoinAccountFacts>\n private readonly proxies!: ReadonlyMap<string, ProxyAccountFacts>\n\n /** @internal */\n constructor(init: GeeqLedgerInit) {\n this.chainNumber = init.chainNumber\n this.blockNumber = init.blockNumber\n this.targetBlockNumber = init.blockNumber + 1\n this.nodes = Object.freeze([...init.nodes])\n this.metadataLimits = init.metadataLimits\n this.minimumTransfer = init.minimumTransfer\n this.geeqNorm = init.geeqNorm\n this.readAt = init.readAt\n this.nodeUrl = init.nodeUrl\n Object.defineProperty(this, 'accounts', {\n value: init.accounts,\n enumerable: false,\n writable: false,\n })\n Object.defineProperty(this, 'proxies', {\n value: init.proxies,\n enumerable: false,\n writable: false,\n })\n }\n\n /** The nodes that will actually accept a transaction. */\n get processingNodes(): readonly GeeqLedgerNode[] {\n return this.nodes.filter((node) => node.processing)\n }\n\n /**\n * Find a net actor record.\n *\n * By `host` this matches the bare IP and nothing else — every first-party client does\n * the same, because a record's `port` is the node's internal listen port while clients\n * connect through a proxy on another one. Matching on both finds nothing.\n */\n findNode(match: { readonly host: string } | { readonly nodeNumber: number }): GeeqLedgerNode | undefined {\n if ('nodeNumber' in match) {\n return this.nodes.find((node) => node.nodeNumber === match.nodeNumber)\n }\n return this.nodes.find((node) => node.host === match.host)\n }\n\n /** Every net actor record at one host. More than one is possible, and ambiguous. */\n findNodes(host: string): readonly GeeqLedgerNode[] {\n return this.nodes.filter((node) => node.host === host)\n }\n\n /**\n * The signing account's coin record, or `undefined` when this chain has none for it.\n *\n * Absence is the ordinary state of a freshly generated keypair: an account appears in\n * the ledger only once it has been funded.\n */\n findCoinAccount(account: AccountRef): GeeqCoinAccount | undefined {\n const accountId = resolveAccountId(account)\n const facts = this.accounts.get(toBase64(accountId))\n if (facts === undefined) return undefined\n return Object.freeze({\n accountId,\n kind: facts.kind,\n nonce: facts.nonce,\n balance: facts.balance,\n nfts: facts.nfts,\n })\n }\n\n /** A proxy record, or `undefined` when this chain has none with that id. */\n findProxyAccount(account: AccountRef): GeeqProxyAccount | undefined {\n const accountId = resolveAccountId(account)\n const facts = this.proxies.get(toBase64(accountId))\n if (facts === undefined) return undefined\n return Object.freeze({ accountId, ...facts })\n }\n\n /**\n * Every NFT mint proxy an account administers — the ones it can mint through.\n *\n * Found by the admin each record names, so it needs nothing remembered from when they\n * were created.\n */\n findProxyAccounts(match: { readonly admin: AccountRef }): readonly GeeqProxyAccount[] {\n const admin = toBase64(resolveAccountId(match.admin))\n const found: GeeqProxyAccount[] = []\n for (const [key, facts] of this.proxies) {\n if (facts.admin !== undefined && toBase64(facts.admin) === admin) {\n found.push(Object.freeze({ accountId: fromBase64(key), ...facts }))\n }\n }\n return found\n }\n\n /** How many coin accounts this ledger carries. Mostly useful for diagnostics. */\n get coinAccountCount(): number {\n return this.accounts.size\n }\n\n /** Summary only — the account table is far too large to serialise. */\n toJSON(): Record<string, unknown> {\n return {\n chainNumber: this.chainNumber,\n blockNumber: this.blockNumber,\n targetBlockNumber: this.targetBlockNumber,\n nodes: this.nodes,\n metadataLimits: this.metadataLimits,\n minimumTransfer: this.minimumTransfer?.toString(),\n geeqNorm: this.geeqNorm?.toString(),\n coinAccountCount: this.coinAccountCount,\n proxyAccountCount: this.proxies.size,\n readAt: this.readAt,\n nodeUrl: this.nodeUrl,\n }\n }\n\n toString(): string {\n return `GeeqLedger(chain ${this.chainNumber}, block ${this.blockNumber}, ${this.nodes.length} nodes)`\n }\n}\n","import {\n NetActorStatus as CapnpNetActorStatus,\n NetActorType as CapnpNetActorType,\n} from '../capnp/netActorRec.capnp'\n\n/** What kind of actor a net actor record describes. */\nexport type GeeqNodeRole =\n | 'anchor-node'\n | 'anon-node'\n | 'cert-node'\n | 'cert-authority'\n | 'chain-admin'\n | 'relay'\n | 'treasury-agent'\n | 'unknown'\n\n/** What that actor is currently doing. */\nexport type GeeqNodeStatus =\n | 'chain-admin'\n | 'hub'\n | 'leaving'\n | 'listening'\n | 'node'\n | 'ready'\n | 'relay'\n | 'suspended'\n | 'unknown'\n\nconst ROLES: Readonly<Record<number, GeeqNodeRole>> = Object.freeze({\n [CapnpNetActorType.NET_ACTOR_TYPE_ANCHOR_NODE]: 'anchor-node',\n [CapnpNetActorType.NET_ACTOR_TYPE_ANON_NODE]: 'anon-node',\n [CapnpNetActorType.NET_ACTOR_TYPE_CERT_NODE]: 'cert-node',\n [CapnpNetActorType.NET_ACTOR_TYPE_CERT_AUTH]: 'cert-authority',\n [CapnpNetActorType.NET_ACTOR_TYPE_CHAIN_ADMIN]: 'chain-admin',\n [CapnpNetActorType.NET_ACTOR_TYPE_RELAY]: 'relay',\n [CapnpNetActorType.NET_ACTOR_TYPE_TREASURY_AGENT]: 'treasury-agent',\n})\n\nconst STATUSES: Readonly<Record<number, GeeqNodeStatus>> = Object.freeze({\n [CapnpNetActorStatus.NET_ACTOR_STATUS_CHAIN_ADMIN]: 'chain-admin',\n [CapnpNetActorStatus.NET_ACTOR_STATUS_HUB]: 'hub',\n [CapnpNetActorStatus.NET_ACTOR_STATUS_LEAVING]: 'leaving',\n [CapnpNetActorStatus.NET_ACTOR_STATUS_LISTENING]: 'listening',\n [CapnpNetActorStatus.NET_ACTOR_STATUS_NODE]: 'node',\n [CapnpNetActorStatus.NET_ACTOR_STATUS_READY]: 'ready',\n [CapnpNetActorStatus.NET_ACTOR_STATUS_RELAY]: 'relay',\n [CapnpNetActorStatus.NET_ACTOR_STATUS_SUSPENDED]: 'suspended',\n})\n\n/**\n * Unknown values map to `'unknown'` rather than throwing.\n *\n * This deliberately differs from `fromWasmRecordType`, which throws: a bad record type\n * means a corrupt address, but a new actor kind on a newer chain must not make an\n * otherwise-valid ledger undecodable. An `'unknown'` actor is never `processing`, so\n * the safe outcome is the default.\n */\nexport function toNodeRole(value: number): GeeqNodeRole {\n return ROLES[value] ?? 'unknown'\n}\n\nexport function toNodeStatus(value: number): GeeqNodeStatus {\n return STATUSES[value] ?? 'unknown'\n}\n\n/** Roles that run the transaction handler at all. */\nconst PROCESSING_ROLES: ReadonlySet<GeeqNodeRole> = new Set<GeeqNodeRole>([\n 'anon-node',\n 'anchor-node',\n 'cert-node',\n])\n\n/** Statuses in which such a role actually accepts transactions. */\nconst PROCESSING_STATUSES: ReadonlySet<GeeqNodeStatus> = new Set<GeeqNodeStatus>(['node', 'hub'])\n\n/**\n * Whether this actor will accept a transaction.\n *\n * Mirrors `isActive()` in the node itself\n * (geeq_node_core/src/wrappers/network-actor-record/index.ts). Anything else answers\n * HTTP 400 `'not processing'`, or — for a relay — registers no handler at all.\n */\nexport function isProcessing(role: GeeqNodeRole, status: GeeqNodeStatus): boolean {\n return PROCESSING_ROLES.has(role) && PROCESSING_STATUSES.has(status)\n}\n\n/** One net actor record, as plain values. */\nexport interface GeeqLedgerNode {\n /** `nodeNumSelf` — what a transaction must name, checked with strict equality. */\n readonly nodeNumber: number\n /** The bare IP the ledger records. Nodes are matched on this and nothing else. */\n readonly host: string\n /**\n * The port recorded against this node in the ledger.\n *\n * **Not the port you connect to.** Clients always reach a node on 2082, where TLS is\n * terminated; every first-party client ignores this field and rebuilds the URL from\n * its own configuration. Exposed for diagnostics, and used only to break a tie when\n * one address carries several records.\n */\n readonly port: number\n readonly role: GeeqNodeRole\n readonly status: GeeqNodeStatus\n /**\n * True when the protocol permits this node to accept transactions.\n *\n * **Not a liveness signal.** Nothing in the protocol evicts a crashed node from the\n * net actor list, and `blockNumLiveness` is rewritten for every actor on every commit\n * rather than per node, so it carries no health information at all. A node that died\n * an hour ago still reads as processing here. The only way to learn a node is up is\n * to talk to it.\n */\n readonly processing: boolean\n /**\n * `blockNumRemove` — the block at which this node's turn in the active set ends.\n *\n * Reset 100–355 blocks ahead each time the node is promoted, so it is a rotation\n * deadline rather than a departure flag.\n */\n readonly retiresAtBlock: number\n /**\n * True when this node is inside its own shutdown window and will refuse work.\n *\n * The node's submit handler answers HTTP 503 `'Block chain is stopped'` once its\n * `blockNumRemove` is less than its current block plus two, so this is knowable from\n * the ledger before a transaction is ever built.\n */\n readonly retiring: boolean\n}\n","import type { ParamAcctRec } from '../capnp/paramAcctRec.capnp'\n\nimport { uint64ToPennies } from '../amount'\nimport type { GeeqMetadataLimits } from '../types'\n\n/**\n * Read the metadata limits a chain publishes in its parameter account list.\n *\n * `metadataVarNum` caps the NUMBER of entries and `metadataVarBytes` caps the bytes in\n * ONE entry; there is no aggregate cap. The node enforces both at submit time, so\n * having them here is what lets a transaction be rejected before it is signed rather\n * than after it is sent.\n *\n * Returns `undefined` when either parameter is absent. A chain that does not publish\n * them is a schema difference, not a caller error, so the preflight is skipped and the\n * node stays the authority.\n *\n * `metadataFixedNum` / `metadataFixedBytes` exist in the schema but are read nowhere in\n * the current node, so they are ignored here too.\n */\nexport function readMetadataLimits(\n records: readonly ParamAcctRec[],\n): GeeqMetadataLimits | undefined {\n let maxEntries: number | undefined\n let maxBytesPerEntry: number | undefined\n\n for (const record of records) {\n const param = record.getParamType()\n if (maxEntries === undefined && param.isMetadataVarNum() && param.hasMetadataVarNum()) {\n maxEntries = param.getMetadataVarNum().getCurrentValue()\n continue\n }\n if (\n maxBytesPerEntry === undefined &&\n param.isMetadataVarBytes() &&\n param.hasMetadataVarBytes()\n ) {\n maxBytesPerEntry = param.getMetadataVarBytes().getCurrentValue()\n }\n }\n\n if (maxEntries === undefined || maxBytesPerEntry === undefined) return undefined\n return Object.freeze({ maxEntries, maxBytesPerEntry })\n}\n\n/**\n * The smallest transfer this chain will accept, in pennies: `minTxAmt × geeqNorm + 1`.\n *\n * The node rejects anything below `minTxAmt × geeqNorm` (geeq_node_core, Transaction\n * Amount Conformity); the Geeq wallet asks for one penny more, and so does this. Knowing\n * it here turns a rejected transaction into a message before it is signed.\n *\n * Returns `undefined` when either parameter is missing, in which case nothing is checked\n * and the node stays the authority.\n */\nexport function readMinimumTransfer(\n records: readonly ParamAcctRec[],\n): bigint | undefined {\n const geeqNorm = readGeeqNorm(records)\n for (const record of records) {\n const param = record.getParamType()\n if (param.isMinTxAmt() && param.hasMinTxAmt()) {\n if (geeqNorm === undefined) return undefined\n return uint64ToPennies(param.getMinTxAmt().getCurrentValue()) * geeqNorm + 1n\n }\n }\n return undefined\n}\n\n/**\n * The chain's `geeqNorm` parameter: the multiplier behind its minimum transfer and every\n * fee. `undefined` when the chain does not publish it.\n */\nexport function readGeeqNorm(records: readonly ParamAcctRec[]): bigint | undefined {\n for (const record of records) {\n const param = record.getParamType()\n if (param.isGeeqNorm() && param.hasGeeqNorm()) {\n return uint64ToPennies(param.getGeeqNorm().getCurrentValue())\n }\n }\n return undefined\n}\n","import type { ProxyAcctRec } from '../capnp/proxyAcctRec.capnp'\n\nimport { uint64ToPennies } from '../amount'\n\n/** Which kind of proxy a record is. Only `'nft-mint'` is read further. */\nexport type GeeqProxyKind = 'nft-mint' | 'token-mint' | 'funding' | 'multisig' | 'dce' | 'unknown'\n\n/** One proxy account record, as plain values. */\nexport interface GeeqProxyAccount {\n readonly accountId: Uint8Array\n readonly kind: GeeqProxyKind\n /**\n * The proxy's own nonce. A mint through it spends this one, not the admin's — a proxy\n * carries its nonce on the record itself.\n */\n readonly nonce: number\n /** Balance in pennies. Use `formatGeeq` to show it. */\n readonly balance: bigint\n /** The account id of the only key that can sign for it. Read for NFT mint proxies only. */\n readonly admin: Uint8Array | undefined\n}\n\n/** What we keep per proxy. The id is the map key, so it is not repeated here. */\nexport type ProxyAccountFacts = Omit<GeeqProxyAccount, 'accountId'>\n\n/**\n * Read a proxy record's kind and admin.\n *\n * The same zero-value trap as a coin account: `DCE` is the union's zero value, so every\n * arm is checked with `isX()` before anything is read from it.\n */\nexport function readProxyAccount(record: ProxyAcctRec): ProxyAccountFacts {\n const recType = record.getRecType()\n const nonce = record.getNonce()\n const balance = uint64ToPennies(record.getAmtCoin())\n\n if (recType.isNftMint() && recType.hasNftMint()) {\n const admin = new Uint8Array(recType.getNftMint().getAcctNumAdminUser().toArrayBuffer())\n return { kind: 'nft-mint', nonce, balance, admin }\n }\n const kind = recType.isTokenMint()\n ? 'token-mint'\n : recType.isFunding()\n ? 'funding'\n : recType.isMultisig()\n ? 'multisig'\n : recType.isDce() && recType.hasDce()\n ? 'dce'\n : 'unknown'\n return { kind, nonce, balance, admin: undefined }\n}\n","import { Message } from 'capnp-ts'\nimport { ValLayLedger as CapnpValLayLedger } from '../capnp/valLayLedger.capnp'\n\nimport { MAX_UINT32 } from '../assert'\nimport { fromBase64, toBase64 } from '../encoding/base64'\nimport { GeeqError, ledgerUnreadable } from '../errors'\nimport type { CoinAccountFacts } from './coin-accounts'\nimport { readCoinAccount } from './coin-accounts'\nimport { GeeqLedger } from './geeq-ledger'\nimport type { GeeqLedgerNode } from './net-actors'\nimport { isProcessing, toNodeRole, toNodeStatus } from './net-actors'\nimport { readGeeqNorm, readMetadataLimits, readMinimumTransfer } from './params'\nimport type { ProxyAccountFacts } from './proxy-accounts'\nimport { readProxyAccount } from './proxy-accounts'\n\nexport interface DecodeLedgerOptions {\n /** The node this came from, carried through onto the snapshot. */\n readonly nodeUrl?: string | undefined\n /** Overrides the read timestamp. For deterministic tests. */\n readonly readAt?: number | undefined\n}\n\n/**\n * Decode a validation layer ledger.\n *\n * `source` is what a node's `result` field holds: base64, or the bytes behind it. The\n * message is Cap'n Proto **packed**, which is what the node writes with\n * `toPackedArrayBuffer()` — not the flattened form used for signing.\n *\n * Everything is read in this one pass and the message is then dropped, so the caller\n * gets plain values with no traversal budget attached. See {@link GeeqLedger}.\n */\nexport function decodeValidationLedger(\n source: Uint8Array | ArrayBuffer | string,\n options: DecodeLedgerOptions = {},\n): GeeqLedger {\n const bytes =\n typeof source === 'string'\n ? fromBase64(source, 'The ledger')\n : source instanceof ArrayBuffer\n ? new Uint8Array(source)\n : source\n\n if (bytes.length === 0) {\n throw ledgerUnreadable(\n 'The ledger is empty. A node reports this before it has committed its first ' +\n 'block and while it is resyncing — wait and retry, or read from another node ' +\n 'on the same chain.',\n )\n }\n\n let ledger\n try {\n ledger = new Message(bytes, true).getRoot(CapnpValLayLedger)\n } catch (cause) {\n throw ledgerUnreadable(\n `Could not decode ${bytes.length} bytes as a packed Cap'n Proto ValLayLedger. ` +\n 'The node is probably running a schema version this SDK does not know — ' +\n 'upgrade @geeqdev/geeq-sdk, or read the chain state yourself.',\n cause,\n )\n }\n\n try {\n const chainNumber = ledger.getChainNum()\n const blockNumber = ledger.getBlockNum()\n\n if (blockNumber >= MAX_UINT32) {\n // Every transaction targets blockNumber + 1, which would overflow the uint32 the\n // protocol encodes it in. Refuse rather than silently wrap to zero.\n throw ledgerUnreadable(\n `The ledger reports block ${blockNumber}, the maximum a uint32 can hold, so no ` +\n 'transaction can target the next block. The ledger is almost certainly corrupt.',\n )\n }\n\n const nodes: GeeqLedgerNode[] = ledger\n .getNetActorList()\n .getNetActorRecs()\n .toArray()\n .map((record) => {\n const role = toNodeRole(record.getNetActorType())\n const status = toNodeStatus(record.getRecStatus())\n const retiresAtBlock = record.getBlockNumRemove()\n return Object.freeze({\n nodeNumber: record.getNodeNumSelf(),\n host: record.getIpAddr(),\n port: record.getPortNum(),\n role,\n status,\n processing: isProcessing(role, status),\n retiresAtBlock,\n // The node's own guard compares its blockNumRemove against its current block\n // plus two, and the ledger's block is that current block.\n retiring: retiresAtBlock < blockNumber + 2,\n })\n })\n\n const params = ledger.getParamAcctList().getParamAcctRecs().toArray()\n\n // A plausibility gate. Packed capnp can \"succeed\" on garbage and yield a message of\n // zeros, which would otherwise surface much later as chain 0, block 0 and a missing\n // account. A real ledger always carries net actors and parameters.\n if (nodes.length === 0 || params.length === 0) {\n throw ledgerUnreadable(\n `The ledger decoded but does not look like one: chain ${chainNumber}, block ` +\n `${blockNumber}, ${nodes.length} net actor records, ${params.length} parameter ` +\n 'records. A real ledger always has at least one of each, so this URL is ' +\n 'probably not a Geeq node.',\n )\n }\n\n const accounts = new Map<string, CoinAccountFacts>()\n const coinAccounts = ledger.getCoinAcctRecs()\n for (let index = 0; index < coinAccounts.getLength(); index += 1) {\n const record = coinAccounts.get(index)\n const accountId = new Uint8Array(record.getAcctNumVal().toArrayBuffer())\n accounts.set(toBase64(accountId), readCoinAccount(record))\n }\n\n const proxies = new Map<string, ProxyAccountFacts>()\n for (const record of ledger.getProxyAcctRecs().toArray()) {\n const accountId = new Uint8Array(record.getAcctNumVal().toArrayBuffer())\n proxies.set(toBase64(accountId), readProxyAccount(record))\n }\n\n return new GeeqLedger({\n chainNumber,\n blockNumber,\n nodes,\n metadataLimits: readMetadataLimits(params),\n minimumTransfer: readMinimumTransfer(params),\n geeqNorm: readGeeqNorm(params),\n accounts,\n proxies,\n readAt: options.readAt ?? Date.now(),\n nodeUrl: options.nodeUrl,\n })\n } catch (cause) {\n if (cause instanceof GeeqError) throw cause\n throw ledgerUnreadable(\n 'The ledger decoded but its contents could not be read. The node is probably ' +\n 'running a schema version this SDK does not know.',\n cause,\n )\n }\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nimport { MetadataEntry, AttestationSubgroupData, AttestationSubgroup } from \"./payload.capnp\";\nexport const _capnpFileId = \"9ec3746dd61302cf\";\nexport class AppCounterpartyRec extends __S {\n static readonly _capnp = { displayName: \"AppCounterpartyRec\", id: \"af4fb7d47ed69ca8\", size: new __O(0, 1) };\n static _AttestationSubgroups: capnp.ListCtor<AttestationSubgroup>;\n adoptAttestationSubgroups(value: capnp.Orphan<capnp.List<AttestationSubgroup>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAttestationSubgroups(): capnp.Orphan<capnp.List<AttestationSubgroup>> { return __S.disown(this.getAttestationSubgroups()); }\n getAttestationSubgroups(): capnp.List<AttestationSubgroup> { return __S.getList(0, AppCounterpartyRec._AttestationSubgroups, this); }\n hasAttestationSubgroups(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestationSubgroups(length: number): capnp.List<AttestationSubgroup> { return __S.initList(0, AppCounterpartyRec._AttestationSubgroups, length, this); }\n setAttestationSubgroups(value: capnp.List<AttestationSubgroup>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"AppCounterpartyRec_\" + super.toString(); }\n}\nexport class AppDceRec extends __S {\n static readonly _capnp = { displayName: \"AppDceRec\", id: \"bf9343b8032d56c5\", size: new __O(0, 1) };\n static _AttestationSubgroups: capnp.ListCtor<AttestationSubgroup>;\n adoptAttestationSubgroups(value: capnp.Orphan<capnp.List<AttestationSubgroup>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAttestationSubgroups(): capnp.Orphan<capnp.List<AttestationSubgroup>> { return __S.disown(this.getAttestationSubgroups()); }\n getAttestationSubgroups(): capnp.List<AttestationSubgroup> { return __S.getList(0, AppDceRec._AttestationSubgroups, this); }\n hasAttestationSubgroups(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestationSubgroups(length: number): capnp.List<AttestationSubgroup> { return __S.initList(0, AppDceRec._AttestationSubgroups, length, this); }\n setAttestationSubgroups(value: capnp.List<AttestationSubgroup>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"AppDceRec_\" + super.toString(); }\n}\nexport class AppNftRec extends __S {\n static readonly _capnp = { displayName: \"AppNftRec\", id: \"fbc6ff8babb8c50a\", size: new __O(0, 1) };\n adoptAttestationSubgroup(value: capnp.Orphan<AttestationSubgroup>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAttestationSubgroup(): capnp.Orphan<AttestationSubgroup> { return __S.disown(this.getAttestationSubgroup()); }\n getAttestationSubgroup(): AttestationSubgroup { return __S.getStruct(0, AttestationSubgroup, this); }\n hasAttestationSubgroup(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestationSubgroup(): AttestationSubgroup { return __S.initStructAt(0, AttestationSubgroup, this); }\n setAttestationSubgroup(value: AttestationSubgroup): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"AppNftRec_\" + super.toString(); }\n}\nexport class AppStackableRec extends __S {\n static readonly _capnp = { displayName: \"AppStackableRec\", id: \"cdd062ed7d86209c\", size: new __O(0, 1) };\n static _AttestationSubgroups: capnp.ListCtor<AttestationSubgroup>;\n adoptAttestationSubgroups(value: capnp.Orphan<capnp.List<AttestationSubgroup>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownAttestationSubgroups(): capnp.Orphan<capnp.List<AttestationSubgroup>> { return __S.disown(this.getAttestationSubgroups()); }\n getAttestationSubgroups(): capnp.List<AttestationSubgroup> { return __S.getList(0, AppStackableRec._AttestationSubgroups, this); }\n hasAttestationSubgroups(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initAttestationSubgroups(length: number): capnp.List<AttestationSubgroup> { return __S.initList(0, AppStackableRec._AttestationSubgroups, length, this); }\n setAttestationSubgroups(value: capnp.List<AttestationSubgroup>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"AppStackableRec_\" + super.toString(); }\n}\nexport enum AppLayRec_RecType_Which {\n COUNTERPARTY = 0,\n DCE = 1,\n NFT = 2,\n STACKABLE = 3\n}\nexport class AppLayRec_RecType extends __S {\n static readonly COUNTERPARTY = AppLayRec_RecType_Which.COUNTERPARTY;\n static readonly DCE = AppLayRec_RecType_Which.DCE;\n static readonly NFT = AppLayRec_RecType_Which.NFT;\n static readonly STACKABLE = AppLayRec_RecType_Which.STACKABLE;\n static readonly _capnp = { displayName: \"recType\", id: \"b322cc20c9120cdb\", size: new __O(8, 2) };\n adoptCounterparty(value: capnp.Orphan<AppCounterpartyRec>): void {\n __S.setUint16(0, 0, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownCounterparty(): capnp.Orphan<AppCounterpartyRec> { return __S.disown(this.getCounterparty()); }\n getCounterparty(): AppCounterpartyRec {\n __S.testWhich(\"counterparty\", __S.getUint16(0, this), 0, this);\n return __S.getStruct(0, AppCounterpartyRec, this);\n }\n hasCounterparty(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initCounterparty(): AppCounterpartyRec {\n __S.setUint16(0, 0, this);\n return __S.initStructAt(0, AppCounterpartyRec, this);\n }\n isCounterparty(): boolean { return __S.getUint16(0, this) === 0; }\n setCounterparty(value: AppCounterpartyRec): void {\n __S.setUint16(0, 0, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptDce(value: capnp.Orphan<AppDceRec>): void {\n __S.setUint16(0, 1, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownDce(): capnp.Orphan<AppDceRec> { return __S.disown(this.getDce()); }\n getDce(): AppDceRec {\n __S.testWhich(\"dce\", __S.getUint16(0, this), 1, this);\n return __S.getStruct(0, AppDceRec, this);\n }\n hasDce(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initDce(): AppDceRec {\n __S.setUint16(0, 1, this);\n return __S.initStructAt(0, AppDceRec, this);\n }\n isDce(): boolean { return __S.getUint16(0, this) === 1; }\n setDce(value: AppDceRec): void {\n __S.setUint16(0, 1, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptNft(value: capnp.Orphan<AppNftRec>): void {\n __S.setUint16(0, 2, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownNft(): capnp.Orphan<AppNftRec> { return __S.disown(this.getNft()); }\n getNft(): AppNftRec {\n __S.testWhich(\"nft\", __S.getUint16(0, this), 2, this);\n return __S.getStruct(0, AppNftRec, this);\n }\n hasNft(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initNft(): AppNftRec {\n __S.setUint16(0, 2, this);\n return __S.initStructAt(0, AppNftRec, this);\n }\n isNft(): boolean { return __S.getUint16(0, this) === 2; }\n setNft(value: AppNftRec): void {\n __S.setUint16(0, 2, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n adoptStackable(value: capnp.Orphan<AppStackableRec>): void {\n __S.setUint16(0, 3, this);\n __S.adopt(value, __S.getPointer(0, this));\n }\n disownStackable(): capnp.Orphan<AppStackableRec> { return __S.disown(this.getStackable()); }\n getStackable(): AppStackableRec {\n __S.testWhich(\"stackable\", __S.getUint16(0, this), 3, this);\n return __S.getStruct(0, AppStackableRec, this);\n }\n hasStackable(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initStackable(): AppStackableRec {\n __S.setUint16(0, 3, this);\n return __S.initStructAt(0, AppStackableRec, this);\n }\n isStackable(): boolean { return __S.getUint16(0, this) === 3; }\n setStackable(value: AppStackableRec): void {\n __S.setUint16(0, 3, this);\n __S.copyFrom(value, __S.getPointer(0, this));\n }\n toString(): string { return \"AppLayRec_RecType_\" + super.toString(); }\n which(): AppLayRec_RecType_Which { return __S.getUint16(0, this); }\n}\nexport class AppLayRec extends __S {\n static readonly _capnp = { displayName: \"AppLayRec\", id: \"ea6a5049023b7473\", size: new __O(8, 2) };\n getRecType(): AppLayRec_RecType { return __S.getAs(AppLayRec_RecType, this); }\n initRecType(): AppLayRec_RecType { return __S.getAs(AppLayRec_RecType, this); }\n adoptAcctNumApp(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAcctNumApp(): capnp.Orphan<capnp.Data> { return __S.disown(this.getAcctNumApp()); }\n getAcctNumApp(): capnp.Data { return __S.getData(1, this); }\n hasAcctNumApp(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAcctNumApp(length: number): capnp.Data { return __S.initData(1, length, this); }\n setAcctNumApp(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AppLayRec_\" + super.toString(); }\n}\nAppCounterpartyRec._AttestationSubgroups = capnp.CompositeList(AttestationSubgroup);\nAppDceRec._AttestationSubgroups = capnp.CompositeList(AttestationSubgroup);\nAppStackableRec._AttestationSubgroups = capnp.CompositeList(AttestationSubgroup);\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nexport const _capnpFileId = \"a2c151668ac14193\";\nexport class ByteString extends __S {\n static readonly _capnp = { displayName: \"ByteString\", id: \"c8f3678d8245b6ef\", size: new __O(0, 1) };\n adoptBytes(value: capnp.Orphan<capnp.Data>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownBytes(): capnp.Orphan<capnp.Data> { return __S.disown(this.getBytes()); }\n getBytes(): capnp.Data { return __S.getData(0, this); }\n hasBytes(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initBytes(length: number): capnp.Data { return __S.initData(0, length, this); }\n setBytes(value: capnp.Data): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n toString(): string { return \"ByteString_\" + super.toString(); }\n}\n","/* tslint:disable */\n\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nimport * as capnp from \"capnp-ts\";\nimport { ObjectSize as __O, Struct as __S } from 'capnp-ts';\nimport { AppCounterpartyRec, AppDceRec, AppNftRec, AppStackableRec, AppLayRec } from \"./appLayRec.capnp\";\nimport { ByteString } from \"./misc.capnp\";\nexport const _capnpFileId = \"a45ad15476ce444c\";\nexport class AppLayLedger extends __S {\n static readonly _capnp = { displayName: \"AppLayLedger\", id: \"93328856bc57f4b3\", size: new __O(8, 2) };\n static _TokenNames: capnp.ListCtor<ByteString>;\n static _AppLayRecs: capnp.ListCtor<AppLayRec>;\n getBlockNum(): number { return __S.getUint32(0, this); }\n setBlockNum(value: number): void { __S.setUint32(0, value, this); }\n getChainNum(): number { return __S.getUint32(4, this); }\n setChainNum(value: number): void { __S.setUint32(4, value, this); }\n adoptTokenNames(value: capnp.Orphan<capnp.List<ByteString>>): void { __S.adopt(value, __S.getPointer(0, this)); }\n disownTokenNames(): capnp.Orphan<capnp.List<ByteString>> { return __S.disown(this.getTokenNames()); }\n getTokenNames(): capnp.List<ByteString> { return __S.getList(0, AppLayLedger._TokenNames, this); }\n hasTokenNames(): boolean { return !__S.isNull(__S.getPointer(0, this)); }\n initTokenNames(length: number): capnp.List<ByteString> { return __S.initList(0, AppLayLedger._TokenNames, length, this); }\n setTokenNames(value: capnp.List<ByteString>): void { __S.copyFrom(value, __S.getPointer(0, this)); }\n adoptAppLayRecs(value: capnp.Orphan<capnp.List<AppLayRec>>): void { __S.adopt(value, __S.getPointer(1, this)); }\n disownAppLayRecs(): capnp.Orphan<capnp.List<AppLayRec>> { return __S.disown(this.getAppLayRecs()); }\n getAppLayRecs(): capnp.List<AppLayRec> { return __S.getList(1, AppLayLedger._AppLayRecs, this); }\n hasAppLayRecs(): boolean { return !__S.isNull(__S.getPointer(1, this)); }\n initAppLayRecs(length: number): capnp.List<AppLayRec> { return __S.initList(1, AppLayLedger._AppLayRecs, length, this); }\n setAppLayRecs(value: capnp.List<AppLayRec>): void { __S.copyFrom(value, __S.getPointer(1, this)); }\n toString(): string { return \"AppLayLedger_\" + super.toString(); }\n}\nAppLayLedger._TokenNames = capnp.CompositeList(ByteString);\nAppLayLedger._AppLayRecs = capnp.CompositeList(AppLayRec);\n","import { Message } from 'capnp-ts'\nimport { AppLayLedger as CapnpAppLayLedger } from '../capnp/appLayLedger.capnp'\n\nimport { fromBase64, toBase64 } from '../encoding/base64'\nimport { ledgerUnreadable } from '../errors'\n\n/** What the application layer ledger says one NFT stands for. */\nexport interface NftRecordFacts {\n readonly attestHash: Uint8Array\n readonly metadata: readonly string[]\n}\n\n/**\n * The NFT records in an application layer ledger, keyed by the NFT's base64 id.\n *\n * `source` is what a node's `result` holds for `type=all`: base64 packed Cap'n Proto, the\n * same form as the validation layer ledger. Other application records are skipped. As\n * with that ledger, the message is dropped once read.\n */\nexport function decodeNftRecords(source: string): Map<string, NftRecordFacts> {\n const bytes = fromBase64(source, 'The application layer ledger')\n const records = new Map<string, NftRecordFacts>()\n const decoder = new TextDecoder()\n try {\n const ledger = new Message(bytes, true).getRoot(CapnpAppLayLedger)\n for (const record of ledger.getAppLayRecs().toArray()) {\n // `counterparty` is the union's zero value, so the arm is checked before it is read.\n const recType = record.getRecType()\n if (!recType.isNft() || !recType.hasNft()) continue\n const data = recType.getNft().getAttestationSubgroup().getData()\n const metadata = data\n .getMetadata()\n .toArray()\n .sort((a, b) => a.getPosition() - b.getPosition())\n .map((entry) => decoder.decode(new Uint8Array(entry.getItem().toArrayBuffer())))\n records.set(toBase64(new Uint8Array(record.getAcctNumApp().toArrayBuffer())), {\n attestHash: new Uint8Array(data.getAttestHash().toArrayBuffer()),\n metadata,\n })\n }\n } catch (cause) {\n throw ledgerUnreadable(\n 'The application layer ledger could not be read. The node is probably running a ' +\n 'schema version this SDK does not know.',\n cause,\n )\n }\n return records\n}\n","import { ledgerUnreadable } from '../errors'\nimport { decodeValidationLedger } from '../ledger/decode'\nimport type { GeeqLedger } from '../ledger/geeq-ledger'\nimport { decodeNftRecords } from '../ledger/nft-records'\nimport type { NftRecordFacts } from '../ledger/nft-records'\nimport { appLedgerRoute, ledgerRoute } from './routes'\nimport type { RequestOptions } from './transport'\nimport { requestText } from './transport'\n\n/** Pull `result` out of a node's response envelope. */\nfunction resultOf(body: string, url: string): string {\n let parsed: unknown\n try {\n parsed = JSON.parse(body)\n } catch (cause) {\n throw ledgerUnreadable(\n `The node at ${url} did not answer with JSON. A login page or a proxy error is ` +\n `the usual reason. First 120 characters: ${JSON.stringify(body.slice(0, 120))}.`,\n cause,\n )\n }\n\n if (parsed === null || typeof parsed !== 'object' || !('result' in parsed)) {\n throw ledgerUnreadable(\n `The node at ${url} answered JSON with no \"result\" field, so this is probably ` +\n 'not a Geeq node.',\n )\n }\n\n const { result } = parsed as { result: unknown }\n if (typeof result !== 'string') {\n throw ledgerUnreadable(\n `The node at ${url} answered with a \"result\" of type ${typeof result}, expected a ` +\n 'base64 string.',\n )\n }\n return result\n}\n\n/** Read and decode the validation layer ledger from one node. */\nexport async function readLedger(\n origin: string,\n options: RequestOptions,\n): Promise<GeeqLedger> {\n const url = ledgerRoute(origin)\n const body = await requestText(url, options)\n return decodeValidationLedger(resultOf(body, url), { nodeUrl: origin })\n}\n\n/** Read the NFT records in the application layer ledger from one node. */\nexport async function readNftRecords(\n origin: string,\n options: RequestOptions,\n): Promise<Map<string, NftRecordFacts>> {\n const url = appLedgerRoute(origin)\n const body = await requestText(url, options)\n return decodeNftRecords(resultOf(body, url))\n}\n","import type { GeeqLedger } from '../ledger/geeq-ledger'\nimport type { GeeqNodeRole, GeeqNodeStatus } from '../ledger/net-actors'\nimport { readLedger } from '../net/read-ledger'\nimport { submitRoute } from '../net/routes'\nimport type { GeeqTransport } from '../net/transport'\n\n/** @internal */\nexport interface NodeRequestConfig {\n readonly transport: GeeqTransport\n readonly timeoutMs: number\n readonly retries: number\n readonly headers: Readonly<Record<string, string>> | undefined\n}\n\n/** @internal */\nexport interface GeeqNodeInit extends NodeRequestConfig {\n readonly url: string\n readonly nodeNumber: number\n readonly host: string\n readonly port: number\n readonly role: GeeqNodeRole\n readonly status: GeeqNodeStatus\n readonly processing: boolean\n}\n\n/**\n * One node, identified in its own chain's ledger.\n *\n * A node is only meaningful once a ledger has confirmed which actor it is: the number a\n * transaction must carry is the node's own `nodeNumSelf`, checked with strict equality,\n * and nothing outside the ledger reports it.\n */\nexport class GeeqNode {\n /** Absolute origin, no trailing slash. */\n readonly url: string\n /** `nodeNumSelf` — what a transaction targeting this node must name. */\n readonly nodeNumber: number\n /** The bare IP the ledger records for it. */\n readonly host: string\n /** Its own listen port from the ledger, which is not necessarily {@link url}'s. */\n readonly port: number\n readonly role: GeeqNodeRole\n readonly status: GeeqNodeStatus\n /** Whether it accepts transactions at all. */\n readonly processing: boolean\n\n // A TypeScript `private`, never a `#private`: a `#private` field is unreachable\n // through a Proxy, which breaks Vue's ref() — the trap already documented on Keypair.\n private readonly request!: NodeRequestConfig\n\n /** @internal */\n constructor(init: GeeqNodeInit) {\n this.url = init.url\n this.nodeNumber = init.nodeNumber\n this.host = init.host\n this.port = init.port\n this.role = init.role\n this.status = init.status\n this.processing = init.processing\n Object.defineProperty(this, 'request', {\n value: Object.freeze({\n transport: init.transport,\n timeoutMs: init.timeoutMs,\n retries: init.retries,\n headers: init.headers,\n }),\n enumerable: false,\n writable: false,\n })\n }\n\n /**\n * Where a transaction built for this node must be POSTed.\n *\n * The SDK does not submit. This exists so an application posts to the node the SDK\n * actually read from, instead of keeping a second copy of the URL that can drift.\n */\n get submitUrl(): string {\n return submitRoute(this.url)\n }\n\n /** Read this node's current ledger. No caching — {@link GeeqChain} owns that. */\n async readLedger(options: { readonly signal?: AbortSignal } = {}): Promise<GeeqLedger> {\n return readLedger(this.url, {\n ...this.request,\n ...(options.signal === undefined ? {} : { signal: options.signal }),\n })\n }\n\n toJSON(): Record<string, unknown> {\n return {\n url: this.url,\n nodeNumber: this.nodeNumber,\n host: this.host,\n port: this.port,\n role: this.role,\n status: this.status,\n processing: this.processing,\n }\n }\n\n toString(): string {\n return `GeeqNode(${this.nodeNumber} at ${this.url}, ${this.role}/${this.status})`\n }\n}\n","import { nonceCollision } from '../errors'\n\n/**\n * Stops one account producing two transactions against one block.\n *\n * The ledger only reflects committed blocks, so building twice inside a block interval\n * derives the same nonce twice — and the node invalidates **every** transaction in a\n * duplicate-nonce group rather than keeping the first\n * (geeq_node_core/src/validations/workers/joint/checks/9.nonce.ts). The user would see\n * one success and lose both.\n *\n * Auto-incrementing instead was considered and rejected. The node's full check requires\n * nonces consecutive from the ledger's, so handing out n+1 and then submitting only that\n * one leaves a permanent gap. Since this SDK does not submit, it never learns which\n * transactions actually went out, so it cannot safely keep a counter. Refusing turns a\n * silent double loss into an error naming the ways forward — and an application that\n * knows a build was never sent hands its nonce back with {@link release}.\n */\nexport class NonceGuard {\n /** Per account: the ledger block its last build was against, and that build's id. */\n private readonly issued = new Map<string, { block: number; transaction: string }>()\n\n /**\n * Whether claiming now would collide, without recording anything.\n *\n * Lets a caller tell \"this account already built against this block\" apart from\n * \"the ledger we are looking at is simply out of date\", which are the same thing from\n * a cached read and very different from a fresh one.\n */\n wouldCollide(accountKey: string, ledgerBlock: number): boolean {\n const previous = this.issued.get(accountKey)\n return previous !== undefined && previous.block >= ledgerBlock\n }\n\n /**\n * Record that `accountKey` is taking a nonce at `ledgerBlock`, for the transaction\n * identified by `transaction`.\n *\n * @throws a `nonce-collision` GeeqError if it already took one at that block.\n */\n claim(accountKey: string, ledgerBlock: number, nonce: number, transaction: string): void {\n const previous = this.issued.get(accountKey)\n\n if (previous !== undefined && previous.block >= ledgerBlock) {\n throw nonceCollision(\n `This account already has a transaction built with nonce ${nonce} against ` +\n `block ${previous.block}, and the ledger has not advanced past it. Two ` +\n 'transactions from one account sharing a nonce are both rejected, not just the ' +\n 'second. If the first was never sent, discard(tx) it and build again. Otherwise ' +\n 'submit it and wait for the next block, pass nonce: ' +\n `${nonce + 1} explicitly if you mean to submit both together, or call ` +\n 'refresh() once the chain has moved on.',\n )\n }\n\n this.issued.set(accountKey, { block: ledgerBlock, transaction })\n }\n\n /**\n * Give back the nonce a transaction claimed, because it will never be sent. Nothing\n * happens unless it is still its account's latest claim.\n */\n release(transaction: string): void {\n for (const [accountKey, claim] of this.issued) {\n if (claim.transaction === transaction) this.issued.delete(accountKey)\n }\n }\n\n /** Forget every claim. For a key change, or after abandoning a built transaction. */\n clear(): void {\n this.issued.clear()\n }\n}\n","import { assertDuration, assertUint32 } from '../assert'\nimport { resolveAccountId } from '../crypto/account-id'\nimport type { AccountRef } from '../crypto/account-id'\nimport { toBase64 } from '../encoding/base64'\nimport {\n accountNotAttestable,\n accountNotFound,\n amountBelowMinimum,\n chainMismatch,\n insufficientFunds,\n invalidArgument,\n nftNotOwned,\n noChain,\n} from '../errors'\nimport { decimalsOf, formatGeeq, toPennies } from '../amount'\nimport type { GeeqAmount } from '../amount'\nimport { decodeWalletAddressSync } from '../address/wallet-address'\nimport { createCoinTransferTxSync } from '../tx/transfer'\nimport { createNftMintProxyTxSync, nftMintProxiesIn, nftMintProxyId } from '../tx/proxy'\nimport { createNftMintTxSync } from '../tx/nft'\nimport type {\n AttestationTx,\n CoinTransferTx,\n GeeqChainState,\n GeeqFee,\n GeeqKeypair,\n GeeqNft,\n GeeqNftMintProxies,\n NftMintProxyTx,\n NftMintTx,\n} from '../types'\nimport { discover } from '../net/discovery'\nimport type { Discovery, GeeqDiscoveredNode } from '../net/discovery'\nimport type { GeeqLedger } from '../ledger/geeq-ledger'\nimport type { GeeqLedgerNode } from '../ledger/net-actors'\nimport { readLedger, readNftRecords } from '../net/read-ledger'\nimport { defaultTransport, raceAbort } from '../net/transport'\nimport type { GeeqTransport } from '../net/transport'\nimport { initGeeq } from '../runtime/init'\nimport { createAttestationTxSync } from '../tx/attestation'\nimport { ATTEST_HASH_BYTES, attestHashOf } from '../tx/content'\nimport type { GeeqContent } from '../tx/content'\nimport { GeeqNode } from './geeq-node'\nimport type { NodeRequestConfig } from './geeq-node'\nimport { NonceGuard } from './nonce-guard'\nimport { GEEQ_NODE_PORT, originOf, selectNode, serviceOriginOf } from './select'\n\nconst DEFAULT_TIMEOUT_MS = 10_000\nconst DEFAULT_LEDGER_MAX_AGE_MS = 5_000\nconst DEFAULT_RETRIES = 1\n\nexport interface GeeqChainOptions {\n /**\n * How many pennies make one Geeq: a power of ten, as a bigint.\n *\n * The chain counts only pennies and does not publish this, so the app says — use the\n * divisor its wallet and explorer show amounts with. {@link GeeqChain.toPennies} reads\n * `{ geeq }` figures with it, and {@link GeeqChain.formatGeeq} and the chain's own\n * messages show amounts with it.\n */\n readonly penniesPerGeeq: bigint\n /**\n * The chain's node directory — the simulator URL for your environment — which the SDK\n * asks for an active node. Works for every chain and environment.\n *\n * Supply this or {@link endpoint}, not both. The directory is the only thing that\n * knows which nodes exist and which are running; the ledger then says which actor the\n * chosen one is. Note the directory is a deployment control plane with no\n * authentication — the SDK reads two of its routes and never touches the rest.\n */\n readonly discovery?: string | URL\n /**\n * A specific node, when you already know one.\n *\n * Supply this or {@link discovery}, not both.\n */\n readonly endpoint?: string | URL\n /**\n * Which chain to use, by the name its directory gives it.\n *\n * Only meaningful with {@link discovery} — a name exists nowhere but the directory.\n * Matched case-insensitively.\n */\n readonly chainName?: string\n /**\n * Which chain to use, by protocol number.\n *\n * With {@link discovery} this selects the chain when no {@link chainName} is given,\n * and asserts it when one is. With {@link endpoint} it asserts the node serves the\n * chain you expect, and a mismatch throws `chain-mismatch` on the first ledger read.\n */\n readonly chainNumber?: number\n /** Defaults to a call through `globalThis.fetch`. */\n readonly transport?: GeeqTransport\n /** Per request. Defaults to 10000. */\n readonly timeoutMs?: number\n /** Extra headers on every request — a proxy token, a trace id. */\n readonly headers?: Readonly<Record<string, string>>\n /** How long a read ledger may be reused. Defaults to 5000. 0 disables the cache. */\n readonly ledgerMaxAgeMs?: number\n /** Skip host matching. Required behind a gateway or when using a DNS name. */\n readonly nodeNumber?: number\n /**\n * The port discovered nodes are reached on. Defaults to 2082.\n *\n * Deployment configuration, not node selection — override it only when running\n * against nodes that are not behind the standard TLS front door, such as a local\n * test harness.\n */\n readonly nodePort?: number\n /** Retries on transport failure only, never on a response. Defaults to 1. */\n readonly retries?: number\n readonly signal?: AbortSignal\n}\n\nexport interface AttestationRequest {\n /** The account that signs. Must be a coin-asset account on this chain. */\n readonly keypair: GeeqKeypair\n /**\n * What to attest. Hashed here with BLAKE3-32; the content never leaves the device.\n *\n * A `File` straight from a file input works, as does a string or raw bytes.\n */\n readonly content?: GeeqContent\n /** Or supply the digest yourself. Exactly one of `content` and `attestHash`. */\n readonly attestHash?: Uint8Array\n /** Public labels, checked against this chain's limits before anything is signed. */\n readonly metadata?: readonly (string | Uint8Array)[]\n /** Override the derived nonce. See {@link NonceGuard} for when that is needed. */\n readonly nonce?: number\n readonly signal?: AbortSignal\n}\n\nexport interface CoinTransferRequest {\n /** The account paying. Must be a coin-asset account on this chain. */\n readonly from: GeeqKeypair\n /**\n * Who receives it.\n *\n * A base58 wallet address is the usual thing — it is what a person pastes — and the\n * chain it encodes is checked against this one. A raw account id or public key works\n * too, but carries no chain to check.\n */\n readonly to: string | AccountRef\n /**\n * How much. State the unit: `{ geeq: \"1.5\" }`, read at {@link GeeqChainOptions.penniesPerGeeq},\n * or `{ pennies }` as the chain counts them. May be left out\n * when sending NFTs, which then go with the chain's minimum transfer.\n */\n readonly amount?: GeeqAmount\n /** NFTs to send, by id — see {@link GeeqChain.findNfts}. The sender must hold each one. */\n readonly nfts?: readonly Uint8Array[]\n /** Override the derived nonce. See {@link NonceGuard}. */\n readonly nonce?: number\n readonly signal?: AbortSignal\n}\n\nexport interface ChainStateRequest {\n readonly account: AccountRef\n readonly maxAgeMs?: number\n readonly signal?: AbortSignal\n}\n\nexport interface NftMintProxyRequest {\n /**\n * The account paying for the proxy, which also becomes its admin: the only key that\n * can later mint NFTs through it. Must be a coin-asset account on this chain.\n */\n readonly admin: GeeqKeypair\n /**\n * Coin moved onto the proxy, `{ geeq }` or `{ pennies }` like any amount. It pays for the\n * mints made through it, so fund it for more than one.\n */\n readonly amount: GeeqAmount\n /**\n * Which of the admin's proxies this is, from 1. Leave it out to take the next one —\n * one past the highest the ledger holds for this admin, see\n * {@link GeeqChain.findNftMintProxies}. An index already in use is refused.\n */\n readonly index?: number\n /** Override the derived nonce. See {@link NonceGuard}. */\n readonly nonce?: number\n readonly signal?: AbortSignal\n}\n\nexport interface NftMintProxiesRequest {\n /**\n * The admin whose proxies to find. A keypair will do; so will a bare public key, since\n * listing needs no signature. Not an account id: an index is derived from the key.\n */\n readonly admin: { readonly publicKey: Uint8Array }\n /** How old a cached ledger may be. 0 reads afresh — a new proxy shows only once confirmed. */\n readonly maxAgeMs?: number\n readonly signal?: AbortSignal\n}\n\nexport interface NftsRequest {\n /** Whose NFTs. A keypair will do, as will an account id or a public key. */\n readonly owner: AccountRef\n /** How old a cached ledger may be. 0 reads afresh — a new NFT shows only once confirmed. */\n readonly maxAgeMs?: number\n readonly signal?: AbortSignal\n}\n\nexport interface NftMintRequest {\n /** The proxy's admin: the only key that can mint through it. It signs the mint. */\n readonly admin: GeeqKeypair\n /**\n * Which of the admin's proxies mints it, by index — see\n * {@link GeeqChain.findNftMintProxies}. The proxy pays the fee and {@link amount}, and\n * spends its own nonce, not the admin's.\n */\n readonly index: number\n /**\n * What the NFT stands for. Hashed here with BLAKE3-32; the content never leaves the\n * device. A `File` straight from a file input works, as does a string or raw bytes.\n */\n readonly content?: GeeqContent\n /** Or supply the digest yourself. Exactly one of `content` and `attestHash`. */\n readonly attestHash?: Uint8Array\n /** Public labels stored with the NFT, checked against this chain's limits before signing. */\n readonly metadata?: readonly (string | Uint8Array)[]\n /** Who receives the NFT. Defaults to the admin. An address is checked against this chain. */\n readonly to?: string | AccountRef\n /** Coin the proxy sends to the receiver with it. Defaults to the chain's minimum transfer. */\n readonly amount?: GeeqAmount\n /** Override the proxy's derived nonce. See {@link NonceGuard}. */\n readonly nonce?: number\n readonly signal?: AbortSignal\n}\n\n/** The process-wide default, installed by {@link GeeqChain.init}. */\nlet defaultChain: GeeqChain | null = null\n\n/**\n * Refuse a nonsense option before anything is read. Left to the network layer, a negative\n * `retries` sends no request at all and a zero `timeoutMs` times every request out — both\n * reported as an unreachable node, which is the one thing they are not.\n */\nfunction assertChainOptions(options: GeeqChainOptions): void {\n assertDuration(options.timeoutMs, 'timeoutMs')\n if (options.timeoutMs === 0) {\n throw invalidArgument('timeoutMs must be more than 0, or every request times out at once.')\n }\n assertDuration(options.ledgerMaxAgeMs, 'ledgerMaxAgeMs')\n const { retries, nodePort } = options\n if (retries !== undefined && (!Number.isInteger(retries) || retries < 0)) {\n throw invalidArgument(`retries must be a whole number, 0 or more, received ${String(retries)}.`)\n }\n if (nodePort !== undefined && (!Number.isInteger(nodePort) || nodePort < 1 || nodePort > 65_535)) {\n throw invalidArgument(`nodePort must be a port from 1 to 65535, received ${JSON.stringify(nodePort)}.`)\n }\n if (options.chainNumber !== undefined) assertUint32(options.chainNumber, 'chainNumber')\n if (options.nodeNumber !== undefined) assertUint32(options.nodeNumber, 'nodeNumber')\n}\n\n/**\n * Refuse a transaction its payer cannot cover. The node checks the balance against the\n * amount plus the fee, so this does too — after building, because the fee is charged on\n * the signed bytes.\n */\nfunction assertAffordable(\n penniesPerGeeq: bigint,\n payer: string,\n balance: bigint,\n amount: bigint,\n fee: GeeqFee | undefined,\n block: number,\n): void {\n const cost = amount + (fee?.total ?? 0n)\n if (balance >= cost) return\n\n const geeq = (pennies: bigint) => formatGeeq(pennies, penniesPerGeeq)\n const needed =\n fee === undefined\n ? geeq(amount)\n : amount === 0n\n ? `a fee of ${geeq(fee.total)}`\n : `${geeq(amount)} plus a fee of ${geeq(fee.total)}`\n throw insufficientFunds(\n `${payer} holds ${geeq(balance)} geeq at block ${block}, and this needs ${needed} geeq.`,\n )\n}\n\n/**\n * A chain, reached through one node.\n *\n * Holds the node directory, the metadata limits and a short-lived ledger cache, so an\n * attestation needs only a keypair and something to attest. Everything a transaction is\n * pinned to — chain number, target block, node number, nonce — is read from the ledger\n * rather than asked of the caller, because none of it can be known offline and a wrong\n * value is rejected by the chain.\n *\n * A chain is bound to the endpoint it was connected to. To use a different node, connect\n * another one: a different node means a different address, certificate and CORS origin,\n * which is not something to switch silently.\n *\n * In a reactive framework, mark an instance raw (Vue's `markRaw`) rather than letting it\n * be proxied.\n */\nexport class GeeqChain {\n /** The node this chain reads from and builds transactions for. */\n readonly endpoint: string\n /** What the directory said about the nodes on this chain, when one was used. */\n readonly candidates: readonly GeeqDiscoveredNode[]\n /** The chain's name, when a directory supplied one. Display only — chains are numbered. */\n readonly chainName: string | undefined\n /** How many pennies make one Geeq, as given to {@link GeeqChain.connect}. */\n readonly penniesPerGeeq: bigint\n\n private readonly request!: NodeRequestConfig\n private readonly ledgerMaxAgeMs!: number\n private readonly nonces!: NonceGuard\n private readonly declaredChainNumber!: number | undefined\n private readonly nodeNumberOverride!: number | undefined\n private cached!: GeeqLedger | null\n private resolved!: GeeqNode | null\n private inflight!: Promise<GeeqLedger> | null\n\n /** @internal */\n constructor(init: {\n endpoint: string\n candidates: readonly GeeqDiscoveredNode[]\n chainName: string | undefined\n chainNumber: number | undefined\n nodeNumber: number | undefined\n penniesPerGeeq: bigint\n request: NodeRequestConfig\n ledgerMaxAgeMs: number\n }) {\n this.endpoint = init.endpoint\n this.candidates = Object.freeze([...init.candidates])\n this.chainName = init.chainName\n this.penniesPerGeeq = init.penniesPerGeeq\n\n // Non-enumerable and TS-private, never `#private` — see GeeqNode for why.\n const hidden = (key: string, value: unknown, writable = false): void => {\n Object.defineProperty(this, key, { value, enumerable: false, writable })\n }\n hidden('request', init.request)\n hidden('ledgerMaxAgeMs', init.ledgerMaxAgeMs)\n hidden('declaredChainNumber', init.chainNumber)\n hidden('nodeNumberOverride', init.nodeNumber)\n hidden('nonces', new NonceGuard())\n hidden('cached', null, true)\n hidden('resolved', null, true)\n hidden('inflight', null, true)\n }\n\n /**\n * Choose a chain and a node, without reading anything from the chain itself.\n *\n * With `discovery`, the directory is asked which nodes exist and one of the active\n * ones is taken. With `endpoint`, that node is used as given. Either way **no ledger\n * is fetched here** — a ledger read is only valid for a few blocks, so it happens when\n * a transaction is actually being built rather than when the app starts.\n */\n static async connect(options: GeeqChainOptions): Promise<GeeqChain> {\n const hasDiscovery = options.discovery !== undefined\n const hasEndpoint = options.endpoint !== undefined\n if (hasDiscovery === hasEndpoint) {\n throw invalidArgument(\n 'Provide exactly one of discovery (a node directory to pick an active node ' +\n 'from) or endpoint (a node you already know).',\n )\n }\n decimalsOf(options.penniesPerGeeq)\n assertChainOptions(options)\n\n const request: NodeRequestConfig = Object.freeze({\n transport: options.transport ?? defaultTransport,\n timeoutMs: options.timeoutMs ?? DEFAULT_TIMEOUT_MS,\n retries: options.retries ?? DEFAULT_RETRIES,\n headers: options.headers,\n })\n\n let endpoint: string\n let candidates: readonly GeeqDiscoveredNode[] = []\n let chainName: string | undefined = options.chainName\n let chainNumber = options.chainNumber\n\n if (hasDiscovery) {\n const found: Discovery = await discover({\n origin: serviceOriginOf(options.discovery as string | URL),\n ...(options.chainName === undefined ? {} : { chainName: options.chainName }),\n chainNumber: options.chainNumber,\n ...(options.nodePort === undefined ? {} : { port: options.nodePort }),\n request: {\n ...request,\n ...(options.signal === undefined ? {} : { signal: options.signal }),\n },\n })\n candidates = found.nodes\n chainName = found.chain.name\n chainNumber = found.chain.chainNumber\n // Spread across the usable nodes rather than everyone hammering the first one.\n // The directory's order is stable, so picking [0] would concentrate every client\n // of every app on one machine.\n endpoint = (found.usable[Math.floor(Math.random() * found.usable.length)] as GeeqDiscoveredNode).url\n } else {\n endpoint = originOf(options.endpoint as string | URL)\n }\n\n return new GeeqChain({\n endpoint,\n candidates,\n chainName,\n chainNumber,\n nodeNumber: options.nodeNumber,\n penniesPerGeeq: options.penniesPerGeeq,\n request,\n ledgerMaxAgeMs: options.ledgerMaxAgeMs ?? DEFAULT_LEDGER_MAX_AGE_MS,\n })\n }\n\n /** {@link GeeqChain.connect}, and install the result as the process-wide default. */\n static async init(options: GeeqChainOptions): Promise<GeeqChain> {\n const chain = await GeeqChain.connect(options)\n defaultChain = chain\n return chain\n }\n\n /** The default chain. Throws `not-initialized` when there is none. */\n static current(): GeeqChain {\n if (defaultChain === null) throw noChain('GeeqChain.current()')\n return defaultChain\n }\n\n /** Whether a default chain has been installed. */\n static get initialized(): boolean {\n return defaultChain !== null\n }\n\n /** Clear the default. Call this from `afterEach` so tests do not leak into each other. */\n static reset(): void {\n defaultChain = null\n }\n\n /** Resolve an amount to pennies, reading a `{ geeq }` figure at {@link penniesPerGeeq}. */\n toPennies(amount: GeeqAmount): bigint {\n return toPennies(amount, this.penniesPerGeeq)\n }\n\n /** Show pennies as a Geeq figure at {@link penniesPerGeeq}, as the Geeq wallet does. */\n formatGeeq(pennies: bigint): string {\n return formatGeeq(pennies, this.penniesPerGeeq)\n }\n\n /**\n * This chain's number.\n *\n * Known immediately when a directory named the chain, or once a ledger has been read.\n * `undefined` in between — with a bare endpoint and no declared number, only the node\n * can say.\n */\n get chainNumber(): number | undefined {\n return this.cached?.chainNumber ?? this.declaredChainNumber\n }\n\n /**\n * The node, once a ledger read has identified it in the net actor list.\n *\n * `undefined` until then: a node's number is the one thing the directory cannot say,\n * so it is not known before the first read.\n */\n get node(): GeeqNode | undefined {\n return this.resolved ?? undefined\n }\n\n /** The net actor directory from the last ledger read, if there has been one. */\n get nodes(): readonly GeeqLedgerNode[] {\n return this.cached?.nodes ?? []\n }\n\n /** Those of them that accept transactions. */\n get processingNodes(): readonly GeeqLedgerNode[] {\n return this.cached?.processingNodes ?? []\n }\n\n /** The ledger from the last read, if it is still cached. */\n get ledger(): GeeqLedger | undefined {\n return this.cached ?? undefined\n }\n\n /**\n * A URL for another node in this chain.\n *\n * Every node answers client traffic on {@link GEEQ_NODE_PORT}, so only the scheme is\n * carried over from the endpoint in use. The port recorded against a node in the\n * ledger is its own internal listener and is never what you connect to.\n */\n endpointFor(host: string): string {\n return `${new URL(this.endpoint).protocol}//${host}:${GEEQ_NODE_PORT}`\n }\n\n /**\n * The current ledger, from cache when it is fresh enough.\n *\n * Staleness is safe in exactly one direction. The node accepts a target block within\n * `[N-8, N+1]` of its own head, and a cached ledger can only be *behind*, so the\n * target it yields is never in the future — the only rejected direction. The default\n * five seconds is set by the node list and metadata limits, which have no such\n * tolerance, not by the block window.\n */\n async getLedger(\n options: { readonly maxAgeMs?: number; readonly signal?: AbortSignal } = {},\n ): Promise<GeeqLedger> {\n const maxAge = options.maxAgeMs ?? this.ledgerMaxAgeMs\n const cached = this.cached\n if (cached !== null && maxAge > 0 && Date.now() - cached.readAt < maxAge) return cached\n return this.read(options.signal)\n }\n\n /** Discard the cached ledger and read again. */\n async refresh(options: { readonly signal?: AbortSignal } = {}): Promise<GeeqLedger> {\n this.cached = null\n return this.read(options.signal)\n }\n\n /**\n * One read at a time.\n *\n * Same single-flight shape as `initGeeq`, including clearing the promise on failure so\n * a later call can retry rather than being stuck with the first error. Without it, a\n * page that builds several transactions at once pulls the whole ledger several times\n * from an endpoint with no rate limiting of any kind.\n *\n * The read is shared, so it carries no caller's signal: one caller aborting must not\n * fail the others waiting on it. Each caller stops waiting on its own signal instead,\n * and the read runs on, bounded by `timeoutMs`, to fill the cache for whoever is next.\n */\n private read(signal?: AbortSignal): Promise<GeeqLedger> {\n if (signal?.aborted === true) return Promise.reject(signal.reason)\n if (this.inflight !== null) return raceAbort(this.inflight, signal)\n\n const pending = readLedger(this.endpoint, this.request)\n .then((ledger) => {\n const declared = this.declaredChainNumber\n if (declared !== undefined && ledger.chainNumber !== declared) {\n throw chainMismatch(\n `This chain was opened as chain ${declared} but the node at ${this.endpoint} ` +\n `serves chain ${ledger.chainNumber}. A transaction signed for the wrong ` +\n 'chain is rejected, so either drop chainNumber to accept the node\\'s, or ' +\n `use a node on chain ${declared}.`,\n )\n }\n\n // The node's own number lives only in the ledger, so this is the first moment it\n // can be known — and the first moment the node can be checked for being able to\n // take work at all.\n const selected = selectNode(ledger, this.endpoint, {\n ...(this.nodeNumberOverride === undefined ? {} : { nodeNumber: this.nodeNumberOverride }),\n })\n this.resolved = new GeeqNode({ ...this.request, ...selected, url: this.endpoint })\n this.cached = ledger\n return ledger\n })\n .finally(() => {\n this.inflight = null\n })\n\n this.inflight = pending\n return raceAbort(pending, signal)\n }\n\n /**\n * Everything a transaction must be pinned to, read from this chain.\n *\n * Throws rather than guessing when the account cannot sign: absent from the ledger\n * (the ordinary state of an unfunded keypair), or present as a record type the\n * protocol will not accept.\n */\n async getChainState(request: ChainStateRequest): Promise<GeeqChainState> {\n const ledger = await this.getLedger({\n ...(request.maxAgeMs === undefined ? {} : { maxAgeMs: request.maxAgeMs }),\n ...(request.signal === undefined ? {} : { signal: request.signal }),\n })\n return this.stateIn(ledger, request.account)\n }\n\n /**\n * What every transaction built from `ledger` is pinned to, bar the signer's nonce: the\n * same for a signer's own transaction and for a proxy's.\n */\n private pinnedTo(\n ledger: GeeqLedger,\n ): Omit<GeeqChainState, 'nonce' | 'balance' | 'minimumTransfer'> {\n return {\n chainNumber: ledger.chainNumber,\n blockNumber: ledger.targetBlockNumber,\n nodeNumber: (this.resolved as GeeqNode).nodeNumber,\n metadataLimits: ledger.metadataLimits,\n geeqNorm: ledger.geeqNorm,\n ledgerBlockNumber: ledger.blockNumber,\n readAt: ledger.readAt,\n nodeUrl: this.endpoint,\n }\n }\n\n /** {@link getChainState} against a ledger already in hand, so a build reads only one. */\n private stateIn(ledger: GeeqLedger, ref: AccountRef): GeeqChainState {\n const accountId = resolveAccountId(ref)\n const account = ledger.findCoinAccount(accountId)\n const shown = toBase64(accountId)\n\n if (account === undefined) {\n throw accountNotFound(\n `Account ${shown} is not in the ledger of chain ${ledger.chainNumber} at block ` +\n `${ledger.blockNumber}. An account exists on a Geeq chain only once it has ` +\n 'received coins, so a freshly generated keypair will not be there. Fund it, ' +\n 'then try again.',\n )\n }\n\n if (account.kind !== 'asset' || account.nonce === undefined) {\n const described =\n account.kind === 'hl'\n ? 'a hash-lock record, which carries no nonce at all'\n : account.kind === 'micro'\n ? 'a micro-coin record'\n : 'a record whose subtype could not be read'\n throw accountNotAttestable(\n `Account ${shown} is in the ledger at block ${ledger.blockNumber} as ${described}, ` +\n 'but an attestation must be signed by a coin-asset account. Sign with a ' +\n 'coin-asset key on this chain instead.',\n )\n }\n\n return Object.freeze({\n ...this.pinnedTo(ledger),\n nonce: account.nonce,\n balance: account.balance,\n minimumTransfer: ledger.minimumTransfer,\n })\n }\n\n /**\n * The ledger a build is made from, and the state of `signer` in it.\n *\n * A cached ledger is up to a few seconds old, so \"this account already built against\n * this block\" may only mean \"we are looking at an old block\". Look again once before\n * letting the nonce guard refuse — otherwise a caller who waited out the block interval\n * is told to wait for a block that has already passed. An explicit nonce is the caller\n * taking responsibility, so it skips the check.\n *\n * Everything the build then needs — what the sender holds, which proxies exist — comes\n * from this same ledger, so it all describes one block.\n */\n private async readForBuild(\n signer: GeeqKeypair,\n explicitNonce: number | undefined,\n signal: AbortSignal | undefined,\n ): Promise<{ readonly ledger: GeeqLedger; readonly chainState: GeeqChainState }> {\n const options = signal === undefined ? {} : { signal }\n const [cached] = await Promise.all([this.getLedger(options), initGeeq()])\n const ledger = await this.recheckIfClaimed(\n cached,\n explicitNonce === undefined ? toBase64(signer.accountId) : undefined,\n options,\n )\n const chainState = this.stateIn(ledger, signer)\n return {\n ledger,\n chainState:\n explicitNonce === undefined ? chainState : { ...chainState, nonce: explicitNonce },\n }\n }\n\n /** Read afresh if `guardKey` already built against `ledger`'s block. See {@link readForBuild}. */\n private async recheckIfClaimed(\n ledger: GeeqLedger,\n guardKey: string | undefined,\n options: { readonly signal?: AbortSignal },\n ): Promise<GeeqLedger> {\n if (guardKey === undefined || !this.nonces.wouldCollide(guardKey, ledger.blockNumber)) {\n return ledger\n }\n return this.refresh(options)\n }\n\n /**\n * Build and sign an attestation, deriving everything the chain decides.\n *\n * This is where the ledger is read, because this is the first moment the values it\n * carries are actually needed — and they go stale within a handful of blocks, so\n * reading them any earlier would only mean reading them twice.\n *\n * The result is **not submitted**. Hand it to {@link GeeqSocket.track} first, so its\n * verdict has somewhere to arrive, then POST `transaction` and `payload` to\n * {@link AttestationTx.nodeUrl}; any other node rejects it, because the node number is\n * checked with strict equality.\n */\n async createAttestation(input: AttestationRequest): Promise<AttestationTx> {\n if ((input.content === undefined) === (input.attestHash === undefined)) {\n throw invalidArgument(\n 'Provide exactly one of content (hashed here with BLAKE3) or attestHash (a ' +\n `${ATTEST_HASH_BYTES}-byte digest you produced yourself).`,\n )\n }\n\n const attestHash = input.attestHash ?? (await attestHashOf(input.content as GeeqContent))\n const { chainState } = await this.readForBuild(input.keypair, input.nonce, input.signal)\n\n const tx = createAttestationTxSync({\n keypair: input.keypair,\n attestHash,\n ...(input.metadata === undefined ? {} : { metadata: input.metadata }),\n chainState,\n })\n assertAffordable(this.penniesPerGeeq, 'This account', chainState.balance, 0n, tx.fee, chainState.ledgerBlockNumber)\n this.claimNonce(input.keypair, input.nonce, chainState, tx)\n return tx\n }\n\n /**\n * Record the nonce a finished build took, so a second build against the same block is\n * refused rather than sent to share it.\n *\n * Claimed only once a transaction really exists, so a build that failed validation does\n * not consume the account's one nonce for this block. An explicit nonce is the caller\n * taking responsibility, so it bypasses the guard entirely.\n */\n private claimNonce(\n signer: GeeqKeypair,\n explicitNonce: number | undefined,\n chainState: GeeqChainState,\n tx: { readonly transactionHash: Uint8Array },\n ): void {\n if (explicitNonce !== undefined) return\n this.nonces.claim(\n toBase64(signer.accountId),\n chainState.ledgerBlockNumber,\n chainState.nonce,\n toBase64(tx.transactionHash),\n )\n }\n\n /**\n * Resolve a recipient, checking the chain it belongs to when one is stated.\n *\n * An address carries a chain number, and an address from another chain is almost\n * always a paste from the wrong place. The account id inside it would still be\n * technically usable here, which is exactly why this is worth refusing rather than\n * quietly sending.\n */\n private resolveRecipient(to: string | AccountRef, chainNumber: number): Uint8Array {\n if (typeof to !== 'string') return resolveAccountId(to)\n\n const decoded = decodeWalletAddressSync(to)\n if (decoded.chainNumber !== chainNumber) {\n throw chainMismatch(\n `The recipient address is for chain ${decoded.chainNumber} but this is chain ` +\n `${chainNumber}. An address encodes its chain, so this one was almost certainly ` +\n 'copied from somewhere else — check it before sending.',\n )\n }\n return decoded.accountId\n }\n\n /**\n * Send coin to another account, and NFTs with it if you name them.\n *\n * Reads the ledger, so it also knows what the sender holds and what the chain's minimum\n * transfer is. The amount is checked against the minimum, and the sender's NFTs against\n * the ones named, before anything is signed; the balance against the amount plus the\n * fee once the signed transaction gives the fee. NFTs always travel with coin: leave\n * `amount` out and they go with the chain's minimum transfer.\n *\n * The result is **not submitted**. Hand it to {@link GeeqSocket.track} first, then POST\n * `transaction` to {@link CoinTransferTx.nodeUrl} using `coinTransferSubmitBody`, which\n * sends it as type `uvt` — a different shape from an attestation, and with no separate\n * payload.\n */\n async createTransfer(input: CoinTransferRequest): Promise<CoinTransferTx> {\n const nfts = input.nfts ?? []\n if (input.amount === undefined && nfts.length === 0) {\n throw invalidArgument('Say what to send: an amount, NFTs, or both.')\n }\n const asked = input.amount === undefined ? undefined : this.toPennies(input.amount)\n const { ledger, chainState } = await this.readForBuild(input.from, input.nonce, input.signal)\n\n const to = this.resolveRecipient(input.to, chainState.chainNumber)\n\n const minimum = chainState.minimumTransfer\n const pennies = asked ?? minimum\n if (pennies === undefined) {\n throw invalidArgument(\n 'This chain publishes no minimum transfer to send with the NFTs by default, so pass amount.',\n )\n }\n if (minimum !== undefined && pennies < minimum) {\n throw amountBelowMinimum(\n `This chain will not accept a transfer below ${this.formatGeeq(minimum)} geeq, and ` +\n `${this.formatGeeq(pennies)} is smaller. The minimum comes from the chain's own ` +\n 'minTxAmt and geeqNorm parameters, read at block ' +\n `${chainState.ledgerBlockNumber}.`,\n )\n }\n\n // The transaction names each NFT by id and by its place in the sender's list, read\n // from the same ledger as the nonce, so both describe one block.\n const held = ledger.findCoinAccount(input.from)?.nfts ?? []\n const entries = nfts.map((id) => {\n const position = held.findIndex((nft) => toBase64(nft.id) === toBase64(id))\n if (position === -1) {\n throw nftNotOwned(\n `This account does not hold NFT ${toBase64(id)} at block ${ledger.blockNumber}. ` +\n 'findNfts lists the ones it does; one just sent away is gone once a block confirms it.',\n )\n }\n if (held[position]?.counterparty === true) {\n throw invalidArgument(`NFT ${toBase64(id)} is a counterparty NFT, which a plain transfer cannot move.`)\n }\n return { id, position }\n })\n\n // The chain gives an NFT only to a wallet account (or a multisig proxy). A proxy's\n // address is the likely paste here.\n if (entries.length > 0) {\n const proxy = ledger.findProxyAccount(to)\n const account = ledger.findCoinAccount(to)\n if ((proxy !== undefined && proxy.kind !== 'multisig') || (account !== undefined && account.kind !== 'asset')) {\n throw invalidArgument(\n `The recipient is a ${proxy?.kind ?? account?.kind} record, and the chain gives NFTs ` +\n 'only to a wallet account. Send them to a wallet address instead.',\n )\n }\n }\n\n const tx = createCoinTransferTxSync({\n keypair: input.from,\n to,\n amount: pennies,\n nfts: entries,\n chainState,\n })\n assertAffordable(this.penniesPerGeeq, 'This account', chainState.balance, pennies, tx.fee, chainState.ledgerBlockNumber)\n this.claimNonce(input.from, input.nonce, chainState, tx)\n return tx\n }\n\n /**\n * The NFTs an account holds on this chain, in the order its record lists them, each with\n * the hash and labels it was minted with.\n *\n * Which NFTs it holds comes from the validation layer ledger; what each stands for, from\n * the application layer ledger, which is read afresh every time. An account the chain\n * does not know holds none. A new NFT shows once a block has confirmed it, so pass\n * `maxAgeMs: 0` to look straight after one was minted or sent.\n */\n async findNfts(request: NftsRequest): Promise<readonly GeeqNft[]> {\n const signal = request.signal === undefined ? {} : { signal: request.signal }\n const [ledger, records] = await Promise.all([\n this.getLedger({\n ...(request.maxAgeMs === undefined ? {} : { maxAgeMs: request.maxAgeMs }),\n ...signal,\n }),\n readNftRecords(this.endpoint, { ...this.request, ...signal }),\n ])\n const held = ledger.findCoinAccount(request.owner)?.nfts ?? []\n return Object.freeze(\n held.map((nft) => {\n const record = records.get(toBase64(nft.id))\n return Object.freeze({ ...nft, attestHash: record?.attestHash, metadata: record?.metadata ?? [] })\n }),\n )\n }\n\n /**\n * The NFT mint proxies an admin has on this chain, each with its index, and the index\n * its next proxy takes: one past the highest in use, or 1 for an admin with none.\n *\n * A proxy appears once a block has confirmed it, so pass `maxAgeMs: 0` to look\n * straight after one was submitted.\n */\n async findNftMintProxies(request: NftMintProxiesRequest): Promise<GeeqNftMintProxies> {\n const [ledger] = await Promise.all([\n this.getLedger({\n ...(request.maxAgeMs === undefined ? {} : { maxAgeMs: request.maxAgeMs }),\n ...(request.signal === undefined ? {} : { signal: request.signal }),\n }),\n initGeeq(),\n ])\n return nftMintProxiesIn(ledger, request.admin)\n }\n\n /**\n * Create a proxy to mint NFTs through.\n *\n * A proxy is a record of its own: it holds coin, carries its own nonce, and names one\n * admin — `admin` here — who signs every mint made through it. Its id is derived from\n * the admin's key and an index, as the Geeq wallet derives it: by default the next\n * index {@link findNftMintProxies} reports, so it is found again from the key alone.\n *\n * Checks the funding against the chain's minimum, and the admin's balance against the\n * funding plus the fee. The result is **not submitted** — track it, then post it with\n * `coinTransferSubmitBody`, exactly as a transfer. The proxy exists once a block\n * confirms it.\n */\n async createNftMintProxy(input: NftMintProxyRequest): Promise<NftMintProxyTx> {\n const pennies = this.toPennies(input.amount)\n const { ledger, chainState } = await this.readForBuild(input.admin, input.nonce, input.signal)\n\n // The node holds proxy funding to the same minimum as any transfer.\n const minimum = chainState.minimumTransfer\n if (minimum !== undefined && pennies < minimum) {\n throw amountBelowMinimum(\n `A proxy must be funded with at least ${this.formatGeeq(minimum)} geeq, and ` +\n `${this.formatGeeq(pennies)} is smaller. It is the same minimum as a transfer, from ` +\n \"the chain's minTxAmt and geeqNorm parameters, read at block \" +\n `${chainState.ledgerBlockNumber}.`,\n )\n }\n\n const existing = nftMintProxiesIn(ledger, input.admin)\n const index = input.index ?? existing.nextIndex\n if (existing.proxies.some((proxy) => proxy.index === index)) {\n throw invalidArgument(\n `This admin already has a proxy at index ${index}. Leave index out to take the ` +\n `next one, ${existing.nextIndex}.`,\n )\n }\n\n const tx = createNftMintProxyTxSync({\n keypair: input.admin,\n index,\n amount: pennies,\n chainState,\n })\n assertAffordable(this.penniesPerGeeq, 'This account', chainState.balance, pennies, tx.fee, chainState.ledgerBlockNumber)\n this.claimNonce(input.admin, input.nonce, chainState, tx)\n return tx\n }\n\n /**\n * Mint an NFT through one of the admin's proxies.\n *\n * The proxy is the sender: it pays the fee and the coin sent with the NFT, and spends\n * its own nonce, not the admin's. The admin signs. The NFT itself is the content's hash\n * and labels, as an attestation is, and its id is derived from them — so the same\n * content with the same labels through the same proxy cannot be minted twice.\n *\n * Reads the ledger to find the proxy and check what it holds. The result is **not\n * submitted** — track it, then post it with `attestationSubmitBody`, exactly as an\n * attestation: two fields, as `uat`.\n */\n async mintNft(input: NftMintRequest): Promise<NftMintTx> {\n if ((input.content === undefined) === (input.attestHash === undefined)) {\n throw invalidArgument(\n 'Provide exactly one of content (hashed here with BLAKE3) or attestHash (a ' +\n `${ATTEST_HASH_BYTES}-byte digest you produced yourself).`,\n )\n }\n assertUint32(input.index, 'index')\n\n const attestHash = input.attestHash ?? (await attestHashOf(input.content as GeeqContent))\n const signal = input.signal === undefined ? {} : { signal: input.signal }\n\n const [cached] = await Promise.all([this.getLedger(signal), initGeeq()])\n const proxyKey = toBase64(nftMintProxyId(input.admin.publicKey, input.index))\n\n // The proxy spends its own nonce, so the guard is keyed on the proxy, not the admin.\n const ledger = await this.recheckIfClaimed(\n cached,\n input.nonce === undefined ? proxyKey : undefined,\n signal,\n )\n\n const proxy = ledger\n .findProxyAccounts({ admin: input.admin })\n .find((found) => toBase64(found.accountId) === proxyKey)\n if (proxy === undefined) {\n throw accountNotFound(\n `This admin has no NFT mint proxy at index ${input.index} in the ledger of chain ` +\n `${ledger.chainNumber} at block ${ledger.blockNumber}. A new proxy appears once a ` +\n 'block has confirmed it; findNftMintProxies lists the ones there are.',\n )\n }\n\n const minimum = ledger.minimumTransfer\n const pennies = input.amount === undefined ? minimum : this.toPennies(input.amount)\n if (pennies === undefined) {\n throw invalidArgument(\n 'This chain publishes no minimum transfer to send with the NFT by default, so pass amount.',\n )\n }\n if (minimum !== undefined && pennies < minimum) {\n throw amountBelowMinimum(\n `A mint must send at least ${this.formatGeeq(minimum)} geeq with the NFT, and ` +\n `${this.formatGeeq(pennies)} is smaller. It is the same minimum as a transfer, from ` +\n \"the chain's minTxAmt and geeqNorm parameters, read at block \" +\n `${ledger.blockNumber}.`,\n )\n }\n const tx = createNftMintTxSync({\n keypair: input.admin,\n proxyAccountId: proxy.accountId,\n attestHash,\n ...(input.metadata === undefined ? {} : { metadata: input.metadata }),\n to:\n input.to === undefined\n ? input.admin.accountId\n : this.resolveRecipient(input.to, ledger.chainNumber),\n amount: pennies,\n chainState: { ...this.pinnedTo(ledger), nonce: input.nonce ?? proxy.nonce },\n })\n // The proxy pays, not the admin. Topping it up is a plain transfer to its address.\n assertAffordable(this.penniesPerGeeq, `Proxy ${input.index}`, proxy.balance, pennies, tx.fee, ledger.blockNumber)\n\n if (input.nonce === undefined) {\n this.nonces.claim(proxyKey, ledger.blockNumber, proxy.nonce, toBase64(tx.transactionHash))\n }\n\n return tx\n }\n\n /**\n * Whether a built transaction is now too old to send: the chain is past its\n * `validUntilBlock`, and a node would refuse it with an HTTP 400.\n *\n * Reads the ledger afresh, because a cached one can only be behind the chain and would\n * say \"not yet\" when it already is. Call it before submitting a transaction that may\n * have waited.\n */\n async isExpired(tx: { readonly validUntilBlock: number }): Promise<boolean> {\n const ledger = await this.getLedger({ maxAgeMs: 0 })\n return ledger.blockNumber > tx.validUntilBlock\n }\n\n /**\n * Give back the nonce a built transaction took, because it will never be sent — the\n * user changed something and is building again. The next build may then take the same\n * nonce in the same block instead of being refused with `nonce-collision`.\n *\n * Only for a transaction that was not submitted: if it reaches the node as well as its\n * rebuild, the two share a nonce and the node rejects both.\n */\n discard(tx: { readonly transactionHash: Uint8Array }): void {\n this.nonces.release(toBase64(tx.transactionHash))\n }\n\n /** Forget which accounts have built a transaction against the current block. */\n forgetNonces(): void {\n this.nonces.clear()\n }\n\n /** Drop cached state, and step down as the default if this chain holds that slot. */\n dispose(): void {\n this.cached = null\n this.resolved = null\n this.inflight = null\n this.nonces.clear()\n if (defaultChain === this) defaultChain = null\n }\n\n toJSON(): Record<string, unknown> {\n return {\n chainNumber: this.chainNumber,\n endpoint: this.endpoint,\n node: this.node,\n ledgerBlockNumber: this.cached?.blockNumber,\n candidateCount: this.candidates.length,\n }\n }\n\n toString(): string {\n return `GeeqChain(chain ${this.chainNumber ?? 'unread'} via ${this.endpoint})`\n }\n}\n\n/**\n * Connect to a chain and make it the default.\n *\n * Thin alias for {@link GeeqChain.init} — the name most applications reach for, and one\n * line so there is no second implementation to keep in step.\n *\n * ```ts\n * await initChain({ endpoint: 'https://1.2.3.4:2082' })\n * const tx = await attest({ keypair, content: fileBytes })\n * ```\n */\nexport function initChain(options: GeeqChainOptions): Promise<GeeqChain> {\n return GeeqChain.init(options)\n}\n\n/** Build an attestation on the default chain. See {@link GeeqChain.createAttestation}. */\nexport function attest(input: AttestationRequest): Promise<AttestationTx> {\n return GeeqChain.current().createAttestation(input)\n}\n\n/** Send coin on the default chain. See {@link GeeqChain.createTransfer}. */\nexport function transfer(input: CoinTransferRequest): Promise<CoinTransferTx> {\n return GeeqChain.current().createTransfer(input)\n}\n","import { invalidArgument } from '../errors'\n\n/**\n * Hex in both directions.\n *\n * Every hash this SDK returns is bytes, and almost every application immediately turns\n * them into hex to show or log. Doing that by hand is three lines everyone writes\n * slightly differently — and `toString(16)` without padding silently drops a leading\n * zero, producing a 63-character \"32-byte\" hash that compares unequal to itself.\n */\n\nconst HEX = /^[0-9a-fA-F]*$/\n\nexport function toHex(bytes: Uint8Array): string {\n let hex = ''\n for (const byte of bytes) hex += byte.toString(16).padStart(2, '0')\n return hex\n}\n\nexport function fromHex(value: string, label = 'value'): Uint8Array {\n if (typeof value !== 'string') {\n throw invalidArgument(`${label} must be a hex string, received ${typeof value}.`)\n }\n const text = value.startsWith('0x') || value.startsWith('0X') ? value.slice(2) : value\n if (text.length % 2 !== 0) {\n throw invalidArgument(\n `${label} must have an even number of hex digits, received ${text.length}.`,\n )\n }\n if (!HEX.test(text)) {\n const index = text.search(/[^0-9a-fA-F]/u)\n throw invalidArgument(\n `${label} is not valid hex: it contains ${JSON.stringify(text[index])} at index ${index}.`,\n )\n }\n\n const bytes = new Uint8Array(text.length / 2)\n for (let i = 0; i < bytes.length; i += 1) {\n bytes[i] = Number.parseInt(text.slice(i * 2, i * 2 + 2), 16)\n }\n return bytes\n}\n","import { GeeqError, invalidArgument, nodeUnusable } from '../errors'\nimport { fromBase64 } from '../encoding/base64'\nimport { toHex } from '../encoding/hex'\nimport { explorerTransactionRoute } from './routes'\nimport { defaultTransport, requestText } from './transport'\nimport type { GeeqTransport } from './transport'\n\nconst DEFAULT_TIMEOUT_MS = 10_000\nconst HASH_BYTES = 32\n/** What the explorer answers, with HTTP 500, for a refHash it does not have. */\nconst NOT_FOUND = 'Transaction does not exist'\n\n/** A transaction as a block explorer reports it, field for field. */\nexport interface GeeqExplorerTransaction {\n /** Hex — the form the explorer files transactions under. */\n readonly refHash: string\n /** The transaction's kind, such as `coin`. */\n readonly type: string\n /** The explorer's verdict on it. */\n readonly status: string\n readonly block: number\n readonly chainName: string\n readonly chainNumber: number\n /** The sender's wallet address. */\n readonly from: string\n readonly senderType: string\n /** The receiver's wallet address, or empty when it has none. */\n readonly to: string\n readonly receiverType: string\n readonly publicKey: string\n readonly signature: string\n readonly createdAt: string\n readonly fee: string\n readonly acctNumApp?: string\n /** What it moved — coin, tokens, NFTs — with amounts as decimal strings. */\n readonly values: readonly {\n readonly type: string\n readonly value: string\n readonly name?: string\n }[]\n /** An attestation's hash and metadata. */\n readonly payload?: {\n readonly attestationHash: string\n readonly metadata: readonly string[]\n }\n}\n\nexport interface ExplorerTransactionRequest {\n /** The explorer's base URL, such as `https://blkexp.geeq-test.io`. */\n readonly explorerUrl: string | URL\n /**\n * The transaction's refHash in base64 — what `transactionIdOf(tx)` returns and socket\n * status events carry. It is sent to the explorer as hex.\n */\n readonly refHash: string\n /** Defaults to `globalThis.fetch`. */\n readonly transport?: GeeqTransport\n /** Defaults to 10000. */\n readonly timeoutMs?: number\n readonly signal?: AbortSignal\n}\n\nfunction explorerBase(explorerUrl: string | URL): string {\n let url: URL | undefined\n try {\n url = new URL(String(explorerUrl))\n } catch {\n url = undefined\n }\n if (url === undefined || (url.protocol !== 'https:' && url.protocol !== 'http:')) {\n throw invalidArgument(\n 'explorerUrl must be an absolute http(s) URL, such as https://blkexp.geeq-test.io, ' +\n `received ${JSON.stringify(String(explorerUrl))}.`,\n )\n }\n return `${url.origin}${url.pathname.replace(/\\/+$/u, '')}`\n}\n\n/**\n * Look a transaction up in a block explorer by its refHash.\n *\n * Resolves `null` when the explorer does not have it — not indexed yet, or never put in a\n * block. The explorer only knows a transaction once a block has decided it, so for one\n * you have just sent, the node socket answers first.\n */\nexport async function getExplorerTransaction(\n request: ExplorerTransactionRequest,\n): Promise<GeeqExplorerTransaction | null> {\n const hash = fromBase64(request.refHash, 'refHash')\n if (hash.length !== HASH_BYTES) {\n throw invalidArgument(\n `refHash must be the base64 of a ${HASH_BYTES}-byte hash, received ${hash.length} bytes.`,\n )\n }\n const url = explorerTransactionRoute(explorerBase(request.explorerUrl), toHex(hash))\n\n let body: string\n try {\n body = await requestText(url, {\n transport: request.transport ?? defaultTransport,\n timeoutMs: request.timeoutMs ?? DEFAULT_TIMEOUT_MS,\n retries: 1,\n signal: request.signal,\n })\n } catch (error) {\n if (error instanceof GeeqError && error.nodeDetails === NOT_FOUND) return null\n throw error\n }\n\n let result: unknown\n try {\n result = (JSON.parse(body) as { result?: unknown })?.result\n } catch {\n result = undefined\n }\n if (result === null || typeof result !== 'object' || !('refHash' in result)) {\n throw nodeUnusable(\n `${url} did not answer with a transaction, so it does not look like a Geeq block ` +\n 'explorer.',\n )\n }\n return result as GeeqExplorerTransaction\n}\n","import { socketUnreachable } from '../errors'\n\n/** `readyState` of an open connection. The same number in browsers and in `ws`. */\nexport const WEBSOCKET_OPEN = 1\n\n/** What a WebSocket hands its `message` listeners, narrowed to the one field read. */\nexport interface GeeqWebSocketMessageEvent {\n readonly data: unknown\n}\n\n/**\n * A WebSocket, narrowed to what this SDK uses.\n *\n * Deliberately structural, like {@link GeeqTransport}: a browser `WebSocket`, Node 22's\n * global one and the `ws` package's class all satisfy it with no adapter, and so does a\n * scripted fake in a test. Listeners are attached with `addEventListener` rather than\n * `onmessage` and friends because a method is compared bivariantly, which is what lets\n * each implementation's own event types through.\n */\nexport interface GeeqWebSocketLike {\n readonly readyState: number\n send(data: string): void\n close(code?: number, reason?: string): void\n addEventListener(type: 'open', listener: (event: unknown) => void): void\n addEventListener(type: 'message', listener: (event: GeeqWebSocketMessageEvent) => void): void\n addEventListener(type: 'close', listener: (event: unknown) => void): void\n addEventListener(type: 'error', listener: (event: unknown) => void): void\n}\n\n/**\n * How the SDK opens a socket.\n *\n * `(url) => new WebSocket(url)` is the whole contract. Pass one to use the `ws` package on\n * Node 20, to add headers or a TLS agent there, or to script a connection in a test.\n */\nexport type GeeqWebSocketFactory = (url: string) => GeeqWebSocketLike\n\n/**\n * `new globalThis.WebSocket(url)`, resolved at call time.\n *\n * Never a stored reference, for the same reason as `defaultTransport`: a test that swaps\n * the global after import must still be honoured. Node 20 has no global WebSocket at all,\n * and a library that supports Node 20 cannot assume one, so its absence is reported with\n * the one-line fix rather than as a `TypeError`.\n */\nexport const defaultWebSocketFactory: GeeqWebSocketFactory = (url) => {\n const WebSocketClass = (globalThis as { WebSocket?: new (url: string) => GeeqWebSocketLike })\n .WebSocket\n if (typeof WebSocketClass !== 'function') {\n throw socketUnreachable(\n 'This runtime has no global WebSocket — Node 20 does not, Node 22 and every browser ' +\n 'do. Pass one explicitly: `webSocket: (url) => new WebSocket(url)` with ' +\n '`import WebSocket from \"ws\"`.',\n )\n }\n return new WebSocketClass(url)\n}\n\n/**\n * The one socket failure a browser can be certain about before trying.\n *\n * An https page may not open a `ws://` socket; the browser refuses it outright and reports\n * nothing useful, so the handshake would only turn a knowable cause into an opaque one.\n */\nexport function assertSocketSchemeReachable(url: string): void {\n const location = (globalThis as { location?: { protocol?: string } }).location\n if (location?.protocol !== 'https:') return\n\n let scheme: string\n try {\n scheme = new URL(url).protocol\n } catch {\n return\n }\n if (scheme !== 'ws:') return\n\n throw socketUnreachable(\n `This page is served over https and the socket URL ${url} is ws://, so the browser ` +\n 'will block it as mixed content before it connects. Use the node\\'s wss:// URL ' +\n '(port 2082 by default), or serve this page over http while developing.',\n )\n}\n\n/** The causes a browser cannot tell apart when a handshake fails, with the fix for each. */\nexport function opaqueSocketFailureMessage(url: string): string {\n return (\n `Could not open the Geeq node socket at ${url}. A browser reports a failed handshake ` +\n 'with no detail, so this is one of four things: (1) the node\\'s TLS certificate is ' +\n 'not trusted, which is common because nodes are addressed by bare IP — open the ' +\n \"node's https URL in a tab to see the interstitial; (2) this page is https and the \" +\n 'socket is ws://, which browsers block; (3) the URL is wrong — the path is /ws/, with ' +\n 'the trailing slash, on the same port as the HTTP API; or (4) the node is down.'\n )\n}\n","import type { GeeqTxStatusEvent } from './tx-status'\n\n/** The node committed it. */\nexport interface GeeqTxConfirmed {\n readonly status: 'confirmed'\n readonly id: string\n /** The `valid` event that settled it. */\n readonly event: GeeqTxStatusEvent\n readonly at: Date\n}\n\n/**\n * Why a transaction was rejected. Branch on this, never on {@link GeeqTxRejected.message}.\n *\n * - `invalid` — found wrong at commit, usually the nonce or the balance. The fee is still\n * charged.\n * - `incorrectly-included` — carried by a node the chain judged dishonest. Not your fault.\n * - `nonsane` — the receiving node refused it and dropped it.\n * - `refused` — the node answered the submission with an error status. It never entered\n * a block and will produce no status event.\n */\nexport type GeeqTxRejectionReason = 'invalid' | 'incorrectly-included' | 'nonsane' | 'refused'\n\nexport interface GeeqTxRejected {\n readonly status: 'rejected'\n readonly id: string\n readonly reason: GeeqTxRejectionReason\n /** The node's own words when it gave any. For display and support — never parse it. */\n readonly message: string\n /** The event that settled it. Undefined for a `refused` submission the socket never saw. */\n readonly event: GeeqTxStatusEvent | undefined\n /** The HTTP status of a `refused` submission, when the caller reported one. */\n readonly httpStatus: number | undefined\n readonly at: Date\n}\n\n/**\n * No verdict, and none is coming to this handle.\n *\n * - `timeout` — nothing final arrived in time. **This is not a rejection**: statuses sent\n * while the socket was reconnecting are lost, so it may well have settled. Read the\n * ledger (has the account's nonce moved on?) before sending it again.\n * - `closed` — the socket was disposed while it was pending.\n * - `released` — the caller stopped tracking it.\n */\nexport type GeeqTxUnknownReason = 'timeout' | 'closed' | 'released'\n\nexport interface GeeqTxUnknown {\n readonly status: 'unknown'\n readonly id: string\n readonly reason: GeeqTxUnknownReason\n readonly message: string\n readonly at: Date\n}\n\nexport type GeeqTxOutcome = GeeqTxConfirmed | GeeqTxRejected | GeeqTxUnknown\n\n/** `pending` until an outcome, then the outcome's own status. Never goes back. */\nexport type GeeqTxState = 'pending' | GeeqTxOutcome['status']\n\n/** What a submission refusal looked like, for {@link GeeqTrackedTx.refused}. */\nexport interface GeeqTxRefusal {\n /** The HTTP status the node answered with. */\n readonly status?: number\n /** The node's `details`, or the body — whatever it said. */\n readonly message?: string\n}\n\n/**\n * Hand an error thrown by application code to the platform, without letting it stop the\n * SDK delivering the same event to everyone else.\n *\n * @internal\n */\nexport function reportListenerError(error: unknown): void {\n const report = (globalThis as { reportError?: (error: unknown) => void }).reportError\n if (typeof report === 'function') report(error)\n else console.error(error)\n}\n\n/** @internal */\nexport interface TrackedTxInit {\n readonly id: string\n readonly timeoutMs: number\n readonly nonsaneGraceMs: number\n /** Called once, when it settles — the socket drops it from its table. */\n readonly detach: () => void\n}\n\n/**\n * One submitted transaction, followed to its verdict.\n *\n * Returned by {@link GeeqSocket.track}. It collapses the node's four verdicts, some of\n * which arrive more than once and one of which is only usually final, into one of three\n * outcomes an application can branch on — and it never rejects, because a rejected\n * transaction is an answer, not a failure:\n *\n * ```ts\n * const outcome = await tracked.settled()\n * if (outcome.status === 'confirmed') …\n * else if (outcome.status === 'rejected') show(outcome.reason, outcome.message)\n * else checkLedgerBeforeRetrying() // 'unknown'\n * ```\n *\n * In a reactive framework, keep it raw (Vue's `markRaw`) and re-read `status` and\n * `events` from {@link onChange}.\n */\nexport class GeeqTrackedTx {\n /** The transaction's refHash, base64 — the same string status events carry. */\n readonly id: string\n\n // TS-private and non-enumerable, never `#private` — see GeeqNode for why.\n private readonly received!: GeeqTxStatusEvent[]\n private readonly listeners!: Set<(tx: GeeqTrackedTx) => void>\n private readonly nonsaneGraceMs!: number\n private readonly detach!: () => void\n private readonly promise!: Promise<GeeqTxOutcome>\n private readonly resolve!: (outcome: GeeqTxOutcome) => void\n private current!: GeeqTxOutcome | undefined\n private deadline!: ReturnType<typeof setTimeout> | null\n private grace!: ReturnType<typeof setTimeout> | null\n\n /** @internal */\n constructor(init: TrackedTxInit) {\n this.id = init.id\n\n const hidden = (key: string, value: unknown, writable = false): void => {\n Object.defineProperty(this, key, { value, enumerable: false, writable })\n }\n let resolve!: (outcome: GeeqTxOutcome) => void\n const promise = new Promise<GeeqTxOutcome>((settle) => {\n resolve = settle\n })\n hidden('received', [])\n hidden('listeners', new Set())\n hidden('nonsaneGraceMs', init.nonsaneGraceMs)\n hidden('detach', init.detach)\n hidden('promise', promise)\n hidden('resolve', resolve)\n hidden('current', undefined, true)\n hidden('grace', null, true)\n hidden(\n 'deadline',\n init.timeoutMs > 0\n ? setTimeout(() => {\n this.finish({\n status: 'unknown',\n id: this.id,\n reason: 'timeout',\n message:\n `No final status for transaction ${this.id} within ${init.timeoutMs}ms. ` +\n 'That is not a rejection: statuses sent while the socket was reconnecting ' +\n 'are lost. Check the ledger — whether the account nonce has moved on — ' +\n 'before sending it again.',\n at: new Date(),\n })\n }, init.timeoutMs)\n : null,\n true,\n )\n }\n\n /** `pending`, then `confirmed`, `rejected` or `unknown` — once, and for good. */\n get status(): GeeqTxState {\n return this.current?.status ?? 'pending'\n }\n\n /** The outcome, once there is one. */\n get outcome(): GeeqTxOutcome | undefined {\n return this.current\n }\n\n /** Every status event received for this transaction, oldest first. */\n get events(): readonly GeeqTxStatusEvent[] {\n return [...this.received]\n }\n\n /** Resolves with the outcome. Never rejects — see the class notes. */\n settled(): Promise<GeeqTxOutcome> {\n return this.promise\n }\n\n /**\n * Call `listener` whenever an event arrives for this transaction or it settles.\n *\n * Returns the function that removes it. Read {@link status}, {@link events} and\n * {@link outcome} inside; they are already up to date.\n */\n onChange(listener: (tx: GeeqTrackedTx) => void): () => void {\n this.listeners.add(listener)\n return () => {\n this.listeners.delete(listener)\n }\n }\n\n /**\n * Report that the node refused the submission — answered it with an error status.\n *\n * Settles it `rejected` at once. A refused transaction never reaches a block, so no\n * status event would ever arrive to settle it, and waiting would only turn a clear\n * answer into a timeout. Do **not** call this when the POST failed to arrive at all\n * (a network error): the node may have it, so leave it tracked.\n */\n refused(refusal: GeeqTxRefusal = {}): void {\n if (this.current !== undefined) return\n const nonsane = this.received.find((event) => event.verdict === 'nonsane')\n const said = refusal.message ?? nonsane?.error\n this.finish({\n status: 'rejected',\n id: this.id,\n reason: 'refused',\n message:\n said === undefined || said === ''\n ? `The node refused transaction ${this.id}` +\n (refusal.status === undefined ? '.' : ` with HTTP ${refusal.status}.`)\n : said,\n event: nonsane,\n httpStatus: refusal.status,\n at: new Date(),\n })\n }\n\n /** Stop tracking. Settles `unknown` with reason `released` if it was still pending. */\n release(): void {\n this.abandon('released', `Tracking of transaction ${this.id} was released.`)\n }\n\n /** @internal Settle as unknown because the socket is going away, or on release. */\n abandon(reason: 'closed' | 'released', message: string): void {\n this.finish({ status: 'unknown', id: this.id, reason, message, at: new Date() })\n }\n\n /**\n * @internal Take one status event for this transaction.\n *\n * The only place the protocol's rules live. First-event-wins would report false\n * failures: a `nonsane` can be followed by a real verdict when a node carries its buffer\n * over a restart, so it only settles if nothing final follows within the grace window.\n * Everything after the outcome — a second node's copy, a duplicate — is ignored.\n */\n receive(event: GeeqTxStatusEvent): void {\n if (this.current !== undefined) return\n this.received.push(event)\n\n if (event.verdict === 'nonsane') {\n if (this.grace === null) {\n this.grace = setTimeout(() => {\n this.finish({\n status: 'rejected',\n id: this.id,\n reason: 'nonsane',\n message: event.error ?? 'The node refused this transaction.',\n event,\n httpStatus: undefined,\n at: new Date(),\n })\n }, this.nonsaneGraceMs)\n }\n this.notify()\n return\n }\n\n if (event.verdict === 'valid') {\n this.finish({ status: 'confirmed', id: this.id, event, at: new Date() })\n return\n }\n\n this.finish({\n status: 'rejected',\n id: this.id,\n reason: event.verdict === 'invalid' ? 'invalid' : 'incorrectly-included',\n message:\n event.error ??\n (event.verdict === 'invalid'\n ? 'The chain found this transaction invalid when committing the block.'\n : 'This transaction was carried by a node the chain judged dishonest.'),\n event,\n httpStatus: undefined,\n at: new Date(),\n })\n }\n\n private finish(outcome: GeeqTxOutcome): void {\n if (this.current !== undefined) return\n this.current = Object.freeze(outcome)\n if (this.deadline !== null) clearTimeout(this.deadline)\n if (this.grace !== null) clearTimeout(this.grace)\n this.deadline = null\n this.grace = null\n this.detach()\n this.resolve(this.current)\n this.notify()\n }\n\n private notify(): void {\n for (const listener of [...this.listeners]) {\n try {\n listener(this)\n } catch (error) {\n reportListenerError(error)\n }\n }\n }\n\n toJSON(): Record<string, unknown> {\n return {\n id: this.id,\n status: this.status,\n events: this.received.map((event) => event.verdict),\n ...(this.current?.status === 'rejected' || this.current?.status === 'unknown'\n ? { reason: this.current.reason }\n : {}),\n }\n }\n\n toString(): string {\n return `GeeqTrackedTx(${this.id}, ${this.status})`\n }\n}\n","import { toBase64 } from '../encoding/base64'\n\n/**\n * The four verdicts a node reports for a transaction, by their protocol names.\n *\n * - `valid` — committed in a block. Final.\n * - `invalid` — placed in a block's invalid list, typically a nonce or solvency failure\n * found at commit. Final, and **the sender is still charged the fee**.\n * - `incorrectlyIncluded` — carried by a node the chain judged dishonest. Final; not the\n * sender's fault.\n * - `nonsane` — refused by the receiving node, at intake (alongside an HTTP 400) or at block\n * selection (after a 200). The node drops it, so it is final in practice — but a node\n * restarting can carry its buffer forward, and then a later verdict follows.\n *\n * From geeq_node_core `UutStatuses` (actors/interfaces.ts).\n */\nexport type GeeqTxVerdict = 'nonsane' | 'incorrectlyIncluded' | 'invalid' | 'valid'\n\n/** The wire carries names, but the node's own enum is numbered; accept either. */\nconst VERDICTS: readonly GeeqTxVerdict[] = [\n 'nonsane',\n 'incorrectlyIncluded',\n 'invalid',\n 'valid',\n]\n\n/**\n * One `uut_status` event, normalised.\n *\n * Every field is what the node sent, renamed only where the wire name misleads. Nothing\n * is inferred: in particular `vlbBlock` is passed through as reported and not treated as\n * the inclusion block, because on current nodes it is one ahead of it for `valid` and\n * `invalid` events.\n */\nexport interface GeeqTxStatusEvent {\n /**\n * The transaction's refHash, standard base64 — compare it with `transactionIdOf(tx)`.\n * Always the transaction hash, never the payload hash.\n */\n readonly id: string\n readonly verdict: GeeqTxVerdict\n /** The node's own boolean: true exactly when `verdict` is `valid`. */\n readonly isValid: boolean\n /** The node's reason, verbatim. Empty when valid. Show it; never parse it. */\n readonly error: string | undefined\n /** The transaction's own target block, as the node reports it. */\n readonly blockNumber: number | undefined\n /** The node's `vlbBlock`, as reported. See the note above before relying on it. */\n readonly vlbBlock: number | undefined\n /**\n * `outgoing` on the sender's copy, `incoming` on the receiver's, when the node says —\n * older nodes do not. Do not use it to tell your own transactions apart: match on\n * {@link id} instead.\n */\n readonly direction: 'incoming' | 'outgoing' | undefined\n /** The signer's base64 public key. */\n readonly signer: string | undefined\n /** When the node stamped it. Second precision. */\n readonly createdAt: Date | undefined\n /** The event's payload exactly as it arrived, for logging and support. */\n readonly raw: unknown\n}\n\nfunction optionalNumber(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined\n}\n\nfunction verdictOf(value: unknown): GeeqTxVerdict | undefined {\n if (typeof value === 'number') return VERDICTS[value]\n if (typeof value === 'string') {\n return VERDICTS.find((verdict) => verdict === value)\n }\n return undefined\n}\n\n/** The node renders timestamps as `Date:<Date#toString()>`. */\nfunction dateOf(value: unknown): Date | undefined {\n if (typeof value !== 'string') return undefined\n const parsed = Date.parse(value.replace(/^Date:/u, ''))\n return Number.isNaN(parsed) ? undefined : new Date(parsed)\n}\n\n/**\n * Read a `uut_status` payload, or `undefined` when it is not one this SDK understands.\n *\n * Tolerant of the shapes nodes have actually sent: `publicKeys` as an array or the older\n * single `publicKey`, the verdict as a name or as the node's enum number.\n *\n * @internal\n */\nexport function parseTxStatus(payload: unknown): GeeqTxStatusEvent | undefined {\n if (payload === null || typeof payload !== 'object') return undefined\n const fields = payload as Record<string, unknown>\n\n const id = fields.refHash\n const verdict = verdictOf(fields.status)\n if (typeof id !== 'string' || id === '' || verdict === undefined) return undefined\n\n const keys = fields.publicKeys\n const signer = Array.isArray(keys)\n ? keys.find((key): key is string => typeof key === 'string')\n : typeof fields.publicKey === 'string'\n ? fields.publicKey\n : undefined\n\n const direction =\n fields.type === 'incoming' || fields.type === 'outgoing' ? fields.type : undefined\n\n return Object.freeze({\n id,\n verdict,\n isValid: typeof fields.isValid === 'boolean' ? fields.isValid : verdict === 'valid',\n error: typeof fields.error === 'string' && fields.error !== '' ? fields.error : undefined,\n blockNumber: optionalNumber(fields.blockNumber),\n vlbBlock: optionalNumber(fields.vlbBlock),\n direction,\n signer,\n createdAt: dateOf(fields.createdAt),\n raw: payload,\n })\n}\n\n/**\n * A transaction's id as status events name it: its `transactionHash`, in base64.\n *\n * Works on anything the SDK builds — an attestation or a transfer — because each already\n * carries the hash its kind is identified by, and the two kinds are hashed differently.\n */\nexport function transactionIdOf(tx: { readonly transactionHash: Uint8Array }): string {\n return toBase64(tx.transactionHash)\n}\n","import { MAX_UINT32, assertDuration } from '../assert'\nimport { originOf } from '../chain/select'\nimport { resolveAccountId } from '../crypto/account-id'\nimport type { AccountRef } from '../crypto/account-id'\nimport { fromBase64, toBase64 } from '../encoding/base64'\nimport {\n GeeqError,\n invalidArgument,\n invalidKey,\n socketClosed,\n socketUnreachable,\n} from '../errors'\nimport { socketRoute } from '../net/routes'\nimport {\n WEBSOCKET_OPEN,\n assertSocketSchemeReachable,\n defaultWebSocketFactory,\n opaqueSocketFailureMessage,\n} from '../net/websocket'\nimport type { GeeqWebSocketFactory, GeeqWebSocketLike } from '../net/websocket'\nimport { GeeqTrackedTx, reportListenerError } from './tracked-tx'\nimport { parseTxStatus } from './tx-status'\nimport type { GeeqTxStatusEvent } from './tx-status'\n\nconst DEFAULT_OPEN_TIMEOUT_MS = 15_000\n/** The edge proxy drops a socket idle for 60 s; the production wallet pings every 25. */\nconst DEFAULT_HEARTBEAT_MS = 25_000\nconst DEFAULT_RECONNECT_DELAY_MS = 1_000\nconst DEFAULT_MAX_RECONNECT_DELAY_MS = 30_000\n/**\n * A transaction targets a block no more than ten behind the chain's head, so after about\n * ten block intervals it has either been decided or never will be. Five minutes covers\n * that at the ~20 s interval with room for a slow block.\n */\nconst DEFAULT_TRACK_TIMEOUT_MS = 5 * 60_000\n/** Long enough for the next commit to carry a restarted node's buffer forward. */\nconst DEFAULT_NONSANE_GRACE_MS = 30_000\nconst KEY_BYTES = 32\n\n/**\n * - `connecting` — the first handshake, inside {@link GeeqSocket.connect}.\n * - `open` — subscribed and receiving.\n * - `reconnecting` — dropped after being open; retrying with backoff. Anything the node\n * sends meanwhile is lost.\n * - `closed` — disposed. Final.\n */\nexport type GeeqSocketState = 'connecting' | 'open' | 'reconnecting' | 'closed'\n\n/** One JSON frame from the node, as `{ event, payload }`. */\nexport interface GeeqSocketMessage {\n readonly event: string\n readonly payload: unknown\n}\n\nexport interface GeeqSocketOptions {\n /**\n * The node the socket belongs to — normally `chain.endpoint`, which is also where the\n * transactions go. Its socket is derived: `https://ip:2082` becomes\n * `wss://ip:2082/ws/`.\n *\n * Supply this or {@link url}, not both. Use the node you submit to: only that node\n * reports a `nonsane` refusal, though every node reports the final verdicts.\n */\n readonly endpoint?: string | URL\n /**\n * The socket URL itself, when it is not the one derived from the node — a local\n * harness reaching the socket server directly on its own port, for instance.\n */\n readonly url?: string | URL\n /** Defaults to `new globalThis.WebSocket(url)`. Supply one on Node 20 — see README. */\n readonly webSocket?: GeeqWebSocketFactory\n /**\n * How long a handshake, or a send waiting on one, may take. Defaults to 15000. 0 waits\n * for ever — including a first handshake that neither opens nor fails.\n */\n readonly openTimeoutMs?: number\n /** How often to send the keepalive `'ping'`. Defaults to 25000; 0 disables it. */\n readonly heartbeatMs?: number\n /** Reconnect after a drop. Defaults to true. */\n readonly reconnect?: boolean\n /** The first reconnect delay, doubled on each failure. Defaults to 1000. */\n readonly reconnectDelayMs?: number\n /** The ceiling on that delay. Defaults to 30000. */\n readonly maxReconnectDelayMs?: number\n /** Abandons the first handshake. Once connected, use {@link GeeqSocket.dispose}. */\n readonly signal?: AbortSignal\n}\n\nexport interface GeeqSendOptions {\n /**\n * Re-send the frame on every reconnect. A node forgets a connection's subscriptions\n * when it drops, so anything that subscribes should set this. Only the latest frame for\n * each event name is kept.\n */\n readonly replay?: boolean\n}\n\nexport interface GeeqListenOptions {\n readonly blockNumber?: number\n /** Defaults to true. */\n readonly now?: boolean\n}\n\nexport interface GeeqTrackOptions {\n /** How long to wait for a final status. Defaults to 300000. 0 waits for ever. */\n readonly timeoutMs?: number\n /** How long a `nonsane` may be overturned by a real verdict. Defaults to 30000. */\n readonly nonsaneGraceMs?: number\n /** More accounts to subscribe alongside the signer. */\n readonly accounts?: readonly (AccountRef | string)[]\n}\n\n/**\n * Anything with the hash a status event names. Every transaction this SDK builds fits,\n * and brings its signer's `publicKey` for the subscription.\n */\nexport interface GeeqTrackable {\n readonly transactionHash: Uint8Array\n readonly publicKey?: Uint8Array\n}\n\ninterface OpenWaiter {\n resolve(): void\n reject(error: unknown): void\n}\n\ntype Listener<T> = (value: T) => void\n\nfunction dispatch<T>(listeners: ReadonlySet<Listener<T>> | undefined, value: T): void {\n if (listeners === undefined) return\n // A copy, so a listener that removes itself does not skip its neighbour.\n for (const listener of [...listeners]) {\n try {\n listener(value)\n } catch (error) {\n reportListenerError(error)\n }\n }\n}\n\nfunction socketUrlOf(options: GeeqSocketOptions): string {\n const raw =\n options.url !== undefined\n ? String(options.url)\n : socketRoute(originOf(options.endpoint as string | URL))\n let parsed: URL\n try {\n parsed = new URL(raw)\n } catch (cause) {\n throw invalidArgument(\n 'url must be an absolute socket URL such as wss://1.2.3.4:2082/ws/, received ' +\n `${JSON.stringify(raw)}.`,\n cause,\n )\n }\n if (parsed.protocol !== 'ws:' && parsed.protocol !== 'wss:') {\n throw invalidArgument(\n `url must use ws:// or wss://, received ${JSON.stringify(raw)}. To derive the socket ` +\n 'from a node URL, pass it as endpoint instead.',\n )\n }\n return parsed.href\n}\n\n/**\n * Every key a node might file an account's events under.\n *\n * Nodes have keyed per-account events by the base64 public key and, since 2026-09, by the\n * base64 account id; which one a socket server matches is not visible from here. So an\n * account named by its public key is subscribed under both, as the production wallet does.\n */\nfunction keysOf(ref: AccountRef | string): string[] {\n if (typeof ref === 'string') {\n const bytes = fromBase64(ref, 'account key')\n if (bytes.length !== KEY_BYTES) {\n throw invalidArgument(\n `An account key must be the base64 of a ${KEY_BYTES}-byte public key or account id, ` +\n `received ${bytes.length} bytes.`,\n )\n }\n return [ref]\n }\n\n const accountId = toBase64(resolveAccountId(ref))\n if (ref instanceof Uint8Array) return [accountId]\n\n const { publicKey } = ref as { publicKey?: unknown }\n if (publicKey === undefined) return [accountId]\n if (!(publicKey instanceof Uint8Array) || publicKey.length !== KEY_BYTES) {\n throw invalidKey(`publicKey must be ${KEY_BYTES} bytes.`)\n }\n return [toBase64(publicKey), accountId]\n}\n\nfunction closeQuietly(socket: GeeqWebSocketLike | null): void {\n if (socket === null) return\n try {\n socket.close()\n } catch {\n // Already closing, or never opened. Either way there is nothing left to release.\n }\n}\n\n/**\n * A node's WebSocket: the channel through which it reports what happened to the\n * transactions you sent, and pushes account and chain updates.\n *\n * One class for every use an application has for the socket:\n *\n * - {@link track} a transaction you are about to submit, and get its verdict;\n * - {@link subscribe} to accounts and read their events with {@link on};\n * - {@link send} any frame the node understands, and receive any it sends.\n *\n * The protocol's hazards are handled here, once: subscriptions replace rather than add,\n * so the full set of keys is always sent; the node forgets a connection's subscriptions\n * when it drops, so they are replayed on every reconnect before anything is announced;\n * the edge proxy drops an idle socket, so it is kept alive; a transaction's first status\n * is not always its last, so {@link GeeqTrackedTx} decides when it is final.\n *\n * ```ts\n * const socket = await GeeqSocket.connect({ endpoint: chain.endpoint })\n * const tx = await chain.createTransfer({ from, to, amount })\n * const tracked = await socket.track(tx) // before submitting — always\n * const response = await fetch(submitRoute(tx.nodeUrl), { … })\n * if (!response.ok) tracked.refused({ status: response.status })\n * const outcome = await tracked.settled()\n * ```\n *\n * In a reactive framework, mark an instance raw (Vue's `markRaw`) rather than letting it\n * be proxied — a proxied native WebSocket throws on every call.\n */\nexport class GeeqSocket {\n /** The socket URL, normalised. */\n readonly url: string\n\n // TS-private and non-enumerable, never `#private` — see GeeqNode for why.\n private readonly factory!: GeeqWebSocketFactory\n private readonly openTimeoutMs!: number\n private readonly heartbeatMs!: number\n private readonly reconnects!: boolean\n private readonly reconnectDelayMs!: number\n private readonly maxReconnectDelayMs!: number\n /** The frames in force, by event name, replayed on every connection. */\n private readonly persisted!: Map<string, string>\n /** What this connection has already been told, so a repeat is not sent twice. */\n private readonly told!: Map<string, string>\n private readonly keys!: Set<string>\n private readonly tracked!: Map<string, GeeqTrackedTx>\n private readonly eventListeners!: Map<string, Set<Listener<unknown>>>\n private readonly messageListeners!: Set<Listener<GeeqSocketMessage>>\n private readonly statusListeners!: Set<Listener<GeeqTxStatusEvent>>\n private readonly stateListeners!: Set<Listener<GeeqSocketState>>\n private readonly waiters!: Set<OpenWaiter>\n private socket!: GeeqWebSocketLike | null\n private current!: GeeqSocketState\n private everOpened!: boolean\n private attempts!: number\n private openTimer!: ReturnType<typeof setTimeout> | null\n private reconnectTimer!: ReturnType<typeof setTimeout> | null\n private heartbeatTimer!: ReturnType<typeof setInterval> | null\n\n /** @internal */\n constructor(init: {\n url: string\n factory: GeeqWebSocketFactory\n openTimeoutMs: number\n heartbeatMs: number\n reconnect: boolean\n reconnectDelayMs: number\n maxReconnectDelayMs: number\n }) {\n this.url = init.url\n\n const hidden = (key: string, value: unknown, writable = false): void => {\n Object.defineProperty(this, key, { value, enumerable: false, writable })\n }\n hidden('factory', init.factory)\n hidden('openTimeoutMs', init.openTimeoutMs)\n hidden('heartbeatMs', init.heartbeatMs)\n hidden('reconnects', init.reconnect)\n hidden('reconnectDelayMs', init.reconnectDelayMs)\n hidden('maxReconnectDelayMs', init.maxReconnectDelayMs)\n hidden('persisted', new Map())\n hidden('told', new Map())\n hidden('keys', new Set())\n hidden('tracked', new Map())\n hidden('eventListeners', new Map())\n hidden('messageListeners', new Set())\n hidden('statusListeners', new Set())\n hidden('stateListeners', new Set())\n hidden('waiters', new Set())\n hidden('socket', null, true)\n hidden('current', 'connecting', true)\n hidden('everOpened', false, true)\n hidden('attempts', 0, true)\n hidden('openTimer', null, true)\n hidden('reconnectTimer', null, true)\n hidden('heartbeatTimer', null, true)\n }\n\n /**\n * Open a node's socket and resolve once it is open.\n *\n * Throws `socket-unreachable` if the first handshake fails, rather than retrying\n * quietly: a socket that never opened is almost always a certificate, a mixed-content\n * page or a wrong URL, and retrying hides which. After that first open, a drop is\n * retried automatically and reported through {@link onConnectionChange}.\n */\n static async connect(options: GeeqSocketOptions): Promise<GeeqSocket> {\n if ((options.endpoint === undefined) === (options.url === undefined)) {\n throw invalidArgument(\n 'Provide exactly one of endpoint (the node you submit to — its socket URL is ' +\n 'derived from it) or url (a socket URL, such as ws://10.0.0.1:3100/ws/ for a ' +\n 'local harness).',\n )\n }\n assertDuration(options.openTimeoutMs, 'openTimeoutMs')\n assertDuration(options.heartbeatMs, 'heartbeatMs')\n assertDuration(options.reconnectDelayMs, 'reconnectDelayMs')\n assertDuration(options.maxReconnectDelayMs, 'maxReconnectDelayMs')\n\n const url = socketUrlOf(options)\n assertSocketSchemeReachable(url)\n\n const { signal } = options\n if (signal?.aborted === true) throw signal.reason\n\n const socket = new GeeqSocket({\n url,\n factory: options.webSocket ?? defaultWebSocketFactory,\n openTimeoutMs: options.openTimeoutMs ?? DEFAULT_OPEN_TIMEOUT_MS,\n heartbeatMs: options.heartbeatMs ?? DEFAULT_HEARTBEAT_MS,\n reconnect: options.reconnect ?? true,\n reconnectDelayMs: options.reconnectDelayMs ?? DEFAULT_RECONNECT_DELAY_MS,\n maxReconnectDelayMs: options.maxReconnectDelayMs ?? DEFAULT_MAX_RECONNECT_DELAY_MS,\n })\n\n let onAbort: (() => void) | undefined\n try {\n await new Promise<void>((resolve, reject) => {\n // No timer of its own: the handshake's timeout is the deadline.\n socket.waiters.add({ resolve, reject })\n if (signal !== undefined) {\n onAbort = () => reject(signal.reason)\n signal.addEventListener('abort', onAbort)\n }\n socket.dial()\n })\n } catch (error) {\n socket.dispose()\n throw error\n } finally {\n if (onAbort !== undefined) signal?.removeEventListener('abort', onAbort)\n }\n return socket\n }\n\n /** Where the connection stands. See {@link GeeqSocketState}. */\n get state(): GeeqSocketState {\n return this.current\n }\n\n /** Every account key subscribed so far, base64. The set only grows. */\n get subscriptions(): readonly string[] {\n return [...this.keys]\n }\n\n /**\n * Subscribe to accounts' events: their transactions' statuses and record updates.\n *\n * Takes a keypair, a `{ publicKey }`, a 32-byte account id, a base64 key, or a list of\n * them. The node has no unsubscribe and treats every subscription as a replacement, so\n * this adds to the set this socket holds and sends all of it — calling it for one\n * account never silences another. Resolves once the node has been told.\n */\n async subscribe(\n accounts: AccountRef | string | readonly (AccountRef | string)[],\n ): Promise<void> {\n this.assertOpenable('subscribe')\n const list = (Array.isArray(accounts) ? accounts : [accounts]) as readonly (\n | AccountRef\n | string\n )[]\n // Resolve every key before adding any, so one bad entry does not half-apply the list.\n const resolved = list.flatMap(keysOf)\n for (const key of resolved) this.keys.add(key)\n return this.send('client', { publicKeys: [...this.keys] }, { replay: true })\n }\n\n /** Ask for events from now, or from a block. Replayed on reconnect. */\n async listen(options: GeeqListenOptions = {}): Promise<void> {\n const { blockNumber } = options\n if (\n blockNumber !== undefined &&\n (!Number.isInteger(blockNumber) || blockNumber < 0 || blockNumber > MAX_UINT32)\n ) {\n throw invalidArgument(\n `blockNumber must be a block number, received ${String(blockNumber)}.`,\n )\n }\n return this.send(\n 'listen',\n { ...(blockNumber === undefined ? {} : { blockNumber }), now: options.now ?? true },\n { replay: true },\n )\n }\n\n /**\n * Subscribe to the whole chain's record feed — every account, fee and parameter update.\n * What a block explorer or an indexer wants; an ordinary application does not.\n */\n async subscribeBlockExplorer(): Promise<void> {\n return this.send('block-explorer', undefined, { replay: true })\n }\n\n /**\n * Send a frame, `{ event, payload }`, waiting for the connection if it is down.\n *\n * The escape hatch for anything the node understands that this class has no method\n * for. Rejects with `socket-unreachable` if the socket does not reopen within\n * `openTimeoutMs` — a replayed frame is still kept, and goes out when it does.\n */\n async send(event: string, payload?: unknown, options: GeeqSendOptions = {}): Promise<void> {\n this.assertOpenable('send')\n if (typeof event !== 'string' || event === '') {\n throw invalidArgument('event must be a non-empty string.')\n }\n const frame = JSON.stringify(payload === undefined ? { event } : { event, payload })\n const replay = options.replay === true\n if (replay) this.persisted.set(event, frame)\n\n // Resolves only once the frame has actually gone out. A socket can be open by our\n // books and already closing by its own — its close event not yet delivered — and a\n // subscription reported as sent when it was not would break track()'s promise.\n for (;;) {\n await this.whenOpen()\n // A newer frame for the same event may have replaced this one while we waited; the\n // node must end up with the newest, and a replacement makes the older one moot.\n const latest = replay ? (this.persisted.get(event) ?? frame) : frame\n if (this.transmit(event, latest, replay)) return\n }\n }\n\n /**\n * Follow a transaction to its verdict. Call it **before** submitting.\n *\n * Subscribes the signer — the node pushes a transaction's statuses only to connections\n * subscribed to its account — and resolves once the node has been told, so a status\n * cannot arrive before anyone is listening for it. If this throws, do not submit: a\n * transaction sent with no way to hear its verdict leaves the user guessing.\n *\n * Tracking the same transaction twice returns the same handle.\n */\n async track(tx: GeeqTrackable, options: GeeqTrackOptions = {}): Promise<GeeqTrackedTx> {\n this.assertOpenable('track')\n const hash = (tx as { transactionHash?: unknown } | null)?.transactionHash\n if (!(hash instanceof Uint8Array) || hash.length !== KEY_BYTES) {\n throw invalidArgument(\n `tx must carry a ${KEY_BYTES}-byte transactionHash — pass the transaction the SDK ` +\n 'built.',\n )\n }\n assertDuration(options.timeoutMs, 'timeoutMs')\n assertDuration(options.nonsaneGraceMs, 'nonsaneGraceMs')\n\n const accounts: (AccountRef | string)[] = [\n ...(tx.publicKey === undefined ? [] : [{ publicKey: tx.publicKey }]),\n ...(options.accounts ?? []),\n ]\n if (accounts.length === 0) {\n throw invalidArgument(\n 'This transaction does not say who signed it, so there is no account to subscribe ' +\n 'to for its status. Pass the signer in accounts.',\n )\n }\n\n const id = toBase64(hash)\n const existing = this.tracked.get(id)\n const tracked =\n existing ??\n new GeeqTrackedTx({\n id,\n timeoutMs: options.timeoutMs ?? DEFAULT_TRACK_TIMEOUT_MS,\n nonsaneGraceMs: options.nonsaneGraceMs ?? DEFAULT_NONSANE_GRACE_MS,\n detach: () => {\n if (this.tracked.get(id) === tracked) this.tracked.delete(id)\n },\n })\n // Registered before the subscription goes out, so nothing can slip between them.\n this.tracked.set(id, tracked)\n\n try {\n await this.subscribe(accounts)\n } catch (error) {\n if (existing === undefined) tracked.release()\n throw error\n }\n return tracked\n }\n\n /**\n * Call `listener` with the payload of every frame named `event`, whatever it is —\n * `'uut_status'`, `'coin-account-update'`, `'fee-update'`, or one this SDK has never\n * heard of. Returns the function that removes it.\n */\n on(event: string, listener: (payload: unknown) => void): () => void {\n let listeners = this.eventListeners.get(event)\n if (listeners === undefined) {\n listeners = new Set()\n this.eventListeners.set(event, listeners)\n }\n const set = listeners\n set.add(listener)\n return () => {\n set.delete(listener)\n if (set.size === 0 && this.eventListeners.get(event) === set) {\n this.eventListeners.delete(event)\n }\n }\n }\n\n /** Call `listener` with every JSON frame the node sends. */\n onMessage(listener: (message: GeeqSocketMessage) => void): () => void {\n this.messageListeners.add(listener)\n return () => {\n this.messageListeners.delete(listener)\n }\n }\n\n /** Call `listener` with every transaction status, tracked or not, already parsed. */\n onTxStatus(listener: (event: GeeqTxStatusEvent) => void): () => void {\n this.statusListeners.add(listener)\n return () => {\n this.statusListeners.delete(listener)\n }\n }\n\n /** Call `listener` whenever {@link state} changes. */\n onConnectionChange(listener: (state: GeeqSocketState) => void): () => void {\n this.stateListeners.add(listener)\n return () => {\n this.stateListeners.delete(listener)\n }\n }\n\n /**\n * Close for good. Pending sends reject with `socket-closed`, and every transaction still\n * being tracked settles `unknown` with reason `closed` — it may yet be decided, just\n * not heard about here.\n */\n dispose(): void {\n if (this.current === 'closed') return\n this.setState('closed')\n\n for (const timer of [this.openTimer, this.reconnectTimer]) {\n if (timer !== null) clearTimeout(timer)\n }\n this.openTimer = null\n this.reconnectTimer = null\n this.stopHeartbeat()\n\n const socket = this.socket\n this.socket = null\n closeQuietly(socket)\n\n const closed = socketClosed(`The socket at ${this.url} was disposed.`)\n for (const waiter of [...this.waiters]) waiter.reject(closed)\n this.waiters.clear()\n\n for (const tracked of [...this.tracked.values()]) {\n tracked.abandon(\n 'closed',\n `The socket was closed while transaction ${tracked.id} was pending. It may still be ` +\n 'decided; check the ledger before sending it again.',\n )\n }\n this.tracked.clear()\n\n this.eventListeners.clear()\n this.messageListeners.clear()\n this.statusListeners.clear()\n this.stateListeners.clear()\n }\n\n toJSON(): Record<string, unknown> {\n return {\n url: this.url,\n state: this.current,\n subscriptions: this.keys.size,\n tracking: this.tracked.size,\n }\n }\n\n toString(): string {\n return `GeeqSocket(${this.url}, ${this.current})`\n }\n\n private assertOpenable(what: string): void {\n if (this.current === 'closed') {\n throw socketClosed(\n `${what}() was called on a disposed socket (${this.url}). Connect a new one.`,\n )\n }\n }\n\n private setState(next: GeeqSocketState): void {\n if (this.current === next) return\n this.current = next\n dispatch(this.stateListeners, next)\n }\n\n /** Resolves when the socket is open, or rejects after `openTimeoutMs` or on dispose. */\n private whenOpen(): Promise<void> {\n if (this.current === 'open') return Promise.resolve()\n if (this.current === 'closed') {\n return Promise.reject(socketClosed(`The socket at ${this.url} was disposed.`))\n }\n\n return new Promise<void>((resolve, reject) => {\n let timer: ReturnType<typeof setTimeout> | null = null\n const waiter: OpenWaiter = {\n resolve: () => {\n if (timer !== null) clearTimeout(timer)\n resolve()\n },\n reject: (error) => {\n if (timer !== null) clearTimeout(timer)\n reject(error)\n },\n }\n if (this.openTimeoutMs > 0) {\n timer = setTimeout(() => {\n this.waiters.delete(waiter)\n reject(\n socketUnreachable(\n `The socket at ${this.url} is ${this.current} and did not reopen within ` +\n `${this.openTimeoutMs}ms. It keeps retrying; anything sent with replay ` +\n 'will go out when it does.',\n ),\n )\n }, this.openTimeoutMs)\n }\n this.waiters.add(waiter)\n })\n }\n\n private dial(): void {\n let socket: GeeqWebSocketLike\n try {\n socket = this.factory(this.url)\n } catch (cause) {\n this.attemptFailed(\n cause instanceof GeeqError\n ? cause\n : socketUnreachable(opaqueSocketFailureMessage(this.url), cause),\n )\n return\n }\n\n this.socket = socket\n // A new connection has been told nothing, so nothing may be suppressed as a repeat.\n this.told.clear()\n\n if (this.openTimeoutMs > 0) {\n this.openTimer = setTimeout(() => {\n if (this.socket !== socket) return\n this.socket = null\n closeQuietly(socket)\n this.attemptFailed(\n socketUnreachable(\n `The socket at ${this.url} did not open within ${this.openTimeoutMs}ms. ` +\n opaqueSocketFailureMessage(this.url),\n ),\n )\n }, this.openTimeoutMs)\n }\n\n // A superseded socket can still fire; only the current one may drive state.\n socket.addEventListener('open', () => {\n if (this.socket === socket) this.opened()\n })\n socket.addEventListener('message', (event) => {\n if (this.socket === socket) this.receive(event.data)\n })\n socket.addEventListener('close', () => {\n if (this.socket !== socket) return\n this.socket = null\n this.attemptFailed(socketUnreachable(opaqueSocketFailureMessage(this.url)))\n })\n socket.addEventListener('error', () => {\n // A 'close' always follows, and that is where the drop is handled. The listener\n // must still exist: the `ws` package throws an unhandled 'error' otherwise.\n })\n }\n\n private opened(): void {\n if (this.openTimer !== null) clearTimeout(this.openTimer)\n this.openTimer = null\n this.everOpened = true\n\n // Restore everything this connection should hold before announcing it, so a listener\n // reacting to 'open' finds the subscriptions already in force. If it drops part way,\n // the next connection replays the lot.\n for (const [event, frame] of this.persisted) {\n if (!this.transmit(event, frame, true)) return\n }\n // Only now is it a working connection. Resetting the backoff any earlier would let a\n // connection that dies while its subscriptions are replayed be redialled every second\n // for ever.\n this.attempts = 0\n this.startHeartbeat()\n this.setState('open')\n\n for (const waiter of [...this.waiters]) waiter.resolve()\n this.waiters.clear()\n }\n\n /** A handshake failed, or an open socket dropped. */\n private attemptFailed(error: GeeqError): void {\n if (this.openTimer !== null) clearTimeout(this.openTimer)\n this.openTimer = null\n this.stopHeartbeat()\n if (this.current === 'closed') return\n\n if (!this.everOpened) {\n // Still inside connect(): report it, and let connect() dispose.\n for (const waiter of [...this.waiters]) waiter.reject(error)\n this.waiters.clear()\n return\n }\n\n if (!this.reconnects) {\n this.dispose()\n return\n }\n\n this.setState('reconnecting')\n if (this.reconnectTimer !== null) return\n const delay = Math.min(this.reconnectDelayMs * 2 ** this.attempts, this.maxReconnectDelayMs)\n this.attempts += 1\n this.reconnectTimer = setTimeout(() => {\n this.reconnectTimer = null\n if (this.current !== 'closed') this.dial()\n }, delay)\n }\n\n /**\n * Put one frame on the current connection. True once it is there — or already was.\n *\n * False means the connection is gone. If our books still said it was open, it is\n * treated as the drop it is, here and now, so the caller waits for the next connection\n * instead of spinning on this one.\n */\n private transmit(event: string, frame: string, dedupe: boolean): boolean {\n // The node treats every subscription frame as a fresh subscribe, so an identical\n // repeat on the same connection is dropped here instead.\n if (dedupe && this.told.get(event) === frame) return true\n\n const socket = this.socket\n if (socket === null) return false\n if (socket.readyState === WEBSOCKET_OPEN) {\n try {\n socket.send(frame)\n if (dedupe) this.told.set(event, frame)\n return true\n } catch {\n // Closing underneath us. Handled below, as for any other drop.\n }\n }\n\n this.socket = null\n closeQuietly(socket)\n this.attemptFailed(socketUnreachable(opaqueSocketFailureMessage(this.url)))\n return false\n }\n\n private receive(data: unknown): void {\n const text =\n typeof data === 'string'\n ? data\n : data instanceof ArrayBuffer || ArrayBuffer.isView(data)\n ? new TextDecoder().decode(data)\n : undefined\n if (text === undefined) return\n\n let parsed: unknown\n try {\n parsed = JSON.parse(text)\n } catch {\n // Heartbeat replies and other non-JSON frames are not events.\n return\n }\n if (parsed === null || typeof parsed !== 'object') return\n const { event, payload } = parsed as { event?: unknown; payload?: unknown }\n if (typeof event !== 'string') return\n\n dispatch(this.messageListeners, Object.freeze({ event, payload }))\n dispatch(this.eventListeners.get(event), payload)\n\n if (event !== 'uut_status') return\n const status = parseTxStatus(payload)\n if (status === undefined) return\n dispatch(this.statusListeners, status)\n this.tracked.get(status.id)?.receive(status)\n }\n\n private startHeartbeat(): void {\n this.stopHeartbeat()\n if (this.heartbeatMs <= 0) return\n this.heartbeatTimer = setInterval(() => {\n const socket = this.socket\n if (socket === null || socket.readyState !== WEBSOCKET_OPEN) return\n try {\n // A raw text frame, not JSON: there is no protocol ping, and a browser cannot send\n // a control frame. Any reply is non-JSON and ignored.\n socket.send('ping')\n } catch {\n // The close handler reconnects.\n }\n }, this.heartbeatMs)\n }\n\n private stopHeartbeat(): void {\n if (this.heartbeatTimer !== null) clearInterval(this.heartbeatTimer)\n this.heartbeatTimer = null\n }\n}\n"]}
|