@mentaproject/signer-react-native 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/signer.d.ts CHANGED
@@ -202,6 +202,88 @@ export declare class ReactNativePasskeySigner {
202
202
  * Converts a hex string to Uint8Array.
203
203
  */
204
204
  private hexToBytes;
205
+ /**
206
+ * Internal method to sign a challenge and return raw WebAuthn components.
207
+ * This is used by toWebAuthnAccount() where the caller handles encoding.
208
+ *
209
+ * @param challenge - The Base64URL-encoded challenge
210
+ * @returns Raw WebAuthn signature components
211
+ */
212
+ private signRaw;
213
+ /**
214
+ * Creates a viem-compatible WebAuthnAccount.
215
+ *
216
+ * This returns an object compatible with viem's WebAuthnAccount interface,
217
+ * which can be used directly with permissionless's toKernelSmartAccount.
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * const webAuthnAccount = signer.toWebAuthnAccount();
222
+ *
223
+ * const kernel = await toKernelSmartAccount({
224
+ * owners: [webAuthnAccount],
225
+ * client: publicClient,
226
+ * version: "0.3.3",
227
+ * });
228
+ * ```
229
+ */
230
+ toWebAuthnAccount(): {
231
+ id: string;
232
+ publicKey: Hex;
233
+ sign: (params: {
234
+ hash: Hex;
235
+ }) => Promise<{
236
+ signature: Hex;
237
+ webauthn: {
238
+ authenticatorData: Hex;
239
+ clientDataJSON: string;
240
+ typeIndex: number;
241
+ };
242
+ raw: {
243
+ id: string;
244
+ response: {
245
+ authenticatorData: Hex;
246
+ clientDataJSON: string;
247
+ signature: Hex;
248
+ };
249
+ };
250
+ }>;
251
+ signMessage: (params: {
252
+ message: SignableMessage;
253
+ }) => Promise<{
254
+ signature: Hex;
255
+ webauthn: {
256
+ authenticatorData: Hex;
257
+ clientDataJSON: string;
258
+ typeIndex: number;
259
+ };
260
+ raw: {
261
+ id: string;
262
+ response: {
263
+ authenticatorData: Hex;
264
+ clientDataJSON: string;
265
+ signature: Hex;
266
+ };
267
+ };
268
+ }>;
269
+ signTypedData: <T>(typedData: T) => Promise<{
270
+ signature: Hex;
271
+ webauthn: {
272
+ authenticatorData: Hex;
273
+ clientDataJSON: string;
274
+ typeIndex: number;
275
+ };
276
+ raw: {
277
+ id: string;
278
+ response: {
279
+ authenticatorData: Hex;
280
+ clientDataJSON: string;
281
+ signature: Hex;
282
+ };
283
+ };
284
+ }>;
285
+ type: "webAuthn";
286
+ };
205
287
  }
206
288
  /**
207
289
  * Type guard to check if a value is a valid PasskeyCredential.
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
package/dist/signer.js CHANGED
@@ -428,6 +428,126 @@ export class ReactNativePasskeySigner {
428
428
  }
429
429
  return bytes;
430
430
  }
431
+ /**
432
+ * Internal method to sign a challenge and return raw WebAuthn components.
433
+ * This is used by toWebAuthnAccount() where the caller handles encoding.
434
+ *
435
+ * @param challenge - The Base64URL-encoded challenge
436
+ * @returns Raw WebAuthn signature components
437
+ */
438
+ async signRaw(challenge) {
439
+ // Create assertion options
440
+ const options = createAssertionOptions(challenge, this.config.rpId, this.credentialId, this.config.userVerification, this.config.timeout);
441
+ // Call native passkey assertion
442
+ const result = await Passkey.get(options);
443
+ // Parse the assertion response
444
+ const webAuthnSignature = parseWebAuthnAssertion({
445
+ authenticatorData: result.response.authenticatorData,
446
+ clientDataJSON: result.response.clientDataJSON,
447
+ signature: result.response.signature,
448
+ });
449
+ return {
450
+ authenticatorData: webAuthnSignature.authenticatorData,
451
+ clientDataJSON: webAuthnSignature.clientDataJSON,
452
+ r: webAuthnSignature.r,
453
+ s: webAuthnSignature.s,
454
+ typeIndex: webAuthnSignature.responseTypeLocation,
455
+ };
456
+ }
457
+ /**
458
+ * Creates a viem-compatible WebAuthnAccount.
459
+ *
460
+ * This returns an object compatible with viem's WebAuthnAccount interface,
461
+ * which can be used directly with permissionless's toKernelSmartAccount.
462
+ *
463
+ * @example
464
+ * ```typescript
465
+ * const webAuthnAccount = signer.toWebAuthnAccount();
466
+ *
467
+ * const kernel = await toKernelSmartAccount({
468
+ * owners: [webAuthnAccount],
469
+ * client: publicClient,
470
+ * version: "0.3.3",
471
+ * });
472
+ * ```
473
+ */
474
+ toWebAuthnAccount() {
475
+ const self = this;
476
+ const signWithHash = async (hash) => {
477
+ // Convert hash to challenge (base64url encoded)
478
+ const messageBytes = self.hexToBytes(hash);
479
+ const challenge = bytesToBase64Url(messageBytes);
480
+ try {
481
+ const rawResult = await self.signRaw(challenge);
482
+ // Combine r and s into a single signature (64 bytes)
483
+ const rClean = rawResult.r.startsWith("0x")
484
+ ? rawResult.r.slice(2)
485
+ : rawResult.r;
486
+ const sClean = rawResult.s.startsWith("0x")
487
+ ? rawResult.s.slice(2)
488
+ : rawResult.s;
489
+ const signature = `0x${rClean}${sClean}`;
490
+ return {
491
+ signature,
492
+ webauthn: {
493
+ authenticatorData: rawResult.authenticatorData,
494
+ clientDataJSON: rawResult.clientDataJSON,
495
+ typeIndex: rawResult.typeIndex,
496
+ },
497
+ raw: {
498
+ id: self.credentialId,
499
+ response: {
500
+ authenticatorData: rawResult.authenticatorData,
501
+ clientDataJSON: rawResult.clientDataJSON,
502
+ signature,
503
+ },
504
+ },
505
+ };
506
+ }
507
+ catch (error) {
508
+ if (error instanceof SignatureError) {
509
+ throw new PasskeySignerError(`Signature parsing failed: ${error.message}`, error);
510
+ }
511
+ throw new PasskeySignerError(`Passkey signing failed: ${error instanceof Error ? error.message : "Unknown error"}`, error);
512
+ }
513
+ };
514
+ return {
515
+ id: this.credentialId,
516
+ publicKey: this.publicKey,
517
+ type: "webAuthn",
518
+ async sign({ hash }) {
519
+ return signWithHash(hash);
520
+ },
521
+ async signMessage({ message }) {
522
+ // For WebAuthn, the message is typically already a hash
523
+ // permissionless wraps the message hash before calling this
524
+ let hash;
525
+ if (typeof message === "string") {
526
+ // Hash the string message
527
+ hash = keccak256(new TextEncoder().encode(message));
528
+ }
529
+ else if ("raw" in message) {
530
+ if (typeof message.raw === "string") {
531
+ hash = message.raw;
532
+ }
533
+ else {
534
+ hash = `0x${Array.from(message.raw)
535
+ .map((b) => b.toString(16).padStart(2, "0"))
536
+ .join("")}`;
537
+ }
538
+ }
539
+ else {
540
+ throw new PasskeySignerError("Invalid message format");
541
+ }
542
+ return signWithHash(hash);
543
+ },
544
+ async signTypedData(typedData) {
545
+ // Hash the typed data
546
+ const hash = hashTypedData(typedData);
547
+ return signWithHash(hash);
548
+ },
549
+ };
550
+ }
431
551
  }
432
552
  /**
433
553
  * Type guard to check if a value is a valid PasskeyCredential.
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAKL,aAAa,EACb,SAAS,GACV,MAAM,MAAM,CAAC;AASd,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,oBAAoB,EACpB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAGzB;IAFlB,YACE,OAAe,EACC,KAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,wBAAwB;IACnC;;OAEG;IACa,IAAI,GAAG,OAAgB,CAAC;IAExC;;OAEG;IACa,MAAM,GAAG,sBAA+B,CAAC;IAEzD;;;;OAIG;IACa,OAAO,CAAU;IAEjC;;OAEG;IACa,YAAY,CAAS;IAErC;;OAEG;IACa,eAAe,CAAM;IAErC;;OAEG;IACa,oBAAoB,CAAgB;IAEpD;;OAEG;IACa,SAAS,CAAM;IAE/B;;OAEG;IACc,MAAM,CAAiC;IAExD;;;;;;OAMG;IACH,YACE,UAA6B,EAC7B,MAAsC;QAEtC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC;QAEzC,qDAAqD;QACrD,uDAAuD;QACvD,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAa,CAAC;QAEjD,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,MAAM;YACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAChC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,UAAU;YACvD,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,QAAQ;SACpD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,QAAgB,EAChB,MAAsC;QAEtC,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE3C,8BAA8B;QAC9B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEjD,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;gBAClC,SAAS,EAAE,YAAY;gBACvB,EAAE,EAAE;oBACF,EAAE,EAAE,MAAM,CAAC,IAAI;oBACf,IAAI,EAAE,MAAM,CAAC,MAAM;iBACpB;gBACD,IAAI,EAAE;oBACJ,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,QAAQ;iBACtB;gBACD,gBAAgB,EAAE;oBAChB;wBACE,IAAI,EAAE,YAAY;wBAClB,GAAG,EAAE,CAAC,CAAC,EAAE,6BAA6B;qBACvC;iBACF;gBACD,sBAAsB,EAAE;oBACtB,uBAAuB,EAAE,UAAU;oBACnC,WAAW,EAAE,UAAU;oBACvB,kBAAkB,EAAE,IAAI;oBACxB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,UAAU;iBACxD;gBACD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;gBAChC,WAAW,EAAE,MAAM;aACpB,CAAC,CAAC;YAEH,4BAA4B;YAC5B,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;YAErD,kDAAkD;YAClD,6DAA6D;YAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;gBACvC,MAAM,IAAI,kBAAkB,CAC1B,iDAAiD,CAClD,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,SAAS,EAAE,GAAG,+BAA+B,CACnD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAClC,CAAC;YAEF,0BAA0B;YAC1B,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,kBAAkB,CAC1B,+CAA+C,CAChD,CAAC;YACJ,CAAC;YAED,+CAA+C;YAC/C,MAAM,YAAY,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;YAE5D,MAAM,UAAU,GAAsB;gBACpC,YAAY;gBACZ,eAAe;gBACf,SAAS;gBACT,YAAY;aACb,CAAC;YAEF,OAAO,IAAI,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;gBACpC,MAAM,IAAI,kBAAkB,CAC1B,gCAAgC,KAAK,CAAC,OAAO,EAAE,EAC/C,KAAK,CACN,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,kBAAkB,CAC1B,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAC1F,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,cAAc,CAC1B,UAA6B,EAC7B,MAAsC;QAEtC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,kBAAkB,CAAC,kCAAkC,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,GAGR;QACC,2BAA2B;QAC3B,IAAI,YAAwB,CAAC;QAE7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,gDAAgD;YAChD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,iCAAiC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE3C,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtE,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAE3C,4BAA4B;YAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;YACjC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,8DAA8D;YAC9D,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACpC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAU,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;QACzD,CAAC;QAED,0CAA0C;QAC1C,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CAGxB,SAAwD;QACxD,2CAA2C;QAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEtC,sCAAsC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,eAAe;QAC1B,MAAM,IAAI,kBAAkB,CAC1B,+GAA+G,CAChH,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,UAAU;QACrB,sDAAsD;QACtD,qDAAqD;QACrD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,yBAAyB;QACzB,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAa,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,IAAW,IAAI;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,IAAW,IAAI;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAW,mBAAmB;QAC5B,iEAAiE;QACjE,OAAO,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,IAAW,mBAAmB;QAM5B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE;YAC1D,qEAAqE;YACrE,IAAI,cAAsB,CAAC;YAE3B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,kDAAkD;gBAClD,cAAc,GAAG,OAAO,CAAC;YAC3B,CAAC;iBAAM,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC/D,8BAA8B;gBAC9B,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;YAC/B,CAAC;iBAAM,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,YAAY,UAAU,EAAE,CAAC;gBACjE,qDAAqD;gBACrD,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;qBACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;qBAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,kBAAkB,CAAC,4BAA4B,CAAC,CAAC;YAC7D,CAAC;YAED,yDAAyD;YACzD,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC;gBACtD,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,cAAc,CAAC;YAEnB,8BAA8B;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,gBAAgB,EAAS,CAAC,CAAC;YAErE,sCAAsC;YACtC,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAEjD,oEAAoE;YACpE,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,oBAAoB;YACpC,YAAY,EAAE,IAAI,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,mBAAmB,CACxB,MAA+B;QAE/B,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;YACxD,GAAG,IAAI,CAAC,MAAM;YACd,eAAe,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,eAAe,CAC3B,SAAiB,EACjB,OAAgB;QAEhB,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,OAAO,GAAG,sBAAsB,CACpC,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CACpB,CAAC;YAEF,gCAAgC;YAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE1C,+BAA+B;YAC/B,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;gBAC/C,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,iBAAiB;gBACpD,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,cAAc;gBAC9C,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;aACrC,CAAC,CAAC;YAEH,0DAA0D;YAC1D,8EAA8E;YAC9E,MAAM,gBAAgB,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC;YACpE,OAAO,uBAAuB,CAC5B,iBAAiB,EACjB,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,gBAAgB,CACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;gBACpC,MAAM,IAAI,kBAAkB,CAC1B,6BAA6B,KAAK,CAAC,OAAO,EAAE,EAC5C,KAAK,CACN,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,kBAAkB,CAC1B,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EACrF,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,GAAQ;QACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,OAAO,CACL,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;QACpC,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ;QACvC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;QACpC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QACjC,GAAG,CAAC,SAAS,KAAK,IAAI;QACtB,OAAQ,GAAG,CAAC,SAAqC,CAAC,CAAC,KAAK,QAAQ;QAChE,OAAQ,GAAG,CAAC,SAAqC,CAAC,CAAC,KAAK,QAAQ;QAChE,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;QACpC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAA6B;IAE7B,OAAO;QACL,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAClC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAClC,YAAY,EAAE,UAAU,CAAC,YAAY;KACtC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA4B;IAE5B,IACE,CAAC,IAAI,CAAC,YAAY;QAClB,CAAC,IAAI,CAAC,eAAe;QACrB,CAAC,IAAI,CAAC,UAAU;QAChB,CAAC,IAAI,CAAC,UAAU;QAChB,CAAC,IAAI,CAAC,YAAY,EAClB,CAAC;QACD,MAAM,IAAI,kBAAkB,CAAC,oCAAoC,CAAC,CAAC;IACrE,CAAC;IAED,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,eAAe,EAAE,IAAI,CAAC,eAAsB;QAC5C,SAAS,EAAE;YACT,CAAC,EAAE,IAAI,CAAC,UAAiB;YACzB,CAAC,EAAE,IAAI,CAAC,UAAiB;SAC1B;QACD,YAAY,EAAE,IAAI,CAAC,YAAmB;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mentaproject/signer-react-native",
3
- "version": "0.0.17",
3
+ "version": "0.0.18",
4
4
  "description": "React Native Passkey signer for Menta wallet - implements SmartAccountSigner via WebAuthn",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/signer.ts CHANGED
@@ -557,6 +557,205 @@ export class ReactNativePasskeySigner {
557
557
  }
558
558
  return bytes;
559
559
  }
560
+
561
+ /**
562
+ * Internal method to sign a challenge and return raw WebAuthn components.
563
+ * This is used by toWebAuthnAccount() where the caller handles encoding.
564
+ *
565
+ * @param challenge - The Base64URL-encoded challenge
566
+ * @returns Raw WebAuthn signature components
567
+ */
568
+ private async signRaw(challenge: string): Promise<{
569
+ authenticatorData: Hex;
570
+ clientDataJSON: string;
571
+ r: Hex;
572
+ s: Hex;
573
+ typeIndex: number;
574
+ }> {
575
+ // Create assertion options
576
+ const options = createAssertionOptions(
577
+ challenge,
578
+ this.config.rpId,
579
+ this.credentialId,
580
+ this.config.userVerification,
581
+ this.config.timeout,
582
+ );
583
+
584
+ // Call native passkey assertion
585
+ const result = await Passkey.get(options);
586
+
587
+ // Parse the assertion response
588
+ const webAuthnSignature = parseWebAuthnAssertion({
589
+ authenticatorData: result.response.authenticatorData,
590
+ clientDataJSON: result.response.clientDataJSON,
591
+ signature: result.response.signature,
592
+ });
593
+
594
+ return {
595
+ authenticatorData: webAuthnSignature.authenticatorData,
596
+ clientDataJSON: webAuthnSignature.clientDataJSON,
597
+ r: webAuthnSignature.r,
598
+ s: webAuthnSignature.s,
599
+ typeIndex: webAuthnSignature.responseTypeLocation,
600
+ };
601
+ }
602
+
603
+ /**
604
+ * Creates a viem-compatible WebAuthnAccount.
605
+ *
606
+ * This returns an object compatible with viem's WebAuthnAccount interface,
607
+ * which can be used directly with permissionless's toKernelSmartAccount.
608
+ *
609
+ * @example
610
+ * ```typescript
611
+ * const webAuthnAccount = signer.toWebAuthnAccount();
612
+ *
613
+ * const kernel = await toKernelSmartAccount({
614
+ * owners: [webAuthnAccount],
615
+ * client: publicClient,
616
+ * version: "0.3.3",
617
+ * });
618
+ * ```
619
+ */
620
+ public toWebAuthnAccount(): {
621
+ id: string;
622
+ publicKey: Hex;
623
+ sign: (params: { hash: Hex }) => Promise<{
624
+ signature: Hex;
625
+ webauthn: {
626
+ authenticatorData: Hex;
627
+ clientDataJSON: string;
628
+ typeIndex: number;
629
+ };
630
+ raw: {
631
+ id: string;
632
+ response: {
633
+ authenticatorData: Hex;
634
+ clientDataJSON: string;
635
+ signature: Hex;
636
+ };
637
+ };
638
+ }>;
639
+ signMessage: (params: { message: SignableMessage }) => Promise<{
640
+ signature: Hex;
641
+ webauthn: {
642
+ authenticatorData: Hex;
643
+ clientDataJSON: string;
644
+ typeIndex: number;
645
+ };
646
+ raw: {
647
+ id: string;
648
+ response: {
649
+ authenticatorData: Hex;
650
+ clientDataJSON: string;
651
+ signature: Hex;
652
+ };
653
+ };
654
+ }>;
655
+ signTypedData: <T>(typedData: T) => Promise<{
656
+ signature: Hex;
657
+ webauthn: {
658
+ authenticatorData: Hex;
659
+ clientDataJSON: string;
660
+ typeIndex: number;
661
+ };
662
+ raw: {
663
+ id: string;
664
+ response: {
665
+ authenticatorData: Hex;
666
+ clientDataJSON: string;
667
+ signature: Hex;
668
+ };
669
+ };
670
+ }>;
671
+ type: "webAuthn";
672
+ } {
673
+ const self = this;
674
+
675
+ const signWithHash = async (hash: Hex) => {
676
+ // Convert hash to challenge (base64url encoded)
677
+ const messageBytes = self.hexToBytes(hash);
678
+ const challenge = bytesToBase64Url(messageBytes);
679
+
680
+ try {
681
+ const rawResult = await self.signRaw(challenge);
682
+
683
+ // Combine r and s into a single signature (64 bytes)
684
+ const rClean = rawResult.r.startsWith("0x")
685
+ ? rawResult.r.slice(2)
686
+ : rawResult.r;
687
+ const sClean = rawResult.s.startsWith("0x")
688
+ ? rawResult.s.slice(2)
689
+ : rawResult.s;
690
+ const signature = `0x${rClean}${sClean}` as Hex;
691
+
692
+ return {
693
+ signature,
694
+ webauthn: {
695
+ authenticatorData: rawResult.authenticatorData,
696
+ clientDataJSON: rawResult.clientDataJSON,
697
+ typeIndex: rawResult.typeIndex,
698
+ },
699
+ raw: {
700
+ id: self.credentialId,
701
+ response: {
702
+ authenticatorData: rawResult.authenticatorData,
703
+ clientDataJSON: rawResult.clientDataJSON,
704
+ signature,
705
+ },
706
+ },
707
+ };
708
+ } catch (error) {
709
+ if (error instanceof SignatureError) {
710
+ throw new PasskeySignerError(
711
+ `Signature parsing failed: ${error.message}`,
712
+ error,
713
+ );
714
+ }
715
+ throw new PasskeySignerError(
716
+ `Passkey signing failed: ${error instanceof Error ? error.message : "Unknown error"}`,
717
+ error,
718
+ );
719
+ }
720
+ };
721
+
722
+ return {
723
+ id: this.credentialId,
724
+ publicKey: this.publicKey,
725
+ type: "webAuthn" as const,
726
+
727
+ async sign({ hash }: { hash: Hex }) {
728
+ return signWithHash(hash);
729
+ },
730
+
731
+ async signMessage({ message }: { message: SignableMessage }) {
732
+ // For WebAuthn, the message is typically already a hash
733
+ // permissionless wraps the message hash before calling this
734
+ let hash: Hex;
735
+ if (typeof message === "string") {
736
+ // Hash the string message
737
+ hash = keccak256(new TextEncoder().encode(message));
738
+ } else if ("raw" in message) {
739
+ if (typeof message.raw === "string") {
740
+ hash = message.raw as Hex;
741
+ } else {
742
+ hash = `0x${Array.from(message.raw)
743
+ .map((b) => b.toString(16).padStart(2, "0"))
744
+ .join("")}` as Hex;
745
+ }
746
+ } else {
747
+ throw new PasskeySignerError("Invalid message format");
748
+ }
749
+ return signWithHash(hash);
750
+ },
751
+
752
+ async signTypedData(typedData) {
753
+ // Hash the typed data
754
+ const hash = hashTypedData(typedData as TypedDataDefinition);
755
+ return signWithHash(hash);
756
+ },
757
+ };
758
+ }
560
759
  }
561
760
 
562
761
  /**