@xyo-network/xl1-protocol-lib 1.26.7 → 1.26.9
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/network/Status.ts","../../src/providers/DataLake/Runner.ts","../../src/providers/DataLake/Viewer.ts","../../src/providers/signer/XyoSigner.ts","../../src/providers/XyoConnection.ts","../../src/providers/XyoGateway.ts","../../src/providers/XyoGatewayRunner.ts","../../src/providers/XyoRunner.ts","../../src/runners/Block.ts","../../src/runners/Finalization.ts","../../src/runners/Mempool.ts","../../src/validation/error.ts","../../src/validation/block/error.ts","../../src/validation/boundwitness/error.ts","../../src/validation/payload/error.ts","../../src/validation/transaction/error.ts","../../src/viewers/Block.ts","../../src/viewers/BlockInvalidation.ts","../../src/viewers/BlockReward.ts","../../src/viewers/BlockValidation.ts","../../src/viewers/ChainContract.ts","../../src/viewers/ChainStakeViewer.ts","../../src/viewers/Finalization.ts","../../src/viewers/Mempool.ts","../../src/viewers/NetworkStake/NetworkStakeViewer.ts","../../src/viewers/NetworkStake/Rewards/ByPositionViewer.ts","../../src/viewers/NetworkStake/Rewards/ByStakerViewer.ts","../../src/viewers/NetworkStake/Rewards/ByStepViewer.ts","../../src/viewers/NetworkStake/Rewards/TotalViewer.ts","../../src/viewers/NetworkStake/Rewards/Viewer.ts","../../src/viewers/NetworkStakeStepReward.ts","../../src/viewers/Stake.ts","../../src/viewers/StakeEvents.ts","../../src/viewers/StakeTotals.ts","../../src/viewers/StepStake.ts","../../src/viewers/StepViewer.ts","../../src/viewers/TimeSync.ts","../../src/viewers/Transaction.ts","../../src/viewers/TransactionInvalidation.ts","../../src/viewers/TransactionValidation.ts","../../src/viewers/TransferBalance.ts","../../src/viewers/WindowedBlock.ts","../../src/viewers/XyoViewer.ts","../../src/index.ts"],"sourcesContent":["import type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\n/** Schema identifier for network status payloads. */\nexport const NetworkStatusSchema = asSchema('network.xyo.chain.status', true)\n/** Schema type for NetworkStatus payloads. */\nexport type NetworkStatusSchema = typeof NetworkStatusSchema\n\n/** Possible states of the network: online, offline, degraded, or unknown. */\nexport type NetworkStatusState = 'online' | 'offline' | 'degraded' | 'unknown'\n\n/** Represents a single network status update with a time range and description. */\nexport type NetworkStatusUpdate = {\n end: number\n start: number\n update: string\n}\n\n/** Fields describing the current network status, including state and optional updates. */\nexport interface NetworkStatusFields {\n description: string\n state: NetworkStatusState\n updates?: NetworkStatusUpdate[]\n}\n\n/** A payload representing the current network status. */\nexport type NetworkStatus = Payload<NetworkStatusFields, NetworkStatusSchema>\n\n/** Type guard that checks whether a value is a NetworkStatus payload. */\nexport const isNetworkStatus = isPayloadOfSchemaType<NetworkStatus>(NetworkStatusSchema)\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { WriteArchivistFunctions } from '@xyo-network/sdk-js'\n\nimport type { DataLakeData, DataLakeProvider } from './Provider.ts'\nimport type { DataLakeViewer, DataLakeViewerMethods } from './Viewer.ts'\n\n/** Moniker identifier for the DataLakeRunner provider. */\nexport const DataLakeRunnerMoniker = 'DataLakeRunner' as const\n/** Type literal for the DataLakeRunner provider moniker. */\nexport type DataLakeRunnerMoniker = typeof DataLakeRunnerMoniker\n\n/** DataLakeRunnerMethods interface. */\nexport interface DataLakeRunnerMethods extends WriteArchivistFunctions<DataLakeData, DataLakeData, DataLakeData, Hash>, DataLakeViewerMethods {}\n\n/** Runner interface for executing DataLake operations. */\nexport interface DataLakeRunner extends DataLakeProvider<DataLakeRunnerMoniker>, DataLakeRunnerMethods, Omit<DataLakeViewer, 'moniker'> {}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { ReadArchivistFunctions, Sequence } from '@xyo-network/sdk-js'\n\nimport type { DataLakeData, DataLakeProvider } from './Provider.ts'\n\n/** Moniker identifier for the DataLakeViewer provider. */\nexport const DataLakeViewerMoniker = 'DataLakeViewer' as const\n/** Type literal for the DataLakeViewer provider moniker. */\nexport type DataLakeViewerMoniker = typeof DataLakeViewerMoniker\n\n/** DataLakeViewerMethods interface. */\nexport interface DataLakeViewerMethods extends ReadArchivistFunctions<DataLakeData, Hash, Sequence> {}\n\n/** Viewer interface for reading DataLake data. */\nexport interface DataLakeViewer extends DataLakeProvider<DataLakeViewerMoniker>, DataLakeViewerMethods {\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Payload, Signed } from '@xyo-network/sdk-js'\nimport type {\n AllowedBlockPayload, ChainId, Provider, SignedHydratedTransactionWithHashMeta, TransactionBoundWitness, TransactionFeesBigInt,\n} from '@xyo-network/xl1-protocol-model'\n\n/** Moniker identifier for the XyoSigner provider. */\nexport const XyoSignerMoniker = 'XyoSigner' as const\n/** Type literal for the XyoSigner provider moniker. */\nexport type XyoSignerMoniker = typeof XyoSignerMoniker\n\n/** XyoSignerMethods interface. */\nexport interface XyoSignerMethods {\n address(): Promisable<Address>\n // The tx passed in must have all the payloads (on and off chain) in the payloads array\n // Returns the signed transaction and the payloads array excluding the off-chain payloads.\n // The return value is ready to be broadcast to block producers\n signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta>\n}\n\n/** XyoSigner interface. */\nexport interface XyoSigner extends XyoSignerMethods, Provider<XyoSignerMoniker> {}\n\n/** XyoSignerDeprecated interface. */\nexport interface XyoSignerDeprecated {\n /** @deprecated use signTransaction instead */\n createSignedTransaction(\n chain: ChainId,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n nbf: number,\n exp: number,\n fees: TransactionFeesBigInt,\n from?: Address,\n ): Promisable<Signed<TransactionBoundWitness>>\n}\n","import type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeViewer, XyoViewer } from '../viewers/index.ts'\nimport type { DataLakeRunner, DataLakeViewer } from './DataLake/index.ts'\nimport type { XyoNetwork } from './XyoNetwork.ts'\nimport type { XyoRunner } from './XyoRunner.ts'\n\n/** Moniker identifier for the XyoConnection provider. */\nexport const XyoConnectionMoniker = 'XyoConnection' as const\n/** Type literal for the XyoConnection provider moniker. */\nexport type XyoConnectionMoniker = typeof XyoConnectionMoniker\n\n/** XyoConnection interface. */\nexport interface XyoConnection extends Provider<XyoConnectionMoniker> {\n network?: XyoNetwork\n networkStake?: NetworkStakeViewer\n runner?: XyoRunner\n storage?: DataLakeRunner | DataLakeViewer | (DataLakeRunner & DataLakeViewer)\n viewer?: XyoViewer\n}\n","import type { Provider, ProviderMoniker } from '@xyo-network/xl1-protocol-model'\n\nimport type { XyoConnection } from './XyoConnection.ts'\n\n/** Moniker identifier for the XyoGateway provider. */\nexport const XyoGatewayMoniker = 'XyoGateway' as const\n/** Type literal for the XyoGateway provider moniker. */\nexport type XyoGatewayMoniker = typeof XyoGatewayMoniker\n\n/** XyoGatewayMethods interface. */\nexport interface XyoGatewayMethods {}\n\n/** XyoGatewayProvider interface. */\nexport interface XyoGatewayProvider<\n TMoniker extends ProviderMoniker = ProviderMoniker> extends XyoGatewayMethods, Provider<TMoniker> {\n /**\n * Returns the connection provider for this gateway.\n */\n connection: XyoConnection\n}\n\n/** XyoGateway interface. */\nexport interface XyoGateway extends XyoGatewayProvider<XyoGatewayMoniker>, Provider<XyoGatewayMoniker> {\n}\n","import type {\n Address, Hash, Logger, Promisable,\n} from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport type {\n AllowedBlockPayload, AttoXL1, ChainId,\n SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,\n TransactionFeesBigInt, UnsignedHydratedTransaction, XL1BlockNumber,\n} from '@xyo-network/xl1-protocol-model'\n\nimport type { XyoSigner } from './signer/index.ts'\nimport type { XyoGatewayProvider } from './XyoGateway.ts'\n\n/** ConfirmSubmittedTransactionOptions type. */\nexport type ConfirmSubmittedTransactionOptions = {\n /**\n * Number of attempts to confirm the transaction.\n * Defaults to 20.\n */\n attempts?: number\n /**\n * Delay in milliseconds between confirmation attempts.\n * Defaults to 1000 (1 second).\n */\n delay?: number\n /**\n * Optional logger instance for logging progress.\n */\n logger?: Logger\n}\n\n/** Options for Transaction. */\nexport interface TransactionOptions {\n chain?: ChainId\n exp?: XL1BlockNumber\n fees?: TransactionFeesBigInt\n from?: Address\n nbf?: XL1BlockNumber\n}\n\n/** Moniker identifier for the XyoGatewayRunner provider. */\nexport const XyoGatewayRunnerMoniker = 'XyoGatewayRunner' as const\n/** Type literal for the XyoGatewayRunner provider moniker. */\nexport type XyoGatewayRunnerMoniker = typeof XyoGatewayRunnerMoniker\n\n/** XyoGatewayRunnerMethods interface. */\nexport interface XyoGatewayRunnerMethods {\n\n addPayloadsToChain(\n onChain: AllowedBlockPayload[],\n offChain: Payload[],\n options?: TransactionOptions\n ): Promisable<[Hash, SignedHydratedTransactionWithHashMeta]>\n\n addTransactionToChain(\n tx: UnsignedHydratedTransaction | SignedHydratedTransaction,\n offChain?: Payload[]\n ): Promisable<[Hash, SignedHydratedTransactionWithHashMeta]>\n\n confirmSubmittedTransaction(txHash: Hash, options?: ConfirmSubmittedTransactionOptions): Promisable<SignedHydratedTransaction>\n\n send(to: Address, amount: AttoXL1, options?: TransactionOptions): Promisable<Hash>\n sendMany(transfers: Record<Address, AttoXL1>, options?: TransactionOptions): Promisable<Hash>\n}\n\n/** Runner interface for executing XyoGateway operations. */\nexport interface XyoGatewayRunner extends XyoGatewayRunnerMethods, XyoGatewayProvider<XyoGatewayRunnerMoniker> {\n /**\n * Returns the signer for this gateway.\n */\n signer: XyoSigner\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type { Provider, SignedHydratedTransaction } from '@xyo-network/xl1-protocol-model'\n\nimport type { MempoolRunner } from '../runners/index.ts'\n\n/** XyoRunnerMethods interface. */\nexport interface XyoRunnerMethods {\n broadcastTransaction(transaction: SignedHydratedTransaction): Promisable<Hash>\n}\n\n/** Moniker identifier for the XyoRunner provider. */\nexport const XyoRunnerMoniker = 'XyoRunner' as const\n/** Type literal for the XyoRunner provider moniker. */\nexport type XyoRunnerMoniker = typeof XyoRunnerMoniker\n\n/** Runner interface for executing Xyo operations. */\nexport interface XyoRunner extends XyoRunnerMethods, Provider<XyoRunnerMoniker> {\n mempool: MempoolRunner\n}\n","import type { WithHashMeta } from '@xyo-network/sdk-js'\nimport type {\n BlockBoundWitness, Provider,\n SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\n\n/** BlockRunnerMethods interface. */\nexport interface BlockRunnerMethods {\n produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force: true): Promise<SignedHydratedBlockWithHashMeta>\n produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force?: false): Promise<SignedHydratedBlockWithHashMeta | undefined>\n}\n\n/** Moniker identifier for the BlockRunner provider. */\nexport const BlockRunnerMoniker = 'BlockRunner' as const\n/** Type literal for the BlockRunner provider moniker. */\nexport type BlockRunnerMoniker = typeof BlockRunnerMoniker\n\n/** Runner interface for executing Block operations. */\nexport interface BlockRunner extends BlockRunnerMethods, Provider<BlockRunnerMoniker> {\n next(head: WithHashMeta<BlockBoundWitness>): Promise<SignedHydratedBlockWithHashMeta | undefined>\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { Provider, SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol-model'\n\n/** FinalizationRunnerMethods interface. */\nexport interface FinalizationRunnerMethods {\n finalizeBlocks(blocks: SignedHydratedBlockWithHashMeta[]): Promise<Hash[]>\n}\n\n/** Moniker identifier for the FinalizationRunner provider. */\nexport const FinalizationRunnerMoniker = 'FinalizationRunner' as const\n/** Type literal for the FinalizationRunner provider moniker. */\nexport type FinalizationRunnerMoniker = typeof FinalizationRunnerMoniker\n\n/** Runner interface for executing Finalization operations. */\nexport interface FinalizationRunner extends FinalizationRunnerMethods, Provider<FinalizationRunnerMoniker> {\n finalizeBlock(block: SignedHydratedBlockWithHashMeta): Promise<Hash>\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedBlock, SignedHydratedTransaction,\n} from '@xyo-network/xl1-protocol-model'\n\n/** MempoolRunnerMethods interface. */\nexport interface MempoolRunnerMethods {\n submitBlocks(blocks: SignedHydratedBlock[]): Promise<Hash[]>\n submitTransactions(transactions: SignedHydratedTransaction[]): Promise<Hash[]>\n}\n\n/** Moniker identifier for the MempoolRunner provider. */\nexport const MempoolRunnerMoniker = 'MempoolRunner' as const\n/** Type literal for the MempoolRunner provider moniker. */\nexport type MempoolRunnerMoniker = typeof MempoolRunnerMoniker\n\n/** DEFAULT_MAX_EXP_AHEAD constant. */\nexport const DEFAULT_MAX_EXP_AHEAD = 1000\n\n/** Options for MempoolPrune. */\nexport interface MempoolPruneOptions {\n batchSize?: number\n maxCheck?: number\n maxPrune?: number\n}\n\n/** Runner interface for executing Mempool operations. */\nexport interface MempoolRunner extends MempoolRunnerMethods, Provider<MempoolRunnerMoniker> {\n prunePendingBlocks(options?: MempoolPruneOptions): Promise<[number, number]>\n prunePendingTransactions(options?: MempoolPruneOptions): Promise<[number, number]>\n}\n","import { type Hash, isHash } from '@xylabs/sdk-js'\nimport { isError } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\n\n/** Error thrown during validation operations. */\nexport class ValidationError<TValue = Payload> extends Error {\n hash: Hash\n value: TValue\n constructor(hash: Hash, value: TValue, message?: string, cause?: unknown) {\n super(message)\n this.hash = hash\n this.name = this.constructor.name\n this.value = value\n this.cause = cause\n }\n}\n\n/** Type guard that checks if a value is a valid ValidationError. */\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && isHash((error as ValidationError<TValue>)?.hash) && (error as ValidationError<TValue>)?.value !== undefined\n )\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type {\n BlockBoundWitness, ChainId, HydratedBlock,\n} from '@xyo-network/xl1-protocol-model'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\n/** Error thrown during Blockvalidation operations. */\nexport class BlockValidationError extends ValidationError<BlockBoundWitness> {}\n\n/** Type guard that checks if a value is a valid BlockValidationError. */\nexport const isBlockValidationError = (\n error: unknown,\n): error is BlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BlockValidationError.constructor.name\n )\n}\n\n/** Error thrown during HydratedBlockvalidation operations. */\nexport class HydratedBlockValidationError extends ValidationError<HydratedBlock> {}\n\n/** Type guard that checks if a value is a valid HydratedBlockValidationError. */\nexport const isHydratedBlockValidationError = (\n error: unknown,\n): error is HydratedBlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockValidationError.constructor.name\n )\n}\n\n/** Error thrown during HydratedBlockStatevalidation operations. */\nexport class HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {\n chainId: ChainId\n constructor(hash: Hash, chainId: ChainId, value: HydratedBlock, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.chainId = chainId\n }\n}\n\n/** Type guard that checks if a value is a valid HydratedBlockStateValidationError. */\nexport const isHydratedBlockStateValidationError = (\n error: unknown,\n): error is HydratedBlockStateValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockStateValidationError.constructor.name\n )\n}\n","import type { BoundWitness, HydratedBoundWitness } from '@xyo-network/sdk-js'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\n/** Error thrown during BoundWitnessvalidation operations. */\nexport class BoundWitnessValidationError extends ValidationError<BoundWitness> {}\n\n/** Type guard that checks if a value is a valid BoundWitnessValidationError. */\nexport const isBoundWitnessValidationError = (\n error: unknown,\n): error is BoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BoundWitnessValidationError.constructor.name\n )\n}\n\n/** Error thrown during HydratedBoundWitnessvalidation operations. */\nexport class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}\n\n/** Type guard that checks if a value is a valid HydratedBoundWitnessValidationError. */\nexport const isHydratedBoundWitnessValidationError = (\n error: unknown,\n): error is HydratedBoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBoundWitnessValidationError.constructor.name\n )\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport { type Payload } from '@xyo-network/sdk-js'\nimport type { HydratedBlock } from '@xyo-network/xl1-protocol-model'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\n/** Error thrown during InBlockPayloadvalidation operations. */\nexport class InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n constructor(hash: Hash, block: HydratedBlock, value: Payload, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.block = block\n }\n}\n\n/** Type guard that checks if a value is a valid InBlockPayloadValidationError. */\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === InBlockPayloadValidationError.constructor.name\n )\n}\n","import type { HydratedTransaction } from '@xyo-network/xl1-protocol-model'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\n/** Error thrown during HydratedTransactionvalidation operations. */\nexport class HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {}\n\n/** Type guard that checks if a value is a valid HydratedTransactionValidationError. */\nexport const isHydratedTransactionValidationError = (\n error: unknown,\n): error is HydratedTransactionValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedTransactionValidationError.constructor.name\n )\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type { Payload, WithHashMeta } from '@xyo-network/sdk-js'\nimport type {\n BlockRate, ChainId,\n Provider, ProviderMoniker, SignedHydratedBlockWithHashMeta, SingleTimeConfig, TimeDurations, XL1BlockNumber, XL1BlockRange,\n} from '@xyo-network/xl1-protocol-model'\n\n/** BlockViewerMethods interface. */\nexport interface BlockViewerMethods {\n blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>\n blocksByNumber(block: XL1BlockNumber, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>\n currentBlock(): Promisable<SignedHydratedBlockWithHashMeta>\n payloadsByHash(hashes: Hash[]): Promisable<WithHashMeta<Payload>[]>\n}\n\n/** Moniker identifier for the BlockViewer provider. */\nexport const BlockViewerMoniker = 'BlockViewer' as const\n/** Type literal for the BlockViewer provider moniker. */\nexport type BlockViewerMoniker = typeof BlockViewerMoniker\n\n/** Viewer interface for reading Block data. */\nexport interface BlockViewer<TMoniker extends ProviderMoniker = BlockViewerMoniker> extends BlockViewerMethods, Provider<TMoniker> {\n blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>\n blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>\n chainId(): Promisable<ChainId>\n chainId(blockNumber: XL1BlockNumber): Promisable<ChainId>\n chainId(blockNumber: 'latest'): Promisable<ChainId>\n currentBlockHash(): Promisable<Hash>\n currentBlockNumber(): Promisable<XL1BlockNumber>\n payloadByHash(hash: Hash): Promisable<WithHashMeta<Payload> | null>\n rate(range: XL1BlockRange, timeUnit?: keyof TimeDurations): Promisable<BlockRate>\n stepSizeRate(start: XL1BlockNumber, stepIndex: number, count?: number, timeUnit?: keyof TimeDurations): Promisable<BlockRate>\n timeDurationRate(\n timeConfig: SingleTimeConfig,\n startBlockNumber?: XL1BlockNumber,\n timeUnit?: keyof TimeDurations,\n toleranceMs?: number,\n maxAttempts?: number,\n ): Promisable<BlockRate>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedBlock, SignedHydratedBlockWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '@xyo-network/xl1-protocol-model'\nimport { z } from 'zod'\n\nimport type { HydratedBlockValidationError } from '../validation/index.ts'\n\n/** BlockInvalidationQualificationZod constant. */\nexport const BlockInvalidationQualificationZod = ChainQualificationZod\n/** BlockInvalidationQualification type. */\nexport type BlockInvalidationQualification = z.infer<typeof BlockInvalidationQualificationZod>\n/** Type guard that checks if a value is a valid BlockInvalidationQualification. */\nexport const isBlockInvalidationQualification = zodIsFactory(BlockInvalidationQualificationZod)\n\n/** BlockInvalidationConfigFieldsZod constant. */\nexport const BlockInvalidationConfigFieldsZod = z.object({\n state: z.boolean().optional(),\n value: z.boolean().optional(),\n})\n\n/** BlockInvalidationConfigZod constant. */\nexport const BlockInvalidationConfigZod = z.union([\n BlockInvalidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n BlockInvalidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n BlockInvalidationConfigFieldsZod,\n z.object({}),\n])\n\n/** BlockInvalidationConfig type. */\nexport type BlockInvalidationConfig = z.infer<typeof BlockInvalidationConfigZod>\n/** Type guard that checks if a value is a valid BlockInvalidationConfig. */\nexport const isBlockInvalidationConfig = zodIsFactory(BlockInvalidationConfigZod)\n\n/**\n * Checks if blocks are invalid (impossible to ever become valid) according to protocol rules.\n */\n\nexport interface BlockInvalidationViewerMethods {\n qualifiedInvalidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]>\n\n qualifiedInvalidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]>\n}\n\n/** Moniker identifier for the BlockInvalidationViewer provider. */\nexport const BlockInvalidationViewerMoniker = 'BlockInvalidationViewer' as const\n/** Type literal for the BlockInvalidationViewer provider moniker. */\nexport type BlockInvalidationViewerMoniker = typeof BlockInvalidationViewerMoniker\n\n/** Viewer interface for reading BlockInvalidation data. */\nexport interface BlockInvalidationViewer extends BlockInvalidationViewerMethods, Provider<BlockInvalidationViewerMoniker> {\n invalidateBlock(\n block: SignedHydratedBlock,\n config?: BlockInvalidationConfig\n ): Promisable<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>\n\n invalidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n invalidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n qualifiedInvalidateBlock(\n block: SignedHydratedBlock,\n config?: BlockInvalidationConfig\n ): Promisable<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockInvalidationQualification]>\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1, Provider, XL1BlockNumber,\n} from '@xyo-network/xl1-protocol-model'\n\n/** BlockRewardViewerMethods interface. */\nexport interface BlockRewardViewerMethods {\n // The amount of xl1 to send to the producer from the block reward\n allowedRewardForBlock(block: XL1BlockNumber): Promisable<AttoXL1>\n}\n\n/** Moniker identifier for the BlockRewardViewer provider. */\nexport const BlockRewardViewerMoniker = 'BlockRewardViewer' as const\n/** Type literal for the BlockRewardViewer provider moniker. */\nexport type BlockRewardViewerMoniker = typeof BlockRewardViewerMoniker\n\n/** Viewer interface for reading BlockReward data. */\nexport interface BlockRewardViewer extends BlockRewardViewerMethods, Provider<BlockRewardViewerMoniker> {}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedBlock, SignedHydratedBlockWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '@xyo-network/xl1-protocol-model'\nimport { z } from 'zod'\n\nimport type { HydratedBlockValidationError } from '../validation/index.ts'\n\n/** BlockValidationQualificationZod constant. */\nexport const BlockValidationQualificationZod = ChainQualificationZod\n/** BlockValidationQualification type. */\nexport type BlockValidationQualification = z.infer<typeof BlockValidationQualificationZod>\n/** Type guard that checks if a value is a valid BlockValidationQualification. */\nexport const isBlockValidationQualification = zodIsFactory(BlockValidationQualificationZod)\n\n/** BlockValidationConfigFieldsZod constant. */\nexport const BlockValidationConfigFieldsZod = z.object({\n value: z.boolean().optional(),\n state: z.boolean().optional(),\n})\n\n/** BlockValidationConfigZod constant. */\nexport const BlockValidationConfigZod = z.union([\n BlockValidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n BlockValidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n BlockValidationConfigFieldsZod,\n z.object({}),\n])\n\n/** BlockValidationConfig type. */\nexport type BlockValidationConfig = z.infer<typeof BlockValidationConfigZod>\n/** Type guard that checks if a value is a valid BlockValidationConfig. */\nexport const isBlockValidationConfig = zodIsFactory(BlockValidationConfigZod)\n\n/** BlockValidationViewerMethods interface. */\nexport interface BlockValidationViewerMethods {\n qualifiedValidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]>\n\n qualifiedValidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]>\n}\n\n/** Moniker identifier for the BlockValidationViewer provider. */\nexport const BlockValidationViewerMoniker = 'BlockValidationViewer' as const\n/** Type literal for the BlockValidationViewer provider moniker. */\nexport type BlockValidationViewerMoniker = typeof BlockValidationViewerMoniker\n\n/**\n * Checks if blocks are valid (currently valid) according to protocol rules. In the case that they are not valid, they may still become valid in the future.\n */\n\nexport interface BlockValidationViewer extends BlockValidationViewerMethods, Provider<BlockValidationViewerMoniker> {\n qualifiedValidateBlock(\n block: SignedHydratedBlock,\n config?: BlockValidationConfig\n ): Promisable<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockValidationQualification]>\n\n validateBlock(\n block: SignedHydratedBlock,\n config?: BlockValidationConfig\n ): Promisable<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>\n\n validateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n validateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n}\n","import type {\n Address, Hash, Promisable,\n} from '@xylabs/sdk-js'\nimport type {\n ChainId, Provider, XL1BlockNumber,\n} from '@xyo-network/xl1-protocol-model'\n\n/** ChainContractViewerMethods interface. */\nexport interface ChainContractViewerMethods {\n chainId(): Promisable<ChainId>\n forkedAtBlockNumber(): Promisable<XL1BlockNumber | null>\n forkedAtHash(): Promisable<Hash | null>\n forkedChainId(): Promisable<ChainId | null>\n minWithdrawalBlocks(): Promisable<number>\n rewardsContract(): Promisable<Address>\n stakingTokenAddress(): Promisable<Address>\n}\n\n/** Moniker identifier for the ChainContractViewer provider. */\nexport const ChainContractViewerMoniker = 'ChainContractViewer' as const\n/** Type literal for the ChainContractViewer provider moniker. */\nexport type ChainContractViewerMoniker = typeof ChainContractViewerMoniker\n\n/** Viewer interface for reading ChainContract data. */\nexport interface ChainContractViewer extends ChainContractViewerMethods, Provider<ChainContractViewerMoniker> {\n chainIdAtBlockNumber(blockNumber: XL1BlockNumber | 'latest'): Promisable<ChainId>\n forkedChainContractViewer(): Promisable<ChainContractViewer | null>\n}\n","import type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { ChainContractViewer } from './ChainContract.ts'\nimport type { StakeTotalsViewer } from './StakeTotals.ts'\n\n/** Moniker identifier for the ChainStakeViewer provider. */\nexport const ChainStakeViewerMoniker = 'ChainStakeViewer' as const\n/** Type literal for the ChainStakeViewer provider moniker. */\nexport type ChainStakeViewerMoniker = typeof ChainStakeViewerMoniker\n\n/** Viewer interface for reading ChainStake data. */\nexport interface ChainStakeViewer extends Omit<ChainContractViewer, 'moniker'>, Omit<StakeTotalsViewer, 'moniker'>,\n Provider<ChainStakeViewerMoniker> {\n\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type {\n ChainId, Provider, SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta, XL1BlockNumber,\n} from '@xyo-network/xl1-protocol-model'\n\n/** FinalizationViewerMethods interface. */\nexport interface FinalizationViewerMethods {\n head(): Promisable<SignedHydratedBlockWithHashMeta>\n}\n\n/** Moniker identifier for the FinalizationViewer provider. */\nexport const FinalizationViewerMoniker = 'FinalizationViewer' as const\n/** Type literal for the FinalizationViewer provider moniker. */\nexport type FinalizationViewerMoniker = typeof FinalizationViewerMoniker\n\n/** Viewer interface for reading Finalization data. */\nexport interface FinalizationViewer extends FinalizationViewerMethods, Provider<FinalizationViewerMoniker> {\n chainId(): Promisable<ChainId>\n headBlock(): Promisable<SignedBlockBoundWitnessWithHashMeta>\n headHash(): Promisable<Hash>\n headNumber(): Promisable<XL1BlockNumber>\n}\n","import { HashZod } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedBlockWithHashMeta, SignedHydratedTransactionWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\nimport { XL1BlockRangeZod } from '@xyo-network/xl1-protocol-model'\nimport { z } from 'zod'\n\n/** PendingTransactionsOptionsZod constant. */\nexport const PendingTransactionsOptionsZod = z.object({\n cursor: HashZod.optional(),\n limit: z.number().int().positive().optional(),\n window: XL1BlockRangeZod.optional(),\n})\n\n/** PendingTransactionsOptions type. */\nexport type PendingTransactionsOptions = z.infer<typeof PendingTransactionsOptionsZod>\n\n/** PendingBlocksOptionsZod constant. */\nexport const PendingBlocksOptionsZod = z.object({\n cursor: HashZod.optional(),\n limit: z.number().int().positive().optional(),\n window: XL1BlockRangeZod.optional(),\n})\n\n/** PendingBlocksOptions type. */\nexport type PendingBlocksOptions = z.infer<typeof PendingBlocksOptionsZod>\n\n/** MempoolViewerMethods interface. */\nexport interface MempoolViewerMethods {\n pendingBlocks(options?: PendingBlocksOptions): Promise<SignedHydratedBlockWithHashMeta[]>\n pendingTransactions(options?: PendingTransactionsOptions): Promise<SignedHydratedTransactionWithHashMeta[]>\n}\n\n/** Moniker identifier for the MempoolViewer provider. */\nexport const MempoolViewerMoniker = 'MempoolViewer' as const\n/** Type literal for the MempoolViewer provider moniker. */\nexport type MempoolViewerMoniker = typeof MempoolViewerMoniker\n\n/** Viewer interface for reading Mempool data. */\nexport interface MempoolViewer extends MempoolViewerMethods, Provider<MempoolViewerMoniker> {}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsViewer } from './Rewards/index.ts'\n\n/** NetworkStakeViewerMethods interface. */\nexport interface NetworkStakeViewerMethods {\n /** @returns the active stake and the number of active validators [active, block] */\n active(blockNumber?: number): Promisable<[bigint, number]>\n}\n\n/** Moniker identifier for the NetworkStakeViewer provider. */\nexport const NetworkStakeViewerMoniker = 'NetworkStakeViewer' as const\n/** Type literal for the NetworkStakeViewer provider moniker. */\nexport type NetworkStakeViewerMoniker = typeof NetworkStakeViewerMoniker\n\n/** Viewer interface for reading NetworkStake data. */\nexport interface NetworkStakeViewer extends NetworkStakeViewerMethods, Provider<NetworkStakeViewerMoniker> {\n stepRewards?: NetworkStakeStepRewardsViewer\n}\n","import type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsByPositionViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\n/** NetworkStakeStepRewardsByPositionViewerMethods interface. */\nexport interface NetworkStakeStepRewardsByPositionViewerMethods extends\n NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByPositionViewerOptions, number> {}\n\n/** Moniker identifier for the NetworkStakeStepRewardsByPositionViewer provider. */\nexport const NetworkStakeStepRewardsByPositionViewerMoniker = 'NetworkStakeStepRewardsByPositionViewer' as const\n/** Type literal for the NetworkStakeStepRewardsByPositionViewer provider moniker. */\nexport type NetworkStakeStepRewardsByPositionViewerMoniker = typeof NetworkStakeStepRewardsByPositionViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepRewardsByPosition data. */\nexport interface NetworkStakeStepRewardsByPositionViewer extends NetworkStakeStepRewardsByPositionViewerMethods,\n Provider<NetworkStakeStepRewardsByPositionViewerMoniker> {}\n","import type { Address } from '@xylabs/sdk-js'\nimport type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsByStakerViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\n/** NetworkStakeStepRewardsByStakerViewerMethods interface. */\nexport interface NetworkStakeStepRewardsByStakerViewerMethods\n extends NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStakerViewerOptions, Address> {}\n\n/** Moniker identifier for the NetworkStakeStepRewardsByStakerViewer provider. */\nexport const NetworkStakeStepRewardsByStakerViewerMoniker = 'NetworkStakeStepRewardsByStakerViewer' as const\n/** Type literal for the NetworkStakeStepRewardsByStakerViewer provider moniker. */\nexport type NetworkStakeStepRewardsByStakerViewerMoniker = typeof NetworkStakeStepRewardsByStakerViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepRewardsByStaker data. */\nexport interface NetworkStakeStepRewardsByStakerViewer extends NetworkStakeStepRewardsByStakerViewerMethods,\n Provider<NetworkStakeStepRewardsByStakerViewerMoniker> {}\n","import type { Provider, StepIdentityString } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsByStepViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\n/** NetworkStakeStepRewardsByStepViewerMethods interface. */\nexport interface NetworkStakeStepRewardsByStepViewerMethods extends\n NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStepViewerOptions, StepIdentityString> {}\n\n/** Moniker identifier for the NetworkStakeStepRewardsByStepViewer provider. */\nexport const NetworkStakeStepRewardsByStepViewerMoniker = 'NetworkStakeStepRewardsByStepViewer' as const\n/** Type literal for the NetworkStakeStepRewardsByStepViewer provider moniker. */\nexport type NetworkStakeStepRewardsByStepViewerMoniker = typeof NetworkStakeStepRewardsByStepViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepRewardsByStep data. */\nexport interface NetworkStakeStepRewardsByStepViewer extends NetworkStakeStepRewardsByStepViewerMethods, Provider<NetworkStakeStepRewardsByStepViewerMoniker> {}\n","import type { AttoXL1, Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsRangeOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\n/** NetworkStakeStepRewardsTotalViewerMethods interface. */\nexport interface NetworkStakeStepRewardsTotalViewerMethods extends NetworkStakeStepRewardsViewerMethodsTemplate<NetworkStakeStepRewardsRangeOptions, AttoXL1> {}\n\n/** Moniker identifier for the NetworkStakeStepRewardsTotalViewer provider. */\nexport const NetworkStakeStepRewardsTotalViewerMoniker = 'NetworkStakeStepRewardsTotalViewer' as const\n/** Type literal for the NetworkStakeStepRewardsTotalViewer provider moniker. */\nexport type NetworkStakeStepRewardsTotalViewerMoniker = typeof NetworkStakeStepRewardsTotalViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepRewardsTotal data. */\nexport interface NetworkStakeStepRewardsTotalViewer extends NetworkStakeStepRewardsTotalViewerMethods, Provider<NetworkStakeStepRewardsTotalViewerMoniker> {}\n","import type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsByPositionViewer } from './ByPositionViewer.ts'\nimport type { NetworkStakeStepRewardsByStakerViewer } from './ByStakerViewer.ts'\nimport type { NetworkStakeStepRewardsByStepViewer } from './ByStepViewer.ts'\nimport type { NetworkStakeStepRewardsTotalViewer } from './TotalViewer.ts'\n\n/** NetworkStakeStepRewardsViewerMethods interface. */\nexport interface NetworkStakeStepRewardsViewerMethods {}\n\n/** Moniker identifier for the NetworkStakeStepRewardsViewer provider. */\nexport const NetworkStakeStepRewardsViewerMoniker = 'NetworkStakeStepRewardsViewer' as const\n/** Type literal for the NetworkStakeStepRewardsViewer provider moniker. */\nexport type NetworkStakeStepRewardsViewerMoniker = typeof NetworkStakeStepRewardsViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepRewards data. */\nexport interface NetworkStakeStepRewardsViewer extends NetworkStakeStepRewardsViewerMethods, Provider<NetworkStakeStepRewardsViewerMoniker> {\n position?: NetworkStakeStepRewardsByPositionViewer\n staker?: NetworkStakeStepRewardsByStakerViewer\n step?: NetworkStakeStepRewardsByStepViewer\n total?: NetworkStakeStepRewardsTotalViewer\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1, Provider, StepIdentity, StepIdentityString,\n} from '@xyo-network/xl1-protocol-model'\n\n/** NetworkStakeStepAddressRewardViewerMethods interface. */\nexport interface NetworkStakeStepAddressRewardViewerMethods {\n // the step rewards for a specific network stakers for all of history\n networkStakeStepRewardAddressHistory(address: Address): Promisable<Record<Address, AttoXL1>>\n\n // the step rewards for a specific network stakers for a given step and block\n networkStakeStepRewardAddressReward(context: StepIdentity, address: Address): Promisable<Record<Address, AttoXL1>>\n\n // the shares for a specific network staker for a given step and block\n networkStakeStepRewardAddressShare(context: StepIdentity, address: Address): Promisable<[/* address shares */bigint, /* total shares */bigint]>\n\n // estimate the current reward weight for a given address at a given step\n networkStakeStepRewardWeightForAddress(context: StepIdentity, address: Address): Promisable<bigint>\n}\n\n/** NetworkStakeStepPoolRewardViewerMethods interface. */\nexport interface NetworkStakeStepPoolRewardViewerMethods {\n\n // all the step rewards for all the network stakers for a given step and block\n networkStakeStepRewardPoolRewards(context: StepIdentity): Promisable<Record<Address, AttoXL1>>\n\n // all the shares for all the network stakers for a given step and block\n networkStakeStepRewardPoolShares(context: StepIdentity): Promisable<Record<Address, bigint>>\n}\n\n/** NetworkStakeStepRewardPositionViewerMethods interface. */\nexport interface NetworkStakeStepRewardPositionViewerMethods {\n // estimate the current weight for a given position at a given step\n networkStakeStepRewardPositionWeight(context: StepIdentity, position: number): Promisable<bigint>\n\n // estimate the potential loss for removing a given position at a given step\n networkStakeStepRewardPotentialPositionLoss(context: StepIdentity, position: number): Promisable<AttoXL1>\n}\n\n/** NetworkStakeStepRewardViewerMethods interface. */\nexport interface NetworkStakeStepRewardViewerMethods extends\n NetworkStakeStepPoolRewardViewerMethods,\n NetworkStakeStepAddressRewardViewerMethods,\n NetworkStakeStepRewardPositionViewerMethods\n{\n networkStakeStepRewardClaimedByAddress(address: Address): Promisable<AttoXL1>\n\n // the share & total rewards for a given position\n networkStakeStepRewardForPosition(position: number, range: [number, number]): Promisable<[AttoXL1, AttoXL1]>\n\n // estimate the total possible block rewards for a given step\n networkStakeStepRewardForStep(context: StepIdentity): Promisable<AttoXL1>\n\n // the share & total rewards for a given step and block for a given position\n networkStakeStepRewardForStepForPosition(context: StepIdentity, position: number): Promisable<[AttoXL1, AttoXL1]>\n\n // the predictable random number for a given step and block\n networkStakeStepRewardRandomizer(context: StepIdentity): Promisable<AttoXL1>\n\n // the total number of stakers for a given step and block\n networkStakeStepRewardStakerCount(context: StepIdentity): Promisable<number>\n\n networkStakeStepRewardUnclaimedByAddress(address: Address): Promisable<AttoXL1>\n\n // the share & total rewards for a given position for each step in range\n networkStakeStepRewardsForPosition(position: number,\n range: [number, number]): Promisable<Record<StepIdentityString, [AttoXL1, AttoXL1]>>\n\n // the total rewards for a given range\n networkStakeStepRewardsForRange(range: [number, number]): Promisable<AttoXL1>\n\n // the total rewards for a given range and step level\n networkStakeStepRewardsForStepLevel(stepLevel: number, range: [number, number]): Promisable<AttoXL1>\n}\n\n/** Moniker identifier for the NetworkStakeStepRewardViewer provider. */\nexport const NetworkStakeStepRewardViewerMoniker = 'NetworkStakeStepRewardViewer' as const\n/** Type literal for the NetworkStakeStepRewardViewer provider moniker. */\nexport type NetworkStakeStepRewardViewerMoniker = typeof NetworkStakeStepRewardViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepReward data. */\nexport interface NetworkStakeStepRewardViewer extends NetworkStakeStepRewardViewerMethods, Provider<NetworkStakeStepRewardViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Position, Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { StakeEventsViewer } from './StakeEvents.ts'\n\n/** StakeViewerProperties interface. */\nexport interface StakeViewerProperties {\n stakeEvents: StakeEventsViewer\n}\n\n/** StakeViewerMethods interface. */\nexport interface StakeViewerMethods {\n minWithdrawalBlocks(): Promisable<number>\n rewardsContract(): Promisable<Address>\n stakeById(id: number): Promisable<Position>\n stakeByStaker(staker: Address, slot: number): Promisable<Position>\n stakesByStaked(staked: Address): Promisable<Position[]>\n stakesByStaker(staker: Address): Promisable<Position[]>\n stakingTokenAddress(): Promisable<Address>\n}\n\n/** Moniker identifier for the StakeViewer provider. */\nexport const StakeViewerMoniker = 'StakeViewer' as const\n/** Type literal for the StakeViewer provider moniker. */\nexport type StakeViewerMoniker = typeof StakeViewerMoniker\n\n/** Viewer interface for reading Stake data. */\nexport interface StakeViewer extends StakeViewerMethods, StakeViewerProperties, Provider<StakeViewerMoniker> {\n activeStakes(): Promisable<Position[]>\n removedStakes(): Promisable<Position[]>\n withdrawnStakes(): Promisable<Position[]>\n}\n\n/** Moniker identifier for the StakeRunner provider. */\nexport const StakeRunnerMoniker = 'StakeRunner' as const\n/** Type literal for the StakeRunner provider moniker. */\nexport type StakeRunnerMoniker = typeof StakeRunnerMoniker\n\n/** Runner interface for executing Stake operations. */\nexport interface StakeRunner extends Provider<StakeRunnerMoniker> {\n addStake(staked: string, amount: bigint): Promise<boolean>\n removeStake(slot: bigint): Promise<boolean>\n withdrawStake(slot: bigint): Promise<boolean>\n}\n","import type {\n Address, JsonObject, Promisable,\n} from '@xylabs/sdk-js'\nimport type { Provider } from '@xyo-network/xl1-protocol-model'\n\n/** StakeEventNames constant. */\nexport const StakeEventNames = ['StakeAdded', 'StakeRemoved', 'StakeWithdrawn'] as const\n/** StakeEventName type. */\nexport type StakeEventName = typeof StakeEventNames[number]\n\n/** ExternalEvent interface. */\nexport interface ExternalEvent<TName extends string = string, TArgs extends JsonObject = {}> {\n args: TArgs\n name: TName\n time: number // usually block number\n}\n\n/** EventFilter interface. */\nexport interface EventFilter<TName extends string = string> {\n name?: TName\n time?: [number, number]\n}\n\n/** StakeEventArgs interface. */\nexport interface StakeEventArgs {\n amount: bigint\n id: number\n staked: Address\n staker: Address\n}\n\n/** StakeEventFilterArgs type. */\nexport type StakeEventFilterArgs = Partial<Pick<StakeEventArgs, 'staker' | 'staked' | 'id'>>\n\n/** StakeEventFilter interface. */\nexport interface StakeEventFilter<TName extends StakeEventName = StakeEventName> extends EventFilter<TName> {\n args?: StakeEventFilterArgs\n}\n\n/** StakeEvent interface. */\nexport interface StakeEvent<TName extends StakeEventName = StakeEventName> extends ExternalEvent<TName> {\n args: StakeEventArgs\n}\n\n/** Moniker identifier for the StakeEventsViewer provider. */\nexport const StakeEventsViewerMoniker = 'StakeEventsViewer' as const\n/** Type literal for the StakeEventsViewer provider moniker. */\nexport type StakeEventsViewerMoniker = typeof StakeEventsViewerMoniker\n\n/** Viewer interface for reading StakeEvents data. */\nexport interface StakeEventsViewer extends Provider<StakeEventsViewerMoniker> {\n positionCount(range: [number, number | 'latest']): Promisable<number>\n stakeEvents<TName extends StakeEventName>(range: [number, number | 'latest'], filter?: StakeEventFilter<TName>): Promisable<StakeEvent<TName>[]>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Provider } from '@xyo-network/xl1-protocol-model'\n\n/** StakeTotalsViewerMethods interface. */\nexport interface StakeTotalsViewerMethods {\n active(time?: number): Promisable<bigint>\n activeByStaked(staked: Address, time?: number): Promisable<bigint>\n activeByStaker(address: Address, time?: number): Promisable<bigint>\n pending(time?: number): Promisable<bigint>\n pendingByStaker(staker: Address, time?: number): Promisable<bigint>\n withdrawn(time?: number): Promisable<bigint>\n withdrawnByStaker(staker: Address, time?: number): Promisable<bigint>\n}\n\n/** Moniker identifier for the StakeTotalsViewer provider. */\nexport const StakeTotalsViewerMoniker = 'StakeTotalsViewer' as const\n/** Type literal for the StakeTotalsViewer provider moniker. */\nexport type StakeTotalsViewerMoniker = typeof StakeTotalsViewerMoniker\n\n/** Viewer interface for reading StakeTotals data. */\nexport interface StakeTotalsViewer extends StakeTotalsViewerMethods, Provider<StakeTotalsViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Provider, StepIdentity } from '@xyo-network/xl1-protocol-model'\n\n/** StepStakeViewerMethods interface. */\nexport interface StepStakeViewerMethods {\n // this is the prorated stake for all addresses in the step\n stepStake: (step: StepIdentity) => Promisable<Record<Address, bigint>>\n\n // this is the prorated stake for a specific address in the step\n stepStakeForAddress: (address: Address, step: StepIdentity) => Promisable<bigint>\n}\n\n/* Prorated stake is the amount of stake that is allocated to a specific step\n based on the total stake and the number of steps. This is used to ensure\n that the stake is distributed fairly among all steps.\n\n The simplest way to calculate it is to enumerate every XL1 block in the step add the current stake at that point to a counter.\n For example, if an Address had a stake of 100 for the entire time, then the prorated stake would be 100 * number of blocks in the step.\n*/\n\nexport const StepStakeViewerMoniker = 'StepStakeViewer' as const\n/** Type literal for the StepStakeViewer provider moniker. */\nexport type StepStakeViewerMoniker = typeof StepStakeViewerMoniker\n\n/** Viewer interface for reading StepStake data. */\nexport interface StepStakeViewer extends StepStakeViewerMethods, Provider<StepStakeViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type {\n Position, PositionId, Provider, StepIdentity,\n} from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsViewer } from './NetworkStake/index.ts'\n\n/** Options for PagedPositions. */\nexport interface PagedPositionsOptions {\n cursor?: PositionId\n limit?: number\n}\n\n/** Options for PagedStakers. */\nexport interface PagedStakersOptions {\n cursor?: Address\n limit?: number\n}\n\n/** StepStatistics interface. */\nexport interface StepStatistics {\n endTime: number\n startTime: number\n}\n\n/** StepViewerMethods interface. */\nexport interface StepViewerMethods {\n\n // the total number of positions for a given step\n positionCount(step: StepIdentity): Promisable<number>\n\n positions(step: StepIdentity, options?: PagedPositionsOptions): Promisable<Position[]>\n\n // the predictable random number for a given step\n randomizer(step: StepIdentity): Promisable<bigint>\n\n // total amount staked during a given step\n stake(step: StepIdentity): Promisable<bigint>\n\n // the total number of stakers for a given step\n stakerCount(step: StepIdentity): Promisable<number>\n\n stakers(step: StepIdentity, options?: PagedStakersOptions): Promisable<Address[]>\n\n // if no positionId is supplied, returns the total stake weight for the step\n weight(step: StepIdentity, positionId?: PositionId): Promisable<bigint>\n}\n\n/** Moniker identifier for the StepViewer provider. */\nexport const StepViewerMoniker = 'StepViewer' as const\n/** Type literal for the StepViewer provider moniker. */\nexport type StepViewerMoniker = typeof StepViewerMoniker\n\n/** Viewer interface for reading Step data. */\nexport interface StepViewer extends StepViewerMethods, Provider<StepViewerMoniker> {\n rewards?: NetworkStakeStepRewardsViewer\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n Provider, TimeDomain, TimePayload,\n} from '@xyo-network/xl1-protocol-model'\n\n/** TimeSyncViewerMethods interface. */\nexport interface TimeSyncViewerMethods {\n /** Convert time between different domains */\n convertTime(fromDomain: TimeDomain, toDomain: TimeDomain, from: number): Promisable<number>\n\n /** Get the current time for a given domain */\n currentTime(domain: TimeDomain): Promisable<[string, number]>\n\n /** Get the current time for a given domain */\n currentTimeAndHash(domain: TimeDomain): Promisable<[number, string | null]>\n\n /** Create a TimePayload with the current time from all configured domains */\n currentTimePayload(): Promisable<TimePayload>\n}\n\n/** Moniker identifier for the TimeSyncViewer provider. */\nexport const TimeSyncViewerMoniker = 'TimeSyncViewer' as const\n/** Type literal for the TimeSyncViewer provider moniker. */\nexport type TimeSyncViewerMoniker = typeof TimeSyncViewerMoniker\n\n/** Viewer interface for reading TimeSync data. */\nexport interface TimeSyncViewer extends TimeSyncViewerMethods, Provider<TimeSyncViewerMoniker> {}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type {\n Provider, ProviderMoniker, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\n\n/** TransactionViewerMethods interface. */\nexport interface TransactionViewerMethods {\n byHash(transactionHash: Hash): Promisable<SignedHydratedTransactionWithHashMeta | null>\n\n /** @deprecated use .byBlockHashAndIndex instead */\n transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransaction | null>\n /** @deprecated use .byBlockNumberAndIndex instead */\n transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransaction | null>\n /** @deprecated use .byHash instead */\n transactionByHash(transactionHash: Hash): Promisable<SignedHydratedTransaction | null>\n}\n\n/** Moniker identifier for the TransactionViewer provider. */\nexport const TransactionViewerMoniker = 'TransactionViewer' as const\n/** Type literal for the TransactionViewer provider moniker. */\nexport type TransactionViewerMoniker = typeof TransactionViewerMoniker\n\n/** Viewer interface for reading Transaction data. */\nexport interface TransactionViewer<TMoniker extends ProviderMoniker = TransactionViewerMoniker> extends TransactionViewerMethods, Provider<TMoniker> {\n byBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransactionWithHashMeta | null>\n byBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransactionWithHashMeta | null>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '@xyo-network/xl1-protocol-model'\nimport { z } from 'zod'\n\nimport type { HydratedTransactionValidationError } from '../validation/index.ts'\n\n/** TransactionInvalidationQualificationZod constant. */\nexport const TransactionInvalidationQualificationZod = ChainQualificationZod\n/** TransactionInvalidationQualification type. */\nexport type TransactionInvalidationQualification = z.infer<typeof TransactionInvalidationQualificationZod>\n/** Type guard that checks if a value is a valid TransactionInvalidationQualification. */\nexport const isTransactionInvalidationQualification = zodIsFactory(TransactionInvalidationQualificationZod)\n\n/** TransactionInvalidationConfigFieldsZod constant. */\nexport const TransactionInvalidationConfigFieldsZod = z.object({\n state: z.boolean().optional(),\n value: z.boolean().optional(),\n})\n\n/** TransactionInvalidationConfigZod constant. */\nexport const TransactionInvalidationConfigZod = z.union([\n TransactionInvalidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n TransactionInvalidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n TransactionInvalidationConfigFieldsZod,\n z.object({}),\n])\n\n/** TransactionInvalidationConfig type. */\nexport type TransactionInvalidationConfig = z.infer<typeof TransactionInvalidationConfigZod>\n/** Type guard that checks if a value is a valid TransactionInvalidationConfig. */\nexport const isTransactionInvalidationConfig = zodIsFactory(TransactionInvalidationConfigZod)\n\n/**\n * Checks if transactions are invalid (impossible to ever become valid) according to protocol rules.\n */\n\nexport interface TransactionInvalidationViewerMethods {\n qualifiedInvalidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionInvalidationConfig\n ): Promisable<[(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[], TransactionInvalidationQualification]>\n}\n\n/** Moniker identifier for the TransactionInvalidationViewer provider. */\nexport const TransactionInvalidationViewerMoniker = 'TransactionInvalidationViewer' as const\n/** Type literal for the TransactionInvalidationViewer provider moniker. */\nexport type TransactionInvalidationViewerMoniker = typeof TransactionInvalidationViewerMoniker\n\n/** Viewer interface for reading TransactionInvalidation data. */\nexport interface TransactionInvalidationViewer extends TransactionInvalidationViewerMethods, Provider<TransactionInvalidationViewerMoniker> {\n invalidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionInvalidationConfig\n ): Promisable<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>\n\n invalidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionInvalidationConfig\n ): Promisable<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>\n\n qualifiedInvalidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionInvalidationConfig\n ): Promisable<[HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta, TransactionInvalidationQualification]>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '@xyo-network/xl1-protocol-model'\nimport { z } from 'zod'\n\nimport type { HydratedTransactionValidationError } from '../validation/index.ts'\n\n/** TransactionValidationQualificationZod constant. */\nexport const TransactionValidationQualificationZod = ChainQualificationZod\n/** TransactionValidationQualification type. */\nexport type TransactionValidationQualification = z.infer<typeof TransactionValidationQualificationZod>\n/** Type guard that checks if a value is a valid TransactionValidationQualification. */\nexport const isTransactionValidationQualification = zodIsFactory(TransactionValidationQualificationZod)\n\n/** TransactionValidationConfigFieldsZod constant. */\nexport const TransactionValidationConfigFieldsZod = z.object({\n value: z.boolean().optional(),\n state: z.boolean().optional(),\n})\n\n/** TransactionValidationConfigZod constant. */\nexport const TransactionValidationConfigZod = z.union([\n TransactionValidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n TransactionValidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n TransactionValidationConfigFieldsZod,\n z.object({}),\n])\n\n/** TransactionValidationConfig type. */\nexport type TransactionValidationConfig = z.infer<typeof TransactionValidationConfigZod>\n/** Type guard that checks if a value is a valid TransactionValidationConfig. */\nexport const isTransactionValidationConfig = zodIsFactory(TransactionValidationConfigZod)\n\n/** TransactionValidationViewerMethods interface. */\nexport interface TransactionValidationViewerMethods {\n qualifiedValidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionValidationConfig\n ): Promisable<[(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[], TransactionValidationQualification]>\n}\n\n/** Moniker identifier for the TransactionValidationViewer provider. */\nexport const TransactionValidationViewerMoniker = 'TransactionValidationViewer' as const\n/** Type literal for the TransactionValidationViewer provider moniker. */\nexport type TransactionValidationViewerMoniker = typeof TransactionValidationViewerMoniker\n\n/**\n * Checks if transactions are valid (currently valid) according to protocol rules.\n * In the case that they are not valid, they may still become valid in the future.\n */\n\nexport interface TransactionValidationViewer extends TransactionValidationViewerMethods, Provider<TransactionValidationViewerMoniker> {\n qualifiedValidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionValidationConfig\n ): Promisable<[HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta, TransactionValidationQualification]>\n\n validateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionValidationConfig\n ): Promisable<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>\n\n validateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionValidationConfig\n ): Promisable<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Signed } from '@xyo-network/sdk-js'\nimport type {\n AttoXL1, BlockBoundWitness, Provider, TransactionBoundWitness, Transfer, XL1BlockRange,\n} from '@xyo-network/xl1-protocol-model'\n\n/** TransferBalanceHistoryItem type. */\nexport type TransferBalanceHistoryItem = [\n Signed<BlockBoundWitness> /* block */,\n Signed<TransactionBoundWitness> | null,\n Transfer, /* the actual transfer payload */\n]\n/** TransferPair type. */\nexport type TransferPair = [Address, Address]\n\n/** TransferBalancesViewerMethods interface. */\nexport interface TransferBalancesViewerMethods {\n transferBalances(address: Address[]): Promisable<Partial<Record<Address, Record<Address, AttoXL1>>>>\n transferBalancesHistories(address: Address[]): Promisable<Partial<Record<Address, Record<Address, TransferBalanceHistoryItem[]>>>>\n transferPairBalances(address: TransferPair[]): Promisable<Partial<Record<Address, Record<Address, AttoXL1>>>>\n transferPairBalancesHistories(address: TransferPair[]): Promisable<Partial<Record<Address, Record<Address, TransferBalanceHistoryItem[]>>>>\n}\n\n/** Moniker identifier for the TransferBalanceViewer provider. */\nexport const TransferBalanceViewerMoniker = 'TransferBalanceViewer' as const\n/** Type literal for the TransferBalanceViewer provider moniker. */\nexport type TransferBalanceViewerMoniker = typeof TransferBalanceViewerMoniker\n\n/** Viewer interface for reading TransferBalance data. */\nexport interface TransferBalanceViewer extends TransferBalancesViewerMethods, Provider<TransferBalanceViewerMoniker> {\n transferBalance(address: Address): Promisable<AttoXL1>\n transferBalanceHistory(address: Address, range?: XL1BlockRange): Promisable<TransferBalanceHistoryItem[]>\n transferPairBalance(address: TransferPair): Promisable<AttoXL1>\n transferPairBalanceHistory(address: TransferPair): Promisable<TransferBalanceHistoryItem[]>\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type {\n HydratedBlockWithHashMeta, Provider, ProviderMoniker,\n} from '@xyo-network/xl1-protocol-model'\n\nimport type { BlockViewerMethods } from './Block.ts'\n\ntype ExtendableBlockViewerMethods = Omit<BlockViewerMethods, 'rate' | 'stepSizeRate' | 'timeDurationRate'>\n\n/** WindowedBlockViewerMethods interface. */\nexport interface WindowedBlockViewerMethods extends ExtendableBlockViewerMethods {\n blocksByTransactionHashes(hashes: Hash[]): Promisable<HydratedBlockWithHashMeta[]>\n}\n\n/** Moniker identifier for the WindowedBlockViewer provider. */\nexport const WindowedBlockViewerMoniker = 'WindowedBlockViewer' as const\n/** Type literal for the WindowedBlockViewer provider moniker. */\nexport type WindowedBlockViewerMoniker = typeof WindowedBlockViewerMoniker\n\n/** Viewer interface for reading WindowedBlock data. */\nexport interface WindowedBlockViewer<TMoniker extends ProviderMoniker = WindowedBlockViewerMoniker> extends WindowedBlockViewerMethods, Provider<TMoniker> {\n blockByTransactionHash(hash: Hash): Promisable<HydratedBlockWithHashMeta | null>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type {\n AccountBalanceHistoryItem, AccountBalanceViewer, AttoXL1,\n ChainQualifiedConfig, Provider,\n} from '@xyo-network/xl1-protocol-model'\n\nimport type { BlockViewer, BlockViewerMethods } from './Block.ts'\nimport type { FinalizationViewer } from './Finalization.ts'\nimport type { ForkViewerMethods } from './Fork.ts'\nimport type { MempoolViewer } from './Mempool.ts'\nimport type { NetworkStakeViewer } from './NetworkStake/index.ts'\nimport type { NetworkStakeStepRewardViewerMethods } from './NetworkStakeStepReward.ts'\nimport type { StakeViewer, StakeViewerMethods } from './Stake.ts'\nimport type { StepViewer } from './StepViewer.ts'\nimport type { TimeSyncViewer } from './TimeSync.ts'\nimport type { TransactionViewer, TransactionViewerMethods } from './Transaction.ts'\n\n/** XyoViewerMethods interface. */\nexport interface XyoViewerMethods extends\n NetworkStakeStepRewardViewerMethods, BlockViewerMethods,\n Omit<TransactionViewerMethods, 'byHash'>, Omit<\n StakeViewerMethods, 'minWithdrawalBlocks' | 'rewardsContract' | 'stakingTokenAddress' | 'active'\n | 'activeByAddressStaked' | 'activeByStaker' | 'pending' | 'pendingByStaker' | 'withdrawn' | 'withdrawnByStaker'\n >, ForkViewerMethods {\n /** @deprecated Use .account.balance.accountBalance instead */\n accountBalance(address: Address, config?: ChainQualifiedConfig): Promisable<AttoXL1>\n /** @deprecated Use .account.balance.accountBalanceHistory instead */\n accountBalanceHistory(address: Address, config?: ChainQualifiedConfig): Promisable<AccountBalanceHistoryItem[]>\n}\n\n/** XyoViewerMethodsV2 interface. */\nexport interface XyoViewerMethodsV2 {\n\n}\n\n/** Moniker identifier for the XyoViewer provider. */\nexport const XyoViewerMoniker = 'XyoViewer' as const\n/** Type literal for the XyoViewer provider moniker. */\nexport type XyoViewerMoniker = typeof XyoViewerMoniker\n\n/** Viewer interface for reading Xyo data. */\nexport interface XyoViewer extends Omit<BlockViewer, 'moniker'>, XyoViewerMethods,\n Omit<\n StakeViewerMethods, 'moniker' | 'minWithdrawalBlocks' | 'rewardsContract' | 'stakingTokenAddress' | 'active'\n | 'activeByAddressStaked' | 'activeByStaker' | 'pending' | 'pendingByStaker' | 'withdrawn' | 'withdrawnByStaker'\n >, Provider<XyoViewerMoniker> {\n account: {\n balance: AccountBalanceViewer\n }\n block: BlockViewer\n finalization: FinalizationViewer\n mempool: MempoolViewer\n networkStake: NetworkStakeViewer\n stake: StakeViewer\n step: StepViewer\n time: TimeSyncViewer\n transaction: TransactionViewer\n}\n\n/** XyoViewerV2 interface. */\nexport interface XyoViewerV2 extends XyoViewerMethodsV2, Provider<XyoViewerMoniker> {\n account: {\n balance: AccountBalanceViewer\n }\n block: BlockViewer\n finalization: FinalizationViewer\n mempool: MempoolViewer\n networkStake: NetworkStakeViewer\n stake: StakeViewer\n step: StepViewer\n time: TimeSyncViewer\n transaction: TransactionViewer\n}\n","export * from './network/index.ts'\nexport * from './OpenTelemetryProviders.ts'\nexport * from './permissions/index.ts'\nexport * from './providers/index.ts'\nexport * from './repository/index.ts'\nexport * from './runners/index.ts'\nexport * from './validation/index.ts'\nexport * from './viewers/index.ts'\nexport * from '@xyo-network/xl1-protocol-model'\n"],"mappings":"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","names":["zodIsFactory","ChainQualificationZod","ChainQualifiedHeadConfigZod","ChainQualifiedRangeConfigZod","z","z","zodIsFactory","ChainQualificationZod","ChainQualifiedHeadConfigZod","ChainQualifiedRangeConfigZod","z","zodIsFactory","ChainQualificationZod","ChainQualifiedHeadConfigZod","ChainQualifiedRangeConfigZod","z"]}
|
|
1
|
+
{"version":3,"sources":["../../src/network/Status.ts","../../src/providers/DataLake/Runner.ts","../../src/providers/DataLake/Viewer.ts","../../src/providers/signer/XyoSigner.ts","../../src/providers/XyoConnection.ts","../../src/providers/XyoGateway.ts","../../src/providers/XyoGatewayRunner.ts","../../src/providers/XyoRunner.ts","../../src/runners/Block.ts","../../src/runners/Finalization.ts","../../src/runners/Mempool.ts","../../src/validation/error.ts","../../src/validation/block/error.ts","../../src/validation/boundwitness/error.ts","../../src/validation/payload/error.ts","../../src/validation/transaction/error.ts","../../src/viewers/Block.ts","../../src/viewers/BlockInvalidation.ts","../../src/viewers/BlockReward.ts","../../src/viewers/BlockValidation.ts","../../src/viewers/ChainContract.ts","../../src/viewers/ChainStakeViewer.ts","../../src/viewers/Finalization.ts","../../src/viewers/Mempool.ts","../../src/viewers/NetworkStake/NetworkStakeViewer.ts","../../src/viewers/NetworkStake/Rewards/ByPositionViewer.ts","../../src/viewers/NetworkStake/Rewards/ByStakerViewer.ts","../../src/viewers/NetworkStake/Rewards/ByStepViewer.ts","../../src/viewers/NetworkStake/Rewards/TotalViewer.ts","../../src/viewers/NetworkStake/Rewards/Viewer.ts","../../src/viewers/NetworkStakeStepReward.ts","../../src/viewers/Stake.ts","../../src/viewers/StakeEvents.ts","../../src/viewers/StakeTotals.ts","../../src/viewers/StepStake.ts","../../src/viewers/StepViewer.ts","../../src/viewers/TimeSync.ts","../../src/viewers/Transaction.ts","../../src/viewers/TransactionInvalidation.ts","../../src/viewers/TransactionValidation.ts","../../src/viewers/TransferBalance.ts","../../src/viewers/WindowedBlock.ts","../../src/viewers/XyoViewer.ts","../../src/index.ts"],"sourcesContent":["import type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\n/** Schema identifier for network status payloads. */\nexport const NetworkStatusSchema = asSchema('network.xyo.chain.status', true)\n/** Schema type for NetworkStatus payloads. */\nexport type NetworkStatusSchema = typeof NetworkStatusSchema\n\n/** Possible states of the network: online, offline, degraded, or unknown. */\nexport type NetworkStatusState = 'online' | 'offline' | 'degraded' | 'unknown'\n\n/** Represents a single network status update with a time range and description. */\nexport type NetworkStatusUpdate = {\n end: number\n start: number\n update: string\n}\n\n/** Fields describing the current network status, including state and optional updates. */\nexport interface NetworkStatusFields {\n description: string\n state: NetworkStatusState\n updates?: NetworkStatusUpdate[]\n}\n\n/** A payload representing the current network status. */\nexport type NetworkStatus = Payload<NetworkStatusFields, NetworkStatusSchema>\n\n/** Type guard that checks whether a value is a NetworkStatus payload. */\nexport const isNetworkStatus = isPayloadOfSchemaType<NetworkStatus>(NetworkStatusSchema)\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { WriteArchivistFunctions } from '@xyo-network/sdk-js'\n\nimport type { DataLakeData, DataLakeProvider } from './Provider.ts'\nimport type { DataLakeViewer, DataLakeViewerMethods } from './Viewer.ts'\n\n/** Moniker identifier for the DataLakeRunner provider. */\nexport const DataLakeRunnerMoniker = 'DataLakeRunner' as const\n/** Type literal for the DataLakeRunner provider moniker. */\nexport type DataLakeRunnerMoniker = typeof DataLakeRunnerMoniker\n\n/** DataLakeRunnerMethods interface. */\nexport interface DataLakeRunnerMethods extends WriteArchivistFunctions<DataLakeData, DataLakeData, DataLakeData, Hash>, DataLakeViewerMethods {}\n\n/** Runner interface for executing DataLake operations. */\nexport interface DataLakeRunner extends DataLakeProvider<DataLakeRunnerMoniker>, DataLakeRunnerMethods, Omit<DataLakeViewer, 'moniker'> {}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { ReadArchivistFunctions, Sequence } from '@xyo-network/sdk-js'\n\nimport type { DataLakeData, DataLakeProvider } from './Provider.ts'\n\n/** Moniker identifier for the DataLakeViewer provider. */\nexport const DataLakeViewerMoniker = 'DataLakeViewer' as const\n/** Type literal for the DataLakeViewer provider moniker. */\nexport type DataLakeViewerMoniker = typeof DataLakeViewerMoniker\n\n/** DataLakeViewerMethods interface. */\nexport interface DataLakeViewerMethods extends ReadArchivistFunctions<DataLakeData, Hash, Sequence> {}\n\n/** Viewer interface for reading DataLake data. */\nexport interface DataLakeViewer extends DataLakeProvider<DataLakeViewerMoniker>, DataLakeViewerMethods {\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Payload, Signed } from '@xyo-network/sdk-js'\nimport type {\n AllowedBlockPayload, ChainId, Provider, SignedHydratedTransactionWithHashMeta, TransactionBoundWitness, TransactionFeesBigInt,\n} from '@xyo-network/xl1-protocol-model'\n\n/** Moniker identifier for the XyoSigner provider. */\nexport const XyoSignerMoniker = 'XyoSigner' as const\n/** Type literal for the XyoSigner provider moniker. */\nexport type XyoSignerMoniker = typeof XyoSignerMoniker\n\n/** XyoSignerMethods interface. */\nexport interface XyoSignerMethods {\n address(): Promisable<Address>\n // The tx passed in must have all the payloads (on and off chain) in the payloads array\n // Returns the signed transaction and the payloads array excluding the off-chain payloads.\n // The return value is ready to be broadcast to block producers\n signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta>\n}\n\n/** XyoSigner interface. */\nexport interface XyoSigner extends XyoSignerMethods, Provider<XyoSignerMoniker> {}\n\n/** XyoSignerDeprecated interface. */\nexport interface XyoSignerDeprecated {\n /** @deprecated use signTransaction instead */\n createSignedTransaction(\n chain: ChainId,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n nbf: number,\n exp: number,\n fees: TransactionFeesBigInt,\n from?: Address,\n ): Promisable<Signed<TransactionBoundWitness>>\n}\n","import type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeViewer, XyoViewer } from '../viewers/index.ts'\nimport type { DataLakeRunner, DataLakeViewer } from './DataLake/index.ts'\nimport type { XyoNetwork } from './XyoNetwork.ts'\nimport type { XyoRunner } from './XyoRunner.ts'\n\n/** Moniker identifier for the XyoConnection provider. */\nexport const XyoConnectionMoniker = 'XyoConnection' as const\n/** Type literal for the XyoConnection provider moniker. */\nexport type XyoConnectionMoniker = typeof XyoConnectionMoniker\n\n/** XyoConnection interface. */\nexport interface XyoConnection extends Provider<XyoConnectionMoniker> {\n network?: XyoNetwork\n networkStake?: NetworkStakeViewer\n runner?: XyoRunner\n storage?: DataLakeRunner | DataLakeViewer | (DataLakeRunner & DataLakeViewer)\n viewer?: XyoViewer\n}\n","import type { Provider, ProviderMoniker } from '@xyo-network/xl1-protocol-model'\n\nimport type { XyoConnection } from './XyoConnection.ts'\n\n/** Moniker identifier for the XyoGateway provider. */\nexport const XyoGatewayMoniker = 'XyoGateway' as const\n/** Type literal for the XyoGateway provider moniker. */\nexport type XyoGatewayMoniker = typeof XyoGatewayMoniker\n\n/** XyoGatewayMethods interface. */\nexport interface XyoGatewayMethods {}\n\n/** XyoGatewayProvider interface. */\nexport interface XyoGatewayProvider<\n TMoniker extends ProviderMoniker = ProviderMoniker> extends XyoGatewayMethods, Provider<TMoniker> {\n /**\n * Returns the connection provider for this gateway.\n */\n connection: XyoConnection\n}\n\n/** XyoGateway interface. */\nexport interface XyoGateway extends XyoGatewayProvider<XyoGatewayMoniker>, Provider<XyoGatewayMoniker> {\n}\n","import type {\n Address, Hash, Logger, Promisable,\n} from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport type {\n AllowedBlockPayload, AttoXL1, ChainId,\n SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,\n TransactionFeesBigInt, UnsignedHydratedTransaction, XL1BlockNumber,\n} from '@xyo-network/xl1-protocol-model'\n\nimport type { XyoSigner } from './signer/index.ts'\nimport type { XyoGatewayProvider } from './XyoGateway.ts'\n\n/** ConfirmSubmittedTransactionOptions type. */\nexport type ConfirmSubmittedTransactionOptions = {\n /**\n * Number of attempts to confirm the transaction.\n * Defaults to 20.\n */\n attempts?: number\n /**\n * Delay in milliseconds between confirmation attempts.\n * Defaults to 1000 (1 second).\n */\n delay?: number\n /**\n * Optional logger instance for logging progress.\n */\n logger?: Logger\n}\n\n/** Options for Transaction. */\nexport interface TransactionOptions {\n chain?: ChainId\n exp?: XL1BlockNumber\n fees?: TransactionFeesBigInt\n from?: Address\n nbf?: XL1BlockNumber\n}\n\n/** Moniker identifier for the XyoGatewayRunner provider. */\nexport const XyoGatewayRunnerMoniker = 'XyoGatewayRunner' as const\n/** Type literal for the XyoGatewayRunner provider moniker. */\nexport type XyoGatewayRunnerMoniker = typeof XyoGatewayRunnerMoniker\n\n/** XyoGatewayRunnerMethods interface. */\nexport interface XyoGatewayRunnerMethods {\n\n addPayloadsToChain(\n onChain: AllowedBlockPayload[],\n offChain: Payload[],\n options?: TransactionOptions\n ): Promisable<[Hash, SignedHydratedTransactionWithHashMeta]>\n\n addTransactionToChain(\n tx: UnsignedHydratedTransaction | SignedHydratedTransaction,\n offChain?: Payload[]\n ): Promisable<[Hash, SignedHydratedTransactionWithHashMeta]>\n\n confirmSubmittedTransaction(txHash: Hash, options?: ConfirmSubmittedTransactionOptions): Promisable<SignedHydratedTransaction>\n\n send(to: Address, amount: AttoXL1, options?: TransactionOptions): Promisable<Hash>\n sendMany(transfers: Record<Address, AttoXL1>, options?: TransactionOptions): Promisable<Hash>\n}\n\n/** Runner interface for executing XyoGateway operations. */\nexport interface XyoGatewayRunner extends XyoGatewayRunnerMethods, XyoGatewayProvider<XyoGatewayRunnerMoniker> {\n /**\n * Returns the signer for this gateway.\n */\n signer: XyoSigner\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type { Provider, SignedHydratedTransaction } from '@xyo-network/xl1-protocol-model'\n\nimport type { MempoolRunner } from '../runners/index.ts'\n\n/** XyoRunnerMethods interface. */\nexport interface XyoRunnerMethods {\n broadcastTransaction(transaction: SignedHydratedTransaction): Promisable<Hash>\n}\n\n/** Moniker identifier for the XyoRunner provider. */\nexport const XyoRunnerMoniker = 'XyoRunner' as const\n/** Type literal for the XyoRunner provider moniker. */\nexport type XyoRunnerMoniker = typeof XyoRunnerMoniker\n\n/** Runner interface for executing Xyo operations. */\nexport interface XyoRunner extends XyoRunnerMethods, Provider<XyoRunnerMoniker> {\n mempool: MempoolRunner\n}\n","import type { WithHashMeta } from '@xyo-network/sdk-js'\nimport type {\n BlockBoundWitness, Provider,\n SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\n\n/** BlockRunnerMethods interface. */\nexport interface BlockRunnerMethods {\n produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force: true): Promise<SignedHydratedBlockWithHashMeta>\n produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force?: boolean): Promise<SignedHydratedBlockWithHashMeta | undefined>\n}\n\n/** Moniker identifier for the BlockRunner provider. */\nexport const BlockRunnerMoniker = 'BlockRunner' as const\n/** Type literal for the BlockRunner provider moniker. */\nexport type BlockRunnerMoniker = typeof BlockRunnerMoniker\n\n/** Runner interface for executing Block operations. */\nexport interface BlockRunner extends BlockRunnerMethods, Provider<BlockRunnerMoniker> {\n next(head: WithHashMeta<BlockBoundWitness>): Promise<SignedHydratedBlockWithHashMeta | undefined>\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { Provider, SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol-model'\n\n/** FinalizationRunnerMethods interface. */\nexport interface FinalizationRunnerMethods {\n finalizeBlocks(blocks: SignedHydratedBlockWithHashMeta[]): Promise<Hash[]>\n}\n\n/** Moniker identifier for the FinalizationRunner provider. */\nexport const FinalizationRunnerMoniker = 'FinalizationRunner' as const\n/** Type literal for the FinalizationRunner provider moniker. */\nexport type FinalizationRunnerMoniker = typeof FinalizationRunnerMoniker\n\n/** Runner interface for executing Finalization operations. */\nexport interface FinalizationRunner extends FinalizationRunnerMethods, Provider<FinalizationRunnerMoniker> {\n finalizeBlock(block: SignedHydratedBlockWithHashMeta): Promise<Hash>\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedBlock, SignedHydratedTransaction,\n} from '@xyo-network/xl1-protocol-model'\n\n/** MempoolRunnerMethods interface. */\nexport interface MempoolRunnerMethods {\n submitBlocks(blocks: SignedHydratedBlock[]): Promise<Hash[]>\n submitTransactions(transactions: SignedHydratedTransaction[]): Promise<Hash[]>\n}\n\n/** Moniker identifier for the MempoolRunner provider. */\nexport const MempoolRunnerMoniker = 'MempoolRunner' as const\n/** Type literal for the MempoolRunner provider moniker. */\nexport type MempoolRunnerMoniker = typeof MempoolRunnerMoniker\n\n/** DEFAULT_MAX_EXP_AHEAD constant. */\nexport const DEFAULT_MAX_EXP_AHEAD = 1000\n\n/** Options for MempoolPrune. */\nexport interface MempoolPruneOptions {\n batchSize?: number\n maxCheck?: number\n maxPrune?: number\n}\n\n/** Runner interface for executing Mempool operations. */\nexport interface MempoolRunner extends MempoolRunnerMethods, Provider<MempoolRunnerMoniker> {\n prunePendingBlocks(options?: MempoolPruneOptions): Promise<[number, number]>\n prunePendingTransactions(options?: MempoolPruneOptions): Promise<[number, number]>\n}\n","import { type Hash, isHash } from '@xylabs/sdk-js'\nimport { isError } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\n\n/** Error thrown during validation operations. */\nexport class ValidationError<TValue = Payload> extends Error {\n hash: Hash\n value: TValue\n constructor(hash: Hash, value: TValue, message?: string, cause?: unknown) {\n super(message)\n this.hash = hash\n this.name = this.constructor.name\n this.value = value\n this.cause = cause\n }\n}\n\n/** Type guard that checks if a value is a valid ValidationError. */\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && isHash((error as ValidationError<TValue>)?.hash) && (error as ValidationError<TValue>)?.value !== undefined\n )\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type {\n BlockBoundWitness, ChainId, HydratedBlock,\n} from '@xyo-network/xl1-protocol-model'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\n/** Error thrown during Blockvalidation operations. */\nexport class BlockValidationError extends ValidationError<BlockBoundWitness> {}\n\n/** Type guard that checks if a value is a valid BlockValidationError. */\nexport const isBlockValidationError = (\n error: unknown,\n): error is BlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BlockValidationError.constructor.name\n )\n}\n\n/** Error thrown during HydratedBlockvalidation operations. */\nexport class HydratedBlockValidationError extends ValidationError<HydratedBlock> {}\n\n/** Type guard that checks if a value is a valid HydratedBlockValidationError. */\nexport const isHydratedBlockValidationError = (\n error: unknown,\n): error is HydratedBlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockValidationError.constructor.name\n )\n}\n\n/** Error thrown during HydratedBlockStatevalidation operations. */\nexport class HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {\n chainId: ChainId\n constructor(hash: Hash, chainId: ChainId, value: HydratedBlock, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.chainId = chainId\n }\n}\n\n/** Type guard that checks if a value is a valid HydratedBlockStateValidationError. */\nexport const isHydratedBlockStateValidationError = (\n error: unknown,\n): error is HydratedBlockStateValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockStateValidationError.constructor.name\n )\n}\n","import type { BoundWitness, HydratedBoundWitness } from '@xyo-network/sdk-js'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\n/** Error thrown during BoundWitnessvalidation operations. */\nexport class BoundWitnessValidationError extends ValidationError<BoundWitness> {}\n\n/** Type guard that checks if a value is a valid BoundWitnessValidationError. */\nexport const isBoundWitnessValidationError = (\n error: unknown,\n): error is BoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BoundWitnessValidationError.constructor.name\n )\n}\n\n/** Error thrown during HydratedBoundWitnessvalidation operations. */\nexport class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}\n\n/** Type guard that checks if a value is a valid HydratedBoundWitnessValidationError. */\nexport const isHydratedBoundWitnessValidationError = (\n error: unknown,\n): error is HydratedBoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBoundWitnessValidationError.constructor.name\n )\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport { type Payload } from '@xyo-network/sdk-js'\nimport type { HydratedBlock } from '@xyo-network/xl1-protocol-model'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\n/** Error thrown during InBlockPayloadvalidation operations. */\nexport class InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n constructor(hash: Hash, block: HydratedBlock, value: Payload, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.block = block\n }\n}\n\n/** Type guard that checks if a value is a valid InBlockPayloadValidationError. */\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === InBlockPayloadValidationError.constructor.name\n )\n}\n","import type { HydratedTransaction } from '@xyo-network/xl1-protocol-model'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\n/** Error thrown during HydratedTransactionvalidation operations. */\nexport class HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {}\n\n/** Type guard that checks if a value is a valid HydratedTransactionValidationError. */\nexport const isHydratedTransactionValidationError = (\n error: unknown,\n): error is HydratedTransactionValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedTransactionValidationError.constructor.name\n )\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type { Payload, WithHashMeta } from '@xyo-network/sdk-js'\nimport type {\n BlockRate, ChainId,\n Provider, ProviderMoniker, SignedHydratedBlockWithHashMeta, SingleTimeConfig, TimeDurations, XL1BlockNumber, XL1BlockRange,\n} from '@xyo-network/xl1-protocol-model'\n\n/** BlockViewerMethods interface. */\nexport interface BlockViewerMethods {\n blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>\n blocksByNumber(block: XL1BlockNumber, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>\n currentBlock(): Promisable<SignedHydratedBlockWithHashMeta>\n payloadsByHash(hashes: Hash[]): Promisable<WithHashMeta<Payload>[]>\n}\n\n/** Moniker identifier for the BlockViewer provider. */\nexport const BlockViewerMoniker = 'BlockViewer' as const\n/** Type literal for the BlockViewer provider moniker. */\nexport type BlockViewerMoniker = typeof BlockViewerMoniker\n\n/** Viewer interface for reading Block data. */\nexport interface BlockViewer<TMoniker extends ProviderMoniker = BlockViewerMoniker> extends BlockViewerMethods, Provider<TMoniker> {\n blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>\n blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>\n chainId(): Promisable<ChainId>\n chainId(blockNumber: XL1BlockNumber): Promisable<ChainId>\n chainId(blockNumber: 'latest'): Promisable<ChainId>\n currentBlockHash(): Promisable<Hash>\n currentBlockNumber(): Promisable<XL1BlockNumber>\n payloadByHash(hash: Hash): Promisable<WithHashMeta<Payload> | null>\n rate(range: XL1BlockRange, timeUnit?: keyof TimeDurations): Promisable<BlockRate>\n stepSizeRate(start: XL1BlockNumber, stepIndex: number, count?: number, timeUnit?: keyof TimeDurations): Promisable<BlockRate>\n timeDurationRate(\n timeConfig: SingleTimeConfig,\n startBlockNumber?: XL1BlockNumber,\n timeUnit?: keyof TimeDurations,\n toleranceMs?: number,\n maxAttempts?: number,\n ): Promisable<BlockRate>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedBlock, SignedHydratedBlockWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '@xyo-network/xl1-protocol-model'\nimport { z } from 'zod'\n\nimport type { HydratedBlockValidationError } from '../validation/index.ts'\n\n/** BlockInvalidationQualificationZod constant. */\nexport const BlockInvalidationQualificationZod = ChainQualificationZod\n/** BlockInvalidationQualification type. */\nexport type BlockInvalidationQualification = z.infer<typeof BlockInvalidationQualificationZod>\n/** Type guard that checks if a value is a valid BlockInvalidationQualification. */\nexport const isBlockInvalidationQualification = zodIsFactory(BlockInvalidationQualificationZod)\n\n/** BlockInvalidationConfigFieldsZod constant. */\nexport const BlockInvalidationConfigFieldsZod = z.object({\n state: z.boolean().optional(),\n value: z.boolean().optional(),\n})\n\n/** BlockInvalidationConfigZod constant. */\nexport const BlockInvalidationConfigZod = z.union([\n BlockInvalidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n BlockInvalidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n BlockInvalidationConfigFieldsZod,\n z.object({}),\n])\n\n/** BlockInvalidationConfig type. */\nexport type BlockInvalidationConfig = z.infer<typeof BlockInvalidationConfigZod>\n/** Type guard that checks if a value is a valid BlockInvalidationConfig. */\nexport const isBlockInvalidationConfig = zodIsFactory(BlockInvalidationConfigZod)\n\n/**\n * Checks if blocks are invalid (impossible to ever become valid) according to protocol rules.\n */\n\nexport interface BlockInvalidationViewerMethods {\n qualifiedInvalidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]>\n\n qualifiedInvalidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]>\n}\n\n/** Moniker identifier for the BlockInvalidationViewer provider. */\nexport const BlockInvalidationViewerMoniker = 'BlockInvalidationViewer' as const\n/** Type literal for the BlockInvalidationViewer provider moniker. */\nexport type BlockInvalidationViewerMoniker = typeof BlockInvalidationViewerMoniker\n\n/** Viewer interface for reading BlockInvalidation data. */\nexport interface BlockInvalidationViewer extends BlockInvalidationViewerMethods, Provider<BlockInvalidationViewerMoniker> {\n invalidateBlock(\n block: SignedHydratedBlock,\n config?: BlockInvalidationConfig\n ): Promisable<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>\n\n invalidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n invalidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n qualifiedInvalidateBlock(\n block: SignedHydratedBlock,\n config?: BlockInvalidationConfig\n ): Promisable<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockInvalidationQualification]>\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1, Provider, XL1BlockNumber,\n} from '@xyo-network/xl1-protocol-model'\n\n/** BlockRewardViewerMethods interface. */\nexport interface BlockRewardViewerMethods {\n // The amount of xl1 to send to the producer from the block reward\n allowedRewardForBlock(block: XL1BlockNumber): Promisable<AttoXL1>\n}\n\n/** Moniker identifier for the BlockRewardViewer provider. */\nexport const BlockRewardViewerMoniker = 'BlockRewardViewer' as const\n/** Type literal for the BlockRewardViewer provider moniker. */\nexport type BlockRewardViewerMoniker = typeof BlockRewardViewerMoniker\n\n/** Viewer interface for reading BlockReward data. */\nexport interface BlockRewardViewer extends BlockRewardViewerMethods, Provider<BlockRewardViewerMoniker> {}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedBlock, SignedHydratedBlockWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '@xyo-network/xl1-protocol-model'\nimport { z } from 'zod'\n\nimport type { HydratedBlockValidationError } from '../validation/index.ts'\n\n/** BlockValidationQualificationZod constant. */\nexport const BlockValidationQualificationZod = ChainQualificationZod\n/** BlockValidationQualification type. */\nexport type BlockValidationQualification = z.infer<typeof BlockValidationQualificationZod>\n/** Type guard that checks if a value is a valid BlockValidationQualification. */\nexport const isBlockValidationQualification = zodIsFactory(BlockValidationQualificationZod)\n\n/** BlockValidationConfigFieldsZod constant. */\nexport const BlockValidationConfigFieldsZod = z.object({\n value: z.boolean().optional(),\n state: z.boolean().optional(),\n})\n\n/** BlockValidationConfigZod constant. */\nexport const BlockValidationConfigZod = z.union([\n BlockValidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n BlockValidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n BlockValidationConfigFieldsZod,\n z.object({}),\n])\n\n/** BlockValidationConfig type. */\nexport type BlockValidationConfig = z.infer<typeof BlockValidationConfigZod>\n/** Type guard that checks if a value is a valid BlockValidationConfig. */\nexport const isBlockValidationConfig = zodIsFactory(BlockValidationConfigZod)\n\n/** BlockValidationViewerMethods interface. */\nexport interface BlockValidationViewerMethods {\n qualifiedValidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]>\n\n qualifiedValidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]>\n}\n\n/** Moniker identifier for the BlockValidationViewer provider. */\nexport const BlockValidationViewerMoniker = 'BlockValidationViewer' as const\n/** Type literal for the BlockValidationViewer provider moniker. */\nexport type BlockValidationViewerMoniker = typeof BlockValidationViewerMoniker\n\n/**\n * Checks if blocks are valid (currently valid) according to protocol rules. In the case that they are not valid, they may still become valid in the future.\n */\n\nexport interface BlockValidationViewer extends BlockValidationViewerMethods, Provider<BlockValidationViewerMoniker> {\n qualifiedValidateBlock(\n block: SignedHydratedBlock,\n config?: BlockValidationConfig\n ): Promisable<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockValidationQualification]>\n\n validateBlock(\n block: SignedHydratedBlock,\n config?: BlockValidationConfig\n ): Promisable<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>\n\n validateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n validateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n}\n","import type {\n Address, Hash, Promisable,\n} from '@xylabs/sdk-js'\nimport type {\n ChainId, Provider, XL1BlockNumber,\n} from '@xyo-network/xl1-protocol-model'\n\n/** ChainContractViewerMethods interface. */\nexport interface ChainContractViewerMethods {\n chainId(): Promisable<ChainId>\n forkedAtBlockNumber(): Promisable<XL1BlockNumber | null>\n forkedAtHash(): Promisable<Hash | null>\n forkedChainId(): Promisable<ChainId | null>\n minWithdrawalBlocks(): Promisable<number>\n rewardsContract(): Promisable<Address>\n stakingTokenAddress(): Promisable<Address>\n}\n\n/** Moniker identifier for the ChainContractViewer provider. */\nexport const ChainContractViewerMoniker = 'ChainContractViewer' as const\n/** Type literal for the ChainContractViewer provider moniker. */\nexport type ChainContractViewerMoniker = typeof ChainContractViewerMoniker\n\n/** Viewer interface for reading ChainContract data. */\nexport interface ChainContractViewer extends ChainContractViewerMethods, Provider<ChainContractViewerMoniker> {\n chainIdAtBlockNumber(blockNumber: XL1BlockNumber | 'latest'): Promisable<ChainId>\n forkedChainContractViewer(): Promisable<ChainContractViewer | null>\n}\n","import type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { ChainContractViewer } from './ChainContract.ts'\nimport type { StakeTotalsViewer } from './StakeTotals.ts'\n\n/** Moniker identifier for the ChainStakeViewer provider. */\nexport const ChainStakeViewerMoniker = 'ChainStakeViewer' as const\n/** Type literal for the ChainStakeViewer provider moniker. */\nexport type ChainStakeViewerMoniker = typeof ChainStakeViewerMoniker\n\n/** Viewer interface for reading ChainStake data. */\nexport interface ChainStakeViewer extends Omit<ChainContractViewer, 'moniker'>, Omit<StakeTotalsViewer, 'moniker'>,\n Provider<ChainStakeViewerMoniker> {\n\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type {\n ChainId, Provider, SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta, XL1BlockNumber,\n} from '@xyo-network/xl1-protocol-model'\n\n/** FinalizationViewerMethods interface. */\nexport interface FinalizationViewerMethods {\n head(): Promisable<SignedHydratedBlockWithHashMeta>\n}\n\n/** Moniker identifier for the FinalizationViewer provider. */\nexport const FinalizationViewerMoniker = 'FinalizationViewer' as const\n/** Type literal for the FinalizationViewer provider moniker. */\nexport type FinalizationViewerMoniker = typeof FinalizationViewerMoniker\n\n/** Viewer interface for reading Finalization data. */\nexport interface FinalizationViewer extends FinalizationViewerMethods, Provider<FinalizationViewerMoniker> {\n chainId(): Promisable<ChainId>\n headBlock(): Promisable<SignedBlockBoundWitnessWithHashMeta>\n headHash(): Promisable<Hash>\n headNumber(): Promisable<XL1BlockNumber>\n}\n","import { HashZod } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedBlockWithHashMeta, SignedHydratedTransactionWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\nimport { XL1BlockRangeZod } from '@xyo-network/xl1-protocol-model'\nimport { z } from 'zod'\n\n/** PendingTransactionsOptionsZod constant. */\nexport const PendingTransactionsOptionsZod = z.object({\n cursor: HashZod.optional(),\n limit: z.number().int().positive().optional(),\n window: XL1BlockRangeZod.optional(),\n})\n\n/** PendingTransactionsOptions type. */\nexport type PendingTransactionsOptions = z.infer<typeof PendingTransactionsOptionsZod>\n\n/** PendingBlocksOptionsZod constant. */\nexport const PendingBlocksOptionsZod = z.object({\n cursor: HashZod.optional(),\n limit: z.number().int().positive().optional(),\n window: XL1BlockRangeZod.optional(),\n})\n\n/** PendingBlocksOptions type. */\nexport type PendingBlocksOptions = z.infer<typeof PendingBlocksOptionsZod>\n\n/** MempoolViewerMethods interface. */\nexport interface MempoolViewerMethods {\n pendingBlocks(options?: PendingBlocksOptions): Promise<SignedHydratedBlockWithHashMeta[]>\n pendingTransactions(options?: PendingTransactionsOptions): Promise<SignedHydratedTransactionWithHashMeta[]>\n}\n\n/** Moniker identifier for the MempoolViewer provider. */\nexport const MempoolViewerMoniker = 'MempoolViewer' as const\n/** Type literal for the MempoolViewer provider moniker. */\nexport type MempoolViewerMoniker = typeof MempoolViewerMoniker\n\n/** Viewer interface for reading Mempool data. */\nexport interface MempoolViewer extends MempoolViewerMethods, Provider<MempoolViewerMoniker> {}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsViewer } from './Rewards/index.ts'\n\n/** NetworkStakeViewerMethods interface. */\nexport interface NetworkStakeViewerMethods {\n /** @returns the active stake and the number of active validators [active, block] */\n active(blockNumber?: number): Promisable<[bigint, number]>\n}\n\n/** Moniker identifier for the NetworkStakeViewer provider. */\nexport const NetworkStakeViewerMoniker = 'NetworkStakeViewer' as const\n/** Type literal for the NetworkStakeViewer provider moniker. */\nexport type NetworkStakeViewerMoniker = typeof NetworkStakeViewerMoniker\n\n/** Viewer interface for reading NetworkStake data. */\nexport interface NetworkStakeViewer extends NetworkStakeViewerMethods, Provider<NetworkStakeViewerMoniker> {\n stepRewards?: NetworkStakeStepRewardsViewer\n}\n","import type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsByPositionViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\n/** NetworkStakeStepRewardsByPositionViewerMethods interface. */\nexport interface NetworkStakeStepRewardsByPositionViewerMethods extends\n NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByPositionViewerOptions, number> {}\n\n/** Moniker identifier for the NetworkStakeStepRewardsByPositionViewer provider. */\nexport const NetworkStakeStepRewardsByPositionViewerMoniker = 'NetworkStakeStepRewardsByPositionViewer' as const\n/** Type literal for the NetworkStakeStepRewardsByPositionViewer provider moniker. */\nexport type NetworkStakeStepRewardsByPositionViewerMoniker = typeof NetworkStakeStepRewardsByPositionViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepRewardsByPosition data. */\nexport interface NetworkStakeStepRewardsByPositionViewer extends NetworkStakeStepRewardsByPositionViewerMethods,\n Provider<NetworkStakeStepRewardsByPositionViewerMoniker> {}\n","import type { Address } from '@xylabs/sdk-js'\nimport type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsByStakerViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\n/** NetworkStakeStepRewardsByStakerViewerMethods interface. */\nexport interface NetworkStakeStepRewardsByStakerViewerMethods\n extends NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStakerViewerOptions, Address> {}\n\n/** Moniker identifier for the NetworkStakeStepRewardsByStakerViewer provider. */\nexport const NetworkStakeStepRewardsByStakerViewerMoniker = 'NetworkStakeStepRewardsByStakerViewer' as const\n/** Type literal for the NetworkStakeStepRewardsByStakerViewer provider moniker. */\nexport type NetworkStakeStepRewardsByStakerViewerMoniker = typeof NetworkStakeStepRewardsByStakerViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepRewardsByStaker data. */\nexport interface NetworkStakeStepRewardsByStakerViewer extends NetworkStakeStepRewardsByStakerViewerMethods,\n Provider<NetworkStakeStepRewardsByStakerViewerMoniker> {}\n","import type { Provider, StepIdentityString } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsByStepViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\n/** NetworkStakeStepRewardsByStepViewerMethods interface. */\nexport interface NetworkStakeStepRewardsByStepViewerMethods extends\n NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStepViewerOptions, StepIdentityString> {}\n\n/** Moniker identifier for the NetworkStakeStepRewardsByStepViewer provider. */\nexport const NetworkStakeStepRewardsByStepViewerMoniker = 'NetworkStakeStepRewardsByStepViewer' as const\n/** Type literal for the NetworkStakeStepRewardsByStepViewer provider moniker. */\nexport type NetworkStakeStepRewardsByStepViewerMoniker = typeof NetworkStakeStepRewardsByStepViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepRewardsByStep data. */\nexport interface NetworkStakeStepRewardsByStepViewer extends NetworkStakeStepRewardsByStepViewerMethods, Provider<NetworkStakeStepRewardsByStepViewerMoniker> {}\n","import type { AttoXL1, Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsRangeOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\n/** NetworkStakeStepRewardsTotalViewerMethods interface. */\nexport interface NetworkStakeStepRewardsTotalViewerMethods extends NetworkStakeStepRewardsViewerMethodsTemplate<NetworkStakeStepRewardsRangeOptions, AttoXL1> {}\n\n/** Moniker identifier for the NetworkStakeStepRewardsTotalViewer provider. */\nexport const NetworkStakeStepRewardsTotalViewerMoniker = 'NetworkStakeStepRewardsTotalViewer' as const\n/** Type literal for the NetworkStakeStepRewardsTotalViewer provider moniker. */\nexport type NetworkStakeStepRewardsTotalViewerMoniker = typeof NetworkStakeStepRewardsTotalViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepRewardsTotal data. */\nexport interface NetworkStakeStepRewardsTotalViewer extends NetworkStakeStepRewardsTotalViewerMethods, Provider<NetworkStakeStepRewardsTotalViewerMoniker> {}\n","import type { Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsByPositionViewer } from './ByPositionViewer.ts'\nimport type { NetworkStakeStepRewardsByStakerViewer } from './ByStakerViewer.ts'\nimport type { NetworkStakeStepRewardsByStepViewer } from './ByStepViewer.ts'\nimport type { NetworkStakeStepRewardsTotalViewer } from './TotalViewer.ts'\n\n/** NetworkStakeStepRewardsViewerMethods interface. */\nexport interface NetworkStakeStepRewardsViewerMethods {}\n\n/** Moniker identifier for the NetworkStakeStepRewardsViewer provider. */\nexport const NetworkStakeStepRewardsViewerMoniker = 'NetworkStakeStepRewardsViewer' as const\n/** Type literal for the NetworkStakeStepRewardsViewer provider moniker. */\nexport type NetworkStakeStepRewardsViewerMoniker = typeof NetworkStakeStepRewardsViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepRewards data. */\nexport interface NetworkStakeStepRewardsViewer extends NetworkStakeStepRewardsViewerMethods, Provider<NetworkStakeStepRewardsViewerMoniker> {\n position?: NetworkStakeStepRewardsByPositionViewer\n staker?: NetworkStakeStepRewardsByStakerViewer\n step?: NetworkStakeStepRewardsByStepViewer\n total?: NetworkStakeStepRewardsTotalViewer\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type {\n AttoXL1, Provider, StepIdentity, StepIdentityString,\n} from '@xyo-network/xl1-protocol-model'\n\n/** NetworkStakeStepAddressRewardViewerMethods interface. */\nexport interface NetworkStakeStepAddressRewardViewerMethods {\n // the step rewards for a specific network stakers for all of history\n networkStakeStepRewardAddressHistory(address: Address): Promisable<Record<Address, AttoXL1>>\n\n // the step rewards for a specific network stakers for a given step and block\n networkStakeStepRewardAddressReward(context: StepIdentity, address: Address): Promisable<Record<Address, AttoXL1>>\n\n // the shares for a specific network staker for a given step and block\n networkStakeStepRewardAddressShare(context: StepIdentity, address: Address): Promisable<[/* address shares */bigint, /* total shares */bigint]>\n\n // estimate the current reward weight for a given address at a given step\n networkStakeStepRewardWeightForAddress(context: StepIdentity, address: Address): Promisable<bigint>\n}\n\n/** NetworkStakeStepPoolRewardViewerMethods interface. */\nexport interface NetworkStakeStepPoolRewardViewerMethods {\n\n // all the step rewards for all the network stakers for a given step and block\n networkStakeStepRewardPoolRewards(context: StepIdentity): Promisable<Record<Address, AttoXL1>>\n\n // all the shares for all the network stakers for a given step and block\n networkStakeStepRewardPoolShares(context: StepIdentity): Promisable<Record<Address, bigint>>\n}\n\n/** NetworkStakeStepRewardPositionViewerMethods interface. */\nexport interface NetworkStakeStepRewardPositionViewerMethods {\n // estimate the current weight for a given position at a given step\n networkStakeStepRewardPositionWeight(context: StepIdentity, position: number): Promisable<bigint>\n\n // estimate the potential loss for removing a given position at a given step\n networkStakeStepRewardPotentialPositionLoss(context: StepIdentity, position: number): Promisable<AttoXL1>\n}\n\n/** NetworkStakeStepRewardViewerMethods interface. */\nexport interface NetworkStakeStepRewardViewerMethods extends\n NetworkStakeStepPoolRewardViewerMethods,\n NetworkStakeStepAddressRewardViewerMethods,\n NetworkStakeStepRewardPositionViewerMethods\n{\n networkStakeStepRewardClaimedByAddress(address: Address): Promisable<AttoXL1>\n\n // the share & total rewards for a given position\n networkStakeStepRewardForPosition(position: number, range: [number, number]): Promisable<[AttoXL1, AttoXL1]>\n\n // estimate the total possible block rewards for a given step\n networkStakeStepRewardForStep(context: StepIdentity): Promisable<AttoXL1>\n\n // the share & total rewards for a given step and block for a given position\n networkStakeStepRewardForStepForPosition(context: StepIdentity, position: number): Promisable<[AttoXL1, AttoXL1]>\n\n // the predictable random number for a given step and block\n networkStakeStepRewardRandomizer(context: StepIdentity): Promisable<AttoXL1>\n\n // the total number of stakers for a given step and block\n networkStakeStepRewardStakerCount(context: StepIdentity): Promisable<number>\n\n networkStakeStepRewardUnclaimedByAddress(address: Address): Promisable<AttoXL1>\n\n // the share & total rewards for a given position for each step in range\n networkStakeStepRewardsForPosition(position: number,\n range: [number, number]): Promisable<Record<StepIdentityString, [AttoXL1, AttoXL1]>>\n\n // the total rewards for a given range\n networkStakeStepRewardsForRange(range: [number, number]): Promisable<AttoXL1>\n\n // the total rewards for a given range and step level\n networkStakeStepRewardsForStepLevel(stepLevel: number, range: [number, number]): Promisable<AttoXL1>\n}\n\n/** Moniker identifier for the NetworkStakeStepRewardViewer provider. */\nexport const NetworkStakeStepRewardViewerMoniker = 'NetworkStakeStepRewardViewer' as const\n/** Type literal for the NetworkStakeStepRewardViewer provider moniker. */\nexport type NetworkStakeStepRewardViewerMoniker = typeof NetworkStakeStepRewardViewerMoniker\n\n/** Viewer interface for reading NetworkStakeStepReward data. */\nexport interface NetworkStakeStepRewardViewer extends NetworkStakeStepRewardViewerMethods, Provider<NetworkStakeStepRewardViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Position, Provider } from '@xyo-network/xl1-protocol-model'\n\nimport type { StakeEventsViewer } from './StakeEvents.ts'\n\n/** StakeViewerProperties interface. */\nexport interface StakeViewerProperties {\n stakeEvents: StakeEventsViewer\n}\n\n/** StakeViewerMethods interface. */\nexport interface StakeViewerMethods {\n minWithdrawalBlocks(): Promisable<number>\n rewardsContract(): Promisable<Address>\n stakeById(id: number): Promisable<Position>\n stakeByStaker(staker: Address, slot: number): Promisable<Position>\n stakesByStaked(staked: Address): Promisable<Position[]>\n stakesByStaker(staker: Address): Promisable<Position[]>\n stakingTokenAddress(): Promisable<Address>\n}\n\n/** Moniker identifier for the StakeViewer provider. */\nexport const StakeViewerMoniker = 'StakeViewer' as const\n/** Type literal for the StakeViewer provider moniker. */\nexport type StakeViewerMoniker = typeof StakeViewerMoniker\n\n/** Viewer interface for reading Stake data. */\nexport interface StakeViewer extends StakeViewerMethods, StakeViewerProperties, Provider<StakeViewerMoniker> {\n activeStakes(): Promisable<Position[]>\n removedStakes(): Promisable<Position[]>\n withdrawnStakes(): Promisable<Position[]>\n}\n\n/** Moniker identifier for the StakeRunner provider. */\nexport const StakeRunnerMoniker = 'StakeRunner' as const\n/** Type literal for the StakeRunner provider moniker. */\nexport type StakeRunnerMoniker = typeof StakeRunnerMoniker\n\n/** Runner interface for executing Stake operations. */\nexport interface StakeRunner extends Provider<StakeRunnerMoniker> {\n addStake(staked: string, amount: bigint): Promise<boolean>\n removeStake(slot: bigint): Promise<boolean>\n withdrawStake(slot: bigint): Promise<boolean>\n}\n","import type {\n Address, JsonObject, Promisable,\n} from '@xylabs/sdk-js'\nimport type { Provider } from '@xyo-network/xl1-protocol-model'\n\n/** StakeEventNames constant. */\nexport const StakeEventNames = ['StakeAdded', 'StakeRemoved', 'StakeWithdrawn'] as const\n/** StakeEventName type. */\nexport type StakeEventName = typeof StakeEventNames[number]\n\n/** ExternalEvent interface. */\nexport interface ExternalEvent<TName extends string = string, TArgs extends JsonObject = {}> {\n args: TArgs\n name: TName\n time: number // usually block number\n}\n\n/** EventFilter interface. */\nexport interface EventFilter<TName extends string = string> {\n name?: TName\n time?: [number, number]\n}\n\n/** StakeEventArgs interface. */\nexport interface StakeEventArgs {\n amount: bigint\n id: number\n staked: Address\n staker: Address\n}\n\n/** StakeEventFilterArgs type. */\nexport type StakeEventFilterArgs = Partial<Pick<StakeEventArgs, 'staker' | 'staked' | 'id'>>\n\n/** StakeEventFilter interface. */\nexport interface StakeEventFilter<TName extends StakeEventName = StakeEventName> extends EventFilter<TName> {\n args?: StakeEventFilterArgs\n}\n\n/** StakeEvent interface. */\nexport interface StakeEvent<TName extends StakeEventName = StakeEventName> extends ExternalEvent<TName> {\n args: StakeEventArgs\n}\n\n/** Moniker identifier for the StakeEventsViewer provider. */\nexport const StakeEventsViewerMoniker = 'StakeEventsViewer' as const\n/** Type literal for the StakeEventsViewer provider moniker. */\nexport type StakeEventsViewerMoniker = typeof StakeEventsViewerMoniker\n\n/** Viewer interface for reading StakeEvents data. */\nexport interface StakeEventsViewer extends Provider<StakeEventsViewerMoniker> {\n positionCount(range: [number, number | 'latest']): Promisable<number>\n stakeEvents<TName extends StakeEventName>(range: [number, number | 'latest'], filter?: StakeEventFilter<TName>): Promisable<StakeEvent<TName>[]>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Provider } from '@xyo-network/xl1-protocol-model'\n\n/** StakeTotalsViewerMethods interface. */\nexport interface StakeTotalsViewerMethods {\n active(time?: number): Promisable<bigint>\n activeByStaked(staked: Address, time?: number): Promisable<bigint>\n activeByStaker(address: Address, time?: number): Promisable<bigint>\n pending(time?: number): Promisable<bigint>\n pendingByStaker(staker: Address, time?: number): Promisable<bigint>\n withdrawn(time?: number): Promisable<bigint>\n withdrawnByStaker(staker: Address, time?: number): Promisable<bigint>\n}\n\n/** Moniker identifier for the StakeTotalsViewer provider. */\nexport const StakeTotalsViewerMoniker = 'StakeTotalsViewer' as const\n/** Type literal for the StakeTotalsViewer provider moniker. */\nexport type StakeTotalsViewerMoniker = typeof StakeTotalsViewerMoniker\n\n/** Viewer interface for reading StakeTotals data. */\nexport interface StakeTotalsViewer extends StakeTotalsViewerMethods, Provider<StakeTotalsViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Provider, StepIdentity } from '@xyo-network/xl1-protocol-model'\n\n/** StepStakeViewerMethods interface. */\nexport interface StepStakeViewerMethods {\n // this is the prorated stake for all addresses in the step\n stepStake: (step: StepIdentity) => Promisable<Record<Address, bigint>>\n\n // this is the prorated stake for a specific address in the step\n stepStakeForAddress: (address: Address, step: StepIdentity) => Promisable<bigint>\n}\n\n/* Prorated stake is the amount of stake that is allocated to a specific step\n based on the total stake and the number of steps. This is used to ensure\n that the stake is distributed fairly among all steps.\n\n The simplest way to calculate it is to enumerate every XL1 block in the step add the current stake at that point to a counter.\n For example, if an Address had a stake of 100 for the entire time, then the prorated stake would be 100 * number of blocks in the step.\n*/\n\nexport const StepStakeViewerMoniker = 'StepStakeViewer' as const\n/** Type literal for the StepStakeViewer provider moniker. */\nexport type StepStakeViewerMoniker = typeof StepStakeViewerMoniker\n\n/** Viewer interface for reading StepStake data. */\nexport interface StepStakeViewer extends StepStakeViewerMethods, Provider<StepStakeViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type {\n Position, PositionId, Provider, StepIdentity,\n} from '@xyo-network/xl1-protocol-model'\n\nimport type { NetworkStakeStepRewardsViewer } from './NetworkStake/index.ts'\n\n/** Options for PagedPositions. */\nexport interface PagedPositionsOptions {\n cursor?: PositionId\n limit?: number\n}\n\n/** Options for PagedStakers. */\nexport interface PagedStakersOptions {\n cursor?: Address\n limit?: number\n}\n\n/** StepStatistics interface. */\nexport interface StepStatistics {\n endTime: number\n startTime: number\n}\n\n/** StepViewerMethods interface. */\nexport interface StepViewerMethods {\n\n // the total number of positions for a given step\n positionCount(step: StepIdentity): Promisable<number>\n\n positions(step: StepIdentity, options?: PagedPositionsOptions): Promisable<Position[]>\n\n // the predictable random number for a given step\n randomizer(step: StepIdentity): Promisable<bigint>\n\n // total amount staked during a given step\n stake(step: StepIdentity): Promisable<bigint>\n\n // the total number of stakers for a given step\n stakerCount(step: StepIdentity): Promisable<number>\n\n stakers(step: StepIdentity, options?: PagedStakersOptions): Promisable<Address[]>\n\n // if no positionId is supplied, returns the total stake weight for the step\n weight(step: StepIdentity, positionId?: PositionId): Promisable<bigint>\n}\n\n/** Moniker identifier for the StepViewer provider. */\nexport const StepViewerMoniker = 'StepViewer' as const\n/** Type literal for the StepViewer provider moniker. */\nexport type StepViewerMoniker = typeof StepViewerMoniker\n\n/** Viewer interface for reading Step data. */\nexport interface StepViewer extends StepViewerMethods, Provider<StepViewerMoniker> {\n rewards?: NetworkStakeStepRewardsViewer\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n Provider, TimeDomain, TimePayload,\n} from '@xyo-network/xl1-protocol-model'\n\n/** TimeSyncViewerMethods interface. */\nexport interface TimeSyncViewerMethods {\n /** Convert time between different domains */\n convertTime(fromDomain: TimeDomain, toDomain: TimeDomain, from: number): Promisable<number>\n\n /** Get the current time for a given domain */\n currentTime(domain: TimeDomain): Promisable<[string, number]>\n\n /** Get the current time for a given domain */\n currentTimeAndHash(domain: TimeDomain): Promisable<[number, string | null]>\n\n /** Create a TimePayload with the current time from all configured domains */\n currentTimePayload(): Promisable<TimePayload>\n}\n\n/** Moniker identifier for the TimeSyncViewer provider. */\nexport const TimeSyncViewerMoniker = 'TimeSyncViewer' as const\n/** Type literal for the TimeSyncViewer provider moniker. */\nexport type TimeSyncViewerMoniker = typeof TimeSyncViewerMoniker\n\n/** Viewer interface for reading TimeSync data. */\nexport interface TimeSyncViewer extends TimeSyncViewerMethods, Provider<TimeSyncViewerMoniker> {}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type {\n Provider, ProviderMoniker, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\n\n/** TransactionViewerMethods interface. */\nexport interface TransactionViewerMethods {\n byHash(transactionHash: Hash): Promisable<SignedHydratedTransactionWithHashMeta | null>\n\n /** @deprecated use .byBlockHashAndIndex instead */\n transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransaction | null>\n /** @deprecated use .byBlockNumberAndIndex instead */\n transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransaction | null>\n /** @deprecated use .byHash instead */\n transactionByHash(transactionHash: Hash): Promisable<SignedHydratedTransaction | null>\n}\n\n/** Moniker identifier for the TransactionViewer provider. */\nexport const TransactionViewerMoniker = 'TransactionViewer' as const\n/** Type literal for the TransactionViewer provider moniker. */\nexport type TransactionViewerMoniker = typeof TransactionViewerMoniker\n\n/** Viewer interface for reading Transaction data. */\nexport interface TransactionViewer<TMoniker extends ProviderMoniker = TransactionViewerMoniker> extends TransactionViewerMethods, Provider<TMoniker> {\n byBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransactionWithHashMeta | null>\n byBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransactionWithHashMeta | null>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '@xyo-network/xl1-protocol-model'\nimport { z } from 'zod'\n\nimport type { HydratedTransactionValidationError } from '../validation/index.ts'\n\n/** TransactionInvalidationQualificationZod constant. */\nexport const TransactionInvalidationQualificationZod = ChainQualificationZod\n/** TransactionInvalidationQualification type. */\nexport type TransactionInvalidationQualification = z.infer<typeof TransactionInvalidationQualificationZod>\n/** Type guard that checks if a value is a valid TransactionInvalidationQualification. */\nexport const isTransactionInvalidationQualification = zodIsFactory(TransactionInvalidationQualificationZod)\n\n/** TransactionInvalidationConfigFieldsZod constant. */\nexport const TransactionInvalidationConfigFieldsZod = z.object({\n state: z.boolean().optional(),\n value: z.boolean().optional(),\n})\n\n/** TransactionInvalidationConfigZod constant. */\nexport const TransactionInvalidationConfigZod = z.union([\n TransactionInvalidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n TransactionInvalidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n TransactionInvalidationConfigFieldsZod,\n z.object({}),\n])\n\n/** TransactionInvalidationConfig type. */\nexport type TransactionInvalidationConfig = z.infer<typeof TransactionInvalidationConfigZod>\n/** Type guard that checks if a value is a valid TransactionInvalidationConfig. */\nexport const isTransactionInvalidationConfig = zodIsFactory(TransactionInvalidationConfigZod)\n\n/**\n * Checks if transactions are invalid (impossible to ever become valid) according to protocol rules.\n */\n\nexport interface TransactionInvalidationViewerMethods {\n qualifiedInvalidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionInvalidationConfig\n ): Promisable<[(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[], TransactionInvalidationQualification]>\n}\n\n/** Moniker identifier for the TransactionInvalidationViewer provider. */\nexport const TransactionInvalidationViewerMoniker = 'TransactionInvalidationViewer' as const\n/** Type literal for the TransactionInvalidationViewer provider moniker. */\nexport type TransactionInvalidationViewerMoniker = typeof TransactionInvalidationViewerMoniker\n\n/** Viewer interface for reading TransactionInvalidation data. */\nexport interface TransactionInvalidationViewer extends TransactionInvalidationViewerMethods, Provider<TransactionInvalidationViewerMoniker> {\n invalidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionInvalidationConfig\n ): Promisable<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>\n\n invalidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionInvalidationConfig\n ): Promisable<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>\n\n qualifiedInvalidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionInvalidationConfig\n ): Promisable<[HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta, TransactionInvalidationQualification]>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport type {\n Provider, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,\n} from '@xyo-network/xl1-protocol-model'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '@xyo-network/xl1-protocol-model'\nimport { z } from 'zod'\n\nimport type { HydratedTransactionValidationError } from '../validation/index.ts'\n\n/** TransactionValidationQualificationZod constant. */\nexport const TransactionValidationQualificationZod = ChainQualificationZod\n/** TransactionValidationQualification type. */\nexport type TransactionValidationQualification = z.infer<typeof TransactionValidationQualificationZod>\n/** Type guard that checks if a value is a valid TransactionValidationQualification. */\nexport const isTransactionValidationQualification = zodIsFactory(TransactionValidationQualificationZod)\n\n/** TransactionValidationConfigFieldsZod constant. */\nexport const TransactionValidationConfigFieldsZod = z.object({\n value: z.boolean().optional(),\n state: z.boolean().optional(),\n})\n\n/** TransactionValidationConfigZod constant. */\nexport const TransactionValidationConfigZod = z.union([\n TransactionValidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n TransactionValidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n TransactionValidationConfigFieldsZod,\n z.object({}),\n])\n\n/** TransactionValidationConfig type. */\nexport type TransactionValidationConfig = z.infer<typeof TransactionValidationConfigZod>\n/** Type guard that checks if a value is a valid TransactionValidationConfig. */\nexport const isTransactionValidationConfig = zodIsFactory(TransactionValidationConfigZod)\n\n/** TransactionValidationViewerMethods interface. */\nexport interface TransactionValidationViewerMethods {\n qualifiedValidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionValidationConfig\n ): Promisable<[(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[], TransactionValidationQualification]>\n}\n\n/** Moniker identifier for the TransactionValidationViewer provider. */\nexport const TransactionValidationViewerMoniker = 'TransactionValidationViewer' as const\n/** Type literal for the TransactionValidationViewer provider moniker. */\nexport type TransactionValidationViewerMoniker = typeof TransactionValidationViewerMoniker\n\n/**\n * Checks if transactions are valid (currently valid) according to protocol rules.\n * In the case that they are not valid, they may still become valid in the future.\n */\n\nexport interface TransactionValidationViewer extends TransactionValidationViewerMethods, Provider<TransactionValidationViewerMoniker> {\n qualifiedValidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionValidationConfig\n ): Promisable<[HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta, TransactionValidationQualification]>\n\n validateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionValidationConfig\n ): Promisable<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>\n\n validateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionValidationConfig\n ): Promisable<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Signed } from '@xyo-network/sdk-js'\nimport type {\n AttoXL1, BlockBoundWitness, Provider, TransactionBoundWitness, Transfer, XL1BlockRange,\n} from '@xyo-network/xl1-protocol-model'\n\n/** TransferBalanceHistoryItem type. */\nexport type TransferBalanceHistoryItem = [\n Signed<BlockBoundWitness> /* block */,\n Signed<TransactionBoundWitness> | null,\n Transfer, /* the actual transfer payload */\n]\n/** TransferPair type. */\nexport type TransferPair = [Address, Address]\n\n/** TransferBalancesViewerMethods interface. */\nexport interface TransferBalancesViewerMethods {\n transferBalances(address: Address[]): Promisable<Partial<Record<Address, Record<Address, AttoXL1>>>>\n transferBalancesHistories(address: Address[]): Promisable<Partial<Record<Address, Record<Address, TransferBalanceHistoryItem[]>>>>\n transferPairBalances(address: TransferPair[]): Promisable<Partial<Record<Address, Record<Address, AttoXL1>>>>\n transferPairBalancesHistories(address: TransferPair[]): Promisable<Partial<Record<Address, Record<Address, TransferBalanceHistoryItem[]>>>>\n}\n\n/** Moniker identifier for the TransferBalanceViewer provider. */\nexport const TransferBalanceViewerMoniker = 'TransferBalanceViewer' as const\n/** Type literal for the TransferBalanceViewer provider moniker. */\nexport type TransferBalanceViewerMoniker = typeof TransferBalanceViewerMoniker\n\n/** Viewer interface for reading TransferBalance data. */\nexport interface TransferBalanceViewer extends TransferBalancesViewerMethods, Provider<TransferBalanceViewerMoniker> {\n transferBalance(address: Address): Promisable<AttoXL1>\n transferBalanceHistory(address: Address, range?: XL1BlockRange): Promisable<TransferBalanceHistoryItem[]>\n transferPairBalance(address: TransferPair): Promisable<AttoXL1>\n transferPairBalanceHistory(address: TransferPair): Promisable<TransferBalanceHistoryItem[]>\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type {\n HydratedBlockWithHashMeta, Provider, ProviderMoniker,\n} from '@xyo-network/xl1-protocol-model'\n\nimport type { BlockViewerMethods } from './Block.ts'\n\ntype ExtendableBlockViewerMethods = Omit<BlockViewerMethods, 'rate' | 'stepSizeRate' | 'timeDurationRate'>\n\n/** WindowedBlockViewerMethods interface. */\nexport interface WindowedBlockViewerMethods extends ExtendableBlockViewerMethods {\n blocksByTransactionHashes(hashes: Hash[]): Promisable<HydratedBlockWithHashMeta[]>\n}\n\n/** Moniker identifier for the WindowedBlockViewer provider. */\nexport const WindowedBlockViewerMoniker = 'WindowedBlockViewer' as const\n/** Type literal for the WindowedBlockViewer provider moniker. */\nexport type WindowedBlockViewerMoniker = typeof WindowedBlockViewerMoniker\n\n/** Viewer interface for reading WindowedBlock data. */\nexport interface WindowedBlockViewer<TMoniker extends ProviderMoniker = WindowedBlockViewerMoniker> extends WindowedBlockViewerMethods, Provider<TMoniker> {\n blockByTransactionHash(hash: Hash): Promisable<HydratedBlockWithHashMeta | null>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type {\n AccountBalanceHistoryItem, AccountBalanceViewer, AttoXL1,\n ChainQualifiedConfig, Provider,\n} from '@xyo-network/xl1-protocol-model'\n\nimport type { BlockViewer, BlockViewerMethods } from './Block.ts'\nimport type { FinalizationViewer } from './Finalization.ts'\nimport type { ForkViewerMethods } from './Fork.ts'\nimport type { MempoolViewer } from './Mempool.ts'\nimport type { NetworkStakeViewer } from './NetworkStake/index.ts'\nimport type { NetworkStakeStepRewardViewerMethods } from './NetworkStakeStepReward.ts'\nimport type { StakeViewer, StakeViewerMethods } from './Stake.ts'\nimport type { StepViewer } from './StepViewer.ts'\nimport type { TimeSyncViewer } from './TimeSync.ts'\nimport type { TransactionViewer, TransactionViewerMethods } from './Transaction.ts'\n\n/** XyoViewerMethods interface. */\nexport interface XyoViewerMethods extends\n NetworkStakeStepRewardViewerMethods, BlockViewerMethods,\n Omit<TransactionViewerMethods, 'byHash'>, Omit<\n StakeViewerMethods, 'minWithdrawalBlocks' | 'rewardsContract' | 'stakingTokenAddress' | 'active'\n | 'activeByAddressStaked' | 'activeByStaker' | 'pending' | 'pendingByStaker' | 'withdrawn' | 'withdrawnByStaker'\n >, ForkViewerMethods {\n /** @deprecated Use .account.balance.accountBalance instead */\n accountBalance(address: Address, config?: ChainQualifiedConfig): Promisable<AttoXL1>\n /** @deprecated Use .account.balance.accountBalanceHistory instead */\n accountBalanceHistory(address: Address, config?: ChainQualifiedConfig): Promisable<AccountBalanceHistoryItem[]>\n}\n\n/** XyoViewerMethodsV2 interface. */\nexport interface XyoViewerMethodsV2 {\n\n}\n\n/** Moniker identifier for the XyoViewer provider. */\nexport const XyoViewerMoniker = 'XyoViewer' as const\n/** Type literal for the XyoViewer provider moniker. */\nexport type XyoViewerMoniker = typeof XyoViewerMoniker\n\n/** Viewer interface for reading Xyo data. */\nexport interface XyoViewer extends Omit<BlockViewer, 'moniker'>, XyoViewerMethods,\n Omit<\n StakeViewerMethods, 'moniker' | 'minWithdrawalBlocks' | 'rewardsContract' | 'stakingTokenAddress' | 'active'\n | 'activeByAddressStaked' | 'activeByStaker' | 'pending' | 'pendingByStaker' | 'withdrawn' | 'withdrawnByStaker'\n >, Provider<XyoViewerMoniker> {\n account: {\n balance: AccountBalanceViewer\n }\n block: BlockViewer\n finalization: FinalizationViewer\n mempool: MempoolViewer\n networkStake: NetworkStakeViewer\n stake: StakeViewer\n step: StepViewer\n time: TimeSyncViewer\n transaction: TransactionViewer\n}\n\n/** XyoViewerV2 interface. */\nexport interface XyoViewerV2 extends XyoViewerMethodsV2, Provider<XyoViewerMoniker> {\n account: {\n balance: AccountBalanceViewer\n }\n block: BlockViewer\n finalization: FinalizationViewer\n mempool: MempoolViewer\n networkStake: NetworkStakeViewer\n stake: StakeViewer\n step: StepViewer\n time: TimeSyncViewer\n transaction: TransactionViewer\n}\n","export * from './network/index.ts'\nexport * from './OpenTelemetryProviders.ts'\nexport * from './permissions/index.ts'\nexport * from './providers/index.ts'\nexport * from './repository/index.ts'\nexport * from './runners/index.ts'\nexport * from './validation/index.ts'\nexport * from './viewers/index.ts'\nexport * from '@xyo-network/xl1-protocol-model'\n"],"mappings":"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","names":["zodIsFactory","ChainQualificationZod","ChainQualifiedHeadConfigZod","ChainQualifiedRangeConfigZod","z","z","zodIsFactory","ChainQualificationZod","ChainQualifiedHeadConfigZod","ChainQualifiedRangeConfigZod","z","zodIsFactory","ChainQualificationZod","ChainQualifiedHeadConfigZod","ChainQualifiedRangeConfigZod","z"]}
|
|
@@ -3,7 +3,7 @@ import type { BlockBoundWitness, Provider, SignedBlockBoundWitnessWithHashMeta,
|
|
|
3
3
|
/** BlockRunnerMethods interface. */
|
|
4
4
|
export interface BlockRunnerMethods {
|
|
5
5
|
produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force: true): Promise<SignedHydratedBlockWithHashMeta>;
|
|
6
|
-
produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force?:
|
|
6
|
+
produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force?: boolean): Promise<SignedHydratedBlockWithHashMeta | undefined>;
|
|
7
7
|
}
|
|
8
8
|
/** Moniker identifier for the BlockRunner provider. */
|
|
9
9
|
export declare const BlockRunnerMoniker: "BlockRunner";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/runners/Block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EACV,iBAAiB,EAAE,QAAQ,EAC3B,mCAAmC,EAAE,+BAA+B,EACrE,MAAM,iCAAiC,CAAA;AAExC,oCAAoC;AACpC,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAA;IAClH,gBAAgB,CAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/runners/Block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EACV,iBAAiB,EAAE,QAAQ,EAC3B,mCAAmC,EAAE,+BAA+B,EACrE,MAAM,iCAAiC,CAAA;AAExC,oCAAoC;AACpC,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAA;IAClH,gBAAgB,CAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC,CAAA;CACnI;AAED,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,EAAG,aAAsB,CAAA;AACxD,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAA;AAE1D,uDAAuD;AACvD,MAAM,WAAW,WAAY,SAAQ,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,CAAC;IACnF,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC,CAAA;CAClG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/xl1-protocol-lib",
|
|
3
|
-
"version": "1.26.
|
|
3
|
+
"version": "1.26.9",
|
|
4
4
|
"description": "XYO Layer One Protocol",
|
|
5
5
|
"homepage": "https://xylabs.com",
|
|
6
6
|
"bugs": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"!**/*.test.*"
|
|
39
39
|
],
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@xyo-network/xl1-protocol-model": "~1.26.
|
|
41
|
+
"@xyo-network/xl1-protocol-model": "~1.26.9"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@opentelemetry/api": "^1.9.1",
|
package/src/runners/Block.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type {
|
|
|
7
7
|
/** BlockRunnerMethods interface. */
|
|
8
8
|
export interface BlockRunnerMethods {
|
|
9
9
|
produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force: true): Promise<SignedHydratedBlockWithHashMeta>
|
|
10
|
-
produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force?:
|
|
10
|
+
produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force?: boolean): Promise<SignedHydratedBlockWithHashMeta | undefined>
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
/** Moniker identifier for the BlockRunner provider. */
|