@opendatalabs/vana-sdk 0.1.0-alpha.ffe4659 → 2.1.0

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 (907) hide show
  1. package/README.md +67 -342
  2. package/dist/__tests__/waitForTransactionEvents.test.d.ts +1 -0
  3. package/dist/browser.cjs +29 -0
  4. package/dist/browser.cjs.map +1 -0
  5. package/dist/browser.d.ts +36 -1
  6. package/dist/browser.js +1 -305
  7. package/dist/browser.js.map +1 -1
  8. package/dist/{chains.browser.cjs → chains/definitions.cjs} +16 -17
  9. package/dist/chains/definitions.cjs.map +1 -0
  10. package/dist/{chains.browser.d.cts → chains/definitions.d.ts} +9 -11
  11. package/dist/chains/definitions.js +67 -0
  12. package/dist/chains/definitions.js.map +1 -0
  13. package/dist/chains/index.cjs +37 -0
  14. package/dist/chains/index.cjs.map +1 -0
  15. package/dist/chains/index.d.ts +34 -0
  16. package/dist/chains/index.js +15 -0
  17. package/dist/chains/index.js.map +1 -0
  18. package/dist/chains.browser.d.ts +5 -50
  19. package/dist/chains.browser.js +7 -57
  20. package/dist/chains.browser.js.map +1 -1
  21. package/dist/chains.cjs +6 -65
  22. package/dist/chains.cjs.map +1 -1
  23. package/dist/chains.d.ts +8 -2
  24. package/dist/chains.js +7 -57
  25. package/dist/chains.js.map +1 -1
  26. package/dist/chains.node.cjs +6 -65
  27. package/dist/chains.node.cjs.map +1 -1
  28. package/dist/chains.node.d.ts +8 -2
  29. package/dist/chains.node.js +7 -57
  30. package/dist/chains.node.js.map +1 -1
  31. package/dist/client/__tests__/enhancedResponse.test.d.ts +1 -0
  32. package/dist/client/enhancedResponse.cjs +164 -0
  33. package/dist/client/enhancedResponse.cjs.map +1 -0
  34. package/dist/client/enhancedResponse.d.ts +120 -0
  35. package/dist/client/enhancedResponse.js +138 -0
  36. package/dist/client/enhancedResponse.js.map +1 -0
  37. package/dist/config/addresses.cjs +325 -0
  38. package/dist/config/addresses.cjs.map +1 -0
  39. package/dist/config/addresses.d.ts +364 -0
  40. package/dist/config/addresses.js +295 -0
  41. package/dist/config/addresses.js.map +1 -0
  42. package/dist/config/chains.cjs +93 -0
  43. package/dist/config/chains.cjs.map +1 -0
  44. package/dist/config/chains.d.ts +180 -0
  45. package/dist/config/chains.js +67 -0
  46. package/dist/config/chains.js.map +1 -0
  47. package/dist/config/default-services.cjs +60 -0
  48. package/dist/config/default-services.cjs.map +1 -0
  49. package/dist/config/default-services.d.ts +46 -0
  50. package/dist/config/default-services.js +33 -0
  51. package/dist/config/default-services.js.map +1 -0
  52. package/dist/config/default-services.test.d.ts +1 -0
  53. package/dist/config/features.cjs +52 -0
  54. package/dist/config/features.cjs.map +1 -0
  55. package/dist/config/features.d.ts +62 -0
  56. package/dist/config/features.js +28 -0
  57. package/dist/config/features.js.map +1 -0
  58. package/dist/config/tests/addresses.test.d.ts +1 -0
  59. package/dist/contracts/contractController.cjs +126 -0
  60. package/dist/contracts/contractController.cjs.map +1 -0
  61. package/dist/contracts/contractController.d.ts +135 -0
  62. package/dist/contracts/contractController.js +100 -0
  63. package/dist/contracts/contractController.js.map +1 -0
  64. package/dist/contracts/tests/contractController.test.d.ts +1 -0
  65. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +7 -0
  66. package/dist/controllers/__tests__/operations.processQueue.test.d.ts +1 -0
  67. package/dist/controllers/__tests__/schemas-edge-cases.test.d.ts +1 -0
  68. package/dist/controllers/base.cjs +116 -0
  69. package/dist/controllers/base.cjs.map +1 -0
  70. package/dist/controllers/base.d.ts +94 -0
  71. package/dist/controllers/base.js +92 -0
  72. package/dist/controllers/base.js.map +1 -0
  73. package/dist/controllers/data-error-handling.test.d.ts +1 -0
  74. package/dist/controllers/data.cjs +2633 -0
  75. package/dist/controllers/data.cjs.map +1 -0
  76. package/dist/controllers/data.d.ts +1067 -0
  77. package/dist/controllers/data.js +2626 -0
  78. package/dist/controllers/data.js.map +1 -0
  79. package/dist/controllers/operations.cjs +430 -0
  80. package/dist/controllers/operations.cjs.map +1 -0
  81. package/dist/controllers/operations.d.ts +229 -0
  82. package/dist/controllers/operations.js +406 -0
  83. package/dist/controllers/operations.js.map +1 -0
  84. package/dist/controllers/permissions.cjs +4363 -0
  85. package/dist/controllers/permissions.cjs.map +1 -0
  86. package/dist/controllers/permissions.d.ts +1411 -0
  87. package/dist/controllers/permissions.js +4339 -0
  88. package/dist/controllers/permissions.js.map +1 -0
  89. package/dist/controllers/protocol.cjs +183 -0
  90. package/dist/controllers/protocol.cjs.map +1 -0
  91. package/dist/controllers/protocol.d.ts +138 -0
  92. package/dist/controllers/protocol.js +163 -0
  93. package/dist/controllers/protocol.js.map +1 -0
  94. package/dist/controllers/schemas.cjs +678 -0
  95. package/dist/controllers/schemas.cjs.map +1 -0
  96. package/dist/controllers/schemas.d.ts +293 -0
  97. package/dist/controllers/schemas.js +654 -0
  98. package/dist/controllers/schemas.js.map +1 -0
  99. package/dist/controllers/server-additional.test.d.ts +1 -0
  100. package/dist/controllers/server.cjs +643 -0
  101. package/dist/controllers/server.cjs.map +1 -0
  102. package/dist/controllers/server.d.ts +322 -0
  103. package/dist/controllers/server.js +624 -0
  104. package/dist/controllers/server.js.map +1 -0
  105. package/dist/core/__tests__/health.test.d.ts +1 -0
  106. package/dist/core/__tests__/inMemoryNonceManager.test.d.ts +1 -0
  107. package/dist/core/__tests__/nonceManager.test.d.ts +1 -0
  108. package/dist/core/__tests__/pollingManager.test.d.ts +4 -0
  109. package/dist/core/apiClient.cjs +378 -0
  110. package/dist/core/apiClient.cjs.map +1 -0
  111. package/dist/core/apiClient.d.ts +286 -0
  112. package/dist/core/apiClient.js +359 -0
  113. package/dist/core/apiClient.js.map +1 -0
  114. package/dist/core/client.cjs +70 -0
  115. package/dist/core/client.cjs.map +1 -0
  116. package/dist/core/client.d.ts +89 -0
  117. package/dist/core/client.js +47 -0
  118. package/dist/core/client.js.map +1 -0
  119. package/dist/core/core.test.d.ts +1 -0
  120. package/dist/core/generics.cjs +417 -0
  121. package/dist/core/generics.cjs.map +1 -0
  122. package/dist/core/generics.d.ts +205 -0
  123. package/dist/core/generics.js +386 -0
  124. package/dist/core/generics.js.map +1 -0
  125. package/dist/core/health.cjs +289 -0
  126. package/dist/core/health.cjs.map +1 -0
  127. package/dist/core/health.d.ts +143 -0
  128. package/dist/core/health.js +265 -0
  129. package/dist/core/health.js.map +1 -0
  130. package/dist/core/inMemoryNonceManager.cjs +138 -0
  131. package/dist/core/inMemoryNonceManager.cjs.map +1 -0
  132. package/dist/core/inMemoryNonceManager.d.ts +69 -0
  133. package/dist/core/inMemoryNonceManager.js +114 -0
  134. package/dist/core/inMemoryNonceManager.js.map +1 -0
  135. package/dist/core/nonceManager.cjs +304 -0
  136. package/dist/core/nonceManager.cjs.map +1 -0
  137. package/dist/core/nonceManager.d.ts +116 -0
  138. package/dist/core/nonceManager.js +280 -0
  139. package/dist/core/nonceManager.js.map +1 -0
  140. package/dist/core/pollingManager.cjs +292 -0
  141. package/dist/core/pollingManager.cjs.map +1 -0
  142. package/dist/core/pollingManager.d.ts +120 -0
  143. package/dist/core/pollingManager.js +268 -0
  144. package/dist/core/pollingManager.js.map +1 -0
  145. package/dist/core/tests/apiClient.test.d.ts +1 -0
  146. package/dist/core/tests/client.test.d.ts +1 -0
  147. package/dist/core/tests/generics.test.d.ts +1 -0
  148. package/dist/core.cjs +777 -0
  149. package/dist/core.cjs.map +1 -0
  150. package/dist/core.d.ts +493 -0
  151. package/dist/core.js +752 -0
  152. package/dist/core.js.map +1 -0
  153. package/dist/crypto/ecies/__tests__/base.test.d.ts +4 -0
  154. package/dist/crypto/ecies/__tests__/compatibility.test.d.ts +8 -0
  155. package/dist/crypto/ecies/__tests__/constants.test.d.ts +4 -0
  156. package/dist/crypto/ecies/__tests__/native-parity.test.d.ts +7 -0
  157. package/dist/crypto/ecies/__tests__/normalization.test.d.ts +1 -0
  158. package/dist/crypto/ecies/__tests__/test-vectors.cjs +102 -0
  159. package/dist/crypto/ecies/__tests__/test-vectors.cjs.map +1 -0
  160. package/dist/crypto/ecies/__tests__/test-vectors.d.ts +38 -0
  161. package/dist/crypto/ecies/__tests__/test-vectors.js +77 -0
  162. package/dist/crypto/ecies/__tests__/test-vectors.js.map +1 -0
  163. package/dist/crypto/ecies/base.cjs +245 -0
  164. package/dist/crypto/ecies/base.cjs.map +1 -0
  165. package/dist/crypto/ecies/base.d.ts +140 -0
  166. package/dist/crypto/ecies/base.js +221 -0
  167. package/dist/crypto/ecies/base.js.map +1 -0
  168. package/dist/crypto/ecies/browser.cjs +165 -0
  169. package/dist/crypto/ecies/browser.cjs.map +1 -0
  170. package/dist/crypto/ecies/browser.d.ts +43 -0
  171. package/dist/crypto/ecies/browser.js +131 -0
  172. package/dist/crypto/ecies/browser.js.map +1 -0
  173. package/dist/crypto/ecies/constants.cjs +131 -0
  174. package/dist/crypto/ecies/constants.cjs.map +1 -0
  175. package/dist/crypto/ecies/constants.d.ts +120 -0
  176. package/dist/crypto/ecies/constants.js +101 -0
  177. package/dist/crypto/ecies/constants.js.map +1 -0
  178. package/dist/crypto/ecies/index.cjs +35 -0
  179. package/dist/crypto/ecies/index.cjs.map +1 -0
  180. package/dist/crypto/ecies/index.d.ts +8 -0
  181. package/dist/crypto/ecies/index.js +13 -0
  182. package/dist/crypto/ecies/index.js.map +1 -0
  183. package/dist/crypto/ecies/interface.cjs +87 -0
  184. package/dist/crypto/ecies/interface.cjs.map +1 -0
  185. package/dist/crypto/ecies/interface.d.ts +174 -0
  186. package/dist/crypto/ecies/interface.js +60 -0
  187. package/dist/crypto/ecies/interface.js.map +1 -0
  188. package/dist/crypto/ecies/node.cjs +167 -0
  189. package/dist/crypto/ecies/node.cjs.map +1 -0
  190. package/dist/crypto/ecies/node.d.ts +45 -0
  191. package/dist/crypto/ecies/node.js +139 -0
  192. package/dist/crypto/ecies/node.js.map +1 -0
  193. package/dist/crypto/ecies/test-vectors/eccrypto-vectors.json +72 -0
  194. package/dist/crypto/ecies/utils.cjs +52 -0
  195. package/dist/crypto/ecies/utils.cjs.map +1 -0
  196. package/dist/crypto/ecies/utils.d.ts +30 -0
  197. package/dist/crypto/ecies/utils.js +26 -0
  198. package/dist/crypto/ecies/utils.js.map +1 -0
  199. package/dist/crypto/services/WalletKeyEncryptionService.cjs +128 -0
  200. package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -0
  201. package/dist/crypto/services/WalletKeyEncryptionService.d.ts +88 -0
  202. package/dist/crypto/services/WalletKeyEncryptionService.js +108 -0
  203. package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -0
  204. package/dist/crypto/services/WalletKeyEncryptionService.test.d.ts +1 -0
  205. package/dist/diagnostics.cjs +37 -0
  206. package/dist/diagnostics.cjs.map +1 -0
  207. package/dist/diagnostics.d.ts +24 -0
  208. package/dist/diagnostics.js +13 -0
  209. package/dist/diagnostics.js.map +1 -0
  210. package/dist/diagnostics.test.d.ts +1 -0
  211. package/dist/errors.cjs +186 -0
  212. package/dist/errors.cjs.map +1 -0
  213. package/dist/errors.d.ts +452 -0
  214. package/dist/errors.js +148 -0
  215. package/dist/errors.js.map +1 -0
  216. package/dist/generated/abi/ComputeEngineImplementation.cjs +1313 -0
  217. package/dist/generated/abi/ComputeEngineImplementation.cjs.map +1 -0
  218. package/dist/generated/abi/ComputeEngineImplementation.d.ts +995 -0
  219. package/dist/generated/abi/ComputeEngineImplementation.js +1289 -0
  220. package/dist/generated/abi/ComputeEngineImplementation.js.map +1 -0
  221. package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs +734 -0
  222. package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs.map +1 -0
  223. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +544 -0
  224. package/dist/generated/abi/ComputeInstructionRegistryImplementation.js +710 -0
  225. package/dist/generated/abi/ComputeInstructionRegistryImplementation.js.map +1 -0
  226. package/dist/generated/abi/DATFactoryImplementation.cjs +882 -0
  227. package/dist/generated/abi/DATFactoryImplementation.cjs.map +1 -0
  228. package/dist/generated/abi/DATFactoryImplementation.d.ts +660 -0
  229. package/dist/generated/abi/DATFactoryImplementation.js +858 -0
  230. package/dist/generated/abi/DATFactoryImplementation.js.map +1 -0
  231. package/dist/generated/abi/DATImplementation.cjs +934 -0
  232. package/dist/generated/abi/DATImplementation.cjs.map +1 -0
  233. package/dist/generated/abi/DATImplementation.d.ts +692 -0
  234. package/dist/generated/abi/DATImplementation.js +910 -0
  235. package/dist/generated/abi/DATImplementation.js.map +1 -0
  236. package/dist/generated/abi/DATPausableImplementation.cjs +1523 -0
  237. package/dist/generated/abi/DATPausableImplementation.cjs.map +1 -0
  238. package/dist/generated/abi/DATPausableImplementation.d.ts +1144 -0
  239. package/dist/generated/abi/DATPausableImplementation.js +1499 -0
  240. package/dist/generated/abi/DATPausableImplementation.js.map +1 -0
  241. package/dist/generated/abi/DATVotesImplementation.cjs +1460 -0
  242. package/dist/generated/abi/DATVotesImplementation.cjs.map +1 -0
  243. package/dist/generated/abi/DATVotesImplementation.d.ts +1094 -0
  244. package/dist/generated/abi/DATVotesImplementation.js +1436 -0
  245. package/dist/generated/abi/DATVotesImplementation.js.map +1 -0
  246. package/dist/generated/abi/DLPPerformanceImplementation.cjs +1202 -0
  247. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +1 -0
  248. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +914 -0
  249. package/dist/generated/abi/DLPPerformanceImplementation.js +1178 -0
  250. package/dist/generated/abi/DLPPerformanceImplementation.js.map +1 -0
  251. package/dist/generated/abi/DLPRegistryImplementation.cjs +1469 -0
  252. package/dist/generated/abi/DLPRegistryImplementation.cjs.map +1 -0
  253. package/dist/generated/abi/DLPRegistryImplementation.d.ts +1122 -0
  254. package/dist/generated/abi/DLPRegistryImplementation.js +1445 -0
  255. package/dist/generated/abi/DLPRegistryImplementation.js.map +1 -0
  256. package/dist/generated/abi/DLPRegistryTreasuryImplementation.cjs +612 -0
  257. package/dist/generated/abi/DLPRegistryTreasuryImplementation.cjs.map +1 -0
  258. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +451 -0
  259. package/dist/generated/abi/DLPRegistryTreasuryImplementation.js +588 -0
  260. package/dist/generated/abi/DLPRegistryTreasuryImplementation.js.map +1 -0
  261. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +1112 -0
  262. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +1 -0
  263. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +840 -0
  264. package/dist/generated/abi/DLPRewardDeployerImplementation.js +1088 -0
  265. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +1 -0
  266. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +612 -0
  267. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +1 -0
  268. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +451 -0
  269. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +588 -0
  270. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +1 -0
  271. package/dist/generated/abi/DLPRewardSwapImplementation.cjs +939 -0
  272. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +1 -0
  273. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +705 -0
  274. package/dist/generated/abi/DLPRewardSwapImplementation.js +915 -0
  275. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +1 -0
  276. package/dist/generated/abi/DLPRootImplementation.cjs +1644 -0
  277. package/dist/generated/abi/DLPRootImplementation.cjs.map +1 -0
  278. package/dist/generated/abi/DLPRootImplementation.d.ts +1246 -0
  279. package/dist/generated/abi/DLPRootImplementation.js +1620 -0
  280. package/dist/generated/abi/DLPRootImplementation.js.map +1 -0
  281. package/dist/generated/abi/DLPTreasuryImplementation.cjs +612 -0
  282. package/dist/generated/abi/DLPTreasuryImplementation.cjs.map +1 -0
  283. package/dist/generated/abi/DLPTreasuryImplementation.d.ts +451 -0
  284. package/dist/generated/abi/DLPTreasuryImplementation.js +588 -0
  285. package/dist/generated/abi/DLPTreasuryImplementation.js.map +1 -0
  286. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +985 -0
  287. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +1 -0
  288. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +735 -0
  289. package/dist/generated/abi/DataLiquidityPoolImplementation.js +961 -0
  290. package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +1 -0
  291. package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs +1036 -0
  292. package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs.map +1 -0
  293. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +773 -0
  294. package/dist/generated/abi/DataPortabilityGranteesImplementation.js +1012 -0
  295. package/dist/generated/abi/DataPortabilityGranteesImplementation.js.map +1 -0
  296. package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs +1298 -0
  297. package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs.map +1 -0
  298. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +974 -0
  299. package/dist/generated/abi/DataPortabilityPermissionsImplementation.js +1274 -0
  300. package/dist/generated/abi/DataPortabilityPermissionsImplementation.js.map +1 -0
  301. package/dist/generated/abi/DataPortabilityServersImplementation.cjs +1419 -0
  302. package/dist/generated/abi/DataPortabilityServersImplementation.cjs.map +1 -0
  303. package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +1071 -0
  304. package/dist/generated/abi/DataPortabilityServersImplementation.js +1395 -0
  305. package/dist/generated/abi/DataPortabilityServersImplementation.js.map +1 -0
  306. package/dist/generated/abi/DataRefinerRegistryImplementation.cjs +984 -0
  307. package/dist/generated/abi/DataRefinerRegistryImplementation.cjs.map +1 -0
  308. package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +736 -0
  309. package/dist/generated/abi/DataRefinerRegistryImplementation.js +960 -0
  310. package/dist/generated/abi/DataRefinerRegistryImplementation.js.map +1 -0
  311. package/dist/generated/abi/DataRegistryImplementation.cjs +1328 -0
  312. package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -0
  313. package/dist/generated/abi/DataRegistryImplementation.d.ts +1003 -0
  314. package/dist/generated/abi/DataRegistryImplementation.js +1304 -0
  315. package/dist/generated/abi/DataRegistryImplementation.js.map +1 -0
  316. package/dist/generated/abi/QueryEngineImplementation.cjs +1319 -0
  317. package/dist/generated/abi/QueryEngineImplementation.cjs.map +1 -0
  318. package/dist/generated/abi/QueryEngineImplementation.d.ts +1000 -0
  319. package/dist/generated/abi/QueryEngineImplementation.js +1295 -0
  320. package/dist/generated/abi/QueryEngineImplementation.js.map +1 -0
  321. package/dist/generated/abi/SwapHelperImplementation.cjs +976 -0
  322. package/dist/generated/abi/SwapHelperImplementation.cjs.map +1 -0
  323. package/dist/generated/abi/SwapHelperImplementation.d.ts +728 -0
  324. package/dist/generated/abi/SwapHelperImplementation.js +952 -0
  325. package/dist/generated/abi/SwapHelperImplementation.js.map +1 -0
  326. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.cjs +936 -0
  327. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.cjs.map +1 -0
  328. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +700 -0
  329. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.js +912 -0
  330. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.js.map +1 -0
  331. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.cjs +936 -0
  332. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.cjs.map +1 -0
  333. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +700 -0
  334. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.js +912 -0
  335. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.js.map +1 -0
  336. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.cjs +936 -0
  337. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.cjs.map +1 -0
  338. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +700 -0
  339. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.js +912 -0
  340. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.js.map +1 -0
  341. package/dist/generated/abi/TeePoolImplementation.cjs +1313 -0
  342. package/dist/generated/abi/TeePoolImplementation.cjs.map +1 -0
  343. package/dist/generated/abi/TeePoolImplementation.d.ts +992 -0
  344. package/dist/generated/abi/TeePoolImplementation.js +1289 -0
  345. package/dist/generated/abi/TeePoolImplementation.js.map +1 -0
  346. package/dist/generated/abi/TeePoolPersistentGpuImplementation.cjs +936 -0
  347. package/dist/generated/abi/TeePoolPersistentGpuImplementation.cjs.map +1 -0
  348. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +700 -0
  349. package/dist/generated/abi/TeePoolPersistentGpuImplementation.js +912 -0
  350. package/dist/generated/abi/TeePoolPersistentGpuImplementation.js.map +1 -0
  351. package/dist/generated/abi/TeePoolPersistentStandardImplementation.cjs +936 -0
  352. package/dist/generated/abi/TeePoolPersistentStandardImplementation.cjs.map +1 -0
  353. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +700 -0
  354. package/dist/generated/abi/TeePoolPersistentStandardImplementation.js +912 -0
  355. package/dist/generated/abi/TeePoolPersistentStandardImplementation.js.map +1 -0
  356. package/dist/generated/abi/TeePoolPhalaImplementation.cjs +1313 -0
  357. package/dist/generated/abi/TeePoolPhalaImplementation.cjs.map +1 -0
  358. package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +992 -0
  359. package/dist/generated/abi/TeePoolPhalaImplementation.js +1289 -0
  360. package/dist/generated/abi/TeePoolPhalaImplementation.js.map +1 -0
  361. package/dist/generated/abi/VanaEpochImplementation.cjs +1383 -0
  362. package/dist/generated/abi/VanaEpochImplementation.cjs.map +1 -0
  363. package/dist/generated/abi/VanaEpochImplementation.d.ts +1050 -0
  364. package/dist/generated/abi/VanaEpochImplementation.js +1359 -0
  365. package/dist/generated/abi/VanaEpochImplementation.js.map +1 -0
  366. package/dist/generated/abi/VanaPoolEntityImplementation.cjs +1191 -0
  367. package/dist/generated/abi/VanaPoolEntityImplementation.cjs.map +1 -0
  368. package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +899 -0
  369. package/dist/generated/abi/VanaPoolEntityImplementation.js +1167 -0
  370. package/dist/generated/abi/VanaPoolEntityImplementation.js.map +1 -0
  371. package/dist/generated/abi/VanaPoolStakingImplementation.cjs +1033 -0
  372. package/dist/generated/abi/VanaPoolStakingImplementation.cjs.map +1 -0
  373. package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +776 -0
  374. package/dist/generated/abi/VanaPoolStakingImplementation.js +1009 -0
  375. package/dist/generated/abi/VanaPoolStakingImplementation.js.map +1 -0
  376. package/dist/generated/abi/VanaPoolTreasuryImplementation.cjs +538 -0
  377. package/dist/generated/abi/VanaPoolTreasuryImplementation.cjs.map +1 -0
  378. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +393 -0
  379. package/dist/generated/abi/VanaPoolTreasuryImplementation.js +514 -0
  380. package/dist/generated/abi/VanaPoolTreasuryImplementation.js.map +1 -0
  381. package/dist/generated/abi/index.cjs +177 -0
  382. package/dist/generated/abi/index.cjs.map +1 -0
  383. package/dist/{index.node.d.cts → generated/abi/index.d.ts} +26941 -37486
  384. package/dist/generated/abi/index.js +120 -0
  385. package/dist/generated/abi/index.js.map +1 -0
  386. package/dist/generated/event-types.cjs +17 -0
  387. package/dist/generated/event-types.cjs.map +1 -0
  388. package/dist/generated/event-types.d.ts +860 -0
  389. package/dist/generated/event-types.js +1 -0
  390. package/dist/generated/event-types.js.map +1 -0
  391. package/dist/generated/eventRegistry.cjs +3375 -0
  392. package/dist/generated/eventRegistry.cjs.map +1 -0
  393. package/dist/generated/eventRegistry.d.ts +14 -0
  394. package/dist/generated/eventRegistry.js +3350 -0
  395. package/dist/generated/eventRegistry.js.map +1 -0
  396. package/dist/generated/server/server-exports.cjs +45 -0
  397. package/dist/generated/server/server-exports.cjs.map +1 -0
  398. package/dist/generated/server/server-exports.d.ts +36 -0
  399. package/dist/generated/server/server-exports.js +19 -0
  400. package/dist/generated/server/server-exports.js.map +1 -0
  401. package/dist/generated/server/server.cjs +17 -0
  402. package/dist/generated/server/server.cjs.map +1 -0
  403. package/dist/generated/server/server.d.ts +907 -0
  404. package/dist/generated/server/server.js +1 -0
  405. package/dist/generated/server/server.js.map +1 -0
  406. package/dist/generated/subgraph.cjs +1440 -0
  407. package/dist/generated/subgraph.cjs.map +1 -0
  408. package/dist/generated/subgraph.d.ts +6113 -0
  409. package/dist/generated/subgraph.js +1404 -0
  410. package/dist/generated/subgraph.js.map +1 -0
  411. package/dist/index.browser.d.ts +48 -37223
  412. package/dist/index.browser.js +86 -46352
  413. package/dist/index.browser.js.map +1 -1
  414. package/dist/index.cjs +5 -0
  415. package/dist/index.cjs.map +1 -0
  416. package/dist/index.d.ts +0 -0
  417. package/dist/index.js +4 -0
  418. package/dist/index.js.map +1 -0
  419. package/dist/index.node.cjs +123 -46839
  420. package/dist/index.node.cjs.map +1 -1
  421. package/dist/index.node.d.ts +92 -37358
  422. package/dist/index.node.js +103 -46726
  423. package/dist/index.node.js.map +1 -1
  424. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +1 -0
  425. package/dist/lib/redisAtomicStore.cjs +201 -0
  426. package/dist/lib/redisAtomicStore.cjs.map +1 -0
  427. package/dist/lib/redisAtomicStore.d.ts +120 -0
  428. package/dist/lib/redisAtomicStore.js +177 -0
  429. package/dist/lib/redisAtomicStore.js.map +1 -0
  430. package/dist/node.cjs +2 -321
  431. package/dist/node.cjs.map +1 -1
  432. package/dist/node.d.ts +42 -1
  433. package/dist/node.js +1 -307
  434. package/dist/node.js.map +1 -1
  435. package/dist/platform/browser-only.cjs +37 -0
  436. package/dist/platform/browser-only.cjs.map +1 -0
  437. package/dist/platform/browser-only.d.ts +22 -0
  438. package/dist/platform/browser-only.js +12 -0
  439. package/dist/platform/browser-only.js.map +1 -0
  440. package/dist/platform/browser-only.test.d.ts +1 -0
  441. package/dist/platform/browser-safe.cjs +57 -0
  442. package/dist/platform/browser-safe.cjs.map +1 -0
  443. package/dist/platform/browser-safe.d.ts +29 -0
  444. package/dist/platform/browser-safe.js +31 -0
  445. package/dist/platform/browser-safe.js.map +1 -0
  446. package/dist/platform/browser-safe.test.d.ts +1 -0
  447. package/dist/platform/browser.cjs +488 -0
  448. package/dist/platform/browser.cjs.map +1 -0
  449. package/dist/platform/browser.d.ts +291 -0
  450. package/dist/platform/browser.js +454 -0
  451. package/dist/platform/browser.js.map +1 -0
  452. package/dist/platform/browser.test.d.ts +1 -0
  453. package/dist/platform/index.cjs +50 -0
  454. package/dist/platform/index.cjs.map +1 -0
  455. package/dist/platform/index.d.ts +11 -0
  456. package/dist/platform/index.js +27 -0
  457. package/dist/platform/index.js.map +1 -0
  458. package/dist/platform/interface.cjs +17 -0
  459. package/dist/platform/interface.cjs.map +1 -0
  460. package/dist/platform/interface.d.ts +409 -0
  461. package/dist/platform/interface.js +1 -0
  462. package/dist/platform/interface.js.map +1 -0
  463. package/dist/platform/node.cjs +512 -0
  464. package/dist/platform/node.cjs.map +1 -0
  465. package/dist/platform/node.d.ts +86 -0
  466. package/dist/platform/node.js +481 -0
  467. package/dist/platform/node.js.map +1 -0
  468. package/dist/platform/ports/openpgp-port.cjs +74 -0
  469. package/dist/platform/ports/openpgp-port.cjs.map +1 -0
  470. package/dist/platform/ports/openpgp-port.d.ts +13 -0
  471. package/dist/platform/ports/openpgp-port.js +59 -0
  472. package/dist/platform/ports/openpgp-port.js.map +1 -0
  473. package/dist/platform/ports/pgp-port.cjs +17 -0
  474. package/dist/platform/ports/pgp-port.cjs.map +1 -0
  475. package/dist/platform/ports/pgp-port.d.ts +35 -0
  476. package/dist/platform/ports/pgp-port.js +1 -0
  477. package/dist/platform/ports/pgp-port.js.map +1 -0
  478. package/dist/platform/shared/error-utils.cjs +43 -0
  479. package/dist/platform/shared/error-utils.cjs.map +1 -0
  480. package/dist/platform/shared/error-utils.d.ts +23 -0
  481. package/dist/platform/shared/error-utils.js +18 -0
  482. package/dist/platform/shared/error-utils.js.map +1 -0
  483. package/dist/platform/shared/pgp-utils.cjs +55 -0
  484. package/dist/platform/shared/pgp-utils.cjs.map +1 -0
  485. package/dist/platform/shared/pgp-utils.d.ts +59 -0
  486. package/dist/platform/shared/pgp-utils.js +29 -0
  487. package/dist/platform/shared/pgp-utils.js.map +1 -0
  488. package/dist/platform/shared/stream-utils.cjs +49 -0
  489. package/dist/platform/shared/stream-utils.cjs.map +1 -0
  490. package/dist/platform/shared/stream-utils.d.ts +14 -0
  491. package/dist/platform/shared/stream-utils.js +25 -0
  492. package/dist/platform/shared/stream-utils.js.map +1 -0
  493. package/dist/platform/utils.cjs +114 -0
  494. package/dist/platform/utils.cjs.map +1 -0
  495. package/dist/platform/utils.d.ts +49 -0
  496. package/dist/platform/utils.js +76 -0
  497. package/dist/platform/utils.js.map +1 -0
  498. package/dist/platform/utils.test.d.ts +1 -0
  499. package/dist/platform.browser.d.ts +6 -57
  500. package/dist/platform.browser.js +10 -379
  501. package/dist/platform.browser.js.map +1 -1
  502. package/dist/platform.cjs +14 -708
  503. package/dist/platform.cjs.map +1 -1
  504. package/dist/platform.d.ts +11 -2
  505. package/dist/platform.js +14 -694
  506. package/dist/platform.js.map +1 -1
  507. package/dist/platform.node.cjs +14 -708
  508. package/dist/platform.node.cjs.map +1 -1
  509. package/dist/platform.node.d.ts +7 -102
  510. package/dist/platform.node.js +14 -694
  511. package/dist/platform.node.js.map +1 -1
  512. package/dist/schemas/dataSchema.schema.json +53 -0
  513. package/dist/schemas/grantFile.schema.json +43 -0
  514. package/dist/server/relayerHandler.cjs +452 -0
  515. package/dist/server/relayerHandler.cjs.map +1 -0
  516. package/dist/server/relayerHandler.d.ts +69 -0
  517. package/dist/server/relayerHandler.js +428 -0
  518. package/dist/server/relayerHandler.js.map +1 -0
  519. package/dist/storage/index.cjs +47 -0
  520. package/dist/storage/index.cjs.map +1 -0
  521. package/dist/storage/index.d.ts +57 -0
  522. package/dist/storage/index.js +17 -0
  523. package/dist/storage/index.js.map +1 -0
  524. package/dist/storage/manager.cjs +272 -0
  525. package/dist/storage/manager.cjs.map +1 -0
  526. package/dist/storage/manager.d.ts +241 -0
  527. package/dist/storage/manager.js +248 -0
  528. package/dist/storage/manager.js.map +1 -0
  529. package/dist/storage/providers/callback-storage.cjs +248 -0
  530. package/dist/storage/providers/callback-storage.cjs.map +1 -0
  531. package/dist/storage/providers/callback-storage.d.ts +183 -0
  532. package/dist/storage/providers/callback-storage.js +226 -0
  533. package/dist/storage/providers/callback-storage.js.map +1 -0
  534. package/dist/storage/providers/dropbox.cjs +237 -0
  535. package/dist/storage/providers/dropbox.cjs.map +1 -0
  536. package/dist/storage/providers/dropbox.d.ts +39 -0
  537. package/dist/storage/providers/dropbox.js +215 -0
  538. package/dist/storage/providers/dropbox.js.map +1 -0
  539. package/dist/storage/providers/dropbox.test.d.ts +1 -0
  540. package/dist/storage/providers/google-drive.cjs +516 -0
  541. package/dist/storage/providers/google-drive.cjs.map +1 -0
  542. package/dist/storage/providers/google-drive.d.ts +152 -0
  543. package/dist/storage/providers/google-drive.js +494 -0
  544. package/dist/storage/providers/google-drive.js.map +1 -0
  545. package/dist/storage/providers/google-drive.test.d.ts +1 -0
  546. package/dist/storage/providers/ipfs.cjs +283 -0
  547. package/dist/storage/providers/ipfs.cjs.map +1 -0
  548. package/dist/storage/providers/ipfs.d.ts +160 -0
  549. package/dist/storage/providers/ipfs.js +261 -0
  550. package/dist/storage/providers/ipfs.js.map +1 -0
  551. package/dist/storage/providers/pinata.cjs +339 -0
  552. package/dist/storage/providers/pinata.cjs.map +1 -0
  553. package/dist/storage/providers/pinata.d.ts +168 -0
  554. package/dist/storage/providers/pinata.js +317 -0
  555. package/dist/storage/providers/pinata.js.map +1 -0
  556. package/dist/storage/tests/callbackStorage.test.d.ts +1 -0
  557. package/dist/storage/tests/googleDriveStorage.test.d.ts +1 -0
  558. package/dist/storage/tests/ipfsStorage.test.d.ts +1 -0
  559. package/dist/storage/tests/pinataStorage.test.d.ts +1 -0
  560. package/dist/storage/tests/storageManager.test.d.ts +1 -0
  561. package/dist/tests/abi.test.d.ts +1 -0
  562. package/dist/tests/chains-definitions.test.d.ts +1 -0
  563. package/dist/tests/core-encryption.test.d.ts +1 -0
  564. package/dist/tests/core-extended.test.d.ts +1 -0
  565. package/dist/tests/core-generics-coverage.test.d.ts +1 -0
  566. package/dist/tests/coverage-boost.test.d.ts +1 -0
  567. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +1 -0
  568. package/dist/tests/data-addfile-permissions-schema.test.d.ts +1 -0
  569. package/dist/tests/data-additional-methods.test.d.ts +1 -0
  570. package/dist/tests/data-controller-edge-cases.test.d.ts +1 -0
  571. package/dist/tests/data-ipfs-gateways.test.d.ts +1 -0
  572. package/dist/tests/data-relayer.test.d.ts +1 -0
  573. package/dist/tests/data-schema-validation.test.d.ts +1 -0
  574. package/dist/tests/data-simple-methods.test.d.ts +1 -0
  575. package/dist/tests/data-upload-owner-validation.test.d.ts +1 -0
  576. package/dist/tests/data.test.d.ts +1 -0
  577. package/dist/tests/demo-integration.test.d.ts +1 -0
  578. package/dist/tests/demo-trusted-server-integration.test.d.ts +1 -0
  579. package/dist/tests/download-relayer.test.d.ts +1 -0
  580. package/dist/tests/dual-mode-permissions.test.d.ts +1 -0
  581. package/dist/tests/dual-mode-trusted-servers.test.d.ts +1 -0
  582. package/dist/tests/encryption-correct-implementation.test.d.ts +1 -0
  583. package/dist/tests/encryption-coverage.test.d.ts +1 -0
  584. package/dist/tests/encryption-edge-cases.test.d.ts +1 -0
  585. package/dist/tests/encryption-utils-updated.test.d.ts +1 -0
  586. package/dist/tests/errors-coverage.test.d.ts +1 -0
  587. package/dist/tests/errors.test.d.ts +1 -0
  588. package/dist/tests/factories/mockFactory.d.ts +316 -0
  589. package/dist/tests/fakes/FakeStorageManager.d.ts +200 -0
  590. package/dist/tests/fakes/FakeStorageManager.test.d.ts +1 -0
  591. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +170 -0
  592. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +1 -0
  593. package/dist/tests/fakes/fake-pgp-port.d.ts +13 -0
  594. package/dist/tests/grantValidation-edge-cases.test.d.ts +1 -0
  595. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +1 -0
  596. package/dist/tests/helper-methods.test.d.ts +1 -0
  597. package/dist/tests/helpers/platformTestHelpers.d.ts +106 -0
  598. package/dist/tests/helpers/typedMocks.d.ts +64 -0
  599. package/dist/tests/index-browser.test.d.ts +1 -0
  600. package/dist/tests/index-node.test.d.ts +1 -0
  601. package/dist/tests/index.test.d.ts +1 -0
  602. package/dist/tests/mocks/platformAdapter.d.ts +12 -0
  603. package/dist/tests/new-permissions-methods.test.d.ts +1 -0
  604. package/dist/tests/no-buffer-browser.test.d.ts +1 -0
  605. package/dist/tests/permissions-grantee.test.d.ts +1 -0
  606. package/dist/tests/permissions-revoke-relayer.test.d.ts +1 -0
  607. package/dist/tests/permissions-schema-validation.test.d.ts +1 -0
  608. package/dist/tests/permissions-server-files.test.d.ts +1 -0
  609. package/dist/tests/permissions-transaction-options.test.d.ts +1 -0
  610. package/dist/tests/permissions-trust-servers.test.d.ts +1 -0
  611. package/dist/tests/permissions.test.d.ts +1 -0
  612. package/dist/tests/personal.test.d.ts +1 -0
  613. package/dist/tests/platform-browser.test.d.ts +1 -0
  614. package/dist/tests/platform-crypto-expanded.test.d.ts +1 -0
  615. package/dist/tests/platform-crypto.test.d.ts +1 -0
  616. package/dist/tests/platform-index.test.d.ts +1 -0
  617. package/dist/tests/platform-node.test.d.ts +1 -0
  618. package/dist/tests/platform-shared-utils.test.d.ts +1 -0
  619. package/dist/tests/platform-updated.test.d.ts +1 -0
  620. package/dist/tests/protocol-additional-methods.test.d.ts +1 -0
  621. package/dist/tests/protocol.test.d.ts +1 -0
  622. package/dist/tests/read-only-mode.test.d.ts +1 -0
  623. package/dist/tests/relayer-integration.test.d.ts +1 -0
  624. package/dist/tests/relayer-unified.test.d.ts +1 -0
  625. package/dist/tests/schemas.test.d.ts +1 -0
  626. package/dist/tests/server-relayer-handler.test.d.ts +1 -0
  627. package/dist/tests/setup.d.ts +7 -0
  628. package/dist/tests/signatureFormatter.test.d.ts +1 -0
  629. package/dist/tests/trusted-server-queries.test.d.ts +1 -0
  630. package/dist/tests/typedDataConverter.test.d.ts +1 -0
  631. package/dist/tests/types-contracts.test.d.ts +1 -0
  632. package/dist/tests/types-data.test.d.ts +1 -0
  633. package/dist/tests/types-external-apis.test.d.ts +1 -0
  634. package/dist/tests/types-generics.test.d.ts +1 -0
  635. package/dist/tests/types-permissions.test.d.ts +1 -0
  636. package/dist/tests/types-upload-params.test.d.ts +1 -0
  637. package/dist/tests/types.test.d.ts +1 -0
  638. package/dist/tests/utils-formatters.test.d.ts +1 -0
  639. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +1 -0
  640. package/dist/tests/utils-grantFiles-validation.test.d.ts +1 -0
  641. package/dist/tests/utils-grantFiles.test.d.ts +1 -0
  642. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +1 -0
  643. package/dist/tests/utils-grants.test.d.ts +1 -0
  644. package/dist/tests/utils-ipfs-additional.test.d.ts +1 -0
  645. package/dist/tests/utils-ipfs.test.d.ts +4 -0
  646. package/dist/tests/utils-schemaValidation.test.d.ts +1 -0
  647. package/dist/tests/vana.test.d.ts +1 -0
  648. package/dist/tests/wallet-crypto-compatibility.test.d.ts +1 -0
  649. package/dist/types/atomicStore.cjs +31 -0
  650. package/dist/types/atomicStore.cjs.map +1 -0
  651. package/dist/types/atomicStore.d.ts +236 -0
  652. package/dist/types/atomicStore.js +7 -0
  653. package/dist/types/atomicStore.js.map +1 -0
  654. package/dist/types/blockchain.cjs +17 -0
  655. package/dist/types/blockchain.cjs.map +1 -0
  656. package/dist/types/blockchain.d.ts +85 -0
  657. package/dist/types/blockchain.js +1 -0
  658. package/dist/types/blockchain.js.map +1 -0
  659. package/dist/types/chains-additional.test.d.ts +1 -0
  660. package/dist/types/chains.cjs +36 -0
  661. package/dist/types/chains.cjs.map +1 -0
  662. package/dist/types/chains.d.ts +98 -0
  663. package/dist/types/chains.js +11 -0
  664. package/dist/types/chains.js.map +1 -0
  665. package/dist/types/config.cjs +51 -0
  666. package/dist/types/config.cjs.map +1 -0
  667. package/dist/types/config.d.ts +720 -0
  668. package/dist/types/config.js +23 -0
  669. package/dist/types/config.js.map +1 -0
  670. package/dist/types/contracts.cjs +17 -0
  671. package/dist/types/contracts.cjs.map +1 -0
  672. package/dist/types/contracts.d.ts +129 -0
  673. package/dist/types/contracts.js +1 -0
  674. package/dist/types/contracts.js.map +1 -0
  675. package/dist/types/controller-context.cjs +17 -0
  676. package/dist/types/controller-context.cjs.map +1 -0
  677. package/dist/types/controller-context.d.ts +68 -0
  678. package/dist/types/controller-context.js +1 -0
  679. package/dist/types/controller-context.js.map +1 -0
  680. package/dist/types/data.cjs +17 -0
  681. package/dist/types/data.cjs.map +1 -0
  682. package/dist/types/data.d.ts +763 -0
  683. package/dist/types/data.js +1 -0
  684. package/dist/types/data.js.map +1 -0
  685. package/dist/types/eccrypto-js.d.cjs +2 -0
  686. package/dist/types/eccrypto-js.d.cjs.map +1 -0
  687. package/dist/types/eccrypto-js.d.js +1 -0
  688. package/dist/types/eccrypto-js.d.js.map +1 -0
  689. package/dist/types/external-apis.cjs +61 -0
  690. package/dist/types/external-apis.cjs.map +1 -0
  691. package/dist/types/external-apis.d.ts +184 -0
  692. package/dist/types/external-apis.js +34 -0
  693. package/dist/types/external-apis.js.map +1 -0
  694. package/dist/types/generics.cjs +17 -0
  695. package/dist/types/generics.cjs.map +1 -0
  696. package/dist/types/generics.d.ts +518 -0
  697. package/dist/types/generics.js +1 -0
  698. package/dist/types/generics.js.map +1 -0
  699. package/dist/types/index.cjs +65 -0
  700. package/dist/types/index.cjs.map +1 -0
  701. package/dist/types/index.d.ts +48 -0
  702. package/dist/types/index.js +42 -0
  703. package/dist/types/index.js.map +1 -0
  704. package/dist/types/operationStore.cjs +17 -0
  705. package/dist/types/operationStore.cjs.map +1 -0
  706. package/dist/types/operationStore.d.ts +171 -0
  707. package/dist/types/operationStore.js +1 -0
  708. package/dist/types/operationStore.js.map +1 -0
  709. package/dist/types/operations.cjs +53 -0
  710. package/dist/types/operations.cjs.map +1 -0
  711. package/dist/types/operations.d.ts +204 -0
  712. package/dist/types/operations.js +26 -0
  713. package/dist/types/operations.js.map +1 -0
  714. package/dist/types/options.cjs +17 -0
  715. package/dist/types/options.cjs.map +1 -0
  716. package/dist/types/options.d.ts +308 -0
  717. package/dist/types/options.js +1 -0
  718. package/dist/types/options.js.map +1 -0
  719. package/dist/types/permissions.cjs +17 -0
  720. package/dist/types/permissions.cjs.map +1 -0
  721. package/dist/types/permissions.d.ts +953 -0
  722. package/dist/types/permissions.js +1 -0
  723. package/dist/types/permissions.js.map +1 -0
  724. package/dist/types/personal.cjs +17 -0
  725. package/dist/types/personal.cjs.map +1 -0
  726. package/dist/types/personal.d.ts +174 -0
  727. package/dist/types/personal.js +1 -0
  728. package/dist/types/personal.js.map +1 -0
  729. package/dist/types/relayer.cjs +17 -0
  730. package/dist/types/relayer.cjs.map +1 -0
  731. package/dist/types/relayer.d.ts +552 -0
  732. package/dist/types/relayer.js +1 -0
  733. package/dist/types/relayer.js.map +1 -0
  734. package/dist/types/storage.cjs +39 -0
  735. package/dist/types/storage.cjs.map +1 -0
  736. package/dist/types/storage.d.ts +117 -0
  737. package/dist/types/storage.js +15 -0
  738. package/dist/types/storage.js.map +1 -0
  739. package/dist/types/transactionResults.cjs +17 -0
  740. package/dist/types/transactionResults.cjs.map +1 -0
  741. package/dist/types/transactionResults.d.ts +193 -0
  742. package/dist/types/transactionResults.js +1 -0
  743. package/dist/types/transactionResults.js.map +1 -0
  744. package/dist/types/utils.cjs +17 -0
  745. package/dist/types/utils.cjs.map +1 -0
  746. package/dist/types/utils.d.ts +771 -0
  747. package/dist/types/utils.js +1 -0
  748. package/dist/types/utils.js.map +1 -0
  749. package/dist/types.cjs +23 -0
  750. package/dist/types.cjs.map +1 -0
  751. package/dist/types.d.ts +30 -0
  752. package/dist/types.js +2 -0
  753. package/dist/types.js.map +1 -0
  754. package/dist/utils/__tests__/chainQuery.test.d.ts +1 -0
  755. package/dist/utils/__tests__/parseTransaction.test.d.ts +1 -0
  756. package/dist/utils/__tests__/pojo-serialization.test.d.ts +1 -0
  757. package/dist/utils/__tests__/signatureCache.test.d.ts +1 -0
  758. package/dist/utils/__tests__/subgraphConsistency.test.d.ts +4 -0
  759. package/dist/utils/__tests__/subgraphPagination.test.d.ts +4 -0
  760. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +1 -0
  761. package/dist/utils/__tests__/transactionHelpers.test.d.ts +1 -0
  762. package/dist/utils/__tests__/urlResolver.test.d.ts +4 -0
  763. package/dist/utils/blockchain/registry.cjs +81 -0
  764. package/dist/utils/blockchain/registry.cjs.map +1 -0
  765. package/dist/utils/blockchain/registry.d.ts +32 -0
  766. package/dist/utils/blockchain/registry.js +56 -0
  767. package/dist/utils/blockchain/registry.js.map +1 -0
  768. package/dist/utils/blockchain/registry.test.d.ts +1 -0
  769. package/dist/utils/chainQuery.cjs +107 -0
  770. package/dist/utils/chainQuery.cjs.map +1 -0
  771. package/dist/utils/chainQuery.d.ts +31 -0
  772. package/dist/utils/chainQuery.js +82 -0
  773. package/dist/utils/chainQuery.js.map +1 -0
  774. package/dist/utils/crypto-utils.cjs +108 -0
  775. package/dist/utils/crypto-utils.cjs.map +1 -0
  776. package/dist/utils/crypto-utils.d.ts +100 -0
  777. package/dist/utils/crypto-utils.js +76 -0
  778. package/dist/utils/crypto-utils.js.map +1 -0
  779. package/dist/utils/crypto-utils.test.d.ts +1 -0
  780. package/dist/utils/download.cjs +69 -0
  781. package/dist/utils/download.cjs.map +1 -0
  782. package/dist/utils/download.d.ts +40 -0
  783. package/dist/utils/download.js +45 -0
  784. package/dist/utils/download.js.map +1 -0
  785. package/dist/utils/encoding.cjs +66 -0
  786. package/dist/utils/encoding.cjs.map +1 -0
  787. package/dist/utils/encoding.d.ts +52 -0
  788. package/dist/utils/encoding.js +39 -0
  789. package/dist/utils/encoding.js.map +1 -0
  790. package/dist/utils/encoding.test.d.ts +1 -0
  791. package/dist/utils/encryption.cjs +176 -0
  792. package/dist/utils/encryption.cjs.map +1 -0
  793. package/dist/utils/encryption.d.ts +271 -0
  794. package/dist/utils/encryption.js +142 -0
  795. package/dist/utils/encryption.js.map +1 -0
  796. package/dist/utils/formatters.cjs +55 -0
  797. package/dist/utils/formatters.cjs.map +1 -0
  798. package/dist/utils/formatters.d.ts +118 -0
  799. package/dist/utils/formatters.js +28 -0
  800. package/dist/utils/formatters.js.map +1 -0
  801. package/dist/utils/grantFiles.cjs +181 -0
  802. package/dist/utils/grantFiles.cjs.map +1 -0
  803. package/dist/utils/grantFiles.d.ts +172 -0
  804. package/dist/utils/grantFiles.js +143 -0
  805. package/dist/utils/grantFiles.js.map +1 -0
  806. package/dist/utils/grantValidation.cjs +243 -0
  807. package/dist/utils/grantValidation.cjs.map +1 -0
  808. package/dist/utils/grantValidation.d.ts +226 -0
  809. package/dist/utils/grantValidation.js +201 -0
  810. package/dist/utils/grantValidation.js.map +1 -0
  811. package/dist/utils/grants.cjs +108 -0
  812. package/dist/utils/grants.cjs.map +1 -0
  813. package/dist/utils/grants.d.ts +148 -0
  814. package/dist/utils/grants.js +82 -0
  815. package/dist/utils/grants.js.map +1 -0
  816. package/dist/utils/ipfs.cjs +128 -0
  817. package/dist/utils/ipfs.cjs.map +1 -0
  818. package/dist/utils/ipfs.d.ts +88 -0
  819. package/dist/utils/ipfs.js +97 -0
  820. package/dist/utils/ipfs.js.map +1 -0
  821. package/dist/utils/lazy-import.cjs +38 -0
  822. package/dist/utils/lazy-import.cjs.map +1 -0
  823. package/dist/utils/lazy-import.d.ts +43 -0
  824. package/dist/utils/lazy-import.js +14 -0
  825. package/dist/utils/lazy-import.js.map +1 -0
  826. package/dist/utils/multicall.cjs +233 -0
  827. package/dist/utils/multicall.cjs.map +1 -0
  828. package/dist/utils/multicall.d.ts +126 -0
  829. package/dist/utils/multicall.js +208 -0
  830. package/dist/utils/multicall.js.map +1 -0
  831. package/dist/utils/parseTransactionPojo.cjs +87 -0
  832. package/dist/utils/parseTransactionPojo.cjs.map +1 -0
  833. package/dist/utils/parseTransactionPojo.d.ts +31 -0
  834. package/dist/utils/parseTransactionPojo.js +63 -0
  835. package/dist/utils/parseTransactionPojo.js.map +1 -0
  836. package/dist/utils/schemaValidation.cjs +258 -0
  837. package/dist/utils/schemaValidation.cjs.map +1 -0
  838. package/dist/utils/schemaValidation.d.ts +168 -0
  839. package/dist/utils/schemaValidation.js +219 -0
  840. package/dist/utils/schemaValidation.js.map +1 -0
  841. package/dist/utils/signatureCache.cjs +192 -0
  842. package/dist/utils/signatureCache.cjs.map +1 -0
  843. package/dist/utils/signatureCache.d.ts +172 -0
  844. package/dist/utils/signatureCache.js +167 -0
  845. package/dist/utils/signatureCache.js.map +1 -0
  846. package/dist/utils/signatureFormatter.cjs +42 -0
  847. package/dist/utils/signatureFormatter.cjs.map +1 -0
  848. package/dist/utils/signatureFormatter.d.ts +36 -0
  849. package/dist/utils/signatureFormatter.js +18 -0
  850. package/dist/utils/signatureFormatter.js.map +1 -0
  851. package/dist/utils/subgraphConsistency.cjs +184 -0
  852. package/dist/utils/subgraphConsistency.cjs.map +1 -0
  853. package/dist/utils/subgraphConsistency.d.ts +65 -0
  854. package/dist/utils/subgraphConsistency.js +155 -0
  855. package/dist/utils/subgraphConsistency.js.map +1 -0
  856. package/dist/utils/subgraphMetaCache.cjs +101 -0
  857. package/dist/utils/subgraphMetaCache.cjs.map +1 -0
  858. package/dist/utils/subgraphMetaCache.d.ts +56 -0
  859. package/dist/utils/subgraphMetaCache.js +76 -0
  860. package/dist/utils/subgraphMetaCache.js.map +1 -0
  861. package/dist/utils/subgraphPagination.cjs +104 -0
  862. package/dist/utils/subgraphPagination.cjs.map +1 -0
  863. package/dist/utils/subgraphPagination.d.ts +78 -0
  864. package/dist/utils/subgraphPagination.js +78 -0
  865. package/dist/utils/subgraphPagination.js.map +1 -0
  866. package/dist/utils/tests/multicall.test.d.ts +1 -0
  867. package/dist/utils/transactionHelpers.cjs +54 -0
  868. package/dist/utils/transactionHelpers.cjs.map +1 -0
  869. package/dist/utils/transactionHelpers.d.ts +80 -0
  870. package/dist/utils/transactionHelpers.js +29 -0
  871. package/dist/utils/transactionHelpers.js.map +1 -0
  872. package/dist/utils/typeGuards.cjs +109 -0
  873. package/dist/utils/typeGuards.cjs.map +1 -0
  874. package/dist/utils/typeGuards.d.ts +138 -0
  875. package/dist/utils/typeGuards.js +74 -0
  876. package/dist/utils/typeGuards.js.map +1 -0
  877. package/dist/utils/typedDataConverter.cjs +43 -0
  878. package/dist/utils/typedDataConverter.cjs.map +1 -0
  879. package/dist/utils/typedDataConverter.d.ts +46 -0
  880. package/dist/utils/typedDataConverter.js +19 -0
  881. package/dist/utils/typedDataConverter.js.map +1 -0
  882. package/dist/utils/urlResolver.cjs +62 -0
  883. package/dist/utils/urlResolver.cjs.map +1 -0
  884. package/dist/utils/urlResolver.d.ts +56 -0
  885. package/dist/utils/urlResolver.js +37 -0
  886. package/dist/utils/urlResolver.js.map +1 -0
  887. package/dist/utils/wallet.cjs +63 -0
  888. package/dist/utils/wallet.cjs.map +1 -0
  889. package/dist/utils/wallet.d.ts +94 -0
  890. package/dist/utils/wallet.js +37 -0
  891. package/dist/utils/wallet.js.map +1 -0
  892. package/dist/utils/withEvents.cjs +44 -0
  893. package/dist/utils/withEvents.cjs.map +1 -0
  894. package/dist/utils/withEvents.d.ts +56 -0
  895. package/dist/utils/withEvents.js +18 -0
  896. package/dist/utils/withEvents.js.map +1 -0
  897. package/package.json +63 -29
  898. package/dist/browser-DY8XDblx.d.ts +0 -241
  899. package/dist/chains.browser.cjs.map +0 -1
  900. package/dist/chains.d.cts +0 -2
  901. package/dist/chains.node.d.cts +0 -2
  902. package/dist/index.d.cts +0 -2
  903. package/dist/node-D9-F9uEP.d.cts +0 -238
  904. package/dist/node-D9-F9uEP.d.ts +0 -238
  905. package/dist/node.d.cts +0 -1
  906. package/dist/platform.d.cts +0 -2
  907. package/dist/platform.node.d.cts +0 -105
@@ -0,0 +1,304 @@
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 nonceManager_exports = {};
20
+ __export(nonceManager_exports, {
21
+ DistributedNonceManager: () => DistributedNonceManager
22
+ });
23
+ module.exports = __toCommonJS(nonceManager_exports);
24
+ var import_atomicStore = require("../types/atomicStore");
25
+ class DistributedNonceManager {
26
+ store;
27
+ publicClient;
28
+ lockTTL;
29
+ maxLockRetries;
30
+ lockRetryDelay;
31
+ constructor(config) {
32
+ this.store = config.atomicStore;
33
+ this.publicClient = config.publicClient;
34
+ this.lockTTL = config.lockTTL ?? 5;
35
+ this.maxLockRetries = config.maxLockRetries ?? 50;
36
+ this.lockRetryDelay = config.lockRetryDelay ?? 100;
37
+ }
38
+ /**
39
+ * Atomically assigns the next available nonce for an address.
40
+ *
41
+ * @remarks
42
+ * This method uses two strategies depending on the atomic store capabilities:
43
+ * 1. If the store provides atomicAssignNonce (store-specific optimization),
44
+ * it uses that for maximum reliability and performance
45
+ * 2. Otherwise, it falls back to the lock-based approach:
46
+ * - Acquires a distributed lock to prevent race conditions
47
+ * - Queries the blockchain for the current pending nonce
48
+ * - Syncs the stored nonce if blockchain is ahead
49
+ * - Atomically increments and returns the next nonce
50
+ * - Releases the lock
51
+ *
52
+ * @param address - The address to assign a nonce for
53
+ * @param chainId - The chain ID for the network
54
+ * @returns The assigned nonce, or null if lock acquisition fails
55
+ */
56
+ async assignNonce(address, chainId) {
57
+ const lastUsedKey = `nonce:${chainId}:${address}:lastUsed`;
58
+ const lockKey = `nonce:${chainId}:${address}:lock`;
59
+ if ((0, import_atomicStore.hasNonceSupport)(this.store)) {
60
+ try {
61
+ const pendingCount = await this.publicClient.getTransactionCount({
62
+ address,
63
+ blockTag: "pending"
64
+ });
65
+ const nonce = await this.store.atomicAssignNonce(
66
+ lastUsedKey,
67
+ pendingCount
68
+ );
69
+ console.log(
70
+ `[NonceManager] Assigned nonce ${nonce} for ${address} on chain ${chainId} (using store optimization)`
71
+ );
72
+ return nonce;
73
+ } catch (error) {
74
+ console.error(
75
+ "[NonceManager] Error during optimized nonce assignment:",
76
+ error
77
+ );
78
+ throw error;
79
+ }
80
+ }
81
+ let lockAcquired = false;
82
+ let retries = 0;
83
+ let acquiredLockId = null;
84
+ while (!lockAcquired && retries < this.maxLockRetries) {
85
+ acquiredLockId = await this.store.acquireLock(lockKey, this.lockTTL);
86
+ lockAcquired = acquiredLockId !== null;
87
+ if (lockAcquired && acquiredLockId) {
88
+ try {
89
+ const pendingCount = await this.publicClient.getTransactionCount({
90
+ address,
91
+ blockTag: "pending"
92
+ });
93
+ const blockchainPending = pendingCount === 0 ? -1 : pendingCount - 1;
94
+ const currentLastUsedStr = await this.store.get(lastUsedKey);
95
+ const currentLastUsed = currentLastUsedStr ? parseInt(currentLastUsedStr) : -1;
96
+ if (blockchainPending > currentLastUsed) {
97
+ await this.store.set(lastUsedKey, blockchainPending.toString());
98
+ console.log(
99
+ `[NonceManager] Synced nonce for ${address} on chain ${chainId}: ${currentLastUsed} -> ${blockchainPending}`
100
+ );
101
+ }
102
+ const nextNonce = await this.store.incr(lastUsedKey);
103
+ console.log(
104
+ `[NonceManager] Assigned nonce ${nextNonce} for ${address} on chain ${chainId}`
105
+ );
106
+ if (this.store.setWithTTL) {
107
+ const assignmentKey = `nonce:${chainId}:${address}:assignment:${nextNonce}`;
108
+ const metadata = {
109
+ nonce: nextNonce,
110
+ assignedAt: Date.now(),
111
+ address,
112
+ chainId
113
+ };
114
+ await this.store.setWithTTL(
115
+ assignmentKey,
116
+ JSON.stringify(metadata),
117
+ 3600
118
+ );
119
+ }
120
+ return nextNonce;
121
+ } catch (error) {
122
+ console.error("[NonceManager] Error during nonce assignment:", error);
123
+ throw error;
124
+ } finally {
125
+ await this.store.releaseLock(lockKey, acquiredLockId);
126
+ }
127
+ } else {
128
+ retries++;
129
+ if (retries < this.maxLockRetries) {
130
+ const delay = Math.min(
131
+ this.lockRetryDelay * Math.pow(1.5, retries - 1),
132
+ 5e3
133
+ // Cap at 5 seconds
134
+ );
135
+ await new Promise((resolve) => setTimeout(resolve, delay));
136
+ }
137
+ }
138
+ }
139
+ console.error(
140
+ `[NonceManager] Failed to acquire lock for ${address} after ${this.maxLockRetries} attempts`
141
+ );
142
+ return null;
143
+ }
144
+ /**
145
+ * Resets the nonce counter for an address.
146
+ *
147
+ * @remarks
148
+ * Use with caution - should only be called when you're certain
149
+ * no transactions are pending. This is useful for recovery from
150
+ * stuck states.
151
+ *
152
+ * @param address - The address to reset nonce for
153
+ * @param chainId - The chain ID for the network
154
+ */
155
+ async resetNonce(address, chainId) {
156
+ const lastUsedKey = `nonce:${chainId}:${address}:lastUsed`;
157
+ const lockKey = `nonce:${chainId}:${address}:lock`;
158
+ const lockId = await this.acquireLockWithRetry(lockKey);
159
+ if (!lockId) {
160
+ throw new Error("Failed to acquire lock for nonce reset");
161
+ }
162
+ try {
163
+ const confirmedCount = await this.publicClient.getTransactionCount({
164
+ address,
165
+ blockTag: "latest"
166
+ });
167
+ const resetValue = confirmedCount === 0 ? -1 : confirmedCount - 1;
168
+ await this.store.set(lastUsedKey, resetValue.toString());
169
+ console.log(
170
+ `[NonceManager] Reset nonce for ${address} on chain ${chainId} to ${resetValue}`
171
+ );
172
+ } finally {
173
+ await this.store.releaseLock(lockKey, lockId);
174
+ }
175
+ }
176
+ /**
177
+ * Gets the current nonce state for monitoring/debugging.
178
+ *
179
+ * @param address - The address to check
180
+ * @param chainId - The chain ID for the network
181
+ * @returns Current nonce state information
182
+ */
183
+ async getNonceState(address, chainId) {
184
+ const lastUsedKey = `nonce:${chainId}:${address}:lastUsed`;
185
+ const lastUsedStr = await this.store.get(lastUsedKey);
186
+ const lastUsed = lastUsedStr ? parseInt(lastUsedStr) : -1;
187
+ const [pendingCount, confirmedCount] = await Promise.all([
188
+ this.publicClient.getTransactionCount({
189
+ address,
190
+ blockTag: "pending"
191
+ }),
192
+ this.publicClient.getTransactionCount({
193
+ address,
194
+ blockTag: "latest"
195
+ })
196
+ ]);
197
+ return {
198
+ lastUsed,
199
+ blockchainPending: pendingCount === 0 ? -1 : pendingCount - 1,
200
+ blockchainConfirmed: confirmedCount === 0 ? -1 : confirmedCount - 1
201
+ };
202
+ }
203
+ /**
204
+ * Helper to acquire lock with retries.
205
+ *
206
+ * @internal
207
+ */
208
+ async acquireLockWithRetry(lockKey) {
209
+ let retries = 0;
210
+ while (retries < this.maxLockRetries) {
211
+ const lockId = await this.store.acquireLock(lockKey, this.lockTTL);
212
+ if (lockId) {
213
+ return lockId;
214
+ }
215
+ retries++;
216
+ if (retries < this.maxLockRetries) {
217
+ const delay = Math.min(
218
+ this.lockRetryDelay * Math.pow(1.5, retries - 1),
219
+ 5e3
220
+ );
221
+ await new Promise((resolve) => setTimeout(resolve, delay));
222
+ }
223
+ }
224
+ return null;
225
+ }
226
+ /**
227
+ * Burns a stuck nonce by sending a minimal self-transfer with higher gas.
228
+ *
229
+ * @remarks
230
+ * This method implements Vana App's production nonce burning strategy.
231
+ * It sends a zero-value transaction to the same address with elevated gas
232
+ * to replace a stuck transaction and unblock the nonce queue.
233
+ *
234
+ * Ported from apps/web/app/api/relay/route.ts (Vana App production code)
235
+ *
236
+ * @param walletClient - The wallet client to send the burn transaction
237
+ * @param nonceToBurn - The nonce to burn
238
+ * @param address - The address whose nonce to burn
239
+ * @param chainId - The chain ID for the network
240
+ * @param gasMultiplier - Multiplier for gas prices (default: 1.5)
241
+ * @returns The transaction hash of the burn transaction
242
+ */
243
+ async burnNonce(walletClient, nonceToBurn, address, chainId, gasMultiplier = 1.5) {
244
+ try {
245
+ const fees = await this.publicClient.estimateFeesPerGas();
246
+ const bump = (x) => x * BigInt(Math.floor(gasMultiplier * 100)) / 100n;
247
+ const newMaxFee = bump(fees.maxFeePerGas);
248
+ const newMaxPriorityFee = bump(fees.maxPriorityFeePerGas);
249
+ console.log(
250
+ `[NonceManager] Burning stuck nonce ${nonceToBurn} with high gas price: maxFee ${newMaxFee}, maxPriorityFee ${newMaxPriorityFee}`
251
+ );
252
+ const burnTx = await walletClient.sendTransaction({
253
+ account: walletClient.account,
254
+ // WalletClient should have an account
255
+ to: address,
256
+ // Self-transfer
257
+ value: 0n,
258
+ nonce: nonceToBurn,
259
+ gas: 21000n,
260
+ // Minimal gas for transfer
261
+ maxFeePerGas: newMaxFee,
262
+ maxPriorityFeePerGas: newMaxPriorityFee,
263
+ chain: {
264
+ id: chainId,
265
+ name: chainId === 14800 ? "Vana Moksha" : "Vana Mainnet",
266
+ network: chainId === 14800 ? "moksha" : "mainnet",
267
+ nativeCurrency: { name: "VANA", symbol: "VANA", decimals: 18 },
268
+ rpcUrls: {
269
+ default: {
270
+ http: [
271
+ chainId === 14800 ? "https://rpc.moksha.vana.org" : "https://rpc.vana.org"
272
+ ]
273
+ },
274
+ public: {
275
+ http: [
276
+ chainId === 14800 ? "https://rpc.moksha.vana.org" : "https://rpc.vana.org"
277
+ ]
278
+ }
279
+ }
280
+ }
281
+ });
282
+ console.log(
283
+ `[NonceManager] Burn nonce ${nonceToBurn} transaction sent: ${burnTx}`
284
+ );
285
+ return burnTx;
286
+ } catch (error) {
287
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
288
+ if (errorMessage.includes("nonce too low") || errorMessage.includes("underpriced") || errorMessage.includes("already known")) {
289
+ console.log(`[NonceManager] Nonce ${nonceToBurn} was already used`);
290
+ } else {
291
+ console.error(
292
+ `[NonceManager] Error burning nonce ${nonceToBurn}:`,
293
+ error
294
+ );
295
+ }
296
+ throw error;
297
+ }
298
+ }
299
+ }
300
+ // Annotate the CommonJS export names for ESM import in node:
301
+ 0 && (module.exports = {
302
+ DistributedNonceManager
303
+ });
304
+ //# sourceMappingURL=nonceManager.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/nonceManager.ts"],"sourcesContent":["/**\n * Internal distributed nonce manager for atomic transaction nonce assignment.\n *\n * @internal\n * @module\n */\n\nimport type { PublicClient, WalletClient, Address, Hash } from \"viem\";\nimport type { IAtomicStore } from \"../types/atomicStore\";\nimport { hasNonceSupport } from \"../types/atomicStore\";\n\n/**\n * Configuration for the distributed nonce manager.\n *\n * @internal\n */\nexport interface NonceManagerConfig {\n /** Atomic store for distributed coordination */\n atomicStore: IAtomicStore;\n /** Public client for blockchain queries */\n publicClient: PublicClient;\n /** TTL for nonce locks in seconds (default: 5) */\n lockTTL?: number;\n /** Maximum retries to acquire lock (default: 50) */\n maxLockRetries?: number;\n /** Delay between lock retries in milliseconds (default: 100) */\n lockRetryDelay?: number;\n}\n\n/**\n * Internal nonce manager that coordinates distributed nonce assignment.\n *\n * @internal\n * @remarks\n * This class implements sophisticated logic for atomic nonce assignment\n * in distributed environments. It uses the provided IAtomicStore to\n * coordinate between multiple instances and prevent nonce conflicts.\n *\n * Key features:\n * - Store-specific optimizations when available (e.g., Redis Lua scripts)\n * - Fallback to distributed locking for generic stores\n * - Syncing with blockchain pending count\n * - Nonce gap prevention\n * - Nonce burning capability for stuck transactions\n */\nexport class DistributedNonceManager {\n private readonly store: IAtomicStore;\n private readonly publicClient: PublicClient;\n private readonly lockTTL: number;\n private readonly maxLockRetries: number;\n private readonly lockRetryDelay: number;\n\n constructor(config: NonceManagerConfig) {\n this.store = config.atomicStore;\n this.publicClient = config.publicClient;\n this.lockTTL = config.lockTTL ?? 5;\n this.maxLockRetries = config.maxLockRetries ?? 50;\n this.lockRetryDelay = config.lockRetryDelay ?? 100;\n }\n\n /**\n * Atomically assigns the next available nonce for an address.\n *\n * @remarks\n * This method uses two strategies depending on the atomic store capabilities:\n * 1. If the store provides atomicAssignNonce (store-specific optimization),\n * it uses that for maximum reliability and performance\n * 2. Otherwise, it falls back to the lock-based approach:\n * - Acquires a distributed lock to prevent race conditions\n * - Queries the blockchain for the current pending nonce\n * - Syncs the stored nonce if blockchain is ahead\n * - Atomically increments and returns the next nonce\n * - Releases the lock\n *\n * @param address - The address to assign a nonce for\n * @param chainId - The chain ID for the network\n * @returns The assigned nonce, or null if lock acquisition fails\n */\n async assignNonce(address: Address, chainId: number): Promise<number | null> {\n const lastUsedKey = `nonce:${chainId}:${address}:lastUsed`;\n const lockKey = `nonce:${chainId}:${address}:lock`;\n\n // Check if the store provides an optimized atomic nonce assignment\n if (hasNonceSupport(this.store)) {\n try {\n // Get pending transaction count from blockchain\n const pendingCount = await this.publicClient.getTransactionCount({\n address,\n blockTag: \"pending\",\n });\n\n // Use store-specific optimized implementation (e.g., Redis Lua script)\n const nonce = await this.store.atomicAssignNonce(\n lastUsedKey,\n pendingCount,\n );\n\n console.log(\n `[NonceManager] Assigned nonce ${nonce} for ${address} on chain ${chainId} (using store optimization)`,\n );\n\n return nonce;\n } catch (error) {\n console.error(\n \"[NonceManager] Error during optimized nonce assignment:\",\n error,\n );\n throw error;\n }\n }\n\n // Try to acquire lock with retries\n let lockAcquired = false;\n let retries = 0;\n let acquiredLockId: string | null = null;\n\n while (!lockAcquired && retries < this.maxLockRetries) {\n // Try to acquire the lock\n acquiredLockId = await this.store.acquireLock(lockKey, this.lockTTL);\n lockAcquired = acquiredLockId !== null;\n\n if (lockAcquired && acquiredLockId) {\n try {\n // Get pending transaction count from blockchain\n const pendingCount = await this.publicClient.getTransactionCount({\n address,\n blockTag: \"pending\",\n });\n\n // Calculate the pending nonce (0-indexed)\n // If no transactions, start at 0\n const blockchainPending = pendingCount === 0 ? -1 : pendingCount - 1;\n\n // Get current lastUsed from store\n const currentLastUsedStr = await this.store.get(lastUsedKey);\n const currentLastUsed = currentLastUsedStr\n ? parseInt(currentLastUsedStr)\n : -1;\n\n // Sync lastUsed with blockchain if blockchain is ahead\n // This handles cases where transactions were sent outside this system\n if (blockchainPending > currentLastUsed) {\n await this.store.set(lastUsedKey, blockchainPending.toString());\n console.log(\n `[NonceManager] Synced nonce for ${address} on chain ${chainId}: ${currentLastUsed} -> ${blockchainPending}`,\n );\n }\n\n // Atomically increment and get next nonce\n const nextNonce = await this.store.incr(lastUsedKey);\n\n console.log(\n `[NonceManager] Assigned nonce ${nextNonce} for ${address} on chain ${chainId}`,\n );\n\n // Store assignment metadata for debugging (optional TTL)\n if (this.store.setWithTTL) {\n const assignmentKey = `nonce:${chainId}:${address}:assignment:${nextNonce}`;\n const metadata = {\n nonce: nextNonce,\n assignedAt: Date.now(),\n address,\n chainId,\n };\n // Store for 1 hour for debugging\n await this.store.setWithTTL(\n assignmentKey,\n JSON.stringify(metadata),\n 3600,\n );\n }\n\n return nextNonce;\n } catch (error) {\n console.error(\"[NonceManager] Error during nonce assignment:\", error);\n throw error;\n } finally {\n // Always release the lock\n await this.store.releaseLock(lockKey, acquiredLockId);\n }\n } else {\n // Failed to acquire lock, wait and retry with exponential backoff\n retries++;\n if (retries < this.maxLockRetries) {\n const delay = Math.min(\n this.lockRetryDelay * Math.pow(1.5, retries - 1),\n 5000, // Cap at 5 seconds\n );\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n }\n\n console.error(\n `[NonceManager] Failed to acquire lock for ${address} after ${this.maxLockRetries} attempts`,\n );\n return null;\n }\n\n /**\n * Resets the nonce counter for an address.\n *\n * @remarks\n * Use with caution - should only be called when you're certain\n * no transactions are pending. This is useful for recovery from\n * stuck states.\n *\n * @param address - The address to reset nonce for\n * @param chainId - The chain ID for the network\n */\n async resetNonce(address: Address, chainId: number): Promise<void> {\n const lastUsedKey = `nonce:${chainId}:${address}:lastUsed`;\n const lockKey = `nonce:${chainId}:${address}:lock`;\n\n // Acquire lock before resetting\n const lockId = await this.acquireLockWithRetry(lockKey);\n if (!lockId) {\n throw new Error(\"Failed to acquire lock for nonce reset\");\n }\n\n try {\n // Get confirmed transaction count from blockchain\n const confirmedCount = await this.publicClient.getTransactionCount({\n address,\n blockTag: \"latest\",\n });\n\n // Reset to blockchain state (confirmed count - 1 since we're 0-indexed)\n const resetValue = confirmedCount === 0 ? -1 : confirmedCount - 1;\n await this.store.set(lastUsedKey, resetValue.toString());\n\n console.log(\n `[NonceManager] Reset nonce for ${address} on chain ${chainId} to ${resetValue}`,\n );\n } finally {\n await this.store.releaseLock(lockKey, lockId);\n }\n }\n\n /**\n * Gets the current nonce state for monitoring/debugging.\n *\n * @param address - The address to check\n * @param chainId - The chain ID for the network\n * @returns Current nonce state information\n */\n async getNonceState(\n address: Address,\n chainId: number,\n ): Promise<{\n lastUsed: number;\n blockchainPending: number;\n blockchainConfirmed: number;\n }> {\n const lastUsedKey = `nonce:${chainId}:${address}:lastUsed`;\n\n // Get stored state\n const lastUsedStr = await this.store.get(lastUsedKey);\n const lastUsed = lastUsedStr ? parseInt(lastUsedStr) : -1;\n\n // Get blockchain state\n const [pendingCount, confirmedCount] = await Promise.all([\n this.publicClient.getTransactionCount({\n address,\n blockTag: \"pending\",\n }),\n this.publicClient.getTransactionCount({\n address,\n blockTag: \"latest\",\n }),\n ]);\n\n return {\n lastUsed,\n blockchainPending: pendingCount === 0 ? -1 : pendingCount - 1,\n blockchainConfirmed: confirmedCount === 0 ? -1 : confirmedCount - 1,\n };\n }\n\n /**\n * Helper to acquire lock with retries.\n *\n * @internal\n */\n private async acquireLockWithRetry(lockKey: string): Promise<string | null> {\n let retries = 0;\n\n while (retries < this.maxLockRetries) {\n const lockId = await this.store.acquireLock(lockKey, this.lockTTL);\n\n if (lockId) {\n return lockId;\n }\n\n retries++;\n if (retries < this.maxLockRetries) {\n const delay = Math.min(\n this.lockRetryDelay * Math.pow(1.5, retries - 1),\n 5000,\n );\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n\n return null;\n }\n\n /**\n * Burns a stuck nonce by sending a minimal self-transfer with higher gas.\n *\n * @remarks\n * This method implements Vana App's production nonce burning strategy.\n * It sends a zero-value transaction to the same address with elevated gas\n * to replace a stuck transaction and unblock the nonce queue.\n *\n * Ported from apps/web/app/api/relay/route.ts (Vana App production code)\n *\n * @param walletClient - The wallet client to send the burn transaction\n * @param nonceToBurn - The nonce to burn\n * @param address - The address whose nonce to burn\n * @param chainId - The chain ID for the network\n * @param gasMultiplier - Multiplier for gas prices (default: 1.5)\n * @returns The transaction hash of the burn transaction\n */\n async burnNonce(\n walletClient: WalletClient,\n nonceToBurn: number,\n address: Address,\n chainId: number,\n gasMultiplier: number = 1.5,\n ): Promise<Hash> {\n try {\n // Get current gas prices\n const fees = await this.publicClient.estimateFeesPerGas();\n\n // Bump gas prices by multiplier (Vana App's exact formula)\n const bump = (x: bigint) =>\n (x * BigInt(Math.floor(gasMultiplier * 100))) / 100n;\n\n const newMaxFee = bump(fees.maxFeePerGas);\n const newMaxPriorityFee = bump(fees.maxPriorityFeePerGas);\n\n console.log(\n `[NonceManager] Burning stuck nonce ${nonceToBurn} with high gas price: maxFee ${newMaxFee}, maxPriorityFee ${newMaxPriorityFee}`,\n );\n\n // Send minimal self-transfer to burn the nonce\n const burnTx = await walletClient.sendTransaction({\n account: walletClient.account!, // WalletClient should have an account\n to: address, // Self-transfer\n value: 0n,\n nonce: nonceToBurn,\n gas: 21000n, // Minimal gas for transfer\n maxFeePerGas: newMaxFee,\n maxPriorityFeePerGas: newMaxPriorityFee,\n chain: {\n id: chainId,\n name: chainId === 14800 ? \"Vana Moksha\" : \"Vana Mainnet\",\n network: chainId === 14800 ? \"moksha\" : \"mainnet\",\n nativeCurrency: { name: \"VANA\", symbol: \"VANA\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\n chainId === 14800\n ? \"https://rpc.moksha.vana.org\"\n : \"https://rpc.vana.org\",\n ],\n },\n public: {\n http: [\n chainId === 14800\n ? \"https://rpc.moksha.vana.org\"\n : \"https://rpc.vana.org\",\n ],\n },\n },\n },\n });\n\n console.log(\n `[NonceManager] Burn nonce ${nonceToBurn} transaction sent: ${burnTx}`,\n );\n\n return burnTx;\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : \"Unknown error\";\n\n // Check for common errors that indicate nonce was already used\n if (\n errorMessage.includes(\"nonce too low\") ||\n errorMessage.includes(\"underpriced\") ||\n errorMessage.includes(\"already known\")\n ) {\n console.log(`[NonceManager] Nonce ${nonceToBurn} was already used`);\n } else {\n console.error(\n `[NonceManager] Error burning nonce ${nonceToBurn}:`,\n error,\n );\n }\n\n throw error;\n }\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Internal distributed nonce manager for atomic transaction nonce assignment.
3
+ *
4
+ * @internal
5
+ * @module
6
+ */
7
+ import type { PublicClient, WalletClient, Address, Hash } from "viem";
8
+ import type { IAtomicStore } from "../types/atomicStore";
9
+ /**
10
+ * Configuration for the distributed nonce manager.
11
+ *
12
+ * @internal
13
+ */
14
+ export interface NonceManagerConfig {
15
+ /** Atomic store for distributed coordination */
16
+ atomicStore: IAtomicStore;
17
+ /** Public client for blockchain queries */
18
+ publicClient: PublicClient;
19
+ /** TTL for nonce locks in seconds (default: 5) */
20
+ lockTTL?: number;
21
+ /** Maximum retries to acquire lock (default: 50) */
22
+ maxLockRetries?: number;
23
+ /** Delay between lock retries in milliseconds (default: 100) */
24
+ lockRetryDelay?: number;
25
+ }
26
+ /**
27
+ * Internal nonce manager that coordinates distributed nonce assignment.
28
+ *
29
+ * @internal
30
+ * @remarks
31
+ * This class implements sophisticated logic for atomic nonce assignment
32
+ * in distributed environments. It uses the provided IAtomicStore to
33
+ * coordinate between multiple instances and prevent nonce conflicts.
34
+ *
35
+ * Key features:
36
+ * - Store-specific optimizations when available (e.g., Redis Lua scripts)
37
+ * - Fallback to distributed locking for generic stores
38
+ * - Syncing with blockchain pending count
39
+ * - Nonce gap prevention
40
+ * - Nonce burning capability for stuck transactions
41
+ */
42
+ export declare class DistributedNonceManager {
43
+ private readonly store;
44
+ private readonly publicClient;
45
+ private readonly lockTTL;
46
+ private readonly maxLockRetries;
47
+ private readonly lockRetryDelay;
48
+ constructor(config: NonceManagerConfig);
49
+ /**
50
+ * Atomically assigns the next available nonce for an address.
51
+ *
52
+ * @remarks
53
+ * This method uses two strategies depending on the atomic store capabilities:
54
+ * 1. If the store provides atomicAssignNonce (store-specific optimization),
55
+ * it uses that for maximum reliability and performance
56
+ * 2. Otherwise, it falls back to the lock-based approach:
57
+ * - Acquires a distributed lock to prevent race conditions
58
+ * - Queries the blockchain for the current pending nonce
59
+ * - Syncs the stored nonce if blockchain is ahead
60
+ * - Atomically increments and returns the next nonce
61
+ * - Releases the lock
62
+ *
63
+ * @param address - The address to assign a nonce for
64
+ * @param chainId - The chain ID for the network
65
+ * @returns The assigned nonce, or null if lock acquisition fails
66
+ */
67
+ assignNonce(address: Address, chainId: number): Promise<number | null>;
68
+ /**
69
+ * Resets the nonce counter for an address.
70
+ *
71
+ * @remarks
72
+ * Use with caution - should only be called when you're certain
73
+ * no transactions are pending. This is useful for recovery from
74
+ * stuck states.
75
+ *
76
+ * @param address - The address to reset nonce for
77
+ * @param chainId - The chain ID for the network
78
+ */
79
+ resetNonce(address: Address, chainId: number): Promise<void>;
80
+ /**
81
+ * Gets the current nonce state for monitoring/debugging.
82
+ *
83
+ * @param address - The address to check
84
+ * @param chainId - The chain ID for the network
85
+ * @returns Current nonce state information
86
+ */
87
+ getNonceState(address: Address, chainId: number): Promise<{
88
+ lastUsed: number;
89
+ blockchainPending: number;
90
+ blockchainConfirmed: number;
91
+ }>;
92
+ /**
93
+ * Helper to acquire lock with retries.
94
+ *
95
+ * @internal
96
+ */
97
+ private acquireLockWithRetry;
98
+ /**
99
+ * Burns a stuck nonce by sending a minimal self-transfer with higher gas.
100
+ *
101
+ * @remarks
102
+ * This method implements Vana App's production nonce burning strategy.
103
+ * It sends a zero-value transaction to the same address with elevated gas
104
+ * to replace a stuck transaction and unblock the nonce queue.
105
+ *
106
+ * Ported from apps/web/app/api/relay/route.ts (Vana App production code)
107
+ *
108
+ * @param walletClient - The wallet client to send the burn transaction
109
+ * @param nonceToBurn - The nonce to burn
110
+ * @param address - The address whose nonce to burn
111
+ * @param chainId - The chain ID for the network
112
+ * @param gasMultiplier - Multiplier for gas prices (default: 1.5)
113
+ * @returns The transaction hash of the burn transaction
114
+ */
115
+ burnNonce(walletClient: WalletClient, nonceToBurn: number, address: Address, chainId: number, gasMultiplier?: number): Promise<Hash>;
116
+ }