@hashgraphonline/standards-sdk 0.1.161 → 0.1.163

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 (337) 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 +21 -0
  14. package/dist/cjs/hcs-14/resolvers/registry.d.ts.map +1 -1
  15. package/dist/cjs/hcs-14/resolvers/types.d.ts +40 -5
  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 +23 -1
  22. package/dist/cjs/hcs-14/sdk.d.ts.map +1 -1
  23. package/dist/cjs/hcs-2/client.d.ts +7 -1
  24. package/dist/cjs/hcs-2/client.d.ts.map +1 -1
  25. package/dist/cjs/hcs-2/types.d.ts +2 -0
  26. package/dist/cjs/hcs-2/types.d.ts.map +1 -1
  27. package/dist/cjs/standards-sdk.cjs +2 -2
  28. package/dist/cjs/standards-sdk.cjs.map +1 -1
  29. package/dist/es/hcs-14/index.d.ts +1 -0
  30. package/dist/es/hcs-14/index.d.ts.map +1 -1
  31. package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts +1 -0
  32. package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -1
  33. package/dist/es/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts +23 -0
  34. package/dist/es/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts.map +1 -0
  35. package/dist/es/hcs-14/resolvers/ans-dns-web-profile.d.ts +32 -0
  36. package/dist/es/hcs-14/resolvers/ans-dns-web-profile.d.ts.map +1 -0
  37. package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts +1 -0
  38. package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -1
  39. package/dist/es/hcs-14/resolvers/hiero.d.ts +1 -0
  40. package/dist/es/hcs-14/resolvers/hiero.d.ts.map +1 -1
  41. package/dist/es/hcs-14/resolvers/registry.d.ts +21 -0
  42. package/dist/es/hcs-14/resolvers/registry.d.ts.map +1 -1
  43. package/dist/es/hcs-14/resolvers/types.d.ts +40 -5
  44. package/dist/es/hcs-14/resolvers/types.d.ts.map +1 -1
  45. package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +1 -0
  46. package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -1
  47. package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts +1 -0
  48. package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -1
  49. package/dist/es/hcs-14/sdk.d.ts +23 -1
  50. package/dist/es/hcs-14/sdk.d.ts.map +1 -1
  51. package/dist/es/hcs-2/client.d.ts +7 -1
  52. package/dist/es/hcs-2/client.d.ts.map +1 -1
  53. package/dist/es/hcs-2/types.d.ts +2 -0
  54. package/dist/es/hcs-2/types.d.ts.map +1 -1
  55. package/dist/es/standards-sdk.es.js +89 -86
  56. package/dist/es/standards-sdk.es.js.map +1 -1
  57. package/dist/es/standards-sdk.es100.js +136 -124
  58. package/dist/es/standards-sdk.es100.js.map +1 -1
  59. package/dist/es/standards-sdk.es101.js +138 -42
  60. package/dist/es/standards-sdk.es101.js.map +1 -1
  61. package/dist/es/standards-sdk.es102.js +43 -259
  62. package/dist/es/standards-sdk.es102.js.map +1 -1
  63. package/dist/es/standards-sdk.es103.js +245 -82
  64. package/dist/es/standards-sdk.es103.js.map +1 -1
  65. package/dist/es/standards-sdk.es104.js +50 -49
  66. package/dist/es/standards-sdk.es104.js.map +1 -1
  67. package/dist/es/standards-sdk.es105.js +100 -29
  68. package/dist/es/standards-sdk.es105.js.map +1 -1
  69. package/dist/es/standards-sdk.es106.js +27 -229
  70. package/dist/es/standards-sdk.es106.js.map +1 -1
  71. package/dist/es/standards-sdk.es107.js +228 -109
  72. package/dist/es/standards-sdk.es107.js.map +1 -1
  73. package/dist/es/standards-sdk.es108.js +94 -15
  74. package/dist/es/standards-sdk.es108.js.map +1 -1
  75. package/dist/es/standards-sdk.es109.js +30 -80
  76. package/dist/es/standards-sdk.es109.js.map +1 -1
  77. package/dist/es/standards-sdk.es11.js +1 -1
  78. package/dist/es/standards-sdk.es110.js +80 -27
  79. package/dist/es/standards-sdk.es110.js.map +1 -1
  80. package/dist/es/standards-sdk.es111.js +27 -248
  81. package/dist/es/standards-sdk.es111.js.map +1 -1
  82. package/dist/es/standards-sdk.es112.js +246 -472
  83. package/dist/es/standards-sdk.es112.js.map +1 -1
  84. package/dist/es/standards-sdk.es113.js +458 -85
  85. package/dist/es/standards-sdk.es113.js.map +1 -1
  86. package/dist/es/standards-sdk.es114.js +96 -151
  87. package/dist/es/standards-sdk.es114.js.map +1 -1
  88. package/dist/es/standards-sdk.es115.js +155 -29
  89. package/dist/es/standards-sdk.es115.js.map +1 -1
  90. package/dist/es/standards-sdk.es116.js +26 -4
  91. package/dist/es/standards-sdk.es116.js.map +1 -1
  92. package/dist/es/standards-sdk.es117.js +10 -140
  93. package/dist/es/standards-sdk.es117.js.map +1 -1
  94. package/dist/es/standards-sdk.es118.js +140 -27
  95. package/dist/es/standards-sdk.es118.js.map +1 -1
  96. package/dist/es/standards-sdk.es119.js +27 -20
  97. package/dist/es/standards-sdk.es119.js.map +1 -1
  98. package/dist/es/standards-sdk.es12.js +1 -1
  99. package/dist/es/standards-sdk.es120.js +18 -156
  100. package/dist/es/standards-sdk.es120.js.map +1 -1
  101. package/dist/es/standards-sdk.es121.js +148 -191
  102. package/dist/es/standards-sdk.es121.js.map +1 -1
  103. package/dist/es/standards-sdk.es122.js +160 -747
  104. package/dist/es/standards-sdk.es122.js.map +1 -1
  105. package/dist/es/standards-sdk.es123.js +786 -9
  106. package/dist/es/standards-sdk.es123.js.map +1 -1
  107. package/dist/es/standards-sdk.es124.js +13 -567
  108. package/dist/es/standards-sdk.es124.js.map +1 -1
  109. package/dist/es/standards-sdk.es125.js +541 -576
  110. package/dist/es/standards-sdk.es125.js.map +1 -1
  111. package/dist/es/standards-sdk.es126.js +601 -12
  112. package/dist/es/standards-sdk.es126.js.map +1 -1
  113. package/dist/es/standards-sdk.es127.js +13 -2
  114. package/dist/es/standards-sdk.es127.js.map +1 -1
  115. package/dist/es/standards-sdk.es128.js +2 -87
  116. package/dist/es/standards-sdk.es128.js.map +1 -1
  117. package/dist/es/standards-sdk.es129.js +84 -37
  118. package/dist/es/standards-sdk.es129.js.map +1 -1
  119. package/dist/es/standards-sdk.es13.js +1 -1
  120. package/dist/es/standards-sdk.es130.js +40 -2
  121. package/dist/es/standards-sdk.es130.js.map +1 -1
  122. package/dist/es/standards-sdk.es131.js +2 -235
  123. package/dist/es/standards-sdk.es131.js.map +1 -1
  124. package/dist/es/standards-sdk.es132.js +204 -1109
  125. package/dist/es/standards-sdk.es132.js.map +1 -1
  126. package/dist/es/standards-sdk.es133.js +1059 -225
  127. package/dist/es/standards-sdk.es133.js.map +1 -1
  128. package/dist/es/standards-sdk.es134.js +303 -419
  129. package/dist/es/standards-sdk.es134.js.map +1 -1
  130. package/dist/es/standards-sdk.es135.js +418 -351
  131. package/dist/es/standards-sdk.es135.js.map +1 -1
  132. package/dist/es/standards-sdk.es136.js +347 -1108
  133. package/dist/es/standards-sdk.es136.js.map +1 -1
  134. package/dist/es/standards-sdk.es137.js +1088 -180
  135. package/dist/es/standards-sdk.es137.js.map +1 -1
  136. package/dist/es/standards-sdk.es138.js +153 -1512
  137. package/dist/es/standards-sdk.es138.js.map +1 -1
  138. package/dist/es/standards-sdk.es139.js +1567 -1255
  139. package/dist/es/standards-sdk.es139.js.map +1 -1
  140. package/dist/es/standards-sdk.es14.js +1 -1
  141. package/dist/es/standards-sdk.es140.js +1255 -17
  142. package/dist/es/standards-sdk.es140.js.map +1 -1
  143. package/dist/es/standards-sdk.es141.js +15 -85
  144. package/dist/es/standards-sdk.es141.js.map +1 -1
  145. package/dist/es/standards-sdk.es142.js +77 -71
  146. package/dist/es/standards-sdk.es142.js.map +1 -1
  147. package/dist/es/standards-sdk.es143.js +79 -891
  148. package/dist/es/standards-sdk.es143.js.map +1 -1
  149. package/dist/es/standards-sdk.es144.js +886 -53
  150. package/dist/es/standards-sdk.es144.js.map +1 -1
  151. package/dist/es/standards-sdk.es145.js +53 -152
  152. package/dist/es/standards-sdk.es145.js.map +1 -1
  153. package/dist/es/standards-sdk.es146.js +159 -7
  154. package/dist/es/standards-sdk.es146.js.map +1 -1
  155. package/dist/es/standards-sdk.es147.js +7 -86
  156. package/dist/es/standards-sdk.es147.js.map +1 -1
  157. package/dist/es/standards-sdk.es148.js +65 -44
  158. package/dist/es/standards-sdk.es148.js.map +1 -1
  159. package/dist/es/standards-sdk.es149.js +65 -30
  160. package/dist/es/standards-sdk.es149.js.map +1 -1
  161. package/dist/es/standards-sdk.es15.js +1 -1
  162. package/dist/es/standards-sdk.es150.js +30 -34
  163. package/dist/es/standards-sdk.es150.js.map +1 -1
  164. package/dist/es/standards-sdk.es151.js +34 -45
  165. package/dist/es/standards-sdk.es151.js.map +1 -1
  166. package/dist/es/standards-sdk.es152.js +48 -138
  167. package/dist/es/standards-sdk.es152.js.map +1 -1
  168. package/dist/es/standards-sdk.es153.js +133 -37
  169. package/dist/es/standards-sdk.es153.js.map +1 -1
  170. package/dist/es/standards-sdk.es154.js +34 -12474
  171. package/dist/es/standards-sdk.es154.js.map +1 -1
  172. package/dist/es/standards-sdk.es155.js +12477 -12
  173. package/dist/es/standards-sdk.es155.js.map +1 -1
  174. package/dist/es/standards-sdk.es156.js +15 -54
  175. package/dist/es/standards-sdk.es156.js.map +1 -1
  176. package/dist/es/standards-sdk.es157.js +48 -76
  177. package/dist/es/standards-sdk.es157.js.map +1 -1
  178. package/dist/es/standards-sdk.es158.js +69 -66
  179. package/dist/es/standards-sdk.es158.js.map +1 -1
  180. package/dist/es/standards-sdk.es159.js +71 -63
  181. package/dist/es/standards-sdk.es159.js.map +1 -1
  182. package/dist/es/standards-sdk.es16.js +5 -5
  183. package/dist/es/standards-sdk.es160.js +188 -160
  184. package/dist/es/standards-sdk.es160.js.map +1 -1
  185. package/dist/es/standards-sdk.es161.js +232 -312
  186. package/dist/es/standards-sdk.es161.js.map +1 -1
  187. package/dist/es/standards-sdk.es162.js +64 -337
  188. package/dist/es/standards-sdk.es162.js.map +1 -1
  189. package/dist/es/standards-sdk.es163.js +129 -410
  190. package/dist/es/standards-sdk.es163.js.map +1 -1
  191. package/dist/es/standards-sdk.es164.js +200 -209
  192. package/dist/es/standards-sdk.es164.js.map +1 -1
  193. package/dist/es/standards-sdk.es165.js +334 -64
  194. package/dist/es/standards-sdk.es165.js.map +1 -1
  195. package/dist/es/standards-sdk.es166.js +442 -231
  196. package/dist/es/standards-sdk.es166.js.map +1 -1
  197. package/dist/es/standards-sdk.es167.js +317 -158
  198. package/dist/es/standards-sdk.es167.js.map +1 -1
  199. package/dist/es/standards-sdk.es168.js +61 -207
  200. package/dist/es/standards-sdk.es168.js.map +1 -1
  201. package/dist/es/standards-sdk.es169.js +155 -222
  202. package/dist/es/standards-sdk.es169.js.map +1 -1
  203. package/dist/es/standards-sdk.es170.js +178 -75
  204. package/dist/es/standards-sdk.es170.js.map +1 -1
  205. package/dist/es/standards-sdk.es171.js +226 -113
  206. package/dist/es/standards-sdk.es171.js.map +1 -1
  207. package/dist/es/standards-sdk.es172.js +77 -119
  208. package/dist/es/standards-sdk.es172.js.map +1 -1
  209. package/dist/es/standards-sdk.es173.js +103 -162
  210. package/dist/es/standards-sdk.es173.js.map +1 -1
  211. package/dist/es/standards-sdk.es174.js +141 -119
  212. package/dist/es/standards-sdk.es174.js.map +1 -1
  213. package/dist/es/standards-sdk.es175.js +152 -298
  214. package/dist/es/standards-sdk.es175.js.map +1 -1
  215. package/dist/es/standards-sdk.es176.js +120 -240
  216. package/dist/es/standards-sdk.es176.js.map +1 -1
  217. package/dist/es/standards-sdk.es177.js +298 -83
  218. package/dist/es/standards-sdk.es177.js.map +1 -1
  219. package/dist/es/standards-sdk.es178.js +262 -0
  220. package/dist/es/standards-sdk.es178.js.map +1 -0
  221. package/dist/es/standards-sdk.es179.js +119 -0
  222. package/dist/es/standards-sdk.es179.js.map +1 -0
  223. package/dist/es/standards-sdk.es18.js +12 -12
  224. package/dist/es/standards-sdk.es19.js +9 -9
  225. package/dist/es/standards-sdk.es2.js +2 -2
  226. package/dist/es/standards-sdk.es20.js +1 -1
  227. package/dist/es/standards-sdk.es21.js +1 -1
  228. package/dist/es/standards-sdk.es22.js +1 -1
  229. package/dist/es/standards-sdk.es23.js +1 -1
  230. package/dist/es/standards-sdk.es24.js +1 -1
  231. package/dist/es/standards-sdk.es25.js +1 -1
  232. package/dist/es/standards-sdk.es26.js +1 -1
  233. package/dist/es/standards-sdk.es27.js +12 -12
  234. package/dist/es/standards-sdk.es30.js +2 -2
  235. package/dist/es/standards-sdk.es31.js +4 -4
  236. package/dist/es/standards-sdk.es32.js +1 -1
  237. package/dist/es/standards-sdk.es35.js +6 -6
  238. package/dist/es/standards-sdk.es36.js +4 -4
  239. package/dist/es/standards-sdk.es37.js +2 -2
  240. package/dist/es/standards-sdk.es38.js +2 -2
  241. package/dist/es/standards-sdk.es39.js +1 -1
  242. package/dist/es/standards-sdk.es4.js +2 -2
  243. package/dist/es/standards-sdk.es40.js +1 -1
  244. package/dist/es/standards-sdk.es41.js +2 -2
  245. package/dist/es/standards-sdk.es46.js +1 -1
  246. package/dist/es/standards-sdk.es5.js +2 -2
  247. package/dist/es/standards-sdk.es51.js +1 -1
  248. package/dist/es/standards-sdk.es53.js +1 -1
  249. package/dist/es/standards-sdk.es56.js +2 -2
  250. package/dist/es/standards-sdk.es58.js +37 -4
  251. package/dist/es/standards-sdk.es58.js.map +1 -1
  252. package/dist/es/standards-sdk.es59.js +17 -10
  253. package/dist/es/standards-sdk.es59.js.map +1 -1
  254. package/dist/es/standards-sdk.es6.js +2 -2
  255. package/dist/es/standards-sdk.es60.js +2 -1
  256. package/dist/es/standards-sdk.es60.js.map +1 -1
  257. package/dist/es/standards-sdk.es61.js +1 -0
  258. package/dist/es/standards-sdk.es61.js.map +1 -1
  259. package/dist/es/standards-sdk.es62.js +19 -5
  260. package/dist/es/standards-sdk.es62.js.map +1 -1
  261. package/dist/es/standards-sdk.es63.js +214 -153
  262. package/dist/es/standards-sdk.es63.js.map +1 -1
  263. package/dist/es/standards-sdk.es64.js +205 -84
  264. package/dist/es/standards-sdk.es64.js.map +1 -1
  265. package/dist/es/standards-sdk.es65.js +125 -40
  266. package/dist/es/standards-sdk.es65.js.map +1 -1
  267. package/dist/es/standards-sdk.es66.js +41 -261
  268. package/dist/es/standards-sdk.es66.js.map +1 -1
  269. package/dist/es/standards-sdk.es67.js +262 -24
  270. package/dist/es/standards-sdk.es67.js.map +1 -1
  271. package/dist/es/standards-sdk.es68.js +25 -87
  272. package/dist/es/standards-sdk.es68.js.map +1 -1
  273. package/dist/es/standards-sdk.es69.js +95 -3
  274. package/dist/es/standards-sdk.es69.js.map +1 -1
  275. package/dist/es/standards-sdk.es7.js +1 -1
  276. package/dist/es/standards-sdk.es70.js +3 -100
  277. package/dist/es/standards-sdk.es70.js.map +1 -1
  278. package/dist/es/standards-sdk.es71.js +62 -61
  279. package/dist/es/standards-sdk.es71.js.map +1 -1
  280. package/dist/es/standards-sdk.es72.js +98 -17
  281. package/dist/es/standards-sdk.es72.js.map +1 -1
  282. package/dist/es/standards-sdk.es73.js +19 -77
  283. package/dist/es/standards-sdk.es73.js.map +1 -1
  284. package/dist/es/standards-sdk.es74.js +77 -458
  285. package/dist/es/standards-sdk.es74.js.map +1 -1
  286. package/dist/es/standards-sdk.es75.js +332 -107
  287. package/dist/es/standards-sdk.es75.js.map +1 -1
  288. package/dist/es/standards-sdk.es76.js +286 -170
  289. package/dist/es/standards-sdk.es76.js.map +1 -1
  290. package/dist/es/standards-sdk.es77.js +207 -71
  291. package/dist/es/standards-sdk.es77.js.map +1 -1
  292. package/dist/es/standards-sdk.es78.js +72 -71
  293. package/dist/es/standards-sdk.es78.js.map +1 -1
  294. package/dist/es/standards-sdk.es79.js +71 -143
  295. package/dist/es/standards-sdk.es79.js.map +1 -1
  296. package/dist/es/standards-sdk.es80.js +136 -62
  297. package/dist/es/standards-sdk.es80.js.map +1 -1
  298. package/dist/es/standards-sdk.es81.js +45 -380
  299. package/dist/es/standards-sdk.es81.js.map +1 -1
  300. package/dist/es/standards-sdk.es82.js +130 -222
  301. package/dist/es/standards-sdk.es82.js.map +1 -1
  302. package/dist/es/standards-sdk.es83.js +444 -313
  303. package/dist/es/standards-sdk.es83.js.map +1 -1
  304. package/dist/es/standards-sdk.es84.js +364 -88
  305. package/dist/es/standards-sdk.es84.js.map +1 -1
  306. package/dist/es/standards-sdk.es85.js +89 -125
  307. package/dist/es/standards-sdk.es85.js.map +1 -1
  308. package/dist/es/standards-sdk.es86.js +125 -8
  309. package/dist/es/standards-sdk.es86.js.map +1 -1
  310. package/dist/es/standards-sdk.es87.js +6 -45
  311. package/dist/es/standards-sdk.es87.js.map +1 -1
  312. package/dist/es/standards-sdk.es88.js +44 -98
  313. package/dist/es/standards-sdk.es88.js.map +1 -1
  314. package/dist/es/standards-sdk.es89.js +84 -331
  315. package/dist/es/standards-sdk.es89.js.map +1 -1
  316. package/dist/es/standards-sdk.es9.js +2 -2
  317. package/dist/es/standards-sdk.es90.js +160 -93
  318. package/dist/es/standards-sdk.es90.js.map +1 -1
  319. package/dist/es/standards-sdk.es91.js +275 -55
  320. package/dist/es/standards-sdk.es91.js.map +1 -1
  321. package/dist/es/standards-sdk.es92.js +55 -43
  322. package/dist/es/standards-sdk.es92.js.map +1 -1
  323. package/dist/es/standards-sdk.es93.js +44 -145
  324. package/dist/es/standards-sdk.es93.js.map +1 -1
  325. package/dist/es/standards-sdk.es94.js +113 -30
  326. package/dist/es/standards-sdk.es94.js.map +1 -1
  327. package/dist/es/standards-sdk.es95.js +59 -22
  328. package/dist/es/standards-sdk.es95.js.map +1 -1
  329. package/dist/es/standards-sdk.es96.js +28 -23
  330. package/dist/es/standards-sdk.es96.js.map +1 -1
  331. package/dist/es/standards-sdk.es97.js +23 -238
  332. package/dist/es/standards-sdk.es97.js.map +1 -1
  333. package/dist/es/standards-sdk.es98.js +225 -267
  334. package/dist/es/standards-sdk.es98.js.map +1 -1
  335. package/dist/es/standards-sdk.es99.js +220 -95
  336. package/dist/es/standards-sdk.es99.js.map +1 -1
  337. package/package.json +5 -1
@@ -1,461 +1,80 @@
1
- import { AccountId, Client, PublicKey } from "@hashgraph/sdk";
2
- import { HCS2BaseClient } from "./standards-sdk.es76.js";
3
- import { HCS2Operation, HCS2RegistryType } from "./standards-sdk.es73.js";
4
- import { createNodeOperatorContext } from "./standards-sdk.es152.js";
5
- import { buildMessageTx } from "./standards-sdk.es153.js";
6
- import { buildHcs2CreateRegistryTx } from "./standards-sdk.es77.js";
7
- const _HCS2Client = class _HCS2Client extends HCS2BaseClient {
8
- /**
9
- * Create a new 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.registryTypeCache = /* @__PURE__ */ new Map();
21
- this.operatorId = typeof config.operatorId === "string" ? AccountId.fromString(config.operatorId) : config.operatorId;
22
- this.operatorCtx = createNodeOperatorContext({
23
- network: this.network,
24
- operatorId: this.operatorId,
25
- operatorKey: config.operatorKey,
26
- keyType: config.keyType,
27
- mirrorNode: this.mirrorNode,
28
- logger: this.logger,
29
- client: this.createClient(config.network)
30
- });
31
- this.client = this.operatorCtx.client;
32
- }
33
- /**
34
- * Initialize the Hedera client with operator information
35
- */
36
- async ensureInitialized() {
37
- await this.operatorCtx.ensureInitialized();
38
- }
39
- /**
40
- * Create a Hedera client for the specified network
41
- * @param network The network to connect to
42
- * @returns The Hedera client
43
- */
44
- createClient(network) {
45
- if (network === "mainnet") {
46
- return Client.forMainnet();
47
- } else {
48
- return Client.forTestnet();
49
- }
50
- }
51
- /**
52
- * Create a new registry topic
53
- * @param options Registry creation options
54
- * @returns Promise resolving to the transaction result
55
- */
56
- async createRegistry(options = {}) {
57
- try {
58
- await this.ensureInitialized();
59
- const registryType = options.registryType ?? HCS2RegistryType.INDEXED;
60
- const ttl = options.ttl ?? 86400;
61
- const memo = this.generateRegistryMemo(registryType, ttl);
62
- let adminKeyPrivate;
63
- let adminPublicKey;
64
- if (options.adminKey) {
65
- if (typeof options.adminKey === "string") {
66
- try {
67
- adminPublicKey = PublicKey.fromString(options.adminKey);
68
- } catch {
69
- const keyBytes = Buffer.from(
70
- options.adminKey.replace(/^0x/i, ""),
71
- "hex"
72
- );
73
- adminPublicKey = this.operatorCtx.keyType === "ed25519" ? PublicKey.fromBytesED25519(keyBytes) : PublicKey.fromBytesECDSA(keyBytes);
74
- }
75
- } else if (typeof options.adminKey === "boolean") {
76
- adminPublicKey = this.operatorCtx.operatorKey.publicKey;
77
- } else {
78
- adminPublicKey = options.adminKey.publicKey;
79
- adminKeyPrivate = options.adminKey;
80
- }
81
- }
82
- let submitKeyPrivate;
83
- let submitPublicKey;
84
- if (options.submitKey) {
85
- if (typeof options.submitKey === "string") {
86
- try {
87
- submitPublicKey = PublicKey.fromString(options.submitKey);
88
- } catch {
89
- const keyBytes = Buffer.from(
90
- options.submitKey.replace(/^0x/i, ""),
91
- "hex"
92
- );
93
- submitPublicKey = this.operatorCtx.keyType === "ed25519" ? PublicKey.fromBytesED25519(keyBytes) : PublicKey.fromBytesECDSA(keyBytes);
94
- }
95
- } else if (typeof options.submitKey === "boolean") {
96
- submitPublicKey = this.operatorCtx.operatorKey.publicKey;
97
- } else {
98
- submitPublicKey = options.submitKey.publicKey;
99
- submitKeyPrivate = options.submitKey;
100
- }
101
- }
102
- const transaction = buildHcs2CreateRegistryTx({
103
- registryType,
104
- ttl,
105
- adminKey: adminPublicKey,
106
- submitKey: submitPublicKey,
107
- operatorPublicKey: this.operatorCtx.operatorKey.publicKey
108
- });
109
- const frozenTx = await transaction.freezeWith(this.client);
110
- if (adminKeyPrivate) {
111
- await frozenTx.sign(adminKeyPrivate);
112
- }
113
- if (submitKeyPrivate) {
114
- await frozenTx.sign(submitKeyPrivate);
115
- }
116
- const txResponse = await frozenTx.execute(this.client);
117
- const receipt = await txResponse.getReceipt(this.client);
118
- const topicId = receipt.topicId;
119
- if (!topicId) {
120
- throw new Error("Failed to create registry: No topic ID in receipt");
121
- }
122
- const topicIdStr = topicId.toString();
123
- this.registryTypeCache.set(topicIdStr, registryType);
124
- this.logger.info(
125
- `Created registry topic: ${topicIdStr} (${registryType === HCS2RegistryType.INDEXED ? "Indexed" : "Non-indexed"}, TTL: ${ttl}s)`
126
- );
127
- return {
128
- success: true,
129
- topicId: topicIdStr,
130
- transactionId: txResponse.transactionId.toString()
131
- };
132
- } catch (error) {
133
- this.logger.error(`Failed to create registry: ${error}`);
134
- return {
135
- success: false,
136
- error: `Failed to create registry: ${error}`
137
- };
138
- }
139
- }
140
- /**
141
- * Register a new entry in the registry
142
- * @param registryTopicId The topic ID of the registry
143
- * @param options Registration options
144
- * @param protocol Optional protocol version (defaults to 'hcs-2')
145
- * @returns Promise resolving to the operation result
146
- */
147
- async registerEntry(registryTopicId, options, protocol = "hcs-2") {
148
- try {
149
- await this.ensureInitialized();
150
- const message = this.createRegisterMessage(
151
- options.targetTopicId,
152
- options.metadata,
153
- options.memo,
154
- protocol
155
- );
156
- const registryType = options.registryType ?? await this.resolveRegistryType(registryTopicId);
157
- this.registryTypeCache.set(registryTopicId, registryType);
158
- const analyticsMemo = options.analyticsMemo ?? this.buildAnalyticsMemo(HCS2Operation.REGISTER, registryType);
159
- const receipt = await this.submitMessage(
160
- registryTopicId,
161
- message,
162
- analyticsMemo
163
- );
164
- this.logger.info(
165
- `Registered entry in registry ${registryTopicId} pointing to topic ${options.targetTopicId} using protocol ${protocol}`
166
- );
167
- return {
168
- success: true,
169
- receipt,
170
- sequenceNumber: receipt.topicSequenceNumber?.low ?? void 0
171
- };
172
- } catch (error) {
173
- this.logger.error(`Failed to register entry: ${error}`);
174
- return {
175
- success: false,
176
- error: `Failed to register entry: ${error}`
177
- };
178
- }
179
- }
180
- /**
181
- * Update an existing entry in the registry (indexed registries only)
182
- * @param registryTopicId The topic ID of the registry
183
- * @param options Update options
184
- * @returns Promise resolving to the operation result
185
- */
186
- async updateEntry(registryTopicId, options) {
187
- try {
188
- await this.ensureInitialized();
189
- const registryInfo = await this.mirrorNode.getTopicInfo(registryTopicId);
190
- const memoInfo = this.parseRegistryTypeFromMemo(registryInfo.memo);
191
- if (!memoInfo || memoInfo.registryType !== HCS2RegistryType.INDEXED) {
192
- throw new Error(
193
- "Update operation is only valid for indexed registries"
194
- );
195
- }
196
- const message = this.createUpdateMessage(
197
- options.targetTopicId,
198
- options.uid,
199
- options.metadata,
200
- options.memo
201
- );
202
- const registryType = options.registryType ?? await this.resolveRegistryType(registryTopicId);
203
- this.registryTypeCache.set(registryTopicId, registryType);
204
- const analyticsMemo = options.analyticsMemo ?? this.buildAnalyticsMemo(HCS2Operation.UPDATE, registryType);
205
- const receipt = await this.submitMessage(
206
- registryTopicId,
207
- message,
208
- analyticsMemo
209
- );
210
- this.logger.info(
211
- `Updated entry with UID ${options.uid} in 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 update entry: ${error}`);
220
- throw error;
221
- }
222
- }
223
- /**
224
- * Delete an entry from the registry (indexed registries only)
225
- * @param registryTopicId The topic ID of the registry
226
- * @param options Delete options
227
- * @returns Promise resolving to the operation result
228
- */
229
- async deleteEntry(registryTopicId, options) {
230
- try {
231
- await this.ensureInitialized();
232
- const registryInfo = await this.mirrorNode.getTopicInfo(registryTopicId);
233
- const memoInfo = this.parseRegistryTypeFromMemo(registryInfo.memo);
234
- if (!memoInfo || memoInfo.registryType !== HCS2RegistryType.INDEXED) {
235
- throw new Error(
236
- "Delete operation is only valid for indexed registries"
237
- );
238
- }
239
- const message = this.createDeleteMessage(options.uid, options.memo);
240
- const registryType = options.registryType ?? await this.resolveRegistryType(registryTopicId);
241
- this.registryTypeCache.set(registryTopicId, registryType);
242
- const analyticsMemo = options.analyticsMemo ?? this.buildAnalyticsMemo(HCS2Operation.DELETE, registryType);
243
- const receipt = await this.submitMessage(
244
- registryTopicId,
245
- message,
246
- analyticsMemo
247
- );
248
- this.logger.info(
249
- `Deleted entry with UID ${options.uid} from registry ${registryTopicId}`
250
- );
251
- return {
252
- success: true,
253
- receipt,
254
- sequenceNumber: receipt.topicSequenceNumber?.low ?? void 0
255
- };
256
- } catch (error) {
257
- this.logger.error(`Failed to delete entry: ${error}`);
258
- throw error;
259
- }
260
- }
261
- /**
262
- * Migrate a registry to a new topic
263
- * @param registryTopicId The topic ID of the registry
264
- * @param options Migration options
265
- * @returns Promise resolving to the operation result
266
- */
267
- async migrateRegistry(registryTopicId, options) {
268
- try {
269
- await this.ensureInitialized();
270
- const message = this.createMigrateMessage(
271
- options.targetTopicId,
272
- options.metadata,
273
- options.memo
274
- );
275
- const registryType = options.registryType ?? await this.resolveRegistryType(registryTopicId);
276
- this.registryTypeCache.set(registryTopicId, registryType);
277
- const analyticsMemo = options.analyticsMemo ?? this.buildAnalyticsMemo(HCS2Operation.MIGRATE, registryType);
278
- const receipt = await this.submitMessage(
279
- registryTopicId,
280
- message,
281
- analyticsMemo
282
- );
283
- this.logger.info(
284
- `Migrated registry ${registryTopicId} to ${options.targetTopicId}`
285
- );
286
- return {
287
- success: true,
288
- receipt,
289
- sequenceNumber: receipt.topicSequenceNumber?.low ?? void 0
290
- };
291
- } catch (error) {
292
- this.logger.error(`Failed to migrate registry: ${error}`);
293
- throw error;
294
- }
295
- }
296
- /**
297
- * Get all entries from a registry
298
- * @param topicId The topic ID of the registry
299
- * @param options Query options
300
- * @returns Promise resolving to the registry information
301
- */
302
- async getRegistry(topicId, options = {}) {
303
- try {
304
- await this.ensureInitialized();
305
- const topicInfo = await this.mirrorNode.getTopicInfo(topicId);
306
- this.logger.debug(
307
- `Retrieved topic info for ${topicId}: ${JSON.stringify(topicInfo)}`
308
- );
309
- const memoInfo = this.parseRegistryTypeFromMemo(topicInfo.memo);
310
- if (!memoInfo) {
311
- throw new Error(
312
- `Topic ${topicId} is not an HCS-2 registry (invalid memo format)`
313
- );
314
- }
315
- this.logger.debug(
316
- `Retrieving messages for topic ${topicId} with limit ${options.limit ?? 100}`
317
- );
318
- const rawMessagesResult = await this.mirrorNode.getTopicMessages(
319
- topicId,
320
- {
321
- sequenceNumber: options.skip && options.skip > 0 ? `gt:${options.skip}` : void 0,
322
- limit: options.limit ?? 100,
323
- order: options.order ?? "asc"
324
- }
325
- );
326
- const rawMessages = options.limit ? rawMessagesResult.slice(0, options.limit) : rawMessagesResult;
327
- this.logger.debug(
328
- `Retrieved ${rawMessagesResult.length} messages, using ${rawMessages.length} after applying limit.`
329
- );
330
- const entries = [];
331
- let latestEntry;
332
- for (const msg of rawMessages) {
333
- try {
334
- const message = {
335
- p: "hcs-2",
336
- op: msg.op,
337
- t_id: msg.t_id,
338
- uid: msg.uid,
339
- metadata: msg.metadata,
340
- m: msg.m
341
- };
342
- const { valid, errors } = this.validateMessage(message);
343
- if (!valid) {
344
- this.logger.warn(`Invalid HCS-2 message: ${errors.join(", ")}`);
345
- continue;
346
- }
347
- const entry = {
348
- topicId,
349
- sequence: msg.sequence_number,
350
- timestamp: msg.consensus_timestamp,
351
- payer: msg.payer_account_id || msg.payer || "",
352
- message,
353
- consensus_timestamp: msg.consensus_timestamp,
354
- registry_type: memoInfo.registryType
355
- };
356
- entries.push(entry);
357
- if (memoInfo.registryType === HCS2RegistryType.NON_INDEXED || !latestEntry || entry.timestamp > latestEntry.timestamp) {
358
- latestEntry = entry;
359
- }
360
- } catch (error) {
361
- this.logger.warn(`Error processing message: ${error}`);
362
- }
363
- }
364
- this.logger.debug(
365
- `Processed ${entries.length} valid entries for registry ${topicId}`
366
- );
367
- const registry = {
368
- topicId,
369
- registryType: memoInfo.registryType,
370
- ttl: memoInfo.ttl,
371
- entries: memoInfo.registryType === HCS2RegistryType.INDEXED ? entries : latestEntry ? [latestEntry] : [],
372
- latestEntry
373
- };
374
- return registry;
375
- } catch (error) {
376
- this.logger.error(`Failed to get registry: ${error}`);
377
- throw error;
378
- }
379
- }
380
- buildAnalyticsMemo(operation, registryType) {
381
- const opCode = _HCS2Client.operationAnalyticsCode[operation];
382
- return `hcs-2:op:${opCode}:${registryType}`;
383
- }
384
- async resolveRegistryType(topicId) {
385
- const cached = this.registryTypeCache.get(topicId);
386
- if (cached !== void 0) {
387
- return cached;
388
- }
389
- const topicInfo = await this.mirrorNode.getTopicInfo(topicId);
390
- const memoInfo = this.parseRegistryTypeFromMemo(topicInfo.memo);
391
- if (!memoInfo) {
392
- throw new Error(
393
- `Topic ${topicId} is not an HCS-2 registry (invalid memo format)`
394
- );
395
- }
396
- this.registryTypeCache.set(topicId, memoInfo.registryType);
397
- return memoInfo.registryType;
398
- }
399
- /**
400
- * Submit a message to a topic
401
- * @param topicId The topic ID to submit to
402
- * @param payload The message payload
403
- * @returns Promise resolving to the transaction receipt
404
- */
405
- async submitMessage(topicId, payload, analyticsMemo) {
406
- try {
407
- await this.ensureInitialized();
408
- const { valid, errors } = this.validateMessage(payload);
409
- if (!valid) {
410
- throw new Error(`Invalid HCS-2 message: ${errors.join(", ")}`);
411
- }
412
- const transaction = buildMessageTx({
413
- topicId,
414
- message: JSON.stringify(payload),
415
- transactionMemo: analyticsMemo
416
- });
417
- const txResponse = await transaction.execute(this.client);
418
- const receipt = await txResponse.getReceipt(this.client);
419
- return receipt;
420
- } catch (error) {
421
- this.logger.error(`Failed to submit message: ${error}`);
422
- throw error;
423
- }
424
- }
425
- /**
426
- * @param topicId The topic ID to query
427
- * @returns Promise resolving to the topic information
428
- */
429
- async getTopicInfo(topicId) {
430
- return this.mirrorNode.getTopicInfo(topicId);
431
- }
432
- /**
433
- * Close the client and release resources
434
- */
435
- close() {
436
- this.logger.info("HCS-2 client closed.");
437
- }
438
- /**
439
- * Get the configured key type (ed25519 or ecdsa)
440
- */
441
- getKeyType() {
442
- return this.operatorCtx.keyType;
443
- }
444
- /**
445
- * Get the configured operator private key
446
- */
447
- getOperatorKey() {
448
- return this.operatorCtx.operatorKey;
449
- }
450
- };
451
- _HCS2Client.operationAnalyticsCode = {
452
- [HCS2Operation.REGISTER]: 0,
453
- [HCS2Operation.UPDATE]: 1,
454
- [HCS2Operation.DELETE]: 2,
455
- [HCS2Operation.MIGRATE]: 3
456
- };
457
- let HCS2Client = _HCS2Client;
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
+ ]);
458
69
  export {
459
- HCS2Client
70
+ HCS2Operation,
71
+ HCS2RegistryType,
72
+ baseMessageSchema,
73
+ deleteMessageSchema,
74
+ hcs2MessageSchema,
75
+ migrateMessageSchema,
76
+ registerMessageSchema,
77
+ topicIdSchema,
78
+ updateMessageSchema
460
79
  };
461
80
  //# sourceMappingURL=standards-sdk.es74.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es74.js","sources":["../../src/hcs-2/client.ts"],"sourcesContent":["import {\n Client,\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n PrivateKey,\n TopicId,\n TransactionReceipt,\n AccountId,\n PublicKey,\n} from '@hashgraph/sdk';\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 RegistryEntry,\n} from './types';\nimport { NetworkType } from '../utils/types';\nimport {\n NodeOperatorResolver,\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport { buildMessageTx } from '../common/tx/tx-utils';\nimport { buildHcs2CreateRegistryTx } from './tx';\n\n/**\n * SDK client configuration for HCS-2\n */\nexport interface SDKHCS2ClientConfig extends HCS2ClientConfig {\n operatorId: string | AccountId;\n operatorKey: string | PrivateKey;\n keyType?: 'ed25519' | 'ecdsa';\n}\n\n/**\n * SDK client for HCS-2 operations\n */\nexport class HCS2Client extends HCS2BaseClient {\n private static readonly operationAnalyticsCode: Record<\n HCS2Operation,\n number\n > = {\n [HCS2Operation.REGISTER]: 0,\n [HCS2Operation.UPDATE]: 1,\n [HCS2Operation.DELETE]: 2,\n [HCS2Operation.MIGRATE]: 3,\n };\n\n private client: Client;\n private operatorId: AccountId;\n private operatorCtx: NodeOperatorContext;\n private readonly registryTypeCache = new Map<string, HCS2RegistryType>();\n\n /**\n * Create a new HCS-2 client\n * @param config Client configuration\n */\n constructor(config: SDKHCS2ClientConfig) {\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.operatorId =\n typeof config.operatorId === 'string'\n ? AccountId.fromString(config.operatorId)\n : config.operatorId;\n\n this.operatorCtx = createNodeOperatorContext({\n network: this.network,\n operatorId: this.operatorId,\n operatorKey: config.operatorKey,\n keyType: config.keyType,\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n client: this.createClient(config.network),\n });\n this.client = this.operatorCtx.client;\n }\n\n /**\n * Initialize the Hedera client with operator information\n */\n private async ensureInitialized(): Promise<void> {\n await this.operatorCtx.ensureInitialized();\n }\n\n /**\n * Create a Hedera client for the specified network\n * @param network The network to connect to\n * @returns The Hedera client\n */\n private createClient(network: NetworkType): Client {\n if (network === 'mainnet') {\n return Client.forMainnet();\n } else {\n return Client.forTestnet();\n }\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 await this.ensureInitialized();\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 adminKeyPrivate: PrivateKey | undefined;\n let adminPublicKey: PublicKey | undefined;\n if (options.adminKey) {\n if (typeof options.adminKey === 'string') {\n try {\n adminPublicKey = PublicKey.fromString(options.adminKey);\n } catch {\n const keyBytes = Buffer.from(\n options.adminKey.replace(/^0x/i, ''),\n 'hex',\n );\n adminPublicKey =\n this.operatorCtx.keyType === 'ed25519'\n ? PublicKey.fromBytesED25519(keyBytes)\n : PublicKey.fromBytesECDSA(keyBytes);\n }\n } else if (typeof options.adminKey === 'boolean') {\n adminPublicKey = this.operatorCtx.operatorKey.publicKey;\n } else {\n adminPublicKey = options.adminKey.publicKey;\n adminKeyPrivate = options.adminKey;\n }\n }\n\n let submitKeyPrivate: PrivateKey | undefined;\n let submitPublicKey: PublicKey | undefined;\n if (options.submitKey) {\n if (typeof options.submitKey === 'string') {\n try {\n submitPublicKey = PublicKey.fromString(options.submitKey);\n } catch {\n const keyBytes = Buffer.from(\n options.submitKey.replace(/^0x/i, ''),\n 'hex',\n );\n submitPublicKey =\n this.operatorCtx.keyType === 'ed25519'\n ? PublicKey.fromBytesED25519(keyBytes)\n : PublicKey.fromBytesECDSA(keyBytes);\n }\n } else if (typeof options.submitKey === 'boolean') {\n submitPublicKey = this.operatorCtx.operatorKey.publicKey;\n } else {\n submitPublicKey = options.submitKey.publicKey;\n submitKeyPrivate = options.submitKey;\n }\n }\n\n const transaction = buildHcs2CreateRegistryTx({\n registryType,\n ttl,\n adminKey: adminPublicKey,\n submitKey: submitPublicKey,\n operatorPublicKey: this.operatorCtx.operatorKey.publicKey,\n });\n\n const frozenTx = await transaction.freezeWith(this.client);\n\n if (adminKeyPrivate) {\n await frozenTx.sign(adminKeyPrivate);\n }\n\n if (submitKeyPrivate) {\n await frozenTx.sign(submitKeyPrivate);\n }\n\n const txResponse = await frozenTx.execute(this.client);\n\n const receipt = await txResponse.getReceipt(this.client);\n const topicId = receipt.topicId;\n\n if (!topicId) {\n throw new Error('Failed to create registry: No topic ID in receipt');\n }\n\n const topicIdStr = topicId.toString();\n this.registryTypeCache.set(topicIdStr, registryType);\n\n this.logger.info(\n `Created registry topic: ${topicIdStr} (${registryType === HCS2RegistryType.INDEXED ? 'Indexed' : 'Non-indexed'}, TTL: ${ttl}s)`,\n );\n\n return {\n success: true,\n topicId: topicIdStr,\n transactionId: txResponse.transactionId.toString(),\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 * @param protocol Optional protocol version (defaults to 'hcs-2')\n * @returns Promise resolving to the operation result\n */\n async registerEntry(\n registryTopicId: string,\n options: RegisterEntryOptions,\n protocol: string = 'hcs-2',\n ): Promise<RegistryOperationResponse> {\n try {\n await this.ensureInitialized();\n const message = this.createRegisterMessage(\n options.targetTopicId,\n options.metadata,\n options.memo,\n protocol,\n );\n\n const registryType =\n options.registryType ??\n (await this.resolveRegistryType(registryTopicId));\n this.registryTypeCache.set(registryTopicId, registryType);\n const analyticsMemo =\n options.analyticsMemo ??\n this.buildAnalyticsMemo(HCS2Operation.REGISTER, registryType);\n\n const receipt = await this.submitMessage(\n registryTopicId,\n message,\n analyticsMemo,\n );\n\n this.logger.info(\n `Registered entry in registry ${registryTopicId} pointing to topic ${options.targetTopicId} using protocol ${protocol}`,\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 await this.ensureInitialized();\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 registryType =\n options.registryType ??\n (await this.resolveRegistryType(registryTopicId));\n this.registryTypeCache.set(registryTopicId, registryType);\n const analyticsMemo =\n options.analyticsMemo ??\n this.buildAnalyticsMemo(HCS2Operation.UPDATE, registryType);\n\n const receipt = await this.submitMessage(\n registryTopicId,\n message,\n analyticsMemo,\n );\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 throw error;\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 await this.ensureInitialized();\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 registryType =\n options.registryType ??\n (await this.resolveRegistryType(registryTopicId));\n this.registryTypeCache.set(registryTopicId, registryType);\n const analyticsMemo =\n options.analyticsMemo ??\n this.buildAnalyticsMemo(HCS2Operation.DELETE, registryType);\n\n const receipt = await this.submitMessage(\n registryTopicId,\n message,\n analyticsMemo,\n );\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 throw error;\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 await this.ensureInitialized();\n const message = this.createMigrateMessage(\n options.targetTopicId,\n options.metadata,\n options.memo,\n );\n\n const registryType =\n options.registryType ??\n (await this.resolveRegistryType(registryTopicId));\n this.registryTypeCache.set(registryTopicId, registryType);\n const analyticsMemo =\n options.analyticsMemo ??\n this.buildAnalyticsMemo(HCS2Operation.MIGRATE, registryType);\n\n const receipt = await this.submitMessage(\n registryTopicId,\n message,\n analyticsMemo,\n );\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 throw error;\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 await this.ensureInitialized();\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n this.logger.debug(\n `Retrieved topic info for ${topicId}: ${JSON.stringify(topicInfo)}`,\n );\n\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 this.logger.debug(\n `Retrieving messages for topic ${topicId} with limit ${options.limit ?? 100}`,\n );\n const rawMessagesResult = (await this.mirrorNode.getTopicMessages(\n topicId,\n {\n sequenceNumber:\n options.skip && options.skip > 0 ? `gt:${options.skip}` : undefined,\n limit: options.limit ?? 100,\n order: options.order ?? 'asc',\n },\n )) as any[];\n\n const rawMessages = options.limit\n ? rawMessagesResult.slice(0, options.limit)\n : rawMessagesResult;\n\n this.logger.debug(\n `Retrieved ${rawMessagesResult.length} messages, using ${rawMessages.length} after applying limit.`,\n );\n\n const entries: RegistryEntry[] = [];\n let latestEntry: RegistryEntry | undefined;\n\n for (const msg of rawMessages) {\n try {\n const message: HCS2Message = {\n p: 'hcs-2',\n op: msg.op,\n t_id: msg.t_id,\n uid: msg.uid,\n metadata: msg.metadata,\n m: msg.m,\n } as HCS2Message;\n\n const { valid, errors } = this.validateMessage(message);\n if (!valid) {\n this.logger.warn(`Invalid HCS-2 message: ${errors.join(', ')}`);\n continue;\n }\n\n const entry: RegistryEntry = {\n topicId,\n sequence: msg.sequence_number,\n timestamp: msg.consensus_timestamp,\n payer: msg.payer_account_id || msg.payer || '',\n message,\n consensus_timestamp: msg.consensus_timestamp,\n registry_type: memoInfo.registryType,\n };\n\n entries.push(entry);\n\n if (\n memoInfo.registryType === HCS2RegistryType.NON_INDEXED ||\n !latestEntry ||\n entry.timestamp > latestEntry.timestamp\n ) {\n latestEntry = entry;\n }\n } catch (error) {\n this.logger.warn(`Error processing message: ${error}`);\n }\n }\n\n this.logger.debug(\n `Processed ${entries.length} valid entries for registry ${topicId}`,\n );\n\n const registry: TopicRegistry = {\n topicId,\n registryType: memoInfo.registryType,\n ttl: memoInfo.ttl,\n entries:\n memoInfo.registryType === HCS2RegistryType.INDEXED\n ? entries\n : latestEntry\n ? [latestEntry]\n : [],\n latestEntry,\n };\n\n return registry;\n } catch (error) {\n this.logger.error(`Failed to get registry: ${error}`);\n throw error;\n }\n }\n\n private buildAnalyticsMemo(\n operation: HCS2Operation,\n registryType: HCS2RegistryType,\n ): string {\n const opCode = HCS2Client.operationAnalyticsCode[operation];\n return `hcs-2:op:${opCode}:${registryType}`;\n }\n\n private async resolveRegistryType(\n topicId: string,\n ): Promise<HCS2RegistryType> {\n const cached = this.registryTypeCache.get(topicId);\n if (cached !== undefined) {\n return cached;\n }\n\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n const memoInfo = this.parseRegistryTypeFromMemo(topicInfo.memo);\n if (!memoInfo) {\n throw new Error(\n `Topic ${topicId} is not an HCS-2 registry (invalid memo format)`,\n );\n }\n\n this.registryTypeCache.set(topicId, memoInfo.registryType);\n return memoInfo.registryType;\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 analyticsMemo?: string,\n ): Promise<TransactionReceipt> {\n try {\n await this.ensureInitialized();\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 transactionMemo: analyticsMemo,\n });\n\n const txResponse = await transaction.execute(this.client);\n\n const receipt = await txResponse.getReceipt(this.client);\n\n return receipt;\n } catch (error) {\n this.logger.error(`Failed to submit message: ${error}`);\n throw error;\n }\n }\n\n /**\n * @param topicId The topic ID to query\n * @returns Promise resolving to the topic information\n */\n public async getTopicInfo(topicId: string): Promise<any> {\n return this.mirrorNode.getTopicInfo(topicId);\n }\n\n /**\n * Close the client and release resources\n */\n public close(): void {\n this.logger.info('HCS-2 client closed.');\n }\n\n /**\n * Get the configured key type (ed25519 or ecdsa)\n */\n public getKeyType(): 'ed25519' | 'ecdsa' {\n return this.operatorCtx.keyType;\n }\n\n /**\n * Get the configured operator private key\n */\n public getOperatorKey(): PrivateKey {\n return this.operatorCtx.operatorKey;\n }\n}\n"],"names":[],"mappings":"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"}
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 /** When true, overflow messages with data_ref are resolved via HCS-1. */\n resolveOverflow?: boolean;\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;AAgLL,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;"}