@hashgraphonline/standards-sdk 0.1.141-canary.12 → 0.1.141-canary.14

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 (202) hide show
  1. package/README.md +3 -1
  2. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
  3. package/dist/cjs/hcs-21/index.d.ts +1 -0
  4. package/dist/cjs/hcs-21/index.d.ts.map +1 -1
  5. package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
  6. package/dist/cjs/hcs-21/verify.d.ts +6 -0
  7. package/dist/cjs/hcs-21/verify.d.ts.map +1 -0
  8. package/dist/cjs/services/registry-broker/client.d.ts +4 -3
  9. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  10. package/dist/cjs/standards-sdk.cjs +2 -2
  11. package/dist/cjs/standards-sdk.cjs.map +1 -1
  12. package/dist/es/hcs-21/base-client.d.ts.map +1 -1
  13. package/dist/es/hcs-21/index.d.ts +1 -0
  14. package/dist/es/hcs-21/index.d.ts.map +1 -1
  15. package/dist/es/hcs-21/tx.d.ts.map +1 -1
  16. package/dist/es/hcs-21/verify.d.ts +6 -0
  17. package/dist/es/hcs-21/verify.d.ts.map +1 -0
  18. package/dist/es/services/registry-broker/client.d.ts +4 -3
  19. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  20. package/dist/es/standards-sdk.es.js +53 -48
  21. package/dist/es/standards-sdk.es.js.map +1 -1
  22. package/dist/es/standards-sdk.es10.js +2 -2
  23. package/dist/es/standards-sdk.es100.js +26 -229
  24. package/dist/es/standards-sdk.es100.js.map +1 -1
  25. package/dist/es/standards-sdk.es101.js +228 -109
  26. package/dist/es/standards-sdk.es101.js.map +1 -1
  27. package/dist/es/standards-sdk.es102.js +94 -15
  28. package/dist/es/standards-sdk.es102.js.map +1 -1
  29. package/dist/es/standards-sdk.es103.js +30 -80
  30. package/dist/es/standards-sdk.es103.js.map +1 -1
  31. package/dist/es/standards-sdk.es104.js +80 -27
  32. package/dist/es/standards-sdk.es104.js.map +1 -1
  33. package/dist/es/standards-sdk.es105.js +25 -136
  34. package/dist/es/standards-sdk.es105.js.map +1 -1
  35. package/dist/es/standards-sdk.es106.js +140 -27
  36. package/dist/es/standards-sdk.es106.js.map +1 -1
  37. package/dist/es/standards-sdk.es107.js +27 -20
  38. package/dist/es/standards-sdk.es107.js.map +1 -1
  39. package/dist/es/standards-sdk.es108.js +18 -156
  40. package/dist/es/standards-sdk.es108.js.map +1 -1
  41. package/dist/es/standards-sdk.es109.js +148 -196
  42. package/dist/es/standards-sdk.es109.js.map +1 -1
  43. package/dist/es/standards-sdk.es110.js +161 -747
  44. package/dist/es/standards-sdk.es110.js.map +1 -1
  45. package/dist/es/standards-sdk.es111.js +786 -9
  46. package/dist/es/standards-sdk.es111.js.map +1 -1
  47. package/dist/es/standards-sdk.es112.js +13 -567
  48. package/dist/es/standards-sdk.es112.js.map +1 -1
  49. package/dist/es/standards-sdk.es113.js +541 -576
  50. package/dist/es/standards-sdk.es113.js.map +1 -1
  51. package/dist/es/standards-sdk.es114.js +601 -12
  52. package/dist/es/standards-sdk.es114.js.map +1 -1
  53. package/dist/es/standards-sdk.es115.js +13 -2
  54. package/dist/es/standards-sdk.es115.js.map +1 -1
  55. package/dist/es/standards-sdk.es116.js +2 -83
  56. package/dist/es/standards-sdk.es116.js.map +1 -1
  57. package/dist/es/standards-sdk.es117.js +80 -36
  58. package/dist/es/standards-sdk.es117.js.map +1 -1
  59. package/dist/es/standards-sdk.es118.js +39 -2
  60. package/dist/es/standards-sdk.es118.js.map +1 -1
  61. package/dist/es/standards-sdk.es119.js +2 -223
  62. package/dist/es/standards-sdk.es119.js.map +1 -1
  63. package/dist/es/standards-sdk.es12.js +1 -1
  64. package/dist/es/standards-sdk.es120.js +193 -1110
  65. package/dist/es/standards-sdk.es120.js.map +1 -1
  66. package/dist/es/standards-sdk.es121.js +1059 -225
  67. package/dist/es/standards-sdk.es121.js.map +1 -1
  68. package/dist/es/standards-sdk.es122.js +303 -419
  69. package/dist/es/standards-sdk.es122.js.map +1 -1
  70. package/dist/es/standards-sdk.es123.js +418 -351
  71. package/dist/es/standards-sdk.es123.js.map +1 -1
  72. package/dist/es/standards-sdk.es124.js +348 -818
  73. package/dist/es/standards-sdk.es124.js.map +1 -1
  74. package/dist/es/standards-sdk.es125.js +804 -187
  75. package/dist/es/standards-sdk.es125.js.map +1 -1
  76. package/dist/es/standards-sdk.es126.js +153 -1512
  77. package/dist/es/standards-sdk.es126.js.map +1 -1
  78. package/dist/es/standards-sdk.es127.js +1373 -1987
  79. package/dist/es/standards-sdk.es127.js.map +1 -1
  80. package/dist/es/standards-sdk.es128.js +2216 -65
  81. package/dist/es/standards-sdk.es128.js.map +1 -1
  82. package/dist/es/standards-sdk.es129.js +64 -79
  83. package/dist/es/standards-sdk.es129.js.map +1 -1
  84. package/dist/es/standards-sdk.es13.js +1 -1
  85. package/dist/es/standards-sdk.es130.js +80 -152
  86. package/dist/es/standards-sdk.es130.js.map +1 -1
  87. package/dist/es/standards-sdk.es131.js +159 -7
  88. package/dist/es/standards-sdk.es131.js.map +1 -1
  89. package/dist/es/standards-sdk.es132.js +7 -86
  90. package/dist/es/standards-sdk.es132.js.map +1 -1
  91. package/dist/es/standards-sdk.es133.js +65 -44
  92. package/dist/es/standards-sdk.es133.js.map +1 -1
  93. package/dist/es/standards-sdk.es134.js +65 -28
  94. package/dist/es/standards-sdk.es134.js.map +1 -1
  95. package/dist/es/standards-sdk.es135.js +28 -138
  96. package/dist/es/standards-sdk.es135.js.map +1 -1
  97. package/dist/es/standards-sdk.es136.js +133 -37
  98. package/dist/es/standards-sdk.es136.js.map +1 -1
  99. package/dist/es/standards-sdk.es137.js +34 -12266
  100. package/dist/es/standards-sdk.es137.js.map +1 -1
  101. package/dist/es/standards-sdk.es139.js +12269 -12
  102. package/dist/es/standards-sdk.es139.js.map +1 -1
  103. package/dist/es/standards-sdk.es14.js +1 -1
  104. package/dist/es/standards-sdk.es141.js +1 -1
  105. package/dist/es/standards-sdk.es142.js +13 -168
  106. package/dist/es/standards-sdk.es142.js.map +1 -1
  107. package/dist/es/standards-sdk.es143.js +139 -289
  108. package/dist/es/standards-sdk.es143.js.map +1 -1
  109. package/dist/es/standards-sdk.es144.js +274 -298
  110. package/dist/es/standards-sdk.es144.js.map +1 -1
  111. package/dist/es/standards-sdk.es145.js +262 -369
  112. package/dist/es/standards-sdk.es145.js.map +1 -1
  113. package/dist/es/standards-sdk.es146.js +316 -194
  114. package/dist/es/standards-sdk.es146.js.map +1 -1
  115. package/dist/es/standards-sdk.es147.js +319 -64
  116. package/dist/es/standards-sdk.es147.js.map +1 -1
  117. package/dist/es/standards-sdk.es148.js +79 -0
  118. package/dist/es/standards-sdk.es148.js.map +1 -0
  119. package/dist/es/standards-sdk.es15.js +1 -1
  120. package/dist/es/standards-sdk.es16.js +1 -1
  121. package/dist/es/standards-sdk.es17.js +4 -9
  122. package/dist/es/standards-sdk.es17.js.map +1 -1
  123. package/dist/es/standards-sdk.es19.js +11 -15
  124. package/dist/es/standards-sdk.es19.js.map +1 -1
  125. package/dist/es/standards-sdk.es20.js +8 -12
  126. package/dist/es/standards-sdk.es20.js.map +1 -1
  127. package/dist/es/standards-sdk.es21.js +1 -1
  128. package/dist/es/standards-sdk.es22.js +1 -1
  129. package/dist/es/standards-sdk.es23.js +1 -1
  130. package/dist/es/standards-sdk.es24.js +1 -1
  131. package/dist/es/standards-sdk.es25.js +1 -1
  132. package/dist/es/standards-sdk.es26.js +1 -1
  133. package/dist/es/standards-sdk.es27.js +1 -1
  134. package/dist/es/standards-sdk.es28.js +11 -15
  135. package/dist/es/standards-sdk.es28.js.map +1 -1
  136. package/dist/es/standards-sdk.es3.js +2 -2
  137. package/dist/es/standards-sdk.es31.js +2 -2
  138. package/dist/es/standards-sdk.es32.js +4 -4
  139. package/dist/es/standards-sdk.es33.js +1 -1
  140. package/dist/es/standards-sdk.es36.js +5 -10
  141. package/dist/es/standards-sdk.es36.js.map +1 -1
  142. package/dist/es/standards-sdk.es37.js +4 -4
  143. package/dist/es/standards-sdk.es38.js +2 -2
  144. package/dist/es/standards-sdk.es39.js +2 -2
  145. package/dist/es/standards-sdk.es40.js +1 -1
  146. package/dist/es/standards-sdk.es41.js +1 -1
  147. package/dist/es/standards-sdk.es42.js +2 -2
  148. package/dist/es/standards-sdk.es47.js +1 -1
  149. package/dist/es/standards-sdk.es5.js +2 -2
  150. package/dist/es/standards-sdk.es52.js +1 -1
  151. package/dist/es/standards-sdk.es54.js +1 -1
  152. package/dist/es/standards-sdk.es57.js +1 -1
  153. package/dist/es/standards-sdk.es6.js +2 -2
  154. package/dist/es/standards-sdk.es61.js +6 -10
  155. package/dist/es/standards-sdk.es61.js.map +1 -1
  156. package/dist/es/standards-sdk.es65.js +2 -2
  157. package/dist/es/standards-sdk.es66.js +3 -3
  158. package/dist/es/standards-sdk.es69.js +2 -2
  159. package/dist/es/standards-sdk.es7.js +2 -2
  160. package/dist/es/standards-sdk.es70.js +3 -3
  161. package/dist/es/standards-sdk.es71.js +2 -2
  162. package/dist/es/standards-sdk.es72.js +1 -1
  163. package/dist/es/standards-sdk.es75.js +2 -2
  164. package/dist/es/standards-sdk.es77.js +2 -2
  165. package/dist/es/standards-sdk.es78.js +3 -8
  166. package/dist/es/standards-sdk.es78.js.map +1 -1
  167. package/dist/es/standards-sdk.es79.js +1 -1
  168. package/dist/es/standards-sdk.es8.js +1 -1
  169. package/dist/es/standards-sdk.es82.js +10 -2
  170. package/dist/es/standards-sdk.es82.js.map +1 -1
  171. package/dist/es/standards-sdk.es83.js +5 -5
  172. package/dist/es/standards-sdk.es83.js.map +1 -1
  173. package/dist/es/standards-sdk.es84.js +4 -4
  174. package/dist/es/standards-sdk.es86.js +55 -21
  175. package/dist/es/standards-sdk.es86.js.map +1 -1
  176. package/dist/es/standards-sdk.es87.js +22 -75
  177. package/dist/es/standards-sdk.es87.js.map +1 -1
  178. package/dist/es/standards-sdk.es88.js +45 -30
  179. package/dist/es/standards-sdk.es88.js.map +1 -1
  180. package/dist/es/standards-sdk.es89.js +57 -22
  181. package/dist/es/standards-sdk.es89.js.map +1 -1
  182. package/dist/es/standards-sdk.es90.js +28 -23
  183. package/dist/es/standards-sdk.es90.js.map +1 -1
  184. package/dist/es/standards-sdk.es91.js +23 -167
  185. package/dist/es/standards-sdk.es91.js.map +1 -1
  186. package/dist/es/standards-sdk.es92.js +158 -119
  187. package/dist/es/standards-sdk.es92.js.map +1 -1
  188. package/dist/es/standards-sdk.es93.js +68 -95
  189. package/dist/es/standards-sdk.es93.js.map +1 -1
  190. package/dist/es/standards-sdk.es94.js +136 -119
  191. package/dist/es/standards-sdk.es94.js.map +1 -1
  192. package/dist/es/standards-sdk.es95.js +134 -39
  193. package/dist/es/standards-sdk.es95.js.map +1 -1
  194. package/dist/es/standards-sdk.es96.js +40 -258
  195. package/dist/es/standards-sdk.es96.js.map +1 -1
  196. package/dist/es/standards-sdk.es97.js +243 -80
  197. package/dist/es/standards-sdk.es97.js.map +1 -1
  198. package/dist/es/standards-sdk.es98.js +47 -48
  199. package/dist/es/standards-sdk.es98.js.map +1 -1
  200. package/dist/es/standards-sdk.es99.js +100 -28
  201. package/dist/es/standards-sdk.es99.js.map +1 -1
  202. package/package.json +1 -1
@@ -1,32 +1,104 @@
1
- import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es136.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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hashgraphonline/standards-sdk",
3
- "version": "0.1.141-canary.12",
3
+ "version": "0.1.141-canary.14",
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": [