@xyo-network/chain-services 1.18.1 → 1.18.4

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 (45) hide show
  1. package/dist/neutral/AccountBalance/accountBalanceServiceFromArchivist.d.ts.map +1 -1
  2. package/dist/neutral/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.d.ts +14 -14
  3. package/dist/neutral/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.d.ts.map +1 -1
  4. package/dist/neutral/Schemas/BaseSchemasService.d.ts.map +1 -1
  5. package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts.map +1 -1
  6. package/dist/neutral/implementation/index.d.ts +0 -1
  7. package/dist/neutral/implementation/index.d.ts.map +1 -1
  8. package/dist/neutral/index.d.ts +0 -1
  9. package/dist/neutral/index.d.ts.map +1 -1
  10. package/dist/neutral/index.mjs +91 -290
  11. package/dist/neutral/index.mjs.map +1 -1
  12. package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts +4 -2
  13. package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
  14. package/package.json +28 -28
  15. package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +7 -3
  16. package/src/BlockReward/EvmBlockRewardViewer.ts +2 -2
  17. package/src/Election/BaseElectionService.ts +1 -1
  18. package/src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts +14 -13
  19. package/src/PendingTransactions/BasePendingTransactions.ts +3 -3
  20. package/src/Schemas/BaseSchemasService.ts +3 -3
  21. package/src/StakeIntent/XyoStakeIntentService.ts +19 -21
  22. package/src/implementation/index.ts +0 -1
  23. package/src/index.ts +0 -1
  24. package/src/simple/block/runner/SimpleBlockRunner.ts +25 -29
  25. package/dist/neutral/ChainService/Evm/Evm.d.ts +0 -38
  26. package/dist/neutral/ChainService/Evm/Evm.d.ts.map +0 -1
  27. package/dist/neutral/ChainService/Evm/index.d.ts +0 -2
  28. package/dist/neutral/ChainService/Evm/index.d.ts.map +0 -1
  29. package/dist/neutral/ChainService/Memory/Memory.d.ts +0 -37
  30. package/dist/neutral/ChainService/Memory/Memory.d.ts.map +0 -1
  31. package/dist/neutral/ChainService/Memory/index.d.ts +0 -2
  32. package/dist/neutral/ChainService/Memory/index.d.ts.map +0 -1
  33. package/dist/neutral/ChainService/index.d.ts +0 -3
  34. package/dist/neutral/ChainService/index.d.ts.map +0 -1
  35. package/dist/neutral/implementation/chain/evm.d.ts +0 -6
  36. package/dist/neutral/implementation/chain/evm.d.ts.map +0 -1
  37. package/dist/neutral/implementation/chain/index.d.ts +0 -5
  38. package/dist/neutral/implementation/chain/index.d.ts.map +0 -1
  39. package/src/ChainService/Evm/Evm.ts +0 -106
  40. package/src/ChainService/Evm/index.ts +0 -1
  41. package/src/ChainService/Memory/Memory.ts +0 -105
  42. package/src/ChainService/Memory/index.ts +0 -1
  43. package/src/ChainService/index.ts +0 -2
  44. package/src/implementation/chain/evm.ts +0 -38
  45. package/src/implementation/chain/index.ts +0 -43
@@ -36,7 +36,8 @@ var accountBalancesViewerFromArchivist = /* @__PURE__ */ __name(async (context,
36
36
  stepSemaphores: StepSizes.map(() => new Semaphore(20)),
37
37
  summaryMap,
38
38
  head: headFunc,
39
- singletons: context.singletons
39
+ singletons: context.singletons,
40
+ caches: context.caches
40
41
  },
41
42
  transfersSummaryContext: {
42
43
  chainId,
@@ -46,7 +47,8 @@ var accountBalancesViewerFromArchivist = /* @__PURE__ */ __name(async (context,
46
47
  stepSemaphores: StepSizes.map(() => new Semaphore(20)),
47
48
  summaryMap: transferSummaryMap,
48
49
  head: headFunc,
49
- singletons: context.singletons
50
+ singletons: context.singletons,
51
+ caches: context.caches
50
52
  }
51
53
  });
52
54
  return service;
@@ -54,7 +56,7 @@ var accountBalancesViewerFromArchivist = /* @__PURE__ */ __name(async (context,
54
56
 
55
57
  // src/BlockReward/EvmBlockRewardViewer.ts
56
58
  import { AbstractCreatable, assertEx as assertEx2, creatable, toEthAddress } from "@xylabs/sdk-js";
57
- import { XyoChainRewards__factory as XyoChainRewardsFactory } from "@xyo-network/typechain";
59
+ import { IXyoChainRewards__factory } from "@xyo-network/typechain";
58
60
  import { asAttoXL1, BlockRewardViewerMoniker } from "@xyo-network/xl1-sdk";
59
61
  function _ts_decorate(decorators, target, key, desc) {
60
62
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -83,7 +85,7 @@ var EvmBlockRewardViewer = class _EvmBlockRewardViewer extends AbstractCreatable
83
85
  return assertEx2(this.params.provider, () => "provider is required");
84
86
  }
85
87
  async allowedRewardForBlock(blockNumber) {
86
- const contract = XyoChainRewardsFactory.connect(toEthAddress(this.contractAddress), this.provider);
88
+ const contract = IXyoChainRewards__factory.connect(toEthAddress(this.contractAddress), this.provider);
87
89
  return asAttoXL1(await contract.calcBlockReward(blockNumber));
88
90
  }
89
91
  async createHandler() {
@@ -196,159 +198,9 @@ function blockViewerFromChainIteratorAndArchivist(chainIterator, chainArchivist)
196
198
  }
197
199
  __name(blockViewerFromChainIteratorAndArchivist, "blockViewerFromChainIteratorAndArchivist");
198
200
 
199
- // src/ChainService/Evm/Evm.ts
200
- import { toAddress, toEthAddress as toEthAddress2 } from "@xylabs/sdk-js";
201
- import { AbstractCreatableProvider, ChainContractViewerMoniker } from "@xyo-network/xl1-sdk";
202
- import { getAddress } from "ethers/address";
203
- var EvmChainViewer = class _EvmChainViewer extends AbstractCreatableProvider {
204
- static {
205
- __name(this, "EvmChainViewer");
206
- }
207
- static defaultMoniker = ChainContractViewerMoniker;
208
- static monikers = [
209
- ChainContractViewerMoniker
210
- ];
211
- moniker = _EvmChainViewer.defaultMoniker;
212
- get contract() {
213
- return this.params.contract;
214
- }
215
- async active() {
216
- return await this.contract.active();
217
- }
218
- async activeByStaked(staked) {
219
- return await this.contract.activeByAddressStaked(getAddress(toEthAddress2(staked)));
220
- }
221
- async activeByStaker(address) {
222
- return await this.contract.activeByStaker(getAddress(toEthAddress2(address)));
223
- }
224
- async addStake(staked, amount) {
225
- const result = await this.contract.addStake(getAddress(toEthAddress2(staked)), amount);
226
- await result.wait();
227
- return true;
228
- }
229
- async forkedAtBlockNumber() {
230
- return await this.contract.forkedAtBlockNumber();
231
- }
232
- async forkedAtHash() {
233
- return await this.contract.forkedAtHash();
234
- }
235
- async forkedChainId() {
236
- return toAddress(await this.contract.forkedChainId());
237
- }
238
- async minWithdrawalBlocks() {
239
- return await this.contract.minWithdrawalBlocks();
240
- }
241
- async pending() {
242
- return await this.contract.pending();
243
- }
244
- async pendingByStaker(staker) {
245
- return await this.contract.pendingByStaker(getAddress(toEthAddress2(staker)));
246
- }
247
- async removeStake(slot) {
248
- const result = await this.contract.removeStake(slot);
249
- await result.wait();
250
- return true;
251
- }
252
- rewardForBlock(_block) {
253
- throw new Error("Method not implemented.");
254
- }
255
- async rewardsContract() {
256
- return await this.contract.rewardsContract();
257
- }
258
- async stakingTokenAddress() {
259
- return await this.contract.stakingTokenAddress();
260
- }
261
- async withdrawStake(slot) {
262
- const result = await this.contract.withdrawStake(slot);
263
- await result.wait();
264
- return true;
265
- }
266
- async withdrawn() {
267
- return await this.contract.withdrawn();
268
- }
269
- async withdrawnByStaker(staker) {
270
- return await this.contract.withdrawnByStaker(getAddress(staker));
271
- }
272
- };
273
-
274
- // src/ChainService/Memory/Memory.ts
275
- import { toAddress as toAddress2, ZERO_ADDRESS } from "@xylabs/sdk-js";
276
- import { AbstractCreatableProvider as AbstractCreatableProvider2, ChainContractViewerMoniker as ChainContractViewerMoniker2 } from "@xyo-network/xl1-sdk";
277
- var MemoryChainViewer = class _MemoryChainViewer extends AbstractCreatableProvider2 {
278
- static {
279
- __name(this, "MemoryChainViewer");
280
- }
281
- static defaultMoniker = ChainContractViewerMoniker2;
282
- static monikers = [
283
- ChainContractViewerMoniker2
284
- ];
285
- moniker = _MemoryChainViewer.defaultMoniker;
286
- _chainId;
287
- _simulatedStake = 1n;
288
- async active() {
289
- return await Promise.resolve(this._simulatedStake);
290
- }
291
- async activeByStaked(_staked) {
292
- return await Promise.resolve(this._simulatedStake);
293
- }
294
- async activeByStaker(_address) {
295
- return await Promise.resolve(this._simulatedStake);
296
- }
297
- async addStake(_staked, _amount) {
298
- return await Promise.resolve(true);
299
- }
300
- createHandler() {
301
- const { minStake = 1 } = this.params.context.config.producer ?? {};
302
- this._simulatedStake = BigInt(minStake);
303
- }
304
- async forkedAtBlockNumber() {
305
- return await Promise.resolve(0n);
306
- }
307
- async forkedAtHash() {
308
- return await Promise.resolve(0n);
309
- }
310
- async forkedChainId() {
311
- return await Promise.resolve(ZERO_ADDRESS);
312
- }
313
- async minWithdrawalBlocks() {
314
- return await Promise.resolve(1n);
315
- }
316
- async pending() {
317
- return await Promise.resolve(0n);
318
- }
319
- async pendingByStaker(_staker) {
320
- return await Promise.resolve(0n);
321
- }
322
- async removeStake(_slot) {
323
- return await Promise.resolve(true);
324
- }
325
- rewardForBlock(_block) {
326
- throw new Error("Method not implemented.");
327
- }
328
- async rewardsContract() {
329
- return await Promise.resolve("");
330
- }
331
- async stakingTokenAddress() {
332
- return await Promise.resolve("");
333
- }
334
- async withdrawStake(_slot) {
335
- return await Promise.resolve(true);
336
- }
337
- async withdrawn() {
338
- return await Promise.resolve(0n);
339
- }
340
- async withdrawnByStaker(_staker) {
341
- return await Promise.resolve(0n);
342
- }
343
- async startHandler() {
344
- await super.startHandler();
345
- this._chainId = this.params.chainId ?? toAddress2(1n);
346
- }
347
- };
348
-
349
201
  // src/ChainValidator/XyoValidator.ts
350
- import { AbstractCreatableProvider as AbstractCreatableProvider3, BlockViewerMoniker as BlockViewerMoniker2 } from "@xyo-network/xl1-sdk";
351
- var XyoValidator = class extends AbstractCreatableProvider3 {
202
+ import { AbstractCreatableProvider, BlockViewerMoniker as BlockViewerMoniker2 } from "@xyo-network/xl1-sdk";
203
+ var XyoValidator = class extends AbstractCreatableProvider {
352
204
  static {
353
205
  __name(this, "XyoValidator");
354
206
  }
@@ -392,7 +244,7 @@ var XyoValidator = class extends AbstractCreatableProvider3 {
392
244
  // src/Election/BaseElectionService.ts
393
245
  import { assertEx as assertEx3 } from "@xylabs/sdk-js";
394
246
  import { hexToLast4BytesInt, shuffleWithSeed } from "@xyo-network/chain-utils";
395
- import { AbstractCreatableProvider as AbstractCreatableProvider4, creatableProvider } from "@xyo-network/xl1-sdk";
247
+ import { AbstractCreatableProvider as AbstractCreatableProvider2, creatableProvider } from "@xyo-network/xl1-sdk";
396
248
  function _ts_decorate2(decorators, target, key, desc) {
397
249
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
398
250
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -400,7 +252,7 @@ function _ts_decorate2(decorators, target, key, desc) {
400
252
  return c > 3 && r && Object.defineProperty(target, key, r), r;
401
253
  }
402
254
  __name(_ts_decorate2, "_ts_decorate");
403
- var BaseElectionService = class _BaseElectionService extends AbstractCreatableProvider4 {
255
+ var BaseElectionService = class _BaseElectionService extends AbstractCreatableProvider2 {
404
256
  static {
405
257
  __name(this, "BaseElectionService");
406
258
  }
@@ -425,6 +277,8 @@ var BaseElectionService = class _BaseElectionService extends AbstractCreatablePr
425
277
  const candidates = await this.stakeIntentService.getDeclaredCandidatesForBlock(nextBlock, "producer");
426
278
  const previousBlockHash = current._hash;
427
279
  return this.generateCreatorCommittee(candidates, previousBlockHash);
280
+ }, {
281
+ timeBudgetLimit: 200
428
282
  });
429
283
  }
430
284
  generateCreatorCommittee(candidates, previousBlockHash, maxSize = 3) {
@@ -438,13 +292,6 @@ BaseElectionService = _ts_decorate2([
438
292
  creatableProvider()
439
293
  ], BaseElectionService);
440
294
 
441
- // src/implementation/chain/index.ts
442
- import { assertEx as assertEx9 } from "@xylabs/sdk-js";
443
-
444
- // src/implementation/chain/evm.ts
445
- import { asAddress, assertEx as assertEx8, isDefined as isDefined5, ZERO_ADDRESS as ZERO_ADDRESS2 } from "@xylabs/sdk-js";
446
- import { Wallet } from "ethers/wallet";
447
-
448
295
  // src/implementation/evm/initEvmProvider.ts
449
296
  import { assertEx as assertEx7 } from "@xylabs/sdk-js";
450
297
 
@@ -525,66 +372,6 @@ var canUseEvmProvider = /* @__PURE__ */ __name(({ config }) => {
525
372
  return canUseInfuraProvider(config) || canUseJsonRpcProvider(config);
526
373
  }, "canUseEvmProvider");
527
374
 
528
- // src/implementation/chain/evm.ts
529
- var chainStakeServiceSingleton;
530
- var canUseEvmContractChainService = /* @__PURE__ */ __name((config) => {
531
- const { id } = config.chain;
532
- return isDefined5(id) && id !== ZERO_ADDRESS2 && canUseEvmProvider({
533
- config
534
- });
535
- }, "canUseEvmContractChainService");
536
- var initEvmContractChainService = /* @__PURE__ */ __name(async ({ account, context: { config }, traceProvider, meterProvider, logger }) => {
537
- if (chainStakeServiceSingleton) return chainStakeServiceSingleton;
538
- const emvStakingContractAddress = assertEx8(config.chain.id, () => "config.chain.id is required");
539
- const id = assertEx8(asAddress(emvStakingContractAddress), () => "config.chain.id is not a valid address");
540
- const provider2 = assertEx8(await initEvmProvider({
541
- config
542
- }));
543
- const privateKey = assertEx8(account.private?.hex, () => "Account does not have a private key");
544
- const runner = new Wallet(privateKey, provider2);
545
- chainStakeServiceSingleton = EvmChainViewer.create({
546
- id,
547
- runner,
548
- traceProvider,
549
- meterProvider,
550
- logger
551
- });
552
- const result = await chainStakeServiceSingleton;
553
- await result.start();
554
- return result;
555
- }, "initEvmContractChainService");
556
-
557
- // src/implementation/chain/index.ts
558
- var chainStakeServiceSingleton2;
559
- var initChainService = /* @__PURE__ */ __name(({ account, context }) => {
560
- const { logger } = context;
561
- logger?.log("ChainService: Initializing...");
562
- const result = init({
563
- context,
564
- name: "ChainService",
565
- account
566
- });
567
- logger?.log("ChainService: Initialized");
568
- return result;
569
- }, "initChainService");
570
- var initMemoryChainService = /* @__PURE__ */ __name(async ({ context }) => {
571
- const result = await MemoryChainViewer.create({
572
- context,
573
- name: "MemoryChainService"
574
- });
575
- assertEx9(await result.start(), () => "Failed to start MemoryChainService");
576
- return result;
577
- }, "initMemoryChainService");
578
- var init = /* @__PURE__ */ __name(async (params) => {
579
- if (chainStakeServiceSingleton2) return chainStakeServiceSingleton2;
580
- const { config } = params.context;
581
- chainStakeServiceSingleton2 = canUseEvmContractChainService(config) ? await initEvmContractChainService({
582
- ...params,
583
- name: "ChainStakeService"
584
- }) : await initMemoryChainService(params);
585
- return chainStakeServiceSingleton2;
586
- }, "init");
587
-
588
375
  // src/implementation/head/createBootstrapHead.ts
589
376
  import { buildNextBlock, createGenesisBlock } from "@xyo-network/chain-protocol";
590
377
  import { createDeclarationIntent } from "@xyo-network/xl1-sdk";
@@ -603,7 +390,7 @@ var createBootstrapHead = /* @__PURE__ */ __name(async (account, chainId, genesi
603
390
  }, "createBootstrapHead");
604
391
 
605
392
  // src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts
606
- import { AbstractCreatableProvider as AbstractCreatableProvider5, creatableProvider as creatableProvider2, NetworkStakeStepRewardViewerMoniker } from "@xyo-network/xl1-sdk";
393
+ import { AbstractCreatableProvider as AbstractCreatableProvider3, creatableProvider as creatableProvider2, NetworkStakeStepRewardViewerMoniker } from "@xyo-network/xl1-sdk";
607
394
  function _ts_decorate3(decorators, target, key, desc) {
608
395
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
609
396
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -611,7 +398,7 @@ function _ts_decorate3(decorators, target, key, desc) {
611
398
  return c > 3 && r && Object.defineProperty(target, key, r), r;
612
399
  }
613
400
  __name(_ts_decorate3, "_ts_decorate");
614
- var BaseNetworkStakeStepRewardService = class _BaseNetworkStakeStepRewardService extends AbstractCreatableProvider5 {
401
+ var BaseNetworkStakeStepRewardService = class _BaseNetworkStakeStepRewardService extends AbstractCreatableProvider3 {
615
402
  static {
616
403
  __name(this, "BaseNetworkStakeStepRewardService");
617
404
  }
@@ -682,9 +469,9 @@ BaseNetworkStakeStepRewardService = _ts_decorate3([
682
469
 
683
470
  // src/PendingTransactions/BasePendingTransactions.ts
684
471
  import { ValueType } from "@opentelemetry/api";
685
- import { assertEx as assertEx10, exists, filterAs, filterAsync, forget, isDefined as isDefined6, isUndefined } from "@xylabs/sdk-js";
472
+ import { assertEx as assertEx8, exists, filterAs, filterAsync, forget, isDefined as isDefined5, isUndefined } from "@xylabs/sdk-js";
686
473
  import { MemoryArchivist } from "@xyo-network/archivist-memory";
687
- import { AbstractCreatableProvider as AbstractCreatableProvider6, asBlockBoundWitnessWithHashMeta, asXL1BlockNumber, creatableProvider as creatableProvider3, findMostRecentBlock as findMostRecentBlock2, isTransactionBoundWitnessWithStorageMeta, MempoolViewerMoniker, TransactionJsonSchemaValidator, validateTransaction } from "@xyo-network/xl1-sdk";
474
+ import { AbstractCreatableProvider as AbstractCreatableProvider4, asBlockBoundWitnessWithHashMeta, asXL1BlockNumber, creatableProvider as creatableProvider3, findMostRecentBlock as findMostRecentBlock2, isTransactionBoundWitnessWithStorageMeta, MempoolViewerMoniker, TransactionJsonSchemaValidator, validateTransaction } from "@xyo-network/xl1-sdk";
688
475
  import { Mutex } from "async-mutex";
689
476
 
690
477
  // src/PendingTransactions/bundledPayloadToHydratedTransaction.ts
@@ -727,7 +514,7 @@ function _ts_decorate4(decorators, target, key, desc) {
727
514
  return c > 3 && r && Object.defineProperty(target, key, r), r;
728
515
  }
729
516
  __name(_ts_decorate4, "_ts_decorate");
730
- var BasePendingTransactionsService = class _BasePendingTransactionsService extends AbstractCreatableProvider6 {
517
+ var BasePendingTransactionsService = class _BasePendingTransactionsService extends AbstractCreatableProvider4 {
731
518
  static {
732
519
  __name(this, "BasePendingTransactionsService");
733
520
  }
@@ -780,20 +567,20 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
780
567
  return this.params.additionalPendingTransactionValidators ?? [];
781
568
  }
782
569
  get chainArchivist() {
783
- return assertEx10(this.params.chainArchivist, () => "No completed blocks with data archivist");
570
+ return assertEx8(this.params.chainArchivist, () => "No completed blocks with data archivist");
784
571
  }
785
572
  get pendingBundledTransactionsArchivist() {
786
- return assertEx10(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
573
+ return assertEx8(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
787
574
  }
788
575
  get pendingBundledTransactionsLocalArchivist() {
789
- return assertEx10(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
576
+ return assertEx8(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
790
577
  }
791
578
  get pendingTransactionsCount() {
792
579
  forget(this.countPendingTransactions());
793
580
  return this._pendingTransactionsCount;
794
581
  }
795
582
  get rejectedTransactionsArchivist() {
796
- return assertEx10(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
583
+ return assertEx8(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
797
584
  }
798
585
  async createHandler() {
799
586
  await super.createHandler();
@@ -868,12 +655,14 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
868
655
  }
869
656
  return foundPendingTransactions;
870
657
  }, _BasePendingTransactionsService.MutexPriority.ReadTransactions);
658
+ }, {
659
+ timeBudgetLimit: 100
871
660
  });
872
661
  }
873
662
  async cleanupWorker() {
874
663
  return await this._updateCuratedPendingTransactionsArchivistMutex.runExclusive(async () => {
875
664
  const lastHead = await findMostRecentBlock2(this.chainArchivist);
876
- if (isDefined6(lastHead)) await this.pruneCuratedPendingTransactionsArchivist(lastHead._hash);
665
+ if (isDefined5(lastHead)) await this.pruneCuratedPendingTransactionsArchivist(lastHead._hash);
877
666
  }, _BasePendingTransactionsService.MutexPriority.PurgeTransactions);
878
667
  }
879
668
  async countPendingTransactions() {
@@ -914,6 +703,8 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
914
703
  await this.pendingBundledTransactionsLocalArchivist.insert(bundledTransactions);
915
704
  }
916
705
  }, _BasePendingTransactionsService.MutexPriority.InsertNewTransactions);
706
+ }, {
707
+ timeBudgetLimit: 200
917
708
  });
918
709
  }
919
710
  /**
@@ -935,7 +726,7 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
935
726
  let [lastHead] = filterAs(await this.chainArchivist.get([
936
727
  head
937
728
  ]), (x) => asBlockBoundWitnessWithHashMeta(x));
938
- while (isDefined6(lastHead)) {
729
+ while (isDefined5(lastHead)) {
939
730
  const pendingBundledTransactions = await this.pendingBundledTransactionsLocalArchivist.next({
940
731
  limit: 100,
941
732
  order: "asc",
@@ -966,6 +757,8 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
966
757
  this.logger?.log(payload._hash);
967
758
  }
968
759
  }
760
+ }, {
761
+ timeBudgetLimit: 200
969
762
  });
970
763
  }
971
764
  };
@@ -976,8 +769,7 @@ var isTransactionExpired = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.ex
976
769
  var isTransactionActive = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.nbf <= block && txBw.exp >= block, "isTransactionActive");
977
770
 
978
771
  // src/Schemas/BaseSchemasService.ts
979
- import { spanRootAsync } from "@xylabs/sdk-js";
980
- import { AbstractCreatableProvider as AbstractCreatableProvider7, creatableProvider as creatableProvider4, schemasSummary } from "@xyo-network/xl1-sdk";
772
+ import { AbstractCreatableProvider as AbstractCreatableProvider5, creatableProvider as creatableProvider4, schemasSummary } from "@xyo-network/xl1-sdk";
981
773
  function _ts_decorate5(decorators, target, key, desc) {
982
774
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
983
775
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -985,7 +777,7 @@ function _ts_decorate5(decorators, target, key, desc) {
985
777
  return c > 3 && r && Object.defineProperty(target, key, r), r;
986
778
  }
987
779
  __name(_ts_decorate5, "_ts_decorate");
988
- var BaseSchemasService = class _BaseSchemasService extends AbstractCreatableProvider7 {
780
+ var BaseSchemasService = class _BaseSchemasService extends AbstractCreatableProvider5 {
989
781
  static {
990
782
  __name(this, "BaseSchemasService");
991
783
  }
@@ -1001,7 +793,7 @@ var BaseSchemasService = class _BaseSchemasService extends AbstractCreatableProv
1001
793
  ]))[schema] ?? 0;
1002
794
  }
1003
795
  async schemas(head, schemas) {
1004
- return await spanRootAsync("transfers", async () => {
796
+ return await this.spanAsync("schemas", async () => {
1005
797
  const [summary] = await schemasSummary(this.params.schemasStepSummaryContext);
1006
798
  const result = {};
1007
799
  for (const schema of schemas) {
@@ -1009,6 +801,8 @@ var BaseSchemasService = class _BaseSchemasService extends AbstractCreatableProv
1009
801
  result[schema] = count;
1010
802
  }
1011
803
  return result;
804
+ }, {
805
+ timeBudgetLimit: 100
1012
806
  });
1013
807
  }
1014
808
  };
@@ -1017,16 +811,16 @@ BaseSchemasService = _ts_decorate5([
1017
811
  ], BaseSchemasService);
1018
812
 
1019
813
  // src/simple/block/runner/SimpleBlockRunner.ts
1020
- import { assertEx as assertEx12, exists as exists2, hexToBigInt, isDefined as isDefined7 } from "@xylabs/sdk-js";
814
+ import { assertEx as assertEx10, exists as exists2, hexToBigInt, isDefined as isDefined6 } from "@xylabs/sdk-js";
1021
815
  import { MemoryArchivist as MemoryArchivist2 } from "@xyo-network/archivist-memory";
1022
816
  import { FixedPercentageBlockRewardDiviner, FixedPercentageBlockRewardDivinerConfigSchema } from "@xyo-network/chain-modules";
1023
817
  import { buildNextBlock as buildNextBlock2 } from "@xyo-network/chain-protocol";
1024
818
  import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
1025
- import { AbstractCreatableProvider as AbstractCreatableProvider8, AccountBalanceViewerMoniker, asBlockBoundWitness, AttoXL1, BlockNumberSchema, BlockRewardViewerMoniker as BlockRewardViewerMoniker2, BlockRunnerMoniker, BlockValidationViewerMoniker, creatableProvider as creatableProvider5, createDeclarationIntent as createDeclarationIntent2, defaultRewardRatio, MempoolRunnerMoniker, MempoolViewerMoniker as MempoolViewerMoniker2, TimeSyncViewerMoniker, XYO_STEP_REWARD_ADDRESS } from "@xyo-network/xl1-sdk";
819
+ import { AbstractCreatableProvider as AbstractCreatableProvider6, AccountBalanceViewerMoniker, asBlockBoundWitness, AttoXL1, BlockNumberSchema, BlockRewardViewerMoniker as BlockRewardViewerMoniker2, BlockRunnerMoniker, BlockValidationViewerMoniker, creatableProvider as creatableProvider5, createDeclarationIntent as createDeclarationIntent2, defaultRewardRatio, MempoolRunnerMoniker, MempoolViewerMoniker as MempoolViewerMoniker2, TimeSyncViewerMoniker, XYO_STEP_REWARD_ADDRESS } from "@xyo-network/xl1-sdk";
1026
820
 
1027
821
  // src/simple/block/runner/generateTransactionFeeTransfers.ts
1028
822
  import { hexFromBigInt } from "@xylabs/sdk-js";
1029
- import { assertEx as assertEx11 } from "@xylabs/sdk-js";
823
+ import { assertEx as assertEx9 } from "@xylabs/sdk-js";
1030
824
  import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
1031
825
  import { HydratedTransactionWrapper, transactionRequiredGas, TransferSchema, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-sdk";
1032
826
  async function generateTransactionFeeTransfers(address, transactions) {
@@ -1059,7 +853,7 @@ async function generateTransactionFeeTransfers(address, transactions) {
1059
853
  return payload;
1060
854
  });
1061
855
  for (const [from, amount] of Object.entries(txGasCosts)) {
1062
- const fromPayload = assertEx11(payloads.find((p) => p.from === from), () => "from payload not found");
856
+ const fromPayload = assertEx9(payloads.find((p) => p.from === from), () => "from payload not found");
1063
857
  fromPayload.transfers[address] = hexFromBigInt(amount);
1064
858
  }
1065
859
  return payloads;
@@ -1077,7 +871,7 @@ __name(_ts_decorate6, "_ts_decorate");
1077
871
  var DEFAULT_BLOCK_SIZE = 10;
1078
872
  var XYO_PRODUCER_REDECLARATION_DURATION = 1e4;
1079
873
  var XYO_PRODUCER_REDECLARATION_WINDOW = 500;
1080
- var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvider8 {
874
+ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvider6 {
1081
875
  static {
1082
876
  __name(this, "SimpleBlockRunner");
1083
877
  }
@@ -1102,6 +896,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
1102
896
  _address;
1103
897
  _blockRewardViewer;
1104
898
  _blockValidationViewer;
899
+ _chainId;
1105
900
  _mempoolRunner;
1106
901
  _mempoolViewer;
1107
902
  _rewardAddress;
@@ -1141,6 +936,9 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
1141
936
  get blockValidationViewer() {
1142
937
  return this._blockValidationViewer;
1143
938
  }
939
+ get chainId() {
940
+ return this._chainId;
941
+ }
1144
942
  // protected get electionService() {
1145
943
  // return assertEx(this.params.electionService, () => 'electionService is required')
1146
944
  // }
@@ -1170,11 +968,12 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
1170
968
  // }
1171
969
  async createHandler() {
1172
970
  this._rejectedTransactionsArchivist = this.params.rejectedTransactionsArchivist ?? await MemoryArchivist2.create();
1173
- this._account = assertEx12(this.params.account, () => "Account is required");
971
+ this._account = assertEx10(this.params.account, () => "Account is required");
1174
972
  this._address = this.account.address;
1175
973
  this._accountBalanceViewer = await this.locateAndCreate(AccountBalanceViewerMoniker);
1176
974
  this._blockRewardViewer = await this.locateAndCreate(BlockRewardViewerMoniker2);
1177
975
  this._blockValidationViewer = await this.locator.getInstance(BlockValidationViewerMoniker);
976
+ this._chainId = this.context.config.chain.id;
1178
977
  this._mempoolRunner = await this.locateAndCreate(MempoolRunnerMoniker);
1179
978
  this._mempoolViewer = await this.locateAndCreate(MempoolViewerMoniker2);
1180
979
  this._rewardAddress = this.params.rewardAddress ?? this.context.config.producer.rewardAddress;
@@ -1185,7 +984,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
1185
984
  }
1186
985
  async produceNextBlock(head, force) {
1187
986
  const result = await this.proposeNextValidBlock(head);
1188
- return force ? assertEx12(result, () => "Failed to produce next block") : result;
987
+ return force ? assertEx10(result, () => "Failed to produce next block") : result;
1189
988
  }
1190
989
  async getBlockRewardTransfers(block) {
1191
990
  if (!this._blockRewardDiviner) {
@@ -1222,7 +1021,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
1222
1021
  async proposeNextValidBlock(head, validateBalances = false, force = false) {
1223
1022
  return await this.spanAsync("proposeNextValidBlock", async () => {
1224
1023
  try {
1225
- const { block: previousBlock } = assertEx12(asBlockBoundWitness(head), () => "Invalid head block");
1024
+ const { block: previousBlock } = assertEx10(asBlockBoundWitness(head), () => "Invalid head block");
1226
1025
  const nextBlock = previousBlock + 1;
1227
1026
  const nextBlockTransactions = await this.mempoolViewer.pendingTransactions({
1228
1027
  limit: _SimpleBlockRunner.DefaultBlockSize
@@ -1250,11 +1049,13 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
1250
1049
  ]))[XYO_STEP_REWARD_ADDRESS];
1251
1050
  const block = await buildNextBlock2(head, fundedNextBlockTransactions, blockPayloads, [
1252
1051
  this.account
1253
- ], XYO_STEP_REWARD_ADDRESS, stepRewardPoolBalance);
1052
+ ], XYO_STEP_REWARD_ADDRESS, stepRewardPoolBalance, void 0, this.chainId);
1254
1053
  this.logger?.info(`Built block ${block[0].block} in ${Date.now() - startBuild}ms with ${block[1].length} payloads`);
1255
1054
  this.logger?.info(`Validating block ${block[0].block} with ${block[1].length} payloads`);
1256
1055
  const startValidate = Date.now();
1257
- const errors = await this.blockValidationViewer.validateBlock(block);
1056
+ const errors = await this.blockValidationViewer.validateBlock(block, {
1057
+ head: head._hash
1058
+ });
1258
1059
  this.logger?.info(`Validated block ${block[0].block} in ${Date.now() - startValidate}ms with ${block[1].length} payloads`);
1259
1060
  if (errors.length > 0) {
1260
1061
  this.logger?.warn(`Validation of produced block failed: ${errors.at(0)?.message}`);
@@ -1270,6 +1071,8 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
1270
1071
  this.logger?.error(`Error proposing next valid block: ${error.message}`);
1271
1072
  throw error;
1272
1073
  }
1074
+ }, {
1075
+ timeBudgetLimit: 200
1273
1076
  });
1274
1077
  }
1275
1078
  // remove unfunded transactions and block transfers
@@ -1307,7 +1110,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
1307
1110
  */
1308
1111
  heartbeatRequired(head) {
1309
1112
  const epoch = head.$epoch;
1310
- if (isDefined7(epoch)) {
1113
+ if (isDefined6(epoch)) {
1311
1114
  const { heartbeatInterval } = this.params.context.config.producer;
1312
1115
  if (Date.now() - epoch > heartbeatInterval) {
1313
1116
  return true;
@@ -1347,11 +1150,11 @@ var mapBoundWitnessToStakeIntentHashes = /* @__PURE__ */ __name((bw) => {
1347
1150
  }, "mapBoundWitnessToStakeIntentHashes");
1348
1151
 
1349
1152
  // src/StakeIntent/XyoStakeIntentService.ts
1350
- import { asAddress as asAddress2, assertEx as assertEx13, filterAs as filterAs3, isUndefined as isUndefined2 } from "@xylabs/sdk-js";
1153
+ import { asAddress, assertEx as assertEx11, filterAs as filterAs3, isUndefined as isUndefined2 } from "@xylabs/sdk-js";
1351
1154
  import { analyzeChain, ChainStakeIntentAnalyzer, isChainSummaryStakeIntent } from "@xyo-network/chain-analyze";
1352
1155
  import { DEFAULT_FIND_FIRST_MATCHING_NEXT_OPTIONS, findFirstMatching, IntervalMap } from "@xyo-network/chain-utils";
1353
1156
  import { PayloadBuilder as PayloadBuilder6 } from "@xyo-network/payload-builder";
1354
- import { AbstractCreatableProvider as AbstractCreatableProvider9, asChainIndexingServiceStateWithStorageMeta, BlockViewerMoniker as BlockViewerMoniker3, ChainIndexingServiceStateSchema, ChainStakeViewerMoniker, creatableProvider as creatableProvider6, isChainIndexingServiceState, readPayloadMapFromStore, timeBudget } from "@xyo-network/xl1-sdk";
1157
+ import { AbstractCreatableProvider as AbstractCreatableProvider7, asChainIndexingServiceStateWithStorageMeta, BlockViewerMoniker as BlockViewerMoniker3, ChainIndexingServiceStateSchema, ChainStakeViewerMoniker, creatableProvider as creatableProvider6, isChainIndexingServiceState, readPayloadMapFromStore, timeBudget } from "@xyo-network/xl1-sdk";
1355
1158
  import { asBlockBoundWitness as asBlockBoundWitness2, asBlockBoundWitnessWithStorageMeta, asChainStakeIntent as asChainStakeIntent2 } from "@xyo-network/xl1-sdk";
1356
1159
  import { Mutex as Mutex2 } from "async-mutex";
1357
1160
  import { LRUCache } from "lru-cache";
@@ -1365,7 +1168,7 @@ __name(_ts_decorate7, "_ts_decorate");
1365
1168
  var ACTIVE_STAKE_TTL = 1e3 * 60 * 60 * 2;
1366
1169
  var NO_ACTIVE_STAKE_TTL = 1e3 * 2;
1367
1170
  var STAKE_CACHE_MAX_ENTRIES = 1e4;
1368
- var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatableProvider9 {
1171
+ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatableProvider7 {
1369
1172
  static {
1370
1173
  __name(this, "XyoStakeIntentService");
1371
1174
  }
@@ -1395,19 +1198,19 @@ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatab
1395
1198
  return this._blockViewer;
1396
1199
  }
1397
1200
  get chainArchivist() {
1398
- return assertEx13(this.params.chainArchivist, () => "chainArchivist not set");
1201
+ return assertEx11(this.params.chainArchivist, () => "chainArchivist not set");
1399
1202
  }
1400
1203
  get chainStakeViewer() {
1401
1204
  return this._chainStakeViewer;
1402
1205
  }
1403
1206
  get stakeIntentStateArchivist() {
1404
- return assertEx13(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
1207
+ return assertEx11(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
1405
1208
  }
1406
1209
  static async paramsHandler(params) {
1407
1210
  return {
1408
1211
  ...await super.paramsHandler(params),
1409
- chainArchivist: assertEx13(params?.chainArchivist, () => "chainArchivist is required"),
1410
- stakeIntentStateArchivist: assertEx13(params?.stakeIntentStateArchivist, () => "stakeIntentStateArchivist is required")
1212
+ chainArchivist: assertEx11(params?.chainArchivist, () => "chainArchivist is required"),
1213
+ stakeIntentStateArchivist: assertEx11(params?.stakeIntentStateArchivist, () => "stakeIntentStateArchivist is required")
1411
1214
  };
1412
1215
  }
1413
1216
  async createHandler() {
@@ -1419,13 +1222,13 @@ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatab
1419
1222
  }
1420
1223
  async getDeclaredCandidateRanges(address, intent) {
1421
1224
  await Promise.resolve();
1422
- assertEx13(intent === "producer", () => `Support not yet added for intent ${intent}`);
1225
+ assertEx11(intent === "producer", () => `Support not yet added for intent ${intent}`);
1423
1226
  const results = this._producers.get(address);
1424
1227
  return results ?? [];
1425
1228
  }
1426
1229
  async getDeclaredCandidatesForBlock(block, intent) {
1427
1230
  return await this.spanAsync("getDeclaredCandidatesForBlock", async () => {
1428
- assertEx13(intent === "producer", () => `Support not yet added for intent ${intent}`);
1231
+ assertEx11(intent === "producer", () => `Support not yet added for intent ${intent}`);
1429
1232
  const results = this._producers.findAllContaining(block);
1430
1233
  const candidates = [
1431
1234
  ...results
@@ -1433,6 +1236,8 @@ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatab
1433
1236
  const requiredMinimumStake = this.getRequiredMinimumStakeForIntent(intent);
1434
1237
  const validCandidates = await this.filterToValidStake(candidates, this.chainStakeViewer, requiredMinimumStake);
1435
1238
  return validCandidates;
1239
+ }, {
1240
+ timeBudgetLimit: 200
1436
1241
  });
1437
1242
  }
1438
1243
  getRequiredMinimumStakeForIntent(intent) {
@@ -1491,7 +1296,7 @@ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatab
1491
1296
  }
1492
1297
  async recoverState(current) {
1493
1298
  return await timeBudget("XyoStakeIntentService.recoverState", console, async () => {
1494
- const currentBlock = assertEx13(asBlockBoundWitness2((await this.chainArchivist.get([
1299
+ const currentBlock = assertEx11(asBlockBoundWitness2((await this.chainArchivist.get([
1495
1300
  current
1496
1301
  ]))?.[0]), () => `Block ${current} not found`);
1497
1302
  const currentBlockNum = currentBlock.block;
@@ -1533,29 +1338,29 @@ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatab
1533
1338
  return await this.spanAsync("updateIndex", async () => {
1534
1339
  const currentHead = (await this.blockViewer.currentBlock())[0];
1535
1340
  if (isUndefined2(currentHead)) return;
1536
- return await timeBudget("XyoStakeIntentService.updateIndex", console, async () => {
1537
- const currentHeadHash = currentHead._hash;
1538
- const chainMap = readPayloadMapFromStore(this.chainArchivist);
1539
- const result = await analyzeChain({
1540
- chainMap
1541
- }, [
1542
- new ChainStakeIntentAnalyzer("producer")
1543
- ], currentHeadHash, this._lastIndexedBlockHash);
1544
- const signedDeclarations = filterAs3(result.find(isChainSummaryStakeIntent)?.intents ?? [], asChainStakeIntent2);
1545
- if (currentHead.block === void 0) return;
1546
- const currentHeadBlockNum = currentHead.block;
1547
- if (displayProgress) this.logger?.log(`Updating index through 0x${currentHeadBlockNum}`);
1548
- for (const signedDeclaration of signedDeclarations) {
1549
- const { exp, nbf } = signedDeclaration;
1550
- const start = nbf;
1551
- const stop = exp;
1552
- const address = asAddress2(signedDeclaration?.from);
1553
- if (start !== void 0 && stop !== void 0 && address !== void 0) {
1554
- this._producers.insert(address, start, stop);
1555
- }
1341
+ const currentHeadHash = currentHead._hash;
1342
+ const chainMap = readPayloadMapFromStore(this.chainArchivist);
1343
+ const result = await analyzeChain({
1344
+ chainMap
1345
+ }, [
1346
+ new ChainStakeIntentAnalyzer("producer")
1347
+ ], currentHeadHash, this._lastIndexedBlockHash);
1348
+ const signedDeclarations = filterAs3(result.find(isChainSummaryStakeIntent)?.intents ?? [], asChainStakeIntent2);
1349
+ if (currentHead.block === void 0) return;
1350
+ const currentHeadBlockNum = currentHead.block;
1351
+ if (displayProgress) this.logger?.log(`Updating index through 0x${currentHeadBlockNum}`);
1352
+ for (const signedDeclaration of signedDeclarations) {
1353
+ const { exp, nbf } = signedDeclaration;
1354
+ const start = nbf;
1355
+ const stop = exp;
1356
+ const address = asAddress(signedDeclaration?.from);
1357
+ if (start !== void 0 && stop !== void 0 && address !== void 0) {
1358
+ this._producers.insert(address, start, stop);
1556
1359
  }
1557
- this._lastIndexedBlockHash = currentHeadHash;
1558
- }, 2e3, true);
1360
+ }
1361
+ this._lastIndexedBlockHash = currentHeadHash;
1362
+ }, {
1363
+ timeBudgetLimit: 1e3
1559
1364
  });
1560
1365
  });
1561
1366
  }
@@ -1565,8 +1370,8 @@ XyoStakeIntentService = _ts_decorate7([
1565
1370
  ], XyoStakeIntentService);
1566
1371
 
1567
1372
  // src/StepStake/BaseStepStakeService.ts
1568
- import { AbstractCreatableProvider as AbstractCreatableProvider10, StepStakeViewerMoniker } from "@xyo-network/xl1-sdk";
1569
- var AbstractStepStakeService = class _AbstractStepStakeService extends AbstractCreatableProvider10 {
1373
+ import { AbstractCreatableProvider as AbstractCreatableProvider8, StepStakeViewerMoniker } from "@xyo-network/xl1-sdk";
1374
+ var AbstractStepStakeService = class _AbstractStepStakeService extends AbstractCreatableProvider8 {
1570
1375
  static {
1571
1376
  __name(this, "AbstractStepStakeService");
1572
1377
  }
@@ -1590,8 +1395,6 @@ export {
1590
1395
  BaseSchemasService,
1591
1396
  DEFAULT_BLOCK_SIZE,
1592
1397
  EvmBlockRewardViewer,
1593
- EvmChainViewer,
1594
- MemoryChainViewer,
1595
1398
  SimpleBlockRunner,
1596
1399
  XYO_PRODUCER_REDECLARATION_DURATION,
1597
1400
  XYO_PRODUCER_REDECLARATION_WINDOW,
@@ -1602,8 +1405,6 @@ export {
1602
1405
  canUseEvmProvider,
1603
1406
  createBootstrapHead,
1604
1407
  getBlockSignedStakeDeclarations,
1605
- initChainService,
1606
- initEvmProvider,
1607
- initMemoryChainService
1408
+ initEvmProvider
1608
1409
  };
1609
1410
  //# sourceMappingURL=index.mjs.map