@1sat/wallet-node 0.0.42 → 0.0.44

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, type sdk } from '@bsv/wallet-toolbox';
4
5
  export interface BunSqliteStorageConfig {
@@ -39,6 +40,14 @@ export interface NodeWalletConfig {
39
40
  * is already running against the same storage.
40
41
  */
41
42
  skipInitialMonitor?: boolean;
43
+ /**
44
+ * Persistent store for Monitor task `lastRunMsecsSinceEpoch`. Defaults
45
+ * to a JSON sidecar next to the bun-sqlite file when storage is
46
+ * bun-sqlite and no store is supplied. For Postgres storage, no default
47
+ * is constructed; pass one explicitly if cross-process throttle
48
+ * persistence is wanted.
49
+ */
50
+ taskStateStore?: TaskStateStore;
42
51
  }
43
52
  export interface NodeWalletResult {
44
53
  wallet: Wallet;
@@ -1 +1 @@
1
- {"version":3,"file":"createNodeWallet.d.ts","sourceRoot":"","sources":["../src/createNodeWallet.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,KAAK,GAAG,EACR,MAAM,qBAAqB,CAAA;AAM5B,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,YAAY,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,IAAI,CAAA;IACd,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrC;AAED,MAAM,MAAM,uBAAuB,GAChC,sBAAsB,GACtB,eAAe,CAAA;AAElB,MAAM,WAAW,gBAAgB;IAChC,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;;OAEG;IACH,OAAO,CAAC,EAAE,uBAAuB,CAAA;IACjC,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;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAChC,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;IACzC;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,GAAG,CAAC,qBAAqB,CAAA;CACjD;AAED,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAsD3B"}
1
+ {"version":3,"file":"createNodeWallet.d.ts","sourceRoot":"","sources":["../src/createNodeWallet.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,KAAK,GAAG,EACR,MAAM,qBAAqB,CAAA;AAO5B,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,YAAY,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,IAAI,CAAA;IACd,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrC;AAED,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,GAAG,eAAe,CAAA;AAE9E,MAAM,WAAW,gBAAgB;IAChC,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;;OAEG;IACH,OAAO,CAAC,EAAE,uBAAuB,CAAA;IACjC,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;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAChC,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;IACzC;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,GAAG,CAAC,qBAAqB,CAAA;CACjD;AAED,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA4E3B"}
@@ -1,5 +1,6 @@
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';
3
+ import { createFsTaskStateStore } from './fsTaskStateStore';
3
4
  import { StorageBunSqlite } from './storage-bun-sqlite';
4
5
  const DEFAULT_STORAGE_NAME = 'wallet';
5
6
  const DEFAULT_SQLITE_FILENAME = './wallet.db';
@@ -12,7 +13,11 @@ export async function createNodeWallet(config) {
12
13
  };
13
14
  const localStorage = await buildLocalStorage(storageConfig, storageOptions);
14
15
  await localStorage.migrate(DEFAULT_STORAGE_NAME, config.storageIdentityKey);
15
- const core = await createWalletCore(config, localStorage, {
16
+ const taskStateStore = config.taskStateStore ??
17
+ (storageConfig.provider === 'bun-sqlite'
18
+ ? createFsTaskStateStore(`${storageConfig.filename ?? DEFAULT_SQLITE_FILENAME}.tasks.json`)
19
+ : undefined);
20
+ const core = await createWalletCore({ ...config, taskStateStore }, localStorage, {
16
21
  Services,
17
22
  StorageClient,
18
23
  StorageProvider,
@@ -25,9 +30,19 @@ export async function createNodeWallet(config) {
25
30
  // (and race with) its work. Tasks self-throttle internally via their
26
31
  // per-task intervals, so repeated runOnce calls during rapid activity
27
32
  // are cheap timestamp comparisons.
33
+ //
34
+ // Defer the run until initial backup registration has settled. Each
35
+ // `addWalletStorageProvider` call inside a registering backup briefly
36
+ // flips `WalletStorageManager._isAvailable` to false; concurrent
37
+ // `getActive()` from monitor tasks throws WERR_INVALID_OPERATION during
38
+ // that window. Awaiting `backupsSettled` removes the predictable race
39
+ // window for the monitor's automatic boot pass.
28
40
  let initialRunOnce;
29
41
  if (!config.activeRemote && !config.skipInitialMonitor) {
30
- initialRunOnce = core.monitor.runOnce().catch((err) => {
42
+ initialRunOnce = (async () => {
43
+ await core.backupsSettled;
44
+ await core.monitor.runOnce();
45
+ })().catch((err) => {
31
46
  console.error('[wallet-core] initial monitor run failed:', err);
32
47
  });
33
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createNodeWallet.js","sourceRoot":"","sources":["../src/createNodeWallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createNodeWallet.js","sourceRoot":"","sources":["../src/createNodeWallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { TaskStateStore } from '@1sat/wallet';
2
+ /**
3
+ * Filesystem-backed `TaskStateStore`. Stores the task state map as JSON at
4
+ * the given path. Writes are atomic via temp-file-and-rename, so two
5
+ * processes writing concurrently never produce a torn file (last writer
6
+ * wins, which is correct for monotonically advancing timestamps).
7
+ *
8
+ * Per-task value interpretation lives in the wallet factory; this store is
9
+ * an opaque blob carrier for whatever JSON-serializable shape the factory
10
+ * decides to persist.
11
+ */
12
+ export declare function createFsTaskStateStore(filePath: string): TaskStateStore;
13
+ //# sourceMappingURL=fsTaskStateStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsTaskStateStore.d.ts","sourceRoot":"","sources":["../src/fsTaskStateStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAsBvE"}
@@ -0,0 +1,38 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import { dirname } from 'node:path';
3
+ /**
4
+ * Filesystem-backed `TaskStateStore`. Stores the task state map as JSON at
5
+ * the given path. Writes are atomic via temp-file-and-rename, so two
6
+ * processes writing concurrently never produce a torn file (last writer
7
+ * wins, which is correct for monotonically advancing timestamps).
8
+ *
9
+ * Per-task value interpretation lives in the wallet factory; this store is
10
+ * an opaque blob carrier for whatever JSON-serializable shape the factory
11
+ * decides to persist.
12
+ */
13
+ export function createFsTaskStateStore(filePath) {
14
+ return {
15
+ async load() {
16
+ try {
17
+ const raw = await fs.readFile(filePath, 'utf8');
18
+ const parsed = JSON.parse(raw);
19
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
20
+ return parsed;
21
+ }
22
+ return {};
23
+ }
24
+ catch (err) {
25
+ if (err.code === 'ENOENT')
26
+ return {};
27
+ throw err;
28
+ }
29
+ },
30
+ async save(state) {
31
+ await fs.mkdir(dirname(filePath), { recursive: true });
32
+ const tmp = `${filePath}.${process.pid}.${Date.now()}.tmp`;
33
+ await fs.writeFile(tmp, JSON.stringify(state), 'utf8');
34
+ await fs.rename(tmp, filePath);
35
+ },
36
+ };
37
+ }
38
+ //# sourceMappingURL=fsTaskStateStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsTaskStateStore.js","sourceRoot":"","sources":["../src/fsTaskStateStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACtD,OAAO;QACN,KAAK,CAAC,IAAI;YACT,IAAI,CAAC;gBACJ,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC9B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpE,OAAO,MAAiC,CAAA;gBACzC,CAAC;gBACD,OAAO,EAAE,CAAA;YACV,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,EAAE,CAAA;gBAC/D,MAAM,GAAG,CAAA;YACV,CAAC;QACF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK;YACf,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACtD,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA;YAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;YACtD,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC/B,CAAC;KACD,CAAA;AACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from '@1sat/wallet';
2
2
  export { createNodeWallet } from './createNodeWallet';
3
+ export { createFsTaskStateStore } from './fsTaskStateStore';
3
4
  export type { BunSqliteStorageConfig, NodeWalletConfig, NodeWalletResult, NodeWalletStorageConfig, PgStorageConfig, } from './createNodeWallet';
4
5
  export { StorageBunSqlite } from './storage-bun-sqlite';
5
6
  export type { StorageBunSqliteOptions } from './storage-bun-sqlite';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EACX,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,GACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,GAAG,IAAI,SAAS,GACrB,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,YAAY,EACX,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,GACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,GAAG,IAAI,SAAS,GACrB,MAAM,qBAAqB,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from '@1sat/wallet';
2
2
  export { createNodeWallet } from './createNodeWallet';
3
+ export { createFsTaskStateStore } from './fsTaskStateStore';
3
4
  export { StorageBunSqlite } from './storage-bun-sqlite';
4
5
  export { StoragePg } from './storage-pg';
5
6
  export { Monitor, Services, StorageClient, StorageProvider, Wallet, WalletPermissionsManager, WalletStorageManager, } from '@bsv/wallet-toolbox';
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,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AASrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,GAEpB,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAS3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,GAEpB,MAAM,qBAAqB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/wallet-node",
3
- "version": "0.0.42",
3
+ "version": "0.0.44",
4
4
  "description": "Node/Bun wallet factory for 1Sat Ordinals SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -30,7 +30,7 @@
30
30
  ],
31
31
  "license": "MIT",
32
32
  "dependencies": {
33
- "@1sat/wallet": "0.0.63"
33
+ "@1sat/wallet": "0.0.68"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "@bsv/sdk": "^2.0.13",
@@ -46,7 +46,7 @@
46
46
  }
47
47
  },
48
48
  "devDependencies": {
49
- "@1sat/client": "0.0.26",
49
+ "@1sat/client": "0.0.27",
50
50
  "@bsv/sdk": "^2.0.13",
51
51
  "@bsv/wallet-toolbox": "npm:@bopen-io/wallet-toolbox@2.1.21-parity-fix.2",
52
52
  "@types/pg": "^8.11.0",