@opendatalabs/vana-sdk 2.3.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/README.md +76 -92
  2. package/dist/auth/errors.cjs +54 -0
  3. package/dist/auth/errors.cjs.map +1 -0
  4. package/dist/auth/errors.d.ts +26 -0
  5. package/dist/auth/errors.js +28 -0
  6. package/dist/auth/errors.js.map +1 -0
  7. package/dist/auth/pkce.cjs +100 -0
  8. package/dist/auth/pkce.cjs.map +1 -0
  9. package/dist/auth/pkce.d.ts +55 -0
  10. package/dist/auth/pkce.js +71 -0
  11. package/dist/auth/pkce.js.map +1 -0
  12. package/dist/auth/token-store.cjs +59 -0
  13. package/dist/auth/token-store.cjs.map +1 -0
  14. package/dist/auth/token-store.d.ts +61 -0
  15. package/dist/auth/token-store.js +35 -0
  16. package/dist/auth/token-store.js.map +1 -0
  17. package/dist/auth/web3-signed-builder.cjs +70 -0
  18. package/dist/auth/web3-signed-builder.cjs.map +1 -0
  19. package/dist/auth/web3-signed-builder.d.ts +47 -0
  20. package/dist/auth/web3-signed-builder.js +45 -0
  21. package/dist/auth/web3-signed-builder.js.map +1 -0
  22. package/dist/auth/web3-signed.cjs +150 -0
  23. package/dist/auth/web3-signed.cjs.map +1 -0
  24. package/dist/auth/web3-signed.d.ts +59 -0
  25. package/dist/auth/web3-signed.js +129 -0
  26. package/dist/auth/web3-signed.js.map +1 -0
  27. package/dist/chains/definitions.cjs +2 -6
  28. package/dist/chains/definitions.cjs.map +1 -1
  29. package/dist/chains/definitions.d.ts +1 -7
  30. package/dist/chains/definitions.js +2 -6
  31. package/dist/chains/definitions.js.map +1 -1
  32. package/dist/config/chains.d.ts +18 -0
  33. package/dist/config/contracts.config.cjs +7 -95
  34. package/dist/config/contracts.config.cjs.map +1 -1
  35. package/dist/config/contracts.config.d.ts +0 -54
  36. package/dist/config/contracts.config.js +6 -93
  37. package/dist/config/contracts.config.js.map +1 -1
  38. package/dist/config/default-services.cjs +0 -10
  39. package/dist/config/default-services.cjs.map +1 -1
  40. package/dist/config/default-services.d.ts +1 -20
  41. package/dist/config/default-services.js +0 -9
  42. package/dist/config/default-services.js.map +1 -1
  43. package/dist/crypto/ecies/interface.cjs +2 -0
  44. package/dist/crypto/ecies/interface.cjs.map +1 -1
  45. package/dist/crypto/ecies/interface.js +2 -0
  46. package/dist/crypto/ecies/interface.js.map +1 -1
  47. package/dist/crypto/envelope/openpgp.cjs +59 -0
  48. package/dist/crypto/envelope/openpgp.cjs.map +1 -0
  49. package/dist/crypto/envelope/openpgp.d.ts +28 -0
  50. package/dist/crypto/envelope/openpgp.js +24 -0
  51. package/dist/crypto/envelope/openpgp.js.map +1 -0
  52. package/dist/crypto/keys/derive.cjs +65 -0
  53. package/dist/crypto/keys/derive.cjs.map +1 -0
  54. package/dist/crypto/keys/derive.d.ts +45 -0
  55. package/dist/crypto/keys/derive.js +38 -0
  56. package/dist/crypto/keys/derive.js.map +1 -0
  57. package/dist/errors.cjs +10 -0
  58. package/dist/errors.cjs.map +1 -1
  59. package/dist/errors.js +10 -0
  60. package/dist/errors.js.map +1 -1
  61. package/dist/generated/abi/index.cjs +2 -37
  62. package/dist/generated/abi/index.cjs.map +1 -1
  63. package/dist/generated/abi/index.d.ts +2683 -9296
  64. package/dist/generated/abi/index.js +2 -29
  65. package/dist/generated/abi/index.js.map +1 -1
  66. package/dist/generated/addresses.cjs +5 -107
  67. package/dist/generated/addresses.cjs.map +1 -1
  68. package/dist/generated/addresses.d.ts +5 -99
  69. package/dist/generated/addresses.js +5 -105
  70. package/dist/generated/addresses.js.map +1 -1
  71. package/dist/index.browser.d.ts +24 -140
  72. package/dist/index.browser.js +32258 -114
  73. package/dist/index.browser.js.map +7 -1
  74. package/dist/index.node.cjs +32980 -160
  75. package/dist/index.node.cjs.map +7 -1
  76. package/dist/index.node.d.ts +23 -210
  77. package/dist/index.node.js +32884 -133
  78. package/dist/index.node.js.map +7 -1
  79. package/dist/protocol/data-file.cjs +56 -0
  80. package/dist/protocol/data-file.cjs.map +1 -0
  81. package/dist/protocol/data-file.d.ts +20 -0
  82. package/dist/protocol/data-file.js +30 -0
  83. package/dist/protocol/data-file.js.map +1 -0
  84. package/dist/protocol/eip712.cjs +123 -0
  85. package/dist/protocol/eip712.cjs.map +1 -0
  86. package/dist/protocol/eip712.d.ts +117 -0
  87. package/dist/protocol/eip712.js +90 -0
  88. package/dist/protocol/eip712.js.map +1 -0
  89. package/dist/protocol/gateway.cjs +226 -0
  90. package/dist/protocol/gateway.cjs.map +1 -0
  91. package/dist/protocol/gateway.d.ts +120 -0
  92. package/dist/protocol/gateway.js +202 -0
  93. package/dist/protocol/gateway.js.map +1 -0
  94. package/dist/protocol/grants.cjs +146 -0
  95. package/dist/protocol/grants.cjs.map +1 -0
  96. package/dist/protocol/grants.d.ts +31 -0
  97. package/dist/protocol/grants.js +123 -0
  98. package/dist/protocol/grants.js.map +1 -0
  99. package/dist/protocol/scopes.cjs +78 -0
  100. package/dist/protocol/scopes.cjs.map +1 -0
  101. package/dist/protocol/scopes.d.ts +13 -0
  102. package/dist/protocol/scopes.js +50 -0
  103. package/dist/protocol/scopes.js.map +1 -0
  104. package/dist/{types/atomicStore.cjs → storage/default.cjs} +9 -8
  105. package/dist/storage/default.cjs.map +1 -0
  106. package/dist/storage/default.d.ts +4 -0
  107. package/dist/storage/default.js +8 -0
  108. package/dist/storage/default.js.map +1 -0
  109. package/dist/storage/index.cjs +11 -2
  110. package/dist/storage/index.cjs.map +1 -1
  111. package/dist/storage/index.d.ts +9 -0
  112. package/dist/storage/index.js +7 -1
  113. package/dist/storage/index.js.map +1 -1
  114. package/dist/storage/providers/callback-storage.cjs +1 -0
  115. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  116. package/dist/storage/providers/callback-storage.js +1 -0
  117. package/dist/storage/providers/callback-storage.js.map +1 -1
  118. package/dist/storage/providers/dropbox.cjs +1 -0
  119. package/dist/storage/providers/dropbox.cjs.map +1 -1
  120. package/dist/storage/providers/dropbox.js +1 -0
  121. package/dist/storage/providers/dropbox.js.map +1 -1
  122. package/dist/storage/providers/google-drive.cjs +1 -0
  123. package/dist/storage/providers/google-drive.cjs.map +1 -1
  124. package/dist/storage/providers/google-drive.js +1 -0
  125. package/dist/storage/providers/google-drive.js.map +1 -1
  126. package/dist/storage/providers/ipfs.cjs +1 -0
  127. package/dist/storage/providers/ipfs.cjs.map +1 -1
  128. package/dist/storage/providers/ipfs.js +1 -0
  129. package/dist/storage/providers/ipfs.js.map +1 -1
  130. package/dist/storage/providers/pinata.cjs +1 -0
  131. package/dist/storage/providers/pinata.cjs.map +1 -1
  132. package/dist/storage/providers/pinata.js +1 -0
  133. package/dist/storage/providers/pinata.js.map +1 -1
  134. package/dist/storage/providers/r2.cjs +376 -0
  135. package/dist/storage/providers/r2.cjs.map +1 -0
  136. package/dist/storage/providers/r2.d.ts +91 -0
  137. package/dist/storage/providers/r2.js +354 -0
  138. package/dist/storage/providers/r2.js.map +1 -0
  139. package/dist/storage/providers/vana-storage.cjs +251 -0
  140. package/dist/storage/providers/vana-storage.cjs.map +1 -0
  141. package/dist/storage/providers/vana-storage.d.ts +100 -0
  142. package/dist/storage/providers/vana-storage.js +231 -0
  143. package/dist/storage/providers/vana-storage.js.map +1 -0
  144. package/dist/types/config.cjs +0 -34
  145. package/dist/types/config.cjs.map +1 -1
  146. package/dist/types/config.d.ts +1 -607
  147. package/dist/types/config.js +0 -22
  148. package/dist/types/config.js.map +1 -1
  149. package/dist/types/contracts.cjs.map +1 -1
  150. package/dist/types/contracts.d.ts +1 -1
  151. package/dist/types/index.cjs +2 -33
  152. package/dist/types/index.cjs.map +1 -1
  153. package/dist/types/index.d.ts +2 -33
  154. package/dist/types/index.js +1 -35
  155. package/dist/types/index.js.map +1 -1
  156. package/dist/types/ps-errors.cjs +91 -0
  157. package/dist/types/ps-errors.cjs.map +1 -0
  158. package/dist/types/ps-errors.d.ts +26 -0
  159. package/dist/types/ps-errors.js +66 -0
  160. package/dist/types/ps-errors.js.map +1 -0
  161. package/dist/types.cjs.map +1 -1
  162. package/dist/types.d.ts +0 -29
  163. package/dist/types.js.map +1 -1
  164. package/package.json +7 -25
  165. package/dist/client/enhancedResponse.cjs +0 -164
  166. package/dist/client/enhancedResponse.cjs.map +0 -1
  167. package/dist/client/enhancedResponse.d.ts +0 -120
  168. package/dist/client/enhancedResponse.js +0 -138
  169. package/dist/client/enhancedResponse.js.map +0 -1
  170. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +0 -7
  171. package/dist/controllers/base.cjs +0 -116
  172. package/dist/controllers/base.cjs.map +0 -1
  173. package/dist/controllers/base.d.ts +0 -94
  174. package/dist/controllers/base.js +0 -92
  175. package/dist/controllers/base.js.map +0 -1
  176. package/dist/controllers/data.cjs +0 -2633
  177. package/dist/controllers/data.cjs.map +0 -1
  178. package/dist/controllers/data.d.ts +0 -1067
  179. package/dist/controllers/data.js +0 -2626
  180. package/dist/controllers/data.js.map +0 -1
  181. package/dist/controllers/operations.cjs +0 -430
  182. package/dist/controllers/operations.cjs.map +0 -1
  183. package/dist/controllers/operations.d.ts +0 -229
  184. package/dist/controllers/operations.js +0 -406
  185. package/dist/controllers/operations.js.map +0 -1
  186. package/dist/controllers/permissions.cjs +0 -4368
  187. package/dist/controllers/permissions.cjs.map +0 -1
  188. package/dist/controllers/permissions.d.ts +0 -1411
  189. package/dist/controllers/permissions.js +0 -4344
  190. package/dist/controllers/permissions.js.map +0 -1
  191. package/dist/controllers/protocol.cjs +0 -183
  192. package/dist/controllers/protocol.cjs.map +0 -1
  193. package/dist/controllers/protocol.d.ts +0 -138
  194. package/dist/controllers/protocol.js +0 -163
  195. package/dist/controllers/protocol.js.map +0 -1
  196. package/dist/controllers/schemas.cjs +0 -678
  197. package/dist/controllers/schemas.cjs.map +0 -1
  198. package/dist/controllers/schemas.d.ts +0 -293
  199. package/dist/controllers/schemas.js +0 -654
  200. package/dist/controllers/schemas.js.map +0 -1
  201. package/dist/controllers/server.cjs +0 -643
  202. package/dist/controllers/server.cjs.map +0 -1
  203. package/dist/controllers/server.d.ts +0 -322
  204. package/dist/controllers/server.js +0 -624
  205. package/dist/controllers/server.js.map +0 -1
  206. package/dist/controllers/staking.cjs +0 -626
  207. package/dist/controllers/staking.cjs.map +0 -1
  208. package/dist/controllers/staking.d.ts +0 -457
  209. package/dist/controllers/staking.js +0 -602
  210. package/dist/controllers/staking.js.map +0 -1
  211. package/dist/core/__tests__/pollingManager.test.d.ts +0 -4
  212. package/dist/core/apiClient.cjs +0 -378
  213. package/dist/core/apiClient.cjs.map +0 -1
  214. package/dist/core/apiClient.d.ts +0 -286
  215. package/dist/core/apiClient.js +0 -359
  216. package/dist/core/apiClient.js.map +0 -1
  217. package/dist/core/generics.cjs +0 -417
  218. package/dist/core/generics.cjs.map +0 -1
  219. package/dist/core/generics.d.ts +0 -205
  220. package/dist/core/generics.js +0 -386
  221. package/dist/core/generics.js.map +0 -1
  222. package/dist/core/health.cjs +0 -289
  223. package/dist/core/health.cjs.map +0 -1
  224. package/dist/core/health.d.ts +0 -143
  225. package/dist/core/health.js +0 -265
  226. package/dist/core/health.js.map +0 -1
  227. package/dist/core/inMemoryNonceManager.cjs +0 -138
  228. package/dist/core/inMemoryNonceManager.cjs.map +0 -1
  229. package/dist/core/inMemoryNonceManager.d.ts +0 -69
  230. package/dist/core/inMemoryNonceManager.js +0 -114
  231. package/dist/core/inMemoryNonceManager.js.map +0 -1
  232. package/dist/core/nonceManager.cjs +0 -304
  233. package/dist/core/nonceManager.cjs.map +0 -1
  234. package/dist/core/nonceManager.d.ts +0 -116
  235. package/dist/core/nonceManager.js +0 -280
  236. package/dist/core/nonceManager.js.map +0 -1
  237. package/dist/core/pollingManager.cjs +0 -292
  238. package/dist/core/pollingManager.cjs.map +0 -1
  239. package/dist/core/pollingManager.d.ts +0 -120
  240. package/dist/core/pollingManager.js +0 -268
  241. package/dist/core/pollingManager.js.map +0 -1
  242. package/dist/core.cjs +0 -781
  243. package/dist/core.cjs.map +0 -1
  244. package/dist/core.d.ts +0 -496
  245. package/dist/core.js +0 -756
  246. package/dist/core.js.map +0 -1
  247. package/dist/diagnostics.cjs +0 -37
  248. package/dist/diagnostics.cjs.map +0 -1
  249. package/dist/diagnostics.d.ts +0 -24
  250. package/dist/diagnostics.js +0 -13
  251. package/dist/diagnostics.js.map +0 -1
  252. package/dist/generated/abi/DLPPerformanceImplementation.cjs +0 -1202
  253. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +0 -1
  254. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +0 -914
  255. package/dist/generated/abi/DLPPerformanceImplementation.js +0 -1178
  256. package/dist/generated/abi/DLPPerformanceImplementation.js.map +0 -1
  257. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +0 -1112
  258. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +0 -1
  259. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +0 -840
  260. package/dist/generated/abi/DLPRewardDeployerImplementation.js +0 -1088
  261. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +0 -1
  262. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +0 -612
  263. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +0 -1
  264. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +0 -451
  265. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +0 -588
  266. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +0 -1
  267. package/dist/generated/abi/DLPRewardSwapImplementation.cjs +0 -939
  268. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +0 -1
  269. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +0 -705
  270. package/dist/generated/abi/DLPRewardSwapImplementation.js +0 -915
  271. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +0 -1
  272. package/dist/generated/abi/DLPRootImplementation.cjs +0 -1644
  273. package/dist/generated/abi/DLPRootImplementation.cjs.map +0 -1
  274. package/dist/generated/abi/DLPRootImplementation.d.ts +0 -1246
  275. package/dist/generated/abi/DLPRootImplementation.js +0 -1620
  276. package/dist/generated/abi/DLPRootImplementation.js.map +0 -1
  277. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +0 -985
  278. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +0 -1
  279. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +0 -735
  280. package/dist/generated/abi/DataLiquidityPoolImplementation.js +0 -961
  281. package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +0 -1
  282. package/dist/generated/abi/SwapHelperImplementation.cjs +0 -976
  283. package/dist/generated/abi/SwapHelperImplementation.cjs.map +0 -1
  284. package/dist/generated/abi/SwapHelperImplementation.d.ts +0 -728
  285. package/dist/generated/abi/SwapHelperImplementation.js +0 -952
  286. package/dist/generated/abi/SwapHelperImplementation.js.map +0 -1
  287. package/dist/generated/abi/TeePoolImplementation.cjs +0 -1313
  288. package/dist/generated/abi/TeePoolImplementation.cjs.map +0 -1
  289. package/dist/generated/abi/TeePoolImplementation.d.ts +0 -992
  290. package/dist/generated/abi/TeePoolImplementation.js +0 -1289
  291. package/dist/generated/abi/TeePoolImplementation.js.map +0 -1
  292. package/dist/generated/event-types.cjs +0 -17
  293. package/dist/generated/event-types.cjs.map +0 -1
  294. package/dist/generated/event-types.d.ts +0 -816
  295. package/dist/generated/event-types.js +0 -1
  296. package/dist/generated/event-types.js.map +0 -1
  297. package/dist/generated/eventRegistry.cjs +0 -4512
  298. package/dist/generated/eventRegistry.cjs.map +0 -1
  299. package/dist/generated/eventRegistry.d.ts +0 -14
  300. package/dist/generated/eventRegistry.js +0 -4487
  301. package/dist/generated/eventRegistry.js.map +0 -1
  302. package/dist/generated/server/server-exports.cjs +0 -45
  303. package/dist/generated/server/server-exports.cjs.map +0 -1
  304. package/dist/generated/server/server-exports.d.ts +0 -36
  305. package/dist/generated/server/server-exports.js +0 -19
  306. package/dist/generated/server/server-exports.js.map +0 -1
  307. package/dist/generated/server/server.cjs +0 -17
  308. package/dist/generated/server/server.cjs.map +0 -1
  309. package/dist/generated/server/server.d.ts +0 -907
  310. package/dist/generated/server/server.js +0 -1
  311. package/dist/generated/server/server.js.map +0 -1
  312. package/dist/generated/subgraph.cjs +0 -1440
  313. package/dist/generated/subgraph.cjs.map +0 -1
  314. package/dist/generated/subgraph.d.ts +0 -6113
  315. package/dist/generated/subgraph.js +0 -1404
  316. package/dist/generated/subgraph.js.map +0 -1
  317. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +0 -1
  318. package/dist/lib/redisAtomicStore.cjs +0 -201
  319. package/dist/lib/redisAtomicStore.cjs.map +0 -1
  320. package/dist/lib/redisAtomicStore.d.ts +0 -120
  321. package/dist/lib/redisAtomicStore.js +0 -177
  322. package/dist/lib/redisAtomicStore.js.map +0 -1
  323. package/dist/server/relayerHandler.cjs +0 -452
  324. package/dist/server/relayerHandler.cjs.map +0 -1
  325. package/dist/server/relayerHandler.d.ts +0 -69
  326. package/dist/server/relayerHandler.js +0 -428
  327. package/dist/server/relayerHandler.js.map +0 -1
  328. package/dist/tests/abi.test.d.ts +0 -1
  329. package/dist/tests/chains-definitions.test.d.ts +0 -1
  330. package/dist/tests/core-encryption.test.d.ts +0 -1
  331. package/dist/tests/core-extended.test.d.ts +0 -1
  332. package/dist/tests/core-generics-coverage.test.d.ts +0 -1
  333. package/dist/tests/coverage-boost.test.d.ts +0 -1
  334. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +0 -1
  335. package/dist/tests/data-addfile-permissions-schema.test.d.ts +0 -1
  336. package/dist/tests/data-additional-methods.test.d.ts +0 -1
  337. package/dist/tests/data-controller-edge-cases.test.d.ts +0 -1
  338. package/dist/tests/data-ipfs-gateways.test.d.ts +0 -1
  339. package/dist/tests/data-relayer.test.d.ts +0 -1
  340. package/dist/tests/data-schema-validation.test.d.ts +0 -1
  341. package/dist/tests/data-simple-methods.test.d.ts +0 -1
  342. package/dist/tests/data-upload-owner-validation.test.d.ts +0 -1
  343. package/dist/tests/data.test.d.ts +0 -1
  344. package/dist/tests/demo-integration.test.d.ts +0 -1
  345. package/dist/tests/demo-trusted-server-integration.test.d.ts +0 -1
  346. package/dist/tests/download-relayer.test.d.ts +0 -1
  347. package/dist/tests/dual-mode-permissions.test.d.ts +0 -1
  348. package/dist/tests/dual-mode-trusted-servers.test.d.ts +0 -1
  349. package/dist/tests/encryption-correct-implementation.test.d.ts +0 -1
  350. package/dist/tests/encryption-coverage.test.d.ts +0 -1
  351. package/dist/tests/encryption-edge-cases.test.d.ts +0 -1
  352. package/dist/tests/encryption-utils-updated.test.d.ts +0 -1
  353. package/dist/tests/errors-coverage.test.d.ts +0 -1
  354. package/dist/tests/factories/mockFactory.d.ts +0 -316
  355. package/dist/tests/fakes/FakeStorageManager.d.ts +0 -200
  356. package/dist/tests/fakes/FakeStorageManager.test.d.ts +0 -1
  357. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +0 -170
  358. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +0 -1
  359. package/dist/tests/fakes/fake-pgp-port.d.ts +0 -13
  360. package/dist/tests/grantValidation-edge-cases.test.d.ts +0 -1
  361. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +0 -1
  362. package/dist/tests/helper-methods.test.d.ts +0 -1
  363. package/dist/tests/helpers/typedMocks.d.ts +0 -64
  364. package/dist/tests/index-browser.test.d.ts +0 -1
  365. package/dist/tests/index-node.test.d.ts +0 -1
  366. package/dist/tests/index.test.d.ts +0 -1
  367. package/dist/tests/mocks/platformAdapter.d.ts +0 -12
  368. package/dist/tests/new-permissions-methods.test.d.ts +0 -1
  369. package/dist/tests/no-buffer-browser.test.d.ts +0 -1
  370. package/dist/tests/permissions-grantee.test.d.ts +0 -1
  371. package/dist/tests/permissions-revoke-relayer.test.d.ts +0 -1
  372. package/dist/tests/permissions-schema-validation.test.d.ts +0 -1
  373. package/dist/tests/permissions-server-files.test.d.ts +0 -1
  374. package/dist/tests/permissions-transaction-options.test.d.ts +0 -1
  375. package/dist/tests/permissions-trust-servers.test.d.ts +0 -1
  376. package/dist/tests/permissions.test.d.ts +0 -1
  377. package/dist/tests/personal.test.d.ts +0 -1
  378. package/dist/tests/platform-browser.test.d.ts +0 -1
  379. package/dist/tests/platform-crypto-expanded.test.d.ts +0 -1
  380. package/dist/tests/platform-crypto.test.d.ts +0 -1
  381. package/dist/tests/platform-index.test.d.ts +0 -1
  382. package/dist/tests/platform-node.test.d.ts +0 -1
  383. package/dist/tests/platform-shared-utils.test.d.ts +0 -1
  384. package/dist/tests/platform-updated.test.d.ts +0 -1
  385. package/dist/tests/protocol-additional-methods.test.d.ts +0 -1
  386. package/dist/tests/protocol.test.d.ts +0 -1
  387. package/dist/tests/read-only-mode.test.d.ts +0 -1
  388. package/dist/tests/relayer-integration.test.d.ts +0 -1
  389. package/dist/tests/relayer-unified.test.d.ts +0 -1
  390. package/dist/tests/schemas.test.d.ts +0 -1
  391. package/dist/tests/server-relayer-handler.test.d.ts +0 -1
  392. package/dist/tests/signatureFormatter.test.d.ts +0 -1
  393. package/dist/tests/staking.test.d.ts +0 -1
  394. package/dist/tests/trusted-server-queries.test.d.ts +0 -1
  395. package/dist/tests/typedDataConverter.test.d.ts +0 -1
  396. package/dist/tests/types-contracts.test.d.ts +0 -1
  397. package/dist/tests/types-data.test.d.ts +0 -1
  398. package/dist/tests/types-external-apis.test.d.ts +0 -1
  399. package/dist/tests/types-generics.test.d.ts +0 -1
  400. package/dist/tests/types-permissions.test.d.ts +0 -1
  401. package/dist/tests/types-upload-params.test.d.ts +0 -1
  402. package/dist/tests/types.test.d.ts +0 -1
  403. package/dist/tests/utils-formatters.test.d.ts +0 -1
  404. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +0 -1
  405. package/dist/tests/utils-grantFiles-validation.test.d.ts +0 -1
  406. package/dist/tests/utils-grantFiles.test.d.ts +0 -1
  407. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +0 -1
  408. package/dist/tests/utils-grants.test.d.ts +0 -1
  409. package/dist/tests/utils-ipfs-additional.test.d.ts +0 -1
  410. package/dist/tests/utils-ipfs.test.d.ts +0 -4
  411. package/dist/tests/utils-schemaValidation.test.d.ts +0 -1
  412. package/dist/tests/vana.test.d.ts +0 -1
  413. package/dist/tests/wallet-crypto-compatibility.test.d.ts +0 -1
  414. package/dist/types/atomicStore.cjs.map +0 -1
  415. package/dist/types/atomicStore.d.ts +0 -236
  416. package/dist/types/atomicStore.js +0 -7
  417. package/dist/types/atomicStore.js.map +0 -1
  418. package/dist/types/blockchain.cjs +0 -17
  419. package/dist/types/blockchain.cjs.map +0 -1
  420. package/dist/types/blockchain.d.ts +0 -85
  421. package/dist/types/blockchain.js +0 -1
  422. package/dist/types/blockchain.js.map +0 -1
  423. package/dist/types/controller-context.cjs +0 -17
  424. package/dist/types/controller-context.cjs.map +0 -1
  425. package/dist/types/controller-context.d.ts +0 -68
  426. package/dist/types/controller-context.js +0 -1
  427. package/dist/types/controller-context.js.map +0 -1
  428. package/dist/types/data.cjs +0 -17
  429. package/dist/types/data.cjs.map +0 -1
  430. package/dist/types/data.d.ts +0 -763
  431. package/dist/types/data.js +0 -1
  432. package/dist/types/data.js.map +0 -1
  433. package/dist/types/external-apis.cjs +0 -61
  434. package/dist/types/external-apis.cjs.map +0 -1
  435. package/dist/types/external-apis.d.ts +0 -184
  436. package/dist/types/external-apis.js +0 -34
  437. package/dist/types/external-apis.js.map +0 -1
  438. package/dist/types/generics.cjs +0 -17
  439. package/dist/types/generics.cjs.map +0 -1
  440. package/dist/types/generics.d.ts +0 -518
  441. package/dist/types/generics.js +0 -1
  442. package/dist/types/generics.js.map +0 -1
  443. package/dist/types/operationStore.cjs +0 -17
  444. package/dist/types/operationStore.cjs.map +0 -1
  445. package/dist/types/operationStore.d.ts +0 -171
  446. package/dist/types/operationStore.js +0 -1
  447. package/dist/types/operationStore.js.map +0 -1
  448. package/dist/types/operations.cjs +0 -53
  449. package/dist/types/operations.cjs.map +0 -1
  450. package/dist/types/operations.d.ts +0 -204
  451. package/dist/types/operations.js +0 -26
  452. package/dist/types/operations.js.map +0 -1
  453. package/dist/types/options.cjs +0 -17
  454. package/dist/types/options.cjs.map +0 -1
  455. package/dist/types/options.d.ts +0 -308
  456. package/dist/types/options.js +0 -1
  457. package/dist/types/options.js.map +0 -1
  458. package/dist/types/permissions.cjs +0 -17
  459. package/dist/types/permissions.cjs.map +0 -1
  460. package/dist/types/permissions.d.ts +0 -955
  461. package/dist/types/permissions.js +0 -1
  462. package/dist/types/permissions.js.map +0 -1
  463. package/dist/types/personal.cjs +0 -17
  464. package/dist/types/personal.cjs.map +0 -1
  465. package/dist/types/personal.d.ts +0 -174
  466. package/dist/types/personal.js +0 -1
  467. package/dist/types/personal.js.map +0 -1
  468. package/dist/types/relayer.cjs +0 -17
  469. package/dist/types/relayer.cjs.map +0 -1
  470. package/dist/types/relayer.d.ts +0 -552
  471. package/dist/types/relayer.js +0 -1
  472. package/dist/types/relayer.js.map +0 -1
  473. package/dist/types/transactionResults.cjs +0 -17
  474. package/dist/types/transactionResults.cjs.map +0 -1
  475. package/dist/types/transactionResults.d.ts +0 -193
  476. package/dist/types/transactionResults.js +0 -1
  477. package/dist/types/transactionResults.js.map +0 -1
  478. package/dist/types/utils.cjs +0 -17
  479. package/dist/types/utils.cjs.map +0 -1
  480. package/dist/types/utils.d.ts +0 -771
  481. package/dist/types/utils.js +0 -1
  482. package/dist/types/utils.js.map +0 -1
  483. package/dist/utils/__tests__/chainQuery.test.d.ts +0 -1
  484. package/dist/utils/__tests__/parseTransaction.test.d.ts +0 -1
  485. package/dist/utils/__tests__/pojo-serialization.test.d.ts +0 -1
  486. package/dist/utils/__tests__/signatureCache.test.d.ts +0 -1
  487. package/dist/utils/__tests__/subgraphConsistency.test.d.ts +0 -4
  488. package/dist/utils/__tests__/subgraphPagination.test.d.ts +0 -4
  489. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +0 -1
  490. package/dist/utils/__tests__/transactionHelpers.test.d.ts +0 -1
  491. package/dist/utils/__tests__/urlResolver.test.d.ts +0 -4
  492. package/dist/utils/blockchain/registry.cjs +0 -81
  493. package/dist/utils/blockchain/registry.cjs.map +0 -1
  494. package/dist/utils/blockchain/registry.d.ts +0 -32
  495. package/dist/utils/blockchain/registry.js +0 -56
  496. package/dist/utils/blockchain/registry.js.map +0 -1
  497. package/dist/utils/blockchain/registry.test.d.ts +0 -1
  498. package/dist/utils/chainQuery.cjs +0 -107
  499. package/dist/utils/chainQuery.cjs.map +0 -1
  500. package/dist/utils/chainQuery.d.ts +0 -31
  501. package/dist/utils/chainQuery.js +0 -82
  502. package/dist/utils/chainQuery.js.map +0 -1
  503. package/dist/utils/download.cjs +0 -69
  504. package/dist/utils/download.cjs.map +0 -1
  505. package/dist/utils/download.d.ts +0 -40
  506. package/dist/utils/download.js +0 -45
  507. package/dist/utils/download.js.map +0 -1
  508. package/dist/utils/encryption.cjs +0 -176
  509. package/dist/utils/encryption.cjs.map +0 -1
  510. package/dist/utils/encryption.d.ts +0 -271
  511. package/dist/utils/encryption.js +0 -142
  512. package/dist/utils/encryption.js.map +0 -1
  513. package/dist/utils/formatters.cjs +0 -55
  514. package/dist/utils/formatters.cjs.map +0 -1
  515. package/dist/utils/formatters.d.ts +0 -118
  516. package/dist/utils/formatters.js +0 -28
  517. package/dist/utils/formatters.js.map +0 -1
  518. package/dist/utils/grantFiles.cjs +0 -181
  519. package/dist/utils/grantFiles.cjs.map +0 -1
  520. package/dist/utils/grantFiles.d.ts +0 -172
  521. package/dist/utils/grantFiles.js +0 -143
  522. package/dist/utils/grantFiles.js.map +0 -1
  523. package/dist/utils/grantValidation.cjs +0 -243
  524. package/dist/utils/grantValidation.cjs.map +0 -1
  525. package/dist/utils/grantValidation.d.ts +0 -226
  526. package/dist/utils/grantValidation.js +0 -201
  527. package/dist/utils/grantValidation.js.map +0 -1
  528. package/dist/utils/grants.cjs +0 -108
  529. package/dist/utils/grants.cjs.map +0 -1
  530. package/dist/utils/grants.d.ts +0 -148
  531. package/dist/utils/grants.js +0 -82
  532. package/dist/utils/grants.js.map +0 -1
  533. package/dist/utils/ipfs.cjs +0 -128
  534. package/dist/utils/ipfs.cjs.map +0 -1
  535. package/dist/utils/ipfs.d.ts +0 -88
  536. package/dist/utils/ipfs.js +0 -97
  537. package/dist/utils/ipfs.js.map +0 -1
  538. package/dist/utils/multicall.cjs +0 -233
  539. package/dist/utils/multicall.cjs.map +0 -1
  540. package/dist/utils/multicall.d.ts +0 -126
  541. package/dist/utils/multicall.js +0 -208
  542. package/dist/utils/multicall.js.map +0 -1
  543. package/dist/utils/parseTransactionPojo.cjs +0 -87
  544. package/dist/utils/parseTransactionPojo.cjs.map +0 -1
  545. package/dist/utils/parseTransactionPojo.d.ts +0 -31
  546. package/dist/utils/parseTransactionPojo.js +0 -63
  547. package/dist/utils/parseTransactionPojo.js.map +0 -1
  548. package/dist/utils/schemaValidation.cjs +0 -258
  549. package/dist/utils/schemaValidation.cjs.map +0 -1
  550. package/dist/utils/schemaValidation.d.ts +0 -168
  551. package/dist/utils/schemaValidation.js +0 -219
  552. package/dist/utils/schemaValidation.js.map +0 -1
  553. package/dist/utils/signatureCache.cjs +0 -192
  554. package/dist/utils/signatureCache.cjs.map +0 -1
  555. package/dist/utils/signatureCache.d.ts +0 -172
  556. package/dist/utils/signatureCache.js +0 -167
  557. package/dist/utils/signatureCache.js.map +0 -1
  558. package/dist/utils/signatureFormatter.cjs +0 -42
  559. package/dist/utils/signatureFormatter.cjs.map +0 -1
  560. package/dist/utils/signatureFormatter.d.ts +0 -36
  561. package/dist/utils/signatureFormatter.js +0 -18
  562. package/dist/utils/signatureFormatter.js.map +0 -1
  563. package/dist/utils/subgraphConsistency.cjs +0 -184
  564. package/dist/utils/subgraphConsistency.cjs.map +0 -1
  565. package/dist/utils/subgraphConsistency.d.ts +0 -65
  566. package/dist/utils/subgraphConsistency.js +0 -155
  567. package/dist/utils/subgraphConsistency.js.map +0 -1
  568. package/dist/utils/subgraphMetaCache.cjs +0 -101
  569. package/dist/utils/subgraphMetaCache.cjs.map +0 -1
  570. package/dist/utils/subgraphMetaCache.d.ts +0 -56
  571. package/dist/utils/subgraphMetaCache.js +0 -76
  572. package/dist/utils/subgraphMetaCache.js.map +0 -1
  573. package/dist/utils/subgraphPagination.cjs +0 -104
  574. package/dist/utils/subgraphPagination.cjs.map +0 -1
  575. package/dist/utils/subgraphPagination.d.ts +0 -78
  576. package/dist/utils/subgraphPagination.js +0 -78
  577. package/dist/utils/subgraphPagination.js.map +0 -1
  578. package/dist/utils/tests/multicall.test.d.ts +0 -1
  579. package/dist/utils/transactionHelpers.cjs +0 -54
  580. package/dist/utils/transactionHelpers.cjs.map +0 -1
  581. package/dist/utils/transactionHelpers.d.ts +0 -80
  582. package/dist/utils/transactionHelpers.js +0 -29
  583. package/dist/utils/transactionHelpers.js.map +0 -1
  584. package/dist/utils/typeGuards.cjs +0 -109
  585. package/dist/utils/typeGuards.cjs.map +0 -1
  586. package/dist/utils/typeGuards.d.ts +0 -138
  587. package/dist/utils/typeGuards.js +0 -74
  588. package/dist/utils/typeGuards.js.map +0 -1
  589. package/dist/utils/typedDataConverter.cjs +0 -43
  590. package/dist/utils/typedDataConverter.cjs.map +0 -1
  591. package/dist/utils/typedDataConverter.d.ts +0 -46
  592. package/dist/utils/typedDataConverter.js +0 -19
  593. package/dist/utils/typedDataConverter.js.map +0 -1
  594. package/dist/utils/urlResolver.cjs +0 -62
  595. package/dist/utils/urlResolver.cjs.map +0 -1
  596. package/dist/utils/urlResolver.d.ts +0 -56
  597. package/dist/utils/urlResolver.js +0 -37
  598. package/dist/utils/urlResolver.js.map +0 -1
  599. package/dist/utils/wallet.cjs +0 -63
  600. package/dist/utils/wallet.cjs.map +0 -1
  601. package/dist/utils/wallet.d.ts +0 -94
  602. package/dist/utils/wallet.js +0 -37
  603. package/dist/utils/wallet.js.map +0 -1
  604. package/dist/utils/withEvents.cjs +0 -44
  605. package/dist/utils/withEvents.cjs.map +0 -1
  606. package/dist/utils/withEvents.d.ts +0 -56
  607. package/dist/utils/withEvents.js +0 -18
  608. package/dist/utils/withEvents.js.map +0 -1
  609. /package/dist/{__tests__/waitForTransactionEvents.test.d.ts → auth/pkce.test.d.ts} +0 -0
  610. /package/dist/{client/__tests__/enhancedResponse.test.d.ts → auth/token-store.test.d.ts} +0 -0
  611. /package/dist/{controllers/__tests__/operations.processQueue.test.d.ts → auth/web3-signed.test.d.ts} +0 -0
  612. /package/dist/{controllers/__tests__/schemas-edge-cases.test.d.ts → crypto/envelope/openpgp.test.d.ts} +0 -0
  613. /package/dist/{controllers/data-error-handling.test.d.ts → crypto/keys/derive.test.d.ts} +0 -0
  614. /package/dist/{tests/errors.test.d.ts → errors.test.d.ts} +0 -0
  615. /package/dist/{controllers/server-additional.test.d.ts → protocol/data-file.test.d.ts} +0 -0
  616. /package/dist/{core/__tests__/health.test.d.ts → protocol/eip712.test.d.ts} +0 -0
  617. /package/dist/{core/__tests__/inMemoryNonceManager.test.d.ts → protocol/gateway.test.d.ts} +0 -0
  618. /package/dist/{core/__tests__/nonceManager.test.d.ts → protocol/grants.test.d.ts} +0 -0
  619. /package/dist/{core/core.test.d.ts → protocol/scopes.test.d.ts} +0 -0
  620. /package/dist/{core/tests/apiClient.test.d.ts → storage/tests/defaultStorage.test.d.ts} +0 -0
  621. /package/dist/{core/tests/client.test.d.ts → storage/tests/r2Storage.test.d.ts} +0 -0
  622. /package/dist/{core/tests/generics.test.d.ts → storage/tests/vanaStorage.test.d.ts} +0 -0
  623. /package/dist/{diagnostics.test.d.ts → types/ps-errors.test.d.ts} +0 -0
@@ -1,430 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var operations_exports = {};
20
- __export(operations_exports, {
21
- OperationsController: () => OperationsController
22
- });
23
- module.exports = __toCommonJS(operations_exports);
24
- var import_base = require("./base");
25
- var import_pollingManager = require("../core/pollingManager");
26
- var import_nonceManager = require("../core/nonceManager");
27
- var import_inMemoryNonceManager = require("../core/inMemoryNonceManager");
28
- var import_viem = require("viem");
29
- class OperationsController extends import_base.BaseController {
30
- constructor(context) {
31
- super(context);
32
- }
33
- /**
34
- * Gets the current status of an operation.
35
- *
36
- * @remarks
37
- * This method allows recovery of operations that were interrupted due to:
38
- * - Browser tab closure
39
- * - Network disconnection
40
- * - Application errors
41
- * - Timeout during polling
42
- *
43
- * The method queries the backend for the current operation state without
44
- * starting a new polling session.
45
- *
46
- * @param operationId - The unique identifier of the operation to check
47
- * @returns Promise resolving to the current operation status
48
- * @throws {Error} When relayer is not configured
49
- * @throws {Error} When operation is not found
50
- *
51
- * @example
52
- * ```typescript
53
- * const status = await vana.operations.getStatus('550e8400-e29b-41d4-a716-446655440000');
54
- *
55
- * switch(status.type) {
56
- * case 'pending':
57
- * console.log('Still processing...');
58
- * break;
59
- * case 'queued':
60
- * console.log(`Position in queue: ${status.position}`);
61
- * break;
62
- * case 'confirmed':
63
- * console.log(`Transaction confirmed: ${status.receipt.transactionHash}`);
64
- * break;
65
- * case 'failed':
66
- * console.error(`Operation failed: ${status.error}`);
67
- * break;
68
- * }
69
- * ```
70
- */
71
- async getStatus(operationId) {
72
- if (!this.context.relayer) {
73
- throw new Error("Relayer not configured");
74
- }
75
- const request = {
76
- type: "status_check",
77
- operationId
78
- };
79
- const response = await this.context.relayer(request);
80
- return this.mapResponseToStatus(response, operationId);
81
- }
82
- /**
83
- * Waits for an operation to complete and returns the final result.
84
- *
85
- * @remarks
86
- * This method is useful for resuming polling of an operation that was
87
- * previously interrupted. Unlike `getStatus`, this method will actively
88
- * poll until the operation reaches a final state (confirmed or failed).
89
- *
90
- * @param operationId - The unique identifier of the operation to wait for
91
- * @param options - Optional configuration for polling behavior
92
- * @returns Promise resolving when the operation is confirmed
93
- * @throws {TransactionPendingError} When polling times out
94
- * @throws {Error} When the operation fails
95
- *
96
- * @example
97
- * ```typescript
98
- * // Resume polling with status updates
99
- * const result = await vana.operations.waitForConfirmation(operationId, {
100
- * onStatusUpdate: (status) => {
101
- * console.log(`Current status: ${status.type}`);
102
- * },
103
- * timeout: 600000 // 10 minutes
104
- * });
105
- *
106
- * console.log('Transaction confirmed:', result.hash);
107
- * ```
108
- */
109
- async waitForConfirmation(operationId, options) {
110
- if (!this.context.relayer) {
111
- throw new Error("Relayer not configured");
112
- }
113
- const currentStatus = await this.getStatus(operationId);
114
- if (currentStatus.type === "confirmed") {
115
- return {
116
- hash: currentStatus.hash,
117
- receipt: currentStatus.receipt
118
- };
119
- }
120
- if (currentStatus.type === "failed") {
121
- throw new Error(currentStatus.error);
122
- }
123
- const pollingManager = new import_pollingManager.PollingManager(this.context.relayer);
124
- return await pollingManager.startPolling(operationId, {
125
- signal: options?.signal,
126
- onStatusUpdate: options?.onStatusUpdate,
127
- timeout: options?.timeout,
128
- initialInterval: options?.initialInterval,
129
- maxInterval: options?.maxInterval
130
- });
131
- }
132
- /**
133
- * Cancels a pending operation if supported by the backend.
134
- *
135
- * @remarks
136
- * Not all backends support operation cancellation. This method will
137
- * attempt to cancel the operation but success is not guaranteed.
138
- *
139
- * @param operationId - The unique identifier of the operation to cancel
140
- * @returns Promise resolving to true if cancellation was successful
141
- * @throws {Error} When cancellation is not supported or fails
142
- *
143
- * @example
144
- * ```typescript
145
- * try {
146
- * const cancelled = await vana.operations.cancel(operationId);
147
- * if (cancelled) {
148
- * console.log('Operation cancelled successfully');
149
- * }
150
- * } catch (error) {
151
- * console.error('Failed to cancel operation:', error);
152
- * }
153
- * ```
154
- */
155
- async cancel(_operationId) {
156
- if (!this.context.relayer) {
157
- throw new Error("Relayer not configured");
158
- }
159
- throw new Error("Operation cancellation is not yet implemented");
160
- }
161
- /**
162
- * Processes queued operations from the operation store.
163
- *
164
- * @remarks
165
- * This method is designed for worker processes that handle asynchronous
166
- * operation processing. It fetches queued operations, processes them with
167
- * proper nonce management and gas escalation, and handles retries.
168
- *
169
- * This is typically called from a background worker or cron job to process
170
- * operations that were queued for asynchronous execution.
171
- *
172
- * @param config - Configuration for queue processing
173
- * @returns Promise resolving to processing results
174
- *
175
- * @example
176
- * ```typescript
177
- * // In a worker process
178
- * const results = await vana.operations.processQueue({
179
- * operationStore,
180
- * atomicStore,
181
- * walletClient,
182
- * publicClient,
183
- * maxOperations: 10,
184
- * onOperationComplete: (id, success) => {
185
- * console.log(`Operation ${id}: ${success ? 'completed' : 'failed'}`);
186
- * }
187
- * });
188
- *
189
- * console.log(`Processed ${results.processed} operations`);
190
- * ```
191
- */
192
- async processQueue(config) {
193
- const {
194
- operationStore,
195
- atomicStore,
196
- walletClient,
197
- publicClient,
198
- maxOperations = 10,
199
- maxRetries = 3,
200
- gasEscalationFactor = 1.2,
201
- maxGasMultiplier = 3,
202
- onOperationComplete,
203
- onError
204
- } = config;
205
- const results = {
206
- processed: 0,
207
- succeeded: 0,
208
- failed: 0,
209
- errors: []
210
- };
211
- const nonceManager = atomicStore ? new import_nonceManager.DistributedNonceManager({
212
- atomicStore,
213
- publicClient
214
- }) : new import_inMemoryNonceManager.InMemoryNonceManager(publicClient);
215
- const operations = await operationStore.getQueuedOperations({
216
- limit: maxOperations
217
- });
218
- console.log(
219
- `[OperationsController] Processing ${operations.length} queued operations`
220
- );
221
- for (const operation of operations) {
222
- results.processed++;
223
- try {
224
- await operationStore.updateStatus(operation.id, "processing");
225
- const storedTx = JSON.parse(operation.data, (_key, value) => {
226
- if (typeof value === "string" && value.startsWith("__BIGINT__")) {
227
- return BigInt(value.slice(10));
228
- }
229
- return value;
230
- });
231
- const chainId = await walletClient.getChainId();
232
- const [address] = await walletClient.getAddresses();
233
- const nonce = await nonceManager.assignNonce(address, chainId);
234
- if (nonce === null || nonce === void 0) {
235
- throw new Error("Failed to acquire nonce");
236
- }
237
- const retryCount = operation.retryCount ?? 0;
238
- const gasMultiplier = Math.min(
239
- Math.pow(gasEscalationFactor, retryCount),
240
- maxGasMultiplier
241
- );
242
- const escalatedTx = {
243
- ...storedTx,
244
- nonce,
245
- maxFeePerGas: storedTx.maxFeePerGas ? BigInt(Math.floor(Number(storedTx.maxFeePerGas) * gasMultiplier)) : void 0,
246
- maxPriorityFeePerGas: storedTx.maxPriorityFeePerGas ? BigInt(
247
- Math.floor(
248
- Number(storedTx.maxPriorityFeePerGas) * gasMultiplier
249
- )
250
- ) : void 0,
251
- gasPrice: storedTx.gasPrice ? BigInt(Math.floor(Number(storedTx.gasPrice) * gasMultiplier)) : void 0
252
- };
253
- console.log(
254
- `[OperationsController] Processing operation ${operation.id} with nonce ${nonce} (retry ${retryCount})`
255
- );
256
- const hash = await walletClient.sendTransaction(escalatedTx);
257
- await operationStore.updateStatus(operation.id, "submitted", {
258
- hash,
259
- nonce,
260
- submittedAt: Date.now()
261
- });
262
- console.log(
263
- `[OperationsController] Operation ${operation.id} submitted: ${hash}`
264
- );
265
- const receipt = await publicClient.waitForTransactionReceipt({
266
- hash,
267
- timeout: 6e4
268
- // 1 minute timeout
269
- });
270
- if (receipt.status === "success") {
271
- await operationStore.updateStatus(operation.id, "completed", {
272
- receipt,
273
- completedAt: Date.now()
274
- });
275
- results.succeeded++;
276
- onOperationComplete?.(operation.id, true);
277
- console.log(
278
- `[OperationsController] Operation ${operation.id} completed successfully`
279
- );
280
- } else {
281
- throw new Error(`Transaction reverted: ${hash}`);
282
- }
283
- } catch (error) {
284
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
285
- console.error(
286
- `[OperationsController] Operation ${operation.id} failed:`,
287
- errorMessage
288
- );
289
- results.failed++;
290
- results.errors.push({
291
- operationId: operation.id,
292
- error: errorMessage
293
- });
294
- const retryCount = (operation.retryCount ?? 0) + 1;
295
- if (retryCount >= maxRetries) {
296
- await operationStore.updateStatus(operation.id, "failed", {
297
- error: errorMessage,
298
- failedAt: Date.now()
299
- });
300
- } else {
301
- await operationStore.updateStatus(operation.id, "queued", {
302
- retryCount,
303
- lastError: errorMessage,
304
- lastAttemptAt: Date.now()
305
- });
306
- }
307
- onOperationComplete?.(operation.id, false);
308
- onError?.(
309
- operation.id,
310
- error instanceof Error ? error : new Error(errorMessage)
311
- );
312
- }
313
- }
314
- return results;
315
- }
316
- /**
317
- * Burns a stuck nonce by sending a minimal self-transfer.
318
- *
319
- * @remarks
320
- * This method is used to unblock the transaction queue when a transaction
321
- * is stuck. It sends a minimal amount to the same address with the stuck
322
- * nonce and higher gas to ensure it gets mined.
323
- *
324
- * @param config - Configuration for nonce burning
325
- * @returns Promise resolving to the burn transaction hash
326
- *
327
- * @example
328
- * ```typescript
329
- * const hash = await vana.operations.burnStuckNonce({
330
- * walletClient,
331
- * publicClient,
332
- * atomicStore,
333
- * address: relayerAddress,
334
- * stuckNonce: 42
335
- * });
336
- *
337
- * console.log(`Burned stuck nonce with tx: ${hash}`);
338
- * ```
339
- */
340
- async burnStuckNonce(config) {
341
- const { walletClient, publicClient, atomicStore, address, stuckNonce } = config;
342
- console.log(
343
- `[OperationsController] Burning stuck nonce ${stuckNonce} for ${address}`
344
- );
345
- const gasPrice = await publicClient.getGasPrice();
346
- const premiumGasPrice = gasPrice * 150n / 100n;
347
- const hash = await walletClient.sendTransaction({
348
- account: walletClient.account,
349
- chain: walletClient.chain,
350
- to: address,
351
- value: (0, import_viem.parseEther)("0.00001"),
352
- // Minimal amount
353
- nonce: stuckNonce,
354
- gasPrice: premiumGasPrice,
355
- gas: 21000n
356
- // Standard transfer gas
357
- });
358
- console.log(`[OperationsController] Nonce burn transaction sent: ${hash}`);
359
- const receipt = await publicClient.waitForTransactionReceipt({
360
- hash,
361
- timeout: 12e4
362
- // 2 minutes
363
- });
364
- if (receipt.status === "success") {
365
- console.log(
366
- `[OperationsController] Nonce ${stuckNonce} successfully burned`
367
- );
368
- const chainId = await walletClient.getChainId();
369
- const lastUsedKey = `nonce:${chainId}:${address}:lastUsed`;
370
- const currentLastUsed = await atomicStore.get(lastUsedKey);
371
- if (!currentLastUsed || parseInt(currentLastUsed) < stuckNonce) {
372
- await atomicStore.set(lastUsedKey, stuckNonce.toString());
373
- }
374
- } else {
375
- throw new Error(`Nonce burn transaction failed: ${hash}`);
376
- }
377
- return hash;
378
- }
379
- /**
380
- * Maps a relayer response to an OperationStatus object.
381
- * @internal
382
- */
383
- mapResponseToStatus(response, operationId) {
384
- switch (response.type) {
385
- case "pending":
386
- return {
387
- type: "pending",
388
- operationId: response.operationId
389
- };
390
- case "submitted":
391
- return {
392
- type: "submitted",
393
- hash: response.hash
394
- };
395
- case "confirmed":
396
- return {
397
- type: "confirmed",
398
- hash: response.hash,
399
- receipt: response.receipt
400
- };
401
- case "error":
402
- return {
403
- type: "failed",
404
- error: response.error || "Unknown error",
405
- operationId
406
- };
407
- case "signed":
408
- return {
409
- type: "submitted",
410
- hash: response.hash
411
- };
412
- case "direct":
413
- return {
414
- type: "confirmed",
415
- hash: "0x0000000000000000000000000000000000000000000000000000000000000000",
416
- receipt: void 0
417
- };
418
- default:
419
- return {
420
- type: "pending",
421
- operationId
422
- };
423
- }
424
- }
425
- }
426
- // Annotate the CommonJS export names for ESM import in node:
427
- 0 && (module.exports = {
428
- OperationsController
429
- });
430
- //# sourceMappingURL=operations.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/controllers/operations.ts"],"sourcesContent":["/**\n * Operations controller for managing and recovering asynchronous relayer operations.\n *\n * @module\n */\n\nimport type { ControllerContext } from \"./permissions\";\nimport type { OperationStatus } from \"../types/options\";\nimport type {\n UnifiedRelayerRequest,\n UnifiedRelayerResponse,\n} from \"../types/relayer\";\nimport type { IOperationStore } from \"../types/operationStore\";\nimport type { IAtomicStore } from \"../types/atomicStore\";\nimport type { WalletClient, PublicClient } from \"viem\";\nimport { BaseController } from \"./base\";\nimport { PollingManager } from \"../core/pollingManager\";\nimport { DistributedNonceManager } from \"../core/nonceManager\";\nimport { InMemoryNonceManager } from \"../core/inMemoryNonceManager\";\nimport { parseEther } from \"viem\";\n\n/**\n * Controller for managing asynchronous operations.\n *\n * This controller provides methods to check the status of pending operations\n * and recover from interrupted transactions.\n *\n * @category Controllers\n * @example\n * ```typescript\n * // Recover an orphaned operation\n * try {\n * const result = await vana.permissions.grant(...);\n * } catch (error) {\n * if (error instanceof TransactionPendingError) {\n * // Save the operation ID\n * localStorage.setItem('pendingOp', error.operationId);\n *\n * // Later, check the status\n * const operationId = localStorage.getItem('pendingOp');\n * const status = await vana.operations.getStatus(operationId);\n *\n * if (status.type === 'confirmed') {\n * console.log('Transaction confirmed:', status.receipt);\n * }\n * }\n * }\n * ```\n */\nexport class OperationsController extends BaseController {\n constructor(context: ControllerContext) {\n super(context);\n }\n\n /**\n * Gets the current status of an operation.\n *\n * @remarks\n * This method allows recovery of operations that were interrupted due to:\n * - Browser tab closure\n * - Network disconnection\n * - Application errors\n * - Timeout during polling\n *\n * The method queries the backend for the current operation state without\n * starting a new polling session.\n *\n * @param operationId - The unique identifier of the operation to check\n * @returns Promise resolving to the current operation status\n * @throws {Error} When relayer is not configured\n * @throws {Error} When operation is not found\n *\n * @example\n * ```typescript\n * const status = await vana.operations.getStatus('550e8400-e29b-41d4-a716-446655440000');\n *\n * switch(status.type) {\n * case 'pending':\n * console.log('Still processing...');\n * break;\n * case 'queued':\n * console.log(`Position in queue: ${status.position}`);\n * break;\n * case 'confirmed':\n * console.log(`Transaction confirmed: ${status.receipt.transactionHash}`);\n * break;\n * case 'failed':\n * console.error(`Operation failed: ${status.error}`);\n * break;\n * }\n * ```\n */\n async getStatus(operationId: string): Promise<OperationStatus> {\n if (!this.context.relayer) {\n throw new Error(\"Relayer not configured\");\n }\n\n const request: UnifiedRelayerRequest = {\n type: \"status_check\",\n operationId,\n };\n\n const response = await this.context.relayer(request);\n\n return this.mapResponseToStatus(response, operationId);\n }\n\n /**\n * Waits for an operation to complete and returns the final result.\n *\n * @remarks\n * This method is useful for resuming polling of an operation that was\n * previously interrupted. Unlike `getStatus`, this method will actively\n * poll until the operation reaches a final state (confirmed or failed).\n *\n * @param operationId - The unique identifier of the operation to wait for\n * @param options - Optional configuration for polling behavior\n * @returns Promise resolving when the operation is confirmed\n * @throws {TransactionPendingError} When polling times out\n * @throws {Error} When the operation fails\n *\n * @example\n * ```typescript\n * // Resume polling with status updates\n * const result = await vana.operations.waitForConfirmation(operationId, {\n * onStatusUpdate: (status) => {\n * console.log(`Current status: ${status.type}`);\n * },\n * timeout: 600000 // 10 minutes\n * });\n *\n * console.log('Transaction confirmed:', result.hash);\n * ```\n */\n async waitForConfirmation(\n operationId: string,\n options?: {\n signal?: AbortSignal;\n onStatusUpdate?: (status: OperationStatus) => void;\n timeout?: number;\n initialInterval?: number;\n maxInterval?: number;\n },\n ): Promise<{ hash: string; receipt?: any }> {\n if (!this.context.relayer) {\n throw new Error(\"Relayer not configured\");\n }\n\n // First check if already completed\n const currentStatus = await this.getStatus(operationId);\n\n if (currentStatus.type === \"confirmed\") {\n return {\n hash: currentStatus.hash,\n receipt: currentStatus.receipt,\n };\n }\n\n if (currentStatus.type === \"failed\") {\n throw new Error(currentStatus.error);\n }\n\n // Start polling if still pending\n const pollingManager = new PollingManager(this.context.relayer);\n\n return await pollingManager.startPolling(operationId, {\n signal: options?.signal,\n onStatusUpdate: options?.onStatusUpdate,\n timeout: options?.timeout,\n initialInterval: options?.initialInterval,\n maxInterval: options?.maxInterval,\n });\n }\n\n /**\n * Cancels a pending operation if supported by the backend.\n *\n * @remarks\n * Not all backends support operation cancellation. This method will\n * attempt to cancel the operation but success is not guaranteed.\n *\n * @param operationId - The unique identifier of the operation to cancel\n * @returns Promise resolving to true if cancellation was successful\n * @throws {Error} When cancellation is not supported or fails\n *\n * @example\n * ```typescript\n * try {\n * const cancelled = await vana.operations.cancel(operationId);\n * if (cancelled) {\n * console.log('Operation cancelled successfully');\n * }\n * } catch (error) {\n * console.error('Failed to cancel operation:', error);\n * }\n * ```\n */\n async cancel(_operationId: string): Promise<boolean> {\n if (!this.context.relayer) {\n throw new Error(\"Relayer not configured\");\n }\n\n // This would require a new request type in the relayer protocol\n // For now, we'll throw an error indicating it's not implemented\n throw new Error(\"Operation cancellation is not yet implemented\");\n\n // Future implementation would look like:\n // const request: UnifiedRelayerRequest = {\n // type: 'cancel_operation',\n // operationId: _operationId\n // };\n //\n // const response = await this.context.relayer(request);\n // return response.type === 'success';\n }\n\n /**\n * Processes queued operations from the operation store.\n *\n * @remarks\n * This method is designed for worker processes that handle asynchronous\n * operation processing. It fetches queued operations, processes them with\n * proper nonce management and gas escalation, and handles retries.\n *\n * This is typically called from a background worker or cron job to process\n * operations that were queued for asynchronous execution.\n *\n * @param config - Configuration for queue processing\n * @returns Promise resolving to processing results\n *\n * @example\n * ```typescript\n * // In a worker process\n * const results = await vana.operations.processQueue({\n * operationStore,\n * atomicStore,\n * walletClient,\n * publicClient,\n * maxOperations: 10,\n * onOperationComplete: (id, success) => {\n * console.log(`Operation ${id}: ${success ? 'completed' : 'failed'}`);\n * }\n * });\n *\n * console.log(`Processed ${results.processed} operations`);\n * ```\n */\n async processQueue(config: {\n operationStore: IOperationStore;\n atomicStore: IAtomicStore;\n walletClient: WalletClient;\n publicClient: PublicClient;\n maxOperations?: number;\n maxRetries?: number;\n gasEscalationFactor?: number;\n maxGasMultiplier?: number;\n onOperationComplete?: (operationId: string, success: boolean) => void;\n onError?: (operationId: string, error: Error) => void;\n }): Promise<{\n processed: number;\n succeeded: number;\n failed: number;\n errors: Array<{ operationId: string; error: string }>;\n }> {\n const {\n operationStore,\n atomicStore,\n walletClient,\n publicClient,\n maxOperations = 10,\n maxRetries = 3,\n gasEscalationFactor = 1.2,\n maxGasMultiplier = 3,\n onOperationComplete,\n onError,\n } = config;\n\n const results = {\n processed: 0,\n succeeded: 0,\n failed: 0,\n errors: [] as Array<{ operationId: string; error: string }>,\n };\n\n // Initialize appropriate nonce manager based on configuration\n // If we have an atomicStore, use distributed nonce manager for multi-instance safety\n // Otherwise use in-memory for single-instance simplicity\n const nonceManager = atomicStore\n ? new DistributedNonceManager({\n atomicStore,\n publicClient,\n })\n : new InMemoryNonceManager(publicClient);\n\n // Get queued operations\n const operations = await operationStore.getQueuedOperations({\n limit: maxOperations,\n });\n\n console.log(\n `[OperationsController] Processing ${operations.length} queued operations`,\n );\n\n for (const operation of operations) {\n results.processed++;\n\n try {\n // Mark as processing\n await operationStore.updateStatus(operation.id, \"processing\");\n\n // Parse the stored transaction\n const storedTx = JSON.parse(operation.data, (_key, value) => {\n if (typeof value === \"string\" && value.startsWith(\"__BIGINT__\")) {\n return BigInt(value.slice(10));\n }\n return value;\n });\n\n // Get chain ID from wallet client\n const chainId = await walletClient.getChainId();\n\n // Get relayer address\n const [address] = await walletClient.getAddresses();\n\n // Assign nonce atomically\n const nonce = await nonceManager.assignNonce(address, chainId);\n\n if (nonce === null || nonce === undefined) {\n throw new Error(\"Failed to acquire nonce\");\n }\n\n // Calculate gas with escalation based on retry count\n const retryCount = operation.retryCount ?? 0;\n const gasMultiplier = Math.min(\n Math.pow(gasEscalationFactor, retryCount),\n maxGasMultiplier,\n );\n\n // Apply gas escalation\n const escalatedTx = {\n ...storedTx,\n nonce,\n maxFeePerGas: storedTx.maxFeePerGas\n ? BigInt(Math.floor(Number(storedTx.maxFeePerGas) * gasMultiplier))\n : undefined,\n maxPriorityFeePerGas: storedTx.maxPriorityFeePerGas\n ? BigInt(\n Math.floor(\n Number(storedTx.maxPriorityFeePerGas) * gasMultiplier,\n ),\n )\n : undefined,\n gasPrice: storedTx.gasPrice\n ? BigInt(Math.floor(Number(storedTx.gasPrice) * gasMultiplier))\n : undefined,\n };\n\n console.log(\n `[OperationsController] Processing operation ${operation.id} with nonce ${nonce} (retry ${retryCount})`,\n );\n\n // Send transaction\n const hash = await walletClient.sendTransaction(escalatedTx);\n\n // Update status to submitted\n await operationStore.updateStatus(operation.id, \"submitted\", {\n hash,\n nonce,\n submittedAt: Date.now(),\n });\n\n console.log(\n `[OperationsController] Operation ${operation.id} submitted: ${hash}`,\n );\n\n // Wait for confirmation (with timeout)\n const receipt = await publicClient.waitForTransactionReceipt({\n hash,\n timeout: 60000, // 1 minute timeout\n });\n\n if (receipt.status === \"success\") {\n // Update to completed\n await operationStore.updateStatus(operation.id, \"completed\", {\n receipt,\n completedAt: Date.now(),\n });\n\n results.succeeded++;\n onOperationComplete?.(operation.id, true);\n\n console.log(\n `[OperationsController] Operation ${operation.id} completed successfully`,\n );\n } else {\n // Transaction reverted\n throw new Error(`Transaction reverted: ${hash}`);\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : \"Unknown error\";\n console.error(\n `[OperationsController] Operation ${operation.id} failed:`,\n errorMessage,\n );\n\n results.failed++;\n results.errors.push({\n operationId: operation.id,\n error: errorMessage,\n });\n\n const retryCount = (operation.retryCount ?? 0) + 1;\n\n if (retryCount >= maxRetries) {\n // Max retries reached, mark as failed\n await operationStore.updateStatus(operation.id, \"failed\", {\n error: errorMessage,\n failedAt: Date.now(),\n });\n } else {\n // Return to queue for retry\n await operationStore.updateStatus(operation.id, \"queued\", {\n retryCount,\n lastError: errorMessage,\n lastAttemptAt: Date.now(),\n });\n }\n\n onOperationComplete?.(operation.id, false);\n onError?.(\n operation.id,\n error instanceof Error ? error : new Error(errorMessage),\n );\n }\n }\n\n return results;\n }\n\n /**\n * Burns a stuck nonce by sending a minimal self-transfer.\n *\n * @remarks\n * This method is used to unblock the transaction queue when a transaction\n * is stuck. It sends a minimal amount to the same address with the stuck\n * nonce and higher gas to ensure it gets mined.\n *\n * @param config - Configuration for nonce burning\n * @returns Promise resolving to the burn transaction hash\n *\n * @example\n * ```typescript\n * const hash = await vana.operations.burnStuckNonce({\n * walletClient,\n * publicClient,\n * atomicStore,\n * address: relayerAddress,\n * stuckNonce: 42\n * });\n *\n * console.log(`Burned stuck nonce with tx: ${hash}`);\n * ```\n */\n async burnStuckNonce(config: {\n walletClient: WalletClient;\n publicClient: PublicClient;\n atomicStore: IAtomicStore;\n address: `0x${string}`;\n stuckNonce: number;\n }): Promise<string> {\n const { walletClient, publicClient, atomicStore, address, stuckNonce } =\n config;\n\n console.log(\n `[OperationsController] Burning stuck nonce ${stuckNonce} for ${address}`,\n );\n\n // Get current gas prices with 50% premium\n const gasPrice = await publicClient.getGasPrice();\n const premiumGasPrice = (gasPrice * 150n) / 100n;\n\n // Send minimal self-transfer\n const hash = await walletClient.sendTransaction({\n account: walletClient.account!,\n chain: walletClient.chain,\n to: address,\n value: parseEther(\"0.00001\"), // Minimal amount\n nonce: stuckNonce,\n gasPrice: premiumGasPrice,\n gas: 21000n, // Standard transfer gas\n });\n\n console.log(`[OperationsController] Nonce burn transaction sent: ${hash}`);\n\n // Wait for confirmation\n const receipt = await publicClient.waitForTransactionReceipt({\n hash,\n timeout: 120000, // 2 minutes\n });\n\n if (receipt.status === \"success\") {\n console.log(\n `[OperationsController] Nonce ${stuckNonce} successfully burned`,\n );\n\n // Update stored nonce to reflect the burn\n const chainId = await walletClient.getChainId();\n const lastUsedKey = `nonce:${chainId}:${address}:lastUsed`;\n\n // Only update if this nonce was higher than stored\n const currentLastUsed = await atomicStore.get(lastUsedKey);\n if (!currentLastUsed || parseInt(currentLastUsed) < stuckNonce) {\n await atomicStore.set(lastUsedKey, stuckNonce.toString());\n }\n } else {\n throw new Error(`Nonce burn transaction failed: ${hash}`);\n }\n\n return hash;\n }\n\n /**\n * Maps a relayer response to an OperationStatus object.\n * @internal\n */\n private mapResponseToStatus(\n response: UnifiedRelayerResponse,\n operationId: string,\n ): OperationStatus {\n switch (response.type) {\n case \"pending\":\n return {\n type: \"pending\",\n operationId: response.operationId,\n };\n\n case \"submitted\":\n return {\n type: \"submitted\",\n hash: response.hash,\n };\n\n case \"confirmed\":\n return {\n type: \"confirmed\",\n hash: response.hash,\n receipt: response.receipt,\n };\n\n case \"error\":\n return {\n type: \"failed\",\n error: response.error || \"Unknown error\",\n operationId,\n };\n\n case \"signed\":\n // Signed responses are considered submitted\n return {\n type: \"submitted\",\n hash: response.hash,\n };\n\n case \"direct\":\n // Direct responses are immediately confirmed\n // For direct operations, we don't have a transaction hash\n return {\n type: \"confirmed\",\n hash: \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n receipt: undefined,\n };\n\n default:\n // Handle other response types as pending\n return {\n type: \"pending\",\n operationId,\n };\n }\n }\n}\n"],"mappings":"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","names":[]}