@xyo-network/chain-services 1.15.19 → 1.15.20

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 +1 @@
1
- {"version":3,"file":"accountBalanceServiceFromArchivist.d.ts","sourceRoot":"","sources":["../../../src/AccountBalance/accountBalanceServiceFromArchivist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAQjF,eAAO,MAAM,mCAAmC,GAC9C,SAAS,OAAO,EAChB,WAAW,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KACjD,OAAO,CAAC,uBAAuB,CAkBjC,CAAA"}
1
+ {"version":3,"file":"accountBalanceServiceFromArchivist.d.ts","sourceRoot":"","sources":["../../../src/AccountBalance/accountBalanceServiceFromArchivist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAQjF,eAAO,MAAM,mCAAmC,GAC9C,SAAS,OAAO,EAChB,WAAW,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KACjD,OAAO,CAAC,uBAAuB,CAsBjC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"accountTransfersServiceFromArchivist.d.ts","sourceRoot":"","sources":["../../../src/AccountTransfers/accountTransfersServiceFromArchivist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAQjF,eAAO,MAAM,oCAAoC,GAC/C,SAAS,OAAO,EAChB,WAAW,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KACjD,OAAO,CAAC,uBAAuB,CAkBjC,CAAA"}
1
+ {"version":3,"file":"accountTransfersServiceFromArchivist.d.ts","sourceRoot":"","sources":["../../../src/AccountTransfers/accountTransfersServiceFromArchivist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAQjF,eAAO,MAAM,oCAAoC,GAC/C,SAAS,OAAO,EAChB,WAAW,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KACjD,OAAO,CAAC,uBAAuB,CAsBjC,CAAA"}
@@ -2,8 +2,8 @@ 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 { ZERO_HASH } from "@xylabs/hex";
6
- import { LruCacheMap } from "@xyo-network/chain-protocol";
5
+ import { assertEx } from "@xylabs/assert";
6
+ import { findMostRecentBlock, LruCacheMap } from "@xyo-network/chain-protocol";
7
7
  import { StepSizes } from "@xyo-network/xl1-protocol";
8
8
  import { readPayloadMapFromStore } from "@xyo-network/xl1-protocol-sdk";
9
9
  import { Semaphore } from "async-mutex";
@@ -104,6 +104,10 @@ var accountBalancesServiceFromArchivist = /* @__PURE__ */ __name(async (chainId,
104
104
  updateAgeOnGet: true
105
105
  });
106
106
  const chainMap = readPayloadMapFromStore(archivist);
107
+ const headFunc = /* @__PURE__ */ __name(async () => {
108
+ const head = await findMostRecentBlock(archivist);
109
+ return assertEx(head?._hash, () => "No head found in chainArchivist");
110
+ }, "headFunc");
107
111
  const service = await BaseAccountBalanceService.create({
108
112
  context: {
109
113
  chainId,
@@ -112,15 +116,15 @@ var accountBalancesServiceFromArchivist = /* @__PURE__ */ __name(async (chainId,
112
116
  },
113
117
  stepSemaphores: StepSizes.map(() => new Semaphore(20)),
114
118
  summaryMap,
115
- head: /* @__PURE__ */ __name(() => ZERO_HASH, "head")
119
+ head: headFunc
116
120
  }
117
121
  });
118
122
  return service;
119
123
  }, "accountBalancesServiceFromArchivist");
120
124
 
121
125
  // src/AccountTransfers/accountTransfersServiceFromArchivist.ts
122
- import { ZERO_HASH as ZERO_HASH2 } from "@xylabs/hex";
123
- import { LruCacheMap as LruCacheMap2 } from "@xyo-network/chain-protocol";
126
+ import { assertEx as assertEx2 } from "@xylabs/assert";
127
+ import { findMostRecentBlock as findMostRecentBlock2, LruCacheMap as LruCacheMap2 } from "@xyo-network/chain-protocol";
124
128
  import { StepSizes as StepSizes2 } from "@xyo-network/xl1-protocol";
125
129
  import { readPayloadMapFromStore as readPayloadMapFromStore2 } from "@xyo-network/xl1-protocol-sdk";
126
130
  import { Semaphore as Semaphore2 } from "async-mutex";
@@ -171,6 +175,10 @@ var accountTransfersServiceFromArchivist = /* @__PURE__ */ __name(async (chainId
171
175
  updateAgeOnGet: true
172
176
  });
173
177
  const chainMap = readPayloadMapFromStore2(archivist);
178
+ const headFunc = /* @__PURE__ */ __name(async () => {
179
+ const head = await findMostRecentBlock2(archivist);
180
+ return assertEx2(head?._hash, () => "No head found in chainArchivist");
181
+ }, "headFunc");
174
182
  const service = await BaseAccountTransfersService.create({
175
183
  context: {
176
184
  chainId,
@@ -179,14 +187,14 @@ var accountTransfersServiceFromArchivist = /* @__PURE__ */ __name(async (chainId
179
187
  },
180
188
  stepSemaphores: StepSizes2.map(() => new Semaphore2(20)),
181
189
  summaryMap,
182
- head: /* @__PURE__ */ __name(() => ZERO_HASH2, "head")
190
+ head: headFunc
183
191
  }
184
192
  });
185
193
  return service;
186
194
  }, "accountTransfersServiceFromArchivist");
187
195
 
188
196
  // src/BlockProducer/BaseBlockProducerService.ts
189
- import { assertEx as assertEx2 } from "@xylabs/assert";
197
+ import { assertEx as assertEx4 } from "@xylabs/assert";
190
198
  import { creatable as creatable4 } from "@xylabs/creatable";
191
199
  import { exists } from "@xylabs/exists";
192
200
  import { hexToBigInt, toHex } from "@xylabs/hex";
@@ -197,7 +205,7 @@ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder"
197
205
  import { asBlockBoundWitness, AttoXL1 as AttoXL13, BlockNumberSchema, defaultRewardRatio, TimeSchema, XYO_STEP_REWARD_ADDRESS } from "@xyo-network/xl1-protocol";
198
206
 
199
207
  // src/BlockProducer/generateTransactionFeeTransfers.ts
200
- import { assertEx } from "@xylabs/assert";
208
+ import { assertEx as assertEx3 } from "@xylabs/assert";
201
209
  import { hexFromBigInt } from "@xylabs/hex";
202
210
  import { PayloadBuilder } from "@xyo-network/payload-builder";
203
211
  import { TransferSchema, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-protocol";
@@ -233,7 +241,7 @@ async function generateTransactionFeeTransfers(address, transactions) {
233
241
  return payload;
234
242
  });
235
243
  for (const [from, amount] of Object.entries(txGasCosts)) {
236
- const fromPayload = assertEx(payloads.find((p) => p.from === from), () => "from payload not found");
244
+ const fromPayload = assertEx3(payloads.find((p) => p.from === from), () => "from payload not found");
237
245
  fromPayload.transfers[address] = hexFromBigInt(amount);
238
246
  }
239
247
  return payloads;
@@ -280,40 +288,40 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
280
288
  return this.account.address;
281
289
  }
282
290
  get account() {
283
- return assertEx2(this.params.account, () => "account is required");
291
+ return assertEx4(this.params.account, () => "account is required");
284
292
  }
285
293
  get balanceService() {
286
- return assertEx2(this.params.balanceService, () => "balanceService is required");
294
+ return assertEx4(this.params.balanceService, () => "balanceService is required");
287
295
  }
288
296
  get chainArchivist() {
289
- return assertEx2(this.params.chainArchivist, () => "chainArchivist is required");
297
+ return assertEx4(this.params.chainArchivist, () => "chainArchivist is required");
290
298
  }
291
299
  get chainId() {
292
- return assertEx2(this.params.chainId, () => "chainId is required");
300
+ return assertEx4(this.params.chainId, () => "chainId is required");
293
301
  }
294
302
  get electionService() {
295
- return assertEx2(this.params.electionService, () => "electionService is required");
303
+ return assertEx4(this.params.electionService, () => "electionService is required");
296
304
  }
297
305
  get pendingTransactionsService() {
298
- return assertEx2(this.params.pendingTransactionsService, () => "Missing pendingTransactionsService");
306
+ return assertEx4(this.params.pendingTransactionsService, () => "Missing pendingTransactionsService");
299
307
  }
300
308
  get rejectedTransactionsArchivist() {
301
- return assertEx2(this.params.rejectedTransactionsArchivist, () => "No rejected bundled transactions archivist");
309
+ return assertEx4(this.params.rejectedTransactionsArchivist, () => "No rejected bundled transactions archivist");
302
310
  }
303
311
  get rewardAddress() {
304
- return assertEx2(this.params.rewardAddress, () => "No reward address provided");
312
+ return assertEx4(this.params.rewardAddress, () => "No reward address provided");
305
313
  }
306
314
  get rewardService() {
307
- return assertEx2(this.params.rewardService, () => "rewardService is required");
315
+ return assertEx4(this.params.rewardService, () => "rewardService is required");
308
316
  }
309
317
  get stakeIntentService() {
310
- return assertEx2(this.params.stakeIntentService, () => "No StakeIntentService provided");
318
+ return assertEx4(this.params.stakeIntentService, () => "No StakeIntentService provided");
311
319
  }
312
320
  get time() {
313
- return assertEx2(this.params.time, () => "No TimeSyncViewInterface provided");
321
+ return assertEx4(this.params.time, () => "No TimeSyncViewInterface provided");
314
322
  }
315
323
  get validateHydratedBlockState() {
316
- return assertEx2(this.params.validateHydratedBlockState, () => "validateHydratedBlockState is required");
324
+ return assertEx4(this.params.validateHydratedBlockState, () => "validateHydratedBlockState is required");
317
325
  }
318
326
  async next(head) {
319
327
  if (head.chain !== this.chainId) return;
@@ -333,7 +341,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
333
341
  }
334
342
  });
335
343
  }
336
- const blockHex = assertEx2(toHex(block), () => "Failed to convert block to hex");
344
+ const blockHex = assertEx4(toHex(block), () => "Failed to convert block to hex");
337
345
  const blockId = new PayloadBuilder2({
338
346
  schema: BlockNumberSchema
339
347
  }).fields({
@@ -362,7 +370,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
362
370
  }
363
371
  async proposeNextValidBlock(head, validateBalances = false) {
364
372
  return await this.spanAsync("proposeNextValidBlock", async () => {
365
- const { block: previousBlock } = assertEx2(asBlockBoundWitness(head), () => "Invalid head block");
373
+ const { block: previousBlock } = assertEx4(asBlockBoundWitness(head), () => "Invalid head block");
366
374
  const nextBlock = previousBlock + 1;
367
375
  const nextBlockTransactions = await this.pendingTransactionsService.getPendingTransactions(head._hash, _BaseBlockProducerService.DefaultBlockSize);
368
376
  const blockPayloads = [];
@@ -426,7 +434,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
426
434
  }
427
435
  async generateTimePayload(head) {
428
436
  const [ethereum, ethHashOrNull] = await this.time.currentTimeAndHash("ethereum");
429
- const ethereumHash = assertEx2(ethHashOrNull, () => "No ethereum hash available from time sync service");
437
+ const ethereumHash = assertEx4(ethHashOrNull, () => "No ethereum hash available from time sync service");
430
438
  const timePayload = {
431
439
  schema: TimeSchema,
432
440
  // note, this is for the previous block
@@ -481,7 +489,7 @@ BaseBlockRewardService = _ts_decorate5([
481
489
  ], BaseBlockRewardService);
482
490
 
483
491
  // src/BlockReward/EvmBlockRewardService.ts
484
- import { assertEx as assertEx3 } from "@xylabs/assert";
492
+ import { assertEx as assertEx5 } from "@xylabs/assert";
485
493
  import { creatable as creatable6 } from "@xylabs/creatable";
486
494
  import { toEthAddress } from "@xylabs/hex";
487
495
  import { XyoChainRewards__factory as XyoChainRewardsFactory } from "@xyo-network/typechain";
@@ -498,13 +506,13 @@ var EvmBlockRewardService = class extends BaseBlockRewardService {
498
506
  }
499
507
  _contractAddress;
500
508
  get chainService() {
501
- return assertEx3(this.params.chainService, () => "chainService is required");
509
+ return assertEx5(this.params.chainService, () => "chainService is required");
502
510
  }
503
511
  get contractAddress() {
504
- return assertEx3(this._contractAddress, () => "contractAddress is required");
512
+ return assertEx5(this._contractAddress, () => "contractAddress is required");
505
513
  }
506
514
  get provider() {
507
- return assertEx3(this.params.provider, () => "provider is required");
515
+ return assertEx5(this.params.provider, () => "provider is required");
508
516
  }
509
517
  async createHandler() {
510
518
  await super.createHandler();
@@ -525,7 +533,7 @@ EvmBlockRewardService = _ts_decorate6([
525
533
  ], EvmBlockRewardService);
526
534
 
527
535
  // src/BlockReward/MemoryBlockRewardService.ts
528
- import { assertEx as assertEx4 } from "@xylabs/assert";
536
+ import { assertEx as assertEx6 } from "@xylabs/assert";
529
537
  import { creatable as creatable7 } from "@xylabs/creatable";
530
538
  import { toFixedPoint } from "@xylabs/decimal-precision";
531
539
  import { rewardFromBlockNumber } from "@xyo-network/chain-protocol";
@@ -542,22 +550,22 @@ var MemoryBlockRewardService = class extends BaseBlockRewardService {
542
550
  }
543
551
  rewardFromBlockNumber = rewardFromBlockNumber(18);
544
552
  get creatorReward() {
545
- return assertEx4(this.params.creatorReward, () => "creatorReward is required");
553
+ return assertEx6(this.params.creatorReward, () => "creatorReward is required");
546
554
  }
547
555
  get initialReward() {
548
- return assertEx4(this.params.initialStepReward, () => "initialStepReward is required");
556
+ return assertEx6(this.params.initialStepReward, () => "initialStepReward is required");
549
557
  }
550
558
  get minRewardPerBlock() {
551
- return assertEx4(this.params.minRewardPerBlock, () => "minRewardPerBlock is required");
559
+ return assertEx6(this.params.minRewardPerBlock, () => "minRewardPerBlock is required");
552
560
  }
553
561
  get stepFactorDenominator() {
554
- return assertEx4(this.params.stepFactorDenominator, () => "stepFactorDenominator is required");
562
+ return assertEx6(this.params.stepFactorDenominator, () => "stepFactorDenominator is required");
555
563
  }
556
564
  get stepFactorNumerator() {
557
- return assertEx4(this.params.stepFactorNumerator, () => "stepFactorNumerator is required");
565
+ return assertEx6(this.params.stepFactorNumerator, () => "stepFactorNumerator is required");
558
566
  }
559
567
  get stepSize() {
560
- return assertEx4(this.params.stepSize, () => "stepSize is required");
568
+ return assertEx6(this.params.stepSize, () => "stepSize is required");
561
569
  }
562
570
  static async paramsHandler(inParams) {
563
571
  return {
@@ -579,7 +587,7 @@ MemoryBlockRewardService = _ts_decorate7([
579
587
  ], MemoryBlockRewardService);
580
588
 
581
589
  // src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts
582
- import { assertEx as assertEx5 } from "@xylabs/assert";
590
+ import { assertEx as assertEx7 } from "@xylabs/assert";
583
591
  import { isDefined as isDefined2, isNull, isUndefined } from "@xylabs/typeof";
584
592
  import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
585
593
  import { asBlockBoundWitness as asBlockBoundWitness2, asBlockBoundWitnessWithStorageMeta, isBlockBoundWitnessWithHashStorageMeta } from "@xyo-network/xl1-protocol";
@@ -593,21 +601,21 @@ var ChainBlockNumberIterationService = class extends BaseService {
593
601
  });
594
602
  _currentHead;
595
603
  get chainId() {
596
- return assertEx5(this._currentHead?.chain ?? this.params?.head?.chain, () => "Current head is not set");
604
+ return assertEx7(this._currentHead?.chain ?? this.params?.head?.chain, () => "Current head is not set");
597
605
  }
598
606
  get chainMap() {
599
- return assertEx5(this.params.chainMap);
607
+ return assertEx7(this.params.chainMap);
600
608
  }
601
609
  async get(block) {
602
610
  const head = await this.head();
603
- assertEx5(head.block >= block, () => `Block requested is newer than the current head [${block}]`);
611
+ assertEx7(head.block >= block, () => `Block requested is newer than the current head [${block}]`);
604
612
  const cached = this._blocksByBlockNumber.get(block);
605
613
  if (cached) return cached;
606
614
  const startingBlock = head;
607
615
  const currentBlockHash = await PayloadBuilder3.hash(startingBlock);
608
616
  let currentBlock = await this.chainMap.get(currentBlockHash);
609
617
  while (isDefined2(currentBlock)) {
610
- assertEx5(asBlockBoundWitness2(currentBlock), () => `Expected hash to be a block bound witness [${currentBlock?._hash}]`);
618
+ assertEx7(asBlockBoundWitness2(currentBlock), () => `Expected hash to be a block bound witness [${currentBlock?._hash}]`);
611
619
  if (isBlockBoundWitnessWithHashStorageMeta(currentBlock)) {
612
620
  this._blocksByBlockNumber.set(currentBlock.block, currentBlock);
613
621
  if (currentBlock.block === block) {
@@ -648,7 +656,7 @@ var ChainBlockNumberIterationService = class extends BaseService {
648
656
  currentBlock = asBlockBoundWitnessWithStorageMeta(nextBlock);
649
657
  } else {
650
658
  const hash = PayloadBuilder3.hash(currentBlock);
651
- assertEx5(asBlockBoundWitnessWithStorageMeta(currentBlock), () => `Expected hash to be a block bound witness [${hash}]`);
659
+ assertEx7(asBlockBoundWitnessWithStorageMeta(currentBlock), () => `Expected hash to be a block bound witness [${hash}]`);
652
660
  }
653
661
  }
654
662
  return results;
@@ -672,7 +680,7 @@ var ChainBlockNumberIterationService = class extends BaseService {
672
680
  };
673
681
 
674
682
  // src/ChainService/Evm/Evm.ts
675
- import { assertEx as assertEx6 } from "@xylabs/assert";
683
+ import { assertEx as assertEx8 } from "@xylabs/assert";
676
684
  import { toAddress, toEthAddress as toEthAddress2 } from "@xylabs/hex";
677
685
  import { StakedXyoChain__factory as StakedXyoChainFactory } from "@xyo-network/typechain";
678
686
  import { getAddress } from "ethers/address";
@@ -681,16 +689,16 @@ var EvmChainService = class extends BaseService {
681
689
  __name(this, "EvmChainService");
682
690
  }
683
691
  get chainId() {
684
- return assertEx6(this.params.id);
692
+ return assertEx8(this.params.id);
685
693
  }
686
694
  get contract() {
687
695
  if (this.params.contract === void 0) {
688
696
  this.params.contract = StakedXyoChainFactory.connect(toEthAddress2(this.chainId), this.params.runner);
689
697
  }
690
- return assertEx6(this.params.contract);
698
+ return assertEx8(this.params.contract);
691
699
  }
692
700
  get runner() {
693
- return assertEx6(this.params.runner);
701
+ return assertEx8(this.params.runner);
694
702
  }
695
703
  async active() {
696
704
  return await this.contract.active();
@@ -813,7 +821,7 @@ var MemoryChainService = class extends BaseService {
813
821
  };
814
822
 
815
823
  // src/ChainValidator/XyoValidator.ts
816
- import { assertEx as assertEx7 } from "@xylabs/assert";
824
+ import { assertEx as assertEx9 } from "@xylabs/assert";
817
825
  import { creatable as creatable8 } from "@xylabs/creatable";
818
826
  function _ts_decorate8(decorators, target, key, desc) {
819
827
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -830,22 +838,22 @@ var XyoValidator = class extends BaseService {
830
838
  return this.account.address;
831
839
  }
832
840
  get account() {
833
- return assertEx7(this.params.account, () => "account is required");
841
+ return assertEx9(this.params.account, () => "account is required");
834
842
  }
835
843
  get chainArchivist() {
836
- return assertEx7(this.params.chainArchivist, () => "chainArchivist is required");
844
+ return assertEx9(this.params.chainArchivist, () => "chainArchivist is required");
837
845
  }
838
846
  get chainInfo() {
839
- return assertEx7(this.params.chainId, () => "chainInfo is required");
847
+ return assertEx9(this.params.chainId, () => "chainInfo is required");
840
848
  }
841
849
  get electionService() {
842
- return assertEx7(this.params.electionService, () => "electionService is required");
850
+ return assertEx9(this.params.electionService, () => "electionService is required");
843
851
  }
844
852
  get pendingBundledTransactionsArchivist() {
845
- return assertEx7(this.params.pendingBundledTransactionsArchivist, () => "pendingBundledTransactions is required");
853
+ return assertEx9(this.params.pendingBundledTransactionsArchivist, () => "pendingBundledTransactions is required");
846
854
  }
847
855
  get rewardService() {
848
- return assertEx7(this.params.rewardService, () => "rewardService is required");
856
+ return assertEx9(this.params.rewardService, () => "rewardService is required");
849
857
  }
850
858
  validatePendingBlock(_block) {
851
859
  return [];
@@ -864,7 +872,7 @@ XyoValidator = _ts_decorate8([
864
872
  ], XyoValidator);
865
873
 
866
874
  // src/Election/BaseElectionService.ts
867
- import { assertEx as assertEx8 } from "@xylabs/assert";
875
+ import { assertEx as assertEx10 } from "@xylabs/assert";
868
876
  import { creatable as creatable9 } from "@xylabs/creatable";
869
877
  import { hexToLast4BytesInt, shuffleWithSeed } from "@xyo-network/chain-utils";
870
878
  import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
@@ -880,13 +888,13 @@ var BaseElectionService = class extends BaseService {
880
888
  __name(this, "BaseElectionService");
881
889
  }
882
890
  get chainIterator() {
883
- return assertEx8(this.params.chainIterator, () => "No chain iterator");
891
+ return assertEx10(this.params.chainIterator, () => "No chain iterator");
884
892
  }
885
893
  get chainStakeViewer() {
886
- return assertEx8(this.params.chainStakeViewer, () => "No chain stake viewer");
894
+ return assertEx10(this.params.chainStakeViewer, () => "No chain stake viewer");
887
895
  }
888
896
  get stakeIntentService() {
889
- return assertEx8(this.params.stakeIntentService, () => "No staked intent service");
897
+ return assertEx10(this.params.stakeIntentService, () => "No staked intent service");
890
898
  }
891
899
  async getCreatorCommitteeForNextBlock(current) {
892
900
  return await this.spanAsync("getCreatorCommitteeForNextBlock", async () => {
@@ -982,13 +990,13 @@ BaseNetworkStakeStepRewardService = _ts_decorate10([
982
990
  // src/PendingTransactions/BasePendingTransactions.ts
983
991
  import { ValueType } from "@opentelemetry/api";
984
992
  import { filterAs, filterAsync } from "@xylabs/array";
985
- import { assertEx as assertEx9 } from "@xylabs/assert";
993
+ import { assertEx as assertEx11 } from "@xylabs/assert";
986
994
  import { creatable as creatable11 } from "@xylabs/creatable";
987
995
  import { exists as exists2 } from "@xylabs/exists";
988
996
  import { forget } from "@xylabs/forget";
989
997
  import { isDefined as isDefined3, isUndefined as isUndefined2 } from "@xylabs/typeof";
990
998
  import { MemoryArchivist } from "@xyo-network/archivist-memory";
991
- import { findMostRecentBlock } from "@xyo-network/chain-protocol";
999
+ import { findMostRecentBlock as findMostRecentBlock3 } from "@xyo-network/chain-protocol";
992
1000
  import { asBlockBoundWitnessWithHashStorageMeta, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
993
1001
  import { TransactionJsonSchemaValidator, validateTransaction } from "@xyo-network/xl1-validation";
994
1002
  import { Mutex as Mutex2 } from "async-mutex";
@@ -1080,23 +1088,23 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
1080
1088
  return this.params.additionalPendingTransactionValidators ?? [];
1081
1089
  }
1082
1090
  get chainArchivist() {
1083
- return assertEx9(this.params.chainArchivist, () => "No completed blocks with data archivist");
1091
+ return assertEx11(this.params.chainArchivist, () => "No completed blocks with data archivist");
1084
1092
  }
1085
1093
  get chainId() {
1086
- return assertEx9(this.params.chainId, () => "No chain id");
1094
+ return assertEx11(this.params.chainId, () => "No chain id");
1087
1095
  }
1088
1096
  get pendingBundledTransactionsArchivist() {
1089
- return assertEx9(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
1097
+ return assertEx11(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
1090
1098
  }
1091
1099
  get pendingBundledTransactionsLocalArchivist() {
1092
- return assertEx9(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
1100
+ return assertEx11(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
1093
1101
  }
1094
1102
  get pendingTransactionsCount() {
1095
1103
  forget(this.countPendingTransactions());
1096
1104
  return this._pendingTransactionsCount;
1097
1105
  }
1098
1106
  get rejectedTransactionsArchivist() {
1099
- return assertEx9(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
1107
+ return assertEx11(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
1100
1108
  }
1101
1109
  async createHandler() {
1102
1110
  await super.createHandler();
@@ -1165,7 +1173,7 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
1165
1173
  }
1166
1174
  async cleanupWorker() {
1167
1175
  return await this._updateCuratedPendingTransactionsArchivistMutex.runExclusive(async () => {
1168
- const lastHead = await findMostRecentBlock(this.chainArchivist);
1176
+ const lastHead = await findMostRecentBlock3(this.chainArchivist);
1169
1177
  if (isDefined3(lastHead)) await this.pruneCuratedPendingTransactionsArchivist(lastHead._hash);
1170
1178
  }, _BasePendingTransactionsService.MutexPriority.PurgeTransactions);
1171
1179
  }
@@ -1297,7 +1305,7 @@ var mapBoundWitnessToStakeIntentHashes = /* @__PURE__ */ __name((bw) => {
1297
1305
 
1298
1306
  // src/StakeIntent/XyoStakeIntentService.ts
1299
1307
  import { filterAs as filterAs3 } from "@xylabs/array";
1300
- import { assertEx as assertEx10 } from "@xylabs/assert";
1308
+ import { assertEx as assertEx12 } from "@xylabs/assert";
1301
1309
  import { creatable as creatable12 } from "@xylabs/creatable";
1302
1310
  import { asAddress } from "@xylabs/hex";
1303
1311
  import { isUndefined as isUndefined3 } from "@xylabs/typeof";
@@ -1337,16 +1345,16 @@ var XyoStakeIntentService = class extends BaseService {
1337
1345
  });
1338
1346
  _updateMutex = new Mutex3();
1339
1347
  get chainArchivist() {
1340
- return assertEx10(this.params.chainArchivist, () => "chainArchivist not set");
1348
+ return assertEx12(this.params.chainArchivist, () => "chainArchivist not set");
1341
1349
  }
1342
1350
  get chainIterator() {
1343
- return assertEx10(this.params.chainIterator, () => "chainIterator not set");
1351
+ return assertEx12(this.params.chainIterator, () => "chainIterator not set");
1344
1352
  }
1345
1353
  get chainStakeViewer() {
1346
- return assertEx10(this.params.chainStakeViewer, () => "chainStakeViewer not set");
1354
+ return assertEx12(this.params.chainStakeViewer, () => "chainStakeViewer not set");
1347
1355
  }
1348
1356
  get stakeIntentStateArchivist() {
1349
- return assertEx10(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
1357
+ return assertEx12(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
1350
1358
  }
1351
1359
  async createHandler() {
1352
1360
  this.chainIterator.on("headUpdated", async () => {
@@ -1359,13 +1367,13 @@ var XyoStakeIntentService = class extends BaseService {
1359
1367
  }
1360
1368
  async getDeclaredCandidateRanges(address, intent) {
1361
1369
  await Promise.resolve();
1362
- assertEx10(intent === "producer", () => `Error: Support not yet added for intent ${intent}`);
1370
+ assertEx12(intent === "producer", () => `Error: Support not yet added for intent ${intent}`);
1363
1371
  const results = this._producers.get(address);
1364
1372
  return results ?? [];
1365
1373
  }
1366
1374
  async getDeclaredCandidatesForBlock(block, intent) {
1367
1375
  return await this.spanAsync("getDeclaredCandidatesForBlock", async () => {
1368
- assertEx10(intent === "producer", () => `Error: Support not yet added for intent ${intent}`);
1376
+ assertEx12(intent === "producer", () => `Error: Support not yet added for intent ${intent}`);
1369
1377
  const results = this._producers.findAllContaining(block);
1370
1378
  const candidates = [
1371
1379
  ...results
@@ -1430,7 +1438,7 @@ var XyoStakeIntentService = class extends BaseService {
1430
1438
  ]);
1431
1439
  }
1432
1440
  async recoverState(current) {
1433
- const currentBlock = assertEx10(asBlockBoundWitness3((await this.chainArchivist.get([
1441
+ const currentBlock = assertEx12(asBlockBoundWitness3((await this.chainArchivist.get([
1434
1442
  current
1435
1443
  ]))?.[0]), () => `Block ${current} not found`);
1436
1444
  const currentBlockNum = currentBlock.block;
@@ -1525,7 +1533,7 @@ BaseStepStakeService = _ts_decorate13([
1525
1533
  ], BaseStepStakeService);
1526
1534
 
1527
1535
  // src/Time/BaseTimeSyncService.ts
1528
- import { assertEx as assertEx11 } from "@xylabs/assert";
1536
+ import { assertEx as assertEx13 } from "@xylabs/assert";
1529
1537
  import { creatable as creatable14 } from "@xylabs/creatable";
1530
1538
  import { asHash } from "@xylabs/hex";
1531
1539
  import { PayloadBuilder as PayloadBuilder8 } from "@xyo-network/payload-builder";
@@ -1553,7 +1561,7 @@ var BaseTimeSyncService = class extends BaseService {
1553
1561
  async convertTime(fromDomain, toDomain, from) {
1554
1562
  switch (fromDomain) {
1555
1563
  case "xl1": {
1556
- const block = assertEx11(await this.chainIterator.get(from), () => "Block not found");
1564
+ const block = assertEx13(await this.chainIterator.get(from), () => "Block not found");
1557
1565
  const timeSchemaIndex = block.payload_schemas.indexOf(TimeSchema2);
1558
1566
  const hash = timeSchemaIndex === -1 ? void 0 : block.payload_hashes[timeSchemaIndex];
1559
1567
  const [payload] = hash === void 0 ? [] : await this.chainArchivist.get([
@@ -1622,10 +1630,10 @@ var BaseTimeSyncService = class extends BaseService {
1622
1630
  ];
1623
1631
  }
1624
1632
  case "ethereum": {
1625
- const provider = assertEx11(this.ethProvider, () => "Ethereum provider not configured");
1633
+ const provider = assertEx13(this.ethProvider, () => "Ethereum provider not configured");
1626
1634
  const blockNumber = await provider.getBlockNumber() ?? 0;
1627
1635
  const block = await provider.getBlock(blockNumber);
1628
- const blockHash = asHash(assertEx11(block?.hash, () => "Block hash not found"), true);
1636
+ const blockHash = asHash(assertEx13(block?.hash, () => "Block hash not found"), true);
1629
1637
  return [
1630
1638
  blockNumber,
1631
1639
  blockHash