@xyo-network/xl1-protocol-lib 1.26.1
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/LICENSE +165 -0
- package/README.md +81 -0
- package/dist/neutral/OpenTelemetryProviders.d.ts +7 -0
- package/dist/neutral/OpenTelemetryProviders.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +10 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.mjs +375 -0
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/neutral/network/Status.d.ts +26 -0
- package/dist/neutral/network/Status.d.ts.map +1 -0
- package/dist/neutral/network/index.d.ts +2 -0
- package/dist/neutral/network/index.d.ts.map +1 -0
- package/dist/neutral/permissions/InvokerPermission.d.ts +53 -0
- package/dist/neutral/permissions/InvokerPermission.d.ts.map +1 -0
- package/dist/neutral/permissions/XyoPermissions.d.ts +33 -0
- package/dist/neutral/permissions/XyoPermissions.d.ts.map +1 -0
- package/dist/neutral/permissions/index.d.ts +3 -0
- package/dist/neutral/permissions/index.d.ts.map +1 -0
- package/dist/neutral/providers/DataLake/Provider.d.ts +10 -0
- package/dist/neutral/providers/DataLake/Provider.d.ts.map +1 -0
- package/dist/neutral/providers/DataLake/Runner.d.ts +15 -0
- package/dist/neutral/providers/DataLake/Runner.d.ts.map +1 -0
- package/dist/neutral/providers/DataLake/Viewer.d.ts +14 -0
- package/dist/neutral/providers/DataLake/Viewer.d.ts.map +1 -0
- package/dist/neutral/providers/DataLake/index.d.ts +4 -0
- package/dist/neutral/providers/DataLake/index.d.ts.map +1 -0
- package/dist/neutral/providers/TransactionHelper.d.ts +9 -0
- package/dist/neutral/providers/TransactionHelper.d.ts.map +1 -0
- package/dist/neutral/providers/XyoClient.d.ts +23 -0
- package/dist/neutral/providers/XyoClient.d.ts.map +1 -0
- package/dist/neutral/providers/XyoConnection.d.ts +18 -0
- package/dist/neutral/providers/XyoConnection.d.ts.map +1 -0
- package/dist/neutral/providers/XyoGateway.d.ts +20 -0
- package/dist/neutral/providers/XyoGateway.d.ts.map +1 -0
- package/dist/neutral/providers/XyoGatewayRunner.d.ts +50 -0
- package/dist/neutral/providers/XyoGatewayRunner.d.ts.map +1 -0
- package/dist/neutral/providers/XyoNetwork.d.ts +7 -0
- package/dist/neutral/providers/XyoNetwork.d.ts.map +1 -0
- package/dist/neutral/providers/XyoRunner.d.ts +16 -0
- package/dist/neutral/providers/XyoRunner.d.ts.map +1 -0
- package/dist/neutral/providers/index.d.ts +9 -0
- package/dist/neutral/providers/index.d.ts.map +1 -0
- package/dist/neutral/providers/signer/XyoSigner.d.ts +21 -0
- package/dist/neutral/providers/signer/XyoSigner.d.ts.map +1 -0
- package/dist/neutral/providers/signer/index.d.ts +2 -0
- package/dist/neutral/providers/signer/index.d.ts.map +1 -0
- package/dist/neutral/repository/Repository.d.ts +27 -0
- package/dist/neutral/repository/Repository.d.ts.map +1 -0
- package/dist/neutral/repository/TransactionReadRepository.d.ts +6 -0
- package/dist/neutral/repository/TransactionReadRepository.d.ts.map +1 -0
- package/dist/neutral/repository/TransactionRepository.d.ts +13 -0
- package/dist/neutral/repository/TransactionRepository.d.ts.map +1 -0
- package/dist/neutral/repository/TransactionRepositoryIterator.d.ts +6 -0
- package/dist/neutral/repository/TransactionRepositoryIterator.d.ts.map +1 -0
- package/dist/neutral/repository/TransactionWriteRepository.d.ts +6 -0
- package/dist/neutral/repository/TransactionWriteRepository.d.ts.map +1 -0
- package/dist/neutral/repository/index.d.ts +6 -0
- package/dist/neutral/repository/index.d.ts.map +1 -0
- package/dist/neutral/runners/Block.d.ts +16 -0
- package/dist/neutral/runners/Block.d.ts.map +1 -0
- package/dist/neutral/runners/Finalization.d.ts +15 -0
- package/dist/neutral/runners/Finalization.d.ts.map +1 -0
- package/dist/neutral/runners/Mempool.d.ts +25 -0
- package/dist/neutral/runners/Mempool.d.ts.map +1 -0
- package/dist/neutral/runners/index.d.ts +4 -0
- package/dist/neutral/runners/index.d.ts.map +1 -0
- package/dist/neutral/validation/block/BlockValidationFunction.d.ts +6 -0
- package/dist/neutral/validation/block/BlockValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/block/HydratedBlockStateValidationFunction.d.ts +19 -0
- package/dist/neutral/validation/block/HydratedBlockStateValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/block/HydratedBlockValidationFunction.d.ts +14 -0
- package/dist/neutral/validation/block/HydratedBlockValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/block/error.d.ts +21 -0
- package/dist/neutral/validation/block/error.d.ts.map +1 -0
- package/dist/neutral/validation/block/index.d.ts +5 -0
- package/dist/neutral/validation/block/index.d.ts.map +1 -0
- package/dist/neutral/validation/boundwitness/BoundWitnessValidationFunction.d.ts +6 -0
- package/dist/neutral/validation/boundwitness/BoundWitnessValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/boundwitness/HydratedBoundWitnessValidationFunction.d.ts +8 -0
- package/dist/neutral/validation/boundwitness/HydratedBoundWitnessValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/boundwitness/error.d.ts +13 -0
- package/dist/neutral/validation/boundwitness/error.d.ts.map +1 -0
- package/dist/neutral/validation/boundwitness/index.d.ts +4 -0
- package/dist/neutral/validation/boundwitness/index.d.ts.map +1 -0
- package/dist/neutral/validation/error.d.ts +11 -0
- package/dist/neutral/validation/error.d.ts.map +1 -0
- package/dist/neutral/validation/index.d.ts +6 -0
- package/dist/neutral/validation/index.d.ts.map +1 -0
- package/dist/neutral/validation/payload/InBlockPayloadValidationFunction.d.ts +10 -0
- package/dist/neutral/validation/payload/InBlockPayloadValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/payload/error.d.ts +12 -0
- package/dist/neutral/validation/payload/error.d.ts.map +1 -0
- package/dist/neutral/validation/payload/index.d.ts +3 -0
- package/dist/neutral/validation/payload/index.d.ts.map +1 -0
- package/dist/neutral/validation/transaction/HydratedTransactionStateValidationFunction.d.ts +18 -0
- package/dist/neutral/validation/transaction/HydratedTransactionStateValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/transaction/HydratedTransactionValidationFunction.d.ts +16 -0
- package/dist/neutral/validation/transaction/HydratedTransactionValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/transaction/error.d.ts +8 -0
- package/dist/neutral/validation/transaction/error.d.ts.map +1 -0
- package/dist/neutral/validation/transaction/index.d.ts +4 -0
- package/dist/neutral/validation/transaction/index.d.ts.map +1 -0
- package/dist/neutral/viewers/Block.d.ts +29 -0
- package/dist/neutral/viewers/Block.d.ts.map +1 -0
- package/dist/neutral/viewers/BlockInvalidation.d.ts +68 -0
- package/dist/neutral/viewers/BlockInvalidation.d.ts.map +1 -0
- package/dist/neutral/viewers/BlockReward.d.ts +14 -0
- package/dist/neutral/viewers/BlockReward.d.ts.map +1 -0
- package/dist/neutral/viewers/BlockValidation.d.ts +68 -0
- package/dist/neutral/viewers/BlockValidation.d.ts.map +1 -0
- package/dist/neutral/viewers/ChainContract.d.ts +22 -0
- package/dist/neutral/viewers/ChainContract.d.ts.map +1 -0
- package/dist/neutral/viewers/ChainStakeViewer.d.ts +11 -0
- package/dist/neutral/viewers/ChainStakeViewer.d.ts.map +1 -0
- package/dist/neutral/viewers/Finalization.d.ts +18 -0
- package/dist/neutral/viewers/Finalization.d.ts.map +1 -0
- package/dist/neutral/viewers/Fork.d.ts +9 -0
- package/dist/neutral/viewers/Fork.d.ts.map +1 -0
- package/dist/neutral/viewers/Mempool.d.ts +31 -0
- package/dist/neutral/viewers/Mempool.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/NetworkStakeViewer.d.ts +17 -0
- package/dist/neutral/viewers/NetworkStake/NetworkStakeViewer.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/ByPositionViewer.d.ts +14 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/ByPositionViewer.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/ByStakerViewer.d.ts +15 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/ByStakerViewer.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/ByStepViewer.d.ts +14 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/ByStepViewer.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/Options.d.ts +19 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/Options.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/TotalViewer.d.ts +14 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/TotalViewer.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/Viewer.d.ts +20 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/Viewer.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/index.d.ts +8 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/index.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.d.ts +6 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/templates/MethodsTemplate.d.ts +10 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/templates/MethodsTemplate.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/templates/index.d.ts +3 -0
- package/dist/neutral/viewers/NetworkStake/Rewards/templates/index.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStake/index.d.ts +3 -0
- package/dist/neutral/viewers/NetworkStake/index.d.ts.map +1 -0
- package/dist/neutral/viewers/NetworkStakeStepReward.d.ts +40 -0
- package/dist/neutral/viewers/NetworkStakeStepReward.d.ts.map +1 -0
- package/dist/neutral/viewers/Stake.d.ts +38 -0
- package/dist/neutral/viewers/Stake.d.ts.map +1 -0
- package/dist/neutral/viewers/StakeEvents.d.ts +44 -0
- package/dist/neutral/viewers/StakeEvents.d.ts.map +1 -0
- package/dist/neutral/viewers/StakeIntent.d.ts +15 -0
- package/dist/neutral/viewers/StakeIntent.d.ts.map +1 -0
- package/dist/neutral/viewers/StakeTotals.d.ts +20 -0
- package/dist/neutral/viewers/StakeTotals.d.ts.map +1 -0
- package/dist/neutral/viewers/StepStake.d.ts +14 -0
- package/dist/neutral/viewers/StepStake.d.ts.map +1 -0
- package/dist/neutral/viewers/StepViewer.d.ts +37 -0
- package/dist/neutral/viewers/StepViewer.d.ts.map +1 -0
- package/dist/neutral/viewers/TimeSync.d.ts +21 -0
- package/dist/neutral/viewers/TimeSync.d.ts.map +1 -0
- package/dist/neutral/viewers/Transaction.d.ts +22 -0
- package/dist/neutral/viewers/Transaction.d.ts.map +1 -0
- package/dist/neutral/viewers/TransactionInvalidation.d.ts +66 -0
- package/dist/neutral/viewers/TransactionInvalidation.d.ts.map +1 -0
- package/dist/neutral/viewers/TransactionValidation.d.ts +67 -0
- package/dist/neutral/viewers/TransactionValidation.d.ts.map +1 -0
- package/dist/neutral/viewers/TransferBalance.d.ts +30 -0
- package/dist/neutral/viewers/TransferBalance.d.ts.map +1 -0
- package/dist/neutral/viewers/WindowedBlock.d.ts +18 -0
- package/dist/neutral/viewers/WindowedBlock.d.ts.map +1 -0
- package/dist/neutral/viewers/XyoViewer.d.ts +55 -0
- package/dist/neutral/viewers/XyoViewer.d.ts.map +1 -0
- package/dist/neutral/viewers/index.d.ts +24 -0
- package/dist/neutral/viewers/index.d.ts.map +1 -0
- package/package.json +73 -0
- package/src/OpenTelemetryProviders.ts +7 -0
- package/src/index.ts +9 -0
- package/src/network/Status.ts +30 -0
- package/src/network/index.ts +1 -0
- package/src/permissions/InvokerPermission.ts +58 -0
- package/src/permissions/XyoPermissions.ts +41 -0
- package/src/permissions/index.ts +2 -0
- package/src/providers/DataLake/Provider.ts +11 -0
- package/src/providers/DataLake/Runner.ts +16 -0
- package/src/providers/DataLake/Viewer.ts +16 -0
- package/src/providers/DataLake/index.ts +3 -0
- package/src/providers/TransactionHelper.ts +15 -0
- package/src/providers/XyoClient.ts +27 -0
- package/src/providers/XyoConnection.ts +20 -0
- package/src/providers/XyoGateway.ts +24 -0
- package/src/providers/XyoGatewayRunner.ts +72 -0
- package/src/providers/XyoNetwork.ts +8 -0
- package/src/providers/XyoRunner.ts +19 -0
- package/src/providers/index.ts +8 -0
- package/src/providers/signer/XyoSigner.ts +36 -0
- package/src/providers/signer/index.ts +1 -0
- package/src/repository/Repository.ts +32 -0
- package/src/repository/TransactionReadRepository.ts +6 -0
- package/src/repository/TransactionRepository.ts +12 -0
- package/src/repository/TransactionRepositoryIterator.ts +6 -0
- package/src/repository/TransactionWriteRepository.ts +6 -0
- package/src/repository/index.ts +5 -0
- package/src/runners/Block.ts +21 -0
- package/src/runners/Finalization.ts +17 -0
- package/src/runners/Mempool.ts +31 -0
- package/src/runners/index.ts +3 -0
- package/src/validation/block/BlockValidationFunction.ts +13 -0
- package/src/validation/block/HydratedBlockStateValidationFunction.ts +29 -0
- package/src/validation/block/HydratedBlockValidationFunction.ts +21 -0
- package/src/validation/block/error.ts +51 -0
- package/src/validation/block/index.ts +4 -0
- package/src/validation/boundwitness/BoundWitnessValidationFunction.ts +9 -0
- package/src/validation/boundwitness/HydratedBoundWitnessValidationFunction.ts +15 -0
- package/src/validation/boundwitness/error.ts +29 -0
- package/src/validation/boundwitness/index.ts +3 -0
- package/src/validation/error.ts +25 -0
- package/src/validation/index.ts +5 -0
- package/src/validation/payload/InBlockPayloadValidationFunction.ts +16 -0
- package/src/validation/payload/error.ts +24 -0
- package/src/validation/payload/index.ts +2 -0
- package/src/validation/transaction/HydratedTransactionStateValidationFunction.ts +27 -0
- package/src/validation/transaction/HydratedTransactionValidationFunction.ts +23 -0
- package/src/validation/transaction/error.ts +16 -0
- package/src/validation/transaction/index.ts +3 -0
- package/src/viewers/Block.ts +40 -0
- package/src/viewers/BlockInvalidation.ts +81 -0
- package/src/viewers/BlockReward.ts +18 -0
- package/src/viewers/BlockValidation.ts +81 -0
- package/src/viewers/ChainContract.ts +28 -0
- package/src/viewers/ChainStakeViewer.ts +15 -0
- package/src/viewers/Finalization.ts +22 -0
- package/src/viewers/Fork.ts +10 -0
- package/src/viewers/Mempool.ts +40 -0
- package/src/viewers/NetworkStake/NetworkStakeViewer.ts +20 -0
- package/src/viewers/NetworkStake/Rewards/ByPositionViewer.ts +19 -0
- package/src/viewers/NetworkStake/Rewards/ByStakerViewer.ts +20 -0
- package/src/viewers/NetworkStake/Rewards/ByStepViewer.ts +18 -0
- package/src/viewers/NetworkStake/Rewards/Options.ts +22 -0
- package/src/viewers/NetworkStake/Rewards/TotalViewer.ts +17 -0
- package/src/viewers/NetworkStake/Rewards/Viewer.ts +22 -0
- package/src/viewers/NetworkStake/Rewards/index.ts +7 -0
- package/src/viewers/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.ts +7 -0
- package/src/viewers/NetworkStake/Rewards/templates/MethodsTemplate.ts +10 -0
- package/src/viewers/NetworkStake/Rewards/templates/index.ts +2 -0
- package/src/viewers/NetworkStake/index.ts +4 -0
- package/src/viewers/NetworkStakeStepReward.ts +82 -0
- package/src/viewers/Stake.ts +44 -0
- package/src/viewers/StakeEvents.ts +54 -0
- package/src/viewers/StakeIntent.ts +21 -0
- package/src/viewers/StakeTotals.ts +21 -0
- package/src/viewers/StepStake.ts +26 -0
- package/src/viewers/StepViewer.ts +57 -0
- package/src/viewers/TimeSync.ts +27 -0
- package/src/viewers/Transaction.ts +27 -0
- package/src/viewers/TransactionInvalidation.ts +71 -0
- package/src/viewers/TransactionValidation.ts +72 -0
- package/src/viewers/TransferBalance.ts +35 -0
- package/src/viewers/WindowedBlock.ts +23 -0
- package/src/viewers/XyoViewer.ts +73 -0
- package/src/viewers/index.ts +23 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import type { Provider } from '@xyo-network/xl1-protocol-model'
|
|
3
|
+
|
|
4
|
+
import type { NetworkStakeStepRewardsViewer } from './Rewards/index.ts'
|
|
5
|
+
|
|
6
|
+
/** NetworkStakeViewerMethods interface. */
|
|
7
|
+
export interface NetworkStakeViewerMethods {
|
|
8
|
+
/** @returns the active stake and the number of active validators [active, block] */
|
|
9
|
+
active(blockNumber?: number): Promisable<[bigint, number]>
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** Moniker identifier for the NetworkStakeViewer provider. */
|
|
13
|
+
export const NetworkStakeViewerMoniker = 'NetworkStakeViewer' as const
|
|
14
|
+
/** Type literal for the NetworkStakeViewer provider moniker. */
|
|
15
|
+
export type NetworkStakeViewerMoniker = typeof NetworkStakeViewerMoniker
|
|
16
|
+
|
|
17
|
+
/** Viewer interface for reading NetworkStake data. */
|
|
18
|
+
export interface NetworkStakeViewer extends NetworkStakeViewerMethods, Provider<NetworkStakeViewerMoniker> {
|
|
19
|
+
stepRewards?: NetworkStakeStepRewardsViewer
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Provider } from '@xyo-network/xl1-protocol-model'
|
|
2
|
+
|
|
3
|
+
import type { NetworkStakeStepRewardsByPositionViewerOptions } from './Options.ts'
|
|
4
|
+
import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'
|
|
5
|
+
|
|
6
|
+
// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
7
|
+
|
|
8
|
+
/** NetworkStakeStepRewardsByPositionViewerMethods interface. */
|
|
9
|
+
export interface NetworkStakeStepRewardsByPositionViewerMethods extends
|
|
10
|
+
NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByPositionViewerOptions, number> {}
|
|
11
|
+
|
|
12
|
+
/** Moniker identifier for the NetworkStakeStepRewardsByPositionViewer provider. */
|
|
13
|
+
export const NetworkStakeStepRewardsByPositionViewerMoniker = 'NetworkStakeStepRewardsByPositionViewer' as const
|
|
14
|
+
/** Type literal for the NetworkStakeStepRewardsByPositionViewer provider moniker. */
|
|
15
|
+
export type NetworkStakeStepRewardsByPositionViewerMoniker = typeof NetworkStakeStepRewardsByPositionViewerMoniker
|
|
16
|
+
|
|
17
|
+
/** Viewer interface for reading NetworkStakeStepRewardsByPosition data. */
|
|
18
|
+
export interface NetworkStakeStepRewardsByPositionViewer extends NetworkStakeStepRewardsByPositionViewerMethods,
|
|
19
|
+
Provider<NetworkStakeStepRewardsByPositionViewerMoniker> {}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/sdk-js'
|
|
2
|
+
import type { Provider } from '@xyo-network/xl1-protocol-model'
|
|
3
|
+
|
|
4
|
+
import type { NetworkStakeStepRewardsByStakerViewerOptions } from './Options.ts'
|
|
5
|
+
import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'
|
|
6
|
+
|
|
7
|
+
// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
8
|
+
|
|
9
|
+
/** NetworkStakeStepRewardsByStakerViewerMethods interface. */
|
|
10
|
+
export interface NetworkStakeStepRewardsByStakerViewerMethods
|
|
11
|
+
extends NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStakerViewerOptions, Address> {}
|
|
12
|
+
|
|
13
|
+
/** Moniker identifier for the NetworkStakeStepRewardsByStakerViewer provider. */
|
|
14
|
+
export const NetworkStakeStepRewardsByStakerViewerMoniker = 'NetworkStakeStepRewardsByStakerViewer' as const
|
|
15
|
+
/** Type literal for the NetworkStakeStepRewardsByStakerViewer provider moniker. */
|
|
16
|
+
export type NetworkStakeStepRewardsByStakerViewerMoniker = typeof NetworkStakeStepRewardsByStakerViewerMoniker
|
|
17
|
+
|
|
18
|
+
/** Viewer interface for reading NetworkStakeStepRewardsByStaker data. */
|
|
19
|
+
export interface NetworkStakeStepRewardsByStakerViewer extends NetworkStakeStepRewardsByStakerViewerMethods,
|
|
20
|
+
Provider<NetworkStakeStepRewardsByStakerViewerMoniker> {}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Provider, StepIdentityString } from '@xyo-network/xl1-protocol-model'
|
|
2
|
+
|
|
3
|
+
import type { NetworkStakeStepRewardsByStepViewerOptions } from './Options.ts'
|
|
4
|
+
import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'
|
|
5
|
+
|
|
6
|
+
// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
7
|
+
|
|
8
|
+
/** NetworkStakeStepRewardsByStepViewerMethods interface. */
|
|
9
|
+
export interface NetworkStakeStepRewardsByStepViewerMethods extends
|
|
10
|
+
NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStepViewerOptions, StepIdentityString> {}
|
|
11
|
+
|
|
12
|
+
/** Moniker identifier for the NetworkStakeStepRewardsByStepViewer provider. */
|
|
13
|
+
export const NetworkStakeStepRewardsByStepViewerMoniker = 'NetworkStakeStepRewardsByStepViewer' as const
|
|
14
|
+
/** Type literal for the NetworkStakeStepRewardsByStepViewer provider moniker. */
|
|
15
|
+
export type NetworkStakeStepRewardsByStepViewerMoniker = typeof NetworkStakeStepRewardsByStepViewerMoniker
|
|
16
|
+
|
|
17
|
+
/** Viewer interface for reading NetworkStakeStepRewardsByStep data. */
|
|
18
|
+
export interface NetworkStakeStepRewardsByStepViewer extends NetworkStakeStepRewardsByStepViewerMethods, Provider<NetworkStakeStepRewardsByStepViewerMoniker> {}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/sdk-js'
|
|
2
|
+
import type { BlockRange, StepIdentity } from '@xyo-network/xl1-protocol-model'
|
|
3
|
+
|
|
4
|
+
/** Options for NetworkStakeStepRewardsRange. */
|
|
5
|
+
export interface NetworkStakeStepRewardsRangeOptions {
|
|
6
|
+
range?: BlockRange
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Options for NetworkStakeStepRewardsByStepViewer. */
|
|
10
|
+
export interface NetworkStakeStepRewardsByStepViewerOptions extends NetworkStakeStepRewardsRangeOptions {
|
|
11
|
+
steps?: StepIdentity[]
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** Options for NetworkStakeStepRewardsByStakerViewer. */
|
|
15
|
+
export interface NetworkStakeStepRewardsByStakerViewerOptions extends NetworkStakeStepRewardsRangeOptions {
|
|
16
|
+
stakers?: Address[]
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Options for NetworkStakeStepRewardsByPositionViewer. */
|
|
20
|
+
export interface NetworkStakeStepRewardsByPositionViewerOptions extends NetworkStakeStepRewardsRangeOptions {
|
|
21
|
+
positions?: number[]
|
|
22
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AttoXL1, Provider } from '@xyo-network/xl1-protocol-model'
|
|
2
|
+
|
|
3
|
+
import type { NetworkStakeStepRewardsRangeOptions } from './Options.ts'
|
|
4
|
+
import type { NetworkStakeStepRewardsViewerMethodsTemplate } from './templates/index.ts'
|
|
5
|
+
|
|
6
|
+
// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
7
|
+
|
|
8
|
+
/** NetworkStakeStepRewardsTotalViewerMethods interface. */
|
|
9
|
+
export interface NetworkStakeStepRewardsTotalViewerMethods extends NetworkStakeStepRewardsViewerMethodsTemplate<NetworkStakeStepRewardsRangeOptions, AttoXL1> {}
|
|
10
|
+
|
|
11
|
+
/** Moniker identifier for the NetworkStakeStepRewardsTotalViewer provider. */
|
|
12
|
+
export const NetworkStakeStepRewardsTotalViewerMoniker = 'NetworkStakeStepRewardsTotalViewer' as const
|
|
13
|
+
/** Type literal for the NetworkStakeStepRewardsTotalViewer provider moniker. */
|
|
14
|
+
export type NetworkStakeStepRewardsTotalViewerMoniker = typeof NetworkStakeStepRewardsTotalViewerMoniker
|
|
15
|
+
|
|
16
|
+
/** Viewer interface for reading NetworkStakeStepRewardsTotal data. */
|
|
17
|
+
export interface NetworkStakeStepRewardsTotalViewer extends NetworkStakeStepRewardsTotalViewerMethods, Provider<NetworkStakeStepRewardsTotalViewerMoniker> {}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Provider } from '@xyo-network/xl1-protocol-model'
|
|
2
|
+
|
|
3
|
+
import type { NetworkStakeStepRewardsByPositionViewer } from './ByPositionViewer.ts'
|
|
4
|
+
import type { NetworkStakeStepRewardsByStakerViewer } from './ByStakerViewer.ts'
|
|
5
|
+
import type { NetworkStakeStepRewardsByStepViewer } from './ByStepViewer.ts'
|
|
6
|
+
import type { NetworkStakeStepRewardsTotalViewer } from './TotalViewer.ts'
|
|
7
|
+
|
|
8
|
+
/** NetworkStakeStepRewardsViewerMethods interface. */
|
|
9
|
+
export interface NetworkStakeStepRewardsViewerMethods {}
|
|
10
|
+
|
|
11
|
+
/** Moniker identifier for the NetworkStakeStepRewardsViewer provider. */
|
|
12
|
+
export const NetworkStakeStepRewardsViewerMoniker = 'NetworkStakeStepRewardsViewer' as const
|
|
13
|
+
/** Type literal for the NetworkStakeStepRewardsViewer provider moniker. */
|
|
14
|
+
export type NetworkStakeStepRewardsViewerMoniker = typeof NetworkStakeStepRewardsViewerMoniker
|
|
15
|
+
|
|
16
|
+
/** Viewer interface for reading NetworkStakeStepRewards data. */
|
|
17
|
+
export interface NetworkStakeStepRewardsViewer extends NetworkStakeStepRewardsViewerMethods, Provider<NetworkStakeStepRewardsViewerMoniker> {
|
|
18
|
+
position?: NetworkStakeStepRewardsByPositionViewer
|
|
19
|
+
staker?: NetworkStakeStepRewardsByStakerViewer
|
|
20
|
+
step?: NetworkStakeStepRewardsByStepViewer
|
|
21
|
+
total?: NetworkStakeStepRewardsTotalViewer
|
|
22
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AttoXL1, RecordKeyType } from '@xyo-network/xl1-protocol-model'
|
|
2
|
+
|
|
3
|
+
import type { NetworkStakeStepRewardsViewerMethodsTemplate } from './MethodsTemplate.ts'
|
|
4
|
+
|
|
5
|
+
/** NetworkStakeStepRewardsByIndexViewerMethodsTemplate interface. */
|
|
6
|
+
export interface NetworkStakeStepRewardsByIndexViewerMethodsTemplate<TOptions, TResultIndex extends RecordKeyType>
|
|
7
|
+
extends NetworkStakeStepRewardsViewerMethodsTemplate<TOptions, Record<TResultIndex, AttoXL1>> {}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
|
|
3
|
+
/** NetworkStakeStepRewardsViewerMethodsTemplate interface. */
|
|
4
|
+
export interface NetworkStakeStepRewardsViewerMethodsTemplate<TOptions, TResult> {
|
|
5
|
+
bonus(options?: TOptions): Promisable<TResult>
|
|
6
|
+
claimed(options?: TOptions): Promisable<TResult>
|
|
7
|
+
earned(options?: TOptions): Promisable<TResult>
|
|
8
|
+
total(options?: TOptions): Promisable<TResult>
|
|
9
|
+
unclaimed(options?: TOptions): Promisable<TResult>
|
|
10
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { Address, Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import type {
|
|
3
|
+
AttoXL1, Provider, StepIdentity, StepIdentityString,
|
|
4
|
+
} from '@xyo-network/xl1-protocol-model'
|
|
5
|
+
|
|
6
|
+
/** NetworkStakeStepAddressRewardViewerMethods interface. */
|
|
7
|
+
export interface NetworkStakeStepAddressRewardViewerMethods {
|
|
8
|
+
// the step rewards for a specific network stakers for all of history
|
|
9
|
+
networkStakeStepRewardAddressHistory(address: Address): Promisable<Record<Address, AttoXL1>>
|
|
10
|
+
|
|
11
|
+
// the step rewards for a specific network stakers for a given step and block
|
|
12
|
+
networkStakeStepRewardAddressReward(context: StepIdentity, address: Address): Promisable<Record<Address, AttoXL1>>
|
|
13
|
+
|
|
14
|
+
// the shares for a specific network staker for a given step and block
|
|
15
|
+
networkStakeStepRewardAddressShare(context: StepIdentity, address: Address): Promisable<[/* address shares */bigint, /* total shares */bigint]>
|
|
16
|
+
|
|
17
|
+
// estimate the current reward weight for a given address at a given step
|
|
18
|
+
networkStakeStepRewardWeightForAddress(context: StepIdentity, address: Address): Promisable<bigint>
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** NetworkStakeStepPoolRewardViewerMethods interface. */
|
|
22
|
+
export interface NetworkStakeStepPoolRewardViewerMethods {
|
|
23
|
+
|
|
24
|
+
// all the step rewards for all the network stakers for a given step and block
|
|
25
|
+
networkStakeStepRewardPoolRewards(context: StepIdentity): Promisable<Record<Address, AttoXL1>>
|
|
26
|
+
|
|
27
|
+
// all the shares for all the network stakers for a given step and block
|
|
28
|
+
networkStakeStepRewardPoolShares(context: StepIdentity): Promisable<Record<Address, bigint>>
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** NetworkStakeStepRewardPositionViewerMethods interface. */
|
|
32
|
+
export interface NetworkStakeStepRewardPositionViewerMethods {
|
|
33
|
+
// estimate the current weight for a given position at a given step
|
|
34
|
+
networkStakeStepRewardPositionWeight(context: StepIdentity, position: number): Promisable<bigint>
|
|
35
|
+
|
|
36
|
+
// estimate the potential loss for removing a given position at a given step
|
|
37
|
+
networkStakeStepRewardPotentialPositionLoss(context: StepIdentity, position: number): Promisable<AttoXL1>
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** NetworkStakeStepRewardViewerMethods interface. */
|
|
41
|
+
export interface NetworkStakeStepRewardViewerMethods extends
|
|
42
|
+
NetworkStakeStepPoolRewardViewerMethods,
|
|
43
|
+
NetworkStakeStepAddressRewardViewerMethods,
|
|
44
|
+
NetworkStakeStepRewardPositionViewerMethods
|
|
45
|
+
{
|
|
46
|
+
networkStakeStepRewardClaimedByAddress(address: Address): Promisable<AttoXL1>
|
|
47
|
+
|
|
48
|
+
// the share & total rewards for a given position
|
|
49
|
+
networkStakeStepRewardForPosition(position: number, range: [number, number]): Promisable<[AttoXL1, AttoXL1]>
|
|
50
|
+
|
|
51
|
+
// estimate the total possible block rewards for a given step
|
|
52
|
+
networkStakeStepRewardForStep(context: StepIdentity): Promisable<AttoXL1>
|
|
53
|
+
|
|
54
|
+
// the share & total rewards for a given step and block for a given position
|
|
55
|
+
networkStakeStepRewardForStepForPosition(context: StepIdentity, position: number): Promisable<[AttoXL1, AttoXL1]>
|
|
56
|
+
|
|
57
|
+
// the predictable random number for a given step and block
|
|
58
|
+
networkStakeStepRewardRandomizer(context: StepIdentity): Promisable<AttoXL1>
|
|
59
|
+
|
|
60
|
+
// the total number of stakers for a given step and block
|
|
61
|
+
networkStakeStepRewardStakerCount(context: StepIdentity): Promisable<number>
|
|
62
|
+
|
|
63
|
+
networkStakeStepRewardUnclaimedByAddress(address: Address): Promisable<AttoXL1>
|
|
64
|
+
|
|
65
|
+
// the share & total rewards for a given position for each step in range
|
|
66
|
+
networkStakeStepRewardsForPosition(position: number,
|
|
67
|
+
range: [number, number]): Promisable<Record<StepIdentityString, [AttoXL1, AttoXL1]>>
|
|
68
|
+
|
|
69
|
+
// the total rewards for a given range
|
|
70
|
+
networkStakeStepRewardsForRange(range: [number, number]): Promisable<AttoXL1>
|
|
71
|
+
|
|
72
|
+
// the total rewards for a given range and step level
|
|
73
|
+
networkStakeStepRewardsForStepLevel(stepLevel: number, range: [number, number]): Promisable<AttoXL1>
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** Moniker identifier for the NetworkStakeStepRewardViewer provider. */
|
|
77
|
+
export const NetworkStakeStepRewardViewerMoniker = 'NetworkStakeStepRewardViewer' as const
|
|
78
|
+
/** Type literal for the NetworkStakeStepRewardViewer provider moniker. */
|
|
79
|
+
export type NetworkStakeStepRewardViewerMoniker = typeof NetworkStakeStepRewardViewerMoniker
|
|
80
|
+
|
|
81
|
+
/** Viewer interface for reading NetworkStakeStepReward data. */
|
|
82
|
+
export interface NetworkStakeStepRewardViewer extends NetworkStakeStepRewardViewerMethods, Provider<NetworkStakeStepRewardViewerMoniker> {}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Address, Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import type { Position, Provider } from '@xyo-network/xl1-protocol-model'
|
|
3
|
+
|
|
4
|
+
import type { StakeEventsViewer } from './StakeEvents.ts'
|
|
5
|
+
|
|
6
|
+
/** StakeViewerProperties interface. */
|
|
7
|
+
export interface StakeViewerProperties {
|
|
8
|
+
stakeEvents: StakeEventsViewer
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/** StakeViewerMethods interface. */
|
|
12
|
+
export interface StakeViewerMethods {
|
|
13
|
+
minWithdrawalBlocks(): Promisable<number>
|
|
14
|
+
rewardsContract(): Promisable<Address>
|
|
15
|
+
stakeById(id: number): Promisable<Position>
|
|
16
|
+
stakeByStaker(staker: Address, slot: number): Promisable<Position>
|
|
17
|
+
stakesByStaked(staked: Address): Promisable<Position[]>
|
|
18
|
+
stakesByStaker(staker: Address): Promisable<Position[]>
|
|
19
|
+
stakingTokenAddress(): Promisable<Address>
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Moniker identifier for the StakeViewer provider. */
|
|
23
|
+
export const StakeViewerMoniker = 'StakeViewer' as const
|
|
24
|
+
/** Type literal for the StakeViewer provider moniker. */
|
|
25
|
+
export type StakeViewerMoniker = typeof StakeViewerMoniker
|
|
26
|
+
|
|
27
|
+
/** Viewer interface for reading Stake data. */
|
|
28
|
+
export interface StakeViewer extends StakeViewerMethods, StakeViewerProperties, Provider<StakeViewerMoniker> {
|
|
29
|
+
activeStakes(): Promisable<Position[]>
|
|
30
|
+
removedStakes(): Promisable<Position[]>
|
|
31
|
+
withdrawnStakes(): Promisable<Position[]>
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** Moniker identifier for the StakeRunner provider. */
|
|
35
|
+
export const StakeRunnerMoniker = 'StakeRunner' as const
|
|
36
|
+
/** Type literal for the StakeRunner provider moniker. */
|
|
37
|
+
export type StakeRunnerMoniker = typeof StakeRunnerMoniker
|
|
38
|
+
|
|
39
|
+
/** Runner interface for executing Stake operations. */
|
|
40
|
+
export interface StakeRunner extends Provider<StakeRunnerMoniker> {
|
|
41
|
+
addStake(staked: string, amount: bigint): Promise<boolean>
|
|
42
|
+
removeStake(slot: bigint): Promise<boolean>
|
|
43
|
+
withdrawStake(slot: bigint): Promise<boolean>
|
|
44
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Address, JsonObject, Promisable,
|
|
3
|
+
} from '@xylabs/sdk-js'
|
|
4
|
+
import type { Provider } from '@xyo-network/xl1-protocol-model'
|
|
5
|
+
|
|
6
|
+
/** StakeEventNames constant. */
|
|
7
|
+
export const StakeEventNames = ['StakeAdded', 'StakeRemoved', 'StakeWithdrawn'] as const
|
|
8
|
+
/** StakeEventName type. */
|
|
9
|
+
export type StakeEventName = typeof StakeEventNames[number]
|
|
10
|
+
|
|
11
|
+
/** ExternalEvent interface. */
|
|
12
|
+
export interface ExternalEvent<TName extends string = string, TArgs extends JsonObject = {}> {
|
|
13
|
+
args: TArgs
|
|
14
|
+
name: TName
|
|
15
|
+
time: number // usually block number
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** EventFilter interface. */
|
|
19
|
+
export interface EventFilter<TName extends string = string> {
|
|
20
|
+
name?: TName
|
|
21
|
+
time?: [number, number]
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** StakeEventArgs interface. */
|
|
25
|
+
export interface StakeEventArgs {
|
|
26
|
+
amount: bigint
|
|
27
|
+
id: number
|
|
28
|
+
staked: Address
|
|
29
|
+
staker: Address
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** StakeEventFilterArgs type. */
|
|
33
|
+
export type StakeEventFilterArgs = Partial<Pick<StakeEventArgs, 'staker' | 'staked' | 'id'>>
|
|
34
|
+
|
|
35
|
+
/** StakeEventFilter interface. */
|
|
36
|
+
export interface StakeEventFilter<TName extends StakeEventName = StakeEventName> extends EventFilter<TName> {
|
|
37
|
+
args?: StakeEventFilterArgs
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** StakeEvent interface. */
|
|
41
|
+
export interface StakeEvent<TName extends StakeEventName = StakeEventName> extends ExternalEvent<TName> {
|
|
42
|
+
args: StakeEventArgs
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Moniker identifier for the StakeEventsViewer provider. */
|
|
46
|
+
export const StakeEventsViewerMoniker = 'StakeEventsViewer' as const
|
|
47
|
+
/** Type literal for the StakeEventsViewer provider moniker. */
|
|
48
|
+
export type StakeEventsViewerMoniker = typeof StakeEventsViewerMoniker
|
|
49
|
+
|
|
50
|
+
/** Viewer interface for reading StakeEvents data. */
|
|
51
|
+
export interface StakeEventsViewer extends Provider<StakeEventsViewerMoniker> {
|
|
52
|
+
positionCount(range: [number, number | 'latest']): Promisable<number>
|
|
53
|
+
stakeEvents<TName extends StakeEventName>(range: [number, number | 'latest'], filter?: StakeEventFilter<TName>): Promisable<StakeEvent<TName>[]>
|
|
54
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Address, Hash, Promisable,
|
|
3
|
+
} from '@xylabs/sdk-js'
|
|
4
|
+
import type {
|
|
5
|
+
ChainQualified, ChainStakeIntent, Provider, XL1BlockRange,
|
|
6
|
+
} from '@xyo-network/xl1-protocol-model'
|
|
7
|
+
|
|
8
|
+
/** StakeIntentViewerMethods interface. */
|
|
9
|
+
export interface StakeIntentViewerMethods {
|
|
10
|
+
qualifiedIntentByAddress(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<ChainQualified<ChainStakeIntent | null>>
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** Moniker identifier for the StakeIntentViewer provider. */
|
|
14
|
+
export const StakeIntentViewerMoniker = 'StakeIntentViewer' as const
|
|
15
|
+
/** Type literal for the StakeIntentViewer provider moniker. */
|
|
16
|
+
export type StakeIntentViewerMoniker = typeof StakeIntentViewerMoniker
|
|
17
|
+
|
|
18
|
+
/** Viewer interface for reading StakeIntent data. */
|
|
19
|
+
export interface StakeIntentViewer extends StakeIntentViewerMethods, Provider<StakeIntentViewerMoniker> {
|
|
20
|
+
intentByAddress(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<ChainStakeIntent | null>
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Address, Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import type { Provider } from '@xyo-network/xl1-protocol-model'
|
|
3
|
+
|
|
4
|
+
/** StakeTotalsViewerMethods interface. */
|
|
5
|
+
export interface StakeTotalsViewerMethods {
|
|
6
|
+
active(time?: number): Promisable<bigint>
|
|
7
|
+
activeByStaked(staked: Address, time?: number): Promisable<bigint>
|
|
8
|
+
activeByStaker(address: Address, time?: number): Promisable<bigint>
|
|
9
|
+
pending(time?: number): Promisable<bigint>
|
|
10
|
+
pendingByStaker(staker: Address, time?: number): Promisable<bigint>
|
|
11
|
+
withdrawn(time?: number): Promisable<bigint>
|
|
12
|
+
withdrawnByStaker(staker: Address, time?: number): Promisable<bigint>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** Moniker identifier for the StakeTotalsViewer provider. */
|
|
16
|
+
export const StakeTotalsViewerMoniker = 'StakeTotalsViewer' as const
|
|
17
|
+
/** Type literal for the StakeTotalsViewer provider moniker. */
|
|
18
|
+
export type StakeTotalsViewerMoniker = typeof StakeTotalsViewerMoniker
|
|
19
|
+
|
|
20
|
+
/** Viewer interface for reading StakeTotals data. */
|
|
21
|
+
export interface StakeTotalsViewer extends StakeTotalsViewerMethods, Provider<StakeTotalsViewerMoniker> {}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Address, Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import type { Provider, StepIdentity } from '@xyo-network/xl1-protocol-model'
|
|
3
|
+
|
|
4
|
+
/** StepStakeViewerMethods interface. */
|
|
5
|
+
export interface StepStakeViewerMethods {
|
|
6
|
+
// this is the prorated stake for all addresses in the step
|
|
7
|
+
stepStake: (step: StepIdentity) => Promisable<Record<Address, bigint>>
|
|
8
|
+
|
|
9
|
+
// this is the prorated stake for a specific address in the step
|
|
10
|
+
stepStakeForAddress: (address: Address, step: StepIdentity) => Promisable<bigint>
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* Prorated stake is the amount of stake that is allocated to a specific step
|
|
14
|
+
based on the total stake and the number of steps. This is used to ensure
|
|
15
|
+
that the stake is distributed fairly among all steps.
|
|
16
|
+
|
|
17
|
+
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.
|
|
18
|
+
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.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
export const StepStakeViewerMoniker = 'StepStakeViewer' as const
|
|
22
|
+
/** Type literal for the StepStakeViewer provider moniker. */
|
|
23
|
+
export type StepStakeViewerMoniker = typeof StepStakeViewerMoniker
|
|
24
|
+
|
|
25
|
+
/** Viewer interface for reading StepStake data. */
|
|
26
|
+
export interface StepStakeViewer extends StepStakeViewerMethods, Provider<StepStakeViewerMoniker> {}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Address, Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import type {
|
|
3
|
+
Position, PositionId, Provider, StepIdentity,
|
|
4
|
+
} from '@xyo-network/xl1-protocol-model'
|
|
5
|
+
|
|
6
|
+
import type { NetworkStakeStepRewardsViewer } from './NetworkStake/index.ts'
|
|
7
|
+
|
|
8
|
+
/** Options for PagedPositions. */
|
|
9
|
+
export interface PagedPositionsOptions {
|
|
10
|
+
cursor?: PositionId
|
|
11
|
+
limit?: number
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** Options for PagedStakers. */
|
|
15
|
+
export interface PagedStakersOptions {
|
|
16
|
+
cursor?: Address
|
|
17
|
+
limit?: number
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** StepStatistics interface. */
|
|
21
|
+
export interface StepStatistics {
|
|
22
|
+
endTime: number
|
|
23
|
+
startTime: number
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** StepViewerMethods interface. */
|
|
27
|
+
export interface StepViewerMethods {
|
|
28
|
+
|
|
29
|
+
// the total number of positions for a given step
|
|
30
|
+
positionCount(step: StepIdentity): Promisable<number>
|
|
31
|
+
|
|
32
|
+
positions(step: StepIdentity, options?: PagedPositionsOptions): Promisable<Position[]>
|
|
33
|
+
|
|
34
|
+
// the predictable random number for a given step
|
|
35
|
+
randomizer(step: StepIdentity): Promisable<bigint>
|
|
36
|
+
|
|
37
|
+
// total amount staked during a given step
|
|
38
|
+
stake(step: StepIdentity): Promisable<bigint>
|
|
39
|
+
|
|
40
|
+
// the total number of stakers for a given step
|
|
41
|
+
stakerCount(step: StepIdentity): Promisable<number>
|
|
42
|
+
|
|
43
|
+
stakers(step: StepIdentity, options?: PagedStakersOptions): Promisable<Address[]>
|
|
44
|
+
|
|
45
|
+
// if no positionId is supplied, returns the total stake weight for the step
|
|
46
|
+
weight(step: StepIdentity, positionId?: PositionId): Promisable<bigint>
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Moniker identifier for the StepViewer provider. */
|
|
50
|
+
export const StepViewerMoniker = 'StepViewer' as const
|
|
51
|
+
/** Type literal for the StepViewer provider moniker. */
|
|
52
|
+
export type StepViewerMoniker = typeof StepViewerMoniker
|
|
53
|
+
|
|
54
|
+
/** Viewer interface for reading Step data. */
|
|
55
|
+
export interface StepViewer extends StepViewerMethods, Provider<StepViewerMoniker> {
|
|
56
|
+
rewards?: NetworkStakeStepRewardsViewer
|
|
57
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import type {
|
|
3
|
+
Provider, TimeDomain, TimePayload,
|
|
4
|
+
} from '@xyo-network/xl1-protocol-model'
|
|
5
|
+
|
|
6
|
+
/** TimeSyncViewerMethods interface. */
|
|
7
|
+
export interface TimeSyncViewerMethods {
|
|
8
|
+
/** Convert time between different domains */
|
|
9
|
+
convertTime(fromDomain: TimeDomain, toDomain: TimeDomain, from: number): Promisable<number>
|
|
10
|
+
|
|
11
|
+
/** Get the current time for a given domain */
|
|
12
|
+
currentTime(domain: TimeDomain): Promisable<[string, number]>
|
|
13
|
+
|
|
14
|
+
/** Get the current time for a given domain */
|
|
15
|
+
currentTimeAndHash(domain: TimeDomain): Promisable<[number, string | null]>
|
|
16
|
+
|
|
17
|
+
/** Create a TimePayload with the current time from all configured domains */
|
|
18
|
+
currentTimePayload(): Promisable<TimePayload>
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** Moniker identifier for the TimeSyncViewer provider. */
|
|
22
|
+
export const TimeSyncViewerMoniker = 'TimeSyncViewer' as const
|
|
23
|
+
/** Type literal for the TimeSyncViewer provider moniker. */
|
|
24
|
+
export type TimeSyncViewerMoniker = typeof TimeSyncViewerMoniker
|
|
25
|
+
|
|
26
|
+
/** Viewer interface for reading TimeSync data. */
|
|
27
|
+
export interface TimeSyncViewer extends TimeSyncViewerMethods, Provider<TimeSyncViewerMoniker> {}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Hash, Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import type {
|
|
3
|
+
Provider, ProviderMoniker, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,
|
|
4
|
+
} from '@xyo-network/xl1-protocol-model'
|
|
5
|
+
|
|
6
|
+
/** TransactionViewerMethods interface. */
|
|
7
|
+
export interface TransactionViewerMethods {
|
|
8
|
+
byHash(transactionHash: Hash): Promisable<SignedHydratedTransactionWithHashMeta | null>
|
|
9
|
+
|
|
10
|
+
/** @deprecated use .byBlockHashAndIndex instead */
|
|
11
|
+
transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransaction | null>
|
|
12
|
+
/** @deprecated use .byBlockNumberAndIndex instead */
|
|
13
|
+
transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransaction | null>
|
|
14
|
+
/** @deprecated use .byHash instead */
|
|
15
|
+
transactionByHash(transactionHash: Hash): Promisable<SignedHydratedTransaction | null>
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** Moniker identifier for the TransactionViewer provider. */
|
|
19
|
+
export const TransactionViewerMoniker = 'TransactionViewer' as const
|
|
20
|
+
/** Type literal for the TransactionViewer provider moniker. */
|
|
21
|
+
export type TransactionViewerMoniker = typeof TransactionViewerMoniker
|
|
22
|
+
|
|
23
|
+
/** Viewer interface for reading Transaction data. */
|
|
24
|
+
export interface TransactionViewer<TMoniker extends ProviderMoniker = TransactionViewerMoniker> extends TransactionViewerMethods, Provider<TMoniker> {
|
|
25
|
+
byBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransactionWithHashMeta | null>
|
|
26
|
+
byBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransactionWithHashMeta | null>
|
|
27
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import { zodIsFactory } from '@xylabs/sdk-js'
|
|
3
|
+
import type {
|
|
4
|
+
Provider, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,
|
|
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 { HydratedTransactionValidationError } from '../validation/index.ts'
|
|
12
|
+
|
|
13
|
+
/** TransactionInvalidationQualificationZod constant. */
|
|
14
|
+
export const TransactionInvalidationQualificationZod = ChainQualificationZod
|
|
15
|
+
/** TransactionInvalidationQualification type. */
|
|
16
|
+
export type TransactionInvalidationQualification = z.infer<typeof TransactionInvalidationQualificationZod>
|
|
17
|
+
/** Type guard that checks if a value is a valid TransactionInvalidationQualification. */
|
|
18
|
+
export const isTransactionInvalidationQualification = zodIsFactory(TransactionInvalidationQualificationZod)
|
|
19
|
+
|
|
20
|
+
/** TransactionInvalidationConfigFieldsZod constant. */
|
|
21
|
+
export const TransactionInvalidationConfigFieldsZod = z.object({
|
|
22
|
+
state: z.boolean().optional(),
|
|
23
|
+
value: z.boolean().optional(),
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
/** TransactionInvalidationConfigZod constant. */
|
|
27
|
+
export const TransactionInvalidationConfigZod = z.union([
|
|
28
|
+
TransactionInvalidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),
|
|
29
|
+
TransactionInvalidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),
|
|
30
|
+
TransactionInvalidationConfigFieldsZod,
|
|
31
|
+
z.object({}),
|
|
32
|
+
])
|
|
33
|
+
|
|
34
|
+
/** TransactionInvalidationConfig type. */
|
|
35
|
+
export type TransactionInvalidationConfig = z.infer<typeof TransactionInvalidationConfigZod>
|
|
36
|
+
/** Type guard that checks if a value is a valid TransactionInvalidationConfig. */
|
|
37
|
+
export const isTransactionInvalidationConfig = zodIsFactory(TransactionInvalidationConfigZod)
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Checks if transactions are invalid (impossible to ever become valid) according to protocol rules.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
export interface TransactionInvalidationViewerMethods {
|
|
44
|
+
qualifiedInvalidateTransactions(
|
|
45
|
+
blocks: SignedHydratedTransaction[],
|
|
46
|
+
config?: TransactionInvalidationConfig
|
|
47
|
+
): Promisable<[(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[], TransactionInvalidationQualification]>
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Moniker identifier for the TransactionInvalidationViewer provider. */
|
|
51
|
+
export const TransactionInvalidationViewerMoniker = 'TransactionInvalidationViewer' as const
|
|
52
|
+
/** Type literal for the TransactionInvalidationViewer provider moniker. */
|
|
53
|
+
export type TransactionInvalidationViewerMoniker = typeof TransactionInvalidationViewerMoniker
|
|
54
|
+
|
|
55
|
+
/** Viewer interface for reading TransactionInvalidation data. */
|
|
56
|
+
export interface TransactionInvalidationViewer extends TransactionInvalidationViewerMethods, Provider<TransactionInvalidationViewerMoniker> {
|
|
57
|
+
invalidateTransaction(
|
|
58
|
+
block: SignedHydratedTransaction,
|
|
59
|
+
config?: TransactionInvalidationConfig
|
|
60
|
+
): Promisable<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>
|
|
61
|
+
|
|
62
|
+
invalidateTransactions(
|
|
63
|
+
blocks: SignedHydratedTransaction[],
|
|
64
|
+
config?: TransactionInvalidationConfig
|
|
65
|
+
): Promisable<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>
|
|
66
|
+
|
|
67
|
+
qualifiedInvalidateTransaction(
|
|
68
|
+
block: SignedHydratedTransaction,
|
|
69
|
+
config?: TransactionInvalidationConfig
|
|
70
|
+
): Promisable<[HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta, TransactionInvalidationQualification]>
|
|
71
|
+
}
|