@xyo-network/chain-orchestration 1.20.20 → 1.20.22
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/dist/browser/index.mjs +188 -122
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
- package/dist/{neutral/node/config/locators/actors/validatorLocatorFromConfig.d.ts.map → browser/node/config/locators/actors/finalizerLocatorFromConfig.d.ts.map} +1 -1
- package/dist/browser/node/config/locators/actors/index.d.ts +1 -1
- package/dist/browser/node/config/locators/actors/index.d.ts.map +1 -1
- package/dist/browser/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
- package/dist/browser/node/config/locators/localLocatorFromConfig.d.ts +1 -1
- package/dist/browser/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
- package/dist/browser/node/config/locators/locatorsFromConfig.d.ts +1 -1
- package/dist/browser/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
- package/dist/browser/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
- package/dist/browser/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
- package/dist/browser/node/config/tryParseConfig.d.ts +3 -154
- package/dist/browser/node/config/tryParseConfig.d.ts.map +1 -1
- package/dist/browser/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
- package/dist/browser/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
- package/dist/browser/node/manifest/NamedLmdbArchivist.d.ts +18 -0
- package/dist/browser/node/manifest/NamedLmdbArchivist.d.ts.map +1 -0
- package/dist/browser/node/manifest/getLocator.d.ts.map +1 -1
- package/dist/{neutral/shared/actor/ValidatorActor.d.ts → browser/shared/actor/FinalizerActor.d.ts} +7 -10
- package/dist/browser/shared/actor/FinalizerActor.d.ts.map +1 -0
- package/dist/browser/shared/actor/index.d.ts +1 -1
- package/dist/browser/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +18 -18
- package/dist/browser/shared/config/actors/{Validator.d.ts.map → Finalizer.d.ts.map} +1 -1
- package/dist/browser/shared/config/actors/Mempool.d.ts +14 -0
- package/dist/browser/shared/config/actors/Mempool.d.ts.map +1 -1
- package/dist/browser/shared/config/actors/index.d.ts +1 -1
- package/dist/browser/shared/config/actors/index.d.ts.map +1 -1
- package/dist/browser/shared/index.d.ts +1 -0
- package/dist/browser/shared/index.d.ts.map +1 -1
- package/dist/browser/shared/init/walletResolution.d.ts +4 -1
- package/dist/browser/shared/init/walletResolution.d.ts.map +1 -1
- package/dist/browser/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
- package/dist/browser/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
- package/dist/browser/shared/provider/index.d.ts +2 -0
- package/dist/browser/shared/provider/index.d.ts.map +1 -0
- package/dist/neutral/index.mjs +188 -122
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
- package/dist/{browser/node/config/locators/actors/validatorLocatorFromConfig.d.ts.map → neutral/node/config/locators/actors/finalizerLocatorFromConfig.d.ts.map} +1 -1
- package/dist/neutral/node/config/locators/actors/index.d.ts +1 -1
- package/dist/neutral/node/config/locators/actors/index.d.ts.map +1 -1
- package/dist/neutral/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
- package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts +1 -1
- package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
- package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts +1 -1
- package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
- package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
- package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
- package/dist/neutral/node/config/tryParseConfig.d.ts +3 -154
- package/dist/neutral/node/config/tryParseConfig.d.ts.map +1 -1
- package/dist/neutral/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
- package/dist/neutral/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
- package/dist/neutral/node/manifest/NamedLmdbArchivist.d.ts +18 -0
- package/dist/neutral/node/manifest/NamedLmdbArchivist.d.ts.map +1 -0
- package/dist/neutral/node/manifest/getLocator.d.ts.map +1 -1
- package/dist/{node/shared/actor/ValidatorActor.d.ts → neutral/shared/actor/FinalizerActor.d.ts} +7 -10
- package/dist/neutral/shared/actor/FinalizerActor.d.ts.map +1 -0
- package/dist/neutral/shared/actor/index.d.ts +1 -1
- package/dist/neutral/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +18 -18
- package/dist/neutral/shared/config/actors/{Validator.d.ts.map → Finalizer.d.ts.map} +1 -1
- package/dist/neutral/shared/config/actors/Mempool.d.ts +14 -0
- package/dist/neutral/shared/config/actors/Mempool.d.ts.map +1 -1
- package/dist/neutral/shared/config/actors/index.d.ts +1 -1
- package/dist/neutral/shared/config/actors/index.d.ts.map +1 -1
- package/dist/neutral/shared/index.d.ts +1 -0
- package/dist/neutral/shared/index.d.ts.map +1 -1
- package/dist/neutral/shared/init/walletResolution.d.ts +4 -1
- package/dist/neutral/shared/init/walletResolution.d.ts.map +1 -1
- package/dist/neutral/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
- package/dist/neutral/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
- package/dist/neutral/shared/provider/index.d.ts +2 -0
- package/dist/neutral/shared/provider/index.d.ts.map +1 -0
- package/dist/node/index.mjs +324 -171
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
- package/dist/node/node/config/locators/actors/{validatorLocatorFromConfig.d.ts.map → finalizerLocatorFromConfig.d.ts.map} +1 -1
- package/dist/node/node/config/locators/actors/index.d.ts +1 -1
- package/dist/node/node/config/locators/actors/index.d.ts.map +1 -1
- package/dist/node/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
- package/dist/node/node/config/locators/localLocatorFromConfig.d.ts +1 -1
- package/dist/node/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
- package/dist/node/node/config/locators/locatorsFromConfig.d.ts +1 -1
- package/dist/node/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
- package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
- package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
- package/dist/node/node/config/tryParseConfig.d.ts +3 -154
- package/dist/node/node/config/tryParseConfig.d.ts.map +1 -1
- package/dist/node/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
- package/dist/node/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
- package/dist/node/node/manifest/NamedLmdbArchivist.d.ts +18 -0
- package/dist/node/node/manifest/NamedLmdbArchivist.d.ts.map +1 -0
- package/dist/node/node/manifest/getLocator.d.ts.map +1 -1
- package/dist/{browser/shared/actor/ValidatorActor.d.ts → node/shared/actor/FinalizerActor.d.ts} +7 -10
- package/dist/node/shared/actor/FinalizerActor.d.ts.map +1 -0
- package/dist/node/shared/actor/index.d.ts +1 -1
- package/dist/node/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +18 -18
- package/dist/node/shared/config/actors/{Validator.d.ts.map → Finalizer.d.ts.map} +1 -1
- package/dist/node/shared/config/actors/Mempool.d.ts +14 -0
- package/dist/node/shared/config/actors/Mempool.d.ts.map +1 -1
- package/dist/node/shared/config/actors/index.d.ts +1 -1
- package/dist/node/shared/config/actors/index.d.ts.map +1 -1
- package/dist/node/shared/index.d.ts +1 -0
- package/dist/node/shared/index.d.ts.map +1 -1
- package/dist/node/shared/init/walletResolution.d.ts +4 -1
- package/dist/node/shared/init/walletResolution.d.ts.map +1 -1
- package/dist/node/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
- package/dist/node/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
- package/dist/node/shared/provider/index.d.ts +2 -0
- package/dist/node/shared/provider/index.d.ts.map +1 -0
- package/package.json +23 -22
- package/dist/browser/shared/actor/ValidatorActor.d.ts.map +0 -1
- package/dist/neutral/shared/actor/ValidatorActor.d.ts.map +0 -1
- package/dist/node/shared/actor/ValidatorActor.d.ts.map +0 -1
package/dist/browser/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
|
-
// src/shared/actor/
|
|
4
|
+
// src/shared/actor/FinalizerActor.ts
|
|
5
5
|
import { creatable } from "@xylabs/sdk-js";
|
|
6
6
|
import { processPendingBlocks } from "@xyo-network/chain-sdk";
|
|
7
7
|
import { ActorV3, BlockValidationViewerMoniker, BlockViewerMoniker, DeadLetterQueueRunnerMoniker, FinalizationRunnerMoniker, MempoolViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
@@ -12,16 +12,14 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
12
12
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
13
|
}
|
|
14
14
|
__name(_ts_decorate, "_ts_decorate");
|
|
15
|
-
var
|
|
15
|
+
var FinalizerActor = class extends ActorV3 {
|
|
16
16
|
static {
|
|
17
|
-
__name(this, "
|
|
17
|
+
__name(this, "FinalizerActor");
|
|
18
18
|
}
|
|
19
19
|
_blockValidationViewer;
|
|
20
20
|
_blockViewer;
|
|
21
21
|
_deadLetterQueueRunner;
|
|
22
22
|
_finalizationRunner;
|
|
23
|
-
_lastValidatedBlock;
|
|
24
|
-
_lastValidatedBlockHash;
|
|
25
23
|
_mempoolViewer;
|
|
26
24
|
get allowedProducers() {
|
|
27
25
|
return this.params.config.allowedProducers ?? [];
|
|
@@ -51,9 +49,9 @@ var ValidatorActor = class extends ActorV3 {
|
|
|
51
49
|
}
|
|
52
50
|
async startHandler() {
|
|
53
51
|
await super.startHandler();
|
|
54
|
-
this.registerTimer("
|
|
52
|
+
this.registerTimer("FinalizerActor", async () => {
|
|
55
53
|
await this.spanAsync("processPendingBlocks", async () => {
|
|
56
|
-
this.logger?.debug("
|
|
54
|
+
this.logger?.debug("FinalizerActor: Processing pending blocks...");
|
|
57
55
|
await processPendingBlocks({
|
|
58
56
|
blockValidationViewer: this.blockValidationViewer,
|
|
59
57
|
context: this.context,
|
|
@@ -72,9 +70,9 @@ var ValidatorActor = class extends ActorV3 {
|
|
|
72
70
|
}, 2e3, 500);
|
|
73
71
|
}
|
|
74
72
|
};
|
|
75
|
-
|
|
73
|
+
FinalizerActor = _ts_decorate([
|
|
76
74
|
creatable()
|
|
77
|
-
],
|
|
75
|
+
], FinalizerActor);
|
|
78
76
|
|
|
79
77
|
// src/shared/buildTelemetryConfig.ts
|
|
80
78
|
function buildTelemetryConfig(config, serviceName, serviceVersion, defaultMetricsScrapePort = 9464) {
|
|
@@ -248,15 +246,36 @@ var isBridgeConfigContext = zodIsFactory2(BridgeConfigContext);
|
|
|
248
246
|
var asBridgeConfigContext = zodAsFactory2(BridgeConfigContext, "asBridgeConfigContext");
|
|
249
247
|
var toBridgeConfigContext = zodToFactory2(BridgeConfigContext, "toBridgeConfigContext");
|
|
250
248
|
|
|
251
|
-
// src/shared/config/actors/
|
|
252
|
-
import { zodAsFactory as zodAsFactory3, zodIsFactory as zodIsFactory3, zodToFactory as zodToFactory3 } from "@xylabs/sdk-js";
|
|
249
|
+
// src/shared/config/actors/Finalizer.ts
|
|
250
|
+
import { AddressZod as AddressZod2, zodAsFactory as zodAsFactory3, zodIsFactory as zodIsFactory3, zodToFactory as zodToFactory3 } from "@xylabs/sdk-js";
|
|
253
251
|
import { BaseConfigContextZod as BaseConfigContextZod3, HostActorConfigZod as HostActorConfigZod3 } from "@xyo-network/xl1-sdk";
|
|
254
|
-
import {
|
|
255
|
-
var
|
|
252
|
+
import { z as z4 } from "zod";
|
|
253
|
+
var FinalizerConfigZod = HostActorConfigZod3.extend({
|
|
254
|
+
accountIndex: ActorAccountIndexZod("finalizer.accountIndex"),
|
|
255
|
+
allowedProducers: z4.array(AddressZod2).optional(),
|
|
256
|
+
minCandidates: z4.number().int().min(0).default(1)
|
|
257
|
+
});
|
|
258
|
+
var isFinalizerConfig = zodIsFactory3(FinalizerConfigZod);
|
|
259
|
+
var asFinalizerConfig = zodAsFactory3(FinalizerConfigZod, "asFinalizerConfig");
|
|
260
|
+
var toFinalizerConfig = zodToFactory3(FinalizerConfigZod, "toFinalizerConfig");
|
|
261
|
+
var FinalizerConfigContext = BaseConfigContextZod3.extend({
|
|
262
|
+
config: FinalizerConfigZod
|
|
263
|
+
});
|
|
264
|
+
var isFinalizerConfigContext = zodIsFactory3(FinalizerConfigContext);
|
|
265
|
+
var asFinalizerConfigContext = zodAsFactory3(FinalizerConfigContext, "asFinalizerConfigContext");
|
|
266
|
+
var toFinalizerConfigContext = zodToFactory3(FinalizerConfigContext, "toFinalizerConfigContext");
|
|
267
|
+
|
|
268
|
+
// src/shared/config/actors/Mempool.ts
|
|
269
|
+
import { zodAsFactory as zodAsFactory4, zodIsFactory as zodIsFactory4, zodToFactory as zodToFactory4 } from "@xylabs/sdk-js";
|
|
270
|
+
import { BaseConfigContextZod as BaseConfigContextZod4, HostActorConfigZod as HostActorConfigZod4 } from "@xyo-network/xl1-sdk";
|
|
271
|
+
import { globalRegistry as globalRegistry4, z as z5 } from "zod";
|
|
272
|
+
var DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL = 1e3;
|
|
273
|
+
var DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL = 1e3;
|
|
274
|
+
var MempoolConfigZod = HostActorConfigZod4.extend({
|
|
256
275
|
accountIndex: ActorAccountIndexZod("mempool.accountIndex"),
|
|
257
|
-
enabled:
|
|
258
|
-
|
|
259
|
-
|
|
276
|
+
enabled: z5.union([
|
|
277
|
+
z5.string(),
|
|
278
|
+
z5.boolean()
|
|
260
279
|
]).default("false").transform((val, ctx) => {
|
|
261
280
|
if (typeof val === "boolean") return val;
|
|
262
281
|
const normalized = val.toLowerCase().trim();
|
|
@@ -277,113 +296,104 @@ var MempoolConfigZod = HostActorConfigZod3.extend({
|
|
|
277
296
|
expected: "boolean",
|
|
278
297
|
message: `Invalid boolean value: "${val}". Use true/false, 1/0, yes/no.`
|
|
279
298
|
});
|
|
280
|
-
return
|
|
299
|
+
return z5.NEVER;
|
|
281
300
|
}).register(globalRegistry4, {
|
|
282
301
|
default: "false",
|
|
283
302
|
description: "Enable the Mempool",
|
|
284
303
|
title: "mempool.enabled",
|
|
285
304
|
type: "boolean"
|
|
305
|
+
}),
|
|
306
|
+
blockPruneInterval: z5.coerce.number().default(DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL).register(globalRegistry4, {
|
|
307
|
+
description: "The interval time (in milliseconds) between pending block prune attempts",
|
|
308
|
+
title: "mempool.blockPruneInterval",
|
|
309
|
+
type: "number"
|
|
310
|
+
}),
|
|
311
|
+
transactionPruneInterval: z5.coerce.number().default(DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL).register(globalRegistry4, {
|
|
312
|
+
description: "The interval time (in milliseconds) between pending transaction prune attempts",
|
|
313
|
+
title: "mempool.transactionPruneInterval",
|
|
314
|
+
type: "number"
|
|
286
315
|
})
|
|
287
316
|
});
|
|
288
|
-
var isMempoolConfig =
|
|
289
|
-
var asMempoolConfig =
|
|
290
|
-
var toMempoolConfig =
|
|
291
|
-
var MempoolConfigContext =
|
|
317
|
+
var isMempoolConfig = zodIsFactory4(MempoolConfigZod);
|
|
318
|
+
var asMempoolConfig = zodAsFactory4(MempoolConfigZod, "asMempoolConfig");
|
|
319
|
+
var toMempoolConfig = zodToFactory4(MempoolConfigZod, "toMempoolConfig");
|
|
320
|
+
var MempoolConfigContext = BaseConfigContextZod4.extend({
|
|
292
321
|
config: MempoolConfigZod
|
|
293
322
|
});
|
|
294
|
-
var isMempoolConfigContext =
|
|
295
|
-
var asMempoolConfigContext =
|
|
296
|
-
var toMempoolConfigContext =
|
|
323
|
+
var isMempoolConfigContext = zodIsFactory4(MempoolConfigContext);
|
|
324
|
+
var asMempoolConfigContext = zodAsFactory4(MempoolConfigContext, "asMempoolConfigContext");
|
|
325
|
+
var toMempoolConfigContext = zodToFactory4(MempoolConfigContext, "toMempoolConfigContext");
|
|
297
326
|
|
|
298
327
|
// src/shared/config/actors/Producer.ts
|
|
299
|
-
import { AddressZod as
|
|
300
|
-
import { ActorConfigZod, BaseConfigContextZod as
|
|
301
|
-
import { globalRegistry as globalRegistry5, z as
|
|
328
|
+
import { AddressZod as AddressZod3, asAddress, zodAsFactory as zodAsFactory5, zodIsFactory as zodIsFactory5, zodToFactory as zodToFactory5 } from "@xylabs/sdk-js";
|
|
329
|
+
import { ActorConfigZod, BaseConfigContextZod as BaseConfigContextZod5 } from "@xyo-network/xl1-sdk";
|
|
330
|
+
import { globalRegistry as globalRegistry5, z as z6 } from "zod";
|
|
302
331
|
var DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL = 1e4;
|
|
303
|
-
var ProducerConfigZod = ActorConfigZod.extend(
|
|
332
|
+
var ProducerConfigZod = ActorConfigZod.extend(z6.object({
|
|
304
333
|
accountIndex: ActorAccountIndexZod("producer.accountIndex"),
|
|
305
|
-
allowlist:
|
|
334
|
+
allowlist: z6.preprocess((val) => {
|
|
306
335
|
if (typeof val === "string") {
|
|
307
336
|
return val.split(",").map((s) => asAddress(s.trim()));
|
|
308
337
|
}
|
|
309
338
|
return val;
|
|
310
|
-
},
|
|
339
|
+
}, z6.array(AddressZod3).optional().register(globalRegistry5, {
|
|
311
340
|
description: "List of allowed producer addresses, if undefined anyone can participate",
|
|
312
341
|
title: "allowlist",
|
|
313
342
|
type: "array"
|
|
314
343
|
})),
|
|
315
|
-
blockProductionCheckInterval:
|
|
344
|
+
blockProductionCheckInterval: z6.coerce.number().default(DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL).register(globalRegistry5, {
|
|
316
345
|
description: "The interval time (in milliseconds) between block production attempts",
|
|
317
346
|
title: "producer.blockProductionCheckInterval",
|
|
318
347
|
type: "number"
|
|
319
348
|
}),
|
|
320
|
-
disableIntentRedeclaration:
|
|
349
|
+
disableIntentRedeclaration: z6.boolean().optional().register(globalRegistry5, {
|
|
321
350
|
description: "Should the producer skip redeclaring their intent to continue producing blocks",
|
|
322
351
|
title: "producer.disableIntentRedeclaration",
|
|
323
352
|
type: "boolean"
|
|
324
353
|
}),
|
|
325
|
-
heartbeatInterval:
|
|
354
|
+
heartbeatInterval: z6.coerce.number().default(36e5).register(globalRegistry5, {
|
|
326
355
|
description: "The number of milliseconds between heartbeats if no blocks are produced",
|
|
327
356
|
title: "producer.heartbeatInterval",
|
|
328
357
|
type: "number"
|
|
329
358
|
}),
|
|
330
359
|
// TODO: BigInt schema
|
|
331
|
-
minStake:
|
|
360
|
+
minStake: z6.coerce.number().default(1).register(globalRegistry5, {
|
|
332
361
|
description: "Minimum stake required to be a Producer",
|
|
333
362
|
title: "producer.minStake",
|
|
334
363
|
type: "number"
|
|
335
364
|
}),
|
|
336
365
|
// TODO: Address schema
|
|
337
|
-
rewardAddress:
|
|
366
|
+
rewardAddress: z6.string().optional().register(globalRegistry5, {
|
|
338
367
|
description: "Address to receive block rewards",
|
|
339
368
|
title: "producer.rewardAddress",
|
|
340
369
|
type: "string"
|
|
341
370
|
})
|
|
342
371
|
}).shape);
|
|
343
|
-
var isProducerConfig =
|
|
344
|
-
var asProducerConfig =
|
|
345
|
-
var toProducerConfig =
|
|
346
|
-
var ProducerConfigContext =
|
|
372
|
+
var isProducerConfig = zodIsFactory5(ProducerConfigZod);
|
|
373
|
+
var asProducerConfig = zodAsFactory5(ProducerConfigZod, "asProducerConfig");
|
|
374
|
+
var toProducerConfig = zodToFactory5(ProducerConfigZod, "toProducerConfig");
|
|
375
|
+
var ProducerConfigContext = BaseConfigContextZod5.extend({
|
|
347
376
|
config: ProducerConfigZod
|
|
348
377
|
});
|
|
349
|
-
var isProducerConfigContext =
|
|
350
|
-
var asProducerConfigContext =
|
|
351
|
-
var toProducerConfigContext =
|
|
378
|
+
var isProducerConfigContext = zodIsFactory5(ProducerConfigContext);
|
|
379
|
+
var asProducerConfigContext = zodAsFactory5(ProducerConfigContext, "asProducerConfigContext");
|
|
380
|
+
var toProducerConfigContext = zodToFactory5(ProducerConfigContext, "toProducerConfigContext");
|
|
352
381
|
|
|
353
382
|
// src/shared/config/actors/RewardRedemption.ts
|
|
354
|
-
import { zodAsFactory as
|
|
355
|
-
import { BaseConfigContextZod as
|
|
356
|
-
var RewardRedemptionConfigZod =
|
|
383
|
+
import { zodAsFactory as zodAsFactory6, zodIsFactory as zodIsFactory6, zodToFactory as zodToFactory6 } from "@xylabs/sdk-js";
|
|
384
|
+
import { BaseConfigContextZod as BaseConfigContextZod6, HostActorConfigZod as HostActorConfigZod5 } from "@xyo-network/xl1-sdk";
|
|
385
|
+
var RewardRedemptionConfigZod = HostActorConfigZod5.extend({
|
|
357
386
|
accountIndex: ActorAccountIndexZod("rewardRedemption.accountIndex")
|
|
358
387
|
});
|
|
359
|
-
var isRewardRedemptionConfig =
|
|
360
|
-
var asRewardRedemptionConfig =
|
|
361
|
-
var toRewardRedemptionConfig =
|
|
362
|
-
var RewardRedemptionConfigContext =
|
|
388
|
+
var isRewardRedemptionConfig = zodIsFactory6(RewardRedemptionConfigZod);
|
|
389
|
+
var asRewardRedemptionConfig = zodAsFactory6(RewardRedemptionConfigZod, "asRewardRedemptionConfig");
|
|
390
|
+
var toRewardRedemptionConfig = zodToFactory6(RewardRedemptionConfigZod, "toRewardRedemptionConfig");
|
|
391
|
+
var RewardRedemptionConfigContext = BaseConfigContextZod6.extend({
|
|
363
392
|
config: RewardRedemptionConfigZod
|
|
364
393
|
});
|
|
365
|
-
var isRewardRedemptionConfigContext =
|
|
366
|
-
var asRewardRedemptionConfigContext =
|
|
367
|
-
var toRewardRedemptionConfigContext =
|
|
368
|
-
|
|
369
|
-
// src/shared/config/actors/Validator.ts
|
|
370
|
-
import { AddressZod as AddressZod3, zodAsFactory as zodAsFactory6, zodIsFactory as zodIsFactory6, zodToFactory as zodToFactory6 } from "@xylabs/sdk-js";
|
|
371
|
-
import { BaseConfigContextZod as BaseConfigContextZod6, HostActorConfigZod as HostActorConfigZod5 } from "@xyo-network/xl1-sdk";
|
|
372
|
-
import { z as z6 } from "zod";
|
|
373
|
-
var ValidatorConfigZod = HostActorConfigZod5.extend({
|
|
374
|
-
accountIndex: ActorAccountIndexZod("validator.accountIndex"),
|
|
375
|
-
allowedProducers: z6.array(AddressZod3).optional(),
|
|
376
|
-
minCandidates: z6.number().int().min(0).optional()
|
|
377
|
-
});
|
|
378
|
-
var isValidatorConfig = zodIsFactory6(ValidatorConfigZod);
|
|
379
|
-
var asValidatorConfig = zodAsFactory6(ValidatorConfigZod, "asValidatorConfig");
|
|
380
|
-
var toValidatorConfig = zodToFactory6(ValidatorConfigZod, "toValidatorConfig");
|
|
381
|
-
var ValidatorConfigContext = BaseConfigContextZod6.extend({
|
|
382
|
-
config: ValidatorConfigZod
|
|
383
|
-
});
|
|
384
|
-
var isValidatorConfigContext = zodIsFactory6(ValidatorConfigContext);
|
|
385
|
-
var asValidatorConfigContext = zodAsFactory6(ValidatorConfigContext, "asValidatorConfigContext");
|
|
386
|
-
var toValidatorConfigContext = zodToFactory6(ValidatorConfigContext, "toValidatorConfigContext");
|
|
394
|
+
var isRewardRedemptionConfigContext = zodIsFactory6(RewardRedemptionConfigContext);
|
|
395
|
+
var asRewardRedemptionConfigContext = zodAsFactory6(RewardRedemptionConfigContext, "asRewardRedemptionConfigContext");
|
|
396
|
+
var toRewardRedemptionConfigContext = zodToFactory6(RewardRedemptionConfigContext, "toRewardRedemptionConfigContext");
|
|
387
397
|
|
|
388
398
|
// src/shared/config/mergeConfig.ts
|
|
389
399
|
import { deepMerge } from "@xylabs/sdk-js";
|
|
@@ -464,19 +474,19 @@ var RESERVED_ACTOR_INDEX = {
|
|
|
464
474
|
[ROOT_WALLET_RUNTIME_ID]: 0,
|
|
465
475
|
api: 4,
|
|
466
476
|
bridge: 2,
|
|
477
|
+
finalizer: 6,
|
|
467
478
|
mempool: 5,
|
|
468
479
|
producer: 1,
|
|
469
|
-
rewardRedemption: 3
|
|
470
|
-
validator: 6
|
|
480
|
+
rewardRedemption: 3
|
|
471
481
|
};
|
|
472
482
|
var ACTOR_LABELS = {
|
|
473
483
|
[ROOT_WALLET_RUNTIME_ID]: "root/local-node",
|
|
474
484
|
api: "api",
|
|
475
485
|
bridge: "bridge",
|
|
486
|
+
finalizer: "finalizer",
|
|
476
487
|
mempool: "mempool",
|
|
477
488
|
producer: "producer",
|
|
478
|
-
rewardRedemption: "rewardRedemption"
|
|
479
|
-
validator: "validator"
|
|
489
|
+
rewardRedemption: "rewardRedemption"
|
|
480
490
|
};
|
|
481
491
|
var activeWalletReport;
|
|
482
492
|
function getAccountLabel(actorName) {
|
|
@@ -500,11 +510,13 @@ function getInsecureGenesisRewardMnemonic() {
|
|
|
500
510
|
}
|
|
501
511
|
__name(getInsecureGenesisRewardMnemonic, "getInsecureGenesisRewardMnemonic");
|
|
502
512
|
function resolveRootWallet(configuration) {
|
|
513
|
+
const isConfigured = configuration.mnemonic !== void 0;
|
|
503
514
|
const mnemonic = configuration.mnemonic ?? BUILT_IN_DEV_MNEMONIC;
|
|
504
515
|
const isBuiltInDevMnemonic = mnemonic === BUILT_IN_DEV_MNEMONIC;
|
|
505
516
|
return {
|
|
506
517
|
basePath: DEFAULT_WALLET_PATH,
|
|
507
518
|
isBuiltInDevMnemonic,
|
|
519
|
+
isConfigured,
|
|
508
520
|
mnemonic,
|
|
509
521
|
mnemonicKind: isBuiltInDevMnemonic ? "built-in-dev" : "configured-root"
|
|
510
522
|
};
|
|
@@ -552,6 +564,7 @@ async function resolveWalletReport(requestedActors, configuration) {
|
|
|
552
564
|
actor.name,
|
|
553
565
|
actor
|
|
554
566
|
]));
|
|
567
|
+
const isRootRequired = requestedActors.some((actorName) => !actorConfigMap.get(actorName)?.mnemonic);
|
|
555
568
|
const resolvedActors = await Promise.all(requestedActors.map(async (actorName) => await resolveActorWallet(actorName, actorConfigMap.get(actorName), root)));
|
|
556
569
|
const labelMap = /* @__PURE__ */ new Map([
|
|
557
570
|
[
|
|
@@ -583,7 +596,19 @@ async function resolveWalletReport(requestedActors, configuration) {
|
|
|
583
596
|
label: labels?.join(", ") ?? `shared[${accountIndex}]`
|
|
584
597
|
};
|
|
585
598
|
}));
|
|
586
|
-
|
|
599
|
+
return {
|
|
600
|
+
actorSpecificAccounts: resolvedActors.filter((actor) => actor.source === "actor"),
|
|
601
|
+
isRootRequired,
|
|
602
|
+
requestedActors: [
|
|
603
|
+
...requestedActors
|
|
604
|
+
],
|
|
605
|
+
root,
|
|
606
|
+
sharedAccounts
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
__name(resolveWalletReport, "resolveWalletReport");
|
|
610
|
+
async function buildInsecureGenesisRewardAccounts() {
|
|
611
|
+
const accounts = await Promise.all(Array.from({
|
|
587
612
|
length: SHARED_ACCOUNT_REPORT_COUNT
|
|
588
613
|
}, (_, index) => index).map(async (accountIndex) => {
|
|
589
614
|
const account = await resolveWalletMetadata({
|
|
@@ -598,17 +623,9 @@ async function resolveWalletReport(requestedActors, configuration) {
|
|
|
598
623
|
label: accountIndex === 0 ? "genesisRewardAddress" : `genesisReward[${accountIndex}]`
|
|
599
624
|
};
|
|
600
625
|
}));
|
|
601
|
-
return
|
|
602
|
-
actorSpecificAccounts: resolvedActors.filter((actor) => actor.source === "actor"),
|
|
603
|
-
insecureGenesisRewardAccounts,
|
|
604
|
-
requestedActors: [
|
|
605
|
-
...requestedActors
|
|
606
|
-
],
|
|
607
|
-
root,
|
|
608
|
-
sharedAccounts
|
|
609
|
-
};
|
|
626
|
+
return accounts;
|
|
610
627
|
}
|
|
611
|
-
__name(
|
|
628
|
+
__name(buildInsecureGenesisRewardAccounts, "buildInsecureGenesisRewardAccounts");
|
|
612
629
|
async function initializeResolvedWalletReport(requestedActors, configuration) {
|
|
613
630
|
activeWalletReport = await resolveWalletReport(requestedActors, configuration);
|
|
614
631
|
return activeWalletReport;
|
|
@@ -651,8 +668,13 @@ function formatGenesisRewardAccount(account) {
|
|
|
651
668
|
__name(formatGenesisRewardAccount, "formatGenesisRewardAccount");
|
|
652
669
|
function formatWalletReport(report) {
|
|
653
670
|
const sections = [];
|
|
654
|
-
const
|
|
655
|
-
|
|
671
|
+
const showRootSection = report.isRootRequired || report.root.isConfigured;
|
|
672
|
+
const showSecrets = report.root.isBuiltInDevMnemonic && showRootSection;
|
|
673
|
+
if (showRootSection) {
|
|
674
|
+
sections.push(showSecrets ? "Development wallet detected." : "Wallet summary");
|
|
675
|
+
} else {
|
|
676
|
+
sections.push("Wallet summary (root wallet not required \u2014 every requested actor has its own mnemonic)");
|
|
677
|
+
}
|
|
656
678
|
if (showSecrets) {
|
|
657
679
|
sections.push([
|
|
658
680
|
"DEVELOPMENT WALLET WARNING",
|
|
@@ -666,39 +688,42 @@ function formatWalletReport(report) {
|
|
|
666
688
|
report.root.mnemonic
|
|
667
689
|
].join("\n"));
|
|
668
690
|
}
|
|
669
|
-
|
|
670
|
-
`Shared wallet accounts from ${report.root.basePath}:`,
|
|
671
|
-
"",
|
|
672
|
-
report.sharedAccounts.map((account) => formatSharedAccount(account, showSecrets)).join("\n\n")
|
|
673
|
-
].join("\n"));
|
|
674
|
-
if (report.actorSpecificAccounts.length > 0) {
|
|
691
|
+
if (showRootSection) {
|
|
675
692
|
sections.push([
|
|
676
|
-
|
|
693
|
+
`Shared wallet accounts from ${report.root.basePath}:`,
|
|
677
694
|
"",
|
|
678
|
-
report.
|
|
695
|
+
report.sharedAccounts.map((account) => formatSharedAccount(account, showSecrets)).join("\n\n")
|
|
679
696
|
].join("\n"));
|
|
680
697
|
}
|
|
681
|
-
if (report.
|
|
698
|
+
if (report.actorSpecificAccounts.length > 0) {
|
|
682
699
|
sections.push([
|
|
683
|
-
"
|
|
684
|
-
"",
|
|
685
|
-
"XL1 is using a public, insecure fallback wallet for the genesis reward address.",
|
|
686
|
-
"This phrase is intentionally unsafe and must never be used for real funds, production systems, or shared environments.",
|
|
687
|
-
"Anyone with this information can fully control the genesis reward wallet.",
|
|
688
|
-
"",
|
|
689
|
-
"Genesis reward phrase:",
|
|
690
|
-
INSECURE_GENESIS_REWARD_MNEMONIC,
|
|
691
|
-
"",
|
|
692
|
-
`The genesis reward is sent to index 0 and starts with ${(GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1).toString()} XL1.`,
|
|
693
|
-
"",
|
|
694
|
-
`Genesis reward wallet accounts from ${DEFAULT_WALLET_PATH}:`,
|
|
700
|
+
"Actor-specific wallet accounts:",
|
|
695
701
|
"",
|
|
696
|
-
report.
|
|
702
|
+
report.actorSpecificAccounts.map((account) => formatActorSpecificAccount(account)).join("\n\n")
|
|
697
703
|
].join("\n"));
|
|
698
704
|
}
|
|
699
705
|
return sections.join("\n\n");
|
|
700
706
|
}
|
|
701
707
|
__name(formatWalletReport, "formatWalletReport");
|
|
708
|
+
function formatInsecureGenesisRewardWarning(accounts) {
|
|
709
|
+
return [
|
|
710
|
+
"INSECURE GENESIS REWARD WALLET WARNING",
|
|
711
|
+
"",
|
|
712
|
+
"XL1 is using a public, insecure fallback wallet for the genesis reward address.",
|
|
713
|
+
"This phrase is intentionally unsafe and must never be used for real funds, production systems, or shared environments.",
|
|
714
|
+
"Anyone with this information can fully control the genesis reward wallet.",
|
|
715
|
+
"",
|
|
716
|
+
"Genesis reward phrase:",
|
|
717
|
+
INSECURE_GENESIS_REWARD_MNEMONIC,
|
|
718
|
+
"",
|
|
719
|
+
`The genesis reward is sent to index 0 and starts with ${(GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1).toString()} XL1.`,
|
|
720
|
+
"",
|
|
721
|
+
`Genesis reward wallet accounts from ${DEFAULT_WALLET_PATH}:`,
|
|
722
|
+
"",
|
|
723
|
+
accounts.map((account) => formatGenesisRewardAccount(account)).join("\n\n")
|
|
724
|
+
].join("\n");
|
|
725
|
+
}
|
|
726
|
+
__name(formatInsecureGenesisRewardWarning, "formatInsecureGenesisRewardWarning");
|
|
702
727
|
async function resolveGenesisRewardAddress(config) {
|
|
703
728
|
if (config.chain.genesisRewardAddress) return config.chain.genesisRewardAddress;
|
|
704
729
|
const wallet = await generateXyoBaseWalletFromPhrase(INSECURE_GENESIS_REWARD_MNEMONIC);
|
|
@@ -867,6 +892,41 @@ Orchestrator = _ts_decorate2([
|
|
|
867
892
|
creatable2()
|
|
868
893
|
], Orchestrator);
|
|
869
894
|
|
|
895
|
+
// src/shared/provider/SimpleRejectedTransactionsArchivistProvider.ts
|
|
896
|
+
import { assertEx as assertEx3 } from "@xylabs/sdk-js";
|
|
897
|
+
import { AbstractCreatableProvider, creatableProvider } from "@xyo-network/xl1-sdk";
|
|
898
|
+
function _ts_decorate3(decorators, target, key, desc) {
|
|
899
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
900
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
901
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
902
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
903
|
+
}
|
|
904
|
+
__name(_ts_decorate3, "_ts_decorate");
|
|
905
|
+
var RejectedTransactionsArchivistProviderMoniker = "RejectedTransactionsArchivistProvider";
|
|
906
|
+
var SimpleRejectedTransactionsArchivistProvider = class _SimpleRejectedTransactionsArchivistProvider extends AbstractCreatableProvider {
|
|
907
|
+
static {
|
|
908
|
+
__name(this, "SimpleRejectedTransactionsArchivistProvider");
|
|
909
|
+
}
|
|
910
|
+
static defaultMoniker = RejectedTransactionsArchivistProviderMoniker;
|
|
911
|
+
static dependencies = [];
|
|
912
|
+
static monikers = [
|
|
913
|
+
RejectedTransactionsArchivistProviderMoniker
|
|
914
|
+
];
|
|
915
|
+
moniker = _SimpleRejectedTransactionsArchivistProvider.defaultMoniker;
|
|
916
|
+
get archivist() {
|
|
917
|
+
return this.params.archivist;
|
|
918
|
+
}
|
|
919
|
+
static async paramsHandler(params) {
|
|
920
|
+
return {
|
|
921
|
+
...await super.paramsHandler(params),
|
|
922
|
+
archivist: assertEx3(params?.archivist, () => "archivist is required")
|
|
923
|
+
};
|
|
924
|
+
}
|
|
925
|
+
};
|
|
926
|
+
SimpleRejectedTransactionsArchivistProvider = _ts_decorate3([
|
|
927
|
+
creatableProvider()
|
|
928
|
+
], SimpleRejectedTransactionsArchivistProvider);
|
|
929
|
+
|
|
870
930
|
// src/neutral/config/locators/basicRemoteRunnerLocator.ts
|
|
871
931
|
import { basicRemoteRunnerLocator as sdkBasicRemoteRunnerLocator } from "@xyo-network/xl1-sdk";
|
|
872
932
|
function basicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint, validators) {
|
|
@@ -886,12 +946,12 @@ function basicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, validato
|
|
|
886
946
|
__name(basicRemoteViewerLocator, "basicRemoteViewerLocator");
|
|
887
947
|
|
|
888
948
|
// src/neutral/config/locators/rootLocatorFromConfig.ts
|
|
889
|
-
import { assertEx as
|
|
949
|
+
import { assertEx as assertEx4 } from "@xylabs/sdk-js";
|
|
890
950
|
import { commonLocatorFromConfig, remoteLocatorFromConfig } from "@xyo-network/xl1-sdk";
|
|
891
951
|
async function rootLocatorFromConfig(context, validateDepsOnRegister = false) {
|
|
892
952
|
const { config } = context;
|
|
893
953
|
await commonLocatorFromConfig(context, validateDepsOnRegister);
|
|
894
|
-
const locator =
|
|
954
|
+
const locator = assertEx4(await (config.remote.rpc ? remoteLocatorFromConfig(context, validateDepsOnRegister) : void 0), () => "Root locator could not be created from config. No supported configuration found.");
|
|
895
955
|
locator.freeze();
|
|
896
956
|
return locator;
|
|
897
957
|
}
|
|
@@ -905,7 +965,12 @@ export {
|
|
|
905
965
|
BridgeConfigZod,
|
|
906
966
|
BridgeSettingsZod,
|
|
907
967
|
DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL,
|
|
968
|
+
DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL,
|
|
969
|
+
DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL,
|
|
908
970
|
DefaultServiceProvider,
|
|
971
|
+
FinalizerActor,
|
|
972
|
+
FinalizerConfigContext,
|
|
973
|
+
FinalizerConfigZod,
|
|
909
974
|
GENESIS_REWARD_AMOUNT,
|
|
910
975
|
GenericHost,
|
|
911
976
|
INSECURE_GENESIS_REWARD_MNEMONIC,
|
|
@@ -915,30 +980,31 @@ export {
|
|
|
915
980
|
ProducerConfigContext,
|
|
916
981
|
ProducerConfigZod,
|
|
917
982
|
ROOT_WALLET_RUNTIME_ID,
|
|
983
|
+
RejectedTransactionsArchivistProviderMoniker,
|
|
918
984
|
RewardRedemptionConfigContext,
|
|
919
985
|
RewardRedemptionConfigZod,
|
|
920
986
|
SHARED_ACCOUNT_REPORT_COUNT,
|
|
921
987
|
ServiceLifetime,
|
|
922
|
-
|
|
923
|
-
ValidatorConfigContext,
|
|
924
|
-
ValidatorConfigZod,
|
|
988
|
+
SimpleRejectedTransactionsArchivistProvider,
|
|
925
989
|
asApiConfig,
|
|
926
990
|
asApiConfigContext,
|
|
927
991
|
asBridgeConfig,
|
|
928
992
|
asBridgeConfigContext,
|
|
993
|
+
asFinalizerConfig,
|
|
994
|
+
asFinalizerConfigContext,
|
|
929
995
|
asMempoolConfig,
|
|
930
996
|
asMempoolConfigContext,
|
|
931
997
|
asProducerConfig,
|
|
932
998
|
asProducerConfigContext,
|
|
933
999
|
asRewardRedemptionConfig,
|
|
934
1000
|
asRewardRedemptionConfigContext,
|
|
935
|
-
asValidatorConfig,
|
|
936
|
-
asValidatorConfigContext,
|
|
937
1001
|
basicRemoteRunnerLocator,
|
|
938
1002
|
basicRemoteViewerLocator,
|
|
1003
|
+
buildInsecureGenesisRewardAccounts,
|
|
939
1004
|
buildTelemetryConfig,
|
|
940
1005
|
clearResolvedWalletReport,
|
|
941
1006
|
createProducerChainStakeIntentBlock,
|
|
1007
|
+
formatInsecureGenesisRewardWarning,
|
|
942
1008
|
formatWalletReport,
|
|
943
1009
|
getBuiltInDevMnemonic,
|
|
944
1010
|
getInsecureGenesisRewardMnemonic,
|
|
@@ -955,14 +1021,14 @@ export {
|
|
|
955
1021
|
isApiConfigContext,
|
|
956
1022
|
isBridgeConfig,
|
|
957
1023
|
isBridgeConfigContext,
|
|
1024
|
+
isFinalizerConfig,
|
|
1025
|
+
isFinalizerConfigContext,
|
|
958
1026
|
isMempoolConfig,
|
|
959
1027
|
isMempoolConfigContext,
|
|
960
1028
|
isProducerConfig,
|
|
961
1029
|
isProducerConfigContext,
|
|
962
1030
|
isRewardRedemptionConfig,
|
|
963
1031
|
isRewardRedemptionConfigContext,
|
|
964
|
-
isValidatorConfig,
|
|
965
|
-
isValidatorConfigContext,
|
|
966
1032
|
mergeConfig,
|
|
967
1033
|
resolveActorWallet,
|
|
968
1034
|
resolveGenesisRewardAddress,
|
|
@@ -974,13 +1040,13 @@ export {
|
|
|
974
1040
|
toApiConfigContext,
|
|
975
1041
|
toBridgeConfig,
|
|
976
1042
|
toBridgeConfigContext,
|
|
1043
|
+
toFinalizerConfig,
|
|
1044
|
+
toFinalizerConfigContext,
|
|
977
1045
|
toMempoolConfig,
|
|
978
1046
|
toMempoolConfigContext,
|
|
979
1047
|
toProducerConfig,
|
|
980
1048
|
toProducerConfigContext,
|
|
981
1049
|
toRewardRedemptionConfig,
|
|
982
|
-
toRewardRedemptionConfigContext
|
|
983
|
-
toValidatorConfig,
|
|
984
|
-
toValidatorConfigContext
|
|
1050
|
+
toRewardRedemptionConfigContext
|
|
985
1051
|
};
|
|
986
1052
|
//# sourceMappingURL=index.mjs.map
|