@xyo-network/xl1-cli-lib 1.14.0 → 1.14.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/index.mjs +79 -26
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/orchestration/actor/implementation/BalanceActor.d.ts +1 -1
- package/dist/node/orchestration/actor/implementation/BalanceActor.d.ts.map +1 -1
- package/dist/node/orchestration/actor/implementation/ProducerActor.d.ts +1 -1
- package/dist/node/orchestration/actor/implementation/ProducerActor.d.ts.map +1 -1
- package/dist/node/orchestration/actor/implementation/ValidatorActor.d.ts +1 -1
- package/dist/node/orchestration/actor/implementation/ValidatorActor.d.ts.map +1 -1
- package/dist/node/orchestration/initServices.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/head.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/head.d.ts.map +1 -1
- package/dist/node/xl1.mjs +77 -24
- package/dist/node/xl1.mjs.map +1 -1
- package/package.json +7 -7
- package/src/orchestration/actor/implementation/BalanceActor.ts +2 -2
- package/src/orchestration/actor/implementation/ProducerActor.ts +4 -4
- package/src/orchestration/actor/implementation/ValidatorActor.ts +4 -4
- package/src/orchestration/initServices.ts +11 -7
- package/src/orchestration/services/implementation/head.ts +73 -6
- package/src/spec/BootstrapChain.spec.ts +2 -2
package/dist/node/index.mjs
CHANGED
|
@@ -166,7 +166,7 @@ var BalanceActor = class _BalanceActor extends Actor {
|
|
|
166
166
|
super("BalanceActor", "Balance", params);
|
|
167
167
|
}
|
|
168
168
|
get balanceService() {
|
|
169
|
-
return assertEx(this.params.
|
|
169
|
+
return assertEx(this.params.balance, () => "balanceService not set");
|
|
170
170
|
}
|
|
171
171
|
get chainIterator() {
|
|
172
172
|
return assertEx(this.params.chainIterator, () => "chainIterator not set");
|
|
@@ -266,7 +266,7 @@ var ProducerActor = class _ProducerActor extends Actor {
|
|
|
266
266
|
return assertEx3(this.params.account, () => "account not set");
|
|
267
267
|
}
|
|
268
268
|
get balanceService() {
|
|
269
|
-
return assertEx3(this.params.
|
|
269
|
+
return assertEx3(this.params.balance, () => "balanceService not set");
|
|
270
270
|
}
|
|
271
271
|
get chainIterator() {
|
|
272
272
|
return assertEx3(this.params.chainIterator, () => "chainIterator not set");
|
|
@@ -284,7 +284,7 @@ var ProducerActor = class _ProducerActor extends Actor {
|
|
|
284
284
|
return assertEx3(this.params.producer, () => "producer not set");
|
|
285
285
|
}
|
|
286
286
|
get stakeIntentService() {
|
|
287
|
-
return assertEx3(this.params.
|
|
287
|
+
return assertEx3(this.params.stakeIntent, () => "stakeIntentService not set");
|
|
288
288
|
}
|
|
289
289
|
static create(params) {
|
|
290
290
|
return new _ProducerActor(params);
|
|
@@ -413,7 +413,7 @@ var ValidatorActor = class _ValidatorActor extends Actor {
|
|
|
413
413
|
return assertEx4(this.params.account, () => "account not set");
|
|
414
414
|
}
|
|
415
415
|
get balanceService() {
|
|
416
|
-
return assertEx4(this.params.
|
|
416
|
+
return assertEx4(this.params.balance, () => "balanceService not set");
|
|
417
417
|
}
|
|
418
418
|
get chainIterator() {
|
|
419
419
|
return assertEx4(this.params.chainIterator, () => "chainIterator not set");
|
|
@@ -428,7 +428,7 @@ var ValidatorActor = class _ValidatorActor extends Actor {
|
|
|
428
428
|
return assertEx4(this.params.pendingBundledTransactionsArchivistWrite, () => "pendingBundledTransactionsArchivistWrite not set");
|
|
429
429
|
}
|
|
430
430
|
get stakeIntentService() {
|
|
431
|
-
return assertEx4(this.params.
|
|
431
|
+
return assertEx4(this.params.stakeIntent, () => "stakeIntentService not set");
|
|
432
432
|
}
|
|
433
433
|
// protected get validator() {
|
|
434
434
|
// return assertEx(this.params.validator, () => 'validator not set')
|
|
@@ -529,8 +529,8 @@ var initHealthEndpoints = /* @__PURE__ */ __name((params) => {
|
|
|
529
529
|
// src/orchestration/initServices.ts
|
|
530
530
|
import { assertEx as assertEx17 } from "@xylabs/assert";
|
|
531
531
|
import { asAddress as asAddress2 } from "@xylabs/hex";
|
|
532
|
-
import { isDefined as
|
|
533
|
-
import { balanceSummaryRepositoryFromMap, initTelemetry, startupSpanAsync as startupSpanAsync7, validateHydratedBlockState } from "@xyo-network/chain-sdk";
|
|
532
|
+
import { isDefined as isDefined11 } from "@xylabs/typeof";
|
|
533
|
+
import { balanceSummaryRepositoryFromMap, BaseTimeSyncService, initTelemetry, startupSpanAsync as startupSpanAsync7, validateHydratedBlockState } from "@xyo-network/chain-sdk";
|
|
534
534
|
|
|
535
535
|
// src/orchestration/archivists/ChainFinalized/archivist.ts
|
|
536
536
|
import { initArchivistSync, startupSpanAsync } from "@xyo-network/chain-sdk";
|
|
@@ -1091,8 +1091,9 @@ var init = /* @__PURE__ */ __name((params) => {
|
|
|
1091
1091
|
|
|
1092
1092
|
// src/orchestration/services/implementation/head.ts
|
|
1093
1093
|
import { delay } from "@xylabs/delay";
|
|
1094
|
-
import { ZERO_ADDRESS as ZERO_ADDRESS2 } from "@xylabs/hex";
|
|
1095
|
-
import {
|
|
1094
|
+
import { asHash, hexFromBigInt, ZERO_ADDRESS as ZERO_ADDRESS2 } from "@xylabs/hex";
|
|
1095
|
+
import { isDefined as isDefined10 } from "@xylabs/typeof";
|
|
1096
|
+
import { buildBlock, createGenesisBlock, findMostRecentBlock as findMostRecentBlock2, isBlockBoundWitnessWithHashStorageMeta } from "@xyo-network/chain-sdk";
|
|
1096
1097
|
import { flattenHydratedBlock as flattenHydratedBlock2 } from "@xyo-network/xl1-protocol-sdk";
|
|
1097
1098
|
var headSingleton;
|
|
1098
1099
|
var createBootstrapHead = /* @__PURE__ */ __name(async (chainSubmissionsArchivistWrite, chainArchivist, account) => {
|
|
@@ -1108,11 +1109,57 @@ var createBootstrapHead = /* @__PURE__ */ __name(async (chainSubmissionsArchivis
|
|
|
1108
1109
|
}
|
|
1109
1110
|
return bw;
|
|
1110
1111
|
}, "createBootstrapHead");
|
|
1112
|
+
var createForkedHead = /* @__PURE__ */ __name(async (chainSubmissionsArchivistWrite, chainArchivist, account, forkBlock, chainId) => {
|
|
1113
|
+
const { _hash: previousBlockHash, block: previousBlockNumber, step_hashes: previousStepHashes, protocol } = forkBlock;
|
|
1114
|
+
const forkBlockReward = 0n;
|
|
1115
|
+
const forkBlockRewardAddress = account.address;
|
|
1116
|
+
const options = {
|
|
1117
|
+
blockPayloads: [],
|
|
1118
|
+
chainId,
|
|
1119
|
+
previousBlockHash,
|
|
1120
|
+
previousBlockNumber,
|
|
1121
|
+
previousStepHashes,
|
|
1122
|
+
signers: [
|
|
1123
|
+
account
|
|
1124
|
+
],
|
|
1125
|
+
txs: [],
|
|
1126
|
+
protocol,
|
|
1127
|
+
reward: forkBlockReward,
|
|
1128
|
+
rewardAddress: forkBlockRewardAddress
|
|
1129
|
+
};
|
|
1130
|
+
const block = await buildBlock(options);
|
|
1131
|
+
const [bw] = block;
|
|
1132
|
+
await chainSubmissionsArchivistWrite.insert(flattenHydratedBlock2(block));
|
|
1133
|
+
while (true) {
|
|
1134
|
+
const result = await chainArchivist.get([
|
|
1135
|
+
bw._hash
|
|
1136
|
+
]);
|
|
1137
|
+
if (result.length > 0) break;
|
|
1138
|
+
await delay(1e3);
|
|
1139
|
+
}
|
|
1140
|
+
return bw;
|
|
1141
|
+
}, "createForkedHead");
|
|
1111
1142
|
var initHead = /* @__PURE__ */ __name(async (params) => {
|
|
1112
|
-
const { account, chainArchivist, chainSubmissionsArchivistWrite } = params;
|
|
1143
|
+
const { account, chainArchivist, chainSubmissionsArchivistWrite, chainService } = params;
|
|
1113
1144
|
if (headSingleton) return headSingleton;
|
|
1114
1145
|
let head = await findMostRecentBlock2(chainArchivist);
|
|
1115
|
-
if (!head)
|
|
1146
|
+
if (!head) {
|
|
1147
|
+
head = await createBootstrapHead(chainSubmissionsArchivistWrite, chainArchivist, account);
|
|
1148
|
+
} else if (head.chain !== chainService.chainId) {
|
|
1149
|
+
const forkedAtBigInt = await chainService.forkedAtHash();
|
|
1150
|
+
const forkedAtHex = hexFromBigInt(forkedAtBigInt);
|
|
1151
|
+
const forkedAtHash = asHash(forkedAtHex);
|
|
1152
|
+
if (isDefined10(forkedAtHash)) {
|
|
1153
|
+
const [forkBlock] = await chainArchivist.get([
|
|
1154
|
+
forkedAtHash
|
|
1155
|
+
]);
|
|
1156
|
+
const forkedChainId = await chainService.forkedChainId();
|
|
1157
|
+
const forkedAtBlockNumber = Number(await chainService.forkedAtBlockNumber());
|
|
1158
|
+
if (isBlockBoundWitnessWithHashStorageMeta(forkBlock) && forkBlock.chain === forkedChainId && forkBlock.block === forkedAtBlockNumber) {
|
|
1159
|
+
head = await createForkedHead(chainSubmissionsArchivistWrite, chainArchivist, account, forkBlock, chainService.chainId);
|
|
1160
|
+
}
|
|
1161
|
+
}
|
|
1162
|
+
}
|
|
1116
1163
|
headSingleton = head;
|
|
1117
1164
|
return headSingleton;
|
|
1118
1165
|
}, "initHead");
|
|
@@ -1290,7 +1337,7 @@ var RuntimeStatusMonitor = class extends LoggerStatusReporter {
|
|
|
1290
1337
|
|
|
1291
1338
|
// src/orchestration/initServices.ts
|
|
1292
1339
|
var isStartable = /* @__PURE__ */ __name((value) => {
|
|
1293
|
-
return
|
|
1340
|
+
return isDefined11(value.start) && typeof value.start === "function";
|
|
1294
1341
|
}, "isStartable");
|
|
1295
1342
|
var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
1296
1343
|
const { config: config3, logger } = context;
|
|
@@ -1354,7 +1401,8 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1354
1401
|
...initParams,
|
|
1355
1402
|
account,
|
|
1356
1403
|
chainArchivist,
|
|
1357
|
-
chainSubmissionsArchivistWrite
|
|
1404
|
+
chainSubmissionsArchivistWrite,
|
|
1405
|
+
chainService
|
|
1358
1406
|
}));
|
|
1359
1407
|
const [pendingTransactionsService, rewardService, chainIterator, balanceService] = await Promise.all([
|
|
1360
1408
|
startupSpanAsync7("PendingTransactions", () => initPendingTransactions({
|
|
@@ -1411,7 +1459,11 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1411
1459
|
validateHydratedBlockState,
|
|
1412
1460
|
...initParams
|
|
1413
1461
|
};
|
|
1414
|
-
const
|
|
1462
|
+
const time = await BaseTimeSyncService.create({
|
|
1463
|
+
chainArchivist,
|
|
1464
|
+
chainIterator
|
|
1465
|
+
});
|
|
1466
|
+
const rewardAddress = isDefined11(config3.producer.rewardAddress) ? assertEx17(asAddress2(config3.producer.rewardAddress), () => "Invalid block reward address provided") : account.address;
|
|
1415
1467
|
const producerParams = {
|
|
1416
1468
|
...validatorParams,
|
|
1417
1469
|
name: "Producer",
|
|
@@ -1421,24 +1473,25 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1421
1473
|
pendingTransactionsService,
|
|
1422
1474
|
rejectedTransactionsArchivist,
|
|
1423
1475
|
rewardAddress,
|
|
1476
|
+
time,
|
|
1424
1477
|
...initParams
|
|
1425
1478
|
};
|
|
1426
1479
|
const producer = await startupSpanAsync7("Producer", () => initBlockProducer(producerParams));
|
|
1427
1480
|
const result = {
|
|
1428
1481
|
account,
|
|
1429
|
-
balanceService,
|
|
1482
|
+
balance: balanceService,
|
|
1430
1483
|
chainArchivist,
|
|
1431
1484
|
chainContractViewer,
|
|
1432
1485
|
chainIterator,
|
|
1433
1486
|
chainStaker,
|
|
1434
1487
|
chainStakeViewer,
|
|
1435
1488
|
chainSubmissionsArchivistWrite,
|
|
1436
|
-
electionService,
|
|
1489
|
+
election: electionService,
|
|
1437
1490
|
pendingBundledTransactionsArchivistWrite,
|
|
1438
|
-
pendingTransactionsService,
|
|
1491
|
+
pendingTransactions: pendingTransactionsService,
|
|
1439
1492
|
producer,
|
|
1440
|
-
rewardService,
|
|
1441
|
-
stakeIntentService
|
|
1493
|
+
reward: rewardService,
|
|
1494
|
+
stakeIntent: stakeIntentService
|
|
1442
1495
|
};
|
|
1443
1496
|
logger?.log("All services created. Starting...");
|
|
1444
1497
|
const startableServices = [
|
|
@@ -1451,7 +1504,7 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1451
1504
|
|
|
1452
1505
|
// src/runCLI.ts
|
|
1453
1506
|
import { deepMerge } from "@xylabs/object";
|
|
1454
|
-
import { isDefined as
|
|
1507
|
+
import { isDefined as isDefined14 } from "@xylabs/typeof";
|
|
1455
1508
|
import { ConfigZod } from "@xyo-network/xl1-protocol-sdk";
|
|
1456
1509
|
import yargs from "yargs";
|
|
1457
1510
|
import { hideBin } from "yargs/helpers";
|
|
@@ -1511,16 +1564,16 @@ var XL1LogoColorizedAscii = `\x1B[38;2;128;128;128m\xA0\xA0\xA0\xA0\xA0\xA0\xA0\
|
|
|
1511
1564
|
// src/initLogger.ts
|
|
1512
1565
|
import { Base as Base2 } from "@xylabs/base";
|
|
1513
1566
|
import { ConsoleLogger, LogLevel, SilentLogger } from "@xylabs/logger";
|
|
1514
|
-
import { isDefined as
|
|
1567
|
+
import { isDefined as isDefined12 } from "@xylabs/typeof";
|
|
1515
1568
|
var initLogger = /* @__PURE__ */ __name((config3) => {
|
|
1516
1569
|
let logger;
|
|
1517
1570
|
if (config3.silent) {
|
|
1518
1571
|
logger = new SilentLogger();
|
|
1519
1572
|
} else {
|
|
1520
1573
|
let level;
|
|
1521
|
-
if (
|
|
1574
|
+
if (isDefined12(config3.logLevel)) {
|
|
1522
1575
|
const parsed = LogLevel[config3.logLevel.toLowerCase()];
|
|
1523
|
-
if (
|
|
1576
|
+
if (isDefined12(parsed)) level = parsed;
|
|
1524
1577
|
}
|
|
1525
1578
|
logger = new ConsoleLogger(level);
|
|
1526
1579
|
}
|
|
@@ -1546,7 +1599,7 @@ var optionsFromGlobalZodRegistry = /* @__PURE__ */ __name(() => {
|
|
|
1546
1599
|
}, "optionsFromGlobalZodRegistry");
|
|
1547
1600
|
|
|
1548
1601
|
// src/tryParseConfig.ts
|
|
1549
|
-
import { isDefined as
|
|
1602
|
+
import { isDefined as isDefined13, isNull } from "@xylabs/typeof";
|
|
1550
1603
|
import { cosmiconfigSync } from "cosmiconfig";
|
|
1551
1604
|
var configName = "xyo";
|
|
1552
1605
|
var configSection = "xl1";
|
|
@@ -1555,7 +1608,7 @@ var tryParseConfig = /* @__PURE__ */ __name(() => {
|
|
|
1555
1608
|
const result = explorer.search();
|
|
1556
1609
|
if (!isNull(result)) {
|
|
1557
1610
|
const section = result?.config?.[configSection];
|
|
1558
|
-
if (
|
|
1611
|
+
if (isDefined13(section) && typeof section === "object") {
|
|
1559
1612
|
return section;
|
|
1560
1613
|
}
|
|
1561
1614
|
}
|
|
@@ -1585,7 +1638,7 @@ var waitForHostPort = /* @__PURE__ */ __name((host, port) => {
|
|
|
1585
1638
|
|
|
1586
1639
|
// src/runCLI.ts
|
|
1587
1640
|
var config;
|
|
1588
|
-
var version =
|
|
1641
|
+
var version = isDefined14("1.14.1") ? "1.14.1" : "unknown";
|
|
1589
1642
|
var getContextFromConfig = /* @__PURE__ */ __name((config3) => {
|
|
1590
1643
|
const logger = initLogger(config3);
|
|
1591
1644
|
const orchestrator = new Orchestrator(logger);
|