tenzro-sdk 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/LICENSE +4 -15
  2. package/README.md +197 -4
  3. package/dist/adaptive-burn.d.ts +40 -0
  4. package/dist/adaptive-burn.d.ts.map +1 -0
  5. package/dist/adaptive-burn.js +53 -0
  6. package/dist/adaptive-burn.js.map +1 -0
  7. package/dist/agent.d.ts +127 -12
  8. package/dist/agent.d.ts.map +1 -1
  9. package/dist/agent.js +176 -15
  10. package/dist/agent.js.map +1 -1
  11. package/dist/ap2.d.ts +96 -0
  12. package/dist/ap2.d.ts.map +1 -1
  13. package/dist/ap2.js +65 -0
  14. package/dist/ap2.js.map +1 -1
  15. package/dist/app.js +5 -5
  16. package/dist/app.js.map +1 -1
  17. package/dist/auth.d.ts +394 -0
  18. package/dist/auth.d.ts.map +1 -0
  19. package/dist/auth.js +237 -0
  20. package/dist/auth.js.map +1 -0
  21. package/dist/bond.d.ts +70 -0
  22. package/dist/bond.d.ts.map +1 -0
  23. package/dist/bond.js +172 -0
  24. package/dist/bond.js.map +1 -0
  25. package/dist/cct.d.ts +53 -0
  26. package/dist/cct.d.ts.map +1 -0
  27. package/dist/cct.js +30 -0
  28. package/dist/cct.js.map +1 -0
  29. package/dist/client.d.ts +215 -2
  30. package/dist/client.d.ts.map +1 -1
  31. package/dist/client.js +295 -12
  32. package/dist/client.js.map +1 -1
  33. package/dist/cortex.d.ts +227 -0
  34. package/dist/cortex.d.ts.map +1 -0
  35. package/dist/cortex.js +137 -0
  36. package/dist/cortex.js.map +1 -0
  37. package/dist/custody.d.ts +251 -0
  38. package/dist/custody.d.ts.map +1 -1
  39. package/dist/custody.js +216 -0
  40. package/dist/custody.js.map +1 -1
  41. package/dist/eip6963.d.ts +63 -0
  42. package/dist/eip6963.d.ts.map +1 -0
  43. package/dist/eip6963.js +67 -0
  44. package/dist/eip6963.js.map +1 -0
  45. package/dist/eip7702.d.ts +110 -0
  46. package/dist/eip7702.d.ts.map +1 -0
  47. package/dist/eip7702.js +73 -0
  48. package/dist/eip7702.js.map +1 -0
  49. package/dist/erc7683.d.ts +79 -0
  50. package/dist/erc7683.d.ts.map +1 -0
  51. package/dist/erc7683.js +82 -0
  52. package/dist/erc7683.js.map +1 -0
  53. package/dist/erc8004.d.ts +97 -0
  54. package/dist/erc8004.d.ts.map +1 -0
  55. package/dist/erc8004.js +182 -0
  56. package/dist/erc8004.js.map +1 -0
  57. package/dist/events.d.ts +45 -15
  58. package/dist/events.d.ts.map +1 -1
  59. package/dist/events.js +38 -8
  60. package/dist/events.js.map +1 -1
  61. package/dist/identity.d.ts +16 -2
  62. package/dist/identity.d.ts.map +1 -1
  63. package/dist/identity.js +19 -1
  64. package/dist/identity.js.map +1 -1
  65. package/dist/index.d.ts +52 -6
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +83 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/insurance.d.ts +38 -0
  70. package/dist/insurance.d.ts.map +1 -0
  71. package/dist/insurance.js +51 -0
  72. package/dist/insurance.js.map +1 -0
  73. package/dist/iroh.d.ts +104 -0
  74. package/dist/iroh.d.ts.map +1 -0
  75. package/dist/iroh.js +102 -0
  76. package/dist/iroh.js.map +1 -0
  77. package/dist/lifecycle.d.ts +41 -0
  78. package/dist/lifecycle.d.ts.map +1 -0
  79. package/dist/lifecycle.js +56 -0
  80. package/dist/lifecycle.js.map +1 -0
  81. package/dist/marketplace.d.ts +30 -2
  82. package/dist/marketplace.d.ts.map +1 -1
  83. package/dist/marketplace.js +36 -2
  84. package/dist/marketplace.js.map +1 -1
  85. package/dist/memory.d.ts +78 -0
  86. package/dist/memory.d.ts.map +1 -0
  87. package/dist/memory.js +60 -0
  88. package/dist/memory.js.map +1 -0
  89. package/dist/multimodal.d.ts +294 -0
  90. package/dist/multimodal.d.ts.map +1 -0
  91. package/dist/multimodal.js +160 -0
  92. package/dist/multimodal.js.map +1 -0
  93. package/dist/passkey.d.ts +193 -0
  94. package/dist/passkey.d.ts.map +1 -0
  95. package/dist/passkey.js +481 -0
  96. package/dist/passkey.js.map +1 -0
  97. package/dist/payment.d.ts +14 -1
  98. package/dist/payment.d.ts.map +1 -1
  99. package/dist/payment.js +15 -0
  100. package/dist/payment.js.map +1 -1
  101. package/dist/principal-chain.d.ts +41 -0
  102. package/dist/principal-chain.d.ts.map +1 -0
  103. package/dist/principal-chain.js +56 -0
  104. package/dist/principal-chain.js.map +1 -0
  105. package/dist/provider.d.ts +7 -6
  106. package/dist/provider.d.ts.map +1 -1
  107. package/dist/provider.js +9 -6
  108. package/dist/provider.js.map +1 -1
  109. package/dist/quota.d.ts +54 -0
  110. package/dist/quota.d.ts.map +1 -0
  111. package/dist/quota.js +71 -0
  112. package/dist/quota.js.map +1 -0
  113. package/dist/rpc.d.ts +43 -4
  114. package/dist/rpc.d.ts.map +1 -1
  115. package/dist/rpc.js +110 -3
  116. package/dist/rpc.js.map +1 -1
  117. package/dist/seed-agent.d.ts +52 -0
  118. package/dist/seed-agent.d.ts.map +1 -0
  119. package/dist/seed-agent.js +69 -0
  120. package/dist/seed-agent.js.map +1 -0
  121. package/dist/settlement.d.ts +69 -10
  122. package/dist/settlement.d.ts.map +1 -1
  123. package/dist/settlement.js +220 -16
  124. package/dist/settlement.js.map +1 -1
  125. package/dist/signer.d.ts +181 -0
  126. package/dist/signer.d.ts.map +1 -0
  127. package/dist/signer.js +69 -0
  128. package/dist/signer.js.map +1 -0
  129. package/dist/sla.d.ts +95 -0
  130. package/dist/sla.d.ts.map +1 -0
  131. package/dist/sla.js +70 -0
  132. package/dist/sla.js.map +1 -0
  133. package/dist/snapshot.d.ts +122 -0
  134. package/dist/snapshot.d.ts.map +1 -0
  135. package/dist/snapshot.js +80 -0
  136. package/dist/snapshot.js.map +1 -0
  137. package/dist/staking.d.ts +5 -5
  138. package/dist/staking.d.ts.map +1 -1
  139. package/dist/staking.js +8 -6
  140. package/dist/staking.js.map +1 -1
  141. package/dist/streaming.js.map +1 -1
  142. package/dist/svm-cross-vm.d.ts +109 -0
  143. package/dist/svm-cross-vm.d.ts.map +1 -0
  144. package/dist/svm-cross-vm.js +215 -0
  145. package/dist/svm-cross-vm.js.map +1 -0
  146. package/dist/task.d.ts +56 -22
  147. package/dist/task.d.ts.map +1 -1
  148. package/dist/task.js +65 -31
  149. package/dist/task.js.map +1 -1
  150. package/dist/token.d.ts +41 -11
  151. package/dist/token.d.ts.map +1 -1
  152. package/dist/token.js.map +1 -1
  153. package/dist/training.d.ts +108 -0
  154. package/dist/training.d.ts.map +1 -0
  155. package/dist/training.js +53 -0
  156. package/dist/training.js.map +1 -0
  157. package/dist/types.d.ts +247 -17
  158. package/dist/types.d.ts.map +1 -1
  159. package/dist/types.js.map +1 -1
  160. package/dist/validator.d.ts +76 -0
  161. package/dist/validator.d.ts.map +1 -0
  162. package/dist/validator.js +47 -0
  163. package/dist/validator.js.map +1 -0
  164. package/dist/wallet.d.ts +26 -9
  165. package/dist/wallet.d.ts.map +1 -1
  166. package/dist/wallet.js +34 -19
  167. package/dist/wallet.js.map +1 -1
  168. package/dist/wormhole.d.ts +76 -0
  169. package/dist/wormhole.d.ts.map +1 -0
  170. package/dist/wormhole.js +56 -0
  171. package/dist/wormhole.js.map +1 -0
  172. package/package.json +3 -2
package/dist/client.js CHANGED
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TenzroClient = void 0;
4
4
  const config_1 = require("./config");
5
+ const eip6963_1 = require("./eip6963");
5
6
  const rpc_1 = require("./rpc");
6
7
  const wallet_1 = require("./wallet");
7
8
  const inference_1 = require("./inference");
9
+ const cortex_1 = require("./cortex");
8
10
  const settlement_1 = require("./settlement");
9
11
  const agent_1 = require("./agent");
10
12
  const governance_1 = require("./governance");
@@ -29,18 +31,40 @@ const bridge_1 = require("./bridge");
29
31
  const agent_payments_1 = require("./agent-payments");
30
32
  const circuit_breaker_1 = require("./circuit-breaker");
31
33
  const nanopayment_1 = require("./nanopayment");
34
+ const eip7702_1 = require("./eip7702");
35
+ const erc7683_1 = require("./erc7683");
32
36
  const erc7802_1 = require("./erc7802");
37
+ const erc8004_1 = require("./erc8004");
38
+ const wormhole_1 = require("./wormhole");
39
+ const iroh_1 = require("./iroh");
40
+ const cct_1 = require("./cct");
33
41
  const nft_1 = require("./nft");
34
42
  const compliance_1 = require("./compliance");
35
43
  const events_1 = require("./events");
36
44
  const debridge_1 = require("./debridge");
45
+ const auth_1 = require("./auth");
46
+ const bond_1 = require("./bond");
47
+ const insurance_1 = require("./insurance");
48
+ const adaptive_burn_1 = require("./adaptive-burn");
49
+ const seed_agent_1 = require("./seed-agent");
50
+ const quota_1 = require("./quota");
51
+ const principal_chain_1 = require("./principal-chain");
52
+ const lifecycle_1 = require("./lifecycle");
53
+ const multimodal_1 = require("./multimodal");
54
+ const memory_1 = require("./memory");
55
+ const validator_1 = require("./validator");
56
+ const training_1 = require("./training");
57
+ const sla_1 = require("./sla");
58
+ const snapshot_1 = require("./snapshot");
37
59
  /**
38
60
  * Main client for interacting with Tenzro Network.
39
61
  * Provides access to all network functionality through specialized sub-clients.
40
62
  */
41
63
  class TenzroClient {
64
+ auth;
42
65
  wallet;
43
66
  inference;
67
+ cortex;
44
68
  settlement;
45
69
  agent;
46
70
  governance;
@@ -60,11 +84,13 @@ class TenzroClient {
60
84
  streaming;
61
85
  rpc;
62
86
  config;
63
- constructor(config) {
87
+ constructor(config, transport) {
64
88
  this.config = config;
65
- this.rpc = new rpc_1.RpcClient(config.endpoint, config.apiEndpoint, config.timeout);
89
+ this.rpc = new rpc_1.RpcClient(config.endpoint, config.apiEndpoint, config.timeout, transport);
90
+ this.auth = new auth_1.AuthClient(this.rpc);
66
91
  this.wallet = new wallet_1.WalletClient(this.rpc);
67
92
  this.inference = new inference_1.InferenceClient(this.rpc);
93
+ this.cortex = new cortex_1.CortexClient(this.rpc);
68
94
  this.settlement = new settlement_1.SettlementClient(this.rpc);
69
95
  this.agent = new agent_1.AgentClient(this.rpc);
70
96
  this.governance = new governance_1.GovernanceClient(this.rpc);
@@ -109,10 +135,55 @@ class TenzroClient {
109
135
  nanopayment() {
110
136
  return new nanopayment_1.NanopaymentClient(this.rpc);
111
137
  }
138
+ /**
139
+ * Access the ERC-7683 cross-chain intent settler client.
140
+ *
141
+ * Read RPCs on the origin side (`get_order` / `list_orders` over
142
+ * `7683_origin:` keyspace) plus destination-side fill recording
143
+ * (`record_fill` / `get_fill` / `list_fills` over `7683_dest:`).
144
+ * Order state machine: Open → AwaitingProof → Settled / Refunded /
145
+ * ForceRefundEligible.
146
+ */
147
+ erc7683() {
148
+ return new erc7683_1.Erc7683Client(this.rpc);
149
+ }
150
+ /**
151
+ * Access the EIP-7702 (Set EOA Account Code) helper client. Wraps
152
+ * `tenzro_eip7702SigningHash`, `tenzro_eip7702BuildDesignator`,
153
+ * `tenzro_eip7702ParseDesignator`, and `tenzro_eip7702ProtocolInfo`.
154
+ * These are stateless helpers — the EOA's secp256k1 signature and
155
+ * the on-chain installation of the designator are performed out of
156
+ * band by the caller.
157
+ */
158
+ eip7702() {
159
+ return new eip7702_1.Eip7702Client(this.rpc);
160
+ }
112
161
  /** Access the ERC-7802 cross-chain token client. */
113
162
  erc7802() {
114
163
  return new erc7802_1.Erc7802Client(this.rpc);
115
164
  }
165
+ /** Access the ERC-8004 Trustless Agents Registry client. */
166
+ erc8004() {
167
+ return new erc8004_1.Erc8004Client(this.rpc);
168
+ }
169
+ /** Access the Wormhole cross-chain client. */
170
+ wormhole() {
171
+ return new wormhole_1.WormholeClient(this.rpc);
172
+ }
173
+ /**
174
+ * Access the Iroh consumer surface client for the `tenzro_iroh_*`
175
+ * namespace — endpoint id / ALPNs / publish / fetch over the shared
176
+ * `IrohBackedResolver` (QUIC + Pkarr + iroh-blobs substrate that
177
+ * also backs DA, training gradients, sealed shards, model fetch,
178
+ * agent memory archive, and A2A-over-iroh).
179
+ */
180
+ iroh() {
181
+ return new iroh_1.IrohClient(this.rpc);
182
+ }
183
+ /** Access the TNZO CCT (Chainlink Cross-Chain Token) pool registry client. */
184
+ cct() {
185
+ return new cct_1.CctClient(this.rpc);
186
+ }
116
187
  /** Access the NFT client. */
117
188
  nft() {
118
189
  return new nft_1.NftClient(this.rpc);
@@ -129,6 +200,91 @@ class TenzroClient {
129
200
  debridge() {
130
201
  return new debridge_1.DebridgeClient(this.rpc);
131
202
  }
203
+ /** Access the AgentBond client (Spec 9). */
204
+ bond() {
205
+ return new bond_1.BondClient(this.rpc);
206
+ }
207
+ /** Access the AgentBond insurance client (Spec 9). */
208
+ insurance() {
209
+ return new insurance_1.InsuranceClient(this.rpc);
210
+ }
211
+ /** Access the adaptive-burn governance dial client. */
212
+ adaptiveBurn() {
213
+ return new adaptive_burn_1.AdaptiveBurnClient(this.rpc);
214
+ }
215
+ /** Access the SeedAgent treasury / charter / registry client (Spec 10). */
216
+ seedAgent() {
217
+ return new seed_agent_1.SeedAgentClient(this.rpc);
218
+ }
219
+ /** Access the node quota / mempool / DA client (Spec 3, 6). */
220
+ quota() {
221
+ return new quota_1.QuotaClient(this.rpc);
222
+ }
223
+ /** Access the receipt principal-chain client (Spec 5). */
224
+ principalChain() {
225
+ return new principal_chain_1.PrincipalChainClient(this.rpc);
226
+ }
227
+ /** Access the agent lifecycle / kill-switch client. */
228
+ lifecycle() {
229
+ return new lifecycle_1.LifecycleClient(this.rpc);
230
+ }
231
+ /**
232
+ * Access the multi-modal AI client — forecast (timeseries), vision
233
+ * encoders, text embeddings, segmentation, detection, audio (ASR),
234
+ * and video. Each modality exposes catalog browse, list-loaded,
235
+ * load, unload, and one inference verb.
236
+ *
237
+ * Four of the seven `load*Model` paths are wave-1 stubs that return
238
+ * JSON-RPC `-32004` from the node — see `MultimodalClient` rustdoc.
239
+ */
240
+ multimodal() {
241
+ return new multimodal_1.MultimodalClient(this.rpc);
242
+ }
243
+ /**
244
+ * Access the per-agent memory tier client — Lance vector kNN +
245
+ * Tantivy BM25 with Reciprocal Rank Fusion at k=60 for hybrid
246
+ * search, with DA-backed archival.
247
+ */
248
+ memory() {
249
+ return new memory_1.MemoryClient(this.rpc);
250
+ }
251
+ /**
252
+ * Access the validator registry read client — `getValidatorState` /
253
+ * `listValidators` / `listActiveValidators`. Read-only; validators
254
+ * self-register via the staking transaction path.
255
+ */
256
+ validators() {
257
+ return new validator_1.ValidatorClient(this.rpc);
258
+ }
259
+ /**
260
+ * Access the Tenzro Train read-side inspection client — list runs,
261
+ * fetch a single run by task_id, fetch a sealed receipt, and fetch
262
+ * the installed Confidential-tier sealed-shard manifest. Safe to
263
+ * expose to monitoring agents — no write surface.
264
+ */
265
+ trainingInspection() {
266
+ return new training_1.TrainingInspectionClient(this.rpc);
267
+ }
268
+ /**
269
+ * Access the validator-side SLA fault-detector inspection client.
270
+ * Wraps `tenzro_slaIssueProbe`, `tenzro_slaListOutstandingProbes`,
271
+ * and `tenzro_slaGetParams`. The probe-issuing call is
272
+ * validator-only; on a non-validator node it returns
273
+ * `-32000 SlaManager not initialized`.
274
+ */
275
+ sla() {
276
+ return new sla_1.SlaClient(this.rpc);
277
+ }
278
+ /**
279
+ * State-sync snapshot client. Wraps `tenzro_listSnapshots`,
280
+ * `tenzro_getSnapshotManifest`, `tenzro_getSnapshotChunk`,
281
+ * `tenzro_offerSnapshot`, and `tenzro_applySnapshotChunk`. Callers
282
+ * MUST verify a manifest's `state_root_hex` against a trusted QC at
283
+ * the same height before calling `offerSnapshot` / `applySnapshotChunk`.
284
+ */
285
+ snapshot() {
286
+ return new snapshot_1.SnapshotClient(this.rpc);
287
+ }
132
288
  static mainnet() {
133
289
  return new TenzroClient(config_1.MAINNET_CONFIG);
134
290
  }
@@ -138,6 +294,44 @@ class TenzroClient {
138
294
  static local() {
139
295
  return new TenzroClient(config_1.LOCAL_CONFIG);
140
296
  }
297
+ /**
298
+ * Construct a client that routes RPCs through a browser-extension
299
+ * provider (`window.tenzro`) discovered via EIP-6963.
300
+ *
301
+ * The Tenzro provider handles auth (DPoP-bound JWT) and CAIP-25
302
+ * sessions on its own — the SDK never sees the user's keys or tokens
303
+ * and never opens a direct fetch to `rpc.tenzro.network`. All
304
+ * `client.rpc.call(...)` calls become `provider.request(...)` calls.
305
+ *
306
+ * Defaults to the mainnet config for `endpoint` / `apiEndpoint` so
307
+ * REST surfaces (`api.tenzro.network`) still work for direct fetches
308
+ * (e.g., `/health`, `/faucet`). Override via `options.config` when
309
+ * targeting testnet or a local node.
310
+ *
311
+ * Throws if no Tenzro provider is announced within `timeoutMs`
312
+ * (default 3000) — wrap the call in a try/catch and render an
313
+ * "Install Tenzro" CTA on `TenzroNotInstalledError`.
314
+ *
315
+ * @example
316
+ * ```ts
317
+ * try {
318
+ * const client = await TenzroClient.fromInjected();
319
+ * const block = await client.getLatestBlock();
320
+ * } catch (err) {
321
+ * if (err instanceof TenzroNotInstalledError) showInstallCta();
322
+ * else throw err;
323
+ * }
324
+ * ```
325
+ */
326
+ static async fromInjected(options) {
327
+ const detail = await (0, eip6963_1.discoverEip6963Provider)({
328
+ timeoutMs: options?.timeoutMs,
329
+ rdns: options?.rdns,
330
+ });
331
+ const transport = new rpc_1.Eip1193Transport(detail.provider);
332
+ const config = options?.config ?? config_1.MAINNET_CONFIG;
333
+ return new TenzroClient(config, transport);
334
+ }
141
335
  // Core blockchain queries
142
336
  async getBlockNumber() {
143
337
  const hex = await this.rpc.call("tenzro_blockNumber");
@@ -149,6 +343,45 @@ class TenzroClient {
149
343
  async getLatestBlock() {
150
344
  return this.rpc.call("tenzro_getBlock", [{ height: "latest" }]);
151
345
  }
346
+ /**
347
+ * Fetch a contiguous range of blocks for catch-up sync.
348
+ *
349
+ * Returns up to `maxResults` blocks (default 64, capped at 256). Use
350
+ * `nextHeight` and `moreAvailable` to drive pagination. `moreAvailable`
351
+ * reflects whether the chain has further blocks beyond `nextHeight`,
352
+ * independent of the requested `endHeight`, so a sync loop can step over
353
+ * pruning gaps:
354
+ *
355
+ * ```ts
356
+ * let cur = 0;
357
+ * while (true) {
358
+ * const r = await client.getBlockRange(cur, cur + 255, 256);
359
+ * for (const b of r.blocks) { /* ... *\/ }
360
+ * if (!r.moreAvailable) break;
361
+ * cur = r.nextHeight;
362
+ * }
363
+ * ```
364
+ */
365
+ async getBlockRange(startHeight, endHeight, maxResults) {
366
+ const params = {
367
+ startHeight,
368
+ endHeight,
369
+ };
370
+ if (maxResults !== undefined) {
371
+ params.maxResults = maxResults;
372
+ }
373
+ return this.rpc.call("tenzro_getBlockRange", params);
374
+ }
375
+ /**
376
+ * Get a transaction by hash.
377
+ *
378
+ * Resolves from finalized storage first, then falls back to the consensus
379
+ * mempool. The returned object's `status` field is `"pending"` while the
380
+ * transaction is in-mempool and `"finalized"` once it has been included in
381
+ * a block — callers polling immediately after broadcast can therefore
382
+ * distinguish "not yet finalized" from "unknown hash" (the RPC returns
383
+ * `null` only when the hash is unknown to both storage and mempool).
384
+ */
152
385
  async getTransaction(txHash) {
153
386
  return this.rpc.call("tenzro_getTransaction", [txHash]);
154
387
  }
@@ -164,19 +397,69 @@ class TenzroClient {
164
397
  const hex = await this.rpc.call("eth_chainId");
165
398
  return parseHex(hex);
166
399
  }
400
+ /**
401
+ * Returns the current effective gas price in wei (base fee + suggested
402
+ * priority tip). Tracks the EIP-1559 fee market — the value adjusts ±12.5%
403
+ * per block based on parent gas usage vs. the 15M target.
404
+ */
405
+ async getGasPrice() {
406
+ const hex = await this.rpc.call("eth_gasPrice");
407
+ return BigInt(hex);
408
+ }
409
+ /**
410
+ * Returns a suggested EIP-1559 priority fee (tip) in wei. Use this to fill
411
+ * `maxPriorityFeePerGas` on a Type-2 transaction; derive the base-fee
412
+ * portion from `getFeeHistory()` or the parent block's `baseFeePerGas`.
413
+ */
414
+ async getMaxPriorityFeePerGas() {
415
+ const hex = await this.rpc.call("eth_maxPriorityFeePerGas");
416
+ return BigInt(hex);
417
+ }
418
+ /**
419
+ * Returns base-fee history and gas-usage ratios for the last `blockCount`
420
+ * blocks. `newestBlock` is a hex height or `"latest"`. `rewardPercentiles`
421
+ * requests per-block tip percentiles (e.g. `[25, 50, 75]`); pass `undefined`
422
+ * to omit. `baseFeePerGas` returns `blockCount + 1` entries — the trailing
423
+ * entry is the predicted base fee for the next block. Used by wallets to
424
+ * model `maxFeePerGas` and `maxPriorityFeePerGas`.
425
+ */
426
+ async getFeeHistory(blockCount, newestBlock = "latest", rewardPercentiles) {
427
+ const params = [
428
+ `0x${blockCount.toString(16)}`,
429
+ newestBlock,
430
+ rewardPercentiles ?? [],
431
+ ];
432
+ return this.rpc.call("eth_feeHistory", params);
433
+ }
434
+ /**
435
+ * Sign and send a TNZO transfer atomically via the node's hybrid-signing
436
+ * path (`tenzro_signAndSendTransaction`).
437
+ *
438
+ * The node identifies the signing wallet from the ambient auth context
439
+ * (DPoP-bound bearer JWT), constructs the canonical `Transaction::hash()`
440
+ * preimage including the PQ public key, signs both the Ed25519 and
441
+ * ML-DSA-65 legs, verifies them, and submits atomically. Private keys
442
+ * never travel over the wire.
443
+ */
167
444
  async sendTransaction(params) {
168
- const tx = {
169
- from: params.from,
170
- to: params.to,
171
- value: `0x${params.value.toString(16)}`,
172
- };
173
- if (params.gas_limit !== undefined) {
174
- tx.gas_limit = `0x${params.gas_limit.toString(16)}`;
445
+ let { nonce, chain_id } = params;
446
+ if (nonce === undefined) {
447
+ const nonceHex = await this.rpc.call("tenzro_getNonce", [params.from]);
448
+ nonce = parseHex(nonceHex);
175
449
  }
176
- if (params.gas_price !== undefined) {
177
- tx.gas_price = `0x${params.gas_price.toString(16)}`;
450
+ if (chain_id === undefined) {
451
+ const chainHex = await this.rpc.call("eth_chainId", []);
452
+ chain_id = parseHex(chainHex);
178
453
  }
179
- return this.rpc.call("eth_sendRawTransaction", [tx]);
454
+ return this.rpc.call("tenzro_signAndSendTransaction", {
455
+ from: params.from,
456
+ to: params.to,
457
+ value: params.value.toString(),
458
+ gas_limit: params.gas_limit ?? 21000,
459
+ gas_price: params.gas_price ?? 1_000_000_000,
460
+ nonce,
461
+ chain_id,
462
+ });
180
463
  }
181
464
  // Node status and network info
182
465
  async nodeInfo() {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,227 @@
1
+ import { RpcClient } from "./rpc";
2
+ /**
3
+ * Service tier for a Cortex reasoning request.
4
+ *
5
+ * Each tier implies a default loop range, an expected latency profile,
6
+ * and whether hardware attestation / ZK inference proofs are required.
7
+ */
8
+ export type ReasoningTier = "fast" | "standard" | "deep" | "institutional";
9
+ /**
10
+ * Attestation requirement for a Cortex inference request.
11
+ *
12
+ * - `none` — no attestation, cheapest.
13
+ * - `tee` — Intel TDX / AMD SEV-SNP / AWS Nitro / NVIDIA CC quote required.
14
+ * - `tee_and_zk` — TEE quote AND a Plonky3 STARK inference-verification proof.
15
+ */
16
+ export type AttestationRequirement = "none" | "tee" | "tee_and_zk";
17
+ /**
18
+ * Reasoning-specific metadata captured during a Cortex inference.
19
+ */
20
+ export interface CortexMetadata {
21
+ input_tokens: number;
22
+ output_tokens: number;
23
+ /** Number of recurrent loops actually executed. */
24
+ loops_used: number;
25
+ /** Wall-clock latency in milliseconds. */
26
+ latency_ms: number;
27
+ model_version?: string | null;
28
+ /** "stop" | "length" | "converged" | etc. */
29
+ finish_reason?: string | null;
30
+ /** Distinct MoE experts activated, if known. */
31
+ experts_activated?: number | null;
32
+ }
33
+ /**
34
+ * Signed execution receipt for a Cortex reasoning call.
35
+ *
36
+ * Every Cortex response carries a receipt. Deep / Institutional receipts
37
+ * also anchor on Tenzro Ledger and may carry TEE quotes or Plonky3 STARK
38
+ * inference-verification proofs.
39
+ *
40
+ * Receipts let auditors reconstruct:
41
+ * 1. Which model weights were used (`weights_hash`, `runtime_hash`).
42
+ * 2. What input produced what output (`input_commitment`, `output_commitment`).
43
+ * 3. How much compute was spent (`loops_used`, `tokens_in`, `tokens_out`).
44
+ * 4. Who executed it (`worker_did`, `signature`).
45
+ * 5. Optional hardware / ZK evidence.
46
+ */
47
+ export interface CortexReceipt {
48
+ model_id: string;
49
+ /** Hex-encoded SHA-256 hash of the model weights. */
50
+ weights_hash: string;
51
+ /** Hex-encoded SHA-256 hash of the serving runtime (container / binary). */
52
+ runtime_hash: string;
53
+ /** Number of loops the worker was asked to run at most. */
54
+ loops_requested: number;
55
+ /** Number of loops actually run. */
56
+ loops_used: number;
57
+ /** Hex-encoded hash of the canonical request payload. */
58
+ input_commitment: string;
59
+ /** Hex-encoded hash of the canonical response payload. */
60
+ output_commitment: string;
61
+ /** DID of the worker that executed the inference. */
62
+ worker_did: string;
63
+ /** Worker wallet address (for settlement). Hex string. */
64
+ worker_address: string;
65
+ /** Optional TEE attestation quote bytes (base64-encoded over JSON-RPC). */
66
+ tee_quote?: number[] | null;
67
+ /** Optional Plonky3 STARK inference-verification proof bytes. */
68
+ zk_proof?: number[] | null;
69
+ /** Input tokens charged. */
70
+ tokens_in: number;
71
+ /** Output tokens charged. */
72
+ tokens_out: number;
73
+ /** Final settled price in smallest TNZO unit (uint64 — may overflow JS number; treat as bigint where precision matters). */
74
+ price_tnzo: number;
75
+ /** Receipt creation timestamp. */
76
+ timestamp?: unknown;
77
+ /** Worker signature over the canonical receipt preimage. */
78
+ signature?: unknown;
79
+ }
80
+ /**
81
+ * A Cortex reasoning request.
82
+ *
83
+ * Only `model_id` and `input` are required. All other fields default to the
84
+ * `Standard` tier values when omitted.
85
+ */
86
+ export interface CortexRequest {
87
+ request_id?: string;
88
+ model_id: string;
89
+ /** Plain-text prompt input. */
90
+ input: string;
91
+ tier?: ReasoningTier;
92
+ /** Override `min_loops` (defaults from tier). */
93
+ min_loops?: number;
94
+ /** Override `max_loops` (defaults from tier). */
95
+ max_loops?: number;
96
+ /** Hard cap on billed cost in smallest TNZO unit. */
97
+ max_cost_tnzo?: number;
98
+ /** Wall-clock deadline in milliseconds. */
99
+ deadline_ms?: number;
100
+ attestation?: AttestationRequirement;
101
+ /** Caller address (also the payer). Hex string. */
102
+ requester?: string;
103
+ /** Free-form generation parameters forwarded to the sidecar. */
104
+ params?: Record<string, string>;
105
+ }
106
+ /**
107
+ * A Cortex reasoning response.
108
+ */
109
+ export interface CortexResponse {
110
+ request_id: string;
111
+ response_id: string;
112
+ model_id: string;
113
+ /** Worker address that executed the inference. Hex string. */
114
+ worker: string;
115
+ /** Raw response payload. May arrive as a byte-array or string. */
116
+ output: number[] | string;
117
+ metadata: CortexMetadata;
118
+ /** Final price charged in smallest TNZO unit. */
119
+ price_tnzo: number;
120
+ /** Receipt binding this response to its inputs, weights, and worker. */
121
+ receipt: CortexReceipt;
122
+ /** Whether on-chain settlement of `price_tnzo` succeeded on this node. */
123
+ settled: boolean;
124
+ /** Response creation timestamp (server-side). */
125
+ timestamp?: unknown;
126
+ }
127
+ /**
128
+ * A locally-registered Cortex worker entry.
129
+ */
130
+ export interface CortexWorkerEntry {
131
+ model_id: string;
132
+ worker_did?: string;
133
+ family?: unknown;
134
+ pricing?: unknown;
135
+ }
136
+ /**
137
+ * Worker list response.
138
+ */
139
+ export interface CortexWorkerList {
140
+ workers: unknown[];
141
+ count: number;
142
+ }
143
+ /**
144
+ * Loop-aware pricing configuration for a Cortex model.
145
+ *
146
+ * Total cost formula (smallest TNZO unit):
147
+ *
148
+ * cost = base_request_fee
149
+ * + tokens_in * price_per_input_token
150
+ * + tokens_out * price_per_output_token
151
+ * + loops_used * price_per_loop
152
+ * + tee_premium (if attestation includes Tee)
153
+ * + zk_premium (if attestation includes Zk)
154
+ */
155
+ export interface CortexPricing {
156
+ base_request_fee: number;
157
+ price_per_input_token: number;
158
+ price_per_output_token: number;
159
+ price_per_loop: number;
160
+ tee_premium: number;
161
+ zk_premium: number;
162
+ }
163
+ /** Default Cortex pricing — mirror of the on-node `CortexPricing::default()`. */
164
+ export declare const DEFAULT_CORTEX_PRICING: CortexPricing;
165
+ /**
166
+ * Compute the total cost for a settled Cortex inference (mirror of the on-node logic).
167
+ *
168
+ * Uses native `number` arithmetic — fine for testnet pricing, but if you need
169
+ * full uint64 precision use bigint by hand.
170
+ */
171
+ export declare function computeCortexCost(pricing: CortexPricing, tokensIn: number, tokensOut: number, loopsUsed: number, attestation: AttestationRequirement): number;
172
+ /**
173
+ * Client for Cortex recurrent-depth reasoning operations on Tenzro Network.
174
+ *
175
+ * Cortex treats recurrent-loop depth as a first-class billable primitive.
176
+ * Use this to submit reasoning requests with explicit budget envelopes
177
+ * (Fast / Standard / Deep / Institutional tiers) and receive signed
178
+ * receipts binding inputs, outputs, and worker identity.
179
+ *
180
+ * @example
181
+ * ```ts
182
+ * const cortex = new CortexClient(rpc);
183
+ * const resp = await cortex.reason("openmythos-3b", "Plan a trade", "deep");
184
+ * console.log("loops_used:", resp.metadata.loops_used);
185
+ * console.log("cost:", resp.price_tnzo);
186
+ * console.log("worker:", resp.receipt.worker_did);
187
+ * ```
188
+ */
189
+ export declare class CortexClient {
190
+ private rpc;
191
+ constructor(rpc: RpcClient);
192
+ /**
193
+ * Submit a Cortex reasoning request via `tenzro_cortexReason` (one-shot helper).
194
+ *
195
+ * For full control over budget, attestation, params, etc., use {@link reasonWithRequest}.
196
+ */
197
+ reason(modelId: string, input: string, tier?: ReasoningTier): Promise<CortexResponse>;
198
+ /**
199
+ * Submit a Cortex reasoning request with full request parameters.
200
+ */
201
+ reasonWithRequest(req: CortexRequest): Promise<CortexResponse>;
202
+ /**
203
+ * List Cortex workers registered locally on the connected node.
204
+ */
205
+ listWorkers(): Promise<CortexWorkerList>;
206
+ /**
207
+ * List remote Cortex workers learned via the `tenzro/cortex`
208
+ * gossip topic (signed advertisements still within their TTL).
209
+ */
210
+ listRemoteWorkers(): Promise<CortexWorkerList>;
211
+ /**
212
+ * Register a Cortex worker on the connected node. The worker forwards
213
+ * Cortex requests to a sidecar HTTP backend.
214
+ *
215
+ * @param modelId Model id (must be unique on this node).
216
+ * @param sidecarUrl HTTP endpoint of the recurrent-depth model sidecar.
217
+ * @param familyArch Architecture identifier ("rdt-moe", "rdt-dense", etc.).
218
+ * @param maxLoops Hard ceiling on recurrent loops this model supports.
219
+ * @param opts Optional bearer token, pricing, supported tiers.
220
+ */
221
+ registerWorker(modelId: string, sidecarUrl: string, familyArch: string, maxLoops: number, opts?: {
222
+ bearerToken?: string;
223
+ pricing?: CortexPricing;
224
+ supportedTiers?: ReasoningTier[];
225
+ }): Promise<unknown>;
226
+ }
227
+ //# sourceMappingURL=cortex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cortex.d.ts","sourceRoot":"","sources":["../src/cortex.ts"],"names":[],"mappings":"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"}