tenzro-sdk 0.2.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 (98) hide show
  1. package/README.md +1 -1
  2. package/dist/adaptive-burn.js +4 -4
  3. package/dist/adaptive-burn.js.map +1 -1
  4. package/dist/agent.d.ts +119 -11
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +162 -13
  7. package/dist/agent.js.map +1 -1
  8. package/dist/app.js +1 -1
  9. package/dist/app.js.map +1 -1
  10. package/dist/auth.d.ts +37 -0
  11. package/dist/auth.d.ts.map +1 -1
  12. package/dist/auth.js +11 -0
  13. package/dist/auth.js.map +1 -1
  14. package/dist/client.d.ts +81 -0
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +99 -0
  17. package/dist/client.js.map +1 -1
  18. package/dist/eip7702.d.ts +110 -0
  19. package/dist/eip7702.d.ts.map +1 -0
  20. package/dist/eip7702.js +73 -0
  21. package/dist/eip7702.js.map +1 -0
  22. package/dist/erc7683.d.ts +79 -0
  23. package/dist/erc7683.d.ts.map +1 -0
  24. package/dist/erc7683.js +82 -0
  25. package/dist/erc7683.js.map +1 -0
  26. package/dist/events.d.ts +45 -15
  27. package/dist/events.d.ts.map +1 -1
  28. package/dist/events.js +38 -8
  29. package/dist/events.js.map +1 -1
  30. package/dist/identity.d.ts +1 -1
  31. package/dist/identity.js +1 -1
  32. package/dist/index.d.ts +25 -3
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +36 -2
  35. package/dist/index.js.map +1 -1
  36. package/dist/iroh.d.ts +104 -0
  37. package/dist/iroh.d.ts.map +1 -0
  38. package/dist/iroh.js +102 -0
  39. package/dist/iroh.js.map +1 -0
  40. package/dist/marketplace.d.ts +2 -2
  41. package/dist/marketplace.js +2 -2
  42. package/dist/memory.d.ts +78 -0
  43. package/dist/memory.d.ts.map +1 -0
  44. package/dist/memory.js +60 -0
  45. package/dist/memory.js.map +1 -0
  46. package/dist/multimodal.d.ts +294 -0
  47. package/dist/multimodal.d.ts.map +1 -0
  48. package/dist/multimodal.js +160 -0
  49. package/dist/multimodal.js.map +1 -0
  50. package/dist/passkey.d.ts +193 -0
  51. package/dist/passkey.d.ts.map +1 -0
  52. package/dist/passkey.js +481 -0
  53. package/dist/passkey.js.map +1 -0
  54. package/dist/provider.d.ts +5 -4
  55. package/dist/provider.d.ts.map +1 -1
  56. package/dist/provider.js +8 -5
  57. package/dist/provider.js.map +1 -1
  58. package/dist/seed-agent.js +7 -7
  59. package/dist/seed-agent.js.map +1 -1
  60. package/dist/settlement.d.ts +23 -6
  61. package/dist/settlement.d.ts.map +1 -1
  62. package/dist/settlement.js +30 -7
  63. package/dist/settlement.js.map +1 -1
  64. package/dist/signer.d.ts +181 -0
  65. package/dist/signer.d.ts.map +1 -0
  66. package/dist/signer.js +69 -0
  67. package/dist/signer.js.map +1 -0
  68. package/dist/sla.d.ts +95 -0
  69. package/dist/sla.d.ts.map +1 -0
  70. package/dist/sla.js +70 -0
  71. package/dist/sla.js.map +1 -0
  72. package/dist/snapshot.d.ts +122 -0
  73. package/dist/snapshot.d.ts.map +1 -0
  74. package/dist/snapshot.js +80 -0
  75. package/dist/snapshot.js.map +1 -0
  76. package/dist/staking.d.ts +5 -5
  77. package/dist/staking.d.ts.map +1 -1
  78. package/dist/staking.js +8 -6
  79. package/dist/staking.js.map +1 -1
  80. package/dist/task.d.ts +56 -22
  81. package/dist/task.d.ts.map +1 -1
  82. package/dist/task.js +65 -31
  83. package/dist/task.js.map +1 -1
  84. package/dist/token.d.ts +41 -11
  85. package/dist/token.d.ts.map +1 -1
  86. package/dist/token.js.map +1 -1
  87. package/dist/training.d.ts +108 -0
  88. package/dist/training.d.ts.map +1 -0
  89. package/dist/training.js +53 -0
  90. package/dist/training.js.map +1 -0
  91. package/dist/types.d.ts +72 -11
  92. package/dist/types.d.ts.map +1 -1
  93. package/dist/types.js.map +1 -1
  94. package/dist/validator.d.ts +76 -0
  95. package/dist/validator.d.ts.map +1 -0
  96. package/dist/validator.js +47 -0
  97. package/dist/validator.js.map +1 -0
  98. package/package.json +2 -1
@@ -0,0 +1,481 @@
1
+ "use strict";
2
+ /**
3
+ * Passkey wallet — high-level "three-line" composition.
4
+ *
5
+ * TypeScript mirror of `tenzro_sdk::passkey` (Rust). See
6
+ * `docs/SPECIFICATION.md` §15.10.1.
7
+ *
8
+ * ```ts
9
+ * import { createPasskeyWallet, signWithPasskey } from "@tenzro/sdk";
10
+ *
11
+ * const wallet = await createPasskeyWallet({
12
+ * rpId: "keys.tenzro.network",
13
+ * });
14
+ * const sig = await signWithPasskey(wallet, userOp);
15
+ * ```
16
+ *
17
+ * # Where the actual ceremony runs
18
+ *
19
+ * - **Browser:** `navigator.credentials.create/get`. The SDK detects
20
+ * the browser environment automatically.
21
+ * - **Tauri desktop:** Tauri commands `device_create_passkey` /
22
+ * `device_sign_passkey` (implemented in
23
+ * `apps/tenzro-desktop/src-tauri/src/device_key.rs`). Pass a
24
+ * {@link PlatformAuthenticator} adapter that posts to those
25
+ * commands via `@tauri-apps/api/core`.
26
+ * - **Headless:** {@link SoftwareP256Authenticator} via Web Crypto
27
+ * `subtle.generateKey` / `subtle.sign`. Returns `false` from
28
+ * `isPlatformAuthenticatorAvailable` so production configs reject
29
+ * it (the safe default).
30
+ *
31
+ * # Cross-device QR (FIDO hybrid / caBLE)
32
+ *
33
+ * When `isPlatformAuthenticatorAvailable()` returns false and the
34
+ * caller used a production config, the SDK throws and recommends
35
+ * {@link startCrossDeviceLink} which returns a QR payload + a
36
+ * promise that resolves once the remote authenticator completes.
37
+ * The actual caBLE wire is implemented by the host adapter; the SDK
38
+ * ships only the surface.
39
+ */
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.SoftwareP256Authenticator = exports.BrowserWebAuthnAuthenticator = exports.WebAuthnValidator = exports.WebAuthnSigner = void 0;
42
+ exports.productionConfig = productionConfig;
43
+ exports.developmentConfig = developmentConfig;
44
+ exports.createPasskeyWallet = createPasskeyWallet;
45
+ exports.signWithPasskey = signWithPasskey;
46
+ exports.defaultAuthenticator = defaultAuthenticator;
47
+ const signer_1 = require("./signer");
48
+ /** Production preset: strict UV, platform attachment required. */
49
+ function productionConfig(rpId) {
50
+ return {
51
+ rpId,
52
+ rpName: "Tenzro Network",
53
+ requireUserVerification: true,
54
+ requirePlatformAuthenticator: true,
55
+ };
56
+ }
57
+ /** Development preset: strict UV, allows cross-platform (YubiKey on Linux). */
58
+ function developmentConfig(rpId) {
59
+ return {
60
+ rpId,
61
+ rpName: "Tenzro Network (dev)",
62
+ requireUserVerification: true,
63
+ requirePlatformAuthenticator: false,
64
+ };
65
+ }
66
+ function resolveConfig(cfg) {
67
+ const base = cfg.requirePlatformAuthenticator === false
68
+ ? developmentConfig(cfg.rpId)
69
+ : productionConfig(cfg.rpId);
70
+ return {
71
+ rpId: cfg.rpId,
72
+ rpName: cfg.rpName ?? base.rpName,
73
+ requireUserVerification: cfg.requireUserVerification ?? base.requireUserVerification,
74
+ requirePlatformAuthenticator: cfg.requirePlatformAuthenticator ?? base.requirePlatformAuthenticator,
75
+ };
76
+ }
77
+ /** {@link Signer} impl that delegates to a {@link PlatformAuthenticator}. */
78
+ class WebAuthnSigner {
79
+ authenticator;
80
+ credentialBytes;
81
+ config;
82
+ constructor(authenticator, credentialBytes, config) {
83
+ this.authenticator = authenticator;
84
+ this.credentialBytes = credentialBytes;
85
+ this.config = config;
86
+ }
87
+ describe() {
88
+ return { kind: "webauthn", credentialId: this.credentialBytes.credentialId };
89
+ }
90
+ credential() {
91
+ return this.credentialBytes;
92
+ }
93
+ async sign(hash) {
94
+ if (hash.length !== 32) {
95
+ throw new signer_1.SignerError("authentication-failed", `expected 32-byte hash, got ${hash.length}`);
96
+ }
97
+ const assertion = await this.authenticator.signAssertion(this.config, this.credentialBytes.credentialId, hash);
98
+ // Pack authenticatorData + clientDataJSON into `aux` with 4-byte
99
+ // LE length prefixes — matches the Rust SDK and the on-chain
100
+ // WebAuthnValidator's `validatorData` decoder.
101
+ const aux = packAux(assertion.authenticatorData, assertion.clientDataJson);
102
+ return { bytes: assertion.signature, aux };
103
+ }
104
+ }
105
+ exports.WebAuthnSigner = WebAuthnSigner;
106
+ /** {@link Validator} impl that targets the on-chain `WebAuthnValidator` module. */
107
+ class WebAuthnValidator {
108
+ module;
109
+ signer;
110
+ constructor(module, signer) {
111
+ this.module = module;
112
+ this.signer = signer;
113
+ }
114
+ moduleAddress() {
115
+ return this.module;
116
+ }
117
+ moduleType() {
118
+ return signer_1.Erc7579ModuleType.Validator;
119
+ }
120
+ async buildValidatorData(userOp) {
121
+ let sig;
122
+ try {
123
+ sig = await this.signer.sign(userOp.opHash);
124
+ }
125
+ catch (e) {
126
+ const msg = e instanceof Error ? e.message : String(e);
127
+ throw new signer_1.ValidatorError("assembly-failed", msg);
128
+ }
129
+ // Wire format consumed by `aa_webauthn_validator::WebAuthnValidator`:
130
+ // sig.bytes (raw 64-byte P-256 sig) || sig.aux (length-prefixed
131
+ // authenticatorData + clientDataJSON).
132
+ const out = new Uint8Array(sig.bytes.length + sig.aux.length);
133
+ out.set(sig.bytes, 0);
134
+ out.set(sig.aux, sig.bytes.length);
135
+ return out;
136
+ }
137
+ }
138
+ exports.WebAuthnValidator = WebAuthnValidator;
139
+ /**
140
+ * One-shot create. Per Spec §15.10.1 step 1, when no platform
141
+ * authenticator is available the SDK MUST switch to the cross-device
142
+ * flow rather than silently using a software key — this is enforced
143
+ * here.
144
+ */
145
+ async function createPasskeyWallet(config, authenticator) {
146
+ const resolved = resolveConfig(config);
147
+ const auth = authenticator ?? defaultAuthenticator();
148
+ if (resolved.requirePlatformAuthenticator &&
149
+ !(await auth.isPlatformAuthenticatorAvailable())) {
150
+ throw new signer_1.SignerError("backend-unavailable", "no platform authenticator available — call startCrossDeviceLink to render a QR for the FIDO hybrid (caBLE) flow");
151
+ }
152
+ // 32 random bytes per WebAuthn spec.
153
+ const challenge = randomChallenge();
154
+ const registration = await auth.createCredential(resolved, challenge);
155
+ const signer = new WebAuthnSigner(auth, registration.credential, resolved);
156
+ let validatorModule = null;
157
+ return {
158
+ credential: registration.credential,
159
+ config: resolved,
160
+ signer,
161
+ bindValidatorModule(address) {
162
+ validatorModule = address;
163
+ },
164
+ validatorModule() {
165
+ return validatorModule;
166
+ },
167
+ async startCrossDeviceLink() {
168
+ return auth.startCrossDeviceLink(resolved);
169
+ },
170
+ };
171
+ }
172
+ /**
173
+ * Sign a user op. Returns the bytes ready to drop into
174
+ * `UserOperation.signature`. Fails until `bindValidatorModule` has
175
+ * been called with the on-chain module address.
176
+ */
177
+ async function signWithPasskey(wallet, userOp) {
178
+ const module = wallet.validatorModule();
179
+ if (!module) {
180
+ throw new signer_1.SignerError("backend-unavailable", "validator module not yet bound — call bindValidatorModule after the bootstrap op lands");
181
+ }
182
+ const validator = new WebAuthnValidator(module, wallet.signer);
183
+ return validator.buildValidatorData(userOp);
184
+ }
185
+ /**
186
+ * Pick the right {@link PlatformAuthenticator} for the current host.
187
+ * Browsers use `navigator.credentials`; Tauri / Node fall back to the
188
+ * software reference. Custom hosts pass an explicit authenticator to
189
+ * {@link createPasskeyWallet}.
190
+ */
191
+ function defaultAuthenticator() {
192
+ if (typeof navigator !== "undefined" &&
193
+ typeof navigator.credentials !== "undefined") {
194
+ return new BrowserWebAuthnAuthenticator();
195
+ }
196
+ return new SoftwareP256Authenticator();
197
+ }
198
+ // --- Browser WebAuthn implementation ---------------------------------
199
+ /**
200
+ * Browser-native authenticator using `navigator.credentials`. This is
201
+ * the production path on the web.
202
+ */
203
+ class BrowserWebAuthnAuthenticator {
204
+ async isPlatformAuthenticatorAvailable() {
205
+ if (typeof PublicKeyCredential === "undefined")
206
+ return false;
207
+ const fn = PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable;
208
+ if (!fn)
209
+ return false;
210
+ try {
211
+ return await fn.call(PublicKeyCredential);
212
+ }
213
+ catch {
214
+ return false;
215
+ }
216
+ }
217
+ async createCredential(config, challenge) {
218
+ const userId = new Uint8Array(16);
219
+ crypto.getRandomValues(userId);
220
+ const cred = (await navigator.credentials.create({
221
+ publicKey: {
222
+ challenge: bufferOf(challenge),
223
+ rp: { id: config.rpId, name: config.rpName },
224
+ user: {
225
+ id: bufferOf(userId),
226
+ name: "tenzro-user",
227
+ displayName: "Tenzro User",
228
+ },
229
+ pubKeyCredParams: [{ type: "public-key", alg: -7 }], // ES256 / P-256
230
+ authenticatorSelection: {
231
+ authenticatorAttachment: config.requirePlatformAuthenticator
232
+ ? "platform"
233
+ : undefined,
234
+ userVerification: config.requireUserVerification
235
+ ? "required"
236
+ : "preferred",
237
+ residentKey: "preferred",
238
+ },
239
+ attestation: "none",
240
+ },
241
+ }));
242
+ if (!cred) {
243
+ throw new signer_1.SignerError("user-cancelled", "credential creation returned null");
244
+ }
245
+ const response = cred.response;
246
+ const credentialId = new Uint8Array(cred.rawId);
247
+ const publicKey = extractCosePublicKey(new Uint8Array(response.attestationObject));
248
+ return {
249
+ credential: { credentialId, publicKey },
250
+ attestationObject: new Uint8Array(response.attestationObject),
251
+ };
252
+ }
253
+ async signAssertion(config, credentialId, challenge) {
254
+ const cred = (await navigator.credentials.get({
255
+ publicKey: {
256
+ challenge: bufferOf(challenge),
257
+ rpId: config.rpId,
258
+ allowCredentials: [
259
+ {
260
+ type: "public-key",
261
+ id: bufferOf(credentialId),
262
+ transports: ["internal", "hybrid", "usb", "nfc", "ble"],
263
+ },
264
+ ],
265
+ userVerification: config.requireUserVerification
266
+ ? "required"
267
+ : "preferred",
268
+ },
269
+ }));
270
+ if (!cred) {
271
+ throw new signer_1.SignerError("user-cancelled", "assertion returned null");
272
+ }
273
+ const response = cred.response;
274
+ return {
275
+ signature: derToRawP256(new Uint8Array(response.signature)),
276
+ authenticatorData: new Uint8Array(response.authenticatorData),
277
+ clientDataJson: new Uint8Array(response.clientDataJSON),
278
+ };
279
+ }
280
+ async startCrossDeviceLink(_config) {
281
+ // The browser doesn't expose caBLE QR generation directly — it
282
+ // ships inside `navigator.credentials.get` when the platform
283
+ // detects no local authenticator. Custom hosts (Tauri) implement
284
+ // this directly. Surface a clear error here.
285
+ throw new signer_1.SignerError("backend-unavailable", "browser does not expose caBLE QR; the OS handles cross-device transparently inside navigator.credentials.get");
286
+ }
287
+ }
288
+ exports.BrowserWebAuthnAuthenticator = BrowserWebAuthnAuthenticator;
289
+ // --- Software reference implementation -------------------------------
290
+ /**
291
+ * Software-only authenticator backed by Web Crypto's `subtle.sign`.
292
+ *
293
+ * **Not for production wallets.** The whole point of a passkey is that
294
+ * the secret never leaves dedicated hardware; a software keypair gives
295
+ * you the API shape but none of the security. The SDK exposes this so
296
+ * Node tests, CI, and reference docs can exercise the full surface
297
+ * without touching a real authenticator.
298
+ *
299
+ * `isPlatformAuthenticatorAvailable()` returns `false` so production
300
+ * configs refuse to use it (the safe default — opting into software
301
+ * keys requires {@link developmentConfig}).
302
+ */
303
+ class SoftwareP256Authenticator {
304
+ readyPromise;
305
+ keyPair;
306
+ credentialId;
307
+ publicKey;
308
+ constructor() {
309
+ this.readyPromise = this.init();
310
+ }
311
+ async init() {
312
+ this.keyPair = (await crypto.subtle.generateKey({ name: "ECDSA", namedCurve: "P-256" }, true, ["sign", "verify"]));
313
+ const raw = new Uint8Array(await crypto.subtle.exportKey("raw", this.keyPair.publicKey));
314
+ // Web Crypto returns SEC1 uncompressed `0x04 || x(32) || y(32)` —
315
+ // strip the prefix to match the on-chain WebAuthnValidator's
316
+ // 64-byte `x || y` form.
317
+ if (raw.length !== 65 || raw[0] !== 0x04) {
318
+ throw new signer_1.SignerError("backend-unavailable", `unexpected raw EC public-key encoding (len=${raw.length}, prefix=${raw[0]})`);
319
+ }
320
+ this.publicKey = raw.slice(1);
321
+ this.credentialId = new Uint8Array(16);
322
+ crypto.getRandomValues(this.credentialId);
323
+ }
324
+ async isPlatformAuthenticatorAvailable() {
325
+ // Software-backed; not a platform authenticator. Production
326
+ // configs will refuse this and force the cross-device flow.
327
+ return false;
328
+ }
329
+ async createCredential(_config, _challenge) {
330
+ await this.readyPromise;
331
+ return {
332
+ credential: {
333
+ credentialId: this.credentialId,
334
+ publicKey: this.publicKey,
335
+ },
336
+ attestationObject: new Uint8Array(),
337
+ };
338
+ }
339
+ async signAssertion(_config, credentialId, challenge) {
340
+ await this.readyPromise;
341
+ if (!eqBytes(credentialId, this.credentialId)) {
342
+ throw new signer_1.SignerError("authentication-failed", "credential ID mismatch");
343
+ }
344
+ // WebAuthn signs over `authenticatorData || SHA-256(clientDataJSON)`.
345
+ const authenticatorData = new Uint8Array(37);
346
+ // bytes 0..32 = rpIdHash placeholder (zeros)
347
+ authenticatorData[32] = 0b0000_0101; // UP=1, UV=1
348
+ // bytes 33..37 = signCount = 0
349
+ const clientDataJsonText = `{"type":"webauthn.get","challenge":"${b64UrlNoPad(challenge)}","origin":"https://localhost"}`;
350
+ const clientDataJson = new TextEncoder().encode(clientDataJsonText);
351
+ const clientDataHash = new Uint8Array(await crypto.subtle.digest("SHA-256", clientDataJson));
352
+ const signed = new Uint8Array(authenticatorData.length + clientDataHash.length);
353
+ signed.set(authenticatorData, 0);
354
+ signed.set(clientDataHash, authenticatorData.length);
355
+ // Web Crypto returns the canonical 64-byte `r || s` form for
356
+ // ECDSA over P-256 (per WebCrypto §23.4.5), which is exactly what
357
+ // the on-chain validator wants.
358
+ const sig = new Uint8Array(await crypto.subtle.sign({ name: "ECDSA", hash: "SHA-256" }, this.keyPair.privateKey, signed));
359
+ return { signature: sig, authenticatorData, clientDataJson };
360
+ }
361
+ async startCrossDeviceLink(_config) {
362
+ throw new signer_1.SignerError("backend-unavailable", "cross-device link is host-specific (browser / Tauri); software reference does not implement caBLE");
363
+ }
364
+ }
365
+ exports.SoftwareP256Authenticator = SoftwareP256Authenticator;
366
+ // --- helpers ---------------------------------------------------------
367
+ function packAux(authData, clientData) {
368
+ const out = new Uint8Array(8 + authData.length + clientData.length);
369
+ const view = new DataView(out.buffer);
370
+ view.setUint32(0, authData.length, true);
371
+ out.set(authData, 4);
372
+ view.setUint32(4 + authData.length, clientData.length, true);
373
+ out.set(clientData, 8 + authData.length);
374
+ return out;
375
+ }
376
+ function randomChallenge() {
377
+ const buf = new Uint8Array(32);
378
+ crypto.getRandomValues(buf);
379
+ return buf;
380
+ }
381
+ function eqBytes(a, b) {
382
+ if (a.length !== b.length)
383
+ return false;
384
+ for (let i = 0; i < a.length; i++)
385
+ if (a[i] !== b[i])
386
+ return false;
387
+ return true;
388
+ }
389
+ function b64UrlNoPad(bytes) {
390
+ let bin = "";
391
+ for (let i = 0; i < bytes.length; i++)
392
+ bin += String.fromCharCode(bytes[i]);
393
+ return btoa(bin).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
394
+ }
395
+ function bufferOf(arr) {
396
+ // Strip any subarray-offset by copying into a fresh buffer — most
397
+ // WebAuthn implementations are picky about this.
398
+ const out = new ArrayBuffer(arr.byteLength);
399
+ new Uint8Array(out).set(arr);
400
+ return out;
401
+ }
402
+ /**
403
+ * Browser WebAuthn returns DER-encoded ECDSA signatures from
404
+ * `navigator.credentials.get`. The on-chain validator wants the raw
405
+ * `r || s` 64-byte form. Decode minimal DER:
406
+ *
407
+ * 30 LL 02 RL <r> 02 SL <s>
408
+ */
409
+ function derToRawP256(der) {
410
+ let i = 0;
411
+ if (der[i++] !== 0x30)
412
+ throw new signer_1.SignerError("transport", "DER: missing SEQUENCE");
413
+ // Length (could be short-form for typical 70-72 byte sigs).
414
+ if (der[i] & 0x80) {
415
+ const lenBytes = der[i++] & 0x7f;
416
+ i += lenBytes;
417
+ }
418
+ else {
419
+ i++;
420
+ }
421
+ if (der[i++] !== 0x02)
422
+ throw new signer_1.SignerError("transport", "DER: missing r INTEGER");
423
+ const rLen = der[i++];
424
+ const rRaw = der.slice(i, i + rLen);
425
+ i += rLen;
426
+ if (der[i++] !== 0x02)
427
+ throw new signer_1.SignerError("transport", "DER: missing s INTEGER");
428
+ const sLen = der[i++];
429
+ const sRaw = der.slice(i, i + sLen);
430
+ // Strip leading 0x00 padding (DER encodes positive ints with a
431
+ // leading zero if MSB set), then left-pad to 32 bytes.
432
+ const r = stripLeadingZero(rRaw);
433
+ const s = stripLeadingZero(sRaw);
434
+ const out = new Uint8Array(64);
435
+ out.set(r, 32 - r.length);
436
+ out.set(s, 64 - s.length);
437
+ return out;
438
+ }
439
+ function stripLeadingZero(b) {
440
+ // Copy into a fresh ArrayBuffer-backed Uint8Array so callers can
441
+ // assign without TS narrowing the buffer type to ArrayBufferLike.
442
+ const start = b.length > 1 && b[0] === 0x00 ? 1 : 0;
443
+ const out = new Uint8Array(b.length - start);
444
+ out.set(b.subarray(start));
445
+ return out;
446
+ }
447
+ /**
448
+ * Extract the raw 64-byte P-256 public key (`x || y`) from the COSE
449
+ * key embedded in a WebAuthn `attestationObject`.
450
+ *
451
+ * The attestationObject is CBOR; its `authData` field embeds an
452
+ * "attested credential data" record that ends with a COSE_Key. For
453
+ * ES256/P-256 (alg=-7, kty=2, crv=1) the key has a fixed structure:
454
+ *
455
+ * A5 ; map(5)
456
+ * 01 02 ; kty: 2 (EC2)
457
+ * 03 26 ; alg: -7 (ES256)
458
+ * 20 01 ; crv: 1 (P-256)
459
+ * 21 58 20 <x32> ; x coord
460
+ * 22 58 20 <y32> ; y coord
461
+ *
462
+ * We scan for `21 58 20` + 32 bytes + `22 58 20` + 32 bytes — a
463
+ * minimal CBOR-aware parse that avoids pulling in a full CBOR lib.
464
+ */
465
+ function extractCosePublicKey(attestationObject) {
466
+ for (let i = 0; i + 70 < attestationObject.length; i++) {
467
+ if (attestationObject[i] === 0x21 &&
468
+ attestationObject[i + 1] === 0x58 &&
469
+ attestationObject[i + 2] === 0x20 &&
470
+ attestationObject[i + 35] === 0x22 &&
471
+ attestationObject[i + 36] === 0x58 &&
472
+ attestationObject[i + 37] === 0x20) {
473
+ const out = new Uint8Array(64);
474
+ out.set(attestationObject.slice(i + 3, i + 35), 0);
475
+ out.set(attestationObject.slice(i + 38, i + 70), 32);
476
+ return out;
477
+ }
478
+ }
479
+ throw new signer_1.SignerError("transport", "could not locate COSE P-256 public key in attestationObject");
480
+ }
481
+ //# sourceMappingURL=passkey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey.js","sourceRoot":"","sources":["../src/passkey.ts"],"names":[],"mappings":"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"}
@@ -190,21 +190,22 @@ export declare class ProviderClient {
190
190
  * Register as a provider on the network
191
191
  *
192
192
  * Model/inference providers do not need to stake TNZO — staking is only
193
- * required for validators. The `stakeAmount` parameter defaults to 0.
193
+ * required for validators. The `stake` parameter defaults to "0" (wei).
194
194
  *
195
+ * @param providerType - One of "validator", "model_provider", "tee_provider", "storage_provider"
195
196
  * @param models - List of model IDs to serve
196
- * @param stakeAmount - Amount of TNZO to stake (default: 0, not required for model providers)
197
+ * @param stake - Stake amount in wei (10^-18 TNZO) as decimal string. Default "0".
197
198
  * @returns Transaction hash of the registration
198
199
  *
199
200
  * @example
200
201
  * ```typescript
201
202
  * // Register as a model provider — no staking required
202
203
  * const models = ["gemma3-270m"];
203
- * const txHash = await client.provider.register(models);
204
+ * const txHash = await client.provider.register("model_provider", models);
204
205
  * console.log("Registration tx:", txHash);
205
206
  * ```
206
207
  */
207
- register(models: string[], stakeAmount?: number): Promise<string>;
208
+ register(providerType: string, models: string[], stake?: string): Promise<string>;
208
209
  /**
209
210
  * Get provider statistics
210
211
  *
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAY;gBAEX,GAAG,EAAE,SAAS;IAI1B;;;;;;;;;;;;OAYG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIjE;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD;;;;;;;;;;;OAWG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIrE;;;;;;;;;;OAUG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;;;;;;;;;OAUG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C;;;;;;;;;;OAUG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;;;;;;;;;;;;;;OAeG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3E;;;;;;;;;;;OAWG;IACG,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAIpD;;;;;;;;;;OAUG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C;;;;;;;;;;;;;;;;;OAiBG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1E;;;;;;;;;;;OAWG;IACG,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;IAIrC;;;;;;;;;;;;;;;OAeG;IACG,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAIpD;;;;;;;;;;;;;OAaG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAMvE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAKtE;;;;;OAKG;IACG,eAAe,CACnB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,GAAG,CAAC;IASf;;;;OAIG;IACG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAItD;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIzC;;;;OAIG;IACG,kBAAkB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpD;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIxC;;;;OAIG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAMxD;;;;;;;;OAQG;IACG,qBAAqB,CACzB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC;IAYf;;;;OAIG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAM/D;;;;;OAKG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAM1E;;;;;;;OAOG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAMlB;;;;OAIG;IACG,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAG5C"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/dist/provider.js CHANGED
@@ -150,22 +150,25 @@ class ProviderClient {
150
150
  * Register as a provider on the network
151
151
  *
152
152
  * Model/inference providers do not need to stake TNZO — staking is only
153
- * required for validators. The `stakeAmount` parameter defaults to 0.
153
+ * required for validators. The `stake` parameter defaults to "0" (wei).
154
154
  *
155
+ * @param providerType - One of "validator", "model_provider", "tee_provider", "storage_provider"
155
156
  * @param models - List of model IDs to serve
156
- * @param stakeAmount - Amount of TNZO to stake (default: 0, not required for model providers)
157
+ * @param stake - Stake amount in wei (10^-18 TNZO) as decimal string. Default "0".
157
158
  * @returns Transaction hash of the registration
158
159
  *
159
160
  * @example
160
161
  * ```typescript
161
162
  * // Register as a model provider — no staking required
162
163
  * const models = ["gemma3-270m"];
163
- * const txHash = await client.provider.register(models);
164
+ * const txHash = await client.provider.register("model_provider", models);
164
165
  * console.log("Registration tx:", txHash);
165
166
  * ```
166
167
  */
167
- async register(models, stakeAmount = 0) {
168
- return await this.rpc.call("tenzro_registerProvider", [models, stakeAmount]);
168
+ async register(providerType, models, stake = "0") {
169
+ return await this.rpc.call("tenzro_registerProvider", [
170
+ { provider_type: providerType, models, stake },
171
+ ]);
169
172
  }
170
173
  /**
171
174
  * Get provider statistics
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ class SeedAgentClient {
26
26
  * @returns Current `TreasuryEarmark`
27
27
  */
28
28
  async getTreasuryEarmark() {
29
- return this.rpc.call("tenzro_getTreasuryEarmark", []);
29
+ return this.rpc.call("tenzro_getTreasuryEarmark", [{}]);
30
30
  }
31
31
  /**
32
32
  * Fetch a single `Charter` by its identifier.
@@ -34,14 +34,14 @@ class SeedAgentClient {
34
34
  * @returns Charter record or null if not found
35
35
  */
36
36
  async getSeedAgentCharter(charterId) {
37
- return this.rpc.call("tenzro_getSeedAgentCharter", [charterId]);
37
+ return this.rpc.call("tenzro_getSeedAgentCharter", [{ charter_id: charterId }]);
38
38
  }
39
39
  /**
40
40
  * List every registered `Charter` (active and sunset).
41
41
  * @returns Array of charter records
42
42
  */
43
43
  async listSeedAgentCharters() {
44
- return this.rpc.call("tenzro_listSeedAgentCharters", []);
44
+ return this.rpc.call("tenzro_listSeedAgentCharters", [{}]);
45
45
  }
46
46
  /**
47
47
  * List provisioned `SeedAgentRecord`s, optionally filtered by charter.
@@ -49,8 +49,8 @@ class SeedAgentClient {
49
49
  * @returns Array of seed agent records
50
50
  */
51
51
  async listSeedAgents(charterId) {
52
- const params = charterId === undefined ? [] : [charterId];
53
- return this.rpc.call("tenzro_listSeedAgents", params);
52
+ const params = charterId === undefined ? {} : { charter_id: charterId };
53
+ return this.rpc.call("tenzro_listSeedAgents", [params]);
54
54
  }
55
55
  /**
56
56
  * Returns network activity metrics over the requested window. Used by
@@ -61,8 +61,8 @@ class SeedAgentClient {
61
61
  * @returns Activity metrics snapshot
62
62
  */
63
63
  async getNetworkActivity(windowBlocks) {
64
- const params = windowBlocks === undefined ? [] : [windowBlocks];
65
- return this.rpc.call("tenzro_getNetworkActivity", params);
64
+ const params = windowBlocks === undefined ? {} : { window_blocks: windowBlocks };
65
+ return this.rpc.call("tenzro_getNetworkActivity", [params]);
66
66
  }
67
67
  }
68
68
  exports.SeedAgentClient = SeedAgentClient;