@opendatalabs/vana-sdk 0.1.0-alpha.d7fc764 → 0.1.0-alpha.dc68f39

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 (667) hide show
  1. package/dist/__tests__/waitForTransactionEvents.test.d.ts +1 -0
  2. package/dist/browser.d.ts +4 -2
  3. package/dist/chains/definitions.cjs +9 -6
  4. package/dist/chains/definitions.cjs.map +1 -1
  5. package/dist/chains/definitions.d.ts +9 -11
  6. package/dist/chains/definitions.js +9 -6
  7. package/dist/chains/definitions.js.map +1 -1
  8. package/dist/chains/index.d.ts +5 -2
  9. package/dist/chains.browser.d.ts +8 -2
  10. package/dist/chains.d.ts +8 -2
  11. package/dist/chains.node.d.ts +8 -2
  12. package/dist/config/addresses.d.ts +8 -24
  13. package/dist/config/chains.d.ts +9 -13
  14. package/dist/config/default-services.cjs +60 -0
  15. package/dist/config/default-services.cjs.map +1 -0
  16. package/dist/config/default-services.d.ts +46 -0
  17. package/dist/config/default-services.js +33 -0
  18. package/dist/config/default-services.js.map +1 -0
  19. package/dist/config/default-services.test.d.ts +1 -0
  20. package/dist/config/features.d.ts +1 -3
  21. package/dist/config/tests/addresses.test.d.ts +1 -0
  22. package/dist/contracts/contractController.cjs +3 -3
  23. package/dist/contracts/contractController.cjs.map +1 -1
  24. package/dist/contracts/contractController.d.ts +11 -28
  25. package/dist/contracts/contractController.js +4 -7
  26. package/dist/contracts/contractController.js.map +1 -1
  27. package/dist/contracts/tests/contractController.test.d.ts +1 -0
  28. package/dist/controllers/__tests__/schemas-edge-cases.test.d.ts +1 -0
  29. package/dist/controllers/base.cjs +83 -0
  30. package/dist/controllers/base.cjs.map +1 -0
  31. package/dist/controllers/base.d.ts +84 -0
  32. package/dist/controllers/base.js +59 -0
  33. package/dist/controllers/base.js.map +1 -0
  34. package/dist/controllers/data-error-handling.test.d.ts +1 -0
  35. package/dist/controllers/data.cjs +415 -172
  36. package/dist/controllers/data.cjs.map +1 -1
  37. package/dist/controllers/data.d.ts +149 -76
  38. package/dist/controllers/data.js +415 -172
  39. package/dist/controllers/data.js.map +1 -1
  40. package/dist/controllers/permissions.cjs +508 -257
  41. package/dist/controllers/permissions.cjs.map +1 -1
  42. package/dist/controllers/permissions.d.ts +1348 -25
  43. package/dist/controllers/permissions.js +508 -257
  44. package/dist/controllers/permissions.js.map +1 -1
  45. package/dist/controllers/protocol.cjs +15 -11
  46. package/dist/controllers/protocol.cjs.map +1 -1
  47. package/dist/controllers/protocol.d.ts +7 -35
  48. package/dist/controllers/protocol.js +15 -14
  49. package/dist/controllers/protocol.js.map +1 -1
  50. package/dist/controllers/schemas.cjs +69 -54
  51. package/dist/controllers/schemas.cjs.map +1 -1
  52. package/dist/controllers/schemas.d.ts +9 -36
  53. package/dist/controllers/schemas.js +69 -54
  54. package/dist/controllers/schemas.js.map +1 -1
  55. package/dist/controllers/server-additional.test.d.ts +1 -0
  56. package/dist/controllers/server.cjs +15 -10
  57. package/dist/controllers/server.cjs.map +1 -1
  58. package/dist/controllers/server.d.ts +7 -33
  59. package/dist/controllers/server.js +15 -10
  60. package/dist/controllers/server.js.map +1 -1
  61. package/dist/core/apiClient.cjs +15 -12
  62. package/dist/core/apiClient.cjs.map +1 -1
  63. package/dist/core/apiClient.d.ts +5 -9
  64. package/dist/core/apiClient.js +19 -19
  65. package/dist/core/apiClient.js.map +1 -1
  66. package/dist/core/client.cjs +7 -7
  67. package/dist/core/client.cjs.map +1 -1
  68. package/dist/core/client.d.ts +6 -9
  69. package/dist/core/client.js +7 -7
  70. package/dist/core/client.js.map +1 -1
  71. package/dist/core/core.test.d.ts +1 -0
  72. package/dist/core/generics.cjs +11 -9
  73. package/dist/core/generics.cjs.map +1 -1
  74. package/dist/core/generics.d.ts +9 -13
  75. package/dist/core/generics.js +22 -29
  76. package/dist/core/generics.js.map +1 -1
  77. package/dist/core/tests/apiClient.test.d.ts +1 -0
  78. package/dist/core/tests/client.test.d.ts +1 -0
  79. package/dist/core/tests/generics.test.d.ts +1 -0
  80. package/dist/core.cjs +114 -48
  81. package/dist/core.cjs.map +1 -1
  82. package/dist/core.d.ts +40 -65
  83. package/dist/core.js +127 -74
  84. package/dist/core.js.map +1 -1
  85. package/dist/crypto/ecies/__tests__/base.test.d.ts +4 -0
  86. package/dist/crypto/ecies/__tests__/compatibility.test.d.ts +8 -0
  87. package/dist/crypto/ecies/__tests__/constants.test.d.ts +4 -0
  88. package/dist/crypto/ecies/__tests__/native-parity.test.d.ts +7 -0
  89. package/dist/crypto/ecies/__tests__/normalization.test.d.ts +1 -0
  90. package/dist/crypto/ecies/__tests__/test-vectors.d.ts +2 -4
  91. package/dist/crypto/ecies/base.cjs +4 -3
  92. package/dist/crypto/ecies/base.cjs.map +1 -1
  93. package/dist/crypto/ecies/base.d.ts +2 -5
  94. package/dist/crypto/ecies/base.js +12 -15
  95. package/dist/crypto/ecies/base.js.map +1 -1
  96. package/dist/crypto/ecies/browser.cjs +2 -1
  97. package/dist/crypto/ecies/browser.cjs.map +1 -1
  98. package/dist/crypto/ecies/browser.d.ts +2 -7
  99. package/dist/crypto/ecies/browser.js +2 -1
  100. package/dist/crypto/ecies/browser.js.map +1 -1
  101. package/dist/crypto/ecies/constants.d.ts +7 -9
  102. package/dist/crypto/ecies/index.d.ts +8 -1
  103. package/dist/crypto/ecies/interface.cjs +4 -5
  104. package/dist/crypto/ecies/interface.cjs.map +1 -1
  105. package/dist/crypto/ecies/interface.d.ts +9 -11
  106. package/dist/crypto/ecies/interface.js +4 -5
  107. package/dist/crypto/ecies/interface.js.map +1 -1
  108. package/dist/crypto/ecies/node.cjs +3 -2
  109. package/dist/crypto/ecies/node.cjs.map +1 -1
  110. package/dist/crypto/ecies/node.d.ts +2 -7
  111. package/dist/crypto/ecies/node.js +11 -16
  112. package/dist/crypto/ecies/node.js.map +1 -1
  113. package/dist/crypto/ecies/test-vectors/eccrypto-vectors.json +72 -0
  114. package/dist/crypto/ecies/utils.cjs +2 -41
  115. package/dist/crypto/ecies/utils.cjs.map +1 -1
  116. package/dist/crypto/ecies/utils.d.ts +3 -40
  117. package/dist/crypto/ecies/utils.js +1 -35
  118. package/dist/crypto/ecies/utils.js.map +1 -1
  119. package/dist/crypto/services/WalletKeyEncryptionService.cjs +2 -2
  120. package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -1
  121. package/dist/crypto/services/WalletKeyEncryptionService.d.ts +3 -7
  122. package/dist/crypto/services/WalletKeyEncryptionService.js +5 -9
  123. package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -1
  124. package/dist/crypto/services/WalletKeyEncryptionService.test.d.ts +1 -0
  125. package/dist/diagnostics.d.ts +1 -3
  126. package/dist/diagnostics.test.d.ts +1 -0
  127. package/dist/errors.cjs +16 -0
  128. package/dist/errors.cjs.map +1 -1
  129. package/dist/errors.d.ts +53 -15
  130. package/dist/errors.js +18 -6
  131. package/dist/errors.js.map +1 -1
  132. package/dist/generated/abi/ComputeEngineImplementation.d.ts +2 -3
  133. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +2 -3
  134. package/dist/generated/abi/DATFactoryImplementation.d.ts +2 -3
  135. package/dist/generated/abi/DATImplementation.d.ts +2 -3
  136. package/dist/generated/abi/DATPausableImplementation.d.ts +2 -3
  137. package/dist/generated/abi/DATVotesImplementation.d.ts +2 -3
  138. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +2 -3
  139. package/dist/generated/abi/DLPRegistryImplementation.d.ts +2 -3
  140. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +2 -3
  141. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +2 -3
  142. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +2 -3
  143. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +2 -3
  144. package/dist/generated/abi/DLPRootImplementation.d.ts +1 -3
  145. package/dist/generated/abi/DLPTreasuryImplementation.d.ts +2 -3
  146. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +1 -3
  147. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +2 -3
  148. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +2 -3
  149. package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +2 -3
  150. package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +2 -3
  151. package/dist/generated/abi/DataRegistryImplementation.cjs +13 -0
  152. package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -1
  153. package/dist/generated/abi/DataRegistryImplementation.d.ts +12 -3
  154. package/dist/generated/abi/DataRegistryImplementation.js +13 -0
  155. package/dist/generated/abi/DataRegistryImplementation.js.map +1 -1
  156. package/dist/generated/abi/QueryEngineImplementation.d.ts +2 -3
  157. package/dist/generated/abi/SwapHelperImplementation.d.ts +2 -3
  158. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +2 -3
  159. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +2 -3
  160. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +2 -3
  161. package/dist/generated/abi/TeePoolImplementation.d.ts +2 -3
  162. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +2 -3
  163. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +2 -3
  164. package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +2 -3
  165. package/dist/generated/abi/VanaEpochImplementation.d.ts +2 -3
  166. package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +2 -3
  167. package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +2 -3
  168. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +2 -3
  169. package/dist/generated/abi/index.cjs +42 -0
  170. package/dist/generated/abi/index.cjs.map +1 -1
  171. package/dist/generated/abi/index.d.ts +47 -18
  172. package/dist/generated/abi/index.js +21 -0
  173. package/dist/generated/abi/index.js.map +1 -1
  174. package/dist/generated/event-types.cjs +17 -0
  175. package/dist/generated/event-types.cjs.map +1 -0
  176. package/dist/generated/event-types.d.ts +854 -0
  177. package/dist/generated/event-types.js +1 -0
  178. package/dist/generated/event-types.js.map +1 -0
  179. package/dist/generated/eventRegistry.cjs +3351 -0
  180. package/dist/generated/eventRegistry.cjs.map +1 -0
  181. package/dist/generated/eventRegistry.d.ts +14 -0
  182. package/dist/generated/eventRegistry.js +3326 -0
  183. package/dist/generated/eventRegistry.js.map +1 -0
  184. package/dist/generated/server/server-exports.d.ts +19 -21
  185. package/dist/generated/server/server.cjs.map +1 -1
  186. package/dist/generated/server/server.d.ts +113 -87
  187. package/dist/generated/subgraph.d.ts +329 -332
  188. package/dist/index.browser.d.ts +48 -73
  189. package/dist/index.browser.js +12 -0
  190. package/dist/index.browser.js.map +1 -1
  191. package/dist/index.cjs +3 -1
  192. package/dist/index.cjs.map +1 -1
  193. package/dist/index.d.ts +0 -2
  194. package/dist/index.js +3 -1
  195. package/dist/index.js.map +1 -1
  196. package/dist/index.node.cjs +9 -0
  197. package/dist/index.node.cjs.map +1 -1
  198. package/dist/index.node.d.ts +181 -64
  199. package/dist/index.node.js +10 -0
  200. package/dist/index.node.js.map +1 -1
  201. package/dist/node.d.ts +4 -2
  202. package/dist/platform/browser-only.d.ts +5 -8
  203. package/dist/platform/browser-only.test.d.ts +1 -0
  204. package/dist/platform/browser-safe.d.ts +6 -9
  205. package/dist/platform/browser-safe.test.d.ts +1 -0
  206. package/dist/platform/browser.cjs +7 -6
  207. package/dist/platform/browser.cjs.map +1 -1
  208. package/dist/platform/browser.d.ts +3 -6
  209. package/dist/platform/browser.js +19 -27
  210. package/dist/platform/browser.js.map +1 -1
  211. package/dist/platform/browser.test.d.ts +1 -0
  212. package/dist/platform/index.d.ts +11 -5
  213. package/dist/platform/interface.d.ts +6 -8
  214. package/dist/platform/node.d.ts +3 -7
  215. package/dist/platform/node.js +12 -19
  216. package/dist/platform/node.js.map +1 -1
  217. package/dist/platform/ports/openpgp-port.cjs +74 -0
  218. package/dist/platform/ports/openpgp-port.cjs.map +1 -0
  219. package/dist/platform/ports/openpgp-port.d.ts +13 -0
  220. package/dist/platform/ports/openpgp-port.js +59 -0
  221. package/dist/platform/ports/openpgp-port.js.map +1 -0
  222. package/dist/platform/ports/pgp-port.cjs +17 -0
  223. package/dist/platform/ports/pgp-port.cjs.map +1 -0
  224. package/dist/platform/ports/pgp-port.d.ts +35 -0
  225. package/dist/platform/ports/pgp-port.js +1 -0
  226. package/dist/platform/ports/pgp-port.js.map +1 -0
  227. package/dist/platform/shared/error-utils.d.ts +2 -4
  228. package/dist/platform/shared/pgp-utils.cjs +2 -2
  229. package/dist/platform/shared/pgp-utils.cjs.map +1 -1
  230. package/dist/platform/shared/pgp-utils.d.ts +3 -5
  231. package/dist/platform/shared/pgp-utils.js +2 -2
  232. package/dist/platform/shared/pgp-utils.js.map +1 -1
  233. package/dist/platform/shared/stream-utils.d.ts +1 -3
  234. package/dist/platform/utils.d.ts +6 -10
  235. package/dist/platform/utils.test.d.ts +1 -0
  236. package/dist/platform.browser.d.ts +9 -4
  237. package/dist/platform.d.ts +11 -5
  238. package/dist/platform.node.d.ts +10 -5
  239. package/dist/schemas/dataSchema.schema.json +53 -0
  240. package/dist/schemas/grantFile.schema.json +43 -0
  241. package/dist/server/handler.cjs.map +1 -1
  242. package/dist/server/handler.d.ts +8 -203
  243. package/dist/server/handler.js.map +1 -1
  244. package/dist/storage/index.d.ts +56 -10
  245. package/dist/storage/manager.cjs +6 -6
  246. package/dist/storage/manager.cjs.map +1 -1
  247. package/dist/storage/manager.d.ts +2 -5
  248. package/dist/storage/manager.js +5 -12
  249. package/dist/storage/manager.js.map +1 -1
  250. package/dist/storage/providers/callback-storage.cjs +3 -3
  251. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  252. package/dist/storage/providers/callback-storage.d.ts +3 -9
  253. package/dist/storage/providers/callback-storage.js +3 -3
  254. package/dist/storage/providers/callback-storage.js.map +1 -1
  255. package/dist/storage/providers/google-drive.cjs +2 -2
  256. package/dist/storage/providers/google-drive.cjs.map +1 -1
  257. package/dist/storage/providers/google-drive.d.ts +3 -7
  258. package/dist/storage/providers/google-drive.js +4 -7
  259. package/dist/storage/providers/google-drive.js.map +1 -1
  260. package/dist/storage/providers/google-drive.test.d.ts +1 -0
  261. package/dist/storage/providers/ipfs.cjs +5 -5
  262. package/dist/storage/providers/ipfs.cjs.map +1 -1
  263. package/dist/storage/providers/ipfs.d.ts +3 -6
  264. package/dist/storage/providers/ipfs.js +7 -10
  265. package/dist/storage/providers/ipfs.js.map +1 -1
  266. package/dist/storage/providers/pinata.cjs +6 -6
  267. package/dist/storage/providers/pinata.cjs.map +1 -1
  268. package/dist/storage/providers/pinata.d.ts +5 -8
  269. package/dist/storage/providers/pinata.js +8 -11
  270. package/dist/storage/providers/pinata.js.map +1 -1
  271. package/dist/storage/tests/callbackStorage.test.d.ts +1 -0
  272. package/dist/storage/tests/googleDriveStorage.test.d.ts +1 -0
  273. package/dist/storage/tests/ipfsStorage.test.d.ts +1 -0
  274. package/dist/storage/tests/pinataStorage.test.d.ts +1 -0
  275. package/dist/storage/tests/storageManager.test.d.ts +1 -0
  276. package/dist/tests/abi.test.d.ts +1 -0
  277. package/dist/tests/chains-definitions.test.d.ts +1 -0
  278. package/dist/tests/core-encryption.test.d.ts +1 -0
  279. package/dist/tests/core-extended.test.d.ts +1 -0
  280. package/dist/tests/core-generics-coverage.test.d.ts +1 -0
  281. package/dist/tests/coverage-boost.test.d.ts +1 -0
  282. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +1 -0
  283. package/dist/tests/data-addfile-permissions-schema.test.d.ts +1 -0
  284. package/dist/tests/data-additional-methods.test.d.ts +1 -0
  285. package/dist/tests/data-controller-edge-cases.test.d.ts +1 -0
  286. package/dist/tests/data-ipfs-gateways.test.d.ts +1 -0
  287. package/dist/tests/data-relayer.test.d.ts +1 -0
  288. package/dist/tests/data-schema-validation.test.d.ts +1 -0
  289. package/dist/tests/data-simple-methods.test.d.ts +1 -0
  290. package/dist/tests/data.test.d.ts +1 -0
  291. package/dist/tests/demo-integration.test.d.ts +1 -0
  292. package/dist/tests/demo-trusted-server-integration.test.d.ts +1 -0
  293. package/dist/tests/download-relayer.test.d.ts +1 -0
  294. package/dist/tests/dual-mode-permissions.test.d.ts +1 -0
  295. package/dist/tests/dual-mode-trusted-servers.test.d.ts +1 -0
  296. package/dist/tests/encryption-correct-implementation.test.d.ts +1 -0
  297. package/dist/tests/encryption-coverage.test.d.ts +1 -0
  298. package/dist/tests/encryption-edge-cases.test.d.ts +1 -0
  299. package/dist/tests/encryption-utils-updated.test.d.ts +1 -0
  300. package/dist/tests/errors-coverage.test.d.ts +1 -0
  301. package/dist/tests/errors.test.d.ts +1 -0
  302. package/dist/tests/factories/mockFactory.d.ts +316 -0
  303. package/dist/tests/fakes/FakeStorageManager.d.ts +200 -0
  304. package/dist/tests/fakes/FakeStorageManager.test.d.ts +1 -0
  305. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +170 -0
  306. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +1 -0
  307. package/dist/tests/fakes/fake-pgp-port.d.ts +13 -0
  308. package/dist/tests/grantValidation-edge-cases.test.d.ts +1 -0
  309. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +1 -0
  310. package/dist/tests/helper-methods.test.d.ts +1 -0
  311. package/dist/tests/helpers/platformTestHelpers.d.ts +106 -0
  312. package/dist/tests/helpers/typedMocks.d.ts +64 -0
  313. package/dist/tests/index-browser.test.d.ts +1 -0
  314. package/dist/tests/index-node.test.d.ts +1 -0
  315. package/dist/tests/index.test.d.ts +1 -0
  316. package/dist/tests/mocks/platformAdapter.d.ts +12 -0
  317. package/dist/tests/new-permissions-methods.test.d.ts +1 -0
  318. package/dist/tests/no-buffer-browser.test.d.ts +1 -0
  319. package/dist/tests/permissions-grantee.test.d.ts +1 -0
  320. package/dist/tests/permissions-schema-validation.test.d.ts +1 -0
  321. package/dist/tests/permissions-server-files.test.d.ts +1 -0
  322. package/dist/tests/permissions-transaction-options.test.d.ts +1 -0
  323. package/dist/tests/permissions-trust-servers.test.d.ts +1 -0
  324. package/dist/tests/permissions.test.d.ts +1 -0
  325. package/dist/tests/personal.test.d.ts +1 -0
  326. package/dist/tests/platform-browser.test.d.ts +1 -0
  327. package/dist/tests/platform-crypto-expanded.test.d.ts +1 -0
  328. package/dist/tests/platform-crypto.test.d.ts +1 -0
  329. package/dist/tests/platform-index.test.d.ts +1 -0
  330. package/dist/tests/platform-node.test.d.ts +1 -0
  331. package/dist/tests/platform-shared-utils.test.d.ts +1 -0
  332. package/dist/tests/platform-updated.test.d.ts +1 -0
  333. package/dist/tests/protocol-additional-methods.test.d.ts +1 -0
  334. package/dist/tests/protocol.test.d.ts +1 -0
  335. package/dist/tests/read-only-mode.test.d.ts +1 -0
  336. package/dist/tests/schemas.test.d.ts +1 -0
  337. package/dist/tests/server-handler.test.d.ts +1 -0
  338. package/dist/tests/setup.d.ts +7 -0
  339. package/dist/tests/signatureFormatter.test.d.ts +1 -0
  340. package/dist/tests/trusted-server-queries.test.d.ts +1 -0
  341. package/dist/tests/typedDataConverter.test.d.ts +1 -0
  342. package/dist/tests/types-contracts.test.d.ts +1 -0
  343. package/dist/tests/types-data.test.d.ts +1 -0
  344. package/dist/tests/types-external-apis.test.d.ts +1 -0
  345. package/dist/tests/types-generics.test.d.ts +1 -0
  346. package/dist/tests/types-permissions.test.d.ts +1 -0
  347. package/dist/tests/types-upload-params.test.d.ts +1 -0
  348. package/dist/tests/types.test.d.ts +1 -0
  349. package/dist/tests/utils-formatters.test.d.ts +1 -0
  350. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +1 -0
  351. package/dist/tests/utils-grantFiles-validation.test.d.ts +1 -0
  352. package/dist/tests/utils-grantFiles.test.d.ts +1 -0
  353. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +1 -0
  354. package/dist/tests/utils-grants.test.d.ts +1 -0
  355. package/dist/tests/utils-ipfs-additional.test.d.ts +1 -0
  356. package/dist/tests/utils-ipfs.test.d.ts +4 -0
  357. package/dist/tests/utils-schemaValidation.test.d.ts +1 -0
  358. package/dist/tests/vana.test.d.ts +1 -0
  359. package/dist/tests/wallet-crypto-compatibility.test.d.ts +1 -0
  360. package/dist/types/blockchain.cjs +17 -0
  361. package/dist/types/blockchain.cjs.map +1 -0
  362. package/dist/types/blockchain.d.ts +57 -0
  363. package/dist/types/blockchain.js +1 -0
  364. package/dist/types/blockchain.js.map +1 -0
  365. package/dist/types/chains-additional.test.d.ts +1 -0
  366. package/dist/types/chains.d.ts +6 -9
  367. package/dist/types/config.cjs +10 -0
  368. package/dist/types/config.cjs.map +1 -1
  369. package/dist/types/config.d.ts +161 -54
  370. package/dist/types/config.js +8 -0
  371. package/dist/types/config.js.map +1 -1
  372. package/dist/types/contracts.cjs.map +1 -1
  373. package/dist/types/contracts.d.ts +8 -11
  374. package/dist/types/controller-context.cjs +17 -0
  375. package/dist/types/controller-context.cjs.map +1 -0
  376. package/dist/types/controller-context.d.ts +64 -0
  377. package/dist/types/controller-context.js +1 -0
  378. package/dist/types/controller-context.js.map +1 -0
  379. package/dist/types/data.cjs.map +1 -1
  380. package/dist/types/data.d.ts +107 -39
  381. package/dist/types/external-apis.d.ts +10 -12
  382. package/dist/types/generics.d.ts +35 -38
  383. package/dist/types/index.cjs +5 -4
  384. package/dist/types/index.cjs.map +1 -1
  385. package/dist/types/index.d.ts +20 -34
  386. package/dist/types/index.js +9 -2
  387. package/dist/types/index.js.map +1 -1
  388. package/dist/types/operations.cjs +2 -2
  389. package/dist/types/operations.cjs.map +1 -1
  390. package/dist/types/operations.d.ts +32 -28
  391. package/dist/types/operations.js +2 -2
  392. package/dist/types/operations.js.map +1 -1
  393. package/dist/types/permissions.d.ts +55 -58
  394. package/dist/types/personal.cjs.map +1 -1
  395. package/dist/types/personal.d.ts +6 -8
  396. package/dist/types/relayer.d.ts +15 -18
  397. package/dist/types/storage.d.ts +6 -8
  398. package/dist/types/storage.js +2 -5
  399. package/dist/types/storage.js.map +1 -1
  400. package/dist/types/transactionResults.cjs.map +1 -1
  401. package/dist/types/transactionResults.d.ts +193 -25
  402. package/dist/types/utils.cjs.map +1 -1
  403. package/dist/types/utils.d.ts +26 -25
  404. package/dist/types.d.ts +4 -40
  405. package/dist/utils/__tests__/parseTransaction.test.d.ts +1 -0
  406. package/dist/utils/__tests__/pojo-serialization.test.d.ts +1 -0
  407. package/dist/utils/__tests__/signatureCache.test.d.ts +1 -0
  408. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +1 -0
  409. package/dist/utils/__tests__/transactionHelpers.test.d.ts +1 -0
  410. package/dist/utils/__tests__/urlResolver.test.d.ts +4 -0
  411. package/dist/utils/blockchain/registry.cjs +2 -2
  412. package/dist/utils/blockchain/registry.cjs.map +1 -1
  413. package/dist/utils/blockchain/registry.d.ts +6 -8
  414. package/dist/utils/blockchain/registry.js +2 -2
  415. package/dist/utils/blockchain/registry.js.map +1 -1
  416. package/dist/utils/blockchain/registry.test.d.ts +1 -0
  417. package/dist/utils/crypto-utils.cjs +0 -12
  418. package/dist/utils/crypto-utils.cjs.map +1 -1
  419. package/dist/utils/crypto-utils.d.ts +9 -27
  420. package/dist/utils/crypto-utils.js +0 -11
  421. package/dist/utils/crypto-utils.js.map +1 -1
  422. package/dist/utils/crypto-utils.test.d.ts +1 -0
  423. package/dist/utils/download.cjs +3 -3
  424. package/dist/utils/download.cjs.map +1 -1
  425. package/dist/utils/download.d.ts +13 -14
  426. package/dist/utils/download.js +2 -2
  427. package/dist/utils/download.js.map +1 -1
  428. package/dist/utils/encoding.cjs +1 -1
  429. package/dist/utils/encoding.cjs.map +1 -1
  430. package/dist/utils/encoding.d.ts +4 -6
  431. package/dist/utils/encoding.js +1 -1
  432. package/dist/utils/encoding.js.map +1 -1
  433. package/dist/utils/encoding.test.d.ts +1 -0
  434. package/dist/utils/encryption.cjs +16 -10
  435. package/dist/utils/encryption.cjs.map +1 -1
  436. package/dist/utils/encryption.d.ts +13 -17
  437. package/dist/utils/encryption.js +16 -10
  438. package/dist/utils/encryption.js.map +1 -1
  439. package/dist/utils/formatters.cjs +4 -2
  440. package/dist/utils/formatters.cjs.map +1 -1
  441. package/dist/utils/formatters.d.ts +4 -6
  442. package/dist/utils/formatters.js +4 -2
  443. package/dist/utils/formatters.js.map +1 -1
  444. package/dist/utils/grantFiles.cjs +7 -4
  445. package/dist/utils/grantFiles.cjs.map +1 -1
  446. package/dist/utils/grantFiles.d.ts +6 -10
  447. package/dist/utils/grantFiles.js +7 -4
  448. package/dist/utils/grantFiles.js.map +1 -1
  449. package/dist/utils/grantValidation.cjs +1 -1
  450. package/dist/utils/grantValidation.cjs.map +1 -1
  451. package/dist/utils/grantValidation.d.ts +14 -17
  452. package/dist/utils/grantValidation.js +1 -1
  453. package/dist/utils/grantValidation.js.map +1 -1
  454. package/dist/utils/grants.cjs +1 -1
  455. package/dist/utils/grants.cjs.map +1 -1
  456. package/dist/utils/grants.d.ts +10 -13
  457. package/dist/utils/grants.js +1 -1
  458. package/dist/utils/grants.js.map +1 -1
  459. package/dist/utils/ipfs.d.ts +8 -10
  460. package/dist/utils/lazy-import.cjs +4 -6
  461. package/dist/utils/lazy-import.cjs.map +1 -1
  462. package/dist/utils/lazy-import.d.ts +1 -3
  463. package/dist/utils/lazy-import.js +4 -6
  464. package/dist/utils/lazy-import.js.map +1 -1
  465. package/dist/utils/multicall.cjs +4 -2
  466. package/dist/utils/multicall.cjs.map +1 -1
  467. package/dist/utils/multicall.d.ts +5 -8
  468. package/dist/utils/multicall.js +4 -2
  469. package/dist/utils/multicall.js.map +1 -1
  470. package/dist/utils/parseTransactionPojo.cjs +87 -0
  471. package/dist/utils/parseTransactionPojo.cjs.map +1 -0
  472. package/dist/utils/parseTransactionPojo.d.ts +31 -0
  473. package/dist/utils/parseTransactionPojo.js +63 -0
  474. package/dist/utils/parseTransactionPojo.js.map +1 -0
  475. package/dist/utils/schemaValidation.cjs +5 -5
  476. package/dist/utils/schemaValidation.cjs.map +1 -1
  477. package/dist/utils/schemaValidation.d.ts +8 -12
  478. package/dist/utils/schemaValidation.js +7 -10
  479. package/dist/utils/schemaValidation.js.map +1 -1
  480. package/dist/utils/signatureCache.cjs +1 -2
  481. package/dist/utils/signatureCache.cjs.map +1 -1
  482. package/dist/utils/signatureCache.d.ts +4 -7
  483. package/dist/utils/signatureCache.js +4 -8
  484. package/dist/utils/signatureCache.js.map +1 -1
  485. package/dist/utils/signatureFormatter.cjs +6 -9
  486. package/dist/utils/signatureFormatter.cjs.map +1 -1
  487. package/dist/utils/signatureFormatter.d.ts +2 -5
  488. package/dist/utils/signatureFormatter.js +6 -9
  489. package/dist/utils/signatureFormatter.js.map +1 -1
  490. package/dist/utils/tests/multicall.test.d.ts +1 -0
  491. package/dist/utils/transactionHelpers.cjs +54 -0
  492. package/dist/utils/transactionHelpers.cjs.map +1 -0
  493. package/dist/utils/transactionHelpers.d.ts +80 -0
  494. package/dist/utils/transactionHelpers.js +29 -0
  495. package/dist/utils/transactionHelpers.js.map +1 -0
  496. package/dist/utils/typeGuards.cjs +109 -0
  497. package/dist/utils/typeGuards.cjs.map +1 -0
  498. package/dist/utils/typeGuards.d.ts +138 -0
  499. package/dist/utils/typeGuards.js +74 -0
  500. package/dist/utils/typeGuards.js.map +1 -0
  501. package/dist/utils/typedDataConverter.d.ts +3 -6
  502. package/dist/utils/urlResolver.cjs +1 -1
  503. package/dist/utils/urlResolver.cjs.map +1 -1
  504. package/dist/utils/urlResolver.d.ts +2 -4
  505. package/dist/utils/urlResolver.js +2 -2
  506. package/dist/utils/urlResolver.js.map +1 -1
  507. package/dist/utils/wallet.cjs +62 -0
  508. package/dist/utils/wallet.cjs.map +1 -0
  509. package/dist/utils/wallet.d.ts +32 -0
  510. package/dist/utils/wallet.js +36 -0
  511. package/dist/utils/wallet.js.map +1 -0
  512. package/dist/{chains.browser.cjs → utils/withEvents.cjs} +22 -15
  513. package/dist/utils/withEvents.cjs.map +1 -0
  514. package/dist/utils/withEvents.d.ts +56 -0
  515. package/dist/utils/withEvents.js +18 -0
  516. package/dist/utils/withEvents.js.map +1 -0
  517. package/package.json +23 -13
  518. package/dist/browser.d.cts +0 -2
  519. package/dist/chains/definitions.d.cts +0 -53
  520. package/dist/chains/index.d.cts +0 -2
  521. package/dist/chains.browser.cjs.map +0 -1
  522. package/dist/chains.browser.d.cts +0 -2
  523. package/dist/chains.d.cts +0 -2
  524. package/dist/chains.node.d.cts +0 -2
  525. package/dist/config/addresses.d.cts +0 -380
  526. package/dist/config/chains.d.cts +0 -85
  527. package/dist/config/eventMappings.cjs +0 -114
  528. package/dist/config/eventMappings.cjs.map +0 -1
  529. package/dist/config/eventMappings.d.cts +0 -108
  530. package/dist/config/eventMappings.d.ts +0 -108
  531. package/dist/config/eventMappings.js +0 -90
  532. package/dist/config/eventMappings.js.map +0 -1
  533. package/dist/config/features.d.cts +0 -64
  534. package/dist/contracts/contractController.d.cts +0 -96
  535. package/dist/controllers/data.d.cts +0 -941
  536. package/dist/controllers/permissions.d.cts +0 -25
  537. package/dist/controllers/protocol.d.cts +0 -167
  538. package/dist/controllers/schemas.d.cts +0 -272
  539. package/dist/controllers/server.d.cts +0 -243
  540. package/dist/core/apiClient.d.cts +0 -165
  541. package/dist/core/client.d.cts +0 -92
  542. package/dist/core/generics.d.cts +0 -120
  543. package/dist/core.d.cts +0 -466
  544. package/dist/crypto/ecies/__tests__/test-vectors.d.cts +0 -40
  545. package/dist/crypto/ecies/base.d.cts +0 -143
  546. package/dist/crypto/ecies/browser.d.cts +0 -48
  547. package/dist/crypto/ecies/constants.d.cts +0 -122
  548. package/dist/crypto/ecies/index.d.cts +0 -1
  549. package/dist/crypto/ecies/interface.d.cts +0 -176
  550. package/dist/crypto/ecies/node.d.cts +0 -50
  551. package/dist/crypto/ecies/utils.d.cts +0 -67
  552. package/dist/crypto/services/WalletKeyEncryptionService.d.cts +0 -92
  553. package/dist/diagnostics.d.cts +0 -26
  554. package/dist/errors.d.cts +0 -350
  555. package/dist/generated/abi/ComputeEngineImplementation.d.cts +0 -996
  556. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.cts +0 -545
  557. package/dist/generated/abi/DATFactoryImplementation.d.cts +0 -661
  558. package/dist/generated/abi/DATImplementation.d.cts +0 -693
  559. package/dist/generated/abi/DATPausableImplementation.d.cts +0 -1145
  560. package/dist/generated/abi/DATVotesImplementation.d.cts +0 -1095
  561. package/dist/generated/abi/DLPPerformanceImplementation.d.cts +0 -883
  562. package/dist/generated/abi/DLPRegistryImplementation.d.cts +0 -1123
  563. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.cts +0 -452
  564. package/dist/generated/abi/DLPRewardDeployerImplementation.d.cts +0 -714
  565. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.cts +0 -452
  566. package/dist/generated/abi/DLPRewardSwapImplementation.d.cts +0 -706
  567. package/dist/generated/abi/DLPRootImplementation.d.cts +0 -1248
  568. package/dist/generated/abi/DLPTreasuryImplementation.d.cts +0 -452
  569. package/dist/generated/abi/DataLiquidityPoolImplementation.d.cts +0 -737
  570. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.cts +0 -661
  571. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.cts +0 -989
  572. package/dist/generated/abi/DataPortabilityServersImplementation.d.cts +0 -1086
  573. package/dist/generated/abi/DataRefinerRegistryImplementation.d.cts +0 -737
  574. package/dist/generated/abi/DataRegistryImplementation.d.cts +0 -1004
  575. package/dist/generated/abi/QueryEngineImplementation.d.cts +0 -1001
  576. package/dist/generated/abi/SwapHelperImplementation.d.cts +0 -764
  577. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.cts +0 -701
  578. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.cts +0 -701
  579. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.cts +0 -701
  580. package/dist/generated/abi/TeePoolImplementation.d.cts +0 -993
  581. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.cts +0 -701
  582. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.cts +0 -701
  583. package/dist/generated/abi/TeePoolPhalaImplementation.d.cts +0 -993
  584. package/dist/generated/abi/VanaEpochImplementation.d.cts +0 -900
  585. package/dist/generated/abi/VanaPoolEntityImplementation.d.cts +0 -934
  586. package/dist/generated/abi/VanaPoolStakingImplementation.d.cts +0 -693
  587. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.cts +0 -394
  588. package/dist/generated/abi/index.d.cts +0 -26516
  589. package/dist/generated/server/server-exports.d.cts +0 -21
  590. package/dist/generated/server/server.d.cts +0 -512
  591. package/dist/generated/subgraph.d.cts +0 -5981
  592. package/dist/index.browser.cjs +0 -151
  593. package/dist/index.browser.cjs.map +0 -1
  594. package/dist/index.browser.d.cts +0 -177
  595. package/dist/index.d.cts +0 -2
  596. package/dist/index.node.d.cts +0 -64
  597. package/dist/node.d.cts +0 -2
  598. package/dist/permissions-DNKPu_G0.d.cts +0 -1666
  599. package/dist/permissions-eo8YeLGf.d.ts +0 -1666
  600. package/dist/platform/browser-only.d.cts +0 -25
  601. package/dist/platform/browser-safe.d.cts +0 -32
  602. package/dist/platform/browser.d.cts +0 -74
  603. package/dist/platform/index.d.cts +0 -5
  604. package/dist/platform/interface.d.cts +0 -218
  605. package/dist/platform/node.d.cts +0 -27
  606. package/dist/platform/shared/error-utils.d.cts +0 -25
  607. package/dist/platform/shared/pgp-utils.d.cts +0 -61
  608. package/dist/platform/shared/stream-utils.d.cts +0 -16
  609. package/dist/platform/utils.d.cts +0 -53
  610. package/dist/platform.browser.cjs +0 -41
  611. package/dist/platform.browser.cjs.map +0 -1
  612. package/dist/platform.browser.d.cts +0 -4
  613. package/dist/platform.d.cts +0 -5
  614. package/dist/platform.node.d.cts +0 -5
  615. package/dist/server/handler.d.cts +0 -282
  616. package/dist/storage/index.d.cts +0 -10
  617. package/dist/storage/manager.d.cts +0 -150
  618. package/dist/storage/providers/callback-storage.d.cts +0 -100
  619. package/dist/storage/providers/google-drive.d.cts +0 -156
  620. package/dist/storage/providers/ipfs.d.cts +0 -163
  621. package/dist/storage/providers/pinata.d.cts +0 -173
  622. package/dist/types/chains.d.cts +0 -34
  623. package/dist/types/config.d.cts +0 -726
  624. package/dist/types/contracts.d.cts +0 -68
  625. package/dist/types/data.d.cts +0 -694
  626. package/dist/types/eccrypto-js.d.d.cts +0 -13
  627. package/dist/types/eccrypto-js.d.d.ts +0 -13
  628. package/dist/types/external-apis.d.cts +0 -186
  629. package/dist/types/generics.d.cts +0 -450
  630. package/dist/types/index.d.cts +0 -34
  631. package/dist/types/operations.d.cts +0 -108
  632. package/dist/types/permissions.d.cts +0 -957
  633. package/dist/types/personal.d.cts +0 -40
  634. package/dist/types/relayer.d.cts +0 -284
  635. package/dist/types/storage.d.cts +0 -131
  636. package/dist/types/transactionResults.d.cts +0 -25
  637. package/dist/types/utils.d.cts +0 -819
  638. package/dist/types.d.cts +0 -66
  639. package/dist/utils/blockchain/registry.d.cts +0 -34
  640. package/dist/utils/crypto-utils.d.cts +0 -118
  641. package/dist/utils/download.d.cts +0 -41
  642. package/dist/utils/encoding.d.cts +0 -54
  643. package/dist/utils/encryption.d.cts +0 -275
  644. package/dist/utils/eventParsing.cjs +0 -111
  645. package/dist/utils/eventParsing.cjs.map +0 -1
  646. package/dist/utils/eventParsing.d.cts +0 -60
  647. package/dist/utils/eventParsing.d.ts +0 -60
  648. package/dist/utils/eventParsing.js +0 -86
  649. package/dist/utils/eventParsing.js.map +0 -1
  650. package/dist/utils/formatters.d.cts +0 -120
  651. package/dist/utils/grantFiles.d.cts +0 -186
  652. package/dist/utils/grantValidation.d.cts +0 -150
  653. package/dist/utils/grants.d.cts +0 -70
  654. package/dist/utils/ipfs.d.cts +0 -90
  655. package/dist/utils/lazy-import.d.cts +0 -20
  656. package/dist/utils/multicall.d.cts +0 -129
  657. package/dist/utils/schemaValidation.d.cts +0 -172
  658. package/dist/utils/signatureCache.d.cts +0 -134
  659. package/dist/utils/signatureFormatter.d.cts +0 -39
  660. package/dist/utils/transactionParsing.cjs +0 -84
  661. package/dist/utils/transactionParsing.cjs.map +0 -1
  662. package/dist/utils/transactionParsing.d.cts +0 -25
  663. package/dist/utils/transactionParsing.d.ts +0 -25
  664. package/dist/utils/transactionParsing.js +0 -62
  665. package/dist/utils/transactionParsing.js.map +0 -1
  666. package/dist/utils/typedDataConverter.d.cts +0 -13
  667. package/dist/utils/urlResolver.d.cts +0 -40
@@ -1,25 +1,9 @@
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
+ import type { Abi } from "abitype";
2
+ import { type GetContractReturnType, type PublicClient, type WalletClient } from "viem";
3
+ import { type ContractAbis, type VanaContract } from "../generated/abi";
4
+ import type { VanaChainId, ContractInfo } from "../types/index";
5
+ import { createClient } from "../core/client";
6
+ export declare const contractCacheForTesting: Map<string, {
23
7
  address: `0x${string}`;
24
8
  abi: Abi;
25
9
  }>;
@@ -40,7 +24,7 @@ declare const __contractCache: Map<string, {
40
24
  * await dataRegistry.write.addFile([url, proof]); // Typed parameters
41
25
  * ```
42
26
  */
43
- declare function getContractController<T extends VanaContract>(contract: T, client?: PublicClient | WalletClient | ReturnType<typeof createClient>): GetContractReturnType<ContractAbis[T]>;
27
+ export declare function getContractController<T extends VanaContract>(contract: T, client?: PublicClient | WalletClient | ReturnType<typeof createClient>): GetContractReturnType<ContractAbis[T]>;
44
28
  /**
45
29
  * Gets contract information (address and ABI) without creating a contract instance.
46
30
  * Useful for cases where you need contract details but don't want to create a client connection.
@@ -55,12 +39,12 @@ declare function getContractController<T extends VanaContract>(contract: T, clie
55
39
  * console.log(info.abi); // Fully typed ABI
56
40
  * ```
57
41
  */
58
- declare function getContractInfo<T extends VanaContract>(contract: T, chainId?: VanaChainId): ContractInfo<ContractAbis[T]>;
42
+ export declare function getContractInfo<T extends VanaContract>(contract: T, chainId?: VanaChainId): ContractInfo<ContractAbis[T]>;
59
43
  /**
60
44
  * Type-safe contract factory that creates contract instances with full type inference.
61
45
  * This provides an alternative API that's more explicit about typing.
62
46
  */
63
- declare class ContractFactory {
47
+ export declare class ContractFactory {
64
48
  private readonly client;
65
49
  private readonly chainId;
66
50
  constructor(client: PublicClient | WalletClient | ReturnType<typeof createClient>);
@@ -91,6 +75,5 @@ declare class ContractFactory {
91
75
  * @param contract - Optional specific contract to clear, or clear all if not provided
92
76
  * @param chainId - Optional specific chain to clear, or clear all if not provided
93
77
  */
94
- declare function clearContractCache(contract?: VanaContract, chainId?: number): void;
95
-
96
- export { ContractFactory, __contractCache, clearContractCache, getContractController, getContractInfo };
78
+ export declare function clearContractCache(contract?: VanaContract, chainId?: number): void;
79
+ 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":["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 contractCacheForTesting = 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,0BAA0B;AASvC,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,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":[]}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Base controller class providing common functionality for all controllers.
3
+ *
4
+ * @remarks
5
+ * This abstract class establishes the foundation for all Vana SDK controllers,
6
+ * providing shared utilities like wallet validation and context management.
7
+ * All controllers should extend this base class to ensure consistency and
8
+ * shared behavior across the SDK.
9
+ *
10
+ * The class follows the Single Responsibility Principle by handling only
11
+ * the core controller concerns while leaving specific functionality to
12
+ * implementing classes.
13
+ *
14
+ * @category Controllers
15
+ */
16
+ import type { WalletClient } from "viem";
17
+ import type { ControllerContext } from "../types/controller-context";
18
+ /**
19
+ * Abstract base controller that all Vana SDK controllers extend.
20
+ *
21
+ * @remarks
22
+ * Provides common functionality and patterns used across all controllers,
23
+ * including wallet validation and context management. This ensures
24
+ * consistency and reduces code duplication throughout the SDK.
25
+ *
26
+ * Key features:
27
+ * - Wallet client validation with TypeScript assertion signatures
28
+ * - Consistent error handling for read-only scenarios
29
+ * - Shared context management patterns
30
+ * - Type-safe wallet operations
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * class MyController extends BaseController {
35
+ * async performWalletOperation() {
36
+ * this.assertWallet(); // Ensures wallet is available
37
+ * // Now this.context.walletClient is guaranteed to be available
38
+ * const address = await this.context.walletClient.getAddresses();
39
+ * return address[0];
40
+ * }
41
+ * }
42
+ * ```
43
+ */
44
+ export declare abstract class BaseController {
45
+ protected readonly context: ControllerContext;
46
+ /**
47
+ * Creates a new controller instance with the provided context.
48
+ *
49
+ * @param context - The controller context containing clients and configuration
50
+ */
51
+ constructor(context: ControllerContext);
52
+ /**
53
+ * Asserts that a wallet client with an account is available for operations requiring signing.
54
+ *
55
+ * @remarks
56
+ * This method uses TypeScript assertion signatures to narrow the type of
57
+ * `this.context` to guarantee that `walletClient` with an account is available
58
+ * after the call succeeds. This provides compile-time safety for wallet operations
59
+ * while enabling clear error messages for read-only scenarios.
60
+ *
61
+ * The assertion signature ensures that after calling this method,
62
+ * TypeScript knows that `this.context.walletClient` is definitely available
63
+ * with a configured account.
64
+ *
65
+ * @throws {ReadOnlyError} When no wallet client is configured
66
+ * @throws {Error} When wallet client exists but no account is configured
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * async performWalletOperation() {
71
+ * this.assertWallet(); // Type assertion + runtime check
72
+ *
73
+ * // TypeScript now knows walletClient and account are available
74
+ * const account = this.context.walletClient.account;
75
+ * const address = typeof account === 'string' ? account : account.address;
76
+ * }
77
+ * ```
78
+ */
79
+ protected assertWallet(): asserts this is {
80
+ context: ControllerContext & {
81
+ walletClient: WalletClient;
82
+ };
83
+ };
84
+ }
@@ -0,0 +1,59 @@
1
+ import { ReadOnlyError } from "../errors";
2
+ class BaseController {
3
+ /**
4
+ * Creates a new controller instance with the provided context.
5
+ *
6
+ * @param context - The controller context containing clients and configuration
7
+ */
8
+ constructor(context) {
9
+ this.context = context;
10
+ }
11
+ /**
12
+ * Asserts that a wallet client with an account is available for operations requiring signing.
13
+ *
14
+ * @remarks
15
+ * This method uses TypeScript assertion signatures to narrow the type of
16
+ * `this.context` to guarantee that `walletClient` with an account is available
17
+ * after the call succeeds. This provides compile-time safety for wallet operations
18
+ * while enabling clear error messages for read-only scenarios.
19
+ *
20
+ * The assertion signature ensures that after calling this method,
21
+ * TypeScript knows that `this.context.walletClient` is definitely available
22
+ * with a configured account.
23
+ *
24
+ * @throws {ReadOnlyError} When no wallet client is configured
25
+ * @throws {Error} When wallet client exists but no account is configured
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * async performWalletOperation() {
30
+ * this.assertWallet(); // Type assertion + runtime check
31
+ *
32
+ * // TypeScript now knows walletClient and account are available
33
+ * const account = this.context.walletClient.account;
34
+ * const address = typeof account === 'string' ? account : account.address;
35
+ * }
36
+ * ```
37
+ */
38
+ assertWallet() {
39
+ if (!this.context.walletClient) {
40
+ const stack = new Error().stack;
41
+ const callingMethod = stack?.split("\n")[2]?.match(/at \w+\.(\w+)/)?.[1] ?? "this operation";
42
+ throw new ReadOnlyError(
43
+ callingMethod,
44
+ "Initialize the SDK with a walletClient to perform this operation"
45
+ );
46
+ }
47
+ if (!this.context.walletClient.account) {
48
+ const stack = new Error().stack;
49
+ const callingMethod = stack?.split("\n")[2]?.match(/at \w+\.(\w+)/)?.[1] ?? "this operation";
50
+ throw new Error(
51
+ `No wallet account connected. Cannot perform ${callingMethod} without an account.`
52
+ );
53
+ }
54
+ }
55
+ }
56
+ export {
57
+ BaseController
58
+ };
59
+ //# sourceMappingURL=base.js.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":"AAkBA,SAAS,qBAAqB;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":[]}
@@ -0,0 +1 @@
1
+ export {};