@xyo-network/xl1-providers 1.26.21 → 1.26.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/browser/NodeXyoViewer.d.ts.map +1 -1
  2. package/dist/browser/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts +1 -1
  3. package/dist/browser/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts.map +1 -1
  4. package/dist/browser/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts +1 -1
  5. package/dist/browser/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts.map +1 -1
  6. package/dist/browser/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts +1 -1
  7. package/dist/browser/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts.map +1 -1
  8. package/dist/browser/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts +1 -1
  9. package/dist/browser/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts.map +1 -1
  10. package/dist/browser/SimpleXyoViewer.d.ts.map +1 -1
  11. package/dist/browser/buildLocalGateway.d.ts.map +1 -1
  12. package/dist/browser/buildProviderLocator.d.ts.map +1 -1
  13. package/dist/browser/buildProviderLocatorV2.d.ts.map +1 -1
  14. package/dist/browser/index.mjs +3 -3
  15. package/dist/browser/index.mjs.map +1 -1
  16. package/dist/neutral/NodeXyoViewer.d.ts.map +1 -1
  17. package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts +1 -1
  18. package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts.map +1 -1
  19. package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts +1 -1
  20. package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts.map +1 -1
  21. package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts +1 -1
  22. package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts.map +1 -1
  23. package/dist/neutral/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts +1 -1
  24. package/dist/neutral/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts.map +1 -1
  25. package/dist/neutral/SimpleXyoViewer.d.ts.map +1 -1
  26. package/dist/neutral/buildLocalGateway.d.ts.map +1 -1
  27. package/dist/neutral/buildProviderLocator.d.ts.map +1 -1
  28. package/dist/neutral/buildProviderLocatorV2.d.ts.map +1 -1
  29. package/dist/neutral/index.mjs +3 -3
  30. package/dist/neutral/index.mjs.map +1 -1
  31. package/dist/node/NodeXyoViewer.d.ts.map +1 -1
  32. package/dist/node/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts +1 -1
  33. package/dist/node/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts.map +1 -1
  34. package/dist/node/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts +1 -1
  35. package/dist/node/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts.map +1 -1
  36. package/dist/node/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts +1 -1
  37. package/dist/node/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts.map +1 -1
  38. package/dist/node/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts +1 -1
  39. package/dist/node/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts.map +1 -1
  40. package/dist/node/SimpleXyoViewer.d.ts.map +1 -1
  41. package/dist/node/buildLocalGateway.d.ts.map +1 -1
  42. package/dist/node/buildProviderLocator.d.ts.map +1 -1
  43. package/dist/node/buildProviderLocatorV2.d.ts.map +1 -1
  44. package/dist/node/index.mjs +3 -3
  45. package/dist/node/index.mjs.map +1 -1
  46. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/buildProviderLocator.ts","../../src/NodeXyoViewer.ts","../../src/SimpleXyoViewer.ts","../../src/registerHelpers.ts","../../src/SimpleXyoConnectionRunner.ts","../../src/SimpleNetworkStakeViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsByPositionViewer.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarned.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForPosition.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForStaker.ts","../../src/SimpleStepRewards/SimpleStepRewardsByStakerViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsByStepViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsTotalViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsViewer.ts","../../src/SimpleStepViewer.ts","../../src/buildProviderLocatorV2.ts","../../src/buildSimpleXyoSignerV2.ts","../../src/locators/basicRemoteRunnerLocator.ts","../../src/locators/basicRemoteViewerLocator.ts","../../src/SimpleXyoConnectionViewer.ts","../../src/locators/commonLocatorFromConfig.ts","../../src/locators/remoteLocatorFromConfig.ts","../../src/locators/rootLocatorFromConfig.ts"],"sourcesContent":["import type {\n ArchivistInstance, NodeInstance, WithHashMeta,\n} from '@xyo-network/sdk-js'\nimport type { MapType, Position } from '@xyo-network/xl1-protocol-lib'\nimport type {\n BalancesStepSummary, CreatableProviderContext, TransfersStepSummary,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n ConfigZod,\n getEmptyProviderContext, ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockViewer, SimpleFinalizationViewer, SimpleMempoolRunner, SimpleMempoolViewer,\n SimpleStakeEventsViewer, SimpleStakeViewer, SimpleTimeSyncViewer, SimpleWindowedBlockViewer, SimpleXyoRunner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { TransportFactory } from '@xyo-network/xl1-rpc'\nimport {\n AccountBalanceViewerRpcSchemas, BlockViewerRpcSchemas, JsonRpcAccountBalanceViewer, JsonRpcBlockViewer,\n JsonRpcMempoolRunner, JsonRpcMempoolViewer, JsonRpcNetworkStakeStepRewardsViewer, JsonRpcNetworkStakeViewer, JsonRpcStakeTotalsViewer,\n JsonRpcTimeSyncViewer, JsonRpcXyoRunner, JsonRpcXyoViewer, MempoolRunnerRpcSchemas, MempoolViewerRpcSchemas, NetworkStakeViewerRpcSchemas,\n StakeTotalsViewerRpcSchemas, TimeSyncViewerRpcSchemas, XyoRunnerRpcSchemas, XyoViewerRpcSchemas,\n} from '@xyo-network/xl1-rpc'\n\nimport { NodeXyoViewer } from './NodeXyoViewer.ts'\nimport type { GatewayRunnerLocatorParams } from './registerHelpers.ts'\nimport { registerGatewayWithLocator } from './registerHelpers.ts'\nimport { SimpleNetworkStakeViewer } from './SimpleNetworkStakeViewer.ts'\nimport {\n SimpleStepRewardsByPositionViewer, SimpleStepRewardsByStakerViewer, SimpleStepRewardsByStepViewer, SimpleStepRewardsTotalViewer, SimpleStepRewardsViewer,\n} from './SimpleStepRewards/index.ts'\nimport { SimpleStepViewer } from './SimpleStepViewer.ts'\n\n/** @deprecated use buildEmptyProviderLocator */\nexport interface BuildProviderLocatorParams {\n context?: Omit<CreatableProviderContext, 'locator'> & Partial<{ locator: CreatableProviderContext['locator'] }>\n}\n\n/** @deprecated use buildEmptyProviderLocator */\n\n/** Builds a provider locator with the given context and options. */\nexport function buildProviderLocator({ context = getEmptyProviderContext(ConfigZod.parse({})) }: BuildProviderLocatorParams = {}) {\n const {\n config, locator, singletons = {}, caches = {}, ...restOfContext\n } = context\n return new ProviderFactoryLocator({\n ...restOfContext, config, singletons, caches,\n }, locator?.registry)\n}\n\n/** @deprecated use buildSimpleProviderLocatorV2 instead */\n\n/** Parameters for building a simple provider locator. */\nexport interface BuildSimpleProviderLocatorParams extends BuildProviderLocatorParams, GatewayRunnerLocatorParams {\n}\n\n/** @deprecated use buildSimpleProviderLocatorV2 instead */\n\n/** Builds a simple provider locator with default configuration. */\nexport function buildSimpleProviderLocator(params?: BuildSimpleProviderLocatorParams) {\n const locator = buildProviderLocator(params)\n const positions: Position[] = []\n locator.registerMany([\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions }),\n SimpleNetworkStakeViewer.factory<SimpleNetworkStakeViewer>(SimpleNetworkStakeViewer.dependencies, {}),\n SimpleTimeSyncViewer.factory<SimpleTimeSyncViewer>(SimpleTimeSyncViewer.dependencies, {}),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies, {}),\n SimpleStepRewardsViewer.factory<SimpleStepRewardsViewer>(SimpleStepRewardsViewer.dependencies, {}),\n SimpleStepRewardsByPositionViewer.factory<SimpleStepRewardsByPositionViewer>(SimpleStepRewardsByPositionViewer.dependencies, {}),\n SimpleStepRewardsByStakerViewer.factory<SimpleStepRewardsByStakerViewer>(SimpleStepRewardsByStakerViewer.dependencies, {}),\n SimpleStepRewardsByStepViewer.factory<SimpleStepRewardsByStepViewer>(SimpleStepRewardsByStepViewer.dependencies, {}),\n SimpleStepRewardsTotalViewer.factory<SimpleStepRewardsTotalViewer>(SimpleStepRewardsTotalViewer.dependencies, {}),\n ])\n\n return registerGatewayWithLocator(locator, params?.signerAccount)\n}\n\n/** @deprecated use buildJsonRpcProviderLocatorV2 instead */\n\n/** Parameters for building a JSON-RPC provider locator. */\nexport interface BuildJsonRpcProviderLocatorParams extends BuildProviderLocatorParams, GatewayRunnerLocatorParams {\n transportFactory: TransportFactory\n}\n\n/** @deprecated use buildJsonRpcProviderLocatorV2 instead */\n\n/** Builds a JSON-RPC provider locator connecting to a remote node. */\nexport async function buildJsonRpcProviderLocator(params: BuildJsonRpcProviderLocatorParams) {\n const locator = buildProviderLocator(params)\n const transportFactory = params.transportFactory\n const positions: Position[] = []\n 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 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 JsonRpcNetworkStakeStepRewardsViewer.factory<JsonRpcNetworkStakeStepRewardsViewer>(\n JsonRpcNetworkStakeStepRewardsViewer.dependencies,\n { transport: await transportFactory({}) },\n ),\n JsonRpcXyoRunner.factory<JsonRpcXyoRunner>(JsonRpcXyoRunner.dependencies, { transport: await transportFactory(XyoRunnerRpcSchemas) }),\n JsonRpcXyoViewer.factory<JsonRpcXyoViewer>(JsonRpcXyoViewer.dependencies, { transport: await transportFactory(XyoViewerRpcSchemas) }),\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions }),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies, {}),\n ])\n\n return registerGatewayWithLocator(locator, params?.signerAccount)\n}\n\n/** deprecated use buildLocalProviderLocatorV2 instead */\n\n/** Parameters for building a local provider locator. */\nexport interface BuildLocalProviderLocatorParams extends BuildProviderLocatorParams, GatewayRunnerLocatorParams {\n balancesSummaryMap: MapType<string, WithHashMeta<BalancesStepSummary>>\n finalizedArchivist: ArchivistInstance\n node: NodeInstance\n pendingBlocksArchivist: ArchivistInstance\n pendingTransactionsArchivist: ArchivistInstance\n transfersSummaryMap: MapType<string, WithHashMeta<TransfersStepSummary>>\n}\n\n/** deprecated use buildLocalProviderLocatorV2 instead */\nexport function buildLocalProviderLocator(params: BuildLocalProviderLocatorParams) {\n const locator = buildSimpleProviderLocator(params)\n const {\n pendingTransactionsArchivist, pendingBlocksArchivist, balancesSummaryMap, transfersSummaryMap, finalizedArchivist, node,\n } = params\n locator.registerMany([\n SimpleMempoolViewer.factory<SimpleMempoolViewer>(SimpleMempoolViewer.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleMempoolRunner.factory<SimpleMempoolRunner>(SimpleMempoolRunner.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleAccountBalanceViewer.factory<SimpleAccountBalanceViewer>(SimpleAccountBalanceViewer.dependencies, { balancesSummaryMap, transfersSummaryMap }),\n SimpleFinalizationViewer.factory<SimpleFinalizationViewer>(SimpleFinalizationViewer.dependencies, { finalizedArchivist }),\n SimpleBlockViewer.factory<SimpleBlockViewer>(SimpleBlockViewer.dependencies, { finalizedArchivist }),\n SimpleXyoRunner.factory<SimpleXyoRunner>(SimpleXyoRunner.dependencies, {}),\n SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 10_000, syncInterval: 10_000 }),\n NodeXyoViewer.factory<NodeXyoViewer>(NodeXyoViewer.dependencies, { node }),\n ])\n\n return registerGatewayWithLocator(locator, params?.signerAccount)\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport type {\n ArchivistInstance, ModuleIdentifier, NodeInstance,\n} from '@xyo-network/sdk-js'\nimport { asAttachableArchivistInstance } from '@xyo-network/sdk-js'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol-lib'\nimport { creatableProvider } from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleXyoViewer, SimpleXyoViewerParams } from './SimpleXyoViewer.ts'\n\n/** @deprecated use SimpleXyoViewer instead */\nexport interface NodeXyoViewerParams extends SimpleXyoViewerParams {\n node: NodeInstance\n}\n\n@creatableProvider()\n/** @deprecated use SimpleXyoViewer instead */\n\n/** XYO viewer implementation for Node.js environments. */\nexport class NodeXyoViewer extends SimpleXyoViewer<NodeXyoViewerParams> implements XyoViewer {\n protected static readonly finalizedArchivistPath: ModuleIdentifier = 'XYOChain:Chain:Finalized'\n\n protected get node() {\n return this.params.node\n }\n\n protected static getArchivist = async (node: NodeInstance, identifier: ModuleIdentifier) => {\n const archivist = await node.resolve(identifier)\n return assertEx(asAttachableArchivistInstance(archivist), () => `Could not resolve ${identifier} to an archivist instance`)\n }\n\n protected static async getFinalizedArchivistFromNode(node: NodeInstance): Promise<ArchivistInstance> {\n const resolved = await this.getArchivist(node, this.finalizedArchivistPath)\n return assertEx(resolved, () => `Could not resolve finalized archivist at ${this.finalizedArchivistPath}`)\n }\n}\n","import type { Tracer } from '@opentelemetry/api'\nimport type {\n Address,\n Hash, Promisable,\n} from '@xylabs/sdk-js'\nimport {\n assertEx,\n toAddress,\n} from '@xylabs/sdk-js'\nimport type { Payload, WithHashMeta } from '@xyo-network/sdk-js'\nimport type {\n AccountBalanceViewer,\n AttoXL1,\n BlockRate,\n BlockViewer, ChainContractViewer, ChainId,\n ChainQualifiedConfig, Count,\n FinalizationViewer,\n ForkHistory,\n MempoolViewer, NetworkStakeStepRewardsByPositionViewer, NetworkStakeViewer, Position,\n SingleTimeConfig,\n StakeViewer,\n StepIdentity, StepIdentityString,\n StepIndex,\n StepViewer,\n TimeDurations,\n TimeSyncViewer,\n TransactionViewer,\n XL1BlockNumber, XL1BlockRange, XL1RangeMultipliers,\n XyoViewer,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AccountBalanceViewerMoniker,\n asAttoXL1,\n asXL1BlockRange,\n BlockViewerMoniker,\n ChainContractViewerMoniker,\n FinalizationViewerMoniker,\n MempoolViewerMoniker, NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeViewerMoniker, StakeViewerMoniker, StepViewerMoniker, TimeSyncViewerMoniker, TransactionViewerMoniker, XYO_NETWORK_STAKING_ADDRESS,\n XYO_ZERO_ADDRESS,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n allStakersForStep,\n blockRangeSteps,\n creatableProvider,\n CreatableProviderParams,\n externalBlockRangeFromStep,\n externalBlockRangeFromXL1BlockRange,\n networkStakeStepRewardPositionWeight,\n stepRewardTotal,\n toStepIdentityString,\n weightedStakeForRangeByPosition,\n withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleXyoViewer. */\nexport interface SimpleXyoViewerParams extends CreatableProviderParams {\n initRewardsCache?: boolean\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Full-featured XYO viewer providing access to blocks, transactions, staking, rewards, and account balances. */\n@creatableProvider()\nexport class SimpleXyoViewer<TParams extends SimpleXyoViewerParams = SimpleXyoViewerParams> extends AbstractCreatableProvider<TParams> implements XyoViewer {\n static readonly defaultMoniker = XyoViewerMoniker\n\n static readonly dependencies = [\n AccountBalanceViewerMoniker,\n BlockViewerMoniker,\n FinalizationViewerMoniker,\n MempoolViewerMoniker,\n NetworkStakeViewerMoniker,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n StakeViewerMoniker,\n StepViewerMoniker,\n TimeSyncViewerMoniker,\n ]\n\n static readonly monikers = [XyoViewerMoniker]\n moniker = SimpleXyoViewer.defaultMoniker\n\n protected _tracer: Tracer | undefined\n\n private _accountBalanceViewer?: AccountBalanceViewer\n private _blockViewer?: BlockViewer\n private _chainContractViewer?: ChainContractViewer\n private _chainId!: ChainId\n private _finalizationViewer!: FinalizationViewer\n private _mempoolViewer?: MempoolViewer\n private _networkStakeViewer?: NetworkStakeViewer\n private _networkStepRewardsByPositionViewer?: NetworkStakeStepRewardsByPositionViewer\n private _rewardMultipliers?: XL1RangeMultipliers\n private _stakeViewer?: StakeViewer\n private _stepViewer?: StepViewer\n private _timeSyncViewer?: TimeSyncViewer\n private _transaction?: TransactionViewer\n\n get account() {\n return { balance: this._accountBalanceViewer! }\n }\n\n get block() {\n return this._blockViewer!\n }\n\n get chainContractViewer() {\n return this._chainContractViewer!\n }\n\n get finalization() {\n return this._finalizationViewer!\n }\n\n get mempool() {\n return this._mempoolViewer!\n }\n\n get networkStake() {\n return this._networkStakeViewer!\n }\n\n get stake() {\n return this._stakeViewer!\n }\n\n get step() {\n return this._stepViewer!\n }\n\n get time() {\n return this._timeSyncViewer!\n }\n\n get transaction() {\n return this._transaction!\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get initRewardsCache() {\n return this.params.initRewardsCache ?? true\n }\n\n protected get networkStepRewardsByPositionViewer() {\n return this._networkStepRewardsByPositionViewer!\n }\n\n protected get rewardMultipliers() {\n this._rewardMultipliers = this._rewardMultipliers ?? this.params.rewardMultipliers ?? {}\n return this._rewardMultipliers\n }\n\n async accountBalance(address: Address, config: ChainQualifiedConfig = {}) {\n return await this.account.balance.accountBalance(address, config)\n }\n\n async accountBalanceHistory(address: Address, config: ChainQualifiedConfig = {}) {\n return await this.account.balance.accountBalanceHistory(address, config)\n }\n\n async blockByHash(hash: Hash) {\n return await this.block.blockByHash(hash)\n }\n\n async blockByNumber(blockNumber: XL1BlockNumber) {\n return await this.block.blockByNumber(blockNumber)\n }\n\n async blocksByHash(hash: Hash, limit: number = 10) {\n return await this.block.blocksByHash(hash, limit)\n }\n\n async blocksByNumber(blockNumber: XL1BlockNumber, limit: number = 10) {\n return await this.block.blocksByNumber(blockNumber, limit)\n }\n\n async chainId(): Promise<ChainId>\n async chainId(blockNumber: XL1BlockNumber): Promise<ChainId>\n async chainId(blockNumber: 'latest'): Promise<ChainId>\n async chainId(blockNumber: XL1BlockNumber | 'latest' = 'latest'): Promise<ChainId> {\n return await this.spanAsync('SimpleXyoViewer:chainId', async () => {\n const chainId = assertEx(\n blockNumber === 'latest' ? this._chainId : await this.chainContractViewer.chainIdAtBlockNumber(blockNumber),\n () => `Could not find block for chainId at block ${blockNumber}`,\n )\n return chainId\n }, this.context)\n }\n\n override async createHandler() {\n await super.createHandler()\n this._accountBalanceViewer = await this.locator.getInstance<AccountBalanceViewer>(AccountBalanceViewerMoniker)\n this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)\n this._chainContractViewer = await this.locator.getInstance<ChainContractViewer>(ChainContractViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance<FinalizationViewer>(FinalizationViewerMoniker)\n this._mempoolViewer = await this.locator.getInstance<MempoolViewer>(MempoolViewerMoniker)\n this._networkStakeViewer = await this.locator.getInstance<NetworkStakeViewer>(NetworkStakeViewerMoniker)\n this._networkStepRewardsByPositionViewer\n = await this.locator.getInstance<NetworkStakeStepRewardsByPositionViewer>(NetworkStakeStepRewardsByPositionViewerMoniker)\n this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)\n this._stepViewer = await this.locator.getInstance<StepViewer>(StepViewerMoniker)\n this._timeSyncViewer = await this.locator.getInstance<TimeSyncViewer>(TimeSyncViewerMoniker)\n this._transaction = await this.locator.getInstance<TransactionViewer>(TransactionViewerMoniker)\n this._chainId = await this._chainContractViewer.chainId()\n }\n\n async currentBlock() {\n return await this.block.currentBlock()\n }\n\n async currentBlockHash() {\n return await this.block.currentBlockHash()\n }\n\n async currentBlockNumber() {\n return await this.block.currentBlockNumber()\n }\n\n forkHistory(): Promisable<ForkHistory> {\n throw new Error('Method [forkHistory] not implemented.')\n }\n\n networkStakeStepRewardAddressHistory(_address: Address): Promise<Record<Address, AttoXL1>> {\n throw new Error('Method [networkStakeStepRewardAddressHistory] not implemented.')\n }\n\n networkStakeStepRewardAddressReward(_context: StepIdentity, _address: Address): Promise<Record<Address, AttoXL1>> {\n throw new Error('Method [networkStakeStepRewardAddressReward] not implemented.')\n }\n\n networkStakeStepRewardAddressShare(_context: StepIdentity, _address: Address): Promise<[bigint, bigint]> {\n throw new Error('Method [networkStakeStepRewardAddressShare] not implemented.')\n }\n\n networkStakeStepRewardClaimedByAddress(_address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardClaimedByAddress] not implemented.')\n }\n\n async networkStakeStepRewardForPosition(position: number, range: XL1BlockRange): Promise<[AttoXL1, AttoXL1]> {\n const cacheKey = `${position}|${range[0]}-${range[1]}`\n return await withContextCacheResponse(this.context, 'SimpleXyoViewer:networkStakeStepRewardForPosition', cacheKey, async () => {\n const externalRange = await externalBlockRangeFromXL1BlockRange(this.context, this.block, range)\n const positionCount = await this.stake.stakeEvents.positionCount(externalRange)\n if (positionCount === 0) {\n return [asAttoXL1(0n), asAttoXL1(0n)]\n }\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7])\n const rewards = await Promise.all(steps.map(step => this.networkStakeStepRewardForStepForPosition(step, position)))\n const positionReward = asAttoXL1(rewards.reduce((a, b) => a + b[0], 0n))\n const totalReward = asAttoXL1(rewards.reduce((a, b) => a + b[1], 0n))\n return [positionReward, totalReward]\n })\n }\n\n async networkStakeStepRewardForStep(stepContext: StepIdentity): Promise<AttoXL1> {\n return await stepRewardTotal(this.context, this.block, stepContext, this.rewardMultipliers)\n }\n\n async networkStakeStepRewardForStepForPosition(stepIdentity: StepIdentity, position: number): Promise<[AttoXL1, AttoXL1]> {\n const stepIdentityString = toStepIdentityString(stepIdentity)\n const cacheKey = `${stepIdentityString}|${position}`\n return await withContextCacheResponse(this.context, 'SimpleXyoViewer:networkStakeStepRewardForStepForPosition', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(this.context, this.block, stepIdentity)\n const stake = await this.stakeById(position)\n const numerator = stake.staked === XYO_NETWORK_STAKING_ADDRESS\n ? await weightedStakeForRangeByPosition(this.context, this.block, this.stake.stakeEvents, range, XYO_NETWORK_STAKING_ADDRESS, position)\n : 0n\n\n const denominator = await this.stepWeightedDenominator(stepIdentity)\n const totalReward = await this.networkStakeStepRewardForStep(stepIdentity)\n const positionReward = asAttoXL1(denominator > 0n ? totalReward * numerator / denominator : 0n)\n const result: [AttoXL1, AttoXL1] = [positionReward, totalReward]\n return result\n })\n }\n\n async networkStakeStepRewardPoolRewards(step: StepIdentity): Promise<Record<Address, AttoXL1>> {\n const stakes = await this.stake.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS)\n const rewards: [Address, [AttoXL1, AttoXL1]][] = []\n for (const stake of stakes) {\n rewards.push([stake.staker, (await this.networkStakeStepRewardForStepForPosition(\n step,\n stake.id,\n ))])\n }\n const result: Record<Address, AttoXL1> = {}\n for (const [staker, reward] of rewards) {\n result[staker] = asAttoXL1((result[staker] ?? 0n) + reward[0])\n }\n const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v > 0n))\n return filtered\n }\n\n networkStakeStepRewardPoolShares(_context: StepIdentity): Promise<Record<Address, bigint>> {\n throw new Error('Method [networkStakeStepRewardPoolShares] not implemented.')\n }\n\n async networkStakeStepRewardPositionWeight(stepContext: StepIdentity, position: number): Promise<bigint> {\n return await networkStakeStepRewardPositionWeight(this.context, this.block, this.stake.stakeEvents, stepContext, position)\n }\n\n networkStakeStepRewardPotentialPositionLoss(_context: StepIdentity, _position: number): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardPotentialPositionLoss] not implemented.')\n }\n\n networkStakeStepRewardRandomizer(_context: StepIdentity): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardRandomizer] not implemented.')\n }\n\n async networkStakeStepRewardStakerCount(stepContext: StepIdentity): Promise<number> {\n return Object.keys(await allStakersForStep(\n this.context,\n this.block,\n this.stake.stakeEvents,\n stepContext,\n XYO_NETWORK_STAKING_ADDRESS,\n )).length\n }\n\n networkStakeStepRewardUnclaimedByAddress(_address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardUnclaimedByAddress] not implemented.')\n }\n\n networkStakeStepRewardWeightForAddress(_context: StepIdentity, _address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardWeightForAddress] not implemented.')\n }\n\n async networkStakeStepRewardsForPosition(position: number, range: XL1BlockRange): Promise<Record<StepIdentityString, [AttoXL1, AttoXL1]>> {\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7, 8])\n const rewards = await Promise.all(steps.map(async (step) => {\n return [toStepIdentityString(step), await this.networkStakeStepRewardForStepForPosition(step, position)] as [StepIdentityString, [AttoXL1, AttoXL1]]\n }))\n const result: Record<StepIdentityString, [AttoXL1, AttoXL1]> = {}\n for (const [step, reward] of rewards) {\n result[step] = reward\n }\n const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v[0] > 0n))\n return filtered\n }\n\n async networkStakeStepRewardsForRange(range: XL1BlockRange): Promise<AttoXL1> {\n return await this.spanAsync('networkStakeStepRewardsForRange', async () => {\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7, 8])\n const rewards = await Promise.all(steps.map(async (step) => {\n return await this.networkStakeStepRewardForStep(step)\n }))\n return asAttoXL1(rewards.reduce((a, b) => a + b, 0n))\n }, this.context)\n }\n\n async networkStakeStepRewardsForStepLevel(stepLevel: number, range: XL1BlockRange): Promise<AttoXL1> {\n const steps = blockRangeSteps(range, [stepLevel])\n const rewards = await Promise.all(steps.map(async (step) => {\n return await this.networkStakeStepRewardForStep(step)\n }))\n return asAttoXL1(rewards.reduce((a, b) => a + b, 0n))\n }\n\n payloadByHash(_hash: Hash): Promisable<WithHashMeta<Payload> | null> {\n throw new Error('Method [payloadByHash] not implemented.')\n }\n\n payloadsByHash(_hashes: Hash[]): Promisable<WithHashMeta<Payload>[]> {\n throw new Error('Method [payloadsByHash] not implemented.')\n }\n\n async rate(range: XL1BlockRange, timeUnit?: keyof TimeDurations): Promise<BlockRate> {\n return await this.block.rate(range, timeUnit)\n }\n\n async stakeById(id: number): Promise<Position> {\n return await this.stake.stakeById(id)\n }\n\n async stakeByStaker(staker: Address, slot: number): Promise<Position> {\n return await this.stake.stakeByStaker(staker, slot)\n }\n\n async stakedByStaker(staker: Address): Promise<Address[]> {\n const result: Set<Address> = new Set()\n let slot = 0\n while (true) {\n try {\n const ethStake = await this.stake.stakeByStaker(staker, slot)\n result.add(toAddress(ethStake.staked))\n slot++\n } catch {\n break\n }\n }\n return [...result]\n }\n\n async stakesByStaked(staked: Address): Promise<Position[]> {\n return await this.stake.stakesByStaked(staked)\n }\n\n async stakesByStaker(staker: Address): Promise<Position[]> {\n return await this.stake.stakesByStaker(staker)\n }\n\n async stepSizeRate(start: XL1BlockNumber, stepSizeIndex: StepIndex, count?: Count, timeUnit?: keyof TimeDurations): Promise<BlockRate> {\n return await this.block.stepSizeRate(start, stepSizeIndex, count, timeUnit)\n }\n\n async timeDurationRate(\n timeConfig: SingleTimeConfig,\n startBlock: XL1BlockNumber,\n timeUnit?: keyof TimeDurations,\n toleranceMs?: number,\n maxAttempts?: number,\n ): Promise<BlockRate> {\n return await this.block.timeDurationRate(timeConfig, startBlock, timeUnit, toleranceMs, maxAttempts)\n }\n\n async transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number = 0) {\n return await this.transaction.byBlockHashAndIndex(blockHash, transactionIndex)\n }\n\n async transactionByBlockNumberAndIndex(blockNumber: XL1BlockNumber, transactionIndex: number = 0) {\n return await this.transaction.byBlockNumberAndIndex(blockNumber, transactionIndex)\n }\n\n async transactionByHash(transactionHash: Hash) {\n return await this.transaction.byHash(transactionHash)\n }\n\n protected override async startHandler() {\n try {\n const currentBlockNumber = await this.currentBlockNumber()\n // initialize functions that have slow initial call\n await this.account.balance.accountBalance(XYO_ZERO_ADDRESS)\n if (this.initRewardsCache) {\n const externalRange = await externalBlockRangeFromXL1BlockRange(\n this.context,\n this.block,\n asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }),\n )\n const positionCount = await this.stake.stakeEvents.positionCount(externalRange)\n this.logger?.log(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n const positions = Array.from(\n { length: positionCount },\n (_, i) => i,\n )\n while (positions.length > 0) {\n const batch = positions.splice(0, 10)\n this.logger?.log(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition for positions ${batch.at(0)} - ${batch.at(-1)}`)\n await Promise.all(batch.map(async (_, position) => await this.networkStakeStepRewardForPosition(\n position,\n asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }),\n )))\n }\n this.logger?.log(`SimpleXyoViewer: Precomputed networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n }\n } catch (ex) {\n this.logger?.error(`SimpleXyoViewer: Error during startHandler initialization: ${(ex as Error).message}`)\n this.logger?.error((ex as Error).stack ?? '<No Stack>')\n throw ex\n }\n }\n\n protected async stepWeightedDenominator(stepIdentity: StepIdentity, staked?: Address): Promise<bigint> {\n const cacheKey = toStepIdentityString(stepIdentity)\n return await withContextCacheResponse(this.context, 'NodeXyoViewer-networkStakeStepRewardForStepForPosition-denominator', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(this.context, this.block, stepIdentity)\n return await weightedStakeForRangeByPosition(this.context, this.block, this.stake.stakeEvents, range, staked)\n })\n }\n}\n","import type { AccountInstance } from '@xyo-network/sdk-js'\nimport type { Position } from '@xyo-network/xl1-protocol-lib'\nimport type { CreatableProviderContextType, ProviderFactoryLocator } from '@xyo-network/xl1-protocol-sdk'\nimport {\n SimpleStakeEventsViewer,\n SimpleStakeViewer,\n SimpleXyoGateway, SimpleXyoGatewayRunner,\n SimpleXyoSigner,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleXyoConnectionRunner } from './SimpleXyoConnectionRunner.ts'\n\n/** Parameters for configuring a gateway runner locator. */\nexport interface GatewayRunnerLocatorParams {\n /**\n * The account instance to be used to register a SimpleXyoSigner with the locator\n */\n signerAccount?: AccountInstance\n}\n\n/**\n * Registers a SimpleXyoGatewayRunner with the locator if a signerAccount is provided in params\n * @param locator The ProviderFactoryLocator to register the signer with\n * @param params The SignerLocatorParams containing the optional signerAccount\n * @returns The updated ProviderFactoryLocator\n * @deprecated Use registerGatewayWithLocator instead\n */\nexport const registerGatewayRunnerWithLocatorIfProvided = (\n locator: ProviderFactoryLocator<CreatableProviderContextType, string[]>,\n params?: GatewayRunnerLocatorParams,\n) => {\n const account = params?.signerAccount\n if (account) {\n locator.registerMany([\n SimpleXyoSigner.factory<SimpleXyoSigner>(SimpleXyoSigner.dependencies, { account }),\n SimpleXyoGatewayRunner.factory<SimpleXyoGatewayRunner>(SimpleXyoGatewayRunner.dependencies, {}),\n ])\n }\n return locator\n}\n\n/**\n * Registers a SimpleXyoGateway and SimpleXyoConnection with the locator\n * @param locator The ProviderFactoryLocator to register the signer with\n * @param account Optional AccountInstance to register a SimpleXyoSigner and SimpleXyoGatewayRunner with the locator\n * @returns The updated ProviderFactoryLocator\n */\nexport const registerGatewayWithLocator = (\n locator: ProviderFactoryLocator,\n account?: AccountInstance,\n) => {\n locator.registerMany([\n SimpleXyoConnectionRunner.factory<SimpleXyoConnectionRunner>(SimpleXyoConnectionRunner.dependencies, {}),\n SimpleXyoGateway.factory<SimpleXyoGateway>(SimpleXyoGateway.dependencies, {}),\n ])\n if (account) {\n locator.registerMany([\n SimpleXyoSigner.factory<SimpleXyoSigner>(SimpleXyoSigner.dependencies, { account }),\n SimpleXyoGatewayRunner.factory<SimpleXyoGatewayRunner>(SimpleXyoGatewayRunner.dependencies, {}),\n ])\n }\n return locator\n}\n\n/**\n * Registers a SimpleStakeViewer with the locator\n * @param locator The ProviderFactoryLocator to register the signer with\n * @param positions The positions to be used by the SimpleStakeViewer and SimpleStakeEventsViewer instances\n * @returns The updated ProviderFactoryLocator\n */\nexport const registerSimpleStakeViewerWithLocator = (\n locator: ProviderFactoryLocator,\n positions: Position[],\n) => {\n locator.registerMany([\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions }),\n ])\n return locator\n}\n","import { XyoViewer, XyoViewerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport {\n type DataLakeRunner, DataLakeRunnerMoniker, type DataLakeViewer, DataLakeViewerMoniker,\n type XyoConnection, XyoConnectionMoniker, type XyoNetwork, type XyoRunner, XyoRunnerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider, creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleXyoConnectionRunner. */\nexport interface SimpleXyoConnectionRunnerParams extends CreatableProviderParams {\n\n}\n\n/** XYO connection provider with both runner (write) and viewer (read) capabilities. */\n@creatableProvider()\nexport class SimpleXyoConnectionRunner<TParams extends SimpleXyoConnectionRunnerParams = SimpleXyoConnectionRunnerParams> extends\n AbstractCreatableProvider<TParams> implements XyoConnection {\n static readonly defaultMoniker = XyoConnectionMoniker\n static readonly dependencies = [XyoRunnerMoniker, XyoViewerMoniker]\n static readonly monikers = [XyoConnectionMoniker]\n moniker = SimpleXyoConnectionRunner.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 { assertEx } from '@xylabs/sdk-js'\nimport {\n FinalizationViewer,\n FinalizationViewerMoniker,\n NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n NetworkStakeViewer, NetworkStakeViewerMoniker,\n StakeTotalsViewer,\n StakeTotalsViewerMoniker,\n StakeViewer,\n StakeViewerMoniker,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n creatableProvider, CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleNetworkStakeViewer. */\nexport interface SimpleNetworkStakeViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Provider that views network-wide staking information including step rewards and active stake totals. */\n@creatableProvider()\nexport class SimpleNetworkStakeViewer extends AbstractCreatableProvider<SimpleNetworkStakeViewerParams> implements NetworkStakeViewer {\n static readonly defaultMoniker = NetworkStakeViewerMoniker\n static readonly dependencies = [NetworkStakeStepRewardsViewerMoniker]\n static readonly monikers = [NetworkStakeViewerMoniker]\n moniker = SimpleNetworkStakeViewer.defaultMoniker\n\n private _finalizationViewer!: FinalizationViewer\n private _stake!: StakeViewer\n private _stakeTotals!: StakeTotalsViewer\n private _stepRewardsViewer?: NetworkStakeStepRewardsViewer\n\n get stepRewards(): NetworkStakeStepRewardsViewer {\n return assertEx(this._stepRewardsViewer, () => 'Step rewards viewer not initialized')\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get rewardMultipliers() {\n return this.params.rewardMultipliers\n }\n\n protected get stake() {\n return this._stake\n }\n\n protected get stakeTotals() {\n return this._stakeTotals\n }\n\n async active(blockNumber?: number): Promise<[bigint, number]> {\n const resolvedBlockNumber = blockNumber ?? (await this.finalizationViewer.headNumber())\n return [await this.stakeTotals.active(resolvedBlockNumber), resolvedBlockNumber]\n }\n\n override async createHandler() {\n await super.createHandler()\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stake = await this.locator.getInstance(StakeViewerMoniker)\n this._stakeTotals = await this.locator.getInstance(StakeTotalsViewerMoniker)\n this._stepRewardsViewer = await this.locator.getInstance(NetworkStakeStepRewardsViewerMoniker)\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport { isArray } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByPositionViewer,\n NetworkStakeStepRewardsByPositionViewerOptions,\n StakeViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByPositionViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './primitives/index.ts'\n\n/** Configuration params for SimpleStepRewardsByPositionViewer. */\nexport interface SimpleStepRewardsByPositionViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Viewer for network stake step rewards broken down by staking position. */\n@creatableProvider()\nexport class SimpleStepRewardsByPositionViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByPositionViewerParams> implements NetworkStakeStepRewardsByPositionViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByPositionViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByPositionViewerMoniker]\n moniker = SimpleStepRewardsByPositionViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer!\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer!\n }\n\n protected get stakeViewer() {\n return this._stakeViewer!\n }\n\n async bonus({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n const total = await this.total({ range, positions })\n const earned = await this.earned({ range, positions })\n const result: Record<number, AttoXL1> = {}\n for (const pos of Object.keys(total).map(Number)) {\n result[pos] = asAttoXL1(total[pos] - (earned[pos] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByPositionViewerOptions | undefined): Promisable<Record<number, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker)\n }\n\n async earned({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n return await this.calculateRewards({ range, positions })\n }\n\n async total({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n return await this.calculateRewards({ range, positions }, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promisable<Record<number, AttoXL1>> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected async calculateRewards(\n { range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {},\n rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<Record<number, AttoXL1>> {\n const result: Record<number, AttoXL1> = {}\n const steps = blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.head())[1]],\n { name: 'NodeStepRewardsByPositionViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of steps) {\n if (isArray(positions)) {\n for (const positionId of positions) {\n const position = await this.stakeViewer.stakeById(positionId)\n result[positionId] = asAttoXL1((result[positionId] ?? 0n) + (await networkStakeStepRewardEarnedForPosition(\n this.context,\n this.blockViewer,\n this.stakeViewer.stakeEvents,\n step,\n position,\n rewardMultipliers,\n ))[0])\n }\n }\n }\n return result\n }\n}\n","import type {\n BlockViewer,\n CachingContext,\n StakeViewer,\n StepIdentity, XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol-lib'\nimport { withContextCacheResponse } from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './networkStakeStepRewardEarnedForPosition.ts'\n\n/** Calculates the total earned step reward across all network staking positions for a given step. */\nexport async function networkStakeStepRewardEarned(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeViewer: StakeViewer,\n stepIdentity: StepIdentity,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const cacheKey = `${stepIdentity.block}|${stepIdentity.step}`\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarned', cacheKey, async () => {\n const positions = (await stakeViewer.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS))\n const results = await Promise.all(positions.map((pos) => {\n return networkStakeStepRewardEarnedForPosition(\n context,\n blockViewer,\n stakeViewer.stakeEvents,\n stepIdentity,\n pos,\n rewardMultipliers,\n )\n }))\n\n const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n)\n\n const result: [bigint, bigint] = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n]\n return result\n })\n}\n","import type {\n BlockViewer,\n CachingContext,\n Position,\n StakeEventsViewer,\n StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol-lib'\nimport {\n externalBlockRangeFromStep, stepRewardTotal, weightedStakeForRangeByPosition, withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Calculates the step reward earned by a specific staking position, returning [positionReward, totalReward]. */\nexport async function networkStakeStepRewardEarnedForPosition(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeEventsViewer: StakeEventsViewer,\n stepIdentity: StepIdentity,\n position: Position,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const cacheKey = `${stepIdentity.block}|${stepIdentity.step}|${position.id}`\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarnedForPosition', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(context, blockViewer, stepIdentity)\n const numerator = position.staked === XYO_NETWORK_STAKING_ADDRESS\n ? await weightedStakeForRangeByPosition(\n context,\n blockViewer,\n stakeEventsViewer,\n range,\n XYO_NETWORK_STAKING_ADDRESS,\n position.id,\n )\n : 0n\n\n const denominator = await weightedStakeForRangeByPosition(\n context,\n blockViewer,\n stakeEventsViewer,\n range,\n )\n\n const totalReward = await stepRewardTotal(context, blockViewer, stepIdentity, rewardMultipliers)\n const positionReward = denominator > 0n ? totalReward * numerator / denominator : 0n\n const result: [bigint, bigint] = [positionReward, totalReward]\n return result\n })\n}\n","import type { Address } from '@xylabs/sdk-js'\nimport type {\n BlockViewer,\n CachingContext,\n StakeViewer,\n StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol-lib'\nimport {\n toStepIdentityString,\n withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './networkStakeStepRewardEarnedForPosition.ts'\n\n/** Calculates the total step reward earned by a specific staker across all their network staking positions. */\nexport async function networkStakeStepRewardEarnedForStaker(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeViewer: StakeViewer,\n stepIdentity: StepIdentity,\n staker: Address,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const stepId = toStepIdentityString(stepIdentity)\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarnedForStaker', `${stepId}-${staker}`, async () => {\n const positions = (await stakeViewer.stakesByStaker(staker)).filter(pos => pos.staked === XYO_NETWORK_STAKING_ADDRESS)\n const results = await Promise.all(positions.map((pos) => {\n return networkStakeStepRewardEarnedForPosition(\n context,\n blockViewer,\n stakeViewer.stakeEvents,\n stepIdentity,\n pos,\n rewardMultipliers,\n )\n }))\n\n const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n)\n\n const result: [bigint, bigint] = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n]\n return result\n })\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport { isArray } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByStakerViewer,\n NetworkStakeStepRewardsByStakerViewerOptions,\n StakeViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByStakerViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForStaker } from './primitives/index.ts'\n\n/** Configuration params for SimpleStepRewardsByStakerViewer. */\nexport interface SimpleStepRewardsByStakerViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Viewer for network stake step rewards broken down by staker address. */\n@creatableProvider()\nexport class SimpleStepRewardsByStakerViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByStakerViewerParams> implements NetworkStakeStepRewardsByStakerViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByStakerViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByStakerViewerMoniker]\n moniker = SimpleStepRewardsByStakerViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get stakeViewer() {\n return this._stakeViewer\n }\n\n async bonus({ range, stakers }: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n const total = await this.total({ range, stakers })\n const earned = await this.earned({ range, stakers })\n const result: Record<Address, AttoXL1> = {}\n for (const staker of Object.keys(total) as Address[]) {\n result[staker] = asAttoXL1(total[staker] - (earned[staker] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByStakerViewerOptions | undefined): Promisable<Record<Address, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker)\n }\n\n async earned(options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n return await this.calculateRewards(options)\n }\n\n async total(options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n return await this.calculateRewards(options, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promisable<Record<Address, AttoXL1>> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected async calculateRewards(\n { range, stakers }: NetworkStakeStepRewardsByStakerViewerOptions = {},\n rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<Record<Address, AttoXL1>> {\n const result: Record<Address, AttoXL1> = {}\n const steps = blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.headNumber())],\n { name: 'NodeStepRewardsByStakerViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of steps) {\n if (isArray(stakers)) {\n for (const staker of stakers) {\n result[staker] = asAttoXL1((result[staker] ?? 0n) + (await networkStakeStepRewardEarnedForStaker(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n staker,\n rewardMultipliers,\n ))[0])\n }\n }\n }\n return result\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerOptions,\n StakeViewer,\n StepIdentityString,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByStepViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider, toStepIdentityString,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarned } from './primitives/index.ts'\n\n/** Configuration params for SimpleStepRewardsByStepViewer. */\nexport interface SimpleStepRewardsByStepViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Viewer for network stake step rewards broken down by step identity. */\n@creatableProvider()\nexport class SimpleStepRewardsByStepViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByStepViewerParams> implements NetworkStakeStepRewardsByStepViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByStepViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByStepViewerMoniker]\n moniker = SimpleStepRewardsByStepViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get stakeViewer() {\n return this._stakeViewer\n }\n\n async bonus({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const total = await this.total({ range, steps })\n const earned = await this.earned({ range, steps })\n const result: Record<StepIdentityString, AttoXL1> = {}\n for (const stepString of Object.keys(total) as StepIdentityString[]) {\n result[stepString] = asAttoXL1(total[stepString] - (earned[stepString] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByStepViewerOptions | undefined): Promisable<Record<StepIdentityString, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)\n }\n\n async earned({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const result: Record<StepIdentityString, AttoXL1> = {}\n const resolvedSteps = steps ?? blockRangeSteps(asXL1BlockRange(\n range ?? [0, await this.finalizationViewer.headNumber()],\n { name: 'NodeStepRewardsByStepViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of resolvedSteps) {\n const stepIdentityString = toStepIdentityString(step)\n result[stepIdentityString] = asAttoXL1((result[stepIdentityString] ?? 0n) + (await networkStakeStepRewardEarned(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n ))[0])\n }\n return result\n }\n\n async total({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const result: Record<StepIdentityString, AttoXL1> = {}\n const resolvedSteps = steps ?? blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.head())[1]],\n { name: 'NodeStepRewardsByStepViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of resolvedSteps) {\n const stepIdentityString = toStepIdentityString(step)\n result[stepIdentityString] = asAttoXL1((result[stepIdentityString] ?? 0n)\n + (await networkStakeStepRewardEarned(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n this.rewardMultipliers,\n ))[0])\n }\n return result\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByStepViewerOptions = {}): Promisable<Record<StepIdentityString, AttoXL1>> {\n throw new Error('Method [unclaimed] ot implemented.')\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n NetworkStakeStepRewardsRangeOptions,\n NetworkStakeStepRewardsTotalViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport { asAttoXL1, NetworkStakeStepRewardsTotalViewerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleStepRewardsTotalViewer. */\nexport interface SimpleStepRewardsTotalViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Viewer for aggregated total network stake step rewards across all positions. */\n@creatableProvider()\nexport class SimpleStepRewardsTotalViewer extends\n AbstractCreatableProvider<SimpleStepRewardsTotalViewerParams> implements NetworkStakeStepRewardsTotalViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsTotalViewerMoniker\n static readonly dependencies = []\n static readonly monikers = [NetworkStakeStepRewardsTotalViewerMoniker]\n moniker = SimpleStepRewardsTotalViewer.defaultMoniker\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n async bonus({ range }: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n const total = await this.total({ range })\n const earned = await this.earned({ range })\n return asAttoXL1(total - earned)\n }\n\n claimed(_options?: NetworkStakeStepRewardsRangeOptions | undefined): Promisable<AttoXL1> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n async earned(options: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n return await this.calculateRewards(options)\n }\n\n async total(options: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n return await this.calculateRewards(options, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsRangeOptions = {}): Promisable<AttoXL1> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected calculateRewards(\n _options: NetworkStakeStepRewardsRangeOptions = {},\n _rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<AttoXL1> {\n throw new Error('Method [calculateRewards] not implemented.')\n }\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport {\n BlockViewer,\n BlockViewerMoniker,\n NetworkStakeStepRewardsByPositionViewer,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeStepRewardsByStakerViewer,\n NetworkStakeStepRewardsByStakerViewerMoniker,\n NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerMoniker,\n NetworkStakeStepRewardsTotalViewer,\n NetworkStakeStepRewardsViewer, NetworkStakeStepRewardsViewerMoniker, type XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleStepRewardsByPositionViewer } from './SimpleStepRewardsByPositionViewer.ts'\nimport { SimpleStepRewardsByStakerViewer } from './SimpleStepRewardsByStakerViewer.ts'\nimport { SimpleStepRewardsByStepViewer } from './SimpleStepRewardsByStepViewer.ts'\n\n/** Configuration params for SimpleStepRewardsViewer. */\nexport interface NodeStepRewardsViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Composite viewer for network stake step rewards, providing access to position, staker, and step sub-viewers. */\n@creatableProvider()\nexport class SimpleStepRewardsViewer extends AbstractCreatableProvider<NodeStepRewardsViewerParams> implements NetworkStakeStepRewardsViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsViewerMoniker\n\n static readonly dependencies = [\n BlockViewerMoniker,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeStepRewardsByStakerViewerMoniker,\n NetworkStakeStepRewardsByStepViewerMoniker,\n ]\n\n static readonly monikers = [NetworkStakeStepRewardsViewerMoniker]\n moniker = SimpleStepRewardsViewer.defaultMoniker\n\n private _blockViewer?: BlockViewer\n private _position?: SimpleStepRewardsByPositionViewer\n private _staker?: SimpleStepRewardsByStakerViewer\n private _step?: SimpleStepRewardsByStepViewer\n\n get position(): NetworkStakeStepRewardsByPositionViewer {\n return assertEx(this._position, () => 'Position viewer not initialized')\n }\n\n get staker(): NetworkStakeStepRewardsByStakerViewer {\n return assertEx(this._staker, () => 'Position viewer not initialized')\n }\n\n get step(): NetworkStakeStepRewardsByStepViewer {\n return assertEx(this._step, () => 'Step viewer not initialized')\n }\n\n get total(): NetworkStakeStepRewardsTotalViewer {\n throw new Error('Method [total] not implemented.')\n }\n\n protected get rewardMultipliers() {\n return this.params.rewardMultipliers\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)\n this._position = await this.locator.getInstance<SimpleStepRewardsByPositionViewer>(NetworkStakeStepRewardsByPositionViewerMoniker)\n this._staker = await this.locator.getInstance<SimpleStepRewardsByStakerViewer>(NetworkStakeStepRewardsByStakerViewerMoniker)\n this._step = await this.locator.getInstance<SimpleStepRewardsByStepViewer>(NetworkStakeStepRewardsByStepViewerMoniker)\n }\n\n protected override async startHandler(): Promise<void> {\n await super.startHandler()\n await assertEx(this._position, () => 'Position viewer not created').start()\n await assertEx(this._staker, () => 'Staker viewer not created').start()\n await assertEx(this._step, () => 'Step viewer not created').start()\n }\n}\n","import {\n type Address,\n type Promisable,\n} from '@xylabs/sdk-js'\nimport {\n BlockViewer,\n BlockViewerMoniker,\n NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n PagedPositionsOptions,\n PagedStakersOptions,\n Position,\n type PositionId, StakeEventsViewer, StakeEventsViewerMoniker, StakeViewer, StakeViewerMoniker, type StepIdentity, StepViewer, StepViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n externalBlockRangeFromStep,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleStepViewer. */\nexport interface SimpleStepViewerParams extends CreatableProviderParams {\n\n}\n\n/** Provider for viewing step-level staking data including positions, rewards, and stake weights. */\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 type {\n AccountInstance, ArchivistInstance, WithHashMeta,\n} from '@xyo-network/sdk-js'\nimport type { MapType } from '@xyo-network/xl1-protocol-lib'\nimport type {\n BalancesStepSummary, Config, TransfersStepSummary,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockViewer, SimpleFinalizationViewer, SimpleMempoolRunner, SimpleMempoolViewer,\n SimpleTimeSyncViewer, SimpleWindowedBlockViewer, SimpleXyoRunner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { TransportFactory } from '@xyo-network/xl1-rpc'\nimport {\n AccountBalanceViewerRpcSchemas, BlockViewerRpcSchemas, JsonRpcAccountBalanceViewer, JsonRpcBlockViewer,\n JsonRpcMempoolRunner, JsonRpcMempoolViewer, JsonRpcNetworkStakeStepRewardsViewer, JsonRpcNetworkStakeViewer, JsonRpcStakeTotalsViewer,\n JsonRpcTimeSyncViewer, JsonRpcXyoRunner, JsonRpcXyoViewer, MempoolRunnerRpcSchemas, MempoolViewerRpcSchemas, NetworkStakeViewerRpcSchemas,\n StakeTotalsViewerRpcSchemas, TimeSyncViewerRpcSchemas, XyoRunnerRpcSchemas, XyoViewerRpcSchemas,\n} from '@xyo-network/xl1-rpc'\n\nimport { registerGatewayWithLocator } from './registerHelpers.ts'\nimport { SimpleNetworkStakeViewer } from './SimpleNetworkStakeViewer.ts'\nimport {\n SimpleStepRewardsByPositionViewer, SimpleStepRewardsByStakerViewer, SimpleStepRewardsByStepViewer, SimpleStepRewardsTotalViewer, SimpleStepRewardsViewer,\n} from './SimpleStepRewards/index.ts'\nimport { SimpleStepViewer } from './SimpleStepViewer.ts'\nimport { SimpleXyoViewer } from './SimpleXyoViewer.ts'\n\n/** @deprecated Use locatorsFromConfig instead */\nexport function buildEmptyProviderLocator(config: Config) {\n return new ProviderFactoryLocator({\n config, singletons: {}, caches: {},\n })\n}\n\n/** @deprecated Use locatorsFromConfig instead */\nexport function buildSimpleProviderLocatorV2(config: Config, account?: AccountInstance) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const locator = buildEmptyProviderLocator(config)\n locator.registerMany([\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 ])\n return registerGatewayWithLocator(locator, account)\n}\n\n/** @deprecated Use locatorsFromConfig instead */\nexport async function buildJsonRpcProviderLocatorV2(config: Config, transportFactory: TransportFactory, account?: AccountInstance) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const locator = buildEmptyProviderLocator(config)\n 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 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 JsonRpcNetworkStakeStepRewardsViewer.factory<JsonRpcNetworkStakeStepRewardsViewer>(\n JsonRpcNetworkStakeStepRewardsViewer.dependencies,\n { transport: await transportFactory({}) },\n ),\n JsonRpcXyoRunner.factory<JsonRpcXyoRunner>(JsonRpcXyoRunner.dependencies, { transport: await transportFactory(XyoRunnerRpcSchemas) }),\n JsonRpcXyoViewer.factory<JsonRpcXyoViewer>(JsonRpcXyoViewer.dependencies, { transport: await transportFactory(XyoViewerRpcSchemas) }),\n ])\n return registerGatewayWithLocator(locator, account)\n}\n\n/** @deprecated Use locatorsFromConfig instead */\nexport interface BuildLocalProviderLocatorParamsV2 {\n account?: AccountInstance\n balancesSummaryMap: MapType<string, WithHashMeta<BalancesStepSummary>>\n finalizedArchivist: ArchivistInstance\n pendingBlocksArchivist: ArchivistInstance\n pendingTransactionsArchivist: ArchivistInstance\n transfersSummaryMap: MapType<string, WithHashMeta<TransfersStepSummary>>\n}\n\n/** @deprecated Use locatorsFromConfig instead */\n\n/** Builds a local provider locator v2 with the given configuration. */\nexport function buildLocalProviderLocatorV2(config: Config, params: BuildLocalProviderLocatorParamsV2) {\n const {\n account, pendingTransactionsArchivist, pendingBlocksArchivist, balancesSummaryMap, transfersSummaryMap, finalizedArchivist,\n } = params\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const locator = buildSimpleProviderLocatorV2(config, account)\n locator.registerMany([\n SimpleMempoolViewer.factory<SimpleMempoolViewer>(SimpleMempoolViewer.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleMempoolRunner.factory<SimpleMempoolRunner>(SimpleMempoolRunner.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleAccountBalanceViewer.factory<SimpleAccountBalanceViewer>(SimpleAccountBalanceViewer.dependencies, { balancesSummaryMap, transfersSummaryMap }),\n SimpleFinalizationViewer.factory<SimpleFinalizationViewer>(SimpleFinalizationViewer.dependencies, { finalizedArchivist }),\n SimpleBlockViewer.factory<SimpleBlockViewer>(SimpleBlockViewer.dependencies, { finalizedArchivist }),\n SimpleXyoRunner.factory<SimpleXyoRunner>(SimpleXyoRunner.dependencies, {}),\n SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 10_000, syncInterval: 10_000 }),\n SimpleXyoViewer.factory<SimpleXyoViewer>(SimpleXyoViewer.dependencies, {}),\n ])\n return locator\n}\n","import type { AccountInstance } from '@xyo-network/sdk-js'\nimport { XyoSignerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type { BaseConfigContext } from '@xyo-network/xl1-protocol-sdk'\nimport { ProviderFactoryLocator, SimpleXyoSigner } from '@xyo-network/xl1-protocol-sdk'\n\n/** Builds a SimpleXyoSigner v2 instance from a context and account. */\nexport async function buildSimpleXyoSignerV2(context: BaseConfigContext, account: AccountInstance) {\n const locator = new ProviderFactoryLocator(context)\n locator.register(\n SimpleXyoSigner.factory<SimpleXyoSigner>(SimpleXyoSigner.dependencies, { account }),\n )\n return await locator.getInstance<SimpleXyoSigner>(XyoSignerMoniker)\n}\n","import { isDefined } from '@xylabs/sdk-js'\nimport type {\n CreatableProviderFactory, ProviderFactoryLocatorInstance, RemoteConfig,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n ProviderFactoryLocator,\n RestDataLakeViewer,\n SimpleXyoGatewayRunner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { RpcTransport, XyoSignerRpcSchemas } from '@xyo-network/xl1-rpc'\nimport { JsonRpcXyoRunner, JsonRpcXyoSigner } from '@xyo-network/xl1-rpc'\n\nimport { SimpleXyoConnectionRunner } from '../SimpleXyoConnectionRunner.ts'\nimport type { BasicRemoteViewerLocatorOptions } from './basicRemoteViewerLocator.ts'\nimport { basicRemoteViewerLocator } from './basicRemoteViewerLocator.ts'\n\nexport interface BasicRemoteRunnerLocatorOptions extends BasicRemoteViewerLocatorOptions {\n additionalRunnerProviders?: CreatableProviderFactory[]\n signerFactory?: CreatableProviderFactory\n skipGatewayRunner?: boolean\n}\n\nexport async function basicRemoteRunnerLocator(\n name: string,\n remoteConfig: RemoteConfig,\n signerTransport: RpcTransport<XyoSignerRpcSchemas>,\n dataLakeEndpoint?: string,\n options?: BasicRemoteRunnerLocatorOptions,\n): Promise<ProviderFactoryLocatorInstance> {\n const remoteViewerLocator = await basicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, options)\n const locator = new ProviderFactoryLocator(remoteViewerLocator.context, {})\n\n const providers: CreatableProviderFactory[] = [\n SimpleXyoConnectionRunner.factory<SimpleXyoConnectionRunner>(SimpleXyoConnectionRunner.dependencies, {}),\n JsonRpcXyoRunner.factory<JsonRpcXyoRunner>(JsonRpcXyoRunner.dependencies, {}),\n ]\n\n if (!options?.skipGatewayRunner) {\n providers.push(\n SimpleXyoGatewayRunner.factory<SimpleXyoGatewayRunner>(SimpleXyoGatewayRunner.dependencies, {}),\n )\n }\n\n locator.registerMany([\n ...providers,\n ...options?.additionalRunnerProviders ?? [],\n ])\n\n if (options?.signerFactory) {\n locator.register(options.signerFactory)\n } else {\n locator.register(\n JsonRpcXyoSigner.factory<JsonRpcXyoSigner>(JsonRpcXyoSigner.dependencies, { transport: signerTransport }),\n )\n }\n\n if (isDefined(dataLakeEndpoint)) {\n const dataLakeViewerParams = { endpoint: dataLakeEndpoint }\n locator.register(RestDataLakeViewer.factory<RestDataLakeViewer>(RestDataLakeViewer.dependencies, dataLakeViewerParams))\n }\n\n locator.freeze()\n\n return locator\n}\n","import { isDefined } from '@xylabs/sdk-js'\nimport type { CreatableProviderFactory, RemoteConfig } from '@xyo-network/xl1-protocol-sdk'\nimport {\n ActorConfigZod,\n ProviderFactoryLocator,\n RestDataLakeViewer,\n SimpleTransactionViewer,\n SimpleXyoGateway,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleXyoConnectionViewer } from '../SimpleXyoConnectionViewer.ts'\nimport { commonLocatorFromConfig } from './commonLocatorFromConfig.ts'\nimport type { BlockValidators } from './remoteLocatorFromConfig.ts'\nimport { remoteLocatorFromConfig } from './remoteLocatorFromConfig.ts'\n\nexport interface BasicRemoteViewerLocatorOptions {\n additionalProviders?: CreatableProviderFactory[]\n validators?: BlockValidators\n}\n\nexport async function basicRemoteViewerLocator(\n name: string,\n remoteConfig: RemoteConfig,\n dataLakeEndpoint?: string,\n options?: BasicRemoteViewerLocatorOptions,\n) {\n const config = ActorConfigZod.parse({ name, remote: remoteConfig })\n const rootLocator = await commonLocatorFromConfig({\n config, singletons: {}, caches: {},\n })\n const remoteLocator = await remoteLocatorFromConfig(rootLocator.context, false, options?.validators)\n const locator = new ProviderFactoryLocator(remoteLocator.context, {})\n locator.registerMany([\n SimpleXyoGateway.factory<SimpleXyoGateway>(SimpleXyoGateway.dependencies, {}),\n SimpleXyoConnectionViewer.factory<SimpleXyoConnectionViewer>(SimpleXyoConnectionViewer.dependencies, {}),\n SimpleTransactionViewer.factory<SimpleTransactionViewer>(SimpleTransactionViewer.dependencies, {}),\n ...options?.additionalProviders ?? [],\n ])\n\n if (isDefined(dataLakeEndpoint)) {\n const dataLakeViewerParams = { endpoint: dataLakeEndpoint }\n locator.register(RestDataLakeViewer.factory<RestDataLakeViewer>(RestDataLakeViewer.dependencies, dataLakeViewerParams))\n }\n\n locator.freeze()\n\n return locator\n}\n","import { XyoViewer, XyoViewerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport {\n type DataLakeViewer, DataLakeViewerMoniker,\n type XyoConnection, XyoConnectionMoniker, type XyoNetwork,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider, creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleXyoConnectionViewer. */\nexport interface SimpleXyoConnectionViewerParams extends CreatableProviderParams {\n\n}\n\n/** Read-only XYO connection provider with viewer and optional data lake capabilities. */\n@creatableProvider()\nexport class SimpleXyoConnectionViewer<TParams extends SimpleXyoConnectionViewerParams = SimpleXyoConnectionViewerParams> extends\n AbstractCreatableProvider<TParams> implements XyoConnection {\n static readonly defaultMoniker = XyoConnectionMoniker\n static readonly dependencies = [XyoViewerMoniker]\n static readonly monikers = [XyoConnectionMoniker]\n moniker = SimpleXyoConnectionViewer.defaultMoniker\n\n protected _network?: XyoNetwork\n protected _storage?: DataLakeViewer\n protected _viewer?: XyoViewer\n\n get network(): XyoNetwork | undefined {\n return this._network\n }\n\n get storage(): 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._viewer = await this.locator.getInstance<XyoViewer>(XyoViewerMoniker)\n const dataLakeViewer = await this.locator.tryGetInstance<DataLakeViewer>(DataLakeViewerMoniker)\n this._storage = dataLakeViewer\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type { BaseConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-protocol-sdk'\nimport {\n ProviderFactoryLocator,\n SimpleBlockRewardViewer,\n SimpleTimeSyncViewer,\n SimpleTransactionValidationViewer,\n SimpleTransactionViewer,\n SimpleWindowedBlockViewer,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleNetworkStakeViewer } from '../SimpleNetworkStakeViewer.ts'\nimport {\n SimpleStepRewardsByPositionViewer,\n SimpleStepRewardsByStakerViewer,\n SimpleStepRewardsByStepViewer,\n SimpleStepRewardsTotalViewer,\n SimpleStepRewardsViewer,\n} from '../SimpleStepRewards/index.ts'\nimport { SimpleStepViewer } from '../SimpleStepViewer.ts'\n\nexport function commonLocatorFromConfig(\n context: BaseConfigContext,\n validateDepsOnRegister = false,\n): Promisable<ProviderFactoryLocatorInstance> {\n const locator: ProviderFactoryLocatorInstance = new ProviderFactoryLocator(context, {}, validateDepsOnRegister)\n\n locator.registerMany([\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 SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 1000, syncInterval: 10_000 }),\n SimpleBlockRewardViewer.factory<SimpleBlockRewardViewer>(SimpleBlockRewardViewer.dependencies, {}),\n SimpleTransactionViewer.factory<SimpleTransactionViewer>(SimpleTransactionViewer.dependencies, {}),\n SimpleTransactionValidationViewer.factory<SimpleTransactionValidationViewer>(SimpleTransactionValidationViewer.dependencies, {}),\n ])\n return locator\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n HydratedBlockStateValidationFunction,\n HydratedBlockValidationFunction,\n} from '@xyo-network/xl1-protocol-lib'\nimport type { BaseConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-protocol-sdk'\nimport {\n ProviderFactoryLocator,\n SimpleBlockValidationViewer,\n SimpleStakeEventsViewer,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n JsonRpcAccountBalanceViewer,\n JsonRpcBlockViewer,\n JsonRpcFinalizationViewer,\n JsonRpcMempoolRunner,\n JsonRpcMempoolViewer,\n JsonRpcNetworkStakeViewer,\n JsonRpcStakeViewer,\n JsonRpcTransactionViewer,\n JsonRpcXyoViewer,\n} from '@xyo-network/xl1-rpc'\n\nexport interface BlockValidators {\n validateHydratedBlock?: HydratedBlockValidationFunction\n validateHydratedBlockState?: HydratedBlockStateValidationFunction\n}\n\nexport function remoteLocatorFromConfig(\n context: BaseConfigContext,\n validateDepsOnRegister = false,\n validators?: BlockValidators,\n): Promisable<ProviderFactoryLocatorInstance> {\n const locator = new ProviderFactoryLocator(context, {}, validateDepsOnRegister)\n\n locator.registerMany([\n JsonRpcMempoolViewer.factory<JsonRpcMempoolViewer>(JsonRpcMempoolViewer.dependencies, {}),\n JsonRpcMempoolRunner.factory<JsonRpcMempoolRunner>(JsonRpcMempoolRunner.dependencies, {}),\n JsonRpcAccountBalanceViewer.factory<JsonRpcAccountBalanceViewer>(JsonRpcAccountBalanceViewer.dependencies, {}),\n JsonRpcFinalizationViewer.factory<JsonRpcFinalizationViewer>(JsonRpcFinalizationViewer.dependencies, {}),\n JsonRpcBlockViewer.factory<JsonRpcBlockViewer>(JsonRpcBlockViewer.dependencies, {}),\n JsonRpcTransactionViewer.factory<JsonRpcTransactionViewer>(JsonRpcTransactionViewer.dependencies, {}),\n JsonRpcNetworkStakeViewer.factory<JsonRpcNetworkStakeViewer>(JsonRpcNetworkStakeViewer.dependencies, {}),\n JsonRpcStakeViewer.factory<JsonRpcStakeViewer>(JsonRpcStakeViewer.dependencies, {}),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions: [] }),\n JsonRpcXyoViewer.factory<JsonRpcXyoViewer>(JsonRpcXyoViewer.dependencies, {}),\n SimpleBlockValidationViewer.factory<SimpleBlockValidationViewer>(\n SimpleBlockValidationViewer.dependencies,\n { state: validators?.validateHydratedBlockState, protocol: validators?.validateHydratedBlock },\n ),\n ])\n\n return locator\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport type { ActorConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-protocol-sdk'\n\nimport { commonLocatorFromConfig } from './commonLocatorFromConfig.ts'\nimport type { BlockValidators } from './remoteLocatorFromConfig.ts'\nimport { remoteLocatorFromConfig } from './remoteLocatorFromConfig.ts'\n\nexport async function rootLocatorFromConfig(\n context: ActorConfigContext,\n validateDepsOnRegister = false,\n validators?: BlockValidators,\n): Promise<ProviderFactoryLocatorInstance> {\n const { config } = context\n let locator = await commonLocatorFromConfig(context, validateDepsOnRegister)\n const newLocator = await (config.remote.rpc\n ? remoteLocatorFromConfig(context, validateDepsOnRegister, validators)\n : undefined)\n locator = assertEx(newLocator, () => 'Root locator could not be created from config. No supported configuration found.')\n locator.freeze()\n return locator\n}\n"],"mappings":";;;;;;;;;;;;;;AAOA;AAAA,EACE;AAAA,EACA;AAAA,EAAyB;AAAA,EAAwB;AAAA,EAA4B;AAAA,EAAmB;AAAA,EAA0B;AAAA,EAAqB;AAAA,EAC/I,2BAAAA;AAAA,EAAyB,qBAAAC;AAAA,EAAmB;AAAA,EAAsB;AAAA,EAA2B;AAAA,OACxF;AAEP;AAAA,EACE;AAAA,EAAgC;AAAA,EAAuB;AAAA,EAA6B;AAAA,EACpF;AAAA,EAAsB;AAAA,EAAsB;AAAA,EAAsC;AAAA,EAA2B;AAAA,EAC7G;AAAA,EAAuB;AAAA,EAAkB;AAAA,EAAkB;AAAA,EAAyB;AAAA,EAAyB;AAAA,EAC7G;AAAA,EAA6B;AAAA,EAA0B;AAAA,EAAqB;AAAA,OACvE;;;AClBP,SAAS,YAAAC,iBAAgB;AAIzB,SAAS,qCAAqC;AAE9C,SAAS,qBAAAC,0BAAyB;;;ACDlC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAsBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAAsB;AAAA,EACtB;AAAA,EAA2B;AAAA,EAAoB;AAAA,EAAmB;AAAA,EAAuB;AAAA,EAA0B;AAAA,EACnH;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAUA,IAAM,kBAAN,cAA6F,0BAAwD;AAAA,EAgB1J,UAAU,gBAAgB;AAAA,EAEhB;AAAA,EAEF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,IAAI,UAAU;AACZ,WAAO,EAAE,SAAS,KAAK,sBAAuB;AAAA,EAChD;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,sBAAsB;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,qBAAqB;AACjC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,mBAAmB;AAC/B,WAAO,KAAK,OAAO,oBAAoB;AAAA,EACzC;AAAA,EAEA,IAAc,qCAAqC;AACjD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,oBAAoB;AAChC,SAAK,qBAAqB,KAAK,sBAAsB,KAAK,OAAO,qBAAqB,CAAC;AACvF,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,eAAe,SAAkB,SAA+B,CAAC,GAAG;AACxE,WAAO,MAAM,KAAK,QAAQ,QAAQ,eAAe,SAAS,MAAM;AAAA,EAClE;AAAA,EAEA,MAAM,sBAAsB,SAAkB,SAA+B,CAAC,GAAG;AAC/E,WAAO,MAAM,KAAK,QAAQ,QAAQ,sBAAsB,SAAS,MAAM;AAAA,EACzE;AAAA,EAEA,MAAM,YAAY,MAAY;AAC5B,WAAO,MAAM,KAAK,MAAM,YAAY,IAAI;AAAA,EAC1C;AAAA,EAEA,MAAM,cAAc,aAA6B;AAC/C,WAAO,MAAM,KAAK,MAAM,cAAc,WAAW;AAAA,EACnD;AAAA,EAEA,MAAM,aAAa,MAAY,QAAgB,IAAI;AACjD,WAAO,MAAM,KAAK,MAAM,aAAa,MAAM,KAAK;AAAA,EAClD;AAAA,EAEA,MAAM,eAAe,aAA6B,QAAgB,IAAI;AACpE,WAAO,MAAM,KAAK,MAAM,eAAe,aAAa,KAAK;AAAA,EAC3D;AAAA,EAKA,MAAM,QAAQ,cAAyC,UAA4B;AACjF,WAAO,MAAM,KAAK,UAAU,2BAA2B,YAAY;AACjE,YAAM,UAAU;AAAA,QACd,gBAAgB,WAAW,KAAK,WAAW,MAAM,KAAK,oBAAoB,qBAAqB,WAAW;AAAA,QAC1G,MAAM,6CAA6C,WAAW;AAAA,MAChE;AACA,aAAO;AAAA,IACT,GAAG,KAAK,OAAO;AAAA,EACjB;AAAA,EAEA,MAAe,gBAAgB;AAC7B,UAAM,MAAM,cAAc;AAC1B,SAAK,wBAAwB,MAAM,KAAK,QAAQ,YAAkC,2BAA2B;AAC7G,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAyB,kBAAkB;AAClF,SAAK,uBAAuB,MAAM,KAAK,QAAQ,YAAiC,0BAA0B;AAC1G,SAAK,sBAAsB,MAAM,KAAK,QAAQ,YAAgC,yBAAyB;AACvG,SAAK,iBAAiB,MAAM,KAAK,QAAQ,YAA2B,oBAAoB;AACxF,SAAK,sBAAsB,MAAM,KAAK,QAAQ,YAAgC,yBAAyB;AACvG,SAAK,sCACD,MAAM,KAAK,QAAQ,YAAqD,8CAA8C;AAC1H,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAyB,kBAAkB;AAClF,SAAK,cAAc,MAAM,KAAK,QAAQ,YAAwB,iBAAiB;AAC/E,SAAK,kBAAkB,MAAM,KAAK,QAAQ,YAA4B,qBAAqB;AAC3F,SAAK,eAAe,MAAM,KAAK,QAAQ,YAA+B,wBAAwB;AAC9F,SAAK,WAAW,MAAM,KAAK,qBAAqB,QAAQ;AAAA,EAC1D;AAAA,EAEA,MAAM,eAAe;AACnB,WAAO,MAAM,KAAK,MAAM,aAAa;AAAA,EACvC;AAAA,EAEA,MAAM,mBAAmB;AACvB,WAAO,MAAM,KAAK,MAAM,iBAAiB;AAAA,EAC3C;AAAA,EAEA,MAAM,qBAAqB;AACzB,WAAO,MAAM,KAAK,MAAM,mBAAmB;AAAA,EAC7C;AAAA,EAEA,cAAuC;AACrC,UAAM,IAAI,MAAM,uCAAuC;AAAA,EACzD;AAAA,EAEA,qCAAqC,UAAsD;AACzF,UAAM,IAAI,MAAM,gEAAgE;AAAA,EAClF;AAAA,EAEA,oCAAoC,UAAwB,UAAsD;AAChH,UAAM,IAAI,MAAM,+DAA+D;AAAA,EACjF;AAAA,EAEA,mCAAmC,UAAwB,UAA8C;AACvG,UAAM,IAAI,MAAM,8DAA8D;AAAA,EAChF;AAAA,EAEA,uCAAuC,UAAqC;AAC1E,UAAM,IAAI,MAAM,kEAAkE;AAAA,EACpF;AAAA,EAEA,MAAM,kCAAkC,UAAkB,OAAmD;AAC3G,UAAM,WAAW,GAAG,QAAQ,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AACpD,WAAO,MAAM,yBAAyB,KAAK,SAAS,qDAAqD,UAAU,YAAY;AAC7H,YAAM,gBAAgB,MAAM,oCAAoC,KAAK,SAAS,KAAK,OAAO,KAAK;AAC/F,YAAM,gBAAgB,MAAM,KAAK,MAAM,YAAY,cAAc,aAAa;AAC9E,UAAI,kBAAkB,GAAG;AACvB,eAAO,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;AAAA,MACtC;AACA,YAAM,QAAQ,gBAAgB,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACpD,YAAM,UAAU,MAAM,QAAQ,IAAI,MAAM,IAAI,UAAQ,KAAK,yCAAyC,MAAM,QAAQ,CAAC,CAAC;AAClH,YAAM,iBAAiB,UAAU,QAAQ,OAAO,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;AACvE,YAAM,cAAc,UAAU,QAAQ,OAAO,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;AACpE,aAAO,CAAC,gBAAgB,WAAW;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,8BAA8B,aAA6C;AAC/E,WAAO,MAAM,gBAAgB,KAAK,SAAS,KAAK,OAAO,aAAa,KAAK,iBAAiB;AAAA,EAC5F;AAAA,EAEA,MAAM,yCAAyC,cAA4B,UAA+C;AACxH,UAAM,qBAAqB,qBAAqB,YAAY;AAC5D,UAAM,WAAW,GAAG,kBAAkB,IAAI,QAAQ;AAClD,WAAO,MAAM,yBAAyB,KAAK,SAAS,4DAA4D,UAAU,YAAY;AACpI,YAAM,QAAQ,MAAM,2BAA2B,KAAK,SAAS,KAAK,OAAO,YAAY;AACrF,YAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ;AAC3C,YAAM,YAAY,MAAM,WAAW,8BAC/B,MAAM,gCAAgC,KAAK,SAAS,KAAK,OAAO,KAAK,MAAM,aAAa,OAAO,6BAA6B,QAAQ,IACpI;AAEJ,YAAM,cAAc,MAAM,KAAK,wBAAwB,YAAY;AACnE,YAAM,cAAc,MAAM,KAAK,8BAA8B,YAAY;AACzE,YAAM,iBAAiB,UAAU,cAAc,KAAK,cAAc,YAAY,cAAc,EAAE;AAC9F,YAAM,SAA6B,CAAC,gBAAgB,WAAW;AAC/D,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,kCAAkC,MAAuD;AAC7F,UAAM,SAAS,MAAM,KAAK,MAAM,eAAe,2BAA2B;AAC1E,UAAM,UAA2C,CAAC;AAClD,eAAW,SAAS,QAAQ;AAC1B,cAAQ,KAAK,CAAC,MAAM,QAAS,MAAM,KAAK;AAAA,QACtC;AAAA,QACA,MAAM;AAAA,MACR,CAAE,CAAC;AAAA,IACL;AACA,UAAM,SAAmC,CAAC;AAC1C,eAAW,CAAC,QAAQ,MAAM,KAAK,SAAS;AACtC,aAAO,MAAM,IAAI,WAAW,OAAO,MAAM,KAAK,MAAM,OAAO,CAAC,CAAC;AAAA,IAC/D;AACA,UAAM,WAAW,OAAO,YAAY,OAAO,QAAQ,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;AACrF,WAAO;AAAA,EACT;AAAA,EAEA,iCAAiC,UAA0D;AACzF,UAAM,IAAI,MAAM,4DAA4D;AAAA,EAC9E;AAAA,EAEA,MAAM,qCAAqC,aAA2B,UAAmC;AACvG,WAAO,MAAM,qCAAqC,KAAK,SAAS,KAAK,OAAO,KAAK,MAAM,aAAa,aAAa,QAAQ;AAAA,EAC3H;AAAA,EAEA,4CAA4C,UAAwB,WAAqC;AACvG,UAAM,IAAI,MAAM,uEAAuE;AAAA,EACzF;AAAA,EAEA,iCAAiC,UAA0C;AACzE,UAAM,IAAI,MAAM,4DAA4D;AAAA,EAC9E;AAAA,EAEA,MAAM,kCAAkC,aAA4C;AAClF,WAAO,OAAO,KAAK,MAAM;AAAA,MACvB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,MAAM;AAAA,MACX;AAAA,MACA;AAAA,IACF,CAAC,EAAE;AAAA,EACL;AAAA,EAEA,yCAAyC,UAAqC;AAC5E,UAAM,IAAI,MAAM,oEAAoE;AAAA,EACtF;AAAA,EAEA,uCAAuC,UAAwB,UAAqC;AAClG,UAAM,IAAI,MAAM,kEAAkE;AAAA,EACpF;AAAA,EAEA,MAAM,mCAAmC,UAAkB,OAA+E;AACxI,UAAM,QAAQ,gBAAgB,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACvD,UAAM,UAAU,MAAM,QAAQ,IAAI,MAAM,IAAI,OAAO,SAAS;AAC1D,aAAO,CAAC,qBAAqB,IAAI,GAAG,MAAM,KAAK,yCAAyC,MAAM,QAAQ,CAAC;AAAA,IACzG,CAAC,CAAC;AACF,UAAM,SAAyD,CAAC;AAChE,eAAW,CAAC,MAAM,MAAM,KAAK,SAAS;AACpC,aAAO,IAAI,IAAI;AAAA,IACjB;AACA,UAAM,WAAW,OAAO,YAAY,OAAO,QAAQ,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACxF,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gCAAgC,OAAwC;AAC5E,WAAO,MAAM,KAAK,UAAU,mCAAmC,YAAY;AACzE,YAAM,QAAQ,gBAAgB,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACvD,YAAM,UAAU,MAAM,QAAQ,IAAI,MAAM,IAAI,OAAO,SAAS;AAC1D,eAAO,MAAM,KAAK,8BAA8B,IAAI;AAAA,MACtD,CAAC,CAAC;AACF,aAAO,UAAU,QAAQ,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC;AAAA,IACtD,GAAG,KAAK,OAAO;AAAA,EACjB;AAAA,EAEA,MAAM,oCAAoC,WAAmB,OAAwC;AACnG,UAAM,QAAQ,gBAAgB,OAAO,CAAC,SAAS,CAAC;AAChD,UAAM,UAAU,MAAM,QAAQ,IAAI,MAAM,IAAI,OAAO,SAAS;AAC1D,aAAO,MAAM,KAAK,8BAA8B,IAAI;AAAA,IACtD,CAAC,CAAC;AACF,WAAO,UAAU,QAAQ,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC;AAAA,EACtD;AAAA,EAEA,cAAc,OAAuD;AACnE,UAAM,IAAI,MAAM,yCAAyC;AAAA,EAC3D;AAAA,EAEA,eAAe,SAAsD;AACnE,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAAA,EAEA,MAAM,KAAK,OAAsB,UAAoD;AACnF,WAAO,MAAM,KAAK,MAAM,KAAK,OAAO,QAAQ;AAAA,EAC9C;AAAA,EAEA,MAAM,UAAU,IAA+B;AAC7C,WAAO,MAAM,KAAK,MAAM,UAAU,EAAE;AAAA,EACtC;AAAA,EAEA,MAAM,cAAc,QAAiB,MAAiC;AACpE,WAAO,MAAM,KAAK,MAAM,cAAc,QAAQ,IAAI;AAAA,EACpD;AAAA,EAEA,MAAM,eAAe,QAAqC;AACxD,UAAM,SAAuB,oBAAI,IAAI;AACrC,QAAI,OAAO;AACX,WAAO,MAAM;AACX,UAAI;AACF,cAAM,WAAW,MAAM,KAAK,MAAM,cAAc,QAAQ,IAAI;AAC5D,eAAO,IAAI,UAAU,SAAS,MAAM,CAAC;AACrC;AAAA,MACF,QAAQ;AACN;AAAA,MACF;AAAA,IACF;AACA,WAAO,CAAC,GAAG,MAAM;AAAA,EACnB;AAAA,EAEA,MAAM,eAAe,QAAsC;AACzD,WAAO,MAAM,KAAK,MAAM,eAAe,MAAM;AAAA,EAC/C;AAAA,EAEA,MAAM,eAAe,QAAsC;AACzD,WAAO,MAAM,KAAK,MAAM,eAAe,MAAM;AAAA,EAC/C;AAAA,EAEA,MAAM,aAAa,OAAuB,eAA0B,OAAe,UAAoD;AACrI,WAAO,MAAM,KAAK,MAAM,aAAa,OAAO,eAAe,OAAO,QAAQ;AAAA,EAC5E;AAAA,EAEA,MAAM,iBACJ,YACA,YACA,UACA,aACA,aACoB;AACpB,WAAO,MAAM,KAAK,MAAM,iBAAiB,YAAY,YAAY,UAAU,aAAa,WAAW;AAAA,EACrG;AAAA,EAEA,MAAM,+BAA+B,WAAiB,mBAA2B,GAAG;AAClF,WAAO,MAAM,KAAK,YAAY,oBAAoB,WAAW,gBAAgB;AAAA,EAC/E;AAAA,EAEA,MAAM,iCAAiC,aAA6B,mBAA2B,GAAG;AAChG,WAAO,MAAM,KAAK,YAAY,sBAAsB,aAAa,gBAAgB;AAAA,EACnF;AAAA,EAEA,MAAM,kBAAkB,iBAAuB;AAC7C,WAAO,MAAM,KAAK,YAAY,OAAO,eAAe;AAAA,EACtD;AAAA,EAEA,MAAyB,eAAe;AACtC,QAAI;AACF,YAAM,qBAAqB,MAAM,KAAK,mBAAmB;AAEzD,YAAM,KAAK,QAAQ,QAAQ,eAAe,gBAAgB;AAC1D,UAAI,KAAK,kBAAkB;AACzB,cAAM,gBAAgB,MAAM;AAAA,UAC1B,KAAK;AAAA,UACL,KAAK;AAAA,UACL,gBAAgB,CAAC,GAAG,kBAAkB,GAAG,EAAE,MAAM,eAAe,CAAC;AAAA,QACnE;AACA,cAAM,gBAAgB,MAAM,KAAK,MAAM,YAAY,cAAc,aAAa;AAC9E,aAAK,QAAQ,IAAI,kFAAkF,gBAAgB,CAAC,EAAE;AACtH,cAAM,YAAY,MAAM;AAAA,UACtB,EAAE,QAAQ,cAAc;AAAA,UACxB,CAAC,GAAG,MAAM;AAAA,QACZ;AACA,eAAO,UAAU,SAAS,GAAG;AAC3B,gBAAM,QAAQ,UAAU,OAAO,GAAG,EAAE;AACpC,eAAK,QAAQ,IAAI,iFAAiF,MAAM,GAAG,CAAC,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE;AACjI,gBAAM,QAAQ,IAAI,MAAM,IAAI,OAAO,GAAG,aAAa,MAAM,KAAK;AAAA,YAC5D;AAAA,YACA,gBAAgB,CAAC,GAAG,kBAAkB,GAAG,EAAE,MAAM,eAAe,CAAC;AAAA,UACnE,CAAC,CAAC;AAAA,QACJ;AACA,aAAK,QAAQ,IAAI,iFAAiF,gBAAgB,CAAC,EAAE;AAAA,MACvH;AAAA,IACF,SAAS,IAAI;AACX,WAAK,QAAQ,MAAM,8DAA+D,GAAa,OAAO,EAAE;AACxG,WAAK,QAAQ,MAAO,GAAa,SAAS,YAAY;AACtD,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAgB,wBAAwB,cAA4B,QAAmC;AACrG,UAAM,WAAW,qBAAqB,YAAY;AAClD,WAAO,MAAM,yBAAyB,KAAK,SAAS,sEAAsE,UAAU,YAAY;AAC9I,YAAM,QAAQ,MAAM,2BAA2B,KAAK,SAAS,KAAK,OAAO,YAAY;AACrF,aAAO,MAAM,gCAAgC,KAAK,SAAS,KAAK,OAAO,KAAK,MAAM,aAAa,OAAO,MAAM;AAAA,IAC9G,CAAC;AAAA,EACH;AACF;AAtZE,cADW,iBACK,kBAAiB;AAEjC,cAHW,iBAGK,gBAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,cAfW,iBAeK,YAAW,CAAC,gBAAgB;AAfjC,kBAAN;AAAA,EADN,kBAAkB;AAAA,GACN;;;AD9CN,IAAM,gBAAN,cAA4B,gBAA0D;AAAA,EAG3F,IAAc,OAAO;AACnB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,aAAuB,8BAA8B,MAAgD;AACnG,UAAM,WAAW,MAAM,KAAK,aAAa,MAAM,KAAK,sBAAsB;AAC1E,WAAOC,UAAS,UAAU,MAAM,4CAA4C,KAAK,sBAAsB,EAAE;AAAA,EAC3G;AACF;AAfE,cADW,eACe,0BAA2C;AAMrE,cAPW,eAOM,gBAAe,OAAO,MAAoB,eAAiC;AAC1F,QAAM,YAAY,MAAM,KAAK,QAAQ,UAAU;AAC/C,SAAOA,UAAS,8BAA8B,SAAS,GAAG,MAAM,qBAAqB,UAAU,2BAA2B;AAC5H;AAVW,gBAAN;AAAA,EAJNC,mBAAkB;AAAA,GAIN;;;AEhBb;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAAkB;AAAA,EAClB;AAAA,OACK;;;ACRP,SAAoB,oBAAAC,yBAAwB;AAC5C;AAAA,EACuB;AAAA,EAA4C;AAAA,EAC7C;AAAA,EAAuD;AAAA,OACtE;AACP;AAAA,EACE,6BAAAC;AAAA,EAA2B,qBAAAC;AAAA,OAEtB;AASA,IAAM,4BAAN,cACLC,2BAA4D;AAAA,EAI5D,UAAU,0BAA0B;AAAA,EAE1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEV,IAAI,UAAkC;AACpC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAgC;AAClC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,UAAuD;AACzD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAgC;AAClC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAe,gBAAgB;AAC7B,UAAM,MAAM,cAAc;AAC1B,SAAK,UAAU,MAAM,KAAK,QAAQ,YAAuB,gBAAgB;AACzE,SAAK,UAAU,MAAM,KAAK,QAAQ,YAAuBC,iBAAgB;AACzE,UAAM,iBAAiB,MAAM,KAAK,QAAQ,eAA+B,qBAAqB;AAC9F,UAAM,iBAAiB,MAAM,KAAK,QAAQ,eAA+B,qBAAqB;AAC9F,SAAK,WAAW,kBAAkB;AAAA,EACpC;AACF;AAlCE,cAFW,2BAEK,kBAAiB;AACjC,cAHW,2BAGK,gBAAe,CAAC,kBAAkBA,iBAAgB;AAClE,cAJW,2BAIK,YAAW,CAAC,oBAAoB;AAJrC,4BAAN;AAAA,EADNC,mBAAkB;AAAA,GACN;;;ADUN,IAAM,6CAA6C,CACxD,SACA,WACG;AACH,QAAM,UAAU,QAAQ;AACxB,MAAI,SAAS;AACX,YAAQ,aAAa;AAAA,MACnB,gBAAgB,QAAyB,gBAAgB,cAAc,EAAE,QAAQ,CAAC;AAAA,MAClF,uBAAuB,QAAgC,uBAAuB,cAAc,CAAC,CAAC;AAAA,IAChG,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAQO,IAAM,6BAA6B,CACxC,SACA,YACG;AACH,UAAQ,aAAa;AAAA,IACnB,0BAA0B,QAAmC,0BAA0B,cAAc,CAAC,CAAC;AAAA,IACvG,iBAAiB,QAA0B,iBAAiB,cAAc,CAAC,CAAC;AAAA,EAC9E,CAAC;AACD,MAAI,SAAS;AACX,YAAQ,aAAa;AAAA,MACnB,gBAAgB,QAAyB,gBAAgB,cAAc,EAAE,QAAQ,CAAC;AAAA,MAClF,uBAAuB,QAAgC,uBAAuB,cAAc,CAAC,CAAC;AAAA,IAChG,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAQO,IAAM,uCAAuC,CAClD,SACA,cACG;AACH,UAAQ,aAAa;AAAA,IACnB,kBAAkB,QAA2B,kBAAkB,cAAc,EAAE,UAAU,CAAC;AAAA,IAC1F,wBAAwB,QAAiC,wBAAwB,cAAc,EAAE,UAAU,CAAC;AAAA,EAC9G,CAAC;AACD,SAAO;AACT;;;AE/EA,SAAS,YAAAC,iBAAgB;AACzB;AAAA,EAEE,6BAAAC;AAAA,EAEA;AAAA,EACoB,6BAAAC;AAAA,EAEpB;AAAA,EAEA,sBAAAC;AAAA,OAEK;AACP;AAAA,EACE,6BAAAC;AAAA,EACA,qBAAAC;AAAA,OACK;AASA,IAAM,2BAAN,cAAuCC,2BAAwF;AAAA,EAIpI,UAAU,yBAAyB;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,IAAI,cAA6C;AAC/C,WAAOC,UAAS,KAAK,oBAAoB,MAAM,qCAAqC;AAAA,EACtF;AAAA,EAEA,IAAc,qBAAqB;AACjC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,oBAAoB;AAChC,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAc,QAAQ;AACpB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,cAAc;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,OAAO,aAAiD;AAC5D,UAAM,sBAAsB,eAAgB,MAAM,KAAK,mBAAmB,WAAW;AACrF,WAAO,CAAC,MAAM,KAAK,YAAY,OAAO,mBAAmB,GAAG,mBAAmB;AAAA,EACjF;AAAA,EAEA,MAAe,gBAAgB;AAC7B,UAAM,MAAM,cAAc;AAC1B,SAAK,sBAAsB,MAAM,KAAK,QAAQ,YAAYC,0BAAyB;AACnF,SAAK,SAAS,MAAM,KAAK,QAAQ,YAAYC,mBAAkB;AAC/D,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAY,wBAAwB;AAC3E,SAAK,qBAAqB,MAAM,KAAK,QAAQ,YAAY,oCAAoC;AAAA,EAC/F;AACF;AA1CE,cADW,0BACK,kBAAiBC;AACjC,cAFW,0BAEK,gBAAe,CAAC,oCAAoC;AACpE,cAHW,0BAGK,YAAW,CAACA,0BAAyB;AAH1C,2BAAN;AAAA,EADNC,mBAAkB;AAAA,GACN;;;ACxBb,SAAS,eAAe;AAUxB;AAAA,EACE,aAAAC;AAAA,EAAW,mBAAAC;AAAA,EAAiB,sBAAAC;AAAA,EAAoB,6BAAAC;AAAA,EAA2B,kDAAAC;AAAA,EAC3E,sBAAAC;AAAA,OACK;AACP;AAAA,EACE,6BAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,qBAAAC;AAAA,OAEK;;;ACdP,SAAS,+BAAAC,oCAAmC;AAC5C,SAAS,4BAAAC,iCAAgC;;;ACCzC,SAAS,+BAAAC,oCAAmC;AAC5C;AAAA,EACE,8BAAAC;AAAA,EAA4B,mBAAAC;AAAA,EAAiB,mCAAAC;AAAA,EAAiC,4BAAAC;AAAA,OACzE;AAGP,eAAsB,wCACpB,SACA,aACA,mBACA,cACA,UACA,oBAAyC,CAAC,GACf;AAC3B,QAAM,WAAW,GAAG,aAAa,KAAK,IAAI,aAAa,IAAI,IAAI,SAAS,EAAE;AAC1E,SAAO,MAAMA,0BAAyB,SAAS,2CAA2C,UAAU,YAAY;AAC9G,UAAM,QAAQ,MAAMH,4BAA2B,SAAS,aAAa,YAAY;AACjF,UAAM,YAAY,SAAS,WAAWD,+BAClC,MAAMG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACAH;AAAA,MACA,SAAS;AAAA,IACX,IACA;AAEJ,UAAM,cAAc,MAAMG;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,UAAM,cAAc,MAAMD,iBAAgB,SAAS,aAAa,cAAc,iBAAiB;AAC/F,UAAM,iBAAiB,cAAc,KAAK,cAAc,YAAY,cAAc;AAClF,UAAM,SAA2B,CAAC,gBAAgB,WAAW;AAC7D,WAAO;AAAA,EACT,CAAC;AACH;;;ADpCA,eAAsB,6BACpB,SACA,aACA,aACA,cACA,oBAAyC,CAAC,GACf;AAC3B,QAAM,WAAW,GAAG,aAAa,KAAK,IAAI,aAAa,IAAI;AAC3D,SAAO,MAAMG,0BAAyB,SAAS,gCAAgC,UAAU,YAAY;AACnG,UAAM,YAAa,MAAM,YAAY,eAAeC,4BAA2B;AAC/E,UAAM,UAAU,MAAM,QAAQ,IAAI,UAAU,IAAI,CAAC,QAAQ;AACvD,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAEF,UAAM,YAAY,QAAQ,OAAO,CAAC,KAAK,CAAC,cAAc,MAAM,MAAM,gBAAgB,EAAE;AAEpF,UAAM,SAA2B,QAAQ,SAAS,IAAI,CAAC,WAAW,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AAC1F,WAAO;AAAA,EACT,CAAC;AACH;;;AE9BA,SAAS,+BAAAC,oCAAmC;AAC5C;AAAA,EACE,wBAAAC;AAAA,EACA,4BAAAC;AAAA,OACK;AAKP,eAAsB,sCACpB,SACA,aACA,aACA,cACA,QACA,oBAAyC,CAAC,GACf;AAC3B,QAAM,SAASC,sBAAqB,YAAY;AAChD,SAAO,MAAMC,0BAAyB,SAAS,yCAAyC,GAAG,MAAM,IAAI,MAAM,IAAI,YAAY;AACzH,UAAM,aAAa,MAAM,YAAY,eAAe,MAAM,GAAG,OAAO,SAAO,IAAI,WAAWC,4BAA2B;AACrH,UAAM,UAAU,MAAM,QAAQ,IAAI,UAAU,IAAI,CAAC,QAAQ;AACvD,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAEF,UAAM,YAAY,QAAQ,OAAO,CAAC,KAAK,CAAC,cAAc,MAAM,MAAM,gBAAgB,EAAE;AAEpF,UAAM,SAA2B,QAAQ,SAAS,IAAI,CAAC,WAAW,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AAC1F,WAAO;AAAA,EACT,CAAC;AACH;;;AHbO,IAAM,oCAAN,cACLC,2BAAsH;AAAA,EAItH,UAAU,kCAAkC;AAAA,EAEpC;AAAA,EACA;AAAA,EACA;AAAA,EAER,IAAI,oBAAoB;AACtB,WAAO,KAAK,OAAO,qBAAqB,CAAC;AAAA,EAC3C;AAAA,EAEA,IAAc,cAAc;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,qBAAqB;AACjC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,cAAc;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,MAAM,EAAE,OAAO,UAAU,IAAoD,CAAC,GAAqC;AACvH,UAAM,QAAQ,MAAM,KAAK,MAAM,EAAE,OAAO,UAAU,CAAC;AACnD,UAAM,SAAS,MAAM,KAAK,OAAO,EAAE,OAAO,UAAU,CAAC;AACrD,UAAM,SAAkC,CAAC;AACzC,eAAW,OAAO,OAAO,KAAK,KAAK,EAAE,IAAI,MAAM,GAAG;AAChD,aAAO,GAAG,IAAIC,WAAU,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,GAAG;AAAA,IAC1D;AACA,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,UAA4G;AAClH,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AAAA,EAEA,MAAe,gBAAgB;AAC7B,UAAM,MAAM,cAAc;AAC1B,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAYC,mBAAkB;AACrE,SAAK,sBAAsB,MAAM,KAAK,QAAQ,YAAYC,0BAAyB;AACnF,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAYC,mBAAkB;AAAA,EACvE;AAAA,EAEA,MAAM,OAAO,EAAE,OAAO,UAAU,IAAoD,CAAC,GAAqC;AACxH,WAAO,MAAM,KAAK,iBAAiB,EAAE,OAAO,UAAU,CAAC;AAAA,EACzD;AAAA,EAEA,MAAM,MAAM,EAAE,OAAO,UAAU,IAAoD,CAAC,GAAqC;AACvH,WAAO,MAAM,KAAK,iBAAiB,EAAE,OAAO,UAAU,GAAG,KAAK,iBAAiB;AAAA,EACjF;AAAA,EAEA,UAAU,WAA2D,CAAC,GAAwC;AAC5G,UAAM,IAAI,MAAM,qCAAqC;AAAA,EACvD;AAAA,EAEA,MAAgB,iBACd,EAAE,OAAO,UAAU,IAAoD,CAAC,GACxE,mBACkC;AAClC,UAAM,SAAkC,CAAC;AACzC,UAAM,QAAQC,iBAAgBC;AAAA,MAC5B,SAAS,CAAC,IAAI,MAAM,KAAK,mBAAmB,KAAK,GAAG,CAAC,CAAC;AAAA,MACtD,EAAE,MAAM,kCAAkC;AAAA,IAC5C,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAClB,eAAW,QAAQ,OAAO;AACxB,UAAI,QAAQ,SAAS,GAAG;AACtB,mBAAW,cAAc,WAAW;AAClC,gBAAM,WAAW,MAAM,KAAK,YAAY,UAAU,UAAU;AAC5D,iBAAO,UAAU,IAAIL,YAAW,OAAO,UAAU,KAAK,OAAO,MAAM;AAAA,YACjE,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK,YAAY;AAAA,YACjB;AAAA,YACA;AAAA,YACA;AAAA,UACF,GAAG,CAAC,CAAC;AAAA,QACP;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AApFE,cAFW,mCAEK,kBAAiBM;AACjC,cAHW,mCAGK,gBAAe,CAACL,mBAAkB;AAClD,cAJW,mCAIK,YAAW,CAACK,+CAA8C;AAJ/D,oCAAN;AAAA,EADNC,mBAAkB;AAAA,GACN;;;AI9Bb,SAAS,WAAAC,gBAAe;AAUxB;AAAA,EACE,aAAAC;AAAA,EAAW,mBAAAC;AAAA,EAAiB,sBAAAC;AAAA,EAAoB,6BAAAC;AAAA,EAA2B;AAAA,EAC3E,sBAAAC;AAAA,OACK;AACP;AAAA,EACE,6BAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,qBAAAC;AAAA,OAEK;AAWA,IAAM,kCAAN,cACLC,2BAAkH;AAAA,EAIlH,UAAU,gCAAgC;AAAA,EAElC;AAAA,EACA;AAAA,EACA;AAAA,EAER,IAAI,oBAAoB;AACtB,WAAO,KAAK,OAAO,qBAAqB,CAAC;AAAA,EAC3C;AAAA,EAEA,IAAc,cAAc;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,qBAAqB;AACjC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,cAAc;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,MAAM,EAAE,OAAO,QAAQ,IAAkD,CAAC,GAAsC;AACpH,UAAM,QAAQ,MAAM,KAAK,MAAM,EAAE,OAAO,QAAQ,CAAC;AACjD,UAAM,SAAS,MAAM,KAAK,OAAO,EAAE,OAAO,QAAQ,CAAC;AACnD,UAAM,SAAmC,CAAC;AAC1C,eAAW,UAAU,OAAO,KAAK,KAAK,GAAgB;AACpD,aAAO,MAAM,IAAIC,WAAU,MAAM,MAAM,KAAK,OAAO,MAAM,KAAK,GAAG;AAAA,IACnE;AACA,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,UAA2G;AACjH,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AAAA,EAEA,MAAe,gBAAgB;AAC7B,UAAM,MAAM,cAAc;AAC1B,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAYC,mBAAkB;AACrE,SAAK,sBAAsB,MAAM,KAAK,QAAQ,YAAYC,0BAAyB;AACnF,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAYC,mBAAkB;AAAA,EACvE;AAAA,EAEA,MAAM,OAAO,UAAwD,CAAC,GAAsC;AAC1G,WAAO,MAAM,KAAK,iBAAiB,OAAO;AAAA,EAC5C;AAAA,EAEA,MAAM,MAAM,UAAwD,CAAC,GAAsC;AACzG,WAAO,MAAM,KAAK,iBAAiB,SAAS,KAAK,iBAAiB;AAAA,EACpE;AAAA,EAEA,UAAU,WAAyD,CAAC,GAAyC;AAC3G,UAAM,IAAI,MAAM,qCAAqC;AAAA,EACvD;AAAA,EAEA,MAAgB,iBACd,EAAE,OAAO,QAAQ,IAAkD,CAAC,GACpE,mBACmC;AACnC,UAAM,SAAmC,CAAC;AAC1C,UAAM,QAAQC,iBAAgBC;AAAA,MAC5B,SAAS,CAAC,GAAI,MAAM,KAAK,mBAAmB,WAAW,CAAE;AAAA,MACzD,EAAE,MAAM,gCAAgC;AAAA,IAC1C,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAClB,eAAW,QAAQ,OAAO;AACxB,UAAIC,SAAQ,OAAO,GAAG;AACpB,mBAAW,UAAU,SAAS;AAC5B,iBAAO,MAAM,IAAIN,YAAW,OAAO,MAAM,KAAK,OAAO,MAAM;AAAA,YACzD,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,UACF,GAAG,CAAC,CAAC;AAAA,QACP;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AAnFE,cAFW,iCAEK,kBAAiB;AACjC,cAHW,iCAGK,gBAAe,CAACC,mBAAkB;AAClD,cAJW,iCAIK,YAAW,CAAC,4CAA4C;AAJ7D,kCAAN;AAAA,EADNM,mBAAkB;AAAA,GACN;;;ACpBb;AAAA,EACE,aAAAC;AAAA,EAAW,mBAAAC;AAAA,EAAiB,sBAAAC;AAAA,EAAoB,6BAAAC;AAAA,EAA2B;AAAA,EAC3E,sBAAAC;AAAA,OACK;AAEP;AAAA,EACE,6BAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,qBAAAC;AAAA,EAAmB,wBAAAC;AAAA,OACd;AAWA,IAAM,gCAAN,cACLC,2BAA8G;AAAA,EAI9G,UAAU,8BAA8B;AAAA,EAEhC;AAAA,EACA;AAAA,EACA;AAAA,EAER,IAAI,oBAAoB;AACtB,WAAO,KAAK,OAAO,qBAAqB,CAAC;AAAA,EAC3C;AAAA,EAEA,IAAc,cAAc;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,qBAAqB;AACjC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,cAAc;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,MAAM,EAAE,OAAO,MAAM,IAAgD,CAAC,GAAiD;AAC3H,UAAM,QAAQ,MAAM,KAAK,MAAM,EAAE,OAAO,MAAM,CAAC;AAC/C,UAAM,SAAS,MAAM,KAAK,OAAO,EAAE,OAAO,MAAM,CAAC;AACjD,UAAM,SAA8C,CAAC;AACrD,eAAW,cAAc,OAAO,KAAK,KAAK,GAA2B;AACnE,aAAO,UAAU,IAAIC,WAAU,MAAM,UAAU,KAAK,OAAO,UAAU,KAAK,GAAG;AAAA,IAC/E;AACA,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,UAAoH;AAC1H,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AAAA,EAEA,MAAe,gBAAgB;AAC7B,UAAM,MAAM,cAAc;AAC1B,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAYC,mBAAkB;AACrE,SAAK,sBAAsB,MAAM,KAAK,QAAQ,YAAYC,0BAAyB;AACnF,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAyBC,mBAAkB;AAAA,EACpF;AAAA,EAEA,MAAM,OAAO,EAAE,OAAO,MAAM,IAAgD,CAAC,GAAiD;AAC5H,UAAM,SAA8C,CAAC;AACrD,UAAM,gBAAgB,SAASC,iBAAgBC;AAAA,MAC7C,SAAS,CAAC,GAAG,MAAM,KAAK,mBAAmB,WAAW,CAAC;AAAA,MACvD,EAAE,MAAM,8BAA8B;AAAA,IACxC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAClB,eAAW,QAAQ,eAAe;AAChC,YAAM,qBAAqBC,sBAAqB,IAAI;AACpD,aAAO,kBAAkB,IAAIN,YAAW,OAAO,kBAAkB,KAAK,OAAO,MAAM;AAAA,QACjF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL;AAAA,MACF,GAAG,CAAC,CAAC;AAAA,IACP;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,MAAM,EAAE,OAAO,MAAM,IAAgD,CAAC,GAAiD;AAC3H,UAAM,SAA8C,CAAC;AACrD,UAAM,gBAAgB,SAASI,iBAAgBC;AAAA,MAC7C,SAAS,CAAC,IAAI,MAAM,KAAK,mBAAmB,KAAK,GAAG,CAAC,CAAC;AAAA,MACtD,EAAE,MAAM,8BAA8B;AAAA,IACxC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAClB,eAAW,QAAQ,eAAe;AAChC,YAAM,qBAAqBC,sBAAqB,IAAI;AACpD,aAAO,kBAAkB,IAAIN,YAAW,OAAO,kBAAkB,KAAK,OACjE,MAAM;AAAA,QACP,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL;AAAA,QACA,KAAK;AAAA,MACP,GAAG,CAAC,CAAC;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,WAAuD,CAAC,GAAoD;AACpH,UAAM,IAAI,MAAM,qCAAqC;AAAA,EACvD;AACF;AAvFE,cAFW,+BAEK,kBAAiB;AACjC,cAHW,+BAGK,gBAAe,CAACC,mBAAkB;AAClD,cAJW,+BAIK,YAAW,CAAC,0CAA0C;AAJ3D,gCAAN;AAAA,EADNM,mBAAkB;AAAA,GACN;;;ACxBb,SAAS,aAAAC,YAAW,iDAAiD;AACrE;AAAA,EACE,6BAAAC;AAAA,EACA,qBAAAC;AAAA,OAEK;AASA,IAAM,+BAAN,cACLC,2BAA4G;AAAA,EAI5G,UAAU,6BAA6B;AAAA,EAEvC,IAAI,oBAAoB;AACtB,WAAO,KAAK,OAAO,qBAAqB,CAAC;AAAA,EAC3C;AAAA,EAEA,MAAM,MAAM,EAAE,MAAM,IAAyC,CAAC,GAAqB;AACjF,UAAM,QAAQ,MAAM,KAAK,MAAM,EAAE,MAAM,CAAC;AACxC,UAAM,SAAS,MAAM,KAAK,OAAO,EAAE,MAAM,CAAC;AAC1C,WAAOC,WAAU,QAAQ,MAAM;AAAA,EACjC;AAAA,EAEA,QAAQ,UAAiF;AACvF,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AAAA,EAEA,MAAM,OAAO,UAA+C,CAAC,GAAqB;AAChF,WAAO,MAAM,KAAK,iBAAiB,OAAO;AAAA,EAC5C;AAAA,EAEA,MAAM,MAAM,UAA+C,CAAC,GAAqB;AAC/E,WAAO,MAAM,KAAK,iBAAiB,SAAS,KAAK,iBAAiB;AAAA,EACpE;AAAA,EAEA,UAAU,WAAgD,CAAC,GAAwB;AACjF,UAAM,IAAI,MAAM,qCAAqC;AAAA,EACvD;AAAA,EAEU,iBACR,WAAgD,CAAC,GACjD,oBACkB;AAClB,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AACF;AArCE,cAFW,8BAEK,kBAAiB;AACjC,cAHW,8BAGK,gBAAe,CAAC;AAChC,cAJW,8BAIK,YAAW,CAAC,yCAAyC;AAJ1D,+BAAN;AAAA,EADNC,mBAAkB;AAAA,GACN;;;ACrBb,SAAS,YAAAC,iBAAgB;AACzB;AAAA,EAEE,sBAAAC;AAAA,EAEA,kDAAAC;AAAA,EAEA,gDAAAC;AAAA,EAEA,8CAAAC;AAAA,EAE+B,wCAAAC;AAAA,OAC1B;AACP;AAAA,EACE,6BAAAC;AAAA,EACA,qBAAAC;AAAA,OAEK;AAaA,IAAM,0BAAN,cAAsCC,2BAAgG;AAAA,EAW3I,UAAU,wBAAwB;AAAA,EAE1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,IAAI,WAAoD;AACtD,WAAOC,UAAS,KAAK,WAAW,MAAM,iCAAiC;AAAA,EACzE;AAAA,EAEA,IAAI,SAAgD;AAClD,WAAOA,UAAS,KAAK,SAAS,MAAM,iCAAiC;AAAA,EACvE;AAAA,EAEA,IAAI,OAA4C;AAC9C,WAAOA,UAAS,KAAK,OAAO,MAAM,6BAA6B;AAAA,EACjE;AAAA,EAEA,IAAI,QAA4C;AAC9C,UAAM,IAAI,MAAM,iCAAiC;AAAA,EACnD;AAAA,EAEA,IAAc,oBAAoB;AAChC,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,MAAe,gBAAgB;AAC7B,UAAM,MAAM,cAAc;AAC1B,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAyBC,mBAAkB;AAClF,SAAK,YAAY,MAAM,KAAK,QAAQ,YAA+CC,+CAA8C;AACjI,SAAK,UAAU,MAAM,KAAK,QAAQ,YAA6CC,6CAA4C;AAC3H,SAAK,QAAQ,MAAM,KAAK,QAAQ,YAA2CC,2CAA0C;AAAA,EACvH;AAAA,EAEA,MAAyB,eAA8B;AACrD,UAAM,MAAM,aAAa;AACzB,UAAMJ,UAAS,KAAK,WAAW,MAAM,6BAA6B,EAAE,MAAM;AAC1E,UAAMA,UAAS,KAAK,SAAS,MAAM,2BAA2B,EAAE,MAAM;AACtE,UAAMA,UAAS,KAAK,OAAO,MAAM,yBAAyB,EAAE,MAAM;AAAA,EACpE;AACF;AAnDE,cADW,yBACK,kBAAiBK;AAEjC,cAHW,yBAGK,gBAAe;AAAA,EAC7BJ;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AACF;AAEA,cAVW,yBAUK,YAAW,CAACC,qCAAoC;AAVrD,0BAAN;AAAA,EADNC,mBAAkB;AAAA,GACN;;;AC1Bb;AAAA,EAEE,sBAAAC;AAAA,EAEA,wCAAAC;AAAA,EAIoC;AAAA,EAAuC,sBAAAC;AAAA,EAAmD,qBAAAC;AAAA,OACzH;AACP;AAAA,EACE,6BAAAC;AAAA,EACA,qBAAAC;AAAA,EAEA,8BAAAC;AAAA,OACK;AASA,IAAM,mBAAN,cAA+BC,2BAAwE;AAAA,EAW5G,UAAU,iBAAiB;AAAA,EAEnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,IAAI,UAAU;AACZ,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,cAAc;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,oBAAoB;AAChC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,cAAc;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAe,gBAAgB;AAC7B,UAAM,MAAM,cAAc;AAC1B,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAyBC,mBAAkB;AAClF,SAAK,iCAAiC,MAAM,KAAK,QAAQ,YAA2CC,qCAAoC;AACxI,SAAK,eAAe,MAAM,KAAK,QAAQ,YAAyBC,mBAAkB;AAClF,SAAK,qBAAqB,MAAM,KAAK,QAAQ,YAA+B,wBAAwB;AAAA,EACtG;AAAA,EAEA,MAAM,cAAc,MAAqC;AACvD,UAAM,gBAAgB,MAAMC,4BAA2B,KAAK,SAAS,KAAK,aAAa,IAAI;AAC3F,UAAM,gBAAgB,MAAM,KAAK,kBAAkB,cAAc,aAAa;AAC9E,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,UAAU,MAAoB,UAAuD;AACzF,UAAM,QAAQ,MAAM,KAAK,cAAc,IAAI;AAC3C,UAAM,gBAAgB,MAAMA,4BAA2B,KAAK,SAAS,KAAK,aAAa,IAAI;AAC3F,UAAM,eAAe,MAAM,QAAQ,IAAI,MAAM,KAAK,EAAE,QAAQ,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,IAAI,QAAM,KAAK,YAAY,UAAU,EAAE,CAAC,CAAC;AAC/H,WAAO,aAAa,OAAO,SAAO,IAAI,YAAY,cAAc,CAAC,MAAM,IAAI,gBAAgB,KAAK,IAAI,cAAc,cAAc,CAAC,EAAE;AAAA,EACrI;AAAA,EAEA,WAAW,OAAyC;AAClD,UAAM,IAAI,MAAM,sCAAsC;AAAA,EACxD;AAAA,EAEA,MAAM,OAAyC;AAC7C,UAAM,IAAI,MAAM,iCAAiC;AAAA,EACnD;AAAA,EAEA,YAAY,OAAyC;AACnD,UAAM,IAAI,MAAM,uCAAuC;AAAA,EACzD;AAAA,EAEA,QAAQ,OAAqB,UAAuD;AAClF,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AAAA,EAEA,OAAO,OAAqB,aAA8C;AACxE,UAAM,IAAI,MAAM,kCAAkC;AAAA,EACpD;AACF;AA1EE,cADW,kBACK,kBAAiBC;AAEjC,cAHW,kBAGK,gBAAe;AAAA,EAC7BJ;AAAA,EACAC;AAAA,EACAC;AAAA,EACA;AACF;AAEA,cAVW,kBAUK,YAAW,CAACE,kBAAiB;AAVlC,mBAAN;AAAA,EADNC,oBAAkB;AAAA,GACN;;;AdSN,SAAS,qBAAqB,EAAE,UAAU,wBAAwB,UAAU,MAAM,CAAC,CAAC,CAAC,EAAE,IAAgC,CAAC,GAAG;AAChI,QAAM;AAAA,IACJ;AAAA,IAAQ;AAAA,IAAS,aAAa,CAAC;AAAA,IAAG,SAAS,CAAC;AAAA,IAAG,GAAG;AAAA,EACpD,IAAI;AACJ,SAAO,IAAI,uBAAuB;AAAA,IAChC,GAAG;AAAA,IAAe;AAAA,IAAQ;AAAA,IAAY;AAAA,EACxC,GAAG,SAAS,QAAQ;AACtB;AAWO,SAAS,2BAA2B,QAA2C;AACpF,QAAM,UAAU,qBAAqB,MAAM;AAC3C,QAAM,YAAwB,CAAC;AAC/B,UAAQ,aAAa;AAAA,IACnBC,mBAAkB,QAA2BA,mBAAkB,cAAc,EAAE,UAAU,CAAC;AAAA,IAC1FC,yBAAwB,QAAiCA,yBAAwB,cAAc,EAAE,UAAU,CAAC;AAAA,IAC5G,yBAAyB,QAAkC,yBAAyB,cAAc,CAAC,CAAC;AAAA,IACpG,qBAAqB,QAA8B,qBAAqB,cAAc,CAAC,CAAC;AAAA,IACxF,iBAAiB,QAA0B,iBAAiB,cAAc,CAAC,CAAC;AAAA,IAC5E,wBAAwB,QAAiC,wBAAwB,cAAc,CAAC,CAAC;AAAA,IACjG,kCAAkC,QAA2C,kCAAkC,cAAc,CAAC,CAAC;AAAA,IAC/H,gCAAgC,QAAyC,gCAAgC,cAAc,CAAC,CAAC;AAAA,IACzH,8BAA8B,QAAuC,8BAA8B,cAAc,CAAC,CAAC;AAAA,IACnH,6BAA6B,QAAsC,6BAA6B,cAAc,CAAC,CAAC;AAAA,EAClH,CAAC;AAED,SAAO,2BAA2B,SAAS,QAAQ,aAAa;AAClE;AAYA,eAAsB,4BAA4B,QAA2C;AAC3F,QAAM,UAAU,qBAAqB,MAAM;AAC3C,QAAM,mBAAmB,OAAO;AAChC,QAAM,YAAwB,CAAC;AAC/B,UAAQ,aAAa;AAAA,IACnB,yBAAyB;AAAA,MACvB,yBAAyB;AAAA,MACzB,EAAE,WAAW,MAAM,iBAAiB,2BAA2B,EAAE;AAAA,IACnE;AAAA,IACA,4BAA4B;AAAA,MAC1B,4BAA4B;AAAA,MAC5B,EAAE,WAAW,MAAM,iBAAiB,8BAA8B,EAAE;AAAA,IACtE;AAAA,IACA,mBAAmB,QAA4B,mBAAmB,cAAc,EAAE,WAAW,MAAM,iBAAiB,qBAAqB,EAAE,CAAC;AAAA,IAC5I,qBAAqB,QAA8B,qBAAqB,cAAc,EAAE,WAAW,MAAM,iBAAiB,uBAAuB,EAAE,CAAC;AAAA,IACpJ,qBAAqB,QAA8B,qBAAqB,cAAc,EAAE,WAAW,MAAM,iBAAiB,uBAAuB,EAAE,CAAC;AAAA,IACpJ,0BAA0B;AAAA,MACxB,0BAA0B;AAAA,MAC1B,EAAE,WAAW,MAAM,iBAAiB,4BAA4B,EAAE;AAAA,IACpE;AAAA,IACA,sBAAsB,QAA+B,sBAAsB,cAAc,EAAE,WAAW,MAAM,iBAAiB,wBAAwB,EAAE,CAAC;AAAA,IACxJ,qCAAqC;AAAA,MACnC,qCAAqC;AAAA,MACrC,EAAE,WAAW,MAAM,iBAAiB,CAAC,CAAC,EAAE;AAAA,IAC1C;AAAA,IACA,iBAAiB,QAA0B,iBAAiB,cAAc,EAAE,WAAW,MAAM,iBAAiB,mBAAmB,EAAE,CAAC;AAAA,IACpI,iBAAiB,QAA0B,iBAAiB,cAAc,EAAE,WAAW,MAAM,iBAAiB,mBAAmB,EAAE,CAAC;AAAA,IACpID,mBAAkB,QAA2BA,mBAAkB,cAAc,EAAE,UAAU,CAAC;AAAA,IAC1FC,yBAAwB,QAAiCA,yBAAwB,cAAc,EAAE,UAAU,CAAC;AAAA,IAC5G,iBAAiB,QAA0B,iBAAiB,cAAc,CAAC,CAAC;AAAA,EAC9E,CAAC;AAED,SAAO,2BAA2B,SAAS,QAAQ,aAAa;AAClE;AAeO,SAAS,0BAA0B,QAAyC;AACjF,QAAM,UAAU,2BAA2B,MAAM;AACjD,QAAM;AAAA,IACJ;AAAA,IAA8B;AAAA,IAAwB;AAAA,IAAoB;AAAA,IAAqB;AAAA,IAAoB;AAAA,EACrH,IAAI;AACJ,UAAQ,aAAa;AAAA,IACnB,oBAAoB,QAA6B,oBAAoB,cAAc,EAAE,8BAA8B,uBAAuB,CAAC;AAAA,IAC3I,oBAAoB,QAA6B,oBAAoB,cAAc,EAAE,8BAA8B,uBAAuB,CAAC;AAAA,IAC3I,2BAA2B,QAAoC,2BAA2B,cAAc,EAAE,oBAAoB,oBAAoB,CAAC;AAAA,IACnJ,yBAAyB,QAAkC,yBAAyB,cAAc,EAAE,mBAAmB,CAAC;AAAA,IACxH,kBAAkB,QAA2B,kBAAkB,cAAc,EAAE,mBAAmB,CAAC;AAAA,IACnG,gBAAgB,QAAyB,gBAAgB,cAAc,CAAC,CAAC;AAAA,IACzE,0BAA0B,QAAmC,0BAA0B,cAAc,EAAE,eAAe,KAAQ,cAAc,IAAO,CAAC;AAAA,IACpJ,cAAc,QAAuB,cAAc,cAAc,EAAE,KAAK,CAAC;AAAA,EAC3E,CAAC;AAED,SAAO,2BAA2B,SAAS,QAAQ,aAAa;AAClE;;;Ae9IA;AAAA,EACE,0BAAAC;AAAA,EAAwB,8BAAAC;AAAA,EAA4B,qBAAAC;AAAA,EAAmB,4BAAAC;AAAA,EAA0B,uBAAAC;AAAA,EAAqB,uBAAAC;AAAA,EACtH,wBAAAC;AAAA,EAAsB,6BAAAC;AAAA,EAA2B,mBAAAC;AAAA,OAC5C;AAEP;AAAA,EACE,kCAAAC;AAAA,EAAgC,yBAAAC;AAAA,EAAuB,+BAAAC;AAAA,EAA6B,sBAAAC;AAAA,EACpF,wBAAAC;AAAA,EAAsB,wBAAAC;AAAA,EAAsB,wCAAAC;AAAA,EAAsC,6BAAAC;AAAA,EAA2B,4BAAAC;AAAA,EAC7G,yBAAAC;AAAA,EAAuB,oBAAAC;AAAA,EAAkB,oBAAAC;AAAA,EAAkB,2BAAAC;AAAA,EAAyB,2BAAAC;AAAA,EAAyB,gCAAAC;AAAA,EAC7G,+BAAAC;AAAA,EAA6B,4BAAAC;AAAA,EAA0B,uBAAAC;AAAA,EAAqB,uBAAAC;AAAA,OACvE;AAWA,SAAS,0BAA0B,QAAgB;AACxD,SAAO,IAAIC,wBAAuB;AAAA,IAChC;AAAA,IAAQ,YAAY,CAAC;AAAA,IAAG,QAAQ,CAAC;AAAA,EACnC,CAAC;AACH;AAGO,SAAS,6BAA6B,QAAgB,SAA2B;AAEtF,QAAM,UAAU,0BAA0B,MAAM;AAChD,UAAQ,aAAa;AAAA,IACnB,yBAAyB,QAAkC,yBAAyB,cAAc,CAAC,CAAC;AAAA,IACpGC,sBAAqB,QAA8BA,sBAAqB,cAAc,CAAC,CAAC;AAAA,IACxF,iBAAiB,QAA0B,iBAAiB,cAAc,CAAC,CAAC;AAAA,IAC5E,wBAAwB,QAAiC,wBAAwB,cAAc,CAAC,CAAC;AAAA,IACjG,kCAAkC,QAA2C,kCAAkC,cAAc,CAAC,CAAC;AAAA,IAC/H,gCAAgC,QAAyC,gCAAgC,cAAc,CAAC,CAAC;AAAA,IACzH,8BAA8B,QAAuC,8BAA8B,cAAc,CAAC,CAAC;AAAA,IACnH,6BAA6B,QAAsC,6BAA6B,cAAc,CAAC,CAAC;AAAA,EAClH,CAAC;AACD,SAAO,2BAA2B,SAAS,OAAO;AACpD;AAGA,eAAsB,8BAA8B,QAAgB,kBAAoC,SAA2B;AAEjI,QAAM,UAAU,0BAA0B,MAAM;AAChD,UAAQ,aAAa;AAAA,IACnBC,0BAAyB;AAAA,MACvBA,0BAAyB;AAAA,MACzB,EAAE,WAAW,MAAM,iBAAiBC,4BAA2B,EAAE;AAAA,IACnE;AAAA,IACAC,6BAA4B;AAAA,MAC1BA,6BAA4B;AAAA,MAC5B,EAAE,WAAW,MAAM,iBAAiBC,+BAA8B,EAAE;AAAA,IACtE;AAAA,IACAC,oBAAmB,QAA4BA,oBAAmB,cAAc,EAAE,WAAW,MAAM,iBAAiBC,sBAAqB,EAAE,CAAC;AAAA,IAC5IC,sBAAqB,QAA8BA,sBAAqB,cAAc,EAAE,WAAW,MAAM,iBAAiBC,wBAAuB,EAAE,CAAC;AAAA,IACpJC,sBAAqB,QAA8BA,sBAAqB,cAAc,EAAE,WAAW,MAAM,iBAAiBC,wBAAuB,EAAE,CAAC;AAAA,IACpJC,2BAA0B;AAAA,MACxBA,2BAA0B;AAAA,MAC1B,EAAE,WAAW,MAAM,iBAAiBC,6BAA4B,EAAE;AAAA,IACpE;AAAA,IACAC,uBAAsB,QAA+BA,uBAAsB,cAAc,EAAE,WAAW,MAAM,iBAAiBC,yBAAwB,EAAE,CAAC;AAAA,IACxJC,sCAAqC;AAAA,MACnCA,sCAAqC;AAAA,MACrC,EAAE,WAAW,MAAM,iBAAiB,CAAC,CAAC,EAAE;AAAA,IAC1C;AAAA,IACAC,kBAAiB,QAA0BA,kBAAiB,cAAc,EAAE,WAAW,MAAM,iBAAiBC,oBAAmB,EAAE,CAAC;AAAA,IACpIC,kBAAiB,QAA0BA,kBAAiB,cAAc,EAAE,WAAW,MAAM,iBAAiBC,oBAAmB,EAAE,CAAC;AAAA,EACtI,CAAC;AACD,SAAO,2BAA2B,SAAS,OAAO;AACpD;AAeO,SAAS,4BAA4B,QAAgB,QAA2C;AACrG,QAAM;AAAA,IACJ;AAAA,IAAS;AAAA,IAA8B;AAAA,IAAwB;AAAA,IAAoB;AAAA,IAAqB;AAAA,EAC1G,IAAI;AAEJ,QAAM,UAAU,6BAA6B,QAAQ,OAAO;AAC5D,UAAQ,aAAa;AAAA,IACnBC,qBAAoB,QAA6BA,qBAAoB,cAAc,EAAE,8BAA8B,uBAAuB,CAAC;AAAA,IAC3IC,qBAAoB,QAA6BA,qBAAoB,cAAc,EAAE,8BAA8B,uBAAuB,CAAC;AAAA,IAC3IC,4BAA2B,QAAoCA,4BAA2B,cAAc,EAAE,oBAAoB,oBAAoB,CAAC;AAAA,IACnJC,0BAAyB,QAAkCA,0BAAyB,cAAc,EAAE,mBAAmB,CAAC;AAAA,IACxHC,mBAAkB,QAA2BA,mBAAkB,cAAc,EAAE,mBAAmB,CAAC;AAAA,IACnGC,iBAAgB,QAAyBA,iBAAgB,cAAc,CAAC,CAAC;AAAA,IACzEC,2BAA0B,QAAmCA,2BAA0B,cAAc,EAAE,eAAe,KAAQ,cAAc,IAAO,CAAC;AAAA,IACpJ,gBAAgB,QAAyB,gBAAgB,cAAc,CAAC,CAAC;AAAA,EAC3E,CAAC;AACD,SAAO;AACT;;;AC/GA,SAAS,wBAAwB;AAEjC,SAAS,0BAAAC,yBAAwB,mBAAAC,wBAAuB;AAGxD,eAAsB,uBAAuB,SAA4B,SAA0B;AACjG,QAAM,UAAU,IAAID,wBAAuB,OAAO;AAClD,UAAQ;AAAA,IACNC,iBAAgB,QAAyBA,iBAAgB,cAAc,EAAE,QAAQ,CAAC;AAAA,EACpF;AACA,SAAO,MAAM,QAAQ,YAA6B,gBAAgB;AACpE;;;ACZA,SAAS,aAAAC,kBAAiB;AAI1B;AAAA,EACE,0BAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,0BAAAC;AAAA,OACK;AAEP,SAAS,oBAAAC,mBAAkB,wBAAwB;;;ACVnD,SAAS,iBAAiB;AAE1B;AAAA,EACE;AAAA,EACA,0BAAAC;AAAA,EACA;AAAA,EACA,2BAAAC;AAAA,EACA,oBAAAC;AAAA,OACK;;;ACRP,SAAoB,oBAAAC,yBAAwB;AAC5C;AAAA,EACuB,yBAAAC;AAAA,EACD,wBAAAC;AAAA,OACf;AACP;AAAA,EACE,6BAAAC;AAAA,EAA2B,qBAAAC;AAAA,OAEtB;AASA,IAAM,4BAAN,cACLC,4BAA4D;AAAA,EAI5D,UAAU,0BAA0B;AAAA,EAE1B;AAAA,EACA;AAAA,EACA;AAAA,EAEV,IAAI,UAAkC;AACpC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,UAAsC;AACxC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAgC;AAClC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAe,gBAAgB;AAC7B,UAAM,MAAM,cAAc;AAC1B,SAAK,UAAU,MAAM,KAAK,QAAQ,YAAuBC,iBAAgB;AACzE,UAAM,iBAAiB,MAAM,KAAK,QAAQ,eAA+BC,sBAAqB;AAC9F,SAAK,WAAW;AAAA,EAClB;AACF;AA3BE,cAFW,2BAEK,kBAAiBC;AACjC,cAHW,2BAGK,gBAAe,CAACF,iBAAgB;AAChD,cAJW,2BAIK,YAAW,CAACE,qBAAoB;AAJrC,4BAAN;AAAA,EADNC,oBAAkB;AAAA,GACN;;;ACfb;AAAA,EACE,0BAAAC;AAAA,EACA;AAAA,EACA,wBAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA,6BAAAC;AAAA,OACK;AAYA,SAAS,wBACd,SACA,yBAAyB,OACmB;AAC5C,QAAM,UAA0C,IAAIC,wBAAuB,SAAS,CAAC,GAAG,sBAAsB;AAE9G,UAAQ,aAAa;AAAA,IACnB,yBAAyB,QAAkC,yBAAyB,cAAc,CAAC,CAAC;AAAA,IACpGC,sBAAqB,QAA8BA,sBAAqB,cAAc,CAAC,CAAC;AAAA,IACxF,iBAAiB,QAA0B,iBAAiB,cAAc,CAAC,CAAC;AAAA,IAC5E,wBAAwB,QAAiC,wBAAwB,cAAc,CAAC,CAAC;AAAA,IACjG,kCAAkC,QAA2C,kCAAkC,cAAc,CAAC,CAAC;AAAA,IAC/H,gCAAgC,QAAyC,gCAAgC,cAAc,CAAC,CAAC;AAAA,IACzH,8BAA8B,QAAuC,8BAA8B,cAAc,CAAC,CAAC;AAAA,IACnH,6BAA6B,QAAsC,6BAA6B,cAAc,CAAC,CAAC;AAAA,IAChHC,2BAA0B,QAAmCA,2BAA0B,cAAc,EAAE,eAAe,KAAM,cAAc,IAAO,CAAC;AAAA,IAClJ,wBAAwB,QAAiC,wBAAwB,cAAc,CAAC,CAAC;AAAA,IACjG,wBAAwB,QAAiC,wBAAwB,cAAc,CAAC,CAAC;AAAA,IACjG,kCAAkC,QAA2C,kCAAkC,cAAc,CAAC,CAAC;AAAA,EACjI,CAAC;AACD,SAAO;AACT;;;ACpCA;AAAA,EACE,0BAAAC;AAAA,EACA;AAAA,EACA,2BAAAC;AAAA,OACK;AACP;AAAA,EACE,+BAAAC;AAAA,EACA,sBAAAC;AAAA,EACA;AAAA,EACA,wBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,6BAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAAC;AAAA,OACK;AAOA,SAAS,wBACd,SACA,yBAAyB,OACzB,YAC4C;AAC5C,QAAM,UAAU,IAAIP,wBAAuB,SAAS,CAAC,GAAG,sBAAsB;AAE9E,UAAQ,aAAa;AAAA,IACnBK,sBAAqB,QAA8BA,sBAAqB,cAAc,CAAC,CAAC;AAAA,IACxFD,sBAAqB,QAA8BA,sBAAqB,cAAc,CAAC,CAAC;AAAA,IACxFF,6BAA4B,QAAqCA,6BAA4B,cAAc,CAAC,CAAC;AAAA,IAC7G,0BAA0B,QAAmC,0BAA0B,cAAc,CAAC,CAAC;AAAA,IACvGC,oBAAmB,QAA4BA,oBAAmB,cAAc,CAAC,CAAC;AAAA,IAClF,yBAAyB,QAAkC,yBAAyB,cAAc,CAAC,CAAC;AAAA,IACpGG,2BAA0B,QAAmCA,2BAA0B,cAAc,CAAC,CAAC;AAAA,IACvG,mBAAmB,QAA4B,mBAAmB,cAAc,CAAC,CAAC;AAAA,IAClFL,yBAAwB,QAAiCA,yBAAwB,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC;AAAA,IAChHM,kBAAiB,QAA0BA,kBAAiB,cAAc,CAAC,CAAC;AAAA,IAC5E,4BAA4B;AAAA,MAC1B,4BAA4B;AAAA,MAC5B,EAAE,OAAO,YAAY,4BAA4B,UAAU,YAAY,sBAAsB;AAAA,IAC/F;AAAA,EACF,CAAC;AAED,SAAO;AACT;;;AHjCA,eAAsB,yBACpB,MACA,cACA,kBACA,SACA;AACA,QAAM,SAAS,eAAe,MAAM,EAAE,MAAM,QAAQ,aAAa,CAAC;AAClE,QAAM,cAAc,MAAM,wBAAwB;AAAA,IAChD;AAAA,IAAQ,YAAY,CAAC;AAAA,IAAG,QAAQ,CAAC;AAAA,EACnC,CAAC;AACD,QAAM,gBAAgB,MAAM,wBAAwB,YAAY,SAAS,OAAO,SAAS,UAAU;AACnG,QAAM,UAAU,IAAIC,wBAAuB,cAAc,SAAS,CAAC,CAAC;AACpE,UAAQ,aAAa;AAAA,IACnBC,kBAAiB,QAA0BA,kBAAiB,cAAc,CAAC,CAAC;AAAA,IAC5E,0BAA0B,QAAmC,0BAA0B,cAAc,CAAC,CAAC;AAAA,IACvGC,yBAAwB,QAAiCA,yBAAwB,cAAc,CAAC,CAAC;AAAA,IACjG,GAAG,SAAS,uBAAuB,CAAC;AAAA,EACtC,CAAC;AAED,MAAI,UAAU,gBAAgB,GAAG;AAC/B,UAAM,uBAAuB,EAAE,UAAU,iBAAiB;AAC1D,YAAQ,SAAS,mBAAmB,QAA4B,mBAAmB,cAAc,oBAAoB,CAAC;AAAA,EACxH;AAEA,UAAQ,OAAO;AAEf,SAAO;AACT;;;ADzBA,eAAsB,yBACpB,MACA,cACA,iBACA,kBACA,SACyC;AACzC,QAAM,sBAAsB,MAAM,yBAAyB,MAAM,cAAc,kBAAkB,OAAO;AACxG,QAAM,UAAU,IAAIC,wBAAuB,oBAAoB,SAAS,CAAC,CAAC;AAE1E,QAAM,YAAwC;AAAA,IAC5C,0BAA0B,QAAmC,0BAA0B,cAAc,CAAC,CAAC;AAAA,IACvGC,kBAAiB,QAA0BA,kBAAiB,cAAc,CAAC,CAAC;AAAA,EAC9E;AAEA,MAAI,CAAC,SAAS,mBAAmB;AAC/B,cAAU;AAAA,MACRC,wBAAuB,QAAgCA,wBAAuB,cAAc,CAAC,CAAC;AAAA,IAChG;AAAA,EACF;AAEA,UAAQ,aAAa;AAAA,IACnB,GAAG;AAAA,IACH,GAAG,SAAS,6BAA6B,CAAC;AAAA,EAC5C,CAAC;AAED,MAAI,SAAS,eAAe;AAC1B,YAAQ,SAAS,QAAQ,aAAa;AAAA,EACxC,OAAO;AACL,YAAQ;AAAA,MACN,iBAAiB,QAA0B,iBAAiB,cAAc,EAAE,WAAW,gBAAgB,CAAC;AAAA,IAC1G;AAAA,EACF;AAEA,MAAIC,WAAU,gBAAgB,GAAG;AAC/B,UAAM,uBAAuB,EAAE,UAAU,iBAAiB;AAC1D,YAAQ,SAASC,oBAAmB,QAA4BA,oBAAmB,cAAc,oBAAoB,CAAC;AAAA,EACxH;AAEA,UAAQ,OAAO;AAEf,SAAO;AACT;;;AKhEA,SAAS,YAAAC,iBAAgB;AAOzB,eAAsB,sBACpB,SACA,yBAAyB,OACzB,YACyC;AACzC,QAAM,EAAE,OAAO,IAAI;AACnB,MAAI,UAAU,MAAM,wBAAwB,SAAS,sBAAsB;AAC3E,QAAM,aAAa,OAAO,OAAO,OAAO,MACpC,wBAAwB,SAAS,wBAAwB,UAAU,IACnE;AACJ,YAAUC,UAAS,YAAY,MAAM,kFAAkF;AACvH,UAAQ,OAAO;AACf,SAAO;AACT;","names":["SimpleStakeEventsViewer","SimpleStakeViewer","assertEx","creatableProvider","assertEx","creatableProvider","XyoViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","XyoViewerMoniker","creatableProvider","assertEx","FinalizationViewerMoniker","NetworkStakeViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","assertEx","FinalizationViewerMoniker","StakeViewerMoniker","NetworkStakeViewerMoniker","creatableProvider","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","XYO_NETWORK_STAKING_ADDRESS","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","externalBlockRangeFromStep","stepRewardTotal","weightedStakeForRangeByPosition","withContextCacheResponse","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","XYO_NETWORK_STAKING_ADDRESS","toStepIdentityString","withContextCacheResponse","toStepIdentityString","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","NetworkStakeStepRewardsByPositionViewerMoniker","creatableProvider","isArray","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","isArray","creatableProvider","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","toStepIdentityString","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","toStepIdentityString","creatableProvider","asAttoXL1","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","asAttoXL1","creatableProvider","assertEx","BlockViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","assertEx","BlockViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","creatableProvider","BlockViewerMoniker","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","StepViewerMoniker","AbstractCreatableProvider","creatableProvider","externalBlockRangeFromStep","AbstractCreatableProvider","BlockViewerMoniker","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","externalBlockRangeFromStep","StepViewerMoniker","creatableProvider","SimpleStakeViewer","SimpleStakeEventsViewer","ProviderFactoryLocator","SimpleAccountBalanceViewer","SimpleBlockViewer","SimpleFinalizationViewer","SimpleMempoolRunner","SimpleMempoolViewer","SimpleTimeSyncViewer","SimpleWindowedBlockViewer","SimpleXyoRunner","AccountBalanceViewerRpcSchemas","BlockViewerRpcSchemas","JsonRpcAccountBalanceViewer","JsonRpcBlockViewer","JsonRpcMempoolRunner","JsonRpcMempoolViewer","JsonRpcNetworkStakeStepRewardsViewer","JsonRpcNetworkStakeViewer","JsonRpcStakeTotalsViewer","JsonRpcTimeSyncViewer","JsonRpcXyoRunner","JsonRpcXyoViewer","MempoolRunnerRpcSchemas","MempoolViewerRpcSchemas","NetworkStakeViewerRpcSchemas","StakeTotalsViewerRpcSchemas","TimeSyncViewerRpcSchemas","XyoRunnerRpcSchemas","XyoViewerRpcSchemas","ProviderFactoryLocator","SimpleTimeSyncViewer","JsonRpcStakeTotalsViewer","StakeTotalsViewerRpcSchemas","JsonRpcAccountBalanceViewer","AccountBalanceViewerRpcSchemas","JsonRpcBlockViewer","BlockViewerRpcSchemas","JsonRpcMempoolRunner","MempoolRunnerRpcSchemas","JsonRpcMempoolViewer","MempoolViewerRpcSchemas","JsonRpcNetworkStakeViewer","NetworkStakeViewerRpcSchemas","JsonRpcTimeSyncViewer","TimeSyncViewerRpcSchemas","JsonRpcNetworkStakeStepRewardsViewer","JsonRpcXyoRunner","XyoRunnerRpcSchemas","JsonRpcXyoViewer","XyoViewerRpcSchemas","SimpleMempoolViewer","SimpleMempoolRunner","SimpleAccountBalanceViewer","SimpleFinalizationViewer","SimpleBlockViewer","SimpleXyoRunner","SimpleWindowedBlockViewer","ProviderFactoryLocator","SimpleXyoSigner","isDefined","ProviderFactoryLocator","RestDataLakeViewer","SimpleXyoGatewayRunner","JsonRpcXyoRunner","ProviderFactoryLocator","SimpleTransactionViewer","SimpleXyoGateway","XyoViewerMoniker","DataLakeViewerMoniker","XyoConnectionMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","XyoViewerMoniker","DataLakeViewerMoniker","XyoConnectionMoniker","creatableProvider","ProviderFactoryLocator","SimpleTimeSyncViewer","SimpleWindowedBlockViewer","ProviderFactoryLocator","SimpleTimeSyncViewer","SimpleWindowedBlockViewer","ProviderFactoryLocator","SimpleStakeEventsViewer","JsonRpcAccountBalanceViewer","JsonRpcBlockViewer","JsonRpcMempoolRunner","JsonRpcMempoolViewer","JsonRpcNetworkStakeViewer","JsonRpcXyoViewer","ProviderFactoryLocator","SimpleXyoGateway","SimpleTransactionViewer","ProviderFactoryLocator","JsonRpcXyoRunner","SimpleXyoGatewayRunner","isDefined","RestDataLakeViewer","assertEx","assertEx"]}
1
+ {"version":3,"sources":["../../src/buildProviderLocator.ts","../../src/NodeXyoViewer.ts","../../src/SimpleXyoViewer.ts","../../src/registerHelpers.ts","../../src/SimpleXyoConnectionRunner.ts","../../src/SimpleNetworkStakeViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsByPositionViewer.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarned.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForPosition.ts","../../src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForStaker.ts","../../src/SimpleStepRewards/SimpleStepRewardsByStakerViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsByStepViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsTotalViewer.ts","../../src/SimpleStepRewards/SimpleStepRewardsViewer.ts","../../src/SimpleStepViewer.ts","../../src/buildProviderLocatorV2.ts","../../src/buildSimpleXyoSignerV2.ts","../../src/locators/basicRemoteRunnerLocator.ts","../../src/locators/basicRemoteViewerLocator.ts","../../src/SimpleXyoConnectionViewer.ts","../../src/locators/commonLocatorFromConfig.ts","../../src/locators/remoteLocatorFromConfig.ts","../../src/locators/rootLocatorFromConfig.ts"],"sourcesContent":["import type {\n ArchivistInstance, NodeInstance, WithHashMeta,\n} from '@xyo-network/sdk-js'\nimport type { MapType, Position } from '@xyo-network/xl1-protocol-lib'\nimport type {\n BalancesStepSummary, CreatableProviderContext, TransfersStepSummary,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n ConfigZod,\n getEmptyProviderContext, ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockViewer, SimpleFinalizationViewer, SimpleMempoolRunner, SimpleMempoolViewer,\n SimpleStakeEventsViewer, SimpleStakeViewer, SimpleTimeSyncViewer, SimpleWindowedBlockViewer, SimpleXyoRunner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { TransportFactory } from '@xyo-network/xl1-rpc'\nimport {\n AccountBalanceViewerRpcSchemas, BlockViewerRpcSchemas, JsonRpcAccountBalanceViewer, JsonRpcBlockViewer,\n JsonRpcMempoolRunner, JsonRpcMempoolViewer, JsonRpcNetworkStakeStepRewardsViewer, JsonRpcNetworkStakeViewer, JsonRpcStakeTotalsViewer,\n JsonRpcTimeSyncViewer, JsonRpcXyoRunner, JsonRpcXyoViewer, MempoolRunnerRpcSchemas, MempoolViewerRpcSchemas, NetworkStakeViewerRpcSchemas,\n StakeTotalsViewerRpcSchemas, TimeSyncViewerRpcSchemas, XyoRunnerRpcSchemas, XyoViewerRpcSchemas,\n} from '@xyo-network/xl1-rpc'\n\nimport { NodeXyoViewer } from './NodeXyoViewer.ts'\nimport type { GatewayRunnerLocatorParams } from './registerHelpers.ts'\nimport { registerGatewayWithLocator } from './registerHelpers.ts'\nimport { SimpleNetworkStakeViewer } from './SimpleNetworkStakeViewer.ts'\nimport {\n SimpleStepRewardsByPositionViewer, SimpleStepRewardsByStakerViewer, SimpleStepRewardsByStepViewer, SimpleStepRewardsTotalViewer, SimpleStepRewardsViewer,\n} from './SimpleStepRewards/index.ts'\nimport { SimpleStepViewer } from './SimpleStepViewer.ts'\n\n/** @deprecated use buildEmptyProviderLocator */\nexport interface BuildProviderLocatorParams {\n context?: Omit<CreatableProviderContext, 'locator'> & Partial<{ locator: CreatableProviderContext['locator'] }>\n}\n\n/** @deprecated use buildEmptyProviderLocator */\n\n/** Builds a provider locator with the given context and options. */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport function buildProviderLocator({ context = getEmptyProviderContext(ConfigZod.parse({})) }: BuildProviderLocatorParams = {}) {\n const {\n config, locator, singletons = {}, caches = {}, ...restOfContext\n } = context\n return new ProviderFactoryLocator({\n ...restOfContext, config, singletons, caches,\n }, locator?.registry)\n}\n\n/** @deprecated use buildSimpleProviderLocatorV2 instead */\n\n/** Parameters for building a simple provider locator. */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface BuildSimpleProviderLocatorParams extends BuildProviderLocatorParams, GatewayRunnerLocatorParams {\n}\n\n/** @deprecated use buildSimpleProviderLocatorV2 instead */\n\n/** Builds a simple provider locator with default configuration. */\nexport function buildSimpleProviderLocator(params?: BuildSimpleProviderLocatorParams) {\n const locator = buildProviderLocator(params)\n const positions: Position[] = []\n locator.registerMany([\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions }),\n SimpleNetworkStakeViewer.factory<SimpleNetworkStakeViewer>(SimpleNetworkStakeViewer.dependencies, {}),\n SimpleTimeSyncViewer.factory<SimpleTimeSyncViewer>(SimpleTimeSyncViewer.dependencies, {}),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies, {}),\n SimpleStepRewardsViewer.factory<SimpleStepRewardsViewer>(SimpleStepRewardsViewer.dependencies, {}),\n SimpleStepRewardsByPositionViewer.factory<SimpleStepRewardsByPositionViewer>(SimpleStepRewardsByPositionViewer.dependencies, {}),\n SimpleStepRewardsByStakerViewer.factory<SimpleStepRewardsByStakerViewer>(SimpleStepRewardsByStakerViewer.dependencies, {}),\n SimpleStepRewardsByStepViewer.factory<SimpleStepRewardsByStepViewer>(SimpleStepRewardsByStepViewer.dependencies, {}),\n SimpleStepRewardsTotalViewer.factory<SimpleStepRewardsTotalViewer>(SimpleStepRewardsTotalViewer.dependencies, {}),\n ])\n\n return registerGatewayWithLocator(locator, params?.signerAccount)\n}\n\n/** @deprecated use buildJsonRpcProviderLocatorV2 instead */\n\n/** Parameters for building a JSON-RPC provider locator. */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface BuildJsonRpcProviderLocatorParams extends BuildProviderLocatorParams, GatewayRunnerLocatorParams {\n transportFactory: TransportFactory\n}\n\n/** @deprecated use buildJsonRpcProviderLocatorV2 instead */\n\n/** Builds a JSON-RPC provider locator connecting to a remote node. */\nexport async function buildJsonRpcProviderLocator(params: BuildJsonRpcProviderLocatorParams) {\n const locator = buildProviderLocator(params)\n const transportFactory = params.transportFactory\n const positions: Position[] = []\n 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 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 JsonRpcNetworkStakeStepRewardsViewer.factory<JsonRpcNetworkStakeStepRewardsViewer>(\n JsonRpcNetworkStakeStepRewardsViewer.dependencies,\n { transport: await transportFactory({}) },\n ),\n JsonRpcXyoRunner.factory<JsonRpcXyoRunner>(JsonRpcXyoRunner.dependencies, { transport: await transportFactory(XyoRunnerRpcSchemas) }),\n JsonRpcXyoViewer.factory<JsonRpcXyoViewer>(JsonRpcXyoViewer.dependencies, { transport: await transportFactory(XyoViewerRpcSchemas) }),\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions }),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies, {}),\n ])\n\n return registerGatewayWithLocator(locator, params?.signerAccount)\n}\n\n/** deprecated use buildLocalProviderLocatorV2 instead */\n\n/** Parameters for building a local provider locator. */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface BuildLocalProviderLocatorParams extends BuildProviderLocatorParams, GatewayRunnerLocatorParams {\n balancesSummaryMap: MapType<string, WithHashMeta<BalancesStepSummary>>\n finalizedArchivist: ArchivistInstance\n node: NodeInstance\n pendingBlocksArchivist: ArchivistInstance\n pendingTransactionsArchivist: ArchivistInstance\n transfersSummaryMap: MapType<string, WithHashMeta<TransfersStepSummary>>\n}\n\n/** deprecated use buildLocalProviderLocatorV2 instead */\nexport function buildLocalProviderLocator(params: BuildLocalProviderLocatorParams) {\n const locator = buildSimpleProviderLocator(params)\n const {\n pendingTransactionsArchivist, pendingBlocksArchivist, balancesSummaryMap, transfersSummaryMap, finalizedArchivist, node,\n } = params\n locator.registerMany([\n SimpleMempoolViewer.factory<SimpleMempoolViewer>(SimpleMempoolViewer.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleMempoolRunner.factory<SimpleMempoolRunner>(SimpleMempoolRunner.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleAccountBalanceViewer.factory<SimpleAccountBalanceViewer>(SimpleAccountBalanceViewer.dependencies, { balancesSummaryMap, transfersSummaryMap }),\n SimpleFinalizationViewer.factory<SimpleFinalizationViewer>(SimpleFinalizationViewer.dependencies, { finalizedArchivist }),\n SimpleBlockViewer.factory<SimpleBlockViewer>(SimpleBlockViewer.dependencies, { finalizedArchivist }),\n SimpleXyoRunner.factory<SimpleXyoRunner>(SimpleXyoRunner.dependencies, {}),\n SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 10_000, syncInterval: 10_000 }),\n NodeXyoViewer.factory<NodeXyoViewer>(NodeXyoViewer.dependencies, { node }),\n ])\n\n return registerGatewayWithLocator(locator, params?.signerAccount)\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport type {\n ArchivistInstance, ModuleIdentifier, NodeInstance,\n} from '@xyo-network/sdk-js'\nimport { asAttachableArchivistInstance } from '@xyo-network/sdk-js'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol-lib'\nimport { creatableProvider } from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleXyoViewer, SimpleXyoViewerParams } from './SimpleXyoViewer.ts'\n\n/** @deprecated use SimpleXyoViewer instead */\nexport interface NodeXyoViewerParams extends SimpleXyoViewerParams {\n node: NodeInstance\n}\n\n@creatableProvider()\n/** @deprecated use SimpleXyoViewer instead */\n\n/** XYO viewer implementation for Node.js environments. */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class NodeXyoViewer extends SimpleXyoViewer<NodeXyoViewerParams> implements XyoViewer {\n protected static readonly finalizedArchivistPath: ModuleIdentifier = 'XYOChain:Chain:Finalized'\n\n protected get node() {\n return this.params.node\n }\n\n protected static getArchivist = async (node: NodeInstance, identifier: ModuleIdentifier) => {\n const archivist = await node.resolve(identifier)\n return assertEx(asAttachableArchivistInstance(archivist), () => `Could not resolve ${identifier} to an archivist instance`)\n }\n\n protected static async getFinalizedArchivistFromNode(node: NodeInstance): Promise<ArchivistInstance> {\n const resolved = await this.getArchivist(node, this.finalizedArchivistPath)\n return assertEx(resolved, () => `Could not resolve finalized archivist at ${this.finalizedArchivistPath}`)\n }\n}\n","import type { Tracer } from '@opentelemetry/api'\nimport type {\n Address,\n Hash, Promisable,\n} from '@xylabs/sdk-js'\nimport {\n assertEx,\n toAddress,\n} from '@xylabs/sdk-js'\nimport type { Payload, WithHashMeta } from '@xyo-network/sdk-js'\nimport type {\n AccountBalanceViewer,\n AttoXL1,\n BlockRate,\n BlockViewer, ChainContractViewer, ChainId,\n ChainQualifiedConfig, Count,\n FinalizationViewer,\n ForkHistory,\n MempoolViewer, NetworkStakeStepRewardsByPositionViewer, NetworkStakeViewer, Position,\n SingleTimeConfig,\n StakeViewer,\n StepIdentity, StepIdentityString,\n StepIndex,\n StepViewer,\n TimeDurations,\n TimeSyncViewer,\n TransactionViewer,\n XL1BlockNumber, XL1BlockRange, XL1RangeMultipliers,\n XyoViewer,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AccountBalanceViewerMoniker,\n asAttoXL1,\n asXL1BlockRange,\n BlockViewerMoniker,\n ChainContractViewerMoniker,\n FinalizationViewerMoniker,\n MempoolViewerMoniker, NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeViewerMoniker, StakeViewerMoniker, StepViewerMoniker, TimeSyncViewerMoniker, TransactionViewerMoniker, XYO_NETWORK_STAKING_ADDRESS,\n XYO_ZERO_ADDRESS,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n allStakersForStep,\n blockRangeSteps,\n creatableProvider,\n CreatableProviderParams,\n externalBlockRangeFromStep,\n externalBlockRangeFromXL1BlockRange,\n networkStakeStepRewardPositionWeight,\n stepRewardTotal,\n toStepIdentityString,\n weightedStakeForRangeByPosition,\n withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleXyoViewer. */\nexport interface SimpleXyoViewerParams extends CreatableProviderParams {\n initRewardsCache?: boolean\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Full-featured XYO viewer providing access to blocks, transactions, staking, rewards, and account balances. */\n@creatableProvider()\nexport class SimpleXyoViewer<TParams extends SimpleXyoViewerParams = SimpleXyoViewerParams> extends AbstractCreatableProvider<TParams> implements XyoViewer {\n static readonly defaultMoniker = XyoViewerMoniker\n\n static readonly dependencies = [\n AccountBalanceViewerMoniker,\n BlockViewerMoniker,\n FinalizationViewerMoniker,\n MempoolViewerMoniker,\n NetworkStakeViewerMoniker,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n StakeViewerMoniker,\n StepViewerMoniker,\n TimeSyncViewerMoniker,\n ]\n\n static readonly monikers = [XyoViewerMoniker]\n moniker = SimpleXyoViewer.defaultMoniker\n\n protected _tracer: Tracer | undefined\n\n private _accountBalanceViewer?: AccountBalanceViewer\n private _blockViewer?: BlockViewer\n private _chainContractViewer?: ChainContractViewer\n private _chainId!: ChainId\n private _finalizationViewer!: FinalizationViewer\n private _mempoolViewer?: MempoolViewer\n private _networkStakeViewer?: NetworkStakeViewer\n private _networkStepRewardsByPositionViewer?: NetworkStakeStepRewardsByPositionViewer\n private _rewardMultipliers?: XL1RangeMultipliers\n private _stakeViewer?: StakeViewer\n private _stepViewer?: StepViewer\n private _timeSyncViewer?: TimeSyncViewer\n private _transaction?: TransactionViewer\n\n get account() {\n return { balance: this._accountBalanceViewer! }\n }\n\n get block() {\n return this._blockViewer!\n }\n\n get chainContractViewer() {\n return this._chainContractViewer!\n }\n\n get finalization() {\n return this._finalizationViewer\n }\n\n get mempool() {\n return this._mempoolViewer!\n }\n\n get networkStake() {\n return this._networkStakeViewer!\n }\n\n get stake() {\n return this._stakeViewer!\n }\n\n get step() {\n return this._stepViewer!\n }\n\n get time() {\n return this._timeSyncViewer!\n }\n\n get transaction() {\n return this._transaction!\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get initRewardsCache() {\n return this.params.initRewardsCache ?? true\n }\n\n protected get networkStepRewardsByPositionViewer() {\n return this._networkStepRewardsByPositionViewer!\n }\n\n protected get rewardMultipliers() {\n this._rewardMultipliers = this._rewardMultipliers ?? this.params.rewardMultipliers ?? {}\n return this._rewardMultipliers\n }\n\n 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 = 10) {\n return await this.block.blocksByHash(hash, limit)\n }\n\n async blocksByNumber(blockNumber: XL1BlockNumber, limit = 10) {\n return await this.block.blocksByNumber(blockNumber, limit)\n }\n\n async chainId(): Promise<ChainId>\n async chainId(blockNumber: XL1BlockNumber): Promise<ChainId>\n async chainId(blockNumber: 'latest'): Promise<ChainId>\n async chainId(blockNumber: XL1BlockNumber | 'latest' = 'latest'): Promise<ChainId> {\n return await this.spanAsync('SimpleXyoViewer:chainId', async () => {\n const chainId = assertEx(\n blockNumber === 'latest' ? this._chainId : await this.chainContractViewer.chainIdAtBlockNumber(blockNumber),\n () => `Could not find block for chainId at block ${blockNumber}`,\n )\n return chainId\n }, this.context)\n }\n\n override async createHandler() {\n await super.createHandler()\n this._accountBalanceViewer = await this.locator.getInstance<AccountBalanceViewer>(AccountBalanceViewerMoniker)\n this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)\n this._chainContractViewer = await this.locator.getInstance<ChainContractViewer>(ChainContractViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance<FinalizationViewer>(FinalizationViewerMoniker)\n this._mempoolViewer = await this.locator.getInstance<MempoolViewer>(MempoolViewerMoniker)\n this._networkStakeViewer = await this.locator.getInstance<NetworkStakeViewer>(NetworkStakeViewerMoniker)\n this._networkStepRewardsByPositionViewer\n = await this.locator.getInstance<NetworkStakeStepRewardsByPositionViewer>(NetworkStakeStepRewardsByPositionViewerMoniker)\n this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)\n this._stepViewer = await this.locator.getInstance<StepViewer>(StepViewerMoniker)\n this._timeSyncViewer = await this.locator.getInstance<TimeSyncViewer>(TimeSyncViewerMoniker)\n this._transaction = await this.locator.getInstance<TransactionViewer>(TransactionViewerMoniker)\n this._chainId = await this._chainContractViewer.chainId()\n }\n\n async currentBlock() {\n return await this.block.currentBlock()\n }\n\n async currentBlockHash() {\n return await this.block.currentBlockHash()\n }\n\n async currentBlockNumber() {\n return await this.block.currentBlockNumber()\n }\n\n forkHistory(): Promisable<ForkHistory> {\n throw new Error('Method [forkHistory] not implemented.')\n }\n\n networkStakeStepRewardAddressHistory(_address: Address): Promise<Record<Address, AttoXL1>> {\n throw new Error('Method [networkStakeStepRewardAddressHistory] not implemented.')\n }\n\n networkStakeStepRewardAddressReward(_context: StepIdentity, _address: Address): Promise<Record<Address, AttoXL1>> {\n throw new Error('Method [networkStakeStepRewardAddressReward] not implemented.')\n }\n\n networkStakeStepRewardAddressShare(_context: StepIdentity, _address: Address): Promise<[bigint, bigint]> {\n throw new Error('Method [networkStakeStepRewardAddressShare] not implemented.')\n }\n\n networkStakeStepRewardClaimedByAddress(_address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardClaimedByAddress] not implemented.')\n }\n\n async networkStakeStepRewardForPosition(position: number, range: XL1BlockRange): Promise<[AttoXL1, AttoXL1]> {\n const cacheKey = `${position}|${range[0]}-${range[1]}`\n return await withContextCacheResponse(this.context, 'SimpleXyoViewer:networkStakeStepRewardForPosition', cacheKey, async () => {\n const externalRange = await externalBlockRangeFromXL1BlockRange(this.context, this.block, range)\n const positionCount = await this.stake.stakeEvents.positionCount(externalRange)\n if (positionCount === 0) {\n return [asAttoXL1(0n), asAttoXL1(0n)]\n }\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7])\n const rewards = await Promise.all(steps.map(step => this.networkStakeStepRewardForStepForPosition(step, position)))\n const positionReward = asAttoXL1(rewards.reduce((a, b) => a + b[0], 0n))\n const totalReward = asAttoXL1(rewards.reduce((a, b) => a + b[1], 0n))\n return [positionReward, totalReward]\n })\n }\n\n async networkStakeStepRewardForStep(stepContext: StepIdentity): Promise<AttoXL1> {\n return await stepRewardTotal(this.context, this.block, stepContext, this.rewardMultipliers)\n }\n\n async networkStakeStepRewardForStepForPosition(stepIdentity: StepIdentity, position: number): Promise<[AttoXL1, AttoXL1]> {\n const stepIdentityString = toStepIdentityString(stepIdentity)\n const cacheKey = `${stepIdentityString}|${position}`\n return await withContextCacheResponse(this.context, 'SimpleXyoViewer:networkStakeStepRewardForStepForPosition', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(this.context, this.block, stepIdentity)\n const stake = await this.stakeById(position)\n const numerator = stake.staked === XYO_NETWORK_STAKING_ADDRESS\n ? await weightedStakeForRangeByPosition(this.context, this.block, this.stake.stakeEvents, range, XYO_NETWORK_STAKING_ADDRESS, position)\n : 0n\n\n const denominator = await this.stepWeightedDenominator(stepIdentity)\n const totalReward = await this.networkStakeStepRewardForStep(stepIdentity)\n const positionReward = asAttoXL1(denominator > 0n ? totalReward * numerator / denominator : 0n)\n const result: [AttoXL1, AttoXL1] = [positionReward, totalReward]\n return result\n })\n }\n\n async networkStakeStepRewardPoolRewards(step: StepIdentity): Promise<Record<Address, AttoXL1>> {\n const stakes = await this.stake.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS)\n const rewards: [Address, [AttoXL1, AttoXL1]][] = []\n for (const stake of stakes) {\n rewards.push([stake.staker, (await this.networkStakeStepRewardForStepForPosition(\n step,\n stake.id,\n ))])\n }\n const result: Record<Address, AttoXL1> = {}\n for (const [staker, reward] of rewards) {\n result[staker] = asAttoXL1((result[staker] ?? 0n) + reward[0])\n }\n const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v > 0n))\n return filtered\n }\n\n networkStakeStepRewardPoolShares(_context: StepIdentity): Promise<Record<Address, bigint>> {\n throw new Error('Method [networkStakeStepRewardPoolShares] not implemented.')\n }\n\n async networkStakeStepRewardPositionWeight(stepContext: StepIdentity, position: number): Promise<bigint> {\n return await networkStakeStepRewardPositionWeight(this.context, this.block, this.stake.stakeEvents, stepContext, position)\n }\n\n networkStakeStepRewardPotentialPositionLoss(_context: StepIdentity, _position: number): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardPotentialPositionLoss] not implemented.')\n }\n\n networkStakeStepRewardRandomizer(_context: StepIdentity): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardRandomizer] not implemented.')\n }\n\n async networkStakeStepRewardStakerCount(stepContext: StepIdentity): Promise<number> {\n return Object.keys(await allStakersForStep(\n this.context,\n this.block,\n this.stake.stakeEvents,\n stepContext,\n XYO_NETWORK_STAKING_ADDRESS,\n )).length\n }\n\n networkStakeStepRewardUnclaimedByAddress(_address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardUnclaimedByAddress] not implemented.')\n }\n\n networkStakeStepRewardWeightForAddress(_context: StepIdentity, _address: Address): Promise<AttoXL1> {\n throw new Error('Method [networkStakeStepRewardWeightForAddress] not implemented.')\n }\n\n async networkStakeStepRewardsForPosition(position: number, range: XL1BlockRange): Promise<Record<StepIdentityString, [AttoXL1, AttoXL1]>> {\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7, 8])\n const rewards = await Promise.all(steps.map(async (step) => {\n return [toStepIdentityString(step), await this.networkStakeStepRewardForStepForPosition(step, position)] as [StepIdentityString, [AttoXL1, AttoXL1]]\n }))\n const result: Record<StepIdentityString, [AttoXL1, AttoXL1]> = {}\n for (const [step, reward] of rewards) {\n result[step] = reward\n }\n const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v[0] > 0n))\n return filtered\n }\n\n async networkStakeStepRewardsForRange(range: XL1BlockRange): Promise<AttoXL1> {\n return await this.spanAsync('networkStakeStepRewardsForRange', async () => {\n const steps = blockRangeSteps(range, [3, 4, 5, 6, 7, 8])\n const rewards = await Promise.all(steps.map(async (step) => {\n return await this.networkStakeStepRewardForStep(step)\n }))\n return asAttoXL1(rewards.reduce((a, b) => a + b, 0n))\n }, this.context)\n }\n\n async networkStakeStepRewardsForStepLevel(stepLevel: number, range: XL1BlockRange): Promise<AttoXL1> {\n const steps = blockRangeSteps(range, [stepLevel])\n const rewards = await Promise.all(steps.map(async (step) => {\n return await this.networkStakeStepRewardForStep(step)\n }))\n return asAttoXL1(rewards.reduce((a, b) => a + b, 0n))\n }\n\n payloadByHash(_hash: Hash): Promisable<WithHashMeta<Payload> | null> {\n throw new Error('Method [payloadByHash] not implemented.')\n }\n\n payloadsByHash(_hashes: Hash[]): Promisable<WithHashMeta<Payload>[]> {\n throw new Error('Method [payloadsByHash] not implemented.')\n }\n\n async rate(range: XL1BlockRange, timeUnit?: keyof TimeDurations): Promise<BlockRate> {\n return await this.block.rate(range, timeUnit)\n }\n\n async stakeById(id: number): Promise<Position> {\n return await this.stake.stakeById(id)\n }\n\n async stakeByStaker(staker: Address, slot: number): Promise<Position> {\n return await this.stake.stakeByStaker(staker, slot)\n }\n\n async stakedByStaker(staker: Address): Promise<Address[]> {\n const result = new Set<Address>()\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 = 0) {\n return await this.transaction.byBlockHashAndIndex(blockHash, transactionIndex)\n }\n\n async transactionByBlockNumberAndIndex(blockNumber: XL1BlockNumber, transactionIndex = 0) {\n return await this.transaction.byBlockNumberAndIndex(blockNumber, transactionIndex)\n }\n\n async transactionByHash(transactionHash: Hash) {\n return await this.transaction.byHash(transactionHash)\n }\n\n protected override async startHandler() {\n try {\n const currentBlockNumber = await this.currentBlockNumber()\n // initialize functions that have slow initial call\n await this.account.balance.accountBalance(XYO_ZERO_ADDRESS)\n if (this.initRewardsCache) {\n const externalRange = await externalBlockRangeFromXL1BlockRange(\n this.context,\n this.block,\n asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }),\n )\n const positionCount = await this.stake.stakeEvents.positionCount(externalRange)\n this.logger?.log(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n const positions = Array.from(\n { length: positionCount },\n (_, i) => i,\n )\n while (positions.length > 0) {\n const batch = positions.splice(0, 10)\n this.logger?.log(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition for positions ${batch.at(0)} - ${batch.at(-1)}`)\n await Promise.all(batch.map(async (_, position) => await this.networkStakeStepRewardForPosition(\n position,\n asXL1BlockRange([0, currentBlockNumber], { name: 'startHandler' }),\n )))\n }\n this.logger?.log(`SimpleXyoViewer: Precomputed networkStakeStepRewardForPosition up to position ${positionCount - 1}`)\n }\n } catch (ex) {\n this.logger?.error(`SimpleXyoViewer: Error during startHandler initialization: ${(ex as Error).message}`)\n this.logger?.error((ex as Error).stack ?? '<No Stack>')\n throw ex\n }\n }\n\n protected async stepWeightedDenominator(stepIdentity: StepIdentity, staked?: Address): Promise<bigint> {\n const cacheKey = toStepIdentityString(stepIdentity)\n return await withContextCacheResponse(this.context, 'NodeXyoViewer-networkStakeStepRewardForStepForPosition-denominator', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(this.context, this.block, stepIdentity)\n return await weightedStakeForRangeByPosition(this.context, this.block, this.stake.stakeEvents, range, staked)\n })\n }\n}\n","import type { AccountInstance } from '@xyo-network/sdk-js'\nimport type { Position } from '@xyo-network/xl1-protocol-lib'\nimport type { CreatableProviderContextType, ProviderFactoryLocator } from '@xyo-network/xl1-protocol-sdk'\nimport {\n SimpleStakeEventsViewer,\n SimpleStakeViewer,\n SimpleXyoGateway, SimpleXyoGatewayRunner,\n SimpleXyoSigner,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleXyoConnectionRunner } from './SimpleXyoConnectionRunner.ts'\n\n/** Parameters for configuring a gateway runner locator. */\nexport interface GatewayRunnerLocatorParams {\n /**\n * The account instance to be used to register a SimpleXyoSigner with the locator\n */\n signerAccount?: AccountInstance\n}\n\n/**\n * Registers a SimpleXyoGatewayRunner with the locator if a signerAccount is provided in params\n * @param locator The ProviderFactoryLocator to register the signer with\n * @param params The SignerLocatorParams containing the optional signerAccount\n * @returns The updated ProviderFactoryLocator\n * @deprecated Use registerGatewayWithLocator instead\n */\nexport const registerGatewayRunnerWithLocatorIfProvided = (\n locator: ProviderFactoryLocator<CreatableProviderContextType, string[]>,\n params?: GatewayRunnerLocatorParams,\n) => {\n const account = params?.signerAccount\n if (account) {\n locator.registerMany([\n SimpleXyoSigner.factory<SimpleXyoSigner>(SimpleXyoSigner.dependencies, { account }),\n SimpleXyoGatewayRunner.factory<SimpleXyoGatewayRunner>(SimpleXyoGatewayRunner.dependencies, {}),\n ])\n }\n return locator\n}\n\n/**\n * Registers a SimpleXyoGateway and SimpleXyoConnection with the locator\n * @param locator The ProviderFactoryLocator to register the signer with\n * @param account Optional AccountInstance to register a SimpleXyoSigner and SimpleXyoGatewayRunner with the locator\n * @returns The updated ProviderFactoryLocator\n */\nexport const registerGatewayWithLocator = (\n locator: ProviderFactoryLocator,\n account?: AccountInstance,\n) => {\n locator.registerMany([\n SimpleXyoConnectionRunner.factory<SimpleXyoConnectionRunner>(SimpleXyoConnectionRunner.dependencies, {}),\n SimpleXyoGateway.factory<SimpleXyoGateway>(SimpleXyoGateway.dependencies, {}),\n ])\n if (account) {\n locator.registerMany([\n SimpleXyoSigner.factory<SimpleXyoSigner>(SimpleXyoSigner.dependencies, { account }),\n SimpleXyoGatewayRunner.factory<SimpleXyoGatewayRunner>(SimpleXyoGatewayRunner.dependencies, {}),\n ])\n }\n return locator\n}\n\n/**\n * Registers a SimpleStakeViewer with the locator\n * @param locator The ProviderFactoryLocator to register the signer with\n * @param positions The positions to be used by the SimpleStakeViewer and SimpleStakeEventsViewer instances\n * @returns The updated ProviderFactoryLocator\n */\nexport const registerSimpleStakeViewerWithLocator = (\n locator: ProviderFactoryLocator,\n positions: Position[],\n) => {\n locator.registerMany([\n SimpleStakeViewer.factory<SimpleStakeViewer>(SimpleStakeViewer.dependencies, { positions }),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions }),\n ])\n return locator\n}\n","import { XyoViewer, XyoViewerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport {\n type DataLakeRunner, DataLakeRunnerMoniker, type DataLakeViewer, DataLakeViewerMoniker,\n type XyoConnection, XyoConnectionMoniker, type XyoNetwork, type XyoRunner, XyoRunnerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider, creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleXyoConnectionRunner. */\nexport interface SimpleXyoConnectionRunnerParams extends CreatableProviderParams {\n\n}\n\n/** XYO connection provider with both runner (write) and viewer (read) capabilities. */\n@creatableProvider()\nexport class SimpleXyoConnectionRunner<TParams extends SimpleXyoConnectionRunnerParams = SimpleXyoConnectionRunnerParams> extends\n AbstractCreatableProvider<TParams> implements XyoConnection {\n static readonly defaultMoniker = XyoConnectionMoniker\n static readonly dependencies = [XyoRunnerMoniker, XyoViewerMoniker]\n static readonly monikers = [XyoConnectionMoniker]\n moniker = SimpleXyoConnectionRunner.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 { assertEx } from '@xylabs/sdk-js'\nimport {\n FinalizationViewer,\n FinalizationViewerMoniker,\n NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n NetworkStakeViewer, NetworkStakeViewerMoniker,\n StakeTotalsViewer,\n StakeTotalsViewerMoniker,\n StakeViewer,\n StakeViewerMoniker,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n creatableProvider, CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleNetworkStakeViewer. */\nexport interface SimpleNetworkStakeViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Provider that views network-wide staking information including step rewards and active stake totals. */\n@creatableProvider()\nexport class SimpleNetworkStakeViewer extends AbstractCreatableProvider<SimpleNetworkStakeViewerParams> implements NetworkStakeViewer {\n static readonly defaultMoniker = NetworkStakeViewerMoniker\n static readonly dependencies = [NetworkStakeStepRewardsViewerMoniker]\n static readonly monikers = [NetworkStakeViewerMoniker]\n moniker = SimpleNetworkStakeViewer.defaultMoniker\n\n private _finalizationViewer!: FinalizationViewer\n private _stake!: StakeViewer\n private _stakeTotals!: StakeTotalsViewer\n private _stepRewardsViewer?: NetworkStakeStepRewardsViewer\n\n get stepRewards(): NetworkStakeStepRewardsViewer {\n return assertEx(this._stepRewardsViewer, () => 'Step rewards viewer not initialized')\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get rewardMultipliers() {\n return this.params.rewardMultipliers\n }\n\n protected get stake() {\n return this._stake\n }\n\n protected get stakeTotals() {\n return this._stakeTotals\n }\n\n async active(blockNumber?: number): Promise<[bigint, number]> {\n const resolvedBlockNumber = blockNumber ?? (await this.finalizationViewer.headNumber())\n return [await this.stakeTotals.active(resolvedBlockNumber), resolvedBlockNumber]\n }\n\n override async createHandler() {\n await super.createHandler()\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stake = await this.locator.getInstance(StakeViewerMoniker)\n this._stakeTotals = await this.locator.getInstance(StakeTotalsViewerMoniker)\n this._stepRewardsViewer = await this.locator.getInstance(NetworkStakeStepRewardsViewerMoniker)\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport { isArray } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByPositionViewer,\n NetworkStakeStepRewardsByPositionViewerOptions,\n StakeViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByPositionViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './primitives/index.ts'\n\n/** Configuration params for SimpleStepRewardsByPositionViewer. */\nexport interface SimpleStepRewardsByPositionViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Viewer for network stake step rewards broken down by staking position. */\n@creatableProvider()\nexport class SimpleStepRewardsByPositionViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByPositionViewerParams> implements NetworkStakeStepRewardsByPositionViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByPositionViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByPositionViewerMoniker]\n moniker = SimpleStepRewardsByPositionViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get stakeViewer() {\n return this._stakeViewer\n }\n\n async bonus({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n const total = await this.total({ range, positions })\n const earned = await this.earned({ range, positions })\n const result: Record<number, AttoXL1> = {}\n for (const pos of Object.keys(total).map(Number)) {\n result[pos] = asAttoXL1(total[pos] - (earned[pos] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByPositionViewerOptions): Promisable<Record<number, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker)\n }\n\n async earned({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n return await this.calculateRewards({ range, positions })\n }\n\n async total({ range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promise<Record<number, AttoXL1>> {\n return await this.calculateRewards({ range, positions }, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByPositionViewerOptions = {}): Promisable<Record<number, AttoXL1>> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected async calculateRewards(\n { range, positions }: NetworkStakeStepRewardsByPositionViewerOptions = {},\n rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<Record<number, AttoXL1>> {\n const result: Record<number, AttoXL1> = {}\n const steps = blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.head())[1]],\n { name: 'NodeStepRewardsByPositionViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of steps) {\n if (isArray(positions)) {\n for (const positionId of positions) {\n const position = await this.stakeViewer.stakeById(positionId)\n result[positionId] = asAttoXL1((result[positionId] ?? 0n) + (await networkStakeStepRewardEarnedForPosition(\n this.context,\n this.blockViewer,\n this.stakeViewer.stakeEvents,\n step,\n position,\n rewardMultipliers,\n ))[0])\n }\n }\n }\n return result\n }\n}\n","import type {\n BlockViewer,\n CachingContext,\n StakeViewer,\n StepIdentity, XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol-lib'\nimport { withContextCacheResponse } from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './networkStakeStepRewardEarnedForPosition.ts'\n\n/** Calculates the total earned step reward across all network staking positions for a given step. */\nexport async function networkStakeStepRewardEarned(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeViewer: StakeViewer,\n stepIdentity: StepIdentity,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const cacheKey = `${stepIdentity.block}|${stepIdentity.step}`\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarned', cacheKey, async () => {\n const positions = (await stakeViewer.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS))\n const results = await Promise.all(positions.map((pos) => {\n return networkStakeStepRewardEarnedForPosition(\n context,\n blockViewer,\n stakeViewer.stakeEvents,\n stepIdentity,\n pos,\n rewardMultipliers,\n )\n }))\n\n const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n)\n\n const result: [bigint, bigint] = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n]\n return result\n })\n}\n","import type {\n BlockViewer,\n CachingContext,\n Position,\n StakeEventsViewer,\n StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol-lib'\nimport {\n externalBlockRangeFromStep, stepRewardTotal, weightedStakeForRangeByPosition, withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Calculates the step reward earned by a specific staking position, returning [positionReward, totalReward]. */\nexport async function networkStakeStepRewardEarnedForPosition(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeEventsViewer: StakeEventsViewer,\n stepIdentity: StepIdentity,\n position: Position,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const cacheKey = `${stepIdentity.block}|${stepIdentity.step}|${position.id}`\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarnedForPosition', cacheKey, async () => {\n const range = await externalBlockRangeFromStep(context, blockViewer, stepIdentity)\n const numerator = position.staked === XYO_NETWORK_STAKING_ADDRESS\n ? await weightedStakeForRangeByPosition(\n context,\n blockViewer,\n stakeEventsViewer,\n range,\n XYO_NETWORK_STAKING_ADDRESS,\n position.id,\n )\n : 0n\n\n const denominator = await weightedStakeForRangeByPosition(\n context,\n blockViewer,\n stakeEventsViewer,\n range,\n )\n\n const totalReward = await stepRewardTotal(context, blockViewer, stepIdentity, rewardMultipliers)\n const positionReward = denominator > 0n ? totalReward * numerator / denominator : 0n\n const result: [bigint, bigint] = [positionReward, totalReward]\n return result\n })\n}\n","import type { Address } from '@xylabs/sdk-js'\nimport type {\n BlockViewer,\n CachingContext,\n StakeViewer,\n StepIdentity,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol-lib'\nimport {\n toStepIdentityString,\n withContextCacheResponse,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForPosition } from './networkStakeStepRewardEarnedForPosition.ts'\n\n/** Calculates the total step reward earned by a specific staker across all their network staking positions. */\nexport async function networkStakeStepRewardEarnedForStaker(\n context: CachingContext,\n blockViewer: BlockViewer,\n stakeViewer: StakeViewer,\n stepIdentity: StepIdentity,\n staker: Address,\n rewardMultipliers: XL1RangeMultipliers = {},\n): Promise<[bigint, bigint]> {\n const stepId = toStepIdentityString(stepIdentity)\n return await withContextCacheResponse(context, 'networkStakeStepRewardEarnedForStaker', `${stepId}-${staker}`, async () => {\n const positions = (await stakeViewer.stakesByStaker(staker)).filter(pos => pos.staked === XYO_NETWORK_STAKING_ADDRESS)\n const results = await Promise.all(positions.map((pos) => {\n return networkStakeStepRewardEarnedForPosition(\n context,\n blockViewer,\n stakeViewer.stakeEvents,\n stepIdentity,\n pos,\n rewardMultipliers,\n )\n }))\n\n const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n)\n\n const result: [bigint, bigint] = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n]\n return result\n })\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport { isArray } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByStakerViewer,\n NetworkStakeStepRewardsByStakerViewerOptions,\n StakeViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByStakerViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarnedForStaker } from './primitives/index.ts'\n\n/** Configuration params for SimpleStepRewardsByStakerViewer. */\nexport interface SimpleStepRewardsByStakerViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Viewer for network stake step rewards broken down by staker address. */\n@creatableProvider()\nexport class SimpleStepRewardsByStakerViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByStakerViewerParams> implements NetworkStakeStepRewardsByStakerViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByStakerViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByStakerViewerMoniker]\n moniker = SimpleStepRewardsByStakerViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get stakeViewer() {\n return this._stakeViewer\n }\n\n async bonus({ range, stakers }: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n const total = await this.total({ range, stakers })\n const earned = await this.earned({ range, stakers })\n const result: Record<Address, AttoXL1> = {}\n for (const staker of Object.keys(total) as Address[]) {\n result[staker] = asAttoXL1(total[staker] - (earned[staker] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByStakerViewerOptions): Promisable<Record<Address, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker)\n }\n\n async earned(options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n return await this.calculateRewards(options)\n }\n\n async total(options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {\n return await this.calculateRewards(options, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promisable<Record<Address, AttoXL1>> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected async calculateRewards(\n { range, stakers }: NetworkStakeStepRewardsByStakerViewerOptions = {},\n rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<Record<Address, AttoXL1>> {\n const result: Record<Address, AttoXL1> = {}\n const steps = blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.headNumber())],\n { name: 'NodeStepRewardsByStakerViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of steps) {\n if (isArray(stakers)) {\n for (const staker of stakers) {\n result[staker] = asAttoXL1((result[staker] ?? 0n) + (await networkStakeStepRewardEarnedForStaker(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n staker,\n rewardMultipliers,\n ))[0])\n }\n }\n }\n return result\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n BlockViewer,\n FinalizationViewer,\n NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerOptions,\n StakeViewer,\n StepIdentityString,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n asAttoXL1, asXL1BlockRange, BlockViewerMoniker, FinalizationViewerMoniker, NetworkStakeStepRewardsByStepViewerMoniker,\n StakeViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n blockRangeSteps,\n creatableProvider, toStepIdentityString,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { networkStakeStepRewardEarned } from './primitives/index.ts'\n\n/** Configuration params for SimpleStepRewardsByStepViewer. */\nexport interface SimpleStepRewardsByStepViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Viewer for network stake step rewards broken down by step identity. */\n@creatableProvider()\nexport class SimpleStepRewardsByStepViewer extends\n AbstractCreatableProvider<SimpleStepRewardsByStepViewerParams> implements NetworkStakeStepRewardsByStepViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsByStepViewerMoniker\n static readonly dependencies = [BlockViewerMoniker]\n static readonly monikers = [NetworkStakeStepRewardsByStepViewerMoniker]\n moniker = SimpleStepRewardsByStepViewer.defaultMoniker\n\n private _blockViewer!: BlockViewer\n private _finalizationViewer!: FinalizationViewer\n private _stakeViewer!: StakeViewer\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationViewer() {\n return this._finalizationViewer\n }\n\n protected get stakeViewer() {\n return this._stakeViewer\n }\n\n async bonus({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const total = await this.total({ range, steps })\n const earned = await this.earned({ range, steps })\n const result: Record<StepIdentityString, AttoXL1> = {}\n for (const stepString of Object.keys(total) as StepIdentityString[]) {\n result[stepString] = asAttoXL1(total[stepString] - (earned[stepString] ?? 0n))\n }\n return result\n }\n\n claimed(_options?: NetworkStakeStepRewardsByStepViewerOptions): Promisable<Record<StepIdentityString, AttoXL1>> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)\n this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)\n }\n\n async earned({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const result: Record<StepIdentityString, AttoXL1> = {}\n const resolvedSteps = steps ?? blockRangeSteps(asXL1BlockRange(\n range ?? [0, await this.finalizationViewer.headNumber()],\n { name: 'NodeStepRewardsByStepViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of resolvedSteps) {\n const stepIdentityString = toStepIdentityString(step)\n result[stepIdentityString] = asAttoXL1((result[stepIdentityString] ?? 0n) + (await networkStakeStepRewardEarned(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n ))[0])\n }\n return result\n }\n\n async total({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {\n const result: Record<StepIdentityString, AttoXL1> = {}\n const resolvedSteps = steps ?? blockRangeSteps(asXL1BlockRange(\n range ?? [0, (await this.finalizationViewer.head())[1]],\n { name: 'NodeStepRewardsByStepViewer' },\n ), [3, 4, 5, 6, 7])\n for (const step of resolvedSteps) {\n const stepIdentityString = toStepIdentityString(step)\n result[stepIdentityString] = asAttoXL1((result[stepIdentityString] ?? 0n)\n + (await networkStakeStepRewardEarned(\n this.context,\n this.blockViewer,\n this.stakeViewer,\n step,\n this.rewardMultipliers,\n ))[0])\n }\n return result\n }\n\n unclaimed(_options: NetworkStakeStepRewardsByStepViewerOptions = {}): Promisable<Record<StepIdentityString, AttoXL1>> {\n throw new Error('Method [unclaimed] ot implemented.')\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1,\n NetworkStakeStepRewardsRangeOptions,\n NetworkStakeStepRewardsTotalViewer,\n XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport { asAttoXL1, NetworkStakeStepRewardsTotalViewerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleStepRewardsTotalViewer. */\nexport interface SimpleStepRewardsTotalViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Viewer for aggregated total network stake step rewards across all positions. */\n@creatableProvider()\nexport class SimpleStepRewardsTotalViewer extends\n AbstractCreatableProvider<SimpleStepRewardsTotalViewerParams> implements NetworkStakeStepRewardsTotalViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsTotalViewerMoniker\n static readonly dependencies = []\n static readonly monikers = [NetworkStakeStepRewardsTotalViewerMoniker]\n moniker = SimpleStepRewardsTotalViewer.defaultMoniker\n\n get rewardMultipliers() {\n return this.params.rewardMultipliers ?? {}\n }\n\n async bonus({ range }: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n const total = await this.total({ range })\n const earned = await this.earned({ range })\n return asAttoXL1(total - earned)\n }\n\n claimed(_options?: NetworkStakeStepRewardsRangeOptions): Promisable<AttoXL1> {\n throw new Error('Method [claimed] not implemented.')\n }\n\n async earned(options: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n return await this.calculateRewards(options)\n }\n\n async total(options: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {\n return await this.calculateRewards(options, this.rewardMultipliers)\n }\n\n unclaimed(_options: NetworkStakeStepRewardsRangeOptions = {}): Promisable<AttoXL1> {\n throw new Error('Method [unclaimed] not implemented.')\n }\n\n protected calculateRewards(\n _options: NetworkStakeStepRewardsRangeOptions = {},\n _rewardMultipliers?: XL1RangeMultipliers,\n ): Promise<AttoXL1> {\n throw new Error('Method [calculateRewards] not implemented.')\n }\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport {\n BlockViewer,\n BlockViewerMoniker,\n NetworkStakeStepRewardsByPositionViewer,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeStepRewardsByStakerViewer,\n NetworkStakeStepRewardsByStakerViewerMoniker,\n NetworkStakeStepRewardsByStepViewer,\n NetworkStakeStepRewardsByStepViewerMoniker,\n NetworkStakeStepRewardsTotalViewer,\n NetworkStakeStepRewardsViewer, NetworkStakeStepRewardsViewerMoniker, type XL1RangeMultipliers,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleStepRewardsByPositionViewer } from './SimpleStepRewardsByPositionViewer.ts'\nimport { SimpleStepRewardsByStakerViewer } from './SimpleStepRewardsByStakerViewer.ts'\nimport { SimpleStepRewardsByStepViewer } from './SimpleStepRewardsByStepViewer.ts'\n\n/** Configuration params for SimpleStepRewardsViewer. */\nexport interface NodeStepRewardsViewerParams extends CreatableProviderParams {\n rewardMultipliers?: XL1RangeMultipliers\n}\n\n/** Composite viewer for network stake step rewards, providing access to position, staker, and step sub-viewers. */\n@creatableProvider()\nexport class SimpleStepRewardsViewer extends AbstractCreatableProvider<NodeStepRewardsViewerParams> implements NetworkStakeStepRewardsViewer {\n static readonly defaultMoniker = NetworkStakeStepRewardsViewerMoniker\n\n static readonly dependencies = [\n BlockViewerMoniker,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n NetworkStakeStepRewardsByStakerViewerMoniker,\n NetworkStakeStepRewardsByStepViewerMoniker,\n ]\n\n static readonly monikers = [NetworkStakeStepRewardsViewerMoniker]\n moniker = SimpleStepRewardsViewer.defaultMoniker\n\n private _blockViewer?: BlockViewer\n private _position?: SimpleStepRewardsByPositionViewer\n private _staker?: SimpleStepRewardsByStakerViewer\n private _step?: SimpleStepRewardsByStepViewer\n\n get position(): NetworkStakeStepRewardsByPositionViewer {\n return assertEx(this._position, () => 'Position viewer not initialized')\n }\n\n get staker(): NetworkStakeStepRewardsByStakerViewer {\n return assertEx(this._staker, () => 'Position viewer not initialized')\n }\n\n get step(): NetworkStakeStepRewardsByStepViewer {\n return assertEx(this._step, () => 'Step viewer not initialized')\n }\n\n get total(): NetworkStakeStepRewardsTotalViewer {\n throw new Error('Method [total] not implemented.')\n }\n\n protected get rewardMultipliers() {\n return this.params.rewardMultipliers\n }\n\n override async createHandler() {\n await super.createHandler()\n this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)\n this._position = await this.locator.getInstance<SimpleStepRewardsByPositionViewer>(NetworkStakeStepRewardsByPositionViewerMoniker)\n this._staker = await this.locator.getInstance<SimpleStepRewardsByStakerViewer>(NetworkStakeStepRewardsByStakerViewerMoniker)\n this._step = await this.locator.getInstance<SimpleStepRewardsByStepViewer>(NetworkStakeStepRewardsByStepViewerMoniker)\n }\n\n protected override async startHandler(): Promise<void> {\n await super.startHandler()\n await assertEx(this._position, () => 'Position viewer not created').start()\n await assertEx(this._staker, () => 'Staker viewer not created').start()\n await assertEx(this._step, () => 'Step viewer not created').start()\n }\n}\n","import {\n type Address,\n type Promisable,\n} from '@xylabs/sdk-js'\nimport {\n BlockViewer,\n BlockViewerMoniker,\n NetworkStakeStepRewardsViewer,\n NetworkStakeStepRewardsViewerMoniker,\n PagedPositionsOptions,\n PagedStakersOptions,\n Position,\n type PositionId, StakeEventsViewer, StakeEventsViewerMoniker, StakeViewer, StakeViewerMoniker, type StepIdentity, StepViewer, StepViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n CreatableProviderParams,\n externalBlockRangeFromStep,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleStepViewer. */\nexport interface SimpleStepViewerParams extends CreatableProviderParams {\n\n}\n\n/** Provider for viewing step-level staking data including positions, rewards, and stake weights. */\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(async 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 type {\n AccountInstance, ArchivistInstance, WithHashMeta,\n} from '@xyo-network/sdk-js'\nimport type { MapType } from '@xyo-network/xl1-protocol-lib'\nimport type {\n BalancesStepSummary, Config, TransfersStepSummary,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockViewer, SimpleFinalizationViewer, SimpleMempoolRunner, SimpleMempoolViewer,\n SimpleTimeSyncViewer, SimpleWindowedBlockViewer, SimpleXyoRunner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { TransportFactory } from '@xyo-network/xl1-rpc'\nimport {\n AccountBalanceViewerRpcSchemas, BlockViewerRpcSchemas, JsonRpcAccountBalanceViewer, JsonRpcBlockViewer,\n JsonRpcMempoolRunner, JsonRpcMempoolViewer, JsonRpcNetworkStakeStepRewardsViewer, JsonRpcNetworkStakeViewer, JsonRpcStakeTotalsViewer,\n JsonRpcTimeSyncViewer, JsonRpcXyoRunner, JsonRpcXyoViewer, MempoolRunnerRpcSchemas, MempoolViewerRpcSchemas, NetworkStakeViewerRpcSchemas,\n StakeTotalsViewerRpcSchemas, TimeSyncViewerRpcSchemas, XyoRunnerRpcSchemas, XyoViewerRpcSchemas,\n} from '@xyo-network/xl1-rpc'\n\nimport { registerGatewayWithLocator } from './registerHelpers.ts'\nimport { SimpleNetworkStakeViewer } from './SimpleNetworkStakeViewer.ts'\nimport {\n SimpleStepRewardsByPositionViewer, SimpleStepRewardsByStakerViewer, SimpleStepRewardsByStepViewer, SimpleStepRewardsTotalViewer, SimpleStepRewardsViewer,\n} from './SimpleStepRewards/index.ts'\nimport { SimpleStepViewer } from './SimpleStepViewer.ts'\nimport { SimpleXyoViewer } from './SimpleXyoViewer.ts'\n\n/** @deprecated Use locatorsFromConfig instead */\nexport function buildEmptyProviderLocator(config: Config) {\n return new ProviderFactoryLocator({\n config, singletons: {}, caches: {},\n })\n}\n\n/** @deprecated Use locatorsFromConfig instead */\nexport function buildSimpleProviderLocatorV2(config: Config, account?: AccountInstance) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const locator = buildEmptyProviderLocator(config)\n locator.registerMany([\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 ])\n return registerGatewayWithLocator(locator, account)\n}\n\n/** @deprecated Use locatorsFromConfig instead */\nexport async function buildJsonRpcProviderLocatorV2(config: Config, transportFactory: TransportFactory, account?: AccountInstance) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const locator = buildEmptyProviderLocator(config)\n 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 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 JsonRpcNetworkStakeStepRewardsViewer.factory<JsonRpcNetworkStakeStepRewardsViewer>(\n JsonRpcNetworkStakeStepRewardsViewer.dependencies,\n { transport: await transportFactory({}) },\n ),\n JsonRpcXyoRunner.factory<JsonRpcXyoRunner>(JsonRpcXyoRunner.dependencies, { transport: await transportFactory(XyoRunnerRpcSchemas) }),\n JsonRpcXyoViewer.factory<JsonRpcXyoViewer>(JsonRpcXyoViewer.dependencies, { transport: await transportFactory(XyoViewerRpcSchemas) }),\n ])\n return registerGatewayWithLocator(locator, account)\n}\n\n/** @deprecated Use locatorsFromConfig instead */\nexport interface BuildLocalProviderLocatorParamsV2 {\n account?: AccountInstance\n balancesSummaryMap: MapType<string, WithHashMeta<BalancesStepSummary>>\n finalizedArchivist: ArchivistInstance\n pendingBlocksArchivist: ArchivistInstance\n pendingTransactionsArchivist: ArchivistInstance\n transfersSummaryMap: MapType<string, WithHashMeta<TransfersStepSummary>>\n}\n\n/** @deprecated Use locatorsFromConfig instead */\n\n/** Builds a local provider locator v2 with the given configuration. */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport function buildLocalProviderLocatorV2(config: Config, params: BuildLocalProviderLocatorParamsV2) {\n const {\n account, pendingTransactionsArchivist, pendingBlocksArchivist, balancesSummaryMap, transfersSummaryMap, finalizedArchivist,\n } = params\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const locator = buildSimpleProviderLocatorV2(config, account)\n locator.registerMany([\n SimpleMempoolViewer.factory<SimpleMempoolViewer>(SimpleMempoolViewer.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleMempoolRunner.factory<SimpleMempoolRunner>(SimpleMempoolRunner.dependencies, { pendingTransactionsArchivist, pendingBlocksArchivist }),\n SimpleAccountBalanceViewer.factory<SimpleAccountBalanceViewer>(SimpleAccountBalanceViewer.dependencies, { balancesSummaryMap, transfersSummaryMap }),\n SimpleFinalizationViewer.factory<SimpleFinalizationViewer>(SimpleFinalizationViewer.dependencies, { finalizedArchivist }),\n SimpleBlockViewer.factory<SimpleBlockViewer>(SimpleBlockViewer.dependencies, { finalizedArchivist }),\n SimpleXyoRunner.factory<SimpleXyoRunner>(SimpleXyoRunner.dependencies, {}),\n SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 10_000, syncInterval: 10_000 }),\n SimpleXyoViewer.factory<SimpleXyoViewer>(SimpleXyoViewer.dependencies, {}),\n ])\n return locator\n}\n","import type { AccountInstance } from '@xyo-network/sdk-js'\nimport { XyoSignerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type { BaseConfigContext } from '@xyo-network/xl1-protocol-sdk'\nimport { ProviderFactoryLocator, SimpleXyoSigner } from '@xyo-network/xl1-protocol-sdk'\n\n/** Builds a SimpleXyoSigner v2 instance from a context and account. */\nexport async function buildSimpleXyoSignerV2(context: BaseConfigContext, account: AccountInstance) {\n const locator = new ProviderFactoryLocator(context)\n locator.register(\n SimpleXyoSigner.factory<SimpleXyoSigner>(SimpleXyoSigner.dependencies, { account }),\n )\n return await locator.getInstance<SimpleXyoSigner>(XyoSignerMoniker)\n}\n","import { isDefined } from '@xylabs/sdk-js'\nimport type {\n CreatableProviderFactory, ProviderFactoryLocatorInstance, RemoteConfig,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n ProviderFactoryLocator,\n RestDataLakeViewer,\n SimpleXyoGatewayRunner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { RpcTransport, XyoSignerRpcSchemas } from '@xyo-network/xl1-rpc'\nimport { JsonRpcXyoRunner, JsonRpcXyoSigner } from '@xyo-network/xl1-rpc'\n\nimport { SimpleXyoConnectionRunner } from '../SimpleXyoConnectionRunner.ts'\nimport type { BasicRemoteViewerLocatorOptions } from './basicRemoteViewerLocator.ts'\nimport { basicRemoteViewerLocator } from './basicRemoteViewerLocator.ts'\n\nexport interface BasicRemoteRunnerLocatorOptions extends BasicRemoteViewerLocatorOptions {\n additionalRunnerProviders?: CreatableProviderFactory[]\n signerFactory?: CreatableProviderFactory\n skipGatewayRunner?: boolean\n}\n\nexport async function basicRemoteRunnerLocator(\n name: string,\n remoteConfig: RemoteConfig,\n signerTransport: RpcTransport<XyoSignerRpcSchemas>,\n dataLakeEndpoint?: string,\n options?: BasicRemoteRunnerLocatorOptions,\n): Promise<ProviderFactoryLocatorInstance> {\n const remoteViewerLocator = await basicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, options)\n const locator = new ProviderFactoryLocator(remoteViewerLocator.context, {})\n\n const providers: CreatableProviderFactory[] = [\n SimpleXyoConnectionRunner.factory<SimpleXyoConnectionRunner>(SimpleXyoConnectionRunner.dependencies, {}),\n JsonRpcXyoRunner.factory<JsonRpcXyoRunner>(JsonRpcXyoRunner.dependencies, {}),\n ]\n\n if (!options?.skipGatewayRunner) {\n providers.push(\n SimpleXyoGatewayRunner.factory<SimpleXyoGatewayRunner>(SimpleXyoGatewayRunner.dependencies, {}),\n )\n }\n\n locator.registerMany([\n ...providers,\n ...options?.additionalRunnerProviders ?? [],\n ])\n\n if (options?.signerFactory) {\n locator.register(options.signerFactory)\n } else {\n locator.register(\n JsonRpcXyoSigner.factory<JsonRpcXyoSigner>(JsonRpcXyoSigner.dependencies, { transport: signerTransport }),\n )\n }\n\n if (isDefined(dataLakeEndpoint)) {\n const dataLakeViewerParams = { endpoint: dataLakeEndpoint }\n locator.register(RestDataLakeViewer.factory<RestDataLakeViewer>(RestDataLakeViewer.dependencies, dataLakeViewerParams))\n }\n\n locator.freeze()\n\n return locator\n}\n","import { isDefined } from '@xylabs/sdk-js'\nimport type { CreatableProviderFactory, RemoteConfig } from '@xyo-network/xl1-protocol-sdk'\nimport {\n ActorConfigZod,\n ProviderFactoryLocator,\n RestDataLakeViewer,\n SimpleTransactionViewer,\n SimpleXyoGateway,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleXyoConnectionViewer } from '../SimpleXyoConnectionViewer.ts'\nimport { commonLocatorFromConfig } from './commonLocatorFromConfig.ts'\nimport type { BlockValidators } from './remoteLocatorFromConfig.ts'\nimport { remoteLocatorFromConfig } from './remoteLocatorFromConfig.ts'\n\nexport interface BasicRemoteViewerLocatorOptions {\n additionalProviders?: CreatableProviderFactory[]\n validators?: BlockValidators\n}\n\nexport async function basicRemoteViewerLocator(\n name: string,\n remoteConfig: RemoteConfig,\n dataLakeEndpoint?: string,\n options?: BasicRemoteViewerLocatorOptions,\n) {\n const config = ActorConfigZod.parse({ name, remote: remoteConfig })\n const rootLocator = await commonLocatorFromConfig({\n config, singletons: {}, caches: {},\n })\n const remoteLocator = await remoteLocatorFromConfig(rootLocator.context, false, options?.validators)\n const locator = new ProviderFactoryLocator(remoteLocator.context, {})\n locator.registerMany([\n SimpleXyoGateway.factory<SimpleXyoGateway>(SimpleXyoGateway.dependencies, {}),\n SimpleXyoConnectionViewer.factory<SimpleXyoConnectionViewer>(SimpleXyoConnectionViewer.dependencies, {}),\n SimpleTransactionViewer.factory<SimpleTransactionViewer>(SimpleTransactionViewer.dependencies, {}),\n ...options?.additionalProviders ?? [],\n ])\n\n if (isDefined(dataLakeEndpoint)) {\n const dataLakeViewerParams = { endpoint: dataLakeEndpoint }\n locator.register(RestDataLakeViewer.factory<RestDataLakeViewer>(RestDataLakeViewer.dependencies, dataLakeViewerParams))\n }\n\n locator.freeze()\n\n return locator\n}\n","import { XyoViewer, XyoViewerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport {\n type DataLakeViewer, DataLakeViewerMoniker,\n type XyoConnection, XyoConnectionMoniker, type XyoNetwork,\n} from '@xyo-network/xl1-protocol-lib'\nimport {\n AbstractCreatableProvider, creatableProvider,\n CreatableProviderParams,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Configuration params for SimpleXyoConnectionViewer. */\nexport interface SimpleXyoConnectionViewerParams extends CreatableProviderParams {\n\n}\n\n/** Read-only XYO connection provider with viewer and optional data lake capabilities. */\n@creatableProvider()\nexport class SimpleXyoConnectionViewer<TParams extends SimpleXyoConnectionViewerParams = SimpleXyoConnectionViewerParams> extends\n AbstractCreatableProvider<TParams> implements XyoConnection {\n static readonly defaultMoniker = XyoConnectionMoniker\n static readonly dependencies = [XyoViewerMoniker]\n static readonly monikers = [XyoConnectionMoniker]\n moniker = SimpleXyoConnectionViewer.defaultMoniker\n\n protected _network?: XyoNetwork\n protected _storage?: DataLakeViewer\n protected _viewer?: XyoViewer\n\n get network(): XyoNetwork | undefined {\n return this._network\n }\n\n get storage(): 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._viewer = await this.locator.getInstance<XyoViewer>(XyoViewerMoniker)\n const dataLakeViewer = await this.locator.tryGetInstance<DataLakeViewer>(DataLakeViewerMoniker)\n this._storage = dataLakeViewer\n }\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type { BaseConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-protocol-sdk'\nimport {\n ProviderFactoryLocator,\n SimpleBlockRewardViewer,\n SimpleTimeSyncViewer,\n SimpleTransactionValidationViewer,\n SimpleTransactionViewer,\n SimpleWindowedBlockViewer,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { SimpleNetworkStakeViewer } from '../SimpleNetworkStakeViewer.ts'\nimport {\n SimpleStepRewardsByPositionViewer,\n SimpleStepRewardsByStakerViewer,\n SimpleStepRewardsByStepViewer,\n SimpleStepRewardsTotalViewer,\n SimpleStepRewardsViewer,\n} from '../SimpleStepRewards/index.ts'\nimport { SimpleStepViewer } from '../SimpleStepViewer.ts'\n\nexport function commonLocatorFromConfig(\n context: BaseConfigContext,\n validateDepsOnRegister = false,\n): Promisable<ProviderFactoryLocatorInstance> {\n const locator: ProviderFactoryLocatorInstance = new ProviderFactoryLocator(context, {}, validateDepsOnRegister)\n\n locator.registerMany([\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 SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 1000, syncInterval: 10_000 }),\n SimpleBlockRewardViewer.factory<SimpleBlockRewardViewer>(SimpleBlockRewardViewer.dependencies, {}),\n SimpleTransactionViewer.factory<SimpleTransactionViewer>(SimpleTransactionViewer.dependencies, {}),\n SimpleTransactionValidationViewer.factory<SimpleTransactionValidationViewer>(SimpleTransactionValidationViewer.dependencies, {}),\n ])\n return locator\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n HydratedBlockStateValidationFunction,\n HydratedBlockValidationFunction,\n} from '@xyo-network/xl1-protocol-lib'\nimport type { BaseConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-protocol-sdk'\nimport {\n ProviderFactoryLocator,\n SimpleBlockValidationViewer,\n SimpleStakeEventsViewer,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n JsonRpcAccountBalanceViewer,\n JsonRpcBlockViewer,\n JsonRpcFinalizationViewer,\n JsonRpcMempoolRunner,\n JsonRpcMempoolViewer,\n JsonRpcNetworkStakeViewer,\n JsonRpcStakeViewer,\n JsonRpcTransactionViewer,\n JsonRpcXyoViewer,\n} from '@xyo-network/xl1-rpc'\n\nexport interface BlockValidators {\n validateHydratedBlock?: HydratedBlockValidationFunction\n validateHydratedBlockState?: HydratedBlockStateValidationFunction\n}\n\nexport function remoteLocatorFromConfig(\n context: BaseConfigContext,\n validateDepsOnRegister = false,\n validators?: BlockValidators,\n): Promisable<ProviderFactoryLocatorInstance> {\n const locator = new ProviderFactoryLocator(context, {}, validateDepsOnRegister)\n\n locator.registerMany([\n JsonRpcMempoolViewer.factory<JsonRpcMempoolViewer>(JsonRpcMempoolViewer.dependencies, {}),\n JsonRpcMempoolRunner.factory<JsonRpcMempoolRunner>(JsonRpcMempoolRunner.dependencies, {}),\n JsonRpcAccountBalanceViewer.factory<JsonRpcAccountBalanceViewer>(JsonRpcAccountBalanceViewer.dependencies, {}),\n JsonRpcFinalizationViewer.factory<JsonRpcFinalizationViewer>(JsonRpcFinalizationViewer.dependencies, {}),\n JsonRpcBlockViewer.factory<JsonRpcBlockViewer>(JsonRpcBlockViewer.dependencies, {}),\n JsonRpcTransactionViewer.factory<JsonRpcTransactionViewer>(JsonRpcTransactionViewer.dependencies, {}),\n JsonRpcNetworkStakeViewer.factory<JsonRpcNetworkStakeViewer>(JsonRpcNetworkStakeViewer.dependencies, {}),\n JsonRpcStakeViewer.factory<JsonRpcStakeViewer>(JsonRpcStakeViewer.dependencies, {}),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions: [] }),\n JsonRpcXyoViewer.factory<JsonRpcXyoViewer>(JsonRpcXyoViewer.dependencies, {}),\n SimpleBlockValidationViewer.factory<SimpleBlockValidationViewer>(\n SimpleBlockValidationViewer.dependencies,\n { state: validators?.validateHydratedBlockState, protocol: validators?.validateHydratedBlock },\n ),\n ])\n\n return locator\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport type { ActorConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-protocol-sdk'\n\nimport { commonLocatorFromConfig } from './commonLocatorFromConfig.ts'\nimport type { BlockValidators } from './remoteLocatorFromConfig.ts'\nimport { remoteLocatorFromConfig } from './remoteLocatorFromConfig.ts'\n\nexport async function rootLocatorFromConfig(\n context: ActorConfigContext,\n validateDepsOnRegister = false,\n validators?: BlockValidators,\n): Promise<ProviderFactoryLocatorInstance> {\n const { config } = context\n await commonLocatorFromConfig(context, validateDepsOnRegister)\n const newLocator = await (config.remote.rpc\n ? remoteLocatorFromConfig(context, validateDepsOnRegister, validators)\n : undefined)\n const locator = assertEx(newLocator, () => 'Root locator could not be created from config. No supported configuration found.')\n locator.freeze()\n return locator\n}\n"],"mappings":"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","names":["SimpleStakeEventsViewer","SimpleStakeViewer","assertEx","creatableProvider","assertEx","creatableProvider","XyoViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","XyoViewerMoniker","creatableProvider","assertEx","FinalizationViewerMoniker","NetworkStakeViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","assertEx","FinalizationViewerMoniker","StakeViewerMoniker","NetworkStakeViewerMoniker","creatableProvider","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","XYO_NETWORK_STAKING_ADDRESS","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","externalBlockRangeFromStep","stepRewardTotal","weightedStakeForRangeByPosition","withContextCacheResponse","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","XYO_NETWORK_STAKING_ADDRESS","toStepIdentityString","withContextCacheResponse","toStepIdentityString","withContextCacheResponse","XYO_NETWORK_STAKING_ADDRESS","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","NetworkStakeStepRewardsByPositionViewerMoniker","creatableProvider","isArray","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","isArray","creatableProvider","asAttoXL1","asXL1BlockRange","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","AbstractCreatableProvider","blockRangeSteps","creatableProvider","toStepIdentityString","AbstractCreatableProvider","asAttoXL1","BlockViewerMoniker","FinalizationViewerMoniker","StakeViewerMoniker","blockRangeSteps","asXL1BlockRange","toStepIdentityString","creatableProvider","asAttoXL1","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","asAttoXL1","creatableProvider","assertEx","BlockViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","assertEx","BlockViewerMoniker","NetworkStakeStepRewardsByPositionViewerMoniker","NetworkStakeStepRewardsByStakerViewerMoniker","NetworkStakeStepRewardsByStepViewerMoniker","NetworkStakeStepRewardsViewerMoniker","creatableProvider","BlockViewerMoniker","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","StepViewerMoniker","AbstractCreatableProvider","creatableProvider","externalBlockRangeFromStep","AbstractCreatableProvider","BlockViewerMoniker","NetworkStakeStepRewardsViewerMoniker","StakeViewerMoniker","externalBlockRangeFromStep","StepViewerMoniker","creatableProvider","SimpleStakeViewer","SimpleStakeEventsViewer","ProviderFactoryLocator","SimpleAccountBalanceViewer","SimpleBlockViewer","SimpleFinalizationViewer","SimpleMempoolRunner","SimpleMempoolViewer","SimpleTimeSyncViewer","SimpleWindowedBlockViewer","SimpleXyoRunner","AccountBalanceViewerRpcSchemas","BlockViewerRpcSchemas","JsonRpcAccountBalanceViewer","JsonRpcBlockViewer","JsonRpcMempoolRunner","JsonRpcMempoolViewer","JsonRpcNetworkStakeStepRewardsViewer","JsonRpcNetworkStakeViewer","JsonRpcStakeTotalsViewer","JsonRpcTimeSyncViewer","JsonRpcXyoRunner","JsonRpcXyoViewer","MempoolRunnerRpcSchemas","MempoolViewerRpcSchemas","NetworkStakeViewerRpcSchemas","StakeTotalsViewerRpcSchemas","TimeSyncViewerRpcSchemas","XyoRunnerRpcSchemas","XyoViewerRpcSchemas","ProviderFactoryLocator","SimpleTimeSyncViewer","JsonRpcStakeTotalsViewer","StakeTotalsViewerRpcSchemas","JsonRpcAccountBalanceViewer","AccountBalanceViewerRpcSchemas","JsonRpcBlockViewer","BlockViewerRpcSchemas","JsonRpcMempoolRunner","MempoolRunnerRpcSchemas","JsonRpcMempoolViewer","MempoolViewerRpcSchemas","JsonRpcNetworkStakeViewer","NetworkStakeViewerRpcSchemas","JsonRpcTimeSyncViewer","TimeSyncViewerRpcSchemas","JsonRpcNetworkStakeStepRewardsViewer","JsonRpcXyoRunner","XyoRunnerRpcSchemas","JsonRpcXyoViewer","XyoViewerRpcSchemas","SimpleMempoolViewer","SimpleMempoolRunner","SimpleAccountBalanceViewer","SimpleFinalizationViewer","SimpleBlockViewer","SimpleXyoRunner","SimpleWindowedBlockViewer","ProviderFactoryLocator","SimpleXyoSigner","isDefined","ProviderFactoryLocator","RestDataLakeViewer","SimpleXyoGatewayRunner","JsonRpcXyoRunner","ProviderFactoryLocator","SimpleTransactionViewer","SimpleXyoGateway","XyoViewerMoniker","DataLakeViewerMoniker","XyoConnectionMoniker","AbstractCreatableProvider","creatableProvider","AbstractCreatableProvider","XyoViewerMoniker","DataLakeViewerMoniker","XyoConnectionMoniker","creatableProvider","ProviderFactoryLocator","SimpleTimeSyncViewer","SimpleWindowedBlockViewer","ProviderFactoryLocator","SimpleTimeSyncViewer","SimpleWindowedBlockViewer","ProviderFactoryLocator","SimpleStakeEventsViewer","JsonRpcAccountBalanceViewer","JsonRpcBlockViewer","JsonRpcMempoolRunner","JsonRpcMempoolViewer","JsonRpcNetworkStakeViewer","JsonRpcXyoViewer","ProviderFactoryLocator","SimpleXyoGateway","SimpleTransactionViewer","ProviderFactoryLocator","JsonRpcXyoRunner","SimpleXyoGatewayRunner","isDefined","RestDataLakeViewer","assertEx","assertEx"]}