@cfxjs/sirius-next-common 0.2.19 → 0.2.21-fix-error-publish

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 (208) hide show
  1. package/dist/{chunk-CMOP3BKX.js → chunk-225VMTCA.js} +3 -3
  2. package/dist/{chunk-LCIBOT5P.js → chunk-3JIAKQ23.js} +2 -2
  3. package/dist/{chunk-C7OIVXE3.js → chunk-4B7BV62E.js} +3 -3
  4. package/dist/chunk-4BS66NNM.js +29 -0
  5. package/dist/chunk-4BS66NNM.js.map +1 -0
  6. package/dist/{chunk-S7M6UTND.js → chunk-4M53GHPD.js} +6 -6
  7. package/dist/{chunk-GHHUAWSG.js → chunk-524EB4WC.js} +3 -3
  8. package/dist/chunk-5AM5HM3B.js +10 -0
  9. package/dist/chunk-5AM5HM3B.js.map +1 -0
  10. package/dist/{chunk-XZL5CZFT.js → chunk-5MJZWIYI.js} +4 -4
  11. package/dist/chunk-6C5NQACS.js +202 -0
  12. package/dist/chunk-6C5NQACS.js.map +1 -0
  13. package/dist/{chunk-H5ZJBRIK.js → chunk-6PKWA444.js} +4 -4
  14. package/dist/{chunk-C3E5EA6J.js → chunk-734CQOS7.js} +10 -10
  15. package/dist/{chunk-C3E5EA6J.js.map → chunk-734CQOS7.js.map} +1 -1
  16. package/dist/chunk-7RLNWQIR.js +192 -0
  17. package/dist/chunk-7RLNWQIR.js.map +1 -0
  18. package/dist/{chunk-RUU22F7R.js → chunk-7VFOHX3W.js} +2 -2
  19. package/dist/{chunk-BEI5TWJL.js → chunk-7WDLTRBN.js} +2 -2
  20. package/dist/{chunk-AYCHKB2Y.js → chunk-A3IT7RYO.js} +2 -2
  21. package/dist/{chunk-UF5BN4QN.js → chunk-A3VPSWVX.js} +2 -2
  22. package/dist/chunk-A46LVI25.js +82 -0
  23. package/dist/chunk-A46LVI25.js.map +1 -0
  24. package/dist/chunk-A6B5V6XY.js +140 -0
  25. package/dist/chunk-A6B5V6XY.js.map +1 -0
  26. package/dist/{chunk-ELF2EOGF.js → chunk-AQFNXW4W.js} +2 -2
  27. package/dist/chunk-ASS6TOFE.js +72 -0
  28. package/dist/chunk-ASS6TOFE.js.map +1 -0
  29. package/dist/{chunk-NM3BMITL.js → chunk-B5JCHBO3.js} +2 -2
  30. package/dist/{chunk-DCQANK66.js → chunk-BGNBKP5R.js} +2 -2
  31. package/dist/{chunk-6L4ZEJQI.js → chunk-BN3ATGHU.js} +2 -2
  32. package/dist/chunk-C6GUZVQ2.js +130 -0
  33. package/dist/chunk-C6GUZVQ2.js.map +1 -0
  34. package/dist/chunk-CNXGYDZG.js +146 -0
  35. package/dist/chunk-CNXGYDZG.js.map +1 -0
  36. package/dist/chunk-DASMAZXS.js +71 -0
  37. package/dist/{chunk-GPQN2P32.js → chunk-DO6PJAZB.js} +5 -5
  38. package/dist/chunk-E7FB4S3X.js +276 -0
  39. package/dist/chunk-E7FB4S3X.js.map +1 -0
  40. package/dist/{chunk-BHAXBHVC.js → chunk-EHRGH3HS.js} +4 -4
  41. package/dist/chunk-EOSVUB2G.js +51 -0
  42. package/dist/chunk-EOSVUB2G.js.map +1 -0
  43. package/dist/chunk-FGPRA3A4.js +80 -0
  44. package/dist/chunk-FGPRA3A4.js.map +1 -0
  45. package/dist/{chunk-UZALXR3J.js → chunk-FJMV3UA7.js} +4 -4
  46. package/dist/{chunk-YVV32ON3.js → chunk-FSYB23NA.js} +2 -2
  47. package/dist/{chunk-TC4445WV.js → chunk-FTAFV6RE.js} +5 -5
  48. package/dist/chunk-FW5ON36S.js +212 -0
  49. package/dist/chunk-FW5ON36S.js.map +1 -0
  50. package/dist/chunk-HCEXWKMZ.js +90 -0
  51. package/dist/chunk-HCEXWKMZ.js.map +1 -0
  52. package/dist/chunk-HW5VD7EO.js +17 -0
  53. package/dist/chunk-HW5VD7EO.js.map +1 -0
  54. package/dist/{chunk-GQRCW7WX.js → chunk-J536GL5G.js} +2 -2
  55. package/dist/{chunk-DYNSSHD5.js → chunk-J7UQ2R3H.js} +7 -7
  56. package/dist/{chunk-YEAWH772.js → chunk-JBCKAHH7.js} +2 -2
  57. package/dist/{chunk-7VQL3G7K.js → chunk-JKFT4JUY.js} +4 -4
  58. package/dist/chunk-L7RD6ZPE.js +534 -0
  59. package/dist/chunk-L7RD6ZPE.js.map +1 -0
  60. package/dist/{chunk-W64AF7LA.js → chunk-MFCMTOYM.js} +5 -5
  61. package/dist/chunk-MQY7EQPG.js +284 -0
  62. package/dist/chunk-MQY7EQPG.js.map +1 -0
  63. package/dist/chunk-MWSXXVVL.js +157 -0
  64. package/dist/chunk-MWSXXVVL.js.map +1 -0
  65. package/dist/chunk-O6BP54O6.js +63 -0
  66. package/dist/chunk-O6BP54O6.js.map +1 -0
  67. package/dist/chunk-OFAM2QTT.js +17 -0
  68. package/dist/chunk-OFAM2QTT.js.map +1 -0
  69. package/dist/{chunk-2WEBXRNL.js → chunk-OSPPP5W5.js} +2 -2
  70. package/dist/chunk-OT252GGM.js +66 -0
  71. package/dist/chunk-OT252GGM.js.map +1 -0
  72. package/dist/{chunk-WZIT54AU.js → chunk-OTSNM4CR.js} +2 -2
  73. package/dist/chunk-OTSNM4CR.js.map +1 -0
  74. package/dist/chunk-QX7AGYA5.js +2149 -0
  75. package/dist/chunk-QX7AGYA5.js.map +1 -0
  76. package/dist/chunk-R62HRSIY.js +145 -0
  77. package/dist/chunk-R62HRSIY.js.map +1 -0
  78. package/dist/{chunk-OT7NZ4PK.js → chunk-RLA5XZT2.js} +3 -3
  79. package/dist/chunk-RLA5XZT2.js.map +1 -0
  80. package/dist/{chunk-MUW5KBWU.js → chunk-RWTNG7SM.js} +8 -4
  81. package/dist/chunk-RWTNG7SM.js.map +1 -0
  82. package/dist/chunk-SIZYE6WH.js +3616 -0
  83. package/dist/chunk-SIZYE6WH.js.map +1 -0
  84. package/dist/chunk-SNUPCZY7.js +812 -0
  85. package/dist/chunk-SNUPCZY7.js.map +1 -0
  86. package/dist/{chunk-VGYNHJFT.js → chunk-SYWQ2T57.js} +8 -7
  87. package/dist/chunk-SYWQ2T57.js.map +1 -0
  88. package/dist/chunk-TGWQSVFC.js +26 -0
  89. package/dist/chunk-TGWQSVFC.js.map +1 -0
  90. package/dist/chunk-UVRMLFMC.js +21 -0
  91. package/dist/chunk-UVRMLFMC.js.map +1 -0
  92. package/dist/chunk-UX6IRX2M.js +146 -0
  93. package/dist/chunk-UX6IRX2M.js.map +1 -0
  94. package/dist/chunk-VD73ULXJ.js +107 -0
  95. package/dist/chunk-VD73ULXJ.js.map +1 -0
  96. package/dist/chunk-VEK5DLFI.js +23 -0
  97. package/dist/chunk-VEK5DLFI.js.map +1 -0
  98. package/dist/chunk-VTHVXZOP.js +112 -0
  99. package/dist/chunk-VTHVXZOP.js.map +1 -0
  100. package/dist/chunk-WY3RJ3A6.js +51 -0
  101. package/dist/chunk-XI5WO2NW.js +37 -0
  102. package/dist/chunk-XI5WO2NW.js.map +1 -0
  103. package/dist/{chunk-C6CGZ6KN.js → chunk-YOCMEOLX.js} +2 -2
  104. package/dist/chunk-YOVNVFY2.js +105 -0
  105. package/dist/chunk-YOVNVFY2.js.map +1 -0
  106. package/dist/{chunk-7AVQOIDM.js → chunk-Z64Z5HLJ.js} +2 -2
  107. package/dist/components/AAFailedReason/index.d.ts +11 -0
  108. package/dist/components/AAFailedReason/index.js +41 -0
  109. package/dist/components/AAFailedReason/index.js.map +1 -0
  110. package/dist/components/AceEditor/index.js +4 -4
  111. package/dist/components/AddressContainer/CoreAddressContainer.js +10 -10
  112. package/dist/components/AddressContainer/EVMAddressContainer.js +9 -9
  113. package/dist/components/AddressContainer/addressSwitcher.js +7 -7
  114. package/dist/components/AddressContainer/addressView.js +6 -6
  115. package/dist/components/AddressContainer/label.js +3 -3
  116. package/dist/components/AddressContainer/utils.js +3 -3
  117. package/dist/components/Age/index.js +4 -4
  118. package/dist/components/AutoComplete/index.js +3 -3
  119. package/dist/components/Charts/PreviewChartTemplate.js +1 -1
  120. package/dist/components/Charts/StockChartTemplate.js +1 -1
  121. package/dist/components/CopyButton/index.js +3 -3
  122. package/dist/components/DecimalsSelect/index.js +3 -3
  123. package/dist/components/DownloadCSV/index.js +4 -4
  124. package/dist/components/GasPriceDropdown/index.js +2 -2
  125. package/dist/components/IncreasePercent/index.js +2 -2
  126. package/dist/components/InfoIconWithTooltip/index.js +4 -4
  127. package/dist/components/InputData/AddressLabel.js +8 -8
  128. package/dist/components/InputData/ContractDetail.js +3 -3
  129. package/dist/components/InputData/JsonDecode.js +5 -5
  130. package/dist/components/InputData/OptimizationDecode.js +10 -10
  131. package/dist/components/InputData/UTF8.js +3 -3
  132. package/dist/components/InputData/index.js +14 -14
  133. package/dist/components/Modal/index.js +3 -3
  134. package/dist/components/NetworkIcon/index.js +2 -2
  135. package/dist/components/OutputData/ErrorDecode.js +13 -13
  136. package/dist/components/OutputData/index.js +15 -15
  137. package/dist/components/PhishingAddressContainer/index.js +4 -4
  138. package/dist/components/Popover/index.js +3 -3
  139. package/dist/components/Price/index.js +3 -3
  140. package/dist/components/ProxyContractAddress/index.js +6 -6
  141. package/dist/components/Radio/index.js +2 -2
  142. package/dist/components/SearchInput/index.js +4 -4
  143. package/dist/components/Select/index.js +4 -4
  144. package/dist/components/Select/select.js +3 -3
  145. package/dist/components/SmartAccountAddress/index.d.ts +11 -0
  146. package/dist/components/SmartAccountAddress/index.js +94 -0
  147. package/dist/components/SmartAccountAddress/index.js.map +1 -0
  148. package/dist/components/Text/index.js +4 -4
  149. package/dist/components/Tooltip/index.js +3 -3
  150. package/dist/components/TransactionAction/coreTransactionAction.js +23 -18
  151. package/dist/components/TransactionAction/coreTransactionAction.js.map +1 -1
  152. package/dist/components/TransactionAction/evmTransactionAction.js +22 -17
  153. package/dist/components/TransactionAction/evmTransactionAction.js.map +1 -1
  154. package/dist/components/TransactionTrace/TraceDetail.js +23 -23
  155. package/dist/components/TransactionTrace/TreeTraceTable.js +24 -24
  156. package/dist/components/TransactionTrace/index.js +24 -24
  157. package/dist/utils/address.js +2 -2
  158. package/dist/utils/contractManagerTool.js +2 -2
  159. package/dist/utils/hooks/useAddressLabel.js +3 -3
  160. package/dist/utils/hooks/useAddressNameMap.d.ts +7 -2
  161. package/dist/utils/hooks/useAddressNameMap.js +4 -2
  162. package/dist/utils/hooks/useAutoSetHolderFilterParams.js +2 -2
  163. package/dist/utils/hooks/useContractDetail.js +2 -2
  164. package/dist/utils/hooks/useDecodeFunctionData.js +5 -5
  165. package/dist/utils/hooks/useDecodeFunctionError.js +3 -3
  166. package/dist/utils/hooks/useENS.js +3 -3
  167. package/dist/utils/hooks/useEnhanceDataWithNameMap.d.ts +1 -4
  168. package/dist/utils/hooks/useEnhanceDataWithNameMap.js +3 -6
  169. package/dist/utils/hooks/useEnhanceDataWithNameMap.js.map +1 -1
  170. package/dist/utils/hooks/useMethodAbi.js +2 -2
  171. package/dist/utils/hooks/useTableData.js +1 -1
  172. package/dist/utils/hooks/useTxTrace.js +3 -3
  173. package/dist/utils/index.js +2 -2
  174. package/dist/utils/request.d.ts +1 -0
  175. package/dist/utils/request.js +1 -1
  176. package/package.json +17 -17
  177. package/dist/chunk-MUW5KBWU.js.map +0 -1
  178. package/dist/chunk-VGYNHJFT.js.map +0 -1
  179. /package/dist/{chunk-CMOP3BKX.js.map → chunk-225VMTCA.js.map} +0 -0
  180. /package/dist/{chunk-LCIBOT5P.js.map → chunk-3JIAKQ23.js.map} +0 -0
  181. /package/dist/{chunk-C7OIVXE3.js.map → chunk-4B7BV62E.js.map} +0 -0
  182. /package/dist/{chunk-S7M6UTND.js.map → chunk-4M53GHPD.js.map} +0 -0
  183. /package/dist/{chunk-GHHUAWSG.js.map → chunk-524EB4WC.js.map} +0 -0
  184. /package/dist/{chunk-XZL5CZFT.js.map → chunk-5MJZWIYI.js.map} +0 -0
  185. /package/dist/{chunk-H5ZJBRIK.js.map → chunk-6PKWA444.js.map} +0 -0
  186. /package/dist/{chunk-RUU22F7R.js.map → chunk-7VFOHX3W.js.map} +0 -0
  187. /package/dist/{chunk-BEI5TWJL.js.map → chunk-7WDLTRBN.js.map} +0 -0
  188. /package/dist/{chunk-AYCHKB2Y.js.map → chunk-A3IT7RYO.js.map} +0 -0
  189. /package/dist/{chunk-UF5BN4QN.js.map → chunk-A3VPSWVX.js.map} +0 -0
  190. /package/dist/{chunk-ELF2EOGF.js.map → chunk-AQFNXW4W.js.map} +0 -0
  191. /package/dist/{chunk-NM3BMITL.js.map → chunk-B5JCHBO3.js.map} +0 -0
  192. /package/dist/{chunk-DCQANK66.js.map → chunk-BGNBKP5R.js.map} +0 -0
  193. /package/dist/{chunk-6L4ZEJQI.js.map → chunk-BN3ATGHU.js.map} +0 -0
  194. /package/dist/{chunk-OT7NZ4PK.js.map → chunk-DASMAZXS.js.map} +0 -0
  195. /package/dist/{chunk-GPQN2P32.js.map → chunk-DO6PJAZB.js.map} +0 -0
  196. /package/dist/{chunk-BHAXBHVC.js.map → chunk-EHRGH3HS.js.map} +0 -0
  197. /package/dist/{chunk-UZALXR3J.js.map → chunk-FJMV3UA7.js.map} +0 -0
  198. /package/dist/{chunk-YVV32ON3.js.map → chunk-FSYB23NA.js.map} +0 -0
  199. /package/dist/{chunk-TC4445WV.js.map → chunk-FTAFV6RE.js.map} +0 -0
  200. /package/dist/{chunk-GQRCW7WX.js.map → chunk-J536GL5G.js.map} +0 -0
  201. /package/dist/{chunk-DYNSSHD5.js.map → chunk-J7UQ2R3H.js.map} +0 -0
  202. /package/dist/{chunk-YEAWH772.js.map → chunk-JBCKAHH7.js.map} +0 -0
  203. /package/dist/{chunk-7VQL3G7K.js.map → chunk-JKFT4JUY.js.map} +0 -0
  204. /package/dist/{chunk-W64AF7LA.js.map → chunk-MFCMTOYM.js.map} +0 -0
  205. /package/dist/{chunk-2WEBXRNL.js.map → chunk-OSPPP5W5.js.map} +0 -0
  206. /package/dist/{chunk-WZIT54AU.js.map → chunk-WY3RJ3A6.js.map} +0 -0
  207. /package/dist/{chunk-C6CGZ6KN.js.map → chunk-YOCMEOLX.js.map} +0 -0
  208. /package/dist/{chunk-7AVQOIDM.js.map → chunk-Z64Z5HLJ.js.map} +0 -0
@@ -0,0 +1,192 @@
1
+ import {
2
+ useDecodeFunctionData
3
+ } from "./chunk-6C5NQACS.js";
4
+ import {
5
+ useDecodedDataType
6
+ } from "./chunk-UM5J477V.js";
7
+ import {
8
+ Select
9
+ } from "./chunk-VD73ULXJ.js";
10
+ import {
11
+ OutputData
12
+ } from "./chunk-ASS6TOFE.js";
13
+ import {
14
+ InputData
15
+ } from "./chunk-OT252GGM.js";
16
+ import {
17
+ AbiWarning
18
+ } from "./chunk-XBEBAU77.js";
19
+ import {
20
+ Card
21
+ } from "./chunk-O6NJ56NA.js";
22
+ import {
23
+ getTranslations
24
+ } from "./chunk-DQGLZCIG.js";
25
+
26
+ // src/components/TransactionTrace/TraceDetail.tsx
27
+ import { useTranslation } from "react-i18next";
28
+ import clsx from "clsx";
29
+ import { useState } from "react";
30
+ import { jsx, jsxs } from "react/jsx-runtime";
31
+ var CommonTraceDetail = ({
32
+ to,
33
+ input = "0x",
34
+ output,
35
+ outcome = "success",
36
+ abi,
37
+ isContractCreated,
38
+ space,
39
+ implementation
40
+ }) => {
41
+ const success = outcome === "success";
42
+ const { t } = useTranslation();
43
+ const translations = getTranslations();
44
+ const [decodedData, isLoading] = useDecodeFunctionData({
45
+ to,
46
+ input,
47
+ output,
48
+ success,
49
+ space,
50
+ abi,
51
+ withOutput: true
52
+ });
53
+ const { dataType, setDataType, dataTypeList, tip } = useDecodedDataType({
54
+ to,
55
+ input,
56
+ isContractCreated,
57
+ decodedData
58
+ });
59
+ const isReturnDataEmpty = !output || output === "0x";
60
+ let outputDataType = dataType;
61
+ if ((outputDataType === "optimizationDecode" || outputDataType === "generalDecode") && outcome === "fail") {
62
+ outputDataType = "utf8";
63
+ }
64
+ return /* @__PURE__ */ jsxs(Card, { className: "!border-1 !border-#E8E9EA py-10px", children: [
65
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-5px", children: [
66
+ /* @__PURE__ */ jsx("div", { className: "w-150px shrink-0" }),
67
+ /* @__PURE__ */ jsx(
68
+ Select,
69
+ {
70
+ value: dataType,
71
+ onChange: setDataType,
72
+ disableMatchWidth: true,
73
+ size: "medium",
74
+ className: "mb-16px mt-0 bg-#fff border border-solid border-#ccc",
75
+ disabled: dataTypeList.length === 1,
76
+ width: 180,
77
+ children: dataTypeList.map((dataTypeItem) => {
78
+ return /* @__PURE__ */ jsx(
79
+ Select.Option,
80
+ {
81
+ className: "data-[highlighted]:bg-[var(--theme-color-green2)] data-[highlighted]:text-#fff",
82
+ value: dataTypeItem,
83
+ children: t(translations.transaction.select[dataTypeItem])
84
+ },
85
+ dataTypeItem
86
+ );
87
+ })
88
+ }
89
+ )
90
+ ] }),
91
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-5px", children: [
92
+ dataType !== "optimizationDecode" && /* @__PURE__ */ jsx("div", { className: "w-150px shrink-0", children: dataType === "json" ? "In and Out Data" : "Input Data" }),
93
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
94
+ InputData,
95
+ {
96
+ dataType,
97
+ input,
98
+ decodedData,
99
+ space,
100
+ labelClassName: "text-#002257 w-150px",
101
+ success
102
+ }
103
+ ) })
104
+ ] }),
105
+ dataType !== "json" && !isReturnDataEmpty && /* @__PURE__ */ jsxs("div", { className: "flex gap-5px mt-16px", children: [
106
+ outputDataType !== "optimizationDecode" && /* @__PURE__ */ jsx("div", { className: clsx("w-150px shrink-0", !success && "text-red"), children: outcome === "success" ? "Output Data" : outcome === "fail" ? "Failed" : "Error" }),
107
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
108
+ OutputData,
109
+ {
110
+ dataType: outputDataType,
111
+ output,
112
+ decodedData,
113
+ space,
114
+ implementation,
115
+ success,
116
+ to,
117
+ labelClassName: clsx(
118
+ "w-150px",
119
+ !success ? "text-red" : "text-#002257"
120
+ )
121
+ }
122
+ ) })
123
+ ] }),
124
+ !isLoading && /* @__PURE__ */ jsx(AbiWarning, { tip, className: "ml-150px" })
125
+ ] });
126
+ };
127
+ var CreateContractFailedTraceDetail = ({
128
+ to,
129
+ output,
130
+ space,
131
+ implementation,
132
+ outcome
133
+ }) => {
134
+ const [dataType, setDataType] = useState("utf8");
135
+ const { t } = useTranslation();
136
+ const translations = getTranslations();
137
+ const dataTypeList = ["original", "utf8"];
138
+ return /* @__PURE__ */ jsxs(Card, { className: "!border-1 !border-#E8E9EA py-10px", children: [
139
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-5px", children: [
140
+ /* @__PURE__ */ jsx("div", { className: "w-150px shrink-0" }),
141
+ /* @__PURE__ */ jsx(
142
+ Select,
143
+ {
144
+ value: dataType,
145
+ onChange: setDataType,
146
+ disableMatchWidth: true,
147
+ size: "medium",
148
+ className: "mb-16px mt-0 bg-#fff border border-solid border-#ccc",
149
+ disabled: dataTypeList.length === 1,
150
+ width: 180,
151
+ children: dataTypeList.map((dataTypeItem) => {
152
+ return /* @__PURE__ */ jsx(
153
+ Select.Option,
154
+ {
155
+ className: "data-[highlighted]:bg-[var(--theme-color-green2)] data-[highlighted]:text-#fff",
156
+ value: dataTypeItem,
157
+ children: t(translations.transaction.select[dataTypeItem])
158
+ },
159
+ dataTypeItem
160
+ );
161
+ })
162
+ }
163
+ )
164
+ ] }),
165
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-5px mt-16px", children: [
166
+ /* @__PURE__ */ jsx("div", { className: clsx("w-150px shrink-0 text-red"), children: outcome === "fail" ? "Failed" : "Error" }),
167
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
168
+ OutputData,
169
+ {
170
+ dataType,
171
+ output,
172
+ space,
173
+ implementation,
174
+ success: false,
175
+ to,
176
+ labelClassName: "w-150px text-red"
177
+ }
178
+ ) })
179
+ ] })
180
+ ] });
181
+ };
182
+ var TraceDetail = (props) => {
183
+ const { outcome = "success", isContractCreated } = props;
184
+ if (isContractCreated && outcome !== "success")
185
+ return /* @__PURE__ */ jsx(CreateContractFailedTraceDetail, { ...props });
186
+ return /* @__PURE__ */ jsx(CommonTraceDetail, { ...props });
187
+ };
188
+
189
+ export {
190
+ TraceDetail
191
+ };
192
+ //# sourceMappingURL=chunk-7RLNWQIR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/TransactionTrace/TraceDetail.tsx"],"sourcesContent":["import { Card } from '../Card';\nimport { Select } from '../Select';\nimport { useTranslation } from 'react-i18next';\nimport { getTranslations } from 'src/store';\nimport clsx from 'clsx';\nimport { useDecodeFunctionData } from 'src/utils/hooks/useDecodeFunctionData';\nimport {\n DataType,\n useDecodedDataType,\n} from 'src/utils/hooks/useDecodedDataType';\nimport { InputData } from '../InputData';\nimport { OutputData } from '../OutputData';\nimport { AbiFunctionWithoutGas } from 'src/utils/sdk';\nimport { useState } from 'react';\nimport { AbiWarning } from '../InputData/AbiWarning';\n\ninterface Props {\n to?: string;\n isContractCreated?: boolean;\n input?: `0x${string}`;\n output?: `0x${string}`;\n abi?: AbiFunctionWithoutGas[];\n outcome?: 'success' | 'fail' | 'reverted';\n space: 'evm' | 'core';\n implementation?: string;\n}\n\nconst CommonTraceDetail = ({\n to,\n input = '0x',\n output,\n outcome = 'success',\n abi,\n isContractCreated,\n space,\n implementation,\n}: Props) => {\n const success = outcome === 'success';\n const { t } = useTranslation();\n const translations = getTranslations();\n const [decodedData, isLoading] = useDecodeFunctionData({\n to,\n input,\n output,\n success,\n space,\n abi,\n withOutput: true,\n });\n const { dataType, setDataType, dataTypeList, tip } = useDecodedDataType({\n to,\n input,\n isContractCreated,\n decodedData,\n });\n const isReturnDataEmpty = !output || output === '0x';\n let outputDataType = dataType;\n // when the transaction failed, the output is the error message, use utf8 as decode type\n if (\n (outputDataType === 'optimizationDecode' ||\n outputDataType === 'generalDecode') &&\n outcome === 'fail'\n ) {\n outputDataType = 'utf8';\n }\n\n return (\n <Card className=\"!border-1 !border-#E8E9EA py-10px\">\n <div className=\"flex gap-5px\">\n <div className=\"w-150px shrink-0\"></div>\n <Select\n value={dataType}\n onChange={setDataType}\n disableMatchWidth\n size=\"medium\"\n className=\"mb-16px mt-0 bg-#fff border border-solid border-#ccc\"\n disabled={dataTypeList.length === 1}\n width={180}\n >\n {dataTypeList.map(dataTypeItem => {\n return (\n <Select.Option\n className=\"data-[highlighted]:bg-[var(--theme-color-green2)] data-[highlighted]:text-#fff\"\n key={dataTypeItem}\n value={dataTypeItem}\n >\n {t(translations.transaction.select[dataTypeItem])}\n </Select.Option>\n );\n })}\n </Select>\n </div>\n <div className=\"flex gap-5px\">\n {dataType !== 'optimizationDecode' && (\n <div className=\"w-150px shrink-0\">\n {dataType === 'json' ? 'In and Out Data' : 'Input Data'}\n </div>\n )}\n <div className=\"flex-1\">\n <InputData\n dataType={dataType}\n input={input}\n decodedData={decodedData}\n space={space}\n labelClassName=\"text-#002257 w-150px\"\n success={success}\n />\n </div>\n </div>\n {dataType !== 'json' && !isReturnDataEmpty && (\n <div className=\"flex gap-5px mt-16px\">\n {outputDataType !== 'optimizationDecode' && (\n <div className={clsx('w-150px shrink-0', !success && 'text-red')}>\n {outcome === 'success'\n ? 'Output Data'\n : outcome === 'fail'\n ? 'Failed'\n : 'Error'}\n </div>\n )}\n <div className=\"flex-1\">\n <OutputData\n dataType={outputDataType}\n output={output}\n decodedData={decodedData}\n space={space}\n implementation={implementation}\n success={success}\n to={to}\n labelClassName={clsx(\n 'w-150px',\n !success ? 'text-red' : 'text-#002257',\n )}\n />\n </div>\n </div>\n )}\n {!isLoading && <AbiWarning tip={tip} className=\"ml-150px\" />}\n </Card>\n );\n};\n\n// create contract failed may return error data, but it's not standard, so we only show error info for it\nconst CreateContractFailedTraceDetail = ({\n to,\n output,\n space,\n implementation,\n outcome,\n}: Props) => {\n const [dataType, setDataType] = useState<DataType>('utf8');\n const { t } = useTranslation();\n const translations = getTranslations();\n const dataTypeList = ['original', 'utf8'] as DataType[];\n\n return (\n <Card className=\"!border-1 !border-#E8E9EA py-10px\">\n <div className=\"flex gap-5px\">\n <div className=\"w-150px shrink-0\"></div>\n <Select\n value={dataType}\n onChange={setDataType}\n disableMatchWidth\n size=\"medium\"\n className=\"mb-16px mt-0 bg-#fff border border-solid border-#ccc\"\n disabled={dataTypeList.length === 1}\n width={180}\n >\n {dataTypeList.map(dataTypeItem => {\n return (\n <Select.Option\n className=\"data-[highlighted]:bg-[var(--theme-color-green2)] data-[highlighted]:text-#fff\"\n key={dataTypeItem}\n value={dataTypeItem}\n >\n {t(translations.transaction.select[dataTypeItem])}\n </Select.Option>\n );\n })}\n </Select>\n </div>\n <div className=\"flex gap-5px mt-16px\">\n <div className={clsx('w-150px shrink-0 text-red')}>\n {outcome === 'fail' ? 'Failed' : 'Error'}\n </div>\n <div className=\"flex-1\">\n <OutputData\n dataType={dataType}\n output={output}\n space={space}\n implementation={implementation}\n success={false}\n to={to}\n labelClassName=\"w-150px text-red\"\n />\n </div>\n </div>\n </Card>\n );\n};\n\nexport const TraceDetail = (props: Props) => {\n const { outcome = 'success', isContractCreated } = props;\n if (isContractCreated && outcome !== 'success')\n return <CreateContractFailedTraceDetail {...props} />;\n return <CommonTraceDetail {...props} />;\n};\n"],"mappings":"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","names":[]}
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-LRCAKRPK.js";
15
15
  import {
16
16
  cn
17
- } from "./chunk-NM3BMITL.js";
17
+ } from "./chunk-B5JCHBO3.js";
18
18
 
19
19
  // src/components/Select/select.tsx
20
20
  import * as React9 from "react";
@@ -3613,4 +3613,4 @@ export {
3613
3613
  SelectItem,
3614
3614
  SelectSeparator
3615
3615
  };
3616
- //# sourceMappingURL=chunk-RUU22F7R.js.map
3616
+ //# sourceMappingURL=chunk-7VFOHX3W.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  reqAbiByMethodId
3
- } from "./chunk-VGYNHJFT.js";
3
+ } from "./chunk-E7FB4S3X.js";
4
4
 
5
5
  // src/utils/hooks/useMethodAbi.ts
6
6
  import useSWRImmutable from "swr/immutable";
@@ -14,4 +14,4 @@ var useMethodAbi = (methodId, shouldFetch = true) => {
14
14
  export {
15
15
  useMethodAbi
16
16
  };
17
- //# sourceMappingURL=chunk-BEI5TWJL.js.map
17
+ //# sourceMappingURL=chunk-7WDLTRBN.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-XCKMXAL2.js";
4
4
  import {
5
5
  cn
6
- } from "./chunk-NM3BMITL.js";
6
+ } from "./chunk-B5JCHBO3.js";
7
7
 
8
8
  // src/components/Modal/index.tsx
9
9
  import { useEffect, useCallback, useMemo } from "react";
@@ -137,4 +137,4 @@ var Modal = ({
137
137
  export {
138
138
  Modal
139
139
  };
140
- //# sourceMappingURL=chunk-AYCHKB2Y.js.map
140
+ //# sourceMappingURL=chunk-A3IT7RYO.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  hex2utf8
3
- } from "./chunk-NM3BMITL.js";
3
+ } from "./chunk-B5JCHBO3.js";
4
4
 
5
5
  // src/components/InputData/UTF8.tsx
6
6
  import { useMemo } from "react";
@@ -18,4 +18,4 @@ var UTF8 = ({ data }) => {
18
18
  export {
19
19
  UTF8
20
20
  };
21
- //# sourceMappingURL=chunk-UF5BN4QN.js.map
21
+ //# sourceMappingURL=chunk-A3VPSWVX.js.map
@@ -0,0 +1,82 @@
1
+ import {
2
+ TraceDetail
3
+ } from "./chunk-7RLNWQIR.js";
4
+ import {
5
+ Table
6
+ } from "./chunk-XZ7IV2FF.js";
7
+
8
+ // src/components/TransactionTrace/TreeTraceTable.tsx
9
+ import { useMemo } from "react";
10
+ import { concat, uniq } from "lodash";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
12
+ var TreeTraceTable = ({
13
+ data,
14
+ columns,
15
+ loading = false,
16
+ showHeader = true,
17
+ colorReverse,
18
+ treeExpandedKeys,
19
+ detailExpandedKeys,
20
+ space
21
+ }) => {
22
+ const expandedRowKeys = useMemo(() => {
23
+ return uniq(concat(treeExpandedKeys, detailExpandedKeys));
24
+ }, [treeExpandedKeys, detailExpandedKeys]);
25
+ return /* @__PURE__ */ jsx(
26
+ Table,
27
+ {
28
+ columns,
29
+ rowKey: "index",
30
+ data,
31
+ loading,
32
+ showHeader,
33
+ rowClassName: (record, index) => {
34
+ if (detailExpandedKeys.includes(record.index))
35
+ return "!bg-#f0f5ff";
36
+ return colorReverse ? index % 2 !== 0 ? "!bg-#f9fafb" : "!bg-transparent" : index % 2 !== 0 ? "!bg-transparent" : "!bg-#f9fafb";
37
+ },
38
+ expandable: {
39
+ showExpandColumn: false,
40
+ expandedRowKeys,
41
+ expandedRowRender: (record, index, indent, expanded) => {
42
+ if (!expanded)
43
+ return null;
44
+ const isDetailedExpanded = detailExpandedKeys.includes(record.index);
45
+ const isTreeExpanded = treeExpandedKeys.includes(record.index);
46
+ return /* @__PURE__ */ jsxs("div", { children: [
47
+ isDetailedExpanded && /* @__PURE__ */ jsx(
48
+ TraceDetail,
49
+ {
50
+ abi: record.abi,
51
+ input: record.input,
52
+ output: record.result?.returnData,
53
+ to: record.to,
54
+ outcome: record.result?.outcome,
55
+ isContractCreated: !!record.contractCreated,
56
+ space,
57
+ implementation: record.delegatedTo ?? record.proxy?.implAddress
58
+ }
59
+ ),
60
+ isTreeExpanded && /* @__PURE__ */ jsx(
61
+ TreeTraceTable,
62
+ {
63
+ data: record.calls,
64
+ columns,
65
+ showHeader: false,
66
+ colorReverse: colorReverse ? index % 2 !== 0 : index % 2 === 0,
67
+ treeExpandedKeys,
68
+ detailExpandedKeys,
69
+ space
70
+ }
71
+ )
72
+ ] });
73
+ }
74
+ }
75
+ }
76
+ );
77
+ };
78
+
79
+ export {
80
+ TreeTraceTable
81
+ };
82
+ //# sourceMappingURL=chunk-A46LVI25.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/TransactionTrace/TreeTraceTable.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { Table, TableProps } from '../Table';\nimport { concat, uniq } from 'lodash';\nimport { TraceDetail } from './TraceDetail';\nimport { TreeTraceForUI } from 'src/utils/hooks/useTxTrace';\n\nexport const TreeTraceTable = ({\n data,\n columns,\n loading = false,\n showHeader = true,\n colorReverse,\n treeExpandedKeys,\n detailExpandedKeys,\n space,\n}: {\n data?: TreeTraceForUI[];\n columns: TableProps<TreeTraceForUI>['columns'];\n loading?: boolean;\n showHeader?: boolean;\n colorReverse?: boolean;\n treeExpandedKeys: string[];\n detailExpandedKeys: string[];\n space: 'evm' | 'core';\n}) => {\n const expandedRowKeys = useMemo(() => {\n return uniq(concat(treeExpandedKeys, detailExpandedKeys));\n }, [treeExpandedKeys, detailExpandedKeys]);\n\n return (\n <Table\n columns={columns}\n rowKey=\"index\"\n data={data}\n loading={loading}\n showHeader={showHeader}\n rowClassName={(record, index) => {\n if (detailExpandedKeys.includes(record.index)) return '!bg-#f0f5ff';\n return colorReverse\n ? index % 2 !== 0\n ? '!bg-#f9fafb'\n : '!bg-transparent'\n : index % 2 !== 0\n ? '!bg-transparent'\n : '!bg-#f9fafb';\n }}\n expandable={{\n showExpandColumn: false,\n expandedRowKeys,\n expandedRowRender: (\n record: TreeTraceForUI,\n index,\n indent,\n expanded,\n ) => {\n if (!expanded) return null;\n const isDetailedExpanded = detailExpandedKeys.includes(record.index);\n const isTreeExpanded = treeExpandedKeys.includes(record.index);\n return (\n <div>\n {isDetailedExpanded && (\n <TraceDetail\n abi={record.abi}\n input={record.input}\n output={record.result?.returnData}\n to={record.to}\n outcome={record.result?.outcome}\n isContractCreated={!!record.contractCreated}\n space={space}\n implementation={\n record.delegatedTo ?? record.proxy?.implAddress\n }\n />\n )}\n {isTreeExpanded && (\n <TreeTraceTable\n data={record.calls}\n columns={columns}\n showHeader={false}\n colorReverse={\n colorReverse ? index % 2 !== 0 : index % 2 === 0\n }\n treeExpandedKeys={treeExpandedKeys}\n detailExpandedKeys={detailExpandedKeys}\n space={space}\n />\n )}\n </div>\n );\n },\n }}\n />\n );\n};\n"],"mappings":";;;;;;;;AAAA,SAAS,eAAe;AAExB,SAAS,QAAQ,YAAY;AAyDjB,SAEI,KAFJ;AArDL,IAAM,iBAAiB,CAAC;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MASM;AACJ,QAAM,kBAAkB,QAAQ,MAAM;AACpC,WAAO,KAAK,OAAO,kBAAkB,kBAAkB,CAAC;AAAA,EAC1D,GAAG,CAAC,kBAAkB,kBAAkB,CAAC;AAEzC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,QAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc,CAAC,QAAQ,UAAU;AAC/B,YAAI,mBAAmB,SAAS,OAAO,KAAK;AAAG,iBAAO;AACtD,eAAO,eACH,QAAQ,MAAM,IACZ,gBACA,oBACF,QAAQ,MAAM,IACZ,oBACA;AAAA,MACR;AAAA,MACA,YAAY;AAAA,QACV,kBAAkB;AAAA,QAClB;AAAA,QACA,mBAAmB,CACjB,QACA,OACA,QACA,aACG;AACH,cAAI,CAAC;AAAU,mBAAO;AACtB,gBAAM,qBAAqB,mBAAmB,SAAS,OAAO,KAAK;AACnE,gBAAM,iBAAiB,iBAAiB,SAAS,OAAO,KAAK;AAC7D,iBACE,qBAAC,SACE;AAAA,kCACC;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK,OAAO;AAAA,gBACZ,OAAO,OAAO;AAAA,gBACd,QAAQ,OAAO,QAAQ;AAAA,gBACvB,IAAI,OAAO;AAAA,gBACX,SAAS,OAAO,QAAQ;AAAA,gBACxB,mBAAmB,CAAC,CAAC,OAAO;AAAA,gBAC5B;AAAA,gBACA,gBACE,OAAO,eAAe,OAAO,OAAO;AAAA;AAAA,YAExC;AAAA,YAED,kBACC;AAAA,cAAC;AAAA;AAAA,gBACC,MAAM,OAAO;AAAA,gBACb;AAAA,gBACA,YAAY;AAAA,gBACZ,cACE,eAAe,QAAQ,MAAM,IAAI,QAAQ,MAAM;AAAA,gBAEjD;AAAA,gBACA;AAAA,gBACA;AAAA;AAAA,YACF;AAAA,aAEJ;AAAA,QAEJ;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -0,0 +1,140 @@
1
+ import {
2
+ Spin
3
+ } from "./chunk-XCKMXAL2.js";
4
+ import {
5
+ cn
6
+ } from "./chunk-SNUPCZY7.js";
7
+
8
+ // src/components/Modal/index.tsx
9
+ import { useEffect, useCallback, useMemo } from "react";
10
+ import ReactDOM from "react-dom";
11
+ import { X } from "lucide-react";
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ var Backdrop = ({
14
+ onClick,
15
+ children,
16
+ className
17
+ }) => /* @__PURE__ */ jsx("div", { className, onClick, children });
18
+ var ModalContent = ({
19
+ containerClassName,
20
+ closable,
21
+ onClose,
22
+ children,
23
+ loading,
24
+ modalStyles
25
+ }) => /* @__PURE__ */ jsx(
26
+ "div",
27
+ {
28
+ className: cn("relative bg-[#FFF] rounded shadow-lg", containerClassName),
29
+ tabIndex: -1,
30
+ style: modalStyles,
31
+ children: /* @__PURE__ */ jsxs(Spin, { spinning: loading, children: [
32
+ closable && /* @__PURE__ */ jsx(X, { className: "h-4 w-4 absolute right-5 top-5", onClick: onClose }),
33
+ /* @__PURE__ */ jsx("div", { className: "p-4", children })
34
+ ] })
35
+ }
36
+ );
37
+ var useEventListener = (eventName, handler, active) => {
38
+ useEffect(() => {
39
+ if (active) {
40
+ const eventListener = (event) => handler(event);
41
+ document.addEventListener(eventName, eventListener);
42
+ return () => {
43
+ document.removeEventListener(eventName, eventListener);
44
+ };
45
+ }
46
+ }, [eventName, handler, active]);
47
+ };
48
+ var Modal = ({
49
+ open,
50
+ closeOnEsc = true,
51
+ closable = true,
52
+ preventScroll = true,
53
+ backdropClassName = "",
54
+ containerClassName = "",
55
+ onOpen = () => {
56
+ },
57
+ onClose,
58
+ children,
59
+ width = "600px",
60
+ maskClosable = true,
61
+ centered = true,
62
+ loading = false
63
+ }) => {
64
+ useEffect(() => {
65
+ if (open) {
66
+ onOpen?.();
67
+ if (preventScroll) {
68
+ document.body.style.overflow = "hidden";
69
+ }
70
+ } else {
71
+ if (preventScroll) {
72
+ document.body.style.overflow = "";
73
+ }
74
+ }
75
+ return () => {
76
+ if (preventScroll) {
77
+ document.body.style.overflow = "";
78
+ }
79
+ };
80
+ }, [open, onOpen, preventScroll]);
81
+ const handleKeyDown = useCallback(
82
+ (event) => {
83
+ if (event.key === "Escape" && closeOnEsc && onClose) {
84
+ onClose?.();
85
+ }
86
+ },
87
+ [closeOnEsc, onClose]
88
+ );
89
+ const handleBackdropClick = useCallback(
90
+ (event) => {
91
+ if (maskClosable && event.target === event.currentTarget && onClose) {
92
+ onClose?.();
93
+ }
94
+ },
95
+ [maskClosable, onClose]
96
+ );
97
+ const modalStyles = useMemo(
98
+ () => ({
99
+ width: typeof width === "string" ? width : `${width}px`,
100
+ margin: centered ? "auto" : void 0
101
+ }),
102
+ [width, centered]
103
+ );
104
+ useEventListener(
105
+ "keydown",
106
+ handleKeyDown,
107
+ open && closeOnEsc
108
+ );
109
+ if (!open)
110
+ return null;
111
+ return ReactDOM.createPortal(
112
+ /* @__PURE__ */ jsx(
113
+ Backdrop,
114
+ {
115
+ onClick: handleBackdropClick,
116
+ className: cn(
117
+ "fixed inset-0 bg-[#000] bg-opacity-25 flex items-center justify-center z-10000",
118
+ backdropClassName
119
+ ),
120
+ children: /* @__PURE__ */ jsx(
121
+ ModalContent,
122
+ {
123
+ containerClassName,
124
+ closable,
125
+ onClose,
126
+ children,
127
+ loading,
128
+ modalStyles
129
+ }
130
+ )
131
+ }
132
+ ),
133
+ document.body
134
+ );
135
+ };
136
+
137
+ export {
138
+ Modal
139
+ };
140
+ //# sourceMappingURL=chunk-A6B5V6XY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Modal/index.tsx"],"sourcesContent":["import React, { useEffect, useCallback, useMemo } from 'react';\nimport ReactDOM from 'react-dom';\nimport { X } from 'lucide-react';\nimport { Spin } from '../Spin';\nimport { cn } from '../../utils';\n\ninterface ModalProps {\n open: boolean;\n closeOnEsc?: boolean;\n closable?: boolean;\n preventScroll?: boolean;\n backdropClassName?: string;\n containerClassName?: string;\n onOpen?: () => void;\n onClose?: () => void;\n children?: React.ReactNode;\n width?: string | number;\n maskClosable?: boolean;\n centered?: boolean;\n loading?: boolean;\n}\n\ninterface ModalContentProps {\n containerClassName: string;\n closable: boolean;\n onClose?: VoidFunction;\n children?: React.ReactNode;\n loading?: boolean;\n modalStyles: React.CSSProperties;\n}\n\ninterface BackdropProps {\n onClick: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n className: string;\n children?: React.ReactNode;\n}\n\nconst Backdrop: React.FC<BackdropProps> = ({\n onClick,\n children,\n className,\n}) => (\n <div className={className} onClick={onClick}>\n {children}\n </div>\n);\n\nconst ModalContent = ({\n containerClassName,\n closable,\n onClose,\n children,\n loading,\n modalStyles,\n}: ModalContentProps) => (\n <div\n className={cn('relative bg-[#FFF] rounded shadow-lg', containerClassName)}\n tabIndex={-1}\n style={modalStyles}\n >\n <Spin spinning={loading}>\n {closable && (\n <X className=\"h-4 w-4 absolute right-5 top-5\" onClick={onClose} />\n )}\n <div className=\"p-4\">{children}</div>\n </Spin>\n </div>\n);\n\nconst useEventListener = (\n eventName: string,\n handler: (event: Event) => void,\n active: boolean,\n) => {\n useEffect(() => {\n if (active) {\n const eventListener = (event: Event) => handler(event);\n\n document.addEventListener(eventName, eventListener);\n return () => {\n document.removeEventListener(eventName, eventListener);\n };\n }\n }, [eventName, handler, active]);\n};\n\nconst Modal: React.FC<ModalProps> = ({\n open,\n closeOnEsc = true,\n closable = true,\n preventScroll = true,\n backdropClassName = '',\n containerClassName = '',\n onOpen = () => {},\n onClose,\n children,\n width = '600px',\n maskClosable = true,\n centered = true,\n loading = false,\n}) => {\n useEffect(() => {\n if (open) {\n onOpen?.();\n if (preventScroll) {\n document.body.style.overflow = 'hidden';\n }\n } else {\n if (preventScroll) {\n document.body.style.overflow = '';\n }\n }\n return () => {\n if (preventScroll) {\n document.body.style.overflow = '';\n }\n };\n }, [open, onOpen, preventScroll]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape' && closeOnEsc && onClose) {\n onClose?.();\n }\n },\n [closeOnEsc, onClose],\n );\n\n const handleBackdropClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (maskClosable && event.target === event.currentTarget && onClose) {\n onClose?.();\n }\n },\n [maskClosable, onClose],\n );\n\n const modalStyles: React.CSSProperties = useMemo(\n () => ({\n width: typeof width === 'string' ? width : `${width}px`,\n margin: centered ? 'auto' : undefined,\n }),\n [width, centered],\n );\n\n useEventListener(\n 'keydown',\n handleKeyDown as (event: Event) => void,\n open && closeOnEsc,\n );\n\n if (!open) return null;\n\n return ReactDOM.createPortal(\n <Backdrop\n onClick={handleBackdropClick}\n className={cn(\n 'fixed inset-0 bg-[#000] bg-opacity-25 flex items-center justify-center z-10000',\n backdropClassName,\n )}\n >\n <ModalContent\n containerClassName={containerClassName}\n closable={closable}\n onClose={onClose}\n children={children}\n loading={loading}\n modalStyles={modalStyles}\n />\n </Backdrop>,\n document.body,\n );\n};\n\nexport { Modal };\n"],"mappings":"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","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-65X53DMW.js";
4
4
  import {
5
5
  Tooltip
6
- } from "./chunk-GQRCW7WX.js";
6
+ } from "./chunk-J536GL5G.js";
7
7
 
8
8
  // src/components/InfoIconWithTooltip/index.tsx
9
9
  import clsx from "clsx";
@@ -23,4 +23,4 @@ var InfoIconWithTooltip = ({
23
23
  export {
24
24
  InfoIconWithTooltip
25
25
  };
26
- //# sourceMappingURL=chunk-ELF2EOGF.js.map
26
+ //# sourceMappingURL=chunk-AQFNXW4W.js.map
@@ -0,0 +1,72 @@
1
+ import {
2
+ ErrorDecode
3
+ } from "./chunk-HCEXWKMZ.js";
4
+ import {
5
+ GeneralDecode
6
+ } from "./chunk-OYESIV3F.js";
7
+ import {
8
+ DecodedParameters
9
+ } from "./chunk-MWSXXVVL.js";
10
+ import {
11
+ Original
12
+ } from "./chunk-5AM5HM3B.js";
13
+ import {
14
+ UTF8
15
+ } from "./chunk-UVRMLFMC.js";
16
+
17
+ // src/components/OutputData/index.tsx
18
+ import { jsx } from "react/jsx-runtime";
19
+ var OutputData = ({
20
+ decodedData,
21
+ dataType,
22
+ output,
23
+ to,
24
+ space,
25
+ success,
26
+ implementation,
27
+ labelClassName
28
+ }) => {
29
+ const isReturnDataEmpty = !output || output === "0x";
30
+ if (isReturnDataEmpty)
31
+ return null;
32
+ if (dataType === "utf8") {
33
+ return /* @__PURE__ */ jsx(UTF8, { data: output });
34
+ } else if (dataType === "generalDecode") {
35
+ if (!success)
36
+ return /* @__PURE__ */ jsx(Original, { data: output });
37
+ if (decodedData) {
38
+ return /* @__PURE__ */ jsx(GeneralDecode, { data: output, includeMethodID: false });
39
+ }
40
+ } else if (dataType === "optimizationDecode") {
41
+ if (!success) {
42
+ return /* @__PURE__ */ jsx(
43
+ ErrorDecode,
44
+ {
45
+ to,
46
+ space,
47
+ errorData: output,
48
+ implementation,
49
+ labelClassName
50
+ }
51
+ );
52
+ }
53
+ if (decodedData) {
54
+ return /* @__PURE__ */ jsx(
55
+ DecodedParameters,
56
+ {
57
+ args: decodedData.decodedResults,
58
+ params: decodedData.abiItem?.outputs ?? [],
59
+ label: "Return:",
60
+ labelClassName,
61
+ space
62
+ }
63
+ );
64
+ }
65
+ }
66
+ return /* @__PURE__ */ jsx(Original, { data: output });
67
+ };
68
+
69
+ export {
70
+ OutputData
71
+ };
72
+ //# sourceMappingURL=chunk-ASS6TOFE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/OutputData/index.tsx"],"sourcesContent":["import { DataType } from 'src/utils/hooks/useDecodedDataType';\nimport { DecodedFunctionData } from 'src/utils/hooks/useDecodeFunctionData';\nimport { ErrorDecode } from './ErrorDecode';\nimport { Original } from '../InputData/Original';\nimport { UTF8 } from '../InputData/UTF8';\nimport { GeneralDecode } from '../InputData/GeneralDecode';\nimport { DecodedParameters } from '../InputData/OptimizationDecode';\n\nexport const OutputData = ({\n decodedData,\n dataType,\n output,\n to,\n space,\n success,\n implementation,\n labelClassName,\n}: {\n decodedData?: DecodedFunctionData;\n dataType: DataType;\n output?: `0x${string}`;\n space: 'evm' | 'core';\n to?: string;\n labelClassName?: string;\n success?: boolean;\n implementation?: string;\n}) => {\n const isReturnDataEmpty = !output || output === '0x';\n if (isReturnDataEmpty) return null;\n if (dataType === 'utf8') {\n return <UTF8 data={output}></UTF8>;\n } else if (dataType === 'generalDecode') {\n if (!success) return <Original data={output}></Original>;\n if (decodedData) {\n return (\n <GeneralDecode data={output} includeMethodID={false}></GeneralDecode>\n );\n }\n } else if (dataType === 'optimizationDecode') {\n if (!success) {\n return (\n <ErrorDecode\n to={to}\n space={space}\n errorData={output}\n implementation={implementation}\n labelClassName={labelClassName}\n ></ErrorDecode>\n );\n }\n if (decodedData) {\n return (\n <DecodedParameters\n args={decodedData.decodedResults}\n params={decodedData.abiItem?.outputs ?? []}\n label=\"Return:\"\n labelClassName={labelClassName}\n space={space}\n />\n );\n }\n }\n return <Original data={output}></Original>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AA8BW;AAtBJ,IAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MASM;AACJ,QAAM,oBAAoB,CAAC,UAAU,WAAW;AAChD,MAAI;AAAmB,WAAO;AAC9B,MAAI,aAAa,QAAQ;AACvB,WAAO,oBAAC,QAAK,MAAM,QAAQ;AAAA,EAC7B,WAAW,aAAa,iBAAiB;AACvC,QAAI,CAAC;AAAS,aAAO,oBAAC,YAAS,MAAM,QAAQ;AAC7C,QAAI,aAAa;AACf,aACE,oBAAC,iBAAc,MAAM,QAAQ,iBAAiB,OAAO;AAAA,IAEzD;AAAA,EACF,WAAW,aAAa,sBAAsB;AAC5C,QAAI,CAAC,SAAS;AACZ,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,WAAW;AAAA,UACX;AAAA,UACA;AAAA;AAAA,MACD;AAAA,IAEL;AACA,QAAI,aAAa;AACf,aACE;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,YAAY;AAAA,UAClB,QAAQ,YAAY,SAAS,WAAW,CAAC;AAAA,UACzC,OAAM;AAAA,UACN;AAAA,UACA;AAAA;AAAA,MACF;AAAA,IAEJ;AAAA,EACF;AACA,SAAO,oBAAC,YAAS,MAAM,QAAQ;AACjC;","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-WIB76E7O.js";
4
4
  import {
5
5
  fetch
6
- } from "./chunk-VGYNHJFT.js";
6
+ } from "./chunk-SYWQ2T57.js";
7
7
 
8
8
  // src/utils/index.ts
9
9
  import BigNumber from "bignumber.js";
@@ -793,4 +793,4 @@ export {
793
793
  viewJson,
794
794
  formatABI
795
795
  };
796
- //# sourceMappingURL=chunk-NM3BMITL.js.map
796
+ //# sourceMappingURL=chunk-B5JCHBO3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  convertCheckSum
3
- } from "./chunk-6L4ZEJQI.js";
3
+ } from "./chunk-BN3ATGHU.js";
4
4
  import {
5
5
  useGlobalData
6
6
  } from "./chunk-DQGLZCIG.js";
@@ -20,4 +20,4 @@ var useAddressLabel = (address, showAddressLabel = true) => {
20
20
  export {
21
21
  useAddressLabel
22
22
  };
23
- //# sourceMappingURL=chunk-DCQANK66.js.map
23
+ //# sourceMappingURL=chunk-BGNBKP5R.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-WIB76E7O.js";
4
4
  import {
5
5
  detectAccountType
6
- } from "./chunk-VGYNHJFT.js";
6
+ } from "./chunk-SYWQ2T57.js";
7
7
 
8
8
  // src/utils/address.ts
9
9
  import SDK from "js-conflux-sdk";
@@ -281,4 +281,4 @@ export {
281
281
  formatAddressHexToBase32,
282
282
  isAddressEqual
283
283
  };
284
- //# sourceMappingURL=chunk-6L4ZEJQI.js.map
284
+ //# sourceMappingURL=chunk-BN3ATGHU.js.map