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

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 +958 -76
  255. package/dist/es/standards-sdk.es148.js.map +1 -1
  256. package/dist/es/standards-sdk.es149.js +12292 -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 +59 -0
  261. package/dist/es/standards-sdk.es150.js.map +1 -0
  262. package/dist/es/standards-sdk.es151.js +87 -0
  263. package/dist/es/standards-sdk.es151.js.map +1 -0
  264. package/dist/es/standards-sdk.es152.js +20 -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 +16 -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 +1 @@
1
- {"version":3,"file":"standards-sdk.es39.js","sources":["../../src/hcs-12/builders/action-builder.ts"],"sourcesContent":["/**\n * ActionBuilder utility for creating HCS-12 action registrations\n */\n\nimport { Logger } from '../../utils/logger';\nimport { getCryptoAdapter } from '../../utils/crypto-abstraction';\nimport { isSSREnvironment } from '../../utils/crypto-env';\nimport {\n ActionRegistration,\n SourceVerification,\n ValidationRule,\n ModuleInfo,\n} from '../types';\n\nexport interface BuildOptions {\n validate?: boolean;\n}\n\n/**\n * Builder for creating action registrations with validation\n */\nexport class ActionBuilder {\n private logger: Logger;\n private registration: Partial<ActionRegistration>;\n private alias?: string;\n private cryptoAdapter = getCryptoAdapter();\n\n constructor(logger: Logger) {\n this.logger = logger;\n this.registration = {\n p: 'hcs-12',\n op: 'register',\n };\n }\n\n /**\n * Set HCS-1 topic ID for WASM storage\n */\n setTopicId(topicId: string): ActionBuilder {\n if (!this.isValidTopicId(topicId)) {\n throw new Error('Invalid topic ID format');\n }\n this.registration.t_id = topicId;\n return this;\n }\n\n /**\n * Set alias for this action in the assembly\n */\n setAlias(alias: string): ActionBuilder {\n this.alias = alias;\n return this;\n }\n\n /**\n * Set INFO hash\n */\n setHash(hash: string): ActionBuilder {\n if (!this.isValidHash(hash)) {\n throw new Error('Invalid hash format');\n }\n this.registration.hash = hash;\n return this;\n }\n\n /**\n * Set WASM hash\n */\n setWasmHash(hash: string): ActionBuilder {\n if (!this.isValidHash(hash)) {\n throw new Error('Invalid hash format');\n }\n this.registration.wasm_hash = hash;\n return this;\n }\n\n /**\n * Set optional INFO topic ID\n */\n setInfoTopicId(topicId: string): ActionBuilder {\n if (!this.isValidTopicId(topicId)) {\n throw new Error('Invalid topic ID format');\n }\n this.registration.info_t_id = topicId;\n return this;\n }\n\n /**\n * Set JavaScript wrapper topic ID\n */\n setJsTopicId(topicId: string): ActionBuilder {\n if (!this.isValidTopicId(topicId)) {\n throw new Error('Invalid topic ID format');\n }\n this.registration.js_t_id = topicId;\n return this;\n }\n\n /**\n * Set JavaScript wrapper hash\n */\n setJsHash(hash: string): ActionBuilder {\n if (!this.isValidHash(hash)) {\n throw new Error('Invalid hash format');\n }\n this.registration.js_hash = hash;\n return this;\n }\n\n /**\n * Set interface version (wasm-bindgen version)\n */\n setInterfaceVersion(version: string): ActionBuilder {\n if (!this.isValidVersion(version)) {\n throw new Error('Invalid version format');\n }\n this.registration.interface_version = version;\n return this;\n }\n\n /**\n * Add validation rule for an action\n */\n addValidationRule(action: string, rule: ValidationRule): ActionBuilder {\n if (!this.registration.validation_rules) {\n this.registration.validation_rules = {};\n }\n this.registration.validation_rules[action] = rule;\n return this;\n }\n\n /**\n * Set source verification data\n */\n setSourceVerification(verification: SourceVerification): ActionBuilder {\n if (!this.isValidTopicId(verification.source_t_id)) {\n throw new Error('Invalid source topic ID');\n }\n if (!this.isValidHash(verification.source_hash)) {\n throw new Error('Invalid source hash');\n }\n if (verification.target !== 'wasm32-unknown-unknown') {\n throw new Error('Invalid compilation target');\n }\n this.registration.source_verification = verification;\n return this;\n }\n\n /**\n * Build the action registration\n */\n build(options: BuildOptions = { validate: true }): ActionRegistration {\n if (options.validate !== false) {\n this.validate();\n }\n\n return { ...this.registration } as ActionRegistration;\n }\n\n /**\n * Reset the builder\n */\n reset(): ActionBuilder {\n this.registration = {\n p: 'hcs-12',\n op: 'register',\n };\n this.alias = undefined;\n return this;\n }\n\n /**\n * Get the alias\n */\n getAlias(): string {\n if (!this.alias) {\n throw new Error('Action alias not set');\n }\n return this.alias;\n }\n\n /**\n * Get the topic ID\n */\n getTopicId(): string {\n if (!this.registration.t_id) {\n throw new Error('Action topic ID not set');\n }\n return this.registration.t_id;\n }\n\n /**\n * Generate WASM hash from binary data\n */\n async generateWasmHash(wasmData: Uint8Array): Promise<string> {\n if (isSSREnvironment()) {\n return this.createSSRSafeHash(wasmData, 'wasm');\n }\n\n const hasher = this.cryptoAdapter.createHash('sha256');\n const result = hasher.update(Buffer.from(wasmData)).digest('hex');\n const hash = result instanceof Promise ? await result : result;\n return typeof hash === 'string' ? hash : hash.toString('hex');\n }\n\n /**\n * Generate INFO hash from module info\n */\n async generateInfoHash(info: ModuleInfo): Promise<string> {\n const infoJson = JSON.stringify(info, Object.keys(info).sort());\n\n if (isSSREnvironment()) {\n return this.createSSRSafeHash(Buffer.from(infoJson), 'info');\n }\n\n const hasher = this.cryptoAdapter.createHash('sha256');\n const result = hasher.update(Buffer.from(infoJson)).digest('hex');\n const hash = result instanceof Promise ? await result : result;\n return typeof hash === 'string' ? hash : hash.toString('hex');\n }\n\n /**\n * Calculate hash for any data\n */\n async calculateHash(data: Uint8Array | Buffer | string): Promise<string> {\n const buffer =\n typeof data === 'string'\n ? Buffer.from(data)\n : data instanceof Uint8Array\n ? Buffer.from(data)\n : data;\n\n if (isSSREnvironment()) {\n return this.createSSRSafeHash(buffer, 'data');\n }\n\n const hasher = this.cryptoAdapter.createHash('sha256');\n const result = hasher.update(buffer).digest('hex');\n const hash = result instanceof Promise ? await result : result;\n return typeof hash === 'string' ? hash : hash.toString('hex');\n }\n\n /**\n * Create SSR-safe hash\n */\n private createSSRSafeHash(data: Buffer | Uint8Array, type: string): string {\n const buffer = data instanceof Uint8Array ? Buffer.from(data) : data;\n let hash = 0;\n\n for (let i = 0; i < Math.min(buffer.length, 256); i++) {\n hash = ((hash << 5) - hash + buffer[i]) & 0xffffffff;\n }\n\n return `ssr-${type}-${buffer.length}-${Math.abs(hash).toString(16).padStart(8, '0')}`;\n }\n\n /**\n * Create registration from WASM and INFO data\n */\n async createFromWasmAndInfo(\n topicId: string,\n wasmData: Uint8Array,\n info: ModuleInfo,\n ): Promise<ActionRegistration> {\n const wasmHash = await this.generateWasmHash(wasmData);\n const infoHash = await this.generateInfoHash(info);\n\n const jsTopicId = this.registration.js_t_id;\n const jsHash = this.registration.js_hash;\n const interfaceVersion = this.registration.interface_version;\n\n this.reset().setTopicId(topicId).setHash(infoHash).setWasmHash(wasmHash);\n\n if (jsTopicId) this.setJsTopicId(jsTopicId);\n if (jsHash) this.setJsHash(jsHash);\n if (interfaceVersion) this.setInterfaceVersion(interfaceVersion);\n\n return this.build();\n }\n\n /**\n * Check if registration is complete\n */\n isComplete(registration: Partial<ActionRegistration>): boolean {\n return !!(\n registration.p === 'hcs-12' &&\n registration.op === 'register' &&\n registration.t_id &&\n registration.hash &&\n registration.wasm_hash\n );\n }\n\n /**\n * Validate the current registration\n */\n private validate(): void {\n if (!this.registration.t_id) {\n throw new Error('Topic ID is required');\n }\n if (!this.registration.hash) {\n throw new Error('INFO hash is required');\n }\n if (!this.registration.wasm_hash) {\n throw new Error('WASM hash is required');\n }\n }\n\n /**\n * Validate topic ID format\n */\n private isValidTopicId(topicId: string): boolean {\n return /^\\d+\\.\\d+\\.\\d+$/.test(topicId);\n }\n\n /**\n * Validate hash format\n */\n private isValidHash(hash: string): boolean {\n return /^[a-f0-9]{64}$/.test(hash);\n }\n\n /**\n * Validate semantic version format\n */\n private isValidVersion(version: string): boolean {\n return /^\\d+\\.\\d+\\.\\d+$/.test(version);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es39.js","sources":["../../src/hcs-12/builders/assembly-builder.ts"],"sourcesContent":["/**\n * Assembly Builder for HCS-12 HashLinks\n *\n * Provides a fluent interface for building assemblies using the new\n * incremental approach with topic-based references.\n */\n\nimport { Logger } from '../../utils/logger';\nimport {\n AssemblyRegistration,\n AssemblyAddAction,\n AssemblyAddBlock,\n AssemblyUpdate,\n AssemblyAction,\n AssemblyBlock,\n AssemblyState,\n} from '../types';\nimport { ActionBuilder } from './action-builder';\nimport { BlockBuilder } from './block-builder';\n\n/**\n * Builder for creating HashLink assemblies using incremental operations\n */\nexport class AssemblyBuilder {\n private logger: Logger;\n private registration: Partial<AssemblyRegistration> = {\n p: 'hcs-12',\n op: 'register',\n };\n private operations: (\n | AssemblyAddAction\n | AssemblyAddBlock\n | AssemblyUpdate\n )[] = [];\n private updateFields: Partial<AssemblyUpdate> = {\n p: 'hcs-12',\n op: 'update',\n };\n\n constructor(logger?: Logger) {\n this.logger = logger || new Logger({ module: 'AssemblyBuilder' });\n }\n\n /**\n * Set assembly name\n */\n setName(name: string): AssemblyBuilder {\n if (!this.isValidName(name)) {\n throw new Error('Invalid assembly name format');\n }\n this.registration.name = name;\n return this;\n }\n\n /**\n * Set assembly version\n */\n setVersion(version: string): AssemblyBuilder {\n if (!this.isValidSemver(version)) {\n throw new Error('Invalid semantic version');\n }\n this.registration.version = version;\n return this;\n }\n\n /**\n * Set assembly description\n */\n setDescription(description: string): AssemblyBuilder {\n this.registration.description = description;\n if (this.updateFields) {\n this.updateFields.description = description;\n }\n return this;\n }\n\n /**\n * Set assembly tags\n */\n setTags(tags: string[]): AssemblyBuilder {\n this.registration.tags = tags;\n if (this.updateFields) {\n this.updateFields.tags = tags;\n }\n return this;\n }\n\n /**\n * Add a single tag\n */\n addTag(tag: string): AssemblyBuilder {\n if (!this.registration.tags) {\n this.registration.tags = [];\n }\n if (!this.updateFields.tags) {\n this.updateFields.tags = [];\n }\n this.registration.tags.push(tag);\n this.updateFields.tags.push(tag);\n return this;\n }\n\n /**\n * Set assembly author\n */\n setAuthor(author: string): AssemblyBuilder {\n this.registration.author = author;\n return this;\n }\n\n /**\n * Add an action to the assembly\n */\n addAction(builder: ActionBuilder): AssemblyBuilder {\n const topicId = builder.getTopicId();\n const alias = builder.getAlias();\n\n if (!this.isValidAlias(alias)) {\n throw new Error('Invalid alias format');\n }\n\n const operation: AssemblyAddAction = {\n p: 'hcs-12',\n op: 'add-action',\n t_id: topicId,\n alias,\n };\n\n this.operations.push(operation);\n return this;\n }\n\n /**\n * Add a block to the assembly\n * The block must already be registered and have a topic ID\n */\n addBlock(builder: BlockBuilder): AssemblyBuilder {\n const blockTopicId = builder.getTopicId();\n\n if (!this.isValidTopicId(blockTopicId)) {\n throw new Error(`Invalid block topic ID: ${blockTopicId}`);\n }\n\n const definition = builder.build();\n const actions = builder.getActions();\n\n const attributes = this.extractDefaultAttributes(definition.attributes);\n\n if (actions && Object.keys(actions).length > 0) {\n for (const [name, topicId] of Object.entries(actions)) {\n if (!this.isValidTopicId(topicId)) {\n throw new Error(`Invalid action topic ID for \"${name}\": ${topicId}`);\n }\n }\n }\n\n const operation: AssemblyAddBlock = {\n p: 'hcs-12',\n op: 'add-block',\n block_t_id: blockTopicId,\n ...(Object.keys(actions).length > 0 && { actions }),\n attributes,\n };\n\n this.operations.push(operation);\n return this;\n }\n\n /**\n * Update assembly metadata\n */\n updateMetadata(description?: string, tags?: string[]): AssemblyBuilder {\n const operation: AssemblyUpdate = {\n p: 'hcs-12',\n op: 'update',\n description,\n tags,\n };\n\n this.operations.push(operation);\n return this;\n }\n\n /**\n * Build the assembly registration\n */\n build(): AssemblyRegistration {\n if (!this.registration.name) {\n throw new Error('Assembly name is required');\n }\n if (!this.registration.version) {\n throw new Error('Assembly version is required');\n }\n return { ...this.registration } as AssemblyRegistration;\n }\n\n /**\n * Build an update operation\n */\n buildUpdate(): AssemblyUpdate {\n const update: AssemblyUpdate = {\n p: 'hcs-12',\n op: 'update',\n };\n if (this.updateFields.description !== undefined) {\n update.description = this.updateFields.description;\n }\n if (this.updateFields.tags !== undefined) {\n update.tags = this.updateFields.tags;\n }\n return update;\n }\n\n /**\n * Build all operations\n */\n buildOperations(): (AssemblyAddAction | AssemblyAddBlock | AssemblyUpdate)[] {\n return [...this.operations];\n }\n\n /**\n * Reset the builder\n */\n reset(): AssemblyBuilder {\n this.registration = {\n p: 'hcs-12',\n op: 'register',\n };\n this.operations = [];\n this.updateFields = {\n p: 'hcs-12',\n op: 'update',\n };\n return this;\n }\n\n /**\n * Get the registration message\n */\n getRegistration(): AssemblyRegistration {\n return this.build();\n }\n\n /**\n * Get all operations\n */\n getOperations(): (AssemblyAddAction | AssemblyAddBlock | AssemblyUpdate)[] {\n return this.buildOperations();\n }\n\n /**\n * Build the complete assembly definition for preview\n */\n buildPreview(): AssemblyState {\n const actions: AssemblyAction[] = [];\n const blocks: AssemblyBlock[] = [];\n\n for (const operation of this.operations) {\n switch (operation.op) {\n case 'add-action':\n actions.push({\n t_id: operation.t_id,\n alias: operation.alias,\n config: operation.config,\n data: operation.data,\n });\n break;\n case 'add-block':\n blocks.push({\n block_t_id: operation.block_t_id,\n actions: operation.actions,\n attributes: operation.attributes,\n children: operation.children,\n data: operation.data,\n });\n break;\n case 'update':\n if (operation.description) {\n this.registration.description = operation.description;\n }\n if (operation.tags) {\n this.registration.tags = operation.tags;\n }\n break;\n }\n }\n\n return {\n topicId: '',\n name: this.registration.name,\n version: this.registration.version,\n description: this.registration.description,\n tags: this.registration.tags,\n author: this.registration.author,\n actions,\n blocks,\n created: new Date().toISOString(),\n updated: new Date().toISOString(),\n };\n }\n\n /**\n * Validate the assembly configuration\n */\n validate(): { valid: boolean; errors: string[] } {\n const errors: string[] = [];\n\n if (!this.registration.name) {\n errors.push('Assembly name is required');\n }\n if (!this.registration.version) {\n errors.push('Assembly version is required');\n }\n if (\n this.registration.version &&\n !this.isValidSemver(this.registration.version)\n ) {\n errors.push('Invalid semantic version format');\n }\n\n const aliases = new Set<string>();\n for (const operation of this.operations) {\n if (operation.op === 'add-action') {\n if (aliases.has(operation.alias)) {\n errors.push(`Duplicate alias: ${operation.alias}`);\n } else {\n aliases.add(operation.alias);\n }\n\n if (!this.isValidTopicId(operation.t_id)) {\n errors.push(\n `Invalid topic ID for ${operation.alias}: ${operation.t_id}`,\n );\n }\n\n if (!this.isValidAlias(operation.alias)) {\n errors.push(`Invalid alias format: ${operation.alias}`);\n }\n } else if (operation.op === 'add-block') {\n if (!this.isValidTopicId(operation.block_t_id)) {\n errors.push(`Invalid block topic ID: ${operation.block_t_id}`);\n }\n }\n }\n\n const actionAliases = new Set<string>();\n const blockOperations = this.operations.filter(\n op => op.op === 'add-action',\n ) as AssemblyAddAction[];\n blockOperations.forEach(op => actionAliases.add(op.alias));\n\n for (const operation of this.operations) {\n if (operation.op === 'add-block' && operation.actions) {\n for (const [actionKey, actionTopicId] of Object.entries(\n operation.actions,\n )) {\n if (!this.isValidTopicId(actionTopicId)) {\n errors.push(\n `Block ${operation.block_t_id} has invalid action topic ID for key ${actionKey}: ${actionTopicId}`,\n );\n }\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors,\n };\n }\n\n /**\n * Helper validation methods\n */\n private isValidSemver(version: string): boolean {\n return /^\\d+\\.\\d+\\.\\d+(-[\\w\\.\\+]+)?$/.test(version);\n }\n\n private isValidTopicId(topicId: string): boolean {\n return /^\\d+\\.\\d+\\.\\d+$/.test(topicId);\n }\n\n private isValidAlias(alias: string): boolean {\n return (\n /^[a-zA-Z][a-zA-Z0-9_-]*$/.test(alias) &&\n alias.length >= 2 &&\n alias.length <= 50\n );\n }\n\n private isValidName(name: string): boolean {\n return /^[a-z0-9-]+$/.test(name) && name.length >= 2 && name.length <= 100;\n }\n\n /**\n * Extract default values from block attributes\n */\n private extractDefaultAttributes(\n attributes?: Record<string, any>,\n ): Record<string, any> {\n if (!attributes) return {};\n\n const defaults: Record<string, any> = {};\n for (const [key, attr] of Object.entries(attributes)) {\n if (attr && typeof attr === 'object' && 'default' in attr) {\n defaults[key] = attr.default;\n }\n }\n return defaults;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,68 +1,430 @@
1
- import { z } from "zod";
2
- var HCS6Operation = /* @__PURE__ */ ((HCS6Operation2) => {
3
- HCS6Operation2["REGISTER"] = "register";
4
- return HCS6Operation2;
5
- })(HCS6Operation || {});
6
- var HCS6RegistryType = /* @__PURE__ */ ((HCS6RegistryType2) => {
7
- HCS6RegistryType2[HCS6RegistryType2["NON_INDEXED"] = 1] = "NON_INDEXED";
8
- return HCS6RegistryType2;
9
- })(HCS6RegistryType || {});
10
- function buildHcs6Hrl(topicId) {
11
- return `hcs://6/${topicId}`;
12
- }
13
- const hcs6TopicIdSchema = z.string().regex(/^\d+\.\d+\.\d+$/, {
14
- message: "Topic ID must be in Hedera format (e.g., '0.0.123456')"
15
- });
16
- const hcs6BaseMessageSchema = z.object({
17
- p: z.literal("hcs-6"),
18
- op: z.enum([
19
- "register"
20
- /* REGISTER */
21
- ]),
22
- m: z.string().max(500, "Memo must not exceed 500 characters").optional()
23
- });
24
- const hcs6RegisterMessageSchema = hcs6BaseMessageSchema.extend({
25
- op: z.literal(
26
- "register"
27
- /* REGISTER */
28
- ),
29
- t_id: hcs6TopicIdSchema
30
- });
31
- const hcs6MessageSchema = z.discriminatedUnion("op", [
32
- hcs6RegisterMessageSchema
33
- ]);
34
- function validateHCS6TTL(ttl) {
35
- return ttl >= 3600;
36
- }
37
- function validateHCS6RegistryMemo(memo) {
38
- const regex = /^hcs-6:(\d):(\d+)$/;
39
- const match = memo.match(regex);
40
- if (!match) {
41
- return false;
42
- }
43
- const registryType = parseInt(match[1]);
44
- const ttl = parseInt(match[2]);
45
- if (registryType !== 1) {
46
- return false;
47
- }
48
- return validateHCS6TTL(ttl);
49
- }
50
- function generateHCS6RegistryMemo(ttl) {
51
- if (!validateHCS6TTL(ttl)) {
52
- throw new Error("TTL must be at least 3600 seconds (1 hour)");
1
+ import { HCS6BaseClient } from "./standards-sdk.es6.js";
2
+ import { buildHcs6Hrl } from "./standards-sdk.es3.js";
3
+ import { AccountId, Client, TopicMessageSubmitTransaction, TopicId, PrivateKey, PublicKey, TokenMintTransaction, TokenId } from "@hashgraph/sdk";
4
+ import { buildHcs6CreateRegistryTx } from "./standards-sdk.es7.js";
5
+ import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.es146.js";
6
+ import { inscribe } from "./standards-sdk.es124.js";
7
+ class HCS6Client extends HCS6BaseClient {
8
+ constructor(config) {
9
+ super({
10
+ network: config.network,
11
+ logLevel: config.logLevel,
12
+ silent: config.silent,
13
+ mirrorNodeUrl: config.mirrorNodeUrl,
14
+ logger: config.logger
15
+ });
16
+ this.operatorId = typeof config.operatorId === "string" ? AccountId.fromString(config.operatorId) : config.operatorId;
17
+ this.operatorCtx = createNodeOperatorContext({
18
+ network: this.network,
19
+ operatorId: this.operatorId,
20
+ operatorKey: config.operatorKey,
21
+ keyType: config.keyType,
22
+ mirrorNode: this.mirrorNode,
23
+ logger: this.logger,
24
+ client: this.createClient(config.network)
25
+ });
26
+ this.client = this.operatorCtx.client;
27
+ }
28
+ async ensureInitialized() {
29
+ await this.operatorCtx.ensureInitialized();
30
+ }
31
+ createClient(network) {
32
+ if (network === "mainnet") {
33
+ return Client.forMainnet();
34
+ } else {
35
+ return Client.forTestnet();
36
+ }
37
+ }
38
+ close() {
39
+ this.logger.info("HCS-6 client closed.");
40
+ }
41
+ getKeyType() {
42
+ return this.operatorCtx.keyType;
43
+ }
44
+ getOperatorKey() {
45
+ return this.operatorCtx.operatorKey;
46
+ }
47
+ async submitMessage(topicId, payload) {
48
+ return this.submitMessageWithKey(topicId, payload, void 0);
49
+ }
50
+ async submitMessageWithKey(topicId, payload, submitKey) {
51
+ const { valid, errors } = this.validateMessage(payload);
52
+ if (!valid) {
53
+ throw new Error(`Invalid HCS-6 message: ${errors.join(", ")}`);
54
+ }
55
+ let tx = new TopicMessageSubmitTransaction().setTopicId(TopicId.fromString(topicId)).setMessage(JSON.stringify(payload));
56
+ if (!submitKey) {
57
+ const txResponse = await tx.execute(this.client);
58
+ return await txResponse.getReceipt(this.client);
59
+ }
60
+ const privateKey = typeof submitKey === "string" ? PrivateKey.fromString(submitKey) : submitKey;
61
+ const frozen = await tx.freezeWith(this.client);
62
+ await frozen.sign(privateKey);
63
+ const resp = await frozen.execute(this.client);
64
+ return await resp.getReceipt(this.client);
65
+ }
66
+ async registerEntryWithKey(registryTopicId, options, submitKey) {
67
+ try {
68
+ const payload = this.createRegisterMessage(
69
+ options.targetTopicId,
70
+ options.memo
71
+ );
72
+ const receipt = await this.submitMessageWithKey(
73
+ registryTopicId,
74
+ payload,
75
+ submitKey
76
+ );
77
+ const sequenceNumber = receipt.topicSequenceNumber?.toNumber();
78
+ return { success: true, receipt, sequenceNumber };
79
+ } catch (error) {
80
+ this.logger.error(`Failed to register HCS-6 entry: ${error}`);
81
+ return { success: false, error: String(error) };
82
+ }
83
+ }
84
+ async createRegistry(options = {}) {
85
+ try {
86
+ await this.ensureInitialized();
87
+ const ttl = options.ttl ?? 86400;
88
+ if (!(ttl >= 3600)) {
89
+ throw new Error("TTL must be at least 3600 seconds (1 hour)");
90
+ }
91
+ let submitKeyPublic;
92
+ let submitKeyPrivate;
93
+ if (options.submitKey) {
94
+ if (typeof options.submitKey === "string") {
95
+ try {
96
+ submitKeyPublic = PublicKey.fromString(options.submitKey);
97
+ } catch {
98
+ const keyBytes = Buffer.from(
99
+ options.submitKey.replace(/^0x/i, ""),
100
+ "hex"
101
+ );
102
+ submitKeyPublic = this.operatorCtx.keyType === "ed25519" ? PublicKey.fromBytesED25519(keyBytes) : PublicKey.fromBytesECDSA(keyBytes);
103
+ }
104
+ } else if (typeof options.submitKey === "boolean") {
105
+ submitKeyPublic = this.operatorCtx.operatorKey.publicKey;
106
+ } else {
107
+ submitKeyPublic = options.submitKey.publicKey;
108
+ submitKeyPrivate = options.submitKey;
109
+ }
110
+ }
111
+ let transaction = buildHcs6CreateRegistryTx({
112
+ ttl,
113
+ submitKey: submitKeyPublic,
114
+ adminKey: this.operatorCtx.operatorKey.publicKey,
115
+ operatorPublicKey: this.operatorCtx.operatorKey.publicKey
116
+ });
117
+ const frozenTx = await transaction.freezeWith(this.client);
118
+ if (submitKeyPrivate) {
119
+ await frozenTx.sign(submitKeyPrivate);
120
+ }
121
+ const txResponse = await frozenTx.execute(this.client);
122
+ const receipt = await txResponse.getReceipt(this.client);
123
+ const topicId = receipt.topicId;
124
+ if (!topicId) {
125
+ throw new Error(
126
+ "Failed to create HCS-6 registry: No topic ID in receipt"
127
+ );
128
+ }
129
+ return {
130
+ success: true,
131
+ topicId: topicId.toString(),
132
+ transactionId: txResponse.transactionId.toString()
133
+ };
134
+ } catch (error) {
135
+ this.logger.error(`Failed to create HCS-6 registry: ${error}`);
136
+ return {
137
+ success: false,
138
+ error: `Failed to create HCS-6 registry: ${error}`
139
+ };
140
+ }
141
+ }
142
+ async registerEntry(registryTopicId, options) {
143
+ await this.ensureInitialized();
144
+ return this.registerEntryWithKey(registryTopicId, options, void 0);
145
+ }
146
+ async getRegistry(topicId, options = {}) {
147
+ await this.ensureInitialized();
148
+ const topicInfo = await this.mirrorNode.getTopicInfo(topicId);
149
+ const memo = topicInfo.memo || "";
150
+ const match = memo.match(/^hcs-6:(\d):(\d+)$/);
151
+ if (!match) {
152
+ throw new Error(
153
+ `Topic ${topicId} is not an HCS-6 registry (invalid memo format)`
154
+ );
155
+ }
156
+ const ttl = parseInt(match[2]);
157
+ const regType = parseInt(match[1]);
158
+ const messages = await this.mirrorNode.getTopicMessages(topicId, {
159
+ sequenceNumber: options.skip && options.skip > 0 ? `gt:${options.skip}` : void 0,
160
+ limit: options.limit ?? 100,
161
+ order: options.order ?? "asc"
162
+ });
163
+ const entries = messages.map((m) => {
164
+ try {
165
+ const decoded = m;
166
+ const { valid } = this.validateMessage(
167
+ decoded
168
+ );
169
+ if (!valid) return null;
170
+ return {
171
+ topicId,
172
+ sequence: decoded.sequence_number,
173
+ timestamp: decoded.consensus_timestamp || "",
174
+ payer: decoded.payer || "",
175
+ message: decoded,
176
+ consensus_timestamp: decoded.consensus_timestamp || "",
177
+ registry_type: regType
178
+ };
179
+ } catch {
180
+ return null;
181
+ }
182
+ }).filter(
183
+ (v) => Boolean(v)
184
+ );
185
+ const latest = entries.length > 0 ? entries[entries.length - 1] : void 0;
186
+ return {
187
+ topicId,
188
+ registryType: regType,
189
+ ttl,
190
+ entries,
191
+ latestEntry: latest
192
+ };
193
+ }
194
+ async mint(options) {
195
+ try {
196
+ await this.ensureInitialized();
197
+ if (!options.metadataTopicId) {
198
+ return {
199
+ success: false,
200
+ error: "metadataTopicId is required for mint()"
201
+ };
202
+ }
203
+ const metadata = buildHcs6Hrl(options.metadataTopicId);
204
+ let tx = new TokenMintTransaction().setTokenId(TokenId.fromString(options.tokenId)).setMetadata([Buffer.from(metadata)]);
205
+ const frozen = await tx.freezeWith(this.client);
206
+ if (options.supplyKey) {
207
+ const resolver = new NodeOperatorResolver({
208
+ mirrorNode: this.mirrorNode,
209
+ logger: this.logger
210
+ });
211
+ const privKey = typeof options.supplyKey === "string" ? await resolver.resolveSupplyKey(
212
+ options.tokenId,
213
+ options.supplyKey,
214
+ this.operatorCtx.keyType
215
+ ) : options.supplyKey;
216
+ await frozen.sign(privKey);
217
+ }
218
+ const resp = await frozen.execute(this.client);
219
+ const receipt = await resp.getReceipt(this.client);
220
+ const serial = receipt.serials && receipt.serials[0] ? Number(receipt.serials[0].toString()) : void 0;
221
+ return {
222
+ success: true,
223
+ serialNumber: serial,
224
+ transactionId: resp.transactionId?.toString?.(),
225
+ metadata
226
+ };
227
+ } catch (e) {
228
+ return { success: false, error: String(e) };
229
+ }
230
+ }
231
+ async inscribeAndMint(options) {
232
+ try {
233
+ await this.ensureInitialized();
234
+ const inscribeOptions = {
235
+ ...options.inscriptionOptions,
236
+ mode: "hashinal",
237
+ waitForConfirmation: true
238
+ };
239
+ const result = await inscribe(
240
+ options.inscriptionInput,
241
+ {
242
+ accountId: this.operatorId.toString(),
243
+ privateKey: this.operatorCtx.operatorKey,
244
+ network: this.network
245
+ },
246
+ inscribeOptions
247
+ );
248
+ if (!result.confirmed || !result.inscription) {
249
+ return { success: false, error: "Failed to inscribe content" };
250
+ }
251
+ const topicId = result.inscription.jsonTopicId || result.inscription.topic_id;
252
+ if (!topicId) {
253
+ return { success: false, error: "No topic ID from inscription" };
254
+ }
255
+ return await this.mint({
256
+ tokenId: options.tokenId,
257
+ metadataTopicId: topicId,
258
+ supplyKey: options.supplyKey,
259
+ memo: options.memo
260
+ });
261
+ } catch (e) {
262
+ return { success: false, error: String(e) };
263
+ }
264
+ }
265
+ async createHashinal(options) {
266
+ try {
267
+ await this.ensureInitialized();
268
+ let registryTopicId;
269
+ let registryTransactionId;
270
+ if (options.registryTopicId) {
271
+ registryTopicId = options.registryTopicId;
272
+ const topicInfo = await this.mirrorNode.getTopicInfo(registryTopicId);
273
+ const memo = topicInfo.memo || "";
274
+ if (!/^hcs-6:\d:\d+$/.test(memo)) {
275
+ throw new Error(
276
+ `Topic ${registryTopicId} is not a valid HCS-6 registry`
277
+ );
278
+ }
279
+ } else {
280
+ const res = await this.createRegistry({
281
+ ttl: options.ttl,
282
+ submitKey: true
283
+ });
284
+ if (!res.success || !res.topicId) {
285
+ throw new Error(res.error || "Failed to create HCS-6 registry");
286
+ }
287
+ registryTopicId = res.topicId;
288
+ registryTransactionId = res.transactionId;
289
+ }
290
+ const inscriptionBuffer = Buffer.from(JSON.stringify(options.metadata));
291
+ const inscribeOptions = {
292
+ ...options.inscriptionOptions,
293
+ mode: "hashinal",
294
+ metadata: options.metadata,
295
+ waitForConfirmation: true
296
+ };
297
+ const result = await inscribe(
298
+ {
299
+ type: "buffer",
300
+ buffer: inscriptionBuffer,
301
+ fileName: "metadata.json",
302
+ mimeType: "application/json"
303
+ },
304
+ {
305
+ accountId: this.operatorId.toString(),
306
+ privateKey: this.operatorCtx.operatorKey,
307
+ network: this.network
308
+ },
309
+ inscribeOptions
310
+ );
311
+ if (!result.confirmed || !result.inscription) {
312
+ throw new Error("Failed to inscribe metadata");
313
+ }
314
+ const topicId = result.inscription.jsonTopicId || result.inscription.topic_id;
315
+ if (!topicId) {
316
+ throw new Error("No inscription topic ID available");
317
+ }
318
+ const reg = await this.registerEntryWithKey(
319
+ registryTopicId,
320
+ {
321
+ targetTopicId: topicId,
322
+ memo: options.memo || "Dynamic hashinal registration"
323
+ },
324
+ options.submitKey
325
+ );
326
+ if (!reg.success) {
327
+ throw new Error(reg.error || "Failed to register entry");
328
+ }
329
+ return {
330
+ success: true,
331
+ registryTopicId,
332
+ inscriptionTopicId: topicId,
333
+ transactionId: registryTransactionId
334
+ };
335
+ } catch (e) {
336
+ return { success: false, error: String(e) };
337
+ }
338
+ }
339
+ async register(options) {
340
+ try {
341
+ await this.ensureInitialized();
342
+ let registryTopicId;
343
+ let registryTransactionId;
344
+ if (options.registryTopicId) {
345
+ registryTopicId = options.registryTopicId;
346
+ const topicInfo = await this.mirrorNode.getTopicInfo(registryTopicId);
347
+ const memo = topicInfo.memo || "";
348
+ if (!/^hcs-6:\d:\d+$/.test(memo)) {
349
+ throw new Error(
350
+ `Topic ${registryTopicId} is not a valid HCS-6 registry`
351
+ );
352
+ }
353
+ } else {
354
+ const res = await this.createRegistry({
355
+ ttl: options.ttl,
356
+ submitKey: true
357
+ });
358
+ if (!res.success || !res.topicId) {
359
+ throw new Error(res.error || "Failed to create HCS-6 registry");
360
+ }
361
+ registryTopicId = res.topicId;
362
+ registryTransactionId = res.transactionId;
363
+ }
364
+ let inscriptionInput;
365
+ if (options.data?.base64) {
366
+ const buffer = Buffer.from(options.data.base64, "base64");
367
+ inscriptionInput = {
368
+ type: "buffer",
369
+ buffer,
370
+ fileName: `data.${options.data.mimeType?.split("/")[1] || "bin"}`,
371
+ mimeType: options.data.mimeType || "application/octet-stream"
372
+ };
373
+ } else if (options.data?.url) {
374
+ inscriptionInput = { type: "url", url: options.data.url };
375
+ } else {
376
+ inscriptionInput = {
377
+ type: "buffer",
378
+ buffer: Buffer.from(JSON.stringify(options.metadata)),
379
+ fileName: "metadata.json",
380
+ mimeType: "application/json"
381
+ };
382
+ }
383
+ const inscribeOptions = {
384
+ ...options.inscriptionOptions,
385
+ mode: "hashinal",
386
+ metadata: options.metadata,
387
+ waitForConfirmation: true
388
+ };
389
+ const result = await inscribe(
390
+ inscriptionInput,
391
+ {
392
+ accountId: this.operatorId.toString(),
393
+ privateKey: this.operatorCtx.operatorKey,
394
+ network: this.network
395
+ },
396
+ inscribeOptions
397
+ );
398
+ if (!result.confirmed || !result.inscription) {
399
+ throw new Error("Failed to inscribe data");
400
+ }
401
+ const topicId = result.inscription.jsonTopicId || result.inscription.topic_id;
402
+ if (!topicId) {
403
+ throw new Error("No inscription topic ID available");
404
+ }
405
+ const reg = await this.registerEntryWithKey(
406
+ registryTopicId,
407
+ {
408
+ targetTopicId: topicId,
409
+ memo: options.memo || "Dynamic hashinal registration"
410
+ },
411
+ options.submitKey
412
+ );
413
+ if (!reg.success) {
414
+ throw new Error(reg.error || "Failed to register entry");
415
+ }
416
+ return {
417
+ success: true,
418
+ registryTopicId,
419
+ inscriptionTopicId: topicId,
420
+ transactionId: registryTransactionId
421
+ };
422
+ } catch (e) {
423
+ return { success: false, error: String(e) };
424
+ }
53
425
  }
54
- return `hcs-6:1:${ttl}`;
55
426
  }
56
427
  export {
57
- HCS6Operation,
58
- HCS6RegistryType,
59
- buildHcs6Hrl,
60
- generateHCS6RegistryMemo,
61
- hcs6BaseMessageSchema,
62
- hcs6MessageSchema,
63
- hcs6RegisterMessageSchema,
64
- hcs6TopicIdSchema,
65
- validateHCS6RegistryMemo,
66
- validateHCS6TTL
428
+ HCS6Client
67
429
  };
68
430
  //# sourceMappingURL=standards-sdk.es4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es4.js","sources":["../../src/hcs-6/types.ts"],"sourcesContent":["import { Logger, LogLevel } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { TransactionReceipt, PrivateKey } from '@hashgraph/sdk';\nimport { z } from 'zod';\nimport { HCS2Operation, HCS2RegistryType } from '../hcs-2/types';\n\n/**\n * HCS-6 specific operation types (extends HCS-2 operations)\n * HCS-6 only supports 'register' operations for non-indexed topics\n */\nexport enum HCS6Operation {\n REGISTER = 'register',\n}\n\n/**\n * HCS-6 registry type (always non-indexed for dynamic hashinals)\n */\nexport enum HCS6RegistryType {\n NON_INDEXED = 1,\n}\n\n/**\n * Base HCS-6 message format (extends HCS-2 with HCS-6 specific constraints)\n */\nexport interface HCS6Message {\n p: 'hcs-6';\n op: HCS6Operation;\n t_id?: string;\n m?: string;\n}\n\n/**\n * Register operation message for HCS-6\n */\nexport interface HCS6RegisterMessage extends HCS6Message {\n op: HCS6Operation.REGISTER;\n t_id: string;\n}\n\n/**\n * Configuration for HCS-6 client\n */\nexport interface HCS6ClientConfig {\n network: NetworkType;\n logLevel?: LogLevel;\n silent?: boolean;\n mirrorNodeUrl?: string;\n logger?: Logger;\n}\n\n/**\n * Response from HCS-6 topic registration\n */\nexport interface HCS6TopicRegistrationResponse {\n success: boolean;\n topicId?: string;\n transactionId?: string;\n error?: string;\n}\n\n/**\n * Response from HCS-6 registry operation\n */\nexport interface HCS6RegistryOperationResponse {\n success: boolean;\n transactionId?: string;\n receipt?: TransactionReceipt;\n error?: string;\n sequenceNumber?: number;\n}\n\n/**\n * HCS-6 registry entry information\n */\nexport interface HCS6RegistryEntry {\n topicId: string;\n sequence: number;\n timestamp: string;\n payer: string;\n message: HCS6Message;\n consensus_timestamp: string;\n registry_type: HCS6RegistryType;\n}\n\n/**\n * HCS-6 topic registry information\n */\nexport interface HCS6TopicRegistry {\n topicId: string;\n registryType: HCS6RegistryType;\n ttl: number;\n entries: HCS6RegistryEntry[];\n latestEntry?: HCS6RegistryEntry;\n}\n\n/**\n * Options for creating a new HCS-6 registry (dynamic hashinal topic)\n */\nexport interface HCS6CreateRegistryOptions {\n ttl?: number;\n submitKey?: string | boolean | PrivateKey;\n}\n\n/**\n * Options for registering a dynamic hashinal update\n */\nexport interface HCS6RegisterEntryOptions {\n targetTopicId: string;\n memo?: string;\n}\n\n/**\n * Options for querying HCS-6 registry entries\n */\nexport interface HCS6QueryRegistryOptions {\n limit?: number;\n order?: 'asc' | 'desc';\n skip?: number;\n}\n\n/**\n * Options for creating a dynamic hashinal with inscription\n */\nexport interface HCS6CreateHashinalOptions {\n metadata: Record<string, unknown>;\n memo?: string;\n ttl?: number;\n inscriptionOptions?: Record<string, unknown>;\n registryTopicId?: string;\n submitKey?: string | PrivateKey;\n}\n\n/**\n * Options for the register method that combines createHashinal and registerEntry\n */\nexport interface HCS6RegisterOptions {\n metadata: Record<string, unknown>;\n data?: {\n base64?: string;\n url?: string;\n mimeType?: string;\n };\n memo?: string;\n ttl?: number;\n inscriptionOptions?: Record<string, unknown>;\n registryTopicId?: string;\n submitKey?: string | PrivateKey;\n}\n\n/**\n * Response from creating a dynamic hashinal\n */\nexport interface HCS6CreateHashinalResponse {\n success: boolean;\n registryTopicId?: string;\n inscriptionTopicId?: string;\n transactionId?: string;\n error?: string;\n}\n\n/**\n * Options for minting an HTS NFT that references an HCS-6 topic via HRL\n */\nexport interface HCS6MintOptions {\n tokenId: string;\n metadataTopicId?: string;\n supplyKey?: string | PrivateKey;\n memo?: string;\n}\n\n/**\n * Options for inscribing content then minting a HCS-6 Hashinal in one flow\n */\nexport interface HCS6InscribeAndMintOptions {\n tokenId: string;\n inscriptionInput:\n | {\n type: 'buffer';\n buffer: Buffer | ArrayBuffer;\n fileName: string;\n mimeType?: string;\n }\n | {\n type: 'url';\n url: string;\n };\n inscriptionOptions?: Record<string, unknown>;\n supplyKey?: string | PrivateKey;\n memo?: string;\n}\n\n/**\n * Response from minting an HTS NFT with HCS-6 HRL metadata\n */\nexport interface HCS6MintResponse {\n success: boolean;\n serialNumber?: number;\n transactionId?: string;\n metadata?: string;\n error?: string;\n}\n\n/**\n * Build an HRL for HCS-6 dynamic hashinals\n */\nexport function buildHcs6Hrl(topicId: string): string {\n return `hcs://6/${topicId}`;\n}\n\n/**\n * Zod schemas for HCS-6 message validation\n */\nexport const hcs6TopicIdSchema = z.string().regex(/^\\d+\\.\\d+\\.\\d+$/, {\n message: \"Topic ID must be in Hedera format (e.g., '0.0.123456')\",\n});\nexport const hcs6BaseMessageSchema = z.object({\n p: z.literal('hcs-6'),\n op: z.enum([HCS6Operation.REGISTER]),\n m: z.string().max(500, 'Memo must not exceed 500 characters').optional(),\n});\nexport const hcs6RegisterMessageSchema = hcs6BaseMessageSchema.extend({\n op: z.literal(HCS6Operation.REGISTER),\n t_id: hcs6TopicIdSchema,\n});\nexport const hcs6MessageSchema = z.discriminatedUnion('op', [\n hcs6RegisterMessageSchema,\n]);\n\n/**\n * Validation function for HCS-6 TTL\n * @param ttl The TTL value to validate\n * @returns True if valid, false otherwise\n */\nexport function validateHCS6TTL(ttl: number): boolean {\n return ttl >= 3600;\n}\n\n/**\n * Validation function for HCS-6 registry memo format\n * @param memo The topic memo to validate\n * @returns True if valid, false otherwise\n */\nexport function validateHCS6RegistryMemo(memo: string): boolean {\n const regex = /^hcs-6:(\\d):(\\d+)$/;\n const match = memo.match(regex);\n\n if (!match) {\n return false;\n }\n\n const registryType = parseInt(match[1]);\n const ttl = parseInt(match[2]);\n if (registryType !== HCS6RegistryType.NON_INDEXED) {\n return false;\n }\n return validateHCS6TTL(ttl);\n}\n\n/**\n * Generate HCS-6 registry memo format\n * @param ttl The time-to-live in seconds\n * @returns The memo string\n */\nexport function generateHCS6RegistryMemo(ttl: number): string {\n if (!validateHCS6TTL(ttl)) {\n throw new Error('TTL must be at least 3600 seconds (1 hour)');\n }\n return `hcs-6:1:${ttl}`;\n}\n"],"names":["HCS6Operation","HCS6RegistryType"],"mappings":";AAUO,IAAK,kCAAAA,mBAAL;AACLA,iBAAA,UAAA,IAAW;AADD,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAOL,IAAK,qCAAAC,sBAAL;AACLA,oBAAAA,kBAAA,iBAAc,CAAA,IAAd;AADU,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AA4LL,SAAS,aAAa,SAAyB;AACpD,SAAO,WAAW,OAAO;AAC3B;AAKO,MAAM,oBAAoB,EAAE,SAAS,MAAM,mBAAmB;AAAA,EACnE,SAAS;AACX,CAAC;AACM,MAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,GAAG,EAAE,QAAQ,OAAO;AAAA,EACpB,IAAI,EAAE,KAAK;AAAA,IAAC;AAAA;AAAA,GAAuB;AAAA,EACnC,GAAG,EAAE,OAAA,EAAS,IAAI,KAAK,qCAAqC,EAAE,SAAA;AAChE,CAAC;AACM,MAAM,4BAA4B,sBAAsB,OAAO;AAAA,EACpE,IAAI,EAAE;AAAA,IAAQ;AAAA;AAAA,EAAA;AAAA,EACd,MAAM;AACR,CAAC;AACM,MAAM,oBAAoB,EAAE,mBAAmB,MAAM;AAAA,EAC1D;AACF,CAAC;AAOM,SAAS,gBAAgB,KAAsB;AACpD,SAAO,OAAO;AAChB;AAOO,SAAS,yBAAyB,MAAuB;AAC9D,QAAM,QAAQ;AACd,QAAM,QAAQ,KAAK,MAAM,KAAK;AAE9B,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,QAAM,eAAe,SAAS,MAAM,CAAC,CAAC;AACtC,QAAM,MAAM,SAAS,MAAM,CAAC,CAAC;AAC7B,MAAI,iBAAiB,GAA8B;AACjD,WAAO;AAAA,EACT;AACA,SAAO,gBAAgB,GAAG;AAC5B;AAOO,SAAS,yBAAyB,KAAqB;AAC5D,MAAI,CAAC,gBAAgB,GAAG,GAAG;AACzB,UAAM,IAAI,MAAM,4CAA4C;AAAA,EAC9D;AACA,SAAO,WAAW,GAAG;AACvB;"}
1
+ {"version":3,"file":"standards-sdk.es4.js","sources":["../../src/hcs-6/sdk.ts"],"sourcesContent":["import { HCS6BaseClient } from './base-client';\nimport {\n HCS6ClientConfig,\n HCS6CreateHashinalOptions,\n HCS6CreateHashinalResponse,\n HCS6RegisterOptions,\n HCS6RegisterEntryOptions,\n HCS6TopicRegistrationResponse,\n HCS6RegistryOperationResponse,\n HCS6QueryRegistryOptions,\n HCS6TopicRegistry,\n HCS6Message,\n HCS6RegistryType,\n HCS6MintOptions,\n HCS6InscribeAndMintOptions,\n HCS6MintResponse,\n buildHcs6Hrl,\n} from './types';\nimport {\n Client,\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n PrivateKey,\n TopicId,\n TransactionReceipt,\n AccountId,\n PublicKey,\n TokenMintTransaction,\n TokenId,\n} from '@hashgraph/sdk';\nimport { NetworkType } from '../utils/types';\nimport { buildHcs6CreateRegistryTx } from './tx';\nimport {\n NodeOperatorResolver,\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport {\n inscribe,\n type InscriptionInput,\n type InscriptionOptions,\n} from '../inscribe/inscriber';\n\nexport interface SDKHCS6ClientConfig extends HCS6ClientConfig {\n operatorId: string | AccountId;\n operatorKey: string | PrivateKey;\n keyType?: 'ed25519' | 'ecdsa';\n}\n\nexport class HCS6Client extends HCS6BaseClient {\n private client: Client;\n private operatorId: AccountId;\n private operatorCtx: NodeOperatorContext;\n\n constructor(config: SDKHCS6ClientConfig) {\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 private async ensureInitialized(): Promise<void> {\n await this.operatorCtx.ensureInitialized();\n }\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 public close(): void {\n this.logger.info('HCS-6 client closed.');\n }\n\n public getKeyType(): 'ed25519' | 'ecdsa' {\n return this.operatorCtx.keyType;\n }\n\n public getOperatorKey(): PrivateKey {\n return this.operatorCtx.operatorKey;\n }\n\n public async submitMessage(\n topicId: string,\n payload: HCS6Message,\n ): Promise<TransactionReceipt> {\n return this.submitMessageWithKey(topicId, payload, undefined);\n }\n\n public async submitMessageWithKey(\n topicId: string,\n payload: HCS6Message,\n submitKey?: string | PrivateKey,\n ): Promise<TransactionReceipt> {\n const { valid, errors } = this.validateMessage(payload);\n if (!valid) {\n throw new Error(`Invalid HCS-6 message: ${errors.join(', ')}`);\n }\n\n let tx = new TopicMessageSubmitTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setMessage(JSON.stringify(payload));\n\n if (!submitKey) {\n const txResponse = await tx.execute(this.client);\n return await txResponse.getReceipt(this.client);\n }\n const privateKey =\n typeof submitKey === 'string'\n ? PrivateKey.fromString(submitKey)\n : submitKey;\n const frozen = await tx.freezeWith(this.client);\n await frozen.sign(privateKey);\n const resp = await frozen.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n\n public async registerEntryWithKey(\n registryTopicId: string,\n options: HCS6RegisterEntryOptions,\n submitKey?: string | PrivateKey,\n ): Promise<HCS6RegistryOperationResponse> {\n try {\n const payload: HCS6Message = this.createRegisterMessage(\n options.targetTopicId,\n options.memo,\n );\n const receipt = await this.submitMessageWithKey(\n registryTopicId,\n payload,\n submitKey,\n );\n const sequenceNumber = (\n receipt as TransactionReceipt\n ).topicSequenceNumber?.toNumber();\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 public async createRegistry(\n options: { ttl?: number; submitKey?: string | boolean | PrivateKey } = {},\n ): Promise<HCS6TopicRegistrationResponse> {\n try {\n await this.ensureInitialized();\n const ttl = options.ttl ?? 86400;\n if (!(ttl >= 3600)) {\n throw new Error('TTL must be at least 3600 seconds (1 hour)');\n }\n let submitKeyPublic: PublicKey | undefined;\n let submitKeyPrivate: PrivateKey | undefined;\n if (options.submitKey) {\n if (typeof options.submitKey === 'string') {\n try {\n submitKeyPublic = PublicKey.fromString(options.submitKey);\n } catch {\n const keyBytes = Buffer.from(\n options.submitKey.replace(/^0x/i, ''),\n 'hex',\n );\n submitKeyPublic =\n this.operatorCtx.keyType === 'ed25519'\n ? PublicKey.fromBytesED25519(keyBytes)\n : PublicKey.fromBytesECDSA(keyBytes);\n }\n } else if (typeof options.submitKey === 'boolean') {\n submitKeyPublic = this.operatorCtx.operatorKey.publicKey;\n } else {\n submitKeyPublic = options.submitKey.publicKey;\n submitKeyPrivate = options.submitKey;\n }\n }\n\n let transaction = buildHcs6CreateRegistryTx({\n ttl,\n submitKey: submitKeyPublic,\n adminKey: this.operatorCtx.operatorKey.publicKey,\n operatorPublicKey: this.operatorCtx.operatorKey.publicKey,\n });\n\n const frozenTx = await transaction.freezeWith(this.client);\n if (submitKeyPrivate) {\n await frozenTx.sign(submitKeyPrivate);\n }\n const txResponse = await frozenTx.execute(this.client);\n const receipt = await txResponse.getReceipt(this.client);\n const topicId = receipt.topicId;\n if (!topicId) {\n throw new Error(\n 'Failed to create HCS-6 registry: No topic ID in receipt',\n );\n }\n return {\n success: true,\n topicId: topicId.toString(),\n transactionId: txResponse.transactionId.toString(),\n };\n } catch (error) {\n this.logger.error(`Failed to create HCS-6 registry: ${error}`);\n return {\n success: false,\n error: `Failed to create HCS-6 registry: ${error}`,\n };\n }\n }\n\n public async registerEntry(\n registryTopicId: string,\n options: HCS6RegisterEntryOptions,\n ): Promise<HCS6RegistryOperationResponse> {\n await this.ensureInitialized();\n return this.registerEntryWithKey(registryTopicId, options, undefined);\n }\n\n public async getRegistry(\n topicId: string,\n options: HCS6QueryRegistryOptions = {},\n ): Promise<HCS6TopicRegistry> {\n await this.ensureInitialized();\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n const memo = topicInfo.memo || '';\n const match = memo.match(/^hcs-6:(\\d):(\\d+)$/);\n if (!match) {\n throw new Error(\n `Topic ${topicId} is not an HCS-6 registry (invalid memo format)`,\n );\n }\n const ttl = parseInt(match[2]);\n const regType = parseInt(match[1]) as HCS6RegistryType;\n const messages = await this.mirrorNode.getTopicMessages(topicId, {\n sequenceNumber:\n options.skip && options.skip > 0 ? `gt:${options.skip}` : undefined,\n limit: options.limit ?? 100,\n order: options.order ?? 'asc',\n });\n const entries = messages\n .map(m => {\n try {\n const decoded = m as unknown as HCS6Message & {\n consensus_timestamp?: string;\n sequence_number: number;\n payer?: string;\n };\n const { valid } = this.validateMessage(\n decoded as unknown as HCS6Message,\n );\n if (!valid) return null;\n return {\n topicId,\n sequence: decoded.sequence_number,\n timestamp: decoded.consensus_timestamp || '',\n payer: decoded.payer || '',\n message: decoded as unknown as HCS6Message,\n consensus_timestamp: decoded.consensus_timestamp || '',\n registry_type: regType,\n };\n } catch {\n return null;\n }\n })\n .filter(\n (\n v,\n ): v is {\n topicId: string;\n sequence: number;\n timestamp: string;\n payer: string;\n message: HCS6Message;\n consensus_timestamp: string;\n registry_type: HCS6RegistryType;\n } => Boolean(v),\n );\n const latest = entries.length > 0 ? entries[entries.length - 1] : undefined;\n return {\n topicId,\n registryType: regType,\n ttl,\n entries,\n latestEntry: latest,\n };\n }\n\n public async mint(options: HCS6MintOptions): Promise<HCS6MintResponse> {\n try {\n await this.ensureInitialized();\n if (!options.metadataTopicId) {\n return {\n success: false,\n error: 'metadataTopicId is required for mint()',\n };\n }\n const metadata = buildHcs6Hrl(options.metadataTopicId);\n let tx = new TokenMintTransaction()\n .setTokenId(TokenId.fromString(options.tokenId))\n .setMetadata([Buffer.from(metadata)]);\n const frozen = await tx.freezeWith(this.client);\n\n if (options.supplyKey) {\n const resolver = new NodeOperatorResolver({\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n });\n const privKey =\n typeof options.supplyKey === 'string'\n ? await resolver.resolveSupplyKey(\n options.tokenId,\n options.supplyKey,\n this.operatorCtx.keyType,\n )\n : options.supplyKey;\n await frozen.sign(privKey);\n }\n\n const resp = await frozen.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const serial =\n receipt.serials && receipt.serials[0]\n ? Number(receipt.serials[0].toString())\n : undefined;\n return {\n success: true,\n serialNumber: serial,\n transactionId: resp.transactionId?.toString?.(),\n metadata,\n };\n } catch (e) {\n return { success: false, error: String(e) };\n }\n }\n\n public async inscribeAndMint(\n options: HCS6InscribeAndMintOptions,\n ): Promise<HCS6MintResponse> {\n try {\n await this.ensureInitialized();\n const inscribeOptions: InscriptionOptions = {\n ...(options.inscriptionOptions as InscriptionOptions | undefined),\n mode: 'hashinal',\n waitForConfirmation: true,\n };\n const result = await inscribe(\n options.inscriptionInput as InscriptionInput,\n {\n accountId: this.operatorId.toString(),\n privateKey: this.operatorCtx.operatorKey,\n network: this.network,\n },\n inscribeOptions,\n );\n if (!result.confirmed || !result.inscription) {\n return { success: false, error: 'Failed to inscribe content' };\n }\n const topicId =\n result.inscription.jsonTopicId || result.inscription.topic_id;\n if (!topicId) {\n return { success: false, error: 'No topic ID from inscription' };\n }\n return await this.mint({\n tokenId: options.tokenId,\n metadataTopicId: topicId,\n supplyKey: options.supplyKey,\n memo: options.memo,\n });\n } catch (e) {\n return { success: false, error: String(e) };\n }\n }\n\n public async createHashinal(\n options: HCS6CreateHashinalOptions,\n ): Promise<HCS6CreateHashinalResponse> {\n try {\n await this.ensureInitialized();\n\n let registryTopicId: string;\n let registryTransactionId: string | undefined;\n\n if (options.registryTopicId) {\n registryTopicId = options.registryTopicId;\n const topicInfo = await this.mirrorNode.getTopicInfo(registryTopicId);\n const memo = topicInfo.memo || '';\n if (!/^hcs-6:\\d:\\d+$/.test(memo)) {\n throw new Error(\n `Topic ${registryTopicId} is not a valid HCS-6 registry`,\n );\n }\n } else {\n const res = await this.createRegistry({\n ttl: options.ttl,\n submitKey: true,\n });\n if (!res.success || !res.topicId) {\n throw new Error(res.error || 'Failed to create HCS-6 registry');\n }\n registryTopicId = res.topicId;\n registryTransactionId = res.transactionId;\n }\n\n const inscriptionBuffer = Buffer.from(JSON.stringify(options.metadata));\n const inscribeOptions: InscriptionOptions = {\n ...(options.inscriptionOptions as InscriptionOptions | undefined),\n mode: 'hashinal',\n metadata: options.metadata,\n waitForConfirmation: true,\n };\n\n const result = await inscribe(\n {\n type: 'buffer',\n buffer: inscriptionBuffer,\n fileName: 'metadata.json',\n mimeType: 'application/json',\n },\n {\n accountId: this.operatorId.toString(),\n privateKey: this.operatorCtx.operatorKey,\n network: this.network,\n },\n inscribeOptions,\n );\n\n if (!result.confirmed || !result.inscription) {\n throw new Error('Failed to inscribe metadata');\n }\n const topicId =\n result.inscription.jsonTopicId || result.inscription.topic_id;\n if (!topicId) {\n throw new Error('No inscription topic ID available');\n }\n\n const reg = await this.registerEntryWithKey(\n registryTopicId,\n {\n targetTopicId: topicId,\n memo: options.memo || 'Dynamic hashinal registration',\n },\n options.submitKey,\n );\n if (!reg.success) {\n throw new Error(reg.error || 'Failed to register entry');\n }\n\n return {\n success: true,\n registryTopicId,\n inscriptionTopicId: topicId,\n transactionId: registryTransactionId,\n };\n } catch (e) {\n return { success: false, error: String(e) };\n }\n }\n\n public async register(\n options: HCS6RegisterOptions,\n ): Promise<HCS6CreateHashinalResponse> {\n try {\n await this.ensureInitialized();\n\n let registryTopicId: string;\n let registryTransactionId: string | undefined;\n\n if (options.registryTopicId) {\n registryTopicId = options.registryTopicId;\n const topicInfo = await this.mirrorNode.getTopicInfo(registryTopicId);\n const memo = topicInfo.memo || '';\n if (!/^hcs-6:\\d:\\d+$/.test(memo)) {\n throw new Error(\n `Topic ${registryTopicId} is not a valid HCS-6 registry`,\n );\n }\n } else {\n const res = await this.createRegistry({\n ttl: options.ttl,\n submitKey: true,\n });\n if (!res.success || !res.topicId) {\n throw new Error(res.error || 'Failed to create HCS-6 registry');\n }\n registryTopicId = res.topicId;\n registryTransactionId = res.transactionId;\n }\n\n let inscriptionInput: InscriptionInput;\n if (options.data?.base64) {\n const buffer = Buffer.from(options.data.base64, 'base64');\n inscriptionInput = {\n type: 'buffer',\n buffer,\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 inscriptionInput = { type: 'url', url: options.data.url };\n } else {\n inscriptionInput = {\n type: 'buffer',\n buffer: Buffer.from(JSON.stringify(options.metadata)),\n fileName: 'metadata.json',\n mimeType: 'application/json',\n };\n }\n\n const inscribeOptions: InscriptionOptions = {\n ...(options.inscriptionOptions as InscriptionOptions | undefined),\n mode: 'hashinal',\n metadata: options.metadata,\n waitForConfirmation: true,\n };\n\n const result = await inscribe(\n inscriptionInput,\n {\n accountId: this.operatorId.toString(),\n privateKey: this.operatorCtx.operatorKey,\n network: this.network,\n },\n inscribeOptions,\n );\n if (!result.confirmed || !result.inscription) {\n throw new Error('Failed to inscribe data');\n }\n const topicId =\n result.inscription.jsonTopicId || result.inscription.topic_id;\n if (!topicId) {\n throw new Error('No inscription topic ID available');\n }\n\n const reg = await this.registerEntryWithKey(\n registryTopicId,\n {\n targetTopicId: topicId,\n memo: options.memo || 'Dynamic hashinal registration',\n },\n options.submitKey,\n );\n if (!reg.success) {\n throw new Error(reg.error || 'Failed to register entry');\n }\n\n return {\n success: true,\n registryTopicId,\n inscriptionTopicId: topicId,\n transactionId: registryTransactionId,\n };\n } catch (e) {\n return { success: false, error: String(e) };\n }\n }\n}\n"],"names":[],"mappings":";;;;;;AAiDO,MAAM,mBAAmB,eAAe;AAAA,EAK7C,YAAY,QAA6B;AACvC,UAAM;AAAA,MACJ,SAAS,OAAO;AAAA,MAChB,UAAU,OAAO;AAAA,MACjB,QAAQ,OAAO;AAAA,MACf,eAAe,OAAO;AAAA,MACtB,QAAQ,OAAO;AAAA,IAAA,CAChB;AAED,SAAK,aACH,OAAO,OAAO,eAAe,WACzB,UAAU,WAAW,OAAO,UAAU,IACtC,OAAO;AAEb,SAAK,cAAc,0BAA0B;AAAA,MAC3C,SAAS,KAAK;AAAA,MACd,YAAY,KAAK;AAAA,MACjB,aAAa,OAAO;AAAA,MACpB,SAAS,OAAO;AAAA,MAChB,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,QAAQ,KAAK,aAAa,OAAO,OAAO;AAAA,IAAA,CACzC;AACD,SAAK,SAAS,KAAK,YAAY;AAAA,EACjC;AAAA,EAEA,MAAc,oBAAmC;AAC/C,UAAM,KAAK,YAAY,kBAAA;AAAA,EACzB;AAAA,EAEQ,aAAa,SAA8B;AACjD,QAAI,YAAY,WAAW;AACzB,aAAO,OAAO,WAAA;AAAA,IAChB,OAAO;AACL,aAAO,OAAO,WAAA;AAAA,IAChB;AAAA,EACF;AAAA,EAEO,QAAc;AACnB,SAAK,OAAO,KAAK,sBAAsB;AAAA,EACzC;AAAA,EAEO,aAAkC;AACvC,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEO,iBAA6B;AAClC,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,MAAa,cACX,SACA,SAC6B;AAC7B,WAAO,KAAK,qBAAqB,SAAS,SAAS,MAAS;AAAA,EAC9D;AAAA,EAEA,MAAa,qBACX,SACA,SACA,WAC6B;AAC7B,UAAM,EAAE,OAAO,OAAA,IAAW,KAAK,gBAAgB,OAAO;AACtD,QAAI,CAAC,OAAO;AACV,YAAM,IAAI,MAAM,0BAA0B,OAAO,KAAK,IAAI,CAAC,EAAE;AAAA,IAC/D;AAEA,QAAI,KAAK,IAAI,gCACV,WAAW,QAAQ,WAAW,OAAO,CAAC,EACtC,WAAW,KAAK,UAAU,OAAO,CAAC;AAErC,QAAI,CAAC,WAAW;AACd,YAAM,aAAa,MAAM,GAAG,QAAQ,KAAK,MAAM;AAC/C,aAAO,MAAM,WAAW,WAAW,KAAK,MAAM;AAAA,IAChD;AACA,UAAM,aACJ,OAAO,cAAc,WACjB,WAAW,WAAW,SAAS,IAC/B;AACN,UAAM,SAAS,MAAM,GAAG,WAAW,KAAK,MAAM;AAC9C,UAAM,OAAO,KAAK,UAAU;AAC5B,UAAM,OAAO,MAAM,OAAO,QAAQ,KAAK,MAAM;AAC7C,WAAO,MAAM,KAAK,WAAW,KAAK,MAAM;AAAA,EAC1C;AAAA,EAEA,MAAa,qBACX,iBACA,SACA,WACwC;AACxC,QAAI;AACF,YAAM,UAAuB,KAAK;AAAA,QAChC,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA;AAEV,YAAM,UAAU,MAAM,KAAK;AAAA,QACzB;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAEF,YAAM,iBACJ,QACA,qBAAqB,SAAA;AACvB,aAAO,EAAE,SAAS,MAAM,SAAS,eAAA;AAAA,IACnC,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,mCAAmC,KAAK,EAAE;AAC5D,aAAO,EAAE,SAAS,OAAO,OAAO,OAAO,KAAK,EAAA;AAAA,IAC9C;AAAA,EACF;AAAA,EAEA,MAAa,eACX,UAAuE,IAC/B;AACxC,QAAI;AACF,YAAM,KAAK,kBAAA;AACX,YAAM,MAAM,QAAQ,OAAO;AAC3B,UAAI,EAAE,OAAO,OAAO;AAClB,cAAM,IAAI,MAAM,4CAA4C;AAAA,MAC9D;AACA,UAAI;AACJ,UAAI;AACJ,UAAI,QAAQ,WAAW;AACrB,YAAI,OAAO,QAAQ,cAAc,UAAU;AACzC,cAAI;AACF,8BAAkB,UAAU,WAAW,QAAQ,SAAS;AAAA,UAC1D,QAAQ;AACN,kBAAM,WAAW,OAAO;AAAA,cACtB,QAAQ,UAAU,QAAQ,QAAQ,EAAE;AAAA,cACpC;AAAA,YAAA;AAEF,8BACE,KAAK,YAAY,YAAY,YACzB,UAAU,iBAAiB,QAAQ,IACnC,UAAU,eAAe,QAAQ;AAAA,UACzC;AAAA,QACF,WAAW,OAAO,QAAQ,cAAc,WAAW;AACjD,4BAAkB,KAAK,YAAY,YAAY;AAAA,QACjD,OAAO;AACL,4BAAkB,QAAQ,UAAU;AACpC,6BAAmB,QAAQ;AAAA,QAC7B;AAAA,MACF;AAEA,UAAI,cAAc,0BAA0B;AAAA,QAC1C;AAAA,QACA,WAAW;AAAA,QACX,UAAU,KAAK,YAAY,YAAY;AAAA,QACvC,mBAAmB,KAAK,YAAY,YAAY;AAAA,MAAA,CACjD;AAED,YAAM,WAAW,MAAM,YAAY,WAAW,KAAK,MAAM;AACzD,UAAI,kBAAkB;AACpB,cAAM,SAAS,KAAK,gBAAgB;AAAA,MACtC;AACA,YAAM,aAAa,MAAM,SAAS,QAAQ,KAAK,MAAM;AACrD,YAAM,UAAU,MAAM,WAAW,WAAW,KAAK,MAAM;AACvD,YAAM,UAAU,QAAQ;AACxB,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI;AAAA,UACR;AAAA,QAAA;AAAA,MAEJ;AACA,aAAO;AAAA,QACL,SAAS;AAAA,QACT,SAAS,QAAQ,SAAA;AAAA,QACjB,eAAe,WAAW,cAAc,SAAA;AAAA,MAAS;AAAA,IAErD,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,oCAAoC,KAAK,EAAE;AAC7D,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO,oCAAoC,KAAK;AAAA,MAAA;AAAA,IAEpD;AAAA,EACF;AAAA,EAEA,MAAa,cACX,iBACA,SACwC;AACxC,UAAM,KAAK,kBAAA;AACX,WAAO,KAAK,qBAAqB,iBAAiB,SAAS,MAAS;AAAA,EACtE;AAAA,EAEA,MAAa,YACX,SACA,UAAoC,IACR;AAC5B,UAAM,KAAK,kBAAA;AACX,UAAM,YAAY,MAAM,KAAK,WAAW,aAAa,OAAO;AAC5D,UAAM,OAAO,UAAU,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM,oBAAoB;AAC7C,QAAI,CAAC,OAAO;AACV,YAAM,IAAI;AAAA,QACR,SAAS,OAAO;AAAA,MAAA;AAAA,IAEpB;AACA,UAAM,MAAM,SAAS,MAAM,CAAC,CAAC;AAC7B,UAAM,UAAU,SAAS,MAAM,CAAC,CAAC;AACjC,UAAM,WAAW,MAAM,KAAK,WAAW,iBAAiB,SAAS;AAAA,MAC/D,gBACE,QAAQ,QAAQ,QAAQ,OAAO,IAAI,MAAM,QAAQ,IAAI,KAAK;AAAA,MAC5D,OAAO,QAAQ,SAAS;AAAA,MACxB,OAAO,QAAQ,SAAS;AAAA,IAAA,CACzB;AACD,UAAM,UAAU,SACb,IAAI,CAAA,MAAK;AACR,UAAI;AACF,cAAM,UAAU;AAKhB,cAAM,EAAE,UAAU,KAAK;AAAA,UACrB;AAAA,QAAA;AAEF,YAAI,CAAC,MAAO,QAAO;AACnB,eAAO;AAAA,UACL;AAAA,UACA,UAAU,QAAQ;AAAA,UAClB,WAAW,QAAQ,uBAAuB;AAAA,UAC1C,OAAO,QAAQ,SAAS;AAAA,UACxB,SAAS;AAAA,UACT,qBAAqB,QAAQ,uBAAuB;AAAA,UACpD,eAAe;AAAA,QAAA;AAAA,MAEnB,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF,CAAC,EACA;AAAA,MACC,CACE,MASG,QAAQ,CAAC;AAAA,IAAA;AAElB,UAAM,SAAS,QAAQ,SAAS,IAAI,QAAQ,QAAQ,SAAS,CAAC,IAAI;AAClE,WAAO;AAAA,MACL;AAAA,MACA,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA,aAAa;AAAA,IAAA;AAAA,EAEjB;AAAA,EAEA,MAAa,KAAK,SAAqD;AACrE,QAAI;AACF,YAAM,KAAK,kBAAA;AACX,UAAI,CAAC,QAAQ,iBAAiB;AAC5B,eAAO;AAAA,UACL,SAAS;AAAA,UACT,OAAO;AAAA,QAAA;AAAA,MAEX;AACA,YAAM,WAAW,aAAa,QAAQ,eAAe;AACrD,UAAI,KAAK,IAAI,qBAAA,EACV,WAAW,QAAQ,WAAW,QAAQ,OAAO,CAAC,EAC9C,YAAY,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;AACtC,YAAM,SAAS,MAAM,GAAG,WAAW,KAAK,MAAM;AAE9C,UAAI,QAAQ,WAAW;AACrB,cAAM,WAAW,IAAI,qBAAqB;AAAA,UACxC,YAAY,KAAK;AAAA,UACjB,QAAQ,KAAK;AAAA,QAAA,CACd;AACD,cAAM,UACJ,OAAO,QAAQ,cAAc,WACzB,MAAM,SAAS;AAAA,UACb,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,KAAK,YAAY;AAAA,QAAA,IAEnB,QAAQ;AACd,cAAM,OAAO,KAAK,OAAO;AAAA,MAC3B;AAEA,YAAM,OAAO,MAAM,OAAO,QAAQ,KAAK,MAAM;AAC7C,YAAM,UAAU,MAAM,KAAK,WAAW,KAAK,MAAM;AACjD,YAAM,SACJ,QAAQ,WAAW,QAAQ,QAAQ,CAAC,IAChC,OAAO,QAAQ,QAAQ,CAAC,EAAE,SAAA,CAAU,IACpC;AACN,aAAO;AAAA,QACL,SAAS;AAAA,QACT,cAAc;AAAA,QACd,eAAe,KAAK,eAAe,WAAA;AAAA,QACnC;AAAA,MAAA;AAAA,IAEJ,SAAS,GAAG;AACV,aAAO,EAAE,SAAS,OAAO,OAAO,OAAO,CAAC,EAAA;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,MAAa,gBACX,SAC2B;AAC3B,QAAI;AACF,YAAM,KAAK,kBAAA;AACX,YAAM,kBAAsC;AAAA,QAC1C,GAAI,QAAQ;AAAA,QACZ,MAAM;AAAA,QACN,qBAAqB;AAAA,MAAA;AAEvB,YAAM,SAAS,MAAM;AAAA,QACnB,QAAQ;AAAA,QACR;AAAA,UACE,WAAW,KAAK,WAAW,SAAA;AAAA,UAC3B,YAAY,KAAK,YAAY;AAAA,UAC7B,SAAS,KAAK;AAAA,QAAA;AAAA,QAEhB;AAAA,MAAA;AAEF,UAAI,CAAC,OAAO,aAAa,CAAC,OAAO,aAAa;AAC5C,eAAO,EAAE,SAAS,OAAO,OAAO,6BAAA;AAAA,MAClC;AACA,YAAM,UACJ,OAAO,YAAY,eAAe,OAAO,YAAY;AACvD,UAAI,CAAC,SAAS;AACZ,eAAO,EAAE,SAAS,OAAO,OAAO,+BAAA;AAAA,MAClC;AACA,aAAO,MAAM,KAAK,KAAK;AAAA,QACrB,SAAS,QAAQ;AAAA,QACjB,iBAAiB;AAAA,QACjB,WAAW,QAAQ;AAAA,QACnB,MAAM,QAAQ;AAAA,MAAA,CACf;AAAA,IACH,SAAS,GAAG;AACV,aAAO,EAAE,SAAS,OAAO,OAAO,OAAO,CAAC,EAAA;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,MAAa,eACX,SACqC;AACrC,QAAI;AACF,YAAM,KAAK,kBAAA;AAEX,UAAI;AACJ,UAAI;AAEJ,UAAI,QAAQ,iBAAiB;AAC3B,0BAAkB,QAAQ;AAC1B,cAAM,YAAY,MAAM,KAAK,WAAW,aAAa,eAAe;AACpE,cAAM,OAAO,UAAU,QAAQ;AAC/B,YAAI,CAAC,iBAAiB,KAAK,IAAI,GAAG;AAChC,gBAAM,IAAI;AAAA,YACR,SAAS,eAAe;AAAA,UAAA;AAAA,QAE5B;AAAA,MACF,OAAO;AACL,cAAM,MAAM,MAAM,KAAK,eAAe;AAAA,UACpC,KAAK,QAAQ;AAAA,UACb,WAAW;AAAA,QAAA,CACZ;AACD,YAAI,CAAC,IAAI,WAAW,CAAC,IAAI,SAAS;AAChC,gBAAM,IAAI,MAAM,IAAI,SAAS,iCAAiC;AAAA,QAChE;AACA,0BAAkB,IAAI;AACtB,gCAAwB,IAAI;AAAA,MAC9B;AAEA,YAAM,oBAAoB,OAAO,KAAK,KAAK,UAAU,QAAQ,QAAQ,CAAC;AACtE,YAAM,kBAAsC;AAAA,QAC1C,GAAI,QAAQ;AAAA,QACZ,MAAM;AAAA,QACN,UAAU,QAAQ;AAAA,QAClB,qBAAqB;AAAA,MAAA;AAGvB,YAAM,SAAS,MAAM;AAAA,QACnB;AAAA,UACE,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,UAAU;AAAA,QAAA;AAAA,QAEZ;AAAA,UACE,WAAW,KAAK,WAAW,SAAA;AAAA,UAC3B,YAAY,KAAK,YAAY;AAAA,UAC7B,SAAS,KAAK;AAAA,QAAA;AAAA,QAEhB;AAAA,MAAA;AAGF,UAAI,CAAC,OAAO,aAAa,CAAC,OAAO,aAAa;AAC5C,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C;AACA,YAAM,UACJ,OAAO,YAAY,eAAe,OAAO,YAAY;AACvD,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI,MAAM,mCAAmC;AAAA,MACrD;AAEA,YAAM,MAAM,MAAM,KAAK;AAAA,QACrB;AAAA,QACA;AAAA,UACE,eAAe;AAAA,UACf,MAAM,QAAQ,QAAQ;AAAA,QAAA;AAAA,QAExB,QAAQ;AAAA,MAAA;AAEV,UAAI,CAAC,IAAI,SAAS;AAChB,cAAM,IAAI,MAAM,IAAI,SAAS,0BAA0B;AAAA,MACzD;AAEA,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA,oBAAoB;AAAA,QACpB,eAAe;AAAA,MAAA;AAAA,IAEnB,SAAS,GAAG;AACV,aAAO,EAAE,SAAS,OAAO,OAAO,OAAO,CAAC,EAAA;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,MAAa,SACX,SACqC;AACrC,QAAI;AACF,YAAM,KAAK,kBAAA;AAEX,UAAI;AACJ,UAAI;AAEJ,UAAI,QAAQ,iBAAiB;AAC3B,0BAAkB,QAAQ;AAC1B,cAAM,YAAY,MAAM,KAAK,WAAW,aAAa,eAAe;AACpE,cAAM,OAAO,UAAU,QAAQ;AAC/B,YAAI,CAAC,iBAAiB,KAAK,IAAI,GAAG;AAChC,gBAAM,IAAI;AAAA,YACR,SAAS,eAAe;AAAA,UAAA;AAAA,QAE5B;AAAA,MACF,OAAO;AACL,cAAM,MAAM,MAAM,KAAK,eAAe;AAAA,UACpC,KAAK,QAAQ;AAAA,UACb,WAAW;AAAA,QAAA,CACZ;AACD,YAAI,CAAC,IAAI,WAAW,CAAC,IAAI,SAAS;AAChC,gBAAM,IAAI,MAAM,IAAI,SAAS,iCAAiC;AAAA,QAChE;AACA,0BAAkB,IAAI;AACtB,gCAAwB,IAAI;AAAA,MAC9B;AAEA,UAAI;AACJ,UAAI,QAAQ,MAAM,QAAQ;AACxB,cAAM,SAAS,OAAO,KAAK,QAAQ,KAAK,QAAQ,QAAQ;AACxD,2BAAmB;AAAA,UACjB,MAAM;AAAA,UACN;AAAA,UACA,UAAU,QAAQ,QAAQ,KAAK,UAAU,MAAM,GAAG,EAAE,CAAC,KAAK,KAAK;AAAA,UAC/D,UAAU,QAAQ,KAAK,YAAY;AAAA,QAAA;AAAA,MAEvC,WAAW,QAAQ,MAAM,KAAK;AAC5B,2BAAmB,EAAE,MAAM,OAAO,KAAK,QAAQ,KAAK,IAAA;AAAA,MACtD,OAAO;AACL,2BAAmB;AAAA,UACjB,MAAM;AAAA,UACN,QAAQ,OAAO,KAAK,KAAK,UAAU,QAAQ,QAAQ,CAAC;AAAA,UACpD,UAAU;AAAA,UACV,UAAU;AAAA,QAAA;AAAA,MAEd;AAEA,YAAM,kBAAsC;AAAA,QAC1C,GAAI,QAAQ;AAAA,QACZ,MAAM;AAAA,QACN,UAAU,QAAQ;AAAA,QAClB,qBAAqB;AAAA,MAAA;AAGvB,YAAM,SAAS,MAAM;AAAA,QACnB;AAAA,QACA;AAAA,UACE,WAAW,KAAK,WAAW,SAAA;AAAA,UAC3B,YAAY,KAAK,YAAY;AAAA,UAC7B,SAAS,KAAK;AAAA,QAAA;AAAA,QAEhB;AAAA,MAAA;AAEF,UAAI,CAAC,OAAO,aAAa,CAAC,OAAO,aAAa;AAC5C,cAAM,IAAI,MAAM,yBAAyB;AAAA,MAC3C;AACA,YAAM,UACJ,OAAO,YAAY,eAAe,OAAO,YAAY;AACvD,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI,MAAM,mCAAmC;AAAA,MACrD;AAEA,YAAM,MAAM,MAAM,KAAK;AAAA,QACrB;AAAA,QACA;AAAA,UACE,eAAe;AAAA,UACf,MAAM,QAAQ,QAAQ;AAAA,QAAA;AAAA,QAExB,QAAQ;AAAA,MAAA;AAEV,UAAI,CAAC,IAAI,SAAS;AAChB,cAAM,IAAI,MAAM,IAAI,SAAS,0BAA0B;AAAA,MACzD;AAEA,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA,oBAAoB;AAAA,QACpB,eAAe;AAAA,MAAA;AAAA,IAEnB,SAAS,GAAG;AACV,aAAO,EAAE,SAAS,OAAO,OAAO,OAAO,CAAC,EAAA;AAAA,IAC1C;AAAA,EACF;AACF;"}