@bsv/wallet-toolbox 2.0.0-beta.1 → 2.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 (97) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/docs/README.md +1 -0
  3. package/docs/client.md +409 -267
  4. package/docs/services.md +15 -3
  5. package/docs/storage.md +48 -88
  6. package/docs/wab-shamir.md +311 -0
  7. package/docs/wallet.md +409 -267
  8. package/out/src/ShamirWalletManager.d.ts +213 -0
  9. package/out/src/ShamirWalletManager.d.ts.map +1 -0
  10. package/out/src/ShamirWalletManager.js +363 -0
  11. package/out/src/ShamirWalletManager.js.map +1 -0
  12. package/out/src/Wallet.d.ts +1 -1
  13. package/out/src/Wallet.d.ts.map +1 -1
  14. package/out/src/Wallet.js +23 -7
  15. package/out/src/Wallet.js.map +1 -1
  16. package/out/src/WalletPermissionsManager.d.ts +84 -1
  17. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  18. package/out/src/WalletPermissionsManager.js +1045 -214
  19. package/out/src/WalletPermissionsManager.js.map +1 -1
  20. package/out/src/__tests/ShamirWalletManager.test.d.ts +2 -0
  21. package/out/src/__tests/ShamirWalletManager.test.d.ts.map +1 -0
  22. package/out/src/__tests/ShamirWalletManager.test.js +298 -0
  23. package/out/src/__tests/ShamirWalletManager.test.js.map +1 -0
  24. package/out/src/__tests/WalletPermissionsManager.callbacks.test.js +134 -0
  25. package/out/src/__tests/WalletPermissionsManager.callbacks.test.js.map +1 -1
  26. package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts.map +1 -1
  27. package/out/src/__tests/WalletPermissionsManager.fixtures.js +9 -0
  28. package/out/src/__tests/WalletPermissionsManager.fixtures.js.map +1 -1
  29. package/out/src/__tests/WalletPermissionsManager.flows.test.js +121 -0
  30. package/out/src/__tests/WalletPermissionsManager.flows.test.js.map +1 -1
  31. package/out/src/__tests/WalletPermissionsManager.pmodules.test.js +111 -0
  32. package/out/src/__tests/WalletPermissionsManager.pmodules.test.js.map +1 -1
  33. package/out/src/entropy/EntropyCollector.d.ts +89 -0
  34. package/out/src/entropy/EntropyCollector.d.ts.map +1 -0
  35. package/out/src/entropy/EntropyCollector.js +176 -0
  36. package/out/src/entropy/EntropyCollector.js.map +1 -0
  37. package/out/src/entropy/__tests/EntropyCollector.test.d.ts +2 -0
  38. package/out/src/entropy/__tests/EntropyCollector.test.d.ts.map +1 -0
  39. package/out/src/entropy/__tests/EntropyCollector.test.js +137 -0
  40. package/out/src/entropy/__tests/EntropyCollector.test.js.map +1 -0
  41. package/out/src/index.all.d.ts +2 -0
  42. package/out/src/index.all.d.ts.map +1 -1
  43. package/out/src/index.all.js +2 -0
  44. package/out/src/index.all.js.map +1 -1
  45. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  46. package/out/src/sdk/WalletStorage.interfaces.d.ts +3 -3
  47. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  48. package/out/src/services/__tests/getRawTx.test.js +3 -0
  49. package/out/src/services/__tests/getRawTx.test.js.map +1 -1
  50. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +1 -1
  51. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  52. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +4 -1
  53. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  54. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js +3 -1
  55. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js.map +1 -1
  56. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  57. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +1 -2
  58. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  59. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  60. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +12 -0
  61. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  62. package/out/src/storage/StorageProvider.d.ts +16 -2
  63. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  64. package/out/src/storage/StorageProvider.js +33 -4
  65. package/out/src/storage/StorageProvider.js.map +1 -1
  66. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +15 -1
  67. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  68. package/out/src/storage/methods/ListOutputsSpecOp.js +52 -2
  69. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  70. package/out/src/storage/methods/__test/offsetKey.test.js +266 -100
  71. package/out/src/storage/methods/__test/offsetKey.test.js.map +1 -1
  72. package/out/src/storage/methods/getBeefForTransaction.js +1 -1
  73. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  74. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  75. package/out/src/storage/methods/internalizeAction.js +2 -2
  76. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  77. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  78. package/out/src/storage/methods/listOutputsIdb.js +10 -17
  79. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  80. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  81. package/out/src/storage/methods/listOutputsKnex.js +44 -26
  82. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  83. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js +4 -0
  84. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js.map +1 -1
  85. package/out/src/wab-client/WABClient.d.ts +65 -0
  86. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  87. package/out/src/wab-client/WABClient.js +107 -0
  88. package/out/src/wab-client/WABClient.js.map +1 -1
  89. package/package.json +8 -4
  90. package/out/src/sdk/validationHelpers.d.ts +0 -303
  91. package/out/src/sdk/validationHelpers.d.ts.map +0 -1
  92. package/out/src/sdk/validationHelpers.js +0 -632
  93. package/out/src/sdk/validationHelpers.js.map +0 -1
  94. package/out/src/utility/ReaderUint8Array.d.ts +0 -28
  95. package/out/src/utility/ReaderUint8Array.d.ts.map +0 -1
  96. package/out/src/utility/ReaderUint8Array.js +0 -166
  97. package/out/src/utility/ReaderUint8Array.js.map +0 -1
@@ -0,0 +1,213 @@
1
+ /**
2
+ * ShamirWalletManager
3
+ *
4
+ * A wallet manager that uses Shamir Secret Sharing for key recovery
5
+ * instead of password-derived keys and on-chain UMP tokens.
6
+ *
7
+ * Security improvements over CWIStyleWalletManager:
8
+ * - No password enumeration attacks possible (no password-derived keys)
9
+ * - No encrypted key material stored on-chain
10
+ * - Server only holds 1 share (cannot reconstruct alone)
11
+ * - Defense-in-depth with mouse entropy + CSPRNG for key generation
12
+ *
13
+ * Default configuration (2-of-3):
14
+ * - Share 1 (server): Stored on WAB server, released only after OTP verification
15
+ * - Shares 2..n (user): Application decides how to store (print, password manager, etc.)
16
+ *
17
+ * The threshold and total shares are configurable. WAB always stores exactly one share.
18
+ */
19
+ import { PrivateKey, WalletInterface } from '@bsv/sdk';
20
+ import { PrivilegedKeyManager } from './sdk/PrivilegedKeyManager';
21
+ import { EntropyProgressCallback } from './entropy/EntropyCollector';
22
+ /**
23
+ * Result from creating a new Shamir-based wallet
24
+ */
25
+ export interface CreateShamirWalletResult {
26
+ /**
27
+ * User shares to be stored by the application (excludes server share)
28
+ * For 2-of-3: returns 2 shares, server holds 1
29
+ * For 3-of-5: returns 4 shares, server holds 1
30
+ */
31
+ userShares: string[];
32
+ /** Hash of the user's identity key (used for server lookup) */
33
+ userIdHash: string;
34
+ /** The generated private key (for immediate wallet use) */
35
+ privateKey: PrivateKey;
36
+ /** The threshold used (k shares needed to reconstruct) */
37
+ threshold: number;
38
+ /** Total number of shares generated */
39
+ totalShares: number;
40
+ }
41
+ /**
42
+ * Configuration for ShamirWalletManager
43
+ */
44
+ export interface ShamirWalletManagerConfig {
45
+ /** WAB server URL */
46
+ wabServerUrl: string;
47
+ /** Auth method type for OTP verification (e.g., "TwilioPhone") */
48
+ authMethodType: string;
49
+ /** Function to build the underlying wallet from a private key */
50
+ walletBuilder: (privateKey: PrivateKey, privilegedKeyManager: PrivilegedKeyManager) => Promise<WalletInterface>;
51
+ /**
52
+ * Number of shares required to reconstruct the key (default: 2)
53
+ * Must be >= 2 and <= totalShares
54
+ */
55
+ threshold?: number;
56
+ /**
57
+ * Total number of shares to generate (default: 3)
58
+ * WAB server stores 1, application receives (totalShares - 1)
59
+ */
60
+ totalShares?: number;
61
+ }
62
+ /**
63
+ * Callback for handling user shares during wallet creation
64
+ */
65
+ export type ShareStorageCallback = (shares: string[], threshold: number, totalShares: number) => Promise<boolean>;
66
+ export declare class ShamirWalletManager {
67
+ private config;
68
+ private wabClient;
69
+ private entropyCollector;
70
+ private privateKey?;
71
+ private underlying?;
72
+ private userIdHash?;
73
+ private readonly threshold;
74
+ private readonly totalShares;
75
+ constructor(config: ShamirWalletManagerConfig);
76
+ /**
77
+ * Get the configured threshold
78
+ */
79
+ getThreshold(): number;
80
+ /**
81
+ * Get the configured total shares
82
+ */
83
+ getTotalShares(): number;
84
+ /**
85
+ * Reset the entropy collector (e.g., if user wants to start over)
86
+ */
87
+ resetEntropy(): void;
88
+ /**
89
+ * Add a mouse movement sample for entropy collection
90
+ * Call this from your UI's mousemove handler
91
+ */
92
+ addMouseEntropy(x: number, y: number): import("./entropy/EntropyCollector").EntropyProgress | null;
93
+ /**
94
+ * Check if enough entropy has been collected
95
+ */
96
+ hasEnoughEntropy(): boolean;
97
+ /**
98
+ * Get entropy collection progress
99
+ */
100
+ getEntropyProgress(): import("./entropy/EntropyCollector").EntropyProgress;
101
+ /**
102
+ * Collect entropy from browser mouse movements
103
+ * Convenience method that sets up event listeners automatically
104
+ */
105
+ collectEntropyFromBrowser(element?: EventTarget, onProgress?: EntropyProgressCallback): Promise<void>;
106
+ /**
107
+ * Generate a user ID hash from a private key
108
+ * This is used to identify the user on the WAB server without revealing the key
109
+ */
110
+ private generateUserIdHash;
111
+ /**
112
+ * Create a new wallet with Shamir key split
113
+ *
114
+ * Flow:
115
+ * 1. Generate private key from entropy
116
+ * 2. Split into Shamir shares (threshold-of-totalShares)
117
+ * 3. Store first share on WAB server (requires OTP verification)
118
+ * 4. Return remaining shares for application to handle
119
+ *
120
+ * @param authPayload Auth method specific payload (e.g., { phoneNumber: "+1...", otp: "123456" })
121
+ * @param onUserSharesReady Callback when user shares are ready - return true to confirm saved
122
+ * @returns Result containing user shares (server share already stored)
123
+ */
124
+ createNewWallet(authPayload: {
125
+ phoneNumber?: string;
126
+ email?: string;
127
+ otp: string;
128
+ }, onUserSharesReady: ShareStorageCallback): Promise<CreateShamirWalletResult>;
129
+ /**
130
+ * Start OTP verification for share retrieval
131
+ * Call this before recoverWithSharesBC
132
+ */
133
+ startOTPVerification(payload: {
134
+ phoneNumber?: string;
135
+ email?: string;
136
+ }): Promise<void>;
137
+ /**
138
+ * Set the user ID hash for recovery operations
139
+ * This can be computed from Share A or C (both contain the same threshold/integrity)
140
+ */
141
+ setUserIdHash(userIdHash: string): void;
142
+ /**
143
+ * Recover wallet using user shares plus the server share
144
+ * Requires OTP verification to retrieve the server share
145
+ *
146
+ * @param userShares Array of user-held shares (need threshold-1 shares)
147
+ * @param authPayload Contains OTP code and auth method data
148
+ */
149
+ recoverWithServerShare(userShares: string[], authPayload: {
150
+ phoneNumber?: string;
151
+ email?: string;
152
+ otp: string;
153
+ }): Promise<PrivateKey>;
154
+ /**
155
+ * Recover wallet using only user-held shares (no server interaction)
156
+ * Requires at least threshold shares
157
+ *
158
+ * @param userShares Array of user-held shares (need at least threshold shares)
159
+ */
160
+ recoverWithUserShares(userShares: string[]): Promise<PrivateKey>;
161
+ /**
162
+ * Extract threshold from a share (format: x.y.threshold.integrity)
163
+ */
164
+ private getThresholdFromShare;
165
+ /**
166
+ * Build the underlying wallet after key recovery
167
+ */
168
+ buildWallet(): Promise<WalletInterface>;
169
+ /**
170
+ * Get the underlying wallet (must call buildWallet first)
171
+ */
172
+ getWallet(): WalletInterface;
173
+ /**
174
+ * Rotate keys - generate new key and update server share
175
+ * User must save new user shares
176
+ *
177
+ * @param authPayload Contains OTP code and auth method data
178
+ * @param onUserSharesReady Callback when new user shares are ready
179
+ */
180
+ rotateKeys(authPayload: {
181
+ phoneNumber?: string;
182
+ email?: string;
183
+ otp: string;
184
+ }, onUserSharesReady: ShareStorageCallback): Promise<CreateShamirWalletResult>;
185
+ /**
186
+ * Validate Shamir share format
187
+ * Expected format: x.y.threshold.integrity (4 dot-separated parts)
188
+ */
189
+ private validateShareFormat;
190
+ /**
191
+ * Check if the manager has a loaded private key
192
+ */
193
+ hasPrivateKey(): boolean;
194
+ /**
195
+ * Get the user ID hash (for display or storage)
196
+ */
197
+ getUserIdHash(): string | undefined;
198
+ /**
199
+ * Delete the user's account and stored share from the WAB server
200
+ * Requires OTP verification
201
+ *
202
+ * WARNING: This permanently deletes the server share.
203
+ * User must have enough remaining shares to meet the threshold for recovery.
204
+ *
205
+ * @param authPayload Contains OTP code and auth method data
206
+ */
207
+ deleteAccount(authPayload: {
208
+ phoneNumber?: string;
209
+ email?: string;
210
+ otp: string;
211
+ }): Promise<void>;
212
+ }
213
+ //# sourceMappingURL=ShamirWalletManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShamirWalletManager.d.ts","sourceRoot":"","sources":["../../src/ShamirWalletManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,363 @@
1
+ "use strict";
2
+ /**
3
+ * ShamirWalletManager
4
+ *
5
+ * A wallet manager that uses Shamir Secret Sharing for key recovery
6
+ * instead of password-derived keys and on-chain UMP tokens.
7
+ *
8
+ * Security improvements over CWIStyleWalletManager:
9
+ * - No password enumeration attacks possible (no password-derived keys)
10
+ * - No encrypted key material stored on-chain
11
+ * - Server only holds 1 share (cannot reconstruct alone)
12
+ * - Defense-in-depth with mouse entropy + CSPRNG for key generation
13
+ *
14
+ * Default configuration (2-of-3):
15
+ * - Share 1 (server): Stored on WAB server, released only after OTP verification
16
+ * - Shares 2..n (user): Application decides how to store (print, password manager, etc.)
17
+ *
18
+ * The threshold and total shares are configurable. WAB always stores exactly one share.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.ShamirWalletManager = void 0;
22
+ const sdk_1 = require("@bsv/sdk");
23
+ const PrivilegedKeyManager_1 = require("./sdk/PrivilegedKeyManager");
24
+ const WABClient_1 = require("./wab-client/WABClient");
25
+ const EntropyCollector_1 = require("./entropy/EntropyCollector");
26
+ class ShamirWalletManager {
27
+ constructor(config) {
28
+ var _a, _b;
29
+ this.config = config;
30
+ this.wabClient = new WABClient_1.WABClient(config.wabServerUrl);
31
+ this.entropyCollector = new EntropyCollector_1.EntropyCollector();
32
+ // Set defaults and validate
33
+ this.threshold = (_a = config.threshold) !== null && _a !== void 0 ? _a : 2;
34
+ this.totalShares = (_b = config.totalShares) !== null && _b !== void 0 ? _b : 3;
35
+ if (this.threshold < 2) {
36
+ throw new Error('Threshold must be at least 2');
37
+ }
38
+ if (this.totalShares < 3) {
39
+ throw new Error('Total shares must be at least 3');
40
+ }
41
+ // User must have at least threshold shares to recover independently
42
+ // (server holds 1 share, user holds totalShares - 1)
43
+ // This prevents WAB from becoming a custodian
44
+ const userShareCount = this.totalShares - 1;
45
+ if (userShareCount < this.threshold) {
46
+ throw new Error(`User must have at least ${this.threshold} shares to recover independently. ` +
47
+ `With ${this.totalShares} total shares and server holding 1, user only gets ${userShareCount}. ` +
48
+ `Increase totalShares to at least ${this.threshold + 1}.`);
49
+ }
50
+ }
51
+ /**
52
+ * Get the configured threshold
53
+ */
54
+ getThreshold() {
55
+ return this.threshold;
56
+ }
57
+ /**
58
+ * Get the configured total shares
59
+ */
60
+ getTotalShares() {
61
+ return this.totalShares;
62
+ }
63
+ /**
64
+ * Reset the entropy collector (e.g., if user wants to start over)
65
+ */
66
+ resetEntropy() {
67
+ this.entropyCollector.reset();
68
+ }
69
+ /**
70
+ * Add a mouse movement sample for entropy collection
71
+ * Call this from your UI's mousemove handler
72
+ */
73
+ addMouseEntropy(x, y) {
74
+ return this.entropyCollector.addMouseSample(x, y);
75
+ }
76
+ /**
77
+ * Check if enough entropy has been collected
78
+ */
79
+ hasEnoughEntropy() {
80
+ return this.entropyCollector.isComplete();
81
+ }
82
+ /**
83
+ * Get entropy collection progress
84
+ */
85
+ getEntropyProgress() {
86
+ return this.entropyCollector.getProgress();
87
+ }
88
+ /**
89
+ * Collect entropy from browser mouse movements
90
+ * Convenience method that sets up event listeners automatically
91
+ */
92
+ async collectEntropyFromBrowser(element, onProgress) {
93
+ await this.entropyCollector.collectFromBrowser(element, onProgress);
94
+ }
95
+ /**
96
+ * Generate a user ID hash from a private key
97
+ * This is used to identify the user on the WAB server without revealing the key
98
+ */
99
+ generateUserIdHash(privateKey) {
100
+ const publicKey = privateKey.toPublicKey().toString();
101
+ const hash = sdk_1.Hash.sha256(sdk_1.Utils.toArray(publicKey, 'utf8'));
102
+ return sdk_1.Utils.toHex(hash);
103
+ }
104
+ /**
105
+ * Create a new wallet with Shamir key split
106
+ *
107
+ * Flow:
108
+ * 1. Generate private key from entropy
109
+ * 2. Split into Shamir shares (threshold-of-totalShares)
110
+ * 3. Store first share on WAB server (requires OTP verification)
111
+ * 4. Return remaining shares for application to handle
112
+ *
113
+ * @param authPayload Auth method specific payload (e.g., { phoneNumber: "+1...", otp: "123456" })
114
+ * @param onUserSharesReady Callback when user shares are ready - return true to confirm saved
115
+ * @returns Result containing user shares (server share already stored)
116
+ */
117
+ async createNewWallet(authPayload, onUserSharesReady) {
118
+ // 1. Generate private key from entropy (mixed with CSPRNG)
119
+ const entropy = this.entropyCollector.generateEntropy();
120
+ const privateKey = new sdk_1.PrivateKey(Array.from(entropy));
121
+ // 2. Split into Shamir shares
122
+ const shares = privateKey.toBackupShares(this.threshold, this.totalShares);
123
+ // First share goes to server, rest go to user
124
+ const serverShare = shares[0];
125
+ const userShares = shares.slice(1);
126
+ // 3. Generate user ID hash for server identification
127
+ const userIdHash = this.generateUserIdHash(privateKey);
128
+ // 4. Store server share on WAB server (requires OTP verification)
129
+ const storeResult = await this.wabClient.storeShare(this.config.authMethodType, authPayload, serverShare, userIdHash);
130
+ if (!storeResult.success) {
131
+ throw new Error(storeResult.message || 'Failed to store share on server');
132
+ }
133
+ // 5. Present user shares for application to handle
134
+ const sharesSaved = await onUserSharesReady(userShares, this.threshold, this.totalShares);
135
+ if (!sharesSaved) {
136
+ console.warn('User shares may not have been saved. Recovery may be limited.');
137
+ }
138
+ // Store state
139
+ this.privateKey = privateKey;
140
+ this.userIdHash = userIdHash;
141
+ return {
142
+ userShares,
143
+ userIdHash,
144
+ privateKey,
145
+ threshold: this.threshold,
146
+ totalShares: this.totalShares
147
+ };
148
+ }
149
+ /**
150
+ * Start OTP verification for share retrieval
151
+ * Call this before recoverWithSharesBC
152
+ */
153
+ async startOTPVerification(payload) {
154
+ if (!this.userIdHash) {
155
+ throw new Error('User ID hash not set. Call setUserIdHash first for recovery.');
156
+ }
157
+ const result = await this.wabClient.startShareAuth(this.config.authMethodType, this.userIdHash, payload);
158
+ if (!result.success) {
159
+ throw new Error(result.message || 'Failed to start OTP verification');
160
+ }
161
+ }
162
+ /**
163
+ * Set the user ID hash for recovery operations
164
+ * This can be computed from Share A or C (both contain the same threshold/integrity)
165
+ */
166
+ setUserIdHash(userIdHash) {
167
+ this.userIdHash = userIdHash;
168
+ }
169
+ /**
170
+ * Recover wallet using user shares plus the server share
171
+ * Requires OTP verification to retrieve the server share
172
+ *
173
+ * @param userShares Array of user-held shares (need threshold-1 shares)
174
+ * @param authPayload Contains OTP code and auth method data
175
+ */
176
+ async recoverWithServerShare(userShares, authPayload) {
177
+ // Validate share formats
178
+ for (const share of userShares) {
179
+ this.validateShareFormat(share);
180
+ }
181
+ if (!this.userIdHash) {
182
+ throw new Error('User ID hash not set. Call setUserIdHash first.');
183
+ }
184
+ // Need threshold-1 user shares (server provides 1)
185
+ const threshold = this.getThresholdFromShare(userShares[0]);
186
+ if (userShares.length < threshold - 1) {
187
+ throw new Error(`Need at least ${threshold - 1} user shares to recover with server share. Got ${userShares.length}.`);
188
+ }
189
+ // Retrieve server share
190
+ const retrieveResult = await this.wabClient.retrieveShare(this.config.authMethodType, authPayload, this.userIdHash);
191
+ if (!retrieveResult.success || !retrieveResult.shareB) {
192
+ throw new Error(retrieveResult.message || 'Failed to retrieve share from server');
193
+ }
194
+ // Combine server share with user shares
195
+ const allShares = [retrieveResult.shareB, ...userShares.slice(0, threshold - 1)];
196
+ // Reconstruct private key
197
+ const privateKey = sdk_1.PrivateKey.fromBackupShares(allShares);
198
+ // Verify reconstruction by checking user ID hash
199
+ const reconstructedHash = this.generateUserIdHash(privateKey);
200
+ if (reconstructedHash !== this.userIdHash) {
201
+ throw new Error('Share reconstruction failed: integrity check failed');
202
+ }
203
+ this.privateKey = privateKey;
204
+ return privateKey;
205
+ }
206
+ /**
207
+ * Recover wallet using only user-held shares (no server interaction)
208
+ * Requires at least threshold shares
209
+ *
210
+ * @param userShares Array of user-held shares (need at least threshold shares)
211
+ */
212
+ async recoverWithUserShares(userShares) {
213
+ if (userShares.length < 2) {
214
+ throw new Error('Need at least 2 shares to recover');
215
+ }
216
+ // Validate share formats
217
+ for (const share of userShares) {
218
+ this.validateShareFormat(share);
219
+ }
220
+ // Get threshold from share
221
+ const threshold = this.getThresholdFromShare(userShares[0]);
222
+ if (userShares.length < threshold) {
223
+ throw new Error(`Need at least ${threshold} shares to recover. Got ${userShares.length}.`);
224
+ }
225
+ // Reconstruct private key using threshold shares
226
+ const privateKey = sdk_1.PrivateKey.fromBackupShares(userShares.slice(0, threshold));
227
+ // Compute and store user ID hash
228
+ this.userIdHash = this.generateUserIdHash(privateKey);
229
+ this.privateKey = privateKey;
230
+ return privateKey;
231
+ }
232
+ /**
233
+ * Extract threshold from a share (format: x.y.threshold.integrity)
234
+ */
235
+ getThresholdFromShare(share) {
236
+ const parts = share.split('.');
237
+ if (parts.length !== 4) {
238
+ throw new Error('Invalid share format');
239
+ }
240
+ const threshold = parseInt(parts[2], 10);
241
+ if (isNaN(threshold) || threshold < 2) {
242
+ throw new Error('Invalid threshold in share');
243
+ }
244
+ return threshold;
245
+ }
246
+ /**
247
+ * Build the underlying wallet after key recovery
248
+ */
249
+ async buildWallet() {
250
+ if (!this.privateKey) {
251
+ throw new Error('No private key available. Create or recover wallet first.');
252
+ }
253
+ // Create privileged key manager for secure key operations
254
+ const privilegedKeyManager = new PrivilegedKeyManager_1.PrivilegedKeyManager(async () => this.privateKey);
255
+ // Build the wallet
256
+ this.underlying = await this.config.walletBuilder(this.privateKey, privilegedKeyManager);
257
+ return this.underlying;
258
+ }
259
+ /**
260
+ * Get the underlying wallet (must call buildWallet first)
261
+ */
262
+ getWallet() {
263
+ if (!this.underlying) {
264
+ throw new Error('Wallet not built. Call buildWallet first.');
265
+ }
266
+ return this.underlying;
267
+ }
268
+ /**
269
+ * Rotate keys - generate new key and update server share
270
+ * User must save new user shares
271
+ *
272
+ * @param authPayload Contains OTP code and auth method data
273
+ * @param onUserSharesReady Callback when new user shares are ready
274
+ */
275
+ async rotateKeys(authPayload, onUserSharesReady) {
276
+ if (!this.userIdHash) {
277
+ throw new Error('User ID hash not set. Cannot rotate keys.');
278
+ }
279
+ // Require fresh entropy for key rotation
280
+ if (!this.hasEnoughEntropy()) {
281
+ throw new Error('Collect entropy before key rotation');
282
+ }
283
+ // Generate new private key
284
+ const entropy = this.entropyCollector.generateEntropy();
285
+ const newPrivateKey = new sdk_1.PrivateKey(Array.from(entropy));
286
+ // Split into new Shamir shares
287
+ const shares = newPrivateKey.toBackupShares(this.threshold, this.totalShares);
288
+ const serverShare = shares[0];
289
+ const userShares = shares.slice(1);
290
+ // Generate new user ID hash
291
+ const newUserIdHash = this.generateUserIdHash(newPrivateKey);
292
+ // Update server share
293
+ const updateResult = await this.wabClient.updateShare(this.config.authMethodType, authPayload, this.userIdHash, serverShare);
294
+ if (!updateResult.success) {
295
+ throw new Error(updateResult.message || 'Failed to update share on server');
296
+ }
297
+ // Present user shares
298
+ const sharesSaved = await onUserSharesReady(userShares, this.threshold, this.totalShares);
299
+ if (!sharesSaved) {
300
+ console.warn('User shares may not have been saved. Recovery may be limited.');
301
+ }
302
+ // Update state
303
+ this.privateKey = newPrivateKey;
304
+ this.userIdHash = newUserIdHash;
305
+ return {
306
+ userShares,
307
+ userIdHash: newUserIdHash,
308
+ privateKey: newPrivateKey,
309
+ threshold: this.threshold,
310
+ totalShares: this.totalShares
311
+ };
312
+ }
313
+ /**
314
+ * Validate Shamir share format
315
+ * Expected format: x.y.threshold.integrity (4 dot-separated parts)
316
+ */
317
+ validateShareFormat(share) {
318
+ const parts = share.split('.');
319
+ if (parts.length !== 4) {
320
+ throw new Error(`Invalid share format. Expected 4 dot-separated parts, got ${parts.length}`);
321
+ }
322
+ const threshold = parseInt(parts[2], 10);
323
+ if (isNaN(threshold) || threshold < 2) {
324
+ throw new Error('Invalid share: threshold must be at least 2');
325
+ }
326
+ }
327
+ /**
328
+ * Check if the manager has a loaded private key
329
+ */
330
+ hasPrivateKey() {
331
+ return this.privateKey !== undefined;
332
+ }
333
+ /**
334
+ * Get the user ID hash (for display or storage)
335
+ */
336
+ getUserIdHash() {
337
+ return this.userIdHash;
338
+ }
339
+ /**
340
+ * Delete the user's account and stored share from the WAB server
341
+ * Requires OTP verification
342
+ *
343
+ * WARNING: This permanently deletes the server share.
344
+ * User must have enough remaining shares to meet the threshold for recovery.
345
+ *
346
+ * @param authPayload Contains OTP code and auth method data
347
+ */
348
+ async deleteAccount(authPayload) {
349
+ if (!this.userIdHash) {
350
+ throw new Error('User ID hash not set. Cannot delete account.');
351
+ }
352
+ const result = await this.wabClient.deleteShamirUser(this.config.authMethodType, authPayload, this.userIdHash);
353
+ if (!result.success) {
354
+ throw new Error(result.message || 'Failed to delete account');
355
+ }
356
+ // Clear local state
357
+ this.privateKey = undefined;
358
+ this.userIdHash = undefined;
359
+ this.underlying = undefined;
360
+ }
361
+ }
362
+ exports.ShamirWalletManager = ShamirWalletManager;
363
+ //# sourceMappingURL=ShamirWalletManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShamirWalletManager.js","sourceRoot":"","sources":["../../src/ShamirWalletManager.ts"],"names":[],"mappings":"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"}
@@ -147,7 +147,7 @@ export declare class Wallet implements WalletInterface, ProtoWallet {
147
147
  *
148
148
  * @returns {number} sum of output satoshis
149
149
  */
150
- balance(): Promise<number>;
150
+ balance(args?: ListOutputsArgs): Promise<number>;
151
151
  /**
152
152
  * Uses `listOutputs` special operation to review the spendability via `Services` of
153
153
  * outputs currently considered spendable. Returns the outputs that fail to verify.
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../src/Wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../src/Wallet.ts"],"names":[],"mappings":"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"}