@bsv/sdk 1.8.11 → 1.8.13

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 (32) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/overlay-tools/HostReputationTracker.js +216 -0
  3. package/dist/cjs/src/overlay-tools/HostReputationTracker.js.map +1 -0
  4. package/dist/cjs/src/overlay-tools/LookupResolver.js +55 -3
  5. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  6. package/dist/cjs/src/wallet/WalletError.js +2 -2
  7. package/dist/cjs/src/wallet/WalletError.js.map +1 -1
  8. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  9. package/dist/esm/src/overlay-tools/HostReputationTracker.js +213 -0
  10. package/dist/esm/src/overlay-tools/HostReputationTracker.js.map +1 -0
  11. package/dist/esm/src/overlay-tools/LookupResolver.js +56 -3
  12. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  13. package/dist/esm/src/wallet/WalletError.js +2 -2
  14. package/dist/esm/src/wallet/WalletError.js.map +1 -1
  15. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  16. package/dist/types/src/overlay-tools/HostReputationTracker.d.ts +37 -0
  17. package/dist/types/src/overlay-tools/HostReputationTracker.d.ts.map +1 -0
  18. package/dist/types/src/overlay-tools/LookupResolver.d.ts +8 -0
  19. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  20. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  21. package/dist/umd/bundle.js +3 -3
  22. package/dist/umd/bundle.js.map +1 -1
  23. package/docs/reference/overlay-tools.md +58 -0
  24. package/docs/reference/primitives.md +33 -0
  25. package/docs/tutorials/advanced-transaction.md +2 -2
  26. package/docs/tutorials/first-transaction.md +1 -1
  27. package/docs/tutorials/transaction-types.md +1 -1
  28. package/package.json +1 -1
  29. package/src/overlay-tools/HostReputationTracker.ts +232 -0
  30. package/src/overlay-tools/LookupResolver.ts +73 -4
  31. package/src/overlay-tools/__tests/LookupResolver.test.ts +120 -0
  32. package/src/wallet/WalletError.ts +2 -2
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/sdk",
3
- "version": "1.8.11",
3
+ "version": "1.8.13",
4
4
  "type": "commonjs",
5
5
  "description": "BSV Blockchain Software Development Kit",
6
6
  "files": [
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOverlayHostReputationTracker = exports.HostReputationTracker = void 0;
4
+ const DEFAULT_LATENCY_MS = 1500;
5
+ const LATENCY_SMOOTHING_FACTOR = 0.25;
6
+ const BASE_BACKOFF_MS = 1000;
7
+ const MAX_BACKOFF_MS = 60000;
8
+ const FAILURE_PENALTY_MS = 400;
9
+ const SUCCESS_BONUS_MS = 30;
10
+ const FAILURE_BACKOFF_GRACE = 2;
11
+ const STORAGE_KEY = 'bsvsdk_overlay_host_reputation_v1';
12
+ class HostReputationTracker {
13
+ constructor(store) {
14
+ this.stats = new Map();
15
+ this.store = store ?? this.getLocalStorageAdapter();
16
+ this.loadFromStorage();
17
+ }
18
+ reset() {
19
+ this.stats.clear();
20
+ }
21
+ recordSuccess(host, latencyMs) {
22
+ const entry = this.getOrCreate(host);
23
+ const now = Date.now();
24
+ const safeLatency = Number.isFinite(latencyMs) && latencyMs >= 0 ? latencyMs : DEFAULT_LATENCY_MS;
25
+ if (entry.avgLatencyMs === null) {
26
+ entry.avgLatencyMs = safeLatency;
27
+ }
28
+ else {
29
+ entry.avgLatencyMs =
30
+ (1 - LATENCY_SMOOTHING_FACTOR) * entry.avgLatencyMs +
31
+ LATENCY_SMOOTHING_FACTOR * safeLatency;
32
+ }
33
+ entry.lastLatencyMs = safeLatency;
34
+ entry.totalSuccesses += 1;
35
+ entry.consecutiveFailures = 0;
36
+ entry.backoffUntil = 0;
37
+ entry.lastUpdatedAt = now;
38
+ entry.lastError = undefined;
39
+ this.saveToStorage();
40
+ }
41
+ recordFailure(host, reason) {
42
+ const entry = this.getOrCreate(host);
43
+ const now = Date.now();
44
+ entry.totalFailures += 1;
45
+ entry.consecutiveFailures += 1;
46
+ const msg = typeof reason === 'string'
47
+ ? reason
48
+ : reason instanceof Error
49
+ ? reason.message
50
+ : undefined;
51
+ const immediate = typeof msg === 'string' &&
52
+ (msg.includes('ERR_NAME_NOT_RESOLVED') ||
53
+ msg.includes('ENOTFOUND') ||
54
+ msg.includes('getaddrinfo') ||
55
+ msg.includes('Failed to fetch'));
56
+ if (immediate && entry.consecutiveFailures < FAILURE_BACKOFF_GRACE + 1) {
57
+ entry.consecutiveFailures = FAILURE_BACKOFF_GRACE + 1;
58
+ }
59
+ const penaltyLevel = Math.max(entry.consecutiveFailures - FAILURE_BACKOFF_GRACE, 0);
60
+ if (penaltyLevel === 0) {
61
+ entry.backoffUntil = 0;
62
+ }
63
+ else {
64
+ const backoffDuration = Math.min(MAX_BACKOFF_MS, BASE_BACKOFF_MS * Math.pow(2, penaltyLevel - 1));
65
+ entry.backoffUntil = now + backoffDuration;
66
+ }
67
+ entry.lastUpdatedAt = now;
68
+ entry.lastError =
69
+ typeof reason === 'string'
70
+ ? reason
71
+ : reason instanceof Error
72
+ ? reason.message
73
+ : undefined;
74
+ this.saveToStorage();
75
+ }
76
+ rankHosts(hosts, now = Date.now()) {
77
+ const seen = new Map();
78
+ hosts.forEach((host, idx) => {
79
+ if (typeof host !== 'string' || host.length === 0)
80
+ return;
81
+ if (!seen.has(host))
82
+ seen.set(host, idx);
83
+ });
84
+ const orderedHosts = Array.from(seen.keys());
85
+ const ranked = orderedHosts.map((host) => {
86
+ const entry = this.getOrCreate(host);
87
+ return {
88
+ ...entry,
89
+ score: this.computeScore(entry, now),
90
+ originalOrder: seen.get(host) ?? 0
91
+ };
92
+ });
93
+ ranked.sort((a, b) => {
94
+ const aInBackoff = a.backoffUntil > now;
95
+ const bInBackoff = b.backoffUntil > now;
96
+ if (aInBackoff !== bInBackoff)
97
+ return aInBackoff ? 1 : -1;
98
+ if (a.score !== b.score)
99
+ return a.score - b.score;
100
+ if (a.totalSuccesses !== b.totalSuccesses)
101
+ return b.totalSuccesses - a.totalSuccesses;
102
+ return a.originalOrder - b.originalOrder;
103
+ });
104
+ return ranked.map(({ originalOrder, ...rest }) => rest);
105
+ }
106
+ snapshot(host) {
107
+ const entry = this.stats.get(host);
108
+ return entry != null ? { ...entry } : undefined;
109
+ }
110
+ getStorage() {
111
+ try {
112
+ const g = typeof globalThis === 'object' ? globalThis : undefined;
113
+ if (g == null || g.localStorage == null)
114
+ return undefined;
115
+ return g.localStorage;
116
+ }
117
+ catch {
118
+ return undefined;
119
+ }
120
+ }
121
+ getLocalStorageAdapter() {
122
+ const s = this.getStorage();
123
+ if (s == null)
124
+ return undefined;
125
+ return {
126
+ get: (key) => {
127
+ try {
128
+ return s.getItem(key);
129
+ }
130
+ catch {
131
+ return null;
132
+ }
133
+ },
134
+ set: (key, value) => {
135
+ try {
136
+ s.setItem(key, value);
137
+ }
138
+ catch { }
139
+ }
140
+ };
141
+ }
142
+ loadFromStorage() {
143
+ const s = this.store;
144
+ if (s == null)
145
+ return;
146
+ try {
147
+ const raw = s.get(STORAGE_KEY);
148
+ if (typeof raw !== 'string' || raw.length === 0)
149
+ return;
150
+ const data = JSON.parse(raw);
151
+ if (typeof data !== 'object' || data === null)
152
+ return;
153
+ this.stats.clear();
154
+ for (const k of Object.keys(data)) {
155
+ const v = (data)[k];
156
+ if (v != null && typeof v === 'object') {
157
+ const entry = {
158
+ host: String(v.host ?? k),
159
+ totalSuccesses: Number(v.totalSuccesses ?? 0),
160
+ totalFailures: Number(v.totalFailures ?? 0),
161
+ consecutiveFailures: Number(v.consecutiveFailures ?? 0),
162
+ avgLatencyMs: v.avgLatencyMs == null ? null : Number(v.avgLatencyMs),
163
+ lastLatencyMs: v.lastLatencyMs == null ? null : Number(v.lastLatencyMs),
164
+ backoffUntil: Number(v.backoffUntil ?? 0),
165
+ lastUpdatedAt: Number(v.lastUpdatedAt ?? 0),
166
+ lastError: typeof v.lastError === 'string' ? v.lastError : undefined
167
+ };
168
+ this.stats.set(entry.host, entry);
169
+ }
170
+ }
171
+ }
172
+ catch { }
173
+ }
174
+ saveToStorage() {
175
+ const s = this.store;
176
+ if (s == null)
177
+ return;
178
+ try {
179
+ const obj = {};
180
+ for (const [host, entry] of this.stats.entries()) {
181
+ obj[host] = entry;
182
+ }
183
+ s.set(STORAGE_KEY, JSON.stringify(obj));
184
+ }
185
+ catch { }
186
+ }
187
+ computeScore(entry, now) {
188
+ const latency = entry.avgLatencyMs ?? DEFAULT_LATENCY_MS;
189
+ const failurePenalty = entry.consecutiveFailures * FAILURE_PENALTY_MS;
190
+ const successBonus = Math.min(entry.totalSuccesses * SUCCESS_BONUS_MS, latency / 2);
191
+ const backoffPenalty = entry.backoffUntil > now ? entry.backoffUntil - now : 0;
192
+ return latency + failurePenalty + backoffPenalty - successBonus;
193
+ }
194
+ getOrCreate(host) {
195
+ let entry = this.stats.get(host);
196
+ if (entry == null) {
197
+ entry = {
198
+ host,
199
+ totalSuccesses: 0,
200
+ totalFailures: 0,
201
+ consecutiveFailures: 0,
202
+ avgLatencyMs: null,
203
+ lastLatencyMs: null,
204
+ backoffUntil: 0,
205
+ lastUpdatedAt: 0
206
+ };
207
+ this.stats.set(host, entry);
208
+ }
209
+ return entry;
210
+ }
211
+ }
212
+ exports.HostReputationTracker = HostReputationTracker;
213
+ const globalTracker = new HostReputationTracker();
214
+ const getOverlayHostReputationTracker = () => globalTracker;
215
+ exports.getOverlayHostReputationTracker = getOverlayHostReputationTracker;
216
+ //# sourceMappingURL=HostReputationTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostReputationTracker.js","sourceRoot":"","sources":["../../../../src/overlay-tools/HostReputationTracker.ts"],"names":[],"mappings":";;;AAgBA,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAC/B,MAAM,wBAAwB,GAAG,IAAI,CAAA;AACrC,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,cAAc,GAAG,KAAM,CAAA;AAC7B,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAC9B,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAC3B,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAC/B,MAAM,WAAW,GAAG,mCAAmC,CAAA;AAOvD,MAAa,qBAAqB;IAIhC,YAAa,KAAqB;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAA;QACnD,IAAI,CAAC,eAAe,EAAE,CAAA;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,aAAa,CAAE,IAAY,EAAE,SAAiB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAA;QACjG,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE;YAC/B,KAAK,CAAC,YAAY,GAAG,WAAW,CAAA;SACjC;aAAM;YACL,KAAK,CAAC,YAAY;gBAChB,CAAC,CAAC,GAAG,wBAAwB,CAAC,GAAG,KAAK,CAAC,YAAY;oBACnD,wBAAwB,GAAG,WAAW,CAAA;SACzC;QACD,KAAK,CAAC,aAAa,GAAG,WAAW,CAAA;QACjC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAA;QACzB,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAA;QAC7B,KAAK,CAAC,YAAY,GAAG,CAAC,CAAA;QACtB,KAAK,CAAC,aAAa,GAAG,GAAG,CAAA;QACzB,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED,aAAa,CAAE,IAAY,EAAE,MAAgB;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,CAAC,aAAa,IAAI,CAAC,CAAA;QACxB,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAA;QAC9B,MAAM,GAAG,GACP,OAAO,MAAM,KAAK,QAAQ;YACxB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,YAAY,KAAK;gBACvB,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,SAAS,CAAA;QACjB,MAAM,SAAS,GACb,OAAO,GAAG,KAAK,QAAQ;YACvB,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC;gBACpC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACzB,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAC3B,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;QACpC,IAAI,SAAS,IAAI,KAAK,CAAC,mBAAmB,GAAG,qBAAqB,GAAG,CAAC,EAAE;YACtE,KAAK,CAAC,mBAAmB,GAAG,qBAAqB,GAAG,CAAC,CAAA;SACtD;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,qBAAqB,EAAE,CAAC,CAAC,CAAA;QACnF,IAAI,YAAY,KAAK,CAAC,EAAE;YACtB,KAAK,CAAC,YAAY,GAAG,CAAC,CAAA;SACvB;aAAM;YACL,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAC9B,cAAc,EACd,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAChD,CAAA;YACD,KAAK,CAAC,YAAY,GAAG,GAAG,GAAG,eAAe,CAAA;SAC3C;QACD,KAAK,CAAC,aAAa,GAAG,GAAG,CAAA;QACzB,KAAK,CAAC,SAAS;YACb,OAAO,MAAM,KAAK,QAAQ;gBACxB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,MAAM,YAAY,KAAK;oBACvB,CAAC,CAAC,MAAM,CAAC,OAAO;oBAChB,CAAC,CAAC,SAAS,CAAA;QACjB,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED,SAAS,CAAE,KAAe,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;QAClD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YACzD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACpC,OAAO;gBACL,GAAG,KAAK;gBACR,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;gBACpC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;aACnC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACnB,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,GAAG,GAAG,CAAA;YACvC,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,GAAG,GAAG,CAAA;YACvC,IAAI,UAAU,KAAK,UAAU;gBAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;gBAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;YACjD,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc;gBAAE,OAAO,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAA;YACrF,OAAQ,CAAS,CAAC,aAAa,GAAI,CAAS,CAAC,aAAa,CAAA;QAC5D,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC;IAED,QAAQ,CAAE,IAAY;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACjD,CAAC;IAEO,UAAU;QAChB,IAAI;YACF,MAAM,CAAC,GAAQ,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;YACtE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAA;YACzD,OAAO,CAAC,CAAC,YAAY,CAAA;SACtB;QAAC,MAAM;YACN,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAEO,sBAAsB;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC3B,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,SAAS,CAAA;QAC/B,OAAO;YACL,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE;gBACnB,IAAI;oBAAE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;iBAAE;gBAAC,MAAM;oBAAE,OAAO,IAAI,CAAA;iBAAE;YACrD,CAAC;YACD,GAAG,EAAE,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;gBAClC,IAAI;oBAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;iBAAE;gBAAC,MAAM,GAAG;YACzC,CAAC;SACF,CAAA;IACH,CAAC;IAEO,eAAe;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,IAAI,CAAC,IAAI,IAAI;YAAE,OAAM;QACrB,IAAI;YACF,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAM;YACrD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;YAClB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjC,MAAM,CAAC,GAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;oBACtC,MAAM,KAAK,GAAwB;wBACjC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;wBACzB,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC;wBAC7C,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC;wBAC3C,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC;wBACvD,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;wBACpE,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;wBACvE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;wBACzC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC;wBAC3C,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;qBACrE,CAAA;oBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;iBAClC;aACF;SACF;QAAC,MAAM,GAAE;IACZ,CAAC;IAEO,aAAa;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,IAAI,CAAC,IAAI,IAAI;YAAE,OAAM;QACrB,IAAI;YACF,MAAM,GAAG,GAAwB,EAAE,CAAA;YACnC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;gBAChD,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;aAClB;YACD,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;SACxC;QAAC,MAAM,GAAE;IACZ,CAAC;IAEO,YAAY,CAAE,KAA0B,EAAE,GAAW;QAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,IAAI,kBAAkB,CAAA;QACxD,MAAM,cAAc,GAAG,KAAK,CAAC,mBAAmB,GAAG,kBAAkB,CAAA;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,gBAAgB,EAAE,OAAO,GAAG,CAAC,CAAC,CAAA;QACnF,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9E,OAAO,OAAO,GAAG,cAAc,GAAG,cAAc,GAAG,YAAY,CAAA;IACjE,CAAC;IAEO,WAAW,CAAE,IAAY;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG;gBACN,IAAI;gBACJ,cAAc,EAAE,CAAC;gBACjB,aAAa,EAAE,CAAC;gBAChB,mBAAmB,EAAE,CAAC;gBACtB,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,IAAI;gBACnB,YAAY,EAAE,CAAC;gBACf,aAAa,EAAE,CAAC;aACjB,CAAA;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;SAC5B;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AArMD,sDAqMC;AAED,MAAM,aAAa,GAAG,IAAI,qBAAqB,EAAE,CAAA;AAE1C,MAAM,+BAA+B,GAAG,GAA0B,EAAE,CAAC,aAAa,CAAA;AAA5E,QAAA,+BAA+B,mCAA6C"}
@@ -30,6 +30,7 @@ exports.HTTPSOverlayLookupFacilitator = exports.DEFAULT_TESTNET_SLAP_TRACKERS =
30
30
  const index_js_1 = require("../transaction/index.js");
31
31
  const OverlayAdminTokenTemplate_js_1 = __importDefault(require("./OverlayAdminTokenTemplate.js"));
32
32
  const Utils = __importStar(require("../primitives/utils.js"));
33
+ const HostReputationTracker_js_1 = require("./HostReputationTracker.js");
33
34
  const defaultFetch = typeof globalThis !== 'undefined' && typeof globalThis.fetch === 'function'
34
35
  ? globalThis.fetch.bind(globalThis)
35
36
  : fetch;
@@ -143,6 +144,16 @@ class LookupResolver {
143
144
  this.assertValidOverrideServices(hostOverrides);
144
145
  this.hostOverrides = hostOverrides;
145
146
  this.additionalHosts = config.additionalHosts ?? {};
147
+ const rs = config.reputationStorage;
148
+ if (rs === 'localStorage') {
149
+ this.hostReputation = new HostReputationTracker_js_1.HostReputationTracker();
150
+ }
151
+ else if (typeof rs === 'object' && rs !== null && typeof rs.get === 'function' && typeof rs.set === 'function') {
152
+ this.hostReputation = new HostReputationTracker_js_1.HostReputationTracker(rs);
153
+ }
154
+ else {
155
+ this.hostReputation = (0, HostReputationTracker_js_1.getOverlayHostReputationTracker)();
156
+ }
146
157
  // cache tuning
147
158
  this.hostsTtlMs = config.cache?.hostsTtlMs ?? 5 * 60 * 1000; // 5 min
148
159
  this.hostsMaxEntries = config.cache?.hostsMaxEntries ?? 128;
@@ -179,9 +190,13 @@ class LookupResolver {
179
190
  if (competentHosts.length < 1) {
180
191
  throw new Error(`No competent ${this.networkPreset} hosts found by the SLAP trackers for lookup service: ${question.service}`);
181
192
  }
193
+ const rankedHosts = this.prepareHostsForQuery(competentHosts, `lookup service ${question.service}`);
194
+ if (rankedHosts.length < 1) {
195
+ throw new Error(`All competent hosts for ${question.service} are temporarily unavailable due to backoff.`);
196
+ }
182
197
  // Fire all hosts with per-host timeout, harvest successful output-list responses
183
- const hostResponses = await Promise.allSettled(competentHosts.map(async (host) => {
184
- return await this.facilitator.lookup(host, question, timeout);
198
+ const hostResponses = await Promise.allSettled(rankedHosts.map(async (host) => {
199
+ return await this.lookupHostWithTracking(host, question, timeout);
185
200
  }));
186
201
  const outputsMap = new Map();
187
202
  // Memo key helper for tx parsing
@@ -290,7 +305,10 @@ class LookupResolver {
290
305
  query: { service }
291
306
  };
292
307
  // Query all SLAP trackers; tolerate failures.
293
- const trackerResponses = await Promise.allSettled(this.slapTrackers.map(async (tracker) => await this.facilitator.lookup(tracker, query, MAX_TRACKER_WAIT_TIME)));
308
+ const trackerHosts = this.prepareHostsForQuery(this.slapTrackers, 'SLAP trackers');
309
+ if (trackerHosts.length === 0)
310
+ return [];
311
+ const trackerResponses = await Promise.allSettled(trackerHosts.map(async (tracker) => await this.lookupHostWithTracking(tracker, query, MAX_TRACKER_WAIT_TIME)));
294
312
  const hosts = new Set();
295
313
  for (const result of trackerResponses) {
296
314
  if (result.status !== 'fulfilled')
@@ -331,6 +349,40 @@ class LookupResolver {
331
349
  }
332
350
  }
333
351
  }
352
+ prepareHostsForQuery(hosts, context) {
353
+ if (hosts.length === 0)
354
+ return [];
355
+ const now = Date.now();
356
+ const ranked = this.hostReputation.rankHosts(hosts, now);
357
+ const available = ranked.filter((h) => h.backoffUntil <= now).map((h) => h.host);
358
+ if (available.length > 0)
359
+ return available;
360
+ const soonest = Math.min(...ranked.map((h) => h.backoffUntil));
361
+ const waitMs = Math.max(soonest - now, 0);
362
+ throw new Error(`All ${context} hosts are backing off for approximately ${waitMs}ms due to repeated failures.`);
363
+ }
364
+ async lookupHostWithTracking(host, question, timeout) {
365
+ const startedAt = Date.now();
366
+ try {
367
+ const answer = await this.facilitator.lookup(host, question, timeout);
368
+ const latency = Date.now() - startedAt;
369
+ const isValid = typeof answer === 'object' &&
370
+ answer !== null &&
371
+ answer.type === 'output-list' &&
372
+ Array.isArray((answer).outputs);
373
+ if (isValid) {
374
+ this.hostReputation.recordSuccess(host, latency);
375
+ }
376
+ else {
377
+ this.hostReputation.recordFailure(host, 'Invalid lookup response');
378
+ }
379
+ return answer;
380
+ }
381
+ catch (err) {
382
+ this.hostReputation.recordFailure(host, err);
383
+ throw err;
384
+ }
385
+ }
334
386
  }
335
387
  exports.default = LookupResolver;
336
388
  //# sourceMappingURL=LookupResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LookupResolver.js","sourceRoot":"","sources":["../../../../src/overlay-tools/LookupResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LookupResolver.js","sourceRoot":"","sources":["../../../../src/overlay-tools/LookupResolver.ts"],"names":[],"mappings":"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"}
@@ -26,9 +26,9 @@ class WalletError extends Error {
26
26
  */
27
27
  static unknownToJson(error) {
28
28
  let e;
29
- if (typeof error.constructor.name === 'string' && String(error.constructor.name).startsWith('WERR_')) {
29
+ if (error.isError === true && String(error.name).startsWith('WERR_')) {
30
30
  e = {
31
- name: error.constructor.name,
31
+ name: error.name,
32
32
  message: error.message,
33
33
  isError: true
34
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"WalletError.js","sourceRoot":"","sources":["../../../../src/wallet/WalletError.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAY,SAAQ,KAAK;IAIpC,YAAa,OAAe,EAAE,IAAI,GAAG,CAAC,EAAE,KAAc;QACpD,KAAK,CAAC,OAAO,CAAC,CAAA;QAHhB,YAAO,GAAY,IAAI,CAAA;QAIrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QAEjC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;YACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;SACnB;aAAM;YACL,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,aAAa,CAAE,KAAU;QAC9B,IAAI,CAAkB,CAAA;QACtB,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACpG,CAAC,GAAG;gBACF,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,IAAI;aACd,CAAA;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,qBAAqB,EAAE;gBACpC,CAAC,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAA;gBACjD,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAA;gBACzC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;gBACnB,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAA;gBACf,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;gBACnC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;aACX;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,wBAAwB,EAAE;gBAC9C,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;gBAC7B,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;aACX;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB,EAAE;gBAC/C,CAAC,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAA;gBACjD,CAAC,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAA;gBAC/C,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;aACX;SACF;aAAM,IAAI,KAAK,YAAY,KAAK,EAAE;YACjC,CAAC,GAAG;gBACF,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,IAAI;aACd,CAAA;SACF;aAAM;YACL,CAAC,GAAG;gBACF,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI;aACd,CAAA;SACF;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAjED,kCAiEC;AAED,4DAA4D;AAC5D,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,+DAAgB,CAAA;IAChB,yEAAqB,CAAA;IACrB,6DAAe,CAAA;IACf,uEAAoB,CAAA;IACpB,iEAAiB,CAAA;IACjB,uEAAoB,CAAA;IACpB,yEAAqB,CAAA;AACvB,CAAC,EARW,YAAY,4BAAZ,YAAY,QAQvB;AAID,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"WalletError.js","sourceRoot":"","sources":["../../../../src/wallet/WalletError.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAY,SAAQ,KAAK;IAIpC,YAAa,OAAe,EAAE,IAAI,GAAG,CAAC,EAAE,KAAc;QACpD,KAAK,CAAC,OAAO,CAAC,CAAA;QAHhB,YAAO,GAAY,IAAI,CAAA;QAIrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QAEjC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;YACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;SACnB;aAAM;YACL,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,aAAa,CAAE,KAAU;QAC9B,IAAI,CAAkB,CAAA;QACtB,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACpE,CAAC,GAAG;gBACF,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,IAAI;aACd,CAAA;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,qBAAqB,EAAE;gBACpC,CAAC,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAA;gBACjD,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAA;gBACzC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;gBACnB,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAA;gBACf,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;gBACnC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;aACX;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,wBAAwB,EAAE;gBAC9C,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;gBAC7B,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;aACX;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB,EAAE;gBAC/C,CAAC,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAA;gBACjD,CAAC,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAA;gBAC/C,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;aACX;SACF;aAAM,IAAI,KAAK,YAAY,KAAK,EAAE;YACjC,CAAC,GAAG;gBACF,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,IAAI;aACd,CAAA;SACF;aAAM;YACL,CAAC,GAAG;gBACF,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI;aACd,CAAA;SACF;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAjED,kCAiEC;AAED,4DAA4D;AAC5D,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,+DAAgB,CAAA;IAChB,yEAAqB,CAAA;IACrB,6DAAe,CAAA;IACf,uEAAoB,CAAA;IACpB,iEAAiB,CAAA;IACjB,uEAAoB,CAAA;IACpB,yEAAqB,CAAA;AACvB,CAAC,EARW,YAAY,4BAAZ,YAAY,QAQvB;AAID,kBAAe,WAAW,CAAA"}