@substrate/api-sidecar 20.8.0 → 20.9.1
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/build/package.json +1 -1
- package/build/src/Specs.js +1 -0
- package/build/src/Specs.js.map +1 -1
- package/build/src/chains-config/assetHubKusamaControllers.js +16 -1
- package/build/src/chains-config/assetHubKusamaControllers.js.map +1 -1
- package/build/src/chains-config/assetHubNextWestendControllers.js +1 -0
- package/build/src/chains-config/assetHubNextWestendControllers.js.map +1 -1
- package/build/src/chains-config/assetHubPolkadotControllers.js +1 -0
- package/build/src/chains-config/assetHubPolkadotControllers.js.map +1 -1
- package/build/src/chains-config/assetHubWestendControllers.js +1 -0
- package/build/src/chains-config/assetHubWestendControllers.js.map +1 -1
- package/build/src/chains-config/defaultControllers.js +1 -0
- package/build/src/chains-config/defaultControllers.js.map +1 -1
- package/build/src/chains-config/index.js +8 -1
- package/build/src/chains-config/index.js.map +1 -1
- package/build/src/chains-config/kusamaControllers.js +1 -0
- package/build/src/chains-config/kusamaControllers.js.map +1 -1
- package/build/src/chains-config/polkadotControllers.js +1 -0
- package/build/src/chains-config/polkadotControllers.js.map +1 -1
- package/build/src/chains-config/westendControllers.js +1 -0
- package/build/src/chains-config/westendControllers.js.map +1 -1
- package/build/src/controllers/AbstractController.d.ts +1 -1
- package/build/src/controllers/AbstractController.js +8 -7
- package/build/src/controllers/AbstractController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksController.js +251 -186
- package/build/src/controllers/blocks/BlocksController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js +52 -48
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksParaInclusionsController.d.ts +19 -0
- package/build/src/controllers/blocks/BlocksParaInclusionsController.js +52 -0
- package/build/src/controllers/blocks/BlocksParaInclusionsController.js.map +1 -0
- package/build/src/controllers/blocks/BlocksRawExtrinsicsController.js +18 -14
- package/build/src/controllers/blocks/BlocksRawExtrinsicsController.js.map +1 -1
- package/build/src/controllers/blocks/index.d.ts +1 -0
- package/build/src/controllers/blocks/index.js +3 -1
- package/build/src/controllers/blocks/index.js.map +1 -1
- package/build/src/controllers/index.d.ts +5 -3
- package/build/src/controllers/index.js +3 -1
- package/build/src/controllers/index.js.map +1 -1
- package/build/src/controllers/rc/blocks/RcBlocksParaInclusionsController.d.ts +19 -0
- package/build/src/controllers/rc/blocks/RcBlocksParaInclusionsController.js +59 -0
- package/build/src/controllers/rc/blocks/RcBlocksParaInclusionsController.js.map +1 -0
- package/build/src/controllers/rc/blocks/index.d.ts +1 -0
- package/build/src/controllers/rc/blocks/index.js +3 -1
- package/build/src/controllers/rc/blocks/index.js.map +1 -1
- package/build/src/services/blocks/BlocksParaInclusionsService.d.ts +17 -0
- package/build/src/services/blocks/BlocksParaInclusionsService.js +85 -0
- package/build/src/services/blocks/BlocksParaInclusionsService.js.map +1 -0
- package/build/src/services/blocks/index.d.ts +1 -0
- package/build/src/services/blocks/index.js +1 -0
- package/build/src/services/blocks/index.js.map +1 -1
- package/build/src/types/responses/BlockParaInclusions.d.ts +77 -0
- package/build/src/types/responses/BlockParaInclusions.js +18 -0
- package/build/src/types/responses/BlockParaInclusions.js.map +1 -0
- package/build/src/types/responses/index.d.ts +1 -0
- package/build/src/types/responses/index.js +1 -0
- package/build/src/types/responses/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -138,31 +138,98 @@ class BlocksController extends AbstractController_1.default {
|
|
|
138
138
|
* @param res Express Response
|
|
139
139
|
*/
|
|
140
140
|
this.getLatestBlock = async ({ query: { eventDocs, extrinsicDocs, finalized, noFees, decodedXcmMsgs, paraId, useRcBlock, useEvmFormat }, method, route, }, res) => {
|
|
141
|
-
var _a
|
|
141
|
+
var _a;
|
|
142
142
|
const eventDocsArg = eventDocs === 'true';
|
|
143
143
|
const extrinsicDocsArg = extrinsicDocs === 'true';
|
|
144
144
|
const useRcBlockArg = useRcBlock === 'true';
|
|
145
|
+
if (useRcBlockArg) {
|
|
146
|
+
const rcApi = (_a = apiRegistry_1.ApiPromiseRegistry.getApiByType('relay')[0]) === null || _a === void 0 ? void 0 : _a.api;
|
|
147
|
+
let rcHash;
|
|
148
|
+
if (!this.options.finalizes) {
|
|
149
|
+
const rcHeader = await rcApi.rpc.chain.getHeader();
|
|
150
|
+
rcHash = rcHeader.hash;
|
|
151
|
+
}
|
|
152
|
+
else if (finalized === 'false') {
|
|
153
|
+
const rcHeader = await rcApi.rpc.chain.getHeader();
|
|
154
|
+
rcHash = rcHeader.hash;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
rcHash = await rcApi.rpc.chain.getFinalizedHead();
|
|
158
|
+
}
|
|
159
|
+
const rcAtResults = await this.getHashFromRcAt(rcHash);
|
|
160
|
+
// Return empty array if no Asset Hub blocks found
|
|
161
|
+
if (rcAtResults.length === 0) {
|
|
162
|
+
BlocksController.sanitizedSend(res, []);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// Process each Asset Hub block found
|
|
166
|
+
const results = [];
|
|
167
|
+
for (const { ahHash, rcBlockNumber } of rcAtResults) {
|
|
168
|
+
const queryFinalizedHead = !this.options.finalizes ? false : finalized === 'false';
|
|
169
|
+
const omitFinalizedTag = !this.options.finalizes ? true : false;
|
|
170
|
+
const noFeesArg = noFees === 'true';
|
|
171
|
+
const decodedXcmMsgsArg = decodedXcmMsgs === 'true';
|
|
172
|
+
const paraIdArg = paraId ? this.parseNumberOrThrow(paraId, 'paraId must be an integer') : undefined;
|
|
173
|
+
const options = {
|
|
174
|
+
eventDocs: eventDocsArg,
|
|
175
|
+
extrinsicDocs: extrinsicDocsArg,
|
|
176
|
+
checkFinalized: false,
|
|
177
|
+
queryFinalizedHead,
|
|
178
|
+
omitFinalizedTag,
|
|
179
|
+
noFees: noFeesArg,
|
|
180
|
+
checkDecodedXcm: decodedXcmMsgsArg,
|
|
181
|
+
paraId: paraIdArg,
|
|
182
|
+
useEvmAddressFormat: useEvmFormat === 'true',
|
|
183
|
+
};
|
|
184
|
+
// Create a key for the cache that is a concatenation of the block hash and all the query params included in the request
|
|
185
|
+
const cacheKey = ahHash.toString() +
|
|
186
|
+
Number(options.eventDocs) +
|
|
187
|
+
Number(options.extrinsicDocs) +
|
|
188
|
+
Number(options.checkFinalized) +
|
|
189
|
+
Number(options.noFees) +
|
|
190
|
+
Number(options.checkDecodedXcm) +
|
|
191
|
+
Number(options.paraId) +
|
|
192
|
+
Number(options.useEvmAddressFormat);
|
|
193
|
+
const isBlockCached = this.blockStore.get(cacheKey);
|
|
194
|
+
let block;
|
|
195
|
+
if (isBlockCached) {
|
|
196
|
+
block = isBlockCached;
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
const historicApi = await this.api.at(ahHash);
|
|
200
|
+
block = await this.service.fetchBlock(ahHash, historicApi, options);
|
|
201
|
+
this.blockStore.set(cacheKey, block);
|
|
202
|
+
}
|
|
203
|
+
const apiAt = await this.api.at(ahHash);
|
|
204
|
+
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
205
|
+
const enhancedResult = {
|
|
206
|
+
...block,
|
|
207
|
+
rcBlockNumber,
|
|
208
|
+
ahTimestamp: ahTimestamp.toString(),
|
|
209
|
+
};
|
|
210
|
+
results.push(enhancedResult);
|
|
211
|
+
}
|
|
212
|
+
BlocksController.sanitizedSend(res, results);
|
|
213
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
214
|
+
const path = route.path;
|
|
215
|
+
if (res.locals.metrics) {
|
|
216
|
+
const totExtrinsics = results.reduce((current, block) => {
|
|
217
|
+
const extrinsics = block.extrinsics;
|
|
218
|
+
if (Array.isArray(extrinsics)) {
|
|
219
|
+
return current + extrinsics.length;
|
|
220
|
+
}
|
|
221
|
+
return current;
|
|
222
|
+
}, 0);
|
|
223
|
+
this.emitExtrinsicMetrics(totExtrinsics, results.length, method, path, res);
|
|
224
|
+
}
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
145
227
|
let hash, queryFinalizedHead, omitFinalizedTag;
|
|
146
|
-
let rcBlockNumber;
|
|
147
228
|
if (!this.options.finalizes) {
|
|
148
229
|
// If the network chain doesn't finalize blocks, we dont want a finalized tag.
|
|
149
230
|
omitFinalizedTag = true;
|
|
150
231
|
queryFinalizedHead = false;
|
|
151
|
-
|
|
152
|
-
const rcApi = (_a = apiRegistry_1.ApiPromiseRegistry.getApiByType('relay')[0]) === null || _a === void 0 ? void 0 : _a.api;
|
|
153
|
-
const rcHeader = await rcApi.rpc.chain.getHeader();
|
|
154
|
-
const rcHash = rcHeader.hash;
|
|
155
|
-
rcBlockNumber = rcHeader.number.toString();
|
|
156
|
-
hash = await this.getAhAtFromRcAt(rcHash);
|
|
157
|
-
// Return empty array if no Asset Hub block found
|
|
158
|
-
if (!hash) {
|
|
159
|
-
BlocksController.sanitizedSend(res, []);
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
hash = (await this.api.rpc.chain.getHeader()).hash;
|
|
165
|
-
}
|
|
232
|
+
hash = (await this.api.rpc.chain.getHeader()).hash;
|
|
166
233
|
}
|
|
167
234
|
else if (finalized === 'false') {
|
|
168
235
|
// We query the finalized head to know where the latest finalized block
|
|
@@ -170,40 +237,12 @@ class BlocksController extends AbstractController_1.default {
|
|
|
170
237
|
// equal to the finalized head.
|
|
171
238
|
omitFinalizedTag = false;
|
|
172
239
|
queryFinalizedHead = true;
|
|
173
|
-
|
|
174
|
-
const rcApi = (_b = apiRegistry_1.ApiPromiseRegistry.getApiByType('relay')[0]) === null || _b === void 0 ? void 0 : _b.api;
|
|
175
|
-
const rcHeader = await rcApi.rpc.chain.getHeader();
|
|
176
|
-
const rcHash = rcHeader.hash;
|
|
177
|
-
rcBlockNumber = rcHeader.number.toString();
|
|
178
|
-
hash = await this.getAhAtFromRcAt(rcHash);
|
|
179
|
-
// Return empty array if no Asset Hub block found
|
|
180
|
-
if (!hash) {
|
|
181
|
-
BlocksController.sanitizedSend(res, []);
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
hash = (await this.api.rpc.chain.getHeader()).hash;
|
|
187
|
-
}
|
|
240
|
+
hash = (await this.api.rpc.chain.getHeader()).hash;
|
|
188
241
|
}
|
|
189
242
|
else {
|
|
190
243
|
omitFinalizedTag = false;
|
|
191
244
|
queryFinalizedHead = false;
|
|
192
|
-
|
|
193
|
-
const rcApi = (_c = apiRegistry_1.ApiPromiseRegistry.getApiByType('relay')[0]) === null || _c === void 0 ? void 0 : _c.api;
|
|
194
|
-
const rcHash = await rcApi.rpc.chain.getFinalizedHead();
|
|
195
|
-
const rcHeader = await rcApi.rpc.chain.getHeader(rcHash);
|
|
196
|
-
rcBlockNumber = rcHeader.number.toString();
|
|
197
|
-
hash = await this.getAhAtFromRcAt(rcHash);
|
|
198
|
-
// Return empty array if no Asset Hub block found
|
|
199
|
-
if (!hash) {
|
|
200
|
-
BlocksController.sanitizedSend(res, []);
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
hash = await this.api.rpc.chain.getFinalizedHead();
|
|
206
|
-
}
|
|
245
|
+
hash = await this.api.rpc.chain.getFinalizedHead();
|
|
207
246
|
}
|
|
208
247
|
const noFeesArg = noFees === 'true';
|
|
209
248
|
const decodedXcmMsgsArg = decodedXcmMsgs === 'true';
|
|
@@ -230,37 +269,13 @@ class BlocksController extends AbstractController_1.default {
|
|
|
230
269
|
Number(options.useEvmAddressFormat);
|
|
231
270
|
const isBlockCached = this.blockStore.get(cacheKey);
|
|
232
271
|
if (isBlockCached) {
|
|
233
|
-
|
|
234
|
-
const apiAt = await this.api.at(hash);
|
|
235
|
-
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
236
|
-
const enhancedCachedResult = {
|
|
237
|
-
...isBlockCached,
|
|
238
|
-
rcBlockNumber,
|
|
239
|
-
ahTimestamp: ahTimestamp.toString(),
|
|
240
|
-
};
|
|
241
|
-
BlocksController.sanitizedSend(res, [enhancedCachedResult]);
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
BlocksController.sanitizedSend(res, isBlockCached);
|
|
245
|
-
}
|
|
272
|
+
BlocksController.sanitizedSend(res, isBlockCached);
|
|
246
273
|
return;
|
|
247
274
|
}
|
|
248
275
|
const historicApi = await this.api.at(hash);
|
|
249
276
|
const block = await this.service.fetchBlock(hash, historicApi, options);
|
|
250
277
|
this.blockStore.set(cacheKey, block);
|
|
251
|
-
|
|
252
|
-
const apiAt = await this.api.at(hash);
|
|
253
|
-
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
254
|
-
const enhancedResult = {
|
|
255
|
-
...block,
|
|
256
|
-
rcBlockNumber,
|
|
257
|
-
ahTimestamp: ahTimestamp.toString(),
|
|
258
|
-
};
|
|
259
|
-
BlocksController.sanitizedSend(res, [enhancedResult]);
|
|
260
|
-
}
|
|
261
|
-
else {
|
|
262
|
-
BlocksController.sanitizedSend(res, block);
|
|
263
|
-
}
|
|
278
|
+
BlocksController.sanitizedSend(res, block);
|
|
264
279
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
265
280
|
const path = route.path;
|
|
266
281
|
if (res.locals.metrics) {
|
|
@@ -276,21 +291,84 @@ class BlocksController extends AbstractController_1.default {
|
|
|
276
291
|
this.getBlockById = async ({ params: { number }, query: { eventDocs, extrinsicDocs, noFees, finalizedKey, decodedXcmMsgs, paraId, useRcBlock, useEvmFormat }, method, route, }, res) => {
|
|
277
292
|
const useRcBlockArg = useRcBlock === 'true';
|
|
278
293
|
const checkFinalized = (0, util_1.isHex)(number);
|
|
279
|
-
let hash;
|
|
280
|
-
let rcBlockNumber;
|
|
281
294
|
if (useRcBlockArg) {
|
|
282
295
|
// Treat the 'number' parameter as a relay chain block identifier
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
if (!hash) {
|
|
296
|
+
const rcAtResults = await this.getHashFromRcAt(number);
|
|
297
|
+
// Return empty array if no Asset Hub blocks found
|
|
298
|
+
if (rcAtResults.length === 0) {
|
|
287
299
|
BlocksController.sanitizedSend(res, []);
|
|
288
300
|
return;
|
|
289
301
|
}
|
|
302
|
+
// Process each Asset Hub block found
|
|
303
|
+
const results = [];
|
|
304
|
+
for (const { ahHash, rcBlockNumber } of rcAtResults) {
|
|
305
|
+
const eventDocsArg = eventDocs === 'true';
|
|
306
|
+
const extrinsicDocsArg = extrinsicDocs === 'true';
|
|
307
|
+
const finalizeOverride = finalizedKey === 'false';
|
|
308
|
+
const queryFinalizedHead = !this.options.finalizes ? false : true;
|
|
309
|
+
const noFeesArg = noFees === 'true';
|
|
310
|
+
let omitFinalizedTag = !this.options.finalizes ? true : false;
|
|
311
|
+
if (finalizeOverride) {
|
|
312
|
+
omitFinalizedTag = true;
|
|
313
|
+
}
|
|
314
|
+
const decodedXcmMsgsArg = decodedXcmMsgs === 'true';
|
|
315
|
+
const paraIdArg = paraId ? this.parseNumberOrThrow(paraId, 'paraId must be an integer') : undefined;
|
|
316
|
+
const options = {
|
|
317
|
+
eventDocs: eventDocsArg,
|
|
318
|
+
extrinsicDocs: extrinsicDocsArg,
|
|
319
|
+
checkFinalized,
|
|
320
|
+
queryFinalizedHead,
|
|
321
|
+
omitFinalizedTag,
|
|
322
|
+
noFees: noFeesArg,
|
|
323
|
+
checkDecodedXcm: decodedXcmMsgsArg,
|
|
324
|
+
paraId: paraIdArg,
|
|
325
|
+
useEvmAddressFormat: useEvmFormat === 'true',
|
|
326
|
+
};
|
|
327
|
+
// Create a key for the cache that is a concatenation of the block hash and all the query params included in the request
|
|
328
|
+
const cacheKey = ahHash.toString() +
|
|
329
|
+
Number(options.eventDocs) +
|
|
330
|
+
Number(options.extrinsicDocs) +
|
|
331
|
+
Number(options.checkFinalized) +
|
|
332
|
+
Number(options.noFees) +
|
|
333
|
+
Number(options.checkDecodedXcm) +
|
|
334
|
+
Number(options.paraId) +
|
|
335
|
+
Number(options.useEvmAddressFormat);
|
|
336
|
+
const isBlockCached = this.blockStore.get(cacheKey);
|
|
337
|
+
let block;
|
|
338
|
+
if (isBlockCached) {
|
|
339
|
+
block = isBlockCached;
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
// HistoricApi to fetch any historic information that doesnt include the current runtime
|
|
343
|
+
const historicApi = await this.api.at(ahHash);
|
|
344
|
+
block = await this.service.fetchBlock(ahHash, historicApi, options);
|
|
345
|
+
this.blockStore.set(cacheKey, block);
|
|
346
|
+
}
|
|
347
|
+
const apiAt = await this.api.at(ahHash);
|
|
348
|
+
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
349
|
+
const enhancedResult = {
|
|
350
|
+
...block,
|
|
351
|
+
rcBlockNumber,
|
|
352
|
+
ahTimestamp: ahTimestamp.toString(),
|
|
353
|
+
};
|
|
354
|
+
results.push(enhancedResult);
|
|
355
|
+
}
|
|
356
|
+
BlocksController.sanitizedSend(res, results);
|
|
357
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
358
|
+
const path = route.path;
|
|
359
|
+
if (res.locals.metrics) {
|
|
360
|
+
const totExtrinsics = results.reduce((current, block) => {
|
|
361
|
+
const extrinsics = block.extrinsics;
|
|
362
|
+
if (Array.isArray(extrinsics)) {
|
|
363
|
+
return current + extrinsics.length;
|
|
364
|
+
}
|
|
365
|
+
return current;
|
|
366
|
+
}, 0);
|
|
367
|
+
this.emitExtrinsicMetrics(totExtrinsics, results.length, method, path, res);
|
|
368
|
+
}
|
|
369
|
+
return;
|
|
290
370
|
}
|
|
291
|
-
|
|
292
|
-
hash = await this.getHashForBlock(number);
|
|
293
|
-
}
|
|
371
|
+
const hash = await this.getHashForBlock(number);
|
|
294
372
|
const eventDocsArg = eventDocs === 'true';
|
|
295
373
|
const extrinsicDocsArg = extrinsicDocs === 'true';
|
|
296
374
|
const finalizeOverride = finalizedKey === 'false';
|
|
@@ -324,39 +402,15 @@ class BlocksController extends AbstractController_1.default {
|
|
|
324
402
|
Number(options.useEvmAddressFormat);
|
|
325
403
|
const isBlockCached = this.blockStore.get(cacheKey);
|
|
326
404
|
if (isBlockCached) {
|
|
327
|
-
|
|
328
|
-
const apiAt = await this.api.at(hash);
|
|
329
|
-
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
330
|
-
const enhancedCachedResult = {
|
|
331
|
-
...isBlockCached,
|
|
332
|
-
rcBlockNumber,
|
|
333
|
-
ahTimestamp: ahTimestamp.toString(),
|
|
334
|
-
};
|
|
335
|
-
BlocksController.sanitizedSend(res, [enhancedCachedResult]);
|
|
336
|
-
}
|
|
337
|
-
else {
|
|
338
|
-
BlocksController.sanitizedSend(res, isBlockCached);
|
|
339
|
-
}
|
|
405
|
+
BlocksController.sanitizedSend(res, isBlockCached);
|
|
340
406
|
return;
|
|
341
407
|
}
|
|
342
408
|
// HistoricApi to fetch any historic information that doesnt include the current runtime
|
|
343
409
|
const historicApi = await this.api.at(hash);
|
|
344
410
|
const block = await this.service.fetchBlock(hash, historicApi, options);
|
|
345
411
|
this.blockStore.set(cacheKey, block);
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
349
|
-
const enhancedResult = {
|
|
350
|
-
...block,
|
|
351
|
-
rcBlockNumber,
|
|
352
|
-
ahTimestamp: ahTimestamp.toString(),
|
|
353
|
-
};
|
|
354
|
-
BlocksController.sanitizedSend(res, [enhancedResult]);
|
|
355
|
-
}
|
|
356
|
-
else {
|
|
357
|
-
// We set the last param to true because we haven't queried the finalizedHead
|
|
358
|
-
BlocksController.sanitizedSend(res, block);
|
|
359
|
-
}
|
|
412
|
+
// We set the last param to true because we haven't queried the finalizedHead
|
|
413
|
+
BlocksController.sanitizedSend(res, block);
|
|
360
414
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
361
415
|
const path = route.path;
|
|
362
416
|
if (res.locals.metrics) {
|
|
@@ -371,37 +425,36 @@ class BlocksController extends AbstractController_1.default {
|
|
|
371
425
|
*/
|
|
372
426
|
this.getBlockHeaderById = async ({ params: { number }, query: { useRcBlock } }, res) => {
|
|
373
427
|
const useRcBlockArg = useRcBlock === 'true';
|
|
374
|
-
let hash;
|
|
375
|
-
let rcBlockNumber;
|
|
376
428
|
if (useRcBlockArg) {
|
|
377
429
|
// Treat the 'number' parameter as a relay chain block identifier
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
if (!hash) {
|
|
430
|
+
const rcAtResults = await this.getHashFromRcAt(number);
|
|
431
|
+
// Return empty array if no Asset Hub blocks found
|
|
432
|
+
if (rcAtResults.length === 0) {
|
|
382
433
|
BlocksController.sanitizedSend(res, []);
|
|
383
434
|
return;
|
|
384
435
|
}
|
|
436
|
+
// Process each Asset Hub block found
|
|
437
|
+
const results = [];
|
|
438
|
+
for (const { ahHash, rcBlockNumber } of rcAtResults) {
|
|
439
|
+
const headerResult = await this.service.fetchBlockHeader(ahHash);
|
|
440
|
+
const apiAt = await this.api.at(ahHash);
|
|
441
|
+
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
442
|
+
const enhancedResult = {
|
|
443
|
+
parentHash: headerResult.parentHash,
|
|
444
|
+
number: headerResult.number,
|
|
445
|
+
stateRoot: headerResult.stateRoot,
|
|
446
|
+
extrinsicsRoot: headerResult.extrinsicsRoot,
|
|
447
|
+
digest: headerResult.digest,
|
|
448
|
+
rcBlockNumber,
|
|
449
|
+
ahTimestamp: ahTimestamp.toString(),
|
|
450
|
+
};
|
|
451
|
+
results.push(enhancedResult);
|
|
452
|
+
}
|
|
453
|
+
BlocksController.sanitizedSend(res, results);
|
|
385
454
|
}
|
|
386
455
|
else {
|
|
387
|
-
hash = await this.getHashForBlock(number);
|
|
388
|
-
|
|
389
|
-
const headerResult = await this.service.fetchBlockHeader(hash);
|
|
390
|
-
if (rcBlockNumber) {
|
|
391
|
-
const apiAt = await this.api.at(hash);
|
|
392
|
-
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
393
|
-
const enhancedResult = {
|
|
394
|
-
parentHash: headerResult.parentHash,
|
|
395
|
-
number: headerResult.number,
|
|
396
|
-
stateRoot: headerResult.stateRoot,
|
|
397
|
-
extrinsicsRoot: headerResult.extrinsicsRoot,
|
|
398
|
-
digest: headerResult.digest,
|
|
399
|
-
rcBlockNumber,
|
|
400
|
-
ahTimestamp: ahTimestamp.toString(),
|
|
401
|
-
};
|
|
402
|
-
BlocksController.sanitizedSend(res, [enhancedResult]);
|
|
403
|
-
}
|
|
404
|
-
else {
|
|
456
|
+
const hash = await this.getHashForBlock(number);
|
|
457
|
+
const headerResult = await this.service.fetchBlockHeader(hash);
|
|
405
458
|
BlocksController.sanitizedSend(res, headerResult);
|
|
406
459
|
}
|
|
407
460
|
};
|
|
@@ -415,47 +468,44 @@ class BlocksController extends AbstractController_1.default {
|
|
|
415
468
|
var _a;
|
|
416
469
|
const paramFinalized = finalized !== 'false';
|
|
417
470
|
const useRcBlockArg = useRcBlock === 'true';
|
|
418
|
-
let hash;
|
|
419
|
-
let rcBlockNumber;
|
|
420
471
|
if (useRcBlockArg) {
|
|
421
472
|
const rcApi = (_a = apiRegistry_1.ApiPromiseRegistry.getApiByType('relay')[0]) === null || _a === void 0 ? void 0 : _a.api;
|
|
473
|
+
let rcHash;
|
|
422
474
|
if (paramFinalized) {
|
|
423
|
-
|
|
424
|
-
const rcHeader = await rcApi.rpc.chain.getHeader(rcHash);
|
|
425
|
-
rcBlockNumber = rcHeader.number.toString();
|
|
426
|
-
hash = await this.getAhAtFromRcAt(rcHash);
|
|
475
|
+
rcHash = await rcApi.rpc.chain.getFinalizedHead();
|
|
427
476
|
}
|
|
428
477
|
else {
|
|
429
478
|
const rcHeader = await rcApi.rpc.chain.getHeader();
|
|
430
|
-
|
|
431
|
-
rcBlockNumber = rcHeader.number.toString();
|
|
432
|
-
hash = await this.getAhAtFromRcAt(rcHash);
|
|
479
|
+
rcHash = rcHeader.hash;
|
|
433
480
|
}
|
|
434
|
-
|
|
435
|
-
if
|
|
481
|
+
const rcAtResults = await this.getHashFromRcAt(rcHash);
|
|
482
|
+
// Return empty array if no Asset Hub blocks found
|
|
483
|
+
if (rcAtResults.length === 0) {
|
|
436
484
|
BlocksController.sanitizedSend(res, []);
|
|
437
485
|
return;
|
|
438
486
|
}
|
|
487
|
+
// Process each Asset Hub block found
|
|
488
|
+
const results = [];
|
|
489
|
+
for (const { ahHash, rcBlockNumber } of rcAtResults) {
|
|
490
|
+
const headerResult = await this.service.fetchBlockHeader(ahHash);
|
|
491
|
+
const apiAt = await this.api.at(ahHash);
|
|
492
|
+
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
493
|
+
const enhancedResult = {
|
|
494
|
+
parentHash: headerResult.parentHash,
|
|
495
|
+
number: headerResult.number,
|
|
496
|
+
stateRoot: headerResult.stateRoot,
|
|
497
|
+
extrinsicsRoot: headerResult.extrinsicsRoot,
|
|
498
|
+
digest: headerResult.digest,
|
|
499
|
+
rcBlockNumber,
|
|
500
|
+
ahTimestamp: ahTimestamp.toString(),
|
|
501
|
+
};
|
|
502
|
+
results.push(enhancedResult);
|
|
503
|
+
}
|
|
504
|
+
BlocksController.sanitizedSend(res, results);
|
|
439
505
|
}
|
|
440
506
|
else {
|
|
441
|
-
hash = paramFinalized ? await this.api.rpc.chain.getFinalizedHead() : undefined;
|
|
442
|
-
|
|
443
|
-
const headerResult = await this.service.fetchBlockHeader(hash);
|
|
444
|
-
if (rcBlockNumber) {
|
|
445
|
-
const apiAt = await this.api.at(hash);
|
|
446
|
-
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
447
|
-
const enhancedResult = {
|
|
448
|
-
parentHash: headerResult.parentHash,
|
|
449
|
-
number: headerResult.number,
|
|
450
|
-
stateRoot: headerResult.stateRoot,
|
|
451
|
-
extrinsicsRoot: headerResult.extrinsicsRoot,
|
|
452
|
-
digest: headerResult.digest,
|
|
453
|
-
rcBlockNumber,
|
|
454
|
-
ahTimestamp: ahTimestamp.toString(),
|
|
455
|
-
};
|
|
456
|
-
BlocksController.sanitizedSend(res, [enhancedResult]);
|
|
457
|
-
}
|
|
458
|
-
else {
|
|
507
|
+
const hash = paramFinalized ? await this.api.rpc.chain.getFinalizedHead() : undefined;
|
|
508
|
+
const headerResult = await this.service.fetchBlockHeader(hash);
|
|
459
509
|
BlocksController.sanitizedSend(res, headerResult);
|
|
460
510
|
}
|
|
461
511
|
};
|
|
@@ -491,43 +541,58 @@ class BlocksController extends AbstractController_1.default {
|
|
|
491
541
|
const blocksPromise = [];
|
|
492
542
|
for (let i = 0; i < rangeOfNums.length; i++) {
|
|
493
543
|
const result = pQueue.run(async () => {
|
|
494
|
-
let hash;
|
|
495
|
-
let rcBlockNumber;
|
|
496
544
|
if (useRcBlockArg) {
|
|
497
545
|
// Treat range numbers as relay chain block identifiers
|
|
498
|
-
rcBlockNumber = rangeOfNums[i].toString();
|
|
499
|
-
|
|
500
|
-
// Skip this RC block if it doesn't have
|
|
501
|
-
if (
|
|
546
|
+
const rcBlockNumber = rangeOfNums[i].toString();
|
|
547
|
+
const rcAtResults = await this.getHashFromRcAt(rcBlockNumber);
|
|
548
|
+
// Skip this RC block if it doesn't have corresponding AH blocks
|
|
549
|
+
if (rcAtResults.length === 0) {
|
|
502
550
|
return null;
|
|
503
551
|
}
|
|
552
|
+
// Process each Asset Hub block found for this RC block
|
|
553
|
+
const rcBlockResults = [];
|
|
554
|
+
for (const { ahHash, rcBlockNumber: rcNum } of rcAtResults) {
|
|
555
|
+
const historicApi = await this.api.at(ahHash);
|
|
556
|
+
const block = await this.service.fetchBlock(ahHash, historicApi, options);
|
|
557
|
+
const apiAt = await this.api.at(ahHash);
|
|
558
|
+
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
559
|
+
const enhancedBlock = {
|
|
560
|
+
...block,
|
|
561
|
+
rcBlockNumber: rcNum,
|
|
562
|
+
ahTimestamp: ahTimestamp.toString(),
|
|
563
|
+
};
|
|
564
|
+
rcBlockResults.push(enhancedBlock);
|
|
565
|
+
}
|
|
566
|
+
return rcBlockResults;
|
|
504
567
|
}
|
|
505
568
|
else {
|
|
506
569
|
// Get block hash:
|
|
507
|
-
hash = await this.getHashForBlock(rangeOfNums[i].toString());
|
|
570
|
+
const hash = await this.getHashForBlock(rangeOfNums[i].toString());
|
|
571
|
+
// Get API at that hash:
|
|
572
|
+
const historicApi = await this.api.at(hash);
|
|
573
|
+
// Get block details using this API/hash:
|
|
574
|
+
const block = await this.service.fetchBlock(hash, historicApi, options);
|
|
575
|
+
return block;
|
|
508
576
|
}
|
|
509
|
-
// Get API at that hash:
|
|
510
|
-
const historicApi = await this.api.at(hash);
|
|
511
|
-
// Get block details using this API/hash:
|
|
512
|
-
const block = await this.service.fetchBlock(hash, historicApi, options);
|
|
513
|
-
if (rcBlockNumber) {
|
|
514
|
-
// Add RC context to the block
|
|
515
|
-
const apiAt = await this.api.at(hash);
|
|
516
|
-
const ahTimestamp = await apiAt.query.timestamp.now();
|
|
517
|
-
return {
|
|
518
|
-
...block,
|
|
519
|
-
rcBlockNumber,
|
|
520
|
-
ahTimestamp: ahTimestamp.toString(),
|
|
521
|
-
};
|
|
522
|
-
}
|
|
523
|
-
return block;
|
|
524
577
|
});
|
|
525
578
|
blocksPromise.push(result);
|
|
526
579
|
}
|
|
527
580
|
const allBlocks = await Promise.all(blocksPromise);
|
|
528
581
|
blocksPromise.length = 0;
|
|
529
|
-
// Filter out null values
|
|
530
|
-
const blocks =
|
|
582
|
+
// Filter out null values and flatten nested arrays (for useRcBlock case)
|
|
583
|
+
const blocks = [];
|
|
584
|
+
for (const block of allBlocks) {
|
|
585
|
+
if (block !== null) {
|
|
586
|
+
if (Array.isArray(block)) {
|
|
587
|
+
// This is from useRcBlock case where we might have multiple blocks per RC block
|
|
588
|
+
blocks.push(...block);
|
|
589
|
+
}
|
|
590
|
+
else {
|
|
591
|
+
// Single block case
|
|
592
|
+
blocks.push(block);
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
}
|
|
531
596
|
/**
|
|
532
597
|
* Sort blocks from least to greatest.
|
|
533
598
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlocksController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksController.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;AAGxE,yCAAuC;AAEvC,6CAAyC;AAIzC,mDAAuD;AACvD,wDAAgF;AAChF,6CAA+C;AAU/C,0DAAuD;AACvD,+EAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,MAAqB,gBAAiB,SAAQ,4BAAiC;IAI9E,YACC,GAAW,EACM,OAA0B;QAE3C,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,wBAAa,CAAC,GAAG,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;QAFhF,YAAO,GAAP,OAAO,CAAmB;QAkBpC,yBAAoB,GAAG,CAC9B,aAAqB,EACrB,SAAiB,EACjB,MAAc,EACd,IAAY,EACZ,GAAgC,EACzB,EAAE;YACT,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAE3C,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAqB,CAAC;gBAC3G,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAElH,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAqB,CAAC;gBAC3G,qBAAqB;qBACnB,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;qBACpE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;gBAEnC,MAAM,yBAAyB,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAqB,CAAC;gBAC9G,yBAAyB;qBACvB,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;qBACnE,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;gBAErC,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB,CAAC;gBACnG,iBAAiB;qBACf,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;qBACpE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;gBAE/B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBACnB,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB,CAAC;oBACnG,iBAAiB;yBACf,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;yBACpE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;QACF,CAAC,CAAC;QACF;;;;;WAKG;QACK,mBAAc,GAA2D,KAAK,EACrF,EACC,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,EACxG,MAAM,EACN,KAAK,GACL,EACD,GAAG,EACF,EAAE;;YACH,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,CAAC;YAC1C,MAAM,gBAAgB,GAAG,aAAa,KAAK,MAAM,CAAC;YAClD,MAAM,aAAa,GAAG,UAAU,KAAK,MAAM,CAAC;YAE5C,IAAI,IAAI,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;YAC/C,IAAI,aAAiC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC7B,8EAA8E;gBAC9E,gBAAgB,GAAG,IAAI,CAAC;gBACxB,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,IAAI,aAAa,EAAE,CAAC;oBACnB,MAAM,KAAK,GAAG,MAAA,gCAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0CAAE,GAAG,CAAC;oBAC/D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;oBACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;oBAC7B,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC3C,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAE1C,iDAAiD;oBACjD,IAAI,CAAC,IAAI,EAAE,CAAC;wBACX,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBACxC,OAAO;oBACR,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC;gBACpD,CAAC;YACF,CAAC;iBAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;gBAClC,uEAAuE;gBACvE,uEAAuE;gBACvE,+BAA+B;gBAC/B,gBAAgB,GAAG,KAAK,CAAC;gBACzB,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,IAAI,aAAa,EAAE,CAAC;oBACnB,MAAM,KAAK,GAAG,MAAA,gCAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0CAAE,GAAG,CAAC;oBAC/D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;oBACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;oBAC7B,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC3C,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAE1C,iDAAiD;oBACjD,IAAI,CAAC,IAAI,EAAE,CAAC;wBACX,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBACxC,OAAO;oBACR,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC;gBACpD,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,gBAAgB,GAAG,KAAK,CAAC;gBACzB,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,IAAI,aAAa,EAAE,CAAC;oBACnB,MAAM,KAAK,GAAG,MAAA,gCAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0CAAE,GAAG,CAAC;oBAC/D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBACxD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACzD,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC3C,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAE1C,iDAAiD;oBACjD,IAAI,CAAC,IAAI,EAAE,CAAC;wBACX,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBACxC,OAAO;oBACR,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBACpD,CAAC;YACF,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC;YACpC,MAAM,iBAAiB,GAAG,cAAc,KAAK,MAAM,CAAC;YACpD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEpG,MAAM,OAAO,GAAG;gBACf,SAAS,EAAE,YAAY;gBACvB,aAAa,EAAE,gBAAgB;gBAC/B,cAAc,EAAE,KAAK;gBACrB,kBAAkB;gBAClB,gBAAgB;gBAChB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,iBAAiB;gBAClC,MAAM,EAAE,SAAS;gBACjB,mBAAmB,EAAE,YAAY,KAAK,MAAM;aAC5C,CAAC;YACF,wHAAwH;YACxH,MAAM,QAAQ,GACb,IAAI,CAAC,QAAQ,EAAE;gBACf,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBACzB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC7B,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACtB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACtB,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAErC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEpD,IAAI,aAAa,EAAE,CAAC;gBACnB,IAAI,aAAa,EAAE,CAAC;oBACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBACtC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;oBAEtD,MAAM,oBAAoB,GAAG;wBAC5B,GAAG,aAAa;wBAChB,aAAa;wBACb,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;qBACnC,CAAC;oBAEF,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACP,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO;YACR,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YACxE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAErC,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBAEtD,MAAM,cAAc,GAAG;oBACtB,GAAG,KAAK;oBACR,aAAa;oBACb,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;iBACnC,CAAC;gBAEF,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACP,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YAED,sEAAsE;YACtE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;YAElC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC1E,CAAC;QACF,CAAC,CAAC;QAEF;;;;;WAKG;QACK,iBAAY,GAAgE,KAAK,EACxF,EACC,MAAM,EAAE,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,EAC3G,MAAM,EACN,KAAK,GACL,EACD,GAAG,EACa,EAAE;YAClB,MAAM,aAAa,GAAG,UAAU,KAAK,MAAM,CAAC;YAC5C,MAAM,cAAc,GAAG,IAAA,YAAK,EAAC,MAAM,CAAC,CAAC;YAErC,IAAI,IAAI,CAAC;YACT,IAAI,aAAiC,CAAC;YAEtC,IAAI,aAAa,EAAE,CAAC;gBACnB,iEAAiE;gBACjE,aAAa,GAAG,MAAM,CAAC;gBACvB,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE1C,iDAAiD;gBACjD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACX,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACxC,OAAO;gBACR,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,CAAC;YAC1C,MAAM,gBAAgB,GAAG,aAAa,KAAK,MAAM,CAAC;YAClD,MAAM,gBAAgB,GAAG,YAAY,KAAK,OAAO,CAAC;YAElD,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC;YACpC,IAAI,gBAAgB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAE9D,IAAI,gBAAgB,EAAE,CAAC;gBACtB,gBAAgB,GAAG,IAAI,CAAC;YACzB,CAAC;YAED,MAAM,iBAAiB,GAAG,cAAc,KAAK,MAAM,CAAC;YACpD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEpG,MAAM,OAAO,GAAG;gBACf,SAAS,EAAE,YAAY;gBACvB,aAAa,EAAE,gBAAgB;gBAC/B,cAAc;gBACd,kBAAkB;gBAClB,gBAAgB;gBAChB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,iBAAiB;gBAClC,MAAM,EAAE,SAAS;gBACjB,mBAAmB,EAAE,YAAY,KAAK,MAAM;aAC5C,CAAC;YAEF,wHAAwH;YAExH,MAAM,QAAQ,GACb,IAAI,CAAC,QAAQ,EAAE;gBACf,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBACzB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC7B,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACtB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACtB,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAErC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEpD,IAAI,aAAa,EAAE,CAAC;gBACnB,IAAI,aAAa,EAAE,CAAC;oBACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBACtC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;oBAEtD,MAAM,oBAAoB,GAAG;wBAC5B,GAAG,aAAa;wBAChB,aAAa;wBACb,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;qBACnC,CAAC;oBAEF,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACP,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO;YACR,CAAC;YACD,wFAAwF;YACxF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAExE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAErC,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBAEtD,MAAM,cAAc,GAAG;oBACtB,GAAG,KAAK;oBACR,aAAa;oBACb,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;iBACnC,CAAC;gBAEF,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACP,6EAA6E;gBAC7E,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,sEAAsE;YACtE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;YAClC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC1E,CAAC;QACF,CAAC,CAAC;QAEF;;;;;WAKG;QACK,uBAAkB,GAAsE,KAAK,EACpG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAC7C,GAAG,EACa,EAAE;YAClB,MAAM,aAAa,GAAG,UAAU,KAAK,MAAM,CAAC;YAE5C,IAAI,IAAI,CAAC;YACT,IAAI,aAAiC,CAAC;YAEtC,IAAI,aAAa,EAAE,CAAC;gBACnB,iEAAiE;gBACjE,aAAa,GAAG,MAAM,CAAC;gBACvB,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE1C,iDAAiD;gBACjD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACX,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACxC,OAAO;gBACR,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBACtD,MAAM,cAAc,GAAG;oBACtB,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,SAAS,EAAE,YAAY,CAAC,SAAS;oBACjC,cAAc,EAAE,YAAY,CAAC,cAAc;oBAC3C,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,aAAa;oBACb,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;iBACnC,CAAC;gBAEF,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACP,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACnD,CAAC;QACF,CAAC,CAAC;QAEF;;;;;WAKG;QACK,yBAAoB,GAAmB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAiB,EAAE;;YACjH,MAAM,cAAc,GAAG,SAAS,KAAK,OAAO,CAAC;YAC7C,MAAM,aAAa,GAAG,UAAU,KAAK,MAAM,CAAC;YAE5C,IAAI,IAAI,CAAC;YACT,IAAI,aAAiC,CAAC;YAEtC,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,MAAA,gCAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0CAAE,GAAG,CAAC;gBAC/D,IAAI,cAAc,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBACxD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACzD,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC3C,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACP,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;oBACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;oBAC7B,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC3C,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC3C,CAAC;gBAED,iDAAiD;gBACjD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACX,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACxC,OAAO;gBACR,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACjF,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAiB,CAAC,CAAC;gBACnD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBACtD,MAAM,cAAc,GAAG;oBACtB,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,SAAS,EAAE,YAAY,CAAC,SAAS;oBACjC,cAAc,EAAE,YAAY,CAAC,cAAc;oBAC3C,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,aAAa;oBACb,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;iBACnC,CAAC;gBAEF,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACP,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACnD,CAAC;QACF,CAAC,CAAC;QAEF;;;;;WAKG;QACK,cAAS,GAA8E,KAAK,EACnG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAC/F,GAAG,EACa,EAAE;YAClB,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,wBAAU,CAAC,yCAAyC,CAAC,CAAC;YAE5E,oCAAoC;YACpC,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,UAAU,KAAK,MAAM,CAAC;YAE5C,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,CAAC;YAC1C,MAAM,gBAAgB,GAAG,aAAa,KAAK,MAAM,CAAC;YAClD,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAChE,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC;YACpC,MAAM,OAAO,GAAG;gBACf,SAAS,EAAE,YAAY;gBACvB,aAAa,EAAE,gBAAgB;gBAC/B,cAAc,EAAE,KAAK;gBACrB,kBAAkB;gBAClB,gBAAgB;gBAChB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,SAAS;gBACjB,mBAAmB,EAAE,YAAY,KAAK,MAAM;aAC5C,CAAC;YAEF,MAAM,MAAM,GAAG,IAAI,2BAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,aAAa,GAAuB,EAAE,CAAC;YAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;oBACpC,IAAI,IAAI,CAAC;oBACT,IAAI,aAAiC,CAAC;oBAEtC,IAAI,aAAa,EAAE,CAAC;wBACnB,uDAAuD;wBACvD,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAC1C,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;wBAEjD,iEAAiE;wBACjE,IAAI,CAAC,IAAI,EAAE,CAAC;4BACX,OAAO,IAAI,CAAC;wBACb,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,kBAAkB;wBAClB,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC9D,CAAC;oBAED,wBAAwB;oBACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC5C,yCAAyC;oBACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;oBAExE,IAAI,aAAa,EAAE,CAAC;wBACnB,8BAA8B;wBAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;wBACtD,OAAO;4BACN,GAAG,KAAK;4BACR,aAAa;4BACb,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;yBACnC,CAAC;oBACH,CAAC;oBAED,OAAO,KAAK,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACnD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAEzB,qFAAqF;YACrF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAa,CAAC;YAEvE;;eAEG;YACH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEjE,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC5C,sEAAsE;YACtE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;YAClC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAe,EAAE,KAAK,EAAE,EAAE;oBAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;oBAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC/B,OAAO,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;oBACpC,CAAC;oBAED,OAAO,OAAO,CAAC;gBAChB,CAAC,EAAE,CAAC,CAAC,CAAC;gBACN,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5E,CAAC;QACF,CAAC,CAAC;QAthBD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAA,0BAAe,EAAC,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,EAAE,6BAAkB,CAAC,CAAC;QAC7G,IAAI,CAAC,yBAAyB,CAAC;YAC9B,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;YACrB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC;YAC9B,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;YAC/B,CAAC,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC;YAC3C,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC;SAC5C,CAAC,CAAC;IACJ,CAAC;;AApBM,+BAAc,GAAG,QAAQ,AAAX,CAAY;AAC1B,gCAAe,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,AAA1B,CAA2B;kBAH7B,gBAAgB"}
|
|
1
|
+
{"version":3,"file":"BlocksController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksController.ts"],"names":[],"mappings":"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"}
|