@cfxjs/sirius-next-common 0.2.14 → 0.2.15

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 (62) hide show
  1. package/dist/{chunk-K6FHTS3F.js → chunk-2KXTTKRI.js} +22 -9
  2. package/dist/chunk-2KXTTKRI.js.map +1 -0
  3. package/dist/{chunk-UINFSWXM.js → chunk-A6ND7FSQ.js} +13 -9
  4. package/dist/chunk-A6ND7FSQ.js.map +1 -0
  5. package/dist/{chunk-NA2IXF26.js → chunk-ARQH6VQ4.js} +3 -3
  6. package/dist/{chunk-7TNE7P6L.js → chunk-AYH6CLQB.js} +4 -1
  7. package/dist/{chunk-7TNE7P6L.js.map → chunk-AYH6CLQB.js.map} +1 -1
  8. package/dist/{chunk-AIBPOND2.js → chunk-HJNIYZ62.js} +5 -3
  9. package/dist/chunk-HJNIYZ62.js.map +1 -0
  10. package/dist/{chunk-PTIDOK4R.js → chunk-IDGNYTHY.js} +6 -6
  11. package/dist/chunk-IDGNYTHY.js.map +1 -0
  12. package/dist/{chunk-JFFTHCNE.js → chunk-MWAD4CIG.js} +20 -1
  13. package/dist/chunk-MWAD4CIG.js.map +1 -0
  14. package/dist/{chunk-U6ZN2ABK.js → chunk-OZ4OJLIM.js} +5 -5
  15. package/dist/{chunk-SUCQASD3.js → chunk-SX6R4MHO.js} +2 -2
  16. package/dist/{chunk-GFY6G6I2.js → chunk-TP67325Z.js} +3 -3
  17. package/dist/{chunk-CPX5R5ND.js → chunk-VJSXGYWN.js} +4 -4
  18. package/dist/{chunk-H5VKAQ2A.js → chunk-WSDJ3XJ2.js} +3 -3
  19. package/dist/chunk-XBEBAU77.js +37 -0
  20. package/dist/chunk-XBEBAU77.js.map +1 -0
  21. package/dist/{chunk-6HJCR6PQ.js → chunk-YIXV7A4J.js} +15 -4
  22. package/dist/chunk-YIXV7A4J.js.map +1 -0
  23. package/dist/{chunk-TLAXH2HE.js → chunk-ZLNQICQZ.js} +2 -2
  24. package/dist/components/AddressContainer/CoreAddressContainer.js +4 -4
  25. package/dist/components/AddressContainer/EVMAddressContainer.js +4 -4
  26. package/dist/components/AddressContainer/addressSwitcher.js +3 -3
  27. package/dist/components/AddressContainer/addressView.d.ts +1 -1
  28. package/dist/components/AddressContainer/addressView.js +1 -1
  29. package/dist/components/AddressContainer/types.d.ts +1 -0
  30. package/dist/components/Icons/index.d.ts +2 -1
  31. package/dist/components/Icons/index.js +5 -3
  32. package/dist/components/InputData/AbiWarning.d.ts +8 -0
  33. package/dist/components/InputData/AbiWarning.js +11 -0
  34. package/dist/components/InputData/AbiWarning.js.map +1 -0
  35. package/dist/components/InputData/ContractDetail.js +2 -2
  36. package/dist/components/InputData/OptimizationDecode.js +3 -3
  37. package/dist/components/InputData/index.js +5 -5
  38. package/dist/components/OutputData/ErrorDecode.js +7 -6
  39. package/dist/components/OutputData/index.js +8 -7
  40. package/dist/components/TransactionAction/coreTransactionAction.js +4 -4
  41. package/dist/components/TransactionAction/evmTransactionAction.js +4 -4
  42. package/dist/components/TransactionTrace/TraceDetail.js +11 -10
  43. package/dist/components/TransactionTrace/TreeTraceTable.js +13 -12
  44. package/dist/components/TransactionTrace/index.js +13 -12
  45. package/dist/uno.css +6 -2
  46. package/dist/utils/hooks/useDecodeFunctionData.js +1 -1
  47. package/dist/utils/hooks/useDecodeFunctionError.d.ts +8 -8
  48. package/dist/utils/hooks/useDecodeFunctionError.js +1 -1
  49. package/package.json +1 -1
  50. package/dist/chunk-6HJCR6PQ.js.map +0 -1
  51. package/dist/chunk-AIBPOND2.js.map +0 -1
  52. package/dist/chunk-JFFTHCNE.js.map +0 -1
  53. package/dist/chunk-K6FHTS3F.js.map +0 -1
  54. package/dist/chunk-PTIDOK4R.js.map +0 -1
  55. package/dist/chunk-UINFSWXM.js.map +0 -1
  56. /package/dist/{chunk-NA2IXF26.js.map → chunk-ARQH6VQ4.js.map} +0 -0
  57. /package/dist/{chunk-U6ZN2ABK.js.map → chunk-OZ4OJLIM.js.map} +0 -0
  58. /package/dist/{chunk-SUCQASD3.js.map → chunk-SX6R4MHO.js.map} +0 -0
  59. /package/dist/{chunk-GFY6G6I2.js.map → chunk-TP67325Z.js.map} +0 -0
  60. /package/dist/{chunk-CPX5R5ND.js.map → chunk-VJSXGYWN.js.map} +0 -0
  61. /package/dist/{chunk-H5VKAQ2A.js.map → chunk-WSDJ3XJ2.js.map} +0 -0
  62. /package/dist/{chunk-TLAXH2HE.js.map → chunk-ZLNQICQZ.js.map} +0 -0
@@ -50,7 +50,10 @@ var useDecodeFunctionError = ({
50
50
  return result;
51
51
  } catch (error) {
52
52
  console.log("decode error data with standard error abi failed", error);
53
- return null;
53
+ return {
54
+ errorName: "unknown",
55
+ failed: true
56
+ };
54
57
  }
55
58
  }, [errorData, standardErrorAbi, space]);
56
59
  const decoded = useMemo(() => {
@@ -65,7 +68,10 @@ var useDecodeFunctionError = ({
65
68
  return result;
66
69
  } catch (error) {
67
70
  console.log("decode error data with contract abi failed", error);
68
- return null;
71
+ return {
72
+ errorName: "unknown",
73
+ failed: true
74
+ };
69
75
  }
70
76
  }, [errorData, data, space]);
71
77
  const decodedByImplementation = useMemo(() => {
@@ -80,23 +86,30 @@ var useDecodeFunctionError = ({
80
86
  return result;
81
87
  } catch (error) {
82
88
  console.log("decode error data with implementation abi failed", error);
83
- return null;
89
+ return {
90
+ errorName: "unknown",
91
+ failed: true
92
+ };
84
93
  }
85
94
  }, [errorData, implementationData, space]);
86
95
  return useMemo(() => {
87
96
  if (!errorData)
88
97
  return [null, false];
89
- if (decodedByStandardError)
98
+ if (decodedByStandardError && !decodedByStandardError.failed)
90
99
  return [decodedByStandardError, false];
91
- if (decodedByImplementation)
100
+ if (decodedByImplementation && !decodedByImplementation.failed)
92
101
  return [decodedByImplementation, implementationLoading];
93
- if (decoded)
102
+ if (decoded && !decoded.failed)
94
103
  return [decoded, contractLoading];
104
+ if (contractLoading || implementationLoading)
105
+ return [null, true];
95
106
  return [
96
107
  {
97
- errorName: "unknown"
108
+ errorName: "unknown",
109
+ noAbi: !decodedByStandardError && !decodedByImplementation && !decoded,
110
+ failed: decodedByImplementation?.failed || decoded?.failed || decodedByStandardError?.failed
98
111
  },
99
- contractLoading || implementationLoading
112
+ false
100
113
  ];
101
114
  }, [
102
115
  errorData,
@@ -112,4 +125,4 @@ var useDecodeFunctionError = ({
112
125
  export {
113
126
  useDecodeFunctionError
114
127
  };
115
- //# sourceMappingURL=chunk-K6FHTS3F.js.map
128
+ //# sourceMappingURL=chunk-2KXTTKRI.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.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) 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) 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) 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":[]}
@@ -1,18 +1,21 @@
1
+ import {
2
+ useDecodeFunctionData
3
+ } from "./chunk-AYH6CLQB.js";
1
4
  import {
2
5
  useDecodedDataType
3
6
  } from "./chunk-UM5J477V.js";
4
- import {
5
- useDecodeFunctionData
6
- } from "./chunk-7TNE7P6L.js";
7
7
  import {
8
8
  Select
9
9
  } from "./chunk-YIZCD4WG.js";
10
10
  import {
11
11
  OutputData
12
- } from "./chunk-GFY6G6I2.js";
12
+ } from "./chunk-TP67325Z.js";
13
13
  import {
14
14
  InputData
15
- } from "./chunk-TLAXH2HE.js";
15
+ } from "./chunk-ZLNQICQZ.js";
16
+ import {
17
+ AbiWarning
18
+ } from "./chunk-XBEBAU77.js";
16
19
  import {
17
20
  Card
18
21
  } from "./chunk-O6NJ56NA.js";
@@ -38,7 +41,7 @@ var CommonTraceDetail = ({
38
41
  const success = outcome === "success";
39
42
  const { t } = useTranslation();
40
43
  const translations = getTranslations();
41
- const [decodedData] = useDecodeFunctionData({
44
+ const [decodedData, isLoading] = useDecodeFunctionData({
42
45
  to,
43
46
  input,
44
47
  output,
@@ -47,7 +50,7 @@ var CommonTraceDetail = ({
47
50
  abi,
48
51
  withOutput: true
49
52
  });
50
- const { dataType, setDataType, dataTypeList } = useDecodedDataType({
53
+ const { dataType, setDataType, dataTypeList, tip } = useDecodedDataType({
51
54
  to,
52
55
  input,
53
56
  isContractCreated,
@@ -117,7 +120,8 @@ var CommonTraceDetail = ({
117
120
  )
118
121
  }
119
122
  ) })
120
- ] })
123
+ ] }),
124
+ !isLoading && /* @__PURE__ */ jsx(AbiWarning, { tip, className: "ml-150px" })
121
125
  ] });
122
126
  };
123
127
  var CreateContractFailedTraceDetail = ({
@@ -185,4 +189,4 @@ var TraceDetail = (props) => {
185
189
  export {
186
190
  TraceDetail
187
191
  };
188
- //# sourceMappingURL=chunk-UINFSWXM.js.map
192
+ //# sourceMappingURL=chunk-A6ND7FSQ.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 proxy?: {\n beaconAddress?: string;\n implAddress: string;\n };\n}\n\nconst CommonTraceDetail = ({\n to,\n input = '0x',\n output,\n outcome = 'success',\n abi,\n isContractCreated,\n space,\n proxy,\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 proxy={proxy}\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 proxy,\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 proxy={proxy}\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":[]}
@@ -3,10 +3,10 @@ import {
3
3
  ContractCreatedAddress,
4
4
  InvalidAddress,
5
5
  MyAddress
6
- } from "./chunk-H5VKAQ2A.js";
6
+ } from "./chunk-WSDJ3XJ2.js";
7
7
  import {
8
8
  RenderAddress
9
- } from "./chunk-AIBPOND2.js";
9
+ } from "./chunk-HJNIYZ62.js";
10
10
  import {
11
11
  convertCheckSum,
12
12
  formatAddress,
@@ -105,4 +105,4 @@ var EVMAddressContainer = withTranslation()(
105
105
  export {
106
106
  EVMAddressContainer
107
107
  };
108
- //# sourceMappingURL=chunk-NA2IXF26.js.map
108
+ //# sourceMappingURL=chunk-ARQH6VQ4.js.map
@@ -167,6 +167,9 @@ var useDecodeFunctionData = ({
167
167
  return [decodedByContractAbi, contractLoading];
168
168
  if (decodedByMethodAbi && !decodedByMethodAbi.failed)
169
169
  return [decodedByMethodAbi, methodAbiLoading];
170
+ if (implementationLoading || contractLoading || methodAbiLoading) {
171
+ return [{}, true];
172
+ }
170
173
  if (decodedByOuterAbi && decodedByOuterAbi.failed || decodedByImplementationAbi && decodedByImplementationAbi.failed || decodedByContractAbi && decodedByContractAbi.failed || decodedByMethodAbi && decodedByMethodAbi.failed) {
171
174
  return [
172
175
  {
@@ -196,4 +199,4 @@ var useDecodeFunctionData = ({
196
199
  export {
197
200
  useDecodeFunctionData
198
201
  };
199
- //# sourceMappingURL=chunk-7TNE7P6L.js.map
202
+ //# sourceMappingURL=chunk-AYH6CLQB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/hooks/useDecodeFunctionData.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n decodeFunctionData,\n decodeFunctionResult,\n getAbiItem,\n AbiFunctionWithoutGas,\n} from 'src/utils/sdk';\nimport { useContractDetail } from './useContractDetail';\nimport { formatABI } from '..';\nimport { useMethodAbi } from './useMethodAbi';\n\nconst fields = ['abi' as const];\n\nexport type Hex = `0x${string}`;\n\nconst decodeFunctionDataByAbi = ({\n abi: _abi,\n input,\n output,\n space,\n success,\n withOutput = false,\n similarWarning,\n}: {\n input: Hex;\n output?: Hex;\n abi?: AbiFunctionWithoutGas[] | string;\n space: 'evm' | 'core';\n success?: boolean;\n withOutput?: boolean;\n similarWarning?: boolean;\n}) => {\n try {\n const abi = typeof _abi === 'string' ? JSON.parse(_abi) : _abi;\n const hasAbi = abi && abi.length > 0;\n if (!hasAbi) return null;\n const isReturnDataEmpty = !output || output === '0x';\n const methodID = input.slice(0, 10);\n const decodedParams = decodeFunctionData({\n abi: abi,\n data: input,\n space,\n });\n let decodedResults = success\n ? !isReturnDataEmpty\n ? decodeFunctionResult({\n abi: abi,\n functionName: decodedParams.functionName,\n data: output,\n space,\n })\n : undefined\n : output;\n const abiItem = getAbiItem({\n abi: abi,\n name: decodedParams.functionName ?? methodID,\n }) as AbiFunctionWithoutGas;\n // if the output has only one value, decodeFunctionResult will return the value directly, otherwise it will return an array,\n // so we need to check the length of abiItem.outputs to determine whether to wrap decodedResults in an array\n const results =\n decodedResults === undefined\n ? undefined\n : abiItem.outputs.length === 1\n ? [decodedResults]\n : (decodedResults as unknown[]);\n if (!withOutput) {\n abiItem.outputs = [];\n }\n const fullName = formatABI([abiItem])[0];\n return {\n decodedParams,\n decodedResults: results,\n abiItem,\n fullName: fullName,\n failed: false,\n similarWarning,\n };\n } catch (error) {\n console.log('decode function data and result error', error);\n return {\n failed: true,\n similarWarning,\n };\n }\n};\n\nexport interface DecodedFunctionData {\n decodedParams?: {\n args: readonly unknown[] | undefined;\n functionName: string;\n };\n decodedResults?: unknown[];\n abiItem?: AbiFunctionWithoutGas;\n fullName?: string;\n // no abi for decoded\n noAbi?: boolean;\n // decoded failed\n failed?: boolean;\n // decoded by method abi, not contract abi\n similarWarning?: boolean;\n}\n\nexport const useDecodeFunctionData = ({\n to,\n abi: outerAbi,\n implementation: _implementation,\n input,\n output,\n space,\n success,\n supportMethodAbi,\n withOutput,\n}: {\n input: Hex;\n output?: Hex;\n to?: string;\n implementation?: string;\n abi?: AbiFunctionWithoutGas[];\n space: 'evm' | 'core';\n success?: boolean;\n supportMethodAbi?: boolean;\n withOutput?: boolean;\n}): [DecodedFunctionData, boolean] => {\n const hasOuterAbi = outerAbi && outerAbi.length > 0;\n const needContractAbi = !hasOuterAbi && !!input;\n const { data: contractData, isLoading: contractLoading } = useContractDetail(\n to,\n fields,\n needContractAbi,\n );\n const implementation =\n _implementation ?? contractData?.implementation?.address;\n const { data: implementationData, isLoading: implementationLoading } =\n useContractDetail(implementation, fields, needContractAbi);\n const decodedByOuterAbi = useMemo(() => {\n return decodeFunctionDataByAbi({\n abi: outerAbi,\n input,\n output,\n space,\n success,\n withOutput,\n });\n }, [input, output, outerAbi, success, space, withOutput]);\n const decodedByContractAbi = useMemo(() => {\n if (!contractData?.abi) return null;\n return decodeFunctionDataByAbi({\n abi: contractData.abi as string,\n input,\n output,\n space,\n success,\n withOutput,\n });\n }, [input, output, contractData?.abi, success, space, withOutput]);\n const decodedByImplementationAbi = useMemo(() => {\n if (!implementationData?.abi) return null;\n return decodeFunctionDataByAbi({\n abi: implementationData.abi as string,\n input,\n output,\n space,\n success,\n withOutput,\n });\n }, [input, output, implementationData?.abi, success, space, withOutput]);\n const needMethodAbi =\n !!supportMethodAbi &&\n needContractAbi &&\n // contract abi decoded failed\n !contractLoading &&\n (!decodedByContractAbi || decodedByContractAbi.failed) &&\n // implementation contract abi decoded failed\n !implementationLoading &&\n (!decodedByImplementationAbi || decodedByImplementationAbi.failed);\n const { data: methodAbi, isLoading: methodAbiLoading } = useMethodAbi(\n input.slice(0, 10),\n needMethodAbi,\n );\n const decodedByMethodAbi = useMemo(() => {\n // decode tx data with function abi only if there is only one function\n if (!methodAbi || methodAbi.list.length !== 1) return null;\n try {\n // e.g. transfer(address,uint256)\n const fullName = methodAbi.list[0]!.fullName;\n // e.g. function transfer(address recipient, uint256 amount) returns (bool)\n const formatWithArg = methodAbi.list[0]!.formatWithArg;\n const abi = formatABI([formatWithArg || `function ${fullName}`], {\n json: true,\n });\n return decodeFunctionDataByAbi({\n abi: abi,\n input,\n output,\n space,\n success,\n withOutput,\n similarWarning: true,\n });\n } catch (error) {\n console.log('decode function data and result error', error);\n return {\n failed: true,\n };\n }\n }, [input, output, methodAbi, success, space, withOutput]);\n\n return useMemo(() => {\n if (!input) return [{}, false];\n if (decodedByOuterAbi && !decodedByOuterAbi.failed)\n return [decodedByOuterAbi, false];\n if (decodedByImplementationAbi && !decodedByImplementationAbi.failed)\n return [decodedByImplementationAbi, implementationLoading];\n if (decodedByContractAbi && !decodedByContractAbi.failed)\n return [decodedByContractAbi, contractLoading];\n if (decodedByMethodAbi && !decodedByMethodAbi.failed)\n return [decodedByMethodAbi, methodAbiLoading];\n if (\n (decodedByOuterAbi && decodedByOuterAbi.failed) ||\n (decodedByImplementationAbi && decodedByImplementationAbi.failed) ||\n (decodedByContractAbi && decodedByContractAbi.failed) ||\n (decodedByMethodAbi && decodedByMethodAbi.failed)\n ) {\n return [\n {\n failed: true,\n },\n false,\n ];\n }\n return [\n {\n noAbi: true,\n },\n false,\n ];\n }, [\n input,\n decodedByOuterAbi,\n decodedByContractAbi,\n decodedByImplementationAbi,\n decodedByMethodAbi,\n contractLoading,\n implementationLoading,\n methodAbiLoading,\n ]);\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/utils/hooks/useDecodeFunctionData.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n decodeFunctionData,\n decodeFunctionResult,\n getAbiItem,\n AbiFunctionWithoutGas,\n} from 'src/utils/sdk';\nimport { useContractDetail } from './useContractDetail';\nimport { formatABI } from '..';\nimport { useMethodAbi } from './useMethodAbi';\n\nconst fields = ['abi' as const];\n\nexport type Hex = `0x${string}`;\n\nconst decodeFunctionDataByAbi = ({\n abi: _abi,\n input,\n output,\n space,\n success,\n withOutput = false,\n similarWarning,\n}: {\n input: Hex;\n output?: Hex;\n abi?: AbiFunctionWithoutGas[] | string;\n space: 'evm' | 'core';\n success?: boolean;\n withOutput?: boolean;\n similarWarning?: boolean;\n}) => {\n try {\n const abi = typeof _abi === 'string' ? JSON.parse(_abi) : _abi;\n const hasAbi = abi && abi.length > 0;\n if (!hasAbi) return null;\n const isReturnDataEmpty = !output || output === '0x';\n const methodID = input.slice(0, 10);\n const decodedParams = decodeFunctionData({\n abi: abi,\n data: input,\n space,\n });\n let decodedResults = success\n ? !isReturnDataEmpty\n ? decodeFunctionResult({\n abi: abi,\n functionName: decodedParams.functionName,\n data: output,\n space,\n })\n : undefined\n : output;\n const abiItem = getAbiItem({\n abi: abi,\n name: decodedParams.functionName ?? methodID,\n }) as AbiFunctionWithoutGas;\n // if the output has only one value, decodeFunctionResult will return the value directly, otherwise it will return an array,\n // so we need to check the length of abiItem.outputs to determine whether to wrap decodedResults in an array\n const results =\n decodedResults === undefined\n ? undefined\n : abiItem.outputs.length === 1\n ? [decodedResults]\n : (decodedResults as unknown[]);\n if (!withOutput) {\n abiItem.outputs = [];\n }\n const fullName = formatABI([abiItem])[0];\n return {\n decodedParams,\n decodedResults: results,\n abiItem,\n fullName: fullName,\n failed: false,\n similarWarning,\n };\n } catch (error) {\n console.log('decode function data and result error', error);\n return {\n failed: true,\n similarWarning,\n };\n }\n};\n\nexport interface DecodedFunctionData {\n decodedParams?: {\n args: readonly unknown[] | undefined;\n functionName: string;\n };\n decodedResults?: unknown[];\n abiItem?: AbiFunctionWithoutGas;\n fullName?: string;\n // no abi for decoded\n noAbi?: boolean;\n // decoded failed\n failed?: boolean;\n // decoded by method abi, not contract abi\n similarWarning?: boolean;\n}\n\nexport const useDecodeFunctionData = ({\n to,\n abi: outerAbi,\n implementation: _implementation,\n input,\n output,\n space,\n success,\n supportMethodAbi,\n withOutput,\n}: {\n input: Hex;\n output?: Hex;\n to?: string;\n implementation?: string;\n abi?: AbiFunctionWithoutGas[];\n space: 'evm' | 'core';\n success?: boolean;\n supportMethodAbi?: boolean;\n withOutput?: boolean;\n}): [DecodedFunctionData, boolean] => {\n const hasOuterAbi = outerAbi && outerAbi.length > 0;\n const needContractAbi = !hasOuterAbi && !!input;\n const { data: contractData, isLoading: contractLoading } = useContractDetail(\n to,\n fields,\n needContractAbi,\n );\n const implementation =\n _implementation ?? contractData?.implementation?.address;\n const { data: implementationData, isLoading: implementationLoading } =\n useContractDetail(implementation, fields, needContractAbi);\n const decodedByOuterAbi = useMemo(() => {\n return decodeFunctionDataByAbi({\n abi: outerAbi,\n input,\n output,\n space,\n success,\n withOutput,\n });\n }, [input, output, outerAbi, success, space, withOutput]);\n const decodedByContractAbi = useMemo(() => {\n if (!contractData?.abi) return null;\n return decodeFunctionDataByAbi({\n abi: contractData.abi as string,\n input,\n output,\n space,\n success,\n withOutput,\n });\n }, [input, output, contractData?.abi, success, space, withOutput]);\n const decodedByImplementationAbi = useMemo(() => {\n if (!implementationData?.abi) return null;\n return decodeFunctionDataByAbi({\n abi: implementationData.abi as string,\n input,\n output,\n space,\n success,\n withOutput,\n });\n }, [input, output, implementationData?.abi, success, space, withOutput]);\n const needMethodAbi =\n !!supportMethodAbi &&\n needContractAbi &&\n // contract abi decoded failed\n !contractLoading &&\n (!decodedByContractAbi || decodedByContractAbi.failed) &&\n // implementation contract abi decoded failed\n !implementationLoading &&\n (!decodedByImplementationAbi || decodedByImplementationAbi.failed);\n const { data: methodAbi, isLoading: methodAbiLoading } = useMethodAbi(\n input.slice(0, 10),\n needMethodAbi,\n );\n const decodedByMethodAbi = useMemo(() => {\n // decode tx data with function abi only if there is only one function\n if (!methodAbi || methodAbi.list.length !== 1) return null;\n try {\n // e.g. transfer(address,uint256)\n const fullName = methodAbi.list[0]!.fullName;\n // e.g. function transfer(address recipient, uint256 amount) returns (bool)\n const formatWithArg = methodAbi.list[0]!.formatWithArg;\n const abi = formatABI([formatWithArg || `function ${fullName}`], {\n json: true,\n });\n return decodeFunctionDataByAbi({\n abi: abi,\n input,\n output,\n space,\n success,\n withOutput,\n similarWarning: true,\n });\n } catch (error) {\n console.log('decode function data and result error', error);\n return {\n failed: true,\n };\n }\n }, [input, output, methodAbi, success, space, withOutput]);\n\n return useMemo(() => {\n if (!input) return [{}, false];\n if (decodedByOuterAbi && !decodedByOuterAbi.failed)\n return [decodedByOuterAbi, false];\n if (decodedByImplementationAbi && !decodedByImplementationAbi.failed)\n return [decodedByImplementationAbi, implementationLoading];\n if (decodedByContractAbi && !decodedByContractAbi.failed)\n return [decodedByContractAbi, contractLoading];\n if (decodedByMethodAbi && !decodedByMethodAbi.failed)\n return [decodedByMethodAbi, methodAbiLoading];\n if (implementationLoading || contractLoading || methodAbiLoading) {\n return [{}, true];\n }\n if (\n (decodedByOuterAbi && decodedByOuterAbi.failed) ||\n (decodedByImplementationAbi && decodedByImplementationAbi.failed) ||\n (decodedByContractAbi && decodedByContractAbi.failed) ||\n (decodedByMethodAbi && decodedByMethodAbi.failed)\n ) {\n return [\n {\n failed: true,\n },\n false,\n ];\n }\n return [\n {\n noAbi: true,\n },\n false,\n ];\n }, [\n input,\n decodedByOuterAbi,\n decodedByContractAbi,\n decodedByImplementationAbi,\n decodedByMethodAbi,\n contractLoading,\n implementationLoading,\n methodAbiLoading,\n ]);\n};\n"],"mappings":"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","names":[]}
@@ -64,6 +64,7 @@ var RenderAddress = ({
64
64
  style = {},
65
65
  maxWidth,
66
66
  prefix = null,
67
+ ENSIcon = null,
67
68
  suffix = null,
68
69
  type = "pow",
69
70
  addressLabel = "",
@@ -72,7 +73,8 @@ var RenderAddress = ({
72
73
  hideAliasPrefixInHover = false
73
74
  }) => {
74
75
  const translations = getTranslations();
75
- const name = addressLabel || content || ENSLabel || nametag || alias;
76
+ const name = addressLabel || content || nametag || alias || ENSLabel;
77
+ const isShowEns = !!ENSLabel && name === ENSLabel;
76
78
  const defaultStyle = {
77
79
  maxWidth: `${name && isFullNameTag || isFull ? "auto" : (maxWidth || defaultPCMaxWidth) + "px"}`
78
80
  };
@@ -100,7 +102,7 @@ var RenderAddress = ({
100
102
  const checksumAddress = convertCheckSum(cfxAddress);
101
103
  const cfxAddressLabel = typeof cfxAddress === "string" && !isFull ? shortenAddress(checksumAddress) : checksumAddress;
102
104
  return /* @__PURE__ */ jsxs("div", { className: "inline-flex", children: [
103
- prefix,
105
+ prefix || (isShowEns ? ENSIcon : null),
104
106
  /* @__PURE__ */ jsx(
105
107
  Text,
106
108
  {
@@ -127,4 +129,4 @@ var RenderAddress = ({
127
129
  export {
128
130
  RenderAddress
129
131
  };
130
- //# sourceMappingURL=chunk-AIBPOND2.js.map
132
+ //# sourceMappingURL=chunk-HJNIYZ62.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/AddressContainer/addressView.tsx"],"sourcesContent":["import { Translation } from 'react-i18next';\nimport { Text } from '../Text';\nimport { convertCheckSum } from '../../utils/address';\nimport { getTranslations } from '../../store';\nimport { TooltipContent, RenderAddressProps } from './types';\nimport { shortenAddress } from '@cfx-kit/dapp-utils/dist/address';\n\nconst defaultPCMaxWidth = 138;\n\n// common\nconst renderTooltipContent = (tooltipContent: TooltipContent) => {\n return Object.entries(tooltipContent)\n .map(([key, { label, value, hideLabel }]) => {\n if (value) {\n return (\n <div key={key}>\n {!hideLabel && (\n <span>\n <Translation>{t => t(label)}</Translation>\n </span>\n )}\n {value}\n </div>\n );\n }\n return null;\n })\n .filter(Boolean);\n};\n\n// common\nconst convertLink = ({\n link,\n type,\n hrefAddress,\n cfxAddress,\n}: RenderAddressProps) => {\n if (typeof link === 'string') {\n return link;\n }\n if (link === false) {\n return false;\n }\n\n const address = hrefAddress || cfxAddress;\n\n if (address && typeof address === 'string') {\n const pathname = window.location.pathname.toLowerCase();\n const addressLower = address.toLowerCase();\n if (pathname.includes('/address/' + addressLower)) {\n return false;\n }\n\n if (type === 'pow') {\n return `/address/${address}`;\n }\n\n if (type === 'pos') {\n return `/pos/accounts/${address}`;\n }\n }\n\n return false;\n};\n\n// common\nexport const RenderAddress = ({\n cfxAddress,\n alias,\n hoverValue,\n hrefAddress,\n content,\n link = '',\n isFull = false,\n isFullNameTag = false,\n style = {},\n maxWidth,\n prefix = null,\n ENSIcon = null,\n suffix = null,\n type = 'pow',\n addressLabel = '',\n ENSLabel = '',\n nametag = '',\n hideAliasPrefixInHover = false,\n}: RenderAddressProps) => {\n const translations = getTranslations();\n\n // Private name tags >Official tag/name>contract token name > contract tag > contract name>CNS/ENS\n const name = addressLabel || content || nametag || alias || ENSLabel;\n const isShowEns = !!ENSLabel && name === ENSLabel;\n\n const defaultStyle = {\n maxWidth: `${(name && isFullNameTag) || isFull ? 'auto' : (maxWidth || defaultPCMaxWidth) + 'px'}`,\n };\n\n const href = convertLink({ link, type, hrefAddress, cfxAddress });\n\n const Wrapper = href ? 'a' : 'div';\n\n const tooltipContent: TooltipContent = {\n ENSLabel: {\n label: (translations as any)?.ens?.tip,\n value: ENSLabel,\n },\n nametag: {\n label: translations?.nametag?.tip,\n value: nametag,\n },\n addressLabel: {\n label: translations?.profile.address.myNameTag,\n value: addressLabel,\n },\n alias: {\n label: translations?.profile.address.publicNameTag,\n value: alias,\n hideLabel: hideAliasPrefixInHover,\n },\n };\n\n const checksumAddress = convertCheckSum(cfxAddress);\n\n const cfxAddressLabel =\n typeof cfxAddress === 'string' && !isFull\n ? shortenAddress(checksumAddress!)\n : checksumAddress;\n\n return (\n <div className=\"inline-flex\">\n {prefix || (isShowEns ? ENSIcon : null)}\n <Text\n tag=\"span\"\n hoverValue={\n <>\n {renderTooltipContent(tooltipContent)}\n <div>{hoverValue || checksumAddress}</div>\n </>\n }\n >\n <Wrapper\n className=\"block relative align-bottom cursor-default truncate\"\n style={{ ...defaultStyle, ...style }}\n {...(href ? { href: String(href) } : {})}\n >\n {name || cfxAddressLabel}\n </Wrapper>\n </Text>\n {suffix}\n </div>\n );\n};\n"],"mappings":"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","names":[]}
@@ -8,10 +8,10 @@ import {
8
8
  InvalidAddress,
9
9
  MyAddress,
10
10
  PosAddress
11
- } from "./chunk-H5VKAQ2A.js";
11
+ } from "./chunk-WSDJ3XJ2.js";
12
12
  import {
13
13
  RenderAddress
14
- } from "./chunk-AIBPOND2.js";
14
+ } from "./chunk-HJNIYZ62.js";
15
15
  import {
16
16
  formatAddress,
17
17
  isCoreAddress,
@@ -49,7 +49,7 @@ var parseProps = (props, globalData) => {
49
49
  if (!alias && isZeroAddress(cfxAddress)) {
50
50
  aliasLabel = t(translations.general.zeroAddress);
51
51
  }
52
- let prefixIcon = null;
52
+ let ENSIcon = null;
53
53
  let officalNametag = null;
54
54
  let addressLabel = null;
55
55
  let ENSLabel = null;
@@ -73,11 +73,11 @@ var parseProps = (props, globalData) => {
73
73
  if (showENSLabel && gENSLabel) {
74
74
  const { label, icon } = getLabelInfo(gENSLabel, "ens");
75
75
  ENSLabel = label;
76
- prefixIcon = icon;
76
+ ENSIcon = icon;
77
77
  }
78
78
  return {
79
79
  alias: aliasLabel,
80
- prefix: prefixIcon,
80
+ ENSIcon,
81
81
  nametag: officalNametag,
82
82
  addressLabel,
83
83
  ENSLabel,
@@ -138,4 +138,4 @@ var CoreAddressContainer = withTranslation()(
138
138
  export {
139
139
  CoreAddressContainer
140
140
  };
141
- //# sourceMappingURL=chunk-PTIDOK4R.js.map
141
+ //# sourceMappingURL=chunk-IDGNYTHY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/AddressContainer/CoreAddressContainer.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport _ from 'lodash';\nimport {\n formatAddress,\n isCoreAddress,\n isCoreContractAddress,\n isZeroAddress,\n convertCheckSum,\n} from '../../utils/address';\nimport { useGlobalData, getTranslations } from '../../store';\nimport { LOCALSTORAGE_KEYS_MAP } from '../../utils/constants';\nimport { getLabelInfo } from './label';\nimport { useENS } from '../../utils/hooks/useENS';\n\nimport { RenderAddress } from './addressView';\nimport {\n ContractCreatedAddress,\n CoreHexAddress,\n InvalidAddress,\n ContractAddress,\n MyAddress,\n PosAddress,\n} from './addressSwitcher';\nimport { GlobalDataType } from 'src/store/types';\nimport { CoreAddressContainerProps } from './types';\n\nconst parseProps = (\n props: CoreAddressContainerProps & WithTranslation,\n globalData: GlobalDataType,\n) => {\n const {\n alias,\n ensInfo,\n t,\n showAddressLabel,\n showNametag,\n nametagInfo,\n showENSLabel,\n } = props;\n const value: string = props.value || '';\n const cfxAddress = formatAddress(value, 'base32');\n\n let ENSMap = ensInfo || {};\n\n const translations = getTranslations();\n\n let aliasLabel = alias;\n if (!alias && isZeroAddress(cfxAddress)) {\n aliasLabel = t(translations.general.zeroAddress);\n }\n\n let ENSIcon: React.ReactNode = null;\n // official name tag\n let officalNametag: React.ReactNode = null;\n // private name tag\n let addressLabel: React.ReactNode = null;\n // ens name tag\n let ENSLabel: React.ReactNode = null;\n // global ens name tag\n const gENSLabel = cfxAddress && ENSMap[cfxAddress]?.name;\n\n if (cfxAddress && showAddressLabel) {\n // global private name tag\n const addressLabels = globalData?.[LOCALSTORAGE_KEYS_MAP.addressLabel];\n const gAddressLabel = addressLabels?.[cfxAddress];\n\n if (gAddressLabel) {\n const { label } = getLabelInfo(gAddressLabel, 'tag');\n addressLabel = label;\n }\n }\n\n if (cfxAddress && showNametag) {\n const nametags = nametagInfo?.[cfxAddress];\n\n if (nametags) {\n const nametag = nametags?.nametag ?? '';\n const { label } = getLabelInfo(nametag, 'nametag');\n officalNametag = label;\n }\n }\n\n if (showENSLabel && gENSLabel) {\n const { label, icon } = getLabelInfo(gENSLabel, 'ens');\n ENSLabel = label;\n ENSIcon = icon;\n }\n\n return {\n alias: aliasLabel,\n ENSIcon: ENSIcon,\n nametag: officalNametag,\n addressLabel,\n ENSLabel,\n cfxAddress,\n };\n};\n\nexport const CoreAddressContainer = withTranslation()(\n memo((props: CoreAddressContainerProps & WithTranslation) => {\n const { globalData } = useGlobalData();\n\n // If the interface returns Ens content, there is no need to obtain it separately, or disable the display of Ens content (in most cases on the list page).\n const unnecessaryEns = props.ensInfo || props.showENSLabel === false;\n const { ens } = useENS(unnecessaryEns ? null : props.value);\n\n // If a txn receipt has no 'to' address or 'contractCreated', show -- for temp\n if (!props.value && !props.contractCreated) {\n return <>--</>;\n }\n\n const defaultProps = {\n isFull: false,\n isFullNameTag: false,\n link: true,\n isMe: false,\n showIcon: true,\n verify: false,\n showAddressLabel: true,\n showENSLabel: true,\n showNametag: true,\n ensInfo: ens,\n };\n\n const mergeDefaultProps = _.assign({}, defaultProps, props);\n\n const mergeParseProps = _.merge(\n {},\n mergeDefaultProps,\n parseProps(mergeDefaultProps, globalData),\n );\n\n if (mergeParseProps.isPosAddress) {\n return PosAddress(mergeParseProps);\n }\n\n if (!mergeParseProps.value && mergeParseProps.contractCreated) {\n return ContractCreatedAddress({\n ...mergeParseProps,\n outputType: 'base32',\n });\n }\n\n if (mergeParseProps.isEspaceAddress) {\n return CoreHexAddress(mergeParseProps);\n }\n\n if (!isCoreAddress(mergeParseProps.value)) {\n return InvalidAddress(mergeParseProps);\n }\n\n if (isCoreContractAddress(mergeParseProps.cfxAddress)) {\n return ContractAddress(mergeParseProps);\n }\n\n if (mergeParseProps.isMe) {\n return MyAddress(mergeParseProps);\n }\n\n return RenderAddress(mergeParseProps);\n }),\n);\n"],"mappings":"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","names":[]}
@@ -250,6 +250,24 @@ var Down = (props) => /* @__PURE__ */ jsx(
250
250
  )
251
251
  }
252
252
  );
253
+ var Warning = (props) => /* @__PURE__ */ jsx(
254
+ "svg",
255
+ {
256
+ xmlns: "http://www.w3.org/2000/svg",
257
+ width: "16",
258
+ height: "16",
259
+ viewBox: "0 0 16 16",
260
+ fill: "none",
261
+ ...props,
262
+ children: /* @__PURE__ */ jsx(
263
+ "path",
264
+ {
265
+ d: "M8 0C12.4183 0 16 3.58172 16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0ZM8 1.54883C4.43687 1.54883 1.54883 4.43687 1.54883 8C1.54883 11.5631 4.43687 14.4512 8 14.4512C11.5631 14.4512 14.4512 11.5631 14.4512 8C14.4512 4.43687 11.5631 1.54883 8 1.54883ZM8 7.22559C8.39182 7.22559 8.71616 7.51682 8.76758 7.89453L8.77441 8V10.8906C8.77425 11.3181 8.42747 11.6641 8 11.6641C7.60806 11.6641 7.28369 11.373 7.23242 10.9951L7.22559 10.8906V8C7.22559 7.57242 7.57242 7.22559 8 7.22559ZM8.00684 4.33594C8.43431 4.33594 8.78109 4.68194 8.78125 5.10938C8.78125 5.50132 8.49019 5.82569 8.1123 5.87695L8.00684 5.88379C7.57222 5.88358 7.22559 5.53682 7.22559 5.10938C7.22574 4.71772 7.51696 4.39422 7.89453 4.34277L8.00684 4.33594Z",
266
+ fill: "currentColor"
267
+ }
268
+ )
269
+ }
270
+ );
253
271
  var DefaultTokenIcon = (props) => /* @__PURE__ */ jsxs(
254
272
  "svg",
255
273
  {
@@ -339,6 +357,7 @@ export {
339
357
  Plus,
340
358
  Minus,
341
359
  Down,
360
+ Warning,
342
361
  DefaultTokenIcon
343
362
  };
344
- //# sourceMappingURL=chunk-JFFTHCNE.js.map
363
+ //# sourceMappingURL=chunk-MWAD4CIG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Icons/index.tsx"],"sourcesContent":["export const ArrowDown: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#clip0_7684_174)\">\n <rect width=\"16\" height=\"16\" rx=\"2\" fill=\"#7789D3\" fillOpacity=\"0.08\" />\n <path\n d=\"M4 6L8 10L12 6\"\n stroke=\"#9B9EAC\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_7684_174\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport const Add: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#clip0_7684_167)\">\n <rect width=\"16\" height=\"16\" rx=\"2\" fill=\"#7789D3\" fillOpacity=\"0.08\" />\n <path\n d=\"M4 8H12\"\n stroke=\"#9B9EAC\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8 4L8 12\"\n stroke=\"#9B9EAC\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_7684_167\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport const ContractCreated: React.FC<\n React.SVGProps<SVGSVGElement>\n> = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n {...props}\n >\n <path\n d=\"M4 10H16\"\n stroke=\"#1E3DE4\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M10 4L10 16\"\n stroke=\"#1E3DE4\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport const Success: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16Z\"\n fill=\"#7CD77B\"\n />\n <path\n d=\"M4.66669 7.8808L7.21849 10.4849L11.1061 5.3334\"\n stroke=\"white\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport const Failed: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16Z\"\n fill=\"#E15C56\"\n />\n <path\n d=\"M10 6L6 10\"\n stroke=\"white\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M6 6L10 10\"\n stroke=\"white\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport const Plus: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#clip0_8425_1454)\">\n <rect width=\"16\" height=\"16\" rx=\"2\" fill=\"#7789D3\" fillOpacity=\"0.08\" />\n <path\n d=\"M4 8H12\"\n stroke=\"#9B9EAC\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8 4L8 12\"\n stroke=\"#9B9EAC\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_8425_1454\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport const Minus: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#clip0_8425_1449)\">\n <rect width=\"16\" height=\"16\" rx=\"2\" fill=\"#7789D3\" fillOpacity=\"0.08\" />\n <path\n d=\"M4 8H12\"\n stroke=\"#9B9EAC\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_8425_1449\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport const Down: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <path\n d=\"M2 5L8 11L14 5\"\n stroke=\"#74798C\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport const Warning: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <path\n d=\"M8 0C12.4183 0 16 3.58172 16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0ZM8 1.54883C4.43687 1.54883 1.54883 4.43687 1.54883 8C1.54883 11.5631 4.43687 14.4512 8 14.4512C11.5631 14.4512 14.4512 11.5631 14.4512 8C14.4512 4.43687 11.5631 1.54883 8 1.54883ZM8 7.22559C8.39182 7.22559 8.71616 7.51682 8.76758 7.89453L8.77441 8V10.8906C8.77425 11.3181 8.42747 11.6641 8 11.6641C7.60806 11.6641 7.28369 11.373 7.23242 10.9951L7.22559 10.8906V8C7.22559 7.57242 7.57242 7.22559 8 7.22559ZM8.00684 4.33594C8.43431 4.33594 8.78109 4.68194 8.78125 5.10938C8.78125 5.50132 8.49019 5.82569 8.1123 5.87695L8.00684 5.88379C7.57222 5.88358 7.22559 5.53682 7.22559 5.10938C7.22574 4.71772 7.51696 4.39422 7.89453 4.34277L8.00684 4.33594Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const DefaultTokenIcon: React.FC<\n React.SVGProps<SVGSVGElement>\n> = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#clip0_4974_4235)\">\n <path\n d=\"M6.83335 4.66096C6.70311 4.47666 6.47497 4.36443 6.22923 4.36377H2.01469C1.76768 4.36334 1.53791 4.47571 1.40699 4.66096L0.109388 6.49783C-0.0574925 6.73299 -0.031392 7.03693 0.173733 7.24711L3.8485 11.041C3.97681 11.1737 4.20246 11.1892 4.3525 11.0758C4.36662 11.0651 4.37977 11.0535 4.39185 11.041L8.06661 7.24711C8.27287 7.03765 8.30043 6.73367 8.13453 6.49783L6.83335 4.66096Z\"\n fill=\"#C4C6D2\"\n />\n <path\n d=\"M12.9833 8.95309C12.8837 8.81306 12.7093 8.7278 12.5213 8.7273H9.29846C9.10957 8.72697 8.93386 8.81234 8.83375 8.95309L7.84146 10.3486C7.71385 10.5273 7.73381 10.7582 7.89067 10.9179L10.7008 13.8002C10.7989 13.901 10.9715 13.9129 11.0862 13.8267C11.097 13.8186 11.1071 13.8097 11.1163 13.8002L13.9264 10.9179C14.0841 10.7588 14.1052 10.5278 13.9783 10.3486L12.9833 8.95309Z\"\n fill=\"#7F8296\"\n />\n <path\n d=\"M12.403 1.81547C12.2498 1.59167 11.9814 1.45539 11.6923 1.45459H6.73399C6.44339 1.45407 6.17307 1.59051 6.01906 1.81547L4.49246 4.04595C4.29613 4.33151 4.32684 4.70058 4.56816 4.95579L8.89141 9.56262C9.04237 9.72376 9.30784 9.74268 9.48436 9.60488C9.50097 9.59191 9.51644 9.57778 9.53065 9.56262L13.8539 4.95579C14.0966 4.70145 14.129 4.33233 13.9338 4.04595L12.403 1.81547Z\"\n fill=\"#4C4F60\"\n />\n <path\n d=\"M9.09439 8.08617L6.84586 5.67492C6.73629 5.55741 6.55221 5.55098 6.4347 5.66056C6.3172 5.77013 6.31077 5.95421 6.42035 6.07171L8.66887 8.48297C8.77845 8.60047 8.96253 8.6069 9.08003 8.49732C9.19753 8.38775 9.20396 8.20367 9.09439 8.08617Z\"\n fill=\"white\"\n />\n <path\n d=\"M4.08062 9.84827L2.16276 7.79161C2.05318 7.67411 1.8691 7.66768 1.7516 7.77726C1.6341 7.88683 1.62767 8.07091 1.73724 8.18841L3.6551 10.2451C3.76468 10.3626 3.94876 10.369 4.06626 10.2594C4.18376 10.1499 4.19019 9.96577 4.08062 9.84827Z\"\n fill=\"white\"\n />\n <path\n d=\"M11.0616 12.7989L9.97037 11.6288C9.8608 11.5113 9.67672 11.5048 9.55922 11.6144C9.44171 11.724 9.43528 11.9081 9.54486 12.0256L10.6361 13.1957C10.7456 13.3132 10.9297 13.3197 11.0472 13.2101C11.1647 13.1005 11.1711 12.9164 11.0616 12.7989Z\"\n fill=\"white\"\n />\n <path\n d=\"M5.81786 5.5759C6.08563 5.5759 6.3027 5.35882 6.3027 5.09105C6.3027 4.82328 6.08563 4.6062 5.81786 4.6062C5.55008 4.6062 5.33301 4.82328 5.33301 5.09105C5.33301 5.35882 5.55008 5.5759 5.81786 5.5759Z\"\n fill=\"white\"\n />\n <path\n d=\"M1.2119 7.75778C1.47967 7.75778 1.69675 7.54071 1.69675 7.27293C1.69675 7.00516 1.47967 6.78809 1.2119 6.78809C0.944125 6.78809 0.727051 7.00516 0.727051 7.27293C0.727051 7.54071 0.944125 7.75778 1.2119 7.75778Z\"\n fill=\"white\"\n />\n <path\n d=\"M8.96971 11.394C9.23749 11.394 9.45456 11.1769 9.45456 10.9092C9.45456 10.6414 9.23749 10.4243 8.96971 10.4243C8.70194 10.4243 8.48486 10.6414 8.48486 10.9092C8.48486 11.1769 8.70194 11.394 8.96971 11.394Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4974_4235\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n"],"mappings":"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","names":[]}
@@ -1,3 +1,7 @@
1
+ import {
2
+ ContractDetail,
3
+ formatContractAndTokenInfoMap
4
+ } from "./chunk-SX6R4MHO.js";
1
5
  import {
2
6
  FunctionName,
3
7
  getParameterType
@@ -8,10 +12,6 @@ import {
8
12
  import {
9
13
  AddressLabel
10
14
  } from "./chunk-CKVDFS45.js";
11
- import {
12
- ContractDetail,
13
- formatContractAndTokenInfoMap
14
- } from "./chunk-SUCQASD3.js";
15
15
  import {
16
16
  Link
17
17
  } from "./chunk-2Y57U43P.js";
@@ -181,4 +181,4 @@ export {
181
181
  DecodedParameters,
182
182
  OptimizationDecode
183
183
  };
184
- //# sourceMappingURL=chunk-U6ZN2ABK.js.map
184
+ //# sourceMappingURL=chunk-OZ4OJLIM.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-2Y57U43P.js";
4
4
  import {
5
5
  DefaultTokenIcon
6
- } from "./chunk-JFFTHCNE.js";
6
+ } from "./chunk-MWAD4CIG.js";
7
7
  import {
8
8
  formatAddress
9
9
  } from "./chunk-CNF26YY7.js";
@@ -81,4 +81,4 @@ export {
81
81
  formatContractAndTokenInfoMap,
82
82
  ContractDetail
83
83
  };
84
- //# sourceMappingURL=chunk-SUCQASD3.js.map
84
+ //# sourceMappingURL=chunk-SX6R4MHO.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  ErrorDecode
3
- } from "./chunk-6HJCR6PQ.js";
3
+ } from "./chunk-YIXV7A4J.js";
4
4
  import {
5
5
  GeneralDecode
6
6
  } from "./chunk-OYESIV3F.js";
7
7
  import {
8
8
  DecodedParameters
9
- } from "./chunk-U6ZN2ABK.js";
9
+ } from "./chunk-OZ4OJLIM.js";
10
10
  import {
11
11
  Original
12
12
  } from "./chunk-YBQQ72FQ.js";
@@ -69,4 +69,4 @@ var OutputData = ({
69
69
  export {
70
70
  OutputData
71
71
  };
72
- //# sourceMappingURL=chunk-GFY6G6I2.js.map
72
+ //# sourceMappingURL=chunk-TP67325Z.js.map
@@ -1,9 +1,9 @@
1
+ import {
2
+ TraceDetail
3
+ } from "./chunk-A6ND7FSQ.js";
1
4
  import {
2
5
  Table
3
6
  } from "./chunk-XZ7IV2FF.js";
4
- import {
5
- TraceDetail
6
- } from "./chunk-UINFSWXM.js";
7
7
 
8
8
  // src/components/TransactionTrace/TreeTraceTable.tsx
9
9
  import { useMemo } from "react";
@@ -79,4 +79,4 @@ var TreeTraceTable = ({
79
79
  export {
80
80
  TreeTraceTable
81
81
  };
82
- //# sourceMappingURL=chunk-CPX5R5ND.js.map
82
+ //# sourceMappingURL=chunk-VJSXGYWN.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  ContractCreated
3
- } from "./chunk-JFFTHCNE.js";
3
+ } from "./chunk-MWAD4CIG.js";
4
4
  import {
5
5
  RenderAddress
6
- } from "./chunk-AIBPOND2.js";
6
+ } from "./chunk-HJNIYZ62.js";
7
7
  import {
8
8
  formatAddress,
9
9
  isInnerContractAddress
@@ -205,4 +205,4 @@ export {
205
205
  MyAddress,
206
206
  PosAddress
207
207
  };
208
- //# sourceMappingURL=chunk-H5VKAQ2A.js.map
208
+ //# sourceMappingURL=chunk-WSDJ3XJ2.js.map
@@ -0,0 +1,37 @@
1
+ import {
2
+ Link
3
+ } from "./chunk-2Y57U43P.js";
4
+ import {
5
+ Warning
6
+ } from "./chunk-MWAD4CIG.js";
7
+
8
+ // src/components/InputData/AbiWarning.tsx
9
+ import { Trans } from "react-i18next";
10
+ import clsx from "clsx";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
12
+ var AbiWarning = ({
13
+ tip,
14
+ className
15
+ }) => {
16
+ if (!tip)
17
+ return null;
18
+ return /* @__PURE__ */ jsxs(
19
+ "div",
20
+ {
21
+ className: clsx("mt-1.4286rem flex items-center text-#9b9eac", className),
22
+ children: [
23
+ /* @__PURE__ */ jsx(Warning, { className: "w-1rem" }),
24
+ /* @__PURE__ */ jsx("span", { className: "text-1rem ml-0.5714rem", children: /* @__PURE__ */ jsxs(Trans, { i18nKey: tip, children: [
25
+ "ABI not uploaded. You can help improve the decoding of this transaction by",
26
+ /* @__PURE__ */ jsx(Link, { href: "/abi-verification", children: "submitting function signatures" }),
27
+ "."
28
+ ] }) })
29
+ ]
30
+ }
31
+ );
32
+ };
33
+
34
+ export {
35
+ AbiWarning
36
+ };
37
+ //# sourceMappingURL=chunk-XBEBAU77.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/InputData/AbiWarning.tsx"],"sourcesContent":["import { Trans } from 'react-i18next';\nimport { Warning } from '../Icons';\nimport clsx from 'clsx';\nimport { Link } from '../Link';\n\nexport const AbiWarning = ({\n tip,\n className,\n}: {\n tip?: string;\n className?: string;\n}) => {\n if (!tip) return null;\n return (\n <div\n className={clsx('mt-1.4286rem flex items-center text-#9b9eac', className)}\n >\n <Warning className=\"w-1rem\" />\n <span className=\"text-1rem ml-0.5714rem\">\n <Trans i18nKey={tip}>\n ABI not uploaded. You can help improve the decoding of this\n transaction by\n <Link href=\"/abi-verification\">submitting function signatures</Link>.\n </Trans>\n </span>\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAAA,SAAS,aAAa;AAEtB,OAAO,UAAU;AAeX,cAEE,YAFF;AAZC,IAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AACF,MAGM;AACJ,MAAI,CAAC;AAAK,WAAO;AACjB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,KAAK,+CAA+C,SAAS;AAAA,MAExE;AAAA,4BAAC,WAAQ,WAAU,UAAS;AAAA,QAC5B,oBAAC,UAAK,WAAU,0BACd,+BAAC,SAAM,SAAS,KAAK;AAAA;AAAA,UAGnB,oBAAC,QAAK,MAAK,qBAAoB,4CAA8B;AAAA,UAAO;AAAA,WACtE,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,15 +1,18 @@
1
1
  import {
2
2
  useDecodeFunctionError
3
- } from "./chunk-K6FHTS3F.js";
3
+ } from "./chunk-2KXTTKRI.js";
4
4
  import {
5
5
  DecodedParameters
6
- } from "./chunk-U6ZN2ABK.js";
6
+ } from "./chunk-OZ4OJLIM.js";
7
7
  import {
8
8
  FunctionName
9
9
  } from "./chunk-FYLAXC3R.js";
10
10
  import {
11
11
  Original
12
12
  } from "./chunk-YBQQ72FQ.js";
13
+ import {
14
+ AbiWarning
15
+ } from "./chunk-XBEBAU77.js";
13
16
  import {
14
17
  cn
15
18
  } from "./chunk-CPPQCJEV.js";
@@ -41,7 +44,15 @@ var ErrorDecode = ({
41
44
  children: "Error:"
42
45
  }
43
46
  ),
44
- /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(Original, { data: errorData }) })
47
+ /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
48
+ /* @__PURE__ */ jsx(Original, { data: errorData }),
49
+ !isLoading && /* @__PURE__ */ jsx(
50
+ AbiWarning,
51
+ {
52
+ tip: decodedError?.failed ? "contract.abiError" : decodedError?.noAbi ? "contract.abiNotUploaded" : void 0
53
+ }
54
+ )
55
+ ] })
45
56
  ] });
46
57
  return /* @__PURE__ */ jsxs(Fragment, { children: [
47
58
  /* @__PURE__ */ jsxs("div", { className: "flex min-h-32px", children: [
@@ -76,4 +87,4 @@ var ErrorDecode = ({
76
87
  export {
77
88
  ErrorDecode
78
89
  };
79
- //# sourceMappingURL=chunk-6HJCR6PQ.js.map
90
+ //# sourceMappingURL=chunk-YIXV7A4J.js.map