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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/README.md +13 -1
  2. package/dist/cjs/hcs-16/base-client.d.ts.map +1 -1
  3. package/dist/cjs/hcs-17/types.d.ts.map +1 -1
  4. package/dist/cjs/hcs-20/sdk.d.ts.map +1 -1
  5. package/dist/cjs/hcs-20/types.d.ts +9 -8
  6. package/dist/cjs/hcs-20/types.d.ts.map +1 -1
  7. package/dist/cjs/hcs-21/base-client.d.ts +4 -3
  8. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
  9. package/dist/cjs/hcs-21/index.d.ts +1 -0
  10. package/dist/cjs/hcs-21/index.d.ts.map +1 -1
  11. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
  12. package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
  13. package/dist/cjs/hcs-21/types.d.ts +135 -64
  14. package/dist/cjs/hcs-21/types.d.ts.map +1 -1
  15. package/dist/cjs/hcs-21/verify.d.ts +6 -0
  16. package/dist/cjs/hcs-21/verify.d.ts.map +1 -0
  17. package/dist/cjs/inscribe/inscriber.d.ts +1 -0
  18. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  19. package/dist/cjs/inscribe/quote-cache.d.ts.map +1 -1
  20. package/dist/cjs/services/registry-broker/client.d.ts +4 -3
  21. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  22. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  23. package/dist/cjs/services/registry-broker/schemas.d.ts +16 -16
  24. package/dist/cjs/standards-sdk.cjs +2 -2
  25. package/dist/cjs/standards-sdk.cjs.map +1 -1
  26. package/dist/cjs/utils/dynamic-import.d.ts +1 -0
  27. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  28. package/dist/es/hcs-16/base-client.d.ts.map +1 -1
  29. package/dist/es/hcs-17/types.d.ts.map +1 -1
  30. package/dist/es/hcs-20/sdk.d.ts.map +1 -1
  31. package/dist/es/hcs-20/types.d.ts +9 -8
  32. package/dist/es/hcs-20/types.d.ts.map +1 -1
  33. package/dist/es/hcs-21/base-client.d.ts +4 -3
  34. package/dist/es/hcs-21/base-client.d.ts.map +1 -1
  35. package/dist/es/hcs-21/index.d.ts +1 -0
  36. package/dist/es/hcs-21/index.d.ts.map +1 -1
  37. package/dist/es/hcs-21/sdk.d.ts.map +1 -1
  38. package/dist/es/hcs-21/tx.d.ts.map +1 -1
  39. package/dist/es/hcs-21/types.d.ts +135 -64
  40. package/dist/es/hcs-21/types.d.ts.map +1 -1
  41. package/dist/es/hcs-21/verify.d.ts +6 -0
  42. package/dist/es/hcs-21/verify.d.ts.map +1 -0
  43. package/dist/es/inscribe/inscriber.d.ts +1 -0
  44. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  45. package/dist/es/inscribe/quote-cache.d.ts.map +1 -1
  46. package/dist/es/services/registry-broker/client.d.ts +4 -3
  47. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  48. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  49. package/dist/es/services/registry-broker/schemas.d.ts +16 -16
  50. package/dist/es/standards-sdk.es.js +58 -50
  51. package/dist/es/standards-sdk.es.js.map +1 -1
  52. package/dist/es/standards-sdk.es10.js +2 -2
  53. package/dist/es/standards-sdk.es100.js +26 -229
  54. package/dist/es/standards-sdk.es100.js.map +1 -1
  55. package/dist/es/standards-sdk.es101.js +228 -109
  56. package/dist/es/standards-sdk.es101.js.map +1 -1
  57. package/dist/es/standards-sdk.es102.js +94 -15
  58. package/dist/es/standards-sdk.es102.js.map +1 -1
  59. package/dist/es/standards-sdk.es103.js +30 -80
  60. package/dist/es/standards-sdk.es103.js.map +1 -1
  61. package/dist/es/standards-sdk.es104.js +80 -27
  62. package/dist/es/standards-sdk.es104.js.map +1 -1
  63. package/dist/es/standards-sdk.es105.js +25 -136
  64. package/dist/es/standards-sdk.es105.js.map +1 -1
  65. package/dist/es/standards-sdk.es106.js +140 -27
  66. package/dist/es/standards-sdk.es106.js.map +1 -1
  67. package/dist/es/standards-sdk.es107.js +27 -20
  68. package/dist/es/standards-sdk.es107.js.map +1 -1
  69. package/dist/es/standards-sdk.es108.js +18 -156
  70. package/dist/es/standards-sdk.es108.js.map +1 -1
  71. package/dist/es/standards-sdk.es109.js +148 -196
  72. package/dist/es/standards-sdk.es109.js.map +1 -1
  73. package/dist/es/standards-sdk.es110.js +160 -747
  74. package/dist/es/standards-sdk.es110.js.map +1 -1
  75. package/dist/es/standards-sdk.es111.js +786 -9
  76. package/dist/es/standards-sdk.es111.js.map +1 -1
  77. package/dist/es/standards-sdk.es112.js +13 -567
  78. package/dist/es/standards-sdk.es112.js.map +1 -1
  79. package/dist/es/standards-sdk.es113.js +541 -576
  80. package/dist/es/standards-sdk.es113.js.map +1 -1
  81. package/dist/es/standards-sdk.es114.js +601 -12
  82. package/dist/es/standards-sdk.es114.js.map +1 -1
  83. package/dist/es/standards-sdk.es115.js +13 -2
  84. package/dist/es/standards-sdk.es115.js.map +1 -1
  85. package/dist/es/standards-sdk.es116.js +2 -83
  86. package/dist/es/standards-sdk.es116.js.map +1 -1
  87. package/dist/es/standards-sdk.es117.js +80 -36
  88. package/dist/es/standards-sdk.es117.js.map +1 -1
  89. package/dist/es/standards-sdk.es118.js +39 -2
  90. package/dist/es/standards-sdk.es118.js.map +1 -1
  91. package/dist/es/standards-sdk.es119.js +2 -223
  92. package/dist/es/standards-sdk.es119.js.map +1 -1
  93. package/dist/es/standards-sdk.es12.js +1 -1
  94. package/dist/es/standards-sdk.es120.js +193 -1110
  95. package/dist/es/standards-sdk.es120.js.map +1 -1
  96. package/dist/es/standards-sdk.es121.js +1059 -225
  97. package/dist/es/standards-sdk.es121.js.map +1 -1
  98. package/dist/es/standards-sdk.es122.js +303 -419
  99. package/dist/es/standards-sdk.es122.js.map +1 -1
  100. package/dist/es/standards-sdk.es123.js +418 -351
  101. package/dist/es/standards-sdk.es123.js.map +1 -1
  102. package/dist/es/standards-sdk.es124.js +348 -785
  103. package/dist/es/standards-sdk.es124.js.map +1 -1
  104. package/dist/es/standards-sdk.es125.js +767 -183
  105. package/dist/es/standards-sdk.es125.js.map +1 -1
  106. package/dist/es/standards-sdk.es126.js +153 -1512
  107. package/dist/es/standards-sdk.es126.js.map +1 -1
  108. package/dist/es/standards-sdk.es127.js +1373 -1987
  109. package/dist/es/standards-sdk.es127.js.map +1 -1
  110. package/dist/es/standards-sdk.es128.js +2208 -67
  111. package/dist/es/standards-sdk.es128.js.map +1 -1
  112. package/dist/es/standards-sdk.es129.js +59 -79
  113. package/dist/es/standards-sdk.es129.js.map +1 -1
  114. package/dist/es/standards-sdk.es13.js +1 -1
  115. package/dist/es/standards-sdk.es130.js +80 -152
  116. package/dist/es/standards-sdk.es130.js.map +1 -1
  117. package/dist/es/standards-sdk.es131.js +159 -7
  118. package/dist/es/standards-sdk.es131.js.map +1 -1
  119. package/dist/es/standards-sdk.es132.js +7 -86
  120. package/dist/es/standards-sdk.es132.js.map +1 -1
  121. package/dist/es/standards-sdk.es133.js +65 -44
  122. package/dist/es/standards-sdk.es133.js.map +1 -1
  123. package/dist/es/standards-sdk.es134.js +65 -28
  124. package/dist/es/standards-sdk.es134.js.map +1 -1
  125. package/dist/es/standards-sdk.es135.js +69 -125
  126. package/dist/es/standards-sdk.es135.js.map +1 -1
  127. package/dist/es/standards-sdk.es136.js +28 -42
  128. package/dist/es/standards-sdk.es136.js.map +1 -1
  129. package/dist/es/standards-sdk.es137.js +132 -50
  130. package/dist/es/standards-sdk.es137.js.map +1 -1
  131. package/dist/es/standards-sdk.es138.js +36 -58
  132. package/dist/es/standards-sdk.es138.js.map +1 -1
  133. package/dist/es/standards-sdk.es139.js +56 -766
  134. package/dist/es/standards-sdk.es139.js.map +1 -1
  135. package/dist/es/standards-sdk.es14.js +1 -1
  136. package/dist/es/standards-sdk.es140.js +746 -12254
  137. package/dist/es/standards-sdk.es140.js.map +1 -1
  138. package/dist/es/standards-sdk.es141.js +12235 -133
  139. package/dist/es/standards-sdk.es141.js.map +1 -1
  140. package/dist/es/standards-sdk.es142.js +13 -318
  141. package/dist/es/standards-sdk.es142.js.map +1 -1
  142. package/dist/es/standards-sdk.es143.js +120 -294
  143. package/dist/es/standards-sdk.es143.js.map +1 -1
  144. package/dist/es/standards-sdk.es144.js +191 -322
  145. package/dist/es/standards-sdk.es144.js.map +1 -1
  146. package/dist/es/standards-sdk.es145.js +294 -279
  147. package/dist/es/standards-sdk.es145.js.map +1 -1
  148. package/dist/es/standards-sdk.es146.js +440 -63
  149. package/dist/es/standards-sdk.es146.js.map +1 -1
  150. package/dist/es/standards-sdk.es147.js +327 -13
  151. package/dist/es/standards-sdk.es147.js.map +1 -1
  152. package/dist/es/standards-sdk.es148.js +79 -0
  153. package/dist/es/standards-sdk.es148.js.map +1 -0
  154. package/dist/es/standards-sdk.es15.js +1 -1
  155. package/dist/es/standards-sdk.es16.js +1 -1
  156. package/dist/es/standards-sdk.es17.js +5 -11
  157. package/dist/es/standards-sdk.es17.js.map +1 -1
  158. package/dist/es/standards-sdk.es19.js +12 -17
  159. package/dist/es/standards-sdk.es19.js.map +1 -1
  160. package/dist/es/standards-sdk.es2.js +26 -72
  161. package/dist/es/standards-sdk.es2.js.map +1 -1
  162. package/dist/es/standards-sdk.es20.js +9 -14
  163. package/dist/es/standards-sdk.es20.js.map +1 -1
  164. package/dist/es/standards-sdk.es21.js +1 -1
  165. package/dist/es/standards-sdk.es22.js +1 -1
  166. package/dist/es/standards-sdk.es23.js +1 -1
  167. package/dist/es/standards-sdk.es24.js +1 -1
  168. package/dist/es/standards-sdk.es25.js +1 -1
  169. package/dist/es/standards-sdk.es26.js +1 -1
  170. package/dist/es/standards-sdk.es27.js +1 -1
  171. package/dist/es/standards-sdk.es28.js +12 -17
  172. package/dist/es/standards-sdk.es28.js.map +1 -1
  173. package/dist/es/standards-sdk.es3.js +2 -2
  174. package/dist/es/standards-sdk.es31.js +2 -2
  175. package/dist/es/standards-sdk.es32.js +4 -4
  176. package/dist/es/standards-sdk.es33.js +1 -1
  177. package/dist/es/standards-sdk.es36.js +6 -12
  178. package/dist/es/standards-sdk.es36.js.map +1 -1
  179. package/dist/es/standards-sdk.es37.js +4 -4
  180. package/dist/es/standards-sdk.es38.js +2 -2
  181. package/dist/es/standards-sdk.es39.js +2 -2
  182. package/dist/es/standards-sdk.es40.js +1 -1
  183. package/dist/es/standards-sdk.es41.js +1 -1
  184. package/dist/es/standards-sdk.es42.js +2 -2
  185. package/dist/es/standards-sdk.es47.js +1 -1
  186. package/dist/es/standards-sdk.es5.js +2 -2
  187. package/dist/es/standards-sdk.es52.js +1 -1
  188. package/dist/es/standards-sdk.es54.js +1 -1
  189. package/dist/es/standards-sdk.es57.js +2 -2
  190. package/dist/es/standards-sdk.es59.js +1 -1
  191. package/dist/es/standards-sdk.es6.js +2 -2
  192. package/dist/es/standards-sdk.es60.js +1 -1
  193. package/dist/es/standards-sdk.es61.js +7 -12
  194. package/dist/es/standards-sdk.es61.js.map +1 -1
  195. package/dist/es/standards-sdk.es63.js +1 -1
  196. package/dist/es/standards-sdk.es65.js +2 -2
  197. package/dist/es/standards-sdk.es66.js +3 -3
  198. package/dist/es/standards-sdk.es69.js +2 -2
  199. package/dist/es/standards-sdk.es7.js +2 -2
  200. package/dist/es/standards-sdk.es70.js +3 -3
  201. package/dist/es/standards-sdk.es71.js +2 -2
  202. package/dist/es/standards-sdk.es72.js +1 -1
  203. package/dist/es/standards-sdk.es73.js.map +1 -1
  204. package/dist/es/standards-sdk.es75.js +2 -2
  205. package/dist/es/standards-sdk.es77.js +5 -3
  206. package/dist/es/standards-sdk.es77.js.map +1 -1
  207. package/dist/es/standards-sdk.es78.js +4 -10
  208. package/dist/es/standards-sdk.es78.js.map +1 -1
  209. package/dist/es/standards-sdk.es79.js +1 -1
  210. package/dist/es/standards-sdk.es8.js +1 -1
  211. package/dist/es/standards-sdk.es80.js +26 -15
  212. package/dist/es/standards-sdk.es80.js.map +1 -1
  213. package/dist/es/standards-sdk.es82.js +12 -4
  214. package/dist/es/standards-sdk.es82.js.map +1 -1
  215. package/dist/es/standards-sdk.es83.js +7 -6
  216. package/dist/es/standards-sdk.es83.js.map +1 -1
  217. package/dist/es/standards-sdk.es84.js +7 -5
  218. package/dist/es/standards-sdk.es84.js.map +1 -1
  219. package/dist/es/standards-sdk.es86.js +55 -21
  220. package/dist/es/standards-sdk.es86.js.map +1 -1
  221. package/dist/es/standards-sdk.es87.js +22 -75
  222. package/dist/es/standards-sdk.es87.js.map +1 -1
  223. package/dist/es/standards-sdk.es88.js +45 -30
  224. package/dist/es/standards-sdk.es88.js.map +1 -1
  225. package/dist/es/standards-sdk.es89.js +57 -22
  226. package/dist/es/standards-sdk.es89.js.map +1 -1
  227. package/dist/es/standards-sdk.es90.js +28 -23
  228. package/dist/es/standards-sdk.es90.js.map +1 -1
  229. package/dist/es/standards-sdk.es91.js +23 -167
  230. package/dist/es/standards-sdk.es91.js.map +1 -1
  231. package/dist/es/standards-sdk.es92.js +158 -119
  232. package/dist/es/standards-sdk.es92.js.map +1 -1
  233. package/dist/es/standards-sdk.es93.js +68 -95
  234. package/dist/es/standards-sdk.es93.js.map +1 -1
  235. package/dist/es/standards-sdk.es94.js +136 -119
  236. package/dist/es/standards-sdk.es94.js.map +1 -1
  237. package/dist/es/standards-sdk.es95.js +139 -39
  238. package/dist/es/standards-sdk.es95.js.map +1 -1
  239. package/dist/es/standards-sdk.es96.js +42 -257
  240. package/dist/es/standards-sdk.es96.js.map +1 -1
  241. package/dist/es/standards-sdk.es97.js +243 -80
  242. package/dist/es/standards-sdk.es97.js.map +1 -1
  243. package/dist/es/standards-sdk.es98.js +47 -48
  244. package/dist/es/standards-sdk.es98.js.map +1 -1
  245. package/dist/es/standards-sdk.es99.js +100 -28
  246. package/dist/es/standards-sdk.es99.js.map +1 -1
  247. package/dist/es/utils/dynamic-import.d.ts +1 -0
  248. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  249. package/package.json +63 -65
@@ -1,425 +1,309 @@
1
- import { HTSParser } from "./standards-sdk.es120.js";
2
- import { HCSParser } from "./standards-sdk.es141.js";
3
- import { CryptoParser } from "./standards-sdk.es143.js";
4
- import { FileParser } from "./standards-sdk.es142.js";
5
- import { SCSParser } from "./standards-sdk.es144.js";
6
- import { ScheduleParser } from "./standards-sdk.es121.js";
7
- import { UtilParser } from "./standards-sdk.es145.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