@xyo-network/chain-orchestration 1.20.21 → 1.20.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/browser/index.mjs +304 -237
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/browser/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
  4. package/dist/{neutral/node/config/locators/actors/validatorLocatorFromConfig.d.ts.map → browser/node/config/locators/actors/finalizerLocatorFromConfig.d.ts.map} +1 -1
  5. package/dist/browser/node/config/locators/actors/index.d.ts +1 -1
  6. package/dist/browser/node/config/locators/actors/index.d.ts.map +1 -1
  7. package/dist/browser/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
  8. package/dist/browser/node/config/locators/localLocatorFromConfig.d.ts +1 -1
  9. package/dist/browser/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  10. package/dist/browser/node/config/locators/locatorsFromConfig.d.ts +1 -1
  11. package/dist/browser/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  12. package/dist/browser/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
  13. package/dist/browser/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  14. package/dist/browser/node/config/tryParseConfig.d.ts +6 -157
  15. package/dist/browser/node/config/tryParseConfig.d.ts.map +1 -1
  16. package/dist/browser/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
  17. package/dist/browser/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
  18. package/dist/{neutral/shared/actor/ValidatorActor.d.ts → browser/shared/actor/FinalizerActor.d.ts} +6 -9
  19. package/dist/browser/shared/actor/FinalizerActor.d.ts.map +1 -0
  20. package/dist/browser/shared/actor/index.d.ts +1 -1
  21. package/dist/browser/shared/config/actors/Api.d.ts +11 -17
  22. package/dist/browser/shared/config/actors/Api.d.ts.map +1 -1
  23. package/dist/browser/shared/config/actors/Bridge.d.ts +11 -17
  24. package/dist/browser/shared/config/actors/Bridge.d.ts.map +1 -1
  25. package/dist/browser/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +23 -29
  26. package/dist/browser/shared/config/actors/Finalizer.d.ts.map +1 -0
  27. package/dist/browser/shared/config/actors/Mempool.d.ts +11 -17
  28. package/dist/browser/shared/config/actors/Mempool.d.ts.map +1 -1
  29. package/dist/browser/shared/config/actors/Producer.d.ts +11 -17
  30. package/dist/browser/shared/config/actors/Producer.d.ts.map +1 -1
  31. package/dist/browser/shared/config/actors/RewardRedemption.d.ts +11 -17
  32. package/dist/browser/shared/config/actors/RewardRedemption.d.ts.map +1 -1
  33. package/dist/browser/shared/config/actors/index.d.ts +1 -1
  34. package/dist/browser/shared/config/actors/index.d.ts.map +1 -1
  35. package/dist/browser/shared/config/mergeConfig.d.ts +1 -1
  36. package/dist/browser/shared/index.d.ts +1 -0
  37. package/dist/browser/shared/index.d.ts.map +1 -1
  38. package/dist/browser/shared/init/initActorSeedPhrase.d.ts.map +1 -1
  39. package/dist/browser/shared/init/initWallet.d.ts +1 -1
  40. package/dist/browser/shared/init/initWallet.d.ts.map +1 -1
  41. package/dist/browser/shared/init/walletResolution.d.ts +41 -10
  42. package/dist/browser/shared/init/walletResolution.d.ts.map +1 -1
  43. package/dist/browser/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
  44. package/dist/browser/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
  45. package/dist/browser/shared/provider/index.d.ts +2 -0
  46. package/dist/browser/shared/provider/index.d.ts.map +1 -0
  47. package/dist/neutral/index.mjs +304 -237
  48. package/dist/neutral/index.mjs.map +1 -1
  49. package/dist/neutral/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
  50. package/dist/{browser/node/config/locators/actors/validatorLocatorFromConfig.d.ts.map → neutral/node/config/locators/actors/finalizerLocatorFromConfig.d.ts.map} +1 -1
  51. package/dist/neutral/node/config/locators/actors/index.d.ts +1 -1
  52. package/dist/neutral/node/config/locators/actors/index.d.ts.map +1 -1
  53. package/dist/neutral/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
  54. package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts +1 -1
  55. package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  56. package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts +1 -1
  57. package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  58. package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
  59. package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  60. package/dist/neutral/node/config/tryParseConfig.d.ts +6 -157
  61. package/dist/neutral/node/config/tryParseConfig.d.ts.map +1 -1
  62. package/dist/neutral/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
  63. package/dist/neutral/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
  64. package/dist/{node/shared/actor/ValidatorActor.d.ts → neutral/shared/actor/FinalizerActor.d.ts} +6 -9
  65. package/dist/neutral/shared/actor/FinalizerActor.d.ts.map +1 -0
  66. package/dist/neutral/shared/actor/index.d.ts +1 -1
  67. package/dist/neutral/shared/config/actors/Api.d.ts +11 -17
  68. package/dist/neutral/shared/config/actors/Api.d.ts.map +1 -1
  69. package/dist/neutral/shared/config/actors/Bridge.d.ts +11 -17
  70. package/dist/neutral/shared/config/actors/Bridge.d.ts.map +1 -1
  71. package/dist/neutral/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +23 -29
  72. package/dist/neutral/shared/config/actors/Finalizer.d.ts.map +1 -0
  73. package/dist/neutral/shared/config/actors/Mempool.d.ts +11 -17
  74. package/dist/neutral/shared/config/actors/Mempool.d.ts.map +1 -1
  75. package/dist/neutral/shared/config/actors/Producer.d.ts +11 -17
  76. package/dist/neutral/shared/config/actors/Producer.d.ts.map +1 -1
  77. package/dist/neutral/shared/config/actors/RewardRedemption.d.ts +11 -17
  78. package/dist/neutral/shared/config/actors/RewardRedemption.d.ts.map +1 -1
  79. package/dist/neutral/shared/config/actors/index.d.ts +1 -1
  80. package/dist/neutral/shared/config/actors/index.d.ts.map +1 -1
  81. package/dist/neutral/shared/config/mergeConfig.d.ts +1 -1
  82. package/dist/neutral/shared/index.d.ts +1 -0
  83. package/dist/neutral/shared/index.d.ts.map +1 -1
  84. package/dist/neutral/shared/init/initActorSeedPhrase.d.ts.map +1 -1
  85. package/dist/neutral/shared/init/initWallet.d.ts +1 -1
  86. package/dist/neutral/shared/init/initWallet.d.ts.map +1 -1
  87. package/dist/neutral/shared/init/walletResolution.d.ts +41 -10
  88. package/dist/neutral/shared/init/walletResolution.d.ts.map +1 -1
  89. package/dist/neutral/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
  90. package/dist/neutral/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
  91. package/dist/neutral/shared/provider/index.d.ts +2 -0
  92. package/dist/neutral/shared/provider/index.d.ts.map +1 -0
  93. package/dist/node/index.mjs +400 -286
  94. package/dist/node/index.mjs.map +1 -1
  95. package/dist/node/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
  96. package/dist/node/node/config/locators/actors/{validatorLocatorFromConfig.d.ts.map → finalizerLocatorFromConfig.d.ts.map} +1 -1
  97. package/dist/node/node/config/locators/actors/index.d.ts +1 -1
  98. package/dist/node/node/config/locators/actors/index.d.ts.map +1 -1
  99. package/dist/node/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
  100. package/dist/node/node/config/locators/localLocatorFromConfig.d.ts +1 -1
  101. package/dist/node/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  102. package/dist/node/node/config/locators/locatorsFromConfig.d.ts +1 -1
  103. package/dist/node/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  104. package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
  105. package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  106. package/dist/node/node/config/tryParseConfig.d.ts +6 -157
  107. package/dist/node/node/config/tryParseConfig.d.ts.map +1 -1
  108. package/dist/node/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
  109. package/dist/node/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
  110. package/dist/{browser/shared/actor/ValidatorActor.d.ts → node/shared/actor/FinalizerActor.d.ts} +6 -9
  111. package/dist/node/shared/actor/FinalizerActor.d.ts.map +1 -0
  112. package/dist/node/shared/actor/index.d.ts +1 -1
  113. package/dist/node/shared/config/actors/Api.d.ts +11 -17
  114. package/dist/node/shared/config/actors/Api.d.ts.map +1 -1
  115. package/dist/node/shared/config/actors/Bridge.d.ts +11 -17
  116. package/dist/node/shared/config/actors/Bridge.d.ts.map +1 -1
  117. package/dist/node/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +23 -29
  118. package/dist/node/shared/config/actors/Finalizer.d.ts.map +1 -0
  119. package/dist/node/shared/config/actors/Mempool.d.ts +11 -17
  120. package/dist/node/shared/config/actors/Mempool.d.ts.map +1 -1
  121. package/dist/node/shared/config/actors/Producer.d.ts +11 -17
  122. package/dist/node/shared/config/actors/Producer.d.ts.map +1 -1
  123. package/dist/node/shared/config/actors/RewardRedemption.d.ts +11 -17
  124. package/dist/node/shared/config/actors/RewardRedemption.d.ts.map +1 -1
  125. package/dist/node/shared/config/actors/index.d.ts +1 -1
  126. package/dist/node/shared/config/actors/index.d.ts.map +1 -1
  127. package/dist/node/shared/config/mergeConfig.d.ts +1 -1
  128. package/dist/node/shared/index.d.ts +1 -0
  129. package/dist/node/shared/index.d.ts.map +1 -1
  130. package/dist/node/shared/init/initActorSeedPhrase.d.ts.map +1 -1
  131. package/dist/node/shared/init/initWallet.d.ts +1 -1
  132. package/dist/node/shared/init/initWallet.d.ts.map +1 -1
  133. package/dist/node/shared/init/walletResolution.d.ts +41 -10
  134. package/dist/node/shared/init/walletResolution.d.ts.map +1 -1
  135. package/dist/node/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
  136. package/dist/node/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
  137. package/dist/node/shared/provider/index.d.ts +2 -0
  138. package/dist/node/shared/provider/index.d.ts.map +1 -0
  139. package/package.json +21 -21
  140. package/dist/browser/shared/actor/ValidatorActor.d.ts.map +0 -1
  141. package/dist/browser/shared/config/actors/Validator.d.ts.map +0 -1
  142. package/dist/browser/shared/config/actors/accountIndex.d.ts +0 -3
  143. package/dist/browser/shared/config/actors/accountIndex.d.ts.map +0 -1
  144. package/dist/neutral/shared/actor/ValidatorActor.d.ts.map +0 -1
  145. package/dist/neutral/shared/config/actors/Validator.d.ts.map +0 -1
  146. package/dist/neutral/shared/config/actors/accountIndex.d.ts +0 -3
  147. package/dist/neutral/shared/config/actors/accountIndex.d.ts.map +0 -1
  148. package/dist/node/shared/actor/ValidatorActor.d.ts.map +0 -1
  149. package/dist/node/shared/config/actors/Validator.d.ts.map +0 -1
  150. package/dist/node/shared/config/actors/accountIndex.d.ts +0 -3
  151. package/dist/node/shared/config/actors/accountIndex.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
- // src/shared/actor/ValidatorActor.ts
4
+ // src/shared/actor/FinalizerActor.ts
5
5
  import { creatable } from "@xylabs/sdk-js";
6
6
  import { processPendingBlocks } from "@xyo-network/chain-sdk";
7
7
  import { ActorV3, BlockValidationViewerMoniker, BlockViewerMoniker, DeadLetterQueueRunnerMoniker, FinalizationRunnerMoniker, MempoolViewerMoniker } from "@xyo-network/xl1-sdk";
@@ -12,16 +12,14 @@ function _ts_decorate(decorators, target, key, desc) {
12
12
  return c > 3 && r && Object.defineProperty(target, key, r), r;
13
13
  }
14
14
  __name(_ts_decorate, "_ts_decorate");
15
- var ValidatorActor = class extends ActorV3 {
15
+ var FinalizerActor = class extends ActorV3 {
16
16
  static {
17
- __name(this, "ValidatorActor");
17
+ __name(this, "FinalizerActor");
18
18
  }
19
19
  _blockValidationViewer;
20
20
  _blockViewer;
21
21
  _deadLetterQueueRunner;
22
22
  _finalizationRunner;
23
- _lastValidatedBlock;
24
- _lastValidatedBlockHash;
25
23
  _mempoolViewer;
26
24
  get allowedProducers() {
27
25
  return this.params.config.allowedProducers ?? [];
@@ -51,9 +49,9 @@ var ValidatorActor = class extends ActorV3 {
51
49
  }
52
50
  async startHandler() {
53
51
  await super.startHandler();
54
- this.registerTimer("ValidatorActor", async () => {
52
+ this.registerTimer("FinalizerActor", async () => {
55
53
  await this.spanAsync("processPendingBlocks", async () => {
56
- this.logger?.debug("ValidatorActor: Processing pending blocks...");
54
+ this.logger?.debug("FinalizerActor: Processing pending blocks...");
57
55
  await processPendingBlocks({
58
56
  blockValidationViewer: this.blockValidationViewer,
59
57
  context: this.context,
@@ -72,9 +70,9 @@ var ValidatorActor = class extends ActorV3 {
72
70
  }, 2e3, 500);
73
71
  }
74
72
  };
75
- ValidatorActor = _ts_decorate([
73
+ FinalizerActor = _ts_decorate([
76
74
  creatable()
77
- ], ValidatorActor);
75
+ ], FinalizerActor);
78
76
 
79
77
  // src/shared/buildTelemetryConfig.ts
80
78
  function buildTelemetryConfig(config, serviceName, serviceVersion, defaultMetricsScrapePort = 9464) {
@@ -98,24 +96,13 @@ __name(buildTelemetryConfig, "buildTelemetryConfig");
98
96
  // src/shared/config/actors/Api.ts
99
97
  import { zodAsFactory, zodIsFactory, zodToFactory } from "@xylabs/sdk-js";
100
98
  import { BaseConfigContextZod, HostActorConfigZod } from "@xyo-network/xl1-sdk";
101
- import { globalRegistry as globalRegistry2, z as z2 } from "zod";
102
-
103
- // src/shared/config/actors/accountIndex.ts
104
99
  import { globalRegistry, z } from "zod";
105
- var ActorAccountIndexZod = /* @__PURE__ */ __name((title) => z.coerce.number().int().min(0).optional().register(globalRegistry, {
106
- description: "Account index derived from the actor wallet phrase. Defaults to 0 for actor mnemonics and to the actor-specific shared index for the root mnemonic.",
107
- title,
108
- type: "number"
109
- }), "ActorAccountIndexZod");
110
-
111
- // src/shared/config/actors/Api.ts
112
- var ApiConfigZod = HostActorConfigZod.extend(z2.object({
113
- accountIndex: ActorAccountIndexZod("api.accountIndex"),
114
- initRewardsCache: z2.union([
115
- z2.number(),
116
- z2.string(),
117
- z2.boolean()
118
- ]).transform((v) => v !== "0" && v !== "false" && v !== false && v != 0).default(true).register(globalRegistry2, {
100
+ var ApiConfigZod = HostActorConfigZod.extend(z.object({
101
+ initRewardsCache: z.union([
102
+ z.number(),
103
+ z.string(),
104
+ z.boolean()
105
+ ]).transform((v) => v !== "0" && v !== "false" && v !== false && v != 0).default(true).register(globalRegistry, {
119
106
  description: "Whether to initialize the rewards cache on startup",
120
107
  title: "api.initRewardsCache",
121
108
  type: "boolean"
@@ -134,7 +121,7 @@ var toApiConfigContext = zodToFactory(ApiConfigContext, "toApiConfigContext");
134
121
  // src/shared/config/actors/Bridge.ts
135
122
  import { AddressZod, HexZod, toAddress, toHex, zodAsFactory as zodAsFactory2, zodIsFactory as zodIsFactory2, zodToFactory as zodToFactory2 } from "@xylabs/sdk-js";
136
123
  import { AttoXL1ConvertFactor, BaseConfigContextZod as BaseConfigContextZod2, HostActorConfigZod as HostActorConfigZod2, XL1 } from "@xyo-network/xl1-sdk";
137
- import { globalRegistry as globalRegistry3, z as z3 } from "zod";
124
+ import { globalRegistry as globalRegistry2, z as z2 } from "zod";
138
125
  var DEFAULT_FIXED_FEE = toHex(XL1(1000n) * AttoXL1ConvertFactor.xl1);
139
126
  var DEFAULT_VARIABLE_FEE_BASIS_POINTS = 300;
140
127
  var DEFAULT_HARDHAT_BRIDGE_CONTRACT = toAddress("2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6");
@@ -143,84 +130,83 @@ var DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY = toHex("0xac0974bec39a17e36
143
130
  var DEFAULT_HARDHAT_TOKEN_CONTRACT = toAddress("5FbDB2315678afecb367f032d93F642f64180aa3");
144
131
  var DEFAULT_MAX_BRIDGE_AMOUNT = toHex(XL1(1000000n) * AttoXL1ConvertFactor.xl1);
145
132
  var DEFAULT_MIN_BRIDGE_AMOUNT = toHex(XL1(1500n) * AttoXL1ConvertFactor.xl1);
146
- var BasisPointsZod = z3.coerce.number().int().nonnegative().max(1e4);
133
+ var BasisPointsZod = z2.coerce.number().int().nonnegative().max(1e4);
147
134
  var BridgeConfigZod = HostActorConfigZod2.extend({
148
- accountIndex: ActorAccountIndexZod("bridge.accountIndex"),
149
- escrowAddress: AddressZod.optional().register(globalRegistry3, {
135
+ escrowAddress: AddressZod.optional().register(globalRegistry2, {
150
136
  description: "Address to which bridge escrow will be sent",
151
137
  title: "bridge.escrowAddress",
152
138
  type: "string"
153
139
  }),
154
- feesAddress: AddressZod.optional().register(globalRegistry3, {
140
+ feesAddress: AddressZod.optional().register(globalRegistry2, {
155
141
  description: "Address to which bridge fees will be sent",
156
142
  title: "bridge.feesAddress",
157
143
  type: "string"
158
144
  }),
159
- feeFixed: HexZod.default(DEFAULT_FIXED_FEE).register(globalRegistry3, {
145
+ feeFixed: HexZod.default(DEFAULT_FIXED_FEE).register(globalRegistry2, {
160
146
  default: DEFAULT_FIXED_FEE,
161
147
  description: "Fixed fee (in AttoXL1) applied to bridge transfers",
162
148
  title: "bridge.feeFixed",
163
149
  type: "bigint"
164
150
  }),
165
- feeRateBasisPoints: BasisPointsZod.default(DEFAULT_VARIABLE_FEE_BASIS_POINTS).register(globalRegistry3, {
151
+ feeRateBasisPoints: BasisPointsZod.default(DEFAULT_VARIABLE_FEE_BASIS_POINTS).register(globalRegistry2, {
166
152
  default: DEFAULT_VARIABLE_FEE_BASIS_POINTS,
167
153
  description: "Variable rate fee (in basis points where 1 bps = 0.01%) applied to bridge transfers",
168
154
  title: "bridge.feeRateBasisPoints",
169
155
  type: "number"
170
156
  }),
171
- maxBridgeAmount: HexZod.default(DEFAULT_MAX_BRIDGE_AMOUNT).register(globalRegistry3, {
157
+ maxBridgeAmount: HexZod.default(DEFAULT_MAX_BRIDGE_AMOUNT).register(globalRegistry2, {
172
158
  default: DEFAULT_MAX_BRIDGE_AMOUNT,
173
159
  description: "Maximum amount allowed for a bridge transfer",
174
160
  title: "bridge.maxBridgeAmount",
175
161
  type: "string"
176
162
  }),
177
- minBridgeAmount: HexZod.default(DEFAULT_MIN_BRIDGE_AMOUNT).register(globalRegistry3, {
163
+ minBridgeAmount: HexZod.default(DEFAULT_MIN_BRIDGE_AMOUNT).register(globalRegistry2, {
178
164
  default: DEFAULT_MIN_BRIDGE_AMOUNT,
179
165
  description: "Minimum amount required for a bridge transfer",
180
166
  title: "bridge.minBridgeAmount",
181
167
  type: "string"
182
168
  }),
183
- redisHost: z3.string().default("localhost").register(globalRegistry3, {
169
+ redisHost: z2.string().default("localhost").register(globalRegistry2, {
184
170
  default: "localhost",
185
171
  description: "Host for the Bridge Redis instance",
186
172
  title: "bridge.redisHost",
187
173
  type: "string"
188
174
  }),
189
- redisPort: z3.coerce.number().int().positive().default(6379).register(globalRegistry3, {
175
+ redisPort: z2.coerce.number().int().positive().default(6379).register(globalRegistry2, {
190
176
  default: 6379,
191
177
  description: "Port for the Bridge Redis instance",
192
178
  title: "bridge.redisPort",
193
179
  type: "number"
194
180
  }),
195
- remoteBridgeContractAddress: AddressZod.default(DEFAULT_HARDHAT_BRIDGE_CONTRACT).register(globalRegistry3, {
181
+ remoteBridgeContractAddress: AddressZod.default(DEFAULT_HARDHAT_BRIDGE_CONTRACT).register(globalRegistry2, {
196
182
  default: DEFAULT_HARDHAT_BRIDGE_CONTRACT,
197
183
  description: "Hex representation of remote token address used for bridging",
198
184
  title: "bridge.remoteBridgeContractAddress",
199
185
  type: "string"
200
186
  }),
201
- remoteChainId: HexZod.default(DEFAULT_HARDHAT_CHAIN_ID).register(globalRegistry3, {
187
+ remoteChainId: HexZod.default(DEFAULT_HARDHAT_CHAIN_ID).register(globalRegistry2, {
202
188
  default: DEFAULT_HARDHAT_CHAIN_ID,
203
189
  description: "Remote chain ID",
204
190
  title: "bridge.remoteChainId",
205
191
  type: "string"
206
192
  }),
207
- remoteTokenAddress: HexZod.default(DEFAULT_HARDHAT_TOKEN_CONTRACT).register(globalRegistry3, {
193
+ remoteTokenAddress: HexZod.default(DEFAULT_HARDHAT_TOKEN_CONTRACT).register(globalRegistry2, {
208
194
  default: DEFAULT_HARDHAT_TOKEN_CONTRACT,
209
195
  description: "Hex representation of remote token address used for bridging",
210
196
  title: "bridge.remoteTokenAddress",
211
197
  type: "string"
212
198
  }),
213
- remoteChainWalletPrivateKey: HexZod.default(DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY).register(globalRegistry3, {
199
+ remoteChainWalletPrivateKey: HexZod.default(DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY).register(globalRegistry2, {
214
200
  description: "Private key for the wallet to use for the remote chain wallet",
215
201
  title: "bridge.remoteChainWalletPrivateKey",
216
202
  type: "string"
217
203
  }),
218
- xl1ChainId: HexZod.optional().register(globalRegistry3, {
204
+ xl1ChainId: HexZod.optional().register(globalRegistry2, {
219
205
  description: "XL1 chain id used for bridging",
220
206
  title: "bridge.xl1ChainId",
221
207
  type: "string"
222
208
  }),
223
- xl1TokenAddress: HexZod.optional().register(globalRegistry3, {
209
+ xl1TokenAddress: HexZod.optional().register(globalRegistry2, {
224
210
  description: "XL1 token address used for bridging",
225
211
  title: "bridge.xl1TokenAddress",
226
212
  type: "string"
@@ -248,14 +234,31 @@ var isBridgeConfigContext = zodIsFactory2(BridgeConfigContext);
248
234
  var asBridgeConfigContext = zodAsFactory2(BridgeConfigContext, "asBridgeConfigContext");
249
235
  var toBridgeConfigContext = zodToFactory2(BridgeConfigContext, "toBridgeConfigContext");
250
236
 
237
+ // src/shared/config/actors/Finalizer.ts
238
+ import { AddressZod as AddressZod2, zodAsFactory as zodAsFactory3, zodIsFactory as zodIsFactory3, zodToFactory as zodToFactory3 } from "@xylabs/sdk-js";
239
+ import { BaseConfigContextZod as BaseConfigContextZod3, DEFAULT_MIN_CANDIDATES, HostActorConfigZod as HostActorConfigZod3 } from "@xyo-network/xl1-sdk";
240
+ import { z as z3 } from "zod";
241
+ var FinalizerConfigZod = HostActorConfigZod3.extend({
242
+ allowedProducers: z3.array(AddressZod2).optional(),
243
+ minCandidates: z3.number().int().min(0).default(DEFAULT_MIN_CANDIDATES)
244
+ });
245
+ var isFinalizerConfig = zodIsFactory3(FinalizerConfigZod);
246
+ var asFinalizerConfig = zodAsFactory3(FinalizerConfigZod, "asFinalizerConfig");
247
+ var toFinalizerConfig = zodToFactory3(FinalizerConfigZod, "toFinalizerConfig");
248
+ var FinalizerConfigContext = BaseConfigContextZod3.extend({
249
+ config: FinalizerConfigZod
250
+ });
251
+ var isFinalizerConfigContext = zodIsFactory3(FinalizerConfigContext);
252
+ var asFinalizerConfigContext = zodAsFactory3(FinalizerConfigContext, "asFinalizerConfigContext");
253
+ var toFinalizerConfigContext = zodToFactory3(FinalizerConfigContext, "toFinalizerConfigContext");
254
+
251
255
  // src/shared/config/actors/Mempool.ts
252
- import { zodAsFactory as zodAsFactory3, zodIsFactory as zodIsFactory3, zodToFactory as zodToFactory3 } from "@xylabs/sdk-js";
253
- import { BaseConfigContextZod as BaseConfigContextZod3, HostActorConfigZod as HostActorConfigZod3 } from "@xyo-network/xl1-sdk";
254
- import { globalRegistry as globalRegistry4, z as z4 } from "zod";
256
+ import { zodAsFactory as zodAsFactory4, zodIsFactory as zodIsFactory4, zodToFactory as zodToFactory4 } from "@xylabs/sdk-js";
257
+ import { BaseConfigContextZod as BaseConfigContextZod4, HostActorConfigZod as HostActorConfigZod4 } from "@xyo-network/xl1-sdk";
258
+ import { globalRegistry as globalRegistry3, z as z4 } from "zod";
255
259
  var DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL = 1e3;
256
260
  var DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL = 1e3;
257
- var MempoolConfigZod = HostActorConfigZod3.extend({
258
- accountIndex: ActorAccountIndexZod("mempool.accountIndex"),
261
+ var MempoolConfigZod = HostActorConfigZod4.extend({
259
262
  enabled: z4.union([
260
263
  z4.string(),
261
264
  z4.boolean()
@@ -280,122 +283,100 @@ var MempoolConfigZod = HostActorConfigZod3.extend({
280
283
  message: `Invalid boolean value: "${val}". Use true/false, 1/0, yes/no.`
281
284
  });
282
285
  return z4.NEVER;
283
- }).register(globalRegistry4, {
286
+ }).register(globalRegistry3, {
284
287
  default: "false",
285
288
  description: "Enable the Mempool",
286
289
  title: "mempool.enabled",
287
290
  type: "boolean"
288
291
  }),
289
- blockPruneInterval: z4.coerce.number().default(DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL).register(globalRegistry4, {
292
+ blockPruneInterval: z4.coerce.number().default(DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL).register(globalRegistry3, {
290
293
  description: "The interval time (in milliseconds) between pending block prune attempts",
291
294
  title: "mempool.blockPruneInterval",
292
295
  type: "number"
293
296
  }),
294
- transactionPruneInterval: z4.coerce.number().default(DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL).register(globalRegistry4, {
297
+ transactionPruneInterval: z4.coerce.number().default(DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL).register(globalRegistry3, {
295
298
  description: "The interval time (in milliseconds) between pending transaction prune attempts",
296
299
  title: "mempool.transactionPruneInterval",
297
300
  type: "number"
298
301
  })
299
302
  });
300
- var isMempoolConfig = zodIsFactory3(MempoolConfigZod);
301
- var asMempoolConfig = zodAsFactory3(MempoolConfigZod, "asMempoolConfig");
302
- var toMempoolConfig = zodToFactory3(MempoolConfigZod, "toMempoolConfig");
303
- var MempoolConfigContext = BaseConfigContextZod3.extend({
303
+ var isMempoolConfig = zodIsFactory4(MempoolConfigZod);
304
+ var asMempoolConfig = zodAsFactory4(MempoolConfigZod, "asMempoolConfig");
305
+ var toMempoolConfig = zodToFactory4(MempoolConfigZod, "toMempoolConfig");
306
+ var MempoolConfigContext = BaseConfigContextZod4.extend({
304
307
  config: MempoolConfigZod
305
308
  });
306
- var isMempoolConfigContext = zodIsFactory3(MempoolConfigContext);
307
- var asMempoolConfigContext = zodAsFactory3(MempoolConfigContext, "asMempoolConfigContext");
308
- var toMempoolConfigContext = zodToFactory3(MempoolConfigContext, "toMempoolConfigContext");
309
+ var isMempoolConfigContext = zodIsFactory4(MempoolConfigContext);
310
+ var asMempoolConfigContext = zodAsFactory4(MempoolConfigContext, "asMempoolConfigContext");
311
+ var toMempoolConfigContext = zodToFactory4(MempoolConfigContext, "toMempoolConfigContext");
309
312
 
310
313
  // src/shared/config/actors/Producer.ts
311
- import { AddressZod as AddressZod2, asAddress, zodAsFactory as zodAsFactory4, zodIsFactory as zodIsFactory4, zodToFactory as zodToFactory4 } from "@xylabs/sdk-js";
312
- import { ActorConfigZod, BaseConfigContextZod as BaseConfigContextZod4 } from "@xyo-network/xl1-sdk";
313
- import { globalRegistry as globalRegistry5, z as z5 } from "zod";
314
+ import { AddressZod as AddressZod3, asAddress, zodAsFactory as zodAsFactory5, zodIsFactory as zodIsFactory5, zodToFactory as zodToFactory5 } from "@xylabs/sdk-js";
315
+ import { ActorConfigZod, BaseConfigContextZod as BaseConfigContextZod5 } from "@xyo-network/xl1-sdk";
316
+ import { globalRegistry as globalRegistry4, z as z5 } from "zod";
314
317
  var DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL = 1e4;
315
318
  var ProducerConfigZod = ActorConfigZod.extend(z5.object({
316
- accountIndex: ActorAccountIndexZod("producer.accountIndex"),
317
319
  allowlist: z5.preprocess((val) => {
318
320
  if (typeof val === "string") {
319
321
  return val.split(",").map((s) => asAddress(s.trim()));
320
322
  }
321
323
  return val;
322
- }, z5.array(AddressZod2).optional().register(globalRegistry5, {
324
+ }, z5.array(AddressZod3).optional().register(globalRegistry4, {
323
325
  description: "List of allowed producer addresses, if undefined anyone can participate",
324
326
  title: "allowlist",
325
327
  type: "array"
326
328
  })),
327
- blockProductionCheckInterval: z5.coerce.number().default(DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL).register(globalRegistry5, {
329
+ blockProductionCheckInterval: z5.coerce.number().default(DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL).register(globalRegistry4, {
328
330
  description: "The interval time (in milliseconds) between block production attempts",
329
331
  title: "producer.blockProductionCheckInterval",
330
332
  type: "number"
331
333
  }),
332
- disableIntentRedeclaration: z5.boolean().optional().register(globalRegistry5, {
334
+ disableIntentRedeclaration: z5.boolean().optional().register(globalRegistry4, {
333
335
  description: "Should the producer skip redeclaring their intent to continue producing blocks",
334
336
  title: "producer.disableIntentRedeclaration",
335
337
  type: "boolean"
336
338
  }),
337
- heartbeatInterval: z5.coerce.number().default(36e5).register(globalRegistry5, {
339
+ heartbeatInterval: z5.coerce.number().default(36e5).register(globalRegistry4, {
338
340
  description: "The number of milliseconds between heartbeats if no blocks are produced",
339
341
  title: "producer.heartbeatInterval",
340
342
  type: "number"
341
343
  }),
342
344
  // TODO: BigInt schema
343
- minStake: z5.coerce.number().default(1).register(globalRegistry5, {
345
+ minStake: z5.coerce.number().default(1).register(globalRegistry4, {
344
346
  description: "Minimum stake required to be a Producer",
345
347
  title: "producer.minStake",
346
348
  type: "number"
347
349
  }),
348
350
  // TODO: Address schema
349
- rewardAddress: z5.string().optional().register(globalRegistry5, {
351
+ rewardAddress: z5.string().optional().register(globalRegistry4, {
350
352
  description: "Address to receive block rewards",
351
353
  title: "producer.rewardAddress",
352
354
  type: "string"
353
355
  })
354
356
  }).shape);
355
- var isProducerConfig = zodIsFactory4(ProducerConfigZod);
356
- var asProducerConfig = zodAsFactory4(ProducerConfigZod, "asProducerConfig");
357
- var toProducerConfig = zodToFactory4(ProducerConfigZod, "toProducerConfig");
358
- var ProducerConfigContext = BaseConfigContextZod4.extend({
357
+ var isProducerConfig = zodIsFactory5(ProducerConfigZod);
358
+ var asProducerConfig = zodAsFactory5(ProducerConfigZod, "asProducerConfig");
359
+ var toProducerConfig = zodToFactory5(ProducerConfigZod, "toProducerConfig");
360
+ var ProducerConfigContext = BaseConfigContextZod5.extend({
359
361
  config: ProducerConfigZod
360
362
  });
361
- var isProducerConfigContext = zodIsFactory4(ProducerConfigContext);
362
- var asProducerConfigContext = zodAsFactory4(ProducerConfigContext, "asProducerConfigContext");
363
- var toProducerConfigContext = zodToFactory4(ProducerConfigContext, "toProducerConfigContext");
363
+ var isProducerConfigContext = zodIsFactory5(ProducerConfigContext);
364
+ var asProducerConfigContext = zodAsFactory5(ProducerConfigContext, "asProducerConfigContext");
365
+ var toProducerConfigContext = zodToFactory5(ProducerConfigContext, "toProducerConfigContext");
364
366
 
365
367
  // src/shared/config/actors/RewardRedemption.ts
366
- import { zodAsFactory as zodAsFactory5, zodIsFactory as zodIsFactory5, zodToFactory as zodToFactory5 } from "@xylabs/sdk-js";
367
- import { BaseConfigContextZod as BaseConfigContextZod5, HostActorConfigZod as HostActorConfigZod4 } from "@xyo-network/xl1-sdk";
368
- var RewardRedemptionConfigZod = HostActorConfigZod4.extend({
369
- accountIndex: ActorAccountIndexZod("rewardRedemption.accountIndex")
370
- });
371
- var isRewardRedemptionConfig = zodIsFactory5(RewardRedemptionConfigZod);
372
- var asRewardRedemptionConfig = zodAsFactory5(RewardRedemptionConfigZod, "asRewardRedemptionConfig");
373
- var toRewardRedemptionConfig = zodToFactory5(RewardRedemptionConfigZod, "toRewardRedemptionConfig");
374
- var RewardRedemptionConfigContext = BaseConfigContextZod5.extend({
375
- config: RewardRedemptionConfigZod
376
- });
377
- var isRewardRedemptionConfigContext = zodIsFactory5(RewardRedemptionConfigContext);
378
- var asRewardRedemptionConfigContext = zodAsFactory5(RewardRedemptionConfigContext, "asRewardRedemptionConfigContext");
379
- var toRewardRedemptionConfigContext = zodToFactory5(RewardRedemptionConfigContext, "toRewardRedemptionConfigContext");
380
-
381
- // src/shared/config/actors/Validator.ts
382
- import { AddressZod as AddressZod3, zodAsFactory as zodAsFactory6, zodIsFactory as zodIsFactory6, zodToFactory as zodToFactory6 } from "@xylabs/sdk-js";
368
+ import { zodAsFactory as zodAsFactory6, zodIsFactory as zodIsFactory6, zodToFactory as zodToFactory6 } from "@xylabs/sdk-js";
383
369
  import { BaseConfigContextZod as BaseConfigContextZod6, HostActorConfigZod as HostActorConfigZod5 } from "@xyo-network/xl1-sdk";
384
- import { z as z6 } from "zod";
385
- var ValidatorConfigZod = HostActorConfigZod5.extend({
386
- accountIndex: ActorAccountIndexZod("validator.accountIndex"),
387
- allowedProducers: z6.array(AddressZod3).optional(),
388
- minCandidates: z6.number().int().min(0).default(1)
389
- });
390
- var isValidatorConfig = zodIsFactory6(ValidatorConfigZod);
391
- var asValidatorConfig = zodAsFactory6(ValidatorConfigZod, "asValidatorConfig");
392
- var toValidatorConfig = zodToFactory6(ValidatorConfigZod, "toValidatorConfig");
393
- var ValidatorConfigContext = BaseConfigContextZod6.extend({
394
- config: ValidatorConfigZod
370
+ var RewardRedemptionConfigZod = HostActorConfigZod5.extend({});
371
+ var isRewardRedemptionConfig = zodIsFactory6(RewardRedemptionConfigZod);
372
+ var asRewardRedemptionConfig = zodAsFactory6(RewardRedemptionConfigZod, "asRewardRedemptionConfig");
373
+ var toRewardRedemptionConfig = zodToFactory6(RewardRedemptionConfigZod, "toRewardRedemptionConfig");
374
+ var RewardRedemptionConfigContext = BaseConfigContextZod6.extend({
375
+ config: RewardRedemptionConfigZod
395
376
  });
396
- var isValidatorConfigContext = zodIsFactory6(ValidatorConfigContext);
397
- var asValidatorConfigContext = zodAsFactory6(ValidatorConfigContext, "asValidatorConfigContext");
398
- var toValidatorConfigContext = zodToFactory6(ValidatorConfigContext, "toValidatorConfigContext");
377
+ var isRewardRedemptionConfigContext = zodIsFactory6(RewardRedemptionConfigContext);
378
+ var asRewardRedemptionConfigContext = zodAsFactory6(RewardRedemptionConfigContext, "asRewardRedemptionConfigContext");
379
+ var toRewardRedemptionConfigContext = zodToFactory6(RewardRedemptionConfigContext, "toRewardRedemptionConfigContext");
399
380
 
400
381
  // src/shared/config/mergeConfig.ts
401
382
  import { deepMerge } from "@xylabs/sdk-js";
@@ -465,30 +446,31 @@ var ServiceLifetime = {
465
446
  import { isDefined } from "@xylabs/sdk-js";
466
447
 
467
448
  // src/shared/init/walletResolution.ts
449
+ import { HDWallet } from "@xyo-network/sdk-js";
468
450
  import { DEFAULT_WALLET_PATH, generateXyoBaseWalletFromPhrase } from "@xyo-network/xl1-sdk";
451
+ import { HDNodeWallet, Mnemonic } from "ethers";
452
+ var DEFAULT_ACTOR_ACCOUNT_PATH = {
453
+ api: "3",
454
+ bridge: "1",
455
+ finalizer: "5",
456
+ mempool: "4",
457
+ producer: "0",
458
+ rewardRedemption: "2"
459
+ };
469
460
  var BUILT_IN_DEV_MNEMONIC = "crane ribbon cook cousin tobacco vital moral protect merit knock veteran hint knee ocean nurse";
470
461
  var INSECURE_GENESIS_REWARD_MNEMONIC = "test test test test test test test test test test test junk";
471
462
  var GENESIS_REWARD_AMOUNT = 20000000000000000000000n;
472
463
  var ATTO_XL1_PER_XL1 = 1000000000000000000n;
473
464
  var ROOT_WALLET_RUNTIME_ID = "_root";
474
465
  var SHARED_ACCOUNT_REPORT_COUNT = 10;
475
- var RESERVED_ACTOR_INDEX = {
476
- [ROOT_WALLET_RUNTIME_ID]: 0,
477
- api: 4,
478
- bridge: 2,
479
- mempool: 5,
480
- producer: 1,
481
- rewardRedemption: 3,
482
- validator: 6
483
- };
484
466
  var ACTOR_LABELS = {
485
467
  [ROOT_WALLET_RUNTIME_ID]: "root/local-node",
486
468
  api: "api",
487
469
  bridge: "bridge",
470
+ finalizer: "finalizer",
488
471
  mempool: "mempool",
489
472
  producer: "producer",
490
- rewardRedemption: "rewardRedemption",
491
- validator: "validator"
473
+ rewardRedemption: "rewardRedemption"
492
474
  };
493
475
  var activeWalletReport;
494
476
  function getAccountLabel(actorName) {
@@ -499,10 +481,30 @@ function clearResolvedWalletReport() {
499
481
  activeWalletReport = void 0;
500
482
  }
501
483
  __name(clearResolvedWalletReport, "clearResolvedWalletReport");
502
- function getReservedActorIndex(actorName) {
503
- return RESERVED_ACTOR_INDEX[actorName] ?? 0;
484
+ function resolveActorAccountPath(actorName, actorConfig) {
485
+ if (actorConfig?.accountPath !== void 0) return actorConfig.accountPath;
486
+ return DEFAULT_ACTOR_ACCOUNT_PATH[actorName] ?? "0";
487
+ }
488
+ __name(resolveActorAccountPath, "resolveActorAccountPath");
489
+ function isAbsoluteAccountPath(accountPath) {
490
+ return accountPath.startsWith("m/");
491
+ }
492
+ __name(isAbsoluteAccountPath, "isAbsoluteAccountPath");
493
+ function expandAccountPath(accountPath, basePath = DEFAULT_WALLET_PATH) {
494
+ return isAbsoluteAccountPath(accountPath) ? accountPath : `${basePath}/${accountPath}`;
495
+ }
496
+ __name(expandAccountPath, "expandAccountPath");
497
+ async function deriveWalletAtPath(mnemonic, accountPath) {
498
+ if (isAbsoluteAccountPath(accountPath)) {
499
+ const seed = Mnemonic.fromPhrase(mnemonic).computeSeed();
500
+ const rootNode = HDNodeWallet.fromSeed(seed);
501
+ const derivedNode = rootNode.derivePath(accountPath);
502
+ return await HDWallet.createFromNode(derivedNode);
503
+ }
504
+ const baseWallet = await generateXyoBaseWalletFromPhrase(mnemonic);
505
+ return await baseWallet.derivePath(accountPath);
504
506
  }
505
- __name(getReservedActorIndex, "getReservedActorIndex");
507
+ __name(deriveWalletAtPath, "deriveWalletAtPath");
506
508
  function getBuiltInDevMnemonic() {
507
509
  return BUILT_IN_DEV_MNEMONIC;
508
510
  }
@@ -512,52 +514,98 @@ function getInsecureGenesisRewardMnemonic() {
512
514
  }
513
515
  __name(getInsecureGenesisRewardMnemonic, "getInsecureGenesisRewardMnemonic");
514
516
  function resolveRootWallet(configuration) {
517
+ const isConfigured = configuration.mnemonic !== void 0;
515
518
  const mnemonic = configuration.mnemonic ?? BUILT_IN_DEV_MNEMONIC;
516
519
  const isBuiltInDevMnemonic = mnemonic === BUILT_IN_DEV_MNEMONIC;
517
520
  return {
518
521
  basePath: DEFAULT_WALLET_PATH,
519
522
  isBuiltInDevMnemonic,
523
+ isConfigured,
520
524
  mnemonic,
521
525
  mnemonicKind: isBuiltInDevMnemonic ? "built-in-dev" : "configured-root"
522
526
  };
523
527
  }
524
528
  __name(resolveRootWallet, "resolveRootWallet");
525
- async function resolveWalletMetadata({ accountIndex, actorName, mnemonic, mnemonicKind, source }) {
526
- const wallet = await generateXyoBaseWalletFromPhrase(mnemonic);
527
- const derivationPath = `${DEFAULT_WALLET_PATH}/${accountIndex}`;
528
- const account = await wallet.derivePath(`${accountIndex}`);
529
+ async function resolveWalletMetadata({ accountPath, actorName, mnemonic, mnemonicKind }) {
530
+ const account = await deriveWalletAtPath(mnemonic, accountPath);
529
531
  return {
530
- accountIndex,
532
+ accountPath,
531
533
  actorName,
532
534
  address: account.address,
533
- derivationPath,
535
+ derivationPath: expandAccountPath(accountPath),
534
536
  label: getAccountLabel(actorName),
535
537
  mnemonic,
536
538
  mnemonicKind,
537
539
  privateKey: account.privateKey,
538
- source,
539
540
  usesBuiltInDevMnemonic: mnemonic === BUILT_IN_DEV_MNEMONIC
540
541
  };
541
542
  }
542
543
  __name(resolveWalletMetadata, "resolveWalletMetadata");
543
544
  async function resolveActorWallet(actorName, actorConfig, root) {
544
- const actorMnemonic = actorConfig?.mnemonic;
545
- const accountIndex = actorConfig?.accountIndex;
546
- return await resolveWalletMetadata(actorMnemonic ? {
547
- accountIndex: accountIndex ?? 0,
548
- actorName,
549
- mnemonic: actorMnemonic,
550
- mnemonicKind: "configured-actor",
551
- source: "actor"
552
- } : {
553
- accountIndex: accountIndex ?? getReservedActorIndex(actorName),
545
+ return await resolveWalletMetadata({
546
+ accountPath: resolveActorAccountPath(actorName, actorConfig),
554
547
  actorName,
555
548
  mnemonic: root.mnemonic,
556
- mnemonicKind: root.mnemonicKind,
557
- source: "root"
549
+ mnemonicKind: root.mnemonicKind
558
550
  });
559
551
  }
560
552
  __name(resolveActorWallet, "resolveActorWallet");
553
+ var ActorMnemonicNotAllowedError = class extends Error {
554
+ static {
555
+ __name(this, "ActorMnemonicNotAllowedError");
556
+ }
557
+ actors;
558
+ constructor(actors) {
559
+ super([
560
+ `Per-actor mnemonics are no longer allowed (found on: ${actors.join(", ")}).`,
561
+ 'Move the mnemonic to the root (XL1_MNEMONIC, --mnemonic, or config file "xl1.mnemonic") and give each actor a distinct accountPath.'
562
+ ].join("\n"));
563
+ this.name = "ActorMnemonicNotAllowedError";
564
+ this.actors = actors;
565
+ }
566
+ };
567
+ function assertNoActorMnemonics(configuration) {
568
+ const offenders = configuration.actors.filter((actor) => typeof actor.mnemonic === "string").map((actor) => actor.name);
569
+ if (offenders.length > 0) throw new ActorMnemonicNotAllowedError(offenders);
570
+ }
571
+ __name(assertNoActorMnemonics, "assertNoActorMnemonics");
572
+ var DerivationPathCollisionError = class extends Error {
573
+ static {
574
+ __name(this, "DerivationPathCollisionError");
575
+ }
576
+ collisions;
577
+ constructor(collisions) {
578
+ const lines = Object.entries(collisions).map(([path, actors]) => ` - ${actors.join(", ")} \u2192 ${path}`);
579
+ super([
580
+ "Two or more actors resolve to the same wallet derivation path:",
581
+ ...lines,
582
+ "Change each actor's accountPath so every actor has a distinct path."
583
+ ].join("\n"));
584
+ this.name = "DerivationPathCollisionError";
585
+ this.collisions = collisions;
586
+ }
587
+ };
588
+ function detectDerivationPathCollisions(requestedActors, configuration) {
589
+ const actorConfigMap = new Map(configuration.actors.map((actor) => [
590
+ actor.name,
591
+ actor
592
+ ]));
593
+ const bucketsByPath = /* @__PURE__ */ new Map();
594
+ for (const actorName of requestedActors) {
595
+ const accountPath = resolveActorAccountPath(actorName, actorConfigMap.get(actorName));
596
+ const fullPath = expandAccountPath(accountPath);
597
+ const bucket = bucketsByPath.get(fullPath) ?? [];
598
+ bucket.push(actorName);
599
+ bucketsByPath.set(fullPath, bucket);
600
+ }
601
+ const collisions = {};
602
+ for (const [path, actors] of bucketsByPath) {
603
+ if (actors.length > 1) collisions[path] = actors;
604
+ }
605
+ if (Object.keys(collisions).length === 0) return void 0;
606
+ return new DerivationPathCollisionError(collisions);
607
+ }
608
+ __name(detectDerivationPathCollisions, "detectDerivationPathCollisions");
561
609
  async function resolveWalletReport(requestedActors, configuration) {
562
610
  const root = resolveRootWallet(configuration);
563
611
  const actorConfigMap = new Map(configuration.actors.map((actor) => [
@@ -565,62 +613,54 @@ async function resolveWalletReport(requestedActors, configuration) {
565
613
  actor
566
614
  ]));
567
615
  const resolvedActors = await Promise.all(requestedActors.map(async (actorName) => await resolveActorWallet(actorName, actorConfigMap.get(actorName), root)));
568
- const labelMap = /* @__PURE__ */ new Map([
569
- [
570
- 0,
571
- [
572
- getAccountLabel(ROOT_WALLET_RUNTIME_ID)
573
- ]
574
- ]
575
- ]);
616
+ const labelMap = /* @__PURE__ */ new Map();
576
617
  for (const actor of resolvedActors) {
577
- if (actor.source !== "root") continue;
578
- const labels = labelMap.get(actor.accountIndex) ?? [];
618
+ const labels = labelMap.get(actor.derivationPath) ?? [];
579
619
  labels.push(actor.label);
580
- labelMap.set(actor.accountIndex, labels);
620
+ labelMap.set(actor.derivationPath, labels);
581
621
  }
582
622
  const sharedAccounts = await Promise.all(Array.from({
583
623
  length: SHARED_ACCOUNT_REPORT_COUNT
584
- }, (_, index) => index).map(async (accountIndex) => {
624
+ }, (_, index) => index).map(async (sharedIndex) => {
585
625
  const account = await resolveWalletMetadata({
586
- accountIndex,
626
+ accountPath: `${sharedIndex}`,
587
627
  actorName: ROOT_WALLET_RUNTIME_ID,
588
628
  mnemonic: root.mnemonic,
589
- mnemonicKind: root.mnemonicKind,
590
- source: "root"
629
+ mnemonicKind: root.mnemonicKind
591
630
  });
592
- const labels = labelMap.get(accountIndex);
631
+ const labels = labelMap.get(account.derivationPath);
593
632
  return {
594
633
  ...account,
595
- label: labels?.join(", ") ?? `shared[${accountIndex}]`
634
+ label: labels?.join(", ") ?? `shared[${sharedIndex}]`
596
635
  };
597
636
  }));
598
- const insecureGenesisRewardAccounts = configuration.chain.genesisRewardAddress ? void 0 : await Promise.all(Array.from({
637
+ return {
638
+ requestedActors: [
639
+ ...requestedActors
640
+ ],
641
+ root,
642
+ sharedAccounts
643
+ };
644
+ }
645
+ __name(resolveWalletReport, "resolveWalletReport");
646
+ async function buildInsecureGenesisRewardAccounts() {
647
+ const accounts = await Promise.all(Array.from({
599
648
  length: SHARED_ACCOUNT_REPORT_COUNT
600
- }, (_, index) => index).map(async (accountIndex) => {
649
+ }, (_, index) => index).map(async (sharedIndex) => {
601
650
  const account = await resolveWalletMetadata({
602
- accountIndex,
651
+ accountPath: `${sharedIndex}`,
603
652
  actorName: "genesisReward",
604
653
  mnemonic: INSECURE_GENESIS_REWARD_MNEMONIC,
605
- mnemonicKind: "configured-actor",
606
- source: "actor"
654
+ mnemonicKind: "insecure-genesis-reward"
607
655
  });
608
656
  return {
609
657
  ...account,
610
- label: accountIndex === 0 ? "genesisRewardAddress" : `genesisReward[${accountIndex}]`
658
+ label: sharedIndex === 0 ? "genesisRewardAddress" : `genesisReward[${sharedIndex}]`
611
659
  };
612
660
  }));
613
- return {
614
- actorSpecificAccounts: resolvedActors.filter((actor) => actor.source === "actor"),
615
- insecureGenesisRewardAccounts,
616
- requestedActors: [
617
- ...requestedActors
618
- ],
619
- root,
620
- sharedAccounts
621
- };
661
+ return accounts;
622
662
  }
623
- __name(resolveWalletReport, "resolveWalletReport");
663
+ __name(buildInsecureGenesisRewardAccounts, "buildInsecureGenesisRewardAccounts");
624
664
  async function initializeResolvedWalletReport(requestedActors, configuration) {
625
665
  activeWalletReport = await resolveWalletReport(requestedActors, configuration);
626
666
  return activeWalletReport;
@@ -632,7 +672,7 @@ function getResolvedWalletReport() {
632
672
  __name(getResolvedWalletReport, "getResolvedWalletReport");
633
673
  function formatSharedAccount(account, showPrivateKey) {
634
674
  const lines = [
635
- `[${account.accountIndex}] ${account.label}`,
675
+ `[${account.accountPath}] ${account.label}`,
636
676
  `source: ${account.mnemonicKind === "built-in-dev" ? "built-in dev mnemonic" : "configured root mnemonic"}`,
637
677
  `path: ${account.derivationPath}`,
638
678
  `address: ${account.address}`
@@ -641,19 +681,10 @@ function formatSharedAccount(account, showPrivateKey) {
641
681
  return lines.join("\n");
642
682
  }
643
683
  __name(formatSharedAccount, "formatSharedAccount");
644
- function formatActorSpecificAccount(account) {
645
- return [
646
- account.label,
647
- "source: actor mnemonic",
648
- `path: ${account.derivationPath}`,
649
- `address: ${account.address}`
650
- ].join("\n");
651
- }
652
- __name(formatActorSpecificAccount, "formatActorSpecificAccount");
653
684
  function formatGenesisRewardAccount(account) {
654
- const balance = account.accountIndex === 0 ? GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1 : 0n;
685
+ const balance = account.accountPath === "0" ? GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1 : 0n;
655
686
  return [
656
- `[${account.accountIndex}] ${account.label}`,
687
+ `[${account.accountPath}] ${account.label}`,
657
688
  `path: ${account.derivationPath}`,
658
689
  `address: ${account.address}`,
659
690
  `privateKey: ${account.privateKey ?? "unavailable"}`,
@@ -683,34 +714,28 @@ function formatWalletReport(report) {
683
714
  "",
684
715
  report.sharedAccounts.map((account) => formatSharedAccount(account, showSecrets)).join("\n\n")
685
716
  ].join("\n"));
686
- if (report.actorSpecificAccounts.length > 0) {
687
- sections.push([
688
- "Actor-specific wallet accounts:",
689
- "",
690
- report.actorSpecificAccounts.map((account) => formatActorSpecificAccount(account)).join("\n\n")
691
- ].join("\n"));
692
- }
693
- if (report.insecureGenesisRewardAccounts) {
694
- sections.push([
695
- "INSECURE GENESIS REWARD WALLET WARNING",
696
- "",
697
- "XL1 is using a public, insecure fallback wallet for the genesis reward address.",
698
- "This phrase is intentionally unsafe and must never be used for real funds, production systems, or shared environments.",
699
- "Anyone with this information can fully control the genesis reward wallet.",
700
- "",
701
- "Genesis reward phrase:",
702
- INSECURE_GENESIS_REWARD_MNEMONIC,
703
- "",
704
- `The genesis reward is sent to index 0 and starts with ${(GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1).toString()} XL1.`,
705
- "",
706
- `Genesis reward wallet accounts from ${DEFAULT_WALLET_PATH}:`,
707
- "",
708
- report.insecureGenesisRewardAccounts.map((account) => formatGenesisRewardAccount(account)).join("\n\n")
709
- ].join("\n"));
710
- }
711
717
  return sections.join("\n\n");
712
718
  }
713
719
  __name(formatWalletReport, "formatWalletReport");
720
+ function formatInsecureGenesisRewardWarning(accounts) {
721
+ return [
722
+ "INSECURE GENESIS REWARD WALLET WARNING",
723
+ "",
724
+ "XL1 is using a public, insecure fallback wallet for the genesis reward address.",
725
+ "This phrase is intentionally unsafe and must never be used for real funds, production systems, or shared environments.",
726
+ "Anyone with this information can fully control the genesis reward wallet.",
727
+ "",
728
+ "Genesis reward phrase:",
729
+ INSECURE_GENESIS_REWARD_MNEMONIC,
730
+ "",
731
+ `The genesis reward is sent to index 0 and starts with ${(GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1).toString()} XL1.`,
732
+ "",
733
+ `Genesis reward wallet accounts from ${DEFAULT_WALLET_PATH}:`,
734
+ "",
735
+ accounts.map((account) => formatGenesisRewardAccount(account)).join("\n\n")
736
+ ].join("\n");
737
+ }
738
+ __name(formatInsecureGenesisRewardWarning, "formatInsecureGenesisRewardWarning");
714
739
  async function resolveGenesisRewardAddress(config) {
715
740
  if (config.chain.genesisRewardAddress) return config.chain.genesisRewardAddress;
716
741
  const wallet = await generateXyoBaseWalletFromPhrase(INSECURE_GENESIS_REWARD_MNEMONIC);
@@ -718,12 +743,11 @@ async function resolveGenesisRewardAddress(config) {
718
743
  return account.address;
719
744
  }
720
745
  __name(resolveGenesisRewardAddress, "resolveGenesisRewardAddress");
721
- async function resolveWalletForActor(actorName, mnemonic, accountIndex) {
722
- const fromReport = activeWalletReport ? actorName === ROOT_WALLET_RUNTIME_ID ? activeWalletReport.sharedAccounts.find((account) => account.accountIndex === 0) : activeWalletReport.actorSpecificAccounts.find((account) => account.actorName === actorName) ?? activeWalletReport.sharedAccounts.find((account) => account.actorName === actorName || account.label.split(", ").includes(getAccountLabel(actorName))) : void 0;
723
- const resolvedMnemonic = fromReport?.mnemonic ?? mnemonic ?? BUILT_IN_DEV_MNEMONIC;
724
- const resolvedAccountIndex = fromReport?.accountIndex ?? accountIndex ?? 0;
725
- const wallet = await generateXyoBaseWalletFromPhrase(resolvedMnemonic);
726
- return await wallet.derivePath(`${resolvedAccountIndex}`);
746
+ async function resolveWalletForActor(actorName, accountPath) {
747
+ const report = activeWalletReport;
748
+ const mnemonic = report?.root.mnemonic ?? BUILT_IN_DEV_MNEMONIC;
749
+ const resolvedAccountPath = accountPath ?? resolveActorAccountPath(actorName);
750
+ return await deriveWalletAtPath(mnemonic, resolvedAccountPath);
727
751
  }
728
752
  __name(resolveWalletForActor, "resolveWalletForActor");
729
753
 
@@ -732,8 +756,8 @@ var actorAccountSingletons = {};
732
756
  async function initActorAccount({ config, logger }) {
733
757
  const actorName = config.name;
734
758
  if (isDefined(actorAccountSingletons[actorName])) return actorAccountSingletons[actorName];
735
- const accountIndex = "accountIndex" in config && typeof config.accountIndex === "number" ? config.accountIndex : void 0;
736
- const account = await resolveWalletForActor(actorName, config.mnemonic, accountIndex);
759
+ const accountPath = typeof config.accountPath === "string" ? config.accountPath : void 0;
760
+ const account = await resolveWalletForActor(actorName, accountPath);
737
761
  logger?.debug(`[${actorName}] Using wallet address ${account.address}`);
738
762
  actorAccountSingletons[actorName] = account;
739
763
  return actorAccountSingletons[actorName];
@@ -747,10 +771,7 @@ async function initActorSeedPhrase(context, bios) {
747
771
  const walletKind = config.name;
748
772
  void bios;
749
773
  const report = getResolvedWalletReport();
750
- const account = config.name === ROOT_WALLET_RUNTIME_ID ? report?.sharedAccounts.find((entry) => entry.accountIndex === 0) : report?.actorSpecificAccounts.find((entry) => entry.actorName === config.name);
751
- if (isString(account?.mnemonic)) return account.mnemonic;
752
774
  if (isString(report?.root.mnemonic)) return report.root.mnemonic;
753
- if (isString(config.mnemonic)) return config.mnemonic;
754
775
  const fallback = getBuiltInDevMnemonic();
755
776
  logger?.debug(`[${walletKind}] Falling back to built-in development mnemonic`);
756
777
  return assertEx(fallback, () => "Unable to resolve mnemonic");
@@ -807,10 +828,10 @@ function initStatusReporter({ logger }) {
807
828
  __name(initStatusReporter, "initStatusReporter");
808
829
 
809
830
  // src/shared/init/initWallet.ts
810
- async function initActorWallet(context, mnemonic) {
811
- const actorName = context.config.name === ROOT_WALLET_RUNTIME_ID ? ROOT_WALLET_RUNTIME_ID : context.config.name;
812
- const accountIndex = "accountIndex" in context.config && typeof context.config.accountIndex === "number" ? context.config.accountIndex : void 0;
813
- return await resolveWalletForActor(actorName, mnemonic ?? context.config.mnemonic, accountIndex);
831
+ async function initActorWallet(context) {
832
+ const actorName = context.config.name;
833
+ const accountPath = typeof context.config.accountPath === "string" ? context.config.accountPath : void 0;
834
+ return await resolveWalletForActor(actorName, accountPath);
814
835
  }
815
836
  __name(initActorWallet, "initActorWallet");
816
837
 
@@ -879,6 +900,41 @@ Orchestrator = _ts_decorate2([
879
900
  creatable2()
880
901
  ], Orchestrator);
881
902
 
903
+ // src/shared/provider/SimpleRejectedTransactionsArchivistProvider.ts
904
+ import { assertEx as assertEx3 } from "@xylabs/sdk-js";
905
+ import { AbstractCreatableProvider, creatableProvider } from "@xyo-network/xl1-sdk";
906
+ function _ts_decorate3(decorators, target, key, desc) {
907
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
908
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
909
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
910
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
911
+ }
912
+ __name(_ts_decorate3, "_ts_decorate");
913
+ var RejectedTransactionsArchivistProviderMoniker = "RejectedTransactionsArchivistProvider";
914
+ var SimpleRejectedTransactionsArchivistProvider = class _SimpleRejectedTransactionsArchivistProvider extends AbstractCreatableProvider {
915
+ static {
916
+ __name(this, "SimpleRejectedTransactionsArchivistProvider");
917
+ }
918
+ static defaultMoniker = RejectedTransactionsArchivistProviderMoniker;
919
+ static dependencies = [];
920
+ static monikers = [
921
+ RejectedTransactionsArchivistProviderMoniker
922
+ ];
923
+ moniker = _SimpleRejectedTransactionsArchivistProvider.defaultMoniker;
924
+ get archivist() {
925
+ return this.params.archivist;
926
+ }
927
+ static async paramsHandler(params) {
928
+ return {
929
+ ...await super.paramsHandler(params),
930
+ archivist: assertEx3(params?.archivist, () => "archivist is required")
931
+ };
932
+ }
933
+ };
934
+ SimpleRejectedTransactionsArchivistProvider = _ts_decorate3([
935
+ creatableProvider()
936
+ ], SimpleRejectedTransactionsArchivistProvider);
937
+
882
938
  // src/neutral/config/locators/basicRemoteRunnerLocator.ts
883
939
  import { basicRemoteRunnerLocator as sdkBasicRemoteRunnerLocator } from "@xyo-network/xl1-sdk";
884
940
  function basicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint, validators) {
@@ -898,17 +954,18 @@ function basicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, validato
898
954
  __name(basicRemoteViewerLocator, "basicRemoteViewerLocator");
899
955
 
900
956
  // src/neutral/config/locators/rootLocatorFromConfig.ts
901
- import { assertEx as assertEx3 } from "@xylabs/sdk-js";
957
+ import { assertEx as assertEx4 } from "@xylabs/sdk-js";
902
958
  import { commonLocatorFromConfig, remoteLocatorFromConfig } from "@xyo-network/xl1-sdk";
903
959
  async function rootLocatorFromConfig(context, validateDepsOnRegister = false) {
904
960
  const { config } = context;
905
961
  await commonLocatorFromConfig(context, validateDepsOnRegister);
906
- const locator = assertEx3(await (config.remote.rpc ? remoteLocatorFromConfig(context, validateDepsOnRegister) : void 0), () => "Root locator could not be created from config. No supported configuration found.");
962
+ const locator = assertEx4(await (config.remote.rpc ? remoteLocatorFromConfig(context, validateDepsOnRegister) : void 0), () => "Root locator could not be created from config. No supported configuration found.");
907
963
  locator.freeze();
908
964
  return locator;
909
965
  }
910
966
  __name(rootLocatorFromConfig, "rootLocatorFromConfig");
911
967
  export {
968
+ ActorMnemonicNotAllowedError,
912
969
  ApiConfigContext,
913
970
  ApiConfigZod,
914
971
  BUILT_IN_DEV_MNEMONIC,
@@ -916,10 +973,15 @@ export {
916
973
  BridgeConfigContext,
917
974
  BridgeConfigZod,
918
975
  BridgeSettingsZod,
976
+ DEFAULT_ACTOR_ACCOUNT_PATH,
919
977
  DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL,
920
978
  DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL,
921
979
  DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL,
922
980
  DefaultServiceProvider,
981
+ DerivationPathCollisionError,
982
+ FinalizerActor,
983
+ FinalizerConfigContext,
984
+ FinalizerConfigZod,
923
985
  GENESIS_REWARD_AMOUNT,
924
986
  GenericHost,
925
987
  INSECURE_GENESIS_REWARD_MNEMONIC,
@@ -929,34 +991,37 @@ export {
929
991
  ProducerConfigContext,
930
992
  ProducerConfigZod,
931
993
  ROOT_WALLET_RUNTIME_ID,
994
+ RejectedTransactionsArchivistProviderMoniker,
932
995
  RewardRedemptionConfigContext,
933
996
  RewardRedemptionConfigZod,
934
997
  SHARED_ACCOUNT_REPORT_COUNT,
935
998
  ServiceLifetime,
936
- ValidatorActor,
937
- ValidatorConfigContext,
938
- ValidatorConfigZod,
999
+ SimpleRejectedTransactionsArchivistProvider,
939
1000
  asApiConfig,
940
1001
  asApiConfigContext,
941
1002
  asBridgeConfig,
942
1003
  asBridgeConfigContext,
1004
+ asFinalizerConfig,
1005
+ asFinalizerConfigContext,
943
1006
  asMempoolConfig,
944
1007
  asMempoolConfigContext,
945
1008
  asProducerConfig,
946
1009
  asProducerConfigContext,
947
1010
  asRewardRedemptionConfig,
948
1011
  asRewardRedemptionConfigContext,
949
- asValidatorConfig,
950
- asValidatorConfigContext,
1012
+ assertNoActorMnemonics,
951
1013
  basicRemoteRunnerLocator,
952
1014
  basicRemoteViewerLocator,
1015
+ buildInsecureGenesisRewardAccounts,
953
1016
  buildTelemetryConfig,
954
1017
  clearResolvedWalletReport,
955
1018
  createProducerChainStakeIntentBlock,
1019
+ detectDerivationPathCollisions,
1020
+ expandAccountPath,
1021
+ formatInsecureGenesisRewardWarning,
956
1022
  formatWalletReport,
957
1023
  getBuiltInDevMnemonic,
958
1024
  getInsecureGenesisRewardMnemonic,
959
- getReservedActorIndex,
960
1025
  getResolvedWalletReport,
961
1026
  initActorAccount,
962
1027
  initActorSeedPhrase,
@@ -965,19 +1030,21 @@ export {
965
1030
  initBridgedModule,
966
1031
  initStatusReporter,
967
1032
  initializeResolvedWalletReport,
1033
+ isAbsoluteAccountPath,
968
1034
  isApiConfig,
969
1035
  isApiConfigContext,
970
1036
  isBridgeConfig,
971
1037
  isBridgeConfigContext,
1038
+ isFinalizerConfig,
1039
+ isFinalizerConfigContext,
972
1040
  isMempoolConfig,
973
1041
  isMempoolConfigContext,
974
1042
  isProducerConfig,
975
1043
  isProducerConfigContext,
976
1044
  isRewardRedemptionConfig,
977
1045
  isRewardRedemptionConfigContext,
978
- isValidatorConfig,
979
- isValidatorConfigContext,
980
1046
  mergeConfig,
1047
+ resolveActorAccountPath,
981
1048
  resolveActorWallet,
982
1049
  resolveGenesisRewardAddress,
983
1050
  resolveRootWallet,
@@ -988,13 +1055,13 @@ export {
988
1055
  toApiConfigContext,
989
1056
  toBridgeConfig,
990
1057
  toBridgeConfigContext,
1058
+ toFinalizerConfig,
1059
+ toFinalizerConfigContext,
991
1060
  toMempoolConfig,
992
1061
  toMempoolConfigContext,
993
1062
  toProducerConfig,
994
1063
  toProducerConfigContext,
995
1064
  toRewardRedemptionConfig,
996
- toRewardRedemptionConfigContext,
997
- toValidatorConfig,
998
- toValidatorConfigContext
1065
+ toRewardRedemptionConfigContext
999
1066
  };
1000
1067
  //# sourceMappingURL=index.mjs.map