@xyo-network/xl1-protocol-lib 1.26.12 → 1.26.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +22 -16
- package/src/OpenTelemetryProviders.ts +0 -7
- package/src/index.ts +0 -9
- package/src/network/Status.ts +0 -30
- package/src/network/index.ts +0 -1
- package/src/permissions/InvokerPermission.ts +0 -58
- package/src/permissions/XyoPermissions.ts +0 -41
- package/src/permissions/index.ts +0 -2
- package/src/providers/DataLake/Provider.ts +0 -11
- package/src/providers/DataLake/Runner.ts +0 -16
- package/src/providers/DataLake/Viewer.ts +0 -16
- package/src/providers/DataLake/index.ts +0 -3
- package/src/providers/TransactionHelper.ts +0 -15
- package/src/providers/XyoClient.ts +0 -27
- package/src/providers/XyoConnection.ts +0 -20
- package/src/providers/XyoGateway.ts +0 -24
- package/src/providers/XyoGatewayRunner.ts +0 -72
- package/src/providers/XyoNetwork.ts +0 -8
- package/src/providers/XyoRunner.ts +0 -19
- package/src/providers/index.ts +0 -8
- package/src/providers/signer/XyoSigner.ts +0 -36
- package/src/providers/signer/index.ts +0 -1
- package/src/repository/Repository.ts +0 -32
- package/src/repository/TransactionReadRepository.ts +0 -6
- package/src/repository/TransactionRepository.ts +0 -12
- package/src/repository/TransactionRepositoryIterator.ts +0 -6
- package/src/repository/TransactionWriteRepository.ts +0 -6
- package/src/repository/index.ts +0 -5
- package/src/runners/Block.ts +0 -21
- package/src/runners/Finalization.ts +0 -17
- package/src/runners/Mempool.ts +0 -31
- package/src/runners/index.ts +0 -3
- package/src/validation/block/BlockValidationFunction.ts +0 -13
- package/src/validation/block/HydratedBlockStateValidationFunction.ts +0 -29
- package/src/validation/block/HydratedBlockValidationFunction.ts +0 -21
- package/src/validation/block/error.ts +0 -52
- package/src/validation/block/index.ts +0 -4
- package/src/validation/boundwitness/BoundWitnessValidationFunction.ts +0 -9
- package/src/validation/boundwitness/HydratedBoundWitnessValidationFunction.ts +0 -15
- package/src/validation/boundwitness/error.ts +0 -29
- package/src/validation/boundwitness/index.ts +0 -3
- package/src/validation/error.ts +0 -35
- package/src/validation/index.ts +0 -5
- package/src/validation/payload/InBlockPayloadValidationFunction.ts +0 -16
- package/src/validation/payload/error.ts +0 -24
- package/src/validation/payload/index.ts +0 -2
- package/src/validation/transaction/HydratedTransactionStateValidationFunction.ts +0 -27
- package/src/validation/transaction/HydratedTransactionValidationFunction.ts +0 -23
- package/src/validation/transaction/error.ts +0 -16
- package/src/validation/transaction/index.ts +0 -3
- package/src/viewers/Block.ts +0 -40
- package/src/viewers/BlockInvalidation.ts +0 -81
- package/src/viewers/BlockReward.ts +0 -18
- package/src/viewers/BlockValidation.ts +0 -81
- package/src/viewers/ChainContract.ts +0 -28
- package/src/viewers/ChainStakeViewer.ts +0 -15
- package/src/viewers/Finalization.ts +0 -22
- package/src/viewers/Fork.ts +0 -10
- package/src/viewers/Mempool.ts +0 -40
- package/src/viewers/NetworkStake/NetworkStakeViewer.ts +0 -20
- package/src/viewers/NetworkStake/Rewards/ByPositionViewer.ts +0 -19
- package/src/viewers/NetworkStake/Rewards/ByStakerViewer.ts +0 -20
- package/src/viewers/NetworkStake/Rewards/ByStepViewer.ts +0 -18
- package/src/viewers/NetworkStake/Rewards/Options.ts +0 -22
- package/src/viewers/NetworkStake/Rewards/TotalViewer.ts +0 -17
- package/src/viewers/NetworkStake/Rewards/Viewer.ts +0 -22
- package/src/viewers/NetworkStake/Rewards/index.ts +0 -7
- package/src/viewers/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.ts +0 -7
- package/src/viewers/NetworkStake/Rewards/templates/MethodsTemplate.ts +0 -10
- package/src/viewers/NetworkStake/Rewards/templates/index.ts +0 -2
- package/src/viewers/NetworkStake/index.ts +0 -4
- package/src/viewers/NetworkStakeStepReward.ts +0 -82
- package/src/viewers/Stake.ts +0 -44
- package/src/viewers/StakeEvents.ts +0 -54
- package/src/viewers/StakeIntent.ts +0 -21
- package/src/viewers/StakeTotals.ts +0 -21
- package/src/viewers/StepStake.ts +0 -26
- package/src/viewers/StepViewer.ts +0 -57
- package/src/viewers/TimeSync.ts +0 -27
- package/src/viewers/Transaction.ts +0 -27
- package/src/viewers/TransactionInvalidation.ts +0 -71
- package/src/viewers/TransactionValidation.ts +0 -72
- package/src/viewers/TransferBalance.ts +0 -35
- package/src/viewers/WindowedBlock.ts +0 -23
- package/src/viewers/XyoViewer.ts +0 -73
- package/src/viewers/index.ts +0 -23
package/src/runners/Mempool.ts
DELETED
|
@@ -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
|
-
}
|
package/src/runners/index.ts
DELETED
|
@@ -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,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
|
-
}
|
package/src/validation/error.ts
DELETED
|
@@ -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')
|
package/src/validation/index.ts
DELETED
|
@@ -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,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
|
-
}
|
package/src/viewers/Block.ts
DELETED
|
@@ -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
|
-
}
|