@xyo-network/xl1-protocol-sdk 1.15.28 → 1.16.0

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 (261) hide show
  1. package/dist/neutral/ChainServiceCollectionV2.d.ts +1 -1
  2. package/dist/neutral/ChainServiceCollectionV2.d.ts.map +1 -1
  3. package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts.map +1 -1
  4. package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts +3 -2
  5. package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts.map +1 -1
  6. package/dist/neutral/config/Config.d.ts +6 -0
  7. package/dist/neutral/config/Config.d.ts.map +1 -1
  8. package/dist/neutral/config/Mempool.d.ts +9 -0
  9. package/dist/neutral/config/Mempool.d.ts.map +1 -0
  10. package/dist/neutral/index.d.ts +3 -0
  11. package/dist/neutral/index.d.ts.map +1 -1
  12. package/dist/neutral/index.mjs +249 -126
  13. package/dist/neutral/index.mjs.map +1 -1
  14. package/dist/neutral/interfaces/index.d.ts +2 -0
  15. package/dist/neutral/interfaces/index.d.ts.map +1 -0
  16. package/dist/neutral/interfaces/viewers/AccountBalance.d.ts +19 -0
  17. package/dist/neutral/interfaces/viewers/AccountBalance.d.ts.map +1 -0
  18. package/dist/neutral/interfaces/viewers/Block.d.ts +12 -0
  19. package/dist/neutral/interfaces/viewers/Block.d.ts.map +1 -0
  20. package/dist/neutral/interfaces/viewers/Chain.d.ts +6 -0
  21. package/dist/neutral/interfaces/viewers/Chain.d.ts.map +1 -0
  22. package/dist/neutral/interfaces/viewers/ChainContract.d.ts +10 -0
  23. package/dist/neutral/interfaces/viewers/ChainContract.d.ts.map +1 -0
  24. package/dist/neutral/interfaces/viewers/Fork.d.ts +8 -0
  25. package/dist/neutral/interfaces/viewers/Fork.d.ts.map +1 -0
  26. package/dist/neutral/interfaces/viewers/NetworkStakeStepReward.d.ts +30 -0
  27. package/dist/neutral/interfaces/viewers/NetworkStakeStepReward.d.ts.map +1 -0
  28. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/NetworkStakeViewer.d.ts +10 -0
  29. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/NetworkStakeViewer.d.ts.map +1 -0
  30. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RecordKeyType.d.ts +2 -0
  31. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RecordKeyType.d.ts.map +1 -0
  32. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByIndexViewerMethodsTemplate.d.ts +6 -0
  33. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByIndexViewerMethodsTemplate.d.ts.map +1 -0
  34. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByPositionViewer.d.ts +7 -0
  35. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByPositionViewer.d.ts.map +1 -0
  36. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStakerViewer.d.ts +8 -0
  37. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStakerViewer.d.ts.map +1 -0
  38. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStepViewer.d.ts +8 -0
  39. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStepViewer.d.ts.map +1 -0
  40. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsTotalViewer.d.ts +8 -0
  41. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsTotalViewer.d.ts.map +1 -0
  42. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerMethodsTemplate.d.ts +9 -0
  43. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerMethodsTemplate.d.ts.map +1 -0
  44. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerOptions.d.ts +15 -0
  45. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerOptions.d.ts.map +1 -0
  46. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepRewardsViewer.d.ts +13 -0
  47. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepRewardsViewer.d.ts.map +1 -0
  48. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepViewer.d.ts +26 -0
  49. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepViewer.d.ts.map +1 -0
  50. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/index.d.ts +12 -0
  51. package/dist/neutral/interfaces/viewers/NetworkStakeViewer/index.d.ts.map +1 -0
  52. package/dist/neutral/interfaces/viewers/Stake.d.ts +14 -0
  53. package/dist/neutral/interfaces/viewers/Stake.d.ts.map +1 -0
  54. package/dist/neutral/interfaces/viewers/StakeTotalsViewer.d.ts +12 -0
  55. package/dist/neutral/interfaces/viewers/StakeTotalsViewer.d.ts.map +1 -0
  56. package/dist/neutral/interfaces/viewers/StakeViewer.d.ts +11 -0
  57. package/dist/neutral/interfaces/viewers/StakeViewer.d.ts.map +1 -0
  58. package/dist/neutral/interfaces/viewers/StepStake.d.ts +8 -0
  59. package/dist/neutral/interfaces/viewers/StepStake.d.ts.map +1 -0
  60. package/dist/neutral/interfaces/viewers/TimeSync.d.ts +16 -0
  61. package/dist/neutral/interfaces/viewers/TimeSync.d.ts.map +1 -0
  62. package/dist/neutral/interfaces/viewers/Transaction.d.ts +9 -0
  63. package/dist/neutral/interfaces/viewers/Transaction.d.ts.map +1 -0
  64. package/dist/neutral/interfaces/viewers/TransferBalance.d.ts +23 -0
  65. package/dist/neutral/interfaces/viewers/TransferBalance.d.ts.map +1 -0
  66. package/dist/neutral/interfaces/viewers/index.d.ts +15 -0
  67. package/dist/neutral/interfaces/viewers/index.d.ts.map +1 -0
  68. package/dist/neutral/model/ChainStake/ChainStakeRead.d.ts +1 -1
  69. package/dist/neutral/model/ChainStake/ChainStakeRead.d.ts.map +1 -1
  70. package/dist/neutral/model/summary.d.ts +2 -2
  71. package/dist/neutral/model/summary.d.ts.map +1 -1
  72. package/dist/neutral/provider/TransactionHelper.d.ts +8 -0
  73. package/dist/neutral/provider/TransactionHelper.d.ts.map +1 -0
  74. package/dist/neutral/provider/TransactionSubmitter.d.ts +18 -0
  75. package/dist/neutral/provider/TransactionSubmitter.d.ts.map +1 -0
  76. package/dist/neutral/provider/XyoClient.d.ts +19 -0
  77. package/dist/neutral/provider/XyoClient.d.ts.map +1 -0
  78. package/dist/neutral/provider/XyoConnection.d.ts +35 -0
  79. package/dist/neutral/provider/XyoConnection.d.ts.map +1 -0
  80. package/dist/neutral/provider/XyoDataLake.d.ts +18 -0
  81. package/dist/neutral/provider/XyoDataLake.d.ts.map +1 -0
  82. package/dist/neutral/provider/XyoGateway.d.ts +19 -0
  83. package/dist/neutral/provider/XyoGateway.d.ts.map +1 -0
  84. package/dist/neutral/provider/XyoGatewayHelpers.d.ts +16 -0
  85. package/dist/neutral/provider/XyoGatewayHelpers.d.ts.map +1 -0
  86. package/dist/neutral/provider/XyoNetwork.d.ts +6 -0
  87. package/dist/neutral/provider/XyoNetwork.d.ts.map +1 -0
  88. package/dist/neutral/provider/XyoRunner.d.ts +7 -0
  89. package/dist/neutral/provider/XyoRunner.d.ts.map +1 -0
  90. package/dist/neutral/provider/XyoSigner.d.ts +14 -0
  91. package/dist/neutral/provider/XyoSigner.d.ts.map +1 -0
  92. package/dist/neutral/provider/XyoViewer.d.ts +7 -0
  93. package/dist/neutral/provider/XyoViewer.d.ts.map +1 -0
  94. package/dist/neutral/provider/XyoWallet.d.ts +15 -0
  95. package/dist/neutral/provider/XyoWallet.d.ts.map +1 -0
  96. package/dist/neutral/provider/index.d.ts +13 -0
  97. package/dist/neutral/provider/index.d.ts.map +1 -0
  98. package/dist/neutral/provider/permissions/InvokerPermission.d.ts +51 -0
  99. package/dist/neutral/provider/permissions/InvokerPermission.d.ts.map +1 -0
  100. package/dist/neutral/provider/permissions/XyoPermissions.d.ts +32 -0
  101. package/dist/neutral/provider/permissions/XyoPermissions.d.ts.map +1 -0
  102. package/dist/neutral/provider/permissions/index.d.ts +3 -0
  103. package/dist/neutral/provider/permissions/index.d.ts.map +1 -0
  104. package/dist/neutral/services/AccountBalanceService.d.ts +16 -0
  105. package/dist/neutral/services/AccountBalanceService.d.ts.map +1 -0
  106. package/dist/neutral/services/AccountTransfersService.d.ts +11 -0
  107. package/dist/neutral/services/AccountTransfersService.d.ts.map +1 -0
  108. package/dist/neutral/services/BlockProducerService.d.ts +6 -0
  109. package/dist/neutral/services/BlockProducerService.d.ts.map +1 -0
  110. package/dist/neutral/services/BlockRewardService.d.ts +6 -0
  111. package/dist/neutral/services/BlockRewardService.d.ts.map +1 -0
  112. package/dist/neutral/services/BlockRewardServiceV2.d.ts +6 -0
  113. package/dist/neutral/services/BlockRewardServiceV2.d.ts.map +1 -0
  114. package/dist/neutral/services/Chain/BaseChainService.d.ts +6 -0
  115. package/dist/neutral/services/Chain/BaseChainService.d.ts.map +1 -0
  116. package/dist/neutral/services/Chain/ChainHeadService.d.ts +6 -0
  117. package/dist/neutral/services/Chain/ChainHeadService.d.ts.map +1 -0
  118. package/dist/neutral/services/Chain/ChainService.d.ts +5 -0
  119. package/dist/neutral/services/Chain/ChainService.d.ts.map +1 -0
  120. package/dist/neutral/services/Chain/index.d.ts +5 -0
  121. package/dist/neutral/services/Chain/index.d.ts.map +1 -0
  122. package/dist/neutral/services/Chain/interfaces/ChainContractViewer.d.ts +4 -0
  123. package/dist/neutral/services/Chain/interfaces/ChainContractViewer.d.ts.map +1 -0
  124. package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts +5 -0
  125. package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts.map +1 -0
  126. package/dist/neutral/services/Chain/interfaces/ChainStaker.d.ts +6 -0
  127. package/dist/neutral/services/Chain/interfaces/ChainStaker.d.ts.map +1 -0
  128. package/dist/neutral/services/Chain/interfaces/index.d.ts +4 -0
  129. package/dist/neutral/services/Chain/interfaces/index.d.ts.map +1 -0
  130. package/dist/neutral/services/ChainIterator/ChainIteratorService.d.ts +23 -0
  131. package/dist/neutral/services/ChainIterator/ChainIteratorService.d.ts.map +1 -0
  132. package/dist/neutral/services/ChainIterator/ChainIteratorServiceEventData.d.ts +11 -0
  133. package/dist/neutral/services/ChainIterator/ChainIteratorServiceEventData.d.ts.map +1 -0
  134. package/dist/neutral/services/ChainIterator/index.d.ts +3 -0
  135. package/dist/neutral/services/ChainIterator/index.d.ts.map +1 -0
  136. package/dist/neutral/services/Election.d.ts +12 -0
  137. package/dist/neutral/services/Election.d.ts.map +1 -0
  138. package/dist/neutral/services/NetworkStakeService.d.ts +5 -0
  139. package/dist/neutral/services/NetworkStakeService.d.ts.map +1 -0
  140. package/dist/neutral/services/Params.d.ts +9 -0
  141. package/dist/neutral/services/Params.d.ts.map +1 -0
  142. package/dist/neutral/services/PendingTransactionsService.d.ts +7 -0
  143. package/dist/neutral/services/PendingTransactionsService.d.ts.map +1 -0
  144. package/dist/neutral/services/Service.d.ts +5 -0
  145. package/dist/neutral/services/Service.d.ts.map +1 -0
  146. package/dist/neutral/services/StakeIntentService/ChainIndexingServiceStateSchema.d.ts +32 -0
  147. package/dist/neutral/services/StakeIntentService/ChainIndexingServiceStateSchema.d.ts.map +1 -0
  148. package/dist/neutral/services/StakeIntentService/StakeIntentService.d.ts +31 -0
  149. package/dist/neutral/services/StakeIntentService/StakeIntentService.d.ts.map +1 -0
  150. package/dist/neutral/services/StakeIntentService/index.d.ts +3 -0
  151. package/dist/neutral/services/StakeIntentService/index.d.ts.map +1 -0
  152. package/dist/neutral/services/StepStakeService.d.ts +5 -0
  153. package/dist/neutral/services/StepStakeService.d.ts.map +1 -0
  154. package/dist/neutral/services/TimeSyncService.d.ts +7 -0
  155. package/dist/neutral/services/TimeSyncService.d.ts.map +1 -0
  156. package/dist/neutral/services/index.d.ts +15 -0
  157. package/dist/neutral/services/index.d.ts.map +1 -0
  158. package/dist/neutral/transaction/confirmSubmittedTransaction.d.ts +2 -1
  159. package/dist/neutral/transaction/confirmSubmittedTransaction.d.ts.map +1 -1
  160. package/dist/neutral/validation/block/BlockValidationFunction.d.ts +5 -0
  161. package/dist/neutral/validation/block/BlockValidationFunction.d.ts.map +1 -0
  162. package/dist/neutral/validation/block/HydratedBlockStateValidationFunction.d.ts +18 -0
  163. package/dist/neutral/validation/block/HydratedBlockStateValidationFunction.d.ts.map +1 -0
  164. package/dist/neutral/validation/block/HydratedBlockValidationFunction.d.ts +11 -0
  165. package/dist/neutral/validation/block/HydratedBlockValidationFunction.d.ts.map +1 -0
  166. package/dist/neutral/validation/block/error.d.ts +15 -0
  167. package/dist/neutral/validation/block/error.d.ts.map +1 -0
  168. package/dist/neutral/validation/block/error.spec.d.ts +2 -0
  169. package/dist/neutral/validation/block/error.spec.d.ts.map +1 -0
  170. package/dist/neutral/validation/block/index.d.ts +5 -0
  171. package/dist/neutral/validation/block/index.d.ts.map +1 -0
  172. package/dist/neutral/validation/index.d.ts +1 -0
  173. package/dist/neutral/validation/index.d.ts.map +1 -1
  174. package/package.json +26 -23
  175. package/src/ChainServiceCollectionV2.ts +4 -3
  176. package/src/block/primitives/frames/spec/calculateFramesFromRange.spec.ts +1 -1
  177. package/src/block/primitives/transfers/transfersStepSummaryFromRange.ts +7 -4
  178. package/src/block/primitives/transfers/transfersSummary.ts +11 -7
  179. package/src/config/Config.ts +2 -0
  180. package/src/config/Mempool.ts +42 -0
  181. package/src/index.ts +3 -0
  182. package/src/interfaces/index.ts +1 -0
  183. package/src/interfaces/viewers/AccountBalance.ts +25 -0
  184. package/src/interfaces/viewers/Block.ts +13 -0
  185. package/src/interfaces/viewers/Chain.ts +6 -0
  186. package/src/interfaces/viewers/ChainContract.ts +10 -0
  187. package/src/interfaces/viewers/Fork.ts +9 -0
  188. package/src/interfaces/viewers/NetworkStakeStepReward.ts +69 -0
  189. package/src/interfaces/viewers/NetworkStakeViewer/NetworkStakeViewer.ts +12 -0
  190. package/src/interfaces/viewers/NetworkStakeViewer/RecordKeyType.ts +2 -0
  191. package/src/interfaces/viewers/NetworkStakeViewer/RewardsByIndexViewerMethodsTemplate.ts +7 -0
  192. package/src/interfaces/viewers/NetworkStakeViewer/RewardsByPositionViewer.ts +7 -0
  193. package/src/interfaces/viewers/NetworkStakeViewer/RewardsByStakerViewer.ts +9 -0
  194. package/src/interfaces/viewers/NetworkStakeViewer/RewardsByStepViewer.ts +9 -0
  195. package/src/interfaces/viewers/NetworkStakeViewer/RewardsTotalViewer.ts +9 -0
  196. package/src/interfaces/viewers/NetworkStakeViewer/RewardsViewerMethodsTemplate.ts +9 -0
  197. package/src/interfaces/viewers/NetworkStakeViewer/RewardsViewerOptions.ts +18 -0
  198. package/src/interfaces/viewers/NetworkStakeViewer/StepRewardsViewer.ts +13 -0
  199. package/src/interfaces/viewers/NetworkStakeViewer/StepViewer.ts +42 -0
  200. package/src/interfaces/viewers/NetworkStakeViewer/index.ts +13 -0
  201. package/src/interfaces/viewers/Stake.ts +22 -0
  202. package/src/interfaces/viewers/StakeTotalsViewer.ts +12 -0
  203. package/src/interfaces/viewers/StakeViewer.ts +13 -0
  204. package/src/interfaces/viewers/StepStake.ts +19 -0
  205. package/src/interfaces/viewers/TimeSync.ts +19 -0
  206. package/src/interfaces/viewers/Transaction.ts +9 -0
  207. package/src/interfaces/viewers/TransferBalance.ts +29 -0
  208. package/src/interfaces/viewers/index.ts +14 -0
  209. package/src/model/ChainStake/ChainStakeRead.ts +2 -1
  210. package/src/model/summary.ts +3 -2
  211. package/src/provider/TransactionHelper.ts +14 -0
  212. package/src/provider/TransactionSubmitter.ts +26 -0
  213. package/src/provider/XyoClient.ts +21 -0
  214. package/src/provider/XyoConnection.ts +55 -0
  215. package/src/provider/XyoDataLake.ts +43 -0
  216. package/src/provider/XyoGateway.ts +21 -0
  217. package/src/provider/XyoGatewayHelpers.ts +30 -0
  218. package/src/provider/XyoNetwork.ts +6 -0
  219. package/src/provider/XyoRunner.ts +7 -0
  220. package/src/provider/XyoSigner.ts +29 -0
  221. package/src/provider/XyoViewer.ts +17 -0
  222. package/src/provider/XyoWallet.ts +15 -0
  223. package/src/provider/index.ts +12 -0
  224. package/src/provider/permissions/InvokerPermission.ts +56 -0
  225. package/src/provider/permissions/XyoPermissions.ts +40 -0
  226. package/src/provider/permissions/index.ts +2 -0
  227. package/src/services/AccountBalanceService.ts +22 -0
  228. package/src/services/AccountTransfersService.ts +12 -0
  229. package/src/services/BlockProducerService.ts +10 -0
  230. package/src/services/BlockRewardService.ts +8 -0
  231. package/src/services/BlockRewardServiceV2.ts +8 -0
  232. package/src/services/Chain/BaseChainService.ts +7 -0
  233. package/src/services/Chain/ChainHeadService.ts +7 -0
  234. package/src/services/Chain/ChainService.ts +6 -0
  235. package/src/services/Chain/index.ts +4 -0
  236. package/src/services/Chain/interfaces/ChainContractViewer.ts +5 -0
  237. package/src/services/Chain/interfaces/ChainStakeViewer.ts +6 -0
  238. package/src/services/Chain/interfaces/ChainStaker.ts +5 -0
  239. package/src/services/Chain/interfaces/index.ts +3 -0
  240. package/src/services/ChainIterator/ChainIteratorService.ts +45 -0
  241. package/src/services/ChainIterator/ChainIteratorServiceEventData.ts +13 -0
  242. package/src/services/ChainIterator/index.ts +2 -0
  243. package/src/services/Election.ts +15 -0
  244. package/src/services/NetworkStakeService.ts +4 -0
  245. package/src/services/Params.ts +11 -0
  246. package/src/services/PendingTransactionsService.ts +8 -0
  247. package/src/services/Service.ts +5 -0
  248. package/src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts +43 -0
  249. package/src/services/StakeIntentService/StakeIntentService.ts +36 -0
  250. package/src/services/StakeIntentService/index.ts +2 -0
  251. package/src/services/StepStakeService.ts +4 -0
  252. package/src/services/TimeSyncService.ts +6 -0
  253. package/src/services/index.ts +14 -0
  254. package/src/transaction/confirmSubmittedTransaction.ts +3 -3
  255. package/src/validation/block/BlockValidationFunction.ts +9 -0
  256. package/src/validation/block/HydratedBlockStateValidationFunction.ts +24 -0
  257. package/src/validation/block/HydratedBlockValidationFunction.ts +15 -0
  258. package/src/validation/block/error.spec.ts +20 -0
  259. package/src/validation/block/error.ts +46 -0
  260. package/src/validation/block/index.ts +4 -0
  261. package/src/validation/index.ts +1 -0
@@ -0,0 +1,69 @@
1
+ import type { Address } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+ import type { StepIdentity, StepIdentityString } from '@xyo-network/xl1-protocol'
4
+
5
+ export interface NetworkStakeStepAddressRewardViewInterface {
6
+ // the step rewards for a specific network stakers for all of history
7
+ networkStakeStepRewardAddressHistory(address: Address): Promisable<Record<Address, bigint>>
8
+
9
+ // the step rewards for a specific network stakers for a given step and block
10
+ networkStakeStepRewardAddressReward(context: StepIdentity, address: Address): Promisable<Record<Address, bigint>>
11
+
12
+ // the shares for a specific network staker for a given step and block
13
+ networkStakeStepRewardAddressShare(context: StepIdentity, address: Address): Promisable<[/* address shares */bigint, /* total shares */bigint]>
14
+
15
+ // estimate the current reward weight for a given address at a given step
16
+ networkStakeStepRewardWeightForAddress(context: StepIdentity, address: Address): Promisable<bigint>
17
+ }
18
+
19
+ export interface NetworkStakeStepPoolRewardViewInterface {
20
+
21
+ // all the step rewards for all the network stakers for a given step and block
22
+ networkStakeStepRewardPoolRewards(context: StepIdentity): Promisable<Record<Address, bigint>>
23
+
24
+ // all the shares for all the network stakers for a given step and block
25
+ networkStakeStepRewardPoolShares(context: StepIdentity): Promisable<Record<Address, bigint>>
26
+ }
27
+
28
+ export interface NetworkStakeStepRewardPositionViewInterface {
29
+ // estimate the current weight for a given position at a given step
30
+ networkStakeStepRewardPositionWeight(context: StepIdentity, position: number): Promisable<bigint>
31
+
32
+ // estimate the potential loss for removing a given position at a given step
33
+ networkStakeStepRewardPotentialPositionLoss(context: StepIdentity, position: number): Promisable<bigint>
34
+ }
35
+
36
+ export interface NetworkStakeStepRewardViewInterface extends
37
+ NetworkStakeStepPoolRewardViewInterface,
38
+ NetworkStakeStepAddressRewardViewInterface,
39
+ NetworkStakeStepRewardPositionViewInterface
40
+ {
41
+ networkStakeStepRewardClaimedByAddress(address: Address): Promisable<bigint>
42
+
43
+ // the share & total rewards for a given position
44
+ networkStakeStepRewardForPosition(position: number, range: [number, number]): Promisable<[bigint, bigint]>
45
+
46
+ // estimate the total possible block rewards for a given step
47
+ networkStakeStepRewardForStep(context: StepIdentity): Promisable<bigint>
48
+
49
+ // the share & total rewards for a given step and block for a given position
50
+ networkStakeStepRewardForStepForPosition(context: StepIdentity, position: number): Promisable<[bigint, bigint]>
51
+
52
+ // the predictable random number for a given step and block
53
+ networkStakeStepRewardRandomizer(context: StepIdentity): Promisable<bigint>
54
+
55
+ // the total number of stakers for a given step and block
56
+ networkStakeStepRewardStakerCount(context: StepIdentity): Promisable<number>
57
+
58
+ networkStakeStepRewardUnclaimedByAddress(address: Address): Promisable<bigint>
59
+
60
+ // the share & total rewards for a given position for each step in range
61
+ networkStakeStepRewardsForPosition(position: number,
62
+ range: [number, number]): Promisable<Record<StepIdentityString, [bigint, bigint]>>
63
+
64
+ // the total rewards for a given range
65
+ networkStakeStepRewardsForRange(range: [number, number]): Promisable<bigint>
66
+
67
+ // the total rewards for a given range and step level
68
+ networkStakeStepRewardsForStepLevel(stepLevel: number, range: [number, number]): Promisable<bigint>
69
+ }
@@ -0,0 +1,12 @@
1
+ import type { Promisable } from '@xylabs/promise'
2
+
3
+ import type { StepRewardsViewer } from './StepRewardsViewer.ts'
4
+
5
+ export interface NetworkStakeViewerMethods {
6
+ /** @returns the active stake and the number of active validators [active, block] */
7
+ active(blockNumber?: number): Promisable<[bigint, number]>
8
+ }
9
+
10
+ export interface NetworkStakeViewer extends NetworkStakeViewerMethods {
11
+ stepRewards?: StepRewardsViewer
12
+ }
@@ -0,0 +1,2 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
+ export type RecordKeyType<T = keyof any> = T extends keyof any ? T : never
@@ -0,0 +1,7 @@
1
+ import type { AttoXL1 } from '@xyo-network/xl1-protocol'
2
+
3
+ import type { RecordKeyType } from './RecordKeyType.ts'
4
+ import type { RewardsViewerMethodsTemplate } from './RewardsViewerMethodsTemplate.ts'
5
+
6
+ export interface RewardsByIndexViewerMethodsTemplate<TOptions, TResultIndex extends RecordKeyType>
7
+ extends RewardsViewerMethodsTemplate<TOptions, Record<TResultIndex, AttoXL1>> {}
@@ -0,0 +1,7 @@
1
+ import type { RewardsByIndexViewerMethodsTemplate } from './RewardsByIndexViewerMethodsTemplate.ts'
2
+ import type { RewardsByPositionViewerOptions } from './RewardsViewerOptions.ts'
3
+
4
+ // Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
5
+
6
+ export interface RewardsByPositionViewerMethods extends RewardsByIndexViewerMethodsTemplate<RewardsByPositionViewerOptions, number> {}
7
+ export interface RewardsByPositionViewer extends RewardsByPositionViewerMethods {}
@@ -0,0 +1,9 @@
1
+ import type { Address } from '@xylabs/hex'
2
+
3
+ import type { RewardsByIndexViewerMethodsTemplate } from './RewardsByIndexViewerMethodsTemplate.ts'
4
+ import type { RewardsByStakerViewerOptions } from './RewardsViewerOptions.ts'
5
+
6
+ // Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
7
+
8
+ export interface RewardsByStakerViewerMethods extends RewardsByIndexViewerMethodsTemplate<RewardsByStakerViewerOptions, Address> {}
9
+ export interface RewardsByStakerViewer extends RewardsByStakerViewerMethods {}
@@ -0,0 +1,9 @@
1
+ import type { StepIdentityString } from '@xyo-network/xl1-protocol'
2
+
3
+ import type { RewardsByIndexViewerMethodsTemplate } from './RewardsByIndexViewerMethodsTemplate.ts'
4
+ import type { RewardsByStepViewerOptions } from './RewardsViewerOptions.ts'
5
+
6
+ // Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
7
+
8
+ export interface RewardsByStepViewerMethods extends RewardsByIndexViewerMethodsTemplate<RewardsByStepViewerOptions, StepIdentityString> {}
9
+ export interface RewardsByStepViewer extends RewardsByStepViewerMethods {}
@@ -0,0 +1,9 @@
1
+ import type { AttoXL1 } from '@xyo-network/xl1-protocol'
2
+
3
+ import type { RewardsViewerMethodsTemplate } from './RewardsViewerMethodsTemplate.ts'
4
+ import type { RewardsRangeOptions } from './RewardsViewerOptions.ts'
5
+
6
+ // Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
7
+
8
+ export interface RewardsTotalViewerMethods extends RewardsViewerMethodsTemplate<RewardsRangeOptions, AttoXL1> {}
9
+ export interface RewardsTotalViewer extends RewardsTotalViewerMethods {}
@@ -0,0 +1,9 @@
1
+ import type { Promisable } from '@xylabs/promise'
2
+
3
+ export interface RewardsViewerMethodsTemplate<TOptions, TResult> {
4
+ bonus(options?: TOptions): Promisable<TResult>
5
+ claimed(options?: TOptions): Promisable<TResult>
6
+ earned(options?: TOptions): Promisable<TResult>
7
+ total(options?: TOptions): Promisable<TResult>
8
+ unclaimed(options?: TOptions): Promisable<TResult>
9
+ }
@@ -0,0 +1,18 @@
1
+ import type { Address } from '@xylabs/hex'
2
+ import type { BlockRange, StepIdentity } from '@xyo-network/xl1-protocol'
3
+
4
+ export interface RewardsRangeOptions {
5
+ range?: BlockRange
6
+ }
7
+
8
+ export interface RewardsByStepViewerOptions extends RewardsRangeOptions {
9
+ steps?: StepIdentity[]
10
+ }
11
+
12
+ export interface RewardsByStakerViewerOptions extends RewardsRangeOptions {
13
+ stakers?: Address[]
14
+ }
15
+
16
+ export interface RewardsByPositionViewerOptions extends RewardsRangeOptions {
17
+ positions?: number[]
18
+ }
@@ -0,0 +1,13 @@
1
+ import type { RewardsByPositionViewer } from './RewardsByPositionViewer.ts'
2
+ import type { RewardsByStakerViewer } from './RewardsByStakerViewer.ts'
3
+ import type { RewardsByStepViewer } from './RewardsByStepViewer.ts'
4
+ import type { RewardsTotalViewer } from './RewardsTotalViewer.ts'
5
+
6
+ export interface StepRewardsViewerMethods {}
7
+
8
+ export interface StepRewardsViewer extends StepRewardsViewerMethods {
9
+ position?: RewardsByPositionViewer
10
+ staker?: RewardsByStakerViewer
11
+ step?: RewardsByStepViewer
12
+ total?: RewardsTotalViewer
13
+ }
@@ -0,0 +1,42 @@
1
+ import type { Address } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+ import type { PositionId, StepIdentity } from '@xyo-network/xl1-protocol'
4
+
5
+ import type { Position } from '../Stake.ts'
6
+
7
+ export interface PagedPositionsOptions {
8
+ cursor?: PositionId
9
+ limit?: number
10
+ }
11
+
12
+ export interface PagedStakersOptions {
13
+ cursor?: Address
14
+ limit?: number
15
+ }
16
+
17
+ export interface StepStatistics {
18
+ endTime: number
19
+ startTime: number
20
+ }
21
+
22
+ export interface StepViewerMethods {
23
+
24
+ // the total number of positions for a given step
25
+ positionCount(step: StepIdentity): Promisable<number>
26
+
27
+ positions(step: StepIdentity, options?: PagedPositionsOptions): Promisable<Position[]>
28
+
29
+ // the predictable random number for a given step
30
+ randomizer(step: StepIdentity): Promisable<bigint>
31
+
32
+ // total amount staked during a given step
33
+ stake(step: StepIdentity): Promisable<bigint>
34
+
35
+ // the total number of stakers for a given step
36
+ stakerCount(step: StepIdentity): Promisable<number>
37
+
38
+ stakers(step: StepIdentity, options?: PagedStakersOptions): Promisable<Address[]>
39
+
40
+ // total weight of all stakers during a given step
41
+ weight(step: StepIdentity): Promisable<bigint>
42
+ }
@@ -0,0 +1,13 @@
1
+ export * from './NetworkStakeViewer.ts'
2
+ export * from './RecordKeyType.ts'
3
+ export * from './RewardsByIndexViewerMethodsTemplate.ts'
4
+ export * from './RewardsByPositionViewer.ts'
5
+ export * from './RewardsByStakerViewer.ts'
6
+ export * from './RewardsByStepViewer.ts'
7
+ export * from './RewardsTotalViewer.ts'
8
+ export * from './RewardsViewerMethodsTemplate.ts'
9
+ export * from './RewardsViewerOptions.ts'
10
+ export * from './StepRewardsViewer.ts'
11
+ export * from './StepViewer.ts'
12
+
13
+ // Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
@@ -0,0 +1,22 @@
1
+ import type { Address } from '@xylabs/hex'
2
+ import type { PositionId } from '@xyo-network/xl1-protocol'
3
+
4
+ export type Position = {
5
+ // the block number when the stake was added
6
+ addBlock: number
7
+ // the amount that is staked
8
+ amount: bigint
9
+ // the unique id for the stake item
10
+ id: PositionId
11
+ // the block number when the stake was removed (set to 0 if not removed)
12
+ removeBlock: number
13
+ // the address that is being staked
14
+ staked: Address
15
+ // the address that owns the stake
16
+ staker: Address
17
+ // the block number when the stake was withdrawn (set to 0 if not withdrawn)
18
+ withdrawBlock: number
19
+ }
20
+
21
+ /** @deprecated - use Position instead */
22
+ export type Stake = Position
@@ -0,0 +1,12 @@
1
+ import type { Address } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+
4
+ export interface StakeTotalsViewer {
5
+ active(): Promisable<bigint>
6
+ activeByStaked(staked: Address): Promisable<bigint>
7
+ activeByStaker(address: Address): Promisable<bigint>
8
+ pending(): Promisable<bigint>
9
+ pendingByStaker(staker: Address): Promisable<bigint>
10
+ withdrawn(): Promisable<bigint>
11
+ withdrawnByStaker(staker: Address): Promisable<bigint>
12
+ }
@@ -0,0 +1,13 @@
1
+ import type { Address } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+
4
+ import type { Position } from './Stake.ts'
5
+
6
+ export interface StakeViewer {
7
+ stakeById(id: number): Promisable<Position>
8
+ stakeByStaker(staker: Address, slot: number): Promisable<Position>
9
+ /* @deprecated use stakesByStaker */
10
+ stakedByStaker(staker: Address): Promisable<Address[]>
11
+ stakesByStaked(staked: Address): Promisable<Position[]>
12
+ stakesByStaker(staker: Address): Promisable<Position[]>
13
+ }
@@ -0,0 +1,19 @@
1
+ import type { Address } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+ import type { StepIdentity } from '@xyo-network/xl1-protocol'
4
+
5
+ export interface StepStakeViewInterface {
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
+ */
@@ -0,0 +1,19 @@
1
+ import type { Hash } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+ import type { TimeDomain, TimePayload } from '@xyo-network/xl1-protocol'
4
+
5
+ export interface TimeSyncViewInterface {
6
+ /** Convert time between different domains */
7
+ convertTime(fromDomain: TimeDomain, toDomain: TimeDomain, from: number): Promisable<number>
8
+
9
+ /** Get the current time for a given domain */
10
+ currentTime(domain: TimeDomain): Promisable<[string, number]>
11
+ }
12
+
13
+ export interface TimeSyncViewInterfaceV2 extends TimeSyncViewInterface {
14
+ /** Get the current time for a given domain */
15
+ currentTimeAndHash(domain: TimeDomain): Promisable<[number, Hash | null]>
16
+
17
+ /** Create a TimePayload with the current time from all configured domains */
18
+ currentTimePayload(): Promisable<TimePayload>
19
+ }
@@ -0,0 +1,9 @@
1
+ import type { Hash } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+ import type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'
4
+
5
+ export interface TransactionViewInterface {
6
+ transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransaction | null>
7
+ transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransaction | null>
8
+ transactionByHash(transactionHash: Hash): Promisable<SignedHydratedTransaction | null>
9
+ }
@@ -0,0 +1,29 @@
1
+ import type { Address } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+ import type { Signed } from '@xyo-network/boundwitness-model'
4
+ import type {
5
+ AttoXL1,
6
+ BlockBoundWitness, TransactionBoundWitness, Transfer,
7
+ XL1BlockRange,
8
+ } from '@xyo-network/xl1-protocol'
9
+
10
+ export type TransferBalanceHistoryItem = [
11
+ Signed<BlockBoundWitness> /* block */,
12
+ Signed<TransactionBoundWitness> | null,
13
+ Transfer, /* the actual transfer payload */
14
+ ]
15
+ export type TransferPair = [/* from */ Address, /* to */Address]
16
+
17
+ export interface TransferBalancesViewInterface {
18
+ transferBalances(address: Address[]): Promisable<Partial<Record<Address, Record<Address, AttoXL1>>>>
19
+ transferBalancesHistories(address: Address[]): Promisable<Partial<Record<Address, Record<Address, TransferBalanceHistoryItem[]>>>>
20
+ transferPairBalances(address: TransferPair[]): Promisable<Partial<Record<Address, Record<Address, AttoXL1>>>>
21
+ transferPairBalancesHistories(address: TransferPair[]): Promisable<Partial<Record<Address, Record<Address, TransferBalanceHistoryItem[]>>>>
22
+ }
23
+
24
+ export interface TransferBalanceViewInterface {
25
+ transferBalance(address: Address): Promisable<AttoXL1>
26
+ transferBalanceHistory(address: Address, range?: XL1BlockRange): Promisable<TransferBalanceHistoryItem[]>
27
+ transferPairBalance(address: TransferPair): Promisable<AttoXL1>
28
+ transferPairBalanceHistory(address: TransferPair): Promisable<TransferBalanceHistoryItem[]>
29
+ }
@@ -0,0 +1,14 @@
1
+ export * from './AccountBalance.ts'
2
+ export * from './Block.ts'
3
+ export * from './Chain.ts'
4
+ export * from './ChainContract.ts'
5
+ export * from './Fork.ts'
6
+ export * from './NetworkStakeStepReward.ts'
7
+ export * from './NetworkStakeViewer/index.ts'
8
+ export * from './Stake.ts'
9
+ export * from './StakeTotalsViewer.ts'
10
+ export * from './StakeViewer.ts'
11
+ export * from './StepStake.ts'
12
+ export * from './TimeSync.ts'
13
+ export * from './Transaction.ts'
14
+ export * from './TransferBalance.ts'
@@ -1,6 +1,7 @@
1
1
  import type { Address } from '@xylabs/hex'
2
2
  import type { Promisable } from '@xylabs/promise'
3
- import type { Position } from '@xyo-network/xl1-protocol'
3
+
4
+ import type { Position } from '../../interfaces/index.ts'
4
5
 
5
6
  export interface ChainStakeRead {
6
7
  active(time?: number): Promisable<bigint>
@@ -3,9 +3,10 @@ import type { Semaphore } from 'async-mutex'
3
3
 
4
4
  import type { MapTypeRead, MapTypeWrite } from '../map/index.ts'
5
5
  import type { BalancesStepSummary, TransfersStepSummary } from '../payloads/summary/index.ts'
6
- import type { ChainContextRead } from './index.ts'
6
+ import type { BaseContext, ChainContextRead } from './index.ts'
7
7
 
8
- export interface ChainSummaryContextBase<TPayload extends Payload, T extends (MapTypeRead<string, TPayload> | MapTypeWrite<string, TPayload>)> {
8
+ export interface ChainSummaryContextBase<TPayload extends Payload,
9
+ T extends (MapTypeRead<string, TPayload> | MapTypeWrite<string, TPayload>)> extends BaseContext {
9
10
  stepSemaphores: Semaphore[]
10
11
  summaryMap: T
11
12
  windowSize?: number
@@ -0,0 +1,14 @@
1
+ /* eslint-disable @typescript-eslint/member-ordering */
2
+ import type { Payload } from '@xyo-network/payload-model'
3
+ import type { UnsignedHydratedTransaction } from '@xyo-network/xl1-protocol'
4
+
5
+ export interface TransactionHelper {
6
+ // build tx, sign tx, send tx
7
+ addPayloadsToChain(onChain: Payload[], offChain: Payload[]): void
8
+
9
+ // sign tx, send tx
10
+ addUnsignedTransactionToChain(tx: UnsignedHydratedTransaction): void
11
+
12
+ // send tx (primitive)
13
+ addSignedTransactionToChain(tx: UnsignedHydratedTransaction): void
14
+ }
@@ -0,0 +1,26 @@
1
+ import type { Address, Hex } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+ import type { Payload } from '@xyo-network/payload-model'
4
+ import type {
5
+ AllowedBlockPayload, SignedHydratedTransaction, TransactionFeesBigInt,
6
+ } from '@xyo-network/xl1-protocol'
7
+
8
+ /** @deprecated use TransactionOptions instead */
9
+ export interface TransactionSubmitterOptions {
10
+ chain?: Hex
11
+ exp?: number
12
+ fees?: TransactionFeesBigInt
13
+ from?: Address
14
+ nbf?: number
15
+ }
16
+
17
+ /** @deprecated use XyoGatewayHelpers instead */
18
+ export interface TransactionSubmitter {
19
+ /** @deprecated use runner.broadcastTransaction */
20
+ submitTransaction(
21
+ elevatedPayloads: AllowedBlockPayload[],
22
+ additionalPayloads: Payload[],
23
+ // eslint-disable-next-line sonarjs/deprecation
24
+ options?: TransactionSubmitterOptions
25
+ ): Promisable<SignedHydratedTransaction>
26
+ }
@@ -0,0 +1,21 @@
1
+ import type { XyoPermissions } from './permissions/index.ts'
2
+ import type { XyoGatewayProvider } from './XyoGateway.ts'
3
+
4
+ export type GatewayName = string & { __gatewayName: true }
5
+
6
+ export interface XyoGatewayConfig {
7
+ name: GatewayName
8
+ }
9
+
10
+ export interface XyoRpcGatewayConfig extends XyoGatewayConfig {
11
+ dataLakeEndpoint: string
12
+ networkEndpoint: string
13
+ }
14
+
15
+ export interface XyoClient {
16
+ gateways: Readonly<Record<GatewayName, XyoGatewayProvider>>
17
+ permissions: XyoPermissions
18
+
19
+ addGateway?(providerOrConfig: XyoGatewayConfig | XyoRpcGatewayConfig | XyoGatewayProvider): Promise<XyoGatewayProvider>
20
+ removeGateway?(name: GatewayName): Promise<void>
21
+ }
@@ -0,0 +1,55 @@
1
+ import type { Address, Hex } from '@xylabs/hex'
2
+ import type { Signed } from '@xyo-network/boundwitness-model'
3
+ import type { Payload } from '@xyo-network/payload-model'
4
+ import type {
5
+ AllowedBlockPayload, TransactionBoundWitness, TransactionFeesBigInt,
6
+ } from '@xyo-network/xl1-protocol'
7
+
8
+ import type { NetworkStakeViewer } from '../interfaces/index.ts'
9
+ // eslint-disable-next-line sonarjs/deprecation
10
+ import type { TransactionSubmitter } from './TransactionSubmitter.ts'
11
+ import type { XyoDataLake, XyoDataLakeViewer } from './XyoDataLake.ts'
12
+ import type { XyoNetwork } from './XyoNetwork.ts'
13
+ import type { XyoRunner } from './XyoRunner.ts'
14
+ import type { XyoSigner } from './XyoSigner.ts'
15
+ import type { XyoViewer } from './XyoViewer.ts'
16
+ // eslint-disable-next-line sonarjs/deprecation
17
+ import type { XyoWallet } from './XyoWallet.ts'
18
+
19
+ /** @deprecated use XyoConnectionProvider instead */
20
+ // eslint-disable-next-line sonarjs/deprecation
21
+ export interface XyoConnectionProviderDeprecated extends TransactionSubmitter {
22
+
23
+ /** @deprecated - use from gateway instead */
24
+ signer: XyoSigner
25
+
26
+ /** @deprecated - use host instead */
27
+ // eslint-disable-next-line sonarjs/deprecation
28
+ wallet: XyoWallet
29
+
30
+ /** @deprecated - use submitTransaction instead */
31
+ send(
32
+ elevatedPayloads: AllowedBlockPayload[],
33
+ additionalPayloads: Payload[],
34
+ chain?: Hex,
35
+ nbf?: number,
36
+ exp?: number,
37
+ from?: Address,
38
+ fees?: TransactionFeesBigInt,
39
+ ): Promise<Signed<TransactionBoundWitness>>
40
+ }
41
+
42
+ // eslint-disable-next-line sonarjs/deprecation
43
+ export interface XyoConnection extends Partial<XyoConnectionProviderDeprecated> {
44
+ network?: XyoNetwork
45
+ networkStake?: NetworkStakeViewer
46
+ runner?: XyoRunner
47
+ storage?: XyoDataLake | XyoDataLakeViewer
48
+ viewer?: XyoViewer
49
+ }
50
+
51
+ /** @deprecated use XyoConnectionProvider */
52
+ export interface XyoConnectionProvider extends XyoConnection {}
53
+
54
+ /** @deprecated use XyoConnectionProvider */
55
+ export interface XyoProvider extends XyoConnection {}
@@ -0,0 +1,43 @@
1
+ import type { Hash } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+ import type { Payload } from '@xyo-network/payload-model'
4
+
5
+ export type DataLakeData = Payload | ArrayBuffer
6
+
7
+ export interface XyoDataLakeViewer {
8
+ // if resolves to hash payload, keep going until hitting a non-payload or maxDepth, or unable to find
9
+ fetch(hashes: Hash[], maxDepth?: number): Promisable<DataLakeData[]>
10
+ // same as fetch but never follows hash payloads
11
+ get(hashes: Hash[]): Promisable<DataLakeData[]>
12
+ // same as fetch, except returns each step in tuple containing the result and the steps
13
+ trace(hash: Hash): Promisable<[DataLakeData | undefined, Payload[]]>
14
+ }
15
+
16
+ export interface XyoDataLake extends XyoDataLakeViewer {
17
+ add(items: DataLakeData[]): Promisable<DataLakeData[]>
18
+ }
19
+
20
+ /** @deprecated use XyoDataLake instead */
21
+ export interface XyoDataLakeProvider extends XyoDataLake {
22
+ }
23
+
24
+ export const isDataLakeViewer = (value: unknown): value is XyoDataLakeViewer => {
25
+ return (
26
+ typeof value === 'object'
27
+ && value !== null
28
+ && 'fetch' in value
29
+ && typeof (value as XyoDataLakeViewer).fetch === 'function'
30
+ && 'get' in value
31
+ && typeof (value as XyoDataLakeViewer).get === 'function'
32
+ && 'trace' in value
33
+ && typeof (value as XyoDataLakeViewer).trace === 'function'
34
+ )
35
+ }
36
+
37
+ export const isDataLakeProvider = (value: unknown): value is XyoDataLake => {
38
+ return (
39
+ isDataLakeViewer(value)
40
+ && 'add' in value
41
+ && typeof (value as XyoDataLake).add === 'function'
42
+ )
43
+ }
@@ -0,0 +1,21 @@
1
+ import type { Promisable } from '@xylabs/promise'
2
+
3
+ import type { XyoConnection } from './XyoConnection.ts'
4
+ import type { XyoGatewayHelpers } from './XyoGatewayHelpers.ts'
5
+ import type { XyoSigner } from './XyoSigner.ts'
6
+
7
+ /** @deprecated use XyoConnectionConfig instead */
8
+ export interface XyoConnectionConfigDeprecated {
9
+ name: string
10
+ }
11
+
12
+ export interface XyoGatewayProvider extends Partial<XyoGatewayHelpers> {
13
+ /**
14
+ * Returns the connection provider for this gateway.
15
+ */
16
+ connection(): Promisable<XyoConnection>
17
+ /**
18
+ * Returns the signer for this gateway.
19
+ */
20
+ signer(): Promisable<XyoSigner>
21
+ }
@@ -0,0 +1,30 @@
1
+ import type {
2
+ Address, Hash, Hex,
3
+ } from '@xylabs/hex'
4
+ import type { Promisable } from '@xylabs/promise'
5
+ import type { Payload } from '@xyo-network/payload-model'
6
+ import type {
7
+ AllowedBlockPayload, TransactionBoundWitness, TransactionFeesBigInt,
8
+ } from '@xyo-network/xl1-protocol'
9
+
10
+ export interface TransactionOptions {
11
+ chain?: Hex
12
+ exp?: number
13
+ fees?: TransactionFeesBigInt
14
+ from?: Address
15
+ nbf?: number
16
+ }
17
+
18
+ export interface XyoGatewayHelpers {
19
+
20
+ addPayloadsToChain(
21
+ onChain: AllowedBlockPayload[],
22
+ offChain: Payload[],
23
+ options?: TransactionOptions
24
+ ): Promisable<[Hash, [TransactionBoundWitness, Payload[]]]>
25
+
26
+ addTransactionToChain(
27
+ tx: [TransactionBoundWitness, Payload[]],
28
+ ): Promisable<Hash>
29
+
30
+ }
@@ -0,0 +1,6 @@
1
+ import type { Promisable } from '@xylabs/promise'
2
+ import type { NetworkStatus } from '@xyo-network/xl1-protocol'
3
+
4
+ export interface XyoNetwork {
5
+ status(): Promisable<NetworkStatus>
6
+ }
@@ -0,0 +1,7 @@
1
+ import type { Hash } from '@xylabs/hex'
2
+ import type { Promisable } from '@xylabs/promise'
3
+ import type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'
4
+
5
+ export interface XyoRunner {
6
+ broadcastTransaction(transaction: SignedHydratedTransaction): Promisable<Hash>
7
+ }