@xyo-network/chain-orchestration 1.20.17 → 1.20.18

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 (238) hide show
  1. package/dist/browser/index.mjs +22 -8
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/browser/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  4. package/dist/browser/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  5. package/dist/browser/node/config/tryParseConfig.d.ts +4 -0
  6. package/dist/browser/node/config/tryParseConfig.d.ts.map +1 -1
  7. package/dist/browser/node/index.d.ts +3 -4
  8. package/dist/browser/node/index.d.ts.map +1 -1
  9. package/dist/browser/node/init/initEvmProvidersIfAvailable.d.ts.map +1 -1
  10. package/dist/browser/node/init/initServerNode.d.ts +2 -0
  11. package/dist/browser/node/init/initServerNode.d.ts.map +1 -1
  12. package/dist/browser/node/manifest/public/index.d.ts +0 -3
  13. package/dist/browser/node/manifest/public/index.d.ts.map +1 -1
  14. package/dist/browser/shared/actor/ValidatorActor.d.ts +4 -2
  15. package/dist/browser/shared/actor/ValidatorActor.d.ts.map +1 -1
  16. package/dist/browser/shared/config/actors/Api.d.ts +12 -0
  17. package/dist/browser/shared/config/actors/Api.d.ts.map +1 -1
  18. package/dist/browser/shared/config/actors/Bridge.d.ts +12 -0
  19. package/dist/browser/shared/config/actors/Bridge.d.ts.map +1 -1
  20. package/dist/browser/shared/config/actors/Mempool.d.ts +12 -0
  21. package/dist/browser/shared/config/actors/Mempool.d.ts.map +1 -1
  22. package/dist/browser/shared/config/actors/Producer.d.ts +19 -0
  23. package/dist/browser/shared/config/actors/Producer.d.ts.map +1 -1
  24. package/dist/browser/shared/config/actors/RewardRedemption.d.ts +12 -0
  25. package/dist/browser/shared/config/actors/RewardRedemption.d.ts.map +1 -1
  26. package/dist/browser/shared/config/actors/Validator.d.ts +18 -0
  27. package/dist/browser/shared/config/actors/Validator.d.ts.map +1 -1
  28. package/dist/browser/shared/config/actors/index.d.ts +0 -1
  29. package/dist/browser/shared/config/actors/index.d.ts.map +1 -1
  30. package/dist/browser/shared/config/mergeConfig.d.ts +2 -0
  31. package/dist/browser/shared/config/mergeConfig.d.ts.map +1 -1
  32. package/dist/browser/shared/orchestrator/Orchestrator.d.ts +1 -1
  33. package/dist/browser/shared/orchestrator/Orchestrator.d.ts.map +1 -1
  34. package/dist/neutral/index.mjs +22 -8
  35. package/dist/neutral/index.mjs.map +1 -1
  36. package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  37. package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  38. package/dist/neutral/node/config/tryParseConfig.d.ts +4 -0
  39. package/dist/neutral/node/config/tryParseConfig.d.ts.map +1 -1
  40. package/dist/neutral/node/index.d.ts +3 -4
  41. package/dist/neutral/node/index.d.ts.map +1 -1
  42. package/dist/neutral/node/init/initEvmProvidersIfAvailable.d.ts.map +1 -1
  43. package/dist/neutral/node/init/initServerNode.d.ts +2 -0
  44. package/dist/neutral/node/init/initServerNode.d.ts.map +1 -1
  45. package/dist/neutral/node/manifest/public/index.d.ts +0 -3
  46. package/dist/neutral/node/manifest/public/index.d.ts.map +1 -1
  47. package/dist/neutral/shared/actor/ValidatorActor.d.ts +4 -2
  48. package/dist/neutral/shared/actor/ValidatorActor.d.ts.map +1 -1
  49. package/dist/neutral/shared/config/actors/Api.d.ts +12 -0
  50. package/dist/neutral/shared/config/actors/Api.d.ts.map +1 -1
  51. package/dist/neutral/shared/config/actors/Bridge.d.ts +12 -0
  52. package/dist/neutral/shared/config/actors/Bridge.d.ts.map +1 -1
  53. package/dist/neutral/shared/config/actors/Mempool.d.ts +12 -0
  54. package/dist/neutral/shared/config/actors/Mempool.d.ts.map +1 -1
  55. package/dist/neutral/shared/config/actors/Producer.d.ts +19 -0
  56. package/dist/neutral/shared/config/actors/Producer.d.ts.map +1 -1
  57. package/dist/neutral/shared/config/actors/RewardRedemption.d.ts +12 -0
  58. package/dist/neutral/shared/config/actors/RewardRedemption.d.ts.map +1 -1
  59. package/dist/neutral/shared/config/actors/Validator.d.ts +18 -0
  60. package/dist/neutral/shared/config/actors/Validator.d.ts.map +1 -1
  61. package/dist/neutral/shared/config/actors/index.d.ts +0 -1
  62. package/dist/neutral/shared/config/actors/index.d.ts.map +1 -1
  63. package/dist/neutral/shared/config/mergeConfig.d.ts +2 -0
  64. package/dist/neutral/shared/config/mergeConfig.d.ts.map +1 -1
  65. package/dist/neutral/shared/orchestrator/Orchestrator.d.ts +1 -1
  66. package/dist/neutral/shared/orchestrator/Orchestrator.d.ts.map +1 -1
  67. package/dist/node/index.mjs +149 -392
  68. package/dist/node/index.mjs.map +1 -1
  69. package/dist/node/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  70. package/dist/node/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  71. package/dist/node/node/config/tryParseConfig.d.ts +4 -0
  72. package/dist/node/node/config/tryParseConfig.d.ts.map +1 -1
  73. package/dist/node/node/index.d.ts +3 -4
  74. package/dist/node/node/index.d.ts.map +1 -1
  75. package/dist/node/node/init/initEvmProvidersIfAvailable.d.ts.map +1 -1
  76. package/dist/node/node/init/initServerNode.d.ts +2 -0
  77. package/dist/node/node/init/initServerNode.d.ts.map +1 -1
  78. package/dist/node/node/manifest/public/index.d.ts +0 -3
  79. package/dist/node/node/manifest/public/index.d.ts.map +1 -1
  80. package/dist/node/shared/actor/ValidatorActor.d.ts +4 -2
  81. package/dist/node/shared/actor/ValidatorActor.d.ts.map +1 -1
  82. package/dist/node/shared/config/actors/Api.d.ts +12 -0
  83. package/dist/node/shared/config/actors/Api.d.ts.map +1 -1
  84. package/dist/node/shared/config/actors/Bridge.d.ts +12 -0
  85. package/dist/node/shared/config/actors/Bridge.d.ts.map +1 -1
  86. package/dist/node/shared/config/actors/Mempool.d.ts +12 -0
  87. package/dist/node/shared/config/actors/Mempool.d.ts.map +1 -1
  88. package/dist/node/shared/config/actors/Producer.d.ts +19 -0
  89. package/dist/node/shared/config/actors/Producer.d.ts.map +1 -1
  90. package/dist/node/shared/config/actors/RewardRedemption.d.ts +12 -0
  91. package/dist/node/shared/config/actors/RewardRedemption.d.ts.map +1 -1
  92. package/dist/node/shared/config/actors/Validator.d.ts +18 -0
  93. package/dist/node/shared/config/actors/Validator.d.ts.map +1 -1
  94. package/dist/node/shared/config/actors/index.d.ts +0 -1
  95. package/dist/node/shared/config/actors/index.d.ts.map +1 -1
  96. package/dist/node/shared/config/mergeConfig.d.ts +2 -0
  97. package/dist/node/shared/config/mergeConfig.d.ts.map +1 -1
  98. package/dist/node/shared/orchestrator/Orchestrator.d.ts +1 -1
  99. package/dist/node/shared/orchestrator/Orchestrator.d.ts.map +1 -1
  100. package/package.json +17 -23
  101. package/dist/browser/node/archivists/ChainFinalized/archivist.d.ts +0 -4
  102. package/dist/browser/node/archivists/ChainFinalized/archivist.d.ts.map +0 -1
  103. package/dist/browser/node/archivists/ChainFinalized/index.d.ts +0 -2
  104. package/dist/browser/node/archivists/ChainFinalized/index.d.ts.map +0 -1
  105. package/dist/browser/node/archivists/ChainFinalized/local.d.ts +0 -4
  106. package/dist/browser/node/archivists/ChainFinalized/local.d.ts.map +0 -1
  107. package/dist/browser/node/archivists/PendingBlocks/archivist.d.ts +0 -4
  108. package/dist/browser/node/archivists/PendingBlocks/archivist.d.ts.map +0 -1
  109. package/dist/browser/node/archivists/PendingBlocks/index.d.ts +0 -2
  110. package/dist/browser/node/archivists/PendingBlocks/index.d.ts.map +0 -1
  111. package/dist/browser/node/archivists/PendingBlocks/local.d.ts +0 -4
  112. package/dist/browser/node/archivists/PendingBlocks/local.d.ts.map +0 -1
  113. package/dist/browser/node/archivists/RejectedTransactions/archivist.d.ts +0 -4
  114. package/dist/browser/node/archivists/RejectedTransactions/archivist.d.ts.map +0 -1
  115. package/dist/browser/node/archivists/RejectedTransactions/index.d.ts +0 -2
  116. package/dist/browser/node/archivists/RejectedTransactions/index.d.ts.map +0 -1
  117. package/dist/browser/node/archivists/RejectedTransactions/local.d.ts +0 -3
  118. package/dist/browser/node/archivists/RejectedTransactions/local.d.ts.map +0 -1
  119. package/dist/browser/node/archivists/StakeIntentState/archivist.d.ts +0 -4
  120. package/dist/browser/node/archivists/StakeIntentState/archivist.d.ts.map +0 -1
  121. package/dist/browser/node/archivists/StakeIntentState/index.d.ts +0 -2
  122. package/dist/browser/node/archivists/StakeIntentState/index.d.ts.map +0 -1
  123. package/dist/browser/node/archivists/StakeIntentState/local.d.ts +0 -4
  124. package/dist/browser/node/archivists/StakeIntentState/local.d.ts.map +0 -1
  125. package/dist/browser/node/archivists/index.d.ts +0 -5
  126. package/dist/browser/node/archivists/index.d.ts.map +0 -1
  127. package/dist/browser/node/archivists/lib/index.d.ts +0 -2
  128. package/dist/browser/node/archivists/lib/index.d.ts.map +0 -1
  129. package/dist/browser/node/archivists/lib/localPersistentArchivist.d.ts +0 -21
  130. package/dist/browser/node/archivists/lib/localPersistentArchivist.d.ts.map +0 -1
  131. package/dist/browser/node/evm/index.d.ts +0 -5
  132. package/dist/browser/node/evm/index.d.ts.map +0 -1
  133. package/dist/browser/node/evm/initChainId.d.ts +0 -4
  134. package/dist/browser/node/evm/initChainId.d.ts.map +0 -1
  135. package/dist/browser/node/evm/initEvmProvider.d.ts +0 -5
  136. package/dist/browser/node/evm/initEvmProvider.d.ts.map +0 -1
  137. package/dist/browser/node/evm/initInfuraProvider.d.ts +0 -6
  138. package/dist/browser/node/evm/initInfuraProvider.d.ts.map +0 -1
  139. package/dist/browser/node/evm/initJsonRpcProvider.d.ts +0 -6
  140. package/dist/browser/node/evm/initJsonRpcProvider.d.ts.map +0 -1
  141. package/dist/browser/node/health/index.d.ts +0 -2
  142. package/dist/browser/node/health/index.d.ts.map +0 -1
  143. package/dist/browser/node/health/initHealthEndpoints.d.ts +0 -5
  144. package/dist/browser/node/health/initHealthEndpoints.d.ts.map +0 -1
  145. package/dist/browser/node/sharedMiddleware.d.ts +0 -3
  146. package/dist/browser/node/sharedMiddleware.d.ts.map +0 -1
  147. package/dist/neutral/node/archivists/ChainFinalized/archivist.d.ts +0 -4
  148. package/dist/neutral/node/archivists/ChainFinalized/archivist.d.ts.map +0 -1
  149. package/dist/neutral/node/archivists/ChainFinalized/index.d.ts +0 -2
  150. package/dist/neutral/node/archivists/ChainFinalized/index.d.ts.map +0 -1
  151. package/dist/neutral/node/archivists/ChainFinalized/local.d.ts +0 -4
  152. package/dist/neutral/node/archivists/ChainFinalized/local.d.ts.map +0 -1
  153. package/dist/neutral/node/archivists/PendingBlocks/archivist.d.ts +0 -4
  154. package/dist/neutral/node/archivists/PendingBlocks/archivist.d.ts.map +0 -1
  155. package/dist/neutral/node/archivists/PendingBlocks/index.d.ts +0 -2
  156. package/dist/neutral/node/archivists/PendingBlocks/index.d.ts.map +0 -1
  157. package/dist/neutral/node/archivists/PendingBlocks/local.d.ts +0 -4
  158. package/dist/neutral/node/archivists/PendingBlocks/local.d.ts.map +0 -1
  159. package/dist/neutral/node/archivists/RejectedTransactions/archivist.d.ts +0 -4
  160. package/dist/neutral/node/archivists/RejectedTransactions/archivist.d.ts.map +0 -1
  161. package/dist/neutral/node/archivists/RejectedTransactions/index.d.ts +0 -2
  162. package/dist/neutral/node/archivists/RejectedTransactions/index.d.ts.map +0 -1
  163. package/dist/neutral/node/archivists/RejectedTransactions/local.d.ts +0 -3
  164. package/dist/neutral/node/archivists/RejectedTransactions/local.d.ts.map +0 -1
  165. package/dist/neutral/node/archivists/StakeIntentState/archivist.d.ts +0 -4
  166. package/dist/neutral/node/archivists/StakeIntentState/archivist.d.ts.map +0 -1
  167. package/dist/neutral/node/archivists/StakeIntentState/index.d.ts +0 -2
  168. package/dist/neutral/node/archivists/StakeIntentState/index.d.ts.map +0 -1
  169. package/dist/neutral/node/archivists/StakeIntentState/local.d.ts +0 -4
  170. package/dist/neutral/node/archivists/StakeIntentState/local.d.ts.map +0 -1
  171. package/dist/neutral/node/archivists/index.d.ts +0 -5
  172. package/dist/neutral/node/archivists/index.d.ts.map +0 -1
  173. package/dist/neutral/node/archivists/lib/index.d.ts +0 -2
  174. package/dist/neutral/node/archivists/lib/index.d.ts.map +0 -1
  175. package/dist/neutral/node/archivists/lib/localPersistentArchivist.d.ts +0 -21
  176. package/dist/neutral/node/archivists/lib/localPersistentArchivist.d.ts.map +0 -1
  177. package/dist/neutral/node/evm/index.d.ts +0 -5
  178. package/dist/neutral/node/evm/index.d.ts.map +0 -1
  179. package/dist/neutral/node/evm/initChainId.d.ts +0 -4
  180. package/dist/neutral/node/evm/initChainId.d.ts.map +0 -1
  181. package/dist/neutral/node/evm/initEvmProvider.d.ts +0 -5
  182. package/dist/neutral/node/evm/initEvmProvider.d.ts.map +0 -1
  183. package/dist/neutral/node/evm/initInfuraProvider.d.ts +0 -6
  184. package/dist/neutral/node/evm/initInfuraProvider.d.ts.map +0 -1
  185. package/dist/neutral/node/evm/initJsonRpcProvider.d.ts +0 -6
  186. package/dist/neutral/node/evm/initJsonRpcProvider.d.ts.map +0 -1
  187. package/dist/neutral/node/health/index.d.ts +0 -2
  188. package/dist/neutral/node/health/index.d.ts.map +0 -1
  189. package/dist/neutral/node/health/initHealthEndpoints.d.ts +0 -5
  190. package/dist/neutral/node/health/initHealthEndpoints.d.ts.map +0 -1
  191. package/dist/neutral/node/sharedMiddleware.d.ts +0 -3
  192. package/dist/neutral/node/sharedMiddleware.d.ts.map +0 -1
  193. package/dist/node/node/archivists/ChainFinalized/archivist.d.ts +0 -4
  194. package/dist/node/node/archivists/ChainFinalized/archivist.d.ts.map +0 -1
  195. package/dist/node/node/archivists/ChainFinalized/index.d.ts +0 -2
  196. package/dist/node/node/archivists/ChainFinalized/index.d.ts.map +0 -1
  197. package/dist/node/node/archivists/ChainFinalized/local.d.ts +0 -4
  198. package/dist/node/node/archivists/ChainFinalized/local.d.ts.map +0 -1
  199. package/dist/node/node/archivists/PendingBlocks/archivist.d.ts +0 -4
  200. package/dist/node/node/archivists/PendingBlocks/archivist.d.ts.map +0 -1
  201. package/dist/node/node/archivists/PendingBlocks/index.d.ts +0 -2
  202. package/dist/node/node/archivists/PendingBlocks/index.d.ts.map +0 -1
  203. package/dist/node/node/archivists/PendingBlocks/local.d.ts +0 -4
  204. package/dist/node/node/archivists/PendingBlocks/local.d.ts.map +0 -1
  205. package/dist/node/node/archivists/RejectedTransactions/archivist.d.ts +0 -4
  206. package/dist/node/node/archivists/RejectedTransactions/archivist.d.ts.map +0 -1
  207. package/dist/node/node/archivists/RejectedTransactions/index.d.ts +0 -2
  208. package/dist/node/node/archivists/RejectedTransactions/index.d.ts.map +0 -1
  209. package/dist/node/node/archivists/RejectedTransactions/local.d.ts +0 -3
  210. package/dist/node/node/archivists/RejectedTransactions/local.d.ts.map +0 -1
  211. package/dist/node/node/archivists/StakeIntentState/archivist.d.ts +0 -4
  212. package/dist/node/node/archivists/StakeIntentState/archivist.d.ts.map +0 -1
  213. package/dist/node/node/archivists/StakeIntentState/index.d.ts +0 -2
  214. package/dist/node/node/archivists/StakeIntentState/index.d.ts.map +0 -1
  215. package/dist/node/node/archivists/StakeIntentState/local.d.ts +0 -4
  216. package/dist/node/node/archivists/StakeIntentState/local.d.ts.map +0 -1
  217. package/dist/node/node/archivists/index.d.ts +0 -5
  218. package/dist/node/node/archivists/index.d.ts.map +0 -1
  219. package/dist/node/node/archivists/lib/index.d.ts +0 -2
  220. package/dist/node/node/archivists/lib/index.d.ts.map +0 -1
  221. package/dist/node/node/archivists/lib/localPersistentArchivist.d.ts +0 -21
  222. package/dist/node/node/archivists/lib/localPersistentArchivist.d.ts.map +0 -1
  223. package/dist/node/node/evm/index.d.ts +0 -5
  224. package/dist/node/node/evm/index.d.ts.map +0 -1
  225. package/dist/node/node/evm/initChainId.d.ts +0 -4
  226. package/dist/node/node/evm/initChainId.d.ts.map +0 -1
  227. package/dist/node/node/evm/initEvmProvider.d.ts +0 -5
  228. package/dist/node/node/evm/initEvmProvider.d.ts.map +0 -1
  229. package/dist/node/node/evm/initInfuraProvider.d.ts +0 -6
  230. package/dist/node/node/evm/initInfuraProvider.d.ts.map +0 -1
  231. package/dist/node/node/evm/initJsonRpcProvider.d.ts +0 -6
  232. package/dist/node/node/evm/initJsonRpcProvider.d.ts.map +0 -1
  233. package/dist/node/node/health/index.d.ts +0 -2
  234. package/dist/node/node/health/index.d.ts.map +0 -1
  235. package/dist/node/node/health/initHealthEndpoints.d.ts +0 -5
  236. package/dist/node/node/health/initHealthEndpoints.d.ts.map +0 -1
  237. package/dist/node/node/sharedMiddleware.d.ts +0 -3
  238. package/dist/node/node/sharedMiddleware.d.ts.map +0 -1
@@ -4,7 +4,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
4
4
  // src/shared/actor/ValidatorActor.ts
5
5
  import { creatable } from "@xylabs/sdk-js";
6
6
  import { processPendingBlocks } from "@xyo-network/chain-sdk";
7
- import { ActorV3, BlockValidationViewerMoniker, BlockViewerMoniker, FinalizationRunnerMoniker, MempoolViewerMoniker } from "@xyo-network/xl1-sdk";
7
+ import { ActorV3, BlockValidationViewerMoniker, BlockViewerMoniker, DeadLetterQueueRunnerMoniker, FinalizationRunnerMoniker, MempoolViewerMoniker } from "@xyo-network/xl1-sdk";
8
8
  function _ts_decorate(decorators, target, key, desc) {
9
9
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10
10
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -18,6 +18,7 @@ var ValidatorActor = class extends ActorV3 {
18
18
  }
19
19
  _blockValidationViewer;
20
20
  _blockViewer;
21
+ _deadLetterQueueRunner;
21
22
  _finalizationRunner;
22
23
  _lastValidatedBlock;
23
24
  _lastValidatedBlockHash;
@@ -37,12 +38,16 @@ var ValidatorActor = class extends ActorV3 {
37
38
  get mempoolViewer() {
38
39
  return this._mempoolViewer;
39
40
  }
41
+ get minCandidates() {
42
+ return this.params.config.minCandidates;
43
+ }
40
44
  async createHandler() {
41
45
  await super.startHandler();
42
46
  this._blockValidationViewer = await this.locator.getInstance(BlockValidationViewerMoniker);
43
47
  this._blockViewer = await this.locator.getInstance(BlockViewerMoniker);
44
48
  this._finalizationRunner = await this.locator.getInstance(FinalizationRunnerMoniker);
45
49
  this._mempoolViewer = await this.locator.getInstance(MempoolViewerMoniker);
50
+ this._deadLetterQueueRunner = await this.locator.tryGetInstance(DeadLetterQueueRunnerMoniker);
46
51
  }
47
52
  async startHandler() {
48
53
  await super.startHandler();
@@ -56,7 +61,9 @@ var ValidatorActor = class extends ActorV3 {
56
61
  mempoolViewer: this.mempoolViewer,
57
62
  blockViewer: this.blockViewer,
58
63
  finalizationRunner: this.finalizationRunner,
59
- allowedProducers: this.allowedProducers
64
+ allowedProducers: this.allowedProducers,
65
+ minCandidates: this.minCandidates,
66
+ deadLetterQueueRunner: this._deadLetterQueueRunner
60
67
  });
61
68
  }, {
62
69
  ...this.context,
@@ -279,6 +286,7 @@ var toMempoolConfigContext = zodToFactory3(MempoolConfigContext, "toMempoolConfi
279
286
  import { AddressZod as AddressZod2, asAddress, zodAsFactory as zodAsFactory4, zodIsFactory as zodIsFactory4, zodToFactory as zodToFactory4 } from "@xylabs/sdk-js";
280
287
  import { ActorConfigZod, BaseConfigContextZod as BaseConfigContextZod4 } from "@xyo-network/xl1-sdk";
281
288
  import { globalRegistry as globalRegistry4, z as z4 } from "zod";
289
+ var DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL = 1e4;
282
290
  var ProducerConfigZod = ActorConfigZod.extend(z4.object({
283
291
  allowlist: z4.preprocess((val) => {
284
292
  if (typeof val === "string") {
@@ -290,6 +298,11 @@ var ProducerConfigZod = ActorConfigZod.extend(z4.object({
290
298
  title: "allowlist",
291
299
  type: "array"
292
300
  })),
301
+ blockProductionCheckInterval: z4.coerce.number().default(DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL).register(globalRegistry4, {
302
+ description: "The interval time (in milliseconds) between block production attempts",
303
+ title: "producer.blockProductionCheckInterval",
304
+ type: "number"
305
+ }),
293
306
  disableIntentRedeclaration: z4.boolean().optional().register(globalRegistry4, {
294
307
  description: "Should the producer skip redeclaring their intent to continue producing blocks",
295
308
  title: "producer.disableIntentRedeclaration",
@@ -342,7 +355,8 @@ import { AddressZod as AddressZod3, zodAsFactory as zodAsFactory6, zodIsFactory
342
355
  import { BaseConfigContextZod as BaseConfigContextZod6, HostActorConfigZod as HostActorConfigZod5 } from "@xyo-network/xl1-sdk";
343
356
  import { z as z5 } from "zod";
344
357
  var ValidatorConfigZod = HostActorConfigZod5.extend({
345
- allowedProducers: z5.array(AddressZod3).optional()
358
+ allowedProducers: z5.array(AddressZod3).optional(),
359
+ minCandidates: z5.number().int().min(0).optional()
346
360
  });
347
361
  var isValidatorConfig = zodIsFactory6(ValidatorConfigZod);
348
362
  var asValidatorConfig = zodAsFactory6(ValidatorConfigZod, "asValidatorConfig");
@@ -428,9 +442,9 @@ async function initActorAccount({ config, logger }) {
428
442
  if (isDefined(actorAccountSingletons[actorName])) return actorAccountSingletons[actorName];
429
443
  let walletPhrase = config.mnemonic;
430
444
  if (isUndefined(walletPhrase)) {
431
- logger?.warn(`[${actorName}}] No wallet mnemonic specified!`);
445
+ logger?.warn(`[${actorName}] No wallet mnemonic specified!`);
432
446
  const randomMnemonic = HDWallet.generateMnemonic();
433
- logger?.warn(`[${actorName}}] Using randomly generated mnemonic:
447
+ logger?.warn(`[${actorName}] Using randomly generated mnemonic:
434
448
 
435
449
  ${randomMnemonic}
436
450
 
@@ -596,177 +610,6 @@ Orchestrator = _ts_decorate2([
596
610
  creatable2()
597
611
  ], Orchestrator);
598
612
 
599
- // src/node/archivists/ChainFinalized/archivist.ts
600
- import { timeBudget } from "@xylabs/sdk-js";
601
- import { startupSpanAsync } from "@xyo-network/chain-utils";
602
- import { Mutex as Mutex3 } from "async-mutex";
603
-
604
- // src/node/archivists/ChainFinalized/local.ts
605
- import { Mutex as Mutex2 } from "async-mutex";
606
-
607
- // src/node/archivists/lib/localPersistentArchivist.ts
608
- import { rm } from "fs/promises";
609
- import Path from "path";
610
- import { LmdbArchivist, LmdbArchivistConfigSchema } from "@xyo-network/archivist-lmdb";
611
- import { getStoreDirectory } from "@xyo-network/chain-protocol";
612
- var DEFAULT_STORAGE_ROOT = Path.join(process.cwd(), ".store");
613
- var getLocalPersistentArchivist = /* @__PURE__ */ __name((name, dbName, storeName, storageRoot, kind = "lmdb") => {
614
- switch (kind) {
615
- case "lmdb": {
616
- const root = storageRoot ?? DEFAULT_STORAGE_ROOT;
617
- return LmdbArchivist.create({
618
- account: "random",
619
- config: {
620
- name,
621
- clearStoreOnStart: false,
622
- dbName,
623
- location: getStoreDirectory(dbName, root, "lmdb"),
624
- schema: LmdbArchivistConfigSchema,
625
- storeName
626
- }
627
- });
628
- }
629
- }
630
- }, "getLocalPersistentArchivist");
631
-
632
- // src/node/archivists/ChainFinalized/local.ts
633
- var mutex = new Mutex2();
634
- var singleton;
635
- async function initLocalChainFinalizedArchivist({ config }) {
636
- return await mutex.runExclusive(async () => {
637
- if (singleton) return singleton;
638
- const { root } = config.storage;
639
- singleton = await getLocalPersistentArchivist("local-finalized-chain", "chain", "finalized", root);
640
- return singleton;
641
- });
642
- }
643
- __name(initLocalChainFinalizedArchivist, "initLocalChainFinalizedArchivist");
644
-
645
- // src/node/archivists/ChainFinalized/archivist.ts
646
- var mutex2 = new Mutex3();
647
- var singleton2;
648
- async function initChainFinalizedArchivist(context) {
649
- return await mutex2.runExclusive(async () => {
650
- if (singleton2) return singleton2;
651
- return await timeBudget("initChainFinalizedArchivist", context.logger, async () => {
652
- const local = await startupSpanAsync("ChainFinalizedArchivist:initLocal", () => initLocalChainFinalizedArchivist(context));
653
- singleton2 = local;
654
- return singleton2;
655
- }, 2e3, true);
656
- });
657
- }
658
- __name(initChainFinalizedArchivist, "initChainFinalizedArchivist");
659
-
660
- // src/node/archivists/PendingBlocks/archivist.ts
661
- import { timeBudget as timeBudget2 } from "@xylabs/sdk-js";
662
- import { startupSpanAsync as startupSpanAsync2 } from "@xyo-network/chain-utils";
663
- import { Mutex as Mutex5 } from "async-mutex";
664
-
665
- // src/node/archivists/PendingBlocks/local.ts
666
- import { Mutex as Mutex4 } from "async-mutex";
667
- var mutex3 = new Mutex4();
668
- var singleton3;
669
- async function initLocalPendingBlocksArchivist({ config }) {
670
- return await mutex3.runExclusive(async () => {
671
- if (singleton3) return singleton3;
672
- const { root } = config.storage;
673
- singleton3 = await getLocalPersistentArchivist("local-pending-blocks", "chain", "pending_block_bundles", root);
674
- return singleton3;
675
- });
676
- }
677
- __name(initLocalPendingBlocksArchivist, "initLocalPendingBlocksArchivist");
678
-
679
- // src/node/archivists/PendingBlocks/archivist.ts
680
- var mutex4 = new Mutex5();
681
- var singleton4;
682
- async function initPendingBlocksArchivist(context) {
683
- return await mutex4.runExclusive(async () => {
684
- if (singleton4) return singleton4;
685
- return await timeBudget2("initPendingBlocksArchivist", context.logger, async () => {
686
- const local = await startupSpanAsync2("PendingBlocksArchivist:initLocal", () => initLocalPendingBlocksArchivist(context));
687
- singleton4 = local;
688
- return singleton4;
689
- }, 2e3, true);
690
- });
691
- }
692
- __name(initPendingBlocksArchivist, "initPendingBlocksArchivist");
693
-
694
- // src/node/archivists/RejectedTransactions/archivist.ts
695
- import { timeBudget as timeBudget3 } from "@xylabs/sdk-js";
696
- import { startupSpanAsync as startupSpanAsync3 } from "@xyo-network/chain-utils";
697
- import { Mutex as Mutex7 } from "async-mutex";
698
-
699
- // src/node/archivists/RejectedTransactions/local.ts
700
- import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/sdk-js";
701
- import { Mutex as Mutex6 } from "async-mutex";
702
- var mutex5 = new Mutex6();
703
- var singleton5;
704
- async function initLocalRejectedTransactionsArchivist() {
705
- return await mutex5.runExclusive(async () => {
706
- if (singleton5) return singleton5;
707
- singleton5 = await MemoryArchivist.create({
708
- account: "random",
709
- config: {
710
- schema: MemoryArchivistConfigSchema,
711
- max: 1e3,
712
- name: "localRejectedTransactions"
713
- }
714
- });
715
- return singleton5;
716
- });
717
- }
718
- __name(initLocalRejectedTransactionsArchivist, "initLocalRejectedTransactionsArchivist");
719
-
720
- // src/node/archivists/RejectedTransactions/archivist.ts
721
- var mutex6 = new Mutex7();
722
- var singleton6;
723
- async function initRejectedTransactionsArchivist({ logger }) {
724
- return await mutex6.runExclusive(async () => {
725
- if (singleton6) return singleton6;
726
- return await timeBudget3("initRejectedTransactionsArchivist", logger, async () => {
727
- const local = await startupSpanAsync3("RejectedTransactionsArchivist:initLocal", () => initLocalRejectedTransactionsArchivist());
728
- singleton6 = local;
729
- return singleton6;
730
- }, 2e3, true);
731
- });
732
- }
733
- __name(initRejectedTransactionsArchivist, "initRejectedTransactionsArchivist");
734
-
735
- // src/node/archivists/StakeIntentState/archivist.ts
736
- import { assertEx as assertEx4, timeBudget as timeBudget4 } from "@xylabs/sdk-js";
737
- import { startupSpanAsync as startupSpanAsync4 } from "@xyo-network/chain-utils";
738
- import { Mutex as Mutex9 } from "async-mutex";
739
-
740
- // src/node/archivists/StakeIntentState/local.ts
741
- import { assertEx as assertEx3 } from "@xylabs/sdk-js";
742
- import { Mutex as Mutex8 } from "async-mutex";
743
- var mutex7 = new Mutex8();
744
- var singleton7;
745
- async function initLocalStakeIntentStateArchivist({ config }) {
746
- return await mutex7.runExclusive(async () => {
747
- if (singleton7) return singleton7;
748
- const { root } = config.storage;
749
- singleton7 = await getLocalPersistentArchivist("local-stake-intent-state", "stakeIntent", "state", root);
750
- return assertEx3(singleton7, () => new Error("Failed to initialize stake intent state archivist"));
751
- });
752
- }
753
- __name(initLocalStakeIntentStateArchivist, "initLocalStakeIntentStateArchivist");
754
-
755
- // src/node/archivists/StakeIntentState/archivist.ts
756
- var mutex8 = new Mutex9();
757
- var singleton8;
758
- async function initStakeIntentStateArchivist(context) {
759
- return await mutex8.runExclusive(async () => {
760
- if (singleton8) return singleton8;
761
- return await timeBudget4("initStakeIntentStateArchivist", context.logger, async () => {
762
- const local = await startupSpanAsync4("StakeIntentStateArchivist:initLocal", () => initLocalStakeIntentStateArchivist(context));
763
- singleton8 = local;
764
- return assertEx4(singleton8, () => "StakeIntentStateArchivist is undefined");
765
- }, 2e3, true);
766
- });
767
- }
768
- __name(initStakeIntentStateArchivist, "initStakeIntentStateArchivist");
769
-
770
613
  // src/node/config/locators/basicRemoteRunnerLocator.ts
771
614
  import { isAccountInstance } from "@xyo-network/sdk-js";
772
615
  import { basicRemoteRunnerLocator as sdkBasicRemoteRunnerLocator, JsonRpcAccountBalanceViewer, JsonRpcXyoSigner, SimpleXyoSigner } from "@xyo-network/xl1-sdk";
@@ -845,14 +688,14 @@ async function contextFromConfigWithoutLocator(config, logger, serviceName, serv
845
688
  __name(contextFromConfigWithoutLocator, "contextFromConfigWithoutLocator");
846
689
 
847
690
  // src/node/config/locators/localLocatorFromConfig.ts
848
- import { assertEx as assertEx14 } from "@xylabs/sdk-js";
691
+ import { assertEx as assertEx7 } from "@xylabs/sdk-js";
849
692
  import { validateHydratedBlock, validateHydratedBlockState } from "@xyo-network/chain-validation";
850
- import { BlockCumulativeBalanceValidatorFactory, ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockValidationViewer, SimpleBlockViewer, SimpleFinalizationRunner, SimpleFinalizationViewer, SimpleMempoolRunner, SimpleMempoolViewer, SimpleTransactionViewer, SimpleWindowedBlockViewer, SimpleXyoConnectionViewer, SimpleXyoViewer } from "@xyo-network/xl1-sdk";
693
+ import { BlockCumulativeBalanceValidatorFactory, ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockValidationViewer, SimpleBlockViewer, SimpleDeadLetterQueueRunner, SimpleDeadLetterQueueViewer, SimpleFinalizationRunner, SimpleFinalizationViewer, SimpleMempoolRunner, SimpleMempoolViewer, SimpleTransactionValidationViewer, SimpleTransactionViewer, SimpleWindowedBlockViewer, SimpleXyoConnectionViewer, SimpleXyoViewer, validateTransaction } from "@xyo-network/xl1-sdk";
851
694
 
852
695
  // src/node/init/initBalanceSummaryMap.ts
853
696
  import { BaseMongoSdk } from "@xylabs/mongo";
854
- import { assertEx as assertEx5 } from "@xylabs/sdk-js";
855
- import { MongoMap } from "@xyo-network/chain-protocol";
697
+ import { assertEx as assertEx3 } from "@xylabs/sdk-js";
698
+ import { MongoMap } from "@xyo-network/chain-protocol-driver-mongodb";
856
699
  import { hasMongoConfig, MemoryMap } from "@xyo-network/xl1-sdk";
857
700
  async function initBalanceSummaryMap({ logger, config }) {
858
701
  const mongoConfig = config.storage?.mongo;
@@ -876,7 +719,7 @@ async function initBalanceSummaryMap({ logger, config }) {
876
719
  maxEntries: 5e3
877
720
  }
878
721
  });
879
- assertEx5(await result.start(), () => "Failed to start transfer summary map");
722
+ assertEx3(await result.start(), () => "Failed to start transfer summary map");
880
723
  return result;
881
724
  } else {
882
725
  logger?.warn("[API] Mongo configuration not found. Using MemoryMap for BalanceSummaryMap.");
@@ -886,118 +729,35 @@ async function initBalanceSummaryMap({ logger, config }) {
886
729
  __name(initBalanceSummaryMap, "initBalanceSummaryMap");
887
730
 
888
731
  // src/node/init/initEvmProvidersIfAvailable.ts
889
- import { asEthAddress, assertEx as assertEx10 } from "@xylabs/sdk-js";
732
+ import { asEthAddress } from "@xylabs/sdk-js";
890
733
  import { EvmChainContractViewer, EvmStakeEventsViewer, EvmStakeTotalsViewer, EvmStakeViewer } from "@xyo-network/chain-ethereum";
734
+ import { canUseEvmProvider, initEvmProvider } from "@xyo-network/chain-orchestration-evm";
891
735
  import { SimpleChainContractViewer, SimpleStakeEventsViewer, SimpleStakeTotalsViewer, SimpleStakeViewer, SimpleTimeSyncViewer, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-sdk";
892
-
893
- // src/node/evm/initChainId.ts
894
- import { assertEx as assertEx6, hexFrom, isDefined as isDefined3, isHex } from "@xylabs/sdk-js";
895
- var canUseChainId = /* @__PURE__ */ __name(({ config }) => {
896
- return isDefined3(config.evm.chainId);
897
- }, "canUseChainId");
898
- var getChainId = /* @__PURE__ */ __name(({ config }) => {
899
- const chainId = assertEx6(config.evm.chainId, () => "Missing config.evm.chainId");
900
- if (isHex(chainId, {
901
- prefix: true
902
- })) {
903
- const hex = hexFrom(chainId);
904
- const parsed = Number.parseInt(hex, 16);
905
- return parsed;
906
- } else {
907
- const parsed = Number.parseInt(chainId, 10);
908
- return parsed;
909
- }
910
- }, "getChainId");
911
-
912
- // src/node/evm/initEvmProvider.ts
913
- import { assertEx as assertEx9 } from "@xylabs/sdk-js";
914
-
915
- // src/node/evm/initInfuraProvider.ts
916
- import { assertEx as assertEx7, isDefined as isDefined4 } from "@xylabs/sdk-js";
917
- import { InfuraProvider } from "ethers/providers";
918
- var instance;
919
- var initInfuraProvider = /* @__PURE__ */ __name((context) => {
920
- if (instance) return instance;
921
- const providerConfig = getInfuraProviderConfig(context);
922
- instance = Promise.resolve(new InfuraProvider(providerConfig[0], providerConfig[1]));
923
- return instance;
924
- }, "initInfuraProvider");
925
- var canUseInfuraProvider = /* @__PURE__ */ __name((context) => {
926
- const { config } = context;
927
- return canUseChainId(context) && isDefined4(config.evm?.infura?.projectId) && isDefined4(config.evm?.infura?.projectSecret);
928
- }, "canUseInfuraProvider");
929
- var getInfuraProviderConfig = /* @__PURE__ */ __name((context) => {
930
- const { config } = context;
931
- const projectId = assertEx7(config.evm?.infura?.projectId, () => "Missing config.evm.infura.projectId");
932
- const projectSecret = assertEx7(config.evm?.infura?.projectSecret, () => "Missing config.evm.infura.projectSecret");
933
- return [
934
- getChainId(context),
935
- projectId,
936
- projectSecret
937
- ];
938
- }, "getInfuraProviderConfig");
939
-
940
- // src/node/evm/initJsonRpcProvider.ts
941
- import { assertEx as assertEx8, isDefined as isDefined5 } from "@xylabs/sdk-js";
942
- import { JsonRpcProvider } from "ethers/providers";
943
- var initJsonRpcProvider = /* @__PURE__ */ __name((context) => {
944
- const providerConfig = getJsonRpcProviderConfig(context);
945
- return Promise.resolve(new JsonRpcProvider(...providerConfig));
946
- }, "initJsonRpcProvider");
947
- var canUseJsonRpcProvider = /* @__PURE__ */ __name((context) => {
948
- const { config } = context;
949
- return canUseChainId(context) && isDefined5(config.evm.jsonRpc?.url);
950
- }, "canUseJsonRpcProvider");
951
- var getJsonRpcProviderConfig = /* @__PURE__ */ __name((context) => {
952
- const { config } = context;
953
- const jsonRpcUrl = assertEx8(config.evm.jsonRpc?.url, () => "Missing config.evm.jsonRpc.url");
954
- return [
955
- jsonRpcUrl,
956
- getChainId(context)
957
- ];
958
- }, "getJsonRpcProviderConfig");
959
-
960
- // src/node/evm/initEvmProvider.ts
961
- var provider;
962
- var initEvmProvider = /* @__PURE__ */ __name(async (context) => {
963
- if (provider) return provider;
964
- if (canUseInfuraProvider(context)) {
965
- provider = initInfuraProvider(context);
966
- } else if (canUseJsonRpcProvider(context)) {
967
- provider = initJsonRpcProvider(context);
968
- }
969
- return assertEx9(await provider, () => "No provider available");
970
- }, "initEvmProvider");
971
- var canUseEvmProvider = /* @__PURE__ */ __name((context) => {
972
- return canUseInfuraProvider(context) || canUseJsonRpcProvider(context);
973
- }, "canUseEvmProvider");
974
-
975
- // src/node/init/initEvmProvidersIfAvailable.ts
976
736
  async function initEvmProvidersIfAvailable(locator) {
977
737
  const context = locator.context;
978
738
  const { logger } = context;
979
- if (canUseEvmProvider(context)) {
980
- const chainId = assertEx10(context.config.chain.id, () => "Missing config.chain.id (required for EVM providers)");
981
- const provider2 = await initEvmProvider(context);
739
+ if (canUseEvmProvider(context) && context.config.chain.id) {
740
+ const chainId = context.config.chain.id;
741
+ const provider = await initEvmProvider(context);
982
742
  const address = asEthAddress(chainId, true);
983
743
  locator.register(EvmStakeEventsViewer.factory(EvmStakeEventsViewer.dependencies, {
984
744
  address,
985
- provider: provider2
745
+ provider
986
746
  }));
987
747
  locator.register(EvmStakeViewer.factory(EvmStakeViewer.dependencies, {
988
748
  address,
989
- provider: provider2
749
+ provider
990
750
  }));
991
751
  locator.register(EvmStakeTotalsViewer.factory(EvmStakeTotalsViewer.dependencies, {
992
752
  address,
993
- provider: provider2
753
+ provider
994
754
  }));
995
755
  locator.register(EvmChainContractViewer.factory(EvmChainContractViewer.dependencies, {
996
756
  address,
997
- provider: provider2
757
+ provider
998
758
  }));
999
759
  locator.register(SimpleTimeSyncViewer.factory(SimpleTimeSyncViewer.dependencies, {
1000
- ethProvider: provider2
760
+ ethProvider: provider
1001
761
  }));
1002
762
  } else {
1003
763
  logger?.warn("EVM provider not available - running with memory based contract/stake viewers");
@@ -1021,7 +781,7 @@ async function initEvmProvidersIfAvailable(locator) {
1021
781
  __name(initEvmProvidersIfAvailable, "initEvmProvidersIfAvailable");
1022
782
 
1023
783
  // src/node/init/initFinalizationArchivistIfNeeded.ts
1024
- import { assertEx as assertEx11 } from "@xylabs/sdk-js";
784
+ import { assertEx as assertEx4 } from "@xylabs/sdk-js";
1025
785
  import { createBootstrapHead } from "@xyo-network/chain-sdk";
1026
786
  import { Account } from "@xyo-network/sdk-js";
1027
787
  import { asAttoXL1, findMostRecentBlock, flattenHydratedBlock } from "@xyo-network/xl1-sdk";
@@ -1038,8 +798,8 @@ async function initFinalizationArchivistIfNeeded(archivist, config, account) {
1038
798
  const payloads = chain.flatMap((block) => flattenHydratedBlock(block));
1039
799
  await archivist.insert(payloads);
1040
800
  }
1041
- const head = possibleHead ?? assertEx11(await findMostRecentBlock(archivist), () => "No blocks found in chain archivist");
1042
- const chainId = assertEx11(possibleChainId, () => "Chain ID could not be determined");
801
+ const head = possibleHead ?? assertEx4(await findMostRecentBlock(archivist), () => "No blocks found in chain archivist");
802
+ const chainId = assertEx4(possibleChainId, () => "Chain ID could not be determined");
1043
803
  return [
1044
804
  head,
1045
805
  chainId
@@ -1066,15 +826,15 @@ async function initFinalizedArchivist(config) {
1066
826
  __name(initFinalizedArchivist, "initFinalizedArchivist");
1067
827
 
1068
828
  // src/node/init/initServerNode.ts
1069
- import { assertEx as assertEx12 } from "@xylabs/sdk-js";
829
+ import { assertEx as assertEx5 } from "@xylabs/sdk-js";
1070
830
  import { asArchivistInstance } from "@xyo-network/sdk-js";
1071
831
 
1072
832
  // src/node/manifest/getLocator.ts
1073
- import { isDefined as isDefined6 } from "@xylabs/sdk-js";
833
+ import { isDefined as isDefined3 } from "@xylabs/sdk-js";
1074
834
  import { MongoDBArchivistV2 as MongoDBArchivistV22, MongoDBArchivistV2Deletable } from "@xyo-network/archivist-mongodb";
1075
835
  import { ViewArchivist } from "@xyo-network/archivist-view";
1076
836
  import { initTelemetry as initTelemetry2 } from "@xyo-network/chain-telemetry";
1077
- import { AbstractModule, LoggerModuleStatusReporter, MemoryArchivist as MemoryArchivist2, MemorySentinel, ModuleFactoryLocator } from "@xyo-network/sdk-js";
837
+ import { AbstractModule, LoggerModuleStatusReporter, MemoryArchivist, MemorySentinel, ModuleFactoryLocator } from "@xyo-network/sdk-js";
1078
838
  import { hasMongoConfig as hasMongoConfig2 } from "@xyo-network/xl1-sdk";
1079
839
  var getLocator = /* @__PURE__ */ __name(async ({ logger, config }) => {
1080
840
  const { otlpEndpoint } = config.telemetry?.otel ?? {};
@@ -1090,7 +850,7 @@ var getLocator = /* @__PURE__ */ __name(async ({ logger, config }) => {
1090
850
  port
1091
851
  }
1092
852
  });
1093
- if (isDefined6(logger)) AbstractModule.defaultLogger = logger;
853
+ if (isDefined3(logger)) AbstractModule.defaultLogger = logger;
1094
854
  const statusReporter = logger ? new LoggerModuleStatusReporter(logger) : void 0;
1095
855
  const locator = new ModuleFactoryLocator();
1096
856
  const mongoConfig = config.storage?.mongo;
@@ -1114,7 +874,7 @@ var getLocator = /* @__PURE__ */ __name(async ({ logger, config }) => {
1114
874
  "network.xyo.storage.capabilities.delete": "enabled"
1115
875
  }, false);
1116
876
  }
1117
- locator.register(MemoryArchivist2.factory({
877
+ locator.register(MemoryArchivist.factory({
1118
878
  traceProvider,
1119
879
  meterProvider,
1120
880
  statusReporter
@@ -1211,6 +971,62 @@ var Chain_default = {
1211
971
  schema: "network.xyo.manifest"
1212
972
  };
1213
973
 
974
+ // src/node/manifest/public/DeadLetterQueue.json
975
+ var DeadLetterQueue_default = {
976
+ $schema: "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
977
+ nodes: [
978
+ {
979
+ config: {
980
+ accountPath: "3",
981
+ name: "DeadLetterQueue",
982
+ schema: "network.xyo.node.config"
983
+ },
984
+ modules: {
985
+ private: [],
986
+ public: [
987
+ {
988
+ config: {
989
+ accountPath: "3/1/1",
990
+ name: "RejectedBlocks",
991
+ getCache: {
992
+ enabled: true,
993
+ maxEntries: 5e3
994
+ },
995
+ labels: {
996
+ "network.xyo.storage.capabilities.delete": "enabled",
997
+ "network.xyo.storage.class": "mongodb"
998
+ },
999
+ payloadSdkConfig: {
1000
+ collection: "rejected_blocks"
1001
+ },
1002
+ schema: "network.xyo.archivist.config"
1003
+ }
1004
+ },
1005
+ {
1006
+ config: {
1007
+ accountPath: "3/1/2",
1008
+ name: "RejectedTransactions",
1009
+ getCache: {
1010
+ enabled: true,
1011
+ maxEntries: 5e3
1012
+ },
1013
+ labels: {
1014
+ "network.xyo.storage.capabilities.delete": "enabled",
1015
+ "network.xyo.storage.class": "mongodb"
1016
+ },
1017
+ payloadSdkConfig: {
1018
+ collection: "rejected_transactions"
1019
+ },
1020
+ schema: "network.xyo.archivist.config"
1021
+ }
1022
+ }
1023
+ ]
1024
+ }
1025
+ }
1026
+ ],
1027
+ schema: "network.xyo.manifest"
1028
+ };
1029
+
1214
1030
  // src/node/manifest/public/Pending.json
1215
1031
  var Pending_default = {
1216
1032
  $schema: "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
@@ -1269,9 +1085,11 @@ var Pending_default = {
1269
1085
 
1270
1086
  // src/node/manifest/public/index.ts
1271
1087
  var ChainNodeManifest = Chain_default;
1088
+ var DeadLetterQueueNodeManifest = DeadLetterQueue_default;
1272
1089
  var PendingNodeManifest = Pending_default;
1273
1090
  var PublicChildManifests = [
1274
1091
  ...ChainNodeManifest.nodes,
1092
+ ...DeadLetterQueueNodeManifest.nodes,
1275
1093
  ...PendingNodeManifest.nodes
1276
1094
  ];
1277
1095
 
@@ -1295,7 +1113,7 @@ async function writableChainArchivistFromNode(node) {
1295
1113
  }
1296
1114
  __name(writableChainArchivistFromNode, "writableChainArchivistFromNode");
1297
1115
  async function readonlyChainArchivistFromNode(node) {
1298
- return assertEx12(asArchivistInstance(await node.resolve("Chain:Validated"), {
1116
+ return assertEx5(asArchivistInstance(await node.resolve("Chain:Validated"), {
1299
1117
  required: true
1300
1118
  }));
1301
1119
  }
@@ -1312,27 +1130,43 @@ async function pendingBlocksArchivistFromNode(node) {
1312
1130
  });
1313
1131
  }
1314
1132
  __name(pendingBlocksArchivistFromNode, "pendingBlocksArchivistFromNode");
1133
+ async function rejectedBlocksArchivistFromNode(node) {
1134
+ return asArchivistInstance(await node.resolve("XYOChain:DeadLetterQueue:RejectedBlocks"), {
1135
+ required: true
1136
+ });
1137
+ }
1138
+ __name(rejectedBlocksArchivistFromNode, "rejectedBlocksArchivistFromNode");
1139
+ async function rejectedTransactionsArchivistFromNode(node) {
1140
+ return asArchivistInstance(await node.resolve("XYOChain:DeadLetterQueue:RejectedTransactions"), {
1141
+ required: true
1142
+ });
1143
+ }
1144
+ __name(rejectedTransactionsArchivistFromNode, "rejectedTransactionsArchivistFromNode");
1315
1145
  async function initServerNode(context, wallet, providedNode) {
1316
1146
  const node = providedNode ?? await loadNode(context, wallet);
1317
- assertEx12(await node.start(), () => "Failed to start node");
1147
+ assertEx5(await node.start(), () => "Failed to start node");
1318
1148
  const writableChainArchivist = await writableChainArchivistFromNode(node);
1319
1149
  const readonlyChainArchivist = await readonlyChainArchivistFromNode(node);
1320
1150
  const pendingTransactionsArchivist = await pendingTransactionsArchivistFromNode(node);
1321
1151
  const pendingBlocksArchivist = await pendingBlocksArchivistFromNode(node);
1152
+ const rejectedBlocksArchivist = await rejectedBlocksArchivistFromNode(node);
1153
+ const rejectedTransactionsArchivist = await rejectedTransactionsArchivistFromNode(node);
1322
1154
  return {
1323
1155
  node,
1324
1156
  writableChainArchivist,
1325
1157
  readonlyChainArchivist,
1326
1158
  pendingTransactionsArchivist,
1327
- pendingBlocksArchivist
1159
+ pendingBlocksArchivist,
1160
+ rejectedBlocksArchivist,
1161
+ rejectedTransactionsArchivist
1328
1162
  };
1329
1163
  }
1330
1164
  __name(initServerNode, "initServerNode");
1331
1165
 
1332
1166
  // src/node/init/initTransferSummaryMap.ts
1333
1167
  import { BaseMongoSdk as BaseMongoSdk2 } from "@xylabs/mongo";
1334
- import { assertEx as assertEx13 } from "@xylabs/sdk-js";
1335
- import { MongoMap as MongoMap2 } from "@xyo-network/chain-protocol";
1168
+ import { assertEx as assertEx6 } from "@xylabs/sdk-js";
1169
+ import { MongoMap as MongoMap2 } from "@xyo-network/chain-protocol-driver-mongodb";
1336
1170
  import { hasMongoConfig as hasMongoConfig3, MemoryMap as MemoryMap2 } from "@xyo-network/xl1-sdk";
1337
1171
  async function initTransferSummaryMap({ logger, config }) {
1338
1172
  const mongoConfig = config.storage?.mongo;
@@ -1356,7 +1190,7 @@ async function initTransferSummaryMap({ logger, config }) {
1356
1190
  maxEntries: 5e3
1357
1191
  }
1358
1192
  });
1359
- assertEx13(await result.start(), () => "Failed to start transfer summary map");
1193
+ assertEx6(await result.start(), () => "Failed to start transfer summary map");
1360
1194
  return result;
1361
1195
  } else {
1362
1196
  logger?.warn("[API] Mongo configuration not found. Using MemoryMap for TransferSummaryMap.");
@@ -1378,10 +1212,10 @@ var validateHydratedBlockStateWithCumulativeBalance = /* @__PURE__ */ __name(asy
1378
1212
  ];
1379
1213
  }, "validateHydratedBlockStateWithCumulativeBalance");
1380
1214
  async function localLocatorFromConfig(context, validateDepsOnRegister = false) {
1381
- const balancesSummaryMap = assertEx14(await initBalanceSummaryMap(context), () => "Balance Summary Map not initialized");
1382
- const transfersSummaryMap = assertEx14(await initTransferSummaryMap(context), () => "Transfer Summary Map not initialized");
1215
+ const balancesSummaryMap = assertEx7(await initBalanceSummaryMap(context), () => "Balance Summary Map not initialized");
1216
+ const transfersSummaryMap = assertEx7(await initTransferSummaryMap(context), () => "Transfer Summary Map not initialized");
1383
1217
  const wallet = await initActorWallet(context);
1384
- const { writableChainArchivist, readonlyChainArchivist, pendingTransactionsArchivist, pendingBlocksArchivist } = await initServerNode(context, wallet);
1218
+ const { writableChainArchivist, readonlyChainArchivist, pendingTransactionsArchivist, pendingBlocksArchivist, rejectedBlocksArchivist, rejectedTransactionsArchivist } = await initServerNode(context, wallet);
1385
1219
  await initFinalizationArchivistIfNeeded(writableChainArchivist, context.config, wallet);
1386
1220
  const locator = new ProviderFactoryLocator(context, {}, validateDepsOnRegister);
1387
1221
  locator.registerMany([
@@ -1419,6 +1253,17 @@ async function localLocatorFromConfig(context, validateDepsOnRegister = false) {
1419
1253
  SimpleBlockValidationViewer.factory(SimpleBlockValidationViewer.dependencies, {
1420
1254
  state: validateHydratedBlockStateWithCumulativeBalance,
1421
1255
  protocol: validateHydratedBlock
1256
+ }),
1257
+ SimpleTransactionValidationViewer.factory(SimpleTransactionValidationViewer.dependencies, {
1258
+ protocol: validateTransaction
1259
+ }),
1260
+ SimpleDeadLetterQueueRunner.factory(SimpleDeadLetterQueueRunner.dependencies, {
1261
+ rejectedBlocksArchivist,
1262
+ rejectedTransactionsArchivist
1263
+ }),
1264
+ SimpleDeadLetterQueueViewer.factory(SimpleDeadLetterQueueViewer.dependencies, {
1265
+ rejectedBlocksArchivist,
1266
+ rejectedTransactionsArchivist
1422
1267
  })
1423
1268
  ]);
1424
1269
  return locator;
@@ -1427,7 +1272,6 @@ __name(localLocatorFromConfig, "localLocatorFromConfig");
1427
1272
 
1428
1273
  // src/node/config/locators/locatorsFromConfig.ts
1429
1274
  import { deepMerge as deepMerge2 } from "@xylabs/sdk-js";
1430
- import { ActorConfigZod as ActorConfigZod2 } from "@xyo-network/xl1-sdk";
1431
1275
 
1432
1276
  // src/node/config/locators/actors/apiLocatorFromConfig.ts
1433
1277
  import { ProviderFactoryLocator as ProviderFactoryLocator2, SimpleXyoConnectionRunner, SimpleXyoGateway, SimpleXyoRunner } from "@xyo-network/xl1-sdk";
@@ -1447,7 +1291,7 @@ function apiLocatorFromConfig(context, parent) {
1447
1291
  __name(apiLocatorFromConfig, "apiLocatorFromConfig");
1448
1292
 
1449
1293
  // src/node/config/locators/actors/bridgeLocatorFromConfig.ts
1450
- import { isDefined as isDefined7 } from "@xylabs/sdk-js";
1294
+ import { isDefined as isDefined4 } from "@xylabs/sdk-js";
1451
1295
  import { HDWallet as HDWallet4 } from "@xyo-network/sdk-js";
1452
1296
  import { ADDRESS_INDEX as ADDRESS_INDEX2, generateXyoBaseWalletFromPhrase as generateXyoBaseWalletFromPhrase2, JsonRpcAccountBalanceViewer as JsonRpcAccountBalanceViewer3, JsonRpcBlockViewer, JsonRpcFinalizationViewer, JsonRpcMempoolRunner, JsonRpcMempoolViewer, JsonRpcXyoRunner, JsonRpcXyoViewer, ProviderFactoryLocator as ProviderFactoryLocator3, RestDataLakeRunner, RestDataLakeViewer, SimpleStakeEventsViewer as SimpleStakeEventsViewer2, SimpleXyoConnectionRunner as SimpleXyoConnectionRunner2, SimpleXyoGatewayRunner, SimpleXyoRunner as SimpleXyoRunner2, SimpleXyoSigner as SimpleXyoSigner2 } from "@xyo-network/xl1-sdk";
1453
1297
  async function bridgeLocatorFromConfig(context, parent) {
@@ -1457,7 +1301,7 @@ async function bridgeLocatorFromConfig(context, parent) {
1457
1301
  });
1458
1302
  const { config } = context;
1459
1303
  const { dataLake, mnemonic } = config;
1460
- const walletPhrase = isDefined7(mnemonic) ? mnemonic : HDWallet4.generateMnemonic();
1304
+ const walletPhrase = isDefined4(mnemonic) ? mnemonic : HDWallet4.generateMnemonic();
1461
1305
  const wallet = await generateXyoBaseWalletFromPhrase2(walletPhrase);
1462
1306
  const signerAccount = await wallet.derivePath(ADDRESS_INDEX2.XYO);
1463
1307
  if (config.remote.rpc) {
@@ -1471,7 +1315,7 @@ async function bridgeLocatorFromConfig(context, parent) {
1471
1315
  JsonRpcXyoViewer.factory(JsonRpcXyoViewer.dependencies, {})
1472
1316
  ]);
1473
1317
  }
1474
- if (isDefined7(dataLake)) {
1318
+ if (isDefined4(dataLake)) {
1475
1319
  const { driver } = dataLake;
1476
1320
  switch (driver) {
1477
1321
  case "rest": {
@@ -1649,7 +1493,7 @@ async function locatorsFromConfig(context, { actors, ...config }) {
1649
1493
  case "validator": {
1650
1494
  result[actorConfig.name] = await validatorLocatorFromConfig({
1651
1495
  ...context,
1652
- config: ActorConfigZod2.parse(deepMerge2(config, actorConfig))
1496
+ config: ValidatorConfigZod.parse(deepMerge2(config, actorConfig))
1653
1497
  }, result._root);
1654
1498
  break;
1655
1499
  }
@@ -1674,7 +1518,7 @@ async function locatorsFromConfig(context, { actors, ...config }) {
1674
1518
  __name(locatorsFromConfig, "locatorsFromConfig");
1675
1519
 
1676
1520
  // src/node/config/tryParseConfig.ts
1677
- import { isDefined as isDefined8, isNull } from "@xylabs/sdk-js";
1521
+ import { isDefined as isDefined5, isNull } from "@xylabs/sdk-js";
1678
1522
  import { ConfigZod } from "@xyo-network/xl1-sdk";
1679
1523
  import { cosmiconfig } from "cosmiconfig";
1680
1524
  var configName = "xyo";
@@ -1686,10 +1530,10 @@ async function tryParseConfig(options) {
1686
1530
  // loaders: { '.ts': TypeScriptLoader() },
1687
1531
  searchPlaces
1688
1532
  });
1689
- const result = isDefined8(configPath) ? (await explorer.load(configPath))?.config : (await explorer.search())?.config;
1690
- if (isDefined8(result) && !isNull(result)) {
1533
+ const result = isDefined5(configPath) ? (await explorer.load(configPath))?.config : (await explorer.search())?.config;
1534
+ if (isDefined5(result) && !isNull(result)) {
1691
1535
  const section = result[configSection];
1692
- if (isDefined8(section) && typeof section === "object") {
1536
+ if (isDefined5(section) && typeof section === "object") {
1693
1537
  return ConfigZod.loose().parse(section);
1694
1538
  }
1695
1539
  }
@@ -1697,82 +1541,10 @@ async function tryParseConfig(options) {
1697
1541
  }
1698
1542
  __name(tryParseConfig, "tryParseConfig");
1699
1543
 
1700
- // src/node/health/initHealthEndpoints.ts
1701
- import http from "http";
1702
- import { isDefined as isDefined9 } from "@xylabs/sdk-js";
1703
- var sendStatus = /* @__PURE__ */ __name((res, status, errorCode) => {
1704
- const statusCode = status === "started" ? 200 : errorCode;
1705
- res.writeHead(statusCode, {
1706
- "Content-Type": "application/json"
1707
- });
1708
- res.end(JSON.stringify({
1709
- status
1710
- }));
1711
- }, "sendStatus");
1712
- var notFound = /* @__PURE__ */ __name((res) => {
1713
- res.writeHead(404, {
1714
- "Content-Type": "application/json"
1715
- });
1716
- res.end(JSON.stringify({
1717
- status: "not found"
1718
- }));
1719
- }, "notFound");
1720
- var createHealthServer = /* @__PURE__ */ __name((context, port, statusMonitor) => {
1721
- const { logger } = context;
1722
- const server = http.createServer((req, res) => {
1723
- const url = req.url ?? "";
1724
- const status = statusMonitor.getGlobalStatus();
1725
- switch (url) {
1726
- case "/healthz": {
1727
- sendStatus(res, status, 500);
1728
- break;
1729
- }
1730
- case "/livez": {
1731
- sendStatus(res, status, 503);
1732
- break;
1733
- }
1734
- case "/readyz": {
1735
- sendStatus(res, status, 503);
1736
- break;
1737
- }
1738
- default: {
1739
- notFound(res);
1740
- }
1741
- }
1742
- });
1743
- server.listen(port, () => {
1744
- logger?.log(`Health server running on http://localhost:${port}`);
1745
- logger?.log(" - /healthz");
1746
- logger?.log(" - /livez");
1747
- logger?.log(" - /readyz");
1748
- });
1749
- return server;
1750
- }, "createHealthServer");
1751
- function initHealthEndpoints(context, statusMonitor) {
1752
- const { config } = context;
1753
- const { healthCheckPort } = config;
1754
- return isDefined9(healthCheckPort) ? createHealthServer(context, healthCheckPort, statusMonitor) : void 0;
1755
- }
1756
- __name(initHealthEndpoints, "initHealthEndpoints");
1757
-
1758
- // src/node/sharedMiddleware.ts
1759
- import { customPoweredByHeader, disableCaseSensitiveRouting, disableExpressDefaultPoweredByHeader, getJsonBodyParser, getJsonBodyParserOptions, responseProfiler, standardResponses } from "@xylabs/express";
1760
- import compression from "compression";
1761
- import cors from "cors";
1762
- function sharedMiddleware(app) {
1763
- app.set("etag", false);
1764
- app.use(cors());
1765
- app.use(compression());
1766
- app.use(responseProfiler);
1767
- app.use(getJsonBodyParser(getJsonBodyParserOptions({
1768
- limit: "1mb"
1769
- })));
1770
- app.use(standardResponses);
1771
- disableExpressDefaultPoweredByHeader(app);
1772
- app.use(customPoweredByHeader);
1773
- disableCaseSensitiveRouting(app);
1774
- }
1775
- __name(sharedMiddleware, "sharedMiddleware");
1544
+ // src/node/index.ts
1545
+ export * from "@xyo-network/chain-orchestration-evm";
1546
+ export * from "@xyo-network/chain-orchestration-express";
1547
+ export * from "@xyo-network/chain-orchestration-storage";
1776
1548
  export {
1777
1549
  ApiConfigContext,
1778
1550
  ApiConfigZod,
@@ -1780,6 +1552,7 @@ export {
1780
1552
  BridgeConfigContext,
1781
1553
  BridgeConfigZod,
1782
1554
  BridgeSettingsZod,
1555
+ DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL,
1783
1556
  DefaultServiceProvider,
1784
1557
  GenericHost,
1785
1558
  MempoolConfigContext,
@@ -1811,15 +1584,8 @@ export {
1811
1584
  basicRemoteRunnerLocator,
1812
1585
  basicRemoteViewerLocator,
1813
1586
  buildTelemetryConfig,
1814
- canUseChainId,
1815
- canUseEvmProvider,
1816
- canUseInfuraProvider,
1817
- canUseJsonRpcProvider,
1818
1587
  contextFromConfigWithoutLocator,
1819
1588
  createProducerChainStakeIntentBlock,
1820
- getChainId,
1821
- getInfuraProviderConfig,
1822
- getJsonRpcProviderConfig,
1823
1589
  getLocator,
1824
1590
  initActorAccount,
1825
1591
  initActorSeedPhrase,
@@ -1827,18 +1593,10 @@ export {
1827
1593
  initBalanceSummaryMap,
1828
1594
  initBridgedArchivistModule,
1829
1595
  initBridgedModule,
1830
- initChainFinalizedArchivist,
1831
- initEvmProvider,
1832
1596
  initEvmProvidersIfAvailable,
1833
1597
  initFinalizationArchivistIfNeeded,
1834
1598
  initFinalizedArchivist,
1835
- initHealthEndpoints,
1836
- initInfuraProvider,
1837
- initJsonRpcProvider,
1838
- initPendingBlocksArchivist,
1839
- initRejectedTransactionsArchivist,
1840
1599
  initServerNode,
1841
- initStakeIntentStateArchivist,
1842
1600
  initStatusReporter,
1843
1601
  initTransferSummaryMap,
1844
1602
  isApiConfig,
@@ -1858,7 +1616,6 @@ export {
1858
1616
  locatorsFromConfig,
1859
1617
  mergeConfig,
1860
1618
  rootLocatorFromConfig,
1861
- sharedMiddleware,
1862
1619
  telemetryContextFromConfig,
1863
1620
  toApiConfig,
1864
1621
  toApiConfigContext,