@xyo-network/chain-sdk 4.3.0 → 4.3.1

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 (30) hide show
  1. package/dist/browser/modules/ethereum/indexing/RestStakeEventsViewer.d.ts.map +1 -1
  2. package/dist/browser/modules/ethereum/indexing/index.d.ts +1 -3
  3. package/dist/browser/modules/ethereum/indexing/index.d.ts.map +1 -1
  4. package/dist/neutral/ethereum.mjs +30 -68
  5. package/dist/neutral/ethereum.mjs.map +4 -4
  6. package/dist/neutral/modules/ethereum/indexing/RestStakeEventsViewer.d.ts.map +1 -1
  7. package/dist/neutral/modules/ethereum/indexing/index.d.ts +1 -3
  8. package/dist/neutral/modules/ethereum/indexing/index.d.ts.map +1 -1
  9. package/dist/node/modules/ethereum/indexing/RestStakeEventsViewer.d.ts.map +1 -1
  10. package/dist/node/modules/ethereum/indexing/index.d.ts +1 -3
  11. package/dist/node/modules/ethereum/indexing/index.d.ts.map +1 -1
  12. package/package.json +5 -6
  13. package/dist/browser/modules/ethereum/indexing/EvmEventIndexModel.d.ts +0 -107
  14. package/dist/browser/modules/ethereum/indexing/EvmEventIndexModel.d.ts.map +0 -1
  15. package/dist/browser/modules/ethereum/indexing/EvmEventIndexPaths.d.ts +0 -6
  16. package/dist/browser/modules/ethereum/indexing/EvmEventIndexPaths.d.ts.map +0 -1
  17. package/dist/browser/modules/ethereum/indexing/EvmEventIndexPublishRunner.d.ts +0 -9
  18. package/dist/browser/modules/ethereum/indexing/EvmEventIndexPublishRunner.d.ts.map +0 -1
  19. package/dist/neutral/modules/ethereum/indexing/EvmEventIndexModel.d.ts +0 -107
  20. package/dist/neutral/modules/ethereum/indexing/EvmEventIndexModel.d.ts.map +0 -1
  21. package/dist/neutral/modules/ethereum/indexing/EvmEventIndexPaths.d.ts +0 -6
  22. package/dist/neutral/modules/ethereum/indexing/EvmEventIndexPaths.d.ts.map +0 -1
  23. package/dist/neutral/modules/ethereum/indexing/EvmEventIndexPublishRunner.d.ts +0 -9
  24. package/dist/neutral/modules/ethereum/indexing/EvmEventIndexPublishRunner.d.ts.map +0 -1
  25. package/dist/node/modules/ethereum/indexing/EvmEventIndexModel.d.ts +0 -107
  26. package/dist/node/modules/ethereum/indexing/EvmEventIndexModel.d.ts.map +0 -1
  27. package/dist/node/modules/ethereum/indexing/EvmEventIndexPaths.d.ts +0 -6
  28. package/dist/node/modules/ethereum/indexing/EvmEventIndexPaths.d.ts.map +0 -1
  29. package/dist/node/modules/ethereum/indexing/EvmEventIndexPublishRunner.d.ts +0 -9
  30. package/dist/node/modules/ethereum/indexing/EvmEventIndexPublishRunner.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RestStakeEventsViewer.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/RestStakeEventsViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,OAAO,KAAK,EACV,uBAAuB,EAAmB,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAC1G,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAa7B,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E,+DAA+D;IAC/D,OAAO,EAAE,UAAU,CAAA;IACnB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAClC;AAED;;;GAGG;AACH,qBACa,qBAAsB,SAAQ,yBAAyB,CAAC,2BAA2B,CAAE,YAAW,iBAAiB;IAC5H,MAAM,CAAC,QAAQ,CAAC,eAAe,oBAAoB;IACnD,MAAM,CAAC,QAAQ,CAAC,cAAc,sBAA2B;IACzD,MAAM,CAAC,QAAQ,CAAC,YAAY,UAAK;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,wBAA6B;IACrD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAS;IACzC,OAAO,sBAAuC;IAE9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoD;IACtF,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEtC,IAAI,OAAO,IAAI,UAAU,CAExB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,SAAS,KAAK,OAAO,IAAI,OAAO,UAAU,CAAC,KAAK,CAE/C;WAEqB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,2BAA2B,CAAC;;;;;;;;;;;IAmB1E,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlE,WAAW,CAAC,KAAK,SAAS,cAAc,EAC5C,KAAK,GAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAiB,EAClD,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAK/B,OAAO,CAAC,wBAAwB;YAalB,SAAS;YAMT,WAAW;IAUzB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,iBAAiB;YAgBX,IAAI;YAOJ,YAAY;CAmC3B"}
1
+ {"version":3,"file":"RestStakeEventsViewer.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/RestStakeEventsViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,OAAO,KAAK,EACV,uBAAuB,EACN,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EACjF,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EAG1B,MAAM,sBAAsB,CAAA;AAK7B,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E,+DAA+D;IAC/D,OAAO,EAAE,UAAU,CAAA;IACnB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAClC;AAED;;;GAGG;AACH,qBACa,qBAAsB,SAAQ,yBAAyB,CAAC,2BAA2B,CAAE,YAAW,iBAAiB;IAC5H,MAAM,CAAC,QAAQ,CAAC,eAAe,oBAAoB;IACnD,MAAM,CAAC,QAAQ,CAAC,cAAc,sBAA2B;IACzD,MAAM,CAAC,QAAQ,CAAC,YAAY,UAAK;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,wBAA6B;IACrD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAS;IACzC,OAAO,sBAAuC;IAE9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoD;IACtF,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEtC,IAAI,OAAO,IAAI,UAAU,CAExB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,SAAS,KAAK,OAAO,IAAI,OAAO,UAAU,CAAC,KAAK,CAE/C;WAEqB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,2BAA2B,CAAC;;;;;;;;;;;IAmB1E,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlE,WAAW,CAAC,KAAK,SAAS,cAAc,EAC5C,KAAK,GAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAiB,EAClD,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAK/B,OAAO,CAAC,wBAAwB;YAalB,SAAS;YAMT,WAAW;IAUzB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,iBAAiB;YAgBX,IAAI;YAOJ,YAAY;CAmC3B"}
@@ -1,5 +1,3 @@
1
- export * from './EvmEventIndexModel.js';
2
- export * from './EvmEventIndexPaths.js';
3
- export * from './EvmEventIndexPublishRunner.js';
4
1
  export * from './RestStakeEventsViewer.js';
2
+ export { asEvmEventIndexFrame, asEvmEventIndexHead, asEvmEventIndexManifest, type EvmEventIndexFrame, evmEventIndexFramePath, EvmEventIndexFrameZod, type EvmEventIndexHead, evmEventIndexHeadPath, EvmEventIndexHeadZod, type EvmEventIndexLog, EvmEventIndexLogZod, type EvmEventIndexManifest, evmEventIndexManifestPath, EvmEventIndexManifestZod, type EvmEventIndexPublishRunner, type EvmEventIndexPublishRunnerMethods, EvmEventIndexPublishRunnerMoniker, evmEventIndexTailPath, } from '@xyo-network/xl1-sdk';
5
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/index.ts"],"names":[],"mappings":"AAIA,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,iCAAiC,EACjC,qBAAqB,GACtB,MAAM,sBAAsB,CAAA"}
@@ -495,67 +495,6 @@ var getDefaultGasConfig = () => {
495
495
  };
496
496
  };
497
497
 
498
- // src/modules/ethereum/indexing/EvmEventIndexModel.ts
499
- import {
500
- EthAddressZod,
501
- HexRegExMinMaxMixedCaseWithPrefix,
502
- zodAsFactory
503
- } from "@ariestools/sdk";
504
- import { z } from "zod/mini";
505
- var EvmHashZod = z.string().check(z.regex(HexRegExMinMaxMixedCaseWithPrefix(32, 32)));
506
- var EvmDataZod = z.string().check(z.regex(/^0x[\dA-Fa-f]*$/));
507
- var EvmEventIndexLogZod = z.object({
508
- address: EthAddressZod,
509
- blockHash: EvmHashZod,
510
- blockNumber: z.number(),
511
- data: EvmDataZod,
512
- index: z.number(),
513
- topics: z.array(EvmHashZod),
514
- transactionHash: EvmHashZod,
515
- transactionIndex: z.number()
516
- });
517
- var EvmEventIndexFrameZod = z.object({
518
- fromBlock: z.number(),
519
- logs: z.array(EvmEventIndexLogZod),
520
- toBlock: z.number()
521
- });
522
- var EvmEventIndexManifestZod = z.object({
523
- address: EthAddressZod,
524
- chainId: z.string(),
525
- deploymentBlock: z.number(),
526
- frameSize: z.number(),
527
- layout: z.literal("evm-contract-events-v1")
528
- });
529
- var EvmEventIndexHeadZod = z.object({
530
- address: EthAddressZod,
531
- block: z.number(),
532
- chainId: z.string(),
533
- hash: EvmHashZod
534
- });
535
- var asEvmEventIndexFrame = zodAsFactory(EvmEventIndexFrameZod, "asEvmEventIndexFrame");
536
- var asEvmEventIndexHead = zodAsFactory(EvmEventIndexHeadZod, "asEvmEventIndexHead");
537
- var asEvmEventIndexManifest = zodAsFactory(EvmEventIndexManifestZod, "asEvmEventIndexManifest");
538
-
539
- // src/modules/ethereum/indexing/EvmEventIndexPaths.ts
540
- function root(address) {
541
- return `evm/events/${address.toLowerCase()}`;
542
- }
543
- function evmEventIndexFramePath(address, frameIndex) {
544
- return `${root(address)}/frames/${frameIndex}.json`;
545
- }
546
- function evmEventIndexHeadPath(address) {
547
- return `${root(address)}/head.json`;
548
- }
549
- function evmEventIndexManifestPath(address) {
550
- return `${root(address)}/manifest.json`;
551
- }
552
- function evmEventIndexTailPath(address) {
553
- return `${root(address)}/tail.json`;
554
- }
555
-
556
- // src/modules/ethereum/indexing/EvmEventIndexPublishRunner.ts
557
- var EvmEventIndexPublishRunnerMoniker = "EvmEventIndexPublishRunner";
558
-
559
498
  // src/modules/ethereum/indexing/RestStakeEventsViewer.ts
560
499
  import {
561
500
  assertEx as assertEx5,
@@ -567,7 +506,14 @@ import { IAddressStakingEvents__factory } from "@xyo-network/typechain";
567
506
  import {
568
507
  AbstractCreatableProvider,
569
508
  asAttoXL1,
509
+ asEvmEventIndexFrame,
510
+ asEvmEventIndexHead,
511
+ asEvmEventIndexManifest,
570
512
  creatableProvider,
513
+ evmEventIndexFramePath,
514
+ evmEventIndexHeadPath,
515
+ evmEventIndexManifestPath,
516
+ evmEventIndexTailPath,
571
517
  resolveRestConnectionEndpoint,
572
518
  StakeEventsViewerMoniker
573
519
  } from "@xyo-network/xl1-sdk";
@@ -705,6 +651,22 @@ RestStakeEventsViewer = __decorateClass([
705
651
  creatableProvider()
706
652
  ], RestStakeEventsViewer);
707
653
 
654
+ // src/modules/ethereum/indexing/index.ts
655
+ import {
656
+ asEvmEventIndexFrame as asEvmEventIndexFrame2,
657
+ asEvmEventIndexHead as asEvmEventIndexHead2,
658
+ asEvmEventIndexManifest as asEvmEventIndexManifest2,
659
+ evmEventIndexFramePath as evmEventIndexFramePath2,
660
+ EvmEventIndexFrameZod,
661
+ evmEventIndexHeadPath as evmEventIndexHeadPath2,
662
+ EvmEventIndexHeadZod,
663
+ EvmEventIndexLogZod,
664
+ evmEventIndexManifestPath as evmEventIndexManifestPath2,
665
+ EvmEventIndexManifestZod,
666
+ EvmEventIndexPublishRunnerMoniker,
667
+ evmEventIndexTailPath as evmEventIndexTailPath2
668
+ } from "@xyo-network/xl1-sdk";
669
+
708
670
  // src/modules/ethereum/providers/AbstractEvmProvider.ts
709
671
  import { AbstractEvmProvider } from "@xyo-network/xl1-sdk";
710
672
 
@@ -808,9 +770,9 @@ export {
808
770
  EvmStakeWithdrawnEventZod,
809
771
  MIN_EVENT_QUERY_BLOCK_CHUNK_SIZE,
810
772
  RestStakeEventsViewer,
811
- asEvmEventIndexFrame,
812
- asEvmEventIndexHead,
813
- asEvmEventIndexManifest,
773
+ asEvmEventIndexFrame2 as asEvmEventIndexFrame,
774
+ asEvmEventIndexHead2 as asEvmEventIndexHead,
775
+ asEvmEventIndexManifest2 as asEvmEventIndexManifest,
814
776
  asEvmStakeAddedEvent,
815
777
  asEvmStakeEvent,
816
778
  asEvmStakeRemovedEvent,
@@ -825,10 +787,10 @@ export {
825
787
  estimateBlockNumberAt,
826
788
  estimateBlockNumberFromHead,
827
789
  ethBlockRate,
828
- evmEventIndexFramePath,
829
- evmEventIndexHeadPath,
830
- evmEventIndexManifestPath,
831
- evmEventIndexTailPath,
790
+ evmEventIndexFramePath2 as evmEventIndexFramePath,
791
+ evmEventIndexHeadPath2 as evmEventIndexHeadPath,
792
+ evmEventIndexManifestPath2 as evmEventIndexManifestPath,
793
+ evmEventIndexTailPath2 as evmEventIndexTailPath,
832
794
  findContractDeploymentBlock,
833
795
  getDefaultGasConfig,
834
796
  getEthBlockRateBlocks,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/modules/ethereum/BaseEthProvider.ts", "../../src/modules/ethereum/block/blockRangeChunks.ts", "../../src/modules/ethereum/block/estimateBlockNumberAt.ts", "../../src/modules/ethereum/block/findContractDeploymentBlock.ts", "../../src/modules/ethereum/block/rate/blockRate.ts", "../../src/modules/ethereum/block/rate/timeRate.ts", "../../src/modules/ethereum/createChain.ts", "../../src/modules/ethereum/createChainContract.ts", "../../src/modules/ethereum/createChainRewardsContract.ts", "../../src/modules/ethereum/nextContractAddress.ts", "../../src/modules/ethereum/drivers/EvmStakeEventsViewer.ts", "../../src/modules/ethereum/drivers/EvmStakeEventZod.ts", "../../src/modules/ethereum/drivers/EvmStakeViewer.ts", "../../src/modules/ethereum/ethereum.ts", "../../src/modules/ethereum/indexing/EvmEventIndexModel.ts", "../../src/modules/ethereum/indexing/EvmEventIndexPaths.ts", "../../src/modules/ethereum/indexing/EvmEventIndexPublishRunner.ts", "../../src/modules/ethereum/indexing/RestStakeEventsViewer.ts", "../../src/modules/ethereum/providers/AbstractEvmProvider.ts", "../../src/modules/ethereum/providers/AbstractEvmRunner.ts", "../../src/modules/ethereum/providers/AbstractEvmViewer.ts", "../../src/modules/ethereum/providers/EvmChainContractViewer.ts", "../../src/modules/ethereum/providers/EvmStakeRunner.ts", "../../src/modules/ethereum/providers/EvmStakeTotalsViewer.ts", "../../src/modules/ethereum/rpc/isRpcRangeLimitError.ts", "../../src/modules/ethereum/rpc/isRpcRateLimitError.ts", "../../src/modules/ethereum/rpc/withRpcRateLimitBackoff.ts"],
4
- "sourcesContent": ["import type {\n Address, BlockAPI,\n BlockNumberOrTag,\n CompileResultAPI,\n EthExecutionAPI,\n FeeHistoryResultAPI,\n Filter,\n FilterResultsAPI,\n HexString, HexString8Bytes,\n HexString32Bytes,\n HexString256Bytes,\n HexStringBytes,\n SignedTransactionInfoAPI,\n SyncingStatusAPI,\n TransactionCallAPI,\n TransactionInfoAPI,\n TransactionReceiptAPI,\n TransactionWithSenderAPI,\n Uint,\n Uint256,\n} from 'web3-types'\n\nexport class BaseEthProvider implements EthExecutionAPI {\n eth_accounts(): Address[] {\n throw new Error('Method not implemented.')\n }\n\n eth_blockNumber(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_call(_transaction: TransactionCallAPI, _blockNumber: BlockNumberOrTag): HexStringBytes {\n throw new Error('Method not implemented.')\n }\n\n eth_clearSubscriptions(_keepSyncing?: boolean): void {\n throw new Error('Method not implemented.')\n }\n\n eth_coinbase(): Address {\n throw new Error('Method not implemented.')\n }\n\n eth_compileLLL(_code: string): HexStringBytes {\n throw new Error('Method not implemented.')\n }\n\n eth_compileSerpent(_code: string): HexStringBytes {\n throw new Error('Method not implemented.')\n }\n\n eth_compileSolidity(_code: string): CompileResultAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_estimateGas(_transaction: Partial<TransactionWithSenderAPI>, _blockNumber: BlockNumberOrTag): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_feeHistory(_blockCount: Uint, _newestBlock: BlockNumberOrTag, _rewardPercentiles: number[]): FeeHistoryResultAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_gasPrice(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getBalance(_address: Address, _blockNumber: BlockNumberOrTag): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getBlockByHash(_blockHash: HexString32Bytes, _hydrated: boolean): BlockAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getBlockByNumber(_blockNumber: BlockNumberOrTag, _hydrated: boolean): BlockAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getBlockTransactionCountByHash(_blockHash: HexString32Bytes): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getBlockTransactionCountByNumber(_blockNumber: BlockNumberOrTag): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getCode(_address: Address, _blockNumber: BlockNumberOrTag): HexStringBytes {\n throw new Error('Method not implemented.')\n }\n\n eth_getCompilers(): string[] {\n throw new Error('Method not implemented.')\n }\n\n eth_getFilterChanges(_filterIdentifier: Uint): FilterResultsAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getFilterLogs(_filterIdentifier: Uint): FilterResultsAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getLogs(_filter: Filter): FilterResultsAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getStorageAt(_address: Address, _storageSlot: Uint256, _blockNumber: BlockNumberOrTag): HexStringBytes {\n throw new Error('Method not implemented.')\n }\n\n eth_getTransactionByBlockHashAndIndex(_blockHash: HexString32Bytes, _transactionIndex: Uint): TransactionInfoAPI | undefined {\n throw new Error('Method not implemented.')\n }\n\n eth_getTransactionByBlockNumberAndIndex(_blockNumber: BlockNumberOrTag, _transactionIndex: Uint): TransactionInfoAPI | undefined {\n throw new Error('Method not implemented.')\n }\n\n eth_getTransactionByHash(_transactionHash: HexString32Bytes): TransactionInfoAPI | undefined {\n throw new Error('Method not implemented.')\n }\n\n eth_getTransactionCount(_address: Address, _blockNumber: BlockNumberOrTag): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getTransactionReceipt(_transactionHash: HexString32Bytes): TransactionReceiptAPI | undefined {\n throw new Error('Method not implemented.')\n }\n\n eth_getUncleByBlockHashAndIndex(_blockHash: HexString32Bytes, _uncleIndex: Uint): BlockAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getUncleByBlockNumberAndIndex(_blockNumber: BlockNumberOrTag, _uncleIndex: Uint): BlockAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getUncleCountByBlockHash(_blockHash: HexString32Bytes): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getUncleCountByBlockNumber(_blockNumber: BlockNumberOrTag): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getWork(): [HexString32Bytes, HexString32Bytes, HexString32Bytes] {\n throw new Error('Method not implemented.')\n }\n\n eth_hashrate(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_maxPriorityFeePerGas(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_mining(): boolean {\n throw new Error('Method not implemented.')\n }\n\n eth_newBlockFilter(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_newFilter(_filter: Filter): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_newPendingTransactionFilter(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_protocolVersion(): string {\n throw new Error('Method not implemented.')\n }\n\n eth_sendRawTransaction(_transaction: HexStringBytes): HexString32Bytes {\n throw new Error('Method not implemented.')\n }\n\n eth_sendTransaction(_transaction: TransactionWithSenderAPI | Partial<TransactionWithSenderAPI>): HexString32Bytes {\n throw new Error('Method not implemented.')\n }\n\n eth_sign(_address: Address, _message: HexStringBytes): HexString256Bytes {\n throw new Error('Method not implemented.')\n }\n\n eth_signTransaction(_transaction: TransactionWithSenderAPI | Partial<TransactionWithSenderAPI>): HexStringBytes | SignedTransactionInfoAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_submitHashrate(_hashRate: HexString32Bytes, _id: HexString32Bytes): boolean {\n throw new Error('Method not implemented.')\n }\n\n eth_submitWork(_nonce: HexString8Bytes, _hash: HexString32Bytes, _digest: HexString32Bytes): boolean {\n throw new Error('Method not implemented.')\n }\n\n eth_subscribe(..._params: ['newHeads'] | ['newPendingTransactions'] | ['syncing'] | ['logs', { address?: HexString; topics?: HexString[] }]): HexString {\n throw new Error('Method not implemented.')\n }\n\n eth_syncing(): SyncingStatusAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_uninstallFilter(_filterIdentifier: Uint): boolean {\n throw new Error('Method not implemented.')\n }\n\n eth_unsubscribe(_subscriptionId: HexString): HexString {\n throw new Error('Method not implemented.')\n }\n}\n", "/**\n * Split an inclusive block range into fixed-size inclusive chunks.\n *\n * @example\n * blockRangeChunks(0, 5000, 2000) // [[0, 1999], [2000, 3999], [4000, 5000]]\n */\nexport function blockRangeChunks(\n fromBlock: number,\n toBlock: number,\n chunkSize: number,\n): [number, number][] {\n if (!Number.isInteger(chunkSize) || chunkSize < 1) {\n throw new TypeError(`chunkSize must be an integer >= 1, got ${chunkSize}`)\n }\n if (!Number.isFinite(fromBlock) || !Number.isFinite(toBlock)) {\n throw new TypeError(`fromBlock and toBlock must be finite numbers, got [${fromBlock}, ${toBlock}]`)\n }\n if (fromBlock > toBlock) {\n return []\n }\n\n const chunks: [number, number][] = []\n for (let start = fromBlock; start <= toBlock; start += chunkSize) {\n const end = Math.min(start + chunkSize - 1, toBlock)\n chunks.push([start, end])\n }\n return chunks\n}\n", "export {\n DEFAULT_ESTIMATE_BLOCK_DATE,\n DEFAULT_EVM_BLOCK_TIME_SEC,\n estimateBlockNumberAt,\n estimateBlockNumberFromHead,\n} from '@xyo-network/xl1-sdk'\n", "export {\n configuredDeploymentBlock,\n findContractDeploymentBlock,\n resolveContractDeploymentBlock,\n} from '@xyo-network/xl1-sdk'\n", "import { isDefined, isFalsy } from '@ariestools/sdk'\nimport type {\n EthBlockNumber, EthBlockRange, EthBlockRate, TimeDurations,\n} from '@xyo-network/xl1-sdk'\nimport {\n asEthBlockRange, rateMultipliers, timeDurations,\n} from '@xyo-network/xl1-sdk'\nimport type { Block, Provider } from 'ethers/providers'\n\nexport const ethBlockRate = (\n startBlock: Block,\n endBlock: Block,\n timeUnit?: keyof TimeDurations,\n): EthBlockRate => {\n const heightDifference = endBlock.number - startBlock.number\n const timeDifference = endBlock.timestamp - startBlock.timestamp\n\n const rate = heightDifference / timeDifference\n\n const timeUnitValue = isDefined(timeUnit) ? timeUnit : 'millis'\n const returnedTimeDifference = isDefined(timeUnit) ? timeDurations(timeDifference)[timeUnit] : timeDifference\n const timePerBlock = returnedTimeDifference / heightDifference\n\n return {\n range: asEthBlockRange([startBlock.number, endBlock.number], true),\n span: heightDifference,\n rate: isDefined(timeUnit) ? rate * rateMultipliers[timeUnit] : rate,\n timeUnit: timeUnitValue,\n timeDifference: returnedTimeDifference,\n timePerBlock,\n }\n}\n\nexport const getEthBlockRateBlocks = async (\n provider: Provider,\n startBlockHeight: EthBlockNumber,\n endBlockHeight: EthBlockNumber,\n): Promise<{ endingBlock: Block; startingBlock: Block }> => {\n if (endBlockHeight <= startBlockHeight) {\n console.error('startBlockHeight', startBlockHeight)\n console.error('endBlockHeight', endBlockHeight)\n throw new Error('End block height must be greater than start block height')\n }\n\n const startingBlock = await provider.getBlock(startBlockHeight)\n const endingBlock = await provider.getBlock(endBlockHeight)\n\n if (isFalsy(startingBlock) || isFalsy(endingBlock)) {\n throw new Error('Could not retrieve blocks for speed calculation')\n }\n\n return { startingBlock, endingBlock }\n}\n\nexport const calculateEthBlockRate = async (\n provider: Provider,\n range: EthBlockRange,\n timeUnit?: keyof TimeDurations,\n): Promise<EthBlockRate> => {\n const [startBlockHeight, endBlockHeight] = range\n const { startingBlock, endingBlock } = await getEthBlockRateBlocks(\n provider,\n startBlockHeight,\n endBlockHeight,\n )\n return ethBlockRate(startingBlock, endingBlock, timeUnit)\n}\n", "import {\n assertEx, isDefined, isDefinedNotNull,\n} from '@ariestools/sdk'\nimport type {\n EthBlockNumber,\n EthBlockRate,\n SingleTimeConfig,\n TimeDurations,\n} from '@xyo-network/xl1-sdk'\nimport {\n asEthBlockNumber, asEthBlockRange, getTimeConfigInMilliseconds,\n} from '@xyo-network/xl1-sdk'\nimport type { Block, Provider } from 'ethers/providers'\n\nimport { calculateEthBlockRate } from './blockRate.ts'\n\nconst DEFAULT_TOLERANCE_MS = 30_000 // 30 seconds\nconst DEFAULT_MAX_ATTEMPTS = 20\n\nexport const calculateEthTimeRate = async (\n provider: Provider,\n timeConfig: SingleTimeConfig,\n startBlockNumber?: EthBlockNumber,\n timeUnit?: keyof TimeDurations,\n // default tolerance of 30 seconds to cut down on iterations\n toleranceMs = DEFAULT_TOLERANCE_MS,\n // maximum recursive attempts to prevent infinite loops\n maxAttempts = DEFAULT_MAX_ATTEMPTS,\n): Promise<EthBlockRate> => {\n // check the time config has only one key\n assertEx(Object.keys(timeConfig ?? {}).length === 1, () => 'Only one time unit should be specified in timeConfig')\n\n // resolve the starting block\n const startBlock = isDefinedNotNull(startBlockNumber) ? await provider.getBlock(BigInt(startBlockNumber)) : null\n\n // Ensure the start block could be resolved\n assertEx(isDefinedNotNull(startBlockNumber) && isDefinedNotNull(startBlock), () => 'Start block could not be resolved')\n\n const resolvedStartBlock = isDefinedNotNull(startBlock)\n ? startBlock\n : assertEx(await provider.getBlock('latest'))\n\n const timeInMilliseconds = getTimeConfigInMilliseconds(timeConfig)\n assertEx(timeInMilliseconds > 0, () => 'Time duration must be greater than zero')\n\n // Estimate blocks per milliseconds (bpm) based on average block time\n const blocksPerMillisecondRate = 1 / (12 * 1000) // Approximate average block time of 12 seconds\n\n // Calculate the number of blocks in the given time duration\n const initialBlocksInDuration = Math.floor(blocksPerMillisecondRate * timeInMilliseconds)\n\n // Recursively find the proper end block\n const endBlockNumber = await findEndBlockRecursive(\n provider,\n resolvedStartBlock,\n timeInMilliseconds,\n initialBlocksInDuration,\n toleranceMs,\n maxAttempts,\n )\n\n return await calculateEthBlockRate(\n provider,\n asEthBlockRange([endBlockNumber, resolvedStartBlock.number], true),\n timeUnit,\n )\n}\n\nconst findEndBlockRecursive = async (\n provider: Provider,\n startBlock: Block,\n targetTimeMs: number,\n estimatedBlocksBack: number,\n toleranceMs: number,\n attemptsRemaining: number,\n): Promise<EthBlockNumber> => {\n console.log(`Attempts remaining: ${attemptsRemaining}, Estimated blocks back: ${estimatedBlocksBack}`)\n assertEx(attemptsRemaining > 0, () => 'Maximum attempts reached while searching for end block')\n\n const startBlockEpoch = startBlock.timestamp\n const estimatedEndBlockNumber = startBlock.number - estimatedBlocksBack\n\n if (estimatedEndBlockNumber < 0) {\n throw new Error('Estimated end block number is less than zero')\n }\n\n // Fetch the estimated end block\n const endBlock = await provider.getBlock(estimatedEndBlockNumber)\n const resolvedEndBlock = assertEx(\n isDefined(endBlock) ? endBlock : undefined,\n () => `Could not retrieve block ${estimatedEndBlockNumber} for time rate calculation`,\n )\n\n const endBlockEpoch = resolvedEndBlock.timestamp\n const actualTimeDifference = startBlockEpoch - endBlockEpoch\n\n // Check if we're within tolerance\n const timeDelta = Math.abs(actualTimeDifference - targetTimeMs)\n if (timeDelta <= toleranceMs) {\n return asEthBlockNumber(resolvedEndBlock.number, true)\n }\n\n // TODO - in order to support older POW days, we might need to shift away from using adjustmentFactor but do a pure binary search\n // Calculate adjustment factor and recursively search\n let adjustedBlocksBack: number\n if (actualTimeDifference < targetTimeMs) {\n // Need to go further back\n const adjustmentFactor = targetTimeMs / actualTimeDifference\n adjustedBlocksBack = Math.floor(estimatedBlocksBack * adjustmentFactor)\n if (adjustedBlocksBack > startBlock.number) {\n adjustedBlocksBack = startBlock.number / 2\n }\n } else {\n // Need to come forward\n const adjustmentFactor = actualTimeDifference / targetTimeMs\n adjustedBlocksBack = Math.floor(estimatedBlocksBack / adjustmentFactor)\n }\n\n return await findEndBlockRecursive(\n provider,\n startBlock,\n targetTimeMs,\n adjustedBlocksBack,\n toleranceMs,\n attemptsRemaining - 1,\n )\n}\n", "import type {\n Address,\n EthAddress,\n} from '@ariestools/sdk'\nimport {\n toAddress,\n toEthAddress,\n} from '@ariestools/sdk'\nimport type { AccountInstance } from '@xyo-network/sdk'\nimport { PayloadBuilder } from '@xyo-network/sdk'\nimport { type HydratedBlockWithHashMeta, XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-sdk'\nimport type { Signer } from 'ethers/providers'\n\nimport { createGenesisBlock } from '#protocol'\n\nimport { createChainContract } from './createChainContract.ts'\nimport { createChainRewardsContract } from './createChainRewardsContract.ts'\nimport type { GasConfig } from './ethereum.ts'\nimport { nextContractAddress } from './nextContractAddress.ts'\n\nexport async function createChain(\n signer: Signer,\n stakingTokenAddress: EthAddress | Address,\n initialBlockProducer: AccountInstance,\n rewardsContractAddress: Address | null,\n genesisBlockRewardAmount: bigint,\n genesisBlockRewardAddress: Address,\n minWithdrawalBlocks: bigint,\n maxStakersPerAddress = 10,\n unlimitedStakingAddress = XYO_NETWORK_STAKING_ADDRESS,\n minStake = 10_000n,\n gas?: GasConfig,\n): Promise<[Address, HydratedBlockWithHashMeta, Address]> {\n const ethStakingTokenAddress = toEthAddress(stakingTokenAddress)\n const rewardContractAddressResolved = rewardsContractAddress ?? (await createChainRewardsContract(signer, genesisBlockRewardAmount, gas))\n const contractAddress = await nextContractAddress(signer)\n const genesisBlock = await createGenesisBlock(\n initialBlockProducer,\n contractAddress,\n genesisBlockRewardAmount,\n genesisBlockRewardAddress,\n )\n const chainId = toAddress(await createChainContract(\n signer,\n ethStakingTokenAddress,\n await PayloadBuilder.hash(genesisBlock[0]),\n rewardContractAddressResolved,\n minWithdrawalBlocks,\n maxStakersPerAddress,\n unlimitedStakingAddress,\n minStake,\n gas,\n ))\n return [chainId, genesisBlock, rewardContractAddressResolved]\n}\n", "import type {\n Address, EthAddress, Hash,\n} from '@ariestools/sdk'\nimport {\n asAddress, assertEx,\n ETH_ZERO_ADDRESS, hexToBigInt, toEthAddress,\n} from '@ariestools/sdk'\nimport { StakedXyoChainV2__factory } from '@xyo-network/typechain'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-sdk'\nimport type { Signer } from 'ethers/providers'\n\nimport type { GasConfig } from './ethereum.ts'\n\nexport const createChainContract = async (\n signer: Signer,\n stakingTokenAddress: EthAddress,\n genesisBlockHash: Hash,\n rewardsContractAddress: Address,\n minWithdrawalBlocks: bigint,\n maxStakersPerAddress = 10,\n unlimitedStakingAddress = XYO_NETWORK_STAKING_ADDRESS,\n minStake = 10_000n,\n gas: GasConfig = {},\n): Promise<Address> => {\n try {\n const xyoChainFactory = new StakedXyoChainV2__factory(signer)\n const deployResponse = await xyoChainFactory.deploy(\n ETH_ZERO_ADDRESS, // forkFromChainId\n 0n, // forkFromLastBlockNumber\n hexToBigInt(genesisBlockHash), // forkFromLastHash\n toEthAddress(rewardsContractAddress),\n minWithdrawalBlocks, // min withdraw blocks\n toEthAddress(stakingTokenAddress),\n maxStakersPerAddress,\n toEthAddress(unlimitedStakingAddress),\n minStake,\n gas,\n )\n await deployResponse.waitForDeployment()\n const xyoChainContractAddress = await deployResponse.getAddress()\n return assertEx(asAddress(xyoChainContractAddress), () => 'Invalid staking contract address')\n } catch (ex) {\n console.log(ex)\n throw ex\n }\n}\n", "import type { Address } from '@ariestools/sdk'\nimport {\n asAddress, assertEx, toFixedPoint,\n} from '@ariestools/sdk'\nimport { XyoChainRewards__factory as XyoChainRewardsFactory } from '@xyo-network/typechain'\nimport { parseUnits, type Signer } from 'ethers'\n\nimport type { GasConfig } from './ethereum.ts'\n\nconst gasConfig = () => {\n return {\n gasLimit: 2_000_000, // Set the gas limit\n gasPrice: parseUnits('100', 'gwei'),\n }\n}\n\nexport const createChainRewardsContract = async (\n signer: Signer,\n genesisReward = 0n,\n gas: GasConfig = gasConfig(),\n): Promise<Address> => {\n try {\n const xyoChainRewardsFactory = new XyoChainRewardsFactory(signer)\n const deployResponse = await xyoChainRewardsFactory.deploy(\n toFixedPoint(1000n),\n 1_000_000n,\n 95n,\n 100n,\n toFixedPoint(30n),\n genesisReward,\n 18n,\n gas,\n )\n await deployResponse.waitForDeployment()\n const xyoChainRewardsAddress = await deployResponse.getAddress()\n return assertEx(asAddress(xyoChainRewardsAddress), () => 'Invalid rewards contract address')\n } catch (ex) {\n console.log(ex)\n throw ex\n }\n}\n", "import type { Address } from '@ariestools/sdk'\nimport {\n asAddress, assertEx, toEthAddress,\n} from '@ariestools/sdk'\nimport { getCreateAddress } from 'ethers/address'\nimport type { Provider, Signer } from 'ethers/providers'\n\n/**\n * Predicts the next contract address for a contract that will be deployed\n * @param address The address of the deployer\n * @param provider The provider to use\n * @returns The predicted contract address\n */\nexport const nextContractAddressForAddress = async (address: Address, provider: Provider) => {\n // Get the deployer address\n const deployerAddress = toEthAddress(address)\n\n // Get the next nonce for the deployer account\n const nonce = await provider.getTransactionCount(deployerAddress)\n\n // Predict the next deployed contract contract address\n const contractAddress = getCreateAddress({ from: deployerAddress, nonce })\n\n // Return the predicted contract address\n return assertEx(asAddress(contractAddress), () => 'Unable to convert contract address to address')\n}\n\n/**\n * Predicts the next contract address for a contract that will be deployed\n * @param signer The signer to use when deploying the contract\n * @returns The predicted contract address\n */\nexport const nextContractAddress = async (signer: Signer) => {\n const provider = assertEx(signer.provider, () => 'Unable to obtain provider from signer')\n const address = assertEx(asAddress(await signer.getAddress()), () => 'Unable to obtain address from signer')\n return await nextContractAddressForAddress(address, provider)\n}\n", "export {\n DEFAULT_EVENT_QUERY_INITIAL_DELAY_MS,\n DEFAULT_EVENT_QUERY_MAX_ATTEMPTS,\n DEFAULT_EVENT_QUERY_START_CHUNK_SIZE,\n type EvmStakeEventsParams,\n EvmStakeEventsViewer,\n MIN_EVENT_QUERY_BLOCK_CHUNK_SIZE,\n} from '@xyo-network/xl1-sdk'\n", "export {\n asEvmStakeAddedEvent,\n asEvmStakeEvent,\n asEvmStakeRemovedEvent,\n asEvmStakeWithdrawnEvent,\n EthHashRegEx,\n EthHashZod,\n type EvmStakeAddedEvent,\n EvmStakeAddedEventNameZod,\n EvmStakeAddedEventZod,\n type EvmStakeEvent,\n EvmStakeEventArgsZod,\n EvmStakeEventNameZod,\n EvmStakeEventZod,\n type EvmStakeRemovedEvent,\n EvmStakeRemovedEventNameZod,\n EvmStakeRemovedEventZod,\n type EvmStakeWithdrawnEvent,\n EvmStakeWithdrawnEventNameZod,\n EvmStakeWithdrawnEventZod,\n isEvmStakeAddedEvent,\n isEvmStakeEvent,\n isEvmStakeRemovedEvent,\n isEvmStakeWithdrawnEvent,\n toEvmStakeAddedEvent,\n toEvmStakeEvent,\n toEvmStakeRemovedEvent,\n toEvmStakeWithdrawnEvent,\n} from '@xyo-network/xl1-sdk'\n", "export { EvmStakeViewer, type EvmStakeViewerParams } from '@xyo-network/xl1-sdk'\n", "import { parseUnits } from 'ethers/utils'\n\nexport interface GasConfig {\n gasLimit?: number\n gasPrice?: bigint\n}\n\nexport const getDefaultGasConfig = (): GasConfig => {\n return {\n gasLimit: 2_000_000, // Set the gas limit\n gasPrice: parseUnits('100', 'gwei'),\n }\n}\n", "import {\n EthAddressZod, HexRegExMinMaxMixedCaseWithPrefix,\n zodAsFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod/mini'\n\nconst EvmHashZod = z.string().check(z.regex(HexRegExMinMaxMixedCaseWithPrefix(32, 32)))\nconst EvmDataZod = z.string().check(z.regex(/^0x[\\dA-Fa-f]*$/))\n\n/** JSON-safe representation of one raw EVM contract log. */\nexport const EvmEventIndexLogZod = z.object({\n address: EthAddressZod,\n blockHash: EvmHashZod,\n blockNumber: z.number(),\n data: EvmDataZod,\n index: z.number(),\n topics: z.array(EvmHashZod),\n transactionHash: EvmHashZod,\n transactionIndex: z.number(),\n})\n\nexport type EvmEventIndexLog = z.infer<typeof EvmEventIndexLogZod>\n\n/** One immutable, address-scoped range of finalized EVM logs. */\nexport const EvmEventIndexFrameZod = z.object({\n fromBlock: z.number(),\n logs: z.array(EvmEventIndexLogZod),\n toBlock: z.number(),\n})\n\nexport type EvmEventIndexFrame = z.infer<typeof EvmEventIndexFrameZod>\n\n/** Static description of one contract event index. */\nexport const EvmEventIndexManifestZod = z.object({\n address: EthAddressZod,\n chainId: z.string(),\n deploymentBlock: z.number(),\n frameSize: z.number(),\n layout: z.literal('evm-contract-events-v1'),\n})\n\nexport type EvmEventIndexManifest = z.infer<typeof EvmEventIndexManifestZod>\n\n/** Mutable pointer written after all frames through `block` are durable. */\nexport const EvmEventIndexHeadZod = z.object({\n address: EthAddressZod,\n block: z.number(),\n chainId: z.string(),\n hash: EvmHashZod,\n})\n\nexport type EvmEventIndexHead = z.infer<typeof EvmEventIndexHeadZod>\n\nexport const asEvmEventIndexFrame = zodAsFactory(EvmEventIndexFrameZod, 'asEvmEventIndexFrame')\nexport const asEvmEventIndexHead = zodAsFactory(EvmEventIndexHeadZod, 'asEvmEventIndexHead')\nexport const asEvmEventIndexManifest = zodAsFactory(EvmEventIndexManifestZod, 'asEvmEventIndexManifest')\n", "import type { EthAddress } from '@ariestools/sdk'\n\nfunction root(address: EthAddress): string {\n return `evm/events/${address.toLowerCase()}`\n}\n\nexport function evmEventIndexFramePath(address: EthAddress, frameIndex: number): string {\n return `${root(address)}/frames/${frameIndex}.json`\n}\n\nexport function evmEventIndexHeadPath(address: EthAddress): string {\n return `${root(address)}/head.json`\n}\n\nexport function evmEventIndexManifestPath(address: EthAddress): string {\n return `${root(address)}/manifest.json`\n}\n\nexport function evmEventIndexTailPath(address: EthAddress): string {\n return `${root(address)}/tail.json`\n}\n", "import type { Provider } from '@xyo-network/xl1-sdk'\n\nimport type { EvmEventIndexHead } from './EvmEventIndexModel.ts'\n\nexport const EvmEventIndexPublishRunnerMoniker = 'EvmEventIndexPublishRunner' as const\nexport type EvmEventIndexPublishRunnerMoniker = typeof EvmEventIndexPublishRunnerMoniker\n\n/** Publishes finalized raw logs for a configured EVM contract. */\nexport interface EvmEventIndexPublishRunner extends Provider<EvmEventIndexPublishRunnerMoniker> {\n publishFinalizedEvents(): Promise<EvmEventIndexHead | null>\n}\n", "import type { EthAddress } from '@ariestools/sdk'\nimport {\n assertEx, isDefined, toAddress, toEthAddress,\n} from '@ariestools/sdk'\nimport { IAddressStakingEvents__factory } from '@xyo-network/typechain'\nimport type {\n CreatableProviderParams, ProviderMoniker, StakeEvent, StakeEventFilter, StakeEventName, StakeEventsViewer,\n} from '@xyo-network/xl1-sdk'\nimport {\n AbstractCreatableProvider, asAttoXL1, creatableProvider, resolveRestConnectionEndpoint, StakeEventsViewerMoniker,\n} from '@xyo-network/xl1-sdk'\nimport { Interface } from 'ethers'\n\nimport {\n asEvmEventIndexFrame, asEvmEventIndexHead, asEvmEventIndexManifest,\n type EvmEventIndexFrame, type EvmEventIndexHead, type EvmEventIndexLog, type EvmEventIndexManifest,\n} from './EvmEventIndexModel.ts'\nimport {\n evmEventIndexFramePath, evmEventIndexHeadPath, evmEventIndexManifestPath, evmEventIndexTailPath,\n} from './EvmEventIndexPaths.ts'\n\nconst STAKE_EVENT_NAMES = new Set<string>(['StakeAdded', 'StakeRemoved', 'StakeWithdrawn'])\n\nexport interface RestStakeEventsViewerParams extends CreatableProviderParams {\n /** Staking contract address; defaults to `config.chain.id`. */\n address: EthAddress\n /** Public base URL of the bucket containing the EVM event index. */\n eventIndexBaseUrl: string\n /** Optional fetch override for tests, authentication, or a custom HTTP agent. */\n fetchFn?: typeof globalThis.fetch\n}\n\n/**\n * StakeEventsViewer backed by the finalized contract-event index rather than eth_getLogs.\n * Raw indexed logs remain contract-generic; this viewer applies the staking ABI at the edge.\n */\n@creatableProvider()\nexport class RestStakeEventsViewer extends AbstractCreatableProvider<RestStakeEventsViewerParams> implements StakeEventsViewer {\n static readonly connectionTypes = ['rest'] as const\n static readonly defaultMoniker = StakeEventsViewerMoniker\n static readonly dependencies = []\n static readonly monikers = [StakeEventsViewerMoniker]\n static readonly surface = 'node' as const\n moniker = RestStakeEventsViewer.defaultMoniker\n\n private readonly completeFrames = new Map<number, EvmEventIndexFrame>()\n private readonly contractInterface = new Interface(IAddressStakingEvents__factory.abi)\n private currentHead?: EvmEventIndexHead\n private manifestPromise?: Promise<EvmEventIndexManifest>\n private stakeEventCache: StakeEvent[] = []\n private syncPromise?: Promise<void>\n private tailFrame?: EvmEventIndexFrame\n\n get address(): EthAddress {\n return this.params.address\n }\n\n get eventIndexBaseUrl(): string {\n return this.params.eventIndexBaseUrl\n }\n\n protected get fetchFn(): typeof globalThis.fetch {\n return this.params.fetchFn ?? fetch.bind(globalThis)\n }\n\n static override async paramsHandler(params: Partial<RestStakeEventsViewerParams>) {\n const contextConfig = params.context?.config\n const address = params.address\n ?? toEthAddress(assertEx(contextConfig?.chain?.id, () => 'RestStakeEventsViewer requires an address param or config.chain.id'))\n const moniker = (this as unknown as { defaultMoniker: ProviderMoniker }).defaultMoniker\n const eventIndexBaseUrl = isDefined(params.eventIndexBaseUrl) && params.eventIndexBaseUrl !== ''\n ? params.eventIndexBaseUrl\n : resolveRestConnectionEndpoint(\n assertEx(contextConfig, () => 'Context config is required to resolve the EVM event index endpoint'),\n moniker,\n )\n return {\n ...await super.paramsHandler(params),\n address,\n eventIndexBaseUrl: eventIndexBaseUrl.replace(/\\/+$/, ''),\n fetchFn: params.fetchFn,\n } satisfies RestStakeEventsViewerParams\n }\n\n async positionCount(range: [number, number | 'latest']): Promise<number> {\n const events = await this.stakeEvents(range)\n return Math.max(-1, ...events.map(event => event.args.id)) + 1\n }\n\n async stakeEvents<TName extends StakeEventName>(\n range: [number, number | 'latest'] = [0, 'latest'],\n filter?: StakeEventFilter<TName>,\n ): Promise<StakeEvent<TName>[]> {\n await this.sync()\n return this.stakeEventCache.filter(event => this.matchesFilter(event, range, filter)) as StakeEvent<TName>[]\n }\n\n private decodeIndexedStakeEvents(): StakeEvent[] {\n const frames = [...this.completeFrames.entries()]\n .sort(([a], [b]) => a - b)\n .map(([, frame]) => frame)\n const logs = [...frames, ...(this.tailFrame === undefined ? [] : [this.tailFrame])]\n .flatMap(frame => frame.logs)\n .sort((a, b) => a.blockNumber - b.blockNumber || a.transactionIndex - b.transactionIndex || a.index - b.index)\n return logs.flatMap((log) => {\n const event = this.stakeEventFromLog(log)\n return event === undefined ? [] : [event]\n })\n }\n\n private async fetchJson(path: string): Promise<unknown> {\n const response = await this.fetchFn(`${this.eventIndexBaseUrl}/${path}`)\n assertEx(response.ok, () => `EVM event index request failed [${response.status}] for ${path}`)\n return await response.json()\n }\n\n private async getManifest(): Promise<EvmEventIndexManifest> {\n this.manifestPromise ??= (async () => {\n const manifest = asEvmEventIndexManifest(await this.fetchJson(evmEventIndexManifestPath(this.address)), true)\n assertEx(manifest.address.toLowerCase() === this.address.toLowerCase(), () => 'EVM event index manifest address mismatch')\n return manifest\n })()\n return await this.manifestPromise\n }\n\n // eslint-disable-next-line complexity\n private matchesFilter<TName extends StakeEventName>(\n event: StakeEvent,\n range: [number, number | 'latest'],\n filter?: StakeEventFilter<TName>,\n ): boolean {\n if (range[1] !== 'latest' && event.time > range[1]) return false\n if (event.time < range[0]) return false\n if (isDefined(filter?.name) && event.name !== filter.name) return false\n if (isDefined(filter?.args?.id) && event.args.id !== filter.args.id) return false\n if (isDefined(filter?.args?.staked) && event.args.staked !== filter.args.staked) return false\n if (isDefined(filter?.args?.staker) && event.args.staker !== filter.args.staker) return false\n return true\n }\n\n private stakeEventFromLog(log: EvmEventIndexLog): StakeEvent | undefined {\n const parsed = this.contractInterface.parseLog({ data: log.data, topics: log.topics })\n if (parsed === null || !STAKE_EVENT_NAMES.has(parsed.name)) return\n const [staked, staker, id, amount] = parsed.args\n return {\n name: parsed.name as StakeEventName,\n args: {\n amount: asAttoXL1(amount as bigint),\n id: Number(id),\n staked: toAddress(staked as string),\n staker: toAddress(staker as string),\n },\n time: log.blockNumber,\n }\n }\n\n private async sync(): Promise<void> {\n this.syncPromise ??= this.syncFromHead().finally(() => {\n this.syncPromise = undefined\n })\n await this.syncPromise\n }\n\n private async syncFromHead(): Promise<void> {\n const manifest = await this.getManifest()\n const head = asEvmEventIndexHead(await this.fetchJson(evmEventIndexHeadPath(this.address)), true)\n assertEx(head.address.toLowerCase() === this.address.toLowerCase(), () => 'EVM event index head address mismatch')\n assertEx(head.chainId === manifest.chainId, () => 'EVM event index chain mismatch')\n if (this.currentHead?.block === head.block && this.currentHead.hash === head.hash) return\n\n if (this.currentHead !== undefined && (head.block < this.currentHead.block || (head.block === this.currentHead.block && head.hash !== this.currentHead.hash))) {\n this.completeFrames.clear()\n this.tailFrame = undefined\n }\n\n const indexedBlockCount = Math.max(0, head.block - manifest.deploymentBlock + 1)\n const completeFrameCount = Math.floor(indexedBlockCount / manifest.frameSize)\n const missingFrameIndexes = Array.from({ length: completeFrameCount }, (_, index) => index)\n .filter(index => !this.completeFrames.has(index))\n await Promise.all(missingFrameIndexes.map(async (index) => {\n const frame = asEvmEventIndexFrame(await this.fetchJson(evmEventIndexFramePath(this.address, index)), true)\n const expectedFrom = manifest.deploymentBlock + index * manifest.frameSize\n assertEx(frame.fromBlock === expectedFrom, () => `EVM event index frame ${index} starts at the wrong block`)\n assertEx(frame.toBlock === expectedFrom + manifest.frameSize - 1, () => `EVM event index frame ${index} is incomplete`)\n this.completeFrames.set(index, frame)\n }))\n\n const tailStart = manifest.deploymentBlock + completeFrameCount * manifest.frameSize\n this.tailFrame = tailStart <= head.block\n ? asEvmEventIndexFrame(await this.fetchJson(`${evmEventIndexTailPath(this.address)}?head=${head.hash}`), true)\n : undefined\n if (this.tailFrame !== undefined) {\n assertEx(this.tailFrame.fromBlock === tailStart, () => 'EVM event index tail starts at the wrong block')\n assertEx(this.tailFrame.toBlock === head.block, () => 'EVM event index tail is stale relative to its head')\n }\n this.stakeEventCache = this.decodeIndexedStakeEvents()\n this.currentHead = head\n }\n}\n", "export { AbstractEvmProvider, type EvmProviderParams } from '@xyo-network/xl1-sdk'\n", "import { assertEx } from '@ariestools/sdk'\nimport type { BaseContract, ContractRunner } from 'ethers'\n\nimport type { EvmViewerParams } from './AbstractEvmViewer.ts'\nimport { AbstractEvmViewer } from './AbstractEvmViewer.ts'\n\nexport interface EvmRunnerParams extends EvmViewerParams {\n runner: ContractRunner\n}\n\nexport abstract class AbstractEvmRunner<TParams extends EvmRunnerParams = EvmRunnerParams,\n TContract extends BaseContract = BaseContract> extends\n AbstractEvmViewer<TParams, TContract> {\n static override async paramsHandler<T extends AbstractEvmRunner>(params: Partial<T['params']>): Promise<T['params']> {\n const runner = assertEx(params?.runner, () => new Error('No runner defined'))\n const provider = assertEx(runner.provider, () => new Error('Runner must have a provider defined'))\n return { ...(await super.paramsHandler({ ...params, provider })), runner }\n }\n}\n", "export { AbstractEvmViewer, type EvmViewerParams } from '@xyo-network/xl1-sdk'\n", "export { EvmChainContractViewer, type EvmChainContractViewerParams } from '@xyo-network/xl1-sdk'\n", "import type { Address, EthAddress } from '@ariestools/sdk'\nimport { toEthAddress } from '@ariestools/sdk'\nimport type { IStakedXyoChain } from '@xyo-network/typechain'\nimport { IStakedXyoChain__factory } from '@xyo-network/typechain'\nimport type { StakeRunner } from '@xyo-network/xl1-sdk'\nimport {\n creatableProvider,\n StakeRunnerMoniker,\n} from '@xyo-network/xl1-sdk'\nimport { getAddress } from 'ethers/address'\n\nimport type { EvmRunnerParams } from './AbstractEvmRunner.ts'\nimport { AbstractEvmRunner } from './AbstractEvmRunner.ts'\n\nexport interface EvmStakeRunnerParams extends EvmRunnerParams {}\n\n@creatableProvider()\nexport class EvmStakeRunner extends AbstractEvmRunner<EvmStakeRunnerParams, IStakedXyoChain> implements StakeRunner {\n static readonly connectionTypes = ['evm-rpc'] as const\n static readonly defaultMoniker = StakeRunnerMoniker\n static readonly dependencies = []\n static readonly monikers = [StakeRunnerMoniker]\n static readonly surface = 'node' as const\n override moniker = EvmStakeRunner.defaultMoniker\n\n async addStake(staked: Address, amount: bigint): Promise<boolean> {\n const result = await (this.contract).addStake(getAddress(toEthAddress(staked)), amount)\n await result.wait()\n return true\n }\n\n async removeStake(slot: bigint): Promise<boolean> {\n const result = await (this.contract).removeStake(slot)\n await result.wait()\n return true\n }\n\n async withdrawStake(slot: bigint): Promise<boolean> {\n const result = await (this.contract).withdrawStake(slot)\n await result.wait()\n return true\n }\n\n protected override connectContract(address: EthAddress) {\n return IStakedXyoChain__factory.connect(address, this.params.runner)\n }\n}\n", "export { type EvmChainStakeViewerParams, EvmStakeTotalsViewer } from '@xyo-network/xl1-sdk'\n", "export { isRpcRangeLimitError, rpcRangeLimitFromError } from '@xyo-network/xl1-sdk'\n", "export { isRpcRateLimitError } from '@xyo-network/xl1-sdk'\n", "export { type RpcRateLimitBackoffOptions, withRpcRateLimitBackoff } from '@xyo-network/xl1-sdk'\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAsBO,IAAM,kBAAN,MAAiD;AAAA,EACtD,eAA0B;AACxB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,kBAAwB;AACtB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,SAAS,cAAkC,cAAgD;AACzF,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,uBAAuB,cAA8B;AACnD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,eAAwB;AACtB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,eAAe,OAA+B;AAC5C,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,mBAAmB,OAA+B;AAChD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,oBAAoB,OAAiC;AACnD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,gBAAgB,cAAiD,cAAsC;AACrG,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,eAAe,aAAmB,cAAgC,oBAAmD;AACnH,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,eAAqB;AACnB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,eAAe,UAAmB,cAAsC;AACtE,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,mBAAmB,YAA8B,WAA8B;AAC7E,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,qBAAqB,cAAgC,WAA8B;AACjF,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,mCAAmC,YAAoC;AACrE,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,qCAAqC,cAAsC;AACzE,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,YAAY,UAAmB,cAAgD;AAC7E,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,mBAA6B;AAC3B,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,qBAAqB,mBAA2C;AAC9D,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,kBAAkB,mBAA2C;AAC3D,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,YAAY,SAAmC;AAC7C,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,iBAAiB,UAAmB,cAAuB,cAAgD;AACzG,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,sCAAsC,YAA8B,mBAAyD;AAC3H,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,wCAAwC,cAAgC,mBAAyD;AAC/H,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,yBAAyB,kBAAoE;AAC3F,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,wBAAwB,UAAmB,cAAsC;AAC/E,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,0BAA0B,kBAAuE;AAC/F,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,gCAAgC,YAA8B,aAA6B;AACzF,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,kCAAkC,cAAgC,aAA6B;AAC7F,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,6BAA6B,YAAoC;AAC/D,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,+BAA+B,cAAsC;AACnE,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,cAAsE;AACpE,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,eAAqB;AACnB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,2BAAiC;AAC/B,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,aAAsB;AACpB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,qBAA2B;AACzB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,cAAc,SAAuB;AACnC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,kCAAwC;AACtC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,sBAA8B;AAC5B,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,uBAAuB,cAAgD;AACrE,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,oBAAoB,cAA8F;AAChH,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,SAAS,UAAmB,UAA6C;AACvE,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,oBAAoB,cAAuH;AACzI,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,mBAAmB,WAA6B,KAAgC;AAC9E,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,eAAe,QAAyB,OAAyB,SAAoC;AACnG,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,iBAAiB,SAAuI;AACtJ,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,cAAgC;AAC9B,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,oBAAoB,mBAAkC;AACpD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,gBAAgB,iBAAuC;AACrD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AACF;;;ACpNO,SAAS,iBACd,WACA,SACA,WACoB;AACpB,MAAI,CAAC,OAAO,UAAU,SAAS,KAAK,YAAY,GAAG;AACjD,UAAM,IAAI,UAAU,0CAA0C,SAAS,EAAE;AAAA,EAC3E;AACA,MAAI,CAAC,OAAO,SAAS,SAAS,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG;AAC5D,UAAM,IAAI,UAAU,sDAAsD,SAAS,KAAK,OAAO,GAAG;AAAA,EACpG;AACA,MAAI,YAAY,SAAS;AACvB,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,SAA6B,CAAC;AACpC,WAAS,QAAQ,WAAW,SAAS,SAAS,SAAS,WAAW;AAChE,UAAM,MAAM,KAAK,IAAI,QAAQ,YAAY,GAAG,OAAO;AACnD,WAAO,KAAK,CAAC,OAAO,GAAG,CAAC;AAAA,EAC1B;AACA,SAAO;AACT;;;AC3BA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;ACLP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;ACJP,SAAS,WAAW,eAAe;AAInC;AAAA,EACE;AAAA,EAAiB;AAAA,EAAiB;AAAA,OAC7B;AAGA,IAAM,eAAe,CAC1B,YACA,UACA,aACiB;AACjB,QAAM,mBAAmB,SAAS,SAAS,WAAW;AACtD,QAAM,iBAAiB,SAAS,YAAY,WAAW;AAEvD,QAAM,OAAO,mBAAmB;AAEhC,QAAM,gBAAgB,UAAU,QAAQ,IAAI,WAAW;AACvD,QAAM,yBAAyB,UAAU,QAAQ,IAAI,cAAc,cAAc,EAAE,QAAQ,IAAI;AAC/F,QAAM,eAAe,yBAAyB;AAE9C,SAAO;AAAA,IACL,OAAO,gBAAgB,CAAC,WAAW,QAAQ,SAAS,MAAM,GAAG,IAAI;AAAA,IACjE,MAAM;AAAA,IACN,MAAM,UAAU,QAAQ,IAAI,OAAO,gBAAgB,QAAQ,IAAI;AAAA,IAC/D,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB;AAAA,EACF;AACF;AAEO,IAAM,wBAAwB,OACnC,UACA,kBACA,mBAC0D;AAC1D,MAAI,kBAAkB,kBAAkB;AACtC,YAAQ,MAAM,oBAAoB,gBAAgB;AAClD,YAAQ,MAAM,kBAAkB,cAAc;AAC9C,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AAEA,QAAM,gBAAgB,MAAM,SAAS,SAAS,gBAAgB;AAC9D,QAAM,cAAc,MAAM,SAAS,SAAS,cAAc;AAE1D,MAAI,QAAQ,aAAa,KAAK,QAAQ,WAAW,GAAG;AAClD,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACnE;AAEA,SAAO,EAAE,eAAe,YAAY;AACtC;AAEO,IAAM,wBAAwB,OACnC,UACA,OACA,aAC0B;AAC1B,QAAM,CAAC,kBAAkB,cAAc,IAAI;AAC3C,QAAM,EAAE,eAAe,YAAY,IAAI,MAAM;AAAA,IAC3C;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,SAAO,aAAa,eAAe,aAAa,QAAQ;AAC1D;;;AClEA;AAAA,EACE;AAAA,EAAU,aAAAA;AAAA,EAAW;AAAA,OAChB;AAOP;AAAA,EACE;AAAA,EAAkB,mBAAAC;AAAA,EAAiB;AAAA,OAC9B;AAKP,IAAM,uBAAuB;AAC7B,IAAM,uBAAuB;AAEtB,IAAM,uBAAuB,OAClC,UACA,YACA,kBACA,UAEA,cAAc,sBAEd,cAAc,yBACY;AAE1B,WAAS,OAAO,KAAK,cAAc,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,sDAAsD;AAGjH,QAAM,aAAa,iBAAiB,gBAAgB,IAAI,MAAM,SAAS,SAAS,OAAO,gBAAgB,CAAC,IAAI;AAG5G,WAAS,iBAAiB,gBAAgB,KAAK,iBAAiB,UAAU,GAAG,MAAM,mCAAmC;AAEtH,QAAM,qBAAqB,iBAAiB,UAAU,IAClD,aACA,SAAS,MAAM,SAAS,SAAS,QAAQ,CAAC;AAE9C,QAAM,qBAAqB,4BAA4B,UAAU;AACjE,WAAS,qBAAqB,GAAG,MAAM,yCAAyC;AAGhF,QAAM,2BAA2B,KAAK,KAAK;AAG3C,QAAM,0BAA0B,KAAK,MAAM,2BAA2B,kBAAkB;AAGxF,QAAM,iBAAiB,MAAM;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO,MAAM;AAAA,IACX;AAAA,IACAC,iBAAgB,CAAC,gBAAgB,mBAAmB,MAAM,GAAG,IAAI;AAAA,IACjE;AAAA,EACF;AACF;AAEA,IAAM,wBAAwB,OAC5B,UACA,YACA,cACA,qBACA,aACA,sBAC4B;AAC5B,UAAQ,IAAI,uBAAuB,iBAAiB,4BAA4B,mBAAmB,EAAE;AACrG,WAAS,oBAAoB,GAAG,MAAM,wDAAwD;AAE9F,QAAM,kBAAkB,WAAW;AACnC,QAAM,0BAA0B,WAAW,SAAS;AAEpD,MAAI,0BAA0B,GAAG;AAC/B,UAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AAGA,QAAM,WAAW,MAAM,SAAS,SAAS,uBAAuB;AAChE,QAAM,mBAAmB;AAAA,IACvBC,WAAU,QAAQ,IAAI,WAAW;AAAA,IACjC,MAAM,4BAA4B,uBAAuB;AAAA,EAC3D;AAEA,QAAM,gBAAgB,iBAAiB;AACvC,QAAM,uBAAuB,kBAAkB;AAG/C,QAAM,YAAY,KAAK,IAAI,uBAAuB,YAAY;AAC9D,MAAI,aAAa,aAAa;AAC5B,WAAO,iBAAiB,iBAAiB,QAAQ,IAAI;AAAA,EACvD;AAIA,MAAI;AACJ,MAAI,uBAAuB,cAAc;AAEvC,UAAM,mBAAmB,eAAe;AACxC,yBAAqB,KAAK,MAAM,sBAAsB,gBAAgB;AACtE,QAAI,qBAAqB,WAAW,QAAQ;AAC1C,2BAAqB,WAAW,SAAS;AAAA,IAC3C;AAAA,EACF,OAAO;AAEL,UAAM,mBAAmB,uBAAuB;AAChD,yBAAqB,KAAK,MAAM,sBAAsB,gBAAgB;AAAA,EACxE;AAEA,SAAO,MAAM;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB;AACF;;;AC1HA;AAAA,EACE;AAAA,EACA,gBAAAC;AAAA,OACK;AAEP,SAAS,sBAAsB;AAC/B,SAAyC,+BAAAC,oCAAmC;AAG5E,SAAS,0BAA0B;;;ACVnC;AAAA,EACE;AAAA,EAAW,YAAAC;AAAA,EACX;AAAA,EAAkB;AAAA,EAAa;AAAA,OAC1B;AACP,SAAS,iCAAiC;AAC1C,SAAS,mCAAmC;AAKrC,IAAM,sBAAsB,OACjC,QACA,qBACA,kBACA,wBACA,qBACA,uBAAuB,IACvB,0BAA0B,6BAC1B,WAAW,QACX,MAAiB,CAAC,MACG;AACrB,MAAI;AACF,UAAM,kBAAkB,IAAI,0BAA0B,MAAM;AAC5D,UAAM,iBAAiB,MAAM,gBAAgB;AAAA,MAC3C;AAAA;AAAA,MACA;AAAA;AAAA,MACA,YAAY,gBAAgB;AAAA;AAAA,MAC5B,aAAa,sBAAsB;AAAA,MACnC;AAAA;AAAA,MACA,aAAa,mBAAmB;AAAA,MAChC;AAAA,MACA,aAAa,uBAAuB;AAAA,MACpC;AAAA,MACA;AAAA,IACF;AACA,UAAM,eAAe,kBAAkB;AACvC,UAAM,0BAA0B,MAAM,eAAe,WAAW;AAChE,WAAOA,UAAS,UAAU,uBAAuB,GAAG,MAAM,kCAAkC;AAAA,EAC9F,SAAS,IAAI;AACX,YAAQ,IAAI,EAAE;AACd,UAAM;AAAA,EACR;AACF;;;AC5CA;AAAA,EACE,aAAAC;AAAA,EAAW,YAAAC;AAAA,EAAU;AAAA,OAChB;AACP,SAAS,4BAA4B,8BAA8B;AACnE,SAAS,kBAA+B;AAIxC,IAAM,YAAY,MAAM;AACtB,SAAO;AAAA,IACL,UAAU;AAAA;AAAA,IACV,UAAU,WAAW,OAAO,MAAM;AAAA,EACpC;AACF;AAEO,IAAM,6BAA6B,OACxC,QACA,gBAAgB,IAChB,MAAiB,UAAU,MACN;AACrB,MAAI;AACF,UAAM,yBAAyB,IAAI,uBAAuB,MAAM;AAChE,UAAM,iBAAiB,MAAM,uBAAuB;AAAA,MAClD,aAAa,KAAK;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa,GAAG;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,eAAe,kBAAkB;AACvC,UAAM,yBAAyB,MAAM,eAAe,WAAW;AAC/D,WAAOA,UAASD,WAAU,sBAAsB,GAAG,MAAM,kCAAkC;AAAA,EAC7F,SAAS,IAAI;AACX,YAAQ,IAAI,EAAE;AACd,UAAM;AAAA,EACR;AACF;;;ACvCA;AAAA,EACE,aAAAE;AAAA,EAAW,YAAAC;AAAA,EAAU,gBAAAC;AAAA,OAChB;AACP,SAAS,wBAAwB;AAS1B,IAAM,gCAAgC,OAAO,SAAkB,aAAuB;AAE3F,QAAM,kBAAkBA,cAAa,OAAO;AAG5C,QAAM,QAAQ,MAAM,SAAS,oBAAoB,eAAe;AAGhE,QAAM,kBAAkB,iBAAiB,EAAE,MAAM,iBAAiB,MAAM,CAAC;AAGzE,SAAOD,UAASD,WAAU,eAAe,GAAG,MAAM,+CAA+C;AACnG;AAOO,IAAM,sBAAsB,OAAO,WAAmB;AAC3D,QAAM,WAAWC,UAAS,OAAO,UAAU,MAAM,uCAAuC;AACxF,QAAM,UAAUA,UAASD,WAAU,MAAM,OAAO,WAAW,CAAC,GAAG,MAAM,sCAAsC;AAC3G,SAAO,MAAM,8BAA8B,SAAS,QAAQ;AAC9D;;;AHhBA,eAAsB,YACpB,QACA,qBACA,sBACA,wBACA,0BACA,2BACA,qBACA,uBAAuB,IACvB,0BAA0BG,8BAC1B,WAAW,QACX,KACwD;AACxD,QAAM,yBAAyBC,cAAa,mBAAmB;AAC/D,QAAM,gCAAgC,0BAA2B,MAAM,2BAA2B,QAAQ,0BAA0B,GAAG;AACvI,QAAM,kBAAkB,MAAM,oBAAoB,MAAM;AACxD,QAAM,eAAe,MAAM;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,UAAU,UAAU,MAAM;AAAA,IAC9B;AAAA,IACA;AAAA,IACA,MAAM,eAAe,KAAK,aAAa,CAAC,CAAC;AAAA,IACzC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,SAAO,CAAC,SAAS,cAAc,6BAA6B;AAC9D;;;AItDA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;;;ACPP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;AC5BP,SAAS,sBAAiD;;;ACA1D,SAAS,cAAAC,mBAAkB;AAOpB,IAAM,sBAAsB,MAAiB;AAClD,SAAO;AAAA,IACL,UAAU;AAAA;AAAA,IACV,UAAUA,YAAW,OAAO,MAAM;AAAA,EACpC;AACF;;;ACZA;AAAA,EACE;AAAA,EAAe;AAAA,EACf;AAAA,OACK;AACP,SAAS,SAAS;AAElB,IAAM,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,IAAI,EAAE,CAAC,CAAC;AACtF,IAAM,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGvD,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa,EAAE,OAAO;AAAA,EACtB,MAAM;AAAA,EACN,OAAO,EAAE,OAAO;AAAA,EAChB,QAAQ,EAAE,MAAM,UAAU;AAAA,EAC1B,iBAAiB;AAAA,EACjB,kBAAkB,EAAE,OAAO;AAC7B,CAAC;AAKM,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,WAAW,EAAE,OAAO;AAAA,EACpB,MAAM,EAAE,MAAM,mBAAmB;AAAA,EACjC,SAAS,EAAE,OAAO;AACpB,CAAC;AAKM,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,SAAS;AAAA,EACT,SAAS,EAAE,OAAO;AAAA,EAClB,iBAAiB,EAAE,OAAO;AAAA,EAC1B,WAAW,EAAE,OAAO;AAAA,EACpB,QAAQ,EAAE,QAAQ,wBAAwB;AAC5C,CAAC;AAKM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,SAAS;AAAA,EACT,OAAO,EAAE,OAAO;AAAA,EAChB,SAAS,EAAE,OAAO;AAAA,EAClB,MAAM;AACR,CAAC;AAIM,IAAM,uBAAuB,aAAa,uBAAuB,sBAAsB;AACvF,IAAM,sBAAsB,aAAa,sBAAsB,qBAAqB;AACpF,IAAM,0BAA0B,aAAa,0BAA0B,yBAAyB;;;ACrDvG,SAAS,KAAK,SAA6B;AACzC,SAAO,cAAc,QAAQ,YAAY,CAAC;AAC5C;AAEO,SAAS,uBAAuB,SAAqB,YAA4B;AACtF,SAAO,GAAG,KAAK,OAAO,CAAC,WAAW,UAAU;AAC9C;AAEO,SAAS,sBAAsB,SAA6B;AACjE,SAAO,GAAG,KAAK,OAAO,CAAC;AACzB;AAEO,SAAS,0BAA0B,SAA6B;AACrE,SAAO,GAAG,KAAK,OAAO,CAAC;AACzB;AAEO,SAAS,sBAAsB,SAA6B;AACjE,SAAO,GAAG,KAAK,OAAO,CAAC;AACzB;;;AChBO,IAAM,oCAAoC;;;ACHjD;AAAA,EACE,YAAAC;AAAA,EAAU,aAAAC;AAAA,EAAW,aAAAC;AAAA,EAAW,gBAAAC;AAAA,OAC3B;AACP,SAAS,sCAAsC;AAI/C;AAAA,EACE;AAAA,EAA2B;AAAA,EAAW;AAAA,EAAmB;AAAA,EAA+B;AAAA,OACnF;AACP,SAAS,iBAAiB;AAU1B,IAAM,oBAAoB,oBAAI,IAAY,CAAC,cAAc,gBAAgB,gBAAgB,CAAC;AAgBnF,IAAM,wBAAN,cAAoC,0BAAoF;AAAA,EAM7H,UAAU,sBAAsB;AAAA,EAEf,iBAAiB,oBAAI,IAAgC;AAAA,EACrD,oBAAoB,IAAI,UAAU,+BAA+B,GAAG;AAAA,EAC7E;AAAA,EACA;AAAA,EACA,kBAAgC,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EAER,IAAI,UAAsB;AACxB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,oBAA4B;AAC9B,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAc,UAAmC;AAC/C,WAAO,KAAK,OAAO,WAAW,MAAM,KAAK,UAAU;AAAA,EACrD;AAAA,EAEA,aAAsB,cAAc,QAA8C;AAChF,UAAM,gBAAgB,OAAO,SAAS;AACtC,UAAM,UAAU,OAAO,WAClBC,cAAaC,UAAS,eAAe,OAAO,IAAI,MAAM,oEAAoE,CAAC;AAChI,UAAM,UAAW,KAAwD;AACzE,UAAM,oBAAoBC,WAAU,OAAO,iBAAiB,KAAK,OAAO,sBAAsB,KAC1F,OAAO,oBACP;AAAA,MACED,UAAS,eAAe,MAAM,oEAAoE;AAAA,MAClG;AAAA,IACF;AACJ,WAAO;AAAA,MACL,GAAG,MAAM,MAAM,cAAc,MAAM;AAAA,MACnC;AAAA,MACA,mBAAmB,kBAAkB,QAAQ,QAAQ,EAAE;AAAA,MACvD,SAAS,OAAO;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,OAAqD;AACvE,UAAM,SAAS,MAAM,KAAK,YAAY,KAAK;AAC3C,WAAO,KAAK,IAAI,IAAI,GAAG,OAAO,IAAI,WAAS,MAAM,KAAK,EAAE,CAAC,IAAI;AAAA,EAC/D;AAAA,EAEA,MAAM,YACJ,QAAqC,CAAC,GAAG,QAAQ,GACjD,QAC8B;AAC9B,UAAM,KAAK,KAAK;AAChB,WAAO,KAAK,gBAAgB,OAAO,WAAS,KAAK,cAAc,OAAO,OAAO,MAAM,CAAC;AAAA,EACtF;AAAA,EAEQ,2BAAyC;AAC/C,UAAM,SAAS,CAAC,GAAG,KAAK,eAAe,QAAQ,CAAC,EAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EACxB,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,KAAK;AAC3B,UAAM,OAAO,CAAC,GAAG,QAAQ,GAAI,KAAK,cAAc,SAAY,CAAC,IAAI,CAAC,KAAK,SAAS,CAAE,EAC/E,QAAQ,WAAS,MAAM,IAAI,EAC3B,KAAK,CAAC,GAAG,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK;AAC/G,WAAO,KAAK,QAAQ,CAAC,QAAQ;AAC3B,YAAM,QAAQ,KAAK,kBAAkB,GAAG;AACxC,aAAO,UAAU,SAAY,CAAC,IAAI,CAAC,KAAK;AAAA,IAC1C,CAAC;AAAA,EACH;AAAA,EAEA,MAAc,UAAU,MAAgC;AACtD,UAAM,WAAW,MAAM,KAAK,QAAQ,GAAG,KAAK,iBAAiB,IAAI,IAAI,EAAE;AACvE,IAAAA,UAAS,SAAS,IAAI,MAAM,mCAAmC,SAAS,MAAM,SAAS,IAAI,EAAE;AAC7F,WAAO,MAAM,SAAS,KAAK;AAAA,EAC7B;AAAA,EAEA,MAAc,cAA8C;AAC1D,SAAK,qBAAqB,YAAY;AACpC,YAAM,WAAW,wBAAwB,MAAM,KAAK,UAAU,0BAA0B,KAAK,OAAO,CAAC,GAAG,IAAI;AAC5G,MAAAA,UAAS,SAAS,QAAQ,YAAY,MAAM,KAAK,QAAQ,YAAY,GAAG,MAAM,2CAA2C;AACzH,aAAO;AAAA,IACT,GAAG;AACH,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA;AAAA,EAGQ,cACN,OACA,OACA,QACS;AACT,QAAI,MAAM,CAAC,MAAM,YAAY,MAAM,OAAO,MAAM,CAAC,EAAG,QAAO;AAC3D,QAAI,MAAM,OAAO,MAAM,CAAC,EAAG,QAAO;AAClC,QAAIC,WAAU,QAAQ,IAAI,KAAK,MAAM,SAAS,OAAO,KAAM,QAAO;AAClE,QAAIA,WAAU,QAAQ,MAAM,EAAE,KAAK,MAAM,KAAK,OAAO,OAAO,KAAK,GAAI,QAAO;AAC5E,QAAIA,WAAU,QAAQ,MAAM,MAAM,KAAK,MAAM,KAAK,WAAW,OAAO,KAAK,OAAQ,QAAO;AACxF,QAAIA,WAAU,QAAQ,MAAM,MAAM,KAAK,MAAM,KAAK,WAAW,OAAO,KAAK,OAAQ,QAAO;AACxF,WAAO;AAAA,EACT;AAAA,EAEQ,kBAAkB,KAA+C;AACvE,UAAM,SAAS,KAAK,kBAAkB,SAAS,EAAE,MAAM,IAAI,MAAM,QAAQ,IAAI,OAAO,CAAC;AACrF,QAAI,WAAW,QAAQ,CAAC,kBAAkB,IAAI,OAAO,IAAI,EAAG;AAC5D,UAAM,CAAC,QAAQ,QAAQ,IAAI,MAAM,IAAI,OAAO;AAC5C,WAAO;AAAA,MACL,MAAM,OAAO;AAAA,MACb,MAAM;AAAA,QACJ,QAAQ,UAAU,MAAgB;AAAA,QAClC,IAAI,OAAO,EAAE;AAAA,QACb,QAAQC,WAAU,MAAgB;AAAA,QAClC,QAAQA,WAAU,MAAgB;AAAA,MACpC;AAAA,MACA,MAAM,IAAI;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,MAAc,OAAsB;AAClC,SAAK,gBAAgB,KAAK,aAAa,EAAE,QAAQ,MAAM;AACrD,WAAK,cAAc;AAAA,IACrB,CAAC;AACD,UAAM,KAAK;AAAA,EACb;AAAA,EAEA,MAAc,eAA8B;AAC1C,UAAM,WAAW,MAAM,KAAK,YAAY;AACxC,UAAM,OAAO,oBAAoB,MAAM,KAAK,UAAU,sBAAsB,KAAK,OAAO,CAAC,GAAG,IAAI;AAChG,IAAAF,UAAS,KAAK,QAAQ,YAAY,MAAM,KAAK,QAAQ,YAAY,GAAG,MAAM,uCAAuC;AACjH,IAAAA,UAAS,KAAK,YAAY,SAAS,SAAS,MAAM,gCAAgC;AAClF,QAAI,KAAK,aAAa,UAAU,KAAK,SAAS,KAAK,YAAY,SAAS,KAAK,KAAM;AAEnF,QAAI,KAAK,gBAAgB,WAAc,KAAK,QAAQ,KAAK,YAAY,SAAU,KAAK,UAAU,KAAK,YAAY,SAAS,KAAK,SAAS,KAAK,YAAY,OAAQ;AAC7J,WAAK,eAAe,MAAM;AAC1B,WAAK,YAAY;AAAA,IACnB;AAEA,UAAM,oBAAoB,KAAK,IAAI,GAAG,KAAK,QAAQ,SAAS,kBAAkB,CAAC;AAC/E,UAAM,qBAAqB,KAAK,MAAM,oBAAoB,SAAS,SAAS;AAC5E,UAAM,sBAAsB,MAAM,KAAK,EAAE,QAAQ,mBAAmB,GAAG,CAAC,GAAG,UAAU,KAAK,EACvF,OAAO,WAAS,CAAC,KAAK,eAAe,IAAI,KAAK,CAAC;AAClD,UAAM,QAAQ,IAAI,oBAAoB,IAAI,OAAO,UAAU;AACzD,YAAM,QAAQ,qBAAqB,MAAM,KAAK,UAAU,uBAAuB,KAAK,SAAS,KAAK,CAAC,GAAG,IAAI;AAC1G,YAAM,eAAe,SAAS,kBAAkB,QAAQ,SAAS;AACjE,MAAAA,UAAS,MAAM,cAAc,cAAc,MAAM,yBAAyB,KAAK,4BAA4B;AAC3G,MAAAA,UAAS,MAAM,YAAY,eAAe,SAAS,YAAY,GAAG,MAAM,yBAAyB,KAAK,gBAAgB;AACtH,WAAK,eAAe,IAAI,OAAO,KAAK;AAAA,IACtC,CAAC,CAAC;AAEF,UAAM,YAAY,SAAS,kBAAkB,qBAAqB,SAAS;AAC3E,SAAK,YAAY,aAAa,KAAK,QAC/B,qBAAqB,MAAM,KAAK,UAAU,GAAG,sBAAsB,KAAK,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,GAAG,IAAI,IAC3G;AACJ,QAAI,KAAK,cAAc,QAAW;AAChC,MAAAA,UAAS,KAAK,UAAU,cAAc,WAAW,MAAM,gDAAgD;AACvG,MAAAA,UAAS,KAAK,UAAU,YAAY,KAAK,OAAO,MAAM,oDAAoD;AAAA,IAC5G;AACA,SAAK,kBAAkB,KAAK,yBAAyB;AACrD,SAAK,cAAc;AAAA,EACrB;AACF;AAhKE,cADW,uBACK,mBAAkB,CAAC,MAAM;AACzC,cAFW,uBAEK,kBAAiB;AACjC,cAHW,uBAGK,gBAAe,CAAC;AAChC,cAJW,uBAIK,YAAW,CAAC,wBAAwB;AACpD,cALW,uBAKK,WAAU;AALf,wBAAN;AAAA,EADN,kBAAkB;AAAA,GACN;;;ACrCb,SAAS,2BAAmD;;;ACA5D,SAAS,YAAAG,iBAAgB;;;ACAzB,SAAS,yBAA+C;;;ADUjD,IAAe,oBAAf,cAEL,kBAAsC;AAAA,EACtC,aAAsB,cAA2C,QAAoD;AACnH,UAAM,SAASC,UAAS,QAAQ,QAAQ,MAAM,IAAI,MAAM,mBAAmB,CAAC;AAC5E,UAAM,WAAWA,UAAS,OAAO,UAAU,MAAM,IAAI,MAAM,qCAAqC,CAAC;AACjG,WAAO,EAAE,GAAI,MAAM,MAAM,cAAc,EAAE,GAAG,QAAQ,SAAS,CAAC,GAAI,OAAO;AAAA,EAC3E;AACF;;;AElBA,SAAS,8BAAiE;;;ACC1E,SAAS,gBAAAC,qBAAoB;AAE7B,SAAS,gCAAgC;AAEzC;AAAA,EACE,qBAAAC;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB;AAQpB,IAAM,iBAAN,cAA6B,kBAAgF;AAAA,EAMzG,UAAU,eAAe;AAAA,EAElC,MAAM,SAAS,QAAiB,QAAkC;AAChE,UAAM,SAAS,MAAO,KAAK,SAAU,SAAS,WAAWC,cAAa,MAAM,CAAC,GAAG,MAAM;AACtF,UAAM,OAAO,KAAK;AAClB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY,MAAgC;AAChD,UAAM,SAAS,MAAO,KAAK,SAAU,YAAY,IAAI;AACrD,UAAM,OAAO,KAAK;AAClB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,cAAc,MAAgC;AAClD,UAAM,SAAS,MAAO,KAAK,SAAU,cAAc,IAAI;AACvD,UAAM,OAAO,KAAK;AAClB,WAAO;AAAA,EACT;AAAA,EAEmB,gBAAgB,SAAqB;AACtD,WAAO,yBAAyB,QAAQ,SAAS,KAAK,OAAO,MAAM;AAAA,EACrE;AACF;AA5BE,cADW,gBACK,mBAAkB,CAAC,SAAS;AAC5C,cAFW,gBAEK,kBAAiB;AACjC,cAHW,gBAGK,gBAAe,CAAC;AAChC,cAJW,gBAIK,YAAW,CAAC,kBAAkB;AAC9C,cALW,gBAKK,WAAU;AALf,iBAAN;AAAA,EADNC,mBAAkB;AAAA,GACN;;;ACjBb,SAAyC,4BAA4B;;;ACArE,SAAS,sBAAsB,8BAA8B;;;ACA7D,SAAS,2BAA2B;;;ACApC,SAA0C,+BAA+B;",
6
- "names": ["isDefined", "asEthBlockRange", "asEthBlockRange", "isDefined", "toEthAddress", "XYO_NETWORK_STAKING_ADDRESS", "assertEx", "asAddress", "assertEx", "asAddress", "assertEx", "toEthAddress", "XYO_NETWORK_STAKING_ADDRESS", "toEthAddress", "parseUnits", "assertEx", "isDefined", "toAddress", "toEthAddress", "toEthAddress", "assertEx", "isDefined", "toAddress", "assertEx", "assertEx", "toEthAddress", "creatableProvider", "toEthAddress", "creatableProvider"]
3
+ "sources": ["../../src/modules/ethereum/BaseEthProvider.ts", "../../src/modules/ethereum/block/blockRangeChunks.ts", "../../src/modules/ethereum/block/estimateBlockNumberAt.ts", "../../src/modules/ethereum/block/findContractDeploymentBlock.ts", "../../src/modules/ethereum/block/rate/blockRate.ts", "../../src/modules/ethereum/block/rate/timeRate.ts", "../../src/modules/ethereum/createChain.ts", "../../src/modules/ethereum/createChainContract.ts", "../../src/modules/ethereum/createChainRewardsContract.ts", "../../src/modules/ethereum/nextContractAddress.ts", "../../src/modules/ethereum/drivers/EvmStakeEventsViewer.ts", "../../src/modules/ethereum/drivers/EvmStakeEventZod.ts", "../../src/modules/ethereum/drivers/EvmStakeViewer.ts", "../../src/modules/ethereum/ethereum.ts", "../../src/modules/ethereum/indexing/RestStakeEventsViewer.ts", "../../src/modules/ethereum/indexing/index.ts", "../../src/modules/ethereum/providers/AbstractEvmProvider.ts", "../../src/modules/ethereum/providers/AbstractEvmRunner.ts", "../../src/modules/ethereum/providers/AbstractEvmViewer.ts", "../../src/modules/ethereum/providers/EvmChainContractViewer.ts", "../../src/modules/ethereum/providers/EvmStakeRunner.ts", "../../src/modules/ethereum/providers/EvmStakeTotalsViewer.ts", "../../src/modules/ethereum/rpc/isRpcRangeLimitError.ts", "../../src/modules/ethereum/rpc/isRpcRateLimitError.ts", "../../src/modules/ethereum/rpc/withRpcRateLimitBackoff.ts"],
4
+ "sourcesContent": ["import type {\n Address, BlockAPI,\n BlockNumberOrTag,\n CompileResultAPI,\n EthExecutionAPI,\n FeeHistoryResultAPI,\n Filter,\n FilterResultsAPI,\n HexString, HexString8Bytes,\n HexString32Bytes,\n HexString256Bytes,\n HexStringBytes,\n SignedTransactionInfoAPI,\n SyncingStatusAPI,\n TransactionCallAPI,\n TransactionInfoAPI,\n TransactionReceiptAPI,\n TransactionWithSenderAPI,\n Uint,\n Uint256,\n} from 'web3-types'\n\nexport class BaseEthProvider implements EthExecutionAPI {\n eth_accounts(): Address[] {\n throw new Error('Method not implemented.')\n }\n\n eth_blockNumber(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_call(_transaction: TransactionCallAPI, _blockNumber: BlockNumberOrTag): HexStringBytes {\n throw new Error('Method not implemented.')\n }\n\n eth_clearSubscriptions(_keepSyncing?: boolean): void {\n throw new Error('Method not implemented.')\n }\n\n eth_coinbase(): Address {\n throw new Error('Method not implemented.')\n }\n\n eth_compileLLL(_code: string): HexStringBytes {\n throw new Error('Method not implemented.')\n }\n\n eth_compileSerpent(_code: string): HexStringBytes {\n throw new Error('Method not implemented.')\n }\n\n eth_compileSolidity(_code: string): CompileResultAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_estimateGas(_transaction: Partial<TransactionWithSenderAPI>, _blockNumber: BlockNumberOrTag): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_feeHistory(_blockCount: Uint, _newestBlock: BlockNumberOrTag, _rewardPercentiles: number[]): FeeHistoryResultAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_gasPrice(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getBalance(_address: Address, _blockNumber: BlockNumberOrTag): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getBlockByHash(_blockHash: HexString32Bytes, _hydrated: boolean): BlockAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getBlockByNumber(_blockNumber: BlockNumberOrTag, _hydrated: boolean): BlockAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getBlockTransactionCountByHash(_blockHash: HexString32Bytes): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getBlockTransactionCountByNumber(_blockNumber: BlockNumberOrTag): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getCode(_address: Address, _blockNumber: BlockNumberOrTag): HexStringBytes {\n throw new Error('Method not implemented.')\n }\n\n eth_getCompilers(): string[] {\n throw new Error('Method not implemented.')\n }\n\n eth_getFilterChanges(_filterIdentifier: Uint): FilterResultsAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getFilterLogs(_filterIdentifier: Uint): FilterResultsAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getLogs(_filter: Filter): FilterResultsAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getStorageAt(_address: Address, _storageSlot: Uint256, _blockNumber: BlockNumberOrTag): HexStringBytes {\n throw new Error('Method not implemented.')\n }\n\n eth_getTransactionByBlockHashAndIndex(_blockHash: HexString32Bytes, _transactionIndex: Uint): TransactionInfoAPI | undefined {\n throw new Error('Method not implemented.')\n }\n\n eth_getTransactionByBlockNumberAndIndex(_blockNumber: BlockNumberOrTag, _transactionIndex: Uint): TransactionInfoAPI | undefined {\n throw new Error('Method not implemented.')\n }\n\n eth_getTransactionByHash(_transactionHash: HexString32Bytes): TransactionInfoAPI | undefined {\n throw new Error('Method not implemented.')\n }\n\n eth_getTransactionCount(_address: Address, _blockNumber: BlockNumberOrTag): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getTransactionReceipt(_transactionHash: HexString32Bytes): TransactionReceiptAPI | undefined {\n throw new Error('Method not implemented.')\n }\n\n eth_getUncleByBlockHashAndIndex(_blockHash: HexString32Bytes, _uncleIndex: Uint): BlockAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getUncleByBlockNumberAndIndex(_blockNumber: BlockNumberOrTag, _uncleIndex: Uint): BlockAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_getUncleCountByBlockHash(_blockHash: HexString32Bytes): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getUncleCountByBlockNumber(_blockNumber: BlockNumberOrTag): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_getWork(): [HexString32Bytes, HexString32Bytes, HexString32Bytes] {\n throw new Error('Method not implemented.')\n }\n\n eth_hashrate(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_maxPriorityFeePerGas(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_mining(): boolean {\n throw new Error('Method not implemented.')\n }\n\n eth_newBlockFilter(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_newFilter(_filter: Filter): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_newPendingTransactionFilter(): Uint {\n throw new Error('Method not implemented.')\n }\n\n eth_protocolVersion(): string {\n throw new Error('Method not implemented.')\n }\n\n eth_sendRawTransaction(_transaction: HexStringBytes): HexString32Bytes {\n throw new Error('Method not implemented.')\n }\n\n eth_sendTransaction(_transaction: TransactionWithSenderAPI | Partial<TransactionWithSenderAPI>): HexString32Bytes {\n throw new Error('Method not implemented.')\n }\n\n eth_sign(_address: Address, _message: HexStringBytes): HexString256Bytes {\n throw new Error('Method not implemented.')\n }\n\n eth_signTransaction(_transaction: TransactionWithSenderAPI | Partial<TransactionWithSenderAPI>): HexStringBytes | SignedTransactionInfoAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_submitHashrate(_hashRate: HexString32Bytes, _id: HexString32Bytes): boolean {\n throw new Error('Method not implemented.')\n }\n\n eth_submitWork(_nonce: HexString8Bytes, _hash: HexString32Bytes, _digest: HexString32Bytes): boolean {\n throw new Error('Method not implemented.')\n }\n\n eth_subscribe(..._params: ['newHeads'] | ['newPendingTransactions'] | ['syncing'] | ['logs', { address?: HexString; topics?: HexString[] }]): HexString {\n throw new Error('Method not implemented.')\n }\n\n eth_syncing(): SyncingStatusAPI {\n throw new Error('Method not implemented.')\n }\n\n eth_uninstallFilter(_filterIdentifier: Uint): boolean {\n throw new Error('Method not implemented.')\n }\n\n eth_unsubscribe(_subscriptionId: HexString): HexString {\n throw new Error('Method not implemented.')\n }\n}\n", "/**\n * Split an inclusive block range into fixed-size inclusive chunks.\n *\n * @example\n * blockRangeChunks(0, 5000, 2000) // [[0, 1999], [2000, 3999], [4000, 5000]]\n */\nexport function blockRangeChunks(\n fromBlock: number,\n toBlock: number,\n chunkSize: number,\n): [number, number][] {\n if (!Number.isInteger(chunkSize) || chunkSize < 1) {\n throw new TypeError(`chunkSize must be an integer >= 1, got ${chunkSize}`)\n }\n if (!Number.isFinite(fromBlock) || !Number.isFinite(toBlock)) {\n throw new TypeError(`fromBlock and toBlock must be finite numbers, got [${fromBlock}, ${toBlock}]`)\n }\n if (fromBlock > toBlock) {\n return []\n }\n\n const chunks: [number, number][] = []\n for (let start = fromBlock; start <= toBlock; start += chunkSize) {\n const end = Math.min(start + chunkSize - 1, toBlock)\n chunks.push([start, end])\n }\n return chunks\n}\n", "export {\n DEFAULT_ESTIMATE_BLOCK_DATE,\n DEFAULT_EVM_BLOCK_TIME_SEC,\n estimateBlockNumberAt,\n estimateBlockNumberFromHead,\n} from '@xyo-network/xl1-sdk'\n", "export {\n configuredDeploymentBlock,\n findContractDeploymentBlock,\n resolveContractDeploymentBlock,\n} from '@xyo-network/xl1-sdk'\n", "import { isDefined, isFalsy } from '@ariestools/sdk'\nimport type {\n EthBlockNumber, EthBlockRange, EthBlockRate, TimeDurations,\n} from '@xyo-network/xl1-sdk'\nimport {\n asEthBlockRange, rateMultipliers, timeDurations,\n} from '@xyo-network/xl1-sdk'\nimport type { Block, Provider } from 'ethers/providers'\n\nexport const ethBlockRate = (\n startBlock: Block,\n endBlock: Block,\n timeUnit?: keyof TimeDurations,\n): EthBlockRate => {\n const heightDifference = endBlock.number - startBlock.number\n const timeDifference = endBlock.timestamp - startBlock.timestamp\n\n const rate = heightDifference / timeDifference\n\n const timeUnitValue = isDefined(timeUnit) ? timeUnit : 'millis'\n const returnedTimeDifference = isDefined(timeUnit) ? timeDurations(timeDifference)[timeUnit] : timeDifference\n const timePerBlock = returnedTimeDifference / heightDifference\n\n return {\n range: asEthBlockRange([startBlock.number, endBlock.number], true),\n span: heightDifference,\n rate: isDefined(timeUnit) ? rate * rateMultipliers[timeUnit] : rate,\n timeUnit: timeUnitValue,\n timeDifference: returnedTimeDifference,\n timePerBlock,\n }\n}\n\nexport const getEthBlockRateBlocks = async (\n provider: Provider,\n startBlockHeight: EthBlockNumber,\n endBlockHeight: EthBlockNumber,\n): Promise<{ endingBlock: Block; startingBlock: Block }> => {\n if (endBlockHeight <= startBlockHeight) {\n console.error('startBlockHeight', startBlockHeight)\n console.error('endBlockHeight', endBlockHeight)\n throw new Error('End block height must be greater than start block height')\n }\n\n const startingBlock = await provider.getBlock(startBlockHeight)\n const endingBlock = await provider.getBlock(endBlockHeight)\n\n if (isFalsy(startingBlock) || isFalsy(endingBlock)) {\n throw new Error('Could not retrieve blocks for speed calculation')\n }\n\n return { startingBlock, endingBlock }\n}\n\nexport const calculateEthBlockRate = async (\n provider: Provider,\n range: EthBlockRange,\n timeUnit?: keyof TimeDurations,\n): Promise<EthBlockRate> => {\n const [startBlockHeight, endBlockHeight] = range\n const { startingBlock, endingBlock } = await getEthBlockRateBlocks(\n provider,\n startBlockHeight,\n endBlockHeight,\n )\n return ethBlockRate(startingBlock, endingBlock, timeUnit)\n}\n", "import {\n assertEx, isDefined, isDefinedNotNull,\n} from '@ariestools/sdk'\nimport type {\n EthBlockNumber,\n EthBlockRate,\n SingleTimeConfig,\n TimeDurations,\n} from '@xyo-network/xl1-sdk'\nimport {\n asEthBlockNumber, asEthBlockRange, getTimeConfigInMilliseconds,\n} from '@xyo-network/xl1-sdk'\nimport type { Block, Provider } from 'ethers/providers'\n\nimport { calculateEthBlockRate } from './blockRate.ts'\n\nconst DEFAULT_TOLERANCE_MS = 30_000 // 30 seconds\nconst DEFAULT_MAX_ATTEMPTS = 20\n\nexport const calculateEthTimeRate = async (\n provider: Provider,\n timeConfig: SingleTimeConfig,\n startBlockNumber?: EthBlockNumber,\n timeUnit?: keyof TimeDurations,\n // default tolerance of 30 seconds to cut down on iterations\n toleranceMs = DEFAULT_TOLERANCE_MS,\n // maximum recursive attempts to prevent infinite loops\n maxAttempts = DEFAULT_MAX_ATTEMPTS,\n): Promise<EthBlockRate> => {\n // check the time config has only one key\n assertEx(Object.keys(timeConfig ?? {}).length === 1, () => 'Only one time unit should be specified in timeConfig')\n\n // resolve the starting block\n const startBlock = isDefinedNotNull(startBlockNumber) ? await provider.getBlock(BigInt(startBlockNumber)) : null\n\n // Ensure the start block could be resolved\n assertEx(isDefinedNotNull(startBlockNumber) && isDefinedNotNull(startBlock), () => 'Start block could not be resolved')\n\n const resolvedStartBlock = isDefinedNotNull(startBlock)\n ? startBlock\n : assertEx(await provider.getBlock('latest'))\n\n const timeInMilliseconds = getTimeConfigInMilliseconds(timeConfig)\n assertEx(timeInMilliseconds > 0, () => 'Time duration must be greater than zero')\n\n // Estimate blocks per milliseconds (bpm) based on average block time\n const blocksPerMillisecondRate = 1 / (12 * 1000) // Approximate average block time of 12 seconds\n\n // Calculate the number of blocks in the given time duration\n const initialBlocksInDuration = Math.floor(blocksPerMillisecondRate * timeInMilliseconds)\n\n // Recursively find the proper end block\n const endBlockNumber = await findEndBlockRecursive(\n provider,\n resolvedStartBlock,\n timeInMilliseconds,\n initialBlocksInDuration,\n toleranceMs,\n maxAttempts,\n )\n\n return await calculateEthBlockRate(\n provider,\n asEthBlockRange([endBlockNumber, resolvedStartBlock.number], true),\n timeUnit,\n )\n}\n\nconst findEndBlockRecursive = async (\n provider: Provider,\n startBlock: Block,\n targetTimeMs: number,\n estimatedBlocksBack: number,\n toleranceMs: number,\n attemptsRemaining: number,\n): Promise<EthBlockNumber> => {\n console.log(`Attempts remaining: ${attemptsRemaining}, Estimated blocks back: ${estimatedBlocksBack}`)\n assertEx(attemptsRemaining > 0, () => 'Maximum attempts reached while searching for end block')\n\n const startBlockEpoch = startBlock.timestamp\n const estimatedEndBlockNumber = startBlock.number - estimatedBlocksBack\n\n if (estimatedEndBlockNumber < 0) {\n throw new Error('Estimated end block number is less than zero')\n }\n\n // Fetch the estimated end block\n const endBlock = await provider.getBlock(estimatedEndBlockNumber)\n const resolvedEndBlock = assertEx(\n isDefined(endBlock) ? endBlock : undefined,\n () => `Could not retrieve block ${estimatedEndBlockNumber} for time rate calculation`,\n )\n\n const endBlockEpoch = resolvedEndBlock.timestamp\n const actualTimeDifference = startBlockEpoch - endBlockEpoch\n\n // Check if we're within tolerance\n const timeDelta = Math.abs(actualTimeDifference - targetTimeMs)\n if (timeDelta <= toleranceMs) {\n return asEthBlockNumber(resolvedEndBlock.number, true)\n }\n\n // TODO - in order to support older POW days, we might need to shift away from using adjustmentFactor but do a pure binary search\n // Calculate adjustment factor and recursively search\n let adjustedBlocksBack: number\n if (actualTimeDifference < targetTimeMs) {\n // Need to go further back\n const adjustmentFactor = targetTimeMs / actualTimeDifference\n adjustedBlocksBack = Math.floor(estimatedBlocksBack * adjustmentFactor)\n if (adjustedBlocksBack > startBlock.number) {\n adjustedBlocksBack = startBlock.number / 2\n }\n } else {\n // Need to come forward\n const adjustmentFactor = actualTimeDifference / targetTimeMs\n adjustedBlocksBack = Math.floor(estimatedBlocksBack / adjustmentFactor)\n }\n\n return await findEndBlockRecursive(\n provider,\n startBlock,\n targetTimeMs,\n adjustedBlocksBack,\n toleranceMs,\n attemptsRemaining - 1,\n )\n}\n", "import type {\n Address,\n EthAddress,\n} from '@ariestools/sdk'\nimport {\n toAddress,\n toEthAddress,\n} from '@ariestools/sdk'\nimport type { AccountInstance } from '@xyo-network/sdk'\nimport { PayloadBuilder } from '@xyo-network/sdk'\nimport { type HydratedBlockWithHashMeta, XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-sdk'\nimport type { Signer } from 'ethers/providers'\n\nimport { createGenesisBlock } from '#protocol'\n\nimport { createChainContract } from './createChainContract.ts'\nimport { createChainRewardsContract } from './createChainRewardsContract.ts'\nimport type { GasConfig } from './ethereum.ts'\nimport { nextContractAddress } from './nextContractAddress.ts'\n\nexport async function createChain(\n signer: Signer,\n stakingTokenAddress: EthAddress | Address,\n initialBlockProducer: AccountInstance,\n rewardsContractAddress: Address | null,\n genesisBlockRewardAmount: bigint,\n genesisBlockRewardAddress: Address,\n minWithdrawalBlocks: bigint,\n maxStakersPerAddress = 10,\n unlimitedStakingAddress = XYO_NETWORK_STAKING_ADDRESS,\n minStake = 10_000n,\n gas?: GasConfig,\n): Promise<[Address, HydratedBlockWithHashMeta, Address]> {\n const ethStakingTokenAddress = toEthAddress(stakingTokenAddress)\n const rewardContractAddressResolved = rewardsContractAddress ?? (await createChainRewardsContract(signer, genesisBlockRewardAmount, gas))\n const contractAddress = await nextContractAddress(signer)\n const genesisBlock = await createGenesisBlock(\n initialBlockProducer,\n contractAddress,\n genesisBlockRewardAmount,\n genesisBlockRewardAddress,\n )\n const chainId = toAddress(await createChainContract(\n signer,\n ethStakingTokenAddress,\n await PayloadBuilder.hash(genesisBlock[0]),\n rewardContractAddressResolved,\n minWithdrawalBlocks,\n maxStakersPerAddress,\n unlimitedStakingAddress,\n minStake,\n gas,\n ))\n return [chainId, genesisBlock, rewardContractAddressResolved]\n}\n", "import type {\n Address, EthAddress, Hash,\n} from '@ariestools/sdk'\nimport {\n asAddress, assertEx,\n ETH_ZERO_ADDRESS, hexToBigInt, toEthAddress,\n} from '@ariestools/sdk'\nimport { StakedXyoChainV2__factory } from '@xyo-network/typechain'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-sdk'\nimport type { Signer } from 'ethers/providers'\n\nimport type { GasConfig } from './ethereum.ts'\n\nexport const createChainContract = async (\n signer: Signer,\n stakingTokenAddress: EthAddress,\n genesisBlockHash: Hash,\n rewardsContractAddress: Address,\n minWithdrawalBlocks: bigint,\n maxStakersPerAddress = 10,\n unlimitedStakingAddress = XYO_NETWORK_STAKING_ADDRESS,\n minStake = 10_000n,\n gas: GasConfig = {},\n): Promise<Address> => {\n try {\n const xyoChainFactory = new StakedXyoChainV2__factory(signer)\n const deployResponse = await xyoChainFactory.deploy(\n ETH_ZERO_ADDRESS, // forkFromChainId\n 0n, // forkFromLastBlockNumber\n hexToBigInt(genesisBlockHash), // forkFromLastHash\n toEthAddress(rewardsContractAddress),\n minWithdrawalBlocks, // min withdraw blocks\n toEthAddress(stakingTokenAddress),\n maxStakersPerAddress,\n toEthAddress(unlimitedStakingAddress),\n minStake,\n gas,\n )\n await deployResponse.waitForDeployment()\n const xyoChainContractAddress = await deployResponse.getAddress()\n return assertEx(asAddress(xyoChainContractAddress), () => 'Invalid staking contract address')\n } catch (ex) {\n console.log(ex)\n throw ex\n }\n}\n", "import type { Address } from '@ariestools/sdk'\nimport {\n asAddress, assertEx, toFixedPoint,\n} from '@ariestools/sdk'\nimport { XyoChainRewards__factory as XyoChainRewardsFactory } from '@xyo-network/typechain'\nimport { parseUnits, type Signer } from 'ethers'\n\nimport type { GasConfig } from './ethereum.ts'\n\nconst gasConfig = () => {\n return {\n gasLimit: 2_000_000, // Set the gas limit\n gasPrice: parseUnits('100', 'gwei'),\n }\n}\n\nexport const createChainRewardsContract = async (\n signer: Signer,\n genesisReward = 0n,\n gas: GasConfig = gasConfig(),\n): Promise<Address> => {\n try {\n const xyoChainRewardsFactory = new XyoChainRewardsFactory(signer)\n const deployResponse = await xyoChainRewardsFactory.deploy(\n toFixedPoint(1000n),\n 1_000_000n,\n 95n,\n 100n,\n toFixedPoint(30n),\n genesisReward,\n 18n,\n gas,\n )\n await deployResponse.waitForDeployment()\n const xyoChainRewardsAddress = await deployResponse.getAddress()\n return assertEx(asAddress(xyoChainRewardsAddress), () => 'Invalid rewards contract address')\n } catch (ex) {\n console.log(ex)\n throw ex\n }\n}\n", "import type { Address } from '@ariestools/sdk'\nimport {\n asAddress, assertEx, toEthAddress,\n} from '@ariestools/sdk'\nimport { getCreateAddress } from 'ethers/address'\nimport type { Provider, Signer } from 'ethers/providers'\n\n/**\n * Predicts the next contract address for a contract that will be deployed\n * @param address The address of the deployer\n * @param provider The provider to use\n * @returns The predicted contract address\n */\nexport const nextContractAddressForAddress = async (address: Address, provider: Provider) => {\n // Get the deployer address\n const deployerAddress = toEthAddress(address)\n\n // Get the next nonce for the deployer account\n const nonce = await provider.getTransactionCount(deployerAddress)\n\n // Predict the next deployed contract contract address\n const contractAddress = getCreateAddress({ from: deployerAddress, nonce })\n\n // Return the predicted contract address\n return assertEx(asAddress(contractAddress), () => 'Unable to convert contract address to address')\n}\n\n/**\n * Predicts the next contract address for a contract that will be deployed\n * @param signer The signer to use when deploying the contract\n * @returns The predicted contract address\n */\nexport const nextContractAddress = async (signer: Signer) => {\n const provider = assertEx(signer.provider, () => 'Unable to obtain provider from signer')\n const address = assertEx(asAddress(await signer.getAddress()), () => 'Unable to obtain address from signer')\n return await nextContractAddressForAddress(address, provider)\n}\n", "export {\n DEFAULT_EVENT_QUERY_INITIAL_DELAY_MS,\n DEFAULT_EVENT_QUERY_MAX_ATTEMPTS,\n DEFAULT_EVENT_QUERY_START_CHUNK_SIZE,\n type EvmStakeEventsParams,\n EvmStakeEventsViewer,\n MIN_EVENT_QUERY_BLOCK_CHUNK_SIZE,\n} from '@xyo-network/xl1-sdk'\n", "export {\n asEvmStakeAddedEvent,\n asEvmStakeEvent,\n asEvmStakeRemovedEvent,\n asEvmStakeWithdrawnEvent,\n EthHashRegEx,\n EthHashZod,\n type EvmStakeAddedEvent,\n EvmStakeAddedEventNameZod,\n EvmStakeAddedEventZod,\n type EvmStakeEvent,\n EvmStakeEventArgsZod,\n EvmStakeEventNameZod,\n EvmStakeEventZod,\n type EvmStakeRemovedEvent,\n EvmStakeRemovedEventNameZod,\n EvmStakeRemovedEventZod,\n type EvmStakeWithdrawnEvent,\n EvmStakeWithdrawnEventNameZod,\n EvmStakeWithdrawnEventZod,\n isEvmStakeAddedEvent,\n isEvmStakeEvent,\n isEvmStakeRemovedEvent,\n isEvmStakeWithdrawnEvent,\n toEvmStakeAddedEvent,\n toEvmStakeEvent,\n toEvmStakeRemovedEvent,\n toEvmStakeWithdrawnEvent,\n} from '@xyo-network/xl1-sdk'\n", "export { EvmStakeViewer, type EvmStakeViewerParams } from '@xyo-network/xl1-sdk'\n", "import { parseUnits } from 'ethers/utils'\n\nexport interface GasConfig {\n gasLimit?: number\n gasPrice?: bigint\n}\n\nexport const getDefaultGasConfig = (): GasConfig => {\n return {\n gasLimit: 2_000_000, // Set the gas limit\n gasPrice: parseUnits('100', 'gwei'),\n }\n}\n", "import type { EthAddress } from '@ariestools/sdk'\nimport {\n assertEx, isDefined, toAddress, toEthAddress,\n} from '@ariestools/sdk'\nimport { IAddressStakingEvents__factory } from '@xyo-network/typechain'\nimport type {\n CreatableProviderParams, EvmEventIndexFrame, EvmEventIndexHead, EvmEventIndexLog, EvmEventIndexManifest,\n ProviderMoniker, StakeEvent, StakeEventFilter, StakeEventName, StakeEventsViewer,\n} from '@xyo-network/xl1-sdk'\nimport {\n AbstractCreatableProvider, asAttoXL1, asEvmEventIndexFrame, asEvmEventIndexHead, asEvmEventIndexManifest,\n creatableProvider, evmEventIndexFramePath, evmEventIndexHeadPath, evmEventIndexManifestPath, evmEventIndexTailPath,\n resolveRestConnectionEndpoint, StakeEventsViewerMoniker,\n} from '@xyo-network/xl1-sdk'\nimport { Interface } from 'ethers'\n\nconst STAKE_EVENT_NAMES = new Set<string>(['StakeAdded', 'StakeRemoved', 'StakeWithdrawn'])\n\nexport interface RestStakeEventsViewerParams extends CreatableProviderParams {\n /** Staking contract address; defaults to `config.chain.id`. */\n address: EthAddress\n /** Public base URL of the bucket containing the EVM event index. */\n eventIndexBaseUrl: string\n /** Optional fetch override for tests, authentication, or a custom HTTP agent. */\n fetchFn?: typeof globalThis.fetch\n}\n\n/**\n * StakeEventsViewer backed by the finalized contract-event index rather than eth_getLogs.\n * Raw indexed logs remain contract-generic; this viewer applies the staking ABI at the edge.\n */\n@creatableProvider()\nexport class RestStakeEventsViewer extends AbstractCreatableProvider<RestStakeEventsViewerParams> implements StakeEventsViewer {\n static readonly connectionTypes = ['rest'] as const\n static readonly defaultMoniker = StakeEventsViewerMoniker\n static readonly dependencies = []\n static readonly monikers = [StakeEventsViewerMoniker]\n static readonly surface = 'node' as const\n moniker = RestStakeEventsViewer.defaultMoniker\n\n private readonly completeFrames = new Map<number, EvmEventIndexFrame>()\n private readonly contractInterface = new Interface(IAddressStakingEvents__factory.abi)\n private currentHead?: EvmEventIndexHead\n private manifestPromise?: Promise<EvmEventIndexManifest>\n private stakeEventCache: StakeEvent[] = []\n private syncPromise?: Promise<void>\n private tailFrame?: EvmEventIndexFrame\n\n get address(): EthAddress {\n return this.params.address\n }\n\n get eventIndexBaseUrl(): string {\n return this.params.eventIndexBaseUrl\n }\n\n protected get fetchFn(): typeof globalThis.fetch {\n return this.params.fetchFn ?? fetch.bind(globalThis)\n }\n\n static override async paramsHandler(params: Partial<RestStakeEventsViewerParams>) {\n const contextConfig = params.context?.config\n const address = params.address\n ?? toEthAddress(assertEx(contextConfig?.chain?.id, () => 'RestStakeEventsViewer requires an address param or config.chain.id'))\n const moniker = (this as unknown as { defaultMoniker: ProviderMoniker }).defaultMoniker\n const eventIndexBaseUrl = isDefined(params.eventIndexBaseUrl) && params.eventIndexBaseUrl !== ''\n ? params.eventIndexBaseUrl\n : resolveRestConnectionEndpoint(\n assertEx(contextConfig, () => 'Context config is required to resolve the EVM event index endpoint'),\n moniker,\n )\n return {\n ...await super.paramsHandler(params),\n address,\n eventIndexBaseUrl: eventIndexBaseUrl.replace(/\\/+$/, ''),\n fetchFn: params.fetchFn,\n } satisfies RestStakeEventsViewerParams\n }\n\n async positionCount(range: [number, number | 'latest']): Promise<number> {\n const events = await this.stakeEvents(range)\n return Math.max(-1, ...events.map(event => event.args.id)) + 1\n }\n\n async stakeEvents<TName extends StakeEventName>(\n range: [number, number | 'latest'] = [0, 'latest'],\n filter?: StakeEventFilter<TName>,\n ): Promise<StakeEvent<TName>[]> {\n await this.sync()\n return this.stakeEventCache.filter(event => this.matchesFilter(event, range, filter)) as StakeEvent<TName>[]\n }\n\n private decodeIndexedStakeEvents(): StakeEvent[] {\n const frames = [...this.completeFrames.entries()]\n .sort(([a], [b]) => a - b)\n .map(([, frame]) => frame)\n const logs = [...frames, ...(this.tailFrame === undefined ? [] : [this.tailFrame])]\n .flatMap(frame => frame.logs)\n .sort((a, b) => a.blockNumber - b.blockNumber || a.transactionIndex - b.transactionIndex || a.index - b.index)\n return logs.flatMap((log) => {\n const event = this.stakeEventFromLog(log)\n return event === undefined ? [] : [event]\n })\n }\n\n private async fetchJson(path: string): Promise<unknown> {\n const response = await this.fetchFn(`${this.eventIndexBaseUrl}/${path}`)\n assertEx(response.ok, () => `EVM event index request failed [${response.status}] for ${path}`)\n return await response.json()\n }\n\n private async getManifest(): Promise<EvmEventIndexManifest> {\n this.manifestPromise ??= (async () => {\n const manifest = asEvmEventIndexManifest(await this.fetchJson(evmEventIndexManifestPath(this.address)), true)\n assertEx(manifest.address.toLowerCase() === this.address.toLowerCase(), () => 'EVM event index manifest address mismatch')\n return manifest\n })()\n return await this.manifestPromise\n }\n\n // eslint-disable-next-line complexity\n private matchesFilter<TName extends StakeEventName>(\n event: StakeEvent,\n range: [number, number | 'latest'],\n filter?: StakeEventFilter<TName>,\n ): boolean {\n if (range[1] !== 'latest' && event.time > range[1]) return false\n if (event.time < range[0]) return false\n if (isDefined(filter?.name) && event.name !== filter.name) return false\n if (isDefined(filter?.args?.id) && event.args.id !== filter.args.id) return false\n if (isDefined(filter?.args?.staked) && event.args.staked !== filter.args.staked) return false\n if (isDefined(filter?.args?.staker) && event.args.staker !== filter.args.staker) return false\n return true\n }\n\n private stakeEventFromLog(log: EvmEventIndexLog): StakeEvent | undefined {\n const parsed = this.contractInterface.parseLog({ data: log.data, topics: log.topics })\n if (parsed === null || !STAKE_EVENT_NAMES.has(parsed.name)) return\n const [staked, staker, id, amount] = parsed.args\n return {\n name: parsed.name as StakeEventName,\n args: {\n amount: asAttoXL1(amount as bigint),\n id: Number(id),\n staked: toAddress(staked as string),\n staker: toAddress(staker as string),\n },\n time: log.blockNumber,\n }\n }\n\n private async sync(): Promise<void> {\n this.syncPromise ??= this.syncFromHead().finally(() => {\n this.syncPromise = undefined\n })\n await this.syncPromise\n }\n\n private async syncFromHead(): Promise<void> {\n const manifest = await this.getManifest()\n const head = asEvmEventIndexHead(await this.fetchJson(evmEventIndexHeadPath(this.address)), true)\n assertEx(head.address.toLowerCase() === this.address.toLowerCase(), () => 'EVM event index head address mismatch')\n assertEx(head.chainId === manifest.chainId, () => 'EVM event index chain mismatch')\n if (this.currentHead?.block === head.block && this.currentHead.hash === head.hash) return\n\n if (this.currentHead !== undefined && (head.block < this.currentHead.block || (head.block === this.currentHead.block && head.hash !== this.currentHead.hash))) {\n this.completeFrames.clear()\n this.tailFrame = undefined\n }\n\n const indexedBlockCount = Math.max(0, head.block - manifest.deploymentBlock + 1)\n const completeFrameCount = Math.floor(indexedBlockCount / manifest.frameSize)\n const missingFrameIndexes = Array.from({ length: completeFrameCount }, (_, index) => index)\n .filter(index => !this.completeFrames.has(index))\n await Promise.all(missingFrameIndexes.map(async (index) => {\n const frame = asEvmEventIndexFrame(await this.fetchJson(evmEventIndexFramePath(this.address, index)), true)\n const expectedFrom = manifest.deploymentBlock + index * manifest.frameSize\n assertEx(frame.fromBlock === expectedFrom, () => `EVM event index frame ${index} starts at the wrong block`)\n assertEx(frame.toBlock === expectedFrom + manifest.frameSize - 1, () => `EVM event index frame ${index} is incomplete`)\n this.completeFrames.set(index, frame)\n }))\n\n const tailStart = manifest.deploymentBlock + completeFrameCount * manifest.frameSize\n this.tailFrame = tailStart <= head.block\n ? asEvmEventIndexFrame(await this.fetchJson(`${evmEventIndexTailPath(this.address)}?head=${head.hash}`), true)\n : undefined\n if (this.tailFrame !== undefined) {\n assertEx(this.tailFrame.fromBlock === tailStart, () => 'EVM event index tail starts at the wrong block')\n assertEx(this.tailFrame.toBlock === head.block, () => 'EVM event index tail is stale relative to its head')\n }\n this.stakeEventCache = this.decodeIndexedStakeEvents()\n this.currentHead = head\n }\n}\n", "// The EVM event-index model, paths, and runner contract moved upstream: the wire zod models\n// and bucket path builders live in @xyo-network/xl1-protocol (network-model/staticRest), the\n// runner interface in protocol-lib, and the S3 implementation in @xyo-network/xl1-s3-providers.\n// Re-exported here so `@xyo-network/chain-sdk/ethereum` keeps its module surface.\nexport * from './RestStakeEventsViewer.ts'\nexport {\n asEvmEventIndexFrame,\n asEvmEventIndexHead,\n asEvmEventIndexManifest,\n type EvmEventIndexFrame,\n evmEventIndexFramePath,\n EvmEventIndexFrameZod,\n type EvmEventIndexHead,\n evmEventIndexHeadPath,\n EvmEventIndexHeadZod,\n type EvmEventIndexLog,\n EvmEventIndexLogZod,\n type EvmEventIndexManifest,\n evmEventIndexManifestPath,\n EvmEventIndexManifestZod,\n type EvmEventIndexPublishRunner,\n type EvmEventIndexPublishRunnerMethods,\n EvmEventIndexPublishRunnerMoniker,\n evmEventIndexTailPath,\n} from '@xyo-network/xl1-sdk'\n", "export { AbstractEvmProvider, type EvmProviderParams } from '@xyo-network/xl1-sdk'\n", "import { assertEx } from '@ariestools/sdk'\nimport type { BaseContract, ContractRunner } from 'ethers'\n\nimport type { EvmViewerParams } from './AbstractEvmViewer.ts'\nimport { AbstractEvmViewer } from './AbstractEvmViewer.ts'\n\nexport interface EvmRunnerParams extends EvmViewerParams {\n runner: ContractRunner\n}\n\nexport abstract class AbstractEvmRunner<TParams extends EvmRunnerParams = EvmRunnerParams,\n TContract extends BaseContract = BaseContract> extends\n AbstractEvmViewer<TParams, TContract> {\n static override async paramsHandler<T extends AbstractEvmRunner>(params: Partial<T['params']>): Promise<T['params']> {\n const runner = assertEx(params?.runner, () => new Error('No runner defined'))\n const provider = assertEx(runner.provider, () => new Error('Runner must have a provider defined'))\n return { ...(await super.paramsHandler({ ...params, provider })), runner }\n }\n}\n", "export { AbstractEvmViewer, type EvmViewerParams } from '@xyo-network/xl1-sdk'\n", "export { EvmChainContractViewer, type EvmChainContractViewerParams } from '@xyo-network/xl1-sdk'\n", "import type { Address, EthAddress } from '@ariestools/sdk'\nimport { toEthAddress } from '@ariestools/sdk'\nimport type { IStakedXyoChain } from '@xyo-network/typechain'\nimport { IStakedXyoChain__factory } from '@xyo-network/typechain'\nimport type { StakeRunner } from '@xyo-network/xl1-sdk'\nimport {\n creatableProvider,\n StakeRunnerMoniker,\n} from '@xyo-network/xl1-sdk'\nimport { getAddress } from 'ethers/address'\n\nimport type { EvmRunnerParams } from './AbstractEvmRunner.ts'\nimport { AbstractEvmRunner } from './AbstractEvmRunner.ts'\n\nexport interface EvmStakeRunnerParams extends EvmRunnerParams {}\n\n@creatableProvider()\nexport class EvmStakeRunner extends AbstractEvmRunner<EvmStakeRunnerParams, IStakedXyoChain> implements StakeRunner {\n static readonly connectionTypes = ['evm-rpc'] as const\n static readonly defaultMoniker = StakeRunnerMoniker\n static readonly dependencies = []\n static readonly monikers = [StakeRunnerMoniker]\n static readonly surface = 'node' as const\n override moniker = EvmStakeRunner.defaultMoniker\n\n async addStake(staked: Address, amount: bigint): Promise<boolean> {\n const result = await (this.contract).addStake(getAddress(toEthAddress(staked)), amount)\n await result.wait()\n return true\n }\n\n async removeStake(slot: bigint): Promise<boolean> {\n const result = await (this.contract).removeStake(slot)\n await result.wait()\n return true\n }\n\n async withdrawStake(slot: bigint): Promise<boolean> {\n const result = await (this.contract).withdrawStake(slot)\n await result.wait()\n return true\n }\n\n protected override connectContract(address: EthAddress) {\n return IStakedXyoChain__factory.connect(address, this.params.runner)\n }\n}\n", "export { type EvmChainStakeViewerParams, EvmStakeTotalsViewer } from '@xyo-network/xl1-sdk'\n", "export { isRpcRangeLimitError, rpcRangeLimitFromError } from '@xyo-network/xl1-sdk'\n", "export { isRpcRateLimitError } from '@xyo-network/xl1-sdk'\n", "export { type RpcRateLimitBackoffOptions, withRpcRateLimitBackoff } from '@xyo-network/xl1-sdk'\n"],
5
+ "mappings": "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",
6
+ "names": ["isDefined", "asEthBlockRange", "asEthBlockRange", "isDefined", "toEthAddress", "XYO_NETWORK_STAKING_ADDRESS", "assertEx", "asAddress", "assertEx", "asAddress", "assertEx", "toEthAddress", "XYO_NETWORK_STAKING_ADDRESS", "toEthAddress", "parseUnits", "assertEx", "isDefined", "toAddress", "toEthAddress", "toEthAddress", "assertEx", "isDefined", "toAddress", "asEvmEventIndexFrame", "asEvmEventIndexHead", "asEvmEventIndexManifest", "evmEventIndexFramePath", "evmEventIndexHeadPath", "evmEventIndexManifestPath", "evmEventIndexTailPath", "assertEx", "assertEx", "toEthAddress", "creatableProvider", "toEthAddress", "creatableProvider"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RestStakeEventsViewer.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/RestStakeEventsViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,OAAO,KAAK,EACV,uBAAuB,EAAmB,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAC1G,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAa7B,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E,+DAA+D;IAC/D,OAAO,EAAE,UAAU,CAAA;IACnB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAClC;AAED;;;GAGG;AACH,qBACa,qBAAsB,SAAQ,yBAAyB,CAAC,2BAA2B,CAAE,YAAW,iBAAiB;IAC5H,MAAM,CAAC,QAAQ,CAAC,eAAe,oBAAoB;IACnD,MAAM,CAAC,QAAQ,CAAC,cAAc,sBAA2B;IACzD,MAAM,CAAC,QAAQ,CAAC,YAAY,UAAK;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,wBAA6B;IACrD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAS;IACzC,OAAO,sBAAuC;IAE9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoD;IACtF,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEtC,IAAI,OAAO,IAAI,UAAU,CAExB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,SAAS,KAAK,OAAO,IAAI,OAAO,UAAU,CAAC,KAAK,CAE/C;WAEqB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,2BAA2B,CAAC;;;;;;;;;;;IAmB1E,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlE,WAAW,CAAC,KAAK,SAAS,cAAc,EAC5C,KAAK,GAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAiB,EAClD,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAK/B,OAAO,CAAC,wBAAwB;YAalB,SAAS;YAMT,WAAW;IAUzB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,iBAAiB;YAgBX,IAAI;YAOJ,YAAY;CAmC3B"}
1
+ {"version":3,"file":"RestStakeEventsViewer.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/RestStakeEventsViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,OAAO,KAAK,EACV,uBAAuB,EACN,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EACjF,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EAG1B,MAAM,sBAAsB,CAAA;AAK7B,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E,+DAA+D;IAC/D,OAAO,EAAE,UAAU,CAAA;IACnB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAClC;AAED;;;GAGG;AACH,qBACa,qBAAsB,SAAQ,yBAAyB,CAAC,2BAA2B,CAAE,YAAW,iBAAiB;IAC5H,MAAM,CAAC,QAAQ,CAAC,eAAe,oBAAoB;IACnD,MAAM,CAAC,QAAQ,CAAC,cAAc,sBAA2B;IACzD,MAAM,CAAC,QAAQ,CAAC,YAAY,UAAK;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,wBAA6B;IACrD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAS;IACzC,OAAO,sBAAuC;IAE9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoD;IACtF,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEtC,IAAI,OAAO,IAAI,UAAU,CAExB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,SAAS,KAAK,OAAO,IAAI,OAAO,UAAU,CAAC,KAAK,CAE/C;WAEqB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,2BAA2B,CAAC;;;;;;;;;;;IAmB1E,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlE,WAAW,CAAC,KAAK,SAAS,cAAc,EAC5C,KAAK,GAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAiB,EAClD,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAK/B,OAAO,CAAC,wBAAwB;YAalB,SAAS;YAMT,WAAW;IAUzB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,iBAAiB;YAgBX,IAAI;YAOJ,YAAY;CAmC3B"}
@@ -1,5 +1,3 @@
1
- export * from './EvmEventIndexModel.js';
2
- export * from './EvmEventIndexPaths.js';
3
- export * from './EvmEventIndexPublishRunner.js';
4
1
  export * from './RestStakeEventsViewer.js';
2
+ export { asEvmEventIndexFrame, asEvmEventIndexHead, asEvmEventIndexManifest, type EvmEventIndexFrame, evmEventIndexFramePath, EvmEventIndexFrameZod, type EvmEventIndexHead, evmEventIndexHeadPath, EvmEventIndexHeadZod, type EvmEventIndexLog, EvmEventIndexLogZod, type EvmEventIndexManifest, evmEventIndexManifestPath, EvmEventIndexManifestZod, type EvmEventIndexPublishRunner, type EvmEventIndexPublishRunnerMethods, EvmEventIndexPublishRunnerMoniker, evmEventIndexTailPath, } from '@xyo-network/xl1-sdk';
5
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/index.ts"],"names":[],"mappings":"AAIA,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,iCAAiC,EACjC,qBAAqB,GACtB,MAAM,sBAAsB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RestStakeEventsViewer.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/RestStakeEventsViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,OAAO,KAAK,EACV,uBAAuB,EAAmB,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAC1G,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAa7B,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E,+DAA+D;IAC/D,OAAO,EAAE,UAAU,CAAA;IACnB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAClC;AAED;;;GAGG;AACH,qBACa,qBAAsB,SAAQ,yBAAyB,CAAC,2BAA2B,CAAE,YAAW,iBAAiB;IAC5H,MAAM,CAAC,QAAQ,CAAC,eAAe,oBAAoB;IACnD,MAAM,CAAC,QAAQ,CAAC,cAAc,sBAA2B;IACzD,MAAM,CAAC,QAAQ,CAAC,YAAY,UAAK;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,wBAA6B;IACrD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAS;IACzC,OAAO,sBAAuC;IAE9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoD;IACtF,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEtC,IAAI,OAAO,IAAI,UAAU,CAExB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,SAAS,KAAK,OAAO,IAAI,OAAO,UAAU,CAAC,KAAK,CAE/C;WAEqB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,2BAA2B,CAAC;;;;;;;;;;;IAmB1E,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlE,WAAW,CAAC,KAAK,SAAS,cAAc,EAC5C,KAAK,GAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAiB,EAClD,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAK/B,OAAO,CAAC,wBAAwB;YAalB,SAAS;YAMT,WAAW;IAUzB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,iBAAiB;YAgBX,IAAI;YAOJ,YAAY;CAmC3B"}
1
+ {"version":3,"file":"RestStakeEventsViewer.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/RestStakeEventsViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,OAAO,KAAK,EACV,uBAAuB,EACN,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EACjF,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EAG1B,MAAM,sBAAsB,CAAA;AAK7B,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E,+DAA+D;IAC/D,OAAO,EAAE,UAAU,CAAA;IACnB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAClC;AAED;;;GAGG;AACH,qBACa,qBAAsB,SAAQ,yBAAyB,CAAC,2BAA2B,CAAE,YAAW,iBAAiB;IAC5H,MAAM,CAAC,QAAQ,CAAC,eAAe,oBAAoB;IACnD,MAAM,CAAC,QAAQ,CAAC,cAAc,sBAA2B;IACzD,MAAM,CAAC,QAAQ,CAAC,YAAY,UAAK;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,wBAA6B;IACrD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAS;IACzC,OAAO,sBAAuC;IAE9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoD;IACtF,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEtC,IAAI,OAAO,IAAI,UAAU,CAExB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,SAAS,KAAK,OAAO,IAAI,OAAO,UAAU,CAAC,KAAK,CAE/C;WAEqB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,2BAA2B,CAAC;;;;;;;;;;;IAmB1E,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlE,WAAW,CAAC,KAAK,SAAS,cAAc,EAC5C,KAAK,GAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAiB,EAClD,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAK/B,OAAO,CAAC,wBAAwB;YAalB,SAAS;YAMT,WAAW;IAUzB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,iBAAiB;YAgBX,IAAI;YAOJ,YAAY;CAmC3B"}
@@ -1,5 +1,3 @@
1
- export * from './EvmEventIndexModel.js';
2
- export * from './EvmEventIndexPaths.js';
3
- export * from './EvmEventIndexPublishRunner.js';
4
1
  export * from './RestStakeEventsViewer.js';
2
+ export { asEvmEventIndexFrame, asEvmEventIndexHead, asEvmEventIndexManifest, type EvmEventIndexFrame, evmEventIndexFramePath, EvmEventIndexFrameZod, type EvmEventIndexHead, evmEventIndexHeadPath, EvmEventIndexHeadZod, type EvmEventIndexLog, EvmEventIndexLogZod, type EvmEventIndexManifest, evmEventIndexManifestPath, EvmEventIndexManifestZod, type EvmEventIndexPublishRunner, type EvmEventIndexPublishRunnerMethods, EvmEventIndexPublishRunnerMoniker, evmEventIndexTailPath, } from '@xyo-network/xl1-sdk';
5
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/index.ts"],"names":[],"mappings":"AAIA,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,iCAAiC,EACjC,qBAAqB,GACtB,MAAM,sBAAsB,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package.json",
3
3
  "name": "@xyo-network/chain-sdk",
4
- "version": "4.3.0",
4
+ "version": "4.3.1",
5
5
  "description": "XYO Layer One SDK",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -149,9 +149,9 @@
149
149
  "@xyo-network/archivist-mongodb": "~7.2.0",
150
150
  "@xyo-network/sdk": "~7.2.0",
151
151
  "@xyo-network/sdk-protocol": "~7.2.0",
152
- "@xyo-network/xl1-driver-lmdb": "~4.4.0",
153
- "@xyo-network/xl1-driver-mongodb": "~4.4.0",
154
- "@xyo-network/xl1-sdk": "~4.4.0",
152
+ "@xyo-network/xl1-driver-lmdb": "~4.4.1",
153
+ "@xyo-network/xl1-driver-mongodb": "~4.4.1",
154
+ "@xyo-network/xl1-sdk": "~4.4.1",
155
155
  "async-mutex": "~0.5.0",
156
156
  "eslint": "~10.7.0",
157
157
  "ethers": "~6.17.0",
@@ -171,8 +171,7 @@
171
171
  "@xyo-network/xl1-sdk": "^4.4",
172
172
  "async-mutex": "^0.5",
173
173
  "ethers": "^6.17",
174
- "web3-types": "^1.10",
175
- "zod": "^4.4"
174
+ "web3-types": "^1.10"
176
175
  },
177
176
  "engines": {
178
177
  "node": ">=24"
@@ -1,107 +0,0 @@
1
- import { z } from 'zod/mini';
2
- /** JSON-safe representation of one raw EVM contract log. */
3
- export declare const EvmEventIndexLogZod: z.ZodMiniObject<{
4
- address: z.ZodMiniString<string>;
5
- blockHash: z.ZodMiniString<string>;
6
- blockNumber: z.ZodMiniNumber<number>;
7
- data: z.ZodMiniString<string>;
8
- index: z.ZodMiniNumber<number>;
9
- topics: z.ZodMiniArray<z.ZodMiniString<string>>;
10
- transactionHash: z.ZodMiniString<string>;
11
- transactionIndex: z.ZodMiniNumber<number>;
12
- }, z.core.$strip>;
13
- export type EvmEventIndexLog = z.infer<typeof EvmEventIndexLogZod>;
14
- /** One immutable, address-scoped range of finalized EVM logs. */
15
- export declare const EvmEventIndexFrameZod: z.ZodMiniObject<{
16
- fromBlock: z.ZodMiniNumber<number>;
17
- logs: z.ZodMiniArray<z.ZodMiniObject<{
18
- address: z.ZodMiniString<string>;
19
- blockHash: z.ZodMiniString<string>;
20
- blockNumber: z.ZodMiniNumber<number>;
21
- data: z.ZodMiniString<string>;
22
- index: z.ZodMiniNumber<number>;
23
- topics: z.ZodMiniArray<z.ZodMiniString<string>>;
24
- transactionHash: z.ZodMiniString<string>;
25
- transactionIndex: z.ZodMiniNumber<number>;
26
- }, z.core.$strip>>;
27
- toBlock: z.ZodMiniNumber<number>;
28
- }, z.core.$strip>;
29
- export type EvmEventIndexFrame = z.infer<typeof EvmEventIndexFrameZod>;
30
- /** Static description of one contract event index. */
31
- export declare const EvmEventIndexManifestZod: z.ZodMiniObject<{
32
- address: z.ZodMiniString<string>;
33
- chainId: z.ZodMiniString<string>;
34
- deploymentBlock: z.ZodMiniNumber<number>;
35
- frameSize: z.ZodMiniNumber<number>;
36
- layout: z.ZodMiniLiteral<"evm-contract-events-v1">;
37
- }, z.core.$strip>;
38
- export type EvmEventIndexManifest = z.infer<typeof EvmEventIndexManifestZod>;
39
- /** Mutable pointer written after all frames through `block` are durable. */
40
- export declare const EvmEventIndexHeadZod: z.ZodMiniObject<{
41
- address: z.ZodMiniString<string>;
42
- block: z.ZodMiniNumber<number>;
43
- chainId: z.ZodMiniString<string>;
44
- hash: z.ZodMiniString<string>;
45
- }, z.core.$strip>;
46
- export type EvmEventIndexHead = z.infer<typeof EvmEventIndexHeadZod>;
47
- export declare const asEvmEventIndexFrame: {
48
- <T>(value: T): (T & {
49
- fromBlock: number;
50
- logs: {
51
- address: string;
52
- blockHash: string;
53
- blockNumber: number;
54
- data: string;
55
- index: number;
56
- topics: string[];
57
- transactionHash: string;
58
- transactionIndex: number;
59
- }[];
60
- toBlock: number;
61
- }) | undefined;
62
- <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
63
- fromBlock: number;
64
- logs: {
65
- address: string;
66
- blockHash: string;
67
- blockNumber: number;
68
- data: string;
69
- index: number;
70
- topics: string[];
71
- transactionHash: string;
72
- transactionIndex: number;
73
- }[];
74
- toBlock: number;
75
- };
76
- };
77
- export declare const asEvmEventIndexHead: {
78
- <T>(value: T): (T & {
79
- address: string;
80
- block: number;
81
- chainId: string;
82
- hash: string;
83
- }) | undefined;
84
- <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
85
- address: string;
86
- block: number;
87
- chainId: string;
88
- hash: string;
89
- };
90
- };
91
- export declare const asEvmEventIndexManifest: {
92
- <T>(value: T): (T & {
93
- address: string;
94
- chainId: string;
95
- deploymentBlock: number;
96
- frameSize: number;
97
- layout: "evm-contract-events-v1";
98
- }) | undefined;
99
- <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
100
- address: string;
101
- chainId: string;
102
- deploymentBlock: number;
103
- frameSize: number;
104
- layout: "evm-contract-events-v1";
105
- };
106
- };
107
- //# sourceMappingURL=EvmEventIndexModel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmEventIndexModel.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/EvmEventIndexModel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAA;AAK5B,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB;;;;;;;;;iBAS9B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAElE,iEAAiE;AACjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;iBAIhC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEtE,sDAAsD;AACtD,eAAO,MAAM,wBAAwB;;;;;;iBAMnC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE5E,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEpE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA8D,CAAA;AAC/F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAA4D,CAAA;AAC5F,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;CAAoE,CAAA"}
@@ -1,6 +0,0 @@
1
- import type { EthAddress } from '@ariestools/sdk';
2
- export declare function evmEventIndexFramePath(address: EthAddress, frameIndex: number): string;
3
- export declare function evmEventIndexHeadPath(address: EthAddress): string;
4
- export declare function evmEventIndexManifestPath(address: EthAddress): string;
5
- export declare function evmEventIndexTailPath(address: EthAddress): string;
6
- //# sourceMappingURL=EvmEventIndexPaths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmEventIndexPaths.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/EvmEventIndexPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAMjD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEjE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAErE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEjE"}
@@ -1,9 +0,0 @@
1
- import type { Provider } from '@xyo-network/xl1-sdk';
2
- import type { EvmEventIndexHead } from './EvmEventIndexModel.js';
3
- export declare const EvmEventIndexPublishRunnerMoniker: "EvmEventIndexPublishRunner";
4
- export type EvmEventIndexPublishRunnerMoniker = typeof EvmEventIndexPublishRunnerMoniker;
5
- /** Publishes finalized raw logs for a configured EVM contract. */
6
- export interface EvmEventIndexPublishRunner extends Provider<EvmEventIndexPublishRunnerMoniker> {
7
- publishFinalizedEvents(): Promise<EvmEventIndexHead | null>;
8
- }
9
- //# sourceMappingURL=EvmEventIndexPublishRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmEventIndexPublishRunner.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/EvmEventIndexPublishRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,eAAO,MAAM,iCAAiC,EAAG,4BAAqC,CAAA;AACtF,MAAM,MAAM,iCAAiC,GAAG,OAAO,iCAAiC,CAAA;AAExF,kEAAkE;AAClE,MAAM,WAAW,0BAA2B,SAAQ,QAAQ,CAAC,iCAAiC,CAAC;IAC7F,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;CAC5D"}
@@ -1,107 +0,0 @@
1
- import { z } from 'zod/mini';
2
- /** JSON-safe representation of one raw EVM contract log. */
3
- export declare const EvmEventIndexLogZod: z.ZodMiniObject<{
4
- address: z.ZodMiniString<string>;
5
- blockHash: z.ZodMiniString<string>;
6
- blockNumber: z.ZodMiniNumber<number>;
7
- data: z.ZodMiniString<string>;
8
- index: z.ZodMiniNumber<number>;
9
- topics: z.ZodMiniArray<z.ZodMiniString<string>>;
10
- transactionHash: z.ZodMiniString<string>;
11
- transactionIndex: z.ZodMiniNumber<number>;
12
- }, z.core.$strip>;
13
- export type EvmEventIndexLog = z.infer<typeof EvmEventIndexLogZod>;
14
- /** One immutable, address-scoped range of finalized EVM logs. */
15
- export declare const EvmEventIndexFrameZod: z.ZodMiniObject<{
16
- fromBlock: z.ZodMiniNumber<number>;
17
- logs: z.ZodMiniArray<z.ZodMiniObject<{
18
- address: z.ZodMiniString<string>;
19
- blockHash: z.ZodMiniString<string>;
20
- blockNumber: z.ZodMiniNumber<number>;
21
- data: z.ZodMiniString<string>;
22
- index: z.ZodMiniNumber<number>;
23
- topics: z.ZodMiniArray<z.ZodMiniString<string>>;
24
- transactionHash: z.ZodMiniString<string>;
25
- transactionIndex: z.ZodMiniNumber<number>;
26
- }, z.core.$strip>>;
27
- toBlock: z.ZodMiniNumber<number>;
28
- }, z.core.$strip>;
29
- export type EvmEventIndexFrame = z.infer<typeof EvmEventIndexFrameZod>;
30
- /** Static description of one contract event index. */
31
- export declare const EvmEventIndexManifestZod: z.ZodMiniObject<{
32
- address: z.ZodMiniString<string>;
33
- chainId: z.ZodMiniString<string>;
34
- deploymentBlock: z.ZodMiniNumber<number>;
35
- frameSize: z.ZodMiniNumber<number>;
36
- layout: z.ZodMiniLiteral<"evm-contract-events-v1">;
37
- }, z.core.$strip>;
38
- export type EvmEventIndexManifest = z.infer<typeof EvmEventIndexManifestZod>;
39
- /** Mutable pointer written after all frames through `block` are durable. */
40
- export declare const EvmEventIndexHeadZod: z.ZodMiniObject<{
41
- address: z.ZodMiniString<string>;
42
- block: z.ZodMiniNumber<number>;
43
- chainId: z.ZodMiniString<string>;
44
- hash: z.ZodMiniString<string>;
45
- }, z.core.$strip>;
46
- export type EvmEventIndexHead = z.infer<typeof EvmEventIndexHeadZod>;
47
- export declare const asEvmEventIndexFrame: {
48
- <T>(value: T): (T & {
49
- fromBlock: number;
50
- logs: {
51
- address: string;
52
- blockHash: string;
53
- blockNumber: number;
54
- data: string;
55
- index: number;
56
- topics: string[];
57
- transactionHash: string;
58
- transactionIndex: number;
59
- }[];
60
- toBlock: number;
61
- }) | undefined;
62
- <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
63
- fromBlock: number;
64
- logs: {
65
- address: string;
66
- blockHash: string;
67
- blockNumber: number;
68
- data: string;
69
- index: number;
70
- topics: string[];
71
- transactionHash: string;
72
- transactionIndex: number;
73
- }[];
74
- toBlock: number;
75
- };
76
- };
77
- export declare const asEvmEventIndexHead: {
78
- <T>(value: T): (T & {
79
- address: string;
80
- block: number;
81
- chainId: string;
82
- hash: string;
83
- }) | undefined;
84
- <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
85
- address: string;
86
- block: number;
87
- chainId: string;
88
- hash: string;
89
- };
90
- };
91
- export declare const asEvmEventIndexManifest: {
92
- <T>(value: T): (T & {
93
- address: string;
94
- chainId: string;
95
- deploymentBlock: number;
96
- frameSize: number;
97
- layout: "evm-contract-events-v1";
98
- }) | undefined;
99
- <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
100
- address: string;
101
- chainId: string;
102
- deploymentBlock: number;
103
- frameSize: number;
104
- layout: "evm-contract-events-v1";
105
- };
106
- };
107
- //# sourceMappingURL=EvmEventIndexModel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmEventIndexModel.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/EvmEventIndexModel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAA;AAK5B,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB;;;;;;;;;iBAS9B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAElE,iEAAiE;AACjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;iBAIhC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEtE,sDAAsD;AACtD,eAAO,MAAM,wBAAwB;;;;;;iBAMnC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE5E,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEpE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA8D,CAAA;AAC/F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAA4D,CAAA;AAC5F,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;CAAoE,CAAA"}
@@ -1,6 +0,0 @@
1
- import type { EthAddress } from '@ariestools/sdk';
2
- export declare function evmEventIndexFramePath(address: EthAddress, frameIndex: number): string;
3
- export declare function evmEventIndexHeadPath(address: EthAddress): string;
4
- export declare function evmEventIndexManifestPath(address: EthAddress): string;
5
- export declare function evmEventIndexTailPath(address: EthAddress): string;
6
- //# sourceMappingURL=EvmEventIndexPaths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmEventIndexPaths.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/EvmEventIndexPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAMjD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEjE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAErE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEjE"}
@@ -1,9 +0,0 @@
1
- import type { Provider } from '@xyo-network/xl1-sdk';
2
- import type { EvmEventIndexHead } from './EvmEventIndexModel.js';
3
- export declare const EvmEventIndexPublishRunnerMoniker: "EvmEventIndexPublishRunner";
4
- export type EvmEventIndexPublishRunnerMoniker = typeof EvmEventIndexPublishRunnerMoniker;
5
- /** Publishes finalized raw logs for a configured EVM contract. */
6
- export interface EvmEventIndexPublishRunner extends Provider<EvmEventIndexPublishRunnerMoniker> {
7
- publishFinalizedEvents(): Promise<EvmEventIndexHead | null>;
8
- }
9
- //# sourceMappingURL=EvmEventIndexPublishRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmEventIndexPublishRunner.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/EvmEventIndexPublishRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,eAAO,MAAM,iCAAiC,EAAG,4BAAqC,CAAA;AACtF,MAAM,MAAM,iCAAiC,GAAG,OAAO,iCAAiC,CAAA;AAExF,kEAAkE;AAClE,MAAM,WAAW,0BAA2B,SAAQ,QAAQ,CAAC,iCAAiC,CAAC;IAC7F,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;CAC5D"}
@@ -1,107 +0,0 @@
1
- import { z } from 'zod/mini';
2
- /** JSON-safe representation of one raw EVM contract log. */
3
- export declare const EvmEventIndexLogZod: z.ZodMiniObject<{
4
- address: z.ZodMiniString<string>;
5
- blockHash: z.ZodMiniString<string>;
6
- blockNumber: z.ZodMiniNumber<number>;
7
- data: z.ZodMiniString<string>;
8
- index: z.ZodMiniNumber<number>;
9
- topics: z.ZodMiniArray<z.ZodMiniString<string>>;
10
- transactionHash: z.ZodMiniString<string>;
11
- transactionIndex: z.ZodMiniNumber<number>;
12
- }, z.core.$strip>;
13
- export type EvmEventIndexLog = z.infer<typeof EvmEventIndexLogZod>;
14
- /** One immutable, address-scoped range of finalized EVM logs. */
15
- export declare const EvmEventIndexFrameZod: z.ZodMiniObject<{
16
- fromBlock: z.ZodMiniNumber<number>;
17
- logs: z.ZodMiniArray<z.ZodMiniObject<{
18
- address: z.ZodMiniString<string>;
19
- blockHash: z.ZodMiniString<string>;
20
- blockNumber: z.ZodMiniNumber<number>;
21
- data: z.ZodMiniString<string>;
22
- index: z.ZodMiniNumber<number>;
23
- topics: z.ZodMiniArray<z.ZodMiniString<string>>;
24
- transactionHash: z.ZodMiniString<string>;
25
- transactionIndex: z.ZodMiniNumber<number>;
26
- }, z.core.$strip>>;
27
- toBlock: z.ZodMiniNumber<number>;
28
- }, z.core.$strip>;
29
- export type EvmEventIndexFrame = z.infer<typeof EvmEventIndexFrameZod>;
30
- /** Static description of one contract event index. */
31
- export declare const EvmEventIndexManifestZod: z.ZodMiniObject<{
32
- address: z.ZodMiniString<string>;
33
- chainId: z.ZodMiniString<string>;
34
- deploymentBlock: z.ZodMiniNumber<number>;
35
- frameSize: z.ZodMiniNumber<number>;
36
- layout: z.ZodMiniLiteral<"evm-contract-events-v1">;
37
- }, z.core.$strip>;
38
- export type EvmEventIndexManifest = z.infer<typeof EvmEventIndexManifestZod>;
39
- /** Mutable pointer written after all frames through `block` are durable. */
40
- export declare const EvmEventIndexHeadZod: z.ZodMiniObject<{
41
- address: z.ZodMiniString<string>;
42
- block: z.ZodMiniNumber<number>;
43
- chainId: z.ZodMiniString<string>;
44
- hash: z.ZodMiniString<string>;
45
- }, z.core.$strip>;
46
- export type EvmEventIndexHead = z.infer<typeof EvmEventIndexHeadZod>;
47
- export declare const asEvmEventIndexFrame: {
48
- <T>(value: T): (T & {
49
- fromBlock: number;
50
- logs: {
51
- address: string;
52
- blockHash: string;
53
- blockNumber: number;
54
- data: string;
55
- index: number;
56
- topics: string[];
57
- transactionHash: string;
58
- transactionIndex: number;
59
- }[];
60
- toBlock: number;
61
- }) | undefined;
62
- <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
63
- fromBlock: number;
64
- logs: {
65
- address: string;
66
- blockHash: string;
67
- blockNumber: number;
68
- data: string;
69
- index: number;
70
- topics: string[];
71
- transactionHash: string;
72
- transactionIndex: number;
73
- }[];
74
- toBlock: number;
75
- };
76
- };
77
- export declare const asEvmEventIndexHead: {
78
- <T>(value: T): (T & {
79
- address: string;
80
- block: number;
81
- chainId: string;
82
- hash: string;
83
- }) | undefined;
84
- <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
85
- address: string;
86
- block: number;
87
- chainId: string;
88
- hash: string;
89
- };
90
- };
91
- export declare const asEvmEventIndexManifest: {
92
- <T>(value: T): (T & {
93
- address: string;
94
- chainId: string;
95
- deploymentBlock: number;
96
- frameSize: number;
97
- layout: "evm-contract-events-v1";
98
- }) | undefined;
99
- <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
100
- address: string;
101
- chainId: string;
102
- deploymentBlock: number;
103
- frameSize: number;
104
- layout: "evm-contract-events-v1";
105
- };
106
- };
107
- //# sourceMappingURL=EvmEventIndexModel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmEventIndexModel.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/EvmEventIndexModel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAA;AAK5B,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB;;;;;;;;;iBAS9B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAElE,iEAAiE;AACjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;iBAIhC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEtE,sDAAsD;AACtD,eAAO,MAAM,wBAAwB;;;;;;iBAMnC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE5E,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEpE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA8D,CAAA;AAC/F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAA4D,CAAA;AAC5F,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;CAAoE,CAAA"}
@@ -1,6 +0,0 @@
1
- import type { EthAddress } from '@ariestools/sdk';
2
- export declare function evmEventIndexFramePath(address: EthAddress, frameIndex: number): string;
3
- export declare function evmEventIndexHeadPath(address: EthAddress): string;
4
- export declare function evmEventIndexManifestPath(address: EthAddress): string;
5
- export declare function evmEventIndexTailPath(address: EthAddress): string;
6
- //# sourceMappingURL=EvmEventIndexPaths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmEventIndexPaths.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/EvmEventIndexPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAMjD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEjE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAErE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEjE"}
@@ -1,9 +0,0 @@
1
- import type { Provider } from '@xyo-network/xl1-sdk';
2
- import type { EvmEventIndexHead } from './EvmEventIndexModel.js';
3
- export declare const EvmEventIndexPublishRunnerMoniker: "EvmEventIndexPublishRunner";
4
- export type EvmEventIndexPublishRunnerMoniker = typeof EvmEventIndexPublishRunnerMoniker;
5
- /** Publishes finalized raw logs for a configured EVM contract. */
6
- export interface EvmEventIndexPublishRunner extends Provider<EvmEventIndexPublishRunnerMoniker> {
7
- publishFinalizedEvents(): Promise<EvmEventIndexHead | null>;
8
- }
9
- //# sourceMappingURL=EvmEventIndexPublishRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmEventIndexPublishRunner.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ethereum/indexing/EvmEventIndexPublishRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,eAAO,MAAM,iCAAiC,EAAG,4BAAqC,CAAA;AACtF,MAAM,MAAM,iCAAiC,GAAG,OAAO,iCAAiC,CAAA;AAExF,kEAAkE;AAClE,MAAM,WAAW,0BAA2B,SAAQ,QAAQ,CAAC,iCAAiC,CAAC;IAC7F,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;CAC5D"}