@hashgraphonline/standards-sdk 0.1.137 → 0.1.138-feat-hcs-21-package-std.canary.4376298.35

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 (223) hide show
  1. package/dist/cjs/hcs-21/base-client.d.ts +33 -0
  2. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -0
  3. package/dist/cjs/hcs-21/browser.d.ts +20 -0
  4. package/dist/cjs/hcs-21/browser.d.ts.map +1 -0
  5. package/dist/cjs/hcs-21/errors.d.ts +6 -0
  6. package/dist/cjs/hcs-21/errors.d.ts.map +1 -0
  7. package/dist/cjs/hcs-21/index.d.ts +7 -0
  8. package/dist/cjs/hcs-21/index.d.ts.map +1 -0
  9. package/dist/cjs/hcs-21/sdk.d.ts +48 -0
  10. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -0
  11. package/dist/cjs/hcs-21/tx.d.ts +20 -0
  12. package/dist/cjs/hcs-21/tx.d.ts.map +1 -0
  13. package/dist/cjs/hcs-21/types.d.ts +89 -0
  14. package/dist/cjs/hcs-21/types.d.ts.map +1 -0
  15. package/dist/cjs/index.d.ts +1 -0
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  18. package/dist/cjs/services/types.d.ts +1 -1
  19. package/dist/cjs/services/types.d.ts.map +1 -1
  20. package/dist/cjs/standards-sdk.cjs +2 -2
  21. package/dist/cjs/standards-sdk.cjs.map +1 -1
  22. package/dist/es/hcs-21/base-client.d.ts +33 -0
  23. package/dist/es/hcs-21/base-client.d.ts.map +1 -0
  24. package/dist/es/hcs-21/browser.d.ts +20 -0
  25. package/dist/es/hcs-21/browser.d.ts.map +1 -0
  26. package/dist/es/hcs-21/errors.d.ts +6 -0
  27. package/dist/es/hcs-21/errors.d.ts.map +1 -0
  28. package/dist/es/hcs-21/index.d.ts +7 -0
  29. package/dist/es/hcs-21/index.d.ts.map +1 -0
  30. package/dist/es/hcs-21/sdk.d.ts +48 -0
  31. package/dist/es/hcs-21/sdk.d.ts.map +1 -0
  32. package/dist/es/hcs-21/tx.d.ts +20 -0
  33. package/dist/es/hcs-21/tx.d.ts.map +1 -0
  34. package/dist/es/hcs-21/types.d.ts +89 -0
  35. package/dist/es/hcs-21/types.d.ts.map +1 -0
  36. package/dist/es/index.d.ts +1 -0
  37. package/dist/es/index.d.ts.map +1 -1
  38. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  39. package/dist/es/services/types.d.ts +1 -1
  40. package/dist/es/services/types.d.ts.map +1 -1
  41. package/dist/es/standards-sdk.es.js +67 -48
  42. package/dist/es/standards-sdk.es.js.map +1 -1
  43. package/dist/es/standards-sdk.es10.js +2 -2
  44. package/dist/es/standards-sdk.es100.js +231 -28
  45. package/dist/es/standards-sdk.es100.js.map +1 -1
  46. package/dist/es/standards-sdk.es101.js +109 -18
  47. package/dist/es/standards-sdk.es101.js.map +1 -1
  48. package/dist/es/standards-sdk.es102.js +32 -158
  49. package/dist/es/standards-sdk.es102.js.map +1 -1
  50. package/dist/es/standards-sdk.es103.js +80 -204
  51. package/dist/es/standards-sdk.es103.js.map +1 -1
  52. package/dist/es/standards-sdk.es104.js +21 -780
  53. package/dist/es/standards-sdk.es104.js.map +1 -1
  54. package/dist/es/standards-sdk.es105.js +140 -11
  55. package/dist/es/standards-sdk.es105.js.map +1 -1
  56. package/dist/es/standards-sdk.es106.js +29 -567
  57. package/dist/es/standards-sdk.es106.js.map +1 -1
  58. package/dist/es/standards-sdk.es107.js +17 -597
  59. package/dist/es/standards-sdk.es107.js.map +1 -1
  60. package/dist/es/standards-sdk.es108.js +159 -12
  61. package/dist/es/standards-sdk.es108.js.map +1 -1
  62. package/dist/es/standards-sdk.es109.js +208 -2
  63. package/dist/es/standards-sdk.es109.js.map +1 -1
  64. package/dist/es/standards-sdk.es110.js +774 -67
  65. package/dist/es/standards-sdk.es110.js.map +1 -1
  66. package/dist/es/standards-sdk.es111.js +11 -37
  67. package/dist/es/standards-sdk.es111.js.map +1 -1
  68. package/dist/es/standards-sdk.es112.js +567 -2
  69. package/dist/es/standards-sdk.es112.js.map +1 -1
  70. package/dist/es/standards-sdk.es113.js +576 -197
  71. package/dist/es/standards-sdk.es113.js.map +1 -1
  72. package/dist/es/standards-sdk.es114.js +12 -1139
  73. package/dist/es/standards-sdk.es114.js.map +1 -1
  74. package/dist/es/standards-sdk.es115.js +2 -306
  75. package/dist/es/standards-sdk.es115.js.map +1 -1
  76. package/dist/es/standards-sdk.es116.js +79 -418
  77. package/dist/es/standards-sdk.es116.js.map +1 -1
  78. package/dist/es/standards-sdk.es117.js +35 -351
  79. package/dist/es/standards-sdk.es117.js.map +1 -1
  80. package/dist/es/standards-sdk.es118.js +2 -761
  81. package/dist/es/standards-sdk.es118.js.map +1 -1
  82. package/dist/es/standards-sdk.es119.js +204 -185
  83. package/dist/es/standards-sdk.es119.js.map +1 -1
  84. package/dist/es/standards-sdk.es12.js +1 -1
  85. package/dist/es/standards-sdk.es120.js +1055 -1482
  86. package/dist/es/standards-sdk.es120.js.map +1 -1
  87. package/dist/es/standards-sdk.es121.js +265 -2024
  88. package/dist/es/standards-sdk.es121.js.map +1 -1
  89. package/dist/es/standards-sdk.es122.js +420 -50
  90. package/dist/es/standards-sdk.es122.js.map +1 -1
  91. package/dist/es/standards-sdk.es123.js +350 -82
  92. package/dist/es/standards-sdk.es123.js.map +1 -1
  93. package/dist/es/standards-sdk.es124.js +741 -139
  94. package/dist/es/standards-sdk.es124.js.map +1 -1
  95. package/dist/es/standards-sdk.es125.js +204 -7
  96. package/dist/es/standards-sdk.es125.js.map +1 -1
  97. package/dist/es/standards-sdk.es126.js +1533 -52
  98. package/dist/es/standards-sdk.es126.js.map +1 -1
  99. package/dist/es/standards-sdk.es127.js +2077 -59
  100. package/dist/es/standards-sdk.es127.js.map +1 -1
  101. package/dist/es/standards-sdk.es128.js +52 -28
  102. package/dist/es/standards-sdk.es128.js.map +1 -1
  103. package/dist/es/standards-sdk.es129.js +80 -131
  104. package/dist/es/standards-sdk.es129.js.map +1 -1
  105. package/dist/es/standards-sdk.es13.js +1 -1
  106. package/dist/es/standards-sdk.es130.js +152 -35
  107. package/dist/es/standards-sdk.es130.js.map +1 -1
  108. package/dist/es/standards-sdk.es131.js +7 -17
  109. package/dist/es/standards-sdk.es131.js.map +1 -1
  110. package/dist/es/standards-sdk.es132.js +53 -12241
  111. package/dist/es/standards-sdk.es132.js.map +1 -1
  112. package/dist/es/standards-sdk.es133.js +65 -694
  113. package/dist/es/standards-sdk.es133.js.map +1 -1
  114. package/dist/es/standards-sdk.es134.js +28 -172
  115. package/dist/es/standards-sdk.es134.js.map +1 -1
  116. package/dist/es/standards-sdk.es135.js +115 -299
  117. package/dist/es/standards-sdk.es135.js.map +1 -1
  118. package/dist/es/standards-sdk.es136.js +36 -340
  119. package/dist/es/standards-sdk.es136.js.map +1 -1
  120. package/dist/es/standards-sdk.es137.js +694 -453
  121. package/dist/es/standards-sdk.es137.js.map +1 -1
  122. package/dist/es/standards-sdk.es138.js +12210 -267
  123. package/dist/es/standards-sdk.es138.js.map +1 -1
  124. package/dist/es/standards-sdk.es139.js +15 -74
  125. package/dist/es/standards-sdk.es139.js.map +1 -1
  126. package/dist/es/standards-sdk.es14.js +1 -1
  127. package/dist/es/standards-sdk.es141.js +1 -1
  128. package/dist/es/standards-sdk.es142.js +175 -0
  129. package/dist/es/standards-sdk.es142.js.map +1 -0
  130. package/dist/es/standards-sdk.es143.js +325 -0
  131. package/dist/es/standards-sdk.es143.js.map +1 -0
  132. package/dist/es/standards-sdk.es144.js +349 -0
  133. package/dist/es/standards-sdk.es144.js.map +1 -0
  134. package/dist/es/standards-sdk.es145.js +456 -0
  135. package/dist/es/standards-sdk.es145.js.map +1 -0
  136. package/dist/es/standards-sdk.es146.js +334 -0
  137. package/dist/es/standards-sdk.es146.js.map +1 -0
  138. package/dist/es/standards-sdk.es147.js +79 -0
  139. package/dist/es/standards-sdk.es147.js.map +1 -0
  140. package/dist/es/standards-sdk.es15.js +1 -1
  141. package/dist/es/standards-sdk.es16.js +1 -1
  142. package/dist/es/standards-sdk.es17.js +5 -5
  143. package/dist/es/standards-sdk.es19.js +12 -12
  144. package/dist/es/standards-sdk.es20.js +9 -9
  145. package/dist/es/standards-sdk.es21.js +1 -1
  146. package/dist/es/standards-sdk.es22.js +1 -1
  147. package/dist/es/standards-sdk.es23.js +1 -1
  148. package/dist/es/standards-sdk.es24.js +1 -1
  149. package/dist/es/standards-sdk.es25.js +1 -1
  150. package/dist/es/standards-sdk.es26.js +1 -1
  151. package/dist/es/standards-sdk.es27.js +1 -1
  152. package/dist/es/standards-sdk.es28.js +12 -12
  153. package/dist/es/standards-sdk.es3.js +2 -2
  154. package/dist/es/standards-sdk.es31.js +2 -2
  155. package/dist/es/standards-sdk.es32.js +4 -4
  156. package/dist/es/standards-sdk.es33.js +1 -1
  157. package/dist/es/standards-sdk.es36.js +6 -6
  158. package/dist/es/standards-sdk.es37.js +4 -4
  159. package/dist/es/standards-sdk.es38.js +2 -2
  160. package/dist/es/standards-sdk.es39.js +2 -2
  161. package/dist/es/standards-sdk.es40.js +1 -1
  162. package/dist/es/standards-sdk.es41.js +1 -1
  163. package/dist/es/standards-sdk.es42.js +2 -2
  164. package/dist/es/standards-sdk.es47.js +1 -1
  165. package/dist/es/standards-sdk.es5.js +2 -2
  166. package/dist/es/standards-sdk.es52.js +1 -1
  167. package/dist/es/standards-sdk.es54.js +1 -1
  168. package/dist/es/standards-sdk.es57.js +1 -1
  169. package/dist/es/standards-sdk.es6.js +2 -2
  170. package/dist/es/standards-sdk.es61.js +7 -7
  171. package/dist/es/standards-sdk.es65.js +2 -2
  172. package/dist/es/standards-sdk.es66.js +3 -3
  173. package/dist/es/standards-sdk.es69.js +2 -2
  174. package/dist/es/standards-sdk.es7.js +2 -2
  175. package/dist/es/standards-sdk.es70.js +3 -3
  176. package/dist/es/standards-sdk.es71.js +2 -2
  177. package/dist/es/standards-sdk.es72.js +1 -1
  178. package/dist/es/standards-sdk.es75.js +2 -2
  179. package/dist/es/standards-sdk.es77.js +2 -2
  180. package/dist/es/standards-sdk.es78.js +4 -4
  181. package/dist/es/standards-sdk.es79.js +1 -1
  182. package/dist/es/standards-sdk.es8.js +1 -1
  183. package/dist/es/standards-sdk.es80.js +41 -27
  184. package/dist/es/standards-sdk.es80.js.map +1 -1
  185. package/dist/es/standards-sdk.es81.js +6 -78
  186. package/dist/es/standards-sdk.es81.js.map +1 -1
  187. package/dist/es/standards-sdk.es82.js +27 -64
  188. package/dist/es/standards-sdk.es82.js.map +1 -1
  189. package/dist/es/standards-sdk.es83.js +69 -23
  190. package/dist/es/standards-sdk.es83.js.map +1 -1
  191. package/dist/es/standards-sdk.es84.js +165 -23
  192. package/dist/es/standards-sdk.es84.js.map +1 -1
  193. package/dist/es/standards-sdk.es85.js +31 -166
  194. package/dist/es/standards-sdk.es85.js.map +1 -1
  195. package/dist/es/standards-sdk.es86.js +24 -127
  196. package/dist/es/standards-sdk.es86.js.map +1 -1
  197. package/dist/es/standards-sdk.es87.js +65 -142
  198. package/dist/es/standards-sdk.es87.js.map +1 -1
  199. package/dist/es/standards-sdk.es88.js +52 -127
  200. package/dist/es/standards-sdk.es88.js.map +1 -1
  201. package/dist/es/standards-sdk.es89.js +26 -41
  202. package/dist/es/standards-sdk.es89.js.map +1 -1
  203. package/dist/es/standards-sdk.es90.js +23 -261
  204. package/dist/es/standards-sdk.es90.js.map +1 -1
  205. package/dist/es/standards-sdk.es91.js +162 -93
  206. package/dist/es/standards-sdk.es91.js.map +1 -1
  207. package/dist/es/standards-sdk.es92.js +112 -83
  208. package/dist/es/standards-sdk.es92.js.map +1 -1
  209. package/dist/es/standards-sdk.es93.js +156 -28
  210. package/dist/es/standards-sdk.es93.js.map +1 -1
  211. package/dist/es/standards-sdk.es94.js +133 -225
  212. package/dist/es/standards-sdk.es94.js.map +1 -1
  213. package/dist/es/standards-sdk.es95.js +40 -108
  214. package/dist/es/standards-sdk.es95.js.map +1 -1
  215. package/dist/es/standards-sdk.es96.js +253 -24
  216. package/dist/es/standards-sdk.es96.js.map +1 -1
  217. package/dist/es/standards-sdk.es97.js +96 -80
  218. package/dist/es/standards-sdk.es97.js.map +1 -1
  219. package/dist/es/standards-sdk.es98.js +91 -21
  220. package/dist/es/standards-sdk.es98.js.map +1 -1
  221. package/dist/es/standards-sdk.es99.js +28 -141
  222. package/dist/es/standards-sdk.es99.js.map +1 -1
  223. package/package.json +62 -59
@@ -1,425 +1,86 @@
1
- import { HTSParser } from "./standards-sdk.es114.js";
2
- import { HCSParser } from "./standards-sdk.es134.js";
3
- import { CryptoParser } from "./standards-sdk.es136.js";
4
- import { FileParser } from "./standards-sdk.es135.js";
5
- import { SCSParser } from "./standards-sdk.es137.js";
6
- import { ScheduleParser } from "./standards-sdk.es115.js";
7
- import { UtilParser } from "./standards-sdk.es138.js";
8
- const transactionParserRegistry = {
9
- TOKENCREATE: {
10
- bodyField: "tokenCreation",
11
- parser: HTSParser.parseTokenCreate,
12
- resultField: "tokenCreation"
13
- },
14
- TOKENMINT: {
15
- bodyField: "tokenMint",
16
- parser: HTSParser.parseTokenMint,
17
- resultField: "tokenMint"
18
- },
19
- TOKENBURN: {
20
- bodyField: "tokenBurn",
21
- parser: HTSParser.parseTokenBurn,
22
- resultField: "tokenBurn"
23
- },
24
- TOKENUPDATE: {
25
- bodyField: "tokenUpdate",
26
- parser: HTSParser.parseTokenUpdate,
27
- resultField: "tokenUpdate"
28
- },
29
- TOKENDELETE: {
30
- bodyField: "tokenDeletion",
31
- parser: HTSParser.parseTokenDelete,
32
- resultField: "tokenDelete"
33
- },
34
- TOKENASSOCIATE: {
35
- bodyField: "tokenAssociate",
36
- parser: HTSParser.parseTokenAssociate,
37
- resultField: "tokenAssociate"
38
- },
39
- TOKENDISSOCIATE: {
40
- bodyField: "tokenDissociate",
41
- parser: HTSParser.parseTokenDissociate,
42
- resultField: "tokenDissociate"
43
- },
44
- TOKENFREEZE: {
45
- bodyField: "tokenFreeze",
46
- parser: HTSParser.parseTokenFreeze,
47
- resultField: "tokenFreeze"
48
- },
49
- TOKENUNFREEZE: {
50
- bodyField: "tokenUnfreeze",
51
- parser: HTSParser.parseTokenUnfreeze,
52
- resultField: "tokenUnfreeze"
53
- },
54
- TOKENGRANTKYC: {
55
- bodyField: "tokenGrantKyc",
56
- parser: HTSParser.parseTokenGrantKyc,
57
- resultField: "tokenGrantKyc"
58
- },
59
- TOKENREVOKEKYC: {
60
- bodyField: "tokenRevokeKyc",
61
- parser: HTSParser.parseTokenRevokeKyc,
62
- resultField: "tokenRevokeKyc"
63
- },
64
- TOKENPAUSE: {
65
- bodyField: "tokenPause",
66
- parser: HTSParser.parseTokenPause,
67
- resultField: "tokenPause"
68
- },
69
- TOKENUNPAUSE: {
70
- bodyField: "tokenUnpause",
71
- parser: HTSParser.parseTokenUnpause,
72
- resultField: "tokenUnpause"
73
- },
74
- TOKENWIPEACCOUNT: {
75
- bodyField: "tokenWipe",
76
- parser: HTSParser.parseTokenWipeAccount,
77
- resultField: "tokenWipeAccount"
78
- },
79
- TOKENFEESCHEDULEUPDATE: {
80
- bodyField: "tokenFeeScheduleUpdate",
81
- parser: HTSParser.parseTokenFeeScheduleUpdate,
82
- resultField: "tokenFeeScheduleUpdate"
83
- },
84
- TOKENAIRDROP: {
85
- bodyField: "tokenAirdrop",
86
- parser: HTSParser.parseTokenAirdropFromProto,
87
- resultField: "tokenAirdrop"
88
- },
89
- TOPICCREATE: {
90
- bodyField: "consensusCreateTopic",
91
- parser: HCSParser.parseConsensusCreateTopic,
92
- resultField: "consensusCreateTopic"
93
- },
94
- CONSENSUSSUBMITMESSAGE: {
95
- bodyField: "consensusSubmitMessage",
96
- parser: HCSParser.parseConsensusSubmitMessage,
97
- resultField: "consensusSubmitMessage"
98
- },
99
- TOPICUPDATE: {
100
- bodyField: "consensusUpdateTopic",
101
- parser: HCSParser.parseConsensusUpdateTopic,
102
- resultField: "consensusUpdateTopic"
103
- },
104
- TOPICDELETE: {
105
- bodyField: "consensusDeleteTopic",
106
- parser: HCSParser.parseConsensusDeleteTopic,
107
- resultField: "consensusDeleteTopic"
108
- },
109
- ACCOUNTCREATE: {
110
- bodyField: "cryptoCreateAccount",
111
- parser: CryptoParser.parseCryptoCreateAccount,
112
- resultField: "cryptoCreateAccount"
113
- },
114
- ACCOUNTUPDATE: {
115
- bodyField: "cryptoUpdateAccount",
116
- parser: CryptoParser.parseCryptoUpdateAccount,
117
- resultField: "cryptoUpdateAccount"
118
- },
119
- ACCOUNTDELETE: {
120
- bodyField: "cryptoDelete",
121
- parser: CryptoParser.parseCryptoDelete,
122
- resultField: "cryptoDelete"
123
- },
124
- CRYPTOTRANSFER: {
125
- bodyField: "cryptoTransfer",
126
- parser: (body) => {
127
- const result = {
128
- transfers: [],
129
- tokenTransfers: []
130
- };
131
- CryptoParser.parseCryptoTransfers(body, result);
132
- return result;
133
- },
134
- resultField: "transfers",
135
- spreadResult: true
136
- },
137
- APPROVEALLOWANCE: {
138
- bodyField: "cryptoApproveAllowance",
139
- parser: CryptoParser.parseCryptoApproveAllowance,
140
- resultField: "cryptoApproveAllowance"
141
- },
142
- DELETEALLOWANCE: {
143
- bodyField: "cryptoDeleteAllowance",
144
- parser: CryptoParser.parseCryptoDeleteAllowance,
145
- resultField: "cryptoDeleteAllowance"
146
- },
147
- FILECREATE: {
148
- bodyField: "fileCreate",
149
- parser: FileParser.parseFileCreate,
150
- resultField: "fileCreate"
151
- },
152
- FILEUPDATE: {
153
- bodyField: "fileUpdate",
154
- parser: FileParser.parseFileUpdate,
155
- resultField: "fileUpdate"
156
- },
157
- FILEDELETE: {
158
- bodyField: "fileDelete",
159
- parser: FileParser.parseFileDelete,
160
- resultField: "fileDelete"
161
- },
162
- FILEAPPEND: {
163
- bodyField: "fileAppend",
164
- parser: FileParser.parseFileAppend,
165
- resultField: "fileAppend"
166
- },
167
- CONTRACTCREATE: {
168
- bodyField: "contractCreateInstance",
169
- parser: SCSParser.parseContractCreate,
170
- resultField: "contractCreate"
171
- },
172
- CONTRACTUPDATE: {
173
- bodyField: "contractUpdateInstance",
174
- parser: SCSParser.parseContractUpdate,
175
- resultField: "contractUpdate"
176
- },
177
- CONTRACTDELETE: {
178
- bodyField: "contractDeleteInstance",
179
- parser: SCSParser.parseContractDelete,
180
- resultField: "contractDelete"
181
- },
182
- CONTRACTCALL: {
183
- bodyField: "contractCall",
184
- parser: SCSParser.parseContractCall,
185
- resultField: "contractCall"
186
- },
187
- ETHEREUMTRANSACTION: {
188
- bodyField: "ethereumTransaction",
189
- parser: SCSParser.parseEthereumTransaction,
190
- resultField: "ethereumTransaction"
191
- },
192
- SCHEDULECREATE: {
193
- bodyField: "scheduleCreate",
194
- parser: ScheduleParser.parseScheduleCreateFromProto,
195
- resultField: "scheduleCreate"
196
- },
197
- SCHEDULESIGN: {
198
- bodyField: "scheduleSign",
199
- parser: ScheduleParser.parseScheduleSignFromProto,
200
- resultField: "scheduleSign"
201
- },
202
- SCHEDULEDELETE: {
203
- bodyField: "scheduleDelete",
204
- parser: ScheduleParser.parseScheduleDeleteFromProto,
205
- resultField: "scheduleDelete"
206
- },
207
- PRNG: {
208
- bodyField: "utilPrng",
209
- parser: UtilParser.parseUtilPrng,
210
- resultField: "utilPrng"
211
- },
212
- FREEZE: {
213
- bodyField: "freeze",
214
- parser: UtilParser.parseFreeze,
215
- resultField: "freeze"
216
- },
217
- SYSTEMDELETE: {
218
- bodyField: "systemDelete",
219
- parser: (body) => ({
220
- fileId: body.fileID ? `${body.fileID.shardNum}.${body.fileID.realmNum}.${body.fileID.fileNum}` : void 0,
221
- contractId: body.contractID ? `${body.contractID.shardNum}.${body.contractID.realmNum}.${body.contractID.contractNum}` : void 0,
222
- expirationTime: body.expirationTime?.seconds ? body.expirationTime.seconds.toString() : void 0
223
- }),
224
- resultField: "systemDelete"
225
- },
226
- SYSTEMUNDELETE: {
227
- bodyField: "systemUndelete",
228
- parser: (body) => ({
229
- fileId: body.fileID ? `${body.fileID.shardNum}.${body.fileID.realmNum}.${body.fileID.fileNum}` : void 0,
230
- contractId: body.contractID ? `${body.contractID.shardNum}.${body.contractID.realmNum}.${body.contractID.contractNum}` : void 0
231
- }),
232
- resultField: "systemUndelete"
233
- },
234
- TOKENCANCELAIRDROP: {
235
- bodyField: "tokenCancelAirdrop",
236
- parser: (body) => ({
237
- pendingAirdrops: body.pendingAirdrops || []
238
- }),
239
- resultField: "tokenCancelAirdrop"
240
- },
241
- TOKENCLAIMAIRDROP: {
242
- bodyField: "tokenClaimAirdrop",
243
- parser: (body) => ({
244
- pendingAirdrops: body.pendingAirdrops || []
245
- }),
246
- resultField: "tokenClaimAirdrop"
247
- },
248
- TOKENREJECT: {
249
- bodyField: "tokenReject",
250
- parser: (body) => ({
251
- owner: body.owner ? `${body.owner.shardNum}.${body.owner.realmNum}.${body.owner.accountNum}` : void 0,
252
- rejections: body.rejections || []
253
- }),
254
- resultField: "tokenReject"
255
- },
256
- TOKENUPDATENFTS: {
257
- bodyField: "tokenUpdateNfts",
258
- parser: (body) => ({
259
- tokenId: body.token ? `${body.token.shardNum}.${body.token.realmNum}.${body.token.tokenNum}` : void 0,
260
- serialNumbers: body.serialNumbers || [],
261
- metadata: body.metadata
262
- }),
263
- resultField: "tokenUpdateNfts"
264
- },
265
- TOKENWIPE: {
266
- bodyField: "tokenWipe",
267
- parser: HTSParser.parseTokenWipeAccount,
268
- resultField: "tokenWipeAccount"
269
- },
270
- CRYPTOADDLIVEHASH: {
271
- bodyField: "cryptoAddLiveHash",
272
- parser: (body) => ({
273
- accountId: body.accountID ? `${body.accountID.shardNum}.${body.accountID.realmNum}.${body.accountID.accountNum}` : void 0,
274
- liveHash: body.liveHash
275
- }),
276
- resultField: "cryptoAddLiveHash"
277
- },
278
- CRYPTODELETELIVEHASH: {
279
- bodyField: "cryptoDeleteLiveHash",
280
- parser: (body) => ({
281
- accountId: body.accountOfLiveHash ? `${body.accountOfLiveHash.shardNum}.${body.accountOfLiveHash.realmNum}.${body.accountOfLiveHash.accountNum}` : void 0,
282
- liveHashToDelete: body.liveHashToDelete
283
- }),
284
- resultField: "cryptoDeleteLiveHash"
285
- },
286
- UNCHECKEDSUBMIT: {
287
- bodyField: "uncheckedSubmit",
288
- parser: (body) => ({
289
- topicId: body.topicID ? `${body.topicID.shardNum}.${body.topicID.realmNum}.${body.topicID.topicNum}` : void 0,
290
- message: body.message
291
- }),
292
- resultField: "uncheckedSubmit"
293
- },
294
- NODECREATE: {
295
- bodyField: "nodeCreate",
296
- parser: (body) => ({
297
- accountId: body.accountId ? `${body.accountId.shardNum}.${body.accountId.realmNum}.${body.accountId.accountNum}` : void 0,
298
- description: body.description,
299
- gossipEndpoint: body.gossipEndpoint,
300
- serviceEndpoint: body.serviceEndpoint,
301
- gossipCaCertificate: body.gossipCaCertificate,
302
- grpcCertificateHash: body.grpcCertificateHash,
303
- adminKey: body.adminKey
304
- }),
305
- resultField: "nodeCreate"
306
- },
307
- NODEUPDATE: {
308
- bodyField: "nodeUpdate",
309
- parser: (body) => ({
310
- nodeId: body.nodeId?.toString(),
311
- accountId: body.accountId ? `${body.accountId.shardNum}.${body.accountId.realmNum}.${body.accountId.accountNum}` : void 0,
312
- description: body.description,
313
- gossipEndpoint: body.gossipEndpoint,
314
- serviceEndpoint: body.serviceEndpoint,
315
- gossipCaCertificate: body.gossipCaCertificate,
316
- grpcCertificateHash: body.grpcCertificateHash,
317
- adminKey: body.adminKey
318
- }),
319
- resultField: "nodeUpdate"
320
- },
321
- NODEDELETE: {
322
- bodyField: "nodeDelete",
323
- parser: (body) => ({
324
- nodeId: body.nodeId?.toString()
325
- }),
326
- resultField: "nodeDelete"
327
- },
328
- NODESTAKEUPDATE: {
329
- bodyField: "nodeStakeUpdate",
330
- parser: (body) => ({
331
- nodeId: body.nodeId?.toString(),
332
- maxStake: body.maxStake?.toString(),
333
- minStake: body.minStake?.toString(),
334
- rewardRate: body.rewardRate?.toString()
335
- }),
336
- resultField: "nodeStakeUpdate"
337
- },
338
- ATOMICBATCH: {
339
- bodyField: "atomicBatch",
340
- parser: (body) => ({
341
- transactions: body.transactions || []
342
- }),
343
- resultField: "atomicBatch"
344
- },
345
- STATESIGNATURETRANSACTION: {
346
- bodyField: "stateSignatureTransaction",
347
- parser: (body) => ({
348
- signature: body.signature,
349
- round: body.round?.toString()
350
- }),
351
- resultField: "stateSignatureTransaction"
352
- },
353
- HISTORYPROOFSIGNATURE: {
354
- bodyField: "historyProofSignature",
355
- parser: (body) => ({
356
- signature: body.signature,
357
- round: body.round?.toString()
358
- }),
359
- resultField: "historyProofSignature"
360
- },
361
- HISTORYPROOFKEYPUBLICATION: {
362
- bodyField: "historyProofKeyPublication",
363
- parser: (body) => ({
364
- publicKey: body.publicKey,
365
- round: body.round?.toString()
366
- }),
367
- resultField: "historyProofKeyPublication"
368
- },
369
- HISTORYPROOFVOTE: {
370
- bodyField: "historyProofVote",
371
- parser: (body) => ({
372
- vote: body.vote,
373
- round: body.round?.toString()
374
- }),
375
- resultField: "historyProofVote"
376
- },
377
- HINTSPREPROCESSINGVOTE: {
378
- bodyField: "hintsPreprocessingVote",
379
- parser: (body) => ({
380
- vote: body.vote,
381
- round: body.round?.toString()
382
- }),
383
- resultField: "hintsPreprocessingVote"
384
- },
385
- HINTSKEYPUBLICATION: {
386
- bodyField: "hintsKeyPublication",
387
- parser: (body) => ({
388
- publicKey: body.publicKey,
389
- round: body.round?.toString()
390
- }),
391
- resultField: "hintsKeyPublication"
392
- },
393
- HINTSPARTIALSIGNATURE: {
394
- bodyField: "hintsPartialSignature",
395
- parser: (body) => ({
396
- signature: body.signature,
397
- round: body.round?.toString()
398
- }),
399
- resultField: "hintsPartialSignature"
400
- },
401
- CRSPUBLICATION: {
402
- bodyField: "crsPublication",
403
- parser: (body) => ({
404
- crs: body.crs,
405
- round: body.round?.toString()
406
- }),
407
- resultField: "crsPublication"
1
+ class NodeHashAdapter {
2
+ constructor(nodeHash) {
3
+ this.nodeHash = nodeHash;
4
+ }
5
+ update(data) {
6
+ this.nodeHash.update(data);
7
+ return this;
8
+ }
9
+ digest(encoding) {
10
+ return this.nodeHash.digest(encoding);
408
11
  }
409
- };
410
- function getParserConfig(transactionType) {
411
- return transactionParserRegistry[transactionType];
412
12
  }
413
- function isTransactionTypeSupported(transactionType) {
414
- return transactionType in transactionParserRegistry;
13
+ class WebHashAdapter {
14
+ constructor(algorithm) {
15
+ this.algorithm = algorithm;
16
+ this.data = [];
17
+ }
18
+ update(data) {
19
+ const bytes = typeof data === "string" ? new TextEncoder().encode(data) : new Uint8Array(data);
20
+ this.data.push(bytes);
21
+ return this;
22
+ }
23
+ async digest(encoding) {
24
+ const combined = this.concatenateArrays(this.data);
25
+ const bufferView = new Uint8Array(combined).buffer;
26
+ const hashBuffer = await crypto.subtle.digest(
27
+ this.mapAlgorithm(this.algorithm),
28
+ bufferView
29
+ );
30
+ if (encoding === "hex") {
31
+ return Array.from(new Uint8Array(hashBuffer)).map((b) => b.toString(16).padStart(2, "0")).join("");
32
+ }
33
+ return Buffer.from(hashBuffer);
34
+ }
35
+ concatenateArrays(arrays) {
36
+ const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
37
+ const result = new Uint8Array(totalLength);
38
+ let offset = 0;
39
+ for (const arr of arrays) {
40
+ result.set(arr, offset);
41
+ offset += arr.length;
42
+ }
43
+ return result;
44
+ }
45
+ mapAlgorithm(algorithm) {
46
+ const algorithmMap = {
47
+ sha256: "SHA-256",
48
+ sha384: "SHA-384",
49
+ sha1: "SHA-1",
50
+ sha512: "SHA-512"
51
+ };
52
+ return algorithmMap[algorithm.toLowerCase()] || "SHA-256";
53
+ }
415
54
  }
416
- function getSupportedTransactionTypes() {
417
- return Object.keys(transactionParserRegistry);
55
+ class FallbackHashAdapter {
56
+ constructor(algorithm) {
57
+ this.algorithm = algorithm;
58
+ this.data = [];
59
+ }
60
+ update(data) {
61
+ const buffer = typeof data === "string" ? Buffer.from(data) : data;
62
+ this.data.push(buffer);
63
+ return this;
64
+ }
65
+ digest(encoding) {
66
+ const combined = Buffer.concat(this.data);
67
+ const hash = this.simpleHash(combined);
68
+ if (encoding === "hex") {
69
+ return hash.toString(16).padStart(8, "0");
70
+ }
71
+ return hash.toString();
72
+ }
73
+ simpleHash(buffer) {
74
+ let hash = 0;
75
+ for (let i = 0; i < buffer.length; i++) {
76
+ hash = (hash << 5) - hash + buffer[i] & 4294967295;
77
+ }
78
+ return Math.abs(hash);
79
+ }
418
80
  }
419
81
  export {
420
- getParserConfig,
421
- getSupportedTransactionTypes,
422
- isTransactionTypeSupported,
423
- transactionParserRegistry
82
+ FallbackHashAdapter,
83
+ NodeHashAdapter,
84
+ WebHashAdapter
424
85
  };
425
86
  //# sourceMappingURL=standards-sdk.es116.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es116.js","sources":["../../src/utils/transaction-parser-registry.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { HTSParser } from './parsers/hts-parser';\nimport { HCSParser } from './parsers/hcs-parser';\nimport { CryptoParser } from './parsers/crypto-parser';\nimport { FileParser } from './parsers/file-parser';\nimport { SCSParser } from './parsers/scs-parser';\nimport { ScheduleParser } from './parsers/schedule-parser';\nimport { UtilParser } from './parsers/util-parser';\nimport type { ParsedTransaction } from './transaction-parser-types';\n\n/**\n * Registry mapping transaction types to their parser functions\n * This scalable approach allows easy addition of new transaction types\n * without modifying the core parsing logic\n */\nexport const transactionParserRegistry: Record<\n string,\n {\n bodyField: keyof proto.TransactionBody;\n parser: (data: any) => any;\n resultField: keyof Partial<ParsedTransaction>;\n spreadResult?: boolean;\n }\n> = {\n TOKENCREATE: {\n bodyField: 'tokenCreation',\n parser: HTSParser.parseTokenCreate,\n resultField: 'tokenCreation',\n },\n TOKENMINT: {\n bodyField: 'tokenMint',\n parser: HTSParser.parseTokenMint,\n resultField: 'tokenMint',\n },\n TOKENBURN: {\n bodyField: 'tokenBurn',\n parser: HTSParser.parseTokenBurn,\n resultField: 'tokenBurn',\n },\n TOKENUPDATE: {\n bodyField: 'tokenUpdate',\n parser: HTSParser.parseTokenUpdate,\n resultField: 'tokenUpdate',\n },\n TOKENDELETE: {\n bodyField: 'tokenDeletion',\n parser: HTSParser.parseTokenDelete,\n resultField: 'tokenDelete',\n },\n TOKENASSOCIATE: {\n bodyField: 'tokenAssociate',\n parser: HTSParser.parseTokenAssociate,\n resultField: 'tokenAssociate',\n },\n TOKENDISSOCIATE: {\n bodyField: 'tokenDissociate',\n parser: HTSParser.parseTokenDissociate,\n resultField: 'tokenDissociate',\n },\n TOKENFREEZE: {\n bodyField: 'tokenFreeze',\n parser: HTSParser.parseTokenFreeze,\n resultField: 'tokenFreeze',\n },\n TOKENUNFREEZE: {\n bodyField: 'tokenUnfreeze',\n parser: HTSParser.parseTokenUnfreeze,\n resultField: 'tokenUnfreeze',\n },\n TOKENGRANTKYC: {\n bodyField: 'tokenGrantKyc',\n parser: HTSParser.parseTokenGrantKyc,\n resultField: 'tokenGrantKyc',\n },\n TOKENREVOKEKYC: {\n bodyField: 'tokenRevokeKyc',\n parser: HTSParser.parseTokenRevokeKyc,\n resultField: 'tokenRevokeKyc',\n },\n TOKENPAUSE: {\n bodyField: 'tokenPause',\n parser: HTSParser.parseTokenPause,\n resultField: 'tokenPause',\n },\n TOKENUNPAUSE: {\n bodyField: 'tokenUnpause',\n parser: HTSParser.parseTokenUnpause,\n resultField: 'tokenUnpause',\n },\n TOKENWIPEACCOUNT: {\n bodyField: 'tokenWipe',\n parser: HTSParser.parseTokenWipeAccount,\n resultField: 'tokenWipeAccount',\n },\n TOKENFEESCHEDULEUPDATE: {\n bodyField: 'tokenFeeScheduleUpdate',\n parser: HTSParser.parseTokenFeeScheduleUpdate,\n resultField: 'tokenFeeScheduleUpdate',\n },\n TOKENAIRDROP: {\n bodyField: 'tokenAirdrop',\n parser: HTSParser.parseTokenAirdropFromProto,\n resultField: 'tokenAirdrop',\n },\n\n TOPICCREATE: {\n bodyField: 'consensusCreateTopic',\n parser: HCSParser.parseConsensusCreateTopic,\n resultField: 'consensusCreateTopic',\n },\n CONSENSUSSUBMITMESSAGE: {\n bodyField: 'consensusSubmitMessage',\n parser: HCSParser.parseConsensusSubmitMessage,\n resultField: 'consensusSubmitMessage',\n },\n TOPICUPDATE: {\n bodyField: 'consensusUpdateTopic',\n parser: HCSParser.parseConsensusUpdateTopic,\n resultField: 'consensusUpdateTopic',\n },\n TOPICDELETE: {\n bodyField: 'consensusDeleteTopic',\n parser: HCSParser.parseConsensusDeleteTopic,\n resultField: 'consensusDeleteTopic',\n },\n\n ACCOUNTCREATE: {\n bodyField: 'cryptoCreateAccount',\n parser: CryptoParser.parseCryptoCreateAccount,\n resultField: 'cryptoCreateAccount',\n },\n ACCOUNTUPDATE: {\n bodyField: 'cryptoUpdateAccount',\n parser: CryptoParser.parseCryptoUpdateAccount,\n resultField: 'cryptoUpdateAccount',\n },\n ACCOUNTDELETE: {\n bodyField: 'cryptoDelete',\n parser: CryptoParser.parseCryptoDelete,\n resultField: 'cryptoDelete',\n },\n CRYPTOTRANSFER: {\n bodyField: 'cryptoTransfer',\n parser: (body: proto.ICryptoTransferTransactionBody) => {\n const result: Partial<ParsedTransaction> = {\n transfers: [],\n tokenTransfers: [],\n };\n CryptoParser.parseCryptoTransfers(body, result as ParsedTransaction);\n return result;\n },\n resultField: 'transfers' as keyof Partial<ParsedTransaction>,\n spreadResult: true,\n },\n APPROVEALLOWANCE: {\n bodyField: 'cryptoApproveAllowance',\n parser: CryptoParser.parseCryptoApproveAllowance,\n resultField: 'cryptoApproveAllowance',\n },\n DELETEALLOWANCE: {\n bodyField: 'cryptoDeleteAllowance',\n parser: CryptoParser.parseCryptoDeleteAllowance,\n resultField: 'cryptoDeleteAllowance',\n },\n\n FILECREATE: {\n bodyField: 'fileCreate',\n parser: FileParser.parseFileCreate,\n resultField: 'fileCreate',\n },\n FILEUPDATE: {\n bodyField: 'fileUpdate',\n parser: FileParser.parseFileUpdate,\n resultField: 'fileUpdate',\n },\n FILEDELETE: {\n bodyField: 'fileDelete',\n parser: FileParser.parseFileDelete,\n resultField: 'fileDelete',\n },\n FILEAPPEND: {\n bodyField: 'fileAppend',\n parser: FileParser.parseFileAppend,\n resultField: 'fileAppend',\n },\n\n CONTRACTCREATE: {\n bodyField: 'contractCreateInstance',\n parser: SCSParser.parseContractCreate,\n resultField: 'contractCreate',\n },\n CONTRACTUPDATE: {\n bodyField: 'contractUpdateInstance',\n parser: SCSParser.parseContractUpdate,\n resultField: 'contractUpdate',\n },\n CONTRACTDELETE: {\n bodyField: 'contractDeleteInstance',\n parser: SCSParser.parseContractDelete,\n resultField: 'contractDelete',\n },\n CONTRACTCALL: {\n bodyField: 'contractCall',\n parser: SCSParser.parseContractCall,\n resultField: 'contractCall',\n },\n ETHEREUMTRANSACTION: {\n bodyField: 'ethereumTransaction',\n parser: SCSParser.parseEthereumTransaction,\n resultField: 'ethereumTransaction',\n },\n\n SCHEDULECREATE: {\n bodyField: 'scheduleCreate',\n parser: ScheduleParser.parseScheduleCreateFromProto,\n resultField: 'scheduleCreate',\n },\n SCHEDULESIGN: {\n bodyField: 'scheduleSign',\n parser: ScheduleParser.parseScheduleSignFromProto,\n resultField: 'scheduleSign',\n },\n SCHEDULEDELETE: {\n bodyField: 'scheduleDelete',\n parser: ScheduleParser.parseScheduleDeleteFromProto,\n resultField: 'scheduleDelete',\n },\n\n PRNG: {\n bodyField: 'utilPrng',\n parser: UtilParser.parseUtilPrng,\n resultField: 'utilPrng',\n },\n FREEZE: {\n bodyField: 'freeze',\n parser: UtilParser.parseFreeze,\n resultField: 'freeze',\n },\n\n SYSTEMDELETE: {\n bodyField: 'systemDelete',\n parser: (body: proto.ISystemDeleteTransactionBody) => ({\n fileId: body.fileID\n ? `${body.fileID.shardNum}.${body.fileID.realmNum}.${body.fileID.fileNum}`\n : undefined,\n contractId: body.contractID\n ? `${body.contractID.shardNum}.${body.contractID.realmNum}.${body.contractID.contractNum}`\n : undefined,\n expirationTime: body.expirationTime?.seconds\n ? body.expirationTime.seconds.toString()\n : undefined,\n }),\n resultField: 'systemDelete',\n },\n SYSTEMUNDELETE: {\n bodyField: 'systemUndelete',\n parser: (body: proto.ISystemUndeleteTransactionBody) => ({\n fileId: body.fileID\n ? `${body.fileID.shardNum}.${body.fileID.realmNum}.${body.fileID.fileNum}`\n : undefined,\n contractId: body.contractID\n ? `${body.contractID.shardNum}.${body.contractID.realmNum}.${body.contractID.contractNum}`\n : undefined,\n }),\n resultField: 'systemUndelete',\n },\n\n TOKENCANCELAIRDROP: {\n bodyField: 'tokenCancelAirdrop',\n parser: (body: any) => ({\n pendingAirdrops: body.pendingAirdrops || [],\n }),\n resultField: 'tokenCancelAirdrop',\n },\n TOKENCLAIMAIRDROP: {\n bodyField: 'tokenClaimAirdrop',\n parser: (body: any) => ({\n pendingAirdrops: body.pendingAirdrops || [],\n }),\n resultField: 'tokenClaimAirdrop',\n },\n TOKENREJECT: {\n bodyField: 'tokenReject',\n parser: (body: any) => ({\n owner: body.owner\n ? `${body.owner.shardNum}.${body.owner.realmNum}.${body.owner.accountNum}`\n : undefined,\n rejections: body.rejections || [],\n }),\n resultField: 'tokenReject',\n },\n TOKENUPDATENFTS: {\n bodyField: 'tokenUpdateNfts',\n parser: (body: any) => ({\n tokenId: body.token\n ? `${body.token.shardNum}.${body.token.realmNum}.${body.token.tokenNum}`\n : undefined,\n serialNumbers: body.serialNumbers || [],\n metadata: body.metadata,\n }),\n resultField: 'tokenUpdateNfts',\n },\n TOKENWIPE: {\n bodyField: 'tokenWipe',\n parser: HTSParser.parseTokenWipeAccount,\n resultField: 'tokenWipeAccount',\n },\n\n CRYPTOADDLIVEHASH: {\n bodyField: 'cryptoAddLiveHash',\n parser: (body: any) => ({\n accountId: body.accountID\n ? `${body.accountID.shardNum}.${body.accountID.realmNum}.${body.accountID.accountNum}`\n : undefined,\n liveHash: body.liveHash,\n }),\n resultField: 'cryptoAddLiveHash',\n },\n CRYPTODELETELIVEHASH: {\n bodyField: 'cryptoDeleteLiveHash',\n parser: (body: any) => ({\n accountId: body.accountOfLiveHash\n ? `${body.accountOfLiveHash.shardNum}.${body.accountOfLiveHash.realmNum}.${body.accountOfLiveHash.accountNum}`\n : undefined,\n liveHashToDelete: body.liveHashToDelete,\n }),\n resultField: 'cryptoDeleteLiveHash',\n },\n\n UNCHECKEDSUBMIT: {\n bodyField: 'uncheckedSubmit',\n parser: (body: any) => ({\n topicId: body.topicID\n ? `${body.topicID.shardNum}.${body.topicID.realmNum}.${body.topicID.topicNum}`\n : undefined,\n message: body.message,\n }),\n resultField: 'uncheckedSubmit',\n },\n\n NODECREATE: {\n bodyField: 'nodeCreate',\n parser: (body: any) => ({\n accountId: body.accountId\n ? `${body.accountId.shardNum}.${body.accountId.realmNum}.${body.accountId.accountNum}`\n : undefined,\n description: body.description,\n gossipEndpoint: body.gossipEndpoint,\n serviceEndpoint: body.serviceEndpoint,\n gossipCaCertificate: body.gossipCaCertificate,\n grpcCertificateHash: body.grpcCertificateHash,\n adminKey: body.adminKey,\n }),\n resultField: 'nodeCreate',\n },\n NODEUPDATE: {\n bodyField: 'nodeUpdate',\n parser: (body: any) => ({\n nodeId: body.nodeId?.toString(),\n accountId: body.accountId\n ? `${body.accountId.shardNum}.${body.accountId.realmNum}.${body.accountId.accountNum}`\n : undefined,\n description: body.description,\n gossipEndpoint: body.gossipEndpoint,\n serviceEndpoint: body.serviceEndpoint,\n gossipCaCertificate: body.gossipCaCertificate,\n grpcCertificateHash: body.grpcCertificateHash,\n adminKey: body.adminKey,\n }),\n resultField: 'nodeUpdate',\n },\n NODEDELETE: {\n bodyField: 'nodeDelete',\n parser: (body: any) => ({\n nodeId: body.nodeId?.toString(),\n }),\n resultField: 'nodeDelete',\n },\n NODESTAKEUPDATE: {\n bodyField: 'nodeStakeUpdate',\n parser: (body: any) => ({\n nodeId: body.nodeId?.toString(),\n maxStake: body.maxStake?.toString(),\n minStake: body.minStake?.toString(),\n rewardRate: body.rewardRate?.toString(),\n }),\n resultField: 'nodeStakeUpdate',\n },\n\n ATOMICBATCH: {\n bodyField: 'atomicBatch',\n parser: (body: any) => ({\n transactions: body.transactions || [],\n }),\n resultField: 'atomicBatch',\n },\n\n STATESIGNATURETRANSACTION: {\n bodyField: 'stateSignatureTransaction',\n parser: (body: any) => ({\n signature: body.signature,\n round: body.round?.toString(),\n }),\n resultField: 'stateSignatureTransaction',\n },\n\n HISTORYPROOFSIGNATURE: {\n bodyField: 'historyProofSignature',\n parser: (body: any) => ({\n signature: body.signature,\n round: body.round?.toString(),\n }),\n resultField: 'historyProofSignature',\n },\n HISTORYPROOFKEYPUBLICATION: {\n bodyField: 'historyProofKeyPublication',\n parser: (body: any) => ({\n publicKey: body.publicKey,\n round: body.round?.toString(),\n }),\n resultField: 'historyProofKeyPublication',\n },\n HISTORYPROOFVOTE: {\n bodyField: 'historyProofVote',\n parser: (body: any) => ({\n vote: body.vote,\n round: body.round?.toString(),\n }),\n resultField: 'historyProofVote',\n },\n\n HINTSPREPROCESSINGVOTE: {\n bodyField: 'hintsPreprocessingVote',\n parser: (body: any) => ({\n vote: body.vote,\n round: body.round?.toString(),\n }),\n resultField: 'hintsPreprocessingVote',\n },\n HINTSKEYPUBLICATION: {\n bodyField: 'hintsKeyPublication',\n parser: (body: any) => ({\n publicKey: body.publicKey,\n round: body.round?.toString(),\n }),\n resultField: 'hintsKeyPublication',\n },\n HINTSPARTIALSIGNATURE: {\n bodyField: 'hintsPartialSignature',\n parser: (body: any) => ({\n signature: body.signature,\n round: body.round?.toString(),\n }),\n resultField: 'hintsPartialSignature',\n },\n\n CRSPUBLICATION: {\n bodyField: 'crsPublication',\n parser: (body: any) => ({\n crs: body.crs,\n round: body.round?.toString(),\n }),\n resultField: 'crsPublication',\n },\n};\n\n/**\n * Get parser configuration for a transaction type\n */\nexport function getParserConfig(transactionType: string) {\n return transactionParserRegistry[transactionType];\n}\n\n/**\n * Check if a transaction type is supported\n */\nexport function isTransactionTypeSupported(transactionType: string): boolean {\n return transactionType in transactionParserRegistry;\n}\n\n/**\n * Get all supported transaction types\n */\nexport function getSupportedTransactionTypes(): string[] {\n return Object.keys(transactionParserRegistry);\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es116.js","sources":["../../src/utils/hash-adapter.ts"],"sourcesContent":["/**\n * Hash Adapter Interface\n *\n * Provides a unified interface for hash operations across different\n * crypto implementations (Node.js crypto, WebCrypto, fallback).\n */\n\n/**\n * Common interface for hash operations\n */\nexport interface HashAdapter {\n update(data: Buffer | string): HashAdapter;\n digest(encoding?: string): string | Buffer | Promise<string | Buffer>;\n}\n\n/**\n * Node.js crypto hash adapter\n */\nexport class NodeHashAdapter implements HashAdapter {\n constructor(private nodeHash: any) {}\n\n update(data: Buffer | string): HashAdapter {\n this.nodeHash.update(data);\n return this;\n }\n\n digest(encoding?: string): string | Buffer {\n return this.nodeHash.digest(encoding);\n }\n}\n\n/**\n * WebCrypto hash adapter\n */\nexport class WebHashAdapter implements HashAdapter {\n private data: Uint8Array[] = [];\n\n constructor(private algorithm: string) {}\n\n update(data: Buffer | string): HashAdapter {\n const bytes =\n typeof data === 'string'\n ? new TextEncoder().encode(data)\n : new Uint8Array(data);\n this.data.push(bytes);\n return this;\n }\n\n async digest(encoding?: string): Promise<string | Buffer> {\n const combined = this.concatenateArrays(this.data);\n const bufferView = new Uint8Array(combined).buffer;\n const hashBuffer = await crypto.subtle.digest(\n this.mapAlgorithm(this.algorithm),\n bufferView,\n );\n\n if (encoding === 'hex') {\n return Array.from(new Uint8Array(hashBuffer))\n .map(b => b.toString(16).padStart(2, '0'))\n .join('');\n }\n\n return Buffer.from(hashBuffer);\n }\n\n private concatenateArrays(arrays: Uint8Array[]): Uint8Array {\n const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n\n return result;\n }\n\n private mapAlgorithm(algorithm: string): string {\n const algorithmMap: Record<string, string> = {\n sha256: 'SHA-256',\n sha384: 'SHA-384',\n sha1: 'SHA-1',\n sha512: 'SHA-512',\n };\n\n return algorithmMap[algorithm.toLowerCase()] || 'SHA-256';\n }\n}\n\n/**\n * Fallback hash adapter for SSR environments\n */\nexport class FallbackHashAdapter implements HashAdapter {\n private data: Buffer[] = [];\n\n constructor(private algorithm: string) {}\n\n update(data: Buffer | string): HashAdapter {\n const buffer = typeof data === 'string' ? Buffer.from(data) : data;\n this.data.push(buffer);\n return this;\n }\n\n digest(encoding?: string): string {\n const combined = Buffer.concat(this.data);\n const hash = this.simpleHash(combined);\n\n if (encoding === 'hex') {\n return hash.toString(16).padStart(8, '0');\n }\n\n return hash.toString();\n }\n\n private simpleHash(buffer: Buffer): number {\n let hash = 0;\n for (let i = 0; i < buffer.length; i++) {\n hash = ((hash << 5) - hash + buffer[i]) & 0xffffffff;\n }\n return Math.abs(hash);\n }\n}\n"],"names":[],"mappings":"AAkBO,MAAM,gBAAuC;AAAA,EAClD,YAAoB,UAAe;AAAf,SAAA,WAAA;AAAA,EAAgB;AAAA,EAEpC,OAAO,MAAoC;AACzC,SAAK,SAAS,OAAO,IAAI;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,UAAoC;AACzC,WAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,EACtC;AACF;AAKO,MAAM,eAAsC;AAAA,EAGjD,YAAoB,WAAmB;AAAnB,SAAA,YAAA;AAFpB,SAAQ,OAAqB,CAAA;AAAA,EAEW;AAAA,EAExC,OAAO,MAAoC;AACzC,UAAM,QACJ,OAAO,SAAS,WACZ,IAAI,cAAc,OAAO,IAAI,IAC7B,IAAI,WAAW,IAAI;AACzB,SAAK,KAAK,KAAK,KAAK;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,UAA6C;AACxD,UAAM,WAAW,KAAK,kBAAkB,KAAK,IAAI;AACjD,UAAM,aAAa,IAAI,WAAW,QAAQ,EAAE;AAC5C,UAAM,aAAa,MAAM,OAAO,OAAO;AAAA,MACrC,KAAK,aAAa,KAAK,SAAS;AAAA,MAChC;AAAA,IAAA;AAGF,QAAI,aAAa,OAAO;AACtB,aAAO,MAAM,KAAK,IAAI,WAAW,UAAU,CAAC,EACzC,IAAI,CAAA,MAAK,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EACxC,KAAK,EAAE;AAAA,IACZ;AAEA,WAAO,OAAO,KAAK,UAAU;AAAA,EAC/B;AAAA,EAEQ,kBAAkB,QAAkC;AAC1D,UAAM,cAAc,OAAO,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,QAAQ,CAAC;AACnE,UAAM,SAAS,IAAI,WAAW,WAAW;AACzC,QAAI,SAAS;AAEb,eAAW,OAAO,QAAQ;AACxB,aAAO,IAAI,KAAK,MAAM;AACtB,gBAAU,IAAI;AAAA,IAChB;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,aAAa,WAA2B;AAC9C,UAAM,eAAuC;AAAA,MAC3C,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,IAAA;AAGV,WAAO,aAAa,UAAU,YAAA,CAAa,KAAK;AAAA,EAClD;AACF;AAKO,MAAM,oBAA2C;AAAA,EAGtD,YAAoB,WAAmB;AAAnB,SAAA,YAAA;AAFpB,SAAQ,OAAiB,CAAA;AAAA,EAEe;AAAA,EAExC,OAAO,MAAoC;AACzC,UAAM,SAAS,OAAO,SAAS,WAAW,OAAO,KAAK,IAAI,IAAI;AAC9D,SAAK,KAAK,KAAK,MAAM;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,UAA2B;AAChC,UAAM,WAAW,OAAO,OAAO,KAAK,IAAI;AACxC,UAAM,OAAO,KAAK,WAAW,QAAQ;AAErC,QAAI,aAAa,OAAO;AACtB,aAAO,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,IAC1C;AAEA,WAAO,KAAK,SAAA;AAAA,EACd;AAAA,EAEQ,WAAW,QAAwB;AACzC,QAAI,OAAO;AACX,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,cAAS,QAAQ,KAAK,OAAO,OAAO,CAAC,IAAK;AAAA,IAC5C;AACA,WAAO,KAAK,IAAI,IAAI;AAAA,EACtB;AACF;"}