@hashgraphonline/standards-sdk 0.0.107 → 0.0.108-canary.1

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 (269) hide show
  1. package/dist/es/standards-sdk.es100.js +24 -60
  2. package/dist/es/standards-sdk.es100.js.map +1 -1
  3. package/dist/es/standards-sdk.es101.js +21 -6
  4. package/dist/es/standards-sdk.es101.js.map +1 -1
  5. package/dist/es/standards-sdk.es102.js +41 -12
  6. package/dist/es/standards-sdk.es102.js.map +1 -1
  7. package/dist/es/standards-sdk.es103.js +18 -7
  8. package/dist/es/standards-sdk.es103.js.map +1 -1
  9. package/dist/es/standards-sdk.es104.js +60 -44
  10. package/dist/es/standards-sdk.es104.js.map +1 -1
  11. package/dist/es/standards-sdk.es105.js +1289 -2
  12. package/dist/es/standards-sdk.es105.js.map +1 -1
  13. package/dist/es/standards-sdk.es106.js +28 -132
  14. package/dist/es/standards-sdk.es106.js.map +1 -1
  15. package/dist/es/standards-sdk.es107.js +6 -172
  16. package/dist/es/standards-sdk.es107.js.map +1 -1
  17. package/dist/es/standards-sdk.es108.js +159 -13
  18. package/dist/es/standards-sdk.es108.js.map +1 -1
  19. package/dist/es/standards-sdk.es109.js +793 -13
  20. package/dist/es/standards-sdk.es109.js.map +1 -1
  21. package/dist/es/standards-sdk.es110.js +172 -30
  22. package/dist/es/standards-sdk.es110.js.map +1 -1
  23. package/dist/es/standards-sdk.es111.js +142 -14
  24. package/dist/es/standards-sdk.es111.js.map +1 -1
  25. package/dist/es/standards-sdk.es112.js +3 -4
  26. package/dist/es/standards-sdk.es112.js.map +1 -1
  27. package/dist/es/standards-sdk.es113.js +2 -4
  28. package/dist/es/standards-sdk.es113.js.map +1 -1
  29. package/dist/es/standards-sdk.es114.js +2 -16
  30. package/dist/es/standards-sdk.es114.js.map +1 -1
  31. package/dist/es/standards-sdk.es115.js +33 -4
  32. package/dist/es/standards-sdk.es115.js.map +1 -1
  33. package/dist/es/standards-sdk.es116.js +33 -39
  34. package/dist/es/standards-sdk.es116.js.map +1 -1
  35. package/dist/es/standards-sdk.es117.js +9 -40
  36. package/dist/es/standards-sdk.es117.js.map +1 -1
  37. package/dist/es/standards-sdk.es118.js +33 -36
  38. package/dist/es/standards-sdk.es118.js.map +1 -1
  39. package/dist/es/standards-sdk.es119.js +17 -74
  40. package/dist/es/standards-sdk.es119.js.map +1 -1
  41. package/dist/es/standards-sdk.es120.js +27 -3
  42. package/dist/es/standards-sdk.es120.js.map +1 -1
  43. package/dist/es/standards-sdk.es121.js +26 -2
  44. package/dist/es/standards-sdk.es121.js.map +1 -1
  45. package/dist/es/standards-sdk.es122.js +38 -2
  46. package/dist/es/standards-sdk.es122.js.map +1 -1
  47. package/dist/es/standards-sdk.es123.js +96 -29
  48. package/dist/es/standards-sdk.es123.js.map +1 -1
  49. package/dist/es/standards-sdk.es124.js +2 -33
  50. package/dist/es/standards-sdk.es124.js.map +1 -1
  51. package/dist/es/standards-sdk.es125.js +16 -9
  52. package/dist/es/standards-sdk.es125.js.map +1 -1
  53. package/dist/es/standards-sdk.es126.js +405 -30
  54. package/dist/es/standards-sdk.es126.js.map +1 -1
  55. package/dist/es/standards-sdk.es127.js +2285 -0
  56. package/dist/es/standards-sdk.es127.js.map +1 -0
  57. package/dist/es/standards-sdk.es128.js +7139 -0
  58. package/dist/es/standards-sdk.es128.js.map +1 -0
  59. package/dist/es/standards-sdk.es129.js +13 -0
  60. package/dist/es/standards-sdk.es129.js.map +1 -0
  61. package/dist/es/standards-sdk.es13.js +3 -3
  62. package/dist/es/standards-sdk.es130.js +14 -0
  63. package/dist/es/standards-sdk.es130.js.map +1 -0
  64. package/dist/es/standards-sdk.es131.js +21 -0
  65. package/dist/es/standards-sdk.es131.js.map +1 -0
  66. package/dist/es/standards-sdk.es132.js +9 -0
  67. package/dist/es/standards-sdk.es132.js.map +1 -0
  68. package/dist/es/standards-sdk.es133.js +12 -0
  69. package/dist/es/standards-sdk.es133.js.map +1 -0
  70. package/dist/es/standards-sdk.es15.js +1 -1
  71. package/dist/es/standards-sdk.es18.js +2 -2
  72. package/dist/es/standards-sdk.es19.js +216 -386
  73. package/dist/es/standards-sdk.es19.js.map +1 -1
  74. package/dist/es/standards-sdk.es20.js +2 -2
  75. package/dist/es/standards-sdk.es21.js +3 -3
  76. package/dist/es/standards-sdk.es24.js +10 -10
  77. package/dist/es/standards-sdk.es25.js +5 -1769
  78. package/dist/es/standards-sdk.es25.js.map +1 -1
  79. package/dist/es/standards-sdk.es26.js +36 -3
  80. package/dist/es/standards-sdk.es26.js.map +1 -1
  81. package/dist/es/standards-sdk.es27.js +48 -4168
  82. package/dist/es/standards-sdk.es27.js.map +1 -1
  83. package/dist/es/standards-sdk.es28.js +122 -5543
  84. package/dist/es/standards-sdk.es28.js.map +1 -1
  85. package/dist/es/standards-sdk.es29.js +500 -8
  86. package/dist/es/standards-sdk.es29.js.map +1 -1
  87. package/dist/es/standards-sdk.es30.js +109 -2
  88. package/dist/es/standards-sdk.es30.js.map +1 -1
  89. package/dist/es/standards-sdk.es31.js +66 -36
  90. package/dist/es/standards-sdk.es31.js.map +1 -1
  91. package/dist/es/standards-sdk.es32.js +63 -47
  92. package/dist/es/standards-sdk.es32.js.map +1 -1
  93. package/dist/es/standards-sdk.es33.js +27 -5
  94. package/dist/es/standards-sdk.es33.js.map +1 -1
  95. package/dist/es/standards-sdk.es34.js +9 -8
  96. package/dist/es/standards-sdk.es34.js.map +1 -1
  97. package/dist/es/standards-sdk.es35.js +10 -2
  98. package/dist/es/standards-sdk.es35.js.map +1 -1
  99. package/dist/es/standards-sdk.es36.js +7167 -78
  100. package/dist/es/standards-sdk.es36.js.map +1 -1
  101. package/dist/es/standards-sdk.es37.js +3 -2
  102. package/dist/es/standards-sdk.es37.js.map +1 -1
  103. package/dist/es/standards-sdk.es38.js +8 -15
  104. package/dist/es/standards-sdk.es38.js.map +1 -1
  105. package/dist/es/standards-sdk.es39.js +2 -409
  106. package/dist/es/standards-sdk.es39.js.map +1 -1
  107. package/dist/es/standards-sdk.es40.js +4167 -2281
  108. package/dist/es/standards-sdk.es40.js.map +1 -1
  109. package/dist/es/standards-sdk.es41.js +399 -144
  110. package/dist/es/standards-sdk.es41.js.map +1 -1
  111. package/dist/es/standards-sdk.es42.js +2 -23
  112. package/dist/es/standards-sdk.es42.js.map +1 -1
  113. package/dist/es/standards-sdk.es43.js +112 -166
  114. package/dist/es/standards-sdk.es43.js.map +1 -1
  115. package/dist/es/standards-sdk.es44.js +350 -77
  116. package/dist/es/standards-sdk.es44.js.map +1 -1
  117. package/dist/es/standards-sdk.es45.js +4 -193
  118. package/dist/es/standards-sdk.es45.js.map +1 -1
  119. package/dist/es/standards-sdk.es46.js +158 -417
  120. package/dist/es/standards-sdk.es46.js.map +1 -1
  121. package/dist/es/standards-sdk.es47.js +75 -19
  122. package/dist/es/standards-sdk.es47.js.map +1 -1
  123. package/dist/es/standards-sdk.es48.js +103 -128
  124. package/dist/es/standards-sdk.es48.js.map +1 -1
  125. package/dist/es/standards-sdk.es49.js +48 -14
  126. package/dist/es/standards-sdk.es49.js.map +1 -1
  127. package/dist/es/standards-sdk.es5.js +1 -1
  128. package/dist/es/standards-sdk.es50.js +9 -28
  129. package/dist/es/standards-sdk.es50.js.map +1 -1
  130. package/dist/es/standards-sdk.es51.js +91 -23
  131. package/dist/es/standards-sdk.es51.js.map +1 -1
  132. package/dist/es/standards-sdk.es52.js +3 -20
  133. package/dist/es/standards-sdk.es52.js.map +1 -1
  134. package/dist/es/standards-sdk.es53.js +2 -44
  135. package/dist/es/standards-sdk.es53.js.map +1 -1
  136. package/dist/es/standards-sdk.es54.js +108 -13
  137. package/dist/es/standards-sdk.es54.js.map +1 -1
  138. package/dist/es/standards-sdk.es55.js +71 -58
  139. package/dist/es/standards-sdk.es55.js.map +1 -1
  140. package/dist/es/standards-sdk.es56.js +4 -1287
  141. package/dist/es/standards-sdk.es56.js.map +1 -1
  142. package/dist/es/standards-sdk.es57.js +4 -147
  143. package/dist/es/standards-sdk.es57.js.map +1 -1
  144. package/dist/es/standards-sdk.es58.js +211 -74
  145. package/dist/es/standards-sdk.es58.js.map +1 -1
  146. package/dist/es/standards-sdk.es59.js +55 -29
  147. package/dist/es/standards-sdk.es59.js.map +1 -1
  148. package/dist/es/standards-sdk.es60.js +69 -6
  149. package/dist/es/standards-sdk.es60.js.map +1 -1
  150. package/dist/es/standards-sdk.es61.js +3 -158
  151. package/dist/es/standards-sdk.es61.js.map +1 -1
  152. package/dist/es/standards-sdk.es62.js +41 -792
  153. package/dist/es/standards-sdk.es62.js.map +1 -1
  154. package/dist/es/standards-sdk.es63.js +3 -143
  155. package/dist/es/standards-sdk.es63.js.map +1 -1
  156. package/dist/es/standards-sdk.es64.js +159 -22
  157. package/dist/es/standards-sdk.es64.js.map +1 -1
  158. package/dist/es/standards-sdk.es65.js +29 -23
  159. package/dist/es/standards-sdk.es65.js.map +1 -1
  160. package/dist/es/standards-sdk.es66.js +61 -36
  161. package/dist/es/standards-sdk.es66.js.map +1 -1
  162. package/dist/es/standards-sdk.es67.js +46 -17
  163. package/dist/es/standards-sdk.es67.js.map +1 -1
  164. package/dist/es/standards-sdk.es68.js +10 -3
  165. package/dist/es/standards-sdk.es68.js.map +1 -1
  166. package/dist/es/standards-sdk.es69.js +64 -3
  167. package/dist/es/standards-sdk.es69.js.map +1 -1
  168. package/dist/es/standards-sdk.es7.js +4 -4
  169. package/dist/es/standards-sdk.es70.js +6 -7136
  170. package/dist/es/standards-sdk.es70.js.map +1 -1
  171. package/dist/es/standards-sdk.es71.js +14 -9
  172. package/dist/es/standards-sdk.es71.js.map +1 -1
  173. package/dist/es/standards-sdk.es72.js +7 -11
  174. package/dist/es/standards-sdk.es72.js.map +1 -1
  175. package/dist/es/standards-sdk.es73.js +44 -17
  176. package/dist/es/standards-sdk.es73.js.map +1 -1
  177. package/dist/es/standards-sdk.es74.js +2 -6
  178. package/dist/es/standards-sdk.es74.js.map +1 -1
  179. package/dist/es/standards-sdk.es75.js +136 -9
  180. package/dist/es/standards-sdk.es75.js.map +1 -1
  181. package/dist/es/standards-sdk.es76.js +156 -403
  182. package/dist/es/standards-sdk.es76.js.map +1 -1
  183. package/dist/es/standards-sdk.es77.js +2 -2
  184. package/dist/es/standards-sdk.es77.js.map +1 -1
  185. package/dist/es/standards-sdk.es78.js +13 -120
  186. package/dist/es/standards-sdk.es78.js.map +1 -1
  187. package/dist/es/standards-sdk.es79.js +12 -363
  188. package/dist/es/standards-sdk.es79.js.map +1 -1
  189. package/dist/es/standards-sdk.es8.js +3 -3
  190. package/dist/es/standards-sdk.es80.js +30 -4
  191. package/dist/es/standards-sdk.es80.js.map +1 -1
  192. package/dist/es/standards-sdk.es81.js +14 -178
  193. package/dist/es/standards-sdk.es81.js.map +1 -1
  194. package/dist/es/standards-sdk.es82.js +3 -80
  195. package/dist/es/standards-sdk.es82.js.map +1 -1
  196. package/dist/es/standards-sdk.es83.js +3 -113
  197. package/dist/es/standards-sdk.es83.js.map +1 -1
  198. package/dist/es/standards-sdk.es84.js +14 -50
  199. package/dist/es/standards-sdk.es84.js.map +1 -1
  200. package/dist/es/standards-sdk.es85.js +4 -9
  201. package/dist/es/standards-sdk.es85.js.map +1 -1
  202. package/dist/es/standards-sdk.es86.js +38 -96
  203. package/dist/es/standards-sdk.es86.js.map +1 -1
  204. package/dist/es/standards-sdk.es87.js +40 -4
  205. package/dist/es/standards-sdk.es87.js.map +1 -1
  206. package/dist/es/standards-sdk.es88.js +37 -2
  207. package/dist/es/standards-sdk.es88.js.map +1 -1
  208. package/dist/es/standards-sdk.es89.js +70 -105
  209. package/dist/es/standards-sdk.es89.js.map +1 -1
  210. package/dist/es/standards-sdk.es9.js +1 -1
  211. package/dist/es/standards-sdk.es90.js +80 -70
  212. package/dist/es/standards-sdk.es90.js.map +1 -1
  213. package/dist/es/standards-sdk.es91.js +22 -5
  214. package/dist/es/standards-sdk.es91.js.map +1 -1
  215. package/dist/es/standards-sdk.es92.js +147 -4
  216. package/dist/es/standards-sdk.es92.js.map +1 -1
  217. package/dist/es/standards-sdk.es93.js +78 -208
  218. package/dist/es/standards-sdk.es93.js.map +1 -1
  219. package/dist/es/standards-sdk.es94.js +189 -52
  220. package/dist/es/standards-sdk.es94.js.map +1 -1
  221. package/dist/es/standards-sdk.es95.js +437 -68
  222. package/dist/es/standards-sdk.es95.js.map +1 -1
  223. package/dist/es/standards-sdk.es96.js +20 -27
  224. package/dist/es/standards-sdk.es96.js.map +1 -1
  225. package/dist/es/standards-sdk.es97.js +131 -55
  226. package/dist/es/standards-sdk.es97.js.map +1 -1
  227. package/dist/es/standards-sdk.es98.js +14 -46
  228. package/dist/es/standards-sdk.es98.js.map +1 -1
  229. package/dist/es/standards-sdk.es99.js +28 -9
  230. package/dist/es/standards-sdk.es99.js.map +1 -1
  231. package/dist/es/utils/parsers/crypto-parser.d.ts +10 -0
  232. package/dist/es/utils/parsers/crypto-parser.d.ts.map +1 -0
  233. package/dist/es/utils/parsers/file-parser.d.ts +9 -0
  234. package/dist/es/utils/parsers/file-parser.d.ts.map +1 -0
  235. package/dist/es/utils/parsers/hcs-parser.d.ts +9 -0
  236. package/dist/es/utils/parsers/hcs-parser.d.ts.map +1 -0
  237. package/dist/es/utils/parsers/hts-parser.d.ts +20 -0
  238. package/dist/es/utils/parsers/hts-parser.d.ts.map +1 -0
  239. package/dist/es/utils/parsers/parser-utils.d.ts +3 -0
  240. package/dist/es/utils/parsers/parser-utils.d.ts.map +1 -0
  241. package/dist/es/utils/parsers/scs-parser.d.ts +6 -0
  242. package/dist/es/utils/parsers/scs-parser.d.ts.map +1 -0
  243. package/dist/es/utils/parsers/util-parser.d.ts +6 -0
  244. package/dist/es/utils/parsers/util-parser.d.ts.map +1 -0
  245. package/dist/es/utils/transaction-parser-types.d.ts +226 -0
  246. package/dist/es/utils/transaction-parser-types.d.ts.map +1 -0
  247. package/dist/es/utils/transaction-parser.d.ts +1 -178
  248. package/dist/es/utils/transaction-parser.d.ts.map +1 -1
  249. package/dist/umd/standards-sdk.umd.js +1 -1
  250. package/dist/umd/standards-sdk.umd.js.map +1 -1
  251. package/dist/umd/utils/parsers/crypto-parser.d.ts +10 -0
  252. package/dist/umd/utils/parsers/crypto-parser.d.ts.map +1 -0
  253. package/dist/umd/utils/parsers/file-parser.d.ts +9 -0
  254. package/dist/umd/utils/parsers/file-parser.d.ts.map +1 -0
  255. package/dist/umd/utils/parsers/hcs-parser.d.ts +9 -0
  256. package/dist/umd/utils/parsers/hcs-parser.d.ts.map +1 -0
  257. package/dist/umd/utils/parsers/hts-parser.d.ts +20 -0
  258. package/dist/umd/utils/parsers/hts-parser.d.ts.map +1 -0
  259. package/dist/umd/utils/parsers/parser-utils.d.ts +3 -0
  260. package/dist/umd/utils/parsers/parser-utils.d.ts.map +1 -0
  261. package/dist/umd/utils/parsers/scs-parser.d.ts +6 -0
  262. package/dist/umd/utils/parsers/scs-parser.d.ts.map +1 -0
  263. package/dist/umd/utils/parsers/util-parser.d.ts +6 -0
  264. package/dist/umd/utils/parsers/util-parser.d.ts.map +1 -0
  265. package/dist/umd/utils/transaction-parser-types.d.ts +226 -0
  266. package/dist/umd/utils/transaction-parser-types.d.ts.map +1 -0
  267. package/dist/umd/utils/transaction-parser.d.ts +1 -178
  268. package/dist/umd/utils/transaction-parser.d.ts.map +1 -1
  269. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es19.js","sources":["../../src/utils/transaction-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { Buffer } from 'buffer';\nimport {\n AccountId,\n ContractId,\n TokenId,\n Hbar,\n HbarUnit,\n Long,\n} from '@hashgraph/sdk';\nimport { ethers } from 'ethers';\n\n/**\n * Types for transaction parsing results\n */\nexport type AccountAmount = {\n accountId: string;\n amount: string;\n isDecimal?: boolean;\n};\n\nexport type TokenAmount = {\n tokenId: string;\n accountId: string;\n amount: number;\n};\n\nexport type ContractCallData = {\n contractId: string;\n gas: number;\n amount: number;\n functionParameters?: string;\n functionName?: string;\n};\n\nexport type TokenMintData = {\n tokenId: string;\n amount: number;\n metadata?: string[];\n};\n\nexport type TokenBurnData = {\n tokenId: string;\n amount: number;\n serialNumbers?: number[];\n};\n\nexport type FixedFeeData = {\n amount: string;\n denominatingTokenId?: string;\n};\n\nexport type FractionalFeeData = {\n numerator: string;\n denominator: string;\n minimumAmount: string;\n maximumAmount: string;\n netOfTransfers: boolean;\n};\n\nexport type RoyaltyFeeData = {\n numerator: string;\n denominator: string;\n fallbackFee?: FixedFeeData;\n};\n\nexport type CustomFeeData = {\n feeCollectorAccountId: string;\n feeType: 'FIXED_FEE' | 'FRACTIONAL_FEE' | 'ROYALTY_FEE';\n fixedFee?: FixedFeeData;\n fractionalFee?: FractionalFeeData;\n royaltyFee?: RoyaltyFeeData;\n allCollectorsAreExempt?: boolean;\n};\n\nexport type TokenCreationData = {\n tokenName?: string;\n tokenSymbol?: string;\n initialSupply?: string;\n decimals?: number;\n maxSupply?: string;\n tokenType?: string;\n supplyType?: string;\n memo?: string;\n treasuryAccountId?: string;\n adminKey?: string;\n kycKey?: string;\n freezeKey?: string;\n wipeKey?: string;\n supplyKey?: string;\n feeScheduleKey?: string;\n pauseKey?: string;\n autoRenewAccount?: string;\n autoRenewPeriod?: string;\n customFees?: CustomFeeData[];\n};\n\nexport type ConsensusCreateTopicData = {\n memo?: string;\n adminKey?: string;\n submitKey?: string;\n autoRenewPeriod?: string;\n autoRenewAccountId?: string;\n};\n\nexport type ConsensusSubmitMessageData = {\n topicId?: string;\n message?: string;\n messageEncoding?: 'utf8' | 'base64';\n chunkInfoInitialTransactionID?: string;\n chunkInfoNumber?: number;\n chunkInfoTotal?: number;\n};\n\nexport type CryptoDeleteData = {\n deleteAccountId?: string;\n transferAccountId?: string;\n};\n\nexport type ScheduleCreateData = {\n scheduledTransaction?: ParsedTransaction;\n payerAccountId?: string;\n adminKey?: string;\n memo?: string;\n waitForExpiry?: boolean;\n};\n\nexport type ScheduleSignData = {\n scheduleId?: string;\n};\n\nexport type EthereumTransactionData = {\n ethereumData?: string;\n callDataFileId?: string;\n maxGasAllowanceHbar?: string;\n};\n\nexport type SystemDeleteData = {\n fileId?: string;\n contractId?: string;\n};\n\nexport type SystemUndeleteData = {\n fileId?: string;\n contractId?: string;\n};\n\nexport type ParsedTransaction = {\n type: string;\n humanReadableType: string;\n transfers: AccountAmount[];\n tokenTransfers: TokenAmount[];\n memo?: string;\n transactionFee?: string;\n contractCall?: ContractCallData;\n tokenMint?: TokenMintData;\n tokenBurn?: TokenBurnData;\n tokenCreation?: TokenCreationData;\n consensusCreateTopic?: ConsensusCreateTopicData;\n consensusSubmitMessage?: ConsensusSubmitMessageData;\n cryptoDelete?: CryptoDeleteData;\n scheduleCreate?: ScheduleCreateData;\n scheduleSign?: ScheduleSignData;\n ethereumTransaction?: EthereumTransactionData;\n systemDelete?: SystemDeleteData;\n systemUndelete?: SystemUndeleteData;\n raw: proto.SchedulableTransactionBody;\n};\n\nexport class TransactionParser {\n /**\n * Parse a base64 encoded transaction body and return structured data\n * @param transactionBodyBase64 - The base64 encoded transaction body\n * @returns The parsed transaction\n */\n static parseTransactionBody(\n transactionBodyBase64: string\n ): ParsedTransaction {\n try {\n const buffer = ethers.decodeBase64(transactionBodyBase64);\n const txBody = proto.SchedulableTransactionBody.decode(buffer);\n\n const transactionType = this.getTransactionType(txBody);\n\n const result: ParsedTransaction = {\n type: transactionType,\n humanReadableType: this.getHumanReadableType(transactionType),\n transfers: [],\n tokenTransfers: [],\n raw: txBody,\n };\n\n if (txBody.memo) {\n result.memo = txBody.memo;\n }\n\n if (txBody.transactionFee) {\n const hbarAmount = Hbar.fromTinybars(\n Long.fromValue(txBody.transactionFee)\n );\n result.transactionFee = hbarAmount.toString(HbarUnit.Hbar);\n }\n\n if (txBody.cryptoTransfer) {\n this.parseCryptoTransfers(txBody.cryptoTransfer, result);\n }\n\n if (txBody.contractCall) {\n this.parseContractCall(txBody.contractCall, result);\n }\n\n if (txBody.tokenMint) {\n this.parseTokenMint(txBody.tokenMint, result);\n }\n\n if (txBody.tokenBurn) {\n this.parseTokenBurn(txBody.tokenBurn, result);\n }\n\n if (txBody.tokenCreation) {\n this.parseTokenCreation(txBody.tokenCreation, result);\n }\n\n if (txBody.consensusCreateTopic) {\n this.parseConsensusCreateTopic(txBody.consensusCreateTopic, result);\n }\n\n if (txBody.consensusSubmitMessage) {\n this.parseConsensusSubmitMessage(txBody.consensusSubmitMessage, result);\n }\n\n return result;\n } catch (error) {\n throw new Error(`Failed to parse transaction body: ${error}`);\n }\n }\n\n /**\n * Parse details from a complete schedule response\n * @param scheduleResponse - The schedule response to parse\n * @returns The parsed transaction\n */\n static parseScheduleResponse(scheduleResponse: {\n transaction_body: string;\n memo?: string;\n }): ParsedTransaction {\n if (!scheduleResponse.transaction_body) {\n throw new Error('Schedule response missing transaction_body');\n }\n\n const parsed = this.parseTransactionBody(scheduleResponse.transaction_body);\n\n if (scheduleResponse.memo) {\n parsed.memo = scheduleResponse.memo;\n }\n\n return parsed;\n }\n\n /**\n * Determine the transaction type\n * @param txBody - The transaction body to determine the type of\n * @returns The type of the transaction\n */\n private static getTransactionType(\n txBody: proto.SchedulableTransactionBody\n ): string {\n let transactionType = 'unknown';\n\n if (txBody.cryptoTransfer) {\n transactionType = 'cryptoTransfer';\n } else if (txBody.cryptoCreateAccount) {\n transactionType = 'cryptoCreateAccount';\n } else if (txBody.cryptoUpdateAccount) {\n transactionType = 'cryptoUpdateAccount';\n } else if (txBody.cryptoApproveAllowance) {\n transactionType = 'cryptoApproveAllowance';\n } else if (txBody.cryptoDeleteAllowance) {\n transactionType = 'cryptoDeleteAllowance';\n } else if (txBody.cryptoDelete) {\n transactionType = 'cryptoDelete';\n } else if (txBody.consensusCreateTopic) {\n transactionType = 'consensusCreateTopic';\n } else if (txBody.consensusUpdateTopic) {\n transactionType = 'consensusUpdateTopic';\n } else if (txBody.consensusSubmitMessage) {\n transactionType = 'consensusSubmitMessage';\n } else if (txBody.consensusDeleteTopic) {\n transactionType = 'consensusDeleteTopic';\n } else if (txBody.fileCreate) {\n transactionType = 'fileCreate';\n } else if (txBody.fileAppend) {\n transactionType = 'fileAppend';\n } else if (txBody.fileUpdate) {\n transactionType = 'fileUpdate';\n } else if (txBody.fileDelete) {\n transactionType = 'fileDelete';\n } else if (txBody.contractCall) {\n transactionType = 'contractCall';\n } else if (txBody.contractCreateInstance) {\n transactionType = 'contractCreate';\n } else if (txBody.contractUpdateInstance) {\n transactionType = 'contractUpdate';\n } else if (txBody.contractDeleteInstance) {\n transactionType = 'contractDelete';\n } else if (txBody.tokenCreation) {\n transactionType = 'tokenCreate';\n } else if (txBody.tokenUpdate) {\n transactionType = 'tokenUpdate';\n } else if (txBody.tokenDeletion) {\n transactionType = 'tokenDelete';\n } else if (txBody.tokenAssociate) {\n transactionType = 'tokenAssociate';\n } else if (txBody.tokenDissociate) {\n transactionType = 'tokenDissociate';\n } else if (txBody.tokenMint) {\n transactionType = 'tokenMint';\n } else if (txBody.tokenBurn) {\n transactionType = 'tokenBurn';\n } else if (txBody.tokenFeeScheduleUpdate) {\n transactionType = 'tokenFeeScheduleUpdate';\n } else if (txBody.tokenFreeze) {\n transactionType = 'tokenFreeze';\n } else if (txBody.tokenUnfreeze) {\n transactionType = 'tokenUnfreeze';\n } else if (txBody.tokenGrantKyc) {\n transactionType = 'tokenGrantKyc';\n } else if (txBody.tokenRevokeKyc) {\n transactionType = 'tokenRevokeKyc';\n } else if (txBody.tokenPause) {\n transactionType = 'tokenPause';\n } else if (txBody.tokenUnpause) {\n transactionType = 'tokenUnpause';\n } else if (txBody.tokenWipe) {\n transactionType = 'tokenWipe';\n } else if (txBody.scheduleDelete) {\n transactionType = 'scheduleDelete';\n } else if (txBody.systemDelete) {\n transactionType = 'systemDelete';\n } else if (txBody.systemUndelete) {\n transactionType = 'systemUndelete';\n }\n\n return transactionType;\n }\n\n /**\n * Convert technical transaction type to human-readable format\n * @param type - The technical transaction type\n * @returns The human-readable transaction type\n */\n private static getHumanReadableType(type: string): string {\n const typeMap: Record<string, string> = {\n cryptoTransfer: 'HBAR Transfer',\n cryptoCreateAccount: 'Create Account',\n cryptoUpdateAccount: 'Update Account',\n cryptoDeleteAccount: 'Delete Account',\n cryptoApproveAllowance: 'Approve Allowance',\n cryptoDeleteAllowance: 'Delete Allowance',\n cryptoDelete: 'Delete Account',\n\n consensusCreateTopic: 'Create Topic',\n consensusUpdateTopic: 'Update Topic',\n consensusSubmitMessage: 'Submit Message',\n consensusDeleteTopic: 'Delete Topic',\n\n fileCreate: 'Create File',\n fileAppend: 'Append File',\n fileUpdate: 'Update File',\n fileDelete: 'Delete File',\n\n contractCall: 'Contract Call',\n contractCreate: 'Create Contract',\n contractUpdate: 'Update Contract',\n contractDelete: 'Delete Contract',\n ethereumTransaction: 'Ethereum Transaction',\n\n tokenCreate: 'Create Token',\n tokenUpdate: 'Update Token',\n tokenDelete: 'Delete Token',\n tokenAssociate: 'Associate Token',\n tokenDissociate: 'Dissociate Token',\n tokenMint: 'Mint Token',\n tokenBurn: 'Burn Token',\n tokenFeeScheduleUpdate: 'Update Token Fee Schedule',\n tokenFreeze: 'Freeze Token',\n tokenUnfreeze: 'Unfreeze Token',\n tokenGrantKyc: 'Grant KYC',\n tokenRevokeKyc: 'Revoke KYC',\n tokenPause: 'Pause Token',\n tokenUnpause: 'Unpause Token',\n tokenWipe: 'Wipe Token',\n\n scheduleCreate: 'Create Schedule',\n scheduleDelete: 'Delete Schedule',\n scheduleSign: 'Sign Schedule',\n\n systemDelete: 'System Delete',\n systemUndelete: 'System Undelete',\n\n unknown: 'Unknown Transaction',\n };\n\n let result: string;\n if (typeMap[type]) {\n result = typeMap[type];\n } else {\n result = 'Unknown Transaction';\n }\n\n return result;\n }\n\n /**\n * Parse crypto transfers from the transaction\n * @param cryptoTransfer - The crypto transfer transaction body\n * @param result - The parsed transaction\n */\n private static parseCryptoTransfers(\n cryptoTransfer: proto.ICryptoTransferTransactionBody,\n result: ParsedTransaction\n ): void {\n if (cryptoTransfer.transfers) {\n if (cryptoTransfer.transfers.accountAmounts) {\n result.transfers = cryptoTransfer.transfers.accountAmounts.map(\n (amount) => {\n const shard = amount.accountID?.shardNum\n ? Long.fromValue(amount.accountID.shardNum).toNumber()\n : 0;\n const realm = amount.accountID?.realmNum\n ? Long.fromValue(amount.accountID.realmNum).toNumber()\n : 0;\n const accountNum = amount.accountID?.accountNum\n ? Long.fromValue(amount.accountID.accountNum).toNumber()\n : 0;\n\n const accountId = AccountId.fromString(\n `${shard}.${realm}.${accountNum}`\n );\n\n const hbarValue = amount.amount\n ? Long.fromValue(amount.amount)\n : Long.ZERO;\n const hbarAmount = Hbar.fromTinybars(hbarValue);\n\n return {\n accountId: accountId.toString(),\n amount: hbarAmount.toString(HbarUnit.Hbar),\n isDecimal: true,\n };\n }\n );\n }\n }\n\n if (cryptoTransfer.tokenTransfers) {\n for (const tokenTransfer of cryptoTransfer.tokenTransfers) {\n const shard = tokenTransfer.token?.shardNum\n ? Long.fromValue(tokenTransfer.token.shardNum).toNumber()\n : 0;\n const realm = tokenTransfer.token?.realmNum\n ? Long.fromValue(tokenTransfer.token.realmNum).toNumber()\n : 0;\n const tokenNum = tokenTransfer.token?.tokenNum\n ? Long.fromValue(tokenTransfer.token.tokenNum).toNumber()\n : 0;\n\n const tokenId = TokenId.fromString(`${shard}.${realm}.${tokenNum}`);\n\n if (tokenTransfer.transfers) {\n for (const transfer of tokenTransfer.transfers) {\n const accShard = transfer.accountID?.shardNum\n ? Long.fromValue(transfer.accountID.shardNum).toNumber()\n : 0;\n const accRealm = transfer.accountID?.realmNum\n ? Long.fromValue(transfer.accountID.realmNum).toNumber()\n : 0;\n const accNum = transfer.accountID?.accountNum\n ? Long.fromValue(transfer.accountID.accountNum).toNumber()\n : 0;\n\n const accountId = AccountId.fromString(\n `${accShard}.${accRealm}.${accNum}`\n );\n\n const tokenAmount = transfer.amount\n ? Long.fromValue(transfer.amount).toNumber()\n : 0;\n\n result.tokenTransfers.push({\n tokenId: tokenId.toString(),\n accountId: accountId.toString(),\n amount: tokenAmount,\n });\n }\n }\n }\n }\n }\n\n /**\n * Parse contract call transaction data\n * @param contractCall - The contract call transaction body\n * @param result - The parsed transaction\n */\n private static parseContractCall(\n contractCall: proto.IContractCallTransactionBody,\n result: ParsedTransaction\n ): void {\n if (contractCall) {\n const shard = contractCall.contractID?.shardNum\n ? Long.fromValue(contractCall.contractID.shardNum).toNumber()\n : 0;\n const realm = contractCall.contractID?.realmNum\n ? Long.fromValue(contractCall.contractID.realmNum).toNumber()\n : 0;\n const contractNum = contractCall.contractID?.contractNum\n ? Long.fromValue(contractCall.contractID.contractNum).toNumber()\n : 0;\n\n const contractId = ContractId.fromString(\n `${shard}.${realm}.${contractNum}`\n );\n\n const gasLimit = contractCall.gas\n ? Long.fromValue(contractCall.gas).toNumber()\n : 0;\n\n let amount = 0;\n if (contractCall.amount) {\n const hbar = Hbar.fromTinybars(Long.fromValue(contractCall.amount));\n amount = parseFloat(hbar.toString(HbarUnit.Hbar));\n }\n\n const functionParameters = contractCall.functionParameters\n ? Buffer.from(contractCall.functionParameters).toString('hex')\n : undefined;\n\n let functionName;\n if (functionParameters && functionParameters.length >= 8) {\n functionName = functionParameters.substring(0, 8);\n }\n\n result.contractCall = {\n contractId: contractId.toString(),\n gas: gasLimit,\n amount: amount,\n functionParameters: functionParameters,\n functionName: functionName,\n };\n }\n }\n\n /**\n * Parse token mint transaction data\n * @param tokenMint - The token mint transaction body\n * @param result - The parsed transaction\n */\n private static parseTokenMint(\n tokenMint: proto.ITokenMintTransactionBody,\n result: ParsedTransaction\n ): void {\n if (tokenMint) {\n const shard = tokenMint.token?.shardNum\n ? Long.fromValue(tokenMint.token.shardNum).toNumber()\n : 0;\n const realm = tokenMint.token?.realmNum\n ? Long.fromValue(tokenMint.token.realmNum).toNumber()\n : 0;\n const tokenNum = tokenMint.token?.tokenNum\n ? Long.fromValue(tokenMint.token.tokenNum).toNumber()\n : 0;\n\n const tokenId = TokenId.fromString(`${shard}.${realm}.${tokenNum}`);\n\n const amount = tokenMint.amount\n ? Long.fromValue(tokenMint.amount).toNumber()\n : 0;\n\n const metadata: string[] = [];\n if (tokenMint.metadata) {\n for (const meta of tokenMint.metadata) {\n if (meta) {\n metadata.push(Buffer.from(meta).toString('base64'));\n }\n }\n }\n\n result.tokenMint = {\n tokenId: tokenId.toString(),\n amount: amount,\n metadata: metadata.length > 0 ? metadata : undefined,\n };\n }\n }\n\n /**\n * Parse token burn transaction data\n * @param tokenBurn - The token burn transaction body\n * @param result - The parsed transaction\n */\n private static parseTokenBurn(\n tokenBurn: proto.ITokenBurnTransactionBody,\n result: ParsedTransaction\n ): void {\n if (tokenBurn) {\n const shard = tokenBurn.token?.shardNum\n ? Long.fromValue(tokenBurn.token.shardNum).toNumber()\n : 0;\n const realm = tokenBurn.token?.realmNum\n ? Long.fromValue(tokenBurn.token.realmNum).toNumber()\n : 0;\n const tokenNum = tokenBurn.token?.tokenNum\n ? Long.fromValue(tokenBurn.token.tokenNum).toNumber()\n : 0;\n\n const tokenId = TokenId.fromString(`${shard}.${realm}.${tokenNum}`);\n\n const amount = tokenBurn.amount\n ? Long.fromValue(tokenBurn.amount).toNumber()\n : 0;\n\n const serialNumbers: number[] = [];\n if (tokenBurn.serialNumbers) {\n for (const serial of tokenBurn.serialNumbers) {\n if (serial) {\n serialNumbers.push(Long.fromValue(serial).toNumber());\n }\n }\n }\n\n result.tokenBurn = {\n tokenId: tokenId.toString(),\n amount: amount,\n serialNumbers: serialNumbers.length > 0 ? serialNumbers : undefined,\n };\n }\n }\n\n /**\n * Parse token creation transaction data\n * @param tokenCreation - The token creation transaction body\n * @param result - The parsed transaction\n */\n private static parseTokenCreation(\n tokenCreation: proto.ITokenCreateTransactionBody,\n result: ParsedTransaction\n ): void {\n if (tokenCreation) {\n const creationData: TokenCreationData = {};\n if (tokenCreation.name) creationData.tokenName = tokenCreation.name;\n if (tokenCreation.symbol) creationData.tokenSymbol = tokenCreation.symbol;\n if (tokenCreation.treasury) {\n const t = tokenCreation.treasury;\n creationData.treasuryAccountId = new AccountId(\n t.shardNum ? Long.fromValue(t.shardNum).toNumber() : 0,\n t.realmNum ? Long.fromValue(t.realmNum).toNumber() : 0,\n t.accountNum ? Long.fromValue(t.accountNum).toNumber() : 0\n ).toString();\n }\n if (tokenCreation.initialSupply) {\n creationData.initialSupply = Long.fromValue(\n tokenCreation.initialSupply\n ).toString();\n }\n if (\n tokenCreation.decimals !== undefined &&\n tokenCreation.decimals !== null\n ) {\n creationData.decimals = Long.fromValue(\n tokenCreation.decimals\n ).toNumber();\n }\n if (tokenCreation.maxSupply) {\n creationData.maxSupply = Long.fromValue(\n tokenCreation.maxSupply\n ).toString();\n }\n if (tokenCreation.memo) creationData.memo = tokenCreation.memo;\n\n if (\n tokenCreation.tokenType !== null &&\n tokenCreation.tokenType !== undefined\n ) {\n creationData.tokenType = proto.TokenType[tokenCreation.tokenType];\n }\n if (\n tokenCreation.supplyType !== null &&\n tokenCreation.supplyType !== undefined\n ) {\n creationData.supplyType =\n proto.TokenSupplyType[tokenCreation.supplyType];\n }\n\n creationData.adminKey = tokenCreation.adminKey ? 'Present' : 'Not Present';\n creationData.kycKey = tokenCreation.kycKey ? 'Present' : 'Not Present';\n creationData.freezeKey = tokenCreation.freezeKey\n ? 'Present'\n : 'Not Present';\n creationData.wipeKey = tokenCreation.wipeKey ? 'Present' : 'Not Present';\n creationData.supplyKey = tokenCreation.supplyKey\n ? 'Present'\n : 'Not Present';\n creationData.feeScheduleKey = tokenCreation.feeScheduleKey\n ? 'Present'\n : 'Not Present';\n creationData.pauseKey = tokenCreation.pauseKey ? 'Present' : 'Not Present';\n\n if (tokenCreation.autoRenewAccount) {\n const ara = tokenCreation.autoRenewAccount;\n creationData.autoRenewAccount = new AccountId(\n ara.shardNum ? Long.fromValue(ara.shardNum).toNumber() : 0,\n ara.realmNum ? Long.fromValue(ara.realmNum).toNumber() : 0,\n ara.accountNum ? Long.fromValue(ara.accountNum).toNumber() : 0\n ).toString();\n }\n if (\n tokenCreation.autoRenewPeriod &&\n tokenCreation.autoRenewPeriod.seconds\n ) {\n creationData.autoRenewPeriod = Long.fromValue(\n tokenCreation.autoRenewPeriod.seconds\n ).toString();\n }\n\n if (tokenCreation.customFees && tokenCreation.customFees.length > 0) {\n creationData.customFees = tokenCreation.customFees.map((fee) => {\n const feeCollectorAccountId = fee.feeCollectorAccountId\n ? new AccountId(\n fee.feeCollectorAccountId.shardNum ?? 0,\n fee.feeCollectorAccountId.realmNum ?? 0,\n fee.feeCollectorAccountId.accountNum ?? 0\n ).toString()\n : 'Not Set';\n\n const commonFeeData = {\n feeCollectorAccountId,\n allCollectorsAreExempt: fee.allCollectorsAreExempt || false,\n };\n\n if (fee.fixedFee) {\n return {\n ...commonFeeData,\n feeType: 'FIXED_FEE',\n fixedFee: {\n amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),\n denominatingTokenId: fee.fixedFee.denominatingTokenId\n ? new TokenId(\n fee.fixedFee.denominatingTokenId.shardNum ?? 0,\n fee.fixedFee.denominatingTokenId.realmNum ?? 0,\n fee.fixedFee.denominatingTokenId.tokenNum ?? 0\n ).toString()\n : undefined,\n },\n };\n } else if (fee.fractionalFee) {\n return {\n ...commonFeeData,\n feeType: 'FRACTIONAL_FEE',\n fractionalFee: {\n numerator: Long.fromValue(\n fee.fractionalFee.fractionalAmount?.numerator || 0\n ).toString(),\n denominator: Long.fromValue(\n fee.fractionalFee.fractionalAmount?.denominator || 1\n ).toString(),\n minimumAmount: Long.fromValue(\n fee.fractionalFee.minimumAmount || 0\n ).toString(),\n maximumAmount: Long.fromValue(\n fee.fractionalFee.maximumAmount || 0\n ).toString(),\n netOfTransfers: fee.fractionalFee.netOfTransfers || false,\n },\n };\n } else if (fee.royaltyFee) {\n let fallbackFeeData: FixedFeeData | undefined = undefined;\n if (fee.royaltyFee.fallbackFee) {\n fallbackFeeData = {\n amount: Long.fromValue(\n fee.royaltyFee.fallbackFee.amount || 0\n ).toString(),\n denominatingTokenId: fee.royaltyFee.fallbackFee\n .denominatingTokenId\n ? new TokenId(\n fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ??\n 0,\n fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ??\n 0,\n fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ??\n 0\n ).toString()\n : undefined,\n };\n }\n return {\n ...commonFeeData,\n feeType: 'ROYALTY_FEE',\n royaltyFee: {\n numerator: Long.fromValue(\n fee.royaltyFee.exchangeValueFraction?.numerator || 0\n ).toString(),\n denominator: Long.fromValue(\n fee.royaltyFee.exchangeValueFraction?.denominator || 1\n ).toString(),\n fallbackFee: fallbackFeeData,\n },\n };\n }\n return {\n ...commonFeeData,\n feeType: 'FIXED_FEE',\n fixedFee: { amount: '0' },\n } as CustomFeeData;\n });\n }\n\n result.tokenCreation = creationData;\n }\n }\n\n /**\n * Parse consensus create topic transaction data\n * @param createTopicBody - The consensus create topic transaction body\n * @param result - The parsed transaction\n */\n private static parseConsensusCreateTopic(\n createTopicBody: proto.IConsensusCreateTopicTransactionBody,\n result: ParsedTransaction\n ): void {\n if (createTopicBody) {\n const topicData: ConsensusCreateTopicData = {};\n if (createTopicBody.memo) topicData.memo = createTopicBody.memo;\n topicData.adminKey = createTopicBody.adminKey ? 'Present' : 'Not Present';\n topicData.submitKey = createTopicBody.submitKey\n ? 'Present'\n : 'Not Present';\n\n if (createTopicBody.autoRenewAccount) {\n const ara = createTopicBody.autoRenewAccount;\n topicData.autoRenewAccountId = new AccountId(\n ara.shardNum ? Long.fromValue(ara.shardNum).toNumber() : 0,\n ara.realmNum ? Long.fromValue(ara.realmNum).toNumber() : 0,\n ara.accountNum ? Long.fromValue(ara.accountNum).toNumber() : 0\n ).toString();\n }\n if (\n createTopicBody.autoRenewPeriod &&\n createTopicBody.autoRenewPeriod.seconds\n ) {\n topicData.autoRenewPeriod = Long.fromValue(\n createTopicBody.autoRenewPeriod.seconds\n ).toString();\n }\n result.consensusCreateTopic = topicData;\n }\n }\n\n /**\n * Parse consensus submit message transaction data\n * @param submitMessageBody - The consensus submit message transaction body\n * @param result - The parsed transaction\n */\n private static parseConsensusSubmitMessage(\n submitMessageBody: proto.IConsensusSubmitMessageTransactionBody,\n result: ParsedTransaction\n ): void {\n if (submitMessageBody) {\n const messageData: ConsensusSubmitMessageData = {};\n if (submitMessageBody.topicID) {\n const tid = submitMessageBody.topicID;\n messageData.topicId = `${\n tid.shardNum ? Long.fromValue(tid.shardNum).toNumber() : 0\n }.${tid.realmNum ? Long.fromValue(tid.realmNum).toNumber() : 0}.${\n tid.topicNum ? Long.fromValue(tid.topicNum).toNumber() : 0\n }`;\n }\n if (submitMessageBody.message && submitMessageBody.message.length > 0) {\n const messageBuffer = Buffer.from(submitMessageBody.message);\n const utf8String = messageBuffer.toString('utf8');\n\n if (/[\u0000-\b\u000b\f\u000e-\u001f]/.test(utf8String) || utf8String.includes('\\uFFFD')) {\n messageData.message = messageBuffer.toString('base64');\n messageData.messageEncoding = 'base64';\n } else {\n messageData.message = utf8String;\n messageData.messageEncoding = 'utf8';\n }\n }\n if (submitMessageBody.chunkInfo) {\n if (submitMessageBody.chunkInfo.initialTransactionID) {\n const txId =\n submitMessageBody.chunkInfo.initialTransactionID.accountID;\n const taValidStart =\n submitMessageBody.chunkInfo.initialTransactionID\n .transactionValidStart;\n if (txId && taValidStart) {\n messageData.chunkInfoInitialTransactionID = `${\n txId.shardNum ? Long.fromValue(txId.shardNum).toNumber() : 0\n }.${txId.realmNum ? Long.fromValue(txId.realmNum).toNumber() : 0}.${\n txId.accountNum ? Long.fromValue(txId.accountNum).toNumber() : 0\n }@${\n taValidStart.seconds\n ? Long.fromValue(taValidStart.seconds).toNumber()\n : 0\n }.${\n taValidStart.nanos\n ? Long.fromValue(taValidStart.nanos).toNumber()\n : 0\n }`;\n }\n }\n if (\n submitMessageBody.chunkInfo.number !== undefined &&\n submitMessageBody.chunkInfo.number !== null\n ) {\n messageData.chunkInfoNumber = submitMessageBody.chunkInfo.number;\n }\n if (\n submitMessageBody.chunkInfo.total !== undefined &&\n submitMessageBody.chunkInfo.total !== null\n ) {\n messageData.chunkInfoTotal = submitMessageBody.chunkInfo.total;\n }\n }\n result.consensusSubmitMessage = messageData;\n }\n }\n\n /**\n * Get a human-readable summary of the transaction\n * @param parsedTx - The parsed transaction\n * @returns The human-readable summary of the transaction\n */\n static getTransactionSummary(parsedTx: ParsedTransaction): string {\n let summary: string;\n\n if (parsedTx.type === 'cryptoTransfer') {\n const senders = [];\n const receivers = [];\n\n for (const transfer of parsedTx.transfers) {\n const originalAmountFloat = parseFloat(transfer.amount);\n\n let displayStr = transfer.amount;\n if (displayStr.startsWith('-')) {\n displayStr = displayStr.substring(1);\n }\n displayStr = displayStr.replace(/\\s*ℏ$/, '');\n\n if (originalAmountFloat < 0) {\n senders.push(`${transfer.accountId} (${displayStr} ℏ)`);\n } else if (originalAmountFloat > 0) {\n receivers.push(`${transfer.accountId} (${displayStr} ℏ)`);\n }\n }\n\n if (senders.length > 0 && receivers.length > 0) {\n summary = `Transfer of HBAR from ${senders.join(\n ', '\n )} to ${receivers.join(', ')}`;\n } else {\n summary = parsedTx.humanReadableType;\n }\n } else if (parsedTx.contractCall) {\n let contractCallSummary = `Contract call to ${parsedTx.contractCall.contractId} with ${parsedTx.contractCall.gas} gas`;\n\n if (parsedTx.contractCall.amount > 0) {\n contractCallSummary += ` and ${parsedTx.contractCall.amount} HBAR`;\n }\n\n if (parsedTx.contractCall.functionName) {\n contractCallSummary += ` calling function ${parsedTx.contractCall.functionName}`;\n }\n\n summary = contractCallSummary;\n } else if (parsedTx.tokenMint) {\n summary = `Mint ${parsedTx.tokenMint.amount} tokens for token ${parsedTx.tokenMint.tokenId}`;\n } else if (parsedTx.tokenBurn) {\n summary = `Burn ${parsedTx.tokenBurn.amount} tokens for token ${parsedTx.tokenBurn.tokenId}`;\n } else if (parsedTx.tokenCreation) {\n summary = `Create token ${parsedTx.tokenCreation.tokenName || '(No Name)'} (${parsedTx.tokenCreation.tokenSymbol || '(No Symbol)'})`;\n if (parsedTx.tokenCreation.initialSupply) {\n summary += ` with initial supply ${parsedTx.tokenCreation.initialSupply}`;\n }\n if (parsedTx.tokenCreation.customFees && parsedTx.tokenCreation.customFees.length > 0) {\n summary += ` including ${parsedTx.tokenCreation.customFees.length} custom fee(s)`;\n }\n } else if (parsedTx.tokenTransfers.length > 0) {\n const tokenGroups: Record<string, TokenAmount[]> = {};\n\n for (const transfer of parsedTx.tokenTransfers) {\n if (!tokenGroups[transfer.tokenId]) {\n tokenGroups[transfer.tokenId] = [];\n }\n tokenGroups[transfer.tokenId].push(transfer);\n }\n\n const tokenSummaries = [];\n\n for (const [tokenId, transfers] of Object.entries(tokenGroups)) {\n const tokenSenders = [];\n const tokenReceivers = [];\n\n for (const transfer of transfers) {\n const transferAmountValue = parseFloat(transfer.amount.toString());\n if (transferAmountValue < 0) {\n tokenSenders.push(\n `${transfer.accountId} (${Math.abs(transferAmountValue)})`\n );\n } else if (transferAmountValue > 0) {\n tokenReceivers.push(\n `${transfer.accountId} (${transferAmountValue})`\n );\n }\n }\n\n if (tokenSenders.length > 0 && tokenReceivers.length > 0) {\n tokenSummaries.push(\n `Transfer of token ${tokenId} from ${tokenSenders.join(\n ', '\n )} to ${tokenReceivers.join(', ')}`\n );\n }\n }\n\n if (tokenSummaries.length > 0) {\n summary = tokenSummaries.join('; ');\n } else {\n summary = parsedTx.humanReadableType;\n }\n } else if (parsedTx.consensusCreateTopic) {\n summary = `Create new topic`;\n if (parsedTx.consensusCreateTopic.memo) {\n summary += ` with memo \"${parsedTx.consensusCreateTopic.memo}\"`;\n }\n if (parsedTx.consensusCreateTopic.autoRenewAccountId) {\n summary += `, auto-renew by ${parsedTx.consensusCreateTopic.autoRenewAccountId}`;\n }\n } else if (parsedTx.consensusSubmitMessage) {\n summary = `Submit message`;\n if (parsedTx.consensusSubmitMessage.topicId) {\n summary += ` to topic ${parsedTx.consensusSubmitMessage.topicId}`;\n }\n if (parsedTx.consensusSubmitMessage.message) {\n if (parsedTx.consensusSubmitMessage.messageEncoding === 'utf8') {\n const messagePreview =\n parsedTx.consensusSubmitMessage.message.substring(0, 70);\n summary += `: \"${messagePreview}${\n parsedTx.consensusSubmitMessage.message.length > 70 ? '...' : ''\n }\"`;\n } else {\n summary += ` (binary message data, length: ${\n Buffer.from(parsedTx.consensusSubmitMessage.message, 'base64')\n .length\n } bytes)`;\n }\n }\n if (\n parsedTx.consensusSubmitMessage.chunkInfoNumber &&\n parsedTx.consensusSubmitMessage.chunkInfoTotal\n ) {\n summary += ` (chunk ${parsedTx.consensusSubmitMessage.chunkInfoNumber}/${parsedTx.consensusSubmitMessage.chunkInfoTotal})`;\n }\n } else {\n summary = parsedTx.humanReadableType;\n }\n\n return summary;\n }\n}\n"],"names":["ethers.decodeBase64","Buffer"],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es19.js","sources":["../../src/utils/transaction-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { Buffer } from 'buffer';\nimport { Hbar, HbarUnit, Long } from '@hashgraph/sdk';\nimport { ethers } from 'ethers';\nimport { TokenAmount, ParsedTransaction } from './transaction-parser-types'; // Import all types\nimport { HTSParser } from './parsers/hts-parser'; // Import HTSParser\nimport { HCSParser } from './parsers/hcs-parser'; // Import HCSParser\nimport { FileParser } from './parsers/file-parser'; // Import FileParser\nimport { CryptoParser } from './parsers/crypto-parser'; // Import CryptoParser\nimport { SCSParser } from './parsers/scs-parser'; // Import SCSParser\nimport { UtilParser } from './parsers/util-parser'; // Import UtilParser\n\n/**\n * Types for transaction parsing results\n */\n\nexport class TransactionParser {\n /**\n * Parse a base64 encoded transaction body and return structured data\n * @param transactionBodyBase64 - The base64 encoded transaction body\n * @returns The parsed transaction\n */\n static parseTransactionBody(\n transactionBodyBase64: string\n ): ParsedTransaction {\n try {\n const buffer = ethers.decodeBase64(transactionBodyBase64);\n const txBody = proto.SchedulableTransactionBody.decode(buffer);\n\n const transactionType = this.getTransactionType(txBody);\n\n const result: ParsedTransaction = {\n type: transactionType,\n humanReadableType: this.getHumanReadableType(transactionType),\n transfers: [],\n tokenTransfers: [],\n raw: txBody,\n };\n\n if (txBody.memo) {\n result.memo = txBody.memo;\n }\n\n if (txBody.transactionFee) {\n const hbarAmount = Hbar.fromTinybars(\n Long.fromValue(txBody.transactionFee)\n );\n result.transactionFee = hbarAmount.toString(HbarUnit.Hbar);\n }\n\n if (txBody.cryptoTransfer) {\n CryptoParser.parseCryptoTransfers(txBody.cryptoTransfer, result);\n }\n\n if (txBody.cryptoDelete) {\n result.cryptoDelete = CryptoParser.parseCryptoDelete(\n txBody.cryptoDelete\n );\n }\n\n if (txBody.contractCall) {\n result.contractCall = SCSParser.parseContractCall(txBody.contractCall);\n }\n\n if (txBody.tokenCreation) {\n result.tokenCreation = HTSParser.parseTokenCreate(txBody.tokenCreation);\n }\n\n if (txBody.tokenMint) {\n result.tokenMint = HTSParser.parseTokenMint(txBody.tokenMint);\n }\n\n if (txBody.tokenBurn) {\n result.tokenBurn = HTSParser.parseTokenBurn(txBody.tokenBurn);\n }\n\n if (txBody.tokenUpdate) {\n result.tokenUpdate = HTSParser.parseTokenUpdate(txBody.tokenUpdate);\n }\n\n if (txBody.tokenFeeScheduleUpdate) {\n result.tokenFeeScheduleUpdate = HTSParser.parseTokenFeeScheduleUpdate(\n txBody.tokenFeeScheduleUpdate\n );\n }\n\n if (txBody.tokenFreeze) {\n result.tokenFreeze = HTSParser.parseTokenFreeze(txBody.tokenFreeze);\n }\n\n if (txBody.tokenUnfreeze) {\n result.tokenUnfreeze = HTSParser.parseTokenUnfreeze(\n txBody.tokenUnfreeze\n );\n }\n\n if (txBody.tokenGrantKyc) {\n result.tokenGrantKyc = HTSParser.parseTokenGrantKyc(\n txBody.tokenGrantKyc\n );\n }\n\n if (txBody.tokenRevokeKyc) {\n result.tokenRevokeKyc = HTSParser.parseTokenRevokeKyc(\n txBody.tokenRevokeKyc\n );\n }\n\n if (txBody.tokenPause) {\n result.tokenPause = HTSParser.parseTokenPause(txBody.tokenPause);\n }\n\n if (txBody.tokenUnpause) {\n result.tokenUnpause = HTSParser.parseTokenUnpause(txBody.tokenUnpause);\n }\n\n if (txBody.tokenWipe) {\n result.tokenWipeAccount = HTSParser.parseTokenWipeAccount(\n txBody.tokenWipe\n );\n }\n\n if (txBody.tokenDeletion) {\n result.tokenDelete = HTSParser.parseTokenDelete(txBody.tokenDeletion);\n }\n\n if (txBody.tokenAssociate) {\n result.tokenAssociate = HTSParser.parseTokenAssociate(\n txBody.tokenAssociate\n );\n }\n\n if (txBody.tokenDissociate) {\n result.tokenDissociate = HTSParser.parseTokenDissociate(\n txBody.tokenDissociate\n );\n }\n\n if (txBody.consensusCreateTopic) {\n result.consensusCreateTopic = HCSParser.parseConsensusCreateTopic(\n txBody.consensusCreateTopic\n );\n }\n\n if (txBody.consensusSubmitMessage) {\n result.consensusSubmitMessage = HCSParser.parseConsensusSubmitMessage(\n txBody.consensusSubmitMessage\n );\n }\n\n if (txBody.consensusUpdateTopic) {\n result.consensusUpdateTopic = HCSParser.parseConsensusUpdateTopic(\n txBody.consensusUpdateTopic\n );\n }\n\n if (txBody.consensusDeleteTopic) {\n result.consensusDeleteTopic = HCSParser.parseConsensusDeleteTopic(\n txBody.consensusDeleteTopic\n );\n }\n\n if (txBody.fileCreate) {\n result.fileCreate = FileParser.parseFileCreate(txBody.fileCreate);\n }\n\n if (txBody.fileAppend) {\n result.fileAppend = FileParser.parseFileAppend(txBody.fileAppend);\n }\n\n if (txBody.fileUpdate) {\n result.fileUpdate = FileParser.parseFileUpdate(txBody.fileUpdate);\n }\n\n if (txBody.fileDelete) {\n result.fileDelete = FileParser.parseFileDelete(txBody.fileDelete);\n }\n\n if (txBody.utilPrng) {\n result.utilPrng = UtilParser.parseUtilPrng(txBody.utilPrng);\n }\n\n return result;\n } catch (error) {\n throw new Error(\n `Failed to parse transaction body: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n }\n\n /**\n * Parse details from a complete schedule response\n * @param scheduleResponse - The schedule response to parse\n * @returns The parsed transaction\n */\n static parseScheduleResponse(scheduleResponse: {\n transaction_body: string;\n memo?: string;\n }): ParsedTransaction {\n if (!scheduleResponse.transaction_body) {\n throw new Error('Schedule response missing transaction_body');\n }\n\n const parsed = this.parseTransactionBody(scheduleResponse.transaction_body);\n\n if (scheduleResponse.memo) {\n parsed.memo = scheduleResponse.memo;\n }\n\n return parsed;\n }\n\n /**\n * Determine the transaction type\n * @param txBody - The transaction body to determine the type of\n * @returns The type of the transaction\n */\n private static getTransactionType(\n txBody: proto.SchedulableTransactionBody\n ): string {\n let transactionType = 'unknown';\n\n if (txBody.cryptoTransfer) {\n transactionType = 'cryptoTransfer';\n } else if (txBody.cryptoCreateAccount) {\n transactionType = 'cryptoCreateAccount';\n } else if (txBody.cryptoUpdateAccount) {\n transactionType = 'cryptoUpdateAccount';\n } else if (txBody.cryptoApproveAllowance) {\n transactionType = 'cryptoApproveAllowance';\n } else if (txBody.cryptoDeleteAllowance) {\n transactionType = 'cryptoDeleteAllowance';\n } else if (txBody.cryptoDelete) {\n transactionType = 'cryptoDelete';\n } else if (txBody.consensusCreateTopic) {\n transactionType = 'consensusCreateTopic';\n } else if (txBody.consensusUpdateTopic) {\n transactionType = 'consensusUpdateTopic';\n } else if (txBody.consensusSubmitMessage) {\n transactionType = 'consensusSubmitMessage';\n } else if (txBody.consensusDeleteTopic) {\n transactionType = 'consensusDeleteTopic';\n } else if (txBody.fileCreate) {\n transactionType = 'fileCreate';\n } else if (txBody.fileAppend) {\n transactionType = 'fileAppend';\n } else if (txBody.fileUpdate) {\n transactionType = 'fileUpdate';\n } else if (txBody.fileDelete) {\n transactionType = 'fileDelete';\n } else if (txBody.contractCall) {\n transactionType = 'contractCall';\n } else if (txBody.contractCreateInstance) {\n transactionType = 'contractCreate';\n } else if (txBody.contractUpdateInstance) {\n transactionType = 'contractUpdate';\n } else if (txBody.contractDeleteInstance) {\n transactionType = 'contractDelete';\n } else if (txBody.tokenCreation) {\n transactionType = 'tokenCreate';\n } else if (txBody.tokenUpdate) {\n transactionType = 'tokenUpdate';\n } else if (txBody.tokenDeletion) {\n transactionType = 'tokenDelete';\n } else if (txBody.tokenAssociate) {\n transactionType = 'tokenAssociate';\n } else if (txBody.tokenDissociate) {\n transactionType = 'tokenDissociate';\n } else if (txBody.tokenMint) {\n transactionType = 'tokenMint';\n } else if (txBody.tokenBurn) {\n transactionType = 'tokenBurn';\n } else if (txBody.tokenFeeScheduleUpdate) {\n transactionType = 'tokenFeeScheduleUpdate';\n } else if (txBody.tokenFreeze) {\n transactionType = 'tokenFreeze';\n } else if (txBody.tokenUnfreeze) {\n transactionType = 'tokenUnfreeze';\n } else if (txBody.tokenGrantKyc) {\n transactionType = 'tokenGrantKyc';\n } else if (txBody.tokenRevokeKyc) {\n transactionType = 'tokenRevokeKyc';\n } else if (txBody.tokenPause) {\n transactionType = 'tokenPause';\n } else if (txBody.tokenUnpause) {\n transactionType = 'tokenUnpause';\n } else if (txBody.tokenWipe) {\n transactionType = 'tokenWipe';\n } else if (txBody.utilPrng) {\n transactionType = 'utilPrng';\n }\n\n return transactionType;\n }\n\n /**\n * Convert technical transaction type to human-readable format\n * @param type - The technical transaction type\n * @returns The human-readable transaction type\n */\n private static getHumanReadableType(type: string): string {\n const typeMap: Record<string, string> = {\n cryptoTransfer: 'HBAR Transfer',\n cryptoCreateAccount: 'Create Account',\n cryptoUpdateAccount: 'Update Account',\n cryptoDeleteAccount: 'Delete Account',\n cryptoApproveAllowance: 'Approve Allowance',\n cryptoDeleteAllowance: 'Delete Allowance',\n cryptoDelete: 'Delete Account',\n\n consensusCreateTopic: 'Create Topic',\n consensusUpdateTopic: 'Update Topic',\n consensusSubmitMessage: 'Submit Message',\n consensusDeleteTopic: 'Delete Topic',\n\n fileCreate: 'Create File',\n fileAppend: 'Append File',\n fileUpdate: 'Update File',\n fileDelete: 'Delete File',\n\n contractCall: 'Contract Call',\n contractCreate: 'Create Contract',\n contractUpdate: 'Update Contract',\n contractDelete: 'Delete Contract',\n ethereumTransaction: 'Ethereum Transaction',\n\n tokenCreate: 'Create Token',\n tokenUpdate: 'Update Token',\n tokenDelete: 'Delete Token',\n tokenAssociate: 'Associate Token',\n tokenDissociate: 'Dissociate Token',\n tokenMint: 'Mint Token',\n tokenBurn: 'Burn Token',\n tokenFeeScheduleUpdate: 'Update Token Fee Schedule',\n tokenFreeze: 'Freeze Token',\n tokenUnfreeze: 'Unfreeze Token',\n tokenGrantKyc: 'Grant KYC',\n tokenRevokeKyc: 'Revoke KYC',\n tokenPause: 'Pause Token',\n tokenUnpause: 'Unpause Token',\n tokenWipe: 'Wipe Token',\n\n scheduleCreate: 'Create Schedule',\n scheduleSign: 'Sign Schedule',\n\n utilPrng: 'Generate Random Number',\n\n unknown: 'Unknown Transaction',\n };\n\n let result: string;\n if (typeMap[type]) {\n result = typeMap[type];\n } else {\n result = 'Unknown Transaction';\n }\n\n return result;\n }\n\n /**\n * Get a human-readable summary of the transaction\n * @param parsedTx - The parsed transaction\n * @returns The human-readable summary of the transaction\n */\n static getTransactionSummary(parsedTx: ParsedTransaction): string {\n if (parsedTx.type === 'cryptoTransfer') {\n const senders = [];\n const receivers = [];\n\n for (const transfer of parsedTx.transfers) {\n const originalAmountFloat = parseFloat(transfer.amount);\n\n let displayStr = transfer.amount;\n if (displayStr.startsWith('-')) {\n displayStr = displayStr.substring(1);\n }\n displayStr = displayStr.replace(/\\s*ℏ$/, '');\n\n if (originalAmountFloat < 0) {\n senders.push(`${transfer.accountId} (${displayStr} ℏ)`);\n } else if (originalAmountFloat > 0) {\n receivers.push(`${transfer.accountId} (${displayStr} ℏ)`);\n }\n }\n\n if (senders.length > 0 && receivers.length > 0) {\n return `Transfer of HBAR from ${senders.join(', ')} to ${receivers.join(\n ', '\n )}`;\n } else {\n return parsedTx.humanReadableType;\n }\n } else if (parsedTx.contractCall) {\n let contractCallSummary = `Contract call to ${parsedTx.contractCall.contractId} with ${parsedTx.contractCall.gas} gas`;\n\n if (parsedTx.contractCall.amount > 0) {\n contractCallSummary += ` and ${parsedTx.contractCall.amount} HBAR`;\n }\n\n if (parsedTx.contractCall.functionName) {\n contractCallSummary += ` calling function ${parsedTx.contractCall.functionName}`;\n }\n\n return contractCallSummary;\n } else if (parsedTx.tokenMint) {\n return `Mint ${parsedTx.tokenMint.amount} tokens for token ${parsedTx.tokenMint.tokenId}`;\n } else if (parsedTx.tokenBurn) {\n return `Burn ${parsedTx.tokenBurn.amount} tokens for token ${parsedTx.tokenBurn.tokenId}`;\n } else if (parsedTx.tokenCreation) {\n let summary = `Create token ${\n parsedTx.tokenCreation.tokenName || '(No Name)'\n } (${parsedTx.tokenCreation.tokenSymbol || '(No Symbol)'})`;\n if (parsedTx.tokenCreation.initialSupply) {\n summary += ` with initial supply ${parsedTx.tokenCreation.initialSupply}`;\n }\n if (parsedTx.tokenCreation.customFees?.length) {\n summary += ` including ${parsedTx.tokenCreation.customFees.length} custom fee(s)`;\n }\n return summary;\n } else if (parsedTx.tokenTransfers.length > 0) {\n const tokenGroups: Record<string, TokenAmount[]> = {};\n\n for (const transfer of parsedTx.tokenTransfers) {\n if (!tokenGroups[transfer.tokenId]) {\n tokenGroups[transfer.tokenId] = [];\n }\n tokenGroups[transfer.tokenId].push(transfer);\n }\n\n const tokenSummaries = [];\n\n for (const [tokenId, transfers] of Object.entries(tokenGroups)) {\n const tokenSenders = [];\n const tokenReceivers = [];\n\n for (const transfer of transfers) {\n const transferAmountValue = parseFloat(transfer.amount.toString());\n if (transferAmountValue < 0) {\n tokenSenders.push(\n `${transfer.accountId} (${Math.abs(transferAmountValue)})`\n );\n } else if (transferAmountValue > 0) {\n tokenReceivers.push(\n `${transfer.accountId} (${transferAmountValue})`\n );\n }\n }\n\n if (tokenSenders.length > 0 && tokenReceivers.length > 0) {\n tokenSummaries.push(\n `Transfer of token ${tokenId} from ${tokenSenders.join(\n ', '\n )} to ${tokenReceivers.join(', ')}`\n );\n }\n }\n\n if (tokenSummaries.length > 0) {\n return tokenSummaries.join('; ');\n } else {\n return parsedTx.humanReadableType;\n }\n } else if (parsedTx.consensusCreateTopic) {\n let summary = `Create new topic`;\n if (parsedTx.consensusCreateTopic.memo) {\n summary += ` with memo \"${parsedTx.consensusCreateTopic.memo}\"`;\n }\n if (parsedTx.consensusCreateTopic.autoRenewAccountId) {\n summary += `, auto-renew by ${parsedTx.consensusCreateTopic.autoRenewAccountId}`;\n }\n return summary;\n } else if (parsedTx.consensusSubmitMessage) {\n let summary = `Submit message`;\n if (parsedTx.consensusSubmitMessage.topicId) {\n summary += ` to topic ${parsedTx.consensusSubmitMessage.topicId}`;\n }\n if (parsedTx.consensusSubmitMessage.message) {\n if (parsedTx.consensusSubmitMessage.messageEncoding === 'utf8') {\n const messagePreview =\n parsedTx.consensusSubmitMessage.message.substring(0, 70);\n summary += `: \"${messagePreview}${\n parsedTx.consensusSubmitMessage.message.length > 70 ? '...' : ''\n }\"`;\n } else {\n summary += ` (binary message data, length: ${\n Buffer.from(parsedTx.consensusSubmitMessage.message, 'base64')\n .length\n } bytes)`;\n }\n }\n if (\n parsedTx.consensusSubmitMessage.chunkInfoNumber &&\n parsedTx.consensusSubmitMessage.chunkInfoTotal\n ) {\n summary += ` (chunk ${parsedTx.consensusSubmitMessage.chunkInfoNumber}/${parsedTx.consensusSubmitMessage.chunkInfoTotal})`;\n }\n return summary;\n } else if (parsedTx.fileCreate) {\n let summary = 'Create File';\n if (parsedTx.fileCreate.memo) {\n summary += ` with memo \"${parsedTx.fileCreate.memo}\"`;\n }\n if (parsedTx.fileCreate.contents) {\n summary += ` (includes content)`;\n }\n return summary;\n } else if (parsedTx.fileAppend) {\n return `Append to File ${parsedTx.fileAppend.fileId || '(Unknown ID)'}`;\n } else if (parsedTx.fileUpdate) {\n return `Update File ${parsedTx.fileUpdate.fileId || '(Unknown ID)'}`;\n } else if (parsedTx.fileDelete) {\n return `Delete File ${parsedTx.fileDelete.fileId || '(Unknown ID)'}`;\n } else if (parsedTx.consensusUpdateTopic) {\n return `Update Topic ${\n parsedTx.consensusUpdateTopic.topicId || '(Unknown ID)'\n }`;\n } else if (parsedTx.consensusDeleteTopic) {\n return `Delete Topic ${\n parsedTx.consensusDeleteTopic.topicId || '(Unknown ID)'\n }`;\n } else if (parsedTx.tokenUpdate) {\n return `Update Token ${parsedTx.tokenUpdate.tokenId || '(Unknown ID)'}`;\n } else if (parsedTx.tokenFeeScheduleUpdate) {\n return `Update Fee Schedule for Token ${\n parsedTx.tokenFeeScheduleUpdate.tokenId || '(Unknown ID)'\n }`;\n } else if (parsedTx.utilPrng) {\n let summary = 'Generate Random Number';\n if (parsedTx.utilPrng.range && parsedTx.utilPrng.range > 0) {\n summary += ` (range up to ${parsedTx.utilPrng.range - 1})`;\n }\n return summary;\n } else if (parsedTx.tokenFreeze) {\n return `Freeze Token ${parsedTx.tokenFreeze.tokenId} for Account ${parsedTx.tokenFreeze.accountId}`;\n } else if (parsedTx.tokenUnfreeze) {\n return `Unfreeze Token ${parsedTx.tokenUnfreeze.tokenId} for Account ${parsedTx.tokenUnfreeze.accountId}`;\n } else if (parsedTx.tokenGrantKyc) {\n return `Grant KYC for Token ${parsedTx.tokenGrantKyc.tokenId} to Account ${parsedTx.tokenGrantKyc.accountId}`;\n } else if (parsedTx.tokenRevokeKyc) {\n return `Revoke KYC for Token ${parsedTx.tokenRevokeKyc.tokenId} from Account ${parsedTx.tokenRevokeKyc.accountId}`;\n } else if (parsedTx.tokenPause) {\n return `Pause Token ${parsedTx.tokenPause.tokenId}`;\n } else if (parsedTx.tokenUnpause) {\n return `Unpause Token ${parsedTx.tokenUnpause.tokenId}`;\n } else if (parsedTx.tokenWipeAccount) {\n let summary = `Wipe Token ${parsedTx.tokenWipeAccount.tokenId} from Account ${parsedTx.tokenWipeAccount.accountId}`;\n if (parsedTx.tokenWipeAccount.serialNumbers?.length) {\n summary += ` (Serials: ${parsedTx.tokenWipeAccount.serialNumbers.join(\n ', '\n )})`;\n }\n if (parsedTx.tokenWipeAccount.amount) {\n summary += ` (Amount: ${parsedTx.tokenWipeAccount.amount})`;\n }\n return summary;\n } else if (parsedTx.tokenDelete) {\n return `Delete Token ${parsedTx.tokenDelete.tokenId}`;\n } else if (parsedTx.tokenAssociate) {\n return `Associate Account ${\n parsedTx.tokenAssociate.accountId\n } with Tokens: ${parsedTx.tokenAssociate.tokenIds?.join(', ')}`;\n } else if (parsedTx.tokenDissociate) {\n return `Dissociate Account ${\n parsedTx.tokenDissociate.accountId\n } from Tokens: ${parsedTx.tokenDissociate.tokenIds?.join(', ')}`;\n } else if (parsedTx.cryptoDelete) {\n return `Delete Account ${parsedTx.cryptoDelete.deleteAccountId}`;\n }\n if (\n parsedTx.humanReadableType &&\n parsedTx.humanReadableType !== 'Unknown Transaction'\n ) {\n return parsedTx.humanReadableType;\n }\n if (parsedTx.tokenTransfers.length > 0) {\n const tokenGroups: Record<string, TokenAmount[]> = {};\n for (const transfer of parsedTx.tokenTransfers) {\n if (!tokenGroups[transfer.tokenId]) {\n tokenGroups[transfer.tokenId] = [];\n }\n tokenGroups[transfer.tokenId].push(transfer);\n }\n const tokenSummaries = [];\n for (const [tokenId, transfers] of Object.entries(tokenGroups)) {\n const tokenSenders = transfers\n .filter((t) => t.amount < 0)\n .map((t) => `${t.accountId} (${Math.abs(t.amount)})`);\n const tokenReceivers = transfers\n .filter((t) => t.amount > 0)\n .map((t) => `${t.accountId} (${t.amount})`);\n if (tokenSenders.length > 0 && tokenReceivers.length > 0) {\n tokenSummaries.push(\n `Transfer of token ${tokenId} from ${tokenSenders.join(\n ', '\n )} to ${tokenReceivers.join(', ')}`\n );\n } else if (tokenReceivers.length > 0) {\n tokenSummaries.push(\n `Token ${tokenId} received by ${tokenReceivers.join(', ')}`\n );\n } else if (tokenSenders.length > 0) {\n tokenSummaries.push(\n `Token ${tokenId} sent from ${tokenSenders.join(', ')}`\n );\n }\n }\n if (tokenSummaries.length > 0) return tokenSummaries.join('; ');\n }\n\n return 'Unknown Transaction';\n }\n}\n"],"names":["ethers.decodeBase64","Buffer"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import Buffer from "./standards-sdk.es25.js";
2
- import { I as InscriptionSDK } from "./standards-sdk.es28.js";
1
+ import Buffer from "./standards-sdk.es28.js";
2
+ import { I as InscriptionSDK } from "./standards-sdk.es36.js";
3
3
  import { Logger } from "./standards-sdk.es15.js";
4
4
  import { ProgressReporter } from "./standards-sdk.es17.js";
5
5
  async function inscribe(input, clientConfig, options, existingSDK) {
@@ -1,9 +1,9 @@
1
- import Buffer from "./standards-sdk.es25.js";
1
+ import Buffer from "./standards-sdk.es28.js";
2
2
  import { PublicKey, Timestamp, AccountId } from "@hashgraph/sdk";
3
- import "./standards-sdk.es31.js";
3
+ import "./standards-sdk.es26.js";
4
4
  import { Logger } from "./standards-sdk.es15.js";
5
5
  import { proto } from "@hashgraph/proto";
6
- import axios from "./standards-sdk.es32.js";
6
+ import axios from "./standards-sdk.es27.js";
7
7
  class HederaMirrorNode {
8
8
  constructor(network, logger) {
9
9
  this.maxRetries = 3;
@@ -10,16 +10,16 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
10
10
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
11
11
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
12
12
  var _errors, _events, _functions, _abiCoder, _Interface_instances, getFunction_fn, getEvent_fn;
13
- import { keccak256 } from "./standards-sdk.es42.js";
14
- import { AbiCoder } from "./standards-sdk.es45.js";
15
- import { Result } from "./standards-sdk.es46.js";
16
- import { Fragment, ConstructorFragment, FunctionFragment, EventFragment, ErrorFragment, ParamType } from "./standards-sdk.es56.js";
17
- import { Typed } from "./standards-sdk.es62.js";
18
- import { defineProperties } from "./standards-sdk.es59.js";
19
- import { assertArgument, assert } from "./standards-sdk.es57.js";
20
- import { isHexString, dataSlice, concat, getBytesCopy, hexlify, getBytes, zeroPadBytes, zeroPadValue } from "./standards-sdk.es44.js";
21
- import { id } from "./standards-sdk.es60.js";
22
- import { getBigInt, toBeHex } from "./standards-sdk.es61.js";
13
+ import { keccak256 } from "./standards-sdk.es91.js";
14
+ import { AbiCoder } from "./standards-sdk.es94.js";
15
+ import { Result } from "./standards-sdk.es95.js";
16
+ import { Fragment, ConstructorFragment, FunctionFragment, EventFragment, ErrorFragment, ParamType } from "./standards-sdk.es105.js";
17
+ import { Typed } from "./standards-sdk.es109.js";
18
+ import { defineProperties } from "./standards-sdk.es106.js";
19
+ import { assertArgument, assert } from "./standards-sdk.es92.js";
20
+ import { isHexString, dataSlice, concat, getBytesCopy, hexlify, getBytes, zeroPadBytes, zeroPadValue } from "./standards-sdk.es93.js";
21
+ import { id } from "./standards-sdk.es107.js";
22
+ import { getBigInt, toBeHex } from "./standards-sdk.es108.js";
23
23
  class LogDescription {
24
24
  /**
25
25
  * @_ignore: