@opendatalabs/vana-sdk 0.1.0-alpha.b781d07 → 0.1.0-alpha.bae46ec

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 (699) hide show
  1. package/dist/__tests__/waitForTransactionEvents.test.d.ts +1 -0
  2. package/dist/browser.cjs.map +1 -1
  3. package/dist/browser.d.ts +36 -2
  4. package/dist/browser.js.map +1 -1
  5. package/dist/chains/definitions.cjs +9 -6
  6. package/dist/chains/definitions.cjs.map +1 -1
  7. package/dist/chains/definitions.d.ts +9 -11
  8. package/dist/chains/definitions.js +9 -6
  9. package/dist/chains/definitions.js.map +1 -1
  10. package/dist/chains/index.cjs.map +1 -1
  11. package/dist/chains/index.d.ts +34 -2
  12. package/dist/chains/index.js.map +1 -1
  13. package/dist/chains.browser.d.ts +8 -2
  14. package/dist/chains.d.ts +8 -2
  15. package/dist/chains.node.d.ts +8 -2
  16. package/dist/config/addresses.d.ts +8 -24
  17. package/dist/config/chains.cjs.map +1 -1
  18. package/dist/config/chains.d.ts +108 -13
  19. package/dist/config/chains.js.map +1 -1
  20. package/dist/config/default-services.cjs +60 -0
  21. package/dist/config/default-services.cjs.map +1 -0
  22. package/dist/config/default-services.d.ts +46 -0
  23. package/dist/config/default-services.js +33 -0
  24. package/dist/config/default-services.js.map +1 -0
  25. package/dist/config/default-services.test.d.ts +1 -0
  26. package/dist/config/features.d.ts +1 -3
  27. package/dist/config/tests/addresses.test.d.ts +1 -0
  28. package/dist/contracts/contractController.cjs +3 -3
  29. package/dist/contracts/contractController.cjs.map +1 -1
  30. package/dist/contracts/contractController.d.ts +77 -38
  31. package/dist/contracts/contractController.js +4 -7
  32. package/dist/contracts/contractController.js.map +1 -1
  33. package/dist/contracts/tests/contractController.test.d.ts +1 -0
  34. package/dist/controllers/__tests__/schemas-edge-cases.test.d.ts +1 -0
  35. package/dist/controllers/base.cjs +83 -0
  36. package/dist/controllers/base.cjs.map +1 -0
  37. package/dist/controllers/base.d.ts +84 -0
  38. package/dist/controllers/base.js +59 -0
  39. package/dist/controllers/base.js.map +1 -0
  40. package/dist/controllers/data-error-handling.test.d.ts +1 -0
  41. package/dist/controllers/data.cjs +601 -308
  42. package/dist/controllers/data.cjs.map +1 -1
  43. package/dist/controllers/data.d.ts +360 -249
  44. package/dist/controllers/data.js +601 -308
  45. package/dist/controllers/data.js.map +1 -1
  46. package/dist/controllers/permissions.cjs +730 -429
  47. package/dist/controllers/permissions.cjs.map +1 -1
  48. package/dist/controllers/permissions.d.ts +1304 -25
  49. package/dist/controllers/permissions.js +730 -429
  50. package/dist/controllers/permissions.js.map +1 -1
  51. package/dist/controllers/protocol.cjs +15 -11
  52. package/dist/controllers/protocol.cjs.map +1 -1
  53. package/dist/controllers/protocol.d.ts +34 -63
  54. package/dist/controllers/protocol.js +15 -14
  55. package/dist/controllers/protocol.js.map +1 -1
  56. package/dist/controllers/schemas.cjs +88 -71
  57. package/dist/controllers/schemas.cjs.map +1 -1
  58. package/dist/controllers/schemas.d.ts +54 -74
  59. package/dist/controllers/schemas.js +88 -71
  60. package/dist/controllers/schemas.js.map +1 -1
  61. package/dist/controllers/server-additional.test.d.ts +1 -0
  62. package/dist/controllers/server.cjs +32 -25
  63. package/dist/controllers/server.cjs.map +1 -1
  64. package/dist/controllers/server.d.ts +53 -71
  65. package/dist/controllers/server.js +32 -25
  66. package/dist/controllers/server.js.map +1 -1
  67. package/dist/core/apiClient.cjs +68 -15
  68. package/dist/core/apiClient.cjs.map +1 -1
  69. package/dist/core/apiClient.d.ts +137 -16
  70. package/dist/core/apiClient.js +72 -22
  71. package/dist/core/apiClient.js.map +1 -1
  72. package/dist/core/client.cjs +7 -7
  73. package/dist/core/client.cjs.map +1 -1
  74. package/dist/core/client.d.ts +6 -9
  75. package/dist/core/client.js +7 -7
  76. package/dist/core/client.js.map +1 -1
  77. package/dist/core/core.test.d.ts +1 -0
  78. package/dist/core/generics.cjs +41 -12
  79. package/dist/core/generics.cjs.map +1 -1
  80. package/dist/core/generics.d.ts +104 -19
  81. package/dist/core/generics.js +52 -32
  82. package/dist/core/generics.js.map +1 -1
  83. package/dist/core/tests/apiClient.test.d.ts +1 -0
  84. package/dist/core/tests/client.test.d.ts +1 -0
  85. package/dist/core/tests/generics.test.d.ts +1 -0
  86. package/dist/core.cjs +143 -60
  87. package/dist/core.cjs.map +1 -1
  88. package/dist/core.d.ts +42 -66
  89. package/dist/core.js +155 -85
  90. package/dist/core.js.map +1 -1
  91. package/dist/crypto/ecies/__tests__/base.test.d.ts +4 -0
  92. package/dist/crypto/ecies/__tests__/compatibility.test.d.ts +8 -0
  93. package/dist/crypto/ecies/__tests__/constants.test.d.ts +4 -0
  94. package/dist/crypto/ecies/__tests__/native-parity.test.d.ts +7 -0
  95. package/dist/crypto/ecies/__tests__/normalization.test.d.ts +1 -0
  96. package/dist/crypto/ecies/__tests__/test-vectors.d.ts +2 -4
  97. package/dist/crypto/ecies/base.cjs +4 -3
  98. package/dist/crypto/ecies/base.cjs.map +1 -1
  99. package/dist/crypto/ecies/base.d.ts +2 -5
  100. package/dist/crypto/ecies/base.js +12 -15
  101. package/dist/crypto/ecies/base.js.map +1 -1
  102. package/dist/crypto/ecies/browser.cjs +2 -1
  103. package/dist/crypto/ecies/browser.cjs.map +1 -1
  104. package/dist/crypto/ecies/browser.d.ts +2 -7
  105. package/dist/crypto/ecies/browser.js +2 -1
  106. package/dist/crypto/ecies/browser.js.map +1 -1
  107. package/dist/crypto/ecies/constants.d.ts +7 -9
  108. package/dist/crypto/ecies/index.d.ts +8 -1
  109. package/dist/crypto/ecies/interface.cjs +4 -5
  110. package/dist/crypto/ecies/interface.cjs.map +1 -1
  111. package/dist/crypto/ecies/interface.d.ts +9 -11
  112. package/dist/crypto/ecies/interface.js +4 -5
  113. package/dist/crypto/ecies/interface.js.map +1 -1
  114. package/dist/crypto/ecies/node.cjs +3 -2
  115. package/dist/crypto/ecies/node.cjs.map +1 -1
  116. package/dist/crypto/ecies/node.d.ts +2 -7
  117. package/dist/crypto/ecies/node.js +11 -16
  118. package/dist/crypto/ecies/node.js.map +1 -1
  119. package/dist/crypto/ecies/utils.cjs +2 -41
  120. package/dist/crypto/ecies/utils.cjs.map +1 -1
  121. package/dist/crypto/ecies/utils.d.ts +3 -40
  122. package/dist/crypto/ecies/utils.js +1 -35
  123. package/dist/crypto/ecies/utils.js.map +1 -1
  124. package/dist/crypto/services/WalletKeyEncryptionService.cjs +2 -2
  125. package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -1
  126. package/dist/crypto/services/WalletKeyEncryptionService.d.ts +3 -7
  127. package/dist/crypto/services/WalletKeyEncryptionService.js +5 -9
  128. package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -1
  129. package/dist/crypto/services/WalletKeyEncryptionService.test.d.ts +1 -0
  130. package/dist/diagnostics.d.ts +1 -3
  131. package/dist/diagnostics.test.d.ts +1 -0
  132. package/dist/errors.cjs +16 -0
  133. package/dist/errors.cjs.map +1 -1
  134. package/dist/errors.d.ts +53 -15
  135. package/dist/errors.js +18 -6
  136. package/dist/errors.js.map +1 -1
  137. package/dist/generated/abi/ComputeEngineImplementation.d.ts +2 -3
  138. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +2 -3
  139. package/dist/generated/abi/DATFactoryImplementation.d.ts +2 -3
  140. package/dist/generated/abi/DATImplementation.d.ts +2 -3
  141. package/dist/generated/abi/DATPausableImplementation.d.ts +2 -3
  142. package/dist/generated/abi/DATVotesImplementation.d.ts +2 -3
  143. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +2 -3
  144. package/dist/generated/abi/DLPRegistryImplementation.d.ts +2 -3
  145. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +2 -3
  146. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +2 -3
  147. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +2 -3
  148. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +2 -3
  149. package/dist/generated/abi/DLPRootImplementation.d.ts +1 -3
  150. package/dist/generated/abi/DLPTreasuryImplementation.d.ts +2 -3
  151. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +1 -3
  152. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +2 -3
  153. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +2 -3
  154. package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +2 -3
  155. package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +2 -3
  156. package/dist/generated/abi/DataRegistryImplementation.cjs +13 -0
  157. package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -1
  158. package/dist/generated/abi/DataRegistryImplementation.d.ts +12 -3
  159. package/dist/generated/abi/DataRegistryImplementation.js +13 -0
  160. package/dist/generated/abi/DataRegistryImplementation.js.map +1 -1
  161. package/dist/generated/abi/QueryEngineImplementation.d.ts +2 -3
  162. package/dist/generated/abi/SwapHelperImplementation.d.ts +2 -3
  163. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +2 -3
  164. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +2 -3
  165. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +2 -3
  166. package/dist/generated/abi/TeePoolImplementation.d.ts +2 -3
  167. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +2 -3
  168. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +2 -3
  169. package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +2 -3
  170. package/dist/generated/abi/VanaEpochImplementation.d.ts +2 -3
  171. package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +2 -3
  172. package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +2 -3
  173. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +2 -3
  174. package/dist/generated/abi/index.cjs +42 -0
  175. package/dist/generated/abi/index.cjs.map +1 -1
  176. package/dist/generated/abi/index.d.ts +47 -18
  177. package/dist/generated/abi/index.js +21 -0
  178. package/dist/generated/abi/index.js.map +1 -1
  179. package/dist/generated/event-types.cjs +17 -0
  180. package/dist/generated/event-types.cjs.map +1 -0
  181. package/dist/generated/event-types.d.ts +854 -0
  182. package/dist/generated/event-types.js +1 -0
  183. package/dist/generated/event-types.js.map +1 -0
  184. package/dist/generated/eventRegistry.cjs +3351 -0
  185. package/dist/generated/eventRegistry.cjs.map +1 -0
  186. package/dist/generated/eventRegistry.d.ts +14 -0
  187. package/dist/generated/eventRegistry.js +3326 -0
  188. package/dist/generated/eventRegistry.js.map +1 -0
  189. package/dist/generated/server/server-exports.d.ts +19 -21
  190. package/dist/generated/server/server.cjs.map +1 -1
  191. package/dist/generated/server/server.d.ts +113 -87
  192. package/dist/generated/subgraph.d.ts +329 -332
  193. package/dist/index.browser.d.ts +48 -73
  194. package/dist/index.browser.js +12 -0
  195. package/dist/index.browser.js.map +1 -1
  196. package/dist/index.cjs +3 -1
  197. package/dist/index.cjs.map +1 -1
  198. package/dist/index.d.ts +0 -2
  199. package/dist/index.js +3 -1
  200. package/dist/index.js.map +1 -1
  201. package/dist/index.node.cjs +12 -3
  202. package/dist/index.node.cjs.map +1 -1
  203. package/dist/index.node.d.ts +180 -64
  204. package/dist/index.node.js +12 -2
  205. package/dist/index.node.js.map +1 -1
  206. package/dist/node.cjs.map +1 -1
  207. package/dist/node.d.ts +42 -2
  208. package/dist/node.js.map +1 -1
  209. package/dist/platform/browser-only.d.ts +5 -8
  210. package/dist/platform/browser-only.test.d.ts +1 -0
  211. package/dist/platform/browser-safe.d.ts +6 -9
  212. package/dist/platform/browser-safe.test.d.ts +1 -0
  213. package/dist/platform/browser.cjs +167 -8
  214. package/dist/platform/browser.cjs.map +1 -1
  215. package/dist/platform/browser.d.ts +235 -18
  216. package/dist/platform/browser.js +179 -29
  217. package/dist/platform/browser.js.map +1 -1
  218. package/dist/platform/browser.test.d.ts +1 -0
  219. package/dist/platform/index.d.ts +11 -5
  220. package/dist/platform/interface.cjs.map +1 -1
  221. package/dist/platform/interface.d.ts +289 -98
  222. package/dist/platform/node.cjs +163 -2
  223. package/dist/platform/node.cjs.map +1 -1
  224. package/dist/platform/node.d.ts +72 -13
  225. package/dist/platform/node.js +175 -21
  226. package/dist/platform/node.js.map +1 -1
  227. package/dist/platform/ports/openpgp-port.cjs +74 -0
  228. package/dist/platform/ports/openpgp-port.cjs.map +1 -0
  229. package/dist/platform/ports/openpgp-port.d.ts +13 -0
  230. package/dist/platform/ports/openpgp-port.js +59 -0
  231. package/dist/platform/ports/openpgp-port.js.map +1 -0
  232. package/dist/platform/ports/pgp-port.cjs +17 -0
  233. package/dist/platform/ports/pgp-port.cjs.map +1 -0
  234. package/dist/platform/ports/pgp-port.d.ts +35 -0
  235. package/dist/platform/ports/pgp-port.js +1 -0
  236. package/dist/platform/ports/pgp-port.js.map +1 -0
  237. package/dist/platform/shared/error-utils.d.ts +2 -4
  238. package/dist/platform/shared/pgp-utils.cjs +2 -2
  239. package/dist/platform/shared/pgp-utils.cjs.map +1 -1
  240. package/dist/platform/shared/pgp-utils.d.ts +3 -5
  241. package/dist/platform/shared/pgp-utils.js +2 -2
  242. package/dist/platform/shared/pgp-utils.js.map +1 -1
  243. package/dist/platform/shared/stream-utils.d.ts +1 -3
  244. package/dist/platform/utils.d.ts +6 -10
  245. package/dist/platform/utils.test.d.ts +1 -0
  246. package/dist/platform.browser.d.ts +9 -4
  247. package/dist/platform.d.ts +11 -5
  248. package/dist/platform.node.d.ts +10 -5
  249. package/dist/server/relayerHandler.cjs +223 -0
  250. package/dist/server/relayerHandler.cjs.map +1 -0
  251. package/dist/server/relayerHandler.d.ts +37 -0
  252. package/dist/server/relayerHandler.js +199 -0
  253. package/dist/server/relayerHandler.js.map +1 -0
  254. package/dist/storage/index.d.ts +56 -10
  255. package/dist/storage/manager.cjs +110 -27
  256. package/dist/storage/manager.cjs.map +1 -1
  257. package/dist/storage/manager.d.ts +121 -30
  258. package/dist/storage/manager.js +113 -37
  259. package/dist/storage/manager.js.map +1 -1
  260. package/dist/storage/providers/callback-storage.cjs +89 -18
  261. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  262. package/dist/storage/providers/callback-storage.d.ts +111 -28
  263. package/dist/storage/providers/callback-storage.js +89 -18
  264. package/dist/storage/providers/callback-storage.js.map +1 -1
  265. package/dist/storage/providers/google-drive.cjs +2 -2
  266. package/dist/storage/providers/google-drive.cjs.map +1 -1
  267. package/dist/storage/providers/google-drive.d.ts +3 -7
  268. package/dist/storage/providers/google-drive.js +4 -7
  269. package/dist/storage/providers/google-drive.js.map +1 -1
  270. package/dist/storage/providers/google-drive.test.d.ts +1 -0
  271. package/dist/storage/providers/ipfs.cjs +5 -5
  272. package/dist/storage/providers/ipfs.cjs.map +1 -1
  273. package/dist/storage/providers/ipfs.d.ts +3 -6
  274. package/dist/storage/providers/ipfs.js +7 -10
  275. package/dist/storage/providers/ipfs.js.map +1 -1
  276. package/dist/storage/providers/pinata.cjs +6 -6
  277. package/dist/storage/providers/pinata.cjs.map +1 -1
  278. package/dist/storage/providers/pinata.d.ts +17 -22
  279. package/dist/storage/providers/pinata.js +8 -11
  280. package/dist/storage/providers/pinata.js.map +1 -1
  281. package/dist/storage/tests/callbackStorage.test.d.ts +1 -0
  282. package/dist/storage/tests/googleDriveStorage.test.d.ts +1 -0
  283. package/dist/storage/tests/ipfsStorage.test.d.ts +1 -0
  284. package/dist/storage/tests/pinataStorage.test.d.ts +1 -0
  285. package/dist/storage/tests/storageManager.test.d.ts +1 -0
  286. package/dist/tests/abi.test.d.ts +1 -0
  287. package/dist/tests/chains-definitions.test.d.ts +1 -0
  288. package/dist/tests/core-encryption.test.d.ts +1 -0
  289. package/dist/tests/core-extended.test.d.ts +1 -0
  290. package/dist/tests/core-generics-coverage.test.d.ts +1 -0
  291. package/dist/tests/coverage-boost.test.d.ts +1 -0
  292. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +1 -0
  293. package/dist/tests/data-addfile-permissions-schema.test.d.ts +1 -0
  294. package/dist/tests/data-additional-methods.test.d.ts +1 -0
  295. package/dist/tests/data-controller-edge-cases.test.d.ts +1 -0
  296. package/dist/tests/data-ipfs-gateways.test.d.ts +1 -0
  297. package/dist/tests/data-relayer.test.d.ts +1 -0
  298. package/dist/tests/data-schema-validation.test.d.ts +1 -0
  299. package/dist/tests/data-simple-methods.test.d.ts +1 -0
  300. package/dist/tests/data.test.d.ts +1 -0
  301. package/dist/tests/demo-integration.test.d.ts +1 -0
  302. package/dist/tests/demo-trusted-server-integration.test.d.ts +1 -0
  303. package/dist/tests/download-relayer.test.d.ts +1 -0
  304. package/dist/tests/dual-mode-permissions.test.d.ts +1 -0
  305. package/dist/tests/dual-mode-trusted-servers.test.d.ts +1 -0
  306. package/dist/tests/encryption-correct-implementation.test.d.ts +1 -0
  307. package/dist/tests/encryption-coverage.test.d.ts +1 -0
  308. package/dist/tests/encryption-edge-cases.test.d.ts +1 -0
  309. package/dist/tests/encryption-utils-updated.test.d.ts +1 -0
  310. package/dist/tests/errors-coverage.test.d.ts +1 -0
  311. package/dist/tests/errors.test.d.ts +1 -0
  312. package/dist/tests/factories/mockFactory.d.ts +316 -0
  313. package/dist/tests/fakes/FakeStorageManager.d.ts +200 -0
  314. package/dist/tests/fakes/FakeStorageManager.test.d.ts +1 -0
  315. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +170 -0
  316. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +1 -0
  317. package/dist/tests/fakes/fake-pgp-port.d.ts +13 -0
  318. package/dist/tests/grantValidation-edge-cases.test.d.ts +1 -0
  319. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +1 -0
  320. package/dist/tests/helper-methods.test.d.ts +1 -0
  321. package/dist/tests/helpers/platformTestHelpers.d.ts +106 -0
  322. package/dist/tests/helpers/typedMocks.d.ts +64 -0
  323. package/dist/tests/index-browser.test.d.ts +1 -0
  324. package/dist/tests/index-node.test.d.ts +1 -0
  325. package/dist/tests/index.test.d.ts +1 -0
  326. package/dist/tests/mocks/platformAdapter.d.ts +12 -0
  327. package/dist/tests/new-permissions-methods.test.d.ts +1 -0
  328. package/dist/tests/no-buffer-browser.test.d.ts +1 -0
  329. package/dist/tests/permissions-grantee.test.d.ts +1 -0
  330. package/dist/tests/permissions-revoke-relayer.test.d.ts +1 -0
  331. package/dist/tests/permissions-schema-validation.test.d.ts +1 -0
  332. package/dist/tests/permissions-server-files.test.d.ts +1 -0
  333. package/dist/tests/permissions-transaction-options.test.d.ts +1 -0
  334. package/dist/tests/permissions-trust-servers.test.d.ts +1 -0
  335. package/dist/tests/permissions.test.d.ts +1 -0
  336. package/dist/tests/personal.test.d.ts +1 -0
  337. package/dist/tests/platform-browser.test.d.ts +1 -0
  338. package/dist/tests/platform-crypto-expanded.test.d.ts +1 -0
  339. package/dist/tests/platform-crypto.test.d.ts +1 -0
  340. package/dist/tests/platform-index.test.d.ts +1 -0
  341. package/dist/tests/platform-node.test.d.ts +1 -0
  342. package/dist/tests/platform-shared-utils.test.d.ts +1 -0
  343. package/dist/tests/platform-updated.test.d.ts +1 -0
  344. package/dist/tests/protocol-additional-methods.test.d.ts +1 -0
  345. package/dist/tests/protocol.test.d.ts +1 -0
  346. package/dist/tests/read-only-mode.test.d.ts +1 -0
  347. package/dist/tests/relayer-integration.test.d.ts +1 -0
  348. package/dist/tests/relayer-unified.test.d.ts +1 -0
  349. package/dist/tests/schemas.test.d.ts +1 -0
  350. package/dist/tests/server-relayer-handler.test.d.ts +1 -0
  351. package/dist/tests/setup.d.ts +7 -0
  352. package/dist/tests/signatureFormatter.test.d.ts +1 -0
  353. package/dist/tests/trusted-server-queries.test.d.ts +1 -0
  354. package/dist/tests/typedDataConverter.test.d.ts +1 -0
  355. package/dist/tests/types-contracts.test.d.ts +1 -0
  356. package/dist/tests/types-data.test.d.ts +1 -0
  357. package/dist/tests/types-external-apis.test.d.ts +1 -0
  358. package/dist/tests/types-generics.test.d.ts +1 -0
  359. package/dist/tests/types-permissions.test.d.ts +1 -0
  360. package/dist/tests/types-upload-params.test.d.ts +1 -0
  361. package/dist/tests/types.test.d.ts +1 -0
  362. package/dist/tests/utils-formatters.test.d.ts +1 -0
  363. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +1 -0
  364. package/dist/tests/utils-grantFiles-validation.test.d.ts +1 -0
  365. package/dist/tests/utils-grantFiles.test.d.ts +1 -0
  366. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +1 -0
  367. package/dist/tests/utils-grants.test.d.ts +1 -0
  368. package/dist/tests/utils-ipfs-additional.test.d.ts +1 -0
  369. package/dist/tests/utils-ipfs.test.d.ts +4 -0
  370. package/dist/tests/utils-schemaValidation.test.d.ts +1 -0
  371. package/dist/tests/vana.test.d.ts +1 -0
  372. package/dist/tests/wallet-crypto-compatibility.test.d.ts +1 -0
  373. package/dist/types/blockchain.cjs +17 -0
  374. package/dist/types/blockchain.cjs.map +1 -0
  375. package/dist/types/blockchain.d.ts +85 -0
  376. package/dist/types/blockchain.js +1 -0
  377. package/dist/types/blockchain.js.map +1 -0
  378. package/dist/types/chains-additional.test.d.ts +1 -0
  379. package/dist/types/chains.cjs.map +1 -1
  380. package/dist/types/chains.d.ts +80 -16
  381. package/dist/types/chains.js.map +1 -1
  382. package/dist/types/config.cjs +10 -0
  383. package/dist/types/config.cjs.map +1 -1
  384. package/dist/types/config.d.ts +204 -242
  385. package/dist/types/config.js +8 -0
  386. package/dist/types/config.js.map +1 -1
  387. package/dist/types/contracts.cjs.map +1 -1
  388. package/dist/types/contracts.d.ts +79 -18
  389. package/dist/types/controller-context.cjs +17 -0
  390. package/dist/types/controller-context.cjs.map +1 -0
  391. package/dist/types/controller-context.d.ts +65 -0
  392. package/dist/types/controller-context.js +1 -0
  393. package/dist/types/controller-context.js.map +1 -0
  394. package/dist/types/data.cjs.map +1 -1
  395. package/dist/types/data.d.ts +111 -45
  396. package/dist/types/external-apis.d.ts +10 -12
  397. package/dist/types/generics.cjs.map +1 -1
  398. package/dist/types/generics.d.ts +115 -47
  399. package/dist/types/index.cjs +5 -4
  400. package/dist/types/index.cjs.map +1 -1
  401. package/dist/types/index.d.ts +45 -34
  402. package/dist/types/index.js +9 -2
  403. package/dist/types/index.js.map +1 -1
  404. package/dist/types/operations.cjs +2 -2
  405. package/dist/types/operations.cjs.map +1 -1
  406. package/dist/types/operations.d.ts +163 -42
  407. package/dist/types/operations.js +2 -2
  408. package/dist/types/operations.js.map +1 -1
  409. package/dist/types/permissions.cjs.map +1 -1
  410. package/dist/types/permissions.d.ts +70 -78
  411. package/dist/types/personal.cjs.map +1 -1
  412. package/dist/types/personal.d.ts +137 -22
  413. package/dist/types/relayer.cjs.map +1 -1
  414. package/dist/types/relayer.d.ts +274 -50
  415. package/dist/types/storage.cjs.map +1 -1
  416. package/dist/types/storage.d.ts +15 -29
  417. package/dist/types/storage.js +2 -5
  418. package/dist/types/storage.js.map +1 -1
  419. package/dist/types/transactionResults.cjs.map +1 -1
  420. package/dist/types/transactionResults.d.ts +193 -25
  421. package/dist/types/utils.cjs.map +1 -1
  422. package/dist/types/utils.d.ts +26 -25
  423. package/dist/types.d.ts +4 -40
  424. package/dist/utils/__tests__/parseTransaction.test.d.ts +1 -0
  425. package/dist/utils/__tests__/pojo-serialization.test.d.ts +1 -0
  426. package/dist/utils/__tests__/signatureCache.test.d.ts +1 -0
  427. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +1 -0
  428. package/dist/utils/__tests__/transactionHelpers.test.d.ts +1 -0
  429. package/dist/utils/__tests__/urlResolver.test.d.ts +4 -0
  430. package/dist/utils/blockchain/registry.cjs +2 -2
  431. package/dist/utils/blockchain/registry.cjs.map +1 -1
  432. package/dist/utils/blockchain/registry.d.ts +6 -8
  433. package/dist/utils/blockchain/registry.js +2 -2
  434. package/dist/utils/blockchain/registry.js.map +1 -1
  435. package/dist/utils/blockchain/registry.test.d.ts +1 -0
  436. package/dist/utils/crypto-utils.cjs +0 -12
  437. package/dist/utils/crypto-utils.cjs.map +1 -1
  438. package/dist/utils/crypto-utils.d.ts +9 -27
  439. package/dist/utils/crypto-utils.js +0 -11
  440. package/dist/utils/crypto-utils.js.map +1 -1
  441. package/dist/utils/crypto-utils.test.d.ts +1 -0
  442. package/dist/utils/download.cjs +3 -3
  443. package/dist/utils/download.cjs.map +1 -1
  444. package/dist/utils/download.d.ts +13 -14
  445. package/dist/utils/download.js +2 -2
  446. package/dist/utils/download.js.map +1 -1
  447. package/dist/utils/encoding.cjs +1 -1
  448. package/dist/utils/encoding.cjs.map +1 -1
  449. package/dist/utils/encoding.d.ts +4 -6
  450. package/dist/utils/encoding.js +1 -1
  451. package/dist/utils/encoding.js.map +1 -1
  452. package/dist/utils/encoding.test.d.ts +1 -0
  453. package/dist/utils/encryption.cjs +16 -10
  454. package/dist/utils/encryption.cjs.map +1 -1
  455. package/dist/utils/encryption.d.ts +13 -17
  456. package/dist/utils/encryption.js +16 -10
  457. package/dist/utils/encryption.js.map +1 -1
  458. package/dist/utils/formatters.cjs +4 -2
  459. package/dist/utils/formatters.cjs.map +1 -1
  460. package/dist/utils/formatters.d.ts +4 -6
  461. package/dist/utils/formatters.js +4 -2
  462. package/dist/utils/formatters.js.map +1 -1
  463. package/dist/utils/grantFiles.cjs +7 -4
  464. package/dist/utils/grantFiles.cjs.map +1 -1
  465. package/dist/utils/grantFiles.d.ts +16 -30
  466. package/dist/utils/grantFiles.js +7 -4
  467. package/dist/utils/grantFiles.js.map +1 -1
  468. package/dist/utils/grantValidation.cjs +1 -1
  469. package/dist/utils/grantValidation.cjs.map +1 -1
  470. package/dist/utils/grantValidation.d.ts +109 -33
  471. package/dist/utils/grantValidation.js +1 -1
  472. package/dist/utils/grantValidation.js.map +1 -1
  473. package/dist/utils/grants.cjs +1 -1
  474. package/dist/utils/grants.cjs.map +1 -1
  475. package/dist/utils/grants.d.ts +101 -23
  476. package/dist/utils/grants.js +1 -1
  477. package/dist/utils/grants.js.map +1 -1
  478. package/dist/utils/ipfs.d.ts +8 -10
  479. package/dist/utils/lazy-import.cjs +4 -6
  480. package/dist/utils/lazy-import.cjs.map +1 -1
  481. package/dist/utils/lazy-import.d.ts +33 -10
  482. package/dist/utils/lazy-import.js +4 -6
  483. package/dist/utils/lazy-import.js.map +1 -1
  484. package/dist/utils/multicall.cjs +4 -2
  485. package/dist/utils/multicall.cjs.map +1 -1
  486. package/dist/utils/multicall.d.ts +5 -8
  487. package/dist/utils/multicall.js +4 -2
  488. package/dist/utils/multicall.js.map +1 -1
  489. package/dist/utils/parseTransactionPojo.cjs +87 -0
  490. package/dist/utils/parseTransactionPojo.cjs.map +1 -0
  491. package/dist/utils/parseTransactionPojo.d.ts +31 -0
  492. package/dist/utils/parseTransactionPojo.js +63 -0
  493. package/dist/utils/parseTransactionPojo.js.map +1 -0
  494. package/dist/utils/schemaValidation.cjs +5 -5
  495. package/dist/utils/schemaValidation.cjs.map +1 -1
  496. package/dist/utils/schemaValidation.d.ts +8 -12
  497. package/dist/utils/schemaValidation.js +7 -10
  498. package/dist/utils/schemaValidation.js.map +1 -1
  499. package/dist/utils/signatureCache.cjs +9 -4
  500. package/dist/utils/signatureCache.cjs.map +1 -1
  501. package/dist/utils/signatureCache.d.ts +53 -15
  502. package/dist/utils/signatureCache.js +12 -10
  503. package/dist/utils/signatureCache.js.map +1 -1
  504. package/dist/utils/signatureFormatter.cjs +6 -9
  505. package/dist/utils/signatureFormatter.cjs.map +1 -1
  506. package/dist/utils/signatureFormatter.d.ts +2 -5
  507. package/dist/utils/signatureFormatter.js +6 -9
  508. package/dist/utils/signatureFormatter.js.map +1 -1
  509. package/dist/utils/tests/multicall.test.d.ts +1 -0
  510. package/dist/utils/transactionHelpers.cjs +54 -0
  511. package/dist/utils/transactionHelpers.cjs.map +1 -0
  512. package/dist/utils/transactionHelpers.d.ts +80 -0
  513. package/dist/utils/transactionHelpers.js +29 -0
  514. package/dist/utils/transactionHelpers.js.map +1 -0
  515. package/dist/utils/typeGuards.cjs +109 -0
  516. package/dist/utils/typeGuards.cjs.map +1 -0
  517. package/dist/utils/typeGuards.d.ts +138 -0
  518. package/dist/utils/typeGuards.js +74 -0
  519. package/dist/utils/typeGuards.js.map +1 -0
  520. package/dist/utils/typedDataConverter.cjs.map +1 -1
  521. package/dist/utils/typedDataConverter.d.ts +42 -9
  522. package/dist/utils/typedDataConverter.js.map +1 -1
  523. package/dist/utils/urlResolver.cjs +8 -1
  524. package/dist/utils/urlResolver.cjs.map +1 -1
  525. package/dist/utils/urlResolver.d.ts +24 -8
  526. package/dist/utils/urlResolver.js +9 -2
  527. package/dist/utils/urlResolver.js.map +1 -1
  528. package/dist/utils/wallet.cjs +63 -0
  529. package/dist/utils/wallet.cjs.map +1 -0
  530. package/dist/utils/wallet.d.ts +94 -0
  531. package/dist/utils/wallet.js +37 -0
  532. package/dist/utils/wallet.js.map +1 -0
  533. package/dist/{chains.browser.cjs → utils/withEvents.cjs} +22 -15
  534. package/dist/utils/withEvents.cjs.map +1 -0
  535. package/dist/utils/withEvents.d.ts +56 -0
  536. package/dist/utils/withEvents.js +18 -0
  537. package/dist/utils/withEvents.js.map +1 -0
  538. package/package.json +23 -14
  539. package/dist/browser.d.cts +0 -2
  540. package/dist/chains/definitions.d.cts +0 -53
  541. package/dist/chains/index.d.cts +0 -2
  542. package/dist/chains.browser.cjs.map +0 -1
  543. package/dist/chains.browser.d.cts +0 -2
  544. package/dist/chains.d.cts +0 -2
  545. package/dist/chains.node.d.cts +0 -2
  546. package/dist/config/addresses.d.cts +0 -380
  547. package/dist/config/chains.d.cts +0 -85
  548. package/dist/config/eventMappings.cjs +0 -114
  549. package/dist/config/eventMappings.cjs.map +0 -1
  550. package/dist/config/eventMappings.d.cts +0 -108
  551. package/dist/config/eventMappings.d.ts +0 -108
  552. package/dist/config/eventMappings.js +0 -90
  553. package/dist/config/eventMappings.js.map +0 -1
  554. package/dist/config/features.d.cts +0 -64
  555. package/dist/contracts/contractController.d.cts +0 -96
  556. package/dist/controllers/data.d.cts +0 -941
  557. package/dist/controllers/permissions.d.cts +0 -25
  558. package/dist/controllers/protocol.d.cts +0 -167
  559. package/dist/controllers/schemas.d.cts +0 -272
  560. package/dist/controllers/server.d.cts +0 -243
  561. package/dist/core/apiClient.d.cts +0 -165
  562. package/dist/core/client.d.cts +0 -92
  563. package/dist/core/generics.d.cts +0 -120
  564. package/dist/core.d.cts +0 -466
  565. package/dist/crypto/ecies/__tests__/test-vectors.d.cts +0 -40
  566. package/dist/crypto/ecies/base.d.cts +0 -143
  567. package/dist/crypto/ecies/browser.d.cts +0 -48
  568. package/dist/crypto/ecies/constants.d.cts +0 -122
  569. package/dist/crypto/ecies/index.d.cts +0 -1
  570. package/dist/crypto/ecies/interface.d.cts +0 -176
  571. package/dist/crypto/ecies/node.d.cts +0 -50
  572. package/dist/crypto/ecies/test-vectors/eccrypto-vectors.d.cts +0 -76
  573. package/dist/crypto/ecies/test-vectors/eccrypto-vectors.d.ts +0 -76
  574. package/dist/crypto/ecies/utils.d.cts +0 -67
  575. package/dist/crypto/services/WalletKeyEncryptionService.d.cts +0 -92
  576. package/dist/diagnostics.d.cts +0 -26
  577. package/dist/errors.d.cts +0 -350
  578. package/dist/generated/abi/ComputeEngineImplementation.d.cts +0 -996
  579. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.cts +0 -545
  580. package/dist/generated/abi/DATFactoryImplementation.d.cts +0 -661
  581. package/dist/generated/abi/DATImplementation.d.cts +0 -693
  582. package/dist/generated/abi/DATPausableImplementation.d.cts +0 -1145
  583. package/dist/generated/abi/DATVotesImplementation.d.cts +0 -1095
  584. package/dist/generated/abi/DLPPerformanceImplementation.d.cts +0 -883
  585. package/dist/generated/abi/DLPRegistryImplementation.d.cts +0 -1123
  586. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.cts +0 -452
  587. package/dist/generated/abi/DLPRewardDeployerImplementation.d.cts +0 -714
  588. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.cts +0 -452
  589. package/dist/generated/abi/DLPRewardSwapImplementation.d.cts +0 -706
  590. package/dist/generated/abi/DLPRootImplementation.d.cts +0 -1248
  591. package/dist/generated/abi/DLPTreasuryImplementation.d.cts +0 -452
  592. package/dist/generated/abi/DataLiquidityPoolImplementation.d.cts +0 -737
  593. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.cts +0 -661
  594. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.cts +0 -989
  595. package/dist/generated/abi/DataPortabilityServersImplementation.d.cts +0 -1086
  596. package/dist/generated/abi/DataRefinerRegistryImplementation.d.cts +0 -737
  597. package/dist/generated/abi/DataRegistryImplementation.d.cts +0 -1004
  598. package/dist/generated/abi/QueryEngineImplementation.d.cts +0 -1001
  599. package/dist/generated/abi/SwapHelperImplementation.d.cts +0 -764
  600. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.cts +0 -701
  601. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.cts +0 -701
  602. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.cts +0 -701
  603. package/dist/generated/abi/TeePoolImplementation.d.cts +0 -993
  604. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.cts +0 -701
  605. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.cts +0 -701
  606. package/dist/generated/abi/TeePoolPhalaImplementation.d.cts +0 -993
  607. package/dist/generated/abi/VanaEpochImplementation.d.cts +0 -900
  608. package/dist/generated/abi/VanaPoolEntityImplementation.d.cts +0 -934
  609. package/dist/generated/abi/VanaPoolStakingImplementation.d.cts +0 -693
  610. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.cts +0 -394
  611. package/dist/generated/abi/index.d.cts +0 -26516
  612. package/dist/generated/server/server-exports.d.cts +0 -21
  613. package/dist/generated/server/server.d.cts +0 -512
  614. package/dist/generated/subgraph.d.cts +0 -5981
  615. package/dist/index.browser.cjs +0 -151
  616. package/dist/index.browser.cjs.map +0 -1
  617. package/dist/index.browser.d.cts +0 -177
  618. package/dist/index.d.cts +0 -2
  619. package/dist/index.node.d.cts +0 -64
  620. package/dist/node.d.cts +0 -2
  621. package/dist/permissions-DNKPu_G0.d.cts +0 -1666
  622. package/dist/permissions-eo8YeLGf.d.ts +0 -1666
  623. package/dist/platform/browser-only.d.cts +0 -25
  624. package/dist/platform/browser-safe.d.cts +0 -32
  625. package/dist/platform/browser.d.cts +0 -74
  626. package/dist/platform/index.d.cts +0 -5
  627. package/dist/platform/interface.d.cts +0 -218
  628. package/dist/platform/node.d.cts +0 -27
  629. package/dist/platform/shared/error-utils.d.cts +0 -25
  630. package/dist/platform/shared/pgp-utils.d.cts +0 -61
  631. package/dist/platform/shared/stream-utils.d.cts +0 -16
  632. package/dist/platform/utils.d.cts +0 -53
  633. package/dist/platform.browser.cjs +0 -41
  634. package/dist/platform.browser.cjs.map +0 -1
  635. package/dist/platform.browser.d.cts +0 -4
  636. package/dist/platform.d.cts +0 -5
  637. package/dist/platform.node.d.cts +0 -5
  638. package/dist/schemas/dataSchema.schema.d.cts +0 -88
  639. package/dist/schemas/dataSchema.schema.d.ts +0 -88
  640. package/dist/schemas/grantFile.schema.d.cts +0 -57
  641. package/dist/schemas/grantFile.schema.d.ts +0 -57
  642. package/dist/server/handler.cjs +0 -101
  643. package/dist/server/handler.cjs.map +0 -1
  644. package/dist/server/handler.d.cts +0 -282
  645. package/dist/server/handler.d.ts +0 -282
  646. package/dist/server/handler.js +0 -77
  647. package/dist/server/handler.js.map +0 -1
  648. package/dist/storage/index.d.cts +0 -10
  649. package/dist/storage/manager.d.cts +0 -150
  650. package/dist/storage/providers/callback-storage.d.cts +0 -100
  651. package/dist/storage/providers/google-drive.d.cts +0 -156
  652. package/dist/storage/providers/ipfs.d.cts +0 -163
  653. package/dist/storage/providers/pinata.d.cts +0 -173
  654. package/dist/types/chains.d.cts +0 -34
  655. package/dist/types/config.d.cts +0 -726
  656. package/dist/types/contracts.d.cts +0 -68
  657. package/dist/types/data.d.cts +0 -694
  658. package/dist/types/eccrypto-js.d.d.cts +0 -13
  659. package/dist/types/eccrypto-js.d.d.ts +0 -13
  660. package/dist/types/external-apis.d.cts +0 -186
  661. package/dist/types/generics.d.cts +0 -450
  662. package/dist/types/index.d.cts +0 -34
  663. package/dist/types/operations.d.cts +0 -108
  664. package/dist/types/permissions.d.cts +0 -957
  665. package/dist/types/personal.d.cts +0 -40
  666. package/dist/types/relayer.d.cts +0 -284
  667. package/dist/types/storage.d.cts +0 -131
  668. package/dist/types/transactionResults.d.cts +0 -25
  669. package/dist/types/utils.d.cts +0 -819
  670. package/dist/types.d.cts +0 -66
  671. package/dist/utils/blockchain/registry.d.cts +0 -34
  672. package/dist/utils/crypto-utils.d.cts +0 -118
  673. package/dist/utils/download.d.cts +0 -41
  674. package/dist/utils/encoding.d.cts +0 -54
  675. package/dist/utils/encryption.d.cts +0 -275
  676. package/dist/utils/eventParsing.cjs +0 -111
  677. package/dist/utils/eventParsing.cjs.map +0 -1
  678. package/dist/utils/eventParsing.d.cts +0 -60
  679. package/dist/utils/eventParsing.d.ts +0 -60
  680. package/dist/utils/eventParsing.js +0 -86
  681. package/dist/utils/eventParsing.js.map +0 -1
  682. package/dist/utils/formatters.d.cts +0 -120
  683. package/dist/utils/grantFiles.d.cts +0 -186
  684. package/dist/utils/grantValidation.d.cts +0 -150
  685. package/dist/utils/grants.d.cts +0 -70
  686. package/dist/utils/ipfs.d.cts +0 -90
  687. package/dist/utils/lazy-import.d.cts +0 -20
  688. package/dist/utils/multicall.d.cts +0 -129
  689. package/dist/utils/schemaValidation.d.cts +0 -172
  690. package/dist/utils/signatureCache.d.cts +0 -134
  691. package/dist/utils/signatureFormatter.d.cts +0 -39
  692. package/dist/utils/transactionParsing.cjs +0 -84
  693. package/dist/utils/transactionParsing.cjs.map +0 -1
  694. package/dist/utils/transactionParsing.d.cts +0 -25
  695. package/dist/utils/transactionParsing.d.ts +0 -25
  696. package/dist/utils/transactionParsing.js +0 -62
  697. package/dist/utils/transactionParsing.js.map +0 -1
  698. package/dist/utils/typedDataConverter.d.cts +0 -13
  699. package/dist/utils/urlResolver.d.cts +0 -40
@@ -0,0 +1,60 @@
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 default_services_exports = {};
20
+ __export(default_services_exports, {
21
+ getDefaultPersonalServerUrl: () => getDefaultPersonalServerUrl,
22
+ getServiceEndpoints: () => getServiceEndpoints,
23
+ mainnetServices: () => mainnetServices,
24
+ mokshaServices: () => mokshaServices
25
+ });
26
+ module.exports = __toCommonJS(default_services_exports);
27
+ const mainnetServices = {
28
+ subgraphUrl: "https://vanagraph.io/v7",
29
+ blockExplorerUrl: "https://vanascan.io",
30
+ personalServerUrl: "https://server.vana.com",
31
+ rpcUrl: "https://rpc.vana.org"
32
+ };
33
+ const mokshaServices = {
34
+ subgraphUrl: "https://moksha.vanagraph.io/v7",
35
+ blockExplorerUrl: "https://moksha.vanascan.io",
36
+ personalServerUrl: "https://test.server.vana.com",
37
+ rpcUrl: "https://rpc.moksha.vana.org"
38
+ };
39
+ function getServiceEndpoints(chainId) {
40
+ switch (chainId) {
41
+ case 1480:
42
+ return mainnetServices;
43
+ case 14800:
44
+ return mokshaServices;
45
+ default:
46
+ return void 0;
47
+ }
48
+ }
49
+ function getDefaultPersonalServerUrl(chainId) {
50
+ const services = getServiceEndpoints(chainId);
51
+ return services?.personalServerUrl;
52
+ }
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ getDefaultPersonalServerUrl,
56
+ getServiceEndpoints,
57
+ mainnetServices,
58
+ mokshaServices
59
+ });
60
+ //# sourceMappingURL=default-services.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/config/default-services.ts"],"sourcesContent":["/**\n * Default service endpoints for Vana networks\n *\n * Centralizes all default service URLs for different Vana networks.\n * These can be overridden during SDK initialization.\n */\n\nexport interface ServiceEndpoints {\n /** Subgraph API endpoint for querying on-chain data */\n subgraphUrl: string;\n /** Block explorer URL for viewing transactions and addresses */\n blockExplorerUrl: string;\n /** Personal server URL for computation operations */\n personalServerUrl: string;\n /** RPC URL for blockchain interactions */\n rpcUrl: string;\n}\n\n/**\n * Default service endpoints for Vana Mainnet (chain ID: 1480)\n */\nexport const mainnetServices: ServiceEndpoints = {\n subgraphUrl: \"https://vanagraph.io/v7\",\n blockExplorerUrl: \"https://vanascan.io\",\n personalServerUrl: \"https://server.vana.com\",\n rpcUrl: \"https://rpc.vana.org\",\n} as const;\n\n/**\n * Default service endpoints for Moksha Testnet (chain ID: 14800)\n */\nexport const mokshaServices: ServiceEndpoints = {\n subgraphUrl: \"https://moksha.vanagraph.io/v7\",\n blockExplorerUrl: \"https://moksha.vanascan.io\",\n personalServerUrl: \"https://test.server.vana.com\",\n rpcUrl: \"https://rpc.moksha.vana.org\",\n} as const;\n\n/**\n * Retrieves the default service endpoints for a given chain ID\n *\n * @param chainId - The numeric chain ID\n * @returns Service endpoints for the chain, or undefined if not supported\n * @example\n * ```typescript\n * const services = getServiceEndpoints(1480);\n * if (services) {\n * console.log('Personal server:', services.personalServerUrl);\n * console.log('Subgraph:', services.subgraphUrl);\n * }\n * ```\n */\nexport function getServiceEndpoints(\n chainId: number,\n): ServiceEndpoints | undefined {\n switch (chainId) {\n case 1480:\n return mainnetServices;\n case 14800:\n return mokshaServices;\n default:\n return undefined;\n }\n}\n\n/**\n * Gets the default personal server URL for a given chain ID\n *\n * @param chainId - The numeric chain ID\n * @returns The personal server URL for the chain, or undefined if not supported\n */\nexport function getDefaultPersonalServerUrl(\n chainId: number,\n): string | undefined {\n const services = getServiceEndpoints(chainId);\n return services?.personalServerUrl;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBO,MAAM,kBAAoC;AAAA,EAC/C,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,QAAQ;AACV;AAKO,MAAM,iBAAmC;AAAA,EAC9C,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,QAAQ;AACV;AAgBO,SAAS,oBACd,SAC8B;AAC9B,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAQO,SAAS,4BACd,SACoB;AACpB,QAAM,WAAW,oBAAoB,OAAO;AAC5C,SAAO,UAAU;AACnB;","names":[]}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Default service endpoints for Vana networks
3
+ *
4
+ * Centralizes all default service URLs for different Vana networks.
5
+ * These can be overridden during SDK initialization.
6
+ */
7
+ export interface ServiceEndpoints {
8
+ /** Subgraph API endpoint for querying on-chain data */
9
+ subgraphUrl: string;
10
+ /** Block explorer URL for viewing transactions and addresses */
11
+ blockExplorerUrl: string;
12
+ /** Personal server URL for computation operations */
13
+ personalServerUrl: string;
14
+ /** RPC URL for blockchain interactions */
15
+ rpcUrl: string;
16
+ }
17
+ /**
18
+ * Default service endpoints for Vana Mainnet (chain ID: 1480)
19
+ */
20
+ export declare const mainnetServices: ServiceEndpoints;
21
+ /**
22
+ * Default service endpoints for Moksha Testnet (chain ID: 14800)
23
+ */
24
+ export declare const mokshaServices: ServiceEndpoints;
25
+ /**
26
+ * Retrieves the default service endpoints for a given chain ID
27
+ *
28
+ * @param chainId - The numeric chain ID
29
+ * @returns Service endpoints for the chain, or undefined if not supported
30
+ * @example
31
+ * ```typescript
32
+ * const services = getServiceEndpoints(1480);
33
+ * if (services) {
34
+ * console.log('Personal server:', services.personalServerUrl);
35
+ * console.log('Subgraph:', services.subgraphUrl);
36
+ * }
37
+ * ```
38
+ */
39
+ export declare function getServiceEndpoints(chainId: number): ServiceEndpoints | undefined;
40
+ /**
41
+ * Gets the default personal server URL for a given chain ID
42
+ *
43
+ * @param chainId - The numeric chain ID
44
+ * @returns The personal server URL for the chain, or undefined if not supported
45
+ */
46
+ export declare function getDefaultPersonalServerUrl(chainId: number): string | undefined;
@@ -0,0 +1,33 @@
1
+ const mainnetServices = {
2
+ subgraphUrl: "https://vanagraph.io/v7",
3
+ blockExplorerUrl: "https://vanascan.io",
4
+ personalServerUrl: "https://server.vana.com",
5
+ rpcUrl: "https://rpc.vana.org"
6
+ };
7
+ const mokshaServices = {
8
+ subgraphUrl: "https://moksha.vanagraph.io/v7",
9
+ blockExplorerUrl: "https://moksha.vanascan.io",
10
+ personalServerUrl: "https://test.server.vana.com",
11
+ rpcUrl: "https://rpc.moksha.vana.org"
12
+ };
13
+ function getServiceEndpoints(chainId) {
14
+ switch (chainId) {
15
+ case 1480:
16
+ return mainnetServices;
17
+ case 14800:
18
+ return mokshaServices;
19
+ default:
20
+ return void 0;
21
+ }
22
+ }
23
+ function getDefaultPersonalServerUrl(chainId) {
24
+ const services = getServiceEndpoints(chainId);
25
+ return services?.personalServerUrl;
26
+ }
27
+ export {
28
+ getDefaultPersonalServerUrl,
29
+ getServiceEndpoints,
30
+ mainnetServices,
31
+ mokshaServices
32
+ };
33
+ //# sourceMappingURL=default-services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/config/default-services.ts"],"sourcesContent":["/**\n * Default service endpoints for Vana networks\n *\n * Centralizes all default service URLs for different Vana networks.\n * These can be overridden during SDK initialization.\n */\n\nexport interface ServiceEndpoints {\n /** Subgraph API endpoint for querying on-chain data */\n subgraphUrl: string;\n /** Block explorer URL for viewing transactions and addresses */\n blockExplorerUrl: string;\n /** Personal server URL for computation operations */\n personalServerUrl: string;\n /** RPC URL for blockchain interactions */\n rpcUrl: string;\n}\n\n/**\n * Default service endpoints for Vana Mainnet (chain ID: 1480)\n */\nexport const mainnetServices: ServiceEndpoints = {\n subgraphUrl: \"https://vanagraph.io/v7\",\n blockExplorerUrl: \"https://vanascan.io\",\n personalServerUrl: \"https://server.vana.com\",\n rpcUrl: \"https://rpc.vana.org\",\n} as const;\n\n/**\n * Default service endpoints for Moksha Testnet (chain ID: 14800)\n */\nexport const mokshaServices: ServiceEndpoints = {\n subgraphUrl: \"https://moksha.vanagraph.io/v7\",\n blockExplorerUrl: \"https://moksha.vanascan.io\",\n personalServerUrl: \"https://test.server.vana.com\",\n rpcUrl: \"https://rpc.moksha.vana.org\",\n} as const;\n\n/**\n * Retrieves the default service endpoints for a given chain ID\n *\n * @param chainId - The numeric chain ID\n * @returns Service endpoints for the chain, or undefined if not supported\n * @example\n * ```typescript\n * const services = getServiceEndpoints(1480);\n * if (services) {\n * console.log('Personal server:', services.personalServerUrl);\n * console.log('Subgraph:', services.subgraphUrl);\n * }\n * ```\n */\nexport function getServiceEndpoints(\n chainId: number,\n): ServiceEndpoints | undefined {\n switch (chainId) {\n case 1480:\n return mainnetServices;\n case 14800:\n return mokshaServices;\n default:\n return undefined;\n }\n}\n\n/**\n * Gets the default personal server URL for a given chain ID\n *\n * @param chainId - The numeric chain ID\n * @returns The personal server URL for the chain, or undefined if not supported\n */\nexport function getDefaultPersonalServerUrl(\n chainId: number,\n): string | undefined {\n const services = getServiceEndpoints(chainId);\n return services?.personalServerUrl;\n}\n"],"mappings":"AAqBO,MAAM,kBAAoC;AAAA,EAC/C,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,QAAQ;AACV;AAKO,MAAM,iBAAmC;AAAA,EAC9C,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,QAAQ;AACV;AAgBO,SAAS,oBACd,SAC8B;AAC9B,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAQO,SAAS,4BACd,SACoB;AACpB,QAAM,WAAW,oBAAoB,OAAO;AAC5C,SAAO,UAAU;AACnB;","names":[]}
@@ -0,0 +1 @@
1
+ export {};
@@ -38,7 +38,7 @@
38
38
  /**
39
39
  * Feature flag configuration
40
40
  */
41
- declare const features: {
41
+ export declare const features: {
42
42
  /**
43
43
  * Use custom ECIES implementation instead of eccrypto
44
44
  *
@@ -60,5 +60,3 @@ declare const features: {
60
60
  */
61
61
  readonly useCustomECIES: boolean;
62
62
  };
63
-
64
- export { features };
@@ -0,0 +1 @@
1
+ export {};
@@ -19,8 +19,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var contractController_exports = {};
20
20
  __export(contractController_exports, {
21
21
  ContractFactory: () => ContractFactory,
22
- __contractCache: () => __contractCache,
23
22
  clearContractCache: () => clearContractCache,
23
+ contractCacheForTesting: () => contractCacheForTesting,
24
24
  getContractController: () => getContractController,
25
25
  getContractInfo: () => getContractInfo
26
26
  });
@@ -31,7 +31,7 @@ var import_addresses = require("../config/addresses");
31
31
  var import_client = require("../core/client");
32
32
  var import_chains = require("../config/chains");
33
33
  const contractCache = /* @__PURE__ */ new Map();
34
- const __contractCache = contractCache;
34
+ const contractCacheForTesting = contractCache;
35
35
  function createCacheKey(contract, chainId) {
36
36
  return `${contract}:${chainId}`;
37
37
  }
@@ -118,8 +118,8 @@ function clearContractCache(contract, chainId) {
118
118
  // Annotate the CommonJS export names for ESM import in node:
119
119
  0 && (module.exports = {
120
120
  ContractFactory,
121
- __contractCache,
122
121
  clearContractCache,
122
+ contractCacheForTesting,
123
123
  getContractController,
124
124
  getContractInfo
125
125
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/contracts/contractController.ts"],"sourcesContent":["import type { Abi } from \"abitype\";\nimport {\n getContract,\n type GetContractReturnType,\n type PublicClient,\n type WalletClient,\n} from \"viem\";\nimport { type ContractAbis, getAbi, type VanaContract } from \"../generated/abi\";\nimport type { VanaChainId, ContractInfo } from \"../types/index\";\nimport { getContractAddress, CONTRACT_ADDRESSES } from \"../config/addresses\";\nimport { createClient } from \"../core/client\";\nimport { vanaMainnet } from \"../config/chains\";\n\n// Cache for contract instances - keyed by contract name and chain ID\nconst contractCache = new Map<string, GetContractReturnType<Abi>>();\n\n// Export cache for testing\nexport const __contractCache = contractCache;\n\n/**\n * Creates a cache key for contract instances\n *\n * @param contract - The contract name to create a cache key for\n * @param chainId - The chain ID to include in the cache key\n * @returns A string cache key combining contract name and chain ID\n */\nfunction createCacheKey(contract: VanaContract, chainId: number): string {\n return `${contract}:${chainId}`;\n}\n\n/**\n * Gets a typed contract instance for the specified contract name with full type inference.\n * This function provides complete type safety following viem's patterns.\n *\n * @param contract - Name of the contract to instantiate (must be a const assertion for full typing)\n * @param client - Optional viem client instance\n * @returns A fully typed contract instance with methods corresponding to the contract's ABI\n * @example\n * ```typescript\n * // Full type inference with const assertion\n * const dataRegistry = getContractController(\"DataRegistry\" as const, client);\n *\n * // Now dataRegistry has full type inference for all methods\n * const result = await dataRegistry.read.getFileCount(); // Type: bigint\n * await dataRegistry.write.addFile([url, proof]); // Typed parameters\n * ```\n */\nexport function getContractController<T extends VanaContract>(\n contract: T,\n client:\n | PublicClient\n | WalletClient\n | ReturnType<typeof createClient> = createClient(),\n): GetContractReturnType<ContractAbis[T]> {\n const chainId = client.chain?.id ?? vanaMainnet.id;\n const cacheKey = createCacheKey(contract, chainId);\n\n let controller = contractCache.get(cacheKey);\n\n if (!controller) {\n controller = getContract({\n address: getContractAddress(chainId, contract),\n abi: getAbi(contract),\n client,\n }) as GetContractReturnType<ContractAbis[T]>;\n\n contractCache.set(cacheKey, controller);\n }\n\n return controller as GetContractReturnType<ContractAbis[T]>;\n}\n\n/**\n * Gets contract information (address and ABI) without creating a contract instance.\n * Useful for cases where you need contract details but don't want to create a client connection.\n *\n * @param contract - Name of the contract\n * @param chainId - Chain ID (defaults to Vana mainnet)\n * @returns Contract information with typed ABI\n * @example\n * ```typescript\n * const info = getContractInfo(\"DataRegistry\" as const, 14800);\n * console.log(info.address); // Typed as Address\n * console.log(info.abi); // Fully typed ABI\n * ```\n */\nexport function getContractInfo<T extends VanaContract>(\n contract: T,\n chainId: VanaChainId = vanaMainnet.id as VanaChainId,\n): ContractInfo<ContractAbis[T]> {\n return {\n address: getContractAddress(chainId, contract),\n abi: getAbi(contract),\n };\n}\n\n/**\n * Type-safe contract factory that creates contract instances with full type inference.\n * This provides an alternative API that's more explicit about typing.\n */\nexport class ContractFactory {\n private readonly client:\n | PublicClient\n | WalletClient\n | ReturnType<typeof createClient>;\n private readonly chainId: number;\n\n constructor(\n client: PublicClient | WalletClient | ReturnType<typeof createClient>,\n ) {\n this.client = client;\n try {\n this.chainId = client.chain?.id ?? vanaMainnet.id;\n } catch {\n this.chainId = vanaMainnet.id;\n }\n }\n\n /**\n * Creates a typed contract instance\n *\n * @param contract - Contract name (use const assertion for full typing)\n * @returns Fully typed contract instance\n */\n create<T extends VanaContract>(\n contract: T,\n ): GetContractReturnType<ContractAbis[T]> {\n return getContractController(contract, this.client);\n }\n\n /**\n * Gets contract information without creating an instance\n *\n * @param contract - Contract name\n * @returns Contract information with typed ABI\n */\n getInfo<T extends VanaContract>(contract: T): ContractInfo<ContractAbis[T]> {\n return getContractInfo(contract, this.chainId as VanaChainId);\n }\n\n /**\n * Lists all available contracts for the current chain\n *\n * @returns Array of contract names available on this chain\n */\n getAvailableContracts(): VanaContract[] {\n // Return all contract names that have addresses on this chain\n const chainAddresses = CONTRACT_ADDRESSES[this.chainId];\n if (!chainAddresses) return [];\n\n return Object.keys(chainAddresses) as VanaContract[];\n }\n}\n\n/**\n * Clears the contract cache. Useful for testing or when chain configurations change.\n *\n * @param contract - Optional specific contract to clear, or clear all if not provided\n * @param chainId - Optional specific chain to clear, or clear all if not provided\n */\nexport function clearContractCache(\n contract?: VanaContract,\n chainId?: number,\n): void {\n if (contract && chainId) {\n const cacheKey = createCacheKey(contract, chainId);\n contractCache.delete(cacheKey);\n } else if (contract) {\n // Clear all instances of this contract across all chains\n for (const key of contractCache.keys()) {\n if (key.startsWith(`${contract}:`)) {\n contractCache.delete(key);\n }\n }\n } else if (chainId) {\n // Clear all contracts for this chain\n for (const key of contractCache.keys()) {\n if (key.endsWith(`:${chainId}`)) {\n contractCache.delete(key);\n }\n }\n } else {\n // Clear entire cache\n contractCache.clear();\n }\n}\n\n// Function is already exported above, no need for redundant export\n\n// Type-only exports for enhanced type safety\nexport type { GetContractReturnType } from \"viem\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAKO;AACP,iBAA6D;AAE7D,uBAAuD;AACvD,oBAA6B;AAC7B,oBAA4B;AAG5B,MAAM,gBAAgB,oBAAI,IAAwC;AAG3D,MAAM,kBAAkB;AAS/B,SAAS,eAAe,UAAwB,SAAyB;AACvE,SAAO,GAAG,QAAQ,IAAI,OAAO;AAC/B;AAmBO,SAAS,sBACd,UACA,aAGsC,4BAAa,GACX;AACxC,QAAM,UAAU,OAAO,OAAO,MAAM,0BAAY;AAChD,QAAM,WAAW,eAAe,UAAU,OAAO;AAEjD,MAAI,aAAa,cAAc,IAAI,QAAQ;AAE3C,MAAI,CAAC,YAAY;AACf,qBAAa,yBAAY;AAAA,MACvB,aAAS,qCAAmB,SAAS,QAAQ;AAAA,MAC7C,SAAK,mBAAO,QAAQ;AAAA,MACpB;AAAA,IACF,CAAC;AAED,kBAAc,IAAI,UAAU,UAAU;AAAA,EACxC;AAEA,SAAO;AACT;AAgBO,SAAS,gBACd,UACA,UAAuB,0BAAY,IACJ;AAC/B,SAAO;AAAA,IACL,aAAS,qCAAmB,SAAS,QAAQ;AAAA,IAC7C,SAAK,mBAAO,QAAQ;AAAA,EACtB;AACF;AAMO,MAAM,gBAAgB;AAAA,EACV;AAAA,EAIA;AAAA,EAEjB,YACE,QACA;AACA,SAAK,SAAS;AACd,QAAI;AACF,WAAK,UAAU,OAAO,OAAO,MAAM,0BAAY;AAAA,IACjD,QAAQ;AACN,WAAK,UAAU,0BAAY;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OACE,UACwC;AACxC,WAAO,sBAAsB,UAAU,KAAK,MAAM;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAgC,UAA4C;AAC1E,WAAO,gBAAgB,UAAU,KAAK,OAAsB;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwC;AAEtC,UAAM,iBAAiB,oCAAmB,KAAK,OAAO;AACtD,QAAI,CAAC,eAAgB,QAAO,CAAC;AAE7B,WAAO,OAAO,KAAK,cAAc;AAAA,EACnC;AACF;AAQO,SAAS,mBACd,UACA,SACM;AACN,MAAI,YAAY,SAAS;AACvB,UAAM,WAAW,eAAe,UAAU,OAAO;AACjD,kBAAc,OAAO,QAAQ;AAAA,EAC/B,WAAW,UAAU;AAEnB,eAAW,OAAO,cAAc,KAAK,GAAG;AACtC,UAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,GAAG;AAClC,sBAAc,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,WAAW,SAAS;AAElB,eAAW,OAAO,cAAc,KAAK,GAAG;AACtC,UAAI,IAAI,SAAS,IAAI,OAAO,EAAE,GAAG;AAC/B,sBAAc,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,OAAO;AAEL,kBAAc,MAAM;AAAA,EACtB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/contracts/contractController.ts"],"sourcesContent":["/**\n * Provides type-safe contract interaction utilities for the Vana protocol.\n *\n * @remarks\n * This module enables strongly-typed smart contract interactions with automatic\n * ABI loading, address resolution, and instance caching. It follows viem's patterns\n * for contract typing while providing Vana-specific conveniences.\n *\n * @category Contracts\n * @module contractController\n */\n\nimport type { Abi } from \"abitype\";\nimport {\n getContract,\n type GetContractReturnType,\n type PublicClient,\n type WalletClient,\n} from \"viem\";\nimport { type ContractAbis, getAbi, type VanaContract } from \"../generated/abi\";\nimport type { VanaChainId, ContractInfo } from \"../types/index\";\nimport { getContractAddress, CONTRACT_ADDRESSES } from \"../config/addresses\";\nimport { createClient } from \"../core/client\";\nimport { vanaMainnet } from \"../config/chains\";\n\n// Cache for contract instances - keyed by contract name and chain ID\nconst contractCache = new Map<string, GetContractReturnType<Abi>>();\n\n// Export cache for testing\nexport const contractCacheForTesting = contractCache;\n\n/**\n * Creates a cache key for contract instances.\n *\n * @remarks\n * Generates unique keys for caching contract instances per chain to prevent\n * cross-chain contamination and improve performance.\n *\n * @param contract - The contract name to create a cache key for\n * @param chainId - The chain ID to include in the cache key\n * @returns A string cache key combining contract name and chain ID\n *\n * @internal\n */\nfunction createCacheKey(contract: VanaContract, chainId: number): string {\n return `${contract}:${chainId}`;\n}\n\n/**\n * Gets a typed contract instance for the specified contract name.\n *\n * @remarks\n * Provides complete type safety following viem's patterns with automatic\n * ABI loading and address resolution. Contract instances are cached per\n * chain for performance. Use const assertion for full type inference.\n *\n * @param contract - Name of the contract to instantiate.\n * Use const assertion for full typing: `\"DataRegistry\" as const`\n * @param client - Optional viem client instance.\n * Defaults to auto-configured client. Obtain via `createClient()` or viem.\n * @returns A fully typed contract instance with methods corresponding to the contract's ABI\n *\n * @example\n * ```typescript\n * // Full type inference with const assertion\n * const dataRegistry = getContractController(\"DataRegistry\" as const, client);\n *\n * // Now dataRegistry has full type inference for all methods\n * const result = await dataRegistry.read.getFileCount(); // Type: bigint\n * await dataRegistry.write.addFile([url, proof]); // Typed parameters\n *\n * // Auto-configured client\n * const permissions = getContractController(\"DataPortabilityPermissions\" as const);\n * const granted = await permissions.read.hasPermission([grantor, grantee]);\n * ```\n *\n * @category Contracts\n */\nexport function getContractController<T extends VanaContract>(\n contract: T,\n client:\n | PublicClient\n | WalletClient\n | ReturnType<typeof createClient> = createClient(),\n): GetContractReturnType<ContractAbis[T]> {\n const chainId = client.chain?.id ?? vanaMainnet.id;\n const cacheKey = createCacheKey(contract, chainId);\n\n let controller = contractCache.get(cacheKey);\n\n if (!controller) {\n controller = getContract({\n address: getContractAddress(chainId, contract),\n abi: getAbi(contract),\n client,\n }) as GetContractReturnType<ContractAbis[T]>;\n\n contractCache.set(cacheKey, controller);\n }\n\n return controller as GetContractReturnType<ContractAbis[T]>;\n}\n\n/**\n * Gets contract information without creating a contract instance.\n *\n * @remarks\n * Returns contract address and ABI for manual contract interaction or\n * custom client configuration. Useful when you need contract details\n * but don't want to create a client connection.\n *\n * @param contract - Name of the contract.\n * Use const assertion for typed ABI.\n * @param chainId - Chain ID to get contract info for.\n * Defaults to Vana mainnet (1480).\n * @returns Contract information with typed ABI\n *\n * @example\n * ```typescript\n * const info = getContractInfo(\"DataRegistry\" as const, 14800);\n * console.log(info.address); // Typed as Address\n * console.log(info.abi); // Fully typed ABI\n *\n * // Use with custom viem client\n * const contract = getContract({\n * ...info,\n * client: customClient\n * });\n * ```\n *\n * @category Contracts\n */\nexport function getContractInfo<T extends VanaContract>(\n contract: T,\n chainId: VanaChainId = vanaMainnet.id as VanaChainId,\n): ContractInfo<ContractAbis[T]> {\n return {\n address: getContractAddress(chainId, contract),\n abi: getAbi(contract),\n };\n}\n\n/**\n * Provides type-safe contract factory for creating multiple contract instances.\n *\n * @remarks\n * Alternative API for applications that need to create multiple contracts\n * with the same client. The factory pattern reduces boilerplate and ensures\n * consistent client configuration across contracts.\n *\n * @example\n * ```typescript\n * const factory = new ContractFactory(client);\n *\n * const dataRegistry = factory.create(\"DataRegistry\" as const);\n * const permissions = factory.create(\"DataPortabilityPermissions\" as const);\n *\n * // List available contracts\n * const contracts = factory.getAvailableContracts();\n * ```\n *\n * @category Contracts\n */\nexport class ContractFactory {\n private readonly client:\n | PublicClient\n | WalletClient\n | ReturnType<typeof createClient>;\n private readonly chainId: number;\n\n constructor(\n client: PublicClient | WalletClient | ReturnType<typeof createClient>,\n ) {\n this.client = client;\n try {\n this.chainId = client.chain?.id ?? vanaMainnet.id;\n } catch {\n this.chainId = vanaMainnet.id;\n }\n }\n\n /**\n * Creates a typed contract instance\n *\n * @param contract - Contract name (use const assertion for full typing)\n * @returns Fully typed contract instance\n */\n create<T extends VanaContract>(\n contract: T,\n ): GetContractReturnType<ContractAbis[T]> {\n return getContractController(contract, this.client);\n }\n\n /**\n * Gets contract information without creating an instance\n *\n * @param contract - Contract name\n * @returns Contract information with typed ABI\n */\n getInfo<T extends VanaContract>(contract: T): ContractInfo<ContractAbis[T]> {\n return getContractInfo(contract, this.chainId as VanaChainId);\n }\n\n /**\n * Lists all available contracts for the current chain\n *\n * @returns Array of contract names available on this chain\n */\n getAvailableContracts(): VanaContract[] {\n // Return all contract names that have addresses on this chain\n const chainAddresses = CONTRACT_ADDRESSES[this.chainId];\n if (!chainAddresses) return [];\n\n return Object.keys(chainAddresses) as VanaContract[];\n }\n}\n\n/**\n * Clears the contract cache. Useful for testing or when chain configurations change.\n *\n * @param contract - Optional specific contract to clear, or clear all if not provided\n * @param chainId - Optional specific chain to clear, or clear all if not provided\n */\nexport function clearContractCache(\n contract?: VanaContract,\n chainId?: number,\n): void {\n if (contract && chainId) {\n const cacheKey = createCacheKey(contract, chainId);\n contractCache.delete(cacheKey);\n } else if (contract) {\n // Clear all instances of this contract across all chains\n for (const key of contractCache.keys()) {\n if (key.startsWith(`${contract}:`)) {\n contractCache.delete(key);\n }\n }\n } else if (chainId) {\n // Clear all contracts for this chain\n for (const key of contractCache.keys()) {\n if (key.endsWith(`:${chainId}`)) {\n contractCache.delete(key);\n }\n }\n } else {\n // Clear entire cache\n contractCache.clear();\n }\n}\n\n// Function is already exported above, no need for redundant export\n\n// Type-only exports for enhanced type safety\nexport type { GetContractReturnType } from \"viem\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,kBAKO;AACP,iBAA6D;AAE7D,uBAAuD;AACvD,oBAA6B;AAC7B,oBAA4B;AAG5B,MAAM,gBAAgB,oBAAI,IAAwC;AAG3D,MAAM,0BAA0B;AAevC,SAAS,eAAe,UAAwB,SAAyB;AACvE,SAAO,GAAG,QAAQ,IAAI,OAAO;AAC/B;AAgCO,SAAS,sBACd,UACA,aAGsC,4BAAa,GACX;AACxC,QAAM,UAAU,OAAO,OAAO,MAAM,0BAAY;AAChD,QAAM,WAAW,eAAe,UAAU,OAAO;AAEjD,MAAI,aAAa,cAAc,IAAI,QAAQ;AAE3C,MAAI,CAAC,YAAY;AACf,qBAAa,yBAAY;AAAA,MACvB,aAAS,qCAAmB,SAAS,QAAQ;AAAA,MAC7C,SAAK,mBAAO,QAAQ;AAAA,MACpB;AAAA,IACF,CAAC;AAED,kBAAc,IAAI,UAAU,UAAU;AAAA,EACxC;AAEA,SAAO;AACT;AA+BO,SAAS,gBACd,UACA,UAAuB,0BAAY,IACJ;AAC/B,SAAO;AAAA,IACL,aAAS,qCAAmB,SAAS,QAAQ;AAAA,IAC7C,SAAK,mBAAO,QAAQ;AAAA,EACtB;AACF;AAuBO,MAAM,gBAAgB;AAAA,EACV;AAAA,EAIA;AAAA,EAEjB,YACE,QACA;AACA,SAAK,SAAS;AACd,QAAI;AACF,WAAK,UAAU,OAAO,OAAO,MAAM,0BAAY;AAAA,IACjD,QAAQ;AACN,WAAK,UAAU,0BAAY;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OACE,UACwC;AACxC,WAAO,sBAAsB,UAAU,KAAK,MAAM;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAgC,UAA4C;AAC1E,WAAO,gBAAgB,UAAU,KAAK,OAAsB;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwC;AAEtC,UAAM,iBAAiB,oCAAmB,KAAK,OAAO;AACtD,QAAI,CAAC,eAAgB,QAAO,CAAC;AAE7B,WAAO,OAAO,KAAK,cAAc;AAAA,EACnC;AACF;AAQO,SAAS,mBACd,UACA,SACM;AACN,MAAI,YAAY,SAAS;AACvB,UAAM,WAAW,eAAe,UAAU,OAAO;AACjD,kBAAc,OAAO,QAAQ;AAAA,EAC/B,WAAW,UAAU;AAEnB,eAAW,OAAO,cAAc,KAAK,GAAG;AACtC,UAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,GAAG;AAClC,sBAAc,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,WAAW,SAAS;AAElB,eAAW,OAAO,cAAc,KAAK,GAAG;AACtC,UAAI,IAAI,SAAS,IAAI,OAAO,EAAE,GAAG;AAC/B,sBAAc,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,OAAO;AAEL,kBAAc,MAAM;AAAA,EACtB;AACF;","names":[]}
@@ -1,35 +1,37 @@
1
- import { Abi } from 'abitype';
2
- import { PublicClient, WalletClient, GetContractReturnType } from 'viem';
3
- export { GetContractReturnType } from 'viem';
4
- import { VanaContract, ContractAbis } from '../generated/abi/index.js';
5
- import { VanaChainId } from '../types/chains.js';
6
- import { ContractInfo } from '../types/contracts.js';
7
- import { createClient } from '../core/client.js';
8
- import '../generated/abi/DataPortabilityPermissionsImplementation.js';
9
- import '../generated/abi/DataPortabilityServersImplementation.js';
10
- import '../generated/abi/DataPortabilityGranteesImplementation.js';
11
- import '../generated/abi/VanaEpochImplementation.js';
12
- import '../generated/abi/DLPRegistryImplementation.js';
13
- import '../generated/abi/DLPTreasuryImplementation.js';
14
- import '../generated/abi/DLPRewardDeployerTreasuryImplementation.js';
15
- import '../generated/abi/DLPPerformanceImplementation.js';
16
- import '../generated/abi/DLPRewardDeployerImplementation.js';
17
- import '../generated/abi/DLPRootImplementation.js';
18
- import '../generated/abi/DataLiquidityPoolImplementation.js';
19
- import '../generated/abi/DLPRegistryTreasuryImplementation.js';
20
- import '../config/chains.js';
21
-
22
- declare const __contractCache: Map<string, {
1
+ /**
2
+ * Provides type-safe contract interaction utilities for the Vana protocol.
3
+ *
4
+ * @remarks
5
+ * This module enables strongly-typed smart contract interactions with automatic
6
+ * ABI loading, address resolution, and instance caching. It follows viem's patterns
7
+ * for contract typing while providing Vana-specific conveniences.
8
+ *
9
+ * @category Contracts
10
+ * @module contractController
11
+ */
12
+ import type { Abi } from "abitype";
13
+ import { type GetContractReturnType, type PublicClient, type WalletClient } from "viem";
14
+ import { type ContractAbis, type VanaContract } from "../generated/abi";
15
+ import type { VanaChainId, ContractInfo } from "../types/index";
16
+ import { createClient } from "../core/client";
17
+ export declare const contractCacheForTesting: Map<string, {
23
18
  address: `0x${string}`;
24
19
  abi: Abi;
25
20
  }>;
26
21
  /**
27
- * Gets a typed contract instance for the specified contract name with full type inference.
28
- * This function provides complete type safety following viem's patterns.
22
+ * Gets a typed contract instance for the specified contract name.
23
+ *
24
+ * @remarks
25
+ * Provides complete type safety following viem's patterns with automatic
26
+ * ABI loading and address resolution. Contract instances are cached per
27
+ * chain for performance. Use const assertion for full type inference.
29
28
  *
30
- * @param contract - Name of the contract to instantiate (must be a const assertion for full typing)
31
- * @param client - Optional viem client instance
29
+ * @param contract - Name of the contract to instantiate.
30
+ * Use const assertion for full typing: `"DataRegistry" as const`
31
+ * @param client - Optional viem client instance.
32
+ * Defaults to auto-configured client. Obtain via `createClient()` or viem.
32
33
  * @returns A fully typed contract instance with methods corresponding to the contract's ABI
34
+ *
33
35
  * @example
34
36
  * ```typescript
35
37
  * // Full type inference with const assertion
@@ -38,29 +40,67 @@ declare const __contractCache: Map<string, {
38
40
  * // Now dataRegistry has full type inference for all methods
39
41
  * const result = await dataRegistry.read.getFileCount(); // Type: bigint
40
42
  * await dataRegistry.write.addFile([url, proof]); // Typed parameters
43
+ *
44
+ * // Auto-configured client
45
+ * const permissions = getContractController("DataPortabilityPermissions" as const);
46
+ * const granted = await permissions.read.hasPermission([grantor, grantee]);
41
47
  * ```
48
+ *
49
+ * @category Contracts
42
50
  */
43
- declare function getContractController<T extends VanaContract>(contract: T, client?: PublicClient | WalletClient | ReturnType<typeof createClient>): GetContractReturnType<ContractAbis[T]>;
51
+ export declare function getContractController<T extends VanaContract>(contract: T, client?: PublicClient | WalletClient | ReturnType<typeof createClient>): GetContractReturnType<ContractAbis[T]>;
44
52
  /**
45
- * Gets contract information (address and ABI) without creating a contract instance.
46
- * Useful for cases where you need contract details but don't want to create a client connection.
53
+ * Gets contract information without creating a contract instance.
47
54
  *
48
- * @param contract - Name of the contract
49
- * @param chainId - Chain ID (defaults to Vana mainnet)
55
+ * @remarks
56
+ * Returns contract address and ABI for manual contract interaction or
57
+ * custom client configuration. Useful when you need contract details
58
+ * but don't want to create a client connection.
59
+ *
60
+ * @param contract - Name of the contract.
61
+ * Use const assertion for typed ABI.
62
+ * @param chainId - Chain ID to get contract info for.
63
+ * Defaults to Vana mainnet (1480).
50
64
  * @returns Contract information with typed ABI
65
+ *
51
66
  * @example
52
67
  * ```typescript
53
68
  * const info = getContractInfo("DataRegistry" as const, 14800);
54
69
  * console.log(info.address); // Typed as Address
55
70
  * console.log(info.abi); // Fully typed ABI
71
+ *
72
+ * // Use with custom viem client
73
+ * const contract = getContract({
74
+ * ...info,
75
+ * client: customClient
76
+ * });
56
77
  * ```
78
+ *
79
+ * @category Contracts
57
80
  */
58
- declare function getContractInfo<T extends VanaContract>(contract: T, chainId?: VanaChainId): ContractInfo<ContractAbis[T]>;
81
+ export declare function getContractInfo<T extends VanaContract>(contract: T, chainId?: VanaChainId): ContractInfo<ContractAbis[T]>;
59
82
  /**
60
- * Type-safe contract factory that creates contract instances with full type inference.
61
- * This provides an alternative API that's more explicit about typing.
83
+ * Provides type-safe contract factory for creating multiple contract instances.
84
+ *
85
+ * @remarks
86
+ * Alternative API for applications that need to create multiple contracts
87
+ * with the same client. The factory pattern reduces boilerplate and ensures
88
+ * consistent client configuration across contracts.
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * const factory = new ContractFactory(client);
93
+ *
94
+ * const dataRegistry = factory.create("DataRegistry" as const);
95
+ * const permissions = factory.create("DataPortabilityPermissions" as const);
96
+ *
97
+ * // List available contracts
98
+ * const contracts = factory.getAvailableContracts();
99
+ * ```
100
+ *
101
+ * @category Contracts
62
102
  */
63
- declare class ContractFactory {
103
+ export declare class ContractFactory {
64
104
  private readonly client;
65
105
  private readonly chainId;
66
106
  constructor(client: PublicClient | WalletClient | ReturnType<typeof createClient>);
@@ -91,6 +131,5 @@ declare class ContractFactory {
91
131
  * @param contract - Optional specific contract to clear, or clear all if not provided
92
132
  * @param chainId - Optional specific chain to clear, or clear all if not provided
93
133
  */
94
- declare function clearContractCache(contract?: VanaContract, chainId?: number): void;
95
-
96
- export { ContractFactory, __contractCache, clearContractCache, getContractController, getContractInfo };
134
+ export declare function clearContractCache(contract?: VanaContract, chainId?: number): void;
135
+ export type { GetContractReturnType } from "viem";
@@ -1,6 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
1
  import {
5
2
  getContract
6
3
  } from "viem";
@@ -9,7 +6,7 @@ import { getContractAddress, CONTRACT_ADDRESSES } from "../config/addresses";
9
6
  import { createClient } from "../core/client";
10
7
  import { vanaMainnet } from "../config/chains";
11
8
  const contractCache = /* @__PURE__ */ new Map();
12
- const __contractCache = contractCache;
9
+ const contractCacheForTesting = contractCache;
13
10
  function createCacheKey(contract, chainId) {
14
11
  return `${contract}:${chainId}`;
15
12
  }
@@ -34,9 +31,9 @@ function getContractInfo(contract, chainId = vanaMainnet.id) {
34
31
  };
35
32
  }
36
33
  class ContractFactory {
34
+ client;
35
+ chainId;
37
36
  constructor(client) {
38
- __publicField(this, "client");
39
- __publicField(this, "chainId");
40
37
  this.client = client;
41
38
  try {
42
39
  this.chainId = client.chain?.id ?? vanaMainnet.id;
@@ -95,8 +92,8 @@ function clearContractCache(contract, chainId) {
95
92
  }
96
93
  export {
97
94
  ContractFactory,
98
- __contractCache,
99
95
  clearContractCache,
96
+ contractCacheForTesting,
100
97
  getContractController,
101
98
  getContractInfo
102
99
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/contracts/contractController.ts"],"sourcesContent":["import type { Abi } from \"abitype\";\nimport {\n getContract,\n type GetContractReturnType,\n type PublicClient,\n type WalletClient,\n} from \"viem\";\nimport { type ContractAbis, getAbi, type VanaContract } from \"../generated/abi\";\nimport type { VanaChainId, ContractInfo } from \"../types/index\";\nimport { getContractAddress, CONTRACT_ADDRESSES } from \"../config/addresses\";\nimport { createClient } from \"../core/client\";\nimport { vanaMainnet } from \"../config/chains\";\n\n// Cache for contract instances - keyed by contract name and chain ID\nconst contractCache = new Map<string, GetContractReturnType<Abi>>();\n\n// Export cache for testing\nexport const __contractCache = contractCache;\n\n/**\n * Creates a cache key for contract instances\n *\n * @param contract - The contract name to create a cache key for\n * @param chainId - The chain ID to include in the cache key\n * @returns A string cache key combining contract name and chain ID\n */\nfunction createCacheKey(contract: VanaContract, chainId: number): string {\n return `${contract}:${chainId}`;\n}\n\n/**\n * Gets a typed contract instance for the specified contract name with full type inference.\n * This function provides complete type safety following viem's patterns.\n *\n * @param contract - Name of the contract to instantiate (must be a const assertion for full typing)\n * @param client - Optional viem client instance\n * @returns A fully typed contract instance with methods corresponding to the contract's ABI\n * @example\n * ```typescript\n * // Full type inference with const assertion\n * const dataRegistry = getContractController(\"DataRegistry\" as const, client);\n *\n * // Now dataRegistry has full type inference for all methods\n * const result = await dataRegistry.read.getFileCount(); // Type: bigint\n * await dataRegistry.write.addFile([url, proof]); // Typed parameters\n * ```\n */\nexport function getContractController<T extends VanaContract>(\n contract: T,\n client:\n | PublicClient\n | WalletClient\n | ReturnType<typeof createClient> = createClient(),\n): GetContractReturnType<ContractAbis[T]> {\n const chainId = client.chain?.id ?? vanaMainnet.id;\n const cacheKey = createCacheKey(contract, chainId);\n\n let controller = contractCache.get(cacheKey);\n\n if (!controller) {\n controller = getContract({\n address: getContractAddress(chainId, contract),\n abi: getAbi(contract),\n client,\n }) as GetContractReturnType<ContractAbis[T]>;\n\n contractCache.set(cacheKey, controller);\n }\n\n return controller as GetContractReturnType<ContractAbis[T]>;\n}\n\n/**\n * Gets contract information (address and ABI) without creating a contract instance.\n * Useful for cases where you need contract details but don't want to create a client connection.\n *\n * @param contract - Name of the contract\n * @param chainId - Chain ID (defaults to Vana mainnet)\n * @returns Contract information with typed ABI\n * @example\n * ```typescript\n * const info = getContractInfo(\"DataRegistry\" as const, 14800);\n * console.log(info.address); // Typed as Address\n * console.log(info.abi); // Fully typed ABI\n * ```\n */\nexport function getContractInfo<T extends VanaContract>(\n contract: T,\n chainId: VanaChainId = vanaMainnet.id as VanaChainId,\n): ContractInfo<ContractAbis[T]> {\n return {\n address: getContractAddress(chainId, contract),\n abi: getAbi(contract),\n };\n}\n\n/**\n * Type-safe contract factory that creates contract instances with full type inference.\n * This provides an alternative API that's more explicit about typing.\n */\nexport class ContractFactory {\n private readonly client:\n | PublicClient\n | WalletClient\n | ReturnType<typeof createClient>;\n private readonly chainId: number;\n\n constructor(\n client: PublicClient | WalletClient | ReturnType<typeof createClient>,\n ) {\n this.client = client;\n try {\n this.chainId = client.chain?.id ?? vanaMainnet.id;\n } catch {\n this.chainId = vanaMainnet.id;\n }\n }\n\n /**\n * Creates a typed contract instance\n *\n * @param contract - Contract name (use const assertion for full typing)\n * @returns Fully typed contract instance\n */\n create<T extends VanaContract>(\n contract: T,\n ): GetContractReturnType<ContractAbis[T]> {\n return getContractController(contract, this.client);\n }\n\n /**\n * Gets contract information without creating an instance\n *\n * @param contract - Contract name\n * @returns Contract information with typed ABI\n */\n getInfo<T extends VanaContract>(contract: T): ContractInfo<ContractAbis[T]> {\n return getContractInfo(contract, this.chainId as VanaChainId);\n }\n\n /**\n * Lists all available contracts for the current chain\n *\n * @returns Array of contract names available on this chain\n */\n getAvailableContracts(): VanaContract[] {\n // Return all contract names that have addresses on this chain\n const chainAddresses = CONTRACT_ADDRESSES[this.chainId];\n if (!chainAddresses) return [];\n\n return Object.keys(chainAddresses) as VanaContract[];\n }\n}\n\n/**\n * Clears the contract cache. Useful for testing or when chain configurations change.\n *\n * @param contract - Optional specific contract to clear, or clear all if not provided\n * @param chainId - Optional specific chain to clear, or clear all if not provided\n */\nexport function clearContractCache(\n contract?: VanaContract,\n chainId?: number,\n): void {\n if (contract && chainId) {\n const cacheKey = createCacheKey(contract, chainId);\n contractCache.delete(cacheKey);\n } else if (contract) {\n // Clear all instances of this contract across all chains\n for (const key of contractCache.keys()) {\n if (key.startsWith(`${contract}:`)) {\n contractCache.delete(key);\n }\n }\n } else if (chainId) {\n // Clear all contracts for this chain\n for (const key of contractCache.keys()) {\n if (key.endsWith(`:${chainId}`)) {\n contractCache.delete(key);\n }\n }\n } else {\n // Clear entire cache\n contractCache.clear();\n }\n}\n\n// Function is already exported above, no need for redundant export\n\n// Type-only exports for enhanced type safety\nexport type { GetContractReturnType } from \"viem\";\n"],"mappings":";;;AACA;AAAA,EACE;AAAA,OAIK;AACP,SAA4B,cAAiC;AAE7D,SAAS,oBAAoB,0BAA0B;AACvD,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAG5B,MAAM,gBAAgB,oBAAI,IAAwC;AAG3D,MAAM,kBAAkB;AAS/B,SAAS,eAAe,UAAwB,SAAyB;AACvE,SAAO,GAAG,QAAQ,IAAI,OAAO;AAC/B;AAmBO,SAAS,sBACd,UACA,SAGsC,aAAa,GACX;AACxC,QAAM,UAAU,OAAO,OAAO,MAAM,YAAY;AAChD,QAAM,WAAW,eAAe,UAAU,OAAO;AAEjD,MAAI,aAAa,cAAc,IAAI,QAAQ;AAE3C,MAAI,CAAC,YAAY;AACf,iBAAa,YAAY;AAAA,MACvB,SAAS,mBAAmB,SAAS,QAAQ;AAAA,MAC7C,KAAK,OAAO,QAAQ;AAAA,MACpB;AAAA,IACF,CAAC;AAED,kBAAc,IAAI,UAAU,UAAU;AAAA,EACxC;AAEA,SAAO;AACT;AAgBO,SAAS,gBACd,UACA,UAAuB,YAAY,IACJ;AAC/B,SAAO;AAAA,IACL,SAAS,mBAAmB,SAAS,QAAQ;AAAA,IAC7C,KAAK,OAAO,QAAQ;AAAA,EACtB;AACF;AAMO,MAAM,gBAAgB;AAAA,EAO3B,YACE,QACA;AARF,wBAAiB;AAIjB,wBAAiB;AAKf,SAAK,SAAS;AACd,QAAI;AACF,WAAK,UAAU,OAAO,OAAO,MAAM,YAAY;AAAA,IACjD,QAAQ;AACN,WAAK,UAAU,YAAY;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OACE,UACwC;AACxC,WAAO,sBAAsB,UAAU,KAAK,MAAM;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAgC,UAA4C;AAC1E,WAAO,gBAAgB,UAAU,KAAK,OAAsB;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwC;AAEtC,UAAM,iBAAiB,mBAAmB,KAAK,OAAO;AACtD,QAAI,CAAC,eAAgB,QAAO,CAAC;AAE7B,WAAO,OAAO,KAAK,cAAc;AAAA,EACnC;AACF;AAQO,SAAS,mBACd,UACA,SACM;AACN,MAAI,YAAY,SAAS;AACvB,UAAM,WAAW,eAAe,UAAU,OAAO;AACjD,kBAAc,OAAO,QAAQ;AAAA,EAC/B,WAAW,UAAU;AAEnB,eAAW,OAAO,cAAc,KAAK,GAAG;AACtC,UAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,GAAG;AAClC,sBAAc,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,WAAW,SAAS;AAElB,eAAW,OAAO,cAAc,KAAK,GAAG;AACtC,UAAI,IAAI,SAAS,IAAI,OAAO,EAAE,GAAG;AAC/B,sBAAc,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,OAAO;AAEL,kBAAc,MAAM;AAAA,EACtB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/contracts/contractController.ts"],"sourcesContent":["/**\n * Provides type-safe contract interaction utilities for the Vana protocol.\n *\n * @remarks\n * This module enables strongly-typed smart contract interactions with automatic\n * ABI loading, address resolution, and instance caching. It follows viem's patterns\n * for contract typing while providing Vana-specific conveniences.\n *\n * @category Contracts\n * @module contractController\n */\n\nimport type { Abi } from \"abitype\";\nimport {\n getContract,\n type GetContractReturnType,\n type PublicClient,\n type WalletClient,\n} from \"viem\";\nimport { type ContractAbis, getAbi, type VanaContract } from \"../generated/abi\";\nimport type { VanaChainId, ContractInfo } from \"../types/index\";\nimport { getContractAddress, CONTRACT_ADDRESSES } from \"../config/addresses\";\nimport { createClient } from \"../core/client\";\nimport { vanaMainnet } from \"../config/chains\";\n\n// Cache for contract instances - keyed by contract name and chain ID\nconst contractCache = new Map<string, GetContractReturnType<Abi>>();\n\n// Export cache for testing\nexport const contractCacheForTesting = contractCache;\n\n/**\n * Creates a cache key for contract instances.\n *\n * @remarks\n * Generates unique keys for caching contract instances per chain to prevent\n * cross-chain contamination and improve performance.\n *\n * @param contract - The contract name to create a cache key for\n * @param chainId - The chain ID to include in the cache key\n * @returns A string cache key combining contract name and chain ID\n *\n * @internal\n */\nfunction createCacheKey(contract: VanaContract, chainId: number): string {\n return `${contract}:${chainId}`;\n}\n\n/**\n * Gets a typed contract instance for the specified contract name.\n *\n * @remarks\n * Provides complete type safety following viem's patterns with automatic\n * ABI loading and address resolution. Contract instances are cached per\n * chain for performance. Use const assertion for full type inference.\n *\n * @param contract - Name of the contract to instantiate.\n * Use const assertion for full typing: `\"DataRegistry\" as const`\n * @param client - Optional viem client instance.\n * Defaults to auto-configured client. Obtain via `createClient()` or viem.\n * @returns A fully typed contract instance with methods corresponding to the contract's ABI\n *\n * @example\n * ```typescript\n * // Full type inference with const assertion\n * const dataRegistry = getContractController(\"DataRegistry\" as const, client);\n *\n * // Now dataRegistry has full type inference for all methods\n * const result = await dataRegistry.read.getFileCount(); // Type: bigint\n * await dataRegistry.write.addFile([url, proof]); // Typed parameters\n *\n * // Auto-configured client\n * const permissions = getContractController(\"DataPortabilityPermissions\" as const);\n * const granted = await permissions.read.hasPermission([grantor, grantee]);\n * ```\n *\n * @category Contracts\n */\nexport function getContractController<T extends VanaContract>(\n contract: T,\n client:\n | PublicClient\n | WalletClient\n | ReturnType<typeof createClient> = createClient(),\n): GetContractReturnType<ContractAbis[T]> {\n const chainId = client.chain?.id ?? vanaMainnet.id;\n const cacheKey = createCacheKey(contract, chainId);\n\n let controller = contractCache.get(cacheKey);\n\n if (!controller) {\n controller = getContract({\n address: getContractAddress(chainId, contract),\n abi: getAbi(contract),\n client,\n }) as GetContractReturnType<ContractAbis[T]>;\n\n contractCache.set(cacheKey, controller);\n }\n\n return controller as GetContractReturnType<ContractAbis[T]>;\n}\n\n/**\n * Gets contract information without creating a contract instance.\n *\n * @remarks\n * Returns contract address and ABI for manual contract interaction or\n * custom client configuration. Useful when you need contract details\n * but don't want to create a client connection.\n *\n * @param contract - Name of the contract.\n * Use const assertion for typed ABI.\n * @param chainId - Chain ID to get contract info for.\n * Defaults to Vana mainnet (1480).\n * @returns Contract information with typed ABI\n *\n * @example\n * ```typescript\n * const info = getContractInfo(\"DataRegistry\" as const, 14800);\n * console.log(info.address); // Typed as Address\n * console.log(info.abi); // Fully typed ABI\n *\n * // Use with custom viem client\n * const contract = getContract({\n * ...info,\n * client: customClient\n * });\n * ```\n *\n * @category Contracts\n */\nexport function getContractInfo<T extends VanaContract>(\n contract: T,\n chainId: VanaChainId = vanaMainnet.id as VanaChainId,\n): ContractInfo<ContractAbis[T]> {\n return {\n address: getContractAddress(chainId, contract),\n abi: getAbi(contract),\n };\n}\n\n/**\n * Provides type-safe contract factory for creating multiple contract instances.\n *\n * @remarks\n * Alternative API for applications that need to create multiple contracts\n * with the same client. The factory pattern reduces boilerplate and ensures\n * consistent client configuration across contracts.\n *\n * @example\n * ```typescript\n * const factory = new ContractFactory(client);\n *\n * const dataRegistry = factory.create(\"DataRegistry\" as const);\n * const permissions = factory.create(\"DataPortabilityPermissions\" as const);\n *\n * // List available contracts\n * const contracts = factory.getAvailableContracts();\n * ```\n *\n * @category Contracts\n */\nexport class ContractFactory {\n private readonly client:\n | PublicClient\n | WalletClient\n | ReturnType<typeof createClient>;\n private readonly chainId: number;\n\n constructor(\n client: PublicClient | WalletClient | ReturnType<typeof createClient>,\n ) {\n this.client = client;\n try {\n this.chainId = client.chain?.id ?? vanaMainnet.id;\n } catch {\n this.chainId = vanaMainnet.id;\n }\n }\n\n /**\n * Creates a typed contract instance\n *\n * @param contract - Contract name (use const assertion for full typing)\n * @returns Fully typed contract instance\n */\n create<T extends VanaContract>(\n contract: T,\n ): GetContractReturnType<ContractAbis[T]> {\n return getContractController(contract, this.client);\n }\n\n /**\n * Gets contract information without creating an instance\n *\n * @param contract - Contract name\n * @returns Contract information with typed ABI\n */\n getInfo<T extends VanaContract>(contract: T): ContractInfo<ContractAbis[T]> {\n return getContractInfo(contract, this.chainId as VanaChainId);\n }\n\n /**\n * Lists all available contracts for the current chain\n *\n * @returns Array of contract names available on this chain\n */\n getAvailableContracts(): VanaContract[] {\n // Return all contract names that have addresses on this chain\n const chainAddresses = CONTRACT_ADDRESSES[this.chainId];\n if (!chainAddresses) return [];\n\n return Object.keys(chainAddresses) as VanaContract[];\n }\n}\n\n/**\n * Clears the contract cache. Useful for testing or when chain configurations change.\n *\n * @param contract - Optional specific contract to clear, or clear all if not provided\n * @param chainId - Optional specific chain to clear, or clear all if not provided\n */\nexport function clearContractCache(\n contract?: VanaContract,\n chainId?: number,\n): void {\n if (contract && chainId) {\n const cacheKey = createCacheKey(contract, chainId);\n contractCache.delete(cacheKey);\n } else if (contract) {\n // Clear all instances of this contract across all chains\n for (const key of contractCache.keys()) {\n if (key.startsWith(`${contract}:`)) {\n contractCache.delete(key);\n }\n }\n } else if (chainId) {\n // Clear all contracts for this chain\n for (const key of contractCache.keys()) {\n if (key.endsWith(`:${chainId}`)) {\n contractCache.delete(key);\n }\n }\n } else {\n // Clear entire cache\n contractCache.clear();\n }\n}\n\n// Function is already exported above, no need for redundant export\n\n// Type-only exports for enhanced type safety\nexport type { GetContractReturnType } from \"viem\";\n"],"mappings":"AAaA;AAAA,EACE;AAAA,OAIK;AACP,SAA4B,cAAiC;AAE7D,SAAS,oBAAoB,0BAA0B;AACvD,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAG5B,MAAM,gBAAgB,oBAAI,IAAwC;AAG3D,MAAM,0BAA0B;AAevC,SAAS,eAAe,UAAwB,SAAyB;AACvE,SAAO,GAAG,QAAQ,IAAI,OAAO;AAC/B;AAgCO,SAAS,sBACd,UACA,SAGsC,aAAa,GACX;AACxC,QAAM,UAAU,OAAO,OAAO,MAAM,YAAY;AAChD,QAAM,WAAW,eAAe,UAAU,OAAO;AAEjD,MAAI,aAAa,cAAc,IAAI,QAAQ;AAE3C,MAAI,CAAC,YAAY;AACf,iBAAa,YAAY;AAAA,MACvB,SAAS,mBAAmB,SAAS,QAAQ;AAAA,MAC7C,KAAK,OAAO,QAAQ;AAAA,MACpB;AAAA,IACF,CAAC;AAED,kBAAc,IAAI,UAAU,UAAU;AAAA,EACxC;AAEA,SAAO;AACT;AA+BO,SAAS,gBACd,UACA,UAAuB,YAAY,IACJ;AAC/B,SAAO;AAAA,IACL,SAAS,mBAAmB,SAAS,QAAQ;AAAA,IAC7C,KAAK,OAAO,QAAQ;AAAA,EACtB;AACF;AAuBO,MAAM,gBAAgB;AAAA,EACV;AAAA,EAIA;AAAA,EAEjB,YACE,QACA;AACA,SAAK,SAAS;AACd,QAAI;AACF,WAAK,UAAU,OAAO,OAAO,MAAM,YAAY;AAAA,IACjD,QAAQ;AACN,WAAK,UAAU,YAAY;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OACE,UACwC;AACxC,WAAO,sBAAsB,UAAU,KAAK,MAAM;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAgC,UAA4C;AAC1E,WAAO,gBAAgB,UAAU,KAAK,OAAsB;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwC;AAEtC,UAAM,iBAAiB,mBAAmB,KAAK,OAAO;AACtD,QAAI,CAAC,eAAgB,QAAO,CAAC;AAE7B,WAAO,OAAO,KAAK,cAAc;AAAA,EACnC;AACF;AAQO,SAAS,mBACd,UACA,SACM;AACN,MAAI,YAAY,SAAS;AACvB,UAAM,WAAW,eAAe,UAAU,OAAO;AACjD,kBAAc,OAAO,QAAQ;AAAA,EAC/B,WAAW,UAAU;AAEnB,eAAW,OAAO,cAAc,KAAK,GAAG;AACtC,UAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,GAAG;AAClC,sBAAc,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,WAAW,SAAS;AAElB,eAAW,OAAO,cAAc,KAAK,GAAG;AACtC,UAAI,IAAI,SAAS,IAAI,OAAO,EAAE,GAAG;AAC/B,sBAAc,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,OAAO;AAEL,kBAAc,MAAM;AAAA,EACtB;AACF;","names":[]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,83 @@
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 base_exports = {};
20
+ __export(base_exports, {
21
+ BaseController: () => BaseController
22
+ });
23
+ module.exports = __toCommonJS(base_exports);
24
+ var import_errors = require("../errors");
25
+ class BaseController {
26
+ /**
27
+ * Creates a new controller instance with the provided context.
28
+ *
29
+ * @param context - The controller context containing clients and configuration
30
+ */
31
+ constructor(context) {
32
+ this.context = context;
33
+ }
34
+ /**
35
+ * Asserts that a wallet client with an account is available for operations requiring signing.
36
+ *
37
+ * @remarks
38
+ * This method uses TypeScript assertion signatures to narrow the type of
39
+ * `this.context` to guarantee that `walletClient` with an account is available
40
+ * after the call succeeds. This provides compile-time safety for wallet operations
41
+ * while enabling clear error messages for read-only scenarios.
42
+ *
43
+ * The assertion signature ensures that after calling this method,
44
+ * TypeScript knows that `this.context.walletClient` is definitely available
45
+ * with a configured account.
46
+ *
47
+ * @throws {ReadOnlyError} When no wallet client is configured
48
+ * @throws {Error} When wallet client exists but no account is configured
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * async performWalletOperation() {
53
+ * this.assertWallet(); // Type assertion + runtime check
54
+ *
55
+ * // TypeScript now knows walletClient and account are available
56
+ * const account = this.context.walletClient.account;
57
+ * const address = typeof account === 'string' ? account : account.address;
58
+ * }
59
+ * ```
60
+ */
61
+ assertWallet() {
62
+ if (!this.context.walletClient) {
63
+ const stack = new Error().stack;
64
+ const callingMethod = stack?.split("\n")[2]?.match(/at \w+\.(\w+)/)?.[1] ?? "this operation";
65
+ throw new import_errors.ReadOnlyError(
66
+ callingMethod,
67
+ "Initialize the SDK with a walletClient to perform this operation"
68
+ );
69
+ }
70
+ if (!this.context.walletClient.account) {
71
+ const stack = new Error().stack;
72
+ const callingMethod = stack?.split("\n")[2]?.match(/at \w+\.(\w+)/)?.[1] ?? "this operation";
73
+ throw new Error(
74
+ `No wallet account connected. Cannot perform ${callingMethod} without an account.`
75
+ );
76
+ }
77
+ }
78
+ }
79
+ // Annotate the CommonJS export names for ESM import in node:
80
+ 0 && (module.exports = {
81
+ BaseController
82
+ });
83
+ //# sourceMappingURL=base.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/base.ts"],"sourcesContent":["/**\n * Base controller class providing common functionality for all controllers.\n *\n * @remarks\n * This abstract class establishes the foundation for all Vana SDK controllers,\n * providing shared utilities like wallet validation and context management.\n * All controllers should extend this base class to ensure consistency and\n * shared behavior across the SDK.\n *\n * The class follows the Single Responsibility Principle by handling only\n * the core controller concerns while leaving specific functionality to\n * implementing classes.\n *\n * @category Controllers\n */\n\nimport type { WalletClient } from \"viem\";\nimport type { ControllerContext } from \"../types/controller-context\";\nimport { ReadOnlyError } from \"../errors\";\n\n/**\n * Abstract base controller that all Vana SDK controllers extend.\n *\n * @remarks\n * Provides common functionality and patterns used across all controllers,\n * including wallet validation and context management. This ensures\n * consistency and reduces code duplication throughout the SDK.\n *\n * Key features:\n * - Wallet client validation with TypeScript assertion signatures\n * - Consistent error handling for read-only scenarios\n * - Shared context management patterns\n * - Type-safe wallet operations\n *\n * @example\n * ```typescript\n * class MyController extends BaseController {\n * async performWalletOperation() {\n * this.assertWallet(); // Ensures wallet is available\n * // Now this.context.walletClient is guaranteed to be available\n * const address = await this.context.walletClient.getAddresses();\n * return address[0];\n * }\n * }\n * ```\n */\nexport abstract class BaseController {\n /**\n * Creates a new controller instance with the provided context.\n *\n * @param context - The controller context containing clients and configuration\n */\n constructor(protected readonly context: ControllerContext) {}\n\n /**\n * Asserts that a wallet client with an account is available for operations requiring signing.\n *\n * @remarks\n * This method uses TypeScript assertion signatures to narrow the type of\n * `this.context` to guarantee that `walletClient` with an account is available\n * after the call succeeds. This provides compile-time safety for wallet operations\n * while enabling clear error messages for read-only scenarios.\n *\n * The assertion signature ensures that after calling this method,\n * TypeScript knows that `this.context.walletClient` is definitely available\n * with a configured account.\n *\n * @throws {ReadOnlyError} When no wallet client is configured\n * @throws {Error} When wallet client exists but no account is configured\n *\n * @example\n * ```typescript\n * async performWalletOperation() {\n * this.assertWallet(); // Type assertion + runtime check\n *\n * // TypeScript now knows walletClient and account are available\n * const account = this.context.walletClient.account;\n * const address = typeof account === 'string' ? account : account.address;\n * }\n * ```\n */\n protected assertWallet(): asserts this is {\n context: ControllerContext & { walletClient: WalletClient };\n } {\n if (!this.context.walletClient) {\n // Get the calling method name from the stack trace for better error messages\n const stack = new Error().stack;\n const callingMethod =\n stack?.split(\"\\n\")[2]?.match(/at \\w+\\.(\\w+)/)?.[1] ?? \"this operation\";\n\n throw new ReadOnlyError(\n callingMethod,\n \"Initialize the SDK with a walletClient to perform this operation\",\n );\n }\n\n if (!this.context.walletClient.account) {\n // Get the calling method name from the stack trace for better error messages\n const stack = new Error().stack;\n const callingMethod =\n stack?.split(\"\\n\")[2]?.match(/at \\w+\\.(\\w+)/)?.[1] ?? \"this operation\";\n\n throw new Error(\n `No wallet account connected. Cannot perform ${callingMethod} without an account.`,\n );\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA,oBAA8B;AA4BvB,MAAe,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnC,YAA+B,SAA4B;AAA5B;AAAA,EAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6BlD,eAER;AACA,QAAI,CAAC,KAAK,QAAQ,cAAc;AAE9B,YAAM,QAAQ,IAAI,MAAM,EAAE;AAC1B,YAAM,gBACJ,OAAO,MAAM,IAAI,EAAE,CAAC,GAAG,MAAM,eAAe,IAAI,CAAC,KAAK;AAExD,YAAM,IAAI;AAAA,QACR;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,KAAK,QAAQ,aAAa,SAAS;AAEtC,YAAM,QAAQ,IAAI,MAAM,EAAE;AAC1B,YAAM,gBACJ,OAAO,MAAM,IAAI,EAAE,CAAC,GAAG,MAAM,eAAe,IAAI,CAAC,KAAK;AAExD,YAAM,IAAI;AAAA,QACR,+CAA+C,aAAa;AAAA,MAC9D;AAAA,IACF;AAAA,EACF;AACF;","names":[]}