@shadow-corp/nearconnect 1.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 (179) hide show
  1. package/README.md +546 -0
  2. package/build/InjectedWallet.d.ts +22 -0
  3. package/build/InjectedWallet.js +58 -0
  4. package/build/InjectedWallet.js.map +1 -0
  5. package/build/NearConnector.d.ts +151 -0
  6. package/build/NearConnector.js +536 -0
  7. package/build/NearConnector.js.map +1 -0
  8. package/build/ParentFrameWallet.d.ts +22 -0
  9. package/build/ParentFrameWallet.js +66 -0
  10. package/build/ParentFrameWallet.js.map +1 -0
  11. package/build/SandboxedWallet/code.d.ts +7 -0
  12. package/build/SandboxedWallet/code.js +324 -0
  13. package/build/SandboxedWallet/code.js.map +1 -0
  14. package/build/SandboxedWallet/executor.d.ts +23 -0
  15. package/build/SandboxedWallet/executor.js +338 -0
  16. package/build/SandboxedWallet/executor.js.map +1 -0
  17. package/build/SandboxedWallet/iframe.d.ts +18 -0
  18. package/build/SandboxedWallet/iframe.js +78 -0
  19. package/build/SandboxedWallet/iframe.js.map +1 -0
  20. package/build/SandboxedWallet/index.d.ts +24 -0
  21. package/build/SandboxedWallet/index.js +54 -0
  22. package/build/SandboxedWallet/index.js.map +1 -0
  23. package/build/actions/index.d.ts +3 -0
  24. package/build/actions/index.js +105 -0
  25. package/build/actions/index.js.map +1 -0
  26. package/build/actions/types.d.ts +76 -0
  27. package/build/actions/types.js +3 -0
  28. package/build/actions/types.js.map +1 -0
  29. package/build/connection/health.d.ts +213 -0
  30. package/build/connection/health.js +391 -0
  31. package/build/connection/health.js.map +1 -0
  32. package/build/connection/index.d.ts +4 -0
  33. package/build/connection/index.js +48 -0
  34. package/build/connection/index.js.map +1 -0
  35. package/build/connection/reconnect.d.ts +261 -0
  36. package/build/connection/reconnect.js +454 -0
  37. package/build/connection/reconnect.js.map +1 -0
  38. package/build/connection/retry.d.ts +187 -0
  39. package/build/connection/retry.js +427 -0
  40. package/build/connection/retry.js.map +1 -0
  41. package/build/connection/state.d.ts +222 -0
  42. package/build/connection/state.js +431 -0
  43. package/build/connection/state.js.map +1 -0
  44. package/build/errors.d.ts +177 -0
  45. package/build/errors.js +546 -0
  46. package/build/errors.js.map +1 -0
  47. package/build/hardware/errors.d.ts +36 -0
  48. package/build/hardware/errors.js +127 -0
  49. package/build/hardware/errors.js.map +1 -0
  50. package/build/hardware/index.d.ts +7 -0
  51. package/build/hardware/index.js +39 -0
  52. package/build/hardware/index.js.map +1 -0
  53. package/build/hardware/near-app.d.ts +95 -0
  54. package/build/hardware/near-app.js +291 -0
  55. package/build/hardware/near-app.js.map +1 -0
  56. package/build/hardware/transport.d.ts +94 -0
  57. package/build/hardware/transport.js +267 -0
  58. package/build/hardware/transport.js.map +1 -0
  59. package/build/hardware/types.d.ts +98 -0
  60. package/build/hardware/types.js +72 -0
  61. package/build/hardware/types.js.map +1 -0
  62. package/build/helpers/analytics.d.ts +191 -0
  63. package/build/helpers/analytics.js +304 -0
  64. package/build/helpers/analytics.js.map +1 -0
  65. package/build/helpers/base58.d.ts +6 -0
  66. package/build/helpers/base58.js +47 -0
  67. package/build/helpers/base58.js.map +1 -0
  68. package/build/helpers/events.d.ts +42 -0
  69. package/build/helpers/events.js +68 -0
  70. package/build/helpers/events.js.map +1 -0
  71. package/build/helpers/html.d.ts +8 -0
  72. package/build/helpers/html.js +30 -0
  73. package/build/helpers/html.js.map +1 -0
  74. package/build/helpers/indexdb.d.ts +14 -0
  75. package/build/helpers/indexdb.js +166 -0
  76. package/build/helpers/indexdb.js.map +1 -0
  77. package/build/helpers/manifest.d.ts +147 -0
  78. package/build/helpers/manifest.js +329 -0
  79. package/build/helpers/manifest.js.map +1 -0
  80. package/build/helpers/queue.d.ts +11 -0
  81. package/build/helpers/queue.js +48 -0
  82. package/build/helpers/queue.js.map +1 -0
  83. package/build/helpers/session.d.ts +119 -0
  84. package/build/helpers/session.js +289 -0
  85. package/build/helpers/session.js.map +1 -0
  86. package/build/helpers/simulation.d.ts +128 -0
  87. package/build/helpers/simulation.js +441 -0
  88. package/build/helpers/simulation.js.map +1 -0
  89. package/build/helpers/storage.d.ts +58 -0
  90. package/build/helpers/storage.js +190 -0
  91. package/build/helpers/storage.js.map +1 -0
  92. package/build/helpers/trust.d.ts +157 -0
  93. package/build/helpers/trust.js +340 -0
  94. package/build/helpers/trust.js.map +1 -0
  95. package/build/helpers/url.d.ts +1 -0
  96. package/build/helpers/url.js +13 -0
  97. package/build/helpers/url.js.map +1 -0
  98. package/build/helpers/uuid.d.ts +1 -0
  99. package/build/helpers/uuid.js +14 -0
  100. package/build/helpers/uuid.js.map +1 -0
  101. package/build/index.d.ts +21 -0
  102. package/build/index.js +167 -0
  103. package/build/index.js.map +1 -0
  104. package/build/popups/IframeWalletPopup.d.ts +16 -0
  105. package/build/popups/IframeWalletPopup.js +38 -0
  106. package/build/popups/IframeWalletPopup.js.map +1 -0
  107. package/build/popups/NearWalletsPopup.d.ts +25 -0
  108. package/build/popups/NearWalletsPopup.js +153 -0
  109. package/build/popups/NearWalletsPopup.js.map +1 -0
  110. package/build/popups/Popup.d.ts +22 -0
  111. package/build/popups/Popup.js +94 -0
  112. package/build/popups/Popup.js.map +1 -0
  113. package/build/popups/styles.d.ts +1 -0
  114. package/build/popups/styles.js +257 -0
  115. package/build/popups/styles.js.map +1 -0
  116. package/build/security/audit-log.d.ts +123 -0
  117. package/build/security/audit-log.js +268 -0
  118. package/build/security/audit-log.js.map +1 -0
  119. package/build/security/csp.d.ts +68 -0
  120. package/build/security/csp.js +328 -0
  121. package/build/security/csp.js.map +1 -0
  122. package/build/security/index.d.ts +10 -0
  123. package/build/security/index.js +42 -0
  124. package/build/security/index.js.map +1 -0
  125. package/build/security/origin-guard.d.ts +90 -0
  126. package/build/security/origin-guard.js +244 -0
  127. package/build/security/origin-guard.js.map +1 -0
  128. package/build/security/rate-limiter.d.ts +84 -0
  129. package/build/security/rate-limiter.js +212 -0
  130. package/build/security/rate-limiter.js.map +1 -0
  131. package/build/security/secure-storage.d.ts +77 -0
  132. package/build/security/secure-storage.js +242 -0
  133. package/build/security/secure-storage.js.map +1 -0
  134. package/build/security/transaction-guard.d.ts +71 -0
  135. package/build/security/transaction-guard.js +239 -0
  136. package/build/security/transaction-guard.js.map +1 -0
  137. package/build/types.d.ts +508 -0
  138. package/build/types.js +3 -0
  139. package/build/types.js.map +1 -0
  140. package/build/ui/AccountSwitcherModal.d.ts +53 -0
  141. package/build/ui/AccountSwitcherModal.js +239 -0
  142. package/build/ui/AccountSwitcherModal.js.map +1 -0
  143. package/build/ui/Modal.d.ts +84 -0
  144. package/build/ui/Modal.js +278 -0
  145. package/build/ui/Modal.js.map +1 -0
  146. package/build/ui/TransactionModal.d.ts +84 -0
  147. package/build/ui/TransactionModal.js +406 -0
  148. package/build/ui/TransactionModal.js.map +1 -0
  149. package/build/ui/WalletSelectorModal.d.ts +97 -0
  150. package/build/ui/WalletSelectorModal.js +481 -0
  151. package/build/ui/WalletSelectorModal.js.map +1 -0
  152. package/build/ui/icons.d.ts +19 -0
  153. package/build/ui/icons.js +65 -0
  154. package/build/ui/icons.js.map +1 -0
  155. package/build/ui/index.d.ts +10 -0
  156. package/build/ui/index.js +31 -0
  157. package/build/ui/index.js.map +1 -0
  158. package/build/ui/styles.d.ts +5 -0
  159. package/build/ui/styles.js +973 -0
  160. package/build/ui/styles.js.map +1 -0
  161. package/build/ui/theme.d.ts +133 -0
  162. package/build/ui/theme.js +204 -0
  163. package/build/ui/theme.js.map +1 -0
  164. package/build/wallets/external/index.d.ts +4 -0
  165. package/build/wallets/external/index.js +9 -0
  166. package/build/wallets/external/index.js.map +1 -0
  167. package/build/wallets/external/manager.d.ts +152 -0
  168. package/build/wallets/external/manager.js +586 -0
  169. package/build/wallets/external/manager.js.map +1 -0
  170. package/build/wallets/privileged/index.d.ts +5 -0
  171. package/build/wallets/privileged/index.js +12 -0
  172. package/build/wallets/privileged/index.js.map +1 -0
  173. package/build/wallets/privileged/ledger.d.ts +132 -0
  174. package/build/wallets/privileged/ledger.js +563 -0
  175. package/build/wallets/privileged/ledger.js.map +1 -0
  176. package/build/wallets/privileged/manager.d.ts +54 -0
  177. package/build/wallets/privileged/manager.js +174 -0
  178. package/build/wallets/privileged/manager.js.map +1 -0
  179. package/package.json +33 -0
@@ -0,0 +1,431 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectionStateMachine = exports.DEFAULT_STATE_MACHINE_CONFIG = void 0;
4
+ exports.createStateMachine = createStateMachine;
5
+ exports.getStatusDescription = getStatusDescription;
6
+ const errors_1 = require("../errors");
7
+ /**
8
+ * Valid state transitions
9
+ */
10
+ const VALID_TRANSITIONS = {
11
+ idle: ["detecting", "connecting"],
12
+ detecting: ["connecting", "error", "idle"],
13
+ connecting: ["authenticating", "connected", "error", "idle"],
14
+ authenticating: ["connected", "error", "idle"],
15
+ connected: ["signing", "disconnecting", "reconnecting", "error"],
16
+ signing: ["connected", "error"],
17
+ reconnecting: ["connected", "error", "idle"],
18
+ disconnecting: ["idle", "error"],
19
+ error: ["idle", "connecting", "reconnecting"],
20
+ };
21
+ /**
22
+ * Default state machine configuration
23
+ */
24
+ exports.DEFAULT_STATE_MACHINE_CONFIG = {
25
+ maxHistorySize: 50,
26
+ persistState: false,
27
+ storageKey: "near-connect:state",
28
+ stateExpiration: 24 * 60 * 60 * 1000, // 24 hours
29
+ };
30
+ /**
31
+ * Connection State Machine
32
+ *
33
+ * Manages connection lifecycle with proper state transitions
34
+ */
35
+ class ConnectionStateMachine {
36
+ state = { status: "idle" };
37
+ history = [];
38
+ config;
39
+ listeners = {
40
+ enter: new Map(),
41
+ exit: new Map(),
42
+ transition: new Set(),
43
+ };
44
+ constructor(config = {}) {
45
+ this.config = { ...exports.DEFAULT_STATE_MACHINE_CONFIG, ...config };
46
+ this.restoreState();
47
+ }
48
+ /**
49
+ * Get current state
50
+ */
51
+ get current() {
52
+ return this.state;
53
+ }
54
+ /**
55
+ * Get current status (convenience getter)
56
+ */
57
+ get status() {
58
+ return this.state.status;
59
+ }
60
+ /**
61
+ * Check if currently in a specific status
62
+ */
63
+ is(status) {
64
+ return this.state.status === status;
65
+ }
66
+ /**
67
+ * Check if in any of the given statuses
68
+ */
69
+ isAnyOf(...statuses) {
70
+ return statuses.includes(this.state.status);
71
+ }
72
+ /**
73
+ * Check if a transition is valid
74
+ */
75
+ canTransition(to) {
76
+ return VALID_TRANSITIONS[this.state.status]?.includes(to) ?? false;
77
+ }
78
+ /**
79
+ * Transition to a new state
80
+ */
81
+ transition(to, reason) {
82
+ const from = this.state;
83
+ // Validate transition
84
+ if (!this.canTransition(to.status)) {
85
+ this.config.onInvalidTransition?.(from.status, to.status);
86
+ throw new errors_1.WalletError({
87
+ code: errors_1.ErrorCode.UNKNOWN_ERROR,
88
+ message: `Invalid state transition from ${from.status} to ${to.status}`,
89
+ });
90
+ }
91
+ // Exit callbacks for old state
92
+ const exitListeners = this.listeners.exit.get(from.status);
93
+ if (exitListeners) {
94
+ for (const listener of exitListeners) {
95
+ try {
96
+ listener(from);
97
+ }
98
+ catch (e) {
99
+ console.error("Error in exit listener:", e);
100
+ }
101
+ }
102
+ }
103
+ // Update state
104
+ this.state = to;
105
+ // Record history
106
+ this.recordHistory(from, to, reason);
107
+ // Enter callbacks for new state
108
+ const enterListeners = this.listeners.enter.get(to.status);
109
+ if (enterListeners) {
110
+ for (const listener of enterListeners) {
111
+ try {
112
+ listener(to);
113
+ }
114
+ catch (e) {
115
+ console.error("Error in enter listener:", e);
116
+ }
117
+ }
118
+ }
119
+ // Transition callbacks
120
+ for (const listener of this.listeners.transition) {
121
+ try {
122
+ listener(from, to);
123
+ }
124
+ catch (e) {
125
+ console.error("Error in transition listener:", e);
126
+ }
127
+ }
128
+ // Config callback
129
+ this.config.onStateChange?.(from, to);
130
+ // Persist state
131
+ if (this.config.persistState) {
132
+ this.persistState();
133
+ }
134
+ }
135
+ /**
136
+ * Convenience methods for common transitions
137
+ */
138
+ toDetecting(walletId) {
139
+ this.transition({ status: "detecting", walletId, startedAt: Date.now() });
140
+ }
141
+ toConnecting(walletId) {
142
+ this.transition({ status: "connecting", walletId, startedAt: Date.now() });
143
+ }
144
+ toAuthenticating(walletId) {
145
+ this.transition({ status: "authenticating", walletId, startedAt: Date.now() });
146
+ }
147
+ toConnected(walletId, accounts) {
148
+ this.transition({ status: "connected", walletId, accounts, connectedAt: Date.now() });
149
+ }
150
+ toSigning(walletId, operation) {
151
+ this.transition({ status: "signing", walletId, operation, startedAt: Date.now() });
152
+ }
153
+ toReconnecting(walletId, attempt = 1) {
154
+ this.transition({ status: "reconnecting", walletId, attempt, startedAt: Date.now() });
155
+ }
156
+ toDisconnecting(walletId) {
157
+ this.transition({ status: "disconnecting", walletId, startedAt: Date.now() });
158
+ }
159
+ toError(error, walletId) {
160
+ this.transition({ status: "error", walletId, error, occurredAt: Date.now() });
161
+ }
162
+ toIdle() {
163
+ this.transition({ status: "idle" });
164
+ }
165
+ /**
166
+ * Reset to idle state (bypasses transition validation)
167
+ */
168
+ reset() {
169
+ const from = this.state;
170
+ this.state = { status: "idle" };
171
+ this.recordHistory(from, this.state, "reset");
172
+ if (this.config.persistState) {
173
+ this.clearPersistedState();
174
+ }
175
+ }
176
+ /**
177
+ * Record state transition in history
178
+ */
179
+ recordHistory(from, to, reason) {
180
+ this.history.push({
181
+ from,
182
+ to,
183
+ timestamp: Date.now(),
184
+ reason,
185
+ });
186
+ // Trim history if needed
187
+ if (this.history.length > this.config.maxHistorySize) {
188
+ this.history = this.history.slice(-this.config.maxHistorySize);
189
+ }
190
+ }
191
+ /**
192
+ * Get state history
193
+ */
194
+ getHistory() {
195
+ return [...this.history];
196
+ }
197
+ /**
198
+ * Get last N history entries
199
+ */
200
+ getRecentHistory(count = 10) {
201
+ return this.history.slice(-count);
202
+ }
203
+ /**
204
+ * Clear history
205
+ */
206
+ clearHistory() {
207
+ this.history = [];
208
+ }
209
+ /**
210
+ * Register callback for entering a state
211
+ */
212
+ onEnter(status, callback) {
213
+ if (!this.listeners.enter.has(status)) {
214
+ this.listeners.enter.set(status, new Set());
215
+ }
216
+ this.listeners.enter.get(status).add(callback);
217
+ return () => {
218
+ this.listeners.enter.get(status)?.delete(callback);
219
+ };
220
+ }
221
+ /**
222
+ * Register callback for exiting a state
223
+ */
224
+ onExit(status, callback) {
225
+ if (!this.listeners.exit.has(status)) {
226
+ this.listeners.exit.set(status, new Set());
227
+ }
228
+ this.listeners.exit.get(status).add(callback);
229
+ return () => {
230
+ this.listeners.exit.get(status)?.delete(callback);
231
+ };
232
+ }
233
+ /**
234
+ * Register callback for any transition
235
+ */
236
+ onTransition(callback) {
237
+ this.listeners.transition.add(callback);
238
+ return () => {
239
+ this.listeners.transition.delete(callback);
240
+ };
241
+ }
242
+ /**
243
+ * Get connected wallet ID if in connected state
244
+ */
245
+ getConnectedWalletId() {
246
+ if (this.state.status === "connected") {
247
+ return this.state.walletId;
248
+ }
249
+ return null;
250
+ }
251
+ /**
252
+ * Get connected accounts if in connected state
253
+ */
254
+ getConnectedAccounts() {
255
+ if (this.state.status === "connected") {
256
+ return this.state.accounts;
257
+ }
258
+ return [];
259
+ }
260
+ /**
261
+ * Get error if in error state
262
+ */
263
+ getError() {
264
+ if (this.state.status === "error") {
265
+ return this.state.error;
266
+ }
267
+ return null;
268
+ }
269
+ /**
270
+ * Get time spent in current state
271
+ */
272
+ getTimeInCurrentState() {
273
+ const stateWithTime = this.state;
274
+ const startTime = stateWithTime.startedAt ?? stateWithTime.connectedAt ?? stateWithTime.occurredAt;
275
+ if (!startTime)
276
+ return 0;
277
+ return Date.now() - startTime;
278
+ }
279
+ /**
280
+ * Check if current state has timed out
281
+ */
282
+ hasTimedOut(timeoutMs) {
283
+ return this.getTimeInCurrentState() > timeoutMs;
284
+ }
285
+ /**
286
+ * Persist state to storage
287
+ */
288
+ persistState() {
289
+ if (typeof localStorage === "undefined")
290
+ return;
291
+ try {
292
+ const data = {
293
+ state: this.state,
294
+ timestamp: Date.now(),
295
+ };
296
+ localStorage.setItem(this.config.storageKey, JSON.stringify(data));
297
+ }
298
+ catch (e) {
299
+ console.warn("Failed to persist state:", e);
300
+ }
301
+ }
302
+ /**
303
+ * Restore state from storage
304
+ */
305
+ restoreState() {
306
+ if (!this.config.persistState || typeof localStorage === "undefined")
307
+ return;
308
+ try {
309
+ const raw = localStorage.getItem(this.config.storageKey);
310
+ if (!raw)
311
+ return;
312
+ const data = JSON.parse(raw);
313
+ // Check expiration
314
+ if (Date.now() - data.timestamp > this.config.stateExpiration) {
315
+ this.clearPersistedState();
316
+ return;
317
+ }
318
+ // Only restore "connected" state (others are transient)
319
+ if (data.state.status === "connected") {
320
+ this.state = data.state;
321
+ }
322
+ }
323
+ catch (e) {
324
+ console.warn("Failed to restore state:", e);
325
+ this.clearPersistedState();
326
+ }
327
+ }
328
+ /**
329
+ * Clear persisted state
330
+ */
331
+ clearPersistedState() {
332
+ if (typeof localStorage === "undefined")
333
+ return;
334
+ try {
335
+ localStorage.removeItem(this.config.storageKey);
336
+ }
337
+ catch (e) {
338
+ console.warn("Failed to clear persisted state:", e);
339
+ }
340
+ }
341
+ /**
342
+ * Create a snapshot of current state
343
+ */
344
+ snapshot() {
345
+ return {
346
+ state: { ...this.state },
347
+ history: this.getHistory(),
348
+ timestamp: Date.now(),
349
+ };
350
+ }
351
+ /**
352
+ * Check if currently processing (not idle or connected)
353
+ */
354
+ isProcessing() {
355
+ return !["idle", "connected"].includes(this.state.status);
356
+ }
357
+ /**
358
+ * Check if in a stable state (idle or connected)
359
+ */
360
+ isStable() {
361
+ return ["idle", "connected"].includes(this.state.status);
362
+ }
363
+ /**
364
+ * Wait for state to become stable
365
+ */
366
+ async waitForStable(timeoutMs = 30000) {
367
+ if (this.isStable()) {
368
+ return this.state;
369
+ }
370
+ return new Promise((resolve, reject) => {
371
+ const timeoutId = setTimeout(() => {
372
+ unsubscribe();
373
+ reject(new errors_1.WalletError({
374
+ code: errors_1.ErrorCode.CONNECTION_TIMEOUT,
375
+ message: "Timed out waiting for stable state",
376
+ }));
377
+ }, timeoutMs);
378
+ const unsubscribe = this.onTransition((_, to) => {
379
+ if (["idle", "connected", "error"].includes(to.status)) {
380
+ clearTimeout(timeoutId);
381
+ unsubscribe();
382
+ resolve(to);
383
+ }
384
+ });
385
+ });
386
+ }
387
+ /**
388
+ * Cleanup
389
+ */
390
+ destroy() {
391
+ this.listeners.enter.clear();
392
+ this.listeners.exit.clear();
393
+ this.listeners.transition.clear();
394
+ this.history = [];
395
+ }
396
+ }
397
+ exports.ConnectionStateMachine = ConnectionStateMachine;
398
+ /**
399
+ * Create a simple state machine instance
400
+ */
401
+ function createStateMachine(config) {
402
+ return new ConnectionStateMachine(config);
403
+ }
404
+ /**
405
+ * Get human-readable status description
406
+ */
407
+ function getStatusDescription(status) {
408
+ switch (status) {
409
+ case "idle":
410
+ return "Not connected";
411
+ case "detecting":
412
+ return "Detecting wallet";
413
+ case "connecting":
414
+ return "Connecting to wallet";
415
+ case "authenticating":
416
+ return "Waiting for approval";
417
+ case "connected":
418
+ return "Connected";
419
+ case "signing":
420
+ return "Signing transaction";
421
+ case "reconnecting":
422
+ return "Reconnecting";
423
+ case "disconnecting":
424
+ return "Disconnecting";
425
+ case "error":
426
+ return "Error occurred";
427
+ default:
428
+ return "Unknown";
429
+ }
430
+ }
431
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/connection/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Error codes for wallet connection errors
3
+ */
4
+ export declare enum ErrorCode {
5
+ WALLET_NOT_FOUND = "WALLET_NOT_FOUND",
6
+ EXTENSION_NOT_INSTALLED = "EXTENSION_NOT_INSTALLED",
7
+ EXTENSION_LOCKED = "EXTENSION_LOCKED",
8
+ USER_REJECTED = "USER_REJECTED",
9
+ CONNECTION_TIMEOUT = "CONNECTION_TIMEOUT",
10
+ NETWORK_MISMATCH = "NETWORK_MISMATCH",
11
+ NETWORK_ERROR = "NETWORK_ERROR",
12
+ RPC_ERROR = "RPC_ERROR",
13
+ SESSION_EXPIRED = "SESSION_EXPIRED",
14
+ SESSION_INVALID = "SESSION_INVALID",
15
+ NO_ACTIVE_SESSION = "NO_ACTIVE_SESSION",
16
+ TRANSACTION_FAILED = "TRANSACTION_FAILED",
17
+ INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS",
18
+ INVALID_TRANSACTION = "INVALID_TRANSACTION",
19
+ GAS_EXCEEDED = "GAS_EXCEEDED",
20
+ SANDBOX_BLOCKED = "SANDBOX_BLOCKED",
21
+ SANDBOX_TIMEOUT = "SANDBOX_TIMEOUT",
22
+ EXECUTOR_LOAD_FAILED = "EXECUTOR_LOAD_FAILED",
23
+ SIGN_MESSAGE_FAILED = "SIGN_MESSAGE_FAILED",
24
+ SIGN_TRANSACTION_FAILED = "SIGN_TRANSACTION_FAILED",
25
+ NO_ACCOUNTS = "NO_ACCOUNTS",
26
+ ACCOUNT_NOT_FOUND = "ACCOUNT_NOT_FOUND",
27
+ MANIFEST_LOAD_FAILED = "MANIFEST_LOAD_FAILED",
28
+ INVALID_MANIFEST = "INVALID_MANIFEST",
29
+ UNKNOWN_ERROR = "UNKNOWN_ERROR"
30
+ }
31
+ /**
32
+ * Recovery actions that can be suggested to users
33
+ */
34
+ export type RecoveryAction = "install" | "unlock" | "retry" | "switch_network" | "reconnect" | "clear_session" | "select_different_wallet" | "check_balance" | "contact_support" | "open_app" | "refresh";
35
+ /**
36
+ * Recovery option with action and metadata
37
+ */
38
+ export interface RecoveryOption {
39
+ action: RecoveryAction;
40
+ label: string;
41
+ description?: string;
42
+ url?: string;
43
+ handler?: () => Promise<void>;
44
+ }
45
+ /**
46
+ * Base error class for all wallet connection errors
47
+ */
48
+ export declare class WalletError extends Error {
49
+ readonly code: ErrorCode;
50
+ readonly walletId?: string;
51
+ readonly userMessage: string;
52
+ readonly recoveryOptions: RecoveryOption[];
53
+ readonly originalError?: Error;
54
+ readonly timestamp: number;
55
+ constructor(options: {
56
+ code: ErrorCode;
57
+ message: string;
58
+ userMessage?: string;
59
+ walletId?: string;
60
+ recoveryOptions?: RecoveryOption[];
61
+ originalError?: Error;
62
+ });
63
+ private getDefaultUserMessage;
64
+ private getDefaultRecoveryOptions;
65
+ /**
66
+ * Check if the error is recoverable
67
+ */
68
+ get isRecoverable(): boolean;
69
+ /**
70
+ * Check if the error was caused by user action
71
+ */
72
+ get isUserAction(): boolean;
73
+ /**
74
+ * Serialize error for logging/analytics
75
+ */
76
+ toJSON(): Record<string, unknown>;
77
+ }
78
+ /**
79
+ * Specific error classes for common scenarios
80
+ */
81
+ export declare class WalletNotFoundError extends WalletError {
82
+ constructor(walletId: string, installUrl?: string);
83
+ }
84
+ export declare class UserRejectedError extends WalletError {
85
+ constructor(walletId?: string, action?: string);
86
+ }
87
+ export declare class ConnectionTimeoutError extends WalletError {
88
+ constructor(walletId?: string, timeoutMs?: number);
89
+ }
90
+ export declare class NetworkMismatchError extends WalletError {
91
+ readonly expectedNetwork: string;
92
+ readonly actualNetwork?: string;
93
+ constructor(expectedNetwork: string, actualNetwork?: string, walletId?: string);
94
+ }
95
+ export declare class TransactionError extends WalletError {
96
+ readonly transactionHash?: string;
97
+ constructor(options: {
98
+ code?: ErrorCode;
99
+ message: string;
100
+ walletId?: string;
101
+ transactionHash?: string;
102
+ originalError?: Error;
103
+ });
104
+ }
105
+ export declare class SessionError extends WalletError {
106
+ constructor(code: ErrorCode.SESSION_EXPIRED | ErrorCode.SESSION_INVALID | ErrorCode.NO_ACTIVE_SESSION, walletId?: string);
107
+ }
108
+ export declare class SandboxError extends WalletError {
109
+ constructor(code: ErrorCode.SANDBOX_BLOCKED | ErrorCode.SANDBOX_TIMEOUT | ErrorCode.EXECUTOR_LOAD_FAILED, walletId?: string, originalError?: Error);
110
+ }
111
+ export declare class SigningError extends WalletError {
112
+ readonly action: "message" | "transaction";
113
+ constructor(options: {
114
+ action: "message" | "transaction";
115
+ message: string;
116
+ walletId?: string;
117
+ originalError?: Error;
118
+ });
119
+ }
120
+ export declare class RpcError extends WalletError {
121
+ readonly endpoint?: string;
122
+ readonly statusCode?: number;
123
+ constructor(options: {
124
+ message: string;
125
+ endpoint?: string;
126
+ statusCode?: number;
127
+ originalError?: Error;
128
+ });
129
+ }
130
+ export declare class ManifestError extends WalletError {
131
+ readonly manifestUrl?: string;
132
+ constructor(options: {
133
+ code: ErrorCode.MANIFEST_LOAD_FAILED | ErrorCode.INVALID_MANIFEST;
134
+ message: string;
135
+ manifestUrl?: string;
136
+ originalError?: Error;
137
+ });
138
+ }
139
+ /**
140
+ * Type guard to check if an error is a WalletError
141
+ */
142
+ export declare function isWalletError(error: unknown): error is WalletError;
143
+ /**
144
+ * Type guard to check if error has a specific code
145
+ */
146
+ export declare function hasErrorCode<C extends ErrorCode>(error: unknown, code: C): error is WalletError & {
147
+ code: C;
148
+ };
149
+ /**
150
+ * Serialized error format for storage/transmission
151
+ */
152
+ export interface SerializedWalletError {
153
+ name: string;
154
+ code: ErrorCode;
155
+ message: string;
156
+ userMessage: string;
157
+ walletId?: string;
158
+ recoveryOptions: RecoveryAction[];
159
+ timestamp: number;
160
+ originalMessage?: string;
161
+ }
162
+ /**
163
+ * Deserialize a WalletError from JSON
164
+ */
165
+ export declare function deserializeError(data: SerializedWalletError): WalletError;
166
+ /**
167
+ * Helper to wrap unknown errors with improved pattern detection
168
+ */
169
+ export declare function wrapError(error: unknown, walletId?: string): WalletError;
170
+ /**
171
+ * Get a user-friendly message for any error
172
+ */
173
+ export declare function getUserFriendlyMessage(error: unknown): string;
174
+ /**
175
+ * Get recovery options for any error
176
+ */
177
+ export declare function getRecoveryOptions(error: unknown): RecoveryOption[];