@xyo-network/xl1-protocol-sdk 1.16.26 → 1.17.0

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 (64) hide show
  1. package/dist/neutral/ChainServiceCollectionV2.d.ts +5 -9
  2. package/dist/neutral/ChainServiceCollectionV2.d.ts.map +1 -1
  3. package/dist/neutral/index.mjs +242 -59
  4. package/dist/neutral/index.mjs.map +1 -1
  5. package/dist/neutral/primitives/index.d.ts +1 -0
  6. package/dist/neutral/primitives/index.d.ts.map +1 -1
  7. package/dist/neutral/primitives/state/findMostRecentBlock.d.ts +11 -0
  8. package/dist/neutral/primitives/state/findMostRecentBlock.d.ts.map +1 -0
  9. package/dist/neutral/primitives/state/hydratedBlockByNumber.d.ts +4 -0
  10. package/dist/neutral/primitives/state/hydratedBlockByNumber.d.ts.map +1 -0
  11. package/dist/neutral/primitives/state/index.d.ts +3 -0
  12. package/dist/neutral/primitives/state/index.d.ts.map +1 -0
  13. package/dist/neutral/provider/viewer/XyoViewer.d.ts +4 -4
  14. package/dist/neutral/provider/viewer/XyoViewer.d.ts.map +1 -1
  15. package/dist/neutral/provider/viewer/index.d.ts +0 -1
  16. package/dist/neutral/provider/viewer/index.d.ts.map +1 -1
  17. package/dist/neutral/services/Chain/BaseChainService.d.ts +0 -2
  18. package/dist/neutral/services/Chain/BaseChainService.d.ts.map +1 -1
  19. package/dist/neutral/services/Chain/ChainService.d.ts +2 -2
  20. package/dist/neutral/services/Chain/ChainService.d.ts.map +1 -1
  21. package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts +2 -2
  22. package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts.map +1 -1
  23. package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts +2 -2
  24. package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts.map +1 -1
  25. package/dist/neutral/simple/block/SimpleBlockViewer.d.ts +50 -0
  26. package/dist/neutral/simple/block/SimpleBlockViewer.d.ts.map +1 -0
  27. package/dist/neutral/simple/block/index.d.ts +2 -0
  28. package/dist/neutral/simple/block/index.d.ts.map +1 -0
  29. package/dist/neutral/simple/index.d.ts +1 -0
  30. package/dist/neutral/simple/index.d.ts.map +1 -1
  31. package/dist/neutral/utils/HydratedCache.d.ts +16 -0
  32. package/dist/neutral/utils/HydratedCache.d.ts.map +1 -0
  33. package/dist/neutral/utils/index.d.ts +1 -0
  34. package/dist/neutral/utils/index.d.ts.map +1 -1
  35. package/dist/neutral/viewers/Block.d.ts +6 -5
  36. package/dist/neutral/viewers/Block.d.ts.map +1 -1
  37. package/dist/neutral/viewers/Chain.d.ts +2 -0
  38. package/dist/neutral/viewers/Chain.d.ts.map +1 -1
  39. package/dist/neutral/{provider/viewer → viewers}/StepViewer.d.ts +2 -2
  40. package/dist/neutral/viewers/StepViewer.d.ts.map +1 -0
  41. package/dist/neutral/viewers/index.d.ts +1 -0
  42. package/dist/neutral/viewers/index.d.ts.map +1 -1
  43. package/package.json +2 -2
  44. package/src/ChainServiceCollectionV2.ts +7 -10
  45. package/src/primitives/index.ts +1 -0
  46. package/src/primitives/state/findMostRecentBlock.ts +44 -0
  47. package/src/primitives/state/hydratedBlockByNumber.ts +19 -0
  48. package/src/primitives/state/index.ts +2 -0
  49. package/src/provider/viewer/XyoViewer.ts +6 -4
  50. package/src/provider/viewer/index.ts +0 -1
  51. package/src/services/Chain/BaseChainService.ts +1 -3
  52. package/src/services/Chain/ChainService.ts +2 -2
  53. package/src/services/Chain/interfaces/ChainStakeViewer.ts +4 -2
  54. package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +5 -5
  55. package/src/simple/block/SimpleBlockViewer.ts +133 -0
  56. package/src/simple/block/index.ts +1 -0
  57. package/src/simple/index.ts +1 -0
  58. package/src/utils/HydratedCache.ts +38 -0
  59. package/src/utils/index.ts +1 -0
  60. package/src/viewers/Block.ts +7 -6
  61. package/src/viewers/Chain.ts +2 -0
  62. package/src/{provider/viewer → viewers}/StepViewer.ts +2 -2
  63. package/src/viewers/index.ts +1 -0
  64. package/dist/neutral/provider/viewer/StepViewer.d.ts.map +0 -1
@@ -1,4 +1,5 @@
1
1
  export * from './readPayloadMapFromStore.ts';
2
+ export * from './state/index.ts';
2
3
  export * from './step/index.ts';
3
4
  export * from './summary/index.ts';
4
5
  export * from './timeBudget.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { NextOptions, ReadArchivist } from '@xyo-network/archivist-model';
2
+ import type { SignedBlockBoundWitnessWithHashMeta } from '@xyo-network/xl1-protocol';
3
+ /**
4
+ * Iterates an archivist to find the most recent block
5
+ * @param chainArchivist The archivist to iterate over for the most recent chain block
6
+ * @param nextOptions The options to use when iterating the archivist
7
+ * @param maxIterations The max number of iterations to perform when finding the most recent block
8
+ * @returns The most recent block found in the archivist or undefined if no blocks are found
9
+ */
10
+ export declare const findMostRecentBlock: (chainArchivist: ReadArchivist, nextOptions?: NextOptions, maxIterations?: number) => Promise<SignedBlockBoundWitnessWithHashMeta | undefined>;
11
+ //# sourceMappingURL=findMostRecentBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findMostRecentBlock.d.ts","sourceRoot":"","sources":["../../../../src/primitives/state/findMostRecentBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAI9E,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,2BAA2B,CAAA;AAQpF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,gBAAgB,aAAa,EAC7B,cAAa,WAAkC,EAC/C,sBAAwC,KACvC,OAAO,CAAC,mCAAmC,GAAG,SAAS,CAoBzD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { HydratedBlockWithHashMeta, XL1BlockNumber } from '@xyo-network/xl1-protocol';
2
+ import { type ChainContextRead } from '../../model/index.ts';
3
+ export declare function hydratedBlockByNumber(context: ChainContextRead, blockNumber: XL1BlockNumber): Promise<HydratedBlockWithHashMeta | null>;
4
+ //# sourceMappingURL=hydratedBlockByNumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydratedBlockByNumber.d.ts","sourceRoot":"","sources":["../../../../src/primitives/state/hydratedBlockByNumber.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG1F,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,sBAAsB,CAAA;AAEtF,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAY7I"}
@@ -0,0 +1,3 @@
1
+ export * from './findMostRecentBlock.ts';
2
+ export * from './hydratedBlockByNumber.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/primitives/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA"}
@@ -1,12 +1,12 @@
1
- import type { AccountBalanceViewer, AccountBalanceViewerMethods, BlockViewierMethods, ChainViewerMethods, ForkViewerMethods, NetworkStakeStepRewardViewer, StakeViewerMethods, TransactionViewerMethods, TransferBalanceViewerMethods } from '../../viewers/index.ts';
1
+ import type { AccountBalanceViewer, AccountBalanceViewerMethods, BlockViewer, BlockViewerMethods, ChainViewerMethods, ForkViewerMethods, NetworkStakeStepRewardViewer, StakeViewerMethods, StepViewer, TransactionViewerMethods, TransferBalanceViewerMethods } from '../../viewers/index.ts';
2
2
  import type { NetworkStakeViewer } from './NetworkStake/index.ts';
3
- import type { StepViewer } from './StepViewer.ts';
4
- export interface XyoViewerMethods extends AccountBalanceViewerMethods, TransferBalanceViewerMethods, NetworkStakeStepRewardViewer, AccountBalanceViewer, ChainViewerMethods, BlockViewierMethods, TransactionViewerMethods, StakeViewerMethods, ForkViewerMethods {
3
+ export interface XyoViewerMethods extends AccountBalanceViewerMethods, TransferBalanceViewerMethods, NetworkStakeStepRewardViewer, AccountBalanceViewer, ChainViewerMethods, BlockViewerMethods, TransactionViewerMethods, StakeViewerMethods, ForkViewerMethods {
5
4
  }
6
- export interface XyoViewer extends XyoViewerMethods {
5
+ export interface XyoViewer extends BlockViewer, XyoViewerMethods {
7
6
  account?: {
8
7
  balance?: AccountBalanceViewer;
9
8
  };
9
+ block?: BlockViewer;
10
10
  networkStake?: NetworkStakeViewer;
11
11
  step?: StepViewer;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XyoViewer.d.ts","sourceRoot":"","sources":["../../../../src/provider/viewer/XyoViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,MAAM,WAAW,gBAAiB,SAAQ,2BAA2B,EAAE,4BAA4B,EACjG,4BAA4B,EAAE,oBAAoB,EAClD,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,iBAAiB;CACzG;AAED,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,oBAAoB,CAAA;KAC/B,CAAA;IACD,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB"}
1
+ {"version":3,"file":"XyoViewer.d.ts","sourceRoot":"","sources":["../../../../src/provider/viewer/XyoViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,kBAAkB,EAClB,UAAU,EACV,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,MAAM,WAAW,gBAAiB,SAAQ,2BAA2B,EAAE,4BAA4B,EACjG,4BAA4B,EAAE,oBAAoB,EAClD,kBAAkB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,iBAAiB;CACxG;AAED,MAAM,WAAW,SAAU,SAAQ,WAAW,EAAE,gBAAgB;IAC9D,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,oBAAoB,CAAA;KAC/B,CAAA;IACD,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB"}
@@ -1,4 +1,3 @@
1
1
  export * from './NetworkStake/index.ts';
2
- export * from './StepViewer.ts';
3
2
  export * from './XyoViewer.ts';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/provider/viewer/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/provider/viewer/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA"}
@@ -1,5 +1,3 @@
1
- import type { ChainId } from '@xyo-network/xl1-protocol';
2
1
  export interface BaseChainService {
3
- chainId: ChainId;
4
2
  }
5
3
  //# sourceMappingURL=BaseChainService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseChainService.d.ts","sourceRoot":"","sources":["../../../../src/services/Chain/BaseChainService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;CACjB"}
1
+ {"version":3,"file":"BaseChainService.d.ts","sourceRoot":"","sources":["../../../../src/services/Chain/BaseChainService.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;CAEhC"}
@@ -1,6 +1,6 @@
1
- import type { ChainContractViewer } from '../../viewers/index.ts';
1
+ import type { ChainContractViewer, ChainViewer } from '../../viewers/index.ts';
2
2
  import type { BaseChainService } from './BaseChainService.ts';
3
3
  import type { ChainStaker, ChainStakeViewer } from './interfaces/index.ts';
4
- export interface ChainService extends ChainContractViewer, ChainStakeViewer, ChainStaker, BaseChainService {
4
+ export interface ChainService extends ChainContractViewer, ChainStakeViewer, ChainViewer, ChainStaker, BaseChainService {
5
5
  }
6
6
  //# sourceMappingURL=ChainService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChainService.d.ts","sourceRoot":"","sources":["../../../../src/services/Chain/ChainService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE1E,MAAM,WAAW,YAAa,SAAQ,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB;CAAG"}
1
+ {"version":3,"file":"ChainService.d.ts","sourceRoot":"","sources":["../../../../src/services/Chain/ChainService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE1E,MAAM,WAAW,YAAa,SAAQ,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB;CAAG"}
@@ -1,4 +1,4 @@
1
- import type { ChainContractViewer, StakeTotalsViewer } from '../../../viewers/index.ts';
2
- export interface ChainStakeViewer extends ChainContractViewer, StakeTotalsViewer {
1
+ import type { ChainContractViewer, ChainViewer, StakeTotalsViewer } from '../../../viewers/index.ts';
2
+ export interface ChainStakeViewer extends ChainContractViewer, StakeTotalsViewer, ChainViewer {
3
3
  }
4
4
  //# sourceMappingURL=ChainStakeViewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChainStakeViewer.d.ts","sourceRoot":"","sources":["../../../../../src/services/Chain/interfaces/ChainStakeViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAEvF,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB,EAAE,iBAAiB;CAE/E"}
1
+ {"version":3,"file":"ChainStakeViewer.d.ts","sourceRoot":"","sources":["../../../../../src/services/Chain/interfaces/ChainStakeViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EACpD,MAAM,2BAA2B,CAAA;AAElC,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB,EAAE,iBAAiB,EAAE,WAAW;CAE5F"}
@@ -7,12 +7,12 @@ import type { AccountBalanceHistoryItem, AccountBalanceViewer, BlockViewer } fro
7
7
  export interface SimpleAccountBalanceViewerParams extends CreatableParams {
8
8
  blockViewer: BlockViewer;
9
9
  context: BalanceStepSummaryContext;
10
- transferContext: TransfersStepSummaryContext;
10
+ transfersSummaryContext: TransfersStepSummaryContext;
11
11
  }
12
12
  export declare class SimpleAccountBalanceViewer extends AbstractCreatable<SimpleAccountBalanceViewerParams> implements AccountBalanceViewer {
13
13
  get blockViewer(): BlockViewer;
14
14
  get context(): BalanceStepSummaryContext;
15
- get transferContext(): TransfersStepSummaryContext;
15
+ get transfersSummaryContext(): TransfersStepSummaryContext;
16
16
  static paramsHandler(params: Partial<SimpleAccountBalanceViewerParams>): Promise<{
17
17
  name?: import("@xylabs/sdk-js").CreatableName;
18
18
  statusReporter?: import("@xylabs/sdk-js").CreatableStatusReporter<void> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleAccountBalanceViewer.d.ts","sourceRoot":"","sources":["../../../../src/simple/accountBalance/SimpleAccountBalanceViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAE,eAAe,EAAE,IAAI,EAC/B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,iBAAiB,EAElB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,KAAK,EACqD,aAAa,EAC7E,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACuC,OAAO,EAGpD,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAGlG,OAAO,KAAK,EACV,yBAAyB,EAAE,oBAAoB,EAAE,WAAW,EAC7D,MAAM,wBAAwB,CAAA;AAE/B,MAAM,WAAW,gCAAiC,SAAQ,eAAe;IACvE,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,yBAAyB,CAAA;IAClC,eAAe,EAAE,2BAA2B,CAAA;CAC7C;AAED,qBAAa,0BAA2B,SAAQ,iBAAiB,CAAC,gCAAgC,CAAE,YAAW,oBAAoB;IACjI,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,IAAI,OAAO,IAAI,yBAAyB,CAEvC;IAED,IAAI,eAAe,IAAI,2BAA2B,CAEjD;WAEqB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,gCAAgC,CAAC;;;;;;;IAQ/E,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtF,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IA4BjH,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAc3H,uBAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;YAIrI,sBAAsB;CAqCrC"}
1
+ {"version":3,"file":"SimpleAccountBalanceViewer.d.ts","sourceRoot":"","sources":["../../../../src/simple/accountBalance/SimpleAccountBalanceViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAE,eAAe,EAAE,IAAI,EAC/B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,iBAAiB,EAElB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,KAAK,EACqD,aAAa,EAC7E,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACuC,OAAO,EAGpD,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAGlG,OAAO,KAAK,EACV,yBAAyB,EAAE,oBAAoB,EAAE,WAAW,EAC7D,MAAM,wBAAwB,CAAA;AAE/B,MAAM,WAAW,gCAAiC,SAAQ,eAAe;IACvE,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,yBAAyB,CAAA;IAClC,uBAAuB,EAAE,2BAA2B,CAAA;CACrD;AAED,qBAAa,0BAA2B,SAAQ,iBAAiB,CAAC,gCAAgC,CAAE,YAAW,oBAAoB;IACjI,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,IAAI,OAAO,IAAI,yBAAyB,CAEvC;IAED,IAAI,uBAAuB,IAAI,2BAA2B,CAEzD;WAEqB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,gCAAgC,CAAC;;;;;;;IAQ/E,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtF,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IA4BjH,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAc3H,uBAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;YAIrI,sBAAsB;CAqCrC"}
@@ -0,0 +1,50 @@
1
+ import type { CreatableParams, Hash } from '@xylabs/sdk-js';
2
+ import { AbstractCreatable } from '@xylabs/sdk-js';
3
+ import type { ReadArchivist } from '@xyo-network/archivist-model';
4
+ import { type SignedHydratedBlockWithHashMeta, type XL1BlockNumber } from '@xyo-network/xl1-protocol';
5
+ import type { StakedChainContextRead } from '../../model/index.ts';
6
+ import { HydratedCache } from '../../utils/index.ts';
7
+ import type { BlockViewer } from '../../viewers/index.ts';
8
+ export interface SimpleBlockViewerParams extends CreatableParams {
9
+ context: StakedChainContextRead;
10
+ finalizedArchivist?: ReadArchivist;
11
+ }
12
+ export declare class SimpleBlockViewer extends AbstractCreatable<SimpleBlockViewerParams> implements BlockViewer {
13
+ private _signedHydratedBlockCache;
14
+ get context(): StakedChainContextRead;
15
+ get finalizedArchivist(): ReadArchivist;
16
+ static paramsHandler(params: Partial<SimpleBlockViewerParams>): Promise<{
17
+ name?: import("@xylabs/sdk-js").CreatableName;
18
+ statusReporter?: import("@xylabs/sdk-js").CreatableStatusReporter<void> | undefined;
19
+ logger?: import("@xylabs/sdk-js").Logger;
20
+ meterProvider?: import("@opentelemetry/api").MeterProvider;
21
+ traceProvider?: import("@opentelemetry/api").TracerProvider;
22
+ }>;
23
+ blockByHash(hash: Hash): Promise<SignedHydratedBlockWithHashMeta | null>;
24
+ blockByNumber(blockNumber: XL1BlockNumber): Promise<SignedHydratedBlockWithHashMeta | null>;
25
+ blocksByHash(hash: Hash, limit?: number): Promise<SignedHydratedBlockWithHashMeta[]>;
26
+ blocksByNumber(blockNumber: XL1BlockNumber, limit?: number): Promise<SignedHydratedBlockWithHashMeta[]>;
27
+ currentBlock(): Promise<SignedHydratedBlockWithHashMeta>;
28
+ currentBlockHash(): Promise<Hash>;
29
+ currentBlockNumber(): Promise<XL1BlockNumber>;
30
+ protected getCurrentHead(): Promise<{
31
+ schema: "network.xyo.boundwitness";
32
+ addresses: import("@xylabs/sdk-js").Address[];
33
+ payload_hashes: Hash[];
34
+ payload_schemas: string[];
35
+ previous_hashes: (Hash | null)[];
36
+ $signatures: import("@xylabs/sdk-js").Hex[];
37
+ block: XL1BlockNumber;
38
+ chain: import("@xylabs/sdk-js").Hex;
39
+ previous: Hash | null;
40
+ $epoch: number;
41
+ _hash: Hash;
42
+ _dataHash: Hash;
43
+ $destination?: import("@xylabs/sdk-js").Address | undefined;
44
+ $sourceQuery?: Hash | undefined;
45
+ protocol?: number | undefined;
46
+ step_hashes?: Hash[] | undefined;
47
+ } | undefined>;
48
+ protected getHydratedBlockCache(): HydratedCache<SignedHydratedBlockWithHashMeta>;
49
+ }
50
+ //# sourceMappingURL=SimpleBlockViewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleBlockViewer.d.ts","sourceRoot":"","sources":["../../../../src/simple/block/SimpleBlockViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EACL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAGL,KAAK,+BAA+B,EAAE,KAAK,cAAc,EAC1D,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EAAkB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEzD,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,OAAO,EAAE,sBAAsB,CAAA;IAC/B,kBAAkB,CAAC,EAAE,aAAa,CAAA;CACnC;AAED,qBAAa,iBAAkB,SAAQ,iBAAiB,CAAC,uBAAuB,CAAE,YAAW,WAAW;IACtG,OAAO,CAAC,yBAAyB,CAA4D;IAE7F,IAAI,OAAO,IAAI,sBAAsB,CAEpC;IAED,IAAI,kBAAkB,IAAI,aAAa,CAEtC;WAEqB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC;;;;;;;IAOtE,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,+BAA+B,GAAG,IAAI,CAAC;IAOxE,aAAa,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,+BAA+B,GAAG,IAAI,CAAC;IAM3F,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,+BAA+B,EAAE,CAAC;IAgBhF,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,+BAA+B,EAAE,CAAC;IAgBnG,YAAY,IAAI,OAAO,CAAC,+BAA+B,CAAC;IAYxD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC;cAOnC,cAAc;;;;;;;;;;;;;;;;;;IAK9B,SAAS,CAAC,qBAAqB,IAAI,aAAa,CAAC,+BAA+B,CAAC;CAclF"}
@@ -0,0 +1,2 @@
1
+ export * from './SimpleBlockViewer.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/simple/block/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './accountBalance/index.ts';
2
+ export * from './block/index.ts';
2
3
  export * from './chainStake/index.ts';
3
4
  export * from './client/index.ts';
4
5
  export * from './datalake/index.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/simple/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/simple/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type { Hash } from '@xylabs/sdk-js';
2
+ import type { Payload, WithStorageMeta } from '@xyo-network/payload-model';
3
+ import { LRUCache } from 'lru-cache';
4
+ import type { PayloadMapRead } from '../model/index.ts';
5
+ export type HydrateFunction<T> = (context: {
6
+ chainMap: PayloadMapRead<WithStorageMeta<Payload>>;
7
+ }, hash: Hash) => Promise<T | undefined>;
8
+ export declare class HydratedCache<T extends {}> {
9
+ protected readonly cache: LRUCache<Hash, T>;
10
+ protected readonly chainMap: PayloadMapRead<WithStorageMeta<Payload>>;
11
+ protected readonly hydrateFunction: HydrateFunction<T>;
12
+ constructor(chainMap: PayloadMapRead<WithStorageMeta<Payload>>, hydrateFunction: HydrateFunction<T>, maxSize?: number);
13
+ get(hash: Hash): Promise<T | null>;
14
+ has(hash: Hash): boolean;
15
+ }
16
+ //# sourceMappingURL=HydratedCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HydratedCache.d.ts","sourceRoot":"","sources":["../../../src/utils/HydratedCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAC/B,OAAO,EAAE;IAAE,QAAQ,EAAE,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;CAAE,EAC/D,IAAI,EAAE,IAAI,KACP,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;AAE3B,qBAAa,aAAa,CAAC,CAAC,SAAS,EAAE;IACrC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACrE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;gBAGpD,QAAQ,EAAE,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAClD,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,EACnC,OAAO,GAAE,MAAY;IAOjB,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAQxC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAGzB"}
@@ -1,2 +1,3 @@
1
+ export * from './HydratedCache.ts';
1
2
  export * from './isZodError.ts';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA"}
@@ -1,13 +1,14 @@
1
1
  import type { Hash, Promisable } from '@xylabs/sdk-js';
2
2
  import type { SignedHydratedBlockWithHashMeta, XL1BlockNumber } from '@xyo-network/xl1-protocol';
3
- export interface BlockViewierMethods {
4
- blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>;
5
- blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>;
3
+ export interface BlockViewerMethods {
6
4
  blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>;
5
+ blocksByNumber(block: XL1BlockNumber, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>;
7
6
  currentBlock(): Promisable<SignedHydratedBlockWithHashMeta>;
7
+ }
8
+ export interface BlockViewer extends BlockViewerMethods {
9
+ blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>;
10
+ blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>;
8
11
  currentBlockHash(): Promisable<Hash>;
9
12
  currentBlockNumber(): Promisable<XL1BlockNumber>;
10
13
  }
11
- export interface BlockViewer extends BlockViewierMethods {
12
- }
13
14
  //# sourceMappingURL=Block.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/viewers/Block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEhG,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAA;IAC3E,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAA;IACxF,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAA;IAEvF,YAAY,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAA;IAC3D,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IACpC,kBAAkB,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,WAAY,SAAQ,mBAAmB;CAAG"}
1
+ {"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/viewers/Block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEhG,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAA;IACvF,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAA;IACpG,YAAY,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAA;CAC5D;AAED,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAA;IAC3E,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAA;IACxF,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IACpC,kBAAkB,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;CACjD"}
@@ -3,4 +3,6 @@ import type { ChainId } from '@xyo-network/xl1-protocol';
3
3
  export interface ChainViewerMethods {
4
4
  chainId(): Promisable<ChainId>;
5
5
  }
6
+ export interface ChainViewer extends ChainViewerMethods {
7
+ }
6
8
  //# sourceMappingURL=Chain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../src/viewers/Chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,WAAW,kBAAkB;IACjC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;CAC/B"}
1
+ {"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../src/viewers/Chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,WAAW,kBAAkB;IACjC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,WAAY,SAAQ,kBAAkB;CAAG"}
@@ -1,7 +1,7 @@
1
1
  import type { Address, Promisable } from '@xylabs/sdk-js';
2
2
  import type { PositionId, StepIdentity } from '@xyo-network/xl1-protocol';
3
- import type { Position } from '../../model/index.ts';
4
- import type { NetworkStakeStepRewardsViewer } from './NetworkStake/index.ts';
3
+ import type { Position } from '../model/index.ts';
4
+ import type { NetworkStakeStepRewardsViewer } from '../provider/index.ts';
5
5
  export interface PagedPositionsOptions {
6
6
  cursor?: PositionId;
7
7
  limit?: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepViewer.d.ts","sourceRoot":"","sources":["../../../src/viewers/StepViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAA;AAEzE,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAGhC,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAErD,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;IAGtF,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAGlD,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAG7C,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAEnD,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;IAGjF,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;CACxE;AAED,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,OAAO,CAAC,EAAE,6BAA6B,CAAA;CACxC"}
@@ -9,6 +9,7 @@ export * from './Stake.ts';
9
9
  export * from './StakeEvents.ts';
10
10
  export * from './StakeTotals.ts';
11
11
  export * from './StepStake.ts';
12
+ export * from './StepViewer.ts';
12
13
  export * from './TimeSync.ts';
13
14
  export * from './Transaction.ts';
14
15
  export * from './TransferBalance.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewers/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewers/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,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/xl1-protocol-sdk",
4
- "version": "1.16.26",
4
+ "version": "1.17.0",
5
5
  "description": "XYO Layer One SDK Protocol",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -66,7 +66,7 @@
66
66
  "axios": "^1.13.2",
67
67
  "eslint": "^9.39.1",
68
68
  "typescript": "~5.9.3",
69
- "vitest": "~4.0.13"
69
+ "vitest": "~4.0.14"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "axios": "^1.13.2"
@@ -3,11 +3,12 @@ import type { WalletInstance } from '@xyo-network/wallet-model'
3
3
 
4
4
  import type {
5
5
  BlockProducerService, BlockRewardService,
6
- ChainStaker, ChainStakeViewer, ElectionService, EventingChainBlockNumberIteratorService,
7
- PendingTransactionsService,
6
+ ChainStaker, ChainStakeViewer, ElectionService,
8
7
  StakeIntentService,
9
8
  } from './services/index.ts'
10
- import type { AccountBalanceViewer, ChainContractViewer } from './viewers/index.ts'
9
+ import type {
10
+ AccountBalanceViewer, BlockViewer, ChainContractViewer, MempoolViewer,
11
+ } from './viewers/index.ts'
11
12
 
12
13
  export interface ChainServiceCollectionV2 {
13
14
 
@@ -20,18 +21,14 @@ export interface ChainServiceCollectionV2 {
20
21
  */
21
22
  balance: AccountBalanceViewer
22
23
  /**
23
- * The archivist which the chain data is stored in
24
+ * The chain iterator
24
25
  */
25
- chainArchivist: ArchivistInstance
26
+ blockViewer?: BlockViewer
26
27
  /**
27
28
  * Service for viewing codified chain information
28
29
  * from a contract
29
30
  */
30
31
  chainContractViewer: ChainContractViewer
31
- /**
32
- * The chain iterator
33
- */
34
- chainIterator?: EventingChainBlockNumberIteratorService
35
32
  /**
36
33
  * Service for viewing stake information
37
34
  */
@@ -56,7 +53,7 @@ export interface ChainServiceCollectionV2 {
56
53
  /**
57
54
  * Service for managing pending transactions
58
55
  */
59
- pendingTransactions: PendingTransactionsService
56
+ pendingTransactions: MempoolViewer
60
57
  /**
61
58
  * The block producer service
62
59
  */
@@ -1,4 +1,5 @@
1
1
  export * from './readPayloadMapFromStore.ts'
2
+ export * from './state/index.ts'
2
3
  export * from './step/index.ts'
3
4
  export * from './summary/index.ts'
4
5
  export * from './timeBudget.ts'
@@ -0,0 +1,44 @@
1
+ import type { NextOptions, ReadArchivist } from '@xyo-network/archivist-model'
2
+ import type {
3
+ Payload, Sequence, WithStorageMeta,
4
+ } from '@xyo-network/payload-model'
5
+ import type { SignedBlockBoundWitnessWithHashMeta } from '@xyo-network/xl1-protocol'
6
+ import { isSignedBlockBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'
7
+
8
+ // TODO: Use some smart value relative to DEFAULT_BLOCK_SIZE
9
+ // to ensure we're likely to find it in a single request
10
+ // without bringing back too much data
11
+ const DEFAULT_NEXT_OPTIONS: NextOptions = { limit: 50 }
12
+
13
+ /**
14
+ * Iterates an archivist to find the most recent block
15
+ * @param chainArchivist The archivist to iterate over for the most recent chain block
16
+ * @param nextOptions The options to use when iterating the archivist
17
+ * @param maxIterations The max number of iterations to perform when finding the most recent block
18
+ * @returns The most recent block found in the archivist or undefined if no blocks are found
19
+ */
20
+ export const findMostRecentBlock = async (
21
+ chainArchivist: ReadArchivist,
22
+ nextOptions: NextOptions = DEFAULT_NEXT_OPTIONS,
23
+ maxIterations = Number.POSITIVE_INFINITY,
24
+ ): Promise<SignedBlockBoundWitnessWithHashMeta | undefined> => {
25
+ let mostRecentBlock: SignedBlockBoundWitnessWithHashMeta | undefined
26
+ let cursor: Sequence | undefined
27
+ let batch: WithStorageMeta<Payload>[]
28
+ let iterations = 0
29
+ do {
30
+ batch = await chainArchivist.next({
31
+ ...nextOptions, order: 'desc', cursor,
32
+ })
33
+ const blocks = batch.filter(isSignedBlockBoundWitnessWithStorageMeta)
34
+ const last = blocks?.at(0)
35
+ if (last) {
36
+ mostRecentBlock = last
37
+ break
38
+ } else {
39
+ cursor = batch.at(-1)?._sequence
40
+ }
41
+ iterations = iterations + 1
42
+ } while (batch.length > 0 && iterations < maxIterations)
43
+ return mostRecentBlock
44
+ }
@@ -0,0 +1,19 @@
1
+ import { assertEx } from '@xylabs/sdk-js'
2
+ import type { HydratedBlockWithHashMeta, XL1BlockNumber } from '@xyo-network/xl1-protocol'
3
+
4
+ import { blockFromBlockNumber, hydrateBlock } from '../../block/index.ts'
5
+ import { type ChainContextRead, withContextCacheResponse } from '../../model/index.ts'
6
+
7
+ export async function hydratedBlockByNumber(context: ChainContextRead, blockNumber: XL1BlockNumber): Promise<HydratedBlockWithHashMeta | null> {
8
+ if (blockNumber < 0) throw new Error(`Block number ${blockNumber} is less than 0`)
9
+ if (blockNumber > Number.MAX_SAFE_INTEGER) throw new Error(`Block number ${blockNumber} is greater than the maximum safe integer`)
10
+ if (blockNumber % 1 !== 0) throw new Error(`Block number ${blockNumber} is not an integer`)
11
+ const cacheKey = `${blockNumber}`
12
+ return await withContextCacheResponse(context, 'hydratedBlockByNumber', cacheKey, async () => {
13
+ const block = assertEx(
14
+ await blockFromBlockNumber(context, blockNumber),
15
+ () => `Could not find block for block number ${blockNumber}`,
16
+ )
17
+ return await hydrateBlock(context.store, block._hash)
18
+ })
19
+ }
@@ -0,0 +1,2 @@
1
+ export * from './findMostRecentBlock.ts'
2
+ export * from './hydratedBlockByNumber.ts'
@@ -1,26 +1,28 @@
1
1
  import type {
2
2
  AccountBalanceViewer,
3
3
  AccountBalanceViewerMethods,
4
- BlockViewierMethods,
4
+ BlockViewer,
5
+ BlockViewerMethods,
5
6
  ChainViewerMethods,
6
7
  ForkViewerMethods,
7
8
  NetworkStakeStepRewardViewer,
8
9
  StakeViewerMethods,
10
+ StepViewer,
9
11
  TransactionViewerMethods,
10
12
  TransferBalanceViewerMethods,
11
13
  } from '../../viewers/index.ts'
12
14
  import type { NetworkStakeViewer } from './NetworkStake/index.ts'
13
- import type { StepViewer } from './StepViewer.ts'
14
15
 
15
16
  export interface XyoViewerMethods extends AccountBalanceViewerMethods, TransferBalanceViewerMethods,
16
17
  NetworkStakeStepRewardViewer, AccountBalanceViewer,
17
- ChainViewerMethods, BlockViewierMethods, TransactionViewerMethods, StakeViewerMethods, ForkViewerMethods {
18
+ ChainViewerMethods, BlockViewerMethods, TransactionViewerMethods, StakeViewerMethods, ForkViewerMethods {
18
19
  }
19
20
 
20
- export interface XyoViewer extends XyoViewerMethods {
21
+ export interface XyoViewer extends BlockViewer, XyoViewerMethods {
21
22
  account?: {
22
23
  balance?: AccountBalanceViewer
23
24
  }
25
+ block?: BlockViewer
24
26
  networkStake?: NetworkStakeViewer
25
27
  step?: StepViewer
26
28
  }
@@ -1,3 +1,2 @@
1
1
  export * from './NetworkStake/index.ts'
2
- export * from './StepViewer.ts'
3
2
  export * from './XyoViewer.ts'
@@ -1,5 +1,3 @@
1
- import type { ChainId } from '@xyo-network/xl1-protocol'
2
-
3
1
  export interface BaseChainService {
4
- chainId: ChainId
2
+
5
3
  }
@@ -1,5 +1,5 @@
1
- import type { ChainContractViewer } from '../../viewers/index.ts'
1
+ import type { ChainContractViewer, ChainViewer } from '../../viewers/index.ts'
2
2
  import type { BaseChainService } from './BaseChainService.ts'
3
3
  import type { ChainStaker, ChainStakeViewer } from './interfaces/index.ts'
4
4
 
5
- export interface ChainService extends ChainContractViewer, ChainStakeViewer, ChainStaker, BaseChainService {}
5
+ export interface ChainService extends ChainContractViewer, ChainStakeViewer, ChainViewer, ChainStaker, BaseChainService {}
@@ -1,5 +1,7 @@
1
- import type { ChainContractViewer, StakeTotalsViewer } from '../../../viewers/index.ts'
1
+ import type {
2
+ ChainContractViewer, ChainViewer, StakeTotalsViewer,
3
+ } from '../../../viewers/index.ts'
2
4
 
3
- export interface ChainStakeViewer extends ChainContractViewer, StakeTotalsViewer {
5
+ export interface ChainStakeViewer extends ChainContractViewer, StakeTotalsViewer, ChainViewer {
4
6
 
5
7
  }
@@ -27,7 +27,7 @@ import type {
27
27
  export interface SimpleAccountBalanceViewerParams extends CreatableParams {
28
28
  blockViewer: BlockViewer
29
29
  context: BalanceStepSummaryContext
30
- transferContext: TransfersStepSummaryContext
30
+ transfersSummaryContext: TransfersStepSummaryContext
31
31
  }
32
32
 
33
33
  export class SimpleAccountBalanceViewer extends AbstractCreatable<SimpleAccountBalanceViewerParams> implements AccountBalanceViewer {
@@ -39,14 +39,14 @@ export class SimpleAccountBalanceViewer extends AbstractCreatable<SimpleAccountB
39
39
  return this.params.context!
40
40
  }
41
41
 
42
- get transferContext(): TransfersStepSummaryContext {
43
- return this.params.transferContext!
42
+ get transfersSummaryContext(): TransfersStepSummaryContext {
43
+ return this.params.transfersSummaryContext!
44
44
  }
45
45
 
46
46
  static override async paramsHandler(params: Partial<SimpleAccountBalanceViewerParams>) {
47
47
  assertEx(params.blockViewer, () => 'blockViewer is required')
48
48
  assertEx(params.context, () => 'context is required')
49
- assertEx(params.transferContext, () => 'transferContext is required')
49
+ assertEx(params.transfersSummaryContext, () => 'transfersSummaryContext is required')
50
50
 
51
51
  return { ...await super.paramsHandler(params) }
52
52
  }
@@ -109,7 +109,7 @@ export class SimpleAccountBalanceViewer extends AbstractCreatable<SimpleAccountB
109
109
  const frames = deepCalculateFramesFromRange(asXL1BlockRange(range, true))
110
110
  const transferSummaryPairs = await Promise.all(frames.map(
111
111
  async (frame) => {
112
- return [frame, await transfersStepSummaryFromRange(this.transferContext, frame)]
112
+ return [frame, await transfersStepSummaryFromRange(this.transfersSummaryContext, frame)]
113
113
  },
114
114
  )) as [XL1BlockRange, WithStorageMeta<TransfersStepSummary>][]
115
115