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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (631) hide show
  1. package/README.md +76 -92
  2. package/dist/auth/errors.cjs +54 -0
  3. package/dist/auth/errors.cjs.map +1 -0
  4. package/dist/auth/errors.d.ts +26 -0
  5. package/dist/auth/errors.js +28 -0
  6. package/dist/auth/errors.js.map +1 -0
  7. package/dist/auth/pkce.cjs +100 -0
  8. package/dist/auth/pkce.cjs.map +1 -0
  9. package/dist/auth/pkce.d.ts +55 -0
  10. package/dist/auth/pkce.js +71 -0
  11. package/dist/auth/pkce.js.map +1 -0
  12. package/dist/auth/token-store.cjs +59 -0
  13. package/dist/auth/token-store.cjs.map +1 -0
  14. package/dist/auth/token-store.d.ts +61 -0
  15. package/dist/auth/token-store.js +35 -0
  16. package/dist/auth/token-store.js.map +1 -0
  17. package/dist/auth/web3-signed-builder.cjs +70 -0
  18. package/dist/auth/web3-signed-builder.cjs.map +1 -0
  19. package/dist/auth/web3-signed-builder.d.ts +47 -0
  20. package/dist/auth/web3-signed-builder.js +45 -0
  21. package/dist/auth/web3-signed-builder.js.map +1 -0
  22. package/dist/auth/web3-signed.cjs +150 -0
  23. package/dist/auth/web3-signed.cjs.map +1 -0
  24. package/dist/auth/web3-signed.d.ts +59 -0
  25. package/dist/auth/web3-signed.js +129 -0
  26. package/dist/auth/web3-signed.js.map +1 -0
  27. package/dist/chains/definitions.cjs +2 -6
  28. package/dist/chains/definitions.cjs.map +1 -1
  29. package/dist/chains/definitions.d.ts +1 -7
  30. package/dist/chains/definitions.js +2 -6
  31. package/dist/chains/definitions.js.map +1 -1
  32. package/dist/config/chains.d.ts +18 -0
  33. package/dist/config/contracts.config.cjs +7 -95
  34. package/dist/config/contracts.config.cjs.map +1 -1
  35. package/dist/config/contracts.config.d.ts +0 -54
  36. package/dist/config/contracts.config.js +6 -93
  37. package/dist/config/contracts.config.js.map +1 -1
  38. package/dist/config/default-services.cjs +0 -10
  39. package/dist/config/default-services.cjs.map +1 -1
  40. package/dist/config/default-services.d.ts +1 -20
  41. package/dist/config/default-services.js +0 -9
  42. package/dist/config/default-services.js.map +1 -1
  43. package/dist/crypto/ecies/interface.cjs +2 -0
  44. package/dist/crypto/ecies/interface.cjs.map +1 -1
  45. package/dist/crypto/ecies/interface.js +2 -0
  46. package/dist/crypto/ecies/interface.js.map +1 -1
  47. package/dist/crypto/ecies/node.cjs +6 -6
  48. package/dist/crypto/ecies/node.cjs.map +1 -1
  49. package/dist/crypto/ecies/node.js +1 -1
  50. package/dist/crypto/ecies/node.js.map +1 -1
  51. package/dist/crypto/envelope/openpgp.cjs +59 -0
  52. package/dist/crypto/envelope/openpgp.cjs.map +1 -0
  53. package/dist/crypto/envelope/openpgp.d.ts +28 -0
  54. package/dist/crypto/envelope/openpgp.js +24 -0
  55. package/dist/crypto/envelope/openpgp.js.map +1 -0
  56. package/dist/crypto/keys/derive.cjs +65 -0
  57. package/dist/crypto/keys/derive.cjs.map +1 -0
  58. package/dist/crypto/keys/derive.d.ts +45 -0
  59. package/dist/crypto/keys/derive.js +38 -0
  60. package/dist/crypto/keys/derive.js.map +1 -0
  61. package/dist/errors.cjs +10 -0
  62. package/dist/errors.cjs.map +1 -1
  63. package/dist/errors.js +10 -0
  64. package/dist/errors.js.map +1 -1
  65. package/dist/generated/abi/index.cjs +2 -37
  66. package/dist/generated/abi/index.cjs.map +1 -1
  67. package/dist/generated/abi/index.d.ts +2683 -9296
  68. package/dist/generated/abi/index.js +2 -29
  69. package/dist/generated/abi/index.js.map +1 -1
  70. package/dist/generated/addresses.cjs +5 -107
  71. package/dist/generated/addresses.cjs.map +1 -1
  72. package/dist/generated/addresses.d.ts +5 -99
  73. package/dist/generated/addresses.js +5 -105
  74. package/dist/generated/addresses.js.map +1 -1
  75. package/dist/index.browser.d.ts +24 -140
  76. package/dist/index.browser.js +32258 -114
  77. package/dist/index.browser.js.map +7 -1
  78. package/dist/index.node.cjs +32980 -160
  79. package/dist/index.node.cjs.map +7 -1
  80. package/dist/index.node.d.ts +23 -210
  81. package/dist/index.node.js +32884 -133
  82. package/dist/index.node.js.map +7 -1
  83. package/dist/platform/node.cjs +2 -2
  84. package/dist/platform/node.cjs.map +1 -1
  85. package/dist/platform/node.js +1 -1
  86. package/dist/platform/node.js.map +1 -1
  87. package/dist/protocol/data-file.cjs +56 -0
  88. package/dist/protocol/data-file.cjs.map +1 -0
  89. package/dist/protocol/data-file.d.ts +20 -0
  90. package/dist/protocol/data-file.js +30 -0
  91. package/dist/protocol/data-file.js.map +1 -0
  92. package/dist/protocol/eip712.cjs +123 -0
  93. package/dist/protocol/eip712.cjs.map +1 -0
  94. package/dist/protocol/eip712.d.ts +117 -0
  95. package/dist/protocol/eip712.js +90 -0
  96. package/dist/protocol/eip712.js.map +1 -0
  97. package/dist/protocol/gateway.cjs +226 -0
  98. package/dist/protocol/gateway.cjs.map +1 -0
  99. package/dist/protocol/gateway.d.ts +120 -0
  100. package/dist/protocol/gateway.js +202 -0
  101. package/dist/protocol/gateway.js.map +1 -0
  102. package/dist/protocol/grants.cjs +146 -0
  103. package/dist/protocol/grants.cjs.map +1 -0
  104. package/dist/protocol/grants.d.ts +31 -0
  105. package/dist/protocol/grants.js +123 -0
  106. package/dist/protocol/grants.js.map +1 -0
  107. package/dist/protocol/scopes.cjs +78 -0
  108. package/dist/protocol/scopes.cjs.map +1 -0
  109. package/dist/protocol/scopes.d.ts +13 -0
  110. package/dist/protocol/scopes.js +50 -0
  111. package/dist/protocol/scopes.js.map +1 -0
  112. package/dist/{types/atomicStore.cjs → storage/default.cjs} +9 -8
  113. package/dist/storage/default.cjs.map +1 -0
  114. package/dist/storage/default.d.ts +4 -0
  115. package/dist/storage/default.js +8 -0
  116. package/dist/storage/default.js.map +1 -0
  117. package/dist/storage/index.cjs +11 -2
  118. package/dist/storage/index.cjs.map +1 -1
  119. package/dist/storage/index.d.ts +9 -0
  120. package/dist/storage/index.js +7 -1
  121. package/dist/storage/index.js.map +1 -1
  122. package/dist/storage/providers/callback-storage.cjs +1 -0
  123. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  124. package/dist/storage/providers/callback-storage.js +1 -0
  125. package/dist/storage/providers/callback-storage.js.map +1 -1
  126. package/dist/storage/providers/dropbox.cjs +1 -0
  127. package/dist/storage/providers/dropbox.cjs.map +1 -1
  128. package/dist/storage/providers/dropbox.js +1 -0
  129. package/dist/storage/providers/dropbox.js.map +1 -1
  130. package/dist/storage/providers/google-drive.cjs +1 -0
  131. package/dist/storage/providers/google-drive.cjs.map +1 -1
  132. package/dist/storage/providers/google-drive.js +1 -0
  133. package/dist/storage/providers/google-drive.js.map +1 -1
  134. package/dist/storage/providers/ipfs.cjs +1 -0
  135. package/dist/storage/providers/ipfs.cjs.map +1 -1
  136. package/dist/storage/providers/ipfs.js +1 -0
  137. package/dist/storage/providers/ipfs.js.map +1 -1
  138. package/dist/storage/providers/pinata.cjs +1 -0
  139. package/dist/storage/providers/pinata.cjs.map +1 -1
  140. package/dist/storage/providers/pinata.js +1 -0
  141. package/dist/storage/providers/pinata.js.map +1 -1
  142. package/dist/storage/providers/r2.cjs +376 -0
  143. package/dist/storage/providers/r2.cjs.map +1 -0
  144. package/dist/storage/providers/r2.d.ts +91 -0
  145. package/dist/storage/providers/r2.js +354 -0
  146. package/dist/storage/providers/r2.js.map +1 -0
  147. package/dist/storage/providers/vana-storage.cjs +251 -0
  148. package/dist/storage/providers/vana-storage.cjs.map +1 -0
  149. package/dist/storage/providers/vana-storage.d.ts +100 -0
  150. package/dist/storage/providers/vana-storage.js +231 -0
  151. package/dist/storage/providers/vana-storage.js.map +1 -0
  152. package/dist/types/config.cjs +0 -34
  153. package/dist/types/config.cjs.map +1 -1
  154. package/dist/types/config.d.ts +1 -607
  155. package/dist/types/config.js +0 -22
  156. package/dist/types/config.js.map +1 -1
  157. package/dist/types/contracts.cjs.map +1 -1
  158. package/dist/types/contracts.d.ts +1 -1
  159. package/dist/types/index.cjs +2 -33
  160. package/dist/types/index.cjs.map +1 -1
  161. package/dist/types/index.d.ts +2 -33
  162. package/dist/types/index.js +1 -35
  163. package/dist/types/index.js.map +1 -1
  164. package/dist/types/ps-errors.cjs +91 -0
  165. package/dist/types/ps-errors.cjs.map +1 -0
  166. package/dist/types/ps-errors.d.ts +26 -0
  167. package/dist/types/ps-errors.js +66 -0
  168. package/dist/types/ps-errors.js.map +1 -0
  169. package/dist/types.cjs.map +1 -1
  170. package/dist/types.d.ts +0 -29
  171. package/dist/types.js.map +1 -1
  172. package/package.json +8 -25
  173. package/dist/client/enhancedResponse.cjs +0 -164
  174. package/dist/client/enhancedResponse.cjs.map +0 -1
  175. package/dist/client/enhancedResponse.d.ts +0 -120
  176. package/dist/client/enhancedResponse.js +0 -138
  177. package/dist/client/enhancedResponse.js.map +0 -1
  178. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +0 -7
  179. package/dist/controllers/base.cjs +0 -116
  180. package/dist/controllers/base.cjs.map +0 -1
  181. package/dist/controllers/base.d.ts +0 -94
  182. package/dist/controllers/base.js +0 -92
  183. package/dist/controllers/base.js.map +0 -1
  184. package/dist/controllers/data.cjs +0 -2633
  185. package/dist/controllers/data.cjs.map +0 -1
  186. package/dist/controllers/data.d.ts +0 -1067
  187. package/dist/controllers/data.js +0 -2626
  188. package/dist/controllers/data.js.map +0 -1
  189. package/dist/controllers/operations.cjs +0 -430
  190. package/dist/controllers/operations.cjs.map +0 -1
  191. package/dist/controllers/operations.d.ts +0 -229
  192. package/dist/controllers/operations.js +0 -406
  193. package/dist/controllers/operations.js.map +0 -1
  194. package/dist/controllers/permissions.cjs +0 -4368
  195. package/dist/controllers/permissions.cjs.map +0 -1
  196. package/dist/controllers/permissions.d.ts +0 -1411
  197. package/dist/controllers/permissions.js +0 -4344
  198. package/dist/controllers/permissions.js.map +0 -1
  199. package/dist/controllers/protocol.cjs +0 -183
  200. package/dist/controllers/protocol.cjs.map +0 -1
  201. package/dist/controllers/protocol.d.ts +0 -138
  202. package/dist/controllers/protocol.js +0 -163
  203. package/dist/controllers/protocol.js.map +0 -1
  204. package/dist/controllers/schemas.cjs +0 -678
  205. package/dist/controllers/schemas.cjs.map +0 -1
  206. package/dist/controllers/schemas.d.ts +0 -293
  207. package/dist/controllers/schemas.js +0 -654
  208. package/dist/controllers/schemas.js.map +0 -1
  209. package/dist/controllers/server.cjs +0 -643
  210. package/dist/controllers/server.cjs.map +0 -1
  211. package/dist/controllers/server.d.ts +0 -322
  212. package/dist/controllers/server.js +0 -624
  213. package/dist/controllers/server.js.map +0 -1
  214. package/dist/controllers/staking.cjs +0 -626
  215. package/dist/controllers/staking.cjs.map +0 -1
  216. package/dist/controllers/staking.d.ts +0 -457
  217. package/dist/controllers/staking.js +0 -602
  218. package/dist/controllers/staking.js.map +0 -1
  219. package/dist/core/__tests__/pollingManager.test.d.ts +0 -4
  220. package/dist/core/apiClient.cjs +0 -378
  221. package/dist/core/apiClient.cjs.map +0 -1
  222. package/dist/core/apiClient.d.ts +0 -286
  223. package/dist/core/apiClient.js +0 -359
  224. package/dist/core/apiClient.js.map +0 -1
  225. package/dist/core/generics.cjs +0 -417
  226. package/dist/core/generics.cjs.map +0 -1
  227. package/dist/core/generics.d.ts +0 -205
  228. package/dist/core/generics.js +0 -386
  229. package/dist/core/generics.js.map +0 -1
  230. package/dist/core/health.cjs +0 -289
  231. package/dist/core/health.cjs.map +0 -1
  232. package/dist/core/health.d.ts +0 -143
  233. package/dist/core/health.js +0 -265
  234. package/dist/core/health.js.map +0 -1
  235. package/dist/core/inMemoryNonceManager.cjs +0 -138
  236. package/dist/core/inMemoryNonceManager.cjs.map +0 -1
  237. package/dist/core/inMemoryNonceManager.d.ts +0 -69
  238. package/dist/core/inMemoryNonceManager.js +0 -114
  239. package/dist/core/inMemoryNonceManager.js.map +0 -1
  240. package/dist/core/nonceManager.cjs +0 -304
  241. package/dist/core/nonceManager.cjs.map +0 -1
  242. package/dist/core/nonceManager.d.ts +0 -116
  243. package/dist/core/nonceManager.js +0 -280
  244. package/dist/core/nonceManager.js.map +0 -1
  245. package/dist/core/pollingManager.cjs +0 -292
  246. package/dist/core/pollingManager.cjs.map +0 -1
  247. package/dist/core/pollingManager.d.ts +0 -120
  248. package/dist/core/pollingManager.js +0 -268
  249. package/dist/core/pollingManager.js.map +0 -1
  250. package/dist/core.cjs +0 -781
  251. package/dist/core.cjs.map +0 -1
  252. package/dist/core.d.ts +0 -496
  253. package/dist/core.js +0 -756
  254. package/dist/core.js.map +0 -1
  255. package/dist/diagnostics.cjs +0 -37
  256. package/dist/diagnostics.cjs.map +0 -1
  257. package/dist/diagnostics.d.ts +0 -24
  258. package/dist/diagnostics.js +0 -13
  259. package/dist/diagnostics.js.map +0 -1
  260. package/dist/generated/abi/DLPPerformanceImplementation.cjs +0 -1202
  261. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +0 -1
  262. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +0 -914
  263. package/dist/generated/abi/DLPPerformanceImplementation.js +0 -1178
  264. package/dist/generated/abi/DLPPerformanceImplementation.js.map +0 -1
  265. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +0 -1112
  266. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +0 -1
  267. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +0 -840
  268. package/dist/generated/abi/DLPRewardDeployerImplementation.js +0 -1088
  269. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +0 -1
  270. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +0 -612
  271. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +0 -1
  272. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +0 -451
  273. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +0 -588
  274. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +0 -1
  275. package/dist/generated/abi/DLPRewardSwapImplementation.cjs +0 -939
  276. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +0 -1
  277. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +0 -705
  278. package/dist/generated/abi/DLPRewardSwapImplementation.js +0 -915
  279. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +0 -1
  280. package/dist/generated/abi/DLPRootImplementation.cjs +0 -1644
  281. package/dist/generated/abi/DLPRootImplementation.cjs.map +0 -1
  282. package/dist/generated/abi/DLPRootImplementation.d.ts +0 -1246
  283. package/dist/generated/abi/DLPRootImplementation.js +0 -1620
  284. package/dist/generated/abi/DLPRootImplementation.js.map +0 -1
  285. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +0 -985
  286. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +0 -1
  287. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +0 -735
  288. package/dist/generated/abi/DataLiquidityPoolImplementation.js +0 -961
  289. package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +0 -1
  290. package/dist/generated/abi/SwapHelperImplementation.cjs +0 -976
  291. package/dist/generated/abi/SwapHelperImplementation.cjs.map +0 -1
  292. package/dist/generated/abi/SwapHelperImplementation.d.ts +0 -728
  293. package/dist/generated/abi/SwapHelperImplementation.js +0 -952
  294. package/dist/generated/abi/SwapHelperImplementation.js.map +0 -1
  295. package/dist/generated/abi/TeePoolImplementation.cjs +0 -1313
  296. package/dist/generated/abi/TeePoolImplementation.cjs.map +0 -1
  297. package/dist/generated/abi/TeePoolImplementation.d.ts +0 -992
  298. package/dist/generated/abi/TeePoolImplementation.js +0 -1289
  299. package/dist/generated/abi/TeePoolImplementation.js.map +0 -1
  300. package/dist/generated/event-types.cjs +0 -17
  301. package/dist/generated/event-types.cjs.map +0 -1
  302. package/dist/generated/event-types.d.ts +0 -816
  303. package/dist/generated/event-types.js +0 -1
  304. package/dist/generated/event-types.js.map +0 -1
  305. package/dist/generated/eventRegistry.cjs +0 -4512
  306. package/dist/generated/eventRegistry.cjs.map +0 -1
  307. package/dist/generated/eventRegistry.d.ts +0 -14
  308. package/dist/generated/eventRegistry.js +0 -4487
  309. package/dist/generated/eventRegistry.js.map +0 -1
  310. package/dist/generated/server/server-exports.cjs +0 -45
  311. package/dist/generated/server/server-exports.cjs.map +0 -1
  312. package/dist/generated/server/server-exports.d.ts +0 -36
  313. package/dist/generated/server/server-exports.js +0 -19
  314. package/dist/generated/server/server-exports.js.map +0 -1
  315. package/dist/generated/server/server.cjs +0 -17
  316. package/dist/generated/server/server.cjs.map +0 -1
  317. package/dist/generated/server/server.d.ts +0 -907
  318. package/dist/generated/server/server.js +0 -1
  319. package/dist/generated/server/server.js.map +0 -1
  320. package/dist/generated/subgraph.cjs +0 -1440
  321. package/dist/generated/subgraph.cjs.map +0 -1
  322. package/dist/generated/subgraph.d.ts +0 -6113
  323. package/dist/generated/subgraph.js +0 -1404
  324. package/dist/generated/subgraph.js.map +0 -1
  325. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +0 -1
  326. package/dist/lib/redisAtomicStore.cjs +0 -201
  327. package/dist/lib/redisAtomicStore.cjs.map +0 -1
  328. package/dist/lib/redisAtomicStore.d.ts +0 -120
  329. package/dist/lib/redisAtomicStore.js +0 -177
  330. package/dist/lib/redisAtomicStore.js.map +0 -1
  331. package/dist/server/relayerHandler.cjs +0 -452
  332. package/dist/server/relayerHandler.cjs.map +0 -1
  333. package/dist/server/relayerHandler.d.ts +0 -69
  334. package/dist/server/relayerHandler.js +0 -428
  335. package/dist/server/relayerHandler.js.map +0 -1
  336. package/dist/tests/abi.test.d.ts +0 -1
  337. package/dist/tests/chains-definitions.test.d.ts +0 -1
  338. package/dist/tests/core-encryption.test.d.ts +0 -1
  339. package/dist/tests/core-extended.test.d.ts +0 -1
  340. package/dist/tests/core-generics-coverage.test.d.ts +0 -1
  341. package/dist/tests/coverage-boost.test.d.ts +0 -1
  342. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +0 -1
  343. package/dist/tests/data-addfile-permissions-schema.test.d.ts +0 -1
  344. package/dist/tests/data-additional-methods.test.d.ts +0 -1
  345. package/dist/tests/data-controller-edge-cases.test.d.ts +0 -1
  346. package/dist/tests/data-ipfs-gateways.test.d.ts +0 -1
  347. package/dist/tests/data-relayer.test.d.ts +0 -1
  348. package/dist/tests/data-schema-validation.test.d.ts +0 -1
  349. package/dist/tests/data-simple-methods.test.d.ts +0 -1
  350. package/dist/tests/data-upload-owner-validation.test.d.ts +0 -1
  351. package/dist/tests/data.test.d.ts +0 -1
  352. package/dist/tests/demo-integration.test.d.ts +0 -1
  353. package/dist/tests/demo-trusted-server-integration.test.d.ts +0 -1
  354. package/dist/tests/download-relayer.test.d.ts +0 -1
  355. package/dist/tests/dual-mode-permissions.test.d.ts +0 -1
  356. package/dist/tests/dual-mode-trusted-servers.test.d.ts +0 -1
  357. package/dist/tests/encryption-correct-implementation.test.d.ts +0 -1
  358. package/dist/tests/encryption-coverage.test.d.ts +0 -1
  359. package/dist/tests/encryption-edge-cases.test.d.ts +0 -1
  360. package/dist/tests/encryption-utils-updated.test.d.ts +0 -1
  361. package/dist/tests/errors-coverage.test.d.ts +0 -1
  362. package/dist/tests/factories/mockFactory.d.ts +0 -316
  363. package/dist/tests/fakes/FakeStorageManager.d.ts +0 -200
  364. package/dist/tests/fakes/FakeStorageManager.test.d.ts +0 -1
  365. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +0 -170
  366. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +0 -1
  367. package/dist/tests/fakes/fake-pgp-port.d.ts +0 -13
  368. package/dist/tests/grantValidation-edge-cases.test.d.ts +0 -1
  369. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +0 -1
  370. package/dist/tests/helper-methods.test.d.ts +0 -1
  371. package/dist/tests/helpers/typedMocks.d.ts +0 -64
  372. package/dist/tests/index-browser.test.d.ts +0 -1
  373. package/dist/tests/index-node.test.d.ts +0 -1
  374. package/dist/tests/index.test.d.ts +0 -1
  375. package/dist/tests/mocks/platformAdapter.d.ts +0 -12
  376. package/dist/tests/new-permissions-methods.test.d.ts +0 -1
  377. package/dist/tests/no-buffer-browser.test.d.ts +0 -1
  378. package/dist/tests/permissions-grantee.test.d.ts +0 -1
  379. package/dist/tests/permissions-revoke-relayer.test.d.ts +0 -1
  380. package/dist/tests/permissions-schema-validation.test.d.ts +0 -1
  381. package/dist/tests/permissions-server-files.test.d.ts +0 -1
  382. package/dist/tests/permissions-transaction-options.test.d.ts +0 -1
  383. package/dist/tests/permissions-trust-servers.test.d.ts +0 -1
  384. package/dist/tests/permissions.test.d.ts +0 -1
  385. package/dist/tests/personal.test.d.ts +0 -1
  386. package/dist/tests/platform-browser.test.d.ts +0 -1
  387. package/dist/tests/platform-crypto-expanded.test.d.ts +0 -1
  388. package/dist/tests/platform-crypto.test.d.ts +0 -1
  389. package/dist/tests/platform-index.test.d.ts +0 -1
  390. package/dist/tests/platform-node.test.d.ts +0 -1
  391. package/dist/tests/platform-shared-utils.test.d.ts +0 -1
  392. package/dist/tests/platform-updated.test.d.ts +0 -1
  393. package/dist/tests/protocol-additional-methods.test.d.ts +0 -1
  394. package/dist/tests/protocol.test.d.ts +0 -1
  395. package/dist/tests/read-only-mode.test.d.ts +0 -1
  396. package/dist/tests/relayer-integration.test.d.ts +0 -1
  397. package/dist/tests/relayer-unified.test.d.ts +0 -1
  398. package/dist/tests/schemas.test.d.ts +0 -1
  399. package/dist/tests/server-relayer-handler.test.d.ts +0 -1
  400. package/dist/tests/signatureFormatter.test.d.ts +0 -1
  401. package/dist/tests/staking.test.d.ts +0 -1
  402. package/dist/tests/trusted-server-queries.test.d.ts +0 -1
  403. package/dist/tests/typedDataConverter.test.d.ts +0 -1
  404. package/dist/tests/types-contracts.test.d.ts +0 -1
  405. package/dist/tests/types-data.test.d.ts +0 -1
  406. package/dist/tests/types-external-apis.test.d.ts +0 -1
  407. package/dist/tests/types-generics.test.d.ts +0 -1
  408. package/dist/tests/types-permissions.test.d.ts +0 -1
  409. package/dist/tests/types-upload-params.test.d.ts +0 -1
  410. package/dist/tests/types.test.d.ts +0 -1
  411. package/dist/tests/utils-formatters.test.d.ts +0 -1
  412. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +0 -1
  413. package/dist/tests/utils-grantFiles-validation.test.d.ts +0 -1
  414. package/dist/tests/utils-grantFiles.test.d.ts +0 -1
  415. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +0 -1
  416. package/dist/tests/utils-grants.test.d.ts +0 -1
  417. package/dist/tests/utils-ipfs-additional.test.d.ts +0 -1
  418. package/dist/tests/utils-ipfs.test.d.ts +0 -4
  419. package/dist/tests/utils-schemaValidation.test.d.ts +0 -1
  420. package/dist/tests/vana.test.d.ts +0 -1
  421. package/dist/tests/wallet-crypto-compatibility.test.d.ts +0 -1
  422. package/dist/types/atomicStore.cjs.map +0 -1
  423. package/dist/types/atomicStore.d.ts +0 -236
  424. package/dist/types/atomicStore.js +0 -7
  425. package/dist/types/atomicStore.js.map +0 -1
  426. package/dist/types/blockchain.cjs +0 -17
  427. package/dist/types/blockchain.cjs.map +0 -1
  428. package/dist/types/blockchain.d.ts +0 -85
  429. package/dist/types/blockchain.js +0 -1
  430. package/dist/types/blockchain.js.map +0 -1
  431. package/dist/types/controller-context.cjs +0 -17
  432. package/dist/types/controller-context.cjs.map +0 -1
  433. package/dist/types/controller-context.d.ts +0 -68
  434. package/dist/types/controller-context.js +0 -1
  435. package/dist/types/controller-context.js.map +0 -1
  436. package/dist/types/data.cjs +0 -17
  437. package/dist/types/data.cjs.map +0 -1
  438. package/dist/types/data.d.ts +0 -763
  439. package/dist/types/data.js +0 -1
  440. package/dist/types/data.js.map +0 -1
  441. package/dist/types/external-apis.cjs +0 -61
  442. package/dist/types/external-apis.cjs.map +0 -1
  443. package/dist/types/external-apis.d.ts +0 -184
  444. package/dist/types/external-apis.js +0 -34
  445. package/dist/types/external-apis.js.map +0 -1
  446. package/dist/types/generics.cjs +0 -17
  447. package/dist/types/generics.cjs.map +0 -1
  448. package/dist/types/generics.d.ts +0 -518
  449. package/dist/types/generics.js +0 -1
  450. package/dist/types/generics.js.map +0 -1
  451. package/dist/types/operationStore.cjs +0 -17
  452. package/dist/types/operationStore.cjs.map +0 -1
  453. package/dist/types/operationStore.d.ts +0 -171
  454. package/dist/types/operationStore.js +0 -1
  455. package/dist/types/operationStore.js.map +0 -1
  456. package/dist/types/operations.cjs +0 -53
  457. package/dist/types/operations.cjs.map +0 -1
  458. package/dist/types/operations.d.ts +0 -204
  459. package/dist/types/operations.js +0 -26
  460. package/dist/types/operations.js.map +0 -1
  461. package/dist/types/options.cjs +0 -17
  462. package/dist/types/options.cjs.map +0 -1
  463. package/dist/types/options.d.ts +0 -308
  464. package/dist/types/options.js +0 -1
  465. package/dist/types/options.js.map +0 -1
  466. package/dist/types/permissions.cjs +0 -17
  467. package/dist/types/permissions.cjs.map +0 -1
  468. package/dist/types/permissions.d.ts +0 -955
  469. package/dist/types/permissions.js +0 -1
  470. package/dist/types/permissions.js.map +0 -1
  471. package/dist/types/personal.cjs +0 -17
  472. package/dist/types/personal.cjs.map +0 -1
  473. package/dist/types/personal.d.ts +0 -174
  474. package/dist/types/personal.js +0 -1
  475. package/dist/types/personal.js.map +0 -1
  476. package/dist/types/relayer.cjs +0 -17
  477. package/dist/types/relayer.cjs.map +0 -1
  478. package/dist/types/relayer.d.ts +0 -552
  479. package/dist/types/relayer.js +0 -1
  480. package/dist/types/relayer.js.map +0 -1
  481. package/dist/types/transactionResults.cjs +0 -17
  482. package/dist/types/transactionResults.cjs.map +0 -1
  483. package/dist/types/transactionResults.d.ts +0 -193
  484. package/dist/types/transactionResults.js +0 -1
  485. package/dist/types/transactionResults.js.map +0 -1
  486. package/dist/types/utils.cjs +0 -17
  487. package/dist/types/utils.cjs.map +0 -1
  488. package/dist/types/utils.d.ts +0 -771
  489. package/dist/types/utils.js +0 -1
  490. package/dist/types/utils.js.map +0 -1
  491. package/dist/utils/__tests__/chainQuery.test.d.ts +0 -1
  492. package/dist/utils/__tests__/parseTransaction.test.d.ts +0 -1
  493. package/dist/utils/__tests__/pojo-serialization.test.d.ts +0 -1
  494. package/dist/utils/__tests__/signatureCache.test.d.ts +0 -1
  495. package/dist/utils/__tests__/subgraphConsistency.test.d.ts +0 -4
  496. package/dist/utils/__tests__/subgraphPagination.test.d.ts +0 -4
  497. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +0 -1
  498. package/dist/utils/__tests__/transactionHelpers.test.d.ts +0 -1
  499. package/dist/utils/__tests__/urlResolver.test.d.ts +0 -4
  500. package/dist/utils/blockchain/registry.cjs +0 -81
  501. package/dist/utils/blockchain/registry.cjs.map +0 -1
  502. package/dist/utils/blockchain/registry.d.ts +0 -32
  503. package/dist/utils/blockchain/registry.js +0 -56
  504. package/dist/utils/blockchain/registry.js.map +0 -1
  505. package/dist/utils/blockchain/registry.test.d.ts +0 -1
  506. package/dist/utils/chainQuery.cjs +0 -107
  507. package/dist/utils/chainQuery.cjs.map +0 -1
  508. package/dist/utils/chainQuery.d.ts +0 -31
  509. package/dist/utils/chainQuery.js +0 -82
  510. package/dist/utils/chainQuery.js.map +0 -1
  511. package/dist/utils/download.cjs +0 -69
  512. package/dist/utils/download.cjs.map +0 -1
  513. package/dist/utils/download.d.ts +0 -40
  514. package/dist/utils/download.js +0 -45
  515. package/dist/utils/download.js.map +0 -1
  516. package/dist/utils/encryption.cjs +0 -176
  517. package/dist/utils/encryption.cjs.map +0 -1
  518. package/dist/utils/encryption.d.ts +0 -271
  519. package/dist/utils/encryption.js +0 -142
  520. package/dist/utils/encryption.js.map +0 -1
  521. package/dist/utils/formatters.cjs +0 -55
  522. package/dist/utils/formatters.cjs.map +0 -1
  523. package/dist/utils/formatters.d.ts +0 -118
  524. package/dist/utils/formatters.js +0 -28
  525. package/dist/utils/formatters.js.map +0 -1
  526. package/dist/utils/grantFiles.cjs +0 -181
  527. package/dist/utils/grantFiles.cjs.map +0 -1
  528. package/dist/utils/grantFiles.d.ts +0 -172
  529. package/dist/utils/grantFiles.js +0 -143
  530. package/dist/utils/grantFiles.js.map +0 -1
  531. package/dist/utils/grantValidation.cjs +0 -243
  532. package/dist/utils/grantValidation.cjs.map +0 -1
  533. package/dist/utils/grantValidation.d.ts +0 -226
  534. package/dist/utils/grantValidation.js +0 -201
  535. package/dist/utils/grantValidation.js.map +0 -1
  536. package/dist/utils/grants.cjs +0 -108
  537. package/dist/utils/grants.cjs.map +0 -1
  538. package/dist/utils/grants.d.ts +0 -148
  539. package/dist/utils/grants.js +0 -82
  540. package/dist/utils/grants.js.map +0 -1
  541. package/dist/utils/ipfs.cjs +0 -128
  542. package/dist/utils/ipfs.cjs.map +0 -1
  543. package/dist/utils/ipfs.d.ts +0 -88
  544. package/dist/utils/ipfs.js +0 -97
  545. package/dist/utils/ipfs.js.map +0 -1
  546. package/dist/utils/multicall.cjs +0 -233
  547. package/dist/utils/multicall.cjs.map +0 -1
  548. package/dist/utils/multicall.d.ts +0 -126
  549. package/dist/utils/multicall.js +0 -208
  550. package/dist/utils/multicall.js.map +0 -1
  551. package/dist/utils/parseTransactionPojo.cjs +0 -87
  552. package/dist/utils/parseTransactionPojo.cjs.map +0 -1
  553. package/dist/utils/parseTransactionPojo.d.ts +0 -31
  554. package/dist/utils/parseTransactionPojo.js +0 -63
  555. package/dist/utils/parseTransactionPojo.js.map +0 -1
  556. package/dist/utils/schemaValidation.cjs +0 -258
  557. package/dist/utils/schemaValidation.cjs.map +0 -1
  558. package/dist/utils/schemaValidation.d.ts +0 -168
  559. package/dist/utils/schemaValidation.js +0 -219
  560. package/dist/utils/schemaValidation.js.map +0 -1
  561. package/dist/utils/signatureCache.cjs +0 -192
  562. package/dist/utils/signatureCache.cjs.map +0 -1
  563. package/dist/utils/signatureCache.d.ts +0 -172
  564. package/dist/utils/signatureCache.js +0 -167
  565. package/dist/utils/signatureCache.js.map +0 -1
  566. package/dist/utils/signatureFormatter.cjs +0 -42
  567. package/dist/utils/signatureFormatter.cjs.map +0 -1
  568. package/dist/utils/signatureFormatter.d.ts +0 -36
  569. package/dist/utils/signatureFormatter.js +0 -18
  570. package/dist/utils/signatureFormatter.js.map +0 -1
  571. package/dist/utils/subgraphConsistency.cjs +0 -184
  572. package/dist/utils/subgraphConsistency.cjs.map +0 -1
  573. package/dist/utils/subgraphConsistency.d.ts +0 -65
  574. package/dist/utils/subgraphConsistency.js +0 -155
  575. package/dist/utils/subgraphConsistency.js.map +0 -1
  576. package/dist/utils/subgraphMetaCache.cjs +0 -101
  577. package/dist/utils/subgraphMetaCache.cjs.map +0 -1
  578. package/dist/utils/subgraphMetaCache.d.ts +0 -56
  579. package/dist/utils/subgraphMetaCache.js +0 -76
  580. package/dist/utils/subgraphMetaCache.js.map +0 -1
  581. package/dist/utils/subgraphPagination.cjs +0 -104
  582. package/dist/utils/subgraphPagination.cjs.map +0 -1
  583. package/dist/utils/subgraphPagination.d.ts +0 -78
  584. package/dist/utils/subgraphPagination.js +0 -78
  585. package/dist/utils/subgraphPagination.js.map +0 -1
  586. package/dist/utils/tests/multicall.test.d.ts +0 -1
  587. package/dist/utils/transactionHelpers.cjs +0 -54
  588. package/dist/utils/transactionHelpers.cjs.map +0 -1
  589. package/dist/utils/transactionHelpers.d.ts +0 -80
  590. package/dist/utils/transactionHelpers.js +0 -29
  591. package/dist/utils/transactionHelpers.js.map +0 -1
  592. package/dist/utils/typeGuards.cjs +0 -109
  593. package/dist/utils/typeGuards.cjs.map +0 -1
  594. package/dist/utils/typeGuards.d.ts +0 -138
  595. package/dist/utils/typeGuards.js +0 -74
  596. package/dist/utils/typeGuards.js.map +0 -1
  597. package/dist/utils/typedDataConverter.cjs +0 -43
  598. package/dist/utils/typedDataConverter.cjs.map +0 -1
  599. package/dist/utils/typedDataConverter.d.ts +0 -46
  600. package/dist/utils/typedDataConverter.js +0 -19
  601. package/dist/utils/typedDataConverter.js.map +0 -1
  602. package/dist/utils/urlResolver.cjs +0 -62
  603. package/dist/utils/urlResolver.cjs.map +0 -1
  604. package/dist/utils/urlResolver.d.ts +0 -56
  605. package/dist/utils/urlResolver.js +0 -37
  606. package/dist/utils/urlResolver.js.map +0 -1
  607. package/dist/utils/wallet.cjs +0 -63
  608. package/dist/utils/wallet.cjs.map +0 -1
  609. package/dist/utils/wallet.d.ts +0 -94
  610. package/dist/utils/wallet.js +0 -37
  611. package/dist/utils/wallet.js.map +0 -1
  612. package/dist/utils/withEvents.cjs +0 -44
  613. package/dist/utils/withEvents.cjs.map +0 -1
  614. package/dist/utils/withEvents.d.ts +0 -56
  615. package/dist/utils/withEvents.js +0 -18
  616. package/dist/utils/withEvents.js.map +0 -1
  617. /package/dist/{__tests__/waitForTransactionEvents.test.d.ts → auth/pkce.test.d.ts} +0 -0
  618. /package/dist/{client/__tests__/enhancedResponse.test.d.ts → auth/token-store.test.d.ts} +0 -0
  619. /package/dist/{controllers/__tests__/operations.processQueue.test.d.ts → auth/web3-signed.test.d.ts} +0 -0
  620. /package/dist/{controllers/__tests__/schemas-edge-cases.test.d.ts → crypto/envelope/openpgp.test.d.ts} +0 -0
  621. /package/dist/{controllers/data-error-handling.test.d.ts → crypto/keys/derive.test.d.ts} +0 -0
  622. /package/dist/{tests/errors.test.d.ts → errors.test.d.ts} +0 -0
  623. /package/dist/{controllers/server-additional.test.d.ts → protocol/data-file.test.d.ts} +0 -0
  624. /package/dist/{core/__tests__/health.test.d.ts → protocol/eip712.test.d.ts} +0 -0
  625. /package/dist/{core/__tests__/inMemoryNonceManager.test.d.ts → protocol/gateway.test.d.ts} +0 -0
  626. /package/dist/{core/__tests__/nonceManager.test.d.ts → protocol/grants.test.d.ts} +0 -0
  627. /package/dist/{core/core.test.d.ts → protocol/scopes.test.d.ts} +0 -0
  628. /package/dist/{core/tests/apiClient.test.d.ts → storage/tests/defaultStorage.test.d.ts} +0 -0
  629. /package/dist/{core/tests/client.test.d.ts → storage/tests/r2Storage.test.d.ts} +0 -0
  630. /package/dist/{core/tests/generics.test.d.ts → storage/tests/vanaStorage.test.d.ts} +0 -0
  631. /package/dist/{diagnostics.test.d.ts → types/ps-errors.test.d.ts} +0 -0
@@ -1,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":[]}