@xyo-network/xl1-providers 1.18.9 → 1.18.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/buildSimpleXyoSigner.d.ts +8 -0
- package/dist/browser/buildSimpleXyoSigner.d.ts.map +1 -0
- package/dist/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.mjs +13 -1
- package/dist/browser/index.mjs.map +1 -1
- package/dist/neutral/buildSimpleXyoSigner.d.ts +8 -0
- package/dist/neutral/buildSimpleXyoSigner.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +1 -0
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +13 -1
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/node/buildSimpleXyoSigner.d.ts +8 -0
- package/dist/node/buildSimpleXyoSigner.d.ts.map +1 -0
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.mjs +13 -1
- package/dist/node/index.mjs.map +1 -1
- package/package.json +4 -4
- package/src/buildSimpleXyoSigner.ts +18 -0
- package/src/index.ts +1 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AccountInstance } from '@xyo-network/account-model';
|
|
2
|
+
import { SimpleXyoSigner } from '@xyo-network/xl1-protocol-sdk';
|
|
3
|
+
import type { BuildProviderLocatorParams } from './buildProviderLocator.ts';
|
|
4
|
+
export interface BuildSimpleXyoSignerLocatorParams extends BuildProviderLocatorParams {
|
|
5
|
+
account: AccountInstance;
|
|
6
|
+
}
|
|
7
|
+
export declare function buildSimpleXyoSigner(params: BuildSimpleXyoSignerLocatorParams): Promise<import("@xyo-network/xl1-protocol-sdk").CreatableProviderInstance<SimpleXyoSigner>>;
|
|
8
|
+
//# sourceMappingURL=buildSimpleXyoSigner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildSimpleXyoSigner.d.ts","sourceRoot":"","sources":["../../src/buildSimpleXyoSigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAoB,MAAM,+BAA+B,CAAA;AAEjF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAG3E,MAAM,WAAW,iCAAkC,SAAQ,0BAA0B;IACnF,OAAO,EAAE,eAAe,CAAA;CACzB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,iCAAiC,+FAOnF"}
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wCAAwC,CAAA;AACtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wCAAwC,CAAA;AACtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -1168,6 +1168,17 @@ function buildLocalProviderLocator({
|
|
|
1168
1168
|
NodeXyoViewer.factory(NodeXyoViewer.dependencies, { node })
|
|
1169
1169
|
]);
|
|
1170
1170
|
}
|
|
1171
|
+
|
|
1172
|
+
// src/buildSimpleXyoSigner.ts
|
|
1173
|
+
import { SimpleXyoSigner, XyoSignerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
1174
|
+
async function buildSimpleXyoSigner(params) {
|
|
1175
|
+
const { account, ...restParams } = params;
|
|
1176
|
+
const locator = buildSimpleProviderLocator(restParams);
|
|
1177
|
+
locator.register(
|
|
1178
|
+
SimpleXyoSigner.factory(SimpleXyoSigner.dependencies, { account })
|
|
1179
|
+
);
|
|
1180
|
+
return await locator.getInstance(XyoSignerMoniker);
|
|
1181
|
+
}
|
|
1171
1182
|
export {
|
|
1172
1183
|
NodeXyoViewer,
|
|
1173
1184
|
SimpleNetworkStakeViewer,
|
|
@@ -1181,6 +1192,7 @@ export {
|
|
|
1181
1192
|
buildJsonRpcProviderLocator,
|
|
1182
1193
|
buildLocalProviderLocator,
|
|
1183
1194
|
buildProviderLocator,
|
|
1184
|
-
buildSimpleProviderLocator
|
|
1195
|
+
buildSimpleProviderLocator,
|
|
1196
|
+
buildSimpleXyoSigner
|
|
1185
1197
|
};
|
|
1186
1198
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/buildProviderLocator.ts","../../src/NodeXyoViewer.ts","../../src/SimpleNetworkStakeViewer.ts","../../src/SimpleStepRewardsByPositionViewer.ts","../../src/primitives/networkStakeStepRewardEarned.ts","../../src/primitives/networkStakeStepRewardEarnedForPosition.ts","../../src/primitives/networkStakeStepRewardEarnedForStaker.ts","../../src/SimpleStepRewardsByStakerViewer.ts","../../src/SimpleStepRewardsByStepViewer.ts","../../src/SimpleStepRewardsTotalViewer.ts","../../src/SimpleStepRewardsViewer.ts","../../src/SimpleStepViewer.ts","../../src/SimpleXyoConnection.ts"],"sourcesContent":["import type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport type {\n BalanceStepSummaryContext,\n CreatableProviderContext, TransfersStepSummaryContext,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n getDefaultConfig, ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockViewer,\n SimpleFinalizationViewer,\n SimpleMempoolRunner, SimpleMempoolViewer, SimpleStakeEventsViewer,\n SimpleStakeViewer,\n SimpleTimeSyncViewer,\n SimpleWindowedBlockViewer,\n SimpleXyoRunner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { TransportFactory } from '@xyo-network/xl1-rpc'\nimport {\n AccountBalanceViewerRpcSchemas,\n BlockViewerRpcSchemas,\n DataLakeViewerRpcSchemas,\n JsonRpcAccountBalanceViewer, JsonRpcBlockViewer, JsonRpcDataLakeViewer, JsonRpcMempoolRunner, JsonRpcMempoolViewer,\n JsonRpcNetworkStakeViewer, JsonRpcNetworkStakingStepRewardsViewer, JsonRpcStakeTotalsViewer,\n JsonRpcTimeSyncViewer,\n JsonRpcXyoRunner,\n JsonRpcXyoViewer,\n MempoolRunnerRpcSchemas,\n MempoolViewerRpcSchemas,\n NetworkStakeViewerRpcSchemas,\n StakeTotalsViewerRpcSchemas,\n TimeSyncViewerRpcSchemas,\n XyoRunnerRpcSchemas,\n XyoViewerRpcSchemas,\n} from '@xyo-network/xl1-rpc'\n\nimport { NodeXyoViewer } from './NodeXyoViewer.ts'\nimport { SimpleNetworkStakeViewer } from './SimpleNetworkStakeViewer.ts'\nimport { SimpleStepRewardsByPositionViewer } from './SimpleStepRewardsByPositionViewer.ts'\nimport { SimpleStepRewardsByStakerViewer } from './SimpleStepRewardsByStakerViewer.ts'\nimport { SimpleStepRewardsByStepViewer } from './SimpleStepRewardsByStepViewer.ts'\nimport { SimpleStepRewardsTotalViewer } from './SimpleStepRewardsTotalViewer.ts'\nimport { SimpleStepRewardsViewer } from './SimpleStepRewardsViewer.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 = {}, ...restOfContext\n } = context\n return new ProviderFactoryLocator({\n ...restOfContext, config, singletons,\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,\n pendingTransactionsArchivist,\n transfersSummaryContext, node,\n ...params\n}: BuildLocalProviderLocatorParams) {\n const locator = buildSimpleProviderLocator(params)\n return locator.registerMany([\n SimpleMempoolViewer.factory<SimpleMempoolViewer>(SimpleMempoolViewer.dependencies, {\n pendingTransactionsArchivist,\n pendingBlocksArchivist,\n }),\n SimpleMempoolRunner.factory<SimpleMempoolRunner>(SimpleMempoolRunner.dependencies, {\n pendingTransactionsArchivist,\n pendingBlocksArchivist,\n }),\n SimpleAccountBalanceViewer.factory<SimpleAccountBalanceViewer>(SimpleAccountBalanceViewer.dependencies, {\n balanceSummaryContext,\n transfersSummaryContext,\n }),\n SimpleFinalizationViewer.factory<SimpleFinalizationViewer>(SimpleFinalizationViewer.dependencies, { finalizedArchivist }),\n SimpleBlockViewer.factory<SimpleBlockViewer>(SimpleBlockViewer.dependencies, { finalizedArchivist }),\n SimpleXyoRunner.factory<SimpleXyoRunner>(SimpleXyoRunner.dependencies, { pendingTransactionsArchivist }),\n SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 10_000, syncInterval: 10_000 }),\n NodeXyoViewer.factory<NodeXyoViewer>(NodeXyoViewer.dependencies, { node }),\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 spanRootAsync,\n toAddress,\n} from '@xylabs/sdk-js'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { asAttachableArchivistInstance } from '@xyo-network/archivist-model'\nimport { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { asDivinerInstance } from '@xyo-network/diviner-model'\nimport type { ModuleIdentifier } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport type {\n Payload, WithHashMeta, WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport type {\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 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 timeBudget, TimeSyncViewerMoniker, toStepIdentityString, tryHydrateTransaction,\n weightedStakeForRangeByPosition,\n withContextCacheResponse,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface NodeXyoViewerParams extends CreatableProviderParams {\n initRewardsCache?: boolean\n node: NodeInstance\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class NodeXyoViewer extends AbstractCreatableProvider<NodeXyoViewerParams> 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 = NodeXyoViewer.defaultMoniker\n\n protected _tracer: Tracer | undefined\n protected readonly finalizedArchivistPath: ModuleIdentifier = 'XYOChain:Chain:Finalized'\n\n private _accountBalanceViewer?: AccountBalanceViewer\n private _blockViewer?: BlockViewer\n private _finalizedArchivist?: ArchivistInstance\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 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 node() {\n return this.params.node\n }\n\n protected get rewardMultipliers() {\n this._rewardMultipliers = this._rewardMultipliers ?? this.params.rewardMultipliers ?? {}\n return this._rewardMultipliers\n }\n\n protected get stake() {\n return this._stakeViewer!\n }\n\n static override async paramsHandler(params: Partial<NodeXyoViewerParams>): Promise<NodeXyoViewerParams> {\n return {\n ...await super.paramsHandler(params),\n node: assertEx(params.node, () => 'NodeXyoViewer requires a node'),\n } satisfies NodeXyoViewerParams\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 spanRootAsync('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 }, this.tracer)\n }\n\n override async createHandler() {\n await super.createHandler()\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, bigint>> {\n throw new Error('Method [networkStakeStepRewardAddressHistory] not implemented.')\n }\n\n networkStakeStepRewardAddressReward(_context: StepIdentity, _address: Address): Promise<Record<Address, bigint>> {\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<bigint> {\n throw new Error('Method [networkStakeStepRewardClaimedByAddress] not implemented.')\n }\n\n async networkStakeStepRewardForPosition(position: number, range: XL1BlockRange): Promise<[bigint, bigint]> {\n return await timeBudget('networkStakeStepRewardForPosition', this.logger, 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 [0n, 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 = rewards.reduce((a, b) => a + b[0], 0n)\n const totalReward = rewards.reduce((a, b) => a + b[1], 0n)\n return [positionReward, totalReward]\n }, 100)\n }\n\n async networkStakeStepRewardForStep(stepContext: StepIdentity): Promise<bigint> {\n return await stepRewardTotal(await this.getStakedChainContext(), stepContext, this.rewardMultipliers)\n }\n\n async networkStakeStepRewardForStepForPosition(stepIdentity: StepIdentity, position: number): Promise<[bigint, bigint]> {\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 = denominator > 0n ? totalReward * numerator / denominator : 0n\n const result: [bigint, bigint] = [positionReward, totalReward]\n return result\n })\n }\n\n async networkStakeStepRewardPoolRewards(step: StepIdentity): Promise<Record<Address, bigint>> {\n const stakes = await this.stake.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS)\n const rewards: [Address, [bigint, bigint]][] = []\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, bigint> = {}\n for (const [staker, reward] of rewards) {\n result[staker] = (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<bigint> {\n throw new Error('Method [networkStakeStepRewardPotentialPositionLoss] not implemented.')\n }\n\n networkStakeStepRewardRandomizer(_context: StepIdentity): Promise<bigint> {\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<bigint> {\n throw new Error('Method [networkStakeStepRewardUnclaimedByAddress] not implemented.')\n }\n\n networkStakeStepRewardWeightForAddress(_context: StepIdentity, _address: Address): Promise<bigint> {\n throw new Error('Method [networkStakeStepRewardWeightForAddress] not implemented.')\n }\n\n async networkStakeStepRewardsForPosition(position: number, range: XL1BlockRange): Promise<Record<StepIdentityString, [bigint, bigint]>> {\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, [bigint, bigint]]\n }))\n const result: Record<StepIdentityString, [bigint, bigint]> = {}\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<bigint> {\n return await timeBudget('networkStakeStepRewardsForRange', this.logger, 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 rewards.reduce((a, b) => a + b, 0n)\n }, 100)\n }\n\n async networkStakeStepRewardsForStepLevel(stepLevel: number, range: XL1BlockRange): Promise<bigint> {\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 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 spanRootAsync('transactionByBlockHashAndIndex', async () => {\n assertEx(transactionIndex >= 0, () => 'transactionIndex must be greater than or equal to 0')\n try {\n const block = await this.blockByHash(blockHash)\n if (!block) return null\n const blockBoundWitnessIndexes = block[0].payload_schemas.map((schema, index) => schema === BoundWitnessSchema ? index : undefined).filter(exists)\n const blockBoundWitnessHashes = new Set(blockBoundWitnessIndexes.map(index => block[0].payload_hashes[index]))\n const blockBoundWitnesses = block[1].filter(payload => blockBoundWitnessHashes.has(payload._hash) || blockBoundWitnessHashes.has(payload._dataHash))\n const blockTransactionBoundWitnesses = blockBoundWitnesses.filter(isTransactionBoundWitnessWithStorageMeta)\n const transaction = blockTransactionBoundWitnesses.at(transactionIndex)\n if (!transaction) return null\n return await this.transactionByHash(transaction._hash)\n } catch {\n return null\n }\n }, this.tracer)\n }\n\n async transactionByBlockNumberAndIndex(blockNumber: XL1BlockNumber, transactionIndex: number = 0): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await spanRootAsync('transactionByBlockNumberAndIndex', async () => {\n try {\n const block = await this.blockByNumber(blockNumber)\n if (!block) return null\n return await this.transactionByBlockHashAndIndex(block[0]._hash, transactionIndex)\n } catch {\n return null\n }\n }, this.tracer)\n }\n\n async transactionByHash(transactionHash: Hash): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await spanRootAsync('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 }, this.tracer)\n }\n\n protected getArchivist = async (identifier: ModuleIdentifier) => {\n const archivist = await this.node.resolve(identifier)\n return assertEx(asAttachableArchivistInstance(archivist), () => `Could not resolve ${identifier} to an archivist instance`)\n }\n\n protected async getCurrentHead() {\n const chainArchivist = await this.getFinalizedArchivist()\n return await findMostRecentBlock(chainArchivist)\n }\n\n protected getDiviner = async (identifier: ModuleIdentifier) => {\n const diviner = await this.node.resolve(identifier)\n return assertEx(asDivinerInstance(diviner), () => `Could not resolve ${identifier} to a diviner instance`)\n }\n\n protected getFinalizedArchivist = async (): Promise<ArchivistInstance> => {\n if (this._finalizedArchivist) return this._finalizedArchivist\n const resolved = await this.getArchivist(this.finalizedArchivistPath)\n this._finalizedArchivist = resolved\n return assertEx(this._finalizedArchivist, () => `Could not resolve finalized archivist at ${this.finalizedArchivistPath}`)\n }\n\n protected getFinalizedPayloadMap = async (): Promise<PayloadMapRead<WithStorageMeta<Payload>>> => {\n const archivist = this.getFinalizedArchivist()\n return readPayloadMapFromStore<WithStorageMeta<Payload>>(await archivist)\n }\n\n protected async getHydratedBlockCache(): Promise<HydratedCache<SignedHydratedBlockWithHashMeta>> {\n if (this._signedHydratedBlockCache) return this._signedHydratedBlockCache\n const chainMap = await this.getFinalizedPayloadMap()\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 async getHydratedTransactionCache(): Promise<HydratedCache<SignedHydratedTransactionWithHashMeta>> {\n if (this._signedHydratedTransactionCache) return this._signedHydratedTransactionCache\n const chainMap = await this.getFinalizedPayloadMap()\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: await this.getFinalizedPayloadMap() } satisfies StakedChainContextRead['store']\n return {\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"],"mappings":"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","names":["chainMap","assertEx","AbstractCreatableProvider","creatableProvider","NetworkStakeViewerMoniker","AbstractCreatableProvider","assertEx","NetworkStakeViewerMoniker","creatableProvider","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","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/SimpleNetworkStakeViewer.ts","../../src/SimpleStepRewardsByPositionViewer.ts","../../src/primitives/networkStakeStepRewardEarned.ts","../../src/primitives/networkStakeStepRewardEarnedForPosition.ts","../../src/primitives/networkStakeStepRewardEarnedForStaker.ts","../../src/SimpleStepRewardsByStakerViewer.ts","../../src/SimpleStepRewardsByStepViewer.ts","../../src/SimpleStepRewardsTotalViewer.ts","../../src/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,\n CreatableProviderContext, TransfersStepSummaryContext,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n getDefaultConfig, ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockViewer,\n SimpleFinalizationViewer,\n SimpleMempoolRunner, SimpleMempoolViewer, SimpleStakeEventsViewer,\n SimpleStakeViewer,\n SimpleTimeSyncViewer,\n SimpleWindowedBlockViewer,\n SimpleXyoRunner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { TransportFactory } from '@xyo-network/xl1-rpc'\nimport {\n AccountBalanceViewerRpcSchemas,\n BlockViewerRpcSchemas,\n DataLakeViewerRpcSchemas,\n JsonRpcAccountBalanceViewer, JsonRpcBlockViewer, JsonRpcDataLakeViewer, JsonRpcMempoolRunner, JsonRpcMempoolViewer,\n JsonRpcNetworkStakeViewer, JsonRpcNetworkStakingStepRewardsViewer, JsonRpcStakeTotalsViewer,\n JsonRpcTimeSyncViewer,\n JsonRpcXyoRunner,\n JsonRpcXyoViewer,\n MempoolRunnerRpcSchemas,\n MempoolViewerRpcSchemas,\n NetworkStakeViewerRpcSchemas,\n StakeTotalsViewerRpcSchemas,\n TimeSyncViewerRpcSchemas,\n XyoRunnerRpcSchemas,\n XyoViewerRpcSchemas,\n} from '@xyo-network/xl1-rpc'\n\nimport { NodeXyoViewer } from './NodeXyoViewer.ts'\nimport { SimpleNetworkStakeViewer } from './SimpleNetworkStakeViewer.ts'\nimport { SimpleStepRewardsByPositionViewer } from './SimpleStepRewardsByPositionViewer.ts'\nimport { SimpleStepRewardsByStakerViewer } from './SimpleStepRewardsByStakerViewer.ts'\nimport { SimpleStepRewardsByStepViewer } from './SimpleStepRewardsByStepViewer.ts'\nimport { SimpleStepRewardsTotalViewer } from './SimpleStepRewardsTotalViewer.ts'\nimport { SimpleStepRewardsViewer } from './SimpleStepRewardsViewer.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 = {}, ...restOfContext\n } = context\n return new ProviderFactoryLocator({\n ...restOfContext, config, singletons,\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,\n pendingTransactionsArchivist,\n transfersSummaryContext, node,\n ...params\n}: BuildLocalProviderLocatorParams) {\n const locator = buildSimpleProviderLocator(params)\n return locator.registerMany([\n SimpleMempoolViewer.factory<SimpleMempoolViewer>(SimpleMempoolViewer.dependencies, {\n pendingTransactionsArchivist,\n pendingBlocksArchivist,\n }),\n SimpleMempoolRunner.factory<SimpleMempoolRunner>(SimpleMempoolRunner.dependencies, {\n pendingTransactionsArchivist,\n pendingBlocksArchivist,\n }),\n SimpleAccountBalanceViewer.factory<SimpleAccountBalanceViewer>(SimpleAccountBalanceViewer.dependencies, {\n balanceSummaryContext,\n transfersSummaryContext,\n }),\n SimpleFinalizationViewer.factory<SimpleFinalizationViewer>(SimpleFinalizationViewer.dependencies, { finalizedArchivist }),\n SimpleBlockViewer.factory<SimpleBlockViewer>(SimpleBlockViewer.dependencies, { finalizedArchivist }),\n SimpleXyoRunner.factory<SimpleXyoRunner>(SimpleXyoRunner.dependencies, { pendingTransactionsArchivist }),\n SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 10_000, syncInterval: 10_000 }),\n NodeXyoViewer.factory<NodeXyoViewer>(NodeXyoViewer.dependencies, { node }),\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 spanRootAsync,\n toAddress,\n} from '@xylabs/sdk-js'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { asAttachableArchivistInstance } from '@xyo-network/archivist-model'\nimport { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { asDivinerInstance } from '@xyo-network/diviner-model'\nimport type { ModuleIdentifier } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport type {\n Payload, WithHashMeta, WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport type {\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 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 timeBudget, TimeSyncViewerMoniker, toStepIdentityString, tryHydrateTransaction,\n weightedStakeForRangeByPosition,\n withContextCacheResponse,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport interface NodeXyoViewerParams extends CreatableProviderParams {\n initRewardsCache?: boolean\n node: NodeInstance\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n@creatableProvider()\nexport class NodeXyoViewer extends AbstractCreatableProvider<NodeXyoViewerParams> 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 = NodeXyoViewer.defaultMoniker\n\n protected _tracer: Tracer | undefined\n protected readonly finalizedArchivistPath: ModuleIdentifier = 'XYOChain:Chain:Finalized'\n\n private _accountBalanceViewer?: AccountBalanceViewer\n private _blockViewer?: BlockViewer\n private _finalizedArchivist?: ArchivistInstance\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 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 node() {\n return this.params.node\n }\n\n protected get rewardMultipliers() {\n this._rewardMultipliers = this._rewardMultipliers ?? this.params.rewardMultipliers ?? {}\n return this._rewardMultipliers\n }\n\n protected get stake() {\n return this._stakeViewer!\n }\n\n static override async paramsHandler(params: Partial<NodeXyoViewerParams>): Promise<NodeXyoViewerParams> {\n return {\n ...await super.paramsHandler(params),\n node: assertEx(params.node, () => 'NodeXyoViewer requires a node'),\n } satisfies NodeXyoViewerParams\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 spanRootAsync('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 }, this.tracer)\n }\n\n override async createHandler() {\n await super.createHandler()\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, bigint>> {\n throw new Error('Method [networkStakeStepRewardAddressHistory] not implemented.')\n }\n\n networkStakeStepRewardAddressReward(_context: StepIdentity, _address: Address): Promise<Record<Address, bigint>> {\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<bigint> {\n throw new Error('Method [networkStakeStepRewardClaimedByAddress] not implemented.')\n }\n\n async networkStakeStepRewardForPosition(position: number, range: XL1BlockRange): Promise<[bigint, bigint]> {\n return await timeBudget('networkStakeStepRewardForPosition', this.logger, 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 [0n, 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 = rewards.reduce((a, b) => a + b[0], 0n)\n const totalReward = rewards.reduce((a, b) => a + b[1], 0n)\n return [positionReward, totalReward]\n }, 100)\n }\n\n async networkStakeStepRewardForStep(stepContext: StepIdentity): Promise<bigint> {\n return await stepRewardTotal(await this.getStakedChainContext(), stepContext, this.rewardMultipliers)\n }\n\n async networkStakeStepRewardForStepForPosition(stepIdentity: StepIdentity, position: number): Promise<[bigint, bigint]> {\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 = denominator > 0n ? totalReward * numerator / denominator : 0n\n const result: [bigint, bigint] = [positionReward, totalReward]\n return result\n })\n }\n\n async networkStakeStepRewardPoolRewards(step: StepIdentity): Promise<Record<Address, bigint>> {\n const stakes = await this.stake.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS)\n const rewards: [Address, [bigint, bigint]][] = []\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, bigint> = {}\n for (const [staker, reward] of rewards) {\n result[staker] = (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<bigint> {\n throw new Error('Method [networkStakeStepRewardPotentialPositionLoss] not implemented.')\n }\n\n networkStakeStepRewardRandomizer(_context: StepIdentity): Promise<bigint> {\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<bigint> {\n throw new Error('Method [networkStakeStepRewardUnclaimedByAddress] not implemented.')\n }\n\n networkStakeStepRewardWeightForAddress(_context: StepIdentity, _address: Address): Promise<bigint> {\n throw new Error('Method [networkStakeStepRewardWeightForAddress] not implemented.')\n }\n\n async networkStakeStepRewardsForPosition(position: number, range: XL1BlockRange): Promise<Record<StepIdentityString, [bigint, bigint]>> {\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, [bigint, bigint]]\n }))\n const result: Record<StepIdentityString, [bigint, bigint]> = {}\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<bigint> {\n return await timeBudget('networkStakeStepRewardsForRange', this.logger, 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 rewards.reduce((a, b) => a + b, 0n)\n }, 100)\n }\n\n async networkStakeStepRewardsForStepLevel(stepLevel: number, range: XL1BlockRange): Promise<bigint> {\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 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 spanRootAsync('transactionByBlockHashAndIndex', async () => {\n assertEx(transactionIndex >= 0, () => 'transactionIndex must be greater than or equal to 0')\n try {\n const block = await this.blockByHash(blockHash)\n if (!block) return null\n const blockBoundWitnessIndexes = block[0].payload_schemas.map((schema, index) => schema === BoundWitnessSchema ? index : undefined).filter(exists)\n const blockBoundWitnessHashes = new Set(blockBoundWitnessIndexes.map(index => block[0].payload_hashes[index]))\n const blockBoundWitnesses = block[1].filter(payload => blockBoundWitnessHashes.has(payload._hash) || blockBoundWitnessHashes.has(payload._dataHash))\n const blockTransactionBoundWitnesses = blockBoundWitnesses.filter(isTransactionBoundWitnessWithStorageMeta)\n const transaction = blockTransactionBoundWitnesses.at(transactionIndex)\n if (!transaction) return null\n return await this.transactionByHash(transaction._hash)\n } catch {\n return null\n }\n }, this.tracer)\n }\n\n async transactionByBlockNumberAndIndex(blockNumber: XL1BlockNumber, transactionIndex: number = 0): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await spanRootAsync('transactionByBlockNumberAndIndex', async () => {\n try {\n const block = await this.blockByNumber(blockNumber)\n if (!block) return null\n return await this.transactionByBlockHashAndIndex(block[0]._hash, transactionIndex)\n } catch {\n return null\n }\n }, this.tracer)\n }\n\n async transactionByHash(transactionHash: Hash): Promise<SignedHydratedTransactionWithHashMeta | null> {\n return await spanRootAsync('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 }, this.tracer)\n }\n\n protected getArchivist = async (identifier: ModuleIdentifier) => {\n const archivist = await this.node.resolve(identifier)\n return assertEx(asAttachableArchivistInstance(archivist), () => `Could not resolve ${identifier} to an archivist instance`)\n }\n\n protected async getCurrentHead() {\n const chainArchivist = await this.getFinalizedArchivist()\n return await findMostRecentBlock(chainArchivist)\n }\n\n protected getDiviner = async (identifier: ModuleIdentifier) => {\n const diviner = await this.node.resolve(identifier)\n return assertEx(asDivinerInstance(diviner), () => `Could not resolve ${identifier} to a diviner instance`)\n }\n\n protected getFinalizedArchivist = async (): Promise<ArchivistInstance> => {\n if (this._finalizedArchivist) return this._finalizedArchivist\n const resolved = await this.getArchivist(this.finalizedArchivistPath)\n this._finalizedArchivist = resolved\n return assertEx(this._finalizedArchivist, () => `Could not resolve finalized archivist at ${this.finalizedArchivistPath}`)\n }\n\n protected getFinalizedPayloadMap = async (): Promise<PayloadMapRead<WithStorageMeta<Payload>>> => {\n const archivist = this.getFinalizedArchivist()\n return readPayloadMapFromStore<WithStorageMeta<Payload>>(await archivist)\n }\n\n protected async getHydratedBlockCache(): Promise<HydratedCache<SignedHydratedBlockWithHashMeta>> {\n if (this._signedHydratedBlockCache) return this._signedHydratedBlockCache\n const chainMap = await this.getFinalizedPayloadMap()\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 async getHydratedTransactionCache(): Promise<HydratedCache<SignedHydratedTransactionWithHashMeta>> {\n if (this._signedHydratedTransactionCache) return this._signedHydratedTransactionCache\n const chainMap = await this.getFinalizedPayloadMap()\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: await this.getFinalizedPayloadMap() } satisfies StakedChainContextRead['store']\n return {\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":["chainMap","assertEx","AbstractCreatableProvider","creatableProvider","NetworkStakeViewerMoniker","AbstractCreatableProvider","assertEx","NetworkStakeViewerMoniker","creatableProvider","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","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"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AccountInstance } from '@xyo-network/account-model';
|
|
2
|
+
import { SimpleXyoSigner } from '@xyo-network/xl1-protocol-sdk';
|
|
3
|
+
import type { BuildProviderLocatorParams } from './buildProviderLocator.ts';
|
|
4
|
+
export interface BuildSimpleXyoSignerLocatorParams extends BuildProviderLocatorParams {
|
|
5
|
+
account: AccountInstance;
|
|
6
|
+
}
|
|
7
|
+
export declare function buildSimpleXyoSigner(params: BuildSimpleXyoSignerLocatorParams): Promise<import("@xyo-network/xl1-protocol-sdk").CreatableProviderInstance<SimpleXyoSigner>>;
|
|
8
|
+
//# sourceMappingURL=buildSimpleXyoSigner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildSimpleXyoSigner.d.ts","sourceRoot":"","sources":["../../src/buildSimpleXyoSigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAoB,MAAM,+BAA+B,CAAA;AAEjF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAG3E,MAAM,WAAW,iCAAkC,SAAQ,0BAA0B;IACnF,OAAO,EAAE,eAAe,CAAA;CACzB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,iCAAiC,+FAOnF"}
|
package/dist/neutral/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wCAAwC,CAAA;AACtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wCAAwC,CAAA;AACtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1168,6 +1168,17 @@ function buildLocalProviderLocator({
|
|
|
1168
1168
|
NodeXyoViewer.factory(NodeXyoViewer.dependencies, { node })
|
|
1169
1169
|
]);
|
|
1170
1170
|
}
|
|
1171
|
+
|
|
1172
|
+
// src/buildSimpleXyoSigner.ts
|
|
1173
|
+
import { SimpleXyoSigner, XyoSignerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
1174
|
+
async function buildSimpleXyoSigner(params) {
|
|
1175
|
+
const { account, ...restParams } = params;
|
|
1176
|
+
const locator = buildSimpleProviderLocator(restParams);
|
|
1177
|
+
locator.register(
|
|
1178
|
+
SimpleXyoSigner.factory(SimpleXyoSigner.dependencies, { account })
|
|
1179
|
+
);
|
|
1180
|
+
return await locator.getInstance(XyoSignerMoniker);
|
|
1181
|
+
}
|
|
1171
1182
|
export {
|
|
1172
1183
|
NodeXyoViewer,
|
|
1173
1184
|
SimpleNetworkStakeViewer,
|
|
@@ -1181,6 +1192,7 @@ export {
|
|
|
1181
1192
|
buildJsonRpcProviderLocator,
|
|
1182
1193
|
buildLocalProviderLocator,
|
|
1183
1194
|
buildProviderLocator,
|
|
1184
|
-
buildSimpleProviderLocator
|
|
1195
|
+
buildSimpleProviderLocator,
|
|
1196
|
+
buildSimpleXyoSigner
|
|
1185
1197
|
};
|
|
1186
1198
|
//# sourceMappingURL=index.mjs.map
|