@xyo-network/xl1-protocol-lib 1.26.12 → 1.26.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/package.json +25 -10
  2. package/src/OpenTelemetryProviders.ts +0 -7
  3. package/src/index.ts +0 -9
  4. package/src/network/Status.ts +0 -30
  5. package/src/network/index.ts +0 -1
  6. package/src/permissions/InvokerPermission.ts +0 -58
  7. package/src/permissions/XyoPermissions.ts +0 -41
  8. package/src/permissions/index.ts +0 -2
  9. package/src/providers/DataLake/Provider.ts +0 -11
  10. package/src/providers/DataLake/Runner.ts +0 -16
  11. package/src/providers/DataLake/Viewer.ts +0 -16
  12. package/src/providers/DataLake/index.ts +0 -3
  13. package/src/providers/TransactionHelper.ts +0 -15
  14. package/src/providers/XyoClient.ts +0 -27
  15. package/src/providers/XyoConnection.ts +0 -20
  16. package/src/providers/XyoGateway.ts +0 -24
  17. package/src/providers/XyoGatewayRunner.ts +0 -72
  18. package/src/providers/XyoNetwork.ts +0 -8
  19. package/src/providers/XyoRunner.ts +0 -19
  20. package/src/providers/index.ts +0 -8
  21. package/src/providers/signer/XyoSigner.ts +0 -36
  22. package/src/providers/signer/index.ts +0 -1
  23. package/src/repository/Repository.ts +0 -32
  24. package/src/repository/TransactionReadRepository.ts +0 -6
  25. package/src/repository/TransactionRepository.ts +0 -12
  26. package/src/repository/TransactionRepositoryIterator.ts +0 -6
  27. package/src/repository/TransactionWriteRepository.ts +0 -6
  28. package/src/repository/index.ts +0 -5
  29. package/src/runners/Block.ts +0 -21
  30. package/src/runners/Finalization.ts +0 -17
  31. package/src/runners/Mempool.ts +0 -31
  32. package/src/runners/index.ts +0 -3
  33. package/src/validation/block/BlockValidationFunction.ts +0 -13
  34. package/src/validation/block/HydratedBlockStateValidationFunction.ts +0 -29
  35. package/src/validation/block/HydratedBlockValidationFunction.ts +0 -21
  36. package/src/validation/block/error.ts +0 -52
  37. package/src/validation/block/index.ts +0 -4
  38. package/src/validation/boundwitness/BoundWitnessValidationFunction.ts +0 -9
  39. package/src/validation/boundwitness/HydratedBoundWitnessValidationFunction.ts +0 -15
  40. package/src/validation/boundwitness/error.ts +0 -29
  41. package/src/validation/boundwitness/index.ts +0 -3
  42. package/src/validation/error.ts +0 -35
  43. package/src/validation/index.ts +0 -5
  44. package/src/validation/payload/InBlockPayloadValidationFunction.ts +0 -16
  45. package/src/validation/payload/error.ts +0 -24
  46. package/src/validation/payload/index.ts +0 -2
  47. package/src/validation/transaction/HydratedTransactionStateValidationFunction.ts +0 -27
  48. package/src/validation/transaction/HydratedTransactionValidationFunction.ts +0 -23
  49. package/src/validation/transaction/error.ts +0 -16
  50. package/src/validation/transaction/index.ts +0 -3
  51. package/src/viewers/Block.ts +0 -40
  52. package/src/viewers/BlockInvalidation.ts +0 -81
  53. package/src/viewers/BlockReward.ts +0 -18
  54. package/src/viewers/BlockValidation.ts +0 -81
  55. package/src/viewers/ChainContract.ts +0 -28
  56. package/src/viewers/ChainStakeViewer.ts +0 -15
  57. package/src/viewers/Finalization.ts +0 -22
  58. package/src/viewers/Fork.ts +0 -10
  59. package/src/viewers/Mempool.ts +0 -40
  60. package/src/viewers/NetworkStake/NetworkStakeViewer.ts +0 -20
  61. package/src/viewers/NetworkStake/Rewards/ByPositionViewer.ts +0 -19
  62. package/src/viewers/NetworkStake/Rewards/ByStakerViewer.ts +0 -20
  63. package/src/viewers/NetworkStake/Rewards/ByStepViewer.ts +0 -18
  64. package/src/viewers/NetworkStake/Rewards/Options.ts +0 -22
  65. package/src/viewers/NetworkStake/Rewards/TotalViewer.ts +0 -17
  66. package/src/viewers/NetworkStake/Rewards/Viewer.ts +0 -22
  67. package/src/viewers/NetworkStake/Rewards/index.ts +0 -7
  68. package/src/viewers/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.ts +0 -7
  69. package/src/viewers/NetworkStake/Rewards/templates/MethodsTemplate.ts +0 -10
  70. package/src/viewers/NetworkStake/Rewards/templates/index.ts +0 -2
  71. package/src/viewers/NetworkStake/index.ts +0 -4
  72. package/src/viewers/NetworkStakeStepReward.ts +0 -82
  73. package/src/viewers/Stake.ts +0 -44
  74. package/src/viewers/StakeEvents.ts +0 -54
  75. package/src/viewers/StakeIntent.ts +0 -21
  76. package/src/viewers/StakeTotals.ts +0 -21
  77. package/src/viewers/StepStake.ts +0 -26
  78. package/src/viewers/StepViewer.ts +0 -57
  79. package/src/viewers/TimeSync.ts +0 -27
  80. package/src/viewers/Transaction.ts +0 -27
  81. package/src/viewers/TransactionInvalidation.ts +0 -71
  82. package/src/viewers/TransactionValidation.ts +0 -72
  83. package/src/viewers/TransferBalance.ts +0 -35
  84. package/src/viewers/WindowedBlock.ts +0 -23
  85. package/src/viewers/XyoViewer.ts +0 -73
  86. package/src/viewers/index.ts +0 -23
@@ -1,31 +0,0 @@
1
- import type { Hash } from '@xylabs/sdk-js'
2
- import type {
3
- Provider, SignedHydratedBlock, SignedHydratedTransaction,
4
- } from '@xyo-network/xl1-protocol-model'
5
-
6
- /** MempoolRunnerMethods interface. */
7
- export interface MempoolRunnerMethods {
8
- submitBlocks(blocks: SignedHydratedBlock[]): Promise<Hash[]>
9
- submitTransactions(transactions: SignedHydratedTransaction[]): Promise<Hash[]>
10
- }
11
-
12
- /** Moniker identifier for the MempoolRunner provider. */
13
- export const MempoolRunnerMoniker = 'MempoolRunner' as const
14
- /** Type literal for the MempoolRunner provider moniker. */
15
- export type MempoolRunnerMoniker = typeof MempoolRunnerMoniker
16
-
17
- /** DEFAULT_MAX_EXP_AHEAD constant. */
18
- export const DEFAULT_MAX_EXP_AHEAD = 1000
19
-
20
- /** Options for MempoolPrune. */
21
- export interface MempoolPruneOptions {
22
- batchSize?: number
23
- maxCheck?: number
24
- maxPrune?: number
25
- }
26
-
27
- /** Runner interface for executing Mempool operations. */
28
- export interface MempoolRunner extends MempoolRunnerMethods, Provider<MempoolRunnerMoniker> {
29
- prunePendingBlocks(options?: MempoolPruneOptions): Promise<[number, number]>
30
- prunePendingTransactions(options?: MempoolPruneOptions): Promise<[number, number]>
31
- }
@@ -1,3 +0,0 @@
1
- export * from './Block.ts'
2
- export * from './Finalization.ts'
3
- export * from './Mempool.ts'
@@ -1,13 +0,0 @@
1
- import type { Promisable } from '@xylabs/sdk-js'
2
- import type {
3
- BaseContext, BlockBoundWitness, ChainId,
4
- } from '@xyo-network/xl1-protocol-model'
5
-
6
- import type { BlockValidationError } from './error.ts'
7
-
8
- /** Function type for BlockValidator operations. */
9
- export type BlockValidatorFunction = (
10
- context: BaseContext,
11
- block: BlockBoundWitness,
12
- chainId?: ChainId,
13
- ) => Promisable<BlockValidationError[]>
@@ -1,29 +0,0 @@
1
- import type { Promisable } from '@xylabs/sdk-js'
2
- import type {
3
- AccountBalanceViewer,
4
- BaseContext, ChainId,
5
- HydratedBlockWithHashMeta, XL1BlockNumber,
6
- } from '@xyo-network/xl1-protocol-model'
7
-
8
- import type { HydratedBlockStateValidationError } from './error.ts'
9
-
10
- /** Function type for ChainAtBlockNumber operations. */
11
- export type ChainAtBlockNumberFunction = (blockNumber: XL1BlockNumber) => Promisable<ChainId>
12
-
13
- /** Context for HydratedBlockStateValidationFunction operations. */
14
- export interface HydratedBlockStateValidationFunctionContext extends BaseContext {
15
- accountBalance: AccountBalanceViewer
16
- chainIdAtBlockNumber: ChainAtBlockNumberFunction
17
- }
18
-
19
- /**
20
- * A function that validates a hydrated block against chain state.
21
- * @param hydratedBlock The hydrated block to validate.
22
- * @param chainId The chain ID to use for validation.
23
- * @param archivist The archivist to use for validation.
24
- * @returns An array of errors if the block is invalid, or an empty array if it is valid.
25
- */
26
- export type HydratedBlockStateValidationFunction = (
27
- context: HydratedBlockStateValidationFunctionContext,
28
- hydratedBlock: HydratedBlockWithHashMeta,
29
- ) => Promisable<HydratedBlockStateValidationError[]>
@@ -1,21 +0,0 @@
1
- import type { Promisable } from '@xylabs/sdk-js'
2
- import type {
3
- BaseContext, ChainId, HydratedBlockWithHashMeta, XL1BlockNumber,
4
- } from '@xyo-network/xl1-protocol-model'
5
-
6
- import type { HydratedBlockValidationError } from './error.ts'
7
-
8
- /** Context for HydratedBlockValidationFunction operations. */
9
- export interface HydratedBlockValidationFunctionContext extends BaseContext {}
10
-
11
- /**
12
- * A function that validates a hydrated block.
13
- * @param hydratedBlock The hydrated block to validate.
14
- * @param chainIdAtBlockNumber A function to get the chain ID at a specific block number.
15
- * @returns An array of errors if the block is invalid, or an empty array if it is valid.
16
- */
17
- export type HydratedBlockValidationFunction = (
18
- context: HydratedBlockValidationFunctionContext,
19
- hydratedBlock: HydratedBlockWithHashMeta,
20
- chainIdAtBlockNumber?: (blockNumber: XL1BlockNumber) => Promisable<ChainId>,
21
- ) => Promisable<HydratedBlockValidationError[]>
@@ -1,52 +0,0 @@
1
- import type { Hash } from '@xylabs/sdk-js'
2
- import {
3
- HexZod, zodAsFactory, zodIsFactory, zodToFactory,
4
- } from '@xylabs/sdk-js'
5
- import type {
6
- BlockBoundWitness, ChainId, HydratedBlock,
7
- } from '@xyo-network/xl1-protocol-model'
8
- import { z } from 'zod'
9
-
10
- import { ValidationError, ValidationErrorZod } from '../error.ts'
11
-
12
- export const BlockValidationErrorZod = ValidationErrorZod.extend({ name: z.literal('BlockValidationError') }).loose()
13
-
14
- export type BlockValidationErrorType = z.infer<typeof BlockValidationErrorZod>
15
-
16
- /** Error thrown during Block validation operations. */
17
- export class BlockValidationError extends ValidationError<BlockBoundWitness> {}
18
-
19
- export const isBlockValidationError = zodIsFactory(BlockValidationErrorZod)
20
- export const asBlockValidationError = zodAsFactory(BlockValidationErrorZod, 'BlockValidationError')
21
- export const toBlockValidationError = zodToFactory(BlockValidationErrorZod, 'BlockValidationError')
22
-
23
- export const HydratedBlockValidationErrorZod = ValidationErrorZod.extend({ name: z.literal('HydratedBlockValidationError') }).loose()
24
-
25
- export type HydratedBlockValidationErrorType = z.infer<typeof HydratedBlockValidationErrorZod>
26
-
27
- /** Error thrown during HydratedBlock validation operations. */
28
- export class HydratedBlockValidationError extends ValidationError<HydratedBlock> {}
29
-
30
- export const isHydratedBlockValidationError = zodIsFactory(HydratedBlockValidationErrorZod)
31
- export const asHydratedBlockValidationError = zodAsFactory(HydratedBlockValidationErrorZod, 'HydratedBlockValidationError')
32
- export const toHydratedBlockValidationError = zodToFactory(HydratedBlockValidationErrorZod, 'HydratedBlockValidationError')
33
-
34
- export const HydratedBlockStateValidationErrorZod = ValidationErrorZod.extend({
35
- chainId: HexZod,
36
- name: z.literal('HydratedBlockStateValidationError'),
37
- }).loose()
38
-
39
- export type HydratedBlockStateValidationErrorType = z.infer<typeof HydratedBlockStateValidationErrorZod>
40
-
41
- /** Error thrown during HydratedBlockState validation operations. */
42
- export class HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {
43
- chainId: ChainId
44
- constructor(hash: Hash, chainId: ChainId, value: HydratedBlock, message: string, cause?: unknown) {
45
- super(hash, value, message, cause)
46
- this.chainId = chainId
47
- }
48
- }
49
-
50
- export const isHydratedBlockStateValidationError = zodIsFactory(HydratedBlockStateValidationErrorZod)
51
- export const asHydratedBlockStateValidationError = zodAsFactory(HydratedBlockStateValidationErrorZod, 'HydratedBlockStateValidationError')
52
- export const toHydratedBlockStateValidationError = zodToFactory(HydratedBlockStateValidationErrorZod, 'HydratedBlockStateValidationError')
@@ -1,4 +0,0 @@
1
- export * from './BlockValidationFunction.ts'
2
- export * from './error.ts'
3
- export * from './HydratedBlockStateValidationFunction.ts'
4
- export * from './HydratedBlockValidationFunction.ts'
@@ -1,9 +0,0 @@
1
- import type { Promisable } from '@xylabs/sdk-js'
2
- import type { BoundWitness } from '@xyo-network/sdk-js'
3
-
4
- import type { BoundWitnessValidationError } from './error.ts'
5
-
6
- /** Function type for BoundWitnessValidation operations. */
7
- export type BoundWitnessValidationFunction<T extends BoundWitness = BoundWitness> = (
8
- bw: T,
9
- ) => Promisable<BoundWitnessValidationError[]>
@@ -1,15 +0,0 @@
1
- import type { Promisable } from '@xylabs/sdk-js'
2
- import type {
3
- BoundWitness, Payload, WithHashMeta,
4
- } from '@xyo-network/sdk-js'
5
-
6
- import type { HydratedBoundWitnessValidationError } from './error.ts'
7
-
8
- /** Type representing a hydrated BoundWitnessWithHashMeta with resolved payloads. */
9
- export type HydratedBoundWitnessWithHashMeta<T extends BoundWitness = BoundWitness, P extends Payload = Payload>
10
- = [WithHashMeta<T>, WithHashMeta<P>[]]
11
-
12
- /** Type representing a hydrated BoundWitnessValidationFunction with resolved payloads. */
13
- export type HydratedBoundWitnessValidationFunction<T extends BoundWitness = BoundWitness> = (
14
- bw: HydratedBoundWitnessWithHashMeta<T>,
15
- ) => Promisable<HydratedBoundWitnessValidationError[]>
@@ -1,29 +0,0 @@
1
- import type { BoundWitness, HydratedBoundWitness } from '@xyo-network/sdk-js'
2
-
3
- import { isValidationError, ValidationError } from '../error.ts'
4
-
5
- /** Error thrown during BoundWitnessvalidation operations. */
6
- export class BoundWitnessValidationError extends ValidationError<BoundWitness> {}
7
-
8
- /** Type guard that checks if a value is a valid BoundWitnessValidationError. */
9
- export const isBoundWitnessValidationError = (
10
- error: unknown,
11
- ): error is BoundWitnessValidationError => {
12
- if (!isValidationError(error)) return false
13
- return (
14
- error.name === BoundWitnessValidationError.constructor.name
15
- )
16
- }
17
-
18
- /** Error thrown during HydratedBoundWitnessvalidation operations. */
19
- export class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}
20
-
21
- /** Type guard that checks if a value is a valid HydratedBoundWitnessValidationError. */
22
- export const isHydratedBoundWitnessValidationError = (
23
- error: unknown,
24
- ): error is HydratedBoundWitnessValidationError => {
25
- if (!isValidationError(error)) return false
26
- return (
27
- error.name === HydratedBoundWitnessValidationError.constructor.name
28
- )
29
- }
@@ -1,3 +0,0 @@
1
- export * from './BoundWitnessValidationFunction.ts'
2
- export * from './error.ts'
3
- export * from './HydratedBoundWitnessValidationFunction.ts'
@@ -1,35 +0,0 @@
1
- import {
2
- type Hash, HashZod, zodAsFactory, zodIsFactory, zodToFactory,
3
- } from '@xylabs/sdk-js'
4
- import type { Payload } from '@xyo-network/sdk-js'
5
- import { z } from 'zod'
6
-
7
- export const ValidationErrorZod = z.object({
8
- hash: HashZod,
9
- message: z.string().optional(),
10
- name: z.string(),
11
- value: z.unknown(),
12
- }).loose()
13
-
14
- export type ValidationErrorType = z.infer<typeof ValidationErrorZod>
15
-
16
- /** Error thrown during validation operations. */
17
- export class ValidationError<TValue = Payload> extends Error {
18
- override cause?: unknown
19
- hash: Hash
20
- override message: string
21
- value: TValue
22
- constructor(hash: Hash, value: TValue, message: string, cause?: unknown) {
23
- super(message)
24
- this.hash = hash
25
- this.message = message
26
- this.name = this.constructor.name
27
- this.value = value
28
- this.cause = cause
29
- }
30
- }
31
-
32
- /** Type guard that checks if a value is a valid ValidationError. */
33
- export const isValidationError = zodIsFactory(ValidationErrorZod)
34
- export const asValidationError = zodAsFactory(ValidationErrorZod, 'ValidationError')
35
- export const toValidationError = zodToFactory(ValidationErrorZod, 'ValidationError')
@@ -1,5 +0,0 @@
1
- export * from './block/index.ts'
2
- export * from './boundwitness/index.ts'
3
- export * from './error.ts'
4
- export * from './payload/index.ts'
5
- export * from './transaction/index.ts'
@@ -1,16 +0,0 @@
1
- import type { Promisable } from '@xylabs/sdk-js'
2
- import type { Payload, WithHashMeta } from '@xyo-network/sdk-js'
3
- import type { BaseContext, HydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol-model'
4
-
5
- import type { InBlockPayloadValidationError } from './error.ts'
6
-
7
- /** Context for InBlockPayloadValidationFunction operations. */
8
- export interface InBlockPayloadValidationFunctionContext extends BaseContext {
9
-
10
- }
11
-
12
- /** Function type for InBlockPayloadValidation operations. */
13
- export type InBlockPayloadValidationFunction = (
14
- context: InBlockPayloadValidationFunctionContext,
15
- payload: WithHashMeta<Payload>, block: HydratedBlockWithHashMeta,
16
- ) => Promisable<InBlockPayloadValidationError[]>
@@ -1,24 +0,0 @@
1
- import type { Hash } from '@xylabs/sdk-js'
2
- import { type Payload } from '@xyo-network/sdk-js'
3
- import type { HydratedBlock } from '@xyo-network/xl1-protocol-model'
4
-
5
- import { isValidationError, ValidationError } from '../error.ts'
6
-
7
- /** Error thrown during InBlockPayload validation operations. */
8
- export class InBlockPayloadValidationError extends ValidationError<Payload> {
9
- block: HydratedBlock
10
- constructor(hash: Hash, block: HydratedBlock, value: Payload, message: string, cause?: unknown) {
11
- super(hash, value, message, cause)
12
- this.block = block
13
- }
14
- }
15
-
16
- /** Type guard that checks if a value is a valid InBlockPayloadValidationError. */
17
- export const isInBlockPayloadValidationError = (
18
- error: unknown,
19
- ): error is InBlockPayloadValidationError => {
20
- if (!isValidationError(error)) return false
21
- return (
22
- error.name === InBlockPayloadValidationError.constructor.name
23
- )
24
- }
@@ -1,2 +0,0 @@
1
- export * from './error.ts'
2
- export * from './InBlockPayloadValidationFunction.ts'
@@ -1,27 +0,0 @@
1
- import type { Promisable } from '@xylabs/sdk-js'
2
- import type {
3
- AccountBalanceViewer,
4
- BaseContext, ChainId,
5
- HydratedTransactionWithHashMeta,
6
- } from '@xyo-network/xl1-protocol-model'
7
-
8
- import type { BlockViewer } from '../../viewers/index.ts'
9
- import type { HydratedTransactionValidationError } from './error.ts'
10
-
11
- /** Context for HydratedTransactionStateValidationFunction operations. */
12
- export interface HydratedTransactionStateValidationFunctionContext extends BaseContext {
13
- accountBalanceViewer: AccountBalanceViewer
14
- blockViewer: BlockViewer
15
- chainId: ChainId
16
- }
17
-
18
- /**
19
- * A function that validates a hydrated transaction against chain state.
20
- * @param context The context to use for validation.
21
- * @param hydratedTransaction The hydrated transaction to validate.
22
- * @returns An array of errors if the transaction is invalid, or an empty array if it is valid.
23
- */
24
- export type HydratedTransactionStateValidationFunction = (
25
- context: HydratedTransactionStateValidationFunctionContext,
26
- hydratedTransaction: HydratedTransactionWithHashMeta,
27
- ) => Promisable<HydratedTransactionValidationError[]>
@@ -1,23 +0,0 @@
1
- import type { Promisable } from '@xylabs/sdk-js'
2
- import type {
3
- BaseContext, ChainId, HydratedTransactionWithHashMeta, StepIdentity,
4
- } from '@xyo-network/xl1-protocol-model'
5
-
6
- import type { HydratedTransactionValidationError } from './error.ts'
7
-
8
- /** Context for HydratedTransactionValidationFunction operations. */
9
- export interface HydratedTransactionValidationFunctionContext extends BaseContext {
10
- chainId: ChainId
11
- step?: StepIdentity
12
- }
13
-
14
- /**
15
- * A function that validates a hydrated transaction.
16
- * @param bw The hydrated transaction to validate.
17
- * @param context The context to use for validation.
18
- * @returns An array of errors if the transaction is invalid, or an empty array if it is valid.
19
- */
20
- export type HydratedTransactionValidationFunction<TContext extends HydratedTransactionValidationFunctionContext = HydratedTransactionValidationFunctionContext> = (
21
- context: TContext,
22
- hydratedTransaction: HydratedTransactionWithHashMeta,
23
- ) => Promisable<HydratedTransactionValidationError[]>
@@ -1,16 +0,0 @@
1
- import type { HydratedTransaction } from '@xyo-network/xl1-protocol-model'
2
-
3
- import { isValidationError, ValidationError } from '../error.ts'
4
-
5
- /** Error thrown during HydratedTransactionvalidation operations. */
6
- export class HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {}
7
-
8
- /** Type guard that checks if a value is a valid HydratedTransactionValidationError. */
9
- export const isHydratedTransactionValidationError = (
10
- error: unknown,
11
- ): error is HydratedTransactionValidationError => {
12
- if (!isValidationError(error)) return false
13
- return (
14
- error.name === HydratedTransactionValidationError.constructor.name
15
- )
16
- }
@@ -1,3 +0,0 @@
1
- export * from './error.ts'
2
- export * from './HydratedTransactionStateValidationFunction.ts'
3
- export * from './HydratedTransactionValidationFunction.ts'
@@ -1,40 +0,0 @@
1
- import type { Hash, Promisable } from '@xylabs/sdk-js'
2
- import type { Payload, WithHashMeta } from '@xyo-network/sdk-js'
3
- import type {
4
- BlockRate, ChainId,
5
- Provider, ProviderMoniker, SignedHydratedBlockWithHashMeta, SingleTimeConfig, TimeDurations, XL1BlockNumber, XL1BlockRange,
6
- } from '@xyo-network/xl1-protocol-model'
7
-
8
- /** BlockViewerMethods interface. */
9
- export interface BlockViewerMethods {
10
- blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>
11
- blocksByNumber(block: XL1BlockNumber, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>
12
- currentBlock(): Promisable<SignedHydratedBlockWithHashMeta>
13
- payloadsByHash(hashes: Hash[]): Promisable<WithHashMeta<Payload>[]>
14
- }
15
-
16
- /** Moniker identifier for the BlockViewer provider. */
17
- export const BlockViewerMoniker = 'BlockViewer' as const
18
- /** Type literal for the BlockViewer provider moniker. */
19
- export type BlockViewerMoniker = typeof BlockViewerMoniker
20
-
21
- /** Viewer interface for reading Block data. */
22
- export interface BlockViewer<TMoniker extends ProviderMoniker = BlockViewerMoniker> extends BlockViewerMethods, Provider<TMoniker> {
23
- blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>
24
- blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>
25
- chainId(): Promisable<ChainId>
26
- chainId(blockNumber: XL1BlockNumber): Promisable<ChainId>
27
- chainId(blockNumber: 'latest'): Promisable<ChainId>
28
- currentBlockHash(): Promisable<Hash>
29
- currentBlockNumber(): Promisable<XL1BlockNumber>
30
- payloadByHash(hash: Hash): Promisable<WithHashMeta<Payload> | null>
31
- rate(range: XL1BlockRange, timeUnit?: keyof TimeDurations): Promisable<BlockRate>
32
- stepSizeRate(start: XL1BlockNumber, stepIndex: number, count?: number, timeUnit?: keyof TimeDurations): Promisable<BlockRate>
33
- timeDurationRate(
34
- timeConfig: SingleTimeConfig,
35
- startBlockNumber?: XL1BlockNumber,
36
- timeUnit?: keyof TimeDurations,
37
- toleranceMs?: number,
38
- maxAttempts?: number,
39
- ): Promisable<BlockRate>
40
- }
@@ -1,81 +0,0 @@
1
- import { type Promisable } from '@xylabs/sdk-js'
2
- import { zodIsFactory } from '@xylabs/sdk-js'
3
- import type {
4
- Provider, SignedHydratedBlock, SignedHydratedBlockWithHashMeta,
5
- } from '@xyo-network/xl1-protocol-model'
6
- import {
7
- ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,
8
- } from '@xyo-network/xl1-protocol-model'
9
- import { z } from 'zod'
10
-
11
- import type { HydratedBlockValidationError } from '../validation/index.ts'
12
-
13
- /** BlockInvalidationQualificationZod constant. */
14
- export const BlockInvalidationQualificationZod = ChainQualificationZod
15
- /** BlockInvalidationQualification type. */
16
- export type BlockInvalidationQualification = z.infer<typeof BlockInvalidationQualificationZod>
17
- /** Type guard that checks if a value is a valid BlockInvalidationQualification. */
18
- export const isBlockInvalidationQualification = zodIsFactory(BlockInvalidationQualificationZod)
19
-
20
- /** BlockInvalidationConfigFieldsZod constant. */
21
- export const BlockInvalidationConfigFieldsZod = z.object({
22
- state: z.boolean().optional(),
23
- value: z.boolean().optional(),
24
- })
25
-
26
- /** BlockInvalidationConfigZod constant. */
27
- export const BlockInvalidationConfigZod = z.union([
28
- BlockInvalidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),
29
- BlockInvalidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),
30
- BlockInvalidationConfigFieldsZod,
31
- z.object({}),
32
- ])
33
-
34
- /** BlockInvalidationConfig type. */
35
- export type BlockInvalidationConfig = z.infer<typeof BlockInvalidationConfigZod>
36
- /** Type guard that checks if a value is a valid BlockInvalidationConfig. */
37
- export const isBlockInvalidationConfig = zodIsFactory(BlockInvalidationConfigZod)
38
-
39
- /**
40
- * Checks if blocks are invalid (impossible to ever become valid) according to protocol rules.
41
- */
42
-
43
- export interface BlockInvalidationViewerMethods {
44
- qualifiedInvalidateBlocks(
45
- blocks: SignedHydratedBlock[],
46
- config?: BlockInvalidationConfig
47
- ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]>
48
-
49
- qualifiedInvalidateUncle(
50
- blocks: SignedHydratedBlock[],
51
- config?: BlockInvalidationConfig
52
- ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]>
53
- }
54
-
55
- /** Moniker identifier for the BlockInvalidationViewer provider. */
56
- export const BlockInvalidationViewerMoniker = 'BlockInvalidationViewer' as const
57
- /** Type literal for the BlockInvalidationViewer provider moniker. */
58
- export type BlockInvalidationViewerMoniker = typeof BlockInvalidationViewerMoniker
59
-
60
- /** Viewer interface for reading BlockInvalidation data. */
61
- export interface BlockInvalidationViewer extends BlockInvalidationViewerMethods, Provider<BlockInvalidationViewerMoniker> {
62
- invalidateBlock(
63
- block: SignedHydratedBlock,
64
- config?: BlockInvalidationConfig
65
- ): Promisable<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>
66
-
67
- invalidateBlocks(
68
- blocks: SignedHydratedBlock[],
69
- config?: BlockInvalidationConfig
70
- ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>
71
-
72
- invalidateUncle(
73
- blocks: SignedHydratedBlock[],
74
- config?: BlockInvalidationConfig
75
- ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>
76
-
77
- qualifiedInvalidateBlock(
78
- block: SignedHydratedBlock,
79
- config?: BlockInvalidationConfig
80
- ): Promisable<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockInvalidationQualification]>
81
- }
@@ -1,18 +0,0 @@
1
- import type { Promisable } from '@xylabs/sdk-js'
2
- import type {
3
- AttoXL1, Provider, XL1BlockNumber,
4
- } from '@xyo-network/xl1-protocol-model'
5
-
6
- /** BlockRewardViewerMethods interface. */
7
- export interface BlockRewardViewerMethods {
8
- // The amount of xl1 to send to the producer from the block reward
9
- allowedRewardForBlock(block: XL1BlockNumber): Promisable<AttoXL1>
10
- }
11
-
12
- /** Moniker identifier for the BlockRewardViewer provider. */
13
- export const BlockRewardViewerMoniker = 'BlockRewardViewer' as const
14
- /** Type literal for the BlockRewardViewer provider moniker. */
15
- export type BlockRewardViewerMoniker = typeof BlockRewardViewerMoniker
16
-
17
- /** Viewer interface for reading BlockReward data. */
18
- export interface BlockRewardViewer extends BlockRewardViewerMethods, Provider<BlockRewardViewerMoniker> {}
@@ -1,81 +0,0 @@
1
- import { type Promisable } from '@xylabs/sdk-js'
2
- import { zodIsFactory } from '@xylabs/sdk-js'
3
- import type {
4
- Provider, SignedHydratedBlock, SignedHydratedBlockWithHashMeta,
5
- } from '@xyo-network/xl1-protocol-model'
6
- import {
7
- ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,
8
- } from '@xyo-network/xl1-protocol-model'
9
- import { z } from 'zod'
10
-
11
- import type { HydratedBlockValidationError } from '../validation/index.ts'
12
-
13
- /** BlockValidationQualificationZod constant. */
14
- export const BlockValidationQualificationZod = ChainQualificationZod
15
- /** BlockValidationQualification type. */
16
- export type BlockValidationQualification = z.infer<typeof BlockValidationQualificationZod>
17
- /** Type guard that checks if a value is a valid BlockValidationQualification. */
18
- export const isBlockValidationQualification = zodIsFactory(BlockValidationQualificationZod)
19
-
20
- /** BlockValidationConfigFieldsZod constant. */
21
- export const BlockValidationConfigFieldsZod = z.object({
22
- value: z.boolean().optional(),
23
- state: z.boolean().optional(),
24
- })
25
-
26
- /** BlockValidationConfigZod constant. */
27
- export const BlockValidationConfigZod = z.union([
28
- BlockValidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),
29
- BlockValidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),
30
- BlockValidationConfigFieldsZod,
31
- z.object({}),
32
- ])
33
-
34
- /** BlockValidationConfig type. */
35
- export type BlockValidationConfig = z.infer<typeof BlockValidationConfigZod>
36
- /** Type guard that checks if a value is a valid BlockValidationConfig. */
37
- export const isBlockValidationConfig = zodIsFactory(BlockValidationConfigZod)
38
-
39
- /** BlockValidationViewerMethods interface. */
40
- export interface BlockValidationViewerMethods {
41
- qualifiedValidateBlocks(
42
- blocks: SignedHydratedBlock[],
43
- config?: BlockValidationConfig
44
- ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]>
45
-
46
- qualifiedValidateUncle(
47
- blocks: SignedHydratedBlock[],
48
- config?: BlockValidationConfig
49
- ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]>
50
- }
51
-
52
- /** Moniker identifier for the BlockValidationViewer provider. */
53
- export const BlockValidationViewerMoniker = 'BlockValidationViewer' as const
54
- /** Type literal for the BlockValidationViewer provider moniker. */
55
- export type BlockValidationViewerMoniker = typeof BlockValidationViewerMoniker
56
-
57
- /**
58
- * 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.
59
- */
60
-
61
- export interface BlockValidationViewer extends BlockValidationViewerMethods, Provider<BlockValidationViewerMoniker> {
62
- qualifiedValidateBlock(
63
- block: SignedHydratedBlock,
64
- config?: BlockValidationConfig
65
- ): Promisable<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockValidationQualification]>
66
-
67
- validateBlock(
68
- block: SignedHydratedBlock,
69
- config?: BlockValidationConfig
70
- ): Promisable<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>
71
-
72
- validateBlocks(
73
- blocks: SignedHydratedBlock[],
74
- config?: BlockValidationConfig
75
- ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>
76
-
77
- validateUncle(
78
- blocks: SignedHydratedBlock[],
79
- config?: BlockValidationConfig
80
- ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>
81
- }
@@ -1,28 +0,0 @@
1
- import type {
2
- Address, Hash, Promisable,
3
- } from '@xylabs/sdk-js'
4
- import type {
5
- ChainId, Provider, XL1BlockNumber,
6
- } from '@xyo-network/xl1-protocol-model'
7
-
8
- /** ChainContractViewerMethods interface. */
9
- export interface ChainContractViewerMethods {
10
- chainId(): Promisable<ChainId>
11
- forkedAtBlockNumber(): Promisable<XL1BlockNumber | null>
12
- forkedAtHash(): Promisable<Hash | null>
13
- forkedChainId(): Promisable<ChainId | null>
14
- minWithdrawalBlocks(): Promisable<number>
15
- rewardsContract(): Promisable<Address>
16
- stakingTokenAddress(): Promisable<Address>
17
- }
18
-
19
- /** Moniker identifier for the ChainContractViewer provider. */
20
- export const ChainContractViewerMoniker = 'ChainContractViewer' as const
21
- /** Type literal for the ChainContractViewer provider moniker. */
22
- export type ChainContractViewerMoniker = typeof ChainContractViewerMoniker
23
-
24
- /** Viewer interface for reading ChainContract data. */
25
- export interface ChainContractViewer extends ChainContractViewerMethods, Provider<ChainContractViewerMoniker> {
26
- chainIdAtBlockNumber(blockNumber: XL1BlockNumber | 'latest'): Promisable<ChainId>
27
- forkedChainContractViewer(): Promisable<ChainContractViewer | null>
28
- }