@xyo-network/chain-services 1.16.23 → 1.16.24

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.
@@ -1,9 +1,16 @@
1
- import { Address, Hash, Promisable } from '@xylabs/sdk-js';
1
+ import { Address, Hash } from '@xylabs/sdk-js';
2
2
  import { ReadArchivist } from '@xyo-network/archivist-model';
3
3
  import { AttoXL1, XL1BlockRange } from '@xyo-network/xl1-protocol';
4
4
  import { AccountBalanceHistoryItem, AccountBalanceViewer, BalanceStepSummaryContext, BlockViewer, EventingChainBlockNumberIteratorService, TransfersStepSummaryContext } from '@xyo-network/xl1-protocol-sdk';
5
+ import z from 'zod';
5
6
  import { BaseService } from '../BaseService.ts';
6
7
  import { BaseServiceParams } from '../model/index.ts';
8
+ export declare const BaseAccountBalanceServiceParamsZod: z.ZodObject<{
9
+ chainArchivist: z.ZodObject<{}, z.z.core.$loose>;
10
+ chainIterator: z.ZodObject<{}, z.z.core.$loose>;
11
+ context: z.ZodObject<{}, z.z.core.$loose>;
12
+ transferContext: z.ZodObject<{}, z.z.core.$loose>;
13
+ }, z.z.core.$strip>;
7
14
  export interface BaseAccountBalanceServiceParams extends BaseServiceParams {
8
15
  chainArchivist: ReadArchivist;
9
16
  chainIterator: EventingChainBlockNumberIteratorService;
@@ -13,12 +20,12 @@ export interface BaseAccountBalanceServiceParams extends BaseServiceParams {
13
20
  export declare class BaseAccountBalanceService extends BaseService<BaseAccountBalanceServiceParams> implements AccountBalanceViewer {
14
21
  protected accountBalanceViewer: AccountBalanceViewer;
15
22
  protected blockViewer: BlockViewer;
23
+ static paramsHandler(params?: Partial<BaseAccountBalanceServiceParams> | undefined): Promise<BaseAccountBalanceServiceParams>;
16
24
  accountBalance(address: Address, headOrRange?: XL1BlockRange | Hash): Promise<AttoXL1>;
17
25
  accountBalanceHistory(address: Address): Promise<AccountBalanceHistoryItem[]>;
18
26
  accountBalanceHistory(address: Address, head: Hash): Promise<AccountBalanceHistoryItem[]>;
19
27
  accountBalanceHistory(address: Address, range: XL1BlockRange): Promise<AccountBalanceHistoryItem[]>;
20
- accountBalances(address: Address[], _headOrRange?: XL1BlockRange | Hash): Promise<Partial<Record<Address, AttoXL1>>>;
21
- accountsBalances(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Partial<Record<Address, AttoXL1>>>;
28
+ accountsBalances(address: Address[], _headOrRange?: Hash | XL1BlockRange): Promise<Partial<Record<Address, AttoXL1>>>;
22
29
  accountsBalancesHistory(addresses: Address[]): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>>;
23
30
  accountsBalancesHistory(addresses: Address[], head: Hash): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>>;
24
31
  accountsBalancesHistory(addresses: Address[], range: XL1BlockRange): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAccountBalanceService.d.ts","sourceRoot":"","sources":["../../../src/AccountBalance/BaseAccountBalanceService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAAa,IAAI,EACxB,UAAU,EACX,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EAEpB,yBAAyB,EACzB,WAAW,EACX,uCAAuC,EAEvC,2BAA2B,EAC5B,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,+BAAgC,SAAQ,iBAAiB;IACxE,cAAc,EAAE,aAAa,CAAA;IAC7B,aAAa,EAAE,uCAAuC,CAAA;IACtD,OAAO,EAAE,yBAAyB,CAAA;IAClC,eAAe,EAAE,2BAA2B,CAAA;CAC7C;AAED,qBACa,yBAA0B,SAAQ,WAAW,CAAC,+BAA+B,CAAE,YAAW,oBAAoB;IACzH,SAAS,CAAC,oBAAoB,EAAG,oBAAoB,CAAA;IACrD,SAAS,CAAC,WAAW,EAAG,WAAW,CAAA;IAE7B,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtF,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAC7E,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IACzF,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAKnG,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAc1H,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAIjH,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAC7G,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;IACzH,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAKhI,aAAa;CAQvB"}
1
+ {"version":3,"file":"BaseAccountBalanceService.d.ts","sourceRoot":"","sources":["../../../src/AccountBalance/BaseAccountBalanceService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAAuB,IAAI,EACnC,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EAEpB,yBAAyB,EACzB,WAAW,EACX,uCAAuC,EAEvC,2BAA2B,EAC5B,MAAM,+BAA+B,CAAA;AACtC,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,eAAO,MAAM,kCAAkC;;;;;mBAK7C,CAAA;AAEF,MAAM,WAAW,+BAAgC,SAAQ,iBAAiB;IACxE,cAAc,EAAE,aAAa,CAAA;IAC7B,aAAa,EAAE,uCAAuC,CAAA;IACtD,OAAO,EAAE,yBAAyB,CAAA;IAClC,eAAe,EAAE,2BAA2B,CAAA;CAC7C;AAED,qBACa,yBAA0B,SAAQ,WAAW,CAAC,+BAA+B,CAAE,YAAW,oBAAoB;IACzH,SAAS,CAAC,oBAAoB,EAAG,oBAAoB,CAAA;IACrD,SAAS,CAAC,WAAW,EAAG,WAAW,CAAA;WAEb,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,+BAA+B,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAOtI,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtF,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAC7E,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IACzF,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAKnG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAqBrH,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAC7G,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;IACzH,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAKhI,aAAa;CAQvB"}
@@ -4,6 +4,7 @@ import { BlockRewardDiviner } from '@xyo-network/chain-modules';
4
4
  import { WithStorageMeta } from '@xyo-network/payload-model';
5
5
  import { BlockBoundWitness, ChainStakeIntent, HydratedBlock, Transfer } from '@xyo-network/xl1-protocol';
6
6
  import { AccountBalanceViewer, BlockProducerService, Config, PendingTransactionsService, StakeIntentService, TimeSyncViewer } from '@xyo-network/xl1-protocol-sdk';
7
+ import z from 'zod';
7
8
  import { BaseService } from '../BaseService.ts';
8
9
  import { XyoValidatorParams } from '../ChainValidator/index.ts';
9
10
  /**
@@ -19,6 +20,13 @@ export declare const XYO_PRODUCER_REDECLARATION_DURATION = 10000;
19
20
  * their intent to produce blocks
20
21
  */
21
22
  export declare const XYO_PRODUCER_REDECLARATION_WINDOW = 500;
23
+ export declare const BaseBlockProducerServiceParamsZod: z.ZodObject<{
24
+ balanceService: z.ZodObject<{}, z.z.core.$loose>;
25
+ pendingTransactionsService: z.ZodObject<{}, z.z.core.$loose>;
26
+ rejectedTransactionsArchivist: z.ZodObject<{}, z.z.core.$loose>;
27
+ rewardAddress: z.ZodPipe<z.ZodString, z.ZodTransform<Address, string>>;
28
+ time: z.ZodObject<{}, z.z.core.$loose>;
29
+ }, z.z.core.$strip>;
22
30
  export interface BaseBlockProducerServiceParams extends XyoValidatorParams<Pick<Config, 'producer'>> {
23
31
  balanceService: AccountBalanceViewer;
24
32
  pendingTransactionsService: PendingTransactionsService;
@@ -55,6 +63,7 @@ export declare class BaseBlockProducerService extends BaseService<BaseBlockProdu
55
63
  protected get stakeIntentService(): StakeIntentService;
56
64
  protected get time(): TimeSyncViewer;
57
65
  protected get validateHydratedBlockState(): import("@xyo-network/xl1-protocol-sdk").HydratedBlockStateValidationFunction;
66
+ static paramsHandler(params?: Partial<BaseBlockProducerServiceParams> | undefined): Promise<BaseBlockProducerServiceParams>;
58
67
  next(head: WithStorageMeta<BlockBoundWitness>): Promise<HydratedBlock | undefined>;
59
68
  protected getBlockRewardTransfers(block: number): Promise<Transfer[]>;
60
69
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BaseBlockProducerService.d.ts","sourceRoot":"","sources":["../../../src/BlockProducer/BaseBlockProducerService.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAEP,GAAG,EAIJ,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAEyB,iBAAiB,EAC/C,gBAAgB,EAAsB,aAAa,EACnD,QAAQ,EACT,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,cAAc,EACnH,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAG/D;;GAEG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,mCAAmC,QAAS,CAAA;AAEzD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,MAAM,CAAA;AAEpD,MAAM,WAAW,8BAA+B,SAAQ,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClG,cAAc,EAAE,oBAAoB,CAAA;IACpC,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,6BAA6B,EAAE,iBAAiB,CAAA;IAChD,aAAa,EAAE,OAAO,CAAA;IACtB,IAAI,EAAE,cAAc,CAAA;CACrB;AAED,qBACa,wBAAyB,SAAQ,WAAW,CAAC,8BAA8B,CAAE,YAAW,oBAAoB;IACvH,SAAS,CAAC,mBAAmB,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAE7D;;OAEG;IACH,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAEpC;IAED;;;OAGG;IACH,MAAM,KAAK,qBAAqB,IAAI,MAAM,CAEzC;IAED;;;OAGG;IACH,MAAM,KAAK,mBAAmB,IAAI,MAAM,CAEvC;IAED,IAAI,OAAO,YAEV;IAED,SAAS,KAAK,OAAO,yDAEpB;IAED,SAAS,KAAK,cAAc,yBAE3B;IAED,SAAS,KAAK,cAAc,qLAE3B;IAED,SAAS,KAAK,OAAO,kBAEpB;IAED,SAAS,KAAK,eAAe,4DAE5B;IAED,SAAS,KAAK,0BAA0B,+BAEvC;IAED,SAAS,KAAK,6BAA6B,0SAE1C;IAED,SAAS,KAAK,aAAa,IAAI,OAAO,CAErC;IAED,SAAS,KAAK,aAAa,+DAE1B;IAED,SAAS,KAAK,kBAAkB,IAAI,kBAAkB,CAErD;IAED,SAAS,KAAK,IAAI,IAAI,cAAc,CAEnC;IAED,SAAS,KAAK,0BAA0B,iFAEvC;IAEK,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;cAgBxE,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAmB3E;;;;OAIG;cACa,wBAAwB,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;cAiBzG,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;YA+D/H,cAAc;YAyBd,mBAAmB;IAgBjC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAU1B"}
1
+ {"version":3,"file":"BaseBlockProducerService.d.ts","sourceRoot":"","sources":["../../../src/BlockProducer/BaseBlockProducerService.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,18 @@ var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
4
  // src/AccountBalance/accountBalanceServiceFromArchivist.ts
5
- import { assertEx } from "@xylabs/sdk-js";
5
+ import { assertEx as assertEx2 } from "@xylabs/sdk-js";
6
6
  import { findMostRecentBlock } from "@xyo-network/chain-protocol";
7
7
  import { StepSizes } from "@xyo-network/xl1-protocol";
8
8
  import { LruCacheMap, readPayloadMapFromStore } from "@xyo-network/xl1-protocol-sdk";
9
9
  import { Semaphore } from "async-mutex";
10
10
 
11
11
  // src/AccountBalance/BaseAccountBalanceService.ts
12
- import { creatable as creatable2 } from "@xylabs/sdk-js";
12
+ import { assertEx, creatable as creatable2 } from "@xylabs/sdk-js";
13
13
  import { spanRootAsync as spanRootAsync2 } from "@xylabs/telemetry";
14
14
  import { AttoXL1 } from "@xyo-network/xl1-protocol";
15
15
  import { balancesSummary, SimpleAccountBalanceViewer } from "@xyo-network/xl1-protocol-sdk";
16
+ import z from "zod";
16
17
 
17
18
  // src/BaseService.ts
18
19
  import { AbstractCreatable, creatable } from "@xylabs/sdk-js";
@@ -133,24 +134,45 @@ function _ts_decorate2(decorators, target, key, desc) {
133
134
  return c > 3 && r && Object.defineProperty(target, key, r), r;
134
135
  }
135
136
  __name(_ts_decorate2, "_ts_decorate");
137
+ var BaseAccountBalanceServiceParamsZod = z.object({
138
+ chainArchivist: z.object().loose(),
139
+ chainIterator: z.object().loose(),
140
+ context: z.object().loose(),
141
+ transferContext: z.object().loose()
142
+ });
136
143
  var BaseAccountBalanceService = class extends BaseService {
137
144
  static {
138
145
  __name(this, "BaseAccountBalanceService");
139
146
  }
140
147
  accountBalanceViewer;
141
148
  blockViewer;
149
+ static async paramsHandler(params) {
150
+ BaseAccountBalanceServiceParamsZod.parse(params);
151
+ assertEx(params?.context?.head, () => "BalanceStepSummaryContext is required in BaseAccountBalanceServiceParams");
152
+ return {
153
+ ...await super.paramsHandler(params),
154
+ ...params
155
+ };
156
+ }
142
157
  async accountBalance(address, headOrRange) {
143
- const balances = await this.accountBalances([
158
+ const balances = await this.accountsBalances([
144
159
  address
145
160
  ], headOrRange);
146
161
  return balances[address] ?? AttoXL1(0n);
147
162
  }
148
- async accountBalanceHistory(address, headOrRange) {
149
- return await this.accountBalanceViewer.accountBalanceHistory(address, headOrRange);
163
+ accountBalanceHistory(_address, _headOrRange) {
164
+ throw new Error("Method not implemented.");
150
165
  }
151
- async accountBalances(address, _headOrRange) {
166
+ async accountsBalances(address, _headOrRange) {
152
167
  return await spanRootAsync2("balances", async () => {
153
- const summary = await balancesSummary(this.params.context);
168
+ const context = {
169
+ head: this.params.context.head,
170
+ stepSemaphores: this.params.context.stepSemaphores,
171
+ store: this.params.context.store,
172
+ chainId: this.params.context.chainId,
173
+ summaryMap: this.params.context.summaryMap
174
+ };
175
+ const summary = await balancesSummary(context);
154
176
  const result = {};
155
177
  for (const addr of address) {
156
178
  const summaryBalance = summary[addr] ?? 0n;
@@ -159,12 +181,9 @@ var BaseAccountBalanceService = class extends BaseService {
159
181
  return result;
160
182
  });
161
183
  }
162
- accountsBalances(address, headOrRange) {
184
+ accountsBalancesHistory(_addresses, _headOrRange) {
163
185
  throw new Error("Method not implemented.");
164
186
  }
165
- async accountsBalancesHistory(addresses, headOrRange) {
166
- return await this.accountBalanceViewer.accountsBalancesHistory(addresses, headOrRange);
167
- }
168
187
  createHandler() {
169
188
  this.blockViewer = blockViewerFromChainIteratorAndArchivist(this.params.chainIterator, this.params.chainArchivist);
170
189
  this.accountBalanceViewer = new SimpleAccountBalanceViewer(this.params.context, this.params.transferContext, this.blockViewer);
@@ -186,8 +205,8 @@ var accountBalancesServiceFromArchivist = /* @__PURE__ */ __name(async (chainId,
186
205
  const headFunc = /* @__PURE__ */ __name(async () => {
187
206
  const head = await findMostRecentBlock(archivist);
188
207
  return [
189
- assertEx(head?._hash, () => "No head found in chainArchivist"),
190
- assertEx(head?.block, () => "No head found in chainArchivist")
208
+ assertEx2(head?._hash, () => "No head found in chainArchivist"),
209
+ assertEx2(head?.block, () => "No head found in chainArchivist")
191
210
  ];
192
211
  }, "headFunc");
193
212
  const service = await BaseAccountBalanceService.create({
@@ -242,15 +261,16 @@ BaseAccountTransfersService = _ts_decorate3([
242
261
  ], BaseAccountTransfersService);
243
262
 
244
263
  // src/BlockProducer/BaseBlockProducerService.ts
245
- import { asHash, assertEx as assertEx3, creatable as creatable4, exists, hexToBigInt, isDefined as isDefined2, toHex } from "@xylabs/sdk-js";
264
+ import { AddressZod, asHash, assertEx as assertEx4, creatable as creatable4, exists, hexToBigInt, isDefined as isDefined2, toHex } from "@xylabs/sdk-js";
246
265
  import { FixedPercentageBlockRewardDiviner, FixedPercentageBlockRewardDivinerConfigSchema } from "@xyo-network/chain-modules";
247
266
  import { buildNextBlock, createDeclarationIntent } from "@xyo-network/chain-protocol";
248
267
  import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
249
268
  import { asBlockBoundWitness, AttoXL1 as AttoXL13, BlockNumberSchema, defaultRewardRatio, TimeSchema, XYO_STEP_REWARD_ADDRESS } from "@xyo-network/xl1-protocol";
269
+ import z2 from "zod";
250
270
 
251
271
  // src/BlockProducer/generateTransactionFeeTransfers.ts
252
272
  import { hexFromBigInt } from "@xylabs/sdk-js";
253
- import { assertEx as assertEx2 } from "@xylabs/sdk-js";
273
+ import { assertEx as assertEx3 } from "@xylabs/sdk-js";
254
274
  import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
255
275
  import { TransferSchema, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-protocol";
256
276
  import { transactionRequiredGas } from "@xyo-network/xl1-protocol-sdk";
@@ -285,7 +305,7 @@ async function generateTransactionFeeTransfers(address, transactions) {
285
305
  return payload;
286
306
  });
287
307
  for (const [from, amount] of Object.entries(txGasCosts)) {
288
- const fromPayload = assertEx2(payloads.find((p) => p.from === from), () => "from payload not found");
308
+ const fromPayload = assertEx3(payloads.find((p) => p.from === from), () => "from payload not found");
289
309
  fromPayload.transfers[address] = hexFromBigInt(amount);
290
310
  }
291
311
  return payloads;
@@ -303,6 +323,13 @@ __name(_ts_decorate4, "_ts_decorate");
303
323
  var DEFAULT_BLOCK_SIZE = 10;
304
324
  var XYO_PRODUCER_REDECLARATION_DURATION = 1e4;
305
325
  var XYO_PRODUCER_REDECLARATION_WINDOW = 500;
326
+ var BaseBlockProducerServiceParamsZod = z2.object({
327
+ balanceService: z2.object().loose(),
328
+ pendingTransactionsService: z2.object().loose(),
329
+ rejectedTransactionsArchivist: z2.object().loose(),
330
+ rewardAddress: AddressZod,
331
+ time: z2.object().loose()
332
+ });
306
333
  var BaseBlockProducerService = class _BaseBlockProducerService extends BaseService {
307
334
  static {
308
335
  __name(this, "BaseBlockProducerService");
@@ -332,40 +359,47 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
332
359
  return this.account.address;
333
360
  }
334
361
  get account() {
335
- return assertEx3(this.params.account, () => "account is required");
362
+ return assertEx4(this.params.account, () => "account is required");
336
363
  }
337
364
  get balanceService() {
338
- return assertEx3(this.params.balanceService, () => "balanceService is required");
365
+ return assertEx4(this.params.balanceService, () => "balanceService is required");
339
366
  }
340
367
  get chainArchivist() {
341
- return assertEx3(this.params.chainArchivist, () => "chainArchivist is required");
368
+ return assertEx4(this.params.chainArchivist, () => "chainArchivist is required");
342
369
  }
343
370
  get chainId() {
344
- return assertEx3(this.params.chainId, () => "chainId is required");
371
+ return assertEx4(this.params.chainId, () => "chainId is required");
345
372
  }
346
373
  get electionService() {
347
- return assertEx3(this.params.electionService, () => "electionService is required");
374
+ return assertEx4(this.params.electionService, () => "electionService is required");
348
375
  }
349
376
  get pendingTransactionsService() {
350
- return assertEx3(this.params.pendingTransactionsService, () => "Missing pendingTransactionsService");
377
+ return assertEx4(this.params.pendingTransactionsService, () => "Missing pendingTransactionsService");
351
378
  }
352
379
  get rejectedTransactionsArchivist() {
353
- return assertEx3(this.params.rejectedTransactionsArchivist, () => "No rejected bundled transactions archivist");
380
+ return assertEx4(this.params.rejectedTransactionsArchivist, () => "No rejected bundled transactions archivist");
354
381
  }
355
382
  get rewardAddress() {
356
- return assertEx3(this.params.rewardAddress, () => "No reward address provided");
383
+ return assertEx4(this.params.rewardAddress, () => "No reward address provided");
357
384
  }
358
385
  get rewardService() {
359
- return assertEx3(this.params.rewardService, () => "rewardService is required");
386
+ return assertEx4(this.params.rewardService, () => "rewardService is required");
360
387
  }
361
388
  get stakeIntentService() {
362
- return assertEx3(this.params.stakeIntentService, () => "No StakeIntentService provided");
389
+ return assertEx4(this.params.stakeIntentService, () => "No StakeIntentService provided");
363
390
  }
364
391
  get time() {
365
- return assertEx3(this.params.time, () => "No TimeSyncViewer provided");
392
+ return assertEx4(this.params.time, () => "No TimeSyncViewer provided");
366
393
  }
367
394
  get validateHydratedBlockState() {
368
- return assertEx3(this.params.validateHydratedBlockState, () => "validateHydratedBlockState is required");
395
+ return assertEx4(this.params.validateHydratedBlockState, () => "validateHydratedBlockState is required");
396
+ }
397
+ static async paramsHandler(params) {
398
+ BaseBlockProducerServiceParamsZod.parse(params);
399
+ return {
400
+ ...await super.paramsHandler(params),
401
+ ...params
402
+ };
369
403
  }
370
404
  async next(head) {
371
405
  if (head.chain !== this.chainId) return;
@@ -390,7 +424,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
390
424
  }
391
425
  });
392
426
  }
393
- const blockHex = assertEx3(toHex(block), () => "Failed to convert block to hex");
427
+ const blockHex = assertEx4(toHex(block), () => "Failed to convert block to hex");
394
428
  const blockId = new PayloadBuilder3({
395
429
  schema: BlockNumberSchema
396
430
  }).fields({
@@ -419,7 +453,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
419
453
  }
420
454
  async proposeNextValidBlock(head, validateBalances = false) {
421
455
  return await this.spanAsync("proposeNextValidBlock", async () => {
422
- const { block: previousBlock } = assertEx3(asBlockBoundWitness(head), () => "Invalid head block");
456
+ const { block: previousBlock } = assertEx4(asBlockBoundWitness(head), () => "Invalid head block");
423
457
  const nextBlock = previousBlock + 1;
424
458
  const nextBlockTransactionsStart = Date.now();
425
459
  const nextBlockTransactions = await this.pendingTransactionsService.getPendingTransactions(head._hash, _BaseBlockProducerService.DefaultBlockSize);
@@ -548,7 +582,7 @@ BaseBlockRewardService = _ts_decorate5([
548
582
  ], BaseBlockRewardService);
549
583
 
550
584
  // src/BlockReward/EvmBlockRewardService.ts
551
- import { assertEx as assertEx4, creatable as creatable6, toEthAddress } from "@xylabs/sdk-js";
585
+ import { assertEx as assertEx5, creatable as creatable6, toEthAddress } from "@xylabs/sdk-js";
552
586
  import { XyoChainRewards__factory as XyoChainRewardsFactory } from "@xyo-network/typechain";
553
587
  function _ts_decorate6(decorators, target, key, desc) {
554
588
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -563,13 +597,13 @@ var EvmBlockRewardService = class extends BaseBlockRewardService {
563
597
  }
564
598
  _contractAddress;
565
599
  get chainService() {
566
- return assertEx4(this.params.chainService, () => "chainService is required");
600
+ return assertEx5(this.params.chainService, () => "chainService is required");
567
601
  }
568
602
  get contractAddress() {
569
- return assertEx4(this._contractAddress, () => "contractAddress is required");
603
+ return assertEx5(this._contractAddress, () => "contractAddress is required");
570
604
  }
571
605
  get provider() {
572
- return assertEx4(this.params.provider, () => "provider is required");
606
+ return assertEx5(this.params.provider, () => "provider is required");
573
607
  }
574
608
  async createHandler() {
575
609
  await super.createHandler();
@@ -590,7 +624,7 @@ EvmBlockRewardService = _ts_decorate6([
590
624
  ], EvmBlockRewardService);
591
625
 
592
626
  // src/BlockReward/MemoryBlockRewardService.ts
593
- import { assertEx as assertEx5, creatable as creatable7, toFixedPoint } from "@xylabs/sdk-js";
627
+ import { assertEx as assertEx6, creatable as creatable7, toFixedPoint } from "@xylabs/sdk-js";
594
628
  import { rewardFromBlockNumber } from "@xyo-network/chain-protocol";
595
629
  function _ts_decorate7(decorators, target, key, desc) {
596
630
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -605,22 +639,22 @@ var MemoryBlockRewardService = class extends BaseBlockRewardService {
605
639
  }
606
640
  rewardFromBlockNumber = rewardFromBlockNumber(18);
607
641
  get creatorReward() {
608
- return assertEx5(this.params.creatorReward, () => "creatorReward is required");
642
+ return assertEx6(this.params.creatorReward, () => "creatorReward is required");
609
643
  }
610
644
  get initialReward() {
611
- return assertEx5(this.params.initialStepReward, () => "initialStepReward is required");
645
+ return assertEx6(this.params.initialStepReward, () => "initialStepReward is required");
612
646
  }
613
647
  get minRewardPerBlock() {
614
- return assertEx5(this.params.minRewardPerBlock, () => "minRewardPerBlock is required");
648
+ return assertEx6(this.params.minRewardPerBlock, () => "minRewardPerBlock is required");
615
649
  }
616
650
  get stepFactorDenominator() {
617
- return assertEx5(this.params.stepFactorDenominator, () => "stepFactorDenominator is required");
651
+ return assertEx6(this.params.stepFactorDenominator, () => "stepFactorDenominator is required");
618
652
  }
619
653
  get stepFactorNumerator() {
620
- return assertEx5(this.params.stepFactorNumerator, () => "stepFactorNumerator is required");
654
+ return assertEx6(this.params.stepFactorNumerator, () => "stepFactorNumerator is required");
621
655
  }
622
656
  get stepSize() {
623
- return assertEx5(this.params.stepSize, () => "stepSize is required");
657
+ return assertEx6(this.params.stepSize, () => "stepSize is required");
624
658
  }
625
659
  static async paramsHandler(inParams) {
626
660
  return {
@@ -642,7 +676,7 @@ MemoryBlockRewardService = _ts_decorate7([
642
676
  ], MemoryBlockRewardService);
643
677
 
644
678
  // src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts
645
- import { assertEx as assertEx6, isDefined as isDefined3, isNull, isUndefined } from "@xylabs/sdk-js";
679
+ import { assertEx as assertEx7, isDefined as isDefined3, isNull, isUndefined } from "@xylabs/sdk-js";
646
680
  import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
647
681
  import { asBlockBoundWitness as asBlockBoundWitness2, asBlockBoundWitnessWithStorageMeta as asBlockBoundWitnessWithStorageMeta2, isBlockBoundWitnessWithHashMeta } from "@xyo-network/xl1-protocol";
648
682
  import { LRUCache } from "lru-cache";
@@ -655,21 +689,21 @@ var ChainBlockNumberIterationService = class extends BaseService {
655
689
  });
656
690
  _currentHead;
657
691
  get chainId() {
658
- return assertEx6(this._currentHead?.chain ?? this.params?.head?.chain, () => "Current head is not set");
692
+ return assertEx7(this._currentHead?.chain ?? this.params?.head?.chain, () => "Current head is not set");
659
693
  }
660
694
  get chainMap() {
661
- return assertEx6(this.params.chainMap);
695
+ return assertEx7(this.params.chainMap);
662
696
  }
663
697
  async get(block) {
664
698
  const head = await this.head();
665
- assertEx6(head.block >= block, () => `Block requested is newer than the current head [${block}]`);
699
+ assertEx7(head.block >= block, () => `Block requested is newer than the current head [${block}]`);
666
700
  const cached = this._blocksByBlockNumber.get(block);
667
701
  if (cached) return cached;
668
702
  const startingBlock = head;
669
703
  const currentBlockHash = await PayloadBuilder4.hash(startingBlock);
670
704
  let currentBlock = await this.chainMap.get(currentBlockHash);
671
705
  while (isDefined3(currentBlock)) {
672
- assertEx6(asBlockBoundWitness2(currentBlock), () => `Expected hash to be a block bound witness [${currentBlock?._hash}]`);
706
+ assertEx7(asBlockBoundWitness2(currentBlock), () => `Expected hash to be a block bound witness [${currentBlock?._hash}]`);
673
707
  if (isBlockBoundWitnessWithHashMeta(currentBlock)) {
674
708
  this._blocksByBlockNumber.set(currentBlock.block, currentBlock);
675
709
  if (currentBlock.block === block) {
@@ -710,7 +744,7 @@ var ChainBlockNumberIterationService = class extends BaseService {
710
744
  currentBlock = asBlockBoundWitnessWithStorageMeta2(nextBlock);
711
745
  } else {
712
746
  const hash = PayloadBuilder4.hash(currentBlock);
713
- assertEx6(asBlockBoundWitnessWithStorageMeta2(currentBlock), () => `Expected hash to be a block bound witness [${hash}]`);
747
+ assertEx7(asBlockBoundWitnessWithStorageMeta2(currentBlock), () => `Expected hash to be a block bound witness [${hash}]`);
714
748
  }
715
749
  }
716
750
  return results;
@@ -734,7 +768,7 @@ var ChainBlockNumberIterationService = class extends BaseService {
734
768
  };
735
769
 
736
770
  // src/ChainService/Evm/Evm.ts
737
- import { assertEx as assertEx7, toAddress, toEthAddress as toEthAddress2 } from "@xylabs/sdk-js";
771
+ import { assertEx as assertEx8, toAddress, toEthAddress as toEthAddress2 } from "@xylabs/sdk-js";
738
772
  import { StakedXyoChain__factory as StakedXyoChainFactory } from "@xyo-network/typechain";
739
773
  import { getAddress } from "ethers/address";
740
774
  var EvmChainService = class extends BaseService {
@@ -742,16 +776,16 @@ var EvmChainService = class extends BaseService {
742
776
  __name(this, "EvmChainService");
743
777
  }
744
778
  get chainId() {
745
- return assertEx7(this.params.id);
779
+ return assertEx8(this.params.id);
746
780
  }
747
781
  get contract() {
748
782
  if (this.params.contract === void 0) {
749
783
  this.params.contract = StakedXyoChainFactory.connect(toEthAddress2(this.chainId), this.params.runner);
750
784
  }
751
- return assertEx7(this.params.contract);
785
+ return assertEx8(this.params.contract);
752
786
  }
753
787
  get runner() {
754
- return assertEx7(this.params.runner);
788
+ return assertEx8(this.params.runner);
755
789
  }
756
790
  async active() {
757
791
  return await this.contract.active();
@@ -810,7 +844,7 @@ var EvmChainService = class extends BaseService {
810
844
  };
811
845
 
812
846
  // src/ChainService/Memory/Memory.ts
813
- import { assertEx as assertEx8, toAddress as toAddress2, ZERO_ADDRESS } from "@xylabs/sdk-js";
847
+ import { assertEx as assertEx9, toAddress as toAddress2, ZERO_ADDRESS } from "@xylabs/sdk-js";
814
848
  var MemoryChainService = class extends BaseService {
815
849
  static {
816
850
  __name(this, "MemoryChainService");
@@ -818,7 +852,7 @@ var MemoryChainService = class extends BaseService {
818
852
  _chainId;
819
853
  _simulatedStake = 1n;
820
854
  get chainId() {
821
- return assertEx8(this._chainId, () => "Chain ID not set");
855
+ return assertEx9(this._chainId, () => "Chain ID not set");
822
856
  }
823
857
  async active() {
824
858
  return await Promise.resolve(this._simulatedStake);
@@ -879,7 +913,7 @@ var MemoryChainService = class extends BaseService {
879
913
  };
880
914
 
881
915
  // src/ChainValidator/XyoValidator.ts
882
- import { assertEx as assertEx9, creatable as creatable8 } from "@xylabs/sdk-js";
916
+ import { assertEx as assertEx10, creatable as creatable8 } from "@xylabs/sdk-js";
883
917
  function _ts_decorate8(decorators, target, key, desc) {
884
918
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
885
919
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -895,22 +929,22 @@ var XyoValidator = class extends BaseService {
895
929
  return this.account.address;
896
930
  }
897
931
  get account() {
898
- return assertEx9(this.params.account, () => "account is required");
932
+ return assertEx10(this.params.account, () => "account is required");
899
933
  }
900
934
  get chainArchivist() {
901
- return assertEx9(this.params.chainArchivist, () => "chainArchivist is required");
935
+ return assertEx10(this.params.chainArchivist, () => "chainArchivist is required");
902
936
  }
903
937
  get chainInfo() {
904
- return assertEx9(this.params.chainId, () => "chainInfo is required");
938
+ return assertEx10(this.params.chainId, () => "chainInfo is required");
905
939
  }
906
940
  get electionService() {
907
- return assertEx9(this.params.electionService, () => "electionService is required");
941
+ return assertEx10(this.params.electionService, () => "electionService is required");
908
942
  }
909
943
  get pendingBundledTransactionsArchivist() {
910
- return assertEx9(this.params.pendingBundledTransactionsArchivist, () => "pendingBundledTransactions is required");
944
+ return assertEx10(this.params.pendingBundledTransactionsArchivist, () => "pendingBundledTransactions is required");
911
945
  }
912
946
  get rewardService() {
913
- return assertEx9(this.params.rewardService, () => "rewardService is required");
947
+ return assertEx10(this.params.rewardService, () => "rewardService is required");
914
948
  }
915
949
  validatePendingBlock(_block) {
916
950
  return [];
@@ -929,7 +963,7 @@ XyoValidator = _ts_decorate8([
929
963
  ], XyoValidator);
930
964
 
931
965
  // src/Election/BaseElectionService.ts
932
- import { assertEx as assertEx10, creatable as creatable9 } from "@xylabs/sdk-js";
966
+ import { assertEx as assertEx11, creatable as creatable9 } from "@xylabs/sdk-js";
933
967
  import { hexToLast4BytesInt, shuffleWithSeed } from "@xyo-network/chain-utils";
934
968
  function _ts_decorate9(decorators, target, key, desc) {
935
969
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -943,13 +977,13 @@ var BaseElectionService = class extends BaseService {
943
977
  __name(this, "BaseElectionService");
944
978
  }
945
979
  get chainIterator() {
946
- return assertEx10(this.params.chainIterator, () => "No chain iterator");
980
+ return assertEx11(this.params.chainIterator, () => "No chain iterator");
947
981
  }
948
982
  get chainStakeViewer() {
949
- return assertEx10(this.params.chainStakeViewer, () => "No chain stake viewer");
983
+ return assertEx11(this.params.chainStakeViewer, () => "No chain stake viewer");
950
984
  }
951
985
  get stakeIntentService() {
952
- return assertEx10(this.params.stakeIntentService, () => "No staked intent service");
986
+ return assertEx11(this.params.stakeIntentService, () => "No staked intent service");
953
987
  }
954
988
  async getCreatorCommitteeForNextBlock(current) {
955
989
  return await this.spanAsync("getCreatorCommitteeForNextBlock", async () => {
@@ -1044,7 +1078,7 @@ BaseNetworkStakeStepRewardService = _ts_decorate10([
1044
1078
 
1045
1079
  // src/PendingTransactions/BasePendingTransactions.ts
1046
1080
  import { ValueType } from "@opentelemetry/api";
1047
- import { assertEx as assertEx11, creatable as creatable11, exists as exists2, filterAs, filterAsync, forget, isDefined as isDefined4, isUndefined as isUndefined2 } from "@xylabs/sdk-js";
1081
+ import { assertEx as assertEx12, creatable as creatable11, exists as exists2, filterAs, filterAsync, forget, isDefined as isDefined4, isUndefined as isUndefined2 } from "@xylabs/sdk-js";
1048
1082
  import { MemoryArchivist } from "@xyo-network/archivist-memory";
1049
1083
  import { findMostRecentBlock as findMostRecentBlock2 } from "@xyo-network/chain-protocol";
1050
1084
  import { asBlockBoundWitnessWithHashMeta, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
@@ -1138,23 +1172,23 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
1138
1172
  return this.params.additionalPendingTransactionValidators ?? [];
1139
1173
  }
1140
1174
  get chainArchivist() {
1141
- return assertEx11(this.params.chainArchivist, () => "No completed blocks with data archivist");
1175
+ return assertEx12(this.params.chainArchivist, () => "No completed blocks with data archivist");
1142
1176
  }
1143
1177
  get chainId() {
1144
- return assertEx11(this.params.chainId, () => "No chain id");
1178
+ return assertEx12(this.params.chainId, () => "No chain id");
1145
1179
  }
1146
1180
  get pendingBundledTransactionsArchivist() {
1147
- return assertEx11(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
1181
+ return assertEx12(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
1148
1182
  }
1149
1183
  get pendingBundledTransactionsLocalArchivist() {
1150
- return assertEx11(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
1184
+ return assertEx12(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
1151
1185
  }
1152
1186
  get pendingTransactionsCount() {
1153
1187
  forget(this.countPendingTransactions());
1154
1188
  return this._pendingTransactionsCount;
1155
1189
  }
1156
1190
  get rejectedTransactionsArchivist() {
1157
- return assertEx11(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
1191
+ return assertEx12(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
1158
1192
  }
1159
1193
  async createHandler() {
1160
1194
  await super.createHandler();
@@ -1396,7 +1430,7 @@ var mapBoundWitnessToStakeIntentHashes = /* @__PURE__ */ __name((bw) => {
1396
1430
  }, "mapBoundWitnessToStakeIntentHashes");
1397
1431
 
1398
1432
  // src/StakeIntent/XyoStakeIntentService.ts
1399
- import { asAddress, assertEx as assertEx12, creatable as creatable13, filterAs as filterAs3, isUndefined as isUndefined3 } from "@xylabs/sdk-js";
1433
+ import { asAddress, assertEx as assertEx13, creatable as creatable13, filterAs as filterAs3, isUndefined as isUndefined3 } from "@xylabs/sdk-js";
1400
1434
  import { analyzeChain, ChainStakeIntentAnalyzer, isChainSummaryStakeIntent } from "@xyo-network/chain-analyze";
1401
1435
  import { DEFAULT_FIND_FIRST_MATCHING_NEXT_OPTIONS, findFirstMatching, IntervalMap } from "@xyo-network/chain-utils";
1402
1436
  import { PayloadBuilder as PayloadBuilder7 } from "@xyo-network/payload-builder";
@@ -1433,16 +1467,16 @@ var XyoStakeIntentService = class extends BaseService {
1433
1467
  });
1434
1468
  _updateMutex = new Mutex3();
1435
1469
  get chainArchivist() {
1436
- return assertEx12(this.params.chainArchivist, () => "chainArchivist not set");
1470
+ return assertEx13(this.params.chainArchivist, () => "chainArchivist not set");
1437
1471
  }
1438
1472
  get chainIterator() {
1439
- return assertEx12(this.params.chainIterator, () => "chainIterator not set");
1473
+ return assertEx13(this.params.chainIterator, () => "chainIterator not set");
1440
1474
  }
1441
1475
  get chainStakeViewer() {
1442
- return assertEx12(this.params.chainStakeViewer, () => "chainStakeViewer not set");
1476
+ return assertEx13(this.params.chainStakeViewer, () => "chainStakeViewer not set");
1443
1477
  }
1444
1478
  get stakeIntentStateArchivist() {
1445
- return assertEx12(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
1479
+ return assertEx13(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
1446
1480
  }
1447
1481
  async createHandler() {
1448
1482
  this.chainIterator.on("headUpdated", async () => {
@@ -1455,13 +1489,13 @@ var XyoStakeIntentService = class extends BaseService {
1455
1489
  }
1456
1490
  async getDeclaredCandidateRanges(address, intent) {
1457
1491
  await Promise.resolve();
1458
- assertEx12(intent === "producer", () => `Support not yet added for intent ${intent}`);
1492
+ assertEx13(intent === "producer", () => `Support not yet added for intent ${intent}`);
1459
1493
  const results = this._producers.get(address);
1460
1494
  return results ?? [];
1461
1495
  }
1462
1496
  async getDeclaredCandidatesForBlock(block, intent) {
1463
1497
  return await this.spanAsync("getDeclaredCandidatesForBlock", async () => {
1464
- assertEx12(intent === "producer", () => `Support not yet added for intent ${intent}`);
1498
+ assertEx13(intent === "producer", () => `Support not yet added for intent ${intent}`);
1465
1499
  const results = this._producers.findAllContaining(block);
1466
1500
  const candidates = [
1467
1501
  ...results
@@ -1527,7 +1561,7 @@ var XyoStakeIntentService = class extends BaseService {
1527
1561
  }
1528
1562
  async recoverState(current) {
1529
1563
  return await timeBudget("XyoStakeIntentService.recoverState", console, async () => {
1530
- const currentBlock = assertEx12(asBlockBoundWitness3((await this.chainArchivist.get([
1564
+ const currentBlock = assertEx13(asBlockBoundWitness3((await this.chainArchivist.get([
1531
1565
  current
1532
1566
  ]))?.[0]), () => `Block ${current} not found`);
1533
1567
  const currentBlockNum = currentBlock.block;
@@ -1671,9 +1705,11 @@ BaseTimeSyncService = _ts_decorate15([
1671
1705
  ], BaseTimeSyncService);
1672
1706
  export {
1673
1707
  BaseAccountBalanceService,
1708
+ BaseAccountBalanceServiceParamsZod,
1674
1709
  BaseAccountTransfersService,
1675
1710
  BaseAccountableService,
1676
1711
  BaseBlockProducerService,
1712
+ BaseBlockProducerServiceParamsZod,
1677
1713
  BaseBlockRewardService,
1678
1714
  BaseElectionService,
1679
1715
  BaseNetworkStakeStepRewardService,