@xyo-network/xl1-providers 1.22.13 → 1.22.14

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.
@@ -6,7 +6,9 @@ import type { BalancesStepSummary, CreatableProviderContext, TransfersStepSummar
6
6
  import { ProviderFactoryLocator } from '@xyo-network/xl1-protocol-sdk';
7
7
  import type { TransportFactory } from '@xyo-network/xl1-rpc';
8
8
  export interface BuildProviderLocatorParams {
9
- context?: CreatableProviderContext;
9
+ context?: Omit<CreatableProviderContext, 'locator'> & Partial<{
10
+ locator: CreatableProviderContext['locator'];
11
+ }>;
10
12
  }
11
13
  export declare function buildProviderLocator({ context }?: BuildProviderLocatorParams): ProviderFactoryLocator<import("@xyo-network/xl1-protocol-sdk").CreatableProviderContextType, string[]>;
12
14
  export interface BuildSimpleProviderLocatorParams extends BuildProviderLocatorParams {
@@ -1 +1 @@
1
- {"version":3,"file":"buildProviderLocator.d.ts","sourceRoot":"","sources":["../../src/buildProviderLocator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EACV,OAAO,EAAE,OAAO,EACjB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EACV,mBAAmB,EAAE,wBAAwB,EAAE,oBAAoB,EACpE,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAC8B,sBAAsB,EAE1D,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAgB5D,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,wBAAwB,CAAA;CACnC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,OAA2B,EAAE,GAAE,0BAA+B,0GAOpG;AAED,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;CAEnF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,CAAC,EAAE,gCAAgC,0GAiBnF;AAED,MAAM,WAAW,iCAAkC,SAAQ,0BAA0B;IACnF,gBAAgB,EAAE,gBAAgB,CAAA;CACnC;AAED,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,iCAAiC,mHAiC1F;AAED,MAAM,WAAW,+BAAgC,SAAQ,0BAA0B;IACjF,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACtE,OAAO,EAAE,OAAO,CAAA;IAChB,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,IAAI,EAAE,YAAY,CAAA;IAClB,sBAAsB,EAAE,iBAAiB,CAAA;IACzC,4BAA4B,EAAE,iBAAiB,CAAA;IAC/C,mBAAmB,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAA;CACzE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,+BAA+B,0GAehF"}
1
+ {"version":3,"file":"buildProviderLocator.d.ts","sourceRoot":"","sources":["../../src/buildProviderLocator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EACV,OAAO,EAAE,OAAO,EACjB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EACV,mBAAmB,EAAE,wBAAwB,EAAE,oBAAoB,EACpE,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAC8B,sBAAsB,EAE1D,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAgB5D,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAA;KAAE,CAAC,CAAA;CAChH;AAED,wBAAgB,oBAAoB,CAAC,EAAE,OAA2B,EAAE,GAAE,0BAA+B,0GAOpG;AAED,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;CAEnF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,CAAC,EAAE,gCAAgC,0GAiBnF;AAED,MAAM,WAAW,iCAAkC,SAAQ,0BAA0B;IACnF,gBAAgB,EAAE,gBAAgB,CAAA;CACnC;AAED,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,iCAAiC,mHAiC1F;AAED,MAAM,WAAW,+BAAgC,SAAQ,0BAA0B;IACjF,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACtE,OAAO,EAAE,OAAO,CAAA;IAChB,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,IAAI,EAAE,YAAY,CAAA;IAClB,sBAAsB,EAAE,iBAAiB,CAAA;IACzC,4BAA4B,EAAE,iBAAiB,CAAA;IAC/C,mBAAmB,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAA;CACzE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,+BAA+B,0GAehF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/buildProviderLocator.ts","../../src/NodeXyoViewer.ts","../../src/SimpleXyoViewer.ts","../../src/SimpleNetworkStakeViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsByPositionViewer.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarned.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForPosition.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForStaker.ts","../../src/SimpleStepRewards/SimpleStepRewardsByStakerViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsByStepViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsTotalViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsViewer.ts","../../src/SimpleStepViewer.ts","../../src/SimpleXyoConnection.ts","../../src/buildSimpleXyoSigner.ts"],"sourcesContent":["import type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport type { WithHashMeta } from '@xyo-network/payload-model'\nimport type {\n ChainId, MapType, Position,\n} from '@xyo-network/xl1-protocol'\nimport type {\n BalancesStepSummary, CreatableProviderContext, TransfersStepSummary,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n getDefaultConfig, getEmptyContext, ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockViewer, SimpleFinalizationViewer, SimpleMempoolRunner, SimpleMempoolViewer,\n SimpleStakeEventsViewer, SimpleStakeViewer, SimpleTimeSyncViewer, SimpleWindowedBlockViewer, SimpleXyoRunner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { TransportFactory } from '@xyo-network/xl1-rpc'\nimport {\n AccountBalanceViewerRpcSchemas, BlockViewerRpcSchemas, DataLakeViewerRpcSchemas, JsonRpcAccountBalanceViewer, JsonRpcBlockViewer, JsonRpcDataLakeViewer,\n JsonRpcMempoolRunner, JsonRpcMempoolViewer, JsonRpcNetworkStakeViewer, JsonRpcNetworkStakingStepRewardsViewer, JsonRpcStakeTotalsViewer,\n JsonRpcTimeSyncViewer, JsonRpcXyoRunner, JsonRpcXyoViewer, MempoolRunnerRpcSchemas, MempoolViewerRpcSchemas, NetworkStakeViewerRpcSchemas,\n StakeTotalsViewerRpcSchemas, TimeSyncViewerRpcSchemas, XyoRunnerRpcSchemas, XyoViewerRpcSchemas,\n} from '@xyo-network/xl1-rpc'\n\nimport { NodeXyoViewer } from './NodeXyoViewer.ts'\nimport { SimpleNetworkStakeViewer } from './SimpleNetworkStakeViewer.ts'\nimport {\n SimpleStepRewardsByPositionViewer, SimpleStepRewardsByStakerViewer, SimpleStepRewardsByStepViewer, SimpleStepRewardsTotalViewer, SimpleStepRewardsViewer,\n} from './SimpleStepRewards/index.ts'\nimport { SimpleStepViewer } from './SimpleStepViewer.ts'\nimport { SimpleXyoConnection } from './SimpleXyoConnection.ts'\n\nexport interface BuildProviderLocatorParams {\n context?: CreatableProviderContext\n}\n\nexport function buildProviderLocator({ context = getEmptyContext() }: BuildProviderLocatorParams = {}) {\n const {\n config = getDefaultConfig(), locator, singletons = {}, caches = {}, ...restOfContext\n } = context\n return new ProviderFactoryLocator({\n ...restOfContext, config, singletons, caches,\n }, locator?.registry)\n}\n\nexport interface BuildSimpleProviderLocatorParams extends BuildProviderLocatorParams {\n\n}\n\nexport function buildSimpleProviderLocator(params?: BuildSimpleProviderLocatorParams) {\n const locator = buildProviderLocator(params)\n const positions: Position[] = []\n return locator.registerMany([\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions }),\n SimpleNetworkStakeViewer.factory<SimpleNetworkStakeViewer>(SimpleNetworkStakeViewer.dependencies, {}),\n SimpleTimeSyncViewer.factory<SimpleTimeSyncViewer>(SimpleTimeSyncViewer.dependencies, {}),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies, {}),\n SimpleStepRewardsViewer.factory<SimpleStepRewardsViewer>(SimpleStepRewardsViewer.dependencies, {}),\n SimpleStepRewardsByPositionViewer.factory<SimpleStepRewardsByPositionViewer>(SimpleStepRewardsByPositionViewer.dependencies, {}),\n SimpleStepRewardsByStakerViewer.factory<SimpleStepRewardsByStakerViewer>(SimpleStepRewardsByStakerViewer.dependencies, {}),\n SimpleStepRewardsByStepViewer.factory<SimpleStepRewardsByStepViewer>(SimpleStepRewardsByStepViewer.dependencies, {}),\n SimpleStepRewardsTotalViewer.factory<SimpleStepRewardsTotalViewer>(SimpleStepRewardsTotalViewer.dependencies, {}),\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleXyoConnection.factory<SimpleXyoConnection>(SimpleXyoConnection.dependencies, {}),\n ])\n}\n\nexport interface BuildJsonRpcProviderLocatorParams extends BuildProviderLocatorParams {\n transportFactory: TransportFactory\n}\n\nexport async function buildJsonRpcProviderLocator(params: BuildJsonRpcProviderLocatorParams) {\n const locator = buildProviderLocator(params)\n const transportFactory = params.transportFactory\n const positions: Position[] = []\n return locator.registerMany([\n JsonRpcStakeTotalsViewer.factory<JsonRpcStakeTotalsViewer>(\n JsonRpcStakeTotalsViewer.dependencies,\n { transport: await transportFactory(StakeTotalsViewerRpcSchemas) },\n ),\n JsonRpcAccountBalanceViewer.factory<JsonRpcAccountBalanceViewer>(\n JsonRpcAccountBalanceViewer.dependencies,\n { transport: await transportFactory(AccountBalanceViewerRpcSchemas) },\n ),\n JsonRpcBlockViewer.factory<JsonRpcBlockViewer>(JsonRpcBlockViewer.dependencies, { transport: await transportFactory(BlockViewerRpcSchemas) }),\n JsonRpcDataLakeViewer.factory<JsonRpcDataLakeViewer>(JsonRpcDataLakeViewer.dependencies, { transport: await transportFactory(DataLakeViewerRpcSchemas) }),\n JsonRpcMempoolRunner.factory<JsonRpcMempoolRunner>(JsonRpcMempoolRunner.dependencies, { transport: await transportFactory(MempoolRunnerRpcSchemas) }),\n JsonRpcMempoolViewer.factory<JsonRpcMempoolViewer>(JsonRpcMempoolViewer.dependencies, { transport: await transportFactory(MempoolViewerRpcSchemas) }),\n JsonRpcNetworkStakeViewer.factory<JsonRpcNetworkStakeViewer>(\n JsonRpcNetworkStakeViewer.dependencies,\n { transport: await transportFactory(NetworkStakeViewerRpcSchemas) },\n ),\n JsonRpcTimeSyncViewer.factory<JsonRpcTimeSyncViewer>(JsonRpcTimeSyncViewer.dependencies, { transport: await transportFactory(TimeSyncViewerRpcSchemas) }),\n JsonRpcNetworkStakingStepRewardsViewer.factory<JsonRpcNetworkStakingStepRewardsViewer>(\n JsonRpcNetworkStakingStepRewardsViewer.dependencies,\n { transport: await transportFactory(NetworkStakeViewerRpcSchemas) },\n ),\n JsonRpcXyoRunner.factory<JsonRpcXyoRunner>(JsonRpcXyoRunner.dependencies, { transport: await transportFactory(XyoRunnerRpcSchemas) }),\n JsonRpcXyoViewer.factory<JsonRpcXyoViewer>(JsonRpcXyoViewer.dependencies, { transport: await transportFactory(XyoViewerRpcSchemas) }),\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions }),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies, {}),\n SimpleXyoConnection.factory<SimpleXyoConnection>(SimpleXyoConnection.dependencies, {}),\n ])\n}\n\nexport interface BuildLocalProviderLocatorParams extends BuildProviderLocatorParams {\n balancesSummaryMap: MapType<string, WithHashMeta<BalancesStepSummary>>\n chainId: ChainId\n finalizedArchivist: ArchivistInstance\n node: NodeInstance\n pendingBlocksArchivist: ArchivistInstance\n pendingTransactionsArchivist: ArchivistInstance\n transfersSummaryMap: MapType<string, WithHashMeta<TransfersStepSummary>>\n}\n\nexport function buildLocalProviderLocator(params: BuildLocalProviderLocatorParams) {\n const locator = buildSimpleProviderLocator(params)\n const {\n pendingTransactionsArchivist, pendingBlocksArchivist, balancesSummaryMap, transfersSummaryMap, finalizedArchivist, node, chainId,\n } = params\n return locator.registerMany([\n SimpleMempoolViewer.factory<SimpleMempoolViewer>(SimpleMempoolViewer.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleMempoolRunner.factory<SimpleMempoolRunner>(SimpleMempoolRunner.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleAccountBalanceViewer.factory<SimpleAccountBalanceViewer>(SimpleAccountBalanceViewer.dependencies, { balancesSummaryMap, transfersSummaryMap }),\n SimpleFinalizationViewer.factory<SimpleFinalizationViewer>(SimpleFinalizationViewer.dependencies, { finalizedArchivist }),\n SimpleBlockViewer.factory<SimpleBlockViewer>(SimpleBlockViewer.dependencies, { finalizedArchivist }),\n SimpleXyoRunner.factory<SimpleXyoRunner>(SimpleXyoRunner.dependencies, {}),\n SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 10_000, syncInterval: 10_000 }),\n NodeXyoViewer.factory<NodeXyoViewer>(NodeXyoViewer.dependencies, { node, chainId }),\n ])\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { asAttachableArchivistInstance } from '@xyo-network/archivist-model'\nimport type { ModuleIdentifier } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol'\nimport { creatableProvider } from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleXyoViewer, SimpleXyoViewerParams } from './SimpleXyoViewer.ts'\n\nexport interface NodeXyoViewerParams extends SimpleXyoViewerParams {\n node: NodeInstance\n}\n\n@creatableProvider()\nexport class NodeXyoViewer extends SimpleXyoViewer<NodeXyoViewerParams> implements XyoViewer {\n protected static readonly finalizedArchivistPath: ModuleIdentifier = 'XYOChain:Chain:Finalized'\n\n protected get node() {\n return this.params.node\n }\n\n static override async paramsHandler(params: Partial<NodeXyoViewerParams>): Promise<NodeXyoViewerParams> {\n const node = assertEx(params.node, () => 'NodeXyoViewer requires a node')\n const finalizedArchivist = await this.getFinalizedArchivistFromNode(node)\n return {\n ...await super.paramsHandler({ ...params, finalizedArchivist }),\n node,\n } satisfies NodeXyoViewerParams\n }\n\n protected static getArchivist = async (node: NodeInstance, identifier: ModuleIdentifier) => {\n const archivist = await node.resolve(identifier)\n return assertEx(asAttachableArchivistInstance(archivist), () => `Could not resolve ${identifier} to an archivist instance`)\n }\n\n protected static async getFinalizedArchivistFromNode(node: NodeInstance): Promise<ArchivistInstance> {\n const resolved = await this.getArchivist(node, this.finalizedArchivistPath)\n return assertEx(resolved, () => `Could not resolve finalized archivist at ${this.finalizedArchivistPath}`)\n }\n}\n","import type { Tracer } from '@opentelemetry/api'\nimport type {\n Address,\n Hash, Promisable,\n} from '@xylabs/sdk-js'\nimport {\n assertEx, exists,\n toAddress,\n} from '@xylabs/sdk-js'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type {\n Payload, WithHashMeta, WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport type {\n AccountBalanceViewer,\n AttoXL1,\n BlockRate,\n BlockViewer, ChainContractViewer, ChainId,\n ChainQualifiedConfig, Count,\n FinalizationViewer,\n ForkHistory,\n MempoolViewer, NetworkStakeStepRewardsByPositionViewer, NetworkStakeViewer, PayloadMapRead, Position,\n SignedHydratedBlockWithHashMeta,\n SignedHydratedTransactionWithHashMeta,\n SingleTimeConfig,\n StakeViewer,\n StepIdentity, StepIdentityString,\n StepIndex,\n StepViewer,\n TimeDurations,\n TimeSyncViewer,\n XL1BlockNumber, XL1BlockRange, XL1RangeMultipliers,\n XyoViewer,\n} from '@xyo-network/xl1-protocol'\nimport {\n AccountBalanceViewerMoniker,\n asAttoXL1,\n asSignedHydratedBlockWithHashMeta, asXL1BlockRange,\n BlockViewerMoniker,\n ChainContractViewerMoniker,\n FinalizationViewerMoniker,\n isTransactionBoundWitnessWithStorageMeta, MempoolViewerMoniker, NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeViewerMoniker, StakeViewerMoniker, StepViewerMoniker, TimeSyncViewerMoniker, XYO_NETWORK_STAKING_ADDRESS,\n XYO_ZERO_ADDRESS,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n allStakersForStep,\n blockRangeSteps,\n ChainStoreRead,\n creatableProvider,\n CreatableProviderParams,\n externalBlockRangeFromStep,\n externalBlockRangeFromXL1BlockRange,\n findMostRecentBlock, hydrateBlock, HydratedCache,\n networkStakeStepRewardPositionWeight,\n readPayloadMapFromStore, stepRewardTotal,\n toStepIdentityString, tryHydrateTransaction,\n weightedStakeForRangeByPosition,\n withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleXyoViewerParams extends CreatableProviderParams {\n chainId: ChainId\n finalizedArchivist?: ArchivistInstance\n initRewardsCache?: boolean\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleXyoViewer<TParams extends SimpleXyoViewerParams = SimpleXyoViewerParams> extends AbstractCreatableProvider<TParams> implements XyoViewer {\n static readonly defaultMoniker = XyoViewerMoniker\n\n static readonly dependencies = [\n AccountBalanceViewerMoniker,\n BlockViewerMoniker,\n MempoolViewerMoniker,\n NetworkStakeViewerMoniker,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n StakeViewerMoniker,\n StepViewerMoniker,\n TimeSyncViewerMoniker,\n ]\n\n static readonly monikers = [XyoViewerMoniker]\n moniker = SimpleXyoViewer.defaultMoniker\n\n protected _tracer: Tracer | undefined\n\n private _accountBalanceViewer?: AccountBalanceViewer\n private _blockViewer?: BlockViewer\n private _chainContractViewer?: ChainContractViewer\n private _finalizationViewer!: FinalizationViewer\n private _finalizedPayloadMap!: PayloadMapRead<WithStorageMeta<Payload>>\n private _mempoolViewer?: MempoolViewer\n private _networkStakeViewer?: NetworkStakeViewer\n private _networkStepRewardsByPositionViewer?: NetworkStakeStepRewardsByPositionViewer\n private _rewardMultipliers?: XL1RangeMultipliers\n private _signedHydratedBlockCache?: HydratedCache<SignedHydratedBlockWithHashMeta>\n private _signedHydratedTransactionCache?: HydratedCache<SignedHydratedTransactionWithHashMeta>\n private _stakeViewer?: StakeViewer\n private _stepViewer?: StepViewer\n private _timeSyncViewer?: TimeSyncViewer\n\n get account() {\n return { balance: this._accountBalanceViewer! }\n }\n\n get block() {\n return this._blockViewer!\n }\n\n get chainContractViewer() {\n return this._chainContractViewer!\n }\n\n get mempool() {\n return this._mempoolViewer!\n }\n\n get networkStake() {\n return this._networkStakeViewer!\n }\n\n get stake() {\n return this._stakeViewer!\n }\n\n get step() {\n return this._stepViewer!\n }\n\n get time() {\n return this._timeSyncViewer!\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get finalizedArchivist() {\n return this.params.finalizedArchivist\n }\n\n protected get initRewardsCache() {\n return this.params.initRewardsCache ?? true\n }\n\n protected get networkStepRewardsByPositionViewer() {\n return this._networkStepRewardsByPositionViewer!\n }\n\n protected get rewardMultipliers() {\n this._rewardMultipliers = this._rewardMultipliers ?? this.params.rewardMultipliers ?? {}\n return this._rewardMultipliers\n }\n\n static override async paramsHandler(params: Partial<SimpleXyoViewerParams>): Promise<SimpleXyoViewerParams> {\n return {\n ...await super.paramsHandler(params),\n finalizedArchivist: assertEx(params.finalizedArchivist, () => 'SimpleXyoViewer requires a finalizedArchivist'),\n chainId: assertEx(params.chainId, () => 'SimpleXyoViewer requires a chainId'),\n } satisfies SimpleXyoViewerParams\n }\n\n async accountBalance(address: Address, config: ChainQualifiedConfig = {}) {\n return await this.account.balance.accountBalance(address, config)\n }\n\n async accountBalanceHistory(address: Address, config: ChainQualifiedConfig = {}) {\n return await this.account.balance.accountBalanceHistory(address, config)\n }\n\n async blockByHash(hash: Hash) {\n return await this.block.blockByHash(hash)\n }\n\n async blockByNumber(blockNumber: XL1BlockNumber) {\n return await this.block.blockByNumber(blockNumber)\n }\n\n async blocksByHash(hash: Hash, limit: number = 10) {\n return await this.block.blocksByHash(hash, limit)\n }\n\n async blocksByNumber(blockNumber: XL1BlockNumber, limit: number = 10) {\n return await this.block.blocksByNumber(blockNumber, limit)\n }\n\n async chainId(): Promise<ChainId>\n async chainId(blockNumber: XL1BlockNumber): Promise<ChainId>\n async chainId(blockNumber: 'latest'): Promise<ChainId>\n async chainId(blockNumber: XL1BlockNumber | 'latest' = 'latest'): Promise<ChainId> {\n return await this.spanAsync('SimpleXyoViewer:chainId', async () => {\n const chainId = assertEx(\n blockNumber === 'latest' ? await this.chainContractViewer.chainId() : await this.chainContractViewer.chainIdAtBlockNumber(blockNumber),\n () => `Could not find block for chainId at block ${blockNumber}`,\n )\n return chainId\n }, this.context)\n }\n\n override async createHandler() {\n await super.createHandler()\n this._finalizedPayloadMap = readPayloadMapFromStore<WithStorageMeta<Payload>>(this.params.finalizedArchivist!)\n this._accountBalanceViewer = await this.locator.getInstance<AccountBalanceViewer>(AccountBalanceViewerMoniker)\n this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)\n this._chainContractViewer = await this.locator.getInstance<ChainContractViewer>(ChainContractViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance<FinalizationViewer>(FinalizationViewerMoniker)\n this._mempoolViewer = await this.locator.getInstance<MempoolViewer>(MempoolViewerMoniker)\n this._networkStakeViewer = await this.locator.getInstance<NetworkStakeViewer>(NetworkStakeViewerMoniker)\n this._networkStepRewardsByPositionViewer\n = await this.locator.getInstance<NetworkStakeStepRewardsByPositionViewer>(NetworkStakeStepRewardsByPositionViewerMoniker)\n this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)\n this._stepViewer = await this.locator.getInstance<StepViewer>(StepViewerMoniker)\n this._timeSyncViewer = await this.locator.getInstance<TimeSyncViewer>(TimeSyncViewerMoniker)\n }\n\n async currentBlock() {\n return await this.block.currentBlock()\n }\n\n async currentBlockHash() {\n return await this.block.currentBlockHash()\n }\n\n async currentBlockNumber() {\n return await this.block.currentBlockNumber()\n }\n\n forkHistory(): Promisable<ForkHistory> {\n throw new Error('Method [forkHistory] not implemented.')\n }\n\n networkStakeStepRewardAddressHistory(_address: Address): Promise<Record<Address, AttoXL1>> {\n throw new Error('Method [networkStakeStepRewardAddressHistory] not implemented.')\n }\n\n networkStakeStepRewardAddressReward(_context: StepIdentity, _address: Address): Promise<Record<Address, AttoXL1>> {\n throw new Error('Method [networkStakeStepRewardAddressReward] not implemented.')\n }\n\n networkStakeStepRewardAddressShare(_context: StepIdentity, _address: Address): Promise<[bigint, bigint]> {\n throw new Error('Method [networkStakeStepRewardAddressShare] not implemented.')\n }\n\n networkStakeStepRewardClaimedByAddress(_address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardClaimedByAddress] not implemented.')\n }\n\n async networkStakeStepRewardForPosition(position: number, range: XL1BlockRange): Promise<[AttoXL1, AttoXL1]> {\n const cacheKey = `${position}|${range[0]}-${range[1]}`\n return await withContextCacheResponse(this.context, 'SimpleXyoViewer:networkStakeStepRewardForPosition', cacheKey, async () => {\n const externalRange = await externalBlockRangeFromXL1BlockRange(this.context, this.block, range)\n const positionCount = await this.stake.stakeEvents.positionCount(externalRange)\n if (positionCount === 0) {\n return [asAttoXL1(0n), asAttoXL1(0n)]\n }\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7])\n const rewards = await Promise.all(steps.map(step => this.networkStakeStepRewardForStepForPosition(step, position)))\n const positionReward = asAttoXL1(rewards.reduce((a, b) => a + b[0], 0n))\n const totalReward = asAttoXL1(rewards.reduce((a, b) => a + b[1], 0n))\n return [positionReward, totalReward]\n })\n }\n\n async networkStakeStepRewardForStep(stepContext: StepIdentity): Promise<AttoXL1> {\n return await stepRewardTotal(this.context, this.block, stepContext, this.rewardMultipliers)\n }\n\n async networkStakeStepRewardForStepForPosition(stepIdentity: StepIdentity, position: number): Promise<[AttoXL1, AttoXL1]> {\n const stepIdentityString = toStepIdentityString(stepIdentity)\n const cacheKey = `${stepIdentityString}|${position}`\n return await withContextCacheResponse(this.context, 'SimpleXyoViewer:networkStakeStepRewardForStepForPosition', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(this.context, this.block, stepIdentity)\n const stake = await this.stakeById(position)\n const numerator = stake.staked === XYO_NETWORK_STAKING_ADDRESS\n ? await weightedStakeForRangeByPosition(this.context, this.block, this.stake.stakeEvents, range, XYO_NETWORK_STAKING_ADDRESS, position)\n : 0n\n\n const denominator = await this.stepWeightedDenominator(stepIdentity)\n const totalReward = await this.networkStakeStepRewardForStep(stepIdentity)\n const positionReward = asAttoXL1(denominator > 0n ? totalReward * numerator / denominator : 0n)\n const result: [AttoXL1, AttoXL1] = [positionReward, totalReward]\n return result\n })\n }\n\n async networkStakeStepRewardPoolRewards(step: StepIdentity): Promise<Record<Address, AttoXL1>> {\n const stakes = await this.stake.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS)\n const rewards: [Address, [AttoXL1, AttoXL1]][] = []\n for (const stake of stakes) {\n rewards.push([stake.staker, (await this.networkStakeStepRewardForStepForPosition(\n step,\n stake.id,\n ))])\n }\n const result: Record<Address, AttoXL1> = {}\n for (const [staker, reward] of rewards) {\n result[staker] = asAttoXL1((result[staker] ?? 0n) + reward[0])\n }\n const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v > 0n))\n return filtered\n }\n\n networkStakeStepRewardPoolShares(_context: StepIdentity): Promise<Record<Address, bigint>> {\n throw new Error('Method [networkStakeStepRewardPoolShares] not implemented.')\n }\n\n async networkStakeStepRewardPositionWeight(stepContext: StepIdentity, position: number): Promise<bigint> {\n return await networkStakeStepRewardPositionWeight(this.context, this.block, this.stake.stakeEvents, stepContext, position)\n }\n\n networkStakeStepRewardPotentialPositionLoss(_context: StepIdentity, _position: number): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardPotentialPositionLoss] not implemented.')\n }\n\n networkStakeStepRewardRandomizer(_context: StepIdentity): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardRandomizer] not implemented.')\n }\n\n async networkStakeStepRewardStakerCount(stepContext: StepIdentity): Promise<number> {\n return Object.keys(await allStakersForStep(\n this.context,\n this.block,\n this.stake.stakeEvents,\n stepContext,\n XYO_NETWORK_STAKING_ADDRESS,\n )).length\n }\n\n networkStakeStepRewardUnclaimedByAddress(_address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardUnclaimedByAddress] not implemented.')\n }\n\n networkStakeStepRewardWeightForAddress(_context: StepIdentity, _address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardWeightForAddress] not implemented.')\n }\n\n async networkStakeStepRewardsForPosition(position: number, range: XL1BlockRange): Promise<Record<StepIdentityString, [AttoXL1, AttoXL1]>> {\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7, 8])\n const rewards = await Promise.all(steps.map(async (step) => {\n return [toStepIdentityString(step), await this.networkStakeStepRewardForStepForPosition(step, position)] as [StepIdentityString, [AttoXL1, AttoXL1]]\n }))\n const result: Record<StepIdentityString, [AttoXL1, AttoXL1]> = {}\n for (const [step, reward] of rewards) {\n result[step] = reward\n }\n const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v[0] > 0n))\n return filtered\n }\n\n async networkStakeStepRewardsForRange(range: XL1BlockRange): Promise<AttoXL1> {\n return await this.spanAsync('networkStakeStepRewardsForRange', async () => {\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7, 8])\n const rewards = await Promise.all(steps.map(async (step) => {\n return await this.networkStakeStepRewardForStep(step)\n }))\n return asAttoXL1(rewards.reduce((a, b) => a + b, 0n))\n }, this.context)\n }\n\n async networkStakeStepRewardsForStepLevel(stepLevel: number, range: XL1BlockRange): Promise<AttoXL1> {\n const steps = blockRangeSteps(range, [stepLevel])\n const rewards = await Promise.all(steps.map(async (step) => {\n return await this.networkStakeStepRewardForStep(step)\n }))\n return asAttoXL1(rewards.reduce((a, b) => a + b, 0n))\n }\n\n payloadByHash(_hash: Hash): Promisable<WithHashMeta<Payload> | null> {\n throw new Error('Method [payloadByHash] not implemented.')\n }\n\n payloadsByHash(_hashes: Hash[]): Promisable<WithHashMeta<Payload>[]> {\n throw new Error('Method [payloadsByHash] not implemented.')\n }\n\n async rate(range: XL1BlockRange, timeUnit?: keyof TimeDurations): Promise<BlockRate> {\n return await this.block.rate(range, timeUnit)\n }\n\n async stakeById(id: number): Promise<Position> {\n return await this.stake.stakeById(id)\n }\n\n async stakeByStaker(staker: Address, slot: number): Promise<Position> {\n return await this.stake.stakeByStaker(staker, slot)\n }\n\n async stakedByStaker(staker: Address): Promise<Address[]> {\n const result: Set<Address> = new Set()\n let slot = 0\n while (true) {\n try {\n const ethStake = await this.stake.stakeByStaker(staker, slot)\n result.add(toAddress(ethStake.staked))\n slot++\n } catch {\n break\n }\n }\n return [...result]\n }\n\n async stakesByStaked(staked: Address): Promise<Position[]> {\n return await this.stake.stakesByStaked(staked)\n }\n\n async stakesByStaker(staker: Address): Promise<Position[]> {\n return await this.stake.stakesByStaker(staker)\n }\n\n async stepSizeRate(start: XL1BlockNumber, stepSizeIndex: StepIndex, count?: Count, timeUnit?: keyof TimeDurations): Promise<BlockRate> {\n return await this.block.stepSizeRate(start, stepSizeIndex, count, timeUnit)\n }\n\n async timeDurationRate(\n timeConfig: SingleTimeConfig,\n startBlock: XL1BlockNumber,\n timeUnit?: keyof TimeDurations,\n toleranceMs?: number,\n maxAttempts?: number,\n ): Promise<BlockRate> {\n return await this.block.timeDurationRate(timeConfig, startBlock, timeUnit, toleranceMs, maxAttempts)\n }\n\n async transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number = 0): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await this.spanAsync('transactionByBlockHashAndIndex', async () => {\n assertEx(transactionIndex >= 0, () => 'transactionIndex must be greater than or equal to 0')\n try {\n const block = await this.blockByHash(blockHash)\n if (!block) return null\n const blockBoundWitnessIndexes = block[0].payload_schemas.map((schema, index) => schema === BoundWitnessSchema ? index : undefined).filter(exists)\n const blockBoundWitnessHashes = new Set(blockBoundWitnessIndexes.map(index => block[0].payload_hashes[index]))\n const blockBoundWitnesses = block[1].filter(payload => blockBoundWitnessHashes.has(payload._hash) || blockBoundWitnessHashes.has(payload._dataHash))\n const blockTransactionBoundWitnesses = blockBoundWitnesses.filter(isTransactionBoundWitnessWithStorageMeta)\n const transaction = blockTransactionBoundWitnesses.at(transactionIndex)\n if (!transaction) return null\n return await this.transactionByHash(transaction._hash)\n } catch {\n return null\n }\n }, this.context)\n }\n\n async transactionByBlockNumberAndIndex(blockNumber: XL1BlockNumber, transactionIndex: number = 0): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await this.spanAsync('transactionByBlockNumberAndIndex', async () => {\n try {\n const block = await this.blockByNumber(blockNumber)\n if (!block) return null\n return await this.transactionByBlockHashAndIndex(block[0]._hash, transactionIndex)\n } catch {\n return null\n }\n }, this.context)\n }\n\n async transactionByHash(transactionHash: Hash): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await this.spanAsync('transactionByHash', async () => {\n try {\n const cache = this.getHydratedTransactionCache()\n const hydratedTransaction = await cache.get(transactionHash)\n return hydratedTransaction ?? null\n } catch {\n return null\n }\n }, this.context)\n }\n\n protected async getCurrentHead() {\n const chainArchivist = this.finalizedArchivist!\n const result = assertEx(await findMostRecentBlock(chainArchivist), () => 'No blocks found in finalizedArchivist')\n assertEx(result.chain === this.params.chainId, () => `Chain ID mismatch in finalizedArchivist [${result.chain} should be ${this.params.chainId}]`)\n return result\n }\n\n protected getHydratedBlockCache(): HydratedCache<SignedHydratedBlockWithHashMeta> {\n if (this._signedHydratedBlockCache) return this._signedHydratedBlockCache\n const chainMap = this._finalizedPayloadMap\n this._signedHydratedBlockCache = new HydratedCache<SignedHydratedBlockWithHashMeta>({ ...this.context, chainMap }, async (\n { chainMap }: ChainStoreRead,\n hash: Hash,\n maxDepth?: number,\n minDepth?: number,\n ) => {\n const result = await hydrateBlock({ ...this.context, chainMap }, hash, maxDepth, minDepth)\n return asSignedHydratedBlockWithHashMeta(result, true)\n }, 200)\n return this._signedHydratedBlockCache\n }\n\n protected getHydratedTransactionCache(): HydratedCache<SignedHydratedTransactionWithHashMeta> {\n if (this._signedHydratedTransactionCache) return this._signedHydratedTransactionCache\n const chainMap = this._finalizedPayloadMap\n this._signedHydratedTransactionCache = new HydratedCache<SignedHydratedTransactionWithHashMeta>({ ...this.context, chainMap }, tryHydrateTransaction, 200)\n return this._signedHydratedTransactionCache\n }\n\n protected override async startHandler() {\n try {\n const currentBlockNumber = await this.currentBlockNumber()\n // initialize functions that have slow initial call\n await this.account.balance.accountBalance(XYO_ZERO_ADDRESS)\n if (this.initRewardsCache) {\n const externalRange = await externalBlockRangeFromXL1BlockRange(\n this.context,\n this.block,\n asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }),\n )\n const positionCount = await this.stake.stakeEvents.positionCount(externalRange)\n this.logger?.log(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n const positions = Array.from(\n { length: positionCount },\n (_, i) => i,\n )\n while (positions.length > 0) {\n const batch = positions.splice(0, 10)\n this.logger?.log(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition for positions ${batch.at(0)} - ${batch.at(-1)}`)\n await Promise.all(batch.map(async (_, position) => await this.networkStakeStepRewardForPosition(\n position,\n asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }),\n )))\n }\n this.logger?.log(`SimpleXyoViewer: Precomputed networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n }\n } catch (ex) {\n this.logger?.error(`SimpleXyoViewer: Error during startHandler initialization: ${(ex as Error).message}`)\n this.logger?.error((ex as Error).stack ?? '<No Stack>')\n throw ex\n }\n }\n\n protected async stepWeightedDenominator(stepIdentity: StepIdentity, staked?: Address): Promise<bigint> {\n const cacheKey = toStepIdentityString(stepIdentity)\n return await withContextCacheResponse(this.context, 'NodeXyoViewer-networkStakeStepRewardForStepForPosition-denominator', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(this.context, this.block, stepIdentity)\n return await weightedStakeForRangeByPosition(this.context, this.block, this.stake.stakeEvents, range, staked)\n })\n }\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport {\n FinalizationViewer,\n FinalizationViewerMoniker,\n NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n NetworkStakeViewer, NetworkStakeViewerMoniker,\n StakeViewer,\n StakeViewerMoniker,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider, CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleNetworkStakeViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleNetworkStakeViewer extends AbstractCreatableProvider<SimpleNetworkStakeViewerParams> implements NetworkStakeViewer {\n static readonly defaultMoniker = NetworkStakeViewerMoniker\n static readonly dependencies = [NetworkStakeStepRewardsViewerMoniker]\n static readonly monikers = [NetworkStakeViewerMoniker]\n moniker = SimpleNetworkStakeViewer.defaultMoniker\n\n private _finalizationViewer!: FinalizationViewer\n private _stake!: StakeViewer\n private _stepRewardsViewer?: NetworkStakeStepRewardsViewer\n\n get stepRewards(): NetworkStakeStepRewardsViewer {\n return assertEx(this._stepRewardsViewer, () => 'Step rewards viewer not initialized')\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get rewardMultipliers() {\n return this.params.rewardMultipliers\n }\n\n protected get stake() {\n return this._stake\n }\n\n async active(blockNumber?: number): Promise<[bigint, number]> {\n const resolvedBlockNumber = blockNumber ?? (await this.finalizationViewer.headNumber())\n return [await this.stake.active(resolvedBlockNumber), resolvedBlockNumber]\n }\n\n override async createHandler() {\n await super.createHandler()\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stake = await this.locator.getInstance(StakeViewerMoniker)\n this._stepRewardsViewer = await this.locator.getInstance(NetworkStakeStepRewardsViewerMoniker)\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport { isArray } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByPositionViewer,\n NetworkStakeStepRewardsByPositionViewerOptions,\n StakeViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByPositionViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './primitives/index.ts'\n\nexport interface SimpleStepRewardsByPositionViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleStepRewardsByPositionViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByPositionViewerParams> implements NetworkStakeStepRewardsByPositionViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByPositionViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByPositionViewerMoniker]\n moniker = SimpleStepRewardsByPositionViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer!\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer!\n }\n\n protected get stakeViewer() {\n return this._stakeViewer!\n }\n\n async bonus({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n const total = await this.total({ range, positions })\n const earned = await this.earned({ range, positions })\n const result: Record<number, AttoXL1> = {}\n for (const pos of Object.keys(total).map(Number)) {\n result[pos] = asAttoXL1(total[pos] - (earned[pos] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByPositionViewerOptions | undefined): Promisable<Record<number, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker)\n }\n\n async earned({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n return await this.calculateRewards({ range, positions })\n }\n\n async total({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n return await this.calculateRewards({ range, positions }, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promisable<Record<number, AttoXL1>> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected async calculateRewards(\n { range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {},\n rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<Record<number, AttoXL1>> {\n const result: Record<number, AttoXL1> = {}\n const steps = blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.head())[1]],\n { name: 'NodeStepRewardsByPositionViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of steps) {\n if (isArray(positions)) {\n for (const positionId of positions) {\n const position = await this.stakeViewer.stakeById(positionId)\n result[positionId] = asAttoXL1((result[positionId] ?? 0n) + (await networkStakeStepRewardEarnedForPosition(\n this.context,\n this.blockViewer,\n this.stakeViewer.stakeEvents,\n step,\n position,\n rewardMultipliers,\n ))[0])\n }\n }\n }\n return result\n }\n}\n","import type {\n BlockViewer,\n CachingContext,\n StakeViewer,\n StepIdentity, XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'\nimport { withContextCacheResponse } from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './networkStakeStepRewardEarnedForPosition.ts'\n\nexport async function networkStakeStepRewardEarned(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeViewer: StakeViewer,\n stepIdentity: StepIdentity,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const cacheKey = `${stepIdentity.block}|${stepIdentity.step}`\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarned', cacheKey, async () => {\n const positions = (await stakeViewer.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS))\n const results = await Promise.all(positions.map((pos) => {\n return networkStakeStepRewardEarnedForPosition(\n context,\n blockViewer,\n stakeViewer.stakeEvents,\n stepIdentity,\n pos,\n rewardMultipliers,\n )\n }))\n\n const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n)\n\n const result: [bigint, bigint] = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n]\n return result\n })\n}\n","import type {\n BlockViewer,\n CachingContext,\n Position,\n StakeEventsViewer,\n StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'\nimport {\n externalBlockRangeFromStep, stepRewardTotal, weightedStakeForRangeByPosition, withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport async function networkStakeStepRewardEarnedForPosition(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeEventsViewer: StakeEventsViewer,\n stepIdentity: StepIdentity,\n position: Position,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const cacheKey = `${stepIdentity.block}|${stepIdentity.step}|${position.id}`\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarnedForPosition', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(context, blockViewer, stepIdentity)\n const numerator = position.staked === XYO_NETWORK_STAKING_ADDRESS\n ? await weightedStakeForRangeByPosition(\n context,\n blockViewer,\n stakeEventsViewer,\n range,\n XYO_NETWORK_STAKING_ADDRESS,\n position.id,\n )\n : 0n\n\n const denominator = await weightedStakeForRangeByPosition(\n context,\n blockViewer,\n stakeEventsViewer,\n range,\n )\n\n const totalReward = await stepRewardTotal(context, blockViewer, stepIdentity, rewardMultipliers)\n const positionReward = denominator > 0n ? totalReward * numerator / denominator : 0n\n const result: [bigint, bigint] = [positionReward, totalReward]\n return result\n })\n}\n","import type { Address } from '@xylabs/sdk-js'\nimport type {\n BlockViewer,\n CachingContext,\n StakeViewer,\n StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'\nimport {\n toStepIdentityString,\n withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './networkStakeStepRewardEarnedForPosition.ts'\n\nexport async function networkStakeStepRewardEarnedForStaker(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeViewer: StakeViewer,\n stepIdentity: StepIdentity,\n staker: Address,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const stepId = toStepIdentityString(stepIdentity)\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarnedForStaker', `${stepId}-${staker}`, async () => {\n const positions = (await stakeViewer.stakesByStaker(staker)).filter(pos => pos.staked === XYO_NETWORK_STAKING_ADDRESS)\n const results = await Promise.all(positions.map((pos) => {\n return networkStakeStepRewardEarnedForPosition(\n context,\n blockViewer,\n stakeViewer.stakeEvents,\n stepIdentity,\n pos,\n rewardMultipliers,\n )\n }))\n\n const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n)\n\n const result: [bigint, bigint] = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n]\n return result\n })\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport { isArray } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByStakerViewer,\n NetworkStakeStepRewardsByStakerViewerOptions,\n StakeViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByStakerViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForStaker } from './primitives/index.ts'\n\nexport interface SimpleStepRewardsByStakerViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleStepRewardsByStakerViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByStakerViewerParams> implements NetworkStakeStepRewardsByStakerViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByStakerViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByStakerViewerMoniker]\n moniker = SimpleStepRewardsByStakerViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get stakeViewer() {\n return this._stakeViewer\n }\n\n async bonus({ range, stakers }: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n const total = await this.total({ range, stakers })\n const earned = await this.earned({ range, stakers })\n const result: Record<Address, AttoXL1> = {}\n for (const staker of Object.keys(total) as Address[]) {\n result[staker] = asAttoXL1(total[staker] - (earned[staker] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByStakerViewerOptions | undefined): Promisable<Record<Address, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker)\n }\n\n async earned(options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n return await this.calculateRewards(options)\n }\n\n async total(options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n return await this.calculateRewards(options, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promisable<Record<Address, AttoXL1>> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected async calculateRewards(\n { range, stakers }: NetworkStakeStepRewardsByStakerViewerOptions = {},\n rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<Record<Address, AttoXL1>> {\n const result: Record<Address, AttoXL1> = {}\n const steps = blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.headNumber())],\n { name: 'NodeStepRewardsByStakerViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of steps) {\n if (isArray(stakers)) {\n for (const staker of stakers) {\n result[staker] = asAttoXL1((result[staker] ?? 0n) + (await networkStakeStepRewardEarnedForStaker(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n staker,\n rewardMultipliers,\n ))[0])\n }\n }\n }\n return result\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerOptions,\n StakeViewer,\n StepIdentityString,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByStepViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol'\nimport type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider, toStepIdentityString,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarned } from './primitives/index.ts'\n\nexport interface SimpleStepRewardsByStepViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleStepRewardsByStepViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByStepViewerParams> implements NetworkStakeStepRewardsByStepViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByStepViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByStepViewerMoniker]\n moniker = SimpleStepRewardsByStepViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get stakeViewer() {\n return this._stakeViewer\n }\n\n async bonus({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const total = await this.total({ range, steps })\n const earned = await this.earned({ range, steps })\n const result: Record<StepIdentityString, AttoXL1> = {}\n for (const stepString of Object.keys(total) as StepIdentityString[]) {\n result[stepString] = asAttoXL1(total[stepString] - (earned[stepString] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByStepViewerOptions | undefined): Promisable<Record<StepIdentityString, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)\n }\n\n async earned({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const result: Record<StepIdentityString, AttoXL1> = {}\n const resolvedSteps = steps ?? blockRangeSteps(asXL1BlockRange(\n range ?? [0, await this.finalizationViewer.headNumber()],\n { name: 'NodeStepRewardsByStepViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of resolvedSteps) {\n const stepIdentityString = toStepIdentityString(step)\n result[stepIdentityString] = asAttoXL1((result[stepIdentityString] ?? 0n) + (await networkStakeStepRewardEarned(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n ))[0])\n }\n return result\n }\n\n async total({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const result: Record<StepIdentityString, AttoXL1> = {}\n const resolvedSteps = steps ?? blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.head())[1]],\n { name: 'NodeStepRewardsByStepViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of resolvedSteps) {\n const stepIdentityString = toStepIdentityString(step)\n result[stepIdentityString] = asAttoXL1((result[stepIdentityString] ?? 0n)\n + (await networkStakeStepRewardEarned(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n this.rewardMultipliers,\n ))[0])\n }\n return result\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByStepViewerOptions = {}): Promisable<Record<StepIdentityString, AttoXL1>> {\n throw new Error('Method [unclaimed] ot implemented.')\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n NetworkStakeStepRewardsRangeOptions,\n NetworkStakeStepRewardsTotalViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { asAttoXL1, NetworkStakeStepRewardsTotalViewerMoniker } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleStepRewardsTotalViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleStepRewardsTotalViewer extends\n AbstractCreatableProvider<SimpleStepRewardsTotalViewerParams> implements NetworkStakeStepRewardsTotalViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsTotalViewerMoniker\n static readonly dependencies = []\n static readonly monikers = [NetworkStakeStepRewardsTotalViewerMoniker]\n moniker = SimpleStepRewardsTotalViewer.defaultMoniker\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n async bonus({ range }: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n const total = await this.total({ range })\n const earned = await this.earned({ range })\n return asAttoXL1(total - earned)\n }\n\n claimed(_options?: NetworkStakeStepRewardsRangeOptions | undefined): Promisable<AttoXL1> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n async earned(options: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n return await this.calculateRewards(options)\n }\n\n async total(options: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n return await this.calculateRewards(options, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsRangeOptions = {}): Promisable<AttoXL1> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected calculateRewards(\n _options: NetworkStakeStepRewardsRangeOptions = {},\n _rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<AttoXL1> {\n throw new Error('Method [calculateRewards] not implemented.')\n }\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport {\n BlockViewer,\n BlockViewerMoniker,\n NetworkStakeStepRewardsByPositionViewer,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeStepRewardsByStakerViewer,\n NetworkStakeStepRewardsByStakerViewerMoniker,\n NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerMoniker,\n NetworkStakeStepRewardsTotalViewer,\n NetworkStakeStepRewardsViewer, NetworkStakeStepRewardsViewerMoniker, type XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleStepRewardsByPositionViewer } from './SimpleStepRewardsByPositionViewer.ts'\nimport { SimpleStepRewardsByStakerViewer } from './SimpleStepRewardsByStakerViewer.ts'\nimport { SimpleStepRewardsByStepViewer } from './SimpleStepRewardsByStepViewer.ts'\n\nexport interface NodeStepRewardsViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleStepRewardsViewer extends AbstractCreatableProvider<NodeStepRewardsViewerParams> implements NetworkStakeStepRewardsViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsViewerMoniker\n\n static readonly dependencies = [\n BlockViewerMoniker,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeStepRewardsByStakerViewerMoniker,\n NetworkStakeStepRewardsByStepViewerMoniker,\n ]\n\n static readonly monikers = [NetworkStakeStepRewardsViewerMoniker]\n moniker = SimpleStepRewardsViewer.defaultMoniker\n\n private _blockViewer?: BlockViewer\n private _position?: SimpleStepRewardsByPositionViewer\n private _staker?: SimpleStepRewardsByStakerViewer\n private _step?: SimpleStepRewardsByStepViewer\n\n get position(): NetworkStakeStepRewardsByPositionViewer {\n return assertEx(this._position, () => 'Position viewer not initialized')\n }\n\n get staker(): NetworkStakeStepRewardsByStakerViewer {\n return assertEx(this._staker, () => 'Position viewer not initialized')\n }\n\n get step(): NetworkStakeStepRewardsByStepViewer {\n return assertEx(this._step, () => 'Step viewer not initialized')\n }\n\n get total(): NetworkStakeStepRewardsTotalViewer {\n throw new Error('Method [total] not implemented.')\n }\n\n protected get rewardMultipliers() {\n return this.params.rewardMultipliers\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)\n this._position = await this.locator.getInstance<SimpleStepRewardsByPositionViewer>(NetworkStakeStepRewardsByPositionViewerMoniker)\n this._staker = await this.locator.getInstance<SimpleStepRewardsByStakerViewer>(NetworkStakeStepRewardsByStakerViewerMoniker)\n this._step = await this.locator.getInstance<SimpleStepRewardsByStepViewer>(NetworkStakeStepRewardsByStepViewerMoniker)\n }\n\n protected override async startHandler(): Promise<void> {\n await super.startHandler()\n await assertEx(this._position, () => 'Position viewer not created').start()\n await assertEx(this._staker, () => 'Staker viewer not created').start()\n await assertEx(this._step, () => 'Step viewer not created').start()\n }\n}\n","import {\n type Address,\n type Promisable,\n} from '@xylabs/sdk-js'\nimport {\n BlockViewer,\n BlockViewerMoniker,\n NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n PagedPositionsOptions,\n PagedStakersOptions,\n Position,\n type PositionId, StakeEventsViewer, StakeEventsViewerMoniker, StakeViewer, StakeViewerMoniker, type StepIdentity, StepViewer, StepViewerMoniker,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n externalBlockRangeFromStep,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleStepViewerParams extends CreatableProviderParams {\n\n}\n\n@creatableProvider()\nexport class SimpleStepViewer extends AbstractCreatableProvider<SimpleStepViewerParams> implements StepViewer {\n static readonly defaultMoniker = StepViewerMoniker\n\n static readonly dependencies = [\n BlockViewerMoniker,\n NetworkStakeStepRewardsViewerMoniker,\n StakeViewerMoniker,\n StakeEventsViewerMoniker,\n ]\n\n static readonly monikers = [StepViewerMoniker]\n moniker = SimpleStepViewer.defaultMoniker\n\n private _blockViewer?: BlockViewer\n private _networkStakeStepRewardsViewer?: NetworkStakeStepRewardsViewer\n private _stakeEventsViewer?: StakeEventsViewer\n private _stakeViewer?: StakeViewer\n\n get rewards() {\n return this._networkStakeStepRewardsViewer!\n }\n\n protected get blockViewer() {\n return this._blockViewer!\n }\n\n protected get stakeEventsViewer() {\n return this._stakeEventsViewer!\n }\n\n protected get stakeViewer() {\n return this._stakeViewer!\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)\n this._networkStakeStepRewardsViewer = await this.locator.getInstance<NetworkStakeStepRewardsViewer>(NetworkStakeStepRewardsViewerMoniker)\n this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)\n this._stakeEventsViewer = await this.locator.getInstance<StakeEventsViewer>(StakeEventsViewerMoniker)\n }\n\n async positionCount(step: StepIdentity): Promise<number> {\n const externalRange = await externalBlockRangeFromStep(this.context, this.blockViewer, step)\n const positionCount = await this.stakeEventsViewer.positionCount(externalRange)\n return positionCount\n }\n\n // TODO: Implement paging\n async positions(step: StepIdentity, _options?: PagedPositionsOptions): Promise<Position[]> {\n const count = await this.positionCount(step)\n const externalRange = await externalBlockRangeFromStep(this.context, this.blockViewer, step)\n const allPositions = await Promise.all(Array.from({ length: count + 1 }, (_, i) => i).map(id => this.stakeViewer.stakeById(id)))\n return allPositions.filter(pos => pos.addBlock <= externalRange[1] && (pos.removeBlock === 0 || pos.removeBlock > externalRange[0]))\n }\n\n randomizer(_step: StepIdentity): Promisable<bigint> {\n throw new Error('Method [randomizer] not implemented.')\n }\n\n stake(_step: StepIdentity): Promisable<bigint> {\n throw new Error('Method [stake] not implemented.')\n }\n\n stakerCount(_step: StepIdentity): Promisable<number> {\n throw new Error('Method [stakerCount] not implemented.')\n }\n\n stakers(_step: StepIdentity, _options?: PagedStakersOptions): Promisable<Address[]> {\n throw new Error('Method [stakers] not implemented.')\n }\n\n weight(_step: StepIdentity, _positionId?: PositionId): Promisable<bigint> {\n throw new Error('Method [weight] not implemented.')\n }\n}\n","import { CreatableParams } from '@xylabs/sdk-js'\nimport { XyoViewer, XyoViewerMoniker } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n type CreatableProviderContext,\n type DataLakeRunner, DataLakeRunnerMoniker, type DataLakeViewer, DataLakeViewerMoniker,\n type XyoConnection, XyoConnectionMoniker, type XyoNetwork, type XyoRunner, XyoRunnerMoniker,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleXyoConnectionParams<TContext extends CreatableProviderContext = CreatableProviderContext> extends CreatableParams {\n context: TContext\n}\n\n@creatableProvider()\nexport class SimpleXyoConnection<TParams extends SimpleXyoConnectionParams = SimpleXyoConnectionParams> extends\n AbstractCreatableProvider<TParams> implements XyoConnection {\n static readonly defaultMoniker = XyoConnectionMoniker\n static readonly dependencies = [XyoRunnerMoniker, XyoViewerMoniker, DataLakeRunnerMoniker, DataLakeViewerMoniker]\n static readonly monikers = [XyoConnectionMoniker]\n moniker = SimpleXyoConnection.defaultMoniker\n\n protected _network?: XyoNetwork\n protected _runner?: XyoRunner\n protected _storage?: DataLakeRunner | DataLakeViewer\n protected _viewer?: XyoViewer\n\n get network(): XyoNetwork | undefined {\n return this._network\n }\n\n get runner(): XyoRunner | undefined {\n return this._runner\n }\n\n get storage(): DataLakeRunner | DataLakeViewer | undefined {\n return this._storage\n }\n\n get viewer(): XyoViewer | undefined {\n return this._viewer\n }\n\n override async createHandler() {\n await super.createHandler()\n this._runner = await this.locator.getInstance<XyoRunner>(XyoRunnerMoniker)\n this._viewer = await this.locator.getInstance<XyoViewer>(XyoViewerMoniker)\n const dataLakeRunner = await this.locator.tryGetInstance<DataLakeRunner>(DataLakeRunnerMoniker)\n const dataLakeViewer = await this.locator.tryGetInstance<DataLakeViewer>(DataLakeViewerMoniker)\n this._storage = dataLakeRunner ?? dataLakeViewer\n }\n}\n","import type { AccountInstance } from '@xyo-network/account-model'\nimport { SimpleXyoSigner, XyoSignerMoniker } from '@xyo-network/xl1-protocol-sdk'\n\nimport type { BuildProviderLocatorParams } from './buildProviderLocator.ts'\nimport { buildSimpleProviderLocator } from './buildProviderLocator.ts'\n\nexport interface BuildSimpleXyoSignerLocatorParams extends BuildProviderLocatorParams {\n account: AccountInstance\n}\n\nexport async function buildSimpleXyoSigner(params: BuildSimpleXyoSignerLocatorParams) {\n const { account, ...restParams } = params\n const locator = buildSimpleProviderLocator(restParams)\n locator.register(\n SimpleXyoSigner.factory<SimpleXyoSigner>(SimpleXyoSigner.dependencies, { account }),\n )\n return await locator.getInstance<SimpleXyoSigner>(XyoSignerMoniker)\n}\n"],"mappings":"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","names":["assertEx","creatableProvider","chainMap","assertEx","creatableProvider","assertEx","FinalizationViewerMoniker","NetworkStakeViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","assertEx","FinalizationViewerMoniker","StakeViewerMoniker","NetworkStakeViewerMoniker","creatableProvider","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","XYO_NETWORK_STAKING_ADDRESS","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","externalBlockRangeFromStep","stepRewardTotal","weightedStakeForRangeByPosition","withContextCacheResponse","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","XYO_NETWORK_STAKING_ADDRESS","toStepIdentityString","withContextCacheResponse","toStepIdentityString","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","NetworkStakeStepRewardsByPositionViewerMoniker","creatableProvider","isArray","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","isArray","creatableProvider","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","toStepIdentityString","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","toStepIdentityString","creatableProvider","asAttoXL1","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","asAttoXL1","creatableProvider","assertEx","BlockViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","assertEx","BlockViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","creatableProvider","BlockViewerMoniker","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","StepViewerMoniker","AbstractCreatableProvider","creatableProvider","externalBlockRangeFromStep","AbstractCreatableProvider","BlockViewerMoniker","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","externalBlockRangeFromStep","StepViewerMoniker","creatableProvider","XyoViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","XyoViewerMoniker","creatableProvider"]}
1
+ {"version":3,"sources":["../../src/buildProviderLocator.ts","../../src/NodeXyoViewer.ts","../../src/SimpleXyoViewer.ts","../../src/SimpleNetworkStakeViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsByPositionViewer.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarned.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForPosition.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForStaker.ts","../../src/SimpleStepRewards/SimpleStepRewardsByStakerViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsByStepViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsTotalViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsViewer.ts","../../src/SimpleStepViewer.ts","../../src/SimpleXyoConnection.ts","../../src/buildSimpleXyoSigner.ts"],"sourcesContent":["import type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport type { WithHashMeta } from '@xyo-network/payload-model'\nimport type {\n ChainId, MapType, Position,\n} from '@xyo-network/xl1-protocol'\nimport type {\n BalancesStepSummary, CreatableProviderContext, TransfersStepSummary,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n getDefaultConfig, getEmptyContext, ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockViewer, SimpleFinalizationViewer, SimpleMempoolRunner, SimpleMempoolViewer,\n SimpleStakeEventsViewer, SimpleStakeViewer, SimpleTimeSyncViewer, SimpleWindowedBlockViewer, SimpleXyoRunner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { TransportFactory } from '@xyo-network/xl1-rpc'\nimport {\n AccountBalanceViewerRpcSchemas, BlockViewerRpcSchemas, DataLakeViewerRpcSchemas, JsonRpcAccountBalanceViewer, JsonRpcBlockViewer, JsonRpcDataLakeViewer,\n JsonRpcMempoolRunner, JsonRpcMempoolViewer, JsonRpcNetworkStakeViewer, JsonRpcNetworkStakingStepRewardsViewer, JsonRpcStakeTotalsViewer,\n JsonRpcTimeSyncViewer, JsonRpcXyoRunner, JsonRpcXyoViewer, MempoolRunnerRpcSchemas, MempoolViewerRpcSchemas, NetworkStakeViewerRpcSchemas,\n StakeTotalsViewerRpcSchemas, TimeSyncViewerRpcSchemas, XyoRunnerRpcSchemas, XyoViewerRpcSchemas,\n} from '@xyo-network/xl1-rpc'\n\nimport { NodeXyoViewer } from './NodeXyoViewer.ts'\nimport { SimpleNetworkStakeViewer } from './SimpleNetworkStakeViewer.ts'\nimport {\n SimpleStepRewardsByPositionViewer, SimpleStepRewardsByStakerViewer, SimpleStepRewardsByStepViewer, SimpleStepRewardsTotalViewer, SimpleStepRewardsViewer,\n} from './SimpleStepRewards/index.ts'\nimport { SimpleStepViewer } from './SimpleStepViewer.ts'\nimport { SimpleXyoConnection } from './SimpleXyoConnection.ts'\n\nexport interface BuildProviderLocatorParams {\n context?: Omit<CreatableProviderContext, 'locator'> & Partial<{ locator: CreatableProviderContext['locator'] }>\n}\n\nexport function buildProviderLocator({ context = getEmptyContext() }: BuildProviderLocatorParams = {}) {\n const {\n config = getDefaultConfig(), locator, singletons = {}, caches = {}, ...restOfContext\n } = context\n return new ProviderFactoryLocator({\n ...restOfContext, config, singletons, caches,\n }, locator?.registry)\n}\n\nexport interface BuildSimpleProviderLocatorParams extends BuildProviderLocatorParams {\n\n}\n\nexport function buildSimpleProviderLocator(params?: BuildSimpleProviderLocatorParams) {\n const locator = buildProviderLocator(params)\n const positions: Position[] = []\n return locator.registerMany([\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions }),\n SimpleNetworkStakeViewer.factory<SimpleNetworkStakeViewer>(SimpleNetworkStakeViewer.dependencies, {}),\n SimpleTimeSyncViewer.factory<SimpleTimeSyncViewer>(SimpleTimeSyncViewer.dependencies, {}),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies, {}),\n SimpleStepRewardsViewer.factory<SimpleStepRewardsViewer>(SimpleStepRewardsViewer.dependencies, {}),\n SimpleStepRewardsByPositionViewer.factory<SimpleStepRewardsByPositionViewer>(SimpleStepRewardsByPositionViewer.dependencies, {}),\n SimpleStepRewardsByStakerViewer.factory<SimpleStepRewardsByStakerViewer>(SimpleStepRewardsByStakerViewer.dependencies, {}),\n SimpleStepRewardsByStepViewer.factory<SimpleStepRewardsByStepViewer>(SimpleStepRewardsByStepViewer.dependencies, {}),\n SimpleStepRewardsTotalViewer.factory<SimpleStepRewardsTotalViewer>(SimpleStepRewardsTotalViewer.dependencies, {}),\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleXyoConnection.factory<SimpleXyoConnection>(SimpleXyoConnection.dependencies, {}),\n ])\n}\n\nexport interface BuildJsonRpcProviderLocatorParams extends BuildProviderLocatorParams {\n transportFactory: TransportFactory\n}\n\nexport async function buildJsonRpcProviderLocator(params: BuildJsonRpcProviderLocatorParams) {\n const locator = buildProviderLocator(params)\n const transportFactory = params.transportFactory\n const positions: Position[] = []\n return locator.registerMany([\n JsonRpcStakeTotalsViewer.factory<JsonRpcStakeTotalsViewer>(\n JsonRpcStakeTotalsViewer.dependencies,\n { transport: await transportFactory(StakeTotalsViewerRpcSchemas) },\n ),\n JsonRpcAccountBalanceViewer.factory<JsonRpcAccountBalanceViewer>(\n JsonRpcAccountBalanceViewer.dependencies,\n { transport: await transportFactory(AccountBalanceViewerRpcSchemas) },\n ),\n JsonRpcBlockViewer.factory<JsonRpcBlockViewer>(JsonRpcBlockViewer.dependencies, { transport: await transportFactory(BlockViewerRpcSchemas) }),\n JsonRpcDataLakeViewer.factory<JsonRpcDataLakeViewer>(JsonRpcDataLakeViewer.dependencies, { transport: await transportFactory(DataLakeViewerRpcSchemas) }),\n JsonRpcMempoolRunner.factory<JsonRpcMempoolRunner>(JsonRpcMempoolRunner.dependencies, { transport: await transportFactory(MempoolRunnerRpcSchemas) }),\n JsonRpcMempoolViewer.factory<JsonRpcMempoolViewer>(JsonRpcMempoolViewer.dependencies, { transport: await transportFactory(MempoolViewerRpcSchemas) }),\n JsonRpcNetworkStakeViewer.factory<JsonRpcNetworkStakeViewer>(\n JsonRpcNetworkStakeViewer.dependencies,\n { transport: await transportFactory(NetworkStakeViewerRpcSchemas) },\n ),\n JsonRpcTimeSyncViewer.factory<JsonRpcTimeSyncViewer>(JsonRpcTimeSyncViewer.dependencies, { transport: await transportFactory(TimeSyncViewerRpcSchemas) }),\n JsonRpcNetworkStakingStepRewardsViewer.factory<JsonRpcNetworkStakingStepRewardsViewer>(\n JsonRpcNetworkStakingStepRewardsViewer.dependencies,\n { transport: await transportFactory(NetworkStakeViewerRpcSchemas) },\n ),\n JsonRpcXyoRunner.factory<JsonRpcXyoRunner>(JsonRpcXyoRunner.dependencies, { transport: await transportFactory(XyoRunnerRpcSchemas) }),\n JsonRpcXyoViewer.factory<JsonRpcXyoViewer>(JsonRpcXyoViewer.dependencies, { transport: await transportFactory(XyoViewerRpcSchemas) }),\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions }),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies, {}),\n SimpleXyoConnection.factory<SimpleXyoConnection>(SimpleXyoConnection.dependencies, {}),\n ])\n}\n\nexport interface BuildLocalProviderLocatorParams extends BuildProviderLocatorParams {\n balancesSummaryMap: MapType<string, WithHashMeta<BalancesStepSummary>>\n chainId: ChainId\n finalizedArchivist: ArchivistInstance\n node: NodeInstance\n pendingBlocksArchivist: ArchivistInstance\n pendingTransactionsArchivist: ArchivistInstance\n transfersSummaryMap: MapType<string, WithHashMeta<TransfersStepSummary>>\n}\n\nexport function buildLocalProviderLocator(params: BuildLocalProviderLocatorParams) {\n const locator = buildSimpleProviderLocator(params)\n const {\n pendingTransactionsArchivist, pendingBlocksArchivist, balancesSummaryMap, transfersSummaryMap, finalizedArchivist, node, chainId,\n } = params\n return locator.registerMany([\n SimpleMempoolViewer.factory<SimpleMempoolViewer>(SimpleMempoolViewer.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleMempoolRunner.factory<SimpleMempoolRunner>(SimpleMempoolRunner.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleAccountBalanceViewer.factory<SimpleAccountBalanceViewer>(SimpleAccountBalanceViewer.dependencies, { balancesSummaryMap, transfersSummaryMap }),\n SimpleFinalizationViewer.factory<SimpleFinalizationViewer>(SimpleFinalizationViewer.dependencies, { finalizedArchivist }),\n SimpleBlockViewer.factory<SimpleBlockViewer>(SimpleBlockViewer.dependencies, { finalizedArchivist }),\n SimpleXyoRunner.factory<SimpleXyoRunner>(SimpleXyoRunner.dependencies, {}),\n SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 10_000, syncInterval: 10_000 }),\n NodeXyoViewer.factory<NodeXyoViewer>(NodeXyoViewer.dependencies, { node, chainId }),\n ])\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { asAttachableArchivistInstance } from '@xyo-network/archivist-model'\nimport type { ModuleIdentifier } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol'\nimport { creatableProvider } from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleXyoViewer, SimpleXyoViewerParams } from './SimpleXyoViewer.ts'\n\nexport interface NodeXyoViewerParams extends SimpleXyoViewerParams {\n node: NodeInstance\n}\n\n@creatableProvider()\nexport class NodeXyoViewer extends SimpleXyoViewer<NodeXyoViewerParams> implements XyoViewer {\n protected static readonly finalizedArchivistPath: ModuleIdentifier = 'XYOChain:Chain:Finalized'\n\n protected get node() {\n return this.params.node\n }\n\n static override async paramsHandler(params: Partial<NodeXyoViewerParams>): Promise<NodeXyoViewerParams> {\n const node = assertEx(params.node, () => 'NodeXyoViewer requires a node')\n const finalizedArchivist = await this.getFinalizedArchivistFromNode(node)\n return {\n ...await super.paramsHandler({ ...params, finalizedArchivist }),\n node,\n } satisfies NodeXyoViewerParams\n }\n\n protected static getArchivist = async (node: NodeInstance, identifier: ModuleIdentifier) => {\n const archivist = await node.resolve(identifier)\n return assertEx(asAttachableArchivistInstance(archivist), () => `Could not resolve ${identifier} to an archivist instance`)\n }\n\n protected static async getFinalizedArchivistFromNode(node: NodeInstance): Promise<ArchivistInstance> {\n const resolved = await this.getArchivist(node, this.finalizedArchivistPath)\n return assertEx(resolved, () => `Could not resolve finalized archivist at ${this.finalizedArchivistPath}`)\n }\n}\n","import type { Tracer } from '@opentelemetry/api'\nimport type {\n Address,\n Hash, Promisable,\n} from '@xylabs/sdk-js'\nimport {\n assertEx, exists,\n toAddress,\n} from '@xylabs/sdk-js'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type {\n Payload, WithHashMeta, WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport type {\n AccountBalanceViewer,\n AttoXL1,\n BlockRate,\n BlockViewer, ChainContractViewer, ChainId,\n ChainQualifiedConfig, Count,\n FinalizationViewer,\n ForkHistory,\n MempoolViewer, NetworkStakeStepRewardsByPositionViewer, NetworkStakeViewer, PayloadMapRead, Position,\n SignedHydratedBlockWithHashMeta,\n SignedHydratedTransactionWithHashMeta,\n SingleTimeConfig,\n StakeViewer,\n StepIdentity, StepIdentityString,\n StepIndex,\n StepViewer,\n TimeDurations,\n TimeSyncViewer,\n XL1BlockNumber, XL1BlockRange, XL1RangeMultipliers,\n XyoViewer,\n} from '@xyo-network/xl1-protocol'\nimport {\n AccountBalanceViewerMoniker,\n asAttoXL1,\n asSignedHydratedBlockWithHashMeta, asXL1BlockRange,\n BlockViewerMoniker,\n ChainContractViewerMoniker,\n FinalizationViewerMoniker,\n isTransactionBoundWitnessWithStorageMeta, MempoolViewerMoniker, NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeViewerMoniker, StakeViewerMoniker, StepViewerMoniker, TimeSyncViewerMoniker, XYO_NETWORK_STAKING_ADDRESS,\n XYO_ZERO_ADDRESS,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n allStakersForStep,\n blockRangeSteps,\n ChainStoreRead,\n creatableProvider,\n CreatableProviderParams,\n externalBlockRangeFromStep,\n externalBlockRangeFromXL1BlockRange,\n findMostRecentBlock, hydrateBlock, HydratedCache,\n networkStakeStepRewardPositionWeight,\n readPayloadMapFromStore, stepRewardTotal,\n toStepIdentityString, tryHydrateTransaction,\n weightedStakeForRangeByPosition,\n withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleXyoViewerParams extends CreatableProviderParams {\n chainId: ChainId\n finalizedArchivist?: ArchivistInstance\n initRewardsCache?: boolean\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleXyoViewer<TParams extends SimpleXyoViewerParams = SimpleXyoViewerParams> extends AbstractCreatableProvider<TParams> implements XyoViewer {\n static readonly defaultMoniker = XyoViewerMoniker\n\n static readonly dependencies = [\n AccountBalanceViewerMoniker,\n BlockViewerMoniker,\n MempoolViewerMoniker,\n NetworkStakeViewerMoniker,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n StakeViewerMoniker,\n StepViewerMoniker,\n TimeSyncViewerMoniker,\n ]\n\n static readonly monikers = [XyoViewerMoniker]\n moniker = SimpleXyoViewer.defaultMoniker\n\n protected _tracer: Tracer | undefined\n\n private _accountBalanceViewer?: AccountBalanceViewer\n private _blockViewer?: BlockViewer\n private _chainContractViewer?: ChainContractViewer\n private _finalizationViewer!: FinalizationViewer\n private _finalizedPayloadMap!: PayloadMapRead<WithStorageMeta<Payload>>\n private _mempoolViewer?: MempoolViewer\n private _networkStakeViewer?: NetworkStakeViewer\n private _networkStepRewardsByPositionViewer?: NetworkStakeStepRewardsByPositionViewer\n private _rewardMultipliers?: XL1RangeMultipliers\n private _signedHydratedBlockCache?: HydratedCache<SignedHydratedBlockWithHashMeta>\n private _signedHydratedTransactionCache?: HydratedCache<SignedHydratedTransactionWithHashMeta>\n private _stakeViewer?: StakeViewer\n private _stepViewer?: StepViewer\n private _timeSyncViewer?: TimeSyncViewer\n\n get account() {\n return { balance: this._accountBalanceViewer! }\n }\n\n get block() {\n return this._blockViewer!\n }\n\n get chainContractViewer() {\n return this._chainContractViewer!\n }\n\n get mempool() {\n return this._mempoolViewer!\n }\n\n get networkStake() {\n return this._networkStakeViewer!\n }\n\n get stake() {\n return this._stakeViewer!\n }\n\n get step() {\n return this._stepViewer!\n }\n\n get time() {\n return this._timeSyncViewer!\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get finalizedArchivist() {\n return this.params.finalizedArchivist\n }\n\n protected get initRewardsCache() {\n return this.params.initRewardsCache ?? true\n }\n\n protected get networkStepRewardsByPositionViewer() {\n return this._networkStepRewardsByPositionViewer!\n }\n\n protected get rewardMultipliers() {\n this._rewardMultipliers = this._rewardMultipliers ?? this.params.rewardMultipliers ?? {}\n return this._rewardMultipliers\n }\n\n static override async paramsHandler(params: Partial<SimpleXyoViewerParams>): Promise<SimpleXyoViewerParams> {\n return {\n ...await super.paramsHandler(params),\n finalizedArchivist: assertEx(params.finalizedArchivist, () => 'SimpleXyoViewer requires a finalizedArchivist'),\n chainId: assertEx(params.chainId, () => 'SimpleXyoViewer requires a chainId'),\n } satisfies SimpleXyoViewerParams\n }\n\n async accountBalance(address: Address, config: ChainQualifiedConfig = {}) {\n return await this.account.balance.accountBalance(address, config)\n }\n\n async accountBalanceHistory(address: Address, config: ChainQualifiedConfig = {}) {\n return await this.account.balance.accountBalanceHistory(address, config)\n }\n\n async blockByHash(hash: Hash) {\n return await this.block.blockByHash(hash)\n }\n\n async blockByNumber(blockNumber: XL1BlockNumber) {\n return await this.block.blockByNumber(blockNumber)\n }\n\n async blocksByHash(hash: Hash, limit: number = 10) {\n return await this.block.blocksByHash(hash, limit)\n }\n\n async blocksByNumber(blockNumber: XL1BlockNumber, limit: number = 10) {\n return await this.block.blocksByNumber(blockNumber, limit)\n }\n\n async chainId(): Promise<ChainId>\n async chainId(blockNumber: XL1BlockNumber): Promise<ChainId>\n async chainId(blockNumber: 'latest'): Promise<ChainId>\n async chainId(blockNumber: XL1BlockNumber | 'latest' = 'latest'): Promise<ChainId> {\n return await this.spanAsync('SimpleXyoViewer:chainId', async () => {\n const chainId = assertEx(\n blockNumber === 'latest' ? await this.chainContractViewer.chainId() : await this.chainContractViewer.chainIdAtBlockNumber(blockNumber),\n () => `Could not find block for chainId at block ${blockNumber}`,\n )\n return chainId\n }, this.context)\n }\n\n override async createHandler() {\n await super.createHandler()\n this._finalizedPayloadMap = readPayloadMapFromStore<WithStorageMeta<Payload>>(this.params.finalizedArchivist!)\n this._accountBalanceViewer = await this.locator.getInstance<AccountBalanceViewer>(AccountBalanceViewerMoniker)\n this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)\n this._chainContractViewer = await this.locator.getInstance<ChainContractViewer>(ChainContractViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance<FinalizationViewer>(FinalizationViewerMoniker)\n this._mempoolViewer = await this.locator.getInstance<MempoolViewer>(MempoolViewerMoniker)\n this._networkStakeViewer = await this.locator.getInstance<NetworkStakeViewer>(NetworkStakeViewerMoniker)\n this._networkStepRewardsByPositionViewer\n = await this.locator.getInstance<NetworkStakeStepRewardsByPositionViewer>(NetworkStakeStepRewardsByPositionViewerMoniker)\n this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)\n this._stepViewer = await this.locator.getInstance<StepViewer>(StepViewerMoniker)\n this._timeSyncViewer = await this.locator.getInstance<TimeSyncViewer>(TimeSyncViewerMoniker)\n }\n\n async currentBlock() {\n return await this.block.currentBlock()\n }\n\n async currentBlockHash() {\n return await this.block.currentBlockHash()\n }\n\n async currentBlockNumber() {\n return await this.block.currentBlockNumber()\n }\n\n forkHistory(): Promisable<ForkHistory> {\n throw new Error('Method [forkHistory] not implemented.')\n }\n\n networkStakeStepRewardAddressHistory(_address: Address): Promise<Record<Address, AttoXL1>> {\n throw new Error('Method [networkStakeStepRewardAddressHistory] not implemented.')\n }\n\n networkStakeStepRewardAddressReward(_context: StepIdentity, _address: Address): Promise<Record<Address, AttoXL1>> {\n throw new Error('Method [networkStakeStepRewardAddressReward] not implemented.')\n }\n\n networkStakeStepRewardAddressShare(_context: StepIdentity, _address: Address): Promise<[bigint, bigint]> {\n throw new Error('Method [networkStakeStepRewardAddressShare] not implemented.')\n }\n\n networkStakeStepRewardClaimedByAddress(_address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardClaimedByAddress] not implemented.')\n }\n\n async networkStakeStepRewardForPosition(position: number, range: XL1BlockRange): Promise<[AttoXL1, AttoXL1]> {\n const cacheKey = `${position}|${range[0]}-${range[1]}`\n return await withContextCacheResponse(this.context, 'SimpleXyoViewer:networkStakeStepRewardForPosition', cacheKey, async () => {\n const externalRange = await externalBlockRangeFromXL1BlockRange(this.context, this.block, range)\n const positionCount = await this.stake.stakeEvents.positionCount(externalRange)\n if (positionCount === 0) {\n return [asAttoXL1(0n), asAttoXL1(0n)]\n }\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7])\n const rewards = await Promise.all(steps.map(step => this.networkStakeStepRewardForStepForPosition(step, position)))\n const positionReward = asAttoXL1(rewards.reduce((a, b) => a + b[0], 0n))\n const totalReward = asAttoXL1(rewards.reduce((a, b) => a + b[1], 0n))\n return [positionReward, totalReward]\n })\n }\n\n async networkStakeStepRewardForStep(stepContext: StepIdentity): Promise<AttoXL1> {\n return await stepRewardTotal(this.context, this.block, stepContext, this.rewardMultipliers)\n }\n\n async networkStakeStepRewardForStepForPosition(stepIdentity: StepIdentity, position: number): Promise<[AttoXL1, AttoXL1]> {\n const stepIdentityString = toStepIdentityString(stepIdentity)\n const cacheKey = `${stepIdentityString}|${position}`\n return await withContextCacheResponse(this.context, 'SimpleXyoViewer:networkStakeStepRewardForStepForPosition', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(this.context, this.block, stepIdentity)\n const stake = await this.stakeById(position)\n const numerator = stake.staked === XYO_NETWORK_STAKING_ADDRESS\n ? await weightedStakeForRangeByPosition(this.context, this.block, this.stake.stakeEvents, range, XYO_NETWORK_STAKING_ADDRESS, position)\n : 0n\n\n const denominator = await this.stepWeightedDenominator(stepIdentity)\n const totalReward = await this.networkStakeStepRewardForStep(stepIdentity)\n const positionReward = asAttoXL1(denominator > 0n ? totalReward * numerator / denominator : 0n)\n const result: [AttoXL1, AttoXL1] = [positionReward, totalReward]\n return result\n })\n }\n\n async networkStakeStepRewardPoolRewards(step: StepIdentity): Promise<Record<Address, AttoXL1>> {\n const stakes = await this.stake.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS)\n const rewards: [Address, [AttoXL1, AttoXL1]][] = []\n for (const stake of stakes) {\n rewards.push([stake.staker, (await this.networkStakeStepRewardForStepForPosition(\n step,\n stake.id,\n ))])\n }\n const result: Record<Address, AttoXL1> = {}\n for (const [staker, reward] of rewards) {\n result[staker] = asAttoXL1((result[staker] ?? 0n) + reward[0])\n }\n const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v > 0n))\n return filtered\n }\n\n networkStakeStepRewardPoolShares(_context: StepIdentity): Promise<Record<Address, bigint>> {\n throw new Error('Method [networkStakeStepRewardPoolShares] not implemented.')\n }\n\n async networkStakeStepRewardPositionWeight(stepContext: StepIdentity, position: number): Promise<bigint> {\n return await networkStakeStepRewardPositionWeight(this.context, this.block, this.stake.stakeEvents, stepContext, position)\n }\n\n networkStakeStepRewardPotentialPositionLoss(_context: StepIdentity, _position: number): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardPotentialPositionLoss] not implemented.')\n }\n\n networkStakeStepRewardRandomizer(_context: StepIdentity): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardRandomizer] not implemented.')\n }\n\n async networkStakeStepRewardStakerCount(stepContext: StepIdentity): Promise<number> {\n return Object.keys(await allStakersForStep(\n this.context,\n this.block,\n this.stake.stakeEvents,\n stepContext,\n XYO_NETWORK_STAKING_ADDRESS,\n )).length\n }\n\n networkStakeStepRewardUnclaimedByAddress(_address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardUnclaimedByAddress] not implemented.')\n }\n\n networkStakeStepRewardWeightForAddress(_context: StepIdentity, _address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardWeightForAddress] not implemented.')\n }\n\n async networkStakeStepRewardsForPosition(position: number, range: XL1BlockRange): Promise<Record<StepIdentityString, [AttoXL1, AttoXL1]>> {\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7, 8])\n const rewards = await Promise.all(steps.map(async (step) => {\n return [toStepIdentityString(step), await this.networkStakeStepRewardForStepForPosition(step, position)] as [StepIdentityString, [AttoXL1, AttoXL1]]\n }))\n const result: Record<StepIdentityString, [AttoXL1, AttoXL1]> = {}\n for (const [step, reward] of rewards) {\n result[step] = reward\n }\n const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v[0] > 0n))\n return filtered\n }\n\n async networkStakeStepRewardsForRange(range: XL1BlockRange): Promise<AttoXL1> {\n return await this.spanAsync('networkStakeStepRewardsForRange', async () => {\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7, 8])\n const rewards = await Promise.all(steps.map(async (step) => {\n return await this.networkStakeStepRewardForStep(step)\n }))\n return asAttoXL1(rewards.reduce((a, b) => a + b, 0n))\n }, this.context)\n }\n\n async networkStakeStepRewardsForStepLevel(stepLevel: number, range: XL1BlockRange): Promise<AttoXL1> {\n const steps = blockRangeSteps(range, [stepLevel])\n const rewards = await Promise.all(steps.map(async (step) => {\n return await this.networkStakeStepRewardForStep(step)\n }))\n return asAttoXL1(rewards.reduce((a, b) => a + b, 0n))\n }\n\n payloadByHash(_hash: Hash): Promisable<WithHashMeta<Payload> | null> {\n throw new Error('Method [payloadByHash] not implemented.')\n }\n\n payloadsByHash(_hashes: Hash[]): Promisable<WithHashMeta<Payload>[]> {\n throw new Error('Method [payloadsByHash] not implemented.')\n }\n\n async rate(range: XL1BlockRange, timeUnit?: keyof TimeDurations): Promise<BlockRate> {\n return await this.block.rate(range, timeUnit)\n }\n\n async stakeById(id: number): Promise<Position> {\n return await this.stake.stakeById(id)\n }\n\n async stakeByStaker(staker: Address, slot: number): Promise<Position> {\n return await this.stake.stakeByStaker(staker, slot)\n }\n\n async stakedByStaker(staker: Address): Promise<Address[]> {\n const result: Set<Address> = new Set()\n let slot = 0\n while (true) {\n try {\n const ethStake = await this.stake.stakeByStaker(staker, slot)\n result.add(toAddress(ethStake.staked))\n slot++\n } catch {\n break\n }\n }\n return [...result]\n }\n\n async stakesByStaked(staked: Address): Promise<Position[]> {\n return await this.stake.stakesByStaked(staked)\n }\n\n async stakesByStaker(staker: Address): Promise<Position[]> {\n return await this.stake.stakesByStaker(staker)\n }\n\n async stepSizeRate(start: XL1BlockNumber, stepSizeIndex: StepIndex, count?: Count, timeUnit?: keyof TimeDurations): Promise<BlockRate> {\n return await this.block.stepSizeRate(start, stepSizeIndex, count, timeUnit)\n }\n\n async timeDurationRate(\n timeConfig: SingleTimeConfig,\n startBlock: XL1BlockNumber,\n timeUnit?: keyof TimeDurations,\n toleranceMs?: number,\n maxAttempts?: number,\n ): Promise<BlockRate> {\n return await this.block.timeDurationRate(timeConfig, startBlock, timeUnit, toleranceMs, maxAttempts)\n }\n\n async transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number = 0): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await this.spanAsync('transactionByBlockHashAndIndex', async () => {\n assertEx(transactionIndex >= 0, () => 'transactionIndex must be greater than or equal to 0')\n try {\n const block = await this.blockByHash(blockHash)\n if (!block) return null\n const blockBoundWitnessIndexes = block[0].payload_schemas.map((schema, index) => schema === BoundWitnessSchema ? index : undefined).filter(exists)\n const blockBoundWitnessHashes = new Set(blockBoundWitnessIndexes.map(index => block[0].payload_hashes[index]))\n const blockBoundWitnesses = block[1].filter(payload => blockBoundWitnessHashes.has(payload._hash) || blockBoundWitnessHashes.has(payload._dataHash))\n const blockTransactionBoundWitnesses = blockBoundWitnesses.filter(isTransactionBoundWitnessWithStorageMeta)\n const transaction = blockTransactionBoundWitnesses.at(transactionIndex)\n if (!transaction) return null\n return await this.transactionByHash(transaction._hash)\n } catch {\n return null\n }\n }, this.context)\n }\n\n async transactionByBlockNumberAndIndex(blockNumber: XL1BlockNumber, transactionIndex: number = 0): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await this.spanAsync('transactionByBlockNumberAndIndex', async () => {\n try {\n const block = await this.blockByNumber(blockNumber)\n if (!block) return null\n return await this.transactionByBlockHashAndIndex(block[0]._hash, transactionIndex)\n } catch {\n return null\n }\n }, this.context)\n }\n\n async transactionByHash(transactionHash: Hash): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await this.spanAsync('transactionByHash', async () => {\n try {\n const cache = this.getHydratedTransactionCache()\n const hydratedTransaction = await cache.get(transactionHash)\n return hydratedTransaction ?? null\n } catch {\n return null\n }\n }, this.context)\n }\n\n protected async getCurrentHead() {\n const chainArchivist = this.finalizedArchivist!\n const result = assertEx(await findMostRecentBlock(chainArchivist), () => 'No blocks found in finalizedArchivist')\n assertEx(result.chain === this.params.chainId, () => `Chain ID mismatch in finalizedArchivist [${result.chain} should be ${this.params.chainId}]`)\n return result\n }\n\n protected getHydratedBlockCache(): HydratedCache<SignedHydratedBlockWithHashMeta> {\n if (this._signedHydratedBlockCache) return this._signedHydratedBlockCache\n const chainMap = this._finalizedPayloadMap\n this._signedHydratedBlockCache = new HydratedCache<SignedHydratedBlockWithHashMeta>({ ...this.context, chainMap }, async (\n { chainMap }: ChainStoreRead,\n hash: Hash,\n maxDepth?: number,\n minDepth?: number,\n ) => {\n const result = await hydrateBlock({ ...this.context, chainMap }, hash, maxDepth, minDepth)\n return asSignedHydratedBlockWithHashMeta(result, true)\n }, 200)\n return this._signedHydratedBlockCache\n }\n\n protected getHydratedTransactionCache(): HydratedCache<SignedHydratedTransactionWithHashMeta> {\n if (this._signedHydratedTransactionCache) return this._signedHydratedTransactionCache\n const chainMap = this._finalizedPayloadMap\n this._signedHydratedTransactionCache = new HydratedCache<SignedHydratedTransactionWithHashMeta>({ ...this.context, chainMap }, tryHydrateTransaction, 200)\n return this._signedHydratedTransactionCache\n }\n\n protected override async startHandler() {\n try {\n const currentBlockNumber = await this.currentBlockNumber()\n // initialize functions that have slow initial call\n await this.account.balance.accountBalance(XYO_ZERO_ADDRESS)\n if (this.initRewardsCache) {\n const externalRange = await externalBlockRangeFromXL1BlockRange(\n this.context,\n this.block,\n asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }),\n )\n const positionCount = await this.stake.stakeEvents.positionCount(externalRange)\n this.logger?.log(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n const positions = Array.from(\n { length: positionCount },\n (_, i) => i,\n )\n while (positions.length > 0) {\n const batch = positions.splice(0, 10)\n this.logger?.log(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition for positions ${batch.at(0)} - ${batch.at(-1)}`)\n await Promise.all(batch.map(async (_, position) => await this.networkStakeStepRewardForPosition(\n position,\n asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }),\n )))\n }\n this.logger?.log(`SimpleXyoViewer: Precomputed networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n }\n } catch (ex) {\n this.logger?.error(`SimpleXyoViewer: Error during startHandler initialization: ${(ex as Error).message}`)\n this.logger?.error((ex as Error).stack ?? '<No Stack>')\n throw ex\n }\n }\n\n protected async stepWeightedDenominator(stepIdentity: StepIdentity, staked?: Address): Promise<bigint> {\n const cacheKey = toStepIdentityString(stepIdentity)\n return await withContextCacheResponse(this.context, 'NodeXyoViewer-networkStakeStepRewardForStepForPosition-denominator', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(this.context, this.block, stepIdentity)\n return await weightedStakeForRangeByPosition(this.context, this.block, this.stake.stakeEvents, range, staked)\n })\n }\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport {\n FinalizationViewer,\n FinalizationViewerMoniker,\n NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n NetworkStakeViewer, NetworkStakeViewerMoniker,\n StakeViewer,\n StakeViewerMoniker,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider, CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleNetworkStakeViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleNetworkStakeViewer extends AbstractCreatableProvider<SimpleNetworkStakeViewerParams> implements NetworkStakeViewer {\n static readonly defaultMoniker = NetworkStakeViewerMoniker\n static readonly dependencies = [NetworkStakeStepRewardsViewerMoniker]\n static readonly monikers = [NetworkStakeViewerMoniker]\n moniker = SimpleNetworkStakeViewer.defaultMoniker\n\n private _finalizationViewer!: FinalizationViewer\n private _stake!: StakeViewer\n private _stepRewardsViewer?: NetworkStakeStepRewardsViewer\n\n get stepRewards(): NetworkStakeStepRewardsViewer {\n return assertEx(this._stepRewardsViewer, () => 'Step rewards viewer not initialized')\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get rewardMultipliers() {\n return this.params.rewardMultipliers\n }\n\n protected get stake() {\n return this._stake\n }\n\n async active(blockNumber?: number): Promise<[bigint, number]> {\n const resolvedBlockNumber = blockNumber ?? (await this.finalizationViewer.headNumber())\n return [await this.stake.active(resolvedBlockNumber), resolvedBlockNumber]\n }\n\n override async createHandler() {\n await super.createHandler()\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stake = await this.locator.getInstance(StakeViewerMoniker)\n this._stepRewardsViewer = await this.locator.getInstance(NetworkStakeStepRewardsViewerMoniker)\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport { isArray } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByPositionViewer,\n NetworkStakeStepRewardsByPositionViewerOptions,\n StakeViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByPositionViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './primitives/index.ts'\n\nexport interface SimpleStepRewardsByPositionViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleStepRewardsByPositionViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByPositionViewerParams> implements NetworkStakeStepRewardsByPositionViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByPositionViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByPositionViewerMoniker]\n moniker = SimpleStepRewardsByPositionViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer!\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer!\n }\n\n protected get stakeViewer() {\n return this._stakeViewer!\n }\n\n async bonus({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n const total = await this.total({ range, positions })\n const earned = await this.earned({ range, positions })\n const result: Record<number, AttoXL1> = {}\n for (const pos of Object.keys(total).map(Number)) {\n result[pos] = asAttoXL1(total[pos] - (earned[pos] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByPositionViewerOptions | undefined): Promisable<Record<number, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker)\n }\n\n async earned({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n return await this.calculateRewards({ range, positions })\n }\n\n async total({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n return await this.calculateRewards({ range, positions }, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promisable<Record<number, AttoXL1>> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected async calculateRewards(\n { range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {},\n rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<Record<number, AttoXL1>> {\n const result: Record<number, AttoXL1> = {}\n const steps = blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.head())[1]],\n { name: 'NodeStepRewardsByPositionViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of steps) {\n if (isArray(positions)) {\n for (const positionId of positions) {\n const position = await this.stakeViewer.stakeById(positionId)\n result[positionId] = asAttoXL1((result[positionId] ?? 0n) + (await networkStakeStepRewardEarnedForPosition(\n this.context,\n this.blockViewer,\n this.stakeViewer.stakeEvents,\n step,\n position,\n rewardMultipliers,\n ))[0])\n }\n }\n }\n return result\n }\n}\n","import type {\n BlockViewer,\n CachingContext,\n StakeViewer,\n StepIdentity, XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'\nimport { withContextCacheResponse } from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './networkStakeStepRewardEarnedForPosition.ts'\n\nexport async function networkStakeStepRewardEarned(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeViewer: StakeViewer,\n stepIdentity: StepIdentity,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const cacheKey = `${stepIdentity.block}|${stepIdentity.step}`\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarned', cacheKey, async () => {\n const positions = (await stakeViewer.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS))\n const results = await Promise.all(positions.map((pos) => {\n return networkStakeStepRewardEarnedForPosition(\n context,\n blockViewer,\n stakeViewer.stakeEvents,\n stepIdentity,\n pos,\n rewardMultipliers,\n )\n }))\n\n const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n)\n\n const result: [bigint, bigint] = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n]\n return result\n })\n}\n","import type {\n BlockViewer,\n CachingContext,\n Position,\n StakeEventsViewer,\n StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'\nimport {\n externalBlockRangeFromStep, stepRewardTotal, weightedStakeForRangeByPosition, withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport async function networkStakeStepRewardEarnedForPosition(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeEventsViewer: StakeEventsViewer,\n stepIdentity: StepIdentity,\n position: Position,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const cacheKey = `${stepIdentity.block}|${stepIdentity.step}|${position.id}`\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarnedForPosition', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(context, blockViewer, stepIdentity)\n const numerator = position.staked === XYO_NETWORK_STAKING_ADDRESS\n ? await weightedStakeForRangeByPosition(\n context,\n blockViewer,\n stakeEventsViewer,\n range,\n XYO_NETWORK_STAKING_ADDRESS,\n position.id,\n )\n : 0n\n\n const denominator = await weightedStakeForRangeByPosition(\n context,\n blockViewer,\n stakeEventsViewer,\n range,\n )\n\n const totalReward = await stepRewardTotal(context, blockViewer, stepIdentity, rewardMultipliers)\n const positionReward = denominator > 0n ? totalReward * numerator / denominator : 0n\n const result: [bigint, bigint] = [positionReward, totalReward]\n return result\n })\n}\n","import type { Address } from '@xylabs/sdk-js'\nimport type {\n BlockViewer,\n CachingContext,\n StakeViewer,\n StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'\nimport {\n toStepIdentityString,\n withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './networkStakeStepRewardEarnedForPosition.ts'\n\nexport async function networkStakeStepRewardEarnedForStaker(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeViewer: StakeViewer,\n stepIdentity: StepIdentity,\n staker: Address,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const stepId = toStepIdentityString(stepIdentity)\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarnedForStaker', `${stepId}-${staker}`, async () => {\n const positions = (await stakeViewer.stakesByStaker(staker)).filter(pos => pos.staked === XYO_NETWORK_STAKING_ADDRESS)\n const results = await Promise.all(positions.map((pos) => {\n return networkStakeStepRewardEarnedForPosition(\n context,\n blockViewer,\n stakeViewer.stakeEvents,\n stepIdentity,\n pos,\n rewardMultipliers,\n )\n }))\n\n const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n)\n\n const result: [bigint, bigint] = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n]\n return result\n })\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport { isArray } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByStakerViewer,\n NetworkStakeStepRewardsByStakerViewerOptions,\n StakeViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByStakerViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForStaker } from './primitives/index.ts'\n\nexport interface SimpleStepRewardsByStakerViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleStepRewardsByStakerViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByStakerViewerParams> implements NetworkStakeStepRewardsByStakerViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByStakerViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByStakerViewerMoniker]\n moniker = SimpleStepRewardsByStakerViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get stakeViewer() {\n return this._stakeViewer\n }\n\n async bonus({ range, stakers }: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n const total = await this.total({ range, stakers })\n const earned = await this.earned({ range, stakers })\n const result: Record<Address, AttoXL1> = {}\n for (const staker of Object.keys(total) as Address[]) {\n result[staker] = asAttoXL1(total[staker] - (earned[staker] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByStakerViewerOptions | undefined): Promisable<Record<Address, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker)\n }\n\n async earned(options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n return await this.calculateRewards(options)\n }\n\n async total(options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n return await this.calculateRewards(options, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promisable<Record<Address, AttoXL1>> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected async calculateRewards(\n { range, stakers }: NetworkStakeStepRewardsByStakerViewerOptions = {},\n rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<Record<Address, AttoXL1>> {\n const result: Record<Address, AttoXL1> = {}\n const steps = blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.headNumber())],\n { name: 'NodeStepRewardsByStakerViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of steps) {\n if (isArray(stakers)) {\n for (const staker of stakers) {\n result[staker] = asAttoXL1((result[staker] ?? 0n) + (await networkStakeStepRewardEarnedForStaker(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n staker,\n rewardMultipliers,\n ))[0])\n }\n }\n }\n return result\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerOptions,\n StakeViewer,\n StepIdentityString,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByStepViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol'\nimport type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider, toStepIdentityString,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarned } from './primitives/index.ts'\n\nexport interface SimpleStepRewardsByStepViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleStepRewardsByStepViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByStepViewerParams> implements NetworkStakeStepRewardsByStepViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByStepViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByStepViewerMoniker]\n moniker = SimpleStepRewardsByStepViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get stakeViewer() {\n return this._stakeViewer\n }\n\n async bonus({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const total = await this.total({ range, steps })\n const earned = await this.earned({ range, steps })\n const result: Record<StepIdentityString, AttoXL1> = {}\n for (const stepString of Object.keys(total) as StepIdentityString[]) {\n result[stepString] = asAttoXL1(total[stepString] - (earned[stepString] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByStepViewerOptions | undefined): Promisable<Record<StepIdentityString, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)\n }\n\n async earned({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const result: Record<StepIdentityString, AttoXL1> = {}\n const resolvedSteps = steps ?? blockRangeSteps(asXL1BlockRange(\n range ?? [0, await this.finalizationViewer.headNumber()],\n { name: 'NodeStepRewardsByStepViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of resolvedSteps) {\n const stepIdentityString = toStepIdentityString(step)\n result[stepIdentityString] = asAttoXL1((result[stepIdentityString] ?? 0n) + (await networkStakeStepRewardEarned(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n ))[0])\n }\n return result\n }\n\n async total({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const result: Record<StepIdentityString, AttoXL1> = {}\n const resolvedSteps = steps ?? blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.head())[1]],\n { name: 'NodeStepRewardsByStepViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of resolvedSteps) {\n const stepIdentityString = toStepIdentityString(step)\n result[stepIdentityString] = asAttoXL1((result[stepIdentityString] ?? 0n)\n + (await networkStakeStepRewardEarned(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n this.rewardMultipliers,\n ))[0])\n }\n return result\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByStepViewerOptions = {}): Promisable<Record<StepIdentityString, AttoXL1>> {\n throw new Error('Method [unclaimed] ot implemented.')\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n NetworkStakeStepRewardsRangeOptions,\n NetworkStakeStepRewardsTotalViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { asAttoXL1, NetworkStakeStepRewardsTotalViewerMoniker } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleStepRewardsTotalViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleStepRewardsTotalViewer extends\n AbstractCreatableProvider<SimpleStepRewardsTotalViewerParams> implements NetworkStakeStepRewardsTotalViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsTotalViewerMoniker\n static readonly dependencies = []\n static readonly monikers = [NetworkStakeStepRewardsTotalViewerMoniker]\n moniker = SimpleStepRewardsTotalViewer.defaultMoniker\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n async bonus({ range }: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n const total = await this.total({ range })\n const earned = await this.earned({ range })\n return asAttoXL1(total - earned)\n }\n\n claimed(_options?: NetworkStakeStepRewardsRangeOptions | undefined): Promisable<AttoXL1> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n async earned(options: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n return await this.calculateRewards(options)\n }\n\n async total(options: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n return await this.calculateRewards(options, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsRangeOptions = {}): Promisable<AttoXL1> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected calculateRewards(\n _options: NetworkStakeStepRewardsRangeOptions = {},\n _rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<AttoXL1> {\n throw new Error('Method [calculateRewards] not implemented.')\n }\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport {\n BlockViewer,\n BlockViewerMoniker,\n NetworkStakeStepRewardsByPositionViewer,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeStepRewardsByStakerViewer,\n NetworkStakeStepRewardsByStakerViewerMoniker,\n NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerMoniker,\n NetworkStakeStepRewardsTotalViewer,\n NetworkStakeStepRewardsViewer, NetworkStakeStepRewardsViewerMoniker, type XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleStepRewardsByPositionViewer } from './SimpleStepRewardsByPositionViewer.ts'\nimport { SimpleStepRewardsByStakerViewer } from './SimpleStepRewardsByStakerViewer.ts'\nimport { SimpleStepRewardsByStepViewer } from './SimpleStepRewardsByStepViewer.ts'\n\nexport interface NodeStepRewardsViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class SimpleStepRewardsViewer extends AbstractCreatableProvider<NodeStepRewardsViewerParams> implements NetworkStakeStepRewardsViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsViewerMoniker\n\n static readonly dependencies = [\n BlockViewerMoniker,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeStepRewardsByStakerViewerMoniker,\n NetworkStakeStepRewardsByStepViewerMoniker,\n ]\n\n static readonly monikers = [NetworkStakeStepRewardsViewerMoniker]\n moniker = SimpleStepRewardsViewer.defaultMoniker\n\n private _blockViewer?: BlockViewer\n private _position?: SimpleStepRewardsByPositionViewer\n private _staker?: SimpleStepRewardsByStakerViewer\n private _step?: SimpleStepRewardsByStepViewer\n\n get position(): NetworkStakeStepRewardsByPositionViewer {\n return assertEx(this._position, () => 'Position viewer not initialized')\n }\n\n get staker(): NetworkStakeStepRewardsByStakerViewer {\n return assertEx(this._staker, () => 'Position viewer not initialized')\n }\n\n get step(): NetworkStakeStepRewardsByStepViewer {\n return assertEx(this._step, () => 'Step viewer not initialized')\n }\n\n get total(): NetworkStakeStepRewardsTotalViewer {\n throw new Error('Method [total] not implemented.')\n }\n\n protected get rewardMultipliers() {\n return this.params.rewardMultipliers\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)\n this._position = await this.locator.getInstance<SimpleStepRewardsByPositionViewer>(NetworkStakeStepRewardsByPositionViewerMoniker)\n this._staker = await this.locator.getInstance<SimpleStepRewardsByStakerViewer>(NetworkStakeStepRewardsByStakerViewerMoniker)\n this._step = await this.locator.getInstance<SimpleStepRewardsByStepViewer>(NetworkStakeStepRewardsByStepViewerMoniker)\n }\n\n protected override async startHandler(): Promise<void> {\n await super.startHandler()\n await assertEx(this._position, () => 'Position viewer not created').start()\n await assertEx(this._staker, () => 'Staker viewer not created').start()\n await assertEx(this._step, () => 'Step viewer not created').start()\n }\n}\n","import {\n type Address,\n type Promisable,\n} from '@xylabs/sdk-js'\nimport {\n BlockViewer,\n BlockViewerMoniker,\n NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n PagedPositionsOptions,\n PagedStakersOptions,\n Position,\n type PositionId, StakeEventsViewer, StakeEventsViewerMoniker, StakeViewer, StakeViewerMoniker, type StepIdentity, StepViewer, StepViewerMoniker,\n} from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n externalBlockRangeFromStep,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleStepViewerParams extends CreatableProviderParams {\n\n}\n\n@creatableProvider()\nexport class SimpleStepViewer extends AbstractCreatableProvider<SimpleStepViewerParams> implements StepViewer {\n static readonly defaultMoniker = StepViewerMoniker\n\n static readonly dependencies = [\n BlockViewerMoniker,\n NetworkStakeStepRewardsViewerMoniker,\n StakeViewerMoniker,\n StakeEventsViewerMoniker,\n ]\n\n static readonly monikers = [StepViewerMoniker]\n moniker = SimpleStepViewer.defaultMoniker\n\n private _blockViewer?: BlockViewer\n private _networkStakeStepRewardsViewer?: NetworkStakeStepRewardsViewer\n private _stakeEventsViewer?: StakeEventsViewer\n private _stakeViewer?: StakeViewer\n\n get rewards() {\n return this._networkStakeStepRewardsViewer!\n }\n\n protected get blockViewer() {\n return this._blockViewer!\n }\n\n protected get stakeEventsViewer() {\n return this._stakeEventsViewer!\n }\n\n protected get stakeViewer() {\n return this._stakeViewer!\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)\n this._networkStakeStepRewardsViewer = await this.locator.getInstance<NetworkStakeStepRewardsViewer>(NetworkStakeStepRewardsViewerMoniker)\n this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)\n this._stakeEventsViewer = await this.locator.getInstance<StakeEventsViewer>(StakeEventsViewerMoniker)\n }\n\n async positionCount(step: StepIdentity): Promise<number> {\n const externalRange = await externalBlockRangeFromStep(this.context, this.blockViewer, step)\n const positionCount = await this.stakeEventsViewer.positionCount(externalRange)\n return positionCount\n }\n\n // TODO: Implement paging\n async positions(step: StepIdentity, _options?: PagedPositionsOptions): Promise<Position[]> {\n const count = await this.positionCount(step)\n const externalRange = await externalBlockRangeFromStep(this.context, this.blockViewer, step)\n const allPositions = await Promise.all(Array.from({ length: count + 1 }, (_, i) => i).map(id => this.stakeViewer.stakeById(id)))\n return allPositions.filter(pos => pos.addBlock <= externalRange[1] && (pos.removeBlock === 0 || pos.removeBlock > externalRange[0]))\n }\n\n randomizer(_step: StepIdentity): Promisable<bigint> {\n throw new Error('Method [randomizer] not implemented.')\n }\n\n stake(_step: StepIdentity): Promisable<bigint> {\n throw new Error('Method [stake] not implemented.')\n }\n\n stakerCount(_step: StepIdentity): Promisable<number> {\n throw new Error('Method [stakerCount] not implemented.')\n }\n\n stakers(_step: StepIdentity, _options?: PagedStakersOptions): Promisable<Address[]> {\n throw new Error('Method [stakers] not implemented.')\n }\n\n weight(_step: StepIdentity, _positionId?: PositionId): Promisable<bigint> {\n throw new Error('Method [weight] not implemented.')\n }\n}\n","import { CreatableParams } from '@xylabs/sdk-js'\nimport { XyoViewer, XyoViewerMoniker } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n type CreatableProviderContext,\n type DataLakeRunner, DataLakeRunnerMoniker, type DataLakeViewer, DataLakeViewerMoniker,\n type XyoConnection, XyoConnectionMoniker, type XyoNetwork, type XyoRunner, XyoRunnerMoniker,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleXyoConnectionParams<TContext extends CreatableProviderContext = CreatableProviderContext> extends CreatableParams {\n context: TContext\n}\n\n@creatableProvider()\nexport class SimpleXyoConnection<TParams extends SimpleXyoConnectionParams = SimpleXyoConnectionParams> extends\n AbstractCreatableProvider<TParams> implements XyoConnection {\n static readonly defaultMoniker = XyoConnectionMoniker\n static readonly dependencies = [XyoRunnerMoniker, XyoViewerMoniker, DataLakeRunnerMoniker, DataLakeViewerMoniker]\n static readonly monikers = [XyoConnectionMoniker]\n moniker = SimpleXyoConnection.defaultMoniker\n\n protected _network?: XyoNetwork\n protected _runner?: XyoRunner\n protected _storage?: DataLakeRunner | DataLakeViewer\n protected _viewer?: XyoViewer\n\n get network(): XyoNetwork | undefined {\n return this._network\n }\n\n get runner(): XyoRunner | undefined {\n return this._runner\n }\n\n get storage(): DataLakeRunner | DataLakeViewer | undefined {\n return this._storage\n }\n\n get viewer(): XyoViewer | undefined {\n return this._viewer\n }\n\n override async createHandler() {\n await super.createHandler()\n this._runner = await this.locator.getInstance<XyoRunner>(XyoRunnerMoniker)\n this._viewer = await this.locator.getInstance<XyoViewer>(XyoViewerMoniker)\n const dataLakeRunner = await this.locator.tryGetInstance<DataLakeRunner>(DataLakeRunnerMoniker)\n const dataLakeViewer = await this.locator.tryGetInstance<DataLakeViewer>(DataLakeViewerMoniker)\n this._storage = dataLakeRunner ?? dataLakeViewer\n }\n}\n","import type { AccountInstance } from '@xyo-network/account-model'\nimport { SimpleXyoSigner, XyoSignerMoniker } from '@xyo-network/xl1-protocol-sdk'\n\nimport type { BuildProviderLocatorParams } from './buildProviderLocator.ts'\nimport { buildSimpleProviderLocator } from './buildProviderLocator.ts'\n\nexport interface BuildSimpleXyoSignerLocatorParams extends BuildProviderLocatorParams {\n account: AccountInstance\n}\n\nexport async function buildSimpleXyoSigner(params: BuildSimpleXyoSignerLocatorParams) {\n const { account, ...restParams } = params\n const locator = buildSimpleProviderLocator(restParams)\n locator.register(\n SimpleXyoSigner.factory<SimpleXyoSigner>(SimpleXyoSigner.dependencies, { account }),\n )\n return await locator.getInstance<SimpleXyoSigner>(XyoSignerMoniker)\n}\n"],"mappings":"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","names":["assertEx","creatableProvider","chainMap","assertEx","creatableProvider","assertEx","FinalizationViewerMoniker","NetworkStakeViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","assertEx","FinalizationViewerMoniker","StakeViewerMoniker","NetworkStakeViewerMoniker","creatableProvider","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","XYO_NETWORK_STAKING_ADDRESS","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","externalBlockRangeFromStep","stepRewardTotal","weightedStakeForRangeByPosition","withContextCacheResponse","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","XYO_NETWORK_STAKING_ADDRESS","toStepIdentityString","withContextCacheResponse","toStepIdentityString","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","NetworkStakeStepRewardsByPositionViewerMoniker","creatableProvider","isArray","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","isArray","creatableProvider","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","toStepIdentityString","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","toStepIdentityString","creatableProvider","asAttoXL1","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","asAttoXL1","creatableProvider","assertEx","BlockViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","assertEx","BlockViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","creatableProvider","BlockViewerMoniker","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","StepViewerMoniker","AbstractCreatableProvider","creatableProvider","externalBlockRangeFromStep","AbstractCreatableProvider","BlockViewerMoniker","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","externalBlockRangeFromStep","StepViewerMoniker","creatableProvider","XyoViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","XyoViewerMoniker","creatableProvider"]}
@@ -6,7 +6,9 @@ import type { BalancesStepSummary, CreatableProviderContext, TransfersStepSummar
6
6
  import { ProviderFactoryLocator } from '@xyo-network/xl1-protocol-sdk';
7
7
  import type { TransportFactory } from '@xyo-network/xl1-rpc';
8
8
  export interface BuildProviderLocatorParams {
9
- context?: CreatableProviderContext;
9
+ context?: Omit<CreatableProviderContext, 'locator'> & Partial<{
10
+ locator: CreatableProviderContext['locator'];
11
+ }>;
10
12
  }
11
13
  export declare function buildProviderLocator({ context }?: BuildProviderLocatorParams): ProviderFactoryLocator<import("@xyo-network/xl1-protocol-sdk").CreatableProviderContextType, string[]>;
12
14
  export interface BuildSimpleProviderLocatorParams extends BuildProviderLocatorParams {
@@ -1 +1 @@
1
- {"version":3,"file":"buildProviderLocator.d.ts","sourceRoot":"","sources":["../../src/buildProviderLocator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EACV,OAAO,EAAE,OAAO,EACjB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EACV,mBAAmB,EAAE,wBAAwB,EAAE,oBAAoB,EACpE,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAC8B,sBAAsB,EAE1D,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAgB5D,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,wBAAwB,CAAA;CACnC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,OAA2B,EAAE,GAAE,0BAA+B,0GAOpG;AAED,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;CAEnF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,CAAC,EAAE,gCAAgC,0GAiBnF;AAED,MAAM,WAAW,iCAAkC,SAAQ,0BAA0B;IACnF,gBAAgB,EAAE,gBAAgB,CAAA;CACnC;AAED,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,iCAAiC,mHAiC1F;AAED,MAAM,WAAW,+BAAgC,SAAQ,0BAA0B;IACjF,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACtE,OAAO,EAAE,OAAO,CAAA;IAChB,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,IAAI,EAAE,YAAY,CAAA;IAClB,sBAAsB,EAAE,iBAAiB,CAAA;IACzC,4BAA4B,EAAE,iBAAiB,CAAA;IAC/C,mBAAmB,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAA;CACzE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,+BAA+B,0GAehF"}
1
+ {"version":3,"file":"buildProviderLocator.d.ts","sourceRoot":"","sources":["../../src/buildProviderLocator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EACV,OAAO,EAAE,OAAO,EACjB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EACV,mBAAmB,EAAE,wBAAwB,EAAE,oBAAoB,EACpE,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAC8B,sBAAsB,EAE1D,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAgB5D,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAA;KAAE,CAAC,CAAA;CAChH;AAED,wBAAgB,oBAAoB,CAAC,EAAE,OAA2B,EAAE,GAAE,0BAA+B,0GAOpG;AAED,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;CAEnF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,CAAC,EAAE,gCAAgC,0GAiBnF;AAED,MAAM,WAAW,iCAAkC,SAAQ,0BAA0B;IACnF,gBAAgB,EAAE,gBAAgB,CAAA;CACnC;AAED,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,iCAAiC,mHAiC1F;AAED,MAAM,WAAW,+BAAgC,SAAQ,0BAA0B;IACjF,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACtE,OAAO,EAAE,OAAO,CAAA;IAChB,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,IAAI,EAAE,YAAY,CAAA;IAClB,sBAAsB,EAAE,iBAAiB,CAAA;IACzC,4BAA4B,EAAE,iBAAiB,CAAA;IAC/C,mBAAmB,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAA;CACzE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,+BAA+B,0GAehF"}