@xyo-network/chain-orchestration 1.19.13 → 1.19.15

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.
Files changed (165) hide show
  1. package/dist/neutral/ChainInitializableParams.d.ts +1 -0
  2. package/dist/neutral/ChainInitializableParams.d.ts.map +1 -1
  3. package/dist/neutral/actor/ValidatorActor.d.ts +2 -2
  4. package/dist/neutral/actor/ValidatorActor.d.ts.map +1 -1
  5. package/dist/neutral/archivists/ChainFinalized/archivist.d.ts.map +1 -1
  6. package/dist/neutral/archivists/ChainFinalized/local.d.ts +2 -2
  7. package/dist/neutral/archivists/ChainFinalized/local.d.ts.map +1 -1
  8. package/dist/neutral/archivists/PendingBlocks/archivist.d.ts +2 -2
  9. package/dist/neutral/archivists/PendingBlocks/archivist.d.ts.map +1 -1
  10. package/dist/neutral/archivists/PendingBlocks/local.d.ts +2 -4
  11. package/dist/neutral/archivists/PendingBlocks/local.d.ts.map +1 -1
  12. package/dist/neutral/archivists/RejectedTransactions/archivist.d.ts +2 -2
  13. package/dist/neutral/archivists/RejectedTransactions/archivist.d.ts.map +1 -1
  14. package/dist/neutral/archivists/RejectedTransactions/local.d.ts +1 -2
  15. package/dist/neutral/archivists/RejectedTransactions/local.d.ts.map +1 -1
  16. package/dist/neutral/archivists/StakeIntentState/archivist.d.ts +2 -3
  17. package/dist/neutral/archivists/StakeIntentState/archivist.d.ts.map +1 -1
  18. package/dist/neutral/archivists/StakeIntentState/local.d.ts +2 -3
  19. package/dist/neutral/archivists/StakeIntentState/local.d.ts.map +1 -1
  20. package/dist/neutral/config/actors/Api.d.ts +890 -0
  21. package/dist/neutral/config/actors/Api.d.ts.map +1 -0
  22. package/dist/neutral/config/actors/Bridge.d.ts +1213 -0
  23. package/dist/neutral/config/actors/Bridge.d.ts.map +1 -0
  24. package/dist/neutral/config/actors/Mempool.d.ts +890 -0
  25. package/dist/neutral/config/actors/Mempool.d.ts.map +1 -0
  26. package/dist/neutral/config/actors/Producer.d.ts +962 -0
  27. package/dist/neutral/config/actors/Producer.d.ts.map +1 -0
  28. package/dist/neutral/config/actors/RewardRedemption.d.ts +878 -0
  29. package/dist/neutral/config/actors/RewardRedemption.d.ts.map +1 -0
  30. package/dist/neutral/config/actors/index.d.ts +7 -0
  31. package/dist/neutral/config/actors/index.d.ts.map +1 -0
  32. package/dist/neutral/config/index.d.ts +5 -0
  33. package/dist/neutral/config/index.d.ts.map +1 -0
  34. package/dist/neutral/config/locators/actors/apiLocatorFromConfig.d.ts +5 -0
  35. package/dist/neutral/config/locators/actors/apiLocatorFromConfig.d.ts.map +1 -0
  36. package/dist/neutral/config/locators/actors/bridgeLocatorFromConfig.d.ts +5 -0
  37. package/dist/neutral/config/locators/actors/bridgeLocatorFromConfig.d.ts.map +1 -0
  38. package/dist/neutral/config/locators/actors/index.d.ts +7 -0
  39. package/dist/neutral/config/locators/actors/index.d.ts.map +1 -0
  40. package/dist/neutral/config/locators/actors/mempoolLocatorFromConfig.d.ts +5 -0
  41. package/dist/neutral/config/locators/actors/mempoolLocatorFromConfig.d.ts.map +1 -0
  42. package/dist/neutral/config/locators/actors/producerLocatorFromConfig.d.ts +4 -0
  43. package/dist/neutral/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -0
  44. package/dist/neutral/config/locators/actors/rewardRedemptionLocatorFromConfig.d.ts +5 -0
  45. package/dist/neutral/config/locators/actors/rewardRedemptionLocatorFromConfig.d.ts.map +1 -0
  46. package/dist/neutral/config/locators/actors/validatorLocatorFromConfig.d.ts +4 -0
  47. package/dist/neutral/config/locators/actors/validatorLocatorFromConfig.d.ts.map +1 -0
  48. package/dist/neutral/config/locators/contextFromConfigWithoutLocator.d.ts +4 -0
  49. package/dist/neutral/config/locators/contextFromConfigWithoutLocator.d.ts.map +1 -0
  50. package/dist/neutral/config/locators/index.d.ts +8 -0
  51. package/dist/neutral/config/locators/index.d.ts.map +1 -0
  52. package/dist/neutral/config/locators/localLocatorFromConfig.d.ts +3 -0
  53. package/dist/neutral/config/locators/localLocatorFromConfig.d.ts.map +1 -0
  54. package/dist/neutral/config/locators/locatorsFromConfig.d.ts +3 -0
  55. package/dist/neutral/config/locators/locatorsFromConfig.d.ts.map +1 -0
  56. package/dist/neutral/config/locators/remoteLocatorFromConfig.d.ts +3 -0
  57. package/dist/neutral/config/locators/remoteLocatorFromConfig.d.ts.map +1 -0
  58. package/dist/neutral/config/locators/rootLocatorFromConfig.d.ts +3 -0
  59. package/dist/neutral/config/locators/rootLocatorFromConfig.d.ts.map +1 -0
  60. package/dist/neutral/config/locators/telemetryContextFromConfig.d.ts +3 -0
  61. package/dist/neutral/config/locators/telemetryContextFromConfig.d.ts.map +1 -0
  62. package/dist/neutral/config/mergeConfig.d.ts +67 -0
  63. package/dist/neutral/config/mergeConfig.d.ts.map +1 -0
  64. package/dist/neutral/config/tryParseConfig.d.ts +133 -0
  65. package/dist/neutral/config/tryParseConfig.d.ts.map +1 -0
  66. package/dist/neutral/evm/initChainId.d.ts +3 -3
  67. package/dist/neutral/evm/initChainId.d.ts.map +1 -1
  68. package/dist/neutral/evm/initEvmProvider.d.ts +3 -9
  69. package/dist/neutral/evm/initEvmProvider.d.ts.map +1 -1
  70. package/dist/neutral/evm/initInfuraProvider.d.ts +4 -4
  71. package/dist/neutral/evm/initInfuraProvider.d.ts.map +1 -1
  72. package/dist/neutral/evm/initJsonRpcProvider.d.ts +4 -4
  73. package/dist/neutral/evm/initJsonRpcProvider.d.ts.map +1 -1
  74. package/dist/neutral/health/initHealthEndpoints.d.ts +4 -8
  75. package/dist/neutral/health/initHealthEndpoints.d.ts.map +1 -1
  76. package/dist/neutral/index.d.ts +1 -0
  77. package/dist/neutral/index.d.ts.map +1 -1
  78. package/dist/neutral/index.mjs +1019 -343
  79. package/dist/neutral/index.mjs.map +1 -1
  80. package/dist/neutral/init/index.d.ts +2 -2
  81. package/dist/neutral/init/index.d.ts.map +1 -1
  82. package/dist/neutral/init/initActorAccount.d.ts +4 -0
  83. package/dist/neutral/init/initActorAccount.d.ts.map +1 -0
  84. package/dist/neutral/init/initActorSeedPhrase.d.ts +4 -0
  85. package/dist/neutral/init/initActorSeedPhrase.d.ts.map +1 -0
  86. package/dist/neutral/init/initBalanceSummaryMap.d.ts +2 -3
  87. package/dist/neutral/init/initBalanceSummaryMap.d.ts.map +1 -1
  88. package/dist/neutral/init/initBridgedModule.d.ts +4 -7
  89. package/dist/neutral/init/initBridgedModule.d.ts.map +1 -1
  90. package/dist/neutral/init/initEvmProvidersIfAvailable.d.ts.map +1 -1
  91. package/dist/neutral/init/initFinalizationArchivistIfNeeded.d.ts +2 -2
  92. package/dist/neutral/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
  93. package/dist/neutral/init/initServerNode.d.ts +2 -9
  94. package/dist/neutral/init/initServerNode.d.ts.map +1 -1
  95. package/dist/neutral/init/initTransferSummaryMap.d.ts +2 -3
  96. package/dist/neutral/init/initTransferSummaryMap.d.ts.map +1 -1
  97. package/dist/neutral/init/initWallet.d.ts +2 -7
  98. package/dist/neutral/init/initWallet.d.ts.map +1 -1
  99. package/dist/neutral/manifest/getLocator.d.ts +2 -7
  100. package/dist/neutral/manifest/getLocator.d.ts.map +1 -1
  101. package/dist/neutral/manifest/loadNode.d.ts +2 -8
  102. package/dist/neutral/manifest/loadNode.d.ts.map +1 -1
  103. package/dist/neutral/orchestrator/Orchestrator.d.ts +4 -4
  104. package/dist/neutral/orchestrator/Orchestrator.d.ts.map +1 -1
  105. package/package.json +51 -31
  106. package/src/ChainInitializableParams.ts +1 -0
  107. package/src/actor/ValidatorActor.ts +3 -2
  108. package/src/archivists/ChainFinalized/archivist.ts +1 -1
  109. package/src/archivists/ChainFinalized/local.ts +2 -2
  110. package/src/archivists/PendingBlocks/archivist.ts +3 -3
  111. package/src/archivists/PendingBlocks/local.ts +2 -2
  112. package/src/archivists/RejectedTransactions/archivist.ts +5 -5
  113. package/src/archivists/RejectedTransactions/local.ts +1 -2
  114. package/src/archivists/StakeIntentState/archivist.ts +12 -15
  115. package/src/archivists/StakeIntentState/local.ts +2 -4
  116. package/src/config/actors/Api.ts +29 -0
  117. package/src/config/actors/Bridge.ts +133 -0
  118. package/src/config/actors/Mempool.ts +39 -0
  119. package/src/config/actors/Producer.ts +56 -0
  120. package/src/config/actors/RewardRedemption.ts +21 -0
  121. package/src/config/actors/index.ts +6 -0
  122. package/src/config/index.ts +4 -0
  123. package/src/config/locators/actors/apiLocatorFromConfig.ts +25 -0
  124. package/src/config/locators/actors/bridgeLocatorFromConfig.ts +71 -0
  125. package/src/config/locators/actors/index.ts +6 -0
  126. package/src/config/locators/actors/mempoolLocatorFromConfig.ts +21 -0
  127. package/src/config/locators/actors/producerLocatorFromConfig.ts +66 -0
  128. package/src/config/locators/actors/rewardRedemptionLocatorFromConfig.ts +21 -0
  129. package/src/config/locators/actors/validatorLocatorFromConfig.ts +15 -0
  130. package/src/config/locators/contextFromConfigWithoutLocator.ts +25 -0
  131. package/src/config/locators/index.ts +7 -0
  132. package/src/config/locators/localLocatorFromConfig.ts +56 -0
  133. package/src/config/locators/locatorsFromConfig.ts +67 -0
  134. package/src/config/locators/remoteLocatorFromConfig.ts +48 -0
  135. package/src/config/locators/rootLocatorFromConfig.ts +47 -0
  136. package/src/config/locators/telemetryContextFromConfig.ts +15 -0
  137. package/src/config/mergeConfig.ts +11 -0
  138. package/src/config/tryParseConfig.ts +36 -0
  139. package/src/evm/initChainId.ts +3 -3
  140. package/src/evm/initEvmProvider.ts +8 -9
  141. package/src/evm/initInfuraProvider.ts +9 -7
  142. package/src/evm/initJsonRpcProvider.ts +9 -7
  143. package/src/health/initHealthEndpoints.ts +15 -18
  144. package/src/index.ts +1 -0
  145. package/src/init/index.ts +2 -2
  146. package/src/init/initActorAccount.ts +28 -0
  147. package/src/init/{initSeedPhrase.ts → initActorSeedPhrase.ts} +10 -10
  148. package/src/init/initBalanceSummaryMap.ts +4 -4
  149. package/src/init/initBridgedModule.ts +6 -8
  150. package/src/init/initEvmProvidersIfAvailable.ts +6 -5
  151. package/src/init/initFinalizationArchivistIfNeeded.ts +8 -5
  152. package/src/init/initServerNode.ts +7 -16
  153. package/src/init/initTransferSummaryMap.ts +4 -4
  154. package/src/init/initWallet.ts +33 -35
  155. package/src/manifest/getLocator.ts +4 -10
  156. package/src/manifest/loadNode.ts +6 -15
  157. package/src/orchestrator/Orchestrator.ts +4 -6
  158. package/dist/neutral/ConfigContext.d.ts +0 -8
  159. package/dist/neutral/ConfigContext.d.ts.map +0 -1
  160. package/dist/neutral/init/initProducerAccount.d.ts +0 -6
  161. package/dist/neutral/init/initProducerAccount.d.ts.map +0 -1
  162. package/dist/neutral/init/initSeedPhrase.d.ts +0 -6
  163. package/dist/neutral/init/initSeedPhrase.d.ts.map +0 -1
  164. package/src/ConfigContext.ts +0 -9
  165. package/src/init/initProducerAccount.ts +0 -30
@@ -66,8 +66,8 @@ ValidatorActor = _ts_decorate([
66
66
  ], ValidatorActor);
67
67
 
68
68
  // src/archivists/ChainFinalized/archivist.ts
69
+ import { timeBudget } from "@xylabs/sdk-js";
69
70
  import { startupSpanAsync } from "@xyo-network/chain-utils";
70
- import { timeBudget } from "@xyo-network/xl1-sdk";
71
71
  import { Mutex as Mutex2 } from "async-mutex";
72
72
 
73
73
  // src/archivists/ChainFinalized/local.ts
@@ -101,14 +101,15 @@ var getLocalPersistentArchivist = /* @__PURE__ */ __name((name, dbName, storeNam
101
101
  // src/archivists/ChainFinalized/local.ts
102
102
  var mutex = new Mutex();
103
103
  var singleton;
104
- var initLocalChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config }) => {
104
+ async function initLocalChainFinalizedArchivist({ config }) {
105
105
  return await mutex.runExclusive(async () => {
106
106
  if (singleton) return singleton;
107
107
  const { root } = config.storage;
108
108
  singleton = await getLocalPersistentArchivist("local-finalized-chain", "chain", "finalized", root);
109
109
  return singleton;
110
110
  });
111
- }, "initLocalChainFinalizedArchivist");
111
+ }
112
+ __name(initLocalChainFinalizedArchivist, "initLocalChainFinalizedArchivist");
112
113
 
113
114
  // src/archivists/ChainFinalized/archivist.ts
114
115
  var mutex2 = new Mutex2();
@@ -126,22 +127,23 @@ async function initChainFinalizedArchivist(context) {
126
127
  __name(initChainFinalizedArchivist, "initChainFinalizedArchivist");
127
128
 
128
129
  // src/archivists/PendingBlocks/archivist.ts
130
+ import { timeBudget as timeBudget2 } from "@xylabs/sdk-js";
129
131
  import { startupSpanAsync as startupSpanAsync2 } from "@xyo-network/chain-utils";
130
- import { timeBudget as timeBudget2 } from "@xyo-network/xl1-sdk";
131
132
  import { Mutex as Mutex4 } from "async-mutex";
132
133
 
133
134
  // src/archivists/PendingBlocks/local.ts
134
135
  import { Mutex as Mutex3 } from "async-mutex";
135
136
  var mutex3 = new Mutex3();
136
137
  var singleton3;
137
- var initLocalPendingBlocksArchivist = /* @__PURE__ */ __name(async ({ config }) => {
138
+ async function initLocalPendingBlocksArchivist({ config }) {
138
139
  return await mutex3.runExclusive(async () => {
139
140
  if (singleton3) return singleton3;
140
141
  const { root } = config.storage;
141
142
  singleton3 = await getLocalPersistentArchivist("local-pending-blocks", "chain", "pending_block_bundles", root);
142
143
  return singleton3;
143
144
  });
144
- }, "initLocalPendingBlocksArchivist");
145
+ }
146
+ __name(initLocalPendingBlocksArchivist, "initLocalPendingBlocksArchivist");
145
147
 
146
148
  // src/archivists/PendingBlocks/archivist.ts
147
149
  var mutex4 = new Mutex4();
@@ -159,8 +161,8 @@ async function initPendingBlocksArchivist(context) {
159
161
  __name(initPendingBlocksArchivist, "initPendingBlocksArchivist");
160
162
 
161
163
  // src/archivists/RejectedTransactions/archivist.ts
164
+ import { timeBudget as timeBudget3 } from "@xylabs/sdk-js";
162
165
  import { startupSpanAsync as startupSpanAsync3 } from "@xyo-network/chain-utils";
163
- import { timeBudget as timeBudget3 } from "@xyo-network/xl1-sdk";
164
166
  import { Mutex as Mutex6 } from "async-mutex";
165
167
 
166
168
  // src/archivists/RejectedTransactions/local.ts
@@ -168,7 +170,7 @@ import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archi
168
170
  import { Mutex as Mutex5 } from "async-mutex";
169
171
  var mutex5 = new Mutex5();
170
172
  var singleton5;
171
- var initLocalRejectedTransactionsArchivist = /* @__PURE__ */ __name(async () => {
173
+ async function initLocalRejectedTransactionsArchivist() {
172
174
  return await mutex5.runExclusive(async () => {
173
175
  if (singleton5) return singleton5;
174
176
  singleton5 = await MemoryArchivist.create({
@@ -181,16 +183,17 @@ var initLocalRejectedTransactionsArchivist = /* @__PURE__ */ __name(async () =>
181
183
  });
182
184
  return singleton5;
183
185
  });
184
- }, "initLocalRejectedTransactionsArchivist");
186
+ }
187
+ __name(initLocalRejectedTransactionsArchivist, "initLocalRejectedTransactionsArchivist");
185
188
 
186
189
  // src/archivists/RejectedTransactions/archivist.ts
187
190
  var mutex6 = new Mutex6();
188
191
  var singleton6;
189
- async function initRejectedTransactionsArchivist(params) {
192
+ async function initRejectedTransactionsArchivist({ logger }) {
190
193
  return await mutex6.runExclusive(async () => {
191
194
  if (singleton6) return singleton6;
192
- return await timeBudget3("initRejectedTransactionsArchivist", params.logger, async () => {
193
- const local = await startupSpanAsync3("RejectedTransactionsArchivist:initLocal", () => initLocalRejectedTransactionsArchivist(params));
195
+ return await timeBudget3("initRejectedTransactionsArchivist", logger, async () => {
196
+ const local = await startupSpanAsync3("RejectedTransactionsArchivist:initLocal", () => initLocalRejectedTransactionsArchivist());
194
197
  singleton6 = local;
195
198
  return singleton6;
196
199
  }, 2e3, true);
@@ -199,9 +202,8 @@ async function initRejectedTransactionsArchivist(params) {
199
202
  __name(initRejectedTransactionsArchivist, "initRejectedTransactionsArchivist");
200
203
 
201
204
  // src/archivists/StakeIntentState/archivist.ts
202
- import { assertEx as assertEx2 } from "@xylabs/sdk-js";
205
+ import { assertEx as assertEx2, timeBudget as timeBudget4 } from "@xylabs/sdk-js";
203
206
  import { startupSpanAsync as startupSpanAsync4 } from "@xyo-network/chain-utils";
204
- import { timeBudget as timeBudget4 } from "@xyo-network/xl1-sdk";
205
207
  import { Mutex as Mutex8 } from "async-mutex";
206
208
 
207
209
  // src/archivists/StakeIntentState/local.ts
@@ -209,19 +211,20 @@ import { assertEx } from "@xylabs/sdk-js";
209
211
  import { Mutex as Mutex7 } from "async-mutex";
210
212
  var mutex7 = new Mutex7();
211
213
  var singleton7;
212
- var initLocalStakeIntentStateArchivist = /* @__PURE__ */ __name(async ({ config }) => {
214
+ async function initLocalStakeIntentStateArchivist({ config }) {
213
215
  return await mutex7.runExclusive(async () => {
214
216
  if (singleton7) return singleton7;
215
217
  const { root } = config.storage;
216
218
  singleton7 = await getLocalPersistentArchivist("local-stake-intent-state", "stakeIntent", "state", root);
217
219
  return assertEx(singleton7, () => new Error("Failed to initialize stake intent state archivist"));
218
220
  });
219
- }, "initLocalStakeIntentStateArchivist");
221
+ }
222
+ __name(initLocalStakeIntentStateArchivist, "initLocalStakeIntentStateArchivist");
220
223
 
221
224
  // src/archivists/StakeIntentState/archivist.ts
222
225
  var mutex8 = new Mutex8();
223
226
  var singleton8;
224
- var initStakeIntentStateArchivist = /* @__PURE__ */ __name(async (context) => {
227
+ async function initStakeIntentStateArchivist(context) {
225
228
  return await mutex8.runExclusive(async () => {
226
229
  if (singleton8) return singleton8;
227
230
  return await timeBudget4("initStakeIntentStateArchivist", context.logger, async () => {
@@ -230,7 +233,8 @@ var initStakeIntentStateArchivist = /* @__PURE__ */ __name(async (context) => {
230
233
  return assertEx2(singleton8, () => "StakeIntentStateArchivist is undefined");
231
234
  }, 2e3, true);
232
235
  });
233
- }, "initStakeIntentStateArchivist");
236
+ }
237
+ __name(initStakeIntentStateArchivist, "initStakeIntentStateArchivist");
234
238
 
235
239
  // src/buildTelemetryConfig.ts
236
240
  function buildTelemetryConfig(config, serviceName, serviceVersion, defaultMetricsScrapePort = 9464) {
@@ -251,198 +255,400 @@ function buildTelemetryConfig(config, serviceName, serviceVersion, defaultMetric
251
255
  }
252
256
  __name(buildTelemetryConfig, "buildTelemetryConfig");
253
257
 
254
- // src/createDeclarationIntentBlock.ts
255
- import { buildNextBlock } from "@xyo-network/chain-sdk";
256
- import { createDeclarationIntent } from "@xyo-network/xl1-sdk";
257
- async function createProducerChainStakeIntentBlock(prevBlock, producerAccount, range) {
258
- const producerDeclarationPayload = createDeclarationIntent(producerAccount.address, "producer", range[0], range[1]);
259
- return await buildNextBlock(prevBlock, [], [
260
- producerDeclarationPayload
261
- ], [
262
- producerAccount
263
- ]);
264
- }
265
- __name(createProducerChainStakeIntentBlock, "createProducerChainStakeIntentBlock");
258
+ // src/config/actors/Api.ts
259
+ import { zodAsFactory, zodIsFactory, zodToFactory } from "@xylabs/zod";
260
+ import { BaseConfigContextZod, HostActorConfigZod } from "@xyo-network/xl1-sdk";
261
+ import { globalRegistry, z } from "zod";
262
+ var ApiConfigZod = HostActorConfigZod.extend(z.object({
263
+ initRewardsCache: z.union([
264
+ z.number(),
265
+ z.string(),
266
+ z.boolean()
267
+ ]).transform((v) => v !== "0" && v !== "false" && v !== false && v != 0).default(true).register(globalRegistry, {
268
+ description: "Whether to initialize the rewards cache on startup",
269
+ title: "api.initRewardsCache",
270
+ type: "boolean"
271
+ })
272
+ }).shape);
273
+ var isApiConfig = zodIsFactory(ApiConfigZod);
274
+ var asApiConfig = zodAsFactory(ApiConfigZod, "asApiConfig");
275
+ var toApiConfig = zodToFactory(ApiConfigZod, "toApiConfig");
276
+ var ApiConfigContext = BaseConfigContextZod.extend({
277
+ config: ApiConfigZod
278
+ });
279
+ var isApiConfigContext = zodIsFactory(ApiConfigContext);
280
+ var asApiConfigContext = zodAsFactory(ApiConfigContext, "asApiConfigContext");
281
+ var toApiConfigContext = zodToFactory(ApiConfigContext, "toApiConfigContext");
266
282
 
267
- // src/evm/initChainId.ts
268
- import { assertEx as assertEx3, hexFrom, isDefined, isHex } from "@xylabs/sdk-js";
269
- var canUseChainId = /* @__PURE__ */ __name((config) => {
270
- return isDefined(config.evm.chainId);
271
- }, "canUseChainId");
272
- var getChainId = /* @__PURE__ */ __name((config) => {
273
- const chainId = assertEx3(config.evm.chainId, () => "Missing config.evm.chainId");
274
- if (isHex(chainId, {
275
- prefix: true
276
- })) {
277
- const hex = hexFrom(chainId);
278
- const parsed = Number.parseInt(hex, 16);
279
- return parsed;
280
- } else {
281
- const parsed = Number.parseInt(chainId, 10);
282
- return parsed;
283
- }
284
- }, "getChainId");
283
+ // src/config/actors/Bridge.ts
284
+ import { AddressZod, HexZod, toAddress, toHex } from "@xylabs/sdk-js";
285
+ import { zodAsFactory as zodAsFactory2, zodIsFactory as zodIsFactory2, zodToFactory as zodToFactory2 } from "@xylabs/zod";
286
+ import { AttoXL1ConvertFactor, BaseConfigContextZod as BaseConfigContextZod2, HostActorConfigZod as HostActorConfigZod2, XL1 } from "@xyo-network/xl1-sdk";
287
+ import { globalRegistry as globalRegistry2, z as z2 } from "zod";
288
+ var DEFAULT_FIXED_FEE = toHex(XL1(1n) * AttoXL1ConvertFactor.xl1);
289
+ var DEFAULT_HARDHAT_BRIDGE_CONTRACT = toAddress("2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6");
290
+ var DEFAULT_HARDHAT_CHAIN_ID = toHex("7A69");
291
+ var DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY = toHex("0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80");
292
+ var DEFAULT_HARDHAT_TOKEN_CONTRACT = toAddress("5FbDB2315678afecb367f032d93F642f64180aa3");
293
+ var DEFAULT_MAX_BRIDGE_AMOUNT = toHex(XL1(100000n) * AttoXL1ConvertFactor.xl1);
294
+ var DEFAULT_MIN_BRIDGE_AMOUNT = toHex(XL1(10n) * AttoXL1ConvertFactor.xl1);
295
+ var BasisPointsZod = z2.coerce.number().int().nonnegative().max(1e4);
296
+ var BridgeConfigZod = HostActorConfigZod2.extend({
297
+ escrowAddress: AddressZod.optional().register(globalRegistry2, {
298
+ description: "Address to which bridge escrow will be sent",
299
+ title: "bridge.escrowAddress",
300
+ type: "string"
301
+ }),
302
+ feesAddress: AddressZod.optional().register(globalRegistry2, {
303
+ description: "Address to which bridge fees will be sent",
304
+ title: "bridge.feesAddress",
305
+ type: "string"
306
+ }),
307
+ feeFixed: HexZod.default(DEFAULT_FIXED_FEE).register(globalRegistry2, {
308
+ default: DEFAULT_FIXED_FEE,
309
+ description: "Fixed fee (in AttoXL1) applied to bridge transfers",
310
+ title: "bridge.feeFixed",
311
+ type: "bigint"
312
+ }),
313
+ feeRateBasisPoints: BasisPointsZod.default(500).register(globalRegistry2, {
314
+ default: 500,
315
+ description: "Variable rate fee (in basis points where 1 bps = 0.01%) applied to bridge transfers",
316
+ title: "bridge.feeRateBasisPoints",
317
+ type: "number"
318
+ }),
319
+ maxBridgeAmount: HexZod.default(DEFAULT_MAX_BRIDGE_AMOUNT).register(globalRegistry2, {
320
+ default: DEFAULT_MAX_BRIDGE_AMOUNT,
321
+ description: "Maximum amount allowed for a bridge transfer",
322
+ title: "bridge.maxBridgeAmount",
323
+ type: "string"
324
+ }),
325
+ minBridgeAmount: HexZod.default(DEFAULT_MIN_BRIDGE_AMOUNT).register(globalRegistry2, {
326
+ default: DEFAULT_MIN_BRIDGE_AMOUNT,
327
+ description: "Minimum amount required for a bridge transfer",
328
+ title: "bridge.minBridgeAmount",
329
+ type: "string"
330
+ }),
331
+ redisHost: z2.string().default("localhost").register(globalRegistry2, {
332
+ default: "localhost",
333
+ description: "Host for the Bridge Redis instance",
334
+ title: "bridge.redisHost",
335
+ type: "string"
336
+ }),
337
+ redisPort: z2.coerce.number().int().positive().default(6379).register(globalRegistry2, {
338
+ default: 6379,
339
+ description: "Port for the Bridge Redis instance",
340
+ title: "bridge.redisPort",
341
+ type: "number"
342
+ }),
343
+ remoteBridgeContractAddress: AddressZod.default(DEFAULT_HARDHAT_BRIDGE_CONTRACT).register(globalRegistry2, {
344
+ default: DEFAULT_HARDHAT_BRIDGE_CONTRACT,
345
+ description: "Hex representation of remote token address used for bridging",
346
+ title: "bridge.remoteBridgeContractAddress",
347
+ type: "string"
348
+ }),
349
+ remoteChainId: HexZod.default(DEFAULT_HARDHAT_CHAIN_ID).register(globalRegistry2, {
350
+ default: DEFAULT_HARDHAT_CHAIN_ID,
351
+ description: "Remote chain ID",
352
+ title: "bridge.remoteChainId",
353
+ type: "string"
354
+ }),
355
+ remoteTokenAddress: HexZod.default(DEFAULT_HARDHAT_TOKEN_CONTRACT).register(globalRegistry2, {
356
+ default: DEFAULT_HARDHAT_TOKEN_CONTRACT,
357
+ description: "Hex representation of remote token address used for bridging",
358
+ title: "bridge.remoteTokenAddress",
359
+ type: "string"
360
+ }),
361
+ remoteChainWalletPrivateKey: HexZod.default(DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY).register(globalRegistry2, {
362
+ description: "Private key for the wallet to use for the remote chain wallet",
363
+ title: "bridge.remoteChainWalletPrivateKey",
364
+ type: "string"
365
+ }),
366
+ xl1ChainId: HexZod.optional().register(globalRegistry2, {
367
+ description: "XL1 chain id used for bridging",
368
+ title: "bridge.xl1ChainId",
369
+ type: "string"
370
+ }),
371
+ xl1TokenAddress: HexZod.optional().register(globalRegistry2, {
372
+ description: "XL1 token address used for bridging",
373
+ title: "bridge.xl1TokenAddress",
374
+ type: "string"
375
+ })
376
+ });
377
+ var BridgeSettingsZod = BridgeConfigZod.pick({
378
+ feeFixed: true,
379
+ feeRateBasisPoints: true,
380
+ feesAddress: true,
381
+ escrowAddress: true,
382
+ maxBridgeAmount: true,
383
+ minBridgeAmount: true,
384
+ remoteChainId: true,
385
+ remoteTokenAddress: true,
386
+ xl1TokenAddress: true,
387
+ xl1ChainId: true
388
+ }).required();
389
+ var isBridgeConfig = zodIsFactory2(BridgeConfigZod);
390
+ var asBridgeConfig = zodAsFactory2(BridgeConfigZod, "asBridgeConfig");
391
+ var toBridgeConfig = zodToFactory2(BridgeConfigZod, "toBridgeConfig");
392
+ var BridgeConfigContext = BaseConfigContextZod2.extend({
393
+ config: BridgeConfigZod
394
+ });
395
+ var isBridgeConfigContext = zodIsFactory2(BridgeConfigContext);
396
+ var asBridgeConfigContext = zodAsFactory2(BridgeConfigContext, "asBridgeConfigContext");
397
+ var toBridgeConfigContext = zodToFactory2(BridgeConfigContext, "toBridgeConfigContext");
285
398
 
286
- // src/evm/initEvmProvider.ts
287
- import { assertEx as assertEx6 } from "@xylabs/sdk-js";
399
+ // src/config/actors/Mempool.ts
400
+ import { zodAsFactory as zodAsFactory3, zodIsFactory as zodIsFactory3, zodToFactory as zodToFactory3 } from "@xylabs/zod";
401
+ import { BaseConfigContextZod as BaseConfigContextZod3, HostActorConfigZod as HostActorConfigZod3 } from "@xyo-network/xl1-sdk";
402
+ import { globalRegistry as globalRegistry3, z as z3 } from "zod";
403
+ var MempoolConfigZod = HostActorConfigZod3.extend({
404
+ enabled: z3.union([
405
+ z3.string(),
406
+ z3.boolean()
407
+ ]).default("false").transform((val, ctx) => {
408
+ if (typeof val === "boolean") return val;
409
+ const normalized = val.toLowerCase().trim();
410
+ if ([
411
+ "true",
412
+ "1",
413
+ "yes",
414
+ "on"
415
+ ].includes(normalized)) return true;
416
+ if ([
417
+ "false",
418
+ "0",
419
+ "no",
420
+ "off"
421
+ ].includes(normalized)) return false;
422
+ ctx.addIssue({
423
+ code: "invalid_type",
424
+ expected: "boolean",
425
+ message: `Invalid boolean value: "${val}". Use true/false, 1/0, yes/no.`
426
+ });
427
+ return z3.NEVER;
428
+ }).register(globalRegistry3, {
429
+ default: "false",
430
+ description: "Enable the Mempool",
431
+ title: "mempool.enabled",
432
+ type: "boolean"
433
+ })
434
+ });
435
+ var isMempoolConfig = zodIsFactory3(MempoolConfigZod);
436
+ var asMempoolConfig = zodAsFactory3(MempoolConfigZod, "asMempoolConfig");
437
+ var toMempoolConfig = zodToFactory3(MempoolConfigZod, "toMempoolConfig");
438
+ var MempoolConfigContext = BaseConfigContextZod3.extend({
439
+ config: MempoolConfigZod
440
+ });
441
+ var isMempoolConfigContext = zodIsFactory3(MempoolConfigContext);
442
+ var asMempoolConfigContext = zodAsFactory3(MempoolConfigContext, "asMempoolConfigContext");
443
+ var toMempoolConfigContext = zodToFactory3(MempoolConfigContext, "toMempoolConfigContext");
288
444
 
289
- // src/evm/initInfuraProvider.ts
290
- import { assertEx as assertEx4, isDefined as isDefined2 } from "@xylabs/sdk-js";
291
- import { InfuraProvider } from "ethers/providers";
292
- var instance;
293
- var initInfuraProvider = /* @__PURE__ */ __name((config) => {
294
- if (instance) return instance;
295
- const providerConfig = getInfuraProviderConfig(config);
296
- instance = Promise.resolve(new InfuraProvider(providerConfig[0], providerConfig[1]));
297
- return instance;
298
- }, "initInfuraProvider");
299
- var canUseInfuraProvider = /* @__PURE__ */ __name((config) => {
300
- return canUseChainId(config) && isDefined2(config.evm?.infura?.projectId) && isDefined2(config.evm?.infura?.projectSecret);
301
- }, "canUseInfuraProvider");
302
- var getInfuraProviderConfig = /* @__PURE__ */ __name((config) => {
303
- const projectId = assertEx4(config.evm?.infura?.projectId, () => "Missing config.evm.infura.projectId");
304
- const projectSecret = assertEx4(config.evm?.infura?.projectSecret, () => "Missing config.evm.infura.projectSecret");
305
- return [
306
- getChainId(config),
307
- projectId,
308
- projectSecret
309
- ];
310
- }, "getInfuraProviderConfig");
445
+ // src/config/actors/Producer.ts
446
+ import { AddressZod as AddressZod2, asAddress } from "@xylabs/sdk-js";
447
+ import { zodAsFactory as zodAsFactory4, zodIsFactory as zodIsFactory4, zodToFactory as zodToFactory4 } from "@xylabs/zod";
448
+ import { ActorConfigZod, BaseConfigContextZod as BaseConfigContextZod4 } from "@xyo-network/xl1-sdk";
449
+ import { globalRegistry as globalRegistry4, z as z4 } from "zod";
450
+ var ProducerConfigZod = ActorConfigZod.extend(z4.object({
451
+ allowlist: z4.preprocess((val) => {
452
+ if (typeof val === "string") {
453
+ return val.split(",").map((s) => asAddress(s.trim()));
454
+ }
455
+ return val;
456
+ }, z4.array(AddressZod2).optional().register(globalRegistry4, {
457
+ description: "List of allowed producer addresses, if undefined anyone can participate",
458
+ title: "allowlist",
459
+ type: "array"
460
+ })),
461
+ disableIntentRedeclaration: z4.boolean().optional().register(globalRegistry4, {
462
+ description: "Should the producer skip redeclaring their intent to continue producing blocks",
463
+ title: "producer.disableIntentRedeclaration",
464
+ type: "boolean"
465
+ }),
466
+ heartbeatInterval: z4.coerce.number().default(36e5).register(globalRegistry4, {
467
+ description: "The number of milliseconds between heartbeats if no blocks are produced",
468
+ title: "producer.heartbeatInterval",
469
+ type: "number"
470
+ }),
471
+ // TODO: BigInt schema
472
+ minStake: z4.coerce.number().default(1).register(globalRegistry4, {
473
+ description: "Minimum stake required to be a Producer",
474
+ title: "producer.minStake",
475
+ type: "number"
476
+ }),
477
+ // TODO: Address schema
478
+ rewardAddress: z4.string().optional().register(globalRegistry4, {
479
+ description: "Address to receive block rewards",
480
+ title: "producer.rewardAddress",
481
+ type: "string"
482
+ })
483
+ }).shape);
484
+ var isProducerConfig = zodIsFactory4(ProducerConfigZod);
485
+ var asProducerConfig = zodAsFactory4(ProducerConfigZod, "asProducerConfig");
486
+ var toProducerConfig = zodToFactory4(ProducerConfigZod, "toProducerConfig");
487
+ var ProducerConfigContext = BaseConfigContextZod4.extend({
488
+ config: ProducerConfigZod
489
+ });
490
+ var isProducerConfigContext = zodIsFactory4(ProducerConfigContext);
491
+ var asProducerConfigContext = zodAsFactory4(ProducerConfigContext, "asProducerConfigContext");
492
+ var toProducerConfigContext = zodToFactory4(ProducerConfigContext, "toProducerConfigContext");
311
493
 
312
- // src/evm/initJsonRpcProvider.ts
313
- import { assertEx as assertEx5, isDefined as isDefined3 } from "@xylabs/sdk-js";
314
- import { JsonRpcProvider } from "ethers/providers";
315
- var initJsonRpcProvider = /* @__PURE__ */ __name((config) => {
316
- const providerConfig = getJsonRpcProviderConfig(config);
317
- return Promise.resolve(new JsonRpcProvider(...providerConfig));
318
- }, "initJsonRpcProvider");
319
- var canUseJsonRpcProvider = /* @__PURE__ */ __name((config) => {
320
- return canUseChainId(config) && isDefined3(config.evm.jsonRpc?.url);
321
- }, "canUseJsonRpcProvider");
322
- var getJsonRpcProviderConfig = /* @__PURE__ */ __name((config) => {
323
- const jsonRpcUrl = assertEx5(config.evm.jsonRpc?.url, () => "Missing config.evm.jsonRpc.url");
324
- return [
325
- jsonRpcUrl,
326
- getChainId(config)
327
- ];
328
- }, "getJsonRpcProviderConfig");
494
+ // src/config/actors/RewardRedemption.ts
495
+ import { zodAsFactory as zodAsFactory5, zodIsFactory as zodIsFactory5, zodToFactory as zodToFactory5 } from "@xylabs/zod";
496
+ import { BaseConfigContextZod as BaseConfigContextZod5, HostActorConfigZod as HostActorConfigZod4 } from "@xyo-network/xl1-sdk";
497
+ var RewardRedemptionConfigZod = HostActorConfigZod4.extend({});
498
+ var isRewardRedemptionConfig = zodIsFactory5(RewardRedemptionConfigZod);
499
+ var asRewardRedemptionConfig = zodAsFactory5(RewardRedemptionConfigZod, "asRewardRedemptionConfig");
500
+ var toRewardRedemptionConfig = zodToFactory5(RewardRedemptionConfigZod, "toRewardRedemptionConfig");
501
+ var RewardRedemptionConfigContext = BaseConfigContextZod5.extend({
502
+ config: RewardRedemptionConfigZod
503
+ });
504
+ var isRewardRedemptionConfigContext = zodIsFactory5(RewardRedemptionConfigContext);
505
+ var asRewardRedemptionConfigContext = zodAsFactory5(RewardRedemptionConfigContext, "asRewardRedemptionConfigContext");
506
+ var toRewardRedemptionConfigContext = zodToFactory5(RewardRedemptionConfigContext, "toRewardRedemptionConfigContext");
329
507
 
330
- // src/evm/initEvmProvider.ts
331
- var provider;
332
- var initEvmProvider = /* @__PURE__ */ __name(async ({ config }) => {
333
- if (provider) return provider;
334
- if (canUseInfuraProvider(config)) {
335
- provider = initInfuraProvider(config);
336
- } else if (canUseJsonRpcProvider(config)) {
337
- provider = initJsonRpcProvider(config);
338
- }
339
- return assertEx6(await provider, () => "No provider available");
340
- }, "initEvmProvider");
341
- var canUseEvmProvider = /* @__PURE__ */ __name(({ config }) => {
342
- return canUseInfuraProvider(config) || canUseJsonRpcProvider(config);
343
- }, "canUseEvmProvider");
344
-
345
- // src/health/initHealthEndpoints.ts
346
- import http from "http";
347
- import { isDefined as isDefined4 } from "@xylabs/sdk-js";
348
- var sendStatus = /* @__PURE__ */ __name((res, status, errorCode) => {
349
- const statusCode = status === "started" ? 200 : errorCode;
350
- res.writeHead(statusCode, {
351
- "Content-Type": "application/json"
352
- });
353
- res.end(JSON.stringify({
354
- status
355
- }));
356
- }, "sendStatus");
357
- var notFound = /* @__PURE__ */ __name((res) => {
358
- res.writeHead(404, {
359
- "Content-Type": "application/json"
508
+ // src/config/locators/actors/apiLocatorFromConfig.ts
509
+ import { ProviderFactoryLocator, SimpleXyoConnectionRunner, SimpleXyoGateway, SimpleXyoRunner } from "@xyo-network/xl1-sdk";
510
+ function apiLocatorFromConfig(context, parent) {
511
+ const locator = new ProviderFactoryLocator({
512
+ ...context,
513
+ locator: parent
360
514
  });
361
- res.end(JSON.stringify({
362
- status: "not found"
363
- }));
364
- }, "notFound");
365
- var createHealthServer = /* @__PURE__ */ __name((port, statusMonitor, logger) => {
366
- const server = http.createServer((req, res) => {
367
- const url = req.url ?? "";
368
- const status = statusMonitor.getGlobalStatus();
369
- switch (url) {
370
- case "/healthz": {
371
- sendStatus(res, status, 500);
372
- break;
373
- }
374
- case "/livez": {
375
- sendStatus(res, status, 503);
376
- break;
377
- }
378
- case "/readyz": {
379
- sendStatus(res, status, 503);
380
- break;
381
- }
382
- default: {
383
- notFound(res);
384
- }
385
- }
515
+ locator.registerMany([
516
+ SimpleXyoRunner.factory(SimpleXyoRunner.dependencies, {}),
517
+ SimpleXyoConnectionRunner.factory(SimpleXyoConnectionRunner.dependencies, {}),
518
+ SimpleXyoGateway.factory(SimpleXyoGateway.dependencies, {})
519
+ ]);
520
+ locator.freeze();
521
+ return locator;
522
+ }
523
+ __name(apiLocatorFromConfig, "apiLocatorFromConfig");
524
+
525
+ // src/config/locators/actors/bridgeLocatorFromConfig.ts
526
+ import { isDefined, isString } from "@xylabs/sdk-js";
527
+ import { HDWallet } from "@xyo-network/wallet";
528
+ import { AccountBalanceViewerRpcSchemas, ADDRESS_INDEX, BlockViewerRpcSchemas, FinalizationViewerRpcSchemas, generateXyoBaseWalletFromPhrase, HttpRpcTransport, JsonRpcAccountBalanceViewer, JsonRpcBlockViewer, JsonRpcFinalizationViewer, JsonRpcMempoolRunner, JsonRpcMempoolViewer, MempoolRunnerRpcSchemas, MempoolViewerRpcSchemas, ProviderFactoryLocator as ProviderFactoryLocator2, SimpleXyoConnectionRunner as SimpleXyoConnectionRunner2, SimpleXyoGatewayRunner, SimpleXyoRunner as SimpleXyoRunner2, SimpleXyoSigner } from "@xyo-network/xl1-sdk";
529
+ async function bridgeLocatorFromConfig(context, parent) {
530
+ const locator = new ProviderFactoryLocator2({
531
+ ...context,
532
+ locator: parent
386
533
  });
387
- server.listen(port, () => {
388
- logger.log(`Health server running on http://localhost:${port}`);
389
- logger.log(" - /healthz");
390
- logger.log(" - /livez");
391
- logger.log(" - /readyz");
534
+ const { config } = context;
535
+ const { mnemonic } = config;
536
+ const walletPhrase = isDefined(mnemonic) ? mnemonic : HDWallet.generateMnemonic();
537
+ const wallet = await generateXyoBaseWalletFromPhrase(walletPhrase);
538
+ const signerAccount = await wallet.derivePath(ADDRESS_INDEX.XYO);
539
+ const remoteUrl = config.remote.rpc?.url;
540
+ if (isString(remoteUrl)) {
541
+ const transportFactory = /* @__PURE__ */ __name((schemas) => new HttpRpcTransport(remoteUrl, schemas), "transportFactory");
542
+ locator.registerMany([
543
+ JsonRpcMempoolViewer.factory(JsonRpcMempoolViewer.dependencies, {
544
+ transport: await transportFactory(MempoolViewerRpcSchemas)
545
+ }),
546
+ JsonRpcMempoolRunner.factory(JsonRpcMempoolRunner.dependencies, {
547
+ transport: await transportFactory(MempoolRunnerRpcSchemas)
548
+ }),
549
+ JsonRpcAccountBalanceViewer.factory(JsonRpcAccountBalanceViewer.dependencies, {
550
+ transport: await transportFactory(AccountBalanceViewerRpcSchemas)
551
+ }),
552
+ JsonRpcFinalizationViewer.factory(JsonRpcFinalizationViewer.dependencies, {
553
+ transport: await transportFactory(FinalizationViewerRpcSchemas)
554
+ }),
555
+ JsonRpcBlockViewer.factory(JsonRpcBlockViewer.dependencies, {
556
+ transport: await transportFactory(BlockViewerRpcSchemas)
557
+ })
558
+ ]);
559
+ }
560
+ locator.registerMany([
561
+ SimpleXyoSigner.factory(SimpleXyoSigner.dependencies, {
562
+ account: signerAccount
563
+ }),
564
+ SimpleXyoRunner2.factory(SimpleXyoRunner2.dependencies, {}),
565
+ SimpleXyoConnectionRunner2.factory(SimpleXyoConnectionRunner2.dependencies, {}),
566
+ SimpleXyoGatewayRunner.factory(SimpleXyoGatewayRunner.dependencies, {})
567
+ ]);
568
+ locator.freeze();
569
+ return locator;
570
+ }
571
+ __name(bridgeLocatorFromConfig, "bridgeLocatorFromConfig");
572
+
573
+ // src/config/locators/actors/mempoolLocatorFromConfig.ts
574
+ import { ProviderFactoryLocator as ProviderFactoryLocator3, SimpleBlockValidationViewer } from "@xyo-network/xl1-sdk";
575
+ function mempoolLocatorFromConfig(context, parent) {
576
+ const locator = new ProviderFactoryLocator3({
577
+ ...context,
578
+ locator: parent
392
579
  });
393
- return server;
394
- }, "createHealthServer");
395
- var initHealthEndpoints = /* @__PURE__ */ __name((params) => {
396
- const { config, logger, statusReporter } = params;
397
- const { healthCheckPort } = config.actors.producer;
398
- return isDefined4(healthCheckPort) ? createHealthServer(healthCheckPort, statusReporter, logger) : void 0;
399
- }, "initHealthEndpoints");
580
+ locator.registerMany([
581
+ SimpleBlockValidationViewer.factory(SimpleBlockValidationViewer.dependencies, {})
582
+ ]);
583
+ locator.freeze();
584
+ return locator;
585
+ }
586
+ __name(mempoolLocatorFromConfig, "mempoolLocatorFromConfig");
400
587
 
401
- // src/host/implementation/DefaultHost.ts
402
- var GenericHost = class {
403
- static {
404
- __name(this, "GenericHost");
405
- }
406
- services;
407
- constructor(services) {
408
- this.services = services;
409
- }
410
- async start() {
411
- await Promise.resolve();
412
- console.log("Host is starting...");
413
- }
414
- async stop() {
415
- await Promise.resolve();
416
- console.log("Host is stopping...");
417
- }
418
- };
588
+ // src/config/locators/actors/producerLocatorFromConfig.ts
589
+ import { asAddress as asAddress2, isString as isString3 } from "@xylabs/sdk-js";
590
+ import { SimpleBlockRunner } from "@xyo-network/chain-services";
591
+ import { AccountBalanceViewerRpcSchemas as AccountBalanceViewerRpcSchemas2, BlockViewerRpcSchemas as BlockViewerRpcSchemas2, FinalizationViewerRpcSchemas as FinalizationViewerRpcSchemas2, HttpRpcTransport as HttpRpcTransport2, JsonRpcAccountBalanceViewer as JsonRpcAccountBalanceViewer2, JsonRpcBlockViewer as JsonRpcBlockViewer2, JsonRpcFinalizationViewer as JsonRpcFinalizationViewer2, JsonRpcMempoolRunner as JsonRpcMempoolRunner2, JsonRpcMempoolViewer as JsonRpcMempoolViewer2, MempoolRunnerRpcSchemas as MempoolRunnerRpcSchemas2, MempoolViewerRpcSchemas as MempoolViewerRpcSchemas2, ProviderFactoryLocator as ProviderFactoryLocator4, SimpleBlockRewardViewer } from "@xyo-network/xl1-sdk";
419
592
 
420
- // src/host/implementation/DefaultServiceProvider.ts
421
- var DefaultServiceProvider = class {
422
- static {
423
- __name(this, "DefaultServiceProvider");
424
- }
425
- _services;
426
- constructor(services) {
427
- this._services = services;
428
- }
429
- getService(serviceIdentifier) {
430
- return this._services[serviceIdentifier];
593
+ // src/init/initActorAccount.ts
594
+ import { isDefined as isDefined2, isUndefined } from "@xylabs/sdk-js";
595
+ import { HDWallet as HDWallet2 } from "@xyo-network/wallet";
596
+ import { ADDRESS_INDEX as ADDRESS_INDEX2, generateXyoBaseWalletFromPhrase as generateXyoBaseWalletFromPhrase2 } from "@xyo-network/xl1-sdk";
597
+ var actorAccountSingletons = {};
598
+ async function initActorAccount({ config, logger }) {
599
+ const actorName = config.name;
600
+ if (isDefined2(actorAccountSingletons[actorName])) return actorAccountSingletons[actorName];
601
+ let walletPhrase = config.mnemonic;
602
+ if (isUndefined(walletPhrase)) {
603
+ logger?.warn(`[${actorName}}] No wallet mnemonic specified!`);
604
+ const randomMnemonic = HDWallet2.generateMnemonic();
605
+ logger?.warn(`[${actorName}}] Using randomly generated mnemonic:
606
+
607
+ ${randomMnemonic}
608
+
609
+ `);
610
+ walletPhrase = randomMnemonic;
431
611
  }
432
- };
612
+ const wallet = await generateXyoBaseWalletFromPhrase2(walletPhrase);
613
+ const account = await wallet.derivePath(ADDRESS_INDEX2.XYO);
614
+ actorAccountSingletons[actorName] = account;
615
+ return actorAccountSingletons[actorName];
616
+ }
617
+ __name(initActorAccount, "initActorAccount");
433
618
 
434
- // src/host/model/ServiceCollection.ts
435
- var ServiceLifetime = {
436
- Singleton: "Singleton",
437
- Transient: "Transient"
438
- };
619
+ // src/init/initActorSeedPhrase.ts
620
+ import { assertEx as assertEx3, isString as isString2 } from "@xylabs/sdk-js";
621
+ import { HDWallet as HDWallet3 } from "@xyo-network/wallet";
622
+ async function initActorSeedPhrase(context, bios) {
623
+ const { logger, config } = context;
624
+ const walletKind = config.name;
625
+ const storedSeedPhrase = await bios.seedPhraseStore.get(walletKind);
626
+ logger?.debug(`[API] Stored mnemonic: ${storedSeedPhrase}`);
627
+ const { mnemonic } = config;
628
+ if (isString2(storedSeedPhrase) && isString2(mnemonic)) {
629
+ logger?.warn("[API] Stored mnemonic does not match supplied. Updating stored mnemonic to supplied.");
630
+ await bios.seedPhraseStore.set(walletKind, mnemonic);
631
+ } else {
632
+ let seedPhrase;
633
+ if (isString2(mnemonic)) {
634
+ seedPhrase = mnemonic;
635
+ } else {
636
+ seedPhrase = HDWallet3.generateMnemonic();
637
+ logger?.log("[API] No mnemonic provided, using random mnemonic. This is not recommended for production use.");
638
+ logger?.log(`[API] Mnemonic: ${seedPhrase}`);
639
+ }
640
+ await bios.seedPhraseStore.set(walletKind, seedPhrase);
641
+ }
642
+ return assertEx3(await bios.seedPhraseStore.get(walletKind), () => "Unable to acquire mnemonic from bios");
643
+ }
644
+ __name(initActorSeedPhrase, "initActorSeedPhrase");
439
645
 
440
646
  // src/init/initBalanceSummaryMap.ts
441
647
  import { BaseMongoSdk } from "@xylabs/mongo";
442
- import { assertEx as assertEx7 } from "@xylabs/sdk-js";
648
+ import { assertEx as assertEx4 } from "@xylabs/sdk-js";
443
649
  import { MongoMap } from "@xyo-network/chain-protocol";
444
650
  import { hasMongoConfig, MemoryMap } from "@xyo-network/xl1-sdk";
445
- async function initBalanceSummaryMap({ config, logger }) {
651
+ async function initBalanceSummaryMap({ logger, config }) {
446
652
  const mongoConfig = config.storage?.mongo;
447
653
  if (hasMongoConfig(mongoConfig)) {
448
654
  const { connectionString: dbConnectionString, database: dbName, domain: dbDomain, password: dbPassword, username: dbUserName } = mongoConfig;
@@ -464,7 +670,7 @@ async function initBalanceSummaryMap({ config, logger }) {
464
670
  maxEntries: 5e3
465
671
  }
466
672
  });
467
- assertEx7(await result.start(), () => "Failed to start transfer summary map");
673
+ assertEx4(await result.start(), () => "Failed to start transfer summary map");
468
674
  return result;
469
675
  } else {
470
676
  logger?.warn("[API] Mongo configuration not found. Using MemoryMap for BalanceSummaryMap.");
@@ -474,18 +680,18 @@ async function initBalanceSummaryMap({ config, logger }) {
474
680
  __name(initBalanceSummaryMap, "initBalanceSummaryMap");
475
681
 
476
682
  // src/init/initBridgedModule.ts
477
- import { assertEx as assertEx8 } from "@xylabs/sdk-js";
683
+ import { assertEx as assertEx5 } from "@xylabs/sdk-js";
478
684
  import { asAttachableArchivistInstance } from "@xyo-network/archivist-model";
479
685
  import { asAttachableModuleInstance } from "@xyo-network/module-model";
480
686
  import { Mutex as Mutex9 } from "async-mutex";
481
687
  var initMutex = new Mutex9();
482
688
  var bridgedModuleDictionary = {};
483
- var initBridgedModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) => {
689
+ async function initBridgedModule({ bridge, moduleName }) {
484
690
  return await initMutex.runExclusive(async () => {
485
691
  const existing = bridgedModuleDictionary?.[bridge.address]?.[moduleName];
486
692
  if (existing) return existing;
487
- const mod = assertEx8(await bridge.resolve(moduleName), () => `Could not resolve ${moduleName}`);
488
- const moduleInstance = assertEx8(asAttachableModuleInstance(mod), () => `Could not convert ${moduleName} to attachable module instance`);
693
+ const mod = assertEx5(await bridge.resolve(moduleName), () => `Could not resolve ${moduleName}`);
694
+ const moduleInstance = assertEx5(asAttachableModuleInstance(mod), () => `Could not convert ${moduleName} to attachable module instance`);
489
695
  let moduleMap = bridgedModuleDictionary[bridge.address];
490
696
  if (moduleMap === void 0) {
491
697
  moduleMap = {};
@@ -494,28 +700,110 @@ var initBridgedModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) =>
494
700
  moduleMap[moduleName] = moduleInstance;
495
701
  return moduleInstance;
496
702
  });
497
- }, "initBridgedModule");
498
- var initBridgedArchivistModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) => {
499
- return assertEx8(asAttachableArchivistInstance(await initBridgedModule({
703
+ }
704
+ __name(initBridgedModule, "initBridgedModule");
705
+ async function initBridgedArchivistModule({ bridge, moduleName }) {
706
+ return assertEx5(asAttachableArchivistInstance(await initBridgedModule({
500
707
  bridge,
501
708
  moduleName
502
709
  })), () => `Could not convert ${moduleName} to attachable archivist instance`);
503
- }, "initBridgedArchivistModule");
710
+ }
711
+ __name(initBridgedArchivistModule, "initBridgedArchivistModule");
504
712
 
505
713
  // src/init/initEvmProvidersIfAvailable.ts
506
- import { asEthAddress, assertEx as assertEx9 } from "@xylabs/sdk-js";
714
+ import { asEthAddress, assertEx as assertEx10 } from "@xylabs/sdk-js";
507
715
  import { EvmChainContractViewer, EvmStakeEventsViewer, EvmStakeTotalsViewer, EvmStakeViewer } from "@xyo-network/chain-ethereum";
508
716
  import { SimpleChainContractViewer, SimpleStakeEventsViewer, SimpleStakeTotalsViewer, SimpleStakeViewer, SimpleTimeSyncViewer, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-sdk";
509
- async function initEvmProvidersIfAvailable(locator) {
510
- const { config, logger } = locator.context;
511
- if (canUseEvmProvider({
512
- config
717
+
718
+ // src/evm/initChainId.ts
719
+ import { assertEx as assertEx6, hexFrom, isDefined as isDefined3, isHex } from "@xylabs/sdk-js";
720
+ var canUseChainId = /* @__PURE__ */ __name(({ config }) => {
721
+ return isDefined3(config.evm.chainId);
722
+ }, "canUseChainId");
723
+ var getChainId = /* @__PURE__ */ __name(({ config }) => {
724
+ const chainId = assertEx6(config.evm.chainId, () => "Missing config.evm.chainId");
725
+ if (isHex(chainId, {
726
+ prefix: true
513
727
  })) {
514
- const chainId = assertEx9(config.chain.id, () => "Missing config.chain.chainId (required for EVM providers)");
515
- const provider2 = await initEvmProvider({
516
- config,
517
- logger
518
- });
728
+ const hex = hexFrom(chainId);
729
+ const parsed = Number.parseInt(hex, 16);
730
+ return parsed;
731
+ } else {
732
+ const parsed = Number.parseInt(chainId, 10);
733
+ return parsed;
734
+ }
735
+ }, "getChainId");
736
+
737
+ // src/evm/initEvmProvider.ts
738
+ import { assertEx as assertEx9 } from "@xylabs/sdk-js";
739
+
740
+ // src/evm/initInfuraProvider.ts
741
+ import { assertEx as assertEx7, isDefined as isDefined4 } from "@xylabs/sdk-js";
742
+ import { InfuraProvider } from "ethers/providers";
743
+ var instance;
744
+ var initInfuraProvider = /* @__PURE__ */ __name((context) => {
745
+ if (instance) return instance;
746
+ const providerConfig = getInfuraProviderConfig(context);
747
+ instance = Promise.resolve(new InfuraProvider(providerConfig[0], providerConfig[1]));
748
+ return instance;
749
+ }, "initInfuraProvider");
750
+ var canUseInfuraProvider = /* @__PURE__ */ __name((context) => {
751
+ const { config } = context;
752
+ return canUseChainId(context) && isDefined4(config.evm?.infura?.projectId) && isDefined4(config.evm?.infura?.projectSecret);
753
+ }, "canUseInfuraProvider");
754
+ var getInfuraProviderConfig = /* @__PURE__ */ __name((context) => {
755
+ const { config } = context;
756
+ const projectId = assertEx7(config.evm?.infura?.projectId, () => "Missing config.evm.infura.projectId");
757
+ const projectSecret = assertEx7(config.evm?.infura?.projectSecret, () => "Missing config.evm.infura.projectSecret");
758
+ return [
759
+ getChainId(context),
760
+ projectId,
761
+ projectSecret
762
+ ];
763
+ }, "getInfuraProviderConfig");
764
+
765
+ // src/evm/initJsonRpcProvider.ts
766
+ import { assertEx as assertEx8, isDefined as isDefined5 } from "@xylabs/sdk-js";
767
+ import { JsonRpcProvider } from "ethers/providers";
768
+ var initJsonRpcProvider = /* @__PURE__ */ __name((context) => {
769
+ const providerConfig = getJsonRpcProviderConfig(context);
770
+ return Promise.resolve(new JsonRpcProvider(...providerConfig));
771
+ }, "initJsonRpcProvider");
772
+ var canUseJsonRpcProvider = /* @__PURE__ */ __name((context) => {
773
+ const { config } = context;
774
+ return canUseChainId(context) && isDefined5(config.evm.jsonRpc?.url);
775
+ }, "canUseJsonRpcProvider");
776
+ var getJsonRpcProviderConfig = /* @__PURE__ */ __name((context) => {
777
+ const { config } = context;
778
+ const jsonRpcUrl = assertEx8(config.evm.jsonRpc?.url, () => "Missing config.evm.jsonRpc.url");
779
+ return [
780
+ jsonRpcUrl,
781
+ getChainId(context)
782
+ ];
783
+ }, "getJsonRpcProviderConfig");
784
+
785
+ // src/evm/initEvmProvider.ts
786
+ var provider;
787
+ var initEvmProvider = /* @__PURE__ */ __name(async (context) => {
788
+ if (provider) return provider;
789
+ if (canUseInfuraProvider(context)) {
790
+ provider = initInfuraProvider(context);
791
+ } else if (canUseJsonRpcProvider(context)) {
792
+ provider = initJsonRpcProvider(context);
793
+ }
794
+ return assertEx9(await provider, () => "No provider available");
795
+ }, "initEvmProvider");
796
+ var canUseEvmProvider = /* @__PURE__ */ __name((context) => {
797
+ return canUseInfuraProvider(context) || canUseJsonRpcProvider(context);
798
+ }, "canUseEvmProvider");
799
+
800
+ // src/init/initEvmProvidersIfAvailable.ts
801
+ async function initEvmProvidersIfAvailable(locator) {
802
+ const context = locator.context;
803
+ const { logger, config } = context;
804
+ if (canUseEvmProvider(context)) {
805
+ const chainId = assertEx10(context.config.chain.id, () => "Missing config.chain.id (required for EVM providers)");
806
+ const provider2 = await initEvmProvider(context);
519
807
  const address = asEthAddress(chainId, true);
520
808
  locator.register(EvmStakeEventsViewer.factory(EvmStakeEventsViewer.dependencies, {
521
809
  address,
@@ -539,7 +827,7 @@ async function initEvmProvidersIfAvailable(locator) {
539
827
  } else {
540
828
  logger?.warn("EVM provider not available - running with memory based contract/stake viewers");
541
829
  const positions = [];
542
- const chainId = assertEx9(config.chain.id, () => "Missing config.chain.chainId (required for non-EVM providers)");
830
+ const chainId = assertEx10(config.chain.id, () => "Missing config.chain.id (required for non-EVM providers)");
543
831
  locator.register(SimpleStakeEventsViewer.factory(SimpleStakeEventsViewer.dependencies, {
544
832
  positions
545
833
  }));
@@ -560,9 +848,9 @@ async function initEvmProvidersIfAvailable(locator) {
560
848
  __name(initEvmProvidersIfAvailable, "initEvmProvidersIfAvailable");
561
849
 
562
850
  // src/init/initFinalizationArchivistIfNeeded.ts
563
- import { assertEx as assertEx10 } from "@xylabs/sdk-js";
564
- import { Account } from "@xyo-network/account";
851
+ import { assertEx as assertEx11 } from "@xylabs/sdk-js";
565
852
  import { createBootstrapHead } from "@xyo-network/chain-sdk";
853
+ import { Account } from "@xyo-network/sdk-js";
566
854
  import { asAttoXL1, findMostRecentBlock, flattenHydratedBlock } from "@xyo-network/xl1-sdk";
567
855
  async function initFinalizationArchivistIfNeeded(archivist, config, account) {
568
856
  const configuredChainId = config.chain.id;
@@ -577,8 +865,8 @@ async function initFinalizationArchivistIfNeeded(archivist, config, account) {
577
865
  const payloads = chain.flatMap((block) => flattenHydratedBlock(block));
578
866
  await archivist.insert(payloads);
579
867
  }
580
- const head = possibleHead ?? assertEx10(await findMostRecentBlock(archivist), () => "No blocks found in chain archivist");
581
- const chainId = assertEx10(possibleChainId, () => "Chain ID could not be determined");
868
+ const head = possibleHead ?? assertEx11(await findMostRecentBlock(archivist), () => "No blocks found in chain archivist");
869
+ const chainId = assertEx11(possibleChainId, () => "Chain ID could not be determined");
582
870
  return [
583
871
  head,
584
872
  chainId
@@ -604,61 +892,12 @@ async function initFinalizedArchivist(config) {
604
892
  }
605
893
  __name(initFinalizedArchivist, "initFinalizedArchivist");
606
894
 
607
- // src/init/initProducerAccount.ts
608
- import { isUndefined } from "@xylabs/sdk-js";
609
- import { HDWallet } from "@xyo-network/wallet";
610
- import { ADDRESS_INDEX, generateXyoBaseWalletFromPhrase } from "@xyo-network/xl1-sdk";
611
- var accountServiceSingleton;
612
- var initProducerAccount = /* @__PURE__ */ __name(async ({ config, logger }) => {
613
- if (accountServiceSingleton) return accountServiceSingleton;
614
- let walletPhrase = config.actors.producer.mnemonic;
615
- if (isUndefined(walletPhrase)) {
616
- logger?.warn("[Producer] No wallet mnemonic specified!");
617
- const randomMnemonic = HDWallet.generateMnemonic();
618
- logger?.warn(`[Producer] Using randomly generated mnemonic:
619
-
620
- ${randomMnemonic}
621
-
622
- `);
623
- walletPhrase = randomMnemonic;
624
- }
625
- const wallet = await generateXyoBaseWalletFromPhrase(walletPhrase);
626
- const account = await wallet.derivePath(ADDRESS_INDEX.XYO);
627
- accountServiceSingleton = account;
628
- return accountServiceSingleton;
629
- }, "initProducerAccount");
630
-
631
- // src/init/initSeedPhrase.ts
632
- import { assertEx as assertEx11, isString } from "@xylabs/sdk-js";
633
- import { HDWallet as HDWallet2 } from "@xyo-network/wallet";
634
- async function initSeedPhrase({ config, logger, bios }) {
635
- const storedSeedPhrase = await bios.seedPhraseStore.get("os");
636
- logger?.debug(`[API] Stored mnemonic: ${storedSeedPhrase}`);
637
- const { mnemonic } = config.actors.api;
638
- if (isString(storedSeedPhrase) && isString(mnemonic)) {
639
- logger?.warn("[API] Stored mnemonic does not match supplied. Updating stored mnemonic to supplied.");
640
- await bios.seedPhraseStore.set("os", mnemonic);
641
- } else {
642
- let seedPhrase;
643
- if (isString(mnemonic)) {
644
- seedPhrase = mnemonic;
645
- } else {
646
- seedPhrase = HDWallet2.generateMnemonic();
647
- logger?.log("[API] No mnemonic provided, using random mnemonic. This is not recommended for production use.");
648
- logger?.log(`[API] Mnemonic: ${seedPhrase}`);
649
- }
650
- await bios.seedPhraseStore.set("os", seedPhrase);
651
- }
652
- return assertEx11(await bios.seedPhraseStore.get("os"), () => "Unable to acquire mnemonic from bios");
653
- }
654
- __name(initSeedPhrase, "initSeedPhrase");
655
-
656
895
  // src/init/initServerNode.ts
657
896
  import { assertEx as assertEx12 } from "@xylabs/sdk-js";
658
897
  import { asArchivistInstance } from "@xyo-network/archivist-model";
659
898
 
660
899
  // src/manifest/getLocator.ts
661
- import { isDefined as isDefined5 } from "@xylabs/sdk-js";
900
+ import { isDefined as isDefined6 } from "@xylabs/sdk-js";
662
901
  import { MemoryArchivist as MemoryArchivist2 } from "@xyo-network/archivist-memory";
663
902
  import { MongoDBArchivistV2 as MongoDBArchivistV22, MongoDBArchivistV2Deletable } from "@xyo-network/archivist-mongodb";
664
903
  import { ViewArchivist } from "@xyo-network/archivist-view";
@@ -667,7 +906,7 @@ import { AbstractModule, LoggerModuleStatusReporter } from "@xyo-network/module-
667
906
  import { ModuleFactoryLocator } from "@xyo-network/module-factory-locator";
668
907
  import { MemorySentinel } from "@xyo-network/sentinel-memory";
669
908
  import { hasMongoConfig as hasMongoConfig2 } from "@xyo-network/xl1-sdk";
670
- var getLocator = /* @__PURE__ */ __name(async ({ config, logger }) => {
909
+ var getLocator = /* @__PURE__ */ __name(async ({ logger, config }) => {
671
910
  const { otlpEndpoint } = config.telemetry?.otel ?? {};
672
911
  const { path: endpoint = "/metrics", port = 9465 } = config.telemetry?.metrics?.scrape ?? {};
673
912
  const { traceProvider, meterProvider } = await initTelemetry({
@@ -681,7 +920,7 @@ var getLocator = /* @__PURE__ */ __name(async ({ config, logger }) => {
681
920
  port
682
921
  }
683
922
  });
684
- if (isDefined5(logger)) AbstractModule.defaultLogger = logger;
923
+ if (isDefined6(logger)) AbstractModule.defaultLogger = logger;
685
924
  const statusReporter = logger ? new LoggerModuleStatusReporter(logger) : void 0;
686
925
  const locator = new ModuleFactoryLocator();
687
926
  const mongoConfig = config.storage?.mongo;
@@ -867,12 +1106,8 @@ var PublicChildManifests = [
867
1106
  ];
868
1107
 
869
1108
  // src/manifest/loadNode.ts
870
- var loadNode = /* @__PURE__ */ __name(async ({ wallet, config, balancesSummaryMap, transfersSummaryMap }) => {
871
- const locator = await getLocator({
872
- config,
873
- balancesSummaryMap,
874
- transfersSummaryMap
875
- });
1109
+ var loadNode = /* @__PURE__ */ __name(async (context, wallet) => {
1110
+ const locator = await getLocator(context);
876
1111
  const wrapper = new ManifestWrapper(NodeManifest, wallet, locator, PublicChildManifests, PrivateChildManifests);
877
1112
  const [node, ...childNodes] = await wrapper.loadNodes();
878
1113
  if (childNodes?.length > 0) {
@@ -907,14 +1142,8 @@ async function pendingBlocksArchivistFromNode(node) {
907
1142
  });
908
1143
  }
909
1144
  __name(pendingBlocksArchivistFromNode, "pendingBlocksArchivistFromNode");
910
- async function initServerNode({ wallet, logger, config, node: providedNode, transfersSummaryMap, balancesSummaryMap }) {
911
- const node = providedNode ?? await loadNode({
912
- wallet,
913
- logger,
914
- config,
915
- transfersSummaryMap,
916
- balancesSummaryMap
917
- });
1145
+ async function initServerNode(context, wallet, providedNode) {
1146
+ const node = providedNode ?? await loadNode(context, wallet);
918
1147
  assertEx12(await node.start(), () => "Failed to start node");
919
1148
  const writableChainArchivist = await writableChainArchivistFromNode(node);
920
1149
  const readonlyChainArchivist = await readonlyChainArchivistFromNode(node);
@@ -954,7 +1183,7 @@ import { BaseMongoSdk as BaseMongoSdk2 } from "@xylabs/mongo";
954
1183
  import { assertEx as assertEx13 } from "@xylabs/sdk-js";
955
1184
  import { MongoMap as MongoMap2 } from "@xyo-network/chain-protocol";
956
1185
  import { hasMongoConfig as hasMongoConfig3, MemoryMap as MemoryMap2 } from "@xyo-network/xl1-sdk";
957
- async function initTransferSummaryMap({ config, logger }) {
1186
+ async function initTransferSummaryMap({ logger, config }) {
958
1187
  const mongoConfig = config.storage?.mongo;
959
1188
  if (hasMongoConfig3(mongoConfig)) {
960
1189
  const { connectionString: dbConnectionString, database: dbName, domain: dbDomain, password: dbPassword, username: dbUserName } = mongoConfig;
@@ -986,67 +1215,463 @@ async function initTransferSummaryMap({ config, logger }) {
986
1215
  __name(initTransferSummaryMap, "initTransferSummaryMap");
987
1216
 
988
1217
  // src/init/initWallet.ts
989
- import { isDefined as isDefined6 } from "@xylabs/sdk-js";
1218
+ import { isDefined as isDefined7 } from "@xylabs/sdk-js";
990
1219
  import { boot } from "@xyo-network/bios";
991
- import { HDWallet as HDWallet3 } from "@xyo-network/wallet";
992
- async function initWallet({ config, logger }, mnemonic) {
1220
+ import { HDWallet as HDWallet4 } from "@xyo-network/wallet";
1221
+ async function initActorWallet(context, mnemonic) {
993
1222
  const bios = await boot();
994
- const seedPhrase = isDefined6(mnemonic) ? mnemonic : await initSeedPhrase({
995
- bios,
996
- config,
997
- logger
1223
+ const seedPhrase = isDefined7(mnemonic) ? mnemonic : await initActorSeedPhrase(context, bios);
1224
+ return await HDWallet4.fromPhrase(seedPhrase);
1225
+ }
1226
+ __name(initActorWallet, "initActorWallet");
1227
+
1228
+ // src/config/locators/actors/producerLocatorFromConfig.ts
1229
+ async function producerLocatorFromConfig(context, parent) {
1230
+ const { logger, config } = context;
1231
+ const account = await initActorAccount(context);
1232
+ const locator = new ProviderFactoryLocator4({
1233
+ ...context,
1234
+ locator: parent
998
1235
  });
999
- return await HDWallet3.fromPhrase(seedPhrase);
1236
+ const rewardAddress = asAddress2(config.rewardAddress ?? account.address, true);
1237
+ logger?.info(`Using reward address ${rewardAddress}`);
1238
+ if (rewardAddress === account.address) {
1239
+ logger?.warn(`Using producer account address as reward address: ${account.address}`);
1240
+ }
1241
+ const remoteUrl = config.remote.rpc?.url;
1242
+ if (isString3(remoteUrl)) {
1243
+ const transportFactory = /* @__PURE__ */ __name((schemas) => new HttpRpcTransport2(remoteUrl, schemas), "transportFactory");
1244
+ locator.registerMany([
1245
+ JsonRpcMempoolViewer2.factory(JsonRpcMempoolViewer2.dependencies, {
1246
+ transport: await transportFactory(MempoolViewerRpcSchemas2)
1247
+ }),
1248
+ JsonRpcMempoolRunner2.factory(JsonRpcMempoolRunner2.dependencies, {
1249
+ transport: await transportFactory(MempoolRunnerRpcSchemas2)
1250
+ }),
1251
+ JsonRpcAccountBalanceViewer2.factory(JsonRpcAccountBalanceViewer2.dependencies, {
1252
+ transport: await transportFactory(AccountBalanceViewerRpcSchemas2)
1253
+ }),
1254
+ JsonRpcFinalizationViewer2.factory(JsonRpcFinalizationViewer2.dependencies, {
1255
+ transport: await transportFactory(FinalizationViewerRpcSchemas2)
1256
+ }),
1257
+ JsonRpcBlockViewer2.factory(JsonRpcBlockViewer2.dependencies, {
1258
+ transport: await transportFactory(BlockViewerRpcSchemas2)
1259
+ })
1260
+ ]);
1261
+ }
1262
+ locator.registerMany([
1263
+ SimpleBlockRewardViewer.factory(SimpleBlockRewardViewer.dependencies, {}),
1264
+ SimpleBlockRunner.factory(SimpleBlockRunner.dependencies, {
1265
+ account,
1266
+ rewardAddress
1267
+ })
1268
+ ]);
1269
+ locator.freeze();
1270
+ return locator;
1000
1271
  }
1001
- __name(initWallet, "initWallet");
1002
- async function initApiWallet({ config, logger }) {
1003
- const { mnemonic } = config.actors.api;
1004
- return await initWallet({
1005
- config,
1006
- logger
1007
- }, mnemonic);
1272
+ __name(producerLocatorFromConfig, "producerLocatorFromConfig");
1273
+
1274
+ // src/config/locators/actors/rewardRedemptionLocatorFromConfig.ts
1275
+ import { ProviderFactoryLocator as ProviderFactoryLocator5, SimpleXyoGatewayRunner as SimpleXyoGatewayRunner2 } from "@xyo-network/xl1-sdk";
1276
+ function rewardRedemptionLocatorFromConfig(context, parent) {
1277
+ const locator = new ProviderFactoryLocator5({
1278
+ ...context,
1279
+ locator: parent
1280
+ });
1281
+ locator.registerMany([
1282
+ SimpleXyoGatewayRunner2.factory(SimpleXyoGatewayRunner2.dependencies, {})
1283
+ ]);
1284
+ locator.freeze();
1285
+ return locator;
1008
1286
  }
1009
- __name(initApiWallet, "initApiWallet");
1010
- async function initBridgeWallet({ config, logger }) {
1011
- const { mnemonic } = config.actors.bridge;
1012
- return await initWallet({
1013
- config,
1014
- logger
1015
- }, mnemonic);
1287
+ __name(rewardRedemptionLocatorFromConfig, "rewardRedemptionLocatorFromConfig");
1288
+
1289
+ // src/config/locators/actors/validatorLocatorFromConfig.ts
1290
+ import { ProviderFactoryLocator as ProviderFactoryLocator6 } from "@xyo-network/xl1-sdk";
1291
+ function validatorLocatorFromConfig(context, parent) {
1292
+ const locator = new ProviderFactoryLocator6({
1293
+ ...context,
1294
+ locator: parent
1295
+ });
1296
+ locator.registerMany([]);
1297
+ locator.freeze();
1298
+ return locator;
1016
1299
  }
1017
- __name(initBridgeWallet, "initBridgeWallet");
1018
- async function initMempoolWallet({ config, logger }) {
1019
- const { mnemonic } = config.actors.mempool;
1020
- return await initWallet({
1021
- config,
1022
- logger
1023
- }, mnemonic);
1300
+ __name(validatorLocatorFromConfig, "validatorLocatorFromConfig");
1301
+
1302
+ // src/config/locators/telemetryContextFromConfig.ts
1303
+ import { initTelemetry as initTelemetry2 } from "@xyo-network/chain-telemetry";
1304
+ async function telemetryContextFromConfig(config, serviceName, serviceVersion) {
1305
+ const { otlpEndpoint } = config.telemetry?.otel ?? {};
1306
+ const { path: endpoint = "/metrics", port = 9466 } = config.telemetry?.metrics?.scrape ?? {};
1307
+ return await initTelemetry2({
1308
+ attributes: {
1309
+ serviceName,
1310
+ serviceVersion
1311
+ },
1312
+ otlpEndpoint,
1313
+ metricsConfig: {
1314
+ endpoint,
1315
+ port
1316
+ }
1317
+ });
1024
1318
  }
1025
- __name(initMempoolWallet, "initMempoolWallet");
1026
- async function initProducerWallet({ config, logger }) {
1027
- const { mnemonic } = config.actors.producer;
1028
- return await initWallet({
1029
- config,
1319
+ __name(telemetryContextFromConfig, "telemetryContextFromConfig");
1320
+
1321
+ // src/config/locators/contextFromConfigWithoutLocator.ts
1322
+ async function contextFromConfigWithoutLocator(config, logger, serviceName, serviceVersion) {
1323
+ const singletons = {};
1324
+ const caches = {};
1325
+ const telemetryConfig = await telemetryContextFromConfig(config, serviceName, serviceVersion);
1326
+ const statusReporter = initStatusReporter({
1030
1327
  logger
1031
- }, mnemonic);
1032
- }
1033
- __name(initProducerWallet, "initProducerWallet");
1034
- async function initRewardsRedemptionApiWallet({ config, logger }) {
1035
- const { mnemonic } = config.actors.rewardRedemption;
1036
- return await initWallet({
1328
+ });
1329
+ return {
1330
+ ...telemetryConfig,
1037
1331
  config,
1038
- logger
1039
- }, mnemonic);
1332
+ singletons,
1333
+ caches,
1334
+ logger,
1335
+ statusReporter
1336
+ };
1040
1337
  }
1041
- __name(initRewardsRedemptionApiWallet, "initRewardsRedemptionApiWallet");
1042
- async function initValidatorWallet({ config, logger }) {
1043
- const { mnemonic } = config.actors.mempool;
1044
- return await initWallet({
1045
- config,
1046
- logger
1047
- }, mnemonic);
1338
+ __name(contextFromConfigWithoutLocator, "contextFromConfigWithoutLocator");
1339
+
1340
+ // src/config/locators/localLocatorFromConfig.ts
1341
+ import { assertEx as assertEx14 } from "@xylabs/sdk-js";
1342
+ import { ProviderFactoryLocator as ProviderFactoryLocator7, SimpleAccountBalanceViewer, SimpleBlockViewer, SimpleFinalizationRunner, SimpleFinalizationViewer, SimpleMempoolRunner, SimpleMempoolViewer, SimpleWindowedBlockViewer, SimpleXyoConnectionViewer, SimpleXyoViewer } from "@xyo-network/xl1-sdk";
1343
+ async function localLocatorFromConfig(context, parent) {
1344
+ const balancesSummaryMap = assertEx14(await initBalanceSummaryMap(context), () => "Balance Summary Map not initialized");
1345
+ const transfersSummaryMap = assertEx14(await initTransferSummaryMap(context), () => "Transfer Summary Map not initialized");
1346
+ const wallet = await initActorWallet(context);
1347
+ const { writableChainArchivist, readonlyChainArchivist, pendingTransactionsArchivist, pendingBlocksArchivist } = await initServerNode(context, wallet);
1348
+ await initFinalizationArchivistIfNeeded(writableChainArchivist, context.config, wallet);
1349
+ const locator = new ProviderFactoryLocator7({
1350
+ ...context,
1351
+ locator: parent
1352
+ });
1353
+ locator.registerMany([
1354
+ SimpleMempoolViewer.factory(SimpleMempoolViewer.dependencies, {
1355
+ pendingTransactionsArchivist,
1356
+ pendingBlocksArchivist
1357
+ }),
1358
+ SimpleMempoolRunner.factory(SimpleMempoolRunner.dependencies, {
1359
+ pendingTransactionsArchivist,
1360
+ pendingBlocksArchivist
1361
+ }),
1362
+ SimpleAccountBalanceViewer.factory(SimpleAccountBalanceViewer.dependencies, {
1363
+ balancesSummaryMap,
1364
+ transfersSummaryMap
1365
+ }),
1366
+ SimpleFinalizationViewer.factory(SimpleFinalizationViewer.dependencies, {
1367
+ finalizedArchivist: readonlyChainArchivist
1368
+ }),
1369
+ SimpleBlockViewer.factory(SimpleBlockViewer.dependencies, {
1370
+ finalizedArchivist: readonlyChainArchivist
1371
+ }),
1372
+ SimpleWindowedBlockViewer.factory(SimpleWindowedBlockViewer.dependencies, {
1373
+ maxWindowSize: 1e4,
1374
+ syncInterval: 1e4
1375
+ }),
1376
+ SimpleXyoConnectionViewer.factory(SimpleXyoConnectionViewer.dependencies, {}),
1377
+ SimpleXyoViewer.factory(SimpleXyoViewer.dependencies, {
1378
+ finalizedArchivist: readonlyChainArchivist
1379
+ }),
1380
+ SimpleFinalizationViewer.factory(SimpleFinalizationViewer.dependencies, {
1381
+ finalizedArchivist: readonlyChainArchivist
1382
+ }),
1383
+ SimpleFinalizationRunner.factory(SimpleFinalizationRunner.dependencies, {
1384
+ finalizedArchivist: writableChainArchivist
1385
+ })
1386
+ ]);
1387
+ locator.freeze();
1388
+ return locator;
1389
+ }
1390
+ __name(localLocatorFromConfig, "localLocatorFromConfig");
1391
+
1392
+ // src/config/locators/locatorsFromConfig.ts
1393
+ import { deepMerge } from "@xylabs/sdk-js";
1394
+ import { ActorConfigZod as ActorConfigZod2 } from "@xyo-network/xl1-sdk";
1395
+
1396
+ // src/config/locators/rootLocatorFromConfig.ts
1397
+ import { isString as isString4 } from "@xylabs/sdk-js";
1398
+ import { validateHydratedBlock, validateHydratedBlockState } from "@xyo-network/chain-validation";
1399
+ import { ProviderFactoryLocator as ProviderFactoryLocator9, SimpleBlockValidationViewer as SimpleBlockValidationViewer2, SimpleNetworkStakeViewer, SimpleStepRewardsByPositionViewer, SimpleStepRewardsByStakerViewer, SimpleStepRewardsByStepViewer, SimpleStepRewardsTotalViewer, SimpleStepRewardsViewer, SimpleStepViewer, SimpleTimeSyncViewer as SimpleTimeSyncViewer2 } from "@xyo-network/xl1-sdk";
1400
+
1401
+ // src/config/locators/remoteLocatorFromConfig.ts
1402
+ import { assertEx as assertEx15 } from "@xylabs/sdk-js";
1403
+ import { ProviderFactoryLocator as ProviderFactoryLocator8, SimpleAccountBalanceViewer as SimpleAccountBalanceViewer2, SimpleBlockViewer as SimpleBlockViewer2, SimpleFinalizationViewer as SimpleFinalizationViewer2, SimpleMempoolRunner as SimpleMempoolRunner2, SimpleMempoolViewer as SimpleMempoolViewer2, SimpleWindowedBlockViewer as SimpleWindowedBlockViewer2, SimpleXyoViewer as SimpleXyoViewer2 } from "@xyo-network/xl1-sdk";
1404
+ async function remoteLocatorFromConfig(context, parent) {
1405
+ const balancesSummaryMap = assertEx15(await initBalanceSummaryMap(context), () => "Balance Summary Map not initialized");
1406
+ const transfersSummaryMap = assertEx15(await initTransferSummaryMap(context), () => "Transfer Summary Map not initialized");
1407
+ const wallet = await initActorWallet(context);
1408
+ const { readonlyChainArchivist, pendingTransactionsArchivist, pendingBlocksArchivist } = await initServerNode(context, wallet);
1409
+ const locator = new ProviderFactoryLocator8({
1410
+ ...context,
1411
+ locator: parent
1412
+ });
1413
+ locator.registerMany([
1414
+ SimpleMempoolViewer2.factory(SimpleMempoolViewer2.dependencies, {
1415
+ pendingTransactionsArchivist,
1416
+ pendingBlocksArchivist
1417
+ }),
1418
+ SimpleMempoolRunner2.factory(SimpleMempoolRunner2.dependencies, {
1419
+ pendingTransactionsArchivist,
1420
+ pendingBlocksArchivist
1421
+ }),
1422
+ SimpleAccountBalanceViewer2.factory(SimpleAccountBalanceViewer2.dependencies, {
1423
+ balancesSummaryMap,
1424
+ transfersSummaryMap
1425
+ }),
1426
+ SimpleFinalizationViewer2.factory(SimpleFinalizationViewer2.dependencies, {
1427
+ finalizedArchivist: readonlyChainArchivist
1428
+ }),
1429
+ SimpleBlockViewer2.factory(SimpleBlockViewer2.dependencies, {
1430
+ finalizedArchivist: readonlyChainArchivist
1431
+ }),
1432
+ SimpleWindowedBlockViewer2.factory(SimpleWindowedBlockViewer2.dependencies, {
1433
+ maxWindowSize: 1e4,
1434
+ syncInterval: 1e4
1435
+ }),
1436
+ SimpleXyoViewer2.factory(SimpleXyoViewer2.dependencies, {
1437
+ finalizedArchivist: readonlyChainArchivist
1438
+ })
1439
+ ]);
1440
+ locator.freeze();
1441
+ return locator;
1442
+ }
1443
+ __name(remoteLocatorFromConfig, "remoteLocatorFromConfig");
1444
+
1445
+ // src/config/locators/rootLocatorFromConfig.ts
1446
+ async function rootLocatorFromConfig(context) {
1447
+ const { config } = context;
1448
+ let locator = new ProviderFactoryLocator9(context);
1449
+ locator.registerMany([
1450
+ SimpleNetworkStakeViewer.factory(SimpleNetworkStakeViewer.dependencies, {}),
1451
+ SimpleTimeSyncViewer2.factory(SimpleTimeSyncViewer2.dependencies, {}),
1452
+ SimpleStepViewer.factory(SimpleStepViewer.dependencies, {}),
1453
+ SimpleStepRewardsViewer.factory(SimpleStepRewardsViewer.dependencies, {}),
1454
+ SimpleStepRewardsByPositionViewer.factory(SimpleStepRewardsByPositionViewer.dependencies, {}),
1455
+ SimpleStepRewardsByStakerViewer.factory(SimpleStepRewardsByStakerViewer.dependencies, {}),
1456
+ SimpleStepRewardsByStepViewer.factory(SimpleStepRewardsByStepViewer.dependencies, {}),
1457
+ SimpleStepRewardsTotalViewer.factory(SimpleStepRewardsTotalViewer.dependencies, {}),
1458
+ SimpleBlockValidationViewer2.factory(SimpleBlockValidationViewer2.dependencies, {
1459
+ state: validateHydratedBlockState,
1460
+ protocol: validateHydratedBlock
1461
+ })
1462
+ ]);
1463
+ locator = await initEvmProvidersIfAvailable(locator);
1464
+ locator = await (isString4(config.remote.rpc?.url) ? remoteLocatorFromConfig(context, locator) : localLocatorFromConfig(context, locator));
1465
+ locator.freeze();
1466
+ return locator;
1467
+ }
1468
+ __name(rootLocatorFromConfig, "rootLocatorFromConfig");
1469
+
1470
+ // src/config/locators/locatorsFromConfig.ts
1471
+ async function locatorsFromConfig(context, { actors, ...config }) {
1472
+ const result = {
1473
+ _root: await rootLocatorFromConfig({
1474
+ ...context,
1475
+ config: {
1476
+ ...config,
1477
+ name: "_root"
1478
+ }
1479
+ })
1480
+ };
1481
+ for (const actorConfig of actors) {
1482
+ switch (actorConfig.name) {
1483
+ case "producer": {
1484
+ result[actorConfig.name] = await producerLocatorFromConfig({
1485
+ ...context,
1486
+ config: ProducerConfigZod.parse(deepMerge(config, actorConfig))
1487
+ }, result._root);
1488
+ break;
1489
+ }
1490
+ case "api": {
1491
+ result[actorConfig.name] = await apiLocatorFromConfig({
1492
+ ...context,
1493
+ config: ApiConfigZod.parse(deepMerge(config, actorConfig))
1494
+ }, result._root);
1495
+ break;
1496
+ }
1497
+ case "mempool": {
1498
+ result[actorConfig.name] = await mempoolLocatorFromConfig({
1499
+ ...context,
1500
+ config: MempoolConfigZod.parse(deepMerge(config, actorConfig))
1501
+ }, result._root);
1502
+ break;
1503
+ }
1504
+ case "validator": {
1505
+ result[actorConfig.name] = await validatorLocatorFromConfig({
1506
+ ...context,
1507
+ config: ActorConfigZod2.parse(deepMerge(config, actorConfig))
1508
+ }, result._root);
1509
+ break;
1510
+ }
1511
+ case "bridge": {
1512
+ result[actorConfig.name] = await bridgeLocatorFromConfig({
1513
+ ...context,
1514
+ config: BridgeConfigZod.parse(deepMerge(config, actorConfig))
1515
+ }, result._root);
1516
+ break;
1517
+ }
1518
+ case "rewardRedemption": {
1519
+ result[actorConfig.name] = await rewardRedemptionLocatorFromConfig({
1520
+ ...context,
1521
+ config: RewardRedemptionConfigZod.parse(deepMerge(config, actorConfig))
1522
+ }, result._root);
1523
+ break;
1524
+ }
1525
+ }
1526
+ }
1527
+ return result;
1528
+ }
1529
+ __name(locatorsFromConfig, "locatorsFromConfig");
1530
+
1531
+ // src/config/mergeConfig.ts
1532
+ import { deepMerge as deepMerge2 } from "@xylabs/sdk-js";
1533
+ function mergeConfig({ actors, ...baseConfig }) {
1534
+ return {
1535
+ ...baseConfig,
1536
+ actors: actors.map((actor) => {
1537
+ return deepMerge2(baseConfig, actor);
1538
+ })
1539
+ };
1540
+ }
1541
+ __name(mergeConfig, "mergeConfig");
1542
+
1543
+ // src/config/tryParseConfig.ts
1544
+ import { isDefined as isDefined8, isNull } from "@xylabs/sdk-js";
1545
+ import { ConfigZod } from "@xyo-network/xl1-sdk";
1546
+ import { cosmiconfig } from "cosmiconfig";
1547
+ var configName = "xyo";
1548
+ var configSection = "xl1";
1549
+ async function tryParseConfig(searchPlaces) {
1550
+ const explorer = cosmiconfig(configName, {
1551
+ cache: true,
1552
+ // loaders: { '.ts': TypeScriptLoader() },
1553
+ searchPlaces
1554
+ });
1555
+ const result = (await explorer.search())?.config;
1556
+ if (!isNull(result)) {
1557
+ const section = result[configSection];
1558
+ if (isDefined8(section) && typeof section === "object") {
1559
+ return ConfigZod.loose().parse(section);
1560
+ }
1561
+ }
1562
+ return ConfigZod.parse({});
1563
+ }
1564
+ __name(tryParseConfig, "tryParseConfig");
1565
+
1566
+ // src/createDeclarationIntentBlock.ts
1567
+ import { buildNextBlock } from "@xyo-network/chain-sdk";
1568
+ import { createDeclarationIntent } from "@xyo-network/xl1-sdk";
1569
+ async function createProducerChainStakeIntentBlock(prevBlock, producerAccount, range) {
1570
+ const producerDeclarationPayload = createDeclarationIntent(producerAccount.address, "producer", range[0], range[1]);
1571
+ return await buildNextBlock(prevBlock, [], [
1572
+ producerDeclarationPayload
1573
+ ], [
1574
+ producerAccount
1575
+ ]);
1576
+ }
1577
+ __name(createProducerChainStakeIntentBlock, "createProducerChainStakeIntentBlock");
1578
+
1579
+ // src/health/initHealthEndpoints.ts
1580
+ import http from "http";
1581
+ import { isDefined as isDefined9 } from "@xylabs/sdk-js";
1582
+ var sendStatus = /* @__PURE__ */ __name((res, status, errorCode) => {
1583
+ const statusCode = status === "started" ? 200 : errorCode;
1584
+ res.writeHead(statusCode, {
1585
+ "Content-Type": "application/json"
1586
+ });
1587
+ res.end(JSON.stringify({
1588
+ status
1589
+ }));
1590
+ }, "sendStatus");
1591
+ var notFound = /* @__PURE__ */ __name((res) => {
1592
+ res.writeHead(404, {
1593
+ "Content-Type": "application/json"
1594
+ });
1595
+ res.end(JSON.stringify({
1596
+ status: "not found"
1597
+ }));
1598
+ }, "notFound");
1599
+ var createHealthServer = /* @__PURE__ */ __name((context, port, statusMonitor) => {
1600
+ const { logger } = context;
1601
+ const server = http.createServer((req, res) => {
1602
+ const url = req.url ?? "";
1603
+ const status = statusMonitor.getGlobalStatus();
1604
+ switch (url) {
1605
+ case "/healthz": {
1606
+ sendStatus(res, status, 500);
1607
+ break;
1608
+ }
1609
+ case "/livez": {
1610
+ sendStatus(res, status, 503);
1611
+ break;
1612
+ }
1613
+ case "/readyz": {
1614
+ sendStatus(res, status, 503);
1615
+ break;
1616
+ }
1617
+ default: {
1618
+ notFound(res);
1619
+ }
1620
+ }
1621
+ });
1622
+ server.listen(port, () => {
1623
+ logger?.log(`Health server running on http://localhost:${port}`);
1624
+ logger?.log(" - /healthz");
1625
+ logger?.log(" - /livez");
1626
+ logger?.log(" - /readyz");
1627
+ });
1628
+ return server;
1629
+ }, "createHealthServer");
1630
+ function initHealthEndpoints(context, statusMonitor) {
1631
+ const { config } = context;
1632
+ const { healthCheckPort } = config;
1633
+ return isDefined9(healthCheckPort) ? createHealthServer(context, healthCheckPort, statusMonitor) : void 0;
1048
1634
  }
1049
- __name(initValidatorWallet, "initValidatorWallet");
1635
+ __name(initHealthEndpoints, "initHealthEndpoints");
1636
+
1637
+ // src/host/implementation/DefaultHost.ts
1638
+ var GenericHost = class {
1639
+ static {
1640
+ __name(this, "GenericHost");
1641
+ }
1642
+ services;
1643
+ constructor(services) {
1644
+ this.services = services;
1645
+ }
1646
+ async start() {
1647
+ await Promise.resolve();
1648
+ console.log("Host is starting...");
1649
+ }
1650
+ async stop() {
1651
+ await Promise.resolve();
1652
+ console.log("Host is stopping...");
1653
+ }
1654
+ };
1655
+
1656
+ // src/host/implementation/DefaultServiceProvider.ts
1657
+ var DefaultServiceProvider = class {
1658
+ static {
1659
+ __name(this, "DefaultServiceProvider");
1660
+ }
1661
+ _services;
1662
+ constructor(services) {
1663
+ this._services = services;
1664
+ }
1665
+ getService(serviceIdentifier) {
1666
+ return this._services[serviceIdentifier];
1667
+ }
1668
+ };
1669
+
1670
+ // src/host/model/ServiceCollection.ts
1671
+ var ServiceLifetime = {
1672
+ Singleton: "Singleton",
1673
+ Transient: "Transient"
1674
+ };
1050
1675
 
1051
1676
  // src/orchestrator/Orchestrator.ts
1052
1677
  import { AbstractCreatable, creatable as creatable2 } from "@xylabs/sdk-js";
@@ -1113,27 +1738,53 @@ Orchestrator = _ts_decorate2([
1113
1738
  creatable2()
1114
1739
  ], Orchestrator);
1115
1740
  export {
1741
+ ApiConfigContext,
1742
+ ApiConfigZod,
1743
+ BasisPointsZod,
1744
+ BridgeConfigContext,
1745
+ BridgeConfigZod,
1746
+ BridgeSettingsZod,
1116
1747
  DefaultServiceProvider,
1117
1748
  GenericHost,
1749
+ MempoolConfigContext,
1750
+ MempoolConfigZod,
1118
1751
  NodeManifest,
1119
1752
  Orchestrator,
1120
1753
  PrivateChildManifests,
1754
+ ProducerConfigContext,
1755
+ ProducerConfigZod,
1121
1756
  PublicChildManifests,
1757
+ RewardRedemptionConfigContext,
1758
+ RewardRedemptionConfigZod,
1122
1759
  ServiceLifetime,
1123
1760
  ValidatorActor,
1761
+ apiLocatorFromConfig,
1762
+ asApiConfig,
1763
+ asApiConfigContext,
1764
+ asBridgeConfig,
1765
+ asBridgeConfigContext,
1766
+ asMempoolConfig,
1767
+ asMempoolConfigContext,
1768
+ asProducerConfig,
1769
+ asProducerConfigContext,
1770
+ asRewardRedemptionConfig,
1771
+ asRewardRedemptionConfigContext,
1772
+ bridgeLocatorFromConfig,
1124
1773
  buildTelemetryConfig,
1125
1774
  canUseChainId,
1126
1775
  canUseEvmProvider,
1127
1776
  canUseInfuraProvider,
1128
1777
  canUseJsonRpcProvider,
1778
+ contextFromConfigWithoutLocator,
1129
1779
  createProducerChainStakeIntentBlock,
1130
1780
  getChainId,
1131
1781
  getInfuraProviderConfig,
1132
1782
  getJsonRpcProviderConfig,
1133
1783
  getLocator,
1134
- initApiWallet,
1784
+ initActorAccount,
1785
+ initActorSeedPhrase,
1786
+ initActorWallet,
1135
1787
  initBalanceSummaryMap,
1136
- initBridgeWallet,
1137
1788
  initBridgedArchivistModule,
1138
1789
  initBridgedModule,
1139
1790
  initChainFinalizedArchivist,
@@ -1144,18 +1795,43 @@ export {
1144
1795
  initHealthEndpoints,
1145
1796
  initInfuraProvider,
1146
1797
  initJsonRpcProvider,
1147
- initMempoolWallet,
1148
1798
  initPendingBlocksArchivist,
1149
- initProducerAccount,
1150
- initProducerWallet,
1151
1799
  initRejectedTransactionsArchivist,
1152
- initRewardsRedemptionApiWallet,
1153
- initSeedPhrase,
1154
1800
  initServerNode,
1155
1801
  initStakeIntentStateArchivist,
1156
1802
  initStatusReporter,
1157
1803
  initTransferSummaryMap,
1158
- initValidatorWallet,
1159
- loadNode
1804
+ isApiConfig,
1805
+ isApiConfigContext,
1806
+ isBridgeConfig,
1807
+ isBridgeConfigContext,
1808
+ isMempoolConfig,
1809
+ isMempoolConfigContext,
1810
+ isProducerConfig,
1811
+ isProducerConfigContext,
1812
+ isRewardRedemptionConfig,
1813
+ isRewardRedemptionConfigContext,
1814
+ loadNode,
1815
+ localLocatorFromConfig,
1816
+ locatorsFromConfig,
1817
+ mempoolLocatorFromConfig,
1818
+ mergeConfig,
1819
+ producerLocatorFromConfig,
1820
+ remoteLocatorFromConfig,
1821
+ rewardRedemptionLocatorFromConfig,
1822
+ rootLocatorFromConfig,
1823
+ telemetryContextFromConfig,
1824
+ toApiConfig,
1825
+ toApiConfigContext,
1826
+ toBridgeConfig,
1827
+ toBridgeConfigContext,
1828
+ toMempoolConfig,
1829
+ toMempoolConfigContext,
1830
+ toProducerConfig,
1831
+ toProducerConfigContext,
1832
+ toRewardRedemptionConfig,
1833
+ toRewardRedemptionConfigContext,
1834
+ tryParseConfig,
1835
+ validatorLocatorFromConfig
1160
1836
  };
1161
1837
  //# sourceMappingURL=index.mjs.map