@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
@@ -1,183 +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 protocol_exports = {};
20
- __export(protocol_exports, {
21
- ProtocolController: () => ProtocolController
22
- });
23
- module.exports = __toCommonJS(protocol_exports);
24
- var import_errors = require("../errors");
25
- var import_contractController = require("../contracts/contractController");
26
- var import_base = require("./base");
27
- class ProtocolController extends import_base.BaseController {
28
- contractFactory;
29
- constructor(context) {
30
- super(context);
31
- this.contractFactory = new import_contractController.ContractFactory(
32
- context.walletClient ?? context.publicClient
33
- );
34
- }
35
- /**
36
- * Retrieves the address and ABI for a specific Vana protocol contract.
37
- *
38
- * @remarks
39
- * This method provides direct access to contract addresses and ABIs for the current
40
- * chain. It includes full TypeScript type inference when using const assertions,
41
- * enabling type-safe contract interactions. The method only returns contracts that
42
- * are actually deployed on the current network.
43
- * @param contractName - The name of the Vana contract to retrieve (use const assertion for full typing)
44
- * @returns An object containing the contract's address and fully typed ABI
45
- * @throws {ContractNotFoundError} When the contract is not deployed on the current chain.
46
- * Verify contract name spelling and check current network with `getChainId()`.
47
- * @example
48
- * ```typescript
49
- * // Get contract info with full type inference
50
- * const dataRegistry = vana.protocol.getContract("DataRegistry" as const);
51
- *
52
- * // Now dataRegistry.abi is fully typed for the DataRegistry contract
53
- * console.log(dataRegistry.address); // "0x123..."
54
- * console.log(dataRegistry.abi.length); // Full ABI array
55
- * ```
56
- */
57
- getContract(contractName) {
58
- try {
59
- const chainId = this.context.walletClient?.chain?.id ?? this.context.publicClient.chain?.id;
60
- if (!chainId) {
61
- throw new import_errors.ContractNotFoundError(contractName, 0);
62
- }
63
- return (0, import_contractController.getContractInfo)(contractName, chainId);
64
- } catch (error) {
65
- if (error instanceof import_errors.ContractNotFoundError) {
66
- throw error;
67
- }
68
- if (error instanceof Error) {
69
- if (error.message.includes("Contract address not found")) {
70
- let chainId = 0;
71
- try {
72
- chainId = this.context.walletClient?.chain?.id ?? this.context.publicClient.chain?.id ?? 0;
73
- } catch {
74
- chainId = 0;
75
- }
76
- throw new import_errors.ContractNotFoundError(contractName, chainId);
77
- }
78
- throw error;
79
- }
80
- throw new Error(`Failed to get contract ${contractName}: Unknown error`);
81
- }
82
- }
83
- /**
84
- * Creates a fully typed contract instance ready for blockchain interaction.
85
- *
86
- * @remarks
87
- * This method creates a contract instance with complete type safety for all contract
88
- * methods including read operations, write operations, and event handling. The instance
89
- * is pre-configured with the correct address, ABI, and wallet client for immediate use.
90
- * All method parameters and return types are fully typed based on the contract ABI.
91
- * @param contractName - The name of the Vana contract (use const assertion for full typing)
92
- * @returns A fully typed contract instance with read/write methods and event handling
93
- * @throws {ContractNotFoundError} When the contract is not deployed on the current chain
94
- * @example
95
- * ```typescript
96
- * // Create typed contract instance
97
- * const dataRegistry = vana.protocol.createContract("DataRegistry" as const);
98
- *
99
- * // Full type safety for all operations
100
- * const fileCount = await dataRegistry.read.filesCount(); // Type: bigint
101
- * const txHash = await dataRegistry.write.addFile(["ipfs://..."]); // Typed parameters
102
- *
103
- * // Listen to events with full typing
104
- * const logs = await dataRegistry.getEvents.FileAdded();
105
- * ```
106
- */
107
- createContract(contractName) {
108
- this.assertWallet();
109
- try {
110
- return (0, import_contractController.getContractController)(contractName, this.context.walletClient);
111
- } catch (error) {
112
- if (error instanceof Error) {
113
- if (error.message.includes("Contract address not found")) {
114
- const chainId = this.context.walletClient.chain?.id ?? 0;
115
- throw new import_errors.ContractNotFoundError(contractName, chainId);
116
- }
117
- throw error;
118
- }
119
- throw new Error(
120
- `Failed to create contract ${contractName}: Unknown error`
121
- );
122
- }
123
- }
124
- /**
125
- * Gets all available contract names that can be used with getContract().
126
- * Returns only contracts that are actually deployed on the current chain.
127
- *
128
- * @returns Array of all available contract names for the current chain
129
- */
130
- getAvailableContracts() {
131
- return this.contractFactory.getAvailableContracts();
132
- }
133
- /**
134
- * Checks if a specific contract is available on the current chain.
135
- *
136
- * @param contractName - The contract name to check
137
- * @returns Whether the contract is deployed on the current chain
138
- */
139
- isContractAvailable(contractName) {
140
- const availableContracts = this.getAvailableContracts();
141
- return availableContracts.includes(contractName);
142
- }
143
- /**
144
- * Gets the contract factory instance for advanced usage.
145
- * This provides access to additional contract management methods.
146
- *
147
- * @returns The contract factory instance
148
- */
149
- getContractFactory() {
150
- return this.contractFactory;
151
- }
152
- /**
153
- * Gets the current chain ID from the wallet client.
154
- *
155
- * @returns The chain ID
156
- * @throws {Error} When chain ID is not available from wallet client
157
- */
158
- getChainId() {
159
- const chainId = this.context.walletClient?.chain?.id ?? this.context.publicClient.chain?.id;
160
- if (!chainId) {
161
- throw new Error("Chain ID not available from client");
162
- }
163
- return chainId;
164
- }
165
- /**
166
- * Gets the current chain name from the wallet client.
167
- *
168
- * @returns The chain name
169
- * @throws {Error} When chain name is not available from wallet client
170
- */
171
- getChainName() {
172
- const chainName = this.context.walletClient?.chain?.name ?? this.context.publicClient.chain?.name;
173
- if (!chainName) {
174
- throw new Error("Chain name not available from client");
175
- }
176
- return chainName;
177
- }
178
- }
179
- // Annotate the CommonJS export names for ESM import in node:
180
- 0 && (module.exports = {
181
- ProtocolController
182
- });
183
- //# sourceMappingURL=protocol.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/controllers/protocol.ts"],"sourcesContent":["import type { ContractInfo, VanaChainId } from \"../types/index\";\nimport type { VanaContract, ContractAbis } from \"../generated/abi\";\nimport { ContractNotFoundError } from \"../errors\";\nimport {\n getContractController,\n getContractInfo,\n ContractFactory,\n} from \"../contracts/contractController\";\nimport type { ControllerContext } from \"../types/controller-context\";\nimport type { GetContractReturnType } from \"viem\";\nimport { BaseController } from \"./base\";\n\n/**\n * Provides low-level access to Vana protocol smart contracts.\n *\n * @remarks\n * Advanced API for direct contract interaction. Most developers should use\n * higher-level controllers (DataController, PermissionsController) instead.\n * This controller serves as an escape hatch when high-level APIs lack needed\n * functionality.\n *\n * **Architecture:**\n * Automatically detects current chain and provides only deployed contracts.\n * Full TypeScript type safety through contract ABIs and const assertions.\n *\n * **Method Selection:**\n * - `getContract()` - Retrieve address and ABI for manual interaction\n * - `createContract()` - Get typed contract instance with read/write methods\n * - `getAvailableContracts()` - List all contracts on current chain\n * - `isContractAvailable()` - Check contract deployment status\n * - `getChainId()`/`getChainName()` - Current network information\n *\n * **When to Use:**\n * - Custom contract interactions not covered by high-level APIs\n * - Direct contract event listening\n * - Advanced protocol operations\n *\n * **Type Safety:**\n * Always use `as const` with contract names for full type inference.\n *\n * @example\n * ```typescript\n * // Get contract info with typed ABI\n * const registry = vana.protocol.getContract(\"DataRegistry\" as const);\n * console.log(`Contract at ${registry.address}`);\n *\n * // Create typed contract instance\n * const contract = vana.protocol.createContract(\"DataRegistry\" as const);\n * const count = await contract.read.filesCount(); // Returns: bigint\n *\n * // Write operations with full typing\n * const hash = await contract.write.addFile([\"ipfs://...\"]);\n * ```\n *\n * @category Advanced\n * @see For contract specifications, visit {@link https://docs.vana.org/docs/protocol-contracts}\n */\nexport class ProtocolController extends BaseController {\n private readonly contractFactory: ContractFactory;\n\n constructor(context: ControllerContext) {\n super(context);\n this.contractFactory = new ContractFactory(\n context.walletClient ?? context.publicClient,\n );\n }\n\n /**\n * Retrieves the address and ABI for a specific Vana protocol contract.\n *\n * @remarks\n * This method provides direct access to contract addresses and ABIs for the current\n * chain. It includes full TypeScript type inference when using const assertions,\n * enabling type-safe contract interactions. The method only returns contracts that\n * are actually deployed on the current network.\n * @param contractName - The name of the Vana contract to retrieve (use const assertion for full typing)\n * @returns An object containing the contract's address and fully typed ABI\n * @throws {ContractNotFoundError} When the contract is not deployed on the current chain.\n * Verify contract name spelling and check current network with `getChainId()`.\n * @example\n * ```typescript\n * // Get contract info with full type inference\n * const dataRegistry = vana.protocol.getContract(\"DataRegistry\" as const);\n *\n * // Now dataRegistry.abi is fully typed for the DataRegistry contract\n * console.log(dataRegistry.address); // \"0x123...\"\n * console.log(dataRegistry.abi.length); // Full ABI array\n * ```\n */\n getContract<T extends VanaContract>(\n contractName: T,\n ): ContractInfo<ContractAbis[T]> {\n try {\n const chainId =\n this.context.walletClient?.chain?.id ??\n this.context.publicClient.chain?.id;\n\n if (!chainId) {\n throw new ContractNotFoundError(contractName, 0);\n }\n\n return getContractInfo(contractName, chainId as VanaChainId);\n } catch (error) {\n if (error instanceof ContractNotFoundError) {\n throw error;\n }\n if (error instanceof Error) {\n if (error.message.includes(\"Contract address not found\")) {\n let chainId = 0;\n try {\n chainId =\n this.context.walletClient?.chain?.id ??\n this.context.publicClient.chain?.id ??\n 0;\n } catch {\n // Use 0 as fallback if chain ID access fails\n chainId = 0;\n }\n throw new ContractNotFoundError(contractName, chainId);\n }\n throw error;\n }\n throw new Error(`Failed to get contract ${contractName}: Unknown error`);\n }\n }\n\n /**\n * Creates a fully typed contract instance ready for blockchain interaction.\n *\n * @remarks\n * This method creates a contract instance with complete type safety for all contract\n * methods including read operations, write operations, and event handling. The instance\n * is pre-configured with the correct address, ABI, and wallet client for immediate use.\n * All method parameters and return types are fully typed based on the contract ABI.\n * @param contractName - The name of the Vana contract (use const assertion for full typing)\n * @returns A fully typed contract instance with read/write methods and event handling\n * @throws {ContractNotFoundError} When the contract is not deployed on the current chain\n * @example\n * ```typescript\n * // Create typed contract instance\n * const dataRegistry = vana.protocol.createContract(\"DataRegistry\" as const);\n *\n * // Full type safety for all operations\n * const fileCount = await dataRegistry.read.filesCount(); // Type: bigint\n * const txHash = await dataRegistry.write.addFile([\"ipfs://...\"]); // Typed parameters\n *\n * // Listen to events with full typing\n * const logs = await dataRegistry.getEvents.FileAdded();\n * ```\n */\n createContract<T extends VanaContract>(\n contractName: T,\n ): GetContractReturnType<ContractAbis[T]> {\n this.assertWallet();\n try {\n return getContractController(contractName, this.context.walletClient);\n } catch (error) {\n if (error instanceof Error) {\n if (error.message.includes(\"Contract address not found\")) {\n const chainId = this.context.walletClient.chain?.id ?? 0;\n throw new ContractNotFoundError(contractName, chainId);\n }\n throw error;\n }\n throw new Error(\n `Failed to create contract ${contractName}: Unknown error`,\n );\n }\n }\n\n /**\n * Gets all available contract names that can be used with getContract().\n * Returns only contracts that are actually deployed on the current chain.\n *\n * @returns Array of all available contract names for the current chain\n */\n getAvailableContracts(): VanaContract[] {\n return this.contractFactory.getAvailableContracts();\n }\n\n /**\n * Checks if a specific contract is available on the current chain.\n *\n * @param contractName - The contract name to check\n * @returns Whether the contract is deployed on the current chain\n */\n isContractAvailable(contractName: VanaContract): boolean {\n const availableContracts = this.getAvailableContracts();\n return availableContracts.includes(contractName);\n }\n\n /**\n * Gets the contract factory instance for advanced usage.\n * This provides access to additional contract management methods.\n *\n * @returns The contract factory instance\n */\n getContractFactory(): ContractFactory {\n return this.contractFactory;\n }\n\n /**\n * Gets the current chain ID from the wallet client.\n *\n * @returns The chain ID\n * @throws {Error} When chain ID is not available from wallet client\n */\n getChainId(): number {\n const chainId =\n this.context.walletClient?.chain?.id ??\n this.context.publicClient.chain?.id;\n if (!chainId) {\n throw new Error(\"Chain ID not available from client\");\n }\n return chainId;\n }\n\n /**\n * Gets the current chain name from the wallet client.\n *\n * @returns The chain name\n * @throws {Error} When chain name is not available from wallet client\n */\n getChainName(): string {\n const chainName =\n this.context.walletClient?.chain?.name ??\n this.context.publicClient.chain?.name;\n if (!chainName) {\n throw new Error(\"Chain name not available from client\");\n }\n return chainName;\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,138 +0,0 @@
1
- import type { ContractInfo } from "../types/index";
2
- import type { VanaContract, ContractAbis } from "../generated/abi";
3
- import { ContractFactory } from "../contracts/contractController";
4
- import type { ControllerContext } from "../types/controller-context";
5
- import type { GetContractReturnType } from "viem";
6
- import { BaseController } from "./base";
7
- /**
8
- * Provides low-level access to Vana protocol smart contracts.
9
- *
10
- * @remarks
11
- * Advanced API for direct contract interaction. Most developers should use
12
- * higher-level controllers (DataController, PermissionsController) instead.
13
- * This controller serves as an escape hatch when high-level APIs lack needed
14
- * functionality.
15
- *
16
- * **Architecture:**
17
- * Automatically detects current chain and provides only deployed contracts.
18
- * Full TypeScript type safety through contract ABIs and const assertions.
19
- *
20
- * **Method Selection:**
21
- * - `getContract()` - Retrieve address and ABI for manual interaction
22
- * - `createContract()` - Get typed contract instance with read/write methods
23
- * - `getAvailableContracts()` - List all contracts on current chain
24
- * - `isContractAvailable()` - Check contract deployment status
25
- * - `getChainId()`/`getChainName()` - Current network information
26
- *
27
- * **When to Use:**
28
- * - Custom contract interactions not covered by high-level APIs
29
- * - Direct contract event listening
30
- * - Advanced protocol operations
31
- *
32
- * **Type Safety:**
33
- * Always use `as const` with contract names for full type inference.
34
- *
35
- * @example
36
- * ```typescript
37
- * // Get contract info with typed ABI
38
- * const registry = vana.protocol.getContract("DataRegistry" as const);
39
- * console.log(`Contract at ${registry.address}`);
40
- *
41
- * // Create typed contract instance
42
- * const contract = vana.protocol.createContract("DataRegistry" as const);
43
- * const count = await contract.read.filesCount(); // Returns: bigint
44
- *
45
- * // Write operations with full typing
46
- * const hash = await contract.write.addFile(["ipfs://..."]);
47
- * ```
48
- *
49
- * @category Advanced
50
- * @see For contract specifications, visit {@link https://docs.vana.org/docs/protocol-contracts}
51
- */
52
- export declare class ProtocolController extends BaseController {
53
- private readonly contractFactory;
54
- constructor(context: ControllerContext);
55
- /**
56
- * Retrieves the address and ABI for a specific Vana protocol contract.
57
- *
58
- * @remarks
59
- * This method provides direct access to contract addresses and ABIs for the current
60
- * chain. It includes full TypeScript type inference when using const assertions,
61
- * enabling type-safe contract interactions. The method only returns contracts that
62
- * are actually deployed on the current network.
63
- * @param contractName - The name of the Vana contract to retrieve (use const assertion for full typing)
64
- * @returns An object containing the contract's address and fully typed ABI
65
- * @throws {ContractNotFoundError} When the contract is not deployed on the current chain.
66
- * Verify contract name spelling and check current network with `getChainId()`.
67
- * @example
68
- * ```typescript
69
- * // Get contract info with full type inference
70
- * const dataRegistry = vana.protocol.getContract("DataRegistry" as const);
71
- *
72
- * // Now dataRegistry.abi is fully typed for the DataRegistry contract
73
- * console.log(dataRegistry.address); // "0x123..."
74
- * console.log(dataRegistry.abi.length); // Full ABI array
75
- * ```
76
- */
77
- getContract<T extends VanaContract>(contractName: T): ContractInfo<ContractAbis[T]>;
78
- /**
79
- * Creates a fully typed contract instance ready for blockchain interaction.
80
- *
81
- * @remarks
82
- * This method creates a contract instance with complete type safety for all contract
83
- * methods including read operations, write operations, and event handling. The instance
84
- * is pre-configured with the correct address, ABI, and wallet client for immediate use.
85
- * All method parameters and return types are fully typed based on the contract ABI.
86
- * @param contractName - The name of the Vana contract (use const assertion for full typing)
87
- * @returns A fully typed contract instance with read/write methods and event handling
88
- * @throws {ContractNotFoundError} When the contract is not deployed on the current chain
89
- * @example
90
- * ```typescript
91
- * // Create typed contract instance
92
- * const dataRegistry = vana.protocol.createContract("DataRegistry" as const);
93
- *
94
- * // Full type safety for all operations
95
- * const fileCount = await dataRegistry.read.filesCount(); // Type: bigint
96
- * const txHash = await dataRegistry.write.addFile(["ipfs://..."]); // Typed parameters
97
- *
98
- * // Listen to events with full typing
99
- * const logs = await dataRegistry.getEvents.FileAdded();
100
- * ```
101
- */
102
- createContract<T extends VanaContract>(contractName: T): GetContractReturnType<ContractAbis[T]>;
103
- /**
104
- * Gets all available contract names that can be used with getContract().
105
- * Returns only contracts that are actually deployed on the current chain.
106
- *
107
- * @returns Array of all available contract names for the current chain
108
- */
109
- getAvailableContracts(): VanaContract[];
110
- /**
111
- * Checks if a specific contract is available on the current chain.
112
- *
113
- * @param contractName - The contract name to check
114
- * @returns Whether the contract is deployed on the current chain
115
- */
116
- isContractAvailable(contractName: VanaContract): boolean;
117
- /**
118
- * Gets the contract factory instance for advanced usage.
119
- * This provides access to additional contract management methods.
120
- *
121
- * @returns The contract factory instance
122
- */
123
- getContractFactory(): ContractFactory;
124
- /**
125
- * Gets the current chain ID from the wallet client.
126
- *
127
- * @returns The chain ID
128
- * @throws {Error} When chain ID is not available from wallet client
129
- */
130
- getChainId(): number;
131
- /**
132
- * Gets the current chain name from the wallet client.
133
- *
134
- * @returns The chain name
135
- * @throws {Error} When chain name is not available from wallet client
136
- */
137
- getChainName(): string;
138
- }
@@ -1,163 +0,0 @@
1
- import { ContractNotFoundError } from "../errors";
2
- import {
3
- getContractController,
4
- getContractInfo,
5
- ContractFactory
6
- } from "../contracts/contractController";
7
- import { BaseController } from "./base";
8
- class ProtocolController extends BaseController {
9
- contractFactory;
10
- constructor(context) {
11
- super(context);
12
- this.contractFactory = new ContractFactory(
13
- context.walletClient ?? context.publicClient
14
- );
15
- }
16
- /**
17
- * Retrieves the address and ABI for a specific Vana protocol contract.
18
- *
19
- * @remarks
20
- * This method provides direct access to contract addresses and ABIs for the current
21
- * chain. It includes full TypeScript type inference when using const assertions,
22
- * enabling type-safe contract interactions. The method only returns contracts that
23
- * are actually deployed on the current network.
24
- * @param contractName - The name of the Vana contract to retrieve (use const assertion for full typing)
25
- * @returns An object containing the contract's address and fully typed ABI
26
- * @throws {ContractNotFoundError} When the contract is not deployed on the current chain.
27
- * Verify contract name spelling and check current network with `getChainId()`.
28
- * @example
29
- * ```typescript
30
- * // Get contract info with full type inference
31
- * const dataRegistry = vana.protocol.getContract("DataRegistry" as const);
32
- *
33
- * // Now dataRegistry.abi is fully typed for the DataRegistry contract
34
- * console.log(dataRegistry.address); // "0x123..."
35
- * console.log(dataRegistry.abi.length); // Full ABI array
36
- * ```
37
- */
38
- getContract(contractName) {
39
- try {
40
- const chainId = this.context.walletClient?.chain?.id ?? this.context.publicClient.chain?.id;
41
- if (!chainId) {
42
- throw new ContractNotFoundError(contractName, 0);
43
- }
44
- return getContractInfo(contractName, chainId);
45
- } catch (error) {
46
- if (error instanceof ContractNotFoundError) {
47
- throw error;
48
- }
49
- if (error instanceof Error) {
50
- if (error.message.includes("Contract address not found")) {
51
- let chainId = 0;
52
- try {
53
- chainId = this.context.walletClient?.chain?.id ?? this.context.publicClient.chain?.id ?? 0;
54
- } catch {
55
- chainId = 0;
56
- }
57
- throw new ContractNotFoundError(contractName, chainId);
58
- }
59
- throw error;
60
- }
61
- throw new Error(`Failed to get contract ${contractName}: Unknown error`);
62
- }
63
- }
64
- /**
65
- * Creates a fully typed contract instance ready for blockchain interaction.
66
- *
67
- * @remarks
68
- * This method creates a contract instance with complete type safety for all contract
69
- * methods including read operations, write operations, and event handling. The instance
70
- * is pre-configured with the correct address, ABI, and wallet client for immediate use.
71
- * All method parameters and return types are fully typed based on the contract ABI.
72
- * @param contractName - The name of the Vana contract (use const assertion for full typing)
73
- * @returns A fully typed contract instance with read/write methods and event handling
74
- * @throws {ContractNotFoundError} When the contract is not deployed on the current chain
75
- * @example
76
- * ```typescript
77
- * // Create typed contract instance
78
- * const dataRegistry = vana.protocol.createContract("DataRegistry" as const);
79
- *
80
- * // Full type safety for all operations
81
- * const fileCount = await dataRegistry.read.filesCount(); // Type: bigint
82
- * const txHash = await dataRegistry.write.addFile(["ipfs://..."]); // Typed parameters
83
- *
84
- * // Listen to events with full typing
85
- * const logs = await dataRegistry.getEvents.FileAdded();
86
- * ```
87
- */
88
- createContract(contractName) {
89
- this.assertWallet();
90
- try {
91
- return getContractController(contractName, this.context.walletClient);
92
- } catch (error) {
93
- if (error instanceof Error) {
94
- if (error.message.includes("Contract address not found")) {
95
- const chainId = this.context.walletClient.chain?.id ?? 0;
96
- throw new ContractNotFoundError(contractName, chainId);
97
- }
98
- throw error;
99
- }
100
- throw new Error(
101
- `Failed to create contract ${contractName}: Unknown error`
102
- );
103
- }
104
- }
105
- /**
106
- * Gets all available contract names that can be used with getContract().
107
- * Returns only contracts that are actually deployed on the current chain.
108
- *
109
- * @returns Array of all available contract names for the current chain
110
- */
111
- getAvailableContracts() {
112
- return this.contractFactory.getAvailableContracts();
113
- }
114
- /**
115
- * Checks if a specific contract is available on the current chain.
116
- *
117
- * @param contractName - The contract name to check
118
- * @returns Whether the contract is deployed on the current chain
119
- */
120
- isContractAvailable(contractName) {
121
- const availableContracts = this.getAvailableContracts();
122
- return availableContracts.includes(contractName);
123
- }
124
- /**
125
- * Gets the contract factory instance for advanced usage.
126
- * This provides access to additional contract management methods.
127
- *
128
- * @returns The contract factory instance
129
- */
130
- getContractFactory() {
131
- return this.contractFactory;
132
- }
133
- /**
134
- * Gets the current chain ID from the wallet client.
135
- *
136
- * @returns The chain ID
137
- * @throws {Error} When chain ID is not available from wallet client
138
- */
139
- getChainId() {
140
- const chainId = this.context.walletClient?.chain?.id ?? this.context.publicClient.chain?.id;
141
- if (!chainId) {
142
- throw new Error("Chain ID not available from client");
143
- }
144
- return chainId;
145
- }
146
- /**
147
- * Gets the current chain name from the wallet client.
148
- *
149
- * @returns The chain name
150
- * @throws {Error} When chain name is not available from wallet client
151
- */
152
- getChainName() {
153
- const chainName = this.context.walletClient?.chain?.name ?? this.context.publicClient.chain?.name;
154
- if (!chainName) {
155
- throw new Error("Chain name not available from client");
156
- }
157
- return chainName;
158
- }
159
- }
160
- export {
161
- ProtocolController
162
- };
163
- //# sourceMappingURL=protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/controllers/protocol.ts"],"sourcesContent":["import type { ContractInfo, VanaChainId } from \"../types/index\";\nimport type { VanaContract, ContractAbis } from \"../generated/abi\";\nimport { ContractNotFoundError } from \"../errors\";\nimport {\n getContractController,\n getContractInfo,\n ContractFactory,\n} from \"../contracts/contractController\";\nimport type { ControllerContext } from \"../types/controller-context\";\nimport type { GetContractReturnType } from \"viem\";\nimport { BaseController } from \"./base\";\n\n/**\n * Provides low-level access to Vana protocol smart contracts.\n *\n * @remarks\n * Advanced API for direct contract interaction. Most developers should use\n * higher-level controllers (DataController, PermissionsController) instead.\n * This controller serves as an escape hatch when high-level APIs lack needed\n * functionality.\n *\n * **Architecture:**\n * Automatically detects current chain and provides only deployed contracts.\n * Full TypeScript type safety through contract ABIs and const assertions.\n *\n * **Method Selection:**\n * - `getContract()` - Retrieve address and ABI for manual interaction\n * - `createContract()` - Get typed contract instance with read/write methods\n * - `getAvailableContracts()` - List all contracts on current chain\n * - `isContractAvailable()` - Check contract deployment status\n * - `getChainId()`/`getChainName()` - Current network information\n *\n * **When to Use:**\n * - Custom contract interactions not covered by high-level APIs\n * - Direct contract event listening\n * - Advanced protocol operations\n *\n * **Type Safety:**\n * Always use `as const` with contract names for full type inference.\n *\n * @example\n * ```typescript\n * // Get contract info with typed ABI\n * const registry = vana.protocol.getContract(\"DataRegistry\" as const);\n * console.log(`Contract at ${registry.address}`);\n *\n * // Create typed contract instance\n * const contract = vana.protocol.createContract(\"DataRegistry\" as const);\n * const count = await contract.read.filesCount(); // Returns: bigint\n *\n * // Write operations with full typing\n * const hash = await contract.write.addFile([\"ipfs://...\"]);\n * ```\n *\n * @category Advanced\n * @see For contract specifications, visit {@link https://docs.vana.org/docs/protocol-contracts}\n */\nexport class ProtocolController extends BaseController {\n private readonly contractFactory: ContractFactory;\n\n constructor(context: ControllerContext) {\n super(context);\n this.contractFactory = new ContractFactory(\n context.walletClient ?? context.publicClient,\n );\n }\n\n /**\n * Retrieves the address and ABI for a specific Vana protocol contract.\n *\n * @remarks\n * This method provides direct access to contract addresses and ABIs for the current\n * chain. It includes full TypeScript type inference when using const assertions,\n * enabling type-safe contract interactions. The method only returns contracts that\n * are actually deployed on the current network.\n * @param contractName - The name of the Vana contract to retrieve (use const assertion for full typing)\n * @returns An object containing the contract's address and fully typed ABI\n * @throws {ContractNotFoundError} When the contract is not deployed on the current chain.\n * Verify contract name spelling and check current network with `getChainId()`.\n * @example\n * ```typescript\n * // Get contract info with full type inference\n * const dataRegistry = vana.protocol.getContract(\"DataRegistry\" as const);\n *\n * // Now dataRegistry.abi is fully typed for the DataRegistry contract\n * console.log(dataRegistry.address); // \"0x123...\"\n * console.log(dataRegistry.abi.length); // Full ABI array\n * ```\n */\n getContract<T extends VanaContract>(\n contractName: T,\n ): ContractInfo<ContractAbis[T]> {\n try {\n const chainId =\n this.context.walletClient?.chain?.id ??\n this.context.publicClient.chain?.id;\n\n if (!chainId) {\n throw new ContractNotFoundError(contractName, 0);\n }\n\n return getContractInfo(contractName, chainId as VanaChainId);\n } catch (error) {\n if (error instanceof ContractNotFoundError) {\n throw error;\n }\n if (error instanceof Error) {\n if (error.message.includes(\"Contract address not found\")) {\n let chainId = 0;\n try {\n chainId =\n this.context.walletClient?.chain?.id ??\n this.context.publicClient.chain?.id ??\n 0;\n } catch {\n // Use 0 as fallback if chain ID access fails\n chainId = 0;\n }\n throw new ContractNotFoundError(contractName, chainId);\n }\n throw error;\n }\n throw new Error(`Failed to get contract ${contractName}: Unknown error`);\n }\n }\n\n /**\n * Creates a fully typed contract instance ready for blockchain interaction.\n *\n * @remarks\n * This method creates a contract instance with complete type safety for all contract\n * methods including read operations, write operations, and event handling. The instance\n * is pre-configured with the correct address, ABI, and wallet client for immediate use.\n * All method parameters and return types are fully typed based on the contract ABI.\n * @param contractName - The name of the Vana contract (use const assertion for full typing)\n * @returns A fully typed contract instance with read/write methods and event handling\n * @throws {ContractNotFoundError} When the contract is not deployed on the current chain\n * @example\n * ```typescript\n * // Create typed contract instance\n * const dataRegistry = vana.protocol.createContract(\"DataRegistry\" as const);\n *\n * // Full type safety for all operations\n * const fileCount = await dataRegistry.read.filesCount(); // Type: bigint\n * const txHash = await dataRegistry.write.addFile([\"ipfs://...\"]); // Typed parameters\n *\n * // Listen to events with full typing\n * const logs = await dataRegistry.getEvents.FileAdded();\n * ```\n */\n createContract<T extends VanaContract>(\n contractName: T,\n ): GetContractReturnType<ContractAbis[T]> {\n this.assertWallet();\n try {\n return getContractController(contractName, this.context.walletClient);\n } catch (error) {\n if (error instanceof Error) {\n if (error.message.includes(\"Contract address not found\")) {\n const chainId = this.context.walletClient.chain?.id ?? 0;\n throw new ContractNotFoundError(contractName, chainId);\n }\n throw error;\n }\n throw new Error(\n `Failed to create contract ${contractName}: Unknown error`,\n );\n }\n }\n\n /**\n * Gets all available contract names that can be used with getContract().\n * Returns only contracts that are actually deployed on the current chain.\n *\n * @returns Array of all available contract names for the current chain\n */\n getAvailableContracts(): VanaContract[] {\n return this.contractFactory.getAvailableContracts();\n }\n\n /**\n * Checks if a specific contract is available on the current chain.\n *\n * @param contractName - The contract name to check\n * @returns Whether the contract is deployed on the current chain\n */\n isContractAvailable(contractName: VanaContract): boolean {\n const availableContracts = this.getAvailableContracts();\n return availableContracts.includes(contractName);\n }\n\n /**\n * Gets the contract factory instance for advanced usage.\n * This provides access to additional contract management methods.\n *\n * @returns The contract factory instance\n */\n getContractFactory(): ContractFactory {\n return this.contractFactory;\n }\n\n /**\n * Gets the current chain ID from the wallet client.\n *\n * @returns The chain ID\n * @throws {Error} When chain ID is not available from wallet client\n */\n getChainId(): number {\n const chainId =\n this.context.walletClient?.chain?.id ??\n this.context.publicClient.chain?.id;\n if (!chainId) {\n throw new Error(\"Chain ID not available from client\");\n }\n return chainId;\n }\n\n /**\n * Gets the current chain name from the wallet client.\n *\n * @returns The chain name\n * @throws {Error} When chain name is not available from wallet client\n */\n getChainName(): string {\n const chainName =\n this.context.walletClient?.chain?.name ??\n this.context.publicClient.chain?.name;\n if (!chainName) {\n throw new Error(\"Chain name not available from client\");\n }\n return chainName;\n }\n}\n"],"mappings":"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","names":[]}