@xyo-network/xl1-cli-lib 1.15.27 → 1.16.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 +1 -0
- package/dist/node/commands/index.d.ts.map +1 -1
- package/dist/node/commands/mempool/index.d.ts +2 -0
- package/dist/node/commands/mempool/index.d.ts.map +1 -0
- package/dist/node/commands/mempool/runMempool.d.ts +9 -0
- package/dist/node/commands/mempool/runMempool.d.ts.map +1 -0
- package/dist/node/index.mjs +130 -96
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/orchestration/actor/implementation/BalanceActor.d.ts +2 -2
- package/dist/node/orchestration/actor/implementation/BalanceActor.d.ts.map +1 -1
- package/dist/node/orchestration/actor/implementation/ChainHeadUpdateActor.d.ts +1 -1
- package/dist/node/orchestration/actor/implementation/ChainHeadUpdateActor.d.ts.map +1 -1
- package/dist/node/orchestration/actor/implementation/ProducerActor.d.ts +5 -5
- package/dist/node/orchestration/actor/implementation/ProducerActor.d.ts.map +1 -1
- package/dist/node/orchestration/actor/implementation/ValidatorActor.d.ts +4 -4
- 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/map/BalanceSummary/initLocalTransferSummaryMap.d.ts +1 -1
- package/dist/node/orchestration/map/BalanceSummary/initLocalTransferSummaryMap.d.ts.map +1 -1
- package/dist/node/orchestration/map/BalanceSummary/initTransferSummaryMap.d.ts +1 -1
- package/dist/node/orchestration/map/BalanceSummary/initTransferSummaryMap.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/balance.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/balance.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/chain/index.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/chain/index.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/head/createBootstrapHead.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/head/createBootstrapHead.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/head/createForkedHead/config/getBridgeSourceDetails.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/head/createForkedHead/config/getBridgeSourceDetails.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/head/createForkedHead/createForkedHead.d.ts +4 -3
- package/dist/node/orchestration/services/implementation/head/createForkedHead/createForkedHead.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/head/createForkedHead/getBridgeDestinationObservation.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/head/createForkedHead/getBridgeDestinationObservation.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/head/createForkedHead/getBridgeIntent.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/head/createForkedHead/getBridgeIntent.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/head/createForkedHead/getBridgeSourceObservation.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/head/createForkedHead/getBridgeSourceObservation.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/head/createForkedHead/getFirstBlockForNewChain.d.ts +4 -3
- package/dist/node/orchestration/services/implementation/head/createForkedHead/getFirstBlockForNewChain.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/head/getForkFromBlock.d.ts +4 -3
- package/dist/node/orchestration/services/implementation/head/getForkFromBlock.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/head/head.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/head/head.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/iterator.d.ts +2 -2
- package/dist/node/orchestration/services/implementation/iterator.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/pendingTransactions.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/pendingTransactions.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/producer.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/producer.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/reward.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/reward.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/time.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/time.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/transfer.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/transfer.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/validator.d.ts +2 -1
- package/dist/node/orchestration/services/implementation/validator.d.ts.map +1 -1
- package/dist/node/runCLI.d.ts.map +1 -1
- package/dist/node/xl1.mjs +130 -96
- package/dist/node/xl1.mjs.map +1 -1
- package/package.json +33 -32
- package/src/commands/index.ts +1 -0
- package/src/commands/mempool/index.ts +1 -0
- package/src/commands/mempool/runMempool.ts +12 -0
- package/src/orchestration/archivists/ChainFinalized/remote.ts +1 -1
- package/src/orchestration/archivists/ChainSubmissions/remote.ts +1 -1
- package/src/orchestration/archivists/PendingTransactions/remote.ts +1 -1
- package/src/orchestration/initServices.ts +8 -3
- package/src/orchestration/map/BalanceSummary/initLocalTransferSummaryMap.ts +2 -1
- package/src/orchestration/map/BalanceSummary/initTransferSummaryMap.ts +2 -1
- package/src/orchestration/services/implementation/balance.ts +2 -1
- package/src/orchestration/services/implementation/chain/index.ts +2 -1
- package/src/orchestration/services/implementation/head/createBootstrapHead.ts +2 -1
- package/src/orchestration/services/implementation/head/createForkedHead/config/getBridgeSourceDetails.ts +2 -1
- package/src/orchestration/services/implementation/head/createForkedHead/createForkedHead.ts +4 -5
- package/src/orchestration/services/implementation/head/createForkedHead/getBridgeDestinationObservation.ts +2 -1
- package/src/orchestration/services/implementation/head/createForkedHead/getBridgeIntent.ts +2 -1
- package/src/orchestration/services/implementation/head/createForkedHead/getBridgeSourceObservation.ts +2 -1
- package/src/orchestration/services/implementation/head/createForkedHead/getFirstBlockForNewChain.ts +4 -5
- package/src/orchestration/services/implementation/head/getForkFromBlock.ts +6 -5
- package/src/orchestration/services/implementation/head/head.ts +2 -3
- package/src/orchestration/services/implementation/iterator.ts +3 -2
- package/src/orchestration/services/implementation/pendingTransactions.ts +2 -1
- package/src/orchestration/services/implementation/producer.ts +2 -1
- package/src/orchestration/services/implementation/reward.ts +2 -2
- package/src/orchestration/services/implementation/time.ts +2 -1
- package/src/orchestration/services/implementation/transfer.ts +2 -1
- package/src/orchestration/services/implementation/validator.ts +2 -1
- package/src/runCLI.ts +33 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/mempool/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Logger } from '@xylabs/logger';
|
|
2
|
+
import type { Config } from '@xyo-network/xl1-protocol-sdk';
|
|
3
|
+
interface RunMempoolContext {
|
|
4
|
+
config: Config;
|
|
5
|
+
logger?: Logger;
|
|
6
|
+
}
|
|
7
|
+
export declare function runMempool(context: RunMempoolContext): void;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=runMempool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runMempool.d.ts","sourceRoot":"","sources":["../../../../src/commands/mempool/runMempool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE3D,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,QAEpD"}
|
package/dist/node/index.mjs
CHANGED
|
@@ -593,8 +593,8 @@ var createHealthServer = /* @__PURE__ */ __name((port, statusMonitor, logger) =>
|
|
|
593
593
|
return server;
|
|
594
594
|
}, "createHealthServer");
|
|
595
595
|
var initHealthEndpoints = /* @__PURE__ */ __name((params) => {
|
|
596
|
-
const { config:
|
|
597
|
-
const { healthCheckPort } =
|
|
596
|
+
const { config: config2, logger, statusReporter } = params;
|
|
597
|
+
const { healthCheckPort } = config2.producer;
|
|
598
598
|
return isDefined3(healthCheckPort) ? createHealthServer(healthCheckPort, statusReporter, logger) : void 0;
|
|
599
599
|
}, "initHealthEndpoints");
|
|
600
600
|
|
|
@@ -603,7 +603,6 @@ import { assertEx as assertEx18 } from "@xylabs/assert";
|
|
|
603
603
|
import { asAddress as asAddress2 } from "@xylabs/hex";
|
|
604
604
|
import { isDefined as isDefined14 } from "@xylabs/typeof";
|
|
605
605
|
import { initTelemetry, startupSpanAsync as startupSpanAsync8, StepSizes, validateHydratedBlockState } from "@xyo-network/chain-sdk";
|
|
606
|
-
import { PayloadBuilder as PayloadBuilder7 } from "@xyo-network/payload-builder";
|
|
607
606
|
import { readPayloadMapFromStore } from "@xyo-network/xl1-protocol-sdk";
|
|
608
607
|
import { CompletedStepRewardAddressValidatorFactory, DerivedReceiveAddressValidatorFactory, SelfSignerValidator, TransactionTransfersValidatorFactory } from "@xyo-network/xl1-validation";
|
|
609
608
|
import { Semaphore as Semaphore2 } from "async-mutex";
|
|
@@ -643,10 +642,10 @@ var getLocalPersistentArchivist = /* @__PURE__ */ __name((name, dbName, storeNam
|
|
|
643
642
|
// src/orchestration/archivists/ChainFinalized/local.ts
|
|
644
643
|
var mutex = new Mutex2();
|
|
645
644
|
var singleton;
|
|
646
|
-
var initLocalChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config:
|
|
645
|
+
var initLocalChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
647
646
|
return await mutex.runExclusive(async () => {
|
|
648
647
|
if (singleton) return singleton;
|
|
649
|
-
const { root } =
|
|
648
|
+
const { root } = config2.storage;
|
|
650
649
|
singleton = await getLocalPersistentArchivist("local-finalized-chain", "chain", "finalized", root);
|
|
651
650
|
return singleton;
|
|
652
651
|
});
|
|
@@ -659,10 +658,10 @@ import { getUrl } from "@xyo-network/xl1-protocol-sdk";
|
|
|
659
658
|
import { Mutex as Mutex3 } from "async-mutex";
|
|
660
659
|
var mutex2 = new Mutex3();
|
|
661
660
|
var singleton2;
|
|
662
|
-
var initRemoteChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config:
|
|
661
|
+
var initRemoteChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
663
662
|
return await mutex2.runExclusive(async () => {
|
|
664
663
|
if (singleton2) return singleton2;
|
|
665
|
-
const { host, port } =
|
|
664
|
+
const { host, port } = config2.mempool.enabled ? config2.mempool : config2.api;
|
|
666
665
|
const nodeUrl = getUrl(host, port);
|
|
667
666
|
const bridge = await initBridge(nodeUrl);
|
|
668
667
|
singleton2 = await initBridgedArchivistModule({
|
|
@@ -676,16 +675,16 @@ var initRemoteChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config:
|
|
|
676
675
|
// src/orchestration/archivists/ChainFinalized/archivist.ts
|
|
677
676
|
var mutex3 = new Mutex4();
|
|
678
677
|
var singleton3;
|
|
679
|
-
async function initChainFinalizedArchivist({ config:
|
|
678
|
+
async function initChainFinalizedArchivist({ config: config2, logger, traceProvider }) {
|
|
680
679
|
return await mutex3.runExclusive(async () => {
|
|
681
680
|
if (singleton3) return singleton3;
|
|
682
681
|
const [remote, local] = await Promise.all([
|
|
683
682
|
startupSpanAsync("ChainFinalizedArchivist:initRemote", () => initRemoteChainFinalizedArchivist({
|
|
684
|
-
config:
|
|
683
|
+
config: config2,
|
|
685
684
|
logger
|
|
686
685
|
})),
|
|
687
686
|
startupSpanAsync("ChainFinalizedArchivist:initLocal", () => initLocalChainFinalizedArchivist({
|
|
688
|
-
config:
|
|
687
|
+
config: config2,
|
|
689
688
|
logger
|
|
690
689
|
}))
|
|
691
690
|
]);
|
|
@@ -708,10 +707,10 @@ import { getUrl as getUrl2 } from "@xyo-network/xl1-protocol-sdk";
|
|
|
708
707
|
import { Mutex as Mutex5 } from "async-mutex";
|
|
709
708
|
var mutex4 = new Mutex5();
|
|
710
709
|
var singleton4;
|
|
711
|
-
var initRemoteChainSubmissionsArchivist = /* @__PURE__ */ __name(async ({ config:
|
|
710
|
+
var initRemoteChainSubmissionsArchivist = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
712
711
|
return await mutex4.runExclusive(async () => {
|
|
713
712
|
if (singleton4) return singleton4;
|
|
714
|
-
const { host, port } =
|
|
713
|
+
const { host, port } = config2.mempool.enabled ? config2.mempool : config2.api;
|
|
715
714
|
const nodeUrl = getUrl2(host, port);
|
|
716
715
|
const bridge = await initBridge2(nodeUrl);
|
|
717
716
|
singleton4 = await initBridgedArchivistModule2({
|
|
@@ -765,10 +764,10 @@ import { getUrl as getUrl3 } from "@xyo-network/xl1-protocol-sdk";
|
|
|
765
764
|
import { Mutex as Mutex8 } from "async-mutex";
|
|
766
765
|
var mutex7 = new Mutex8();
|
|
767
766
|
var singleton7;
|
|
768
|
-
var initRemotePendingTransactionsArchivist = /* @__PURE__ */ __name(async ({ config:
|
|
767
|
+
var initRemotePendingTransactionsArchivist = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
769
768
|
return await mutex7.runExclusive(async () => {
|
|
770
769
|
if (singleton7) return singleton7;
|
|
771
|
-
const { host, port } =
|
|
770
|
+
const { host, port } = config2.mempool.enabled ? config2.mempool : config2.api;
|
|
772
771
|
const nodeUrl = getUrl3(host, port);
|
|
773
772
|
const bridge = await initBridge3(nodeUrl);
|
|
774
773
|
singleton7 = await initBridgedArchivistModule3({
|
|
@@ -848,10 +847,10 @@ import { assertEx as assertEx9 } from "@xylabs/assert";
|
|
|
848
847
|
import { Mutex as Mutex12 } from "async-mutex";
|
|
849
848
|
var mutex11 = new Mutex12();
|
|
850
849
|
var singleton11;
|
|
851
|
-
var initLocalStakeIntentStateArchivist = /* @__PURE__ */ __name(async ({ config:
|
|
850
|
+
var initLocalStakeIntentStateArchivist = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
852
851
|
return await mutex11.runExclusive(async () => {
|
|
853
852
|
if (singleton11) return singleton11;
|
|
854
|
-
const { root } =
|
|
853
|
+
const { root } = config2.storage;
|
|
855
854
|
singleton11 = await getLocalPersistentArchivist("local-stake-intent-state", "stakeIntent", "state", root);
|
|
856
855
|
return assertEx9(singleton11, () => new Error("Failed to initialize stake intent state archivist"));
|
|
857
856
|
});
|
|
@@ -940,9 +939,9 @@ import { isUndefined as isUndefined3 } from "@xylabs/typeof";
|
|
|
940
939
|
import { HDWallet } from "@xyo-network/wallet";
|
|
941
940
|
import { ADDRESS_INDEX, generateXyoBaseWalletFromPhrase } from "@xyo-network/xl1-protocol-sdk";
|
|
942
941
|
var accountServiceSingleton;
|
|
943
|
-
var initAccount = /* @__PURE__ */ __name(async ({ config:
|
|
942
|
+
var initAccount = /* @__PURE__ */ __name(async ({ config: config2, logger }) => {
|
|
944
943
|
if (accountServiceSingleton) return accountServiceSingleton;
|
|
945
|
-
let walletPhrase =
|
|
944
|
+
let walletPhrase = config2.producer.mnemonic;
|
|
946
945
|
if (isUndefined3(walletPhrase)) {
|
|
947
946
|
logger?.warn("[Producer] No wallet mnemonic specified!");
|
|
948
947
|
const randomMnemonic = HDWallet.generateMnemonic();
|
|
@@ -990,11 +989,11 @@ import { InfuraProvider } from "ethers/providers";
|
|
|
990
989
|
import { assertEx as assertEx11 } from "@xylabs/assert";
|
|
991
990
|
import { hexFrom, isHex } from "@xylabs/hex";
|
|
992
991
|
import { isDefined as isDefined8 } from "@xylabs/typeof";
|
|
993
|
-
var canUseChainId = /* @__PURE__ */ __name((
|
|
994
|
-
return isDefined8(
|
|
992
|
+
var canUseChainId = /* @__PURE__ */ __name((config2) => {
|
|
993
|
+
return isDefined8(config2.evm.chainId);
|
|
995
994
|
}, "canUseChainId");
|
|
996
|
-
var getChainId = /* @__PURE__ */ __name((
|
|
997
|
-
const chainId = assertEx11(
|
|
995
|
+
var getChainId = /* @__PURE__ */ __name((config2) => {
|
|
996
|
+
const chainId = assertEx11(config2.evm.chainId, () => "Missing config.evm.chainId");
|
|
998
997
|
if (isHex(chainId, {
|
|
999
998
|
prefix: true
|
|
1000
999
|
})) {
|
|
@@ -1009,20 +1008,20 @@ var getChainId = /* @__PURE__ */ __name((config3) => {
|
|
|
1009
1008
|
|
|
1010
1009
|
// src/orchestration/services/implementation/evm/initInfuraProvider.ts
|
|
1011
1010
|
var instance;
|
|
1012
|
-
var initInfuraProvider = /* @__PURE__ */ __name((
|
|
1011
|
+
var initInfuraProvider = /* @__PURE__ */ __name((config2) => {
|
|
1013
1012
|
if (instance) return instance;
|
|
1014
|
-
const providerConfig = getInfuraProviderConfig(
|
|
1013
|
+
const providerConfig = getInfuraProviderConfig(config2);
|
|
1015
1014
|
instance = Promise.resolve(new InfuraProvider(...providerConfig));
|
|
1016
1015
|
return instance;
|
|
1017
1016
|
}, "initInfuraProvider");
|
|
1018
|
-
var canUseInfuraProvider = /* @__PURE__ */ __name((
|
|
1019
|
-
return canUseChainId(
|
|
1017
|
+
var canUseInfuraProvider = /* @__PURE__ */ __name((config2) => {
|
|
1018
|
+
return canUseChainId(config2) && isDefined9(config2.evm?.infura?.projectId) && isDefined9(config2.evm?.infura?.projectSecret);
|
|
1020
1019
|
}, "canUseInfuraProvider");
|
|
1021
|
-
var getInfuraProviderConfig = /* @__PURE__ */ __name((
|
|
1022
|
-
const projectId = assertEx12(
|
|
1023
|
-
const projectSecret = assertEx12(
|
|
1020
|
+
var getInfuraProviderConfig = /* @__PURE__ */ __name((config2) => {
|
|
1021
|
+
const projectId = assertEx12(config2.evm?.infura?.projectId, () => "Missing config.evm.infura.projectId");
|
|
1022
|
+
const projectSecret = assertEx12(config2.evm?.infura?.projectSecret, () => "Missing config.evm.infura.projectSecret");
|
|
1024
1023
|
return [
|
|
1025
|
-
getChainId(
|
|
1024
|
+
getChainId(config2),
|
|
1026
1025
|
projectId,
|
|
1027
1026
|
projectSecret
|
|
1028
1027
|
];
|
|
@@ -1032,50 +1031,50 @@ var getInfuraProviderConfig = /* @__PURE__ */ __name((config3) => {
|
|
|
1032
1031
|
import { assertEx as assertEx13 } from "@xylabs/assert";
|
|
1033
1032
|
import { isDefined as isDefined10 } from "@xylabs/typeof";
|
|
1034
1033
|
import { JsonRpcProvider } from "ethers/providers";
|
|
1035
|
-
var initJsonRpcProvider = /* @__PURE__ */ __name((
|
|
1036
|
-
const providerConfig = getJsonRpcProviderConfig(
|
|
1034
|
+
var initJsonRpcProvider = /* @__PURE__ */ __name((config2) => {
|
|
1035
|
+
const providerConfig = getJsonRpcProviderConfig(config2);
|
|
1037
1036
|
return Promise.resolve(new JsonRpcProvider(...providerConfig));
|
|
1038
1037
|
}, "initJsonRpcProvider");
|
|
1039
|
-
var canUseJsonRpcProvider = /* @__PURE__ */ __name((
|
|
1040
|
-
return canUseChainId(
|
|
1038
|
+
var canUseJsonRpcProvider = /* @__PURE__ */ __name((config2) => {
|
|
1039
|
+
return canUseChainId(config2) && isDefined10(config2.evm.jsonRpc?.url);
|
|
1041
1040
|
}, "canUseJsonRpcProvider");
|
|
1042
|
-
var getJsonRpcProviderConfig = /* @__PURE__ */ __name((
|
|
1043
|
-
const jsonRpcUrl = assertEx13(
|
|
1041
|
+
var getJsonRpcProviderConfig = /* @__PURE__ */ __name((config2) => {
|
|
1042
|
+
const jsonRpcUrl = assertEx13(config2.evm.jsonRpc?.url, () => "Missing config.evm.jsonRpc.url");
|
|
1044
1043
|
return [
|
|
1045
1044
|
jsonRpcUrl,
|
|
1046
|
-
getChainId(
|
|
1045
|
+
getChainId(config2)
|
|
1047
1046
|
];
|
|
1048
1047
|
}, "getJsonRpcProviderConfig");
|
|
1049
1048
|
|
|
1050
1049
|
// src/orchestration/services/implementation/evm/initEvmProvider.ts
|
|
1051
1050
|
var provider;
|
|
1052
|
-
var initEvmProvider = /* @__PURE__ */ __name(async ({ config:
|
|
1051
|
+
var initEvmProvider = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
1053
1052
|
if (provider) return provider;
|
|
1054
|
-
if (canUseInfuraProvider(
|
|
1055
|
-
provider = initInfuraProvider(
|
|
1056
|
-
} else if (canUseJsonRpcProvider(
|
|
1057
|
-
provider = initJsonRpcProvider(
|
|
1053
|
+
if (canUseInfuraProvider(config2)) {
|
|
1054
|
+
provider = initInfuraProvider(config2);
|
|
1055
|
+
} else if (canUseJsonRpcProvider(config2)) {
|
|
1056
|
+
provider = initJsonRpcProvider(config2);
|
|
1058
1057
|
}
|
|
1059
1058
|
return assertEx14(await provider, () => "Error: No provider available");
|
|
1060
1059
|
}, "initEvmProvider");
|
|
1061
|
-
var canUseEvmProvider = /* @__PURE__ */ __name(({ config:
|
|
1062
|
-
return canUseInfuraProvider(
|
|
1060
|
+
var canUseEvmProvider = /* @__PURE__ */ __name(({ config: config2 }) => {
|
|
1061
|
+
return canUseInfuraProvider(config2) || canUseJsonRpcProvider(config2);
|
|
1063
1062
|
}, "canUseEvmProvider");
|
|
1064
1063
|
|
|
1065
1064
|
// src/orchestration/services/implementation/chain/evm.ts
|
|
1066
1065
|
var chainStakeServiceSingleton;
|
|
1067
|
-
var canUseEvmContractChainService = /* @__PURE__ */ __name((
|
|
1068
|
-
const { id } =
|
|
1066
|
+
var canUseEvmContractChainService = /* @__PURE__ */ __name((config2) => {
|
|
1067
|
+
const { id } = config2.chain;
|
|
1069
1068
|
return isDefined11(id) && id !== ZERO_ADDRESS && canUseEvmProvider({
|
|
1070
|
-
config:
|
|
1069
|
+
config: config2
|
|
1071
1070
|
});
|
|
1072
1071
|
}, "canUseEvmContractChainService");
|
|
1073
|
-
var initEvmContractChainService = /* @__PURE__ */ __name(async ({ account, config:
|
|
1072
|
+
var initEvmContractChainService = /* @__PURE__ */ __name(async ({ account, config: config2, traceProvider, meterProvider, logger }) => {
|
|
1074
1073
|
if (chainStakeServiceSingleton) return chainStakeServiceSingleton;
|
|
1075
|
-
const emvStakingContractAddress = assertEx15(
|
|
1074
|
+
const emvStakingContractAddress = assertEx15(config2.chain.id, () => "Error: config.chain.id is required");
|
|
1076
1075
|
const id = assertEx15(asAddress(emvStakingContractAddress), () => "Error: config.chain.id is not a valid address");
|
|
1077
1076
|
const provider2 = assertEx15(await initEvmProvider({
|
|
1078
|
-
config:
|
|
1077
|
+
config: config2
|
|
1079
1078
|
}));
|
|
1080
1079
|
const privateKey = assertEx15(account.private?.hex, () => "Error: Account does not have a private key");
|
|
1081
1080
|
const runner = new Wallet(privateKey, provider2);
|
|
@@ -1091,15 +1090,15 @@ var initEvmContractChainService = /* @__PURE__ */ __name(async ({ account, confi
|
|
|
1091
1090
|
|
|
1092
1091
|
// src/orchestration/services/implementation/chain/index.ts
|
|
1093
1092
|
var chainStakeServiceSingleton2;
|
|
1094
|
-
var initChainService = /* @__PURE__ */ __name(({ account, config:
|
|
1095
|
-
config:
|
|
1093
|
+
var initChainService = /* @__PURE__ */ __name(({ account, config: config2 }) => init({
|
|
1094
|
+
config: config2,
|
|
1096
1095
|
name: "ChainService",
|
|
1097
1096
|
account
|
|
1098
1097
|
}), "initChainService");
|
|
1099
1098
|
var init = /* @__PURE__ */ __name((params) => {
|
|
1100
1099
|
if (chainStakeServiceSingleton2) return chainStakeServiceSingleton2;
|
|
1101
|
-
const { config:
|
|
1102
|
-
chainStakeServiceSingleton2 = canUseEvmContractChainService(
|
|
1100
|
+
const { config: config2 } = params;
|
|
1101
|
+
chainStakeServiceSingleton2 = canUseEvmContractChainService(config2) ? initEvmContractChainService({
|
|
1103
1102
|
...params,
|
|
1104
1103
|
name: "ChainStakeService"
|
|
1105
1104
|
}) : MemoryChainService.create({
|
|
@@ -1282,7 +1281,7 @@ var createForkedHead = /* @__PURE__ */ __name(async (forkFromBlock, account, cha
|
|
|
1282
1281
|
// src/orchestration/services/implementation/head/getForkFromBlock.ts
|
|
1283
1282
|
import { asHash, hexFromBigInt } from "@xylabs/hex";
|
|
1284
1283
|
import { isDefined as isDefined12 } from "@xylabs/typeof";
|
|
1285
|
-
import {
|
|
1284
|
+
import { isBlockBoundWitnessWithHashMeta } from "@xyo-network/chain-sdk";
|
|
1286
1285
|
var getForkFromBlock = /* @__PURE__ */ __name(async (head, chainService, chainArchivist) => {
|
|
1287
1286
|
if (head.chain !== chainService.chainId) {
|
|
1288
1287
|
const forkedAtBigInt = await chainService.forkedAtHash();
|
|
@@ -1294,7 +1293,7 @@ var getForkFromBlock = /* @__PURE__ */ __name(async (head, chainService, chainAr
|
|
|
1294
1293
|
]);
|
|
1295
1294
|
const forkedChainId = await chainService.forkedChainId();
|
|
1296
1295
|
const forkedAtBlockNumber = Number(await chainService.forkedAtBlockNumber());
|
|
1297
|
-
if (
|
|
1296
|
+
if (isBlockBoundWitnessWithHashMeta(forkedAtBlock) && forkedAtBlock.chain === forkedChainId && forkedAtBlock.block === forkedAtBlockNumber) {
|
|
1298
1297
|
return forkedAtBlock;
|
|
1299
1298
|
}
|
|
1300
1299
|
}
|
|
@@ -1387,9 +1386,9 @@ import { EvmBlockRewardService, MemoryBlockRewardService } from "@xyo-network/ch
|
|
|
1387
1386
|
var rewardServiceSingleton;
|
|
1388
1387
|
var initBlockRewardService = /* @__PURE__ */ __name((params) => {
|
|
1389
1388
|
if (rewardServiceSingleton) return rewardServiceSingleton;
|
|
1390
|
-
const { config:
|
|
1389
|
+
const { config: config2 } = params;
|
|
1391
1390
|
rewardServiceSingleton = canUseEvmBlockRewardService({
|
|
1392
|
-
config:
|
|
1391
|
+
config: config2
|
|
1393
1392
|
}) ? initEvmBlockRewardService(params) : initXyoBlockRewardService(params);
|
|
1394
1393
|
return rewardServiceSingleton;
|
|
1395
1394
|
}, "initBlockRewardService");
|
|
@@ -1418,12 +1417,12 @@ var initEvmBlockRewardService = /* @__PURE__ */ __name(async (params) => {
|
|
|
1418
1417
|
// src/orchestration/services/implementation/time.ts
|
|
1419
1418
|
import { BaseTimeSyncService } from "@xyo-network/chain-sdk";
|
|
1420
1419
|
var timeSyncServiceSingleton;
|
|
1421
|
-
var initTimeService = /* @__PURE__ */ __name(async ({ chainArchivist, chainIterator, config:
|
|
1420
|
+
var initTimeService = /* @__PURE__ */ __name(async ({ chainArchivist, chainIterator, config: config2, logger, meterProvider, traceProvider }) => {
|
|
1422
1421
|
if (timeSyncServiceSingleton) return timeSyncServiceSingleton;
|
|
1423
1422
|
const ethProvider = canUseEvmProvider({
|
|
1424
|
-
config:
|
|
1423
|
+
config: config2
|
|
1425
1424
|
}) ? await initEvmProvider({
|
|
1426
|
-
config:
|
|
1425
|
+
config: config2
|
|
1427
1426
|
}) : void 0;
|
|
1428
1427
|
timeSyncServiceSingleton = BaseTimeSyncService.create({
|
|
1429
1428
|
chainArchivist,
|
|
@@ -1548,7 +1547,7 @@ var isStartable = /* @__PURE__ */ __name((value) => {
|
|
|
1548
1547
|
return isDefined14(value.start) && typeof value.start === "function";
|
|
1549
1548
|
}, "isStartable");
|
|
1550
1549
|
var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
1551
|
-
const { config:
|
|
1550
|
+
const { config: config2, logger } = context;
|
|
1552
1551
|
const statusReporter = new RuntimeStatusMonitor(logger);
|
|
1553
1552
|
statusReporter.onGlobalTransition({
|
|
1554
1553
|
to: "started"
|
|
@@ -1565,7 +1564,7 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1565
1564
|
...context,
|
|
1566
1565
|
statusReporter
|
|
1567
1566
|
}));
|
|
1568
|
-
const { otlpEndpoint } =
|
|
1567
|
+
const { otlpEndpoint } = config2.telemetry?.otel ?? {};
|
|
1569
1568
|
const telemetryConfig = {
|
|
1570
1569
|
attributes: {
|
|
1571
1570
|
serviceName: "xl1-producer",
|
|
@@ -1581,10 +1580,10 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1581
1580
|
startupSpanAsync8("initTelemetry", () => initTelemetry(telemetryConfig)),
|
|
1582
1581
|
startupSpanAsync8("initAccount", () => initAccount(context))
|
|
1583
1582
|
]);
|
|
1584
|
-
const allowedRewardRedeemers =
|
|
1585
|
-
const allowedRewardEscrowAccountSigners =
|
|
1583
|
+
const allowedRewardRedeemers = config2.validation?.allowedRewardRedeemers ?? [];
|
|
1584
|
+
const allowedRewardEscrowAccountSigners = config2.validation?.allowedRewardEscrowAccountSigners ?? [];
|
|
1586
1585
|
const initParams = {
|
|
1587
|
-
config:
|
|
1586
|
+
config: config2,
|
|
1588
1587
|
logger,
|
|
1589
1588
|
meterProvider,
|
|
1590
1589
|
statusReporter,
|
|
@@ -1654,7 +1653,13 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1654
1653
|
store: {
|
|
1655
1654
|
chainMap
|
|
1656
1655
|
},
|
|
1657
|
-
head: /* @__PURE__ */ __name(async () =>
|
|
1656
|
+
head: /* @__PURE__ */ __name(async () => {
|
|
1657
|
+
const head2 = await chainIterator.head();
|
|
1658
|
+
return [
|
|
1659
|
+
head2._hash,
|
|
1660
|
+
head2.block
|
|
1661
|
+
];
|
|
1662
|
+
}, "head"),
|
|
1658
1663
|
chainId,
|
|
1659
1664
|
summaryMap: balanceSummaryMap
|
|
1660
1665
|
},
|
|
@@ -1667,7 +1672,13 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1667
1672
|
store: {
|
|
1668
1673
|
chainMap
|
|
1669
1674
|
},
|
|
1670
|
-
head: /* @__PURE__ */ __name(async () =>
|
|
1675
|
+
head: /* @__PURE__ */ __name(async () => {
|
|
1676
|
+
const head2 = await chainIterator.head();
|
|
1677
|
+
return [
|
|
1678
|
+
head2._hash,
|
|
1679
|
+
head2.block
|
|
1680
|
+
];
|
|
1681
|
+
}, "head"),
|
|
1671
1682
|
chainId,
|
|
1672
1683
|
summaryMap: transferSummaryMap
|
|
1673
1684
|
},
|
|
@@ -1709,7 +1720,7 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1709
1720
|
validateHydratedBlockState,
|
|
1710
1721
|
...initParams
|
|
1711
1722
|
};
|
|
1712
|
-
const rewardAddress = isDefined14(
|
|
1723
|
+
const rewardAddress = isDefined14(config2.producer.rewardAddress) ? assertEx18(asAddress2(config2.producer.rewardAddress), () => "Invalid block reward address provided") : account.address;
|
|
1713
1724
|
const producerParams = {
|
|
1714
1725
|
...validatorParams,
|
|
1715
1726
|
name: "Producer",
|
|
@@ -1771,15 +1782,22 @@ function runBridge(context) {
|
|
|
1771
1782
|
}
|
|
1772
1783
|
__name(runBridge, "runBridge");
|
|
1773
1784
|
|
|
1785
|
+
// src/commands/mempool/runMempool.ts
|
|
1786
|
+
import { getServer as getServer3 } from "@xyo-network/chain-head-reducer";
|
|
1787
|
+
function runMempool(context) {
|
|
1788
|
+
void getServer3(context);
|
|
1789
|
+
}
|
|
1790
|
+
__name(runMempool, "runMempool");
|
|
1791
|
+
|
|
1774
1792
|
// src/commands/producer/runProducer.ts
|
|
1775
1793
|
var runProducer = /* @__PURE__ */ __name(async (context) => {
|
|
1776
|
-
const { config:
|
|
1794
|
+
const { config: config2, logger, orchestrator } = context;
|
|
1777
1795
|
logger?.log("Services: Initializing...");
|
|
1778
1796
|
const services = await initServices(context);
|
|
1779
1797
|
logger?.log("Services: Initialized");
|
|
1780
1798
|
const params = {
|
|
1781
1799
|
...services,
|
|
1782
|
-
config:
|
|
1800
|
+
config: config2
|
|
1783
1801
|
};
|
|
1784
1802
|
const chainHeadUpdate = await ChainHeadUpdateActor.create(params);
|
|
1785
1803
|
const balances = await BalanceActor.create(params);
|
|
@@ -1796,9 +1814,9 @@ var runProducer = /* @__PURE__ */ __name(async (context) => {
|
|
|
1796
1814
|
}, "runProducer");
|
|
1797
1815
|
|
|
1798
1816
|
// src/commands/rewardRedemption/runRewardRedemptionApi.ts
|
|
1799
|
-
import { getServer as
|
|
1817
|
+
import { getServer as getServer4 } from "@xyo-network/chain-reward-redemption";
|
|
1800
1818
|
function runRewardRedemptionApi(context) {
|
|
1801
|
-
void
|
|
1819
|
+
void getServer4(context);
|
|
1802
1820
|
}
|
|
1803
1821
|
__name(runRewardRedemptionApi, "runRewardRedemptionApi");
|
|
1804
1822
|
|
|
@@ -1826,14 +1844,14 @@ var XL1LogoColorizedAscii = `\x1B[38;2;128;128;128m\xA0\xA0\xA0\xA0\xA0\xA0\xA0\
|
|
|
1826
1844
|
import { Base as Base2 } from "@xylabs/base";
|
|
1827
1845
|
import { ConsoleLogger, LogLevel, SilentLogger } from "@xylabs/logger";
|
|
1828
1846
|
import { isDefined as isDefined15 } from "@xylabs/typeof";
|
|
1829
|
-
var initLogger = /* @__PURE__ */ __name((
|
|
1847
|
+
var initLogger = /* @__PURE__ */ __name((config2) => {
|
|
1830
1848
|
let logger;
|
|
1831
|
-
if (
|
|
1849
|
+
if (config2.silent) {
|
|
1832
1850
|
logger = new SilentLogger();
|
|
1833
1851
|
} else {
|
|
1834
1852
|
let level;
|
|
1835
|
-
if (isDefined15(
|
|
1836
|
-
const parsed = LogLevel[
|
|
1853
|
+
if (isDefined15(config2.logLevel)) {
|
|
1854
|
+
const parsed = LogLevel[config2.logLevel.toLowerCase()];
|
|
1837
1855
|
if (isDefined15(parsed)) level = parsed;
|
|
1838
1856
|
}
|
|
1839
1857
|
logger = new ConsoleLogger(level);
|
|
@@ -1898,10 +1916,10 @@ var waitForHostPort = /* @__PURE__ */ __name((host, port) => {
|
|
|
1898
1916
|
}, "waitForHostPort");
|
|
1899
1917
|
|
|
1900
1918
|
// src/runCLI.ts
|
|
1901
|
-
var
|
|
1902
|
-
var version = isDefined17("1.15.
|
|
1903
|
-
var getContextFromConfig = /* @__PURE__ */ __name((
|
|
1904
|
-
const logger = initLogger(
|
|
1919
|
+
var configuration;
|
|
1920
|
+
var version = isDefined17("1.15.28") ? "1.15.28" : "unknown";
|
|
1921
|
+
var getContextFromConfig = /* @__PURE__ */ __name((configuration2) => {
|
|
1922
|
+
const logger = initLogger(configuration2);
|
|
1905
1923
|
const orchestrator = new Orchestrator(logger);
|
|
1906
1924
|
process.on("SIGINT", () => {
|
|
1907
1925
|
void (async () => {
|
|
@@ -1938,7 +1956,7 @@ $0 <command> [options]`).parserConfiguration({
|
|
|
1938
1956
|
const parsedConfigFile = tryParseConfig();
|
|
1939
1957
|
const parsedConfigArgs = argv2;
|
|
1940
1958
|
const mergedConfig = deepMerge(parsedConfigArgs, parsedConfigFile);
|
|
1941
|
-
|
|
1959
|
+
configuration = ConfigZod.parse(mergedConfig);
|
|
1942
1960
|
} catch (err) {
|
|
1943
1961
|
if (err instanceof ZodError) {
|
|
1944
1962
|
console.error(`${err.message}`);
|
|
@@ -1948,50 +1966,66 @@ $0 <command> [options]`).parserConfiguration({
|
|
|
1948
1966
|
}).options(optionsFromGlobalZodRegistry()).wrap(y.terminalWidth()).command("api", "Run a XL1 API Node", (yargs2) => {
|
|
1949
1967
|
return yargs2.command("$0", "Run a XL1 API Node", () => {
|
|
1950
1968
|
}, () => {
|
|
1951
|
-
const context = getContextFromConfig(
|
|
1969
|
+
const context = getContextFromConfig(configuration);
|
|
1952
1970
|
runApi({
|
|
1953
1971
|
...context,
|
|
1954
|
-
config
|
|
1972
|
+
config: configuration
|
|
1955
1973
|
});
|
|
1956
1974
|
});
|
|
1957
1975
|
}).command("bridge", "Run a XL1 Bridge Node", (yargs2) => {
|
|
1958
1976
|
return yargs2.command("$0", "Run a XL1 Bridge Node", () => {
|
|
1959
1977
|
}, () => {
|
|
1960
|
-
const context = getContextFromConfig(
|
|
1978
|
+
const context = getContextFromConfig(configuration);
|
|
1961
1979
|
runBridge({
|
|
1962
1980
|
...context,
|
|
1963
|
-
config
|
|
1981
|
+
config: configuration
|
|
1982
|
+
});
|
|
1983
|
+
});
|
|
1984
|
+
}).command("mempool", "Run a XL1 Mempool Node", (yargs2) => {
|
|
1985
|
+
return yargs2.command("$0", "Run a XL1 Mempool Node", () => {
|
|
1986
|
+
}, () => {
|
|
1987
|
+
const context = getContextFromConfig(configuration);
|
|
1988
|
+
runMempool({
|
|
1989
|
+
...context,
|
|
1990
|
+
config: configuration
|
|
1964
1991
|
});
|
|
1965
1992
|
});
|
|
1966
1993
|
}).command("producer", "Run a XL1 Producer Node", (yargs2) => {
|
|
1967
1994
|
return yargs2.command("$0", "Run a XL1 Producer Node", () => {
|
|
1968
1995
|
}, async () => {
|
|
1969
|
-
const context = getContextFromConfig(
|
|
1996
|
+
const context = getContextFromConfig(configuration);
|
|
1970
1997
|
await runProducer({
|
|
1971
1998
|
...context,
|
|
1972
|
-
config
|
|
1999
|
+
config: configuration
|
|
1973
2000
|
});
|
|
1974
2001
|
});
|
|
1975
2002
|
}).command("reward-redemption-api", "Run a XL1 Rewards Redemption API Node", (yargs2) => {
|
|
1976
2003
|
return yargs2.command("$0", "Run a XL1 Rewards Redemption API Node", () => {
|
|
1977
2004
|
}, () => {
|
|
1978
|
-
const context = getContextFromConfig(
|
|
2005
|
+
const context = getContextFromConfig(configuration);
|
|
1979
2006
|
runRewardRedemptionApi({
|
|
1980
2007
|
...context,
|
|
1981
|
-
config
|
|
2008
|
+
config: configuration
|
|
1982
2009
|
});
|
|
1983
2010
|
});
|
|
1984
2011
|
}).command("$0", "Run a full XL1 Node", () => {
|
|
1985
2012
|
}, async () => {
|
|
1986
|
-
const context = getContextFromConfig(
|
|
2013
|
+
const context = getContextFromConfig(configuration);
|
|
2014
|
+
if (configuration.mempool.enabled) {
|
|
2015
|
+
runMempool({
|
|
2016
|
+
...context,
|
|
2017
|
+
config: configuration
|
|
2018
|
+
});
|
|
2019
|
+
await waitForHostPort(configuration.mempool.host, configuration.mempool.port);
|
|
2020
|
+
}
|
|
1987
2021
|
runApi({
|
|
1988
2022
|
...context,
|
|
1989
|
-
config
|
|
2023
|
+
config: configuration
|
|
1990
2024
|
});
|
|
1991
|
-
await waitForHostPort(
|
|
2025
|
+
await waitForHostPort(configuration.api.host, configuration.api.port);
|
|
1992
2026
|
await runProducer({
|
|
1993
2027
|
...context,
|
|
1994
|
-
config
|
|
2028
|
+
config: configuration
|
|
1995
2029
|
});
|
|
1996
2030
|
}).help().alias("help", "h").version(version).argv;
|
|
1997
2031
|
await argv;
|
|
@@ -1999,9 +2033,9 @@ $0 <command> [options]`).parserConfiguration({
|
|
|
1999
2033
|
__name(runCLI, "runCLI");
|
|
2000
2034
|
|
|
2001
2035
|
// src/start.ts
|
|
2002
|
-
import { config
|
|
2036
|
+
import { config } from "dotenv";
|
|
2003
2037
|
var start = /* @__PURE__ */ __name(async () => {
|
|
2004
|
-
|
|
2038
|
+
config({
|
|
2005
2039
|
quiet: true
|
|
2006
2040
|
});
|
|
2007
2041
|
await runCLI();
|