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

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 +12216 -395
  121. package/dist/es/standards-sdk.es137.js.map +1 -1
  122. package/dist/es/standards-sdk.es138.js +694 -331
  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,55 +1,425 @@
1
- import { AccountId, PrivateKey, LedgerId, SignerSignature } from "@hashgraph/sdk";
2
- const unsupported = (method) => new Error(`${method} is not supported by the in-memory signer`);
3
- const createPrivateKeySigner = (options) => {
4
- if (!options.privateKey) {
5
- throw new Error("privateKey is required to create a ledger signer.");
6
- }
7
- if (!options.accountId) {
8
- throw new Error("accountId is required to create a ledger signer.");
9
- }
10
- const accountId = AccountId.fromString(options.accountId);
11
- const privateKey = PrivateKey.fromString(options.privateKey);
12
- const ledgerId = LedgerId.fromString(options.network);
13
- return {
14
- getLedgerId: () => ledgerId,
15
- getAccountId: () => accountId,
16
- getAccountKey: () => privateKey.publicKey,
17
- getNetwork: () => ({}),
18
- getMirrorNetwork: () => [],
19
- sign: async (messages) => Promise.all(
20
- messages.map(async (message) => {
21
- const signature = await privateKey.sign(message);
22
- return new SignerSignature({
23
- publicKey: privateKey.publicKey,
24
- signature,
25
- accountId
26
- });
27
- })
28
- ),
29
- getAccountBalance: async () => {
30
- throw unsupported("getAccountBalance");
31
- },
32
- getAccountInfo: async () => {
33
- throw unsupported("getAccountInfo");
34
- },
35
- getAccountRecords: async () => {
36
- throw unsupported("getAccountRecords");
1
+ import { HTSParser } from "./standards-sdk.es120.js";
2
+ import { HCSParser } from "./standards-sdk.es142.js";
3
+ import { CryptoParser } from "./standards-sdk.es144.js";
4
+ import { FileParser } from "./standards-sdk.es143.js";
5
+ import { SCSParser } from "./standards-sdk.es145.js";
6
+ import { ScheduleParser } from "./standards-sdk.es121.js";
7
+ import { UtilParser } from "./standards-sdk.es146.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;
37
133
  },
38
- signTransaction: async (_) => {
39
- throw unsupported("signTransaction");
40
- },
41
- checkTransaction: async (_) => {
42
- throw unsupported("checkTransaction");
43
- },
44
- populateTransaction: async (_) => {
45
- throw unsupported("populateTransaction");
46
- },
47
- call: async (_request) => {
48
- throw unsupported("call");
49
- }
50
- };
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"
408
+ }
51
409
  };
410
+ function getParserConfig(transactionType) {
411
+ return transactionParserRegistry[transactionType];
412
+ }
413
+ function isTransactionTypeSupported(transactionType) {
414
+ return transactionType in transactionParserRegistry;
415
+ }
416
+ function getSupportedTransactionTypes() {
417
+ return Object.keys(transactionParserRegistry);
418
+ }
52
419
  export {
53
- createPrivateKeySigner
420
+ getParserConfig,
421
+ getSupportedTransactionTypes,
422
+ isTransactionTypeSupported,
423
+ transactionParserRegistry
54
424
  };
55
425
  //# sourceMappingURL=standards-sdk.es122.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es122.js","sources":["../../src/services/registry-broker/private-key-signer.ts"],"sourcesContent":["import {\n AccountId,\n LedgerId,\n PrivateKey,\n SignerSignature,\n type Signer,\n type AccountBalance,\n type AccountInfo,\n type Transaction,\n type TransactionRecord,\n} from '@hashgraph/sdk';\n\nconst unsupported = (method: string): Error =>\n new Error(`${method} is not supported by the in-memory signer`);\n\nexport interface PrivateKeySignerOptions {\n accountId: string;\n privateKey: string;\n network: 'mainnet' | 'testnet';\n}\n\nexport const createPrivateKeySigner = (\n options: PrivateKeySignerOptions,\n): Signer => {\n if (!options.privateKey) {\n throw new Error('privateKey is required to create a ledger signer.');\n }\n if (!options.accountId) {\n throw new Error('accountId is required to create a ledger signer.');\n }\n const accountId = AccountId.fromString(options.accountId);\n const privateKey = PrivateKey.fromString(options.privateKey);\n const ledgerId = LedgerId.fromString(options.network);\n\n return {\n getLedgerId: () => ledgerId,\n getAccountId: () => accountId,\n getAccountKey: () => privateKey.publicKey,\n getNetwork: () => ({}),\n getMirrorNetwork: () => [],\n sign: async (messages: Uint8Array[]): Promise<SignerSignature[]> =>\n Promise.all(\n messages.map(async message => {\n const signature = await privateKey.sign(message);\n return new SignerSignature({\n publicKey: privateKey.publicKey,\n signature,\n accountId,\n });\n }),\n ),\n getAccountBalance: async (): Promise<AccountBalance> => {\n throw unsupported('getAccountBalance');\n },\n getAccountInfo: async (): Promise<AccountInfo> => {\n throw unsupported('getAccountInfo');\n },\n getAccountRecords: async (): Promise<TransactionRecord[]> => {\n throw unsupported('getAccountRecords');\n },\n signTransaction: async <T extends Transaction>(_: T): Promise<T> => {\n throw unsupported('signTransaction');\n },\n checkTransaction: async <T extends Transaction>(_: T): Promise<T> => {\n throw unsupported('checkTransaction');\n },\n populateTransaction: async <T extends Transaction>(_: T): Promise<T> => {\n throw unsupported('populateTransaction');\n },\n call: async <RequestT, ResponseT, OutputT>(\n _request: unknown,\n ): Promise<OutputT> => {\n throw unsupported('call');\n },\n };\n};\n"],"names":[],"mappings":";AAYA,MAAM,cAAc,CAAC,WACnB,IAAI,MAAM,GAAG,MAAM,2CAA2C;AAQzD,MAAM,yBAAyB,CACpC,YACW;AACX,MAAI,CAAC,QAAQ,YAAY;AACvB,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AACA,MAAI,CAAC,QAAQ,WAAW;AACtB,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AACA,QAAM,YAAY,UAAU,WAAW,QAAQ,SAAS;AACxD,QAAM,aAAa,WAAW,WAAW,QAAQ,UAAU;AAC3D,QAAM,WAAW,SAAS,WAAW,QAAQ,OAAO;AAEpD,SAAO;AAAA,IACL,aAAa,MAAM;AAAA,IACnB,cAAc,MAAM;AAAA,IACpB,eAAe,MAAM,WAAW;AAAA,IAChC,YAAY,OAAO,CAAA;AAAA,IACnB,kBAAkB,MAAM,CAAA;AAAA,IACxB,MAAM,OAAO,aACX,QAAQ;AAAA,MACN,SAAS,IAAI,OAAM,YAAW;AAC5B,cAAM,YAAY,MAAM,WAAW,KAAK,OAAO;AAC/C,eAAO,IAAI,gBAAgB;AAAA,UACzB,WAAW,WAAW;AAAA,UACtB;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MACH,CAAC;AAAA,IAAA;AAAA,IAEL,mBAAmB,YAAqC;AACtD,YAAM,YAAY,mBAAmB;AAAA,IACvC;AAAA,IACA,gBAAgB,YAAkC;AAChD,YAAM,YAAY,gBAAgB;AAAA,IACpC;AAAA,IACA,mBAAmB,YAA0C;AAC3D,YAAM,YAAY,mBAAmB;AAAA,IACvC;AAAA,IACA,iBAAiB,OAA8B,MAAqB;AAClE,YAAM,YAAY,iBAAiB;AAAA,IACrC;AAAA,IACA,kBAAkB,OAA8B,MAAqB;AACnE,YAAM,YAAY,kBAAkB;AAAA,IACtC;AAAA,IACA,qBAAqB,OAA8B,MAAqB;AACtE,YAAM,YAAY,qBAAqB;AAAA,IACzC;AAAA,IACA,MAAM,OACJ,aACqB;AACrB,YAAM,YAAY,MAAM;AAAA,IAC1B;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"standards-sdk.es122.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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"}