@opendatalabs/vana-sdk 0.1.0-alpha.f05a34e → 0.1.0-alpha.f2de4f7

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 (811) hide show
  1. package/README.md +98 -36
  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 +4 -0
  6. package/dist/browser.js +5 -0
  7. package/dist/browser.js.map +1 -0
  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 +5 -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/config/addresses.cjs +325 -0
  32. package/dist/config/addresses.cjs.map +1 -0
  33. package/dist/config/addresses.d.ts +364 -0
  34. package/dist/config/addresses.js +295 -0
  35. package/dist/config/addresses.js.map +1 -0
  36. package/dist/config/chains.cjs +93 -0
  37. package/dist/config/chains.cjs.map +1 -0
  38. package/dist/config/chains.d.ts +81 -0
  39. package/dist/config/chains.js +67 -0
  40. package/dist/config/chains.js.map +1 -0
  41. package/dist/config/default-services.cjs +60 -0
  42. package/dist/config/default-services.cjs.map +1 -0
  43. package/dist/config/default-services.d.ts +46 -0
  44. package/dist/config/default-services.js +33 -0
  45. package/dist/config/default-services.js.map +1 -0
  46. package/dist/config/default-services.test.d.ts +1 -0
  47. package/dist/config/features.cjs +52 -0
  48. package/dist/config/features.cjs.map +1 -0
  49. package/dist/config/features.d.ts +62 -0
  50. package/dist/config/features.js +28 -0
  51. package/dist/config/features.js.map +1 -0
  52. package/dist/config/tests/addresses.test.d.ts +1 -0
  53. package/dist/contracts/contractController.cjs +126 -0
  54. package/dist/contracts/contractController.cjs.map +1 -0
  55. package/dist/contracts/contractController.d.ts +79 -0
  56. package/dist/contracts/contractController.js +100 -0
  57. package/dist/contracts/contractController.js.map +1 -0
  58. package/dist/contracts/tests/contractController.test.d.ts +1 -0
  59. package/dist/controllers/__tests__/schemas-edge-cases.test.d.ts +1 -0
  60. package/dist/controllers/base.cjs +83 -0
  61. package/dist/controllers/base.cjs.map +1 -0
  62. package/dist/controllers/base.d.ts +84 -0
  63. package/dist/controllers/base.js +59 -0
  64. package/dist/controllers/base.js.map +1 -0
  65. package/dist/controllers/data-error-handling.test.d.ts +1 -0
  66. package/dist/controllers/data.cjs +2482 -0
  67. package/dist/controllers/data.cjs.map +1 -0
  68. package/dist/controllers/data.d.ts +1014 -0
  69. package/dist/controllers/data.js +2465 -0
  70. package/dist/controllers/data.js.map +1 -0
  71. package/dist/controllers/permissions.cjs +3977 -0
  72. package/dist/controllers/permissions.cjs.map +1 -0
  73. package/dist/controllers/permissions.d.ts +1348 -0
  74. package/dist/controllers/permissions.js +3953 -0
  75. package/dist/controllers/permissions.js.map +1 -0
  76. package/dist/controllers/protocol.cjs +183 -0
  77. package/dist/controllers/protocol.cjs.map +1 -0
  78. package/dist/controllers/protocol.d.ts +139 -0
  79. package/dist/controllers/protocol.js +163 -0
  80. package/dist/controllers/protocol.js.map +1 -0
  81. package/dist/controllers/schemas.cjs +599 -0
  82. package/dist/controllers/schemas.cjs.map +1 -0
  83. package/dist/controllers/schemas.d.ts +245 -0
  84. package/dist/controllers/schemas.js +575 -0
  85. package/dist/controllers/schemas.js.map +1 -0
  86. package/dist/controllers/server-additional.test.d.ts +1 -0
  87. package/dist/controllers/server.cjs +432 -0
  88. package/dist/controllers/server.cjs.map +1 -0
  89. package/dist/controllers/server.d.ts +217 -0
  90. package/dist/controllers/server.js +413 -0
  91. package/dist/controllers/server.js.map +1 -0
  92. package/dist/core/apiClient.cjs +328 -0
  93. package/dist/core/apiClient.cjs.map +1 -0
  94. package/dist/core/apiClient.d.ts +161 -0
  95. package/dist/core/apiClient.js +309 -0
  96. package/dist/core/apiClient.js.map +1 -0
  97. package/dist/core/client.cjs +70 -0
  98. package/dist/core/client.cjs.map +1 -0
  99. package/dist/core/client.d.ts +89 -0
  100. package/dist/core/client.js +47 -0
  101. package/dist/core/client.js.map +1 -0
  102. package/dist/core/core.test.d.ts +1 -0
  103. package/dist/core/generics.cjs +390 -0
  104. package/dist/core/generics.cjs.map +1 -0
  105. package/dist/core/generics.d.ts +116 -0
  106. package/dist/core/generics.js +359 -0
  107. package/dist/core/generics.js.map +1 -0
  108. package/dist/core/tests/apiClient.test.d.ts +1 -0
  109. package/dist/core/tests/client.test.d.ts +1 -0
  110. package/dist/core/tests/generics.test.d.ts +1 -0
  111. package/dist/core.cjs +706 -0
  112. package/dist/core.cjs.map +1 -0
  113. package/dist/core.d.ts +441 -0
  114. package/dist/core.js +681 -0
  115. package/dist/core.js.map +1 -0
  116. package/dist/crypto/ecies/__tests__/base.test.d.ts +4 -0
  117. package/dist/crypto/ecies/__tests__/compatibility.test.d.ts +8 -0
  118. package/dist/crypto/ecies/__tests__/constants.test.d.ts +4 -0
  119. package/dist/crypto/ecies/__tests__/native-parity.test.d.ts +7 -0
  120. package/dist/crypto/ecies/__tests__/normalization.test.d.ts +1 -0
  121. package/dist/crypto/ecies/__tests__/test-vectors.cjs +102 -0
  122. package/dist/crypto/ecies/__tests__/test-vectors.cjs.map +1 -0
  123. package/dist/crypto/ecies/__tests__/test-vectors.d.ts +38 -0
  124. package/dist/crypto/ecies/__tests__/test-vectors.js +77 -0
  125. package/dist/crypto/ecies/__tests__/test-vectors.js.map +1 -0
  126. package/dist/crypto/ecies/base.cjs +232 -0
  127. package/dist/crypto/ecies/base.cjs.map +1 -0
  128. package/dist/crypto/ecies/base.d.ts +140 -0
  129. package/dist/crypto/ecies/base.js +208 -0
  130. package/dist/crypto/ecies/base.js.map +1 -0
  131. package/dist/crypto/ecies/browser.cjs +165 -0
  132. package/dist/crypto/ecies/browser.cjs.map +1 -0
  133. package/dist/crypto/ecies/browser.d.ts +43 -0
  134. package/dist/crypto/ecies/browser.js +131 -0
  135. package/dist/crypto/ecies/browser.js.map +1 -0
  136. package/dist/crypto/ecies/constants.cjs +131 -0
  137. package/dist/crypto/ecies/constants.cjs.map +1 -0
  138. package/dist/crypto/ecies/constants.d.ts +120 -0
  139. package/dist/crypto/ecies/constants.js +101 -0
  140. package/dist/crypto/ecies/constants.js.map +1 -0
  141. package/dist/crypto/ecies/index.cjs +35 -0
  142. package/dist/crypto/ecies/index.cjs.map +1 -0
  143. package/dist/crypto/ecies/index.d.ts +8 -0
  144. package/dist/crypto/ecies/index.js +13 -0
  145. package/dist/crypto/ecies/index.js.map +1 -0
  146. package/dist/crypto/ecies/interface.cjs +87 -0
  147. package/dist/crypto/ecies/interface.cjs.map +1 -0
  148. package/dist/crypto/ecies/interface.d.ts +174 -0
  149. package/dist/crypto/ecies/interface.js +60 -0
  150. package/dist/crypto/ecies/interface.js.map +1 -0
  151. package/dist/crypto/ecies/node.cjs +167 -0
  152. package/dist/crypto/ecies/node.cjs.map +1 -0
  153. package/dist/crypto/ecies/node.d.ts +45 -0
  154. package/dist/crypto/ecies/node.js +139 -0
  155. package/dist/crypto/ecies/node.js.map +1 -0
  156. package/dist/crypto/ecies/test-vectors/eccrypto-vectors.json +72 -0
  157. package/dist/crypto/ecies/utils.cjs +52 -0
  158. package/dist/crypto/ecies/utils.cjs.map +1 -0
  159. package/dist/crypto/ecies/utils.d.ts +30 -0
  160. package/dist/crypto/ecies/utils.js +26 -0
  161. package/dist/crypto/ecies/utils.js.map +1 -0
  162. package/dist/crypto/services/WalletKeyEncryptionService.cjs +128 -0
  163. package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -0
  164. package/dist/crypto/services/WalletKeyEncryptionService.d.ts +88 -0
  165. package/dist/crypto/services/WalletKeyEncryptionService.js +108 -0
  166. package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -0
  167. package/dist/crypto/services/WalletKeyEncryptionService.test.d.ts +1 -0
  168. package/dist/diagnostics.cjs +37 -0
  169. package/dist/diagnostics.cjs.map +1 -0
  170. package/dist/diagnostics.d.ts +24 -0
  171. package/dist/diagnostics.js +13 -0
  172. package/dist/diagnostics.js.map +1 -0
  173. package/dist/diagnostics.test.d.ts +1 -0
  174. package/dist/errors.cjs +157 -0
  175. package/dist/errors.cjs.map +1 -0
  176. package/dist/errors.d.ts +388 -0
  177. package/dist/errors.js +120 -0
  178. package/dist/errors.js.map +1 -0
  179. package/dist/generated/abi/ComputeEngineImplementation.cjs +1313 -0
  180. package/dist/generated/abi/ComputeEngineImplementation.cjs.map +1 -0
  181. package/dist/generated/abi/ComputeEngineImplementation.d.ts +995 -0
  182. package/dist/generated/abi/ComputeEngineImplementation.js +1289 -0
  183. package/dist/generated/abi/ComputeEngineImplementation.js.map +1 -0
  184. package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs +734 -0
  185. package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs.map +1 -0
  186. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +544 -0
  187. package/dist/generated/abi/ComputeInstructionRegistryImplementation.js +710 -0
  188. package/dist/generated/abi/ComputeInstructionRegistryImplementation.js.map +1 -0
  189. package/dist/generated/abi/DATFactoryImplementation.cjs +882 -0
  190. package/dist/generated/abi/DATFactoryImplementation.cjs.map +1 -0
  191. package/dist/generated/abi/DATFactoryImplementation.d.ts +660 -0
  192. package/dist/generated/abi/DATFactoryImplementation.js +858 -0
  193. package/dist/generated/abi/DATFactoryImplementation.js.map +1 -0
  194. package/dist/generated/abi/DATImplementation.cjs +934 -0
  195. package/dist/generated/abi/DATImplementation.cjs.map +1 -0
  196. package/dist/generated/abi/DATImplementation.d.ts +692 -0
  197. package/dist/generated/abi/DATImplementation.js +910 -0
  198. package/dist/generated/abi/DATImplementation.js.map +1 -0
  199. package/dist/generated/abi/DATPausableImplementation.cjs +1523 -0
  200. package/dist/generated/abi/DATPausableImplementation.cjs.map +1 -0
  201. package/dist/generated/abi/DATPausableImplementation.d.ts +1144 -0
  202. package/dist/generated/abi/DATPausableImplementation.js +1499 -0
  203. package/dist/generated/abi/DATPausableImplementation.js.map +1 -0
  204. package/dist/generated/abi/DATVotesImplementation.cjs +1460 -0
  205. package/dist/generated/abi/DATVotesImplementation.cjs.map +1 -0
  206. package/dist/generated/abi/DATVotesImplementation.d.ts +1094 -0
  207. package/dist/generated/abi/DATVotesImplementation.js +1436 -0
  208. package/dist/generated/abi/DATVotesImplementation.js.map +1 -0
  209. package/dist/generated/abi/DLPPerformanceImplementation.cjs +1160 -0
  210. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +1 -0
  211. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +882 -0
  212. package/dist/generated/abi/DLPPerformanceImplementation.js +1136 -0
  213. package/dist/generated/abi/DLPPerformanceImplementation.js.map +1 -0
  214. package/dist/generated/abi/DLPRegistryImplementation.cjs +1469 -0
  215. package/dist/generated/abi/DLPRegistryImplementation.cjs.map +1 -0
  216. package/dist/generated/abi/DLPRegistryImplementation.d.ts +1122 -0
  217. package/dist/generated/abi/DLPRegistryImplementation.js +1445 -0
  218. package/dist/generated/abi/DLPRegistryImplementation.js.map +1 -0
  219. package/dist/generated/abi/DLPRegistryTreasuryImplementation.cjs +612 -0
  220. package/dist/generated/abi/DLPRegistryTreasuryImplementation.cjs.map +1 -0
  221. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +451 -0
  222. package/dist/generated/abi/DLPRegistryTreasuryImplementation.js +588 -0
  223. package/dist/generated/abi/DLPRegistryTreasuryImplementation.js.map +1 -0
  224. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +948 -0
  225. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +1 -0
  226. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +713 -0
  227. package/dist/generated/abi/DLPRewardDeployerImplementation.js +924 -0
  228. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +1 -0
  229. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +612 -0
  230. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +1 -0
  231. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +451 -0
  232. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +588 -0
  233. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +1 -0
  234. package/dist/generated/abi/DLPRewardSwapImplementation.cjs +939 -0
  235. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +1 -0
  236. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +705 -0
  237. package/dist/generated/abi/DLPRewardSwapImplementation.js +915 -0
  238. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +1 -0
  239. package/dist/generated/abi/DLPRootImplementation.cjs +1644 -0
  240. package/dist/generated/abi/DLPRootImplementation.cjs.map +1 -0
  241. package/dist/generated/abi/DLPRootImplementation.d.ts +1246 -0
  242. package/dist/generated/abi/DLPRootImplementation.js +1620 -0
  243. package/dist/generated/abi/DLPRootImplementation.js.map +1 -0
  244. package/dist/generated/abi/DLPTreasuryImplementation.cjs +612 -0
  245. package/dist/generated/abi/DLPTreasuryImplementation.cjs.map +1 -0
  246. package/dist/generated/abi/DLPTreasuryImplementation.d.ts +451 -0
  247. package/dist/generated/abi/DLPTreasuryImplementation.js +588 -0
  248. package/dist/generated/abi/DLPTreasuryImplementation.js.map +1 -0
  249. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +985 -0
  250. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +1 -0
  251. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +735 -0
  252. package/dist/generated/abi/DataLiquidityPoolImplementation.js +961 -0
  253. package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +1 -0
  254. package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs +888 -0
  255. package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs.map +1 -0
  256. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +660 -0
  257. package/dist/generated/abi/DataPortabilityGranteesImplementation.js +864 -0
  258. package/dist/generated/abi/DataPortabilityGranteesImplementation.js.map +1 -0
  259. package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs +1317 -0
  260. package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs.map +1 -0
  261. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +988 -0
  262. package/dist/generated/abi/DataPortabilityPermissionsImplementation.js +1293 -0
  263. package/dist/generated/abi/DataPortabilityPermissionsImplementation.js.map +1 -0
  264. package/dist/generated/abi/DataPortabilityServersImplementation.cjs +1438 -0
  265. package/dist/generated/abi/DataPortabilityServersImplementation.cjs.map +1 -0
  266. package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +1085 -0
  267. package/dist/generated/abi/DataPortabilityServersImplementation.js +1414 -0
  268. package/dist/generated/abi/DataPortabilityServersImplementation.js.map +1 -0
  269. package/dist/generated/abi/DataRefinerRegistryImplementation.cjs +984 -0
  270. package/dist/generated/abi/DataRefinerRegistryImplementation.cjs.map +1 -0
  271. package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +736 -0
  272. package/dist/generated/abi/DataRefinerRegistryImplementation.js +960 -0
  273. package/dist/generated/abi/DataRefinerRegistryImplementation.js.map +1 -0
  274. package/dist/generated/abi/DataRegistryImplementation.cjs +1341 -0
  275. package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -0
  276. package/dist/generated/abi/DataRegistryImplementation.d.ts +1013 -0
  277. package/dist/generated/abi/DataRegistryImplementation.js +1317 -0
  278. package/dist/generated/abi/DataRegistryImplementation.js.map +1 -0
  279. package/dist/generated/abi/QueryEngineImplementation.cjs +1319 -0
  280. package/dist/generated/abi/QueryEngineImplementation.cjs.map +1 -0
  281. package/dist/generated/abi/QueryEngineImplementation.d.ts +1000 -0
  282. package/dist/generated/abi/QueryEngineImplementation.js +1295 -0
  283. package/dist/generated/abi/QueryEngineImplementation.js.map +1 -0
  284. package/dist/generated/abi/SwapHelperImplementation.cjs +1019 -0
  285. package/dist/generated/abi/SwapHelperImplementation.cjs.map +1 -0
  286. package/dist/generated/abi/SwapHelperImplementation.d.ts +763 -0
  287. package/dist/generated/abi/SwapHelperImplementation.js +995 -0
  288. package/dist/generated/abi/SwapHelperImplementation.js.map +1 -0
  289. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.cjs +936 -0
  290. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.cjs.map +1 -0
  291. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +700 -0
  292. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.js +912 -0
  293. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.js.map +1 -0
  294. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.cjs +936 -0
  295. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.cjs.map +1 -0
  296. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +700 -0
  297. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.js +912 -0
  298. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.js.map +1 -0
  299. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.cjs +936 -0
  300. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.cjs.map +1 -0
  301. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +700 -0
  302. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.js +912 -0
  303. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.js.map +1 -0
  304. package/dist/generated/abi/TeePoolImplementation.cjs +1313 -0
  305. package/dist/generated/abi/TeePoolImplementation.cjs.map +1 -0
  306. package/dist/generated/abi/TeePoolImplementation.d.ts +992 -0
  307. package/dist/generated/abi/TeePoolImplementation.js +1289 -0
  308. package/dist/generated/abi/TeePoolImplementation.js.map +1 -0
  309. package/dist/generated/abi/TeePoolPersistentGpuImplementation.cjs +936 -0
  310. package/dist/generated/abi/TeePoolPersistentGpuImplementation.cjs.map +1 -0
  311. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +700 -0
  312. package/dist/generated/abi/TeePoolPersistentGpuImplementation.js +912 -0
  313. package/dist/generated/abi/TeePoolPersistentGpuImplementation.js.map +1 -0
  314. package/dist/generated/abi/TeePoolPersistentStandardImplementation.cjs +936 -0
  315. package/dist/generated/abi/TeePoolPersistentStandardImplementation.cjs.map +1 -0
  316. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +700 -0
  317. package/dist/generated/abi/TeePoolPersistentStandardImplementation.js +912 -0
  318. package/dist/generated/abi/TeePoolPersistentStandardImplementation.js.map +1 -0
  319. package/dist/generated/abi/TeePoolPhalaImplementation.cjs +1313 -0
  320. package/dist/generated/abi/TeePoolPhalaImplementation.cjs.map +1 -0
  321. package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +992 -0
  322. package/dist/generated/abi/TeePoolPhalaImplementation.js +1289 -0
  323. package/dist/generated/abi/TeePoolPhalaImplementation.js.map +1 -0
  324. package/dist/generated/abi/VanaEpochImplementation.cjs +1188 -0
  325. package/dist/generated/abi/VanaEpochImplementation.cjs.map +1 -0
  326. package/dist/generated/abi/VanaEpochImplementation.d.ts +899 -0
  327. package/dist/generated/abi/VanaEpochImplementation.js +1164 -0
  328. package/dist/generated/abi/VanaEpochImplementation.js.map +1 -0
  329. package/dist/generated/abi/VanaPoolEntityImplementation.cjs +1234 -0
  330. package/dist/generated/abi/VanaPoolEntityImplementation.cjs.map +1 -0
  331. package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +933 -0
  332. package/dist/generated/abi/VanaPoolEntityImplementation.js +1210 -0
  333. package/dist/generated/abi/VanaPoolEntityImplementation.js.map +1 -0
  334. package/dist/generated/abi/VanaPoolStakingImplementation.cjs +921 -0
  335. package/dist/generated/abi/VanaPoolStakingImplementation.cjs.map +1 -0
  336. package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +692 -0
  337. package/dist/generated/abi/VanaPoolStakingImplementation.js +897 -0
  338. package/dist/generated/abi/VanaPoolStakingImplementation.js.map +1 -0
  339. package/dist/generated/abi/VanaPoolTreasuryImplementation.cjs +538 -0
  340. package/dist/generated/abi/VanaPoolTreasuryImplementation.cjs.map +1 -0
  341. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +393 -0
  342. package/dist/generated/abi/VanaPoolTreasuryImplementation.js +514 -0
  343. package/dist/generated/abi/VanaPoolTreasuryImplementation.js.map +1 -0
  344. package/dist/generated/abi/index.cjs +177 -0
  345. package/dist/generated/abi/index.cjs.map +1 -0
  346. package/dist/{index.node.d.cts → generated/abi/index.d.ts} +26541 -32582
  347. package/dist/generated/abi/index.js +120 -0
  348. package/dist/generated/abi/index.js.map +1 -0
  349. package/dist/generated/event-types.cjs +17 -0
  350. package/dist/generated/event-types.cjs.map +1 -0
  351. package/dist/generated/event-types.d.ts +854 -0
  352. package/dist/generated/event-types.js +1 -0
  353. package/dist/generated/event-types.js.map +1 -0
  354. package/dist/generated/eventRegistry.cjs +3351 -0
  355. package/dist/generated/eventRegistry.cjs.map +1 -0
  356. package/dist/generated/eventRegistry.d.ts +14 -0
  357. package/dist/generated/eventRegistry.js +3326 -0
  358. package/dist/generated/eventRegistry.js.map +1 -0
  359. package/dist/generated/server/server-exports.cjs +23 -0
  360. package/dist/generated/server/server-exports.cjs.map +1 -0
  361. package/dist/generated/server/server-exports.d.ts +19 -0
  362. package/dist/generated/server/server-exports.js +2 -0
  363. package/dist/generated/server/server-exports.js.map +1 -0
  364. package/dist/generated/server/server.cjs +17 -0
  365. package/dist/generated/server/server.cjs.map +1 -0
  366. package/dist/generated/server/server.d.ts +538 -0
  367. package/dist/generated/server/server.js +1 -0
  368. package/dist/generated/server/server.js.map +1 -0
  369. package/dist/generated/subgraph.cjs +675 -0
  370. package/dist/generated/subgraph.cjs.map +1 -0
  371. package/dist/generated/subgraph.d.ts +5978 -0
  372. package/dist/generated/subgraph.js +644 -0
  373. package/dist/generated/subgraph.js.map +1 -0
  374. package/dist/index.browser.d.ts +116 -32444
  375. package/dist/index.browser.js +76 -40974
  376. package/dist/index.browser.js.map +1 -1
  377. package/dist/index.cjs +5 -0
  378. package/dist/index.cjs.map +1 -0
  379. package/dist/index.d.ts +0 -0
  380. package/dist/index.js +4 -0
  381. package/dist/index.js.map +1 -0
  382. package/dist/index.node.cjs +96 -41420
  383. package/dist/index.node.cjs.map +1 -1
  384. package/dist/index.node.d.ts +141 -32546
  385. package/dist/index.node.js +78 -41310
  386. package/dist/index.node.js.map +1 -1
  387. package/dist/node.cjs +29 -0
  388. package/dist/node.cjs.map +1 -0
  389. package/dist/node.d.ts +4 -0
  390. package/dist/node.js +5 -0
  391. package/dist/node.js.map +1 -0
  392. package/dist/platform/browser-only.cjs +37 -0
  393. package/dist/platform/browser-only.cjs.map +1 -0
  394. package/dist/platform/browser-only.d.ts +22 -0
  395. package/dist/platform/browser-only.js +12 -0
  396. package/dist/platform/browser-only.js.map +1 -0
  397. package/dist/platform/browser-only.test.d.ts +1 -0
  398. package/dist/platform/browser-safe.cjs +57 -0
  399. package/dist/platform/browser-safe.cjs.map +1 -0
  400. package/dist/platform/browser-safe.d.ts +29 -0
  401. package/dist/platform/browser-safe.js +31 -0
  402. package/dist/platform/browser-safe.js.map +1 -0
  403. package/dist/platform/browser-safe.test.d.ts +1 -0
  404. package/dist/platform/browser.cjs +330 -0
  405. package/dist/platform/browser.cjs.map +1 -0
  406. package/dist/platform/browser.d.ts +71 -0
  407. package/dist/platform/browser.js +296 -0
  408. package/dist/platform/browser.js.map +1 -0
  409. package/dist/platform/browser.test.d.ts +1 -0
  410. package/dist/platform/index.cjs +50 -0
  411. package/dist/platform/index.cjs.map +1 -0
  412. package/dist/platform/index.d.ts +11 -0
  413. package/dist/platform/index.js +27 -0
  414. package/dist/platform/index.js.map +1 -0
  415. package/dist/platform/interface.cjs +17 -0
  416. package/dist/platform/interface.cjs.map +1 -0
  417. package/dist/{platform.node.d.cts → platform/interface.d.ts} +74 -122
  418. package/dist/platform/interface.js +1 -0
  419. package/dist/platform/interface.js.map +1 -0
  420. package/dist/platform/node.cjs +351 -0
  421. package/dist/platform/node.cjs.map +1 -0
  422. package/dist/platform/node.d.ts +23 -0
  423. package/dist/platform/node.js +320 -0
  424. package/dist/platform/node.js.map +1 -0
  425. package/dist/platform/ports/openpgp-port.cjs +74 -0
  426. package/dist/platform/ports/openpgp-port.cjs.map +1 -0
  427. package/dist/platform/ports/openpgp-port.d.ts +13 -0
  428. package/dist/platform/ports/openpgp-port.js +59 -0
  429. package/dist/platform/ports/openpgp-port.js.map +1 -0
  430. package/dist/platform/ports/pgp-port.cjs +17 -0
  431. package/dist/platform/ports/pgp-port.cjs.map +1 -0
  432. package/dist/platform/ports/pgp-port.d.ts +35 -0
  433. package/dist/platform/ports/pgp-port.js +1 -0
  434. package/dist/platform/ports/pgp-port.js.map +1 -0
  435. package/dist/platform/shared/error-utils.cjs +43 -0
  436. package/dist/platform/shared/error-utils.cjs.map +1 -0
  437. package/dist/platform/shared/error-utils.d.ts +23 -0
  438. package/dist/platform/shared/error-utils.js +18 -0
  439. package/dist/platform/shared/error-utils.js.map +1 -0
  440. package/dist/platform/shared/pgp-utils.cjs +55 -0
  441. package/dist/platform/shared/pgp-utils.cjs.map +1 -0
  442. package/dist/platform/shared/pgp-utils.d.ts +59 -0
  443. package/dist/platform/shared/pgp-utils.js +29 -0
  444. package/dist/platform/shared/pgp-utils.js.map +1 -0
  445. package/dist/platform/shared/stream-utils.cjs +49 -0
  446. package/dist/platform/shared/stream-utils.cjs.map +1 -0
  447. package/dist/platform/shared/stream-utils.d.ts +14 -0
  448. package/dist/platform/shared/stream-utils.js +25 -0
  449. package/dist/platform/shared/stream-utils.js.map +1 -0
  450. package/dist/platform/utils.cjs +114 -0
  451. package/dist/platform/utils.cjs.map +1 -0
  452. package/dist/platform/utils.d.ts +49 -0
  453. package/dist/platform/utils.js +76 -0
  454. package/dist/platform/utils.js.map +1 -0
  455. package/dist/platform/utils.test.d.ts +1 -0
  456. package/dist/platform.browser.d.ts +6 -221
  457. package/dist/platform.browser.js +10 -309
  458. package/dist/platform.browser.js.map +1 -1
  459. package/dist/platform.cjs +14 -623
  460. package/dist/platform.cjs.map +1 -1
  461. package/dist/platform.d.ts +11 -1
  462. package/dist/platform.js +14 -609
  463. package/dist/platform.js.map +1 -1
  464. package/dist/platform.node.cjs +14 -623
  465. package/dist/platform.node.cjs.map +1 -1
  466. package/dist/platform.node.d.ts +7 -261
  467. package/dist/platform.node.js +14 -609
  468. package/dist/platform.node.js.map +1 -1
  469. package/dist/schemas/dataSchema.schema.json +53 -0
  470. package/dist/schemas/grantFile.schema.json +43 -0
  471. package/dist/server/handler.cjs +101 -0
  472. package/dist/server/handler.cjs.map +1 -0
  473. package/dist/server/handler.d.ts +87 -0
  474. package/dist/server/handler.js +77 -0
  475. package/dist/server/handler.js.map +1 -0
  476. package/dist/storage/index.cjs +44 -0
  477. package/dist/storage/index.cjs.map +1 -0
  478. package/dist/storage/index.d.ts +56 -0
  479. package/dist/storage/index.js +15 -0
  480. package/dist/storage/index.js.map +1 -0
  481. package/dist/storage/manager.cjs +189 -0
  482. package/dist/storage/manager.cjs.map +1 -0
  483. package/dist/storage/manager.d.ts +147 -0
  484. package/dist/storage/manager.js +165 -0
  485. package/dist/storage/manager.js.map +1 -0
  486. package/dist/storage/providers/callback-storage.cjs +177 -0
  487. package/dist/storage/providers/callback-storage.cjs.map +1 -0
  488. package/dist/storage/providers/callback-storage.d.ts +94 -0
  489. package/dist/storage/providers/callback-storage.js +155 -0
  490. package/dist/storage/providers/callback-storage.js.map +1 -0
  491. package/dist/storage/providers/google-drive.cjs +516 -0
  492. package/dist/storage/providers/google-drive.cjs.map +1 -0
  493. package/dist/storage/providers/google-drive.d.ts +152 -0
  494. package/dist/storage/providers/google-drive.js +494 -0
  495. package/dist/storage/providers/google-drive.js.map +1 -0
  496. package/dist/storage/providers/google-drive.test.d.ts +1 -0
  497. package/dist/storage/providers/ipfs.cjs +283 -0
  498. package/dist/storage/providers/ipfs.cjs.map +1 -0
  499. package/dist/storage/providers/ipfs.d.ts +160 -0
  500. package/dist/storage/providers/ipfs.js +261 -0
  501. package/dist/storage/providers/ipfs.js.map +1 -0
  502. package/dist/storage/providers/pinata.cjs +339 -0
  503. package/dist/storage/providers/pinata.cjs.map +1 -0
  504. package/dist/storage/providers/pinata.d.ts +170 -0
  505. package/dist/storage/providers/pinata.js +317 -0
  506. package/dist/storage/providers/pinata.js.map +1 -0
  507. package/dist/storage/tests/callbackStorage.test.d.ts +1 -0
  508. package/dist/storage/tests/googleDriveStorage.test.d.ts +1 -0
  509. package/dist/storage/tests/ipfsStorage.test.d.ts +1 -0
  510. package/dist/storage/tests/pinataStorage.test.d.ts +1 -0
  511. package/dist/storage/tests/storageManager.test.d.ts +1 -0
  512. package/dist/tests/abi.test.d.ts +1 -0
  513. package/dist/tests/chains-definitions.test.d.ts +1 -0
  514. package/dist/tests/core-encryption.test.d.ts +1 -0
  515. package/dist/tests/core-extended.test.d.ts +1 -0
  516. package/dist/tests/core-generics-coverage.test.d.ts +1 -0
  517. package/dist/tests/coverage-boost.test.d.ts +1 -0
  518. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +1 -0
  519. package/dist/tests/data-addfile-permissions-schema.test.d.ts +1 -0
  520. package/dist/tests/data-additional-methods.test.d.ts +1 -0
  521. package/dist/tests/data-controller-edge-cases.test.d.ts +1 -0
  522. package/dist/tests/data-ipfs-gateways.test.d.ts +1 -0
  523. package/dist/tests/data-relayer.test.d.ts +1 -0
  524. package/dist/tests/data-schema-validation.test.d.ts +1 -0
  525. package/dist/tests/data-simple-methods.test.d.ts +1 -0
  526. package/dist/tests/data.test.d.ts +1 -0
  527. package/dist/tests/demo-integration.test.d.ts +1 -0
  528. package/dist/tests/demo-trusted-server-integration.test.d.ts +1 -0
  529. package/dist/tests/download-relayer.test.d.ts +1 -0
  530. package/dist/tests/dual-mode-permissions.test.d.ts +1 -0
  531. package/dist/tests/dual-mode-trusted-servers.test.d.ts +1 -0
  532. package/dist/tests/encryption-correct-implementation.test.d.ts +1 -0
  533. package/dist/tests/encryption-coverage.test.d.ts +1 -0
  534. package/dist/tests/encryption-edge-cases.test.d.ts +1 -0
  535. package/dist/tests/encryption-utils-updated.test.d.ts +1 -0
  536. package/dist/tests/errors-coverage.test.d.ts +1 -0
  537. package/dist/tests/errors.test.d.ts +1 -0
  538. package/dist/tests/factories/mockFactory.d.ts +316 -0
  539. package/dist/tests/fakes/FakeStorageManager.d.ts +200 -0
  540. package/dist/tests/fakes/FakeStorageManager.test.d.ts +1 -0
  541. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +170 -0
  542. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +1 -0
  543. package/dist/tests/fakes/fake-pgp-port.d.ts +13 -0
  544. package/dist/tests/grantValidation-edge-cases.test.d.ts +1 -0
  545. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +1 -0
  546. package/dist/tests/helper-methods.test.d.ts +1 -0
  547. package/dist/tests/helpers/platformTestHelpers.d.ts +106 -0
  548. package/dist/tests/helpers/typedMocks.d.ts +64 -0
  549. package/dist/tests/index-browser.test.d.ts +1 -0
  550. package/dist/tests/index-node.test.d.ts +1 -0
  551. package/dist/tests/index.test.d.ts +1 -0
  552. package/dist/tests/mocks/platformAdapter.d.ts +12 -0
  553. package/dist/tests/new-permissions-methods.test.d.ts +1 -0
  554. package/dist/tests/no-buffer-browser.test.d.ts +1 -0
  555. package/dist/tests/permissions-grantee.test.d.ts +1 -0
  556. package/dist/tests/permissions-schema-validation.test.d.ts +1 -0
  557. package/dist/tests/permissions-server-files.test.d.ts +1 -0
  558. package/dist/tests/permissions-transaction-options.test.d.ts +1 -0
  559. package/dist/tests/permissions-trust-servers.test.d.ts +1 -0
  560. package/dist/tests/permissions.test.d.ts +1 -0
  561. package/dist/tests/personal.test.d.ts +1 -0
  562. package/dist/tests/platform-browser.test.d.ts +1 -0
  563. package/dist/tests/platform-crypto-expanded.test.d.ts +1 -0
  564. package/dist/tests/platform-crypto.test.d.ts +1 -0
  565. package/dist/tests/platform-index.test.d.ts +1 -0
  566. package/dist/tests/platform-node.test.d.ts +1 -0
  567. package/dist/tests/platform-shared-utils.test.d.ts +1 -0
  568. package/dist/tests/platform-updated.test.d.ts +1 -0
  569. package/dist/tests/protocol-additional-methods.test.d.ts +1 -0
  570. package/dist/tests/protocol.test.d.ts +1 -0
  571. package/dist/tests/read-only-mode.test.d.ts +1 -0
  572. package/dist/tests/schemas.test.d.ts +1 -0
  573. package/dist/tests/server-handler.test.d.ts +1 -0
  574. package/dist/tests/setup.d.ts +7 -0
  575. package/dist/tests/signatureFormatter.test.d.ts +1 -0
  576. package/dist/tests/trusted-server-queries.test.d.ts +1 -0
  577. package/dist/tests/typedDataConverter.test.d.ts +1 -0
  578. package/dist/tests/types-contracts.test.d.ts +1 -0
  579. package/dist/tests/types-data.test.d.ts +1 -0
  580. package/dist/tests/types-external-apis.test.d.ts +1 -0
  581. package/dist/tests/types-generics.test.d.ts +1 -0
  582. package/dist/tests/types-permissions.test.d.ts +1 -0
  583. package/dist/tests/types-upload-params.test.d.ts +1 -0
  584. package/dist/tests/types.test.d.ts +1 -0
  585. package/dist/tests/utils-formatters.test.d.ts +1 -0
  586. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +1 -0
  587. package/dist/tests/utils-grantFiles-validation.test.d.ts +1 -0
  588. package/dist/tests/utils-grantFiles.test.d.ts +1 -0
  589. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +1 -0
  590. package/dist/tests/utils-grants.test.d.ts +1 -0
  591. package/dist/tests/utils-ipfs-additional.test.d.ts +1 -0
  592. package/dist/tests/utils-ipfs.test.d.ts +4 -0
  593. package/dist/tests/utils-schemaValidation.test.d.ts +1 -0
  594. package/dist/tests/vana.test.d.ts +1 -0
  595. package/dist/tests/wallet-crypto-compatibility.test.d.ts +1 -0
  596. package/dist/types/blockchain.cjs +17 -0
  597. package/dist/types/blockchain.cjs.map +1 -0
  598. package/dist/types/blockchain.d.ts +57 -0
  599. package/dist/types/blockchain.js +1 -0
  600. package/dist/types/blockchain.js.map +1 -0
  601. package/dist/types/chains-additional.test.d.ts +1 -0
  602. package/dist/types/chains.cjs +36 -0
  603. package/dist/types/chains.cjs.map +1 -0
  604. package/dist/types/chains.d.ts +31 -0
  605. package/dist/types/chains.js +11 -0
  606. package/dist/types/chains.js.map +1 -0
  607. package/dist/types/config.cjs +51 -0
  608. package/dist/types/config.cjs.map +1 -0
  609. package/dist/types/config.d.ts +833 -0
  610. package/dist/types/config.js +23 -0
  611. package/dist/types/config.js.map +1 -0
  612. package/dist/types/contracts.cjs +17 -0
  613. package/dist/types/contracts.cjs.map +1 -0
  614. package/dist/types/contracts.d.ts +65 -0
  615. package/dist/types/contracts.js +1 -0
  616. package/dist/types/contracts.js.map +1 -0
  617. package/dist/types/controller-context.cjs +17 -0
  618. package/dist/types/controller-context.cjs.map +1 -0
  619. package/dist/types/controller-context.d.ts +64 -0
  620. package/dist/types/controller-context.js +1 -0
  621. package/dist/types/controller-context.js.map +1 -0
  622. package/dist/types/data.cjs +17 -0
  623. package/dist/types/data.cjs.map +1 -0
  624. package/dist/types/data.d.ts +762 -0
  625. package/dist/types/data.js +1 -0
  626. package/dist/types/data.js.map +1 -0
  627. package/dist/types/eccrypto-js.d.cjs +2 -0
  628. package/dist/types/eccrypto-js.d.cjs.map +1 -0
  629. package/dist/types/eccrypto-js.d.js +1 -0
  630. package/dist/types/eccrypto-js.d.js.map +1 -0
  631. package/dist/types/external-apis.cjs +61 -0
  632. package/dist/types/external-apis.cjs.map +1 -0
  633. package/dist/types/external-apis.d.ts +184 -0
  634. package/dist/types/external-apis.js +34 -0
  635. package/dist/types/external-apis.js.map +1 -0
  636. package/dist/types/generics.cjs +17 -0
  637. package/dist/types/generics.cjs.map +1 -0
  638. package/dist/types/generics.d.ts +447 -0
  639. package/dist/types/generics.js +1 -0
  640. package/dist/types/generics.js.map +1 -0
  641. package/dist/types/index.cjs +65 -0
  642. package/dist/types/index.cjs.map +1 -0
  643. package/dist/types/index.d.ts +20 -0
  644. package/dist/types/index.js +42 -0
  645. package/dist/types/index.js.map +1 -0
  646. package/dist/types/operations.cjs +65 -0
  647. package/dist/types/operations.cjs.map +1 -0
  648. package/dist/types/operations.d.ts +112 -0
  649. package/dist/types/operations.js +37 -0
  650. package/dist/types/operations.js.map +1 -0
  651. package/dist/types/permissions.cjs +17 -0
  652. package/dist/types/permissions.cjs.map +1 -0
  653. package/dist/types/permissions.d.ts +954 -0
  654. package/dist/types/permissions.js +1 -0
  655. package/dist/types/permissions.js.map +1 -0
  656. package/dist/types/personal.cjs +17 -0
  657. package/dist/types/personal.cjs.map +1 -0
  658. package/dist/types/personal.d.ts +38 -0
  659. package/dist/types/personal.js +1 -0
  660. package/dist/types/personal.js.map +1 -0
  661. package/dist/types/relayer.cjs +17 -0
  662. package/dist/types/relayer.cjs.map +1 -0
  663. package/dist/types/relayer.d.ts +281 -0
  664. package/dist/types/relayer.js +1 -0
  665. package/dist/types/relayer.js.map +1 -0
  666. package/dist/types/storage.cjs +39 -0
  667. package/dist/types/storage.cjs.map +1 -0
  668. package/dist/types/storage.d.ts +129 -0
  669. package/dist/types/storage.js +15 -0
  670. package/dist/types/storage.js.map +1 -0
  671. package/dist/types/transactionResults.cjs +17 -0
  672. package/dist/types/transactionResults.cjs.map +1 -0
  673. package/dist/types/transactionResults.d.ts +193 -0
  674. package/dist/types/transactionResults.js +1 -0
  675. package/dist/types/transactionResults.js.map +1 -0
  676. package/dist/types/utils.cjs +17 -0
  677. package/dist/types/utils.cjs.map +1 -0
  678. package/dist/types/utils.d.ts +820 -0
  679. package/dist/types/utils.js +1 -0
  680. package/dist/types/utils.js.map +1 -0
  681. package/dist/types.cjs +23 -0
  682. package/dist/types.cjs.map +1 -0
  683. package/dist/types.d.ts +30 -0
  684. package/dist/types.js +2 -0
  685. package/dist/types.js.map +1 -0
  686. package/dist/utils/__tests__/parseTransaction.test.d.ts +1 -0
  687. package/dist/utils/__tests__/pojo-serialization.test.d.ts +1 -0
  688. package/dist/utils/__tests__/signatureCache.test.d.ts +1 -0
  689. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +1 -0
  690. package/dist/utils/__tests__/transactionHelpers.test.d.ts +1 -0
  691. package/dist/utils/__tests__/urlResolver.test.d.ts +4 -0
  692. package/dist/utils/blockchain/registry.cjs +81 -0
  693. package/dist/utils/blockchain/registry.cjs.map +1 -0
  694. package/dist/utils/blockchain/registry.d.ts +32 -0
  695. package/dist/utils/blockchain/registry.js +56 -0
  696. package/dist/utils/blockchain/registry.js.map +1 -0
  697. package/dist/utils/blockchain/registry.test.d.ts +1 -0
  698. package/dist/utils/crypto-utils.cjs +108 -0
  699. package/dist/utils/crypto-utils.cjs.map +1 -0
  700. package/dist/utils/crypto-utils.d.ts +100 -0
  701. package/dist/utils/crypto-utils.js +76 -0
  702. package/dist/utils/crypto-utils.js.map +1 -0
  703. package/dist/utils/crypto-utils.test.d.ts +1 -0
  704. package/dist/utils/download.cjs +69 -0
  705. package/dist/utils/download.cjs.map +1 -0
  706. package/dist/utils/download.d.ts +40 -0
  707. package/dist/utils/download.js +45 -0
  708. package/dist/utils/download.js.map +1 -0
  709. package/dist/utils/encoding.cjs +66 -0
  710. package/dist/utils/encoding.cjs.map +1 -0
  711. package/dist/utils/encoding.d.ts +52 -0
  712. package/dist/utils/encoding.js +39 -0
  713. package/dist/utils/encoding.js.map +1 -0
  714. package/dist/utils/encoding.test.d.ts +1 -0
  715. package/dist/utils/encryption.cjs +176 -0
  716. package/dist/utils/encryption.cjs.map +1 -0
  717. package/dist/utils/encryption.d.ts +271 -0
  718. package/dist/utils/encryption.js +142 -0
  719. package/dist/utils/encryption.js.map +1 -0
  720. package/dist/utils/formatters.cjs +55 -0
  721. package/dist/utils/formatters.cjs.map +1 -0
  722. package/dist/utils/formatters.d.ts +118 -0
  723. package/dist/utils/formatters.js +28 -0
  724. package/dist/utils/formatters.js.map +1 -0
  725. package/dist/utils/grantFiles.cjs +178 -0
  726. package/dist/utils/grantFiles.cjs.map +1 -0
  727. package/dist/utils/grantFiles.d.ts +182 -0
  728. package/dist/utils/grantFiles.js +140 -0
  729. package/dist/utils/grantFiles.js.map +1 -0
  730. package/dist/utils/grantValidation.cjs +243 -0
  731. package/dist/utils/grantValidation.cjs.map +1 -0
  732. package/dist/utils/grantValidation.d.ts +147 -0
  733. package/dist/utils/grantValidation.js +201 -0
  734. package/dist/utils/grantValidation.js.map +1 -0
  735. package/dist/utils/grants.cjs +108 -0
  736. package/dist/utils/grants.cjs.map +1 -0
  737. package/dist/utils/grants.d.ts +67 -0
  738. package/dist/utils/grants.js +82 -0
  739. package/dist/utils/grants.js.map +1 -0
  740. package/dist/utils/ipfs.cjs +130 -0
  741. package/dist/utils/ipfs.cjs.map +1 -0
  742. package/dist/utils/ipfs.d.ts +88 -0
  743. package/dist/utils/ipfs.js +99 -0
  744. package/dist/utils/ipfs.js.map +1 -0
  745. package/dist/utils/lazy-import.cjs +38 -0
  746. package/dist/utils/lazy-import.cjs.map +1 -0
  747. package/dist/utils/lazy-import.d.ts +18 -0
  748. package/dist/utils/lazy-import.js +14 -0
  749. package/dist/utils/lazy-import.js.map +1 -0
  750. package/dist/utils/multicall.cjs +233 -0
  751. package/dist/utils/multicall.cjs.map +1 -0
  752. package/dist/utils/multicall.d.ts +126 -0
  753. package/dist/utils/multicall.js +208 -0
  754. package/dist/utils/multicall.js.map +1 -0
  755. package/dist/utils/parseTransactionPojo.cjs +87 -0
  756. package/dist/utils/parseTransactionPojo.cjs.map +1 -0
  757. package/dist/utils/parseTransactionPojo.d.ts +31 -0
  758. package/dist/utils/parseTransactionPojo.js +63 -0
  759. package/dist/utils/parseTransactionPojo.js.map +1 -0
  760. package/dist/utils/schemaValidation.cjs +258 -0
  761. package/dist/utils/schemaValidation.cjs.map +1 -0
  762. package/dist/utils/schemaValidation.d.ts +168 -0
  763. package/dist/utils/schemaValidation.js +219 -0
  764. package/dist/utils/schemaValidation.js.map +1 -0
  765. package/dist/utils/signatureCache.cjs +186 -0
  766. package/dist/utils/signatureCache.cjs.map +1 -0
  767. package/dist/utils/signatureCache.d.ts +131 -0
  768. package/dist/utils/signatureCache.js +161 -0
  769. package/dist/utils/signatureCache.js.map +1 -0
  770. package/dist/utils/signatureFormatter.cjs +42 -0
  771. package/dist/utils/signatureFormatter.cjs.map +1 -0
  772. package/dist/utils/signatureFormatter.d.ts +36 -0
  773. package/dist/utils/signatureFormatter.js +18 -0
  774. package/dist/utils/signatureFormatter.js.map +1 -0
  775. package/dist/utils/tests/multicall.test.d.ts +1 -0
  776. package/dist/utils/transactionHelpers.cjs +54 -0
  777. package/dist/utils/transactionHelpers.cjs.map +1 -0
  778. package/dist/utils/transactionHelpers.d.ts +80 -0
  779. package/dist/utils/transactionHelpers.js +29 -0
  780. package/dist/utils/transactionHelpers.js.map +1 -0
  781. package/dist/utils/typeGuards.cjs +109 -0
  782. package/dist/utils/typeGuards.cjs.map +1 -0
  783. package/dist/utils/typeGuards.d.ts +138 -0
  784. package/dist/utils/typeGuards.js +74 -0
  785. package/dist/utils/typeGuards.js.map +1 -0
  786. package/dist/utils/typedDataConverter.cjs +43 -0
  787. package/dist/utils/typedDataConverter.cjs.map +1 -0
  788. package/dist/utils/typedDataConverter.d.ts +10 -0
  789. package/dist/utils/typedDataConverter.js +19 -0
  790. package/dist/utils/typedDataConverter.js.map +1 -0
  791. package/dist/utils/urlResolver.cjs +55 -0
  792. package/dist/utils/urlResolver.cjs.map +1 -0
  793. package/dist/utils/urlResolver.d.ts +38 -0
  794. package/dist/utils/urlResolver.js +30 -0
  795. package/dist/utils/urlResolver.js.map +1 -0
  796. package/dist/utils/wallet.cjs +62 -0
  797. package/dist/utils/wallet.cjs.map +1 -0
  798. package/dist/utils/wallet.d.ts +32 -0
  799. package/dist/utils/wallet.js +36 -0
  800. package/dist/utils/wallet.js.map +1 -0
  801. package/dist/utils/withEvents.cjs +44 -0
  802. package/dist/utils/withEvents.cjs.map +1 -0
  803. package/dist/utils/withEvents.d.ts +56 -0
  804. package/dist/utils/withEvents.js +18 -0
  805. package/dist/utils/withEvents.js.map +1 -0
  806. package/package.json +74 -37
  807. package/dist/chains.browser.cjs.map +0 -1
  808. package/dist/chains.d.cts +0 -2
  809. package/dist/chains.node.d.cts +0 -2
  810. package/dist/index.d.cts +0 -2
  811. package/dist/platform.d.cts +0 -1
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var browser_exports = {};
30
+ __export(browser_exports, {
31
+ BrowserECIESUint8Provider: () => BrowserECIESUint8Provider
32
+ });
33
+ module.exports = __toCommonJS(browser_exports);
34
+ var secp256k1 = __toESM(require("@noble/secp256k1"), 1);
35
+ var import_base = require("./base");
36
+ var import_viem = require("viem");
37
+ var import_hmac = require("@noble/hashes/hmac");
38
+ var import_sha2 = require("@noble/hashes/sha2");
39
+ class BrowserECIESUint8Provider extends import_base.BaseECIESUint8 {
40
+ generateRandomBytes(length) {
41
+ const bytes = new Uint8Array(length);
42
+ crypto.getRandomValues(bytes);
43
+ return bytes;
44
+ }
45
+ verifyPrivateKey(privateKey) {
46
+ try {
47
+ return secp256k1.utils.isValidPrivateKey(privateKey);
48
+ } catch {
49
+ return false;
50
+ }
51
+ }
52
+ createPublicKey(privateKey, compressed) {
53
+ try {
54
+ return secp256k1.getPublicKey(privateKey, compressed);
55
+ } catch {
56
+ return null;
57
+ }
58
+ }
59
+ validatePublicKey(publicKey) {
60
+ try {
61
+ secp256k1.Point.fromHex(publicKey);
62
+ return true;
63
+ } catch {
64
+ return false;
65
+ }
66
+ }
67
+ decompressPublicKey(publicKey) {
68
+ try {
69
+ const point = secp256k1.Point.fromHex(publicKey);
70
+ return point.toRawBytes(false);
71
+ } catch {
72
+ return null;
73
+ }
74
+ }
75
+ performECDH(publicKey, privateKey) {
76
+ try {
77
+ const sharedPoint = secp256k1.getSharedSecret(
78
+ privateKey,
79
+ publicKey,
80
+ true
81
+ );
82
+ return sharedPoint.slice(1);
83
+ } catch (error) {
84
+ throw new Error(
85
+ `ECDH failed: ${error instanceof Error ? error.message : "Unknown error"}`
86
+ );
87
+ }
88
+ }
89
+ sha512(data) {
90
+ return (0, import_sha2.sha512)(data);
91
+ }
92
+ hmacSha256(key, data) {
93
+ return (0, import_hmac.hmac)(import_sha2.sha256, key, data);
94
+ }
95
+ async aesEncrypt(key, iv, plaintext) {
96
+ const cryptoKey = await crypto.subtle.importKey(
97
+ "raw",
98
+ key,
99
+ { name: "AES-CBC" },
100
+ false,
101
+ ["encrypt"]
102
+ );
103
+ const encrypted = await crypto.subtle.encrypt(
104
+ { name: "AES-CBC", iv },
105
+ cryptoKey,
106
+ plaintext
107
+ );
108
+ return new Uint8Array(encrypted);
109
+ }
110
+ async aesDecrypt(key, iv, ciphertext) {
111
+ const cryptoKey = await crypto.subtle.importKey(
112
+ "raw",
113
+ key,
114
+ { name: "AES-CBC" },
115
+ false,
116
+ ["decrypt"]
117
+ );
118
+ const decrypted = await crypto.subtle.decrypt(
119
+ { name: "AES-CBC", iv },
120
+ cryptoKey,
121
+ ciphertext
122
+ );
123
+ return new Uint8Array(decrypted);
124
+ }
125
+ /**
126
+ * Normalizes a public key to uncompressed format (65 bytes with 0x04 prefix).
127
+ * Handles compressed (33 bytes) and uncompressed (65 bytes) formats only.
128
+ *
129
+ * @remarks
130
+ * Strict policy: Does not accept 64-byte raw coordinates to avoid masking
131
+ * malformed data. Callers must provide properly formatted keys.
132
+ *
133
+ * @param publicKey - The public key to normalize (33 or 65 bytes)
134
+ * @returns The normalized uncompressed public key (65 bytes)
135
+ * @throws {Error} When public key format is invalid or decompression fails
136
+ */
137
+ normalizeToUncompressed(publicKey) {
138
+ const len = publicKey.length;
139
+ if (len === 65 && publicKey[0] === 4) {
140
+ return publicKey;
141
+ }
142
+ if (len === 33 && (publicKey[0] === 2 || publicKey[0] === 3)) {
143
+ const decompressed = this.decompressPublicKey(publicKey);
144
+ if (!decompressed) {
145
+ throw new Error(
146
+ `Failed to decompress public key with prefix ${(0, import_viem.toHex)(publicKey[0])}`
147
+ );
148
+ }
149
+ return decompressed;
150
+ }
151
+ if (len === 64) {
152
+ throw new Error(
153
+ "Raw public key coordinates (64 bytes) are not accepted. Please provide a properly formatted compressed (33 bytes) or uncompressed (65 bytes) public key."
154
+ );
155
+ }
156
+ throw new Error(
157
+ `Invalid public key format: expected compressed (33 bytes) or uncompressed (65 bytes), got ${len} bytes`
158
+ );
159
+ }
160
+ }
161
+ // Annotate the CommonJS export names for ESM import in node:
162
+ 0 && (module.exports = {
163
+ BrowserECIESUint8Provider
164
+ });
165
+ //# sourceMappingURL=browser.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/crypto/ecies/browser.ts"],"sourcesContent":["/**\n * Browser implementation of ECIES using @noble/secp256k1 with Uint8Array\n *\n * @remarks\n * Uses native browser crypto APIs and @noble/secp256k1 for elliptic curve operations.\n * This implementation is polyfill-free and works in all modern browsers.\n */\n\nimport * as secp256k1 from \"@noble/secp256k1\";\nimport { BaseECIESUint8 } from \"./base\";\nimport { toHex } from \"viem\";\nimport { hmac } from \"@noble/hashes/hmac\";\nimport { sha256, sha512 as nobleSha512 } from \"@noble/hashes/sha2\";\n\n/**\n * Browser-specific ECIES provider using @noble/secp256k1\n *\n * @remarks\n * This implementation uses:\n * - Web Crypto API for AES operations\n * - @noble/secp256k1 for elliptic curve operations\n * - @noble/hashes for SHA and HMAC operations\n * - No Buffer or Node.js dependencies\n */\nexport class BrowserECIESUint8Provider extends BaseECIESUint8 {\n protected generateRandomBytes(length: number): Uint8Array {\n const bytes = new Uint8Array(length);\n crypto.getRandomValues(bytes);\n return bytes;\n }\n\n protected verifyPrivateKey(privateKey: Uint8Array): boolean {\n try {\n return secp256k1.utils.isValidPrivateKey(privateKey);\n } catch {\n return false;\n }\n }\n\n protected createPublicKey(\n privateKey: Uint8Array,\n compressed: boolean,\n ): Uint8Array | null {\n try {\n return secp256k1.getPublicKey(privateKey, compressed);\n } catch {\n return null;\n }\n }\n\n protected validatePublicKey(publicKey: Uint8Array): boolean {\n try {\n // @noble/secp256k1 will throw if the point is not on the curve\n secp256k1.Point.fromHex(publicKey);\n return true;\n } catch {\n return false;\n }\n }\n\n protected decompressPublicKey(publicKey: Uint8Array): Uint8Array | null {\n try {\n // @noble/secp256k1 handles both compressed and uncompressed\n const point = secp256k1.Point.fromHex(publicKey);\n return point.toRawBytes(false); // false = uncompressed\n } catch {\n return null;\n }\n }\n\n protected performECDH(\n publicKey: Uint8Array,\n privateKey: Uint8Array,\n ): Uint8Array {\n try {\n // Use @noble/secp256k1's getSharedSecret which is optimized and secure\n // The 'true' parameter returns the raw x-coordinate (32 bytes)\n // This matches eccrypto's behavior\n const sharedPoint = secp256k1.getSharedSecret(\n privateKey,\n publicKey,\n true,\n );\n\n // getSharedSecret returns compressed point (33 bytes) when true\n // We need just the x-coordinate (32 bytes) for eccrypto compatibility\n // Remove the prefix byte\n return sharedPoint.slice(1);\n } catch (error) {\n throw new Error(\n `ECDH failed: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n }\n\n protected sha512(data: Uint8Array): Uint8Array {\n return nobleSha512(data);\n }\n\n protected hmacSha256(key: Uint8Array, data: Uint8Array): Uint8Array {\n return hmac(sha256, key, data);\n }\n\n protected async aesEncrypt(\n key: Uint8Array,\n iv: Uint8Array,\n plaintext: Uint8Array,\n ): Promise<Uint8Array> {\n // Import the key for AES-CBC\n const cryptoKey = await crypto.subtle.importKey(\n \"raw\",\n key as BufferSource,\n { name: \"AES-CBC\" },\n false,\n [\"encrypt\"],\n );\n\n // Encrypt with Web Crypto API\n // Note: Web Crypto API automatically handles PKCS#7 padding for AES-CBC\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CBC\", iv: iv as BufferSource },\n cryptoKey,\n plaintext as BufferSource,\n );\n\n return new Uint8Array(encrypted);\n }\n\n protected async aesDecrypt(\n key: Uint8Array,\n iv: Uint8Array,\n ciphertext: Uint8Array,\n ): Promise<Uint8Array> {\n // Import the key for AES-CBC\n const cryptoKey = await crypto.subtle.importKey(\n \"raw\",\n key as BufferSource,\n { name: \"AES-CBC\" },\n false,\n [\"decrypt\"],\n );\n\n // Decrypt with Web Crypto API\n // Note: Web Crypto API automatically handles PKCS#7 padding removal\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CBC\", iv: iv as BufferSource },\n cryptoKey,\n ciphertext as BufferSource,\n );\n\n return new Uint8Array(decrypted);\n }\n\n /**\n * Normalizes a public key to uncompressed format (65 bytes with 0x04 prefix).\n * Handles compressed (33 bytes) and uncompressed (65 bytes) formats only.\n *\n * @remarks\n * Strict policy: Does not accept 64-byte raw coordinates to avoid masking\n * malformed data. Callers must provide properly formatted keys.\n *\n * @param publicKey - The public key to normalize (33 or 65 bytes)\n * @returns The normalized uncompressed public key (65 bytes)\n * @throws {Error} When public key format is invalid or decompression fails\n */\n normalizeToUncompressed(publicKey: Uint8Array): Uint8Array {\n const len = publicKey.length;\n\n // Already uncompressed\n if (len === 65 && publicKey[0] === 0x04) {\n return publicKey;\n }\n\n // Compressed - decompress using @noble/secp256k1\n if (len === 33 && (publicKey[0] === 0x02 || publicKey[0] === 0x03)) {\n const decompressed = this.decompressPublicKey(publicKey);\n if (!decompressed) {\n throw new Error(\n `Failed to decompress public key with prefix ${toHex(publicKey[0])}`,\n );\n }\n return decompressed;\n }\n\n // Reject raw coordinates (64 bytes) - require proper formatting\n if (len === 64) {\n throw new Error(\n \"Raw public key coordinates (64 bytes) are not accepted. \" +\n \"Please provide a properly formatted compressed (33 bytes) or uncompressed (65 bytes) public key.\",\n );\n }\n\n throw new Error(\n `Invalid public key format: expected compressed (33 bytes) or uncompressed (65 bytes), got ${len} bytes`,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,gBAA2B;AAC3B,kBAA+B;AAC/B,kBAAsB;AACtB,kBAAqB;AACrB,kBAA8C;AAYvC,MAAM,kCAAkC,2BAAe;AAAA,EAClD,oBAAoB,QAA4B;AACxD,UAAM,QAAQ,IAAI,WAAW,MAAM;AACnC,WAAO,gBAAgB,KAAK;AAC5B,WAAO;AAAA,EACT;AAAA,EAEU,iBAAiB,YAAiC;AAC1D,QAAI;AACF,aAAO,UAAU,MAAM,kBAAkB,UAAU;AAAA,IACrD,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEU,gBACR,YACA,YACmB;AACnB,QAAI;AACF,aAAO,UAAU,aAAa,YAAY,UAAU;AAAA,IACtD,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEU,kBAAkB,WAAgC;AAC1D,QAAI;AAEF,gBAAU,MAAM,QAAQ,SAAS;AACjC,aAAO;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEU,oBAAoB,WAA0C;AACtE,QAAI;AAEF,YAAM,QAAQ,UAAU,MAAM,QAAQ,SAAS;AAC/C,aAAO,MAAM,WAAW,KAAK;AAAA,IAC/B,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEU,YACR,WACA,YACY;AACZ,QAAI;AAIF,YAAM,cAAc,UAAU;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAKA,aAAO,YAAY,MAAM,CAAC;AAAA,IAC5B,SAAS,OAAO;AACd,YAAM,IAAI;AAAA,QACR,gBAAgB,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,MAC1E;AAAA,IACF;AAAA,EACF;AAAA,EAEU,OAAO,MAA8B;AAC7C,eAAO,YAAAA,QAAY,IAAI;AAAA,EACzB;AAAA,EAEU,WAAW,KAAiB,MAA8B;AAClE,eAAO,kBAAK,oBAAQ,KAAK,IAAI;AAAA,EAC/B;AAAA,EAEA,MAAgB,WACd,KACA,IACA,WACqB;AAErB,UAAM,YAAY,MAAM,OAAO,OAAO;AAAA,MACpC;AAAA,MACA;AAAA,MACA,EAAE,MAAM,UAAU;AAAA,MAClB;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AAIA,UAAM,YAAY,MAAM,OAAO,OAAO;AAAA,MACpC,EAAE,MAAM,WAAW,GAAuB;AAAA,MAC1C;AAAA,MACA;AAAA,IACF;AAEA,WAAO,IAAI,WAAW,SAAS;AAAA,EACjC;AAAA,EAEA,MAAgB,WACd,KACA,IACA,YACqB;AAErB,UAAM,YAAY,MAAM,OAAO,OAAO;AAAA,MACpC;AAAA,MACA;AAAA,MACA,EAAE,MAAM,UAAU;AAAA,MAClB;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AAIA,UAAM,YAAY,MAAM,OAAO,OAAO;AAAA,MACpC,EAAE,MAAM,WAAW,GAAuB;AAAA,MAC1C;AAAA,MACA;AAAA,IACF;AAEA,WAAO,IAAI,WAAW,SAAS;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,wBAAwB,WAAmC;AACzD,UAAM,MAAM,UAAU;AAGtB,QAAI,QAAQ,MAAM,UAAU,CAAC,MAAM,GAAM;AACvC,aAAO;AAAA,IACT;AAGA,QAAI,QAAQ,OAAO,UAAU,CAAC,MAAM,KAAQ,UAAU,CAAC,MAAM,IAAO;AAClE,YAAM,eAAe,KAAK,oBAAoB,SAAS;AACvD,UAAI,CAAC,cAAc;AACjB,cAAM,IAAI;AAAA,UACR,mDAA+C,mBAAM,UAAU,CAAC,CAAC,CAAC;AAAA,QACpE;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAGA,QAAI,QAAQ,IAAI;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MAEF;AAAA,IACF;AAEA,UAAM,IAAI;AAAA,MACR,6FAA6F,GAAG;AAAA,IAClG;AAAA,EACF;AACF;","names":["nobleSha512"]}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Browser implementation of ECIES using @noble/secp256k1 with Uint8Array
3
+ *
4
+ * @remarks
5
+ * Uses native browser crypto APIs and @noble/secp256k1 for elliptic curve operations.
6
+ * This implementation is polyfill-free and works in all modern browsers.
7
+ */
8
+ import { BaseECIESUint8 } from "./base";
9
+ /**
10
+ * Browser-specific ECIES provider using @noble/secp256k1
11
+ *
12
+ * @remarks
13
+ * This implementation uses:
14
+ * - Web Crypto API for AES operations
15
+ * - @noble/secp256k1 for elliptic curve operations
16
+ * - @noble/hashes for SHA and HMAC operations
17
+ * - No Buffer or Node.js dependencies
18
+ */
19
+ export declare class BrowserECIESUint8Provider extends BaseECIESUint8 {
20
+ protected generateRandomBytes(length: number): Uint8Array;
21
+ protected verifyPrivateKey(privateKey: Uint8Array): boolean;
22
+ protected createPublicKey(privateKey: Uint8Array, compressed: boolean): Uint8Array | null;
23
+ protected validatePublicKey(publicKey: Uint8Array): boolean;
24
+ protected decompressPublicKey(publicKey: Uint8Array): Uint8Array | null;
25
+ protected performECDH(publicKey: Uint8Array, privateKey: Uint8Array): Uint8Array;
26
+ protected sha512(data: Uint8Array): Uint8Array;
27
+ protected hmacSha256(key: Uint8Array, data: Uint8Array): Uint8Array;
28
+ protected aesEncrypt(key: Uint8Array, iv: Uint8Array, plaintext: Uint8Array): Promise<Uint8Array>;
29
+ protected aesDecrypt(key: Uint8Array, iv: Uint8Array, ciphertext: Uint8Array): Promise<Uint8Array>;
30
+ /**
31
+ * Normalizes a public key to uncompressed format (65 bytes with 0x04 prefix).
32
+ * Handles compressed (33 bytes) and uncompressed (65 bytes) formats only.
33
+ *
34
+ * @remarks
35
+ * Strict policy: Does not accept 64-byte raw coordinates to avoid masking
36
+ * malformed data. Callers must provide properly formatted keys.
37
+ *
38
+ * @param publicKey - The public key to normalize (33 or 65 bytes)
39
+ * @returns The normalized uncompressed public key (65 bytes)
40
+ * @throws {Error} When public key format is invalid or decompression fails
41
+ */
42
+ normalizeToUncompressed(publicKey: Uint8Array): Uint8Array;
43
+ }
@@ -0,0 +1,131 @@
1
+ import * as secp256k1 from "@noble/secp256k1";
2
+ import { BaseECIESUint8 } from "./base";
3
+ import { toHex } from "viem";
4
+ import { hmac } from "@noble/hashes/hmac";
5
+ import { sha256, sha512 as nobleSha512 } from "@noble/hashes/sha2";
6
+ class BrowserECIESUint8Provider extends BaseECIESUint8 {
7
+ generateRandomBytes(length) {
8
+ const bytes = new Uint8Array(length);
9
+ crypto.getRandomValues(bytes);
10
+ return bytes;
11
+ }
12
+ verifyPrivateKey(privateKey) {
13
+ try {
14
+ return secp256k1.utils.isValidPrivateKey(privateKey);
15
+ } catch {
16
+ return false;
17
+ }
18
+ }
19
+ createPublicKey(privateKey, compressed) {
20
+ try {
21
+ return secp256k1.getPublicKey(privateKey, compressed);
22
+ } catch {
23
+ return null;
24
+ }
25
+ }
26
+ validatePublicKey(publicKey) {
27
+ try {
28
+ secp256k1.Point.fromHex(publicKey);
29
+ return true;
30
+ } catch {
31
+ return false;
32
+ }
33
+ }
34
+ decompressPublicKey(publicKey) {
35
+ try {
36
+ const point = secp256k1.Point.fromHex(publicKey);
37
+ return point.toRawBytes(false);
38
+ } catch {
39
+ return null;
40
+ }
41
+ }
42
+ performECDH(publicKey, privateKey) {
43
+ try {
44
+ const sharedPoint = secp256k1.getSharedSecret(
45
+ privateKey,
46
+ publicKey,
47
+ true
48
+ );
49
+ return sharedPoint.slice(1);
50
+ } catch (error) {
51
+ throw new Error(
52
+ `ECDH failed: ${error instanceof Error ? error.message : "Unknown error"}`
53
+ );
54
+ }
55
+ }
56
+ sha512(data) {
57
+ return nobleSha512(data);
58
+ }
59
+ hmacSha256(key, data) {
60
+ return hmac(sha256, key, data);
61
+ }
62
+ async aesEncrypt(key, iv, plaintext) {
63
+ const cryptoKey = await crypto.subtle.importKey(
64
+ "raw",
65
+ key,
66
+ { name: "AES-CBC" },
67
+ false,
68
+ ["encrypt"]
69
+ );
70
+ const encrypted = await crypto.subtle.encrypt(
71
+ { name: "AES-CBC", iv },
72
+ cryptoKey,
73
+ plaintext
74
+ );
75
+ return new Uint8Array(encrypted);
76
+ }
77
+ async aesDecrypt(key, iv, ciphertext) {
78
+ const cryptoKey = await crypto.subtle.importKey(
79
+ "raw",
80
+ key,
81
+ { name: "AES-CBC" },
82
+ false,
83
+ ["decrypt"]
84
+ );
85
+ const decrypted = await crypto.subtle.decrypt(
86
+ { name: "AES-CBC", iv },
87
+ cryptoKey,
88
+ ciphertext
89
+ );
90
+ return new Uint8Array(decrypted);
91
+ }
92
+ /**
93
+ * Normalizes a public key to uncompressed format (65 bytes with 0x04 prefix).
94
+ * Handles compressed (33 bytes) and uncompressed (65 bytes) formats only.
95
+ *
96
+ * @remarks
97
+ * Strict policy: Does not accept 64-byte raw coordinates to avoid masking
98
+ * malformed data. Callers must provide properly formatted keys.
99
+ *
100
+ * @param publicKey - The public key to normalize (33 or 65 bytes)
101
+ * @returns The normalized uncompressed public key (65 bytes)
102
+ * @throws {Error} When public key format is invalid or decompression fails
103
+ */
104
+ normalizeToUncompressed(publicKey) {
105
+ const len = publicKey.length;
106
+ if (len === 65 && publicKey[0] === 4) {
107
+ return publicKey;
108
+ }
109
+ if (len === 33 && (publicKey[0] === 2 || publicKey[0] === 3)) {
110
+ const decompressed = this.decompressPublicKey(publicKey);
111
+ if (!decompressed) {
112
+ throw new Error(
113
+ `Failed to decompress public key with prefix ${toHex(publicKey[0])}`
114
+ );
115
+ }
116
+ return decompressed;
117
+ }
118
+ if (len === 64) {
119
+ throw new Error(
120
+ "Raw public key coordinates (64 bytes) are not accepted. Please provide a properly formatted compressed (33 bytes) or uncompressed (65 bytes) public key."
121
+ );
122
+ }
123
+ throw new Error(
124
+ `Invalid public key format: expected compressed (33 bytes) or uncompressed (65 bytes), got ${len} bytes`
125
+ );
126
+ }
127
+ }
128
+ export {
129
+ BrowserECIESUint8Provider
130
+ };
131
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/crypto/ecies/browser.ts"],"sourcesContent":["/**\n * Browser implementation of ECIES using @noble/secp256k1 with Uint8Array\n *\n * @remarks\n * Uses native browser crypto APIs and @noble/secp256k1 for elliptic curve operations.\n * This implementation is polyfill-free and works in all modern browsers.\n */\n\nimport * as secp256k1 from \"@noble/secp256k1\";\nimport { BaseECIESUint8 } from \"./base\";\nimport { toHex } from \"viem\";\nimport { hmac } from \"@noble/hashes/hmac\";\nimport { sha256, sha512 as nobleSha512 } from \"@noble/hashes/sha2\";\n\n/**\n * Browser-specific ECIES provider using @noble/secp256k1\n *\n * @remarks\n * This implementation uses:\n * - Web Crypto API for AES operations\n * - @noble/secp256k1 for elliptic curve operations\n * - @noble/hashes for SHA and HMAC operations\n * - No Buffer or Node.js dependencies\n */\nexport class BrowserECIESUint8Provider extends BaseECIESUint8 {\n protected generateRandomBytes(length: number): Uint8Array {\n const bytes = new Uint8Array(length);\n crypto.getRandomValues(bytes);\n return bytes;\n }\n\n protected verifyPrivateKey(privateKey: Uint8Array): boolean {\n try {\n return secp256k1.utils.isValidPrivateKey(privateKey);\n } catch {\n return false;\n }\n }\n\n protected createPublicKey(\n privateKey: Uint8Array,\n compressed: boolean,\n ): Uint8Array | null {\n try {\n return secp256k1.getPublicKey(privateKey, compressed);\n } catch {\n return null;\n }\n }\n\n protected validatePublicKey(publicKey: Uint8Array): boolean {\n try {\n // @noble/secp256k1 will throw if the point is not on the curve\n secp256k1.Point.fromHex(publicKey);\n return true;\n } catch {\n return false;\n }\n }\n\n protected decompressPublicKey(publicKey: Uint8Array): Uint8Array | null {\n try {\n // @noble/secp256k1 handles both compressed and uncompressed\n const point = secp256k1.Point.fromHex(publicKey);\n return point.toRawBytes(false); // false = uncompressed\n } catch {\n return null;\n }\n }\n\n protected performECDH(\n publicKey: Uint8Array,\n privateKey: Uint8Array,\n ): Uint8Array {\n try {\n // Use @noble/secp256k1's getSharedSecret which is optimized and secure\n // The 'true' parameter returns the raw x-coordinate (32 bytes)\n // This matches eccrypto's behavior\n const sharedPoint = secp256k1.getSharedSecret(\n privateKey,\n publicKey,\n true,\n );\n\n // getSharedSecret returns compressed point (33 bytes) when true\n // We need just the x-coordinate (32 bytes) for eccrypto compatibility\n // Remove the prefix byte\n return sharedPoint.slice(1);\n } catch (error) {\n throw new Error(\n `ECDH failed: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n }\n\n protected sha512(data: Uint8Array): Uint8Array {\n return nobleSha512(data);\n }\n\n protected hmacSha256(key: Uint8Array, data: Uint8Array): Uint8Array {\n return hmac(sha256, key, data);\n }\n\n protected async aesEncrypt(\n key: Uint8Array,\n iv: Uint8Array,\n plaintext: Uint8Array,\n ): Promise<Uint8Array> {\n // Import the key for AES-CBC\n const cryptoKey = await crypto.subtle.importKey(\n \"raw\",\n key as BufferSource,\n { name: \"AES-CBC\" },\n false,\n [\"encrypt\"],\n );\n\n // Encrypt with Web Crypto API\n // Note: Web Crypto API automatically handles PKCS#7 padding for AES-CBC\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CBC\", iv: iv as BufferSource },\n cryptoKey,\n plaintext as BufferSource,\n );\n\n return new Uint8Array(encrypted);\n }\n\n protected async aesDecrypt(\n key: Uint8Array,\n iv: Uint8Array,\n ciphertext: Uint8Array,\n ): Promise<Uint8Array> {\n // Import the key for AES-CBC\n const cryptoKey = await crypto.subtle.importKey(\n \"raw\",\n key as BufferSource,\n { name: \"AES-CBC\" },\n false,\n [\"decrypt\"],\n );\n\n // Decrypt with Web Crypto API\n // Note: Web Crypto API automatically handles PKCS#7 padding removal\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CBC\", iv: iv as BufferSource },\n cryptoKey,\n ciphertext as BufferSource,\n );\n\n return new Uint8Array(decrypted);\n }\n\n /**\n * Normalizes a public key to uncompressed format (65 bytes with 0x04 prefix).\n * Handles compressed (33 bytes) and uncompressed (65 bytes) formats only.\n *\n * @remarks\n * Strict policy: Does not accept 64-byte raw coordinates to avoid masking\n * malformed data. Callers must provide properly formatted keys.\n *\n * @param publicKey - The public key to normalize (33 or 65 bytes)\n * @returns The normalized uncompressed public key (65 bytes)\n * @throws {Error} When public key format is invalid or decompression fails\n */\n normalizeToUncompressed(publicKey: Uint8Array): Uint8Array {\n const len = publicKey.length;\n\n // Already uncompressed\n if (len === 65 && publicKey[0] === 0x04) {\n return publicKey;\n }\n\n // Compressed - decompress using @noble/secp256k1\n if (len === 33 && (publicKey[0] === 0x02 || publicKey[0] === 0x03)) {\n const decompressed = this.decompressPublicKey(publicKey);\n if (!decompressed) {\n throw new Error(\n `Failed to decompress public key with prefix ${toHex(publicKey[0])}`,\n );\n }\n return decompressed;\n }\n\n // Reject raw coordinates (64 bytes) - require proper formatting\n if (len === 64) {\n throw new Error(\n \"Raw public key coordinates (64 bytes) are not accepted. \" +\n \"Please provide a properly formatted compressed (33 bytes) or uncompressed (65 bytes) public key.\",\n );\n }\n\n throw new Error(\n `Invalid public key format: expected compressed (33 bytes) or uncompressed (65 bytes), got ${len} bytes`,\n );\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,131 @@
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 constants_exports = {};
20
+ __export(constants_exports, {
21
+ CIPHER: () => CIPHER,
22
+ CURVE: () => CURVE,
23
+ FORMAT: () => FORMAT,
24
+ KDF: () => KDF,
25
+ MAC: () => MAC,
26
+ SECURITY: () => SECURITY,
27
+ VALIDATION: () => VALIDATION
28
+ });
29
+ module.exports = __toCommonJS(constants_exports);
30
+ const CURVE = {
31
+ /** The elliptic curve used (secp256k1 - same as Bitcoin/Ethereum) */
32
+ name: "secp256k1",
33
+ /** Private key length in bytes */
34
+ PRIVATE_KEY_LENGTH: 32,
35
+ /** Compressed public key length in bytes (0x02 or 0x03 prefix + 32 bytes) */
36
+ COMPRESSED_PUBLIC_KEY_LENGTH: 33,
37
+ /** Uncompressed public key length in bytes (0x04 prefix + 64 bytes) */
38
+ UNCOMPRESSED_PUBLIC_KEY_LENGTH: 65,
39
+ /** ECDH shared secret X coordinate length */
40
+ SHARED_SECRET_LENGTH: 32,
41
+ /** Public key prefixes */
42
+ PREFIX: {
43
+ /** Uncompressed public key prefix */
44
+ UNCOMPRESSED: 4,
45
+ /** Compressed public key prefix for even Y */
46
+ COMPRESSED_EVEN: 2,
47
+ /** Compressed public key prefix for odd Y */
48
+ COMPRESSED_ODD: 3
49
+ },
50
+ /** X coordinate starts at byte 1 (after prefix) */
51
+ X_COORDINATE_OFFSET: 1,
52
+ /** X coordinate ends at byte 33 (1 + 32) */
53
+ X_COORDINATE_END: 33
54
+ };
55
+ const CIPHER = {
56
+ /** Cipher algorithm - must match eccrypto */
57
+ algorithm: "aes-256-cbc",
58
+ /** AES key length in bytes */
59
+ KEY_LENGTH: 32,
60
+ /** Initialization vector length in bytes */
61
+ IV_LENGTH: 16,
62
+ /** Block size for AES */
63
+ BLOCK_SIZE: 16
64
+ };
65
+ const KDF = {
66
+ /** Hash algorithm for key derivation - must match eccrypto */
67
+ algorithm: "sha512",
68
+ /** Output length of SHA-512 in bytes */
69
+ OUTPUT_LENGTH: 64,
70
+ /** Encryption key slice (first 32 bytes of KDF output) */
71
+ ENCRYPTION_KEY_OFFSET: 0,
72
+ ENCRYPTION_KEY_LENGTH: 32,
73
+ /** MAC key slice (last 32 bytes of KDF output) */
74
+ MAC_KEY_OFFSET: 32,
75
+ MAC_KEY_LENGTH: 32
76
+ };
77
+ const MAC = {
78
+ /** MAC algorithm - must match eccrypto */
79
+ algorithm: "sha256",
80
+ /** HMAC-SHA256 output length in bytes */
81
+ LENGTH: 32
82
+ };
83
+ const FORMAT = {
84
+ /** Offsets for each component in serialized format */
85
+ IV_OFFSET: 0,
86
+ IV_LENGTH: CIPHER.IV_LENGTH,
87
+ /** Ephemeral public key (always uncompressed in eccrypto format) */
88
+ EPHEMERAL_KEY_OFFSET: CIPHER.IV_LENGTH,
89
+ EPHEMERAL_KEY_LENGTH: CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH,
90
+ /** Ciphertext starts after IV and ephemeral key */
91
+ CIPHERTEXT_OFFSET: CIPHER.IV_LENGTH + CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH,
92
+ /** MAC is always the last 32 bytes */
93
+ MAC_LENGTH: MAC.LENGTH,
94
+ /** Minimum size of encrypted data (IV + ephemKey + MAC, no ciphertext) */
95
+ MIN_ENCRYPTED_LENGTH: CIPHER.IV_LENGTH + CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH + MAC.LENGTH,
96
+ /**
97
+ * Helper to calculate total length of encrypted data
98
+ *
99
+ * @param ciphertextLength - Length of the ciphertext portion
100
+ * @returns Total length including all components
101
+ */
102
+ getTotalLength: (ciphertextLength) => CIPHER.IV_LENGTH + CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH + ciphertextLength + MAC.LENGTH
103
+ };
104
+ const SECURITY = {
105
+ /** Overwrite patterns for secure data clearing */
106
+ CLEAR_PATTERNS: {
107
+ ZEROS: 0,
108
+ ONES: 255,
109
+ /** Pattern multiplier for third pass */
110
+ PATTERN_MULTIPLIER: 7,
111
+ /** Pattern offset for third pass */
112
+ PATTERN_OFFSET: 13
113
+ }
114
+ };
115
+ const VALIDATION = {
116
+ isValidPrivateKey: (key) => key.length === CURVE.PRIVATE_KEY_LENGTH,
117
+ isValidPublicKey: (key) => key.length === CURVE.COMPRESSED_PUBLIC_KEY_LENGTH || key.length === CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH,
118
+ isCompressedPublicKey: (key) => key.length === CURVE.COMPRESSED_PUBLIC_KEY_LENGTH && (key[0] === CURVE.PREFIX.COMPRESSED_EVEN || key[0] === CURVE.PREFIX.COMPRESSED_ODD),
119
+ isUncompressedPublicKey: (key) => key.length === CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH && key[0] === CURVE.PREFIX.UNCOMPRESSED
120
+ };
121
+ // Annotate the CommonJS export names for ESM import in node:
122
+ 0 && (module.exports = {
123
+ CIPHER,
124
+ CURVE,
125
+ FORMAT,
126
+ KDF,
127
+ MAC,
128
+ SECURITY,
129
+ VALIDATION
130
+ });
131
+ //# sourceMappingURL=constants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/crypto/ecies/constants.ts"],"sourcesContent":["/**\n * ECIES Constants and Format Specification\n *\n * These constants define the eccrypto-compatible ECIES format used throughout the SDK.\n * Maintaining these exact values ensures backward compatibility with data encrypted\n * using the original eccrypto library.\n */\n\n/**\n * Elliptic curve parameters\n */\nexport const CURVE = {\n /** The elliptic curve used (secp256k1 - same as Bitcoin/Ethereum) */\n name: \"secp256k1\",\n /** Private key length in bytes */\n PRIVATE_KEY_LENGTH: 32,\n /** Compressed public key length in bytes (0x02 or 0x03 prefix + 32 bytes) */\n COMPRESSED_PUBLIC_KEY_LENGTH: 33,\n /** Uncompressed public key length in bytes (0x04 prefix + 64 bytes) */\n UNCOMPRESSED_PUBLIC_KEY_LENGTH: 65,\n /** ECDH shared secret X coordinate length */\n SHARED_SECRET_LENGTH: 32,\n /** Public key prefixes */\n PREFIX: {\n /** Uncompressed public key prefix */\n UNCOMPRESSED: 0x04,\n /** Compressed public key prefix for even Y */\n COMPRESSED_EVEN: 0x02,\n /** Compressed public key prefix for odd Y */\n COMPRESSED_ODD: 0x03,\n },\n /** X coordinate starts at byte 1 (after prefix) */\n X_COORDINATE_OFFSET: 1,\n /** X coordinate ends at byte 33 (1 + 32) */\n X_COORDINATE_END: 33,\n} as const;\n\n/**\n * Symmetric encryption parameters (AES-256-CBC)\n */\nexport const CIPHER = {\n /** Cipher algorithm - must match eccrypto */\n algorithm: \"aes-256-cbc\",\n /** AES key length in bytes */\n KEY_LENGTH: 32,\n /** Initialization vector length in bytes */\n IV_LENGTH: 16,\n /** Block size for AES */\n BLOCK_SIZE: 16,\n} as const;\n\n/**\n * Key derivation function parameters\n */\nexport const KDF = {\n /** Hash algorithm for key derivation - must match eccrypto */\n algorithm: \"sha512\",\n /** Output length of SHA-512 in bytes */\n OUTPUT_LENGTH: 64,\n /** Encryption key slice (first 32 bytes of KDF output) */\n ENCRYPTION_KEY_OFFSET: 0,\n ENCRYPTION_KEY_LENGTH: 32,\n /** MAC key slice (last 32 bytes of KDF output) */\n MAC_KEY_OFFSET: 32,\n MAC_KEY_LENGTH: 32,\n} as const;\n\n/**\n * Message authentication code parameters\n */\nexport const MAC = {\n /** MAC algorithm - must match eccrypto */\n algorithm: \"sha256\",\n /** HMAC-SHA256 output length in bytes */\n LENGTH: 32,\n} as const;\n\n/**\n * ECIES encrypted data format offsets and lengths\n * Format: [iv(16)][ephemPublicKey(65)][ciphertext(variable)][mac(32)]\n */\nexport const FORMAT = {\n /** Offsets for each component in serialized format */\n IV_OFFSET: 0,\n IV_LENGTH: CIPHER.IV_LENGTH,\n\n /** Ephemeral public key (always uncompressed in eccrypto format) */\n EPHEMERAL_KEY_OFFSET: CIPHER.IV_LENGTH,\n EPHEMERAL_KEY_LENGTH: CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH,\n\n /** Ciphertext starts after IV and ephemeral key */\n CIPHERTEXT_OFFSET: CIPHER.IV_LENGTH + CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH,\n\n /** MAC is always the last 32 bytes */\n MAC_LENGTH: MAC.LENGTH,\n\n /** Minimum size of encrypted data (IV + ephemKey + MAC, no ciphertext) */\n MIN_ENCRYPTED_LENGTH:\n CIPHER.IV_LENGTH + CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH + MAC.LENGTH,\n\n /**\n * Helper to calculate total length of encrypted data\n *\n * @param ciphertextLength - Length of the ciphertext portion\n * @returns Total length including all components\n */\n getTotalLength: (ciphertextLength: number) =>\n CIPHER.IV_LENGTH +\n CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH +\n ciphertextLength +\n MAC.LENGTH,\n} as const;\n\n/**\n * Security constants for data clearing\n */\nexport const SECURITY = {\n /** Overwrite patterns for secure data clearing */\n CLEAR_PATTERNS: {\n ZEROS: 0x00,\n ONES: 0xff,\n /** Pattern multiplier for third pass */\n PATTERN_MULTIPLIER: 7,\n /** Pattern offset for third pass */\n PATTERN_OFFSET: 13,\n },\n} as const;\n\n/**\n * Validation helpers\n */\nexport const VALIDATION = {\n isValidPrivateKey: (key: Uint8Array): boolean =>\n key.length === CURVE.PRIVATE_KEY_LENGTH,\n\n isValidPublicKey: (key: Uint8Array): boolean =>\n key.length === CURVE.COMPRESSED_PUBLIC_KEY_LENGTH ||\n key.length === CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH,\n\n isCompressedPublicKey: (key: Uint8Array): boolean =>\n key.length === CURVE.COMPRESSED_PUBLIC_KEY_LENGTH &&\n (key[0] === CURVE.PREFIX.COMPRESSED_EVEN ||\n key[0] === CURVE.PREFIX.COMPRESSED_ODD),\n\n isUncompressedPublicKey: (key: Uint8Array): boolean =>\n key.length === CURVE.UNCOMPRESSED_PUBLIC_KEY_LENGTH &&\n key[0] === CURVE.PREFIX.UNCOMPRESSED,\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,QAAQ;AAAA;AAAA,EAEnB,MAAM;AAAA;AAAA,EAEN,oBAAoB;AAAA;AAAA,EAEpB,8BAA8B;AAAA;AAAA,EAE9B,gCAAgC;AAAA;AAAA,EAEhC,sBAAsB;AAAA;AAAA,EAEtB,QAAQ;AAAA;AAAA,IAEN,cAAc;AAAA;AAAA,IAEd,iBAAiB;AAAA;AAAA,IAEjB,gBAAgB;AAAA,EAClB;AAAA;AAAA,EAEA,qBAAqB;AAAA;AAAA,EAErB,kBAAkB;AACpB;AAKO,MAAM,SAAS;AAAA;AAAA,EAEpB,WAAW;AAAA;AAAA,EAEX,YAAY;AAAA;AAAA,EAEZ,WAAW;AAAA;AAAA,EAEX,YAAY;AACd;AAKO,MAAM,MAAM;AAAA;AAAA,EAEjB,WAAW;AAAA;AAAA,EAEX,eAAe;AAAA;AAAA,EAEf,uBAAuB;AAAA,EACvB,uBAAuB;AAAA;AAAA,EAEvB,gBAAgB;AAAA,EAChB,gBAAgB;AAClB;AAKO,MAAM,MAAM;AAAA;AAAA,EAEjB,WAAW;AAAA;AAAA,EAEX,QAAQ;AACV;AAMO,MAAM,SAAS;AAAA;AAAA,EAEpB,WAAW;AAAA,EACX,WAAW,OAAO;AAAA;AAAA,EAGlB,sBAAsB,OAAO;AAAA,EAC7B,sBAAsB,MAAM;AAAA;AAAA,EAG5B,mBAAmB,OAAO,YAAY,MAAM;AAAA;AAAA,EAG5C,YAAY,IAAI;AAAA;AAAA,EAGhB,sBACE,OAAO,YAAY,MAAM,iCAAiC,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhE,gBAAgB,CAAC,qBACf,OAAO,YACP,MAAM,iCACN,mBACA,IAAI;AACR;AAKO,MAAM,WAAW;AAAA;AAAA,EAEtB,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,MAAM;AAAA;AAAA,IAEN,oBAAoB;AAAA;AAAA,IAEpB,gBAAgB;AAAA,EAClB;AACF;AAKO,MAAM,aAAa;AAAA,EACxB,mBAAmB,CAAC,QAClB,IAAI,WAAW,MAAM;AAAA,EAEvB,kBAAkB,CAAC,QACjB,IAAI,WAAW,MAAM,gCACrB,IAAI,WAAW,MAAM;AAAA,EAEvB,uBAAuB,CAAC,QACtB,IAAI,WAAW,MAAM,iCACpB,IAAI,CAAC,MAAM,MAAM,OAAO,mBACvB,IAAI,CAAC,MAAM,MAAM,OAAO;AAAA,EAE5B,yBAAyB,CAAC,QACxB,IAAI,WAAW,MAAM,kCACrB,IAAI,CAAC,MAAM,MAAM,OAAO;AAC5B;","names":[]}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * ECIES Constants and Format Specification
3
+ *
4
+ * These constants define the eccrypto-compatible ECIES format used throughout the SDK.
5
+ * Maintaining these exact values ensures backward compatibility with data encrypted
6
+ * using the original eccrypto library.
7
+ */
8
+ /**
9
+ * Elliptic curve parameters
10
+ */
11
+ export declare const CURVE: {
12
+ /** The elliptic curve used (secp256k1 - same as Bitcoin/Ethereum) */
13
+ readonly name: "secp256k1";
14
+ /** Private key length in bytes */
15
+ readonly PRIVATE_KEY_LENGTH: 32;
16
+ /** Compressed public key length in bytes (0x02 or 0x03 prefix + 32 bytes) */
17
+ readonly COMPRESSED_PUBLIC_KEY_LENGTH: 33;
18
+ /** Uncompressed public key length in bytes (0x04 prefix + 64 bytes) */
19
+ readonly UNCOMPRESSED_PUBLIC_KEY_LENGTH: 65;
20
+ /** ECDH shared secret X coordinate length */
21
+ readonly SHARED_SECRET_LENGTH: 32;
22
+ /** Public key prefixes */
23
+ readonly PREFIX: {
24
+ /** Uncompressed public key prefix */
25
+ readonly UNCOMPRESSED: 4;
26
+ /** Compressed public key prefix for even Y */
27
+ readonly COMPRESSED_EVEN: 2;
28
+ /** Compressed public key prefix for odd Y */
29
+ readonly COMPRESSED_ODD: 3;
30
+ };
31
+ /** X coordinate starts at byte 1 (after prefix) */
32
+ readonly X_COORDINATE_OFFSET: 1;
33
+ /** X coordinate ends at byte 33 (1 + 32) */
34
+ readonly X_COORDINATE_END: 33;
35
+ };
36
+ /**
37
+ * Symmetric encryption parameters (AES-256-CBC)
38
+ */
39
+ export declare const CIPHER: {
40
+ /** Cipher algorithm - must match eccrypto */
41
+ readonly algorithm: "aes-256-cbc";
42
+ /** AES key length in bytes */
43
+ readonly KEY_LENGTH: 32;
44
+ /** Initialization vector length in bytes */
45
+ readonly IV_LENGTH: 16;
46
+ /** Block size for AES */
47
+ readonly BLOCK_SIZE: 16;
48
+ };
49
+ /**
50
+ * Key derivation function parameters
51
+ */
52
+ export declare const KDF: {
53
+ /** Hash algorithm for key derivation - must match eccrypto */
54
+ readonly algorithm: "sha512";
55
+ /** Output length of SHA-512 in bytes */
56
+ readonly OUTPUT_LENGTH: 64;
57
+ /** Encryption key slice (first 32 bytes of KDF output) */
58
+ readonly ENCRYPTION_KEY_OFFSET: 0;
59
+ readonly ENCRYPTION_KEY_LENGTH: 32;
60
+ /** MAC key slice (last 32 bytes of KDF output) */
61
+ readonly MAC_KEY_OFFSET: 32;
62
+ readonly MAC_KEY_LENGTH: 32;
63
+ };
64
+ /**
65
+ * Message authentication code parameters
66
+ */
67
+ export declare const MAC: {
68
+ /** MAC algorithm - must match eccrypto */
69
+ readonly algorithm: "sha256";
70
+ /** HMAC-SHA256 output length in bytes */
71
+ readonly LENGTH: 32;
72
+ };
73
+ /**
74
+ * ECIES encrypted data format offsets and lengths
75
+ * Format: [iv(16)][ephemPublicKey(65)][ciphertext(variable)][mac(32)]
76
+ */
77
+ export declare const FORMAT: {
78
+ /** Offsets for each component in serialized format */
79
+ readonly IV_OFFSET: 0;
80
+ readonly IV_LENGTH: 16;
81
+ /** Ephemeral public key (always uncompressed in eccrypto format) */
82
+ readonly EPHEMERAL_KEY_OFFSET: 16;
83
+ readonly EPHEMERAL_KEY_LENGTH: 65;
84
+ /** Ciphertext starts after IV and ephemeral key */
85
+ readonly CIPHERTEXT_OFFSET: number;
86
+ /** MAC is always the last 32 bytes */
87
+ readonly MAC_LENGTH: 32;
88
+ /** Minimum size of encrypted data (IV + ephemKey + MAC, no ciphertext) */
89
+ readonly MIN_ENCRYPTED_LENGTH: number;
90
+ /**
91
+ * Helper to calculate total length of encrypted data
92
+ *
93
+ * @param ciphertextLength - Length of the ciphertext portion
94
+ * @returns Total length including all components
95
+ */
96
+ readonly getTotalLength: (ciphertextLength: number) => number;
97
+ };
98
+ /**
99
+ * Security constants for data clearing
100
+ */
101
+ export declare const SECURITY: {
102
+ /** Overwrite patterns for secure data clearing */
103
+ readonly CLEAR_PATTERNS: {
104
+ readonly ZEROS: 0;
105
+ readonly ONES: 255;
106
+ /** Pattern multiplier for third pass */
107
+ readonly PATTERN_MULTIPLIER: 7;
108
+ /** Pattern offset for third pass */
109
+ readonly PATTERN_OFFSET: 13;
110
+ };
111
+ };
112
+ /**
113
+ * Validation helpers
114
+ */
115
+ export declare const VALIDATION: {
116
+ readonly isValidPrivateKey: (key: Uint8Array) => boolean;
117
+ readonly isValidPublicKey: (key: Uint8Array) => boolean;
118
+ readonly isCompressedPublicKey: (key: Uint8Array) => boolean;
119
+ readonly isUncompressedPublicKey: (key: Uint8Array) => boolean;
120
+ };