@hashgraphonline/standards-sdk 0.1.141-canary.4 → 0.1.141-canary.40

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 (272) hide show
  1. package/README.md +13 -1
  2. package/dist/cjs/hcs-11/client.d.ts.map +1 -1
  3. package/dist/cjs/hcs-11/types.d.ts +1 -0
  4. package/dist/cjs/hcs-11/types.d.ts.map +1 -1
  5. package/dist/cjs/hcs-16/base-client.d.ts.map +1 -1
  6. package/dist/cjs/hcs-17/types.d.ts.map +1 -1
  7. package/dist/cjs/hcs-20/sdk.d.ts.map +1 -1
  8. package/dist/cjs/hcs-20/types.d.ts +9 -8
  9. package/dist/cjs/hcs-20/types.d.ts.map +1 -1
  10. package/dist/cjs/hcs-21/base-client.d.ts +5 -3
  11. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
  12. package/dist/cjs/hcs-21/browser.d.ts +17 -7
  13. package/dist/cjs/hcs-21/browser.d.ts.map +1 -1
  14. package/dist/cjs/hcs-21/index.d.ts +1 -0
  15. package/dist/cjs/hcs-21/index.d.ts.map +1 -1
  16. package/dist/cjs/hcs-21/sdk.d.ts +62 -0
  17. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
  18. package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
  19. package/dist/cjs/hcs-21/types.d.ts +149 -65
  20. package/dist/cjs/hcs-21/types.d.ts.map +1 -1
  21. package/dist/cjs/hcs-21/verify.d.ts +6 -0
  22. package/dist/cjs/hcs-21/verify.d.ts.map +1 -0
  23. package/dist/cjs/inscribe/inscriber.d.ts +3 -1
  24. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  25. package/dist/cjs/inscribe/quote-cache.d.ts.map +1 -1
  26. package/dist/cjs/inscribe/types.d.ts +5 -0
  27. package/dist/cjs/inscribe/types.d.ts.map +1 -1
  28. package/dist/cjs/services/registry-broker/client.d.ts +4 -3
  29. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  30. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  31. package/dist/cjs/services/registry-broker/schemas.d.ts +24 -24
  32. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  33. package/dist/cjs/services/types.d.ts +1 -0
  34. package/dist/cjs/services/types.d.ts.map +1 -1
  35. package/dist/cjs/standards-sdk.cjs +2 -2
  36. package/dist/cjs/standards-sdk.cjs.map +1 -1
  37. package/dist/cjs/utils/dynamic-import.d.ts +1 -0
  38. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  39. package/dist/es/hcs-11/client.d.ts.map +1 -1
  40. package/dist/es/hcs-11/types.d.ts +1 -0
  41. package/dist/es/hcs-11/types.d.ts.map +1 -1
  42. package/dist/es/hcs-16/base-client.d.ts.map +1 -1
  43. package/dist/es/hcs-17/types.d.ts.map +1 -1
  44. package/dist/es/hcs-20/sdk.d.ts.map +1 -1
  45. package/dist/es/hcs-20/types.d.ts +9 -8
  46. package/dist/es/hcs-20/types.d.ts.map +1 -1
  47. package/dist/es/hcs-21/base-client.d.ts +5 -3
  48. package/dist/es/hcs-21/base-client.d.ts.map +1 -1
  49. package/dist/es/hcs-21/browser.d.ts +17 -7
  50. package/dist/es/hcs-21/browser.d.ts.map +1 -1
  51. package/dist/es/hcs-21/index.d.ts +1 -0
  52. package/dist/es/hcs-21/index.d.ts.map +1 -1
  53. package/dist/es/hcs-21/sdk.d.ts +62 -0
  54. package/dist/es/hcs-21/sdk.d.ts.map +1 -1
  55. package/dist/es/hcs-21/tx.d.ts.map +1 -1
  56. package/dist/es/hcs-21/types.d.ts +149 -65
  57. package/dist/es/hcs-21/types.d.ts.map +1 -1
  58. package/dist/es/hcs-21/verify.d.ts +6 -0
  59. package/dist/es/hcs-21/verify.d.ts.map +1 -0
  60. package/dist/es/inscribe/inscriber.d.ts +3 -1
  61. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  62. package/dist/es/inscribe/quote-cache.d.ts.map +1 -1
  63. package/dist/es/inscribe/types.d.ts +5 -0
  64. package/dist/es/inscribe/types.d.ts.map +1 -1
  65. package/dist/es/services/registry-broker/client.d.ts +4 -3
  66. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  67. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  68. package/dist/es/services/registry-broker/schemas.d.ts +24 -24
  69. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  70. package/dist/es/services/types.d.ts +1 -0
  71. package/dist/es/services/types.d.ts.map +1 -1
  72. package/dist/es/standards-sdk.es.js +58 -50
  73. package/dist/es/standards-sdk.es.js.map +1 -1
  74. package/dist/es/standards-sdk.es10.js +2 -2
  75. package/dist/es/standards-sdk.es100.js +26 -229
  76. package/dist/es/standards-sdk.es100.js.map +1 -1
  77. package/dist/es/standards-sdk.es101.js +228 -109
  78. package/dist/es/standards-sdk.es101.js.map +1 -1
  79. package/dist/es/standards-sdk.es102.js +94 -15
  80. package/dist/es/standards-sdk.es102.js.map +1 -1
  81. package/dist/es/standards-sdk.es103.js +30 -80
  82. package/dist/es/standards-sdk.es103.js.map +1 -1
  83. package/dist/es/standards-sdk.es104.js +80 -27
  84. package/dist/es/standards-sdk.es104.js.map +1 -1
  85. package/dist/es/standards-sdk.es105.js +25 -136
  86. package/dist/es/standards-sdk.es105.js.map +1 -1
  87. package/dist/es/standards-sdk.es106.js +140 -27
  88. package/dist/es/standards-sdk.es106.js.map +1 -1
  89. package/dist/es/standards-sdk.es107.js +27 -20
  90. package/dist/es/standards-sdk.es107.js.map +1 -1
  91. package/dist/es/standards-sdk.es108.js +18 -156
  92. package/dist/es/standards-sdk.es108.js.map +1 -1
  93. package/dist/es/standards-sdk.es109.js +148 -196
  94. package/dist/es/standards-sdk.es109.js.map +1 -1
  95. package/dist/es/standards-sdk.es110.js +160 -747
  96. package/dist/es/standards-sdk.es110.js.map +1 -1
  97. package/dist/es/standards-sdk.es111.js +786 -9
  98. package/dist/es/standards-sdk.es111.js.map +1 -1
  99. package/dist/es/standards-sdk.es112.js +13 -567
  100. package/dist/es/standards-sdk.es112.js.map +1 -1
  101. package/dist/es/standards-sdk.es113.js +541 -576
  102. package/dist/es/standards-sdk.es113.js.map +1 -1
  103. package/dist/es/standards-sdk.es114.js +601 -12
  104. package/dist/es/standards-sdk.es114.js.map +1 -1
  105. package/dist/es/standards-sdk.es115.js +13 -2
  106. package/dist/es/standards-sdk.es115.js.map +1 -1
  107. package/dist/es/standards-sdk.es116.js +2 -83
  108. package/dist/es/standards-sdk.es116.js.map +1 -1
  109. package/dist/es/standards-sdk.es117.js +80 -36
  110. package/dist/es/standards-sdk.es117.js.map +1 -1
  111. package/dist/es/standards-sdk.es118.js +39 -2
  112. package/dist/es/standards-sdk.es118.js.map +1 -1
  113. package/dist/es/standards-sdk.es119.js +2 -223
  114. package/dist/es/standards-sdk.es119.js.map +1 -1
  115. package/dist/es/standards-sdk.es12.js +1 -1
  116. package/dist/es/standards-sdk.es120.js +193 -1110
  117. package/dist/es/standards-sdk.es120.js.map +1 -1
  118. package/dist/es/standards-sdk.es121.js +1059 -225
  119. package/dist/es/standards-sdk.es121.js.map +1 -1
  120. package/dist/es/standards-sdk.es122.js +303 -419
  121. package/dist/es/standards-sdk.es122.js.map +1 -1
  122. package/dist/es/standards-sdk.es123.js +418 -351
  123. package/dist/es/standards-sdk.es123.js.map +1 -1
  124. package/dist/es/standards-sdk.es124.js +348 -785
  125. package/dist/es/standards-sdk.es124.js.map +1 -1
  126. package/dist/es/standards-sdk.es125.js +854 -182
  127. package/dist/es/standards-sdk.es125.js.map +1 -1
  128. package/dist/es/standards-sdk.es126.js +153 -1512
  129. package/dist/es/standards-sdk.es126.js.map +1 -1
  130. package/dist/es/standards-sdk.es127.js +1373 -1977
  131. package/dist/es/standards-sdk.es127.js.map +1 -1
  132. package/dist/es/standards-sdk.es128.js +2209 -69
  133. package/dist/es/standards-sdk.es128.js.map +1 -1
  134. package/dist/es/standards-sdk.es129.js +59 -79
  135. package/dist/es/standards-sdk.es129.js.map +1 -1
  136. package/dist/es/standards-sdk.es13.js +1 -1
  137. package/dist/es/standards-sdk.es130.js +80 -152
  138. package/dist/es/standards-sdk.es130.js.map +1 -1
  139. package/dist/es/standards-sdk.es131.js +159 -7
  140. package/dist/es/standards-sdk.es131.js.map +1 -1
  141. package/dist/es/standards-sdk.es132.js +7 -86
  142. package/dist/es/standards-sdk.es132.js.map +1 -1
  143. package/dist/es/standards-sdk.es133.js +65 -44
  144. package/dist/es/standards-sdk.es133.js.map +1 -1
  145. package/dist/es/standards-sdk.es134.js +65 -28
  146. package/dist/es/standards-sdk.es134.js.map +1 -1
  147. package/dist/es/standards-sdk.es135.js +28 -12274
  148. package/dist/es/standards-sdk.es135.js.map +1 -1
  149. package/dist/es/standards-sdk.es136.js +138 -760
  150. package/dist/es/standards-sdk.es136.js.map +1 -1
  151. package/dist/es/standards-sdk.es137.js +37 -133
  152. package/dist/es/standards-sdk.es137.js.map +1 -1
  153. package/dist/es/standards-sdk.es138.js +12265 -33
  154. package/dist/es/standards-sdk.es138.js.map +1 -1
  155. package/dist/es/standards-sdk.es139.js +766 -17
  156. package/dist/es/standards-sdk.es139.js.map +1 -1
  157. package/dist/es/standards-sdk.es14.js +1 -1
  158. package/dist/es/standards-sdk.es140.js +167 -51
  159. package/dist/es/standards-sdk.es140.js.map +1 -1
  160. package/dist/es/standards-sdk.es141.js +311 -53
  161. package/dist/es/standards-sdk.es141.js.map +1 -1
  162. package/dist/es/standards-sdk.es142.js +294 -120
  163. package/dist/es/standards-sdk.es142.js.map +1 -1
  164. package/dist/es/standards-sdk.es143.js +322 -191
  165. package/dist/es/standards-sdk.es143.js.map +1 -1
  166. package/dist/es/standards-sdk.es144.js +279 -294
  167. package/dist/es/standards-sdk.es144.js.map +1 -1
  168. package/dist/es/standards-sdk.es145.js +63 -440
  169. package/dist/es/standards-sdk.es145.js.map +1 -1
  170. package/dist/es/standards-sdk.es146.js +13 -327
  171. package/dist/es/standards-sdk.es146.js.map +1 -1
  172. package/dist/es/standards-sdk.es147.js +49 -69
  173. package/dist/es/standards-sdk.es147.js.map +1 -1
  174. package/dist/es/standards-sdk.es148.js +85 -0
  175. package/dist/es/standards-sdk.es148.js.map +1 -0
  176. package/dist/es/standards-sdk.es15.js +1 -1
  177. package/dist/es/standards-sdk.es16.js +1 -1
  178. package/dist/es/standards-sdk.es17.js +5 -11
  179. package/dist/es/standards-sdk.es17.js.map +1 -1
  180. package/dist/es/standards-sdk.es19.js +12 -17
  181. package/dist/es/standards-sdk.es19.js.map +1 -1
  182. package/dist/es/standards-sdk.es20.js +9 -14
  183. package/dist/es/standards-sdk.es20.js.map +1 -1
  184. package/dist/es/standards-sdk.es21.js +1 -1
  185. package/dist/es/standards-sdk.es22.js +1 -1
  186. package/dist/es/standards-sdk.es23.js +1 -1
  187. package/dist/es/standards-sdk.es24.js +1 -1
  188. package/dist/es/standards-sdk.es25.js +1 -1
  189. package/dist/es/standards-sdk.es26.js +1 -1
  190. package/dist/es/standards-sdk.es27.js +1 -1
  191. package/dist/es/standards-sdk.es28.js +16 -19
  192. package/dist/es/standards-sdk.es28.js.map +1 -1
  193. package/dist/es/standards-sdk.es29.js.map +1 -1
  194. package/dist/es/standards-sdk.es3.js +2 -2
  195. package/dist/es/standards-sdk.es31.js +2 -2
  196. package/dist/es/standards-sdk.es32.js +4 -4
  197. package/dist/es/standards-sdk.es33.js +1 -1
  198. package/dist/es/standards-sdk.es36.js +7 -12
  199. package/dist/es/standards-sdk.es36.js.map +1 -1
  200. package/dist/es/standards-sdk.es37.js +4 -4
  201. package/dist/es/standards-sdk.es38.js +2 -2
  202. package/dist/es/standards-sdk.es39.js +2 -2
  203. package/dist/es/standards-sdk.es40.js +1 -1
  204. package/dist/es/standards-sdk.es41.js +1 -1
  205. package/dist/es/standards-sdk.es42.js +2 -2
  206. package/dist/es/standards-sdk.es47.js +1 -1
  207. package/dist/es/standards-sdk.es5.js +2 -2
  208. package/dist/es/standards-sdk.es52.js +1 -1
  209. package/dist/es/standards-sdk.es54.js +1 -1
  210. package/dist/es/standards-sdk.es57.js +2 -2
  211. package/dist/es/standards-sdk.es59.js +1 -1
  212. package/dist/es/standards-sdk.es6.js +2 -2
  213. package/dist/es/standards-sdk.es60.js +1 -1
  214. package/dist/es/standards-sdk.es61.js +7 -12
  215. package/dist/es/standards-sdk.es61.js.map +1 -1
  216. package/dist/es/standards-sdk.es63.js +1 -1
  217. package/dist/es/standards-sdk.es65.js +2 -2
  218. package/dist/es/standards-sdk.es66.js +3 -3
  219. package/dist/es/standards-sdk.es69.js +2 -2
  220. package/dist/es/standards-sdk.es7.js +2 -2
  221. package/dist/es/standards-sdk.es70.js +3 -3
  222. package/dist/es/standards-sdk.es71.js +2 -2
  223. package/dist/es/standards-sdk.es72.js +1 -1
  224. package/dist/es/standards-sdk.es73.js.map +1 -1
  225. package/dist/es/standards-sdk.es75.js +2 -2
  226. package/dist/es/standards-sdk.es77.js +5 -3
  227. package/dist/es/standards-sdk.es77.js.map +1 -1
  228. package/dist/es/standards-sdk.es78.js +4 -10
  229. package/dist/es/standards-sdk.es78.js.map +1 -1
  230. package/dist/es/standards-sdk.es79.js +1 -1
  231. package/dist/es/standards-sdk.es8.js +1 -1
  232. package/dist/es/standards-sdk.es80.js +27 -15
  233. package/dist/es/standards-sdk.es80.js.map +1 -1
  234. package/dist/es/standards-sdk.es82.js +12 -4
  235. package/dist/es/standards-sdk.es82.js.map +1 -1
  236. package/dist/es/standards-sdk.es83.js +31 -6
  237. package/dist/es/standards-sdk.es83.js.map +1 -1
  238. package/dist/es/standards-sdk.es84.js +182 -7
  239. package/dist/es/standards-sdk.es84.js.map +1 -1
  240. package/dist/es/standards-sdk.es85.js +256 -9
  241. package/dist/es/standards-sdk.es85.js.map +1 -1
  242. package/dist/es/standards-sdk.es86.js +55 -21
  243. package/dist/es/standards-sdk.es86.js.map +1 -1
  244. package/dist/es/standards-sdk.es87.js +22 -75
  245. package/dist/es/standards-sdk.es87.js.map +1 -1
  246. package/dist/es/standards-sdk.es88.js +45 -30
  247. package/dist/es/standards-sdk.es88.js.map +1 -1
  248. package/dist/es/standards-sdk.es89.js +57 -22
  249. package/dist/es/standards-sdk.es89.js.map +1 -1
  250. package/dist/es/standards-sdk.es90.js +28 -23
  251. package/dist/es/standards-sdk.es90.js.map +1 -1
  252. package/dist/es/standards-sdk.es91.js +23 -167
  253. package/dist/es/standards-sdk.es91.js.map +1 -1
  254. package/dist/es/standards-sdk.es92.js +158 -119
  255. package/dist/es/standards-sdk.es92.js.map +1 -1
  256. package/dist/es/standards-sdk.es93.js +68 -95
  257. package/dist/es/standards-sdk.es93.js.map +1 -1
  258. package/dist/es/standards-sdk.es94.js +136 -119
  259. package/dist/es/standards-sdk.es94.js.map +1 -1
  260. package/dist/es/standards-sdk.es95.js +139 -39
  261. package/dist/es/standards-sdk.es95.js.map +1 -1
  262. package/dist/es/standards-sdk.es96.js +42 -257
  263. package/dist/es/standards-sdk.es96.js.map +1 -1
  264. package/dist/es/standards-sdk.es97.js +243 -80
  265. package/dist/es/standards-sdk.es97.js.map +1 -1
  266. package/dist/es/standards-sdk.es98.js +47 -48
  267. package/dist/es/standards-sdk.es98.js.map +1 -1
  268. package/dist/es/standards-sdk.es99.js +100 -28
  269. package/dist/es/standards-sdk.es99.js.map +1 -1
  270. package/dist/es/utils/dynamic-import.d.ts +1 -0
  271. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  272. package/package.json +65 -63
@@ -1,32 +1,104 @@
1
- import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es138.js";
2
- import { generateHCS17Memo } from "./standards-sdk.es95.js";
3
- function buildHcs17CreateTopicTx(params) {
4
- const memo = generateHCS17Memo(params.ttl);
5
- return buildTopicCreateTx({
6
- memo,
7
- adminKey: params.adminKey,
8
- submitKey: params.submitKey,
9
- operatorPublicKey: params.operatorPublicKey
10
- });
11
- }
12
- function buildHcs17MessageTx(params) {
13
- const payload = {
14
- p: "hcs-17",
15
- op: "state_hash",
16
- state_hash: params.stateHash,
17
- topics: params.topics,
18
- account_id: params.accountId,
19
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
20
- m: params.memo
21
- };
22
- return buildMessageTx({
23
- topicId: params.topicId,
24
- message: JSON.stringify(payload),
25
- transactionMemo: params.transactionMemo
26
- });
1
+ import { HCS17BaseClient } from "./standards-sdk.es97.js";
2
+ import { buildHcs17CreateTopicTx, buildHcs17MessageTx } from "./standards-sdk.es100.js";
3
+ class HCS17BrowserClient extends HCS17BaseClient {
4
+ constructor(config) {
5
+ super(config);
6
+ this.hwc = config.hwc;
7
+ this.signer = config.signer;
8
+ }
9
+ ensureConnected() {
10
+ if (this.signer && typeof this.signer.getAccountId === "function") {
11
+ return this.signer.getAccountId().toString();
12
+ }
13
+ const info = this.hwc?.getAccountInfo?.();
14
+ const accountId = info?.accountId;
15
+ if (!accountId) {
16
+ throw new Error("No active wallet connection");
17
+ }
18
+ return accountId;
19
+ }
20
+ getSigner() {
21
+ if (this.signer) {
22
+ return this.signer;
23
+ }
24
+ this.ensureConnected();
25
+ const s = this.hwc?.dAppConnector?.signers?.[0];
26
+ if (!s) {
27
+ throw new Error("No active wallet signer");
28
+ }
29
+ return s;
30
+ }
31
+ /**
32
+ * Create an HCS‑17 state topic, signing with the connected signer.
33
+ */
34
+ async createStateTopic(options) {
35
+ this.ensureConnected();
36
+ const signer = this.getSigner();
37
+ const ttl = options?.ttl ?? 86400;
38
+ const tx = buildHcs17CreateTopicTx({ ttl });
39
+ const frozen = await tx.freezeWithSigner(signer);
40
+ const res = await frozen.executeWithSigner(signer);
41
+ const receipt = await res.getReceiptWithSigner(signer);
42
+ const topicId = receipt?.topicId?.toString?.() || "";
43
+ this.logger.info(`Created HCS-17 state topic via wallet: ${topicId}`);
44
+ return topicId;
45
+ }
46
+ /**
47
+ * Submit an HCS‑17 message to a topic, signing with the connected signer.
48
+ */
49
+ async submitMessage(topicId, message) {
50
+ const { valid, errors } = this.validateMessage(message);
51
+ if (!valid) {
52
+ throw new Error(`Invalid HCS-17 message: ${errors.join(", ")}`);
53
+ }
54
+ const signer = this.getSigner();
55
+ const tx = buildHcs17MessageTx({
56
+ topicId,
57
+ stateHash: message.state_hash,
58
+ accountId: message.account_id,
59
+ topics: message.topics,
60
+ memo: message.m
61
+ });
62
+ const frozen = await tx.freezeWithSigner(signer);
63
+ const res = await frozen.executeWithSigner(signer);
64
+ await res.getReceiptWithSigner(signer);
65
+ return {};
66
+ }
67
+ /**
68
+ * Compute current account state hash from topic running hashes and publish it.
69
+ */
70
+ async computeAndPublish(params) {
71
+ this.ensureConnected();
72
+ const signer = this.getSigner();
73
+ const topicStates = [];
74
+ for (const t of params.topics) {
75
+ const msgs = await this.mirrorNode.getTopicMessages(t, {
76
+ limit: 1,
77
+ order: "desc"
78
+ });
79
+ const latest = msgs[0];
80
+ const running = latest && latest.running_hash || "";
81
+ topicStates.push({ topicId: t, latestRunningHash: running });
82
+ }
83
+ const input = {
84
+ accountId: params.accountId,
85
+ publicKey: params.accountPublicKey,
86
+ topics: topicStates
87
+ };
88
+ const result = this.calculateAccountStateHash(input);
89
+ const tx = buildHcs17MessageTx({
90
+ topicId: params.publishTopicId,
91
+ stateHash: result.stateHash,
92
+ accountId: params.accountId,
93
+ topics: params.topics,
94
+ memo: params.memo
95
+ });
96
+ const frozen = await tx.freezeWithSigner(signer);
97
+ await frozen.executeWithSigner(signer);
98
+ return { stateHash: result.stateHash };
99
+ }
27
100
  }
28
101
  export {
29
- buildHcs17CreateTopicTx,
30
- buildHcs17MessageTx
102
+ HCS17BrowserClient
31
103
  };
32
104
  //# sourceMappingURL=standards-sdk.es99.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es99.js","sources":["../../src/hcs-17/tx.ts"],"sourcesContent":["import {\n PublicKey,\n KeyList,\n TopicMessageSubmitTransaction,\n TopicCreateTransaction,\n} from '@hashgraph/sdk';\nimport { buildTopicCreateTx, buildMessageTx } from '../common/tx/tx-utils';\nimport { generateHCS17Memo, StateHashMessage } from './types';\n\n/**\n * Build a TopicCreateTransaction for HCS‑17 state topics.\n */\nexport function buildHcs17CreateTopicTx(params: {\n ttl: number;\n adminKey?: boolean | string | PublicKey | KeyList;\n submitKey?: boolean | string | PublicKey | KeyList;\n operatorPublicKey?: PublicKey;\n}): TopicCreateTransaction {\n const memo = generateHCS17Memo(params.ttl);\n return buildTopicCreateTx({\n memo,\n adminKey: params.adminKey,\n submitKey: params.submitKey,\n operatorPublicKey: params.operatorPublicKey,\n });\n}\n\n/**\n * Build a TopicMessageSubmitTransaction for HCS‑17 messages.\n */\n/**\n * Build a TopicMessageSubmitTransaction for HCS17 messages.\n */\nexport function buildHcs17MessageTx(params: {\n topicId: string;\n stateHash: string;\n accountId: string;\n topics: string[];\n memo?: string;\n transactionMemo?: string;\n}): TopicMessageSubmitTransaction {\n const payload: StateHashMessage = {\n p: 'hcs-17',\n op: 'state_hash',\n state_hash: params.stateHash,\n topics: params.topics,\n account_id: params.accountId,\n timestamp: new Date().toISOString(),\n m: params.memo,\n };\n return buildMessageTx({\n topicId: params.topicId,\n message: JSON.stringify(payload),\n transactionMemo: params.transactionMemo,\n });\n}\n"],"names":[],"mappings":";;AAYO,SAAS,wBAAwB,QAKb;AACzB,QAAM,OAAO,kBAAkB,OAAO,GAAG;AACzC,SAAO,mBAAmB;AAAA,IACxB;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,WAAW,OAAO;AAAA,IAClB,mBAAmB,OAAO;AAAA,EAAA,CAC3B;AACH;AAQO,SAAS,oBAAoB,QAOF;AAChC,QAAM,UAA4B;AAAA,IAChC,GAAG;AAAA,IACH,IAAI;AAAA,IACJ,YAAY,OAAO;AAAA,IACnB,QAAQ,OAAO;AAAA,IACf,YAAY,OAAO;AAAA,IACnB,YAAW,oBAAI,KAAA,GAAO,YAAA;AAAA,IACtB,GAAG,OAAO;AAAA,EAAA;AAEZ,SAAO,eAAe;AAAA,IACpB,SAAS,OAAO;AAAA,IAChB,SAAS,KAAK,UAAU,OAAO;AAAA,IAC/B,iBAAiB,OAAO;AAAA,EAAA,CACzB;AACH;"}
1
+ {"version":3,"file":"standards-sdk.es99.js","sources":["../../src/hcs-17/browser.ts"],"sourcesContent":["import { HCS17BaseClient } from './base-client';\nimport { BrowserHCS17ClientConfig, StateHashMessage } from './types';\nimport { buildHcs17CreateTopicTx, buildHcs17MessageTx } from './tx';\nimport type { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport type { DAppSigner } from '@hashgraph/hedera-wallet-connect';\nimport type { PublicKey } from '@hashgraph/sdk';\n\n/**\n * Browser client for HCS‑17 operations using a DAppSigner.\n * Builds transactions and executes via signer without helper shims.\n */\nexport class HCS17BrowserClient extends HCS17BaseClient {\n private hwc?: HashinalsWalletConnectSDK;\n private signer?: DAppSigner;\n\n constructor(config: BrowserHCS17ClientConfig) {\n super(config);\n this.hwc = config.hwc;\n this.signer = config.signer;\n }\n\n private ensureConnected(): string {\n if (\n this.signer &&\n typeof (this.signer as DAppSigner).getAccountId === 'function'\n ) {\n return (this.signer as DAppSigner).getAccountId().toString();\n }\n const info = this.hwc?.getAccountInfo?.();\n const accountId = info?.accountId;\n if (!accountId) {\n throw new Error('No active wallet connection');\n }\n return accountId;\n }\n\n private getSigner(): DAppSigner {\n if (this.signer) {\n return this.signer;\n }\n this.ensureConnected();\n const s = this.hwc?.dAppConnector?.signers?.[0];\n if (!s) {\n throw new Error('No active wallet signer');\n }\n return s as unknown as DAppSigner;\n }\n\n /**\n * Create an HCS‑17 state topic, signing with the connected signer.\n */\n async createStateTopic(options?: {\n ttl?: number;\n adminKey?: boolean | string;\n submitKey?: boolean | string;\n }): Promise<string> {\n this.ensureConnected();\n const signer = this.getSigner();\n const ttl = options?.ttl ?? 86400;\n const tx = buildHcs17CreateTopicTx({ ttl });\n const frozen = await tx.freezeWithSigner(signer);\n const res = await frozen.executeWithSigner(signer);\n const receipt = await res.getReceiptWithSigner(signer);\n const topicId = receipt?.topicId?.toString?.() || '';\n this.logger.info(`Created HCS-17 state topic via wallet: ${topicId}`);\n return topicId;\n }\n\n /**\n * Submit an HCS‑17 message to a topic, signing with the connected signer.\n */\n async submitMessage(\n topicId: string,\n message: StateHashMessage,\n ): Promise<{ transactionId?: string }> {\n const { valid, errors } = this.validateMessage(message);\n if (!valid) {\n throw new Error(`Invalid HCS-17 message: ${errors.join(', ')}`);\n }\n const signer = this.getSigner();\n const tx = buildHcs17MessageTx({\n topicId,\n stateHash: message.state_hash,\n accountId: message.account_id,\n topics: message.topics,\n memo: message.m,\n });\n const frozen = await tx.freezeWithSigner(signer);\n const res = await frozen.executeWithSigner(signer);\n await res.getReceiptWithSigner(signer);\n return {};\n }\n\n /**\n * Compute current account state hash from topic running hashes and publish it.\n */\n async computeAndPublish(params: {\n accountId: string;\n accountPublicKey: string | PublicKey;\n topics: string[];\n publishTopicId: string;\n memo?: string;\n }): Promise<{ stateHash: string }> {\n this.ensureConnected();\n const signer = this.getSigner();\n\n const topicStates: { topicId: string; latestRunningHash: string }[] = [];\n for (const t of params.topics) {\n const msgs = await this.mirrorNode.getTopicMessages(t, {\n limit: 1,\n order: 'desc',\n });\n const latest = msgs[0];\n const running = (latest && (latest as any).running_hash) || '';\n topicStates.push({ topicId: t, latestRunningHash: running });\n }\n\n const input = {\n accountId: params.accountId,\n publicKey: params.accountPublicKey,\n topics: topicStates,\n };\n const result = this.calculateAccountStateHash(input);\n const tx = buildHcs17MessageTx({\n topicId: params.publishTopicId,\n stateHash: result.stateHash,\n accountId: params.accountId,\n topics: params.topics,\n memo: params.memo,\n });\n const frozen = await tx.freezeWithSigner(signer);\n await frozen.executeWithSigner(signer);\n return { stateHash: result.stateHash };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare function optionalImport<T>(specifier: string): Promise<T | null>;
2
+ export declare function optionalImportSync<T>(specifier: string): T | null;
2
3
  //# sourceMappingURL=dynamic-import.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-import.d.ts","sourceRoot":"","sources":["../../../src/utils/dynamic-import.ts"],"names":[],"mappings":"AAwEA,wBAAsB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAiB5E"}
1
+ {"version":3,"file":"dynamic-import.d.ts","sourceRoot":"","sources":["../../../src/utils/dynamic-import.ts"],"names":[],"mappings":"AAwEA,wBAAsB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAiB5E;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CA2BjE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hashgraphonline/standards-sdk",
3
- "version": "0.1.141-canary.4",
3
+ "version": "0.1.141-canary.40",
4
4
  "description": "The Hashgraph Online Standards SDK provides a complete implementation of the Hashgraph Consensus Standards (HCS), giving developers all the tools needed to build applications on Hedera.",
5
5
  "type": "module",
6
6
  "files": [
@@ -45,66 +45,6 @@
45
45
  "default": "./dist/es/standards-sdk.es.js"
46
46
  }
47
47
  },
48
- "devDependencies": {
49
- "@hashgraphonline/conversational-agent": "0.2.104",
50
- "@swc/jest": "^0.2.39",
51
- "@types/jest": "^29.5.14",
52
- "@types/lodash": "^4.17.20",
53
- "@types/mime-types": "^2.1.4",
54
- "@types/node": "^22.18.12",
55
- "@typescript-eslint/eslint-plugin": "^8.46.2",
56
- "@typescript-eslint/parser": "^8.46.2",
57
- "concurrently": "^8.2.2",
58
- "eslint-plugin-sonarjs": "^3.0.5",
59
- "jest": "^29.7.0",
60
- "jest-environment-jsdom": "^29.7.0",
61
- "json-to-plain-text": "^1.2.0",
62
- "localtunnel": "^2.0.2",
63
- "nodemon": "^3.1.10",
64
- "openai": "^4.104.0",
65
- "prettier": "^3.6.2",
66
- "process": "^0.11.10",
67
- "rimraf": "^6.0.1",
68
- "terser": "^5.44.0",
69
- "ts-jest": "^29.4.5",
70
- "tsx": "^4.20.6",
71
- "typescript": "^5.9.3",
72
- "vite": "^6.4.1",
73
- "vite-plugin-dts": "^4.5.4",
74
- "vite-plugin-node-polyfills": "^0.24.0",
75
- "ioredis": "^5.8.2"
76
- },
77
- "dependencies": {
78
- "@hashgraph/proto": "^2.24.0",
79
- "@hashgraph/sdk": "^2.77.0",
80
- "@hashgraphonline/hashinal-wc": "2.0.1",
81
- "@hiero-did-sdk/registrar": "0.1.2",
82
- "@hiero-did-sdk/resolver": "0.1.2",
83
- "@kiloscribe/inscription-sdk": "^2.0.3",
84
- "@noble/curves": "^2.0.1",
85
- "agent0-sdk": "0.2.1",
86
- "axios": "^1.12.2",
87
- "bignumber.js": "^9.3.1",
88
- "buffer": "^6.0.3",
89
- "chalk": "^5.4.1",
90
- "date-fns": "^4.1.0",
91
- "dotenv": "^16.6.1",
92
- "ethers": "^6.15.0",
93
- "file-type": "^20.5.0",
94
- "mime-types": "^2.1.35",
95
- "viem": "^2.19.9",
96
- "x402-axios": "^0.7.0",
97
- "zod": "^3.25.76"
98
- },
99
- "peerDependenciesMeta": {
100
- "ioredis": {
101
- "optional": true
102
- }
103
- },
104
- "resolutions": {
105
- "@hashgraphonline/standards-sdk": "0.1.132",
106
- "@hashgraph/sdk": "^2.77.0"
107
- },
108
48
  "scripts": {
109
49
  "clean": "rimraf dist",
110
50
  "build:es": "BUILD_FORMAT=es vite build",
@@ -114,6 +54,7 @@
114
54
  "cli": "([ -d cli/standards-cli/node_modules ] || pnpm --dir cli/standards-cli install) && pnpm --dir cli/standards-cli start",
115
55
  "cli:build": "([ -d cli/standards-cli/node_modules ] || pnpm --dir cli/standards-cli install) && pnpm --dir cli/standards-cli build",
116
56
  "cli:install": "pnpm --dir cli/standards-cli install",
57
+ "prepublishOnly": "npm run build",
117
58
  "release": "npm publish --access public",
118
59
  "release:canary": "npm run prepublishOnly && npm publish --tag canary --access public",
119
60
  "version:canary": "npm version prerelease --preid canary --no-git-tag-version",
@@ -163,5 +104,66 @@
163
104
  "lint:fix": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\" \"demo/**/*.{ts,tsx,js,jsx,json}\" \"__tests__/**/*.{ts,tsx,js,jsx,json}\"",
164
105
  "format": "npm run lint:fix",
165
106
  "format:check": "npm run lint"
166
- }
167
- }
107
+ },
108
+ "devDependencies": {
109
+ "@hashgraphonline/conversational-agent": "0.2.104",
110
+ "@swc/jest": "^0.2.39",
111
+ "@types/jest": "^29.5.14",
112
+ "@types/lodash": "^4.17.20",
113
+ "@types/mime-types": "^2.1.4",
114
+ "@types/node": "^22.18.12",
115
+ "@typescript-eslint/eslint-plugin": "^8.46.2",
116
+ "@typescript-eslint/parser": "^8.46.2",
117
+ "concurrently": "^8.2.2",
118
+ "eslint-plugin-sonarjs": "^3.0.5",
119
+ "jest": "^29.7.0",
120
+ "jest-environment-jsdom": "^29.7.0",
121
+ "json-to-plain-text": "^1.2.0",
122
+ "localtunnel": "^2.0.2",
123
+ "nodemon": "^3.1.10",
124
+ "openai": "^4.104.0",
125
+ "prettier": "^3.6.2",
126
+ "process": "^0.11.10",
127
+ "rimraf": "^6.0.1",
128
+ "terser": "^5.44.0",
129
+ "ts-jest": "^29.4.5",
130
+ "tsx": "^4.20.6",
131
+ "typescript": "^5.9.3",
132
+ "vite": "^6.4.1",
133
+ "vite-plugin-dts": "^4.5.4",
134
+ "vite-plugin-node-polyfills": "^0.24.0",
135
+ "ioredis": "^5.8.2"
136
+ },
137
+ "dependencies": {
138
+ "@hashgraph/proto": "^2.24.0",
139
+ "@hashgraph/sdk": "^2.77.0",
140
+ "@hashgraphonline/hashinal-wc": "2.0.1",
141
+ "@hiero-did-sdk/registrar": "0.1.2",
142
+ "@hiero-did-sdk/resolver": "0.1.2",
143
+ "@kiloscribe/inscription-sdk": "^2.0.4",
144
+ "@noble/curves": "^2.0.1",
145
+ "agent0-sdk": "0.2.1",
146
+ "axios": "^1.12.2",
147
+ "bignumber.js": "^9.3.1",
148
+ "buffer": "^6.0.3",
149
+ "chalk": "^5.4.1",
150
+ "date-fns": "^4.1.0",
151
+ "dotenv": "^16.6.1",
152
+ "ethers": "^6.15.0",
153
+ "file-type": "^20.5.0",
154
+ "mime-types": "^2.1.35",
155
+ "viem": "^2.19.9",
156
+ "x402-axios": "^0.7.0",
157
+ "zod": "^3.25.76"
158
+ },
159
+ "peerDependenciesMeta": {
160
+ "ioredis": {
161
+ "optional": true
162
+ }
163
+ },
164
+ "resolutions": {
165
+ "@hashgraphonline/standards-sdk": "0.1.141-canary.25",
166
+ "@hashgraph/sdk": "^2.77.0"
167
+ },
168
+ "packageManager": "pnpm@10.11.1+sha512.e519b9f7639869dc8d5c3c5dfef73b3f091094b0a006d7317353c72b124e80e1afd429732e28705ad6bfa1ee879c1fce46c128ccebd3192101f43dd67c667912"
169
+ }