@opendatalabs/vana-sdk 2.3.0 → 3.0.1-canary.b068ac6

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 (631) hide show
  1. package/README.md +76 -92
  2. package/dist/auth/errors.cjs +54 -0
  3. package/dist/auth/errors.cjs.map +1 -0
  4. package/dist/auth/errors.d.ts +26 -0
  5. package/dist/auth/errors.js +28 -0
  6. package/dist/auth/errors.js.map +1 -0
  7. package/dist/auth/pkce.cjs +100 -0
  8. package/dist/auth/pkce.cjs.map +1 -0
  9. package/dist/auth/pkce.d.ts +55 -0
  10. package/dist/auth/pkce.js +71 -0
  11. package/dist/auth/pkce.js.map +1 -0
  12. package/dist/auth/token-store.cjs +59 -0
  13. package/dist/auth/token-store.cjs.map +1 -0
  14. package/dist/auth/token-store.d.ts +61 -0
  15. package/dist/auth/token-store.js +35 -0
  16. package/dist/auth/token-store.js.map +1 -0
  17. package/dist/auth/web3-signed-builder.cjs +70 -0
  18. package/dist/auth/web3-signed-builder.cjs.map +1 -0
  19. package/dist/auth/web3-signed-builder.d.ts +47 -0
  20. package/dist/auth/web3-signed-builder.js +45 -0
  21. package/dist/auth/web3-signed-builder.js.map +1 -0
  22. package/dist/auth/web3-signed.cjs +150 -0
  23. package/dist/auth/web3-signed.cjs.map +1 -0
  24. package/dist/auth/web3-signed.d.ts +59 -0
  25. package/dist/auth/web3-signed.js +129 -0
  26. package/dist/auth/web3-signed.js.map +1 -0
  27. package/dist/chains/definitions.cjs +2 -6
  28. package/dist/chains/definitions.cjs.map +1 -1
  29. package/dist/chains/definitions.d.ts +1 -7
  30. package/dist/chains/definitions.js +2 -6
  31. package/dist/chains/definitions.js.map +1 -1
  32. package/dist/config/chains.d.ts +18 -0
  33. package/dist/config/contracts.config.cjs +7 -95
  34. package/dist/config/contracts.config.cjs.map +1 -1
  35. package/dist/config/contracts.config.d.ts +0 -54
  36. package/dist/config/contracts.config.js +6 -93
  37. package/dist/config/contracts.config.js.map +1 -1
  38. package/dist/config/default-services.cjs +0 -10
  39. package/dist/config/default-services.cjs.map +1 -1
  40. package/dist/config/default-services.d.ts +1 -20
  41. package/dist/config/default-services.js +0 -9
  42. package/dist/config/default-services.js.map +1 -1
  43. package/dist/crypto/ecies/interface.cjs +2 -0
  44. package/dist/crypto/ecies/interface.cjs.map +1 -1
  45. package/dist/crypto/ecies/interface.js +2 -0
  46. package/dist/crypto/ecies/interface.js.map +1 -1
  47. package/dist/crypto/ecies/node.cjs +6 -6
  48. package/dist/crypto/ecies/node.cjs.map +1 -1
  49. package/dist/crypto/ecies/node.js +1 -1
  50. package/dist/crypto/ecies/node.js.map +1 -1
  51. package/dist/crypto/envelope/openpgp.cjs +59 -0
  52. package/dist/crypto/envelope/openpgp.cjs.map +1 -0
  53. package/dist/crypto/envelope/openpgp.d.ts +28 -0
  54. package/dist/crypto/envelope/openpgp.js +24 -0
  55. package/dist/crypto/envelope/openpgp.js.map +1 -0
  56. package/dist/crypto/keys/derive.cjs +65 -0
  57. package/dist/crypto/keys/derive.cjs.map +1 -0
  58. package/dist/crypto/keys/derive.d.ts +45 -0
  59. package/dist/crypto/keys/derive.js +38 -0
  60. package/dist/crypto/keys/derive.js.map +1 -0
  61. package/dist/errors.cjs +10 -0
  62. package/dist/errors.cjs.map +1 -1
  63. package/dist/errors.js +10 -0
  64. package/dist/errors.js.map +1 -1
  65. package/dist/generated/abi/index.cjs +2 -37
  66. package/dist/generated/abi/index.cjs.map +1 -1
  67. package/dist/generated/abi/index.d.ts +2683 -9296
  68. package/dist/generated/abi/index.js +2 -29
  69. package/dist/generated/abi/index.js.map +1 -1
  70. package/dist/generated/addresses.cjs +5 -107
  71. package/dist/generated/addresses.cjs.map +1 -1
  72. package/dist/generated/addresses.d.ts +5 -99
  73. package/dist/generated/addresses.js +5 -105
  74. package/dist/generated/addresses.js.map +1 -1
  75. package/dist/index.browser.d.ts +24 -140
  76. package/dist/index.browser.js +32258 -114
  77. package/dist/index.browser.js.map +7 -1
  78. package/dist/index.node.cjs +32980 -160
  79. package/dist/index.node.cjs.map +7 -1
  80. package/dist/index.node.d.ts +23 -210
  81. package/dist/index.node.js +32884 -133
  82. package/dist/index.node.js.map +7 -1
  83. package/dist/platform/node.cjs +2 -2
  84. package/dist/platform/node.cjs.map +1 -1
  85. package/dist/platform/node.js +1 -1
  86. package/dist/platform/node.js.map +1 -1
  87. package/dist/protocol/data-file.cjs +56 -0
  88. package/dist/protocol/data-file.cjs.map +1 -0
  89. package/dist/protocol/data-file.d.ts +20 -0
  90. package/dist/protocol/data-file.js +30 -0
  91. package/dist/protocol/data-file.js.map +1 -0
  92. package/dist/protocol/eip712.cjs +123 -0
  93. package/dist/protocol/eip712.cjs.map +1 -0
  94. package/dist/protocol/eip712.d.ts +117 -0
  95. package/dist/protocol/eip712.js +90 -0
  96. package/dist/protocol/eip712.js.map +1 -0
  97. package/dist/protocol/gateway.cjs +226 -0
  98. package/dist/protocol/gateway.cjs.map +1 -0
  99. package/dist/protocol/gateway.d.ts +120 -0
  100. package/dist/protocol/gateway.js +202 -0
  101. package/dist/protocol/gateway.js.map +1 -0
  102. package/dist/protocol/grants.cjs +146 -0
  103. package/dist/protocol/grants.cjs.map +1 -0
  104. package/dist/protocol/grants.d.ts +31 -0
  105. package/dist/protocol/grants.js +123 -0
  106. package/dist/protocol/grants.js.map +1 -0
  107. package/dist/protocol/scopes.cjs +78 -0
  108. package/dist/protocol/scopes.cjs.map +1 -0
  109. package/dist/protocol/scopes.d.ts +13 -0
  110. package/dist/protocol/scopes.js +50 -0
  111. package/dist/protocol/scopes.js.map +1 -0
  112. package/dist/{types/atomicStore.cjs → storage/default.cjs} +9 -8
  113. package/dist/storage/default.cjs.map +1 -0
  114. package/dist/storage/default.d.ts +4 -0
  115. package/dist/storage/default.js +8 -0
  116. package/dist/storage/default.js.map +1 -0
  117. package/dist/storage/index.cjs +11 -2
  118. package/dist/storage/index.cjs.map +1 -1
  119. package/dist/storage/index.d.ts +9 -0
  120. package/dist/storage/index.js +7 -1
  121. package/dist/storage/index.js.map +1 -1
  122. package/dist/storage/providers/callback-storage.cjs +1 -0
  123. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  124. package/dist/storage/providers/callback-storage.js +1 -0
  125. package/dist/storage/providers/callback-storage.js.map +1 -1
  126. package/dist/storage/providers/dropbox.cjs +1 -0
  127. package/dist/storage/providers/dropbox.cjs.map +1 -1
  128. package/dist/storage/providers/dropbox.js +1 -0
  129. package/dist/storage/providers/dropbox.js.map +1 -1
  130. package/dist/storage/providers/google-drive.cjs +1 -0
  131. package/dist/storage/providers/google-drive.cjs.map +1 -1
  132. package/dist/storage/providers/google-drive.js +1 -0
  133. package/dist/storage/providers/google-drive.js.map +1 -1
  134. package/dist/storage/providers/ipfs.cjs +1 -0
  135. package/dist/storage/providers/ipfs.cjs.map +1 -1
  136. package/dist/storage/providers/ipfs.js +1 -0
  137. package/dist/storage/providers/ipfs.js.map +1 -1
  138. package/dist/storage/providers/pinata.cjs +1 -0
  139. package/dist/storage/providers/pinata.cjs.map +1 -1
  140. package/dist/storage/providers/pinata.js +1 -0
  141. package/dist/storage/providers/pinata.js.map +1 -1
  142. package/dist/storage/providers/r2.cjs +376 -0
  143. package/dist/storage/providers/r2.cjs.map +1 -0
  144. package/dist/storage/providers/r2.d.ts +91 -0
  145. package/dist/storage/providers/r2.js +354 -0
  146. package/dist/storage/providers/r2.js.map +1 -0
  147. package/dist/storage/providers/vana-storage.cjs +251 -0
  148. package/dist/storage/providers/vana-storage.cjs.map +1 -0
  149. package/dist/storage/providers/vana-storage.d.ts +100 -0
  150. package/dist/storage/providers/vana-storage.js +231 -0
  151. package/dist/storage/providers/vana-storage.js.map +1 -0
  152. package/dist/types/config.cjs +0 -34
  153. package/dist/types/config.cjs.map +1 -1
  154. package/dist/types/config.d.ts +1 -607
  155. package/dist/types/config.js +0 -22
  156. package/dist/types/config.js.map +1 -1
  157. package/dist/types/contracts.cjs.map +1 -1
  158. package/dist/types/contracts.d.ts +1 -1
  159. package/dist/types/index.cjs +2 -33
  160. package/dist/types/index.cjs.map +1 -1
  161. package/dist/types/index.d.ts +2 -33
  162. package/dist/types/index.js +1 -35
  163. package/dist/types/index.js.map +1 -1
  164. package/dist/types/ps-errors.cjs +91 -0
  165. package/dist/types/ps-errors.cjs.map +1 -0
  166. package/dist/types/ps-errors.d.ts +26 -0
  167. package/dist/types/ps-errors.js +66 -0
  168. package/dist/types/ps-errors.js.map +1 -0
  169. package/dist/types.cjs.map +1 -1
  170. package/dist/types.d.ts +0 -29
  171. package/dist/types.js.map +1 -1
  172. package/package.json +8 -25
  173. package/dist/client/enhancedResponse.cjs +0 -164
  174. package/dist/client/enhancedResponse.cjs.map +0 -1
  175. package/dist/client/enhancedResponse.d.ts +0 -120
  176. package/dist/client/enhancedResponse.js +0 -138
  177. package/dist/client/enhancedResponse.js.map +0 -1
  178. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +0 -7
  179. package/dist/controllers/base.cjs +0 -116
  180. package/dist/controllers/base.cjs.map +0 -1
  181. package/dist/controllers/base.d.ts +0 -94
  182. package/dist/controllers/base.js +0 -92
  183. package/dist/controllers/base.js.map +0 -1
  184. package/dist/controllers/data.cjs +0 -2633
  185. package/dist/controllers/data.cjs.map +0 -1
  186. package/dist/controllers/data.d.ts +0 -1067
  187. package/dist/controllers/data.js +0 -2626
  188. package/dist/controllers/data.js.map +0 -1
  189. package/dist/controllers/operations.cjs +0 -430
  190. package/dist/controllers/operations.cjs.map +0 -1
  191. package/dist/controllers/operations.d.ts +0 -229
  192. package/dist/controllers/operations.js +0 -406
  193. package/dist/controllers/operations.js.map +0 -1
  194. package/dist/controllers/permissions.cjs +0 -4368
  195. package/dist/controllers/permissions.cjs.map +0 -1
  196. package/dist/controllers/permissions.d.ts +0 -1411
  197. package/dist/controllers/permissions.js +0 -4344
  198. package/dist/controllers/permissions.js.map +0 -1
  199. package/dist/controllers/protocol.cjs +0 -183
  200. package/dist/controllers/protocol.cjs.map +0 -1
  201. package/dist/controllers/protocol.d.ts +0 -138
  202. package/dist/controllers/protocol.js +0 -163
  203. package/dist/controllers/protocol.js.map +0 -1
  204. package/dist/controllers/schemas.cjs +0 -678
  205. package/dist/controllers/schemas.cjs.map +0 -1
  206. package/dist/controllers/schemas.d.ts +0 -293
  207. package/dist/controllers/schemas.js +0 -654
  208. package/dist/controllers/schemas.js.map +0 -1
  209. package/dist/controllers/server.cjs +0 -643
  210. package/dist/controllers/server.cjs.map +0 -1
  211. package/dist/controllers/server.d.ts +0 -322
  212. package/dist/controllers/server.js +0 -624
  213. package/dist/controllers/server.js.map +0 -1
  214. package/dist/controllers/staking.cjs +0 -626
  215. package/dist/controllers/staking.cjs.map +0 -1
  216. package/dist/controllers/staking.d.ts +0 -457
  217. package/dist/controllers/staking.js +0 -602
  218. package/dist/controllers/staking.js.map +0 -1
  219. package/dist/core/__tests__/pollingManager.test.d.ts +0 -4
  220. package/dist/core/apiClient.cjs +0 -378
  221. package/dist/core/apiClient.cjs.map +0 -1
  222. package/dist/core/apiClient.d.ts +0 -286
  223. package/dist/core/apiClient.js +0 -359
  224. package/dist/core/apiClient.js.map +0 -1
  225. package/dist/core/generics.cjs +0 -417
  226. package/dist/core/generics.cjs.map +0 -1
  227. package/dist/core/generics.d.ts +0 -205
  228. package/dist/core/generics.js +0 -386
  229. package/dist/core/generics.js.map +0 -1
  230. package/dist/core/health.cjs +0 -289
  231. package/dist/core/health.cjs.map +0 -1
  232. package/dist/core/health.d.ts +0 -143
  233. package/dist/core/health.js +0 -265
  234. package/dist/core/health.js.map +0 -1
  235. package/dist/core/inMemoryNonceManager.cjs +0 -138
  236. package/dist/core/inMemoryNonceManager.cjs.map +0 -1
  237. package/dist/core/inMemoryNonceManager.d.ts +0 -69
  238. package/dist/core/inMemoryNonceManager.js +0 -114
  239. package/dist/core/inMemoryNonceManager.js.map +0 -1
  240. package/dist/core/nonceManager.cjs +0 -304
  241. package/dist/core/nonceManager.cjs.map +0 -1
  242. package/dist/core/nonceManager.d.ts +0 -116
  243. package/dist/core/nonceManager.js +0 -280
  244. package/dist/core/nonceManager.js.map +0 -1
  245. package/dist/core/pollingManager.cjs +0 -292
  246. package/dist/core/pollingManager.cjs.map +0 -1
  247. package/dist/core/pollingManager.d.ts +0 -120
  248. package/dist/core/pollingManager.js +0 -268
  249. package/dist/core/pollingManager.js.map +0 -1
  250. package/dist/core.cjs +0 -781
  251. package/dist/core.cjs.map +0 -1
  252. package/dist/core.d.ts +0 -496
  253. package/dist/core.js +0 -756
  254. package/dist/core.js.map +0 -1
  255. package/dist/diagnostics.cjs +0 -37
  256. package/dist/diagnostics.cjs.map +0 -1
  257. package/dist/diagnostics.d.ts +0 -24
  258. package/dist/diagnostics.js +0 -13
  259. package/dist/diagnostics.js.map +0 -1
  260. package/dist/generated/abi/DLPPerformanceImplementation.cjs +0 -1202
  261. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +0 -1
  262. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +0 -914
  263. package/dist/generated/abi/DLPPerformanceImplementation.js +0 -1178
  264. package/dist/generated/abi/DLPPerformanceImplementation.js.map +0 -1
  265. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +0 -1112
  266. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +0 -1
  267. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +0 -840
  268. package/dist/generated/abi/DLPRewardDeployerImplementation.js +0 -1088
  269. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +0 -1
  270. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +0 -612
  271. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +0 -1
  272. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +0 -451
  273. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +0 -588
  274. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +0 -1
  275. package/dist/generated/abi/DLPRewardSwapImplementation.cjs +0 -939
  276. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +0 -1
  277. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +0 -705
  278. package/dist/generated/abi/DLPRewardSwapImplementation.js +0 -915
  279. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +0 -1
  280. package/dist/generated/abi/DLPRootImplementation.cjs +0 -1644
  281. package/dist/generated/abi/DLPRootImplementation.cjs.map +0 -1
  282. package/dist/generated/abi/DLPRootImplementation.d.ts +0 -1246
  283. package/dist/generated/abi/DLPRootImplementation.js +0 -1620
  284. package/dist/generated/abi/DLPRootImplementation.js.map +0 -1
  285. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +0 -985
  286. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +0 -1
  287. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +0 -735
  288. package/dist/generated/abi/DataLiquidityPoolImplementation.js +0 -961
  289. package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +0 -1
  290. package/dist/generated/abi/SwapHelperImplementation.cjs +0 -976
  291. package/dist/generated/abi/SwapHelperImplementation.cjs.map +0 -1
  292. package/dist/generated/abi/SwapHelperImplementation.d.ts +0 -728
  293. package/dist/generated/abi/SwapHelperImplementation.js +0 -952
  294. package/dist/generated/abi/SwapHelperImplementation.js.map +0 -1
  295. package/dist/generated/abi/TeePoolImplementation.cjs +0 -1313
  296. package/dist/generated/abi/TeePoolImplementation.cjs.map +0 -1
  297. package/dist/generated/abi/TeePoolImplementation.d.ts +0 -992
  298. package/dist/generated/abi/TeePoolImplementation.js +0 -1289
  299. package/dist/generated/abi/TeePoolImplementation.js.map +0 -1
  300. package/dist/generated/event-types.cjs +0 -17
  301. package/dist/generated/event-types.cjs.map +0 -1
  302. package/dist/generated/event-types.d.ts +0 -816
  303. package/dist/generated/event-types.js +0 -1
  304. package/dist/generated/event-types.js.map +0 -1
  305. package/dist/generated/eventRegistry.cjs +0 -4512
  306. package/dist/generated/eventRegistry.cjs.map +0 -1
  307. package/dist/generated/eventRegistry.d.ts +0 -14
  308. package/dist/generated/eventRegistry.js +0 -4487
  309. package/dist/generated/eventRegistry.js.map +0 -1
  310. package/dist/generated/server/server-exports.cjs +0 -45
  311. package/dist/generated/server/server-exports.cjs.map +0 -1
  312. package/dist/generated/server/server-exports.d.ts +0 -36
  313. package/dist/generated/server/server-exports.js +0 -19
  314. package/dist/generated/server/server-exports.js.map +0 -1
  315. package/dist/generated/server/server.cjs +0 -17
  316. package/dist/generated/server/server.cjs.map +0 -1
  317. package/dist/generated/server/server.d.ts +0 -907
  318. package/dist/generated/server/server.js +0 -1
  319. package/dist/generated/server/server.js.map +0 -1
  320. package/dist/generated/subgraph.cjs +0 -1440
  321. package/dist/generated/subgraph.cjs.map +0 -1
  322. package/dist/generated/subgraph.d.ts +0 -6113
  323. package/dist/generated/subgraph.js +0 -1404
  324. package/dist/generated/subgraph.js.map +0 -1
  325. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +0 -1
  326. package/dist/lib/redisAtomicStore.cjs +0 -201
  327. package/dist/lib/redisAtomicStore.cjs.map +0 -1
  328. package/dist/lib/redisAtomicStore.d.ts +0 -120
  329. package/dist/lib/redisAtomicStore.js +0 -177
  330. package/dist/lib/redisAtomicStore.js.map +0 -1
  331. package/dist/server/relayerHandler.cjs +0 -452
  332. package/dist/server/relayerHandler.cjs.map +0 -1
  333. package/dist/server/relayerHandler.d.ts +0 -69
  334. package/dist/server/relayerHandler.js +0 -428
  335. package/dist/server/relayerHandler.js.map +0 -1
  336. package/dist/tests/abi.test.d.ts +0 -1
  337. package/dist/tests/chains-definitions.test.d.ts +0 -1
  338. package/dist/tests/core-encryption.test.d.ts +0 -1
  339. package/dist/tests/core-extended.test.d.ts +0 -1
  340. package/dist/tests/core-generics-coverage.test.d.ts +0 -1
  341. package/dist/tests/coverage-boost.test.d.ts +0 -1
  342. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +0 -1
  343. package/dist/tests/data-addfile-permissions-schema.test.d.ts +0 -1
  344. package/dist/tests/data-additional-methods.test.d.ts +0 -1
  345. package/dist/tests/data-controller-edge-cases.test.d.ts +0 -1
  346. package/dist/tests/data-ipfs-gateways.test.d.ts +0 -1
  347. package/dist/tests/data-relayer.test.d.ts +0 -1
  348. package/dist/tests/data-schema-validation.test.d.ts +0 -1
  349. package/dist/tests/data-simple-methods.test.d.ts +0 -1
  350. package/dist/tests/data-upload-owner-validation.test.d.ts +0 -1
  351. package/dist/tests/data.test.d.ts +0 -1
  352. package/dist/tests/demo-integration.test.d.ts +0 -1
  353. package/dist/tests/demo-trusted-server-integration.test.d.ts +0 -1
  354. package/dist/tests/download-relayer.test.d.ts +0 -1
  355. package/dist/tests/dual-mode-permissions.test.d.ts +0 -1
  356. package/dist/tests/dual-mode-trusted-servers.test.d.ts +0 -1
  357. package/dist/tests/encryption-correct-implementation.test.d.ts +0 -1
  358. package/dist/tests/encryption-coverage.test.d.ts +0 -1
  359. package/dist/tests/encryption-edge-cases.test.d.ts +0 -1
  360. package/dist/tests/encryption-utils-updated.test.d.ts +0 -1
  361. package/dist/tests/errors-coverage.test.d.ts +0 -1
  362. package/dist/tests/factories/mockFactory.d.ts +0 -316
  363. package/dist/tests/fakes/FakeStorageManager.d.ts +0 -200
  364. package/dist/tests/fakes/FakeStorageManager.test.d.ts +0 -1
  365. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +0 -170
  366. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +0 -1
  367. package/dist/tests/fakes/fake-pgp-port.d.ts +0 -13
  368. package/dist/tests/grantValidation-edge-cases.test.d.ts +0 -1
  369. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +0 -1
  370. package/dist/tests/helper-methods.test.d.ts +0 -1
  371. package/dist/tests/helpers/typedMocks.d.ts +0 -64
  372. package/dist/tests/index-browser.test.d.ts +0 -1
  373. package/dist/tests/index-node.test.d.ts +0 -1
  374. package/dist/tests/index.test.d.ts +0 -1
  375. package/dist/tests/mocks/platformAdapter.d.ts +0 -12
  376. package/dist/tests/new-permissions-methods.test.d.ts +0 -1
  377. package/dist/tests/no-buffer-browser.test.d.ts +0 -1
  378. package/dist/tests/permissions-grantee.test.d.ts +0 -1
  379. package/dist/tests/permissions-revoke-relayer.test.d.ts +0 -1
  380. package/dist/tests/permissions-schema-validation.test.d.ts +0 -1
  381. package/dist/tests/permissions-server-files.test.d.ts +0 -1
  382. package/dist/tests/permissions-transaction-options.test.d.ts +0 -1
  383. package/dist/tests/permissions-trust-servers.test.d.ts +0 -1
  384. package/dist/tests/permissions.test.d.ts +0 -1
  385. package/dist/tests/personal.test.d.ts +0 -1
  386. package/dist/tests/platform-browser.test.d.ts +0 -1
  387. package/dist/tests/platform-crypto-expanded.test.d.ts +0 -1
  388. package/dist/tests/platform-crypto.test.d.ts +0 -1
  389. package/dist/tests/platform-index.test.d.ts +0 -1
  390. package/dist/tests/platform-node.test.d.ts +0 -1
  391. package/dist/tests/platform-shared-utils.test.d.ts +0 -1
  392. package/dist/tests/platform-updated.test.d.ts +0 -1
  393. package/dist/tests/protocol-additional-methods.test.d.ts +0 -1
  394. package/dist/tests/protocol.test.d.ts +0 -1
  395. package/dist/tests/read-only-mode.test.d.ts +0 -1
  396. package/dist/tests/relayer-integration.test.d.ts +0 -1
  397. package/dist/tests/relayer-unified.test.d.ts +0 -1
  398. package/dist/tests/schemas.test.d.ts +0 -1
  399. package/dist/tests/server-relayer-handler.test.d.ts +0 -1
  400. package/dist/tests/signatureFormatter.test.d.ts +0 -1
  401. package/dist/tests/staking.test.d.ts +0 -1
  402. package/dist/tests/trusted-server-queries.test.d.ts +0 -1
  403. package/dist/tests/typedDataConverter.test.d.ts +0 -1
  404. package/dist/tests/types-contracts.test.d.ts +0 -1
  405. package/dist/tests/types-data.test.d.ts +0 -1
  406. package/dist/tests/types-external-apis.test.d.ts +0 -1
  407. package/dist/tests/types-generics.test.d.ts +0 -1
  408. package/dist/tests/types-permissions.test.d.ts +0 -1
  409. package/dist/tests/types-upload-params.test.d.ts +0 -1
  410. package/dist/tests/types.test.d.ts +0 -1
  411. package/dist/tests/utils-formatters.test.d.ts +0 -1
  412. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +0 -1
  413. package/dist/tests/utils-grantFiles-validation.test.d.ts +0 -1
  414. package/dist/tests/utils-grantFiles.test.d.ts +0 -1
  415. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +0 -1
  416. package/dist/tests/utils-grants.test.d.ts +0 -1
  417. package/dist/tests/utils-ipfs-additional.test.d.ts +0 -1
  418. package/dist/tests/utils-ipfs.test.d.ts +0 -4
  419. package/dist/tests/utils-schemaValidation.test.d.ts +0 -1
  420. package/dist/tests/vana.test.d.ts +0 -1
  421. package/dist/tests/wallet-crypto-compatibility.test.d.ts +0 -1
  422. package/dist/types/atomicStore.cjs.map +0 -1
  423. package/dist/types/atomicStore.d.ts +0 -236
  424. package/dist/types/atomicStore.js +0 -7
  425. package/dist/types/atomicStore.js.map +0 -1
  426. package/dist/types/blockchain.cjs +0 -17
  427. package/dist/types/blockchain.cjs.map +0 -1
  428. package/dist/types/blockchain.d.ts +0 -85
  429. package/dist/types/blockchain.js +0 -1
  430. package/dist/types/blockchain.js.map +0 -1
  431. package/dist/types/controller-context.cjs +0 -17
  432. package/dist/types/controller-context.cjs.map +0 -1
  433. package/dist/types/controller-context.d.ts +0 -68
  434. package/dist/types/controller-context.js +0 -1
  435. package/dist/types/controller-context.js.map +0 -1
  436. package/dist/types/data.cjs +0 -17
  437. package/dist/types/data.cjs.map +0 -1
  438. package/dist/types/data.d.ts +0 -763
  439. package/dist/types/data.js +0 -1
  440. package/dist/types/data.js.map +0 -1
  441. package/dist/types/external-apis.cjs +0 -61
  442. package/dist/types/external-apis.cjs.map +0 -1
  443. package/dist/types/external-apis.d.ts +0 -184
  444. package/dist/types/external-apis.js +0 -34
  445. package/dist/types/external-apis.js.map +0 -1
  446. package/dist/types/generics.cjs +0 -17
  447. package/dist/types/generics.cjs.map +0 -1
  448. package/dist/types/generics.d.ts +0 -518
  449. package/dist/types/generics.js +0 -1
  450. package/dist/types/generics.js.map +0 -1
  451. package/dist/types/operationStore.cjs +0 -17
  452. package/dist/types/operationStore.cjs.map +0 -1
  453. package/dist/types/operationStore.d.ts +0 -171
  454. package/dist/types/operationStore.js +0 -1
  455. package/dist/types/operationStore.js.map +0 -1
  456. package/dist/types/operations.cjs +0 -53
  457. package/dist/types/operations.cjs.map +0 -1
  458. package/dist/types/operations.d.ts +0 -204
  459. package/dist/types/operations.js +0 -26
  460. package/dist/types/operations.js.map +0 -1
  461. package/dist/types/options.cjs +0 -17
  462. package/dist/types/options.cjs.map +0 -1
  463. package/dist/types/options.d.ts +0 -308
  464. package/dist/types/options.js +0 -1
  465. package/dist/types/options.js.map +0 -1
  466. package/dist/types/permissions.cjs +0 -17
  467. package/dist/types/permissions.cjs.map +0 -1
  468. package/dist/types/permissions.d.ts +0 -955
  469. package/dist/types/permissions.js +0 -1
  470. package/dist/types/permissions.js.map +0 -1
  471. package/dist/types/personal.cjs +0 -17
  472. package/dist/types/personal.cjs.map +0 -1
  473. package/dist/types/personal.d.ts +0 -174
  474. package/dist/types/personal.js +0 -1
  475. package/dist/types/personal.js.map +0 -1
  476. package/dist/types/relayer.cjs +0 -17
  477. package/dist/types/relayer.cjs.map +0 -1
  478. package/dist/types/relayer.d.ts +0 -552
  479. package/dist/types/relayer.js +0 -1
  480. package/dist/types/relayer.js.map +0 -1
  481. package/dist/types/transactionResults.cjs +0 -17
  482. package/dist/types/transactionResults.cjs.map +0 -1
  483. package/dist/types/transactionResults.d.ts +0 -193
  484. package/dist/types/transactionResults.js +0 -1
  485. package/dist/types/transactionResults.js.map +0 -1
  486. package/dist/types/utils.cjs +0 -17
  487. package/dist/types/utils.cjs.map +0 -1
  488. package/dist/types/utils.d.ts +0 -771
  489. package/dist/types/utils.js +0 -1
  490. package/dist/types/utils.js.map +0 -1
  491. package/dist/utils/__tests__/chainQuery.test.d.ts +0 -1
  492. package/dist/utils/__tests__/parseTransaction.test.d.ts +0 -1
  493. package/dist/utils/__tests__/pojo-serialization.test.d.ts +0 -1
  494. package/dist/utils/__tests__/signatureCache.test.d.ts +0 -1
  495. package/dist/utils/__tests__/subgraphConsistency.test.d.ts +0 -4
  496. package/dist/utils/__tests__/subgraphPagination.test.d.ts +0 -4
  497. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +0 -1
  498. package/dist/utils/__tests__/transactionHelpers.test.d.ts +0 -1
  499. package/dist/utils/__tests__/urlResolver.test.d.ts +0 -4
  500. package/dist/utils/blockchain/registry.cjs +0 -81
  501. package/dist/utils/blockchain/registry.cjs.map +0 -1
  502. package/dist/utils/blockchain/registry.d.ts +0 -32
  503. package/dist/utils/blockchain/registry.js +0 -56
  504. package/dist/utils/blockchain/registry.js.map +0 -1
  505. package/dist/utils/blockchain/registry.test.d.ts +0 -1
  506. package/dist/utils/chainQuery.cjs +0 -107
  507. package/dist/utils/chainQuery.cjs.map +0 -1
  508. package/dist/utils/chainQuery.d.ts +0 -31
  509. package/dist/utils/chainQuery.js +0 -82
  510. package/dist/utils/chainQuery.js.map +0 -1
  511. package/dist/utils/download.cjs +0 -69
  512. package/dist/utils/download.cjs.map +0 -1
  513. package/dist/utils/download.d.ts +0 -40
  514. package/dist/utils/download.js +0 -45
  515. package/dist/utils/download.js.map +0 -1
  516. package/dist/utils/encryption.cjs +0 -176
  517. package/dist/utils/encryption.cjs.map +0 -1
  518. package/dist/utils/encryption.d.ts +0 -271
  519. package/dist/utils/encryption.js +0 -142
  520. package/dist/utils/encryption.js.map +0 -1
  521. package/dist/utils/formatters.cjs +0 -55
  522. package/dist/utils/formatters.cjs.map +0 -1
  523. package/dist/utils/formatters.d.ts +0 -118
  524. package/dist/utils/formatters.js +0 -28
  525. package/dist/utils/formatters.js.map +0 -1
  526. package/dist/utils/grantFiles.cjs +0 -181
  527. package/dist/utils/grantFiles.cjs.map +0 -1
  528. package/dist/utils/grantFiles.d.ts +0 -172
  529. package/dist/utils/grantFiles.js +0 -143
  530. package/dist/utils/grantFiles.js.map +0 -1
  531. package/dist/utils/grantValidation.cjs +0 -243
  532. package/dist/utils/grantValidation.cjs.map +0 -1
  533. package/dist/utils/grantValidation.d.ts +0 -226
  534. package/dist/utils/grantValidation.js +0 -201
  535. package/dist/utils/grantValidation.js.map +0 -1
  536. package/dist/utils/grants.cjs +0 -108
  537. package/dist/utils/grants.cjs.map +0 -1
  538. package/dist/utils/grants.d.ts +0 -148
  539. package/dist/utils/grants.js +0 -82
  540. package/dist/utils/grants.js.map +0 -1
  541. package/dist/utils/ipfs.cjs +0 -128
  542. package/dist/utils/ipfs.cjs.map +0 -1
  543. package/dist/utils/ipfs.d.ts +0 -88
  544. package/dist/utils/ipfs.js +0 -97
  545. package/dist/utils/ipfs.js.map +0 -1
  546. package/dist/utils/multicall.cjs +0 -233
  547. package/dist/utils/multicall.cjs.map +0 -1
  548. package/dist/utils/multicall.d.ts +0 -126
  549. package/dist/utils/multicall.js +0 -208
  550. package/dist/utils/multicall.js.map +0 -1
  551. package/dist/utils/parseTransactionPojo.cjs +0 -87
  552. package/dist/utils/parseTransactionPojo.cjs.map +0 -1
  553. package/dist/utils/parseTransactionPojo.d.ts +0 -31
  554. package/dist/utils/parseTransactionPojo.js +0 -63
  555. package/dist/utils/parseTransactionPojo.js.map +0 -1
  556. package/dist/utils/schemaValidation.cjs +0 -258
  557. package/dist/utils/schemaValidation.cjs.map +0 -1
  558. package/dist/utils/schemaValidation.d.ts +0 -168
  559. package/dist/utils/schemaValidation.js +0 -219
  560. package/dist/utils/schemaValidation.js.map +0 -1
  561. package/dist/utils/signatureCache.cjs +0 -192
  562. package/dist/utils/signatureCache.cjs.map +0 -1
  563. package/dist/utils/signatureCache.d.ts +0 -172
  564. package/dist/utils/signatureCache.js +0 -167
  565. package/dist/utils/signatureCache.js.map +0 -1
  566. package/dist/utils/signatureFormatter.cjs +0 -42
  567. package/dist/utils/signatureFormatter.cjs.map +0 -1
  568. package/dist/utils/signatureFormatter.d.ts +0 -36
  569. package/dist/utils/signatureFormatter.js +0 -18
  570. package/dist/utils/signatureFormatter.js.map +0 -1
  571. package/dist/utils/subgraphConsistency.cjs +0 -184
  572. package/dist/utils/subgraphConsistency.cjs.map +0 -1
  573. package/dist/utils/subgraphConsistency.d.ts +0 -65
  574. package/dist/utils/subgraphConsistency.js +0 -155
  575. package/dist/utils/subgraphConsistency.js.map +0 -1
  576. package/dist/utils/subgraphMetaCache.cjs +0 -101
  577. package/dist/utils/subgraphMetaCache.cjs.map +0 -1
  578. package/dist/utils/subgraphMetaCache.d.ts +0 -56
  579. package/dist/utils/subgraphMetaCache.js +0 -76
  580. package/dist/utils/subgraphMetaCache.js.map +0 -1
  581. package/dist/utils/subgraphPagination.cjs +0 -104
  582. package/dist/utils/subgraphPagination.cjs.map +0 -1
  583. package/dist/utils/subgraphPagination.d.ts +0 -78
  584. package/dist/utils/subgraphPagination.js +0 -78
  585. package/dist/utils/subgraphPagination.js.map +0 -1
  586. package/dist/utils/tests/multicall.test.d.ts +0 -1
  587. package/dist/utils/transactionHelpers.cjs +0 -54
  588. package/dist/utils/transactionHelpers.cjs.map +0 -1
  589. package/dist/utils/transactionHelpers.d.ts +0 -80
  590. package/dist/utils/transactionHelpers.js +0 -29
  591. package/dist/utils/transactionHelpers.js.map +0 -1
  592. package/dist/utils/typeGuards.cjs +0 -109
  593. package/dist/utils/typeGuards.cjs.map +0 -1
  594. package/dist/utils/typeGuards.d.ts +0 -138
  595. package/dist/utils/typeGuards.js +0 -74
  596. package/dist/utils/typeGuards.js.map +0 -1
  597. package/dist/utils/typedDataConverter.cjs +0 -43
  598. package/dist/utils/typedDataConverter.cjs.map +0 -1
  599. package/dist/utils/typedDataConverter.d.ts +0 -46
  600. package/dist/utils/typedDataConverter.js +0 -19
  601. package/dist/utils/typedDataConverter.js.map +0 -1
  602. package/dist/utils/urlResolver.cjs +0 -62
  603. package/dist/utils/urlResolver.cjs.map +0 -1
  604. package/dist/utils/urlResolver.d.ts +0 -56
  605. package/dist/utils/urlResolver.js +0 -37
  606. package/dist/utils/urlResolver.js.map +0 -1
  607. package/dist/utils/wallet.cjs +0 -63
  608. package/dist/utils/wallet.cjs.map +0 -1
  609. package/dist/utils/wallet.d.ts +0 -94
  610. package/dist/utils/wallet.js +0 -37
  611. package/dist/utils/wallet.js.map +0 -1
  612. package/dist/utils/withEvents.cjs +0 -44
  613. package/dist/utils/withEvents.cjs.map +0 -1
  614. package/dist/utils/withEvents.d.ts +0 -56
  615. package/dist/utils/withEvents.js +0 -18
  616. package/dist/utils/withEvents.js.map +0 -1
  617. /package/dist/{__tests__/waitForTransactionEvents.test.d.ts → auth/pkce.test.d.ts} +0 -0
  618. /package/dist/{client/__tests__/enhancedResponse.test.d.ts → auth/token-store.test.d.ts} +0 -0
  619. /package/dist/{controllers/__tests__/operations.processQueue.test.d.ts → auth/web3-signed.test.d.ts} +0 -0
  620. /package/dist/{controllers/__tests__/schemas-edge-cases.test.d.ts → crypto/envelope/openpgp.test.d.ts} +0 -0
  621. /package/dist/{controllers/data-error-handling.test.d.ts → crypto/keys/derive.test.d.ts} +0 -0
  622. /package/dist/{tests/errors.test.d.ts → errors.test.d.ts} +0 -0
  623. /package/dist/{controllers/server-additional.test.d.ts → protocol/data-file.test.d.ts} +0 -0
  624. /package/dist/{core/__tests__/health.test.d.ts → protocol/eip712.test.d.ts} +0 -0
  625. /package/dist/{core/__tests__/inMemoryNonceManager.test.d.ts → protocol/gateway.test.d.ts} +0 -0
  626. /package/dist/{core/__tests__/nonceManager.test.d.ts → protocol/grants.test.d.ts} +0 -0
  627. /package/dist/{core/core.test.d.ts → protocol/scopes.test.d.ts} +0 -0
  628. /package/dist/{core/tests/apiClient.test.d.ts → storage/tests/defaultStorage.test.d.ts} +0 -0
  629. /package/dist/{core/tests/client.test.d.ts → storage/tests/r2Storage.test.d.ts} +0 -0
  630. /package/dist/{core/tests/generics.test.d.ts → storage/tests/vanaStorage.test.d.ts} +0 -0
  631. /package/dist/{diagnostics.test.d.ts → types/ps-errors.test.d.ts} +0 -0
@@ -1,289 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var health_exports = {};
20
- __export(health_exports, {
21
- SystemHealthChecker: () => SystemHealthChecker
22
- });
23
- module.exports = __toCommonJS(health_exports);
24
- class SystemHealthChecker {
25
- config;
26
- constructor(config) {
27
- this.config = {
28
- ...config,
29
- addresses: config.addresses ?? [],
30
- staleThresholdSeconds: config.staleThresholdSeconds ?? 300
31
- };
32
- }
33
- /**
34
- * Performs a comprehensive health check of the system.
35
- *
36
- * @returns The health status of the system
37
- */
38
- async check() {
39
- const timestamp = Date.now();
40
- const errors = [];
41
- const atomicStore = await this.checkAtomicStore();
42
- if (atomicStore.status !== "healthy") {
43
- errors.push(`Atomic store ${atomicStore.status}: ${atomicStore.message}`);
44
- }
45
- const operationStore = await this.checkOperationStore();
46
- if (operationStore.status !== "healthy") {
47
- errors.push(
48
- `Operation store ${operationStore.status}: ${operationStore.message}`
49
- );
50
- }
51
- const blockchain = await this.checkBlockchain();
52
- if (blockchain.status !== "healthy") {
53
- errors.push(`Blockchain ${blockchain.status}: ${blockchain.message}`);
54
- }
55
- let nonces;
56
- if (this.config.addresses.length > 0) {
57
- nonces = await this.checkNonces();
58
- for (const nonce of nonces) {
59
- if (nonce.status !== "healthy") {
60
- errors.push(`Nonce ${nonce.status} for ${nonce.address}`);
61
- }
62
- }
63
- }
64
- const queue = await this.checkQueue();
65
- if (queue && queue.isStale) {
66
- errors.push(
67
- `Queue is stale (oldest pending: ${queue.oldestPending}s ago)`
68
- );
69
- }
70
- let status;
71
- if (errors.length === 0) {
72
- status = "healthy";
73
- } else if (atomicStore.status === "unhealthy" || operationStore.status === "unhealthy" || blockchain.status === "unhealthy") {
74
- status = "unhealthy";
75
- } else {
76
- status = "degraded";
77
- }
78
- return {
79
- status,
80
- timestamp,
81
- checks: {
82
- atomicStore,
83
- operationStore,
84
- blockchain,
85
- nonces,
86
- queue
87
- },
88
- errors: errors.length > 0 ? errors : void 0
89
- };
90
- }
91
- /**
92
- * Checks the health of the atomic store.
93
- */
94
- async checkAtomicStore() {
95
- try {
96
- const start = Date.now();
97
- const testKey = `health:check:${Date.now()}`;
98
- await this.config.atomicStore.set(testKey, "test");
99
- const value = await this.config.atomicStore.get(testKey);
100
- if (value !== "test") {
101
- return {
102
- status: "unhealthy",
103
- message: "Atomic store read/write test failed"
104
- };
105
- }
106
- if (this.config.atomicStore.delete) {
107
- await this.config.atomicStore.delete(testKey);
108
- }
109
- const latency = Date.now() - start;
110
- if (latency > 1e3) {
111
- return {
112
- status: "degraded",
113
- message: `High latency: ${latency}ms`,
114
- latency
115
- };
116
- }
117
- return {
118
- status: "healthy",
119
- latency
120
- };
121
- } catch (error) {
122
- return {
123
- status: "unhealthy",
124
- message: error instanceof Error ? error.message : "Unknown error"
125
- };
126
- }
127
- }
128
- /**
129
- * Checks the health of the operation store.
130
- */
131
- async checkOperationStore() {
132
- try {
133
- const start = Date.now();
134
- await this.config.operationStore.getQueuedOperations({ limit: 1 });
135
- const latency = Date.now() - start;
136
- if (latency > 2e3) {
137
- return {
138
- status: "degraded",
139
- message: `High latency: ${latency}ms`,
140
- latency
141
- };
142
- }
143
- return {
144
- status: "healthy",
145
- latency
146
- };
147
- } catch (error) {
148
- return {
149
- status: "unhealthy",
150
- message: error instanceof Error ? error.message : "Unknown error"
151
- };
152
- }
153
- }
154
- /**
155
- * Checks blockchain connectivity.
156
- */
157
- async checkBlockchain() {
158
- try {
159
- const start = Date.now();
160
- const blockNumber = await this.config.publicClient.getBlockNumber();
161
- if (blockNumber === 0n) {
162
- return {
163
- status: "unhealthy",
164
- message: "Invalid block number"
165
- };
166
- }
167
- const latency = Date.now() - start;
168
- if (latency > 5e3) {
169
- return {
170
- status: "degraded",
171
- message: `High latency: ${latency}ms`,
172
- latency
173
- };
174
- }
175
- return {
176
- status: "healthy",
177
- latency
178
- };
179
- } catch (error) {
180
- return {
181
- status: "unhealthy",
182
- message: error instanceof Error ? error.message : "Unknown error"
183
- };
184
- }
185
- }
186
- /**
187
- * Checks nonce synchronization for configured addresses.
188
- */
189
- async checkNonces() {
190
- const results = [];
191
- for (const address of this.config.addresses) {
192
- try {
193
- const lastUsedKey = `nonce:${this.config.chainId}:${address}:lastUsed`;
194
- const lastUsedStr = await this.config.atomicStore.get(lastUsedKey);
195
- const lastUsed = lastUsedStr ? parseInt(lastUsedStr) : -1;
196
- const [pendingCount, confirmedCount] = await Promise.all([
197
- this.config.publicClient.getTransactionCount({
198
- address,
199
- blockTag: "pending"
200
- }),
201
- this.config.publicClient.getTransactionCount({
202
- address,
203
- blockTag: "latest"
204
- })
205
- ]);
206
- const blockchainPending = pendingCount === 0 ? -1 : Number(pendingCount) - 1;
207
- const blockchainConfirmed = confirmedCount === 0 ? -1 : Number(confirmedCount) - 1;
208
- let status;
209
- const gap = blockchainPending - blockchainConfirmed;
210
- if (lastUsed < blockchainConfirmed) {
211
- status = "desynced";
212
- } else if (gap > 5) {
213
- status = "stuck";
214
- } else {
215
- status = "healthy";
216
- }
217
- results.push({
218
- address,
219
- status,
220
- lastUsed,
221
- blockchainPending,
222
- blockchainConfirmed,
223
- gap: gap > 0 ? gap : void 0
224
- });
225
- } catch {
226
- results.push({
227
- address,
228
- status: "desynced",
229
- lastUsed: -1,
230
- blockchainPending: -1,
231
- blockchainConfirmed: -1
232
- });
233
- }
234
- }
235
- return results;
236
- }
237
- /**
238
- * Checks operation queue health.
239
- */
240
- async checkQueue() {
241
- try {
242
- const [pending, processing, failed] = await Promise.all([
243
- this.config.operationStore.getQueuedOperations({ limit: 100 }),
244
- this.config.operationStore.getProcessingOperations?.({ limit: 100 }),
245
- this.config.operationStore.getFailedOperations?.({ limit: 100 })
246
- ]);
247
- const pendingCount = pending.length;
248
- const processingCount = processing?.length ?? 0;
249
- const failedCount = failed?.length ?? 0;
250
- let oldestPending;
251
- let isStale = false;
252
- if (pendingCount > 0 && pending[0].createdAt) {
253
- const ageSeconds = Math.floor(
254
- (Date.now() - pending[0].createdAt) / 1e3
255
- );
256
- oldestPending = ageSeconds;
257
- isStale = ageSeconds > this.config.staleThresholdSeconds;
258
- }
259
- return {
260
- pendingCount,
261
- processingCount,
262
- failedCount,
263
- oldestPending,
264
- isStale
265
- };
266
- } catch {
267
- return void 0;
268
- }
269
- }
270
- /**
271
- * Gets a simple health check response for HTTP endpoints.
272
- *
273
- * @returns A simple health object suitable for JSON response
274
- */
275
- async getSimpleHealth() {
276
- const health = await this.check();
277
- return {
278
- healthy: health.status === "healthy",
279
- status: health.status,
280
- timestamp: health.timestamp,
281
- errors: health.errors
282
- };
283
- }
284
- }
285
- // Annotate the CommonJS export names for ESM import in node:
286
- 0 && (module.exports = {
287
- SystemHealthChecker
288
- });
289
- //# sourceMappingURL=health.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/health.ts"],"sourcesContent":["/**\n * System health monitoring for distributed relayer deployments.\n *\n * @module\n */\n\nimport type { IAtomicStore } from \"../types/atomicStore\";\nimport type { IOperationStore } from \"../types/operationStore\";\nimport type { PublicClient } from \"viem\";\n\n/**\n * Configuration for SystemHealthChecker.\n */\nexport interface SystemHealthCheckerConfig {\n /** Atomic store for distributed state */\n atomicStore: IAtomicStore;\n /** Operation store for queue state */\n operationStore: IOperationStore;\n /** Public client for blockchain queries */\n publicClient: PublicClient;\n /** Chain ID to monitor */\n chainId: number;\n /** Addresses to monitor (optional) */\n addresses?: string[];\n /** Stale threshold in seconds (default: 300) */\n staleThresholdSeconds?: number;\n}\n\n/**\n * Health status for the system.\n */\nexport interface HealthStatus {\n /** Overall health status */\n status: \"healthy\" | \"degraded\" | \"unhealthy\";\n /** Timestamp of the check */\n timestamp: number;\n /** Individual component checks */\n checks: {\n atomicStore: ComponentHealth;\n operationStore: ComponentHealth;\n blockchain: ComponentHealth;\n nonces?: NonceHealth[];\n queue?: QueueHealth;\n };\n /** Any error messages */\n errors?: string[];\n}\n\n/**\n * Health status for a component.\n */\nexport interface ComponentHealth {\n status: \"healthy\" | \"degraded\" | \"unhealthy\";\n message?: string;\n latency?: number;\n}\n\n/**\n * Nonce health for an address.\n */\nexport interface NonceHealth {\n address: string;\n status: \"healthy\" | \"stuck\" | \"desynced\";\n lastUsed: number;\n blockchainPending: number;\n blockchainConfirmed: number;\n gap?: number;\n}\n\n/**\n * Queue health information.\n */\nexport interface QueueHealth {\n pendingCount: number;\n processingCount: number;\n failedCount: number;\n oldestPending?: number;\n isStale: boolean;\n}\n\n/**\n * System health checker for monitoring distributed relayer deployments.\n *\n * @remarks\n * This class provides comprehensive health monitoring for relayer systems:\n * - Storage backend connectivity and performance\n * - Blockchain RPC availability\n * - Nonce synchronization status\n * - Operation queue health\n * - Stuck transaction detection\n *\n * @example\n * ```typescript\n * const healthChecker = new SystemHealthChecker({\n * atomicStore,\n * operationStore,\n * publicClient,\n * chainId: 14800,\n * addresses: [relayerAddress]\n * });\n *\n * const health = await healthChecker.check();\n * if (health.status === 'unhealthy') {\n * console.error('System unhealthy:', health.errors);\n * }\n * ```\n *\n * @category Health\n */\nexport class SystemHealthChecker {\n private readonly config: Required<SystemHealthCheckerConfig>;\n\n constructor(config: SystemHealthCheckerConfig) {\n this.config = {\n ...config,\n addresses: config.addresses ?? [],\n staleThresholdSeconds: config.staleThresholdSeconds ?? 300,\n };\n }\n\n /**\n * Performs a comprehensive health check of the system.\n *\n * @returns The health status of the system\n */\n async check(): Promise<HealthStatus> {\n const timestamp = Date.now();\n const errors: string[] = [];\n\n // Check atomic store\n const atomicStore = await this.checkAtomicStore();\n if (atomicStore.status !== \"healthy\") {\n errors.push(`Atomic store ${atomicStore.status}: ${atomicStore.message}`);\n }\n\n // Check operation store\n const operationStore = await this.checkOperationStore();\n if (operationStore.status !== \"healthy\") {\n errors.push(\n `Operation store ${operationStore.status}: ${operationStore.message}`,\n );\n }\n\n // Check blockchain connectivity\n const blockchain = await this.checkBlockchain();\n if (blockchain.status !== \"healthy\") {\n errors.push(`Blockchain ${blockchain.status}: ${blockchain.message}`);\n }\n\n // Check nonces if addresses provided\n let nonces: NonceHealth[] | undefined;\n if (this.config.addresses.length > 0) {\n nonces = await this.checkNonces();\n for (const nonce of nonces) {\n if (nonce.status !== \"healthy\") {\n errors.push(`Nonce ${nonce.status} for ${nonce.address}`);\n }\n }\n }\n\n // Check queue health\n const queue = await this.checkQueue();\n if (queue && queue.isStale) {\n errors.push(\n `Queue is stale (oldest pending: ${queue.oldestPending}s ago)`,\n );\n }\n\n // Determine overall status\n let status: \"healthy\" | \"degraded\" | \"unhealthy\";\n if (errors.length === 0) {\n status = \"healthy\";\n } else if (\n atomicStore.status === \"unhealthy\" ||\n operationStore.status === \"unhealthy\" ||\n blockchain.status === \"unhealthy\"\n ) {\n status = \"unhealthy\";\n } else {\n status = \"degraded\";\n }\n\n return {\n status,\n timestamp,\n checks: {\n atomicStore,\n operationStore,\n blockchain,\n nonces,\n queue,\n },\n errors: errors.length > 0 ? errors : undefined,\n };\n }\n\n /**\n * Checks the health of the atomic store.\n */\n private async checkAtomicStore(): Promise<ComponentHealth> {\n try {\n const start = Date.now();\n const testKey = `health:check:${Date.now()}`;\n\n // Test basic operations\n await this.config.atomicStore.set(testKey, \"test\");\n const value = await this.config.atomicStore.get(testKey);\n\n if (value !== \"test\") {\n return {\n status: \"unhealthy\",\n message: \"Atomic store read/write test failed\",\n };\n }\n\n // Clean up\n if (this.config.atomicStore.delete) {\n await this.config.atomicStore.delete(testKey);\n }\n\n const latency = Date.now() - start;\n\n if (latency > 1000) {\n return {\n status: \"degraded\",\n message: `High latency: ${latency}ms`,\n latency,\n };\n }\n\n return {\n status: \"healthy\",\n latency,\n };\n } catch (error) {\n return {\n status: \"unhealthy\",\n message: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * Checks the health of the operation store.\n */\n private async checkOperationStore(): Promise<ComponentHealth> {\n try {\n const start = Date.now();\n\n // Test basic query\n await this.config.operationStore.getQueuedOperations({ limit: 1 });\n\n const latency = Date.now() - start;\n\n if (latency > 2000) {\n return {\n status: \"degraded\",\n message: `High latency: ${latency}ms`,\n latency,\n };\n }\n\n return {\n status: \"healthy\",\n latency,\n };\n } catch (error) {\n return {\n status: \"unhealthy\",\n message: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * Checks blockchain connectivity.\n */\n private async checkBlockchain(): Promise<ComponentHealth> {\n try {\n const start = Date.now();\n\n // Test RPC connectivity\n const blockNumber = await this.config.publicClient.getBlockNumber();\n\n if (blockNumber === 0n) {\n return {\n status: \"unhealthy\",\n message: \"Invalid block number\",\n };\n }\n\n const latency = Date.now() - start;\n\n if (latency > 5000) {\n return {\n status: \"degraded\",\n message: `High latency: ${latency}ms`,\n latency,\n };\n }\n\n return {\n status: \"healthy\",\n latency,\n };\n } catch (error) {\n return {\n status: \"unhealthy\",\n message: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * Checks nonce synchronization for configured addresses.\n */\n private async checkNonces(): Promise<NonceHealth[]> {\n const results: NonceHealth[] = [];\n\n for (const address of this.config.addresses) {\n try {\n const lastUsedKey = `nonce:${this.config.chainId}:${address}:lastUsed`;\n\n // Get stored nonce\n const lastUsedStr = await this.config.atomicStore.get(lastUsedKey);\n const lastUsed = lastUsedStr ? parseInt(lastUsedStr) : -1;\n\n // Get blockchain nonces\n const [pendingCount, confirmedCount] = await Promise.all([\n this.config.publicClient.getTransactionCount({\n address: address as `0x${string}`,\n blockTag: \"pending\",\n }),\n this.config.publicClient.getTransactionCount({\n address: address as `0x${string}`,\n blockTag: \"latest\",\n }),\n ]);\n\n const blockchainPending =\n pendingCount === 0 ? -1 : Number(pendingCount) - 1;\n const blockchainConfirmed =\n confirmedCount === 0 ? -1 : Number(confirmedCount) - 1;\n\n // Determine status\n let status: \"healthy\" | \"stuck\" | \"desynced\";\n const gap = blockchainPending - blockchainConfirmed;\n\n if (lastUsed < blockchainConfirmed) {\n status = \"desynced\";\n } else if (gap > 5) {\n status = \"stuck\";\n } else {\n status = \"healthy\";\n }\n\n results.push({\n address,\n status,\n lastUsed,\n blockchainPending,\n blockchainConfirmed,\n gap: gap > 0 ? gap : undefined,\n });\n } catch {\n results.push({\n address,\n status: \"desynced\",\n lastUsed: -1,\n blockchainPending: -1,\n blockchainConfirmed: -1,\n });\n }\n }\n\n return results;\n }\n\n /**\n * Checks operation queue health.\n */\n private async checkQueue(): Promise<QueueHealth | undefined> {\n try {\n const [pending, processing, failed] = await Promise.all([\n this.config.operationStore.getQueuedOperations({ limit: 100 }),\n this.config.operationStore.getProcessingOperations?.({ limit: 100 }),\n this.config.operationStore.getFailedOperations?.({ limit: 100 }),\n ]);\n\n const pendingCount = pending.length;\n const processingCount = processing?.length ?? 0;\n const failedCount = failed?.length ?? 0;\n\n // Check for stale operations\n let oldestPending: number | undefined;\n let isStale = false;\n\n if (pendingCount > 0 && pending[0].createdAt) {\n const ageSeconds = Math.floor(\n (Date.now() - pending[0].createdAt) / 1000,\n );\n oldestPending = ageSeconds;\n isStale = ageSeconds > this.config.staleThresholdSeconds;\n }\n\n return {\n pendingCount,\n processingCount,\n failedCount,\n oldestPending,\n isStale,\n };\n } catch {\n return undefined;\n }\n }\n\n /**\n * Gets a simple health check response for HTTP endpoints.\n *\n * @returns A simple health object suitable for JSON response\n */\n async getSimpleHealth(): Promise<{\n healthy: boolean;\n status: string;\n timestamp: number;\n errors?: string[];\n }> {\n const health = await this.check();\n\n return {\n healthy: health.status === \"healthy\",\n status: health.status,\n timestamp: health.timestamp,\n errors: health.errors,\n };\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,143 +0,0 @@
1
- /**
2
- * System health monitoring for distributed relayer deployments.
3
- *
4
- * @module
5
- */
6
- import type { IAtomicStore } from "../types/atomicStore";
7
- import type { IOperationStore } from "../types/operationStore";
8
- import type { PublicClient } from "viem";
9
- /**
10
- * Configuration for SystemHealthChecker.
11
- */
12
- export interface SystemHealthCheckerConfig {
13
- /** Atomic store for distributed state */
14
- atomicStore: IAtomicStore;
15
- /** Operation store for queue state */
16
- operationStore: IOperationStore;
17
- /** Public client for blockchain queries */
18
- publicClient: PublicClient;
19
- /** Chain ID to monitor */
20
- chainId: number;
21
- /** Addresses to monitor (optional) */
22
- addresses?: string[];
23
- /** Stale threshold in seconds (default: 300) */
24
- staleThresholdSeconds?: number;
25
- }
26
- /**
27
- * Health status for the system.
28
- */
29
- export interface HealthStatus {
30
- /** Overall health status */
31
- status: "healthy" | "degraded" | "unhealthy";
32
- /** Timestamp of the check */
33
- timestamp: number;
34
- /** Individual component checks */
35
- checks: {
36
- atomicStore: ComponentHealth;
37
- operationStore: ComponentHealth;
38
- blockchain: ComponentHealth;
39
- nonces?: NonceHealth[];
40
- queue?: QueueHealth;
41
- };
42
- /** Any error messages */
43
- errors?: string[];
44
- }
45
- /**
46
- * Health status for a component.
47
- */
48
- export interface ComponentHealth {
49
- status: "healthy" | "degraded" | "unhealthy";
50
- message?: string;
51
- latency?: number;
52
- }
53
- /**
54
- * Nonce health for an address.
55
- */
56
- export interface NonceHealth {
57
- address: string;
58
- status: "healthy" | "stuck" | "desynced";
59
- lastUsed: number;
60
- blockchainPending: number;
61
- blockchainConfirmed: number;
62
- gap?: number;
63
- }
64
- /**
65
- * Queue health information.
66
- */
67
- export interface QueueHealth {
68
- pendingCount: number;
69
- processingCount: number;
70
- failedCount: number;
71
- oldestPending?: number;
72
- isStale: boolean;
73
- }
74
- /**
75
- * System health checker for monitoring distributed relayer deployments.
76
- *
77
- * @remarks
78
- * This class provides comprehensive health monitoring for relayer systems:
79
- * - Storage backend connectivity and performance
80
- * - Blockchain RPC availability
81
- * - Nonce synchronization status
82
- * - Operation queue health
83
- * - Stuck transaction detection
84
- *
85
- * @example
86
- * ```typescript
87
- * const healthChecker = new SystemHealthChecker({
88
- * atomicStore,
89
- * operationStore,
90
- * publicClient,
91
- * chainId: 14800,
92
- * addresses: [relayerAddress]
93
- * });
94
- *
95
- * const health = await healthChecker.check();
96
- * if (health.status === 'unhealthy') {
97
- * console.error('System unhealthy:', health.errors);
98
- * }
99
- * ```
100
- *
101
- * @category Health
102
- */
103
- export declare class SystemHealthChecker {
104
- private readonly config;
105
- constructor(config: SystemHealthCheckerConfig);
106
- /**
107
- * Performs a comprehensive health check of the system.
108
- *
109
- * @returns The health status of the system
110
- */
111
- check(): Promise<HealthStatus>;
112
- /**
113
- * Checks the health of the atomic store.
114
- */
115
- private checkAtomicStore;
116
- /**
117
- * Checks the health of the operation store.
118
- */
119
- private checkOperationStore;
120
- /**
121
- * Checks blockchain connectivity.
122
- */
123
- private checkBlockchain;
124
- /**
125
- * Checks nonce synchronization for configured addresses.
126
- */
127
- private checkNonces;
128
- /**
129
- * Checks operation queue health.
130
- */
131
- private checkQueue;
132
- /**
133
- * Gets a simple health check response for HTTP endpoints.
134
- *
135
- * @returns A simple health object suitable for JSON response
136
- */
137
- getSimpleHealth(): Promise<{
138
- healthy: boolean;
139
- status: string;
140
- timestamp: number;
141
- errors?: string[];
142
- }>;
143
- }