@0xsequence/wallet-core 3.0.0-beta.8 → 3.0.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 (58) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/.turbo/turbo-lint.log +4 -0
  3. package/.turbo/turbo-typecheck.log +4 -0
  4. package/CHANGELOG.md +158 -0
  5. package/dist/bundler/bundlers/pimlico.d.ts +3 -2
  6. package/dist/bundler/bundlers/pimlico.d.ts.map +1 -1
  7. package/dist/bundler/bundlers/pimlico.js +9 -3
  8. package/dist/env.d.ts +22 -0
  9. package/dist/env.d.ts.map +1 -0
  10. package/dist/env.js +42 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -0
  14. package/dist/signers/index.d.ts +1 -1
  15. package/dist/signers/passkey.d.ts +11 -3
  16. package/dist/signers/passkey.d.ts.map +1 -1
  17. package/dist/signers/passkey.js +12 -6
  18. package/dist/signers/pk/encrypted.d.ts +13 -2
  19. package/dist/signers/pk/encrypted.d.ts.map +1 -1
  20. package/dist/signers/pk/encrypted.js +94 -15
  21. package/dist/signers/pk/index.d.ts +1 -1
  22. package/dist/signers/session/explicit.d.ts.map +1 -1
  23. package/dist/signers/session/explicit.js +2 -2
  24. package/dist/signers/session/implicit.d.ts.map +1 -1
  25. package/dist/signers/session/implicit.js +1 -1
  26. package/dist/state/local/index.d.ts.map +1 -1
  27. package/dist/state/local/index.js +3 -2
  28. package/dist/state/local/indexed-db.d.ts +4 -1
  29. package/dist/state/local/indexed-db.d.ts.map +1 -1
  30. package/dist/state/local/indexed-db.js +12 -2
  31. package/dist/state/remote/dev-http.d.ts +2 -1
  32. package/dist/state/remote/dev-http.d.ts.map +1 -1
  33. package/dist/state/remote/dev-http.js +11 -5
  34. package/dist/state/sequence/index.d.ts +2 -1
  35. package/dist/state/sequence/index.d.ts.map +1 -1
  36. package/dist/state/sequence/index.js +14 -5
  37. package/dist/wallet.js +2 -2
  38. package/eslint.config.js +12 -0
  39. package/package.json +12 -10
  40. package/src/bundler/bundlers/pimlico.ts +10 -4
  41. package/src/env.ts +68 -0
  42. package/src/index.ts +1 -0
  43. package/src/signers/index.ts +1 -1
  44. package/src/signers/passkey.ts +21 -5
  45. package/src/signers/pk/encrypted.ts +103 -14
  46. package/src/signers/pk/index.ts +1 -1
  47. package/src/signers/session/explicit.ts +2 -9
  48. package/src/signers/session/implicit.ts +1 -2
  49. package/src/state/local/index.ts +4 -2
  50. package/src/state/local/indexed-db.ts +15 -2
  51. package/src/state/remote/dev-http.ts +11 -5
  52. package/src/state/sequence/index.ts +15 -6
  53. package/src/wallet.ts +2 -2
  54. package/test/constants.ts +2 -0
  55. package/test/envelope.test.ts +0 -1
  56. package/test/signers-pk.test.ts +1 -1
  57. package/test/signers-session-implicit.test.ts +0 -2
  58. package/test/state/debug.test.ts +2 -3
@@ -1,19 +1,67 @@
1
1
  import { Hex, Address, Secp256k1 } from 'ox';
2
+ import { resolveCoreEnv } from '../../env.js';
2
3
  export class EncryptedPksDb {
3
4
  localStorageKeyPrefix;
5
+ env;
4
6
  tableName;
5
7
  dbName = 'pk-db';
6
8
  dbVersion = 1;
7
- constructor(localStorageKeyPrefix = 'e_pk_key_', tableName = 'e_pk') {
9
+ constructor(localStorageKeyPrefix = 'e_pk_key_', tableName = 'e_pk', env) {
8
10
  this.localStorageKeyPrefix = localStorageKeyPrefix;
11
+ this.env = env;
9
12
  this.tableName = tableName;
10
13
  }
11
14
  computeDbKey(address) {
12
15
  return `pk_${address.toLowerCase()}`;
13
16
  }
17
+ getIndexedDB() {
18
+ const globalObj = globalThis;
19
+ const indexedDb = this.env?.indexedDB ?? globalObj.indexedDB ?? globalObj.window?.indexedDB;
20
+ if (!indexedDb) {
21
+ throw new Error('indexedDB is not available');
22
+ }
23
+ return indexedDb;
24
+ }
25
+ getStorage() {
26
+ const storage = resolveCoreEnv(this.env).storage;
27
+ if (!storage) {
28
+ throw new Error('storage is not available');
29
+ }
30
+ return storage;
31
+ }
32
+ getCrypto() {
33
+ const globalObj = globalThis;
34
+ const crypto = this.env?.crypto ?? globalObj.crypto ?? globalObj.window?.crypto;
35
+ if (!crypto?.subtle || !crypto?.getRandomValues) {
36
+ throw new Error('crypto.subtle is not available');
37
+ }
38
+ return crypto;
39
+ }
40
+ getTextEncoderCtor() {
41
+ const globalObj = globalThis;
42
+ if (this.env?.text && (!this.env.text.TextEncoder || !this.env.text.TextDecoder)) {
43
+ throw new Error('env.text must provide both TextEncoder and TextDecoder');
44
+ }
45
+ const encoderCtor = this.env?.text?.TextEncoder ?? globalObj.TextEncoder ?? globalObj.window?.TextEncoder;
46
+ if (!encoderCtor) {
47
+ throw new Error('TextEncoder is not available');
48
+ }
49
+ return encoderCtor;
50
+ }
51
+ getTextDecoderCtor() {
52
+ const globalObj = globalThis;
53
+ if (this.env?.text && (!this.env.text.TextEncoder || !this.env.text.TextDecoder)) {
54
+ throw new Error('env.text must provide both TextEncoder and TextDecoder');
55
+ }
56
+ const decoderCtor = this.env?.text?.TextDecoder ?? globalObj.TextDecoder ?? globalObj.window?.TextDecoder;
57
+ if (!decoderCtor) {
58
+ throw new Error('TextDecoder is not available');
59
+ }
60
+ return decoderCtor;
61
+ }
14
62
  openDB() {
15
63
  return new Promise((resolve, reject) => {
16
- const request = indexedDB.open(this.dbName, this.dbVersion);
64
+ const request = this.getIndexedDB().open(this.dbName, this.dbVersion);
17
65
  request.onupgradeneeded = () => {
18
66
  const db = request.result;
19
67
  if (!db.objectStoreNames.contains(this.tableName)) {
@@ -55,7 +103,10 @@ export class EncryptedPksDb {
55
103
  });
56
104
  }
57
105
  async generateAndStore() {
58
- const encryptionKey = await window.crypto.subtle.generateKey({ name: 'AES-GCM', length: 256 }, true, [
106
+ const crypto = this.getCrypto();
107
+ const storage = this.getStorage();
108
+ const TextEncoderCtor = this.getTextEncoderCtor();
109
+ const encryptionKey = await crypto.subtle.generateKey({ name: 'AES-GCM', length: 256 }, true, [
59
110
  'encrypt',
60
111
  'decrypt',
61
112
  ]);
@@ -63,12 +114,12 @@ export class EncryptedPksDb {
63
114
  const publicKey = Secp256k1.getPublicKey({ privateKey });
64
115
  const address = Address.fromPublicKey(publicKey);
65
116
  const keyPointer = this.localStorageKeyPrefix + address;
66
- const exportedKey = await window.crypto.subtle.exportKey('jwk', encryptionKey);
67
- window.localStorage.setItem(keyPointer, JSON.stringify(exportedKey));
68
- const encoder = new TextEncoder();
117
+ const exportedKey = await crypto.subtle.exportKey('jwk', encryptionKey);
118
+ storage.setItem(keyPointer, JSON.stringify(exportedKey));
119
+ const encoder = new TextEncoderCtor();
69
120
  const encodedPk = encoder.encode(privateKey);
70
- const iv = window.crypto.getRandomValues(new Uint8Array(12));
71
- const encryptedBuffer = await window.crypto.subtle.encrypt({ name: 'AES-GCM', iv }, encryptionKey, encodedPk);
121
+ const iv = crypto.getRandomValues(new Uint8Array(12));
122
+ const encryptedBuffer = await crypto.subtle.encrypt({ name: 'AES-GCM', iv }, encryptionKey, encodedPk);
72
123
  const encrypted = {
73
124
  iv,
74
125
  data: encryptedBuffer,
@@ -88,7 +139,7 @@ export class EncryptedPksDb {
88
139
  const entry = await this.getEncryptedEntry(address);
89
140
  if (!entry)
90
141
  return;
91
- return new EncryptedPkStore(entry);
142
+ return new EncryptedPkStore(entry, this.env);
92
143
  }
93
144
  async listAddresses() {
94
145
  const allEntries = await this.getAllData();
@@ -98,13 +149,38 @@ export class EncryptedPksDb {
98
149
  const dbKey = this.computeDbKey(address);
99
150
  await this.putData(dbKey, undefined);
100
151
  const keyPointer = this.localStorageKeyPrefix + address;
101
- window.localStorage.removeItem(keyPointer);
152
+ this.getStorage().removeItem(keyPointer);
102
153
  }
103
154
  }
104
155
  export class EncryptedPkStore {
105
156
  encrypted;
106
- constructor(encrypted) {
157
+ env;
158
+ constructor(encrypted, env) {
107
159
  this.encrypted = encrypted;
160
+ this.env = env;
161
+ }
162
+ getStorage() {
163
+ const storage = resolveCoreEnv(this.env).storage;
164
+ if (!storage) {
165
+ throw new Error('storage is not available');
166
+ }
167
+ return storage;
168
+ }
169
+ getCrypto() {
170
+ const globalObj = globalThis;
171
+ const crypto = this.env?.crypto ?? globalObj.crypto ?? globalObj.window?.crypto;
172
+ if (!crypto?.subtle) {
173
+ throw new Error('crypto.subtle is not available');
174
+ }
175
+ return crypto;
176
+ }
177
+ getTextDecoderCtor() {
178
+ const globalObj = globalThis;
179
+ const decoderCtor = this.env?.text?.TextDecoder ?? globalObj.TextDecoder ?? globalObj.window?.TextDecoder;
180
+ if (!decoderCtor) {
181
+ throw new Error('TextDecoder is not available');
182
+ }
183
+ return decoderCtor;
108
184
  }
109
185
  address() {
110
186
  return this.encrypted.address;
@@ -113,13 +189,16 @@ export class EncryptedPkStore {
113
189
  return this.encrypted.publicKey;
114
190
  }
115
191
  async signDigest(digest) {
116
- const keyJson = window.localStorage.getItem(this.encrypted.keyPointer);
192
+ const storage = this.getStorage();
193
+ const crypto = this.getCrypto();
194
+ const TextDecoderCtor = this.getTextDecoderCtor();
195
+ const keyJson = storage.getItem(this.encrypted.keyPointer);
117
196
  if (!keyJson)
118
197
  throw new Error('Encryption key not found in localStorage');
119
198
  const jwk = JSON.parse(keyJson);
120
- const encryptionKey = await window.crypto.subtle.importKey('jwk', jwk, { name: 'AES-GCM' }, false, ['decrypt']);
121
- const decryptedBuffer = await window.crypto.subtle.decrypt({ name: 'AES-GCM', iv: this.encrypted.iv }, encryptionKey, this.encrypted.data);
122
- const decoder = new TextDecoder();
199
+ const encryptionKey = await crypto.subtle.importKey('jwk', jwk, { name: 'AES-GCM' }, false, ['decrypt']);
200
+ const decryptedBuffer = await crypto.subtle.decrypt({ name: 'AES-GCM', iv: this.encrypted.iv }, encryptionKey, this.encrypted.data);
201
+ const decoder = new TextDecoderCtor();
123
202
  const privateKey = decoder.decode(decryptedBuffer);
124
203
  return Secp256k1.sign({ payload: digest, privateKey });
125
204
  }
@@ -29,7 +29,7 @@ export declare class Pk implements SignerInterface, Witnessable {
29
29
  constructor(privateKey: Hex.Hex | PkStore);
30
30
  sign(wallet: Address.Address, chainId: number, payload: PayloadTypes.Parented): Promise<SignatureTypes.SignatureOfSignerLeaf>;
31
31
  signDigest(digest: Bytes.Bytes): Promise<SignatureTypes.SignatureOfSignerLeaf>;
32
- witness(stateWriter: State.Writer, wallet: Address.Address, extra?: Object): Promise<void>;
32
+ witness(stateWriter: State.Writer, wallet: Address.Address, extra?: object): Promise<void>;
33
33
  }
34
34
  export * as Encrypted from './encrypted.js';
35
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"explicit.d.ts","sourceRoot":"","sources":["../../../src/signers/session/explicit.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EACP,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAA8B,OAAO,EAAe,GAAG,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AACpF,OAAO,EAAiB,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEvF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;AAI1E,qBAAa,QAAS,YAAW,qBAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,SAAgB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxC,SAAgB,kBAAkB,EAAE,UAAU,CAAC,kBAAkB,CAAA;gBAErD,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,EAAE,kBAAkB,EAAE,cAAc;IAS7E,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,qBAAqB;IA+C1F,uBAAuB,CAC3B,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;IAmC7C,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,iBAAiB;IAYnB,kBAAkB,CACtB,UAAU,EAAE,UAAU,CAAC,UAAU,EACjC,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,OAAO,CAAC;IAsDb,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,OAAO,CAAC;IAiBb,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,KAAK,EACtB,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;YAiCnC,qBAAqB;IAwB7B,iBAAiB,CACrB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EACrB,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAC1B,OAAO,CAAC,UAAU,EAAE,CAAC;CA8EzB"}
1
+ {"version":3,"file":"explicit.d.ts","sourceRoot":"","sources":["../../../src/signers/session/explicit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAC/G,OAAO,EAA8B,OAAO,EAAe,GAAG,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AACpF,OAAO,EAAiB,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEvF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;AAI1E,qBAAa,QAAS,YAAW,qBAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,SAAgB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxC,SAAgB,kBAAkB,EAAE,UAAU,CAAC,kBAAkB,CAAA;gBAErD,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,EAAE,kBAAkB,EAAE,cAAc;IAS7E,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,qBAAqB;IA+C1F,uBAAuB,CAC3B,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;IAmC7C,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,iBAAiB;IAYnB,kBAAkB,CACtB,UAAU,EAAE,UAAU,CAAC,UAAU,EACjC,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,OAAO,CAAC;IAsDb,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,OAAO,CAAC;IAiBb,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,KAAK,EACtB,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;YAiCnC,qBAAqB;IAwB7B,iBAAiB,CACrB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EACrB,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAC1B,OAAO,CAAC,UAAU,EAAE,CAAC;CA8EzB"}
@@ -1,4 +1,4 @@
1
- import { Constants, Permission, SessionConfig, SessionSignature, } from '@0xsequence/wallet-primitives';
1
+ import { Constants, Permission, SessionConfig, SessionSignature } from '@0xsequence/wallet-primitives';
2
2
  import { AbiFunction, AbiParameters, Address, Bytes, Hash, Hex } from 'ox';
3
3
  import { MemoryPkStore } from '../pk/index.js';
4
4
  const VALUE_TRACKING_ADDRESS = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
@@ -220,7 +220,7 @@ export class Explicit {
220
220
  }
221
221
  // Extract the masked value
222
222
  const callDataValue = Bytes.padRight(Bytes.fromHex(call.data).slice(Number(rule.offset), Number(rule.offset) + 32), 32);
223
- let value = callDataValue.map((b, i) => b & rule.mask[i]);
223
+ const value = callDataValue.map((b, i) => b & rule.mask[i]);
224
224
  if (Bytes.toBigInt(value) === 0n)
225
225
  continue;
226
226
  // Add to list
@@ -1 +1 @@
1
- {"version":3,"file":"implicit.d.ts","sourceRoot":"","sources":["../../../src/signers/session/implicit.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,OAAO,EACP,SAAS,IAAI,iBAAiB,EAC9B,aAAa,EACb,gBAAgB,EACjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAe,OAAO,EAAS,GAAG,EAAE,QAAQ,EAAwB,MAAM,IAAI,CAAA;AACrF,OAAO,EAAiB,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAE3E,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;AAE/E,qBAAa,QAAS,YAAW,qBAAqB;IAOlD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IARlC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuB;IAC1D,SAAgB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;gBAGtC,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,EACZ,YAAY,EAAE,WAAW,CAAC,WAAW,EACtD,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EACjC,eAAe,EAAE,OAAO,CAAC,OAAO;IAcnD,IAAI,cAAc,IAAI,OAAO,CAAC,OAAO,CAKpC;IAED,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,qBAAqB;IAa3F,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,sBAAsB,EAAE,OAAO,CAAC,OAAO,EACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,OAAO,CAAC;IAyCb,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,KAAK,EACtB,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;CAclD"}
1
+ {"version":3,"file":"implicit.d.ts","sourceRoot":"","sources":["../../../src/signers/session/implicit.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,SAAS,IAAI,iBAAiB,EAC9B,aAAa,EACb,gBAAgB,EACjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAe,OAAO,EAAS,GAAG,EAAE,QAAQ,EAAwB,MAAM,IAAI,CAAA;AACrF,OAAO,EAAiB,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAE3E,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;AAE/E,qBAAa,QAAS,YAAW,qBAAqB;IAOlD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IARlC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuB;IAC1D,SAAgB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;gBAGtC,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,EACZ,YAAY,EAAE,WAAW,CAAC,WAAW,EACtD,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EACjC,eAAe,EAAE,OAAO,CAAC,OAAO;IAcnD,IAAI,cAAc,IAAI,OAAO,CAAC,OAAO,CAKpC;IAED,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,qBAAqB;IAa3F,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,sBAAsB,EAAE,OAAO,CAAC,OAAO,EACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,OAAO,CAAC;IAyCb,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,KAAK,EACtB,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,OAAO,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC3B,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;CAclD"}
@@ -73,7 +73,7 @@ export class Implicit {
73
73
  const expectedResult = Bytes.toHex(Attestation.generateImplicitRequestMagic(this._attestation, wallet));
74
74
  return acceptImplicitRequest === expectedResult;
75
75
  }
76
- catch (error) {
76
+ catch {
77
77
  // console.log('implicit signer unsupported call', call, error)
78
78
  return false;
79
79
  }
@@ -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":"AAAA,OAAO,EAAE,MAAM,EAAa,OAAO,EAAc,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AACvH,OAAO,EAEL,OAAO,EAEP,GAAG,EAIJ,MAAM,IAAI,CAAA;AACX,OAAO,EAAwB,QAAQ,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGjF,qBAAa,QAAS,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,IAAI,SAAoC;IAI9C,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;IAUxE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;IAoBzG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QACjD,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,GAAG;YACzB,OAAO,EAAE,MAAM,CAAA;YACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAA;YACzB,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAA;SAC3C,CAAA;KACF,CAAC;IA8CI,oBAAoB,CACxB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,SAAS,EAAE,GAAG,CAAC,GAAG,GACjB,OAAO,CAAC;QACT,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,GAAG;YACzB,OAAO,EAAE,MAAM,CAAA;YACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAA;YACzB,SAAS,EAAE,SAAS,CAAC,4BAA4B,CAAA;SAClD,CAAA;KACF,CAAC;IA4CI,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,MAAM,EAAE,OAAO,CAAC,OAAO,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;QAAC,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAA;KAAE,GAAG,SAAS,CAAC;IAiC5G,oBAAoB,CACxB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,SAAS,EAAE,GAAG,CAAC,GAAG,GACjB,OAAO,CACR;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;QAAC,SAAS,EAAE,SAAS,CAAC,4BAA4B,CAAA;KAAE,GAAG,SAAS,CAC9G;IA6BK,uBAAuB,CAC3B,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,aAAa,EAAE,GAAG,CAAC,GAAG,EACtB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GACjC,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC;QAAC,SAAS,EAAE,SAAS,CAAC,YAAY,CAAA;KAAE,CAAC,CAAC;IAmBtE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC;IAUjE,UAAU,CACd,MAAM,EAAE,GAAG,CAAC,GAAG,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;IAYzF,UAAU,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAevF,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,QAAQ,EACzB,UAAU,EAAE,SAAS,CAAC,WAAW,GAChC,OAAO,CAAC,IAAI,CAAC;IAqCV,UAAU,CACd,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAC5B,SAAS,EAAE,SAAS,CAAC,YAAY,GAChC,OAAO,CAAC,IAAI,CAAC;IAUV,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQtG"}
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.8",
3
+ "version": "3.0.0",
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/guard": "^3.0.0-beta.8",
30
- "@0xsequence/wallet-primitives": "^3.0.0-beta.8",
31
- "@0xsequence/relayer": "^3.0.0-beta.8"
30
+ "@0xsequence/guard": "^3.0.0",
31
+ "@0xsequence/wallet-primitives": "^3.0.0",
32
+ "@0xsequence/relayer": "^3.0.0"
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,