@opendatalabs/vana-sdk 0.1.0-alpha.d7fc764 → 0.1.0-alpha.dba79a3

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 (778) hide show
  1. package/dist/__tests__/waitForTransactionEvents.test.d.ts +1 -0
  2. package/dist/browser.cjs.map +1 -1
  3. package/dist/browser.d.ts +36 -2
  4. package/dist/browser.js.map +1 -1
  5. package/dist/chains/definitions.cjs +9 -6
  6. package/dist/chains/definitions.cjs.map +1 -1
  7. package/dist/chains/definitions.d.ts +9 -11
  8. package/dist/chains/definitions.js +9 -6
  9. package/dist/chains/definitions.js.map +1 -1
  10. package/dist/chains/index.cjs.map +1 -1
  11. package/dist/chains/index.d.ts +34 -2
  12. package/dist/chains/index.js.map +1 -1
  13. package/dist/chains.browser.d.ts +8 -2
  14. package/dist/chains.d.ts +8 -2
  15. package/dist/chains.node.d.ts +8 -2
  16. package/dist/config/addresses.d.ts +8 -24
  17. package/dist/config/chains.cjs.map +1 -1
  18. package/dist/config/chains.d.ts +108 -13
  19. package/dist/config/chains.js.map +1 -1
  20. package/dist/config/default-services.cjs +60 -0
  21. package/dist/config/default-services.cjs.map +1 -0
  22. package/dist/config/default-services.d.ts +46 -0
  23. package/dist/config/default-services.js +33 -0
  24. package/dist/config/default-services.js.map +1 -0
  25. package/dist/config/default-services.test.d.ts +1 -0
  26. package/dist/config/features.d.ts +1 -3
  27. package/dist/config/tests/addresses.test.d.ts +1 -0
  28. package/dist/contracts/contractController.cjs +3 -3
  29. package/dist/contracts/contractController.cjs.map +1 -1
  30. package/dist/contracts/contractController.d.ts +77 -38
  31. package/dist/contracts/contractController.js +4 -7
  32. package/dist/contracts/contractController.js.map +1 -1
  33. package/dist/contracts/tests/contractController.test.d.ts +1 -0
  34. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +7 -0
  35. package/dist/controllers/__tests__/operations.processQueue.test.d.ts +1 -0
  36. package/dist/controllers/__tests__/schemas-edge-cases.test.d.ts +1 -0
  37. package/dist/controllers/base.cjs +116 -0
  38. package/dist/controllers/base.cjs.map +1 -0
  39. package/dist/controllers/base.d.ts +94 -0
  40. package/dist/controllers/base.js +92 -0
  41. package/dist/controllers/base.js.map +1 -0
  42. package/dist/controllers/data-error-handling.test.d.ts +1 -0
  43. package/dist/controllers/data.cjs +827 -439
  44. package/dist/controllers/data.cjs.map +1 -1
  45. package/dist/controllers/data.d.ts +373 -254
  46. package/dist/controllers/data.js +840 -442
  47. package/dist/controllers/data.js.map +1 -1
  48. package/dist/controllers/operations.cjs +430 -0
  49. package/dist/controllers/operations.cjs.map +1 -0
  50. package/dist/controllers/operations.d.ts +229 -0
  51. package/dist/controllers/operations.js +406 -0
  52. package/dist/controllers/operations.js.map +1 -0
  53. package/dist/controllers/permissions.cjs +929 -483
  54. package/dist/controllers/permissions.cjs.map +1 -1
  55. package/dist/controllers/permissions.d.ts +1318 -25
  56. package/dist/controllers/permissions.js +929 -483
  57. package/dist/controllers/permissions.js.map +1 -1
  58. package/dist/controllers/protocol.cjs +15 -11
  59. package/dist/controllers/protocol.cjs.map +1 -1
  60. package/dist/controllers/protocol.d.ts +34 -63
  61. package/dist/controllers/protocol.js +15 -14
  62. package/dist/controllers/protocol.js.map +1 -1
  63. package/dist/controllers/schemas.cjs +100 -75
  64. package/dist/controllers/schemas.cjs.map +1 -1
  65. package/dist/controllers/schemas.d.ts +56 -74
  66. package/dist/controllers/schemas.js +100 -75
  67. package/dist/controllers/schemas.js.map +1 -1
  68. package/dist/controllers/server-additional.test.d.ts +1 -0
  69. package/dist/controllers/server.cjs +32 -25
  70. package/dist/controllers/server.cjs.map +1 -1
  71. package/dist/controllers/server.d.ts +53 -71
  72. package/dist/controllers/server.js +32 -25
  73. package/dist/controllers/server.js.map +1 -1
  74. package/dist/core/__tests__/health.test.d.ts +1 -0
  75. package/dist/core/__tests__/inMemoryNonceManager.test.d.ts +1 -0
  76. package/dist/core/__tests__/nonceManager.test.d.ts +1 -0
  77. package/dist/core/__tests__/pollingManager.test.d.ts +4 -0
  78. package/dist/core/apiClient.cjs +68 -15
  79. package/dist/core/apiClient.cjs.map +1 -1
  80. package/dist/core/apiClient.d.ts +137 -16
  81. package/dist/core/apiClient.js +72 -22
  82. package/dist/core/apiClient.js.map +1 -1
  83. package/dist/core/client.cjs +7 -7
  84. package/dist/core/client.cjs.map +1 -1
  85. package/dist/core/client.d.ts +6 -9
  86. package/dist/core/client.js +7 -7
  87. package/dist/core/client.js.map +1 -1
  88. package/dist/core/core.test.d.ts +1 -0
  89. package/dist/core/generics.cjs +41 -12
  90. package/dist/core/generics.cjs.map +1 -1
  91. package/dist/core/generics.d.ts +104 -19
  92. package/dist/core/generics.js +52 -32
  93. package/dist/core/generics.js.map +1 -1
  94. package/dist/core/health.cjs +289 -0
  95. package/dist/core/health.cjs.map +1 -0
  96. package/dist/core/health.d.ts +143 -0
  97. package/dist/core/health.js +265 -0
  98. package/dist/core/health.js.map +1 -0
  99. package/dist/core/inMemoryNonceManager.cjs +138 -0
  100. package/dist/core/inMemoryNonceManager.cjs.map +1 -0
  101. package/dist/core/inMemoryNonceManager.d.ts +69 -0
  102. package/dist/core/inMemoryNonceManager.js +114 -0
  103. package/dist/core/inMemoryNonceManager.js.map +1 -0
  104. package/dist/core/nonceManager.cjs +304 -0
  105. package/dist/core/nonceManager.cjs.map +1 -0
  106. package/dist/core/nonceManager.d.ts +116 -0
  107. package/dist/core/nonceManager.js +280 -0
  108. package/dist/core/nonceManager.js.map +1 -0
  109. package/dist/core/pollingManager.cjs +292 -0
  110. package/dist/core/pollingManager.cjs.map +1 -0
  111. package/dist/core/pollingManager.d.ts +120 -0
  112. package/dist/core/pollingManager.js +268 -0
  113. package/dist/core/pollingManager.js.map +1 -0
  114. package/dist/core/tests/apiClient.test.d.ts +1 -0
  115. package/dist/core/tests/client.test.d.ts +1 -0
  116. package/dist/core/tests/generics.test.d.ts +1 -0
  117. package/dist/core.cjs +152 -61
  118. package/dist/core.cjs.map +1 -1
  119. package/dist/core.d.ts +50 -67
  120. package/dist/core.js +164 -86
  121. package/dist/core.js.map +1 -1
  122. package/dist/crypto/ecies/__tests__/base.test.d.ts +4 -0
  123. package/dist/crypto/ecies/__tests__/compatibility.test.d.ts +8 -0
  124. package/dist/crypto/ecies/__tests__/constants.test.d.ts +4 -0
  125. package/dist/crypto/ecies/__tests__/native-parity.test.d.ts +7 -0
  126. package/dist/crypto/ecies/__tests__/normalization.test.d.ts +1 -0
  127. package/dist/crypto/ecies/__tests__/test-vectors.d.ts +2 -4
  128. package/dist/crypto/ecies/base.cjs +20 -6
  129. package/dist/crypto/ecies/base.cjs.map +1 -1
  130. package/dist/crypto/ecies/base.d.ts +2 -5
  131. package/dist/crypto/ecies/base.js +28 -18
  132. package/dist/crypto/ecies/base.js.map +1 -1
  133. package/dist/crypto/ecies/browser.cjs +2 -1
  134. package/dist/crypto/ecies/browser.cjs.map +1 -1
  135. package/dist/crypto/ecies/browser.d.ts +2 -7
  136. package/dist/crypto/ecies/browser.js +2 -1
  137. package/dist/crypto/ecies/browser.js.map +1 -1
  138. package/dist/crypto/ecies/constants.d.ts +7 -9
  139. package/dist/crypto/ecies/index.d.ts +8 -1
  140. package/dist/crypto/ecies/interface.cjs +4 -5
  141. package/dist/crypto/ecies/interface.cjs.map +1 -1
  142. package/dist/crypto/ecies/interface.d.ts +9 -11
  143. package/dist/crypto/ecies/interface.js +4 -5
  144. package/dist/crypto/ecies/interface.js.map +1 -1
  145. package/dist/crypto/ecies/node.cjs +3 -2
  146. package/dist/crypto/ecies/node.cjs.map +1 -1
  147. package/dist/crypto/ecies/node.d.ts +2 -7
  148. package/dist/crypto/ecies/node.js +11 -16
  149. package/dist/crypto/ecies/node.js.map +1 -1
  150. package/dist/crypto/ecies/test-vectors/eccrypto-vectors.json +72 -0
  151. package/dist/crypto/ecies/utils.cjs +2 -41
  152. package/dist/crypto/ecies/utils.cjs.map +1 -1
  153. package/dist/crypto/ecies/utils.d.ts +3 -40
  154. package/dist/crypto/ecies/utils.js +1 -35
  155. package/dist/crypto/ecies/utils.js.map +1 -1
  156. package/dist/crypto/services/WalletKeyEncryptionService.cjs +2 -2
  157. package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -1
  158. package/dist/crypto/services/WalletKeyEncryptionService.d.ts +3 -7
  159. package/dist/crypto/services/WalletKeyEncryptionService.js +5 -9
  160. package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -1
  161. package/dist/crypto/services/WalletKeyEncryptionService.test.d.ts +1 -0
  162. package/dist/diagnostics.d.ts +1 -3
  163. package/dist/diagnostics.test.d.ts +1 -0
  164. package/dist/errors.cjs +45 -0
  165. package/dist/errors.cjs.map +1 -1
  166. package/dist/errors.d.ts +117 -15
  167. package/dist/errors.js +46 -6
  168. package/dist/errors.js.map +1 -1
  169. package/dist/generated/abi/ComputeEngineImplementation.d.ts +2 -3
  170. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +2 -3
  171. package/dist/generated/abi/DATFactoryImplementation.d.ts +2 -3
  172. package/dist/generated/abi/DATImplementation.d.ts +2 -3
  173. package/dist/generated/abi/DATPausableImplementation.d.ts +2 -3
  174. package/dist/generated/abi/DATVotesImplementation.d.ts +2 -3
  175. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +2 -3
  176. package/dist/generated/abi/DLPRegistryImplementation.d.ts +2 -3
  177. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +2 -3
  178. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +2 -3
  179. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +2 -3
  180. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +2 -3
  181. package/dist/generated/abi/DLPRootImplementation.d.ts +1 -3
  182. package/dist/generated/abi/DLPTreasuryImplementation.d.ts +2 -3
  183. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +1 -3
  184. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +2 -3
  185. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +2 -3
  186. package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +2 -3
  187. package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +2 -3
  188. package/dist/generated/abi/DataRegistryImplementation.cjs +13 -0
  189. package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -1
  190. package/dist/generated/abi/DataRegistryImplementation.d.ts +12 -3
  191. package/dist/generated/abi/DataRegistryImplementation.js +13 -0
  192. package/dist/generated/abi/DataRegistryImplementation.js.map +1 -1
  193. package/dist/generated/abi/QueryEngineImplementation.d.ts +2 -3
  194. package/dist/generated/abi/SwapHelperImplementation.d.ts +2 -3
  195. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +2 -3
  196. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +2 -3
  197. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +2 -3
  198. package/dist/generated/abi/TeePoolImplementation.d.ts +2 -3
  199. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +2 -3
  200. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +2 -3
  201. package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +2 -3
  202. package/dist/generated/abi/VanaEpochImplementation.d.ts +2 -3
  203. package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +2 -3
  204. package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +2 -3
  205. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +2 -3
  206. package/dist/generated/abi/index.cjs +42 -0
  207. package/dist/generated/abi/index.cjs.map +1 -1
  208. package/dist/generated/abi/index.d.ts +47 -18
  209. package/dist/generated/abi/index.js +21 -0
  210. package/dist/generated/abi/index.js.map +1 -1
  211. package/dist/generated/event-types.cjs +17 -0
  212. package/dist/generated/event-types.cjs.map +1 -0
  213. package/dist/generated/event-types.d.ts +854 -0
  214. package/dist/generated/event-types.js +1 -0
  215. package/dist/generated/event-types.js.map +1 -0
  216. package/dist/generated/eventRegistry.cjs +3351 -0
  217. package/dist/generated/eventRegistry.cjs.map +1 -0
  218. package/dist/generated/eventRegistry.d.ts +14 -0
  219. package/dist/generated/eventRegistry.js +3326 -0
  220. package/dist/generated/eventRegistry.js.map +1 -0
  221. package/dist/generated/server/server-exports.d.ts +19 -21
  222. package/dist/generated/server/server.cjs.map +1 -1
  223. package/dist/generated/server/server.d.ts +113 -87
  224. package/dist/generated/subgraph.cjs +797 -32
  225. package/dist/generated/subgraph.cjs.map +1 -1
  226. package/dist/generated/subgraph.d.ts +464 -332
  227. package/dist/generated/subgraph.js +792 -32
  228. package/dist/generated/subgraph.js.map +1 -1
  229. package/dist/index.browser.d.ts +49 -73
  230. package/dist/index.browser.js +14 -0
  231. package/dist/index.browser.js.map +1 -1
  232. package/dist/index.cjs +3 -1
  233. package/dist/index.cjs.map +1 -1
  234. package/dist/index.d.ts +0 -2
  235. package/dist/index.js +3 -1
  236. package/dist/index.js.map +1 -1
  237. package/dist/index.node.cjs +31 -3
  238. package/dist/index.node.cjs.map +1 -1
  239. package/dist/index.node.d.ts +223 -64
  240. package/dist/index.node.js +28 -2
  241. package/dist/index.node.js.map +1 -1
  242. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +1 -0
  243. package/dist/lib/redisAtomicStore.cjs +201 -0
  244. package/dist/lib/redisAtomicStore.cjs.map +1 -0
  245. package/dist/lib/redisAtomicStore.d.ts +120 -0
  246. package/dist/lib/redisAtomicStore.js +177 -0
  247. package/dist/lib/redisAtomicStore.js.map +1 -0
  248. package/dist/node.cjs.map +1 -1
  249. package/dist/node.d.ts +42 -2
  250. package/dist/node.js.map +1 -1
  251. package/dist/platform/browser-only.d.ts +5 -8
  252. package/dist/platform/browser-only.test.d.ts +1 -0
  253. package/dist/platform/browser-safe.d.ts +6 -9
  254. package/dist/platform/browser-safe.test.d.ts +1 -0
  255. package/dist/platform/browser.cjs +167 -8
  256. package/dist/platform/browser.cjs.map +1 -1
  257. package/dist/platform/browser.d.ts +235 -18
  258. package/dist/platform/browser.js +179 -29
  259. package/dist/platform/browser.js.map +1 -1
  260. package/dist/platform/browser.test.d.ts +1 -0
  261. package/dist/platform/index.d.ts +11 -5
  262. package/dist/platform/interface.cjs.map +1 -1
  263. package/dist/platform/interface.d.ts +289 -98
  264. package/dist/platform/node.cjs +163 -2
  265. package/dist/platform/node.cjs.map +1 -1
  266. package/dist/platform/node.d.ts +72 -13
  267. package/dist/platform/node.js +175 -21
  268. package/dist/platform/node.js.map +1 -1
  269. package/dist/platform/ports/openpgp-port.cjs +74 -0
  270. package/dist/platform/ports/openpgp-port.cjs.map +1 -0
  271. package/dist/platform/ports/openpgp-port.d.ts +13 -0
  272. package/dist/platform/ports/openpgp-port.js +59 -0
  273. package/dist/platform/ports/openpgp-port.js.map +1 -0
  274. package/dist/platform/ports/pgp-port.cjs +17 -0
  275. package/dist/platform/ports/pgp-port.cjs.map +1 -0
  276. package/dist/platform/ports/pgp-port.d.ts +35 -0
  277. package/dist/platform/ports/pgp-port.js +1 -0
  278. package/dist/platform/ports/pgp-port.js.map +1 -0
  279. package/dist/platform/shared/error-utils.d.ts +2 -4
  280. package/dist/platform/shared/pgp-utils.cjs +2 -2
  281. package/dist/platform/shared/pgp-utils.cjs.map +1 -1
  282. package/dist/platform/shared/pgp-utils.d.ts +3 -5
  283. package/dist/platform/shared/pgp-utils.js +2 -2
  284. package/dist/platform/shared/pgp-utils.js.map +1 -1
  285. package/dist/platform/shared/stream-utils.d.ts +1 -3
  286. package/dist/platform/utils.d.ts +6 -10
  287. package/dist/platform/utils.test.d.ts +1 -0
  288. package/dist/platform.browser.d.ts +9 -4
  289. package/dist/platform.d.ts +11 -5
  290. package/dist/platform.node.d.ts +10 -5
  291. package/dist/schemas/dataSchema.schema.json +53 -0
  292. package/dist/schemas/grantFile.schema.json +43 -0
  293. package/dist/server/relayerHandler.cjs +420 -0
  294. package/dist/server/relayerHandler.cjs.map +1 -0
  295. package/dist/server/relayerHandler.d.ts +69 -0
  296. package/dist/server/relayerHandler.js +396 -0
  297. package/dist/server/relayerHandler.js.map +1 -0
  298. package/dist/storage/index.d.ts +56 -10
  299. package/dist/storage/manager.cjs +114 -31
  300. package/dist/storage/manager.cjs.map +1 -1
  301. package/dist/storage/manager.d.ts +121 -30
  302. package/dist/storage/manager.js +113 -37
  303. package/dist/storage/manager.js.map +1 -1
  304. package/dist/storage/providers/callback-storage.cjs +89 -18
  305. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  306. package/dist/storage/providers/callback-storage.d.ts +111 -28
  307. package/dist/storage/providers/callback-storage.js +89 -18
  308. package/dist/storage/providers/callback-storage.js.map +1 -1
  309. package/dist/storage/providers/google-drive.cjs +2 -2
  310. package/dist/storage/providers/google-drive.cjs.map +1 -1
  311. package/dist/storage/providers/google-drive.d.ts +3 -7
  312. package/dist/storage/providers/google-drive.js +4 -7
  313. package/dist/storage/providers/google-drive.js.map +1 -1
  314. package/dist/storage/providers/google-drive.test.d.ts +1 -0
  315. package/dist/storage/providers/ipfs.cjs +5 -5
  316. package/dist/storage/providers/ipfs.cjs.map +1 -1
  317. package/dist/storage/providers/ipfs.d.ts +3 -6
  318. package/dist/storage/providers/ipfs.js +7 -10
  319. package/dist/storage/providers/ipfs.js.map +1 -1
  320. package/dist/storage/providers/pinata.cjs +6 -6
  321. package/dist/storage/providers/pinata.cjs.map +1 -1
  322. package/dist/storage/providers/pinata.d.ts +17 -22
  323. package/dist/storage/providers/pinata.js +8 -11
  324. package/dist/storage/providers/pinata.js.map +1 -1
  325. package/dist/storage/tests/callbackStorage.test.d.ts +1 -0
  326. package/dist/storage/tests/googleDriveStorage.test.d.ts +1 -0
  327. package/dist/storage/tests/ipfsStorage.test.d.ts +1 -0
  328. package/dist/storage/tests/pinataStorage.test.d.ts +1 -0
  329. package/dist/storage/tests/storageManager.test.d.ts +1 -0
  330. package/dist/tests/abi.test.d.ts +1 -0
  331. package/dist/tests/chains-definitions.test.d.ts +1 -0
  332. package/dist/tests/core-encryption.test.d.ts +1 -0
  333. package/dist/tests/core-extended.test.d.ts +1 -0
  334. package/dist/tests/core-generics-coverage.test.d.ts +1 -0
  335. package/dist/tests/coverage-boost.test.d.ts +1 -0
  336. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +1 -0
  337. package/dist/tests/data-addfile-permissions-schema.test.d.ts +1 -0
  338. package/dist/tests/data-additional-methods.test.d.ts +1 -0
  339. package/dist/tests/data-controller-edge-cases.test.d.ts +1 -0
  340. package/dist/tests/data-ipfs-gateways.test.d.ts +1 -0
  341. package/dist/tests/data-relayer.test.d.ts +1 -0
  342. package/dist/tests/data-schema-validation.test.d.ts +1 -0
  343. package/dist/tests/data-simple-methods.test.d.ts +1 -0
  344. package/dist/tests/data.test.d.ts +1 -0
  345. package/dist/tests/demo-integration.test.d.ts +1 -0
  346. package/dist/tests/demo-trusted-server-integration.test.d.ts +1 -0
  347. package/dist/tests/download-relayer.test.d.ts +1 -0
  348. package/dist/tests/dual-mode-permissions.test.d.ts +1 -0
  349. package/dist/tests/dual-mode-trusted-servers.test.d.ts +1 -0
  350. package/dist/tests/encryption-correct-implementation.test.d.ts +1 -0
  351. package/dist/tests/encryption-coverage.test.d.ts +1 -0
  352. package/dist/tests/encryption-edge-cases.test.d.ts +1 -0
  353. package/dist/tests/encryption-utils-updated.test.d.ts +1 -0
  354. package/dist/tests/errors-coverage.test.d.ts +1 -0
  355. package/dist/tests/errors.test.d.ts +1 -0
  356. package/dist/tests/factories/mockFactory.d.ts +316 -0
  357. package/dist/tests/fakes/FakeStorageManager.d.ts +200 -0
  358. package/dist/tests/fakes/FakeStorageManager.test.d.ts +1 -0
  359. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +170 -0
  360. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +1 -0
  361. package/dist/tests/fakes/fake-pgp-port.d.ts +13 -0
  362. package/dist/tests/grantValidation-edge-cases.test.d.ts +1 -0
  363. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +1 -0
  364. package/dist/tests/helper-methods.test.d.ts +1 -0
  365. package/dist/tests/helpers/platformTestHelpers.d.ts +106 -0
  366. package/dist/tests/helpers/typedMocks.d.ts +64 -0
  367. package/dist/tests/index-browser.test.d.ts +1 -0
  368. package/dist/tests/index-node.test.d.ts +1 -0
  369. package/dist/tests/index.test.d.ts +1 -0
  370. package/dist/tests/mocks/platformAdapter.d.ts +12 -0
  371. package/dist/tests/new-permissions-methods.test.d.ts +1 -0
  372. package/dist/tests/no-buffer-browser.test.d.ts +1 -0
  373. package/dist/tests/permissions-grantee.test.d.ts +1 -0
  374. package/dist/tests/permissions-revoke-relayer.test.d.ts +1 -0
  375. package/dist/tests/permissions-schema-validation.test.d.ts +1 -0
  376. package/dist/tests/permissions-server-files.test.d.ts +1 -0
  377. package/dist/tests/permissions-transaction-options.test.d.ts +1 -0
  378. package/dist/tests/permissions-trust-servers.test.d.ts +1 -0
  379. package/dist/tests/permissions.test.d.ts +1 -0
  380. package/dist/tests/personal.test.d.ts +1 -0
  381. package/dist/tests/platform-browser.test.d.ts +1 -0
  382. package/dist/tests/platform-crypto-expanded.test.d.ts +1 -0
  383. package/dist/tests/platform-crypto.test.d.ts +1 -0
  384. package/dist/tests/platform-index.test.d.ts +1 -0
  385. package/dist/tests/platform-node.test.d.ts +1 -0
  386. package/dist/tests/platform-shared-utils.test.d.ts +1 -0
  387. package/dist/tests/platform-updated.test.d.ts +1 -0
  388. package/dist/tests/protocol-additional-methods.test.d.ts +1 -0
  389. package/dist/tests/protocol.test.d.ts +1 -0
  390. package/dist/tests/read-only-mode.test.d.ts +1 -0
  391. package/dist/tests/relayer-integration.test.d.ts +1 -0
  392. package/dist/tests/relayer-unified.test.d.ts +1 -0
  393. package/dist/tests/schemas.test.d.ts +1 -0
  394. package/dist/tests/server-relayer-handler.test.d.ts +1 -0
  395. package/dist/tests/setup.d.ts +7 -0
  396. package/dist/tests/signatureFormatter.test.d.ts +1 -0
  397. package/dist/tests/trusted-server-queries.test.d.ts +1 -0
  398. package/dist/tests/typedDataConverter.test.d.ts +1 -0
  399. package/dist/tests/types-contracts.test.d.ts +1 -0
  400. package/dist/tests/types-data.test.d.ts +1 -0
  401. package/dist/tests/types-external-apis.test.d.ts +1 -0
  402. package/dist/tests/types-generics.test.d.ts +1 -0
  403. package/dist/tests/types-permissions.test.d.ts +1 -0
  404. package/dist/tests/types-upload-params.test.d.ts +1 -0
  405. package/dist/tests/types.test.d.ts +1 -0
  406. package/dist/tests/utils-formatters.test.d.ts +1 -0
  407. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +1 -0
  408. package/dist/tests/utils-grantFiles-validation.test.d.ts +1 -0
  409. package/dist/tests/utils-grantFiles.test.d.ts +1 -0
  410. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +1 -0
  411. package/dist/tests/utils-grants.test.d.ts +1 -0
  412. package/dist/tests/utils-ipfs-additional.test.d.ts +1 -0
  413. package/dist/tests/utils-ipfs.test.d.ts +4 -0
  414. package/dist/tests/utils-schemaValidation.test.d.ts +1 -0
  415. package/dist/tests/vana.test.d.ts +1 -0
  416. package/dist/tests/wallet-crypto-compatibility.test.d.ts +1 -0
  417. package/dist/{chains.browser.cjs → types/atomicStore.cjs} +9 -15
  418. package/dist/types/atomicStore.cjs.map +1 -0
  419. package/dist/types/atomicStore.d.ts +236 -0
  420. package/dist/types/atomicStore.js +7 -0
  421. package/dist/types/atomicStore.js.map +1 -0
  422. package/dist/types/blockchain.cjs +17 -0
  423. package/dist/types/blockchain.cjs.map +1 -0
  424. package/dist/types/blockchain.d.ts +85 -0
  425. package/dist/types/blockchain.js +1 -0
  426. package/dist/types/blockchain.js.map +1 -0
  427. package/dist/types/chains-additional.test.d.ts +1 -0
  428. package/dist/types/chains.cjs.map +1 -1
  429. package/dist/types/chains.d.ts +80 -16
  430. package/dist/types/chains.js.map +1 -1
  431. package/dist/types/config.cjs +10 -0
  432. package/dist/types/config.cjs.map +1 -1
  433. package/dist/types/config.d.ts +236 -242
  434. package/dist/types/config.js +8 -0
  435. package/dist/types/config.js.map +1 -1
  436. package/dist/types/contracts.cjs.map +1 -1
  437. package/dist/types/contracts.d.ts +79 -18
  438. package/dist/types/controller-context.cjs +17 -0
  439. package/dist/types/controller-context.cjs.map +1 -0
  440. package/dist/types/controller-context.d.ts +68 -0
  441. package/dist/types/controller-context.js +1 -0
  442. package/dist/types/controller-context.js.map +1 -0
  443. package/dist/types/data.cjs.map +1 -1
  444. package/dist/types/data.d.ts +118 -49
  445. package/dist/types/external-apis.d.ts +10 -12
  446. package/dist/types/generics.cjs.map +1 -1
  447. package/dist/types/generics.d.ts +116 -48
  448. package/dist/types/index.cjs +5 -4
  449. package/dist/types/index.cjs.map +1 -1
  450. package/dist/types/index.d.ts +48 -34
  451. package/dist/types/index.js +9 -2
  452. package/dist/types/index.js.map +1 -1
  453. package/dist/types/operationStore.cjs +17 -0
  454. package/dist/types/operationStore.cjs.map +1 -0
  455. package/dist/types/operationStore.d.ts +171 -0
  456. package/dist/types/operationStore.js +1 -0
  457. package/dist/types/operationStore.js.map +1 -0
  458. package/dist/types/operations.cjs +2 -2
  459. package/dist/types/operations.cjs.map +1 -1
  460. package/dist/types/operations.d.ts +164 -42
  461. package/dist/types/operations.js +2 -2
  462. package/dist/types/operations.js.map +1 -1
  463. package/dist/types/options.cjs +17 -0
  464. package/dist/types/options.cjs.map +1 -0
  465. package/dist/types/options.d.ts +308 -0
  466. package/dist/types/options.js +1 -0
  467. package/dist/types/options.js.map +1 -0
  468. package/dist/types/permissions.cjs.map +1 -1
  469. package/dist/types/permissions.d.ts +72 -78
  470. package/dist/types/personal.cjs.map +1 -1
  471. package/dist/types/personal.d.ts +137 -22
  472. package/dist/types/relayer.cjs.map +1 -1
  473. package/dist/types/relayer.d.ts +293 -50
  474. package/dist/types/storage.cjs.map +1 -1
  475. package/dist/types/storage.d.ts +15 -29
  476. package/dist/types/storage.js +2 -5
  477. package/dist/types/storage.js.map +1 -1
  478. package/dist/types/transactionResults.cjs.map +1 -1
  479. package/dist/types/transactionResults.d.ts +193 -25
  480. package/dist/types/utils.cjs.map +1 -1
  481. package/dist/types/utils.d.ts +20 -68
  482. package/dist/types.d.ts +4 -40
  483. package/dist/utils/__tests__/parseTransaction.test.d.ts +1 -0
  484. package/dist/utils/__tests__/pojo-serialization.test.d.ts +1 -0
  485. package/dist/utils/__tests__/signatureCache.test.d.ts +1 -0
  486. package/dist/utils/__tests__/subgraphConsistency.test.d.ts +4 -0
  487. package/dist/utils/__tests__/subgraphPagination.test.d.ts +4 -0
  488. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +1 -0
  489. package/dist/utils/__tests__/transactionHelpers.test.d.ts +1 -0
  490. package/dist/utils/__tests__/urlResolver.test.d.ts +4 -0
  491. package/dist/utils/blockchain/registry.cjs +2 -2
  492. package/dist/utils/blockchain/registry.cjs.map +1 -1
  493. package/dist/utils/blockchain/registry.d.ts +6 -8
  494. package/dist/utils/blockchain/registry.js +2 -2
  495. package/dist/utils/blockchain/registry.js.map +1 -1
  496. package/dist/utils/blockchain/registry.test.d.ts +1 -0
  497. package/dist/utils/chainQuery.cjs +107 -0
  498. package/dist/utils/chainQuery.cjs.map +1 -0
  499. package/dist/utils/chainQuery.d.ts +31 -0
  500. package/dist/utils/chainQuery.js +82 -0
  501. package/dist/utils/chainQuery.js.map +1 -0
  502. package/dist/utils/crypto-utils.cjs +0 -12
  503. package/dist/utils/crypto-utils.cjs.map +1 -1
  504. package/dist/utils/crypto-utils.d.ts +9 -27
  505. package/dist/utils/crypto-utils.js +0 -11
  506. package/dist/utils/crypto-utils.js.map +1 -1
  507. package/dist/utils/crypto-utils.test.d.ts +1 -0
  508. package/dist/utils/download.cjs +3 -3
  509. package/dist/utils/download.cjs.map +1 -1
  510. package/dist/utils/download.d.ts +13 -14
  511. package/dist/utils/download.js +2 -2
  512. package/dist/utils/download.js.map +1 -1
  513. package/dist/utils/encoding.cjs +1 -1
  514. package/dist/utils/encoding.cjs.map +1 -1
  515. package/dist/utils/encoding.d.ts +4 -6
  516. package/dist/utils/encoding.js +1 -1
  517. package/dist/utils/encoding.js.map +1 -1
  518. package/dist/utils/encoding.test.d.ts +1 -0
  519. package/dist/utils/encryption.cjs +16 -10
  520. package/dist/utils/encryption.cjs.map +1 -1
  521. package/dist/utils/encryption.d.ts +13 -17
  522. package/dist/utils/encryption.js +16 -10
  523. package/dist/utils/encryption.js.map +1 -1
  524. package/dist/utils/formatters.cjs +4 -2
  525. package/dist/utils/formatters.cjs.map +1 -1
  526. package/dist/utils/formatters.d.ts +4 -6
  527. package/dist/utils/formatters.js +4 -2
  528. package/dist/utils/formatters.js.map +1 -1
  529. package/dist/utils/grantFiles.cjs +7 -4
  530. package/dist/utils/grantFiles.cjs.map +1 -1
  531. package/dist/utils/grantFiles.d.ts +16 -30
  532. package/dist/utils/grantFiles.js +7 -4
  533. package/dist/utils/grantFiles.js.map +1 -1
  534. package/dist/utils/grantValidation.cjs +1 -1
  535. package/dist/utils/grantValidation.cjs.map +1 -1
  536. package/dist/utils/grantValidation.d.ts +109 -33
  537. package/dist/utils/grantValidation.js +1 -1
  538. package/dist/utils/grantValidation.js.map +1 -1
  539. package/dist/utils/grants.cjs +1 -1
  540. package/dist/utils/grants.cjs.map +1 -1
  541. package/dist/utils/grants.d.ts +101 -23
  542. package/dist/utils/grants.js +1 -1
  543. package/dist/utils/grants.js.map +1 -1
  544. package/dist/utils/ipfs.cjs +2 -4
  545. package/dist/utils/ipfs.cjs.map +1 -1
  546. package/dist/utils/ipfs.d.ts +8 -10
  547. package/dist/utils/ipfs.js +2 -4
  548. package/dist/utils/ipfs.js.map +1 -1
  549. package/dist/utils/lazy-import.cjs +4 -6
  550. package/dist/utils/lazy-import.cjs.map +1 -1
  551. package/dist/utils/lazy-import.d.ts +33 -10
  552. package/dist/utils/lazy-import.js +4 -6
  553. package/dist/utils/lazy-import.js.map +1 -1
  554. package/dist/utils/multicall.cjs +4 -2
  555. package/dist/utils/multicall.cjs.map +1 -1
  556. package/dist/utils/multicall.d.ts +5 -8
  557. package/dist/utils/multicall.js +4 -2
  558. package/dist/utils/multicall.js.map +1 -1
  559. package/dist/utils/parseTransactionPojo.cjs +87 -0
  560. package/dist/utils/parseTransactionPojo.cjs.map +1 -0
  561. package/dist/utils/parseTransactionPojo.d.ts +31 -0
  562. package/dist/utils/parseTransactionPojo.js +63 -0
  563. package/dist/utils/parseTransactionPojo.js.map +1 -0
  564. package/dist/utils/schemaValidation.cjs +5 -5
  565. package/dist/utils/schemaValidation.cjs.map +1 -1
  566. package/dist/utils/schemaValidation.d.ts +8 -12
  567. package/dist/utils/schemaValidation.js +7 -10
  568. package/dist/utils/schemaValidation.js.map +1 -1
  569. package/dist/utils/signatureCache.cjs +9 -4
  570. package/dist/utils/signatureCache.cjs.map +1 -1
  571. package/dist/utils/signatureCache.d.ts +53 -15
  572. package/dist/utils/signatureCache.js +12 -10
  573. package/dist/utils/signatureCache.js.map +1 -1
  574. package/dist/utils/signatureFormatter.cjs +6 -9
  575. package/dist/utils/signatureFormatter.cjs.map +1 -1
  576. package/dist/utils/signatureFormatter.d.ts +2 -5
  577. package/dist/utils/signatureFormatter.js +6 -9
  578. package/dist/utils/signatureFormatter.js.map +1 -1
  579. package/dist/utils/subgraphConsistency.cjs +184 -0
  580. package/dist/utils/subgraphConsistency.cjs.map +1 -0
  581. package/dist/utils/subgraphConsistency.d.ts +65 -0
  582. package/dist/utils/subgraphConsistency.js +155 -0
  583. package/dist/utils/subgraphConsistency.js.map +1 -0
  584. package/dist/utils/subgraphMetaCache.cjs +101 -0
  585. package/dist/utils/subgraphMetaCache.cjs.map +1 -0
  586. package/dist/utils/subgraphMetaCache.d.ts +56 -0
  587. package/dist/utils/subgraphMetaCache.js +76 -0
  588. package/dist/utils/subgraphMetaCache.js.map +1 -0
  589. package/dist/utils/subgraphPagination.cjs +104 -0
  590. package/dist/utils/subgraphPagination.cjs.map +1 -0
  591. package/dist/utils/subgraphPagination.d.ts +78 -0
  592. package/dist/utils/subgraphPagination.js +78 -0
  593. package/dist/utils/subgraphPagination.js.map +1 -0
  594. package/dist/utils/tests/multicall.test.d.ts +1 -0
  595. package/dist/utils/transactionHelpers.cjs +54 -0
  596. package/dist/utils/transactionHelpers.cjs.map +1 -0
  597. package/dist/utils/transactionHelpers.d.ts +80 -0
  598. package/dist/utils/transactionHelpers.js +29 -0
  599. package/dist/utils/transactionHelpers.js.map +1 -0
  600. package/dist/utils/typeGuards.cjs +109 -0
  601. package/dist/utils/typeGuards.cjs.map +1 -0
  602. package/dist/utils/typeGuards.d.ts +138 -0
  603. package/dist/utils/typeGuards.js +74 -0
  604. package/dist/utils/typeGuards.js.map +1 -0
  605. package/dist/utils/typedDataConverter.cjs.map +1 -1
  606. package/dist/utils/typedDataConverter.d.ts +42 -9
  607. package/dist/utils/typedDataConverter.js.map +1 -1
  608. package/dist/utils/urlResolver.cjs +8 -1
  609. package/dist/utils/urlResolver.cjs.map +1 -1
  610. package/dist/utils/urlResolver.d.ts +24 -8
  611. package/dist/utils/urlResolver.js +9 -2
  612. package/dist/utils/urlResolver.js.map +1 -1
  613. package/dist/utils/wallet.cjs +63 -0
  614. package/dist/utils/wallet.cjs.map +1 -0
  615. package/dist/utils/wallet.d.ts +94 -0
  616. package/dist/utils/wallet.js +37 -0
  617. package/dist/utils/wallet.js.map +1 -0
  618. package/dist/utils/withEvents.cjs +44 -0
  619. package/dist/utils/withEvents.cjs.map +1 -0
  620. package/dist/utils/withEvents.d.ts +56 -0
  621. package/dist/utils/withEvents.js +18 -0
  622. package/dist/utils/withEvents.js.map +1 -0
  623. package/package.json +25 -13
  624. package/dist/browser.d.cts +0 -2
  625. package/dist/chains/definitions.d.cts +0 -53
  626. package/dist/chains/index.d.cts +0 -2
  627. package/dist/chains.browser.cjs.map +0 -1
  628. package/dist/chains.browser.d.cts +0 -2
  629. package/dist/chains.d.cts +0 -2
  630. package/dist/chains.node.d.cts +0 -2
  631. package/dist/config/addresses.d.cts +0 -380
  632. package/dist/config/chains.d.cts +0 -85
  633. package/dist/config/eventMappings.cjs +0 -114
  634. package/dist/config/eventMappings.cjs.map +0 -1
  635. package/dist/config/eventMappings.d.cts +0 -108
  636. package/dist/config/eventMappings.d.ts +0 -108
  637. package/dist/config/eventMappings.js +0 -90
  638. package/dist/config/eventMappings.js.map +0 -1
  639. package/dist/config/features.d.cts +0 -64
  640. package/dist/contracts/contractController.d.cts +0 -96
  641. package/dist/controllers/data.d.cts +0 -941
  642. package/dist/controllers/permissions.d.cts +0 -25
  643. package/dist/controllers/protocol.d.cts +0 -167
  644. package/dist/controllers/schemas.d.cts +0 -272
  645. package/dist/controllers/server.d.cts +0 -243
  646. package/dist/core/apiClient.d.cts +0 -165
  647. package/dist/core/client.d.cts +0 -92
  648. package/dist/core/generics.d.cts +0 -120
  649. package/dist/core.d.cts +0 -466
  650. package/dist/crypto/ecies/__tests__/test-vectors.d.cts +0 -40
  651. package/dist/crypto/ecies/base.d.cts +0 -143
  652. package/dist/crypto/ecies/browser.d.cts +0 -48
  653. package/dist/crypto/ecies/constants.d.cts +0 -122
  654. package/dist/crypto/ecies/index.d.cts +0 -1
  655. package/dist/crypto/ecies/interface.d.cts +0 -176
  656. package/dist/crypto/ecies/node.d.cts +0 -50
  657. package/dist/crypto/ecies/utils.d.cts +0 -67
  658. package/dist/crypto/services/WalletKeyEncryptionService.d.cts +0 -92
  659. package/dist/diagnostics.d.cts +0 -26
  660. package/dist/errors.d.cts +0 -350
  661. package/dist/generated/abi/ComputeEngineImplementation.d.cts +0 -996
  662. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.cts +0 -545
  663. package/dist/generated/abi/DATFactoryImplementation.d.cts +0 -661
  664. package/dist/generated/abi/DATImplementation.d.cts +0 -693
  665. package/dist/generated/abi/DATPausableImplementation.d.cts +0 -1145
  666. package/dist/generated/abi/DATVotesImplementation.d.cts +0 -1095
  667. package/dist/generated/abi/DLPPerformanceImplementation.d.cts +0 -883
  668. package/dist/generated/abi/DLPRegistryImplementation.d.cts +0 -1123
  669. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.cts +0 -452
  670. package/dist/generated/abi/DLPRewardDeployerImplementation.d.cts +0 -714
  671. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.cts +0 -452
  672. package/dist/generated/abi/DLPRewardSwapImplementation.d.cts +0 -706
  673. package/dist/generated/abi/DLPRootImplementation.d.cts +0 -1248
  674. package/dist/generated/abi/DLPTreasuryImplementation.d.cts +0 -452
  675. package/dist/generated/abi/DataLiquidityPoolImplementation.d.cts +0 -737
  676. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.cts +0 -661
  677. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.cts +0 -989
  678. package/dist/generated/abi/DataPortabilityServersImplementation.d.cts +0 -1086
  679. package/dist/generated/abi/DataRefinerRegistryImplementation.d.cts +0 -737
  680. package/dist/generated/abi/DataRegistryImplementation.d.cts +0 -1004
  681. package/dist/generated/abi/QueryEngineImplementation.d.cts +0 -1001
  682. package/dist/generated/abi/SwapHelperImplementation.d.cts +0 -764
  683. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.cts +0 -701
  684. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.cts +0 -701
  685. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.cts +0 -701
  686. package/dist/generated/abi/TeePoolImplementation.d.cts +0 -993
  687. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.cts +0 -701
  688. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.cts +0 -701
  689. package/dist/generated/abi/TeePoolPhalaImplementation.d.cts +0 -993
  690. package/dist/generated/abi/VanaEpochImplementation.d.cts +0 -900
  691. package/dist/generated/abi/VanaPoolEntityImplementation.d.cts +0 -934
  692. package/dist/generated/abi/VanaPoolStakingImplementation.d.cts +0 -693
  693. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.cts +0 -394
  694. package/dist/generated/abi/index.d.cts +0 -26516
  695. package/dist/generated/server/server-exports.d.cts +0 -21
  696. package/dist/generated/server/server.d.cts +0 -512
  697. package/dist/generated/subgraph.d.cts +0 -5981
  698. package/dist/index.browser.cjs +0 -151
  699. package/dist/index.browser.cjs.map +0 -1
  700. package/dist/index.browser.d.cts +0 -177
  701. package/dist/index.d.cts +0 -2
  702. package/dist/index.node.d.cts +0 -64
  703. package/dist/node.d.cts +0 -2
  704. package/dist/permissions-DNKPu_G0.d.cts +0 -1666
  705. package/dist/permissions-eo8YeLGf.d.ts +0 -1666
  706. package/dist/platform/browser-only.d.cts +0 -25
  707. package/dist/platform/browser-safe.d.cts +0 -32
  708. package/dist/platform/browser.d.cts +0 -74
  709. package/dist/platform/index.d.cts +0 -5
  710. package/dist/platform/interface.d.cts +0 -218
  711. package/dist/platform/node.d.cts +0 -27
  712. package/dist/platform/shared/error-utils.d.cts +0 -25
  713. package/dist/platform/shared/pgp-utils.d.cts +0 -61
  714. package/dist/platform/shared/stream-utils.d.cts +0 -16
  715. package/dist/platform/utils.d.cts +0 -53
  716. package/dist/platform.browser.cjs +0 -41
  717. package/dist/platform.browser.cjs.map +0 -1
  718. package/dist/platform.browser.d.cts +0 -4
  719. package/dist/platform.d.cts +0 -5
  720. package/dist/platform.node.d.cts +0 -5
  721. package/dist/server/handler.cjs +0 -101
  722. package/dist/server/handler.cjs.map +0 -1
  723. package/dist/server/handler.d.cts +0 -282
  724. package/dist/server/handler.d.ts +0 -282
  725. package/dist/server/handler.js +0 -77
  726. package/dist/server/handler.js.map +0 -1
  727. package/dist/storage/index.d.cts +0 -10
  728. package/dist/storage/manager.d.cts +0 -150
  729. package/dist/storage/providers/callback-storage.d.cts +0 -100
  730. package/dist/storage/providers/google-drive.d.cts +0 -156
  731. package/dist/storage/providers/ipfs.d.cts +0 -163
  732. package/dist/storage/providers/pinata.d.cts +0 -173
  733. package/dist/types/chains.d.cts +0 -34
  734. package/dist/types/config.d.cts +0 -726
  735. package/dist/types/contracts.d.cts +0 -68
  736. package/dist/types/data.d.cts +0 -694
  737. package/dist/types/eccrypto-js.d.d.cts +0 -13
  738. package/dist/types/eccrypto-js.d.d.ts +0 -13
  739. package/dist/types/external-apis.d.cts +0 -186
  740. package/dist/types/generics.d.cts +0 -450
  741. package/dist/types/index.d.cts +0 -34
  742. package/dist/types/operations.d.cts +0 -108
  743. package/dist/types/permissions.d.cts +0 -957
  744. package/dist/types/personal.d.cts +0 -40
  745. package/dist/types/relayer.d.cts +0 -284
  746. package/dist/types/storage.d.cts +0 -131
  747. package/dist/types/transactionResults.d.cts +0 -25
  748. package/dist/types/utils.d.cts +0 -819
  749. package/dist/types.d.cts +0 -66
  750. package/dist/utils/blockchain/registry.d.cts +0 -34
  751. package/dist/utils/crypto-utils.d.cts +0 -118
  752. package/dist/utils/download.d.cts +0 -41
  753. package/dist/utils/encoding.d.cts +0 -54
  754. package/dist/utils/encryption.d.cts +0 -275
  755. package/dist/utils/eventParsing.cjs +0 -111
  756. package/dist/utils/eventParsing.cjs.map +0 -1
  757. package/dist/utils/eventParsing.d.cts +0 -60
  758. package/dist/utils/eventParsing.d.ts +0 -60
  759. package/dist/utils/eventParsing.js +0 -86
  760. package/dist/utils/eventParsing.js.map +0 -1
  761. package/dist/utils/formatters.d.cts +0 -120
  762. package/dist/utils/grantFiles.d.cts +0 -186
  763. package/dist/utils/grantValidation.d.cts +0 -150
  764. package/dist/utils/grants.d.cts +0 -70
  765. package/dist/utils/ipfs.d.cts +0 -90
  766. package/dist/utils/lazy-import.d.cts +0 -20
  767. package/dist/utils/multicall.d.cts +0 -129
  768. package/dist/utils/schemaValidation.d.cts +0 -172
  769. package/dist/utils/signatureCache.d.cts +0 -134
  770. package/dist/utils/signatureFormatter.d.cts +0 -39
  771. package/dist/utils/transactionParsing.cjs +0 -84
  772. package/dist/utils/transactionParsing.cjs.map +0 -1
  773. package/dist/utils/transactionParsing.d.cts +0 -25
  774. package/dist/utils/transactionParsing.d.ts +0 -25
  775. package/dist/utils/transactionParsing.js +0 -62
  776. package/dist/utils/transactionParsing.js.map +0 -1
  777. package/dist/utils/typedDataConverter.d.cts +0 -13
  778. package/dist/utils/urlResolver.d.cts +0 -40
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/crypto/ecies/node.ts"],"sourcesContent":["/**\n * Node.js implementation of ECIES using native secp256k1 for performance\n *\n * @remarks\n * Uses native secp256k1 bindings for all elliptic curve operations.\n * Uses Node.js crypto module for hashing and AES operations.\n * Provides Uint8Array-only interface with no Buffer exposure.\n */\n\nimport {\n randomBytes,\n createHash,\n createHmac,\n createCipheriv,\n createDecipheriv,\n} from \"crypto\";\nimport secp256k1Import from \"secp256k1\";\nimport { BaseECIESUint8 } from \"./base\";\n\n// Type definition for secp256k1 module\ninterface Secp256k1Module {\n privateKeyVerify(privateKey: Buffer): boolean;\n publicKeyCreate(privateKey: Buffer, compressed: boolean): Buffer;\n publicKeyVerify(publicKey: Buffer): boolean;\n publicKeyConvert(publicKey: Buffer, compressed: boolean): Buffer;\n ecdh(\n publicKey: Buffer,\n privateKey: Buffer,\n options: {\n hashfn: (x: Uint8Array, y: Uint8Array, output?: Uint8Array) => Uint8Array;\n },\n output: Buffer,\n ): Buffer;\n}\n\n// Use the imported secp256k1 module\nconst secp256k1 = secp256k1Import as unknown as Secp256k1Module;\n\n/**\n * Node.js-specific ECIES provider using native secp256k1\n *\n * @remarks\n * This implementation:\n * - Uses native secp256k1 for all EC operations (optimal performance)\n * - Uses Node.js crypto for SHA-512, HMAC, and AES operations\n * - Internally works with Uint8Array\n * - Only uses Buffer at crypto API boundaries\n */\nexport class NodeECIESUint8Provider extends BaseECIESUint8 {\n // Identity hash function for ECDH - returns raw X coordinate\n // CRITICAL: Must handle (x, y, output) signature correctly\n private readonly identityHashFn = (\n x: Uint8Array,\n y: Uint8Array,\n output?: Uint8Array,\n ): Uint8Array => {\n // Copy x into output buffer if provided (prevents allocations)\n if (output && output.length >= 32) {\n output.set(x);\n return output;\n }\n return x;\n };\n protected generateRandomBytes(length: number): Uint8Array {\n return new Uint8Array(randomBytes(length));\n }\n\n protected verifyPrivateKey(privateKey: Uint8Array): boolean {\n // Native secp256k1 returns true for valid, false for invalid\n return secp256k1.privateKeyVerify(Buffer.from(privateKey)) === true;\n }\n\n protected createPublicKey(\n privateKey: Uint8Array,\n compressed: boolean,\n ): Uint8Array | null {\n try {\n return new Uint8Array(\n secp256k1.publicKeyCreate(Buffer.from(privateKey), compressed),\n );\n } catch {\n return null;\n }\n }\n\n protected validatePublicKey(publicKey: Uint8Array): boolean {\n // Native secp256k1 returns true for valid, false for invalid\n return secp256k1.publicKeyVerify(Buffer.from(publicKey)) === true;\n }\n\n protected decompressPublicKey(publicKey: Uint8Array): Uint8Array | null {\n try {\n // Convert to uncompressed format (65 bytes)\n return new Uint8Array(\n secp256k1.publicKeyConvert(Buffer.from(publicKey), false),\n );\n } catch {\n return null;\n }\n }\n\n protected performECDH(\n publicKey: Uint8Array,\n privateKey: Uint8Array,\n ): Uint8Array {\n try {\n // Use pre-allocated buffer for output (32 bytes)\n const output = Buffer.alloc(32);\n\n // CRITICAL: Use identity hash to get raw X coordinate\n // Default would apply SHA256 and break compatibility\n secp256k1.ecdh(\n Buffer.from(publicKey),\n Buffer.from(privateKey),\n { hashfn: this.identityHashFn },\n output,\n );\n\n return new Uint8Array(output);\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 // Use Node.js crypto for native performance\n return new Uint8Array(\n createHash(\"sha512\").update(Buffer.from(data)).digest(),\n );\n }\n\n protected hmacSha256(key: Uint8Array, data: Uint8Array): Uint8Array {\n // Use Node.js crypto for native performance\n return new Uint8Array(\n createHmac(\"sha256\", Buffer.from(key)).update(Buffer.from(data)).digest(),\n );\n }\n\n protected async aesEncrypt(\n key: Uint8Array,\n iv: Uint8Array,\n plaintext: Uint8Array,\n ): Promise<Uint8Array> {\n const cipher = createCipheriv(\n \"aes-256-cbc\",\n Buffer.from(key),\n Buffer.from(iv),\n );\n const encrypted = Buffer.concat([\n cipher.update(Buffer.from(plaintext)),\n cipher.final(),\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 const decipher = createDecipheriv(\n \"aes-256-cbc\",\n Buffer.from(key),\n Buffer.from(iv),\n );\n const decrypted = Buffer.concat([\n decipher.update(Buffer.from(ciphertext)),\n decipher.final(),\n ]);\n return new Uint8Array(decrypted);\n }\n\n // No Buffer compatibility methods - Uint8Array only public API\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 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 0x${publicKey[0].toString(16).padStart(2, \"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":";;;AASA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,OAAO,qBAAqB;AAC5B,SAAS,sBAAsB;AAmB/B,MAAM,YAAY;AAYX,MAAM,+BAA+B,eAAe;AAAA,EAApD;AAAA;AAGL;AAAA;AAAA,wBAAiB,kBAAiB,CAChC,GACA,GACA,WACe;AAEf,UAAI,UAAU,OAAO,UAAU,IAAI;AACjC,eAAO,IAAI,CAAC;AACZ,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EACU,oBAAoB,QAA4B;AACxD,WAAO,IAAI,WAAW,YAAY,MAAM,CAAC;AAAA,EAC3C;AAAA,EAEU,iBAAiB,YAAiC;AAE1D,WAAO,UAAU,iBAAiB,OAAO,KAAK,UAAU,CAAC,MAAM;AAAA,EACjE;AAAA,EAEU,gBACR,YACA,YACmB;AACnB,QAAI;AACF,aAAO,IAAI;AAAA,QACT,UAAU,gBAAgB,OAAO,KAAK,UAAU,GAAG,UAAU;AAAA,MAC/D;AAAA,IACF,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEU,kBAAkB,WAAgC;AAE1D,WAAO,UAAU,gBAAgB,OAAO,KAAK,SAAS,CAAC,MAAM;AAAA,EAC/D;AAAA,EAEU,oBAAoB,WAA0C;AACtE,QAAI;AAEF,aAAO,IAAI;AAAA,QACT,UAAU,iBAAiB,OAAO,KAAK,SAAS,GAAG,KAAK;AAAA,MAC1D;AAAA,IACF,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEU,YACR,WACA,YACY;AACZ,QAAI;AAEF,YAAM,SAAS,OAAO,MAAM,EAAE;AAI9B,gBAAU;AAAA,QACR,OAAO,KAAK,SAAS;AAAA,QACrB,OAAO,KAAK,UAAU;AAAA,QACtB,EAAE,QAAQ,KAAK,eAAe;AAAA,QAC9B;AAAA,MACF;AAEA,aAAO,IAAI,WAAW,MAAM;AAAA,IAC9B,SAAS,OAAO;AACd,YAAM,IAAI;AAAA,QACR,gBAAgB,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,MAC1E;AAAA,IACF;AAAA,EACF;AAAA,EAEU,OAAO,MAA8B;AAE7C,WAAO,IAAI;AAAA,MACT,WAAW,QAAQ,EAAE,OAAO,OAAO,KAAK,IAAI,CAAC,EAAE,OAAO;AAAA,IACxD;AAAA,EACF;AAAA,EAEU,WAAW,KAAiB,MAA8B;AAElE,WAAO,IAAI;AAAA,MACT,WAAW,UAAU,OAAO,KAAK,GAAG,CAAC,EAAE,OAAO,OAAO,KAAK,IAAI,CAAC,EAAE,OAAO;AAAA,IAC1E;AAAA,EACF;AAAA,EAEA,MAAgB,WACd,KACA,IACA,WACqB;AACrB,UAAM,SAAS;AAAA,MACb;AAAA,MACA,OAAO,KAAK,GAAG;AAAA,MACf,OAAO,KAAK,EAAE;AAAA,IAChB;AACA,UAAM,YAAY,OAAO,OAAO;AAAA,MAC9B,OAAO,OAAO,OAAO,KAAK,SAAS,CAAC;AAAA,MACpC,OAAO,MAAM;AAAA,IACf,CAAC;AACD,WAAO,IAAI,WAAW,SAAS;AAAA,EACjC;AAAA,EAEA,MAAgB,WACd,KACA,IACA,YACqB;AACrB,UAAM,WAAW;AAAA,MACf;AAAA,MACA,OAAO,KAAK,GAAG;AAAA,MACf,OAAO,KAAK,EAAE;AAAA,IAChB;AACA,UAAM,YAAY,OAAO,OAAO;AAAA,MAC9B,SAAS,OAAO,OAAO,KAAK,UAAU,CAAC;AAAA,MACvC,SAAS,MAAM;AAAA,IACjB,CAAC;AACD,WAAO,IAAI,WAAW,SAAS;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,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,iDAAiD,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,QAC7F;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":[]}
1
+ {"version":3,"sources":["../../../src/crypto/ecies/node.ts"],"sourcesContent":["/**\n * Node.js implementation of ECIES using native secp256k1 for performance\n *\n * @remarks\n * Uses native secp256k1 bindings for all elliptic curve operations.\n * Uses Node.js crypto module for hashing and AES operations.\n * Provides Uint8Array-only interface with no Buffer exposure.\n */\n\nimport {\n randomBytes,\n createHash,\n createHmac,\n createCipheriv,\n createDecipheriv,\n} from \"crypto\";\nimport secp256k1Import from \"secp256k1\";\nimport { BaseECIESUint8 } from \"./base\";\nimport { toHex } from \"viem\";\n\n// Type definition for secp256k1 module\ninterface Secp256k1Module {\n privateKeyVerify(privateKey: Buffer): boolean;\n publicKeyCreate(privateKey: Buffer, compressed: boolean): Buffer;\n publicKeyVerify(publicKey: Buffer): boolean;\n publicKeyConvert(publicKey: Buffer, compressed: boolean): Buffer;\n ecdh(\n publicKey: Buffer,\n privateKey: Buffer,\n options: {\n hashfn: (x: Uint8Array, y: Uint8Array, output?: Uint8Array) => Uint8Array;\n },\n output: Buffer,\n ): Buffer;\n}\n\n// Use the imported secp256k1 module\nconst secp256k1 = secp256k1Import as unknown as Secp256k1Module;\n\n/**\n * Node.js-specific ECIES provider using native secp256k1\n *\n * @remarks\n * This implementation:\n * - Uses native secp256k1 for all EC operations (optimal performance)\n * - Uses Node.js crypto for SHA-512, HMAC, and AES operations\n * - Internally works with Uint8Array\n * - Only uses Buffer at crypto API boundaries\n */\nexport class NodeECIESUint8Provider extends BaseECIESUint8 {\n // Identity hash function for ECDH - returns raw X coordinate\n // CRITICAL: Must handle (x, y, output) signature correctly\n private readonly identityHashFn = (\n x: Uint8Array,\n _y: Uint8Array,\n output?: Uint8Array,\n ): Uint8Array => {\n // Copy x into output buffer if provided (prevents allocations)\n if (output && output.length >= 32) {\n output.set(x);\n return output;\n }\n return x;\n };\n protected generateRandomBytes(length: number): Uint8Array {\n return new Uint8Array(randomBytes(length));\n }\n\n protected verifyPrivateKey(privateKey: Uint8Array): boolean {\n // Native secp256k1 returns true for valid, false for invalid\n return secp256k1.privateKeyVerify(Buffer.from(privateKey)) === true;\n }\n\n protected createPublicKey(\n privateKey: Uint8Array,\n compressed: boolean,\n ): Uint8Array | null {\n try {\n return new Uint8Array(\n secp256k1.publicKeyCreate(Buffer.from(privateKey), compressed),\n );\n } catch {\n return null;\n }\n }\n\n protected validatePublicKey(publicKey: Uint8Array): boolean {\n // Native secp256k1 returns true for valid, false for invalid\n return secp256k1.publicKeyVerify(Buffer.from(publicKey)) === true;\n }\n\n protected decompressPublicKey(publicKey: Uint8Array): Uint8Array | null {\n try {\n // Convert to uncompressed format (65 bytes)\n return new Uint8Array(\n secp256k1.publicKeyConvert(Buffer.from(publicKey), false),\n );\n } catch {\n return null;\n }\n }\n\n protected performECDH(\n publicKey: Uint8Array,\n privateKey: Uint8Array,\n ): Uint8Array {\n try {\n // Use pre-allocated buffer for output (32 bytes)\n const output = Buffer.alloc(32);\n\n // CRITICAL: Use identity hash to get raw X coordinate\n // Default would apply SHA256 and break compatibility\n secp256k1.ecdh(\n Buffer.from(publicKey),\n Buffer.from(privateKey),\n { hashfn: this.identityHashFn },\n output,\n );\n\n return new Uint8Array(output);\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 // Use Node.js crypto for native performance\n return new Uint8Array(\n createHash(\"sha512\").update(Buffer.from(data)).digest(),\n );\n }\n\n protected hmacSha256(key: Uint8Array, data: Uint8Array): Uint8Array {\n // Use Node.js crypto for native performance\n return new Uint8Array(\n createHmac(\"sha256\", Buffer.from(key)).update(Buffer.from(data)).digest(),\n );\n }\n\n protected async aesEncrypt(\n key: Uint8Array,\n iv: Uint8Array,\n plaintext: Uint8Array,\n ): Promise<Uint8Array> {\n const cipher = createCipheriv(\n \"aes-256-cbc\",\n Buffer.from(key),\n Buffer.from(iv),\n );\n const encrypted = Buffer.concat([\n cipher.update(Buffer.from(plaintext)),\n cipher.final(),\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 const decipher = createDecipheriv(\n \"aes-256-cbc\",\n Buffer.from(key),\n Buffer.from(iv),\n );\n const decrypted = Buffer.concat([\n decipher.update(Buffer.from(ciphertext)),\n decipher.final(),\n ]);\n return new Uint8Array(decrypted);\n }\n\n // No Buffer compatibility methods - Uint8Array only public API\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 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,72 @@
1
+ {
2
+ "metadata": {
3
+ "generated": "2025-08-17T15:03:45.067Z",
4
+ "eccryptoVersion": "1.1.6",
5
+ "description": "Test vectors from eccrypto to ensure backward compatibility",
6
+ "format": "eccrypto ECIES format: [iv(16)] [ephemPublicKey(65)] [ciphertext(variable)] [mac(32)]"
7
+ },
8
+ "vectors": [
9
+ {
10
+ "name": "Simple text message",
11
+ "privateKey": "1878693c39d810ce44ee40f9fdd068a0414615e74a7ff58adaba74063b2402e4",
12
+ "publicKey": "0486c0312c4609fc3d53c35cbd1b7af82c8900c056a0389e1697720e3b60284aa2996a6c16c9b65eeb830c9016c5ab49481a406c88666de95f8fc236d0cbb7bb79",
13
+ "message": "48656c6c6f2c20454349455321",
14
+ "encrypted": {
15
+ "iv": "9da6a7f84a8a192eeb787fd5907bf23a",
16
+ "ephemPublicKey": "0442fdf37e36007921c07e5447bdae847f04a46e7bde3f3c8cca37d2766633d8e52c734a183d5e61f24bd50c677c8bd9491ba46a29c97b5d3c4dce93477c66deb6",
17
+ "ciphertext": "44070d8d4d2dc7ac70c77732c22b87aa",
18
+ "mac": "901a65fb7c13995727904e99618d73de370d37913e0c33fc38c9c87737ccdf8a"
19
+ }
20
+ },
21
+ {
22
+ "name": "Binary data (64 bytes)",
23
+ "privateKey": "21796c4692ba9d34b7f273c0099b96625e8dec49ada0390724d23dc35f4986d1",
24
+ "publicKey": "04ab33f0e766d672f89c844633eb491e1ce75bce281423c11e1247503374e42f4b3877fab9a5b762ac78c8a639a0277d178280e580ffa992056b6d2ed3679f18ef",
25
+ "message": "0b35fb489cd6f2bd6ab923382053a2cffc1054371a8009cae0009a8fc4c75ecc52e937d6571ea9e29d40c29cffd2cf2a0a14021871017a6ac171e48d7feda637",
26
+ "encrypted": {
27
+ "iv": "a9e389c20c31d8aed19da6367a7d28e8",
28
+ "ephemPublicKey": "04fd61f7e70726779fd8e13bcbd5a41d2d8d7e3d24053eef6493bbae390e05e1a6fce46b6012549edcc267c5b6aa64f747b9466bcf086695c5a1344dcb187c41a2",
29
+ "ciphertext": "1c233cdaa6514370daaf3371c2f566522181c115bb445883caa0e97d205a46741c1d0726901da59978c346da826ccd7ff4c1d92742f43adef98faf5f7498c3ad811d3dda1f5e8be425051d4fb973bc3c",
30
+ "mac": "f18a5a0338c4a9c1b5242949873095a6d0ef2707918d05d89f745f27ed119c73"
31
+ }
32
+ },
33
+ {
34
+ "name": "Large data (1KB)",
35
+ "privateKey": "ae1a9ea14589c1d18c6f4c9683d4ee970d389cac2844cece049e1a2f5ee3f62e",
36
+ "publicKey": "045c0e8e526fba2c2aa05834c06db12d737bcb899f7763d46690f36eadb490c3ba4cdaf0bcb8799b903378dc5f9d350bbe3b935e5f323be3d477c9deb4fdb05212",
37
+ "message": "faab9c147b1f99687b418fd3e3fc5b9365aa16b5098c32e9db14ff0e79cc1fa36ab8454686a5ef2484479d1e4eb9a611996c26d3a0db5783dc152fa375114ca9fda31db7f7d3fa4db79b8607797cb3c7e5b8964f9ac65e1c4f2f039d39c4ac4ea708f37f578a19efe03b502a44d1aa092530f3f1129ba9972af48ff22376605bb9b9070602f6cc1f929129dff4c1a41c91339b613014e5aedf4ac83e67353e6005bc6c432610b10aa1d3a57a4e4083d57994f47e0b10dca68e7a7759e882ccc07712407d428b3236aca46c0d33e05cde10731f205dd89982afa2bd3df9ee04677de68e3a8fb8ec3cb18add7ff94b5dfc6eaf8d3df9650703ffe00349af79495059e7de7805813d51616228a5e4d18e85967b3c9838141b286be56ccb373f53952fbbc99f0e3bfbdf4107c917ab5ea6cd87bba0a0cef53ff3b64580a843005426d685a467196707386e52b3f1aa0af2dacf8e8df5479bc1a26923c5c39469ac562798357ecea355e740bc370ae623acadfeac0f42e3bf8ee2dac60cd1898bbcfea1ddbc54b3acebf5dd089fdbe9764d1577bec35b31ec14260ae62bbbad3e8748025abfece65a5986e1bd86446ca7c56789b6e7356538a75ac56c8ac14450ef62ae19fab518061cba066b90ac3e380d7526d8ab0e82bfa13a65dd0e5994610fb2beb1f324ca7beff4ca1466bc74e0a5f8d548a3f8f5681979130b890f03473564dc5a3b1374ca9e39def4ecde100e484816af89ed4d59aef54ffc51b075fa917d28412ad49eb3a79fb036b5caa101f46a61936cd7cf68dfd943547d3f34b19b6ae7c3a73cbebca8189708fa9a78a42f7ca121683a7f1dba1e70ac79fb7b51bae3392f5ea7872f11b74fdb135e090834136048680a077ab4cbfd9da21f39f51b26d83aed8786da2d803994089706518254beaff040a50b565d5d8ee7d93923102dcbb2514bf54f61d1546e88da96b407eda179ef7fbc2535342e24ae12fb4e7835c611b3ac588e2c2419b1215083e7b4023d2926e67aed81d475618b819c941e4f279d237b50cfff94149dc1f6066bdcdf808d14b7e7dddfd319202755494df8e06f677209c9f864fcf15247b947eca71d87e7d6f77581bbec95363e8ed6b5dc601f206cb61309c7d440fa6941bcd00b20ac45f42916712e9ec7951bd3e4d3d97382f570b0679519a8cde90a6a2ff37b5c34ecc155be5f8a900aad21e69ecf605cc5a30a8cb11e7ec748ade5033e2ef649b1bc0f09e910589dbd8f8144138365e636474dad70edcc8b83ba5f83bf5123a2cf40d3409fcc8927cea503780c7d0f2a34496a3c2669ca1f26a4bcfe5dc008e4504a226e0a38735c1b78a628e6283e4808718f304ebbcb9fa84c6c3c4080a9e6a4c252582e508d2336080a461fc2dc6216a2e006d2d35cbb837b7f85282d110c37bd5710d3fe388f7edca3e17a334a85",
38
+ "encrypted": {
39
+ "iv": "fb1452dae55b431b99a88376dbd732b8",
40
+ "ephemPublicKey": "04698c369bf59ef9477d1aa837cd384eb7768e76de2de7fc37d5b5abe1c7f81cd37453359979b7fc3947dd2bd499fe01bcaab265b0970f99150380f48ecfe5fc13",
41
+ "ciphertext": "87eb187e200fe08714ff110586afcce49f3f98045f44b6c5f752b25550cc96323808200b7e766cbc8af9b704252eaca6aeddbd4fc1da03118afb525c8fda4fdd354250f965a8ab02d1d66fb624ccaffa033aa7db4e151833075a81ecd43483f05e4bb8f46e4f1e5ea780ff0bcee3bc31d0d41851a43184e9e0bd499b03750445b8467a4085b056381ac04a11fda032b96fb1c90cf3c05bc3470a319568b8ddc993f822f7366e11ce326b5d9da9c72039a6e8746382f10c8bd8e1637d61c75bec11121457e29fabcc2a17ac613f5c8a2dcab3f3c1b2687f5c66deb29f95f0f4e1c83ce2c8d65a7f5139c04110f691e8d4eafa4f6891a6da1fa5f575e5c4fe7c350bffbd43df796b40b7d2804b883572695c2d1a384517500a42b10ecb512f4fba28f90a7c745f2dcd7193dfe91439aa54864be5273cd18e07c28c9fd117682765a78f8aae43edc378388098622628fbc7b7824a70dc8599400d45a850130e52363e8e1818626079e31593e67a2f5e1a5eae17dd52ca03680676b7db18bd0295a8f24ced48e5b57b7112fd4931898a5f8866b08ad4f647925586e16a3bb775316cde7bc298725e4c0fb0d66421e6dfde9d495bc3e4f7eea20fa184e2befd7499158e135e43afff610d310c9318a7c61858b09d51a7878dec4976d7647ab548819e91abb01971a77869ee16282b18cf323d3853846e509434a69fce2f378e286fa9a85f43938d961b9b95c9936f21e70a2164db96d6d6e6fa23ea742559abc01ea1b82ff8bb855cb350d894581818640e0d563bdf8e14dd80a43f46f8213e18377be29f4bea6ce2b2f3038be944a61cd8d82c3bf738f3800189e5aa41e1ddad4d6c2fca33c67bc11d9fec2296e8bab773bbc8b1127b74764ba16fcfd40d28ca43f8e8fc9bca197d5571196296e674091ff2ac93839a01d5650d1dbf851cfb6726c65847b39b4ec781794e1f54e12ec837cf773b4313566f665f80a0db3f299891b7c25bb733d52f7c2199b614669a4ae2eff3e2bd99806487178864c7acab76fdf09a406ca117d83f0f412af66e05152d4339f3d2f705976419cb5e75bc5d5e13b279e3b6065b83f61a0bd891d7932dbe802ee5390fc7b7ca3d117c14f6c3786e3578545583eef5107ea4fadf306c460c93bc1f96df692c988e9ce22329eec36bafbb8cfa3ddb30e3e33d71eb86830f54cf2a680b127f65e96b3842f966c466c705ce64450ab8d885f68c645046fbff85914f94ed72b92937d70f686abd933183974dc1086af958322d375d1728cea8902e00a0600f12c6b593f1382c61f97233bba6cd45392690a1c5d03f1b4aadacd1e723a5785850bb79d9e3f341e388b099947b61cf9ac83db5b8f01c888f245ed6a23f8dc519920b52576670ee567a923e68bd32a7c2ac364c342551060de4efcba0a078c40c7a8ec9db4a03bf5cc578ece351c6da0553341bbc89bb871c90ab2a45",
42
+ "mac": "faafe7a325f36260015408ef2d859f71628cb7ff5287c6f3ccf6eadba27abe3f"
43
+ }
44
+ },
45
+ {
46
+ "name": "UTF-8 text with special characters",
47
+ "privateKey": "d447811abc5bae2fd9c53f97569c50338108154cfa36f18fdbc300bcad37f493",
48
+ "publicKey": "045cb6eecff8afd418c2e590a956dae270a0342a9b1c9180f1500f7719da4b17702eed93f08415ebcf65036af2dc14f677e79aaa1cff54828285ff8686bc6c72bc",
49
+ "message": "48656c6c6f20e4b896e7958c2120f09f8e89205370656369616c2063686172733a20c3a0c3a9c3aec3b5c3bc",
50
+ "messageText": "Hello 世界! 🎉 Special chars: àéîõü",
51
+ "encrypted": {
52
+ "iv": "a6f108c025f8e041a79f085aa42e2a92",
53
+ "ephemPublicKey": "041cfe2092b3d086b60b15a74ab9850878d02dfb0b72976e593027fb6cfdef2634fffdd67639b02bd8c1ed222d22f3eaf8b2f262c38415ddc97629fc7c818670d7",
54
+ "ciphertext": "5b675b04b3a7d93883a9dc0962b47d421966a8fe400c2125b17d30e93b6a8999fb8fe7e82bf7c63fd08092debaafba3c",
55
+ "mac": "e786868550c316b5f31f696bf1aa2f7c59b795033456205f71603cc4d3a0a95b"
56
+ }
57
+ },
58
+ {
59
+ "name": "Known private key test",
60
+ "privateKey": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
61
+ "publicKey": "04bb50e2d89a4ed70663d080659fe0ad4b9bc3e06c17a227433966cb59ceee020decddbf6e00192011648d13b1c00af770c0c1bb609d4d3a5c98a43772e0e18ef4",
62
+ "message": "54657374206d6573736167652077697468206b6e6f776e206b6579",
63
+ "messageText": "Test message with known key",
64
+ "encrypted": {
65
+ "iv": "c8dffc7f392098524aa6acec38f36835",
66
+ "ephemPublicKey": "04b663805d764f8cde462c54019dc76d2f4ec6389f2ee5ca6bf9e13d12fc75c059390c624ae7d35ef2fd6bea4f5a93ccc0fc3a505d222490d9091de379cf2bd3c4",
67
+ "ciphertext": "2beecd177fffa8e07bd1119a208d3303a5a4b24f516b03876bbd319f4b32f1ec",
68
+ "mac": "ace56259ef19fe19aee629eac25327a6b4832ae258521e4dc41823dde910e86d"
69
+ }
70
+ }
71
+ ]
72
+ }
@@ -20,43 +20,9 @@ var utils_exports = {};
20
20
  __export(utils_exports, {
21
21
  bufferToBytes: () => bufferToBytes,
22
22
  bytesToBuffer: () => bytesToBuffer,
23
- bytesToHex: () => bytesToHex,
24
- bytesToString: () => bytesToString,
25
- concatBytes: () => concatBytes,
26
- constantTimeEqual: () => constantTimeEqual,
27
- hexToBytes: () => hexToBytes,
28
- stringToBytes: () => stringToBytes
23
+ constantTimeEqual: () => constantTimeEqual
29
24
  });
30
25
  module.exports = __toCommonJS(utils_exports);
31
- function hexToBytes(hex) {
32
- if (hex.length % 2 !== 0) {
33
- throw new Error("Hex string must have even length");
34
- }
35
- const bytes = new Uint8Array(hex.length / 2);
36
- for (let i = 0; i < hex.length; i += 2) {
37
- bytes[i / 2] = parseInt(hex.substr(i, 2), 16);
38
- }
39
- return bytes;
40
- }
41
- function bytesToHex(bytes) {
42
- return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
43
- }
44
- function stringToBytes(str) {
45
- return new TextEncoder().encode(str);
46
- }
47
- function bytesToString(bytes) {
48
- return new TextDecoder().decode(bytes);
49
- }
50
- function concatBytes(...arrays) {
51
- const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
52
- const result = new Uint8Array(totalLength);
53
- let offset = 0;
54
- for (const arr of arrays) {
55
- result.set(arr, offset);
56
- offset += arr.length;
57
- }
58
- return result;
59
- }
60
26
  function constantTimeEqual(a, b) {
61
27
  if (a.length !== b.length) return false;
62
28
  let result = 0;
@@ -81,11 +47,6 @@ function bytesToBuffer(bytes) {
81
47
  0 && (module.exports = {
82
48
  bufferToBytes,
83
49
  bytesToBuffer,
84
- bytesToHex,
85
- bytesToString,
86
- concatBytes,
87
- constantTimeEqual,
88
- hexToBytes,
89
- stringToBytes
50
+ constantTimeEqual
90
51
  });
91
52
  //# sourceMappingURL=utils.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/crypto/ecies/utils.ts"],"sourcesContent":["/**\n * Utility functions for ECIES operations\n *\n * Provides conversion utilities between different data formats\n * to bridge platform-specific implementations.\n */\n\n/**\n * Converts a hex string to Uint8Array\n *\n * @param hex - Hex string to convert\n * @returns Uint8Array representation of the hex string\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (hex.length % 2 !== 0) {\n throw new Error(\"Hex string must have even length\");\n }\n const bytes = new Uint8Array(hex.length / 2);\n for (let i = 0; i < hex.length; i += 2) {\n bytes[i / 2] = parseInt(hex.substr(i, 2), 16);\n }\n return bytes;\n}\n\n/**\n * Converts Uint8Array to hex string\n *\n * @param bytes - Bytes to convert to hex\n * @returns Hex string representation\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\n/**\n * Converts a string to Uint8Array using UTF-8 encoding\n *\n * @param str - String to convert\n * @returns UTF-8 encoded bytes\n */\nexport function stringToBytes(str: string): Uint8Array {\n return new TextEncoder().encode(str);\n}\n\n/**\n * Converts Uint8Array to string using UTF-8 decoding\n *\n * @param bytes - Bytes to decode\n * @returns Decoded UTF-8 string\n */\nexport function bytesToString(bytes: Uint8Array): string {\n return new TextDecoder().decode(bytes);\n}\n\n/**\n * Concatenates multiple Uint8Arrays into one\n *\n * @param arrays - Arrays to concatenate\n * @returns Concatenated Uint8Array\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\n/**\n * Checks if two Uint8Arrays are equal in constant time\n *\n * @param a - First array to compare\n * @param b - Second array to compare\n * @returns `true` if arrays are equal\n */\nexport function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false;\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return result === 0;\n}\n\n/**\n * Converts Buffer to Uint8Array (for Node.js compatibility layer)\n * In browser, this is a no-op if already Uint8Array\n *\n * @param buffer - Buffer or Uint8Array to convert\n * @returns Uint8Array representation\n */\nexport function bufferToBytes(buffer: Buffer | Uint8Array): Uint8Array {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n // Node.js Buffer is a subclass of Uint8Array\n return new Uint8Array(buffer);\n}\n\n/**\n * Converts Uint8Array to Buffer (for Node.js compatibility layer)\n * Only available in Node.js environment\n *\n * @param bytes - Uint8Array to convert to Buffer\n * @returns Buffer representation\n */\nexport function bytesToBuffer(bytes: Uint8Array): Buffer {\n if (typeof Buffer === \"undefined\") {\n throw new Error(\"Buffer is not available in browser environment\");\n }\n return Buffer.from(bytes);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaO,SAAS,WAAW,KAAyB;AAClD,MAAI,IAAI,SAAS,MAAM,GAAG;AACxB,UAAM,IAAI,MAAM,kCAAkC;AAAA,EACpD;AACA,QAAM,QAAQ,IAAI,WAAW,IAAI,SAAS,CAAC;AAC3C,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACtC,UAAM,IAAI,CAAC,IAAI,SAAS,IAAI,OAAO,GAAG,CAAC,GAAG,EAAE;AAAA,EAC9C;AACA,SAAO;AACT;AAQO,SAAS,WAAW,OAA2B;AACpD,SAAO,MAAM,KAAK,KAAK,EACpB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAC1C,KAAK,EAAE;AACZ;AAQO,SAAS,cAAc,KAAyB;AACrD,SAAO,IAAI,YAAY,EAAE,OAAO,GAAG;AACrC;AAQO,SAAS,cAAc,OAA2B;AACvD,SAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AACvC;AAQO,SAAS,eAAe,QAAkC;AAC/D,QAAM,cAAc,OAAO,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,QAAQ,CAAC;AACnE,QAAM,SAAS,IAAI,WAAW,WAAW;AACzC,MAAI,SAAS;AACb,aAAW,OAAO,QAAQ;AACxB,WAAO,IAAI,KAAK,MAAM;AACtB,cAAU,IAAI;AAAA,EAChB;AACA,SAAO;AACT;AASO,SAAS,kBAAkB,GAAe,GAAwB;AACvE,MAAI,EAAE,WAAW,EAAE,OAAQ,QAAO;AAClC,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,cAAU,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA,EACtB;AACA,SAAO,WAAW;AACpB;AASO,SAAS,cAAc,QAAyC;AACrE,MAAI,kBAAkB,YAAY;AAChC,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,WAAW,MAAM;AAC9B;AASO,SAAS,cAAc,OAA2B;AACvD,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,SAAO,OAAO,KAAK,KAAK;AAC1B;","names":[]}
1
+ {"version":3,"sources":["../../../src/crypto/ecies/utils.ts"],"sourcesContent":["/**\n * Utility functions for ECIES operations\n *\n * Provides conversion utilities between different data formats\n * to bridge platform-specific implementations.\n */\n\n/**\n * Checks if two Uint8Arrays are equal in constant time\n *\n * @param a - First array to compare\n * @param b - Second array to compare\n * @returns `true` if arrays are equal\n */\nexport function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false;\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return result === 0;\n}\n\n/**\n * Converts Buffer to Uint8Array (for Node.js compatibility layer)\n * In browser, this is a no-op if already Uint8Array\n *\n * @param buffer - Buffer or Uint8Array to convert\n * @returns Uint8Array representation\n */\nexport function bufferToBytes(buffer: Buffer | Uint8Array): Uint8Array {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n // Node.js Buffer is a subclass of Uint8Array\n return new Uint8Array(buffer);\n}\n\n/**\n * Converts Uint8Array to Buffer (for Node.js compatibility layer)\n * Only available in Node.js environment\n *\n * @param bytes - Uint8Array to convert to Buffer\n * @returns Buffer representation\n */\nexport function bytesToBuffer(bytes: Uint8Array): Buffer {\n if (typeof Buffer === \"undefined\") {\n throw new Error(\"Buffer is not available in browser environment\");\n }\n return Buffer.from(bytes);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcO,SAAS,kBAAkB,GAAe,GAAwB;AACvE,MAAI,EAAE,WAAW,EAAE,OAAQ,QAAO;AAClC,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,cAAU,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA,EACtB;AACA,SAAO,WAAW;AACpB;AASO,SAAS,cAAc,QAAyC;AACrE,MAAI,kBAAkB,YAAY;AAChC,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,WAAW,MAAM;AAC9B;AASO,SAAS,cAAc,OAA2B;AACvD,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,SAAO,OAAO,KAAK,KAAK;AAC1B;","names":[]}
@@ -4,41 +4,6 @@
4
4
  * Provides conversion utilities between different data formats
5
5
  * to bridge platform-specific implementations.
6
6
  */
7
- /**
8
- * Converts a hex string to Uint8Array
9
- *
10
- * @param hex - Hex string to convert
11
- * @returns Uint8Array representation of the hex string
12
- */
13
- declare function hexToBytes(hex: string): Uint8Array;
14
- /**
15
- * Converts Uint8Array to hex string
16
- *
17
- * @param bytes - Bytes to convert to hex
18
- * @returns Hex string representation
19
- */
20
- declare function bytesToHex(bytes: Uint8Array): string;
21
- /**
22
- * Converts a string to Uint8Array using UTF-8 encoding
23
- *
24
- * @param str - String to convert
25
- * @returns UTF-8 encoded bytes
26
- */
27
- declare function stringToBytes(str: string): Uint8Array;
28
- /**
29
- * Converts Uint8Array to string using UTF-8 decoding
30
- *
31
- * @param bytes - Bytes to decode
32
- * @returns Decoded UTF-8 string
33
- */
34
- declare function bytesToString(bytes: Uint8Array): string;
35
- /**
36
- * Concatenates multiple Uint8Arrays into one
37
- *
38
- * @param arrays - Arrays to concatenate
39
- * @returns Concatenated Uint8Array
40
- */
41
- declare function concatBytes(...arrays: Uint8Array[]): Uint8Array;
42
7
  /**
43
8
  * Checks if two Uint8Arrays are equal in constant time
44
9
  *
@@ -46,7 +11,7 @@ declare function concatBytes(...arrays: Uint8Array[]): Uint8Array;
46
11
  * @param b - Second array to compare
47
12
  * @returns `true` if arrays are equal
48
13
  */
49
- declare function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean;
14
+ export declare function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean;
50
15
  /**
51
16
  * Converts Buffer to Uint8Array (for Node.js compatibility layer)
52
17
  * In browser, this is a no-op if already Uint8Array
@@ -54,7 +19,7 @@ declare function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean;
54
19
  * @param buffer - Buffer or Uint8Array to convert
55
20
  * @returns Uint8Array representation
56
21
  */
57
- declare function bufferToBytes(buffer: Buffer | Uint8Array): Uint8Array;
22
+ export declare function bufferToBytes(buffer: Buffer | Uint8Array): Uint8Array;
58
23
  /**
59
24
  * Converts Uint8Array to Buffer (for Node.js compatibility layer)
60
25
  * Only available in Node.js environment
@@ -62,6 +27,4 @@ declare function bufferToBytes(buffer: Buffer | Uint8Array): Uint8Array;
62
27
  * @param bytes - Uint8Array to convert to Buffer
63
28
  * @returns Buffer representation
64
29
  */
65
- declare function bytesToBuffer(bytes: Uint8Array): Buffer;
66
-
67
- export { bufferToBytes, bytesToBuffer, bytesToHex, bytesToString, concatBytes, constantTimeEqual, hexToBytes, stringToBytes };
30
+ export declare function bytesToBuffer(bytes: Uint8Array): Buffer;
@@ -1,32 +1,3 @@
1
- function hexToBytes(hex) {
2
- if (hex.length % 2 !== 0) {
3
- throw new Error("Hex string must have even length");
4
- }
5
- const bytes = new Uint8Array(hex.length / 2);
6
- for (let i = 0; i < hex.length; i += 2) {
7
- bytes[i / 2] = parseInt(hex.substr(i, 2), 16);
8
- }
9
- return bytes;
10
- }
11
- function bytesToHex(bytes) {
12
- return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
13
- }
14
- function stringToBytes(str) {
15
- return new TextEncoder().encode(str);
16
- }
17
- function bytesToString(bytes) {
18
- return new TextDecoder().decode(bytes);
19
- }
20
- function concatBytes(...arrays) {
21
- const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
22
- const result = new Uint8Array(totalLength);
23
- let offset = 0;
24
- for (const arr of arrays) {
25
- result.set(arr, offset);
26
- offset += arr.length;
27
- }
28
- return result;
29
- }
30
1
  function constantTimeEqual(a, b) {
31
2
  if (a.length !== b.length) return false;
32
3
  let result = 0;
@@ -50,11 +21,6 @@ function bytesToBuffer(bytes) {
50
21
  export {
51
22
  bufferToBytes,
52
23
  bytesToBuffer,
53
- bytesToHex,
54
- bytesToString,
55
- concatBytes,
56
- constantTimeEqual,
57
- hexToBytes,
58
- stringToBytes
24
+ constantTimeEqual
59
25
  };
60
26
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/crypto/ecies/utils.ts"],"sourcesContent":["/**\n * Utility functions for ECIES operations\n *\n * Provides conversion utilities between different data formats\n * to bridge platform-specific implementations.\n */\n\n/**\n * Converts a hex string to Uint8Array\n *\n * @param hex - Hex string to convert\n * @returns Uint8Array representation of the hex string\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (hex.length % 2 !== 0) {\n throw new Error(\"Hex string must have even length\");\n }\n const bytes = new Uint8Array(hex.length / 2);\n for (let i = 0; i < hex.length; i += 2) {\n bytes[i / 2] = parseInt(hex.substr(i, 2), 16);\n }\n return bytes;\n}\n\n/**\n * Converts Uint8Array to hex string\n *\n * @param bytes - Bytes to convert to hex\n * @returns Hex string representation\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\n/**\n * Converts a string to Uint8Array using UTF-8 encoding\n *\n * @param str - String to convert\n * @returns UTF-8 encoded bytes\n */\nexport function stringToBytes(str: string): Uint8Array {\n return new TextEncoder().encode(str);\n}\n\n/**\n * Converts Uint8Array to string using UTF-8 decoding\n *\n * @param bytes - Bytes to decode\n * @returns Decoded UTF-8 string\n */\nexport function bytesToString(bytes: Uint8Array): string {\n return new TextDecoder().decode(bytes);\n}\n\n/**\n * Concatenates multiple Uint8Arrays into one\n *\n * @param arrays - Arrays to concatenate\n * @returns Concatenated Uint8Array\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\n/**\n * Checks if two Uint8Arrays are equal in constant time\n *\n * @param a - First array to compare\n * @param b - Second array to compare\n * @returns `true` if arrays are equal\n */\nexport function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false;\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return result === 0;\n}\n\n/**\n * Converts Buffer to Uint8Array (for Node.js compatibility layer)\n * In browser, this is a no-op if already Uint8Array\n *\n * @param buffer - Buffer or Uint8Array to convert\n * @returns Uint8Array representation\n */\nexport function bufferToBytes(buffer: Buffer | Uint8Array): Uint8Array {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n // Node.js Buffer is a subclass of Uint8Array\n return new Uint8Array(buffer);\n}\n\n/**\n * Converts Uint8Array to Buffer (for Node.js compatibility layer)\n * Only available in Node.js environment\n *\n * @param bytes - Uint8Array to convert to Buffer\n * @returns Buffer representation\n */\nexport function bytesToBuffer(bytes: Uint8Array): Buffer {\n if (typeof Buffer === \"undefined\") {\n throw new Error(\"Buffer is not available in browser environment\");\n }\n return Buffer.from(bytes);\n}\n"],"mappings":"AAaO,SAAS,WAAW,KAAyB;AAClD,MAAI,IAAI,SAAS,MAAM,GAAG;AACxB,UAAM,IAAI,MAAM,kCAAkC;AAAA,EACpD;AACA,QAAM,QAAQ,IAAI,WAAW,IAAI,SAAS,CAAC;AAC3C,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACtC,UAAM,IAAI,CAAC,IAAI,SAAS,IAAI,OAAO,GAAG,CAAC,GAAG,EAAE;AAAA,EAC9C;AACA,SAAO;AACT;AAQO,SAAS,WAAW,OAA2B;AACpD,SAAO,MAAM,KAAK,KAAK,EACpB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAC1C,KAAK,EAAE;AACZ;AAQO,SAAS,cAAc,KAAyB;AACrD,SAAO,IAAI,YAAY,EAAE,OAAO,GAAG;AACrC;AAQO,SAAS,cAAc,OAA2B;AACvD,SAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AACvC;AAQO,SAAS,eAAe,QAAkC;AAC/D,QAAM,cAAc,OAAO,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,QAAQ,CAAC;AACnE,QAAM,SAAS,IAAI,WAAW,WAAW;AACzC,MAAI,SAAS;AACb,aAAW,OAAO,QAAQ;AACxB,WAAO,IAAI,KAAK,MAAM;AACtB,cAAU,IAAI;AAAA,EAChB;AACA,SAAO;AACT;AASO,SAAS,kBAAkB,GAAe,GAAwB;AACvE,MAAI,EAAE,WAAW,EAAE,OAAQ,QAAO;AAClC,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,cAAU,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA,EACtB;AACA,SAAO,WAAW;AACpB;AASO,SAAS,cAAc,QAAyC;AACrE,MAAI,kBAAkB,YAAY;AAChC,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,WAAW,MAAM;AAC9B;AASO,SAAS,cAAc,OAA2B;AACvD,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,SAAO,OAAO,KAAK,KAAK;AAC1B;","names":[]}
1
+ {"version":3,"sources":["../../../src/crypto/ecies/utils.ts"],"sourcesContent":["/**\n * Utility functions for ECIES operations\n *\n * Provides conversion utilities between different data formats\n * to bridge platform-specific implementations.\n */\n\n/**\n * Checks if two Uint8Arrays are equal in constant time\n *\n * @param a - First array to compare\n * @param b - Second array to compare\n * @returns `true` if arrays are equal\n */\nexport function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false;\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return result === 0;\n}\n\n/**\n * Converts Buffer to Uint8Array (for Node.js compatibility layer)\n * In browser, this is a no-op if already Uint8Array\n *\n * @param buffer - Buffer or Uint8Array to convert\n * @returns Uint8Array representation\n */\nexport function bufferToBytes(buffer: Buffer | Uint8Array): Uint8Array {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n // Node.js Buffer is a subclass of Uint8Array\n return new Uint8Array(buffer);\n}\n\n/**\n * Converts Uint8Array to Buffer (for Node.js compatibility layer)\n * Only available in Node.js environment\n *\n * @param bytes - Uint8Array to convert to Buffer\n * @returns Buffer representation\n */\nexport function bytesToBuffer(bytes: Uint8Array): Buffer {\n if (typeof Buffer === \"undefined\") {\n throw new Error(\"Buffer is not available in browser environment\");\n }\n return Buffer.from(bytes);\n}\n"],"mappings":"AAcO,SAAS,kBAAkB,GAAe,GAAwB;AACvE,MAAI,EAAE,WAAW,EAAE,OAAQ,QAAO;AAClC,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,cAAU,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA,EACtB;AACA,SAAO,WAAW;AACpB;AASO,SAAS,cAAc,QAAyC;AACrE,MAAI,kBAAkB,YAAY;AAChC,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,WAAW,MAAM;AAC9B;AASO,SAAS,cAAc,OAA2B;AACvD,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,SAAO,OAAO,KAAK,KAAK;AAC1B;","names":[]}
@@ -53,12 +53,12 @@ class WalletKeyEncryptionService {
53
53
  normalizedKey,
54
54
  dataBytes
55
55
  );
56
- const result = (0, import_crypto_utils.concatBytes)(
56
+ const result = (0, import_viem.concat)([
57
57
  encrypted.iv,
58
58
  encrypted.ephemPublicKey,
59
59
  encrypted.ciphertext,
60
60
  encrypted.mac
61
- );
61
+ ]);
62
62
  return (0, import_viem.toHex)(result).slice(2);
63
63
  }
64
64
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/crypto/services/WalletKeyEncryptionService.ts"],"sourcesContent":["/**\n * Service for wallet key encryption and decryption operations.\n *\n * @remarks\n * This service separates business logic (wallet key processing) from crypto primitives\n * (ECIES operations). It handles key normalization, data conversion, and format transformation\n * while delegating actual cryptographic operations to the provided ECIES provider.\n *\n * @category Cryptography\n * @internal\n */\n\nimport type { ECIESProvider, ECIESEncrypted } from \"../ecies/interface\";\nimport {\n processWalletPublicKey,\n processWalletPrivateKey,\n parseEncryptedDataBuffer,\n concatBytes,\n} from \"../../utils/crypto-utils\";\nimport { stringToBytes, bytesToString, toHex, fromHex } from \"viem\";\n\nexport interface WalletKeyEncryptionServiceConfig {\n /** ECIES provider for encryption/decryption */\n eciesProvider: ECIESProvider;\n}\n\n/**\n * Service for wallet key encryption and decryption operations\n *\n * @remarks\n * This service encapsulates the business logic for wallet key operations,\n * delegating actual cryptographic operations to the provided ECIES provider.\n * It handles key normalization, data conversion, and format transformation.\n *\n * @internal\n */\nexport class WalletKeyEncryptionService {\n private readonly eciesProvider: ECIESProvider;\n\n constructor(config: WalletKeyEncryptionServiceConfig) {\n this.eciesProvider = config.eciesProvider;\n }\n\n /**\n * Encrypts data using a wallet's public key.\n *\n * @param data - The plaintext message to encrypt for the wallet owner.\n * @param publicKey - The recipient wallet's public key for encryption.\n * @returns A promise that resolves to the encrypted data as a hex string.\n * @throws {Error} When encryption fails due to invalid key format.\n *\n * @example\n * ```typescript\n * const encrypted = await processor.encryptWithWalletPublicKey(\n * \"Secret message\",\n * \"0x04...\" // 65-byte uncompressed public key\n * );\n * console.log(`Encrypted: ${encrypted}`);\n * ```\n */\n async encryptWithWalletPublicKey(\n data: string,\n publicKey: string | Uint8Array,\n ): Promise<string> {\n // Process the public key to ensure correct format\n const publicKeyBytes = processWalletPublicKey(publicKey);\n\n // Normalize to uncompressed format using the provider\n // This handles compressed keys, raw coordinates, and validates the format\n const normalizedKey =\n this.eciesProvider.normalizeToUncompressed(publicKeyBytes);\n\n // Convert string data to bytes\n const dataBytes = stringToBytes(data);\n\n // Perform ECIES encryption\n const encrypted = await this.eciesProvider.encrypt(\n normalizedKey,\n dataBytes,\n );\n\n // Concatenate all components for legacy format compatibility\n const result = concatBytes(\n encrypted.iv,\n encrypted.ephemPublicKey,\n encrypted.ciphertext,\n encrypted.mac,\n );\n\n // Return as hex string without 0x prefix for API compatibility\n return toHex(result).slice(2);\n }\n\n /**\n * Decrypts data using a wallet's private key.\n *\n * @param encryptedData - The hex-encoded encrypted data to decrypt.\n * @param privateKey - The wallet's private key for decryption.\n * @returns A promise that resolves to the decrypted plaintext message.\n * @throws {Error} When decryption fails due to invalid data or key format.\n *\n * @example\n * ```typescript\n * const decrypted = await processor.decryptWithWalletPrivateKey(\n * encryptedHexString,\n * \"0x...\" // 32-byte private key\n * );\n * console.log(`Decrypted: ${decrypted}`);\n * ```\n */\n async decryptWithWalletPrivateKey(\n encryptedData: string,\n privateKey: string | Uint8Array,\n ): Promise<string> {\n // Process the private key to ensure correct format\n const privateKeyBytes = processWalletPrivateKey(privateKey);\n\n // Convert hex string to bytes and parse encrypted components\n const prefixedHex = encryptedData.startsWith(\"0x\")\n ? encryptedData\n : `0x${encryptedData}`;\n const encryptedBytes = fromHex(prefixedHex as `0x${string}`, \"bytes\");\n const encrypted = parseEncryptedDataBuffer(encryptedBytes);\n\n // Perform ECIES decryption\n const decrypted = await this.eciesProvider.decrypt(\n privateKeyBytes,\n encrypted,\n );\n\n // Convert bytes back to string\n return bytesToString(decrypted);\n }\n\n /**\n * Encrypts a Uint8Array with a wallet public key\n *\n * @param data - Binary data to encrypt\n * @param publicKey - Public key as hex string or Uint8Array\n * @returns Encrypted data structure\n */\n async encryptBinary(\n data: Uint8Array,\n publicKey: string | Uint8Array,\n ): Promise<ECIESEncrypted> {\n const publicKeyBytes = processWalletPublicKey(publicKey);\n const normalizedKey =\n this.eciesProvider.normalizeToUncompressed(publicKeyBytes);\n return this.eciesProvider.encrypt(normalizedKey, data);\n }\n\n /**\n * Decrypts to a Uint8Array with a wallet private key\n *\n * @param encrypted - Encrypted data structure\n * @param privateKey - Private key as hex string or Uint8Array\n * @returns Decrypted binary data\n */\n async decryptBinary(\n encrypted: ECIESEncrypted,\n privateKey: string | Uint8Array,\n ): Promise<Uint8Array> {\n const privateKeyBytes = processWalletPrivateKey(privateKey);\n return this.eciesProvider.decrypt(privateKeyBytes, encrypted);\n }\n\n /**\n * Gets the underlying ECIES provider\n *\n * @returns The ECIES provider instance\n */\n getECIESProvider(): ECIESProvider {\n return this.eciesProvider;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,0BAKO;AACP,kBAA6D;AAiBtD,MAAM,2BAA2B;AAAA,EACrB;AAAA,EAEjB,YAAY,QAA0C;AACpD,SAAK,gBAAgB,OAAO;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,MAAM,2BACJ,MACA,WACiB;AAEjB,UAAM,qBAAiB,4CAAuB,SAAS;AAIvD,UAAM,gBACJ,KAAK,cAAc,wBAAwB,cAAc;AAG3D,UAAM,gBAAY,2BAAc,IAAI;AAGpC,UAAM,YAAY,MAAM,KAAK,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAGA,UAAM,aAAS;AAAA,MACb,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AAGA,eAAO,mBAAM,MAAM,EAAE,MAAM,CAAC;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,MAAM,4BACJ,eACA,YACiB;AAEjB,UAAM,sBAAkB,6CAAwB,UAAU;AAG1D,UAAM,cAAc,cAAc,WAAW,IAAI,IAC7C,gBACA,KAAK,aAAa;AACtB,UAAM,qBAAiB,qBAAQ,aAA8B,OAAO;AACpE,UAAM,gBAAY,8CAAyB,cAAc;AAGzD,UAAM,YAAY,MAAM,KAAK,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAGA,eAAO,2BAAc,SAAS;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cACJ,MACA,WACyB;AACzB,UAAM,qBAAiB,4CAAuB,SAAS;AACvD,UAAM,gBACJ,KAAK,cAAc,wBAAwB,cAAc;AAC3D,WAAO,KAAK,cAAc,QAAQ,eAAe,IAAI;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cACJ,WACA,YACqB;AACrB,UAAM,sBAAkB,6CAAwB,UAAU;AAC1D,WAAO,KAAK,cAAc,QAAQ,iBAAiB,SAAS;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,mBAAkC;AAChC,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/crypto/services/WalletKeyEncryptionService.ts"],"sourcesContent":["/**\n * Service for wallet key encryption and decryption operations.\n *\n * @remarks\n * This service separates business logic (wallet key processing) from crypto primitives\n * (ECIES operations). It handles key normalization, data conversion, and format transformation\n * while delegating actual cryptographic operations to the provided ECIES provider.\n *\n * @category Cryptography\n * @internal\n */\n\nimport type { ECIESProvider, ECIESEncrypted } from \"../ecies/interface\";\nimport {\n processWalletPublicKey,\n processWalletPrivateKey,\n parseEncryptedDataBuffer,\n} from \"../../utils/crypto-utils\";\nimport { stringToBytes, bytesToString, toHex, fromHex, concat } from \"viem\";\n\nexport interface WalletKeyEncryptionServiceConfig {\n /** ECIES provider for encryption/decryption */\n eciesProvider: ECIESProvider;\n}\n\n/**\n * Service for wallet key encryption and decryption operations\n *\n * @remarks\n * This service encapsulates the business logic for wallet key operations,\n * delegating actual cryptographic operations to the provided ECIES provider.\n * It handles key normalization, data conversion, and format transformation.\n *\n * @internal\n */\nexport class WalletKeyEncryptionService {\n private readonly eciesProvider: ECIESProvider;\n\n constructor(config: WalletKeyEncryptionServiceConfig) {\n this.eciesProvider = config.eciesProvider;\n }\n\n /**\n * Encrypts data using a wallet's public key.\n *\n * @param data - The plaintext message to encrypt for the wallet owner.\n * @param publicKey - The recipient wallet's public key for encryption.\n * @returns A promise that resolves to the encrypted data as a hex string.\n * @throws {Error} When encryption fails due to invalid key format.\n *\n * @example\n * ```typescript\n * const encrypted = await processor.encryptWithWalletPublicKey(\n * \"Secret message\",\n * \"0x04...\" // 65-byte uncompressed public key\n * );\n * console.log(`Encrypted: ${encrypted}`);\n * ```\n */\n async encryptWithWalletPublicKey(\n data: string,\n publicKey: string | Uint8Array,\n ): Promise<string> {\n // Process the public key to ensure correct format\n const publicKeyBytes = processWalletPublicKey(publicKey);\n\n // Normalize to uncompressed format using the provider\n // This handles compressed keys, raw coordinates, and validates the format\n const normalizedKey =\n this.eciesProvider.normalizeToUncompressed(publicKeyBytes);\n\n // Convert string data to bytes\n const dataBytes = stringToBytes(data);\n\n // Perform ECIES encryption\n const encrypted = await this.eciesProvider.encrypt(\n normalizedKey,\n dataBytes,\n );\n\n // Concatenate all components for legacy format compatibility\n const result = concat([\n encrypted.iv,\n encrypted.ephemPublicKey,\n encrypted.ciphertext,\n encrypted.mac,\n ]);\n\n // Return as hex string without 0x prefix for API compatibility\n return toHex(result).slice(2);\n }\n\n /**\n * Decrypts data using a wallet's private key.\n *\n * @param encryptedData - The hex-encoded encrypted data to decrypt.\n * @param privateKey - The wallet's private key for decryption.\n * @returns A promise that resolves to the decrypted plaintext message.\n * @throws {Error} When decryption fails due to invalid data or key format.\n *\n * @example\n * ```typescript\n * const decrypted = await processor.decryptWithWalletPrivateKey(\n * encryptedHexString,\n * \"0x...\" // 32-byte private key\n * );\n * console.log(`Decrypted: ${decrypted}`);\n * ```\n */\n async decryptWithWalletPrivateKey(\n encryptedData: string,\n privateKey: string | Uint8Array,\n ): Promise<string> {\n // Process the private key to ensure correct format\n const privateKeyBytes = processWalletPrivateKey(privateKey);\n\n // Convert hex string to bytes and parse encrypted components\n const prefixedHex = encryptedData.startsWith(\"0x\")\n ? encryptedData\n : `0x${encryptedData}`;\n const encryptedBytes = fromHex(prefixedHex as `0x${string}`, \"bytes\");\n const encrypted = parseEncryptedDataBuffer(encryptedBytes);\n\n // Perform ECIES decryption\n const decrypted = await this.eciesProvider.decrypt(\n privateKeyBytes,\n encrypted,\n );\n\n // Convert bytes back to string\n return bytesToString(decrypted);\n }\n\n /**\n * Encrypts a Uint8Array with a wallet public key\n *\n * @param data - Binary data to encrypt\n * @param publicKey - Public key as hex string or Uint8Array\n * @returns Encrypted data structure\n */\n async encryptBinary(\n data: Uint8Array,\n publicKey: string | Uint8Array,\n ): Promise<ECIESEncrypted> {\n const publicKeyBytes = processWalletPublicKey(publicKey);\n const normalizedKey =\n this.eciesProvider.normalizeToUncompressed(publicKeyBytes);\n return this.eciesProvider.encrypt(normalizedKey, data);\n }\n\n /**\n * Decrypts to a Uint8Array with a wallet private key\n *\n * @param encrypted - Encrypted data structure\n * @param privateKey - Private key as hex string or Uint8Array\n * @returns Decrypted binary data\n */\n async decryptBinary(\n encrypted: ECIESEncrypted,\n privateKey: string | Uint8Array,\n ): Promise<Uint8Array> {\n const privateKeyBytes = processWalletPrivateKey(privateKey);\n return this.eciesProvider.decrypt(privateKeyBytes, encrypted);\n }\n\n /**\n * Gets the underlying ECIES provider\n *\n * @returns The ECIES provider instance\n */\n getECIESProvider(): ECIESProvider {\n return this.eciesProvider;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,0BAIO;AACP,kBAAqE;AAiB9D,MAAM,2BAA2B;AAAA,EACrB;AAAA,EAEjB,YAAY,QAA0C;AACpD,SAAK,gBAAgB,OAAO;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,MAAM,2BACJ,MACA,WACiB;AAEjB,UAAM,qBAAiB,4CAAuB,SAAS;AAIvD,UAAM,gBACJ,KAAK,cAAc,wBAAwB,cAAc;AAG3D,UAAM,gBAAY,2BAAc,IAAI;AAGpC,UAAM,YAAY,MAAM,KAAK,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAGA,UAAM,aAAS,oBAAO;AAAA,MACpB,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACZ,CAAC;AAGD,eAAO,mBAAM,MAAM,EAAE,MAAM,CAAC;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,MAAM,4BACJ,eACA,YACiB;AAEjB,UAAM,sBAAkB,6CAAwB,UAAU;AAG1D,UAAM,cAAc,cAAc,WAAW,IAAI,IAC7C,gBACA,KAAK,aAAa;AACtB,UAAM,qBAAiB,qBAAQ,aAA8B,OAAO;AACpE,UAAM,gBAAY,8CAAyB,cAAc;AAGzD,UAAM,YAAY,MAAM,KAAK,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAGA,eAAO,2BAAc,SAAS;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cACJ,MACA,WACyB;AACzB,UAAM,qBAAiB,4CAAuB,SAAS;AACvD,UAAM,gBACJ,KAAK,cAAc,wBAAwB,cAAc;AAC3D,WAAO,KAAK,cAAc,QAAQ,eAAe,IAAI;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cACJ,WACA,YACqB;AACrB,UAAM,sBAAkB,6CAAwB,UAAU;AAC1D,WAAO,KAAK,cAAc,QAAQ,iBAAiB,SAAS;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,mBAAkC;AAChC,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}
@@ -1,5 +1,3 @@
1
- import { ECIESProvider, ECIESEncrypted } from '../ecies/interface.js';
2
-
3
1
  /**
4
2
  * Service for wallet key encryption and decryption operations.
5
3
  *
@@ -11,8 +9,8 @@ import { ECIESProvider, ECIESEncrypted } from '../ecies/interface.js';
11
9
  * @category Cryptography
12
10
  * @internal
13
11
  */
14
-
15
- interface WalletKeyEncryptionServiceConfig {
12
+ import type { ECIESProvider, ECIESEncrypted } from "../ecies/interface";
13
+ export interface WalletKeyEncryptionServiceConfig {
16
14
  /** ECIES provider for encryption/decryption */
17
15
  eciesProvider: ECIESProvider;
18
16
  }
@@ -26,7 +24,7 @@ interface WalletKeyEncryptionServiceConfig {
26
24
  *
27
25
  * @internal
28
26
  */
29
- declare class WalletKeyEncryptionService {
27
+ export declare class WalletKeyEncryptionService {
30
28
  private readonly eciesProvider;
31
29
  constructor(config: WalletKeyEncryptionServiceConfig);
32
30
  /**
@@ -88,5 +86,3 @@ declare class WalletKeyEncryptionService {
88
86
  */
89
87
  getECIESProvider(): ECIESProvider;
90
88
  }
91
-
92
- export { WalletKeyEncryptionService, type WalletKeyEncryptionServiceConfig };
@@ -1,16 +1,12 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
1
  import {
5
2
  processWalletPublicKey,
6
3
  processWalletPrivateKey,
7
- parseEncryptedDataBuffer,
8
- concatBytes
4
+ parseEncryptedDataBuffer
9
5
  } from "../../utils/crypto-utils";
10
- import { stringToBytes, bytesToString, toHex, fromHex } from "viem";
6
+ import { stringToBytes, bytesToString, toHex, fromHex, concat } from "viem";
11
7
  class WalletKeyEncryptionService {
8
+ eciesProvider;
12
9
  constructor(config) {
13
- __publicField(this, "eciesProvider");
14
10
  this.eciesProvider = config.eciesProvider;
15
11
  }
16
12
  /**
@@ -38,12 +34,12 @@ class WalletKeyEncryptionService {
38
34
  normalizedKey,
39
35
  dataBytes
40
36
  );
41
- const result = concatBytes(
37
+ const result = concat([
42
38
  encrypted.iv,
43
39
  encrypted.ephemPublicKey,
44
40
  encrypted.ciphertext,
45
41
  encrypted.mac
46
- );
42
+ ]);
47
43
  return toHex(result).slice(2);
48
44
  }
49
45
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/crypto/services/WalletKeyEncryptionService.ts"],"sourcesContent":["/**\n * Service for wallet key encryption and decryption operations.\n *\n * @remarks\n * This service separates business logic (wallet key processing) from crypto primitives\n * (ECIES operations). It handles key normalization, data conversion, and format transformation\n * while delegating actual cryptographic operations to the provided ECIES provider.\n *\n * @category Cryptography\n * @internal\n */\n\nimport type { ECIESProvider, ECIESEncrypted } from \"../ecies/interface\";\nimport {\n processWalletPublicKey,\n processWalletPrivateKey,\n parseEncryptedDataBuffer,\n concatBytes,\n} from \"../../utils/crypto-utils\";\nimport { stringToBytes, bytesToString, toHex, fromHex } from \"viem\";\n\nexport interface WalletKeyEncryptionServiceConfig {\n /** ECIES provider for encryption/decryption */\n eciesProvider: ECIESProvider;\n}\n\n/**\n * Service for wallet key encryption and decryption operations\n *\n * @remarks\n * This service encapsulates the business logic for wallet key operations,\n * delegating actual cryptographic operations to the provided ECIES provider.\n * It handles key normalization, data conversion, and format transformation.\n *\n * @internal\n */\nexport class WalletKeyEncryptionService {\n private readonly eciesProvider: ECIESProvider;\n\n constructor(config: WalletKeyEncryptionServiceConfig) {\n this.eciesProvider = config.eciesProvider;\n }\n\n /**\n * Encrypts data using a wallet's public key.\n *\n * @param data - The plaintext message to encrypt for the wallet owner.\n * @param publicKey - The recipient wallet's public key for encryption.\n * @returns A promise that resolves to the encrypted data as a hex string.\n * @throws {Error} When encryption fails due to invalid key format.\n *\n * @example\n * ```typescript\n * const encrypted = await processor.encryptWithWalletPublicKey(\n * \"Secret message\",\n * \"0x04...\" // 65-byte uncompressed public key\n * );\n * console.log(`Encrypted: ${encrypted}`);\n * ```\n */\n async encryptWithWalletPublicKey(\n data: string,\n publicKey: string | Uint8Array,\n ): Promise<string> {\n // Process the public key to ensure correct format\n const publicKeyBytes = processWalletPublicKey(publicKey);\n\n // Normalize to uncompressed format using the provider\n // This handles compressed keys, raw coordinates, and validates the format\n const normalizedKey =\n this.eciesProvider.normalizeToUncompressed(publicKeyBytes);\n\n // Convert string data to bytes\n const dataBytes = stringToBytes(data);\n\n // Perform ECIES encryption\n const encrypted = await this.eciesProvider.encrypt(\n normalizedKey,\n dataBytes,\n );\n\n // Concatenate all components for legacy format compatibility\n const result = concatBytes(\n encrypted.iv,\n encrypted.ephemPublicKey,\n encrypted.ciphertext,\n encrypted.mac,\n );\n\n // Return as hex string without 0x prefix for API compatibility\n return toHex(result).slice(2);\n }\n\n /**\n * Decrypts data using a wallet's private key.\n *\n * @param encryptedData - The hex-encoded encrypted data to decrypt.\n * @param privateKey - The wallet's private key for decryption.\n * @returns A promise that resolves to the decrypted plaintext message.\n * @throws {Error} When decryption fails due to invalid data or key format.\n *\n * @example\n * ```typescript\n * const decrypted = await processor.decryptWithWalletPrivateKey(\n * encryptedHexString,\n * \"0x...\" // 32-byte private key\n * );\n * console.log(`Decrypted: ${decrypted}`);\n * ```\n */\n async decryptWithWalletPrivateKey(\n encryptedData: string,\n privateKey: string | Uint8Array,\n ): Promise<string> {\n // Process the private key to ensure correct format\n const privateKeyBytes = processWalletPrivateKey(privateKey);\n\n // Convert hex string to bytes and parse encrypted components\n const prefixedHex = encryptedData.startsWith(\"0x\")\n ? encryptedData\n : `0x${encryptedData}`;\n const encryptedBytes = fromHex(prefixedHex as `0x${string}`, \"bytes\");\n const encrypted = parseEncryptedDataBuffer(encryptedBytes);\n\n // Perform ECIES decryption\n const decrypted = await this.eciesProvider.decrypt(\n privateKeyBytes,\n encrypted,\n );\n\n // Convert bytes back to string\n return bytesToString(decrypted);\n }\n\n /**\n * Encrypts a Uint8Array with a wallet public key\n *\n * @param data - Binary data to encrypt\n * @param publicKey - Public key as hex string or Uint8Array\n * @returns Encrypted data structure\n */\n async encryptBinary(\n data: Uint8Array,\n publicKey: string | Uint8Array,\n ): Promise<ECIESEncrypted> {\n const publicKeyBytes = processWalletPublicKey(publicKey);\n const normalizedKey =\n this.eciesProvider.normalizeToUncompressed(publicKeyBytes);\n return this.eciesProvider.encrypt(normalizedKey, data);\n }\n\n /**\n * Decrypts to a Uint8Array with a wallet private key\n *\n * @param encrypted - Encrypted data structure\n * @param privateKey - Private key as hex string or Uint8Array\n * @returns Decrypted binary data\n */\n async decryptBinary(\n encrypted: ECIESEncrypted,\n privateKey: string | Uint8Array,\n ): Promise<Uint8Array> {\n const privateKeyBytes = processWalletPrivateKey(privateKey);\n return this.eciesProvider.decrypt(privateKeyBytes, encrypted);\n }\n\n /**\n * Gets the underlying ECIES provider\n *\n * @returns The ECIES provider instance\n */\n getECIESProvider(): ECIESProvider {\n return this.eciesProvider;\n }\n}\n"],"mappings":";;;AAaA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,eAAe,eAAe,OAAO,eAAe;AAiBtD,MAAM,2BAA2B;AAAA,EAGtC,YAAY,QAA0C;AAFtD,wBAAiB;AAGf,SAAK,gBAAgB,OAAO;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,MAAM,2BACJ,MACA,WACiB;AAEjB,UAAM,iBAAiB,uBAAuB,SAAS;AAIvD,UAAM,gBACJ,KAAK,cAAc,wBAAwB,cAAc;AAG3D,UAAM,YAAY,cAAc,IAAI;AAGpC,UAAM,YAAY,MAAM,KAAK,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAGA,UAAM,SAAS;AAAA,MACb,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AAGA,WAAO,MAAM,MAAM,EAAE,MAAM,CAAC;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,MAAM,4BACJ,eACA,YACiB;AAEjB,UAAM,kBAAkB,wBAAwB,UAAU;AAG1D,UAAM,cAAc,cAAc,WAAW,IAAI,IAC7C,gBACA,KAAK,aAAa;AACtB,UAAM,iBAAiB,QAAQ,aAA8B,OAAO;AACpE,UAAM,YAAY,yBAAyB,cAAc;AAGzD,UAAM,YAAY,MAAM,KAAK,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAGA,WAAO,cAAc,SAAS;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cACJ,MACA,WACyB;AACzB,UAAM,iBAAiB,uBAAuB,SAAS;AACvD,UAAM,gBACJ,KAAK,cAAc,wBAAwB,cAAc;AAC3D,WAAO,KAAK,cAAc,QAAQ,eAAe,IAAI;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cACJ,WACA,YACqB;AACrB,UAAM,kBAAkB,wBAAwB,UAAU;AAC1D,WAAO,KAAK,cAAc,QAAQ,iBAAiB,SAAS;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,mBAAkC;AAChC,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/crypto/services/WalletKeyEncryptionService.ts"],"sourcesContent":["/**\n * Service for wallet key encryption and decryption operations.\n *\n * @remarks\n * This service separates business logic (wallet key processing) from crypto primitives\n * (ECIES operations). It handles key normalization, data conversion, and format transformation\n * while delegating actual cryptographic operations to the provided ECIES provider.\n *\n * @category Cryptography\n * @internal\n */\n\nimport type { ECIESProvider, ECIESEncrypted } from \"../ecies/interface\";\nimport {\n processWalletPublicKey,\n processWalletPrivateKey,\n parseEncryptedDataBuffer,\n} from \"../../utils/crypto-utils\";\nimport { stringToBytes, bytesToString, toHex, fromHex, concat } from \"viem\";\n\nexport interface WalletKeyEncryptionServiceConfig {\n /** ECIES provider for encryption/decryption */\n eciesProvider: ECIESProvider;\n}\n\n/**\n * Service for wallet key encryption and decryption operations\n *\n * @remarks\n * This service encapsulates the business logic for wallet key operations,\n * delegating actual cryptographic operations to the provided ECIES provider.\n * It handles key normalization, data conversion, and format transformation.\n *\n * @internal\n */\nexport class WalletKeyEncryptionService {\n private readonly eciesProvider: ECIESProvider;\n\n constructor(config: WalletKeyEncryptionServiceConfig) {\n this.eciesProvider = config.eciesProvider;\n }\n\n /**\n * Encrypts data using a wallet's public key.\n *\n * @param data - The plaintext message to encrypt for the wallet owner.\n * @param publicKey - The recipient wallet's public key for encryption.\n * @returns A promise that resolves to the encrypted data as a hex string.\n * @throws {Error} When encryption fails due to invalid key format.\n *\n * @example\n * ```typescript\n * const encrypted = await processor.encryptWithWalletPublicKey(\n * \"Secret message\",\n * \"0x04...\" // 65-byte uncompressed public key\n * );\n * console.log(`Encrypted: ${encrypted}`);\n * ```\n */\n async encryptWithWalletPublicKey(\n data: string,\n publicKey: string | Uint8Array,\n ): Promise<string> {\n // Process the public key to ensure correct format\n const publicKeyBytes = processWalletPublicKey(publicKey);\n\n // Normalize to uncompressed format using the provider\n // This handles compressed keys, raw coordinates, and validates the format\n const normalizedKey =\n this.eciesProvider.normalizeToUncompressed(publicKeyBytes);\n\n // Convert string data to bytes\n const dataBytes = stringToBytes(data);\n\n // Perform ECIES encryption\n const encrypted = await this.eciesProvider.encrypt(\n normalizedKey,\n dataBytes,\n );\n\n // Concatenate all components for legacy format compatibility\n const result = concat([\n encrypted.iv,\n encrypted.ephemPublicKey,\n encrypted.ciphertext,\n encrypted.mac,\n ]);\n\n // Return as hex string without 0x prefix for API compatibility\n return toHex(result).slice(2);\n }\n\n /**\n * Decrypts data using a wallet's private key.\n *\n * @param encryptedData - The hex-encoded encrypted data to decrypt.\n * @param privateKey - The wallet's private key for decryption.\n * @returns A promise that resolves to the decrypted plaintext message.\n * @throws {Error} When decryption fails due to invalid data or key format.\n *\n * @example\n * ```typescript\n * const decrypted = await processor.decryptWithWalletPrivateKey(\n * encryptedHexString,\n * \"0x...\" // 32-byte private key\n * );\n * console.log(`Decrypted: ${decrypted}`);\n * ```\n */\n async decryptWithWalletPrivateKey(\n encryptedData: string,\n privateKey: string | Uint8Array,\n ): Promise<string> {\n // Process the private key to ensure correct format\n const privateKeyBytes = processWalletPrivateKey(privateKey);\n\n // Convert hex string to bytes and parse encrypted components\n const prefixedHex = encryptedData.startsWith(\"0x\")\n ? encryptedData\n : `0x${encryptedData}`;\n const encryptedBytes = fromHex(prefixedHex as `0x${string}`, \"bytes\");\n const encrypted = parseEncryptedDataBuffer(encryptedBytes);\n\n // Perform ECIES decryption\n const decrypted = await this.eciesProvider.decrypt(\n privateKeyBytes,\n encrypted,\n );\n\n // Convert bytes back to string\n return bytesToString(decrypted);\n }\n\n /**\n * Encrypts a Uint8Array with a wallet public key\n *\n * @param data - Binary data to encrypt\n * @param publicKey - Public key as hex string or Uint8Array\n * @returns Encrypted data structure\n */\n async encryptBinary(\n data: Uint8Array,\n publicKey: string | Uint8Array,\n ): Promise<ECIESEncrypted> {\n const publicKeyBytes = processWalletPublicKey(publicKey);\n const normalizedKey =\n this.eciesProvider.normalizeToUncompressed(publicKeyBytes);\n return this.eciesProvider.encrypt(normalizedKey, data);\n }\n\n /**\n * Decrypts to a Uint8Array with a wallet private key\n *\n * @param encrypted - Encrypted data structure\n * @param privateKey - Private key as hex string or Uint8Array\n * @returns Decrypted binary data\n */\n async decryptBinary(\n encrypted: ECIESEncrypted,\n privateKey: string | Uint8Array,\n ): Promise<Uint8Array> {\n const privateKeyBytes = processWalletPrivateKey(privateKey);\n return this.eciesProvider.decrypt(privateKeyBytes, encrypted);\n }\n\n /**\n * Gets the underlying ECIES provider\n *\n * @returns The ECIES provider instance\n */\n getECIESProvider(): ECIESProvider {\n return this.eciesProvider;\n }\n}\n"],"mappings":"AAaA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,eAAe,eAAe,OAAO,SAAS,cAAc;AAiB9D,MAAM,2BAA2B;AAAA,EACrB;AAAA,EAEjB,YAAY,QAA0C;AACpD,SAAK,gBAAgB,OAAO;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,MAAM,2BACJ,MACA,WACiB;AAEjB,UAAM,iBAAiB,uBAAuB,SAAS;AAIvD,UAAM,gBACJ,KAAK,cAAc,wBAAwB,cAAc;AAG3D,UAAM,YAAY,cAAc,IAAI;AAGpC,UAAM,YAAY,MAAM,KAAK,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAGA,UAAM,SAAS,OAAO;AAAA,MACpB,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACZ,CAAC;AAGD,WAAO,MAAM,MAAM,EAAE,MAAM,CAAC;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,MAAM,4BACJ,eACA,YACiB;AAEjB,UAAM,kBAAkB,wBAAwB,UAAU;AAG1D,UAAM,cAAc,cAAc,WAAW,IAAI,IAC7C,gBACA,KAAK,aAAa;AACtB,UAAM,iBAAiB,QAAQ,aAA8B,OAAO;AACpE,UAAM,YAAY,yBAAyB,cAAc;AAGzD,UAAM,YAAY,MAAM,KAAK,cAAc;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAGA,WAAO,cAAc,SAAS;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cACJ,MACA,WACyB;AACzB,UAAM,iBAAiB,uBAAuB,SAAS;AACvD,UAAM,gBACJ,KAAK,cAAc,wBAAwB,cAAc;AAC3D,WAAO,KAAK,cAAc,QAAQ,eAAe,IAAI;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cACJ,WACA,YACqB;AACrB,UAAM,kBAAkB,wBAAwB,UAAU;AAC1D,WAAO,KAAK,cAAc,QAAQ,iBAAiB,SAAS;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,mBAAkC;AAChC,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}
@@ -21,6 +21,4 @@
21
21
  * warnOnce("AES-256-CBC not available.", "ECIES will fail.");
22
22
  * ```
23
23
  */
24
- declare function warnOnce(...msg: unknown[]): void;
25
-
26
- export { warnOnce };
24
+ export declare function warnOnce(...msg: unknown[]): void;
@@ -0,0 +1 @@
1
+ export {};
package/dist/errors.cjs CHANGED
@@ -25,10 +25,12 @@ __export(errors_exports, {
25
25
  NonceError: () => NonceError,
26
26
  PermissionError: () => PermissionError,
27
27
  PersonalServerError: () => PersonalServerError,
28
+ ReadOnlyError: () => ReadOnlyError,
28
29
  RelayerError: () => RelayerError,
29
30
  SerializationError: () => SerializationError,
30
31
  ServerUrlMismatchError: () => ServerUrlMismatchError,
31
32
  SignatureError: () => SignatureError,
33
+ TransactionPendingError: () => TransactionPendingError,
32
34
  UserRejectedRequestError: () => UserRejectedRequestError,
33
35
  VanaError: () => VanaError
34
36
  });
@@ -122,6 +124,47 @@ class PermissionError extends VanaError {
122
124
  this.originalError = originalError;
123
125
  }
124
126
  }
127
+ class ReadOnlyError extends VanaError {
128
+ constructor(operation, suggestion = "Initialize the SDK with a walletClient to perform this operation") {
129
+ super(
130
+ `Operation '${operation}' requires a wallet client. ${suggestion}`,
131
+ "READ_ONLY_ERROR"
132
+ );
133
+ this.operation = operation;
134
+ this.suggestion = suggestion;
135
+ }
136
+ /** The operation that was attempted */
137
+ operation;
138
+ /** Suggested solution for fixing the error */
139
+ suggestion;
140
+ }
141
+ class TransactionPendingError extends VanaError {
142
+ constructor(operationId, message, lastKnownStatus) {
143
+ super(
144
+ `Transaction operation pending: ${message} (operationId: ${operationId})`,
145
+ "TRANSACTION_PENDING"
146
+ );
147
+ this.operationId = operationId;
148
+ this.lastKnownStatus = lastKnownStatus;
149
+ }
150
+ /**
151
+ * Converts the error to a JSON-serializable format.
152
+ *
153
+ * @remarks
154
+ * Useful for logging, storage, or transmission of error details.
155
+ *
156
+ * @returns JSON representation of the error
157
+ */
158
+ toJSON() {
159
+ return {
160
+ name: this.name,
161
+ code: this.code,
162
+ message: this.message,
163
+ operationId: this.operationId,
164
+ lastKnownStatus: this.lastKnownStatus
165
+ };
166
+ }
167
+ }
125
168
  // Annotate the CommonJS export names for ESM import in node:
126
169
  0 && (module.exports = {
127
170
  BlockchainError,
@@ -131,10 +174,12 @@ class PermissionError extends VanaError {
131
174
  NonceError,
132
175
  PermissionError,
133
176
  PersonalServerError,
177
+ ReadOnlyError,
134
178
  RelayerError,
135
179
  SerializationError,
136
180
  ServerUrlMismatchError,
137
181
  SignatureError,
182
+ TransactionPendingError,
138
183
  UserRejectedRequestError,
139
184
  VanaError
140
185
  });