@xyo-network/xl1-cli-lib 1.20.29 → 1.21.2
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/node/commands/index.d.ts +0 -7
- package/dist/node/commands/index.d.ts.map +1 -1
- package/dist/node/commands/start/startCommand.d.ts +1 -1
- package/dist/node/commands/start/startCommand.d.ts.map +1 -1
- package/dist/node/index.mjs +42 -210
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/runCLI.d.ts.map +1 -1
- package/dist/node/xl1.mjs +42 -210
- package/dist/node/xl1.mjs.map +1 -1
- package/package.json +150 -150
- package/dist/node/commands/api/apiCommand.d.ts +0 -5
- package/dist/node/commands/api/apiCommand.d.ts.map +0 -1
- package/dist/node/commands/api/index.d.ts +0 -2
- package/dist/node/commands/api/index.d.ts.map +0 -1
- package/dist/node/commands/bridge/bridgeCommand.d.ts +0 -5
- package/dist/node/commands/bridge/bridgeCommand.d.ts.map +0 -1
- package/dist/node/commands/bridge/index.d.ts +0 -3
- package/dist/node/commands/bridge/index.d.ts.map +0 -1
- package/dist/node/commands/bridge/runBridge.d.ts +0 -6
- package/dist/node/commands/bridge/runBridge.d.ts.map +0 -1
- package/dist/node/commands/finalizer/index.d.ts +0 -2
- package/dist/node/commands/finalizer/index.d.ts.map +0 -1
- package/dist/node/commands/finalizer/runFinalizer.d.ts +0 -6
- package/dist/node/commands/finalizer/runFinalizer.d.ts.map +0 -1
- package/dist/node/commands/mempool/index.d.ts +0 -2
- package/dist/node/commands/mempool/index.d.ts.map +0 -1
- package/dist/node/commands/mempool/mempoolCommand.d.ts +0 -5
- package/dist/node/commands/mempool/mempoolCommand.d.ts.map +0 -1
- package/dist/node/commands/producer/index.d.ts +0 -2
- package/dist/node/commands/producer/index.d.ts.map +0 -1
- package/dist/node/commands/producer/producerCommand.d.ts +0 -5
- package/dist/node/commands/producer/producerCommand.d.ts.map +0 -1
- package/dist/node/commands/rewardRedemption/index.d.ts +0 -3
- package/dist/node/commands/rewardRedemption/index.d.ts.map +0 -1
- package/dist/node/commands/rewardRedemption/rewardRedemptionCommand.d.ts +0 -5
- package/dist/node/commands/rewardRedemption/rewardRedemptionCommand.d.ts.map +0 -1
- package/dist/node/commands/rewardRedemption/runRewardRedemptionApi.d.ts +0 -6
- package/dist/node/commands/rewardRedemption/runRewardRedemptionApi.d.ts.map +0 -1
- package/dist/node/commands/types.d.ts +0 -8
- package/dist/node/commands/types.d.ts.map +0 -1
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
export * from './api/index.ts';
|
|
2
|
-
export * from './bridge/index.ts';
|
|
3
|
-
export * from './finalizer/index.ts';
|
|
4
|
-
export * from './mempool/index.ts';
|
|
5
|
-
export * from './producer/index.ts';
|
|
6
|
-
export * from './rewardRedemption/index.ts';
|
|
7
1
|
export * from './start/index.ts';
|
|
8
|
-
export * from './types.ts';
|
|
9
2
|
export * from './withDeprecationWarning.ts';
|
|
10
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,6BAA6B,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import type { GetLocatorsFromConfig } from '@xyo-network/chain-orchestration';
|
|
1
2
|
import type { Config } from '@xyo-network/xl1-sdk';
|
|
2
3
|
import type { CommandModule } from 'yargs';
|
|
3
|
-
import type { GetLocatorsFromConfig } from '../types.ts';
|
|
4
4
|
export declare function startCommand(getConfiguration: () => Config, getLocatorsFromConfig: GetLocatorsFromConfig): CommandModule;
|
|
5
5
|
//# sourceMappingURL=startCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startCommand.d.ts","sourceRoot":"","sources":["../../../../src/commands/start/startCommand.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"startCommand.d.ts","sourceRoot":"","sources":["../../../../src/commands/start/startCommand.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACO,qBAAqB,EACvC,MAAM,kCAAkC,CAAA;AAWzC,OAAO,KAAK,EAAE,MAAM,EAAkC,MAAM,sBAAsB,CAAA;AAClF,OAAO,KAAK,EACgB,aAAa,EACxC,MAAM,OAAO,CAAA;AA2Ed,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,MAAM,MAAM,EAAE,qBAAqB,EAAE,qBAAqB,GAAG,aAAa,CA6BxH"}
|
package/dist/node/index.mjs
CHANGED
|
@@ -101,201 +101,26 @@ var initLogger = /* @__PURE__ */ __name((config2) => {
|
|
|
101
101
|
import { stdin as input, stdout as output } from "process";
|
|
102
102
|
import { createInterface } from "readline/promises";
|
|
103
103
|
import { isDefined as isDefined3 } from "@xylabs/sdk-js";
|
|
104
|
+
import { apiCommand } from "@xyo-network/chain-api";
|
|
105
|
+
import { bridgeCommand } from "@xyo-network/chain-bridge";
|
|
106
|
+
import { finalizerCommand } from "@xyo-network/chain-finalizer";
|
|
107
|
+
import { mempoolCommand } from "@xyo-network/chain-mempool";
|
|
104
108
|
import { contextFromConfigWithoutLocator, detectDerivationPathCollisions, formatWalletReport, initializeResolvedWalletReport, locatorsFromConfig, Orchestrator } from "@xyo-network/chain-orchestration";
|
|
105
|
-
import {
|
|
109
|
+
import { initHealthEndpoints } from "@xyo-network/chain-orchestration-express";
|
|
110
|
+
import { producerCommand } from "@xyo-network/chain-producer";
|
|
111
|
+
import { rewardRedemptionCommand } from "@xyo-network/chain-reward-redemption";
|
|
112
|
+
import { ActorConfigZod, ConfigZod as ConfigZod2, DefaultMetricsScrapePorts } from "@xyo-network/xl1-sdk";
|
|
106
113
|
import yargs from "yargs";
|
|
107
114
|
import { hideBin } from "yargs/helpers";
|
|
108
115
|
|
|
109
|
-
// src/commands/
|
|
116
|
+
// src/commands/start/startCommand.ts
|
|
110
117
|
import { getApiActor } from "@xyo-network/chain-api";
|
|
118
|
+
import { getBridgeActor } from "@xyo-network/chain-bridge";
|
|
119
|
+
import { getFinalizerActor } from "@xyo-network/chain-finalizer";
|
|
111
120
|
import { getMempoolActor } from "@xyo-network/chain-mempool";
|
|
112
|
-
import { ApiConfigZod, FinalizerConfigZod, MempoolConfigZod } from "@xyo-network/chain-orchestration";
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
import { exists } from "@xylabs/sdk-js";
|
|
116
|
-
import { FinalizerActor, initActorWallet } from "@xyo-network/chain-orchestration";
|
|
117
|
-
var getFinalizerActor = /* @__PURE__ */ __name(async (config2, locator) => {
|
|
118
|
-
const account = await initActorWallet({
|
|
119
|
-
config: config2,
|
|
120
|
-
logger: locator.context.logger,
|
|
121
|
-
singletons: {},
|
|
122
|
-
caches: {}
|
|
123
|
-
});
|
|
124
|
-
return await FinalizerActor.create({
|
|
125
|
-
account,
|
|
126
|
-
config: config2,
|
|
127
|
-
locator
|
|
128
|
-
});
|
|
129
|
-
}, "getFinalizerActor");
|
|
130
|
-
|
|
131
|
-
// src/commands/api/apiCommand.ts
|
|
132
|
-
function apiCommand(getConfiguration2, getLocatorsFromConfig2) {
|
|
133
|
-
return {
|
|
134
|
-
command: "api",
|
|
135
|
-
deprecated: 'Use "start api" instead',
|
|
136
|
-
describe: "Run a XL1 API Node",
|
|
137
|
-
handler: /* @__PURE__ */ __name(async () => {
|
|
138
|
-
const configuration2 = getConfiguration2();
|
|
139
|
-
const { locators, orchestrator } = await getLocatorsFromConfig2([
|
|
140
|
-
"api",
|
|
141
|
-
"mempool",
|
|
142
|
-
"finalizer"
|
|
143
|
-
], configuration2);
|
|
144
|
-
const actors = await Promise.all([
|
|
145
|
-
getApiActor(ApiConfigZod.parse(locators["api"].context.config), locators["api"]),
|
|
146
|
-
getMempoolActor(MempoolConfigZod.parse(locators["mempool"].context.config), locators["mempool"]),
|
|
147
|
-
getFinalizerActor(FinalizerConfigZod.parse(locators["finalizer"].context.config), locators["finalizer"])
|
|
148
|
-
]);
|
|
149
|
-
for (const actor of actors) {
|
|
150
|
-
await orchestrator.registerActor(actor);
|
|
151
|
-
}
|
|
152
|
-
await orchestrator.start();
|
|
153
|
-
}, "handler")
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
__name(apiCommand, "apiCommand");
|
|
157
|
-
|
|
158
|
-
// src/commands/bridge/bridgeCommand.ts
|
|
159
|
-
import { BridgeConfigZod } from "@xyo-network/chain-orchestration";
|
|
160
|
-
|
|
161
|
-
// src/commands/bridge/runBridge.ts
|
|
162
|
-
import { exists as exists2 } from "@xylabs/sdk-js";
|
|
163
|
-
import { BridgeActor } from "@xyo-network/chain-bridge";
|
|
164
|
-
import { initActorWallet as initActorWallet2 } from "@xyo-network/chain-orchestration";
|
|
165
|
-
var getBridgeActor = /* @__PURE__ */ __name(async (config2, locator) => {
|
|
166
|
-
const account = await initActorWallet2({
|
|
167
|
-
config: config2,
|
|
168
|
-
logger: locator.context.logger,
|
|
169
|
-
singletons: {},
|
|
170
|
-
caches: {}
|
|
171
|
-
});
|
|
172
|
-
return await BridgeActor.create({
|
|
173
|
-
account,
|
|
174
|
-
config: config2,
|
|
175
|
-
locator
|
|
176
|
-
});
|
|
177
|
-
}, "getBridgeActor");
|
|
178
|
-
var runBridge = /* @__PURE__ */ __name(async (config2, orchestrator, locator) => {
|
|
179
|
-
const bridge = await getBridgeActor(config2, locator);
|
|
180
|
-
const actors = [
|
|
181
|
-
bridge
|
|
182
|
-
].filter(exists2);
|
|
183
|
-
for (const actor of actors) {
|
|
184
|
-
await orchestrator.registerActor(actor);
|
|
185
|
-
}
|
|
186
|
-
await orchestrator.start();
|
|
187
|
-
}, "runBridge");
|
|
188
|
-
|
|
189
|
-
// src/commands/bridge/bridgeCommand.ts
|
|
190
|
-
function bridgeCommand(getConfiguration2, getLocatorsFromConfig2) {
|
|
191
|
-
return {
|
|
192
|
-
command: "bridge",
|
|
193
|
-
deprecated: 'Use "start bridge" instead',
|
|
194
|
-
describe: "Run a XL1 Bridge Node",
|
|
195
|
-
handler: /* @__PURE__ */ __name(async () => {
|
|
196
|
-
const configuration2 = getConfiguration2();
|
|
197
|
-
const { locators, orchestrator } = await getLocatorsFromConfig2([
|
|
198
|
-
"bridge"
|
|
199
|
-
], configuration2);
|
|
200
|
-
await runBridge(BridgeConfigZod.parse(locators["bridge"].context.config), orchestrator, locators["bridge"]);
|
|
201
|
-
}, "handler")
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
__name(bridgeCommand, "bridgeCommand");
|
|
205
|
-
|
|
206
|
-
// src/commands/mempool/mempoolCommand.ts
|
|
207
|
-
import { runMempool } from "@xyo-network/chain-mempool";
|
|
208
|
-
import { MempoolConfigZod as MempoolConfigZod2 } from "@xyo-network/chain-orchestration";
|
|
209
|
-
function mempoolCommand(getConfiguration2, getLocatorsFromConfig2) {
|
|
210
|
-
return {
|
|
211
|
-
command: "mempool",
|
|
212
|
-
deprecated: 'Use "start mempool" instead',
|
|
213
|
-
describe: "Run a XL1 Mempool Node",
|
|
214
|
-
handler: /* @__PURE__ */ __name(async () => {
|
|
215
|
-
const configuration2 = getConfiguration2();
|
|
216
|
-
const { locators, orchestrator } = await getLocatorsFromConfig2([
|
|
217
|
-
"mempool"
|
|
218
|
-
], configuration2);
|
|
219
|
-
await runMempool(MempoolConfigZod2.parse(locators["mempool"].context.config), orchestrator, locators["mempool"]);
|
|
220
|
-
}, "handler")
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
__name(mempoolCommand, "mempoolCommand");
|
|
224
|
-
|
|
225
|
-
// src/commands/producer/producerCommand.ts
|
|
226
|
-
import { ProducerConfigZod } from "@xyo-network/chain-orchestration";
|
|
227
|
-
import { runProducer } from "@xyo-network/chain-producer";
|
|
228
|
-
function producerCommand(getConfiguration2, getLocatorsFromConfig2) {
|
|
229
|
-
return {
|
|
230
|
-
command: "producer",
|
|
231
|
-
deprecated: 'Use "start producer" instead',
|
|
232
|
-
describe: "Run a XL1 Producer Node",
|
|
233
|
-
handler: /* @__PURE__ */ __name(async () => {
|
|
234
|
-
const configuration2 = getConfiguration2();
|
|
235
|
-
const { locators, orchestrator } = await getLocatorsFromConfig2([
|
|
236
|
-
"producer"
|
|
237
|
-
], configuration2);
|
|
238
|
-
await runProducer(ProducerConfigZod.parse(locators["producer"].context.config), orchestrator, locators["producer"]);
|
|
239
|
-
}, "handler")
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
__name(producerCommand, "producerCommand");
|
|
243
|
-
|
|
244
|
-
// src/commands/rewardRedemption/rewardRedemptionCommand.ts
|
|
245
|
-
import { RewardRedemptionConfigZod } from "@xyo-network/chain-orchestration";
|
|
246
|
-
|
|
247
|
-
// src/commands/rewardRedemption/runRewardRedemptionApi.ts
|
|
248
|
-
import { exists as exists3 } from "@xylabs/sdk-js";
|
|
249
|
-
import { initActorWallet as initActorWallet3 } from "@xyo-network/chain-orchestration";
|
|
250
|
-
import { RewardRedemptionActor } from "@xyo-network/chain-reward-redemption";
|
|
251
|
-
async function getRewardRedemptionActor(config2, locator) {
|
|
252
|
-
const account = await initActorWallet3({
|
|
253
|
-
config: config2,
|
|
254
|
-
logger: locator.context.logger,
|
|
255
|
-
singletons: {},
|
|
256
|
-
caches: {}
|
|
257
|
-
});
|
|
258
|
-
return await RewardRedemptionActor.create({
|
|
259
|
-
account,
|
|
260
|
-
config: config2,
|
|
261
|
-
locator
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
__name(getRewardRedemptionActor, "getRewardRedemptionActor");
|
|
265
|
-
async function runRewardRedemptionApi(config2, orchestrator, locator) {
|
|
266
|
-
const rewardRedemption = await getRewardRedemptionActor(config2, locator);
|
|
267
|
-
const actors = [
|
|
268
|
-
rewardRedemption
|
|
269
|
-
].filter(exists3);
|
|
270
|
-
for (const actor of actors) {
|
|
271
|
-
await orchestrator.registerActor(actor);
|
|
272
|
-
}
|
|
273
|
-
await orchestrator.start();
|
|
274
|
-
}
|
|
275
|
-
__name(runRewardRedemptionApi, "runRewardRedemptionApi");
|
|
276
|
-
|
|
277
|
-
// src/commands/rewardRedemption/rewardRedemptionCommand.ts
|
|
278
|
-
function rewardRedemptionCommand(getConfiguration2, getLocatorsFromConfig2) {
|
|
279
|
-
return {
|
|
280
|
-
command: "reward-redemption-api",
|
|
281
|
-
deprecated: 'Use "start rewardRedemption" instead',
|
|
282
|
-
describe: "Run a XL1 Rewards Redemption API Node",
|
|
283
|
-
handler: /* @__PURE__ */ __name(async () => {
|
|
284
|
-
const configuration2 = getConfiguration2();
|
|
285
|
-
const { locators, orchestrator } = await getLocatorsFromConfig2([
|
|
286
|
-
"rewardRedemption"
|
|
287
|
-
], configuration2);
|
|
288
|
-
await runRewardRedemptionApi(RewardRedemptionConfigZod.parse(locators["rewardRedemption"].context.config), orchestrator, locators["rewardRedemption"]);
|
|
289
|
-
}, "handler")
|
|
290
|
-
};
|
|
291
|
-
}
|
|
292
|
-
__name(rewardRedemptionCommand, "rewardRedemptionCommand");
|
|
293
|
-
|
|
294
|
-
// src/commands/start/startCommand.ts
|
|
295
|
-
import { getApiActor as getApiActor2 } from "@xyo-network/chain-api";
|
|
296
|
-
import { getMempoolActor as getMempoolActor2 } from "@xyo-network/chain-mempool";
|
|
297
|
-
import { ApiConfigZod as ApiConfigZod2, BridgeConfigZod as BridgeConfigZod2, FinalizerConfigZod as FinalizerConfigZod2, initActorAccount, MempoolConfigZod as MempoolConfigZod3, ProducerConfigZod as ProducerConfigZod2, RewardRedemptionConfigZod as RewardRedemptionConfigZod2 } from "@xyo-network/chain-orchestration";
|
|
298
|
-
import { ProducerActor } from "@xyo-network/chain-producer";
|
|
121
|
+
import { ApiConfigZod, BridgeConfigZod, FinalizerConfigZod, MempoolConfigZod, ProducerConfigZod, RewardRedemptionConfigZod } from "@xyo-network/chain-orchestration";
|
|
122
|
+
import { getProducerActor } from "@xyo-network/chain-producer";
|
|
123
|
+
import { getRewardRedemptionActor } from "@xyo-network/chain-reward-redemption";
|
|
299
124
|
var KNOWN_ACTORS = [
|
|
300
125
|
"api",
|
|
301
126
|
"bridge",
|
|
@@ -321,36 +146,27 @@ __name(getDefaultActors, "getDefaultActors");
|
|
|
321
146
|
async function buildActor(name, locator) {
|
|
322
147
|
switch (name) {
|
|
323
148
|
case "api": {
|
|
324
|
-
const config2 =
|
|
325
|
-
return await
|
|
149
|
+
const config2 = ApiConfigZod.parse(locator.context.config);
|
|
150
|
+
return await getApiActor(config2, locator);
|
|
326
151
|
}
|
|
327
152
|
case "bridge": {
|
|
328
|
-
const config2 =
|
|
153
|
+
const config2 = BridgeConfigZod.parse(locator.context.config);
|
|
329
154
|
return await getBridgeActor(config2, locator);
|
|
330
155
|
}
|
|
331
156
|
case "mempool": {
|
|
332
|
-
const config2 =
|
|
333
|
-
return await
|
|
157
|
+
const config2 = MempoolConfigZod.parse(locator.context.config);
|
|
158
|
+
return await getMempoolActor(config2, locator);
|
|
334
159
|
}
|
|
335
160
|
case "producer": {
|
|
336
|
-
const config2 =
|
|
337
|
-
|
|
338
|
-
...locator.context,
|
|
339
|
-
config: config2
|
|
340
|
-
});
|
|
341
|
-
return await ProducerActor.create({
|
|
342
|
-
config: config2,
|
|
343
|
-
locator,
|
|
344
|
-
name: "xl1-producer",
|
|
345
|
-
account
|
|
346
|
-
});
|
|
161
|
+
const config2 = ProducerConfigZod.parse(locator.context.config);
|
|
162
|
+
return await getProducerActor(config2, locator);
|
|
347
163
|
}
|
|
348
164
|
case "rewardRedemption": {
|
|
349
|
-
const config2 =
|
|
165
|
+
const config2 = RewardRedemptionConfigZod.parse(locator.context.config);
|
|
350
166
|
return await getRewardRedemptionActor(config2, locator);
|
|
351
167
|
}
|
|
352
168
|
case "finalizer": {
|
|
353
|
-
const config2 =
|
|
169
|
+
const config2 = FinalizerConfigZod.parse(locator.context.config);
|
|
354
170
|
return await getFinalizerActor(config2, locator);
|
|
355
171
|
}
|
|
356
172
|
default: {
|
|
@@ -458,9 +274,16 @@ var optionsFromGlobalZodRegistry = /* @__PURE__ */ __name(() => {
|
|
|
458
274
|
}, "optionsFromGlobalZodRegistry");
|
|
459
275
|
|
|
460
276
|
// src/runCLI.ts
|
|
277
|
+
var DEFAULT_HEALTH_CHECK_PORT = 9090;
|
|
278
|
+
function defaultScrapePortForActors(actors) {
|
|
279
|
+
const primary = actors[0];
|
|
280
|
+
const key = primary === "rewardRedemption" ? "rewardRedemptionApi" : primary;
|
|
281
|
+
return DefaultMetricsScrapePorts[key] ?? DefaultMetricsScrapePorts.producer;
|
|
282
|
+
}
|
|
283
|
+
__name(defaultScrapePortForActors, "defaultScrapePortForActors");
|
|
461
284
|
var configuration;
|
|
462
285
|
var skipInsecureConfirm = false;
|
|
463
|
-
var version = isDefined3("1.
|
|
286
|
+
var version = isDefined3("1.21.2") ? "1.21.2" : "unknown";
|
|
464
287
|
function getConfiguration() {
|
|
465
288
|
return configuration;
|
|
466
289
|
}
|
|
@@ -506,16 +329,25 @@ async function getLocatorsFromConfig(actors, configuration2) {
|
|
|
506
329
|
if (collision) throw collision;
|
|
507
330
|
const walletReport = await initializeResolvedWalletReport(actors, configuration2);
|
|
508
331
|
logger.info(formatWalletReport(walletReport));
|
|
509
|
-
const
|
|
332
|
+
const serviceName = actors.length === 1 ? `xl1-${actors[0]}` : "xl1-cli";
|
|
333
|
+
const context = await contextFromConfigWithoutLocator(config2, logger, serviceName, version, defaultScrapePortForActors(actors));
|
|
510
334
|
if (skipInsecureConfirm) {
|
|
511
335
|
logger.warn("Insecure genesis reward wallet is active. Interactive confirmation skipped via --skip-insecure-confirm.");
|
|
512
336
|
}
|
|
513
337
|
const onInsecureGenesisConfirm = skipInsecureConfirm ? void 0 : async () => await promptForInsecureGenesisConfirmation(logger);
|
|
514
338
|
const locators = await locatorsFromConfig(context, config2, onInsecureGenesisConfirm);
|
|
339
|
+
const healthCheckPort = configuration2.healthCheckPort ?? DEFAULT_HEALTH_CHECK_PORT;
|
|
340
|
+
const healthServer = healthCheckPort > 0 && context.statusReporter !== void 0 ? await initHealthEndpoints({
|
|
341
|
+
logger,
|
|
342
|
+
port: healthCheckPort,
|
|
343
|
+
readiness: orchestrator,
|
|
344
|
+
statusMonitor: context.statusReporter
|
|
345
|
+
}) : void 0;
|
|
515
346
|
process.on("SIGINT", () => {
|
|
516
347
|
void (async () => {
|
|
517
348
|
try {
|
|
518
349
|
logger.log("\nSIGINT received. Attempting graceful shutdown...");
|
|
350
|
+
healthServer?.close();
|
|
519
351
|
await orchestrator?.stop();
|
|
520
352
|
logger.log("Orchestrator stopped, exiting now.");
|
|
521
353
|
process.exit(0);
|
|
@@ -548,7 +380,7 @@ $0 <command> [options]`).parserConfiguration({
|
|
|
548
380
|
configuration = config2;
|
|
549
381
|
});
|
|
550
382
|
skipInsecureConfirm = Boolean(argv2["skip-insecure-confirm"]);
|
|
551
|
-
}).options(optionsFromGlobalZodRegistry()).wrap(y.terminalWidth()).command(withDeprecationWarning(apiCommand(getConfiguration, getLocatorsFromConfig))).command(withDeprecationWarning(bridgeCommand(getConfiguration, getLocatorsFromConfig))).command(withDeprecationWarning(mempoolCommand(getConfiguration, getLocatorsFromConfig))).command(withDeprecationWarning(producerCommand(getConfiguration, getLocatorsFromConfig))).command(withDeprecationWarning(rewardRedemptionCommand(getConfiguration, getLocatorsFromConfig))).command(startCommand(getConfiguration, getLocatorsFromConfig)).options({
|
|
383
|
+
}).options(optionsFromGlobalZodRegistry()).wrap(y.terminalWidth()).command(withDeprecationWarning(apiCommand(getConfiguration, getLocatorsFromConfig))).command(withDeprecationWarning(bridgeCommand(getConfiguration, getLocatorsFromConfig))).command(withDeprecationWarning(finalizerCommand(getConfiguration, getLocatorsFromConfig))).command(withDeprecationWarning(mempoolCommand(getConfiguration, getLocatorsFromConfig))).command(withDeprecationWarning(producerCommand(getConfiguration, getLocatorsFromConfig))).command(withDeprecationWarning(rewardRedemptionCommand(getConfiguration, getLocatorsFromConfig))).command(startCommand(getConfiguration, getLocatorsFromConfig)).options({
|
|
552
384
|
"config": {
|
|
553
385
|
type: "string",
|
|
554
386
|
description: "Path to a config file to use instead of the default search.",
|
package/dist/node/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/configMiddleware.ts","../../src/initLogger.ts","../../src/runCLI.ts","../../src/commands/api/apiCommand.ts","../../src/commands/finalizer/runFinalizer.ts","../../src/commands/bridge/bridgeCommand.ts","../../src/commands/bridge/runBridge.ts","../../src/commands/mempool/mempoolCommand.ts","../../src/commands/producer/producerCommand.ts","../../src/commands/rewardRedemption/rewardRedemptionCommand.ts","../../src/commands/rewardRedemption/runRewardRedemptionApi.ts","../../src/commands/start/startCommand.ts","../../src/commands/withDeprecationWarning.ts","../../src/images.ts","../../src/optionsFromGlobalZodRegistry.ts","../../src/start.ts"],"sourcesContent":["import { createDeepMerge, isDefined } from '@xylabs/sdk-js'\nimport {\n ActorMnemonicNotAllowedError,\n assertNoActorMnemonics,\n ConfigFileNotFoundError,\n tryParseConfig,\n} from '@xyo-network/chain-orchestration'\nimport type { Config } from '@xyo-network/xl1-sdk'\nimport {\n ConfigZod, isZodError, resolveConfig,\n} from '@xyo-network/xl1-sdk'\n\nconst deepMerge = createDeepMerge({ arrayStrategy: 'concat' })\ntype ConfigWithMnemonic = Config & { mnemonic?: string }\n\n/**\n * Yargs `.env()` with `dot-notation` turns `XL1_ACTORS__0__NAME=foo` into\n * `{ actors: { '0': { name: 'foo' } } }` — an object keyed by string indices\n * rather than an array. Normalize that back into an array so ConfigZod's\n * `actors` array schema accepts it.\n */\nfunction coerceActorsArray(argv: Record<string, unknown>): Record<string, unknown> {\n const actors = argv.actors\n if (actors === undefined || Array.isArray(actors)) return argv\n if (typeof actors !== 'object' || actors === null) return argv\n const entries = Object.entries(actors as Record<string, unknown>)\n const numericEntries = entries\n .map(([key, value]) => [Number(key), value] as const)\n .filter(([key]) => Number.isInteger(key) && key >= 0)\n if (numericEntries.length !== entries.length) return argv\n const asArray: unknown[] = []\n for (const [key, value] of numericEntries) asArray[key] = value\n return { ...argv, actors: asArray }\n}\n\nfunction safeParseOrThrow(input: unknown): Config {\n const result = ConfigZod.safeParse(input)\n if (!result.success) throw result.error\n return result.data as Config\n}\n\nasync function buildFinalConfig(argv: Record<string, unknown>): Promise<ConfigWithMnemonic> {\n // Parse the various config sources\n const configPath = argv.config as string | undefined\n const parsedConfigFile = await tryParseConfig({ configPath }) as ConfigWithMnemonic // Config file\n const rootMnemonicFromFile = typeof parsedConfigFile.mnemonic === 'string' ? parsedConfigFile.mnemonic : undefined\n const normalizedArgv = coerceActorsArray(argv)\n const parsedConfigArgs = ConfigZod.safeParse(normalizedArgv).data ?? {} // Command-line arguments & ENV VARs\n const rootMnemonicFromArgs = typeof normalizedArgv.mnemonic === 'string' ? normalizedArgv.mnemonic : undefined\n // Deep merge with precedence\n // TODO: Would like precedence to be defaults < file < ENV < CLI Args\n // but there is currently no way to determine which are defaults vs\n // user-supplied CLI Args since we set the CLI args to the defaults\n // and receive a flattened object. We might need to manually invoke\n // the parser without the defaults to achieve this.\n const mergedConfig = safeParseOrThrow(deepMerge(parsedConfigFile, parsedConfigArgs))\n const validated = safeParseOrThrow(resolveConfig(safeParseOrThrow(mergedConfig)))\n const rootMnemonic = rootMnemonicFromArgs ?? rootMnemonicFromFile\n return isDefined(rootMnemonic) ? { ...validated, mnemonic: rootMnemonic } : validated\n}\n\nexport async function configMiddleware(argv: Record<string, unknown>, setConfiguration: (config: Config) => void): Promise<void> {\n try {\n const finalConfig = await buildFinalConfig(argv)\n // Hard-fail if any actor was configured with its own mnemonic. Mnemonics\n // must live at the root; actors pick their wallet via accountPath.\n assertNoActorMnemonics(finalConfig)\n setConfiguration(finalConfig as Config)\n\n // Check if user wants to dump config and exit\n if (argv['dump-config']) {\n console.log(JSON.stringify(finalConfig, null, 2))\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0)\n }\n } catch (err) {\n if (err instanceof ConfigFileNotFoundError) {\n console.error(`${err.message}. Check the path passed to --config/-c and try again.`)\n } else if (err instanceof ActorMnemonicNotAllowedError) {\n console.error(err.message)\n } else if (isZodError(err)) {\n console.error(`Zod error: ${err.message}`)\n } else {\n console.error(`Error parsing configuration: ${err}`)\n }\n if (!(err instanceof ConfigFileNotFoundError) && !(err instanceof ActorMnemonicNotAllowedError)) {\n console.error(`Stack: ${err instanceof Error ? err.stack : 'N/A'}`)\n }\n throw new Error('Invalid configuration', { cause: err })\n }\n}\n","import type { Logger, LogLevelValue } from '@xylabs/sdk-js'\nimport {\n Base,\n ConsoleLogger, isDefined,\n LogLevel, SilentLogger,\n} from '@xylabs/sdk-js'\nimport type { BaseConfig } from '@xyo-network/xl1-sdk'\n\nexport const initLogger = (config: BaseConfig): Logger => {\n let logger: Logger\n if (config.log.silent) {\n logger = new SilentLogger()\n } else {\n let level: LogLevelValue | undefined\n if (isDefined(config.log.logLevel)) {\n const parsed = LogLevel[config.log.logLevel.toLowerCase() as keyof typeof LogLevel]\n if (isDefined(parsed)) level = parsed\n }\n logger = new ConsoleLogger(level)\n }\n Base.defaultLogger = logger\n return logger\n}\n","import { stdin as input, stdout as output } from 'node:process'\nimport { createInterface } from 'node:readline/promises'\n\nimport { isDefined } from '@xylabs/sdk-js'\nimport {\n contextFromConfigWithoutLocator, detectDerivationPathCollisions, formatWalletReport, initializeResolvedWalletReport,\n locatorsFromConfig, Orchestrator,\n} from '@xyo-network/chain-orchestration'\nimport type { ActorConfig, Config } from '@xyo-network/xl1-sdk'\nimport { ActorConfigZod, ConfigZod } from '@xyo-network/xl1-sdk'\nimport type { Argv } from 'yargs'\nimport yargs from 'yargs'\nimport { hideBin } from 'yargs/helpers'\n\nimport {\n apiCommand,\n bridgeCommand,\n mempoolCommand,\n producerCommand,\n rewardRedemptionCommand,\n startCommand,\n withDeprecationWarning,\n} from './commands/index.ts'\nimport { configMiddleware } from './configMiddleware.ts'\nimport { XL1LogoColorizedAscii } from './images.ts'\nimport { initLogger } from './initLogger.ts'\nimport { optionsFromGlobalZodRegistry } from './optionsFromGlobalZodRegistry.ts'\n\n/** Version string injected by Rollup at build time. */\ndeclare const __VERSION__: string\n\n/**\n * The configuration that will be used throughout the CLI.\n * This is materialized after parsing the command-line arguments,\n * environment variables, and defaults.\n */\nlet configuration: Config\nlet skipInsecureConfirm = false\n\nconst version = isDefined(__VERSION__) ? __VERSION__ : 'unknown'\n\nfunction getConfiguration(): Config {\n return configuration\n}\n\nasync function promptForInsecureGenesisConfirmation(logger: ReturnType<typeof initLogger>) {\n if (!input.isTTY || !output.isTTY) {\n logger.warn('Insecure genesis reward wallet is active. Interactive confirmation skipped because this session is not a TTY.')\n return\n }\n const rl = createInterface({ input, output })\n try {\n await rl.question('Insecure genesis reward wallet is active. Hit RETURN to continue.')\n } finally {\n rl.close()\n }\n}\n\nasync function getLocatorsFromConfig(actors: string[], configuration: Config) {\n const actorConfigs: ActorConfig[] = []\n for (const actorName of actors) {\n const existingConfig = configuration.actors.find(actor => actor.name === actorName)\n if (existingConfig) {\n actorConfigs.push(existingConfig)\n } else {\n const actorConfig = ActorConfigZod.loose().parse({ name: actorName })\n actorConfigs.push(actorConfig)\n }\n }\n\n const config = ConfigZod.parse({ ...configuration, actors: actorConfigs })\n\n const logger = initLogger(configuration)\n const orchestrator = await Orchestrator.create({ logger })\n const collision = detectDerivationPathCollisions(actors, configuration)\n if (collision) throw collision\n const walletReport = await initializeResolvedWalletReport(actors, configuration)\n logger.info(formatWalletReport(walletReport))\n const context = await contextFromConfigWithoutLocator(config, logger, 'xl1-cli', version)\n if (skipInsecureConfirm) {\n logger.warn('Insecure genesis reward wallet is active. Interactive confirmation skipped via --skip-insecure-confirm.')\n }\n const onInsecureGenesisConfirm = skipInsecureConfirm\n ? undefined\n : async () => await promptForInsecureGenesisConfirmation(logger)\n const locators = await locatorsFromConfig(context, config, onInsecureGenesisConfirm)\n // Handle cancellation (Ctrl+C)\n process.on('SIGINT', () => {\n void (async () => {\n try {\n logger.log('\\nSIGINT received. Attempting graceful shutdown...')\n await orchestrator?.stop()\n logger.log('Orchestrator stopped, exiting now.')\n process.exit(0)\n } catch (err) {\n logger.error('Error stopping orchestrator:', err)\n process.exit(1)\n }\n })()\n })\n return { locators, orchestrator }\n}\n\n// Main entry point\nexport async function runCLI() {\n // Parse command-line arguments using Yargs\n const y = yargs(hideBin(process.argv)) as Argv<Config>\n const argv = y\n .usage(`\n🚀 XL1 Node CLI (${version})\n${XL1LogoColorizedAscii}\nRun various components of the XL1 ecosystem.\n\nUsage:\n$0 <command> [options]`)\n .parserConfiguration({\n 'dot-notation': true, // foo.bar → { foo: { bar } }\n 'parse-numbers': false, // Don't auto-parse numbers to allow strings like \"0x1\"\n 'populate--': true, // Populate -- with all options so we can detected user-supplied vs defaults\n })\n .env('XL1')\n .scriptName('xl1')\n .middleware(async (argv) => {\n await configMiddleware(argv, (config) => {\n configuration = config\n })\n skipInsecureConfirm = Boolean(argv['skip-insecure-confirm'])\n })\n .options(optionsFromGlobalZodRegistry())\n .wrap(y.terminalWidth())\n .command(withDeprecationWarning(apiCommand(getConfiguration, getLocatorsFromConfig)))\n .command(withDeprecationWarning(bridgeCommand(getConfiguration, getLocatorsFromConfig)))\n .command(withDeprecationWarning(mempoolCommand(getConfiguration, getLocatorsFromConfig)))\n .command(withDeprecationWarning(producerCommand(getConfiguration, getLocatorsFromConfig)))\n .command(withDeprecationWarning(rewardRedemptionCommand(getConfiguration, getLocatorsFromConfig)))\n .command(startCommand(getConfiguration, getLocatorsFromConfig))\n .options({\n 'config': {\n type: 'string',\n description: 'Path to a config file to use instead of the default search.',\n alias: 'c',\n },\n 'mnemonic': {\n type: 'string',\n description: 'Shared root mnemonic used by actors that do not define their own mnemonic.',\n },\n 'dump-config': {\n type: 'boolean',\n description: 'Just process the configuration and print the resolved config to stdout, then exit.',\n default: false,\n },\n 'skip-insecure-confirm': {\n type: 'boolean',\n description: 'Skip the interactive RETURN confirmation when the built-in dev mnemonic / insecure genesis reward wallet is active.',\n default: false,\n },\n })\n .help()\n .alias('help', 'h')\n .version(version)\n .argv\n\n await argv\n}\n","import { getApiActor } from '@xyo-network/chain-api'\nimport { getMempoolActor } from '@xyo-network/chain-mempool'\nimport {\n ApiConfigZod, FinalizerConfigZod,\n MempoolConfigZod,\n} from '@xyo-network/chain-orchestration'\nimport type { Config } from '@xyo-network/xl1-sdk'\nimport type { CommandModule } from 'yargs'\n\nimport { getFinalizerActor } from '../finalizer/index.ts'\nimport type { GetLocatorsFromConfig } from '../types.ts'\n\nexport function apiCommand(getConfiguration: () => Config, getLocatorsFromConfig: GetLocatorsFromConfig): CommandModule {\n return {\n command: 'api',\n deprecated: 'Use \"start api\" instead',\n describe: 'Run a XL1 API Node',\n handler: async () => {\n const configuration = getConfiguration()\n const { locators, orchestrator } = await getLocatorsFromConfig(['api', 'mempool', 'finalizer'], configuration)\n const actors = await Promise.all([getApiActor(\n ApiConfigZod.parse(locators['api'].context.config),\n locators['api'],\n ), getMempoolActor(\n MempoolConfigZod.parse(locators['mempool'].context.config),\n locators['mempool'],\n ), getFinalizerActor(\n FinalizerConfigZod.parse(locators['finalizer'].context.config),\n locators['finalizer'],\n )])\n\n for (const actor of actors) {\n await orchestrator.registerActor(actor)\n }\n\n await orchestrator.start()\n },\n }\n}\n","import { exists } from '@xylabs/sdk-js'\nimport type { FinalizerConfig, OrchestratorInstance } from '@xyo-network/chain-orchestration'\nimport { FinalizerActor, initActorWallet } from '@xyo-network/chain-orchestration'\nimport type { ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk'\n\nexport const getFinalizerActor = async (\n config: FinalizerConfig,\n locator: ProviderFactoryLocatorInstance,\n) => {\n const account = await initActorWallet({\n config, logger: locator.context.logger, singletons: {}, caches: {},\n })\n // Create actors\n return await FinalizerActor.create({\n account, config, locator,\n })\n}\n\nexport const runFinalizer = async (\n config: FinalizerConfig,\n orchestrator: OrchestratorInstance,\n locator: ProviderFactoryLocatorInstance,\n) => {\n const finalizer = await getFinalizerActor(config, locator)\n const actors = [finalizer].filter(exists)\n\n for (const actor of actors) {\n // Register the actor with the orchestrator\n await orchestrator.registerActor(actor)\n }\n // Start the orchestrator => automatically activates the actor\n await orchestrator.start()\n}\n","import { BridgeConfigZod } from '@xyo-network/chain-orchestration'\nimport type { Config } from '@xyo-network/xl1-sdk'\nimport type { CommandModule } from 'yargs'\n\nimport type { GetLocatorsFromConfig } from '../types.ts'\nimport { runBridge } from './runBridge.ts'\n\nexport function bridgeCommand(getConfiguration: () => Config, getLocatorsFromConfig: GetLocatorsFromConfig): CommandModule {\n return {\n command: 'bridge',\n deprecated: 'Use \"start bridge\" instead',\n describe: 'Run a XL1 Bridge Node',\n handler: async () => {\n const configuration = getConfiguration()\n const { locators, orchestrator } = await getLocatorsFromConfig(['bridge'], configuration)\n await runBridge(BridgeConfigZod.parse(locators['bridge'].context.config), orchestrator, locators['bridge'])\n },\n }\n}\n","import { exists } from '@xylabs/sdk-js'\nimport { BridgeActor } from '@xyo-network/chain-bridge'\nimport type { BridgeConfig, OrchestratorInstance } from '@xyo-network/chain-orchestration'\nimport { initActorWallet } from '@xyo-network/chain-orchestration'\nimport type { ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk'\n\nexport const getBridgeActor = async (\n config: BridgeConfig,\n locator: ProviderFactoryLocatorInstance,\n) => {\n const account = await initActorWallet({\n config, logger: locator.context.logger, singletons: {}, caches: {},\n })\n // Create actors\n return await BridgeActor.create({\n account, config, locator,\n })\n}\n\nexport const runBridge = async (\n config: BridgeConfig,\n orchestrator: OrchestratorInstance,\n locator: ProviderFactoryLocatorInstance,\n) => {\n const bridge = await getBridgeActor(config, locator)\n const actors = [bridge].filter(exists)\n\n for (const actor of actors) {\n // Register the actor with the orchestrator\n await orchestrator.registerActor(actor)\n }\n // Start the orchestrator => automatically activates the actor\n await orchestrator.start()\n}\n","import { runMempool } from '@xyo-network/chain-mempool'\nimport { MempoolConfigZod } from '@xyo-network/chain-orchestration'\nimport type { Config } from '@xyo-network/xl1-sdk'\nimport type { CommandModule } from 'yargs'\n\nimport type { GetLocatorsFromConfig } from '../types.ts'\n\nexport function mempoolCommand(getConfiguration: () => Config, getLocatorsFromConfig: GetLocatorsFromConfig): CommandModule {\n return {\n command: 'mempool',\n deprecated: 'Use \"start mempool\" instead',\n describe: 'Run a XL1 Mempool Node',\n handler: async () => {\n const configuration = getConfiguration()\n const { locators, orchestrator } = await getLocatorsFromConfig(['mempool'], configuration)\n await runMempool(MempoolConfigZod.parse(locators['mempool'].context.config), orchestrator, locators['mempool'])\n },\n }\n}\n","import { ProducerConfigZod } from '@xyo-network/chain-orchestration'\nimport { runProducer } from '@xyo-network/chain-producer'\nimport type { Config } from '@xyo-network/xl1-sdk'\nimport type { CommandModule } from 'yargs'\n\nimport type { GetLocatorsFromConfig } from '../types.ts'\n\nexport function producerCommand(getConfiguration: () => Config, getLocatorsFromConfig: GetLocatorsFromConfig): CommandModule {\n return {\n command: 'producer',\n deprecated: 'Use \"start producer\" instead',\n describe: 'Run a XL1 Producer Node',\n handler: async () => {\n const configuration = getConfiguration()\n const { locators, orchestrator } = await getLocatorsFromConfig(['producer'], configuration)\n await runProducer(ProducerConfigZod.parse(locators['producer'].context.config), orchestrator, locators['producer'])\n },\n }\n}\n","import { RewardRedemptionConfigZod } from '@xyo-network/chain-orchestration'\nimport type { Config } from '@xyo-network/xl1-sdk'\nimport type { CommandModule } from 'yargs'\n\nimport type { GetLocatorsFromConfig } from '../types.ts'\nimport { runRewardRedemptionApi } from './runRewardRedemptionApi.ts'\n\nexport function rewardRedemptionCommand(getConfiguration: () => Config, getLocatorsFromConfig: GetLocatorsFromConfig): CommandModule {\n return {\n command: 'reward-redemption-api',\n deprecated: 'Use \"start rewardRedemption\" instead',\n describe: 'Run a XL1 Rewards Redemption API Node',\n handler: async () => {\n const configuration = getConfiguration()\n const { locators, orchestrator } = await getLocatorsFromConfig(['rewardRedemption'], configuration)\n await runRewardRedemptionApi(RewardRedemptionConfigZod.parse(locators['rewardRedemption'].context.config), orchestrator, locators['rewardRedemption'])\n },\n }\n}\n","import { exists } from '@xylabs/sdk-js'\nimport type {\n OrchestratorInstance,\n RewardRedemptionConfig,\n} from '@xyo-network/chain-orchestration'\nimport { initActorWallet } from '@xyo-network/chain-orchestration'\nimport { RewardRedemptionActor } from '@xyo-network/chain-reward-redemption'\nimport type { ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk'\n\nexport async function getRewardRedemptionActor(\n config: RewardRedemptionConfig,\n locator: ProviderFactoryLocatorInstance,\n) {\n const account = await initActorWallet({\n config, logger: locator.context.logger, singletons: {}, caches: {},\n })\n return await RewardRedemptionActor.create({\n account, config, locator,\n })\n}\n\nexport async function runRewardRedemptionApi(\n config: RewardRedemptionConfig,\n orchestrator: OrchestratorInstance,\n locator: ProviderFactoryLocatorInstance,\n) {\n const rewardRedemption = await getRewardRedemptionActor(config, locator)\n const actors = [rewardRedemption].filter(exists)\n\n for (const actor of actors) {\n // Register the actor with the orchestrator\n await orchestrator.registerActor(actor)\n }\n // Start the orchestrator => automatically activates the actor\n await orchestrator.start()\n}\n","import type { CreatableName } from '@xylabs/sdk-js'\nimport { getApiActor } from '@xyo-network/chain-api'\nimport { getMempoolActor } from '@xyo-network/chain-mempool'\nimport type { OrchestratorInstance } from '@xyo-network/chain-orchestration'\nimport {\n ApiConfigZod,\n BridgeConfigZod,\n FinalizerConfigZod,\n initActorAccount,\n MempoolConfigZod,\n ProducerConfigZod,\n RewardRedemptionConfigZod,\n} from '@xyo-network/chain-orchestration'\nimport { ProducerActor } from '@xyo-network/chain-producer'\nimport type {\n ActorInstanceV3, Config, ProviderFactoryLocatorInstance,\n} from '@xyo-network/xl1-sdk'\nimport type {\n ArgumentsCamelCase, Argv, CommandModule,\n} from 'yargs'\n\nimport { initLogger } from '../../initLogger.ts'\nimport { getBridgeActor } from '../bridge/index.ts'\nimport { getFinalizerActor } from '../finalizer/index.ts'\nimport { getRewardRedemptionActor } from '../rewardRedemption/index.ts'\nimport type { GetLocatorsFromConfig } from '../types.ts'\n\ninterface StartArgs {\n actors?: string[]\n}\n\nconst KNOWN_ACTORS = ['api', 'bridge', 'finalizer', 'mempool', 'producer', 'rewardRedemption'] as const\n\nconst BOOT_TIMEOUT_MS = 60_000\n\nfunction getActorsFromConfig(configuration: Config): string[] | undefined {\n const enabledActors = configuration.actors\n .filter(actor => actor.enabled !== false)\n .map(actor => actor.name)\n return enabledActors.length > 0 ? enabledActors : undefined\n}\n\nfunction getDefaultActors(): string[] {\n return ['api', 'producer', 'finalizer']\n}\n\nasync function buildActor(\n name: string,\n locator: ProviderFactoryLocatorInstance,\n): Promise<ActorInstanceV3> {\n switch (name) {\n case 'api': {\n const config = ApiConfigZod.parse(locator.context.config)\n return await getApiActor(config, locator)\n }\n case 'bridge': {\n const config = BridgeConfigZod.parse(locator.context.config)\n return await getBridgeActor(config, locator)\n }\n case 'mempool': {\n const config = MempoolConfigZod.parse(locator.context.config)\n return await getMempoolActor(config, locator)\n }\n case 'producer': {\n const config = ProducerConfigZod.parse(locator.context.config)\n const account = await initActorAccount({ ...locator.context, config })\n return await ProducerActor.create({\n config, locator, name: 'xl1-producer' as CreatableName, account,\n })\n }\n case 'rewardRedemption': {\n const config = RewardRedemptionConfigZod.parse(locator.context.config)\n return await getRewardRedemptionActor(config, locator)\n }\n case 'finalizer': {\n const config = FinalizerConfigZod.parse(locator.context.config)\n return await getFinalizerActor(config, locator)\n }\n default: {\n throw new Error(`Unknown actor: ${name}`)\n }\n }\n}\n\nasync function bootActors(\n requestedActors: string[],\n locators: Record<string, ProviderFactoryLocatorInstance>,\n orchestrator: OrchestratorInstance,\n configuration: Config,\n): Promise<void> {\n const startedAt = Date.now()\n const actors = await Promise.all(requestedActors.map(name => buildActor(name, locators[name])))\n for (const actor of actors) {\n await orchestrator.registerActor(actor)\n }\n await orchestrator.start()\n await orchestrator.whenReady(BOOT_TIMEOUT_MS)\n const ms = Date.now() - startedAt\n initLogger(configuration).info(`[xl1] system ready (${requestedActors.length} actor${requestedActors.length === 1 ? '' : 's'}, ${ms}ms)`)\n}\n\nexport function startCommand(getConfiguration: () => Config, getLocatorsFromConfig: GetLocatorsFromConfig): CommandModule {\n return {\n command: ['start [actors..]', '$0'],\n describe: 'Run a full XL1 Node',\n builder: (yargs: Argv) => {\n return yargs\n .positional('actors', {\n type: 'string',\n array: true,\n choices: KNOWN_ACTORS,\n description: 'Actors to start (e.g. xl1 start api producer or xl1 start api,producer)',\n coerce: (values: string[]) => values.flatMap(v => v.split(',')),\n })\n .option('actors', {\n type: 'array',\n string: true,\n choices: KNOWN_ACTORS,\n description: 'List of actors to start (e.g. --actors api producer finalizer). Defaults to api, producer, and finalizer.',\n })\n },\n handler: async (argv: ArgumentsCamelCase<StartArgs>) => {\n const configuration = getConfiguration()\n const requestedActors = argv.actors !== undefined && argv.actors.length > 0\n ? argv.actors\n : getActorsFromConfig(configuration) ?? getDefaultActors()\n const { locators, orchestrator } = await getLocatorsFromConfig(requestedActors, configuration)\n await bootActors(requestedActors, locators, orchestrator, configuration)\n },\n }\n}\n","import { delay } from '@xylabs/sdk-js'\nimport type { CommandModule } from 'yargs'\n\nexport function withDeprecationWarning(module: CommandModule): CommandModule {\n const { deprecated, handler } = module\n if (typeof deprecated === 'string') {\n return {\n ...module,\n handler: async (argv) => {\n console.warn(`[deprecated] ${deprecated}`)\n await delay(3000)\n return handler(argv)\n },\n }\n }\n return module\n}\n","/* eslint-disable no-irregular-whitespace, @stylistic/max-len */\nexport const XL1LogoColorizedAscii = `\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;118;111;144m_\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;72;32;223m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m ╠╠\u001b[0m\u001b[38;2;103;85;170m_\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;79;121;152m╦\u001b[0m\u001b[38;2;82;121;151m╦\u001b[0m\u001b[38;2;112;125;136m_ \u001b[0m\u001b[38;2;88;59;196m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;73;34;221m▒ \u001b[0m\u001b[38;2;121;121;127m_\u001b[0m\u001b[38;2;100;101;128m╔\u001b[0m\u001b[38;2;93;94;127m╦\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;82;121;151m²\u001b[0m\u001b[38;2;44;116;170m╠\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;51;117;167mD\u001b[0m\u001b[38;2;80;121;152m╦\u001b[0m\u001b[38;2;111;125;136m_ \u001b[0m\u001b[38;2;67;23;232m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠ \u001b[0m\u001b[38;2;120;121;128m_\u001b[0m\u001b[38;2;100;101;127m╔\u001b[0m\u001b[38;2;79;81;127mR\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;88;90;127m╙\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;55;117;165m╚\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;44;116;171m▒▒\u001b[0m\u001b[38;2;50;116;167mD\u001b[0m\u001b[38;2;80;121;152m╦ \u001b[0m\u001b[38;2;106;90;165mj\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;89;61;194mH \u001b[0m\u001b[38;2;99;100;127m╔\u001b[0m\u001b[38;2;79;80;127mD\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒▒╠\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;83;121;150m²\u001b[0m\u001b[38;2;44;116;170m▒\u001b[0m\u001b[38;2;44;116;171m▒▒▒ \u001b[0m\u001b[38;2;76;38;217m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;74;76;128m╠\u001b[0m\u001b[38;2;71;73;128m▒▒▒\u001b[0m\u001b[38;2;89;90;128m╙\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;90;118;148m\\`\u001b[0m\u001b[38;2;89;107;153m_\u001b[0m\u001b[38;2;93;97;154m,\u001b[0m\u001b[38;2;105;89;166m╓\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;95;72;183m╓\u001b[0m\u001b[38;2;106;96;152m_\u001b[0m\u001b[38;2;100;94;143m\\`\u001b[0m\u001b[38;2;101;100;133m\\`\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;122;118;137m_\u001b[0m\u001b[38;2;113;102;153m,\u001b[0m\u001b[38;2;108;94;161m╓\u001b[0m\u001b[38;2;104;86;169m╓\u001b[0m\u001b[38;2;98;77;178m╔\u001b[0m\u001b[38;2;93;67;188m╗\u001b[0m\u001b[38;2;88;59;196mφ\u001b[0m\u001b[38;2;83;51;204m@\u001b[0m\u001b[38;2;78;42;213mD\u001b[0m\u001b[38;2;72;32;223m▒\u001b[0m\u001b[38;2;68;24;231m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;71;30;225m▒\u001b[0m\u001b[38;2;77;40;215m▒\u001b[0m\u001b[38;2;82;49;206mK\u001b[0m\u001b[38;2;87;57;198mφ\u001b[0m\u001b[38;2;91;65;190m╗\u001b[0m\u001b[38;2;97;75;180m╦\u001b[0m\u001b[38;2;103;84;171m╖\u001b[0m\u001b[38;2;107;92;163m²\u001b[0m\u001b[38;2;112;101;154m_\u001b[0m\u001b[38;2;119;112;143m_\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;106;91;164m\\`\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;89;62;193m╙\u001b[0m\u001b[38;2;85;54;201m╙\u001b[0m\u001b[38;2;80;45;210m╚\u001b[0m\u001b[38;2;74;35;220m╝\u001b[0m\u001b[38;2;69;26;229m╠\u001b[0m\u001b[38;2;66;22;233m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;73;33;222m╝\u001b[0m\u001b[38;2;79;43;212m╩\u001b[0m\u001b[38;2;84;52;203m╜\u001b[0m\u001b[38;2;88;60;195m╙\u001b[0m\u001b[38;2;93;68;187m^\u001b[0m\u001b[38;2;100;80;175m\\`\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;113;84;152m\\`\u001b[0m\u001b[38;2;103;79;169m'\u001b[0m\u001b[38;2;95;72;183m\"\u001b[0m\u001b[38;2;87;57;198m╙\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;80;46;209m╜\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;102;77;175m^\u001b[0m\u001b[38;2;112;81;162m\\`\u001b[0m\u001b[38;2;115;92;155m\\`\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;145;116;107m,\u001b[0m\u001b[38;2;199;82;45m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒╠ \u001b[0m\u001b[38;2;70;28;227m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;189;49;97må\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;155;92;114m,\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;175;98;73m╔\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒▒▒\u001b[0m\u001b[38;2;197;83;47m╩ \u001b[0m\u001b[38;2;98;76;179m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;81;48;207mH \u001b[0m\u001b[38;2;188;51;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠╠\u001b[0m\u001b[38;2;183;57;100mH\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;146;116;106m,\u001b[0m\u001b[38;2;199;82;44m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;196;84;48m╩\u001b[0m\u001b[38;2;168;102;81m^ \u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠ \u001b[0m\u001b[38;2;160;87;111m'\u001b[0m\u001b[38;2;187;52;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;156;91;113m,\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;198;83;46m╩\u001b[0m\u001b[38;2;194;85;50m╩\u001b[0m\u001b[38;2;167;102;82m^ \u001b[0m\u001b[38;2;81;46;209m╚\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠ \u001b[0m\u001b[38;2;159;88;112m'\u001b[0m\u001b[38;2;186;53;98m╚\u001b[0m\u001b[38;2;197;40;93m╩\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;110;97;158m'\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;94;69;186mH\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;68;25;230m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;108;93;162m²\u001b[0m\u001b[38;2;99;79;176m^\u001b[0m`\n","import type { UsageMeta } from '@xyo-network/xl1-sdk'\nimport { isUsageMeta } from '@xyo-network/xl1-sdk'\nimport type { Options } from 'yargs'\nimport { globalRegistry } from 'zod'\n\nconst usageMetaToOptions = (meta: UsageMeta): Options => {\n return meta\n}\n\nexport const optionsFromGlobalZodRegistry = (): Record<string, Options> => {\n const opts: Record<string, Options> = {}\n for (const schema of Object.values(globalRegistry._map)) {\n if (isUsageMeta(schema)) {\n if (schema.hidden) continue // skip hidden options\n opts[schema.title] = usageMetaToOptions(schema)\n }\n }\n return opts\n}\n","import { config } from 'dotenv'\n\nimport { runCLI } from './runCLI.ts'\n\nexport const start = async () => {\n config({ quiet: true })\n await runCLI()\n}\n"],"mappings":"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","names":["createDeepMerge","isDefined","ActorMnemonicNotAllowedError","assertNoActorMnemonics","ConfigFileNotFoundError","tryParseConfig","ConfigZod","isZodError","resolveConfig","deepMerge","createDeepMerge","arrayStrategy","coerceActorsArray","argv","actors","undefined","Array","isArray","entries","Object","numericEntries","map","key","value","Number","filter","isInteger","length","asArray","safeParseOrThrow","input","result","ConfigZod","safeParse","success","error","data","buildFinalConfig","configPath","config","parsedConfigFile","tryParseConfig","rootMnemonicFromFile","mnemonic","normalizedArgv","parsedConfigArgs","rootMnemonicFromArgs","mergedConfig","validated","resolveConfig","rootMnemonic","isDefined","configMiddleware","setConfiguration","finalConfig","assertNoActorMnemonics","console","log","JSON","stringify","process","exit","err","ConfigFileNotFoundError","message","ActorMnemonicNotAllowedError","isZodError","Error","stack","cause","Base","ConsoleLogger","isDefined","LogLevel","SilentLogger","initLogger","config","logger","log","silent","SilentLogger","level","isDefined","logLevel","parsed","LogLevel","toLowerCase","ConsoleLogger","Base","defaultLogger","stdin","input","stdout","output","createInterface","isDefined","contextFromConfigWithoutLocator","detectDerivationPathCollisions","formatWalletReport","initializeResolvedWalletReport","locatorsFromConfig","Orchestrator","ActorConfigZod","ConfigZod","yargs","hideBin","getApiActor","getMempoolActor","ApiConfigZod","FinalizerConfigZod","MempoolConfigZod","exists","FinalizerActor","initActorWallet","getFinalizerActor","config","locator","account","initActorWallet","logger","context","singletons","caches","FinalizerActor","create","apiCommand","getConfiguration","getLocatorsFromConfig","command","deprecated","describe","handler","configuration","locators","orchestrator","actors","Promise","all","getApiActor","ApiConfigZod","parse","context","config","getMempoolActor","MempoolConfigZod","getFinalizerActor","FinalizerConfigZod","actor","registerActor","start","BridgeConfigZod","exists","BridgeActor","initActorWallet","getBridgeActor","config","locator","account","initActorWallet","logger","context","singletons","caches","BridgeActor","create","runBridge","orchestrator","bridge","actors","filter","exists","actor","registerActor","start","bridgeCommand","getConfiguration","getLocatorsFromConfig","command","deprecated","describe","handler","configuration","locators","orchestrator","runBridge","BridgeConfigZod","parse","context","config","runMempool","MempoolConfigZod","mempoolCommand","getConfiguration","getLocatorsFromConfig","command","deprecated","describe","handler","configuration","locators","orchestrator","runMempool","MempoolConfigZod","parse","context","config","ProducerConfigZod","runProducer","producerCommand","getConfiguration","getLocatorsFromConfig","command","deprecated","describe","handler","configuration","locators","orchestrator","runProducer","ProducerConfigZod","parse","context","config","RewardRedemptionConfigZod","exists","initActorWallet","RewardRedemptionActor","getRewardRedemptionActor","config","locator","account","initActorWallet","logger","context","singletons","caches","RewardRedemptionActor","create","runRewardRedemptionApi","orchestrator","rewardRedemption","actors","filter","exists","actor","registerActor","start","rewardRedemptionCommand","getConfiguration","getLocatorsFromConfig","command","deprecated","describe","handler","configuration","locators","orchestrator","runRewardRedemptionApi","RewardRedemptionConfigZod","parse","context","config","getApiActor","getMempoolActor","ApiConfigZod","BridgeConfigZod","FinalizerConfigZod","initActorAccount","MempoolConfigZod","ProducerConfigZod","RewardRedemptionConfigZod","ProducerActor","KNOWN_ACTORS","BOOT_TIMEOUT_MS","getActorsFromConfig","configuration","enabledActors","actors","filter","actor","enabled","map","name","length","undefined","getDefaultActors","buildActor","locator","config","ApiConfigZod","parse","context","getApiActor","BridgeConfigZod","getBridgeActor","MempoolConfigZod","getMempoolActor","ProducerConfigZod","account","initActorAccount","ProducerActor","create","RewardRedemptionConfigZod","getRewardRedemptionActor","FinalizerConfigZod","getFinalizerActor","Error","bootActors","requestedActors","locators","orchestrator","startedAt","Date","now","Promise","all","registerActor","start","whenReady","ms","initLogger","info","startCommand","getConfiguration","getLocatorsFromConfig","command","describe","builder","yargs","positional","type","array","choices","description","coerce","values","flatMap","v","split","option","string","handler","argv","delay","withDeprecationWarning","module","deprecated","handler","argv","console","warn","delay","XL1LogoColorizedAscii","isUsageMeta","globalRegistry","usageMetaToOptions","meta","optionsFromGlobalZodRegistry","opts","schema","Object","values","globalRegistry","_map","isUsageMeta","hidden","title","configuration","skipInsecureConfirm","version","isDefined","__VERSION__","getConfiguration","promptForInsecureGenesisConfirmation","logger","input","isTTY","output","warn","rl","createInterface","question","close","getLocatorsFromConfig","actors","actorConfigs","actorName","existingConfig","find","actor","name","push","actorConfig","ActorConfigZod","loose","parse","config","ConfigZod","initLogger","orchestrator","Orchestrator","create","collision","detectDerivationPathCollisions","walletReport","initializeResolvedWalletReport","info","formatWalletReport","context","contextFromConfigWithoutLocator","onInsecureGenesisConfirm","undefined","locators","locatorsFromConfig","process","on","log","stop","exit","err","error","runCLI","y","yargs","hideBin","argv","usage","XL1LogoColorizedAscii","parserConfiguration","env","scriptName","middleware","configMiddleware","Boolean","options","optionsFromGlobalZodRegistry","wrap","terminalWidth","command","withDeprecationWarning","apiCommand","bridgeCommand","mempoolCommand","producerCommand","rewardRedemptionCommand","startCommand","type","description","alias","default","help","config","start","config","quiet","runCLI"]}
|
|
1
|
+
{"version":3,"sources":["../../src/configMiddleware.ts","../../src/initLogger.ts","../../src/runCLI.ts","../../src/commands/start/startCommand.ts","../../src/commands/withDeprecationWarning.ts","../../src/images.ts","../../src/optionsFromGlobalZodRegistry.ts","../../src/start.ts"],"sourcesContent":["import { createDeepMerge, isDefined } from '@xylabs/sdk-js'\nimport {\n ActorMnemonicNotAllowedError,\n assertNoActorMnemonics,\n ConfigFileNotFoundError,\n tryParseConfig,\n} from '@xyo-network/chain-orchestration'\nimport type { Config } from '@xyo-network/xl1-sdk'\nimport {\n ConfigZod, isZodError, resolveConfig,\n} from '@xyo-network/xl1-sdk'\n\nconst deepMerge = createDeepMerge({ arrayStrategy: 'concat' })\ntype ConfigWithMnemonic = Config & { mnemonic?: string }\n\n/**\n * Yargs `.env()` with `dot-notation` turns `XL1_ACTORS__0__NAME=foo` into\n * `{ actors: { '0': { name: 'foo' } } }` — an object keyed by string indices\n * rather than an array. Normalize that back into an array so ConfigZod's\n * `actors` array schema accepts it.\n */\nfunction coerceActorsArray(argv: Record<string, unknown>): Record<string, unknown> {\n const actors = argv.actors\n if (actors === undefined || Array.isArray(actors)) return argv\n if (typeof actors !== 'object' || actors === null) return argv\n const entries = Object.entries(actors as Record<string, unknown>)\n const numericEntries = entries\n .map(([key, value]) => [Number(key), value] as const)\n .filter(([key]) => Number.isInteger(key) && key >= 0)\n if (numericEntries.length !== entries.length) return argv\n const asArray: unknown[] = []\n for (const [key, value] of numericEntries) asArray[key] = value\n return { ...argv, actors: asArray }\n}\n\nfunction safeParseOrThrow(input: unknown): Config {\n const result = ConfigZod.safeParse(input)\n if (!result.success) throw result.error\n return result.data as Config\n}\n\nasync function buildFinalConfig(argv: Record<string, unknown>): Promise<ConfigWithMnemonic> {\n // Parse the various config sources\n const configPath = argv.config as string | undefined\n const parsedConfigFile = await tryParseConfig({ configPath }) as ConfigWithMnemonic // Config file\n const rootMnemonicFromFile = typeof parsedConfigFile.mnemonic === 'string' ? parsedConfigFile.mnemonic : undefined\n const normalizedArgv = coerceActorsArray(argv)\n const parsedConfigArgs = ConfigZod.safeParse(normalizedArgv).data ?? {} // Command-line arguments & ENV VARs\n const rootMnemonicFromArgs = typeof normalizedArgv.mnemonic === 'string' ? normalizedArgv.mnemonic : undefined\n // Deep merge with precedence\n // TODO: Would like precedence to be defaults < file < ENV < CLI Args\n // but there is currently no way to determine which are defaults vs\n // user-supplied CLI Args since we set the CLI args to the defaults\n // and receive a flattened object. We might need to manually invoke\n // the parser without the defaults to achieve this.\n const mergedConfig = safeParseOrThrow(deepMerge(parsedConfigFile, parsedConfigArgs))\n const validated = safeParseOrThrow(resolveConfig(safeParseOrThrow(mergedConfig)))\n const rootMnemonic = rootMnemonicFromArgs ?? rootMnemonicFromFile\n return isDefined(rootMnemonic) ? { ...validated, mnemonic: rootMnemonic } : validated\n}\n\nexport async function configMiddleware(argv: Record<string, unknown>, setConfiguration: (config: Config) => void): Promise<void> {\n try {\n const finalConfig = await buildFinalConfig(argv)\n // Hard-fail if any actor was configured with its own mnemonic. Mnemonics\n // must live at the root; actors pick their wallet via accountPath.\n assertNoActorMnemonics(finalConfig)\n setConfiguration(finalConfig as Config)\n\n // Check if user wants to dump config and exit\n if (argv['dump-config']) {\n console.log(JSON.stringify(finalConfig, null, 2))\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0)\n }\n } catch (err) {\n if (err instanceof ConfigFileNotFoundError) {\n console.error(`${err.message}. Check the path passed to --config/-c and try again.`)\n } else if (err instanceof ActorMnemonicNotAllowedError) {\n console.error(err.message)\n } else if (isZodError(err)) {\n console.error(`Zod error: ${err.message}`)\n } else {\n console.error(`Error parsing configuration: ${err}`)\n }\n if (!(err instanceof ConfigFileNotFoundError) && !(err instanceof ActorMnemonicNotAllowedError)) {\n console.error(`Stack: ${err instanceof Error ? err.stack : 'N/A'}`)\n }\n throw new Error('Invalid configuration', { cause: err })\n }\n}\n","import type { Logger, LogLevelValue } from '@xylabs/sdk-js'\nimport {\n Base,\n ConsoleLogger, isDefined,\n LogLevel, SilentLogger,\n} from '@xylabs/sdk-js'\nimport type { BaseConfig } from '@xyo-network/xl1-sdk'\n\nexport const initLogger = (config: BaseConfig): Logger => {\n let logger: Logger\n if (config.log.silent) {\n logger = new SilentLogger()\n } else {\n let level: LogLevelValue | undefined\n if (isDefined(config.log.logLevel)) {\n const parsed = LogLevel[config.log.logLevel.toLowerCase() as keyof typeof LogLevel]\n if (isDefined(parsed)) level = parsed\n }\n logger = new ConsoleLogger(level)\n }\n Base.defaultLogger = logger\n return logger\n}\n","import { stdin as input, stdout as output } from 'node:process'\nimport { createInterface } from 'node:readline/promises'\n\nimport { isDefined } from '@xylabs/sdk-js'\nimport { apiCommand } from '@xyo-network/chain-api'\nimport { bridgeCommand } from '@xyo-network/chain-bridge'\nimport { finalizerCommand } from '@xyo-network/chain-finalizer'\nimport { mempoolCommand } from '@xyo-network/chain-mempool'\nimport {\n contextFromConfigWithoutLocator, detectDerivationPathCollisions, formatWalletReport, initializeResolvedWalletReport,\n locatorsFromConfig, Orchestrator,\n} from '@xyo-network/chain-orchestration'\nimport { initHealthEndpoints } from '@xyo-network/chain-orchestration-express'\nimport { producerCommand } from '@xyo-network/chain-producer'\nimport { rewardRedemptionCommand } from '@xyo-network/chain-reward-redemption'\nimport type { ActorConfig, Config } from '@xyo-network/xl1-sdk'\nimport {\n ActorConfigZod, ConfigZod, DefaultMetricsScrapePorts,\n} from '@xyo-network/xl1-sdk'\nimport type { Argv } from 'yargs'\nimport yargs from 'yargs'\nimport { hideBin } from 'yargs/helpers'\n\nimport { startCommand, withDeprecationWarning } from './commands/index.ts'\nimport { configMiddleware } from './configMiddleware.ts'\nimport { XL1LogoColorizedAscii } from './images.ts'\nimport { initLogger } from './initLogger.ts'\nimport { optionsFromGlobalZodRegistry } from './optionsFromGlobalZodRegistry.ts'\n\n/** Version string injected by Rollup at build time. */\ndeclare const __VERSION__: string\n\nconst DEFAULT_HEALTH_CHECK_PORT = 9090\n\n/**\n * Maps a CLI actor name to its registered Prometheus scrape port. The CLI-level\n * exporter (one per process) defaults to the port of the first requested actor\n * so that running, e.g., `xl1 start producer` and `xl1 start api` side-by-side\n * doesn't fight over a single shared default.\n */\nfunction defaultScrapePortForActors(actors: readonly string[]): number {\n const primary = actors[0]\n const key = primary === 'rewardRedemption' ? 'rewardRedemptionApi' : primary\n return (DefaultMetricsScrapePorts as Record<string, number>)[key] ?? DefaultMetricsScrapePorts.producer\n}\n\n/**\n * The configuration that will be used throughout the CLI.\n * This is materialized after parsing the command-line arguments,\n * environment variables, and defaults.\n */\nlet configuration: Config\nlet skipInsecureConfirm = false\n\nconst version = isDefined(__VERSION__) ? __VERSION__ : 'unknown'\n\nfunction getConfiguration(): Config {\n return configuration\n}\n\nasync function promptForInsecureGenesisConfirmation(logger: ReturnType<typeof initLogger>) {\n if (!input.isTTY || !output.isTTY) {\n logger.warn('Insecure genesis reward wallet is active. Interactive confirmation skipped because this session is not a TTY.')\n return\n }\n const rl = createInterface({ input, output })\n try {\n await rl.question('Insecure genesis reward wallet is active. Hit RETURN to continue.')\n } finally {\n rl.close()\n }\n}\n\nasync function getLocatorsFromConfig(actors: string[], configuration: Config) {\n const actorConfigs: ActorConfig[] = []\n for (const actorName of actors) {\n const existingConfig = configuration.actors.find(actor => actor.name === actorName)\n if (existingConfig) {\n actorConfigs.push(existingConfig)\n } else {\n const actorConfig = ActorConfigZod.loose().parse({ name: actorName })\n actorConfigs.push(actorConfig)\n }\n }\n\n const config = ConfigZod.parse({ ...configuration, actors: actorConfigs })\n\n const logger = initLogger(configuration)\n const orchestrator = await Orchestrator.create({ logger })\n const collision = detectDerivationPathCollisions(actors, configuration)\n if (collision) throw collision\n const walletReport = await initializeResolvedWalletReport(actors, configuration)\n logger.info(formatWalletReport(walletReport))\n const serviceName = actors.length === 1 ? `xl1-${actors[0]}` : 'xl1-cli'\n const context = await contextFromConfigWithoutLocator(config, logger, serviceName, version, defaultScrapePortForActors(actors))\n if (skipInsecureConfirm) {\n logger.warn('Insecure genesis reward wallet is active. Interactive confirmation skipped via --skip-insecure-confirm.')\n }\n const onInsecureGenesisConfirm = skipInsecureConfirm\n ? undefined\n : async () => await promptForInsecureGenesisConfirmation(logger)\n const locators = await locatorsFromConfig(context, config, onInsecureGenesisConfirm)\n\n const healthCheckPort = configuration.healthCheckPort ?? DEFAULT_HEALTH_CHECK_PORT\n const healthServer = healthCheckPort > 0 && context.statusReporter !== undefined\n ? await initHealthEndpoints({\n logger,\n port: healthCheckPort,\n readiness: orchestrator,\n statusMonitor: context.statusReporter,\n })\n : undefined\n\n // Handle cancellation (Ctrl+C)\n process.on('SIGINT', () => {\n void (async () => {\n try {\n logger.log('\\nSIGINT received. Attempting graceful shutdown...')\n healthServer?.close()\n await orchestrator?.stop()\n logger.log('Orchestrator stopped, exiting now.')\n process.exit(0)\n } catch (err) {\n logger.error('Error stopping orchestrator:', err)\n process.exit(1)\n }\n })()\n })\n return { locators, orchestrator }\n}\n\n// Main entry point\nexport async function runCLI() {\n // Parse command-line arguments using Yargs\n const y = yargs(hideBin(process.argv)) as Argv<Config>\n const argv = y\n .usage(`\n🚀 XL1 Node CLI (${version})\n${XL1LogoColorizedAscii}\nRun various components of the XL1 ecosystem.\n\nUsage:\n$0 <command> [options]`)\n .parserConfiguration({\n 'dot-notation': true, // foo.bar → { foo: { bar } }\n 'parse-numbers': false, // Don't auto-parse numbers to allow strings like \"0x1\"\n 'populate--': true, // Populate -- with all options so we can detected user-supplied vs defaults\n })\n .env('XL1')\n .scriptName('xl1')\n .middleware(async (argv) => {\n await configMiddleware(argv, (config) => {\n configuration = config\n })\n skipInsecureConfirm = Boolean(argv['skip-insecure-confirm'])\n })\n .options(optionsFromGlobalZodRegistry())\n .wrap(y.terminalWidth())\n .command(withDeprecationWarning(apiCommand(getConfiguration, getLocatorsFromConfig)))\n .command(withDeprecationWarning(bridgeCommand(getConfiguration, getLocatorsFromConfig)))\n .command(withDeprecationWarning(finalizerCommand(getConfiguration, getLocatorsFromConfig)))\n .command(withDeprecationWarning(mempoolCommand(getConfiguration, getLocatorsFromConfig)))\n .command(withDeprecationWarning(producerCommand(getConfiguration, getLocatorsFromConfig)))\n .command(withDeprecationWarning(rewardRedemptionCommand(getConfiguration, getLocatorsFromConfig)))\n .command(startCommand(getConfiguration, getLocatorsFromConfig))\n .options({\n 'config': {\n type: 'string',\n description: 'Path to a config file to use instead of the default search.',\n alias: 'c',\n },\n 'mnemonic': {\n type: 'string',\n description: 'Shared root mnemonic used by actors that do not define their own mnemonic.',\n },\n 'dump-config': {\n type: 'boolean',\n description: 'Just process the configuration and print the resolved config to stdout, then exit.',\n default: false,\n },\n 'skip-insecure-confirm': {\n type: 'boolean',\n description: 'Skip the interactive RETURN confirmation when the built-in dev mnemonic / insecure genesis reward wallet is active.',\n default: false,\n },\n })\n .help()\n .alias('help', 'h')\n .version(version)\n .argv\n\n await argv\n}\n","import { getApiActor } from '@xyo-network/chain-api'\nimport { getBridgeActor } from '@xyo-network/chain-bridge'\nimport { getFinalizerActor } from '@xyo-network/chain-finalizer'\nimport { getMempoolActor } from '@xyo-network/chain-mempool'\nimport type {\n ActorInstanceV3, GetLocatorsFromConfig, OrchestratorInstance,\n} from '@xyo-network/chain-orchestration'\nimport {\n ApiConfigZod,\n BridgeConfigZod,\n FinalizerConfigZod,\n MempoolConfigZod,\n ProducerConfigZod,\n RewardRedemptionConfigZod,\n} from '@xyo-network/chain-orchestration'\nimport { getProducerActor } from '@xyo-network/chain-producer'\nimport { getRewardRedemptionActor } from '@xyo-network/chain-reward-redemption'\nimport type { Config, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk'\nimport type {\n ArgumentsCamelCase, Argv, CommandModule,\n} from 'yargs'\n\nimport { initLogger } from '../../initLogger.ts'\n\ninterface StartArgs {\n actors?: string[]\n}\n\nconst KNOWN_ACTORS = ['api', 'bridge', 'finalizer', 'mempool', 'producer', 'rewardRedemption'] as const\n\nconst BOOT_TIMEOUT_MS = 60_000\n\nfunction getActorsFromConfig(configuration: Config): string[] | undefined {\n const enabledActors = configuration.actors\n .filter(actor => actor.enabled !== false)\n .map(actor => actor.name)\n return enabledActors.length > 0 ? enabledActors : undefined\n}\n\nfunction getDefaultActors(): string[] {\n return ['api', 'producer', 'finalizer']\n}\n\nasync function buildActor(\n name: string,\n locator: ProviderFactoryLocatorInstance,\n): Promise<ActorInstanceV3> {\n switch (name) {\n case 'api': {\n const config = ApiConfigZod.parse(locator.context.config)\n return await getApiActor(config, locator)\n }\n case 'bridge': {\n const config = BridgeConfigZod.parse(locator.context.config)\n return await getBridgeActor(config, locator)\n }\n case 'mempool': {\n const config = MempoolConfigZod.parse(locator.context.config)\n return await getMempoolActor(config, locator)\n }\n case 'producer': {\n const config = ProducerConfigZod.parse(locator.context.config)\n return await getProducerActor(config, locator)\n }\n case 'rewardRedemption': {\n const config = RewardRedemptionConfigZod.parse(locator.context.config)\n return await getRewardRedemptionActor(config, locator)\n }\n case 'finalizer': {\n const config = FinalizerConfigZod.parse(locator.context.config)\n return await getFinalizerActor(config, locator)\n }\n default: {\n throw new Error(`Unknown actor: ${name}`)\n }\n }\n}\n\nasync function bootActors(\n requestedActors: string[],\n locators: Record<string, ProviderFactoryLocatorInstance>,\n orchestrator: OrchestratorInstance,\n configuration: Config,\n): Promise<void> {\n const startedAt = Date.now()\n const actors = await Promise.all(requestedActors.map(name => buildActor(name, locators[name])))\n for (const actor of actors) {\n await orchestrator.registerActor(actor)\n }\n await orchestrator.start()\n await orchestrator.whenReady(BOOT_TIMEOUT_MS)\n const ms = Date.now() - startedAt\n initLogger(configuration).info(`[xl1] system ready (${requestedActors.length} actor${requestedActors.length === 1 ? '' : 's'}, ${ms}ms)`)\n}\n\nexport function startCommand(getConfiguration: () => Config, getLocatorsFromConfig: GetLocatorsFromConfig): CommandModule {\n return {\n command: ['start [actors..]', '$0'],\n describe: 'Run a full XL1 Node',\n builder: (yargs: Argv) => {\n return yargs\n .positional('actors', {\n type: 'string',\n array: true,\n choices: KNOWN_ACTORS,\n description: 'Actors to start (e.g. xl1 start api producer or xl1 start api,producer)',\n coerce: (values: string[]) => values.flatMap(v => v.split(',')),\n })\n .option('actors', {\n type: 'array',\n string: true,\n choices: KNOWN_ACTORS,\n description: 'List of actors to start (e.g. --actors api producer finalizer). Defaults to api, producer, and finalizer.',\n })\n },\n handler: async (argv: ArgumentsCamelCase<StartArgs>) => {\n const configuration = getConfiguration()\n const requestedActors = argv.actors !== undefined && argv.actors.length > 0\n ? argv.actors\n : getActorsFromConfig(configuration) ?? getDefaultActors()\n const { locators, orchestrator } = await getLocatorsFromConfig(requestedActors, configuration)\n await bootActors(requestedActors, locators, orchestrator, configuration)\n },\n }\n}\n","import { delay } from '@xylabs/sdk-js'\nimport type { CommandModule } from 'yargs'\n\nexport function withDeprecationWarning(module: CommandModule): CommandModule {\n const { deprecated, handler } = module\n if (typeof deprecated === 'string') {\n return {\n ...module,\n handler: async (argv) => {\n console.warn(`[deprecated] ${deprecated}`)\n await delay(3000)\n return handler(argv)\n },\n }\n }\n return module\n}\n","/* eslint-disable no-irregular-whitespace, @stylistic/max-len */\nexport const XL1LogoColorizedAscii = `\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;118;111;144m_\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;72;32;223m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m ╠╠\u001b[0m\u001b[38;2;103;85;170m_\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;79;121;152m╦\u001b[0m\u001b[38;2;82;121;151m╦\u001b[0m\u001b[38;2;112;125;136m_ \u001b[0m\u001b[38;2;88;59;196m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;73;34;221m▒ \u001b[0m\u001b[38;2;121;121;127m_\u001b[0m\u001b[38;2;100;101;128m╔\u001b[0m\u001b[38;2;93;94;127m╦\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;82;121;151m²\u001b[0m\u001b[38;2;44;116;170m╠\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;51;117;167mD\u001b[0m\u001b[38;2;80;121;152m╦\u001b[0m\u001b[38;2;111;125;136m_ \u001b[0m\u001b[38;2;67;23;232m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠ \u001b[0m\u001b[38;2;120;121;128m_\u001b[0m\u001b[38;2;100;101;127m╔\u001b[0m\u001b[38;2;79;81;127mR\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;88;90;127m╙\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;55;117;165m╚\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;44;116;171m▒▒\u001b[0m\u001b[38;2;50;116;167mD\u001b[0m\u001b[38;2;80;121;152m╦ \u001b[0m\u001b[38;2;106;90;165mj\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;89;61;194mH \u001b[0m\u001b[38;2;99;100;127m╔\u001b[0m\u001b[38;2;79;80;127mD\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒▒╠\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;83;121;150m²\u001b[0m\u001b[38;2;44;116;170m▒\u001b[0m\u001b[38;2;44;116;171m▒▒▒ \u001b[0m\u001b[38;2;76;38;217m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;74;76;128m╠\u001b[0m\u001b[38;2;71;73;128m▒▒▒\u001b[0m\u001b[38;2;89;90;128m╙\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;90;118;148m\\`\u001b[0m\u001b[38;2;89;107;153m_\u001b[0m\u001b[38;2;93;97;154m,\u001b[0m\u001b[38;2;105;89;166m╓\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;95;72;183m╓\u001b[0m\u001b[38;2;106;96;152m_\u001b[0m\u001b[38;2;100;94;143m\\`\u001b[0m\u001b[38;2;101;100;133m\\`\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;122;118;137m_\u001b[0m\u001b[38;2;113;102;153m,\u001b[0m\u001b[38;2;108;94;161m╓\u001b[0m\u001b[38;2;104;86;169m╓\u001b[0m\u001b[38;2;98;77;178m╔\u001b[0m\u001b[38;2;93;67;188m╗\u001b[0m\u001b[38;2;88;59;196mφ\u001b[0m\u001b[38;2;83;51;204m@\u001b[0m\u001b[38;2;78;42;213mD\u001b[0m\u001b[38;2;72;32;223m▒\u001b[0m\u001b[38;2;68;24;231m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;71;30;225m▒\u001b[0m\u001b[38;2;77;40;215m▒\u001b[0m\u001b[38;2;82;49;206mK\u001b[0m\u001b[38;2;87;57;198mφ\u001b[0m\u001b[38;2;91;65;190m╗\u001b[0m\u001b[38;2;97;75;180m╦\u001b[0m\u001b[38;2;103;84;171m╖\u001b[0m\u001b[38;2;107;92;163m²\u001b[0m\u001b[38;2;112;101;154m_\u001b[0m\u001b[38;2;119;112;143m_\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;106;91;164m\\`\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;89;62;193m╙\u001b[0m\u001b[38;2;85;54;201m╙\u001b[0m\u001b[38;2;80;45;210m╚\u001b[0m\u001b[38;2;74;35;220m╝\u001b[0m\u001b[38;2;69;26;229m╠\u001b[0m\u001b[38;2;66;22;233m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;73;33;222m╝\u001b[0m\u001b[38;2;79;43;212m╩\u001b[0m\u001b[38;2;84;52;203m╜\u001b[0m\u001b[38;2;88;60;195m╙\u001b[0m\u001b[38;2;93;68;187m^\u001b[0m\u001b[38;2;100;80;175m\\`\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;113;84;152m\\`\u001b[0m\u001b[38;2;103;79;169m'\u001b[0m\u001b[38;2;95;72;183m\"\u001b[0m\u001b[38;2;87;57;198m╙\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;80;46;209m╜\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;102;77;175m^\u001b[0m\u001b[38;2;112;81;162m\\`\u001b[0m\u001b[38;2;115;92;155m\\`\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;145;116;107m,\u001b[0m\u001b[38;2;199;82;45m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒╠ \u001b[0m\u001b[38;2;70;28;227m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;189;49;97må\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;155;92;114m,\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;175;98;73m╔\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒▒▒\u001b[0m\u001b[38;2;197;83;47m╩ \u001b[0m\u001b[38;2;98;76;179m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;81;48;207mH \u001b[0m\u001b[38;2;188;51;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠╠\u001b[0m\u001b[38;2;183;57;100mH\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;146;116;106m,\u001b[0m\u001b[38;2;199;82;44m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;196;84;48m╩\u001b[0m\u001b[38;2;168;102;81m^ \u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠ \u001b[0m\u001b[38;2;160;87;111m'\u001b[0m\u001b[38;2;187;52;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;156;91;113m,\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;198;83;46m╩\u001b[0m\u001b[38;2;194;85;50m╩\u001b[0m\u001b[38;2;167;102;82m^ \u001b[0m\u001b[38;2;81;46;209m╚\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠ \u001b[0m\u001b[38;2;159;88;112m'\u001b[0m\u001b[38;2;186;53;98m╚\u001b[0m\u001b[38;2;197;40;93m╩\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;110;97;158m'\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;94;69;186mH\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;68;25;230m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;108;93;162m²\u001b[0m\u001b[38;2;99;79;176m^\u001b[0m`\n","import type { UsageMeta } from '@xyo-network/xl1-sdk'\nimport { isUsageMeta } from '@xyo-network/xl1-sdk'\nimport type { Options } from 'yargs'\nimport { globalRegistry } from 'zod'\n\nconst usageMetaToOptions = (meta: UsageMeta): Options => {\n return meta\n}\n\nexport const optionsFromGlobalZodRegistry = (): Record<string, Options> => {\n const opts: Record<string, Options> = {}\n for (const schema of Object.values(globalRegistry._map)) {\n if (isUsageMeta(schema)) {\n if (schema.hidden) continue // skip hidden options\n opts[schema.title] = usageMetaToOptions(schema)\n }\n }\n return opts\n}\n","import { config } from 'dotenv'\n\nimport { runCLI } from './runCLI.ts'\n\nexport const start = async () => {\n config({ quiet: true })\n await runCLI()\n}\n"],"mappings":";;;;AAAA,SAASA,iBAAiBC,iBAAiB;AAC3C,SACEC,8BACAC,wBACAC,yBACAC,sBACK;AAEP,SACEC,WAAWC,YAAYC,qBAClB;AAEP,IAAMC,YAAYC,gBAAgB;EAAEC,eAAe;AAAS,CAAA;AAS5D,SAASC,kBAAkBC,MAA6B;AACtD,QAAMC,SAASD,KAAKC;AACpB,MAAIA,WAAWC,UAAaC,MAAMC,QAAQH,MAAAA,EAAS,QAAOD;AAC1D,MAAI,OAAOC,WAAW,YAAYA,WAAW,KAAM,QAAOD;AAC1D,QAAMK,UAAUC,OAAOD,QAAQJ,MAAAA;AAC/B,QAAMM,iBAAiBF,QACpBG,IAAI,CAAC,CAACC,KAAKC,KAAAA,MAAW;IAACC,OAAOF,GAAAA;IAAMC;GAAM,EAC1CE,OAAO,CAAC,CAACH,GAAAA,MAASE,OAAOE,UAAUJ,GAAAA,KAAQA,OAAO,CAAA;AACrD,MAAIF,eAAeO,WAAWT,QAAQS,OAAQ,QAAOd;AACrD,QAAMe,UAAqB,CAAA;AAC3B,aAAW,CAACN,KAAKC,KAAAA,KAAUH,eAAgBQ,SAAQN,GAAAA,IAAOC;AAC1D,SAAO;IAAE,GAAGV;IAAMC,QAAQc;EAAQ;AACpC;AAZShB;AAcT,SAASiB,iBAAiBC,QAAc;AACtC,QAAMC,SAASC,UAAUC,UAAUH,MAAAA;AACnC,MAAI,CAACC,OAAOG,QAAS,OAAMH,OAAOI;AAClC,SAAOJ,OAAOK;AAChB;AAJSP;AAMT,eAAeQ,iBAAiBxB,MAA6B;AAE3D,QAAMyB,aAAazB,KAAK0B;AACxB,QAAMC,mBAAmB,MAAMC,eAAe;IAAEH;EAAW,CAAA;AAC3D,QAAMI,uBAAuB,OAAOF,iBAAiBG,aAAa,WAAWH,iBAAiBG,WAAW5B;AACzG,QAAM6B,iBAAiBhC,kBAAkBC,IAAAA;AACzC,QAAMgC,mBAAmBb,UAAUC,UAAUW,cAAAA,EAAgBR,QAAQ,CAAC;AACtE,QAAMU,uBAAuB,OAAOF,eAAeD,aAAa,WAAWC,eAAeD,WAAW5B;AAOrG,QAAMgC,eAAelB,iBAAiBpB,UAAU+B,kBAAkBK,gBAAAA,CAAAA;AAClE,QAAMG,YAAYnB,iBAAiBoB,cAAcpB,iBAAiBkB,YAAAA,CAAAA,CAAAA;AAClE,QAAMG,eAAeJ,wBAAwBJ;AAC7C,SAAOS,UAAUD,YAAAA,IAAgB;IAAE,GAAGF;IAAWL,UAAUO;EAAa,IAAIF;AAC9E;AAlBeX;AAoBf,eAAsBe,iBAAiBvC,MAA+BwC,kBAA0C;AAC9G,MAAI;AACF,UAAMC,cAAc,MAAMjB,iBAAiBxB,IAAAA;AAG3C0C,2BAAuBD,WAAAA;AACvBD,qBAAiBC,WAAAA;AAGjB,QAAIzC,KAAK,aAAA,GAAgB;AACvB2C,cAAQC,IAAIC,KAAKC,UAAUL,aAAa,MAAM,CAAA,CAAA;AAE9CM,cAAQC,KAAK,CAAA;IACf;EACF,SAASC,KAAK;AACZ,QAAIA,eAAeC,yBAAyB;AAC1CP,cAAQrB,MAAM,GAAG2B,IAAIE,OAAO,uDAAuD;IACrF,WAAWF,eAAeG,8BAA8B;AACtDT,cAAQrB,MAAM2B,IAAIE,OAAO;IAC3B,WAAWE,WAAWJ,GAAAA,GAAM;AAC1BN,cAAQrB,MAAM,cAAc2B,IAAIE,OAAO,EAAE;IAC3C,OAAO;AACLR,cAAQrB,MAAM,gCAAgC2B,GAAAA,EAAK;IACrD;AACA,QAAI,EAAEA,eAAeC,4BAA4B,EAAED,eAAeG,+BAA+B;AAC/FT,cAAQrB,MAAM,UAAU2B,eAAeK,QAAQL,IAAIM,QAAQ,KAAA,EAAO;IACpE;AACA,UAAM,IAAID,MAAM,yBAAyB;MAAEE,OAAOP;IAAI,CAAA;EACxD;AACF;AA7BsBV;;;AC5DtB,SACEkB,MACAC,eAAeC,aAAAA,YACfC,UAAUC,oBACL;AAGA,IAAMC,aAAa,wBAACC,YAAAA;AACzB,MAAIC;AACJ,MAAID,QAAOE,IAAIC,QAAQ;AACrBF,aAAS,IAAIG,aAAAA;EACf,OAAO;AACL,QAAIC;AACJ,QAAIC,WAAUN,QAAOE,IAAIK,QAAQ,GAAG;AAClC,YAAMC,SAASC,SAAST,QAAOE,IAAIK,SAASG,YAAW,CAAA;AACvD,UAAIJ,WAAUE,MAAAA,EAASH,SAAQG;IACjC;AACAP,aAAS,IAAIU,cAAcN,KAAAA;EAC7B;AACAO,OAAKC,gBAAgBZ;AACrB,SAAOA;AACT,GAd0B;;;ACR1B,SAASa,SAASC,OAAOC,UAAUC,cAAc;AACjD,SAASC,uBAAuB;AAEhC,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,kBAAkB;AAC3B,SAASC,qBAAqB;AAC9B,SAASC,wBAAwB;AACjC,SAASC,sBAAsB;AAC/B,SACEC,iCAAiCC,gCAAgCC,oBAAoBC,gCACrFC,oBAAoBC,oBACf;AACP,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,+BAA+B;AAExC,SACEC,gBAAgBC,aAAAA,YAAWC,iCACtB;AAEP,OAAOC,WAAW;AAClB,SAASC,eAAe;;;ACrBxB,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAClC,SAASC,uBAAuB;AAIhC,SACEC,cACAC,iBACAC,oBACAC,kBACAC,mBACAC,iCACK;AACP,SAASC,wBAAwB;AACjC,SAASC,gCAAgC;AAYzC,IAAMC,eAAe;EAAC;EAAO;EAAU;EAAa;EAAW;EAAY;;AAE3E,IAAMC,kBAAkB;AAExB,SAASC,oBAAoBC,gBAAqB;AAChD,QAAMC,gBAAgBD,eAAcE,OACjCC,OAAOC,CAAAA,UAASA,MAAMC,YAAY,KAAA,EAClCC,IAAIF,CAAAA,UAASA,MAAMG,IAAI;AAC1B,SAAON,cAAcO,SAAS,IAAIP,gBAAgBQ;AACpD;AALSV;AAOT,SAASW,mBAAAA;AACP,SAAO;IAAC;IAAO;IAAY;;AAC7B;AAFSA;AAIT,eAAeC,WACbJ,MACAK,SAAuC;AAEvC,UAAQL,MAAAA;IACN,KAAK,OAAO;AACV,YAAMM,UAASC,aAAaC,MAAMH,QAAQI,QAAQH,MAAM;AACxD,aAAO,MAAMI,YAAYJ,SAAQD,OAAAA;IACnC;IACA,KAAK,UAAU;AACb,YAAMC,UAASK,gBAAgBH,MAAMH,QAAQI,QAAQH,MAAM;AAC3D,aAAO,MAAMM,eAAeN,SAAQD,OAAAA;IACtC;IACA,KAAK,WAAW;AACd,YAAMC,UAASO,iBAAiBL,MAAMH,QAAQI,QAAQH,MAAM;AAC5D,aAAO,MAAMQ,gBAAgBR,SAAQD,OAAAA;IACvC;IACA,KAAK,YAAY;AACf,YAAMC,UAASS,kBAAkBP,MAAMH,QAAQI,QAAQH,MAAM;AAC7D,aAAO,MAAMU,iBAAiBV,SAAQD,OAAAA;IACxC;IACA,KAAK,oBAAoB;AACvB,YAAMC,UAASW,0BAA0BT,MAAMH,QAAQI,QAAQH,MAAM;AACrE,aAAO,MAAMY,yBAAyBZ,SAAQD,OAAAA;IAChD;IACA,KAAK,aAAa;AAChB,YAAMC,UAASa,mBAAmBX,MAAMH,QAAQI,QAAQH,MAAM;AAC9D,aAAO,MAAMc,kBAAkBd,SAAQD,OAAAA;IACzC;IACA,SAAS;AACP,YAAM,IAAIgB,MAAM,kBAAkBrB,IAAAA,EAAM;IAC1C;EACF;AACF;AAjCeI;AAmCf,eAAekB,WACbC,iBACAC,UACAC,cACAhC,gBAAqB;AAErB,QAAMiC,YAAYC,KAAKC,IAAG;AAC1B,QAAMjC,SAAS,MAAMkC,QAAQC,IAAIP,gBAAgBxB,IAAIC,CAAAA,SAAQI,WAAWJ,MAAMwB,SAASxB,IAAAA,CAAK,CAAA,CAAA;AAC5F,aAAWH,SAASF,QAAQ;AAC1B,UAAM8B,aAAaM,cAAclC,KAAAA;EACnC;AACA,QAAM4B,aAAaO,MAAK;AACxB,QAAMP,aAAaQ,UAAU1C,eAAAA;AAC7B,QAAM2C,KAAKP,KAAKC,IAAG,IAAKF;AACxBS,aAAW1C,cAAAA,EAAe2C,KAAK,uBAAuBb,gBAAgBtB,MAAM,SAASsB,gBAAgBtB,WAAW,IAAI,KAAK,GAAA,KAAQiC,EAAAA,KAAO;AAC1I;AAfeZ;AAiBR,SAASe,aAAaC,mBAAgCC,wBAA4C;AACvG,SAAO;IACLC,SAAS;MAAC;MAAoB;;IAC9BC,UAAU;IACVC,SAAS,wBAACC,WAAAA;AACR,aAAOA,OACJC,WAAW,UAAU;QACpBC,MAAM;QACNC,OAAO;QACPC,SAASzD;QACT0D,aAAa;QACbC,QAAQ,wBAACC,WAAqBA,OAAOC,QAAQC,CAAAA,MAAKA,EAAEC,MAAM,GAAA,CAAA,GAAlD;MACV,CAAA,EACCC,OAAO,UAAU;QAChBT,MAAM;QACNU,QAAQ;QACRR,SAASzD;QACT0D,aAAa;MACf,CAAA;IACJ,GAfS;IAgBTQ,SAAS,8BAAOC,SAAAA;AACd,YAAMhE,iBAAgB6C,kBAAAA;AACtB,YAAMf,kBAAkBkC,KAAK9D,WAAWO,UAAauD,KAAK9D,OAAOM,SAAS,IACtEwD,KAAK9D,SACLH,oBAAoBC,cAAAA,KAAkBU,iBAAAA;AAC1C,YAAM,EAAEqB,UAAUC,aAAY,IAAK,MAAMc,uBAAsBhB,iBAAiB9B,cAAAA;AAChF,YAAM6B,WAAWC,iBAAiBC,UAAUC,cAAchC,cAAAA;IAC5D,GAPS;EAQX;AACF;AA7BgB4C;;;AC/FhB,SAASqB,aAAa;AAGf,SAASC,uBAAuBC,QAAqB;AAC1D,QAAM,EAAEC,YAAYC,QAAO,IAAKF;AAChC,MAAI,OAAOC,eAAe,UAAU;AAClC,WAAO;MACL,GAAGD;MACHE,SAAS,8BAAOC,SAAAA;AACdC,gBAAQC,KAAK,gBAAgBJ,UAAAA,EAAY;AACzC,cAAMK,MAAM,GAAA;AACZ,eAAOJ,QAAQC,IAAAA;MACjB,GAJS;IAKX;EACF;AACA,SAAOH;AACT;AAbgBD;;;ACFT,IAAMQ,wBAAwB;;;;;;;;;;;;;;;;;;;;ACArC,SAASC,mBAAmB;AAE5B,SAASC,sBAAsB;AAE/B,IAAMC,qBAAqB,wBAACC,SAAAA;AAC1B,SAAOA;AACT,GAF2B;AAIpB,IAAMC,+BAA+B,6BAAA;AAC1C,QAAMC,OAAgC,CAAC;AACvC,aAAWC,UAAUC,OAAOC,OAAOC,eAAeC,IAAI,GAAG;AACvD,QAAIC,YAAYL,MAAAA,GAAS;AACvB,UAAIA,OAAOM,OAAQ;AACnBP,WAAKC,OAAOO,KAAK,IAAIX,mBAAmBI,MAAAA;IAC1C;EACF;AACA,SAAOD;AACT,GAT4C;;;AJuB5C,IAAMS,4BAA4B;AAQlC,SAASC,2BAA2BC,QAAyB;AAC3D,QAAMC,UAAUD,OAAO,CAAA;AACvB,QAAME,MAAMD,YAAY,qBAAqB,wBAAwBA;AACrE,SAAQE,0BAAqDD,GAAAA,KAAQC,0BAA0BC;AACjG;AAJSL;AAWT,IAAIM;AACJ,IAAIC,sBAAsB;AAE1B,IAAMC,UAAUC,WAAUC,QAAAA,IAAeA,WAAc;AAEvD,SAASC,mBAAAA;AACP,SAAOL;AACT;AAFSK;AAIT,eAAeC,qCAAqCC,QAAqC;AACvF,MAAI,CAACC,MAAMC,SAAS,CAACC,OAAOD,OAAO;AACjCF,WAAOI,KAAK,+GAAA;AACZ;EACF;AACA,QAAMC,KAAKC,gBAAgB;IAAEL;IAAOE;EAAO,CAAA;AAC3C,MAAI;AACF,UAAME,GAAGE,SAAS,mEAAA;EACpB,UAAA;AACEF,OAAGG,MAAK;EACV;AACF;AAXeT;AAaf,eAAeU,sBAAsBrB,QAAkBK,gBAAqB;AAC1E,QAAMiB,eAA8B,CAAA;AACpC,aAAWC,aAAavB,QAAQ;AAC9B,UAAMwB,iBAAiBnB,eAAcL,OAAOyB,KAAKC,CAAAA,UAASA,MAAMC,SAASJ,SAAAA;AACzE,QAAIC,gBAAgB;AAClBF,mBAAaM,KAAKJ,cAAAA;IACpB,OAAO;AACL,YAAMK,cAAcC,eAAeC,MAAK,EAAGC,MAAM;QAAEL,MAAMJ;MAAU,CAAA;AACnED,mBAAaM,KAAKC,WAAAA;IACpB;EACF;AAEA,QAAMI,UAASC,WAAUF,MAAM;IAAE,GAAG3B;IAAeL,QAAQsB;EAAa,CAAA;AAExE,QAAMV,SAASuB,WAAW9B,cAAAA;AAC1B,QAAM+B,eAAe,MAAMC,aAAaC,OAAO;IAAE1B;EAAO,CAAA;AACxD,QAAM2B,YAAYC,+BAA+BxC,QAAQK,cAAAA;AACzD,MAAIkC,UAAW,OAAMA;AACrB,QAAME,eAAe,MAAMC,+BAA+B1C,QAAQK,cAAAA;AAClEO,SAAO+B,KAAKC,mBAAmBH,YAAAA,CAAAA;AAC/B,QAAMI,cAAc7C,OAAO8C,WAAW,IAAI,OAAO9C,OAAO,CAAA,CAAE,KAAK;AAC/D,QAAM+C,UAAU,MAAMC,gCAAgCf,SAAQrB,QAAQiC,aAAatC,SAASR,2BAA2BC,MAAAA,CAAAA;AACvH,MAAIM,qBAAqB;AACvBM,WAAOI,KAAK,yGAAA;EACd;AACA,QAAMiC,2BAA2B3C,sBAC7B4C,SACA,YAAY,MAAMvC,qCAAqCC,MAAAA;AAC3D,QAAMuC,WAAW,MAAMC,mBAAmBL,SAASd,SAAQgB,wBAAAA;AAE3D,QAAMI,kBAAkBhD,eAAcgD,mBAAmBvD;AACzD,QAAMwD,eAAeD,kBAAkB,KAAKN,QAAQQ,mBAAmBL,SACnE,MAAMM,oBAAoB;IACxB5C;IACA6C,MAAMJ;IACNK,WAAWtB;IACXuB,eAAeZ,QAAQQ;EACzB,CAAA,IACAL;AAGJU,UAAQC,GAAG,UAAU,MAAA;AACnB,UAAM,YAAA;AACJ,UAAI;AACFjD,eAAOkD,IAAI,oDAAA;AACXR,sBAAclC,MAAAA;AACd,cAAMgB,cAAc2B,KAAAA;AACpBnD,eAAOkD,IAAI,oCAAA;AACXF,gBAAQI,KAAK,CAAA;MACf,SAASC,KAAK;AACZrD,eAAOsD,MAAM,gCAAgCD,GAAAA;AAC7CL,gBAAQI,KAAK,CAAA;MACf;IACF,GAAA;EACF,CAAA;AACA,SAAO;IAAEb;IAAUf;EAAa;AAClC;AAxDef;AA2Df,eAAsB8C,SAAAA;AAEpB,QAAMC,IAAIC,MAAMC,QAAQV,QAAQW,IAAI,CAAA;AACpC,QAAMA,OAAOH,EACVI,MAAM;0BACQjE,OAAAA;EACjBkE,qBAAAA;;;;uBAIqB,EAClBC,oBAAoB;IACnB,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;EAChB,CAAA,EACCC,IAAI,KAAA,EACJC,WAAW,KAAA,EACXC,WAAW,OAAON,UAAAA;AACjB,UAAMO,iBAAiBP,OAAM,CAACtC,YAAAA;AAC5B5B,sBAAgB4B;IAClB,CAAA;AACA3B,0BAAsByE,QAAQR,MAAK,uBAAA,CAAwB;EAC7D,CAAA,EACCS,QAAQC,6BAAAA,CAAAA,EACRC,KAAKd,EAAEe,cAAa,CAAA,EACpBC,QAAQC,uBAAuBC,WAAW5E,kBAAkBW,qBAAAA,CAAAA,CAAAA,EAC5D+D,QAAQC,uBAAuBE,cAAc7E,kBAAkBW,qBAAAA,CAAAA,CAAAA,EAC/D+D,QAAQC,uBAAuBG,iBAAiB9E,kBAAkBW,qBAAAA,CAAAA,CAAAA,EAClE+D,QAAQC,uBAAuBI,eAAe/E,kBAAkBW,qBAAAA,CAAAA,CAAAA,EAChE+D,QAAQC,uBAAuBK,gBAAgBhF,kBAAkBW,qBAAAA,CAAAA,CAAAA,EACjE+D,QAAQC,uBAAuBM,wBAAwBjF,kBAAkBW,qBAAAA,CAAAA,CAAAA,EACzE+D,QAAQQ,aAAalF,kBAAkBW,qBAAAA,CAAAA,EACvC2D,QAAQ;IACP,UAAU;MACRa,MAAM;MACNC,aAAa;MACbC,OAAO;IACT;IACA,YAAY;MACVF,MAAM;MACNC,aAAa;IACf;IACA,eAAe;MACbD,MAAM;MACNC,aAAa;MACbE,SAAS;IACX;IACA,yBAAyB;MACvBH,MAAM;MACNC,aAAa;MACbE,SAAS;IACX;EACF,CAAA,EACCC,KAAI,EACJF,MAAM,QAAQ,GAAA,EACdxF,QAAQA,OAAAA,EACRgE;AAEH,QAAMA;AACR;AA5DsBJ;;;AKpItB,SAAS+B,cAAc;AAIhB,IAAMC,QAAQ,mCAAA;AACnBC,SAAO;IAAEC,OAAO;EAAK,CAAA;AACrB,QAAMC,OAAAA;AACR,GAHqB;","names":["createDeepMerge","isDefined","ActorMnemonicNotAllowedError","assertNoActorMnemonics","ConfigFileNotFoundError","tryParseConfig","ConfigZod","isZodError","resolveConfig","deepMerge","createDeepMerge","arrayStrategy","coerceActorsArray","argv","actors","undefined","Array","isArray","entries","Object","numericEntries","map","key","value","Number","filter","isInteger","length","asArray","safeParseOrThrow","input","result","ConfigZod","safeParse","success","error","data","buildFinalConfig","configPath","config","parsedConfigFile","tryParseConfig","rootMnemonicFromFile","mnemonic","normalizedArgv","parsedConfigArgs","rootMnemonicFromArgs","mergedConfig","validated","resolveConfig","rootMnemonic","isDefined","configMiddleware","setConfiguration","finalConfig","assertNoActorMnemonics","console","log","JSON","stringify","process","exit","err","ConfigFileNotFoundError","message","ActorMnemonicNotAllowedError","isZodError","Error","stack","cause","Base","ConsoleLogger","isDefined","LogLevel","SilentLogger","initLogger","config","logger","log","silent","SilentLogger","level","isDefined","logLevel","parsed","LogLevel","toLowerCase","ConsoleLogger","Base","defaultLogger","stdin","input","stdout","output","createInterface","isDefined","apiCommand","bridgeCommand","finalizerCommand","mempoolCommand","contextFromConfigWithoutLocator","detectDerivationPathCollisions","formatWalletReport","initializeResolvedWalletReport","locatorsFromConfig","Orchestrator","initHealthEndpoints","producerCommand","rewardRedemptionCommand","ActorConfigZod","ConfigZod","DefaultMetricsScrapePorts","yargs","hideBin","getApiActor","getBridgeActor","getFinalizerActor","getMempoolActor","ApiConfigZod","BridgeConfigZod","FinalizerConfigZod","MempoolConfigZod","ProducerConfigZod","RewardRedemptionConfigZod","getProducerActor","getRewardRedemptionActor","KNOWN_ACTORS","BOOT_TIMEOUT_MS","getActorsFromConfig","configuration","enabledActors","actors","filter","actor","enabled","map","name","length","undefined","getDefaultActors","buildActor","locator","config","ApiConfigZod","parse","context","getApiActor","BridgeConfigZod","getBridgeActor","MempoolConfigZod","getMempoolActor","ProducerConfigZod","getProducerActor","RewardRedemptionConfigZod","getRewardRedemptionActor","FinalizerConfigZod","getFinalizerActor","Error","bootActors","requestedActors","locators","orchestrator","startedAt","Date","now","Promise","all","registerActor","start","whenReady","ms","initLogger","info","startCommand","getConfiguration","getLocatorsFromConfig","command","describe","builder","yargs","positional","type","array","choices","description","coerce","values","flatMap","v","split","option","string","handler","argv","delay","withDeprecationWarning","module","deprecated","handler","argv","console","warn","delay","XL1LogoColorizedAscii","isUsageMeta","globalRegistry","usageMetaToOptions","meta","optionsFromGlobalZodRegistry","opts","schema","Object","values","globalRegistry","_map","isUsageMeta","hidden","title","DEFAULT_HEALTH_CHECK_PORT","defaultScrapePortForActors","actors","primary","key","DefaultMetricsScrapePorts","producer","configuration","skipInsecureConfirm","version","isDefined","__VERSION__","getConfiguration","promptForInsecureGenesisConfirmation","logger","input","isTTY","output","warn","rl","createInterface","question","close","getLocatorsFromConfig","actorConfigs","actorName","existingConfig","find","actor","name","push","actorConfig","ActorConfigZod","loose","parse","config","ConfigZod","initLogger","orchestrator","Orchestrator","create","collision","detectDerivationPathCollisions","walletReport","initializeResolvedWalletReport","info","formatWalletReport","serviceName","length","context","contextFromConfigWithoutLocator","onInsecureGenesisConfirm","undefined","locators","locatorsFromConfig","healthCheckPort","healthServer","statusReporter","initHealthEndpoints","port","readiness","statusMonitor","process","on","log","stop","exit","err","error","runCLI","y","yargs","hideBin","argv","usage","XL1LogoColorizedAscii","parserConfiguration","env","scriptName","middleware","configMiddleware","Boolean","options","optionsFromGlobalZodRegistry","wrap","terminalWidth","command","withDeprecationWarning","apiCommand","bridgeCommand","finalizerCommand","mempoolCommand","producerCommand","rewardRedemptionCommand","startCommand","type","description","alias","default","help","config","start","config","quiet","runCLI"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runCLI.d.ts","sourceRoot":"","sources":["../../src/runCLI.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runCLI.d.ts","sourceRoot":"","sources":["../../src/runCLI.ts"],"names":[],"mappings":"AAoIA,wBAAsB,MAAM,kBA4D3B"}
|