@xyo-network/chain-orchestration 1.20.21 → 1.20.23
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/browser/index.mjs +304 -237
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
- package/dist/{neutral/node/config/locators/actors/validatorLocatorFromConfig.d.ts.map → browser/node/config/locators/actors/finalizerLocatorFromConfig.d.ts.map} +1 -1
- package/dist/browser/node/config/locators/actors/index.d.ts +1 -1
- package/dist/browser/node/config/locators/actors/index.d.ts.map +1 -1
- package/dist/browser/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
- package/dist/browser/node/config/locators/localLocatorFromConfig.d.ts +1 -1
- package/dist/browser/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
- package/dist/browser/node/config/locators/locatorsFromConfig.d.ts +1 -1
- package/dist/browser/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
- package/dist/browser/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
- package/dist/browser/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
- package/dist/browser/node/config/tryParseConfig.d.ts +6 -157
- package/dist/browser/node/config/tryParseConfig.d.ts.map +1 -1
- package/dist/browser/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
- package/dist/browser/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
- package/dist/{neutral/shared/actor/ValidatorActor.d.ts → browser/shared/actor/FinalizerActor.d.ts} +6 -9
- package/dist/browser/shared/actor/FinalizerActor.d.ts.map +1 -0
- package/dist/browser/shared/actor/index.d.ts +1 -1
- package/dist/browser/shared/config/actors/Api.d.ts +11 -17
- package/dist/browser/shared/config/actors/Api.d.ts.map +1 -1
- package/dist/browser/shared/config/actors/Bridge.d.ts +11 -17
- package/dist/browser/shared/config/actors/Bridge.d.ts.map +1 -1
- package/dist/browser/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +23 -29
- package/dist/browser/shared/config/actors/Finalizer.d.ts.map +1 -0
- package/dist/browser/shared/config/actors/Mempool.d.ts +11 -17
- package/dist/browser/shared/config/actors/Mempool.d.ts.map +1 -1
- package/dist/browser/shared/config/actors/Producer.d.ts +11 -17
- package/dist/browser/shared/config/actors/Producer.d.ts.map +1 -1
- package/dist/browser/shared/config/actors/RewardRedemption.d.ts +11 -17
- package/dist/browser/shared/config/actors/RewardRedemption.d.ts.map +1 -1
- package/dist/browser/shared/config/actors/index.d.ts +1 -1
- package/dist/browser/shared/config/actors/index.d.ts.map +1 -1
- package/dist/browser/shared/config/mergeConfig.d.ts +1 -1
- package/dist/browser/shared/index.d.ts +1 -0
- package/dist/browser/shared/index.d.ts.map +1 -1
- package/dist/browser/shared/init/initActorSeedPhrase.d.ts.map +1 -1
- package/dist/browser/shared/init/initWallet.d.ts +1 -1
- package/dist/browser/shared/init/initWallet.d.ts.map +1 -1
- package/dist/browser/shared/init/walletResolution.d.ts +41 -10
- package/dist/browser/shared/init/walletResolution.d.ts.map +1 -1
- package/dist/browser/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
- package/dist/browser/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
- package/dist/browser/shared/provider/index.d.ts +2 -0
- package/dist/browser/shared/provider/index.d.ts.map +1 -0
- package/dist/neutral/index.mjs +304 -237
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
- package/dist/{browser/node/config/locators/actors/validatorLocatorFromConfig.d.ts.map → neutral/node/config/locators/actors/finalizerLocatorFromConfig.d.ts.map} +1 -1
- package/dist/neutral/node/config/locators/actors/index.d.ts +1 -1
- package/dist/neutral/node/config/locators/actors/index.d.ts.map +1 -1
- package/dist/neutral/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
- package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts +1 -1
- package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
- package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts +1 -1
- package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
- package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
- package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
- package/dist/neutral/node/config/tryParseConfig.d.ts +6 -157
- package/dist/neutral/node/config/tryParseConfig.d.ts.map +1 -1
- package/dist/neutral/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
- package/dist/neutral/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
- package/dist/{node/shared/actor/ValidatorActor.d.ts → neutral/shared/actor/FinalizerActor.d.ts} +6 -9
- package/dist/neutral/shared/actor/FinalizerActor.d.ts.map +1 -0
- package/dist/neutral/shared/actor/index.d.ts +1 -1
- package/dist/neutral/shared/config/actors/Api.d.ts +11 -17
- package/dist/neutral/shared/config/actors/Api.d.ts.map +1 -1
- package/dist/neutral/shared/config/actors/Bridge.d.ts +11 -17
- package/dist/neutral/shared/config/actors/Bridge.d.ts.map +1 -1
- package/dist/neutral/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +23 -29
- package/dist/neutral/shared/config/actors/Finalizer.d.ts.map +1 -0
- package/dist/neutral/shared/config/actors/Mempool.d.ts +11 -17
- package/dist/neutral/shared/config/actors/Mempool.d.ts.map +1 -1
- package/dist/neutral/shared/config/actors/Producer.d.ts +11 -17
- package/dist/neutral/shared/config/actors/Producer.d.ts.map +1 -1
- package/dist/neutral/shared/config/actors/RewardRedemption.d.ts +11 -17
- package/dist/neutral/shared/config/actors/RewardRedemption.d.ts.map +1 -1
- package/dist/neutral/shared/config/actors/index.d.ts +1 -1
- package/dist/neutral/shared/config/actors/index.d.ts.map +1 -1
- package/dist/neutral/shared/config/mergeConfig.d.ts +1 -1
- package/dist/neutral/shared/index.d.ts +1 -0
- package/dist/neutral/shared/index.d.ts.map +1 -1
- package/dist/neutral/shared/init/initActorSeedPhrase.d.ts.map +1 -1
- package/dist/neutral/shared/init/initWallet.d.ts +1 -1
- package/dist/neutral/shared/init/initWallet.d.ts.map +1 -1
- package/dist/neutral/shared/init/walletResolution.d.ts +41 -10
- package/dist/neutral/shared/init/walletResolution.d.ts.map +1 -1
- package/dist/neutral/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
- package/dist/neutral/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
- package/dist/neutral/shared/provider/index.d.ts +2 -0
- package/dist/neutral/shared/provider/index.d.ts.map +1 -0
- package/dist/node/index.mjs +400 -286
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
- package/dist/node/node/config/locators/actors/{validatorLocatorFromConfig.d.ts.map → finalizerLocatorFromConfig.d.ts.map} +1 -1
- package/dist/node/node/config/locators/actors/index.d.ts +1 -1
- package/dist/node/node/config/locators/actors/index.d.ts.map +1 -1
- package/dist/node/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
- package/dist/node/node/config/locators/localLocatorFromConfig.d.ts +1 -1
- package/dist/node/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
- package/dist/node/node/config/locators/locatorsFromConfig.d.ts +1 -1
- package/dist/node/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
- package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
- package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
- package/dist/node/node/config/tryParseConfig.d.ts +6 -157
- package/dist/node/node/config/tryParseConfig.d.ts.map +1 -1
- package/dist/node/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
- package/dist/node/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
- package/dist/{browser/shared/actor/ValidatorActor.d.ts → node/shared/actor/FinalizerActor.d.ts} +6 -9
- package/dist/node/shared/actor/FinalizerActor.d.ts.map +1 -0
- package/dist/node/shared/actor/index.d.ts +1 -1
- package/dist/node/shared/config/actors/Api.d.ts +11 -17
- package/dist/node/shared/config/actors/Api.d.ts.map +1 -1
- package/dist/node/shared/config/actors/Bridge.d.ts +11 -17
- package/dist/node/shared/config/actors/Bridge.d.ts.map +1 -1
- package/dist/node/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +23 -29
- package/dist/node/shared/config/actors/Finalizer.d.ts.map +1 -0
- package/dist/node/shared/config/actors/Mempool.d.ts +11 -17
- package/dist/node/shared/config/actors/Mempool.d.ts.map +1 -1
- package/dist/node/shared/config/actors/Producer.d.ts +11 -17
- package/dist/node/shared/config/actors/Producer.d.ts.map +1 -1
- package/dist/node/shared/config/actors/RewardRedemption.d.ts +11 -17
- package/dist/node/shared/config/actors/RewardRedemption.d.ts.map +1 -1
- package/dist/node/shared/config/actors/index.d.ts +1 -1
- package/dist/node/shared/config/actors/index.d.ts.map +1 -1
- package/dist/node/shared/config/mergeConfig.d.ts +1 -1
- package/dist/node/shared/index.d.ts +1 -0
- package/dist/node/shared/index.d.ts.map +1 -1
- package/dist/node/shared/init/initActorSeedPhrase.d.ts.map +1 -1
- package/dist/node/shared/init/initWallet.d.ts +1 -1
- package/dist/node/shared/init/initWallet.d.ts.map +1 -1
- package/dist/node/shared/init/walletResolution.d.ts +41 -10
- package/dist/node/shared/init/walletResolution.d.ts.map +1 -1
- package/dist/node/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
- package/dist/node/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
- package/dist/node/shared/provider/index.d.ts +2 -0
- package/dist/node/shared/provider/index.d.ts.map +1 -0
- package/package.json +21 -21
- package/dist/browser/shared/actor/ValidatorActor.d.ts.map +0 -1
- package/dist/browser/shared/config/actors/Validator.d.ts.map +0 -1
- package/dist/browser/shared/config/actors/accountIndex.d.ts +0 -3
- package/dist/browser/shared/config/actors/accountIndex.d.ts.map +0 -1
- package/dist/neutral/shared/actor/ValidatorActor.d.ts.map +0 -1
- package/dist/neutral/shared/config/actors/Validator.d.ts.map +0 -1
- package/dist/neutral/shared/config/actors/accountIndex.d.ts +0 -3
- package/dist/neutral/shared/config/actors/accountIndex.d.ts.map +0 -1
- package/dist/node/shared/actor/ValidatorActor.d.ts.map +0 -1
- package/dist/node/shared/config/actors/Validator.d.ts.map +0 -1
- package/dist/node/shared/config/actors/accountIndex.d.ts +0 -3
- package/dist/node/shared/config/actors/accountIndex.d.ts.map +0 -1
package/dist/node/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
|
-
// src/shared/actor/
|
|
4
|
+
// src/shared/actor/FinalizerActor.ts
|
|
5
5
|
import { creatable } from "@xylabs/sdk-js";
|
|
6
6
|
import { processPendingBlocks } from "@xyo-network/chain-sdk";
|
|
7
7
|
import { ActorV3, BlockValidationViewerMoniker, BlockViewerMoniker, DeadLetterQueueRunnerMoniker, FinalizationRunnerMoniker, MempoolViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
@@ -12,16 +12,14 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
12
12
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
13
|
}
|
|
14
14
|
__name(_ts_decorate, "_ts_decorate");
|
|
15
|
-
var
|
|
15
|
+
var FinalizerActor = class extends ActorV3 {
|
|
16
16
|
static {
|
|
17
|
-
__name(this, "
|
|
17
|
+
__name(this, "FinalizerActor");
|
|
18
18
|
}
|
|
19
19
|
_blockValidationViewer;
|
|
20
20
|
_blockViewer;
|
|
21
21
|
_deadLetterQueueRunner;
|
|
22
22
|
_finalizationRunner;
|
|
23
|
-
_lastValidatedBlock;
|
|
24
|
-
_lastValidatedBlockHash;
|
|
25
23
|
_mempoolViewer;
|
|
26
24
|
get allowedProducers() {
|
|
27
25
|
return this.params.config.allowedProducers ?? [];
|
|
@@ -51,9 +49,9 @@ var ValidatorActor = class extends ActorV3 {
|
|
|
51
49
|
}
|
|
52
50
|
async startHandler() {
|
|
53
51
|
await super.startHandler();
|
|
54
|
-
this.registerTimer("
|
|
52
|
+
this.registerTimer("FinalizerActor", async () => {
|
|
55
53
|
await this.spanAsync("processPendingBlocks", async () => {
|
|
56
|
-
this.logger?.debug("
|
|
54
|
+
this.logger?.debug("FinalizerActor: Processing pending blocks...");
|
|
57
55
|
await processPendingBlocks({
|
|
58
56
|
blockValidationViewer: this.blockValidationViewer,
|
|
59
57
|
context: this.context,
|
|
@@ -72,9 +70,9 @@ var ValidatorActor = class extends ActorV3 {
|
|
|
72
70
|
}, 2e3, 500);
|
|
73
71
|
}
|
|
74
72
|
};
|
|
75
|
-
|
|
73
|
+
FinalizerActor = _ts_decorate([
|
|
76
74
|
creatable()
|
|
77
|
-
],
|
|
75
|
+
], FinalizerActor);
|
|
78
76
|
|
|
79
77
|
// src/shared/buildTelemetryConfig.ts
|
|
80
78
|
function buildTelemetryConfig(config, serviceName, serviceVersion, defaultMetricsScrapePort = 9464) {
|
|
@@ -98,24 +96,13 @@ __name(buildTelemetryConfig, "buildTelemetryConfig");
|
|
|
98
96
|
// src/shared/config/actors/Api.ts
|
|
99
97
|
import { zodAsFactory, zodIsFactory, zodToFactory } from "@xylabs/sdk-js";
|
|
100
98
|
import { BaseConfigContextZod, HostActorConfigZod } from "@xyo-network/xl1-sdk";
|
|
101
|
-
import { globalRegistry as globalRegistry2, z as z2 } from "zod";
|
|
102
|
-
|
|
103
|
-
// src/shared/config/actors/accountIndex.ts
|
|
104
99
|
import { globalRegistry, z } from "zod";
|
|
105
|
-
var
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// src/shared/config/actors/Api.ts
|
|
112
|
-
var ApiConfigZod = HostActorConfigZod.extend(z2.object({
|
|
113
|
-
accountIndex: ActorAccountIndexZod("api.accountIndex"),
|
|
114
|
-
initRewardsCache: z2.union([
|
|
115
|
-
z2.number(),
|
|
116
|
-
z2.string(),
|
|
117
|
-
z2.boolean()
|
|
118
|
-
]).transform((v) => v !== "0" && v !== "false" && v !== false && v != 0).default(true).register(globalRegistry2, {
|
|
100
|
+
var ApiConfigZod = HostActorConfigZod.extend(z.object({
|
|
101
|
+
initRewardsCache: z.union([
|
|
102
|
+
z.number(),
|
|
103
|
+
z.string(),
|
|
104
|
+
z.boolean()
|
|
105
|
+
]).transform((v) => v !== "0" && v !== "false" && v !== false && v != 0).default(true).register(globalRegistry, {
|
|
119
106
|
description: "Whether to initialize the rewards cache on startup",
|
|
120
107
|
title: "api.initRewardsCache",
|
|
121
108
|
type: "boolean"
|
|
@@ -134,7 +121,7 @@ var toApiConfigContext = zodToFactory(ApiConfigContext, "toApiConfigContext");
|
|
|
134
121
|
// src/shared/config/actors/Bridge.ts
|
|
135
122
|
import { AddressZod, HexZod, toAddress, toHex, zodAsFactory as zodAsFactory2, zodIsFactory as zodIsFactory2, zodToFactory as zodToFactory2 } from "@xylabs/sdk-js";
|
|
136
123
|
import { AttoXL1ConvertFactor, BaseConfigContextZod as BaseConfigContextZod2, HostActorConfigZod as HostActorConfigZod2, XL1 } from "@xyo-network/xl1-sdk";
|
|
137
|
-
import { globalRegistry as
|
|
124
|
+
import { globalRegistry as globalRegistry2, z as z2 } from "zod";
|
|
138
125
|
var DEFAULT_FIXED_FEE = toHex(XL1(1000n) * AttoXL1ConvertFactor.xl1);
|
|
139
126
|
var DEFAULT_VARIABLE_FEE_BASIS_POINTS = 300;
|
|
140
127
|
var DEFAULT_HARDHAT_BRIDGE_CONTRACT = toAddress("2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6");
|
|
@@ -143,84 +130,83 @@ var DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY = toHex("0xac0974bec39a17e36
|
|
|
143
130
|
var DEFAULT_HARDHAT_TOKEN_CONTRACT = toAddress("5FbDB2315678afecb367f032d93F642f64180aa3");
|
|
144
131
|
var DEFAULT_MAX_BRIDGE_AMOUNT = toHex(XL1(1000000n) * AttoXL1ConvertFactor.xl1);
|
|
145
132
|
var DEFAULT_MIN_BRIDGE_AMOUNT = toHex(XL1(1500n) * AttoXL1ConvertFactor.xl1);
|
|
146
|
-
var BasisPointsZod =
|
|
133
|
+
var BasisPointsZod = z2.coerce.number().int().nonnegative().max(1e4);
|
|
147
134
|
var BridgeConfigZod = HostActorConfigZod2.extend({
|
|
148
|
-
|
|
149
|
-
escrowAddress: AddressZod.optional().register(globalRegistry3, {
|
|
135
|
+
escrowAddress: AddressZod.optional().register(globalRegistry2, {
|
|
150
136
|
description: "Address to which bridge escrow will be sent",
|
|
151
137
|
title: "bridge.escrowAddress",
|
|
152
138
|
type: "string"
|
|
153
139
|
}),
|
|
154
|
-
feesAddress: AddressZod.optional().register(
|
|
140
|
+
feesAddress: AddressZod.optional().register(globalRegistry2, {
|
|
155
141
|
description: "Address to which bridge fees will be sent",
|
|
156
142
|
title: "bridge.feesAddress",
|
|
157
143
|
type: "string"
|
|
158
144
|
}),
|
|
159
|
-
feeFixed: HexZod.default(DEFAULT_FIXED_FEE).register(
|
|
145
|
+
feeFixed: HexZod.default(DEFAULT_FIXED_FEE).register(globalRegistry2, {
|
|
160
146
|
default: DEFAULT_FIXED_FEE,
|
|
161
147
|
description: "Fixed fee (in AttoXL1) applied to bridge transfers",
|
|
162
148
|
title: "bridge.feeFixed",
|
|
163
149
|
type: "bigint"
|
|
164
150
|
}),
|
|
165
|
-
feeRateBasisPoints: BasisPointsZod.default(DEFAULT_VARIABLE_FEE_BASIS_POINTS).register(
|
|
151
|
+
feeRateBasisPoints: BasisPointsZod.default(DEFAULT_VARIABLE_FEE_BASIS_POINTS).register(globalRegistry2, {
|
|
166
152
|
default: DEFAULT_VARIABLE_FEE_BASIS_POINTS,
|
|
167
153
|
description: "Variable rate fee (in basis points where 1 bps = 0.01%) applied to bridge transfers",
|
|
168
154
|
title: "bridge.feeRateBasisPoints",
|
|
169
155
|
type: "number"
|
|
170
156
|
}),
|
|
171
|
-
maxBridgeAmount: HexZod.default(DEFAULT_MAX_BRIDGE_AMOUNT).register(
|
|
157
|
+
maxBridgeAmount: HexZod.default(DEFAULT_MAX_BRIDGE_AMOUNT).register(globalRegistry2, {
|
|
172
158
|
default: DEFAULT_MAX_BRIDGE_AMOUNT,
|
|
173
159
|
description: "Maximum amount allowed for a bridge transfer",
|
|
174
160
|
title: "bridge.maxBridgeAmount",
|
|
175
161
|
type: "string"
|
|
176
162
|
}),
|
|
177
|
-
minBridgeAmount: HexZod.default(DEFAULT_MIN_BRIDGE_AMOUNT).register(
|
|
163
|
+
minBridgeAmount: HexZod.default(DEFAULT_MIN_BRIDGE_AMOUNT).register(globalRegistry2, {
|
|
178
164
|
default: DEFAULT_MIN_BRIDGE_AMOUNT,
|
|
179
165
|
description: "Minimum amount required for a bridge transfer",
|
|
180
166
|
title: "bridge.minBridgeAmount",
|
|
181
167
|
type: "string"
|
|
182
168
|
}),
|
|
183
|
-
redisHost:
|
|
169
|
+
redisHost: z2.string().default("localhost").register(globalRegistry2, {
|
|
184
170
|
default: "localhost",
|
|
185
171
|
description: "Host for the Bridge Redis instance",
|
|
186
172
|
title: "bridge.redisHost",
|
|
187
173
|
type: "string"
|
|
188
174
|
}),
|
|
189
|
-
redisPort:
|
|
175
|
+
redisPort: z2.coerce.number().int().positive().default(6379).register(globalRegistry2, {
|
|
190
176
|
default: 6379,
|
|
191
177
|
description: "Port for the Bridge Redis instance",
|
|
192
178
|
title: "bridge.redisPort",
|
|
193
179
|
type: "number"
|
|
194
180
|
}),
|
|
195
|
-
remoteBridgeContractAddress: AddressZod.default(DEFAULT_HARDHAT_BRIDGE_CONTRACT).register(
|
|
181
|
+
remoteBridgeContractAddress: AddressZod.default(DEFAULT_HARDHAT_BRIDGE_CONTRACT).register(globalRegistry2, {
|
|
196
182
|
default: DEFAULT_HARDHAT_BRIDGE_CONTRACT,
|
|
197
183
|
description: "Hex representation of remote token address used for bridging",
|
|
198
184
|
title: "bridge.remoteBridgeContractAddress",
|
|
199
185
|
type: "string"
|
|
200
186
|
}),
|
|
201
|
-
remoteChainId: HexZod.default(DEFAULT_HARDHAT_CHAIN_ID).register(
|
|
187
|
+
remoteChainId: HexZod.default(DEFAULT_HARDHAT_CHAIN_ID).register(globalRegistry2, {
|
|
202
188
|
default: DEFAULT_HARDHAT_CHAIN_ID,
|
|
203
189
|
description: "Remote chain ID",
|
|
204
190
|
title: "bridge.remoteChainId",
|
|
205
191
|
type: "string"
|
|
206
192
|
}),
|
|
207
|
-
remoteTokenAddress: HexZod.default(DEFAULT_HARDHAT_TOKEN_CONTRACT).register(
|
|
193
|
+
remoteTokenAddress: HexZod.default(DEFAULT_HARDHAT_TOKEN_CONTRACT).register(globalRegistry2, {
|
|
208
194
|
default: DEFAULT_HARDHAT_TOKEN_CONTRACT,
|
|
209
195
|
description: "Hex representation of remote token address used for bridging",
|
|
210
196
|
title: "bridge.remoteTokenAddress",
|
|
211
197
|
type: "string"
|
|
212
198
|
}),
|
|
213
|
-
remoteChainWalletPrivateKey: HexZod.default(DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY).register(
|
|
199
|
+
remoteChainWalletPrivateKey: HexZod.default(DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY).register(globalRegistry2, {
|
|
214
200
|
description: "Private key for the wallet to use for the remote chain wallet",
|
|
215
201
|
title: "bridge.remoteChainWalletPrivateKey",
|
|
216
202
|
type: "string"
|
|
217
203
|
}),
|
|
218
|
-
xl1ChainId: HexZod.optional().register(
|
|
204
|
+
xl1ChainId: HexZod.optional().register(globalRegistry2, {
|
|
219
205
|
description: "XL1 chain id used for bridging",
|
|
220
206
|
title: "bridge.xl1ChainId",
|
|
221
207
|
type: "string"
|
|
222
208
|
}),
|
|
223
|
-
xl1TokenAddress: HexZod.optional().register(
|
|
209
|
+
xl1TokenAddress: HexZod.optional().register(globalRegistry2, {
|
|
224
210
|
description: "XL1 token address used for bridging",
|
|
225
211
|
title: "bridge.xl1TokenAddress",
|
|
226
212
|
type: "string"
|
|
@@ -248,14 +234,31 @@ var isBridgeConfigContext = zodIsFactory2(BridgeConfigContext);
|
|
|
248
234
|
var asBridgeConfigContext = zodAsFactory2(BridgeConfigContext, "asBridgeConfigContext");
|
|
249
235
|
var toBridgeConfigContext = zodToFactory2(BridgeConfigContext, "toBridgeConfigContext");
|
|
250
236
|
|
|
237
|
+
// src/shared/config/actors/Finalizer.ts
|
|
238
|
+
import { AddressZod as AddressZod2, zodAsFactory as zodAsFactory3, zodIsFactory as zodIsFactory3, zodToFactory as zodToFactory3 } from "@xylabs/sdk-js";
|
|
239
|
+
import { BaseConfigContextZod as BaseConfigContextZod3, DEFAULT_MIN_CANDIDATES, HostActorConfigZod as HostActorConfigZod3 } from "@xyo-network/xl1-sdk";
|
|
240
|
+
import { z as z3 } from "zod";
|
|
241
|
+
var FinalizerConfigZod = HostActorConfigZod3.extend({
|
|
242
|
+
allowedProducers: z3.array(AddressZod2).optional(),
|
|
243
|
+
minCandidates: z3.number().int().min(0).default(DEFAULT_MIN_CANDIDATES)
|
|
244
|
+
});
|
|
245
|
+
var isFinalizerConfig = zodIsFactory3(FinalizerConfigZod);
|
|
246
|
+
var asFinalizerConfig = zodAsFactory3(FinalizerConfigZod, "asFinalizerConfig");
|
|
247
|
+
var toFinalizerConfig = zodToFactory3(FinalizerConfigZod, "toFinalizerConfig");
|
|
248
|
+
var FinalizerConfigContext = BaseConfigContextZod3.extend({
|
|
249
|
+
config: FinalizerConfigZod
|
|
250
|
+
});
|
|
251
|
+
var isFinalizerConfigContext = zodIsFactory3(FinalizerConfigContext);
|
|
252
|
+
var asFinalizerConfigContext = zodAsFactory3(FinalizerConfigContext, "asFinalizerConfigContext");
|
|
253
|
+
var toFinalizerConfigContext = zodToFactory3(FinalizerConfigContext, "toFinalizerConfigContext");
|
|
254
|
+
|
|
251
255
|
// src/shared/config/actors/Mempool.ts
|
|
252
|
-
import { zodAsFactory as
|
|
253
|
-
import { BaseConfigContextZod as
|
|
254
|
-
import { globalRegistry as
|
|
256
|
+
import { zodAsFactory as zodAsFactory4, zodIsFactory as zodIsFactory4, zodToFactory as zodToFactory4 } from "@xylabs/sdk-js";
|
|
257
|
+
import { BaseConfigContextZod as BaseConfigContextZod4, HostActorConfigZod as HostActorConfigZod4 } from "@xyo-network/xl1-sdk";
|
|
258
|
+
import { globalRegistry as globalRegistry3, z as z4 } from "zod";
|
|
255
259
|
var DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL = 1e3;
|
|
256
260
|
var DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL = 1e3;
|
|
257
|
-
var MempoolConfigZod =
|
|
258
|
-
accountIndex: ActorAccountIndexZod("mempool.accountIndex"),
|
|
261
|
+
var MempoolConfigZod = HostActorConfigZod4.extend({
|
|
259
262
|
enabled: z4.union([
|
|
260
263
|
z4.string(),
|
|
261
264
|
z4.boolean()
|
|
@@ -280,122 +283,100 @@ var MempoolConfigZod = HostActorConfigZod3.extend({
|
|
|
280
283
|
message: `Invalid boolean value: "${val}". Use true/false, 1/0, yes/no.`
|
|
281
284
|
});
|
|
282
285
|
return z4.NEVER;
|
|
283
|
-
}).register(
|
|
286
|
+
}).register(globalRegistry3, {
|
|
284
287
|
default: "false",
|
|
285
288
|
description: "Enable the Mempool",
|
|
286
289
|
title: "mempool.enabled",
|
|
287
290
|
type: "boolean"
|
|
288
291
|
}),
|
|
289
|
-
blockPruneInterval: z4.coerce.number().default(DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL).register(
|
|
292
|
+
blockPruneInterval: z4.coerce.number().default(DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL).register(globalRegistry3, {
|
|
290
293
|
description: "The interval time (in milliseconds) between pending block prune attempts",
|
|
291
294
|
title: "mempool.blockPruneInterval",
|
|
292
295
|
type: "number"
|
|
293
296
|
}),
|
|
294
|
-
transactionPruneInterval: z4.coerce.number().default(DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL).register(
|
|
297
|
+
transactionPruneInterval: z4.coerce.number().default(DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL).register(globalRegistry3, {
|
|
295
298
|
description: "The interval time (in milliseconds) between pending transaction prune attempts",
|
|
296
299
|
title: "mempool.transactionPruneInterval",
|
|
297
300
|
type: "number"
|
|
298
301
|
})
|
|
299
302
|
});
|
|
300
|
-
var isMempoolConfig =
|
|
301
|
-
var asMempoolConfig =
|
|
302
|
-
var toMempoolConfig =
|
|
303
|
-
var MempoolConfigContext =
|
|
303
|
+
var isMempoolConfig = zodIsFactory4(MempoolConfigZod);
|
|
304
|
+
var asMempoolConfig = zodAsFactory4(MempoolConfigZod, "asMempoolConfig");
|
|
305
|
+
var toMempoolConfig = zodToFactory4(MempoolConfigZod, "toMempoolConfig");
|
|
306
|
+
var MempoolConfigContext = BaseConfigContextZod4.extend({
|
|
304
307
|
config: MempoolConfigZod
|
|
305
308
|
});
|
|
306
|
-
var isMempoolConfigContext =
|
|
307
|
-
var asMempoolConfigContext =
|
|
308
|
-
var toMempoolConfigContext =
|
|
309
|
+
var isMempoolConfigContext = zodIsFactory4(MempoolConfigContext);
|
|
310
|
+
var asMempoolConfigContext = zodAsFactory4(MempoolConfigContext, "asMempoolConfigContext");
|
|
311
|
+
var toMempoolConfigContext = zodToFactory4(MempoolConfigContext, "toMempoolConfigContext");
|
|
309
312
|
|
|
310
313
|
// src/shared/config/actors/Producer.ts
|
|
311
|
-
import { AddressZod as
|
|
312
|
-
import { ActorConfigZod, BaseConfigContextZod as
|
|
313
|
-
import { globalRegistry as
|
|
314
|
+
import { AddressZod as AddressZod3, asAddress, zodAsFactory as zodAsFactory5, zodIsFactory as zodIsFactory5, zodToFactory as zodToFactory5 } from "@xylabs/sdk-js";
|
|
315
|
+
import { ActorConfigZod, BaseConfigContextZod as BaseConfigContextZod5 } from "@xyo-network/xl1-sdk";
|
|
316
|
+
import { globalRegistry as globalRegistry4, z as z5 } from "zod";
|
|
314
317
|
var DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL = 1e4;
|
|
315
318
|
var ProducerConfigZod = ActorConfigZod.extend(z5.object({
|
|
316
|
-
accountIndex: ActorAccountIndexZod("producer.accountIndex"),
|
|
317
319
|
allowlist: z5.preprocess((val) => {
|
|
318
320
|
if (typeof val === "string") {
|
|
319
321
|
return val.split(",").map((s) => asAddress(s.trim()));
|
|
320
322
|
}
|
|
321
323
|
return val;
|
|
322
|
-
}, z5.array(
|
|
324
|
+
}, z5.array(AddressZod3).optional().register(globalRegistry4, {
|
|
323
325
|
description: "List of allowed producer addresses, if undefined anyone can participate",
|
|
324
326
|
title: "allowlist",
|
|
325
327
|
type: "array"
|
|
326
328
|
})),
|
|
327
|
-
blockProductionCheckInterval: z5.coerce.number().default(DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL).register(
|
|
329
|
+
blockProductionCheckInterval: z5.coerce.number().default(DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL).register(globalRegistry4, {
|
|
328
330
|
description: "The interval time (in milliseconds) between block production attempts",
|
|
329
331
|
title: "producer.blockProductionCheckInterval",
|
|
330
332
|
type: "number"
|
|
331
333
|
}),
|
|
332
|
-
disableIntentRedeclaration: z5.boolean().optional().register(
|
|
334
|
+
disableIntentRedeclaration: z5.boolean().optional().register(globalRegistry4, {
|
|
333
335
|
description: "Should the producer skip redeclaring their intent to continue producing blocks",
|
|
334
336
|
title: "producer.disableIntentRedeclaration",
|
|
335
337
|
type: "boolean"
|
|
336
338
|
}),
|
|
337
|
-
heartbeatInterval: z5.coerce.number().default(36e5).register(
|
|
339
|
+
heartbeatInterval: z5.coerce.number().default(36e5).register(globalRegistry4, {
|
|
338
340
|
description: "The number of milliseconds between heartbeats if no blocks are produced",
|
|
339
341
|
title: "producer.heartbeatInterval",
|
|
340
342
|
type: "number"
|
|
341
343
|
}),
|
|
342
344
|
// TODO: BigInt schema
|
|
343
|
-
minStake: z5.coerce.number().default(1).register(
|
|
345
|
+
minStake: z5.coerce.number().default(1).register(globalRegistry4, {
|
|
344
346
|
description: "Minimum stake required to be a Producer",
|
|
345
347
|
title: "producer.minStake",
|
|
346
348
|
type: "number"
|
|
347
349
|
}),
|
|
348
350
|
// TODO: Address schema
|
|
349
|
-
rewardAddress: z5.string().optional().register(
|
|
351
|
+
rewardAddress: z5.string().optional().register(globalRegistry4, {
|
|
350
352
|
description: "Address to receive block rewards",
|
|
351
353
|
title: "producer.rewardAddress",
|
|
352
354
|
type: "string"
|
|
353
355
|
})
|
|
354
356
|
}).shape);
|
|
355
|
-
var isProducerConfig =
|
|
356
|
-
var asProducerConfig =
|
|
357
|
-
var toProducerConfig =
|
|
358
|
-
var ProducerConfigContext =
|
|
357
|
+
var isProducerConfig = zodIsFactory5(ProducerConfigZod);
|
|
358
|
+
var asProducerConfig = zodAsFactory5(ProducerConfigZod, "asProducerConfig");
|
|
359
|
+
var toProducerConfig = zodToFactory5(ProducerConfigZod, "toProducerConfig");
|
|
360
|
+
var ProducerConfigContext = BaseConfigContextZod5.extend({
|
|
359
361
|
config: ProducerConfigZod
|
|
360
362
|
});
|
|
361
|
-
var isProducerConfigContext =
|
|
362
|
-
var asProducerConfigContext =
|
|
363
|
-
var toProducerConfigContext =
|
|
363
|
+
var isProducerConfigContext = zodIsFactory5(ProducerConfigContext);
|
|
364
|
+
var asProducerConfigContext = zodAsFactory5(ProducerConfigContext, "asProducerConfigContext");
|
|
365
|
+
var toProducerConfigContext = zodToFactory5(ProducerConfigContext, "toProducerConfigContext");
|
|
364
366
|
|
|
365
367
|
// src/shared/config/actors/RewardRedemption.ts
|
|
366
|
-
import { zodAsFactory as
|
|
367
|
-
import { BaseConfigContextZod as BaseConfigContextZod5, HostActorConfigZod as HostActorConfigZod4 } from "@xyo-network/xl1-sdk";
|
|
368
|
-
var RewardRedemptionConfigZod = HostActorConfigZod4.extend({
|
|
369
|
-
accountIndex: ActorAccountIndexZod("rewardRedemption.accountIndex")
|
|
370
|
-
});
|
|
371
|
-
var isRewardRedemptionConfig = zodIsFactory5(RewardRedemptionConfigZod);
|
|
372
|
-
var asRewardRedemptionConfig = zodAsFactory5(RewardRedemptionConfigZod, "asRewardRedemptionConfig");
|
|
373
|
-
var toRewardRedemptionConfig = zodToFactory5(RewardRedemptionConfigZod, "toRewardRedemptionConfig");
|
|
374
|
-
var RewardRedemptionConfigContext = BaseConfigContextZod5.extend({
|
|
375
|
-
config: RewardRedemptionConfigZod
|
|
376
|
-
});
|
|
377
|
-
var isRewardRedemptionConfigContext = zodIsFactory5(RewardRedemptionConfigContext);
|
|
378
|
-
var asRewardRedemptionConfigContext = zodAsFactory5(RewardRedemptionConfigContext, "asRewardRedemptionConfigContext");
|
|
379
|
-
var toRewardRedemptionConfigContext = zodToFactory5(RewardRedemptionConfigContext, "toRewardRedemptionConfigContext");
|
|
380
|
-
|
|
381
|
-
// src/shared/config/actors/Validator.ts
|
|
382
|
-
import { AddressZod as AddressZod3, zodAsFactory as zodAsFactory6, zodIsFactory as zodIsFactory6, zodToFactory as zodToFactory6 } from "@xylabs/sdk-js";
|
|
368
|
+
import { zodAsFactory as zodAsFactory6, zodIsFactory as zodIsFactory6, zodToFactory as zodToFactory6 } from "@xylabs/sdk-js";
|
|
383
369
|
import { BaseConfigContextZod as BaseConfigContextZod6, HostActorConfigZod as HostActorConfigZod5 } from "@xyo-network/xl1-sdk";
|
|
384
|
-
|
|
385
|
-
var
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
var isValidatorConfig = zodIsFactory6(ValidatorConfigZod);
|
|
391
|
-
var asValidatorConfig = zodAsFactory6(ValidatorConfigZod, "asValidatorConfig");
|
|
392
|
-
var toValidatorConfig = zodToFactory6(ValidatorConfigZod, "toValidatorConfig");
|
|
393
|
-
var ValidatorConfigContext = BaseConfigContextZod6.extend({
|
|
394
|
-
config: ValidatorConfigZod
|
|
370
|
+
var RewardRedemptionConfigZod = HostActorConfigZod5.extend({});
|
|
371
|
+
var isRewardRedemptionConfig = zodIsFactory6(RewardRedemptionConfigZod);
|
|
372
|
+
var asRewardRedemptionConfig = zodAsFactory6(RewardRedemptionConfigZod, "asRewardRedemptionConfig");
|
|
373
|
+
var toRewardRedemptionConfig = zodToFactory6(RewardRedemptionConfigZod, "toRewardRedemptionConfig");
|
|
374
|
+
var RewardRedemptionConfigContext = BaseConfigContextZod6.extend({
|
|
375
|
+
config: RewardRedemptionConfigZod
|
|
395
376
|
});
|
|
396
|
-
var
|
|
397
|
-
var
|
|
398
|
-
var
|
|
377
|
+
var isRewardRedemptionConfigContext = zodIsFactory6(RewardRedemptionConfigContext);
|
|
378
|
+
var asRewardRedemptionConfigContext = zodAsFactory6(RewardRedemptionConfigContext, "asRewardRedemptionConfigContext");
|
|
379
|
+
var toRewardRedemptionConfigContext = zodToFactory6(RewardRedemptionConfigContext, "toRewardRedemptionConfigContext");
|
|
399
380
|
|
|
400
381
|
// src/shared/config/mergeConfig.ts
|
|
401
382
|
import { deepMerge } from "@xylabs/sdk-js";
|
|
@@ -465,30 +446,31 @@ var ServiceLifetime = {
|
|
|
465
446
|
import { isDefined } from "@xylabs/sdk-js";
|
|
466
447
|
|
|
467
448
|
// src/shared/init/walletResolution.ts
|
|
449
|
+
import { HDWallet } from "@xyo-network/sdk-js";
|
|
468
450
|
import { DEFAULT_WALLET_PATH, generateXyoBaseWalletFromPhrase } from "@xyo-network/xl1-sdk";
|
|
451
|
+
import { HDNodeWallet, Mnemonic } from "ethers";
|
|
452
|
+
var DEFAULT_ACTOR_ACCOUNT_PATH = {
|
|
453
|
+
api: "3",
|
|
454
|
+
bridge: "1",
|
|
455
|
+
finalizer: "5",
|
|
456
|
+
mempool: "4",
|
|
457
|
+
producer: "0",
|
|
458
|
+
rewardRedemption: "2"
|
|
459
|
+
};
|
|
469
460
|
var BUILT_IN_DEV_MNEMONIC = "crane ribbon cook cousin tobacco vital moral protect merit knock veteran hint knee ocean nurse";
|
|
470
461
|
var INSECURE_GENESIS_REWARD_MNEMONIC = "test test test test test test test test test test test junk";
|
|
471
462
|
var GENESIS_REWARD_AMOUNT = 20000000000000000000000n;
|
|
472
463
|
var ATTO_XL1_PER_XL1 = 1000000000000000000n;
|
|
473
464
|
var ROOT_WALLET_RUNTIME_ID = "_root";
|
|
474
465
|
var SHARED_ACCOUNT_REPORT_COUNT = 10;
|
|
475
|
-
var RESERVED_ACTOR_INDEX = {
|
|
476
|
-
[ROOT_WALLET_RUNTIME_ID]: 0,
|
|
477
|
-
api: 4,
|
|
478
|
-
bridge: 2,
|
|
479
|
-
mempool: 5,
|
|
480
|
-
producer: 1,
|
|
481
|
-
rewardRedemption: 3,
|
|
482
|
-
validator: 6
|
|
483
|
-
};
|
|
484
466
|
var ACTOR_LABELS = {
|
|
485
467
|
[ROOT_WALLET_RUNTIME_ID]: "root/local-node",
|
|
486
468
|
api: "api",
|
|
487
469
|
bridge: "bridge",
|
|
470
|
+
finalizer: "finalizer",
|
|
488
471
|
mempool: "mempool",
|
|
489
472
|
producer: "producer",
|
|
490
|
-
rewardRedemption: "rewardRedemption"
|
|
491
|
-
validator: "validator"
|
|
473
|
+
rewardRedemption: "rewardRedemption"
|
|
492
474
|
};
|
|
493
475
|
var activeWalletReport;
|
|
494
476
|
function getAccountLabel(actorName) {
|
|
@@ -499,10 +481,30 @@ function clearResolvedWalletReport() {
|
|
|
499
481
|
activeWalletReport = void 0;
|
|
500
482
|
}
|
|
501
483
|
__name(clearResolvedWalletReport, "clearResolvedWalletReport");
|
|
502
|
-
function
|
|
503
|
-
|
|
484
|
+
function resolveActorAccountPath(actorName, actorConfig) {
|
|
485
|
+
if (actorConfig?.accountPath !== void 0) return actorConfig.accountPath;
|
|
486
|
+
return DEFAULT_ACTOR_ACCOUNT_PATH[actorName] ?? "0";
|
|
487
|
+
}
|
|
488
|
+
__name(resolveActorAccountPath, "resolveActorAccountPath");
|
|
489
|
+
function isAbsoluteAccountPath(accountPath) {
|
|
490
|
+
return accountPath.startsWith("m/");
|
|
491
|
+
}
|
|
492
|
+
__name(isAbsoluteAccountPath, "isAbsoluteAccountPath");
|
|
493
|
+
function expandAccountPath(accountPath, basePath = DEFAULT_WALLET_PATH) {
|
|
494
|
+
return isAbsoluteAccountPath(accountPath) ? accountPath : `${basePath}/${accountPath}`;
|
|
495
|
+
}
|
|
496
|
+
__name(expandAccountPath, "expandAccountPath");
|
|
497
|
+
async function deriveWalletAtPath(mnemonic, accountPath) {
|
|
498
|
+
if (isAbsoluteAccountPath(accountPath)) {
|
|
499
|
+
const seed = Mnemonic.fromPhrase(mnemonic).computeSeed();
|
|
500
|
+
const rootNode = HDNodeWallet.fromSeed(seed);
|
|
501
|
+
const derivedNode = rootNode.derivePath(accountPath);
|
|
502
|
+
return await HDWallet.createFromNode(derivedNode);
|
|
503
|
+
}
|
|
504
|
+
const baseWallet = await generateXyoBaseWalletFromPhrase(mnemonic);
|
|
505
|
+
return await baseWallet.derivePath(accountPath);
|
|
504
506
|
}
|
|
505
|
-
__name(
|
|
507
|
+
__name(deriveWalletAtPath, "deriveWalletAtPath");
|
|
506
508
|
function getBuiltInDevMnemonic() {
|
|
507
509
|
return BUILT_IN_DEV_MNEMONIC;
|
|
508
510
|
}
|
|
@@ -512,52 +514,98 @@ function getInsecureGenesisRewardMnemonic() {
|
|
|
512
514
|
}
|
|
513
515
|
__name(getInsecureGenesisRewardMnemonic, "getInsecureGenesisRewardMnemonic");
|
|
514
516
|
function resolveRootWallet(configuration) {
|
|
517
|
+
const isConfigured = configuration.mnemonic !== void 0;
|
|
515
518
|
const mnemonic = configuration.mnemonic ?? BUILT_IN_DEV_MNEMONIC;
|
|
516
519
|
const isBuiltInDevMnemonic = mnemonic === BUILT_IN_DEV_MNEMONIC;
|
|
517
520
|
return {
|
|
518
521
|
basePath: DEFAULT_WALLET_PATH,
|
|
519
522
|
isBuiltInDevMnemonic,
|
|
523
|
+
isConfigured,
|
|
520
524
|
mnemonic,
|
|
521
525
|
mnemonicKind: isBuiltInDevMnemonic ? "built-in-dev" : "configured-root"
|
|
522
526
|
};
|
|
523
527
|
}
|
|
524
528
|
__name(resolveRootWallet, "resolveRootWallet");
|
|
525
|
-
async function resolveWalletMetadata({
|
|
526
|
-
const
|
|
527
|
-
const derivationPath = `${DEFAULT_WALLET_PATH}/${accountIndex}`;
|
|
528
|
-
const account = await wallet.derivePath(`${accountIndex}`);
|
|
529
|
+
async function resolveWalletMetadata({ accountPath, actorName, mnemonic, mnemonicKind }) {
|
|
530
|
+
const account = await deriveWalletAtPath(mnemonic, accountPath);
|
|
529
531
|
return {
|
|
530
|
-
|
|
532
|
+
accountPath,
|
|
531
533
|
actorName,
|
|
532
534
|
address: account.address,
|
|
533
|
-
derivationPath,
|
|
535
|
+
derivationPath: expandAccountPath(accountPath),
|
|
534
536
|
label: getAccountLabel(actorName),
|
|
535
537
|
mnemonic,
|
|
536
538
|
mnemonicKind,
|
|
537
539
|
privateKey: account.privateKey,
|
|
538
|
-
source,
|
|
539
540
|
usesBuiltInDevMnemonic: mnemonic === BUILT_IN_DEV_MNEMONIC
|
|
540
541
|
};
|
|
541
542
|
}
|
|
542
543
|
__name(resolveWalletMetadata, "resolveWalletMetadata");
|
|
543
544
|
async function resolveActorWallet(actorName, actorConfig, root) {
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
return await resolveWalletMetadata(actorMnemonic ? {
|
|
547
|
-
accountIndex: accountIndex ?? 0,
|
|
548
|
-
actorName,
|
|
549
|
-
mnemonic: actorMnemonic,
|
|
550
|
-
mnemonicKind: "configured-actor",
|
|
551
|
-
source: "actor"
|
|
552
|
-
} : {
|
|
553
|
-
accountIndex: accountIndex ?? getReservedActorIndex(actorName),
|
|
545
|
+
return await resolveWalletMetadata({
|
|
546
|
+
accountPath: resolveActorAccountPath(actorName, actorConfig),
|
|
554
547
|
actorName,
|
|
555
548
|
mnemonic: root.mnemonic,
|
|
556
|
-
mnemonicKind: root.mnemonicKind
|
|
557
|
-
source: "root"
|
|
549
|
+
mnemonicKind: root.mnemonicKind
|
|
558
550
|
});
|
|
559
551
|
}
|
|
560
552
|
__name(resolveActorWallet, "resolveActorWallet");
|
|
553
|
+
var ActorMnemonicNotAllowedError = class extends Error {
|
|
554
|
+
static {
|
|
555
|
+
__name(this, "ActorMnemonicNotAllowedError");
|
|
556
|
+
}
|
|
557
|
+
actors;
|
|
558
|
+
constructor(actors) {
|
|
559
|
+
super([
|
|
560
|
+
`Per-actor mnemonics are no longer allowed (found on: ${actors.join(", ")}).`,
|
|
561
|
+
'Move the mnemonic to the root (XL1_MNEMONIC, --mnemonic, or config file "xl1.mnemonic") and give each actor a distinct accountPath.'
|
|
562
|
+
].join("\n"));
|
|
563
|
+
this.name = "ActorMnemonicNotAllowedError";
|
|
564
|
+
this.actors = actors;
|
|
565
|
+
}
|
|
566
|
+
};
|
|
567
|
+
function assertNoActorMnemonics(configuration) {
|
|
568
|
+
const offenders = configuration.actors.filter((actor) => typeof actor.mnemonic === "string").map((actor) => actor.name);
|
|
569
|
+
if (offenders.length > 0) throw new ActorMnemonicNotAllowedError(offenders);
|
|
570
|
+
}
|
|
571
|
+
__name(assertNoActorMnemonics, "assertNoActorMnemonics");
|
|
572
|
+
var DerivationPathCollisionError = class extends Error {
|
|
573
|
+
static {
|
|
574
|
+
__name(this, "DerivationPathCollisionError");
|
|
575
|
+
}
|
|
576
|
+
collisions;
|
|
577
|
+
constructor(collisions) {
|
|
578
|
+
const lines = Object.entries(collisions).map(([path, actors]) => ` - ${actors.join(", ")} \u2192 ${path}`);
|
|
579
|
+
super([
|
|
580
|
+
"Two or more actors resolve to the same wallet derivation path:",
|
|
581
|
+
...lines,
|
|
582
|
+
"Change each actor's accountPath so every actor has a distinct path."
|
|
583
|
+
].join("\n"));
|
|
584
|
+
this.name = "DerivationPathCollisionError";
|
|
585
|
+
this.collisions = collisions;
|
|
586
|
+
}
|
|
587
|
+
};
|
|
588
|
+
function detectDerivationPathCollisions(requestedActors, configuration) {
|
|
589
|
+
const actorConfigMap = new Map(configuration.actors.map((actor) => [
|
|
590
|
+
actor.name,
|
|
591
|
+
actor
|
|
592
|
+
]));
|
|
593
|
+
const bucketsByPath = /* @__PURE__ */ new Map();
|
|
594
|
+
for (const actorName of requestedActors) {
|
|
595
|
+
const accountPath = resolveActorAccountPath(actorName, actorConfigMap.get(actorName));
|
|
596
|
+
const fullPath = expandAccountPath(accountPath);
|
|
597
|
+
const bucket = bucketsByPath.get(fullPath) ?? [];
|
|
598
|
+
bucket.push(actorName);
|
|
599
|
+
bucketsByPath.set(fullPath, bucket);
|
|
600
|
+
}
|
|
601
|
+
const collisions = {};
|
|
602
|
+
for (const [path, actors] of bucketsByPath) {
|
|
603
|
+
if (actors.length > 1) collisions[path] = actors;
|
|
604
|
+
}
|
|
605
|
+
if (Object.keys(collisions).length === 0) return void 0;
|
|
606
|
+
return new DerivationPathCollisionError(collisions);
|
|
607
|
+
}
|
|
608
|
+
__name(detectDerivationPathCollisions, "detectDerivationPathCollisions");
|
|
561
609
|
async function resolveWalletReport(requestedActors, configuration) {
|
|
562
610
|
const root = resolveRootWallet(configuration);
|
|
563
611
|
const actorConfigMap = new Map(configuration.actors.map((actor) => [
|
|
@@ -565,62 +613,54 @@ async function resolveWalletReport(requestedActors, configuration) {
|
|
|
565
613
|
actor
|
|
566
614
|
]));
|
|
567
615
|
const resolvedActors = await Promise.all(requestedActors.map(async (actorName) => await resolveActorWallet(actorName, actorConfigMap.get(actorName), root)));
|
|
568
|
-
const labelMap = /* @__PURE__ */ new Map(
|
|
569
|
-
[
|
|
570
|
-
0,
|
|
571
|
-
[
|
|
572
|
-
getAccountLabel(ROOT_WALLET_RUNTIME_ID)
|
|
573
|
-
]
|
|
574
|
-
]
|
|
575
|
-
]);
|
|
616
|
+
const labelMap = /* @__PURE__ */ new Map();
|
|
576
617
|
for (const actor of resolvedActors) {
|
|
577
|
-
|
|
578
|
-
const labels = labelMap.get(actor.accountIndex) ?? [];
|
|
618
|
+
const labels = labelMap.get(actor.derivationPath) ?? [];
|
|
579
619
|
labels.push(actor.label);
|
|
580
|
-
labelMap.set(actor.
|
|
620
|
+
labelMap.set(actor.derivationPath, labels);
|
|
581
621
|
}
|
|
582
622
|
const sharedAccounts = await Promise.all(Array.from({
|
|
583
623
|
length: SHARED_ACCOUNT_REPORT_COUNT
|
|
584
|
-
}, (_, index) => index).map(async (
|
|
624
|
+
}, (_, index) => index).map(async (sharedIndex) => {
|
|
585
625
|
const account = await resolveWalletMetadata({
|
|
586
|
-
|
|
626
|
+
accountPath: `${sharedIndex}`,
|
|
587
627
|
actorName: ROOT_WALLET_RUNTIME_ID,
|
|
588
628
|
mnemonic: root.mnemonic,
|
|
589
|
-
mnemonicKind: root.mnemonicKind
|
|
590
|
-
source: "root"
|
|
629
|
+
mnemonicKind: root.mnemonicKind
|
|
591
630
|
});
|
|
592
|
-
const labels = labelMap.get(
|
|
631
|
+
const labels = labelMap.get(account.derivationPath);
|
|
593
632
|
return {
|
|
594
633
|
...account,
|
|
595
|
-
label: labels?.join(", ") ?? `shared[${
|
|
634
|
+
label: labels?.join(", ") ?? `shared[${sharedIndex}]`
|
|
596
635
|
};
|
|
597
636
|
}));
|
|
598
|
-
|
|
637
|
+
return {
|
|
638
|
+
requestedActors: [
|
|
639
|
+
...requestedActors
|
|
640
|
+
],
|
|
641
|
+
root,
|
|
642
|
+
sharedAccounts
|
|
643
|
+
};
|
|
644
|
+
}
|
|
645
|
+
__name(resolveWalletReport, "resolveWalletReport");
|
|
646
|
+
async function buildInsecureGenesisRewardAccounts() {
|
|
647
|
+
const accounts = await Promise.all(Array.from({
|
|
599
648
|
length: SHARED_ACCOUNT_REPORT_COUNT
|
|
600
|
-
}, (_, index) => index).map(async (
|
|
649
|
+
}, (_, index) => index).map(async (sharedIndex) => {
|
|
601
650
|
const account = await resolveWalletMetadata({
|
|
602
|
-
|
|
651
|
+
accountPath: `${sharedIndex}`,
|
|
603
652
|
actorName: "genesisReward",
|
|
604
653
|
mnemonic: INSECURE_GENESIS_REWARD_MNEMONIC,
|
|
605
|
-
mnemonicKind: "
|
|
606
|
-
source: "actor"
|
|
654
|
+
mnemonicKind: "insecure-genesis-reward"
|
|
607
655
|
});
|
|
608
656
|
return {
|
|
609
657
|
...account,
|
|
610
|
-
label:
|
|
658
|
+
label: sharedIndex === 0 ? "genesisRewardAddress" : `genesisReward[${sharedIndex}]`
|
|
611
659
|
};
|
|
612
660
|
}));
|
|
613
|
-
return
|
|
614
|
-
actorSpecificAccounts: resolvedActors.filter((actor) => actor.source === "actor"),
|
|
615
|
-
insecureGenesisRewardAccounts,
|
|
616
|
-
requestedActors: [
|
|
617
|
-
...requestedActors
|
|
618
|
-
],
|
|
619
|
-
root,
|
|
620
|
-
sharedAccounts
|
|
621
|
-
};
|
|
661
|
+
return accounts;
|
|
622
662
|
}
|
|
623
|
-
__name(
|
|
663
|
+
__name(buildInsecureGenesisRewardAccounts, "buildInsecureGenesisRewardAccounts");
|
|
624
664
|
async function initializeResolvedWalletReport(requestedActors, configuration) {
|
|
625
665
|
activeWalletReport = await resolveWalletReport(requestedActors, configuration);
|
|
626
666
|
return activeWalletReport;
|
|
@@ -632,7 +672,7 @@ function getResolvedWalletReport() {
|
|
|
632
672
|
__name(getResolvedWalletReport, "getResolvedWalletReport");
|
|
633
673
|
function formatSharedAccount(account, showPrivateKey) {
|
|
634
674
|
const lines = [
|
|
635
|
-
`[${account.
|
|
675
|
+
`[${account.accountPath}] ${account.label}`,
|
|
636
676
|
`source: ${account.mnemonicKind === "built-in-dev" ? "built-in dev mnemonic" : "configured root mnemonic"}`,
|
|
637
677
|
`path: ${account.derivationPath}`,
|
|
638
678
|
`address: ${account.address}`
|
|
@@ -641,19 +681,10 @@ function formatSharedAccount(account, showPrivateKey) {
|
|
|
641
681
|
return lines.join("\n");
|
|
642
682
|
}
|
|
643
683
|
__name(formatSharedAccount, "formatSharedAccount");
|
|
644
|
-
function formatActorSpecificAccount(account) {
|
|
645
|
-
return [
|
|
646
|
-
account.label,
|
|
647
|
-
"source: actor mnemonic",
|
|
648
|
-
`path: ${account.derivationPath}`,
|
|
649
|
-
`address: ${account.address}`
|
|
650
|
-
].join("\n");
|
|
651
|
-
}
|
|
652
|
-
__name(formatActorSpecificAccount, "formatActorSpecificAccount");
|
|
653
684
|
function formatGenesisRewardAccount(account) {
|
|
654
|
-
const balance = account.
|
|
685
|
+
const balance = account.accountPath === "0" ? GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1 : 0n;
|
|
655
686
|
return [
|
|
656
|
-
`[${account.
|
|
687
|
+
`[${account.accountPath}] ${account.label}`,
|
|
657
688
|
`path: ${account.derivationPath}`,
|
|
658
689
|
`address: ${account.address}`,
|
|
659
690
|
`privateKey: ${account.privateKey ?? "unavailable"}`,
|
|
@@ -683,34 +714,28 @@ function formatWalletReport(report) {
|
|
|
683
714
|
"",
|
|
684
715
|
report.sharedAccounts.map((account) => formatSharedAccount(account, showSecrets)).join("\n\n")
|
|
685
716
|
].join("\n"));
|
|
686
|
-
if (report.actorSpecificAccounts.length > 0) {
|
|
687
|
-
sections.push([
|
|
688
|
-
"Actor-specific wallet accounts:",
|
|
689
|
-
"",
|
|
690
|
-
report.actorSpecificAccounts.map((account) => formatActorSpecificAccount(account)).join("\n\n")
|
|
691
|
-
].join("\n"));
|
|
692
|
-
}
|
|
693
|
-
if (report.insecureGenesisRewardAccounts) {
|
|
694
|
-
sections.push([
|
|
695
|
-
"INSECURE GENESIS REWARD WALLET WARNING",
|
|
696
|
-
"",
|
|
697
|
-
"XL1 is using a public, insecure fallback wallet for the genesis reward address.",
|
|
698
|
-
"This phrase is intentionally unsafe and must never be used for real funds, production systems, or shared environments.",
|
|
699
|
-
"Anyone with this information can fully control the genesis reward wallet.",
|
|
700
|
-
"",
|
|
701
|
-
"Genesis reward phrase:",
|
|
702
|
-
INSECURE_GENESIS_REWARD_MNEMONIC,
|
|
703
|
-
"",
|
|
704
|
-
`The genesis reward is sent to index 0 and starts with ${(GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1).toString()} XL1.`,
|
|
705
|
-
"",
|
|
706
|
-
`Genesis reward wallet accounts from ${DEFAULT_WALLET_PATH}:`,
|
|
707
|
-
"",
|
|
708
|
-
report.insecureGenesisRewardAccounts.map((account) => formatGenesisRewardAccount(account)).join("\n\n")
|
|
709
|
-
].join("\n"));
|
|
710
|
-
}
|
|
711
717
|
return sections.join("\n\n");
|
|
712
718
|
}
|
|
713
719
|
__name(formatWalletReport, "formatWalletReport");
|
|
720
|
+
function formatInsecureGenesisRewardWarning(accounts) {
|
|
721
|
+
return [
|
|
722
|
+
"INSECURE GENESIS REWARD WALLET WARNING",
|
|
723
|
+
"",
|
|
724
|
+
"XL1 is using a public, insecure fallback wallet for the genesis reward address.",
|
|
725
|
+
"This phrase is intentionally unsafe and must never be used for real funds, production systems, or shared environments.",
|
|
726
|
+
"Anyone with this information can fully control the genesis reward wallet.",
|
|
727
|
+
"",
|
|
728
|
+
"Genesis reward phrase:",
|
|
729
|
+
INSECURE_GENESIS_REWARD_MNEMONIC,
|
|
730
|
+
"",
|
|
731
|
+
`The genesis reward is sent to index 0 and starts with ${(GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1).toString()} XL1.`,
|
|
732
|
+
"",
|
|
733
|
+
`Genesis reward wallet accounts from ${DEFAULT_WALLET_PATH}:`,
|
|
734
|
+
"",
|
|
735
|
+
accounts.map((account) => formatGenesisRewardAccount(account)).join("\n\n")
|
|
736
|
+
].join("\n");
|
|
737
|
+
}
|
|
738
|
+
__name(formatInsecureGenesisRewardWarning, "formatInsecureGenesisRewardWarning");
|
|
714
739
|
async function resolveGenesisRewardAddress(config) {
|
|
715
740
|
if (config.chain.genesisRewardAddress) return config.chain.genesisRewardAddress;
|
|
716
741
|
const wallet = await generateXyoBaseWalletFromPhrase(INSECURE_GENESIS_REWARD_MNEMONIC);
|
|
@@ -718,12 +743,11 @@ async function resolveGenesisRewardAddress(config) {
|
|
|
718
743
|
return account.address;
|
|
719
744
|
}
|
|
720
745
|
__name(resolveGenesisRewardAddress, "resolveGenesisRewardAddress");
|
|
721
|
-
async function resolveWalletForActor(actorName,
|
|
722
|
-
const
|
|
723
|
-
const
|
|
724
|
-
const
|
|
725
|
-
|
|
726
|
-
return await wallet.derivePath(`${resolvedAccountIndex}`);
|
|
746
|
+
async function resolveWalletForActor(actorName, accountPath) {
|
|
747
|
+
const report = activeWalletReport;
|
|
748
|
+
const mnemonic = report?.root.mnemonic ?? BUILT_IN_DEV_MNEMONIC;
|
|
749
|
+
const resolvedAccountPath = accountPath ?? resolveActorAccountPath(actorName);
|
|
750
|
+
return await deriveWalletAtPath(mnemonic, resolvedAccountPath);
|
|
727
751
|
}
|
|
728
752
|
__name(resolveWalletForActor, "resolveWalletForActor");
|
|
729
753
|
|
|
@@ -732,8 +756,8 @@ var actorAccountSingletons = {};
|
|
|
732
756
|
async function initActorAccount({ config, logger }) {
|
|
733
757
|
const actorName = config.name;
|
|
734
758
|
if (isDefined(actorAccountSingletons[actorName])) return actorAccountSingletons[actorName];
|
|
735
|
-
const
|
|
736
|
-
const account = await resolveWalletForActor(actorName,
|
|
759
|
+
const accountPath = typeof config.accountPath === "string" ? config.accountPath : void 0;
|
|
760
|
+
const account = await resolveWalletForActor(actorName, accountPath);
|
|
737
761
|
logger?.debug(`[${actorName}] Using wallet address ${account.address}`);
|
|
738
762
|
actorAccountSingletons[actorName] = account;
|
|
739
763
|
return actorAccountSingletons[actorName];
|
|
@@ -747,10 +771,7 @@ async function initActorSeedPhrase(context, bios) {
|
|
|
747
771
|
const walletKind = config.name;
|
|
748
772
|
void bios;
|
|
749
773
|
const report = getResolvedWalletReport();
|
|
750
|
-
const account = config.name === ROOT_WALLET_RUNTIME_ID ? report?.sharedAccounts.find((entry) => entry.accountIndex === 0) : report?.actorSpecificAccounts.find((entry) => entry.actorName === config.name);
|
|
751
|
-
if (isString(account?.mnemonic)) return account.mnemonic;
|
|
752
774
|
if (isString(report?.root.mnemonic)) return report.root.mnemonic;
|
|
753
|
-
if (isString(config.mnemonic)) return config.mnemonic;
|
|
754
775
|
const fallback = getBuiltInDevMnemonic();
|
|
755
776
|
logger?.debug(`[${walletKind}] Falling back to built-in development mnemonic`);
|
|
756
777
|
return assertEx(fallback, () => "Unable to resolve mnemonic");
|
|
@@ -807,10 +828,10 @@ function initStatusReporter({ logger }) {
|
|
|
807
828
|
__name(initStatusReporter, "initStatusReporter");
|
|
808
829
|
|
|
809
830
|
// src/shared/init/initWallet.ts
|
|
810
|
-
async function initActorWallet(context
|
|
811
|
-
const actorName = context.config.name
|
|
812
|
-
const
|
|
813
|
-
return await resolveWalletForActor(actorName,
|
|
831
|
+
async function initActorWallet(context) {
|
|
832
|
+
const actorName = context.config.name;
|
|
833
|
+
const accountPath = typeof context.config.accountPath === "string" ? context.config.accountPath : void 0;
|
|
834
|
+
return await resolveWalletForActor(actorName, accountPath);
|
|
814
835
|
}
|
|
815
836
|
__name(initActorWallet, "initActorWallet");
|
|
816
837
|
|
|
@@ -879,6 +900,41 @@ Orchestrator = _ts_decorate2([
|
|
|
879
900
|
creatable2()
|
|
880
901
|
], Orchestrator);
|
|
881
902
|
|
|
903
|
+
// src/shared/provider/SimpleRejectedTransactionsArchivistProvider.ts
|
|
904
|
+
import { assertEx as assertEx3 } from "@xylabs/sdk-js";
|
|
905
|
+
import { AbstractCreatableProvider, creatableProvider } from "@xyo-network/xl1-sdk";
|
|
906
|
+
function _ts_decorate3(decorators, target, key, desc) {
|
|
907
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
908
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
909
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
910
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
911
|
+
}
|
|
912
|
+
__name(_ts_decorate3, "_ts_decorate");
|
|
913
|
+
var RejectedTransactionsArchivistProviderMoniker = "RejectedTransactionsArchivistProvider";
|
|
914
|
+
var SimpleRejectedTransactionsArchivistProvider = class _SimpleRejectedTransactionsArchivistProvider extends AbstractCreatableProvider {
|
|
915
|
+
static {
|
|
916
|
+
__name(this, "SimpleRejectedTransactionsArchivistProvider");
|
|
917
|
+
}
|
|
918
|
+
static defaultMoniker = RejectedTransactionsArchivistProviderMoniker;
|
|
919
|
+
static dependencies = [];
|
|
920
|
+
static monikers = [
|
|
921
|
+
RejectedTransactionsArchivistProviderMoniker
|
|
922
|
+
];
|
|
923
|
+
moniker = _SimpleRejectedTransactionsArchivistProvider.defaultMoniker;
|
|
924
|
+
get archivist() {
|
|
925
|
+
return this.params.archivist;
|
|
926
|
+
}
|
|
927
|
+
static async paramsHandler(params) {
|
|
928
|
+
return {
|
|
929
|
+
...await super.paramsHandler(params),
|
|
930
|
+
archivist: assertEx3(params?.archivist, () => "archivist is required")
|
|
931
|
+
};
|
|
932
|
+
}
|
|
933
|
+
};
|
|
934
|
+
SimpleRejectedTransactionsArchivistProvider = _ts_decorate3([
|
|
935
|
+
creatableProvider()
|
|
936
|
+
], SimpleRejectedTransactionsArchivistProvider);
|
|
937
|
+
|
|
882
938
|
// src/node/config/locators/basicRemoteRunnerLocator.ts
|
|
883
939
|
import { isAccountInstance } from "@xyo-network/sdk-js";
|
|
884
940
|
import { basicRemoteRunnerLocator as sdkBasicRemoteRunnerLocator, JsonRpcAccountBalanceViewer, JsonRpcXyoSigner, SimpleXyoSigner } from "@xyo-network/xl1-sdk";
|
|
@@ -957,13 +1013,13 @@ async function contextFromConfigWithoutLocator(config, logger, serviceName, serv
|
|
|
957
1013
|
__name(contextFromConfigWithoutLocator, "contextFromConfigWithoutLocator");
|
|
958
1014
|
|
|
959
1015
|
// src/node/config/locators/localLocatorFromConfig.ts
|
|
960
|
-
import { assertEx as
|
|
1016
|
+
import { assertEx as assertEx8 } from "@xylabs/sdk-js";
|
|
961
1017
|
import { validateHydratedBlock, validateHydratedBlockState } from "@xyo-network/chain-validation";
|
|
962
1018
|
import { BlockCumulativeBalanceValidatorFactory, ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockValidationViewer, SimpleBlockViewer, SimpleDeadLetterQueueRunner, SimpleDeadLetterQueueViewer, SimpleFinalizationRunner, SimpleFinalizationViewer, SimpleMempoolRunner, SimpleMempoolViewer, SimpleTransactionValidationViewer, SimpleTransactionViewer, SimpleWindowedBlockViewer, SimpleXyoConnectionViewer, SimpleXyoViewer, validateTransaction } from "@xyo-network/xl1-sdk";
|
|
963
1019
|
|
|
964
1020
|
// src/node/init/initBalanceSummaryMap.ts
|
|
965
1021
|
import { BaseMongoSdk } from "@xylabs/mongo";
|
|
966
|
-
import { assertEx as
|
|
1022
|
+
import { assertEx as assertEx4 } from "@xylabs/sdk-js";
|
|
967
1023
|
import { MongoMap } from "@xyo-network/chain-protocol-driver-mongodb";
|
|
968
1024
|
import { hasMongoConfig, MemoryMap } from "@xyo-network/xl1-sdk";
|
|
969
1025
|
async function initBalanceSummaryMap({ logger, config }) {
|
|
@@ -988,7 +1044,7 @@ async function initBalanceSummaryMap({ logger, config }) {
|
|
|
988
1044
|
maxEntries: 5e3
|
|
989
1045
|
}
|
|
990
1046
|
});
|
|
991
|
-
|
|
1047
|
+
assertEx4(await result.start(), () => "Failed to start transfer summary map");
|
|
992
1048
|
return result;
|
|
993
1049
|
} else {
|
|
994
1050
|
logger?.warn("[API] Mongo configuration not found. Using MemoryMap for BalanceSummaryMap.");
|
|
@@ -1050,11 +1106,11 @@ async function initEvmProvidersIfAvailable(locator) {
|
|
|
1050
1106
|
__name(initEvmProvidersIfAvailable, "initEvmProvidersIfAvailable");
|
|
1051
1107
|
|
|
1052
1108
|
// src/node/init/initFinalizationArchivistIfNeeded.ts
|
|
1053
|
-
import { assertEx as
|
|
1109
|
+
import { assertEx as assertEx5 } from "@xylabs/sdk-js";
|
|
1054
1110
|
import { createBootstrapHead } from "@xyo-network/chain-sdk";
|
|
1055
1111
|
import { Account } from "@xyo-network/sdk-js";
|
|
1056
1112
|
import { asAttoXL1, findMostRecentBlock, flattenHydratedBlock } from "@xyo-network/xl1-sdk";
|
|
1057
|
-
async function initFinalizationArchivistIfNeeded(archivist, config, account) {
|
|
1113
|
+
async function initFinalizationArchivistIfNeeded(archivist, config, account, options = {}) {
|
|
1058
1114
|
const configuredChainId = config.chain.id;
|
|
1059
1115
|
const possibleHead = await findMostRecentBlock(archivist);
|
|
1060
1116
|
if (configuredChainId && possibleHead && possibleHead.chain !== configuredChainId) {
|
|
@@ -1063,13 +1119,18 @@ async function initFinalizationArchivistIfNeeded(archivist, config, account) {
|
|
|
1063
1119
|
let possibleChainId = configuredChainId;
|
|
1064
1120
|
if (!possibleHead) {
|
|
1065
1121
|
possibleChainId = possibleChainId ?? (await Account.random()).address;
|
|
1122
|
+
if (!config.chain.genesisRewardAddress) {
|
|
1123
|
+
const accounts = await buildInsecureGenesisRewardAccounts();
|
|
1124
|
+
options.logger?.warn(formatInsecureGenesisRewardWarning(accounts));
|
|
1125
|
+
if (options.onInsecureGenesisConfirm) await options.onInsecureGenesisConfirm();
|
|
1126
|
+
}
|
|
1066
1127
|
const genesisRewardAddress = await resolveGenesisRewardAddress(config);
|
|
1067
1128
|
const chain = await createBootstrapHead(account, possibleChainId, asAttoXL1(GENESIS_REWARD_AMOUNT), genesisRewardAddress);
|
|
1068
1129
|
const payloads = chain.flatMap((block) => flattenHydratedBlock(block));
|
|
1069
1130
|
await archivist.insert(payloads);
|
|
1070
1131
|
}
|
|
1071
|
-
const head = possibleHead ??
|
|
1072
|
-
const chainId =
|
|
1132
|
+
const head = possibleHead ?? assertEx5(await findMostRecentBlock(archivist), () => "No blocks found in chain archivist");
|
|
1133
|
+
const chainId = assertEx5(possibleChainId, () => "Chain ID could not be determined");
|
|
1073
1134
|
return [
|
|
1074
1135
|
head,
|
|
1075
1136
|
chainId
|
|
@@ -1096,7 +1157,7 @@ async function initFinalizedArchivist(config) {
|
|
|
1096
1157
|
__name(initFinalizedArchivist, "initFinalizedArchivist");
|
|
1097
1158
|
|
|
1098
1159
|
// src/node/init/initServerNode.ts
|
|
1099
|
-
import { assertEx as
|
|
1160
|
+
import { assertEx as assertEx6 } from "@xylabs/sdk-js";
|
|
1100
1161
|
import { asArchivistInstance } from "@xyo-network/sdk-js";
|
|
1101
1162
|
|
|
1102
1163
|
// src/node/manifest/getLocator.ts
|
|
@@ -1423,7 +1484,7 @@ async function writableChainArchivistFromNode(node) {
|
|
|
1423
1484
|
}
|
|
1424
1485
|
__name(writableChainArchivistFromNode, "writableChainArchivistFromNode");
|
|
1425
1486
|
async function readonlyChainArchivistFromNode(node) {
|
|
1426
|
-
return
|
|
1487
|
+
return assertEx6(asArchivistInstance(await node.resolve("Chain:Validated"), {
|
|
1427
1488
|
required: true
|
|
1428
1489
|
}));
|
|
1429
1490
|
}
|
|
@@ -1454,7 +1515,7 @@ async function rejectedTransactionsArchivistFromNode(node) {
|
|
|
1454
1515
|
__name(rejectedTransactionsArchivistFromNode, "rejectedTransactionsArchivistFromNode");
|
|
1455
1516
|
async function initServerNode(context, wallet, providedNode) {
|
|
1456
1517
|
const node = providedNode ?? await loadNode(context, wallet);
|
|
1457
|
-
|
|
1518
|
+
assertEx6(await node.start(), () => "Failed to start node");
|
|
1458
1519
|
const writableChainArchivist = await writableChainArchivistFromNode(node);
|
|
1459
1520
|
const readonlyChainArchivist = await readonlyChainArchivistFromNode(node);
|
|
1460
1521
|
const pendingTransactionsArchivist = await pendingTransactionsArchivistFromNode(node);
|
|
@@ -1475,7 +1536,7 @@ __name(initServerNode, "initServerNode");
|
|
|
1475
1536
|
|
|
1476
1537
|
// src/node/init/initTransferSummaryMap.ts
|
|
1477
1538
|
import { BaseMongoSdk as BaseMongoSdk2 } from "@xylabs/mongo";
|
|
1478
|
-
import { assertEx as
|
|
1539
|
+
import { assertEx as assertEx7 } from "@xylabs/sdk-js";
|
|
1479
1540
|
import { MongoMap as MongoMap2 } from "@xyo-network/chain-protocol-driver-mongodb";
|
|
1480
1541
|
import { hasMongoConfig as hasMongoConfig3, MemoryMap as MemoryMap2 } from "@xyo-network/xl1-sdk";
|
|
1481
1542
|
async function initTransferSummaryMap({ logger, config }) {
|
|
@@ -1500,7 +1561,7 @@ async function initTransferSummaryMap({ logger, config }) {
|
|
|
1500
1561
|
maxEntries: 5e3
|
|
1501
1562
|
}
|
|
1502
1563
|
});
|
|
1503
|
-
|
|
1564
|
+
assertEx7(await result.start(), () => "Failed to start transfer summary map");
|
|
1504
1565
|
return result;
|
|
1505
1566
|
} else {
|
|
1506
1567
|
logger?.warn("[API] Mongo configuration not found. Using MemoryMap for TransferSummaryMap.");
|
|
@@ -1521,12 +1582,15 @@ var validateHydratedBlockStateWithCumulativeBalance = /* @__PURE__ */ __name(asy
|
|
|
1521
1582
|
...cumulativeErrors
|
|
1522
1583
|
];
|
|
1523
1584
|
}, "validateHydratedBlockStateWithCumulativeBalance");
|
|
1524
|
-
async function localLocatorFromConfig(context, validateDepsOnRegister = false) {
|
|
1525
|
-
const balancesSummaryMap =
|
|
1526
|
-
const transfersSummaryMap =
|
|
1585
|
+
async function localLocatorFromConfig(context, validateDepsOnRegister = false, onInsecureGenesisConfirm) {
|
|
1586
|
+
const balancesSummaryMap = assertEx8(await initBalanceSummaryMap(context), () => "Balance Summary Map not initialized");
|
|
1587
|
+
const transfersSummaryMap = assertEx8(await initTransferSummaryMap(context), () => "Transfer Summary Map not initialized");
|
|
1527
1588
|
const wallet = await initActorWallet(context);
|
|
1528
1589
|
const { writableChainArchivist, readonlyChainArchivist, pendingTransactionsArchivist, pendingBlocksArchivist, rejectedBlocksArchivist, rejectedTransactionsArchivist } = await initServerNode(context, wallet);
|
|
1529
|
-
await initFinalizationArchivistIfNeeded(writableChainArchivist, context.config, wallet
|
|
1590
|
+
await initFinalizationArchivistIfNeeded(writableChainArchivist, context.config, wallet, {
|
|
1591
|
+
logger: context.logger,
|
|
1592
|
+
onInsecureGenesisConfirm
|
|
1593
|
+
});
|
|
1530
1594
|
const locator = new ProviderFactoryLocator(context, {}, validateDepsOnRegister);
|
|
1531
1595
|
locator.registerMany([
|
|
1532
1596
|
SimpleMempoolViewer.factory(SimpleMempoolViewer.dependencies, {
|
|
@@ -1574,6 +1638,9 @@ async function localLocatorFromConfig(context, validateDepsOnRegister = false) {
|
|
|
1574
1638
|
SimpleDeadLetterQueueViewer.factory(SimpleDeadLetterQueueViewer.dependencies, {
|
|
1575
1639
|
rejectedBlocksArchivist,
|
|
1576
1640
|
rejectedTransactionsArchivist
|
|
1641
|
+
}),
|
|
1642
|
+
SimpleRejectedTransactionsArchivistProvider.factory(SimpleRejectedTransactionsArchivistProvider.dependencies, {
|
|
1643
|
+
archivist: rejectedTransactionsArchivist
|
|
1577
1644
|
})
|
|
1578
1645
|
]);
|
|
1579
1646
|
return locator;
|
|
@@ -1658,9 +1725,9 @@ async function bridgeLocatorFromConfig(context, parent) {
|
|
|
1658
1725
|
}
|
|
1659
1726
|
__name(bridgeLocatorFromConfig, "bridgeLocatorFromConfig");
|
|
1660
1727
|
|
|
1661
|
-
// src/node/config/locators/actors/
|
|
1728
|
+
// src/node/config/locators/actors/finalizerLocatorFromConfig.ts
|
|
1662
1729
|
import { ProviderFactoryLocator as ProviderFactoryLocator4 } from "@xyo-network/xl1-sdk";
|
|
1663
|
-
function
|
|
1730
|
+
function finalizerLocatorFromConfig(context, parent) {
|
|
1664
1731
|
const locator = new ProviderFactoryLocator4({
|
|
1665
1732
|
...context,
|
|
1666
1733
|
locator: parent
|
|
@@ -1669,16 +1736,29 @@ function mempoolLocatorFromConfig(context, parent) {
|
|
|
1669
1736
|
locator.freeze();
|
|
1670
1737
|
return locator;
|
|
1671
1738
|
}
|
|
1739
|
+
__name(finalizerLocatorFromConfig, "finalizerLocatorFromConfig");
|
|
1740
|
+
|
|
1741
|
+
// src/node/config/locators/actors/mempoolLocatorFromConfig.ts
|
|
1742
|
+
import { ProviderFactoryLocator as ProviderFactoryLocator5 } from "@xyo-network/xl1-sdk";
|
|
1743
|
+
function mempoolLocatorFromConfig(context, parent) {
|
|
1744
|
+
const locator = new ProviderFactoryLocator5({
|
|
1745
|
+
...context,
|
|
1746
|
+
locator: parent
|
|
1747
|
+
});
|
|
1748
|
+
locator.registerMany([]);
|
|
1749
|
+
locator.freeze();
|
|
1750
|
+
return locator;
|
|
1751
|
+
}
|
|
1672
1752
|
__name(mempoolLocatorFromConfig, "mempoolLocatorFromConfig");
|
|
1673
1753
|
|
|
1674
1754
|
// src/node/config/locators/actors/producerLocatorFromConfig.ts
|
|
1675
1755
|
import { asAddress as asAddress2 } from "@xylabs/sdk-js";
|
|
1676
1756
|
import { SimpleBlockRunner } from "@xyo-network/chain-services";
|
|
1677
|
-
import { ProviderFactoryLocator as
|
|
1757
|
+
import { ProviderFactoryLocator as ProviderFactoryLocator6 } from "@xyo-network/xl1-sdk";
|
|
1678
1758
|
async function producerLocatorFromConfig(context, parent) {
|
|
1679
1759
|
const { logger, config } = context;
|
|
1680
1760
|
const account = await initActorAccount(context);
|
|
1681
|
-
const locator = new
|
|
1761
|
+
const locator = new ProviderFactoryLocator6({
|
|
1682
1762
|
...context,
|
|
1683
1763
|
locator: parent
|
|
1684
1764
|
});
|
|
@@ -1687,10 +1767,13 @@ async function producerLocatorFromConfig(context, parent) {
|
|
|
1687
1767
|
if (rewardAddress === account.address) {
|
|
1688
1768
|
logger?.warn(`Using producer account address as reward address: ${account.address}`);
|
|
1689
1769
|
}
|
|
1770
|
+
const rejectedTransactionsProvider = await parent?.tryGetInstance(RejectedTransactionsArchivistProviderMoniker);
|
|
1771
|
+
const rejectedTransactionsArchivist = rejectedTransactionsProvider?.archivist;
|
|
1690
1772
|
locator.registerMany([
|
|
1691
1773
|
SimpleBlockRunner.factory(SimpleBlockRunner.dependencies, {
|
|
1692
1774
|
account,
|
|
1693
|
-
rewardAddress
|
|
1775
|
+
rewardAddress,
|
|
1776
|
+
rejectedTransactionsArchivist
|
|
1694
1777
|
})
|
|
1695
1778
|
]);
|
|
1696
1779
|
locator.freeze();
|
|
@@ -1699,9 +1782,9 @@ async function producerLocatorFromConfig(context, parent) {
|
|
|
1699
1782
|
__name(producerLocatorFromConfig, "producerLocatorFromConfig");
|
|
1700
1783
|
|
|
1701
1784
|
// src/node/config/locators/actors/rewardRedemptionLocatorFromConfig.ts
|
|
1702
|
-
import { JsonRpcAccountBalanceViewer as JsonRpcAccountBalanceViewer4, JsonRpcBlockViewer as JsonRpcBlockViewer2, JsonRpcFinalizationViewer as JsonRpcFinalizationViewer2, JsonRpcMempoolRunner as JsonRpcMempoolRunner2, JsonRpcMempoolViewer as JsonRpcMempoolViewer2, JsonRpcXyoRunner as JsonRpcXyoRunner2, JsonRpcXyoViewer as JsonRpcXyoViewer2, ProviderFactoryLocator as
|
|
1785
|
+
import { JsonRpcAccountBalanceViewer as JsonRpcAccountBalanceViewer4, JsonRpcBlockViewer as JsonRpcBlockViewer2, JsonRpcFinalizationViewer as JsonRpcFinalizationViewer2, JsonRpcMempoolRunner as JsonRpcMempoolRunner2, JsonRpcMempoolViewer as JsonRpcMempoolViewer2, JsonRpcXyoRunner as JsonRpcXyoRunner2, JsonRpcXyoViewer as JsonRpcXyoViewer2, ProviderFactoryLocator as ProviderFactoryLocator7, SimpleXyoConnectionRunner as SimpleXyoConnectionRunner3, SimpleXyoGatewayRunner as SimpleXyoGatewayRunner2, SimpleXyoRunner as SimpleXyoRunner3, SimpleXyoSigner as SimpleXyoSigner3 } from "@xyo-network/xl1-sdk";
|
|
1703
1786
|
async function rewardRedemptionLocatorFromConfig(context, parent) {
|
|
1704
|
-
const locator = new
|
|
1787
|
+
const locator = new ProviderFactoryLocator7({
|
|
1705
1788
|
...context,
|
|
1706
1789
|
locator: parent
|
|
1707
1790
|
});
|
|
@@ -1731,22 +1814,9 @@ async function rewardRedemptionLocatorFromConfig(context, parent) {
|
|
|
1731
1814
|
}
|
|
1732
1815
|
__name(rewardRedemptionLocatorFromConfig, "rewardRedemptionLocatorFromConfig");
|
|
1733
1816
|
|
|
1734
|
-
// src/node/config/locators/actors/validatorLocatorFromConfig.ts
|
|
1735
|
-
import { ProviderFactoryLocator as ProviderFactoryLocator7 } from "@xyo-network/xl1-sdk";
|
|
1736
|
-
function validatorLocatorFromConfig(context, parent) {
|
|
1737
|
-
const locator = new ProviderFactoryLocator7({
|
|
1738
|
-
...context,
|
|
1739
|
-
locator: parent
|
|
1740
|
-
});
|
|
1741
|
-
locator.registerMany([]);
|
|
1742
|
-
locator.freeze();
|
|
1743
|
-
return locator;
|
|
1744
|
-
}
|
|
1745
|
-
__name(validatorLocatorFromConfig, "validatorLocatorFromConfig");
|
|
1746
|
-
|
|
1747
1817
|
// src/node/config/locators/rootLocatorFromConfig.ts
|
|
1748
1818
|
import { commonLocatorFromConfig, remoteLocatorFromConfig } from "@xyo-network/xl1-sdk";
|
|
1749
|
-
async function rootLocatorFromConfig(context, validateDepsOnRegister = false) {
|
|
1819
|
+
async function rootLocatorFromConfig(context, validateDepsOnRegister = false, onInsecureGenesisConfirm) {
|
|
1750
1820
|
const { config } = context;
|
|
1751
1821
|
let locator = await commonLocatorFromConfig(context, validateDepsOnRegister);
|
|
1752
1822
|
const newLocator = await (config.remote.rpc ? remoteLocatorFromConfig(locator.context, validateDepsOnRegister) : localLocatorFromConfig({
|
|
@@ -1755,7 +1825,7 @@ async function rootLocatorFromConfig(context, validateDepsOnRegister = false) {
|
|
|
1755
1825
|
...locator.context.config,
|
|
1756
1826
|
...context.config
|
|
1757
1827
|
}
|
|
1758
|
-
}, validateDepsOnRegister));
|
|
1828
|
+
}, validateDepsOnRegister, onInsecureGenesisConfirm));
|
|
1759
1829
|
locator = newLocator;
|
|
1760
1830
|
locator = await initEvmProvidersIfAvailable(locator);
|
|
1761
1831
|
locator.freeze();
|
|
@@ -1764,15 +1834,17 @@ async function rootLocatorFromConfig(context, validateDepsOnRegister = false) {
|
|
|
1764
1834
|
__name(rootLocatorFromConfig, "rootLocatorFromConfig");
|
|
1765
1835
|
|
|
1766
1836
|
// src/node/config/locators/locatorsFromConfig.ts
|
|
1767
|
-
async function locatorsFromConfig(context, { actors, ...config }) {
|
|
1837
|
+
async function locatorsFromConfig(context, { actors, ...config }, onInsecureGenesisConfirm) {
|
|
1838
|
+
const rootContext = {
|
|
1839
|
+
...context,
|
|
1840
|
+
config: {
|
|
1841
|
+
...config,
|
|
1842
|
+
name: "_root"
|
|
1843
|
+
}
|
|
1844
|
+
};
|
|
1845
|
+
const rootLocator = await rootLocatorFromConfig(rootContext, false, onInsecureGenesisConfirm);
|
|
1768
1846
|
const result = {
|
|
1769
|
-
_root:
|
|
1770
|
-
...context,
|
|
1771
|
-
config: {
|
|
1772
|
-
...config,
|
|
1773
|
-
name: "_root"
|
|
1774
|
-
}
|
|
1775
|
-
})
|
|
1847
|
+
_root: rootLocator
|
|
1776
1848
|
};
|
|
1777
1849
|
for (const actorConfig of actors) {
|
|
1778
1850
|
switch (actorConfig.name) {
|
|
@@ -1797,10 +1869,10 @@ async function locatorsFromConfig(context, { actors, ...config }) {
|
|
|
1797
1869
|
}, result._root);
|
|
1798
1870
|
break;
|
|
1799
1871
|
}
|
|
1800
|
-
case "
|
|
1801
|
-
result[actorConfig.name] = await
|
|
1872
|
+
case "finalizer": {
|
|
1873
|
+
result[actorConfig.name] = await finalizerLocatorFromConfig({
|
|
1802
1874
|
...context,
|
|
1803
|
-
config:
|
|
1875
|
+
config: FinalizerConfigZod.parse(deepMerge2(config, actorConfig))
|
|
1804
1876
|
}, result._root);
|
|
1805
1877
|
break;
|
|
1806
1878
|
}
|
|
@@ -1830,6 +1902,21 @@ import { ConfigZod } from "@xyo-network/xl1-sdk";
|
|
|
1830
1902
|
import { cosmiconfig } from "cosmiconfig";
|
|
1831
1903
|
var configName = "xyo";
|
|
1832
1904
|
var configSection = "xl1";
|
|
1905
|
+
var ConfigFileNotFoundError = class extends Error {
|
|
1906
|
+
static {
|
|
1907
|
+
__name(this, "ConfigFileNotFoundError");
|
|
1908
|
+
}
|
|
1909
|
+
constructor(configPath) {
|
|
1910
|
+
super(`Config file not found: ${configPath}`);
|
|
1911
|
+
this.name = "ConfigFileNotFoundError";
|
|
1912
|
+
}
|
|
1913
|
+
};
|
|
1914
|
+
var isMissingFileError = /* @__PURE__ */ __name((error) => {
|
|
1915
|
+
return error instanceof Error && "code" in error && error.code === "ENOENT";
|
|
1916
|
+
}, "isMissingFileError");
|
|
1917
|
+
var isRecord = /* @__PURE__ */ __name((value) => {
|
|
1918
|
+
return typeof value === "object" && value !== null;
|
|
1919
|
+
}, "isRecord");
|
|
1833
1920
|
async function tryParseConfig(options) {
|
|
1834
1921
|
const { configPath, searchPlaces } = options ?? {};
|
|
1835
1922
|
const explorer = cosmiconfig(configName, {
|
|
@@ -1837,10 +1924,25 @@ async function tryParseConfig(options) {
|
|
|
1837
1924
|
// loaders: { '.ts': TypeScriptLoader() },
|
|
1838
1925
|
searchPlaces
|
|
1839
1926
|
});
|
|
1840
|
-
|
|
1841
|
-
if (isDefined4(
|
|
1927
|
+
let result;
|
|
1928
|
+
if (isDefined4(configPath)) {
|
|
1929
|
+
try {
|
|
1930
|
+
result = (await explorer.load(configPath))?.config;
|
|
1931
|
+
} catch (error) {
|
|
1932
|
+
if (isMissingFileError(error)) {
|
|
1933
|
+
throw new ConfigFileNotFoundError(configPath);
|
|
1934
|
+
}
|
|
1935
|
+
throw error;
|
|
1936
|
+
}
|
|
1937
|
+
if (!isDefined4(result) || isNull(result)) {
|
|
1938
|
+
throw new ConfigFileNotFoundError(configPath);
|
|
1939
|
+
}
|
|
1940
|
+
} else {
|
|
1941
|
+
result = (await explorer.search())?.config;
|
|
1942
|
+
}
|
|
1943
|
+
if (isRecord(result)) {
|
|
1842
1944
|
const section = result[configSection];
|
|
1843
|
-
if (
|
|
1945
|
+
if (isRecord(section)) {
|
|
1844
1946
|
const parsed = ConfigZod.loose().parse(section);
|
|
1845
1947
|
return typeof section.mnemonic === "string" ? {
|
|
1846
1948
|
...parsed,
|
|
@@ -1857,6 +1959,7 @@ export * from "@xyo-network/chain-orchestration-evm";
|
|
|
1857
1959
|
export * from "@xyo-network/chain-orchestration-express";
|
|
1858
1960
|
export * from "@xyo-network/chain-orchestration-storage";
|
|
1859
1961
|
export {
|
|
1962
|
+
ActorMnemonicNotAllowedError,
|
|
1860
1963
|
ApiConfigContext,
|
|
1861
1964
|
ApiConfigZod,
|
|
1862
1965
|
BUILT_IN_DEV_MNEMONIC,
|
|
@@ -1864,10 +1967,16 @@ export {
|
|
|
1864
1967
|
BridgeConfigContext,
|
|
1865
1968
|
BridgeConfigZod,
|
|
1866
1969
|
BridgeSettingsZod,
|
|
1970
|
+
ConfigFileNotFoundError,
|
|
1971
|
+
DEFAULT_ACTOR_ACCOUNT_PATH,
|
|
1867
1972
|
DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL,
|
|
1868
1973
|
DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL,
|
|
1869
1974
|
DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL,
|
|
1870
1975
|
DefaultServiceProvider,
|
|
1976
|
+
DerivationPathCollisionError,
|
|
1977
|
+
FinalizerActor,
|
|
1978
|
+
FinalizerConfigContext,
|
|
1979
|
+
FinalizerConfigZod,
|
|
1871
1980
|
GENESIS_REWARD_AMOUNT,
|
|
1872
1981
|
GenericHost,
|
|
1873
1982
|
INSECURE_GENESIS_REWARD_MNEMONIC,
|
|
@@ -1880,36 +1989,39 @@ export {
|
|
|
1880
1989
|
ProducerConfigZod,
|
|
1881
1990
|
PublicChildManifests,
|
|
1882
1991
|
ROOT_WALLET_RUNTIME_ID,
|
|
1992
|
+
RejectedTransactionsArchivistProviderMoniker,
|
|
1883
1993
|
RewardRedemptionConfigContext,
|
|
1884
1994
|
RewardRedemptionConfigZod,
|
|
1885
1995
|
SHARED_ACCOUNT_REPORT_COUNT,
|
|
1886
1996
|
ServiceLifetime,
|
|
1887
|
-
|
|
1888
|
-
ValidatorConfigContext,
|
|
1889
|
-
ValidatorConfigZod,
|
|
1997
|
+
SimpleRejectedTransactionsArchivistProvider,
|
|
1890
1998
|
asApiConfig,
|
|
1891
1999
|
asApiConfigContext,
|
|
1892
2000
|
asBridgeConfig,
|
|
1893
2001
|
asBridgeConfigContext,
|
|
2002
|
+
asFinalizerConfig,
|
|
2003
|
+
asFinalizerConfigContext,
|
|
1894
2004
|
asMempoolConfig,
|
|
1895
2005
|
asMempoolConfigContext,
|
|
1896
2006
|
asProducerConfig,
|
|
1897
2007
|
asProducerConfigContext,
|
|
1898
2008
|
asRewardRedemptionConfig,
|
|
1899
2009
|
asRewardRedemptionConfigContext,
|
|
1900
|
-
|
|
1901
|
-
asValidatorConfigContext,
|
|
2010
|
+
assertNoActorMnemonics,
|
|
1902
2011
|
basicRemoteRunnerLocator,
|
|
1903
2012
|
basicRemoteViewerLocator,
|
|
2013
|
+
buildInsecureGenesisRewardAccounts,
|
|
1904
2014
|
buildTelemetryConfig,
|
|
1905
2015
|
clearResolvedWalletReport,
|
|
1906
2016
|
contextFromConfigWithoutLocator,
|
|
1907
2017
|
createProducerChainStakeIntentBlock,
|
|
2018
|
+
detectDerivationPathCollisions,
|
|
2019
|
+
expandAccountPath,
|
|
2020
|
+
formatInsecureGenesisRewardWarning,
|
|
1908
2021
|
formatWalletReport,
|
|
1909
2022
|
getBuiltInDevMnemonic,
|
|
1910
2023
|
getInsecureGenesisRewardMnemonic,
|
|
1911
2024
|
getLocator,
|
|
1912
|
-
getReservedActorIndex,
|
|
1913
2025
|
getResolvedWalletReport,
|
|
1914
2026
|
initActorAccount,
|
|
1915
2027
|
initActorSeedPhrase,
|
|
@@ -1924,22 +2036,24 @@ export {
|
|
|
1924
2036
|
initStatusReporter,
|
|
1925
2037
|
initTransferSummaryMap,
|
|
1926
2038
|
initializeResolvedWalletReport,
|
|
2039
|
+
isAbsoluteAccountPath,
|
|
1927
2040
|
isApiConfig,
|
|
1928
2041
|
isApiConfigContext,
|
|
1929
2042
|
isBridgeConfig,
|
|
1930
2043
|
isBridgeConfigContext,
|
|
2044
|
+
isFinalizerConfig,
|
|
2045
|
+
isFinalizerConfigContext,
|
|
1931
2046
|
isMempoolConfig,
|
|
1932
2047
|
isMempoolConfigContext,
|
|
1933
2048
|
isProducerConfig,
|
|
1934
2049
|
isProducerConfigContext,
|
|
1935
2050
|
isRewardRedemptionConfig,
|
|
1936
2051
|
isRewardRedemptionConfigContext,
|
|
1937
|
-
isValidatorConfig,
|
|
1938
|
-
isValidatorConfigContext,
|
|
1939
2052
|
loadNode,
|
|
1940
2053
|
localLocatorFromConfig,
|
|
1941
2054
|
locatorsFromConfig,
|
|
1942
2055
|
mergeConfig,
|
|
2056
|
+
resolveActorAccountPath,
|
|
1943
2057
|
resolveActorWallet,
|
|
1944
2058
|
resolveGenesisRewardAddress,
|
|
1945
2059
|
resolveRootWallet,
|
|
@@ -1951,14 +2065,14 @@ export {
|
|
|
1951
2065
|
toApiConfigContext,
|
|
1952
2066
|
toBridgeConfig,
|
|
1953
2067
|
toBridgeConfigContext,
|
|
2068
|
+
toFinalizerConfig,
|
|
2069
|
+
toFinalizerConfigContext,
|
|
1954
2070
|
toMempoolConfig,
|
|
1955
2071
|
toMempoolConfigContext,
|
|
1956
2072
|
toProducerConfig,
|
|
1957
2073
|
toProducerConfigContext,
|
|
1958
2074
|
toRewardRedemptionConfig,
|
|
1959
2075
|
toRewardRedemptionConfigContext,
|
|
1960
|
-
toValidatorConfig,
|
|
1961
|
-
toValidatorConfigContext,
|
|
1962
2076
|
tryParseConfig
|
|
1963
2077
|
};
|
|
1964
2078
|
//# sourceMappingURL=index.mjs.map
|