@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.
Files changed (260) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +81 -0
  3. package/dist/neutral/OpenTelemetryProviders.d.ts +7 -0
  4. package/dist/neutral/OpenTelemetryProviders.d.ts.map +1 -0
  5. package/dist/neutral/index.d.ts +10 -0
  6. package/dist/neutral/index.d.ts.map +1 -0
  7. package/dist/neutral/index.mjs +375 -0
  8. package/dist/neutral/index.mjs.map +1 -0
  9. package/dist/neutral/network/Status.d.ts +26 -0
  10. package/dist/neutral/network/Status.d.ts.map +1 -0
  11. package/dist/neutral/network/index.d.ts +2 -0
  12. package/dist/neutral/network/index.d.ts.map +1 -0
  13. package/dist/neutral/permissions/InvokerPermission.d.ts +53 -0
  14. package/dist/neutral/permissions/InvokerPermission.d.ts.map +1 -0
  15. package/dist/neutral/permissions/XyoPermissions.d.ts +33 -0
  16. package/dist/neutral/permissions/XyoPermissions.d.ts.map +1 -0
  17. package/dist/neutral/permissions/index.d.ts +3 -0
  18. package/dist/neutral/permissions/index.d.ts.map +1 -0
  19. package/dist/neutral/providers/DataLake/Provider.d.ts +10 -0
  20. package/dist/neutral/providers/DataLake/Provider.d.ts.map +1 -0
  21. package/dist/neutral/providers/DataLake/Runner.d.ts +15 -0
  22. package/dist/neutral/providers/DataLake/Runner.d.ts.map +1 -0
  23. package/dist/neutral/providers/DataLake/Viewer.d.ts +14 -0
  24. package/dist/neutral/providers/DataLake/Viewer.d.ts.map +1 -0
  25. package/dist/neutral/providers/DataLake/index.d.ts +4 -0
  26. package/dist/neutral/providers/DataLake/index.d.ts.map +1 -0
  27. package/dist/neutral/providers/TransactionHelper.d.ts +9 -0
  28. package/dist/neutral/providers/TransactionHelper.d.ts.map +1 -0
  29. package/dist/neutral/providers/XyoClient.d.ts +23 -0
  30. package/dist/neutral/providers/XyoClient.d.ts.map +1 -0
  31. package/dist/neutral/providers/XyoConnection.d.ts +18 -0
  32. package/dist/neutral/providers/XyoConnection.d.ts.map +1 -0
  33. package/dist/neutral/providers/XyoGateway.d.ts +20 -0
  34. package/dist/neutral/providers/XyoGateway.d.ts.map +1 -0
  35. package/dist/neutral/providers/XyoGatewayRunner.d.ts +50 -0
  36. package/dist/neutral/providers/XyoGatewayRunner.d.ts.map +1 -0
  37. package/dist/neutral/providers/XyoNetwork.d.ts +7 -0
  38. package/dist/neutral/providers/XyoNetwork.d.ts.map +1 -0
  39. package/dist/neutral/providers/XyoRunner.d.ts +16 -0
  40. package/dist/neutral/providers/XyoRunner.d.ts.map +1 -0
  41. package/dist/neutral/providers/index.d.ts +9 -0
  42. package/dist/neutral/providers/index.d.ts.map +1 -0
  43. package/dist/neutral/providers/signer/XyoSigner.d.ts +21 -0
  44. package/dist/neutral/providers/signer/XyoSigner.d.ts.map +1 -0
  45. package/dist/neutral/providers/signer/index.d.ts +2 -0
  46. package/dist/neutral/providers/signer/index.d.ts.map +1 -0
  47. package/dist/neutral/repository/Repository.d.ts +27 -0
  48. package/dist/neutral/repository/Repository.d.ts.map +1 -0
  49. package/dist/neutral/repository/TransactionReadRepository.d.ts +6 -0
  50. package/dist/neutral/repository/TransactionReadRepository.d.ts.map +1 -0
  51. package/dist/neutral/repository/TransactionRepository.d.ts +13 -0
  52. package/dist/neutral/repository/TransactionRepository.d.ts.map +1 -0
  53. package/dist/neutral/repository/TransactionRepositoryIterator.d.ts +6 -0
  54. package/dist/neutral/repository/TransactionRepositoryIterator.d.ts.map +1 -0
  55. package/dist/neutral/repository/TransactionWriteRepository.d.ts +6 -0
  56. package/dist/neutral/repository/TransactionWriteRepository.d.ts.map +1 -0
  57. package/dist/neutral/repository/index.d.ts +6 -0
  58. package/dist/neutral/repository/index.d.ts.map +1 -0
  59. package/dist/neutral/runners/Block.d.ts +16 -0
  60. package/dist/neutral/runners/Block.d.ts.map +1 -0
  61. package/dist/neutral/runners/Finalization.d.ts +15 -0
  62. package/dist/neutral/runners/Finalization.d.ts.map +1 -0
  63. package/dist/neutral/runners/Mempool.d.ts +25 -0
  64. package/dist/neutral/runners/Mempool.d.ts.map +1 -0
  65. package/dist/neutral/runners/index.d.ts +4 -0
  66. package/dist/neutral/runners/index.d.ts.map +1 -0
  67. package/dist/neutral/validation/block/BlockValidationFunction.d.ts +6 -0
  68. package/dist/neutral/validation/block/BlockValidationFunction.d.ts.map +1 -0
  69. package/dist/neutral/validation/block/HydratedBlockStateValidationFunction.d.ts +19 -0
  70. package/dist/neutral/validation/block/HydratedBlockStateValidationFunction.d.ts.map +1 -0
  71. package/dist/neutral/validation/block/HydratedBlockValidationFunction.d.ts +14 -0
  72. package/dist/neutral/validation/block/HydratedBlockValidationFunction.d.ts.map +1 -0
  73. package/dist/neutral/validation/block/error.d.ts +21 -0
  74. package/dist/neutral/validation/block/error.d.ts.map +1 -0
  75. package/dist/neutral/validation/block/index.d.ts +5 -0
  76. package/dist/neutral/validation/block/index.d.ts.map +1 -0
  77. package/dist/neutral/validation/boundwitness/BoundWitnessValidationFunction.d.ts +6 -0
  78. package/dist/neutral/validation/boundwitness/BoundWitnessValidationFunction.d.ts.map +1 -0
  79. package/dist/neutral/validation/boundwitness/HydratedBoundWitnessValidationFunction.d.ts +8 -0
  80. package/dist/neutral/validation/boundwitness/HydratedBoundWitnessValidationFunction.d.ts.map +1 -0
  81. package/dist/neutral/validation/boundwitness/error.d.ts +13 -0
  82. package/dist/neutral/validation/boundwitness/error.d.ts.map +1 -0
  83. package/dist/neutral/validation/boundwitness/index.d.ts +4 -0
  84. package/dist/neutral/validation/boundwitness/index.d.ts.map +1 -0
  85. package/dist/neutral/validation/error.d.ts +11 -0
  86. package/dist/neutral/validation/error.d.ts.map +1 -0
  87. package/dist/neutral/validation/index.d.ts +6 -0
  88. package/dist/neutral/validation/index.d.ts.map +1 -0
  89. package/dist/neutral/validation/payload/InBlockPayloadValidationFunction.d.ts +10 -0
  90. package/dist/neutral/validation/payload/InBlockPayloadValidationFunction.d.ts.map +1 -0
  91. package/dist/neutral/validation/payload/error.d.ts +12 -0
  92. package/dist/neutral/validation/payload/error.d.ts.map +1 -0
  93. package/dist/neutral/validation/payload/index.d.ts +3 -0
  94. package/dist/neutral/validation/payload/index.d.ts.map +1 -0
  95. package/dist/neutral/validation/transaction/HydratedTransactionStateValidationFunction.d.ts +18 -0
  96. package/dist/neutral/validation/transaction/HydratedTransactionStateValidationFunction.d.ts.map +1 -0
  97. package/dist/neutral/validation/transaction/HydratedTransactionValidationFunction.d.ts +16 -0
  98. package/dist/neutral/validation/transaction/HydratedTransactionValidationFunction.d.ts.map +1 -0
  99. package/dist/neutral/validation/transaction/error.d.ts +8 -0
  100. package/dist/neutral/validation/transaction/error.d.ts.map +1 -0
  101. package/dist/neutral/validation/transaction/index.d.ts +4 -0
  102. package/dist/neutral/validation/transaction/index.d.ts.map +1 -0
  103. package/dist/neutral/viewers/Block.d.ts +29 -0
  104. package/dist/neutral/viewers/Block.d.ts.map +1 -0
  105. package/dist/neutral/viewers/BlockInvalidation.d.ts +68 -0
  106. package/dist/neutral/viewers/BlockInvalidation.d.ts.map +1 -0
  107. package/dist/neutral/viewers/BlockReward.d.ts +14 -0
  108. package/dist/neutral/viewers/BlockReward.d.ts.map +1 -0
  109. package/dist/neutral/viewers/BlockValidation.d.ts +68 -0
  110. package/dist/neutral/viewers/BlockValidation.d.ts.map +1 -0
  111. package/dist/neutral/viewers/ChainContract.d.ts +22 -0
  112. package/dist/neutral/viewers/ChainContract.d.ts.map +1 -0
  113. package/dist/neutral/viewers/ChainStakeViewer.d.ts +11 -0
  114. package/dist/neutral/viewers/ChainStakeViewer.d.ts.map +1 -0
  115. package/dist/neutral/viewers/Finalization.d.ts +18 -0
  116. package/dist/neutral/viewers/Finalization.d.ts.map +1 -0
  117. package/dist/neutral/viewers/Fork.d.ts +9 -0
  118. package/dist/neutral/viewers/Fork.d.ts.map +1 -0
  119. package/dist/neutral/viewers/Mempool.d.ts +31 -0
  120. package/dist/neutral/viewers/Mempool.d.ts.map +1 -0
  121. package/dist/neutral/viewers/NetworkStake/NetworkStakeViewer.d.ts +17 -0
  122. package/dist/neutral/viewers/NetworkStake/NetworkStakeViewer.d.ts.map +1 -0
  123. package/dist/neutral/viewers/NetworkStake/Rewards/ByPositionViewer.d.ts +14 -0
  124. package/dist/neutral/viewers/NetworkStake/Rewards/ByPositionViewer.d.ts.map +1 -0
  125. package/dist/neutral/viewers/NetworkStake/Rewards/ByStakerViewer.d.ts +15 -0
  126. package/dist/neutral/viewers/NetworkStake/Rewards/ByStakerViewer.d.ts.map +1 -0
  127. package/dist/neutral/viewers/NetworkStake/Rewards/ByStepViewer.d.ts +14 -0
  128. package/dist/neutral/viewers/NetworkStake/Rewards/ByStepViewer.d.ts.map +1 -0
  129. package/dist/neutral/viewers/NetworkStake/Rewards/Options.d.ts +19 -0
  130. package/dist/neutral/viewers/NetworkStake/Rewards/Options.d.ts.map +1 -0
  131. package/dist/neutral/viewers/NetworkStake/Rewards/TotalViewer.d.ts +14 -0
  132. package/dist/neutral/viewers/NetworkStake/Rewards/TotalViewer.d.ts.map +1 -0
  133. package/dist/neutral/viewers/NetworkStake/Rewards/Viewer.d.ts +20 -0
  134. package/dist/neutral/viewers/NetworkStake/Rewards/Viewer.d.ts.map +1 -0
  135. package/dist/neutral/viewers/NetworkStake/Rewards/index.d.ts +8 -0
  136. package/dist/neutral/viewers/NetworkStake/Rewards/index.d.ts.map +1 -0
  137. package/dist/neutral/viewers/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.d.ts +6 -0
  138. package/dist/neutral/viewers/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.d.ts.map +1 -0
  139. package/dist/neutral/viewers/NetworkStake/Rewards/templates/MethodsTemplate.d.ts +10 -0
  140. package/dist/neutral/viewers/NetworkStake/Rewards/templates/MethodsTemplate.d.ts.map +1 -0
  141. package/dist/neutral/viewers/NetworkStake/Rewards/templates/index.d.ts +3 -0
  142. package/dist/neutral/viewers/NetworkStake/Rewards/templates/index.d.ts.map +1 -0
  143. package/dist/neutral/viewers/NetworkStake/index.d.ts +3 -0
  144. package/dist/neutral/viewers/NetworkStake/index.d.ts.map +1 -0
  145. package/dist/neutral/viewers/NetworkStakeStepReward.d.ts +40 -0
  146. package/dist/neutral/viewers/NetworkStakeStepReward.d.ts.map +1 -0
  147. package/dist/neutral/viewers/Stake.d.ts +38 -0
  148. package/dist/neutral/viewers/Stake.d.ts.map +1 -0
  149. package/dist/neutral/viewers/StakeEvents.d.ts +44 -0
  150. package/dist/neutral/viewers/StakeEvents.d.ts.map +1 -0
  151. package/dist/neutral/viewers/StakeIntent.d.ts +15 -0
  152. package/dist/neutral/viewers/StakeIntent.d.ts.map +1 -0
  153. package/dist/neutral/viewers/StakeTotals.d.ts +20 -0
  154. package/dist/neutral/viewers/StakeTotals.d.ts.map +1 -0
  155. package/dist/neutral/viewers/StepStake.d.ts +14 -0
  156. package/dist/neutral/viewers/StepStake.d.ts.map +1 -0
  157. package/dist/neutral/viewers/StepViewer.d.ts +37 -0
  158. package/dist/neutral/viewers/StepViewer.d.ts.map +1 -0
  159. package/dist/neutral/viewers/TimeSync.d.ts +21 -0
  160. package/dist/neutral/viewers/TimeSync.d.ts.map +1 -0
  161. package/dist/neutral/viewers/Transaction.d.ts +22 -0
  162. package/dist/neutral/viewers/Transaction.d.ts.map +1 -0
  163. package/dist/neutral/viewers/TransactionInvalidation.d.ts +66 -0
  164. package/dist/neutral/viewers/TransactionInvalidation.d.ts.map +1 -0
  165. package/dist/neutral/viewers/TransactionValidation.d.ts +67 -0
  166. package/dist/neutral/viewers/TransactionValidation.d.ts.map +1 -0
  167. package/dist/neutral/viewers/TransferBalance.d.ts +30 -0
  168. package/dist/neutral/viewers/TransferBalance.d.ts.map +1 -0
  169. package/dist/neutral/viewers/WindowedBlock.d.ts +18 -0
  170. package/dist/neutral/viewers/WindowedBlock.d.ts.map +1 -0
  171. package/dist/neutral/viewers/XyoViewer.d.ts +55 -0
  172. package/dist/neutral/viewers/XyoViewer.d.ts.map +1 -0
  173. package/dist/neutral/viewers/index.d.ts +24 -0
  174. package/dist/neutral/viewers/index.d.ts.map +1 -0
  175. package/package.json +73 -0
  176. package/src/OpenTelemetryProviders.ts +7 -0
  177. package/src/index.ts +9 -0
  178. package/src/network/Status.ts +30 -0
  179. package/src/network/index.ts +1 -0
  180. package/src/permissions/InvokerPermission.ts +58 -0
  181. package/src/permissions/XyoPermissions.ts +41 -0
  182. package/src/permissions/index.ts +2 -0
  183. package/src/providers/DataLake/Provider.ts +11 -0
  184. package/src/providers/DataLake/Runner.ts +16 -0
  185. package/src/providers/DataLake/Viewer.ts +16 -0
  186. package/src/providers/DataLake/index.ts +3 -0
  187. package/src/providers/TransactionHelper.ts +15 -0
  188. package/src/providers/XyoClient.ts +27 -0
  189. package/src/providers/XyoConnection.ts +20 -0
  190. package/src/providers/XyoGateway.ts +24 -0
  191. package/src/providers/XyoGatewayRunner.ts +72 -0
  192. package/src/providers/XyoNetwork.ts +8 -0
  193. package/src/providers/XyoRunner.ts +19 -0
  194. package/src/providers/index.ts +8 -0
  195. package/src/providers/signer/XyoSigner.ts +36 -0
  196. package/src/providers/signer/index.ts +1 -0
  197. package/src/repository/Repository.ts +32 -0
  198. package/src/repository/TransactionReadRepository.ts +6 -0
  199. package/src/repository/TransactionRepository.ts +12 -0
  200. package/src/repository/TransactionRepositoryIterator.ts +6 -0
  201. package/src/repository/TransactionWriteRepository.ts +6 -0
  202. package/src/repository/index.ts +5 -0
  203. package/src/runners/Block.ts +21 -0
  204. package/src/runners/Finalization.ts +17 -0
  205. package/src/runners/Mempool.ts +31 -0
  206. package/src/runners/index.ts +3 -0
  207. package/src/validation/block/BlockValidationFunction.ts +13 -0
  208. package/src/validation/block/HydratedBlockStateValidationFunction.ts +29 -0
  209. package/src/validation/block/HydratedBlockValidationFunction.ts +21 -0
  210. package/src/validation/block/error.ts +51 -0
  211. package/src/validation/block/index.ts +4 -0
  212. package/src/validation/boundwitness/BoundWitnessValidationFunction.ts +9 -0
  213. package/src/validation/boundwitness/HydratedBoundWitnessValidationFunction.ts +15 -0
  214. package/src/validation/boundwitness/error.ts +29 -0
  215. package/src/validation/boundwitness/index.ts +3 -0
  216. package/src/validation/error.ts +25 -0
  217. package/src/validation/index.ts +5 -0
  218. package/src/validation/payload/InBlockPayloadValidationFunction.ts +16 -0
  219. package/src/validation/payload/error.ts +24 -0
  220. package/src/validation/payload/index.ts +2 -0
  221. package/src/validation/transaction/HydratedTransactionStateValidationFunction.ts +27 -0
  222. package/src/validation/transaction/HydratedTransactionValidationFunction.ts +23 -0
  223. package/src/validation/transaction/error.ts +16 -0
  224. package/src/validation/transaction/index.ts +3 -0
  225. package/src/viewers/Block.ts +40 -0
  226. package/src/viewers/BlockInvalidation.ts +81 -0
  227. package/src/viewers/BlockReward.ts +18 -0
  228. package/src/viewers/BlockValidation.ts +81 -0
  229. package/src/viewers/ChainContract.ts +28 -0
  230. package/src/viewers/ChainStakeViewer.ts +15 -0
  231. package/src/viewers/Finalization.ts +22 -0
  232. package/src/viewers/Fork.ts +10 -0
  233. package/src/viewers/Mempool.ts +40 -0
  234. package/src/viewers/NetworkStake/NetworkStakeViewer.ts +20 -0
  235. package/src/viewers/NetworkStake/Rewards/ByPositionViewer.ts +19 -0
  236. package/src/viewers/NetworkStake/Rewards/ByStakerViewer.ts +20 -0
  237. package/src/viewers/NetworkStake/Rewards/ByStepViewer.ts +18 -0
  238. package/src/viewers/NetworkStake/Rewards/Options.ts +22 -0
  239. package/src/viewers/NetworkStake/Rewards/TotalViewer.ts +17 -0
  240. package/src/viewers/NetworkStake/Rewards/Viewer.ts +22 -0
  241. package/src/viewers/NetworkStake/Rewards/index.ts +7 -0
  242. package/src/viewers/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.ts +7 -0
  243. package/src/viewers/NetworkStake/Rewards/templates/MethodsTemplate.ts +10 -0
  244. package/src/viewers/NetworkStake/Rewards/templates/index.ts +2 -0
  245. package/src/viewers/NetworkStake/index.ts +4 -0
  246. package/src/viewers/NetworkStakeStepReward.ts +82 -0
  247. package/src/viewers/Stake.ts +44 -0
  248. package/src/viewers/StakeEvents.ts +54 -0
  249. package/src/viewers/StakeIntent.ts +21 -0
  250. package/src/viewers/StakeTotals.ts +21 -0
  251. package/src/viewers/StepStake.ts +26 -0
  252. package/src/viewers/StepViewer.ts +57 -0
  253. package/src/viewers/TimeSync.ts +27 -0
  254. package/src/viewers/Transaction.ts +27 -0
  255. package/src/viewers/TransactionInvalidation.ts +71 -0
  256. package/src/viewers/TransactionValidation.ts +72 -0
  257. package/src/viewers/TransferBalance.ts +35 -0
  258. package/src/viewers/WindowedBlock.ts +23 -0
  259. package/src/viewers/XyoViewer.ts +73 -0
  260. 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
+ export * from './ByPositionViewer.ts'
2
+ export * from './ByStakerViewer.ts'
3
+ export * from './ByStepViewer.ts'
4
+ export * from './Options.ts'
5
+ export * from './templates/index.ts'
6
+ export * from './TotalViewer.ts'
7
+ export * from './Viewer.ts'
@@ -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,2 @@
1
+ export * from './ByIndexMethodsTemplate.ts'
2
+ export * from './MethodsTemplate.ts'
@@ -0,0 +1,4 @@
1
+ export * from './NetworkStakeViewer.ts'
2
+ export * from './Rewards/index.ts'
3
+
4
+ // Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
@@ -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
+ }