@opendatalabs/vana-sdk 2.3.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) 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/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/index.cjs +2 -37
  62. package/dist/generated/abi/index.cjs.map +1 -1
  63. package/dist/generated/abi/index.d.ts +2683 -9296
  64. package/dist/generated/abi/index.js +2 -29
  65. package/dist/generated/abi/index.js.map +1 -1
  66. package/dist/generated/addresses.cjs +5 -107
  67. package/dist/generated/addresses.cjs.map +1 -1
  68. package/dist/generated/addresses.d.ts +5 -99
  69. package/dist/generated/addresses.js +5 -105
  70. package/dist/generated/addresses.js.map +1 -1
  71. package/dist/index.browser.d.ts +24 -140
  72. package/dist/index.browser.js +32258 -114
  73. package/dist/index.browser.js.map +7 -1
  74. package/dist/index.node.cjs +32980 -160
  75. package/dist/index.node.cjs.map +7 -1
  76. package/dist/index.node.d.ts +23 -210
  77. package/dist/index.node.js +32884 -133
  78. package/dist/index.node.js.map +7 -1
  79. package/dist/protocol/data-file.cjs +56 -0
  80. package/dist/protocol/data-file.cjs.map +1 -0
  81. package/dist/protocol/data-file.d.ts +20 -0
  82. package/dist/protocol/data-file.js +30 -0
  83. package/dist/protocol/data-file.js.map +1 -0
  84. package/dist/protocol/eip712.cjs +123 -0
  85. package/dist/protocol/eip712.cjs.map +1 -0
  86. package/dist/protocol/eip712.d.ts +117 -0
  87. package/dist/protocol/eip712.js +90 -0
  88. package/dist/protocol/eip712.js.map +1 -0
  89. package/dist/protocol/gateway.cjs +226 -0
  90. package/dist/protocol/gateway.cjs.map +1 -0
  91. package/dist/protocol/gateway.d.ts +120 -0
  92. package/dist/protocol/gateway.js +202 -0
  93. package/dist/protocol/gateway.js.map +1 -0
  94. package/dist/protocol/grants.cjs +146 -0
  95. package/dist/protocol/grants.cjs.map +1 -0
  96. package/dist/protocol/grants.d.ts +31 -0
  97. package/dist/protocol/grants.js +123 -0
  98. package/dist/protocol/grants.js.map +1 -0
  99. package/dist/protocol/scopes.cjs +78 -0
  100. package/dist/protocol/scopes.cjs.map +1 -0
  101. package/dist/protocol/scopes.d.ts +13 -0
  102. package/dist/protocol/scopes.js +50 -0
  103. package/dist/protocol/scopes.js.map +1 -0
  104. package/dist/{types/atomicStore.cjs → storage/default.cjs} +9 -8
  105. package/dist/storage/default.cjs.map +1 -0
  106. package/dist/storage/default.d.ts +4 -0
  107. package/dist/storage/default.js +8 -0
  108. package/dist/storage/default.js.map +1 -0
  109. package/dist/storage/index.cjs +11 -2
  110. package/dist/storage/index.cjs.map +1 -1
  111. package/dist/storage/index.d.ts +9 -0
  112. package/dist/storage/index.js +7 -1
  113. package/dist/storage/index.js.map +1 -1
  114. package/dist/storage/providers/callback-storage.cjs +1 -0
  115. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  116. package/dist/storage/providers/callback-storage.js +1 -0
  117. package/dist/storage/providers/callback-storage.js.map +1 -1
  118. package/dist/storage/providers/dropbox.cjs +1 -0
  119. package/dist/storage/providers/dropbox.cjs.map +1 -1
  120. package/dist/storage/providers/dropbox.js +1 -0
  121. package/dist/storage/providers/dropbox.js.map +1 -1
  122. package/dist/storage/providers/google-drive.cjs +1 -0
  123. package/dist/storage/providers/google-drive.cjs.map +1 -1
  124. package/dist/storage/providers/google-drive.js +1 -0
  125. package/dist/storage/providers/google-drive.js.map +1 -1
  126. package/dist/storage/providers/ipfs.cjs +1 -0
  127. package/dist/storage/providers/ipfs.cjs.map +1 -1
  128. package/dist/storage/providers/ipfs.js +1 -0
  129. package/dist/storage/providers/ipfs.js.map +1 -1
  130. package/dist/storage/providers/pinata.cjs +1 -0
  131. package/dist/storage/providers/pinata.cjs.map +1 -1
  132. package/dist/storage/providers/pinata.js +1 -0
  133. package/dist/storage/providers/pinata.js.map +1 -1
  134. package/dist/storage/providers/r2.cjs +376 -0
  135. package/dist/storage/providers/r2.cjs.map +1 -0
  136. package/dist/storage/providers/r2.d.ts +91 -0
  137. package/dist/storage/providers/r2.js +354 -0
  138. package/dist/storage/providers/r2.js.map +1 -0
  139. package/dist/storage/providers/vana-storage.cjs +251 -0
  140. package/dist/storage/providers/vana-storage.cjs.map +1 -0
  141. package/dist/storage/providers/vana-storage.d.ts +100 -0
  142. package/dist/storage/providers/vana-storage.js +231 -0
  143. package/dist/storage/providers/vana-storage.js.map +1 -0
  144. package/dist/types/config.cjs +0 -34
  145. package/dist/types/config.cjs.map +1 -1
  146. package/dist/types/config.d.ts +1 -607
  147. package/dist/types/config.js +0 -22
  148. package/dist/types/config.js.map +1 -1
  149. package/dist/types/contracts.cjs.map +1 -1
  150. package/dist/types/contracts.d.ts +1 -1
  151. package/dist/types/index.cjs +2 -33
  152. package/dist/types/index.cjs.map +1 -1
  153. package/dist/types/index.d.ts +2 -33
  154. package/dist/types/index.js +1 -35
  155. package/dist/types/index.js.map +1 -1
  156. package/dist/types/ps-errors.cjs +91 -0
  157. package/dist/types/ps-errors.cjs.map +1 -0
  158. package/dist/types/ps-errors.d.ts +26 -0
  159. package/dist/types/ps-errors.js +66 -0
  160. package/dist/types/ps-errors.js.map +1 -0
  161. package/dist/types.cjs.map +1 -1
  162. package/dist/types.d.ts +0 -29
  163. package/dist/types.js.map +1 -1
  164. package/package.json +7 -25
  165. package/dist/client/enhancedResponse.cjs +0 -164
  166. package/dist/client/enhancedResponse.cjs.map +0 -1
  167. package/dist/client/enhancedResponse.d.ts +0 -120
  168. package/dist/client/enhancedResponse.js +0 -138
  169. package/dist/client/enhancedResponse.js.map +0 -1
  170. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +0 -7
  171. package/dist/controllers/base.cjs +0 -116
  172. package/dist/controllers/base.cjs.map +0 -1
  173. package/dist/controllers/base.d.ts +0 -94
  174. package/dist/controllers/base.js +0 -92
  175. package/dist/controllers/base.js.map +0 -1
  176. package/dist/controllers/data.cjs +0 -2633
  177. package/dist/controllers/data.cjs.map +0 -1
  178. package/dist/controllers/data.d.ts +0 -1067
  179. package/dist/controllers/data.js +0 -2626
  180. package/dist/controllers/data.js.map +0 -1
  181. package/dist/controllers/operations.cjs +0 -430
  182. package/dist/controllers/operations.cjs.map +0 -1
  183. package/dist/controllers/operations.d.ts +0 -229
  184. package/dist/controllers/operations.js +0 -406
  185. package/dist/controllers/operations.js.map +0 -1
  186. package/dist/controllers/permissions.cjs +0 -4368
  187. package/dist/controllers/permissions.cjs.map +0 -1
  188. package/dist/controllers/permissions.d.ts +0 -1411
  189. package/dist/controllers/permissions.js +0 -4344
  190. package/dist/controllers/permissions.js.map +0 -1
  191. package/dist/controllers/protocol.cjs +0 -183
  192. package/dist/controllers/protocol.cjs.map +0 -1
  193. package/dist/controllers/protocol.d.ts +0 -138
  194. package/dist/controllers/protocol.js +0 -163
  195. package/dist/controllers/protocol.js.map +0 -1
  196. package/dist/controllers/schemas.cjs +0 -678
  197. package/dist/controllers/schemas.cjs.map +0 -1
  198. package/dist/controllers/schemas.d.ts +0 -293
  199. package/dist/controllers/schemas.js +0 -654
  200. package/dist/controllers/schemas.js.map +0 -1
  201. package/dist/controllers/server.cjs +0 -643
  202. package/dist/controllers/server.cjs.map +0 -1
  203. package/dist/controllers/server.d.ts +0 -322
  204. package/dist/controllers/server.js +0 -624
  205. package/dist/controllers/server.js.map +0 -1
  206. package/dist/controllers/staking.cjs +0 -626
  207. package/dist/controllers/staking.cjs.map +0 -1
  208. package/dist/controllers/staking.d.ts +0 -457
  209. package/dist/controllers/staking.js +0 -602
  210. package/dist/controllers/staking.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 -781
  243. package/dist/core.cjs.map +0 -1
  244. package/dist/core.d.ts +0 -496
  245. package/dist/core.js +0 -756
  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/generated/abi/DLPPerformanceImplementation.cjs +0 -1202
  253. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +0 -1
  254. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +0 -914
  255. package/dist/generated/abi/DLPPerformanceImplementation.js +0 -1178
  256. package/dist/generated/abi/DLPPerformanceImplementation.js.map +0 -1
  257. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +0 -1112
  258. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +0 -1
  259. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +0 -840
  260. package/dist/generated/abi/DLPRewardDeployerImplementation.js +0 -1088
  261. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +0 -1
  262. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +0 -612
  263. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +0 -1
  264. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +0 -451
  265. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +0 -588
  266. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +0 -1
  267. package/dist/generated/abi/DLPRewardSwapImplementation.cjs +0 -939
  268. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +0 -1
  269. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +0 -705
  270. package/dist/generated/abi/DLPRewardSwapImplementation.js +0 -915
  271. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +0 -1
  272. package/dist/generated/abi/DLPRootImplementation.cjs +0 -1644
  273. package/dist/generated/abi/DLPRootImplementation.cjs.map +0 -1
  274. package/dist/generated/abi/DLPRootImplementation.d.ts +0 -1246
  275. package/dist/generated/abi/DLPRootImplementation.js +0 -1620
  276. package/dist/generated/abi/DLPRootImplementation.js.map +0 -1
  277. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +0 -985
  278. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +0 -1
  279. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +0 -735
  280. package/dist/generated/abi/DataLiquidityPoolImplementation.js +0 -961
  281. package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +0 -1
  282. package/dist/generated/abi/SwapHelperImplementation.cjs +0 -976
  283. package/dist/generated/abi/SwapHelperImplementation.cjs.map +0 -1
  284. package/dist/generated/abi/SwapHelperImplementation.d.ts +0 -728
  285. package/dist/generated/abi/SwapHelperImplementation.js +0 -952
  286. package/dist/generated/abi/SwapHelperImplementation.js.map +0 -1
  287. package/dist/generated/abi/TeePoolImplementation.cjs +0 -1313
  288. package/dist/generated/abi/TeePoolImplementation.cjs.map +0 -1
  289. package/dist/generated/abi/TeePoolImplementation.d.ts +0 -992
  290. package/dist/generated/abi/TeePoolImplementation.js +0 -1289
  291. package/dist/generated/abi/TeePoolImplementation.js.map +0 -1
  292. package/dist/generated/event-types.cjs +0 -17
  293. package/dist/generated/event-types.cjs.map +0 -1
  294. package/dist/generated/event-types.d.ts +0 -816
  295. package/dist/generated/event-types.js +0 -1
  296. package/dist/generated/event-types.js.map +0 -1
  297. package/dist/generated/eventRegistry.cjs +0 -4512
  298. package/dist/generated/eventRegistry.cjs.map +0 -1
  299. package/dist/generated/eventRegistry.d.ts +0 -14
  300. package/dist/generated/eventRegistry.js +0 -4487
  301. package/dist/generated/eventRegistry.js.map +0 -1
  302. package/dist/generated/server/server-exports.cjs +0 -45
  303. package/dist/generated/server/server-exports.cjs.map +0 -1
  304. package/dist/generated/server/server-exports.d.ts +0 -36
  305. package/dist/generated/server/server-exports.js +0 -19
  306. package/dist/generated/server/server-exports.js.map +0 -1
  307. package/dist/generated/server/server.cjs +0 -17
  308. package/dist/generated/server/server.cjs.map +0 -1
  309. package/dist/generated/server/server.d.ts +0 -907
  310. package/dist/generated/server/server.js +0 -1
  311. package/dist/generated/server/server.js.map +0 -1
  312. package/dist/generated/subgraph.cjs +0 -1440
  313. package/dist/generated/subgraph.cjs.map +0 -1
  314. package/dist/generated/subgraph.d.ts +0 -6113
  315. package/dist/generated/subgraph.js +0 -1404
  316. package/dist/generated/subgraph.js.map +0 -1
  317. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +0 -1
  318. package/dist/lib/redisAtomicStore.cjs +0 -201
  319. package/dist/lib/redisAtomicStore.cjs.map +0 -1
  320. package/dist/lib/redisAtomicStore.d.ts +0 -120
  321. package/dist/lib/redisAtomicStore.js +0 -177
  322. package/dist/lib/redisAtomicStore.js.map +0 -1
  323. package/dist/server/relayerHandler.cjs +0 -452
  324. package/dist/server/relayerHandler.cjs.map +0 -1
  325. package/dist/server/relayerHandler.d.ts +0 -69
  326. package/dist/server/relayerHandler.js +0 -428
  327. package/dist/server/relayerHandler.js.map +0 -1
  328. package/dist/tests/abi.test.d.ts +0 -1
  329. package/dist/tests/chains-definitions.test.d.ts +0 -1
  330. package/dist/tests/core-encryption.test.d.ts +0 -1
  331. package/dist/tests/core-extended.test.d.ts +0 -1
  332. package/dist/tests/core-generics-coverage.test.d.ts +0 -1
  333. package/dist/tests/coverage-boost.test.d.ts +0 -1
  334. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +0 -1
  335. package/dist/tests/data-addfile-permissions-schema.test.d.ts +0 -1
  336. package/dist/tests/data-additional-methods.test.d.ts +0 -1
  337. package/dist/tests/data-controller-edge-cases.test.d.ts +0 -1
  338. package/dist/tests/data-ipfs-gateways.test.d.ts +0 -1
  339. package/dist/tests/data-relayer.test.d.ts +0 -1
  340. package/dist/tests/data-schema-validation.test.d.ts +0 -1
  341. package/dist/tests/data-simple-methods.test.d.ts +0 -1
  342. package/dist/tests/data-upload-owner-validation.test.d.ts +0 -1
  343. package/dist/tests/data.test.d.ts +0 -1
  344. package/dist/tests/demo-integration.test.d.ts +0 -1
  345. package/dist/tests/demo-trusted-server-integration.test.d.ts +0 -1
  346. package/dist/tests/download-relayer.test.d.ts +0 -1
  347. package/dist/tests/dual-mode-permissions.test.d.ts +0 -1
  348. package/dist/tests/dual-mode-trusted-servers.test.d.ts +0 -1
  349. package/dist/tests/encryption-correct-implementation.test.d.ts +0 -1
  350. package/dist/tests/encryption-coverage.test.d.ts +0 -1
  351. package/dist/tests/encryption-edge-cases.test.d.ts +0 -1
  352. package/dist/tests/encryption-utils-updated.test.d.ts +0 -1
  353. package/dist/tests/errors-coverage.test.d.ts +0 -1
  354. package/dist/tests/factories/mockFactory.d.ts +0 -316
  355. package/dist/tests/fakes/FakeStorageManager.d.ts +0 -200
  356. package/dist/tests/fakes/FakeStorageManager.test.d.ts +0 -1
  357. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +0 -170
  358. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +0 -1
  359. package/dist/tests/fakes/fake-pgp-port.d.ts +0 -13
  360. package/dist/tests/grantValidation-edge-cases.test.d.ts +0 -1
  361. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +0 -1
  362. package/dist/tests/helper-methods.test.d.ts +0 -1
  363. package/dist/tests/helpers/typedMocks.d.ts +0 -64
  364. package/dist/tests/index-browser.test.d.ts +0 -1
  365. package/dist/tests/index-node.test.d.ts +0 -1
  366. package/dist/tests/index.test.d.ts +0 -1
  367. package/dist/tests/mocks/platformAdapter.d.ts +0 -12
  368. package/dist/tests/new-permissions-methods.test.d.ts +0 -1
  369. package/dist/tests/no-buffer-browser.test.d.ts +0 -1
  370. package/dist/tests/permissions-grantee.test.d.ts +0 -1
  371. package/dist/tests/permissions-revoke-relayer.test.d.ts +0 -1
  372. package/dist/tests/permissions-schema-validation.test.d.ts +0 -1
  373. package/dist/tests/permissions-server-files.test.d.ts +0 -1
  374. package/dist/tests/permissions-transaction-options.test.d.ts +0 -1
  375. package/dist/tests/permissions-trust-servers.test.d.ts +0 -1
  376. package/dist/tests/permissions.test.d.ts +0 -1
  377. package/dist/tests/personal.test.d.ts +0 -1
  378. package/dist/tests/platform-browser.test.d.ts +0 -1
  379. package/dist/tests/platform-crypto-expanded.test.d.ts +0 -1
  380. package/dist/tests/platform-crypto.test.d.ts +0 -1
  381. package/dist/tests/platform-index.test.d.ts +0 -1
  382. package/dist/tests/platform-node.test.d.ts +0 -1
  383. package/dist/tests/platform-shared-utils.test.d.ts +0 -1
  384. package/dist/tests/platform-updated.test.d.ts +0 -1
  385. package/dist/tests/protocol-additional-methods.test.d.ts +0 -1
  386. package/dist/tests/protocol.test.d.ts +0 -1
  387. package/dist/tests/read-only-mode.test.d.ts +0 -1
  388. package/dist/tests/relayer-integration.test.d.ts +0 -1
  389. package/dist/tests/relayer-unified.test.d.ts +0 -1
  390. package/dist/tests/schemas.test.d.ts +0 -1
  391. package/dist/tests/server-relayer-handler.test.d.ts +0 -1
  392. package/dist/tests/signatureFormatter.test.d.ts +0 -1
  393. package/dist/tests/staking.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/grants.test.d.ts} +0 -0
  619. /package/dist/{core/core.test.d.ts → protocol/scopes.test.d.ts} +0 -0
  620. /package/dist/{core/tests/apiClient.test.d.ts → storage/tests/defaultStorage.test.d.ts} +0 -0
  621. /package/dist/{core/tests/client.test.d.ts → storage/tests/r2Storage.test.d.ts} +0 -0
  622. /package/dist/{core/tests/generics.test.d.ts → storage/tests/vanaStorage.test.d.ts} +0 -0
  623. /package/dist/{diagnostics.test.d.ts → types/ps-errors.test.d.ts} +0 -0
package/dist/core.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core.ts"],"sourcesContent":["import type {\n VanaConfig,\n VanaConfigWithStorage,\n RuntimeConfig,\n VanaChainId,\n StorageRequiredMarker,\n} from \"./types\";\nimport {\n isWalletConfig,\n isChainConfig,\n isReadOnlyConfig,\n isAddressOnlyConfig,\n isVanaChainId,\n hasStorageConfig,\n} from \"./types\";\nimport type { DownloadRelayerCallbacks } from \"./types/config\";\nimport type {\n RelayerConfig,\n UnifiedRelayerRequest,\n UnifiedRelayerResponse,\n} from \"./types/relayer\";\nimport { InvalidConfigurationError } from \"./errors\";\nimport type { ControllerContext } from \"./controllers/permissions\";\nimport { PermissionsController } from \"./controllers/permissions\";\nimport { DataController } from \"./controllers/data\";\nimport { SchemaController } from \"./controllers/schemas\";\nimport { ServerController } from \"./controllers/server\";\nimport { ProtocolController } from \"./controllers/protocol\";\nimport { OperationsController } from \"./controllers/operations\";\nimport { StakingController } from \"./controllers/staking\";\nimport { StorageManager } from \"./storage\";\nimport { createWalletClient, createPublicClient, http } from \"viem\";\nimport type {\n PublicClient,\n WalletClient,\n Address,\n Hash,\n TransactionReceipt,\n Chain,\n} from \"viem\";\nimport { extractAddress } from \"./utils/wallet\";\nimport type {\n Operation,\n PollingOptions,\n TransactionResult,\n TransactionWaitOptions,\n} from \"./types/operations\";\nimport type {\n IOperationStore,\n IRelayerStateStore,\n} from \"./types/operationStore\";\nimport type { IAtomicStore } from \"./types/atomicStore\";\nimport type {\n Contract,\n Fn,\n TypedTransactionResult,\n} from \"./generated/event-types\";\nimport { chains } from \"./config/chains\";\nimport { getChainConfig, vanaMainnet } from \"./chains\";\nimport type { VanaPlatformAdapter } from \"./platform/interface\";\nimport {\n encryptBlobWithSignedKey,\n decryptBlobWithSignedKey,\n} from \"./utils/encryption\";\n\n/**\n * Factory functions for creating VanaCore instances with proper type safety\n */\nexport class VanaCoreFactory {\n /**\n * Creates a VanaCore instance that enforces storage requirements at compile time.\n * Use this factory when you know you'll need storage-dependent operations.\n *\n * @param platform - The platform adapter for environment-specific operations\n * @param config - Configuration that includes required storage providers\n * @returns VanaCore instance with storage validation\n * @example\n * ```typescript\n * const vanaCore = VanaCoreFactory.createWithStorage(platformAdapter, {\n * walletClient: myWalletClient,\n * storage: {\n * providers: { ipfs: new IPFSStorage() },\n * defaultProvider: 'ipfs'\n * }\n * });\n * ```\n */\n static createWithStorage(\n platform: VanaPlatformAdapter,\n config: VanaConfigWithStorage,\n ): VanaCore & StorageRequiredMarker {\n const core = new VanaCore(platform, config);\n return core as VanaCore & StorageRequiredMarker;\n }\n\n /**\n * Creates a VanaCore instance without storage requirements.\n * Storage-dependent operations will fail at runtime if not configured.\n *\n * @param platform - The platform adapter for environment-specific operations\n * @param config - Basic configuration without required storage\n * @returns VanaCore instance\n * @example\n * ```typescript\n * const vanaCore = VanaCoreFactory.create(platformAdapter, {\n * walletClient: myWalletClient\n * });\n * ```\n */\n static create(platform: VanaPlatformAdapter, config: VanaConfig): VanaCore {\n return new VanaCore(platform, config);\n }\n}\n\n/**\n * Provides the core SDK functionality for interacting with the Vana network.\n *\n * @remarks\n * This environment-agnostic class contains all SDK logic and accepts a platform\n * adapter to handle environment-specific operations. It initializes all controllers\n * and manages shared context between them, providing a unified interface for\n * data management, permissions, smart contracts, and storage operations.\n *\n * The class uses TypeScript overloading to enforce storage requirements at compile time.\n * Methods that require storage will throw `InvalidConfigurationError` at runtime if\n * storage providers are not configured, implementing a fail-fast approach to prevent\n * errors during expensive operations.\n *\n * **Core Architecture:**\n * - **Controllers**: Specialized modules for different Vana features (data, permissions, etc.)\n * - **Platform Adapters**: Environment-specific implementations (browser vs Node.js)\n * - **Storage Managers**: Abstraction layer for multiple storage providers\n * - **Context Sharing**: Unified configuration and services across all controllers\n *\n * For public usage, use the platform-specific factory functions:\n * - Browser: `import { Vana } from '@opendatalabs/vana-sdk/browser'`\n * - Node.js: `import { Vana } from '@opendatalabs/vana-sdk/node'`\n *\n * @example\n * ```typescript\n * // Direct instantiation (advanced usage)\n * import { VanaCore, BrowserPlatformAdapter } from '@opendatalabs/vana-sdk/browser';\n *\n * const core = new VanaCore(new BrowserPlatformAdapter(), {\n * walletClient: myWalletClient,\n * storage: {\n * providers: { ipfs: new IPFSStorage() },\n * defaultProvider: 'ipfs'\n * }\n * });\n *\n * // Access all controllers\n * const files = await core.data.getUserFiles();\n * const permissions = await core.permissions.grant({\n * grantee: '0x742d35...',\n * operation: 'read'\n * });\n * ```\n * @category Core SDK\n */\nexport class VanaCore {\n /** Manages gasless data access permissions and trusted server registry. */\n public readonly permissions: PermissionsController;\n\n /** Handles user data file operations. */\n public readonly data: DataController;\n\n /** Manages data schemas and refiners. */\n public readonly schemas: SchemaController;\n\n /** Manages asynchronous operation recovery and status checking. */\n public readonly operations: OperationsController;\n\n /** Provides personal server setup and trusted server interactions. */\n public readonly server: ServerController;\n\n /** Offers low-level access to Vana protocol smart contracts. */\n public readonly protocol: ProtocolController;\n\n /** Provides VanaPool staking information and operations. */\n public readonly staking: StakingController;\n\n /** Handles environment-specific operations like encryption and file systems. */\n protected platform: VanaPlatformAdapter;\n\n private readonly relayerConfig?: RelayerConfig;\n private readonly relayerCallback?: (\n request: UnifiedRelayerRequest,\n ) => Promise<UnifiedRelayerResponse>;\n private readonly downloadRelayer?: DownloadRelayerCallbacks;\n private readonly storageManager?: StorageManager;\n private readonly hasRequiredStorage: boolean;\n private readonly ipfsGateways?: string[];\n public readonly publicClient: PublicClient;\n private readonly walletClient?: WalletClient;\n private readonly _staticUserAddress?: Address; // For read-only mode\n protected readonly operationStore?: IOperationStore | IRelayerStateStore;\n protected readonly atomicStore?: IAtomicStore;\n\n /**\n * Initializes a new VanaCore client instance with the provided configuration.\n *\n * @remarks\n * The constructor validates the configuration, initializes storage providers if configured,\n * creates wallet and public clients, and sets up all SDK controllers with shared context.\n *\n * IMPORTANT: This constructor will validate storage requirements at runtime to fail fast.\n * Methods that require storage will throw runtime errors if storage is not configured.\n *\n * @param platform - The platform adapter for environment-specific operations\n * @param config - The configuration object specifying wallet or chain settings\n * @throws {InvalidConfigurationError} When the configuration is invalid or incomplete\n * @example\n * ```typescript\n * // Direct instantiation (consider using factory methods instead)\n * const vanaCore = new VanaCore(platformAdapter, {\n * walletClient: myWalletClient,\n * });\n * ```\n */\n constructor(platform: VanaPlatformAdapter, config: VanaConfig) {\n // Store the platform adapter\n this.platform = platform;\n\n // Validate configuration\n this.validateConfig(config);\n\n // Store operation store if provided\n this.operationStore = config?.operationStore;\n\n // Store relayer config and set up callback\n this.relayerConfig = config.relayer;\n if (config.relayer) {\n // Validate relayer type\n if (\n typeof config.relayer !== \"string\" &&\n typeof config.relayer !== \"function\"\n ) {\n throw new InvalidConfigurationError(\n \"Relayer must be either a URL string or a callback function\",\n );\n }\n\n if (typeof config.relayer === \"string\") {\n // Convenience: URL string - create HTTP transport\n const url = config.relayer;\n this.relayerCallback = async (request: UnifiedRelayerRequest) => {\n const response = await fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(request),\n });\n if (!response.ok) {\n throw new Error(`Relayer request failed: ${response.statusText}`);\n }\n return response.json();\n };\n } else {\n // Direct callback function\n this.relayerCallback = config.relayer;\n }\n }\n\n // Store download relayer if provided\n this.downloadRelayer = config.downloadRelayer;\n\n // Store IPFS gateways if provided\n this.ipfsGateways = config.ipfsGateways;\n\n // Check if storage is properly configured\n this.hasRequiredStorage = hasStorageConfig(config);\n\n // Initialize storage manager if storage providers are provided\n if (config.storage?.providers) {\n this.storageManager = new StorageManager();\n\n // Register all provided storage providers\n for (const [name, provider] of Object.entries(config.storage.providers)) {\n const isDefault = name === config.storage.defaultProvider;\n this.storageManager.register(name, provider, isDefault);\n }\n\n // If no default was explicitly set but providers exist, use the first one\n if (\n !config.storage.defaultProvider &&\n Object.keys(config.storage.providers).length > 0\n ) {\n const firstProviderName = Object.keys(config.storage.providers)[0];\n this.storageManager.setDefaultProvider(firstProviderName);\n }\n }\n\n // Initialize clients based on configuration type\n let walletClient: WalletClient | undefined;\n let publicClient: PublicClient;\n let staticUserAddress: Address | undefined; // Only for read-only mode\n let chainToUse: Chain;\n\n if (isWalletConfig(config)) {\n // Full mode with wallet client\n walletClient = config.walletClient;\n chainToUse = (walletClient.chain as Chain) ?? vanaMainnet;\n\n // In wallet mode, address is dynamic (not stored)\n staticUserAddress = undefined;\n\n // Use provided publicClient or create one\n if (\"publicClient\" in config && config.publicClient) {\n publicClient = config.publicClient;\n } else {\n publicClient = createPublicClient({\n chain: chainToUse,\n transport: http(),\n });\n }\n } else if (isReadOnlyConfig(config)) {\n // Read-only mode with public client and address\n walletClient = undefined;\n publicClient = config.publicClient;\n staticUserAddress = config.address;\n chainToUse = config.publicClient.chain ?? vanaMainnet;\n } else if (isAddressOnlyConfig(config)) {\n // Read-only mode with just address (create public client)\n walletClient = undefined;\n staticUserAddress = config.address;\n chainToUse = config.chain ?? vanaMainnet;\n\n publicClient = createPublicClient({\n chain: chainToUse,\n transport: http(),\n });\n } else if (isChainConfig(config)) {\n // Legacy chain configuration - create wallet client\n if (!config.account) {\n throw new InvalidConfigurationError(\n \"Account is required when using ChainConfig\",\n );\n }\n\n const chain = chains[config.chainId];\n if (!chain) {\n throw new InvalidConfigurationError(\n `Unsupported chain ID: ${config.chainId}`,\n );\n }\n\n chainToUse = chain;\n walletClient = createWalletClient({\n chain,\n transport: http(config.rpcUrl ?? chain.rpcUrls.default.http[0]),\n account: config.account,\n });\n // In wallet mode, address is dynamic (not stored)\n staticUserAddress = undefined;\n publicClient = createPublicClient({\n chain,\n transport: http(),\n });\n } else {\n throw new InvalidConfigurationError(\n \"Invalid configuration: must provide either walletClient, publicClient + address, or address alone\",\n );\n }\n\n // Store the clients and static address for later use\n this.publicClient = publicClient;\n this.walletClient = walletClient;\n this._staticUserAddress = staticUserAddress;\n\n // Get default service URLs from chain config if not provided\n const chainConfig = getChainConfig(chainToUse.id);\n const subgraphUrl = config.subgraphUrl ?? chainConfig?.subgraphUrl;\n const personalServerUrl =\n config.defaultPersonalServerUrl ?? chainConfig?.personalServerUrl;\n\n // Create shared context for all controllers with dynamic userAddress getter\n const self = this; // Capture VanaCore instance for getter delegation\n const sharedContext: ControllerContext = {\n walletClient,\n publicClient,\n get userAddress() {\n // Delegate to VanaCore's getter for dynamic resolution\n return self.userAddress;\n },\n applicationClient: walletClient, // Using same wallet for now\n relayer: this.relayerCallback,\n downloadRelayer: this.downloadRelayer,\n storageManager: this.storageManager,\n subgraphUrl,\n platform: this.platform, // Pass the platform adapter to controllers\n validateStorageRequired: this.validateStorageRequired.bind(this),\n hasStorage: this.hasStorage.bind(this),\n ipfsGateways: this.ipfsGateways,\n defaultPersonalServerUrl: personalServerUrl,\n waitForTransactionEvents: this.waitForTransactionEvents.bind(this),\n waitForOperation: this.waitForOperation.bind(this),\n operationStore: this.operationStore,\n };\n\n // Initialize controllers\n this.permissions = new PermissionsController(sharedContext);\n this.data = new DataController(sharedContext);\n this.schemas = new SchemaController(sharedContext);\n this.operations = new OperationsController(sharedContext);\n this.server = new ServerController(sharedContext);\n this.protocol = new ProtocolController(sharedContext);\n this.staking = new StakingController(sharedContext);\n }\n\n /**\n * Validates that storage is available for storage-dependent operations.\n * This method enforces the fail-fast principle by checking storage availability\n * at method call time rather than during expensive operations.\n *\n * @throws {InvalidConfigurationError} When storage is required but not configured\n * @example\n * ```typescript\n * // This will throw if storage is not configured\n * vana.validateStorageRequired();\n * await vana.data.uploadFile(file); // Safe to proceed\n * ```\n */\n public validateStorageRequired(): void {\n if (!this.hasRequiredStorage) {\n throw new InvalidConfigurationError(\n \"Storage configuration is required for this operation. \" +\n \"Please configure storage providers in VanaConfig.storage, \" +\n \"provide a relayer configuration, \" +\n \"or pass pre-stored URLs to avoid this dependency. \" +\n \"\\n\\nFor better type safety, consider using VanaCoreFactory.createWithStorage() \" +\n \"with VanaConfigWithStorage to catch this error at compile time.\",\n );\n }\n }\n\n /**\n * Checks whether storage is configured without throwing an error.\n *\n * @returns True if storage is properly configured\n * @example\n * ```typescript\n * if (vana.hasStorage()) {\n * await vana.data.uploadFile(file);\n * } else {\n * console.warn('Storage not configured - using pre-stored URLs only');\n * }\n * ```\n */\n public hasStorage(): boolean {\n return this.hasRequiredStorage;\n }\n\n /**\n * Type guard to check if this instance has storage enabled at compile time.\n * Use this when you need TypeScript to understand that storage is available.\n *\n * @returns True if storage is configured, with type narrowing\n * @example\n * ```typescript\n * if (vana.isStorageEnabled()) {\n * // TypeScript knows storage is available here\n * await vana.data.uploadFile(file);\n * }\n * ```\n */\n public isStorageEnabled(): this is VanaCore & StorageRequiredMarker {\n return this.hasRequiredStorage;\n }\n\n /**\n * Validates the provided configuration object against all requirements.\n *\n * @remarks\n * This method performs comprehensive validation of wallet client configuration,\n * chain configuration, storage providers, and relayer callbacks.\n * @param config - The configuration object to validate\n * @throws {InvalidConfigurationError} When any configuration parameter is invalid\n */\n private validateConfig(config: VanaConfig): void {\n if (!config) {\n throw new InvalidConfigurationError(\"Configuration object is required\");\n }\n\n // Validate storage configuration if provided\n if (config.storage?.providers) {\n if (typeof config.storage.providers !== \"object\") {\n throw new InvalidConfigurationError(\n \"storage.providers must be an object\",\n );\n }\n\n // Validate that all providers have required methods\n for (const [name, provider] of Object.entries(config.storage.providers)) {\n if (!provider || typeof provider !== \"object\") {\n throw new InvalidConfigurationError(\n `Storage provider '${name}' must be a valid StorageProvider object`,\n );\n }\n }\n\n // Validate default provider if specified\n if (config.storage.defaultProvider) {\n if (!(config.storage.defaultProvider in config.storage.providers)) {\n throw new InvalidConfigurationError(\n `Default storage provider '${config.storage.defaultProvider}' not found in providers`,\n );\n }\n }\n }\n\n if (isWalletConfig(config)) {\n // Validate WalletConfig\n if (!config.walletClient) {\n throw new InvalidConfigurationError(\"walletClient is required\");\n }\n\n // Validate that walletClient is actually a WalletClient\n if (\n typeof config.walletClient !== \"object\" ||\n !config.walletClient.signTypedData\n ) {\n throw new InvalidConfigurationError(\n \"walletClient must be a valid viem WalletClient\",\n );\n }\n\n // Validate that wallet client has a chain\n if (!config.walletClient.chain) {\n throw new InvalidConfigurationError(\n \"walletClient must have a chain configured\",\n );\n }\n\n // Validate that the chain is supported\n if (!isVanaChainId(config.walletClient.chain.id)) {\n throw new InvalidConfigurationError(\n `Unsupported chain ID: ${String(config.walletClient.chain.id)}. Supported chains: 14800 (Moksha testnet), 1480 (Vana mainnet)`,\n );\n }\n } else if (isChainConfig(config)) {\n // Validate ChainConfig\n if (!isVanaChainId(config.chainId)) {\n throw new InvalidConfigurationError(\n `Unsupported chain ID: ${String(config.chainId)}. Supported chains: 14800 (Moksha testnet), 1480 (Vana mainnet)`,\n );\n }\n\n // Validate rpcUrl if provided\n if (config.rpcUrl) {\n if (typeof config.rpcUrl !== \"string\") {\n throw new InvalidConfigurationError(\"rpcUrl must be a string\");\n }\n\n if (config.rpcUrl.trim() === \"\") {\n throw new InvalidConfigurationError(\"rpcUrl cannot be empty\");\n }\n\n // Basic URL validation for RPC URL\n try {\n new URL(config.rpcUrl);\n } catch {\n throw new InvalidConfigurationError(\"rpcUrl must be a valid URL\");\n }\n }\n\n // Account is optional for ChainConfig, but if provided, validate it\n if (config.account) {\n if (typeof config.account !== \"object\" || !config.account.address) {\n throw new InvalidConfigurationError(\n \"account must be a valid viem Account object\",\n );\n }\n }\n } else if (isReadOnlyConfig(config)) {\n // Validate read-only config with publicClient and address\n if (!config.publicClient) {\n throw new InvalidConfigurationError(\n \"publicClient is required for read-only configuration\",\n );\n }\n if (!config.address) {\n throw new InvalidConfigurationError(\n \"address is required for read-only configuration\",\n );\n }\n } else if (isAddressOnlyConfig(config)) {\n // Validate address-only config\n if (!config.address) {\n throw new InvalidConfigurationError(\n \"address is required for address-only configuration\",\n );\n }\n // chain is optional, will use default\n } else {\n throw new InvalidConfigurationError(\n \"Invalid configuration: must provide either walletClient, publicClient + address, or address alone\",\n );\n }\n }\n\n /**\n * Gets the current chain ID from the wallet client.\n *\n * @returns The numeric chain ID of the connected network\n * @example\n * ```typescript\n * const chainId = vana.chainId;\n * console.log(`Connected to chain: ${chainId}`); // e.g., \"Connected to chain: 14800\"\n * ```\n */\n get chainId(): number {\n return this.protocol.getChainId();\n }\n\n /**\n * Gets the current chain name from the wallet client.\n *\n * @returns The human-readable name of the connected network\n * @example\n * ```typescript\n * const chainName = vana.chainName;\n * console.log(`Connected to: ${chainName}`); // e.g., \"Connected to: Moksha Testnet\"\n * ```\n */\n get chainName(): string {\n return this.protocol.getChainName();\n }\n\n /**\n * The user's wallet address.\n * In wallet mode, this always returns the current wallet account address.\n * In read-only mode, this returns the static address provided during initialization.\n *\n * @example\n * ```typescript\n * const address = vana.userAddress;\n * console.log(`User address: ${address}`); // e.g., \"User address: 0x742d35...\"\n * ```\n */\n get userAddress(): Address {\n // In wallet mode: dynamically read from wallet\n if (this.walletClient?.account) {\n return extractAddress(this.walletClient.account);\n }\n\n // In read-only mode: use static address\n if (this._staticUserAddress) {\n return this._staticUserAddress;\n }\n\n throw new Error(\"No user address available\");\n }\n\n /**\n * Retrieves comprehensive runtime configuration information.\n *\n * @returns The current runtime configuration including chain, storage, and relayer settings\n * @example\n * ```typescript\n * const config = vana.getConfig();\n * console.log(`Chain: ${config.chainName} (${config.chainId})`);\n * console.log(`Storage providers: ${config.storageProviders.join(\", \")}`);\n * ```\n */\n getConfig(): RuntimeConfig {\n return {\n chainId: this.chainId as VanaChainId,\n chainName: this.chainName,\n relayerConfig: this.relayerConfig,\n storageProviders: this.storageManager?.getStorageProviders() ?? [],\n defaultStorageProvider: this.storageManager?.getDefaultStorageProvider(),\n };\n }\n\n /**\n * Sets the platform adapter for environment-specific operations.\n * This is useful for testing and advanced use cases where you need\n * to override the default platform detection.\n *\n * @param adapter - The platform adapter to use\n * @example\n * ```typescript\n * // For testing with a mock adapter\n * const mockAdapter = new MockPlatformAdapter();\n * vana.setPlatformAdapter(mockAdapter);\n *\n * // For advanced use cases with custom adapters\n * const customAdapter = new CustomPlatformAdapter();\n * vana.setPlatformAdapter(customAdapter);\n * ```\n */\n setPlatformAdapter(adapter: VanaPlatformAdapter): void {\n this.platform = adapter;\n\n // Note: Controllers will use the new platform adapter on their next operation\n // since they access this.platform from the shared context\n }\n\n /**\n * Gets the current platform adapter.\n * This is useful for advanced use cases where you need to access\n * the platform adapter directly.\n *\n * @returns The current platform adapter\n * @example\n * ```typescript\n * const adapter = vana.getPlatformAdapter();\n * const encrypted = await adapter.encrypt(data, key);\n * ```\n */\n getPlatformAdapter(): VanaPlatformAdapter {\n return this.platform;\n }\n\n /**\n * Encrypts data using the Vana protocol standard encryption.\n *\n * @remarks\n * This method implements the Vana network's standard encryption protocol using\n * platform-appropriate cryptographic libraries. It automatically handles different\n * input types (string or Blob) and produces encrypted output suitable for secure\n * storage or transmission. The encryption is compatible with the network's\n * decryption protocols and can be decrypted by authorized parties.\n *\n * @param data - The data to encrypt (string or Blob)\n * @param key - The encryption key (typically generated via `generateEncryptionKey`)\n * @returns The encrypted data as a Blob\n * @throws {Error} When encryption fails due to invalid key or data format\n * @example\n * ```typescript\n * import { generateEncryptionKey } from '@opendatalabs/vana-sdk/node';\n *\n * // Generate encryption key from wallet signature\n * const encryptionKey = await generateEncryptionKey(vana.walletClient);\n *\n * // Encrypt string data\n * const sensitiveData = \"User's private information\";\n * const encrypted = await vana.encryptBlob(sensitiveData, encryptionKey);\n *\n * // Encrypt file data\n * const fileBlob = new Blob([fileContent], { type: 'application/json' });\n * const encryptedFile = await vana.encryptBlob(fileBlob, encryptionKey);\n *\n * // Store encrypted data safely\n * await storageProvider.upload(encrypted, 'encrypted-data.bin');\n * ```\n */\n public async encryptBlob(data: string | Blob, key: string): Promise<Blob> {\n return encryptBlobWithSignedKey(data, key, this.platform);\n }\n\n /**\n * Decrypts data that was encrypted using the Vana protocol.\n *\n * @remarks\n * This method decrypts data that was previously encrypted using the Vana network's\n * standard encryption protocol. It requires the same wallet signature that was used\n * for encryption and automatically uses the appropriate platform adapter for\n * cryptographic operations. The decrypted output maintains the original data format.\n *\n * @param encryptedData - The encrypted data (string or Blob)\n * @param walletSignature - The wallet signature used as decryption key\n * @returns The decrypted data as a Blob\n * @throws {Error} When decryption fails due to invalid signature or corrupted data\n * @example\n * ```typescript\n * import { generateEncryptionKey } from '@opendatalabs/vana-sdk/node';\n *\n * // Retrieve encrypted data from storage\n * const encryptedBlob = await storageProvider.download('encrypted-data.bin');\n *\n * // Generate the same key used for encryption\n * const decryptionKey = await generateEncryptionKey(vana.walletClient);\n *\n * // Decrypt the data\n * const decrypted = await vana.decryptBlob(encryptedBlob, decryptionKey);\n *\n * // Convert back to original format\n * const originalText = await decrypted.text();\n * const originalJson = JSON.parse(originalText);\n *\n * console.log('Decrypted data:', originalJson);\n * ```\n *\n * @example\n * ```typescript\n * // Decrypt file downloaded from Vana network\n * const userFiles = await vana.data.getUserFiles();\n * const file = userFiles[0];\n *\n * // Download encrypted content\n * const encrypted = await fetch(file.url).then(r => r.blob());\n *\n * // Decrypt with user's key\n * const decryptionKey = await generateEncryptionKey(vana.walletClient);\n * const decrypted = await vana.decryptBlob(encrypted, decryptionKey);\n *\n * // Process original data\n * const fileContent = await decrypted.arrayBuffer();\n * ```\n */\n public async decryptBlob(\n encryptedData: string | Blob,\n walletSignature: string,\n ): Promise<Blob> {\n return decryptBlobWithSignedKey(\n encryptedData,\n walletSignature,\n this.platform,\n );\n }\n\n /**\n * Waits for an operation to complete and returns the final result.\n *\n * @remarks\n * This method polls the operation status at regular intervals until it\n * reaches a terminal state (succeeded, failed, or canceled). Supports\n * ergonomic overloads to accept either an Operation object or just the ID.\n *\n * @param opOrId - Either an Operation object or operation ID string\n * @param options - Optional polling configuration\n * @returns The completed operation with result or error\n * @throws {PersonalServerError} When the operation fails or times out\n * @example\n * ```typescript\n * // Using operation object\n * const operation = await vana.server.createOperation({ permissionId: 123 });\n * const completed = await vana.waitForOperation(operation);\n *\n * // Using just the ID\n * const completed = await vana.waitForOperation(\"op_abc123\");\n *\n * // With custom timeout\n * const completed = await vana.waitForOperation(operation, {\n * timeout: 60000,\n * pollingInterval: 1000\n * });\n * ```\n */\n public async waitForOperation(\n opOrId: Operation | string,\n options?: PollingOptions,\n ): Promise<Operation> {\n return this.server.waitForOperation(opOrId, options);\n }\n\n /**\n * Waits for a transaction to be confirmed and returns the receipt.\n *\n * @remarks\n * This method polls for transaction confirmation on the blockchain.\n * Supports ergonomic overloads to accept either a transaction result\n * object or just the hash string.\n *\n * @param hashOrObj - Either a TransactionResult object or hash string\n * @param options - Optional wait configuration\n * @returns The transaction receipt with logs and status\n * @example\n * ```typescript\n * // Using transaction result object\n * const tx = await vana.permissions.grant(params);\n * const receipt = await vana.waitForTransactionReceipt(tx);\n *\n * // Using just the hash\n * const receipt = await vana.waitForTransactionReceipt(\"0x123...\");\n *\n * // With custom confirmations\n * const receipt = await vana.waitForTransactionReceipt(tx, {\n * confirmations: 3,\n * timeout: 60000\n * });\n * ```\n */\n public async waitForTransactionReceipt(\n hashOrObj: TransactionResult | { hash: Hash } | Hash,\n options?: TransactionWaitOptions,\n ): Promise<TransactionReceipt> {\n const hash = typeof hashOrObj === \"string\" ? hashOrObj : hashOrObj.hash;\n\n return this.publicClient.waitForTransactionReceipt({\n hash,\n confirmations: options?.confirmations,\n pollingInterval: options?.pollingInterval,\n timeout: options?.timeout,\n });\n }\n\n /**\n * Waits for transaction confirmation and extracts blockchain event data.\n *\n * @remarks\n * This method leverages the context-carrying POJO architecture. When passed a\n * `TransactionResult` with an `operation` field, it automatically parses the\n * correct events from the transaction logs. For legacy compatibility, it accepts\n * raw hashes but will not parse events without operation context.\n *\n * @param transaction - Transaction result with operation context\n * @param options - Optional confirmation and timeout settings\n * @returns Parsed event data specific to the transaction's operation type\n * @throws {NetworkError} When transaction confirmation times out\n * @throws {BlockchainError} When expected events are not found in the transaction\n *\n * @example\n * ```typescript\n * // Recommended: Pass the transaction result for automatic event parsing\n * const tx = await vana.permissions.submitAddServerFilesAndPermissions(params);\n * const events = await vana.waitForTransactionEvents<{ permissionId: bigint }>(tx);\n * console.log(`Permission ID: ${events.permissionId}`);\n *\n * // Legacy: Raw hash without event parsing (returns receipt)\n * const receipt = await vana.waitForTransactionEvents(\"0x123...\");\n * ```\n *\n * @see For understanding transaction flows, visit https://docs.vana.org/docs/transactions\n */\n public async waitForTransactionEvents<C extends Contract, F extends Fn<C>>(\n transaction: TransactionResult<C, F>,\n options?: TransactionWaitOptions,\n ): Promise<TypedTransactionResult<C, F>> {\n // Import the POJO-based parser\n const { parseTransaction } = await import(\"./utils/parseTransactionPojo\");\n\n // Wait for the transaction to be mined\n const receipt = await this.waitForTransactionReceipt(\n transaction.hash,\n options,\n );\n\n // Parse events using our heuristic-free POJO system\n const result = parseTransaction(transaction, receipt);\n\n // Return the strongly-typed result\n // TypeScript knows exactly what events are possible!\n return result;\n }\n\n /**\n * Enhances a unified relayer response with client-side behavior.\n *\n * @remarks\n * This method wraps a relayer response in an enhanced object that provides\n * a fluent `.wait()` method for handling asynchronous operations. The enhanced\n * response intelligently handles both submitted transactions (via hash) and\n * pending operations (via operationId).\n *\n * @param response - The unified relayer response to enhance\n * @returns EnhancedTransactionResponse if the response can be enhanced, null otherwise\n *\n * @example\n * ```typescript\n * // Enhance a relayer response for fluent waiting\n * const response = await handleRelayerOperation(vana, request);\n * const enhanced = vana.enhanceRelayerResponse(response);\n * if (enhanced) {\n * const result = await enhanced.wait();\n * if (result.expectedEvents?.FileAdded) {\n * console.log('File ID:', result.expectedEvents.FileAdded.fileId);\n * }\n * }\n * ```\n *\n * @example\n * ```typescript\n * // With status updates for pending operations\n * const enhanced = vana.enhanceRelayerResponse(response);\n * if (enhanced) {\n * const result = await enhanced.wait({\n * onStatusUpdate: (status) => {\n * console.log('Operation status:', status.type);\n * },\n * timeout: 60000 // 1 minute timeout\n * });\n * }\n * ```\n *\n * @category Relayer\n * @since 0.2.0\n */\n public async enhanceRelayerResponse(\n response: UnifiedRelayerResponse,\n ): Promise<any> {\n const { enhanceResponse } = await import(\"./client/enhancedResponse\");\n return enhanceResponse(response, this);\n }\n}\n"],"mappings":"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","names":["import_chains"]}
package/dist/core.d.ts DELETED
@@ -1,496 +0,0 @@
1
- import type { VanaConfig, VanaConfigWithStorage, RuntimeConfig, StorageRequiredMarker } from "./types";
2
- import type { UnifiedRelayerResponse } from "./types/relayer";
3
- import { PermissionsController } from "./controllers/permissions";
4
- import { DataController } from "./controllers/data";
5
- import { SchemaController } from "./controllers/schemas";
6
- import { ServerController } from "./controllers/server";
7
- import { ProtocolController } from "./controllers/protocol";
8
- import { OperationsController } from "./controllers/operations";
9
- import { StakingController } from "./controllers/staking";
10
- import type { PublicClient, Address, Hash, TransactionReceipt } from "viem";
11
- import type { Operation, PollingOptions, TransactionResult, TransactionWaitOptions } from "./types/operations";
12
- import type { IOperationStore, IRelayerStateStore } from "./types/operationStore";
13
- import type { IAtomicStore } from "./types/atomicStore";
14
- import type { Contract, Fn, TypedTransactionResult } from "./generated/event-types";
15
- import type { VanaPlatformAdapter } from "./platform/interface";
16
- /**
17
- * Factory functions for creating VanaCore instances with proper type safety
18
- */
19
- export declare class VanaCoreFactory {
20
- /**
21
- * Creates a VanaCore instance that enforces storage requirements at compile time.
22
- * Use this factory when you know you'll need storage-dependent operations.
23
- *
24
- * @param platform - The platform adapter for environment-specific operations
25
- * @param config - Configuration that includes required storage providers
26
- * @returns VanaCore instance with storage validation
27
- * @example
28
- * ```typescript
29
- * const vanaCore = VanaCoreFactory.createWithStorage(platformAdapter, {
30
- * walletClient: myWalletClient,
31
- * storage: {
32
- * providers: { ipfs: new IPFSStorage() },
33
- * defaultProvider: 'ipfs'
34
- * }
35
- * });
36
- * ```
37
- */
38
- static createWithStorage(platform: VanaPlatformAdapter, config: VanaConfigWithStorage): VanaCore & StorageRequiredMarker;
39
- /**
40
- * Creates a VanaCore instance without storage requirements.
41
- * Storage-dependent operations will fail at runtime if not configured.
42
- *
43
- * @param platform - The platform adapter for environment-specific operations
44
- * @param config - Basic configuration without required storage
45
- * @returns VanaCore instance
46
- * @example
47
- * ```typescript
48
- * const vanaCore = VanaCoreFactory.create(platformAdapter, {
49
- * walletClient: myWalletClient
50
- * });
51
- * ```
52
- */
53
- static create(platform: VanaPlatformAdapter, config: VanaConfig): VanaCore;
54
- }
55
- /**
56
- * Provides the core SDK functionality for interacting with the Vana network.
57
- *
58
- * @remarks
59
- * This environment-agnostic class contains all SDK logic and accepts a platform
60
- * adapter to handle environment-specific operations. It initializes all controllers
61
- * and manages shared context between them, providing a unified interface for
62
- * data management, permissions, smart contracts, and storage operations.
63
- *
64
- * The class uses TypeScript overloading to enforce storage requirements at compile time.
65
- * Methods that require storage will throw `InvalidConfigurationError` at runtime if
66
- * storage providers are not configured, implementing a fail-fast approach to prevent
67
- * errors during expensive operations.
68
- *
69
- * **Core Architecture:**
70
- * - **Controllers**: Specialized modules for different Vana features (data, permissions, etc.)
71
- * - **Platform Adapters**: Environment-specific implementations (browser vs Node.js)
72
- * - **Storage Managers**: Abstraction layer for multiple storage providers
73
- * - **Context Sharing**: Unified configuration and services across all controllers
74
- *
75
- * For public usage, use the platform-specific factory functions:
76
- * - Browser: `import { Vana } from '@opendatalabs/vana-sdk/browser'`
77
- * - Node.js: `import { Vana } from '@opendatalabs/vana-sdk/node'`
78
- *
79
- * @example
80
- * ```typescript
81
- * // Direct instantiation (advanced usage)
82
- * import { VanaCore, BrowserPlatformAdapter } from '@opendatalabs/vana-sdk/browser';
83
- *
84
- * const core = new VanaCore(new BrowserPlatformAdapter(), {
85
- * walletClient: myWalletClient,
86
- * storage: {
87
- * providers: { ipfs: new IPFSStorage() },
88
- * defaultProvider: 'ipfs'
89
- * }
90
- * });
91
- *
92
- * // Access all controllers
93
- * const files = await core.data.getUserFiles();
94
- * const permissions = await core.permissions.grant({
95
- * grantee: '0x742d35...',
96
- * operation: 'read'
97
- * });
98
- * ```
99
- * @category Core SDK
100
- */
101
- export declare class VanaCore {
102
- /** Manages gasless data access permissions and trusted server registry. */
103
- readonly permissions: PermissionsController;
104
- /** Handles user data file operations. */
105
- readonly data: DataController;
106
- /** Manages data schemas and refiners. */
107
- readonly schemas: SchemaController;
108
- /** Manages asynchronous operation recovery and status checking. */
109
- readonly operations: OperationsController;
110
- /** Provides personal server setup and trusted server interactions. */
111
- readonly server: ServerController;
112
- /** Offers low-level access to Vana protocol smart contracts. */
113
- readonly protocol: ProtocolController;
114
- /** Provides VanaPool staking information and operations. */
115
- readonly staking: StakingController;
116
- /** Handles environment-specific operations like encryption and file systems. */
117
- protected platform: VanaPlatformAdapter;
118
- private readonly relayerConfig?;
119
- private readonly relayerCallback?;
120
- private readonly downloadRelayer?;
121
- private readonly storageManager?;
122
- private readonly hasRequiredStorage;
123
- private readonly ipfsGateways?;
124
- readonly publicClient: PublicClient;
125
- private readonly walletClient?;
126
- private readonly _staticUserAddress?;
127
- protected readonly operationStore?: IOperationStore | IRelayerStateStore;
128
- protected readonly atomicStore?: IAtomicStore;
129
- /**
130
- * Initializes a new VanaCore client instance with the provided configuration.
131
- *
132
- * @remarks
133
- * The constructor validates the configuration, initializes storage providers if configured,
134
- * creates wallet and public clients, and sets up all SDK controllers with shared context.
135
- *
136
- * IMPORTANT: This constructor will validate storage requirements at runtime to fail fast.
137
- * Methods that require storage will throw runtime errors if storage is not configured.
138
- *
139
- * @param platform - The platform adapter for environment-specific operations
140
- * @param config - The configuration object specifying wallet or chain settings
141
- * @throws {InvalidConfigurationError} When the configuration is invalid or incomplete
142
- * @example
143
- * ```typescript
144
- * // Direct instantiation (consider using factory methods instead)
145
- * const vanaCore = new VanaCore(platformAdapter, {
146
- * walletClient: myWalletClient,
147
- * });
148
- * ```
149
- */
150
- constructor(platform: VanaPlatformAdapter, config: VanaConfig);
151
- /**
152
- * Validates that storage is available for storage-dependent operations.
153
- * This method enforces the fail-fast principle by checking storage availability
154
- * at method call time rather than during expensive operations.
155
- *
156
- * @throws {InvalidConfigurationError} When storage is required but not configured
157
- * @example
158
- * ```typescript
159
- * // This will throw if storage is not configured
160
- * vana.validateStorageRequired();
161
- * await vana.data.uploadFile(file); // Safe to proceed
162
- * ```
163
- */
164
- validateStorageRequired(): void;
165
- /**
166
- * Checks whether storage is configured without throwing an error.
167
- *
168
- * @returns True if storage is properly configured
169
- * @example
170
- * ```typescript
171
- * if (vana.hasStorage()) {
172
- * await vana.data.uploadFile(file);
173
- * } else {
174
- * console.warn('Storage not configured - using pre-stored URLs only');
175
- * }
176
- * ```
177
- */
178
- hasStorage(): boolean;
179
- /**
180
- * Type guard to check if this instance has storage enabled at compile time.
181
- * Use this when you need TypeScript to understand that storage is available.
182
- *
183
- * @returns True if storage is configured, with type narrowing
184
- * @example
185
- * ```typescript
186
- * if (vana.isStorageEnabled()) {
187
- * // TypeScript knows storage is available here
188
- * await vana.data.uploadFile(file);
189
- * }
190
- * ```
191
- */
192
- isStorageEnabled(): this is VanaCore & StorageRequiredMarker;
193
- /**
194
- * Validates the provided configuration object against all requirements.
195
- *
196
- * @remarks
197
- * This method performs comprehensive validation of wallet client configuration,
198
- * chain configuration, storage providers, and relayer callbacks.
199
- * @param config - The configuration object to validate
200
- * @throws {InvalidConfigurationError} When any configuration parameter is invalid
201
- */
202
- private validateConfig;
203
- /**
204
- * Gets the current chain ID from the wallet client.
205
- *
206
- * @returns The numeric chain ID of the connected network
207
- * @example
208
- * ```typescript
209
- * const chainId = vana.chainId;
210
- * console.log(`Connected to chain: ${chainId}`); // e.g., "Connected to chain: 14800"
211
- * ```
212
- */
213
- get chainId(): number;
214
- /**
215
- * Gets the current chain name from the wallet client.
216
- *
217
- * @returns The human-readable name of the connected network
218
- * @example
219
- * ```typescript
220
- * const chainName = vana.chainName;
221
- * console.log(`Connected to: ${chainName}`); // e.g., "Connected to: Moksha Testnet"
222
- * ```
223
- */
224
- get chainName(): string;
225
- /**
226
- * The user's wallet address.
227
- * In wallet mode, this always returns the current wallet account address.
228
- * In read-only mode, this returns the static address provided during initialization.
229
- *
230
- * @example
231
- * ```typescript
232
- * const address = vana.userAddress;
233
- * console.log(`User address: ${address}`); // e.g., "User address: 0x742d35..."
234
- * ```
235
- */
236
- get userAddress(): Address;
237
- /**
238
- * Retrieves comprehensive runtime configuration information.
239
- *
240
- * @returns The current runtime configuration including chain, storage, and relayer settings
241
- * @example
242
- * ```typescript
243
- * const config = vana.getConfig();
244
- * console.log(`Chain: ${config.chainName} (${config.chainId})`);
245
- * console.log(`Storage providers: ${config.storageProviders.join(", ")}`);
246
- * ```
247
- */
248
- getConfig(): RuntimeConfig;
249
- /**
250
- * Sets the platform adapter for environment-specific operations.
251
- * This is useful for testing and advanced use cases where you need
252
- * to override the default platform detection.
253
- *
254
- * @param adapter - The platform adapter to use
255
- * @example
256
- * ```typescript
257
- * // For testing with a mock adapter
258
- * const mockAdapter = new MockPlatformAdapter();
259
- * vana.setPlatformAdapter(mockAdapter);
260
- *
261
- * // For advanced use cases with custom adapters
262
- * const customAdapter = new CustomPlatformAdapter();
263
- * vana.setPlatformAdapter(customAdapter);
264
- * ```
265
- */
266
- setPlatformAdapter(adapter: VanaPlatformAdapter): void;
267
- /**
268
- * Gets the current platform adapter.
269
- * This is useful for advanced use cases where you need to access
270
- * the platform adapter directly.
271
- *
272
- * @returns The current platform adapter
273
- * @example
274
- * ```typescript
275
- * const adapter = vana.getPlatformAdapter();
276
- * const encrypted = await adapter.encrypt(data, key);
277
- * ```
278
- */
279
- getPlatformAdapter(): VanaPlatformAdapter;
280
- /**
281
- * Encrypts data using the Vana protocol standard encryption.
282
- *
283
- * @remarks
284
- * This method implements the Vana network's standard encryption protocol using
285
- * platform-appropriate cryptographic libraries. It automatically handles different
286
- * input types (string or Blob) and produces encrypted output suitable for secure
287
- * storage or transmission. The encryption is compatible with the network's
288
- * decryption protocols and can be decrypted by authorized parties.
289
- *
290
- * @param data - The data to encrypt (string or Blob)
291
- * @param key - The encryption key (typically generated via `generateEncryptionKey`)
292
- * @returns The encrypted data as a Blob
293
- * @throws {Error} When encryption fails due to invalid key or data format
294
- * @example
295
- * ```typescript
296
- * import { generateEncryptionKey } from '@opendatalabs/vana-sdk/node';
297
- *
298
- * // Generate encryption key from wallet signature
299
- * const encryptionKey = await generateEncryptionKey(vana.walletClient);
300
- *
301
- * // Encrypt string data
302
- * const sensitiveData = "User's private information";
303
- * const encrypted = await vana.encryptBlob(sensitiveData, encryptionKey);
304
- *
305
- * // Encrypt file data
306
- * const fileBlob = new Blob([fileContent], { type: 'application/json' });
307
- * const encryptedFile = await vana.encryptBlob(fileBlob, encryptionKey);
308
- *
309
- * // Store encrypted data safely
310
- * await storageProvider.upload(encrypted, 'encrypted-data.bin');
311
- * ```
312
- */
313
- encryptBlob(data: string | Blob, key: string): Promise<Blob>;
314
- /**
315
- * Decrypts data that was encrypted using the Vana protocol.
316
- *
317
- * @remarks
318
- * This method decrypts data that was previously encrypted using the Vana network's
319
- * standard encryption protocol. It requires the same wallet signature that was used
320
- * for encryption and automatically uses the appropriate platform adapter for
321
- * cryptographic operations. The decrypted output maintains the original data format.
322
- *
323
- * @param encryptedData - The encrypted data (string or Blob)
324
- * @param walletSignature - The wallet signature used as decryption key
325
- * @returns The decrypted data as a Blob
326
- * @throws {Error} When decryption fails due to invalid signature or corrupted data
327
- * @example
328
- * ```typescript
329
- * import { generateEncryptionKey } from '@opendatalabs/vana-sdk/node';
330
- *
331
- * // Retrieve encrypted data from storage
332
- * const encryptedBlob = await storageProvider.download('encrypted-data.bin');
333
- *
334
- * // Generate the same key used for encryption
335
- * const decryptionKey = await generateEncryptionKey(vana.walletClient);
336
- *
337
- * // Decrypt the data
338
- * const decrypted = await vana.decryptBlob(encryptedBlob, decryptionKey);
339
- *
340
- * // Convert back to original format
341
- * const originalText = await decrypted.text();
342
- * const originalJson = JSON.parse(originalText);
343
- *
344
- * console.log('Decrypted data:', originalJson);
345
- * ```
346
- *
347
- * @example
348
- * ```typescript
349
- * // Decrypt file downloaded from Vana network
350
- * const userFiles = await vana.data.getUserFiles();
351
- * const file = userFiles[0];
352
- *
353
- * // Download encrypted content
354
- * const encrypted = await fetch(file.url).then(r => r.blob());
355
- *
356
- * // Decrypt with user's key
357
- * const decryptionKey = await generateEncryptionKey(vana.walletClient);
358
- * const decrypted = await vana.decryptBlob(encrypted, decryptionKey);
359
- *
360
- * // Process original data
361
- * const fileContent = await decrypted.arrayBuffer();
362
- * ```
363
- */
364
- decryptBlob(encryptedData: string | Blob, walletSignature: string): Promise<Blob>;
365
- /**
366
- * Waits for an operation to complete and returns the final result.
367
- *
368
- * @remarks
369
- * This method polls the operation status at regular intervals until it
370
- * reaches a terminal state (succeeded, failed, or canceled). Supports
371
- * ergonomic overloads to accept either an Operation object or just the ID.
372
- *
373
- * @param opOrId - Either an Operation object or operation ID string
374
- * @param options - Optional polling configuration
375
- * @returns The completed operation with result or error
376
- * @throws {PersonalServerError} When the operation fails or times out
377
- * @example
378
- * ```typescript
379
- * // Using operation object
380
- * const operation = await vana.server.createOperation({ permissionId: 123 });
381
- * const completed = await vana.waitForOperation(operation);
382
- *
383
- * // Using just the ID
384
- * const completed = await vana.waitForOperation("op_abc123");
385
- *
386
- * // With custom timeout
387
- * const completed = await vana.waitForOperation(operation, {
388
- * timeout: 60000,
389
- * pollingInterval: 1000
390
- * });
391
- * ```
392
- */
393
- waitForOperation(opOrId: Operation | string, options?: PollingOptions): Promise<Operation>;
394
- /**
395
- * Waits for a transaction to be confirmed and returns the receipt.
396
- *
397
- * @remarks
398
- * This method polls for transaction confirmation on the blockchain.
399
- * Supports ergonomic overloads to accept either a transaction result
400
- * object or just the hash string.
401
- *
402
- * @param hashOrObj - Either a TransactionResult object or hash string
403
- * @param options - Optional wait configuration
404
- * @returns The transaction receipt with logs and status
405
- * @example
406
- * ```typescript
407
- * // Using transaction result object
408
- * const tx = await vana.permissions.grant(params);
409
- * const receipt = await vana.waitForTransactionReceipt(tx);
410
- *
411
- * // Using just the hash
412
- * const receipt = await vana.waitForTransactionReceipt("0x123...");
413
- *
414
- * // With custom confirmations
415
- * const receipt = await vana.waitForTransactionReceipt(tx, {
416
- * confirmations: 3,
417
- * timeout: 60000
418
- * });
419
- * ```
420
- */
421
- waitForTransactionReceipt(hashOrObj: TransactionResult | {
422
- hash: Hash;
423
- } | Hash, options?: TransactionWaitOptions): Promise<TransactionReceipt>;
424
- /**
425
- * Waits for transaction confirmation and extracts blockchain event data.
426
- *
427
- * @remarks
428
- * This method leverages the context-carrying POJO architecture. When passed a
429
- * `TransactionResult` with an `operation` field, it automatically parses the
430
- * correct events from the transaction logs. For legacy compatibility, it accepts
431
- * raw hashes but will not parse events without operation context.
432
- *
433
- * @param transaction - Transaction result with operation context
434
- * @param options - Optional confirmation and timeout settings
435
- * @returns Parsed event data specific to the transaction's operation type
436
- * @throws {NetworkError} When transaction confirmation times out
437
- * @throws {BlockchainError} When expected events are not found in the transaction
438
- *
439
- * @example
440
- * ```typescript
441
- * // Recommended: Pass the transaction result for automatic event parsing
442
- * const tx = await vana.permissions.submitAddServerFilesAndPermissions(params);
443
- * const events = await vana.waitForTransactionEvents<{ permissionId: bigint }>(tx);
444
- * console.log(`Permission ID: ${events.permissionId}`);
445
- *
446
- * // Legacy: Raw hash without event parsing (returns receipt)
447
- * const receipt = await vana.waitForTransactionEvents("0x123...");
448
- * ```
449
- *
450
- * @see For understanding transaction flows, visit https://docs.vana.org/docs/transactions
451
- */
452
- waitForTransactionEvents<C extends Contract, F extends Fn<C>>(transaction: TransactionResult<C, F>, options?: TransactionWaitOptions): Promise<TypedTransactionResult<C, F>>;
453
- /**
454
- * Enhances a unified relayer response with client-side behavior.
455
- *
456
- * @remarks
457
- * This method wraps a relayer response in an enhanced object that provides
458
- * a fluent `.wait()` method for handling asynchronous operations. The enhanced
459
- * response intelligently handles both submitted transactions (via hash) and
460
- * pending operations (via operationId).
461
- *
462
- * @param response - The unified relayer response to enhance
463
- * @returns EnhancedTransactionResponse if the response can be enhanced, null otherwise
464
- *
465
- * @example
466
- * ```typescript
467
- * // Enhance a relayer response for fluent waiting
468
- * const response = await handleRelayerOperation(vana, request);
469
- * const enhanced = vana.enhanceRelayerResponse(response);
470
- * if (enhanced) {
471
- * const result = await enhanced.wait();
472
- * if (result.expectedEvents?.FileAdded) {
473
- * console.log('File ID:', result.expectedEvents.FileAdded.fileId);
474
- * }
475
- * }
476
- * ```
477
- *
478
- * @example
479
- * ```typescript
480
- * // With status updates for pending operations
481
- * const enhanced = vana.enhanceRelayerResponse(response);
482
- * if (enhanced) {
483
- * const result = await enhanced.wait({
484
- * onStatusUpdate: (status) => {
485
- * console.log('Operation status:', status.type);
486
- * },
487
- * timeout: 60000 // 1 minute timeout
488
- * });
489
- * }
490
- * ```
491
- *
492
- * @category Relayer
493
- * @since 0.2.0
494
- */
495
- enhanceRelayerResponse(response: UnifiedRelayerResponse): Promise<any>;
496
- }