@0xsequence/wallet-core 3.0.0-beta.9 → 3.0.1

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 (68) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/.turbo/turbo-lint.log +4 -0
  3. package/.turbo/turbo-test.log +290 -0
  4. package/.turbo/turbo-typecheck.log +4 -0
  5. package/CHANGELOG.md +158 -0
  6. package/dist/bundler/bundlers/pimlico.d.ts +3 -2
  7. package/dist/bundler/bundlers/pimlico.d.ts.map +1 -1
  8. package/dist/bundler/bundlers/pimlico.js +9 -3
  9. package/dist/env.d.ts +22 -0
  10. package/dist/env.d.ts.map +1 -0
  11. package/dist/env.js +42 -0
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1 -0
  15. package/dist/signers/index.d.ts +1 -1
  16. package/dist/signers/passkey.d.ts +11 -3
  17. package/dist/signers/passkey.d.ts.map +1 -1
  18. package/dist/signers/passkey.js +12 -6
  19. package/dist/signers/pk/encrypted.d.ts +13 -2
  20. package/dist/signers/pk/encrypted.d.ts.map +1 -1
  21. package/dist/signers/pk/encrypted.js +94 -15
  22. package/dist/signers/pk/index.d.ts +1 -1
  23. package/dist/signers/session/explicit.d.ts.map +1 -1
  24. package/dist/signers/session/explicit.js +5 -8
  25. package/dist/signers/session/implicit.d.ts.map +1 -1
  26. package/dist/signers/session/implicit.js +1 -1
  27. package/dist/signers/session/session.d.ts +1 -0
  28. package/dist/signers/session/session.d.ts.map +1 -1
  29. package/dist/signers/session/session.js +7 -0
  30. package/dist/signers/session-manager.d.ts +4 -0
  31. package/dist/signers/session-manager.d.ts.map +1 -1
  32. package/dist/signers/session-manager.js +65 -22
  33. package/dist/state/local/index.d.ts.map +1 -1
  34. package/dist/state/local/index.js +3 -2
  35. package/dist/state/local/indexed-db.d.ts +4 -1
  36. package/dist/state/local/indexed-db.d.ts.map +1 -1
  37. package/dist/state/local/indexed-db.js +12 -2
  38. package/dist/state/remote/dev-http.d.ts +2 -1
  39. package/dist/state/remote/dev-http.d.ts.map +1 -1
  40. package/dist/state/remote/dev-http.js +11 -5
  41. package/dist/state/sequence/index.d.ts +2 -1
  42. package/dist/state/sequence/index.d.ts.map +1 -1
  43. package/dist/state/sequence/index.js +14 -5
  44. package/dist/wallet.js +2 -2
  45. package/eslint.config.js +12 -0
  46. package/package.json +12 -10
  47. package/src/bundler/bundlers/pimlico.ts +10 -4
  48. package/src/env.ts +68 -0
  49. package/src/index.ts +1 -0
  50. package/src/signers/index.ts +1 -1
  51. package/src/signers/passkey.ts +21 -5
  52. package/src/signers/pk/encrypted.ts +103 -14
  53. package/src/signers/pk/index.ts +1 -1
  54. package/src/signers/session/explicit.ts +5 -20
  55. package/src/signers/session/implicit.ts +1 -2
  56. package/src/signers/session/session.ts +10 -2
  57. package/src/signers/session-manager.ts +82 -25
  58. package/src/state/local/index.ts +4 -2
  59. package/src/state/local/indexed-db.ts +15 -2
  60. package/src/state/remote/dev-http.ts +11 -5
  61. package/src/state/sequence/index.ts +15 -6
  62. package/src/wallet.ts +2 -2
  63. package/test/constants.ts +4 -0
  64. package/test/envelope.test.ts +0 -1
  65. package/test/session-manager.test.ts +345 -3
  66. package/test/signers-pk.test.ts +1 -1
  67. package/test/signers-session-implicit.test.ts +0 -2
  68. package/test/state/debug.test.ts +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state/local/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state/local/index.ts"],"names":[],"mappings":"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"}
@@ -83,7 +83,7 @@ export class Provider {
83
83
  return;
84
84
  }
85
85
  async getConfigurationUpdates(wallet, fromImageHash, options) {
86
- let fromConfig = await this.store.loadConfig(fromImageHash);
86
+ const fromConfig = await this.store.loadConfig(fromImageHash);
87
87
  if (!fromConfig) {
88
88
  return [];
89
89
  }
@@ -219,12 +219,13 @@ export class Provider {
219
219
  }
220
220
  if (Signature.isSignatureOfSapientSignerLeaf(topology.signature)) {
221
221
  switch (topology.signature.address.toLowerCase()) {
222
- case this.extensions.passkeys.toLowerCase():
222
+ case this.extensions.passkeys.toLowerCase(): {
223
223
  const decoded = Extensions.Passkeys.decode(Bytes.fromHex(topology.signature.data));
224
224
  if (!Extensions.Passkeys.isValidSignature(subdigest, decoded)) {
225
225
  throw new Error('Invalid passkey signature');
226
226
  }
227
227
  return this.store.saveSapientSignatureOfSubdigest(topology.signature.address, subdigest, Extensions.Passkeys.rootFor(decoded.publicKey), topology.signature);
228
+ }
228
229
  default:
229
230
  throw new Error(`Unsupported sapient signer: ${topology.signature.address}`);
230
231
  }
@@ -1,10 +1,13 @@
1
1
  import { Context, Payload, Signature, Config, GenericTree } from '@0xsequence/wallet-primitives';
2
2
  import { Address, Hex } from 'ox';
3
+ import type { CoreEnv } from '../../env.js';
3
4
  import { Store } from './index.js';
4
5
  export declare class IndexedDbStore implements Store {
6
+ private readonly env?;
5
7
  private _db;
6
8
  private dbName;
7
- constructor(dbName?: string);
9
+ constructor(dbName?: string, env?: CoreEnv | undefined);
10
+ private getIndexedDB;
8
11
  private openDB;
9
12
  private get;
10
13
  private put;
@@ -1 +1 @@
1
- {"version":3,"file":"indexed-db.d.ts","sourceRoot":"","sources":["../../../src/state/local/indexed-db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexed-db.d.ts","sourceRoot":"","sources":["../../../src/state/local/indexed-db.ts"],"names":[],"mappings":"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"}
@@ -8,16 +8,26 @@ const STORE_SAPIENT_SIGNER_SUBDIGESTS = 'sapientSignerSubdigests';
8
8
  const STORE_SAPIENT_SIGNATURES = 'sapientSignatures';
9
9
  const STORE_TREES = 'trees';
10
10
  export class IndexedDbStore {
11
+ env;
11
12
  _db = null;
12
13
  dbName;
13
- constructor(dbName = 'sequence-indexeddb') {
14
+ constructor(dbName = 'sequence-indexeddb', env) {
15
+ this.env = env;
14
16
  this.dbName = dbName;
15
17
  }
18
+ getIndexedDB() {
19
+ const globalObj = globalThis;
20
+ const indexedDb = this.env?.indexedDB ?? globalObj.indexedDB ?? globalObj.window?.indexedDB;
21
+ if (!indexedDb) {
22
+ throw new Error('indexedDB is not available');
23
+ }
24
+ return indexedDb;
25
+ }
16
26
  async openDB() {
17
27
  if (this._db)
18
28
  return this._db;
19
29
  return new Promise((resolve, reject) => {
20
- const request = indexedDB.open(this.dbName, DB_VERSION);
30
+ const request = this.getIndexedDB().open(this.dbName, DB_VERSION);
21
31
  request.onupgradeneeded = () => {
22
32
  const db = request.result;
23
33
  if (!db.objectStoreNames.contains(STORE_CONFIGS)) {
@@ -3,7 +3,8 @@ import { Config, Context, GenericTree, Payload, Signature } from '@0xsequence/wa
3
3
  import { Provider } from '../index.js';
4
4
  export declare class DevHttpProvider implements Provider {
5
5
  private readonly baseUrl;
6
- constructor(baseUrl: string);
6
+ private readonly fetcher;
7
+ constructor(baseUrl: string, fetcher?: typeof fetch);
7
8
  private request;
8
9
  getConfiguration(imageHash: Hex.Hex): Promise<Config.Config | undefined>;
9
10
  getDeploy(wallet: Address.Address): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"dev-http.d.ts","sourceRoot":"","sources":["../../../src/state/remote/dev-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-http.d.ts","sourceRoot":"","sources":["../../../src/state/remote/dev-http.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,15 @@
1
1
  import { Utils } from '@0xsequence/wallet-primitives';
2
2
  export class DevHttpProvider {
3
3
  baseUrl;
4
- constructor(baseUrl) {
4
+ fetcher;
5
+ constructor(baseUrl, fetcher) {
5
6
  // Remove trailing slash if present
6
7
  this.baseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;
8
+ const resolvedFetch = fetcher ?? globalThis.fetch;
9
+ if (!resolvedFetch) {
10
+ throw new Error('fetch is not available');
11
+ }
12
+ this.fetcher = resolvedFetch;
7
13
  }
8
14
  async request(method, path, body) {
9
15
  const url = `${this.baseUrl}${path}`;
@@ -17,7 +23,7 @@ export class DevHttpProvider {
17
23
  }
18
24
  let response;
19
25
  try {
20
- response = await fetch(url, options);
26
+ response = await this.fetcher(url, options);
21
27
  }
22
28
  catch (networkError) {
23
29
  // Handle immediate network errors (e.g., DNS resolution failure, refused connection)
@@ -32,13 +38,13 @@ export class DevHttpProvider {
32
38
  const errorJson = await Utils.fromJSON(errorText);
33
39
  errorPayload = { ...errorPayload, ...errorJson };
34
40
  }
35
- catch (e) {
41
+ catch {
36
42
  try {
37
43
  // If JSON parsing fails, try getting text for better error message
38
44
  const errorText = await response.text();
39
45
  errorPayload.body = errorText;
40
46
  }
41
- catch (textErr) {
47
+ catch {
42
48
  // Ignore if reading text also fails
43
49
  }
44
50
  }
@@ -91,7 +97,7 @@ export class DevHttpProvider {
91
97
  const text = await response.text(); // Try reading original response if not already done
92
98
  throw new Error(`Failed to parse JSON response from server. Status: ${response.status}. Body: "${text}". Original error: ${error instanceof Error ? error.message : String(error)}`);
93
99
  }
94
- catch (readError) {
100
+ catch {
95
101
  throw new Error(`Failed to parse JSON response from server and could not read response body as text. Status: ${response.status}. Original error: ${error instanceof Error ? error.message : String(error)}`);
96
102
  }
97
103
  }
@@ -1,9 +1,10 @@
1
1
  import { Config, Context, GenericTree, Payload, Signature } from '@0xsequence/wallet-primitives';
2
2
  import { Address, Hex } from 'ox';
3
3
  import { Provider as ProviderInterface } from '../index.js';
4
+ import { type Fetch } from './sessions.gen.js';
4
5
  export declare class Provider implements ProviderInterface {
5
6
  private readonly service;
6
- constructor(host?: string);
7
+ constructor(host?: string, fetcher?: Fetch);
7
8
  getConfiguration(imageHash: Hex.Hex): Promise<Config.Config | undefined>;
8
9
  getDeploy(wallet: Address.Address): Promise<{
9
10
  imageHash: Hex.Hex;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state/sequence/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state/sequence/index.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,12 @@ import { normalizeAddressKeys } from '../index.js';
4
4
  import { Sessions, SignatureType } from './sessions.gen.js';
5
5
  export class Provider {
6
6
  service;
7
- constructor(host = 'https://keymachine.sequence.app') {
8
- this.service = new Sessions(host, fetch);
7
+ constructor(host = 'https://keymachine.sequence.app', fetcher) {
8
+ const resolvedFetch = fetcher ?? globalThis.fetch;
9
+ if (!resolvedFetch) {
10
+ throw new Error('fetch is not available');
11
+ }
12
+ this.service = new Sessions(host, resolvedFetch);
9
13
  }
10
14
  async getConfiguration(imageHash) {
11
15
  const { version, config } = await this.service.config({ imageHash });
@@ -135,7 +139,9 @@ export class Provider {
135
139
  throw new Error(`unexpected compact sapient signature by ${signer}`);
136
140
  }
137
141
  }
138
- catch { }
142
+ catch {
143
+ // ignore
144
+ }
139
145
  }
140
146
  async getWitnessForSapient(wallet, signer, imageHash) {
141
147
  try {
@@ -162,7 +168,9 @@ export class Provider {
162
168
  };
163
169
  }
164
170
  }
165
- catch { }
171
+ catch {
172
+ // ignore
173
+ }
166
174
  }
167
175
  async getConfigurationUpdates(wallet, fromImageHash, options) {
168
176
  const { updates } = await this.service.configUpdates({ wallet, fromImageHash, allUpdates: options?.allUpdates });
@@ -280,7 +288,7 @@ const recoverSapientSignatureCompactFunction = AbiFunction.from(recoverSapientSi
280
288
  class PasskeySignatureValidator {
281
289
  request = (async (request) => {
282
290
  switch (request.method) {
283
- case 'eth_call':
291
+ case 'eth_call': {
284
292
  if (!request.params || !Array.isArray(request.params) || request.params.length === 0) {
285
293
  throw new Error('eth_call requires transaction parameters');
286
294
  }
@@ -299,6 +307,7 @@ class PasskeySignatureValidator {
299
307
  else {
300
308
  throw new Error(`invalid passkey signature ${signature} for digest ${digest}`);
301
309
  }
310
+ }
302
311
  default:
303
312
  throw new Error(`method ${request.method} not implemented`);
304
313
  }
package/dist/wallet.js CHANGED
@@ -253,7 +253,7 @@ export class Wallet {
253
253
  if (!status.context.capabilities?.erc4337?.entrypoint) {
254
254
  throw new Error('4337 is not enabled in this wallet');
255
255
  }
256
- const noncePromise = this.get4337Nonce(provider, status.context.capabilities?.erc4337?.entrypoint, space);
256
+ const noncePromise = this.get4337Nonce(provider, status.context.capabilities.erc4337.entrypoint, space);
257
257
  // If the wallet is not deployed, then we need to include the initCode on
258
258
  // the 4337 transaction
259
259
  let factory;
@@ -425,7 +425,7 @@ export class Wallet {
425
425
  encodedMessage = TypedData.encode(message);
426
426
  }
427
427
  else {
428
- let hexMessage = Hex.validate(message) ? message : Hex.fromString(message);
428
+ const hexMessage = Hex.validate(message) ? message : Hex.fromString(message);
429
429
  const messageSize = Hex.size(hexMessage);
430
430
  encodedMessage = Hex.concat(Hex.fromString(`${`\x19Ethereum Signed Message:\n${messageSize}`}`), hexMessage);
431
431
  }
@@ -0,0 +1,12 @@
1
+ import { config as baseConfig } from '@repo/eslint-config/base'
2
+
3
+ /** @type {import("eslint").Linter.Config} */
4
+ export default [
5
+ ...baseConfig,
6
+ {
7
+ // files: ['**/*.{test,spec}.ts'],
8
+ rules: {
9
+ '@typescript-eslint/no-explicit-any': 'off',
10
+ },
11
+ },
12
+ ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xsequence/wallet-core",
3
- "version": "3.0.0-beta.9",
3
+ "version": "3.0.1",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -14,21 +14,22 @@
14
14
  }
15
15
  },
16
16
  "devDependencies": {
17
- "@types/node": "^25.0.2",
18
- "@vitest/coverage-v8": "^4.0.15",
19
- "dotenv": "^17.2.3",
17
+ "@types/node": "^25.3.0",
18
+ "@vitest/coverage-v8": "^4.0.18",
19
+ "dotenv": "^17.3.1",
20
20
  "fake-indexeddb": "^6.2.5",
21
21
  "typescript": "^5.9.3",
22
- "vitest": "^4.0.15",
23
- "@repo/typescript-config": "^0.0.1-beta.1"
22
+ "vitest": "^4.0.18",
23
+ "@repo/eslint-config": "^0.0.1",
24
+ "@repo/typescript-config": "^0.0.1"
24
25
  },
25
26
  "dependencies": {
26
27
  "mipd": "^0.0.7",
27
28
  "ox": "^0.9.17",
28
29
  "viem": "^2.40.3",
29
- "@0xsequence/wallet-primitives": "^3.0.0-beta.9",
30
- "@0xsequence/guard": "^3.0.0-beta.9",
31
- "@0xsequence/relayer": "^3.0.0-beta.9"
30
+ "@0xsequence/relayer": "^3.0.1",
31
+ "@0xsequence/wallet-primitives": "^3.0.1",
32
+ "@0xsequence/guard": "^3.0.1"
32
33
  },
33
34
  "scripts": {
34
35
  "build": "tsc",
@@ -36,6 +37,7 @@
36
37
  "test": "vitest run",
37
38
  "test:coverage": "vitest run --coverage",
38
39
  "typecheck": "tsc --noEmit",
39
- "clean": "rimraf dist"
40
+ "clean": "rimraf dist",
41
+ "lint": "eslint . --max-warnings 0"
40
42
  }
41
43
  }
@@ -16,16 +16,22 @@ type PimlicoGasPrice = {
16
16
  }
17
17
 
18
18
  export class PimlicoBundler implements Bundler {
19
- public readonly kind: 'bundler' = 'bundler'
19
+ public readonly kind = 'bundler'
20
20
  public readonly id: string
21
21
 
22
22
  public readonly provider: Provider.Provider
23
23
  public readonly bundlerRpcUrl: string
24
+ private readonly fetcher: typeof fetch
24
25
 
25
- constructor(bundlerRpcUrl: string, provider: Provider.Provider | string) {
26
+ constructor(bundlerRpcUrl: string, provider: Provider.Provider | string, fetcher?: typeof fetch) {
26
27
  this.id = `pimlico-erc4337-${bundlerRpcUrl}`
27
28
  this.provider = typeof provider === 'string' ? Provider.from(RpcTransport.fromHttp(provider)) : provider
28
29
  this.bundlerRpcUrl = bundlerRpcUrl
30
+ const resolvedFetch = fetcher ?? (globalThis as any).fetch
31
+ if (!resolvedFetch) {
32
+ throw new Error('fetch is not available')
33
+ }
34
+ this.fetcher = resolvedFetch
29
35
  }
30
36
 
31
37
  async isAvailable(entrypoint: Address.Address, chainId: number): Promise<boolean> {
@@ -113,7 +119,7 @@ export class PimlicoBundler implements Bundler {
113
119
  let pimlico: PimlicoStatusResp | undefined
114
120
  try {
115
121
  pimlico = await this.bundlerRpc<PimlicoStatusResp>('pimlico_getUserOperationStatus', [opHash])
116
- } catch (_) {
122
+ } catch {
117
123
  /* ignore - not Pimlico or endpoint down */
118
124
  }
119
125
 
@@ -165,7 +171,7 @@ export class PimlicoBundler implements Bundler {
165
171
 
166
172
  private async bundlerRpc<T>(method: string, params: any[]): Promise<T> {
167
173
  const body = JSON.stringify({ jsonrpc: '2.0', id: 1, method, params })
168
- const res = await fetch(this.bundlerRpcUrl, {
174
+ const res = await this.fetcher(this.bundlerRpcUrl, {
169
175
  method: 'POST',
170
176
  headers: { 'content-type': 'application/json' },
171
177
  body,
package/src/env.ts ADDED
@@ -0,0 +1,68 @@
1
+ export type StorageLike = {
2
+ getItem: (key: string) => string | null
3
+ setItem: (key: string, value: string) => void
4
+ removeItem: (key: string) => void
5
+ }
6
+
7
+ export type CryptoLike = {
8
+ subtle: SubtleCrypto
9
+ getRandomValues: <T extends ArrayBufferView>(array: T) => T
10
+ }
11
+
12
+ export type TextEncodingLike = {
13
+ TextEncoder: typeof TextEncoder
14
+ TextDecoder: typeof TextDecoder
15
+ }
16
+
17
+ export type CoreEnv = {
18
+ fetch?: typeof fetch
19
+ crypto?: CryptoLike
20
+ storage?: StorageLike
21
+ indexedDB?: IDBFactory
22
+ text?: Partial<TextEncodingLike>
23
+ }
24
+
25
+ function isStorageLike(value: unknown): value is StorageLike {
26
+ if (!value || typeof value !== 'object') return false
27
+ const candidate = value as StorageLike
28
+ return (
29
+ typeof candidate.getItem === 'function' &&
30
+ typeof candidate.setItem === 'function' &&
31
+ typeof candidate.removeItem === 'function'
32
+ )
33
+ }
34
+
35
+ export function resolveCoreEnv(env?: CoreEnv): CoreEnv {
36
+ const globalObj = globalThis as any
37
+ const windowObj = typeof window !== 'undefined' ? window : (globalObj.window ?? {})
38
+ let storage: StorageLike | undefined
39
+ let text: Partial<TextEncodingLike> | undefined
40
+
41
+ if (isStorageLike(env?.storage)) {
42
+ storage = env.storage
43
+ } else if (isStorageLike(windowObj.localStorage)) {
44
+ storage = windowObj.localStorage
45
+ } else if (isStorageLike(globalObj.localStorage)) {
46
+ storage = globalObj.localStorage
47
+ }
48
+
49
+ if (env?.text) {
50
+ if (!env.text.TextEncoder || !env.text.TextDecoder) {
51
+ throw new Error('env.text must provide both TextEncoder and TextDecoder')
52
+ }
53
+ text = env.text
54
+ } else {
55
+ text = {
56
+ TextEncoder: windowObj.TextEncoder ?? globalObj.TextEncoder,
57
+ TextDecoder: windowObj.TextDecoder ?? globalObj.TextDecoder,
58
+ }
59
+ }
60
+
61
+ return {
62
+ fetch: env?.fetch ?? windowObj.fetch ?? globalObj.fetch,
63
+ crypto: env?.crypto ?? windowObj.crypto ?? globalObj.crypto,
64
+ storage,
65
+ indexedDB: env?.indexedDB ?? windowObj.indexedDB ?? globalObj.indexedDB,
66
+ text,
67
+ }
68
+ }
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@ export * as State from './state/index.js'
5
5
  export * as Bundler from './bundler/index.js'
6
6
  export * as Envelope from './envelope.js'
7
7
  export * as Utils from './utils/index.js'
8
+ export * from './env.js'
8
9
  export {
9
10
  type ExplicitSessionConfig,
10
11
  type ExplicitSession,
@@ -31,7 +31,7 @@ export interface SapientSigner {
31
31
  }
32
32
 
33
33
  export interface Witnessable {
34
- witness: (stateWriter: State.Writer, wallet: Address.Address, extra?: Object) => Promise<void>
34
+ witness: (stateWriter: State.Writer, wallet: Address.Address, extra?: object) => Promise<void>
35
35
  }
36
36
 
37
37
  type MaybePromise<T> = T | Promise<T>
@@ -5,12 +5,15 @@ import { WebAuthnP256 } from 'ox'
5
5
  import { State } from '../index.js'
6
6
  import { SapientSigner, Witnessable } from './index.js'
7
7
 
8
+ export type WebAuthnLike = Pick<typeof WebAuthnP256, 'createCredential' | 'sign'>
9
+
8
10
  export type PasskeyOptions = {
9
11
  extensions: Pick<Extensions.Extensions, 'passkeys'>
10
12
  publicKey: Extensions.Passkeys.PublicKey
11
13
  credentialId: string
12
14
  embedMetadata?: boolean
13
15
  metadata?: Extensions.Passkeys.PasskeyMetadata
16
+ webauthn?: WebAuthnLike
14
17
  }
15
18
 
16
19
  export type CreatePasskeyOptions = {
@@ -18,6 +21,11 @@ export type CreatePasskeyOptions = {
18
21
  requireUserVerification?: boolean
19
22
  credentialName?: string
20
23
  embedMetadata?: boolean
24
+ webauthn?: WebAuthnLike
25
+ }
26
+
27
+ export type FindPasskeyOptions = {
28
+ webauthn?: WebAuthnLike
21
29
  }
22
30
 
23
31
  export type WitnessMessage = {
@@ -45,6 +53,7 @@ export class Passkey implements SapientSigner, Witnessable {
45
53
  public readonly imageHash: Hex.Hex
46
54
  public readonly embedMetadata: boolean
47
55
  public readonly metadata?: Extensions.Passkeys.PasskeyMetadata
56
+ private readonly webauthn: WebAuthnLike
48
57
 
49
58
  constructor(options: PasskeyOptions) {
50
59
  this.address = options.extensions.passkeys
@@ -53,6 +62,7 @@ export class Passkey implements SapientSigner, Witnessable {
53
62
  this.embedMetadata = options.embedMetadata ?? false
54
63
  this.imageHash = Extensions.Passkeys.rootFor(options.publicKey)
55
64
  this.metadata = options.metadata
65
+ this.webauthn = options.webauthn ?? WebAuthnP256
56
66
  }
57
67
 
58
68
  static async loadFromWitness(
@@ -60,6 +70,7 @@ export class Passkey implements SapientSigner, Witnessable {
60
70
  extensions: Pick<Extensions.Extensions, 'passkeys'>,
61
71
  wallet: Address.Address,
62
72
  imageHash: Hex.Hex,
73
+ options?: FindPasskeyOptions,
63
74
  ) {
64
75
  // In the witness we will find the public key, and may find the credential id
65
76
  const witness = await stateReader.getWitnessForSapient(wallet, extensions.passkeys, imageHash)
@@ -90,13 +101,15 @@ export class Passkey implements SapientSigner, Witnessable {
90
101
  publicKey: message.publicKey,
91
102
  embedMetadata: decodedSignature.embedMetadata,
92
103
  metadata,
104
+ webauthn: options?.webauthn,
93
105
  })
94
106
  }
95
107
 
96
108
  static async create(extensions: Pick<Extensions.Extensions, 'passkeys'>, options?: CreatePasskeyOptions) {
109
+ const webauthn = options?.webauthn ?? WebAuthnP256
97
110
  const name = options?.credentialName ?? `Sequence (${Date.now()})`
98
111
 
99
- const credential = await WebAuthnP256.createCredential({
112
+ const credential = await webauthn.createCredential({
100
113
  user: {
101
114
  name,
102
115
  },
@@ -120,6 +133,7 @@ export class Passkey implements SapientSigner, Witnessable {
120
133
  },
121
134
  embedMetadata: options?.embedMetadata,
122
135
  metadata,
136
+ webauthn,
123
137
  })
124
138
 
125
139
  if (options?.stateProvider) {
@@ -132,8 +146,10 @@ export class Passkey implements SapientSigner, Witnessable {
132
146
  static async find(
133
147
  stateReader: State.Reader,
134
148
  extensions: Pick<Extensions.Extensions, 'passkeys'>,
149
+ options?: FindPasskeyOptions,
135
150
  ): Promise<Passkey | undefined> {
136
- const response = await WebAuthnP256.sign({ challenge: Hex.random(32) })
151
+ const webauthn = options?.webauthn ?? WebAuthnP256
152
+ const response = await webauthn.sign({ challenge: Hex.random(32) })
137
153
  if (!response.raw) throw new Error('No credential returned')
138
154
 
139
155
  const authenticatorDataBytes = Bytes.fromHex(response.metadata.authenticatorData)
@@ -218,7 +234,7 @@ export class Passkey implements SapientSigner, Witnessable {
218
234
  console.warn('Multiple signers found for passkey', flattened)
219
235
  }
220
236
 
221
- return Passkey.loadFromWitness(stateReader, extensions, flattened[0]!.wallet, flattened[0]!.imageHash)
237
+ return Passkey.loadFromWitness(stateReader, extensions, flattened[0]!.wallet, flattened[0]!.imageHash, options)
222
238
  }
223
239
 
224
240
  async signSapient(
@@ -234,7 +250,7 @@ export class Passkey implements SapientSigner, Witnessable {
234
250
 
235
251
  const challenge = Hex.fromBytes(Payload.hash(wallet, chainId, payload))
236
252
 
237
- const response = await WebAuthnP256.sign({
253
+ const response = await this.webauthn.sign({
238
254
  challenge,
239
255
  credentialId: this.credentialId,
240
256
  userVerification: this.publicKey.requireUserVerification ? 'required' : 'discouraged',
@@ -260,7 +276,7 @@ export class Passkey implements SapientSigner, Witnessable {
260
276
  }
261
277
  }
262
278
 
263
- async witness(stateWriter: State.Writer, wallet: Address.Address, extra?: Object): Promise<void> {
279
+ async witness(stateWriter: State.Writer, wallet: Address.Address, extra?: object): Promise<void> {
264
280
  const payload = Payload.fromMessage(
265
281
  Hex.fromString(
266
282
  JSON.stringify({