@hashgraphonline/standards-sdk 0.1.141-canary.2 → 0.1.141-canary.20

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 (242) 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-21/base-client.d.ts +4 -3
  5. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
  6. package/dist/cjs/hcs-21/index.d.ts +1 -0
  7. package/dist/cjs/hcs-21/index.d.ts.map +1 -1
  8. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
  9. package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
  10. package/dist/cjs/hcs-21/types.d.ts +135 -64
  11. package/dist/cjs/hcs-21/types.d.ts.map +1 -1
  12. package/dist/cjs/hcs-21/verify.d.ts +6 -0
  13. package/dist/cjs/hcs-21/verify.d.ts.map +1 -0
  14. package/dist/cjs/inscribe/inscriber.d.ts +1 -0
  15. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  16. package/dist/cjs/inscribe/quote-cache.d.ts.map +1 -1
  17. package/dist/cjs/services/registry-broker/client.d.ts +4 -3
  18. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  19. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  20. package/dist/cjs/services/registry-broker/schemas.d.ts +38 -38
  21. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  22. package/dist/cjs/standards-sdk.cjs +2 -2
  23. package/dist/cjs/standards-sdk.cjs.map +1 -1
  24. package/dist/cjs/utils/dynamic-import.d.ts +1 -0
  25. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  26. package/dist/es/hcs-16/base-client.d.ts.map +1 -1
  27. package/dist/es/hcs-17/types.d.ts.map +1 -1
  28. package/dist/es/hcs-21/base-client.d.ts +4 -3
  29. package/dist/es/hcs-21/base-client.d.ts.map +1 -1
  30. package/dist/es/hcs-21/index.d.ts +1 -0
  31. package/dist/es/hcs-21/index.d.ts.map +1 -1
  32. package/dist/es/hcs-21/sdk.d.ts.map +1 -1
  33. package/dist/es/hcs-21/tx.d.ts.map +1 -1
  34. package/dist/es/hcs-21/types.d.ts +135 -64
  35. package/dist/es/hcs-21/types.d.ts.map +1 -1
  36. package/dist/es/hcs-21/verify.d.ts +6 -0
  37. package/dist/es/hcs-21/verify.d.ts.map +1 -0
  38. package/dist/es/inscribe/inscriber.d.ts +1 -0
  39. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  40. package/dist/es/inscribe/quote-cache.d.ts.map +1 -1
  41. package/dist/es/services/registry-broker/client.d.ts +4 -3
  42. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  43. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  44. package/dist/es/services/registry-broker/schemas.d.ts +38 -38
  45. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  46. package/dist/es/standards-sdk.es.js +58 -50
  47. package/dist/es/standards-sdk.es.js.map +1 -1
  48. package/dist/es/standards-sdk.es10.js +2 -2
  49. package/dist/es/standards-sdk.es100.js +26 -229
  50. package/dist/es/standards-sdk.es100.js.map +1 -1
  51. package/dist/es/standards-sdk.es101.js +228 -109
  52. package/dist/es/standards-sdk.es101.js.map +1 -1
  53. package/dist/es/standards-sdk.es102.js +94 -15
  54. package/dist/es/standards-sdk.es102.js.map +1 -1
  55. package/dist/es/standards-sdk.es103.js +30 -80
  56. package/dist/es/standards-sdk.es103.js.map +1 -1
  57. package/dist/es/standards-sdk.es104.js +80 -27
  58. package/dist/es/standards-sdk.es104.js.map +1 -1
  59. package/dist/es/standards-sdk.es105.js +25 -136
  60. package/dist/es/standards-sdk.es105.js.map +1 -1
  61. package/dist/es/standards-sdk.es106.js +140 -27
  62. package/dist/es/standards-sdk.es106.js.map +1 -1
  63. package/dist/es/standards-sdk.es107.js +27 -20
  64. package/dist/es/standards-sdk.es107.js.map +1 -1
  65. package/dist/es/standards-sdk.es108.js +18 -156
  66. package/dist/es/standards-sdk.es108.js.map +1 -1
  67. package/dist/es/standards-sdk.es109.js +148 -196
  68. package/dist/es/standards-sdk.es109.js.map +1 -1
  69. package/dist/es/standards-sdk.es110.js +160 -747
  70. package/dist/es/standards-sdk.es110.js.map +1 -1
  71. package/dist/es/standards-sdk.es111.js +786 -9
  72. package/dist/es/standards-sdk.es111.js.map +1 -1
  73. package/dist/es/standards-sdk.es112.js +13 -567
  74. package/dist/es/standards-sdk.es112.js.map +1 -1
  75. package/dist/es/standards-sdk.es113.js +541 -576
  76. package/dist/es/standards-sdk.es113.js.map +1 -1
  77. package/dist/es/standards-sdk.es114.js +601 -12
  78. package/dist/es/standards-sdk.es114.js.map +1 -1
  79. package/dist/es/standards-sdk.es115.js +13 -2
  80. package/dist/es/standards-sdk.es115.js.map +1 -1
  81. package/dist/es/standards-sdk.es116.js +2 -83
  82. package/dist/es/standards-sdk.es116.js.map +1 -1
  83. package/dist/es/standards-sdk.es117.js +80 -36
  84. package/dist/es/standards-sdk.es117.js.map +1 -1
  85. package/dist/es/standards-sdk.es118.js +39 -2
  86. package/dist/es/standards-sdk.es118.js.map +1 -1
  87. package/dist/es/standards-sdk.es119.js +2 -223
  88. package/dist/es/standards-sdk.es119.js.map +1 -1
  89. package/dist/es/standards-sdk.es12.js +1 -1
  90. package/dist/es/standards-sdk.es120.js +193 -1110
  91. package/dist/es/standards-sdk.es120.js.map +1 -1
  92. package/dist/es/standards-sdk.es121.js +1059 -225
  93. package/dist/es/standards-sdk.es121.js.map +1 -1
  94. package/dist/es/standards-sdk.es122.js +303 -419
  95. package/dist/es/standards-sdk.es122.js.map +1 -1
  96. package/dist/es/standards-sdk.es123.js +418 -351
  97. package/dist/es/standards-sdk.es123.js.map +1 -1
  98. package/dist/es/standards-sdk.es124.js +348 -785
  99. package/dist/es/standards-sdk.es124.js.map +1 -1
  100. package/dist/es/standards-sdk.es125.js +748 -183
  101. package/dist/es/standards-sdk.es125.js.map +1 -1
  102. package/dist/es/standards-sdk.es126.js +153 -1512
  103. package/dist/es/standards-sdk.es126.js.map +1 -1
  104. package/dist/es/standards-sdk.es127.js +1373 -1977
  105. package/dist/es/standards-sdk.es127.js.map +1 -1
  106. package/dist/es/standards-sdk.es128.js +2206 -50
  107. package/dist/es/standards-sdk.es128.js.map +1 -1
  108. package/dist/es/standards-sdk.es129.js +59 -79
  109. package/dist/es/standards-sdk.es129.js.map +1 -1
  110. package/dist/es/standards-sdk.es13.js +1 -1
  111. package/dist/es/standards-sdk.es130.js +80 -152
  112. package/dist/es/standards-sdk.es130.js.map +1 -1
  113. package/dist/es/standards-sdk.es131.js +159 -7
  114. package/dist/es/standards-sdk.es131.js.map +1 -1
  115. package/dist/es/standards-sdk.es132.js +7 -86
  116. package/dist/es/standards-sdk.es132.js.map +1 -1
  117. package/dist/es/standards-sdk.es133.js +65 -44
  118. package/dist/es/standards-sdk.es133.js.map +1 -1
  119. package/dist/es/standards-sdk.es134.js +65 -28
  120. package/dist/es/standards-sdk.es134.js.map +1 -1
  121. package/dist/es/standards-sdk.es135.js +69 -125
  122. package/dist/es/standards-sdk.es135.js.map +1 -1
  123. package/dist/es/standards-sdk.es136.js +28 -42
  124. package/dist/es/standards-sdk.es136.js.map +1 -1
  125. package/dist/es/standards-sdk.es137.js +2 -2
  126. package/dist/es/standards-sdk.es138.js +138 -760
  127. package/dist/es/standards-sdk.es138.js.map +1 -1
  128. package/dist/es/standards-sdk.es139.js +746 -12254
  129. package/dist/es/standards-sdk.es139.js.map +1 -1
  130. package/dist/es/standards-sdk.es14.js +1 -1
  131. package/dist/es/standards-sdk.es140.js +12235 -133
  132. package/dist/es/standards-sdk.es140.js.map +1 -1
  133. package/dist/es/standards-sdk.es141.js +34 -314
  134. package/dist/es/standards-sdk.es141.js.map +1 -1
  135. package/dist/es/standards-sdk.es142.js +55 -345
  136. package/dist/es/standards-sdk.es142.js.map +1 -1
  137. package/dist/es/standards-sdk.es143.js +129 -410
  138. package/dist/es/standards-sdk.es143.js.map +1 -1
  139. package/dist/es/standards-sdk.es144.js +200 -209
  140. package/dist/es/standards-sdk.es144.js.map +1 -1
  141. package/dist/es/standards-sdk.es145.js +334 -64
  142. package/dist/es/standards-sdk.es145.js.map +1 -1
  143. package/dist/es/standards-sdk.es146.js +452 -55
  144. package/dist/es/standards-sdk.es146.js.map +1 -1
  145. package/dist/es/standards-sdk.es147.js +319 -52
  146. package/dist/es/standards-sdk.es147.js.map +1 -1
  147. package/dist/es/standards-sdk.es148.js +79 -0
  148. package/dist/es/standards-sdk.es148.js.map +1 -0
  149. package/dist/es/standards-sdk.es15.js +1 -1
  150. package/dist/es/standards-sdk.es16.js +1 -1
  151. package/dist/es/standards-sdk.es17.js +5 -10
  152. package/dist/es/standards-sdk.es17.js.map +1 -1
  153. package/dist/es/standards-sdk.es19.js +12 -16
  154. package/dist/es/standards-sdk.es19.js.map +1 -1
  155. package/dist/es/standards-sdk.es2.js +26 -72
  156. package/dist/es/standards-sdk.es2.js.map +1 -1
  157. package/dist/es/standards-sdk.es20.js +9 -13
  158. package/dist/es/standards-sdk.es20.js.map +1 -1
  159. package/dist/es/standards-sdk.es21.js +1 -1
  160. package/dist/es/standards-sdk.es22.js +1 -1
  161. package/dist/es/standards-sdk.es23.js +1 -1
  162. package/dist/es/standards-sdk.es24.js +1 -1
  163. package/dist/es/standards-sdk.es25.js +1 -1
  164. package/dist/es/standards-sdk.es26.js +1 -1
  165. package/dist/es/standards-sdk.es27.js +1 -1
  166. package/dist/es/standards-sdk.es28.js +12 -16
  167. package/dist/es/standards-sdk.es28.js.map +1 -1
  168. package/dist/es/standards-sdk.es3.js +2 -2
  169. package/dist/es/standards-sdk.es31.js +2 -2
  170. package/dist/es/standards-sdk.es32.js +4 -4
  171. package/dist/es/standards-sdk.es33.js +1 -1
  172. package/dist/es/standards-sdk.es36.js +7 -12
  173. package/dist/es/standards-sdk.es36.js.map +1 -1
  174. package/dist/es/standards-sdk.es37.js +4 -4
  175. package/dist/es/standards-sdk.es38.js +2 -2
  176. package/dist/es/standards-sdk.es39.js +2 -2
  177. package/dist/es/standards-sdk.es40.js +1 -1
  178. package/dist/es/standards-sdk.es41.js +1 -1
  179. package/dist/es/standards-sdk.es42.js +2 -2
  180. package/dist/es/standards-sdk.es47.js +1 -1
  181. package/dist/es/standards-sdk.es5.js +2 -2
  182. package/dist/es/standards-sdk.es52.js +1 -1
  183. package/dist/es/standards-sdk.es54.js +1 -1
  184. package/dist/es/standards-sdk.es57.js +2 -2
  185. package/dist/es/standards-sdk.es59.js +1 -1
  186. package/dist/es/standards-sdk.es6.js +2 -2
  187. package/dist/es/standards-sdk.es60.js +1 -1
  188. package/dist/es/standards-sdk.es61.js +7 -11
  189. package/dist/es/standards-sdk.es61.js.map +1 -1
  190. package/dist/es/standards-sdk.es63.js +1 -1
  191. package/dist/es/standards-sdk.es65.js +1 -1
  192. package/dist/es/standards-sdk.es66.js +2 -2
  193. package/dist/es/standards-sdk.es69.js +2 -2
  194. package/dist/es/standards-sdk.es7.js +2 -2
  195. package/dist/es/standards-sdk.es70.js +3 -3
  196. package/dist/es/standards-sdk.es71.js +2 -2
  197. package/dist/es/standards-sdk.es72.js +1 -1
  198. package/dist/es/standards-sdk.es75.js +2 -2
  199. package/dist/es/standards-sdk.es77.js +2 -2
  200. package/dist/es/standards-sdk.es78.js +4 -10
  201. package/dist/es/standards-sdk.es78.js.map +1 -1
  202. package/dist/es/standards-sdk.es79.js +1 -1
  203. package/dist/es/standards-sdk.es8.js +1 -1
  204. package/dist/es/standards-sdk.es80.js +26 -15
  205. package/dist/es/standards-sdk.es80.js.map +1 -1
  206. package/dist/es/standards-sdk.es82.js +12 -4
  207. package/dist/es/standards-sdk.es82.js.map +1 -1
  208. package/dist/es/standards-sdk.es83.js +7 -6
  209. package/dist/es/standards-sdk.es83.js.map +1 -1
  210. package/dist/es/standards-sdk.es84.js +7 -5
  211. package/dist/es/standards-sdk.es84.js.map +1 -1
  212. package/dist/es/standards-sdk.es86.js +55 -21
  213. package/dist/es/standards-sdk.es86.js.map +1 -1
  214. package/dist/es/standards-sdk.es87.js +22 -75
  215. package/dist/es/standards-sdk.es87.js.map +1 -1
  216. package/dist/es/standards-sdk.es88.js +45 -30
  217. package/dist/es/standards-sdk.es88.js.map +1 -1
  218. package/dist/es/standards-sdk.es89.js +57 -22
  219. package/dist/es/standards-sdk.es89.js.map +1 -1
  220. package/dist/es/standards-sdk.es90.js +28 -23
  221. package/dist/es/standards-sdk.es90.js.map +1 -1
  222. package/dist/es/standards-sdk.es91.js +23 -167
  223. package/dist/es/standards-sdk.es91.js.map +1 -1
  224. package/dist/es/standards-sdk.es92.js +158 -119
  225. package/dist/es/standards-sdk.es92.js.map +1 -1
  226. package/dist/es/standards-sdk.es93.js +68 -95
  227. package/dist/es/standards-sdk.es93.js.map +1 -1
  228. package/dist/es/standards-sdk.es94.js +136 -119
  229. package/dist/es/standards-sdk.es94.js.map +1 -1
  230. package/dist/es/standards-sdk.es95.js +139 -39
  231. package/dist/es/standards-sdk.es95.js.map +1 -1
  232. package/dist/es/standards-sdk.es96.js +42 -257
  233. package/dist/es/standards-sdk.es96.js.map +1 -1
  234. package/dist/es/standards-sdk.es97.js +243 -80
  235. package/dist/es/standards-sdk.es97.js.map +1 -1
  236. package/dist/es/standards-sdk.es98.js +47 -48
  237. package/dist/es/standards-sdk.es98.js.map +1 -1
  238. package/dist/es/standards-sdk.es99.js +100 -28
  239. package/dist/es/standards-sdk.es99.js.map +1 -1
  240. package/dist/es/utils/dynamic-import.d.ts +1 -0
  241. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  242. package/package.json +63 -61
@@ -1,425 +1,309 @@
1
- import { HTSParser } from "./standards-sdk.es120.js";
2
- import { HCSParser } from "./standards-sdk.es140.js";
3
- import { CryptoParser } from "./standards-sdk.es142.js";
4
- import { FileParser } from "./standards-sdk.es141.js";
5
- import { SCSParser } from "./standards-sdk.es143.js";
6
- import { ScheduleParser } from "./standards-sdk.es121.js";
7
- import { UtilParser } from "./standards-sdk.es144.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: []
1
+ import { proto } from "@hashgraph/proto";
2
+ import { hasTransactionType, parseKey } from "./standards-sdk.es148.js";
3
+ import { AccountId, Long, ScheduleId } from "@hashgraph/sdk";
4
+ class ScheduleParser {
5
+ /**
6
+ * Parse Schedule Service transaction using unified dual-branch approach
7
+ * This handles both regular transactions and signed transaction variants
8
+ */
9
+ static parseScheduleTransaction(transaction, originalBytes) {
10
+ try {
11
+ if (originalBytes || transaction.toBytes) {
12
+ try {
13
+ const bytesToParse = originalBytes || transaction.toBytes();
14
+ const decoded = proto.TransactionList.decode(bytesToParse);
15
+ if (decoded.transactionList && decoded.transactionList.length > 0) {
16
+ const tx = decoded.transactionList[0];
17
+ let txBody = null;
18
+ if (tx.bodyBytes && tx.bodyBytes.length > 0) {
19
+ txBody = proto.TransactionBody.decode(tx.bodyBytes);
20
+ } else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
21
+ const signedTx = proto.SignedTransaction.decode(
22
+ tx.signedTransactionBytes
23
+ );
24
+ if (signedTx.bodyBytes) {
25
+ txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
26
+ }
27
+ }
28
+ if (txBody) {
29
+ const protoResult = this.parseFromProtobufTxBody(txBody);
30
+ if (protoResult.type && protoResult.type !== "UNKNOWN") {
31
+ return protoResult;
32
+ }
33
+ }
34
+ }
35
+ } catch (protoError) {
36
+ }
37
+ }
38
+ return this.parseFromTransactionInternals(transaction);
39
+ } catch (error) {
40
+ return {
41
+ type: "UNKNOWN",
42
+ humanReadableType: "Unknown Schedule Transaction"
130
43
  };
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"
44
+ }
45
+ }
46
+ /**
47
+ * Parse schedule transaction from protobuf TransactionBody
48
+ * Handles all schedule operations from decoded protobuf data
49
+ */
50
+ static parseFromProtobufTxBody(txBody) {
51
+ if (txBody.scheduleCreate) {
52
+ const scheduleCreate = this.parseScheduleCreateFromProto(
53
+ txBody.scheduleCreate
54
+ );
55
+ if (scheduleCreate) {
56
+ return {
57
+ type: "SCHEDULECREATE",
58
+ humanReadableType: "Schedule Create",
59
+ scheduleCreate
60
+ };
61
+ }
62
+ }
63
+ if (txBody.scheduleSign) {
64
+ const scheduleSign = this.parseScheduleSignFromProto(txBody.scheduleSign);
65
+ if (scheduleSign) {
66
+ return {
67
+ type: "SCHEDULESIGN",
68
+ humanReadableType: "Schedule Sign",
69
+ scheduleSign
70
+ };
71
+ }
72
+ }
73
+ if (txBody.scheduleDelete) {
74
+ const scheduleDelete = this.parseScheduleDeleteFromProto(
75
+ txBody.scheduleDelete
76
+ );
77
+ if (scheduleDelete) {
78
+ return {
79
+ type: "SCHEDULEDELETE",
80
+ humanReadableType: "Schedule Delete",
81
+ scheduleDelete
82
+ };
83
+ }
84
+ }
85
+ return {};
86
+ }
87
+ /**
88
+ * Extract schedule data from Transaction internal fields
89
+ * This handles cases where data is stored in Transaction object internals
90
+ */
91
+ static parseFromTransactionInternals(transaction) {
92
+ try {
93
+ const tx = transaction;
94
+ if (hasTransactionType(transaction, "scheduleCreate")) {
95
+ const scheduleCreate = {
96
+ scheduledTransactionBody: Buffer.from(
97
+ tx._scheduledTransaction
98
+ ).toString("base64"),
99
+ memo: tx._scheduleMemo,
100
+ adminKey: tx._adminKey ? parseKey(tx._adminKey) : void 0,
101
+ payerAccountId: tx._payerAccountId?.toString(),
102
+ expirationTime: tx._expirationTime?.toString(),
103
+ waitForExpiry: tx._waitForExpiry || false
104
+ };
105
+ return {
106
+ type: "SCHEDULECREATE",
107
+ humanReadableType: "Schedule Create",
108
+ scheduleCreate
109
+ };
110
+ }
111
+ if (hasTransactionType(transaction, "scheduleSign")) {
112
+ const scheduleSign = {
113
+ scheduleId: tx._scheduleId.toString()
114
+ };
115
+ return {
116
+ type: "SCHEDULESIGN",
117
+ humanReadableType: "Schedule Sign",
118
+ scheduleSign
119
+ };
120
+ }
121
+ if (hasTransactionType(transaction, "scheduleDelete")) {
122
+ const scheduleDelete = {
123
+ scheduleId: tx._scheduleId.toString()
124
+ };
125
+ return {
126
+ type: "SCHEDULEDELETE",
127
+ humanReadableType: "Schedule Delete",
128
+ scheduleDelete
129
+ };
130
+ }
131
+ return {};
132
+ } catch (error) {
133
+ return {};
134
+ }
135
+ }
136
+ /**
137
+ * Parse Schedule Create from protobuf data
138
+ */
139
+ static parseScheduleCreateFromProto(body) {
140
+ if (!body) return void 0;
141
+ const data = {};
142
+ if (body.scheduledTransactionBody) {
143
+ const schedBytes = proto.SchedulableTransactionBody.encode(
144
+ proto.SchedulableTransactionBody.create(body.scheduledTransactionBody)
145
+ ).finish();
146
+ data.scheduledTransactionBody = Buffer.from(schedBytes).toString("base64");
147
+ }
148
+ if (body.memo) {
149
+ data.memo = body.memo;
150
+ }
151
+ if (body.adminKey) {
152
+ data.adminKey = parseKey(body.adminKey);
153
+ }
154
+ if (body.payerAccountID) {
155
+ data.payerAccountId = new AccountId(
156
+ body.payerAccountID.shardNum ?? 0,
157
+ body.payerAccountID.realmNum ?? 0,
158
+ body.payerAccountID.accountNum ?? 0
159
+ ).toString();
160
+ }
161
+ if (body.expirationTime?.seconds) {
162
+ data.expirationTime = `${Long.fromValue(
163
+ body.expirationTime.seconds
164
+ ).toString()}.${body.expirationTime.nanos ?? 0}`;
165
+ }
166
+ if (body.waitForExpiry !== void 0) {
167
+ data.waitForExpiry = body.waitForExpiry;
168
+ }
169
+ return data;
170
+ }
171
+ /**
172
+ * Parse Schedule Sign from protobuf data
173
+ */
174
+ static parseScheduleSignFromProto(body) {
175
+ if (!body) return void 0;
176
+ const data = {};
177
+ if (body.scheduleID) {
178
+ data.scheduleId = new ScheduleId(
179
+ body.scheduleID.shardNum ?? 0,
180
+ body.scheduleID.realmNum ?? 0,
181
+ body.scheduleID.scheduleNum ?? 0
182
+ ).toString();
183
+ }
184
+ return data;
185
+ }
186
+ /**
187
+ * Parse Schedule Delete from protobuf data
188
+ */
189
+ static parseScheduleDeleteFromProto(body) {
190
+ if (!body) return void 0;
191
+ const data = {};
192
+ if (body.scheduleID) {
193
+ data.scheduleId = new ScheduleId(
194
+ body.scheduleID.shardNum ?? 0,
195
+ body.scheduleID.realmNum ?? 0,
196
+ body.scheduleID.scheduleNum ?? 0
197
+ ).toString();
198
+ }
199
+ return data;
200
+ }
201
+ /**
202
+ * Legacy method: Parse schedule create transaction
203
+ * @deprecated Use parseScheduleTransaction instead
204
+ */
205
+ static parseScheduleCreate(transaction) {
206
+ try {
207
+ const result = this.parseScheduleTransaction(transaction);
208
+ return result.scheduleCreate || null;
209
+ } catch (error) {
210
+ console.warn("[ScheduleParser] Failed to parse schedule create:", error);
211
+ return null;
212
+ }
213
+ }
214
+ /**
215
+ * Legacy method: Parse schedule sign transaction
216
+ * @deprecated Use parseScheduleTransaction instead
217
+ */
218
+ static parseScheduleSign(transaction) {
219
+ try {
220
+ const result = this.parseScheduleTransaction(transaction);
221
+ return result.scheduleSign || null;
222
+ } catch (error) {
223
+ console.warn("[ScheduleParser] Failed to parse schedule sign:", error);
224
+ return null;
225
+ }
226
+ }
227
+ /**
228
+ * Legacy method: Parse schedule delete transaction
229
+ * @deprecated Use parseScheduleTransaction instead
230
+ */
231
+ static parseScheduleDelete(transaction) {
232
+ try {
233
+ const result = this.parseScheduleTransaction(transaction);
234
+ return result.scheduleDelete || null;
235
+ } catch (error) {
236
+ console.warn("[ScheduleParser] Failed to parse schedule delete:", error);
237
+ return null;
238
+ }
239
+ }
240
+ /**
241
+ * Parse schedule info from transaction body (for scheduled transactions)
242
+ */
243
+ static extractScheduleInfo(transaction) {
244
+ try {
245
+ const transactionBody = transaction._transactionBody;
246
+ if (transactionBody?.scheduleRef) {
247
+ return {
248
+ isScheduled: true,
249
+ scheduleRef: transactionBody.scheduleRef.toString()
250
+ };
251
+ }
252
+ const tx = transaction;
253
+ if (tx._scheduleId || tx.scheduleId) {
254
+ return {
255
+ isScheduled: true,
256
+ scheduleRef: (tx._scheduleId || tx.scheduleId)?.toString()
257
+ };
258
+ }
259
+ return { isScheduled: false };
260
+ } catch (error) {
261
+ return { isScheduled: false };
262
+ }
263
+ }
264
+ /**
265
+ * Parse a scheduled transaction body to extract the inner transaction
266
+ * This is used when a schedule contains another transaction to be executed
267
+ */
268
+ static parseScheduledTransactionBody(scheduledTxBytes) {
269
+ try {
270
+ let bytes;
271
+ if (scheduledTxBytes.startsWith("0x")) {
272
+ const hexString = scheduledTxBytes.slice(2);
273
+ bytes = new Uint8Array(Buffer.from(hexString, "hex"));
274
+ } else {
275
+ bytes = new Uint8Array(Buffer.from(scheduledTxBytes, "base64"));
276
+ }
277
+ const schedulableBody = proto.SchedulableTransactionBody.decode(bytes);
278
+ const txType = Object.keys(schedulableBody).find(
279
+ (key) => schedulableBody[key] !== null && key !== "transactionFee" && key !== "memo"
280
+ );
281
+ if (txType) {
282
+ return {
283
+ type: txType.toUpperCase(),
284
+ body: schedulableBody[txType],
285
+ memo: schedulableBody.memo,
286
+ transactionFee: schedulableBody.transactionFee?.toString()
287
+ };
288
+ }
289
+ return null;
290
+ } catch (error) {
291
+ console.warn(
292
+ "[ScheduleParser] Failed to parse scheduled transaction body:",
293
+ error
294
+ );
295
+ return null;
296
+ }
297
+ }
298
+ /**
299
+ * Parse Schedule Service transaction from Transaction object
300
+ * This is the unified entry point that delegates to the comprehensive parsing logic
301
+ */
302
+ static parseFromTransactionObject(transaction) {
303
+ return this.parseScheduleTransaction(transaction);
408
304
  }
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
305
  }
419
306
  export {
420
- getParserConfig,
421
- getSupportedTransactionTypes,
422
- isTransactionTypeSupported,
423
- transactionParserRegistry
307
+ ScheduleParser
424
308
  };
425
309
  //# sourceMappingURL=standards-sdk.es122.js.map