@cfxjs/sirius-next-common 0.2.20 → 0.2.22
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.
- package/dist/{chunk-XUKHHB5L.js → chunk-2KBVDLVC.js} +5 -5
- package/dist/{chunk-7VQL3G7K.js → chunk-2TO4UOX3.js} +8 -8
- package/dist/chunk-2TO4UOX3.js.map +1 -0
- package/dist/chunk-5AM5HM3B.js +10 -0
- package/dist/chunk-5AM5HM3B.js.map +1 -0
- package/dist/{chunk-ELF2EOGF.js → chunk-6KG65RIO.js} +2 -2
- package/dist/{chunk-6L4ZEJQI.js → chunk-6TKFGXSA.js} +2 -2
- package/dist/{chunk-2WEBXRNL.js → chunk-6XLSWPR3.js} +28 -32
- package/dist/chunk-6XLSWPR3.js.map +1 -0
- package/dist/{chunk-W64AF7LA.js → chunk-7IGZGPFM.js} +9 -9
- package/dist/chunk-7IGZGPFM.js.map +1 -0
- package/dist/{chunk-BEI5TWJL.js → chunk-7P6KYI3Z.js} +2 -2
- package/dist/{chunk-RUU22F7R.js → chunk-7PQ6YKBC.js} +2 -2
- package/dist/{chunk-H5ZJBRIK.js → chunk-ABO5SDB4.js} +10 -10
- package/dist/chunk-ABO5SDB4.js.map +1 -0
- package/dist/{chunk-XZL5CZFT.js → chunk-CRTD2R3I.js} +6 -6
- package/dist/chunk-CRTD2R3I.js.map +1 -0
- package/dist/{chunk-CMOP3BKX.js → chunk-DEZ6AV62.js} +3 -3
- package/dist/{chunk-LCIBOT5P.js → chunk-DV3GFG5Q.js} +2 -2
- package/dist/{chunk-4LSM4TMM.js → chunk-E7ZFE6KT.js} +3 -3
- package/dist/{chunk-C6CGZ6KN.js → chunk-EQWC4NEP.js} +3 -3
- package/dist/{chunk-C6CGZ6KN.js.map → chunk-EQWC4NEP.js.map} +1 -1
- package/dist/{chunk-YEAWH772.js → chunk-FTRICVXA.js} +2 -2
- package/dist/{chunk-YVV32ON3.js → chunk-FUKVDD7K.js} +2 -2
- package/dist/{chunk-NM3BMITL.js → chunk-G246NFI4.js} +19 -3
- package/dist/{chunk-NM3BMITL.js.map → chunk-G246NFI4.js.map} +1 -1
- package/dist/{chunk-UZALXR3J.js → chunk-KHUI4JLS.js} +7 -7
- package/dist/chunk-KHUI4JLS.js.map +1 -0
- package/dist/{chunk-OT7NZ4PK.js → chunk-KZ2KYINT.js} +3 -3
- package/dist/{chunk-HF7RD7UD.js → chunk-LQCS5PT5.js} +3 -3
- package/dist/chunk-LQCS5PT5.js.map +1 -0
- package/dist/{chunk-GHHUAWSG.js → chunk-MF6LAIGP.js} +3 -3
- package/dist/{chunk-AYCHKB2Y.js → chunk-N5X4DZS3.js} +2 -2
- package/dist/{chunk-DYNSSHD5.js → chunk-OMU7JQ6Y.js} +11 -38
- package/dist/chunk-OMU7JQ6Y.js.map +1 -0
- package/dist/{chunk-UF5BN4QN.js → chunk-P7M7B7ER.js} +2 -2
- package/dist/{chunk-DCQANK66.js → chunk-RJOY6FMD.js} +2 -2
- package/dist/{chunk-WZIT54AU.js → chunk-SQI2F34Q.js} +2 -2
- package/dist/{chunk-LCV3NUFR.js → chunk-TJZKPAAH.js} +5 -5
- package/dist/{chunk-BHAXBHVC.js → chunk-TTNJMHOJ.js} +4 -4
- package/dist/{chunk-C7OIVXE3.js → chunk-VVEA44KS.js} +3 -3
- package/dist/{chunk-GQRCW7WX.js → chunk-VXHLESK7.js} +2 -2
- package/dist/{chunk-7AVQOIDM.js → chunk-XF2CMO2A.js} +7 -5
- package/dist/chunk-XF2CMO2A.js.map +1 -0
- package/dist/{chunk-J6ZC77OY.js → chunk-YXREYDKU.js} +6 -6
- package/dist/{chunk-VGYNHJFT.js → chunk-ZSOMTVP5.js} +2 -2
- package/dist/chunk-ZSOMTVP5.js.map +1 -0
- package/dist/components/AAFailedReason/index.d.ts +11 -0
- package/dist/components/AAFailedReason/index.js +41 -0
- package/dist/components/AAFailedReason/index.js.map +1 -0
- package/dist/components/AceEditor/index.js +4 -4
- package/dist/components/AddressContainer/CoreAddressContainer.js +10 -10
- package/dist/components/AddressContainer/EVMAddressContainer.js +9 -9
- package/dist/components/AddressContainer/addressSwitcher.js +7 -7
- package/dist/components/AddressContainer/addressView.js +6 -6
- package/dist/components/AddressContainer/label.js +3 -3
- package/dist/components/AddressContainer/utils.js +3 -3
- package/dist/components/Age/index.js +4 -4
- package/dist/components/AutoComplete/index.js +3 -3
- package/dist/components/Charts/PreviewChartTemplate.js +3 -3
- package/dist/components/Charts/StockChartTemplate.js +6 -6
- package/dist/components/CopyButton/index.js +3 -3
- package/dist/components/DecimalsSelect/index.js +3 -3
- package/dist/components/DownloadCSV/index.js +4 -4
- package/dist/components/GasPriceDropdown/index.js +2 -2
- package/dist/components/IncreasePercent/index.js +2 -2
- package/dist/components/InfoIconWithTooltip/index.js +4 -4
- package/dist/components/InputData/AddressLabel.js +8 -8
- package/dist/components/InputData/ContractDetail.d.ts +3 -16
- package/dist/components/InputData/ContractDetail.js +7 -7
- package/dist/components/InputData/JsonDecode.js +5 -5
- package/dist/components/InputData/OptimizationDecode.js +12 -10
- package/dist/components/InputData/Original.js +1 -1
- package/dist/components/InputData/UTF8.js +3 -3
- package/dist/components/InputData/index.d.ts +1 -1
- package/dist/components/InputData/index.js +17 -15
- package/dist/components/List/index.js +3 -3
- package/dist/components/Modal/index.js +3 -3
- package/dist/components/NetworkIcon/index.js +2 -2
- package/dist/components/OutputData/ErrorDecode.d.ts +3 -6
- package/dist/components/OutputData/ErrorDecode.js +19 -17
- package/dist/components/OutputData/index.d.ts +2 -5
- package/dist/components/OutputData/index.js +21 -19
- package/dist/components/PhishingAddressContainer/index.js +4 -4
- package/dist/components/Popover/index.js +3 -3
- package/dist/components/Price/index.js +3 -3
- package/dist/components/ProxyContractAddress/index.js +7 -7
- package/dist/components/ProxyContractAddress/index.js.map +1 -1
- package/dist/components/Radio/index.js +2 -2
- package/dist/components/SearchInput/index.js +4 -4
- package/dist/components/Select/index.js +4 -4
- package/dist/components/Select/select.js +3 -3
- package/dist/components/SmartAccountAddress/index.d.ts +11 -0
- package/dist/components/SmartAccountAddress/index.js +94 -0
- package/dist/components/SmartAccountAddress/index.js.map +1 -0
- package/dist/components/Text/index.js +4 -4
- package/dist/components/Tooltip/index.js +3 -3
- package/dist/components/TransactionAction/coreTransactionAction.js +23 -18
- package/dist/components/TransactionAction/coreTransactionAction.js.map +1 -1
- package/dist/components/TransactionAction/evmTransactionAction.js +22 -17
- package/dist/components/TransactionAction/evmTransactionAction.js.map +1 -1
- package/dist/components/TransactionTrace/TraceDetail.d.ts +1 -4
- package/dist/components/TransactionTrace/TraceDetail.js +29 -27
- package/dist/components/TransactionTrace/TreeTraceTable.js +30 -28
- package/dist/components/TransactionTrace/index.js +30 -28
- package/dist/uno.css +1 -0
- package/dist/utils/address.js +2 -2
- package/dist/utils/contractManagerTool.js +2 -2
- package/dist/utils/hooks/useAddressLabel.js +3 -3
- package/dist/utils/hooks/useAddressNameMap.js +2 -2
- package/dist/utils/hooks/useAutoSetHolderFilterParams.js +2 -2
- package/dist/utils/hooks/useContractDetail.js +2 -2
- package/dist/utils/hooks/useDecodeFunctionData.js +5 -5
- package/dist/utils/hooks/useDecodeFunctionError.d.ts +1 -1
- package/dist/utils/hooks/useDecodeFunctionError.js +3 -3
- package/dist/utils/hooks/useENS.js +3 -3
- package/dist/utils/hooks/useEnhanceDataWithNameMap.js +2 -2
- package/dist/utils/hooks/useMethodAbi.js +2 -2
- package/dist/utils/hooks/useTableData.js +1 -1
- package/dist/utils/hooks/useTxTrace.d.ts +8 -10
- package/dist/utils/hooks/useTxTrace.js +11 -16
- package/dist/utils/hooks/useTxTrace.js.map +1 -1
- package/dist/utils/index.d.ts +7 -1
- package/dist/utils/index.js +4 -2
- package/dist/utils/request.d.ts +1 -1
- package/dist/utils/request.js +1 -1
- package/package.json +6 -5
- package/dist/chunk-2WEBXRNL.js.map +0 -1
- package/dist/chunk-7AVQOIDM.js.map +0 -1
- package/dist/chunk-7VQL3G7K.js.map +0 -1
- package/dist/chunk-DYNSSHD5.js.map +0 -1
- package/dist/chunk-H5ZJBRIK.js.map +0 -1
- package/dist/chunk-HF7RD7UD.js.map +0 -1
- package/dist/chunk-UZALXR3J.js.map +0 -1
- package/dist/chunk-VGYNHJFT.js.map +0 -1
- package/dist/chunk-W64AF7LA.js.map +0 -1
- package/dist/chunk-XZL5CZFT.js.map +0 -1
- package/dist/chunk-YBQQ72FQ.js +0 -10
- package/dist/chunk-YBQQ72FQ.js.map +0 -1
- /package/dist/{chunk-XUKHHB5L.js.map → chunk-2KBVDLVC.js.map} +0 -0
- /package/dist/{chunk-ELF2EOGF.js.map → chunk-6KG65RIO.js.map} +0 -0
- /package/dist/{chunk-6L4ZEJQI.js.map → chunk-6TKFGXSA.js.map} +0 -0
- /package/dist/{chunk-BEI5TWJL.js.map → chunk-7P6KYI3Z.js.map} +0 -0
- /package/dist/{chunk-RUU22F7R.js.map → chunk-7PQ6YKBC.js.map} +0 -0
- /package/dist/{chunk-CMOP3BKX.js.map → chunk-DEZ6AV62.js.map} +0 -0
- /package/dist/{chunk-LCIBOT5P.js.map → chunk-DV3GFG5Q.js.map} +0 -0
- /package/dist/{chunk-4LSM4TMM.js.map → chunk-E7ZFE6KT.js.map} +0 -0
- /package/dist/{chunk-YEAWH772.js.map → chunk-FTRICVXA.js.map} +0 -0
- /package/dist/{chunk-YVV32ON3.js.map → chunk-FUKVDD7K.js.map} +0 -0
- /package/dist/{chunk-OT7NZ4PK.js.map → chunk-KZ2KYINT.js.map} +0 -0
- /package/dist/{chunk-GHHUAWSG.js.map → chunk-MF6LAIGP.js.map} +0 -0
- /package/dist/{chunk-AYCHKB2Y.js.map → chunk-N5X4DZS3.js.map} +0 -0
- /package/dist/{chunk-UF5BN4QN.js.map → chunk-P7M7B7ER.js.map} +0 -0
- /package/dist/{chunk-DCQANK66.js.map → chunk-RJOY6FMD.js.map} +0 -0
- /package/dist/{chunk-WZIT54AU.js.map → chunk-SQI2F34Q.js.map} +0 -0
- /package/dist/{chunk-LCV3NUFR.js.map → chunk-TJZKPAAH.js.map} +0 -0
- /package/dist/{chunk-BHAXBHVC.js.map → chunk-TTNJMHOJ.js.map} +0 -0
- /package/dist/{chunk-C7OIVXE3.js.map → chunk-VVEA44KS.js.map} +0 -0
- /package/dist/{chunk-GQRCW7WX.js.map → chunk-VXHLESK7.js.map} +0 -0
- /package/dist/{chunk-J6ZC77OY.js.map → chunk-YXREYDKU.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/InputData/index.tsx"],"sourcesContent":["import { DataType } from 'src/utils/hooks/useDecodedDataType';\nimport { Original } from './Original';\nimport { UTF8 } from './UTF8';\nimport { JsonDecode } from './JsonDecode';\nimport { OptimizationDecode } from './OptimizationDecode';\nimport { GeneralDecode } from './GeneralDecode';\nimport { DecodedFunctionData } from 'src/utils/hooks/useDecodeFunctionData';\n\nexport const InputData = ({\n decodedData,\n dataType,\n input,\n space,\n labelClassName,\n success,\n}: {\n decodedData: DecodedFunctionData;\n dataType: DataType;\n input: `0x${string}`;\n space: 'evm' | 'core';\n labelClassName?: string;\n success?: boolean;\n}) => {\n if (dataType === 'utf8') {\n return <UTF8 data={input}></UTF8>;\n } else if (\n dataType === 'json' &&\n decodedData.decodedParams &&\n decodedData.abiItem\n ) {\n return (\n <JsonDecode\n decodedParams={decodedData.decodedParams}\n decodedResults={decodedData.decodedResults}\n abiItem={decodedData.abiItem}\n input={input}\n success={success}\n ></JsonDecode>\n );\n } else if (dataType === 'generalDecode') {\n return (\n <GeneralDecode\n data={input}\n fullName={decodedData.fullName}\n ></GeneralDecode>\n );\n } else if (\n dataType === 'optimizationDecode' &&\n decodedData.decodedParams &&\n decodedData.abiItem\n ) {\n return (\n <OptimizationDecode\n decodedParams={decodedData.decodedParams}\n abiItem={decodedData.abiItem}\n input={input}\n labelClassName={labelClassName}\n space={space}\n ></OptimizationDecode>\n );\n }\n return <Original data={input}></Original>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAwBW;AAhBJ,IAAM,YAAY,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAOM;AACJ,MAAI,aAAa,QAAQ;AACvB,WAAO,oBAAC,QAAK,MAAM,OAAO;AAAA,EAC5B,WACE,aAAa,UACb,YAAY,iBACZ,YAAY,SACZ;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAe,YAAY;AAAA,QAC3B,gBAAgB,YAAY;AAAA,QAC5B,SAAS,YAAY;AAAA,QACrB;AAAA,QACA;AAAA;AAAA,IACD;AAAA,EAEL,WAAW,aAAa,iBAAiB;AACvC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU,YAAY;AAAA;AAAA,IACvB;AAAA,EAEL,WACE,aAAa,wBACb,YAAY,iBACZ,YAAY,SACZ;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAe,YAAY;AAAA,QAC3B,SAAS,YAAY;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,EAEL;AACA,SAAO,oBAAC,YAAS,MAAM,OAAO;AAChC;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/InputData/OptimizationDecode.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { reqContractAndToken } from '../../utils/request';\nimport { parseArgs } from './utils';\nimport _ from 'lodash';\nimport {\n ContractDetail,\n formatContractAndTokenInfoMap,\n} from './ContractDetail';\nimport { Link } from '../Link';\nimport { Text } from '../Text';\nimport { FunctionName, getParameterType } from './FunctionName';\nimport { AddressLabel } from './AddressLabel';\nimport { convertCheckSum } from '../../utils/address';\nimport { cn } from 'src/utils';\nimport type { AbiParameter, AbiFunctionWithoutGas } from 'src/utils/sdk';\n\nexport const DecodedParameters = ({\n args,\n label,\n params,\n labelClassName,\n space,\n}: {\n label: string;\n args?: readonly unknown[];\n params: readonly AbiParameter[];\n labelClassName?: string;\n space: 'evm' | 'core';\n}) => {\n const [contractAndTokenInfo, setContractAndTokenInfo] = useState<\n ReturnType<typeof formatContractAndTokenInfoMap>\n >({});\n const addressType = space === 'core' ? 'base32' : 'hex';\n const data = useMemo(() => {\n if (!args) return {};\n const array = parseArgs(args, params);\n let object: Record<string, string> = {};\n params.forEach((item, index) => {\n object[item.name ?? `arg${index}`] = Array.isArray(array[index])\n ? JSON.stringify(array[index], null, 4)\n : String(array[index]);\n });\n return object;\n }, [args, params]);\n\n useEffect(() => {\n let addressList =\n args\n ?.map((t, i) => (params[i]?.type === 'address' ? (t as string) : false))\n .filter((t): t is string => !!t) ?? [];\n addressList = _.uniq(addressList);\n\n if (addressList.length) {\n reqContractAndToken(addressList)\n .then(data => {\n if (data.total) {\n setContractAndTokenInfo(\n formatContractAndTokenInfoMap(data.map, addressType),\n );\n } else {\n setContractAndTokenInfo({});\n }\n })\n .catch(e => {\n console.log('reqContractAndToken or process error: ', e);\n setContractAndTokenInfo({});\n });\n } else {\n setContractAndTokenInfo({});\n }\n }, [args, params, addressType]);\n return params.length > 0 ? (\n <div className=\"flex min-h-32px\">\n <div\n className={cn(\n 'w-100px shrink-0 grow-0 text-14px lh-18px text-#6a737d pt-6px',\n labelClassName,\n )}\n >\n {label}\n </div>\n <div className=\"bg-#f7f7f8 w-full max-h-200px overflow-auto\">\n {params.map((item, index) => {\n const argName = item.name ?? `arg${index}`;\n let value: React.ReactNode = data[argName];\n if (item.type === 'address' && value) {\n const address = value as string;\n const contractInfo = contractAndTokenInfo[address];\n\n value = (\n <>\n <Link href={`/address/${address}`}>\n {convertCheckSum(address)}{' '}\n </Link>\n <ContractDetail info={contractInfo} addressType={addressType} />\n <AddressLabel address={address} space={space} />\n </>\n );\n }\n\n let type: React.ReactNode = item.type || 'unknown';\n let fullType = getParameterType(item);\n if (/\\(.*\\)/.test(item.type) || item.type.includes('tuple')) {\n type = (\n <span className=\"flex items-center\">\n <span className=\"mr-2px\">tuple</span>\n </span>\n );\n }\n return (\n <div\n className={cn(\n 'flex items-start min-h-32px border-b-1 border-b-solid border-b-#e8e9ea py-0.3571rem pr-0.3571rem pl-0 overflow-hidden',\n 'lt-sm:flex-col lt-sm:items-center first:border-t-1 first:border-t-solid first:border-t-#e8e9ea',\n )}\n key={index}\n >\n <div className=\"ml-0.5rem text-14px text-#6a737d min-w-8px h-1.4286rem lh-1.4286rem shrink-0\">\n {index}\n </div>\n <div className=\"ml-0.6rem border-1 border-solid border-[rgba(217,99,73,0.5)] rounded-10px text-12px lh-1.4286rem text-#d96349 shrink-0 w-5.7143rem text-center flex-center h-1.4286rem\">\n <Text maxWidth=\"70px\" hoverValue={fullType}>\n {type}\n </Text>\n </div>\n <div className=\"ml-0.6rem text-14px h-1.4286rem lh-1.4286rem text-#e79d35 shrink-0\">\n {argName}:\n </div>\n <div className=\"text-14px text-#25282d pl-0.3571rem\">\n <pre className=\"-mb-0.2857rem text-1rem\">{value}</pre>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n ) : null;\n};\n\nexport const OptimizationDecode = ({\n input = '',\n decodedParams,\n abiItem,\n labelClassName,\n space,\n}: {\n decodedParams: {\n args?: readonly unknown[];\n functionName: string;\n };\n abiItem: AbiFunctionWithoutGas;\n input: string;\n labelClassName?: string;\n space: 'evm' | 'core';\n}) => {\n return (\n <div>\n <div className=\"flex min-h-32px\">\n <div\n className={cn(\n 'w-100px shrink-0 grow-0 text-14px lh-18px text-#6a737d pt-1px',\n labelClassName,\n )}\n >\n Function:{' '}\n </div>\n <div>\n <FunctionName abiItem={abiItem}></FunctionName>\n </div>\n </div>\n <div className=\"flex min-h-32px\">\n <div\n className={cn(\n 'w-100px shrink-0 grow-0 text-14px lh-18px text-#6a737d pt-1px',\n labelClassName,\n )}\n >\n MethodID:{' '}\n </div>\n <div>{input.slice(0, 10)}</div>\n </div>\n <DecodedParameters\n args={decodedParams.args}\n params={abiItem.inputs}\n label=\"Parameters:\"\n labelClassName={labelClassName}\n space={space}\n />\n </div>\n );\n};\n"],"mappings":"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","names":["data"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/OutputData/ErrorDecode.tsx"],"sourcesContent":["import { cn } from 'src/utils';\nimport { useDecodeFunctionError } from 'src/utils/hooks/useDecodeFunctionError';\nimport { Original } from '../InputData/Original';\nimport { DecodedParameters } from '../InputData/OptimizationDecode';\nimport { FunctionName } from '../InputData/FunctionName';\nimport { AbiWarning } from '../InputData/AbiWarning';\n\nexport const ErrorDecode = ({\n to,\n errorData,\n space,\n labelClassName,\n proxy,\n}: {\n errorData: `0x${string}`;\n to?: string;\n space: 'evm' | 'core';\n labelClassName?: string;\n proxy?: {\n beaconAddress?: string;\n implAddress: string;\n };\n}) => {\n const [decodedError, isLoading] = useDecodeFunctionError({\n to,\n implementation: proxy?.implAddress,\n errorData,\n space,\n });\n\n if (\n isLoading ||\n !decodedError ||\n !decodedError.abiItem ||\n decodedError.abiItem.type !== 'error'\n )\n return (\n <div className=\"flex min-h-32px\">\n <div\n className={cn(\n 'w-100px shrink-0 grow-0 text-14px lh-18px pt-6px text-#6a737d',\n labelClassName,\n )}\n >\n Error:\n </div>\n <div className=\"flex-1\">\n <Original data={errorData} />\n {!isLoading && (\n <AbiWarning\n tip={\n decodedError?.failed\n ? 'contract.abiError'\n : decodedError?.noAbi\n ? 'contract.abiNotUploaded'\n : undefined\n }\n />\n )}\n </div>\n </div>\n );\n return (\n <>\n <div className=\"flex min-h-32px\">\n <div\n className={cn(\n 'w-100px shrink-0 grow-0 text-14px lh-18px text-#6a737d pt-1px',\n labelClassName,\n )}\n >\n Error:{' '}\n </div>\n <div>\n <FunctionName abiItem={decodedError.abiItem}></FunctionName>\n </div>\n </div>\n {decodedError.args && decodedError.args.length > 0 && (\n <DecodedParameters\n args={decodedError.args}\n params={decodedError.abiItem.inputs}\n label=\"Parameters:\"\n labelClassName={labelClassName}\n space={space}\n />\n )}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsCQ,SAyBJ,UAzBI,KAQA,YARA;AA/BD,IAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MASM;AACJ,QAAM,CAAC,cAAc,SAAS,IAAI,uBAAuB;AAAA,IACvD;AAAA,IACA,gBAAgB,OAAO;AAAA,IACvB;AAAA,IACA;AAAA,EACF,CAAC;AAED,MACE,aACA,CAAC,gBACD,CAAC,aAAa,WACd,aAAa,QAAQ,SAAS;AAE9B,WACE,qBAAC,SAAI,WAAU,mBACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,UACD;AAAA;AAAA,MAED;AAAA,MACA,qBAAC,SAAI,WAAU,UACb;AAAA,4BAAC,YAAS,MAAM,WAAW;AAAA,QAC1B,CAAC,aACA;AAAA,UAAC;AAAA;AAAA,YACC,KACE,cAAc,SACV,sBACA,cAAc,QACZ,4BACA;AAAA;AAAA,QAEV;AAAA,SAEJ;AAAA,OACF;AAEJ,SACE,iCACE;AAAA,yBAAC,SAAI,WAAU,mBACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,UACD;AAAA;AAAA,YACQ;AAAA;AAAA;AAAA,MACT;AAAA,MACA,oBAAC,SACC,8BAAC,gBAAa,SAAS,aAAa,SAAS,GAC/C;AAAA,OACF;AAAA,IACC,aAAa,QAAQ,aAAa,KAAK,SAAS,KAC/C;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,aAAa;AAAA,QACnB,QAAQ,aAAa,QAAQ;AAAA,QAC7B,OAAM;AAAA,QACN;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KAEJ;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/hooks/useAddressNameMap.ts"],"sourcesContent":["import useSWRImmutable from 'swr/immutable';\nimport { fetchAddressNameMap } from '../request';\nimport { useMemo } from 'react';\nimport { AddressNameMap } from '../request.types';\n\nexport const transformNameMapKeysToLowerCase = (\n nameMap?: Record<string, AddressNameMap>,\n) =>\n nameMap &&\n Object.fromEntries(\n Object.entries(nameMap).map(([k, v]) => [k.toLowerCase(), v]),\n );\n\nexport const useAddressNameMap = (addresses: string[], shouldFetch = true) => {\n const key = useMemo(() => {\n return shouldFetch && addresses.length > 0\n ? `address-name-map-${addresses\n .map(i => i.toLowerCase())\n .sort()\n .join(',')}`\n : null;\n }, [addresses, shouldFetch]);\n return useSWRImmutable(key, () =>\n fetchAddressNameMap(addresses, {\n withContractInfo: 'true',\n withNameTagInfo: 'true',\n withENSInfo: 'true',\n }).then(transformNameMapKeysToLowerCase),\n );\n};\n"],"mappings":";;;;;AAAA,OAAO,qBAAqB;AAE5B,SAAS,eAAe;AAGjB,IAAM,kCAAkC,CAC7C,YAEA,WACA,OAAO;AAAA,EACL,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC;AAC9D;AAEK,IAAM,oBAAoB,CAAC,WAAqB,cAAc,SAAS;AAC5E,QAAM,MAAM,QAAQ,MAAM;AACxB,WAAO,eAAe,UAAU,SAAS,IACrC,oBAAoB,UACjB,IAAI,OAAK,EAAE,YAAY,CAAC,EACxB,KAAK,EACL,KAAK,GAAG,MACX;AAAA,EACN,GAAG,CAAC,WAAW,WAAW,CAAC;AAC3B,SAAO;AAAA,IAAgB;AAAA,IAAK,MAC1B,oBAAoB,WAAW;AAAA,MAC7B,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,aAAa;AAAA,IACf,CAAC,EAAE,KAAK,+BAA+B;AAAA,EACzC;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
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 proxy,\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 proxy?: {\n beaconAddress?: string;\n implAddress: string;\n };\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 proxy={proxy}\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":";;;;;;;;;;;;;;;;;AAiCW;AAzBJ,IAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAYM;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":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/request.ts"],"sourcesContent":["import qs from 'query-string';\nimport { publishRequestError } from './pubsub';\nimport {\n AddressNameMap,\n BaseContractInfo,\n DetectAccountTypeResponse,\n MethodAbiItemResponse,\n} from './request.types';\nimport { getEnvConfig } from '../store';\nimport { fetchWithCache } from './cache';\ninterface FetchWithAbortType<T> {\n promise: Promise<T>;\n abort: () => void;\n}\n\ninterface FetchOptions extends RequestInit {\n timeout?: number;\n}\n\nconst TIMEOUT_TIMESTAMP = 60000;\n\nconst checkStatus = (response: Response) => {\n if (\n (response.status >= 200 && response.status < 300) ||\n response.status === 600\n ) {\n return response;\n } else {\n const error = new Error(response.statusText);\n error.name = 'HttpError';\n (error as any).status = response.status;\n (error as any).response = response;\n throw error;\n }\n};\n\n// 格式化 response data\nconst parseJSON = async (response: Response) => {\n const contentType = response.headers.get('content-type');\n try {\n if (contentType?.includes('application/json')) {\n return { data: await response.json(), response };\n } else if (contentType?.includes('text/html')) {\n return { data: await response.text(), response };\n } else {\n // contentType 还有其他类型,目前项目中用不到\n // 不能简单的报错,比如 image/x-icon 是 favicon 请求\n // 此处直接返回 response,由业务代码处理其他类型的数据\n return { data: response, response };\n }\n } catch (error) {\n if ((error as any).name === 'AbortError') {\n return { data: response, response };\n }\n publishRequestError({ url: response.url, code: 20001 }, 'http');\n (error as any).response = response;\n throw error;\n }\n};\n\n// 检查返回值中是否包含错误\nconst checkResponse = function (\n url: string,\n {\n data,\n response,\n }: {\n data: any;\n response: Response;\n },\n opts: any,\n) {\n // 兼容 data.code 和 data.data, 是关于 core space 的数据结构\n if (response.status === 200 && (data.status === '1' || data.code === 0)) {\n return data.result || data.data;\n } else if (/HEAD/i.test(opts?.method || '')) {\n // handle of HEAD method\n return response;\n } else {\n const code = Number(data.status ?? data.code);\n publishRequestError({ url, code, message: data.message }, 'http');\n const error: Partial<ErrorEvent> & {\n response?: ResponseType;\n } = new Error(data.message);\n error.response = data;\n throw error;\n }\n};\n\nconst fetchWithAbort = <T>(\n url: string,\n options: FetchOptions = {},\n): FetchWithAbortType<T> => {\n const controller = new AbortController();\n const opts: FetchOptions = { ...options, signal: controller.signal };\n const timeout = options.timeout || TIMEOUT_TIMESTAMP;\n\n let timeoutId: ReturnType<typeof setTimeout>;\n const promise: Promise<T> = new Promise((resolve, reject) => {\n timeoutId = setTimeout(() => {\n controller.abort();\n publishRequestError(\n { url, code: 20002, message: 'Request timeout' },\n 'http',\n );\n reject(new Error('Request timeout'));\n }, timeout);\n\n window\n .fetch(url, opts)\n .then(checkStatus)\n .then(parseJSON)\n .then((...args) => checkResponse(url, ...args, opts))\n .then(data => resolve(data as T))\n .catch(error => {\n if (/HEAD/i.test(opts?.method || '')) {\n return resolve({} as T);\n }\n\n // A fetch() promise will reject with a TypeError when a network error is encountered or CORS is misconfigured on the server-side,\n // although this usually means permission issues or similar — a 404 does not constitute a network error, for example.\n // For detail: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n if (error.name === 'TypeError') {\n publishRequestError({ url, code: 20004 }, 'http');\n reject(new Error('Network error'));\n } else if (error.name === 'AbortError') {\n publishRequestError(\n { url, code: 20003, message: 'Fetch aborted' },\n 'http',\n );\n reject(new Error('Fetch aborted'));\n } else {\n publishRequestError(\n { url, code: (error as any).status, message: error.message },\n 'http',\n );\n reject(error);\n }\n })\n .finally(() => clearTimeout(timeoutId));\n });\n\n return {\n promise,\n abort: () => {\n clearTimeout(timeoutId);\n controller.abort();\n },\n };\n};\n\nexport const fetch = <T>(\n url: string,\n options: FetchOptions = {},\n): Promise<T> => {\n const { promise } = fetchWithAbort<T>(url, options);\n return promise;\n};\n\nexport const appendApiPrefix = (url: string) => {\n // for cfx top N\n if (url.startsWith('/stat/')) {\n return url;\n }\n if (url.startsWith('http')) {\n return url;\n }\n return `/v1${url.startsWith('/') ? url : '/' + url}`;\n};\n\nexport const fetchWithPrefix = <T>(url: string, opts?: FetchOptions) => {\n return fetch<T>(appendApiPrefix(url), opts);\n};\n\nexport const fetchWithOpenApi = <T>(url: string, opts?: FetchOptions) => {\n const ENV_CONFIG = getEnvConfig();\n if (!ENV_CONFIG.ENV_OPEN_API_HOST) {\n throw new Error('ENV_OPEN_API_HOST is not set');\n }\n return fetch<T>(\n `${ENV_CONFIG.ENV_OPEN_API_HOST}${url.startsWith('/') ? url : '/' + url}`,\n opts,\n );\n};\n\nexport const simpleGetFetcher = async <T>(...args: any[]) => {\n let [url, query] = args;\n if (query) {\n url = qs.stringifyUrl({ url, query });\n }\n return await fetchWithPrefix<T>(url, {\n method: 'get',\n });\n};\n\ntype RequestMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD';\ninterface QueryParams {\n [key: string]: string | undefined;\n}\ninterface Config {\n url: string;\n query: QueryParams;\n type?: RequestMethod;\n body?: any;\n headers?: Headers;\n signal?: AbortSignal;\n}\n\nconst queryAddress = (address: string[]) => {\n return address.reduce((prev, curr, index) => {\n return !index ? `address=${curr}` : `${prev}&address=${curr}`;\n }, '');\n};\n\nexport const sendRequestChart = async (config: Config) => {\n try {\n const res: any = await fetch(\n qs.stringifyUrl({ url: config.url, query: config.query }),\n {\n method: config.type || 'GET',\n body: config.body,\n headers: config.headers,\n signal: config.signal,\n },\n );\n const data = res;\n data.list = [...(data.list || [])].reverse();\n return data;\n } catch (error) {\n console.error('Request failed', error);\n throw error;\n }\n};\n\nexport const sendRequestENSInfo = async (url?: string | null) => {\n if (!url) return {};\n try {\n const res: any = await fetch(url, {\n method: 'GET',\n });\n\n return res?.map;\n } catch (error) {\n console.error('Request failed', error);\n throw error;\n }\n};\n\nexport const sendRequestGasPrice = async () => {\n try {\n const res: any = await fetch(`/stat/gasprice/tracker`, {\n method: 'GET',\n });\n return res;\n } catch (error) {\n console.error('Request failed', error);\n throw error;\n }\n};\n\nexport const reqNametag = async (address: string[]) => {\n const query = queryAddress(address);\n\n const res: any = await fetch(`/v1/nametag?${query}`, {\n method: 'GET',\n });\n return res?.map;\n};\n\nexport const reqContractAndToken = fetchWithCache(\n async (address: string[]) => {\n const query = queryAddress(address);\n\n const res: any = await fetch(`/v1/contract-and-token?${query}`, {\n method: 'GET',\n });\n return res;\n },\n {\n key: 'contract-and-token',\n maxAge: 1000 * 60 * 60,\n },\n);\n\nexport const getContractDetail = fetchWithCache(\n <T extends string>(contractAddress?: string, fields: T[] = []) => {\n const url = qs.stringifyUrl({\n url: `/v1/contract/${contractAddress}`,\n query: { fields },\n });\n\n return fetch<BaseContractInfo & Record<T, unknown>>(url, {\n method: 'GET',\n });\n },\n {\n key: 'contract-detail',\n maxAge: 1000 * 60 * 60,\n },\n);\n\nexport const detectAccountType = fetchWithCache(\n (address: string) => {\n return fetchWithOpenApi<DetectAccountTypeResponse>(\n `/util/detectAccountType?hex=${address}`,\n {\n method: 'GET',\n },\n );\n },\n {\n // 10 seconds\n maxAge: 1000 * 10,\n },\n);\n\nexport const reqAbiByMethodId = (methodId: string) => {\n return fetchWithPrefix<{\n list: MethodAbiItemResponse[];\n }>(\n qs.stringifyUrl({\n url: '/stat/list-abi-method',\n query: {\n id: methodId,\n },\n }),\n );\n};\n\nexport const fetchAddressNameMap = (\n addresses: string[],\n params: {\n withContractInfo?: 'true' | 'false';\n withNameTagInfo?: 'true' | 'false';\n withENSInfo?: 'true' | 'false';\n } = {},\n) => {\n const url = qs.stringifyUrl({\n url: '/account/infos',\n query: {\n accounts: addresses.join(','),\n ...params,\n },\n });\n return fetchWithOpenApi<Record<string, AddressNameMap>>(url, {\n method: 'GET',\n });\n};\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
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":[]}
|
|
@@ -1 +0,0 @@
|
|
|
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: methodID,\n data: output,\n space,\n })\n : undefined\n : output;\n const abiItem = getAbiItem({\n abi: abi,\n name: 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":[]}
|
package/dist/chunk-YBQQ72FQ.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
// src/components/InputData/Original.tsx
|
|
2
|
-
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
var Original = ({ data }) => {
|
|
4
|
-
return /* @__PURE__ */ jsx("div", { className: "m-initial h-13.2857rem overflow-y-auto text-#97a3b4 bg-#fafbfc px-0.7143rem font-[var(--theme-monospace-font)]", children: /* @__PURE__ */ jsx("p", { children: data }) });
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
Original
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=chunk-YBQQ72FQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/InputData/Original.tsx"],"sourcesContent":["interface Props {\n data: string;\n}\n\nexport const Original = ({ data }: Props) => {\n return (\n <div className=\"m-initial h-13.2857rem overflow-y-auto text-#97a3b4 bg-#fafbfc px-0.7143rem font-[var(--theme-monospace-font)]\">\n <p>{data}</p>\n </div>\n );\n};\n"],"mappings":";AAOM;AAHC,IAAM,WAAW,CAAC,EAAE,KAAK,MAAa;AAC3C,SACE,oBAAC,SAAI,WAAU,kHACb,8BAAC,OAAG,gBAAK,GACX;AAEJ;","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|