@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,72 +1,407 @@
1
- import { Logger } from "./standards-sdk.es106.js";
2
- import { HederaMirrorNode } from "./standards-sdk.es127.js";
3
- import { HCS20_CONSTANTS, HCS20MessageSchema } from "./standards-sdk.es73.js";
4
- import { InvalidAccountFormatError } from "./standards-sdk.es74.js";
5
- class HCS20BaseClient {
1
+ import { TopicMessageSubmitTransaction, TopicId, Hbar } from "@hashgraph/sdk";
2
+ import { HCS20BaseClient } from "./standards-sdk.es74.js";
3
+ import { PointsValidationError, TopicRegistrationError } from "./standards-sdk.es73.js";
4
+ import { BrowserHCS2Client } from "./standards-sdk.es69.js";
5
+ class BrowserHCS20Client extends HCS20BaseClient {
6
6
  constructor(config) {
7
- this.logger = config.logger || new Logger({ module: "HCS20Client" });
8
- this.network = config.network === "mainnet" ? "mainnet" : "testnet";
9
- this.mirrorNode = new HederaMirrorNode(
10
- this.network,
11
- this.logger,
12
- config.mirrorNodeUrl ? { customUrl: config.mirrorNodeUrl } : void 0
13
- );
14
- this.registryTopicId = config.registryTopicId || HCS20_CONSTANTS.REGISTRY_TOPIC_ID;
15
- this.publicTopicId = config.publicTopicId || HCS20_CONSTANTS.PUBLIC_TOPIC_ID;
7
+ super({
8
+ network: config.network,
9
+ logger: config.logger,
10
+ mirrorNodeUrl: config.mirrorNodeUrl,
11
+ registryTopicId: config.registryTopicId,
12
+ publicTopicId: config.publicTopicId
13
+ });
14
+ this.hwc = config.hwc;
15
+ this.feeAmount = config.feeAmount || 20;
16
+ }
17
+ /**
18
+ * Get operator account ID
19
+ */
20
+ getOperatorId() {
21
+ const accountInfo = this.hwc.getAccountInfo();
22
+ if (!accountInfo?.accountId) {
23
+ throw new Error("Wallet not connected");
24
+ }
25
+ return accountInfo.accountId;
26
+ }
27
+ async createRegistryTopic() {
28
+ const hcs2Client = new BrowserHCS2Client({
29
+ hwc: this.hwc,
30
+ network: this.network
31
+ });
32
+ const topicCreateResponse = await hcs2Client.createRegistry();
33
+ if (!topicCreateResponse.success) {
34
+ throw new Error("Failed to create topic");
35
+ }
36
+ return topicCreateResponse.topicId;
16
37
  }
17
38
  /**
18
- * Validate HCS-20 message using Zod schema
39
+ * Deploy new points
19
40
  */
20
- validateMessage(message) {
41
+ async deployPoints(options) {
42
+ const operatorId = this.getOperatorId();
43
+ const { progressCallback } = options;
21
44
  try {
22
- HCS20MessageSchema.parse(message);
23
- return { valid: true };
24
- } catch (error) {
25
- if (error.errors) {
26
- const errors = error.errors.map(
27
- (e) => `${e.path.join(".")}: ${e.message}`
45
+ progressCallback?.({
46
+ stage: "creating-topic",
47
+ percentage: 20
48
+ });
49
+ let topicId;
50
+ if (options.usePrivateTopic) {
51
+ const publicKey = await this.mirrorNode.getPublicKey(operatorId);
52
+ const hcs2Client = new BrowserHCS2Client({
53
+ hwc: this.hwc,
54
+ network: this.network
55
+ });
56
+ const topicCreateResponse = await hcs2Client.createRegistry({
57
+ submitKey: publicKey.toString(),
58
+ adminKey: publicKey.toString()
59
+ });
60
+ if (!topicCreateResponse.success) {
61
+ throw new Error("Failed to create topic");
62
+ }
63
+ topicId = topicCreateResponse.topicId;
64
+ this.logger.info(`Created private topic: ${topicId}`);
65
+ } else {
66
+ topicId = this.publicTopicId;
67
+ }
68
+ progressCallback?.({
69
+ stage: "submitting-deploy",
70
+ percentage: 50,
71
+ topicId
72
+ });
73
+ const deployMessage = {
74
+ p: "hcs-20",
75
+ op: "deploy",
76
+ name: options.name,
77
+ tick: this.normalizeTick(options.tick),
78
+ max: options.maxSupply,
79
+ lim: options.limitPerMint,
80
+ metadata: options.metadata,
81
+ m: options.topicMemo
82
+ };
83
+ const validation = this.validateMessage(deployMessage);
84
+ if (!validation.valid) {
85
+ throw new PointsValidationError(
86
+ "Invalid deploy message",
87
+ validation.errors
28
88
  );
29
- return { valid: false, errors };
30
89
  }
31
- return { valid: false, errors: [error.message] };
90
+ const deployResult = await this.submitPayload(
91
+ topicId,
92
+ deployMessage,
93
+ options.usePrivateTopic
94
+ );
95
+ const deployTxId = deployResult.transactionHash?.toString() || "";
96
+ progressCallback?.({
97
+ stage: "confirming",
98
+ percentage: 80,
99
+ topicId,
100
+ deployTxId
101
+ });
102
+ await new Promise((resolve) => setTimeout(resolve, 2e3));
103
+ progressCallback?.({
104
+ stage: "complete",
105
+ percentage: 100,
106
+ topicId,
107
+ deployTxId
108
+ });
109
+ return {
110
+ name: options.name,
111
+ tick: this.normalizeTick(options.tick),
112
+ maxSupply: options.maxSupply,
113
+ limitPerMint: options.limitPerMint,
114
+ metadata: options.metadata,
115
+ topicId,
116
+ deployerAccountId: operatorId,
117
+ currentSupply: "0",
118
+ deploymentTimestamp: (/* @__PURE__ */ new Date()).toISOString(),
119
+ isPrivate: options.usePrivateTopic || false
120
+ };
121
+ } catch (error) {
122
+ progressCallback?.({
123
+ stage: "complete",
124
+ percentage: 100,
125
+ error: error instanceof Error ? error.message : "Unknown error"
126
+ });
127
+ throw error;
32
128
  }
33
129
  }
34
130
  /**
35
- * Normalize tick to lowercase and trimmed
131
+ * Mint points
36
132
  */
37
- normalizeTick(tick) {
38
- return tick.toLowerCase().trim();
133
+ async mintPoints(options) {
134
+ const { progressCallback } = options;
135
+ try {
136
+ progressCallback?.({
137
+ stage: "validating",
138
+ percentage: 20
139
+ });
140
+ progressCallback?.({
141
+ stage: "submitting",
142
+ percentage: 50
143
+ });
144
+ const mintMessage = {
145
+ p: "hcs-20",
146
+ op: "mint",
147
+ tick: this.normalizeTick(options.tick),
148
+ amt: options.amount,
149
+ to: this.accountToString(options.to),
150
+ m: options.memo
151
+ };
152
+ const topicId = options.topicId || this.publicTopicId;
153
+ const mintResult = await this.submitPayload(topicId, mintMessage, false);
154
+ const mintTxId = mintResult.transactionHash?.toString() || "";
155
+ progressCallback?.({
156
+ stage: "confirming",
157
+ percentage: 80,
158
+ mintTxId
159
+ });
160
+ await new Promise((resolve) => setTimeout(resolve, 2e3));
161
+ progressCallback?.({
162
+ stage: "complete",
163
+ percentage: 100,
164
+ mintTxId
165
+ });
166
+ return {
167
+ id: mintTxId,
168
+ operation: "mint",
169
+ tick: this.normalizeTick(options.tick),
170
+ amount: options.amount,
171
+ to: this.accountToString(options.to),
172
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
173
+ sequenceNumber: 0,
174
+ topicId,
175
+ transactionId: mintTxId,
176
+ memo: options.memo
177
+ };
178
+ } catch (error) {
179
+ progressCallback?.({
180
+ stage: "complete",
181
+ percentage: 100,
182
+ error: error instanceof Error ? error.message : "Unknown error"
183
+ });
184
+ throw error;
185
+ }
39
186
  }
40
187
  /**
41
- * Convert account to string format
188
+ * Transfer points
42
189
  */
43
- accountToString(account) {
44
- if (typeof account === "string") {
45
- if (!HCS20_CONSTANTS.HEDERA_ACCOUNT_REGEX.test(account)) {
46
- throw new InvalidAccountFormatError(account);
47
- }
48
- return account;
190
+ async transferPoints(options) {
191
+ const { progressCallback } = options;
192
+ try {
193
+ progressCallback?.({
194
+ stage: "validating-balance",
195
+ percentage: 20
196
+ });
197
+ progressCallback?.({
198
+ stage: "submitting",
199
+ percentage: 50
200
+ });
201
+ const transferMessage = {
202
+ p: "hcs-20",
203
+ op: "transfer",
204
+ tick: this.normalizeTick(options.tick),
205
+ amt: options.amount,
206
+ from: this.accountToString(options.from),
207
+ to: this.accountToString(options.to),
208
+ m: options.memo
209
+ };
210
+ const topicId = options.topicId || this.publicTopicId;
211
+ const transferResult = await this.submitPayload(
212
+ topicId,
213
+ transferMessage,
214
+ false
215
+ );
216
+ const transferTxId = transferResult.transactionHash?.toString() || "";
217
+ progressCallback?.({
218
+ stage: "confirming",
219
+ percentage: 80,
220
+ transferTxId
221
+ });
222
+ await new Promise((resolve) => setTimeout(resolve, 2e3));
223
+ progressCallback?.({
224
+ stage: "complete",
225
+ percentage: 100,
226
+ transferTxId
227
+ });
228
+ return {
229
+ id: transferTxId,
230
+ operation: "transfer",
231
+ tick: this.normalizeTick(options.tick),
232
+ amount: options.amount,
233
+ from: this.accountToString(options.from),
234
+ to: this.accountToString(options.to),
235
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
236
+ sequenceNumber: 0,
237
+ topicId,
238
+ transactionId: transferTxId,
239
+ memo: options.memo
240
+ };
241
+ } catch (error) {
242
+ progressCallback?.({
243
+ stage: "complete",
244
+ percentage: 100,
245
+ error: error instanceof Error ? error.message : "Unknown error"
246
+ });
247
+ throw error;
49
248
  }
50
- return account.toString();
51
249
  }
52
250
  /**
53
- * Convert topic to string format
251
+ * Burn points
54
252
  */
55
- topicToString(topic) {
56
- if (typeof topic === "string") {
57
- if (!HCS20_CONSTANTS.HEDERA_ACCOUNT_REGEX.test(topic)) {
58
- throw new InvalidAccountFormatError(topic);
253
+ async burnPoints(options) {
254
+ const { progressCallback } = options;
255
+ try {
256
+ progressCallback?.({
257
+ stage: "validating-balance",
258
+ percentage: 20
259
+ });
260
+ progressCallback?.({
261
+ stage: "submitting",
262
+ percentage: 50
263
+ });
264
+ const burnMessage = {
265
+ p: "hcs-20",
266
+ op: "burn",
267
+ tick: this.normalizeTick(options.tick),
268
+ amt: options.amount,
269
+ from: this.accountToString(options.from),
270
+ m: options.memo
271
+ };
272
+ const topicId = options.topicId || this.publicTopicId;
273
+ const burnResult = await this.submitPayload(topicId, burnMessage, false);
274
+ const burnTxId = burnResult.transactionHash?.toString() || "";
275
+ progressCallback?.({
276
+ stage: "confirming",
277
+ percentage: 80,
278
+ burnTxId
279
+ });
280
+ await new Promise((resolve) => setTimeout(resolve, 2e3));
281
+ progressCallback?.({
282
+ stage: "complete",
283
+ percentage: 100,
284
+ burnTxId
285
+ });
286
+ return {
287
+ id: burnTxId,
288
+ operation: "burn",
289
+ tick: this.normalizeTick(options.tick),
290
+ amount: options.amount,
291
+ from: this.accountToString(options.from),
292
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
293
+ sequenceNumber: 0,
294
+ topicId,
295
+ transactionId: burnTxId,
296
+ memo: options.memo
297
+ };
298
+ } catch (error) {
299
+ progressCallback?.({
300
+ stage: "complete",
301
+ percentage: 100,
302
+ error: error instanceof Error ? error.message : "Unknown error"
303
+ });
304
+ throw error;
305
+ }
306
+ }
307
+ /**
308
+ * Register a topic in the registry
309
+ */
310
+ async registerTopic(options) {
311
+ const { progressCallback } = options;
312
+ try {
313
+ progressCallback?.({
314
+ stage: "validating",
315
+ percentage: 20
316
+ });
317
+ const registerMessage = {
318
+ p: "hcs-20",
319
+ op: "register",
320
+ name: options.name,
321
+ metadata: options.metadata,
322
+ private: options.isPrivate,
323
+ t_id: this.topicToString(options.topicId),
324
+ m: options.memo
325
+ };
326
+ const validation = this.validateMessage(registerMessage);
327
+ if (!validation.valid) {
328
+ throw new PointsValidationError(
329
+ "Invalid register message",
330
+ validation.errors
331
+ );
59
332
  }
60
- return topic;
333
+ progressCallback?.({
334
+ stage: "submitting",
335
+ percentage: 50
336
+ });
337
+ const registerResult = await this.submitPayload(
338
+ this.registryTopicId,
339
+ registerMessage,
340
+ false
341
+ );
342
+ const registerTxId = registerResult.transactionHash?.toString() || "";
343
+ progressCallback?.({
344
+ stage: "confirming",
345
+ percentage: 80,
346
+ registerTxId
347
+ });
348
+ await new Promise((resolve) => setTimeout(resolve, 2e3));
349
+ progressCallback?.({
350
+ stage: "complete",
351
+ percentage: 100,
352
+ registerTxId
353
+ });
354
+ } catch (error) {
355
+ progressCallback?.({
356
+ stage: "complete",
357
+ percentage: 100,
358
+ error: error instanceof Error ? error.message : "Unknown error"
359
+ });
360
+ throw new TopicRegistrationError(
361
+ error instanceof Error ? error.message : "Unknown error",
362
+ this.topicToString(options.topicId)
363
+ );
61
364
  }
62
- return topic.toString();
63
365
  }
64
366
  /**
65
- * NOTE: State queries (getPointsInfo, getBalance, etc.) require an external indexing service.
66
- * The HCS-20 clients only handle message submission. Use HCS20PointsIndexer for state management.
367
+ * Submit payload to topic using HWC
67
368
  */
369
+ async submitPayload(topicId, payload, requiresFee) {
370
+ this.logger.debug(`Submitting payload to topic ${topicId}`);
371
+ let message;
372
+ if (typeof payload === "string") {
373
+ message = payload;
374
+ } else {
375
+ message = JSON.stringify(payload);
376
+ }
377
+ const transaction = new TopicMessageSubmitTransaction().setTopicId(TopicId.fromString(topicId)).setMessage(message);
378
+ if (requiresFee) {
379
+ this.logger.info(
380
+ "Topic requires fee payment, setting max transaction fee"
381
+ );
382
+ transaction.setMaxTransactionFee(new Hbar(this.feeAmount));
383
+ }
384
+ const transactionResponse = await this.hwc.executeTransactionWithErrorHandling(
385
+ transaction,
386
+ false
387
+ );
388
+ if (transactionResponse?.error) {
389
+ this.logger.error(
390
+ `Failed to submit payload: ${transactionResponse.error}`
391
+ );
392
+ throw new Error(`Failed to submit payload: ${transactionResponse.error}`);
393
+ }
394
+ if (!transactionResponse?.result) {
395
+ this.logger.error(
396
+ "Failed to submit message: receipt is null or undefined"
397
+ );
398
+ throw new Error("Failed to submit message: receipt is null or undefined");
399
+ }
400
+ this.logger.debug("Payload submitted successfully via HWC");
401
+ return transactionResponse.result;
402
+ }
68
403
  }
69
404
  export {
70
- HCS20BaseClient
405
+ BrowserHCS20Client
71
406
  };
72
407
  //# sourceMappingURL=standards-sdk.es75.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es75.js","sources":["../../src/hcs-20/base-client.ts"],"sourcesContent":["/**\n * Base client for HCS-20 Auditable Points operations\n */\n\nimport { AccountId, TopicId } from '@hashgraph/sdk';\nimport { Logger, ILogger } from '../utils/logger';\nimport { HederaMirrorNode } from '../services/mirror-node';\nimport type { NetworkType } from '../utils/types';\nimport {\n HCS20ClientConfig,\n HCS20MessageSchema,\n PointsInfo,\n PointsTransaction,\n HCS20_CONSTANTS,\n DeployPointsOptions,\n MintPointsOptions,\n TransferPointsOptions,\n BurnPointsOptions,\n RegisterTopicOptions,\n} from './types';\nimport { InvalidAccountFormatError } from './errors';\n\n/**\n * Abstract base class for HCS-20 clients\n */\nexport abstract class HCS20BaseClient {\n protected logger: ILogger;\n protected mirrorNode: HederaMirrorNode;\n protected network: NetworkType;\n protected registryTopicId: string;\n protected publicTopicId: string;\n\n constructor(config: HCS20ClientConfig) {\n this.logger = config.logger || new Logger({ module: 'HCS20Client' });\n this.network = config.network === 'mainnet' ? 'mainnet' : 'testnet';\n this.mirrorNode = new HederaMirrorNode(\n this.network,\n this.logger,\n config.mirrorNodeUrl ? { customUrl: config.mirrorNodeUrl } : undefined,\n );\n this.registryTopicId =\n config.registryTopicId || HCS20_CONSTANTS.REGISTRY_TOPIC_ID;\n this.publicTopicId =\n config.publicTopicId || HCS20_CONSTANTS.PUBLIC_TOPIC_ID;\n }\n\n /**\n * Deploy new points\n */\n abstract deployPoints(options: DeployPointsOptions): Promise<PointsInfo>;\n\n /**\n * Mint points\n */\n abstract mintPoints(options: MintPointsOptions): Promise<PointsTransaction>;\n\n /**\n * Transfer points\n */\n abstract transferPoints(\n options: TransferPointsOptions,\n ): Promise<PointsTransaction>;\n\n /**\n * Burn points\n */\n abstract burnPoints(options: BurnPointsOptions): Promise<PointsTransaction>;\n\n /**\n * Register a topic in the registry\n */\n abstract registerTopic(options: RegisterTopicOptions): Promise<void>;\n\n /**\n * Validate HCS-20 message using Zod schema\n */\n protected validateMessage(message: any): {\n valid: boolean;\n errors?: string[];\n } {\n try {\n HCS20MessageSchema.parse(message);\n return { valid: true };\n } catch (error: any) {\n if (error.errors) {\n const errors = error.errors.map(\n (e: any) => `${e.path.join('.')}: ${e.message}`,\n );\n return { valid: false, errors };\n }\n return { valid: false, errors: [error.message] };\n }\n }\n\n /**\n * Normalize tick to lowercase and trimmed\n */\n protected normalizeTick(tick: string): string {\n return tick.toLowerCase().trim();\n }\n\n /**\n * Convert account to string format\n */\n protected accountToString(account: string | AccountId): string {\n if (typeof account === 'string') {\n if (!HCS20_CONSTANTS.HEDERA_ACCOUNT_REGEX.test(account)) {\n throw new InvalidAccountFormatError(account);\n }\n return account;\n }\n return account.toString();\n }\n\n /**\n * Convert topic to string format\n */\n protected topicToString(topic: string | TopicId): string {\n if (typeof topic === 'string') {\n if (!HCS20_CONSTANTS.HEDERA_ACCOUNT_REGEX.test(topic)) {\n throw new InvalidAccountFormatError(topic);\n }\n return topic;\n }\n return topic.toString();\n }\n\n /**\n * NOTE: State queries (getPointsInfo, getBalance, etc.) require an external indexing service.\n * The HCS-20 clients only handle message submission. Use HCS20PointsIndexer for state management.\n */\n}\n"],"names":[],"mappings":";;;;AAyBO,MAAe,gBAAgB;AAAA,EAOpC,YAAY,QAA2B;AACrC,SAAK,SAAS,OAAO,UAAU,IAAI,OAAO,EAAE,QAAQ,eAAe;AACnE,SAAK,UAAU,OAAO,YAAY,YAAY,YAAY;AAC1D,SAAK,aAAa,IAAI;AAAA,MACpB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO,gBAAgB,EAAE,WAAW,OAAO,kBAAkB;AAAA,IAAA;AAE/D,SAAK,kBACH,OAAO,mBAAmB,gBAAgB;AAC5C,SAAK,gBACH,OAAO,iBAAiB,gBAAgB;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAgCU,gBAAgB,SAGxB;AACA,QAAI;AACF,yBAAmB,MAAM,OAAO;AAChC,aAAO,EAAE,OAAO,KAAA;AAAA,IAClB,SAAS,OAAY;AACnB,UAAI,MAAM,QAAQ;AAChB,cAAM,SAAS,MAAM,OAAO;AAAA,UAC1B,CAAC,MAAW,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,OAAO;AAAA,QAAA;AAE/C,eAAO,EAAE,OAAO,OAAO,OAAA;AAAA,MACzB;AACA,aAAO,EAAE,OAAO,OAAO,QAAQ,CAAC,MAAM,OAAO,EAAA;AAAA,IAC/C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKU,cAAc,MAAsB;AAC5C,WAAO,KAAK,YAAA,EAAc,KAAA;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAKU,gBAAgB,SAAqC;AAC7D,QAAI,OAAO,YAAY,UAAU;AAC/B,UAAI,CAAC,gBAAgB,qBAAqB,KAAK,OAAO,GAAG;AACvD,cAAM,IAAI,0BAA0B,OAAO;AAAA,MAC7C;AACA,aAAO;AAAA,IACT;AACA,WAAO,QAAQ,SAAA;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA,EAKU,cAAc,OAAiC;AACvD,QAAI,OAAO,UAAU,UAAU;AAC7B,UAAI,CAAC,gBAAgB,qBAAqB,KAAK,KAAK,GAAG;AACrD,cAAM,IAAI,0BAA0B,KAAK;AAAA,MAC3C;AACA,aAAO;AAAA,IACT;AACA,WAAO,MAAM,SAAA;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAMF;"}
1
+ {"version":3,"file":"standards-sdk.es75.js","sources":["../../src/hcs-20/browser.ts"],"sourcesContent":["/**\n * Browser implementation of HCS-20 client using Hashinals WalletConnect\n */\n\nimport {\n TopicId,\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n TransactionReceipt,\n Hbar,\n AccountId,\n} from '@hashgraph/sdk';\nimport { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport { HCS20BaseClient } from './base-client';\nimport {\n DeployPointsOptions,\n MintPointsOptions,\n TransferPointsOptions,\n BurnPointsOptions,\n RegisterTopicOptions,\n PointsInfo,\n PointsTransaction,\n HCS20DeployMessage,\n HCS20MintMessage,\n HCS20TransferMessage,\n HCS20BurnMessage,\n HCS20RegisterMessage,\n} from './types';\nimport {\n PointsDeploymentError,\n TopicRegistrationError,\n PointsValidationError,\n} from './errors';\nimport { BrowserHCS2Client } from '../hcs-2/browser';\n\n/**\n * Browser-specific HCS-20 client configuration\n */\nexport interface BrowserHCS20Config {\n network: 'mainnet' | 'testnet';\n hwc: HashinalsWalletConnectSDK;\n mirrorNodeUrl?: string;\n logger?: any;\n registryTopicId?: string;\n publicTopicId?: string;\n feeAmount?: number;\n}\n\n/**\n * Browser HCS-20 client for managing auditable points\n */\nexport class BrowserHCS20Client extends HCS20BaseClient {\n private hwc: HashinalsWalletConnectSDK;\n private feeAmount: number;\n\n constructor(config: BrowserHCS20Config) {\n super({\n network: config.network,\n logger: config.logger,\n mirrorNodeUrl: config.mirrorNodeUrl,\n registryTopicId: config.registryTopicId,\n publicTopicId: config.publicTopicId,\n });\n\n this.hwc = config.hwc;\n this.feeAmount = config.feeAmount || 20;\n }\n\n /**\n * Get operator account ID\n */\n private getOperatorId(): string {\n const accountInfo = this.hwc.getAccountInfo();\n if (!accountInfo?.accountId) {\n throw new Error('Wallet not connected');\n }\n return accountInfo.accountId;\n }\n\n async createRegistryTopic(): Promise<string> {\n const hcs2Client = new BrowserHCS2Client({\n hwc: this.hwc,\n network: this.network,\n });\n\n const topicCreateResponse = await hcs2Client.createRegistry();\n\n if (!topicCreateResponse.success) {\n throw new Error('Failed to create topic');\n }\n\n return topicCreateResponse.topicId;\n }\n\n /**\n * Deploy new points\n */\n async deployPoints(options: DeployPointsOptions): Promise<PointsInfo> {\n const operatorId = this.getOperatorId();\n const { progressCallback } = options;\n\n try {\n progressCallback?.({\n stage: 'creating-topic',\n percentage: 20,\n });\n\n let topicId: string;\n\n if (options.usePrivateTopic) {\n const publicKey = await this.mirrorNode.getPublicKey(operatorId);\n\n const hcs2Client = new BrowserHCS2Client({\n hwc: this.hwc,\n network: this.network,\n });\n\n const topicCreateResponse = await hcs2Client.createRegistry({\n submitKey: publicKey.toString(),\n adminKey: publicKey.toString(),\n });\n\n if (!topicCreateResponse.success) {\n throw new Error('Failed to create topic');\n }\n\n topicId = topicCreateResponse.topicId;\n this.logger.info(`Created private topic: ${topicId}`);\n } else {\n topicId = this.publicTopicId;\n }\n\n progressCallback?.({\n stage: 'submitting-deploy',\n percentage: 50,\n topicId,\n });\n\n const deployMessage: HCS20DeployMessage = {\n p: 'hcs-20',\n op: 'deploy',\n name: options.name,\n tick: this.normalizeTick(options.tick),\n max: options.maxSupply,\n lim: options.limitPerMint,\n metadata: options.metadata,\n m: options.topicMemo,\n };\n\n const validation = this.validateMessage(deployMessage);\n if (!validation.valid) {\n throw new PointsValidationError(\n 'Invalid deploy message',\n validation.errors!,\n );\n }\n\n const deployResult = await this.submitPayload(\n topicId,\n deployMessage,\n options.usePrivateTopic,\n );\n\n const deployTxId =\n (deployResult as any).transactionHash?.toString() || '';\n\n progressCallback?.({\n stage: 'confirming',\n percentage: 80,\n topicId,\n deployTxId,\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n topicId,\n deployTxId,\n });\n\n return {\n name: options.name,\n tick: this.normalizeTick(options.tick),\n maxSupply: options.maxSupply,\n limitPerMint: options.limitPerMint,\n metadata: options.metadata,\n topicId,\n deployerAccountId: operatorId,\n currentSupply: '0',\n deploymentTimestamp: new Date().toISOString(),\n isPrivate: options.usePrivateTopic || false,\n };\n } catch (error) {\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n throw error;\n }\n }\n\n /**\n * Mint points\n */\n async mintPoints(options: MintPointsOptions): Promise<PointsTransaction> {\n const { progressCallback } = options;\n\n try {\n progressCallback?.({\n stage: 'validating',\n percentage: 20,\n });\n\n progressCallback?.({\n stage: 'submitting',\n percentage: 50,\n });\n\n const mintMessage: HCS20MintMessage = {\n p: 'hcs-20',\n op: 'mint',\n tick: this.normalizeTick(options.tick),\n amt: options.amount,\n to: this.accountToString(options.to),\n m: options.memo,\n };\n\n const topicId = (options as any).topicId || this.publicTopicId;\n const mintResult = await this.submitPayload(topicId, mintMessage, false);\n\n const mintTxId = (mintResult as any).transactionHash?.toString() || '';\n\n progressCallback?.({\n stage: 'confirming',\n percentage: 80,\n mintTxId,\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n mintTxId,\n });\n\n return {\n id: mintTxId,\n operation: 'mint',\n tick: this.normalizeTick(options.tick),\n amount: options.amount,\n to: this.accountToString(options.to),\n timestamp: new Date().toISOString(),\n sequenceNumber: 0,\n topicId,\n transactionId: mintTxId,\n memo: options.memo,\n };\n } catch (error) {\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n throw error;\n }\n }\n\n /**\n * Transfer points\n */\n async transferPoints(\n options: TransferPointsOptions,\n ): Promise<PointsTransaction> {\n const { progressCallback } = options;\n\n try {\n progressCallback?.({\n stage: 'validating-balance',\n percentage: 20,\n });\n\n progressCallback?.({\n stage: 'submitting',\n percentage: 50,\n });\n\n const transferMessage: HCS20TransferMessage = {\n p: 'hcs-20',\n op: 'transfer',\n tick: this.normalizeTick(options.tick),\n amt: options.amount,\n from: this.accountToString(options.from),\n to: this.accountToString(options.to),\n m: options.memo,\n };\n\n const topicId = (options as any).topicId || this.publicTopicId;\n const transferResult = await this.submitPayload(\n topicId,\n transferMessage,\n false,\n );\n\n const transferTxId =\n (transferResult as any).transactionHash?.toString() || '';\n\n progressCallback?.({\n stage: 'confirming',\n percentage: 80,\n transferTxId,\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n transferTxId,\n });\n\n return {\n id: transferTxId,\n operation: 'transfer',\n tick: this.normalizeTick(options.tick),\n amount: options.amount,\n from: this.accountToString(options.from),\n to: this.accountToString(options.to),\n timestamp: new Date().toISOString(),\n sequenceNumber: 0,\n topicId,\n transactionId: transferTxId,\n memo: options.memo,\n };\n } catch (error) {\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n throw error;\n }\n }\n\n /**\n * Burn points\n */\n async burnPoints(options: BurnPointsOptions): Promise<PointsTransaction> {\n const { progressCallback } = options;\n\n try {\n progressCallback?.({\n stage: 'validating-balance',\n percentage: 20,\n });\n\n progressCallback?.({\n stage: 'submitting',\n percentage: 50,\n });\n\n const burnMessage: HCS20BurnMessage = {\n p: 'hcs-20',\n op: 'burn',\n tick: this.normalizeTick(options.tick),\n amt: options.amount,\n from: this.accountToString(options.from),\n m: options.memo,\n };\n\n const topicId = (options as any).topicId || this.publicTopicId;\n const burnResult = await this.submitPayload(topicId, burnMessage, false);\n\n const burnTxId = (burnResult as any).transactionHash?.toString() || '';\n\n progressCallback?.({\n stage: 'confirming',\n percentage: 80,\n burnTxId,\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n burnTxId,\n });\n\n return {\n id: burnTxId,\n operation: 'burn',\n tick: this.normalizeTick(options.tick),\n amount: options.amount,\n from: this.accountToString(options.from),\n timestamp: new Date().toISOString(),\n sequenceNumber: 0,\n topicId,\n transactionId: burnTxId,\n memo: options.memo,\n };\n } catch (error) {\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n throw error;\n }\n }\n\n /**\n * Register a topic in the registry\n */\n async registerTopic(options: RegisterTopicOptions): Promise<void> {\n const { progressCallback } = options;\n\n try {\n progressCallback?.({\n stage: 'validating',\n percentage: 20,\n });\n\n const registerMessage: HCS20RegisterMessage = {\n p: 'hcs-20',\n op: 'register',\n name: options.name,\n metadata: options.metadata,\n private: options.isPrivate,\n t_id: this.topicToString(options.topicId),\n m: options.memo,\n };\n\n const validation = this.validateMessage(registerMessage);\n if (!validation.valid) {\n throw new PointsValidationError(\n 'Invalid register message',\n validation.errors!,\n );\n }\n\n progressCallback?.({\n stage: 'submitting',\n percentage: 50,\n });\n\n const registerResult = await this.submitPayload(\n this.registryTopicId,\n registerMessage,\n false,\n );\n\n const registerTxId =\n (registerResult as any).transactionHash?.toString() || '';\n\n progressCallback?.({\n stage: 'confirming',\n percentage: 80,\n registerTxId,\n });\n\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n registerTxId,\n });\n } catch (error) {\n progressCallback?.({\n stage: 'complete',\n percentage: 100,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n throw new TopicRegistrationError(\n error instanceof Error ? error.message : 'Unknown error',\n this.topicToString(options.topicId),\n );\n }\n }\n\n /**\n * Submit payload to topic using HWC\n */\n private async submitPayload(\n topicId: string,\n payload: object | string,\n requiresFee?: boolean,\n ): Promise<TransactionReceipt> {\n this.logger.debug(`Submitting payload to topic ${topicId}`);\n\n let message: string;\n if (typeof payload === 'string') {\n message = payload;\n } else {\n message = JSON.stringify(payload);\n }\n\n const transaction = new TopicMessageSubmitTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setMessage(message);\n\n if (requiresFee) {\n this.logger.info(\n 'Topic requires fee payment, setting max transaction fee',\n );\n transaction.setMaxTransactionFee(new Hbar(this.feeAmount));\n }\n\n const transactionResponse =\n await this.hwc.executeTransactionWithErrorHandling(\n transaction as any,\n false,\n );\n\n if (transactionResponse?.error) {\n this.logger.error(\n `Failed to submit payload: ${transactionResponse.error}`,\n );\n throw new Error(`Failed to submit payload: ${transactionResponse.error}`);\n }\n\n if (!transactionResponse?.result) {\n this.logger.error(\n 'Failed to submit message: receipt is null or undefined',\n );\n throw new Error('Failed to submit message: receipt is null or undefined');\n }\n\n this.logger.debug('Payload submitted successfully via HWC');\n return transactionResponse.result;\n }\n}\n"],"names":[],"mappings":"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"}