@xyo-network/xl1-providers 1.19.4 → 1.19.6

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.
@@ -18,7 +18,6 @@ export declare class SimpleXyoViewer<TParams extends SimpleXyoViewerParams = Sim
18
18
  protected _tracer: Tracer | undefined;
19
19
  private _accountBalanceViewer?;
20
20
  private _blockViewer?;
21
- private _finalizedArchivist;
22
21
  private _finalizedPayloadMap;
23
22
  private _mempoolViewer?;
24
23
  private _networkStakeViewer?;
@@ -38,6 +37,7 @@ export declare class SimpleXyoViewer<TParams extends SimpleXyoViewerParams = Sim
38
37
  get stake(): StakeViewer;
39
38
  get step(): StepViewer;
40
39
  get time(): TimeSyncViewer;
40
+ protected get finalizedArchivist(): ArchivistInstance<import("@xyo-network/archivist-model").ArchivistParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/archivist-model").ArchivistConfig>>, import("@xyo-network/archivist-model").ArchivistModuleEventData, Payload>;
41
41
  protected get initRewardsCache(): boolean;
42
42
  protected get networkStepRewardsByPositionViewer(): NetworkStakeStepRewardsByPositionViewer;
43
43
  protected get rewardMultipliers(): XL1RangeMultipliers;
@@ -333,13 +333,12 @@ export declare class SimpleXyoViewer<TParams extends SimpleXyoViewerParams = Sim
333
333
  protocol?: number | undefined;
334
334
  step_hashes?: import("@xylabs/sdk-js").BrandedHash[] | undefined;
335
335
  } | undefined>;
336
- protected getFinalizedArchivist(): ArchivistInstance<import("@xyo-network/archivist-model").ArchivistParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/archivist-model").ArchivistConfig>>, import("@xyo-network/archivist-model").ArchivistModuleEventData, Payload>;
337
336
  protected getHydratedBlockCache(): HydratedCache<SignedHydratedBlockWithHashMeta>;
338
337
  protected getHydratedTransactionCache(): HydratedCache<SignedHydratedTransactionWithHashMeta>;
339
338
  protected getStakedChainContext(): Promise<{
340
339
  caches: Record<string, import("@xyo-network/xl1-protocol-sdk").MapType<string, string | number | bigint | object>>;
341
340
  singletons: Record<string, unknown>;
342
- head: () => Promisable<[Hash, number]>;
341
+ head: () => [import("@xylabs/sdk-js").BrandedHash, XL1BlockNumber];
343
342
  store: {
344
343
  chainMap: PayloadMapRead<WithStorageMeta<Payload>>;
345
344
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleXyoViewer.d.ts","sourceRoot":"","sources":["../../src/SimpleXyoViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EACV,OAAO,EACP,IAAI,EAAE,UAAU,EACjB,MAAM,gBAAgB,CAAA;AAKvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAErE,OAAO,KAAK,EACV,OAAO,EAAE,YAAY,EAAE,eAAe,EACvC,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAK,EACL,+BAA+B,EAC/B,qCAAqC,EACrC,gBAAgB,EAChB,YAAY,EAAE,kBAAkB,EAChC,SAAS,EACT,aAAa,EACb,cAAc,EAAE,aAAa,EAAE,mBAAmB,EACnD,MAAM,2BAA2B,CAAA;AAOlC,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EAAE,oBAAoB,EAAkB,uBAAuB,EAAE,WAAW,EACvF,aAAa,EAAE,uCAAuC,EAAE,kBAAkB,EAAE,cAAc,EAAE,QAAQ,EAEpG,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACV,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,yBAAyB,EAQU,aAAa,EAUjD,MAAM,+BAA+B,CAAA;AAEtC,MAAM,WAAW,qBAAsB,SAAQ,uBAAuB;IACpE,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,iBAAiB,CAAC,EAAE,mBAAmB,CAAA;CACxC;AAED,qBACa,eAAe,CAAC,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,yBAAyB,CAAC,OAAO,CAAE,YAAW,SAAS;IACzJ,MAAM,CAAC,QAAQ,CAAC,cAAc,cAAmB;IAEjD,MAAM,CAAC,QAAQ,CAAC,YAAY,oLAS3B;IAED,MAAM,CAAC,QAAQ,CAAC,QAAQ,gBAAqB;IAC7C,OAAO,cAAiC;IAExC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAErC,OAAO,CAAC,qBAAqB,CAAC,CAAsB;IACpD,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,mBAAmB,CAAoB;IAC/C,OAAO,CAAC,oBAAoB,CAA2C;IACvE,OAAO,CAAC,cAAc,CAAC,CAAe;IACtC,OAAO,CAAC,mBAAmB,CAAC,CAAoB;IAChD,OAAO,CAAC,mCAAmC,CAAC,CAAyC;IACrF,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,yBAAyB,CAAC,CAAgD;IAClF,OAAO,CAAC,+BAA+B,CAAC,CAAsD;IAC9F,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,WAAW,CAAC,CAAY;IAChC,OAAO,CAAC,eAAe,CAAC,CAAgB;IAExC,IAAI,OAAO;;MAEV;IAED,IAAI,KAAK,+BAER;IAED,IAAI,OAAO,kBAEV;IAED,IAAI,YAAY,uBAEf;IAED,IAAI,KAAK,gBAER;IAED,IAAI,IAAI,eAEP;IAED,IAAI,IAAI,mBAEP;IAED,SAAS,KAAK,gBAAgB,YAE7B;IAED,SAAS,KAAK,kCAAkC,4CAE/C;IAED,SAAS,KAAK,iBAAiB,wBAG9B;WAEqB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAOrG,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,oBAAyB;IAIlE,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,oBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIzE,WAAW,CAAC,IAAI,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAItB,aAAa,CAAC,WAAW,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIzC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAE,MAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAI3C,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,GAAE,MAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAI9D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAC3B,OAAO,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IACtD,OAAO,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAWvC,aAAa;IActB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIZ,gBAAgB;IAIhB,kBAAkB;IAIxB,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC;IAItC,oCAAoC,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAI1F,mCAAmC,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAIjH,kCAAkC,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAIxG,sCAAsC,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrE,iCAAiC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAetG,6BAA6B,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1E,wCAAwC,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAmBnH,iCAAiC,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAiB9F,gCAAgC,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAIpF,oCAAoC,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxG,2CAA2C,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxG,gCAAgC,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpE,iCAAiC,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IASnF,wCAAwC,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7E,sCAAsC,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7F,kCAAkC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAanI,+BAA+B,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAUvE,mCAAmC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpG,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAIpE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;IAI9D,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAI9E,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIxC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI/D,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAenD,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIpD,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIpD,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAIhI,gBAAgB,CACpB,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,cAAc,EAC1B,QAAQ,CAAC,EAAE,MAAM,aAAa,EAC9B,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,CAAC;IAIf,8BAA8B,CAAC,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAE,MAAU,GAAG,OAAO,CAAC,qCAAqC,GAAG,IAAI,CAAC;IAmBpI,gCAAgC,CAAC,WAAW,EAAE,cAAc,EAAE,gBAAgB,GAAE,MAAU,GAAG,OAAO,CAAC,qCAAqC,GAAG,IAAI,CAAC;IAYlJ,iBAAiB,CAAC,eAAe,EAAE,IAAI,GAAG,OAAO,CAAC,qCAAqC,GAAG,IAAI,CAAC;cAYrF,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;IAK9B,SAAS,CAAC,qBAAqB;IAI/B,SAAS,CAAC,qBAAqB,IAAI,aAAa,CAAC,+BAA+B,CAAC;IAejF,SAAS,CAAC,2BAA2B,IAAI,aAAa,CAAC,qCAAqC,CAAC;cAO7E,qBAAqB;;;oBAMd,UAAU,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;;;;;;;cASxB,YAAY;cAyBrB,uBAAuB,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAQvG"}
1
+ {"version":3,"file":"SimpleXyoViewer.d.ts","sourceRoot":"","sources":["../../src/SimpleXyoViewer.ts"],"names":[],"mappings":"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"}
@@ -102,7 +102,6 @@ var SimpleXyoViewer = class extends AbstractCreatableProvider {
102
102
  _tracer;
103
103
  _accountBalanceViewer;
104
104
  _blockViewer;
105
- _finalizedArchivist;
106
105
  _finalizedPayloadMap;
107
106
  _mempoolViewer;
108
107
  _networkStakeViewer;
@@ -134,6 +133,9 @@ var SimpleXyoViewer = class extends AbstractCreatableProvider {
134
133
  get time() {
135
134
  return this._timeSyncViewer;
136
135
  }
136
+ get finalizedArchivist() {
137
+ return this.params.finalizedArchivist;
138
+ }
137
139
  get initRewardsCache() {
138
140
  return this.params.initRewardsCache ?? true;
139
141
  }
@@ -397,12 +399,9 @@ var SimpleXyoViewer = class extends AbstractCreatableProvider {
397
399
  }, { timeBudgetLimit: 200 });
398
400
  }
399
401
  async getCurrentHead() {
400
- const chainArchivist = this.getFinalizedArchivist();
402
+ const chainArchivist = this.finalizedArchivist;
401
403
  return await findMostRecentBlock(chainArchivist);
402
404
  }
403
- getFinalizedArchivist() {
404
- return this._finalizedArchivist;
405
- }
406
405
  getHydratedBlockCache() {
407
406
  if (this._signedHydratedBlockCache) return this._signedHydratedBlockCache;
408
407
  const chainMap = this._finalizedPayloadMap;
@@ -421,11 +420,12 @@ var SimpleXyoViewer = class extends AbstractCreatableProvider {
421
420
  async getStakedChainContext() {
422
421
  const stake = this.stake;
423
422
  const store = { chainMap: this._finalizedPayloadMap };
423
+ const head = assertEx(await this.getCurrentHead(), () => "No current head");
424
424
  return {
425
425
  caches: this.context.caches,
426
426
  singletons: this.context.singletons,
427
- head: function() {
428
- throw new Error("Function not implemented.");
427
+ head: () => {
428
+ return [head._hash, head.block];
429
429
  },
430
430
  store,
431
431
  chainId: await this.chainId(),
@@ -435,7 +435,7 @@ var SimpleXyoViewer = class extends AbstractCreatableProvider {
435
435
  async startHandler() {
436
436
  try {
437
437
  const currentBlockNumber = await this.currentBlockNumber();
438
- await this.accountBalance(XYO_ZERO_ADDRESS);
438
+ await this.account.balance.accountBalance(XYO_ZERO_ADDRESS);
439
439
  if (this.initRewardsCache) {
440
440
  const externalRange = await externalBlockRangeFromXL1BlockRange(
441
441
  await this.getStakedChainContext(),
@@ -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 {\n BalanceStepSummaryContext, CreatableProviderContext, TransfersStepSummaryContext,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n getDefaultConfig, 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?: Partial<CreatableProviderContext>\n}\n\nexport function buildProviderLocator({ context = {} }: 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 return locator.registerMany([\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies),\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),\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 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),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies),\n SimpleXyoConnection.factory<SimpleXyoConnection>(SimpleXyoConnection.dependencies),\n ])\n}\n\nexport interface BuildLocalProviderLocatorParams extends BuildProviderLocatorParams {\n balanceSummaryContext: BalanceStepSummaryContext\n finalizedArchivist: ArchivistInstance\n node: NodeInstance\n pendingBlocksArchivist: ArchivistInstance\n pendingTransactionsArchivist: ArchivistInstance\n transfersSummaryContext: TransfersStepSummaryContext\n}\n\nexport function buildLocalProviderLocator({\n balanceSummaryContext, finalizedArchivist, pendingBlocksArchivist, pendingTransactionsArchivist, transfersSummaryContext, node, ...params\n}: BuildLocalProviderLocatorParams) {\n const locator = buildSimpleProviderLocator(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, { balanceSummaryContext, transfersSummaryContext }),\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 }),\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-sdk'\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 AttoXL1,\n BlockRate,\n ChainId,\n Count,\n SignedHydratedBlockWithHashMeta,\n SignedHydratedTransactionWithHashMeta,\n SingleTimeConfig,\n StepIdentity, StepIdentityString,\n StepIndex,\n TimeDurations,\n XL1BlockNumber, XL1BlockRange, XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n asAttoXL1,\n asSignedHydratedBlockWithHashMeta, asXL1BlockRange,\n isTransactionBoundWitnessWithStorageMeta, XYO_NETWORK_STAKING_ADDRESS,\n XYO_ZERO_ADDRESS,\n} from '@xyo-network/xl1-protocol'\nimport type {\n AccountBalanceViewer,\n BlockViewer, ChainQualifiedConfig, ChainStoreRead, CreatableProviderParams, ForkHistory,\n MempoolViewer, NetworkStakeStepRewardsByPositionViewer, NetworkStakeViewer, PayloadMapRead, Position,\n StakedChainContextRead,\n StakeViewer,\n StepViewer,\n TimeSyncViewer,\n XyoViewer,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n AccountBalanceViewerMoniker,\n allStakersForStep,\n blockRangeSteps,\n BlockViewerMoniker,\n creatableProvider,\n externalBlockRangeFromStep,\n externalBlockRangeFromXL1BlockRange,\n findMostRecentBlock, hydrateBlock, HydratedCache,\n MempoolViewerMoniker,\n networkStakeStepRewardPositionWeight,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeViewerMoniker,\n readPayloadMapFromStore, StakeViewerMoniker, stepRewardTotal, StepViewerMoniker,\n TimeSyncViewerMoniker, toStepIdentityString, tryHydrateTransaction,\n weightedStakeForRangeByPosition,\n withContextCacheResponse,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleXyoViewerParams extends CreatableProviderParams {\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 _finalizedArchivist!: ArchivistInstance\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 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 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 } 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('chainIdAtBlock', async () => {\n const block = assertEx(\n blockNumber === 'latest' ? await this.currentBlock() : await this.blockByNumber(blockNumber),\n () => `Could not find block for chainId at block ${blockNumber}`,\n )\n return block[0].chain\n }, { timeBudgetLimit: 200 })\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._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 return await this.spanAsync('networkStakeStepRewardForPosition', 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 }, { timeBudgetLimit: 100 })\n }\n\n async networkStakeStepRewardForStep(stepContext: StepIdentity): Promise<AttoXL1> {\n return await stepRewardTotal(await this.getStakedChainContext(), 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 const stakedChainContext = await this.getStakedChainContext()\n return await withContextCacheResponse(stakedChainContext, 'NodeXyoViewer-networkStakeStepRewardForStepForPosition', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(stakedChainContext, this.block, stepIdentity)\n const stake = await this.stakeById(position)\n const numerator = stake.staked === XYO_NETWORK_STAKING_ADDRESS\n ? await weightedStakeForRangeByPosition(stakedChainContext, this.block, 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(await this.getStakedChainContext(), this.block, 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 await this.getStakedChainContext(),\n this.block,\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 }, { timeBudgetLimit: 100 })\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 }, { timeBudgetLimit: 200 })\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 }, { timeBudgetLimit: 200 })\n }\n\n async transactionByHash(transactionHash: Hash): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await this.spanAsync('transactionByHash', async () => {\n try {\n const cache = await this.getHydratedTransactionCache()\n const hydratedTransaction = await cache.get(transactionHash)\n return hydratedTransaction ?? null\n } catch {\n return null\n }\n }, { timeBudgetLimit: 200 })\n }\n\n protected async getCurrentHead() {\n const chainArchivist = this.getFinalizedArchivist()\n return await findMostRecentBlock(chainArchivist)\n }\n\n protected getFinalizedArchivist() {\n return this._finalizedArchivist\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>(chainMap, async (\n { chainMap }: ChainStoreRead,\n hash: Hash,\n maxDepth?: number,\n minDepth?: number,\n ) => {\n const result = await hydrateBlock({ 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>(chainMap, tryHydrateTransaction, 200)\n return this._signedHydratedTransactionCache\n }\n\n protected async getStakedChainContext() {\n const stake = this.stake\n const store = { chainMap: this._finalizedPayloadMap } satisfies StakedChainContextRead['store']\n return {\n caches: this.context.caches,\n singletons: this.context.singletons,\n head: function (): Promisable<[Hash, number]> {\n throw new Error('Function not implemented.')\n },\n store,\n chainId: await this.chainId(),\n stake,\n } satisfies StakedChainContextRead\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.accountBalance(XYO_ZERO_ADDRESS)\n if (this.initRewardsCache) {\n const externalRange = await externalBlockRangeFromXL1BlockRange(\n await this.getStakedChainContext(),\n this.block,\n asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }),\n )\n const positionCount = await this.stake.stakeEvents.positionCount(externalRange)\n this.logger?.log(`NodeXyoViewer: Precomputing networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n for (let position = 0; position < positionCount; position++) {\n await this.networkStakeStepRewardForPosition(position, asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }))\n }\n this.logger?.log(`NodeXyoViewer: Precomputed networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n }\n } catch (ex) {\n this.logger?.error(`NodeXyoViewer: 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 const stakedChainContext = await this.getStakedChainContext()\n return await withContextCacheResponse(stakedChainContext, 'NodeXyoViewer-networkStakeStepRewardForStepForPosition-denominator', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(stakedChainContext, this.block, stepIdentity)\n return await weightedStakeForRangeByPosition(stakedChainContext, this.block, range, staked)\n })\n }\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport type { XL1RangeMultipliers } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n type NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n type NetworkStakeViewer, NetworkStakeViewerMoniker,\n type StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleNetworkStakeViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n stakedChainContext: StakedChainContextRead\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 _stepRewardsViewer?: NetworkStakeStepRewardsViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers\n }\n\n get stakedChainContext() {\n return this.params.stakedChainContext\n }\n\n get stepRewards(): NetworkStakeStepRewardsViewer {\n return assertEx(this._stepRewardsViewer, () => 'Step rewards viewer not initialized')\n }\n\n async active(blockNumber?: number): Promise<[bigint, number]> {\n const resolvedBlockNumber = blockNumber ?? (await this.stakedChainContext.head())[1]\n return [await this.stakedChainContext.stake.active(resolvedBlockNumber), resolvedBlockNumber]\n }\n\n override async createHandler() {\n await super.createHandler()\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 XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { asAttoXL1, asXL1BlockRange } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n BlockViewer,\n BlockViewerMoniker,\n creatableProvider,\n CreatableProviderParams,\n type NetworkStakeStepRewardsByPositionViewer,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n type NetworkStakeStepRewardsByPositionViewerOptions,\n type StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './primitives/index.ts'\n\nexport interface SimpleStepRewardsByPositionViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n stakedChainContext: StakedChainContextRead\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\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n get stakedChainContext() {\n return this.params.stakedChainContext\n }\n\n protected get blockViewer() {\n return this._blockViewer!\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 }\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.stakedChainContext.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.stakedChainContext.stake.stakeById(positionId)\n result[positionId] = asAttoXL1((result[positionId] ?? 0n) + (await networkStakeStepRewardEarnedForPosition(\n this.stakedChainContext,\n this.blockViewer,\n step,\n position,\n rewardMultipliers,\n ))[0])\n }\n }\n }\n return result\n }\n}\n","import {\n type StepIdentity, type XL1RangeMultipliers, XYO_NETWORK_STAKING_ADDRESS,\n} from '@xyo-network/xl1-protocol'\nimport type { BlockViewer, StakedChainContextRead } from '@xyo-network/xl1-protocol-sdk'\nimport { withContextCacheResponse } from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './networkStakeStepRewardEarnedForPosition.ts'\n\nexport async function networkStakeStepRewardEarned(\n context: StakedChainContextRead,\n blockViewer: BlockViewer,\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 context.stake.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS))\n const results = await Promise.all(positions.map((pos) => {\n return networkStakeStepRewardEarnedForPosition(\n context,\n blockViewer,\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 StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'\nimport type {\n BlockViewer,\n Position,\n StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n externalBlockRangeFromStep, stepRewardTotal, weightedStakeForRangeByPosition, withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport async function networkStakeStepRewardEarnedForPosition(\n context: StakedChainContextRead,\n blockViewer: BlockViewer,\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 range,\n XYO_NETWORK_STAKING_ADDRESS,\n position.id,\n )\n : 0n\n\n const denominator = await weightedStakeForRangeByPosition(\n context,\n blockViewer,\n range,\n )\n\n const totalReward = await stepRewardTotal(context, 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 StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'\nimport type {\n BlockViewer,\n StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\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: StakedChainContextRead,\n blockViewer: BlockViewer,\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 context.stake.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 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 XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { asAttoXL1, asXL1BlockRange } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n BlockViewer,\n BlockViewerMoniker,\n creatableProvider,\n CreatableProviderParams,\n type NetworkStakeStepRewardsByStakerViewer, NetworkStakeStepRewardsByStakerViewerMoniker,\n type NetworkStakeStepRewardsByStakerViewerOptions, type StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForStaker } from './primitives/index.ts'\n\nexport interface SimpleStepRewardsByStakerViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n stakedChainContext: StakedChainContextRead\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\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n get stakedChainContext() {\n return this.params.stakedChainContext\n }\n\n protected get blockViewer() {\n return this._blockViewer!\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 }\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.stakedChainContext.head())[1]],\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.stakedChainContext,\n this.blockViewer,\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 StepIdentityString,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { asAttoXL1, asXL1BlockRange } from '@xyo-network/xl1-protocol'\nimport type {\n BlockViewer,\n CreatableProviderParams,\n NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerOptions,\n StakedChainContextRead,\n StakeEventsViewer,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n BlockViewerMoniker,\n creatableProvider, NetworkStakeStepRewardsByStepViewerMoniker, 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 stakeEventsViewer: StakeEventsViewer\n stakedChainContext: StakedChainContextRead\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\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n get stakedChainContext() {\n return this.params.stakedChainContext\n }\n\n protected get blockViewer() {\n return this._blockViewer!\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 }\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.stakedChainContext.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) + (await networkStakeStepRewardEarned(\n this.stakedChainContext,\n this.blockViewer,\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.stakedChainContext.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.stakedChainContext,\n this.blockViewer,\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 XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { asAttoXL1 } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n type NetworkStakeStepRewardsRangeOptions, type NetworkStakeStepRewardsTotalViewer, NetworkStakeStepRewardsTotalViewerMoniker,\n type StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleStepRewardsTotalViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n stakedChainContext: StakedChainContextRead\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 get stakedChainContext() {\n return this.params.stakedChainContext\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 type { XL1RangeMultipliers } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n BlockViewer,\n BlockViewerMoniker,\n creatableProvider,\n CreatableProviderParams,\n type NetworkStakeStepRewardsByPositionViewer, NetworkStakeStepRewardsByPositionViewerMoniker,\n type NetworkStakeStepRewardsByStakerViewer, NetworkStakeStepRewardsByStakerViewerMoniker, type NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerMoniker,\n type NetworkStakeStepRewardsTotalViewer, type NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n type StakedChainContextRead,\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 _stakedChainContext?: StakedChainContextRead\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 protected get stakedChainContext() {\n return this._stakedChainContext\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 type { PositionId, StepIdentity } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n BlockViewer,\n BlockViewerMoniker,\n creatableProvider,\n CreatableProviderParams,\n externalBlockRangeFromStep,\n NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n type PagedPositionsOptions,\n type PagedStakersOptions,\n type Position,\n StakeEventsViewer,\n StakeEventsViewerMoniker,\n StakeViewer,\n StakeViewerMoniker,\n type StepViewer,\n StepViewerMoniker,\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 {\n AbstractCreatableProvider,\n creatableProvider,\n type CreatableProviderContext,\n type DataLakeRunner, DataLakeRunnerMoniker, type DataLakeViewer, DataLakeViewerMoniker,\n type XyoConnection, XyoConnectionMoniker, type XyoNetwork, type XyoRunner, XyoRunnerMoniker,\n type XyoViewer,\n XyoViewerMoniker,\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","AbstractCreatableProvider","creatableProvider","NetworkStakeViewerMoniker","AbstractCreatableProvider","assertEx","NetworkStakeViewerMoniker","creatableProvider","asAttoXL1","asXL1BlockRange","AbstractCreatableProvider","blockRangeSteps","BlockViewerMoniker","creatableProvider","NetworkStakeStepRewardsByPositionViewerMoniker","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","blockRangeSteps","asXL1BlockRange","NetworkStakeStepRewardsByPositionViewerMoniker","creatableProvider","isArray","asAttoXL1","asXL1BlockRange","AbstractCreatableProvider","blockRangeSteps","BlockViewerMoniker","creatableProvider","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","blockRangeSteps","asXL1BlockRange","isArray","creatableProvider","asAttoXL1","asXL1BlockRange","AbstractCreatableProvider","blockRangeSteps","BlockViewerMoniker","creatableProvider","toStepIdentityString","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","blockRangeSteps","asXL1BlockRange","toStepIdentityString","creatableProvider","asAttoXL1","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","asAttoXL1","creatableProvider","assertEx","AbstractCreatableProvider","BlockViewerMoniker","creatableProvider","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","AbstractCreatableProvider","assertEx","BlockViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","creatableProvider","AbstractCreatableProvider","BlockViewerMoniker","creatableProvider","externalBlockRangeFromStep","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","StepViewerMoniker","AbstractCreatableProvider","BlockViewerMoniker","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","externalBlockRangeFromStep","StepViewerMoniker","creatableProvider","AbstractCreatableProvider","creatableProvider","XyoViewerMoniker","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 {\n BalanceStepSummaryContext, CreatableProviderContext, TransfersStepSummaryContext,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n getDefaultConfig, 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?: Partial<CreatableProviderContext>\n}\n\nexport function buildProviderLocator({ context = {} }: 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 return locator.registerMany([\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies),\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),\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 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),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies),\n SimpleXyoConnection.factory<SimpleXyoConnection>(SimpleXyoConnection.dependencies),\n ])\n}\n\nexport interface BuildLocalProviderLocatorParams extends BuildProviderLocatorParams {\n balanceSummaryContext: BalanceStepSummaryContext\n finalizedArchivist: ArchivistInstance\n node: NodeInstance\n pendingBlocksArchivist: ArchivistInstance\n pendingTransactionsArchivist: ArchivistInstance\n transfersSummaryContext: TransfersStepSummaryContext\n}\n\nexport function buildLocalProviderLocator({\n balanceSummaryContext, finalizedArchivist, pendingBlocksArchivist, pendingTransactionsArchivist, transfersSummaryContext, node, ...params\n}: BuildLocalProviderLocatorParams) {\n const locator = buildSimpleProviderLocator(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, { balanceSummaryContext, transfersSummaryContext }),\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 }),\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-sdk'\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 AttoXL1,\n BlockRate,\n ChainId,\n Count,\n SignedHydratedBlockWithHashMeta,\n SignedHydratedTransactionWithHashMeta,\n SingleTimeConfig,\n StepIdentity, StepIdentityString,\n StepIndex,\n TimeDurations,\n XL1BlockNumber, XL1BlockRange, XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport {\n asAttoXL1,\n asSignedHydratedBlockWithHashMeta, asXL1BlockRange,\n isTransactionBoundWitnessWithStorageMeta, XYO_NETWORK_STAKING_ADDRESS,\n XYO_ZERO_ADDRESS,\n} from '@xyo-network/xl1-protocol'\nimport type {\n AccountBalanceViewer,\n BlockViewer, ChainQualifiedConfig, ChainStoreRead, CreatableProviderParams, ForkHistory,\n MempoolViewer, NetworkStakeStepRewardsByPositionViewer, NetworkStakeViewer, PayloadMapRead, Position,\n StakedChainContextRead,\n StakeViewer,\n StepViewer,\n TimeSyncViewer,\n XyoViewer,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n AccountBalanceViewerMoniker,\n allStakersForStep,\n blockRangeSteps,\n BlockViewerMoniker,\n creatableProvider,\n externalBlockRangeFromStep,\n externalBlockRangeFromXL1BlockRange,\n findMostRecentBlock, hydrateBlock, HydratedCache,\n MempoolViewerMoniker,\n networkStakeStepRewardPositionWeight,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeViewerMoniker,\n readPayloadMapFromStore, StakeViewerMoniker, stepRewardTotal, StepViewerMoniker,\n TimeSyncViewerMoniker, toStepIdentityString, tryHydrateTransaction,\n weightedStakeForRangeByPosition,\n withContextCacheResponse,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleXyoViewerParams extends CreatableProviderParams {\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 _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 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 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 } 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('chainIdAtBlock', async () => {\n const block = assertEx(\n blockNumber === 'latest' ? await this.currentBlock() : await this.blockByNumber(blockNumber),\n () => `Could not find block for chainId at block ${blockNumber}`,\n )\n return block[0].chain\n }, { timeBudgetLimit: 200 })\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._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 return await this.spanAsync('networkStakeStepRewardForPosition', 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 }, { timeBudgetLimit: 100 })\n }\n\n async networkStakeStepRewardForStep(stepContext: StepIdentity): Promise<AttoXL1> {\n return await stepRewardTotal(await this.getStakedChainContext(), 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 const stakedChainContext = await this.getStakedChainContext()\n return await withContextCacheResponse(stakedChainContext, 'NodeXyoViewer-networkStakeStepRewardForStepForPosition', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(stakedChainContext, this.block, stepIdentity)\n const stake = await this.stakeById(position)\n const numerator = stake.staked === XYO_NETWORK_STAKING_ADDRESS\n ? await weightedStakeForRangeByPosition(stakedChainContext, this.block, 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(await this.getStakedChainContext(), this.block, 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 await this.getStakedChainContext(),\n this.block,\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 }, { timeBudgetLimit: 100 })\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 }, { timeBudgetLimit: 200 })\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 }, { timeBudgetLimit: 200 })\n }\n\n async transactionByHash(transactionHash: Hash): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await this.spanAsync('transactionByHash', async () => {\n try {\n const cache = await this.getHydratedTransactionCache()\n const hydratedTransaction = await cache.get(transactionHash)\n return hydratedTransaction ?? null\n } catch {\n return null\n }\n }, { timeBudgetLimit: 200 })\n }\n\n protected async getCurrentHead() {\n const chainArchivist = this.finalizedArchivist\n return await findMostRecentBlock(chainArchivist)\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>(chainMap, async (\n { chainMap }: ChainStoreRead,\n hash: Hash,\n maxDepth?: number,\n minDepth?: number,\n ) => {\n const result = await hydrateBlock({ 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>(chainMap, tryHydrateTransaction, 200)\n return this._signedHydratedTransactionCache\n }\n\n protected async getStakedChainContext() {\n const stake = this.stake\n const store = { chainMap: this._finalizedPayloadMap } satisfies StakedChainContextRead['store']\n const head = assertEx(await this.getCurrentHead(), () => 'No current head')\n return {\n caches: this.context.caches,\n singletons: this.context.singletons,\n head: () => { return [head._hash, head.block] },\n store,\n chainId: await this.chainId(),\n stake,\n } satisfies StakedChainContextRead\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 await this.getStakedChainContext(),\n this.block,\n asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }),\n )\n const positionCount = await this.stake.stakeEvents.positionCount(externalRange)\n this.logger?.log(`NodeXyoViewer: Precomputing networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n for (let position = 0; position < positionCount; position++) {\n await this.networkStakeStepRewardForPosition(position, asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }))\n }\n this.logger?.log(`NodeXyoViewer: Precomputed networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n }\n } catch (ex) {\n this.logger?.error(`NodeXyoViewer: 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 const stakedChainContext = await this.getStakedChainContext()\n return await withContextCacheResponse(stakedChainContext, 'NodeXyoViewer-networkStakeStepRewardForStepForPosition-denominator', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(stakedChainContext, this.block, stepIdentity)\n return await weightedStakeForRangeByPosition(stakedChainContext, this.block, range, staked)\n })\n }\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport type { XL1RangeMultipliers } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n type NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n type NetworkStakeViewer, NetworkStakeViewerMoniker,\n type StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleNetworkStakeViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n stakedChainContext: StakedChainContextRead\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 _stepRewardsViewer?: NetworkStakeStepRewardsViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers\n }\n\n get stakedChainContext() {\n return this.params.stakedChainContext\n }\n\n get stepRewards(): NetworkStakeStepRewardsViewer {\n return assertEx(this._stepRewardsViewer, () => 'Step rewards viewer not initialized')\n }\n\n async active(blockNumber?: number): Promise<[bigint, number]> {\n const resolvedBlockNumber = blockNumber ?? (await this.stakedChainContext.head())[1]\n return [await this.stakedChainContext.stake.active(resolvedBlockNumber), resolvedBlockNumber]\n }\n\n override async createHandler() {\n await super.createHandler()\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 XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { asAttoXL1, asXL1BlockRange } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n BlockViewer,\n BlockViewerMoniker,\n creatableProvider,\n CreatableProviderParams,\n type NetworkStakeStepRewardsByPositionViewer,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n type NetworkStakeStepRewardsByPositionViewerOptions,\n type StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './primitives/index.ts'\n\nexport interface SimpleStepRewardsByPositionViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n stakedChainContext: StakedChainContextRead\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\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n get stakedChainContext() {\n return this.params.stakedChainContext\n }\n\n protected get blockViewer() {\n return this._blockViewer!\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 }\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.stakedChainContext.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.stakedChainContext.stake.stakeById(positionId)\n result[positionId] = asAttoXL1((result[positionId] ?? 0n) + (await networkStakeStepRewardEarnedForPosition(\n this.stakedChainContext,\n this.blockViewer,\n step,\n position,\n rewardMultipliers,\n ))[0])\n }\n }\n }\n return result\n }\n}\n","import {\n type StepIdentity, type XL1RangeMultipliers, XYO_NETWORK_STAKING_ADDRESS,\n} from '@xyo-network/xl1-protocol'\nimport type { BlockViewer, StakedChainContextRead } from '@xyo-network/xl1-protocol-sdk'\nimport { withContextCacheResponse } from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './networkStakeStepRewardEarnedForPosition.ts'\n\nexport async function networkStakeStepRewardEarned(\n context: StakedChainContextRead,\n blockViewer: BlockViewer,\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 context.stake.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS))\n const results = await Promise.all(positions.map((pos) => {\n return networkStakeStepRewardEarnedForPosition(\n context,\n blockViewer,\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 StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'\nimport type {\n BlockViewer,\n Position,\n StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n externalBlockRangeFromStep, stepRewardTotal, weightedStakeForRangeByPosition, withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport async function networkStakeStepRewardEarnedForPosition(\n context: StakedChainContextRead,\n blockViewer: BlockViewer,\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 range,\n XYO_NETWORK_STAKING_ADDRESS,\n position.id,\n )\n : 0n\n\n const denominator = await weightedStakeForRangeByPosition(\n context,\n blockViewer,\n range,\n )\n\n const totalReward = await stepRewardTotal(context, 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 StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'\nimport type {\n BlockViewer,\n StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\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: StakedChainContextRead,\n blockViewer: BlockViewer,\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 context.stake.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 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 XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { asAttoXL1, asXL1BlockRange } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n BlockViewer,\n BlockViewerMoniker,\n creatableProvider,\n CreatableProviderParams,\n type NetworkStakeStepRewardsByStakerViewer, NetworkStakeStepRewardsByStakerViewerMoniker,\n type NetworkStakeStepRewardsByStakerViewerOptions, type StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForStaker } from './primitives/index.ts'\n\nexport interface SimpleStepRewardsByStakerViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n stakedChainContext: StakedChainContextRead\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\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n get stakedChainContext() {\n return this.params.stakedChainContext\n }\n\n protected get blockViewer() {\n return this._blockViewer!\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 }\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.stakedChainContext.head())[1]],\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.stakedChainContext,\n this.blockViewer,\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 StepIdentityString,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { asAttoXL1, asXL1BlockRange } from '@xyo-network/xl1-protocol'\nimport type {\n BlockViewer,\n CreatableProviderParams,\n NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerOptions,\n StakedChainContextRead,\n StakeEventsViewer,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n BlockViewerMoniker,\n creatableProvider, NetworkStakeStepRewardsByStepViewerMoniker, 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 stakeEventsViewer: StakeEventsViewer\n stakedChainContext: StakedChainContextRead\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\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n get stakedChainContext() {\n return this.params.stakedChainContext\n }\n\n protected get blockViewer() {\n return this._blockViewer!\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 }\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.stakedChainContext.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) + (await networkStakeStepRewardEarned(\n this.stakedChainContext,\n this.blockViewer,\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.stakedChainContext.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.stakedChainContext,\n this.blockViewer,\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 XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol'\nimport { asAttoXL1 } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n type NetworkStakeStepRewardsRangeOptions, type NetworkStakeStepRewardsTotalViewer, NetworkStakeStepRewardsTotalViewerMoniker,\n type StakedChainContextRead,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface SimpleStepRewardsTotalViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n stakedChainContext: StakedChainContextRead\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 get stakedChainContext() {\n return this.params.stakedChainContext\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 type { XL1RangeMultipliers } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n BlockViewer,\n BlockViewerMoniker,\n creatableProvider,\n CreatableProviderParams,\n type NetworkStakeStepRewardsByPositionViewer, NetworkStakeStepRewardsByPositionViewerMoniker,\n type NetworkStakeStepRewardsByStakerViewer, NetworkStakeStepRewardsByStakerViewerMoniker, type NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerMoniker,\n type NetworkStakeStepRewardsTotalViewer, type NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n type StakedChainContextRead,\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 _stakedChainContext?: StakedChainContextRead\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 protected get stakedChainContext() {\n return this._stakedChainContext\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 type { PositionId, StepIdentity } from '@xyo-network/xl1-protocol'\nimport {\n AbstractCreatableProvider,\n BlockViewer,\n BlockViewerMoniker,\n creatableProvider,\n CreatableProviderParams,\n externalBlockRangeFromStep,\n NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n type PagedPositionsOptions,\n type PagedStakersOptions,\n type Position,\n StakeEventsViewer,\n StakeEventsViewerMoniker,\n StakeViewer,\n StakeViewerMoniker,\n type StepViewer,\n StepViewerMoniker,\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 {\n AbstractCreatableProvider,\n creatableProvider,\n type CreatableProviderContext,\n type DataLakeRunner, DataLakeRunnerMoniker, type DataLakeViewer, DataLakeViewerMoniker,\n type XyoConnection, XyoConnectionMoniker, type XyoNetwork, type XyoRunner, XyoRunnerMoniker,\n type XyoViewer,\n XyoViewerMoniker,\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","AbstractCreatableProvider","creatableProvider","NetworkStakeViewerMoniker","AbstractCreatableProvider","assertEx","NetworkStakeViewerMoniker","creatableProvider","asAttoXL1","asXL1BlockRange","AbstractCreatableProvider","blockRangeSteps","BlockViewerMoniker","creatableProvider","NetworkStakeStepRewardsByPositionViewerMoniker","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","blockRangeSteps","asXL1BlockRange","NetworkStakeStepRewardsByPositionViewerMoniker","creatableProvider","isArray","asAttoXL1","asXL1BlockRange","AbstractCreatableProvider","blockRangeSteps","BlockViewerMoniker","creatableProvider","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","blockRangeSteps","asXL1BlockRange","isArray","creatableProvider","asAttoXL1","asXL1BlockRange","AbstractCreatableProvider","blockRangeSteps","BlockViewerMoniker","creatableProvider","toStepIdentityString","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","blockRangeSteps","asXL1BlockRange","toStepIdentityString","creatableProvider","asAttoXL1","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","asAttoXL1","creatableProvider","assertEx","AbstractCreatableProvider","BlockViewerMoniker","creatableProvider","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","AbstractCreatableProvider","assertEx","BlockViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","creatableProvider","AbstractCreatableProvider","BlockViewerMoniker","creatableProvider","externalBlockRangeFromStep","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","StepViewerMoniker","AbstractCreatableProvider","BlockViewerMoniker","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","externalBlockRangeFromStep","StepViewerMoniker","creatableProvider","AbstractCreatableProvider","creatableProvider","XyoViewerMoniker","AbstractCreatableProvider","XyoViewerMoniker","creatableProvider"]}
@@ -18,7 +18,6 @@ export declare class SimpleXyoViewer<TParams extends SimpleXyoViewerParams = Sim
18
18
  protected _tracer: Tracer | undefined;
19
19
  private _accountBalanceViewer?;
20
20
  private _blockViewer?;
21
- private _finalizedArchivist;
22
21
  private _finalizedPayloadMap;
23
22
  private _mempoolViewer?;
24
23
  private _networkStakeViewer?;
@@ -38,6 +37,7 @@ export declare class SimpleXyoViewer<TParams extends SimpleXyoViewerParams = Sim
38
37
  get stake(): StakeViewer;
39
38
  get step(): StepViewer;
40
39
  get time(): TimeSyncViewer;
40
+ protected get finalizedArchivist(): ArchivistInstance<import("@xyo-network/archivist-model").ArchivistParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/archivist-model").ArchivistConfig>>, import("@xyo-network/archivist-model").ArchivistModuleEventData, Payload>;
41
41
  protected get initRewardsCache(): boolean;
42
42
  protected get networkStepRewardsByPositionViewer(): NetworkStakeStepRewardsByPositionViewer;
43
43
  protected get rewardMultipliers(): XL1RangeMultipliers;
@@ -333,13 +333,12 @@ export declare class SimpleXyoViewer<TParams extends SimpleXyoViewerParams = Sim
333
333
  protocol?: number | undefined;
334
334
  step_hashes?: import("@xylabs/sdk-js").BrandedHash[] | undefined;
335
335
  } | undefined>;
336
- protected getFinalizedArchivist(): ArchivistInstance<import("@xyo-network/archivist-model").ArchivistParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/archivist-model").ArchivistConfig>>, import("@xyo-network/archivist-model").ArchivistModuleEventData, Payload>;
337
336
  protected getHydratedBlockCache(): HydratedCache<SignedHydratedBlockWithHashMeta>;
338
337
  protected getHydratedTransactionCache(): HydratedCache<SignedHydratedTransactionWithHashMeta>;
339
338
  protected getStakedChainContext(): Promise<{
340
339
  caches: Record<string, import("@xyo-network/xl1-protocol-sdk").MapType<string, string | number | bigint | object>>;
341
340
  singletons: Record<string, unknown>;
342
- head: () => Promisable<[Hash, number]>;
341
+ head: () => [import("@xylabs/sdk-js").BrandedHash, XL1BlockNumber];
343
342
  store: {
344
343
  chainMap: PayloadMapRead<WithStorageMeta<Payload>>;
345
344
  };