@cfxjs/sirius-next-common 0.2.20 → 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 (204) 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-J6ZC77OY.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-4LSM4TMM.js → chunk-734CQOS7.js} +3 -3
  15. package/dist/chunk-7RLNWQIR.js +192 -0
  16. package/dist/chunk-7RLNWQIR.js.map +1 -0
  17. package/dist/{chunk-RUU22F7R.js → chunk-7VFOHX3W.js} +2 -2
  18. package/dist/{chunk-BEI5TWJL.js → chunk-7WDLTRBN.js} +2 -2
  19. package/dist/{chunk-AYCHKB2Y.js → chunk-A3IT7RYO.js} +2 -2
  20. package/dist/{chunk-UF5BN4QN.js → chunk-A3VPSWVX.js} +2 -2
  21. package/dist/chunk-A46LVI25.js +82 -0
  22. package/dist/chunk-A46LVI25.js.map +1 -0
  23. package/dist/chunk-A6B5V6XY.js +140 -0
  24. package/dist/chunk-A6B5V6XY.js.map +1 -0
  25. package/dist/{chunk-ELF2EOGF.js → chunk-AQFNXW4W.js} +2 -2
  26. package/dist/chunk-ASS6TOFE.js +72 -0
  27. package/dist/chunk-ASS6TOFE.js.map +1 -0
  28. package/dist/{chunk-NM3BMITL.js → chunk-B5JCHBO3.js} +2 -2
  29. package/dist/{chunk-DCQANK66.js → chunk-BGNBKP5R.js} +2 -2
  30. package/dist/{chunk-6L4ZEJQI.js → chunk-BN3ATGHU.js} +2 -2
  31. package/dist/chunk-C6GUZVQ2.js +130 -0
  32. package/dist/chunk-C6GUZVQ2.js.map +1 -0
  33. package/dist/chunk-CNXGYDZG.js +146 -0
  34. package/dist/chunk-CNXGYDZG.js.map +1 -0
  35. package/dist/chunk-DASMAZXS.js +71 -0
  36. package/dist/{chunk-LCV3NUFR.js → chunk-DO6PJAZB.js} +5 -5
  37. package/dist/chunk-E7FB4S3X.js +276 -0
  38. package/dist/chunk-E7FB4S3X.js.map +1 -0
  39. package/dist/{chunk-BHAXBHVC.js → chunk-EHRGH3HS.js} +4 -4
  40. package/dist/chunk-EOSVUB2G.js +51 -0
  41. package/dist/chunk-EOSVUB2G.js.map +1 -0
  42. package/dist/chunk-FGPRA3A4.js +80 -0
  43. package/dist/chunk-FGPRA3A4.js.map +1 -0
  44. package/dist/{chunk-UZALXR3J.js → chunk-FJMV3UA7.js} +4 -4
  45. package/dist/{chunk-YVV32ON3.js → chunk-FSYB23NA.js} +2 -2
  46. package/dist/{chunk-XUKHHB5L.js → chunk-FTAFV6RE.js} +5 -5
  47. package/dist/chunk-FW5ON36S.js +212 -0
  48. package/dist/chunk-FW5ON36S.js.map +1 -0
  49. package/dist/chunk-HCEXWKMZ.js +90 -0
  50. package/dist/chunk-HCEXWKMZ.js.map +1 -0
  51. package/dist/chunk-HW5VD7EO.js +17 -0
  52. package/dist/chunk-HW5VD7EO.js.map +1 -0
  53. package/dist/{chunk-GQRCW7WX.js → chunk-J536GL5G.js} +2 -2
  54. package/dist/{chunk-DYNSSHD5.js → chunk-J7UQ2R3H.js} +7 -7
  55. package/dist/{chunk-YEAWH772.js → chunk-JBCKAHH7.js} +2 -2
  56. package/dist/{chunk-7VQL3G7K.js → chunk-JKFT4JUY.js} +4 -4
  57. package/dist/chunk-L7RD6ZPE.js +534 -0
  58. package/dist/chunk-L7RD6ZPE.js.map +1 -0
  59. package/dist/{chunk-W64AF7LA.js → chunk-MFCMTOYM.js} +5 -5
  60. package/dist/chunk-MQY7EQPG.js +284 -0
  61. package/dist/chunk-MQY7EQPG.js.map +1 -0
  62. package/dist/chunk-MWSXXVVL.js +157 -0
  63. package/dist/chunk-MWSXXVVL.js.map +1 -0
  64. package/dist/chunk-O6BP54O6.js +63 -0
  65. package/dist/chunk-O6BP54O6.js.map +1 -0
  66. package/dist/chunk-OFAM2QTT.js +17 -0
  67. package/dist/chunk-OFAM2QTT.js.map +1 -0
  68. package/dist/{chunk-2WEBXRNL.js → chunk-OSPPP5W5.js} +2 -2
  69. package/dist/chunk-OT252GGM.js +66 -0
  70. package/dist/chunk-OT252GGM.js.map +1 -0
  71. package/dist/{chunk-WZIT54AU.js → chunk-OTSNM4CR.js} +2 -2
  72. package/dist/chunk-OTSNM4CR.js.map +1 -0
  73. package/dist/chunk-QX7AGYA5.js +2149 -0
  74. package/dist/chunk-QX7AGYA5.js.map +1 -0
  75. package/dist/chunk-R62HRSIY.js +145 -0
  76. package/dist/chunk-R62HRSIY.js.map +1 -0
  77. package/dist/{chunk-OT7NZ4PK.js → chunk-RLA5XZT2.js} +3 -3
  78. package/dist/chunk-RLA5XZT2.js.map +1 -0
  79. package/dist/{chunk-HF7RD7UD.js → chunk-RWTNG7SM.js} +2 -2
  80. package/dist/chunk-SIZYE6WH.js +3616 -0
  81. package/dist/chunk-SIZYE6WH.js.map +1 -0
  82. package/dist/chunk-SNUPCZY7.js +812 -0
  83. package/dist/chunk-SNUPCZY7.js.map +1 -0
  84. package/dist/{chunk-VGYNHJFT.js → chunk-SYWQ2T57.js} +8 -7
  85. package/dist/chunk-SYWQ2T57.js.map +1 -0
  86. package/dist/chunk-TGWQSVFC.js +26 -0
  87. package/dist/chunk-TGWQSVFC.js.map +1 -0
  88. package/dist/chunk-UVRMLFMC.js +21 -0
  89. package/dist/chunk-UVRMLFMC.js.map +1 -0
  90. package/dist/chunk-UX6IRX2M.js +146 -0
  91. package/dist/chunk-UX6IRX2M.js.map +1 -0
  92. package/dist/chunk-VD73ULXJ.js +107 -0
  93. package/dist/chunk-VD73ULXJ.js.map +1 -0
  94. package/dist/chunk-VEK5DLFI.js +23 -0
  95. package/dist/chunk-VEK5DLFI.js.map +1 -0
  96. package/dist/chunk-VTHVXZOP.js +112 -0
  97. package/dist/chunk-VTHVXZOP.js.map +1 -0
  98. package/dist/chunk-WY3RJ3A6.js +51 -0
  99. package/dist/chunk-XI5WO2NW.js +37 -0
  100. package/dist/chunk-XI5WO2NW.js.map +1 -0
  101. package/dist/{chunk-C6CGZ6KN.js → chunk-YOCMEOLX.js} +2 -2
  102. package/dist/chunk-YOVNVFY2.js +105 -0
  103. package/dist/chunk-YOVNVFY2.js.map +1 -0
  104. package/dist/{chunk-7AVQOIDM.js → chunk-Z64Z5HLJ.js} +2 -2
  105. package/dist/components/AAFailedReason/index.d.ts +11 -0
  106. package/dist/components/AAFailedReason/index.js +41 -0
  107. package/dist/components/AAFailedReason/index.js.map +1 -0
  108. package/dist/components/AceEditor/index.js +4 -4
  109. package/dist/components/AddressContainer/CoreAddressContainer.js +10 -10
  110. package/dist/components/AddressContainer/EVMAddressContainer.js +9 -9
  111. package/dist/components/AddressContainer/addressSwitcher.js +7 -7
  112. package/dist/components/AddressContainer/addressView.js +6 -6
  113. package/dist/components/AddressContainer/label.js +3 -3
  114. package/dist/components/AddressContainer/utils.js +3 -3
  115. package/dist/components/Age/index.js +4 -4
  116. package/dist/components/AutoComplete/index.js +3 -3
  117. package/dist/components/Charts/PreviewChartTemplate.js +1 -1
  118. package/dist/components/Charts/StockChartTemplate.js +1 -1
  119. package/dist/components/CopyButton/index.js +3 -3
  120. package/dist/components/DecimalsSelect/index.js +3 -3
  121. package/dist/components/DownloadCSV/index.js +4 -4
  122. package/dist/components/GasPriceDropdown/index.js +2 -2
  123. package/dist/components/IncreasePercent/index.js +2 -2
  124. package/dist/components/InfoIconWithTooltip/index.js +4 -4
  125. package/dist/components/InputData/AddressLabel.js +8 -8
  126. package/dist/components/InputData/ContractDetail.js +3 -3
  127. package/dist/components/InputData/JsonDecode.js +5 -5
  128. package/dist/components/InputData/OptimizationDecode.js +10 -10
  129. package/dist/components/InputData/UTF8.js +3 -3
  130. package/dist/components/InputData/index.js +14 -14
  131. package/dist/components/Modal/index.js +3 -3
  132. package/dist/components/NetworkIcon/index.js +2 -2
  133. package/dist/components/OutputData/ErrorDecode.js +13 -13
  134. package/dist/components/OutputData/index.js +15 -15
  135. package/dist/components/PhishingAddressContainer/index.js +4 -4
  136. package/dist/components/Popover/index.js +3 -3
  137. package/dist/components/Price/index.js +3 -3
  138. package/dist/components/ProxyContractAddress/index.js +6 -6
  139. package/dist/components/Radio/index.js +2 -2
  140. package/dist/components/SearchInput/index.js +4 -4
  141. package/dist/components/Select/index.js +4 -4
  142. package/dist/components/Select/select.js +3 -3
  143. package/dist/components/SmartAccountAddress/index.d.ts +11 -0
  144. package/dist/components/SmartAccountAddress/index.js +94 -0
  145. package/dist/components/SmartAccountAddress/index.js.map +1 -0
  146. package/dist/components/Text/index.js +4 -4
  147. package/dist/components/Tooltip/index.js +3 -3
  148. package/dist/components/TransactionAction/coreTransactionAction.js +23 -18
  149. package/dist/components/TransactionAction/coreTransactionAction.js.map +1 -1
  150. package/dist/components/TransactionAction/evmTransactionAction.js +22 -17
  151. package/dist/components/TransactionAction/evmTransactionAction.js.map +1 -1
  152. package/dist/components/TransactionTrace/TraceDetail.js +23 -23
  153. package/dist/components/TransactionTrace/TreeTraceTable.js +24 -24
  154. package/dist/components/TransactionTrace/index.js +24 -24
  155. package/dist/utils/address.js +2 -2
  156. package/dist/utils/contractManagerTool.js +2 -2
  157. package/dist/utils/hooks/useAddressLabel.js +3 -3
  158. package/dist/utils/hooks/useAddressNameMap.js +2 -2
  159. package/dist/utils/hooks/useAutoSetHolderFilterParams.js +2 -2
  160. package/dist/utils/hooks/useContractDetail.js +2 -2
  161. package/dist/utils/hooks/useDecodeFunctionData.js +5 -5
  162. package/dist/utils/hooks/useDecodeFunctionError.js +3 -3
  163. package/dist/utils/hooks/useENS.js +3 -3
  164. package/dist/utils/hooks/useEnhanceDataWithNameMap.js +2 -2
  165. package/dist/utils/hooks/useMethodAbi.js +2 -2
  166. package/dist/utils/hooks/useTableData.js +1 -1
  167. package/dist/utils/hooks/useTxTrace.js +3 -3
  168. package/dist/utils/index.js +2 -2
  169. package/dist/utils/request.d.ts +1 -0
  170. package/dist/utils/request.js +1 -1
  171. package/package.json +17 -17
  172. package/dist/chunk-VGYNHJFT.js.map +0 -1
  173. /package/dist/{chunk-CMOP3BKX.js.map → chunk-225VMTCA.js.map} +0 -0
  174. /package/dist/{chunk-LCIBOT5P.js.map → chunk-3JIAKQ23.js.map} +0 -0
  175. /package/dist/{chunk-C7OIVXE3.js.map → chunk-4B7BV62E.js.map} +0 -0
  176. /package/dist/{chunk-J6ZC77OY.js.map → chunk-4M53GHPD.js.map} +0 -0
  177. /package/dist/{chunk-GHHUAWSG.js.map → chunk-524EB4WC.js.map} +0 -0
  178. /package/dist/{chunk-XZL5CZFT.js.map → chunk-5MJZWIYI.js.map} +0 -0
  179. /package/dist/{chunk-H5ZJBRIK.js.map → chunk-6PKWA444.js.map} +0 -0
  180. /package/dist/{chunk-4LSM4TMM.js.map → chunk-734CQOS7.js.map} +0 -0
  181. /package/dist/{chunk-RUU22F7R.js.map → chunk-7VFOHX3W.js.map} +0 -0
  182. /package/dist/{chunk-BEI5TWJL.js.map → chunk-7WDLTRBN.js.map} +0 -0
  183. /package/dist/{chunk-AYCHKB2Y.js.map → chunk-A3IT7RYO.js.map} +0 -0
  184. /package/dist/{chunk-UF5BN4QN.js.map → chunk-A3VPSWVX.js.map} +0 -0
  185. /package/dist/{chunk-ELF2EOGF.js.map → chunk-AQFNXW4W.js.map} +0 -0
  186. /package/dist/{chunk-NM3BMITL.js.map → chunk-B5JCHBO3.js.map} +0 -0
  187. /package/dist/{chunk-DCQANK66.js.map → chunk-BGNBKP5R.js.map} +0 -0
  188. /package/dist/{chunk-6L4ZEJQI.js.map → chunk-BN3ATGHU.js.map} +0 -0
  189. /package/dist/{chunk-OT7NZ4PK.js.map → chunk-DASMAZXS.js.map} +0 -0
  190. /package/dist/{chunk-LCV3NUFR.js.map → chunk-DO6PJAZB.js.map} +0 -0
  191. /package/dist/{chunk-BHAXBHVC.js.map → chunk-EHRGH3HS.js.map} +0 -0
  192. /package/dist/{chunk-UZALXR3J.js.map → chunk-FJMV3UA7.js.map} +0 -0
  193. /package/dist/{chunk-YVV32ON3.js.map → chunk-FSYB23NA.js.map} +0 -0
  194. /package/dist/{chunk-XUKHHB5L.js.map → chunk-FTAFV6RE.js.map} +0 -0
  195. /package/dist/{chunk-GQRCW7WX.js.map → chunk-J536GL5G.js.map} +0 -0
  196. /package/dist/{chunk-DYNSSHD5.js.map → chunk-J7UQ2R3H.js.map} +0 -0
  197. /package/dist/{chunk-YEAWH772.js.map → chunk-JBCKAHH7.js.map} +0 -0
  198. /package/dist/{chunk-7VQL3G7K.js.map → chunk-JKFT4JUY.js.map} +0 -0
  199. /package/dist/{chunk-W64AF7LA.js.map → chunk-MFCMTOYM.js.map} +0 -0
  200. /package/dist/{chunk-2WEBXRNL.js.map → chunk-OSPPP5W5.js.map} +0 -0
  201. /package/dist/{chunk-HF7RD7UD.js.map → chunk-RWTNG7SM.js.map} +0 -0
  202. /package/dist/{chunk-WZIT54AU.js.map → chunk-WY3RJ3A6.js.map} +0 -0
  203. /package/dist/{chunk-C6CGZ6KN.js.map → chunk-YOCMEOLX.js.map} +0 -0
  204. /package/dist/{chunk-7AVQOIDM.js.map → chunk-Z64Z5HLJ.js.map} +0 -0
@@ -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
@@ -0,0 +1,130 @@
1
+ import {
2
+ decodeErrorResult
3
+ } from "./chunk-6SXAFSBF.js";
4
+ import {
5
+ useContractDetail
6
+ } from "./chunk-OFAM2QTT.js";
7
+ import {
8
+ CommonError_default
9
+ } from "./chunk-5TGK2EA2.js";
10
+ import {
11
+ CommonPanic_default
12
+ } from "./chunk-ADNS57X5.js";
13
+ import {
14
+ COMMON_ERROR_OUTPUT_PREFIX,
15
+ COMMON_PANIC_OUTPUT_PREFIX
16
+ } from "./chunk-WIB76E7O.js";
17
+
18
+ // src/utils/hooks/useDecodeFunctionError.ts
19
+ import { useMemo } from "react";
20
+ var fields = ["abi"];
21
+ var useDecodeFunctionError = ({
22
+ to,
23
+ implementation: _implementation,
24
+ errorData,
25
+ space
26
+ }) => {
27
+ const standardErrorAbi = useMemo(() => {
28
+ if (!errorData)
29
+ return null;
30
+ if (errorData.startsWith(COMMON_ERROR_OUTPUT_PREFIX))
31
+ return CommonError_default;
32
+ if (errorData.startsWith(COMMON_PANIC_OUTPUT_PREFIX))
33
+ return CommonPanic_default;
34
+ return null;
35
+ }, [errorData]);
36
+ const { data, isLoading: contractLoading } = useContractDetail(
37
+ to,
38
+ fields,
39
+ !standardErrorAbi && !!errorData
40
+ );
41
+ const implementation = _implementation ?? data?.implementation?.address;
42
+ const { data: implementationData, isLoading: implementationLoading } = useContractDetail(implementation, fields, !standardErrorAbi && !!errorData);
43
+ const decodedByStandardError = useMemo(() => {
44
+ if (!standardErrorAbi || !errorData)
45
+ return null;
46
+ try {
47
+ const result = decodeErrorResult({
48
+ abi: standardErrorAbi,
49
+ data: errorData,
50
+ space
51
+ });
52
+ return result;
53
+ } catch (error) {
54
+ console.log("decode error data with standard error abi failed", error);
55
+ return {
56
+ errorName: "unknown",
57
+ failed: true
58
+ };
59
+ }
60
+ }, [errorData, standardErrorAbi, space]);
61
+ const decoded = useMemo(() => {
62
+ if (!data?.abi || !errorData)
63
+ return null;
64
+ try {
65
+ const result = decodeErrorResult({
66
+ abi: JSON.parse(data.abi),
67
+ data: errorData,
68
+ space
69
+ });
70
+ return result;
71
+ } catch (error) {
72
+ console.log("decode error data with contract abi failed", error);
73
+ return {
74
+ errorName: "unknown",
75
+ failed: true
76
+ };
77
+ }
78
+ }, [errorData, data, space]);
79
+ const decodedByImplementation = useMemo(() => {
80
+ if (!implementationData?.abi || !errorData)
81
+ return null;
82
+ try {
83
+ const result = decodeErrorResult({
84
+ abi: JSON.parse(implementationData.abi),
85
+ data: errorData,
86
+ space
87
+ });
88
+ return result;
89
+ } catch (error) {
90
+ console.log("decode error data with implementation abi failed", error);
91
+ return {
92
+ errorName: "unknown",
93
+ failed: true
94
+ };
95
+ }
96
+ }, [errorData, implementationData, space]);
97
+ return useMemo(() => {
98
+ if (!errorData)
99
+ return [null, false];
100
+ if (decodedByStandardError && !decodedByStandardError.failed)
101
+ return [decodedByStandardError, false];
102
+ if (decodedByImplementation && !decodedByImplementation.failed)
103
+ return [decodedByImplementation, implementationLoading];
104
+ if (decoded && !decoded.failed)
105
+ return [decoded, contractLoading];
106
+ if (contractLoading || implementationLoading)
107
+ return [null, true];
108
+ return [
109
+ {
110
+ errorName: "unknown",
111
+ noAbi: !decodedByStandardError && !decodedByImplementation && !decoded,
112
+ failed: decodedByImplementation?.failed || decoded?.failed || decodedByStandardError?.failed
113
+ },
114
+ false
115
+ ];
116
+ }, [
117
+ errorData,
118
+ decodedByStandardError,
119
+ decoded,
120
+ decodedByImplementation,
121
+ contractLoading,
122
+ implementationLoading,
123
+ space
124
+ ]);
125
+ };
126
+
127
+ export {
128
+ useDecodeFunctionError
129
+ };
130
+ //# sourceMappingURL=chunk-C6GUZVQ2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/hooks/useDecodeFunctionError.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { decodeErrorResult } from 'src/utils/sdk';\nimport type { AbiItem } from 'src/utils/sdk';\nimport { useContractDetail } from './useContractDetail';\nimport {\n COMMON_ERROR_OUTPUT_PREFIX,\n COMMON_PANIC_OUTPUT_PREFIX,\n} from '../constants';\nimport CommonError from 'src/abis/CommonError';\nimport CommonPanic from 'src/abis/CommonPanic';\n\nconst fields = ['abi' as const];\n\ninterface Result {\n abiItem?: AbiItem;\n args?: readonly unknown[];\n errorName: string;\n // no abi for decoded\n noAbi?: boolean;\n // decoded failed\n failed?: boolean;\n}\n\nexport const useDecodeFunctionError = ({\n to,\n implementation: _implementation,\n errorData,\n space,\n}: {\n errorData?: `0x${string}`;\n to?: string;\n implementation?: string;\n space: 'evm' | 'core';\n}): [Result | null, boolean] => {\n const standardErrorAbi = useMemo(() => {\n if (!errorData) return null;\n if (errorData.startsWith(COMMON_ERROR_OUTPUT_PREFIX)) return CommonError;\n if (errorData.startsWith(COMMON_PANIC_OUTPUT_PREFIX)) return CommonPanic;\n return null;\n }, [errorData]);\n const { data, isLoading: contractLoading } = useContractDetail(\n to,\n fields,\n !standardErrorAbi && !!errorData,\n );\n const implementation = _implementation ?? data?.implementation?.address;\n const { data: implementationData, isLoading: implementationLoading } =\n useContractDetail(implementation, fields, !standardErrorAbi && !!errorData);\n const decodedByStandardError = useMemo(() => {\n if (!standardErrorAbi || !errorData) return null;\n try {\n const result = decodeErrorResult({\n abi: standardErrorAbi,\n data: errorData,\n space,\n });\n return result as Result;\n } catch (error) {\n console.log('decode error data with standard error abi failed', error);\n return {\n errorName: 'unknown',\n failed: true,\n };\n }\n }, [errorData, standardErrorAbi, space]);\n const decoded = useMemo(() => {\n if (!data?.abi || !errorData) return null;\n try {\n const result = decodeErrorResult({\n abi: JSON.parse(data.abi as string),\n data: errorData,\n space,\n });\n return result as Result;\n } catch (error) {\n console.log('decode error data with contract abi failed', error);\n return {\n errorName: 'unknown',\n failed: true,\n };\n }\n }, [errorData, data, space]);\n const decodedByImplementation = useMemo(() => {\n if (!implementationData?.abi || !errorData) return null;\n try {\n const result = decodeErrorResult({\n abi: JSON.parse(implementationData.abi as string),\n data: errorData,\n space,\n });\n return result as Result;\n } catch (error) {\n console.log('decode error data with implementation abi failed', error);\n return {\n errorName: 'unknown',\n failed: true,\n };\n }\n }, [errorData, implementationData, space]);\n\n return useMemo(() => {\n if (!errorData) return [null, false];\n if (decodedByStandardError && !decodedByStandardError.failed)\n return [decodedByStandardError, false];\n if (decodedByImplementation && !decodedByImplementation.failed)\n return [decodedByImplementation, implementationLoading];\n if (decoded && !decoded.failed) return [decoded, contractLoading];\n if (contractLoading || implementationLoading) return [null, true];\n return [\n {\n errorName: 'unknown',\n noAbi: !decodedByStandardError && !decodedByImplementation && !decoded,\n failed:\n decodedByImplementation?.failed ||\n decoded?.failed ||\n decodedByStandardError?.failed,\n },\n false,\n ];\n }, [\n errorData,\n decodedByStandardError,\n decoded,\n decodedByImplementation,\n contractLoading,\n implementationLoading,\n space,\n ]);\n};\n"],"mappings":"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","names":[]}