@hashgraphonline/standards-sdk 0.1.160 → 0.1.162

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 (329) hide show
  1. package/dist/cjs/hcs-14/index.d.ts +1 -0
  2. package/dist/cjs/hcs-14/index.d.ts.map +1 -1
  3. package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts +1 -0
  4. package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -1
  5. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts +23 -0
  6. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts.map +1 -0
  7. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile.d.ts +32 -0
  8. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile.d.ts.map +1 -0
  9. package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts +1 -0
  10. package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -1
  11. package/dist/cjs/hcs-14/resolvers/hiero.d.ts +1 -0
  12. package/dist/cjs/hcs-14/resolvers/hiero.d.ts.map +1 -1
  13. package/dist/cjs/hcs-14/resolvers/registry.d.ts +39 -1
  14. package/dist/cjs/hcs-14/resolvers/registry.d.ts.map +1 -1
  15. package/dist/cjs/hcs-14/resolvers/types.d.ts +52 -0
  16. package/dist/cjs/hcs-14/resolvers/types.d.ts.map +1 -1
  17. package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +1 -0
  18. package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -1
  19. package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts +1 -0
  20. package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -1
  21. package/dist/cjs/hcs-14/sdk.d.ts +46 -13
  22. package/dist/cjs/hcs-14/sdk.d.ts.map +1 -1
  23. package/dist/cjs/standards-sdk.cjs +3 -3
  24. package/dist/cjs/standards-sdk.cjs.map +1 -1
  25. package/dist/es/hcs-14/index.d.ts +1 -0
  26. package/dist/es/hcs-14/index.d.ts.map +1 -1
  27. package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts +1 -0
  28. package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -1
  29. package/dist/es/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts +23 -0
  30. package/dist/es/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts.map +1 -0
  31. package/dist/es/hcs-14/resolvers/ans-dns-web-profile.d.ts +32 -0
  32. package/dist/es/hcs-14/resolvers/ans-dns-web-profile.d.ts.map +1 -0
  33. package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts +1 -0
  34. package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -1
  35. package/dist/es/hcs-14/resolvers/hiero.d.ts +1 -0
  36. package/dist/es/hcs-14/resolvers/hiero.d.ts.map +1 -1
  37. package/dist/es/hcs-14/resolvers/registry.d.ts +39 -1
  38. package/dist/es/hcs-14/resolvers/registry.d.ts.map +1 -1
  39. package/dist/es/hcs-14/resolvers/types.d.ts +52 -0
  40. package/dist/es/hcs-14/resolvers/types.d.ts.map +1 -1
  41. package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +1 -0
  42. package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -1
  43. package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts +1 -0
  44. package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -1
  45. package/dist/es/hcs-14/sdk.d.ts +46 -13
  46. package/dist/es/hcs-14/sdk.d.ts.map +1 -1
  47. package/dist/es/standards-sdk.es.js +97 -90
  48. package/dist/es/standards-sdk.es.js.map +1 -1
  49. package/dist/es/standards-sdk.es100.js +151 -43
  50. package/dist/es/standards-sdk.es100.js.map +1 -1
  51. package/dist/es/standards-sdk.es101.js +114 -234
  52. package/dist/es/standards-sdk.es101.js.map +1 -1
  53. package/dist/es/standards-sdk.es102.js +43 -96
  54. package/dist/es/standards-sdk.es102.js.map +1 -1
  55. package/dist/es/standards-sdk.es103.js +244 -80
  56. package/dist/es/standards-sdk.es103.js.map +1 -1
  57. package/dist/es/standards-sdk.es104.js +101 -29
  58. package/dist/es/standards-sdk.es104.js.map +1 -1
  59. package/dist/es/standards-sdk.es105.js +94 -225
  60. package/dist/es/standards-sdk.es105.js.map +1 -1
  61. package/dist/es/standards-sdk.es106.js +29 -112
  62. package/dist/es/standards-sdk.es106.js.map +1 -1
  63. package/dist/es/standards-sdk.es107.js +224 -26
  64. package/dist/es/standards-sdk.es107.js.map +1 -1
  65. package/dist/es/standards-sdk.es108.js +109 -80
  66. package/dist/es/standards-sdk.es108.js.map +1 -1
  67. package/dist/es/standards-sdk.es109.js +29 -26
  68. package/dist/es/standards-sdk.es109.js.map +1 -1
  69. package/dist/es/standards-sdk.es11.js +1 -1
  70. package/dist/es/standards-sdk.es110.js +80 -248
  71. package/dist/es/standards-sdk.es110.js.map +1 -1
  72. package/dist/es/standards-sdk.es111.js +28 -475
  73. package/dist/es/standards-sdk.es111.js.map +1 -1
  74. package/dist/es/standards-sdk.es112.js +244 -97
  75. package/dist/es/standards-sdk.es112.js.map +1 -1
  76. package/dist/es/standards-sdk.es113.js +451 -133
  77. package/dist/es/standards-sdk.es113.js.map +1 -1
  78. package/dist/es/standards-sdk.es114.js +98 -27
  79. package/dist/es/standards-sdk.es114.js.map +1 -1
  80. package/dist/es/standards-sdk.es115.js +156 -8
  81. package/dist/es/standards-sdk.es115.js.map +1 -1
  82. package/dist/es/standards-sdk.es116.js +31 -139
  83. package/dist/es/standards-sdk.es116.js.map +1 -1
  84. package/dist/es/standards-sdk.es117.js +10 -27
  85. package/dist/es/standards-sdk.es117.js.map +1 -1
  86. package/dist/es/standards-sdk.es118.js +139 -19
  87. package/dist/es/standards-sdk.es118.js.map +1 -1
  88. package/dist/es/standards-sdk.es119.js +27 -158
  89. package/dist/es/standards-sdk.es119.js.map +1 -1
  90. package/dist/es/standards-sdk.es12.js +1 -1
  91. package/dist/es/standards-sdk.es120.js +16 -197
  92. package/dist/es/standards-sdk.es120.js.map +1 -1
  93. package/dist/es/standards-sdk.es121.js +133 -763
  94. package/dist/es/standards-sdk.es121.js.map +1 -1
  95. package/dist/es/standards-sdk.es122.js +200 -10
  96. package/dist/es/standards-sdk.es122.js.map +1 -1
  97. package/dist/es/standards-sdk.es123.js +762 -539
  98. package/dist/es/standards-sdk.es123.js.map +1 -1
  99. package/dist/es/standards-sdk.es124.js +10 -599
  100. package/dist/es/standards-sdk.es124.js.map +1 -1
  101. package/dist/es/standards-sdk.es125.js +567 -13
  102. package/dist/es/standards-sdk.es125.js.map +1 -1
  103. package/dist/es/standards-sdk.es126.js +602 -2
  104. package/dist/es/standards-sdk.es126.js.map +1 -1
  105. package/dist/es/standards-sdk.es127.js +12 -86
  106. package/dist/es/standards-sdk.es127.js.map +1 -1
  107. package/dist/es/standards-sdk.es128.js +2 -40
  108. package/dist/es/standards-sdk.es128.js.map +1 -1
  109. package/dist/es/standards-sdk.es129.js +87 -2
  110. package/dist/es/standards-sdk.es129.js.map +1 -1
  111. package/dist/es/standards-sdk.es13.js +1 -1
  112. package/dist/es/standards-sdk.es130.js +37 -232
  113. package/dist/es/standards-sdk.es130.js.map +1 -1
  114. package/dist/es/standards-sdk.es131.js +2 -1140
  115. package/dist/es/standards-sdk.es131.js.map +1 -1
  116. package/dist/es/standards-sdk.es132.js +213 -284
  117. package/dist/es/standards-sdk.es132.js.map +1 -1
  118. package/dist/es/standards-sdk.es133.js +1138 -420
  119. package/dist/es/standards-sdk.es133.js.map +1 -1
  120. package/dist/es/standards-sdk.es134.js +301 -350
  121. package/dist/es/standards-sdk.es134.js.map +1 -1
  122. package/dist/es/standards-sdk.es135.js +417 -1111
  123. package/dist/es/standards-sdk.es135.js.map +1 -1
  124. package/dist/es/standards-sdk.es136.js +348 -201
  125. package/dist/es/standards-sdk.es136.js.map +1 -1
  126. package/dist/es/standards-sdk.es137.js +1029 -1480
  127. package/dist/es/standards-sdk.es137.js.map +1 -1
  128. package/dist/es/standards-sdk.es138.js +207 -1254
  129. package/dist/es/standards-sdk.es138.js.map +1 -1
  130. package/dist/es/standards-sdk.es139.js +1564 -14
  131. package/dist/es/standards-sdk.es139.js.map +1 -1
  132. package/dist/es/standards-sdk.es14.js +1 -1
  133. package/dist/es/standards-sdk.es140.js +1253 -85
  134. package/dist/es/standards-sdk.es140.js.map +1 -1
  135. package/dist/es/standards-sdk.es141.js +15 -79
  136. package/dist/es/standards-sdk.es141.js.map +1 -1
  137. package/dist/es/standards-sdk.es142.js +83 -889
  138. package/dist/es/standards-sdk.es142.js.map +1 -1
  139. package/dist/es/standards-sdk.es143.js +73 -52
  140. package/dist/es/standards-sdk.es143.js.map +1 -1
  141. package/dist/es/standards-sdk.es144.js +877 -143
  142. package/dist/es/standards-sdk.es144.js.map +1 -1
  143. package/dist/es/standards-sdk.es145.js +60 -7
  144. package/dist/es/standards-sdk.es145.js.map +1 -1
  145. package/dist/es/standards-sdk.es146.js +138 -65
  146. package/dist/es/standards-sdk.es146.js.map +1 -1
  147. package/dist/es/standards-sdk.es147.js +7 -65
  148. package/dist/es/standards-sdk.es147.js.map +1 -1
  149. package/dist/es/standards-sdk.es148.js +86 -30
  150. package/dist/es/standards-sdk.es148.js.map +1 -1
  151. package/dist/es/standards-sdk.es149.js +65 -34
  152. package/dist/es/standards-sdk.es149.js.map +1 -1
  153. package/dist/es/standards-sdk.es15.js +1 -1
  154. package/dist/es/standards-sdk.es150.js +30 -41
  155. package/dist/es/standards-sdk.es150.js.map +1 -1
  156. package/dist/es/standards-sdk.es151.js +34 -138
  157. package/dist/es/standards-sdk.es151.js.map +1 -1
  158. package/dist/es/standards-sdk.es152.js +48 -42
  159. package/dist/es/standards-sdk.es152.js.map +1 -1
  160. package/dist/es/standards-sdk.es153.js +106 -12450
  161. package/dist/es/standards-sdk.es153.js.map +1 -1
  162. package/dist/es/standards-sdk.es154.js +38 -168
  163. package/dist/es/standards-sdk.es154.js.map +1 -1
  164. package/dist/es/standards-sdk.es155.js +12423 -263
  165. package/dist/es/standards-sdk.es155.js.map +1 -1
  166. package/dist/es/standards-sdk.es156.js +13 -342
  167. package/dist/es/standards-sdk.es156.js.map +1 -1
  168. package/dist/es/standards-sdk.es157.js +55 -452
  169. package/dist/es/standards-sdk.es157.js.map +1 -1
  170. package/dist/es/standards-sdk.es158.js +70 -317
  171. package/dist/es/standards-sdk.es158.js.map +1 -1
  172. package/dist/es/standards-sdk.es159.js +70 -65
  173. package/dist/es/standards-sdk.es159.js.map +1 -1
  174. package/dist/es/standards-sdk.es16.js +4 -4
  175. package/dist/es/standards-sdk.es160.js +197 -14
  176. package/dist/es/standards-sdk.es160.js.map +1 -1
  177. package/dist/es/standards-sdk.es161.js +60 -229
  178. package/dist/es/standards-sdk.es161.js.map +1 -1
  179. package/dist/es/standards-sdk.es162.js +237 -51
  180. package/dist/es/standards-sdk.es162.js.map +1 -1
  181. package/dist/es/standards-sdk.es163.js +160 -72
  182. package/dist/es/standards-sdk.es163.js.map +1 -1
  183. package/dist/es/standards-sdk.es164.js +312 -71
  184. package/dist/es/standards-sdk.es164.js.map +1 -1
  185. package/dist/es/standards-sdk.es165.js +337 -64
  186. package/dist/es/standards-sdk.es165.js.map +1 -1
  187. package/dist/es/standards-sdk.es166.js +436 -155
  188. package/dist/es/standards-sdk.es166.js.map +1 -1
  189. package/dist/es/standards-sdk.es167.js +319 -210
  190. package/dist/es/standards-sdk.es167.js.map +1 -1
  191. package/dist/es/standards-sdk.es168.js +68 -231
  192. package/dist/es/standards-sdk.es168.js.map +1 -1
  193. package/dist/es/standards-sdk.es169.js +154 -101
  194. package/dist/es/standards-sdk.es169.js.map +1 -1
  195. package/dist/es/standards-sdk.es170.js +200 -104
  196. package/dist/es/standards-sdk.es170.js.map +1 -1
  197. package/dist/es/standards-sdk.es171.js +225 -147
  198. package/dist/es/standards-sdk.es171.js.map +1 -1
  199. package/dist/es/standards-sdk.es172.js +100 -166
  200. package/dist/es/standards-sdk.es172.js.map +1 -1
  201. package/dist/es/standards-sdk.es173.js +110 -123
  202. package/dist/es/standards-sdk.es173.js.map +1 -1
  203. package/dist/es/standards-sdk.es174.js +122 -292
  204. package/dist/es/standards-sdk.es174.js.map +1 -1
  205. package/dist/es/standards-sdk.es175.js +166 -240
  206. package/dist/es/standards-sdk.es175.js.map +1 -1
  207. package/dist/es/standards-sdk.es176.js +125 -102
  208. package/dist/es/standards-sdk.es176.js.map +1 -1
  209. package/dist/es/standards-sdk.es177.js +334 -0
  210. package/dist/es/standards-sdk.es177.js.map +1 -0
  211. package/dist/es/standards-sdk.es178.js +262 -0
  212. package/dist/es/standards-sdk.es178.js.map +1 -0
  213. package/dist/es/standards-sdk.es179.js +119 -0
  214. package/dist/es/standards-sdk.es179.js.map +1 -0
  215. package/dist/es/standards-sdk.es18.js +11 -11
  216. package/dist/es/standards-sdk.es19.js +8 -8
  217. package/dist/es/standards-sdk.es2.js +2 -2
  218. package/dist/es/standards-sdk.es20.js +1 -1
  219. package/dist/es/standards-sdk.es21.js +1 -1
  220. package/dist/es/standards-sdk.es22.js +1 -1
  221. package/dist/es/standards-sdk.es23.js +1 -1
  222. package/dist/es/standards-sdk.es24.js +1 -1
  223. package/dist/es/standards-sdk.es25.js +1 -1
  224. package/dist/es/standards-sdk.es26.js +1 -1
  225. package/dist/es/standards-sdk.es27.js +11 -11
  226. package/dist/es/standards-sdk.es30.js +2 -2
  227. package/dist/es/standards-sdk.es31.js +4 -4
  228. package/dist/es/standards-sdk.es32.js +1 -1
  229. package/dist/es/standards-sdk.es35.js +5 -5
  230. package/dist/es/standards-sdk.es36.js +4 -4
  231. package/dist/es/standards-sdk.es37.js +2 -2
  232. package/dist/es/standards-sdk.es38.js +2 -2
  233. package/dist/es/standards-sdk.es39.js +1 -1
  234. package/dist/es/standards-sdk.es4.js +2 -2
  235. package/dist/es/standards-sdk.es40.js +1 -1
  236. package/dist/es/standards-sdk.es41.js +2 -2
  237. package/dist/es/standards-sdk.es46.js +1 -1
  238. package/dist/es/standards-sdk.es5.js +2 -2
  239. package/dist/es/standards-sdk.es51.js +1 -1
  240. package/dist/es/standards-sdk.es53.js +1 -1
  241. package/dist/es/standards-sdk.es56.js +2 -2
  242. package/dist/es/standards-sdk.es58.js +39 -231
  243. package/dist/es/standards-sdk.es58.js.map +1 -1
  244. package/dist/es/standards-sdk.es59.js +328 -35
  245. package/dist/es/standards-sdk.es59.js.map +1 -1
  246. package/dist/es/standards-sdk.es6.js +2 -2
  247. package/dist/es/standards-sdk.es60.js +33 -101
  248. package/dist/es/standards-sdk.es60.js.map +1 -1
  249. package/dist/es/standards-sdk.es61.js +87 -156
  250. package/dist/es/standards-sdk.es61.js.map +1 -1
  251. package/dist/es/standards-sdk.es62.js +126 -153
  252. package/dist/es/standards-sdk.es62.js.map +1 -1
  253. package/dist/es/standards-sdk.es63.js +234 -81
  254. package/dist/es/standards-sdk.es63.js.map +1 -1
  255. package/dist/es/standards-sdk.es64.js +244 -39
  256. package/dist/es/standards-sdk.es64.js.map +1 -1
  257. package/dist/es/standards-sdk.es65.js +122 -247
  258. package/dist/es/standards-sdk.es65.js.map +1 -1
  259. package/dist/es/standards-sdk.es66.js +41 -28
  260. package/dist/es/standards-sdk.es66.js.map +1 -1
  261. package/dist/es/standards-sdk.es67.js +266 -90
  262. package/dist/es/standards-sdk.es67.js.map +1 -1
  263. package/dist/es/standards-sdk.es68.js +33 -3
  264. package/dist/es/standards-sdk.es68.js.map +1 -1
  265. package/dist/es/standards-sdk.es69.js +84 -89
  266. package/dist/es/standards-sdk.es69.js.map +1 -1
  267. package/dist/es/standards-sdk.es7.js +1 -1
  268. package/dist/es/standards-sdk.es70.js +3 -99
  269. package/dist/es/standards-sdk.es70.js.map +1 -1
  270. package/dist/es/standards-sdk.es71.js +99 -17
  271. package/dist/es/standards-sdk.es71.js.map +1 -1
  272. package/dist/es/standards-sdk.es72.js +100 -77
  273. package/dist/es/standards-sdk.es72.js.map +1 -1
  274. package/dist/es/standards-sdk.es73.js +19 -458
  275. package/dist/es/standards-sdk.es73.js.map +1 -1
  276. package/dist/es/standards-sdk.es74.js +77 -324
  277. package/dist/es/standards-sdk.es74.js.map +1 -1
  278. package/dist/es/standards-sdk.es75.js +420 -170
  279. package/dist/es/standards-sdk.es75.js.map +1 -1
  280. package/dist/es/standards-sdk.es76.js +323 -71
  281. package/dist/es/standards-sdk.es76.js.map +1 -1
  282. package/dist/es/standards-sdk.es77.js +208 -71
  283. package/dist/es/standards-sdk.es77.js.map +1 -1
  284. package/dist/es/standards-sdk.es78.js +67 -138
  285. package/dist/es/standards-sdk.es78.js.map +1 -1
  286. package/dist/es/standards-sdk.es79.js +71 -69
  287. package/dist/es/standards-sdk.es79.js.map +1 -1
  288. package/dist/es/standards-sdk.es80.js +132 -393
  289. package/dist/es/standards-sdk.es80.js.map +1 -1
  290. package/dist/es/standards-sdk.es81.js +44 -471
  291. package/dist/es/standards-sdk.es81.js.map +1 -1
  292. package/dist/es/standards-sdk.es82.js +361 -322
  293. package/dist/es/standards-sdk.es82.js.map +1 -1
  294. package/dist/es/standards-sdk.es83.js +495 -88
  295. package/dist/es/standards-sdk.es83.js.map +1 -1
  296. package/dist/es/standards-sdk.es84.js +365 -125
  297. package/dist/es/standards-sdk.es84.js.map +1 -1
  298. package/dist/es/standards-sdk.es85.js +88 -7
  299. package/dist/es/standards-sdk.es85.js.map +1 -1
  300. package/dist/es/standards-sdk.es86.js +125 -47
  301. package/dist/es/standards-sdk.es86.js.map +1 -1
  302. package/dist/es/standards-sdk.es87.js +6 -99
  303. package/dist/es/standards-sdk.es87.js.map +1 -1
  304. package/dist/es/standards-sdk.es88.js +43 -344
  305. package/dist/es/standards-sdk.es88.js.map +1 -1
  306. package/dist/es/standards-sdk.es89.js +73 -253
  307. package/dist/es/standards-sdk.es89.js.map +1 -1
  308. package/dist/es/standards-sdk.es9.js +2 -2
  309. package/dist/es/standards-sdk.es90.js +340 -53
  310. package/dist/es/standards-sdk.es90.js.map +1 -1
  311. package/dist/es/standards-sdk.es91.js +280 -48
  312. package/dist/es/standards-sdk.es91.js.map +1 -1
  313. package/dist/es/standards-sdk.es92.js +54 -143
  314. package/dist/es/standards-sdk.es92.js.map +1 -1
  315. package/dist/es/standards-sdk.es93.js +44 -62
  316. package/dist/es/standards-sdk.es93.js.map +1 -1
  317. package/dist/es/standards-sdk.es94.js +140 -20
  318. package/dist/es/standards-sdk.es94.js.map +1 -1
  319. package/dist/es/standards-sdk.es95.js +65 -23
  320. package/dist/es/standards-sdk.es95.js.map +1 -1
  321. package/dist/es/standards-sdk.es96.js +26 -236
  322. package/dist/es/standards-sdk.es96.js.map +1 -1
  323. package/dist/es/standards-sdk.es97.js +23 -280
  324. package/dist/es/standards-sdk.es97.js.map +1 -1
  325. package/dist/es/standards-sdk.es98.js +229 -146
  326. package/dist/es/standards-sdk.es98.js.map +1 -1
  327. package/dist/es/standards-sdk.es99.js +254 -117
  328. package/dist/es/standards-sdk.es99.js.map +1 -1
  329. package/package.json +8 -1
@@ -1,327 +1,80 @@
1
- import { TopicCreateTransaction, PublicKey } from "@hashgraph/sdk";
2
- import { HCS2BaseClient } from "./standards-sdk.es75.js";
3
- import { HCS2RegistryType, HCS2Operation } from "./standards-sdk.es72.js";
4
- import { isBrowser } from "./standards-sdk.es129.js";
5
- import { KeyTypeDetector } from "./standards-sdk.es124.js";
6
- import { buildMessageTx } from "./standards-sdk.es152.js";
7
- class BrowserHCS2Client extends HCS2BaseClient {
8
- /**
9
- * Create a new browser HCS-2 client
10
- * @param config Client configuration
11
- */
12
- constructor(config) {
13
- super({
14
- network: config.network,
15
- logLevel: config.logLevel,
16
- silent: config.silent,
17
- mirrorNodeUrl: config.mirrorNodeUrl,
18
- logger: config.logger
19
- });
20
- this.hwc = config.hwc;
21
- if (!isBrowser) {
22
- this.logger.error(
23
- "BrowserHCS2Client initialized in server environment - browser-specific features will not be available. Use HCS2Client instead."
24
- );
25
- } else {
26
- this.logger.info("HCS-2 browser client initialized successfully");
27
- }
28
- }
29
- /**
30
- * Get the operator account ID
31
- * @returns The operator account ID
32
- */
33
- getOperatorId() {
34
- const accountInfo = this.hwc.getAccountInfo();
35
- if (!accountInfo || !accountInfo.accountId) {
36
- throw new Error("No connected account found");
37
- }
38
- return accountInfo.accountId;
39
- }
40
- /**
41
- * Create a new registry topic
42
- * @param options Registry creation options
43
- * @returns Promise resolving to the transaction result
44
- */
45
- async createRegistry(options = {}) {
46
- try {
47
- const registryType = options.registryType ?? HCS2RegistryType.INDEXED;
48
- const ttl = options.ttl ?? 86400;
49
- const memo = this.generateRegistryMemo(registryType, ttl);
50
- let transaction = new TopicCreateTransaction().setTopicMemo(memo);
51
- if (options.adminKey) {
52
- let adminPublicKey;
53
- if (typeof options.adminKey === "string") {
54
- try {
55
- adminPublicKey = PublicKey.fromString(options.adminKey);
56
- } catch {
57
- const keyInfo = KeyTypeDetector.detect(options.adminKey);
58
- if (keyInfo.rawBytes) {
59
- adminPublicKey = keyInfo.type === "ed25519" ? PublicKey.fromBytesED25519(keyInfo.rawBytes) : PublicKey.fromBytesECDSA(keyInfo.rawBytes);
60
- } else {
61
- throw new Error("Failed to parse admin public key");
62
- }
63
- }
64
- } else if (typeof options.adminKey === "boolean") {
65
- adminPublicKey = await this.mirrorNode.getPublicKey(
66
- this.getOperatorId()
67
- );
68
- } else {
69
- adminPublicKey = options.adminKey.publicKey;
70
- }
71
- transaction = transaction.setAdminKey(adminPublicKey);
72
- }
73
- if (options.submitKey) {
74
- let submitPublicKey;
75
- if (typeof options.submitKey === "string") {
76
- try {
77
- submitPublicKey = PublicKey.fromString(options.submitKey);
78
- } catch {
79
- const keyInfo = KeyTypeDetector.detect(options.submitKey);
80
- if (keyInfo.rawBytes) {
81
- submitPublicKey = keyInfo.type === "ed25519" ? PublicKey.fromBytesED25519(keyInfo.rawBytes) : PublicKey.fromBytesECDSA(keyInfo.rawBytes);
82
- } else {
83
- throw new Error("Failed to parse submit public key");
84
- }
85
- }
86
- } else if (typeof options.submitKey === "boolean") {
87
- submitPublicKey = await this.mirrorNode.getPublicKey(
88
- this.getOperatorId()
89
- );
90
- } else {
91
- submitPublicKey = options.submitKey.publicKey;
92
- }
93
- transaction = transaction.setSubmitKey(submitPublicKey);
94
- }
95
- const txResponse = await this.executeWithWallet(transaction);
96
- if (txResponse?.error) {
97
- throw new Error(txResponse.error);
98
- }
99
- const resultReceipt = txResponse?.result;
100
- if (!resultReceipt?.topicId) {
101
- throw new Error("Failed to create registry: No topic ID in receipt");
102
- }
103
- const topicId = resultReceipt.topicId.toString();
104
- this.logger.info(
105
- `Created registry topic: ${topicId} (${registryType === HCS2RegistryType.INDEXED ? "Indexed" : "Non-indexed"}, TTL: ${ttl}s)`
106
- );
107
- return {
108
- success: true,
109
- topicId,
110
- transactionId: txResponse.transactionId || "unknown"
111
- };
112
- } catch (error) {
113
- this.logger.error(`Failed to create registry: ${error}`);
114
- return {
115
- success: false,
116
- error: `Failed to create registry: ${error}`
117
- };
118
- }
119
- }
120
- /**
121
- * Register a new entry in the registry
122
- * @param registryTopicId The topic ID of the registry
123
- * @param options Registration options
124
- * @returns Promise resolving to the operation result
125
- */
126
- async registerEntry(registryTopicId, options) {
127
- try {
128
- const message = this.createRegisterMessage(
129
- options.targetTopicId,
130
- options.metadata,
131
- options.memo
132
- );
133
- if (message.op !== HCS2Operation.REGISTER) {
134
- throw new Error(
135
- `Invalid operation type: ${message.op}, expected ${HCS2Operation.REGISTER}`
136
- );
137
- }
138
- const receipt = await this.submitMessage(registryTopicId, message);
139
- this.logger.info(
140
- `Registered entry in registry ${registryTopicId} pointing to topic ${options.targetTopicId}`
141
- );
142
- return {
143
- success: true,
144
- receipt,
145
- sequenceNumber: receipt.topicSequenceNumber?.low ?? void 0
146
- };
147
- } catch (error) {
148
- this.logger.error(`Failed to register entry: ${error}`);
149
- return {
150
- success: false,
151
- error: `Failed to register entry: ${error}`
152
- };
153
- }
154
- }
155
- /**
156
- * Update an existing entry in the registry (indexed registries only)
157
- * @param registryTopicId The topic ID of the registry
158
- * @param options Update options
159
- * @returns Promise resolving to the operation result
160
- */
161
- async updateEntry(registryTopicId, options) {
162
- try {
163
- const registryInfo = await this.mirrorNode.getTopicInfo(registryTopicId);
164
- const memoInfo = this.parseRegistryTypeFromMemo(registryInfo.memo);
165
- if (!memoInfo || memoInfo.registryType !== HCS2RegistryType.INDEXED) {
166
- throw new Error(
167
- "Update operation is only valid for indexed registries"
168
- );
169
- }
170
- const message = this.createUpdateMessage(
171
- options.targetTopicId,
172
- options.uid,
173
- options.metadata,
174
- options.memo
175
- );
176
- const receipt = await this.submitMessage(registryTopicId, message);
177
- this.logger.info(
178
- `Updated entry with UID ${options.uid} in registry ${registryTopicId}`
179
- );
180
- return {
181
- success: true,
182
- receipt,
183
- sequenceNumber: receipt.topicSequenceNumber?.low ?? void 0
184
- };
185
- } catch (error) {
186
- this.logger.error(`Failed to update entry: ${error}`);
187
- return {
188
- success: false,
189
- error: `Failed to update entry: ${error}`
190
- };
191
- }
192
- }
193
- /**
194
- * Delete an entry from the registry (indexed registries only)
195
- * @param registryTopicId The topic ID of the registry
196
- * @param options Delete options
197
- * @returns Promise resolving to the operation result
198
- */
199
- async deleteEntry(registryTopicId, options) {
200
- try {
201
- const registryInfo = await this.mirrorNode.getTopicInfo(registryTopicId);
202
- const memoInfo = this.parseRegistryTypeFromMemo(registryInfo.memo);
203
- if (!memoInfo || memoInfo.registryType !== HCS2RegistryType.INDEXED) {
204
- throw new Error(
205
- "Delete operation is only valid for indexed registries"
206
- );
207
- }
208
- const message = this.createDeleteMessage(options.uid, options.memo);
209
- const receipt = await this.submitMessage(registryTopicId, message);
210
- this.logger.info(
211
- `Deleted entry with UID ${options.uid} from registry ${registryTopicId}`
212
- );
213
- return {
214
- success: true,
215
- receipt,
216
- sequenceNumber: receipt.topicSequenceNumber?.low ?? void 0
217
- };
218
- } catch (error) {
219
- this.logger.error(`Failed to delete entry: ${error}`);
220
- return {
221
- success: false,
222
- error: `Failed to delete entry: ${error}`
223
- };
224
- }
225
- }
226
- /**
227
- * Migrate a registry to a new topic
228
- * @param registryTopicId The topic ID of the registry
229
- * @param options Migration options
230
- * @returns Promise resolving to the operation result
231
- */
232
- async migrateRegistry(registryTopicId, options) {
233
- try {
234
- const message = this.createMigrateMessage(
235
- options.targetTopicId,
236
- options.metadata,
237
- options.memo
238
- );
239
- const receipt = await this.submitMessage(registryTopicId, message);
240
- this.logger.info(
241
- `Migrated registry ${registryTopicId} to ${options.targetTopicId}`
242
- );
243
- return {
244
- success: true,
245
- receipt,
246
- sequenceNumber: receipt.topicSequenceNumber?.low ?? void 0
247
- };
248
- } catch (error) {
249
- this.logger.error(`Failed to migrate registry: ${error}`);
250
- return {
251
- success: false,
252
- error: `Failed to migrate registry: ${error}`
253
- };
254
- }
255
- }
256
- /**
257
- * Get all entries from a registry
258
- * @param topicId The topic ID of the registry
259
- * @param options Query options
260
- * @returns Promise resolving to the registry information
261
- */
262
- async getRegistry(topicId, options = {}) {
263
- try {
264
- const topicInfo = await this.mirrorNode.getTopicInfo(topicId);
265
- const memoInfo = this.parseRegistryTypeFromMemo(topicInfo.memo);
266
- if (!memoInfo) {
267
- throw new Error(
268
- `Topic ${topicId} is not an HCS-2 registry (invalid memo format)`
269
- );
270
- }
271
- const messagesResult = await this.mirrorNode.getTopicMessages(topicId, {
272
- sequenceNumber: options.skip && options.skip > 0 ? `gt:${options.skip}` : void 0,
273
- limit: options.limit ?? 100,
274
- order: options.order ?? "asc"
275
- });
276
- const messages = options.limit ? messagesResult.slice(0, options.limit) : messagesResult;
277
- return this.parseRegistryEntries(
278
- topicId,
279
- messages,
280
- memoInfo.registryType,
281
- memoInfo.ttl
282
- );
283
- } catch (error) {
284
- this.logger.error(`Failed to get registry: ${error}`);
285
- throw error;
286
- }
287
- }
288
- /**
289
- * Submit a message to a topic
290
- * @param topicId The topic ID to submit to
291
- * @param payload The message payload
292
- * @returns Promise resolving to the transaction receipt
293
- */
294
- async submitMessage(topicId, payload) {
295
- try {
296
- const { valid, errors } = this.validateMessage(payload);
297
- if (!valid) {
298
- throw new Error(`Invalid HCS-2 message: ${errors.join(", ")}`);
299
- }
300
- const transaction = buildMessageTx({
301
- topicId,
302
- message: JSON.stringify(payload)
303
- });
304
- const txResponse = await this.executeWithWallet(transaction);
305
- if (txResponse?.error) {
306
- throw new Error(txResponse.error);
307
- }
308
- return txResponse.result;
309
- } catch (error) {
310
- this.logger.error(`Failed to submit message: ${error}`);
311
- throw error;
312
- }
313
- }
314
- async executeWithWallet(transaction) {
315
- const maybeExec = this.hwc.executeTransactionWithErrorHandling;
316
- if (!maybeExec) {
317
- throw new Error(
318
- "Wallet SDK does not support executeTransactionWithErrorHandling"
319
- );
320
- }
321
- return await maybeExec.call(this.hwc, transaction, false);
322
- }
323
- }
1
+ import { z } from "zod";
2
+ var HCS2Operation = /* @__PURE__ */ ((HCS2Operation2) => {
3
+ HCS2Operation2["REGISTER"] = "register";
4
+ HCS2Operation2["UPDATE"] = "update";
5
+ HCS2Operation2["DELETE"] = "delete";
6
+ HCS2Operation2["MIGRATE"] = "migrate";
7
+ return HCS2Operation2;
8
+ })(HCS2Operation || {});
9
+ var HCS2RegistryType = /* @__PURE__ */ ((HCS2RegistryType2) => {
10
+ HCS2RegistryType2[HCS2RegistryType2["INDEXED"] = 0] = "INDEXED";
11
+ HCS2RegistryType2[HCS2RegistryType2["NON_INDEXED"] = 1] = "NON_INDEXED";
12
+ return HCS2RegistryType2;
13
+ })(HCS2RegistryType || {});
14
+ const topicIdSchema = z.string().regex(/^\d+\.\d+\.\d+$/, {
15
+ message: "Topic ID must be in Hedera format (e.g., '0.0.123456')"
16
+ });
17
+ const baseMessageSchema = z.object({
18
+ p: z.string().regex(/^hcs-\d+$/, {
19
+ message: "Protocol must be in format 'hcs-N' where N is a number"
20
+ }),
21
+ op: z.enum([
22
+ "register",
23
+ "update",
24
+ "delete",
25
+ "migrate"
26
+ /* MIGRATE */
27
+ ]),
28
+ m: z.string().max(500, "Memo must not exceed 500 characters").optional(),
29
+ ttl: z.number().int().positive().optional()
30
+ });
31
+ const registerMessageSchema = baseMessageSchema.extend({
32
+ op: z.literal(
33
+ "register"
34
+ /* REGISTER */
35
+ ),
36
+ t_id: topicIdSchema,
37
+ metadata: z.string().optional()
38
+ });
39
+ const updateMessageSchema = baseMessageSchema.extend({
40
+ op: z.literal(
41
+ "update"
42
+ /* UPDATE */
43
+ ),
44
+ uid: z.string(),
45
+ t_id: topicIdSchema,
46
+ metadata: z.string().optional()
47
+ });
48
+ const deleteMessageSchema = baseMessageSchema.extend({
49
+ op: z.literal(
50
+ "delete"
51
+ /* DELETE */
52
+ ),
53
+ uid: z.string()
54
+ });
55
+ const migrateMessageSchema = baseMessageSchema.extend({
56
+ op: z.literal(
57
+ "migrate"
58
+ /* MIGRATE */
59
+ ),
60
+ t_id: topicIdSchema,
61
+ metadata: z.string().optional()
62
+ });
63
+ const hcs2MessageSchema = z.discriminatedUnion("op", [
64
+ registerMessageSchema,
65
+ updateMessageSchema,
66
+ deleteMessageSchema,
67
+ migrateMessageSchema
68
+ ]);
324
69
  export {
325
- BrowserHCS2Client
70
+ HCS2Operation,
71
+ HCS2RegistryType,
72
+ baseMessageSchema,
73
+ deleteMessageSchema,
74
+ hcs2MessageSchema,
75
+ migrateMessageSchema,
76
+ registerMessageSchema,
77
+ topicIdSchema,
78
+ updateMessageSchema
326
79
  };
327
80
  //# sourceMappingURL=standards-sdk.es74.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es74.js","sources":["../../src/hcs-2/browser.ts"],"sourcesContent":["import {\n TransactionReceipt,\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n TopicId,\n PublicKey,\n} from '@hashgraph/sdk';\nimport { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport { HCS2BaseClient } from './base-client';\nimport {\n HCS2ClientConfig,\n HCS2Message,\n HCS2Operation,\n HCS2RegistryType,\n TopicRegistrationResponse,\n RegistryOperationResponse,\n TopicRegistry,\n CreateRegistryOptions,\n RegisterEntryOptions,\n UpdateEntryOptions,\n DeleteEntryOptions,\n MigrateTopicOptions,\n QueryRegistryOptions,\n} from './types';\nimport { isBrowser } from '../utils/is-browser';\nimport { KeyTypeDetector } from '../utils/key-type-detector';\nimport { buildMessageTx } from '../common/tx/tx-utils';\n\ninterface WalletExecuteResult {\n result?: TransactionReceipt;\n transactionId?: string;\n error?: string;\n}\n\ninterface WalletExecuteSupport<Tx> {\n executeTransactionWithErrorHandling?: (\n tx: Tx,\n returnBytes?: boolean,\n ) => Promise<WalletExecuteResult>;\n}\n\n/**\n * Browser client configuration for HCS-2\n */\nexport interface BrowserHCS2Config extends HCS2ClientConfig {\n hwc: HashinalsWalletConnectSDK;\n}\n\n/**\n * Browser client for HCS-2 operations\n */\nexport class BrowserHCS2Client extends HCS2BaseClient {\n private hwc: HashinalsWalletConnectSDK;\n\n /**\n * Create a new browser HCS-2 client\n * @param config Client configuration\n */\n constructor(config: BrowserHCS2Config) {\n super({\n network: config.network,\n logLevel: config.logLevel,\n silent: config.silent,\n mirrorNodeUrl: config.mirrorNodeUrl,\n logger: config.logger,\n });\n\n this.hwc = config.hwc;\n\n if (!isBrowser) {\n this.logger.error(\n 'BrowserHCS2Client initialized in server environment - browser-specific features will not be available. Use HCS2Client instead.',\n );\n } else {\n this.logger.info('HCS-2 browser client initialized successfully');\n }\n }\n\n /**\n * Get the operator account ID\n * @returns The operator account ID\n */\n private getOperatorId(): string {\n const accountInfo = this.hwc.getAccountInfo();\n if (!accountInfo || !accountInfo.accountId) {\n throw new Error('No connected account found');\n }\n return accountInfo.accountId;\n }\n\n /**\n * Create a new registry topic\n * @param options Registry creation options\n * @returns Promise resolving to the transaction result\n */\n async createRegistry(\n options: CreateRegistryOptions = {},\n ): Promise<TopicRegistrationResponse> {\n try {\n const registryType = options.registryType ?? HCS2RegistryType.INDEXED;\n const ttl = options.ttl ?? 86400; // Default TTL: 24 hours\n\n const memo = this.generateRegistryMemo(registryType, ttl);\n\n let transaction = new TopicCreateTransaction().setTopicMemo(memo);\n\n if (options.adminKey) {\n let adminPublicKey: PublicKey;\n if (typeof options.adminKey === 'string') {\n try {\n adminPublicKey = PublicKey.fromString(options.adminKey);\n } catch {\n const keyInfo = KeyTypeDetector.detect(options.adminKey);\n if (keyInfo.rawBytes) {\n adminPublicKey =\n keyInfo.type === 'ed25519'\n ? PublicKey.fromBytesED25519(keyInfo.rawBytes)\n : PublicKey.fromBytesECDSA(keyInfo.rawBytes);\n } else {\n throw new Error('Failed to parse admin public key');\n }\n }\n } else if (typeof options.adminKey === 'boolean') {\n adminPublicKey = await this.mirrorNode.getPublicKey(\n this.getOperatorId(),\n );\n } else {\n adminPublicKey = options.adminKey.publicKey;\n }\n transaction = transaction.setAdminKey(adminPublicKey);\n }\n\n if (options.submitKey) {\n let submitPublicKey: PublicKey;\n if (typeof options.submitKey === 'string') {\n try {\n submitPublicKey = PublicKey.fromString(options.submitKey);\n } catch {\n const keyInfo = KeyTypeDetector.detect(options.submitKey);\n if (keyInfo.rawBytes) {\n submitPublicKey =\n keyInfo.type === 'ed25519'\n ? PublicKey.fromBytesED25519(keyInfo.rawBytes)\n : PublicKey.fromBytesECDSA(keyInfo.rawBytes);\n } else {\n throw new Error('Failed to parse submit public key');\n }\n }\n } else if (typeof options.submitKey === 'boolean') {\n submitPublicKey = await this.mirrorNode.getPublicKey(\n this.getOperatorId(),\n );\n } else {\n submitPublicKey = options.submitKey.publicKey;\n }\n transaction = transaction.setSubmitKey(submitPublicKey);\n }\n\n const txResponse = await this.executeWithWallet(transaction);\n\n if (txResponse?.error) {\n throw new Error(txResponse.error);\n }\n\n const resultReceipt = txResponse?.result;\n if (!resultReceipt?.topicId) {\n throw new Error('Failed to create registry: No topic ID in receipt');\n }\n\n const topicId = resultReceipt.topicId.toString();\n\n this.logger.info(\n `Created registry topic: ${topicId} (${registryType === HCS2RegistryType.INDEXED ? 'Indexed' : 'Non-indexed'}, TTL: ${ttl}s)`,\n );\n\n return {\n success: true,\n topicId,\n transactionId: txResponse.transactionId || 'unknown',\n };\n } catch (error) {\n this.logger.error(`Failed to create registry: ${error}`);\n return {\n success: false,\n error: `Failed to create registry: ${error}`,\n };\n }\n }\n\n /**\n * Register a new entry in the registry\n * @param registryTopicId The topic ID of the registry\n * @param options Registration options\n * @returns Promise resolving to the operation result\n */\n async registerEntry(\n registryTopicId: string,\n options: RegisterEntryOptions,\n ): Promise<RegistryOperationResponse> {\n try {\n const message = this.createRegisterMessage(\n options.targetTopicId,\n options.metadata,\n options.memo,\n );\n\n if (message.op !== HCS2Operation.REGISTER) {\n throw new Error(\n `Invalid operation type: ${message.op}, expected ${HCS2Operation.REGISTER}`,\n );\n }\n\n const receipt = await this.submitMessage(registryTopicId, message);\n\n this.logger.info(\n `Registered entry in registry ${registryTopicId} pointing to topic ${options.targetTopicId}`,\n );\n\n return {\n success: true,\n receipt,\n sequenceNumber: receipt.topicSequenceNumber?.low ?? undefined,\n };\n } catch (error) {\n this.logger.error(`Failed to register entry: ${error}`);\n return {\n success: false,\n error: `Failed to register entry: ${error}`,\n };\n }\n }\n\n /**\n * Update an existing entry in the registry (indexed registries only)\n * @param registryTopicId The topic ID of the registry\n * @param options Update options\n * @returns Promise resolving to the operation result\n */\n async updateEntry(\n registryTopicId: string,\n options: UpdateEntryOptions,\n ): Promise<RegistryOperationResponse> {\n try {\n const registryInfo = await this.mirrorNode.getTopicInfo(registryTopicId);\n const memoInfo = this.parseRegistryTypeFromMemo(registryInfo.memo);\n\n if (!memoInfo || memoInfo.registryType !== HCS2RegistryType.INDEXED) {\n throw new Error(\n 'Update operation is only valid for indexed registries',\n );\n }\n\n const message = this.createUpdateMessage(\n options.targetTopicId,\n options.uid,\n options.metadata,\n options.memo,\n );\n\n const receipt = await this.submitMessage(registryTopicId, message);\n\n this.logger.info(\n `Updated entry with UID ${options.uid} in registry ${registryTopicId}`,\n );\n\n return {\n success: true,\n receipt,\n sequenceNumber: receipt.topicSequenceNumber?.low ?? undefined,\n };\n } catch (error) {\n this.logger.error(`Failed to update entry: ${error}`);\n return {\n success: false,\n error: `Failed to update entry: ${error}`,\n };\n }\n }\n\n /**\n * Delete an entry from the registry (indexed registries only)\n * @param registryTopicId The topic ID of the registry\n * @param options Delete options\n * @returns Promise resolving to the operation result\n */\n async deleteEntry(\n registryTopicId: string,\n options: DeleteEntryOptions,\n ): Promise<RegistryOperationResponse> {\n try {\n const registryInfo = await this.mirrorNode.getTopicInfo(registryTopicId);\n const memoInfo = this.parseRegistryTypeFromMemo(registryInfo.memo);\n\n if (!memoInfo || memoInfo.registryType !== HCS2RegistryType.INDEXED) {\n throw new Error(\n 'Delete operation is only valid for indexed registries',\n );\n }\n\n const message = this.createDeleteMessage(options.uid, options.memo);\n\n const receipt = await this.submitMessage(registryTopicId, message);\n\n this.logger.info(\n `Deleted entry with UID ${options.uid} from registry ${registryTopicId}`,\n );\n\n return {\n success: true,\n receipt,\n sequenceNumber: receipt.topicSequenceNumber?.low ?? undefined,\n };\n } catch (error) {\n this.logger.error(`Failed to delete entry: ${error}`);\n return {\n success: false,\n error: `Failed to delete entry: ${error}`,\n };\n }\n }\n\n /**\n * Migrate a registry to a new topic\n * @param registryTopicId The topic ID of the registry\n * @param options Migration options\n * @returns Promise resolving to the operation result\n */\n async migrateRegistry(\n registryTopicId: string,\n options: MigrateTopicOptions,\n ): Promise<RegistryOperationResponse> {\n try {\n const message = this.createMigrateMessage(\n options.targetTopicId,\n options.metadata,\n options.memo,\n );\n\n const receipt = await this.submitMessage(registryTopicId, message);\n\n this.logger.info(\n `Migrated registry ${registryTopicId} to ${options.targetTopicId}`,\n );\n\n return {\n success: true,\n receipt,\n sequenceNumber: receipt.topicSequenceNumber?.low ?? undefined,\n };\n } catch (error) {\n this.logger.error(`Failed to migrate registry: ${error}`);\n return {\n success: false,\n error: `Failed to migrate registry: ${error}`,\n };\n }\n }\n\n /**\n * Get all entries from a registry\n * @param topicId The topic ID of the registry\n * @param options Query options\n * @returns Promise resolving to the registry information\n */\n async getRegistry(\n topicId: string,\n options: QueryRegistryOptions = {},\n ): Promise<TopicRegistry> {\n try {\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n const memoInfo = this.parseRegistryTypeFromMemo(topicInfo.memo);\n\n if (!memoInfo) {\n throw new Error(\n `Topic ${topicId} is not an HCS-2 registry (invalid memo format)`,\n );\n }\n\n const messagesResult = await this.mirrorNode.getTopicMessages(topicId, {\n sequenceNumber:\n options.skip && options.skip > 0 ? `gt:${options.skip}` : undefined,\n limit: options.limit ?? 100,\n order: options.order ?? 'asc',\n });\n\n const messages = options.limit\n ? messagesResult.slice(0, options.limit)\n : messagesResult;\n\n return this.parseRegistryEntries(\n topicId,\n messages,\n memoInfo.registryType,\n memoInfo.ttl,\n );\n } catch (error) {\n this.logger.error(`Failed to get registry: ${error}`);\n throw error;\n }\n }\n\n /**\n * Submit a message to a topic\n * @param topicId The topic ID to submit to\n * @param payload The message payload\n * @returns Promise resolving to the transaction receipt\n */\n async submitMessage(\n topicId: string,\n payload: HCS2Message,\n ): Promise<TransactionReceipt> {\n try {\n const { valid, errors } = this.validateMessage(payload);\n if (!valid) {\n throw new Error(`Invalid HCS-2 message: ${errors.join(', ')}`);\n }\n\n const transaction = buildMessageTx({\n topicId,\n message: JSON.stringify(payload),\n });\n\n const txResponse = await this.executeWithWallet(transaction);\n\n if (txResponse?.error) {\n throw new Error(txResponse.error);\n }\n\n return txResponse.result;\n } catch (error) {\n this.logger.error(`Failed to submit message: ${error}`);\n throw error;\n }\n }\n private async executeWithWallet<\n T extends TopicCreateTransaction | TopicMessageSubmitTransaction,\n >(transaction: T): Promise<WalletExecuteResult> {\n const maybeExec = (\n this.hwc as unknown as WalletExecuteSupport<\n TopicCreateTransaction | TopicMessageSubmitTransaction\n >\n ).executeTransactionWithErrorHandling;\n\n if (!maybeExec) {\n throw new Error(\n 'Wallet SDK does not support executeTransactionWithErrorHandling',\n );\n }\n\n return await maybeExec.call(this.hwc, transaction, false);\n }\n}\n"],"names":[],"mappings":";;;;;;AAmDO,MAAM,0BAA0B,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpD,YAAY,QAA2B;AACrC,UAAM;AAAA,MACJ,SAAS,OAAO;AAAA,MAChB,UAAU,OAAO;AAAA,MACjB,QAAQ,OAAO;AAAA,MACf,eAAe,OAAO;AAAA,MACtB,QAAQ,OAAO;AAAA,IAAA,CAChB;AAED,SAAK,MAAM,OAAO;AAElB,QAAI,CAAC,WAAW;AACd,WAAK,OAAO;AAAA,QACV;AAAA,MAAA;AAAA,IAEJ,OAAO;AACL,WAAK,OAAO,KAAK,+CAA+C;AAAA,IAClE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,gBAAwB;AAC9B,UAAM,cAAc,KAAK,IAAI,eAAA;AAC7B,QAAI,CAAC,eAAe,CAAC,YAAY,WAAW;AAC1C,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AACA,WAAO,YAAY;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,eACJ,UAAiC,IACG;AACpC,QAAI;AACF,YAAM,eAAe,QAAQ,gBAAgB,iBAAiB;AAC9D,YAAM,MAAM,QAAQ,OAAO;AAE3B,YAAM,OAAO,KAAK,qBAAqB,cAAc,GAAG;AAExD,UAAI,cAAc,IAAI,yBAAyB,aAAa,IAAI;AAEhE,UAAI,QAAQ,UAAU;AACpB,YAAI;AACJ,YAAI,OAAO,QAAQ,aAAa,UAAU;AACxC,cAAI;AACF,6BAAiB,UAAU,WAAW,QAAQ,QAAQ;AAAA,UACxD,QAAQ;AACN,kBAAM,UAAU,gBAAgB,OAAO,QAAQ,QAAQ;AACvD,gBAAI,QAAQ,UAAU;AACpB,+BACE,QAAQ,SAAS,YACb,UAAU,iBAAiB,QAAQ,QAAQ,IAC3C,UAAU,eAAe,QAAQ,QAAQ;AAAA,YACjD,OAAO;AACL,oBAAM,IAAI,MAAM,kCAAkC;AAAA,YACpD;AAAA,UACF;AAAA,QACF,WAAW,OAAO,QAAQ,aAAa,WAAW;AAChD,2BAAiB,MAAM,KAAK,WAAW;AAAA,YACrC,KAAK,cAAA;AAAA,UAAc;AAAA,QAEvB,OAAO;AACL,2BAAiB,QAAQ,SAAS;AAAA,QACpC;AACA,sBAAc,YAAY,YAAY,cAAc;AAAA,MACtD;AAEA,UAAI,QAAQ,WAAW;AACrB,YAAI;AACJ,YAAI,OAAO,QAAQ,cAAc,UAAU;AACzC,cAAI;AACF,8BAAkB,UAAU,WAAW,QAAQ,SAAS;AAAA,UAC1D,QAAQ;AACN,kBAAM,UAAU,gBAAgB,OAAO,QAAQ,SAAS;AACxD,gBAAI,QAAQ,UAAU;AACpB,gCACE,QAAQ,SAAS,YACb,UAAU,iBAAiB,QAAQ,QAAQ,IAC3C,UAAU,eAAe,QAAQ,QAAQ;AAAA,YACjD,OAAO;AACL,oBAAM,IAAI,MAAM,mCAAmC;AAAA,YACrD;AAAA,UACF;AAAA,QACF,WAAW,OAAO,QAAQ,cAAc,WAAW;AACjD,4BAAkB,MAAM,KAAK,WAAW;AAAA,YACtC,KAAK,cAAA;AAAA,UAAc;AAAA,QAEvB,OAAO;AACL,4BAAkB,QAAQ,UAAU;AAAA,QACtC;AACA,sBAAc,YAAY,aAAa,eAAe;AAAA,MACxD;AAEA,YAAM,aAAa,MAAM,KAAK,kBAAkB,WAAW;AAE3D,UAAI,YAAY,OAAO;AACrB,cAAM,IAAI,MAAM,WAAW,KAAK;AAAA,MAClC;AAEA,YAAM,gBAAgB,YAAY;AAClC,UAAI,CAAC,eAAe,SAAS;AAC3B,cAAM,IAAI,MAAM,mDAAmD;AAAA,MACrE;AAEA,YAAM,UAAU,cAAc,QAAQ,SAAA;AAEtC,WAAK,OAAO;AAAA,QACV,2BAA2B,OAAO,KAAK,iBAAiB,iBAAiB,UAAU,YAAY,aAAa,UAAU,GAAG;AAAA,MAAA;AAG3H,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA,eAAe,WAAW,iBAAiB;AAAA,MAAA;AAAA,IAE/C,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,8BAA8B,KAAK,EAAE;AACvD,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO,8BAA8B,KAAK;AAAA,MAAA;AAAA,IAE9C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,cACJ,iBACA,SACoC;AACpC,QAAI;AACF,YAAM,UAAU,KAAK;AAAA,QACnB,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA;AAGV,UAAI,QAAQ,OAAO,cAAc,UAAU;AACzC,cAAM,IAAI;AAAA,UACR,2BAA2B,QAAQ,EAAE,cAAc,cAAc,QAAQ;AAAA,QAAA;AAAA,MAE7E;AAEA,YAAM,UAAU,MAAM,KAAK,cAAc,iBAAiB,OAAO;AAEjE,WAAK,OAAO;AAAA,QACV,gCAAgC,eAAe,sBAAsB,QAAQ,aAAa;AAAA,MAAA;AAG5F,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA,gBAAgB,QAAQ,qBAAqB,OAAO;AAAA,MAAA;AAAA,IAExD,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,6BAA6B,KAAK,EAAE;AACtD,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO,6BAA6B,KAAK;AAAA,MAAA;AAAA,IAE7C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,YACJ,iBACA,SACoC;AACpC,QAAI;AACF,YAAM,eAAe,MAAM,KAAK,WAAW,aAAa,eAAe;AACvE,YAAM,WAAW,KAAK,0BAA0B,aAAa,IAAI;AAEjE,UAAI,CAAC,YAAY,SAAS,iBAAiB,iBAAiB,SAAS;AACnE,cAAM,IAAI;AAAA,UACR;AAAA,QAAA;AAAA,MAEJ;AAEA,YAAM,UAAU,KAAK;AAAA,QACnB,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA;AAGV,YAAM,UAAU,MAAM,KAAK,cAAc,iBAAiB,OAAO;AAEjE,WAAK,OAAO;AAAA,QACV,0BAA0B,QAAQ,GAAG,gBAAgB,eAAe;AAAA,MAAA;AAGtE,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA,gBAAgB,QAAQ,qBAAqB,OAAO;AAAA,MAAA;AAAA,IAExD,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,2BAA2B,KAAK,EAAE;AACpD,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO,2BAA2B,KAAK;AAAA,MAAA;AAAA,IAE3C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,YACJ,iBACA,SACoC;AACpC,QAAI;AACF,YAAM,eAAe,MAAM,KAAK,WAAW,aAAa,eAAe;AACvE,YAAM,WAAW,KAAK,0BAA0B,aAAa,IAAI;AAEjE,UAAI,CAAC,YAAY,SAAS,iBAAiB,iBAAiB,SAAS;AACnE,cAAM,IAAI;AAAA,UACR;AAAA,QAAA;AAAA,MAEJ;AAEA,YAAM,UAAU,KAAK,oBAAoB,QAAQ,KAAK,QAAQ,IAAI;AAElE,YAAM,UAAU,MAAM,KAAK,cAAc,iBAAiB,OAAO;AAEjE,WAAK,OAAO;AAAA,QACV,0BAA0B,QAAQ,GAAG,kBAAkB,eAAe;AAAA,MAAA;AAGxE,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA,gBAAgB,QAAQ,qBAAqB,OAAO;AAAA,MAAA;AAAA,IAExD,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,2BAA2B,KAAK,EAAE;AACpD,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO,2BAA2B,KAAK;AAAA,MAAA;AAAA,IAE3C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,gBACJ,iBACA,SACoC;AACpC,QAAI;AACF,YAAM,UAAU,KAAK;AAAA,QACnB,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA;AAGV,YAAM,UAAU,MAAM,KAAK,cAAc,iBAAiB,OAAO;AAEjE,WAAK,OAAO;AAAA,QACV,qBAAqB,eAAe,OAAO,QAAQ,aAAa;AAAA,MAAA;AAGlE,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA,gBAAgB,QAAQ,qBAAqB,OAAO;AAAA,MAAA;AAAA,IAExD,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,+BAA+B,KAAK,EAAE;AACxD,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO,+BAA+B,KAAK;AAAA,MAAA;AAAA,IAE/C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,YACJ,SACA,UAAgC,IACR;AACxB,QAAI;AACF,YAAM,YAAY,MAAM,KAAK,WAAW,aAAa,OAAO;AAC5D,YAAM,WAAW,KAAK,0BAA0B,UAAU,IAAI;AAE9D,UAAI,CAAC,UAAU;AACb,cAAM,IAAI;AAAA,UACR,SAAS,OAAO;AAAA,QAAA;AAAA,MAEpB;AAEA,YAAM,iBAAiB,MAAM,KAAK,WAAW,iBAAiB,SAAS;AAAA,QACrE,gBACE,QAAQ,QAAQ,QAAQ,OAAO,IAAI,MAAM,QAAQ,IAAI,KAAK;AAAA,QAC5D,OAAO,QAAQ,SAAS;AAAA,QACxB,OAAO,QAAQ,SAAS;AAAA,MAAA,CACzB;AAED,YAAM,WAAW,QAAQ,QACrB,eAAe,MAAM,GAAG,QAAQ,KAAK,IACrC;AAEJ,aAAO,KAAK;AAAA,QACV;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT,SAAS;AAAA,MAAA;AAAA,IAEb,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,2BAA2B,KAAK,EAAE;AACpD,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,cACJ,SACA,SAC6B;AAC7B,QAAI;AACF,YAAM,EAAE,OAAO,OAAA,IAAW,KAAK,gBAAgB,OAAO;AACtD,UAAI,CAAC,OAAO;AACV,cAAM,IAAI,MAAM,0BAA0B,OAAO,KAAK,IAAI,CAAC,EAAE;AAAA,MAC/D;AAEA,YAAM,cAAc,eAAe;AAAA,QACjC;AAAA,QACA,SAAS,KAAK,UAAU,OAAO;AAAA,MAAA,CAChC;AAED,YAAM,aAAa,MAAM,KAAK,kBAAkB,WAAW;AAE3D,UAAI,YAAY,OAAO;AACrB,cAAM,IAAI,MAAM,WAAW,KAAK;AAAA,MAClC;AAEA,aAAO,WAAW;AAAA,IACpB,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,6BAA6B,KAAK,EAAE;AACtD,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,MAAc,kBAEZ,aAA8C;AAC9C,UAAM,YACJ,KAAK,IAGL;AAEF,QAAI,CAAC,WAAW;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAAA,IAEJ;AAEA,WAAO,MAAM,UAAU,KAAK,KAAK,KAAK,aAAa,KAAK;AAAA,EAC1D;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es74.js","sources":["../../src/hcs-2/types.ts"],"sourcesContent":["import { Logger, LogLevel } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { HederaMirrorNode } from '../services/mirror-node';\nimport { TransactionReceipt, PrivateKey } from '@hashgraph/sdk';\nimport { z } from 'zod';\n\n/**\n * HCS-2 operation types\n * - register: Add a new entry/version\n * - update: Modify a previous entry (indexed topics only)\n * - delete: Remove an entry by uid (indexed topics only)\n * - migrate: Move a topic to a new one\n */\nexport enum HCS2Operation {\n REGISTER = 'register',\n UPDATE = 'update',\n DELETE = 'delete',\n MIGRATE = 'migrate',\n}\n\n/**\n * HCS-2 registry type\n * - 0: Indexed registry - All records are considered for processing\n * - 1: Non-indexed registry - Only the latest message is considered\n */\nexport enum HCS2RegistryType {\n INDEXED = 0,\n NON_INDEXED = 1,\n}\n\n/**\n * Base HCS-2 message format\n */\nexport interface HCS2Message {\n p: string; // Protocol (e.g., \"hcs-2\", \"hcs-6\", etc.)\n op: HCS2Operation; // Operation\n t_id?: string; // Target Topic ID (for register, update, migrate)\n uid?: string; // Unique ID/Sequence number (for update, delete)\n metadata?: string; // Metadata URI (HIP-412 format)\n m?: string; // Memo (max 500 chars)\n ttl?: number; // Time to live (in seconds, optional override)\n}\n\n/**\n * Register operation message\n */\nexport interface HCS2RegisterMessage extends HCS2Message {\n op: HCS2Operation.REGISTER;\n t_id: string;\n}\n\n/**\n * Update operation message\n */\nexport interface HCS2UpdateMessage extends HCS2Message {\n op: HCS2Operation.UPDATE;\n uid: string;\n t_id: string;\n}\n\n/**\n * Delete operation message\n */\nexport interface HCS2DeleteMessage extends HCS2Message {\n op: HCS2Operation.DELETE;\n uid: string;\n}\n\n/**\n * Migrate operation message\n */\nexport interface HCS2MigrateMessage extends HCS2Message {\n op: HCS2Operation.MIGRATE;\n t_id: string;\n}\n\n/**\n * Configuration for HCS-2 client\n */\nexport interface HCS2ClientConfig {\n network: NetworkType;\n logLevel?: LogLevel;\n silent?: boolean;\n mirrorNodeUrl?: string;\n logger?: Logger;\n}\n\n/**\n * Response from topic registration\n */\nexport interface TopicRegistrationResponse {\n success: boolean;\n topicId?: string;\n transactionId?: string;\n error?: string;\n}\n\n/**\n * Response from a registry operation\n */\nexport interface RegistryOperationResponse {\n success: boolean;\n transactionId?: string;\n receipt?: TransactionReceipt;\n error?: string;\n sequenceNumber?: number;\n}\n\n/**\n * Registry entry information\n */\nexport interface RegistryEntry {\n topicId: string;\n sequence: number;\n timestamp: string;\n payer: string;\n message: HCS2Message;\n consensus_timestamp: string;\n registry_type: HCS2RegistryType;\n}\n\n/**\n * Topic registry information\n */\nexport interface TopicRegistry {\n topicId: string;\n registryType: HCS2RegistryType;\n ttl: number;\n entries: RegistryEntry[];\n latestEntry?: RegistryEntry;\n}\n\n/**\n * Options for creating a new registry\n */\nexport interface CreateRegistryOptions {\n registryType?: HCS2RegistryType;\n ttl?: number;\n adminKey?: string | boolean | PrivateKey;\n submitKey?: string | boolean | PrivateKey;\n}\n\n/**\n * Options for registering a topic entry\n */\nexport interface RegisterEntryOptions {\n targetTopicId: string;\n metadata?: string;\n memo?: string;\n analyticsMemo?: string;\n registryType?: HCS2RegistryType;\n}\n\n/**\n * Options for updating a topic entry\n */\nexport interface UpdateEntryOptions {\n targetTopicId: string;\n uid: string;\n metadata?: string;\n memo?: string;\n analyticsMemo?: string;\n registryType?: HCS2RegistryType;\n}\n\n/**\n * Options for deleting a topic entry\n */\nexport interface DeleteEntryOptions {\n uid: string;\n memo?: string;\n analyticsMemo?: string;\n registryType?: HCS2RegistryType;\n}\n\n/**\n * Options for migrating a topic\n */\nexport interface MigrateTopicOptions {\n targetTopicId: string;\n metadata?: string;\n memo?: string;\n analyticsMemo?: string;\n registryType?: HCS2RegistryType;\n}\n\n/**\n * Options for querying registry entries\n */\nexport interface QueryRegistryOptions {\n limit?: number;\n order?: 'asc' | 'desc';\n skip?: number;\n}\n\n/**\n * Zod schemas for HCS-2 message validation\n */\n\nexport const topicIdSchema = z.string().regex(/^\\d+\\.\\d+\\.\\d+$/, {\n message: \"Topic ID must be in Hedera format (e.g., '0.0.123456')\",\n});\n\nexport const baseMessageSchema = z.object({\n p: z.string().regex(/^hcs-\\d+$/, {\n message: \"Protocol must be in format 'hcs-N' where N is a number\",\n }),\n op: z.enum([\n HCS2Operation.REGISTER,\n HCS2Operation.UPDATE,\n HCS2Operation.DELETE,\n HCS2Operation.MIGRATE,\n ]),\n m: z.string().max(500, 'Memo must not exceed 500 characters').optional(),\n ttl: z.number().int().positive().optional(),\n});\n\nexport const registerMessageSchema = baseMessageSchema.extend({\n op: z.literal(HCS2Operation.REGISTER),\n t_id: topicIdSchema,\n metadata: z.string().optional(),\n});\n\nexport const updateMessageSchema = baseMessageSchema.extend({\n op: z.literal(HCS2Operation.UPDATE),\n uid: z.string(),\n t_id: topicIdSchema,\n metadata: z.string().optional(),\n});\n\nexport const deleteMessageSchema = baseMessageSchema.extend({\n op: z.literal(HCS2Operation.DELETE),\n uid: z.string(),\n});\n\nexport const migrateMessageSchema = baseMessageSchema.extend({\n op: z.literal(HCS2Operation.MIGRATE),\n t_id: topicIdSchema,\n metadata: z.string().optional(),\n});\n\nexport const hcs2MessageSchema = z.discriminatedUnion('op', [\n registerMessageSchema,\n updateMessageSchema,\n deleteMessageSchema,\n migrateMessageSchema,\n]);\n"],"names":["HCS2Operation","HCS2RegistryType"],"mappings":";AAaO,IAAK,kCAAAA,mBAAL;AACLA,iBAAA,UAAA,IAAW;AACXA,iBAAA,QAAA,IAAS;AACTA,iBAAA,QAAA,IAAS;AACTA,iBAAA,SAAA,IAAU;AAJA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAYL,IAAK,qCAAAC,sBAAL;AACLA,oBAAAA,kBAAA,aAAU,CAAA,IAAV;AACAA,oBAAAA,kBAAA,iBAAc,CAAA,IAAd;AAFU,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AA8KL,MAAM,gBAAgB,EAAE,SAAS,MAAM,mBAAmB;AAAA,EAC/D,SAAS;AACX,CAAC;AAEM,MAAM,oBAAoB,EAAE,OAAO;AAAA,EACxC,GAAG,EAAE,SAAS,MAAM,aAAa;AAAA,IAC/B,SAAS;AAAA,EAAA,CACV;AAAA,EACD,IAAI,EAAE,KAAK;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAAA,CACD;AAAA,EACD,GAAG,EAAE,OAAA,EAAS,IAAI,KAAK,qCAAqC,EAAE,SAAA;AAAA,EAC9D,KAAK,EAAE,OAAA,EAAS,MAAM,SAAA,EAAW,SAAA;AACnC,CAAC;AAEM,MAAM,wBAAwB,kBAAkB,OAAO;AAAA,EAC5D,IAAI,EAAE;AAAA,IAAQ;AAAA;AAAA,EAAA;AAAA,EACd,MAAM;AAAA,EACN,UAAU,EAAE,OAAA,EAAS,SAAA;AACvB,CAAC;AAEM,MAAM,sBAAsB,kBAAkB,OAAO;AAAA,EAC1D,IAAI,EAAE;AAAA,IAAQ;AAAA;AAAA,EAAA;AAAA,EACd,KAAK,EAAE,OAAA;AAAA,EACP,MAAM;AAAA,EACN,UAAU,EAAE,OAAA,EAAS,SAAA;AACvB,CAAC;AAEM,MAAM,sBAAsB,kBAAkB,OAAO;AAAA,EAC1D,IAAI,EAAE;AAAA,IAAQ;AAAA;AAAA,EAAA;AAAA,EACd,KAAK,EAAE,OAAA;AACT,CAAC;AAEM,MAAM,uBAAuB,kBAAkB,OAAO;AAAA,EAC3D,IAAI,EAAE;AAAA,IAAQ;AAAA;AAAA,EAAA;AAAA,EACd,MAAM;AAAA,EACN,UAAU,EAAE,OAAA,EAAS,SAAA;AACvB,CAAC;AAEM,MAAM,oBAAoB,EAAE,mBAAmB,MAAM;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;"}