@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.
- package/CHANGELOG.md +25 -0
- package/README.md +23 -8
- package/docs/README.md +24 -23
- package/docs/local-first-chaintracks.md +129 -0
- package/out/src/index.mobile.d.ts +1 -0
- package/out/src/index.mobile.d.ts.map +1 -1
- package/out/src/index.mobile.js +1 -0
- package/out/src/index.mobile.js.map +1 -1
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts +2 -0
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +66 -11
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts +8 -0
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +3 -1
- package/out/src/services/Services.js.map +1 -1
- package/out/src/services/chaintracker/LocalChainTracker.d.ts +96 -0
- package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -0
- package/out/src/services/chaintracker/LocalChainTracker.js +295 -0
- package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts +26 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js +3 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +13 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +2 -2
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +3 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +5 -4
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +5 -0
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +3 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.all.d.ts +1 -0
- package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.all.js +1 -0
- package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.js +3 -0
- package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +20 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +102 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +23 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +117 -41
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +2 -2
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +30 -3
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +122 -46
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts +29 -0
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js +56 -0
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +11 -3
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +51 -12
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
- package/out/src/services/chaintracker/index.all.d.ts +1 -0
- package/out/src/services/chaintracker/index.all.d.ts.map +1 -1
- package/out/src/services/chaintracker/index.all.js +1 -0
- package/out/src/services/chaintracker/index.all.js.map +1 -1
- package/out/src/services/chaintracker/index.client.d.ts +1 -0
- package/out/src/services/chaintracker/index.client.d.ts.map +1 -1
- package/out/src/services/chaintracker/index.client.js +1 -0
- package/out/src/services/chaintracker/index.client.js.map +1 -1
- package/out/src/services/chaintracker/index.mobile.d.ts +1 -0
- package/out/src/services/chaintracker/index.mobile.d.ts.map +1 -1
- package/out/src/services/chaintracker/index.mobile.js +1 -0
- package/out/src/services/chaintracker/index.mobile.js.map +1 -1
- package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +6 -0
- package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -1
- package/out/src/storage/methods/reconcileFailedTransactionInputs.js +28 -10
- package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -1
- 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
|
|
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
|
-
*
|
|
56
|
-
*
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
|
92
|
+
const bytes = await this.requestBytes(url, {
|
|
79
93
|
method: 'GET',
|
|
80
|
-
headers: {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
93
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":";;;AAAA,kCAAwD;AAExD,uEAAyD;AAEzD,MAAM,
|
|
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
|
package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts.map
ADDED
|
@@ -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
|
package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js.map
ADDED
|
@@ -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:
|
|
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":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,UAAU,CAAA;AAGjD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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 =
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0D;AAC1D,kCAAiD;AACjD,yFAA+E;AAC/E,uEAAmE;AAKnE,qFAA6E;AAC7E,6DAA4F;AAG5F;;;;;GAKG;AACI,KAAK,iCACV,EAAoB,EACpB,QAAgB,EAChB,WAAW,GAAG,KAAK;IAEnB,MAAM,MAAM,GAAG,IAAI,UAAI,CAAC,MAAM,EAAE,CAAA;IAChC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC3B,MAAM,CAAC,MAAM,CAAC,IAAA,iCAAO,EAAC,KAAK,CAAC,CAAC,CAAA;IAC7B,OAAO,EAAE,IAAI,EAAE,WAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;AAC1D,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,+BACV,EAAsB,EACtB,QAAgB,EAChB,aAAqB,EACrB,KAA2B;IAE3B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAA;IAErB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvD,GAAG,CAAC,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI;QAAE,MAAM,IAAI,oCAAsB,CAAC,aAAa,GAAG,CAAC,QAAQ,sBAAsB,CAAC,CAAA;IAEvG,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,oCAAsB,CAAC,UAAU,EAAE,gDAAgD,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IAC3G,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,oCAAsB,CAC9B,SAAS,EACT,aAAa,GAAG,CAAC,QAAQ,gBAAgB,GAAG,CAAC,IAAI,CAAC,MAAM,kCAAkC,GAAG,CAAC,KAAK,EAAE,CACtG,CAAA;IACH,CAAC;IAED,GAAG,CAAC,QAAQ,GAAG,IAAA,kCAAQ,EAAC,UAAI,CAAC,MAAM,CAAC,IAAA,iCAAO,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IACjE,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,oCAAsB,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,QAAQ,YAAY,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpG,CAAC;IAED,IAAI,CAAC,IAAA,2DAA0B,EAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QAClH,GAAG,CAAC,QAAQ,GAAG,cAAc,CAAA;QAC7B,GAAG,CAAC,aAAa,GAAG,aAAc,CAAA;QAClC,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAC1B,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAM,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IACD,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;IAEpB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;GAQG;AACH,iCACE,MAAkB,EAClB,YAAoB,EACpB,MAAM,GAAG,CAAC,EACV,KAAK,GAAG,CAAC,CAAC,EACV,iBAA0B;IAE1B,IAAI,KAAK,GAAG,CAAC;QAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;IAChE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC1B,IAAI,cAAc,GAAG,YAAY,CAAA;IACjC,IAAI,aAAa,GAAG,iBAAiB,CAAA;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,CAAA;QACnC,MAAM,SAAS,GAAG,WAAW,GAAG,EAAE,CAAA;QAClC,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,oCAAsB,CAC9B,QAAQ,EACR,qCAAqC,CAAC,uCAAuC,WAAW,wBAAwB,MAAM,CAAC,MAAM,EAAE,CAChI,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QACnD,MAAM,CAAC,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,QAAQ,GAAG,IAAA,kCAAQ,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QACxD,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,yBAAyB,cAAc,OAAO,QAAQ,EAAE,CAAC,CAAA;QACtF,CAAC;QACD,cAAc,GAAG,IAAA,kCAAQ,EAAC,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC,CAAA;QACjD,IAAA,wCAA0B,EAAC,cAAc,CAAC,CAAA;QAC1C,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAA;AAC1C,CAAC;AAED;;;;GAIG;AACH,+BAAsC,MAAkB,EAAE,KAAY;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAClC,MAAM,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC3C,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAC/B,IACE,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI;QAClB,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC,YAAY;QAClC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU;QAC9B,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI;QAClB,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK;QACpB,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO;QACxB,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;QACtB,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,EAClB,CAAC;QACD,MAAM,IAAI,oCAAsB,CAAC,QAAQ,EAAE,4BAA4B,KAAK,EAAE,CAAC,CAAA;IACjF,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,wBAA+B,IAAe;IAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAC5C,CAAC;AAED;;GAEG;AACH,oBAA2B,KAAa,EAAE,KAAa;IACrD,OAAO,IAAI,eAAS,CAAC,IAAA,iCAAO,EAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,eAAS,CAAC,IAAA,iCAAO,EAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAChF,CAAC;AAED;;;GAGG;AACH,iBAAwB,KAAa,EAAE,KAAa;IAClD,MAAM,GAAG,GAAG,IAAI,eAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,eAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;IAClE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED;;;GAGG;AACH,iBAAwB,KAAa,EAAE,KAAa;IAClD,MAAM,GAAG,GAAG,IAAI,eAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,eAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;IAClE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED;;;;GAIG;AACH,6BAAoC,IAAuB;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAErD,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,UAAU,CAAA;IAE9B,MAAM,MAAM,GAAG,IAAI,eAAS,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;IAChC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,2BAAkC,IAAuB;IACvD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAExC,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEzD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAC5C,CAAC;AAED,qCACE,MAA6B,EAC7B,MAAM,GAAG,CAAC,EACV,KAA0B;IAE1B,MAAM,OAAO,GAAsB,EAAE,CAAA;IACrC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QACxD,MAAM,IAAI,EAAE,CAAA;IACd,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,iCACE,WAAmB,EACnB,MAA6B,EAC7B,MAAM,GAAG,CAAC,EACV,KAA0B;IAE1B,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,IAAI,UAAU,GAAG,WAAW,CAAA;IAC5B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACzF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG;YACb,GAAG,IAAI;YACP,MAAM,EAAE,UAAU,EAAE;YACpB,IAAI,EAAE,IAAA,kCAAQ,EAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SACtC,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpB,MAAM,IAAI,EAAE,CAAA;IACd,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,6BAA6B,CAAC,KAAc,EAAE,KAAa,EAAE,OAAe,EAAE,UAAU,GAAG,KAAK;IACvG,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CAAC,UAAU,KAAK,oBAAoB,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,UAAU,KAAK,sBAAsB,CAAC,CAAA;IAC5D,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,0BAA0B,OAAO,GAAG,CAAC,CAAA;IAC3E,CAAC;AACH,CAAC;AAED,8BAAqC,MAAmB;IACtD,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,IAAI;KACX,CAAA;IAED,MAAM,QAAQ,GAAG,UAAU,CAAA;IAE3B;;OAEG;IACH,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAA;IACxC,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAA;IAClD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;IAED;;OAEG;IACH,6BAA6B,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IAElE;;OAEG;IACH,6BAA6B,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;IAE/E;;OAEG;IACH,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IAED;;OAEG;IACH,6BAA6B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE5D;;OAEG;IACH,6BAA6B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE5D;;OAEG;IACH,6BAA6B,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAE9D;;OAEG;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,IAAA,kCAAQ,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,kCAAyC,IAAY,EAAE,IAAY;IACjE,MAAM,MAAM,GAAG,IAAI,eAAS,CAAC,IAAA,iCAAO,EAAC,IAAI,CAAC,CAAC,CAAA;IAE3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAExC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAEnC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,mBAA0B,MAA+C;IACvE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAC/G,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAC3E,OAAO,IAAA,kCAAQ,EAAC,IAAA,+BAAc,EAAC,CAAC,CAAC,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;GAOG;AACH,kCAAyC,MAAuB,EAAE,MAAiB,EAAE,MAAe;IAClG,MAAM,MAAM,GAAG,IAAI,WAAK,CAAC,MAAM,EAAE,CAAA;IACjC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,iCAAO,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IACpD,MAAM,CAAC,KAAK,CAAC,IAAA,iCAAO,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IAClD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,KAAK,CAAC,CAAA;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,GAAG,CAAC,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YAC3F,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,mCAA0C,OAAsB;IAC9D,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAChD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACV,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,CAAC,EAAE,CAAA;QACH,MAAM,CAAC,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;IACrB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,oCAA2C,MAA6B,EAAE,MAAM,GAAG,CAAC;IAClF,MAAM,MAAM,GAAG,WAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChE,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE;QAC9B,YAAY,EAAE,IAAA,kCAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,UAAU,EAAE,IAAA,kCAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE;QAC3B,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE;KAC7B,CAAA;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,gCAAuC,MAA6B,EAAE,MAAc,EAAE,MAAM,GAAG,CAAC;IAC9F,MAAM,IAAI,GAAG,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvD,MAAM,MAAM,GAAgB;QAC1B,GAAG,IAAI;QACP,MAAM;QACN,IAAI,EAAE,IAAA,kCAAQ,EAAC,IAAA,+BAAc,EAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;KAClE,CAAA;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;GAGG;AACH,uBAA8B,KAAY;IACxC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,CAAC;gBACV,YAAY,EAAE,kEAAkE;gBAChF,UAAU,EAAE,kEAAkE;gBAC9E,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,kEAAkE;aACzE,CAAA;QACH,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,CAAC;gBACV,YAAY,EAAE,kEAAkE;gBAChF,UAAU,EAAE,kEAAkE;gBAC9E,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,kEAAkE;aACzE,CAAA;QACH,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,CAAC;gBACV,YAAY,EAAE,kEAAkE;gBAChF,UAAU,EAAE,kEAAkE;gBAC9E,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,CAAC;gBACT,oEAAoE;gBACpE,oEAAoE;gBACpE,IAAI,EAAE,kEAAkE;aACzE,CAAA;QACH,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,CAAC;gBACV,YAAY,EAAE,kEAAkE;gBAChF,UAAU,EAAE,kEAAkE;gBAC9E,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,kEAAkE;aACzE,CAAA;QACH,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,CAAC;gBACV,YAAY,EAAE,kEAAkE;gBAChF,UAAU,EAAE,kEAAkE;gBAC9E,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,kEAAkE;aACzE,CAAA;QACH,KAAK,MAAM;YACT,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;IAC/G,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,uBAA8B,KAAY;IACxC,OAAO,wBAAwB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AACvD,CAAC;AAED;;;;GAIG;AACH,uBAA8B,MAAgB;IAC5C,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAA;AACjC,CAAC;AAED;;;;;GAKG;AACH,+BAAsC,CAAS,EAAE,YAAY,GAAG,IAAI;IAClE,MAAM,CAAC,GAAG;QACR,CAAC,GAAG,IAAI,EAAE,cAAc;QACxB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;QACf,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;QAChB,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe;KACjC,CAAA;IACD,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;AACvC,CAAC;AAED,uBAA8B,CAAS,EAAE,CAAwB,EAAE,MAAc;IAC/E,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,CAAC,cAAc;IACrC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;IAC7B,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;IAC9B,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA,CAAC,eAAe;IAC9C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,uBAA8B,CAAS,EAAE,CAAwB,EAAE,MAAc;IAC/E,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA,CAAC,eAAe;IAC9C,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;IAC9B,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;IAC7B,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,CAAC,cAAc;IACrC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,sBAA6B,CAAwB,EAAE,MAAc;IACnE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AACrF,CAAC;AAED,sBAA6B,CAAwB,EAAE,MAAc;IACnE,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;AACrF,CAAC;AAED;;;;;GAKG;AACH,+BAAsC,MAA6B,EAAE,YAAY,GAAG,IAAI;IACtF,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAA;IAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAC1D,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
1
|
+
{"version":3,"file":"blockHeaderUtilities.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/blockHeaderUtilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 +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"}
|