@xyo-network/xl1-cli-lib 1.20.28 → 1.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +64 -249
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/runCLI.d.ts.map +1 -1
- package/dist/node/xl1.mjs +82 -265
- package/dist/node/xl1.mjs.map +1 -1
- package/package.json +142 -140
- 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
- package/dist/node/waitForHostPort.d.ts +0 -2
- package/dist/node/waitForHostPort.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,224 +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";
|
|
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";
|
|
105
112
|
import { ActorConfigZod, ConfigZod as ConfigZod2 } 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, MempoolConfigZod as MempoolConfigZod3, ProducerConfigZod as ProducerConfigZod2, RewardRedemptionConfigZod as RewardRedemptionConfigZod2 } from "@xyo-network/chain-orchestration";
|
|
298
|
-
import { runProducer as runProducer2 } from "@xyo-network/chain-producer";
|
|
299
|
-
|
|
300
|
-
// src/waitForHostPort.ts
|
|
301
|
-
import net from "net";
|
|
302
|
-
var waitForHostPort = /* @__PURE__ */ __name((host, port) => {
|
|
303
|
-
return new Promise((resolve) => {
|
|
304
|
-
const tryConnect = /* @__PURE__ */ __name(() => {
|
|
305
|
-
const socket = new net.Socket();
|
|
306
|
-
socket.setTimeout(1e3).once("error", () => {
|
|
307
|
-
socket.destroy();
|
|
308
|
-
setTimeout(tryConnect, 500);
|
|
309
|
-
}).once("timeout", () => {
|
|
310
|
-
socket.destroy();
|
|
311
|
-
setTimeout(tryConnect, 500);
|
|
312
|
-
}).connect(port, host, () => {
|
|
313
|
-
socket.end();
|
|
314
|
-
resolve();
|
|
315
|
-
});
|
|
316
|
-
}, "tryConnect");
|
|
317
|
-
tryConnect();
|
|
318
|
-
});
|
|
319
|
-
}, "waitForHostPort");
|
|
320
|
-
|
|
321
|
-
// src/commands/start/startCommand.ts
|
|
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";
|
|
322
124
|
var KNOWN_ACTORS = [
|
|
323
125
|
"api",
|
|
324
126
|
"bridge",
|
|
@@ -327,6 +129,7 @@ var KNOWN_ACTORS = [
|
|
|
327
129
|
"producer",
|
|
328
130
|
"rewardRedemption"
|
|
329
131
|
];
|
|
132
|
+
var BOOT_TIMEOUT_MS = 6e4;
|
|
330
133
|
function getActorsFromConfig(configuration2) {
|
|
331
134
|
const enabledActors = configuration2.actors.filter((actor) => actor.enabled !== false).map((actor) => actor.name);
|
|
332
135
|
return enabledActors.length > 0 ? enabledActors : void 0;
|
|
@@ -340,56 +143,50 @@ function getDefaultActors() {
|
|
|
340
143
|
];
|
|
341
144
|
}
|
|
342
145
|
__name(getDefaultActors, "getDefaultActors");
|
|
343
|
-
async function
|
|
146
|
+
async function buildActor(name, locator) {
|
|
344
147
|
switch (name) {
|
|
345
148
|
case "api": {
|
|
346
|
-
const config2 =
|
|
347
|
-
|
|
348
|
-
await orchestrator.registerActor(actor);
|
|
349
|
-
await orchestrator.start();
|
|
350
|
-
await waitForHostPort(config2.host, config2.port);
|
|
351
|
-
break;
|
|
149
|
+
const config2 = ApiConfigZod.parse(locator.context.config);
|
|
150
|
+
return await getApiActor(config2, locator);
|
|
352
151
|
}
|
|
353
152
|
case "bridge": {
|
|
354
|
-
const config2 =
|
|
355
|
-
|
|
356
|
-
await orchestrator.registerActor(actor);
|
|
357
|
-
await orchestrator.start();
|
|
358
|
-
break;
|
|
153
|
+
const config2 = BridgeConfigZod.parse(locator.context.config);
|
|
154
|
+
return await getBridgeActor(config2, locator);
|
|
359
155
|
}
|
|
360
156
|
case "mempool": {
|
|
361
|
-
const config2 =
|
|
362
|
-
|
|
363
|
-
await orchestrator.registerActor(actor);
|
|
364
|
-
await orchestrator.start();
|
|
365
|
-
await waitForHostPort(config2.host, config2.port);
|
|
366
|
-
break;
|
|
157
|
+
const config2 = MempoolConfigZod.parse(locator.context.config);
|
|
158
|
+
return await getMempoolActor(config2, locator);
|
|
367
159
|
}
|
|
368
160
|
case "producer": {
|
|
369
|
-
const config2 =
|
|
370
|
-
await
|
|
371
|
-
break;
|
|
161
|
+
const config2 = ProducerConfigZod.parse(locator.context.config);
|
|
162
|
+
return await getProducerActor(config2, locator);
|
|
372
163
|
}
|
|
373
164
|
case "rewardRedemption": {
|
|
374
|
-
const config2 =
|
|
375
|
-
|
|
376
|
-
await orchestrator.registerActor(actor);
|
|
377
|
-
await orchestrator.start();
|
|
378
|
-
break;
|
|
165
|
+
const config2 = RewardRedemptionConfigZod.parse(locator.context.config);
|
|
166
|
+
return await getRewardRedemptionActor(config2, locator);
|
|
379
167
|
}
|
|
380
168
|
case "finalizer": {
|
|
381
|
-
const config2 =
|
|
382
|
-
|
|
383
|
-
await orchestrator.registerActor(actor);
|
|
384
|
-
await orchestrator.start();
|
|
385
|
-
break;
|
|
169
|
+
const config2 = FinalizerConfigZod.parse(locator.context.config);
|
|
170
|
+
return await getFinalizerActor(config2, locator);
|
|
386
171
|
}
|
|
387
172
|
default: {
|
|
388
173
|
throw new Error(`Unknown actor: ${name}`);
|
|
389
174
|
}
|
|
390
175
|
}
|
|
391
176
|
}
|
|
392
|
-
__name(
|
|
177
|
+
__name(buildActor, "buildActor");
|
|
178
|
+
async function bootActors(requestedActors, locators, orchestrator, configuration2) {
|
|
179
|
+
const startedAt = Date.now();
|
|
180
|
+
const actors = await Promise.all(requestedActors.map((name) => buildActor(name, locators[name])));
|
|
181
|
+
for (const actor of actors) {
|
|
182
|
+
await orchestrator.registerActor(actor);
|
|
183
|
+
}
|
|
184
|
+
await orchestrator.start();
|
|
185
|
+
await orchestrator.whenReady(BOOT_TIMEOUT_MS);
|
|
186
|
+
const ms = Date.now() - startedAt;
|
|
187
|
+
initLogger(configuration2).info(`[xl1] system ready (${requestedActors.length} actor${requestedActors.length === 1 ? "" : "s"}, ${ms}ms)`);
|
|
188
|
+
}
|
|
189
|
+
__name(bootActors, "bootActors");
|
|
393
190
|
function startCommand(getConfiguration2, getLocatorsFromConfig2) {
|
|
394
191
|
return {
|
|
395
192
|
command: [
|
|
@@ -415,9 +212,7 @@ function startCommand(getConfiguration2, getLocatorsFromConfig2) {
|
|
|
415
212
|
const configuration2 = getConfiguration2();
|
|
416
213
|
const requestedActors = argv.actors !== void 0 && argv.actors.length > 0 ? argv.actors : getActorsFromConfig(configuration2) ?? getDefaultActors();
|
|
417
214
|
const { locators, orchestrator } = await getLocatorsFromConfig2(requestedActors, configuration2);
|
|
418
|
-
|
|
419
|
-
await startActor(name, locators[name], orchestrator);
|
|
420
|
-
}
|
|
215
|
+
await bootActors(requestedActors, locators, orchestrator, configuration2);
|
|
421
216
|
}, "handler")
|
|
422
217
|
};
|
|
423
218
|
}
|
|
@@ -479,8 +274,10 @@ var optionsFromGlobalZodRegistry = /* @__PURE__ */ __name(() => {
|
|
|
479
274
|
}, "optionsFromGlobalZodRegistry");
|
|
480
275
|
|
|
481
276
|
// src/runCLI.ts
|
|
277
|
+
var DEFAULT_HEALTH_CHECK_PORT = 9090;
|
|
482
278
|
var configuration;
|
|
483
|
-
var
|
|
279
|
+
var skipInsecureConfirm = false;
|
|
280
|
+
var version = isDefined3("1.21.0") ? "1.21.0" : "unknown";
|
|
484
281
|
function getConfiguration() {
|
|
485
282
|
return configuration;
|
|
486
283
|
}
|
|
@@ -527,11 +324,23 @@ async function getLocatorsFromConfig(actors, configuration2) {
|
|
|
527
324
|
const walletReport = await initializeResolvedWalletReport(actors, configuration2);
|
|
528
325
|
logger.info(formatWalletReport(walletReport));
|
|
529
326
|
const context = await contextFromConfigWithoutLocator(config2, logger, "xl1-cli", version);
|
|
530
|
-
|
|
327
|
+
if (skipInsecureConfirm) {
|
|
328
|
+
logger.warn("Insecure genesis reward wallet is active. Interactive confirmation skipped via --skip-insecure-confirm.");
|
|
329
|
+
}
|
|
330
|
+
const onInsecureGenesisConfirm = skipInsecureConfirm ? void 0 : async () => await promptForInsecureGenesisConfirmation(logger);
|
|
331
|
+
const locators = await locatorsFromConfig(context, config2, onInsecureGenesisConfirm);
|
|
332
|
+
const healthCheckPort = configuration2.healthCheckPort ?? DEFAULT_HEALTH_CHECK_PORT;
|
|
333
|
+
const healthServer = healthCheckPort > 0 && context.statusReporter !== void 0 ? await initHealthEndpoints({
|
|
334
|
+
logger,
|
|
335
|
+
port: healthCheckPort,
|
|
336
|
+
readiness: orchestrator,
|
|
337
|
+
statusMonitor: context.statusReporter
|
|
338
|
+
}) : void 0;
|
|
531
339
|
process.on("SIGINT", () => {
|
|
532
340
|
void (async () => {
|
|
533
341
|
try {
|
|
534
342
|
logger.log("\nSIGINT received. Attempting graceful shutdown...");
|
|
343
|
+
healthServer?.close();
|
|
535
344
|
await orchestrator?.stop();
|
|
536
345
|
logger.log("Orchestrator stopped, exiting now.");
|
|
537
346
|
process.exit(0);
|
|
@@ -563,7 +372,8 @@ $0 <command> [options]`).parserConfiguration({
|
|
|
563
372
|
await configMiddleware(argv2, (config2) => {
|
|
564
373
|
configuration = config2;
|
|
565
374
|
});
|
|
566
|
-
|
|
375
|
+
skipInsecureConfirm = Boolean(argv2["skip-insecure-confirm"]);
|
|
376
|
+
}).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({
|
|
567
377
|
"config": {
|
|
568
378
|
type: "string",
|
|
569
379
|
description: "Path to a config file to use instead of the default search.",
|
|
@@ -577,6 +387,11 @@ $0 <command> [options]`).parserConfiguration({
|
|
|
577
387
|
type: "boolean",
|
|
578
388
|
description: "Just process the configuration and print the resolved config to stdout, then exit.",
|
|
579
389
|
default: false
|
|
390
|
+
},
|
|
391
|
+
"skip-insecure-confirm": {
|
|
392
|
+
type: "boolean",
|
|
393
|
+
description: "Skip the interactive RETURN confirmation when the built-in dev mnemonic / insecure genesis reward wallet is active.",
|
|
394
|
+
default: false
|
|
580
395
|
}
|
|
581
396
|
}).help().alias("help", "h").version(version).argv;
|
|
582
397
|
await argv;
|