@xyo-network/chain-orchestration 1.19.6 → 1.19.8
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/neutral/createDeclarationIntentBlock.d.ts +6 -4
- package/dist/neutral/createDeclarationIntentBlock.d.ts.map +1 -1
- package/dist/neutral/evm/index.d.ts +3 -0
- package/dist/neutral/evm/index.d.ts.map +1 -1
- package/dist/neutral/evm/initChainId.d.ts +2 -2
- package/dist/neutral/evm/initChainId.d.ts.map +1 -1
- package/dist/neutral/evm/initEvmProvider.d.ts +2 -2
- package/dist/neutral/evm/initEvmProvider.d.ts.map +1 -1
- package/dist/neutral/evm/initInfuraProvider.d.ts +4 -4
- package/dist/neutral/evm/initInfuraProvider.d.ts.map +1 -1
- package/dist/neutral/evm/initJsonRpcProvider.d.ts +3 -3
- package/dist/neutral/evm/initJsonRpcProvider.d.ts.map +1 -1
- package/dist/neutral/index.mjs +107 -69
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/init/index.d.ts +2 -1
- package/dist/neutral/init/index.d.ts.map +1 -1
- package/dist/neutral/init/initEvmProvidersIfAvailable.d.ts +3 -0
- package/dist/neutral/init/initEvmProvidersIfAvailable.d.ts.map +1 -0
- package/dist/neutral/init/initFinalizationArchivistIfNeeded.d.ts +5 -0
- package/dist/neutral/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -0
- package/dist/neutral/orchestrator/Orchestrator.d.ts +4 -4
- package/dist/neutral/orchestrator/Orchestrator.d.ts.map +1 -1
- package/package.json +12 -11
- package/src/evm/index.ts +3 -0
- package/src/evm/initChainId.ts +2 -2
- package/src/evm/initEvmProvider.ts +3 -4
- package/src/evm/initInfuraProvider.ts +5 -4
- package/src/evm/initJsonRpcProvider.ts +3 -3
- package/src/health/initHealthEndpoints.ts +1 -1
- package/src/init/index.ts +2 -1
- package/src/init/initEvmProvidersIfAvailable.ts +90 -0
- package/src/init/initFinalizationArchivistIfNeeded.ts +42 -0
- package/src/init/initProducerAccount.ts +1 -1
- package/src/init/initSeedPhrase.ts +1 -1
- package/src/init/initWallet.ts +4 -4
- package/src/orchestrator/Orchestrator.ts +6 -4
- package/dist/neutral/init/initChainStakeViewer.d.ts +0 -10
- package/dist/neutral/init/initChainStakeViewer.d.ts.map +0 -1
- package/src/init/initChainStakeViewer.ts +0 -56
|
@@ -18,8 +18,6 @@ export declare function createProducerChainStakeIntentBlock(prevBlock: WithHashM
|
|
|
18
18
|
chain: import("@xylabs/hex").BrandedHex;
|
|
19
19
|
previous: import("@xylabs/hex").BrandedHash | null;
|
|
20
20
|
$epoch: number;
|
|
21
|
-
_hash: import("@xylabs/hex").BrandedHash;
|
|
22
|
-
_dataHash: import("@xylabs/hex").BrandedHash;
|
|
23
21
|
$destination?: (Lowercase<string> & {
|
|
24
22
|
readonly __hex: true;
|
|
25
23
|
} & {
|
|
@@ -28,9 +26,13 @@ export declare function createProducerChainStakeIntentBlock(prevBlock: WithHashM
|
|
|
28
26
|
$sourceQuery?: import("@xylabs/hex").BrandedHash | undefined;
|
|
29
27
|
protocol?: number | undefined;
|
|
30
28
|
step_hashes?: import("@xylabs/hex").BrandedHash[] | undefined;
|
|
31
|
-
}
|
|
29
|
+
} & {
|
|
30
|
+
_hash: import("@xylabs/hex").BrandedHash;
|
|
31
|
+
_dataHash: import("@xylabs/hex").BrandedHash;
|
|
32
|
+
}, ({
|
|
32
33
|
schema: import("@xyo-network/payload-model").BrandedSchema<string>;
|
|
34
|
+
} & {
|
|
33
35
|
_hash: import("@xylabs/hex").BrandedHash;
|
|
34
36
|
_dataHash: import("@xylabs/hex").BrandedHash;
|
|
35
|
-
}[]]>;
|
|
37
|
+
})[]]>;
|
|
36
38
|
//# sourceMappingURL=createDeclarationIntentBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDeclarationIntentBlock.d.ts","sourceRoot":"","sources":["../../src/createDeclarationIntentBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAG5E,wBAAsB,mCAAmC,CAAC,SAAS,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa
|
|
1
|
+
{"version":3,"file":"createDeclarationIntentBlock.d.ts","sourceRoot":"","sources":["../../src/createDeclarationIntentBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAG5E,wBAAsB,mCAAmC,CAAC,SAAS,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAa3J"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/evm/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/evm/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Config } from '@xyo-network/xl1-sdk';
|
|
2
|
-
export declare const canUseChainId: (config:
|
|
3
|
-
export declare const getChainId: (config:
|
|
2
|
+
export declare const canUseChainId: (config: Config) => boolean;
|
|
3
|
+
export declare const getChainId: (config: Config) => number;
|
|
4
4
|
//# sourceMappingURL=initChainId.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initChainId.d.ts","sourceRoot":"","sources":["../../../src/evm/initChainId.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,eAAO,MAAM,aAAa,GAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"initChainId.d.ts","sourceRoot":"","sources":["../../../src/evm/initChainId.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,OAE9C,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,WAUxC,CAAA"}
|
|
@@ -2,10 +2,10 @@ import type { Logger } from '@xylabs/sdk-js';
|
|
|
2
2
|
import type { Config } from '@xyo-network/xl1-sdk';
|
|
3
3
|
import type { Provider } from 'ethers';
|
|
4
4
|
export declare const initEvmProvider: ({ config }: {
|
|
5
|
-
config:
|
|
5
|
+
config: Config;
|
|
6
6
|
logger?: Logger;
|
|
7
7
|
}) => Promise<Provider>;
|
|
8
8
|
export declare const canUseEvmProvider: ({ config }: {
|
|
9
|
-
config:
|
|
9
|
+
config: Config;
|
|
10
10
|
}) => boolean;
|
|
11
11
|
//# sourceMappingURL=initEvmProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initEvmProvider.d.ts","sourceRoot":"","sources":["../../../src/evm/initEvmProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"initEvmProvider.d.ts","sourceRoot":"","sources":["../../../src/evm/initEvmProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAOtC,eAAO,MAAM,eAAe,GAAU,YAAY;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,OAAO,CAAC,QAAQ,CAQvG,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,YAAY;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,YAE/D,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Config } from '@xyo-network/xl1-sdk';
|
|
2
|
-
import {
|
|
3
|
-
export declare const initInfuraProvider: (config:
|
|
4
|
-
export declare const canUseInfuraProvider: (config:
|
|
5
|
-
export declare const getInfuraProviderConfig: (config:
|
|
2
|
+
import type { Provider } from 'ethers';
|
|
3
|
+
export declare const initInfuraProvider: (config: Config) => Promise<Provider>;
|
|
4
|
+
export declare const canUseInfuraProvider: (config: Config) => boolean;
|
|
5
|
+
export declare const getInfuraProviderConfig: (config: Config) => readonly [number, string, string];
|
|
6
6
|
//# sourceMappingURL=initInfuraProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initInfuraProvider.d.ts","sourceRoot":"","sources":["../../../src/evm/initInfuraProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"initInfuraProvider.d.ts","sourceRoot":"","sources":["../../../src/evm/initInfuraProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAOtC,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,QAAQ,CAKnE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,OAIrD,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,sCAIrD,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Config } from '@xyo-network/xl1-sdk';
|
|
2
2
|
import { JsonRpcProvider } from 'ethers/providers';
|
|
3
|
-
export declare const initJsonRpcProvider: (config:
|
|
4
|
-
export declare const canUseJsonRpcProvider: (config:
|
|
5
|
-
export declare const getJsonRpcProviderConfig: (config:
|
|
3
|
+
export declare const initJsonRpcProvider: (config: Config) => Promise<JsonRpcProvider>;
|
|
4
|
+
export declare const canUseJsonRpcProvider: (config: Config) => boolean;
|
|
5
|
+
export declare const getJsonRpcProviderConfig: (config: Config) => readonly [string, number];
|
|
6
6
|
//# sourceMappingURL=initJsonRpcProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initJsonRpcProvider.d.ts","sourceRoot":"","sources":["../../../src/evm/initJsonRpcProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAIlD,eAAO,MAAM,mBAAmB,GAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"initJsonRpcProvider.d.ts","sourceRoot":"","sources":["../../../src/evm/initJsonRpcProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAIlD,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,6BAGjD,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,YAGnD,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,8BAGtD,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -400,13 +400,6 @@ async function createProducerChainStakeIntentBlock(prevBlock, producerAccount, r
|
|
|
400
400
|
}
|
|
401
401
|
__name(createProducerChainStakeIntentBlock, "createProducerChainStakeIntentBlock");
|
|
402
402
|
|
|
403
|
-
// src/evm/initEvmProvider.ts
|
|
404
|
-
import { assertEx as assertEx9 } from "@xylabs/sdk-js";
|
|
405
|
-
|
|
406
|
-
// src/evm/initInfuraProvider.ts
|
|
407
|
-
import { assertEx as assertEx7, isDefined as isDefined2 } from "@xylabs/sdk-js";
|
|
408
|
-
import { InfuraProvider } from "ethers/providers";
|
|
409
|
-
|
|
410
403
|
// src/evm/initChainId.ts
|
|
411
404
|
import { assertEx as assertEx6, hexFrom, isDefined, isHex } from "@xylabs/sdk-js";
|
|
412
405
|
var canUseChainId = /* @__PURE__ */ __name((config) => {
|
|
@@ -426,12 +419,17 @@ var getChainId = /* @__PURE__ */ __name((config) => {
|
|
|
426
419
|
}
|
|
427
420
|
}, "getChainId");
|
|
428
421
|
|
|
422
|
+
// src/evm/initEvmProvider.ts
|
|
423
|
+
import { assertEx as assertEx9 } from "@xylabs/sdk-js";
|
|
424
|
+
|
|
429
425
|
// src/evm/initInfuraProvider.ts
|
|
426
|
+
import { assertEx as assertEx7, isDefined as isDefined2 } from "@xylabs/sdk-js";
|
|
427
|
+
import { InfuraProvider } from "ethers/providers";
|
|
430
428
|
var instance;
|
|
431
429
|
var initInfuraProvider = /* @__PURE__ */ __name((config) => {
|
|
432
430
|
if (instance) return instance;
|
|
433
431
|
const providerConfig = getInfuraProviderConfig(config);
|
|
434
|
-
instance = Promise.resolve(new InfuraProvider(
|
|
432
|
+
instance = Promise.resolve(new InfuraProvider(providerConfig[0], providerConfig[1]));
|
|
435
433
|
return instance;
|
|
436
434
|
}, "initInfuraProvider");
|
|
437
435
|
var canUseInfuraProvider = /* @__PURE__ */ __name((config) => {
|
|
@@ -532,7 +530,7 @@ var createHealthServer = /* @__PURE__ */ __name((port, statusMonitor, logger) =>
|
|
|
532
530
|
}, "createHealthServer");
|
|
533
531
|
var initHealthEndpoints = /* @__PURE__ */ __name((params) => {
|
|
534
532
|
const { config, logger, statusReporter } = params;
|
|
535
|
-
const { healthCheckPort } = config.producer;
|
|
533
|
+
const { healthCheckPort } = config.actors.producer;
|
|
536
534
|
return isDefined4(healthCheckPort) ? createHealthServer(healthCheckPort, statusReporter, logger) : void 0;
|
|
537
535
|
}, "initHealthEndpoints");
|
|
538
536
|
|
|
@@ -640,56 +638,89 @@ var initBridgedArchivistModule = /* @__PURE__ */ __name(async ({ bridge, moduleN
|
|
|
640
638
|
})), () => `Could not convert ${moduleName} to attachable archivist instance`);
|
|
641
639
|
}, "initBridgedArchivistModule");
|
|
642
640
|
|
|
643
|
-
// src/init/
|
|
644
|
-
import {
|
|
645
|
-
import { EvmStakeEventsViewer, EvmStakeViewer } from "@xyo-network/chain-
|
|
646
|
-
import {
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
const provider2 = await initEvmProvider({
|
|
650
|
-
config,
|
|
651
|
-
logger
|
|
652
|
-
});
|
|
653
|
-
const contractAddress = assertEx12(config.chain.id, () => "Missing config.evm.chainId");
|
|
654
|
-
const contract = IStakedXyoChain__factory.connect(toEthAddress(contractAddress), provider2);
|
|
655
|
-
const stakeEventsViewer = await EvmStakeEventsViewer.create({
|
|
656
|
-
contract,
|
|
657
|
-
logger,
|
|
658
|
-
context
|
|
659
|
-
});
|
|
660
|
-
assertEx12(await stakeEventsViewer.start(), () => "Failed to start EvmStakeEvents reader");
|
|
661
|
-
const stakeChainViewer = await EvmStakeViewer.create({
|
|
662
|
-
contract,
|
|
663
|
-
stakeEventsViewer,
|
|
664
|
-
logger,
|
|
665
|
-
context
|
|
666
|
-
});
|
|
667
|
-
assertEx12(await stakeChainViewer.start(), () => "Failed to start EvmStake viewer");
|
|
668
|
-
return stakeChainViewer;
|
|
669
|
-
}
|
|
670
|
-
__name(initEvmChainStakeViewer, "initEvmChainStakeViewer");
|
|
671
|
-
async function initSimpleStakeViewer(context, config, logger) {
|
|
672
|
-
const stakeViewer = await SimpleStakeViewer.create({
|
|
673
|
-
context,
|
|
674
|
-
chainId: asAddress(toAddress(1n), true),
|
|
675
|
-
logger,
|
|
676
|
-
positions: []
|
|
677
|
-
});
|
|
678
|
-
assertEx12(await stakeViewer.start(), () => "Failed to start SimpleChainStake viewer");
|
|
679
|
-
return stakeViewer;
|
|
680
|
-
}
|
|
681
|
-
__name(initSimpleStakeViewer, "initSimpleStakeViewer");
|
|
682
|
-
async function initStakeViewer({ config, logger, context }) {
|
|
641
|
+
// src/init/initEvmProvidersIfAvailable.ts
|
|
642
|
+
import { asEthAddress, assertEx as assertEx12 } from "@xylabs/sdk-js";
|
|
643
|
+
import { EvmChainContractViewer, EvmStakeEventsViewer, EvmStakeTotalsViewer, EvmStakeViewer } from "@xyo-network/chain-ethereum";
|
|
644
|
+
import { SimpleChainContractViewer, SimpleStakeEventsViewer, SimpleStakeTotalsViewer, SimpleStakeViewer, SimpleTimeSyncViewer, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-sdk";
|
|
645
|
+
async function initEvmProvidersIfAvailable(locator) {
|
|
646
|
+
const { config, logger } = locator.context;
|
|
683
647
|
if (canUseEvmProvider({
|
|
684
648
|
config
|
|
685
649
|
})) {
|
|
686
|
-
|
|
650
|
+
const chainId = assertEx12(config.chain.id, () => "Missing config.chain.chainId (required for EVM providers)");
|
|
651
|
+
const provider2 = await initEvmProvider({
|
|
652
|
+
config,
|
|
653
|
+
logger
|
|
654
|
+
});
|
|
655
|
+
const address = asEthAddress(chainId, true);
|
|
656
|
+
locator.register(EvmStakeEventsViewer.factory(EvmStakeEventsViewer.dependencies, {
|
|
657
|
+
address,
|
|
658
|
+
provider: provider2
|
|
659
|
+
}));
|
|
660
|
+
locator.register(EvmStakeViewer.factory(EvmStakeViewer.dependencies, {
|
|
661
|
+
address,
|
|
662
|
+
provider: provider2
|
|
663
|
+
}));
|
|
664
|
+
locator.register(EvmStakeTotalsViewer.factory(EvmStakeTotalsViewer.dependencies, {
|
|
665
|
+
address,
|
|
666
|
+
provider: provider2
|
|
667
|
+
}));
|
|
668
|
+
locator.register(EvmChainContractViewer.factory(EvmChainContractViewer.dependencies, {
|
|
669
|
+
address,
|
|
670
|
+
provider: provider2
|
|
671
|
+
}));
|
|
672
|
+
locator.register(SimpleTimeSyncViewer.factory(SimpleTimeSyncViewer.dependencies, {
|
|
673
|
+
ethProvider: provider2
|
|
674
|
+
}));
|
|
687
675
|
} else {
|
|
688
|
-
|
|
689
|
-
|
|
676
|
+
logger?.warn("EVM provider not available - running with memory based contract/stake viewers");
|
|
677
|
+
const positions = [];
|
|
678
|
+
const chainId = assertEx12(config.chain.id, () => "Missing config.chain.chainId (required for non-EVM providers)");
|
|
679
|
+
locator.register(SimpleStakeEventsViewer.factory(SimpleStakeEventsViewer.dependencies, {
|
|
680
|
+
positions
|
|
681
|
+
}));
|
|
682
|
+
locator.register(SimpleStakeViewer.factory(SimpleStakeViewer.dependencies, {
|
|
683
|
+
positions
|
|
684
|
+
}));
|
|
685
|
+
locator.register(SimpleStakeTotalsViewer.factory(SimpleStakeTotalsViewer.dependencies, {}));
|
|
686
|
+
locator.register(SimpleChainContractViewer.factory(SimpleChainContractViewer.dependencies, {
|
|
687
|
+
chainId,
|
|
688
|
+
minWithdrawalBlocks: 10,
|
|
689
|
+
stakingTokenAddress: XYO_ZERO_ADDRESS,
|
|
690
|
+
rewardsContract: XYO_ZERO_ADDRESS
|
|
691
|
+
}));
|
|
692
|
+
locator.register(SimpleTimeSyncViewer.factory(SimpleTimeSyncViewer.dependencies, {}));
|
|
693
|
+
}
|
|
694
|
+
return locator;
|
|
695
|
+
}
|
|
696
|
+
__name(initEvmProvidersIfAvailable, "initEvmProvidersIfAvailable");
|
|
697
|
+
|
|
698
|
+
// src/init/initFinalizationArchivistIfNeeded.ts
|
|
699
|
+
import { assertEx as assertEx13 } from "@xylabs/sdk-js";
|
|
700
|
+
import { Account } from "@xyo-network/account";
|
|
701
|
+
import { createBootstrapHead } from "@xyo-network/chain-sdk";
|
|
702
|
+
import { asAttoXL1, findMostRecentBlock, flattenHydratedBlock } from "@xyo-network/xl1-sdk";
|
|
703
|
+
async function initFinalizationArchivistIfNeeded(archivist, config, account) {
|
|
704
|
+
const configuredChainId = config.chain.id;
|
|
705
|
+
const possibleHead = await findMostRecentBlock(archivist);
|
|
706
|
+
if (configuredChainId && possibleHead && possibleHead.chain !== configuredChainId) {
|
|
707
|
+
throw new Error(`Configured chain ID (${configuredChainId}) does not match the existing chain ID (${possibleHead.chain})`);
|
|
708
|
+
}
|
|
709
|
+
let possibleChainId = configuredChainId;
|
|
710
|
+
if (!possibleHead) {
|
|
711
|
+
possibleChainId = possibleChainId ?? (await Account.random()).address;
|
|
712
|
+
const chain = await createBootstrapHead(account, possibleChainId, asAttoXL1(20000000000000000000000n), config.chain.genesisRewardAddress ?? account.address);
|
|
713
|
+
const payloads = chain.flatMap((block) => flattenHydratedBlock(block));
|
|
714
|
+
await archivist.insert(payloads);
|
|
690
715
|
}
|
|
716
|
+
const head = possibleHead ?? assertEx13(await findMostRecentBlock(archivist), () => "No blocks found in chain archivist");
|
|
717
|
+
const chainId = assertEx13(possibleChainId, () => "Chain ID could not be determined");
|
|
718
|
+
return [
|
|
719
|
+
head,
|
|
720
|
+
chainId
|
|
721
|
+
];
|
|
691
722
|
}
|
|
692
|
-
__name(
|
|
723
|
+
__name(initFinalizationArchivistIfNeeded, "initFinalizationArchivistIfNeeded");
|
|
693
724
|
|
|
694
725
|
// src/init/initFinalizedArchivist.ts
|
|
695
726
|
import { MongoDBArchivistV2 } from "@xyo-network/archivist-mongodb";
|
|
@@ -716,7 +747,7 @@ import { ADDRESS_INDEX, generateXyoBaseWalletFromPhrase } from "@xyo-network/xl1
|
|
|
716
747
|
var accountServiceSingleton;
|
|
717
748
|
var initProducerAccount = /* @__PURE__ */ __name(async ({ config, logger }) => {
|
|
718
749
|
if (accountServiceSingleton) return accountServiceSingleton;
|
|
719
|
-
let walletPhrase = config.producer.mnemonic;
|
|
750
|
+
let walletPhrase = config.actors.producer.mnemonic;
|
|
720
751
|
if (isUndefined(walletPhrase)) {
|
|
721
752
|
logger?.warn("[Producer] No wallet mnemonic specified!");
|
|
722
753
|
const randomMnemonic = HDWallet.generateMnemonic();
|
|
@@ -734,12 +765,12 @@ ${randomMnemonic}
|
|
|
734
765
|
}, "initProducerAccount");
|
|
735
766
|
|
|
736
767
|
// src/init/initSeedPhrase.ts
|
|
737
|
-
import { assertEx as
|
|
768
|
+
import { assertEx as assertEx14, isString } from "@xylabs/sdk-js";
|
|
738
769
|
import { HDWallet as HDWallet2 } from "@xyo-network/wallet";
|
|
739
770
|
async function initSeedPhrase({ config, logger, bios }) {
|
|
740
771
|
const storedSeedPhrase = await bios.seedPhraseStore.get("os");
|
|
741
772
|
logger?.debug(`[API] Stored mnemonic: ${storedSeedPhrase}`);
|
|
742
|
-
const { mnemonic } = config.api;
|
|
773
|
+
const { mnemonic } = config.actors.api;
|
|
743
774
|
if (isString(storedSeedPhrase) && isString(mnemonic)) {
|
|
744
775
|
logger?.warn("[API] Stored mnemonic does not match supplied. Updating stored mnemonic to supplied.");
|
|
745
776
|
await bios.seedPhraseStore.set("os", mnemonic);
|
|
@@ -754,12 +785,12 @@ async function initSeedPhrase({ config, logger, bios }) {
|
|
|
754
785
|
}
|
|
755
786
|
await bios.seedPhraseStore.set("os", seedPhrase);
|
|
756
787
|
}
|
|
757
|
-
return
|
|
788
|
+
return assertEx14(await bios.seedPhraseStore.get("os"), () => "Unable to acquire mnemonic from bios");
|
|
758
789
|
}
|
|
759
790
|
__name(initSeedPhrase, "initSeedPhrase");
|
|
760
791
|
|
|
761
792
|
// src/init/initServerNode.ts
|
|
762
|
-
import { assertEx as
|
|
793
|
+
import { assertEx as assertEx15 } from "@xylabs/sdk-js";
|
|
763
794
|
import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
764
795
|
|
|
765
796
|
// src/manifest/getLocator.ts
|
|
@@ -995,7 +1026,7 @@ async function writableChainArchivistFromNode(node) {
|
|
|
995
1026
|
}
|
|
996
1027
|
__name(writableChainArchivistFromNode, "writableChainArchivistFromNode");
|
|
997
1028
|
async function readonlyChainArchivistFromNode(node) {
|
|
998
|
-
return
|
|
1029
|
+
return assertEx15(asArchivistInstance(await node.resolve("Chain:Validated"), {
|
|
999
1030
|
required: true
|
|
1000
1031
|
}));
|
|
1001
1032
|
}
|
|
@@ -1020,7 +1051,7 @@ async function initServerNode({ wallet, logger, config, node: providedNode, tran
|
|
|
1020
1051
|
transfersSummaryMap,
|
|
1021
1052
|
balancesSummaryMap
|
|
1022
1053
|
});
|
|
1023
|
-
|
|
1054
|
+
assertEx15(await node.start(), () => "Failed to start node");
|
|
1024
1055
|
const writableChainArchivist = await writableChainArchivistFromNode(node);
|
|
1025
1056
|
const readonlyChainArchivist = await readonlyChainArchivistFromNode(node);
|
|
1026
1057
|
const pendingTransactionsArchivist = await pendingTransactionsArchivistFromNode(node);
|
|
@@ -1056,7 +1087,7 @@ __name(initStatusReporter, "initStatusReporter");
|
|
|
1056
1087
|
|
|
1057
1088
|
// src/init/initTransferSummaryMap.ts
|
|
1058
1089
|
import { BaseMongoSdk as BaseMongoSdk2 } from "@xylabs/mongo";
|
|
1059
|
-
import { assertEx as
|
|
1090
|
+
import { assertEx as assertEx16 } from "@xylabs/sdk-js";
|
|
1060
1091
|
import { MongoMap as MongoMap2 } from "@xyo-network/chain-protocol";
|
|
1061
1092
|
import { hasMongoConfig as hasMongoConfig3, MemoryMap as MemoryMap2 } from "@xyo-network/xl1-sdk";
|
|
1062
1093
|
async function initTransferSummaryMap({ config, logger }) {
|
|
@@ -1081,7 +1112,7 @@ async function initTransferSummaryMap({ config, logger }) {
|
|
|
1081
1112
|
maxEntries: 5e3
|
|
1082
1113
|
}
|
|
1083
1114
|
});
|
|
1084
|
-
|
|
1115
|
+
assertEx16(await result.start(), () => "Failed to start transfer summary map");
|
|
1085
1116
|
return result;
|
|
1086
1117
|
} else {
|
|
1087
1118
|
logger?.warn("[API] Mongo configuration not found. Using MemoryMap for TransferSummaryMap.");
|
|
@@ -1105,7 +1136,7 @@ async function initWallet({ config, logger }, mnemonic) {
|
|
|
1105
1136
|
}
|
|
1106
1137
|
__name(initWallet, "initWallet");
|
|
1107
1138
|
async function initApiWallet({ config, logger }) {
|
|
1108
|
-
const { mnemonic } = config.api;
|
|
1139
|
+
const { mnemonic } = config.actors.api;
|
|
1109
1140
|
return await initWallet({
|
|
1110
1141
|
config,
|
|
1111
1142
|
logger
|
|
@@ -1113,7 +1144,7 @@ async function initApiWallet({ config, logger }) {
|
|
|
1113
1144
|
}
|
|
1114
1145
|
__name(initApiWallet, "initApiWallet");
|
|
1115
1146
|
async function initMempoolWallet({ config, logger }) {
|
|
1116
|
-
const { mnemonic } = config.mempool;
|
|
1147
|
+
const { mnemonic } = config.actors.mempool;
|
|
1117
1148
|
return await initWallet({
|
|
1118
1149
|
config,
|
|
1119
1150
|
logger
|
|
@@ -1121,7 +1152,7 @@ async function initMempoolWallet({ config, logger }) {
|
|
|
1121
1152
|
}
|
|
1122
1153
|
__name(initMempoolWallet, "initMempoolWallet");
|
|
1123
1154
|
async function initProducerWallet({ config, logger }) {
|
|
1124
|
-
const { mnemonic } = config.producer;
|
|
1155
|
+
const { mnemonic } = config.actors.producer;
|
|
1125
1156
|
return await initWallet({
|
|
1126
1157
|
config,
|
|
1127
1158
|
logger
|
|
@@ -1129,7 +1160,7 @@ async function initProducerWallet({ config, logger }) {
|
|
|
1129
1160
|
}
|
|
1130
1161
|
__name(initProducerWallet, "initProducerWallet");
|
|
1131
1162
|
async function initRewardsRedemptionApiWallet({ config, logger }) {
|
|
1132
|
-
const { mnemonic } = config.
|
|
1163
|
+
const { mnemonic } = config.actors.rewardRedemption;
|
|
1133
1164
|
return await initWallet({
|
|
1134
1165
|
config,
|
|
1135
1166
|
logger
|
|
@@ -1213,18 +1244,27 @@ export {
|
|
|
1213
1244
|
ServiceLifetime,
|
|
1214
1245
|
ValidatorActor,
|
|
1215
1246
|
buildTelemetryConfig,
|
|
1247
|
+
canUseChainId,
|
|
1216
1248
|
canUseEvmProvider,
|
|
1249
|
+
canUseInfuraProvider,
|
|
1250
|
+
canUseJsonRpcProvider,
|
|
1217
1251
|
createProducerChainStakeIntentBlock,
|
|
1252
|
+
getChainId,
|
|
1253
|
+
getInfuraProviderConfig,
|
|
1254
|
+
getJsonRpcProviderConfig,
|
|
1218
1255
|
getLocator,
|
|
1219
1256
|
initApiWallet,
|
|
1220
1257
|
initBalanceSummaryMap,
|
|
1221
1258
|
initBridgedArchivistModule,
|
|
1222
1259
|
initBridgedModule,
|
|
1223
1260
|
initChainFinalizedArchivist,
|
|
1224
|
-
initEvmChainStakeViewer,
|
|
1225
1261
|
initEvmProvider,
|
|
1262
|
+
initEvmProvidersIfAvailable,
|
|
1263
|
+
initFinalizationArchivistIfNeeded,
|
|
1226
1264
|
initFinalizedArchivist,
|
|
1227
1265
|
initHealthEndpoints,
|
|
1266
|
+
initInfuraProvider,
|
|
1267
|
+
initJsonRpcProvider,
|
|
1228
1268
|
initMempoolWallet,
|
|
1229
1269
|
initPendingBlocksArchivist,
|
|
1230
1270
|
initProducerAccount,
|
|
@@ -1233,9 +1273,7 @@ export {
|
|
|
1233
1273
|
initRewardsRedemptionApiWallet,
|
|
1234
1274
|
initSeedPhrase,
|
|
1235
1275
|
initServerNode,
|
|
1236
|
-
initSimpleStakeViewer,
|
|
1237
1276
|
initStakeIntentStateArchivist,
|
|
1238
|
-
initStakeViewer,
|
|
1239
1277
|
initStatusReporter,
|
|
1240
1278
|
initTransferSummaryMap,
|
|
1241
1279
|
loadNode
|