@hashgraphonline/standards-sdk 0.1.144 → 0.1.146

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 (433) hide show
  1. package/dist/cjs/hcs-10/base-client.d.ts.map +1 -1
  2. package/dist/cjs/hcs-10/sdk.d.ts +8 -0
  3. package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
  4. package/dist/cjs/hcs-11/client.d.ts +2 -2
  5. package/dist/cjs/hcs-11/client.d.ts.map +1 -1
  6. package/dist/cjs/hcs-11/person-builder.d.ts +1 -0
  7. package/dist/cjs/hcs-11/person-builder.d.ts.map +1 -1
  8. package/dist/cjs/hcs-11/types.d.ts +1 -0
  9. package/dist/cjs/hcs-11/types.d.ts.map +1 -1
  10. package/dist/cjs/hcs-12/rendering/resource-manager.d.ts.map +1 -1
  11. package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
  12. package/dist/cjs/hcs-15/browser.d.ts +2 -0
  13. package/dist/cjs/hcs-15/browser.d.ts.map +1 -1
  14. package/dist/cjs/hcs-15/sdk.d.ts +7 -1
  15. package/dist/cjs/hcs-15/sdk.d.ts.map +1 -1
  16. package/dist/cjs/hcs-15/tx.d.ts +4 -0
  17. package/dist/cjs/hcs-15/tx.d.ts.map +1 -1
  18. package/dist/cjs/hcs-15/types.d.ts +16 -1
  19. package/dist/cjs/hcs-15/types.d.ts.map +1 -1
  20. package/dist/cjs/hcs-16/browser.d.ts +11 -2
  21. package/dist/cjs/hcs-16/browser.d.ts.map +1 -1
  22. package/dist/cjs/hcs-16/sdk.d.ts +62 -1
  23. package/dist/cjs/hcs-16/sdk.d.ts.map +1 -1
  24. package/dist/cjs/hcs-16/tx.d.ts +21 -3
  25. package/dist/cjs/hcs-16/tx.d.ts.map +1 -1
  26. package/dist/cjs/hcs-17/base-client.d.ts +1 -0
  27. package/dist/cjs/hcs-17/base-client.d.ts.map +1 -1
  28. package/dist/cjs/hcs-17/sdk.d.ts.map +1 -1
  29. package/dist/cjs/hcs-17/tx.d.ts +2 -0
  30. package/dist/cjs/hcs-17/tx.d.ts.map +1 -1
  31. package/dist/cjs/hcs-17/types.d.ts +4 -0
  32. package/dist/cjs/hcs-17/types.d.ts.map +1 -1
  33. package/dist/cjs/hcs-7/types.d.ts +4 -4
  34. package/dist/cjs/index.d.ts.map +1 -1
  35. package/dist/cjs/inscribe/inscriber.d.ts +89 -0
  36. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  37. package/dist/cjs/services/registry-broker/client/base-client.d.ts +14 -1
  38. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  39. package/dist/cjs/services/registry-broker/client/feedback.d.ts +2 -0
  40. package/dist/cjs/services/registry-broker/client/feedback.d.ts.map +1 -0
  41. package/dist/cjs/services/registry-broker/hol-chat-ops.d.ts +24 -0
  42. package/dist/cjs/services/registry-broker/hol-chat-ops.d.ts.map +1 -0
  43. package/dist/cjs/services/registry-broker/index.d.ts +1 -0
  44. package/dist/cjs/services/registry-broker/index.d.ts.map +1 -1
  45. package/dist/cjs/services/registry-broker/private-key-signer.d.ts +1 -0
  46. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  47. package/dist/cjs/services/registry-broker/schemas.d.ts +1001 -577
  48. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  49. package/dist/cjs/services/registry-broker/types.d.ts +20 -1
  50. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  51. package/dist/cjs/standards-sdk.cjs +3 -3
  52. package/dist/cjs/standards-sdk.cjs.map +1 -1
  53. package/dist/cjs/utils/crypto-abstraction.d.ts.map +1 -1
  54. package/dist/cjs/utils/crypto-env.d.ts.map +1 -1
  55. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  56. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  57. package/dist/cjs/utils/hash-adapter.d.ts.map +1 -1
  58. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  59. package/dist/es/hcs-10/sdk.d.ts +8 -0
  60. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  61. package/dist/es/hcs-11/client.d.ts +2 -2
  62. package/dist/es/hcs-11/client.d.ts.map +1 -1
  63. package/dist/es/hcs-11/person-builder.d.ts +1 -0
  64. package/dist/es/hcs-11/person-builder.d.ts.map +1 -1
  65. package/dist/es/hcs-11/types.d.ts +1 -0
  66. package/dist/es/hcs-11/types.d.ts.map +1 -1
  67. package/dist/es/hcs-12/rendering/resource-manager.d.ts.map +1 -1
  68. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  69. package/dist/es/hcs-15/browser.d.ts +2 -0
  70. package/dist/es/hcs-15/browser.d.ts.map +1 -1
  71. package/dist/es/hcs-15/sdk.d.ts +7 -1
  72. package/dist/es/hcs-15/sdk.d.ts.map +1 -1
  73. package/dist/es/hcs-15/tx.d.ts +4 -0
  74. package/dist/es/hcs-15/tx.d.ts.map +1 -1
  75. package/dist/es/hcs-15/types.d.ts +16 -1
  76. package/dist/es/hcs-15/types.d.ts.map +1 -1
  77. package/dist/es/hcs-16/browser.d.ts +11 -2
  78. package/dist/es/hcs-16/browser.d.ts.map +1 -1
  79. package/dist/es/hcs-16/sdk.d.ts +62 -1
  80. package/dist/es/hcs-16/sdk.d.ts.map +1 -1
  81. package/dist/es/hcs-16/tx.d.ts +21 -3
  82. package/dist/es/hcs-16/tx.d.ts.map +1 -1
  83. package/dist/es/hcs-17/base-client.d.ts +1 -0
  84. package/dist/es/hcs-17/base-client.d.ts.map +1 -1
  85. package/dist/es/hcs-17/sdk.d.ts.map +1 -1
  86. package/dist/es/hcs-17/tx.d.ts +2 -0
  87. package/dist/es/hcs-17/tx.d.ts.map +1 -1
  88. package/dist/es/hcs-17/types.d.ts +4 -0
  89. package/dist/es/hcs-17/types.d.ts.map +1 -1
  90. package/dist/es/hcs-7/types.d.ts +4 -4
  91. package/dist/es/index.d.ts.map +1 -1
  92. package/dist/es/inscribe/inscriber.d.ts +89 -0
  93. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  94. package/dist/es/services/registry-broker/client/base-client.d.ts +14 -1
  95. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  96. package/dist/es/services/registry-broker/client/feedback.d.ts +2 -0
  97. package/dist/es/services/registry-broker/client/feedback.d.ts.map +1 -0
  98. package/dist/es/services/registry-broker/hol-chat-ops.d.ts +24 -0
  99. package/dist/es/services/registry-broker/hol-chat-ops.d.ts.map +1 -0
  100. package/dist/es/services/registry-broker/index.d.ts +1 -0
  101. package/dist/es/services/registry-broker/index.d.ts.map +1 -1
  102. package/dist/es/services/registry-broker/private-key-signer.d.ts +1 -0
  103. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  104. package/dist/es/services/registry-broker/schemas.d.ts +1001 -577
  105. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  106. package/dist/es/services/registry-broker/types.d.ts +20 -1
  107. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  108. package/dist/es/standards-sdk.es.js +146 -131
  109. package/dist/es/standards-sdk.es10.js +70 -90
  110. package/dist/es/standards-sdk.es10.js.map +1 -1
  111. package/dist/es/standards-sdk.es100.js +229 -26
  112. package/dist/es/standards-sdk.es100.js.map +1 -1
  113. package/dist/es/standards-sdk.es101.js +109 -228
  114. package/dist/es/standards-sdk.es101.js.map +1 -1
  115. package/dist/es/standards-sdk.es102.js +15 -94
  116. package/dist/es/standards-sdk.es102.js.map +1 -1
  117. package/dist/es/standards-sdk.es103.js +80 -30
  118. package/dist/es/standards-sdk.es103.js.map +1 -1
  119. package/dist/es/standards-sdk.es104.js +27 -80
  120. package/dist/es/standards-sdk.es104.js.map +1 -1
  121. package/dist/es/standards-sdk.es105.js +136 -25
  122. package/dist/es/standards-sdk.es105.js.map +1 -1
  123. package/dist/es/standards-sdk.es106.js +27 -140
  124. package/dist/es/standards-sdk.es106.js.map +1 -1
  125. package/dist/es/standards-sdk.es107.js +20 -27
  126. package/dist/es/standards-sdk.es107.js.map +1 -1
  127. package/dist/es/standards-sdk.es108.js +156 -18
  128. package/dist/es/standards-sdk.es108.js.map +1 -1
  129. package/dist/es/standards-sdk.es109.js +198 -148
  130. package/dist/es/standards-sdk.es109.js.map +1 -1
  131. package/dist/es/standards-sdk.es11.js +121 -45
  132. package/dist/es/standards-sdk.es11.js.map +1 -1
  133. package/dist/es/standards-sdk.es110.js +747 -166
  134. package/dist/es/standards-sdk.es110.js.map +1 -1
  135. package/dist/es/standards-sdk.es111.js +9 -786
  136. package/dist/es/standards-sdk.es111.js.map +1 -1
  137. package/dist/es/standards-sdk.es112.js +567 -13
  138. package/dist/es/standards-sdk.es112.js.map +1 -1
  139. package/dist/es/standards-sdk.es113.js +576 -541
  140. package/dist/es/standards-sdk.es113.js.map +1 -1
  141. package/dist/es/standards-sdk.es114.js +12 -601
  142. package/dist/es/standards-sdk.es114.js.map +1 -1
  143. package/dist/es/standards-sdk.es115.js +2 -13
  144. package/dist/es/standards-sdk.es115.js.map +1 -1
  145. package/dist/es/standards-sdk.es116.js +87 -2
  146. package/dist/es/standards-sdk.es116.js.map +1 -1
  147. package/dist/es/standards-sdk.es117.js +37 -80
  148. package/dist/es/standards-sdk.es117.js.map +1 -1
  149. package/dist/es/standards-sdk.es118.js +2 -39
  150. package/dist/es/standards-sdk.es118.js.map +1 -1
  151. package/dist/es/standards-sdk.es119.js +231 -2
  152. package/dist/es/standards-sdk.es119.js.map +1 -1
  153. package/dist/es/standards-sdk.es12.js +60 -159
  154. package/dist/es/standards-sdk.es12.js.map +1 -1
  155. package/dist/es/standards-sdk.es120.js +1110 -193
  156. package/dist/es/standards-sdk.es120.js.map +1 -1
  157. package/dist/es/standards-sdk.es121.js +225 -1059
  158. package/dist/es/standards-sdk.es121.js.map +1 -1
  159. package/dist/es/standards-sdk.es122.js +419 -303
  160. package/dist/es/standards-sdk.es122.js.map +1 -1
  161. package/dist/es/standards-sdk.es123.js +351 -418
  162. package/dist/es/standards-sdk.es123.js.map +1 -1
  163. package/dist/es/standards-sdk.es124.js +1109 -347
  164. package/dist/es/standards-sdk.es124.js.map +1 -1
  165. package/dist/es/standards-sdk.es125.js +182 -854
  166. package/dist/es/standards-sdk.es125.js.map +1 -1
  167. package/dist/es/standards-sdk.es126.js +1512 -153
  168. package/dist/es/standards-sdk.es126.js.map +1 -1
  169. package/dist/es/standards-sdk.es127.js +157 -1547
  170. package/dist/es/standards-sdk.es127.js.map +1 -1
  171. package/dist/es/standards-sdk.es128.js +192 -162
  172. package/dist/es/standards-sdk.es128.js.map +1 -1
  173. package/dist/es/standards-sdk.es129.js +61 -164
  174. package/dist/es/standards-sdk.es129.js.map +1 -1
  175. package/dist/es/standards-sdk.es13.js +200 -60
  176. package/dist/es/standards-sdk.es13.js.map +1 -1
  177. package/dist/es/standards-sdk.es130.js +102 -85
  178. package/dist/es/standards-sdk.es130.js.map +1 -1
  179. package/dist/es/standards-sdk.es131.js +222 -96
  180. package/dist/es/standards-sdk.es131.js.map +1 -1
  181. package/dist/es/standards-sdk.es132.js +153 -220
  182. package/dist/es/standards-sdk.es132.js.map +1 -1
  183. package/dist/es/standards-sdk.es133.js +104 -162
  184. package/dist/es/standards-sdk.es133.js.map +1 -1
  185. package/dist/es/standards-sdk.es134.js +296 -92
  186. package/dist/es/standards-sdk.es134.js.map +1 -1
  187. package/dist/es/standards-sdk.es135.js +432 -294
  188. package/dist/es/standards-sdk.es135.js.map +1 -1
  189. package/dist/es/standards-sdk.es136.js +14 -363
  190. package/dist/es/standards-sdk.es136.js.map +1 -1
  191. package/dist/es/standards-sdk.es137.js +79 -15
  192. package/dist/es/standards-sdk.es137.js.map +1 -1
  193. package/dist/es/standards-sdk.es138.js +79 -59
  194. package/dist/es/standards-sdk.es138.js.map +1 -1
  195. package/dist/es/standards-sdk.es139.js +53 -80
  196. package/dist/es/standards-sdk.es139.js.map +1 -1
  197. package/dist/es/standards-sdk.es14.js +149 -178
  198. package/dist/es/standards-sdk.es14.js.map +1 -1
  199. package/dist/es/standards-sdk.es140.js +1 -1
  200. package/dist/es/standards-sdk.es142.js +1 -1
  201. package/dist/es/standards-sdk.es143.js +1 -1
  202. package/dist/es/standards-sdk.es144.js +30 -28
  203. package/dist/es/standards-sdk.es144.js.map +1 -1
  204. package/dist/es/standards-sdk.es145.js +34 -138
  205. package/dist/es/standards-sdk.es145.js.map +1 -1
  206. package/dist/es/standards-sdk.es146.js +28 -42
  207. package/dist/es/standards-sdk.es146.js.map +1 -1
  208. package/dist/es/standards-sdk.es147.js +939 -12269
  209. package/dist/es/standards-sdk.es147.js.map +1 -1
  210. package/dist/es/standards-sdk.es148.js +12284 -12
  211. package/dist/es/standards-sdk.es148.js.map +1 -1
  212. package/dist/es/standards-sdk.es149.js +132 -50
  213. package/dist/es/standards-sdk.es149.js.map +1 -1
  214. package/dist/es/standards-sdk.es15.js +152 -151
  215. package/dist/es/standards-sdk.es15.js.map +1 -1
  216. package/dist/es/standards-sdk.es150.js +34 -74
  217. package/dist/es/standards-sdk.es150.js.map +1 -1
  218. package/dist/es/standards-sdk.es151.js +51 -167
  219. package/dist/es/standards-sdk.es151.js.map +1 -1
  220. package/dist/es/standards-sdk.es152.js +70 -308
  221. package/dist/es/standards-sdk.es152.js.map +1 -1
  222. package/dist/es/standards-sdk.es153.js +13 -342
  223. package/dist/es/standards-sdk.es153.js.map +1 -1
  224. package/dist/es/standards-sdk.es154.js +129 -410
  225. package/dist/es/standards-sdk.es154.js.map +1 -1
  226. package/dist/es/standards-sdk.es155.js +200 -209
  227. package/dist/es/standards-sdk.es155.js.map +1 -1
  228. package/dist/es/standards-sdk.es156.js +334 -64
  229. package/dist/es/standards-sdk.es156.js.map +1 -1
  230. package/dist/es/standards-sdk.es157.js +453 -871
  231. package/dist/es/standards-sdk.es157.js.map +1 -1
  232. package/dist/es/standards-sdk.es158.js +314 -222
  233. package/dist/es/standards-sdk.es158.js.map +1 -1
  234. package/dist/es/standards-sdk.es159.js +60 -228
  235. package/dist/es/standards-sdk.es159.js.map +1 -1
  236. package/dist/es/standards-sdk.es16.js +917 -136
  237. package/dist/es/standards-sdk.es16.js.map +1 -1
  238. package/dist/es/standards-sdk.es160.js +242 -0
  239. package/dist/es/standards-sdk.es160.js.map +1 -0
  240. package/dist/es/standards-sdk.es161.js +247 -0
  241. package/dist/es/standards-sdk.es161.js.map +1 -0
  242. package/dist/es/standards-sdk.es17.js +23 -944
  243. package/dist/es/standards-sdk.es17.js.map +1 -1
  244. package/dist/es/standards-sdk.es18.js +2422 -24
  245. package/dist/es/standards-sdk.es18.js.map +1 -1
  246. package/dist/es/standards-sdk.es19.js +817 -2071
  247. package/dist/es/standards-sdk.es19.js.map +1 -1
  248. package/dist/es/standards-sdk.es2.js +654 -189
  249. package/dist/es/standards-sdk.es2.js.map +1 -1
  250. package/dist/es/standards-sdk.es20.js +205 -1091
  251. package/dist/es/standards-sdk.es20.js.map +1 -1
  252. package/dist/es/standards-sdk.es21.js +858 -221
  253. package/dist/es/standards-sdk.es21.js.map +1 -1
  254. package/dist/es/standards-sdk.es22.js +179 -903
  255. package/dist/es/standards-sdk.es22.js.map +1 -1
  256. package/dist/es/standards-sdk.es23.js +164 -179
  257. package/dist/es/standards-sdk.es23.js.map +1 -1
  258. package/dist/es/standards-sdk.es24.js +62 -118
  259. package/dist/es/standards-sdk.es24.js.map +1 -1
  260. package/dist/es/standards-sdk.es25.js +377 -52
  261. package/dist/es/standards-sdk.es25.js.map +1 -1
  262. package/dist/es/standards-sdk.es26.js +36 -394
  263. package/dist/es/standards-sdk.es26.js.map +1 -1
  264. package/dist/es/standards-sdk.es27.js +901 -50
  265. package/dist/es/standards-sdk.es27.js.map +1 -1
  266. package/dist/es/standards-sdk.es28.js +134 -902
  267. package/dist/es/standards-sdk.es28.js.map +1 -1
  268. package/dist/es/standards-sdk.es29.js +7 -134
  269. package/dist/es/standards-sdk.es29.js.map +1 -1
  270. package/dist/es/standards-sdk.es3.js +63 -680
  271. package/dist/es/standards-sdk.es3.js.map +1 -1
  272. package/dist/es/standards-sdk.es30.js +344 -7
  273. package/dist/es/standards-sdk.es30.js.map +1 -1
  274. package/dist/es/standards-sdk.es31.js +302 -287
  275. package/dist/es/standards-sdk.es31.js.map +1 -1
  276. package/dist/es/standards-sdk.es32.js +94 -322
  277. package/dist/es/standards-sdk.es32.js.map +1 -1
  278. package/dist/es/standards-sdk.es33.js +458 -101
  279. package/dist/es/standards-sdk.es33.js.map +1 -1
  280. package/dist/es/standards-sdk.es34.js +132 -451
  281. package/dist/es/standards-sdk.es34.js.map +1 -1
  282. package/dist/es/standards-sdk.es35.js +216 -130
  283. package/dist/es/standards-sdk.es35.js.map +1 -1
  284. package/dist/es/standards-sdk.es36.js +273 -195
  285. package/dist/es/standards-sdk.es36.js.map +1 -1
  286. package/dist/es/standards-sdk.es37.js +148 -87
  287. package/dist/es/standards-sdk.es37.js.map +1 -1
  288. package/dist/es/standards-sdk.es38.js +183 -320
  289. package/dist/es/standards-sdk.es38.js.map +1 -1
  290. package/dist/es/standards-sdk.es39.js +238 -161
  291. package/dist/es/standards-sdk.es39.js.map +1 -1
  292. package/dist/es/standards-sdk.es4.js +425 -63
  293. package/dist/es/standards-sdk.es4.js.map +1 -1
  294. package/dist/es/standards-sdk.es40.js +136 -254
  295. package/dist/es/standards-sdk.es40.js.map +1 -1
  296. package/dist/es/standards-sdk.es41.js +225 -176
  297. package/dist/es/standards-sdk.es41.js.map +1 -1
  298. package/dist/es/standards-sdk.es42.js +199 -261
  299. package/dist/es/standards-sdk.es42.js.map +1 -1
  300. package/dist/es/standards-sdk.es43.js +237 -199
  301. package/dist/es/standards-sdk.es43.js.map +1 -1
  302. package/dist/es/standards-sdk.es44.js +209 -201
  303. package/dist/es/standards-sdk.es44.js.map +1 -1
  304. package/dist/es/standards-sdk.es45.js +305 -201
  305. package/dist/es/standards-sdk.es45.js.map +1 -1
  306. package/dist/es/standards-sdk.es46.js +371 -261
  307. package/dist/es/standards-sdk.es46.js.map +1 -1
  308. package/dist/es/standards-sdk.es47.js +316 -371
  309. package/dist/es/standards-sdk.es47.js.map +1 -1
  310. package/dist/es/standards-sdk.es48.js +404 -336
  311. package/dist/es/standards-sdk.es48.js.map +1 -1
  312. package/dist/es/standards-sdk.es49.js +83 -449
  313. package/dist/es/standards-sdk.es49.js.map +1 -1
  314. package/dist/es/standards-sdk.es5.js +232 -354
  315. package/dist/es/standards-sdk.es5.js.map +1 -1
  316. package/dist/es/standards-sdk.es50.js +179 -89
  317. package/dist/es/standards-sdk.es50.js.map +1 -1
  318. package/dist/es/standards-sdk.es51.js +231 -165
  319. package/dist/es/standards-sdk.es51.js.map +1 -1
  320. package/dist/es/standards-sdk.es52.js +25 -262
  321. package/dist/es/standards-sdk.es52.js.map +1 -1
  322. package/dist/es/standards-sdk.es53.js +56 -26
  323. package/dist/es/standards-sdk.es53.js.map +1 -1
  324. package/dist/es/standards-sdk.es54.js +12 -57
  325. package/dist/es/standards-sdk.es54.js.map +1 -1
  326. package/dist/es/standards-sdk.es55.js +49 -12
  327. package/dist/es/standards-sdk.es55.js.map +1 -1
  328. package/dist/es/standards-sdk.es56.js +115 -43
  329. package/dist/es/standards-sdk.es56.js.map +1 -1
  330. package/dist/es/standards-sdk.es57.js +42 -115
  331. package/dist/es/standards-sdk.es57.js.map +1 -1
  332. package/dist/es/standards-sdk.es58.js +52 -43
  333. package/dist/es/standards-sdk.es58.js.map +1 -1
  334. package/dist/es/standards-sdk.es59.js +36 -50
  335. package/dist/es/standards-sdk.es59.js.map +1 -1
  336. package/dist/es/standards-sdk.es6.js +125 -246
  337. package/dist/es/standards-sdk.es6.js.map +1 -1
  338. package/dist/es/standards-sdk.es60.js +207 -39
  339. package/dist/es/standards-sdk.es60.js.map +1 -1
  340. package/dist/es/standards-sdk.es61.js +24 -200
  341. package/dist/es/standards-sdk.es61.js.map +1 -1
  342. package/dist/es/standards-sdk.es62.js +87 -25
  343. package/dist/es/standards-sdk.es62.js.map +1 -1
  344. package/dist/es/standards-sdk.es63.js +3 -51
  345. package/dist/es/standards-sdk.es63.js.map +1 -1
  346. package/dist/es/standards-sdk.es64.js +100 -3
  347. package/dist/es/standards-sdk.es64.js.map +1 -1
  348. package/dist/es/standards-sdk.es65.js +61 -62
  349. package/dist/es/standards-sdk.es65.js.map +1 -1
  350. package/dist/es/standards-sdk.es66.js +17 -98
  351. package/dist/es/standards-sdk.es66.js.map +1 -1
  352. package/dist/es/standards-sdk.es67.js +77 -19
  353. package/dist/es/standards-sdk.es67.js.map +1 -1
  354. package/dist/es/standards-sdk.es68.js +458 -77
  355. package/dist/es/standards-sdk.es68.js.map +1 -1
  356. package/dist/es/standards-sdk.es69.js +106 -240
  357. package/dist/es/standards-sdk.es69.js.map +1 -1
  358. package/dist/es/standards-sdk.es7.js +28 -183
  359. package/dist/es/standards-sdk.es7.js.map +1 -1
  360. package/dist/es/standards-sdk.es70.js +170 -286
  361. package/dist/es/standards-sdk.es70.js.map +1 -1
  362. package/dist/es/standards-sdk.es71.js +71 -207
  363. package/dist/es/standards-sdk.es71.js.map +1 -1
  364. package/dist/es/standards-sdk.es72.js +71 -72
  365. package/dist/es/standards-sdk.es72.js.map +1 -1
  366. package/dist/es/standards-sdk.es73.js +143 -71
  367. package/dist/es/standards-sdk.es73.js.map +1 -1
  368. package/dist/es/standards-sdk.es74.js +62 -136
  369. package/dist/es/standards-sdk.es74.js.map +1 -1
  370. package/dist/es/standards-sdk.es75.js +380 -45
  371. package/dist/es/standards-sdk.es75.js.map +1 -1
  372. package/dist/es/standards-sdk.es76.js +222 -130
  373. package/dist/es/standards-sdk.es76.js.map +1 -1
  374. package/dist/es/standards-sdk.es77.js +320 -444
  375. package/dist/es/standards-sdk.es77.js.map +1 -1
  376. package/dist/es/standards-sdk.es78.js +88 -370
  377. package/dist/es/standards-sdk.es78.js.map +1 -1
  378. package/dist/es/standards-sdk.es79.js +125 -89
  379. package/dist/es/standards-sdk.es79.js.map +1 -1
  380. package/dist/es/standards-sdk.es8.js +80 -29
  381. package/dist/es/standards-sdk.es8.js.map +1 -1
  382. package/dist/es/standards-sdk.es80.js +8 -125
  383. package/dist/es/standards-sdk.es80.js.map +1 -1
  384. package/dist/es/standards-sdk.es81.js +45 -6
  385. package/dist/es/standards-sdk.es81.js.map +1 -1
  386. package/dist/es/standards-sdk.es82.js +98 -44
  387. package/dist/es/standards-sdk.es82.js.map +1 -1
  388. package/dist/es/standards-sdk.es83.js +331 -84
  389. package/dist/es/standards-sdk.es83.js.map +1 -1
  390. package/dist/es/standards-sdk.es84.js +93 -160
  391. package/dist/es/standards-sdk.es84.js.map +1 -1
  392. package/dist/es/standards-sdk.es85.js +55 -275
  393. package/dist/es/standards-sdk.es85.js.map +1 -1
  394. package/dist/es/standards-sdk.es86.js +43 -55
  395. package/dist/es/standards-sdk.es86.js.map +1 -1
  396. package/dist/es/standards-sdk.es87.js +145 -22
  397. package/dist/es/standards-sdk.es87.js.map +1 -1
  398. package/dist/es/standards-sdk.es88.js +34 -47
  399. package/dist/es/standards-sdk.es88.js.map +1 -1
  400. package/dist/es/standards-sdk.es89.js +22 -57
  401. package/dist/es/standards-sdk.es89.js.map +1 -1
  402. package/dist/es/standards-sdk.es9.js +104 -80
  403. package/dist/es/standards-sdk.es9.js.map +1 -1
  404. package/dist/es/standards-sdk.es90.js +23 -28
  405. package/dist/es/standards-sdk.es90.js.map +1 -1
  406. package/dist/es/standards-sdk.es91.js +238 -23
  407. package/dist/es/standards-sdk.es91.js.map +1 -1
  408. package/dist/es/standards-sdk.es92.js +265 -152
  409. package/dist/es/standards-sdk.es92.js.map +1 -1
  410. package/dist/es/standards-sdk.es93.js +95 -68
  411. package/dist/es/standards-sdk.es93.js.map +1 -1
  412. package/dist/es/standards-sdk.es94.js +124 -136
  413. package/dist/es/standards-sdk.es94.js.map +1 -1
  414. package/dist/es/standards-sdk.es95.js +42 -138
  415. package/dist/es/standards-sdk.es95.js.map +1 -1
  416. package/dist/es/standards-sdk.es96.js +259 -42
  417. package/dist/es/standards-sdk.es96.js.map +1 -1
  418. package/dist/es/standards-sdk.es97.js +82 -243
  419. package/dist/es/standards-sdk.es97.js.map +1 -1
  420. package/dist/es/standards-sdk.es98.js +48 -47
  421. package/dist/es/standards-sdk.es98.js.map +1 -1
  422. package/dist/es/standards-sdk.es99.js +29 -100
  423. package/dist/es/standards-sdk.es99.js.map +1 -1
  424. package/dist/es/utils/crypto-abstraction.d.ts.map +1 -1
  425. package/dist/es/utils/crypto-env.d.ts.map +1 -1
  426. package/dist/es/utils/dynamic-import.d.ts +5 -1
  427. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  428. package/dist/es/utils/hash-adapter.d.ts.map +1 -1
  429. package/package.json +76 -63
  430. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  431. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  432. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  433. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
@@ -1,59 +1,141 @@
1
- const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
2
- const BASE = 58;
3
- function base58Encode(bytes) {
4
- if (bytes.length === 0) return "";
5
- let zeros = 0;
6
- while (zeros < bytes.length && bytes[zeros] === 0) zeros++;
7
- if (zeros === bytes.length) return "1".repeat(zeros);
8
- const digits = [0];
9
- for (let i = zeros; i < bytes.length; i++) {
10
- let carry = bytes[i];
11
- for (let j = 0; j < digits.length; j++) {
12
- const val = (digits[j] << 8) + carry;
13
- digits[j] = val % BASE;
14
- carry = val / BASE | 0;
15
- }
16
- while (carry > 0) {
17
- digits.push(carry % BASE);
18
- carry = carry / BASE | 0;
1
+ import { AccountId, Client, PrivateKey } from "@hashgraph/sdk";
2
+ import { detectKeyTypeFromString } from "./standards-sdk.es113.js";
3
+ class NodeOperatorResolver {
4
+ constructor(params) {
5
+ this.mirror = params.mirrorNode;
6
+ this.logger = params.logger;
7
+ }
8
+ /**
9
+ * Best-guess parsing for an operator key without network calls.
10
+ * - If PrivateKey: returns immediately with provided or fallback type.
11
+ * - If string with explicitType: parse directly.
12
+ * - If string without type: detect format; fallback to ECDSA.
13
+ */
14
+ bestGuessOperatorKey(operatorKeyInput, explicitType) {
15
+ if (typeof operatorKeyInput !== "string") {
16
+ return { keyType: explicitType || "ecdsa", privateKey: operatorKeyInput };
17
+ }
18
+ if (explicitType) {
19
+ const pk = explicitType === "ed25519" ? PrivateKey.fromStringED25519(operatorKeyInput) : PrivateKey.fromStringECDSA(operatorKeyInput);
20
+ return { keyType: explicitType, privateKey: pk };
21
+ }
22
+ try {
23
+ const detected = detectKeyTypeFromString(operatorKeyInput);
24
+ return {
25
+ keyType: detected.detectedType,
26
+ privateKey: detected.privateKey
27
+ };
28
+ } catch {
29
+ return {
30
+ keyType: "ecdsa",
31
+ privateKey: PrivateKey.fromStringECDSA(operatorKeyInput)
32
+ };
19
33
  }
20
34
  }
21
- let result = "";
22
- for (let i = 0; i < zeros; i++) result += "1";
23
- for (let i = digits.length - 1; i >= 0; i--) result += ALPHABET[digits[i]];
24
- return result;
25
- }
26
- function base58Decode(text) {
27
- if (text.length === 0) return new Uint8Array(0);
28
- let zeros = 0;
29
- while (zeros < text.length && text[zeros] === "1") zeros++;
30
- const b256 = [];
31
- for (let i = zeros; i < text.length; i++) {
32
- const ch = text[i];
33
- const val = ALPHABET.indexOf(ch);
34
- if (val === -1) throw new Error("Invalid Base58 character");
35
- let carry = val;
36
- for (let j = 0; j < b256.length; j++) {
37
- const x = b256[j] * BASE + carry;
38
- b256[j] = x & 255;
39
- carry = x >> 8;
40
- }
41
- while (carry > 0) {
42
- b256.push(carry & 255);
43
- carry >>= 8;
35
+ /**
36
+ * Resolve an operator key using Mirror Node for key type when possible.
37
+ * - If PrivateKey: return immediately.
38
+ * - If explicitType: parse directly.
39
+ * - Else: query Mirror Node; fallback to local detection.
40
+ */
41
+ async resolveOperatorKey(operatorId, operatorKeyInput, explicitType) {
42
+ if (typeof operatorKeyInput !== "string") {
43
+ return { keyType: explicitType || "ecdsa", privateKey: operatorKeyInput };
44
+ }
45
+ if (explicitType) {
46
+ const pk = explicitType === "ed25519" ? PrivateKey.fromStringED25519(operatorKeyInput) : PrivateKey.fromStringECDSA(operatorKeyInput);
47
+ return { keyType: explicitType, privateKey: pk };
48
+ }
49
+ const account = typeof operatorId === "string" ? operatorId : operatorId.toString();
50
+ try {
51
+ const info = await this.mirror.requestAccount(account);
52
+ const t = info?.key?._type || "";
53
+ const keyType = t.includes("ED25519") ? "ed25519" : "ecdsa";
54
+ const privateKey = keyType === "ed25519" ? PrivateKey.fromStringED25519(operatorKeyInput) : PrivateKey.fromStringECDSA(operatorKeyInput);
55
+ return { keyType, privateKey };
56
+ } catch {
57
+ this.logger.warn(
58
+ "Mirror node key detection failed; using local detection or default ECDSA"
59
+ );
60
+ return this.bestGuessOperatorKey(operatorKeyInput);
61
+ }
62
+ }
63
+ /**
64
+ * Resolve a supply key for the given token using Mirror Node token supply_key._type when possible.
65
+ */
66
+ async resolveSupplyKey(tokenId, keyInput, fallbackType, explicitType) {
67
+ try {
68
+ const info = await this.mirror.getTokenInfo(tokenId);
69
+ const t = info?.supply_key?._type || "";
70
+ if (typeof keyInput !== "string") {
71
+ return keyInput;
72
+ }
73
+ if (explicitType) {
74
+ return explicitType === "ed25519" ? PrivateKey.fromStringED25519(keyInput) : PrivateKey.fromStringECDSA(keyInput);
75
+ }
76
+ if (t.includes("ED25519")) {
77
+ return PrivateKey.fromStringED25519(keyInput);
78
+ }
79
+ if (t.includes("ECDSA")) {
80
+ return PrivateKey.fromStringECDSA(keyInput);
81
+ }
82
+ return fallbackType === "ed25519" ? PrivateKey.fromStringED25519(keyInput) : PrivateKey.fromStringECDSA(keyInput);
83
+ } catch {
84
+ if (typeof keyInput !== "string") {
85
+ return keyInput;
86
+ }
87
+ if (explicitType) {
88
+ return explicitType === "ed25519" ? PrivateKey.fromStringED25519(keyInput) : PrivateKey.fromStringECDSA(keyInput);
89
+ }
90
+ return fallbackType === "ed25519" ? PrivateKey.fromStringED25519(keyInput) : PrivateKey.fromStringECDSA(keyInput);
44
91
  }
45
92
  }
46
- for (let i = 0; i < zeros; i++) b256.push(0);
47
- b256.reverse();
48
- return Uint8Array.from(b256);
49
93
  }
50
- function multibaseB58btcDecode(zText) {
51
- if (!zText.startsWith("z")) throw new Error("Invalid multibase base58btc");
52
- return base58Decode(zText.slice(1));
94
+ function createNodeOperatorContext(params) {
95
+ const operatorId = typeof params.operatorId === "string" ? AccountId.fromString(params.operatorId) : params.operatorId;
96
+ const client = params.client ? params.client : params.network === "mainnet" ? Client.forMainnet() : Client.forTestnet();
97
+ const resolver = new NodeOperatorResolver({
98
+ mirrorNode: params.mirrorNode,
99
+ logger: params.logger
100
+ });
101
+ let currentKeyType;
102
+ let currentPrivateKey;
103
+ const guess = resolver.bestGuessOperatorKey(
104
+ params.operatorKey,
105
+ params.keyType
106
+ );
107
+ currentKeyType = guess.keyType;
108
+ currentPrivateKey = guess.privateKey;
109
+ client.setOperator(operatorId.toString(), currentPrivateKey);
110
+ const initPromise = (async () => {
111
+ try {
112
+ const resolved = await resolver.resolveOperatorKey(
113
+ operatorId,
114
+ params.operatorKey,
115
+ params.keyType
116
+ );
117
+ currentKeyType = resolved.keyType;
118
+ currentPrivateKey = resolved.privateKey;
119
+ client.setOperator(operatorId.toString(), currentPrivateKey);
120
+ } catch {
121
+ }
122
+ })();
123
+ return {
124
+ client,
125
+ operatorId,
126
+ get operatorKey() {
127
+ return currentPrivateKey;
128
+ },
129
+ get keyType() {
130
+ return currentKeyType;
131
+ },
132
+ ensureInitialized: async () => {
133
+ await initPromise;
134
+ }
135
+ };
53
136
  }
54
137
  export {
55
- base58Decode,
56
- base58Encode,
57
- multibaseB58btcDecode
138
+ NodeOperatorResolver,
139
+ createNodeOperatorContext
58
140
  };
59
141
  //# sourceMappingURL=standards-sdk.es149.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es149.js","sources":["../../src/hcs-14/base58.ts"],"sourcesContent":["/**\n * Minimal Base58 encoder/decoder (Bitcoin alphabet) with no external dependencies.\n */\n\nconst ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nconst BASE = 58;\n\nfunction countLeadingZeros(bytes: Uint8Array): number {\n let zeros = 0;\n for (let i = 0; i < bytes.length && bytes[i] === 0; i++) {\n zeros++;\n }\n return zeros;\n}\n\nexport function base58Encode(bytes: Uint8Array): string {\n if (bytes.length === 0) return '';\n\n let zeros = 0;\n while (zeros < bytes.length && bytes[zeros] === 0) zeros++;\n\n if (zeros === bytes.length) return '1'.repeat(zeros);\n\n const digits: number[] = [0];\n for (let i = zeros; i < bytes.length; i++) {\n let carry = bytes[i];\n for (let j = 0; j < digits.length; j++) {\n const val = (digits[j] << 8) + carry;\n digits[j] = val % BASE;\n carry = (val / BASE) | 0;\n }\n while (carry > 0) {\n digits.push(carry % BASE);\n carry = (carry / BASE) | 0;\n }\n }\n\n let result = '';\n for (let i = 0; i < zeros; i++) result += '1';\n for (let i = digits.length - 1; i >= 0; i--) result += ALPHABET[digits[i]];\n return result;\n}\n\nexport function base58Decode(text: string): Uint8Array {\n if (text.length === 0) return new Uint8Array(0);\n\n let zeros = 0;\n while (zeros < text.length && text[zeros] === '1') zeros++;\n\n const b256: number[] = [];\n for (let i = zeros; i < text.length; i++) {\n const ch = text[i];\n const val = ALPHABET.indexOf(ch);\n if (val === -1) throw new Error('Invalid Base58 character');\n\n let carry = val;\n for (let j = 0; j < b256.length; j++) {\n const x = b256[j] * BASE + carry;\n b256[j] = x & 0xff;\n carry = x >> 8;\n }\n while (carry > 0) {\n b256.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n for (let i = 0; i < zeros; i++) b256.push(0);\n b256.reverse();\n return Uint8Array.from(b256);\n}\n\nexport function multibaseB58btcDecode(zText: string): Uint8Array {\n if (!zText.startsWith('z')) throw new Error('Invalid multibase base58btc');\n return base58Decode(zText.slice(1));\n}\n"],"names":[],"mappings":"AAIA,MAAM,WAAW;AACjB,MAAM,OAAO;AAUN,SAAS,aAAa,OAA2B;AACtD,MAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,MAAI,QAAQ;AACZ,SAAO,QAAQ,MAAM,UAAU,MAAM,KAAK,MAAM,EAAG;AAEnD,MAAI,UAAU,MAAM,OAAQ,QAAO,IAAI,OAAO,KAAK;AAEnD,QAAM,SAAmB,CAAC,CAAC;AAC3B,WAAS,IAAI,OAAO,IAAI,MAAM,QAAQ,KAAK;AACzC,QAAI,QAAQ,MAAM,CAAC;AACnB,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,YAAM,OAAO,OAAO,CAAC,KAAK,KAAK;AAC/B,aAAO,CAAC,IAAI,MAAM;AAClB,cAAS,MAAM,OAAQ;AAAA,IACzB;AACA,WAAO,QAAQ,GAAG;AAChB,aAAO,KAAK,QAAQ,IAAI;AACxB,cAAS,QAAQ,OAAQ;AAAA,IAC3B;AAAA,EACF;AAEA,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,OAAO,IAAK,WAAU;AAC1C,WAAS,IAAI,OAAO,SAAS,GAAG,KAAK,GAAG,IAAK,WAAU,SAAS,OAAO,CAAC,CAAC;AACzE,SAAO;AACT;AAEO,SAAS,aAAa,MAA0B;AACrD,MAAI,KAAK,WAAW,EAAG,QAAO,IAAI,WAAW,CAAC;AAE9C,MAAI,QAAQ;AACZ,SAAO,QAAQ,KAAK,UAAU,KAAK,KAAK,MAAM,IAAK;AAEnD,QAAM,OAAiB,CAAA;AACvB,WAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,KAAK;AACxC,UAAM,KAAK,KAAK,CAAC;AACjB,UAAM,MAAM,SAAS,QAAQ,EAAE;AAC/B,QAAI,QAAQ,GAAI,OAAM,IAAI,MAAM,0BAA0B;AAE1D,QAAI,QAAQ;AACZ,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,IAAI,KAAK,CAAC,IAAI,OAAO;AAC3B,WAAK,CAAC,IAAI,IAAI;AACd,cAAQ,KAAK;AAAA,IACf;AACA,WAAO,QAAQ,GAAG;AAChB,WAAK,KAAK,QAAQ,GAAI;AACtB,gBAAU;AAAA,IACZ;AAAA,EACF;AAEA,WAAS,IAAI,GAAG,IAAI,OAAO,IAAK,MAAK,KAAK,CAAC;AAC3C,OAAK,QAAA;AACL,SAAO,WAAW,KAAK,IAAI;AAC7B;AAEO,SAAS,sBAAsB,OAA2B;AAC/D,MAAI,CAAC,MAAM,WAAW,GAAG,EAAG,OAAM,IAAI,MAAM,6BAA6B;AACzE,SAAO,aAAa,MAAM,MAAM,CAAC,CAAC;AACpC;"}
1
+ {"version":3,"file":"standards-sdk.es149.js","sources":["../../src/common/node-operator-resolver.ts"],"sourcesContent":["import { AccountId, Client, PrivateKey } from '@hashgraph/sdk';\nimport { HederaMirrorNode } from '../services/mirror-node';\nimport { ILogger } from '../utils/logger';\nimport { detectKeyTypeFromString } from '../utils/key-type-detector';\nimport { NetworkType } from '../utils/types';\n\n/**\n * Resolves operator and supply private keys using Mirror Node as source of truth\n * with format-detection fallbacks for string keys.\n */\nexport class NodeOperatorResolver {\n private readonly mirror: HederaMirrorNode;\n private readonly logger: ILogger;\n\n constructor(params: { mirrorNode: HederaMirrorNode; logger: ILogger }) {\n this.mirror = params.mirrorNode;\n this.logger = params.logger;\n }\n\n /**\n * Best-guess parsing for an operator key without network calls.\n * - If PrivateKey: returns immediately with provided or fallback type.\n * - If string with explicitType: parse directly.\n * - If string without type: detect format; fallback to ECDSA.\n */\n bestGuessOperatorKey(\n operatorKeyInput: string | PrivateKey,\n explicitType?: 'ed25519' | 'ecdsa',\n ): { keyType: 'ed25519' | 'ecdsa'; privateKey: PrivateKey } {\n if (typeof operatorKeyInput !== 'string') {\n return { keyType: explicitType || 'ecdsa', privateKey: operatorKeyInput };\n }\n if (explicitType) {\n const pk =\n explicitType === 'ed25519'\n ? PrivateKey.fromStringED25519(operatorKeyInput)\n : PrivateKey.fromStringECDSA(operatorKeyInput);\n return { keyType: explicitType, privateKey: pk };\n }\n try {\n const detected = detectKeyTypeFromString(operatorKeyInput);\n return {\n keyType: detected.detectedType,\n privateKey: detected.privateKey,\n };\n } catch {\n return {\n keyType: 'ecdsa',\n privateKey: PrivateKey.fromStringECDSA(operatorKeyInput),\n };\n }\n }\n\n /**\n * Resolve an operator key using Mirror Node for key type when possible.\n * - If PrivateKey: return immediately.\n * - If explicitType: parse directly.\n * - Else: query Mirror Node; fallback to local detection.\n */\n async resolveOperatorKey(\n operatorId: string | AccountId,\n operatorKeyInput: string | PrivateKey,\n explicitType?: 'ed25519' | 'ecdsa',\n ): Promise<{ keyType: 'ed25519' | 'ecdsa'; privateKey: PrivateKey }> {\n if (typeof operatorKeyInput !== 'string') {\n return { keyType: explicitType || 'ecdsa', privateKey: operatorKeyInput };\n }\n if (explicitType) {\n const pk =\n explicitType === 'ed25519'\n ? PrivateKey.fromStringED25519(operatorKeyInput)\n : PrivateKey.fromStringECDSA(operatorKeyInput);\n return { keyType: explicitType, privateKey: pk };\n }\n const account =\n typeof operatorId === 'string' ? operatorId : operatorId.toString();\n try {\n const info = await this.mirror.requestAccount(account);\n const t = info?.key?._type || '';\n const keyType: 'ed25519' | 'ecdsa' = t.includes('ED25519')\n ? 'ed25519'\n : 'ecdsa';\n const privateKey =\n keyType === 'ed25519'\n ? PrivateKey.fromStringED25519(operatorKeyInput)\n : PrivateKey.fromStringECDSA(operatorKeyInput);\n return { keyType, privateKey };\n } catch {\n this.logger.warn(\n 'Mirror node key detection failed; using local detection or default ECDSA',\n );\n return this.bestGuessOperatorKey(operatorKeyInput);\n }\n }\n\n /**\n * Resolve a supply key for the given token using Mirror Node token supply_key._type when possible.\n */\n async resolveSupplyKey(\n tokenId: string,\n keyInput: string | PrivateKey,\n fallbackType: 'ed25519' | 'ecdsa',\n explicitType?: 'ed25519' | 'ecdsa',\n ): Promise<PrivateKey> {\n try {\n const info = await this.mirror.getTokenInfo(tokenId);\n const t = info?.supply_key?._type || '';\n if (typeof keyInput !== 'string') {\n return keyInput;\n }\n if (explicitType) {\n return explicitType === 'ed25519'\n ? PrivateKey.fromStringED25519(keyInput)\n : PrivateKey.fromStringECDSA(keyInput);\n }\n if (t.includes('ED25519')) {\n return PrivateKey.fromStringED25519(keyInput);\n }\n if (t.includes('ECDSA')) {\n return PrivateKey.fromStringECDSA(keyInput);\n }\n return fallbackType === 'ed25519'\n ? PrivateKey.fromStringED25519(keyInput)\n : PrivateKey.fromStringECDSA(keyInput);\n } catch {\n if (typeof keyInput !== 'string') {\n return keyInput;\n }\n if (explicitType) {\n return explicitType === 'ed25519'\n ? PrivateKey.fromStringED25519(keyInput)\n : PrivateKey.fromStringECDSA(keyInput);\n }\n return fallbackType === 'ed25519'\n ? PrivateKey.fromStringED25519(keyInput)\n : PrivateKey.fromStringECDSA(keyInput);\n }\n }\n}\n\nexport interface NodeOperatorInitParams {\n network: NetworkType;\n operatorId: string | AccountId;\n operatorKey: string | PrivateKey;\n keyType?: 'ed25519' | 'ecdsa';\n mirrorNode: HederaMirrorNode;\n logger: ILogger;\n client?: Client;\n}\n\nexport interface NodeOperatorContext {\n client: Client;\n operatorId: AccountId;\n readonly operatorKey: PrivateKey;\n readonly keyType: 'ed25519' | 'ecdsa';\n ensureInitialized(): Promise<void>;\n}\n\nexport function createNodeOperatorContext(\n params: NodeOperatorInitParams,\n): NodeOperatorContext {\n const operatorId: AccountId =\n typeof params.operatorId === 'string'\n ? AccountId.fromString(params.operatorId)\n : params.operatorId;\n\n const client: Client = params.client\n ? params.client\n : params.network === 'mainnet'\n ? Client.forMainnet()\n : Client.forTestnet();\n\n const resolver = new NodeOperatorResolver({\n mirrorNode: params.mirrorNode,\n logger: params.logger,\n });\n\n let currentKeyType: 'ed25519' | 'ecdsa';\n let currentPrivateKey: PrivateKey;\n\n const guess = resolver.bestGuessOperatorKey(\n params.operatorKey,\n params.keyType,\n );\n currentKeyType = guess.keyType;\n currentPrivateKey = guess.privateKey;\n client.setOperator(operatorId.toString(), currentPrivateKey);\n\n const initPromise = (async () => {\n try {\n const resolved = await resolver.resolveOperatorKey(\n operatorId,\n params.operatorKey,\n params.keyType,\n );\n currentKeyType = resolved.keyType;\n currentPrivateKey = resolved.privateKey;\n client.setOperator(operatorId.toString(), currentPrivateKey);\n } catch {}\n })();\n\n return {\n client,\n operatorId,\n get operatorKey() {\n return currentPrivateKey;\n },\n get keyType() {\n return currentKeyType;\n },\n ensureInitialized: async () => {\n await initPromise;\n },\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1,175 +1,176 @@
1
- import { ContractId, AccountId } from "@hashgraph/sdk";
2
- import { ethers } from "ethers";
3
- import { Logger } from "./standards-sdk.es106.js";
4
- class MapCache {
5
- constructor() {
6
- this.cache = /* @__PURE__ */ new Map();
7
- }
8
- get(key) {
9
- return this.cache.get(key);
10
- }
11
- set(key, value) {
12
- this.cache.set(key, value);
13
- }
14
- delete(key) {
15
- this.cache.delete(key);
1
+ import { Logger } from "./standards-sdk.es105.js";
2
+ class RedisCache {
3
+ constructor(config = {}) {
4
+ const {
5
+ host = "localhost",
6
+ port = 6379,
7
+ password,
8
+ db = 0,
9
+ keyPrefix = "",
10
+ tls = false,
11
+ connectTimeout = 5e3,
12
+ retryStrategy,
13
+ logLevel = "info"
14
+ } = config;
15
+ this.prefix = keyPrefix;
16
+ this.logger = Logger.getInstance({
17
+ level: logLevel,
18
+ module: "RedisCache"
19
+ });
20
+ this.client = createRedisClient(
21
+ this.logger,
22
+ {
23
+ host,
24
+ port,
25
+ password,
26
+ db,
27
+ tls: tls ? {} : void 0,
28
+ keyPrefix,
29
+ connectTimeout,
30
+ retryStrategy: retryStrategy || ((times) => {
31
+ const delay = Math.min(times * 50, 2e3);
32
+ return delay;
33
+ }),
34
+ maxRetriesPerRequest: 3
35
+ }
36
+ );
16
37
  }
17
- clear() {
18
- this.cache.clear();
38
+ getKey(key) {
39
+ return `${this.prefix}${key}`;
19
40
  }
20
- }
21
- class EVMBridge {
22
- constructor(network = "mainnet-public", mirrorNodeUrl = `mirrornode.hedera.com/api/v1/contracts/call`, cache) {
23
- this.network = network;
24
- this.mirrorNodeUrl = mirrorNodeUrl;
25
- this.cache = cache || new MapCache();
26
- this.logger = Logger.getInstance({ module: "EVMBridge" });
41
+ async get(key) {
42
+ try {
43
+ const value = await this.client.get(this.getKey(key));
44
+ return value || void 0;
45
+ } catch (error) {
46
+ this.logger.error("Redis get error:", error);
47
+ throw error;
48
+ }
27
49
  }
28
- async executeCommands(evmConfigs, initialState = {}) {
29
- let stateData = { ...initialState };
30
- const results = {};
31
- for (const config of evmConfigs) {
32
- const cacheKey = `${config.c.contractAddress}-${config.c.abi.name}`;
33
- const cachedResult = await this.cache.get(cacheKey);
34
- if (cachedResult) {
35
- results[config.c.abi.name] = JSON.parse(cachedResult);
36
- Object.assign(stateData, results[config.c.abi.name]);
37
- continue;
38
- }
39
- try {
40
- const iface = new ethers.Interface([
41
- {
42
- ...config.c.abi
43
- }
44
- ]);
45
- const command = iface.encodeFunctionData(config.c.abi.name);
46
- const contractId = ContractId.fromSolidityAddress(
47
- config.c.contractAddress
48
- );
49
- const result = await this.readFromMirrorNode(
50
- command,
51
- AccountId.fromString("0.0.800"),
52
- contractId
53
- );
54
- this.logger.info(
55
- `Result for ${config.c.contractAddress}:`,
56
- result?.result
57
- );
58
- if (!result?.result) {
59
- this.logger.warn(
60
- `Failed to get result from mirror node for ${config.c.contractAddress}`
61
- );
62
- results[config.c.abi.name] = "0";
63
- Object.assign(stateData, results[config.c.abi.name]);
64
- continue;
65
- }
66
- const decodedResult = iface?.decodeFunctionResult(
67
- config.c.abi.name,
68
- result.result
69
- );
70
- let processedResult = {
71
- values: []
72
- // Initialize array for values
73
- };
74
- if (decodedResult) {
75
- config.c.abi.outputs?.forEach((output, idx) => {
76
- const value = decodedResult[idx];
77
- const formattedValue = formatValue(value, output.type);
78
- processedResult.values.push(formattedValue);
79
- if (output.name) {
80
- processedResult[output.name] = formattedValue;
81
- }
82
- });
83
- }
84
- await this.cache.set(cacheKey, JSON.stringify(processedResult));
85
- results[config.c.abi.name] = processedResult;
86
- stateData[config.c.abi.name] = processedResult;
87
- } catch (error) {
88
- this.logger.error(
89
- `Error executing command for ${config.c.contractAddress}:`,
90
- error
91
- );
92
- results[config.c.abi.name] = "0";
93
- Object.assign(stateData, results[config.c.abi.name]);
50
+ async set(key, value, ttlSeconds) {
51
+ try {
52
+ const fullKey = this.getKey(key);
53
+ if (ttlSeconds) {
54
+ await this.client.setex(fullKey, ttlSeconds, value);
55
+ } else {
56
+ await this.client.set(fullKey, value);
94
57
  }
58
+ } catch (error) {
59
+ this.logger.error("Redis set error:", error);
60
+ throw error;
95
61
  }
96
- return { results, stateData };
97
62
  }
98
- async executeCommand(evmConfig, stateData = {}) {
99
- const { results, stateData: newStateData } = await this.executeCommands(
100
- [evmConfig],
101
- stateData
102
- );
103
- return {
104
- result: results[evmConfig.c.abi.name],
105
- stateData: newStateData
106
- };
63
+ async delete(key) {
64
+ try {
65
+ await this.client.del(this.getKey(key));
66
+ } catch (error) {
67
+ this.logger.error("Redis delete error:", error);
68
+ throw error;
69
+ }
107
70
  }
108
- async readFromMirrorNode(command, from, to) {
71
+ async clear() {
109
72
  try {
110
- const toAddress = to.toSolidityAddress();
111
- const fromAddress = from.toSolidityAddress();
112
- const response = await fetch(
113
- `https://${this.network}.${this.mirrorNodeUrl}`,
114
- {
115
- method: "POST",
116
- headers: {
117
- "Content-Type": "application/json"
118
- },
119
- body: JSON.stringify({
120
- block: "latest",
121
- data: command,
122
- estimate: false,
123
- gas: 3e5,
124
- gasPrice: 1e8,
125
- from: fromAddress.startsWith("0x") ? fromAddress : `0x${fromAddress}`,
126
- to: toAddress?.startsWith("0x") ? toAddress : `0x${toAddress}`,
127
- value: 0
128
- })
129
- }
130
- );
131
- if (!response.ok) {
132
- throw new Error(`HTTP error! status: ${response.status}`);
73
+ const keys = await this.client.keys(`${this.prefix}*`);
74
+ if (keys.length > 0) {
75
+ await this.client.del(...keys);
133
76
  }
134
- return await response.json();
135
77
  } catch (error) {
136
- this.logger.error("Error reading from mirror node:", error);
137
- return null;
78
+ this.logger.error("Redis clear error:", error);
79
+ throw error;
138
80
  }
139
81
  }
140
- async clearCache() {
141
- await this.cache.clear();
142
- }
143
- async clearCacheForContract(contractAddress, functionName) {
144
- await this.cache.delete(`${contractAddress}-${functionName}`);
82
+ async disconnect() {
83
+ await this.client.quit();
145
84
  }
146
85
  setLogLevel(level) {
147
86
  this.logger.setLogLevel(level);
148
87
  }
149
88
  }
150
- function formatValue(value, type) {
151
- if (value === null || value === void 0) {
152
- return "0";
89
+ function createRedisClient(logger, options, logConnectEvents) {
90
+ const Redis = getRedisConstructor();
91
+ if (!Redis) {
92
+ logger.warn(
93
+ "ioredis is not installed; RedisCache will use an in-memory cache instead"
94
+ );
95
+ return createInMemoryRedisClient();
153
96
  }
154
- if (value._isBigNumber) {
155
- return value.toString();
97
+ const client = new Redis({
98
+ host: options.host,
99
+ port: options.port,
100
+ password: options.password,
101
+ db: options.db,
102
+ tls: options.tls,
103
+ keyPrefix: options.keyPrefix,
104
+ connectTimeout: options.connectTimeout,
105
+ retryStrategy: options.retryStrategy,
106
+ maxRetriesPerRequest: options.maxRetriesPerRequest
107
+ });
108
+ {
109
+ client.on("error", (error) => {
110
+ logger.error("Redis connection error:", error);
111
+ });
112
+ client.on("connect", () => {
113
+ logger.debug("Redis connected");
114
+ });
156
115
  }
157
- if (type.startsWith("uint") || type.startsWith("int")) {
158
- return String(value);
159
- } else if (type === "bool") {
160
- return value ? "true" : "false";
161
- } else if (type === "string") {
162
- return value;
163
- } else if (type === "address") {
164
- return String(value).toLowerCase();
165
- } else if (type.endsWith("[]")) {
166
- return Array.isArray(value) ? value.map((v) => String(v)).join(",") : "";
167
- } else {
168
- return String(value);
116
+ return client;
117
+ }
118
+ function getRedisConstructor() {
119
+ if (typeof require !== "function") {
120
+ return null;
169
121
  }
122
+ try {
123
+ const loaded = require("ioredis");
124
+ if (typeof loaded === "function") {
125
+ return loaded;
126
+ }
127
+ if (typeof loaded.default === "function") {
128
+ return loaded.default;
129
+ }
130
+ } catch {
131
+ return null;
132
+ }
133
+ return null;
134
+ }
135
+ function createInMemoryRedisClient() {
136
+ const store = /* @__PURE__ */ new Map();
137
+ return {
138
+ async get(key) {
139
+ return store.get(key) ?? null;
140
+ },
141
+ async set(key, value) {
142
+ store.set(key, value);
143
+ return "OK";
144
+ },
145
+ async setex(key, _seconds, value) {
146
+ store.set(key, value);
147
+ return "OK";
148
+ },
149
+ async del(...keys) {
150
+ let deleted = 0;
151
+ for (const key of keys) {
152
+ if (store.delete(key)) {
153
+ deleted += 1;
154
+ }
155
+ }
156
+ return deleted;
157
+ },
158
+ async keys(pattern) {
159
+ if (pattern.endsWith("*")) {
160
+ const prefix = pattern.slice(0, -1);
161
+ return Array.from(store.keys()).filter((key) => key.startsWith(prefix));
162
+ }
163
+ return store.has(pattern) ? [pattern] : [];
164
+ },
165
+ async quit() {
166
+ store.clear();
167
+ },
168
+ on() {
169
+ return;
170
+ }
171
+ };
170
172
  }
171
173
  export {
172
- EVMBridge,
173
- MapCache
174
+ RedisCache
174
175
  };
175
176
  //# sourceMappingURL=standards-sdk.es15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es15.js","sources":["../../src/hcs-7/evm-bridge.ts"],"sourcesContent":["import { AccountId, ContractId } from '@hashgraph/sdk';\nimport { EVMConfig } from './wasm-bridge';\nimport { ethers } from 'ethers';\nimport { Logger, ILogger } from '../utils/logger';\n\nexport interface EVMCache {\n get(key: string): Promise<string | undefined> | string | undefined;\n set(key: string, value: string): Promise<void> | void;\n delete(key: string): Promise<void> | void;\n clear(): Promise<void> | void;\n}\n\nexport class MapCache implements EVMCache {\n private cache: Map<string, string>;\n\n constructor() {\n this.cache = new Map();\n }\n\n get(key: string): string | undefined {\n return this.cache.get(key);\n }\n\n set(key: string, value: string): void {\n this.cache.set(key, value);\n }\n\n delete(key: string): void {\n this.cache.delete(key);\n }\n\n clear(): void {\n this.cache.clear();\n }\n}\n\nexport class EVMBridge {\n public network: string;\n public mirrorNodeUrl: string;\n private cache: EVMCache;\n private logger: ILogger;\n\n constructor(\n network: string = 'mainnet-public',\n mirrorNodeUrl: string = `mirrornode.hedera.com/api/v1/contracts/call`,\n cache?: EVMCache,\n ) {\n this.network = network;\n this.mirrorNodeUrl = mirrorNodeUrl;\n this.cache = cache || new MapCache();\n this.logger = Logger.getInstance({ module: 'EVMBridge' });\n }\n\n async executeCommands(\n evmConfigs: EVMConfig[],\n initialState: Record<string, string> = {},\n ): Promise<{\n results: Record<string, any>;\n stateData: Record<string, any>;\n }> {\n let stateData: Record<string, any> = { ...initialState };\n const results: Record<string, any> = {};\n\n for (const config of evmConfigs) {\n const cacheKey = `${config.c.contractAddress}-${config.c.abi.name}`;\n\n const cachedResult = await this.cache.get(cacheKey);\n if (cachedResult) {\n results[config.c.abi.name] = JSON.parse(cachedResult);\n Object.assign(stateData, results[config.c.abi.name]); // Flatten the values into stateData\n continue;\n }\n\n try {\n const iface = new ethers.Interface([\n {\n ...config.c.abi,\n },\n ]);\n const command = iface.encodeFunctionData(config.c.abi.name);\n const contractId = ContractId.fromSolidityAddress(\n config.c.contractAddress,\n );\n\n const result = await this.readFromMirrorNode(\n command,\n AccountId.fromString('0.0.800'),\n contractId,\n );\n\n this.logger.info(\n `Result for ${config.c.contractAddress}:`,\n result?.result,\n );\n\n if (!result?.result) {\n this.logger.warn(\n `Failed to get result from mirror node for ${config.c.contractAddress}`,\n );\n results[config.c.abi.name] = '0';\n Object.assign(stateData, results[config.c.abi.name]); // Flatten the values into stateData\n continue;\n }\n\n const decodedResult = iface?.decodeFunctionResult(\n config.c.abi.name,\n result.result,\n );\n let processedResult: Record<string, any> = {\n values: [], // Initialize array for values\n };\n\n if (decodedResult) {\n config.c.abi.outputs?.forEach((output, idx) => {\n const value = decodedResult[idx];\n const formattedValue = formatValue(value, output.type);\n\n processedResult.values.push(formattedValue);\n\n if (output.name) {\n processedResult[output.name] = formattedValue;\n }\n });\n }\n\n await this.cache.set(cacheKey, JSON.stringify(processedResult));\n\n results[config.c.abi.name] = processedResult;\n stateData[config.c.abi.name] = processedResult;\n } catch (error) {\n this.logger.error(\n `Error executing command for ${config.c.contractAddress}:`,\n error,\n );\n results[config.c.abi.name] = '0';\n Object.assign(stateData, results[config.c.abi.name]); // Flatten the values into stateData\n }\n }\n\n return { results, stateData };\n }\n\n async executeCommand(\n evmConfig: EVMConfig,\n stateData: Record<string, string> = {},\n ): Promise<any> {\n const { results, stateData: newStateData } = await this.executeCommands(\n [evmConfig],\n stateData,\n );\n return {\n result: results[evmConfig.c.abi.name],\n stateData: newStateData,\n };\n }\n\n async readFromMirrorNode(\n command: string,\n from: AccountId,\n to: ContractId,\n ): Promise<any> {\n try {\n const toAddress = to.toSolidityAddress();\n const fromAddress = from.toSolidityAddress();\n const response = await fetch(\n `https://${this.network}.${this.mirrorNodeUrl}`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n block: 'latest',\n data: command,\n estimate: false,\n gas: 300_000,\n gasPrice: 100000000,\n from: fromAddress.startsWith('0x')\n ? fromAddress\n : `0x${fromAddress}`,\n to: toAddress?.startsWith('0x') ? toAddress : `0x${toAddress}`,\n value: 0,\n }),\n },\n );\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n return await response.json();\n } catch (error) {\n this.logger.error('Error reading from mirror node:', error);\n return null;\n }\n }\n\n public async clearCache(): Promise<void> {\n await this.cache.clear();\n }\n\n public async clearCacheForContract(\n contractAddress: string,\n functionName: string,\n ): Promise<void> {\n await this.cache.delete(`${contractAddress}-${functionName}`);\n }\n\n public setLogLevel(level: 'debug' | 'info' | 'warn' | 'error'): void {\n this.logger.setLogLevel(level);\n }\n}\n\nfunction formatValue(value: any, type: string): string {\n if (value === null || value === undefined) {\n return '0';\n }\n\n if (value._isBigNumber) {\n return value.toString();\n }\n\n if (type.startsWith('uint') || type.startsWith('int')) {\n return String(value);\n } else if (type === 'bool') {\n return value ? 'true' : 'false';\n } else if (type === 'string') {\n return value;\n } else if (type === 'address') {\n return String(value).toLowerCase();\n } else if (type.endsWith('[]')) {\n return Array.isArray(value) ? value.map(v => String(v)).join(',') : '';\n } else {\n return String(value);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es15.js","sources":["../../src/hcs-7/redis-cache.ts"],"sourcesContent":["import { EVMCache } from './evm-bridge';\nimport { Logger, ILogger } from '../utils/logger';\n\ntype RedisOptions = {\n host: string;\n port: number;\n password?: string;\n db: number;\n tls?: Record<string, unknown>;\n keyPrefix?: string;\n connectTimeout: number;\n retryStrategy?: (times: number) => number | void;\n maxRetriesPerRequest: number;\n};\n\ntype RedisClient = {\n get(key: string): Promise<string | null>;\n set(key: string, value: string): Promise<string | null>;\n setex(key: string, seconds: number, value: string): Promise<string | null>;\n del(...keys: string[]): Promise<number>;\n keys(pattern: string): Promise<string[]>;\n quit(): Promise<void>;\n on(event: 'error' | 'connect', listener: (error?: Error) => void): void;\n};\n\ntype RedisConstructor = new (options: RedisOptions) => RedisClient;\n\ntype NodeRequire = (id: string) => unknown;\n\ndeclare const require: NodeRequire | undefined;\n\nexport interface RedisConfig {\n host?: string;\n port?: number;\n password?: string;\n db?: number;\n keyPrefix?: string;\n tls?: boolean;\n connectTimeout?: number;\n retryStrategy?: (times: number) => number | void;\n logLevel?: 'debug' | 'info' | 'warn' | 'error';\n}\n\nexport class RedisCache implements EVMCache {\n private client: RedisClient;\n private prefix: string;\n private logger: ILogger;\n\n constructor(config: RedisConfig = {}) {\n const {\n host = 'localhost',\n port = 6379,\n password,\n db = 0,\n keyPrefix = '',\n tls = false,\n connectTimeout = 5000,\n retryStrategy,\n logLevel = 'info',\n } = config;\n\n this.prefix = keyPrefix;\n this.logger = Logger.getInstance({\n level: logLevel,\n module: 'RedisCache',\n });\n\n this.client = createRedisClient(\n this.logger,\n {\n host,\n port,\n password,\n db,\n tls: tls ? {} : undefined,\n keyPrefix,\n connectTimeout,\n retryStrategy:\n retryStrategy ||\n (times => {\n const delay = Math.min(times * 50, 2000);\n return delay;\n }),\n maxRetriesPerRequest: 3,\n },\n true,\n );\n }\n\n private getKey(key: string): string {\n return `${this.prefix}${key}`;\n }\n\n async get(key: string): Promise<string | undefined> {\n try {\n const value = await this.client.get(this.getKey(key));\n return value || undefined;\n } catch (error: unknown) {\n this.logger.error('Redis get error:', error);\n throw error;\n }\n }\n\n async set(key: string, value: string, ttlSeconds?: number): Promise<void> {\n try {\n const fullKey = this.getKey(key);\n if (ttlSeconds) {\n await this.client.setex(fullKey, ttlSeconds, value);\n } else {\n await this.client.set(fullKey, value);\n }\n } catch (error: unknown) {\n this.logger.error('Redis set error:', error);\n throw error;\n }\n }\n\n async delete(key: string): Promise<void> {\n try {\n await this.client.del(this.getKey(key));\n } catch (error: unknown) {\n this.logger.error('Redis delete error:', error);\n throw error;\n }\n }\n\n async clear(): Promise<void> {\n try {\n const keys = await this.client.keys(`${this.prefix}*`);\n if (keys.length > 0) {\n await this.client.del(...keys);\n }\n } catch (error: unknown) {\n this.logger.error('Redis clear error:', error);\n throw error;\n }\n }\n\n async disconnect(): Promise<void> {\n await this.client.quit();\n }\n\n setLogLevel(level: 'debug' | 'info' | 'warn' | 'error'): void {\n this.logger.setLogLevel(level);\n }\n}\n\nfunction createRedisClient(\n logger: ILogger,\n options: RedisOptions,\n logConnectEvents: boolean,\n): RedisClient {\n const Redis = getRedisConstructor();\n\n if (!Redis) {\n logger.warn(\n 'ioredis is not installed; RedisCache will use an in-memory cache instead',\n );\n\n return createInMemoryRedisClient();\n }\n\n const client = new Redis({\n host: options.host,\n port: options.port,\n password: options.password,\n db: options.db,\n tls: options.tls,\n keyPrefix: options.keyPrefix,\n connectTimeout: options.connectTimeout,\n retryStrategy: options.retryStrategy,\n maxRetriesPerRequest: options.maxRetriesPerRequest,\n });\n\n if (logConnectEvents) {\n client.on('error', (error: Error) => {\n logger.error('Redis connection error:', error);\n });\n\n client.on('connect', () => {\n logger.debug('Redis connected');\n });\n }\n\n return client;\n}\n\nfunction getRedisConstructor(): RedisConstructor | null {\n if (typeof require !== 'function') {\n return null;\n }\n\n try {\n const loaded = require('ioredis') as\n | RedisConstructor\n | { default: RedisConstructor };\n\n if (typeof (loaded as RedisConstructor) === 'function') {\n return loaded as RedisConstructor;\n }\n\n if (\n typeof (loaded as { default?: RedisConstructor }).default === 'function'\n ) {\n return (loaded as { default: RedisConstructor }).default;\n }\n } catch {\n return null;\n }\n\n return null;\n}\n\nfunction createInMemoryRedisClient(): RedisClient {\n const store = new Map<string, string>();\n\n return {\n async get(key: string): Promise<string | null> {\n return store.get(key) ?? null;\n },\n async set(key: string, value: string): Promise<string | null> {\n store.set(key, value);\n return 'OK';\n },\n async setex(\n key: string,\n _seconds: number,\n value: string,\n ): Promise<string | null> {\n store.set(key, value);\n return 'OK';\n },\n async del(...keys: string[]): Promise<number> {\n let deleted = 0;\n for (const key of keys) {\n if (store.delete(key)) {\n deleted += 1;\n }\n }\n return deleted;\n },\n async keys(pattern: string): Promise<string[]> {\n if (pattern.endsWith('*')) {\n const prefix = pattern.slice(0, -1);\n return Array.from(store.keys()).filter(key => key.startsWith(prefix));\n }\n return store.has(pattern) ? [pattern] : [];\n },\n async quit(): Promise<void> {\n store.clear();\n },\n on(): void {\n return;\n },\n };\n}\n"],"names":[],"mappings":"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"}