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

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