@1sat/wallet-browser 0.0.52 → 0.0.53

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.
@@ -1,4 +1,5 @@
1
1
  import type { OneSatServices } from '@1sat/client';
2
+ import { type TaskStateStore } from '@1sat/wallet';
2
3
  import type { PrivateKey } from '@bsv/sdk';
3
4
  import { Monitor, StorageClient, Wallet, WalletStorageManager } from '@bsv/wallet-toolbox-mobile';
4
5
  import type { MonitorEvent } from './types';
@@ -16,6 +17,15 @@ export interface WebWalletConfig {
16
17
  onTransactionBroadcasted?: (txid: string) => void;
17
18
  onTransactionProven?: (txid: string, blockHeight: number) => void;
18
19
  onMonitorEvent?: (event: MonitorEvent) => void;
20
+ /**
21
+ * Persistent store for Monitor task `lastRunMsecsSinceEpoch`. When
22
+ * provided, the factory hydrates each task's last-run timestamp on
23
+ * Monitor construction and snapshots back after every `runOnce`. In a
24
+ * service worker, this is what makes wakes within a task's interval
25
+ * effectively no-ops. Use `createIndexedDbTaskStateStore()` from
26
+ * `@1sat/wallet-browser` for the standard implementation.
27
+ */
28
+ taskStateStore?: TaskStateStore;
19
29
  }
20
30
  export interface WebWalletResult {
21
31
  wallet: Wallet;
@@ -1 +1 @@
1
- {"version":3,"file":"createWebWallet.d.ts","sourceRoot":"","sources":["../src/createWebWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EACN,OAAO,EAEP,aAAa,EAEb,MAAM,EACN,oBAAoB,EACpB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAI3C,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,UAAU,GAAG,MAAM,CAAA;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IACjE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACzC;AAED,wBAAsB,eAAe,CACpC,MAAM,EAAE,eAAe,GACrB,OAAO,CAAC,eAAe,CAAC,CAsC1B"}
1
+ {"version":3,"file":"createWebWallet.d.ts","sourceRoot":"","sources":["../src/createWebWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAEN,KAAK,cAAc,EAEnB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EACN,OAAO,EAEP,aAAa,EAEb,MAAM,EACN,oBAAoB,EACpB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAI3C,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,UAAU,GAAG,MAAM,CAAA;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IACjE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IAC9C;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACzC;AAED,wBAAsB,eAAe,CACpC,MAAM,EAAE,eAAe,GACrB,OAAO,CAAC,eAAe,CAAC,CAgD1B"}
@@ -1,4 +1,4 @@
1
- import { DEFAULT_FEE_MODEL, createWalletCore } from '@1sat/wallet';
1
+ import { DEFAULT_FEE_MODEL, createWalletCore, } from '@1sat/wallet';
2
2
  import { Monitor, Services, StorageClient, StorageProvider, Wallet, WalletStorageManager, } from '@bsv/wallet-toolbox-mobile';
3
3
  import { StorageIdb } from '@bsv/wallet-toolbox/out/src/index.client.js';
4
4
  const DEFAULT_DATABASE_NAME = 'wallet';
@@ -21,8 +21,19 @@ export async function createWebWallet(config) {
21
21
  // (and race with) its work. Tasks self-throttle internally via their
22
22
  // per-task intervals, so repeated runOnce calls during rapid activity
23
23
  // are cheap timestamp comparisons.
24
+ //
25
+ // Defer the run until initial backup registration has settled. Each
26
+ // `addWalletStorageProvider` call inside a registering backup briefly
27
+ // flips `WalletStorageManager._isAvailable` to false; concurrent
28
+ // `getActive()` from monitor tasks throws WERR_INVALID_OPERATION during
29
+ // that window. Awaiting `backupsSettled` removes the predictable race
30
+ // window for the monitor's automatic boot pass.
24
31
  if (!config.activeRemote) {
25
- core.monitor.runOnce().catch((err) => {
32
+ ;
33
+ (async () => {
34
+ await core.backupsSettled;
35
+ await core.monitor.runOnce();
36
+ })().catch((err) => {
26
37
  console.error('[wallet-core] initial monitor run failed:', err);
27
38
  });
28
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createWebWallet.js","sourceRoot":"","sources":["../src/createWebWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAElE,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,oBAAoB,GACpB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AAGxE,MAAM,qBAAqB,GAAG,QAAQ,CAAA;AA0BtC,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,MAAuB;IAEvB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAA;IAErD,MAAM,cAAc,GAAG,eAAe,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC7E,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAClC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;IACnD,MAAM,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE5E,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE;QACzD,QAAQ;QACR,aAAa;QACb,eAAe;QACf,MAAM;QACN,oBAAoB;QACpB,OAAO;KACP,CAAC,CAAA;IAEF,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,sEAAsE;IACtE,mCAAmC;IACnC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAC7C,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;IACH,CAAC;IAED,OAAO;QACN,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACpC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,SAAS,EAAE,IAAI,CAAC,SAAS;KACzB,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"createWebWallet.js","sourceRoot":"","sources":["../src/createWebWallet.ts"],"names":[],"mappings":"AACA,OAAO,EACN,iBAAiB,EAEjB,gBAAgB,GAChB,MAAM,cAAc,CAAA;AAErB,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,oBAAoB,GACpB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AAGxE,MAAM,qBAAqB,GAAG,QAAQ,CAAA;AAmCtC,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,MAAuB;IAEvB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAA;IAErD,MAAM,cAAc,GAAG,eAAe,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC7E,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAClC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;IACnD,MAAM,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE5E,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE;QACzD,QAAQ;QACR,aAAa;QACb,eAAe;QACf,MAAM;QACN,oBAAoB;QACpB,OAAO;KACP,CAAC,CAAA;IAEF,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,sEAAsE;IACtE,mCAAmC;IACnC,EAAE;IACF,oEAAoE;IACpE,sEAAsE;IACtE,iEAAiE;IACjE,wEAAwE;IACxE,sEAAsE;IACtE,gDAAgD;IAChD,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;QAAA,CAAC,KAAK,IAAI,EAAE;YACZ,MAAM,IAAI,CAAC,cAAc,CAAA;YACzB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;QAC7B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAC3B,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;IACH,CAAC;IAED,OAAO;QACN,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACpC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,SAAS,EAAE,IAAI,CAAC,SAAS;KACzB,CAAA;AACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from '@1sat/wallet';
2
2
  export { createWebWallet } from './createWebWallet';
3
3
  export type { WebWalletConfig, WebWalletResult } from './createWebWallet';
4
4
  export { IndexedDbPermissionStore } from './permissions/indexed-db-store';
5
+ export { createIndexedDbTaskStateStore } from './indexedDbTaskStateStore';
5
6
  export type { MonitorEvent } from './types';
6
7
  export { Monitor, Services, StorageClient, StorageProvider, Wallet, WalletPermissionsManager, WalletStorageManager, type sdk as walletSdk, } from '@bsv/wallet-toolbox-mobile';
7
8
  export { StorageIdb } from '@bsv/wallet-toolbox/out/src/index.client.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,GAAG,IAAI,SAAS,GACrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAEzE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,GAAG,IAAI,SAAS,GACrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from '@1sat/wallet';
2
2
  export { createWebWallet } from './createWebWallet';
3
3
  export { IndexedDbPermissionStore } from './permissions/indexed-db-store';
4
+ export { createIndexedDbTaskStateStore } from './indexedDbTaskStateStore';
4
5
  export { Monitor, Services, StorageClient, StorageProvider, Wallet, WalletPermissionsManager, WalletStorageManager, } from '@bsv/wallet-toolbox-mobile';
5
6
  export { StorageIdb } from '@bsv/wallet-toolbox/out/src/index.client.js';
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAIzE,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,GAEpB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAIzE,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,GAEpB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA"}
@@ -0,0 +1,24 @@
1
+ import type { TaskStateStore } from '@1sat/wallet';
2
+ interface IndexedDbTaskStateStoreOptions {
3
+ /** Database name. Defaults to `1sat-wallet-task-state`. */
4
+ databaseName?: string;
5
+ /**
6
+ * Optional scope suffix appended to the database name (e.g. an identity
7
+ * key hash) when a single browser profile needs isolated stores per
8
+ * wallet identity.
9
+ */
10
+ scope?: string;
11
+ }
12
+ /**
13
+ * IndexedDB-backed `TaskStateStore`. Works in main-thread browser contexts
14
+ * AND in service workers (extension or web) — IDB is one of the few storage
15
+ * APIs available in both. Single object store, single record holding the
16
+ * full taskName -> state map; bulk read/write each call.
17
+ *
18
+ * Per-task value interpretation lives in the wallet factory; this store is
19
+ * an opaque blob carrier. IDB's structured clone preserves nested object
20
+ * shapes natively, so no JSON encoding is needed at this layer.
21
+ */
22
+ export declare function createIndexedDbTaskStateStore(options?: IndexedDbTaskStateStoreOptions): TaskStateStore;
23
+ export {};
24
+ //# sourceMappingURL=indexedDbTaskStateStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexedDbTaskStateStore.d.ts","sourceRoot":"","sources":["../src/indexedDbTaskStateStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAMlD,UAAU,8BAA8B;IACvC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC5C,OAAO,GAAE,8BAAmC,GAC1C,cAAc,CAoDhB"}
@@ -0,0 +1,58 @@
1
+ const DEFAULT_DATABASE_NAME = '1sat-wallet-task-state';
2
+ const STORE_NAME = 'state';
3
+ const RECORD_KEY = 'monitor-tasks';
4
+ /**
5
+ * IndexedDB-backed `TaskStateStore`. Works in main-thread browser contexts
6
+ * AND in service workers (extension or web) — IDB is one of the few storage
7
+ * APIs available in both. Single object store, single record holding the
8
+ * full taskName -> state map; bulk read/write each call.
9
+ *
10
+ * Per-task value interpretation lives in the wallet factory; this store is
11
+ * an opaque blob carrier. IDB's structured clone preserves nested object
12
+ * shapes natively, so no JSON encoding is needed at this layer.
13
+ */
14
+ export function createIndexedDbTaskStateStore(options = {}) {
15
+ const base = options.databaseName ?? DEFAULT_DATABASE_NAME;
16
+ const databaseName = options.scope ? `${base}:${options.scope}` : base;
17
+ let dbPromise = null;
18
+ const openDatabase = () => {
19
+ if (dbPromise)
20
+ return dbPromise;
21
+ dbPromise = new Promise((resolve, reject) => {
22
+ const request = indexedDB.open(databaseName, 1);
23
+ request.onupgradeneeded = () => {
24
+ const db = request.result;
25
+ if (!db.objectStoreNames.contains(STORE_NAME)) {
26
+ db.createObjectStore(STORE_NAME);
27
+ }
28
+ };
29
+ request.onsuccess = () => resolve(request.result);
30
+ request.onerror = () => reject(request.error ?? new Error('IDB open failed'));
31
+ });
32
+ return dbPromise;
33
+ };
34
+ const withStore = async (mode, op) => {
35
+ const db = await openDatabase();
36
+ return new Promise((resolve, reject) => {
37
+ const tx = db.transaction(STORE_NAME, mode);
38
+ const store = tx.objectStore(STORE_NAME);
39
+ const request = op(store);
40
+ request.onsuccess = () => resolve(request.result);
41
+ request.onerror = () => reject(request.error ?? new Error('IDB request failed'));
42
+ tx.onerror = () => reject(tx.error ?? new Error('IDB transaction failed'));
43
+ });
44
+ };
45
+ return {
46
+ async load() {
47
+ const value = await withStore('readonly', (store) => store.get(RECORD_KEY));
48
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
49
+ return {};
50
+ }
51
+ return value;
52
+ },
53
+ async save(state) {
54
+ await withStore('readwrite', (store) => store.put(state, RECORD_KEY));
55
+ },
56
+ };
57
+ }
58
+ //# sourceMappingURL=indexedDbTaskStateStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexedDbTaskStateStore.js","sourceRoot":"","sources":["../src/indexedDbTaskStateStore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/wallet-browser",
3
- "version": "0.0.52",
3
+ "version": "0.0.53",
4
4
  "description": "Browser wallet factory for 1Sat Ordinals SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -28,7 +28,7 @@
28
28
  ],
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
- "@1sat/wallet": "0.0.63"
31
+ "@1sat/wallet": "0.0.66"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@1sat/client": "0.0.26",