@1sat/wallet 0.0.48 → 0.0.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/factory.d.ts +14 -2
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +47 -41
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/storagePaymentAutoRetry.d.ts +28 -0
- package/dist/storagePaymentAutoRetry.d.ts.map +1 -1
- package/dist/storagePaymentAutoRetry.js +58 -5
- package/dist/storagePaymentAutoRetry.js.map +1 -1
- package/package.json +1 -1
package/dist/factory.d.ts
CHANGED
|
@@ -45,7 +45,13 @@ export interface WalletCoreResult {
|
|
|
45
45
|
wallet: InstanceType<any>;
|
|
46
46
|
services: OneSatServices;
|
|
47
47
|
storage: InstanceType<any>;
|
|
48
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Present only when the caller supplies a `Monitor` class in the toolbox
|
|
50
|
+
* (wallet-node, wallet-browser). Remote-active wrappers (wallet-remote)
|
|
51
|
+
* omit the class; the server owns the monitor loop and the client's
|
|
52
|
+
* result has `monitor: undefined`.
|
|
53
|
+
*/
|
|
54
|
+
monitor: InstanceType<any> | undefined;
|
|
49
55
|
destroy: () => Promise<void>;
|
|
50
56
|
remoteClients: InstanceType<any>[];
|
|
51
57
|
/**
|
|
@@ -79,7 +85,13 @@ export declare function createWalletCore(config: WalletCoreConfig, localStorage:
|
|
|
79
85
|
StorageProvider: any;
|
|
80
86
|
Wallet: any;
|
|
81
87
|
WalletStorageManager: any;
|
|
82
|
-
|
|
88
|
+
/**
|
|
89
|
+
* Optional. When the caller supplies a Monitor class, the factory
|
|
90
|
+
* constructs an idle instance and wires the periodic BackupSync task.
|
|
91
|
+
* Wrappers that don't own a monitor loop (e.g. `wallet-remote` —
|
|
92
|
+
* the server runs its own monitor) should omit this.
|
|
93
|
+
*/
|
|
94
|
+
Monitor?: any;
|
|
83
95
|
}): Promise<WalletCoreResult>;
|
|
84
96
|
export {};
|
|
85
97
|
//# sourceMappingURL=factory.d.ts.map
|
package/dist/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAc,KAAK,UAAU,EAAwB,MAAM,UAAU,CAAA;AAC5E,OAAO,KAAK,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,2BAA2B,CAAA;AAGlC,KAAK,qBAAqB,GAAG,UAAU,CAAC,qBAAqB,CAAA;AAE7D,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAEnC,eAAO,MAAM,iBAAiB;;;CAA2C,CAAA;AACzE,eAAO,MAAM,0BAA0B,OAAO,CAAA;AAE9C,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,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,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;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAE,kBAAkB,CAAA;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAA;IACzB,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAA;IAC1B,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAc,KAAK,UAAU,EAAwB,MAAM,UAAU,CAAA;AAC5E,OAAO,KAAK,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,2BAA2B,CAAA;AAGlC,KAAK,qBAAqB,GAAG,UAAU,CAAC,qBAAqB,CAAA;AAE7D,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAEnC,eAAO,MAAM,iBAAiB;;;CAA2C,CAAA;AACzE,eAAO,MAAM,0BAA0B,OAAO,CAAA;AAE9C,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,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,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;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAE,kBAAkB,CAAA;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAA;IACzB,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAA;IAC1B;;;;;OAKG;IACH,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IACtC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,aAAa,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAA;IAClC;;;;;;OAMG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D;;;OAGG;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;IAC7C,QAAQ,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C;AAED,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,qBAAqB,GAAG,SAAS,EAC/C,OAAO,EAAE;IACR,QAAQ,EAAE,GAAG,CAAA;IACb,aAAa,EAAE,GAAG,CAAA;IAClB,eAAe,EAAE,GAAG,CAAA;IACpB,MAAM,EAAE,GAAG,CAAA;IACX,oBAAoB,EAAE,GAAG,CAAA;IACzB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,GAAG,CAAA;CACb,GACC,OAAO,CAAC,gBAAgB,CAAC,CAwM3B"}
|
package/dist/factory.js
CHANGED
|
@@ -78,41 +78,45 @@ export async function createWalletCore(config, localStorage, toolbox) {
|
|
|
78
78
|
getActiveRemoteUrl,
|
|
79
79
|
onStoragePaymentRequired: config.onStoragePaymentRequired,
|
|
80
80
|
});
|
|
81
|
-
// Monitor
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
81
|
+
// Monitor only exists when the caller supplied a Monitor class in the
|
|
82
|
+
// toolbox. wallet-node and wallet-browser do; wallet-remote doesn't
|
|
83
|
+
// (server owns the monitor loop). When present, the task loop is still
|
|
84
|
+
// caller-driven via startTasks / runOnce — factory just constructs and
|
|
85
|
+
// wires defaults.
|
|
86
|
+
let monitor;
|
|
87
|
+
if (toolbox.Monitor) {
|
|
88
|
+
monitor = new toolbox.Monitor({
|
|
89
|
+
chain: config.chain,
|
|
90
|
+
services: oneSatServices,
|
|
91
|
+
storage,
|
|
92
|
+
chaintracks: oneSatServices.chaintracks,
|
|
93
|
+
msecsWaitPerMerkleProofServiceReq: 500,
|
|
94
|
+
taskRunWaitMsecs: 5000,
|
|
95
|
+
abandonedMsecs: 300000,
|
|
96
|
+
unprovenAttemptsLimitTest: 10,
|
|
97
|
+
unprovenAttemptsLimitMain: 144,
|
|
98
|
+
});
|
|
99
|
+
monitor.addDefaultTasks();
|
|
100
|
+
// Periodic backup sync task. Fires only when local is the active store;
|
|
101
|
+
// with a remote active, pushing local-to-remote on a schedule would be
|
|
102
|
+
// unnecessary (remote is canonical) and the auto-retry payment path can
|
|
103
|
+
// deadlock against the manager's locks if it fires inside a scheduled
|
|
104
|
+
// backup task. Interval defaults to 5 min.
|
|
105
|
+
const backupSyncIntervalMs = config.backupSyncIntervalMs ?? 5 * 60 * 1000;
|
|
106
|
+
if (backupSyncIntervalMs > 0) {
|
|
107
|
+
monitor.addTask(buildBackupSyncTask(monitor, backupSyncIntervalMs, storage));
|
|
108
|
+
}
|
|
109
|
+
if (config.onTransactionBroadcasted) {
|
|
110
|
+
monitor.onTransactionBroadcasted = async (result) => {
|
|
111
|
+
if (result.txid)
|
|
112
|
+
config.onTransactionBroadcasted(result.txid);
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
if (config.onTransactionProven) {
|
|
116
|
+
monitor.onTransactionProven = async (status) => {
|
|
117
|
+
config.onTransactionProven(status.txid, status.blockHeight);
|
|
118
|
+
};
|
|
119
|
+
}
|
|
116
120
|
}
|
|
117
121
|
// 6. Remote management operations
|
|
118
122
|
const setActiveStorage = async (target) => {
|
|
@@ -146,14 +150,16 @@ export async function createWalletCore(config, localStorage, toolbox) {
|
|
|
146
150
|
};
|
|
147
151
|
// 7. Destroy
|
|
148
152
|
const destroy = async () => {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
+
if (monitor) {
|
|
154
|
+
try {
|
|
155
|
+
monitor.stopTasks();
|
|
156
|
+
if (monitor._tasksRunningPromise) {
|
|
157
|
+
await monitor._tasksRunningPromise;
|
|
158
|
+
}
|
|
159
|
+
await monitor.destroy();
|
|
153
160
|
}
|
|
154
|
-
|
|
161
|
+
catch { }
|
|
155
162
|
}
|
|
156
|
-
catch { }
|
|
157
163
|
await wallet.destroy();
|
|
158
164
|
};
|
|
159
165
|
return {
|
package/dist/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAyC,MAAM,UAAU,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACN,8BAA8B,GAE9B,MAAM,2BAA2B,CAAA;AAOlC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,KAAK,EAAE,QAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACzE,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { FileBackupProvider, FileRestoreReader, Zip, ZipDeflate, unzip, type Bac
|
|
|
8
8
|
export { ChromeCWI, CWIEventName, EventCWI, createChromeCWI, createCWI, createEventCWI, createSigmaCWI, createWebCWI, type CWIResponseDetail, type CWITransport, type SigmaCWIConfig, type SigmaCWIResult, type WebCWIConfig, type WebCWIResult, } from './cwi';
|
|
9
9
|
export { parsePrivateKey } from './parsePrivateKey';
|
|
10
10
|
export { createWalletCore, DEFAULT_FEE_MODEL, DEFAULT_CONNECTION_TIMEOUT, type Chain, type WalletCoreConfig, type WalletCoreResult, } from './factory';
|
|
11
|
-
export { installStoragePaymentAutoRetry, type AutoRetryConfig, type StoragePaymentHook, type StoragePaymentRequiredInfo, } from './storagePaymentAutoRetry';
|
|
11
|
+
export { installStoragePaymentAutoRetry, StoragePaymentError, type AutoRetryConfig, type StoragePaymentHook, type StoragePaymentRequiredInfo, } from './storagePaymentAutoRetry';
|
|
12
12
|
export { filterGroupedByMissing, InMemoryPermissionStore, isExpired, LocalWalletPermissionsManager, normalizeOriginator, permissionKeyFromRequest, permissionKeysFromGroup, permissionKeyToString, } from './permissions';
|
|
13
13
|
export type { IPermissionStore, ListGrantsFilter, LocalWalletPermissionsManagerOptions, PermissionKey, PermissionType, StoredGrant, } from './permissions';
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,YAAY,EACX,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,UAAU,GACV,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAGzD,OAAO,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,GACT,MAAM,cAAc,CAAA;AAGrB,OAAO,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,GAAG,GACR,MAAM,YAAY,CAAA;AAGnB,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,KAAK,iBAAiB,GACtB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,GAAG,EACH,UAAU,EACV,KAAK,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,QAAQ,GACb,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,GACjB,MAAM,OAAO,CAAA;AAMd,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACrB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACN,8BAA8B,EAC9B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,GAC/B,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EACN,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,GACrB,MAAM,eAAe,CAAA;AACtB,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,oCAAoC,EACpC,aAAa,EACb,cAAc,EACd,WAAW,GACX,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,YAAY,EACX,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,UAAU,GACV,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAGzD,OAAO,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,GACT,MAAM,cAAc,CAAA;AAGrB,OAAO,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,GAAG,GACR,MAAM,YAAY,CAAA;AAGnB,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,KAAK,iBAAiB,GACtB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,GAAG,EACH,UAAU,EACV,KAAK,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,QAAQ,GACb,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,GACjB,MAAM,OAAO,CAAA;AAMd,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACrB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACN,8BAA8B,EAC9B,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,GAC/B,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EACN,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,GACrB,MAAM,eAAe,CAAA;AACtB,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,oCAAoC,EACpC,aAAa,EACb,cAAc,EACd,WAAW,GACX,MAAM,eAAe,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -19,7 +19,7 @@ export { parsePrivateKey } from './parsePrivateKey';
|
|
|
19
19
|
// Factory core
|
|
20
20
|
export { createWalletCore, DEFAULT_FEE_MODEL, DEFAULT_CONNECTION_TIMEOUT, } from './factory';
|
|
21
21
|
// 507 auto-retry
|
|
22
|
-
export { installStoragePaymentAutoRetry, } from './storagePaymentAutoRetry';
|
|
22
|
+
export { installStoragePaymentAutoRetry, StoragePaymentError, } from './storagePaymentAutoRetry';
|
|
23
23
|
// Permissions — local-storage-backed WalletPermissionsManager
|
|
24
24
|
export { filterGroupedByMissing, InMemoryPermissionStore, isExpired, LocalWalletPermissionsManager, normalizeOriginator, permissionKeyFromRequest, permissionKeysFromGroup, permissionKeyToString, } from './permissions';
|
|
25
25
|
//# 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,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAU7C,UAAU;AACV,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,cAAc;AACd,OAAO,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,GACT,MAAM,cAAc,CAAA;AAErB,WAAW;AACX,OAAO,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,GAYZ,MAAM,YAAY,CAAA;AAEnB,eAAe;AACf,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,YAAY,GAEZ,MAAM,gBAAgB,CAAA;AAEvB,SAAS;AACT,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,GAAG,EACH,UAAU,EACV,KAAK,GAKL,MAAM,UAAU,CAAA;AAEjB,+BAA+B;AAC/B,OAAO,EACN,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,GAOZ,MAAM,OAAO,CAAA;AAEd,8EAA8E;AAC9E,sDAAsD;AAEtD,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,eAAe;AACf,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAI1B,MAAM,WAAW,CAAA;AAElB,iBAAiB;AACjB,OAAO,EACN,8BAA8B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAU7C,UAAU;AACV,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,cAAc;AACd,OAAO,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,GACT,MAAM,cAAc,CAAA;AAErB,WAAW;AACX,OAAO,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,GAYZ,MAAM,YAAY,CAAA;AAEnB,eAAe;AACf,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,YAAY,GAEZ,MAAM,gBAAgB,CAAA;AAEvB,SAAS;AACT,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,GAAG,EACH,UAAU,EACV,KAAK,GAKL,MAAM,UAAU,CAAA;AAEjB,+BAA+B;AAC/B,OAAO,EACN,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,GAOZ,MAAM,OAAO,CAAA;AAEd,8EAA8E;AAC9E,sDAAsD;AAEtD,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,eAAe;AACf,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAI1B,MAAM,WAAW,CAAA;AAElB,iBAAiB;AACjB,OAAO,EACN,8BAA8B,EAC9B,mBAAmB,GAInB,MAAM,2BAA2B,CAAA;AAElC,8DAA8D;AAC9D,OAAO,EACN,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,GACrB,MAAM,eAAe,CAAA"}
|
|
@@ -39,6 +39,34 @@ export interface StoragePaymentRequiredInfo {
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
export type StoragePaymentHook = (info: StoragePaymentRequiredInfo) => Promise<boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* Thrown by the factory's 507 auto-retry wrapper when a storage payment
|
|
44
|
+
* attempt cannot complete. Distinguishes storage-payment failures from
|
|
45
|
+
* ordinary wallet errors so callers can present a targeted message
|
|
46
|
+
* ("couldn't cover the storage fee") rather than a generic wallet error.
|
|
47
|
+
*
|
|
48
|
+
* The most common concrete case is **insufficient funds to cover the
|
|
49
|
+
* required storage payment** — in which the underlying wallet-toolbox
|
|
50
|
+
* error is preserved in `cause`. Other cases: the user's
|
|
51
|
+
* `onStoragePaymentRequired` hook returned false, the server rejected
|
|
52
|
+
* the self-payment tx, or the original op still failed after the payment
|
|
53
|
+
* was recorded.
|
|
54
|
+
*/
|
|
55
|
+
export declare class StoragePaymentError extends Error {
|
|
56
|
+
readonly name = "StoragePaymentError";
|
|
57
|
+
/**
|
|
58
|
+
* Stable string code for framework-agnostic detection:
|
|
59
|
+
* `err?.code === 'storage-payment-failed'`. Use this if you don't
|
|
60
|
+
* want to import the class.
|
|
61
|
+
*/
|
|
62
|
+
readonly code = "storage-payment-failed";
|
|
63
|
+
/** Pricing + deficit snapshot at the time of the failure, if available. */
|
|
64
|
+
readonly info?: StoragePaymentRequiredInfo;
|
|
65
|
+
constructor(message: string, options?: {
|
|
66
|
+
info?: StoragePaymentRequiredInfo;
|
|
67
|
+
cause?: unknown;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
42
70
|
export interface AutoRetryConfig {
|
|
43
71
|
/** The wallet whose billable methods should be wrapped. */
|
|
44
72
|
wallet: WalletInterface;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storagePaymentAutoRetry.d.ts","sourceRoot":"","sources":["../src/storagePaymentAutoRetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAGN,KAAK,eAAe,EAOpB,MAAM,UAAU,CAAA;AAiCjB;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE;QACR,iBAAiB,EAAE,MAAM,CAAA;QACzB,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,WAAW,EAAE;QACZ,gBAAgB,EAAE,MAAM,CAAA;QACxB,gBAAgB,EAAE,MAAM,CAAA;KACxB,CAAA;CACD;AAED,MAAM,MAAM,kBAAkB,GAAG,CAChC,IAAI,EAAE,0BAA0B,KAC5B,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB,MAAM,WAAW,eAAe;IAC/B,2DAA2D;IAC3D,MAAM,EAAE,eAAe,CAAA;IACvB;;;OAGG;IACH,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAAA;IACxC;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,kBAAkB,CAAA;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,eAAe,GACrB,eAAe,
|
|
1
|
+
{"version":3,"file":"storagePaymentAutoRetry.d.ts","sourceRoot":"","sources":["../src/storagePaymentAutoRetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAGN,KAAK,eAAe,EAOpB,MAAM,UAAU,CAAA;AAiCjB;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE;QACR,iBAAiB,EAAE,MAAM,CAAA;QACzB,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,WAAW,EAAE;QACZ,gBAAgB,EAAE,MAAM,CAAA;QACxB,gBAAgB,EAAE,MAAM,CAAA;KACxB,CAAA;CACD;AAED,MAAM,MAAM,kBAAkB,GAAG,CAChC,IAAI,EAAE,0BAA0B,KAC5B,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,yBAAwB;IACrC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,4BAA2B;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAA;gBAGzC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,0BAA0B,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAKrE;AAED,MAAM,WAAW,eAAe;IAC/B,2DAA2D;IAC3D,MAAM,EAAE,eAAe,CAAA;IACvB;;;OAGG;IACH,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAAA;IACxC;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,kBAAkB,CAAA;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,eAAe,GACrB,eAAe,CAgEjB"}
|
|
@@ -21,6 +21,34 @@ import { P2PKH, PublicKey, } from '@bsv/sdk';
|
|
|
21
21
|
import { AuthFetch } from '@bsv/sdk/auth';
|
|
22
22
|
/** BRC-29 protocol ID for wallet payments. */
|
|
23
23
|
const BRC29_PROTOCOL_ID = [2, '3241645161d8'];
|
|
24
|
+
/**
|
|
25
|
+
* Thrown by the factory's 507 auto-retry wrapper when a storage payment
|
|
26
|
+
* attempt cannot complete. Distinguishes storage-payment failures from
|
|
27
|
+
* ordinary wallet errors so callers can present a targeted message
|
|
28
|
+
* ("couldn't cover the storage fee") rather than a generic wallet error.
|
|
29
|
+
*
|
|
30
|
+
* The most common concrete case is **insufficient funds to cover the
|
|
31
|
+
* required storage payment** — in which the underlying wallet-toolbox
|
|
32
|
+
* error is preserved in `cause`. Other cases: the user's
|
|
33
|
+
* `onStoragePaymentRequired` hook returned false, the server rejected
|
|
34
|
+
* the self-payment tx, or the original op still failed after the payment
|
|
35
|
+
* was recorded.
|
|
36
|
+
*/
|
|
37
|
+
export class StoragePaymentError extends Error {
|
|
38
|
+
name = 'StoragePaymentError';
|
|
39
|
+
/**
|
|
40
|
+
* Stable string code for framework-agnostic detection:
|
|
41
|
+
* `err?.code === 'storage-payment-failed'`. Use this if you don't
|
|
42
|
+
* want to import the class.
|
|
43
|
+
*/
|
|
44
|
+
code = 'storage-payment-failed';
|
|
45
|
+
/** Pricing + deficit snapshot at the time of the failure, if available. */
|
|
46
|
+
info;
|
|
47
|
+
constructor(message, options = {}) {
|
|
48
|
+
super(message, { cause: options.cause });
|
|
49
|
+
this.info = options.info;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
24
52
|
/**
|
|
25
53
|
* Install the 507 auto-retry wrappers on the given wallet. Mutates the
|
|
26
54
|
* wallet in-place so every caller of `wallet.createAction` / `signAction`
|
|
@@ -43,14 +71,32 @@ export function installStoragePaymentAutoRetry(config) {
|
|
|
43
71
|
if (!url)
|
|
44
72
|
throw err;
|
|
45
73
|
const info = await fetchPaymentInfo(wallet, url);
|
|
46
|
-
if (!info)
|
|
74
|
+
if (!info) {
|
|
75
|
+
// 507 but /account/status says no deficit / accounts disabled
|
|
76
|
+
// — weird mismatch, not a payment-affordability problem. Pass
|
|
77
|
+
// the raw 507 through.
|
|
47
78
|
throw err;
|
|
79
|
+
}
|
|
48
80
|
const hook = config.onStoragePaymentRequired;
|
|
49
81
|
const ok = hook ? await hook(info) : true;
|
|
50
|
-
if (!ok)
|
|
51
|
-
throw err;
|
|
52
|
-
|
|
53
|
-
|
|
82
|
+
if (!ok) {
|
|
83
|
+
throw new StoragePaymentError('storage payment declined by consent hook', { info, cause: err });
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
await buildAndBroadcastPayment(originalCreateAction, wallet, info);
|
|
87
|
+
}
|
|
88
|
+
catch (paymentErr) {
|
|
89
|
+
throw new StoragePaymentError(buildPaymentErrorMessage(paymentErr, info), { info, cause: paymentErr });
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
return await op();
|
|
93
|
+
}
|
|
94
|
+
catch (retryErr) {
|
|
95
|
+
if (isInsufficientStorageError(retryErr)) {
|
|
96
|
+
throw new StoragePaymentError('storage payment recorded but the operation still failed with 507', { info, cause: retryErr });
|
|
97
|
+
}
|
|
98
|
+
throw retryErr;
|
|
99
|
+
}
|
|
54
100
|
}
|
|
55
101
|
};
|
|
56
102
|
wallet.createAction = (args) => runWithRetry(() => originalCreateAction(args));
|
|
@@ -129,4 +175,11 @@ function joinUrl(base, path) {
|
|
|
129
175
|
const p = path.startsWith('/') ? path.slice(1) : path;
|
|
130
176
|
return `${b}/${p}`;
|
|
131
177
|
}
|
|
178
|
+
function buildPaymentErrorMessage(cause, info) {
|
|
179
|
+
const detail = cause && typeof cause === 'object' && 'message' in cause
|
|
180
|
+
? String(cause.message)
|
|
181
|
+
: '';
|
|
182
|
+
const base = `failed to build storage payment (${info.satsRequired} sats)`;
|
|
183
|
+
return detail ? `${base}: ${detail}` : base;
|
|
184
|
+
}
|
|
132
185
|
//# sourceMappingURL=storagePaymentAutoRetry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storagePaymentAutoRetry.js","sourceRoot":"","sources":["../src/storagePaymentAutoRetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACN,KAAK,EACL,SAAS,GAQT,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,8CAA8C;AAC9C,MAAM,iBAAiB,GAAgB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"storagePaymentAutoRetry.js","sourceRoot":"","sources":["../src/storagePaymentAutoRetry.ts"],"names":[],"mappings":"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"}
|