@xyo-network/xl1-rpc 1.16.1 → 1.16.2

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 (240) hide show
  1. package/dist/neutral/index.mjs +26 -324
  2. package/dist/neutral/index.mjs.map +1 -1
  3. package/dist/neutral/provider/datalake/JsonRpcDataLakeViewerMethods.d.ts +3 -3
  4. package/dist/neutral/provider/datalake/JsonRpcDataLakeViewerMethods.d.ts.map +1 -1
  5. package/dist/neutral/provider/index.d.ts +0 -3
  6. package/dist/neutral/provider/index.d.ts.map +1 -1
  7. package/dist/neutral/provider/permissions/index.d.ts +0 -2
  8. package/dist/neutral/provider/permissions/index.d.ts.map +1 -1
  9. package/dist/neutral/provider/runner/index.d.ts +0 -1
  10. package/dist/neutral/provider/runner/index.d.ts.map +1 -1
  11. package/dist/neutral/provider/signer/JsonRpcXyoSigner.d.ts +2 -2
  12. package/dist/neutral/provider/signer/JsonRpcXyoSigner.d.ts.map +1 -1
  13. package/dist/neutral/provider/signer/index.d.ts +0 -1
  14. package/dist/neutral/provider/signer/index.d.ts.map +1 -1
  15. package/dist/neutral/provider/viewer/JsonRpcXyoViewer.d.ts +2 -2
  16. package/dist/neutral/provider/viewer/JsonRpcXyoViewer.d.ts.map +1 -1
  17. package/dist/neutral/spec/MemoryXyoClient.spec.d.ts.map +1 -0
  18. package/dist/neutral/spec/MemoryXyoGateway.spec.d.ts.map +1 -0
  19. package/dist/neutral/types/schema/AllRpcSchemas.d.ts +584 -3300
  20. package/dist/neutral/types/schema/AllRpcSchemas.d.ts.map +1 -1
  21. package/dist/neutral/types/schema/DataLakeViewerRpcSchema.d.ts +6 -30
  22. package/dist/neutral/types/schema/DataLakeViewerRpcSchema.d.ts.map +1 -1
  23. package/dist/neutral/types/schema/NetworkStakeViewerRpcSchemas.d.ts +2 -8
  24. package/dist/neutral/types/schema/NetworkStakeViewerRpcSchemas.d.ts.map +1 -1
  25. package/dist/neutral/types/schema/RewardsByPositionViewerRpcSchemas.d.ts +20 -78
  26. package/dist/neutral/types/schema/RewardsByPositionViewerRpcSchemas.d.ts.map +1 -1
  27. package/dist/neutral/types/schema/RewardsByStakerViewerRpcSchemas.d.ts +30 -100
  28. package/dist/neutral/types/schema/RewardsByStakerViewerRpcSchemas.d.ts.map +1 -1
  29. package/dist/neutral/types/schema/RewardsByStepViewerRpcSchemas.d.ts +30 -100
  30. package/dist/neutral/types/schema/RewardsByStepViewerRpcSchemas.d.ts.map +1 -1
  31. package/dist/neutral/types/schema/RewardsTotalViewerRpcSchemas.d.ts +20 -70
  32. package/dist/neutral/types/schema/RewardsTotalViewerRpcSchemas.d.ts.map +1 -1
  33. package/dist/neutral/types/schema/StepViewerRpcSchemas.d.ts +25 -83
  34. package/dist/neutral/types/schema/StepViewerRpcSchemas.d.ts.map +1 -1
  35. package/dist/neutral/types/schema/XyoRunnerRpcSchemas.d.ts +26 -186
  36. package/dist/neutral/types/schema/XyoRunnerRpcSchemas.d.ts.map +1 -1
  37. package/dist/neutral/types/schema/XyoSignerRpcSchemas.d.ts +60 -378
  38. package/dist/neutral/types/schema/XyoSignerRpcSchemas.d.ts.map +1 -1
  39. package/dist/neutral/types/schema/XyoViewerRpcSchemas.d.ts +495 -2727
  40. package/dist/neutral/types/schema/XyoViewerRpcSchemas.d.ts.map +1 -1
  41. package/dist/neutral/types/schema/common/Address.d.ts +1 -3
  42. package/dist/neutral/types/schema/common/Address.d.ts.map +1 -1
  43. package/dist/neutral/types/schema/common/BlockBoundWitness.d.ts +40 -302
  44. package/dist/neutral/types/schema/common/BlockBoundWitness.d.ts.map +1 -1
  45. package/dist/neutral/types/schema/common/BoundWitness.d.ts +60 -420
  46. package/dist/neutral/types/schema/common/BoundWitness.d.ts.map +1 -1
  47. package/dist/neutral/types/schema/common/HydratedBlock.d.ts +54 -422
  48. package/dist/neutral/types/schema/common/HydratedBlock.d.ts.map +1 -1
  49. package/dist/neutral/types/schema/common/HydratedTransaction.d.ts +80 -492
  50. package/dist/neutral/types/schema/common/HydratedTransaction.d.ts.map +1 -1
  51. package/dist/neutral/types/schema/common/Payload.d.ts +8 -104
  52. package/dist/neutral/types/schema/common/Payload.d.ts.map +1 -1
  53. package/dist/neutral/types/schema/common/RewardsRangeOptions.d.ts +1 -3
  54. package/dist/neutral/types/schema/common/RewardsRangeOptions.d.ts.map +1 -1
  55. package/dist/neutral/types/schema/common/Stake.d.ts +17 -53
  56. package/dist/neutral/types/schema/common/Stake.d.ts.map +1 -1
  57. package/dist/neutral/types/schema/common/TransactionBoundWitness.d.ts +28 -188
  58. package/dist/neutral/types/schema/common/TransactionBoundWitness.d.ts.map +1 -1
  59. package/dist/neutral/types/schema/common/TransactionFees.d.ts +18 -72
  60. package/dist/neutral/types/schema/common/TransactionFees.d.ts.map +1 -1
  61. package/dist/neutral/types/schema/common/Transfer.d.ts +9 -33
  62. package/dist/neutral/types/schema/common/Transfer.d.ts.map +1 -1
  63. package/dist/neutral/types/schema/common/TransferPair.d.ts +2 -6
  64. package/dist/neutral/types/schema/common/TransferPair.d.ts.map +1 -1
  65. package/dist/node/index-node.mjs +26 -324
  66. package/dist/node/index-node.mjs.map +1 -1
  67. package/dist/node/provider/datalake/JsonRpcDataLakeViewerMethods.d.ts +3 -3
  68. package/dist/node/provider/datalake/JsonRpcDataLakeViewerMethods.d.ts.map +1 -1
  69. package/dist/node/provider/index.d.ts +0 -3
  70. package/dist/node/provider/index.d.ts.map +1 -1
  71. package/dist/node/provider/permissions/index.d.ts +0 -2
  72. package/dist/node/provider/permissions/index.d.ts.map +1 -1
  73. package/dist/node/provider/runner/index.d.ts +0 -1
  74. package/dist/node/provider/runner/index.d.ts.map +1 -1
  75. package/dist/node/provider/signer/JsonRpcXyoSigner.d.ts +2 -2
  76. package/dist/node/provider/signer/JsonRpcXyoSigner.d.ts.map +1 -1
  77. package/dist/node/provider/signer/index.d.ts +0 -1
  78. package/dist/node/provider/signer/index.d.ts.map +1 -1
  79. package/dist/node/provider/viewer/JsonRpcXyoViewer.d.ts +2 -2
  80. package/dist/node/provider/viewer/JsonRpcXyoViewer.d.ts.map +1 -1
  81. package/dist/node/spec/MemoryXyoClient.spec.d.ts.map +1 -0
  82. package/dist/node/spec/MemoryXyoGateway.spec.d.ts.map +1 -0
  83. package/dist/node/types/schema/AllRpcSchemas.d.ts +584 -3300
  84. package/dist/node/types/schema/AllRpcSchemas.d.ts.map +1 -1
  85. package/dist/node/types/schema/DataLakeViewerRpcSchema.d.ts +6 -30
  86. package/dist/node/types/schema/DataLakeViewerRpcSchema.d.ts.map +1 -1
  87. package/dist/node/types/schema/NetworkStakeViewerRpcSchemas.d.ts +2 -8
  88. package/dist/node/types/schema/NetworkStakeViewerRpcSchemas.d.ts.map +1 -1
  89. package/dist/node/types/schema/RewardsByPositionViewerRpcSchemas.d.ts +20 -78
  90. package/dist/node/types/schema/RewardsByPositionViewerRpcSchemas.d.ts.map +1 -1
  91. package/dist/node/types/schema/RewardsByStakerViewerRpcSchemas.d.ts +30 -100
  92. package/dist/node/types/schema/RewardsByStakerViewerRpcSchemas.d.ts.map +1 -1
  93. package/dist/node/types/schema/RewardsByStepViewerRpcSchemas.d.ts +30 -100
  94. package/dist/node/types/schema/RewardsByStepViewerRpcSchemas.d.ts.map +1 -1
  95. package/dist/node/types/schema/RewardsTotalViewerRpcSchemas.d.ts +20 -70
  96. package/dist/node/types/schema/RewardsTotalViewerRpcSchemas.d.ts.map +1 -1
  97. package/dist/node/types/schema/StepViewerRpcSchemas.d.ts +25 -83
  98. package/dist/node/types/schema/StepViewerRpcSchemas.d.ts.map +1 -1
  99. package/dist/node/types/schema/XyoRunnerRpcSchemas.d.ts +26 -186
  100. package/dist/node/types/schema/XyoRunnerRpcSchemas.d.ts.map +1 -1
  101. package/dist/node/types/schema/XyoSignerRpcSchemas.d.ts +60 -378
  102. package/dist/node/types/schema/XyoSignerRpcSchemas.d.ts.map +1 -1
  103. package/dist/node/types/schema/XyoViewerRpcSchemas.d.ts +495 -2727
  104. package/dist/node/types/schema/XyoViewerRpcSchemas.d.ts.map +1 -1
  105. package/dist/node/types/schema/common/Address.d.ts +1 -3
  106. package/dist/node/types/schema/common/Address.d.ts.map +1 -1
  107. package/dist/node/types/schema/common/BlockBoundWitness.d.ts +40 -302
  108. package/dist/node/types/schema/common/BlockBoundWitness.d.ts.map +1 -1
  109. package/dist/node/types/schema/common/BoundWitness.d.ts +60 -420
  110. package/dist/node/types/schema/common/BoundWitness.d.ts.map +1 -1
  111. package/dist/node/types/schema/common/HydratedBlock.d.ts +54 -422
  112. package/dist/node/types/schema/common/HydratedBlock.d.ts.map +1 -1
  113. package/dist/node/types/schema/common/HydratedTransaction.d.ts +80 -492
  114. package/dist/node/types/schema/common/HydratedTransaction.d.ts.map +1 -1
  115. package/dist/node/types/schema/common/Payload.d.ts +8 -104
  116. package/dist/node/types/schema/common/Payload.d.ts.map +1 -1
  117. package/dist/node/types/schema/common/RewardsRangeOptions.d.ts +1 -3
  118. package/dist/node/types/schema/common/RewardsRangeOptions.d.ts.map +1 -1
  119. package/dist/node/types/schema/common/Stake.d.ts +17 -53
  120. package/dist/node/types/schema/common/Stake.d.ts.map +1 -1
  121. package/dist/node/types/schema/common/TransactionBoundWitness.d.ts +28 -188
  122. package/dist/node/types/schema/common/TransactionBoundWitness.d.ts.map +1 -1
  123. package/dist/node/types/schema/common/TransactionFees.d.ts +18 -72
  124. package/dist/node/types/schema/common/TransactionFees.d.ts.map +1 -1
  125. package/dist/node/types/schema/common/Transfer.d.ts +9 -33
  126. package/dist/node/types/schema/common/Transfer.d.ts.map +1 -1
  127. package/dist/node/types/schema/common/TransferPair.d.ts +2 -6
  128. package/dist/node/types/schema/common/TransferPair.d.ts.map +1 -1
  129. package/package.json +12 -15
  130. package/src/provider/connection/spec/XyoConnection.spec.ts +2 -3
  131. package/src/provider/datalake/JsonRpcDataLakeViewerMethods.ts +3 -3
  132. package/src/provider/index.ts +0 -3
  133. package/src/provider/permissions/index.ts +0 -2
  134. package/src/provider/runner/index.ts +0 -1
  135. package/src/provider/signer/JsonRpcXyoSigner.ts +2 -2
  136. package/src/provider/signer/index.ts +0 -1
  137. package/src/provider/signer/spec/RpcEngineXyoSigner.spec.ts +2 -3
  138. package/src/provider/viewer/JsonRpcXyoViewer.ts +2 -2
  139. package/src/{provider/client/spec → spec}/MemoryXyoClient.spec.ts +20 -16
  140. package/src/{provider/gateway/spec → spec}/MemoryXyoGateway.spec.ts +13 -11
  141. package/src/types/schema/DataLakeViewerRpcSchema.ts +2 -3
  142. package/src/types/schema/common/BlockBoundWitness.ts +1 -3
  143. package/dist/neutral/provider/client/MemoryXyoClient.d.ts +0 -7
  144. package/dist/neutral/provider/client/MemoryXyoClient.d.ts.map +0 -1
  145. package/dist/neutral/provider/client/index.d.ts +0 -2
  146. package/dist/neutral/provider/client/index.d.ts.map +0 -1
  147. package/dist/neutral/provider/client/spec/MemoryXyoClient.spec.d.ts.map +0 -1
  148. package/dist/neutral/provider/gateway/Abstract.d.ts +0 -12
  149. package/dist/neutral/provider/gateway/Abstract.d.ts.map +0 -1
  150. package/dist/neutral/provider/gateway/MemoryXyoGateway.d.ts +0 -10
  151. package/dist/neutral/provider/gateway/MemoryXyoGateway.d.ts.map +0 -1
  152. package/dist/neutral/provider/gateway/index.d.ts +0 -3
  153. package/dist/neutral/provider/gateway/index.d.ts.map +0 -1
  154. package/dist/neutral/provider/gateway/spec/MemoryXyoGateway.spec.d.ts.map +0 -1
  155. package/dist/neutral/provider/network/MemoryXyoNetwork.d.ts +0 -9
  156. package/dist/neutral/provider/network/MemoryXyoNetwork.d.ts.map +0 -1
  157. package/dist/neutral/provider/network/index.d.ts +0 -2
  158. package/dist/neutral/provider/network/index.d.ts.map +0 -1
  159. package/dist/neutral/provider/network/lib/FailedNetworkStatusPayloads.d.ts +0 -4
  160. package/dist/neutral/provider/network/lib/FailedNetworkStatusPayloads.d.ts.map +0 -1
  161. package/dist/neutral/provider/network/lib/StatusNetworks.d.ts +0 -10
  162. package/dist/neutral/provider/network/lib/StatusNetworks.d.ts.map +0 -1
  163. package/dist/neutral/provider/network/lib/index.d.ts +0 -3
  164. package/dist/neutral/provider/network/lib/index.d.ts.map +0 -1
  165. package/dist/neutral/provider/network/spec/XyoNetwork.spec.d.ts +0 -2
  166. package/dist/neutral/provider/network/spec/XyoNetwork.spec.d.ts.map +0 -1
  167. package/dist/neutral/provider/permissions/MemoryXyoPermissions.d.ts +0 -17
  168. package/dist/neutral/provider/permissions/MemoryXyoPermissions.d.ts.map +0 -1
  169. package/dist/neutral/provider/permissions/spec/MemoryXyoPermissions.spec.d.ts +0 -2
  170. package/dist/neutral/provider/permissions/spec/MemoryXyoPermissions.spec.d.ts.map +0 -1
  171. package/dist/neutral/provider/permissions/store/MemoryPermissions.d.ts +0 -16
  172. package/dist/neutral/provider/permissions/store/MemoryPermissions.d.ts.map +0 -1
  173. package/dist/neutral/provider/permissions/store/PermissionsStore.d.ts +0 -12
  174. package/dist/neutral/provider/permissions/store/PermissionsStore.d.ts.map +0 -1
  175. package/dist/neutral/provider/permissions/store/index.d.ts +0 -3
  176. package/dist/neutral/provider/permissions/store/index.d.ts.map +0 -1
  177. package/dist/neutral/provider/runner/MemoryXyoRunner.d.ts +0 -10
  178. package/dist/neutral/provider/runner/MemoryXyoRunner.d.ts.map +0 -1
  179. package/dist/neutral/provider/signer/MemoryXyoSigner.d.ts +0 -14
  180. package/dist/neutral/provider/signer/MemoryXyoSigner.d.ts.map +0 -1
  181. package/dist/node/provider/client/MemoryXyoClient.d.ts +0 -7
  182. package/dist/node/provider/client/MemoryXyoClient.d.ts.map +0 -1
  183. package/dist/node/provider/client/index.d.ts +0 -2
  184. package/dist/node/provider/client/index.d.ts.map +0 -1
  185. package/dist/node/provider/client/spec/MemoryXyoClient.spec.d.ts.map +0 -1
  186. package/dist/node/provider/gateway/Abstract.d.ts +0 -12
  187. package/dist/node/provider/gateway/Abstract.d.ts.map +0 -1
  188. package/dist/node/provider/gateway/MemoryXyoGateway.d.ts +0 -10
  189. package/dist/node/provider/gateway/MemoryXyoGateway.d.ts.map +0 -1
  190. package/dist/node/provider/gateway/index.d.ts +0 -3
  191. package/dist/node/provider/gateway/index.d.ts.map +0 -1
  192. package/dist/node/provider/gateway/spec/MemoryXyoGateway.spec.d.ts.map +0 -1
  193. package/dist/node/provider/network/MemoryXyoNetwork.d.ts +0 -9
  194. package/dist/node/provider/network/MemoryXyoNetwork.d.ts.map +0 -1
  195. package/dist/node/provider/network/index.d.ts +0 -2
  196. package/dist/node/provider/network/index.d.ts.map +0 -1
  197. package/dist/node/provider/network/lib/FailedNetworkStatusPayloads.d.ts +0 -4
  198. package/dist/node/provider/network/lib/FailedNetworkStatusPayloads.d.ts.map +0 -1
  199. package/dist/node/provider/network/lib/StatusNetworks.d.ts +0 -10
  200. package/dist/node/provider/network/lib/StatusNetworks.d.ts.map +0 -1
  201. package/dist/node/provider/network/lib/index.d.ts +0 -3
  202. package/dist/node/provider/network/lib/index.d.ts.map +0 -1
  203. package/dist/node/provider/network/spec/XyoNetwork.spec.d.ts +0 -2
  204. package/dist/node/provider/network/spec/XyoNetwork.spec.d.ts.map +0 -1
  205. package/dist/node/provider/permissions/MemoryXyoPermissions.d.ts +0 -17
  206. package/dist/node/provider/permissions/MemoryXyoPermissions.d.ts.map +0 -1
  207. package/dist/node/provider/permissions/spec/MemoryXyoPermissions.spec.d.ts +0 -2
  208. package/dist/node/provider/permissions/spec/MemoryXyoPermissions.spec.d.ts.map +0 -1
  209. package/dist/node/provider/permissions/store/MemoryPermissions.d.ts +0 -16
  210. package/dist/node/provider/permissions/store/MemoryPermissions.d.ts.map +0 -1
  211. package/dist/node/provider/permissions/store/PermissionsStore.d.ts +0 -12
  212. package/dist/node/provider/permissions/store/PermissionsStore.d.ts.map +0 -1
  213. package/dist/node/provider/permissions/store/index.d.ts +0 -3
  214. package/dist/node/provider/permissions/store/index.d.ts.map +0 -1
  215. package/dist/node/provider/runner/MemoryXyoRunner.d.ts +0 -10
  216. package/dist/node/provider/runner/MemoryXyoRunner.d.ts.map +0 -1
  217. package/dist/node/provider/signer/MemoryXyoSigner.d.ts +0 -14
  218. package/dist/node/provider/signer/MemoryXyoSigner.d.ts.map +0 -1
  219. package/src/provider/client/MemoryXyoClient.ts +0 -14
  220. package/src/provider/client/index.ts +0 -1
  221. package/src/provider/gateway/Abstract.ts +0 -53
  222. package/src/provider/gateway/MemoryXyoGateway.ts +0 -22
  223. package/src/provider/gateway/index.ts +0 -2
  224. package/src/provider/network/MemoryXyoNetwork.ts +0 -48
  225. package/src/provider/network/index.ts +0 -1
  226. package/src/provider/network/lib/FailedNetworkStatusPayloads.ts +0 -14
  227. package/src/provider/network/lib/StatusNetworks.ts +0 -27
  228. package/src/provider/network/lib/index.ts +0 -2
  229. package/src/provider/network/spec/XyoNetwork.spec.ts +0 -77
  230. package/src/provider/permissions/MemoryXyoPermissions.ts +0 -82
  231. package/src/provider/permissions/spec/MemoryXyoPermissions.spec.ts +0 -93
  232. package/src/provider/permissions/store/MemoryPermissions.ts +0 -32
  233. package/src/provider/permissions/store/PermissionsStore.ts +0 -15
  234. package/src/provider/permissions/store/index.ts +0 -2
  235. package/src/provider/runner/MemoryXyoRunner.ts +0 -23
  236. package/src/provider/signer/MemoryXyoSigner.ts +0 -49
  237. /package/dist/neutral/{provider/client/spec → spec}/MemoryXyoClient.spec.d.ts +0 -0
  238. /package/dist/neutral/{provider/gateway/spec → spec}/MemoryXyoGateway.spec.d.ts +0 -0
  239. /package/dist/node/{provider/client/spec → spec}/MemoryXyoClient.spec.d.ts +0 -0
  240. /package/dist/node/{provider/gateway/spec → spec}/MemoryXyoGateway.spec.d.ts +0 -0
@@ -1,48 +0,0 @@
1
- import { isUndefined } from '@xylabs/typeof'
2
- import type {
3
- GatewayName,
4
- NetworkStatus,
5
- } from '@xyo-network/xl1-protocol'
6
- import { isNetworkStatus } from '@xyo-network/xl1-protocol'
7
- import type { XyoNetwork } from '@xyo-network/xl1-protocol-sdk'
8
- import axios from 'axios'
9
-
10
- import {
11
- errorStatus, StatusNetworks, unknownStatus,
12
- } from './lib/index.ts'
13
-
14
- export class MemoryXyoNetwork implements XyoNetwork {
15
- protected readonly _networkId: GatewayName
16
-
17
- constructor(networkId: GatewayName) {
18
- this._networkId = networkId
19
- }
20
-
21
- async status(): Promise<NetworkStatus> {
22
- const statusNetwork = StatusNetworks[this._networkId]
23
- if (isUndefined(statusNetwork)) {
24
- throw new Error(`Unknown status network ID: ${this._networkId}`)
25
- }
26
-
27
- return await this.makeRequest(statusNetwork.statusUrl)
28
- }
29
-
30
- private async makeRequest(url: string): Promise<NetworkStatus> {
31
- try {
32
- const response = await axios.get(url)
33
- if (isNetworkStatus(response.data)) {
34
- return response.data
35
- } else {
36
- if (response.status === 200) {
37
- console.error('Unknown network status response:', response.data)
38
-
39
- return unknownStatus
40
- }
41
- return errorStatus
42
- }
43
- } catch (error) {
44
- console.error('Error fetching network status:', error)
45
- return errorStatus
46
- }
47
- }
48
- }
@@ -1 +0,0 @@
1
- export * from './MemoryXyoNetwork.ts'
@@ -1,14 +0,0 @@
1
- import type { NetworkStatus } from '@xyo-network/xl1-protocol'
2
- import { NetworkStatusSchema } from '@xyo-network/xl1-protocol'
3
-
4
- export const unknownStatus: NetworkStatus = {
5
- description: 'Unknown Network Status',
6
- schema: NetworkStatusSchema,
7
- state: 'unknown',
8
- }
9
-
10
- export const errorStatus: NetworkStatus = {
11
- description: 'Error Fetching Network Status',
12
- schema: NetworkStatusSchema,
13
- state: 'unknown',
14
- }
@@ -1,27 +0,0 @@
1
- import type { GatewayName } from '@xyo-network/xl1-protocol'
2
-
3
- export type StatusNetwork = {
4
- id: GatewayName
5
- statusUrl: string
6
- }
7
-
8
- export const MainNetworkStats: StatusNetwork = {
9
- id: 'mainnet' as GatewayName,
10
- statusUrl: 'https://xyo.network/chain-network-status-mainnet.json',
11
- }
12
-
13
- export const SequenceNetworkStats: StatusNetwork = {
14
- id: 'sequence' as GatewayName,
15
- statusUrl: 'https://beta.xyo.network/chain-network-status-sequence.json',
16
- }
17
-
18
- export const LocalNetworkStats: StatusNetwork = {
19
- id: 'local' as GatewayName,
20
- statusUrl: 'http://localhost:3002/chain-network-status-local.json',
21
- }
22
-
23
- export const StatusNetworks: Record<GatewayName, StatusNetwork> = {
24
- ['mainnet' as GatewayName]: MainNetworkStats,
25
- ['sequence' as GatewayName]: SequenceNetworkStats,
26
- ['local' as GatewayName]: LocalNetworkStats,
27
- }
@@ -1,2 +0,0 @@
1
- export * from './FailedNetworkStatusPayloads.ts'
2
- export * from './StatusNetworks.ts'
@@ -1,77 +0,0 @@
1
- import type { NetworkId } from '@xyo-network/xl1-protocol'
2
- import { NetworkStatusSchema } from '@xyo-network/xl1-protocol'
3
- import axios from 'axios'
4
- import type { Mocked } from 'vitest'
5
- import {
6
- beforeEach, describe, expect, it, vitest,
7
- } from 'vitest'
8
-
9
- import {
10
- errorStatus, StatusNetworks, unknownStatus,
11
- } from '../lib/index.ts'
12
- import { MemoryXyoNetwork } from '../MemoryXyoNetwork.ts'
13
-
14
- vitest.mock('axios')
15
- const mockedAxios = axios as Mocked<typeof axios>
16
-
17
- describe('MemoryXyoNetwork', () => {
18
- const mockNetworkStatus = {
19
- description: 'Mock Network Status',
20
- schema: NetworkStatusSchema,
21
- state: 'active',
22
- }
23
-
24
- const networks = Object.values(StatusNetworks)
25
-
26
- beforeEach(() => {
27
- vitest.clearAllMocks()
28
- })
29
-
30
- for (const { id, statusUrl } of networks) {
31
- it(`should fetch the ${id} status successfully`, async () => {
32
- mockedAxios.get.mockResolvedValueOnce({ data: mockNetworkStatus })
33
-
34
- const network = new MemoryXyoNetwork(id)
35
- const status = await network.status()
36
-
37
- expect(mockedAxios.get).toHaveBeenCalledWith(statusUrl)
38
- expect(status).toEqual(mockNetworkStatus)
39
- })
40
-
41
- it(`should return unknownStatus for invalid response data on ${id}`, async () => {
42
- mockedAxios.get.mockResolvedValueOnce({ data: { invalid: 'data' }, status: 200 })
43
-
44
- const network = new MemoryXyoNetwork(id)
45
- const status = await network.status()
46
-
47
- expect(mockedAxios.get).toHaveBeenCalledWith(statusUrl)
48
- expect(status).toEqual(unknownStatus)
49
- })
50
-
51
- it(`should return errorStatus for non-200 response on ${id}`, async () => {
52
- mockedAxios.get.mockResolvedValueOnce({ data: {}, status: 500 })
53
-
54
- const network = new MemoryXyoNetwork(id)
55
- const status = await network.status()
56
-
57
- expect(mockedAxios.get).toHaveBeenCalledWith(statusUrl)
58
- expect(status).toEqual(errorStatus)
59
- })
60
-
61
- it(`should return errorStatus for network errors on ${id}`, async () => {
62
- mockedAxios.get.mockRejectedValueOnce(new Error('Network error'))
63
-
64
- const network = new MemoryXyoNetwork(id)
65
- const status = await network.status()
66
-
67
- expect(mockedAxios.get).toHaveBeenCalledWith(statusUrl)
68
- expect(status).toEqual(errorStatus)
69
- })
70
- }
71
-
72
- it('should throw an error for unknown network ID', async () => {
73
- const network = new MemoryXyoNetwork('invalid' as unknown as NetworkId)
74
-
75
- await expect(network.status()).rejects.toThrow('Unknown status network ID: invalid')
76
- })
77
- })
@@ -1,82 +0,0 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import type {
3
- CaveatTypes, InvokerPermission, PermissionRequest, RequestedPermission,
4
- XyoPermissions,
5
- } from '@xyo-network/xl1-protocol-sdk'
6
-
7
- import type { Invoker, PermissionsStore } from './store/index.ts'
8
-
9
- /**
10
- * In-memory implementation of XyoPermissions for testing or ephemeral use cases.
11
- * Does not persist data beyond the lifetime of the instance.
12
- * Assumes all permission requests are granted and revocations always succeed.
13
- */
14
- export class MemoryXyoPermissions implements XyoPermissions {
15
- invoker: Invoker
16
- private _store: PermissionsStore
17
-
18
- constructor(store: PermissionsStore) {
19
- this._store = store
20
- this.invoker = store.invoker
21
- }
22
-
23
- get store(): PermissionsStore {
24
- return assertEx(this._store, () => 'Store must be defined to get permissions')
25
- }
26
-
27
- async getPermissions(): Promise<InvokerPermission[]> {
28
- return await this.store.getPermissions()
29
- }
30
-
31
- // assumed the permissions are always granted
32
- async requestPermissions(permissions: PermissionRequest[]): Promise<RequestedPermission[]> {
33
- await Promise.resolve()
34
- // Flatten PermissionRequest[] into InvokerPermission[]
35
- const newPermissions: InvokerPermission[] = []
36
- const now = Date.now()
37
- for (const req of permissions) {
38
- for (const parentCapability in req) {
39
- newPermissions.push({
40
- invoker: this.invoker,
41
- parentCapability,
42
- caveats: Object.entries(req[parentCapability]).map(([type, value]) => ({ type: type as CaveatTypes, value })),
43
- date: now,
44
- })
45
- }
46
- }
47
-
48
- // Update or add permissions in the store
49
- const existingPermissions = await this.getPermissions()
50
- for (const perm of newPermissions) {
51
- const idx = existingPermissions.findIndex(
52
- p => p.invoker === perm.invoker && p.parentCapability === perm.parentCapability,
53
- )
54
- if (idx === -1) {
55
- existingPermissions.push(perm)
56
- } else {
57
- existingPermissions[idx] = perm
58
- }
59
- }
60
- await this.store.setPermissions(existingPermissions)
61
-
62
- // Return the granted permissions in RequestedPermission shape
63
- return newPermissions.map(({ parentCapability, date }) => ({ parentCapability, date }))
64
- }
65
-
66
- // Assumes the permissions are always revoked
67
- async revokePermissions(permissions: PermissionRequest): Promise<RequestedPermission[]> {
68
- const existingPermissions = await this.getPermissions()
69
- const revoked: RequestedPermission[] = []
70
- for (const parentCapability in permissions) {
71
- const idx = existingPermissions.findIndex(
72
- p => p.invoker === this.invoker && p.parentCapability === parentCapability,
73
- )
74
- if (idx !== -1) {
75
- const removed = existingPermissions.splice(idx, 1)[0]
76
- revoked.push({ parentCapability: removed.parentCapability, date: removed.date })
77
- }
78
- }
79
- await this.store.setPermissions(existingPermissions)
80
- return revoked
81
- }
82
- }
@@ -1,93 +0,0 @@
1
- import type { PermissionRequest } from '@xyo-network/xl1-protocol-sdk'
2
- import {
3
- beforeEach, describe, expect, it,
4
- } from 'vitest'
5
-
6
- import { MemoryXyoPermissions } from '../MemoryXyoPermissions.ts'
7
- import { MemoryPermissionsStore } from '../store/index.ts'
8
-
9
- describe('MemoryXyoPermissions', () => {
10
- const invoker = 'https://example.com'
11
- const parentCapability = 'xyoViewer_chainId'
12
- let memoryPermissions: MemoryXyoPermissions
13
-
14
- // Helper to build PermissionRequest
15
- const buildPermissionRequest = (cap: string, caveats: Record<string, unknown> = {}) =>
16
- ({ [cap]: caveats }) as PermissionRequest
17
-
18
- beforeEach(() => {
19
- memoryPermissions = new MemoryXyoPermissions(new MemoryPermissionsStore(invoker))
20
- })
21
-
22
- it('returns an empty list initially', async () => {
23
- const permissions = await memoryPermissions.getPermissions()
24
- expect(permissions).toEqual([])
25
- })
26
-
27
- it('adds and retrieves a permission', async () => {
28
- const req = buildPermissionRequest(parentCapability)
29
- const result = await memoryPermissions.requestPermissions([req])
30
- expect(Array.isArray(result)).toBe(true)
31
- expect(result.length).toBe(1)
32
- expect(result[0].parentCapability).toBe(parentCapability)
33
- expect(typeof result[0].date).toBe('number')
34
-
35
- const permissions = await memoryPermissions.getPermissions()
36
- expect(permissions.length).toBe(1)
37
- expect(permissions[0].parentCapability).toBe(parentCapability)
38
- expect(permissions[0].invoker).toBe(invoker)
39
- expect(typeof permissions[0].date).toBe('number')
40
- })
41
-
42
- it('replaces an existing permission with the same key', async () => {
43
- const req = buildPermissionRequest(parentCapability)
44
- await memoryPermissions.requestPermissions([req])
45
- const originalDate = (await memoryPermissions.getPermissions())[0].date
46
-
47
- await new Promise(r => setTimeout(r, 5)) // ensure timestamp difference
48
- await memoryPermissions.requestPermissions([req])
49
- const updatedDate = (await memoryPermissions.getPermissions())[0].date
50
-
51
- expect(updatedDate).toBeGreaterThan(originalDate!)
52
- })
53
-
54
- it('revokes a previously granted permission', async () => {
55
- const req = buildPermissionRequest(parentCapability)
56
- await memoryPermissions.requestPermissions([req])
57
- expect((await memoryPermissions.getPermissions()).length).toBe(1)
58
-
59
- const result = await memoryPermissions.revokePermissions(req)
60
- expect(Array.isArray(result)).toBe(true)
61
- expect(result.length).toBe(1)
62
- expect(result[0].parentCapability).toBe(parentCapability)
63
-
64
- const permissions = await memoryPermissions.getPermissions()
65
- expect(permissions).toEqual([])
66
- })
67
-
68
- it('revoking a non-existent permission does nothing and returns empty array', async () => {
69
- const req = buildPermissionRequest(parentCapability)
70
- const result = await memoryPermissions.revokePermissions(req)
71
- expect(result).toEqual([])
72
- expect(await memoryPermissions.getPermissions()).toEqual([])
73
- })
74
-
75
- it('can handle multiple permissions from different invokers', async () => {
76
- const memoryPermissionsA = new MemoryXyoPermissions(new MemoryPermissionsStore('https://a.com'))
77
- const memoryPermissionsB = new MemoryXyoPermissions(new MemoryPermissionsStore('https://b.com'))
78
- const reqA1 = buildPermissionRequest('xyo_1')
79
- const reqA2 = buildPermissionRequest('xyo_3')
80
- const reqB = buildPermissionRequest('xyo_2')
81
-
82
- await memoryPermissionsA.requestPermissions([reqA1, reqA2])
83
- await memoryPermissionsB.requestPermissions([reqB])
84
-
85
- const resultsA = await memoryPermissionsA.getPermissions()
86
- const resultsB = await memoryPermissionsB.getPermissions()
87
-
88
- expect(resultsA.length).toBe(2)
89
- expect(resultsB.length).toBe(1)
90
- expect(resultsA.map(p => p.parentCapability).toSorted((a, b) => a.localeCompare(b))).toEqual(['xyo_1', 'xyo_3'])
91
- expect(resultsB[0].parentCapability).toBe('xyo_2')
92
- })
93
- })
@@ -1,32 +0,0 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import type { InvokerPermission } from '@xyo-network/xl1-protocol-sdk'
3
-
4
- import type { Invoker, PermissionsStore } from './PermissionsStore.ts'
5
-
6
- /**
7
- * In-memory implementation of XyoPermissions for testing or ephemeral use cases.
8
- * Does not persist data beyond the lifetime of the instance.
9
- * Assumes all permission requests are granted and revocations always succeed.
10
- */
11
- export class MemoryPermissionsStore implements PermissionsStore {
12
- private _invoker: Invoker
13
- private permissions: InvokerPermission[] = []
14
-
15
- constructor(invoker: Invoker) {
16
- this._invoker = invoker
17
- }
18
-
19
- get invoker(): Invoker {
20
- return assertEx(this._invoker, () => 'Invoker must be defined to get permissions')
21
- }
22
-
23
- async getPermissions(): Promise<InvokerPermission[]> {
24
- await Promise.resolve()
25
- return this.permissions
26
- }
27
-
28
- async setPermissions(permissions: InvokerPermission[]): Promise<void> {
29
- await Promise.resolve()
30
- this.permissions = permissions
31
- }
32
- }
@@ -1,15 +0,0 @@
1
- import type { InvokerPermission, PermissionsGetHandler } from '@xyo-network/xl1-protocol-sdk'
2
-
3
- export type Invoker = string
4
- export type ParentCapability = string
5
- /**
6
- * Interface for a permissions store that abstracts away the storage medium.
7
- * (i.e. in-memory, browser storage, database, etc.)
8
- */
9
- export interface PermissionsStore extends PermissionsGetHandler {
10
- // The invoker associated with this permissions store
11
- readonly invoker: Invoker
12
- // Retrieve all permissions associated with the invoker.
13
- // Store or update permissions for the invoker
14
- setPermissions(permissions: InvokerPermission[]): Promise<void>
15
- }
@@ -1,2 +0,0 @@
1
- export * from './MemoryPermissions.ts'
2
- export * from './PermissionsStore.ts'
@@ -1,23 +0,0 @@
1
- import type { Hash } from '@xylabs/hex'
2
- import { MemoryArchivist } from '@xyo-network/archivist-memory'
3
- import { PayloadBuilder } from '@xyo-network/payload-builder'
4
- import type { SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-protocol'
5
- import type { XyoRunner } from '@xyo-network/xl1-protocol-sdk'
6
- import { flattenHydratedTransaction } from '@xyo-network/xl1-protocol-sdk'
7
-
8
- export class MemoryXyoRunner implements XyoRunner {
9
- protected _archivist: MemoryArchivist | undefined
10
-
11
- async broadcastTransaction(transaction: SignedHydratedTransactionWithStorageMeta): Promise<Hash> {
12
- const archivist = await this.getArchivist()
13
- await archivist.insert(flattenHydratedTransaction(transaction))
14
- return await PayloadBuilder.hash(transaction[0])
15
- }
16
-
17
- protected async getArchivist(): Promise<MemoryArchivist> {
18
- if (!this._archivist) {
19
- this._archivist = await MemoryArchivist.create({ account: 'random' })
20
- }
21
- return this._archivist
22
- }
23
- }
@@ -1,49 +0,0 @@
1
- import type { Address } from '@xylabs/hex'
2
- import type { AccountInstance } from '@xyo-network/account-model'
3
- import type { Signed, UnsignedBoundWitness } from '@xyo-network/boundwitness-model'
4
- import { type Payload } from '@xyo-network/payload-model'
5
- import type {
6
- AllowedBlockPayload, ChainId, TransactionBoundWitness, TransactionFeesBigInt,
7
- } from '@xyo-network/xl1-protocol'
8
- import type { XyoSigner } from '@xyo-network/xl1-protocol-sdk'
9
- import { buildTransaction, signTransaction } from '@xyo-network/xl1-protocol-sdk'
10
-
11
- export class MemoryXyoSigner implements XyoSigner {
12
- protected readonly _account: AccountInstance
13
-
14
- constructor(account: AccountInstance) {
15
- this._account = account
16
- }
17
-
18
- address(): Address {
19
- return this._account.address
20
- }
21
-
22
- async createSignedTransaction(
23
- chain: ChainId,
24
- elevatedPayloads: AllowedBlockPayload[],
25
- additionalPayloads: Payload[],
26
- nbf: number,
27
- exp: number,
28
- fees: TransactionFeesBigInt,
29
- from?: Address,
30
- ): Promise<Signed<TransactionBoundWitness>> {
31
- const fromAddress = from ?? this._account.address
32
- const transaction = await buildTransaction(
33
- chain,
34
- elevatedPayloads,
35
- additionalPayloads,
36
- this._account,
37
- nbf,
38
- exp,
39
- fromAddress,
40
- fees,
41
- )
42
- return transaction[0]
43
- }
44
-
45
- async signTransaction(tx: [UnsignedBoundWitness<TransactionBoundWitness>, Payload[]]): Promise<[Signed<TransactionBoundWitness>, Payload[]]> {
46
- const txBW = await signTransaction(tx[0], this._account)
47
- return [txBW, tx[1]]
48
- }
49
- }