@aibtc/mcp-server 1.42.4 → 1.44.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 (34) hide show
  1. package/dist/services/nonce-tracker.d.ts +135 -0
  2. package/dist/services/nonce-tracker.d.ts.map +1 -0
  3. package/dist/services/nonce-tracker.js +315 -0
  4. package/dist/services/nonce-tracker.js.map +1 -0
  5. package/dist/services/wallet-manager.d.ts +1 -1
  6. package/dist/services/wallet-manager.d.ts.map +1 -1
  7. package/dist/services/wallet-manager.js +10 -10
  8. package/dist/services/wallet-manager.js.map +1 -1
  9. package/dist/tools/inbox.tools.js +23 -18
  10. package/dist/tools/inbox.tools.js.map +1 -1
  11. package/dist/tools/index.d.ts.map +1 -1
  12. package/dist/tools/index.js +3 -0
  13. package/dist/tools/index.js.map +1 -1
  14. package/dist/tools/news.tools.d.ts +2 -1
  15. package/dist/tools/news.tools.d.ts.map +1 -1
  16. package/dist/tools/news.tools.js +87 -1
  17. package/dist/tools/news.tools.js.map +1 -1
  18. package/dist/tools/nonce.tools.d.ts +11 -0
  19. package/dist/tools/nonce.tools.d.ts.map +1 -0
  20. package/dist/tools/nonce.tools.js +222 -0
  21. package/dist/tools/nonce.tools.js.map +1 -0
  22. package/dist/tools/skill-mappings.d.ts.map +1 -1
  23. package/dist/tools/skill-mappings.js +1 -0
  24. package/dist/tools/skill-mappings.js.map +1 -1
  25. package/dist/tools/wallet-management.tools.js +1 -1
  26. package/dist/tools/wallet-management.tools.js.map +1 -1
  27. package/dist/transactions/builder.d.ts +5 -20
  28. package/dist/transactions/builder.d.ts.map +1 -1
  29. package/dist/transactions/builder.js +34 -92
  30. package/dist/transactions/builder.js.map +1 -1
  31. package/dist/yield-hunter/index.js +4 -4
  32. package/dist/yield-hunter/index.js.map +1 -1
  33. package/package.json +1 -1
  34. package/skill/SKILL.md +1 -1
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Shared Nonce Tracker
3
+ *
4
+ * Unified, file-backed nonce tracker that prevents client-side nonce conflicts
5
+ * across all tx-submitting MCP tools. Replaces the separate in-memory trackers
6
+ * in builder.ts and inbox.tools.ts.
7
+ *
8
+ * Design principles (issue #413):
9
+ * - Local state is primary — no network calls on the hot path for nonce assignment
10
+ * - Hiro is periodic reconciliation, not a real-time oracle
11
+ * - Non-blocking — file read/write on the hot path, no network calls
12
+ * - Records every submission — nonce + txid + timestamp for debugging
13
+ * - Shared state file (~/.aibtc/nonce-state.json) for cross-process compatibility
14
+ * with CLI skills (aibtcdev/skills#240)
15
+ *
16
+ * @see https://github.com/aibtcdev/aibtc-mcp-server/issues/413
17
+ */
18
+ /** A record of a single submitted transaction. */
19
+ export interface PendingTxRecord {
20
+ nonce: number;
21
+ txid: string;
22
+ timestamp: string;
23
+ }
24
+ /** Per-address nonce state. */
25
+ export interface AddressNonceState {
26
+ /** The highest nonce we have assigned (not yet necessarily confirmed). */
27
+ lastUsedNonce: number;
28
+ /** ISO-8601 timestamp of the last nonce assignment. */
29
+ lastUpdated: string;
30
+ /** Rolling log of recent submissions (bounded to MAX_PENDING_LOG). */
31
+ pending: PendingTxRecord[];
32
+ }
33
+ /** On-disk file format. */
34
+ export interface NonceStateFile {
35
+ version: number;
36
+ addresses: Record<string, AddressNonceState>;
37
+ }
38
+ /** Snapshot returned by getHealthStatus(). */
39
+ export interface NonceHealthSnapshot {
40
+ address: string;
41
+ local: {
42
+ lastUsedNonce: number;
43
+ lastUpdated: string;
44
+ pendingCount: number;
45
+ isStale: boolean;
46
+ };
47
+ chain: {
48
+ possibleNextNonce: number;
49
+ lastExecutedNonce: number;
50
+ lastMempoolNonce: number | null;
51
+ missingNonces: number[];
52
+ mempoolNonces: number[];
53
+ };
54
+ healthy: boolean;
55
+ issues: string[];
56
+ }
57
+ /**
58
+ * How long a locally-tracked nonce is considered fresh. After this window the
59
+ * tracker falls back to the chain value on the next getNextNonce() call.
60
+ *
61
+ * Set to 90 seconds (~15-30 Stacks blocks post-Nakamoto, where blocks are 3-5s).
62
+ * Previously 10 minutes (calibrated for Bitcoin block times). The shorter window
63
+ * ensures the tracker detects external sends and chain advances promptly.
64
+ */
65
+ export declare const STALE_NONCE_MS: number;
66
+ /**
67
+ * Get the next nonce to use for an address.
68
+ *
69
+ * This is the HOT PATH — no network calls. Returns the locally tracked
70
+ * next nonce, or 0 if no state exists for the address (caller should then
71
+ * fall back to chain query).
72
+ *
73
+ * @returns The next nonce to use, or `null` if no local state exists or the
74
+ * local state is stale (caller should query the chain).
75
+ */
76
+ export declare function getTrackedNonce(address: string): Promise<number | null>;
77
+ /**
78
+ * Record that a nonce was used for a transaction.
79
+ *
80
+ * Called after successful broadcast. Updates both in-memory and on-disk state.
81
+ *
82
+ * @param address - The sender STX address
83
+ * @param nonce - The nonce that was used
84
+ * @param txid - The transaction ID from broadcast
85
+ */
86
+ export declare function recordNonceUsed(address: string, nonce: number, txid: string): Promise<void>;
87
+ /**
88
+ * Reconcile local state with chain data.
89
+ *
90
+ * If the chain's `possibleNextNonce` is ahead of our local state, update
91
+ * to match (txs confirmed or external sends happened). If our local state
92
+ * is ahead, keep it (chain is lagging behind mempool propagation).
93
+ *
94
+ * @param address - The STX address
95
+ * @param chainNextNonce - The `possible_next_nonce` value from Hiro API
96
+ */
97
+ export declare function reconcileWithChain(address: string, chainNextNonce: number): Promise<void>;
98
+ /**
99
+ * Reset (clear) nonce state for an address.
100
+ * Called on wallet unlock/lock/switch so the tracker re-syncs from chain.
101
+ */
102
+ export declare function resetTrackedNonce(address: string): Promise<void>;
103
+ /**
104
+ * Reset all tracked nonces (e.g., for testing or full resync).
105
+ */
106
+ export declare function resetAllTrackedNonces(): Promise<void>;
107
+ /**
108
+ * Get the raw state for an address (for diagnostics/health tool).
109
+ */
110
+ export declare function getAddressState(address: string): Promise<AddressNonceState | null>;
111
+ /**
112
+ * Get the full state file (for diagnostics).
113
+ */
114
+ export declare function getFullState(): Promise<NonceStateFile>;
115
+ /**
116
+ * Force reload state from disk (useful after external process wrote to file).
117
+ * Merges disk state into memory so external writes (CLI skills) are picked up
118
+ * without losing any in-memory nonce advancements.
119
+ */
120
+ export declare function reloadFromDisk(): Promise<void>;
121
+ export declare const _testing: {
122
+ STALE_NONCE_MS: number;
123
+ MAX_PENDING_LOG: number;
124
+ MAX_ADDRESSES: number;
125
+ readonly NONCE_STATE_FILE: string;
126
+ /** Override the state file path for test isolation. */
127
+ setStateFilePath(filePath: string): void;
128
+ /** Reset state file path to default. */
129
+ resetStateFilePath(): void;
130
+ /** Clear in-memory state without touching disk. */
131
+ clearMemory(): void;
132
+ /** Get raw memory state ref for assertions. */
133
+ getMemoryState(): NonceStateFile | null;
134
+ };
135
+ //# sourceMappingURL=nonce-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonce-tracker.d.ts","sourceRoot":"","sources":["../../src/services/nonce-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+BAA+B;AAC/B,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,2BAA2B;AAC3B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC9C;AAED,8CAA8C;AAC9C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,KAAK,EAAE;QACL,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAaD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,QAAY,CAAC;AA+HxC;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAY7E;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAItE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3D;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAGnC;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAE5D;AAED;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAOpD;AAMD,eAAO,MAAM,QAAQ;;;;;IAOnB,uDAAuD;+BAC5B,MAAM,GAAG,IAAI;IAGxC,wCAAwC;0BAClB,IAAI;IAG1B,mDAAmD;mBACpC,IAAI;IAGnB,+CAA+C;sBAC7B,cAAc,GAAG,IAAI;CAGxC,CAAC"}
@@ -0,0 +1,315 @@
1
+ /**
2
+ * Shared Nonce Tracker
3
+ *
4
+ * Unified, file-backed nonce tracker that prevents client-side nonce conflicts
5
+ * across all tx-submitting MCP tools. Replaces the separate in-memory trackers
6
+ * in builder.ts and inbox.tools.ts.
7
+ *
8
+ * Design principles (issue #413):
9
+ * - Local state is primary — no network calls on the hot path for nonce assignment
10
+ * - Hiro is periodic reconciliation, not a real-time oracle
11
+ * - Non-blocking — file read/write on the hot path, no network calls
12
+ * - Records every submission — nonce + txid + timestamp for debugging
13
+ * - Shared state file (~/.aibtc/nonce-state.json) for cross-process compatibility
14
+ * with CLI skills (aibtcdev/skills#240)
15
+ *
16
+ * @see https://github.com/aibtcdev/aibtc-mcp-server/issues/413
17
+ */
18
+ import fs from "fs/promises";
19
+ import path from "path";
20
+ import os from "os";
21
+ // ---------------------------------------------------------------------------
22
+ // Constants
23
+ // ---------------------------------------------------------------------------
24
+ const DEFAULT_STORAGE_DIR = path.join(os.homedir(), ".aibtc");
25
+ const DEFAULT_NONCE_STATE_FILE = path.join(DEFAULT_STORAGE_DIR, "nonce-state.json");
26
+ /** Mutable path — overridable via _testing.setStateFilePath() for test isolation. */
27
+ let NONCE_STATE_FILE = DEFAULT_NONCE_STATE_FILE;
28
+ const CURRENT_VERSION = 1;
29
+ /**
30
+ * How long a locally-tracked nonce is considered fresh. After this window the
31
+ * tracker falls back to the chain value on the next getNextNonce() call.
32
+ *
33
+ * Set to 90 seconds (~15-30 Stacks blocks post-Nakamoto, where blocks are 3-5s).
34
+ * Previously 10 minutes (calibrated for Bitcoin block times). The shorter window
35
+ * ensures the tracker detects external sends and chain advances promptly.
36
+ */
37
+ export const STALE_NONCE_MS = 90 * 1000;
38
+ /**
39
+ * Maximum pending tx records kept per address. Older entries are evicted FIFO.
40
+ */
41
+ const MAX_PENDING_LOG = 50;
42
+ /**
43
+ * Maximum addresses tracked in the state file. Oldest (by lastUpdated) are
44
+ * evicted when this limit is reached, preventing unbounded file growth.
45
+ */
46
+ const MAX_ADDRESSES = 100;
47
+ // ---------------------------------------------------------------------------
48
+ // In-memory cache
49
+ // ---------------------------------------------------------------------------
50
+ /** In-memory mirror of the on-disk state. Loaded lazily on first access. */
51
+ let _memoryState = null;
52
+ /**
53
+ * Serializes concurrent file writes within this process.
54
+ * Cross-process safety is handled by atomic temp+rename writes.
55
+ */
56
+ let _writeLock = Promise.resolve();
57
+ // ---------------------------------------------------------------------------
58
+ // File I/O (follows storage.ts patterns: atomic temp+rename, 0o600 perms)
59
+ // ---------------------------------------------------------------------------
60
+ async function readStateFile() {
61
+ try {
62
+ const content = await fs.readFile(NONCE_STATE_FILE, "utf8");
63
+ const parsed = JSON.parse(content);
64
+ // Basic validation
65
+ if (parsed.version !== CURRENT_VERSION || typeof parsed.addresses !== "object") {
66
+ return createDefaultState();
67
+ }
68
+ return parsed;
69
+ }
70
+ catch {
71
+ return createDefaultState();
72
+ }
73
+ }
74
+ /**
75
+ * Merge on-disk state into in-memory state to prevent cross-process write
76
+ * races from silently regressing a nonce (see PR review suggestion).
77
+ *
78
+ * For each address:
79
+ * - Takes the higher lastUsedNonce (never regress)
80
+ * - In-memory pending log is authoritative (disk entries are stale copies of
81
+ * our own prior writes); we only pull in disk-only addresses that another
82
+ * process (CLI skills) may have created.
83
+ */
84
+ function mergeStates(disk, memory) {
85
+ const merged = { version: CURRENT_VERSION, addresses: { ...memory.addresses } };
86
+ for (const [addr, diskEntry] of Object.entries(disk.addresses)) {
87
+ const memEntry = merged.addresses[addr];
88
+ if (!memEntry) {
89
+ // Address exists on disk but not in memory — another process wrote it
90
+ merged.addresses[addr] = diskEntry;
91
+ continue;
92
+ }
93
+ // Both exist: take the higher nonce to prevent regression
94
+ if (diskEntry.lastUsedNonce > memEntry.lastUsedNonce) {
95
+ memEntry.lastUsedNonce = diskEntry.lastUsedNonce;
96
+ memEntry.lastUpdated = diskEntry.lastUpdated;
97
+ }
98
+ }
99
+ return merged;
100
+ }
101
+ async function writeStateFile(state) {
102
+ const dir = path.dirname(NONCE_STATE_FILE);
103
+ await fs.mkdir(dir, { recursive: true, mode: 0o700 });
104
+ const tempFile = `${NONCE_STATE_FILE}.tmp`;
105
+ await fs.writeFile(tempFile, JSON.stringify(state, null, 2), { mode: 0o600 });
106
+ await fs.rename(tempFile, NONCE_STATE_FILE);
107
+ }
108
+ function createDefaultState() {
109
+ return { version: CURRENT_VERSION, addresses: {} };
110
+ }
111
+ // ---------------------------------------------------------------------------
112
+ // Internal helpers
113
+ // ---------------------------------------------------------------------------
114
+ /** Load state into memory if not already loaded. */
115
+ async function ensureLoaded() {
116
+ if (!_memoryState) {
117
+ _memoryState = await readStateFile();
118
+ }
119
+ return _memoryState;
120
+ }
121
+ /** Persist the in-memory state to disk (serialized to prevent interleaving). */
122
+ function persistToDisk() {
123
+ if (!_memoryState)
124
+ return;
125
+ const stateSnapshot = _memoryState;
126
+ _writeLock = _writeLock
127
+ .then(() => writeStateFile(stateSnapshot))
128
+ .catch((err) => {
129
+ console.error("[nonce-tracker] Failed to persist nonce state:", err);
130
+ });
131
+ }
132
+ /** Evict oldest addresses if over MAX_ADDRESSES. */
133
+ function evictOldestAddresses(state) {
134
+ const entries = Object.entries(state.addresses);
135
+ if (entries.length <= MAX_ADDRESSES)
136
+ return;
137
+ // Sort by lastUpdated ascending (oldest first)
138
+ entries.sort((a, b) => new Date(a[1].lastUpdated).getTime() - new Date(b[1].lastUpdated).getTime());
139
+ // Keep only the newest MAX_ADDRESSES entries
140
+ const toKeep = entries.slice(entries.length - MAX_ADDRESSES);
141
+ state.addresses = Object.fromEntries(toKeep);
142
+ }
143
+ // ---------------------------------------------------------------------------
144
+ // Public API
145
+ // ---------------------------------------------------------------------------
146
+ /**
147
+ * Get the next nonce to use for an address.
148
+ *
149
+ * This is the HOT PATH — no network calls. Returns the locally tracked
150
+ * next nonce, or 0 if no state exists for the address (caller should then
151
+ * fall back to chain query).
152
+ *
153
+ * @returns The next nonce to use, or `null` if no local state exists or the
154
+ * local state is stale (caller should query the chain).
155
+ */
156
+ export async function getTrackedNonce(address) {
157
+ const state = await ensureLoaded();
158
+ const entry = state.addresses[address];
159
+ if (!entry)
160
+ return null;
161
+ // Stale check
162
+ const lastUpdated = new Date(entry.lastUpdated).getTime();
163
+ if (Date.now() - lastUpdated > STALE_NONCE_MS) {
164
+ return null; // Stale — caller should query chain
165
+ }
166
+ return entry.lastUsedNonce + 1;
167
+ }
168
+ /**
169
+ * Record that a nonce was used for a transaction.
170
+ *
171
+ * Called after successful broadcast. Updates both in-memory and on-disk state.
172
+ *
173
+ * @param address - The sender STX address
174
+ * @param nonce - The nonce that was used
175
+ * @param txid - The transaction ID from broadcast
176
+ */
177
+ export async function recordNonceUsed(address, nonce, txid) {
178
+ const state = await ensureLoaded();
179
+ const now = new Date().toISOString();
180
+ const existing = state.addresses[address];
181
+ if (existing) {
182
+ // Only advance — never regress
183
+ if (nonce > existing.lastUsedNonce) {
184
+ existing.lastUsedNonce = nonce;
185
+ }
186
+ existing.lastUpdated = now;
187
+ // Append to pending log
188
+ existing.pending.push({ nonce, txid, timestamp: now });
189
+ // Trim to MAX_PENDING_LOG (FIFO)
190
+ if (existing.pending.length > MAX_PENDING_LOG) {
191
+ existing.pending = existing.pending.slice(-MAX_PENDING_LOG);
192
+ }
193
+ }
194
+ else {
195
+ state.addresses[address] = {
196
+ lastUsedNonce: nonce,
197
+ lastUpdated: now,
198
+ pending: [{ nonce, txid, timestamp: now }],
199
+ };
200
+ evictOldestAddresses(state);
201
+ }
202
+ persistToDisk();
203
+ }
204
+ /**
205
+ * Reconcile local state with chain data.
206
+ *
207
+ * If the chain's `possibleNextNonce` is ahead of our local state, update
208
+ * to match (txs confirmed or external sends happened). If our local state
209
+ * is ahead, keep it (chain is lagging behind mempool propagation).
210
+ *
211
+ * @param address - The STX address
212
+ * @param chainNextNonce - The `possible_next_nonce` value from Hiro API
213
+ */
214
+ export async function reconcileWithChain(address, chainNextNonce) {
215
+ const state = await ensureLoaded();
216
+ const entry = state.addresses[address];
217
+ if (!entry) {
218
+ // No local state — initialize from chain
219
+ state.addresses[address] = {
220
+ lastUsedNonce: chainNextNonce - 1,
221
+ lastUpdated: new Date().toISOString(),
222
+ pending: [],
223
+ };
224
+ evictOldestAddresses(state);
225
+ persistToDisk();
226
+ return;
227
+ }
228
+ let changed = false;
229
+ // Chain advanced past us — update (txs confirmed or external sends)
230
+ if (chainNextNonce - 1 > entry.lastUsedNonce) {
231
+ entry.lastUsedNonce = chainNextNonce - 1;
232
+ entry.lastUpdated = new Date().toISOString();
233
+ changed = true;
234
+ }
235
+ // Prune pending entries whose nonces are now confirmed on-chain
236
+ const beforeLen = entry.pending.length;
237
+ entry.pending = entry.pending.filter((p) => p.nonce >= chainNextNonce);
238
+ if (entry.pending.length !== beforeLen) {
239
+ changed = true;
240
+ }
241
+ if (changed) {
242
+ persistToDisk();
243
+ }
244
+ }
245
+ /**
246
+ * Reset (clear) nonce state for an address.
247
+ * Called on wallet unlock/lock/switch so the tracker re-syncs from chain.
248
+ */
249
+ export async function resetTrackedNonce(address) {
250
+ const state = await ensureLoaded();
251
+ delete state.addresses[address];
252
+ persistToDisk();
253
+ }
254
+ /**
255
+ * Reset all tracked nonces (e.g., for testing or full resync).
256
+ */
257
+ export async function resetAllTrackedNonces() {
258
+ _memoryState = createDefaultState();
259
+ persistToDisk();
260
+ }
261
+ /**
262
+ * Get the raw state for an address (for diagnostics/health tool).
263
+ */
264
+ export async function getAddressState(address) {
265
+ const state = await ensureLoaded();
266
+ return state.addresses[address] ?? null;
267
+ }
268
+ /**
269
+ * Get the full state file (for diagnostics).
270
+ */
271
+ export async function getFullState() {
272
+ return ensureLoaded();
273
+ }
274
+ /**
275
+ * Force reload state from disk (useful after external process wrote to file).
276
+ * Merges disk state into memory so external writes (CLI skills) are picked up
277
+ * without losing any in-memory nonce advancements.
278
+ */
279
+ export async function reloadFromDisk() {
280
+ const diskState = await readStateFile();
281
+ if (_memoryState && Object.keys(_memoryState.addresses).length > 0) {
282
+ _memoryState = mergeStates(diskState, _memoryState);
283
+ }
284
+ else {
285
+ _memoryState = diskState;
286
+ }
287
+ }
288
+ // ---------------------------------------------------------------------------
289
+ // Testing helpers
290
+ // ---------------------------------------------------------------------------
291
+ export const _testing = {
292
+ STALE_NONCE_MS,
293
+ MAX_PENDING_LOG,
294
+ MAX_ADDRESSES,
295
+ get NONCE_STATE_FILE() {
296
+ return NONCE_STATE_FILE;
297
+ },
298
+ /** Override the state file path for test isolation. */
299
+ setStateFilePath(filePath) {
300
+ NONCE_STATE_FILE = filePath;
301
+ },
302
+ /** Reset state file path to default. */
303
+ resetStateFilePath() {
304
+ NONCE_STATE_FILE = DEFAULT_NONCE_STATE_FILE;
305
+ },
306
+ /** Clear in-memory state without touching disk. */
307
+ clearMemory() {
308
+ _memoryState = null;
309
+ },
310
+ /** Get raw memory state ref for assertions. */
311
+ getMemoryState() {
312
+ return _memoryState;
313
+ },
314
+ };
315
+ //# sourceMappingURL=nonce-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonce-tracker.js","sourceRoot":"","sources":["../../src/services/nonce-tracker.ts"],"names":[],"mappings":"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"}
@@ -53,7 +53,7 @@ declare class WalletManager {
53
53
  /**
54
54
  * Lock the wallet (clear session)
55
55
  */
56
- lock(): void;
56
+ lock(): Promise<void>;
57
57
  /**
58
58
  * Get the active account if unlocked
59
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-manager.d.ts","sourceRoot":"","sources":["../../src/services/wallet-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAiBL,KAAK,cAAc,EAEnB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAc1D;;GAEG;AACH,UAAU,YAAa,SAAQ,eAAe;IAC5C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAE9C;;GAEG;AACH,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC;;OAEG;YACW,iBAAiB;IAO/B;;OAEG;YACW,WAAW;IAiDzB;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,kBAAkB,CAAC;IAS9B;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuGlE;;OAEG;IACH,IAAI,IAAI,IAAI;IAmBZ;;OAEG;IACH,gBAAgB,IAAI,OAAO,GAAG,IAAI;IAclC;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,cAAc,IAAI,CAAC,eAAe,GAAG;QACnC,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;KACxB,CAAC,GAAG,IAAI;IAoBT;;;OAGG;IACH,UAAU,IAAI,OAAO,GAAG,IAAI;IAc5B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAM9C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMjD;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnD;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CrE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BzE;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAiHhB;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAM3B;AAGD,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD"}
1
+ {"version":3,"file":"wallet-manager.d.ts","sourceRoot":"","sources":["../../src/services/wallet-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAiBL,KAAK,cAAc,EAEnB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAc1D;;GAEG;AACH,UAAU,YAAa,SAAQ,eAAe;IAC5C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAE9C;;GAEG;AACH,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC;;OAEG;YACW,iBAAiB;IAO/B;;OAEG;YACW,WAAW;IAiDzB;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,kBAAkB,CAAC;IAS9B;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuGlE;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B;;OAEG;IACH,gBAAgB,IAAI,OAAO,GAAG,IAAI;IAclC;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,cAAc,IAAI,CAAC,eAAe,GAAG;QACnC,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;KACxB,CAAC,GAAG,IAAI;IAoBT;;;OAGG;IACH,UAAU,IAAI,OAAO,GAAG,IAAI;IAc5B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAM9C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMjD;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnD;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CrE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BzE;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAiHhB;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAM3B;AAGD,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD"}
@@ -169,17 +169,17 @@ class WalletManager {
169
169
  config.activeWalletId = walletId;
170
170
  await writeAppConfig(config);
171
171
  // Reset pending nonce counter so the new session re-syncs with the chain
172
- resetPendingNonce(account.address);
172
+ await resetPendingNonce(account.address);
173
173
  return account;
174
174
  }
175
175
  /**
176
176
  * Lock the wallet (clear session)
177
177
  */
178
- lock() {
178
+ async lock() {
179
179
  this.clearAutoLockTimer();
180
180
  // Reset pending nonce counter before clearing session
181
181
  if (this.session?.account) {
182
- resetPendingNonce(this.session.account.address);
182
+ await resetPendingNonce(this.session.account.address);
183
183
  }
184
184
  // Zero out sensitive key buffers before dropping references
185
185
  if (this.session?.account) {
@@ -208,7 +208,7 @@ class WalletManager {
208
208
  }
209
209
  // Check if session expired
210
210
  if (this.session.expiresAt && new Date() > this.session.expiresAt) {
211
- this.lock();
211
+ void this.lock();
212
212
  return null;
213
213
  }
214
214
  return this.session.account;
@@ -228,7 +228,7 @@ class WalletManager {
228
228
  }
229
229
  // Check expiry
230
230
  if (this.session.expiresAt && new Date() > this.session.expiresAt) {
231
- this.lock();
231
+ void this.lock();
232
232
  return null;
233
233
  }
234
234
  return {
@@ -249,7 +249,7 @@ class WalletManager {
249
249
  }
250
250
  // Check expiry
251
251
  if (this.session.expiresAt && new Date() > this.session.expiresAt) {
252
- this.lock();
252
+ void this.lock();
253
253
  return null;
254
254
  }
255
255
  return this.session.account;
@@ -290,7 +290,7 @@ class WalletManager {
290
290
  throw new WalletNotFoundError(walletId);
291
291
  }
292
292
  // Lock current session
293
- this.lock();
293
+ await this.lock();
294
294
  // Update active wallet
295
295
  const config = await readAppConfig();
296
296
  config.activeWalletId = walletId;
@@ -323,7 +323,7 @@ class WalletManager {
323
323
  }
324
324
  // If this wallet is currently active, lock it
325
325
  if (this.session?.walletId === walletId) {
326
- this.lock();
326
+ await this.lock();
327
327
  }
328
328
  // Delete wallet storage
329
329
  await deleteWalletStorage(walletId);
@@ -463,7 +463,7 @@ class WalletManager {
463
463
  }
464
464
  // Lock wallet if currently unlocked (force re-auth with new password)
465
465
  if (this.session?.walletId === walletId) {
466
- this.lock();
466
+ await this.lock();
467
467
  }
468
468
  }
469
469
  /**
@@ -492,7 +492,7 @@ class WalletManager {
492
492
  return; // No auto-lock
493
493
  }
494
494
  this.lockTimer = setTimeout(() => {
495
- this.lock();
495
+ void this.lock();
496
496
  }, minutes * 60 * 1000);
497
497
  }
498
498
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-manager.js","sourceRoot":"","sources":["../../src/services/wallet-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet-manager.js","sourceRoot":"","sources":["../../src/services/wallet-manager.ts"],"names":[],"mappings":"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"}