@hashgraphonline/standards-sdk 0.1.161 → 0.1.163

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/dist/cjs/hcs-14/index.d.ts +1 -0
  2. package/dist/cjs/hcs-14/index.d.ts.map +1 -1
  3. package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts +1 -0
  4. package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -1
  5. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts +23 -0
  6. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts.map +1 -0
  7. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile.d.ts +32 -0
  8. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile.d.ts.map +1 -0
  9. package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts +1 -0
  10. package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -1
  11. package/dist/cjs/hcs-14/resolvers/hiero.d.ts +1 -0
  12. package/dist/cjs/hcs-14/resolvers/hiero.d.ts.map +1 -1
  13. package/dist/cjs/hcs-14/resolvers/registry.d.ts +21 -0
  14. package/dist/cjs/hcs-14/resolvers/registry.d.ts.map +1 -1
  15. package/dist/cjs/hcs-14/resolvers/types.d.ts +40 -5
  16. package/dist/cjs/hcs-14/resolvers/types.d.ts.map +1 -1
  17. package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +1 -0
  18. package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -1
  19. package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts +1 -0
  20. package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -1
  21. package/dist/cjs/hcs-14/sdk.d.ts +23 -1
  22. package/dist/cjs/hcs-14/sdk.d.ts.map +1 -1
  23. package/dist/cjs/hcs-2/client.d.ts +7 -1
  24. package/dist/cjs/hcs-2/client.d.ts.map +1 -1
  25. package/dist/cjs/hcs-2/types.d.ts +2 -0
  26. package/dist/cjs/hcs-2/types.d.ts.map +1 -1
  27. package/dist/cjs/standards-sdk.cjs +2 -2
  28. package/dist/cjs/standards-sdk.cjs.map +1 -1
  29. package/dist/es/hcs-14/index.d.ts +1 -0
  30. package/dist/es/hcs-14/index.d.ts.map +1 -1
  31. package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts +1 -0
  32. package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -1
  33. package/dist/es/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts +23 -0
  34. package/dist/es/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts.map +1 -0
  35. package/dist/es/hcs-14/resolvers/ans-dns-web-profile.d.ts +32 -0
  36. package/dist/es/hcs-14/resolvers/ans-dns-web-profile.d.ts.map +1 -0
  37. package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts +1 -0
  38. package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -1
  39. package/dist/es/hcs-14/resolvers/hiero.d.ts +1 -0
  40. package/dist/es/hcs-14/resolvers/hiero.d.ts.map +1 -1
  41. package/dist/es/hcs-14/resolvers/registry.d.ts +21 -0
  42. package/dist/es/hcs-14/resolvers/registry.d.ts.map +1 -1
  43. package/dist/es/hcs-14/resolvers/types.d.ts +40 -5
  44. package/dist/es/hcs-14/resolvers/types.d.ts.map +1 -1
  45. package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +1 -0
  46. package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -1
  47. package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts +1 -0
  48. package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -1
  49. package/dist/es/hcs-14/sdk.d.ts +23 -1
  50. package/dist/es/hcs-14/sdk.d.ts.map +1 -1
  51. package/dist/es/hcs-2/client.d.ts +7 -1
  52. package/dist/es/hcs-2/client.d.ts.map +1 -1
  53. package/dist/es/hcs-2/types.d.ts +2 -0
  54. package/dist/es/hcs-2/types.d.ts.map +1 -1
  55. package/dist/es/standards-sdk.es.js +89 -86
  56. package/dist/es/standards-sdk.es.js.map +1 -1
  57. package/dist/es/standards-sdk.es100.js +136 -124
  58. package/dist/es/standards-sdk.es100.js.map +1 -1
  59. package/dist/es/standards-sdk.es101.js +138 -42
  60. package/dist/es/standards-sdk.es101.js.map +1 -1
  61. package/dist/es/standards-sdk.es102.js +43 -259
  62. package/dist/es/standards-sdk.es102.js.map +1 -1
  63. package/dist/es/standards-sdk.es103.js +245 -82
  64. package/dist/es/standards-sdk.es103.js.map +1 -1
  65. package/dist/es/standards-sdk.es104.js +50 -49
  66. package/dist/es/standards-sdk.es104.js.map +1 -1
  67. package/dist/es/standards-sdk.es105.js +100 -29
  68. package/dist/es/standards-sdk.es105.js.map +1 -1
  69. package/dist/es/standards-sdk.es106.js +27 -229
  70. package/dist/es/standards-sdk.es106.js.map +1 -1
  71. package/dist/es/standards-sdk.es107.js +228 -109
  72. package/dist/es/standards-sdk.es107.js.map +1 -1
  73. package/dist/es/standards-sdk.es108.js +94 -15
  74. package/dist/es/standards-sdk.es108.js.map +1 -1
  75. package/dist/es/standards-sdk.es109.js +30 -80
  76. package/dist/es/standards-sdk.es109.js.map +1 -1
  77. package/dist/es/standards-sdk.es11.js +1 -1
  78. package/dist/es/standards-sdk.es110.js +80 -27
  79. package/dist/es/standards-sdk.es110.js.map +1 -1
  80. package/dist/es/standards-sdk.es111.js +27 -248
  81. package/dist/es/standards-sdk.es111.js.map +1 -1
  82. package/dist/es/standards-sdk.es112.js +246 -472
  83. package/dist/es/standards-sdk.es112.js.map +1 -1
  84. package/dist/es/standards-sdk.es113.js +458 -85
  85. package/dist/es/standards-sdk.es113.js.map +1 -1
  86. package/dist/es/standards-sdk.es114.js +96 -151
  87. package/dist/es/standards-sdk.es114.js.map +1 -1
  88. package/dist/es/standards-sdk.es115.js +155 -29
  89. package/dist/es/standards-sdk.es115.js.map +1 -1
  90. package/dist/es/standards-sdk.es116.js +26 -4
  91. package/dist/es/standards-sdk.es116.js.map +1 -1
  92. package/dist/es/standards-sdk.es117.js +10 -140
  93. package/dist/es/standards-sdk.es117.js.map +1 -1
  94. package/dist/es/standards-sdk.es118.js +140 -27
  95. package/dist/es/standards-sdk.es118.js.map +1 -1
  96. package/dist/es/standards-sdk.es119.js +27 -20
  97. package/dist/es/standards-sdk.es119.js.map +1 -1
  98. package/dist/es/standards-sdk.es12.js +1 -1
  99. package/dist/es/standards-sdk.es120.js +18 -156
  100. package/dist/es/standards-sdk.es120.js.map +1 -1
  101. package/dist/es/standards-sdk.es121.js +148 -191
  102. package/dist/es/standards-sdk.es121.js.map +1 -1
  103. package/dist/es/standards-sdk.es122.js +160 -747
  104. package/dist/es/standards-sdk.es122.js.map +1 -1
  105. package/dist/es/standards-sdk.es123.js +786 -9
  106. package/dist/es/standards-sdk.es123.js.map +1 -1
  107. package/dist/es/standards-sdk.es124.js +13 -567
  108. package/dist/es/standards-sdk.es124.js.map +1 -1
  109. package/dist/es/standards-sdk.es125.js +541 -576
  110. package/dist/es/standards-sdk.es125.js.map +1 -1
  111. package/dist/es/standards-sdk.es126.js +601 -12
  112. package/dist/es/standards-sdk.es126.js.map +1 -1
  113. package/dist/es/standards-sdk.es127.js +13 -2
  114. package/dist/es/standards-sdk.es127.js.map +1 -1
  115. package/dist/es/standards-sdk.es128.js +2 -87
  116. package/dist/es/standards-sdk.es128.js.map +1 -1
  117. package/dist/es/standards-sdk.es129.js +84 -37
  118. package/dist/es/standards-sdk.es129.js.map +1 -1
  119. package/dist/es/standards-sdk.es13.js +1 -1
  120. package/dist/es/standards-sdk.es130.js +40 -2
  121. package/dist/es/standards-sdk.es130.js.map +1 -1
  122. package/dist/es/standards-sdk.es131.js +2 -235
  123. package/dist/es/standards-sdk.es131.js.map +1 -1
  124. package/dist/es/standards-sdk.es132.js +204 -1109
  125. package/dist/es/standards-sdk.es132.js.map +1 -1
  126. package/dist/es/standards-sdk.es133.js +1059 -225
  127. package/dist/es/standards-sdk.es133.js.map +1 -1
  128. package/dist/es/standards-sdk.es134.js +303 -419
  129. package/dist/es/standards-sdk.es134.js.map +1 -1
  130. package/dist/es/standards-sdk.es135.js +418 -351
  131. package/dist/es/standards-sdk.es135.js.map +1 -1
  132. package/dist/es/standards-sdk.es136.js +347 -1108
  133. package/dist/es/standards-sdk.es136.js.map +1 -1
  134. package/dist/es/standards-sdk.es137.js +1088 -180
  135. package/dist/es/standards-sdk.es137.js.map +1 -1
  136. package/dist/es/standards-sdk.es138.js +153 -1512
  137. package/dist/es/standards-sdk.es138.js.map +1 -1
  138. package/dist/es/standards-sdk.es139.js +1567 -1255
  139. package/dist/es/standards-sdk.es139.js.map +1 -1
  140. package/dist/es/standards-sdk.es14.js +1 -1
  141. package/dist/es/standards-sdk.es140.js +1255 -17
  142. package/dist/es/standards-sdk.es140.js.map +1 -1
  143. package/dist/es/standards-sdk.es141.js +15 -85
  144. package/dist/es/standards-sdk.es141.js.map +1 -1
  145. package/dist/es/standards-sdk.es142.js +77 -71
  146. package/dist/es/standards-sdk.es142.js.map +1 -1
  147. package/dist/es/standards-sdk.es143.js +79 -891
  148. package/dist/es/standards-sdk.es143.js.map +1 -1
  149. package/dist/es/standards-sdk.es144.js +886 -53
  150. package/dist/es/standards-sdk.es144.js.map +1 -1
  151. package/dist/es/standards-sdk.es145.js +53 -152
  152. package/dist/es/standards-sdk.es145.js.map +1 -1
  153. package/dist/es/standards-sdk.es146.js +159 -7
  154. package/dist/es/standards-sdk.es146.js.map +1 -1
  155. package/dist/es/standards-sdk.es147.js +7 -86
  156. package/dist/es/standards-sdk.es147.js.map +1 -1
  157. package/dist/es/standards-sdk.es148.js +65 -44
  158. package/dist/es/standards-sdk.es148.js.map +1 -1
  159. package/dist/es/standards-sdk.es149.js +65 -30
  160. package/dist/es/standards-sdk.es149.js.map +1 -1
  161. package/dist/es/standards-sdk.es15.js +1 -1
  162. package/dist/es/standards-sdk.es150.js +30 -34
  163. package/dist/es/standards-sdk.es150.js.map +1 -1
  164. package/dist/es/standards-sdk.es151.js +34 -45
  165. package/dist/es/standards-sdk.es151.js.map +1 -1
  166. package/dist/es/standards-sdk.es152.js +48 -138
  167. package/dist/es/standards-sdk.es152.js.map +1 -1
  168. package/dist/es/standards-sdk.es153.js +133 -37
  169. package/dist/es/standards-sdk.es153.js.map +1 -1
  170. package/dist/es/standards-sdk.es154.js +34 -12474
  171. package/dist/es/standards-sdk.es154.js.map +1 -1
  172. package/dist/es/standards-sdk.es155.js +12477 -12
  173. package/dist/es/standards-sdk.es155.js.map +1 -1
  174. package/dist/es/standards-sdk.es156.js +15 -54
  175. package/dist/es/standards-sdk.es156.js.map +1 -1
  176. package/dist/es/standards-sdk.es157.js +48 -76
  177. package/dist/es/standards-sdk.es157.js.map +1 -1
  178. package/dist/es/standards-sdk.es158.js +69 -66
  179. package/dist/es/standards-sdk.es158.js.map +1 -1
  180. package/dist/es/standards-sdk.es159.js +71 -63
  181. package/dist/es/standards-sdk.es159.js.map +1 -1
  182. package/dist/es/standards-sdk.es16.js +5 -5
  183. package/dist/es/standards-sdk.es160.js +188 -160
  184. package/dist/es/standards-sdk.es160.js.map +1 -1
  185. package/dist/es/standards-sdk.es161.js +232 -312
  186. package/dist/es/standards-sdk.es161.js.map +1 -1
  187. package/dist/es/standards-sdk.es162.js +64 -337
  188. package/dist/es/standards-sdk.es162.js.map +1 -1
  189. package/dist/es/standards-sdk.es163.js +129 -410
  190. package/dist/es/standards-sdk.es163.js.map +1 -1
  191. package/dist/es/standards-sdk.es164.js +200 -209
  192. package/dist/es/standards-sdk.es164.js.map +1 -1
  193. package/dist/es/standards-sdk.es165.js +334 -64
  194. package/dist/es/standards-sdk.es165.js.map +1 -1
  195. package/dist/es/standards-sdk.es166.js +442 -231
  196. package/dist/es/standards-sdk.es166.js.map +1 -1
  197. package/dist/es/standards-sdk.es167.js +317 -158
  198. package/dist/es/standards-sdk.es167.js.map +1 -1
  199. package/dist/es/standards-sdk.es168.js +61 -207
  200. package/dist/es/standards-sdk.es168.js.map +1 -1
  201. package/dist/es/standards-sdk.es169.js +155 -222
  202. package/dist/es/standards-sdk.es169.js.map +1 -1
  203. package/dist/es/standards-sdk.es170.js +178 -75
  204. package/dist/es/standards-sdk.es170.js.map +1 -1
  205. package/dist/es/standards-sdk.es171.js +226 -113
  206. package/dist/es/standards-sdk.es171.js.map +1 -1
  207. package/dist/es/standards-sdk.es172.js +77 -119
  208. package/dist/es/standards-sdk.es172.js.map +1 -1
  209. package/dist/es/standards-sdk.es173.js +103 -162
  210. package/dist/es/standards-sdk.es173.js.map +1 -1
  211. package/dist/es/standards-sdk.es174.js +141 -119
  212. package/dist/es/standards-sdk.es174.js.map +1 -1
  213. package/dist/es/standards-sdk.es175.js +152 -298
  214. package/dist/es/standards-sdk.es175.js.map +1 -1
  215. package/dist/es/standards-sdk.es176.js +120 -240
  216. package/dist/es/standards-sdk.es176.js.map +1 -1
  217. package/dist/es/standards-sdk.es177.js +298 -83
  218. package/dist/es/standards-sdk.es177.js.map +1 -1
  219. package/dist/es/standards-sdk.es178.js +262 -0
  220. package/dist/es/standards-sdk.es178.js.map +1 -0
  221. package/dist/es/standards-sdk.es179.js +119 -0
  222. package/dist/es/standards-sdk.es179.js.map +1 -0
  223. package/dist/es/standards-sdk.es18.js +12 -12
  224. package/dist/es/standards-sdk.es19.js +9 -9
  225. package/dist/es/standards-sdk.es2.js +2 -2
  226. package/dist/es/standards-sdk.es20.js +1 -1
  227. package/dist/es/standards-sdk.es21.js +1 -1
  228. package/dist/es/standards-sdk.es22.js +1 -1
  229. package/dist/es/standards-sdk.es23.js +1 -1
  230. package/dist/es/standards-sdk.es24.js +1 -1
  231. package/dist/es/standards-sdk.es25.js +1 -1
  232. package/dist/es/standards-sdk.es26.js +1 -1
  233. package/dist/es/standards-sdk.es27.js +12 -12
  234. package/dist/es/standards-sdk.es30.js +2 -2
  235. package/dist/es/standards-sdk.es31.js +4 -4
  236. package/dist/es/standards-sdk.es32.js +1 -1
  237. package/dist/es/standards-sdk.es35.js +6 -6
  238. package/dist/es/standards-sdk.es36.js +4 -4
  239. package/dist/es/standards-sdk.es37.js +2 -2
  240. package/dist/es/standards-sdk.es38.js +2 -2
  241. package/dist/es/standards-sdk.es39.js +1 -1
  242. package/dist/es/standards-sdk.es4.js +2 -2
  243. package/dist/es/standards-sdk.es40.js +1 -1
  244. package/dist/es/standards-sdk.es41.js +2 -2
  245. package/dist/es/standards-sdk.es46.js +1 -1
  246. package/dist/es/standards-sdk.es5.js +2 -2
  247. package/dist/es/standards-sdk.es51.js +1 -1
  248. package/dist/es/standards-sdk.es53.js +1 -1
  249. package/dist/es/standards-sdk.es56.js +2 -2
  250. package/dist/es/standards-sdk.es58.js +37 -4
  251. package/dist/es/standards-sdk.es58.js.map +1 -1
  252. package/dist/es/standards-sdk.es59.js +17 -10
  253. package/dist/es/standards-sdk.es59.js.map +1 -1
  254. package/dist/es/standards-sdk.es6.js +2 -2
  255. package/dist/es/standards-sdk.es60.js +2 -1
  256. package/dist/es/standards-sdk.es60.js.map +1 -1
  257. package/dist/es/standards-sdk.es61.js +1 -0
  258. package/dist/es/standards-sdk.es61.js.map +1 -1
  259. package/dist/es/standards-sdk.es62.js +19 -5
  260. package/dist/es/standards-sdk.es62.js.map +1 -1
  261. package/dist/es/standards-sdk.es63.js +214 -153
  262. package/dist/es/standards-sdk.es63.js.map +1 -1
  263. package/dist/es/standards-sdk.es64.js +205 -84
  264. package/dist/es/standards-sdk.es64.js.map +1 -1
  265. package/dist/es/standards-sdk.es65.js +125 -40
  266. package/dist/es/standards-sdk.es65.js.map +1 -1
  267. package/dist/es/standards-sdk.es66.js +41 -261
  268. package/dist/es/standards-sdk.es66.js.map +1 -1
  269. package/dist/es/standards-sdk.es67.js +262 -24
  270. package/dist/es/standards-sdk.es67.js.map +1 -1
  271. package/dist/es/standards-sdk.es68.js +25 -87
  272. package/dist/es/standards-sdk.es68.js.map +1 -1
  273. package/dist/es/standards-sdk.es69.js +95 -3
  274. package/dist/es/standards-sdk.es69.js.map +1 -1
  275. package/dist/es/standards-sdk.es7.js +1 -1
  276. package/dist/es/standards-sdk.es70.js +3 -100
  277. package/dist/es/standards-sdk.es70.js.map +1 -1
  278. package/dist/es/standards-sdk.es71.js +62 -61
  279. package/dist/es/standards-sdk.es71.js.map +1 -1
  280. package/dist/es/standards-sdk.es72.js +98 -17
  281. package/dist/es/standards-sdk.es72.js.map +1 -1
  282. package/dist/es/standards-sdk.es73.js +19 -77
  283. package/dist/es/standards-sdk.es73.js.map +1 -1
  284. package/dist/es/standards-sdk.es74.js +77 -458
  285. package/dist/es/standards-sdk.es74.js.map +1 -1
  286. package/dist/es/standards-sdk.es75.js +332 -107
  287. package/dist/es/standards-sdk.es75.js.map +1 -1
  288. package/dist/es/standards-sdk.es76.js +286 -170
  289. package/dist/es/standards-sdk.es76.js.map +1 -1
  290. package/dist/es/standards-sdk.es77.js +207 -71
  291. package/dist/es/standards-sdk.es77.js.map +1 -1
  292. package/dist/es/standards-sdk.es78.js +72 -71
  293. package/dist/es/standards-sdk.es78.js.map +1 -1
  294. package/dist/es/standards-sdk.es79.js +71 -143
  295. package/dist/es/standards-sdk.es79.js.map +1 -1
  296. package/dist/es/standards-sdk.es80.js +136 -62
  297. package/dist/es/standards-sdk.es80.js.map +1 -1
  298. package/dist/es/standards-sdk.es81.js +45 -380
  299. package/dist/es/standards-sdk.es81.js.map +1 -1
  300. package/dist/es/standards-sdk.es82.js +130 -222
  301. package/dist/es/standards-sdk.es82.js.map +1 -1
  302. package/dist/es/standards-sdk.es83.js +444 -313
  303. package/dist/es/standards-sdk.es83.js.map +1 -1
  304. package/dist/es/standards-sdk.es84.js +364 -88
  305. package/dist/es/standards-sdk.es84.js.map +1 -1
  306. package/dist/es/standards-sdk.es85.js +89 -125
  307. package/dist/es/standards-sdk.es85.js.map +1 -1
  308. package/dist/es/standards-sdk.es86.js +125 -8
  309. package/dist/es/standards-sdk.es86.js.map +1 -1
  310. package/dist/es/standards-sdk.es87.js +6 -45
  311. package/dist/es/standards-sdk.es87.js.map +1 -1
  312. package/dist/es/standards-sdk.es88.js +44 -98
  313. package/dist/es/standards-sdk.es88.js.map +1 -1
  314. package/dist/es/standards-sdk.es89.js +84 -331
  315. package/dist/es/standards-sdk.es89.js.map +1 -1
  316. package/dist/es/standards-sdk.es9.js +2 -2
  317. package/dist/es/standards-sdk.es90.js +160 -93
  318. package/dist/es/standards-sdk.es90.js.map +1 -1
  319. package/dist/es/standards-sdk.es91.js +275 -55
  320. package/dist/es/standards-sdk.es91.js.map +1 -1
  321. package/dist/es/standards-sdk.es92.js +55 -43
  322. package/dist/es/standards-sdk.es92.js.map +1 -1
  323. package/dist/es/standards-sdk.es93.js +44 -145
  324. package/dist/es/standards-sdk.es93.js.map +1 -1
  325. package/dist/es/standards-sdk.es94.js +113 -30
  326. package/dist/es/standards-sdk.es94.js.map +1 -1
  327. package/dist/es/standards-sdk.es95.js +59 -22
  328. package/dist/es/standards-sdk.es95.js.map +1 -1
  329. package/dist/es/standards-sdk.es96.js +28 -23
  330. package/dist/es/standards-sdk.es96.js.map +1 -1
  331. package/dist/es/standards-sdk.es97.js +23 -238
  332. package/dist/es/standards-sdk.es97.js.map +1 -1
  333. package/dist/es/standards-sdk.es98.js +225 -267
  334. package/dist/es/standards-sdk.es98.js.map +1 -1
  335. package/dist/es/standards-sdk.es99.js +220 -95
  336. package/dist/es/standards-sdk.es99.js.map +1 -1
  337. package/package.json +5 -1
@@ -1,285 +1,243 @@
1
- import { AccountId, Client, ScheduleSignTransaction } from "@hashgraph/sdk";
2
- import "./standards-sdk.es117.js";
3
- import { HCS11Client } from "./standards-sdk.es27.js";
4
- import { createNodeOperatorContext } from "./standards-sdk.es152.js";
5
- import { HederaMirrorNode } from "./standards-sdk.es138.js";
6
- import { HCS16BaseClient } from "./standards-sdk.es100.js";
7
- import { buildHcs16CreateFloraTopicTx, buildHcs16CreateAccountTx, buildHcs16FloraCreatedTx, buildHcs16TransactionTx, buildHcs16StateUpdateTx, buildHcs16FloraJoinRequestTx, buildHcs16FloraJoinVoteTx, buildHcs16FloraJoinAcceptedTx } from "./standards-sdk.es97.js";
8
- class HCS16Client extends HCS16BaseClient {
9
- constructor(config) {
10
- super({ network: config.network, logger: config.logger });
11
- this.operatorId = AccountId.fromString(config.operatorId);
12
- const mirror = new HederaMirrorNode(config.network, this.logger);
13
- this.operatorCtx = createNodeOperatorContext({
14
- network: config.network,
15
- operatorId: this.operatorId,
16
- operatorKey: config.operatorKey,
17
- keyType: config.keyType,
18
- mirrorNode: mirror,
19
- logger: this.logger,
20
- client: config.network === "mainnet" ? Client.forMainnet() : Client.forTestnet()
21
- });
22
- this.client = this.operatorCtx.client;
23
- }
24
- async ensureOperatorReady() {
25
- await this.operatorCtx.ensureInitialized();
1
+ import { AccountId, TopicCreateTransaction, CustomFixedFee, TokenId, AccountCreateTransaction, Hbar, AccountUpdateTransaction, ScheduleCreateTransaction, TopicUpdateTransaction } from "@hashgraph/sdk";
2
+ import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es154.js";
3
+ import { FloraOperation, FloraTopicType } from "./standards-sdk.es97.js";
4
+ const HCS16_FLORA_ACCOUNT_CREATE_TRANSACTION_MEMO = "hcs-16:op:0:0";
5
+ const HCS17_STATE_HASH_TRANSACTION_MEMO = "hcs-17:op:6:2";
6
+ const HCS16_ACCOUNT_KEY_UPDATE_TRANSACTION_MEMO = "hcs-16:op:1:1";
7
+ const HCS16_TOPIC_KEY_UPDATE_TRANSACTION_MEMO = "hcs-16:op:1:1";
8
+ function normalizeTransactionMemo(value, fallback) {
9
+ if (typeof value !== "string") return fallback;
10
+ const trimmed = value.trim();
11
+ if (!trimmed) return fallback;
12
+ return trimmed;
13
+ }
14
+ function encodeHcs16FloraMemo(params) {
15
+ return `hcs-16:${params.floraAccountId}:${params.topicType}`;
16
+ }
17
+ function encodeHcs16TopicCreateTransactionMemo(topicType) {
18
+ return `hcs-16:op:${HCS16_OPERATION_ENUM_BY_OP[FloraOperation.FLORA_CREATED]}:${topicType}`;
19
+ }
20
+ const HCS16_OPERATION_ENUM_BY_OP = {
21
+ [FloraOperation.FLORA_CREATED]: 0,
22
+ [FloraOperation.TRANSACTION]: 1,
23
+ [FloraOperation.STATE_UPDATE]: 2,
24
+ [FloraOperation.FLORA_JOIN_REQUEST]: 3,
25
+ [FloraOperation.FLORA_JOIN_VOTE]: 4,
26
+ [FloraOperation.FLORA_JOIN_ACCEPTED]: 5
27
+ };
28
+ const HCS16_TOPIC_TYPE_BY_OP = {
29
+ [FloraOperation.FLORA_CREATED]: FloraTopicType.COMMUNICATION,
30
+ [FloraOperation.TRANSACTION]: FloraTopicType.TRANSACTION,
31
+ [FloraOperation.STATE_UPDATE]: FloraTopicType.STATE,
32
+ [FloraOperation.FLORA_JOIN_REQUEST]: FloraTopicType.COMMUNICATION,
33
+ [FloraOperation.FLORA_JOIN_VOTE]: FloraTopicType.COMMUNICATION,
34
+ [FloraOperation.FLORA_JOIN_ACCEPTED]: FloraTopicType.STATE
35
+ };
36
+ function encodeHcs16MessageSubmitTransactionMemo(op) {
37
+ return `hcs-16:op:${HCS16_OPERATION_ENUM_BY_OP[op]}:${HCS16_TOPIC_TYPE_BY_OP[op]}`;
38
+ }
39
+ function buildHcs16CreateFloraTopicTx(params) {
40
+ const memo = encodeHcs16FloraMemo({
41
+ floraAccountId: params.floraAccountId,
42
+ topicType: params.topicType
43
+ });
44
+ const tx = buildTopicCreateTx({
45
+ memo,
46
+ adminKey: params.adminKey,
47
+ submitKey: params.submitKey,
48
+ operatorPublicKey: params.operatorPublicKey
49
+ });
50
+ tx.setTransactionMemo(
51
+ normalizeTransactionMemo(
52
+ params.transactionMemo,
53
+ encodeHcs16TopicCreateTransactionMemo(params.topicType)
54
+ )
55
+ );
56
+ if (params.autoRenewAccountId) {
57
+ tx.setAutoRenewAccountId(AccountId.fromString(params.autoRenewAccountId));
26
58
  }
27
- /**
28
- * Create a Flora topic with memo `hcs-16:<floraAccountId>:<topicType>`.
29
- */
30
- async createFloraTopic(params) {
31
- await this.ensureOperatorReady();
32
- const tx = buildHcs16CreateFloraTopicTx({
33
- floraAccountId: params.floraAccountId,
34
- topicType: params.topicType,
35
- adminKey: params.adminKey,
36
- submitKey: params.submitKey,
37
- operatorPublicKey: this.client.operatorPublicKey || void 0,
38
- autoRenewAccountId: params.autoRenewAccountId
39
- });
40
- const signerKeys = params.signerKeys ?? [];
41
- if (signerKeys.length > 0) {
42
- const frozen = await tx.freezeWith(this.client);
43
- let signed = frozen;
44
- for (const key of signerKeys) {
45
- signed = await signed.sign(key);
46
- }
47
- const resp2 = await signed.execute(this.client);
48
- const receipt2 = await resp2.getReceipt(this.client);
49
- if (!receipt2.topicId) {
50
- throw new Error("Failed to create Flora topic");
51
- }
52
- return receipt2.topicId.toString();
53
- }
54
- const resp = await tx.execute(this.client);
55
- const receipt = await resp.getReceipt(this.client);
56
- if (!receipt.topicId) {
57
- throw new Error("Failed to create Flora topic");
58
- }
59
- return receipt.topicId.toString();
59
+ return tx;
60
+ }
61
+ function buildHcs16CreateTransactionTopicTx(params) {
62
+ const tx = new TopicCreateTransaction().setTopicMemo(params.memo);
63
+ if (params.adminKey) {
64
+ tx.setAdminKey(params.adminKey);
60
65
  }
61
- async createFloraAccount(params) {
62
- await this.ensureOperatorReady();
63
- const tx = buildHcs16CreateAccountTx({
64
- keyList: params.keyList,
65
- initialBalanceHbar: params.initialBalanceHbar,
66
- maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations
67
- });
68
- const resp = await tx.execute(this.client);
69
- const receipt = await resp.getReceipt(this.client);
70
- if (!receipt.accountId) {
71
- throw new Error("Failed to create Flora account");
72
- }
73
- return { accountId: receipt.accountId.toString(), receipt };
66
+ if (params.submitKey) {
67
+ tx.setSubmitKey(params.submitKey);
74
68
  }
75
- async sendFloraCreated(params) {
76
- await this.ensureOperatorReady();
77
- const tx = buildHcs16FloraCreatedTx(params);
78
- const resp = await tx.execute(this.client);
79
- return resp.getReceipt(this.client);
69
+ if (params.feeScheduleKey) {
70
+ tx.setFeeScheduleKey(params.feeScheduleKey);
80
71
  }
81
- /**
82
- * Send HCS-16 transaction (preferred). scheduleId is the ScheduleId entity (e.g., 0.0.12345).
83
- */
84
- async sendTransaction(params) {
85
- await this.ensureOperatorReady();
86
- const tx = buildHcs16TransactionTx(params);
87
- const resp = await tx.execute(this.client);
88
- return resp.getReceipt(this.client);
72
+ if (params.customFees && params.customFees.length > 0) {
73
+ const fees = params.customFees.map((fee) => {
74
+ const cf = new CustomFixedFee().setAmount(fee.amount).setFeeCollectorAccountId(
75
+ AccountId.fromString(fee.feeCollectorAccountId)
76
+ );
77
+ if (fee.denominatingTokenId) {
78
+ cf.setDenominatingTokenId(TokenId.fromString(fee.denominatingTokenId));
79
+ }
80
+ return cf;
81
+ });
82
+ tx.setCustomFees(fees);
89
83
  }
90
- /**
91
- * Sign a scheduled transaction by ScheduleId entity using provided signer key (PrivateKey).
92
- * The signer must be a valid member key for the scheduled transaction to count toward threshold.
93
- */
94
- async signSchedule(params) {
95
- await this.ensureOperatorReady();
96
- const tx = await new ScheduleSignTransaction().setScheduleId(params.scheduleId).freezeWith(this.client);
97
- const signed = await tx.sign(params.signerKey);
98
- const resp = await signed.execute(this.client);
99
- return resp.getReceipt(this.client);
84
+ if (params.feeExemptKeys && params.feeExemptKeys.length > 0) {
85
+ throw new Error("feeExemptKeys not supported by installed @hashgraph/sdk");
100
86
  }
101
- async sendStateUpdate(params) {
102
- await this.ensureOperatorReady();
103
- const tx = buildHcs16StateUpdateTx({
104
- topicId: params.topicId,
105
- operatorId: params.operatorId,
106
- hash: params.hash,
107
- epoch: params.epoch,
108
- accountId: params.accountId,
109
- topics: params.topics,
110
- memo: params.memo,
111
- transactionMemo: params.transactionMemo
112
- });
113
- if (params.signerKeys && params.signerKeys.length > 0) {
114
- const frozen = await tx.freezeWith(this.client);
115
- let signed = frozen;
116
- for (const key of params.signerKeys) {
117
- signed = await signed.sign(key);
118
- }
119
- const resp2 = await signed.execute(this.client);
120
- return resp2.getReceipt(this.client);
121
- }
122
- const resp = await tx.execute(this.client);
123
- return resp.getReceipt(this.client);
87
+ return tx;
88
+ }
89
+ function buildHcs16CreateAccountTx(params) {
90
+ const tx = new AccountCreateTransaction().setKey(params.keyList);
91
+ const initial = typeof params.initialBalanceHbar === "number" ? params.initialBalanceHbar : 1;
92
+ tx.setInitialBalance(new Hbar(initial));
93
+ const maxAssoc = typeof params.maxAutomaticTokenAssociations === "number" ? params.maxAutomaticTokenAssociations : -1;
94
+ tx.setMaxAutomaticTokenAssociations(maxAssoc);
95
+ tx.setTransactionMemo(
96
+ normalizeTransactionMemo(
97
+ params.transactionMemo,
98
+ HCS16_FLORA_ACCOUNT_CREATE_TRANSACTION_MEMO
99
+ )
100
+ );
101
+ return tx;
102
+ }
103
+ function buildHcs16ScheduleAccountKeyUpdateTx(params) {
104
+ const inner = new AccountUpdateTransaction().setAccountId(AccountId.fromString(params.floraAccountId)).setKey(params.newKeyList);
105
+ inner.setTransactionMemo(
106
+ normalizeTransactionMemo(
107
+ params.transactionMemo ?? params.memo,
108
+ HCS16_ACCOUNT_KEY_UPDATE_TRANSACTION_MEMO
109
+ )
110
+ );
111
+ return new ScheduleCreateTransaction().setScheduledTransaction(inner);
112
+ }
113
+ function buildHcs16ScheduleTopicKeyUpdateTx(params) {
114
+ const inner = new TopicUpdateTransaction().setTopicId(params.topicId);
115
+ if (params.adminKey) {
116
+ inner.setAdminKey(params.adminKey);
124
117
  }
125
- async sendFloraJoinRequest(params) {
126
- await this.ensureOperatorReady();
127
- const tx = buildHcs16FloraJoinRequestTx(params);
128
- if (params.signerKey) {
129
- const frozen = await tx.freezeWith(this.client);
130
- const signed = await frozen.sign(params.signerKey);
131
- const resp2 = await signed.execute(this.client);
132
- return resp2.getReceipt(this.client);
133
- }
134
- const resp = await tx.execute(this.client);
135
- return resp.getReceipt(this.client);
118
+ if (params.submitKey) {
119
+ inner.setSubmitKey(params.submitKey);
136
120
  }
137
- async sendFloraJoinVote(params) {
138
- await this.ensureOperatorReady();
139
- const tx = buildHcs16FloraJoinVoteTx(params);
140
- if (params.signerKey) {
141
- const frozen = await tx.freezeWith(this.client);
142
- const signed = await frozen.sign(params.signerKey);
143
- const resp2 = await signed.execute(this.client);
144
- return resp2.getReceipt(this.client);
121
+ inner.setTransactionMemo(
122
+ normalizeTransactionMemo(
123
+ params.transactionMemo ?? params.memo,
124
+ HCS16_TOPIC_KEY_UPDATE_TRANSACTION_MEMO
125
+ )
126
+ );
127
+ return new ScheduleCreateTransaction().setScheduledTransaction(inner);
128
+ }
129
+ function buildHcs16MessageTx(params) {
130
+ const payload = {
131
+ p: "hcs-16",
132
+ op: params.op,
133
+ operator_id: params.operatorId,
134
+ ...params.body || {}
135
+ };
136
+ return buildMessageTx({
137
+ topicId: params.topicId,
138
+ message: JSON.stringify(payload),
139
+ transactionMemo: normalizeTransactionMemo(
140
+ params.transactionMemo,
141
+ encodeHcs16MessageSubmitTransactionMemo(params.op)
142
+ )
143
+ });
144
+ }
145
+ function buildHcs16FloraCreatedTx(params) {
146
+ return buildHcs16MessageTx({
147
+ topicId: params.topicId,
148
+ operatorId: params.operatorId,
149
+ op: FloraOperation.FLORA_CREATED,
150
+ body: {
151
+ flora_account_id: params.floraAccountId,
152
+ topics: params.topics
145
153
  }
146
- const resp = await tx.execute(this.client);
147
- return resp.getReceipt(this.client);
148
- }
149
- async sendFloraJoinAccepted(params) {
150
- await this.ensureOperatorReady();
151
- const tx = buildHcs16FloraJoinAcceptedTx(params);
152
- if (params.signerKeys && params.signerKeys.length > 0) {
153
- const frozen = await tx.freezeWith(this.client);
154
- let signed = frozen;
155
- for (const key of params.signerKeys) {
156
- signed = await signed.sign(key);
157
- }
158
- const resp2 = await signed.execute(this.client);
159
- return resp2.getReceipt(this.client);
154
+ });
155
+ }
156
+ function buildHcs16TransactionTx(params) {
157
+ return buildHcs16MessageTx({
158
+ topicId: params.topicId,
159
+ operatorId: params.operatorId,
160
+ op: FloraOperation.TRANSACTION,
161
+ body: {
162
+ schedule_id: params.scheduleId,
163
+ data: params.data,
164
+ m: params.data
160
165
  }
161
- const resp = await tx.execute(this.client);
162
- return resp.getReceipt(this.client);
163
- }
164
- /**
165
- * Resolve member public keys from Mirror Node and build a KeyList with the given threshold.
166
- */
167
- async assembleKeyList(params) {
168
- return super.assembleKeyList(params);
169
- }
170
- /**
171
- * Create a Flora account with a threshold KeyList, then create the three Flora topics.
172
- * Returns the Flora account ID and the topic IDs.
173
- */
174
- async createFloraAccountWithTopics(params) {
175
- await this.ensureOperatorReady();
176
- const keyList = await this.assembleKeyList({
177
- members: params.members,
178
- threshold: params.threshold
179
- });
180
- const submitList = await this.assembleSubmitKeyList(params.members);
181
- const createAcc = buildHcs16CreateAccountTx({
182
- keyList,
183
- initialBalanceHbar: typeof params.initialBalanceHbar === "number" ? params.initialBalanceHbar : 5,
184
- maxAutomaticTokenAssociations: -1
185
- });
186
- const accResp = await createAcc.execute(this.client);
187
- const accReceipt = await accResp.getReceipt(this.client);
188
- if (!accReceipt.accountId) {
189
- throw new Error("Failed to create Flora account");
166
+ });
167
+ }
168
+ function buildHcs16StateUpdateTx(params) {
169
+ const payload = {
170
+ p: "hcs-17",
171
+ op: "state_hash",
172
+ state_hash: params.hash,
173
+ topics: params.topics ?? [],
174
+ account_id: params.accountId ?? params.operatorId,
175
+ epoch: params.epoch,
176
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
177
+ m: params.memo
178
+ };
179
+ return buildMessageTx({
180
+ topicId: params.topicId,
181
+ message: JSON.stringify(payload),
182
+ transactionMemo: normalizeTransactionMemo(
183
+ params.transactionMemo,
184
+ HCS17_STATE_HASH_TRANSACTION_MEMO
185
+ )
186
+ });
187
+ }
188
+ function buildHcs16FloraJoinRequestTx(params) {
189
+ return buildHcs16MessageTx({
190
+ topicId: params.topicId,
191
+ operatorId: params.operatorId,
192
+ op: FloraOperation.FLORA_JOIN_REQUEST,
193
+ body: {
194
+ account_id: params.accountId,
195
+ connection_request_id: params.connectionRequestId,
196
+ connection_topic_id: params.connectionTopicId,
197
+ connection_seq: params.connectionSeq
190
198
  }
191
- const floraAccountId = accReceipt.accountId.toString();
192
- const {
193
- communication: commTx,
194
- transaction: trnTx,
195
- state: stateTx
196
- } = this.buildFloraTopicCreateTxs({
197
- floraAccountId,
198
- keyList,
199
- submitList,
200
- autoRenewAccountId: params.autoRenewAccountId
201
- });
202
- const commR = await commTx.execute(this.client).then((r) => r.getReceipt(this.client));
203
- const trnR = await trnTx.execute(this.client).then((r) => r.getReceipt(this.client));
204
- const stateR = await stateTx.execute(this.client).then((r) => r.getReceipt(this.client));
205
- const topics = {
206
- communication: commR.topicId.toString(),
207
- transaction: trnR.topicId.toString(),
208
- state: stateR.topicId.toString()
209
- };
210
- return { floraAccountId, topics };
211
- }
212
- async createFloraProfile(params) {
213
- await this.ensureOperatorReady();
214
- if (params.signerKeys.length === 0) {
215
- throw new Error("Flora profile creation requires signer keys");
199
+ });
200
+ }
201
+ function buildHcs16FloraJoinVoteTx(params) {
202
+ return buildHcs16MessageTx({
203
+ topicId: params.topicId,
204
+ operatorId: params.operatorId,
205
+ op: FloraOperation.FLORA_JOIN_VOTE,
206
+ body: {
207
+ account_id: params.accountId,
208
+ approve: params.approve,
209
+ connection_request_id: params.connectionRequestId,
210
+ connection_seq: params.connectionSeq
216
211
  }
217
- const profile = {
218
- version: "1.0",
219
- type: 3,
220
- display_name: params.displayName,
212
+ });
213
+ }
214
+ function buildHcs16FloraJoinAcceptedTx(params) {
215
+ return buildHcs16MessageTx({
216
+ topicId: params.topicId,
217
+ operatorId: params.operatorId,
218
+ op: FloraOperation.FLORA_JOIN_ACCEPTED,
219
+ body: {
221
220
  members: params.members,
222
- threshold: params.threshold,
223
- topics: params.topics,
224
- inboundTopicId: params.inboundTopicId ?? params.topics.communication,
225
- outboundTopicId: params.outboundTopicId ?? params.topics.transaction,
226
- bio: params.bio,
227
- metadata: params.metadata,
228
- policies: params.policies
229
- };
230
- const hcs11 = new HCS11Client({
231
- network: this.network,
232
- auth: {
233
- operatorId: this.operatorId.toString(),
234
- privateKey: this.operatorCtx.operatorKey.toString()
235
- },
236
- logLevel: this.logger.getLevel()
237
- });
238
- try {
239
- await hcs11.initializeOperator();
240
- const profileResult = await hcs11.inscribeProfile(profile);
241
- if (!profileResult.success) {
242
- throw new Error(
243
- profileResult.error ?? "Failed to inscribe Flora profile"
244
- );
245
- }
246
- const memoResult = await hcs11.updateAccountMemoWithProfile(
247
- params.floraAccountId,
248
- profileResult.profileTopicId,
249
- params.signerKeys
250
- );
251
- if (!memoResult.success) {
252
- throw new Error(
253
- memoResult.error ?? "Failed to update Flora account memo"
254
- );
255
- }
256
- return {
257
- profileTopicId: profileResult.profileTopicId,
258
- transactionId: profileResult.transactionId
259
- };
260
- } finally {
261
- try {
262
- hcs11.getClient().close();
263
- } catch {
264
- }
221
+ epoch: params.epoch
265
222
  }
266
- }
267
- /**
268
- * Convenience: publish flora_created on the communication topic.
269
- */
270
- async publishFloraCreated(params) {
271
- await this.ensureOperatorReady();
272
- const tx = buildHcs16FloraCreatedTx({
273
- topicId: params.communicationTopicId,
274
- operatorId: params.operatorId,
275
- floraAccountId: params.floraAccountId,
276
- topics: params.topics
277
- });
278
- const resp = await tx.execute(this.client);
279
- return resp.getReceipt(this.client);
280
- }
223
+ });
281
224
  }
282
225
  export {
283
- HCS16Client
226
+ HCS16_ACCOUNT_KEY_UPDATE_TRANSACTION_MEMO,
227
+ HCS16_FLORA_ACCOUNT_CREATE_TRANSACTION_MEMO,
228
+ HCS16_TOPIC_KEY_UPDATE_TRANSACTION_MEMO,
229
+ HCS17_STATE_HASH_TRANSACTION_MEMO,
230
+ buildHcs16CreateAccountTx,
231
+ buildHcs16CreateFloraTopicTx,
232
+ buildHcs16CreateTransactionTopicTx,
233
+ buildHcs16FloraCreatedTx,
234
+ buildHcs16FloraJoinAcceptedTx,
235
+ buildHcs16FloraJoinRequestTx,
236
+ buildHcs16FloraJoinVoteTx,
237
+ buildHcs16MessageTx,
238
+ buildHcs16ScheduleAccountKeyUpdateTx,
239
+ buildHcs16ScheduleTopicKeyUpdateTx,
240
+ buildHcs16StateUpdateTx,
241
+ buildHcs16TransactionTx
284
242
  };
285
243
  //# sourceMappingURL=standards-sdk.es98.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es98.js","sources":["../../src/hcs-16/sdk.ts"],"sourcesContent":["import {\n Client,\n AccountId,\n PublicKey,\n KeyList,\n TransactionReceipt,\n Hbar,\n ScheduleSignTransaction,\n PrivateKey,\n} from '@hashgraph/sdk';\nimport type { NetworkType } from '../utils/types';\nimport type { Logger } from '../utils/logger';\nimport { HCS11Client } from '../hcs-11';\nimport {\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport { HederaMirrorNode } from '../services/mirror-node';\nimport { HCS16BaseClient } from './base-client';\nimport {\n buildHcs16CreateFloraTopicTx,\n buildHcs16FloraCreatedTx,\n buildHcs16TransactionTx,\n buildHcs16StateUpdateTx,\n} from './tx';\nimport { FloraTopicType, type FloraMember, type FloraProfile } from './types';\nimport {\n buildHcs16FloraJoinRequestTx,\n buildHcs16FloraJoinVoteTx,\n buildHcs16FloraJoinAcceptedTx,\n buildHcs16CreateAccountTx,\n} from './tx';\n\nexport interface HCS16ClientConfig {\n network: NetworkType;\n operatorId: string;\n operatorKey: string;\n keyType?: 'ecdsa' | 'ed25519';\n logger?: Logger;\n}\n\nexport interface FloraProfileOptions {\n floraAccountId: string;\n displayName: string;\n members: FloraMember[];\n threshold: number;\n topics: { communication: string; transaction: string; state: string };\n inboundTopicId?: string;\n outboundTopicId?: string;\n bio?: string;\n metadata?: Record<string, unknown>;\n policies?: Record<string, string>;\n signerKeys: PrivateKey[];\n}\n\n/**\n * Node SDK client for HCS‑16 Flora operations.\n */\nexport class HCS16Client extends HCS16BaseClient {\n private readonly client: Client;\n private readonly operatorId: AccountId;\n private readonly operatorCtx: NodeOperatorContext;\n\n constructor(config: HCS16ClientConfig) {\n super({ network: config.network, logger: config.logger });\n this.operatorId = AccountId.fromString(config.operatorId);\n const mirror = new HederaMirrorNode(config.network, this.logger);\n this.operatorCtx = createNodeOperatorContext({\n network: config.network,\n operatorId: this.operatorId,\n operatorKey: config.operatorKey,\n keyType: config.keyType,\n mirrorNode: mirror,\n logger: this.logger,\n client:\n config.network === 'mainnet'\n ? Client.forMainnet()\n : Client.forTestnet(),\n });\n this.client = this.operatorCtx.client;\n }\n\n private async ensureOperatorReady(): Promise<void> {\n await this.operatorCtx.ensureInitialized();\n }\n\n /**\n * Create a Flora topic with memo `hcs-16:<floraAccountId>:<topicType>`.\n */\n async createFloraTopic(params: {\n floraAccountId: string;\n topicType: FloraTopicType;\n adminKey?: PublicKey | KeyList;\n submitKey?: PublicKey | KeyList;\n autoRenewAccountId?: string;\n signerKeys?: PrivateKey[];\n }): Promise<string> {\n await this.ensureOperatorReady();\n const tx = buildHcs16CreateFloraTopicTx({\n floraAccountId: params.floraAccountId,\n topicType: params.topicType,\n adminKey: params.adminKey,\n submitKey: params.submitKey,\n operatorPublicKey: this.client.operatorPublicKey || undefined,\n autoRenewAccountId: params.autoRenewAccountId,\n });\n const signerKeys = params.signerKeys ?? [];\n if (signerKeys.length > 0) {\n const frozen = await tx.freezeWith(this.client);\n let signed = frozen;\n for (const key of signerKeys) {\n signed = await signed.sign(key);\n }\n const resp = await signed.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n if (!receipt.topicId) {\n throw new Error('Failed to create Flora topic');\n }\n return receipt.topicId.toString();\n }\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n if (!receipt.topicId) {\n throw new Error('Failed to create Flora topic');\n }\n return receipt.topicId.toString();\n }\n\n async createFloraAccount(params: {\n keyList: KeyList;\n initialBalanceHbar?: number;\n maxAutomaticTokenAssociations?: number;\n }): Promise<{ accountId: string; receipt: TransactionReceipt }> {\n await this.ensureOperatorReady();\n const tx = buildHcs16CreateAccountTx({\n keyList: params.keyList,\n initialBalanceHbar: params.initialBalanceHbar,\n maxAutomaticTokenAssociations: params.maxAutomaticTokenAssociations,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n if (!receipt.accountId) {\n throw new Error('Failed to create Flora account');\n }\n return { accountId: receipt.accountId.toString(), receipt };\n }\n\n async sendFloraCreated(params: {\n topicId: string;\n operatorId: string;\n floraAccountId: string;\n topics: { communication: string; transaction: string; state: string };\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16FloraCreatedTx(params);\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n /**\n * Send HCS-16 transaction (preferred). scheduleId is the ScheduleId entity (e.g., 0.0.12345).\n */\n async sendTransaction(params: {\n topicId: string;\n operatorId: string;\n scheduleId: string;\n data?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16TransactionTx(params);\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n /**\n * Sign a scheduled transaction by ScheduleId entity using provided signer key (PrivateKey).\n * The signer must be a valid member key for the scheduled transaction to count toward threshold.\n */\n async signSchedule(params: {\n scheduleId: string;\n signerKey: PrivateKey;\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = await new ScheduleSignTransaction()\n .setScheduleId(params.scheduleId)\n .freezeWith(this.client);\n const signed = await tx.sign(params.signerKey);\n const resp = await signed.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n async sendStateUpdate(params: {\n topicId: string;\n operatorId: string;\n hash: string;\n epoch?: number;\n accountId?: string;\n topics?: string[];\n memo?: string;\n transactionMemo?: string;\n signerKeys?: PrivateKey[];\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16StateUpdateTx({\n topicId: params.topicId,\n operatorId: params.operatorId,\n hash: params.hash,\n epoch: params.epoch,\n accountId: params.accountId,\n topics: params.topics,\n memo: params.memo,\n transactionMemo: params.transactionMemo,\n });\n if (params.signerKeys && params.signerKeys.length > 0) {\n const frozen = await tx.freezeWith(this.client);\n let signed = frozen;\n for (const key of params.signerKeys) {\n signed = await signed.sign(key);\n }\n const resp = await signed.execute(this.client);\n return resp.getReceipt(this.client);\n }\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n async sendFloraJoinRequest(params: {\n topicId: string;\n operatorId: string;\n accountId: string;\n connectionRequestId: number;\n connectionTopicId: string;\n connectionSeq: number;\n signerKey?: PrivateKey;\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16FloraJoinRequestTx(params);\n if (params.signerKey) {\n const frozen = await tx.freezeWith(this.client);\n const signed = await frozen.sign(params.signerKey);\n const resp = await signed.execute(this.client);\n return resp.getReceipt(this.client);\n }\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n async sendFloraJoinVote(params: {\n topicId: string;\n operatorId: string;\n accountId: string;\n approve: boolean;\n connectionRequestId: number;\n connectionSeq: number;\n signerKey?: PrivateKey;\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16FloraJoinVoteTx(params);\n if (params.signerKey) {\n const frozen = await tx.freezeWith(this.client);\n const signed = await frozen.sign(params.signerKey);\n const resp = await signed.execute(this.client);\n return resp.getReceipt(this.client);\n }\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n async sendFloraJoinAccepted(params: {\n topicId: string;\n operatorId: string;\n members: string[];\n epoch?: number;\n signerKeys?: PrivateKey[];\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16FloraJoinAcceptedTx(params);\n if (params.signerKeys && params.signerKeys.length > 0) {\n const frozen = await tx.freezeWith(this.client);\n let signed = frozen;\n for (const key of params.signerKeys) {\n signed = await signed.sign(key);\n }\n const resp = await signed.execute(this.client);\n return resp.getReceipt(this.client);\n }\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n\n /**\n * Resolve member public keys from Mirror Node and build a KeyList with the given threshold.\n */\n async assembleKeyList(params: {\n members: string[];\n threshold: number;\n }): Promise<KeyList> {\n return super.assembleKeyList(params);\n }\n\n /**\n * Create a Flora account with a threshold KeyList, then create the three Flora topics.\n * Returns the Flora account ID and the topic IDs.\n */\n async createFloraAccountWithTopics(params: {\n members: string[];\n threshold: number;\n initialBalanceHbar?: number;\n autoRenewAccountId?: string;\n }): Promise<{\n floraAccountId: string;\n topics: { communication: string; transaction: string; state: string };\n }> {\n await this.ensureOperatorReady();\n const keyList = await this.assembleKeyList({\n members: params.members,\n threshold: params.threshold,\n });\n const submitList = await this.assembleSubmitKeyList(params.members);\n\n const createAcc = buildHcs16CreateAccountTx({\n keyList,\n initialBalanceHbar:\n typeof params.initialBalanceHbar === 'number'\n ? params.initialBalanceHbar\n : 5,\n maxAutomaticTokenAssociations: -1,\n });\n const accResp = await createAcc.execute(this.client);\n const accReceipt = await accResp.getReceipt(this.client);\n if (!accReceipt.accountId) {\n throw new Error('Failed to create Flora account');\n }\n const floraAccountId = accReceipt.accountId.toString();\n\n const {\n communication: commTx,\n transaction: trnTx,\n state: stateTx,\n } = this.buildFloraTopicCreateTxs({\n floraAccountId,\n keyList,\n submitList,\n autoRenewAccountId: params.autoRenewAccountId,\n });\n\n const commR = await commTx\n .execute(this.client)\n .then(r => r.getReceipt(this.client));\n const trnR = await trnTx\n .execute(this.client)\n .then(r => r.getReceipt(this.client));\n const stateR = await stateTx\n .execute(this.client)\n .then(r => r.getReceipt(this.client));\n const topics = {\n communication: commR.topicId!.toString(),\n transaction: trnR.topicId!.toString(),\n state: stateR.topicId!.toString(),\n };\n return { floraAccountId, topics };\n }\n\n async createFloraProfile(params: FloraProfileOptions): Promise<{\n profileTopicId: string;\n transactionId: string;\n }> {\n await this.ensureOperatorReady();\n if (params.signerKeys.length === 0) {\n throw new Error('Flora profile creation requires signer keys');\n }\n\n const profile: FloraProfile = {\n version: '1.0',\n type: 3,\n display_name: params.displayName,\n members: params.members,\n threshold: params.threshold,\n topics: params.topics,\n inboundTopicId: params.inboundTopicId ?? params.topics.communication,\n outboundTopicId: params.outboundTopicId ?? params.topics.transaction,\n bio: params.bio,\n metadata: params.metadata,\n policies: params.policies,\n };\n\n const hcs11 = new HCS11Client({\n network: this.network,\n auth: {\n operatorId: this.operatorId.toString(),\n privateKey: this.operatorCtx.operatorKey.toString(),\n },\n logLevel: this.logger.getLevel(),\n });\n\n try {\n await hcs11.initializeOperator();\n const profileResult = await hcs11.inscribeProfile(profile);\n if (!profileResult.success) {\n throw new Error(\n profileResult.error ?? 'Failed to inscribe Flora profile',\n );\n }\n\n const memoResult = await hcs11.updateAccountMemoWithProfile(\n params.floraAccountId,\n profileResult.profileTopicId,\n params.signerKeys,\n );\n\n if (!memoResult.success) {\n throw new Error(\n memoResult.error ?? 'Failed to update Flora account memo',\n );\n }\n\n return {\n profileTopicId: profileResult.profileTopicId,\n transactionId: profileResult.transactionId,\n };\n } finally {\n try {\n hcs11.getClient().close();\n } catch {}\n }\n }\n\n /**\n * Convenience: publish flora_created on the communication topic.\n */\n async publishFloraCreated(params: {\n communicationTopicId: string;\n operatorId: string;\n floraAccountId: string;\n topics: { communication: string; transaction: string; state: string };\n }): Promise<TransactionReceipt> {\n await this.ensureOperatorReady();\n const tx = buildHcs16FloraCreatedTx({\n topicId: params.communicationTopicId,\n operatorId: params.operatorId,\n floraAccountId: params.floraAccountId,\n topics: params.topics,\n });\n const resp = await tx.execute(this.client);\n return resp.getReceipt(this.client);\n }\n}\n"],"names":["resp","receipt"],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es98.js","sources":["../../src/hcs-16/tx.ts"],"sourcesContent":["import {\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n TopicUpdateTransaction,\n AccountCreateTransaction,\n AccountUpdateTransaction,\n ScheduleCreateTransaction,\n Hbar,\n PublicKey,\n KeyList,\n AccountId,\n CustomFixedFee,\n TokenId,\n} from '@hashgraph/sdk';\nimport {\n buildTopicCreateTx,\n buildMessageTx,\n type MaybeKey,\n} from '../common/tx/tx-utils';\nimport { FloraOperation, FloraTopicType, type FloraMessage } from './types';\n\nexport const HCS16_FLORA_ACCOUNT_CREATE_TRANSACTION_MEMO = 'hcs-16:op:0:0';\nexport const HCS17_STATE_HASH_TRANSACTION_MEMO = 'hcs-17:op:6:2';\nexport const HCS16_ACCOUNT_KEY_UPDATE_TRANSACTION_MEMO = 'hcs-16:op:1:1';\nexport const HCS16_TOPIC_KEY_UPDATE_TRANSACTION_MEMO = 'hcs-16:op:1:1';\n\nfunction normalizeTransactionMemo(\n value: string | undefined,\n fallback: string,\n): string {\n if (typeof value !== 'string') return fallback;\n const trimmed = value.trim();\n if (!trimmed) return fallback;\n return trimmed;\n}\n\nfunction encodeHcs16FloraMemo(params: {\n floraAccountId: string;\n topicType: FloraTopicType;\n}): string {\n return `hcs-16:${params.floraAccountId}:${params.topicType}`;\n}\n\nfunction encodeHcs16TopicCreateTransactionMemo(\n topicType: FloraTopicType,\n): string {\n return `hcs-16:op:${HCS16_OPERATION_ENUM_BY_OP[FloraOperation.FLORA_CREATED]}:${topicType}`;\n}\n\nconst HCS16_OPERATION_ENUM_BY_OP: Record<FloraOperation, number> = {\n [FloraOperation.FLORA_CREATED]: 0,\n [FloraOperation.TRANSACTION]: 1,\n [FloraOperation.STATE_UPDATE]: 2,\n [FloraOperation.FLORA_JOIN_REQUEST]: 3,\n [FloraOperation.FLORA_JOIN_VOTE]: 4,\n [FloraOperation.FLORA_JOIN_ACCEPTED]: 5,\n};\n\nconst HCS16_TOPIC_TYPE_BY_OP: Record<FloraOperation, FloraTopicType> = {\n [FloraOperation.FLORA_CREATED]: FloraTopicType.COMMUNICATION,\n [FloraOperation.TRANSACTION]: FloraTopicType.TRANSACTION,\n [FloraOperation.STATE_UPDATE]: FloraTopicType.STATE,\n [FloraOperation.FLORA_JOIN_REQUEST]: FloraTopicType.COMMUNICATION,\n [FloraOperation.FLORA_JOIN_VOTE]: FloraTopicType.COMMUNICATION,\n [FloraOperation.FLORA_JOIN_ACCEPTED]: FloraTopicType.STATE,\n};\n\nfunction encodeHcs16MessageSubmitTransactionMemo(op: FloraOperation): string {\n return `hcs-16:op:${HCS16_OPERATION_ENUM_BY_OP[op]}:${HCS16_TOPIC_TYPE_BY_OP[op]}`;\n}\n\n/**\n * Build a TopicCreateTransaction for HCS‑16 Flora topics (communication/transaction/state).\n */\nexport function buildHcs16CreateFloraTopicTx(params: {\n floraAccountId: string;\n topicType: FloraTopicType;\n adminKey?: MaybeKey;\n submitKey?: MaybeKey;\n operatorPublicKey?: PublicKey;\n autoRenewAccountId?: string;\n transactionMemo?: string;\n}): TopicCreateTransaction {\n const memo = encodeHcs16FloraMemo({\n floraAccountId: params.floraAccountId,\n topicType: params.topicType,\n });\n const tx = buildTopicCreateTx({\n memo,\n adminKey: params.adminKey,\n submitKey: params.submitKey,\n operatorPublicKey: params.operatorPublicKey,\n });\n tx.setTransactionMemo(\n normalizeTransactionMemo(\n params.transactionMemo,\n encodeHcs16TopicCreateTransactionMemo(params.topicType),\n ),\n );\n if (params.autoRenewAccountId) {\n tx.setAutoRenewAccountId(AccountId.fromString(params.autoRenewAccountId));\n }\n return tx;\n}\n\n/**\n * Build a TopicCreateTransaction for a generic HCS‑16 transaction topic with HIP‑991 fees.\n */\nexport function buildHcs16CreateTransactionTopicTx(params: {\n memo: string;\n adminKey?: KeyList | PublicKey;\n submitKey?: KeyList | PublicKey;\n feeScheduleKey?: KeyList | PublicKey;\n customFees?: Array<{\n amount: number;\n feeCollectorAccountId: string;\n denominatingTokenId?: string;\n }>;\n feeExemptKeys?: PublicKey[];\n}): TopicCreateTransaction {\n const tx = new TopicCreateTransaction().setTopicMemo(params.memo);\n if (params.adminKey) {\n tx.setAdminKey(params.adminKey);\n }\n if (params.submitKey) {\n tx.setSubmitKey(params.submitKey);\n }\n if (params.feeScheduleKey) {\n tx.setFeeScheduleKey(params.feeScheduleKey);\n }\n if (params.customFees && params.customFees.length > 0) {\n const fees = params.customFees.map(fee => {\n const cf = new CustomFixedFee()\n .setAmount(fee.amount)\n .setFeeCollectorAccountId(\n AccountId.fromString(fee.feeCollectorAccountId),\n );\n if (fee.denominatingTokenId) {\n cf.setDenominatingTokenId(TokenId.fromString(fee.denominatingTokenId));\n }\n return cf;\n });\n tx.setCustomFees(fees);\n }\n if (params.feeExemptKeys && params.feeExemptKeys.length > 0) {\n throw new Error('feeExemptKeys not supported by installed @hashgraph/sdk');\n }\n return tx;\n}\n\n/**\n * Build an AccountCreateTransaction for a Flora account given a KeyList and optional params.\n */\nexport function buildHcs16CreateAccountTx(params: {\n keyList: KeyList;\n initialBalanceHbar?: number;\n maxAutomaticTokenAssociations?: number;\n transactionMemo?: string;\n}): AccountCreateTransaction {\n const tx = new AccountCreateTransaction().setKey(params.keyList);\n const initial =\n typeof params.initialBalanceHbar === 'number'\n ? params.initialBalanceHbar\n : 1;\n tx.setInitialBalance(new Hbar(initial));\n const maxAssoc =\n typeof params.maxAutomaticTokenAssociations === 'number'\n ? params.maxAutomaticTokenAssociations\n : -1;\n tx.setMaxAutomaticTokenAssociations(maxAssoc);\n tx.setTransactionMemo(\n normalizeTransactionMemo(\n params.transactionMemo,\n HCS16_FLORA_ACCOUNT_CREATE_TRANSACTION_MEMO,\n ),\n );\n return tx;\n}\n\n/**\n * Build a ScheduleCreateTransaction that wraps an AccountUpdateTransaction to rotate the Flora account KeyList.\n * Members will sign this scheduled transaction until threshold is reached and it executes.\n */\nexport function buildHcs16ScheduleAccountKeyUpdateTx(params: {\n floraAccountId: string;\n newKeyList: KeyList;\n memo?: string;\n transactionMemo?: string;\n}): ScheduleCreateTransaction {\n const inner = new AccountUpdateTransaction()\n .setAccountId(AccountId.fromString(params.floraAccountId))\n .setKey(params.newKeyList);\n inner.setTransactionMemo(\n normalizeTransactionMemo(\n params.transactionMemo ?? params.memo,\n HCS16_ACCOUNT_KEY_UPDATE_TRANSACTION_MEMO,\n ),\n );\n return new ScheduleCreateTransaction().setScheduledTransaction(inner);\n}\n\n/**\n * Build a ScheduleCreateTransaction that wraps a TopicUpdateTransaction to rotate topic admin/submit keys.\n * Repeat for CTopic, TTopic, and STopic as needed for membership changes.\n */\nexport function buildHcs16ScheduleTopicKeyUpdateTx(params: {\n topicId: string;\n adminKey?: KeyList | PublicKey;\n submitKey?: KeyList | PublicKey;\n memo?: string;\n transactionMemo?: string;\n}): ScheduleCreateTransaction {\n const inner = new TopicUpdateTransaction().setTopicId(params.topicId);\n if (params.adminKey) {\n inner.setAdminKey(params.adminKey);\n }\n if (params.submitKey) {\n inner.setSubmitKey(params.submitKey);\n }\n inner.setTransactionMemo(\n normalizeTransactionMemo(\n params.transactionMemo ?? params.memo,\n HCS16_TOPIC_KEY_UPDATE_TRANSACTION_MEMO,\n ),\n );\n return new ScheduleCreateTransaction().setScheduledTransaction(inner);\n}\n\n/**\n * Build a TopicMessageSubmitTransaction for generic HCS‑16 messages.\n * Body fields are merged into the envelope `{ p: 'hcs-16', op, operator_id }`.\n */\nexport function buildHcs16MessageTx(params: {\n topicId: string;\n operatorId: string;\n op: FloraOperation;\n body?: Record<string, unknown>;\n transactionMemo?: string;\n}): TopicMessageSubmitTransaction {\n const payload: FloraMessage = {\n p: 'hcs-16',\n op: params.op,\n operator_id: params.operatorId,\n ...(params.body || {}),\n } as FloraMessage;\n\n return buildMessageTx({\n topicId: params.topicId,\n message: JSON.stringify(payload),\n transactionMemo: normalizeTransactionMemo(\n params.transactionMemo,\n encodeHcs16MessageSubmitTransactionMemo(params.op),\n ),\n });\n}\n\n/**\n * Build HCS‑16 flora_created message.\n */\nexport function buildHcs16FloraCreatedTx(params: {\n topicId: string;\n operatorId: string;\n floraAccountId: string;\n topics: { communication: string; transaction: string; state: string };\n}): TopicMessageSubmitTransaction {\n return buildHcs16MessageTx({\n topicId: params.topicId,\n operatorId: params.operatorId,\n op: FloraOperation.FLORA_CREATED,\n body: {\n flora_account_id: params.floraAccountId,\n topics: params.topics,\n },\n });\n}\n\n/**\n * Build HCS‑16 transaction message.\n */\nexport function buildHcs16TransactionTx(params: {\n topicId: string;\n operatorId: string;\n scheduleId: string;\n data?: string;\n}): TopicMessageSubmitTransaction {\n return buildHcs16MessageTx({\n topicId: params.topicId,\n operatorId: params.operatorId,\n op: FloraOperation.TRANSACTION,\n body: {\n schedule_id: params.scheduleId,\n data: params.data,\n m: params.data,\n },\n });\n}\n\n/**\n * Build HCS‑17 state_hash message for Flora STopic state updates.\n */\nexport function buildHcs16StateUpdateTx(params: {\n topicId: string;\n operatorId: string;\n hash: string;\n epoch?: number;\n accountId?: string;\n topics?: string[];\n memo?: string;\n transactionMemo?: string;\n}): TopicMessageSubmitTransaction {\n const payload = {\n p: 'hcs-17',\n op: 'state_hash',\n state_hash: params.hash,\n topics: params.topics ?? [],\n account_id: params.accountId ?? params.operatorId,\n epoch: params.epoch,\n timestamp: new Date().toISOString(),\n m: params.memo,\n };\n return buildMessageTx({\n topicId: params.topicId,\n message: JSON.stringify(payload),\n transactionMemo: normalizeTransactionMemo(\n params.transactionMemo,\n HCS17_STATE_HASH_TRANSACTION_MEMO,\n ),\n });\n}\n\n/**\n * Build HCS‑16 flora_join_request message.\n */\nexport function buildHcs16FloraJoinRequestTx(params: {\n topicId: string;\n operatorId: string;\n accountId: string;\n connectionRequestId: number;\n connectionTopicId: string;\n connectionSeq: number;\n}): TopicMessageSubmitTransaction {\n return buildHcs16MessageTx({\n topicId: params.topicId,\n operatorId: params.operatorId,\n op: FloraOperation.FLORA_JOIN_REQUEST,\n body: {\n account_id: params.accountId,\n connection_request_id: params.connectionRequestId,\n connection_topic_id: params.connectionTopicId,\n connection_seq: params.connectionSeq,\n },\n });\n}\n\n/**\n * Build HCS‑16 flora_join_vote message.\n */\nexport function buildHcs16FloraJoinVoteTx(params: {\n topicId: string;\n operatorId: string;\n accountId: string;\n approve: boolean;\n connectionRequestId: number;\n connectionSeq: number;\n}): TopicMessageSubmitTransaction {\n return buildHcs16MessageTx({\n topicId: params.topicId,\n operatorId: params.operatorId,\n op: FloraOperation.FLORA_JOIN_VOTE,\n body: {\n account_id: params.accountId,\n approve: params.approve,\n connection_request_id: params.connectionRequestId,\n connection_seq: params.connectionSeq,\n },\n });\n}\n\n/**\n * Build HCS‑16 flora_join_accepted message.\n */\nexport function buildHcs16FloraJoinAcceptedTx(params: {\n topicId: string;\n operatorId: string;\n members: string[];\n epoch?: number;\n}): TopicMessageSubmitTransaction {\n return buildHcs16MessageTx({\n topicId: params.topicId,\n operatorId: params.operatorId,\n op: FloraOperation.FLORA_JOIN_ACCEPTED,\n body: {\n members: params.members,\n epoch: params.epoch,\n },\n });\n}\n"],"names":[],"mappings":"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"}