@bsv/wallet-toolbox 2.7.0 → 2.8.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 (91) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +23 -8
  3. package/docs/README.md +24 -23
  4. package/docs/local-first-chaintracks.md +129 -0
  5. package/out/src/index.mobile.d.ts +1 -0
  6. package/out/src/index.mobile.d.ts.map +1 -1
  7. package/out/src/index.mobile.js +1 -0
  8. package/out/src/index.mobile.js.map +1 -1
  9. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts +2 -0
  10. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -1
  11. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +66 -11
  12. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -1
  13. package/out/src/sdk/WalletServices.interfaces.d.ts +8 -0
  14. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  15. package/out/src/services/Services.d.ts.map +1 -1
  16. package/out/src/services/Services.js +3 -1
  17. package/out/src/services/Services.js.map +1 -1
  18. package/out/src/services/chaintracker/LocalChainTracker.d.ts +96 -0
  19. package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -0
  20. package/out/src/services/chaintracker/LocalChainTracker.js +295 -0
  21. package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -0
  22. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts +26 -0
  23. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts.map +1 -0
  24. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js +3 -0
  25. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js.map +1 -0
  26. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +13 -0
  27. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  28. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +2 -2
  29. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
  30. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  31. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +3 -1
  32. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  33. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  34. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +1 -1
  35. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  36. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  37. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +5 -4
  38. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  39. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +5 -0
  40. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
  41. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +3 -1
  42. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  43. package/out/src/services/chaintracker/chaintracks/index.all.d.ts +1 -0
  44. package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
  45. package/out/src/services/chaintracker/chaintracks/index.all.js +1 -0
  46. package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
  47. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +3 -0
  48. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
  49. package/out/src/services/chaintracker/chaintracks/index.mobile.js +3 -0
  50. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
  51. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +20 -0
  52. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -0
  53. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +102 -0
  54. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -0
  55. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +23 -0
  56. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  57. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +117 -41
  58. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  59. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +2 -1
  60. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  61. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +2 -2
  62. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  63. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +30 -3
  64. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  65. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +122 -46
  66. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  67. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts +29 -0
  68. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts.map +1 -0
  69. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js +56 -0
  70. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js.map +1 -0
  71. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +11 -3
  72. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  73. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +51 -12
  74. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  75. package/out/src/services/chaintracker/index.all.d.ts +1 -0
  76. package/out/src/services/chaintracker/index.all.d.ts.map +1 -1
  77. package/out/src/services/chaintracker/index.all.js +1 -0
  78. package/out/src/services/chaintracker/index.all.js.map +1 -1
  79. package/out/src/services/chaintracker/index.client.d.ts +1 -0
  80. package/out/src/services/chaintracker/index.client.d.ts.map +1 -1
  81. package/out/src/services/chaintracker/index.client.js +1 -0
  82. package/out/src/services/chaintracker/index.client.js.map +1 -1
  83. package/out/src/services/chaintracker/index.mobile.d.ts +1 -0
  84. package/out/src/services/chaintracker/index.mobile.d.ts.map +1 -1
  85. package/out/src/services/chaintracker/index.mobile.js +1 -0
  86. package/out/src/services/chaintracker/index.mobile.js.map +1 -1
  87. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +6 -0
  88. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -1
  89. package/out/src/storage/methods/reconcileFailedTransactionInputs.js +28 -10
  90. package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -1
  91. package/package.json +2 -2
@@ -3,8 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChaintracksFetch = exports.ChaintracksFetchError = void 0;
4
4
  const sdk_1 = require("@bsv/sdk");
5
5
  const utilityHelpers_1 = require("../../../../utility/utilityHelpers");
6
- const MAX_RETRIES = 3;
6
+ const DEFAULT_MAX_RETRIES = 3;
7
7
  const DEFAULT_RETRY_MSECS = 1000;
8
+ const DEFAULT_MAX_RETRY_MSECS = 2 * 60 * 1000;
9
+ const DEFAULT_TIMEOUT_MSECS = 30 * 1000;
10
+ const DEFAULT_MAX_RESPONSE_BYTES = 16 * 1024 * 1024;
8
11
  class ChaintracksFetchError extends Error {
9
12
  url;
10
13
  status;
@@ -19,7 +22,7 @@ class ChaintracksFetchError extends Error {
19
22
  this.name = 'ChaintracksFetchError';
20
23
  }
21
24
  get retryable() {
22
- return isRetryableHttpStatus(this.status);
25
+ return this.status === 0 || isRetryableHttpStatus(this.status);
23
26
  }
24
27
  }
25
28
  exports.ChaintracksFetchError = ChaintracksFetchError;
@@ -38,70 +41,143 @@ function retryAfterMsecs(response) {
38
41
  return undefined;
39
42
  return Math.max(0, dateMsecs - Date.now());
40
43
  }
41
- function retryWaitMsecs(retry, retryAfter) {
42
- return Math.min(retryAfter ?? DEFAULT_RETRY_MSECS * (retry + 1), 2 * 60 * 1000);
43
- }
44
- async function waitIfRetryable(response, retry) {
45
- if (!isRetryableHttpStatus(response.status) || retry >= MAX_RETRIES)
46
- return false;
47
- await (0, utilityHelpers_1.wait)(retryWaitMsecs(retry, retryAfterMsecs(response)));
48
- return true;
49
- }
50
44
  function fetchError(url, response, kind) {
51
45
  const retryAfter = retryAfterMsecs(response);
52
46
  return new ChaintracksFetchError(`Failed to ${kind} from ${url}: ${response.status} ${response.statusText}`, url, response.status, response.statusText, retryAfter);
53
47
  }
48
+ function positiveSafeInteger(value, fallback, name) {
49
+ const resolved = value ?? fallback;
50
+ if (!Number.isSafeInteger(resolved) || resolved < 1) {
51
+ throw new Error(`${name} must be a positive safe integer`);
52
+ }
53
+ return resolved;
54
+ }
54
55
  /**
55
- * This class implements the ChaintracksFetchApi
56
- * using the @bsv/sdk `defaultHttpClient`.
56
+ * Bounded fetch implementation shared by ChainTracks sources.
57
+ *
58
+ * Retry policy lives here so callers never multiply attempts. Every attempt
59
+ * has a deadline that remains active while the response body is consumed, and
60
+ * every materialized response has an explicit byte ceiling.
57
61
  */
58
62
  class ChaintracksFetch {
59
63
  httpClient = (0, sdk_1.defaultHttpClient)();
60
- async download(url) {
61
- for (let retry = 0;; retry++) {
62
- const response = await fetch(url, {
63
- method: 'GET',
64
- headers: {
65
- 'Content-Type': 'application/octet-stream'
66
- }
67
- });
68
- if (!response.ok) {
69
- if (await waitIfRetryable(response, retry))
70
- continue;
71
- throw fetchError(url, response, 'download');
72
- }
73
- const data = await response.arrayBuffer();
74
- return new Uint8Array(data);
64
+ maxRetries;
65
+ timeoutMsecs;
66
+ maxResponseBytes;
67
+ retryMsecs;
68
+ maxRetryMsecs;
69
+ random;
70
+ constructor(options = {}) {
71
+ const maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;
72
+ if (!Number.isSafeInteger(maxRetries) || maxRetries < 0) {
73
+ throw new Error('maxRetries must be a non-negative safe integer');
75
74
  }
75
+ this.maxRetries = maxRetries;
76
+ this.timeoutMsecs = positiveSafeInteger(options.timeoutMsecs, DEFAULT_TIMEOUT_MSECS, 'timeoutMsecs');
77
+ this.maxResponseBytes = positiveSafeInteger(options.maxResponseBytes, DEFAULT_MAX_RESPONSE_BYTES, 'maxResponseBytes');
78
+ this.retryMsecs = positiveSafeInteger(options.retryMsecs, DEFAULT_RETRY_MSECS, 'retryMsecs');
79
+ this.maxRetryMsecs = positiveSafeInteger(options.maxRetryMsecs, DEFAULT_MAX_RETRY_MSECS, 'maxRetryMsecs');
80
+ this.random = options.random ?? Math.random;
81
+ }
82
+ async download(url, maxResponseBytes) {
83
+ const responseLimit = maxResponseBytes == null
84
+ ? this.maxResponseBytes
85
+ : Math.min(this.maxResponseBytes, positiveSafeInteger(maxResponseBytes, this.maxResponseBytes, 'maxResponseBytes'));
86
+ return await this.requestBytes(url, {
87
+ method: 'GET',
88
+ headers: { Accept: 'application/octet-stream' }
89
+ }, 'download', responseLimit);
76
90
  }
77
91
  async fetchJson(url) {
78
- const requestJsonOptions = {
92
+ const bytes = await this.requestBytes(url, {
79
93
  method: 'GET',
80
- headers: {
81
- Accept: 'application/json'
82
- }
83
- };
84
- let json;
94
+ headers: { Accept: 'application/json' }
95
+ }, 'fetch JSON', this.maxResponseBytes);
96
+ return JSON.parse(new TextDecoder().decode(bytes));
97
+ }
98
+ async requestBytes(url, init, kind, maxResponseBytes) {
85
99
  for (let retry = 0;; retry++) {
86
- const response = await fetch(url, requestJsonOptions);
87
- if (!response.ok) {
88
- if (await waitIfRetryable(response, retry))
89
- continue;
90
- throw fetchError(url, response, 'fetch JSON');
100
+ const controller = new AbortController();
101
+ const timeout = setTimeout(() => controller.abort(), this.timeoutMsecs);
102
+ try {
103
+ return await this.requestAttempt(url, init, kind, maxResponseBytes, controller);
104
+ }
105
+ catch (error) {
106
+ const timedOut = controller.signal.aborted;
107
+ let fetchFailure;
108
+ if (error instanceof ChaintracksFetchError)
109
+ fetchFailure = error;
110
+ else {
111
+ fetchFailure = new ChaintracksFetchError(`Failed to ${kind} from ${url}: ${timedOut ? 'request timed out' : String(error)}`, url, 0, timedOut ? 'Request Timeout' : 'Network Error');
112
+ }
113
+ if (!fetchFailure.retryable || retry >= this.maxRetries)
114
+ throw fetchFailure;
115
+ await (0, utilityHelpers_1.wait)(this.retryWaitMsecs(retry, fetchFailure.retryAfterMsecs));
91
116
  }
92
- json = (await response.json());
93
- break;
117
+ finally {
118
+ clearTimeout(timeout);
119
+ }
120
+ }
121
+ }
122
+ async requestAttempt(url, init, kind, maxResponseBytes, controller) {
123
+ const response = await fetch(url, { ...init, signal: controller.signal });
124
+ if (!response.ok) {
125
+ await response.body?.cancel().catch(() => undefined);
126
+ throw fetchError(url, response, kind);
127
+ }
128
+ return await this.readResponseBytes(url, response, kind, maxResponseBytes);
129
+ }
130
+ async readResponseBytes(url, response, kind, maxResponseBytes) {
131
+ const contentLength = Number(response.headers.get('content-length'));
132
+ if (Number.isFinite(contentLength) && contentLength > maxResponseBytes) {
133
+ await response.body?.cancel().catch(() => undefined);
134
+ throw this.responseTooLarge(url, response, kind, contentLength, maxResponseBytes);
135
+ }
136
+ if (response.body == null)
137
+ return new Uint8Array();
138
+ const reader = response.body.getReader();
139
+ const chunks = [];
140
+ let total = 0;
141
+ try {
142
+ for (;;) {
143
+ const { done, value } = await reader.read();
144
+ if (done)
145
+ break;
146
+ total += value.length;
147
+ if (total > maxResponseBytes) {
148
+ await reader.cancel().catch(() => undefined);
149
+ throw this.responseTooLarge(url, response, kind, total, maxResponseBytes);
150
+ }
151
+ chunks.push(value);
152
+ }
153
+ }
154
+ finally {
155
+ reader.releaseLock();
94
156
  }
95
- return json;
157
+ const bytes = new Uint8Array(total);
158
+ let offset = 0;
159
+ for (const chunk of chunks) {
160
+ bytes.set(chunk, offset);
161
+ offset += chunk.length;
162
+ }
163
+ return bytes;
164
+ }
165
+ responseTooLarge(url, response, kind, observedBytes, maxResponseBytes) {
166
+ return new ChaintracksFetchError(`Failed to ${kind} from ${url}: response exceeded ${maxResponseBytes} bytes ` +
167
+ `(observed at least ${observedBytes})`, url, response.status, 'Response Too Large');
168
+ }
169
+ retryWaitMsecs(retry, retryAfter) {
170
+ if (retryAfter != null)
171
+ return Math.min(retryAfter, this.maxRetryMsecs);
172
+ const exponential = Math.min(this.retryMsecs * 2 ** retry, this.maxRetryMsecs);
173
+ const jitter = 0.75 + Math.min(1, Math.max(0, this.random())) * 0.5;
174
+ return Math.min(Math.round(exponential * jitter), this.maxRetryMsecs);
96
175
  }
97
176
  pathJoin(baseUrl, subpath) {
98
- // Ensure the subpath doesn't start with a slash to avoid issues
99
177
  const cleanSubpath = subpath.replace(/^\/+/, '');
100
178
  if (!baseUrl.endsWith('/'))
101
179
  baseUrl += '/';
102
- // Create a new URL object and append the subpath
103
- const url = new URL(cleanSubpath, baseUrl);
104
- return url.toString();
180
+ return new URL(cleanSubpath, baseUrl).toString();
105
181
  }
106
182
  }
107
183
  exports.ChaintracksFetch = ChaintracksFetch;
@@ -1 +1 @@
1
- {"version":3,"file":"ChaintracksFetch.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChaintracksFetch.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { BulkFileDownloadBudgetApi } from '../Api/BulkFileDataCacheApi';
2
+ export interface FixedWindowBulkFileDownloadBudgetOptions {
3
+ maxBytes: number;
4
+ windowMsecs?: number;
5
+ now?: () => number;
6
+ }
7
+ /**
8
+ * Conservative process-local byte reservation budget for remote bulk-header
9
+ * downloads. A reservation is retained even when the subsequent request
10
+ * fails, preventing a failing upstream from bypassing the bound.
11
+ *
12
+ * @public
13
+ */
14
+ export declare class FixedWindowBulkFileDownloadBudget implements BulkFileDownloadBudgetApi {
15
+ private readonly maxBytes;
16
+ private readonly windowMsecs;
17
+ private readonly now;
18
+ private windowStartedAt;
19
+ private consumedBytes;
20
+ constructor(options: FixedWindowBulkFileDownloadBudgetOptions);
21
+ consume(byteCount: number): void;
22
+ snapshot(): {
23
+ maxBytes: number;
24
+ consumedBytes: number;
25
+ windowStartedAt: number;
26
+ windowMsecs: number;
27
+ };
28
+ }
29
+ //# sourceMappingURL=FixedWindowBulkFileDownloadBudget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixedWindowBulkFileDownloadBudget.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAE5E,MAAM,WAAW,wCAAwC;IACvD,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;GAMG;AACH,qBAAa,iCAAkC,YAAW,yBAAyB;IACjF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,aAAa,CAAI;IAEzB,YAAY,OAAO,EAAE,wCAAwC,EAY5D;IAED,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAgB/B;IAED,QAAQ,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAOpG;CACF"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FixedWindowBulkFileDownloadBudget = void 0;
4
+ const sdk_1 = require("../../../../sdk");
5
+ /**
6
+ * Conservative process-local byte reservation budget for remote bulk-header
7
+ * downloads. A reservation is retained even when the subsequent request
8
+ * fails, preventing a failing upstream from bypassing the bound.
9
+ *
10
+ * @public
11
+ */
12
+ class FixedWindowBulkFileDownloadBudget {
13
+ maxBytes;
14
+ windowMsecs;
15
+ now;
16
+ windowStartedAt;
17
+ consumedBytes = 0;
18
+ constructor(options) {
19
+ if (!Number.isSafeInteger(options.maxBytes) || options.maxBytes < 1) {
20
+ throw new sdk_1.WERR_INVALID_PARAMETER('maxBytes', 'a positive safe integer');
21
+ }
22
+ const windowMsecs = options.windowMsecs ?? 60 * 60 * 1000;
23
+ if (!Number.isSafeInteger(windowMsecs) || windowMsecs < 1) {
24
+ throw new sdk_1.WERR_INVALID_PARAMETER('windowMsecs', 'a positive safe integer');
25
+ }
26
+ this.maxBytes = options.maxBytes;
27
+ this.windowMsecs = windowMsecs;
28
+ this.now = options.now ?? Date.now;
29
+ this.windowStartedAt = this.now();
30
+ }
31
+ consume(byteCount) {
32
+ if (!Number.isSafeInteger(byteCount) || byteCount < 1) {
33
+ throw new sdk_1.WERR_INVALID_PARAMETER('byteCount', 'a positive safe integer');
34
+ }
35
+ const now = this.now();
36
+ if (now - this.windowStartedAt >= this.windowMsecs) {
37
+ this.windowStartedAt = now;
38
+ this.consumedBytes = 0;
39
+ }
40
+ if (this.consumedBytes + byteCount > this.maxBytes) {
41
+ throw new Error(`Bulk-header download budget exceeded: requested ${byteCount} bytes with ` +
42
+ `${this.maxBytes - this.consumedBytes} bytes remaining in the current window.`);
43
+ }
44
+ this.consumedBytes += byteCount;
45
+ }
46
+ snapshot() {
47
+ return {
48
+ maxBytes: this.maxBytes,
49
+ consumedBytes: this.consumedBytes,
50
+ windowStartedAt: this.windowStartedAt,
51
+ windowMsecs: this.windowMsecs
52
+ };
53
+ }
54
+ }
55
+ exports.FixedWindowBulkFileDownloadBudget = FixedWindowBulkFileDownloadBudget;
56
+ //# sourceMappingURL=FixedWindowBulkFileDownloadBudget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixedWindowBulkFileDownloadBudget.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.ts"],"names":[],"mappings":";;;AAAA,yCAAwD;AASxD;;;;;;GAMG;AACH;IACmB,QAAQ,CAAQ;IAChB,WAAW,CAAQ;IACnB,GAAG,CAAc;IAC1B,eAAe,CAAQ;IACvB,aAAa,GAAG,CAAC,CAAA;IAEzB,YAAY,OAAiD;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,4BAAsB,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAA;QACzE,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QACzD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,4BAAsB,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAA;QAC5E,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;QAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACnC,CAAC;IAED,OAAO,CAAC,SAAiB;QACvB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,4BAAsB,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAA;QAC1E,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnD,IAAI,CAAC,eAAe,GAAG,GAAG,CAAA;YAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACxB,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,mDAAmD,SAAS,cAAc;gBACxE,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,yCAAyC,CACjF,CAAA;QACH,CAAC;QACD,IAAI,CAAC,aAAa,IAAI,SAAS,CAAA;IACjC,CAAC;IAED,QAAQ;QACN,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAA;IACH,CAAC;CACF"}
@@ -77,14 +77,22 @@ export declare function deserializeBaseBlockHeaders(buffer: number[] | Uint8Arra
77
77
  export declare function deserializeBlockHeaders(firstHeight: number, buffer: number[] | Uint8Array, offset?: number, count?: number | undefined): BlockHeader[];
78
78
  export declare function validateHeaderFormat(header: BlockHeader): void;
79
79
  /**
80
- * Ensures that a header has a valid proof-of-work
81
- * Requires chain is 'main'
80
+ * Ensures that a header has a valid proof-of-work target and hash.
82
81
  *
83
82
  * @param header The header to validate
84
83
  *
85
84
  * @returns true if the header is valid
86
85
  */
87
- export declare function validateHeaderDifficulty(hash: Buffer, bits: number): boolean;
86
+ export declare function validateHeaderDifficulty(hash: number[] | Uint8Array, bits: number): boolean;
87
+ /**
88
+ * Ensures that a structured header's computed hash satisfies its declared
89
+ * proof-of-work target.
90
+ *
91
+ * @param header Header whose format and hash have already been checked.
92
+ * @returns true if the header has valid proof-of-work.
93
+ * @publicbody
94
+ */
95
+ export declare function validateHeaderProofOfWork(header: BlockHeader): true;
88
96
  /**
89
97
  * Computes double sha256 hash of bitcoin block header
90
98
  * bytes are reversed to bigendian order
@@ -1 +1 @@
1
- {"version":3,"file":"blockHeaderUtilities.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/blockHeaderUtilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blockHeaderUtilities.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/blockHeaderUtilities.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ exports.deserializeBaseBlockHeaders = deserializeBaseBlockHeaders;
14
14
  exports.deserializeBlockHeaders = deserializeBlockHeaders;
15
15
  exports.validateHeaderFormat = validateHeaderFormat;
16
16
  exports.validateHeaderDifficulty = validateHeaderDifficulty;
17
+ exports.validateHeaderProofOfWork = validateHeaderProofOfWork;
17
18
  exports.blockHash = blockHash;
18
19
  exports.serializeBaseBlockHeader = serializeBaseBlockHeader;
19
20
  exports.serializeBaseBlockHeaders = serializeBaseBlockHeaders;
@@ -32,7 +33,6 @@ const dirtyHashes_1 = require("./dirtyHashes");
32
33
  const sdk_1 = require("@bsv/sdk");
33
34
  const utilityHelpers_noBuffer_1 = require("../../../../utility/utilityHelpers.noBuffer");
34
35
  const utilityHelpers_1 = require("../../../../utility/utilityHelpers");
35
- const validBulkHeaderFilesByFileHash_1 = require("./validBulkHeaderFilesByFileHash");
36
36
  const WERR_errors_1 = require("../../../../sdk/WERR_errors");
37
37
  /**
38
38
  * Computes sha256 hash of file contents read as bytes with no encoding.
@@ -59,7 +59,7 @@ async function validateBulkFileData(bf, prevHash, prevChainWork, fetch) {
59
59
  const vbf = { ...bf };
60
60
  if (vbf.data == null && vbf.sourceUrl && fetch != null) {
61
61
  const url = fetch.pathJoin(vbf.sourceUrl, vbf.fileName);
62
- vbf.data = await fetch.download(url);
62
+ vbf.data = await fetch.download(url, vbf.count * 80);
63
63
  }
64
64
  if (vbf.data == null)
65
65
  throw new WERR_errors_1.WERR_INVALID_OPERATION(`bulk file ${vbf.fileName} data is unavailable`);
@@ -73,13 +73,11 @@ async function validateBulkFileData(bf, prevHash, prevChainWork, fetch) {
73
73
  if (bf.fileHash && bf.fileHash !== vbf.fileHash) {
74
74
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('bf.fileHash', `expected ${bf.fileHash} but got ${vbf.fileHash}`);
75
75
  }
76
- if (!(0, validBulkHeaderFilesByFileHash_1.isKnownValidBulkHeaderFile)(vbf)) {
77
- const { lastHeaderHash, lastChainWork } = validateBufferOfHeaders(vbf.data, prevHash, 0, undefined, prevChainWork);
78
- vbf.lastHash = lastHeaderHash;
79
- vbf.lastChainWork = lastChainWork;
80
- if (vbf.firstHeight === 0) {
81
- validateGenesisHeader(vbf.data, vbf.chain);
82
- }
76
+ const { lastHeaderHash, lastChainWork } = validateBufferOfHeaders(vbf.data, prevHash, 0, undefined, prevChainWork);
77
+ vbf.lastHash = lastHeaderHash;
78
+ vbf.lastChainWork = lastChainWork;
79
+ if (vbf.firstHeight === 0) {
80
+ validateGenesisHeader(vbf.data, vbf.chain);
83
81
  }
84
82
  vbf.validated = true;
85
83
  return vbf;
@@ -113,6 +111,7 @@ function validateBufferOfHeaders(buffer, previousHash, offset = 0, count = -1, p
113
111
  }
114
112
  lastHeaderHash = (0, utilityHelpers_noBuffer_1.asString)((0, utilityHelpers_1.doubleSha256BE)(header));
115
113
  (0, dirtyHashes_1.validateAgainstDirtyHashes)(lastHeaderHash);
114
+ validateConsensusProofOfWork(lastHeaderHash, h.bits);
116
115
  if (lastChainWork) {
117
116
  lastChainWork = addWork(lastChainWork, convertBitsToWork(h.bits));
118
117
  }
@@ -310,8 +309,7 @@ function validateHeaderFormat(header) {
310
309
  }
311
310
  }
312
311
  /**
313
- * Ensures that a header has a valid proof-of-work
314
- * Requires chain is 'main'
312
+ * Ensures that a header has a valid proof-of-work target and hash.
315
313
  *
316
314
  * @param header The header to validate
317
315
  *
@@ -319,11 +317,52 @@ function validateHeaderFormat(header) {
319
317
  */
320
318
  function validateHeaderDifficulty(hash, bits) {
321
319
  const hashBN = new sdk_1.BigNumber((0, utilityHelpers_noBuffer_1.asArray)(hash));
322
- const target = convertBitsToTarget(bits);
320
+ const target = validateCompactTarget(bits);
323
321
  if (hashBN.lte(target))
324
322
  return true;
325
323
  throw new Error('Block hash is not less than specified target.');
326
324
  }
325
+ const proofOfWorkExceptions = new Map([
326
+ // The historical STN genesis header is a network-defined bootstrap
327
+ // checkpoint whose hash does not satisfy its encoded target. No later
328
+ // header receives this exception.
329
+ ['6b38bdbcd73a19f7889d23e1fa6166a9de71affceca60ca3bb1b28af8135c594', 0x1d00ffff]
330
+ ]);
331
+ function validateConsensusProofOfWork(hash, bits) {
332
+ if (proofOfWorkExceptions.get(hash) === bits)
333
+ return;
334
+ validateHeaderDifficulty((0, utilityHelpers_noBuffer_1.asArray)(hash, 'hex'), bits);
335
+ }
336
+ function validateCompactTarget(bits) {
337
+ if (!Number.isSafeInteger(bits) || bits < 0 || bits > 0xffffffff) {
338
+ throw new Error('Block target encoding is invalid.');
339
+ }
340
+ const size = bits >>> 24;
341
+ const word = bits & 0x007fffff;
342
+ const negative = word !== 0 && (bits & 0x00800000) !== 0;
343
+ const overflow = word !== 0 && (size > 34 || (word > 0xff && size > 33) || (word > 0xffff && size > 32));
344
+ if (word === 0 || negative || overflow) {
345
+ throw new Error('Block target encoding is invalid.');
346
+ }
347
+ const target = convertBitsToTarget(bits);
348
+ const proofOfWorkLimit = convertBitsToTarget(0x1d00ffff);
349
+ if (target.gt(proofOfWorkLimit)) {
350
+ throw new Error('Block target exceeds the proof-of-work limit.');
351
+ }
352
+ return target;
353
+ }
354
+ /**
355
+ * Ensures that a structured header's computed hash satisfies its declared
356
+ * proof-of-work target.
357
+ *
358
+ * @param header Header whose format and hash have already been checked.
359
+ * @returns true if the header has valid proof-of-work.
360
+ * @publicbody
361
+ */
362
+ function validateHeaderProofOfWork(header) {
363
+ validateConsensusProofOfWork(header.hash, header.bits);
364
+ return true;
365
+ }
327
366
  /**
328
367
  * Computes double sha256 hash of bitcoin block header
329
368
  * bytes are reversed to bigendian order
@@ -1 +1 @@
1
- {"version":3,"file":"blockHeaderUtilities.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/blockHeaderUtilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blockHeaderUtilities.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/blockHeaderUtilities.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './chaintracks/index.all';
2
2
  export * from './ChaintracksChainTracker';
3
+ export * from './LocalChainTracker';
3
4
  export * from './BHServiceClient';
4
5
  //# sourceMappingURL=index.all.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.all.d.ts","sourceRoot":"","sources":["../../../../src/services/chaintracker/index.all.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AAEvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.all.d.ts","sourceRoot":"","sources":["../../../../src/services/chaintracker/index.all.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AAEvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA"}
@@ -16,5 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./chaintracks/index.all"), exports);
18
18
  __exportStar(require("./ChaintracksChainTracker"), exports);
19
+ __exportStar(require("./LocalChainTracker"), exports);
19
20
  __exportStar(require("./BHServiceClient"), exports);
20
21
  //# sourceMappingURL=index.all.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.all.js","sourceRoot":"","sources":["../../../../src/services/chaintracker/index.all.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC;AAEvC,4DAAyC;AACzC,oDAAiC"}
1
+ {"version":3,"file":"index.all.js","sourceRoot":"","sources":["../../../../src/services/chaintracker/index.all.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC;AAEvC,4DAAyC;AACzC,sDAAmC;AACnC,oDAAiC"}
@@ -1,4 +1,5 @@
1
1
  export * from './chaintracks/index.client';
2
2
  export * from './ChaintracksChainTracker';
3
+ export * from './LocalChainTracker';
3
4
  export * from './BHServiceClient';
4
5
  //# sourceMappingURL=index.client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../../src/services/chaintracker/index.client.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAE1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../../src/services/chaintracker/index.client.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAE1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA"}
@@ -16,5 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./chaintracks/index.client"), exports);
18
18
  __exportStar(require("./ChaintracksChainTracker"), exports);
19
+ __exportStar(require("./LocalChainTracker"), exports);
19
20
  __exportStar(require("./BHServiceClient"), exports);
20
21
  //# sourceMappingURL=index.client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.js","sourceRoot":"","sources":["../../../../src/services/chaintracker/index.client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA0C;AAE1C,4DAAyC;AACzC,oDAAiC"}
1
+ {"version":3,"file":"index.client.js","sourceRoot":"","sources":["../../../../src/services/chaintracker/index.client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA0C;AAE1C,4DAAyC;AACzC,sDAAmC;AACnC,oDAAiC"}