@opendatalabs/vana-sdk 0.1.0-alpha.f9cc6ed → 0.1.0-alpha.fd33fc9

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 (807) hide show
  1. package/dist/__tests__/waitForTransactionEvents.test.d.ts +1 -0
  2. package/dist/browser.cjs +29 -0
  3. package/dist/browser.cjs.map +1 -0
  4. package/dist/browser.d.ts +4 -0
  5. package/dist/browser.js +5 -0
  6. package/dist/browser.js.map +1 -0
  7. package/dist/chains/definitions.cjs +95 -0
  8. package/dist/chains/definitions.cjs.map +1 -0
  9. package/dist/chains/definitions.d.ts +51 -0
  10. package/dist/chains/definitions.js +67 -0
  11. package/dist/chains/definitions.js.map +1 -0
  12. package/dist/chains/index.cjs +37 -0
  13. package/dist/chains/index.cjs.map +1 -0
  14. package/dist/chains/index.d.ts +5 -0
  15. package/dist/chains/index.js +15 -0
  16. package/dist/chains/index.js.map +1 -0
  17. package/dist/chains.browser.d.ts +8 -0
  18. package/dist/chains.browser.js +15 -0
  19. package/dist/chains.browser.js.map +1 -0
  20. package/dist/chains.cjs +37 -0
  21. package/dist/chains.cjs.map +1 -0
  22. package/dist/chains.d.ts +8 -0
  23. package/dist/chains.js +15 -0
  24. package/dist/chains.js.map +1 -0
  25. package/dist/chains.node.cjs +37 -0
  26. package/dist/chains.node.cjs.map +1 -0
  27. package/dist/chains.node.d.ts +8 -0
  28. package/dist/chains.node.js +15 -0
  29. package/dist/chains.node.js.map +1 -0
  30. package/dist/config/addresses.cjs +325 -0
  31. package/dist/config/addresses.cjs.map +1 -0
  32. package/dist/config/addresses.d.ts +364 -0
  33. package/dist/config/addresses.js +295 -0
  34. package/dist/config/addresses.js.map +1 -0
  35. package/dist/config/chains.cjs +93 -0
  36. package/dist/config/chains.cjs.map +1 -0
  37. package/dist/config/chains.d.ts +81 -0
  38. package/dist/config/chains.js +67 -0
  39. package/dist/config/chains.js.map +1 -0
  40. package/dist/config/default-services.cjs +60 -0
  41. package/dist/config/default-services.cjs.map +1 -0
  42. package/dist/config/default-services.d.ts +46 -0
  43. package/dist/config/default-services.js +33 -0
  44. package/dist/config/default-services.js.map +1 -0
  45. package/dist/config/default-services.test.d.ts +1 -0
  46. package/dist/config/features.cjs +52 -0
  47. package/dist/config/features.cjs.map +1 -0
  48. package/dist/config/features.d.ts +62 -0
  49. package/dist/config/features.js +28 -0
  50. package/dist/config/features.js.map +1 -0
  51. package/dist/config/tests/addresses.test.d.ts +1 -0
  52. package/dist/contracts/contractController.cjs +126 -0
  53. package/dist/contracts/contractController.cjs.map +1 -0
  54. package/dist/contracts/contractController.d.ts +79 -0
  55. package/dist/contracts/contractController.js +100 -0
  56. package/dist/contracts/contractController.js.map +1 -0
  57. package/dist/contracts/tests/contractController.test.d.ts +1 -0
  58. package/dist/controllers/__tests__/schemas-edge-cases.test.d.ts +1 -0
  59. package/dist/controllers/base.cjs +83 -0
  60. package/dist/controllers/base.cjs.map +1 -0
  61. package/dist/controllers/base.d.ts +84 -0
  62. package/dist/controllers/base.js +59 -0
  63. package/dist/controllers/base.js.map +1 -0
  64. package/dist/controllers/data-error-handling.test.d.ts +1 -0
  65. package/dist/controllers/data.cjs +2492 -0
  66. package/dist/controllers/data.cjs.map +1 -0
  67. package/dist/controllers/data.d.ts +1014 -0
  68. package/dist/controllers/data.js +2475 -0
  69. package/dist/controllers/data.js.map +1 -0
  70. package/dist/controllers/permissions.cjs +3882 -0
  71. package/dist/controllers/permissions.cjs.map +1 -0
  72. package/dist/controllers/permissions.d.ts +1283 -0
  73. package/dist/controllers/permissions.js +3858 -0
  74. package/dist/controllers/permissions.js.map +1 -0
  75. package/dist/controllers/protocol.cjs +183 -0
  76. package/dist/controllers/protocol.cjs.map +1 -0
  77. package/dist/controllers/protocol.d.ts +139 -0
  78. package/dist/controllers/protocol.js +163 -0
  79. package/dist/controllers/protocol.js.map +1 -0
  80. package/dist/controllers/schemas.cjs +599 -0
  81. package/dist/controllers/schemas.cjs.map +1 -0
  82. package/dist/controllers/schemas.d.ts +245 -0
  83. package/dist/controllers/schemas.js +575 -0
  84. package/dist/controllers/schemas.js.map +1 -0
  85. package/dist/controllers/server-additional.test.d.ts +1 -0
  86. package/dist/controllers/server.cjs +432 -0
  87. package/dist/controllers/server.cjs.map +1 -0
  88. package/dist/controllers/server.d.ts +217 -0
  89. package/dist/controllers/server.js +413 -0
  90. package/dist/controllers/server.js.map +1 -0
  91. package/dist/core/apiClient.cjs +328 -0
  92. package/dist/core/apiClient.cjs.map +1 -0
  93. package/dist/core/apiClient.d.ts +161 -0
  94. package/dist/core/apiClient.js +309 -0
  95. package/dist/core/apiClient.js.map +1 -0
  96. package/dist/core/client.cjs +70 -0
  97. package/dist/core/client.cjs.map +1 -0
  98. package/dist/core/client.d.ts +89 -0
  99. package/dist/core/client.js +47 -0
  100. package/dist/core/client.js.map +1 -0
  101. package/dist/core/core.test.d.ts +1 -0
  102. package/dist/core/generics.cjs +390 -0
  103. package/dist/core/generics.cjs.map +1 -0
  104. package/dist/core/generics.d.ts +116 -0
  105. package/dist/core/generics.js +359 -0
  106. package/dist/core/generics.js.map +1 -0
  107. package/dist/core/tests/apiClient.test.d.ts +1 -0
  108. package/dist/core/tests/client.test.d.ts +1 -0
  109. package/dist/core/tests/generics.test.d.ts +1 -0
  110. package/dist/core.cjs +723 -0
  111. package/dist/core.cjs.map +1 -0
  112. package/dist/core.d.ts +442 -0
  113. package/dist/core.js +698 -0
  114. package/dist/core.js.map +1 -0
  115. package/dist/crypto/ecies/__tests__/base.test.d.ts +4 -0
  116. package/dist/crypto/ecies/__tests__/compatibility.test.d.ts +8 -0
  117. package/dist/crypto/ecies/__tests__/constants.test.d.ts +4 -0
  118. package/dist/crypto/ecies/__tests__/native-parity.test.d.ts +7 -0
  119. package/dist/crypto/ecies/__tests__/normalization.test.d.ts +1 -0
  120. package/dist/crypto/ecies/__tests__/test-vectors.cjs +102 -0
  121. package/dist/crypto/ecies/__tests__/test-vectors.cjs.map +1 -0
  122. package/dist/crypto/ecies/__tests__/test-vectors.d.ts +38 -0
  123. package/dist/crypto/ecies/__tests__/test-vectors.js +77 -0
  124. package/dist/crypto/ecies/__tests__/test-vectors.js.map +1 -0
  125. package/dist/crypto/ecies/base.cjs +232 -0
  126. package/dist/crypto/ecies/base.cjs.map +1 -0
  127. package/dist/crypto/ecies/base.d.ts +140 -0
  128. package/dist/crypto/ecies/base.js +208 -0
  129. package/dist/crypto/ecies/base.js.map +1 -0
  130. package/dist/crypto/ecies/browser.cjs +165 -0
  131. package/dist/crypto/ecies/browser.cjs.map +1 -0
  132. package/dist/crypto/ecies/browser.d.ts +43 -0
  133. package/dist/crypto/ecies/browser.js +131 -0
  134. package/dist/crypto/ecies/browser.js.map +1 -0
  135. package/dist/crypto/ecies/constants.cjs +131 -0
  136. package/dist/crypto/ecies/constants.cjs.map +1 -0
  137. package/dist/crypto/ecies/constants.d.ts +120 -0
  138. package/dist/crypto/ecies/constants.js +101 -0
  139. package/dist/crypto/ecies/constants.js.map +1 -0
  140. package/dist/crypto/ecies/index.cjs +35 -0
  141. package/dist/crypto/ecies/index.cjs.map +1 -0
  142. package/dist/crypto/ecies/index.d.ts +8 -0
  143. package/dist/crypto/ecies/index.js +13 -0
  144. package/dist/crypto/ecies/index.js.map +1 -0
  145. package/dist/crypto/ecies/interface.cjs +87 -0
  146. package/dist/crypto/ecies/interface.cjs.map +1 -0
  147. package/dist/crypto/ecies/interface.d.ts +174 -0
  148. package/dist/crypto/ecies/interface.js +60 -0
  149. package/dist/crypto/ecies/interface.js.map +1 -0
  150. package/dist/crypto/ecies/node.cjs +167 -0
  151. package/dist/crypto/ecies/node.cjs.map +1 -0
  152. package/dist/crypto/ecies/node.d.ts +45 -0
  153. package/dist/crypto/ecies/node.js +139 -0
  154. package/dist/crypto/ecies/node.js.map +1 -0
  155. package/dist/crypto/ecies/test-vectors/eccrypto-vectors.json +72 -0
  156. package/dist/crypto/ecies/utils.cjs +52 -0
  157. package/dist/crypto/ecies/utils.cjs.map +1 -0
  158. package/dist/crypto/ecies/utils.d.ts +30 -0
  159. package/dist/crypto/ecies/utils.js +26 -0
  160. package/dist/crypto/ecies/utils.js.map +1 -0
  161. package/dist/crypto/services/WalletKeyEncryptionService.cjs +128 -0
  162. package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -0
  163. package/dist/crypto/services/WalletKeyEncryptionService.d.ts +88 -0
  164. package/dist/crypto/services/WalletKeyEncryptionService.js +108 -0
  165. package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -0
  166. package/dist/crypto/services/WalletKeyEncryptionService.test.d.ts +1 -0
  167. package/dist/diagnostics.cjs +37 -0
  168. package/dist/diagnostics.cjs.map +1 -0
  169. package/dist/diagnostics.d.ts +24 -0
  170. package/dist/diagnostics.js +13 -0
  171. package/dist/diagnostics.js.map +1 -0
  172. package/dist/diagnostics.test.d.ts +1 -0
  173. package/dist/errors.cjs +157 -0
  174. package/dist/errors.cjs.map +1 -0
  175. package/dist/errors.d.ts +388 -0
  176. package/dist/errors.js +120 -0
  177. package/dist/errors.js.map +1 -0
  178. package/dist/generated/abi/ComputeEngineImplementation.cjs +1313 -0
  179. package/dist/generated/abi/ComputeEngineImplementation.cjs.map +1 -0
  180. package/dist/generated/abi/ComputeEngineImplementation.d.ts +995 -0
  181. package/dist/generated/abi/ComputeEngineImplementation.js +1289 -0
  182. package/dist/generated/abi/ComputeEngineImplementation.js.map +1 -0
  183. package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs +734 -0
  184. package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs.map +1 -0
  185. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +544 -0
  186. package/dist/generated/abi/ComputeInstructionRegistryImplementation.js +710 -0
  187. package/dist/generated/abi/ComputeInstructionRegistryImplementation.js.map +1 -0
  188. package/dist/generated/abi/DATFactoryImplementation.cjs +882 -0
  189. package/dist/generated/abi/DATFactoryImplementation.cjs.map +1 -0
  190. package/dist/generated/abi/DATFactoryImplementation.d.ts +660 -0
  191. package/dist/generated/abi/DATFactoryImplementation.js +858 -0
  192. package/dist/generated/abi/DATFactoryImplementation.js.map +1 -0
  193. package/dist/generated/abi/DATImplementation.cjs +934 -0
  194. package/dist/generated/abi/DATImplementation.cjs.map +1 -0
  195. package/dist/generated/abi/DATImplementation.d.ts +692 -0
  196. package/dist/generated/abi/DATImplementation.js +910 -0
  197. package/dist/generated/abi/DATImplementation.js.map +1 -0
  198. package/dist/generated/abi/DATPausableImplementation.cjs +1523 -0
  199. package/dist/generated/abi/DATPausableImplementation.cjs.map +1 -0
  200. package/dist/generated/abi/DATPausableImplementation.d.ts +1144 -0
  201. package/dist/generated/abi/DATPausableImplementation.js +1499 -0
  202. package/dist/generated/abi/DATPausableImplementation.js.map +1 -0
  203. package/dist/generated/abi/DATVotesImplementation.cjs +1460 -0
  204. package/dist/generated/abi/DATVotesImplementation.cjs.map +1 -0
  205. package/dist/generated/abi/DATVotesImplementation.d.ts +1094 -0
  206. package/dist/generated/abi/DATVotesImplementation.js +1436 -0
  207. package/dist/generated/abi/DATVotesImplementation.js.map +1 -0
  208. package/dist/generated/abi/DLPPerformanceImplementation.cjs +1160 -0
  209. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +1 -0
  210. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +882 -0
  211. package/dist/generated/abi/DLPPerformanceImplementation.js +1136 -0
  212. package/dist/generated/abi/DLPPerformanceImplementation.js.map +1 -0
  213. package/dist/generated/abi/DLPRegistryImplementation.cjs +1469 -0
  214. package/dist/generated/abi/DLPRegistryImplementation.cjs.map +1 -0
  215. package/dist/generated/abi/DLPRegistryImplementation.d.ts +1122 -0
  216. package/dist/generated/abi/DLPRegistryImplementation.js +1445 -0
  217. package/dist/generated/abi/DLPRegistryImplementation.js.map +1 -0
  218. package/dist/generated/abi/DLPRegistryTreasuryImplementation.cjs +612 -0
  219. package/dist/generated/abi/DLPRegistryTreasuryImplementation.cjs.map +1 -0
  220. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +451 -0
  221. package/dist/generated/abi/DLPRegistryTreasuryImplementation.js +588 -0
  222. package/dist/generated/abi/DLPRegistryTreasuryImplementation.js.map +1 -0
  223. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +948 -0
  224. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +1 -0
  225. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +713 -0
  226. package/dist/generated/abi/DLPRewardDeployerImplementation.js +924 -0
  227. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +1 -0
  228. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +612 -0
  229. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +1 -0
  230. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +451 -0
  231. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +588 -0
  232. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +1 -0
  233. package/dist/generated/abi/DLPRewardSwapImplementation.cjs +939 -0
  234. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +1 -0
  235. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +705 -0
  236. package/dist/generated/abi/DLPRewardSwapImplementation.js +915 -0
  237. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +1 -0
  238. package/dist/generated/abi/DLPRootImplementation.cjs +1644 -0
  239. package/dist/generated/abi/DLPRootImplementation.cjs.map +1 -0
  240. package/dist/generated/abi/DLPRootImplementation.d.ts +1246 -0
  241. package/dist/generated/abi/DLPRootImplementation.js +1620 -0
  242. package/dist/generated/abi/DLPRootImplementation.js.map +1 -0
  243. package/dist/generated/abi/DLPTreasuryImplementation.cjs +612 -0
  244. package/dist/generated/abi/DLPTreasuryImplementation.cjs.map +1 -0
  245. package/dist/generated/abi/DLPTreasuryImplementation.d.ts +451 -0
  246. package/dist/generated/abi/DLPTreasuryImplementation.js +588 -0
  247. package/dist/generated/abi/DLPTreasuryImplementation.js.map +1 -0
  248. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +985 -0
  249. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +1 -0
  250. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +735 -0
  251. package/dist/generated/abi/DataLiquidityPoolImplementation.js +961 -0
  252. package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +1 -0
  253. package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs +888 -0
  254. package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs.map +1 -0
  255. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +660 -0
  256. package/dist/generated/abi/DataPortabilityGranteesImplementation.js +864 -0
  257. package/dist/generated/abi/DataPortabilityGranteesImplementation.js.map +1 -0
  258. package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs +1317 -0
  259. package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs.map +1 -0
  260. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +988 -0
  261. package/dist/generated/abi/DataPortabilityPermissionsImplementation.js +1293 -0
  262. package/dist/generated/abi/DataPortabilityPermissionsImplementation.js.map +1 -0
  263. package/dist/generated/abi/DataPortabilityServersImplementation.cjs +1438 -0
  264. package/dist/generated/abi/DataPortabilityServersImplementation.cjs.map +1 -0
  265. package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +1085 -0
  266. package/dist/generated/abi/DataPortabilityServersImplementation.js +1414 -0
  267. package/dist/generated/abi/DataPortabilityServersImplementation.js.map +1 -0
  268. package/dist/generated/abi/DataRefinerRegistryImplementation.cjs +984 -0
  269. package/dist/generated/abi/DataRefinerRegistryImplementation.cjs.map +1 -0
  270. package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +736 -0
  271. package/dist/generated/abi/DataRefinerRegistryImplementation.js +960 -0
  272. package/dist/generated/abi/DataRefinerRegistryImplementation.js.map +1 -0
  273. package/dist/generated/abi/DataRegistryImplementation.cjs +1341 -0
  274. package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -0
  275. package/dist/generated/abi/DataRegistryImplementation.d.ts +1013 -0
  276. package/dist/generated/abi/DataRegistryImplementation.js +1317 -0
  277. package/dist/generated/abi/DataRegistryImplementation.js.map +1 -0
  278. package/dist/generated/abi/QueryEngineImplementation.cjs +1319 -0
  279. package/dist/generated/abi/QueryEngineImplementation.cjs.map +1 -0
  280. package/dist/generated/abi/QueryEngineImplementation.d.ts +1000 -0
  281. package/dist/generated/abi/QueryEngineImplementation.js +1295 -0
  282. package/dist/generated/abi/QueryEngineImplementation.js.map +1 -0
  283. package/dist/generated/abi/SwapHelperImplementation.cjs +1019 -0
  284. package/dist/generated/abi/SwapHelperImplementation.cjs.map +1 -0
  285. package/dist/generated/abi/SwapHelperImplementation.d.ts +763 -0
  286. package/dist/generated/abi/SwapHelperImplementation.js +995 -0
  287. package/dist/generated/abi/SwapHelperImplementation.js.map +1 -0
  288. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.cjs +936 -0
  289. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.cjs.map +1 -0
  290. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +700 -0
  291. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.js +912 -0
  292. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.js.map +1 -0
  293. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.cjs +936 -0
  294. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.cjs.map +1 -0
  295. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +700 -0
  296. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.js +912 -0
  297. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.js.map +1 -0
  298. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.cjs +936 -0
  299. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.cjs.map +1 -0
  300. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +700 -0
  301. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.js +912 -0
  302. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.js.map +1 -0
  303. package/dist/generated/abi/TeePoolImplementation.cjs +1313 -0
  304. package/dist/generated/abi/TeePoolImplementation.cjs.map +1 -0
  305. package/dist/generated/abi/TeePoolImplementation.d.ts +992 -0
  306. package/dist/generated/abi/TeePoolImplementation.js +1289 -0
  307. package/dist/generated/abi/TeePoolImplementation.js.map +1 -0
  308. package/dist/generated/abi/TeePoolPersistentGpuImplementation.cjs +936 -0
  309. package/dist/generated/abi/TeePoolPersistentGpuImplementation.cjs.map +1 -0
  310. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +700 -0
  311. package/dist/generated/abi/TeePoolPersistentGpuImplementation.js +912 -0
  312. package/dist/generated/abi/TeePoolPersistentGpuImplementation.js.map +1 -0
  313. package/dist/generated/abi/TeePoolPersistentStandardImplementation.cjs +936 -0
  314. package/dist/generated/abi/TeePoolPersistentStandardImplementation.cjs.map +1 -0
  315. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +700 -0
  316. package/dist/generated/abi/TeePoolPersistentStandardImplementation.js +912 -0
  317. package/dist/generated/abi/TeePoolPersistentStandardImplementation.js.map +1 -0
  318. package/dist/generated/abi/TeePoolPhalaImplementation.cjs +1313 -0
  319. package/dist/generated/abi/TeePoolPhalaImplementation.cjs.map +1 -0
  320. package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +992 -0
  321. package/dist/generated/abi/TeePoolPhalaImplementation.js +1289 -0
  322. package/dist/generated/abi/TeePoolPhalaImplementation.js.map +1 -0
  323. package/dist/generated/abi/VanaEpochImplementation.cjs +1188 -0
  324. package/dist/generated/abi/VanaEpochImplementation.cjs.map +1 -0
  325. package/dist/generated/abi/VanaEpochImplementation.d.ts +899 -0
  326. package/dist/generated/abi/VanaEpochImplementation.js +1164 -0
  327. package/dist/generated/abi/VanaEpochImplementation.js.map +1 -0
  328. package/dist/generated/abi/VanaPoolEntityImplementation.cjs +1234 -0
  329. package/dist/generated/abi/VanaPoolEntityImplementation.cjs.map +1 -0
  330. package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +933 -0
  331. package/dist/generated/abi/VanaPoolEntityImplementation.js +1210 -0
  332. package/dist/generated/abi/VanaPoolEntityImplementation.js.map +1 -0
  333. package/dist/generated/abi/VanaPoolStakingImplementation.cjs +921 -0
  334. package/dist/generated/abi/VanaPoolStakingImplementation.cjs.map +1 -0
  335. package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +692 -0
  336. package/dist/generated/abi/VanaPoolStakingImplementation.js +897 -0
  337. package/dist/generated/abi/VanaPoolStakingImplementation.js.map +1 -0
  338. package/dist/generated/abi/VanaPoolTreasuryImplementation.cjs +538 -0
  339. package/dist/generated/abi/VanaPoolTreasuryImplementation.cjs.map +1 -0
  340. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +393 -0
  341. package/dist/generated/abi/VanaPoolTreasuryImplementation.js +514 -0
  342. package/dist/generated/abi/VanaPoolTreasuryImplementation.js.map +1 -0
  343. package/dist/generated/abi/index.cjs +177 -0
  344. package/dist/generated/abi/index.cjs.map +1 -0
  345. package/dist/generated/abi/index.d.ts +26545 -0
  346. package/dist/generated/abi/index.js +120 -0
  347. package/dist/generated/abi/index.js.map +1 -0
  348. package/dist/generated/event-types.cjs +17 -0
  349. package/dist/generated/event-types.cjs.map +1 -0
  350. package/dist/generated/event-types.d.ts +854 -0
  351. package/dist/generated/event-types.js +1 -0
  352. package/dist/generated/event-types.js.map +1 -0
  353. package/dist/generated/eventRegistry.cjs +3351 -0
  354. package/dist/generated/eventRegistry.cjs.map +1 -0
  355. package/dist/generated/eventRegistry.d.ts +14 -0
  356. package/dist/generated/eventRegistry.js +3326 -0
  357. package/dist/generated/eventRegistry.js.map +1 -0
  358. package/dist/generated/server/server-exports.cjs +23 -0
  359. package/dist/generated/server/server-exports.cjs.map +1 -0
  360. package/dist/generated/server/server-exports.d.ts +19 -0
  361. package/dist/generated/server/server-exports.js +2 -0
  362. package/dist/generated/server/server-exports.js.map +1 -0
  363. package/dist/generated/server/server.cjs +17 -0
  364. package/dist/generated/server/server.cjs.map +1 -0
  365. package/dist/generated/server/server.d.ts +538 -0
  366. package/dist/generated/server/server.js +1 -0
  367. package/dist/generated/server/server.js.map +1 -0
  368. package/dist/generated/subgraph.cjs +675 -0
  369. package/dist/generated/subgraph.cjs.map +1 -0
  370. package/dist/generated/subgraph.d.ts +5978 -0
  371. package/dist/generated/subgraph.js +644 -0
  372. package/dist/generated/subgraph.js.map +1 -0
  373. package/dist/index.browser.d.ts +152 -0
  374. package/dist/index.browser.js +118 -0
  375. package/dist/index.browser.js.map +1 -0
  376. package/dist/index.cjs +5 -0
  377. package/dist/index.cjs.map +1 -0
  378. package/dist/index.d.ts +0 -0
  379. package/dist/index.js +4 -0
  380. package/dist/index.js.map +1 -0
  381. package/dist/index.node.cjs +172 -0
  382. package/dist/index.node.cjs.map +1 -0
  383. package/dist/index.node.d.ts +180 -0
  384. package/dist/index.node.js +126 -0
  385. package/dist/index.node.js.map +1 -0
  386. package/dist/node.cjs +29 -0
  387. package/dist/node.cjs.map +1 -0
  388. package/dist/node.d.ts +4 -0
  389. package/dist/node.js +5 -0
  390. package/dist/node.js.map +1 -0
  391. package/dist/platform/browser-only.cjs +37 -0
  392. package/dist/platform/browser-only.cjs.map +1 -0
  393. package/dist/platform/browser-only.d.ts +22 -0
  394. package/dist/platform/browser-only.js +12 -0
  395. package/dist/platform/browser-only.js.map +1 -0
  396. package/dist/platform/browser-only.test.d.ts +1 -0
  397. package/dist/platform/browser-safe.cjs +57 -0
  398. package/dist/platform/browser-safe.cjs.map +1 -0
  399. package/dist/platform/browser-safe.d.ts +29 -0
  400. package/dist/platform/browser-safe.js +31 -0
  401. package/dist/platform/browser-safe.js.map +1 -0
  402. package/dist/platform/browser-safe.test.d.ts +1 -0
  403. package/dist/platform/browser.cjs +330 -0
  404. package/dist/platform/browser.cjs.map +1 -0
  405. package/dist/platform/browser.d.ts +71 -0
  406. package/dist/platform/browser.js +296 -0
  407. package/dist/platform/browser.js.map +1 -0
  408. package/dist/platform/browser.test.d.ts +1 -0
  409. package/dist/platform/index.cjs +50 -0
  410. package/dist/platform/index.cjs.map +1 -0
  411. package/dist/platform/index.d.ts +11 -0
  412. package/dist/platform/index.js +27 -0
  413. package/dist/platform/index.js.map +1 -0
  414. package/dist/platform/interface.cjs +17 -0
  415. package/dist/platform/interface.cjs.map +1 -0
  416. package/dist/platform/interface.d.ts +216 -0
  417. package/dist/platform/interface.js +1 -0
  418. package/dist/platform/interface.js.map +1 -0
  419. package/dist/platform/node.cjs +351 -0
  420. package/dist/platform/node.cjs.map +1 -0
  421. package/dist/platform/node.d.ts +23 -0
  422. package/dist/platform/node.js +320 -0
  423. package/dist/platform/node.js.map +1 -0
  424. package/dist/platform/ports/openpgp-port.cjs +74 -0
  425. package/dist/platform/ports/openpgp-port.cjs.map +1 -0
  426. package/dist/platform/ports/openpgp-port.d.ts +13 -0
  427. package/dist/platform/ports/openpgp-port.js +59 -0
  428. package/dist/platform/ports/openpgp-port.js.map +1 -0
  429. package/dist/platform/ports/pgp-port.cjs +17 -0
  430. package/dist/platform/ports/pgp-port.cjs.map +1 -0
  431. package/dist/platform/ports/pgp-port.d.ts +35 -0
  432. package/dist/platform/ports/pgp-port.js +1 -0
  433. package/dist/platform/ports/pgp-port.js.map +1 -0
  434. package/dist/platform/shared/error-utils.cjs +43 -0
  435. package/dist/platform/shared/error-utils.cjs.map +1 -0
  436. package/dist/platform/shared/error-utils.d.ts +23 -0
  437. package/dist/platform/shared/error-utils.js +18 -0
  438. package/dist/platform/shared/error-utils.js.map +1 -0
  439. package/dist/platform/shared/pgp-utils.cjs +55 -0
  440. package/dist/platform/shared/pgp-utils.cjs.map +1 -0
  441. package/dist/platform/shared/pgp-utils.d.ts +59 -0
  442. package/dist/platform/shared/pgp-utils.js +29 -0
  443. package/dist/platform/shared/pgp-utils.js.map +1 -0
  444. package/dist/platform/shared/stream-utils.cjs +49 -0
  445. package/dist/platform/shared/stream-utils.cjs.map +1 -0
  446. package/dist/platform/shared/stream-utils.d.ts +14 -0
  447. package/dist/platform/shared/stream-utils.js +25 -0
  448. package/dist/platform/shared/stream-utils.js.map +1 -0
  449. package/dist/platform/utils.cjs +114 -0
  450. package/dist/platform/utils.cjs.map +1 -0
  451. package/dist/platform/utils.d.ts +49 -0
  452. package/dist/platform/utils.js +76 -0
  453. package/dist/platform/utils.js.map +1 -0
  454. package/dist/platform/utils.test.d.ts +1 -0
  455. package/dist/platform.browser.d.ts +9 -0
  456. package/dist/platform.browser.js +19 -0
  457. package/dist/platform.browser.js.map +1 -0
  458. package/dist/platform.cjs +50 -0
  459. package/dist/platform.cjs.map +1 -0
  460. package/dist/platform.d.ts +11 -0
  461. package/dist/platform.js +27 -0
  462. package/dist/platform.js.map +1 -0
  463. package/dist/platform.node.cjs +50 -0
  464. package/dist/platform.node.cjs.map +1 -0
  465. package/dist/platform.node.d.ts +10 -0
  466. package/dist/platform.node.js +27 -0
  467. package/dist/platform.node.js.map +1 -0
  468. package/dist/schemas/dataSchema.schema.json +53 -0
  469. package/dist/schemas/grantFile.schema.json +43 -0
  470. package/dist/server/relayerHandler.cjs +218 -0
  471. package/dist/server/relayerHandler.cjs.map +1 -0
  472. package/dist/server/relayerHandler.d.ts +36 -0
  473. package/dist/server/relayerHandler.js +194 -0
  474. package/dist/server/relayerHandler.js.map +1 -0
  475. package/dist/storage/index.cjs +44 -0
  476. package/dist/storage/index.cjs.map +1 -0
  477. package/dist/storage/index.d.ts +56 -0
  478. package/dist/storage/index.js +15 -0
  479. package/dist/storage/index.js.map +1 -0
  480. package/dist/storage/manager.cjs +189 -0
  481. package/dist/storage/manager.cjs.map +1 -0
  482. package/dist/storage/manager.d.ts +147 -0
  483. package/dist/storage/manager.js +165 -0
  484. package/dist/storage/manager.js.map +1 -0
  485. package/dist/storage/providers/callback-storage.cjs +177 -0
  486. package/dist/storage/providers/callback-storage.cjs.map +1 -0
  487. package/dist/storage/providers/callback-storage.d.ts +94 -0
  488. package/dist/storage/providers/callback-storage.js +155 -0
  489. package/dist/storage/providers/callback-storage.js.map +1 -0
  490. package/dist/storage/providers/google-drive.cjs +516 -0
  491. package/dist/storage/providers/google-drive.cjs.map +1 -0
  492. package/dist/storage/providers/google-drive.d.ts +152 -0
  493. package/dist/storage/providers/google-drive.js +494 -0
  494. package/dist/storage/providers/google-drive.js.map +1 -0
  495. package/dist/storage/providers/google-drive.test.d.ts +1 -0
  496. package/dist/storage/providers/ipfs.cjs +283 -0
  497. package/dist/storage/providers/ipfs.cjs.map +1 -0
  498. package/dist/storage/providers/ipfs.d.ts +160 -0
  499. package/dist/storage/providers/ipfs.js +261 -0
  500. package/dist/storage/providers/ipfs.js.map +1 -0
  501. package/dist/storage/providers/pinata.cjs +339 -0
  502. package/dist/storage/providers/pinata.cjs.map +1 -0
  503. package/dist/storage/providers/pinata.d.ts +170 -0
  504. package/dist/storage/providers/pinata.js +317 -0
  505. package/dist/storage/providers/pinata.js.map +1 -0
  506. package/dist/storage/tests/callbackStorage.test.d.ts +1 -0
  507. package/dist/storage/tests/googleDriveStorage.test.d.ts +1 -0
  508. package/dist/storage/tests/ipfsStorage.test.d.ts +1 -0
  509. package/dist/storage/tests/pinataStorage.test.d.ts +1 -0
  510. package/dist/storage/tests/storageManager.test.d.ts +1 -0
  511. package/dist/tests/abi.test.d.ts +1 -0
  512. package/dist/tests/chains-definitions.test.d.ts +1 -0
  513. package/dist/tests/core-encryption.test.d.ts +1 -0
  514. package/dist/tests/core-extended.test.d.ts +1 -0
  515. package/dist/tests/core-generics-coverage.test.d.ts +1 -0
  516. package/dist/tests/coverage-boost.test.d.ts +1 -0
  517. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +1 -0
  518. package/dist/tests/data-addfile-permissions-schema.test.d.ts +1 -0
  519. package/dist/tests/data-additional-methods.test.d.ts +1 -0
  520. package/dist/tests/data-controller-edge-cases.test.d.ts +1 -0
  521. package/dist/tests/data-ipfs-gateways.test.d.ts +1 -0
  522. package/dist/tests/data-relayer.test.d.ts +1 -0
  523. package/dist/tests/data-schema-validation.test.d.ts +1 -0
  524. package/dist/tests/data-simple-methods.test.d.ts +1 -0
  525. package/dist/tests/data.test.d.ts +1 -0
  526. package/dist/tests/demo-integration.test.d.ts +1 -0
  527. package/dist/tests/demo-trusted-server-integration.test.d.ts +1 -0
  528. package/dist/tests/download-relayer.test.d.ts +1 -0
  529. package/dist/tests/dual-mode-permissions.test.d.ts +1 -0
  530. package/dist/tests/dual-mode-trusted-servers.test.d.ts +1 -0
  531. package/dist/tests/encryption-correct-implementation.test.d.ts +1 -0
  532. package/dist/tests/encryption-coverage.test.d.ts +1 -0
  533. package/dist/tests/encryption-edge-cases.test.d.ts +1 -0
  534. package/dist/tests/encryption-utils-updated.test.d.ts +1 -0
  535. package/dist/tests/errors-coverage.test.d.ts +1 -0
  536. package/dist/tests/errors.test.d.ts +1 -0
  537. package/dist/tests/factories/mockFactory.d.ts +316 -0
  538. package/dist/tests/fakes/FakeStorageManager.d.ts +200 -0
  539. package/dist/tests/fakes/FakeStorageManager.test.d.ts +1 -0
  540. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +170 -0
  541. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +1 -0
  542. package/dist/tests/fakes/fake-pgp-port.d.ts +13 -0
  543. package/dist/tests/grantValidation-edge-cases.test.d.ts +1 -0
  544. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +1 -0
  545. package/dist/tests/helper-methods.test.d.ts +1 -0
  546. package/dist/tests/helpers/platformTestHelpers.d.ts +106 -0
  547. package/dist/tests/helpers/typedMocks.d.ts +64 -0
  548. package/dist/tests/index-browser.test.d.ts +1 -0
  549. package/dist/tests/index-node.test.d.ts +1 -0
  550. package/dist/tests/index.test.d.ts +1 -0
  551. package/dist/tests/mocks/platformAdapter.d.ts +12 -0
  552. package/dist/tests/new-permissions-methods.test.d.ts +1 -0
  553. package/dist/tests/no-buffer-browser.test.d.ts +1 -0
  554. package/dist/tests/permissions-grantee.test.d.ts +1 -0
  555. package/dist/tests/permissions-revoke-relayer.test.d.ts +1 -0
  556. package/dist/tests/permissions-schema-validation.test.d.ts +1 -0
  557. package/dist/tests/permissions-server-files.test.d.ts +1 -0
  558. package/dist/tests/permissions-trust-servers.test.d.ts +1 -0
  559. package/dist/tests/permissions.test.d.ts +1 -0
  560. package/dist/tests/personal.test.d.ts +1 -0
  561. package/dist/tests/platform-browser.test.d.ts +1 -0
  562. package/dist/tests/platform-crypto-expanded.test.d.ts +1 -0
  563. package/dist/tests/platform-crypto.test.d.ts +1 -0
  564. package/dist/tests/platform-index.test.d.ts +1 -0
  565. package/dist/tests/platform-node.test.d.ts +1 -0
  566. package/dist/tests/platform-shared-utils.test.d.ts +1 -0
  567. package/dist/tests/platform-updated.test.d.ts +1 -0
  568. package/dist/tests/protocol-additional-methods.test.d.ts +1 -0
  569. package/dist/tests/protocol.test.d.ts +1 -0
  570. package/dist/tests/read-only-mode.test.d.ts +1 -0
  571. package/dist/tests/relayer-integration.test.d.ts +1 -0
  572. package/dist/tests/relayer-unified.test.d.ts +1 -0
  573. package/dist/tests/schemas.test.d.ts +1 -0
  574. package/dist/tests/server-relayer-handler.test.d.ts +1 -0
  575. package/dist/tests/setup.d.ts +7 -0
  576. package/dist/tests/signatureFormatter.test.d.ts +1 -0
  577. package/dist/tests/trusted-server-queries.test.d.ts +1 -0
  578. package/dist/tests/typedDataConverter.test.d.ts +1 -0
  579. package/dist/tests/types-contracts.test.d.ts +1 -0
  580. package/dist/tests/types-data.test.d.ts +1 -0
  581. package/dist/tests/types-external-apis.test.d.ts +1 -0
  582. package/dist/tests/types-generics.test.d.ts +1 -0
  583. package/dist/tests/types-permissions.test.d.ts +1 -0
  584. package/dist/tests/types-upload-params.test.d.ts +1 -0
  585. package/dist/tests/types.test.d.ts +1 -0
  586. package/dist/tests/utils-formatters.test.d.ts +1 -0
  587. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +1 -0
  588. package/dist/tests/utils-grantFiles-validation.test.d.ts +1 -0
  589. package/dist/tests/utils-grantFiles.test.d.ts +1 -0
  590. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +1 -0
  591. package/dist/tests/utils-grants.test.d.ts +1 -0
  592. package/dist/tests/utils-ipfs-additional.test.d.ts +1 -0
  593. package/dist/tests/utils-ipfs.test.d.ts +4 -0
  594. package/dist/tests/utils-schemaValidation.test.d.ts +1 -0
  595. package/dist/tests/vana.test.d.ts +1 -0
  596. package/dist/tests/wallet-crypto-compatibility.test.d.ts +1 -0
  597. package/dist/types/blockchain.cjs +17 -0
  598. package/dist/types/blockchain.cjs.map +1 -0
  599. package/dist/types/blockchain.d.ts +57 -0
  600. package/dist/types/blockchain.js +1 -0
  601. package/dist/types/blockchain.js.map +1 -0
  602. package/dist/types/chains-additional.test.d.ts +1 -0
  603. package/dist/types/chains.cjs +36 -0
  604. package/dist/types/chains.cjs.map +1 -0
  605. package/dist/types/chains.d.ts +31 -0
  606. package/dist/types/chains.js +11 -0
  607. package/dist/types/chains.js.map +1 -0
  608. package/dist/types/config.cjs +51 -0
  609. package/dist/types/config.cjs.map +1 -0
  610. package/dist/types/config.d.ts +686 -0
  611. package/dist/types/config.js +23 -0
  612. package/dist/types/config.js.map +1 -0
  613. package/dist/types/contracts.cjs +17 -0
  614. package/dist/types/contracts.cjs.map +1 -0
  615. package/dist/types/contracts.d.ts +65 -0
  616. package/dist/types/contracts.js +1 -0
  617. package/dist/types/contracts.js.map +1 -0
  618. package/dist/types/controller-context.cjs +17 -0
  619. package/dist/types/controller-context.cjs.map +1 -0
  620. package/dist/types/controller-context.d.ts +65 -0
  621. package/dist/types/controller-context.js +1 -0
  622. package/dist/types/controller-context.js.map +1 -0
  623. package/dist/types/data.cjs +17 -0
  624. package/dist/types/data.cjs.map +1 -0
  625. package/dist/types/data.d.ts +762 -0
  626. package/dist/types/data.js +1 -0
  627. package/dist/types/data.js.map +1 -0
  628. package/dist/types/eccrypto-js.d.cjs +2 -0
  629. package/dist/types/eccrypto-js.d.cjs.map +1 -0
  630. package/dist/types/eccrypto-js.d.js +1 -0
  631. package/dist/types/eccrypto-js.d.js.map +1 -0
  632. package/dist/types/external-apis.cjs +61 -0
  633. package/dist/types/external-apis.cjs.map +1 -0
  634. package/dist/types/external-apis.d.ts +184 -0
  635. package/dist/types/external-apis.js +34 -0
  636. package/dist/types/external-apis.js.map +1 -0
  637. package/dist/types/generics.cjs +17 -0
  638. package/dist/types/generics.cjs.map +1 -0
  639. package/dist/types/generics.d.ts +447 -0
  640. package/dist/types/generics.js +1 -0
  641. package/dist/types/generics.js.map +1 -0
  642. package/dist/types/index.cjs +65 -0
  643. package/dist/types/index.cjs.map +1 -0
  644. package/dist/types/index.d.ts +20 -0
  645. package/dist/types/index.js +42 -0
  646. package/dist/types/index.js.map +1 -0
  647. package/dist/types/operations.cjs +65 -0
  648. package/dist/types/operations.cjs.map +1 -0
  649. package/dist/types/operations.d.ts +112 -0
  650. package/dist/types/operations.js +37 -0
  651. package/dist/types/operations.js.map +1 -0
  652. package/dist/types/permissions.cjs +17 -0
  653. package/dist/types/permissions.cjs.map +1 -0
  654. package/dist/types/permissions.d.ts +954 -0
  655. package/dist/types/permissions.js +1 -0
  656. package/dist/types/permissions.js.map +1 -0
  657. package/dist/types/personal.cjs +17 -0
  658. package/dist/types/personal.cjs.map +1 -0
  659. package/dist/types/personal.d.ts +38 -0
  660. package/dist/types/personal.js +1 -0
  661. package/dist/types/personal.js.map +1 -0
  662. package/dist/types/relayer.cjs +17 -0
  663. package/dist/types/relayer.cjs.map +1 -0
  664. package/dist/types/relayer.d.ts +431 -0
  665. package/dist/types/relayer.js +1 -0
  666. package/dist/types/relayer.js.map +1 -0
  667. package/dist/types/storage.cjs +39 -0
  668. package/dist/types/storage.cjs.map +1 -0
  669. package/dist/types/storage.d.ts +129 -0
  670. package/dist/types/storage.js +15 -0
  671. package/dist/types/storage.js.map +1 -0
  672. package/dist/types/transactionResults.cjs +17 -0
  673. package/dist/types/transactionResults.cjs.map +1 -0
  674. package/dist/types/transactionResults.d.ts +193 -0
  675. package/dist/types/transactionResults.js +1 -0
  676. package/dist/types/transactionResults.js.map +1 -0
  677. package/dist/types/utils.cjs +17 -0
  678. package/dist/types/utils.cjs.map +1 -0
  679. package/dist/types/utils.d.ts +816 -0
  680. package/dist/types/utils.js +1 -0
  681. package/dist/types/utils.js.map +1 -0
  682. package/dist/types.cjs +23 -0
  683. package/dist/types.cjs.map +1 -0
  684. package/dist/types.d.ts +30 -0
  685. package/dist/types.js +2 -0
  686. package/dist/types.js.map +1 -0
  687. package/dist/utils/__tests__/parseTransaction.test.d.ts +1 -0
  688. package/dist/utils/__tests__/pojo-serialization.test.d.ts +1 -0
  689. package/dist/utils/__tests__/signatureCache.test.d.ts +1 -0
  690. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +1 -0
  691. package/dist/utils/__tests__/transactionHelpers.test.d.ts +1 -0
  692. package/dist/utils/__tests__/urlResolver.test.d.ts +4 -0
  693. package/dist/utils/blockchain/registry.cjs +81 -0
  694. package/dist/utils/blockchain/registry.cjs.map +1 -0
  695. package/dist/utils/blockchain/registry.d.ts +32 -0
  696. package/dist/utils/blockchain/registry.js +56 -0
  697. package/dist/utils/blockchain/registry.js.map +1 -0
  698. package/dist/utils/blockchain/registry.test.d.ts +1 -0
  699. package/dist/utils/crypto-utils.cjs +108 -0
  700. package/dist/utils/crypto-utils.cjs.map +1 -0
  701. package/dist/utils/crypto-utils.d.ts +100 -0
  702. package/dist/utils/crypto-utils.js +76 -0
  703. package/dist/utils/crypto-utils.js.map +1 -0
  704. package/dist/utils/crypto-utils.test.d.ts +1 -0
  705. package/dist/utils/download.cjs +69 -0
  706. package/dist/utils/download.cjs.map +1 -0
  707. package/dist/utils/download.d.ts +40 -0
  708. package/dist/utils/download.js +45 -0
  709. package/dist/utils/download.js.map +1 -0
  710. package/dist/utils/encoding.cjs +66 -0
  711. package/dist/utils/encoding.cjs.map +1 -0
  712. package/dist/utils/encoding.d.ts +52 -0
  713. package/dist/utils/encoding.js +39 -0
  714. package/dist/utils/encoding.js.map +1 -0
  715. package/dist/utils/encoding.test.d.ts +1 -0
  716. package/dist/utils/encryption.cjs +176 -0
  717. package/dist/utils/encryption.cjs.map +1 -0
  718. package/dist/utils/encryption.d.ts +271 -0
  719. package/dist/utils/encryption.js +142 -0
  720. package/dist/utils/encryption.js.map +1 -0
  721. package/dist/utils/formatters.cjs +55 -0
  722. package/dist/utils/formatters.cjs.map +1 -0
  723. package/dist/utils/formatters.d.ts +118 -0
  724. package/dist/utils/formatters.js +28 -0
  725. package/dist/utils/formatters.js.map +1 -0
  726. package/dist/utils/grantFiles.cjs +178 -0
  727. package/dist/utils/grantFiles.cjs.map +1 -0
  728. package/dist/utils/grantFiles.d.ts +182 -0
  729. package/dist/utils/grantFiles.js +140 -0
  730. package/dist/utils/grantFiles.js.map +1 -0
  731. package/dist/utils/grantValidation.cjs +243 -0
  732. package/dist/utils/grantValidation.cjs.map +1 -0
  733. package/dist/utils/grantValidation.d.ts +147 -0
  734. package/dist/utils/grantValidation.js +201 -0
  735. package/dist/utils/grantValidation.js.map +1 -0
  736. package/dist/utils/grants.cjs +108 -0
  737. package/dist/utils/grants.cjs.map +1 -0
  738. package/dist/utils/grants.d.ts +67 -0
  739. package/dist/utils/grants.js +82 -0
  740. package/dist/utils/grants.js.map +1 -0
  741. package/dist/utils/ipfs.cjs +130 -0
  742. package/dist/utils/ipfs.cjs.map +1 -0
  743. package/dist/utils/ipfs.d.ts +88 -0
  744. package/dist/utils/ipfs.js +99 -0
  745. package/dist/utils/ipfs.js.map +1 -0
  746. package/dist/utils/lazy-import.cjs +38 -0
  747. package/dist/utils/lazy-import.cjs.map +1 -0
  748. package/dist/utils/lazy-import.d.ts +18 -0
  749. package/dist/utils/lazy-import.js +14 -0
  750. package/dist/utils/lazy-import.js.map +1 -0
  751. package/dist/utils/multicall.cjs +233 -0
  752. package/dist/utils/multicall.cjs.map +1 -0
  753. package/dist/utils/multicall.d.ts +126 -0
  754. package/dist/utils/multicall.js +208 -0
  755. package/dist/utils/multicall.js.map +1 -0
  756. package/dist/utils/parseTransactionPojo.cjs +87 -0
  757. package/dist/utils/parseTransactionPojo.cjs.map +1 -0
  758. package/dist/utils/parseTransactionPojo.d.ts +31 -0
  759. package/dist/utils/parseTransactionPojo.js +63 -0
  760. package/dist/utils/parseTransactionPojo.js.map +1 -0
  761. package/dist/utils/schemaValidation.cjs +258 -0
  762. package/dist/utils/schemaValidation.cjs.map +1 -0
  763. package/dist/utils/schemaValidation.d.ts +168 -0
  764. package/dist/utils/schemaValidation.js +219 -0
  765. package/dist/utils/schemaValidation.js.map +1 -0
  766. package/dist/utils/signatureCache.cjs +186 -0
  767. package/dist/utils/signatureCache.cjs.map +1 -0
  768. package/dist/utils/signatureCache.d.ts +131 -0
  769. package/dist/utils/signatureCache.js +161 -0
  770. package/dist/utils/signatureCache.js.map +1 -0
  771. package/dist/utils/signatureFormatter.cjs +42 -0
  772. package/dist/utils/signatureFormatter.cjs.map +1 -0
  773. package/dist/utils/signatureFormatter.d.ts +36 -0
  774. package/dist/utils/signatureFormatter.js +18 -0
  775. package/dist/utils/signatureFormatter.js.map +1 -0
  776. package/dist/utils/tests/multicall.test.d.ts +1 -0
  777. package/dist/utils/transactionHelpers.cjs +54 -0
  778. package/dist/utils/transactionHelpers.cjs.map +1 -0
  779. package/dist/utils/transactionHelpers.d.ts +80 -0
  780. package/dist/utils/transactionHelpers.js +29 -0
  781. package/dist/utils/transactionHelpers.js.map +1 -0
  782. package/dist/utils/typeGuards.cjs +109 -0
  783. package/dist/utils/typeGuards.cjs.map +1 -0
  784. package/dist/utils/typeGuards.d.ts +138 -0
  785. package/dist/utils/typeGuards.js +74 -0
  786. package/dist/utils/typeGuards.js.map +1 -0
  787. package/dist/utils/typedDataConverter.cjs +43 -0
  788. package/dist/utils/typedDataConverter.cjs.map +1 -0
  789. package/dist/utils/typedDataConverter.d.ts +10 -0
  790. package/dist/utils/typedDataConverter.js +19 -0
  791. package/dist/utils/typedDataConverter.js.map +1 -0
  792. package/dist/utils/urlResolver.cjs +55 -0
  793. package/dist/utils/urlResolver.cjs.map +1 -0
  794. package/dist/utils/urlResolver.d.ts +38 -0
  795. package/dist/utils/urlResolver.js +30 -0
  796. package/dist/utils/urlResolver.js.map +1 -0
  797. package/dist/utils/wallet.cjs +63 -0
  798. package/dist/utils/wallet.cjs.map +1 -0
  799. package/dist/utils/wallet.d.ts +32 -0
  800. package/dist/utils/wallet.js +37 -0
  801. package/dist/utils/wallet.js.map +1 -0
  802. package/dist/utils/withEvents.cjs +44 -0
  803. package/dist/utils/withEvents.cjs.map +1 -0
  804. package/dist/utils/withEvents.d.ts +56 -0
  805. package/dist/utils/withEvents.js +18 -0
  806. package/dist/utils/withEvents.js.map +1 -0
  807. package/package.json +32 -16
@@ -0,0 +1,108 @@
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 grants_exports = {};
20
+ __export(grants_exports, {
21
+ checkGrantAccess: () => checkGrantAccess,
22
+ createAndStoreGrant: () => createAndStoreGrant,
23
+ createValidatedGrant: () => createValidatedGrant,
24
+ getGrantTimeRemaining: () => getGrantTimeRemaining,
25
+ isGrantExpired: () => isGrantExpired,
26
+ retrieveAndValidateGrant: () => retrieveAndValidateGrant,
27
+ summarizeGrant: () => summarizeGrant
28
+ });
29
+ module.exports = __toCommonJS(grants_exports);
30
+ var import_grantFiles = require("./grantFiles");
31
+ var import_grantValidation = require("./grantValidation");
32
+ function createValidatedGrant(params) {
33
+ const grantFile = (0, import_grantFiles.createGrantFile)(params);
34
+ try {
35
+ (0, import_grantValidation.validateGrant)(grantFile, {
36
+ schema: true,
37
+ grantee: params.grantee,
38
+ operation: params.operation
39
+ });
40
+ } catch (error) {
41
+ throw new import_grantValidation.GrantValidationError(
42
+ `Created grant file failed validation: ${error instanceof Error ? error.message : "Unknown error"}`,
43
+ { grantFile, params }
44
+ );
45
+ }
46
+ return grantFile;
47
+ }
48
+ async function createAndStoreGrant(params, relayerUrl) {
49
+ const grantFile = createValidatedGrant(params);
50
+ const grantUrl = await (0, import_grantFiles.storeGrantFile)(grantFile, relayerUrl);
51
+ return { grantFile, grantUrl };
52
+ }
53
+ async function retrieveAndValidateGrant(grantUrl, relayerUrl) {
54
+ const grantFile = await (0, import_grantFiles.retrieveGrantFile)(grantUrl, relayerUrl);
55
+ return grantFile;
56
+ }
57
+ async function checkGrantAccess(grantUrl, requestingAddress, operation, _fileIds, relayerUrl) {
58
+ try {
59
+ const grantFile = await retrieveAndValidateGrant(grantUrl, relayerUrl);
60
+ (0, import_grantValidation.validateGrant)(grantFile, {
61
+ schema: true,
62
+ grantee: requestingAddress,
63
+ operation
64
+ });
65
+ return { allowed: true, grantFile };
66
+ } catch (error) {
67
+ if (error instanceof import_grantValidation.GrantValidationError) {
68
+ return {
69
+ allowed: false,
70
+ reason: error.message
71
+ };
72
+ }
73
+ return {
74
+ allowed: false,
75
+ reason: `Grant access check failed: ${error instanceof Error ? error.message : "Unknown error"}`
76
+ };
77
+ }
78
+ }
79
+ function isGrantExpired(grantFile) {
80
+ if (!grantFile.expires) {
81
+ return false;
82
+ }
83
+ const now = Math.floor(Date.now() / 1e3);
84
+ return now > grantFile.expires;
85
+ }
86
+ function getGrantTimeRemaining(grantFile) {
87
+ if (!grantFile.expires) {
88
+ return null;
89
+ }
90
+ const now = Math.floor(Date.now() / 1e3);
91
+ const remaining = grantFile.expires - now;
92
+ return Math.max(0, remaining);
93
+ }
94
+ function summarizeGrant(grantFile) {
95
+ const expiration = grantFile.expires ? new Date(grantFile.expires * 1e3).toISOString() : "No expiration";
96
+ return `Grant for ${grantFile.grantee} to perform "${grantFile.operation}" (expires: ${expiration})`;
97
+ }
98
+ // Annotate the CommonJS export names for ESM import in node:
99
+ 0 && (module.exports = {
100
+ checkGrantAccess,
101
+ createAndStoreGrant,
102
+ createValidatedGrant,
103
+ getGrantTimeRemaining,
104
+ isGrantExpired,
105
+ retrieveAndValidateGrant,
106
+ summarizeGrant
107
+ });
108
+ //# sourceMappingURL=grants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/grants.ts"],"sourcesContent":["import type { Address } from \"viem\";\nimport type { GrantFile, GrantPermissionParams } from \"../types/permissions\";\nimport {\n createGrantFile,\n storeGrantFile,\n retrieveGrantFile,\n} from \"./grantFiles\";\nimport { validateGrant, GrantValidationError } from \"./grantValidation\";\n\n/**\n * High-level utilities for working with grants in the Vana SDK\n */\n\n/**\n * Creates and validates a grant file from permission parameters\n *\n * @param params - The permission parameters to create and validate the grant from\n * @returns The validated grant file object\n */\nexport function createValidatedGrant(params: GrantPermissionParams): GrantFile {\n const grantFile = createGrantFile(params);\n\n // Validate the created grant file\n try {\n validateGrant(grantFile, {\n schema: true,\n grantee: params.grantee,\n operation: params.operation,\n });\n } catch (error) {\n throw new GrantValidationError(\n `Created grant file failed validation: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n { grantFile, params },\n );\n }\n\n return grantFile;\n}\n\n/**\n * Creates a grant file and stores it in IPFS\n *\n * @param params - The permission parameters to create the grant from\n * @param relayerUrl - The URL of the relayer service for IPFS storage\n * @returns Promise resolving to an object containing the grant file and its IPFS URL\n */\nexport async function createAndStoreGrant(\n params: GrantPermissionParams,\n relayerUrl: string,\n): Promise<{ grantFile: GrantFile; grantUrl: string }> {\n const grantFile = createValidatedGrant(params);\n const grantUrl = await storeGrantFile(grantFile, relayerUrl);\n\n return { grantFile, grantUrl };\n}\n\n/**\n * Retrieves and validates a grant file from IPFS\n *\n * @param grantUrl - The IPFS URL of the grant file to retrieve\n * @param relayerUrl - Optional URL of the relayer service\n * @returns Promise resolving to the validated grant file\n */\nexport async function retrieveAndValidateGrant(\n grantUrl: string,\n relayerUrl?: string,\n): Promise<GrantFile> {\n const grantFile = await retrieveGrantFile(grantUrl, relayerUrl);\n\n // Additional validation can be added here if needed\n return grantFile;\n}\n\n/**\n * Checks if a grant allows access for a specific request\n *\n * @param grantUrl - The IPFS URL of the grant file to check\n * @param requestingAddress - The address making the access request\n * @param operation - The operation being requested\n * @param _fileIds - Array of file IDs being accessed (currently unused but part of interface)\n * @param relayerUrl - Optional URL of the relayer service\n * @returns Promise resolving to access result with allowed status, reason, and grant file\n */\nexport async function checkGrantAccess(\n grantUrl: string,\n requestingAddress: Address,\n operation: string,\n _fileIds: number[],\n relayerUrl?: string,\n): Promise<{ allowed: boolean; reason?: string; grantFile?: GrantFile }> {\n try {\n const grantFile = await retrieveAndValidateGrant(grantUrl, relayerUrl);\n\n // Validate the grant for the request\n validateGrant(grantFile, {\n schema: true,\n grantee: requestingAddress,\n operation,\n });\n\n return { allowed: true, grantFile };\n } catch (error) {\n if (error instanceof GrantValidationError) {\n return {\n allowed: false,\n reason: error.message,\n };\n }\n\n return {\n allowed: false,\n reason: `Grant access check failed: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n };\n }\n}\n\n/**\n * Utility to check if a grant has expired\n *\n * @param grantFile - The grant file to check for expiration\n * @returns True if the grant has expired, false otherwise\n */\nexport function isGrantExpired(grantFile: GrantFile): boolean {\n if (!grantFile.expires) {\n return false; // No expiration set\n }\n\n const now = Math.floor(Date.now() / 1000);\n return now > grantFile.expires;\n}\n\n/**\n * Utility to get the time remaining before grant expires (in seconds)\n *\n * @param grantFile - The grant file to check time remaining for\n * @returns Number of seconds remaining, or null if no expiration is set\n */\nexport function getGrantTimeRemaining(grantFile: GrantFile): number | null {\n if (!grantFile.expires) {\n return null; // No expiration set\n }\n\n const now = Math.floor(Date.now() / 1000);\n const remaining = grantFile.expires - now;\n return Math.max(0, remaining);\n}\n\n/**\n * Creates a human-readable summary of a grant\n *\n * @param grantFile - The grant file to create a summary for\n * @returns A human-readable string describing the grant\n */\nexport function summarizeGrant(grantFile: GrantFile): string {\n const expiration = grantFile.expires\n ? new Date(grantFile.expires * 1000).toISOString()\n : \"No expiration\";\n\n return `Grant for ${grantFile.grantee} to perform \"${grantFile.operation}\" (expires: ${expiration})`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,wBAIO;AACP,6BAAoD;AAY7C,SAAS,qBAAqB,QAA0C;AAC7E,QAAM,gBAAY,mCAAgB,MAAM;AAGxC,MAAI;AACF,8CAAc,WAAW;AAAA,MACvB,QAAQ;AAAA,MACR,SAAS,OAAO;AAAA,MAChB,WAAW,OAAO;AAAA,IACpB,CAAC;AAAA,EACH,SAAS,OAAO;AACd,UAAM,IAAI;AAAA,MACR,yCAAyC,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,MACjG,EAAE,WAAW,OAAO;AAAA,IACtB;AAAA,EACF;AAEA,SAAO;AACT;AASA,eAAsB,oBACpB,QACA,YACqD;AACrD,QAAM,YAAY,qBAAqB,MAAM;AAC7C,QAAM,WAAW,UAAM,kCAAe,WAAW,UAAU;AAE3D,SAAO,EAAE,WAAW,SAAS;AAC/B;AASA,eAAsB,yBACpB,UACA,YACoB;AACpB,QAAM,YAAY,UAAM,qCAAkB,UAAU,UAAU;AAG9D,SAAO;AACT;AAYA,eAAsB,iBACpB,UACA,mBACA,WACA,UACA,YACuE;AACvE,MAAI;AACF,UAAM,YAAY,MAAM,yBAAyB,UAAU,UAAU;AAGrE,8CAAc,WAAW;AAAA,MACvB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT;AAAA,IACF,CAAC;AAED,WAAO,EAAE,SAAS,MAAM,UAAU;AAAA,EACpC,SAAS,OAAO;AACd,QAAI,iBAAiB,6CAAsB;AACzC,aAAO;AAAA,QACL,SAAS;AAAA,QACT,QAAQ,MAAM;AAAA,MAChB;AAAA,IACF;AAEA,WAAO;AAAA,MACL,SAAS;AAAA,MACT,QAAQ,8BAA8B,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,IAChG;AAAA,EACF;AACF;AAQO,SAAS,eAAe,WAA+B;AAC5D,MAAI,CAAC,UAAU,SAAS;AACtB,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI;AACxC,SAAO,MAAM,UAAU;AACzB;AAQO,SAAS,sBAAsB,WAAqC;AACzE,MAAI,CAAC,UAAU,SAAS;AACtB,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI;AACxC,QAAM,YAAY,UAAU,UAAU;AACtC,SAAO,KAAK,IAAI,GAAG,SAAS;AAC9B;AAQO,SAAS,eAAe,WAA8B;AAC3D,QAAM,aAAa,UAAU,UACzB,IAAI,KAAK,UAAU,UAAU,GAAI,EAAE,YAAY,IAC/C;AAEJ,SAAO,aAAa,UAAU,OAAO,gBAAgB,UAAU,SAAS,eAAe,UAAU;AACnG;","names":[]}
@@ -0,0 +1,67 @@
1
+ import type { Address } from "viem";
2
+ import type { GrantFile, GrantPermissionParams } from "../types/permissions";
3
+ /**
4
+ * High-level utilities for working with grants in the Vana SDK
5
+ */
6
+ /**
7
+ * Creates and validates a grant file from permission parameters
8
+ *
9
+ * @param params - The permission parameters to create and validate the grant from
10
+ * @returns The validated grant file object
11
+ */
12
+ export declare function createValidatedGrant(params: GrantPermissionParams): GrantFile;
13
+ /**
14
+ * Creates a grant file and stores it in IPFS
15
+ *
16
+ * @param params - The permission parameters to create the grant from
17
+ * @param relayerUrl - The URL of the relayer service for IPFS storage
18
+ * @returns Promise resolving to an object containing the grant file and its IPFS URL
19
+ */
20
+ export declare function createAndStoreGrant(params: GrantPermissionParams, relayerUrl: string): Promise<{
21
+ grantFile: GrantFile;
22
+ grantUrl: string;
23
+ }>;
24
+ /**
25
+ * Retrieves and validates a grant file from IPFS
26
+ *
27
+ * @param grantUrl - The IPFS URL of the grant file to retrieve
28
+ * @param relayerUrl - Optional URL of the relayer service
29
+ * @returns Promise resolving to the validated grant file
30
+ */
31
+ export declare function retrieveAndValidateGrant(grantUrl: string, relayerUrl?: string): Promise<GrantFile>;
32
+ /**
33
+ * Checks if a grant allows access for a specific request
34
+ *
35
+ * @param grantUrl - The IPFS URL of the grant file to check
36
+ * @param requestingAddress - The address making the access request
37
+ * @param operation - The operation being requested
38
+ * @param _fileIds - Array of file IDs being accessed (currently unused but part of interface)
39
+ * @param relayerUrl - Optional URL of the relayer service
40
+ * @returns Promise resolving to access result with allowed status, reason, and grant file
41
+ */
42
+ export declare function checkGrantAccess(grantUrl: string, requestingAddress: Address, operation: string, _fileIds: number[], relayerUrl?: string): Promise<{
43
+ allowed: boolean;
44
+ reason?: string;
45
+ grantFile?: GrantFile;
46
+ }>;
47
+ /**
48
+ * Utility to check if a grant has expired
49
+ *
50
+ * @param grantFile - The grant file to check for expiration
51
+ * @returns True if the grant has expired, false otherwise
52
+ */
53
+ export declare function isGrantExpired(grantFile: GrantFile): boolean;
54
+ /**
55
+ * Utility to get the time remaining before grant expires (in seconds)
56
+ *
57
+ * @param grantFile - The grant file to check time remaining for
58
+ * @returns Number of seconds remaining, or null if no expiration is set
59
+ */
60
+ export declare function getGrantTimeRemaining(grantFile: GrantFile): number | null;
61
+ /**
62
+ * Creates a human-readable summary of a grant
63
+ *
64
+ * @param grantFile - The grant file to create a summary for
65
+ * @returns A human-readable string describing the grant
66
+ */
67
+ export declare function summarizeGrant(grantFile: GrantFile): string;
@@ -0,0 +1,82 @@
1
+ import {
2
+ createGrantFile,
3
+ storeGrantFile,
4
+ retrieveGrantFile
5
+ } from "./grantFiles";
6
+ import { validateGrant, GrantValidationError } from "./grantValidation";
7
+ function createValidatedGrant(params) {
8
+ const grantFile = createGrantFile(params);
9
+ try {
10
+ validateGrant(grantFile, {
11
+ schema: true,
12
+ grantee: params.grantee,
13
+ operation: params.operation
14
+ });
15
+ } catch (error) {
16
+ throw new GrantValidationError(
17
+ `Created grant file failed validation: ${error instanceof Error ? error.message : "Unknown error"}`,
18
+ { grantFile, params }
19
+ );
20
+ }
21
+ return grantFile;
22
+ }
23
+ async function createAndStoreGrant(params, relayerUrl) {
24
+ const grantFile = createValidatedGrant(params);
25
+ const grantUrl = await storeGrantFile(grantFile, relayerUrl);
26
+ return { grantFile, grantUrl };
27
+ }
28
+ async function retrieveAndValidateGrant(grantUrl, relayerUrl) {
29
+ const grantFile = await retrieveGrantFile(grantUrl, relayerUrl);
30
+ return grantFile;
31
+ }
32
+ async function checkGrantAccess(grantUrl, requestingAddress, operation, _fileIds, relayerUrl) {
33
+ try {
34
+ const grantFile = await retrieveAndValidateGrant(grantUrl, relayerUrl);
35
+ validateGrant(grantFile, {
36
+ schema: true,
37
+ grantee: requestingAddress,
38
+ operation
39
+ });
40
+ return { allowed: true, grantFile };
41
+ } catch (error) {
42
+ if (error instanceof GrantValidationError) {
43
+ return {
44
+ allowed: false,
45
+ reason: error.message
46
+ };
47
+ }
48
+ return {
49
+ allowed: false,
50
+ reason: `Grant access check failed: ${error instanceof Error ? error.message : "Unknown error"}`
51
+ };
52
+ }
53
+ }
54
+ function isGrantExpired(grantFile) {
55
+ if (!grantFile.expires) {
56
+ return false;
57
+ }
58
+ const now = Math.floor(Date.now() / 1e3);
59
+ return now > grantFile.expires;
60
+ }
61
+ function getGrantTimeRemaining(grantFile) {
62
+ if (!grantFile.expires) {
63
+ return null;
64
+ }
65
+ const now = Math.floor(Date.now() / 1e3);
66
+ const remaining = grantFile.expires - now;
67
+ return Math.max(0, remaining);
68
+ }
69
+ function summarizeGrant(grantFile) {
70
+ const expiration = grantFile.expires ? new Date(grantFile.expires * 1e3).toISOString() : "No expiration";
71
+ return `Grant for ${grantFile.grantee} to perform "${grantFile.operation}" (expires: ${expiration})`;
72
+ }
73
+ export {
74
+ checkGrantAccess,
75
+ createAndStoreGrant,
76
+ createValidatedGrant,
77
+ getGrantTimeRemaining,
78
+ isGrantExpired,
79
+ retrieveAndValidateGrant,
80
+ summarizeGrant
81
+ };
82
+ //# sourceMappingURL=grants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/grants.ts"],"sourcesContent":["import type { Address } from \"viem\";\nimport type { GrantFile, GrantPermissionParams } from \"../types/permissions\";\nimport {\n createGrantFile,\n storeGrantFile,\n retrieveGrantFile,\n} from \"./grantFiles\";\nimport { validateGrant, GrantValidationError } from \"./grantValidation\";\n\n/**\n * High-level utilities for working with grants in the Vana SDK\n */\n\n/**\n * Creates and validates a grant file from permission parameters\n *\n * @param params - The permission parameters to create and validate the grant from\n * @returns The validated grant file object\n */\nexport function createValidatedGrant(params: GrantPermissionParams): GrantFile {\n const grantFile = createGrantFile(params);\n\n // Validate the created grant file\n try {\n validateGrant(grantFile, {\n schema: true,\n grantee: params.grantee,\n operation: params.operation,\n });\n } catch (error) {\n throw new GrantValidationError(\n `Created grant file failed validation: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n { grantFile, params },\n );\n }\n\n return grantFile;\n}\n\n/**\n * Creates a grant file and stores it in IPFS\n *\n * @param params - The permission parameters to create the grant from\n * @param relayerUrl - The URL of the relayer service for IPFS storage\n * @returns Promise resolving to an object containing the grant file and its IPFS URL\n */\nexport async function createAndStoreGrant(\n params: GrantPermissionParams,\n relayerUrl: string,\n): Promise<{ grantFile: GrantFile; grantUrl: string }> {\n const grantFile = createValidatedGrant(params);\n const grantUrl = await storeGrantFile(grantFile, relayerUrl);\n\n return { grantFile, grantUrl };\n}\n\n/**\n * Retrieves and validates a grant file from IPFS\n *\n * @param grantUrl - The IPFS URL of the grant file to retrieve\n * @param relayerUrl - Optional URL of the relayer service\n * @returns Promise resolving to the validated grant file\n */\nexport async function retrieveAndValidateGrant(\n grantUrl: string,\n relayerUrl?: string,\n): Promise<GrantFile> {\n const grantFile = await retrieveGrantFile(grantUrl, relayerUrl);\n\n // Additional validation can be added here if needed\n return grantFile;\n}\n\n/**\n * Checks if a grant allows access for a specific request\n *\n * @param grantUrl - The IPFS URL of the grant file to check\n * @param requestingAddress - The address making the access request\n * @param operation - The operation being requested\n * @param _fileIds - Array of file IDs being accessed (currently unused but part of interface)\n * @param relayerUrl - Optional URL of the relayer service\n * @returns Promise resolving to access result with allowed status, reason, and grant file\n */\nexport async function checkGrantAccess(\n grantUrl: string,\n requestingAddress: Address,\n operation: string,\n _fileIds: number[],\n relayerUrl?: string,\n): Promise<{ allowed: boolean; reason?: string; grantFile?: GrantFile }> {\n try {\n const grantFile = await retrieveAndValidateGrant(grantUrl, relayerUrl);\n\n // Validate the grant for the request\n validateGrant(grantFile, {\n schema: true,\n grantee: requestingAddress,\n operation,\n });\n\n return { allowed: true, grantFile };\n } catch (error) {\n if (error instanceof GrantValidationError) {\n return {\n allowed: false,\n reason: error.message,\n };\n }\n\n return {\n allowed: false,\n reason: `Grant access check failed: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n };\n }\n}\n\n/**\n * Utility to check if a grant has expired\n *\n * @param grantFile - The grant file to check for expiration\n * @returns True if the grant has expired, false otherwise\n */\nexport function isGrantExpired(grantFile: GrantFile): boolean {\n if (!grantFile.expires) {\n return false; // No expiration set\n }\n\n const now = Math.floor(Date.now() / 1000);\n return now > grantFile.expires;\n}\n\n/**\n * Utility to get the time remaining before grant expires (in seconds)\n *\n * @param grantFile - The grant file to check time remaining for\n * @returns Number of seconds remaining, or null if no expiration is set\n */\nexport function getGrantTimeRemaining(grantFile: GrantFile): number | null {\n if (!grantFile.expires) {\n return null; // No expiration set\n }\n\n const now = Math.floor(Date.now() / 1000);\n const remaining = grantFile.expires - now;\n return Math.max(0, remaining);\n}\n\n/**\n * Creates a human-readable summary of a grant\n *\n * @param grantFile - The grant file to create a summary for\n * @returns A human-readable string describing the grant\n */\nexport function summarizeGrant(grantFile: GrantFile): string {\n const expiration = grantFile.expires\n ? new Date(grantFile.expires * 1000).toISOString()\n : \"No expiration\";\n\n return `Grant for ${grantFile.grantee} to perform \"${grantFile.operation}\" (expires: ${expiration})`;\n}\n"],"mappings":"AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,eAAe,4BAA4B;AAY7C,SAAS,qBAAqB,QAA0C;AAC7E,QAAM,YAAY,gBAAgB,MAAM;AAGxC,MAAI;AACF,kBAAc,WAAW;AAAA,MACvB,QAAQ;AAAA,MACR,SAAS,OAAO;AAAA,MAChB,WAAW,OAAO;AAAA,IACpB,CAAC;AAAA,EACH,SAAS,OAAO;AACd,UAAM,IAAI;AAAA,MACR,yCAAyC,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,MACjG,EAAE,WAAW,OAAO;AAAA,IACtB;AAAA,EACF;AAEA,SAAO;AACT;AASA,eAAsB,oBACpB,QACA,YACqD;AACrD,QAAM,YAAY,qBAAqB,MAAM;AAC7C,QAAM,WAAW,MAAM,eAAe,WAAW,UAAU;AAE3D,SAAO,EAAE,WAAW,SAAS;AAC/B;AASA,eAAsB,yBACpB,UACA,YACoB;AACpB,QAAM,YAAY,MAAM,kBAAkB,UAAU,UAAU;AAG9D,SAAO;AACT;AAYA,eAAsB,iBACpB,UACA,mBACA,WACA,UACA,YACuE;AACvE,MAAI;AACF,UAAM,YAAY,MAAM,yBAAyB,UAAU,UAAU;AAGrE,kBAAc,WAAW;AAAA,MACvB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT;AAAA,IACF,CAAC;AAED,WAAO,EAAE,SAAS,MAAM,UAAU;AAAA,EACpC,SAAS,OAAO;AACd,QAAI,iBAAiB,sBAAsB;AACzC,aAAO;AAAA,QACL,SAAS;AAAA,QACT,QAAQ,MAAM;AAAA,MAChB;AAAA,IACF;AAEA,WAAO;AAAA,MACL,SAAS;AAAA,MACT,QAAQ,8BAA8B,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,IAChG;AAAA,EACF;AACF;AAQO,SAAS,eAAe,WAA+B;AAC5D,MAAI,CAAC,UAAU,SAAS;AACtB,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI;AACxC,SAAO,MAAM,UAAU;AACzB;AAQO,SAAS,sBAAsB,WAAqC;AACzE,MAAI,CAAC,UAAU,SAAS;AACtB,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI;AACxC,QAAM,YAAY,UAAU,UAAU;AACtC,SAAO,KAAK,IAAI,GAAG,SAAS;AAC9B;AAQO,SAAS,eAAe,WAA8B;AAC3D,QAAM,aAAa,UAAU,UACzB,IAAI,KAAK,UAAU,UAAU,GAAI,EAAE,YAAY,IAC/C;AAEJ,SAAO,aAAa,UAAU,OAAO,gBAAgB,UAAU,SAAS,eAAe,UAAU;AACnG;","names":[]}
@@ -0,0 +1,130 @@
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 ipfs_exports = {};
20
+ __export(ipfs_exports, {
21
+ DEFAULT_IPFS_GATEWAY: () => DEFAULT_IPFS_GATEWAY,
22
+ IPFS_GATEWAYS: () => IPFS_GATEWAYS,
23
+ convertIpfsUrl: () => convertIpfsUrl,
24
+ convertIpfsUrlWithFallbacks: () => convertIpfsUrlWithFallbacks,
25
+ extractIpfsHash: () => extractIpfsHash,
26
+ fetchWithFallbacks: () => fetchWithFallbacks,
27
+ getGatewayUrls: () => getGatewayUrls,
28
+ isIpfsUrl: () => isIpfsUrl
29
+ });
30
+ module.exports = __toCommonJS(ipfs_exports);
31
+ const DEFAULT_IPFS_GATEWAY = "https://dweb.link/ipfs/";
32
+ const IPFS_GATEWAYS = [
33
+ "https://dweb.link/ipfs/",
34
+ // Interplanetary Shipyard - highly reliable
35
+ "https://ipfs.io/ipfs/",
36
+ // IPFS Foundation - reliable
37
+ "https://cloudflare-ipfs.com/ipfs/",
38
+ // Cloudflare - good performance
39
+ "https://gateway.pinata.cloud/ipfs/",
40
+ // Pinata - backup option (has rate limits)
41
+ "https://ipfs.filebase.io/ipfs/"
42
+ // Filebase - emerging reliable option
43
+ ];
44
+ function isIpfsUrl(url) {
45
+ return url.startsWith("ipfs://");
46
+ }
47
+ function convertIpfsUrl(url, gateway = DEFAULT_IPFS_GATEWAY) {
48
+ if (isIpfsUrl(url)) {
49
+ const hash = url.replace("ipfs://", "");
50
+ return `${gateway}${hash}`;
51
+ }
52
+ return url;
53
+ }
54
+ function extractIpfsHash(url) {
55
+ const patterns = [
56
+ /ipfs\/([a-zA-Z0-9]+)/,
57
+ // https://gateway.pinata.cloud/ipfs/HASH
58
+ /^ipfs:\/\/([a-zA-Z0-9]+)$/,
59
+ // ipfs://HASH
60
+ /^([a-zA-Z0-9]{46,})$/
61
+ // Just the hash (46+ chars for IPFS hashes)
62
+ ];
63
+ for (const pattern of patterns) {
64
+ const match = url.match(pattern);
65
+ if (match) {
66
+ return match[1];
67
+ }
68
+ }
69
+ return null;
70
+ }
71
+ function getGatewayUrls(hash) {
72
+ return IPFS_GATEWAYS.map((gateway) => `${gateway}${hash}`);
73
+ }
74
+ function convertIpfsUrlWithFallbacks(url) {
75
+ const hash = extractIpfsHash(url);
76
+ if (hash) {
77
+ return getGatewayUrls(hash);
78
+ }
79
+ return [url];
80
+ }
81
+ async function fetchWithFallbacks(url, options) {
82
+ const hash = extractIpfsHash(url);
83
+ if (!hash) {
84
+ return fetch(url, options);
85
+ }
86
+ const gatewayUrls = getGatewayUrls(hash);
87
+ let lastError = null;
88
+ for (let i = 0; i < gatewayUrls.length; i++) {
89
+ const gatewayUrl = gatewayUrls[i];
90
+ try {
91
+ const response = await fetch(gatewayUrl, {
92
+ ...options,
93
+ // Add timeout to avoid hanging on slow gateways
94
+ signal: AbortSignal.timeout(1e4)
95
+ // 10 second timeout
96
+ });
97
+ if (response.ok) {
98
+ return response;
99
+ }
100
+ if (response.status === 429) {
101
+ lastError = new Error(`Gateway rate limited: ${gatewayUrl}`);
102
+ continue;
103
+ }
104
+ lastError = new Error(`Gateway error ${response.status}: ${gatewayUrl}`);
105
+ } catch (error) {
106
+ lastError = error instanceof Error ? error : new Error(String(error));
107
+ if (lastError.message.includes("429") || lastError.name === "TimeoutError") {
108
+ continue;
109
+ }
110
+ }
111
+ if (i < gatewayUrls.length - 1) {
112
+ await new Promise((resolve) => setTimeout(resolve, 1e3 * (i + 1)));
113
+ }
114
+ }
115
+ throw new Error(
116
+ `All IPFS gateways failed for hash ${hash}. Last error: ${lastError?.message}`
117
+ );
118
+ }
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ DEFAULT_IPFS_GATEWAY,
122
+ IPFS_GATEWAYS,
123
+ convertIpfsUrl,
124
+ convertIpfsUrlWithFallbacks,
125
+ extractIpfsHash,
126
+ fetchWithFallbacks,
127
+ getGatewayUrls,
128
+ isIpfsUrl
129
+ });
130
+ //# sourceMappingURL=ipfs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/ipfs.ts"],"sourcesContent":["/**\n * IPFS URL utilities for the Vana SDK\n *\n * Centralized functions for handling IPFS URLs, converting them to gateway URLs,\n * and extracting IPFS hashes from various URL formats.\n */\n\n/**\n * Default IPFS gateway URL\n */\nexport const DEFAULT_IPFS_GATEWAY = \"https://dweb.link/ipfs/\";\n\n/**\n * Alternative IPFS gateways for fallback - ordered by reliability and rate limits\n */\nexport const IPFS_GATEWAYS = [\n \"https://dweb.link/ipfs/\", // Interplanetary Shipyard - highly reliable\n \"https://ipfs.io/ipfs/\", // IPFS Foundation - reliable\n \"https://cloudflare-ipfs.com/ipfs/\", // Cloudflare - good performance\n \"https://gateway.pinata.cloud/ipfs/\", // Pinata - backup option (has rate limits)\n \"https://ipfs.filebase.io/ipfs/\", // Filebase - emerging reliable option\n] as const;\n\n/**\n * Check if a URL is an IPFS URL (starts with ipfs://)\n *\n * @param url - The URL to check\n * @returns True if the URL is an IPFS URL\n */\nexport function isIpfsUrl(url: string): boolean {\n return url.startsWith(\"ipfs://\");\n}\n\n/**\n * Convert an IPFS URL to an HTTP gateway URL\n *\n * @param url - The IPFS URL to convert (e.g., \"ipfs://QmHash...\")\n * @param gateway - Optional gateway URL (defaults to DEFAULT_IPFS_GATEWAY)\n * @returns The HTTP gateway URL or original URL if not an IPFS URL\n * @example\n * ```ts\n * convertIpfsUrl(\"ipfs://QmHash123\")\n * // Returns: \"https://ipfs.io/ipfs/QmHash123\"\n *\n * convertIpfsUrl(\"ipfs://QmHash123\", \"https://gateway.pinata.cloud/ipfs/\")\n * // Returns: \"https://gateway.pinata.cloud/ipfs/QmHash123\"\n * ```\n */\nexport function convertIpfsUrl(\n url: string,\n gateway: string = DEFAULT_IPFS_GATEWAY,\n): string {\n if (isIpfsUrl(url)) {\n const hash = url.replace(\"ipfs://\", \"\");\n return `${gateway}${hash}`;\n }\n return url;\n}\n\n/**\n * Extract IPFS hash from various URL formats\n *\n * **Edge Cases:**\n * - Returns null for non-IPFS URLs or malformed hashes\n * - Handles both CIDv0 (starts with Qm) and CIDv1 formats\n * - Minimum 46 characters required for standalone hash detection\n * - Gateway paths with subdirectories are not supported\n *\n * @param url - The URL to extract hash from\n * @returns The IPFS hash or null if not found\n * @example\n * ```ts\n * extractIpfsHash(\"ipfs://QmHash123\") // Returns: \"QmHash123\"\n * extractIpfsHash(\"https://gateway.pinata.cloud/ipfs/QmHash123\") // Returns: \"QmHash123\"\n * extractIpfsHash(\"QmHash123456789012345678901234567890123456\") // Returns: \"QmHash123456789012345678901234567890123456\"\n * extractIpfsHash(\"https://example.com/file.json\") // Returns: null (not IPFS)\n * extractIpfsHash(\"ipfs://QmHash/subdirectory\") // Returns: null (subdirectories not supported)\n * ```\n */\nexport function extractIpfsHash(url: string): string | null {\n // Handle various IPFS URL formats\n const patterns = [\n /ipfs\\/([a-zA-Z0-9]+)/, // https://gateway.pinata.cloud/ipfs/HASH\n /^ipfs:\\/\\/([a-zA-Z0-9]+)$/, // ipfs://HASH\n /^([a-zA-Z0-9]{46,})$/, // Just the hash (46+ chars for IPFS hashes)\n ];\n\n for (const pattern of patterns) {\n const match = url.match(pattern);\n if (match) {\n return match[1];\n }\n }\n\n return null;\n}\n\n/**\n * Get multiple gateway URLs for an IPFS hash (useful for fallback)\n *\n * @param hash - The IPFS hash\n * @returns Array of gateway URLs\n */\nexport function getGatewayUrls(hash: string): string[] {\n return IPFS_GATEWAYS.map((gateway) => `${gateway}${hash}`);\n}\n\n/**\n * Convert an IPFS URL to multiple gateway URLs for fallback\n *\n * @param url - The IPFS URL\n * @returns Array of gateway URLs or original URL if not IPFS\n */\nexport function convertIpfsUrlWithFallbacks(url: string): string[] {\n const hash = extractIpfsHash(url);\n if (hash) {\n return getGatewayUrls(hash);\n }\n return [url];\n}\n\n/**\n * Fetch content from IPFS with automatic gateway fallbacks\n *\n * **Edge Cases:**\n * - Non-IPFS URLs are fetched directly without fallback\n * - 10-second timeout per gateway attempt to prevent hanging\n * - Rate-limited gateways (429) are skipped immediately\n * - Exponential backoff between retries (1s, 2s, 3s, etc.)\n * - AbortSignal in options is merged with timeout signal\n *\n * @param url - The IPFS URL to fetch\n * @param options - Optional fetch options\n * @returns Promise resolving to Response object\n * @throws Error if all gateways fail\n */\nexport async function fetchWithFallbacks(\n url: string,\n options?: RequestInit,\n): Promise<Response> {\n const hash = extractIpfsHash(url);\n if (!hash) {\n // Not an IPFS URL, fetch directly\n return fetch(url, options);\n }\n\n const gatewayUrls = getGatewayUrls(hash);\n let lastError: Error | null = null;\n\n for (let i = 0; i < gatewayUrls.length; i++) {\n const gatewayUrl = gatewayUrls[i];\n try {\n const response = await fetch(gatewayUrl, {\n ...options,\n // Add timeout to avoid hanging on slow gateways\n signal: AbortSignal.timeout(10000), // 10 second timeout\n });\n\n // If response is ok, return it\n if (response.ok) {\n return response;\n }\n\n // If rate limited (429), try next gateway immediately\n if (response.status === 429) {\n lastError = new Error(`Gateway rate limited: ${gatewayUrl}`);\n continue;\n }\n\n // For other HTTP errors, still try next gateway\n lastError = new Error(`Gateway error ${response.status}: ${gatewayUrl}`);\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n\n // For rate limiting or timeout errors, continue to next gateway\n if (\n lastError.message.includes(\"429\") ||\n lastError.name === \"TimeoutError\"\n ) {\n continue;\n }\n }\n\n // Add delay between retries (except for last attempt)\n if (i < gatewayUrls.length - 1) {\n await new Promise((resolve) => setTimeout(resolve, 1000 * (i + 1))); // Exponential backoff\n }\n }\n\n throw new Error(\n `All IPFS gateways failed for hash ${hash}. Last error: ${lastError?.message}`,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,uBAAuB;AAK7B,MAAM,gBAAgB;AAAA,EAC3B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAQO,SAAS,UAAU,KAAsB;AAC9C,SAAO,IAAI,WAAW,SAAS;AACjC;AAiBO,SAAS,eACd,KACA,UAAkB,sBACV;AACR,MAAI,UAAU,GAAG,GAAG;AAClB,UAAM,OAAO,IAAI,QAAQ,WAAW,EAAE;AACtC,WAAO,GAAG,OAAO,GAAG,IAAI;AAAA,EAC1B;AACA,SAAO;AACT;AAsBO,SAAS,gBAAgB,KAA4B;AAE1D,QAAM,WAAW;AAAA,IACf;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACF;AAEA,aAAW,WAAW,UAAU;AAC9B,UAAM,QAAQ,IAAI,MAAM,OAAO;AAC/B,QAAI,OAAO;AACT,aAAO,MAAM,CAAC;AAAA,IAChB;AAAA,EACF;AAEA,SAAO;AACT;AAQO,SAAS,eAAe,MAAwB;AACrD,SAAO,cAAc,IAAI,CAAC,YAAY,GAAG,OAAO,GAAG,IAAI,EAAE;AAC3D;AAQO,SAAS,4BAA4B,KAAuB;AACjE,QAAM,OAAO,gBAAgB,GAAG;AAChC,MAAI,MAAM;AACR,WAAO,eAAe,IAAI;AAAA,EAC5B;AACA,SAAO,CAAC,GAAG;AACb;AAiBA,eAAsB,mBACpB,KACA,SACmB;AACnB,QAAM,OAAO,gBAAgB,GAAG;AAChC,MAAI,CAAC,MAAM;AAET,WAAO,MAAM,KAAK,OAAO;AAAA,EAC3B;AAEA,QAAM,cAAc,eAAe,IAAI;AACvC,MAAI,YAA0B;AAE9B,WAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,UAAM,aAAa,YAAY,CAAC;AAChC,QAAI;AACF,YAAM,WAAW,MAAM,MAAM,YAAY;AAAA,QACvC,GAAG;AAAA;AAAA,QAEH,QAAQ,YAAY,QAAQ,GAAK;AAAA;AAAA,MACnC,CAAC;AAGD,UAAI,SAAS,IAAI;AACf,eAAO;AAAA,MACT;AAGA,UAAI,SAAS,WAAW,KAAK;AAC3B,oBAAY,IAAI,MAAM,yBAAyB,UAAU,EAAE;AAC3D;AAAA,MACF;AAGA,kBAAY,IAAI,MAAM,iBAAiB,SAAS,MAAM,KAAK,UAAU,EAAE;AAAA,IACzE,SAAS,OAAO;AACd,kBAAY,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAGpE,UACE,UAAU,QAAQ,SAAS,KAAK,KAChC,UAAU,SAAS,gBACnB;AACA;AAAA,MACF;AAAA,IACF;AAGA,QAAI,IAAI,YAAY,SAAS,GAAG;AAC9B,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,OAAQ,IAAI,EAAE,CAAC;AAAA,IACpE;AAAA,EACF;AAEA,QAAM,IAAI;AAAA,IACR,qCAAqC,IAAI,iBAAiB,WAAW,OAAO;AAAA,EAC9E;AACF;","names":[]}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * IPFS URL utilities for the Vana SDK
3
+ *
4
+ * Centralized functions for handling IPFS URLs, converting them to gateway URLs,
5
+ * and extracting IPFS hashes from various URL formats.
6
+ */
7
+ /**
8
+ * Default IPFS gateway URL
9
+ */
10
+ export declare const DEFAULT_IPFS_GATEWAY = "https://dweb.link/ipfs/";
11
+ /**
12
+ * Alternative IPFS gateways for fallback - ordered by reliability and rate limits
13
+ */
14
+ export declare const IPFS_GATEWAYS: readonly ["https://dweb.link/ipfs/", "https://ipfs.io/ipfs/", "https://cloudflare-ipfs.com/ipfs/", "https://gateway.pinata.cloud/ipfs/", "https://ipfs.filebase.io/ipfs/"];
15
+ /**
16
+ * Check if a URL is an IPFS URL (starts with ipfs://)
17
+ *
18
+ * @param url - The URL to check
19
+ * @returns True if the URL is an IPFS URL
20
+ */
21
+ export declare function isIpfsUrl(url: string): boolean;
22
+ /**
23
+ * Convert an IPFS URL to an HTTP gateway URL
24
+ *
25
+ * @param url - The IPFS URL to convert (e.g., "ipfs://QmHash...")
26
+ * @param gateway - Optional gateway URL (defaults to DEFAULT_IPFS_GATEWAY)
27
+ * @returns The HTTP gateway URL or original URL if not an IPFS URL
28
+ * @example
29
+ * ```ts
30
+ * convertIpfsUrl("ipfs://QmHash123")
31
+ * // Returns: "https://ipfs.io/ipfs/QmHash123"
32
+ *
33
+ * convertIpfsUrl("ipfs://QmHash123", "https://gateway.pinata.cloud/ipfs/")
34
+ * // Returns: "https://gateway.pinata.cloud/ipfs/QmHash123"
35
+ * ```
36
+ */
37
+ export declare function convertIpfsUrl(url: string, gateway?: string): string;
38
+ /**
39
+ * Extract IPFS hash from various URL formats
40
+ *
41
+ * **Edge Cases:**
42
+ * - Returns null for non-IPFS URLs or malformed hashes
43
+ * - Handles both CIDv0 (starts with Qm) and CIDv1 formats
44
+ * - Minimum 46 characters required for standalone hash detection
45
+ * - Gateway paths with subdirectories are not supported
46
+ *
47
+ * @param url - The URL to extract hash from
48
+ * @returns The IPFS hash or null if not found
49
+ * @example
50
+ * ```ts
51
+ * extractIpfsHash("ipfs://QmHash123") // Returns: "QmHash123"
52
+ * extractIpfsHash("https://gateway.pinata.cloud/ipfs/QmHash123") // Returns: "QmHash123"
53
+ * extractIpfsHash("QmHash123456789012345678901234567890123456") // Returns: "QmHash123456789012345678901234567890123456"
54
+ * extractIpfsHash("https://example.com/file.json") // Returns: null (not IPFS)
55
+ * extractIpfsHash("ipfs://QmHash/subdirectory") // Returns: null (subdirectories not supported)
56
+ * ```
57
+ */
58
+ export declare function extractIpfsHash(url: string): string | null;
59
+ /**
60
+ * Get multiple gateway URLs for an IPFS hash (useful for fallback)
61
+ *
62
+ * @param hash - The IPFS hash
63
+ * @returns Array of gateway URLs
64
+ */
65
+ export declare function getGatewayUrls(hash: string): string[];
66
+ /**
67
+ * Convert an IPFS URL to multiple gateway URLs for fallback
68
+ *
69
+ * @param url - The IPFS URL
70
+ * @returns Array of gateway URLs or original URL if not IPFS
71
+ */
72
+ export declare function convertIpfsUrlWithFallbacks(url: string): string[];
73
+ /**
74
+ * Fetch content from IPFS with automatic gateway fallbacks
75
+ *
76
+ * **Edge Cases:**
77
+ * - Non-IPFS URLs are fetched directly without fallback
78
+ * - 10-second timeout per gateway attempt to prevent hanging
79
+ * - Rate-limited gateways (429) are skipped immediately
80
+ * - Exponential backoff between retries (1s, 2s, 3s, etc.)
81
+ * - AbortSignal in options is merged with timeout signal
82
+ *
83
+ * @param url - The IPFS URL to fetch
84
+ * @param options - Optional fetch options
85
+ * @returns Promise resolving to Response object
86
+ * @throws Error if all gateways fail
87
+ */
88
+ export declare function fetchWithFallbacks(url: string, options?: RequestInit): Promise<Response>;
@@ -0,0 +1,99 @@
1
+ const DEFAULT_IPFS_GATEWAY = "https://dweb.link/ipfs/";
2
+ const IPFS_GATEWAYS = [
3
+ "https://dweb.link/ipfs/",
4
+ // Interplanetary Shipyard - highly reliable
5
+ "https://ipfs.io/ipfs/",
6
+ // IPFS Foundation - reliable
7
+ "https://cloudflare-ipfs.com/ipfs/",
8
+ // Cloudflare - good performance
9
+ "https://gateway.pinata.cloud/ipfs/",
10
+ // Pinata - backup option (has rate limits)
11
+ "https://ipfs.filebase.io/ipfs/"
12
+ // Filebase - emerging reliable option
13
+ ];
14
+ function isIpfsUrl(url) {
15
+ return url.startsWith("ipfs://");
16
+ }
17
+ function convertIpfsUrl(url, gateway = DEFAULT_IPFS_GATEWAY) {
18
+ if (isIpfsUrl(url)) {
19
+ const hash = url.replace("ipfs://", "");
20
+ return `${gateway}${hash}`;
21
+ }
22
+ return url;
23
+ }
24
+ function extractIpfsHash(url) {
25
+ const patterns = [
26
+ /ipfs\/([a-zA-Z0-9]+)/,
27
+ // https://gateway.pinata.cloud/ipfs/HASH
28
+ /^ipfs:\/\/([a-zA-Z0-9]+)$/,
29
+ // ipfs://HASH
30
+ /^([a-zA-Z0-9]{46,})$/
31
+ // Just the hash (46+ chars for IPFS hashes)
32
+ ];
33
+ for (const pattern of patterns) {
34
+ const match = url.match(pattern);
35
+ if (match) {
36
+ return match[1];
37
+ }
38
+ }
39
+ return null;
40
+ }
41
+ function getGatewayUrls(hash) {
42
+ return IPFS_GATEWAYS.map((gateway) => `${gateway}${hash}`);
43
+ }
44
+ function convertIpfsUrlWithFallbacks(url) {
45
+ const hash = extractIpfsHash(url);
46
+ if (hash) {
47
+ return getGatewayUrls(hash);
48
+ }
49
+ return [url];
50
+ }
51
+ async function fetchWithFallbacks(url, options) {
52
+ const hash = extractIpfsHash(url);
53
+ if (!hash) {
54
+ return fetch(url, options);
55
+ }
56
+ const gatewayUrls = getGatewayUrls(hash);
57
+ let lastError = null;
58
+ for (let i = 0; i < gatewayUrls.length; i++) {
59
+ const gatewayUrl = gatewayUrls[i];
60
+ try {
61
+ const response = await fetch(gatewayUrl, {
62
+ ...options,
63
+ // Add timeout to avoid hanging on slow gateways
64
+ signal: AbortSignal.timeout(1e4)
65
+ // 10 second timeout
66
+ });
67
+ if (response.ok) {
68
+ return response;
69
+ }
70
+ if (response.status === 429) {
71
+ lastError = new Error(`Gateway rate limited: ${gatewayUrl}`);
72
+ continue;
73
+ }
74
+ lastError = new Error(`Gateway error ${response.status}: ${gatewayUrl}`);
75
+ } catch (error) {
76
+ lastError = error instanceof Error ? error : new Error(String(error));
77
+ if (lastError.message.includes("429") || lastError.name === "TimeoutError") {
78
+ continue;
79
+ }
80
+ }
81
+ if (i < gatewayUrls.length - 1) {
82
+ await new Promise((resolve) => setTimeout(resolve, 1e3 * (i + 1)));
83
+ }
84
+ }
85
+ throw new Error(
86
+ `All IPFS gateways failed for hash ${hash}. Last error: ${lastError?.message}`
87
+ );
88
+ }
89
+ export {
90
+ DEFAULT_IPFS_GATEWAY,
91
+ IPFS_GATEWAYS,
92
+ convertIpfsUrl,
93
+ convertIpfsUrlWithFallbacks,
94
+ extractIpfsHash,
95
+ fetchWithFallbacks,
96
+ getGatewayUrls,
97
+ isIpfsUrl
98
+ };
99
+ //# sourceMappingURL=ipfs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/ipfs.ts"],"sourcesContent":["/**\n * IPFS URL utilities for the Vana SDK\n *\n * Centralized functions for handling IPFS URLs, converting them to gateway URLs,\n * and extracting IPFS hashes from various URL formats.\n */\n\n/**\n * Default IPFS gateway URL\n */\nexport const DEFAULT_IPFS_GATEWAY = \"https://dweb.link/ipfs/\";\n\n/**\n * Alternative IPFS gateways for fallback - ordered by reliability and rate limits\n */\nexport const IPFS_GATEWAYS = [\n \"https://dweb.link/ipfs/\", // Interplanetary Shipyard - highly reliable\n \"https://ipfs.io/ipfs/\", // IPFS Foundation - reliable\n \"https://cloudflare-ipfs.com/ipfs/\", // Cloudflare - good performance\n \"https://gateway.pinata.cloud/ipfs/\", // Pinata - backup option (has rate limits)\n \"https://ipfs.filebase.io/ipfs/\", // Filebase - emerging reliable option\n] as const;\n\n/**\n * Check if a URL is an IPFS URL (starts with ipfs://)\n *\n * @param url - The URL to check\n * @returns True if the URL is an IPFS URL\n */\nexport function isIpfsUrl(url: string): boolean {\n return url.startsWith(\"ipfs://\");\n}\n\n/**\n * Convert an IPFS URL to an HTTP gateway URL\n *\n * @param url - The IPFS URL to convert (e.g., \"ipfs://QmHash...\")\n * @param gateway - Optional gateway URL (defaults to DEFAULT_IPFS_GATEWAY)\n * @returns The HTTP gateway URL or original URL if not an IPFS URL\n * @example\n * ```ts\n * convertIpfsUrl(\"ipfs://QmHash123\")\n * // Returns: \"https://ipfs.io/ipfs/QmHash123\"\n *\n * convertIpfsUrl(\"ipfs://QmHash123\", \"https://gateway.pinata.cloud/ipfs/\")\n * // Returns: \"https://gateway.pinata.cloud/ipfs/QmHash123\"\n * ```\n */\nexport function convertIpfsUrl(\n url: string,\n gateway: string = DEFAULT_IPFS_GATEWAY,\n): string {\n if (isIpfsUrl(url)) {\n const hash = url.replace(\"ipfs://\", \"\");\n return `${gateway}${hash}`;\n }\n return url;\n}\n\n/**\n * Extract IPFS hash from various URL formats\n *\n * **Edge Cases:**\n * - Returns null for non-IPFS URLs or malformed hashes\n * - Handles both CIDv0 (starts with Qm) and CIDv1 formats\n * - Minimum 46 characters required for standalone hash detection\n * - Gateway paths with subdirectories are not supported\n *\n * @param url - The URL to extract hash from\n * @returns The IPFS hash or null if not found\n * @example\n * ```ts\n * extractIpfsHash(\"ipfs://QmHash123\") // Returns: \"QmHash123\"\n * extractIpfsHash(\"https://gateway.pinata.cloud/ipfs/QmHash123\") // Returns: \"QmHash123\"\n * extractIpfsHash(\"QmHash123456789012345678901234567890123456\") // Returns: \"QmHash123456789012345678901234567890123456\"\n * extractIpfsHash(\"https://example.com/file.json\") // Returns: null (not IPFS)\n * extractIpfsHash(\"ipfs://QmHash/subdirectory\") // Returns: null (subdirectories not supported)\n * ```\n */\nexport function extractIpfsHash(url: string): string | null {\n // Handle various IPFS URL formats\n const patterns = [\n /ipfs\\/([a-zA-Z0-9]+)/, // https://gateway.pinata.cloud/ipfs/HASH\n /^ipfs:\\/\\/([a-zA-Z0-9]+)$/, // ipfs://HASH\n /^([a-zA-Z0-9]{46,})$/, // Just the hash (46+ chars for IPFS hashes)\n ];\n\n for (const pattern of patterns) {\n const match = url.match(pattern);\n if (match) {\n return match[1];\n }\n }\n\n return null;\n}\n\n/**\n * Get multiple gateway URLs for an IPFS hash (useful for fallback)\n *\n * @param hash - The IPFS hash\n * @returns Array of gateway URLs\n */\nexport function getGatewayUrls(hash: string): string[] {\n return IPFS_GATEWAYS.map((gateway) => `${gateway}${hash}`);\n}\n\n/**\n * Convert an IPFS URL to multiple gateway URLs for fallback\n *\n * @param url - The IPFS URL\n * @returns Array of gateway URLs or original URL if not IPFS\n */\nexport function convertIpfsUrlWithFallbacks(url: string): string[] {\n const hash = extractIpfsHash(url);\n if (hash) {\n return getGatewayUrls(hash);\n }\n return [url];\n}\n\n/**\n * Fetch content from IPFS with automatic gateway fallbacks\n *\n * **Edge Cases:**\n * - Non-IPFS URLs are fetched directly without fallback\n * - 10-second timeout per gateway attempt to prevent hanging\n * - Rate-limited gateways (429) are skipped immediately\n * - Exponential backoff between retries (1s, 2s, 3s, etc.)\n * - AbortSignal in options is merged with timeout signal\n *\n * @param url - The IPFS URL to fetch\n * @param options - Optional fetch options\n * @returns Promise resolving to Response object\n * @throws Error if all gateways fail\n */\nexport async function fetchWithFallbacks(\n url: string,\n options?: RequestInit,\n): Promise<Response> {\n const hash = extractIpfsHash(url);\n if (!hash) {\n // Not an IPFS URL, fetch directly\n return fetch(url, options);\n }\n\n const gatewayUrls = getGatewayUrls(hash);\n let lastError: Error | null = null;\n\n for (let i = 0; i < gatewayUrls.length; i++) {\n const gatewayUrl = gatewayUrls[i];\n try {\n const response = await fetch(gatewayUrl, {\n ...options,\n // Add timeout to avoid hanging on slow gateways\n signal: AbortSignal.timeout(10000), // 10 second timeout\n });\n\n // If response is ok, return it\n if (response.ok) {\n return response;\n }\n\n // If rate limited (429), try next gateway immediately\n if (response.status === 429) {\n lastError = new Error(`Gateway rate limited: ${gatewayUrl}`);\n continue;\n }\n\n // For other HTTP errors, still try next gateway\n lastError = new Error(`Gateway error ${response.status}: ${gatewayUrl}`);\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n\n // For rate limiting or timeout errors, continue to next gateway\n if (\n lastError.message.includes(\"429\") ||\n lastError.name === \"TimeoutError\"\n ) {\n continue;\n }\n }\n\n // Add delay between retries (except for last attempt)\n if (i < gatewayUrls.length - 1) {\n await new Promise((resolve) => setTimeout(resolve, 1000 * (i + 1))); // Exponential backoff\n }\n }\n\n throw new Error(\n `All IPFS gateways failed for hash ${hash}. Last error: ${lastError?.message}`,\n );\n}\n"],"mappings":"AAUO,MAAM,uBAAuB;AAK7B,MAAM,gBAAgB;AAAA,EAC3B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAQO,SAAS,UAAU,KAAsB;AAC9C,SAAO,IAAI,WAAW,SAAS;AACjC;AAiBO,SAAS,eACd,KACA,UAAkB,sBACV;AACR,MAAI,UAAU,GAAG,GAAG;AAClB,UAAM,OAAO,IAAI,QAAQ,WAAW,EAAE;AACtC,WAAO,GAAG,OAAO,GAAG,IAAI;AAAA,EAC1B;AACA,SAAO;AACT;AAsBO,SAAS,gBAAgB,KAA4B;AAE1D,QAAM,WAAW;AAAA,IACf;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACF;AAEA,aAAW,WAAW,UAAU;AAC9B,UAAM,QAAQ,IAAI,MAAM,OAAO;AAC/B,QAAI,OAAO;AACT,aAAO,MAAM,CAAC;AAAA,IAChB;AAAA,EACF;AAEA,SAAO;AACT;AAQO,SAAS,eAAe,MAAwB;AACrD,SAAO,cAAc,IAAI,CAAC,YAAY,GAAG,OAAO,GAAG,IAAI,EAAE;AAC3D;AAQO,SAAS,4BAA4B,KAAuB;AACjE,QAAM,OAAO,gBAAgB,GAAG;AAChC,MAAI,MAAM;AACR,WAAO,eAAe,IAAI;AAAA,EAC5B;AACA,SAAO,CAAC,GAAG;AACb;AAiBA,eAAsB,mBACpB,KACA,SACmB;AACnB,QAAM,OAAO,gBAAgB,GAAG;AAChC,MAAI,CAAC,MAAM;AAET,WAAO,MAAM,KAAK,OAAO;AAAA,EAC3B;AAEA,QAAM,cAAc,eAAe,IAAI;AACvC,MAAI,YAA0B;AAE9B,WAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,UAAM,aAAa,YAAY,CAAC;AAChC,QAAI;AACF,YAAM,WAAW,MAAM,MAAM,YAAY;AAAA,QACvC,GAAG;AAAA;AAAA,QAEH,QAAQ,YAAY,QAAQ,GAAK;AAAA;AAAA,MACnC,CAAC;AAGD,UAAI,SAAS,IAAI;AACf,eAAO;AAAA,MACT;AAGA,UAAI,SAAS,WAAW,KAAK;AAC3B,oBAAY,IAAI,MAAM,yBAAyB,UAAU,EAAE;AAC3D;AAAA,MACF;AAGA,kBAAY,IAAI,MAAM,iBAAiB,SAAS,MAAM,KAAK,UAAU,EAAE;AAAA,IACzE,SAAS,OAAO;AACd,kBAAY,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAGpE,UACE,UAAU,QAAQ,SAAS,KAAK,KAChC,UAAU,SAAS,gBACnB;AACA;AAAA,MACF;AAAA,IACF;AAGA,QAAI,IAAI,YAAY,SAAS,GAAG;AAC9B,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,OAAQ,IAAI,EAAE,CAAC;AAAA,IACpE;AAAA,EACF;AAEA,QAAM,IAAI;AAAA,IACR,qCAAqC,IAAI,iBAAiB,WAAW,OAAO;AAAA,EAC9E;AACF;","names":[]}