@hashgraphonline/standards-sdk 0.1.141-canary.9 → 0.1.141-feat-hcs-21-flora-adapter.canary.cff94ea.45

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 (249) hide show
  1. package/README.md +13 -1
  2. package/dist/cjs/hcs-16/base-client.d.ts.map +1 -1
  3. package/dist/cjs/hcs-17/types.d.ts.map +1 -1
  4. package/dist/cjs/hcs-20/sdk.d.ts.map +1 -1
  5. package/dist/cjs/hcs-20/types.d.ts +9 -8
  6. package/dist/cjs/hcs-20/types.d.ts.map +1 -1
  7. package/dist/cjs/hcs-21/base-client.d.ts +4 -3
  8. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
  9. package/dist/cjs/hcs-21/index.d.ts +1 -0
  10. package/dist/cjs/hcs-21/index.d.ts.map +1 -1
  11. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
  12. package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
  13. package/dist/cjs/hcs-21/types.d.ts +135 -64
  14. package/dist/cjs/hcs-21/types.d.ts.map +1 -1
  15. package/dist/cjs/hcs-21/verify.d.ts +6 -0
  16. package/dist/cjs/hcs-21/verify.d.ts.map +1 -0
  17. package/dist/cjs/inscribe/inscriber.d.ts +1 -0
  18. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  19. package/dist/cjs/inscribe/quote-cache.d.ts.map +1 -1
  20. package/dist/cjs/services/registry-broker/client.d.ts +4 -3
  21. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  22. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  23. package/dist/cjs/services/registry-broker/schemas.d.ts +16 -16
  24. package/dist/cjs/standards-sdk.cjs +2 -2
  25. package/dist/cjs/standards-sdk.cjs.map +1 -1
  26. package/dist/cjs/utils/dynamic-import.d.ts +1 -0
  27. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  28. package/dist/es/hcs-16/base-client.d.ts.map +1 -1
  29. package/dist/es/hcs-17/types.d.ts.map +1 -1
  30. package/dist/es/hcs-20/sdk.d.ts.map +1 -1
  31. package/dist/es/hcs-20/types.d.ts +9 -8
  32. package/dist/es/hcs-20/types.d.ts.map +1 -1
  33. package/dist/es/hcs-21/base-client.d.ts +4 -3
  34. package/dist/es/hcs-21/base-client.d.ts.map +1 -1
  35. package/dist/es/hcs-21/index.d.ts +1 -0
  36. package/dist/es/hcs-21/index.d.ts.map +1 -1
  37. package/dist/es/hcs-21/sdk.d.ts.map +1 -1
  38. package/dist/es/hcs-21/tx.d.ts.map +1 -1
  39. package/dist/es/hcs-21/types.d.ts +135 -64
  40. package/dist/es/hcs-21/types.d.ts.map +1 -1
  41. package/dist/es/hcs-21/verify.d.ts +6 -0
  42. package/dist/es/hcs-21/verify.d.ts.map +1 -0
  43. package/dist/es/inscribe/inscriber.d.ts +1 -0
  44. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  45. package/dist/es/inscribe/quote-cache.d.ts.map +1 -1
  46. package/dist/es/services/registry-broker/client.d.ts +4 -3
  47. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  48. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  49. package/dist/es/services/registry-broker/schemas.d.ts +16 -16
  50. package/dist/es/standards-sdk.es.js +58 -50
  51. package/dist/es/standards-sdk.es.js.map +1 -1
  52. package/dist/es/standards-sdk.es10.js +2 -2
  53. package/dist/es/standards-sdk.es100.js +26 -229
  54. package/dist/es/standards-sdk.es100.js.map +1 -1
  55. package/dist/es/standards-sdk.es101.js +228 -109
  56. package/dist/es/standards-sdk.es101.js.map +1 -1
  57. package/dist/es/standards-sdk.es102.js +94 -15
  58. package/dist/es/standards-sdk.es102.js.map +1 -1
  59. package/dist/es/standards-sdk.es103.js +30 -80
  60. package/dist/es/standards-sdk.es103.js.map +1 -1
  61. package/dist/es/standards-sdk.es104.js +80 -27
  62. package/dist/es/standards-sdk.es104.js.map +1 -1
  63. package/dist/es/standards-sdk.es105.js +25 -136
  64. package/dist/es/standards-sdk.es105.js.map +1 -1
  65. package/dist/es/standards-sdk.es106.js +140 -27
  66. package/dist/es/standards-sdk.es106.js.map +1 -1
  67. package/dist/es/standards-sdk.es107.js +27 -20
  68. package/dist/es/standards-sdk.es107.js.map +1 -1
  69. package/dist/es/standards-sdk.es108.js +18 -156
  70. package/dist/es/standards-sdk.es108.js.map +1 -1
  71. package/dist/es/standards-sdk.es109.js +148 -196
  72. package/dist/es/standards-sdk.es109.js.map +1 -1
  73. package/dist/es/standards-sdk.es110.js +160 -747
  74. package/dist/es/standards-sdk.es110.js.map +1 -1
  75. package/dist/es/standards-sdk.es111.js +786 -9
  76. package/dist/es/standards-sdk.es111.js.map +1 -1
  77. package/dist/es/standards-sdk.es112.js +13 -567
  78. package/dist/es/standards-sdk.es112.js.map +1 -1
  79. package/dist/es/standards-sdk.es113.js +541 -576
  80. package/dist/es/standards-sdk.es113.js.map +1 -1
  81. package/dist/es/standards-sdk.es114.js +601 -12
  82. package/dist/es/standards-sdk.es114.js.map +1 -1
  83. package/dist/es/standards-sdk.es115.js +13 -2
  84. package/dist/es/standards-sdk.es115.js.map +1 -1
  85. package/dist/es/standards-sdk.es116.js +2 -83
  86. package/dist/es/standards-sdk.es116.js.map +1 -1
  87. package/dist/es/standards-sdk.es117.js +80 -36
  88. package/dist/es/standards-sdk.es117.js.map +1 -1
  89. package/dist/es/standards-sdk.es118.js +39 -2
  90. package/dist/es/standards-sdk.es118.js.map +1 -1
  91. package/dist/es/standards-sdk.es119.js +2 -223
  92. package/dist/es/standards-sdk.es119.js.map +1 -1
  93. package/dist/es/standards-sdk.es12.js +1 -1
  94. package/dist/es/standards-sdk.es120.js +193 -1110
  95. package/dist/es/standards-sdk.es120.js.map +1 -1
  96. package/dist/es/standards-sdk.es121.js +1059 -225
  97. package/dist/es/standards-sdk.es121.js.map +1 -1
  98. package/dist/es/standards-sdk.es122.js +303 -419
  99. package/dist/es/standards-sdk.es122.js.map +1 -1
  100. package/dist/es/standards-sdk.es123.js +418 -351
  101. package/dist/es/standards-sdk.es123.js.map +1 -1
  102. package/dist/es/standards-sdk.es124.js +348 -785
  103. package/dist/es/standards-sdk.es124.js.map +1 -1
  104. package/dist/es/standards-sdk.es125.js +767 -183
  105. package/dist/es/standards-sdk.es125.js.map +1 -1
  106. package/dist/es/standards-sdk.es126.js +153 -1512
  107. package/dist/es/standards-sdk.es126.js.map +1 -1
  108. package/dist/es/standards-sdk.es127.js +1373 -1987
  109. package/dist/es/standards-sdk.es127.js.map +1 -1
  110. package/dist/es/standards-sdk.es128.js +2208 -67
  111. package/dist/es/standards-sdk.es128.js.map +1 -1
  112. package/dist/es/standards-sdk.es129.js +59 -79
  113. package/dist/es/standards-sdk.es129.js.map +1 -1
  114. package/dist/es/standards-sdk.es13.js +1 -1
  115. package/dist/es/standards-sdk.es130.js +80 -152
  116. package/dist/es/standards-sdk.es130.js.map +1 -1
  117. package/dist/es/standards-sdk.es131.js +159 -7
  118. package/dist/es/standards-sdk.es131.js.map +1 -1
  119. package/dist/es/standards-sdk.es132.js +7 -86
  120. package/dist/es/standards-sdk.es132.js.map +1 -1
  121. package/dist/es/standards-sdk.es133.js +65 -44
  122. package/dist/es/standards-sdk.es133.js.map +1 -1
  123. package/dist/es/standards-sdk.es134.js +65 -28
  124. package/dist/es/standards-sdk.es134.js.map +1 -1
  125. package/dist/es/standards-sdk.es135.js +69 -125
  126. package/dist/es/standards-sdk.es135.js.map +1 -1
  127. package/dist/es/standards-sdk.es136.js +28 -42
  128. package/dist/es/standards-sdk.es136.js.map +1 -1
  129. package/dist/es/standards-sdk.es137.js +132 -50
  130. package/dist/es/standards-sdk.es137.js.map +1 -1
  131. package/dist/es/standards-sdk.es138.js +36 -58
  132. package/dist/es/standards-sdk.es138.js.map +1 -1
  133. package/dist/es/standards-sdk.es139.js +56 -766
  134. package/dist/es/standards-sdk.es139.js.map +1 -1
  135. package/dist/es/standards-sdk.es14.js +1 -1
  136. package/dist/es/standards-sdk.es140.js +746 -12254
  137. package/dist/es/standards-sdk.es140.js.map +1 -1
  138. package/dist/es/standards-sdk.es141.js +12235 -133
  139. package/dist/es/standards-sdk.es141.js.map +1 -1
  140. package/dist/es/standards-sdk.es142.js +13 -318
  141. package/dist/es/standards-sdk.es142.js.map +1 -1
  142. package/dist/es/standards-sdk.es143.js +120 -294
  143. package/dist/es/standards-sdk.es143.js.map +1 -1
  144. package/dist/es/standards-sdk.es144.js +191 -322
  145. package/dist/es/standards-sdk.es144.js.map +1 -1
  146. package/dist/es/standards-sdk.es145.js +294 -279
  147. package/dist/es/standards-sdk.es145.js.map +1 -1
  148. package/dist/es/standards-sdk.es146.js +440 -63
  149. package/dist/es/standards-sdk.es146.js.map +1 -1
  150. package/dist/es/standards-sdk.es147.js +327 -13
  151. package/dist/es/standards-sdk.es147.js.map +1 -1
  152. package/dist/es/standards-sdk.es148.js +79 -0
  153. package/dist/es/standards-sdk.es148.js.map +1 -0
  154. package/dist/es/standards-sdk.es15.js +1 -1
  155. package/dist/es/standards-sdk.es16.js +1 -1
  156. package/dist/es/standards-sdk.es17.js +5 -11
  157. package/dist/es/standards-sdk.es17.js.map +1 -1
  158. package/dist/es/standards-sdk.es19.js +12 -17
  159. package/dist/es/standards-sdk.es19.js.map +1 -1
  160. package/dist/es/standards-sdk.es2.js +26 -72
  161. package/dist/es/standards-sdk.es2.js.map +1 -1
  162. package/dist/es/standards-sdk.es20.js +9 -14
  163. package/dist/es/standards-sdk.es20.js.map +1 -1
  164. package/dist/es/standards-sdk.es21.js +1 -1
  165. package/dist/es/standards-sdk.es22.js +1 -1
  166. package/dist/es/standards-sdk.es23.js +1 -1
  167. package/dist/es/standards-sdk.es24.js +1 -1
  168. package/dist/es/standards-sdk.es25.js +1 -1
  169. package/dist/es/standards-sdk.es26.js +1 -1
  170. package/dist/es/standards-sdk.es27.js +1 -1
  171. package/dist/es/standards-sdk.es28.js +12 -17
  172. package/dist/es/standards-sdk.es28.js.map +1 -1
  173. package/dist/es/standards-sdk.es3.js +2 -2
  174. package/dist/es/standards-sdk.es31.js +2 -2
  175. package/dist/es/standards-sdk.es32.js +4 -4
  176. package/dist/es/standards-sdk.es33.js +1 -1
  177. package/dist/es/standards-sdk.es36.js +6 -12
  178. package/dist/es/standards-sdk.es36.js.map +1 -1
  179. package/dist/es/standards-sdk.es37.js +4 -4
  180. package/dist/es/standards-sdk.es38.js +2 -2
  181. package/dist/es/standards-sdk.es39.js +2 -2
  182. package/dist/es/standards-sdk.es40.js +1 -1
  183. package/dist/es/standards-sdk.es41.js +1 -1
  184. package/dist/es/standards-sdk.es42.js +2 -2
  185. package/dist/es/standards-sdk.es47.js +1 -1
  186. package/dist/es/standards-sdk.es5.js +2 -2
  187. package/dist/es/standards-sdk.es52.js +1 -1
  188. package/dist/es/standards-sdk.es54.js +1 -1
  189. package/dist/es/standards-sdk.es57.js +2 -2
  190. package/dist/es/standards-sdk.es59.js +1 -1
  191. package/dist/es/standards-sdk.es6.js +2 -2
  192. package/dist/es/standards-sdk.es60.js +1 -1
  193. package/dist/es/standards-sdk.es61.js +7 -12
  194. package/dist/es/standards-sdk.es61.js.map +1 -1
  195. package/dist/es/standards-sdk.es63.js +1 -1
  196. package/dist/es/standards-sdk.es65.js +2 -2
  197. package/dist/es/standards-sdk.es66.js +3 -3
  198. package/dist/es/standards-sdk.es69.js +2 -2
  199. package/dist/es/standards-sdk.es7.js +2 -2
  200. package/dist/es/standards-sdk.es70.js +3 -3
  201. package/dist/es/standards-sdk.es71.js +2 -2
  202. package/dist/es/standards-sdk.es72.js +1 -1
  203. package/dist/es/standards-sdk.es73.js.map +1 -1
  204. package/dist/es/standards-sdk.es75.js +2 -2
  205. package/dist/es/standards-sdk.es77.js +5 -3
  206. package/dist/es/standards-sdk.es77.js.map +1 -1
  207. package/dist/es/standards-sdk.es78.js +4 -10
  208. package/dist/es/standards-sdk.es78.js.map +1 -1
  209. package/dist/es/standards-sdk.es79.js +1 -1
  210. package/dist/es/standards-sdk.es8.js +1 -1
  211. package/dist/es/standards-sdk.es80.js +26 -15
  212. package/dist/es/standards-sdk.es80.js.map +1 -1
  213. package/dist/es/standards-sdk.es82.js +12 -4
  214. package/dist/es/standards-sdk.es82.js.map +1 -1
  215. package/dist/es/standards-sdk.es83.js +7 -6
  216. package/dist/es/standards-sdk.es83.js.map +1 -1
  217. package/dist/es/standards-sdk.es84.js +7 -5
  218. package/dist/es/standards-sdk.es84.js.map +1 -1
  219. package/dist/es/standards-sdk.es86.js +55 -21
  220. package/dist/es/standards-sdk.es86.js.map +1 -1
  221. package/dist/es/standards-sdk.es87.js +22 -75
  222. package/dist/es/standards-sdk.es87.js.map +1 -1
  223. package/dist/es/standards-sdk.es88.js +45 -30
  224. package/dist/es/standards-sdk.es88.js.map +1 -1
  225. package/dist/es/standards-sdk.es89.js +57 -22
  226. package/dist/es/standards-sdk.es89.js.map +1 -1
  227. package/dist/es/standards-sdk.es90.js +28 -23
  228. package/dist/es/standards-sdk.es90.js.map +1 -1
  229. package/dist/es/standards-sdk.es91.js +23 -167
  230. package/dist/es/standards-sdk.es91.js.map +1 -1
  231. package/dist/es/standards-sdk.es92.js +158 -119
  232. package/dist/es/standards-sdk.es92.js.map +1 -1
  233. package/dist/es/standards-sdk.es93.js +68 -95
  234. package/dist/es/standards-sdk.es93.js.map +1 -1
  235. package/dist/es/standards-sdk.es94.js +136 -119
  236. package/dist/es/standards-sdk.es94.js.map +1 -1
  237. package/dist/es/standards-sdk.es95.js +139 -39
  238. package/dist/es/standards-sdk.es95.js.map +1 -1
  239. package/dist/es/standards-sdk.es96.js +42 -257
  240. package/dist/es/standards-sdk.es96.js.map +1 -1
  241. package/dist/es/standards-sdk.es97.js +243 -80
  242. package/dist/es/standards-sdk.es97.js.map +1 -1
  243. package/dist/es/standards-sdk.es98.js +47 -48
  244. package/dist/es/standards-sdk.es98.js.map +1 -1
  245. package/dist/es/standards-sdk.es99.js +100 -28
  246. package/dist/es/standards-sdk.es99.js.map +1 -1
  247. package/dist/es/utils/dynamic-import.d.ts +1 -0
  248. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  249. package/package.json +63 -65
@@ -1,235 +1,32 @@
1
- var DiscoveryOperation = /* @__PURE__ */ ((DiscoveryOperation2) => {
2
- DiscoveryOperation2["ANNOUNCE"] = "announce";
3
- DiscoveryOperation2["PROPOSE"] = "propose";
4
- DiscoveryOperation2["RESPOND"] = "respond";
5
- DiscoveryOperation2["COMPLETE"] = "complete";
6
- DiscoveryOperation2["WITHDRAW"] = "withdraw";
7
- return DiscoveryOperation2;
8
- })(DiscoveryOperation || {});
9
- function isRecord(value) {
10
- return typeof value === "object" && value !== null;
11
- }
12
- function isString(value) {
13
- return typeof value === "string";
14
- }
15
- function isNumber(value) {
16
- return typeof value === "number" && Number.isFinite(value);
17
- }
18
- function isArray(value) {
19
- return Array.isArray(value);
20
- }
21
- function isArrayOfStrings(value) {
22
- return Array.isArray(value) && value.every(isString);
23
- }
24
- function isDiscoveryMessage(value) {
25
- if (!isRecord(value)) {
26
- return false;
27
- }
28
- if (value.p !== "hcs-18") {
29
- return false;
30
- }
31
- if (!isString(value.op)) {
32
- return false;
33
- }
34
- const op = value.op;
35
- if (!["announce", "propose", "respond", "complete", "withdraw"].includes(op)) {
36
- return false;
37
- }
38
- return "data" in value;
39
- }
40
- function isAnnounceMessage(value) {
41
- if (!isDiscoveryMessage(value)) {
42
- return false;
43
- }
44
- const v = value;
45
- if (v.op !== "announce") {
46
- return false;
47
- }
48
- if (!isRecord(v.data)) {
49
- return false;
50
- }
51
- const d = v.data;
52
- if (!isString(d.account)) {
53
- return false;
54
- }
55
- if (!isRecord(d.petal)) {
56
- return false;
57
- }
58
- const petal = d.petal;
59
- if (!isString(petal.name) || !isNumber(petal.priority)) {
60
- return false;
61
- }
62
- if (!isRecord(d.capabilities)) {
63
- return false;
64
- }
65
- const caps = d.capabilities;
66
- if (!isArrayOfStrings(caps.protocols)) {
67
- return false;
68
- }
69
- if ("valid_for" in d && d.valid_for !== void 0 && d.valid_for !== null && !isNumber(d.valid_for)) {
70
- return false;
71
- }
72
- return true;
73
- }
74
- function isProposeMessage(value) {
75
- if (!isDiscoveryMessage(value)) {
76
- return false;
77
- }
78
- const v = value;
79
- if (v.op !== "propose") {
80
- return false;
81
- }
82
- if (!isRecord(v.data)) {
83
- return false;
84
- }
85
- const d = v.data;
86
- if (!isString(d.proposer)) {
87
- return false;
88
- }
89
- if (!isArray(d.members)) {
90
- return false;
91
- }
92
- const membersOk = d.members.every((m) => {
93
- if (!isRecord(m)) {
94
- return false;
95
- }
96
- const mr = m;
97
- if (!isString(mr.account)) {
98
- return false;
99
- }
100
- if (!("priority" in mr) || !isNumber(mr.priority)) {
101
- return false;
102
- }
103
- if ("announce_seq" in mr && mr.announce_seq !== void 0 && mr.announce_seq !== null && !isNumber(mr.announce_seq)) {
104
- return false;
105
- }
106
- return true;
1
+ import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es138.js";
2
+ import { generateHCS17Memo } from "./standards-sdk.es96.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
107
10
  });
108
- if (!membersOk) {
109
- return false;
110
- }
111
- if (!isRecord(d.config)) {
112
- return false;
113
- }
114
- const cfg = d.config;
115
- if (!isString(cfg.name) || !isNumber(cfg.threshold)) {
116
- return false;
117
- }
118
- return true;
119
- }
120
- function isRespondMessage(value) {
121
- if (!isDiscoveryMessage(value)) {
122
- return false;
123
- }
124
- const v = value;
125
- if (v.op !== "respond") {
126
- return false;
127
- }
128
- if (!isRecord(v.data)) {
129
- return false;
130
- }
131
- const d = v.data;
132
- if (!isString(d.responder)) {
133
- return false;
134
- }
135
- if (!isNumber(d.proposal_seq)) {
136
- return false;
137
- }
138
- if (!isString(d.decision)) {
139
- return false;
140
- }
141
- if (!["accept", "reject"].includes(d.decision)) {
142
- return false;
143
- }
144
- return true;
145
- }
146
- function isCompleteMessage(value) {
147
- if (!isDiscoveryMessage(value)) {
148
- return false;
149
- }
150
- const v = value;
151
- if (v.op !== "complete") {
152
- return false;
153
- }
154
- if (!isRecord(v.data)) {
155
- return false;
156
- }
157
- const d = v.data;
158
- if (!isString(d.proposer)) {
159
- return false;
160
- }
161
- if (!isNumber(d.proposal_seq)) {
162
- return false;
163
- }
164
- if (!isString(d.flora_account)) {
165
- return false;
166
- }
167
- if (!isRecord(d.topics)) {
168
- return false;
169
- }
170
- const t = d.topics;
171
- if (!isString(t.communication) || !isString(t.transaction) || !isString(t.state)) {
172
- return false;
173
- }
174
- return true;
175
11
  }
176
- function isWithdrawMessage(value) {
177
- if (!isDiscoveryMessage(value)) {
178
- return false;
179
- }
180
- const v = value;
181
- if (v.op !== "withdraw") {
182
- return false;
183
- }
184
- if (!isRecord(v.data)) {
185
- return false;
186
- }
187
- const d = v.data;
188
- if (!isString(d.account)) {
189
- return false;
190
- }
191
- if (!isNumber(d.announce_seq)) {
192
- return false;
193
- }
194
- if ("reason" in d && d.reason !== void 0 && d.reason !== null && !isString(d.reason)) {
195
- return false;
196
- }
197
- return true;
198
- }
199
- var DiscoveryState = /* @__PURE__ */ ((DiscoveryState2) => {
200
- DiscoveryState2["IDLE"] = "idle";
201
- DiscoveryState2["ANNOUNCED"] = "announced";
202
- DiscoveryState2["PROPOSING"] = "proposing";
203
- DiscoveryState2["FORMING"] = "forming";
204
- DiscoveryState2["ACTIVE"] = "active";
205
- DiscoveryState2["WITHDRAWN"] = "withdrawn";
206
- return DiscoveryState2;
207
- })(DiscoveryState || {});
208
- class DiscoveryError extends Error {
209
- constructor(message, code) {
210
- super(message);
211
- this.code = code;
212
- this.name = "DiscoveryError";
213
- }
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
+ });
214
27
  }
215
- const DiscoveryErrorCodes = {
216
- INVALID_MESSAGE: "INVALID_MESSAGE",
217
- TIMEOUT: "TIMEOUT",
218
- INSUFFICIENT_PETALS: "INSUFFICIENT_PETALS",
219
- FLORA_CREATION_FAILED: "FLORA_CREATION_FAILED",
220
- ALREADY_IN_DISCOVERY: "ALREADY_IN_DISCOVERY",
221
- INVALID_STATE: "INVALID_STATE"
222
- };
223
28
  export {
224
- DiscoveryError,
225
- DiscoveryErrorCodes,
226
- DiscoveryOperation,
227
- DiscoveryState,
228
- isAnnounceMessage,
229
- isCompleteMessage,
230
- isDiscoveryMessage,
231
- isProposeMessage,
232
- isRespondMessage,
233
- isWithdrawMessage
29
+ buildHcs17CreateTopicTx,
30
+ buildHcs17MessageTx
234
31
  };
235
32
  //# sourceMappingURL=standards-sdk.es100.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es100.js","sources":["../../src/hcs-18/types.ts"],"sourcesContent":["/**\n * HCS-18 Flora Discovery Protocol Types\n * Standard for Flora discovery and formation\n */\n\nimport { TopicId } from '@hashgraph/sdk';\n\n/**\n * HCS-18 Operation types\n */\nexport enum DiscoveryOperation {\n ANNOUNCE = 'announce',\n PROPOSE = 'propose',\n RESPOND = 'respond',\n COMPLETE = 'complete',\n WITHDRAW = 'withdraw',\n}\n\n/**\n * Base HCS-18 message structure\n */\nexport interface DiscoveryMessage {\n p: 'hcs-18';\n op: DiscoveryOperation;\n data: any;\n}\n\n/**\n * Announce operation data\n */\nexport interface AnnounceData {\n account: string;\n petal: {\n name: string;\n priority: number;\n };\n capabilities: {\n protocols: string[];\n resources?: {\n compute?: 'high' | 'medium' | 'low';\n storage?: 'high' | 'medium' | 'low';\n bandwidth?: 'high' | 'medium' | 'low';\n };\n group_preferences?: {\n sizes?: number[];\n threshold_ratios?: number[];\n };\n };\n valid_for?: number;\n}\n\n/**\n * Propose operation data\n */\nexport interface ProposeData {\n proposer: string;\n members: Array<{\n account: string;\n announce_seq?: number;\n priority: number;\n status?: 'existing' | 'proposed';\n }>;\n config: {\n name: string;\n threshold: number;\n purpose?: string;\n reason?: string;\n };\n existing_flora?: string;\n}\n\n/**\n * Respond operation data\n */\nexport interface RespondData {\n responder: string;\n proposal_seq: number;\n decision: 'accept' | 'reject';\n reason?: string;\n accepted_seq?: number;\n}\n\n/**\n * Complete operation data\n */\nexport interface CompleteData {\n proposal_seq: number;\n flora_account: string;\n topics: {\n communication: string;\n transaction: string;\n state: string;\n };\n proposer?: string;\n}\n\n/**\n * Withdraw operation data\n */\nexport interface WithdrawData {\n account: string;\n announce_seq: number;\n reason?: string;\n}\n\n/**\n * Typed message operations\n */\nexport interface AnnounceMessage extends DiscoveryMessage {\n op: DiscoveryOperation.ANNOUNCE;\n data: AnnounceData;\n}\n\nexport interface ProposeMessage extends DiscoveryMessage {\n op: DiscoveryOperation.PROPOSE;\n data: ProposeData;\n}\n\nexport interface RespondMessage extends DiscoveryMessage {\n op: DiscoveryOperation.RESPOND;\n data: RespondData;\n}\n\nexport interface CompleteMessage extends DiscoveryMessage {\n op: DiscoveryOperation.COMPLETE;\n data: CompleteData;\n}\n\nexport interface WithdrawMessage extends DiscoveryMessage {\n op: DiscoveryOperation.WITHDRAW;\n data: WithdrawData;\n}\n\n/**\n * Type guard utilities for HCS-18 discovery messages\n */\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nfunction isNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction isArray(value: unknown): value is unknown[] {\n return Array.isArray(value);\n}\n\nfunction isArrayOfStrings(value: unknown): value is string[] {\n return Array.isArray(value) && value.every(isString);\n}\n\nexport function isDiscoveryMessage(value: unknown): value is DiscoveryMessage {\n if (!isRecord(value)) {\n return false;\n }\n if (value.p !== 'hcs-18') {\n return false;\n }\n if (!isString((value as Record<string, unknown>).op)) {\n return false;\n }\n const op = (value as Record<string, unknown>).op as string;\n if (\n !['announce', 'propose', 'respond', 'complete', 'withdraw'].includes(op)\n ) {\n return false;\n }\n return 'data' in value;\n}\n\nexport function isAnnounceMessage(value: unknown): value is AnnounceMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.ANNOUNCE) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.account)) {\n return false;\n }\n if (!isRecord(d.petal)) {\n return false;\n }\n const petal = d.petal as Record<string, unknown>;\n if (!isString(petal.name) || !isNumber(petal.priority)) {\n return false;\n }\n if (!isRecord(d.capabilities)) {\n return false;\n }\n const caps = d.capabilities as Record<string, unknown>;\n if (!isArrayOfStrings(caps.protocols)) {\n return false;\n }\n if (\n 'valid_for' in d &&\n d.valid_for !== undefined &&\n d.valid_for !== null &&\n !isNumber(d.valid_for)\n ) {\n return false;\n }\n return true;\n}\n\nexport function isProposeMessage(value: unknown): value is ProposeMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.PROPOSE) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.proposer)) {\n return false;\n }\n if (!isArray(d.members)) {\n return false;\n }\n const membersOk = (d.members as unknown[]).every(m => {\n if (!isRecord(m)) {\n return false;\n }\n const mr = m as Record<string, unknown>;\n if (!isString(mr.account)) {\n return false;\n }\n if (!('priority' in mr) || !isNumber(mr.priority)) {\n return false;\n }\n if (\n 'announce_seq' in mr &&\n mr.announce_seq !== undefined &&\n mr.announce_seq !== null &&\n !isNumber(mr.announce_seq)\n ) {\n return false;\n }\n return true;\n });\n if (!membersOk) {\n return false;\n }\n if (!isRecord(d.config)) {\n return false;\n }\n const cfg = d.config as Record<string, unknown>;\n if (!isString(cfg.name) || !isNumber(cfg.threshold)) {\n return false;\n }\n return true;\n}\n\nexport function isRespondMessage(value: unknown): value is RespondMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.RESPOND) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.responder)) {\n return false;\n }\n if (!isNumber(d.proposal_seq)) {\n return false;\n }\n if (!isString(d.decision)) {\n return false;\n }\n if (!['accept', 'reject'].includes(d.decision as string)) {\n return false;\n }\n return true;\n}\n\nexport function isCompleteMessage(value: unknown): value is CompleteMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.COMPLETE) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.proposer)) {\n return false;\n }\n if (!isNumber(d.proposal_seq)) {\n return false;\n }\n if (!isString(d.flora_account)) {\n return false;\n }\n if (!isRecord(d.topics)) {\n return false;\n }\n const t = d.topics as Record<string, unknown>;\n if (\n !isString(t.communication) ||\n !isString(t.transaction) ||\n !isString(t.state)\n ) {\n return false;\n }\n return true;\n}\n\nexport function isWithdrawMessage(value: unknown): value is WithdrawMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.WITHDRAW) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.account)) {\n return false;\n }\n if (!isNumber(d.announce_seq)) {\n return false;\n }\n if (\n 'reason' in d &&\n d.reason !== undefined &&\n d.reason !== null &&\n !isString(d.reason)\n ) {\n return false;\n }\n return true;\n}\n\n/**\n * Discovery phase states\n */\nexport enum DiscoveryState {\n IDLE = 'idle',\n ANNOUNCED = 'announced',\n PROPOSING = 'proposing',\n FORMING = 'forming',\n ACTIVE = 'active',\n WITHDRAWN = 'withdrawn',\n}\n\n/**\n * Tracked announcement with HCS metadata\n */\nexport interface TrackedAnnouncement {\n account: string;\n sequenceNumber: number;\n consensusTimestamp: string;\n data: AnnounceData;\n}\n\n/**\n * Tracked proposal with HCS metadata\n */\nexport interface TrackedProposal {\n sequenceNumber: number;\n consensusTimestamp: string;\n proposer: string;\n data: ProposeData;\n responses: Map<string, RespondData>;\n}\n\n/**\n * Flora formation result\n */\nexport interface FloraFormation {\n proposalSeq: number;\n floraAccountId: string;\n topics: {\n communication: string;\n transaction: string;\n state: string;\n };\n members: Array<{\n account: string;\n priority: number;\n }>;\n threshold: number;\n createdAt: Date;\n}\n\n/**\n * Discovery event types for monitoring\n */\nexport interface DiscoveryEvent {\n type:\n | 'announcement_received'\n | 'proposal_received'\n | 'response_received'\n | 'formation_complete'\n | 'withdrawal_received'\n | 'discovery_timeout';\n sequenceNumber?: number;\n timestamp: Date;\n data: any;\n}\n\n/**\n * Discovery configuration\n */\nexport interface DiscoveryConfig {\n discoveryTopicId: string | TopicId;\n accountId: string;\n petalName: string;\n priority: number;\n capabilities: {\n protocols: string[];\n resources?: AnnounceData['capabilities']['resources'];\n group_preferences?: AnnounceData['capabilities']['group_preferences'];\n };\n autoAcceptFilter?: (proposal: TrackedProposal) => boolean;\n onDiscoveryEvent?: (event: DiscoveryEvent) => void;\n memberPrivateKeys?: Map<string, string>;\n}\n\n/**\n * HCS-18 Errors\n */\nexport class DiscoveryError extends Error {\n constructor(\n message: string,\n public readonly code: string,\n ) {\n super(message);\n this.name = 'DiscoveryError';\n }\n}\n\nexport const DiscoveryErrorCodes = {\n INVALID_MESSAGE: 'INVALID_MESSAGE',\n TIMEOUT: 'TIMEOUT',\n INSUFFICIENT_PETALS: 'INSUFFICIENT_PETALS',\n FLORA_CREATION_FAILED: 'FLORA_CREATION_FAILED',\n ALREADY_IN_DISCOVERY: 'ALREADY_IN_DISCOVERY',\n INVALID_STATE: 'INVALID_STATE',\n} as const;\n"],"names":["DiscoveryOperation","DiscoveryState"],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es100.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 HCS‑17 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,116 +1,235 @@
1
- import { Client } from "@hashgraph/sdk";
2
- import { Logger } from "./standards-sdk.es105.js";
3
- import { createNodeOperatorContext } from "./standards-sdk.es135.js";
4
- import { buildHcs18CreateDiscoveryTopicTx, buildHcs18AnnounceMessage, buildHcs18SubmitDiscoveryMessageTx, buildHcs18ProposeMessage, buildHcs18RespondMessage, buildHcs18CompleteMessage, buildHcs18WithdrawMessage } from "./standards-sdk.es103.js";
5
- import { HCS18BaseClient } from "./standards-sdk.es104.js";
6
- class HCS18Client extends HCS18BaseClient {
7
- constructor(config) {
8
- super({
9
- network: config.network,
10
- logger: Logger.getInstance({
11
- level: config.logLevel || "info",
12
- module: "HCS-18",
13
- silent: config.silent
14
- })
15
- });
16
- this.operatorCtx = createNodeOperatorContext({
17
- network: this.network,
18
- operatorId: config.operatorId,
19
- operatorKey: config.operatorKey,
20
- mirrorNode: this.mirrorNode,
21
- logger: this.logger,
22
- client: Client.forName(this.network)
23
- });
24
- this.client = this.operatorCtx.client;
25
- }
26
- async ensureInitialized() {
27
- await this.operatorCtx.ensureInitialized();
28
- }
29
- async createDiscoveryTopic(options) {
30
- await this.ensureInitialized();
31
- const ttl = options?.ttlSeconds;
32
- let operatorPublicKey;
33
- try {
34
- operatorPublicKey = this.operatorCtx.operatorKey.publicKey;
35
- } catch {
36
- operatorPublicKey = void 0;
1
+ var DiscoveryOperation = /* @__PURE__ */ ((DiscoveryOperation2) => {
2
+ DiscoveryOperation2["ANNOUNCE"] = "announce";
3
+ DiscoveryOperation2["PROPOSE"] = "propose";
4
+ DiscoveryOperation2["RESPOND"] = "respond";
5
+ DiscoveryOperation2["COMPLETE"] = "complete";
6
+ DiscoveryOperation2["WITHDRAW"] = "withdraw";
7
+ return DiscoveryOperation2;
8
+ })(DiscoveryOperation || {});
9
+ function isRecord(value) {
10
+ return typeof value === "object" && value !== null;
11
+ }
12
+ function isString(value) {
13
+ return typeof value === "string";
14
+ }
15
+ function isNumber(value) {
16
+ return typeof value === "number" && Number.isFinite(value);
17
+ }
18
+ function isArray(value) {
19
+ return Array.isArray(value);
20
+ }
21
+ function isArrayOfStrings(value) {
22
+ return Array.isArray(value) && value.every(isString);
23
+ }
24
+ function isDiscoveryMessage(value) {
25
+ if (!isRecord(value)) {
26
+ return false;
27
+ }
28
+ if (value.p !== "hcs-18") {
29
+ return false;
30
+ }
31
+ if (!isString(value.op)) {
32
+ return false;
33
+ }
34
+ const op = value.op;
35
+ if (!["announce", "propose", "respond", "complete", "withdraw"].includes(op)) {
36
+ return false;
37
+ }
38
+ return "data" in value;
39
+ }
40
+ function isAnnounceMessage(value) {
41
+ if (!isDiscoveryMessage(value)) {
42
+ return false;
43
+ }
44
+ const v = value;
45
+ if (v.op !== "announce") {
46
+ return false;
47
+ }
48
+ if (!isRecord(v.data)) {
49
+ return false;
50
+ }
51
+ const d = v.data;
52
+ if (!isString(d.account)) {
53
+ return false;
54
+ }
55
+ if (!isRecord(d.petal)) {
56
+ return false;
57
+ }
58
+ const petal = d.petal;
59
+ if (!isString(petal.name) || !isNumber(petal.priority)) {
60
+ return false;
61
+ }
62
+ if (!isRecord(d.capabilities)) {
63
+ return false;
64
+ }
65
+ const caps = d.capabilities;
66
+ if (!isArrayOfStrings(caps.protocols)) {
67
+ return false;
68
+ }
69
+ if ("valid_for" in d && d.valid_for !== void 0 && d.valid_for !== null && !isNumber(d.valid_for)) {
70
+ return false;
71
+ }
72
+ return true;
73
+ }
74
+ function isProposeMessage(value) {
75
+ if (!isDiscoveryMessage(value)) {
76
+ return false;
77
+ }
78
+ const v = value;
79
+ if (v.op !== "propose") {
80
+ return false;
81
+ }
82
+ if (!isRecord(v.data)) {
83
+ return false;
84
+ }
85
+ const d = v.data;
86
+ if (!isString(d.proposer)) {
87
+ return false;
88
+ }
89
+ if (!isArray(d.members)) {
90
+ return false;
91
+ }
92
+ const membersOk = d.members.every((m) => {
93
+ if (!isRecord(m)) {
94
+ return false;
37
95
  }
38
- const tx = buildHcs18CreateDiscoveryTopicTx({
39
- ttlSeconds: ttl,
40
- adminKey: options?.adminKey,
41
- submitKey: options?.submitKey,
42
- operatorPublicKey,
43
- memoOverride: options?.memoOverride
44
- });
45
- const resp = await tx.execute(this.client);
46
- const receipt = await resp.getReceipt(this.client);
47
- const topicId = receipt.topicId?.toString();
48
- if (!topicId) {
49
- throw new Error("Failed to create discovery topic");
96
+ const mr = m;
97
+ if (!isString(mr.account)) {
98
+ return false;
50
99
  }
51
- return { topicId, receipt };
52
- }
53
- async announce(params) {
54
- await this.ensureInitialized();
55
- const message = buildHcs18AnnounceMessage(params.data);
56
- const tx = buildHcs18SubmitDiscoveryMessageTx({
57
- topicId: params.discoveryTopicId,
58
- message,
59
- transactionMemo: params.memo
60
- });
61
- const resp = await tx.execute(this.client);
62
- const receipt = await resp.getReceipt(this.client);
63
- const seq = receipt.topicSequenceNumber.toNumber();
64
- return { receipt, sequenceNumber: seq };
65
- }
66
- async propose(params) {
67
- await this.ensureInitialized();
68
- const message = buildHcs18ProposeMessage(params.data);
69
- const tx = buildHcs18SubmitDiscoveryMessageTx({
70
- topicId: params.discoveryTopicId,
71
- message,
72
- transactionMemo: params.memo
73
- });
74
- const resp = await tx.execute(this.client);
75
- const receipt = await resp.getReceipt(this.client);
76
- const seq = receipt.topicSequenceNumber.toNumber();
77
- return { receipt, sequenceNumber: seq };
78
- }
79
- async respond(params) {
80
- await this.ensureInitialized();
81
- const message = buildHcs18RespondMessage(params.data);
82
- const tx = buildHcs18SubmitDiscoveryMessageTx({
83
- topicId: params.discoveryTopicId,
84
- message,
85
- transactionMemo: params.memo
86
- });
87
- const resp = await tx.execute(this.client);
88
- return await resp.getReceipt(this.client);
89
- }
90
- async complete(params) {
91
- await this.ensureInitialized();
92
- const message = buildHcs18CompleteMessage(params.data);
93
- const tx = buildHcs18SubmitDiscoveryMessageTx({
94
- topicId: params.discoveryTopicId,
95
- message,
96
- transactionMemo: params.memo
97
- });
98
- const resp = await tx.execute(this.client);
99
- return await resp.getReceipt(this.client);
100
- }
101
- async withdraw(params) {
102
- await this.ensureInitialized();
103
- const message = buildHcs18WithdrawMessage(params.data);
104
- const tx = buildHcs18SubmitDiscoveryMessageTx({
105
- topicId: params.discoveryTopicId,
106
- message,
107
- transactionMemo: params.memo
108
- });
109
- const resp = await tx.execute(this.client);
110
- return await resp.getReceipt(this.client);
100
+ if (!("priority" in mr) || !isNumber(mr.priority)) {
101
+ return false;
102
+ }
103
+ if ("announce_seq" in mr && mr.announce_seq !== void 0 && mr.announce_seq !== null && !isNumber(mr.announce_seq)) {
104
+ return false;
105
+ }
106
+ return true;
107
+ });
108
+ if (!membersOk) {
109
+ return false;
110
+ }
111
+ if (!isRecord(d.config)) {
112
+ return false;
111
113
  }
114
+ const cfg = d.config;
115
+ if (!isString(cfg.name) || !isNumber(cfg.threshold)) {
116
+ return false;
117
+ }
118
+ return true;
119
+ }
120
+ function isRespondMessage(value) {
121
+ if (!isDiscoveryMessage(value)) {
122
+ return false;
123
+ }
124
+ const v = value;
125
+ if (v.op !== "respond") {
126
+ return false;
127
+ }
128
+ if (!isRecord(v.data)) {
129
+ return false;
130
+ }
131
+ const d = v.data;
132
+ if (!isString(d.responder)) {
133
+ return false;
134
+ }
135
+ if (!isNumber(d.proposal_seq)) {
136
+ return false;
137
+ }
138
+ if (!isString(d.decision)) {
139
+ return false;
140
+ }
141
+ if (!["accept", "reject"].includes(d.decision)) {
142
+ return false;
143
+ }
144
+ return true;
145
+ }
146
+ function isCompleteMessage(value) {
147
+ if (!isDiscoveryMessage(value)) {
148
+ return false;
149
+ }
150
+ const v = value;
151
+ if (v.op !== "complete") {
152
+ return false;
153
+ }
154
+ if (!isRecord(v.data)) {
155
+ return false;
156
+ }
157
+ const d = v.data;
158
+ if (!isString(d.proposer)) {
159
+ return false;
160
+ }
161
+ if (!isNumber(d.proposal_seq)) {
162
+ return false;
163
+ }
164
+ if (!isString(d.flora_account)) {
165
+ return false;
166
+ }
167
+ if (!isRecord(d.topics)) {
168
+ return false;
169
+ }
170
+ const t = d.topics;
171
+ if (!isString(t.communication) || !isString(t.transaction) || !isString(t.state)) {
172
+ return false;
173
+ }
174
+ return true;
175
+ }
176
+ function isWithdrawMessage(value) {
177
+ if (!isDiscoveryMessage(value)) {
178
+ return false;
179
+ }
180
+ const v = value;
181
+ if (v.op !== "withdraw") {
182
+ return false;
183
+ }
184
+ if (!isRecord(v.data)) {
185
+ return false;
186
+ }
187
+ const d = v.data;
188
+ if (!isString(d.account)) {
189
+ return false;
190
+ }
191
+ if (!isNumber(d.announce_seq)) {
192
+ return false;
193
+ }
194
+ if ("reason" in d && d.reason !== void 0 && d.reason !== null && !isString(d.reason)) {
195
+ return false;
196
+ }
197
+ return true;
112
198
  }
199
+ var DiscoveryState = /* @__PURE__ */ ((DiscoveryState2) => {
200
+ DiscoveryState2["IDLE"] = "idle";
201
+ DiscoveryState2["ANNOUNCED"] = "announced";
202
+ DiscoveryState2["PROPOSING"] = "proposing";
203
+ DiscoveryState2["FORMING"] = "forming";
204
+ DiscoveryState2["ACTIVE"] = "active";
205
+ DiscoveryState2["WITHDRAWN"] = "withdrawn";
206
+ return DiscoveryState2;
207
+ })(DiscoveryState || {});
208
+ class DiscoveryError extends Error {
209
+ constructor(message, code) {
210
+ super(message);
211
+ this.code = code;
212
+ this.name = "DiscoveryError";
213
+ }
214
+ }
215
+ const DiscoveryErrorCodes = {
216
+ INVALID_MESSAGE: "INVALID_MESSAGE",
217
+ TIMEOUT: "TIMEOUT",
218
+ INSUFFICIENT_PETALS: "INSUFFICIENT_PETALS",
219
+ FLORA_CREATION_FAILED: "FLORA_CREATION_FAILED",
220
+ ALREADY_IN_DISCOVERY: "ALREADY_IN_DISCOVERY",
221
+ INVALID_STATE: "INVALID_STATE"
222
+ };
113
223
  export {
114
- HCS18Client
224
+ DiscoveryError,
225
+ DiscoveryErrorCodes,
226
+ DiscoveryOperation,
227
+ DiscoveryState,
228
+ isAnnounceMessage,
229
+ isCompleteMessage,
230
+ isDiscoveryMessage,
231
+ isProposeMessage,
232
+ isRespondMessage,
233
+ isWithdrawMessage
115
234
  };
116
235
  //# sourceMappingURL=standards-sdk.es101.js.map