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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
  2. package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
  3. package/dist/cjs/index.d.ts.map +1 -1
  4. package/dist/cjs/services/registry-broker/schemas.d.ts +153 -153
  5. package/dist/cjs/standards-sdk.cjs +2 -2
  6. package/dist/cjs/standards-sdk.cjs.map +1 -1
  7. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  8. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  9. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  10. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  11. package/dist/es/index.d.ts.map +1 -1
  12. package/dist/es/services/registry-broker/schemas.d.ts +153 -153
  13. package/dist/es/standards-sdk.es.js +134 -135
  14. package/dist/es/standards-sdk.es.js.map +1 -1
  15. package/dist/es/standards-sdk.es10.js +70 -90
  16. package/dist/es/standards-sdk.es10.js.map +1 -1
  17. package/dist/es/standards-sdk.es100.js +229 -27
  18. package/dist/es/standards-sdk.es100.js.map +1 -1
  19. package/dist/es/standards-sdk.es101.js +109 -228
  20. package/dist/es/standards-sdk.es101.js.map +1 -1
  21. package/dist/es/standards-sdk.es102.js +15 -94
  22. package/dist/es/standards-sdk.es102.js.map +1 -1
  23. package/dist/es/standards-sdk.es103.js +80 -30
  24. package/dist/es/standards-sdk.es103.js.map +1 -1
  25. package/dist/es/standards-sdk.es104.js +27 -80
  26. package/dist/es/standards-sdk.es104.js.map +1 -1
  27. package/dist/es/standards-sdk.es105.js +136 -25
  28. package/dist/es/standards-sdk.es105.js.map +1 -1
  29. package/dist/es/standards-sdk.es106.js +27 -140
  30. package/dist/es/standards-sdk.es106.js.map +1 -1
  31. package/dist/es/standards-sdk.es107.js +20 -27
  32. package/dist/es/standards-sdk.es107.js.map +1 -1
  33. package/dist/es/standards-sdk.es108.js +156 -18
  34. package/dist/es/standards-sdk.es108.js.map +1 -1
  35. package/dist/es/standards-sdk.es109.js +198 -148
  36. package/dist/es/standards-sdk.es109.js.map +1 -1
  37. package/dist/es/standards-sdk.es11.js +121 -45
  38. package/dist/es/standards-sdk.es11.js.map +1 -1
  39. package/dist/es/standards-sdk.es110.js +747 -167
  40. package/dist/es/standards-sdk.es110.js.map +1 -1
  41. package/dist/es/standards-sdk.es111.js +9 -786
  42. package/dist/es/standards-sdk.es111.js.map +1 -1
  43. package/dist/es/standards-sdk.es112.js +567 -13
  44. package/dist/es/standards-sdk.es112.js.map +1 -1
  45. package/dist/es/standards-sdk.es113.js +576 -541
  46. package/dist/es/standards-sdk.es113.js.map +1 -1
  47. package/dist/es/standards-sdk.es114.js +12 -601
  48. package/dist/es/standards-sdk.es114.js.map +1 -1
  49. package/dist/es/standards-sdk.es115.js +2 -13
  50. package/dist/es/standards-sdk.es115.js.map +1 -1
  51. package/dist/es/standards-sdk.es116.js +87 -2
  52. package/dist/es/standards-sdk.es116.js.map +1 -1
  53. package/dist/es/standards-sdk.es117.js +37 -84
  54. package/dist/es/standards-sdk.es117.js.map +1 -1
  55. package/dist/es/standards-sdk.es118.js +2 -40
  56. package/dist/es/standards-sdk.es118.js.map +1 -1
  57. package/dist/es/standards-sdk.es119.js +231 -2
  58. package/dist/es/standards-sdk.es119.js.map +1 -1
  59. package/dist/es/standards-sdk.es12.js +60 -159
  60. package/dist/es/standards-sdk.es12.js.map +1 -1
  61. package/dist/es/standards-sdk.es120.js +1110 -201
  62. package/dist/es/standards-sdk.es120.js.map +1 -1
  63. package/dist/es/standards-sdk.es121.js +225 -1059
  64. package/dist/es/standards-sdk.es121.js.map +1 -1
  65. package/dist/es/standards-sdk.es122.js +419 -303
  66. package/dist/es/standards-sdk.es122.js.map +1 -1
  67. package/dist/es/standards-sdk.es123.js +351 -418
  68. package/dist/es/standards-sdk.es123.js.map +1 -1
  69. package/dist/es/standards-sdk.es124.js +872 -347
  70. package/dist/es/standards-sdk.es124.js.map +1 -1
  71. package/dist/es/standards-sdk.es125.js +182 -854
  72. package/dist/es/standards-sdk.es125.js.map +1 -1
  73. package/dist/es/standards-sdk.es126.js +1512 -153
  74. package/dist/es/standards-sdk.es126.js.map +1 -1
  75. package/dist/es/standards-sdk.es127.js +157 -1547
  76. package/dist/es/standards-sdk.es127.js.map +1 -1
  77. package/dist/es/standards-sdk.es128.js +192 -162
  78. package/dist/es/standards-sdk.es128.js.map +1 -1
  79. package/dist/es/standards-sdk.es129.js +61 -164
  80. package/dist/es/standards-sdk.es129.js.map +1 -1
  81. package/dist/es/standards-sdk.es13.js +200 -60
  82. package/dist/es/standards-sdk.es13.js.map +1 -1
  83. package/dist/es/standards-sdk.es130.js +102 -85
  84. package/dist/es/standards-sdk.es130.js.map +1 -1
  85. package/dist/es/standards-sdk.es131.js +222 -96
  86. package/dist/es/standards-sdk.es131.js.map +1 -1
  87. package/dist/es/standards-sdk.es132.js +153 -220
  88. package/dist/es/standards-sdk.es132.js.map +1 -1
  89. package/dist/es/standards-sdk.es133.js +104 -162
  90. package/dist/es/standards-sdk.es133.js.map +1 -1
  91. package/dist/es/standards-sdk.es134.js +296 -92
  92. package/dist/es/standards-sdk.es134.js.map +1 -1
  93. package/dist/es/standards-sdk.es135.js +432 -294
  94. package/dist/es/standards-sdk.es135.js.map +1 -1
  95. package/dist/es/standards-sdk.es136.js +14 -461
  96. package/dist/es/standards-sdk.es136.js.map +1 -1
  97. package/dist/es/standards-sdk.es137.js +79 -15
  98. package/dist/es/standards-sdk.es137.js.map +1 -1
  99. package/dist/es/standards-sdk.es138.js +77 -71
  100. package/dist/es/standards-sdk.es138.js.map +1 -1
  101. package/dist/es/standards-sdk.es139.js +152 -80
  102. package/dist/es/standards-sdk.es139.js.map +1 -1
  103. package/dist/es/standards-sdk.es14.js +149 -178
  104. package/dist/es/standards-sdk.es14.js.map +1 -1
  105. package/dist/es/standards-sdk.es140.js +7 -159
  106. package/dist/es/standards-sdk.es140.js.map +1 -1
  107. package/dist/es/standards-sdk.es141.js +86 -7
  108. package/dist/es/standards-sdk.es141.js.map +1 -1
  109. package/dist/es/standards-sdk.es142.js +44 -65
  110. package/dist/es/standards-sdk.es142.js.map +1 -1
  111. package/dist/es/standards-sdk.es143.js +30 -65
  112. package/dist/es/standards-sdk.es143.js.map +1 -1
  113. package/dist/es/standards-sdk.es144.js +34 -30
  114. package/dist/es/standards-sdk.es144.js.map +1 -1
  115. package/dist/es/standards-sdk.es145.js +28 -34
  116. package/dist/es/standards-sdk.es145.js.map +1 -1
  117. package/dist/es/standards-sdk.es146.js +138 -28
  118. package/dist/es/standards-sdk.es146.js.map +1 -1
  119. package/dist/es/standards-sdk.es147.js +37 -133
  120. package/dist/es/standards-sdk.es147.js.map +1 -1
  121. package/dist/es/standards-sdk.es148.js +12280 -33
  122. package/dist/es/standards-sdk.es148.js.map +1 -1
  123. package/dist/es/standards-sdk.es149.js +1 -1
  124. package/dist/es/standards-sdk.es15.js +152 -151
  125. package/dist/es/standards-sdk.es15.js.map +1 -1
  126. package/dist/es/standards-sdk.es150.js +12 -12284
  127. package/dist/es/standards-sdk.es150.js.map +1 -1
  128. package/dist/es/standards-sdk.es151.js +54 -15
  129. package/dist/es/standards-sdk.es151.js.map +1 -1
  130. package/dist/es/standards-sdk.es152.js +72 -160
  131. package/dist/es/standards-sdk.es152.js.map +1 -1
  132. package/dist/es/standards-sdk.es153.js +139 -289
  133. package/dist/es/standards-sdk.es153.js.map +1 -1
  134. package/dist/es/standards-sdk.es154.js +274 -298
  135. package/dist/es/standards-sdk.es154.js.map +1 -1
  136. package/dist/es/standards-sdk.es155.js +262 -369
  137. package/dist/es/standards-sdk.es155.js.map +1 -1
  138. package/dist/es/standards-sdk.es156.js +316 -194
  139. package/dist/es/standards-sdk.es156.js.map +1 -1
  140. package/dist/es/standards-sdk.es157.js +319 -64
  141. package/dist/es/standards-sdk.es157.js.map +1 -1
  142. package/dist/es/standards-sdk.es158.js +69 -49
  143. package/dist/es/standards-sdk.es158.js.map +1 -1
  144. package/dist/es/standards-sdk.es159.js +222 -65
  145. package/dist/es/standards-sdk.es159.js.map +1 -1
  146. package/dist/es/standards-sdk.es16.js +917 -136
  147. package/dist/es/standards-sdk.es16.js.map +1 -1
  148. package/dist/es/standards-sdk.es160.js +223 -218
  149. package/dist/es/standards-sdk.es160.js.map +1 -1
  150. package/dist/es/standards-sdk.es17.js +23 -948
  151. package/dist/es/standards-sdk.es17.js.map +1 -1
  152. package/dist/es/standards-sdk.es18.js +2422 -24
  153. package/dist/es/standards-sdk.es18.js.map +1 -1
  154. package/dist/es/standards-sdk.es19.js +818 -2092
  155. package/dist/es/standards-sdk.es19.js.map +1 -1
  156. package/dist/es/standards-sdk.es2.js +654 -189
  157. package/dist/es/standards-sdk.es2.js.map +1 -1
  158. package/dist/es/standards-sdk.es20.js +205 -1092
  159. package/dist/es/standards-sdk.es20.js.map +1 -1
  160. package/dist/es/standards-sdk.es21.js +858 -221
  161. package/dist/es/standards-sdk.es21.js.map +1 -1
  162. package/dist/es/standards-sdk.es22.js +179 -903
  163. package/dist/es/standards-sdk.es22.js.map +1 -1
  164. package/dist/es/standards-sdk.es23.js +164 -179
  165. package/dist/es/standards-sdk.es23.js.map +1 -1
  166. package/dist/es/standards-sdk.es24.js +62 -118
  167. package/dist/es/standards-sdk.es24.js.map +1 -1
  168. package/dist/es/standards-sdk.es25.js +377 -57
  169. package/dist/es/standards-sdk.es25.js.map +1 -1
  170. package/dist/es/standards-sdk.es26.js +36 -394
  171. package/dist/es/standards-sdk.es26.js.map +1 -1
  172. package/dist/es/standards-sdk.es27.js +901 -50
  173. package/dist/es/standards-sdk.es27.js.map +1 -1
  174. package/dist/es/standards-sdk.es28.js +134 -922
  175. package/dist/es/standards-sdk.es28.js.map +1 -1
  176. package/dist/es/standards-sdk.es29.js +7 -134
  177. package/dist/es/standards-sdk.es29.js.map +1 -1
  178. package/dist/es/standards-sdk.es3.js +63 -680
  179. package/dist/es/standards-sdk.es3.js.map +1 -1
  180. package/dist/es/standards-sdk.es30.js +344 -7
  181. package/dist/es/standards-sdk.es30.js.map +1 -1
  182. package/dist/es/standards-sdk.es31.js +302 -287
  183. package/dist/es/standards-sdk.es31.js.map +1 -1
  184. package/dist/es/standards-sdk.es32.js +94 -322
  185. package/dist/es/standards-sdk.es32.js.map +1 -1
  186. package/dist/es/standards-sdk.es33.js +458 -101
  187. package/dist/es/standards-sdk.es33.js.map +1 -1
  188. package/dist/es/standards-sdk.es34.js +132 -451
  189. package/dist/es/standards-sdk.es34.js.map +1 -1
  190. package/dist/es/standards-sdk.es35.js +216 -130
  191. package/dist/es/standards-sdk.es35.js.map +1 -1
  192. package/dist/es/standards-sdk.es36.js +273 -196
  193. package/dist/es/standards-sdk.es36.js.map +1 -1
  194. package/dist/es/standards-sdk.es37.js +148 -87
  195. package/dist/es/standards-sdk.es37.js.map +1 -1
  196. package/dist/es/standards-sdk.es38.js +183 -320
  197. package/dist/es/standards-sdk.es38.js.map +1 -1
  198. package/dist/es/standards-sdk.es39.js +238 -161
  199. package/dist/es/standards-sdk.es39.js.map +1 -1
  200. package/dist/es/standards-sdk.es4.js +425 -63
  201. package/dist/es/standards-sdk.es4.js.map +1 -1
  202. package/dist/es/standards-sdk.es40.js +136 -254
  203. package/dist/es/standards-sdk.es40.js.map +1 -1
  204. package/dist/es/standards-sdk.es41.js +225 -176
  205. package/dist/es/standards-sdk.es41.js.map +1 -1
  206. package/dist/es/standards-sdk.es42.js +199 -261
  207. package/dist/es/standards-sdk.es42.js.map +1 -1
  208. package/dist/es/standards-sdk.es43.js +237 -199
  209. package/dist/es/standards-sdk.es43.js.map +1 -1
  210. package/dist/es/standards-sdk.es44.js +209 -201
  211. package/dist/es/standards-sdk.es44.js.map +1 -1
  212. package/dist/es/standards-sdk.es45.js +305 -201
  213. package/dist/es/standards-sdk.es45.js.map +1 -1
  214. package/dist/es/standards-sdk.es46.js +371 -261
  215. package/dist/es/standards-sdk.es46.js.map +1 -1
  216. package/dist/es/standards-sdk.es47.js +316 -372
  217. package/dist/es/standards-sdk.es47.js.map +1 -1
  218. package/dist/es/standards-sdk.es48.js +404 -336
  219. package/dist/es/standards-sdk.es48.js.map +1 -1
  220. package/dist/es/standards-sdk.es49.js +83 -449
  221. package/dist/es/standards-sdk.es49.js.map +1 -1
  222. package/dist/es/standards-sdk.es5.js +232 -354
  223. package/dist/es/standards-sdk.es5.js.map +1 -1
  224. package/dist/es/standards-sdk.es50.js +179 -89
  225. package/dist/es/standards-sdk.es50.js.map +1 -1
  226. package/dist/es/standards-sdk.es51.js +231 -165
  227. package/dist/es/standards-sdk.es51.js.map +1 -1
  228. package/dist/es/standards-sdk.es52.js +25 -262
  229. package/dist/es/standards-sdk.es52.js.map +1 -1
  230. package/dist/es/standards-sdk.es53.js +56 -26
  231. package/dist/es/standards-sdk.es53.js.map +1 -1
  232. package/dist/es/standards-sdk.es54.js +12 -57
  233. package/dist/es/standards-sdk.es54.js.map +1 -1
  234. package/dist/es/standards-sdk.es55.js +49 -12
  235. package/dist/es/standards-sdk.es55.js.map +1 -1
  236. package/dist/es/standards-sdk.es56.js +115 -43
  237. package/dist/es/standards-sdk.es56.js.map +1 -1
  238. package/dist/es/standards-sdk.es57.js +42 -115
  239. package/dist/es/standards-sdk.es57.js.map +1 -1
  240. package/dist/es/standards-sdk.es58.js +52 -43
  241. package/dist/es/standards-sdk.es58.js.map +1 -1
  242. package/dist/es/standards-sdk.es59.js +36 -50
  243. package/dist/es/standards-sdk.es59.js.map +1 -1
  244. package/dist/es/standards-sdk.es6.js +125 -246
  245. package/dist/es/standards-sdk.es6.js.map +1 -1
  246. package/dist/es/standards-sdk.es60.js +207 -39
  247. package/dist/es/standards-sdk.es60.js.map +1 -1
  248. package/dist/es/standards-sdk.es61.js +24 -201
  249. package/dist/es/standards-sdk.es61.js.map +1 -1
  250. package/dist/es/standards-sdk.es62.js +87 -25
  251. package/dist/es/standards-sdk.es62.js.map +1 -1
  252. package/dist/es/standards-sdk.es63.js +3 -51
  253. package/dist/es/standards-sdk.es63.js.map +1 -1
  254. package/dist/es/standards-sdk.es64.js +100 -3
  255. package/dist/es/standards-sdk.es64.js.map +1 -1
  256. package/dist/es/standards-sdk.es65.js +61 -62
  257. package/dist/es/standards-sdk.es65.js.map +1 -1
  258. package/dist/es/standards-sdk.es66.js +17 -98
  259. package/dist/es/standards-sdk.es66.js.map +1 -1
  260. package/dist/es/standards-sdk.es67.js +77 -19
  261. package/dist/es/standards-sdk.es67.js.map +1 -1
  262. package/dist/es/standards-sdk.es68.js +458 -77
  263. package/dist/es/standards-sdk.es68.js.map +1 -1
  264. package/dist/es/standards-sdk.es69.js +106 -240
  265. package/dist/es/standards-sdk.es69.js.map +1 -1
  266. package/dist/es/standards-sdk.es7.js +28 -183
  267. package/dist/es/standards-sdk.es7.js.map +1 -1
  268. package/dist/es/standards-sdk.es70.js +170 -286
  269. package/dist/es/standards-sdk.es70.js.map +1 -1
  270. package/dist/es/standards-sdk.es71.js +71 -207
  271. package/dist/es/standards-sdk.es71.js.map +1 -1
  272. package/dist/es/standards-sdk.es72.js +71 -72
  273. package/dist/es/standards-sdk.es72.js.map +1 -1
  274. package/dist/es/standards-sdk.es73.js +143 -71
  275. package/dist/es/standards-sdk.es73.js.map +1 -1
  276. package/dist/es/standards-sdk.es74.js +62 -136
  277. package/dist/es/standards-sdk.es74.js.map +1 -1
  278. package/dist/es/standards-sdk.es75.js +380 -45
  279. package/dist/es/standards-sdk.es75.js.map +1 -1
  280. package/dist/es/standards-sdk.es76.js +222 -130
  281. package/dist/es/standards-sdk.es76.js.map +1 -1
  282. package/dist/es/standards-sdk.es77.js +320 -444
  283. package/dist/es/standards-sdk.es77.js.map +1 -1
  284. package/dist/es/standards-sdk.es78.js +88 -371
  285. package/dist/es/standards-sdk.es78.js.map +1 -1
  286. package/dist/es/standards-sdk.es79.js +125 -89
  287. package/dist/es/standards-sdk.es79.js.map +1 -1
  288. package/dist/es/standards-sdk.es8.js +80 -29
  289. package/dist/es/standards-sdk.es8.js.map +1 -1
  290. package/dist/es/standards-sdk.es80.js +8 -125
  291. package/dist/es/standards-sdk.es80.js.map +1 -1
  292. package/dist/es/standards-sdk.es81.js +45 -6
  293. package/dist/es/standards-sdk.es81.js.map +1 -1
  294. package/dist/es/standards-sdk.es82.js +98 -44
  295. package/dist/es/standards-sdk.es82.js.map +1 -1
  296. package/dist/es/standards-sdk.es83.js +331 -84
  297. package/dist/es/standards-sdk.es83.js.map +1 -1
  298. package/dist/es/standards-sdk.es84.js +93 -160
  299. package/dist/es/standards-sdk.es84.js.map +1 -1
  300. package/dist/es/standards-sdk.es85.js +55 -275
  301. package/dist/es/standards-sdk.es85.js.map +1 -1
  302. package/dist/es/standards-sdk.es86.js +43 -55
  303. package/dist/es/standards-sdk.es86.js.map +1 -1
  304. package/dist/es/standards-sdk.es87.js +145 -44
  305. package/dist/es/standards-sdk.es87.js.map +1 -1
  306. package/dist/es/standards-sdk.es88.js +30 -113
  307. package/dist/es/standards-sdk.es88.js.map +1 -1
  308. package/dist/es/standards-sdk.es89.js +22 -59
  309. package/dist/es/standards-sdk.es89.js.map +1 -1
  310. package/dist/es/standards-sdk.es9.js +104 -80
  311. package/dist/es/standards-sdk.es9.js.map +1 -1
  312. package/dist/es/standards-sdk.es90.js +23 -28
  313. package/dist/es/standards-sdk.es90.js.map +1 -1
  314. package/dist/es/standards-sdk.es91.js +238 -23
  315. package/dist/es/standards-sdk.es91.js.map +1 -1
  316. package/dist/es/standards-sdk.es92.js +267 -225
  317. package/dist/es/standards-sdk.es92.js.map +1 -1
  318. package/dist/es/standards-sdk.es93.js +95 -220
  319. package/dist/es/standards-sdk.es93.js.map +1 -1
  320. package/dist/es/standards-sdk.es94.js +124 -136
  321. package/dist/es/standards-sdk.es94.js.map +1 -1
  322. package/dist/es/standards-sdk.es95.js +42 -138
  323. package/dist/es/standards-sdk.es95.js.map +1 -1
  324. package/dist/es/standards-sdk.es96.js +259 -43
  325. package/dist/es/standards-sdk.es96.js.map +1 -1
  326. package/dist/es/standards-sdk.es97.js +82 -245
  327. package/dist/es/standards-sdk.es97.js.map +1 -1
  328. package/dist/es/standards-sdk.es98.js +49 -50
  329. package/dist/es/standards-sdk.es98.js.map +1 -1
  330. package/dist/es/standards-sdk.es99.js +29 -100
  331. package/dist/es/standards-sdk.es99.js.map +1 -1
  332. package/dist/es/utils/dynamic-import.d.ts +5 -1
  333. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  334. package/package.json +4 -4
  335. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  336. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  337. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  338. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
  339. package/dist/es/standards-sdk.es161.js +0 -247
  340. package/dist/es/standards-sdk.es161.js.map +0 -1
@@ -1,499 +1,375 @@
1
- import { AccountId, Client, Status, TopicCreateTransaction } from "@hashgraph/sdk";
2
- import { HCS20BaseClient } from "./standards-sdk.es75.js";
3
- import { PointsDeploymentError, PointsValidationError, PointsTransferError, PointsBurnError } from "./standards-sdk.es74.js";
4
- import { sleep } from "./standards-sdk.es116.js";
5
- import { createNodeOperatorContext } from "./standards-sdk.es147.js";
6
- import { HCS2Client } from "./standards-sdk.es69.js";
7
- import { buildHcs20DeployTx, buildHcs20MintTx, buildHcs20TransferTx, buildHcs20BurnTx, buildHcs20RegisterTx } from "./standards-sdk.es79.js";
8
- class HCS20Client extends HCS20BaseClient {
9
- constructor(config) {
10
- super(config);
11
- this.operatorAccountId = typeof config.operatorId === "string" ? AccountId.fromString(config.operatorId) : config.operatorId;
12
- this.operatorId = this.operatorAccountId.toString();
13
- const baseClient = this.network === "mainnet" ? Client.forMainnet() : Client.forTestnet();
14
- this.operatorCtx = createNodeOperatorContext({
15
- network: this.network,
16
- operatorId: this.operatorId,
17
- operatorKey: config.operatorKey,
18
- keyType: config.keyType,
19
- mirrorNode: this.mirrorNode,
20
- logger: this.logger,
21
- client: baseClient
1
+ import { Logger } from "./standards-sdk.es105.js";
2
+ import { HederaMirrorNode } from "./standards-sdk.es126.js";
3
+ import "./standards-sdk.es127.js";
4
+ import "./standards-sdk.es128.js";
5
+ import "./standards-sdk.es129.js";
6
+ import "./standards-sdk.es130.js";
7
+ import "./standards-sdk.es131.js";
8
+ import "./standards-sdk.es132.js";
9
+ import "./standards-sdk.es133.js";
10
+ import "./standards-sdk.es134.js";
11
+ import "buffer";
12
+ import "crypto";
13
+ import "@noble/curves/secp256k1.js";
14
+ import "zod";
15
+ import "./standards-sdk.es149.js";
16
+ import "./standards-sdk.es138.js";
17
+ import { HCS20_CONSTANTS, HCS20MessageSchema } from "./standards-sdk.es72.js";
18
+ class HCS20PointsIndexer {
19
+ constructor(network, logger, mirrorNodeUrl) {
20
+ this.isProcessing = false;
21
+ this.lastIndexedSequence = /* @__PURE__ */ new Map();
22
+ this.logger = logger || new Logger({
23
+ level: "info",
24
+ module: "HCS20PointsIndexer"
22
25
  });
23
- this.client = this.operatorCtx.client;
24
- void this.operatorCtx.ensureInitialized();
26
+ this.mirrorNode = new HederaMirrorNode(network, this.logger, {
27
+ customUrl: mirrorNodeUrl
28
+ });
29
+ this.state = this.initializeState();
25
30
  }
26
31
  /**
27
- * Ensure operator is initialized before operations
32
+ * Initialize empty state
28
33
  */
29
- async ensureInitialized() {
30
- await this.operatorCtx.ensureInitialized();
34
+ initializeState() {
35
+ return {
36
+ deployedPoints: /* @__PURE__ */ new Map(),
37
+ balances: /* @__PURE__ */ new Map(),
38
+ transactions: [],
39
+ lastProcessedSequence: 0,
40
+ lastProcessedTimestamp: (/* @__PURE__ */ new Date()).toISOString()
41
+ };
31
42
  }
32
43
  /**
33
- * Submit a payload to a topic
44
+ * Get current state snapshot
34
45
  */
35
- async submitPayload(transaction, submitKey) {
36
- let transactionResponse;
37
- if (submitKey) {
38
- const frozenTransaction = transaction.freezeWith(this.client);
39
- const signedTransaction = await frozenTransaction.sign(submitKey);
40
- transactionResponse = await signedTransaction.execute(this.client);
41
- } else {
42
- transactionResponse = await transaction.execute(this.client);
43
- }
44
- const receipt = await transactionResponse.getReceipt(this.client);
45
- if (!receipt || receipt.status !== Status.Success) {
46
- throw new Error("Failed to submit message to topic");
47
- }
46
+ getState() {
48
47
  return {
49
- receipt,
50
- transactionId: transactionResponse.transactionId.toString()
48
+ ...this.state,
49
+ deployedPoints: new Map(this.state.deployedPoints),
50
+ balances: new Map(this.state.balances),
51
+ transactions: [...this.state.transactions]
51
52
  };
52
53
  }
53
54
  /**
54
- * Create a public topic for HCS-20 (for testnet)
55
+ * Get points info for a specific tick
55
56
  */
56
- async createPublicTopic(memo) {
57
- await this.ensureInitialized();
58
- this.logger.info("Creating public HCS-20 topic...");
59
- const topicCreateTx = await new TopicCreateTransaction().setTopicMemo(memo || "HCS-20 Public Topic").execute(this.client);
60
- const receipt = await topicCreateTx.getReceipt(this.client);
61
- if (receipt.status !== Status.Success || !receipt.topicId) {
62
- throw new Error("Failed to create public topic");
63
- }
64
- const topicId = receipt.topicId.toString();
65
- this.logger.info(`Created public topic: ${topicId}`);
66
- this.publicTopicId = topicId;
67
- return topicId;
57
+ getPointsInfo(tick) {
58
+ return this.state.deployedPoints.get(this.normalizeTick(tick));
68
59
  }
69
60
  /**
70
- * Create a registry topic for HCS-20
61
+ * Get balance for an account and tick
71
62
  */
72
- async createRegistryTopic() {
73
- await this.ensureInitialized();
74
- this.logger.info("Creating HCS-20 registry topic...");
75
- const hcs2Client = new HCS2Client({
76
- operatorId: this.operatorId,
77
- operatorKey: this.operatorCtx.operatorKey,
78
- network: this.network
79
- });
80
- const topicCreateResponse = await hcs2Client.createRegistry({
81
- submitKey: this.operatorCtx.operatorKey,
82
- adminKey: this.operatorCtx.operatorKey
83
- });
84
- if (!topicCreateResponse.success) {
85
- throw new Error("Failed to create registry topic");
86
- }
87
- const topicId = topicCreateResponse.topicId;
88
- this.logger.info(`Created registry topic: ${topicId}`);
89
- this.registryTopicId = topicId;
90
- return topicId;
63
+ getBalance(tick, accountId) {
64
+ const normalizedTick = this.normalizeTick(tick);
65
+ const tickBalances = this.state.balances.get(normalizedTick);
66
+ if (!tickBalances) return "0";
67
+ const balance = tickBalances.get(accountId);
68
+ return balance?.balance || "0";
91
69
  }
92
70
  /**
93
- * Deploy new points
71
+ * Start indexing process
94
72
  */
95
- async deployPoints(options) {
96
- await this.ensureInitialized();
97
- const { progressCallback } = options;
98
- try {
99
- progressCallback?.({
100
- stage: "creating-topic",
101
- percentage: 20
102
- });
103
- let topicId;
104
- const hcs2Client = new HCS2Client({
105
- operatorId: this.operatorId,
106
- operatorKey: this.operatorCtx.operatorKey,
107
- network: this.network
108
- });
109
- if (options.usePrivateTopic) {
110
- const topicCreateResponse = await hcs2Client.createRegistry({
111
- submitKey: this.operatorCtx.operatorKey,
112
- adminKey: this.operatorCtx.operatorKey
113
- });
114
- if (!topicCreateResponse.success) {
115
- throw new PointsDeploymentError(
116
- "Failed to create topic",
117
- options.tick
118
- );
119
- }
120
- topicId = topicCreateResponse.topicId;
121
- this.logger.info(`Created private topic: ${topicId}`);
122
- } else {
123
- topicId = this.publicTopicId;
124
- }
125
- progressCallback?.({
126
- stage: "submitting-deploy",
127
- percentage: 50,
128
- topicId
129
- });
130
- const deployMessage = {
131
- p: "hcs-20",
132
- op: "deploy",
133
- name: options.name,
134
- tick: this.normalizeTick(options.tick),
135
- max: options.maxSupply,
136
- lim: options.limitPerMint,
137
- metadata: options.metadata,
138
- m: options.topicMemo
139
- };
140
- const validation = this.validateMessage(deployMessage);
141
- if (!validation.valid) {
142
- throw new PointsValidationError(
143
- "Invalid deploy message",
144
- validation.errors
73
+ async startIndexing(options) {
74
+ if (this.isProcessing) {
75
+ this.logger.warn("Indexing already in progress");
76
+ return;
77
+ }
78
+ this.isProcessing = true;
79
+ const includePublicTopic = options?.includePublicTopic !== false;
80
+ const includeRegistryTopic = options?.includeRegistryTopic !== false;
81
+ const publicTopicId = includePublicTopic ? options?.publicTopicId || HCS20_CONSTANTS.PUBLIC_TOPIC_ID : null;
82
+ const registryTopicId = includeRegistryTopic ? options?.registryTopicId || HCS20_CONSTANTS.REGISTRY_TOPIC_ID : null;
83
+ const pollInterval = options?.pollInterval || 3e4;
84
+ await this.indexTopics(
85
+ publicTopicId,
86
+ registryTopicId,
87
+ options?.privateTopics
88
+ );
89
+ const pollTopics = async () => {
90
+ if (!this.isProcessing) return;
91
+ try {
92
+ await this.indexTopics(
93
+ publicTopicId,
94
+ registryTopicId,
95
+ options?.privateTopics
145
96
  );
97
+ } catch (error) {
98
+ this.logger.error("Polling error:", error);
146
99
  }
147
- const deployTransaction = buildHcs20DeployTx({
148
- topicId,
149
- name: options.name,
150
- tick: options.tick,
151
- max: options.maxSupply,
152
- lim: options.limitPerMint,
153
- metadata: options.metadata,
154
- memo: options.topicMemo
155
- });
156
- const { transactionId: deployTxId } = await this.submitPayload(deployTransaction);
157
- progressCallback?.({
158
- stage: "confirming",
159
- percentage: 80,
160
- topicId,
161
- deployTxId
162
- });
163
- await this.waitForMirrorNodeConfirmation(topicId, deployTxId);
164
- progressCallback?.({
165
- stage: "complete",
166
- percentage: 100,
167
- topicId,
168
- deployTxId
169
- });
170
- const pointsInfo = {
171
- name: options.name,
172
- tick: this.normalizeTick(options.tick),
173
- maxSupply: options.maxSupply,
174
- limitPerMint: options.limitPerMint,
175
- metadata: options.metadata,
176
- topicId,
177
- deployerAccountId: this.operatorId,
178
- currentSupply: "0",
179
- deploymentTimestamp: (/* @__PURE__ */ new Date()).toISOString(),
180
- isPrivate: options.usePrivateTopic || false
181
- };
182
- return pointsInfo;
183
- } catch (error) {
184
- progressCallback?.({
185
- stage: "complete",
186
- percentage: 100,
187
- error: error instanceof Error ? error.message : "Unknown error"
188
- });
189
- throw error;
100
+ if (this.isProcessing) {
101
+ setTimeout(pollTopics, pollInterval);
102
+ }
103
+ };
104
+ setTimeout(pollTopics, pollInterval);
105
+ }
106
+ /**
107
+ * Index topics once and wait for completion
108
+ */
109
+ async indexOnce(options) {
110
+ const includePublicTopic = options?.includePublicTopic !== false;
111
+ const includeRegistryTopic = options?.includeRegistryTopic !== false;
112
+ const publicTopicId = includePublicTopic ? options?.publicTopicId || HCS20_CONSTANTS.PUBLIC_TOPIC_ID : null;
113
+ const registryTopicId = includeRegistryTopic ? options?.registryTopicId || HCS20_CONSTANTS.REGISTRY_TOPIC_ID : null;
114
+ await this.indexTopics(
115
+ publicTopicId,
116
+ registryTopicId,
117
+ options?.privateTopics
118
+ );
119
+ }
120
+ /**
121
+ * Stop indexing process
122
+ */
123
+ stopIndexing() {
124
+ this.isProcessing = false;
125
+ this.logger.info("Indexing stopped");
126
+ }
127
+ /**
128
+ * Index topics and update state
129
+ */
130
+ async indexTopics(publicTopicId, registryTopicId, privateTopics) {
131
+ this.logger.debug("Starting indexing cycle");
132
+ if (publicTopicId) {
133
+ await this.indexTopic(publicTopicId, false);
134
+ }
135
+ const registeredTopics = registryTopicId ? await this.getRegisteredTopics(registryTopicId) : [];
136
+ const topicsToIndex = [...registeredTopics, ...privateTopics || []];
137
+ for (const topicId of topicsToIndex) {
138
+ await this.indexTopic(topicId, true);
190
139
  }
140
+ this.logger.debug("Indexing cycle complete");
191
141
  }
192
142
  /**
193
- * Mint points
143
+ * Get registered topics from registry
194
144
  */
195
- async mintPoints(options) {
196
- await this.ensureInitialized();
197
- const { progressCallback } = options;
145
+ async getRegisteredTopics(registryTopicId) {
146
+ const topics = [];
198
147
  try {
199
- progressCallback?.({
200
- stage: "validating",
201
- percentage: 20
202
- });
203
- const normalizedTick = this.normalizeTick(options.tick);
204
- progressCallback?.({
205
- stage: "submitting",
206
- percentage: 50
148
+ const messages = await this.mirrorNode.getTopicMessages(registryTopicId, {
149
+ limit: 100,
150
+ order: "asc"
207
151
  });
208
- const topicId = options.topicId ? this.topicToString(options.topicId) : this.publicTopicId;
209
- const mintTransaction = buildHcs20MintTx({
210
- topicId,
211
- tick: options.tick,
212
- amt: options.amount,
213
- to: this.accountToString(options.to),
214
- memo: options.memo
152
+ messages.filter(
153
+ (message) => message.p === "hcs-20" && message.op === "register" && typeof message.t_id === "string"
154
+ ).forEach((message) => {
155
+ topics.push(message.t_id);
215
156
  });
216
- const { transactionId: mintTxId } = await this.submitPayload(mintTransaction);
217
- progressCallback?.({
218
- stage: "confirming",
219
- percentage: 80,
220
- mintTxId
221
- });
222
- if (!options.disableMirrorCheck) {
223
- await this.waitForMirrorNodeConfirmation(topicId, mintTxId);
224
- }
225
- progressCallback?.({
226
- stage: "complete",
227
- percentage: 100,
228
- mintTxId
229
- });
230
- const transaction = {
231
- id: mintTxId,
232
- operation: "mint",
233
- tick: normalizedTick,
234
- amount: options.amount,
235
- to: this.accountToString(options.to),
236
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
237
- sequenceNumber: 0,
238
- topicId,
239
- transactionId: mintTxId,
240
- memo: options.memo
241
- };
242
- return transaction;
243
157
  } catch (error) {
244
- progressCallback?.({
245
- stage: "complete",
246
- percentage: 100,
247
- error: error instanceof Error ? error.message : "Unknown error"
248
- });
249
- throw error;
158
+ this.logger.error("Failed to fetch registry messages:", error);
250
159
  }
160
+ return topics;
251
161
  }
252
162
  /**
253
- * Transfer points
163
+ * Index a single topic
254
164
  */
255
- async transferPoints(options) {
256
- await this.ensureInitialized();
257
- const { progressCallback } = options;
165
+ async indexTopic(topicId, isPrivate) {
258
166
  try {
259
- progressCallback?.({
260
- stage: "validating-balance",
261
- percentage: 20
167
+ const lastSequence = this.lastIndexedSequence.get(topicId);
168
+ this.logger.debug(
169
+ `Indexing topic ${topicId}, starting from sequence ${lastSequence || 0}`
170
+ );
171
+ const messages = await this.mirrorNode.getTopicMessages(topicId, {
172
+ sequenceNumber: lastSequence ? lastSequence + 1 : void 0,
173
+ limit: 1e3,
174
+ order: "asc"
262
175
  });
263
- const normalizedTick = this.normalizeTick(options.tick);
264
- const fromAccount = this.accountToString(options.from);
265
- const toAccount = this.accountToString(options.to);
266
- if (fromAccount !== this.operatorId) {
267
- throw new PointsTransferError(
268
- "For public topics, transaction payer must match sender",
269
- options.tick,
270
- fromAccount,
271
- toAccount,
272
- options.amount
176
+ this.logger.debug(
177
+ `Fetched ${messages.length} messages from topic ${topicId}`
178
+ );
179
+ let maxSequence = lastSequence || 0;
180
+ for (const message of messages) {
181
+ if (message.p !== "hcs-20") {
182
+ continue;
183
+ }
184
+ const parseResult = HCS20MessageSchema.safeParse(message);
185
+ if (!parseResult.success) {
186
+ this.logger.debug("Skipping message due to schema mismatch");
187
+ continue;
188
+ }
189
+ const parsedMsg = parseResult.data;
190
+ const sequenceNumber = message.sequence_number ?? 0;
191
+ this.logger.debug(
192
+ `Found HCS-20 message: op=${parsedMsg.op}, sequence=${sequenceNumber}`
273
193
  );
194
+ if (sequenceNumber > maxSequence) {
195
+ maxSequence = sequenceNumber;
196
+ }
197
+ const topicMessage = {
198
+ consensus_timestamp: message.consensus_timestamp ?? "",
199
+ sequence_number: sequenceNumber,
200
+ payer_account_id: message.payer_account_id ?? message.payer ?? "",
201
+ transaction_id: message.transaction_id ?? ""
202
+ };
203
+ this.processMessage(parsedMsg, topicMessage, topicId, isPrivate);
204
+ this.state.lastProcessedSequence++;
205
+ this.state.lastProcessedTimestamp = message.consensus_timestamp || "";
206
+ }
207
+ if (maxSequence > (lastSequence || 0)) {
208
+ this.lastIndexedSequence.set(topicId, maxSequence);
274
209
  }
275
- progressCallback?.({
276
- stage: "submitting",
277
- percentage: 50
278
- });
279
- const topicId = options.topicId ? this.topicToString(options.topicId) : this.publicTopicId;
280
- const transferTransaction = buildHcs20TransferTx({
281
- topicId,
282
- tick: options.tick,
283
- amt: options.amount,
284
- from: fromAccount,
285
- to: toAccount,
286
- memo: options.memo
287
- });
288
- const { transactionId: transferTxId } = await this.submitPayload(transferTransaction);
289
- progressCallback?.({
290
- stage: "confirming",
291
- percentage: 80,
292
- transferTxId
293
- });
294
- await this.waitForMirrorNodeConfirmation(topicId, transferTxId);
295
- progressCallback?.({
296
- stage: "complete",
297
- percentage: 100,
298
- transferTxId
299
- });
300
- const transaction = {
301
- id: transferTxId,
302
- operation: "transfer",
303
- tick: normalizedTick,
304
- amount: options.amount,
305
- from: fromAccount,
306
- to: toAccount,
307
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
308
- sequenceNumber: 0,
309
- topicId,
310
- transactionId: transferTxId,
311
- memo: options.memo
312
- };
313
- return transaction;
314
210
  } catch (error) {
315
- progressCallback?.({
316
- stage: "complete",
317
- percentage: 100,
318
- error: error instanceof Error ? error.message : "Unknown error"
319
- });
320
- throw error;
211
+ this.logger.error(`Failed to index topic ${topicId}:`, error);
321
212
  }
322
213
  }
323
214
  /**
324
- * Burn points
215
+ * Process a single message
325
216
  */
326
- async burnPoints(options) {
327
- await this.ensureInitialized();
328
- const { progressCallback } = options;
329
- try {
330
- progressCallback?.({
331
- stage: "validating-balance",
332
- percentage: 20
333
- });
334
- const normalizedTick = this.normalizeTick(options.tick);
335
- const fromAccount = this.accountToString(options.from);
336
- if (fromAccount !== this.operatorId) {
337
- throw new PointsBurnError(
338
- "For public topics, transaction payer must match burner",
339
- options.tick,
340
- fromAccount,
341
- options.amount
342
- );
343
- }
344
- progressCallback?.({
345
- stage: "submitting",
346
- percentage: 50
347
- });
348
- const topicId = options.topicId ? this.topicToString(options.topicId) : this.publicTopicId;
349
- const burnTransaction = buildHcs20BurnTx({
350
- topicId,
351
- tick: options.tick,
352
- amt: options.amount,
353
- from: fromAccount,
354
- memo: options.memo
355
- });
356
- const { transactionId: burnTxId } = await this.submitPayload(burnTransaction);
357
- progressCallback?.({
358
- stage: "confirming",
359
- percentage: 80,
360
- burnTxId
361
- });
362
- await this.waitForMirrorNodeConfirmation(topicId, burnTxId);
363
- progressCallback?.({
364
- stage: "complete",
365
- percentage: 100,
366
- burnTxId
367
- });
368
- const transaction = {
369
- id: burnTxId,
370
- operation: "burn",
371
- tick: normalizedTick,
372
- amount: options.amount,
373
- from: fromAccount,
374
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
375
- sequenceNumber: 0,
376
- topicId,
377
- transactionId: burnTxId,
378
- memo: options.memo
379
- };
380
- return transaction;
381
- } catch (error) {
382
- progressCallback?.({
383
- stage: "complete",
384
- percentage: 100,
385
- error: error instanceof Error ? error.message : "Unknown error"
386
- });
387
- throw error;
217
+ processMessage(msg, hcsMsg, topicId, isPrivate) {
218
+ switch (msg.op) {
219
+ case "deploy":
220
+ this.processDeployMessage(msg, hcsMsg, topicId, isPrivate);
221
+ break;
222
+ case "mint":
223
+ this.processMintMessage(msg, hcsMsg, topicId, isPrivate);
224
+ break;
225
+ case "transfer":
226
+ this.processTransferMessage(msg, hcsMsg, topicId, isPrivate);
227
+ break;
228
+ case "burn":
229
+ this.processBurnMessage(msg, hcsMsg, topicId, isPrivate);
230
+ break;
388
231
  }
389
232
  }
390
233
  /**
391
- * Register a topic in the registry
234
+ * Process deploy message
392
235
  */
393
- async registerTopic(options) {
394
- await this.ensureInitialized();
395
- const { progressCallback } = options;
396
- try {
397
- progressCallback?.({
398
- stage: "validating",
399
- percentage: 20
400
- });
401
- const registerMessage = {
402
- p: "hcs-20",
403
- op: "register",
404
- name: options.name,
405
- metadata: options.metadata,
406
- private: options.isPrivate,
407
- t_id: this.topicToString(options.topicId),
408
- m: options.memo
409
- };
410
- const validation = this.validateMessage(registerMessage);
411
- if (!validation.valid) {
412
- throw new PointsValidationError(
413
- "Invalid register message",
414
- validation.errors
415
- );
416
- }
417
- if (!this.registryTopicId) {
418
- throw new PointsDeploymentError(
419
- "Registry topic not available",
420
- options.name
421
- );
422
- }
423
- progressCallback?.({
424
- stage: "submitting",
425
- percentage: 50
426
- });
427
- const registerTransaction = buildHcs20RegisterTx({
428
- registryTopicId: this.registryTopicId,
429
- name: options.name,
430
- topicId: this.topicToString(options.topicId),
431
- isPrivate: options.isPrivate,
432
- metadata: options.metadata,
433
- memo: options.memo
434
- });
435
- const { transactionId: registerTxId } = await this.submitPayload(
436
- registerTransaction,
437
- this.operatorCtx.operatorKey
438
- );
439
- progressCallback?.({
440
- stage: "confirming",
441
- percentage: 80,
442
- registerTxId
443
- });
444
- await this.waitForMirrorNodeConfirmation(
445
- this.registryTopicId,
446
- registerTxId
447
- );
448
- progressCallback?.({
449
- stage: "complete",
450
- percentage: 100,
451
- registerTxId
452
- });
453
- this.logger.info(`Registered topic ${options.topicId} in registry`);
454
- } catch (error) {
455
- progressCallback?.({
456
- stage: "complete",
457
- percentage: 100,
458
- error: error instanceof Error ? error.message : "Unknown error"
459
- });
460
- throw error;
236
+ processDeployMessage(msg, hcsMsg, topicId, isPrivate) {
237
+ const normalizedTick = this.normalizeTick(msg.tick);
238
+ if (this.state.deployedPoints.has(normalizedTick)) {
239
+ return;
461
240
  }
241
+ const pointsInfo = {
242
+ name: msg.name,
243
+ tick: normalizedTick,
244
+ maxSupply: msg.max,
245
+ limitPerMint: msg.lim,
246
+ metadata: msg.metadata,
247
+ topicId,
248
+ deployerAccountId: hcsMsg.payer_account_id,
249
+ currentSupply: "0",
250
+ deploymentTimestamp: hcsMsg.consensus_timestamp,
251
+ isPrivate
252
+ };
253
+ this.state.deployedPoints.set(normalizedTick, pointsInfo);
254
+ this.logger.info(`Deployed points: ${normalizedTick}`);
462
255
  }
463
256
  /**
464
- * Wait for mirror node to index a message
257
+ * Process mint message
465
258
  */
466
- async waitForMirrorNodeConfirmation(topicId, transactionId, maxRetries = 10) {
467
- for (let i = 0; i < maxRetries; i++) {
468
- try {
469
- const messages = await this.mirrorNode.getTopicMessages(topicId, {
470
- limit: 10,
471
- order: "desc"
472
- });
473
- const found = messages.some((message) => {
474
- if (typeof message !== "object" || message === null) {
475
- return false;
476
- }
477
- const candidate = message;
478
- return typeof candidate.consensus_timestamp === "string";
479
- });
480
- if (found) {
481
- this.logger.debug(
482
- `Transaction ${transactionId} confirmed on mirror node`
483
- );
484
- return;
485
- }
486
- } catch (error) {
487
- this.logger.debug(`Mirror node check attempt ${i + 1} failed:`, error);
488
- }
489
- await sleep(2e3);
259
+ processMintMessage(msg, hcsMsg, topicId, isPrivate) {
260
+ const normalizedTick = this.normalizeTick(msg.tick);
261
+ const pointsInfo = this.state.deployedPoints.get(normalizedTick);
262
+ if (!pointsInfo) return;
263
+ const mintAmount = BigInt(msg.amt);
264
+ const currentSupply = BigInt(pointsInfo.currentSupply);
265
+ const maxSupply = BigInt(pointsInfo.maxSupply);
266
+ if (currentSupply + mintAmount > maxSupply) return;
267
+ if (pointsInfo.limitPerMint && mintAmount > BigInt(pointsInfo.limitPerMint))
268
+ return;
269
+ pointsInfo.currentSupply = (currentSupply + mintAmount).toString();
270
+ let tickBalances = this.state.balances.get(normalizedTick);
271
+ if (!tickBalances) {
272
+ tickBalances = /* @__PURE__ */ new Map();
273
+ this.state.balances.set(normalizedTick, tickBalances);
490
274
  }
491
- this.logger.warn(
492
- `Transaction ${transactionId} not found on mirror node after ${maxRetries} attempts`
493
- );
275
+ const currentBalance = tickBalances.get(msg.to);
276
+ const newBalance = currentBalance ? (BigInt(currentBalance.balance) + mintAmount).toString() : msg.amt;
277
+ tickBalances.set(msg.to, {
278
+ tick: normalizedTick,
279
+ accountId: msg.to,
280
+ balance: newBalance,
281
+ lastUpdated: hcsMsg.consensus_timestamp
282
+ });
283
+ this.state.transactions.push({
284
+ id: hcsMsg.transaction_id || `${topicId}-${hcsMsg.sequence_number}`,
285
+ operation: "mint",
286
+ tick: normalizedTick,
287
+ amount: msg.amt,
288
+ to: msg.to,
289
+ timestamp: hcsMsg.consensus_timestamp,
290
+ sequenceNumber: hcsMsg.sequence_number,
291
+ topicId,
292
+ transactionId: hcsMsg.transaction_id || "",
293
+ memo: msg.m
294
+ });
295
+ }
296
+ /**
297
+ * Process transfer message
298
+ */
299
+ processTransferMessage(msg, hcsMsg, topicId, isPrivate) {
300
+ const normalizedTick = this.normalizeTick(msg.tick);
301
+ const tickBalances = this.state.balances.get(normalizedTick);
302
+ if (!tickBalances) return;
303
+ if (!isPrivate && hcsMsg.payer_account_id !== msg.from) return;
304
+ const senderBalance = tickBalances.get(msg.from);
305
+ if (!senderBalance || BigInt(senderBalance.balance) < BigInt(msg.amt))
306
+ return;
307
+ const transferAmount = BigInt(msg.amt);
308
+ senderBalance.balance = (BigInt(senderBalance.balance) - transferAmount).toString();
309
+ senderBalance.lastUpdated = hcsMsg.consensus_timestamp;
310
+ const receiverBalance = tickBalances.get(msg.to);
311
+ if (receiverBalance) {
312
+ receiverBalance.balance = (BigInt(receiverBalance.balance) + transferAmount).toString();
313
+ receiverBalance.lastUpdated = hcsMsg.consensus_timestamp;
314
+ } else {
315
+ tickBalances.set(msg.to, {
316
+ tick: normalizedTick,
317
+ accountId: msg.to,
318
+ balance: msg.amt,
319
+ lastUpdated: hcsMsg.consensus_timestamp
320
+ });
321
+ }
322
+ this.state.transactions.push({
323
+ id: hcsMsg.transaction_id || `${topicId}-${hcsMsg.sequence_number}`,
324
+ operation: "transfer",
325
+ tick: normalizedTick,
326
+ amount: msg.amt,
327
+ from: msg.from,
328
+ to: msg.to,
329
+ timestamp: hcsMsg.consensus_timestamp,
330
+ sequenceNumber: hcsMsg.sequence_number,
331
+ topicId,
332
+ transactionId: hcsMsg.transaction_id || "",
333
+ memo: msg.m
334
+ });
335
+ }
336
+ /**
337
+ * Process burn message
338
+ */
339
+ processBurnMessage(msg, hcsMsg, topicId, isPrivate) {
340
+ const normalizedTick = this.normalizeTick(msg.tick);
341
+ const pointsInfo = this.state.deployedPoints.get(normalizedTick);
342
+ const tickBalances = this.state.balances.get(normalizedTick);
343
+ if (!pointsInfo || !tickBalances) return;
344
+ if (!isPrivate && hcsMsg.payer_account_id !== msg.from) return;
345
+ const accountBalance = tickBalances.get(msg.from);
346
+ if (!accountBalance || BigInt(accountBalance.balance) < BigInt(msg.amt))
347
+ return;
348
+ const burnAmount = BigInt(msg.amt);
349
+ accountBalance.balance = (BigInt(accountBalance.balance) - burnAmount).toString();
350
+ accountBalance.lastUpdated = hcsMsg.consensus_timestamp;
351
+ pointsInfo.currentSupply = (BigInt(pointsInfo.currentSupply) - burnAmount).toString();
352
+ this.state.transactions.push({
353
+ id: hcsMsg.transaction_id || `${topicId}-${hcsMsg.sequence_number}`,
354
+ operation: "burn",
355
+ tick: normalizedTick,
356
+ amount: msg.amt,
357
+ from: msg.from,
358
+ timestamp: hcsMsg.consensus_timestamp,
359
+ sequenceNumber: hcsMsg.sequence_number,
360
+ topicId,
361
+ transactionId: hcsMsg.transaction_id || "",
362
+ memo: msg.m
363
+ });
364
+ }
365
+ /**
366
+ * Normalize tick to lowercase and trim
367
+ */
368
+ normalizeTick(tick) {
369
+ return tick.toLowerCase().trim();
494
370
  }
495
371
  }
496
372
  export {
497
- HCS20Client
373
+ HCS20PointsIndexer
498
374
  };
499
375
  //# sourceMappingURL=standards-sdk.es77.js.map