@hashgraphonline/standards-sdk 0.1.143 → 0.1.144-feat-solana-register.canary.d5edcec.80

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 (475) hide show
  1. package/dist/cjs/hcs-10/base-client.d.ts.map +1 -1
  2. package/dist/cjs/hcs-10/sdk.d.ts +8 -0
  3. package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
  4. package/dist/cjs/hcs-11/client.d.ts +2 -2
  5. package/dist/cjs/hcs-11/client.d.ts.map +1 -1
  6. package/dist/cjs/hcs-11/person-builder.d.ts +1 -0
  7. package/dist/cjs/hcs-11/person-builder.d.ts.map +1 -1
  8. package/dist/cjs/hcs-11/types.d.ts +1 -0
  9. package/dist/cjs/hcs-11/types.d.ts.map +1 -1
  10. package/dist/cjs/hcs-12/rendering/resource-manager.d.ts.map +1 -1
  11. package/dist/cjs/hcs-12/validation/schemas.d.ts +8 -8
  12. package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
  13. package/dist/cjs/hcs-15/browser.d.ts +2 -0
  14. package/dist/cjs/hcs-15/browser.d.ts.map +1 -1
  15. package/dist/cjs/hcs-15/sdk.d.ts +7 -1
  16. package/dist/cjs/hcs-15/sdk.d.ts.map +1 -1
  17. package/dist/cjs/hcs-15/tx.d.ts +4 -0
  18. package/dist/cjs/hcs-15/tx.d.ts.map +1 -1
  19. package/dist/cjs/hcs-15/types.d.ts +16 -1
  20. package/dist/cjs/hcs-15/types.d.ts.map +1 -1
  21. package/dist/cjs/hcs-16/browser.d.ts +11 -2
  22. package/dist/cjs/hcs-16/browser.d.ts.map +1 -1
  23. package/dist/cjs/hcs-16/sdk.d.ts +62 -1
  24. package/dist/cjs/hcs-16/sdk.d.ts.map +1 -1
  25. package/dist/cjs/hcs-16/tx.d.ts +21 -3
  26. package/dist/cjs/hcs-16/tx.d.ts.map +1 -1
  27. package/dist/cjs/hcs-17/base-client.d.ts +1 -0
  28. package/dist/cjs/hcs-17/base-client.d.ts.map +1 -1
  29. package/dist/cjs/hcs-17/sdk.d.ts.map +1 -1
  30. package/dist/cjs/hcs-17/tx.d.ts +2 -0
  31. package/dist/cjs/hcs-17/tx.d.ts.map +1 -1
  32. package/dist/cjs/hcs-17/types.d.ts +4 -0
  33. package/dist/cjs/hcs-17/types.d.ts.map +1 -1
  34. package/dist/cjs/hcs-21/types.d.ts +75 -75
  35. package/dist/cjs/index.d.ts.map +1 -1
  36. package/dist/cjs/services/registry-broker/client/adapters.d.ts +20 -0
  37. package/dist/cjs/services/registry-broker/client/adapters.d.ts.map +1 -0
  38. package/dist/cjs/services/registry-broker/client/agents.d.ts +16 -0
  39. package/dist/cjs/services/registry-broker/client/agents.d.ts.map +1 -0
  40. package/dist/cjs/services/registry-broker/client/base-client.d.ts +70 -0
  41. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -0
  42. package/dist/cjs/services/registry-broker/client/chat-history.d.ts +23 -0
  43. package/dist/cjs/services/registry-broker/client/chat-history.d.ts.map +1 -0
  44. package/dist/cjs/services/registry-broker/client/chat.d.ts +33 -0
  45. package/dist/cjs/services/registry-broker/client/chat.d.ts.map +1 -0
  46. package/dist/cjs/services/registry-broker/client/credits.d.ts +40 -0
  47. package/dist/cjs/services/registry-broker/client/credits.d.ts.map +1 -0
  48. package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
  49. package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
  50. package/dist/cjs/services/registry-broker/client/encryption.d.ts +33 -0
  51. package/dist/cjs/services/registry-broker/client/encryption.d.ts.map +1 -0
  52. package/dist/cjs/services/registry-broker/client/errors.d.ts +19 -0
  53. package/dist/cjs/services/registry-broker/client/errors.d.ts.map +1 -0
  54. package/dist/cjs/services/registry-broker/client/feedback.d.ts +2 -0
  55. package/dist/cjs/services/registry-broker/client/feedback.d.ts.map +1 -0
  56. package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts +10 -0
  57. package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
  58. package/dist/cjs/services/registry-broker/client/search.d.ts +19 -0
  59. package/dist/cjs/services/registry-broker/client/search.d.ts.map +1 -0
  60. package/dist/cjs/services/registry-broker/client/utils.d.ts +21 -0
  61. package/dist/cjs/services/registry-broker/client/utils.d.ts.map +1 -0
  62. package/dist/cjs/services/registry-broker/client.d.ts +2 -205
  63. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  64. package/dist/cjs/services/registry-broker/private-key-signer.d.ts +1 -0
  65. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  66. package/dist/cjs/services/registry-broker/schemas.d.ts +2509 -816
  67. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  68. package/dist/cjs/services/registry-broker/types.d.ts +64 -2
  69. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  70. package/dist/cjs/standards-sdk.cjs +3 -3
  71. package/dist/cjs/standards-sdk.cjs.map +1 -1
  72. package/dist/cjs/utils/crypto-abstraction.d.ts.map +1 -1
  73. package/dist/cjs/utils/crypto-env.d.ts.map +1 -1
  74. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  75. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  76. package/dist/cjs/utils/hash-adapter.d.ts.map +1 -1
  77. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  78. package/dist/es/hcs-10/sdk.d.ts +8 -0
  79. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  80. package/dist/es/hcs-11/client.d.ts +2 -2
  81. package/dist/es/hcs-11/client.d.ts.map +1 -1
  82. package/dist/es/hcs-11/person-builder.d.ts +1 -0
  83. package/dist/es/hcs-11/person-builder.d.ts.map +1 -1
  84. package/dist/es/hcs-11/types.d.ts +1 -0
  85. package/dist/es/hcs-11/types.d.ts.map +1 -1
  86. package/dist/es/hcs-12/rendering/resource-manager.d.ts.map +1 -1
  87. package/dist/es/hcs-12/validation/schemas.d.ts +8 -8
  88. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  89. package/dist/es/hcs-15/browser.d.ts +2 -0
  90. package/dist/es/hcs-15/browser.d.ts.map +1 -1
  91. package/dist/es/hcs-15/sdk.d.ts +7 -1
  92. package/dist/es/hcs-15/sdk.d.ts.map +1 -1
  93. package/dist/es/hcs-15/tx.d.ts +4 -0
  94. package/dist/es/hcs-15/tx.d.ts.map +1 -1
  95. package/dist/es/hcs-15/types.d.ts +16 -1
  96. package/dist/es/hcs-15/types.d.ts.map +1 -1
  97. package/dist/es/hcs-16/browser.d.ts +11 -2
  98. package/dist/es/hcs-16/browser.d.ts.map +1 -1
  99. package/dist/es/hcs-16/sdk.d.ts +62 -1
  100. package/dist/es/hcs-16/sdk.d.ts.map +1 -1
  101. package/dist/es/hcs-16/tx.d.ts +21 -3
  102. package/dist/es/hcs-16/tx.d.ts.map +1 -1
  103. package/dist/es/hcs-17/base-client.d.ts +1 -0
  104. package/dist/es/hcs-17/base-client.d.ts.map +1 -1
  105. package/dist/es/hcs-17/sdk.d.ts.map +1 -1
  106. package/dist/es/hcs-17/tx.d.ts +2 -0
  107. package/dist/es/hcs-17/tx.d.ts.map +1 -1
  108. package/dist/es/hcs-17/types.d.ts +4 -0
  109. package/dist/es/hcs-17/types.d.ts.map +1 -1
  110. package/dist/es/hcs-21/types.d.ts +75 -75
  111. package/dist/es/index.d.ts.map +1 -1
  112. package/dist/es/services/registry-broker/client/adapters.d.ts +20 -0
  113. package/dist/es/services/registry-broker/client/adapters.d.ts.map +1 -0
  114. package/dist/es/services/registry-broker/client/agents.d.ts +16 -0
  115. package/dist/es/services/registry-broker/client/agents.d.ts.map +1 -0
  116. package/dist/es/services/registry-broker/client/base-client.d.ts +70 -0
  117. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -0
  118. package/dist/es/services/registry-broker/client/chat-history.d.ts +23 -0
  119. package/dist/es/services/registry-broker/client/chat-history.d.ts.map +1 -0
  120. package/dist/es/services/registry-broker/client/chat.d.ts +33 -0
  121. package/dist/es/services/registry-broker/client/chat.d.ts.map +1 -0
  122. package/dist/es/services/registry-broker/client/credits.d.ts +40 -0
  123. package/dist/es/services/registry-broker/client/credits.d.ts.map +1 -0
  124. package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
  125. package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
  126. package/dist/es/services/registry-broker/client/encryption.d.ts +33 -0
  127. package/dist/es/services/registry-broker/client/encryption.d.ts.map +1 -0
  128. package/dist/es/services/registry-broker/client/errors.d.ts +19 -0
  129. package/dist/es/services/registry-broker/client/errors.d.ts.map +1 -0
  130. package/dist/es/services/registry-broker/client/feedback.d.ts +2 -0
  131. package/dist/es/services/registry-broker/client/feedback.d.ts.map +1 -0
  132. package/dist/es/services/registry-broker/client/ledger-auth.d.ts +10 -0
  133. package/dist/es/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
  134. package/dist/es/services/registry-broker/client/search.d.ts +19 -0
  135. package/dist/es/services/registry-broker/client/search.d.ts.map +1 -0
  136. package/dist/es/services/registry-broker/client/utils.d.ts +21 -0
  137. package/dist/es/services/registry-broker/client/utils.d.ts.map +1 -0
  138. package/dist/es/services/registry-broker/client.d.ts +2 -205
  139. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  140. package/dist/es/services/registry-broker/private-key-signer.d.ts +1 -0
  141. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  142. package/dist/es/services/registry-broker/schemas.d.ts +2509 -816
  143. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  144. package/dist/es/services/registry-broker/types.d.ts +64 -2
  145. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  146. package/dist/es/standards-sdk.es.js +148 -133
  147. package/dist/es/standards-sdk.es.js.map +1 -1
  148. package/dist/es/standards-sdk.es10.js +70 -90
  149. package/dist/es/standards-sdk.es10.js.map +1 -1
  150. package/dist/es/standards-sdk.es100.js +229 -26
  151. package/dist/es/standards-sdk.es100.js.map +1 -1
  152. package/dist/es/standards-sdk.es101.js +109 -228
  153. package/dist/es/standards-sdk.es101.js.map +1 -1
  154. package/dist/es/standards-sdk.es102.js +15 -94
  155. package/dist/es/standards-sdk.es102.js.map +1 -1
  156. package/dist/es/standards-sdk.es103.js +80 -30
  157. package/dist/es/standards-sdk.es103.js.map +1 -1
  158. package/dist/es/standards-sdk.es104.js +27 -80
  159. package/dist/es/standards-sdk.es104.js.map +1 -1
  160. package/dist/es/standards-sdk.es105.js +136 -25
  161. package/dist/es/standards-sdk.es105.js.map +1 -1
  162. package/dist/es/standards-sdk.es106.js +27 -140
  163. package/dist/es/standards-sdk.es106.js.map +1 -1
  164. package/dist/es/standards-sdk.es107.js +20 -27
  165. package/dist/es/standards-sdk.es107.js.map +1 -1
  166. package/dist/es/standards-sdk.es108.js +156 -18
  167. package/dist/es/standards-sdk.es108.js.map +1 -1
  168. package/dist/es/standards-sdk.es109.js +198 -148
  169. package/dist/es/standards-sdk.es109.js.map +1 -1
  170. package/dist/es/standards-sdk.es11.js +121 -45
  171. package/dist/es/standards-sdk.es11.js.map +1 -1
  172. package/dist/es/standards-sdk.es110.js +747 -160
  173. package/dist/es/standards-sdk.es110.js.map +1 -1
  174. package/dist/es/standards-sdk.es111.js +9 -786
  175. package/dist/es/standards-sdk.es111.js.map +1 -1
  176. package/dist/es/standards-sdk.es112.js +567 -13
  177. package/dist/es/standards-sdk.es112.js.map +1 -1
  178. package/dist/es/standards-sdk.es113.js +576 -541
  179. package/dist/es/standards-sdk.es113.js.map +1 -1
  180. package/dist/es/standards-sdk.es114.js +12 -601
  181. package/dist/es/standards-sdk.es114.js.map +1 -1
  182. package/dist/es/standards-sdk.es115.js +2 -13
  183. package/dist/es/standards-sdk.es115.js.map +1 -1
  184. package/dist/es/standards-sdk.es116.js +87 -2
  185. package/dist/es/standards-sdk.es116.js.map +1 -1
  186. package/dist/es/standards-sdk.es117.js +37 -80
  187. package/dist/es/standards-sdk.es117.js.map +1 -1
  188. package/dist/es/standards-sdk.es118.js +2 -39
  189. package/dist/es/standards-sdk.es118.js.map +1 -1
  190. package/dist/es/standards-sdk.es119.js +231 -2
  191. package/dist/es/standards-sdk.es119.js.map +1 -1
  192. package/dist/es/standards-sdk.es12.js +60 -159
  193. package/dist/es/standards-sdk.es12.js.map +1 -1
  194. package/dist/es/standards-sdk.es120.js +1110 -193
  195. package/dist/es/standards-sdk.es120.js.map +1 -1
  196. package/dist/es/standards-sdk.es121.js +225 -1059
  197. package/dist/es/standards-sdk.es121.js.map +1 -1
  198. package/dist/es/standards-sdk.es122.js +419 -303
  199. package/dist/es/standards-sdk.es122.js.map +1 -1
  200. package/dist/es/standards-sdk.es123.js +351 -418
  201. package/dist/es/standards-sdk.es123.js.map +1 -1
  202. package/dist/es/standards-sdk.es124.js +872 -347
  203. package/dist/es/standards-sdk.es124.js.map +1 -1
  204. package/dist/es/standards-sdk.es125.js +182 -854
  205. package/dist/es/standards-sdk.es125.js.map +1 -1
  206. package/dist/es/standards-sdk.es126.js +1512 -153
  207. package/dist/es/standards-sdk.es126.js.map +1 -1
  208. package/dist/es/standards-sdk.es127.js +157 -1547
  209. package/dist/es/standards-sdk.es127.js.map +1 -1
  210. package/dist/es/standards-sdk.es128.js +184 -2190
  211. package/dist/es/standards-sdk.es128.js.map +1 -1
  212. package/dist/es/standards-sdk.es129.js +100 -63
  213. package/dist/es/standards-sdk.es129.js.map +1 -1
  214. package/dist/es/standards-sdk.es13.js +200 -60
  215. package/dist/es/standards-sdk.es13.js.map +1 -1
  216. package/dist/es/standards-sdk.es130.js +112 -78
  217. package/dist/es/standards-sdk.es130.js.map +1 -1
  218. package/dist/es/standards-sdk.es131.js +232 -144
  219. package/dist/es/standards-sdk.es131.js.map +1 -1
  220. package/dist/es/standards-sdk.es132.js +181 -8
  221. package/dist/es/standards-sdk.es132.js.map +1 -1
  222. package/dist/es/standards-sdk.es133.js +118 -82
  223. package/dist/es/standards-sdk.es133.js.map +1 -1
  224. package/dist/es/standards-sdk.es134.js +322 -61
  225. package/dist/es/standards-sdk.es134.js.map +1 -1
  226. package/dist/es/standards-sdk.es135.js +464 -28
  227. package/dist/es/standards-sdk.es135.js.map +1 -1
  228. package/dist/es/standards-sdk.es136.js +14 -135
  229. package/dist/es/standards-sdk.es136.js.map +1 -1
  230. package/dist/es/standards-sdk.es137.js +78 -39
  231. package/dist/es/standards-sdk.es137.js.map +1 -1
  232. package/dist/es/standards-sdk.es138.js +85 -764
  233. package/dist/es/standards-sdk.es138.js.map +1 -1
  234. package/dist/es/standards-sdk.es139.js +135 -12250
  235. package/dist/es/standards-sdk.es139.js.map +1 -1
  236. package/dist/es/standards-sdk.es14.js +149 -178
  237. package/dist/es/standards-sdk.es14.js.map +1 -1
  238. package/dist/es/standards-sdk.es140.js +7 -56
  239. package/dist/es/standards-sdk.es140.js.map +1 -1
  240. package/dist/es/standards-sdk.es141.js +72 -68
  241. package/dist/es/standards-sdk.es141.js.map +1 -1
  242. package/dist/es/standards-sdk.es142.js +61 -13
  243. package/dist/es/standards-sdk.es142.js.map +1 -1
  244. package/dist/es/standards-sdk.es143.js +30 -172
  245. package/dist/es/standards-sdk.es143.js.map +1 -1
  246. package/dist/es/standards-sdk.es144.js +34 -322
  247. package/dist/es/standards-sdk.es144.js.map +1 -1
  248. package/dist/es/standards-sdk.es145.js +28 -346
  249. package/dist/es/standards-sdk.es145.js.map +1 -1
  250. package/dist/es/standards-sdk.es146.js +112 -427
  251. package/dist/es/standards-sdk.es146.js.map +1 -1
  252. package/dist/es/standards-sdk.es147.js +40 -329
  253. package/dist/es/standards-sdk.es147.js.map +1 -1
  254. package/dist/es/standards-sdk.es148.js +12279 -66
  255. package/dist/es/standards-sdk.es148.js.map +1 -1
  256. package/dist/es/standards-sdk.es149.js +961 -0
  257. package/dist/es/standards-sdk.es149.js.map +1 -0
  258. package/dist/es/standards-sdk.es15.js +152 -151
  259. package/dist/es/standards-sdk.es15.js.map +1 -1
  260. package/dist/es/standards-sdk.es150.js +20 -0
  261. package/dist/es/standards-sdk.es150.js.map +1 -0
  262. package/dist/es/standards-sdk.es151.js +59 -0
  263. package/dist/es/standards-sdk.es151.js.map +1 -0
  264. package/dist/es/standards-sdk.es152.js +87 -0
  265. package/dist/es/standards-sdk.es152.js.map +1 -0
  266. package/dist/es/standards-sdk.es153.js +175 -0
  267. package/dist/es/standards-sdk.es153.js.map +1 -0
  268. package/dist/es/standards-sdk.es154.js +325 -0
  269. package/dist/es/standards-sdk.es154.js.map +1 -0
  270. package/dist/es/standards-sdk.es155.js +349 -0
  271. package/dist/es/standards-sdk.es155.js.map +1 -0
  272. package/dist/es/standards-sdk.es156.js +456 -0
  273. package/dist/es/standards-sdk.es156.js.map +1 -0
  274. package/dist/es/standards-sdk.es157.js +334 -0
  275. package/dist/es/standards-sdk.es157.js.map +1 -0
  276. package/dist/es/standards-sdk.es158.js +79 -0
  277. package/dist/es/standards-sdk.es158.js.map +1 -0
  278. package/dist/es/standards-sdk.es159.js +242 -0
  279. package/dist/es/standards-sdk.es159.js.map +1 -0
  280. package/dist/es/standards-sdk.es16.js +917 -136
  281. package/dist/es/standards-sdk.es16.js.map +1 -1
  282. package/dist/es/standards-sdk.es160.js +247 -0
  283. package/dist/es/standards-sdk.es160.js.map +1 -0
  284. package/dist/es/standards-sdk.es17.js +23 -938
  285. package/dist/es/standards-sdk.es17.js.map +1 -1
  286. package/dist/es/standards-sdk.es18.js +2422 -24
  287. package/dist/es/standards-sdk.es18.js.map +1 -1
  288. package/dist/es/standards-sdk.es19.js +826 -2075
  289. package/dist/es/standards-sdk.es19.js.map +1 -1
  290. package/dist/es/standards-sdk.es2.js +654 -189
  291. package/dist/es/standards-sdk.es2.js.map +1 -1
  292. package/dist/es/standards-sdk.es20.js +205 -1086
  293. package/dist/es/standards-sdk.es20.js.map +1 -1
  294. package/dist/es/standards-sdk.es21.js +858 -221
  295. package/dist/es/standards-sdk.es21.js.map +1 -1
  296. package/dist/es/standards-sdk.es22.js +179 -903
  297. package/dist/es/standards-sdk.es22.js.map +1 -1
  298. package/dist/es/standards-sdk.es23.js +164 -179
  299. package/dist/es/standards-sdk.es23.js.map +1 -1
  300. package/dist/es/standards-sdk.es24.js +62 -118
  301. package/dist/es/standards-sdk.es24.js.map +1 -1
  302. package/dist/es/standards-sdk.es25.js +377 -52
  303. package/dist/es/standards-sdk.es25.js.map +1 -1
  304. package/dist/es/standards-sdk.es26.js +36 -394
  305. package/dist/es/standards-sdk.es26.js.map +1 -1
  306. package/dist/es/standards-sdk.es27.js +901 -50
  307. package/dist/es/standards-sdk.es27.js.map +1 -1
  308. package/dist/es/standards-sdk.es28.js +134 -897
  309. package/dist/es/standards-sdk.es28.js.map +1 -1
  310. package/dist/es/standards-sdk.es29.js +7 -134
  311. package/dist/es/standards-sdk.es29.js.map +1 -1
  312. package/dist/es/standards-sdk.es3.js +63 -680
  313. package/dist/es/standards-sdk.es3.js.map +1 -1
  314. package/dist/es/standards-sdk.es30.js +344 -7
  315. package/dist/es/standards-sdk.es30.js.map +1 -1
  316. package/dist/es/standards-sdk.es31.js +302 -287
  317. package/dist/es/standards-sdk.es31.js.map +1 -1
  318. package/dist/es/standards-sdk.es32.js +94 -322
  319. package/dist/es/standards-sdk.es32.js.map +1 -1
  320. package/dist/es/standards-sdk.es33.js +458 -101
  321. package/dist/es/standards-sdk.es33.js.map +1 -1
  322. package/dist/es/standards-sdk.es34.js +132 -451
  323. package/dist/es/standards-sdk.es34.js.map +1 -1
  324. package/dist/es/standards-sdk.es35.js +216 -130
  325. package/dist/es/standards-sdk.es35.js.map +1 -1
  326. package/dist/es/standards-sdk.es36.js +274 -191
  327. package/dist/es/standards-sdk.es36.js.map +1 -1
  328. package/dist/es/standards-sdk.es37.js +148 -87
  329. package/dist/es/standards-sdk.es37.js.map +1 -1
  330. package/dist/es/standards-sdk.es38.js +183 -320
  331. package/dist/es/standards-sdk.es38.js.map +1 -1
  332. package/dist/es/standards-sdk.es39.js +238 -161
  333. package/dist/es/standards-sdk.es39.js.map +1 -1
  334. package/dist/es/standards-sdk.es4.js +425 -63
  335. package/dist/es/standards-sdk.es4.js.map +1 -1
  336. package/dist/es/standards-sdk.es40.js +136 -254
  337. package/dist/es/standards-sdk.es40.js.map +1 -1
  338. package/dist/es/standards-sdk.es41.js +225 -176
  339. package/dist/es/standards-sdk.es41.js.map +1 -1
  340. package/dist/es/standards-sdk.es42.js +199 -261
  341. package/dist/es/standards-sdk.es42.js.map +1 -1
  342. package/dist/es/standards-sdk.es43.js +237 -199
  343. package/dist/es/standards-sdk.es43.js.map +1 -1
  344. package/dist/es/standards-sdk.es44.js +209 -201
  345. package/dist/es/standards-sdk.es44.js.map +1 -1
  346. package/dist/es/standards-sdk.es45.js +305 -201
  347. package/dist/es/standards-sdk.es45.js.map +1 -1
  348. package/dist/es/standards-sdk.es46.js +371 -261
  349. package/dist/es/standards-sdk.es46.js.map +1 -1
  350. package/dist/es/standards-sdk.es47.js +316 -371
  351. package/dist/es/standards-sdk.es47.js.map +1 -1
  352. package/dist/es/standards-sdk.es48.js +404 -336
  353. package/dist/es/standards-sdk.es48.js.map +1 -1
  354. package/dist/es/standards-sdk.es49.js +83 -449
  355. package/dist/es/standards-sdk.es49.js.map +1 -1
  356. package/dist/es/standards-sdk.es5.js +232 -354
  357. package/dist/es/standards-sdk.es5.js.map +1 -1
  358. package/dist/es/standards-sdk.es50.js +179 -89
  359. package/dist/es/standards-sdk.es50.js.map +1 -1
  360. package/dist/es/standards-sdk.es51.js +231 -165
  361. package/dist/es/standards-sdk.es51.js.map +1 -1
  362. package/dist/es/standards-sdk.es52.js +25 -262
  363. package/dist/es/standards-sdk.es52.js.map +1 -1
  364. package/dist/es/standards-sdk.es53.js +56 -26
  365. package/dist/es/standards-sdk.es53.js.map +1 -1
  366. package/dist/es/standards-sdk.es54.js +12 -57
  367. package/dist/es/standards-sdk.es54.js.map +1 -1
  368. package/dist/es/standards-sdk.es55.js +49 -12
  369. package/dist/es/standards-sdk.es55.js.map +1 -1
  370. package/dist/es/standards-sdk.es56.js +115 -43
  371. package/dist/es/standards-sdk.es56.js.map +1 -1
  372. package/dist/es/standards-sdk.es57.js +42 -115
  373. package/dist/es/standards-sdk.es57.js.map +1 -1
  374. package/dist/es/standards-sdk.es58.js +52 -43
  375. package/dist/es/standards-sdk.es58.js.map +1 -1
  376. package/dist/es/standards-sdk.es59.js +36 -50
  377. package/dist/es/standards-sdk.es59.js.map +1 -1
  378. package/dist/es/standards-sdk.es6.js +125 -246
  379. package/dist/es/standards-sdk.es6.js.map +1 -1
  380. package/dist/es/standards-sdk.es60.js +207 -39
  381. package/dist/es/standards-sdk.es60.js.map +1 -1
  382. package/dist/es/standards-sdk.es61.js +24 -195
  383. package/dist/es/standards-sdk.es61.js.map +1 -1
  384. package/dist/es/standards-sdk.es62.js +87 -25
  385. package/dist/es/standards-sdk.es62.js.map +1 -1
  386. package/dist/es/standards-sdk.es63.js +3 -51
  387. package/dist/es/standards-sdk.es63.js.map +1 -1
  388. package/dist/es/standards-sdk.es64.js +100 -3
  389. package/dist/es/standards-sdk.es64.js.map +1 -1
  390. package/dist/es/standards-sdk.es65.js +61 -62
  391. package/dist/es/standards-sdk.es65.js.map +1 -1
  392. package/dist/es/standards-sdk.es66.js +17 -98
  393. package/dist/es/standards-sdk.es66.js.map +1 -1
  394. package/dist/es/standards-sdk.es67.js +77 -19
  395. package/dist/es/standards-sdk.es67.js.map +1 -1
  396. package/dist/es/standards-sdk.es68.js +458 -77
  397. package/dist/es/standards-sdk.es68.js.map +1 -1
  398. package/dist/es/standards-sdk.es69.js +106 -240
  399. package/dist/es/standards-sdk.es69.js.map +1 -1
  400. package/dist/es/standards-sdk.es7.js +28 -183
  401. package/dist/es/standards-sdk.es7.js.map +1 -1
  402. package/dist/es/standards-sdk.es70.js +170 -286
  403. package/dist/es/standards-sdk.es70.js.map +1 -1
  404. package/dist/es/standards-sdk.es71.js +71 -207
  405. package/dist/es/standards-sdk.es71.js.map +1 -1
  406. package/dist/es/standards-sdk.es72.js +71 -72
  407. package/dist/es/standards-sdk.es72.js.map +1 -1
  408. package/dist/es/standards-sdk.es73.js +143 -71
  409. package/dist/es/standards-sdk.es73.js.map +1 -1
  410. package/dist/es/standards-sdk.es74.js +62 -136
  411. package/dist/es/standards-sdk.es74.js.map +1 -1
  412. package/dist/es/standards-sdk.es75.js +380 -45
  413. package/dist/es/standards-sdk.es75.js.map +1 -1
  414. package/dist/es/standards-sdk.es76.js +222 -130
  415. package/dist/es/standards-sdk.es76.js.map +1 -1
  416. package/dist/es/standards-sdk.es77.js +320 -444
  417. package/dist/es/standards-sdk.es77.js.map +1 -1
  418. package/dist/es/standards-sdk.es78.js +88 -364
  419. package/dist/es/standards-sdk.es78.js.map +1 -1
  420. package/dist/es/standards-sdk.es79.js +125 -89
  421. package/dist/es/standards-sdk.es79.js.map +1 -1
  422. package/dist/es/standards-sdk.es8.js +80 -29
  423. package/dist/es/standards-sdk.es8.js.map +1 -1
  424. package/dist/es/standards-sdk.es80.js +8 -125
  425. package/dist/es/standards-sdk.es80.js.map +1 -1
  426. package/dist/es/standards-sdk.es81.js +45 -6
  427. package/dist/es/standards-sdk.es81.js.map +1 -1
  428. package/dist/es/standards-sdk.es82.js +98 -44
  429. package/dist/es/standards-sdk.es82.js.map +1 -1
  430. package/dist/es/standards-sdk.es83.js +331 -84
  431. package/dist/es/standards-sdk.es83.js.map +1 -1
  432. package/dist/es/standards-sdk.es84.js +93 -160
  433. package/dist/es/standards-sdk.es84.js.map +1 -1
  434. package/dist/es/standards-sdk.es85.js +55 -275
  435. package/dist/es/standards-sdk.es85.js.map +1 -1
  436. package/dist/es/standards-sdk.es86.js +43 -55
  437. package/dist/es/standards-sdk.es86.js.map +1 -1
  438. package/dist/es/standards-sdk.es87.js +145 -22
  439. package/dist/es/standards-sdk.es87.js.map +1 -1
  440. package/dist/es/standards-sdk.es88.js +34 -47
  441. package/dist/es/standards-sdk.es88.js.map +1 -1
  442. package/dist/es/standards-sdk.es89.js +22 -57
  443. package/dist/es/standards-sdk.es89.js.map +1 -1
  444. package/dist/es/standards-sdk.es9.js +104 -80
  445. package/dist/es/standards-sdk.es9.js.map +1 -1
  446. package/dist/es/standards-sdk.es90.js +23 -28
  447. package/dist/es/standards-sdk.es90.js.map +1 -1
  448. package/dist/es/standards-sdk.es91.js +238 -23
  449. package/dist/es/standards-sdk.es91.js.map +1 -1
  450. package/dist/es/standards-sdk.es92.js +265 -152
  451. package/dist/es/standards-sdk.es92.js.map +1 -1
  452. package/dist/es/standards-sdk.es93.js +95 -68
  453. package/dist/es/standards-sdk.es93.js.map +1 -1
  454. package/dist/es/standards-sdk.es94.js +124 -136
  455. package/dist/es/standards-sdk.es94.js.map +1 -1
  456. package/dist/es/standards-sdk.es95.js +42 -138
  457. package/dist/es/standards-sdk.es95.js.map +1 -1
  458. package/dist/es/standards-sdk.es96.js +259 -42
  459. package/dist/es/standards-sdk.es96.js.map +1 -1
  460. package/dist/es/standards-sdk.es97.js +82 -243
  461. package/dist/es/standards-sdk.es97.js.map +1 -1
  462. package/dist/es/standards-sdk.es98.js +48 -47
  463. package/dist/es/standards-sdk.es98.js.map +1 -1
  464. package/dist/es/standards-sdk.es99.js +29 -100
  465. package/dist/es/standards-sdk.es99.js.map +1 -1
  466. package/dist/es/utils/crypto-abstraction.d.ts.map +1 -1
  467. package/dist/es/utils/crypto-env.d.ts.map +1 -1
  468. package/dist/es/utils/dynamic-import.d.ts +5 -1
  469. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  470. package/dist/es/utils/hash-adapter.d.ts.map +1 -1
  471. package/package.json +15 -16
  472. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  473. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  474. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  475. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
@@ -1,60 +1,46 @@
1
- import { HieroDidResolver } from "./standards-sdk.es60.js";
2
- import { parseHcs14Did } from "./standards-sdk.es57.js";
3
- import { multibaseB58btcDecode } from "./standards-sdk.es140.js";
4
- class ResolverRegistry {
5
- constructor() {
6
- this.resolvers = [];
7
- }
8
- register(resolver) {
9
- this.resolvers.push(resolver);
1
+ import { optionalImport } from "./standards-sdk.es152.js";
2
+ const hieroResolverModuleId = ["@hiero-did-sdk", "resolver"].join("/");
3
+ let resolverPromise = null;
4
+ async function loadResolveDID() {
5
+ if (!resolverPromise) {
6
+ resolverPromise = optionalImport(
7
+ hieroResolverModuleId
8
+ ).then((mod) => mod?.resolveDID ?? null);
10
9
  }
11
- list() {
12
- return [...this.resolvers];
10
+ return resolverPromise;
11
+ }
12
+ class HieroDidResolver {
13
+ constructor() {
14
+ this.meta = {
15
+ id: "hedera/hiero-resolver",
16
+ didMethods: ["hedera"],
17
+ caip2Networks: [
18
+ "hedera:mainnet",
19
+ "hedera:testnet",
20
+ "hedera:previewnet",
21
+ "hedera:devnet"
22
+ ],
23
+ caip10Namespaces: ["hedera"],
24
+ displayName: "Hedera (Hiero Resolver)",
25
+ description: "Resolves did:hedera identifiers via Hiero DID resolver.",
26
+ homepage: "https://github.com/hiero-ledger/hiero-did-sdk-js"
27
+ };
13
28
  }
14
- filterByDidMethod(method) {
15
- return this.resolvers.filter((r) => r.meta?.didMethods?.includes(method));
29
+ supports(did) {
30
+ return did.startsWith("did:hedera:");
16
31
  }
17
- async resolveDid(did) {
18
- for (const r of this.resolvers) {
19
- if (r.supports(did)) return r.resolve(did);
20
- }
21
- return null;
22
- }
23
- async resolveUaid(uaid) {
24
- const parsed = parseHcs14Did(uaid);
25
- if (parsed.method !== "uaid") return null;
26
- const src = parsed.params["src"];
27
- if (src) {
28
- const raw = Buffer.from(multibaseB58btcDecode(src)).toString("utf8");
29
- return this.resolveDid(raw);
30
- }
31
- const id = parsed.id;
32
- if (id.startsWith("testnet:") || id.startsWith("mainnet:") || id.startsWith("previewnet:") || id.startsWith("devnet:")) {
33
- const did = `did:hedera:${id}`;
34
- return this.resolveDid(did);
35
- }
36
- const proto = parsed.params["proto"];
37
- const nativeId = parsed.params["nativeId"];
38
- if (proto === "hcs-10" && nativeId) {
39
- const match = nativeId.match(
40
- /^hedera:(mainnet|testnet|previewnet|devnet):/
32
+ async resolve(did) {
33
+ const resolveDID = await loadResolveDID();
34
+ if (!resolveDID) {
35
+ throw new Error(
36
+ "Hiero resolver unavailable. Ensure @hiero-did-sdk/resolver is installed."
41
37
  );
42
- if (match) {
43
- const network = match[1];
44
- const did = `did:hedera:${network}:${id}`;
45
- return this.resolveDid(did);
46
- }
47
38
  }
48
- return null;
39
+ const res = await resolveDID(did);
40
+ return res && typeof res.id === "string" ? { id: res.id } : null;
49
41
  }
50
42
  }
51
- const defaultResolverRegistry = new ResolverRegistry();
52
- function registerDefaultResolvers() {
53
- defaultResolverRegistry.register(new HieroDidResolver());
54
- }
55
43
  export {
56
- ResolverRegistry,
57
- defaultResolverRegistry,
58
- registerDefaultResolvers
44
+ HieroDidResolver
59
45
  };
60
46
  //# sourceMappingURL=standards-sdk.es59.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es59.js","sources":["../../src/hcs-14/resolvers/registry.ts"],"sourcesContent":["/**\n * Resolver registry for HCS-14.\n */\n\nimport { DidDocumentMinimal, DidResolver } from './types';\nimport { HieroDidResolver } from './hiero';\nimport { parseHcs14Did } from '../did';\nimport { multibaseB58btcDecode } from '../base58';\n\nexport class ResolverRegistry {\n private resolvers: DidResolver[] = [];\n\n register(resolver: DidResolver): void {\n this.resolvers.push(resolver);\n }\n\n list(): DidResolver[] {\n return [...this.resolvers];\n }\n\n filterByDidMethod(method: string): DidResolver[] {\n return this.resolvers.filter(r => r.meta?.didMethods?.includes(method));\n }\n\n async resolveDid(did: string): Promise<DidDocumentMinimal | null> {\n for (const r of this.resolvers) {\n if (r.supports(did)) return r.resolve(did);\n }\n return null;\n }\n\n async resolveUaid(uaid: string): Promise<DidDocumentMinimal | null> {\n const parsed = parseHcs14Did(uaid);\n if (parsed.method !== 'uaid') return null;\n\n const src = parsed.params['src'];\n if (src) {\n const raw = Buffer.from(multibaseB58btcDecode(src)).toString('utf8');\n return this.resolveDid(raw);\n }\n\n const id = parsed.id;\n if (\n id.startsWith('testnet:') ||\n id.startsWith('mainnet:') ||\n id.startsWith('previewnet:') ||\n id.startsWith('devnet:')\n ) {\n const did = `did:hedera:${id}`;\n return this.resolveDid(did);\n }\n\n const proto = parsed.params['proto'];\n const nativeId = parsed.params['nativeId'];\n if (proto === 'hcs-10' && nativeId) {\n const match = nativeId.match(\n /^hedera:(mainnet|testnet|previewnet|devnet):/,\n );\n if (match) {\n const network = match[1];\n const did = `did:hedera:${network}:${id}`;\n return this.resolveDid(did);\n }\n }\n\n return null;\n }\n}\n\nexport const defaultResolverRegistry = new ResolverRegistry();\n\nexport function registerDefaultResolvers(): void {\n defaultResolverRegistry.register(new HieroDidResolver());\n}\n"],"names":[],"mappings":";;;AASO,MAAM,iBAAiB;AAAA,EAAvB,cAAA;AACL,SAAQ,YAA2B,CAAA;AAAA,EAAC;AAAA,EAEpC,SAAS,UAA6B;AACpC,SAAK,UAAU,KAAK,QAAQ;AAAA,EAC9B;AAAA,EAEA,OAAsB;AACpB,WAAO,CAAC,GAAG,KAAK,SAAS;AAAA,EAC3B;AAAA,EAEA,kBAAkB,QAA+B;AAC/C,WAAO,KAAK,UAAU,OAAO,CAAA,MAAK,EAAE,MAAM,YAAY,SAAS,MAAM,CAAC;AAAA,EACxE;AAAA,EAEA,MAAM,WAAW,KAAiD;AAChE,eAAW,KAAK,KAAK,WAAW;AAC9B,UAAI,EAAE,SAAS,GAAG,EAAG,QAAO,EAAE,QAAQ,GAAG;AAAA,IAC3C;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY,MAAkD;AAClE,UAAM,SAAS,cAAc,IAAI;AACjC,QAAI,OAAO,WAAW,OAAQ,QAAO;AAErC,UAAM,MAAM,OAAO,OAAO,KAAK;AAC/B,QAAI,KAAK;AACP,YAAM,MAAM,OAAO,KAAK,sBAAsB,GAAG,CAAC,EAAE,SAAS,MAAM;AACnE,aAAO,KAAK,WAAW,GAAG;AAAA,IAC5B;AAEA,UAAM,KAAK,OAAO;AAClB,QACE,GAAG,WAAW,UAAU,KACxB,GAAG,WAAW,UAAU,KACxB,GAAG,WAAW,aAAa,KAC3B,GAAG,WAAW,SAAS,GACvB;AACA,YAAM,MAAM,cAAc,EAAE;AAC5B,aAAO,KAAK,WAAW,GAAG;AAAA,IAC5B;AAEA,UAAM,QAAQ,OAAO,OAAO,OAAO;AACnC,UAAM,WAAW,OAAO,OAAO,UAAU;AACzC,QAAI,UAAU,YAAY,UAAU;AAClC,YAAM,QAAQ,SAAS;AAAA,QACrB;AAAA,MAAA;AAEF,UAAI,OAAO;AACT,cAAM,UAAU,MAAM,CAAC;AACvB,cAAM,MAAM,cAAc,OAAO,IAAI,EAAE;AACvC,eAAO,KAAK,WAAW,GAAG;AAAA,MAC5B;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEO,MAAM,0BAA0B,IAAI,iBAAA;AAEpC,SAAS,2BAAiC;AAC/C,0BAAwB,SAAS,IAAI,kBAAkB;AACzD;"}
1
+ {"version":3,"file":"standards-sdk.es59.js","sources":["../../src/hcs-14/resolvers/hiero.ts"],"sourcesContent":["import { DidDocumentMinimal, DidResolver } from './types';\nimport type { AdapterMeta } from '../adapters/types';\nimport { optionalImport } from '../../utils/dynamic-import';\n\ntype ResolveDID = typeof import('@hiero-did-sdk/resolver').resolveDID;\ntype HieroResolverModule = typeof import('@hiero-did-sdk/resolver');\n\nconst hieroResolverModuleId = ['@hiero-did-sdk', 'resolver'].join('/');\n\nlet resolverPromise: Promise<ResolveDID | null> | null = null;\n\nasync function loadResolveDID(): Promise<ResolveDID | null> {\n if (!resolverPromise) {\n resolverPromise = optionalImport<HieroResolverModule>(\n hieroResolverModuleId,\n ).then(mod => mod?.resolveDID ?? null);\n }\n return resolverPromise;\n}\n\nexport class HieroDidResolver implements DidResolver {\n readonly meta: AdapterMeta = {\n id: 'hedera/hiero-resolver',\n didMethods: ['hedera'],\n caip2Networks: [\n 'hedera:mainnet',\n 'hedera:testnet',\n 'hedera:previewnet',\n 'hedera:devnet',\n ],\n caip10Namespaces: ['hedera'],\n displayName: 'Hedera (Hiero Resolver)',\n description: 'Resolves did:hedera identifiers via Hiero DID resolver.',\n homepage: 'https://github.com/hiero-ledger/hiero-did-sdk-js',\n };\n supports(did: string): boolean {\n return did.startsWith('did:hedera:');\n }\n\n async resolve(did: string): Promise<DidDocumentMinimal | null> {\n const resolveDID = await loadResolveDID();\n if (!resolveDID) {\n throw new Error(\n 'Hiero resolver unavailable. Ensure @hiero-did-sdk/resolver is installed.',\n );\n }\n const res = await resolveDID(did as Parameters<ResolveDID>[0]);\n return res && typeof res.id === 'string' ? { id: res.id } : null;\n }\n}\n"],"names":[],"mappings":";AAOA,MAAM,wBAAwB,CAAC,kBAAkB,UAAU,EAAE,KAAK,GAAG;AAErE,IAAI,kBAAqD;AAEzD,eAAe,iBAA6C;AAC1D,MAAI,CAAC,iBAAiB;AACpB,sBAAkB;AAAA,MAChB;AAAA,IAAA,EACA,KAAK,CAAA,QAAO,KAAK,cAAc,IAAI;AAAA,EACvC;AACA,SAAO;AACT;AAEO,MAAM,iBAAwC;AAAA,EAA9C,cAAA;AACL,SAAS,OAAoB;AAAA,MAC3B,IAAI;AAAA,MACJ,YAAY,CAAC,QAAQ;AAAA,MACrB,eAAe;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,kBAAkB,CAAC,QAAQ;AAAA,MAC3B,aAAa;AAAA,MACb,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EACA,SAAS,KAAsB;AAC7B,WAAO,IAAI,WAAW,aAAa;AAAA,EACrC;AAAA,EAEA,MAAM,QAAQ,KAAiD;AAC7D,UAAM,aAAa,MAAM,eAAA;AACzB,QAAI,CAAC,YAAY;AACf,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAAA,IAEJ;AACA,UAAM,MAAM,MAAM,WAAW,GAAgC;AAC7D,WAAO,OAAO,OAAO,IAAI,OAAO,WAAW,EAAE,IAAI,IAAI,GAAA,IAAO;AAAA,EAC9D;AACF;"}
@@ -1,278 +1,157 @@
1
- import { HCS6BaseClient } from "./standards-sdk.es7.js";
2
- import { HCS6RegistryType } from "./standards-sdk.es4.js";
3
- import { inscribeWithSigner } from "./standards-sdk.es125.js";
4
- import { getTopicId } from "./standards-sdk.es115.js";
5
- class HCS6BrowserClient extends HCS6BaseClient {
1
+ import { Logger } from "./standards-sdk.es105.js";
2
+ import { HederaMirrorNode } from "./standards-sdk.es126.js";
3
+ import { HCS6RegistryType, validateHCS6TTL, generateHCS6RegistryMemo, hcs6MessageSchema, HCS6Operation } from "./standards-sdk.es3.js";
4
+ import { ZodError } from "zod";
5
+ class HCS6BaseClient {
6
6
  /**
7
- * Create a new HCS-6 browser client
7
+ * Create a new HCS-6 base client
8
8
  * @param config Client configuration
9
9
  */
10
10
  constructor(config) {
11
- super(config);
12
- this.hwc = config.hwc;
13
- this.signer = config.signer;
14
- }
15
- ensureConnected() {
16
- const info = this.hwc.getAccountInfo();
17
- const accountId = info?.accountId;
18
- if (!accountId) {
19
- throw new Error(
20
- "No active wallet connection: wallet integration required to perform write operations"
21
- );
22
- }
23
- return accountId;
24
- }
25
- getSigner() {
26
- const explicit = this.signer;
27
- if (explicit) {
28
- return explicit;
29
- }
30
- this.ensureConnected();
31
- const dc = this.hwc.dAppConnector;
32
- const signer = dc?.signers?.[0];
33
- if (!signer) {
34
- throw new Error("No active wallet signer");
35
- }
36
- return signer;
11
+ this.network = config.network;
12
+ this.logger = config.logger || Logger.getInstance({
13
+ level: config.logLevel || "info",
14
+ module: "HCS6Client",
15
+ silent: config.silent
16
+ });
17
+ this.mirrorNode = new HederaMirrorNode(
18
+ this.network,
19
+ this.logger,
20
+ config.mirrorNodeUrl ? { customUrl: config.mirrorNodeUrl } : void 0
21
+ );
37
22
  }
38
23
  /**
39
- * Create a new HCS-6 registry topic (for dynamic hashinals)
40
- * Note: In browser environment, this would typically be called through a wallet or proxy service
41
- * @param options Registry creation options
42
- * @returns Promise resolving to the transaction result
24
+ * Determine the registry type from a topic memo (HCS-6 specific)
25
+ * @param memo The topic memo
26
+ * @returns The registry type or undefined if not found
43
27
  */
44
- async createRegistry(options) {
28
+ parseRegistryTypeFromMemo(memo) {
45
29
  try {
46
- this.ensureConnected();
47
- const ttl = options?.ttl ?? 86400;
48
- const memo = this.generateRegistryMemo(ttl);
49
- const topicId = await this.hwc.createTopic(memo);
50
- this.logger.info(
51
- `Created HCS-6 registry topic via wallet: ${topicId} (TTL ${ttl})`
52
- );
53
- return { success: true, topicId };
30
+ const regex = /hcs-6:(\d):(\d+)/;
31
+ const match = memo.match(regex);
32
+ if (match && match.length === 3) {
33
+ const registryType = parseInt(match[1]);
34
+ const ttl = parseInt(match[2]);
35
+ if (registryType === HCS6RegistryType.NON_INDEXED && validateHCS6TTL(ttl)) {
36
+ return { registryType, ttl };
37
+ }
38
+ }
39
+ return void 0;
54
40
  } catch (error) {
55
- this.logger.error(`Failed to create HCS-6 registry: ${error}`);
56
- return { success: false, error: String(error) };
41
+ this.logger.error(
42
+ `Error parsing HCS-6 registry type from memo: ${error}`
43
+ );
44
+ return void 0;
57
45
  }
58
46
  }
59
47
  /**
60
- * Register a new dynamic hashinal update in the registry
61
- * Note: In browser environment, this would typically be called through a wallet or proxy service
62
- * @param registryTopicId The topic ID of the HCS-6 registry
63
- * @param options Registration options
64
- * @returns Promise resolving to the operation result
48
+ * Generate a memo string for a HCS-6 registry topic
49
+ * @param ttl The time-to-live in seconds
50
+ * @returns The memo string
65
51
  */
66
- async registerEntry(registryTopicId, options) {
67
- try {
68
- const valid = await this.validateHCS6Topic(registryTopicId);
69
- if (!valid) {
70
- throw new Error(
71
- `Topic ${registryTopicId} is not a valid HCS-6 registry`
72
- );
73
- }
74
- const message = this.createRegisterMessage(
75
- options.targetTopicId,
76
- options.memo
77
- );
78
- const receipt = await this.submitMessage(registryTopicId, message);
79
- const seqField = receipt.topicSequenceNumber;
80
- const sequenceNumber = typeof seqField === "number" ? seqField : seqField?.low;
81
- return { success: true, receipt, sequenceNumber };
82
- } catch (error) {
83
- this.logger.error(`Failed to register HCS-6 entry: ${error}`);
84
- return { success: false, error: String(error) };
85
- }
52
+ generateRegistryMemo(ttl) {
53
+ return generateHCS6RegistryMemo(ttl);
86
54
  }
87
55
  /**
88
- * Get the latest entry from a HCS-6 registry (non-indexed, so only latest matters)
89
- * @param topicId The topic ID of the registry
90
- * @param options Query options
91
- * @returns Promise resolving to the registry information
56
+ * Validate a HCS-6 message
57
+ * @param message The message to validate
58
+ * @returns Validation result
92
59
  */
93
- async getRegistry(topicId, options = {}) {
60
+ validateMessage(message) {
94
61
  try {
95
- const topicInfo = await this.mirrorNode.getTopicInfo(topicId);
96
- this.logger.debug(
97
- `Retrieved topic info for HCS-6 ${topicId}: ${JSON.stringify(topicInfo)}`
98
- );
99
- const memoInfo = this.parseRegistryTypeFromMemo(topicInfo.memo);
100
- if (!memoInfo) {
101
- throw new Error(
102
- `Topic ${topicId} is not an HCS-6 registry (invalid memo format)`
103
- );
62
+ hcs6MessageSchema.parse(message);
63
+ return { valid: true, errors: [] };
64
+ } catch (error) {
65
+ const errors = [];
66
+ if (error instanceof ZodError) {
67
+ error.errors.forEach((err) => {
68
+ const path = err.path.join(".");
69
+ errors.push(`${path ? path + ": " : ""}${err.message}`);
70
+ });
71
+ } else {
72
+ errors.push(`Unexpected error: ${error}`);
104
73
  }
105
74
  this.logger.debug(
106
- `Retrieving messages for HCS-6 topic ${topicId} with limit ${options.limit ?? 100}`
107
- );
108
- const rawMessagesResult = await this.mirrorNode.getTopicMessages(
109
- topicId,
110
- {
111
- sequenceNumber: options.skip && options.skip > 0 ? `gt:${options.skip}` : void 0,
112
- limit: options.limit ?? 100,
113
- order: options.order ?? "asc"
114
- }
75
+ `HCS-6 message validation failed: ${errors.join(", ")}`
115
76
  );
116
- const rawMessages = options.limit ? rawMessagesResult.slice(0, options.limit) : rawMessagesResult;
117
- this.logger.debug(
118
- `Retrieved ${rawMessagesResult.length} messages, using ${rawMessages.length} after applying limit.`
119
- );
120
- return this.parseRegistryEntries(
121
- topicId,
122
- rawMessages,
123
- memoInfo.registryType,
124
- memoInfo.ttl
125
- );
126
- } catch (error) {
127
- this.logger.error(`Failed to get HCS-6 registry: ${error}`);
128
- throw error;
77
+ return { valid: false, errors };
129
78
  }
130
79
  }
131
80
  /**
132
- * Submit a message to a HCS-6 topic
133
- * Note: In browser environment, this would typically be called through a wallet or proxy service
134
- * @param topicId The topic ID to submit to
135
- * @param payload The message payload
136
- * @returns Promise resolving to the transaction receipt
81
+ * Create a HCS-6 register message
82
+ * @param targetTopicId The target HCS-1 topic ID
83
+ * @param memo Optional memo
84
+ * @returns The register message
137
85
  */
138
- async submitMessage(topicId, payload) {
139
- this.ensureConnected();
140
- const { valid, errors } = this.validateMessage(payload);
141
- if (!valid) {
142
- throw new Error(`Invalid HCS-6 message: ${errors.join(", ")}`);
143
- }
144
- const receipt = await this.hwc.submitMessageToTopic(
145
- topicId,
146
- JSON.stringify(payload)
147
- );
148
- return receipt;
86
+ createRegisterMessage(targetTopicId, memo) {
87
+ return {
88
+ p: "hcs-6",
89
+ op: HCS6Operation.REGISTER,
90
+ t_id: targetTopicId,
91
+ m: memo
92
+ };
149
93
  }
150
94
  /**
151
- * Create a complete dynamic hashinal with inscription and registry
152
- * Note: In browser environment, this would typically be called through a wallet or proxy service
153
- * @param options Options for creating the dynamic hashinal
154
- * @returns Promise resolving to the creation response
95
+ * Parse HCS-6 registry entries from topic messages
96
+ * @param topicId The topic ID
97
+ * @param messages The messages to parse
98
+ * @param registryType The registry type
99
+ * @param ttl The time-to-live in seconds
100
+ * @returns The parsed registry
155
101
  */
156
- async createHashinal(options) {
157
- try {
158
- if (!this.signer) {
159
- return {
160
- success: false,
161
- error: "No signer configured for browser createHashinal"
162
- };
163
- }
164
- const inscriptionOptions = {
165
- ...options.inscriptionOptions,
166
- mode: "hashinal",
167
- metadata: options.metadata,
168
- waitForConfirmation: true,
169
- network: this.network
170
- };
171
- const input = {
172
- type: "buffer",
173
- buffer: Buffer.from(JSON.stringify(options.metadata)),
174
- fileName: "metadata.json",
175
- mimeType: "application/json"
176
- };
177
- const res = await inscribeWithSigner(
178
- input,
179
- this.signer,
180
- inscriptionOptions
181
- );
182
- const inscriptionTopicId = res.inscription?.jsonTopicId || getTopicId(res.inscription);
183
- if (!inscriptionTopicId) {
184
- return { success: false, error: "Failed to inscribe metadata" };
185
- }
186
- let registryTopicId = options.registryTopicId;
187
- if (!registryTopicId) {
188
- const reg = await this.createRegistry({ ttl: options.ttl });
189
- if (!reg.success || !reg.topicId)
190
- return { success: false, error: reg.error };
191
- registryTopicId = reg.topicId;
192
- }
193
- const regRes = await this.registerEntry(registryTopicId, {
194
- targetTopicId: inscriptionTopicId,
195
- memo: options.memo || "Initial dynamic hashinal registration"
196
- });
197
- if (!regRes.success) return { success: false, error: regRes.error };
198
- return {
199
- success: true,
200
- registryTopicId,
201
- inscriptionTopicId
202
- };
203
- } catch (error) {
204
- this.logger.error(`Failed to create dynamic hashinal: ${error}`);
205
- return { success: false, error: String(error) };
206
- }
207
- }
208
- /**
209
- * Register a dynamic hashinal with combined inscription and registry creation
210
- * Note: In browser environment, this would typically be called through a wallet or proxy service
211
- * @param options Options for registering the dynamic hashinal
212
- * @returns Promise resolving to the creation response
213
- */
214
- async register(options) {
215
- try {
216
- if (!this.signer) {
217
- return {
218
- success: false,
219
- error: "No signer configured for browser register"
220
- };
221
- }
222
- let input;
223
- if (options.data?.base64) {
224
- input = {
225
- type: "buffer",
226
- buffer: Buffer.from(options.data.base64, "base64"),
227
- fileName: "data." + (options.data.mimeType?.split("/")[1] || "bin"),
228
- mimeType: options.data.mimeType || "application/octet-stream"
229
- };
230
- } else if (options.data?.url) {
231
- input = { type: "url", url: options.data.url };
232
- } else {
233
- input = {
234
- type: "buffer",
235
- buffer: Buffer.from(JSON.stringify(options.metadata)),
236
- fileName: "metadata.json",
237
- mimeType: "application/json"
102
+ parseRegistryEntries(topicId, messages, registryType, ttl) {
103
+ const entries = [];
104
+ let latestEntry;
105
+ this.logger.debug(
106
+ `Parsing ${messages.length} messages for HCS-6 topic ${topicId}`
107
+ );
108
+ for (const msg of messages) {
109
+ try {
110
+ if (!msg.message) {
111
+ this.logger.debug(
112
+ `Message is missing 'message' property: ${JSON.stringify(msg)}`
113
+ );
114
+ continue;
115
+ }
116
+ const decodedMessage = Buffer.from(msg.message, "base64").toString(
117
+ "utf-8"
118
+ );
119
+ const message = JSON.parse(decodedMessage);
120
+ this.logger.debug(
121
+ `Successfully parsed HCS-6 message: ${JSON.stringify(message)}`
122
+ );
123
+ const { valid, errors } = this.validateMessage(message);
124
+ if (!valid) {
125
+ this.logger.warn(`Invalid HCS-6 message: ${errors.join(", ")}`);
126
+ continue;
127
+ }
128
+ const entry = {
129
+ topicId,
130
+ sequence: msg.sequence_number,
131
+ timestamp: msg.consensus_timestamp,
132
+ payer: msg.payer_account_id,
133
+ message,
134
+ consensus_timestamp: msg.consensus_timestamp,
135
+ registry_type: registryType
238
136
  };
137
+ entries.push(entry);
138
+ if (!latestEntry || entry.timestamp > latestEntry.timestamp) {
139
+ latestEntry = entry;
140
+ }
141
+ } catch (error) {
142
+ this.logger.warn(`Error parsing HCS-6 message: ${error}`);
239
143
  }
240
- const inscriptionOptions = {
241
- ...options.inscriptionOptions,
242
- mode: "hashinal",
243
- metadata: options.metadata,
244
- waitForConfirmation: true,
245
- network: this.network
246
- };
247
- const res = await inscribeWithSigner(
248
- input,
249
- this.signer,
250
- inscriptionOptions
251
- );
252
- const inscriptionTopicId = res.inscription?.jsonTopicId || getTopicId(res.inscription);
253
- if (!inscriptionTopicId)
254
- return { success: false, error: "Failed to inscribe data" };
255
- let registryTopicId = options.registryTopicId;
256
- if (!registryTopicId) {
257
- const reg = await this.createRegistry({ ttl: options.ttl });
258
- if (!reg.success || !reg.topicId)
259
- return { success: false, error: reg.error };
260
- registryTopicId = reg.topicId;
261
- }
262
- const regRes = await this.registerEntry(registryTopicId, {
263
- targetTopicId: inscriptionTopicId,
264
- memo: options.memo || "Dynamic hashinal registration"
265
- });
266
- if (!regRes.success) return { success: false, error: regRes.error };
267
- return {
268
- success: true,
269
- registryTopicId,
270
- inscriptionTopicId
271
- };
272
- } catch (error) {
273
- this.logger.error(`Failed to register dynamic hashinal: ${error}`);
274
- return { success: false, error: String(error) };
275
144
  }
145
+ this.logger.debug(
146
+ `Parsed ${entries.length} valid entries for HCS-6 topic ${topicId}`
147
+ );
148
+ return {
149
+ topicId,
150
+ registryType,
151
+ ttl,
152
+ entries: latestEntry ? [latestEntry] : [],
153
+ latestEntry
154
+ };
276
155
  }
277
156
  /**
278
157
  * Validate that a topic is a valid HCS-6 registry
@@ -303,6 +182,6 @@ class HCS6BrowserClient extends HCS6BaseClient {
303
182
  }
304
183
  }
305
184
  export {
306
- HCS6BrowserClient
185
+ HCS6BaseClient
307
186
  };
308
187
  //# sourceMappingURL=standards-sdk.es6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es6.js","sources":["../../src/hcs-6/browser.ts"],"sourcesContent":["import { HCS6BaseClient } from './base-client';\nimport {\n HCS6ClientConfig,\n HCS6Message,\n HCS6TopicRegistrationResponse,\n HCS6RegistryOperationResponse,\n HCS6TopicRegistry,\n HCS6CreateRegistryOptions,\n HCS6RegisterEntryOptions,\n HCS6QueryRegistryOptions,\n HCS6CreateHashinalOptions,\n HCS6CreateHashinalResponse,\n HCS6RegisterOptions,\n HCS6RegistryType,\n} from './types';\nimport type { DAppSigner } from '@hashgraph/hedera-wallet-connect';\nimport { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport { TransactionReceipt } from '@hashgraph/sdk';\nimport {\n inscribeWithSigner,\n type InscriptionInput,\n type InscriptionOptions,\n type InscriptionResponse,\n} from '../inscribe/inscriber';\nimport { getTopicId as getInscriptionTopicId } from '../utils/topic-id-utils';\n\n/**\n * Browser client configuration for HCS-6\n */\nexport interface BrowserHCS6ClientConfig extends HCS6ClientConfig {\n hwc: HashinalsWalletConnectSDK;\n signer?: DAppSigner;\n}\n\n/**\n * Browser client for HCS-6 operations\n * This client is designed to work in browser environments where direct key management is not available\n */\nexport class HCS6BrowserClient extends HCS6BaseClient {\n private hwc: HashinalsWalletConnectSDK;\n private signer?: DAppSigner;\n /**\n * Create a new HCS-6 browser client\n * @param config Client configuration\n */\n constructor(config: BrowserHCS6ClientConfig) {\n super(config);\n this.hwc = config.hwc;\n this.signer = config.signer;\n }\n\n private ensureConnected(): string {\n const info = this.hwc.getAccountInfo();\n const accountId = info?.accountId;\n if (!accountId) {\n throw new Error(\n 'No active wallet connection: wallet integration required to perform write operations',\n );\n }\n return accountId;\n }\n\n public getSigner(): DAppSigner {\n const explicit = this.signer;\n if (explicit) {\n return explicit;\n }\n this.ensureConnected();\n const dc = this.hwc.dAppConnector;\n const signer = dc?.signers?.[0];\n if (!signer) {\n throw new Error('No active wallet signer');\n }\n return signer;\n }\n\n /**\n * Create a new HCS-6 registry topic (for dynamic hashinals)\n * Note: In browser environment, this would typically be called through a wallet or proxy service\n * @param options Registry creation options\n * @returns Promise resolving to the transaction result\n */\n async createRegistry(\n options: HCS6CreateRegistryOptions,\n ): Promise<HCS6TopicRegistrationResponse> {\n try {\n this.ensureConnected();\n const ttl = options?.ttl ?? 86400;\n const memo = this.generateRegistryMemo(ttl);\n const topicId = await this.hwc.createTopic(memo);\n this.logger.info(\n `Created HCS-6 registry topic via wallet: ${topicId} (TTL ${ttl})`,\n );\n return { success: true, topicId };\n } catch (error) {\n this.logger.error(`Failed to create HCS-6 registry: ${error}`);\n return { success: false, error: String(error) };\n }\n }\n\n /**\n * Register a new dynamic hashinal update in the registry\n * Note: In browser environment, this would typically be called through a wallet or proxy service\n * @param registryTopicId The topic ID of the HCS-6 registry\n * @param options Registration options\n * @returns Promise resolving to the operation result\n */\n async registerEntry(\n registryTopicId: string,\n options: HCS6RegisterEntryOptions,\n ): Promise<HCS6RegistryOperationResponse> {\n try {\n const valid = await this.validateHCS6Topic(registryTopicId);\n if (!valid) {\n throw new Error(\n `Topic ${registryTopicId} is not a valid HCS-6 registry`,\n );\n }\n\n const message = this.createRegisterMessage(\n options.targetTopicId,\n options.memo,\n );\n const receipt = await this.submitMessage(registryTopicId, message);\n const seqField = receipt.topicSequenceNumber as\n | number\n | { low: number }\n | undefined;\n const sequenceNumber =\n typeof seqField === 'number' ? seqField : seqField?.low;\n return { success: true, receipt, sequenceNumber };\n } catch (error) {\n this.logger.error(`Failed to register HCS-6 entry: ${error}`);\n return { success: false, error: String(error) };\n }\n }\n\n /**\n * Get the latest entry from a HCS-6 registry (non-indexed, so only latest matters)\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: HCS6QueryRegistryOptions = {},\n ): Promise<HCS6TopicRegistry> {\n try {\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n this.logger.debug(\n `Retrieved topic info for HCS-6 ${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-6 registry (invalid memo format)`,\n );\n }\n\n this.logger.debug(\n `Retrieving messages for HCS-6 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 unknown as Array<{\n message?: string;\n sequence_number: number;\n consensus_timestamp: string;\n payer_account_id: string;\n }>;\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 return this.parseRegistryEntries(\n topicId,\n rawMessages,\n memoInfo.registryType,\n memoInfo.ttl,\n );\n } catch (error) {\n this.logger.error(`Failed to get HCS-6 registry: ${error}`);\n throw error;\n }\n }\n\n /**\n * Submit a message to a HCS-6 topic\n * Note: In browser environment, this would typically be called through a wallet or proxy service\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: HCS6Message,\n ): Promise<TransactionReceipt> {\n this.ensureConnected();\n const { valid, errors } = this.validateMessage(payload);\n if (!valid) {\n throw new Error(`Invalid HCS-6 message: ${errors.join(', ')}`);\n }\n const receipt = await this.hwc.submitMessageToTopic(\n topicId,\n JSON.stringify(payload),\n );\n return receipt;\n }\n\n /**\n * Create a complete dynamic hashinal with inscription and registry\n * Note: In browser environment, this would typically be called through a wallet or proxy service\n * @param options Options for creating the dynamic hashinal\n * @returns Promise resolving to the creation response\n */\n async createHashinal(\n options: HCS6CreateHashinalOptions,\n ): Promise<HCS6CreateHashinalResponse> {\n try {\n if (!this.signer) {\n return {\n success: false,\n error: 'No signer configured for browser createHashinal',\n };\n }\n\n const inscriptionOptions: InscriptionOptions = {\n ...(options.inscriptionOptions as InscriptionOptions | undefined),\n mode: 'hashinal',\n metadata: options.metadata,\n waitForConfirmation: true,\n network: this.network,\n };\n\n const input: InscriptionInput = {\n type: 'buffer',\n buffer: Buffer.from(JSON.stringify(options.metadata)),\n fileName: 'metadata.json',\n mimeType: 'application/json',\n };\n\n const res: InscriptionResponse = await inscribeWithSigner(\n input,\n this.signer,\n inscriptionOptions,\n );\n const inscriptionTopicId =\n res.inscription?.jsonTopicId || getInscriptionTopicId(res.inscription);\n if (!inscriptionTopicId) {\n return { success: false, error: 'Failed to inscribe metadata' };\n }\n\n let registryTopicId = options.registryTopicId;\n if (!registryTopicId) {\n const reg = await this.createRegistry({ ttl: options.ttl });\n if (!reg.success || !reg.topicId)\n return { success: false, error: reg.error };\n registryTopicId = reg.topicId;\n }\n\n const regRes = await this.registerEntry(registryTopicId, {\n targetTopicId: inscriptionTopicId,\n memo: options.memo || 'Initial dynamic hashinal registration',\n });\n if (!regRes.success) return { success: false, error: regRes.error };\n\n return {\n success: true,\n registryTopicId,\n inscriptionTopicId,\n };\n } catch (error) {\n this.logger.error(`Failed to create dynamic hashinal: ${error}`);\n return { success: false, error: String(error) };\n }\n }\n\n /**\n * Register a dynamic hashinal with combined inscription and registry creation\n * Note: In browser environment, this would typically be called through a wallet or proxy service\n * @param options Options for registering the dynamic hashinal\n * @returns Promise resolving to the creation response\n */\n async register(\n options: HCS6RegisterOptions,\n ): Promise<HCS6CreateHashinalResponse> {\n try {\n if (!this.signer) {\n return {\n success: false,\n error: 'No signer configured for browser register',\n };\n }\n\n let input: InscriptionInput;\n if (options.data?.base64) {\n input = {\n type: 'buffer',\n buffer: Buffer.from(options.data.base64, 'base64'),\n fileName: 'data.' + (options.data.mimeType?.split('/')[1] || 'bin'),\n mimeType: options.data.mimeType || 'application/octet-stream',\n };\n } else if (options.data?.url) {\n input = { type: 'url', url: options.data.url };\n } else {\n input = {\n type: 'buffer',\n buffer: Buffer.from(JSON.stringify(options.metadata)),\n fileName: 'metadata.json',\n mimeType: 'application/json',\n };\n }\n\n const inscriptionOptions: InscriptionOptions = {\n ...(options.inscriptionOptions as InscriptionOptions | undefined),\n mode: 'hashinal',\n metadata: options.metadata,\n waitForConfirmation: true,\n network: this.network,\n };\n\n const res: InscriptionResponse = await inscribeWithSigner(\n input,\n this.signer,\n inscriptionOptions,\n );\n const inscriptionTopicId =\n res.inscription?.jsonTopicId || getInscriptionTopicId(res.inscription);\n if (!inscriptionTopicId)\n return { success: false, error: 'Failed to inscribe data' };\n\n let registryTopicId = options.registryTopicId;\n if (!registryTopicId) {\n const reg = await this.createRegistry({ ttl: options.ttl });\n if (!reg.success || !reg.topicId)\n return { success: false, error: reg.error };\n registryTopicId = reg.topicId;\n }\n\n const regRes = await this.registerEntry(registryTopicId, {\n targetTopicId: inscriptionTopicId,\n memo: options.memo || 'Dynamic hashinal registration',\n });\n if (!regRes.success) return { success: false, error: regRes.error };\n\n return {\n success: true,\n registryTopicId,\n inscriptionTopicId,\n };\n } catch (error) {\n this.logger.error(`Failed to register dynamic hashinal: ${error}`);\n return { success: false, error: String(error) };\n }\n }\n\n /**\n * Validate that a topic is a valid HCS-6 registry\n * @param topicId The topic ID to validate\n * @returns Promise resolving to true if valid, false otherwise\n */\n async validateHCS6Topic(topicId: string): Promise<boolean> {\n try {\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n const memoInfo = this.parseRegistryTypeFromMemo(topicInfo.memo);\n\n if (!memoInfo) {\n this.logger.warn(\n `Topic ${topicId} is not a valid HCS-6 registry (invalid memo format)`,\n );\n return false;\n }\n\n if (memoInfo.registryType !== HCS6RegistryType.NON_INDEXED) {\n this.logger.warn(\n `Topic ${topicId} is not a valid HCS-6 registry (must be non-indexed)`,\n );\n return false;\n }\n\n return true;\n } catch (error) {\n this.logger.error(`Error validating HCS-6 topic ${topicId}: ${error}`);\n return false;\n }\n }\n}\n"],"names":["getInscriptionTopicId"],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es6.js","sources":["../../src/hcs-6/base-client.ts"],"sourcesContent":["import { Logger, ILogger } from '../utils/logger';\nimport { HederaMirrorNode } from '../services/mirror-node';\nimport {\n HCS6ClientConfig,\n HCS6Message,\n HCS6Operation,\n HCS6RegisterMessage,\n HCS6RegistryType,\n HCS6TopicRegistrationResponse,\n HCS6RegistryOperationResponse,\n HCS6TopicRegistry,\n HCS6CreateRegistryOptions,\n HCS6RegisterEntryOptions,\n HCS6QueryRegistryOptions,\n HCS6RegistryEntry,\n HCS6CreateHashinalOptions,\n HCS6CreateHashinalResponse,\n HCS6RegisterOptions,\n hcs6MessageSchema,\n validateHCS6TTL,\n generateHCS6RegistryMemo,\n} from './types';\nimport { TransactionReceipt } from '@hashgraph/sdk';\nimport { NetworkType } from '../utils/types';\nimport { ZodError } from 'zod';\n\n/**\n * Base client for HCS-6 operations\n * This abstract class provides shared functionality for both SDK and browser implementations\n */\nexport abstract class HCS6BaseClient {\n protected logger: ILogger;\n protected mirrorNode: HederaMirrorNode;\n protected network: NetworkType;\n\n /**\n * Create a new HCS-6 base client\n * @param config Client configuration\n */\n constructor(config: HCS6ClientConfig) {\n this.network = config.network;\n\n this.logger =\n config.logger ||\n Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS6Client',\n silent: config.silent,\n });\n\n this.mirrorNode = new HederaMirrorNode(\n this.network,\n this.logger,\n config.mirrorNodeUrl ? { customUrl: config.mirrorNodeUrl } : undefined,\n );\n }\n\n /**\n * Create a new HCS-6 registry topic (for dynamic hashinals)\n * @param options Registry creation options\n * @returns Promise resolving to the transaction result\n */\n abstract createRegistry(\n options: HCS6CreateRegistryOptions,\n ): Promise<HCS6TopicRegistrationResponse>;\n\n /**\n * Register a new dynamic hashinal update in the registry\n * @param registryTopicId The topic ID of the HCS-6 registry\n * @param options Registration options\n * @returns Promise resolving to the operation result\n */\n abstract registerEntry(\n registryTopicId: string,\n options: HCS6RegisterEntryOptions,\n ): Promise<HCS6RegistryOperationResponse>;\n\n /**\n * Get the latest entry from a HCS-6 registry (non-indexed, so only latest matters)\n * @param topicId The topic ID of the registry\n * @param options Query options\n * @returns Promise resolving to the registry information\n */\n abstract getRegistry(\n topicId: string,\n options?: HCS6QueryRegistryOptions,\n ): Promise<HCS6TopicRegistry>;\n\n /**\n * Submit a message to a HCS-6 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 abstract submitMessage(\n topicId: string,\n payload: HCS6Message,\n ): Promise<TransactionReceipt>;\n\n /**\n * Create a complete dynamic hashinal with inscription and registry\n * @param options Options for creating the dynamic hashinal\n * @returns Promise resolving to the creation response\n */\n abstract createHashinal(\n options: HCS6CreateHashinalOptions,\n ): Promise<HCS6CreateHashinalResponse>;\n\n /**\n * Register a dynamic hashinal with combined inscription and registry creation\n * @param options Options for registering the dynamic hashinal\n * @returns Promise resolving to the creation response\n */\n abstract register(\n options: HCS6RegisterOptions,\n ): Promise<HCS6CreateHashinalResponse>;\n\n /**\n * Determine the registry type from a topic memo (HCS-6 specific)\n * @param memo The topic memo\n * @returns The registry type or undefined if not found\n */\n protected parseRegistryTypeFromMemo(\n memo: string,\n ): { registryType: HCS6RegistryType; ttl: number } | undefined {\n try {\n const regex = /hcs-6:(\\d):(\\d+)/;\n const match = memo.match(regex);\n\n if (match && match.length === 3) {\n const registryType = parseInt(match[1]) as HCS6RegistryType;\n const ttl = parseInt(match[2]);\n\n if (\n registryType === HCS6RegistryType.NON_INDEXED &&\n validateHCS6TTL(ttl)\n ) {\n return { registryType, ttl };\n }\n }\n\n return undefined;\n } catch (error) {\n this.logger.error(\n `Error parsing HCS-6 registry type from memo: ${error}`,\n );\n return undefined;\n }\n }\n\n /**\n * Generate a memo string for a HCS-6 registry topic\n * @param ttl The time-to-live in seconds\n * @returns The memo string\n */\n protected generateRegistryMemo(ttl: number): string {\n return generateHCS6RegistryMemo(ttl);\n }\n\n /**\n * Validate a HCS-6 message\n * @param message The message to validate\n * @returns Validation result\n */\n protected validateMessage(message: unknown): {\n valid: boolean;\n errors: string[];\n } {\n try {\n hcs6MessageSchema.parse(message);\n return { valid: true, errors: [] };\n } catch (error) {\n const errors: string[] = [];\n\n if (error instanceof ZodError) {\n error.errors.forEach(err => {\n const path = err.path.join('.');\n errors.push(`${path ? path + ': ' : ''}${err.message}`);\n });\n } else {\n errors.push(`Unexpected error: ${error}`);\n }\n\n this.logger.debug(\n `HCS-6 message validation failed: ${errors.join(', ')}`,\n );\n return { valid: false, errors };\n }\n }\n\n /**\n * Create a HCS-6 register message\n * @param targetTopicId The target HCS-1 topic ID\n * @param memo Optional memo\n * @returns The register message\n */\n protected createRegisterMessage(\n targetTopicId: string,\n memo?: string,\n ): HCS6RegisterMessage {\n return {\n p: 'hcs-6',\n op: HCS6Operation.REGISTER,\n t_id: targetTopicId,\n m: memo,\n };\n }\n\n /**\n * Parse HCS-6 registry entries from topic messages\n * @param topicId The topic ID\n * @param messages The messages to parse\n * @param registryType The registry type\n * @param ttl The time-to-live in seconds\n * @returns The parsed registry\n */\n protected parseRegistryEntries(\n topicId: string,\n messages: Array<{\n message?: string;\n sequence_number: number;\n consensus_timestamp: string;\n payer_account_id: string;\n }>,\n registryType: HCS6RegistryType,\n ttl: number,\n ): HCS6TopicRegistry {\n const entries: HCS6RegistryEntry[] = [];\n let latestEntry: HCS6RegistryEntry | undefined;\n\n this.logger.debug(\n `Parsing ${messages.length} messages for HCS-6 topic ${topicId}`,\n );\n\n for (const msg of messages) {\n try {\n if (!msg.message) {\n this.logger.debug(\n `Message is missing 'message' property: ${JSON.stringify(msg)}`,\n );\n continue;\n }\n\n const decodedMessage = Buffer.from(msg.message, 'base64').toString(\n 'utf-8',\n );\n const message = JSON.parse(decodedMessage) as HCS6Message;\n\n this.logger.debug(\n `Successfully parsed HCS-6 message: ${JSON.stringify(message)}`,\n );\n\n const { valid, errors } = this.validateMessage(message);\n if (!valid) {\n this.logger.warn(`Invalid HCS-6 message: ${errors.join(', ')}`);\n continue;\n }\n\n const entry: HCS6RegistryEntry = {\n topicId,\n sequence: msg.sequence_number,\n timestamp: msg.consensus_timestamp,\n payer: msg.payer_account_id,\n message,\n consensus_timestamp: msg.consensus_timestamp,\n registry_type: registryType,\n };\n\n entries.push(entry);\n\n if (!latestEntry || entry.timestamp > latestEntry.timestamp) {\n latestEntry = entry;\n }\n } catch (error) {\n this.logger.warn(`Error parsing HCS-6 message: ${error}`);\n }\n }\n\n this.logger.debug(\n `Parsed ${entries.length} valid entries for HCS-6 topic ${topicId}`,\n );\n\n return {\n topicId,\n registryType,\n ttl,\n entries: latestEntry ? [latestEntry] : [],\n latestEntry,\n };\n }\n\n /**\n * Validate that a topic is a valid HCS-6 registry\n * @param topicId The topic ID to validate\n * @returns Promise resolving to true if valid, false otherwise\n */\n protected async validateHCS6Topic(topicId: string): Promise<boolean> {\n try {\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n const memoInfo = this.parseRegistryTypeFromMemo(topicInfo.memo);\n\n if (!memoInfo) {\n this.logger.warn(\n `Topic ${topicId} is not a valid HCS-6 registry (invalid memo format)`,\n );\n return false;\n }\n\n if (memoInfo.registryType !== HCS6RegistryType.NON_INDEXED) {\n this.logger.warn(\n `Topic ${topicId} is not a valid HCS-6 registry (must be non-indexed)`,\n );\n return false;\n }\n\n return true;\n } catch (error) {\n this.logger.error(`Error validating HCS-6 topic ${topicId}: ${error}`);\n return false;\n }\n }\n}\n"],"names":[],"mappings":"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"}