@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.
- package/dist/neutral/ChainServiceCollectionV2.d.ts +5 -9
- package/dist/neutral/ChainServiceCollectionV2.d.ts.map +1 -1
- package/dist/neutral/index.mjs +242 -59
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/primitives/index.d.ts +1 -0
- package/dist/neutral/primitives/index.d.ts.map +1 -1
- package/dist/neutral/primitives/state/findMostRecentBlock.d.ts +11 -0
- package/dist/neutral/primitives/state/findMostRecentBlock.d.ts.map +1 -0
- package/dist/neutral/primitives/state/hydratedBlockByNumber.d.ts +4 -0
- package/dist/neutral/primitives/state/hydratedBlockByNumber.d.ts.map +1 -0
- package/dist/neutral/primitives/state/index.d.ts +3 -0
- package/dist/neutral/primitives/state/index.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/XyoViewer.d.ts +4 -4
- package/dist/neutral/provider/viewer/XyoViewer.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/index.d.ts +0 -1
- package/dist/neutral/provider/viewer/index.d.ts.map +1 -1
- package/dist/neutral/services/Chain/BaseChainService.d.ts +0 -2
- package/dist/neutral/services/Chain/BaseChainService.d.ts.map +1 -1
- package/dist/neutral/services/Chain/ChainService.d.ts +2 -2
- package/dist/neutral/services/Chain/ChainService.d.ts.map +1 -1
- package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts +2 -2
- package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts.map +1 -1
- package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts +2 -2
- package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts.map +1 -1
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts +50 -0
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts.map +1 -0
- package/dist/neutral/simple/block/index.d.ts +2 -0
- package/dist/neutral/simple/block/index.d.ts.map +1 -0
- package/dist/neutral/simple/index.d.ts +1 -0
- package/dist/neutral/simple/index.d.ts.map +1 -1
- package/dist/neutral/utils/HydratedCache.d.ts +16 -0
- package/dist/neutral/utils/HydratedCache.d.ts.map +1 -0
- package/dist/neutral/utils/index.d.ts +1 -0
- package/dist/neutral/utils/index.d.ts.map +1 -1
- package/dist/neutral/viewers/Block.d.ts +6 -5
- package/dist/neutral/viewers/Block.d.ts.map +1 -1
- package/dist/neutral/viewers/Chain.d.ts +2 -0
- package/dist/neutral/viewers/Chain.d.ts.map +1 -1
- package/dist/neutral/{provider/viewer → viewers}/StepViewer.d.ts +2 -2
- package/dist/neutral/viewers/StepViewer.d.ts.map +1 -0
- package/dist/neutral/viewers/index.d.ts +1 -0
- package/dist/neutral/viewers/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/ChainServiceCollectionV2.ts +7 -10
- package/src/primitives/index.ts +1 -0
- package/src/primitives/state/findMostRecentBlock.ts +44 -0
- package/src/primitives/state/hydratedBlockByNumber.ts +19 -0
- package/src/primitives/state/index.ts +2 -0
- package/src/provider/viewer/XyoViewer.ts +6 -4
- package/src/provider/viewer/index.ts +0 -1
- package/src/services/Chain/BaseChainService.ts +1 -3
- package/src/services/Chain/ChainService.ts +2 -2
- package/src/services/Chain/interfaces/ChainStakeViewer.ts +4 -2
- package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +5 -5
- package/src/simple/block/SimpleBlockViewer.ts +133 -0
- package/src/simple/block/index.ts +1 -0
- package/src/simple/index.ts +1 -0
- package/src/utils/HydratedCache.ts +38 -0
- package/src/utils/index.ts +1 -0
- package/src/viewers/Block.ts +7 -6
- package/src/viewers/Chain.ts +2 -0
- package/src/{provider/viewer → viewers}/StepViewer.ts +2 -2
- package/src/viewers/index.ts +1 -0
- package/dist/neutral/provider/viewer/StepViewer.d.ts.map +0 -1
|
@@ -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 @@
|
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/provider/viewer/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseChainService.d.ts","sourceRoot":"","sources":["../../../../src/services/Chain/BaseChainService.ts"],"names":[],"mappings":"AAAA,
|
|
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;
|
|
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,
|
|
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
|
-
|
|
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
|
|
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,
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/simple/block/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
|
|
@@ -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 +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
|
|
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,
|
|
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"}
|
|
@@ -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 '
|
|
4
|
-
import type { NetworkStakeStepRewardsViewer } from '
|
|
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.
|
|
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.
|
|
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,
|
|
7
|
-
PendingTransactionsService,
|
|
6
|
+
ChainStaker, ChainStakeViewer, ElectionService,
|
|
8
7
|
StakeIntentService,
|
|
9
8
|
} from './services/index.ts'
|
|
10
|
-
import type {
|
|
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
|
|
24
|
+
* The chain iterator
|
|
24
25
|
*/
|
|
25
|
-
|
|
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:
|
|
56
|
+
pendingTransactions: MempoolViewer
|
|
60
57
|
/**
|
|
61
58
|
* The block producer service
|
|
62
59
|
*/
|
package/src/primitives/index.ts
CHANGED
|
@@ -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
|
+
}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
AccountBalanceViewer,
|
|
3
3
|
AccountBalanceViewerMethods,
|
|
4
|
-
|
|
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,
|
|
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,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 {
|
|
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
|
-
|
|
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
|
|
43
|
-
return this.params.
|
|
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.
|
|
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.
|
|
112
|
+
return [frame, await transfersStepSummaryFromRange(this.transfersSummaryContext, frame)]
|
|
113
113
|
},
|
|
114
114
|
)) as [XL1BlockRange, WithStorageMeta<TransfersStepSummary>][]
|
|
115
115
|
|