@opendatalabs/vana-sdk 2.2.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) 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 +125 -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 +104 -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/envelope/openpgp.cjs +59 -0
  48. package/dist/crypto/envelope/openpgp.cjs.map +1 -0
  49. package/dist/crypto/envelope/openpgp.d.ts +28 -0
  50. package/dist/crypto/envelope/openpgp.js +24 -0
  51. package/dist/crypto/envelope/openpgp.js.map +1 -0
  52. package/dist/crypto/keys/derive.cjs +65 -0
  53. package/dist/crypto/keys/derive.cjs.map +1 -0
  54. package/dist/crypto/keys/derive.d.ts +45 -0
  55. package/dist/crypto/keys/derive.js +38 -0
  56. package/dist/crypto/keys/derive.js.map +1 -0
  57. package/dist/errors.cjs +10 -0
  58. package/dist/errors.cjs.map +1 -1
  59. package/dist/errors.js +10 -0
  60. package/dist/errors.js.map +1 -1
  61. package/dist/generated/abi/VanaPoolEntityImplementation.cjs +65 -0
  62. package/dist/generated/abi/VanaPoolEntityImplementation.cjs.map +1 -1
  63. package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +51 -0
  64. package/dist/generated/abi/VanaPoolEntityImplementation.js +65 -0
  65. package/dist/generated/abi/VanaPoolEntityImplementation.js.map +1 -1
  66. package/dist/generated/abi/VanaPoolStakingImplementation.cjs +187 -19
  67. package/dist/generated/abi/VanaPoolStakingImplementation.cjs.map +1 -1
  68. package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +144 -14
  69. package/dist/generated/abi/VanaPoolStakingImplementation.js +187 -19
  70. package/dist/generated/abi/VanaPoolStakingImplementation.js.map +1 -1
  71. package/dist/generated/abi/index.cjs +2 -37
  72. package/dist/generated/abi/index.cjs.map +1 -1
  73. package/dist/generated/abi/index.d.ts +2687 -9119
  74. package/dist/generated/abi/index.js +2 -29
  75. package/dist/generated/abi/index.js.map +1 -1
  76. package/dist/generated/addresses.cjs +5 -107
  77. package/dist/generated/addresses.cjs.map +1 -1
  78. package/dist/generated/addresses.d.ts +5 -99
  79. package/dist/generated/addresses.js +5 -105
  80. package/dist/generated/addresses.js.map +1 -1
  81. package/dist/index.browser.d.ts +23 -138
  82. package/dist/index.browser.js +32090 -112
  83. package/dist/index.browser.js.map +7 -1
  84. package/dist/index.node.cjs +32809 -157
  85. package/dist/index.node.cjs.map +7 -1
  86. package/dist/index.node.d.ts +22 -208
  87. package/dist/index.node.js +32716 -131
  88. package/dist/index.node.js.map +7 -1
  89. package/dist/protocol/data-file.cjs +56 -0
  90. package/dist/protocol/data-file.cjs.map +1 -0
  91. package/dist/protocol/data-file.d.ts +20 -0
  92. package/dist/protocol/data-file.js +30 -0
  93. package/dist/protocol/data-file.js.map +1 -0
  94. package/dist/protocol/eip712.cjs +123 -0
  95. package/dist/protocol/eip712.cjs.map +1 -0
  96. package/dist/protocol/eip712.d.ts +117 -0
  97. package/dist/protocol/eip712.js +90 -0
  98. package/dist/protocol/eip712.js.map +1 -0
  99. package/dist/protocol/gateway.cjs +226 -0
  100. package/dist/protocol/gateway.cjs.map +1 -0
  101. package/dist/protocol/gateway.d.ts +120 -0
  102. package/dist/protocol/gateway.js +202 -0
  103. package/dist/protocol/gateway.js.map +1 -0
  104. package/dist/protocol/scopes.cjs +78 -0
  105. package/dist/protocol/scopes.cjs.map +1 -0
  106. package/dist/protocol/scopes.d.ts +13 -0
  107. package/dist/protocol/scopes.js +50 -0
  108. package/dist/protocol/scopes.js.map +1 -0
  109. package/dist/{types/atomicStore.cjs → storage/default.cjs} +9 -8
  110. package/dist/storage/default.cjs.map +1 -0
  111. package/dist/storage/default.d.ts +4 -0
  112. package/dist/storage/default.js +8 -0
  113. package/dist/storage/default.js.map +1 -0
  114. package/dist/storage/index.cjs +11 -2
  115. package/dist/storage/index.cjs.map +1 -1
  116. package/dist/storage/index.d.ts +9 -0
  117. package/dist/storage/index.js +7 -1
  118. package/dist/storage/index.js.map +1 -1
  119. package/dist/storage/providers/callback-storage.cjs +1 -0
  120. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  121. package/dist/storage/providers/callback-storage.js +1 -0
  122. package/dist/storage/providers/callback-storage.js.map +1 -1
  123. package/dist/storage/providers/dropbox.cjs +1 -0
  124. package/dist/storage/providers/dropbox.cjs.map +1 -1
  125. package/dist/storage/providers/dropbox.js +1 -0
  126. package/dist/storage/providers/dropbox.js.map +1 -1
  127. package/dist/storage/providers/google-drive.cjs +1 -0
  128. package/dist/storage/providers/google-drive.cjs.map +1 -1
  129. package/dist/storage/providers/google-drive.js +1 -0
  130. package/dist/storage/providers/google-drive.js.map +1 -1
  131. package/dist/storage/providers/ipfs.cjs +1 -0
  132. package/dist/storage/providers/ipfs.cjs.map +1 -1
  133. package/dist/storage/providers/ipfs.js +1 -0
  134. package/dist/storage/providers/ipfs.js.map +1 -1
  135. package/dist/storage/providers/pinata.cjs +1 -0
  136. package/dist/storage/providers/pinata.cjs.map +1 -1
  137. package/dist/storage/providers/pinata.js +1 -0
  138. package/dist/storage/providers/pinata.js.map +1 -1
  139. package/dist/storage/providers/r2.cjs +376 -0
  140. package/dist/storage/providers/r2.cjs.map +1 -0
  141. package/dist/storage/providers/r2.d.ts +91 -0
  142. package/dist/storage/providers/r2.js +354 -0
  143. package/dist/storage/providers/r2.js.map +1 -0
  144. package/dist/storage/providers/vana-storage.cjs +251 -0
  145. package/dist/storage/providers/vana-storage.cjs.map +1 -0
  146. package/dist/storage/providers/vana-storage.d.ts +100 -0
  147. package/dist/storage/providers/vana-storage.js +231 -0
  148. package/dist/storage/providers/vana-storage.js.map +1 -0
  149. package/dist/types/config.cjs +0 -34
  150. package/dist/types/config.cjs.map +1 -1
  151. package/dist/types/config.d.ts +1 -607
  152. package/dist/types/config.js +0 -22
  153. package/dist/types/config.js.map +1 -1
  154. package/dist/types/contracts.cjs.map +1 -1
  155. package/dist/types/contracts.d.ts +1 -1
  156. package/dist/types/index.cjs +2 -33
  157. package/dist/types/index.cjs.map +1 -1
  158. package/dist/types/index.d.ts +2 -33
  159. package/dist/types/index.js +1 -35
  160. package/dist/types/index.js.map +1 -1
  161. package/dist/types/ps-errors.cjs +66 -0
  162. package/dist/types/ps-errors.cjs.map +1 -0
  163. package/dist/types/ps-errors.d.ts +25 -0
  164. package/dist/types/ps-errors.js +41 -0
  165. package/dist/types/ps-errors.js.map +1 -0
  166. package/dist/types.cjs.map +1 -1
  167. package/dist/types.d.ts +0 -29
  168. package/dist/types.js.map +1 -1
  169. package/package.json +7 -25
  170. package/dist/client/enhancedResponse.cjs +0 -164
  171. package/dist/client/enhancedResponse.cjs.map +0 -1
  172. package/dist/client/enhancedResponse.d.ts +0 -120
  173. package/dist/client/enhancedResponse.js +0 -138
  174. package/dist/client/enhancedResponse.js.map +0 -1
  175. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +0 -7
  176. package/dist/controllers/base.cjs +0 -116
  177. package/dist/controllers/base.cjs.map +0 -1
  178. package/dist/controllers/base.d.ts +0 -94
  179. package/dist/controllers/base.js +0 -92
  180. package/dist/controllers/base.js.map +0 -1
  181. package/dist/controllers/data.cjs +0 -2633
  182. package/dist/controllers/data.cjs.map +0 -1
  183. package/dist/controllers/data.d.ts +0 -1067
  184. package/dist/controllers/data.js +0 -2626
  185. package/dist/controllers/data.js.map +0 -1
  186. package/dist/controllers/operations.cjs +0 -430
  187. package/dist/controllers/operations.cjs.map +0 -1
  188. package/dist/controllers/operations.d.ts +0 -229
  189. package/dist/controllers/operations.js +0 -406
  190. package/dist/controllers/operations.js.map +0 -1
  191. package/dist/controllers/permissions.cjs +0 -4368
  192. package/dist/controllers/permissions.cjs.map +0 -1
  193. package/dist/controllers/permissions.d.ts +0 -1411
  194. package/dist/controllers/permissions.js +0 -4344
  195. package/dist/controllers/permissions.js.map +0 -1
  196. package/dist/controllers/protocol.cjs +0 -183
  197. package/dist/controllers/protocol.cjs.map +0 -1
  198. package/dist/controllers/protocol.d.ts +0 -138
  199. package/dist/controllers/protocol.js +0 -163
  200. package/dist/controllers/protocol.js.map +0 -1
  201. package/dist/controllers/schemas.cjs +0 -678
  202. package/dist/controllers/schemas.cjs.map +0 -1
  203. package/dist/controllers/schemas.d.ts +0 -293
  204. package/dist/controllers/schemas.js +0 -654
  205. package/dist/controllers/schemas.js.map +0 -1
  206. package/dist/controllers/server.cjs +0 -643
  207. package/dist/controllers/server.cjs.map +0 -1
  208. package/dist/controllers/server.d.ts +0 -322
  209. package/dist/controllers/server.js +0 -624
  210. package/dist/controllers/server.js.map +0 -1
  211. package/dist/core/__tests__/pollingManager.test.d.ts +0 -4
  212. package/dist/core/apiClient.cjs +0 -378
  213. package/dist/core/apiClient.cjs.map +0 -1
  214. package/dist/core/apiClient.d.ts +0 -286
  215. package/dist/core/apiClient.js +0 -359
  216. package/dist/core/apiClient.js.map +0 -1
  217. package/dist/core/generics.cjs +0 -417
  218. package/dist/core/generics.cjs.map +0 -1
  219. package/dist/core/generics.d.ts +0 -205
  220. package/dist/core/generics.js +0 -386
  221. package/dist/core/generics.js.map +0 -1
  222. package/dist/core/health.cjs +0 -289
  223. package/dist/core/health.cjs.map +0 -1
  224. package/dist/core/health.d.ts +0 -143
  225. package/dist/core/health.js +0 -265
  226. package/dist/core/health.js.map +0 -1
  227. package/dist/core/inMemoryNonceManager.cjs +0 -138
  228. package/dist/core/inMemoryNonceManager.cjs.map +0 -1
  229. package/dist/core/inMemoryNonceManager.d.ts +0 -69
  230. package/dist/core/inMemoryNonceManager.js +0 -114
  231. package/dist/core/inMemoryNonceManager.js.map +0 -1
  232. package/dist/core/nonceManager.cjs +0 -304
  233. package/dist/core/nonceManager.cjs.map +0 -1
  234. package/dist/core/nonceManager.d.ts +0 -116
  235. package/dist/core/nonceManager.js +0 -280
  236. package/dist/core/nonceManager.js.map +0 -1
  237. package/dist/core/pollingManager.cjs +0 -292
  238. package/dist/core/pollingManager.cjs.map +0 -1
  239. package/dist/core/pollingManager.d.ts +0 -120
  240. package/dist/core/pollingManager.js +0 -268
  241. package/dist/core/pollingManager.js.map +0 -1
  242. package/dist/core.cjs +0 -777
  243. package/dist/core.cjs.map +0 -1
  244. package/dist/core.d.ts +0 -493
  245. package/dist/core.js +0 -752
  246. package/dist/core.js.map +0 -1
  247. package/dist/diagnostics.cjs +0 -37
  248. package/dist/diagnostics.cjs.map +0 -1
  249. package/dist/diagnostics.d.ts +0 -24
  250. package/dist/diagnostics.js +0 -13
  251. package/dist/diagnostics.js.map +0 -1
  252. package/dist/diagnostics.test.d.ts +0 -1
  253. package/dist/generated/abi/DLPPerformanceImplementation.cjs +0 -1202
  254. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +0 -1
  255. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +0 -914
  256. package/dist/generated/abi/DLPPerformanceImplementation.js +0 -1178
  257. package/dist/generated/abi/DLPPerformanceImplementation.js.map +0 -1
  258. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +0 -1112
  259. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +0 -1
  260. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +0 -840
  261. package/dist/generated/abi/DLPRewardDeployerImplementation.js +0 -1088
  262. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +0 -1
  263. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +0 -612
  264. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +0 -1
  265. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +0 -451
  266. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +0 -588
  267. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +0 -1
  268. package/dist/generated/abi/DLPRewardSwapImplementation.cjs +0 -939
  269. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +0 -1
  270. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +0 -705
  271. package/dist/generated/abi/DLPRewardSwapImplementation.js +0 -915
  272. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +0 -1
  273. package/dist/generated/abi/DLPRootImplementation.cjs +0 -1644
  274. package/dist/generated/abi/DLPRootImplementation.cjs.map +0 -1
  275. package/dist/generated/abi/DLPRootImplementation.d.ts +0 -1246
  276. package/dist/generated/abi/DLPRootImplementation.js +0 -1620
  277. package/dist/generated/abi/DLPRootImplementation.js.map +0 -1
  278. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +0 -985
  279. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +0 -1
  280. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +0 -735
  281. package/dist/generated/abi/DataLiquidityPoolImplementation.js +0 -961
  282. package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +0 -1
  283. package/dist/generated/abi/SwapHelperImplementation.cjs +0 -976
  284. package/dist/generated/abi/SwapHelperImplementation.cjs.map +0 -1
  285. package/dist/generated/abi/SwapHelperImplementation.d.ts +0 -728
  286. package/dist/generated/abi/SwapHelperImplementation.js +0 -952
  287. package/dist/generated/abi/SwapHelperImplementation.js.map +0 -1
  288. package/dist/generated/abi/TeePoolImplementation.cjs +0 -1313
  289. package/dist/generated/abi/TeePoolImplementation.cjs.map +0 -1
  290. package/dist/generated/abi/TeePoolImplementation.d.ts +0 -992
  291. package/dist/generated/abi/TeePoolImplementation.js +0 -1289
  292. package/dist/generated/abi/TeePoolImplementation.js.map +0 -1
  293. package/dist/generated/event-types.cjs +0 -17
  294. package/dist/generated/event-types.cjs.map +0 -1
  295. package/dist/generated/event-types.d.ts +0 -809
  296. package/dist/generated/event-types.js +0 -1
  297. package/dist/generated/event-types.js.map +0 -1
  298. package/dist/generated/eventRegistry.cjs +0 -4470
  299. package/dist/generated/eventRegistry.cjs.map +0 -1
  300. package/dist/generated/eventRegistry.d.ts +0 -14
  301. package/dist/generated/eventRegistry.js +0 -4445
  302. package/dist/generated/eventRegistry.js.map +0 -1
  303. package/dist/generated/server/server-exports.cjs +0 -45
  304. package/dist/generated/server/server-exports.cjs.map +0 -1
  305. package/dist/generated/server/server-exports.d.ts +0 -36
  306. package/dist/generated/server/server-exports.js +0 -19
  307. package/dist/generated/server/server-exports.js.map +0 -1
  308. package/dist/generated/server/server.cjs +0 -17
  309. package/dist/generated/server/server.cjs.map +0 -1
  310. package/dist/generated/server/server.d.ts +0 -907
  311. package/dist/generated/server/server.js +0 -1
  312. package/dist/generated/server/server.js.map +0 -1
  313. package/dist/generated/subgraph.cjs +0 -1440
  314. package/dist/generated/subgraph.cjs.map +0 -1
  315. package/dist/generated/subgraph.d.ts +0 -6113
  316. package/dist/generated/subgraph.js +0 -1404
  317. package/dist/generated/subgraph.js.map +0 -1
  318. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +0 -1
  319. package/dist/lib/redisAtomicStore.cjs +0 -201
  320. package/dist/lib/redisAtomicStore.cjs.map +0 -1
  321. package/dist/lib/redisAtomicStore.d.ts +0 -120
  322. package/dist/lib/redisAtomicStore.js +0 -177
  323. package/dist/lib/redisAtomicStore.js.map +0 -1
  324. package/dist/server/relayerHandler.cjs +0 -452
  325. package/dist/server/relayerHandler.cjs.map +0 -1
  326. package/dist/server/relayerHandler.d.ts +0 -69
  327. package/dist/server/relayerHandler.js +0 -428
  328. package/dist/server/relayerHandler.js.map +0 -1
  329. package/dist/tests/abi.test.d.ts +0 -1
  330. package/dist/tests/chains-definitions.test.d.ts +0 -1
  331. package/dist/tests/core-encryption.test.d.ts +0 -1
  332. package/dist/tests/core-extended.test.d.ts +0 -1
  333. package/dist/tests/core-generics-coverage.test.d.ts +0 -1
  334. package/dist/tests/coverage-boost.test.d.ts +0 -1
  335. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +0 -1
  336. package/dist/tests/data-addfile-permissions-schema.test.d.ts +0 -1
  337. package/dist/tests/data-additional-methods.test.d.ts +0 -1
  338. package/dist/tests/data-controller-edge-cases.test.d.ts +0 -1
  339. package/dist/tests/data-ipfs-gateways.test.d.ts +0 -1
  340. package/dist/tests/data-relayer.test.d.ts +0 -1
  341. package/dist/tests/data-schema-validation.test.d.ts +0 -1
  342. package/dist/tests/data-simple-methods.test.d.ts +0 -1
  343. package/dist/tests/data-upload-owner-validation.test.d.ts +0 -1
  344. package/dist/tests/data.test.d.ts +0 -1
  345. package/dist/tests/demo-integration.test.d.ts +0 -1
  346. package/dist/tests/demo-trusted-server-integration.test.d.ts +0 -1
  347. package/dist/tests/download-relayer.test.d.ts +0 -1
  348. package/dist/tests/dual-mode-permissions.test.d.ts +0 -1
  349. package/dist/tests/dual-mode-trusted-servers.test.d.ts +0 -1
  350. package/dist/tests/encryption-correct-implementation.test.d.ts +0 -1
  351. package/dist/tests/encryption-coverage.test.d.ts +0 -1
  352. package/dist/tests/encryption-edge-cases.test.d.ts +0 -1
  353. package/dist/tests/encryption-utils-updated.test.d.ts +0 -1
  354. package/dist/tests/errors-coverage.test.d.ts +0 -1
  355. package/dist/tests/factories/mockFactory.d.ts +0 -316
  356. package/dist/tests/fakes/FakeStorageManager.d.ts +0 -200
  357. package/dist/tests/fakes/FakeStorageManager.test.d.ts +0 -1
  358. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +0 -170
  359. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +0 -1
  360. package/dist/tests/fakes/fake-pgp-port.d.ts +0 -13
  361. package/dist/tests/grantValidation-edge-cases.test.d.ts +0 -1
  362. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +0 -1
  363. package/dist/tests/helper-methods.test.d.ts +0 -1
  364. package/dist/tests/helpers/typedMocks.d.ts +0 -64
  365. package/dist/tests/index-browser.test.d.ts +0 -1
  366. package/dist/tests/index-node.test.d.ts +0 -1
  367. package/dist/tests/index.test.d.ts +0 -1
  368. package/dist/tests/mocks/platformAdapter.d.ts +0 -12
  369. package/dist/tests/new-permissions-methods.test.d.ts +0 -1
  370. package/dist/tests/no-buffer-browser.test.d.ts +0 -1
  371. package/dist/tests/permissions-grantee.test.d.ts +0 -1
  372. package/dist/tests/permissions-revoke-relayer.test.d.ts +0 -1
  373. package/dist/tests/permissions-schema-validation.test.d.ts +0 -1
  374. package/dist/tests/permissions-server-files.test.d.ts +0 -1
  375. package/dist/tests/permissions-transaction-options.test.d.ts +0 -1
  376. package/dist/tests/permissions-trust-servers.test.d.ts +0 -1
  377. package/dist/tests/permissions.test.d.ts +0 -1
  378. package/dist/tests/personal.test.d.ts +0 -1
  379. package/dist/tests/platform-browser.test.d.ts +0 -1
  380. package/dist/tests/platform-crypto-expanded.test.d.ts +0 -1
  381. package/dist/tests/platform-crypto.test.d.ts +0 -1
  382. package/dist/tests/platform-index.test.d.ts +0 -1
  383. package/dist/tests/platform-node.test.d.ts +0 -1
  384. package/dist/tests/platform-shared-utils.test.d.ts +0 -1
  385. package/dist/tests/platform-updated.test.d.ts +0 -1
  386. package/dist/tests/protocol-additional-methods.test.d.ts +0 -1
  387. package/dist/tests/protocol.test.d.ts +0 -1
  388. package/dist/tests/read-only-mode.test.d.ts +0 -1
  389. package/dist/tests/relayer-integration.test.d.ts +0 -1
  390. package/dist/tests/relayer-unified.test.d.ts +0 -1
  391. package/dist/tests/schemas.test.d.ts +0 -1
  392. package/dist/tests/server-relayer-handler.test.d.ts +0 -1
  393. package/dist/tests/signatureFormatter.test.d.ts +0 -1
  394. package/dist/tests/trusted-server-queries.test.d.ts +0 -1
  395. package/dist/tests/typedDataConverter.test.d.ts +0 -1
  396. package/dist/tests/types-contracts.test.d.ts +0 -1
  397. package/dist/tests/types-data.test.d.ts +0 -1
  398. package/dist/tests/types-external-apis.test.d.ts +0 -1
  399. package/dist/tests/types-generics.test.d.ts +0 -1
  400. package/dist/tests/types-permissions.test.d.ts +0 -1
  401. package/dist/tests/types-upload-params.test.d.ts +0 -1
  402. package/dist/tests/types.test.d.ts +0 -1
  403. package/dist/tests/utils-formatters.test.d.ts +0 -1
  404. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +0 -1
  405. package/dist/tests/utils-grantFiles-validation.test.d.ts +0 -1
  406. package/dist/tests/utils-grantFiles.test.d.ts +0 -1
  407. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +0 -1
  408. package/dist/tests/utils-grants.test.d.ts +0 -1
  409. package/dist/tests/utils-ipfs-additional.test.d.ts +0 -1
  410. package/dist/tests/utils-ipfs.test.d.ts +0 -4
  411. package/dist/tests/utils-schemaValidation.test.d.ts +0 -1
  412. package/dist/tests/vana.test.d.ts +0 -1
  413. package/dist/tests/wallet-crypto-compatibility.test.d.ts +0 -1
  414. package/dist/types/atomicStore.cjs.map +0 -1
  415. package/dist/types/atomicStore.d.ts +0 -236
  416. package/dist/types/atomicStore.js +0 -7
  417. package/dist/types/atomicStore.js.map +0 -1
  418. package/dist/types/blockchain.cjs +0 -17
  419. package/dist/types/blockchain.cjs.map +0 -1
  420. package/dist/types/blockchain.d.ts +0 -85
  421. package/dist/types/blockchain.js +0 -1
  422. package/dist/types/blockchain.js.map +0 -1
  423. package/dist/types/controller-context.cjs +0 -17
  424. package/dist/types/controller-context.cjs.map +0 -1
  425. package/dist/types/controller-context.d.ts +0 -68
  426. package/dist/types/controller-context.js +0 -1
  427. package/dist/types/controller-context.js.map +0 -1
  428. package/dist/types/data.cjs +0 -17
  429. package/dist/types/data.cjs.map +0 -1
  430. package/dist/types/data.d.ts +0 -763
  431. package/dist/types/data.js +0 -1
  432. package/dist/types/data.js.map +0 -1
  433. package/dist/types/external-apis.cjs +0 -61
  434. package/dist/types/external-apis.cjs.map +0 -1
  435. package/dist/types/external-apis.d.ts +0 -184
  436. package/dist/types/external-apis.js +0 -34
  437. package/dist/types/external-apis.js.map +0 -1
  438. package/dist/types/generics.cjs +0 -17
  439. package/dist/types/generics.cjs.map +0 -1
  440. package/dist/types/generics.d.ts +0 -518
  441. package/dist/types/generics.js +0 -1
  442. package/dist/types/generics.js.map +0 -1
  443. package/dist/types/operationStore.cjs +0 -17
  444. package/dist/types/operationStore.cjs.map +0 -1
  445. package/dist/types/operationStore.d.ts +0 -171
  446. package/dist/types/operationStore.js +0 -1
  447. package/dist/types/operationStore.js.map +0 -1
  448. package/dist/types/operations.cjs +0 -53
  449. package/dist/types/operations.cjs.map +0 -1
  450. package/dist/types/operations.d.ts +0 -204
  451. package/dist/types/operations.js +0 -26
  452. package/dist/types/operations.js.map +0 -1
  453. package/dist/types/options.cjs +0 -17
  454. package/dist/types/options.cjs.map +0 -1
  455. package/dist/types/options.d.ts +0 -308
  456. package/dist/types/options.js +0 -1
  457. package/dist/types/options.js.map +0 -1
  458. package/dist/types/permissions.cjs +0 -17
  459. package/dist/types/permissions.cjs.map +0 -1
  460. package/dist/types/permissions.d.ts +0 -955
  461. package/dist/types/permissions.js +0 -1
  462. package/dist/types/permissions.js.map +0 -1
  463. package/dist/types/personal.cjs +0 -17
  464. package/dist/types/personal.cjs.map +0 -1
  465. package/dist/types/personal.d.ts +0 -174
  466. package/dist/types/personal.js +0 -1
  467. package/dist/types/personal.js.map +0 -1
  468. package/dist/types/relayer.cjs +0 -17
  469. package/dist/types/relayer.cjs.map +0 -1
  470. package/dist/types/relayer.d.ts +0 -552
  471. package/dist/types/relayer.js +0 -1
  472. package/dist/types/relayer.js.map +0 -1
  473. package/dist/types/transactionResults.cjs +0 -17
  474. package/dist/types/transactionResults.cjs.map +0 -1
  475. package/dist/types/transactionResults.d.ts +0 -193
  476. package/dist/types/transactionResults.js +0 -1
  477. package/dist/types/transactionResults.js.map +0 -1
  478. package/dist/types/utils.cjs +0 -17
  479. package/dist/types/utils.cjs.map +0 -1
  480. package/dist/types/utils.d.ts +0 -771
  481. package/dist/types/utils.js +0 -1
  482. package/dist/types/utils.js.map +0 -1
  483. package/dist/utils/__tests__/chainQuery.test.d.ts +0 -1
  484. package/dist/utils/__tests__/parseTransaction.test.d.ts +0 -1
  485. package/dist/utils/__tests__/pojo-serialization.test.d.ts +0 -1
  486. package/dist/utils/__tests__/signatureCache.test.d.ts +0 -1
  487. package/dist/utils/__tests__/subgraphConsistency.test.d.ts +0 -4
  488. package/dist/utils/__tests__/subgraphPagination.test.d.ts +0 -4
  489. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +0 -1
  490. package/dist/utils/__tests__/transactionHelpers.test.d.ts +0 -1
  491. package/dist/utils/__tests__/urlResolver.test.d.ts +0 -4
  492. package/dist/utils/blockchain/registry.cjs +0 -81
  493. package/dist/utils/blockchain/registry.cjs.map +0 -1
  494. package/dist/utils/blockchain/registry.d.ts +0 -32
  495. package/dist/utils/blockchain/registry.js +0 -56
  496. package/dist/utils/blockchain/registry.js.map +0 -1
  497. package/dist/utils/blockchain/registry.test.d.ts +0 -1
  498. package/dist/utils/chainQuery.cjs +0 -107
  499. package/dist/utils/chainQuery.cjs.map +0 -1
  500. package/dist/utils/chainQuery.d.ts +0 -31
  501. package/dist/utils/chainQuery.js +0 -82
  502. package/dist/utils/chainQuery.js.map +0 -1
  503. package/dist/utils/download.cjs +0 -69
  504. package/dist/utils/download.cjs.map +0 -1
  505. package/dist/utils/download.d.ts +0 -40
  506. package/dist/utils/download.js +0 -45
  507. package/dist/utils/download.js.map +0 -1
  508. package/dist/utils/encryption.cjs +0 -176
  509. package/dist/utils/encryption.cjs.map +0 -1
  510. package/dist/utils/encryption.d.ts +0 -271
  511. package/dist/utils/encryption.js +0 -142
  512. package/dist/utils/encryption.js.map +0 -1
  513. package/dist/utils/formatters.cjs +0 -55
  514. package/dist/utils/formatters.cjs.map +0 -1
  515. package/dist/utils/formatters.d.ts +0 -118
  516. package/dist/utils/formatters.js +0 -28
  517. package/dist/utils/formatters.js.map +0 -1
  518. package/dist/utils/grantFiles.cjs +0 -181
  519. package/dist/utils/grantFiles.cjs.map +0 -1
  520. package/dist/utils/grantFiles.d.ts +0 -172
  521. package/dist/utils/grantFiles.js +0 -143
  522. package/dist/utils/grantFiles.js.map +0 -1
  523. package/dist/utils/grantValidation.cjs +0 -243
  524. package/dist/utils/grantValidation.cjs.map +0 -1
  525. package/dist/utils/grantValidation.d.ts +0 -226
  526. package/dist/utils/grantValidation.js +0 -201
  527. package/dist/utils/grantValidation.js.map +0 -1
  528. package/dist/utils/grants.cjs +0 -108
  529. package/dist/utils/grants.cjs.map +0 -1
  530. package/dist/utils/grants.d.ts +0 -148
  531. package/dist/utils/grants.js +0 -82
  532. package/dist/utils/grants.js.map +0 -1
  533. package/dist/utils/ipfs.cjs +0 -128
  534. package/dist/utils/ipfs.cjs.map +0 -1
  535. package/dist/utils/ipfs.d.ts +0 -88
  536. package/dist/utils/ipfs.js +0 -97
  537. package/dist/utils/ipfs.js.map +0 -1
  538. package/dist/utils/multicall.cjs +0 -233
  539. package/dist/utils/multicall.cjs.map +0 -1
  540. package/dist/utils/multicall.d.ts +0 -126
  541. package/dist/utils/multicall.js +0 -208
  542. package/dist/utils/multicall.js.map +0 -1
  543. package/dist/utils/parseTransactionPojo.cjs +0 -87
  544. package/dist/utils/parseTransactionPojo.cjs.map +0 -1
  545. package/dist/utils/parseTransactionPojo.d.ts +0 -31
  546. package/dist/utils/parseTransactionPojo.js +0 -63
  547. package/dist/utils/parseTransactionPojo.js.map +0 -1
  548. package/dist/utils/schemaValidation.cjs +0 -258
  549. package/dist/utils/schemaValidation.cjs.map +0 -1
  550. package/dist/utils/schemaValidation.d.ts +0 -168
  551. package/dist/utils/schemaValidation.js +0 -219
  552. package/dist/utils/schemaValidation.js.map +0 -1
  553. package/dist/utils/signatureCache.cjs +0 -192
  554. package/dist/utils/signatureCache.cjs.map +0 -1
  555. package/dist/utils/signatureCache.d.ts +0 -172
  556. package/dist/utils/signatureCache.js +0 -167
  557. package/dist/utils/signatureCache.js.map +0 -1
  558. package/dist/utils/signatureFormatter.cjs +0 -42
  559. package/dist/utils/signatureFormatter.cjs.map +0 -1
  560. package/dist/utils/signatureFormatter.d.ts +0 -36
  561. package/dist/utils/signatureFormatter.js +0 -18
  562. package/dist/utils/signatureFormatter.js.map +0 -1
  563. package/dist/utils/subgraphConsistency.cjs +0 -184
  564. package/dist/utils/subgraphConsistency.cjs.map +0 -1
  565. package/dist/utils/subgraphConsistency.d.ts +0 -65
  566. package/dist/utils/subgraphConsistency.js +0 -155
  567. package/dist/utils/subgraphConsistency.js.map +0 -1
  568. package/dist/utils/subgraphMetaCache.cjs +0 -101
  569. package/dist/utils/subgraphMetaCache.cjs.map +0 -1
  570. package/dist/utils/subgraphMetaCache.d.ts +0 -56
  571. package/dist/utils/subgraphMetaCache.js +0 -76
  572. package/dist/utils/subgraphMetaCache.js.map +0 -1
  573. package/dist/utils/subgraphPagination.cjs +0 -104
  574. package/dist/utils/subgraphPagination.cjs.map +0 -1
  575. package/dist/utils/subgraphPagination.d.ts +0 -78
  576. package/dist/utils/subgraphPagination.js +0 -78
  577. package/dist/utils/subgraphPagination.js.map +0 -1
  578. package/dist/utils/tests/multicall.test.d.ts +0 -1
  579. package/dist/utils/transactionHelpers.cjs +0 -54
  580. package/dist/utils/transactionHelpers.cjs.map +0 -1
  581. package/dist/utils/transactionHelpers.d.ts +0 -80
  582. package/dist/utils/transactionHelpers.js +0 -29
  583. package/dist/utils/transactionHelpers.js.map +0 -1
  584. package/dist/utils/typeGuards.cjs +0 -109
  585. package/dist/utils/typeGuards.cjs.map +0 -1
  586. package/dist/utils/typeGuards.d.ts +0 -138
  587. package/dist/utils/typeGuards.js +0 -74
  588. package/dist/utils/typeGuards.js.map +0 -1
  589. package/dist/utils/typedDataConverter.cjs +0 -43
  590. package/dist/utils/typedDataConverter.cjs.map +0 -1
  591. package/dist/utils/typedDataConverter.d.ts +0 -46
  592. package/dist/utils/typedDataConverter.js +0 -19
  593. package/dist/utils/typedDataConverter.js.map +0 -1
  594. package/dist/utils/urlResolver.cjs +0 -62
  595. package/dist/utils/urlResolver.cjs.map +0 -1
  596. package/dist/utils/urlResolver.d.ts +0 -56
  597. package/dist/utils/urlResolver.js +0 -37
  598. package/dist/utils/urlResolver.js.map +0 -1
  599. package/dist/utils/wallet.cjs +0 -63
  600. package/dist/utils/wallet.cjs.map +0 -1
  601. package/dist/utils/wallet.d.ts +0 -94
  602. package/dist/utils/wallet.js +0 -37
  603. package/dist/utils/wallet.js.map +0 -1
  604. package/dist/utils/withEvents.cjs +0 -44
  605. package/dist/utils/withEvents.cjs.map +0 -1
  606. package/dist/utils/withEvents.d.ts +0 -56
  607. package/dist/utils/withEvents.js +0 -18
  608. package/dist/utils/withEvents.js.map +0 -1
  609. /package/dist/{__tests__/waitForTransactionEvents.test.d.ts → auth/pkce.test.d.ts} +0 -0
  610. /package/dist/{client/__tests__/enhancedResponse.test.d.ts → auth/token-store.test.d.ts} +0 -0
  611. /package/dist/{controllers/__tests__/operations.processQueue.test.d.ts → auth/web3-signed.test.d.ts} +0 -0
  612. /package/dist/{controllers/__tests__/schemas-edge-cases.test.d.ts → crypto/envelope/openpgp.test.d.ts} +0 -0
  613. /package/dist/{controllers/data-error-handling.test.d.ts → crypto/keys/derive.test.d.ts} +0 -0
  614. /package/dist/{tests/errors.test.d.ts → errors.test.d.ts} +0 -0
  615. /package/dist/{controllers/server-additional.test.d.ts → protocol/data-file.test.d.ts} +0 -0
  616. /package/dist/{core/__tests__/health.test.d.ts → protocol/eip712.test.d.ts} +0 -0
  617. /package/dist/{core/__tests__/inMemoryNonceManager.test.d.ts → protocol/gateway.test.d.ts} +0 -0
  618. /package/dist/{core/__tests__/nonceManager.test.d.ts → protocol/scopes.test.d.ts} +0 -0
  619. /package/dist/{core/core.test.d.ts → storage/tests/defaultStorage.test.d.ts} +0 -0
  620. /package/dist/{core/tests/apiClient.test.d.ts → storage/tests/r2Storage.test.d.ts} +0 -0
  621. /package/dist/{core/tests/client.test.d.ts → storage/tests/vanaStorage.test.d.ts} +0 -0
  622. /package/dist/{core/tests/generics.test.d.ts → types/ps-errors.test.d.ts} +0 -0
@@ -1,155 +0,0 @@
1
- import { print } from "graphql";
2
- import { GetSubgraphMetaDocument } from "../generated/subgraph";
3
- import { globalMetaCache } from "./subgraphMetaCache";
4
- class StaleDataError extends Error {
5
- constructor(requiredBlock, currentBlock, message) {
6
- super(
7
- message ?? `Subgraph data is stale. Required block: ${requiredBlock}, Current block: ${currentBlock}`
8
- );
9
- this.requiredBlock = requiredBlock;
10
- this.currentBlock = currentBlock;
11
- this.name = "StaleDataError";
12
- }
13
- }
14
- async function fetchSubgraphMeta(subgraphUrl, useCache = true) {
15
- if (useCache) {
16
- const cached = globalMetaCache.get(subgraphUrl);
17
- if (cached) {
18
- return cached;
19
- }
20
- }
21
- const response = await fetch(subgraphUrl, {
22
- method: "POST",
23
- headers: {
24
- "Content-Type": "application/json"
25
- },
26
- body: JSON.stringify({
27
- query: print(GetSubgraphMetaDocument)
28
- })
29
- });
30
- if (!response.ok) {
31
- throw new Error(
32
- `Failed to fetch subgraph metadata: ${response.status} ${response.statusText}`
33
- );
34
- }
35
- const result = await response.json();
36
- if (result.errors) {
37
- throw new Error(
38
- `Subgraph query errors: ${result.errors.map((e) => e.message).join(", ")}`
39
- );
40
- }
41
- if (!result.data?._meta) {
42
- throw new Error("No metadata returned from subgraph");
43
- }
44
- const meta = result.data._meta;
45
- const subgraphMeta = {
46
- blockNumber: meta.block.number,
47
- blockTimestamp: meta.block.timestamp ?? void 0,
48
- blockHash: meta.block.hash ?? void 0,
49
- deployment: meta.deployment,
50
- hasIndexingErrors: meta.hasIndexingErrors
51
- };
52
- if (useCache) {
53
- globalMetaCache.set(subgraphUrl, subgraphMeta);
54
- }
55
- return subgraphMeta;
56
- }
57
- async function checkSubgraphConsistency(subgraphUrl, options) {
58
- if (options?.signal?.aborted) {
59
- throw new Error("Operation aborted");
60
- }
61
- if (!options?.minBlock) {
62
- return fetchSubgraphMeta(subgraphUrl);
63
- }
64
- const meta = await fetchSubgraphMeta(subgraphUrl);
65
- if (meta.blockNumber < options.minBlock) {
66
- if (options.waitForSync && options.waitForSync > 0) {
67
- return waitForSubgraphSync(
68
- subgraphUrl,
69
- options.minBlock,
70
- options.waitForSync,
71
- 2e3,
72
- // pollInterval
73
- options.signal
74
- );
75
- }
76
- throw new StaleDataError(options.minBlock, meta.blockNumber);
77
- }
78
- return meta;
79
- }
80
- async function waitForSubgraphSync(subgraphUrl, targetBlock, maxWait, pollInterval = 2e3, signal) {
81
- const startTime = Date.now();
82
- if (signal?.aborted) {
83
- throw new Error("Operation aborted");
84
- }
85
- const checkAbort = () => {
86
- if (signal?.aborted) {
87
- throw new Error("Operation aborted");
88
- }
89
- };
90
- while (Date.now() - startTime < maxWait) {
91
- checkAbort();
92
- const meta = await fetchSubgraphMeta(subgraphUrl);
93
- if (meta.blockNumber >= targetBlock) {
94
- return meta;
95
- }
96
- await new Promise((resolve, reject) => {
97
- const timer = setTimeout(resolve, pollInterval);
98
- if (signal) {
99
- const abortHandler = () => {
100
- clearTimeout(timer);
101
- reject(new Error("Operation aborted"));
102
- };
103
- if (signal.aborted) {
104
- abortHandler();
105
- } else {
106
- signal.addEventListener("abort", abortHandler, { once: true });
107
- }
108
- }
109
- });
110
- }
111
- checkAbort();
112
- const finalMeta = await fetchSubgraphMeta(subgraphUrl);
113
- if (finalMeta.blockNumber >= targetBlock) {
114
- return finalMeta;
115
- }
116
- throw new StaleDataError(
117
- targetBlock,
118
- finalMeta.blockNumber,
119
- `Subgraph did not sync to block ${targetBlock} within ${maxWait}ms. Current block: ${finalMeta.blockNumber}`
120
- );
121
- }
122
- function calculateStaleness(meta, currentTimestamp) {
123
- if (!meta.blockTimestamp) {
124
- return void 0;
125
- }
126
- return Math.max(0, currentTimestamp - meta.blockTimestamp);
127
- }
128
- function addMetaToQuery(baseQuery) {
129
- if (baseQuery.includes("_meta")) {
130
- return baseQuery;
131
- }
132
- const queryMatch = baseQuery.match(/query\s+\w+[^{]*\{/);
133
- if (!queryMatch) {
134
- return baseQuery;
135
- }
136
- const insertPoint = queryMatch.index + queryMatch[0].length;
137
- return baseQuery.slice(0, insertPoint) + `
138
- _meta {
139
- block {
140
- number
141
- timestamp
142
- }
143
- hasIndexingErrors
144
- }
145
- ` + baseQuery.slice(insertPoint);
146
- }
147
- export {
148
- StaleDataError,
149
- addMetaToQuery,
150
- calculateStaleness,
151
- checkSubgraphConsistency,
152
- fetchSubgraphMeta,
153
- waitForSubgraphSync
154
- };
155
- //# sourceMappingURL=subgraphConsistency.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/subgraphConsistency.ts"],"sourcesContent":["/**\n * @file Utilities for handling subgraph data consistency\n * @module vana-sdk/utils/subgraphConsistency\n */\n\nimport { print } from \"graphql\";\nimport type { ConsistencyOptions } from \"../types/options\";\nimport type { GetSubgraphMetaQuery } from \"../generated/subgraph\";\nimport { GetSubgraphMetaDocument } from \"../generated/subgraph\";\nimport { globalMetaCache } from \"./subgraphMetaCache\";\n\n/**\n * Error thrown when subgraph data is stale relative to consistency requirements\n */\nexport class StaleDataError extends Error {\n constructor(\n public readonly requiredBlock: number,\n public readonly currentBlock: number,\n message?: string,\n ) {\n super(\n message ??\n `Subgraph data is stale. Required block: ${requiredBlock}, Current block: ${currentBlock}`,\n );\n this.name = \"StaleDataError\";\n }\n}\n\n/**\n * Subgraph metadata response structure\n */\nexport interface SubgraphMeta {\n blockNumber: number;\n blockTimestamp?: number;\n blockHash?: string;\n deployment: string;\n hasIndexingErrors: boolean;\n}\n\n/**\n * Response structure from subgraph queries\n */\ninterface SubgraphResponse<T> {\n data?: T;\n errors?: Array<{ message: string }>;\n}\n\n/**\n * Fetches the current metadata from a subgraph\n *\n * @param subgraphUrl - The GraphQL endpoint URL\n * @returns Current block information and indexing status\n */\nexport async function fetchSubgraphMeta(\n subgraphUrl: string,\n useCache = true,\n): Promise<SubgraphMeta> {\n // Check cache first\n if (useCache) {\n const cached = globalMetaCache.get(subgraphUrl);\n if (cached) {\n return cached;\n }\n }\n\n const response = await fetch(subgraphUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n query: print(GetSubgraphMetaDocument),\n }),\n });\n\n if (!response.ok) {\n throw new Error(\n `Failed to fetch subgraph metadata: ${response.status} ${response.statusText}`,\n );\n }\n\n const result =\n (await response.json()) as SubgraphResponse<GetSubgraphMetaQuery>;\n\n if (result.errors) {\n throw new Error(\n `Subgraph query errors: ${result.errors.map((e) => e.message).join(\", \")}`,\n );\n }\n\n if (!result.data?._meta) {\n throw new Error(\"No metadata returned from subgraph\");\n }\n\n const meta = result.data._meta;\n const subgraphMeta: SubgraphMeta = {\n blockNumber: meta.block.number,\n blockTimestamp: meta.block.timestamp ?? undefined,\n blockHash: meta.block.hash ?? undefined,\n deployment: meta.deployment,\n hasIndexingErrors: meta.hasIndexingErrors,\n };\n\n // Cache the result\n if (useCache) {\n globalMetaCache.set(subgraphUrl, subgraphMeta);\n }\n\n return subgraphMeta;\n}\n\n/**\n * Checks if subgraph meets consistency requirements\n *\n * @param subgraphUrl - The GraphQL endpoint URL\n * @param options - Consistency requirements\n * @returns The subgraph metadata if requirements are met\n * @throws {StaleDataError} If subgraph is behind required block\n */\nexport async function checkSubgraphConsistency(\n subgraphUrl: string,\n options?: ConsistencyOptions,\n): Promise<SubgraphMeta> {\n // Check if already aborted\n if (options?.signal?.aborted) {\n throw new Error(\"Operation aborted\");\n }\n\n // If no consistency requirements, just return current metadata\n if (!options?.minBlock) {\n return fetchSubgraphMeta(subgraphUrl);\n }\n\n const meta = await fetchSubgraphMeta(subgraphUrl);\n\n // Check if subgraph has reached required block\n if (meta.blockNumber < options.minBlock) {\n // If waitForSync is specified, poll until caught up\n if (options.waitForSync && options.waitForSync > 0) {\n return waitForSubgraphSync(\n subgraphUrl,\n options.minBlock,\n options.waitForSync,\n 2000, // pollInterval\n options.signal,\n );\n }\n\n // Otherwise throw immediately\n throw new StaleDataError(options.minBlock, meta.blockNumber);\n }\n\n return meta;\n}\n\n/**\n * Waits for subgraph to sync to a specific block\n *\n * @param subgraphUrl - The GraphQL endpoint URL\n * @param targetBlock - Block number to wait for\n * @param maxWait - Maximum milliseconds to wait\n * @param pollInterval - How often to check (default: 2000ms)\n * @returns The subgraph metadata when target is reached\n * @throws {StaleDataError} If timeout is reached before sync\n */\nexport async function waitForSubgraphSync(\n subgraphUrl: string,\n targetBlock: number,\n maxWait: number,\n pollInterval = 2000,\n signal?: AbortSignal,\n): Promise<SubgraphMeta> {\n const startTime = Date.now();\n\n // Check if already aborted\n if (signal?.aborted) {\n throw new Error(\"Operation aborted\");\n }\n\n // Set up abort handling\n const checkAbort = () => {\n if (signal?.aborted) {\n throw new Error(\"Operation aborted\");\n }\n };\n\n while (Date.now() - startTime < maxWait) {\n checkAbort();\n const meta = await fetchSubgraphMeta(subgraphUrl);\n\n // Check if we've reached the target\n if (meta.blockNumber >= targetBlock) {\n return meta;\n }\n\n // Wait before next check with abort support\n await new Promise<void>((resolve, reject) => {\n const timer = setTimeout(resolve, pollInterval);\n\n if (signal) {\n const abortHandler = () => {\n clearTimeout(timer);\n reject(new Error(\"Operation aborted\"));\n };\n\n if (signal.aborted) {\n abortHandler();\n } else {\n signal.addEventListener(\"abort\", abortHandler, { once: true });\n }\n }\n });\n }\n\n // Timeout reached, check one more time\n checkAbort();\n const finalMeta = await fetchSubgraphMeta(subgraphUrl);\n if (finalMeta.blockNumber >= targetBlock) {\n return finalMeta;\n }\n\n throw new StaleDataError(\n targetBlock,\n finalMeta.blockNumber,\n `Subgraph did not sync to block ${targetBlock} within ${maxWait}ms. Current block: ${finalMeta.blockNumber}`,\n );\n}\n\n/**\n * Calculates staleness in seconds based on block timestamps\n *\n * @param meta - Subgraph metadata\n * @param currentTimestamp - Current chain timestamp\n * @returns Seconds behind the chain, or undefined if timestamps unavailable\n */\nexport function calculateStaleness(\n meta: SubgraphMeta,\n currentTimestamp: number,\n): number | undefined {\n if (!meta.blockTimestamp) {\n return undefined;\n }\n\n return Math.max(0, currentTimestamp - meta.blockTimestamp);\n}\n\n/**\n * Builds a GraphQL query with _meta field included\n *\n * @param baseQuery - The original query string\n * @returns Query with _meta field added\n */\nexport function addMetaToQuery(baseQuery: string): string {\n // Simple approach: inject _meta at the root level\n // This is a basic implementation - could be enhanced with proper AST manipulation\n if (baseQuery.includes(\"_meta\")) {\n return baseQuery; // Already has meta\n }\n\n // Find the first { after query name and inject _meta\n const queryMatch = baseQuery.match(/query\\s+\\w+[^{]*\\{/);\n if (!queryMatch) {\n return baseQuery; // Can't parse, return as-is\n }\n\n const insertPoint = queryMatch.index! + queryMatch[0].length;\n return (\n baseQuery.slice(0, insertPoint) +\n `\n _meta {\n block {\n number\n timestamp\n }\n hasIndexingErrors\n }\n ` +\n baseQuery.slice(insertPoint)\n );\n}\n"],"mappings":"AAKA,SAAS,aAAa;AAGtB,SAAS,+BAA+B;AACxC,SAAS,uBAAuB;AAKzB,MAAM,uBAAuB,MAAM;AAAA,EACxC,YACkB,eACA,cAChB,SACA;AACA;AAAA,MACE,WACE,2CAA2C,aAAa,oBAAoB,YAAY;AAAA,IAC5F;AAPgB;AACA;AAOhB,SAAK,OAAO;AAAA,EACd;AACF;AA2BA,eAAsB,kBACpB,aACA,WAAW,MACY;AAEvB,MAAI,UAAU;AACZ,UAAM,SAAS,gBAAgB,IAAI,WAAW;AAC9C,QAAI,QAAQ;AACV,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,WAAW,MAAM,MAAM,aAAa;AAAA,IACxC,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,gBAAgB;AAAA,IAClB;AAAA,IACA,MAAM,KAAK,UAAU;AAAA,MACnB,OAAO,MAAM,uBAAuB;AAAA,IACtC,CAAC;AAAA,EACH,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI;AAAA,MACR,sCAAsC,SAAS,MAAM,IAAI,SAAS,UAAU;AAAA,IAC9E;AAAA,EACF;AAEA,QAAM,SACH,MAAM,SAAS,KAAK;AAEvB,MAAI,OAAO,QAAQ;AACjB,UAAM,IAAI;AAAA,MACR,0BAA0B,OAAO,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAAA,IAC1E;AAAA,EACF;AAEA,MAAI,CAAC,OAAO,MAAM,OAAO;AACvB,UAAM,IAAI,MAAM,oCAAoC;AAAA,EACtD;AAEA,QAAM,OAAO,OAAO,KAAK;AACzB,QAAM,eAA6B;AAAA,IACjC,aAAa,KAAK,MAAM;AAAA,IACxB,gBAAgB,KAAK,MAAM,aAAa;AAAA,IACxC,WAAW,KAAK,MAAM,QAAQ;AAAA,IAC9B,YAAY,KAAK;AAAA,IACjB,mBAAmB,KAAK;AAAA,EAC1B;AAGA,MAAI,UAAU;AACZ,oBAAgB,IAAI,aAAa,YAAY;AAAA,EAC/C;AAEA,SAAO;AACT;AAUA,eAAsB,yBACpB,aACA,SACuB;AAEvB,MAAI,SAAS,QAAQ,SAAS;AAC5B,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACrC;AAGA,MAAI,CAAC,SAAS,UAAU;AACtB,WAAO,kBAAkB,WAAW;AAAA,EACtC;AAEA,QAAM,OAAO,MAAM,kBAAkB,WAAW;AAGhD,MAAI,KAAK,cAAc,QAAQ,UAAU;AAEvC,QAAI,QAAQ,eAAe,QAAQ,cAAc,GAAG;AAClD,aAAO;AAAA,QACL;AAAA,QACA,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR;AAAA;AAAA,QACA,QAAQ;AAAA,MACV;AAAA,IACF;AAGA,UAAM,IAAI,eAAe,QAAQ,UAAU,KAAK,WAAW;AAAA,EAC7D;AAEA,SAAO;AACT;AAYA,eAAsB,oBACpB,aACA,aACA,SACA,eAAe,KACf,QACuB;AACvB,QAAM,YAAY,KAAK,IAAI;AAG3B,MAAI,QAAQ,SAAS;AACnB,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACrC;AAGA,QAAM,aAAa,MAAM;AACvB,QAAI,QAAQ,SAAS;AACnB,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AAAA,EACF;AAEA,SAAO,KAAK,IAAI,IAAI,YAAY,SAAS;AACvC,eAAW;AACX,UAAM,OAAO,MAAM,kBAAkB,WAAW;AAGhD,QAAI,KAAK,eAAe,aAAa;AACnC,aAAO;AAAA,IACT;AAGA,UAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AAC3C,YAAM,QAAQ,WAAW,SAAS,YAAY;AAE9C,UAAI,QAAQ;AACV,cAAM,eAAe,MAAM;AACzB,uBAAa,KAAK;AAClB,iBAAO,IAAI,MAAM,mBAAmB,CAAC;AAAA,QACvC;AAEA,YAAI,OAAO,SAAS;AAClB,uBAAa;AAAA,QACf,OAAO;AACL,iBAAO,iBAAiB,SAAS,cAAc,EAAE,MAAM,KAAK,CAAC;AAAA,QAC/D;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAGA,aAAW;AACX,QAAM,YAAY,MAAM,kBAAkB,WAAW;AACrD,MAAI,UAAU,eAAe,aAAa;AACxC,WAAO;AAAA,EACT;AAEA,QAAM,IAAI;AAAA,IACR;AAAA,IACA,UAAU;AAAA,IACV,kCAAkC,WAAW,WAAW,OAAO,sBAAsB,UAAU,WAAW;AAAA,EAC5G;AACF;AASO,SAAS,mBACd,MACA,kBACoB;AACpB,MAAI,CAAC,KAAK,gBAAgB;AACxB,WAAO;AAAA,EACT;AAEA,SAAO,KAAK,IAAI,GAAG,mBAAmB,KAAK,cAAc;AAC3D;AAQO,SAAS,eAAe,WAA2B;AAGxD,MAAI,UAAU,SAAS,OAAO,GAAG;AAC/B,WAAO;AAAA,EACT;AAGA,QAAM,aAAa,UAAU,MAAM,oBAAoB;AACvD,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,WAAW,QAAS,WAAW,CAAC,EAAE;AACtD,SACE,UAAU,MAAM,GAAG,WAAW,IAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASA,UAAU,MAAM,WAAW;AAE/B;","names":[]}
@@ -1,101 +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 subgraphMetaCache_exports = {};
20
- __export(subgraphMetaCache_exports, {
21
- SubgraphMetaCache: () => SubgraphMetaCache,
22
- globalMetaCache: () => globalMetaCache
23
- });
24
- module.exports = __toCommonJS(subgraphMetaCache_exports);
25
- class SubgraphMetaCache {
26
- cache = /* @__PURE__ */ new Map();
27
- maxSize;
28
- ttl;
29
- /**
30
- * Create a new metadata cache
31
- *
32
- * @param ttl - Time to live in milliseconds (default: 2000ms)
33
- * @param maxSize - Maximum cache entries (default: 10)
34
- */
35
- constructor(ttl = 2e3, maxSize = 10) {
36
- this.ttl = ttl;
37
- this.maxSize = maxSize;
38
- }
39
- /**
40
- * Get cached metadata if fresh
41
- *
42
- * @param url - Subgraph URL as cache key
43
- * @returns Cached metadata or undefined if stale/missing
44
- */
45
- get(url) {
46
- const entry = this.cache.get(url);
47
- if (!entry) {
48
- return void 0;
49
- }
50
- if (Date.now() - entry.timestamp > this.ttl) {
51
- this.cache.delete(url);
52
- return void 0;
53
- }
54
- this.cache.delete(url);
55
- this.cache.set(url, entry);
56
- return entry.meta;
57
- }
58
- /**
59
- * Store metadata in cache
60
- *
61
- * @param url - Subgraph URL as cache key
62
- * @param meta - Metadata to cache
63
- */
64
- set(url, meta) {
65
- if (this.cache.size >= this.maxSize && !this.cache.has(url)) {
66
- const firstKey = this.cache.keys().next().value;
67
- if (firstKey) {
68
- this.cache.delete(firstKey);
69
- }
70
- }
71
- this.cache.set(url, {
72
- meta,
73
- timestamp: Date.now()
74
- });
75
- }
76
- /**
77
- * Clear all cached entries
78
- */
79
- clear() {
80
- this.cache.clear();
81
- }
82
- /**
83
- * Get cache statistics
84
- *
85
- * @returns Cache size and TTL info
86
- */
87
- stats() {
88
- return {
89
- size: this.cache.size,
90
- ttl: this.ttl,
91
- maxSize: this.maxSize
92
- };
93
- }
94
- }
95
- const globalMetaCache = new SubgraphMetaCache();
96
- // Annotate the CommonJS export names for ESM import in node:
97
- 0 && (module.exports = {
98
- SubgraphMetaCache,
99
- globalMetaCache
100
- });
101
- //# sourceMappingURL=subgraphMetaCache.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/subgraphMetaCache.ts"],"sourcesContent":["/**\n * @file Simple cache for subgraph metadata to reduce redundant queries\n * @module vana-sdk/utils/subgraphMetaCache\n */\n\nimport type { SubgraphMeta } from \"./subgraphConsistency\";\n\ninterface CacheEntry {\n meta: SubgraphMeta;\n timestamp: number;\n}\n\n/**\n * Simple LRU cache for subgraph metadata\n *\n * @remarks\n * Reduces redundant _meta queries when multiple SDK methods are called\n * in quick succession. Uses a very short TTL to avoid masking staleness.\n */\nexport class SubgraphMetaCache {\n private cache = new Map<string, CacheEntry>();\n private readonly maxSize: number;\n private readonly ttl: number;\n\n /**\n * Create a new metadata cache\n *\n * @param ttl - Time to live in milliseconds (default: 2000ms)\n * @param maxSize - Maximum cache entries (default: 10)\n */\n constructor(ttl = 2000, maxSize = 10) {\n this.ttl = ttl;\n this.maxSize = maxSize;\n }\n\n /**\n * Get cached metadata if fresh\n *\n * @param url - Subgraph URL as cache key\n * @returns Cached metadata or undefined if stale/missing\n */\n get(url: string): SubgraphMeta | undefined {\n const entry = this.cache.get(url);\n\n if (!entry) {\n return undefined;\n }\n\n // Check if still fresh\n if (Date.now() - entry.timestamp > this.ttl) {\n // Expired, remove it\n this.cache.delete(url);\n return undefined;\n }\n\n // Move to end (LRU)\n this.cache.delete(url);\n this.cache.set(url, entry);\n\n return entry.meta;\n }\n\n /**\n * Store metadata in cache\n *\n * @param url - Subgraph URL as cache key\n * @param meta - Metadata to cache\n */\n set(url: string, meta: SubgraphMeta): void {\n // Remove oldest if at capacity\n if (this.cache.size >= this.maxSize && !this.cache.has(url)) {\n const firstKey = this.cache.keys().next().value;\n if (firstKey) {\n this.cache.delete(firstKey);\n }\n }\n\n this.cache.set(url, {\n meta,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Clear all cached entries\n */\n clear(): void {\n this.cache.clear();\n }\n\n /**\n * Get cache statistics\n *\n * @returns Cache size and TTL info\n */\n stats(): { size: number; ttl: number; maxSize: number } {\n return {\n size: this.cache.size,\n ttl: this.ttl,\n maxSize: this.maxSize,\n };\n }\n}\n\n/**\n * Global cache instance (optional, can be configured per SDK instance)\n */\nexport const globalMetaCache = new SubgraphMetaCache();\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBO,MAAM,kBAAkB;AAAA,EACrB,QAAQ,oBAAI,IAAwB;AAAA,EAC3B;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQjB,YAAY,MAAM,KAAM,UAAU,IAAI;AACpC,SAAK,MAAM;AACX,SAAK,UAAU;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAI,KAAuC;AACzC,UAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;AAEhC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAGA,QAAI,KAAK,IAAI,IAAI,MAAM,YAAY,KAAK,KAAK;AAE3C,WAAK,MAAM,OAAO,GAAG;AACrB,aAAO;AAAA,IACT;AAGA,SAAK,MAAM,OAAO,GAAG;AACrB,SAAK,MAAM,IAAI,KAAK,KAAK;AAEzB,WAAO,MAAM;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAI,KAAa,MAA0B;AAEzC,QAAI,KAAK,MAAM,QAAQ,KAAK,WAAW,CAAC,KAAK,MAAM,IAAI,GAAG,GAAG;AAC3D,YAAM,WAAW,KAAK,MAAM,KAAK,EAAE,KAAK,EAAE;AAC1C,UAAI,UAAU;AACZ,aAAK,MAAM,OAAO,QAAQ;AAAA,MAC5B;AAAA,IACF;AAEA,SAAK,MAAM,IAAI,KAAK;AAAA,MAClB;AAAA,MACA,WAAW,KAAK,IAAI;AAAA,IACtB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,SAAK,MAAM,MAAM;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAwD;AACtD,WAAO;AAAA,MACL,MAAM,KAAK,MAAM;AAAA,MACjB,KAAK,KAAK;AAAA,MACV,SAAS,KAAK;AAAA,IAChB;AAAA,EACF;AACF;AAKO,MAAM,kBAAkB,IAAI,kBAAkB;","names":[]}
@@ -1,56 +0,0 @@
1
- /**
2
- * @file Simple cache for subgraph metadata to reduce redundant queries
3
- * @module vana-sdk/utils/subgraphMetaCache
4
- */
5
- import type { SubgraphMeta } from "./subgraphConsistency";
6
- /**
7
- * Simple LRU cache for subgraph metadata
8
- *
9
- * @remarks
10
- * Reduces redundant _meta queries when multiple SDK methods are called
11
- * in quick succession. Uses a very short TTL to avoid masking staleness.
12
- */
13
- export declare class SubgraphMetaCache {
14
- private cache;
15
- private readonly maxSize;
16
- private readonly ttl;
17
- /**
18
- * Create a new metadata cache
19
- *
20
- * @param ttl - Time to live in milliseconds (default: 2000ms)
21
- * @param maxSize - Maximum cache entries (default: 10)
22
- */
23
- constructor(ttl?: number, maxSize?: number);
24
- /**
25
- * Get cached metadata if fresh
26
- *
27
- * @param url - Subgraph URL as cache key
28
- * @returns Cached metadata or undefined if stale/missing
29
- */
30
- get(url: string): SubgraphMeta | undefined;
31
- /**
32
- * Store metadata in cache
33
- *
34
- * @param url - Subgraph URL as cache key
35
- * @param meta - Metadata to cache
36
- */
37
- set(url: string, meta: SubgraphMeta): void;
38
- /**
39
- * Clear all cached entries
40
- */
41
- clear(): void;
42
- /**
43
- * Get cache statistics
44
- *
45
- * @returns Cache size and TTL info
46
- */
47
- stats(): {
48
- size: number;
49
- ttl: number;
50
- maxSize: number;
51
- };
52
- }
53
- /**
54
- * Global cache instance (optional, can be configured per SDK instance)
55
- */
56
- export declare const globalMetaCache: SubgraphMetaCache;
@@ -1,76 +0,0 @@
1
- class SubgraphMetaCache {
2
- cache = /* @__PURE__ */ new Map();
3
- maxSize;
4
- ttl;
5
- /**
6
- * Create a new metadata cache
7
- *
8
- * @param ttl - Time to live in milliseconds (default: 2000ms)
9
- * @param maxSize - Maximum cache entries (default: 10)
10
- */
11
- constructor(ttl = 2e3, maxSize = 10) {
12
- this.ttl = ttl;
13
- this.maxSize = maxSize;
14
- }
15
- /**
16
- * Get cached metadata if fresh
17
- *
18
- * @param url - Subgraph URL as cache key
19
- * @returns Cached metadata or undefined if stale/missing
20
- */
21
- get(url) {
22
- const entry = this.cache.get(url);
23
- if (!entry) {
24
- return void 0;
25
- }
26
- if (Date.now() - entry.timestamp > this.ttl) {
27
- this.cache.delete(url);
28
- return void 0;
29
- }
30
- this.cache.delete(url);
31
- this.cache.set(url, entry);
32
- return entry.meta;
33
- }
34
- /**
35
- * Store metadata in cache
36
- *
37
- * @param url - Subgraph URL as cache key
38
- * @param meta - Metadata to cache
39
- */
40
- set(url, meta) {
41
- if (this.cache.size >= this.maxSize && !this.cache.has(url)) {
42
- const firstKey = this.cache.keys().next().value;
43
- if (firstKey) {
44
- this.cache.delete(firstKey);
45
- }
46
- }
47
- this.cache.set(url, {
48
- meta,
49
- timestamp: Date.now()
50
- });
51
- }
52
- /**
53
- * Clear all cached entries
54
- */
55
- clear() {
56
- this.cache.clear();
57
- }
58
- /**
59
- * Get cache statistics
60
- *
61
- * @returns Cache size and TTL info
62
- */
63
- stats() {
64
- return {
65
- size: this.cache.size,
66
- ttl: this.ttl,
67
- maxSize: this.maxSize
68
- };
69
- }
70
- }
71
- const globalMetaCache = new SubgraphMetaCache();
72
- export {
73
- SubgraphMetaCache,
74
- globalMetaCache
75
- };
76
- //# sourceMappingURL=subgraphMetaCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/subgraphMetaCache.ts"],"sourcesContent":["/**\n * @file Simple cache for subgraph metadata to reduce redundant queries\n * @module vana-sdk/utils/subgraphMetaCache\n */\n\nimport type { SubgraphMeta } from \"./subgraphConsistency\";\n\ninterface CacheEntry {\n meta: SubgraphMeta;\n timestamp: number;\n}\n\n/**\n * Simple LRU cache for subgraph metadata\n *\n * @remarks\n * Reduces redundant _meta queries when multiple SDK methods are called\n * in quick succession. Uses a very short TTL to avoid masking staleness.\n */\nexport class SubgraphMetaCache {\n private cache = new Map<string, CacheEntry>();\n private readonly maxSize: number;\n private readonly ttl: number;\n\n /**\n * Create a new metadata cache\n *\n * @param ttl - Time to live in milliseconds (default: 2000ms)\n * @param maxSize - Maximum cache entries (default: 10)\n */\n constructor(ttl = 2000, maxSize = 10) {\n this.ttl = ttl;\n this.maxSize = maxSize;\n }\n\n /**\n * Get cached metadata if fresh\n *\n * @param url - Subgraph URL as cache key\n * @returns Cached metadata or undefined if stale/missing\n */\n get(url: string): SubgraphMeta | undefined {\n const entry = this.cache.get(url);\n\n if (!entry) {\n return undefined;\n }\n\n // Check if still fresh\n if (Date.now() - entry.timestamp > this.ttl) {\n // Expired, remove it\n this.cache.delete(url);\n return undefined;\n }\n\n // Move to end (LRU)\n this.cache.delete(url);\n this.cache.set(url, entry);\n\n return entry.meta;\n }\n\n /**\n * Store metadata in cache\n *\n * @param url - Subgraph URL as cache key\n * @param meta - Metadata to cache\n */\n set(url: string, meta: SubgraphMeta): void {\n // Remove oldest if at capacity\n if (this.cache.size >= this.maxSize && !this.cache.has(url)) {\n const firstKey = this.cache.keys().next().value;\n if (firstKey) {\n this.cache.delete(firstKey);\n }\n }\n\n this.cache.set(url, {\n meta,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Clear all cached entries\n */\n clear(): void {\n this.cache.clear();\n }\n\n /**\n * Get cache statistics\n *\n * @returns Cache size and TTL info\n */\n stats(): { size: number; ttl: number; maxSize: number } {\n return {\n size: this.cache.size,\n ttl: this.ttl,\n maxSize: this.maxSize,\n };\n }\n}\n\n/**\n * Global cache instance (optional, can be configured per SDK instance)\n */\nexport const globalMetaCache = new SubgraphMetaCache();\n"],"mappings":"AAmBO,MAAM,kBAAkB;AAAA,EACrB,QAAQ,oBAAI,IAAwB;AAAA,EAC3B;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQjB,YAAY,MAAM,KAAM,UAAU,IAAI;AACpC,SAAK,MAAM;AACX,SAAK,UAAU;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAI,KAAuC;AACzC,UAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;AAEhC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAGA,QAAI,KAAK,IAAI,IAAI,MAAM,YAAY,KAAK,KAAK;AAE3C,WAAK,MAAM,OAAO,GAAG;AACrB,aAAO;AAAA,IACT;AAGA,SAAK,MAAM,OAAO,GAAG;AACrB,SAAK,MAAM,IAAI,KAAK,KAAK;AAEzB,WAAO,MAAM;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAI,KAAa,MAA0B;AAEzC,QAAI,KAAK,MAAM,QAAQ,KAAK,WAAW,CAAC,KAAK,MAAM,IAAI,GAAG,GAAG;AAC3D,YAAM,WAAW,KAAK,MAAM,KAAK,EAAE,KAAK,EAAE;AAC1C,UAAI,UAAU;AACZ,aAAK,MAAM,OAAO,QAAQ;AAAA,MAC5B;AAAA,IACF;AAEA,SAAK,MAAM,IAAI,KAAK;AAAA,MAClB;AAAA,MACA,WAAW,KAAK,IAAI;AAAA,IACtB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,SAAK,MAAM,MAAM;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAwD;AACtD,WAAO;AAAA,MACL,MAAM,KAAK,MAAM;AAAA,MACjB,KAAK,KAAK;AAAA,MACV,SAAS,KAAK;AAAA,IAChB;AAAA,EACF;AACF;AAKO,MAAM,kBAAkB,IAAI,kBAAkB;","names":[]}
@@ -1,104 +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 subgraphPagination_exports = {};
20
- __export(subgraphPagination_exports, {
21
- executePaginatedQuery: () => executePaginatedQuery,
22
- mapOrderByToEnum: () => mapOrderByToEnum,
23
- mapOrderDirection: () => mapOrderDirection
24
- });
25
- module.exports = __toCommonJS(subgraphPagination_exports);
26
- var import_graphql = require("graphql");
27
- async function executePaginatedQuery(config) {
28
- const {
29
- endpoint,
30
- document,
31
- baseVariables,
32
- options,
33
- extractItems,
34
- transformItem,
35
- maxPerQuery = 1e3
36
- } = config;
37
- const limit = options?.fetchAll ? Number.MAX_SAFE_INTEGER : options?.limit ?? 100;
38
- const offset = options?.offset ?? 0;
39
- const orderBy = options?.orderBy;
40
- const orderDirection = options?.orderDirection;
41
- const allItems = [];
42
- let currentOffset = offset;
43
- const pageSize = Math.min(limit, maxPerQuery);
44
- while (true) {
45
- const currentLimit = options?.fetchAll ? pageSize : Math.min(pageSize, limit - allItems.length);
46
- const variables = {
47
- ...baseVariables,
48
- first: currentLimit,
49
- skip: currentOffset,
50
- ...orderBy && { orderBy },
51
- ...orderDirection && { orderDirection }
52
- };
53
- const response = await fetch(endpoint, {
54
- method: "POST",
55
- headers: {
56
- "Content-Type": "application/json"
57
- },
58
- body: JSON.stringify({
59
- query: (0, import_graphql.print)(document),
60
- variables
61
- })
62
- });
63
- if (!response.ok) {
64
- throw new Error(
65
- `Subgraph request failed: ${response.status} ${response.statusText}`
66
- );
67
- }
68
- const result = await response.json();
69
- if (result.errors) {
70
- throw new Error(
71
- `Subgraph errors: ${result.errors.map((e) => e.message).join(", ")}`
72
- );
73
- }
74
- const items = extractItems(result.data);
75
- if (!items || items.length === 0) {
76
- break;
77
- }
78
- const transformedItems = transformItem ? items.map(transformItem) : items;
79
- allItems.push(...transformedItems);
80
- if (!options?.fetchAll && allItems.length >= limit) {
81
- return allItems.slice(0, limit);
82
- }
83
- if (items.length < currentLimit) {
84
- break;
85
- }
86
- currentOffset += items.length;
87
- }
88
- return allItems;
89
- }
90
- function mapOrderByToEnum(orderBy, enumMap, defaultValue) {
91
- if (!orderBy) return defaultValue;
92
- return enumMap[orderBy] ?? defaultValue;
93
- }
94
- function mapOrderDirection(direction, ascValue, descValue, defaultValue) {
95
- if (!direction) return defaultValue ?? descValue;
96
- return direction === "asc" ? ascValue : descValue;
97
- }
98
- // Annotate the CommonJS export names for ESM import in node:
99
- 0 && (module.exports = {
100
- executePaginatedQuery,
101
- mapOrderByToEnum,
102
- mapOrderDirection
103
- });
104
- //# sourceMappingURL=subgraphPagination.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/subgraphPagination.ts"],"sourcesContent":["/**\n * @file Utilities for handling paginated subgraph queries\n * @module vana-sdk/utils/subgraphPagination\n */\n\nimport { print, type DocumentNode } from \"graphql\";\nimport type { PaginationOptions } from \"../types/options\";\n\n/**\n * Generic subgraph response structure\n */\nexport interface SubgraphResponse<T> {\n data?: T;\n errors?: Array<{ message: string }>;\n}\n\n/**\n * Configuration for paginated subgraph queries\n */\nexport interface PaginatedQueryConfig<TData, TItem, TRawItem = any> {\n /** The GraphQL endpoint URL */\n endpoint: string;\n\n /** The GraphQL document to execute */\n document: DocumentNode;\n\n /** Base variables for the query (e.g., userId) */\n baseVariables: Record<string, any>;\n\n /** Pagination options from the user */\n options?: PaginationOptions;\n\n /** Function to extract items from the response */\n extractItems: (data: TData) => TRawItem[] | undefined;\n\n /** Function to transform items if needed */\n transformItem?: (item: TRawItem) => TItem;\n\n /** Maximum items per GraphQL query (default: 1000) */\n maxPerQuery?: number;\n}\n\n/**\n * Generic paginated query executor for subgraph queries\n *\n * @remarks\n * Handles pagination, fetchAll, and proper GraphQL query construction.\n * Abstracts the common pattern of paginated subgraph queries.\n *\n * @param config - Configuration for the paginated query\n * @returns Array of items from all pages\n *\n * @example\n * ```typescript\n * const files = await executePaginatedQuery({\n * endpoint: subgraphUrl,\n * document: GetUserFilesPaginatedDocument,\n * baseVariables: { userId: owner.toLowerCase() },\n * options: { limit: 50, orderBy: 'addedAtBlock' },\n * extractItems: (data) => data?.user?.files,\n * transformItem: (file) => ({\n * id: parseInt(file.id),\n * url: file.url,\n * // ... transform to UserFile\n * })\n * });\n * ```\n */\nexport async function executePaginatedQuery<TData, TItem, TRawItem = any>(\n config: PaginatedQueryConfig<TData, TItem, TRawItem>,\n): Promise<TItem[]> {\n const {\n endpoint,\n document,\n baseVariables,\n options,\n extractItems,\n transformItem,\n maxPerQuery = 1000,\n } = config;\n\n // Set pagination defaults\n const limit = options?.fetchAll\n ? Number.MAX_SAFE_INTEGER\n : (options?.limit ?? 100);\n const offset = options?.offset ?? 0;\n const orderBy = options?.orderBy;\n const orderDirection = options?.orderDirection;\n\n const allItems: TItem[] = [];\n let currentOffset = offset;\n const pageSize = Math.min(limit, maxPerQuery);\n\n // Handle fetchAll by making multiple queries if needed\n while (true) {\n const currentLimit = options?.fetchAll\n ? pageSize\n : Math.min(pageSize, limit - allItems.length);\n\n // Build query variables\n const variables = {\n ...baseVariables,\n first: currentLimit,\n skip: currentOffset,\n ...(orderBy && { orderBy }),\n ...(orderDirection && { orderDirection }),\n };\n\n // Execute query\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n query: print(document),\n variables,\n }),\n });\n\n if (!response.ok) {\n throw new Error(\n `Subgraph request failed: ${response.status} ${response.statusText}`,\n );\n }\n\n const result = (await response.json()) as SubgraphResponse<TData>;\n\n if (result.errors) {\n throw new Error(\n `Subgraph errors: ${result.errors.map((e) => e.message).join(\", \")}`,\n );\n }\n\n // Extract items from response\n const items = extractItems(result.data as TData);\n\n if (!items || items.length === 0) {\n // No more items\n break;\n }\n\n // Transform items if transformer provided\n const transformedItems: TItem[] = transformItem\n ? items.map(transformItem)\n : (items as unknown as TItem[]);\n\n allItems.push(...transformedItems);\n\n // Check if we have enough items or should continue\n if (!options?.fetchAll && allItems.length >= limit) {\n // We have enough items\n return allItems.slice(0, limit); // Trim to exact limit\n }\n\n if (items.length < currentLimit) {\n // No more items available\n break;\n }\n\n // Continue to next page\n currentOffset += items.length;\n }\n\n return allItems;\n}\n\n/**\n * Helper to map string orderBy values to GraphQL enums\n *\n * @param orderBy - String orderBy value from options\n * @param enumMap - Map of string values to GraphQL enum values\n * @returns The mapped enum value or undefined\n */\nexport function mapOrderByToEnum<T>(\n orderBy: string | undefined,\n enumMap: Record<string, T>,\n defaultValue?: T,\n): T | undefined {\n if (!orderBy) return defaultValue;\n return enumMap[orderBy] ?? defaultValue;\n}\n\n/**\n * Helper to map string orderDirection to GraphQL enum\n *\n * @param direction - Direction string ('asc' or 'desc')\n * @param ascValue - The GraphQL enum value for ascending\n * @param descValue - The GraphQL enum value for descending\n * @returns The mapped enum value\n */\nexport function mapOrderDirection<T>(\n direction: \"asc\" | \"desc\" | undefined,\n ascValue: T,\n descValue: T,\n defaultValue?: T,\n): T {\n if (!direction) return defaultValue ?? descValue;\n return direction === \"asc\" ? ascValue : descValue;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,qBAAyC;AA+DzC,eAAsB,sBACpB,QACkB;AAClB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,EAChB,IAAI;AAGJ,QAAM,QAAQ,SAAS,WACnB,OAAO,mBACN,SAAS,SAAS;AACvB,QAAM,SAAS,SAAS,UAAU;AAClC,QAAM,UAAU,SAAS;AACzB,QAAM,iBAAiB,SAAS;AAEhC,QAAM,WAAoB,CAAC;AAC3B,MAAI,gBAAgB;AACpB,QAAM,WAAW,KAAK,IAAI,OAAO,WAAW;AAG5C,SAAO,MAAM;AACX,UAAM,eAAe,SAAS,WAC1B,WACA,KAAK,IAAI,UAAU,QAAQ,SAAS,MAAM;AAG9C,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH,OAAO;AAAA,MACP,MAAM;AAAA,MACN,GAAI,WAAW,EAAE,QAAQ;AAAA,MACzB,GAAI,kBAAkB,EAAE,eAAe;AAAA,IACzC;AAGA,UAAM,WAAW,MAAM,MAAM,UAAU;AAAA,MACrC,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACnB,WAAO,sBAAM,QAAQ;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI;AAAA,QACR,4BAA4B,SAAS,MAAM,IAAI,SAAS,UAAU;AAAA,MACpE;AAAA,IACF;AAEA,UAAM,SAAU,MAAM,SAAS,KAAK;AAEpC,QAAI,OAAO,QAAQ;AACjB,YAAM,IAAI;AAAA,QACR,oBAAoB,OAAO,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAAA,MACpE;AAAA,IACF;AAGA,UAAM,QAAQ,aAAa,OAAO,IAAa;AAE/C,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAEhC;AAAA,IACF;AAGA,UAAM,mBAA4B,gBAC9B,MAAM,IAAI,aAAa,IACtB;AAEL,aAAS,KAAK,GAAG,gBAAgB;AAGjC,QAAI,CAAC,SAAS,YAAY,SAAS,UAAU,OAAO;AAElD,aAAO,SAAS,MAAM,GAAG,KAAK;AAAA,IAChC;AAEA,QAAI,MAAM,SAAS,cAAc;AAE/B;AAAA,IACF;AAGA,qBAAiB,MAAM;AAAA,EACzB;AAEA,SAAO;AACT;AASO,SAAS,iBACd,SACA,SACA,cACe;AACf,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,QAAQ,OAAO,KAAK;AAC7B;AAUO,SAAS,kBACd,WACA,UACA,WACA,cACG;AACH,MAAI,CAAC,UAAW,QAAO,gBAAgB;AACvC,SAAO,cAAc,QAAQ,WAAW;AAC1C;","names":[]}
@@ -1,78 +0,0 @@
1
- /**
2
- * @file Utilities for handling paginated subgraph queries
3
- * @module vana-sdk/utils/subgraphPagination
4
- */
5
- import { type DocumentNode } from "graphql";
6
- import type { PaginationOptions } from "../types/options";
7
- /**
8
- * Generic subgraph response structure
9
- */
10
- export interface SubgraphResponse<T> {
11
- data?: T;
12
- errors?: Array<{
13
- message: string;
14
- }>;
15
- }
16
- /**
17
- * Configuration for paginated subgraph queries
18
- */
19
- export interface PaginatedQueryConfig<TData, TItem, TRawItem = any> {
20
- /** The GraphQL endpoint URL */
21
- endpoint: string;
22
- /** The GraphQL document to execute */
23
- document: DocumentNode;
24
- /** Base variables for the query (e.g., userId) */
25
- baseVariables: Record<string, any>;
26
- /** Pagination options from the user */
27
- options?: PaginationOptions;
28
- /** Function to extract items from the response */
29
- extractItems: (data: TData) => TRawItem[] | undefined;
30
- /** Function to transform items if needed */
31
- transformItem?: (item: TRawItem) => TItem;
32
- /** Maximum items per GraphQL query (default: 1000) */
33
- maxPerQuery?: number;
34
- }
35
- /**
36
- * Generic paginated query executor for subgraph queries
37
- *
38
- * @remarks
39
- * Handles pagination, fetchAll, and proper GraphQL query construction.
40
- * Abstracts the common pattern of paginated subgraph queries.
41
- *
42
- * @param config - Configuration for the paginated query
43
- * @returns Array of items from all pages
44
- *
45
- * @example
46
- * ```typescript
47
- * const files = await executePaginatedQuery({
48
- * endpoint: subgraphUrl,
49
- * document: GetUserFilesPaginatedDocument,
50
- * baseVariables: { userId: owner.toLowerCase() },
51
- * options: { limit: 50, orderBy: 'addedAtBlock' },
52
- * extractItems: (data) => data?.user?.files,
53
- * transformItem: (file) => ({
54
- * id: parseInt(file.id),
55
- * url: file.url,
56
- * // ... transform to UserFile
57
- * })
58
- * });
59
- * ```
60
- */
61
- export declare function executePaginatedQuery<TData, TItem, TRawItem = any>(config: PaginatedQueryConfig<TData, TItem, TRawItem>): Promise<TItem[]>;
62
- /**
63
- * Helper to map string orderBy values to GraphQL enums
64
- *
65
- * @param orderBy - String orderBy value from options
66
- * @param enumMap - Map of string values to GraphQL enum values
67
- * @returns The mapped enum value or undefined
68
- */
69
- export declare function mapOrderByToEnum<T>(orderBy: string | undefined, enumMap: Record<string, T>, defaultValue?: T): T | undefined;
70
- /**
71
- * Helper to map string orderDirection to GraphQL enum
72
- *
73
- * @param direction - Direction string ('asc' or 'desc')
74
- * @param ascValue - The GraphQL enum value for ascending
75
- * @param descValue - The GraphQL enum value for descending
76
- * @returns The mapped enum value
77
- */
78
- export declare function mapOrderDirection<T>(direction: "asc" | "desc" | undefined, ascValue: T, descValue: T, defaultValue?: T): T;