@cfxjs/sirius-next-common 0.2.20 → 0.2.21-fix-error-publish
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-CMOP3BKX.js → chunk-225VMTCA.js} +3 -3
- package/dist/{chunk-LCIBOT5P.js → chunk-3JIAKQ23.js} +2 -2
- package/dist/{chunk-C7OIVXE3.js → chunk-4B7BV62E.js} +3 -3
- package/dist/chunk-4BS66NNM.js +29 -0
- package/dist/chunk-4BS66NNM.js.map +1 -0
- package/dist/{chunk-J6ZC77OY.js → chunk-4M53GHPD.js} +6 -6
- package/dist/{chunk-GHHUAWSG.js → chunk-524EB4WC.js} +3 -3
- package/dist/chunk-5AM5HM3B.js +10 -0
- package/dist/chunk-5AM5HM3B.js.map +1 -0
- package/dist/{chunk-XZL5CZFT.js → chunk-5MJZWIYI.js} +4 -4
- package/dist/chunk-6C5NQACS.js +202 -0
- package/dist/chunk-6C5NQACS.js.map +1 -0
- package/dist/{chunk-H5ZJBRIK.js → chunk-6PKWA444.js} +4 -4
- package/dist/{chunk-4LSM4TMM.js → chunk-734CQOS7.js} +3 -3
- package/dist/chunk-7RLNWQIR.js +192 -0
- package/dist/chunk-7RLNWQIR.js.map +1 -0
- package/dist/{chunk-RUU22F7R.js → chunk-7VFOHX3W.js} +2 -2
- package/dist/{chunk-BEI5TWJL.js → chunk-7WDLTRBN.js} +2 -2
- package/dist/{chunk-AYCHKB2Y.js → chunk-A3IT7RYO.js} +2 -2
- package/dist/{chunk-UF5BN4QN.js → chunk-A3VPSWVX.js} +2 -2
- package/dist/chunk-A46LVI25.js +82 -0
- package/dist/chunk-A46LVI25.js.map +1 -0
- package/dist/chunk-A6B5V6XY.js +140 -0
- package/dist/chunk-A6B5V6XY.js.map +1 -0
- package/dist/{chunk-ELF2EOGF.js → chunk-AQFNXW4W.js} +2 -2
- package/dist/chunk-ASS6TOFE.js +72 -0
- package/dist/chunk-ASS6TOFE.js.map +1 -0
- package/dist/{chunk-NM3BMITL.js → chunk-B5JCHBO3.js} +2 -2
- package/dist/{chunk-DCQANK66.js → chunk-BGNBKP5R.js} +2 -2
- package/dist/{chunk-6L4ZEJQI.js → chunk-BN3ATGHU.js} +2 -2
- package/dist/chunk-C6GUZVQ2.js +130 -0
- package/dist/chunk-C6GUZVQ2.js.map +1 -0
- package/dist/chunk-CNXGYDZG.js +146 -0
- package/dist/chunk-CNXGYDZG.js.map +1 -0
- package/dist/chunk-DASMAZXS.js +71 -0
- package/dist/{chunk-LCV3NUFR.js → chunk-DO6PJAZB.js} +5 -5
- package/dist/chunk-E7FB4S3X.js +276 -0
- package/dist/chunk-E7FB4S3X.js.map +1 -0
- package/dist/{chunk-BHAXBHVC.js → chunk-EHRGH3HS.js} +4 -4
- package/dist/chunk-EOSVUB2G.js +51 -0
- package/dist/chunk-EOSVUB2G.js.map +1 -0
- package/dist/chunk-FGPRA3A4.js +80 -0
- package/dist/chunk-FGPRA3A4.js.map +1 -0
- package/dist/{chunk-UZALXR3J.js → chunk-FJMV3UA7.js} +4 -4
- package/dist/{chunk-YVV32ON3.js → chunk-FSYB23NA.js} +2 -2
- package/dist/{chunk-XUKHHB5L.js → chunk-FTAFV6RE.js} +5 -5
- package/dist/chunk-FW5ON36S.js +212 -0
- package/dist/chunk-FW5ON36S.js.map +1 -0
- package/dist/chunk-HCEXWKMZ.js +90 -0
- package/dist/chunk-HCEXWKMZ.js.map +1 -0
- package/dist/chunk-HW5VD7EO.js +17 -0
- package/dist/chunk-HW5VD7EO.js.map +1 -0
- package/dist/{chunk-GQRCW7WX.js → chunk-J536GL5G.js} +2 -2
- package/dist/{chunk-DYNSSHD5.js → chunk-J7UQ2R3H.js} +7 -7
- package/dist/{chunk-YEAWH772.js → chunk-JBCKAHH7.js} +2 -2
- package/dist/{chunk-7VQL3G7K.js → chunk-JKFT4JUY.js} +4 -4
- package/dist/chunk-L7RD6ZPE.js +534 -0
- package/dist/chunk-L7RD6ZPE.js.map +1 -0
- package/dist/{chunk-W64AF7LA.js → chunk-MFCMTOYM.js} +5 -5
- package/dist/chunk-MQY7EQPG.js +284 -0
- package/dist/chunk-MQY7EQPG.js.map +1 -0
- package/dist/chunk-MWSXXVVL.js +157 -0
- package/dist/chunk-MWSXXVVL.js.map +1 -0
- package/dist/chunk-O6BP54O6.js +63 -0
- package/dist/chunk-O6BP54O6.js.map +1 -0
- package/dist/chunk-OFAM2QTT.js +17 -0
- package/dist/chunk-OFAM2QTT.js.map +1 -0
- package/dist/{chunk-2WEBXRNL.js → chunk-OSPPP5W5.js} +2 -2
- package/dist/chunk-OT252GGM.js +66 -0
- package/dist/chunk-OT252GGM.js.map +1 -0
- package/dist/{chunk-WZIT54AU.js → chunk-OTSNM4CR.js} +2 -2
- package/dist/chunk-OTSNM4CR.js.map +1 -0
- package/dist/chunk-QX7AGYA5.js +2149 -0
- package/dist/chunk-QX7AGYA5.js.map +1 -0
- package/dist/chunk-R62HRSIY.js +145 -0
- package/dist/chunk-R62HRSIY.js.map +1 -0
- package/dist/{chunk-OT7NZ4PK.js → chunk-RLA5XZT2.js} +3 -3
- package/dist/chunk-RLA5XZT2.js.map +1 -0
- package/dist/{chunk-HF7RD7UD.js → chunk-RWTNG7SM.js} +2 -2
- package/dist/chunk-SIZYE6WH.js +3616 -0
- package/dist/chunk-SIZYE6WH.js.map +1 -0
- package/dist/chunk-SNUPCZY7.js +812 -0
- package/dist/chunk-SNUPCZY7.js.map +1 -0
- package/dist/{chunk-VGYNHJFT.js → chunk-SYWQ2T57.js} +8 -7
- package/dist/chunk-SYWQ2T57.js.map +1 -0
- package/dist/chunk-TGWQSVFC.js +26 -0
- package/dist/chunk-TGWQSVFC.js.map +1 -0
- package/dist/chunk-UVRMLFMC.js +21 -0
- package/dist/chunk-UVRMLFMC.js.map +1 -0
- package/dist/chunk-UX6IRX2M.js +146 -0
- package/dist/chunk-UX6IRX2M.js.map +1 -0
- package/dist/chunk-VD73ULXJ.js +107 -0
- package/dist/chunk-VD73ULXJ.js.map +1 -0
- package/dist/chunk-VEK5DLFI.js +23 -0
- package/dist/chunk-VEK5DLFI.js.map +1 -0
- package/dist/chunk-VTHVXZOP.js +112 -0
- package/dist/chunk-VTHVXZOP.js.map +1 -0
- package/dist/chunk-WY3RJ3A6.js +51 -0
- package/dist/chunk-XI5WO2NW.js +37 -0
- package/dist/chunk-XI5WO2NW.js.map +1 -0
- package/dist/{chunk-C6CGZ6KN.js → chunk-YOCMEOLX.js} +2 -2
- package/dist/chunk-YOVNVFY2.js +105 -0
- package/dist/chunk-YOVNVFY2.js.map +1 -0
- package/dist/{chunk-7AVQOIDM.js → chunk-Z64Z5HLJ.js} +2 -2
- 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 +1 -1
- package/dist/components/Charts/StockChartTemplate.js +1 -1
- 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.js +3 -3
- package/dist/components/InputData/JsonDecode.js +5 -5
- package/dist/components/InputData/OptimizationDecode.js +10 -10
- package/dist/components/InputData/UTF8.js +3 -3
- package/dist/components/InputData/index.js +14 -14
- package/dist/components/Modal/index.js +3 -3
- package/dist/components/NetworkIcon/index.js +2 -2
- package/dist/components/OutputData/ErrorDecode.js +13 -13
- package/dist/components/OutputData/index.js +15 -15
- 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 +6 -6
- 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.js +23 -23
- package/dist/components/TransactionTrace/TreeTraceTable.js +24 -24
- package/dist/components/TransactionTrace/index.js +24 -24
- 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.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.js +3 -3
- package/dist/utils/index.js +2 -2
- package/dist/utils/request.d.ts +1 -0
- package/dist/utils/request.js +1 -1
- package/package.json +17 -17
- package/dist/chunk-VGYNHJFT.js.map +0 -1
- /package/dist/{chunk-CMOP3BKX.js.map → chunk-225VMTCA.js.map} +0 -0
- /package/dist/{chunk-LCIBOT5P.js.map → chunk-3JIAKQ23.js.map} +0 -0
- /package/dist/{chunk-C7OIVXE3.js.map → chunk-4B7BV62E.js.map} +0 -0
- /package/dist/{chunk-J6ZC77OY.js.map → chunk-4M53GHPD.js.map} +0 -0
- /package/dist/{chunk-GHHUAWSG.js.map → chunk-524EB4WC.js.map} +0 -0
- /package/dist/{chunk-XZL5CZFT.js.map → chunk-5MJZWIYI.js.map} +0 -0
- /package/dist/{chunk-H5ZJBRIK.js.map → chunk-6PKWA444.js.map} +0 -0
- /package/dist/{chunk-4LSM4TMM.js.map → chunk-734CQOS7.js.map} +0 -0
- /package/dist/{chunk-RUU22F7R.js.map → chunk-7VFOHX3W.js.map} +0 -0
- /package/dist/{chunk-BEI5TWJL.js.map → chunk-7WDLTRBN.js.map} +0 -0
- /package/dist/{chunk-AYCHKB2Y.js.map → chunk-A3IT7RYO.js.map} +0 -0
- /package/dist/{chunk-UF5BN4QN.js.map → chunk-A3VPSWVX.js.map} +0 -0
- /package/dist/{chunk-ELF2EOGF.js.map → chunk-AQFNXW4W.js.map} +0 -0
- /package/dist/{chunk-NM3BMITL.js.map → chunk-B5JCHBO3.js.map} +0 -0
- /package/dist/{chunk-DCQANK66.js.map → chunk-BGNBKP5R.js.map} +0 -0
- /package/dist/{chunk-6L4ZEJQI.js.map → chunk-BN3ATGHU.js.map} +0 -0
- /package/dist/{chunk-OT7NZ4PK.js.map → chunk-DASMAZXS.js.map} +0 -0
- /package/dist/{chunk-LCV3NUFR.js.map → chunk-DO6PJAZB.js.map} +0 -0
- /package/dist/{chunk-BHAXBHVC.js.map → chunk-EHRGH3HS.js.map} +0 -0
- /package/dist/{chunk-UZALXR3J.js.map → chunk-FJMV3UA7.js.map} +0 -0
- /package/dist/{chunk-YVV32ON3.js.map → chunk-FSYB23NA.js.map} +0 -0
- /package/dist/{chunk-XUKHHB5L.js.map → chunk-FTAFV6RE.js.map} +0 -0
- /package/dist/{chunk-GQRCW7WX.js.map → chunk-J536GL5G.js.map} +0 -0
- /package/dist/{chunk-DYNSSHD5.js.map → chunk-J7UQ2R3H.js.map} +0 -0
- /package/dist/{chunk-YEAWH772.js.map → chunk-JBCKAHH7.js.map} +0 -0
- /package/dist/{chunk-7VQL3G7K.js.map → chunk-JKFT4JUY.js.map} +0 -0
- /package/dist/{chunk-W64AF7LA.js.map → chunk-MFCMTOYM.js.map} +0 -0
- /package/dist/{chunk-2WEBXRNL.js.map → chunk-OSPPP5W5.js.map} +0 -0
- /package/dist/{chunk-HF7RD7UD.js.map → chunk-RWTNG7SM.js.map} +0 -0
- /package/dist/{chunk-WZIT54AU.js.map → chunk-WY3RJ3A6.js.map} +0 -0
- /package/dist/{chunk-C6CGZ6KN.js.map → chunk-YOCMEOLX.js.map} +0 -0
- /package/dist/{chunk-7AVQOIDM.js.map → chunk-Z64Z5HLJ.js.map} +0 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import {
|
|
2
|
+
NETWORK_ID
|
|
3
|
+
} from "./chunk-WIB76E7O.js";
|
|
4
|
+
import {
|
|
5
|
+
detectAccountType
|
|
6
|
+
} from "./chunk-E7FB4S3X.js";
|
|
7
|
+
|
|
8
|
+
// src/utils/address.ts
|
|
9
|
+
import SDK from "js-conflux-sdk";
|
|
10
|
+
import {
|
|
11
|
+
checksumHexAddress,
|
|
12
|
+
convertHexToBase32,
|
|
13
|
+
isBase32Address as _isBase32Address,
|
|
14
|
+
isSimplyBase32Address as _isSimplyBase32Address,
|
|
15
|
+
isHexAddress,
|
|
16
|
+
isCoreHexAddress,
|
|
17
|
+
decode,
|
|
18
|
+
convertBase32ToHex,
|
|
19
|
+
getCoreHexAddressType,
|
|
20
|
+
isAddressEqual as _isAddressEqual
|
|
21
|
+
} from "@cfx-kit/dapp-utils/dist/address";
|
|
22
|
+
var ADDRESS_FUNC_CACHE = {};
|
|
23
|
+
var addressHandlerWrapper = (handler, cacheKey) => {
|
|
24
|
+
return (address, ...args) => {
|
|
25
|
+
if (!address)
|
|
26
|
+
return handler(address, ...args);
|
|
27
|
+
const lowerAddress = address.toLowerCase();
|
|
28
|
+
let CACHE_KEY = "";
|
|
29
|
+
if (cacheKey) {
|
|
30
|
+
CACHE_KEY = `${cacheKey}(${lowerAddress},${args.join(",")})`;
|
|
31
|
+
if (ADDRESS_FUNC_CACHE[CACHE_KEY])
|
|
32
|
+
return ADDRESS_FUNC_CACHE[CACHE_KEY];
|
|
33
|
+
}
|
|
34
|
+
const result = handler(lowerAddress, ...args);
|
|
35
|
+
if (cacheKey) {
|
|
36
|
+
ADDRESS_FUNC_CACHE[CACHE_KEY] = result;
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
var convertCheckSum = (address) => {
|
|
42
|
+
if (address && isHexAddress(address)) {
|
|
43
|
+
return checksumHexAddress(address);
|
|
44
|
+
}
|
|
45
|
+
return address;
|
|
46
|
+
};
|
|
47
|
+
var isCoreMainOrTestAddress = addressHandlerWrapper(
|
|
48
|
+
(address) => {
|
|
49
|
+
return isCoreMainnetAddress(address) || isCoreTestnetAddress(address);
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
var isCoreMainnetAddress = addressHandlerWrapper(
|
|
53
|
+
(address) => {
|
|
54
|
+
return !!address && /^cfx:/i.test(address) && _isBase32Address(address);
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
var isCoreTestnetAddress = addressHandlerWrapper(
|
|
58
|
+
(address) => {
|
|
59
|
+
return !!address && /^cfxtest:/i.test(address) && _isBase32Address(address);
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
var isCoreOtherNetAddress = addressHandlerWrapper(
|
|
63
|
+
(address) => {
|
|
64
|
+
return !!address && /^net/i.test(address) && _isBase32Address(address);
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
var isEvmAddress = addressHandlerWrapper(
|
|
68
|
+
(address, includeBase32 = true) => {
|
|
69
|
+
if (!address)
|
|
70
|
+
return false;
|
|
71
|
+
return isHexAddress(address) || isSimplyZeroAddress(address) || includeBase32 && _isBase32Address(address);
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
var isCoreAddress = addressHandlerWrapper(
|
|
75
|
+
(address) => {
|
|
76
|
+
if (!address)
|
|
77
|
+
return false;
|
|
78
|
+
return isCoreHexAddress(address) || isSimplyZeroAddress(address) || _isBase32Address(address);
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
var isSimplyZeroAddress = addressHandlerWrapper(
|
|
82
|
+
(address) => {
|
|
83
|
+
return address === "0x0";
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
var isZeroAddress = addressHandlerWrapper(
|
|
87
|
+
(address) => {
|
|
88
|
+
if (!address)
|
|
89
|
+
return false;
|
|
90
|
+
try {
|
|
91
|
+
if (isHexAddress(address)) {
|
|
92
|
+
return address === SDK.CONST.ZERO_ADDRESS_HEX;
|
|
93
|
+
} else if (isSimplyZeroAddress(address)) {
|
|
94
|
+
return true;
|
|
95
|
+
} else if (_isBase32Address(address)) {
|
|
96
|
+
return formatAddress(address, "hex") === SDK.CONST.ZERO_ADDRESS_HEX;
|
|
97
|
+
}
|
|
98
|
+
} catch (e) {
|
|
99
|
+
}
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
var isCoreUserAddress = addressHandlerWrapper(
|
|
104
|
+
(address) => {
|
|
105
|
+
if (isZeroAddress(address))
|
|
106
|
+
return true;
|
|
107
|
+
return getCoreAddressInfo(address)?.type === "user";
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
var isEvmUserAddress = addressHandlerWrapper(
|
|
111
|
+
async (address, includeEOAWithCode = false) => {
|
|
112
|
+
try {
|
|
113
|
+
if (isZeroAddress(address))
|
|
114
|
+
return true;
|
|
115
|
+
const type = await getEvmAddressType(address);
|
|
116
|
+
return type === "user" || includeEOAWithCode && type === "eoaWithCode";
|
|
117
|
+
} catch (e) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
var isCoreContractAddress = addressHandlerWrapper(
|
|
123
|
+
(address, isIncludingInnerContract = true) => {
|
|
124
|
+
return getCoreAddressInfo(address)?.type === "contract" || isIncludingInnerContract && isInnerContractAddress(address);
|
|
125
|
+
}
|
|
126
|
+
);
|
|
127
|
+
var isEvmContractAddress = addressHandlerWrapper(
|
|
128
|
+
async (address, includeEOAWithCode = false) => {
|
|
129
|
+
try {
|
|
130
|
+
const type = await getEvmAddressType(address);
|
|
131
|
+
return type === "contract" || includeEOAWithCode && type === "eoaWithCode";
|
|
132
|
+
} catch (e) {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
var isInnerContractAddress = addressHandlerWrapper(
|
|
138
|
+
(address) => {
|
|
139
|
+
if (!address)
|
|
140
|
+
return false;
|
|
141
|
+
try {
|
|
142
|
+
return SDK.address.isInternalContractAddress(
|
|
143
|
+
formatAddress(address, "hex")
|
|
144
|
+
);
|
|
145
|
+
} catch (e) {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
);
|
|
150
|
+
var isSpecialAddress = addressHandlerWrapper(
|
|
151
|
+
(address) => {
|
|
152
|
+
return getCoreAddressInfo(address)?.type === "builtin" && !isInnerContractAddress(address);
|
|
153
|
+
}
|
|
154
|
+
);
|
|
155
|
+
var getEvmAddressType = addressHandlerWrapper(
|
|
156
|
+
async (address) => {
|
|
157
|
+
if (!address)
|
|
158
|
+
return null;
|
|
159
|
+
try {
|
|
160
|
+
const response = await detectAccountType(address);
|
|
161
|
+
const { isContract, delegatedTo } = response;
|
|
162
|
+
if (isContract) {
|
|
163
|
+
return "contract";
|
|
164
|
+
}
|
|
165
|
+
if (delegatedTo) {
|
|
166
|
+
return "eoaWithCode";
|
|
167
|
+
}
|
|
168
|
+
return "user";
|
|
169
|
+
} catch (e) {
|
|
170
|
+
console.log("getEvmAddressType error: ", e);
|
|
171
|
+
throw e;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
);
|
|
175
|
+
var getDelegatedAddress = addressHandlerWrapper(
|
|
176
|
+
async (address) => {
|
|
177
|
+
if (!address)
|
|
178
|
+
return null;
|
|
179
|
+
try {
|
|
180
|
+
const { delegatedTo } = await detectAccountType(address);
|
|
181
|
+
return delegatedTo || null;
|
|
182
|
+
} catch (e) {
|
|
183
|
+
console.log("getDelegatedAddress error: ", e);
|
|
184
|
+
throw e;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
);
|
|
188
|
+
var getCoreAddressInfo = addressHandlerWrapper(
|
|
189
|
+
(address) => {
|
|
190
|
+
if (!address)
|
|
191
|
+
return null;
|
|
192
|
+
try {
|
|
193
|
+
if (isCoreHexAddress(address)) {
|
|
194
|
+
return {
|
|
195
|
+
netId: NETWORK_ID,
|
|
196
|
+
type: getCoreHexAddressType(address)
|
|
197
|
+
};
|
|
198
|
+
} else if (_isBase32Address(address)) {
|
|
199
|
+
const { netId, type } = decode(address);
|
|
200
|
+
return { netId, type };
|
|
201
|
+
}
|
|
202
|
+
} catch (e) {
|
|
203
|
+
}
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
);
|
|
207
|
+
var formatAddress = (address, outputType) => {
|
|
208
|
+
if (!address)
|
|
209
|
+
return address;
|
|
210
|
+
let result = address;
|
|
211
|
+
try {
|
|
212
|
+
if (outputType === "base32") {
|
|
213
|
+
if (isCoreHexAddress(address)) {
|
|
214
|
+
result = convertHexToBase32(address, NETWORK_ID);
|
|
215
|
+
} else if (_isBase32Address(address)) {
|
|
216
|
+
const reg = /(.*):(.*):(.*)/;
|
|
217
|
+
if (reg.test(address)) {
|
|
218
|
+
result = address.replace(reg, "$1:$3").toLowerCase();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
} else if (outputType === "hex") {
|
|
222
|
+
if (_isBase32Address(address)) {
|
|
223
|
+
result = convertBase32ToHex(address);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
} catch (error) {
|
|
227
|
+
console.error("Failed to format address:", error);
|
|
228
|
+
}
|
|
229
|
+
return result;
|
|
230
|
+
};
|
|
231
|
+
var isBase32Address = (address) => {
|
|
232
|
+
if (!address)
|
|
233
|
+
return false;
|
|
234
|
+
return _isBase32Address(address);
|
|
235
|
+
};
|
|
236
|
+
var isSimplyBase32Address = (address) => {
|
|
237
|
+
if (!address)
|
|
238
|
+
return false;
|
|
239
|
+
return _isSimplyBase32Address(address);
|
|
240
|
+
};
|
|
241
|
+
var formatAddressHexToBase32 = (address) => {
|
|
242
|
+
if (typeof address === "string" && isHexAddress(address)) {
|
|
243
|
+
return convertHexToBase32(address, NETWORK_ID.toString());
|
|
244
|
+
}
|
|
245
|
+
return address;
|
|
246
|
+
};
|
|
247
|
+
var isAddressEqual = (a, b, options) => {
|
|
248
|
+
try {
|
|
249
|
+
if (!a || !b)
|
|
250
|
+
return false;
|
|
251
|
+
return _isAddressEqual(a, b, options);
|
|
252
|
+
} catch (error) {
|
|
253
|
+
console.error("Failed to check:", error);
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
export {
|
|
259
|
+
ADDRESS_FUNC_CACHE,
|
|
260
|
+
convertCheckSum,
|
|
261
|
+
isCoreMainOrTestAddress,
|
|
262
|
+
isCoreMainnetAddress,
|
|
263
|
+
isCoreTestnetAddress,
|
|
264
|
+
isCoreOtherNetAddress,
|
|
265
|
+
isEvmAddress,
|
|
266
|
+
isCoreAddress,
|
|
267
|
+
isSimplyZeroAddress,
|
|
268
|
+
isZeroAddress,
|
|
269
|
+
isCoreUserAddress,
|
|
270
|
+
isEvmUserAddress,
|
|
271
|
+
isCoreContractAddress,
|
|
272
|
+
isEvmContractAddress,
|
|
273
|
+
isInnerContractAddress,
|
|
274
|
+
isSpecialAddress,
|
|
275
|
+
getEvmAddressType,
|
|
276
|
+
getDelegatedAddress,
|
|
277
|
+
getCoreAddressInfo,
|
|
278
|
+
formatAddress,
|
|
279
|
+
isBase32Address,
|
|
280
|
+
isSimplyBase32Address,
|
|
281
|
+
formatAddressHexToBase32,
|
|
282
|
+
isAddressEqual
|
|
283
|
+
};
|
|
284
|
+
//# sourceMappingURL=chunk-MQY7EQPG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/address.ts"],"sourcesContent":["import SDK from 'js-conflux-sdk';\nimport { NETWORK_ID } from './constants';\nimport {\n checksumHexAddress,\n convertHexToBase32,\n isBase32Address as _isBase32Address,\n isSimplyBase32Address as _isSimplyBase32Address,\n isHexAddress,\n isCoreHexAddress,\n decode,\n convertBase32ToHex,\n getCoreHexAddressType,\n Base32Address,\n isAddressEqual as _isAddressEqual,\n} from '@cfx-kit/dapp-utils/dist/address';\nimport { detectAccountType } from './request';\n\ntype CoreAddressType = 'user' | 'contract' | 'builtin' | 'null' | 'unknown';\nexport type EvmAddressType = 'user' | 'contract' | 'eoaWithCode';\ntype LooseAddressType = string | undefined | null;\n\ninterface AddressCache {\n [key: string]: unknown;\n}\nexport const ADDRESS_FUNC_CACHE: AddressCache = {};\n\n// common\nconst addressHandlerWrapper = <T extends Function>(\n handler: T,\n cacheKey?: string,\n): T => {\n return ((address: LooseAddressType, ...args: unknown[]) => {\n if (!address) return handler(address, ...args);\n const lowerAddress = address.toLowerCase();\n let CACHE_KEY = '';\n if (cacheKey) {\n CACHE_KEY = `${cacheKey}(${lowerAddress},${args.join(',')})`;\n if (ADDRESS_FUNC_CACHE[CACHE_KEY]) return ADDRESS_FUNC_CACHE[CACHE_KEY];\n }\n const result = handler(lowerAddress, ...args);\n if (cacheKey) {\n ADDRESS_FUNC_CACHE[CACHE_KEY] = result;\n }\n return result;\n }) as unknown as T;\n};\n\n// evm\nexport const convertCheckSum = <T extends LooseAddressType>(address: T) => {\n if (address && isHexAddress(address)) {\n return checksumHexAddress(address);\n }\n return address;\n};\n\n// core mainnet or testnet\nexport const isCoreMainOrTestAddress = addressHandlerWrapper(\n (address: LooseAddressType): boolean => {\n return isCoreMainnetAddress(address) || isCoreTestnetAddress(address);\n },\n);\n\n// core mainnet\nexport const isCoreMainnetAddress = addressHandlerWrapper(\n (address: LooseAddressType): boolean => {\n return !!address && /^cfx:/i.test(address) && _isBase32Address(address);\n },\n);\n\n// core testnet\nexport const isCoreTestnetAddress = addressHandlerWrapper(\n (address: LooseAddressType): boolean => {\n return !!address && /^cfxtest:/i.test(address) && _isBase32Address(address);\n },\n);\n\n// core other chainId\nexport const isCoreOtherNetAddress = addressHandlerWrapper(\n (address: LooseAddressType): boolean => {\n return !!address && /^net/i.test(address) && _isBase32Address(address);\n },\n);\n\n// evm\nexport const isEvmAddress = addressHandlerWrapper(\n (address: LooseAddressType, includeBase32 = true): boolean => {\n if (!address) return false;\n return (\n isHexAddress(address) ||\n isSimplyZeroAddress(address) ||\n (includeBase32 && _isBase32Address(address))\n );\n },\n);\n\n// core\nexport const isCoreAddress = addressHandlerWrapper(\n (address: LooseAddressType): boolean => {\n if (!address) return false;\n return (\n isCoreHexAddress(address) ||\n isSimplyZeroAddress(address) ||\n _isBase32Address(address)\n );\n },\n);\n\n// common, only for 0x0\nexport const isSimplyZeroAddress = addressHandlerWrapper(\n (address: LooseAddressType) => {\n return address === '0x0';\n },\n);\n\n// common\nexport const isZeroAddress = addressHandlerWrapper(\n (address: LooseAddressType): boolean => {\n if (!address) return false;\n try {\n // hex\n if (isHexAddress(address)) {\n return address === SDK.CONST.ZERO_ADDRESS_HEX;\n } else if (isSimplyZeroAddress(address)) {\n return true;\n // base32\n } else if (_isBase32Address(address)) {\n return formatAddress(address, 'hex') === SDK.CONST.ZERO_ADDRESS_HEX;\n }\n } catch (e) {}\n return false;\n },\n);\n\n// core\nexport const isCoreUserAddress = addressHandlerWrapper(\n (address: LooseAddressType): boolean => {\n if (isZeroAddress(address)) return true;\n return getCoreAddressInfo(address)?.type === 'user';\n },\n);\n\n// evm\nexport const isEvmUserAddress = addressHandlerWrapper(\n async (\n address: LooseAddressType,\n includeEOAWithCode = false,\n ): Promise<boolean> => {\n try {\n if (isZeroAddress(address)) return true;\n const type = await getEvmAddressType(address);\n return type === 'user' || (includeEOAWithCode && type === 'eoaWithCode');\n } catch (e) {\n return false;\n }\n },\n);\n\n// core\nexport const isCoreContractAddress = addressHandlerWrapper(\n (address: LooseAddressType, isIncludingInnerContract = true): boolean => {\n return (\n getCoreAddressInfo(address)?.type === 'contract' ||\n (isIncludingInnerContract && isInnerContractAddress(address))\n );\n },\n);\n\n// evm\nexport const isEvmContractAddress = addressHandlerWrapper(\n async (\n address: LooseAddressType,\n includeEOAWithCode = false,\n ): Promise<boolean> => {\n try {\n const type = await getEvmAddressType(address);\n return (\n type === 'contract' || (includeEOAWithCode && type === 'eoaWithCode')\n );\n } catch (e) {\n return false;\n }\n },\n);\n\n//core\nexport const isInnerContractAddress = addressHandlerWrapper(\n (address: LooseAddressType): boolean => {\n if (!address) return false;\n try {\n return SDK.address.isInternalContractAddress(\n formatAddress(address, 'hex'),\n );\n } catch (e) {\n return false;\n }\n },\n);\n\n// core\n// address start with 0x0, not valid internal contract, but fullnode support\nexport const isSpecialAddress = addressHandlerWrapper(\n (address: LooseAddressType): boolean => {\n return (\n getCoreAddressInfo(address)?.type === 'builtin' &&\n !isInnerContractAddress(address)\n );\n },\n);\n\n// evm\n/**\n * Only evm address type\n */\nexport const getEvmAddressType = addressHandlerWrapper(\n async (address: LooseAddressType): Promise<EvmAddressType | null> => {\n if (!address) return null;\n try {\n const response = await detectAccountType(address);\n const { isContract, delegatedTo } = response;\n if (isContract) {\n return 'contract';\n }\n if (delegatedTo) {\n return 'eoaWithCode';\n }\n return 'user';\n } catch (e) {\n console.log('getEvmAddressType error: ', e);\n throw e;\n }\n },\n);\n\n// evm\nexport const getDelegatedAddress = addressHandlerWrapper(\n async (address: LooseAddressType): Promise<`0x${string}` | null> => {\n if (!address) return null;\n try {\n const { delegatedTo } = await detectAccountType(address);\n return delegatedTo || null;\n } catch (e) {\n console.log('getDelegatedAddress error: ', e);\n throw e;\n }\n },\n);\n\ninterface CoreAddressInfo {\n netId: number;\n type: CoreAddressType;\n}\n\n// core\n/**\n * Only core address type\n */\nexport const getCoreAddressInfo = addressHandlerWrapper(\n (address: LooseAddressType): CoreAddressInfo | null => {\n if (!address) return null;\n try {\n if (isCoreHexAddress(address)) {\n return {\n netId: NETWORK_ID,\n type: getCoreHexAddressType(address),\n };\n } else if (_isBase32Address(address)) {\n const { netId, type } = decode(address);\n return { netId, type } as CoreAddressInfo;\n }\n } catch (e) {}\n return null;\n },\n);\n\n// common\nexport const formatAddress = <T extends LooseAddressType>(\n address: T,\n outputType: 'hex' | 'base32',\n) => {\n if (!address) return address;\n let result = address as string;\n\n try {\n if (outputType === 'base32') {\n if (isCoreHexAddress(address)) {\n result = convertHexToBase32(address, NETWORK_ID);\n } else if (_isBase32Address(address)) {\n const reg = /(.*):(.*):(.*)/;\n if (reg.test(address)) {\n result = address.replace(reg, '$1:$3').toLowerCase();\n }\n }\n } else if (outputType === 'hex') {\n if (_isBase32Address(address)) {\n result = convertBase32ToHex(address);\n }\n }\n } catch (error) {\n console.error('Failed to format address:', error);\n }\n\n return result;\n};\n\n/* ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ temp make omnibus type loose ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ */\n\nexport const isBase32Address = (address: LooseAddressType) => {\n if (!address) return false;\n return _isBase32Address(address);\n};\n\nexport const isSimplyBase32Address = (address: LooseAddressType) => {\n if (!address) return false;\n return _isSimplyBase32Address(address as Base32Address);\n};\n\n/* ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ temp make omnibus type loose ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ */\n\n// evm\n// Convert hex to base32 for the bridge interface.\nexport const formatAddressHexToBase32 = (address: LooseAddressType) => {\n if (typeof address === 'string' && isHexAddress(address)) {\n return convertHexToBase32(address, NETWORK_ID.toString());\n }\n return address;\n};\n\nexport const isAddressEqual = (\n a: Parameters<typeof _isAddressEqual>[0],\n b: Parameters<typeof _isAddressEqual>[1],\n options?: Parameters<typeof _isAddressEqual>[2],\n) => {\n try {\n if (!a || !b) return false;\n return _isAddressEqual(a, b, options);\n } catch (error) {\n console.error('Failed to check:', error);\n return false;\n }\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AddressLabel
|
|
3
|
+
} from "./chunk-EHRGH3HS.js";
|
|
4
|
+
import {
|
|
5
|
+
ContractDetail
|
|
6
|
+
} from "./chunk-FGPRA3A4.js";
|
|
7
|
+
import {
|
|
8
|
+
FunctionName,
|
|
9
|
+
getParameterType
|
|
10
|
+
} from "./chunk-FYLAXC3R.js";
|
|
11
|
+
import {
|
|
12
|
+
parseArgs
|
|
13
|
+
} from "./chunk-XI5WO2NW.js";
|
|
14
|
+
import {
|
|
15
|
+
Link
|
|
16
|
+
} from "./chunk-2Y57U43P.js";
|
|
17
|
+
import {
|
|
18
|
+
convertCheckSum
|
|
19
|
+
} from "./chunk-MQY7EQPG.js";
|
|
20
|
+
import {
|
|
21
|
+
Text
|
|
22
|
+
} from "./chunk-4B7BV62E.js";
|
|
23
|
+
import {
|
|
24
|
+
cn
|
|
25
|
+
} from "./chunk-SNUPCZY7.js";
|
|
26
|
+
|
|
27
|
+
// src/components/InputData/OptimizationDecode.tsx
|
|
28
|
+
import { useMemo } from "react";
|
|
29
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
30
|
+
var DecodedParameters = ({
|
|
31
|
+
args,
|
|
32
|
+
label,
|
|
33
|
+
params,
|
|
34
|
+
labelClassName,
|
|
35
|
+
space
|
|
36
|
+
}) => {
|
|
37
|
+
const addressType = space === "core" ? "base32" : "hex";
|
|
38
|
+
const data = useMemo(() => {
|
|
39
|
+
if (!args)
|
|
40
|
+
return {};
|
|
41
|
+
const array = parseArgs(args, params);
|
|
42
|
+
let object = {};
|
|
43
|
+
params.forEach((item, index) => {
|
|
44
|
+
object[item.name ?? `arg${index}`] = Array.isArray(array[index]) ? JSON.stringify(array[index], null, 4) : String(array[index]);
|
|
45
|
+
});
|
|
46
|
+
return object;
|
|
47
|
+
}, [args, params]);
|
|
48
|
+
return params.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "flex min-h-32px", children: [
|
|
49
|
+
/* @__PURE__ */ jsx(
|
|
50
|
+
"div",
|
|
51
|
+
{
|
|
52
|
+
className: cn(
|
|
53
|
+
"w-100px shrink-0 grow-0 text-14px lh-18px text-#6a737d pt-6px",
|
|
54
|
+
labelClassName
|
|
55
|
+
),
|
|
56
|
+
children: label
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
/* @__PURE__ */ jsx("div", { className: "bg-#f7f7f8 w-full max-h-200px overflow-auto", children: params.map((item, index) => {
|
|
60
|
+
const argName = item.name ?? `arg${index}`;
|
|
61
|
+
let value = data[argName];
|
|
62
|
+
if (item.type === "address" && value) {
|
|
63
|
+
const address = value;
|
|
64
|
+
value = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
65
|
+
/* @__PURE__ */ jsxs(Link, { href: `/address/${address}`, children: [
|
|
66
|
+
convertCheckSum(address),
|
|
67
|
+
" "
|
|
68
|
+
] }),
|
|
69
|
+
/* @__PURE__ */ jsx(ContractDetail, { address, addressType }),
|
|
70
|
+
/* @__PURE__ */ jsx(AddressLabel, { address, space })
|
|
71
|
+
] });
|
|
72
|
+
}
|
|
73
|
+
let type = item.type || "unknown";
|
|
74
|
+
let fullType = getParameterType(item);
|
|
75
|
+
if (/\(.*\)/.test(item.type) || item.type.includes("tuple")) {
|
|
76
|
+
type = /* @__PURE__ */ jsx("span", { className: "flex items-center", children: /* @__PURE__ */ jsx("span", { className: "mr-2px", children: "tuple" }) });
|
|
77
|
+
}
|
|
78
|
+
return /* @__PURE__ */ jsxs(
|
|
79
|
+
"div",
|
|
80
|
+
{
|
|
81
|
+
className: cn(
|
|
82
|
+
"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",
|
|
83
|
+
"lt-sm:flex-col lt-sm:items-center first:border-t-1 first:border-t-solid first:border-t-#e8e9ea"
|
|
84
|
+
),
|
|
85
|
+
children: [
|
|
86
|
+
/* @__PURE__ */ jsx("div", { className: "ml-0.5rem text-14px text-#6a737d min-w-8px h-1.4286rem lh-1.4286rem shrink-0", children: index }),
|
|
87
|
+
/* @__PURE__ */ jsx("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", children: /* @__PURE__ */ jsx(Text, { maxWidth: "70px", hoverValue: fullType, children: type }) }),
|
|
88
|
+
/* @__PURE__ */ jsxs("div", { className: "ml-0.6rem text-14px h-1.4286rem lh-1.4286rem text-#e79d35 shrink-0", children: [
|
|
89
|
+
argName,
|
|
90
|
+
":"
|
|
91
|
+
] }),
|
|
92
|
+
/* @__PURE__ */ jsx("div", { className: "text-14px text-#25282d pl-0.3571rem", children: /* @__PURE__ */ jsx("pre", { className: "-mb-0.2857rem text-1rem", children: value }) })
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
index
|
|
96
|
+
);
|
|
97
|
+
}) })
|
|
98
|
+
] }) : null;
|
|
99
|
+
};
|
|
100
|
+
var OptimizationDecode = ({
|
|
101
|
+
input = "",
|
|
102
|
+
decodedParams,
|
|
103
|
+
abiItem,
|
|
104
|
+
labelClassName,
|
|
105
|
+
space
|
|
106
|
+
}) => {
|
|
107
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
108
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-h-32px", children: [
|
|
109
|
+
/* @__PURE__ */ jsxs(
|
|
110
|
+
"div",
|
|
111
|
+
{
|
|
112
|
+
className: cn(
|
|
113
|
+
"w-100px shrink-0 grow-0 text-14px lh-18px text-#6a737d pt-1px",
|
|
114
|
+
labelClassName
|
|
115
|
+
),
|
|
116
|
+
children: [
|
|
117
|
+
"Function:",
|
|
118
|
+
" "
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
),
|
|
122
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(FunctionName, { abiItem }) })
|
|
123
|
+
] }),
|
|
124
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-h-32px", children: [
|
|
125
|
+
/* @__PURE__ */ jsxs(
|
|
126
|
+
"div",
|
|
127
|
+
{
|
|
128
|
+
className: cn(
|
|
129
|
+
"w-100px shrink-0 grow-0 text-14px lh-18px text-#6a737d pt-1px",
|
|
130
|
+
labelClassName
|
|
131
|
+
),
|
|
132
|
+
children: [
|
|
133
|
+
"MethodID:",
|
|
134
|
+
" "
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
),
|
|
138
|
+
/* @__PURE__ */ jsx("div", { children: input.slice(0, 10) })
|
|
139
|
+
] }),
|
|
140
|
+
/* @__PURE__ */ jsx(
|
|
141
|
+
DecodedParameters,
|
|
142
|
+
{
|
|
143
|
+
args: decodedParams.args,
|
|
144
|
+
params: abiItem.inputs,
|
|
145
|
+
label: "Parameters:",
|
|
146
|
+
labelClassName,
|
|
147
|
+
space
|
|
148
|
+
}
|
|
149
|
+
)
|
|
150
|
+
] });
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
export {
|
|
154
|
+
DecodedParameters,
|
|
155
|
+
OptimizationDecode
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=chunk-MWSXXVVL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/InputData/OptimizationDecode.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { parseArgs } from './utils';\nimport _ from 'lodash';\nimport { ContractDetail } 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 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 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\n value = (\n <>\n <Link href={`/address/${address}`}>\n {convertCheckSum(address)}{' '}\n </Link>\n <ContractDetail address={address} 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":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isCoreMainOrTestAddress
|
|
3
|
+
} from "./chunk-MQY7EQPG.js";
|
|
4
|
+
import {
|
|
5
|
+
apiPrefix
|
|
6
|
+
} from "./chunk-WIB76E7O.js";
|
|
7
|
+
import {
|
|
8
|
+
sendRequestENSInfo
|
|
9
|
+
} from "./chunk-E7FB4S3X.js";
|
|
10
|
+
import {
|
|
11
|
+
useENSStore
|
|
12
|
+
} from "./chunk-DQGLZCIG.js";
|
|
13
|
+
|
|
14
|
+
// src/utils/hooks/useENS.ts
|
|
15
|
+
import { useEffect } from "react";
|
|
16
|
+
import useSWR from "swr";
|
|
17
|
+
var ensUrl = (ens, value) => {
|
|
18
|
+
if (!value)
|
|
19
|
+
return null;
|
|
20
|
+
if (typeof value === "string" && ens[value])
|
|
21
|
+
return null;
|
|
22
|
+
let url = null;
|
|
23
|
+
if (typeof value === "string" && isCoreMainOrTestAddress(value)) {
|
|
24
|
+
url = `${apiPrefix}/ens/reverse/match?address=${value}`;
|
|
25
|
+
} else if (Array.isArray(value) && value.length) {
|
|
26
|
+
const validAddresses = value.filter(
|
|
27
|
+
(v) => typeof v === "string" && isCoreMainOrTestAddress(v) && !ens[v]
|
|
28
|
+
);
|
|
29
|
+
if (validAddresses.length === 0)
|
|
30
|
+
return null;
|
|
31
|
+
const baseUrl = `${apiPrefix}/ens/reverse/match?`;
|
|
32
|
+
const maxQueryLength = 1800 - baseUrl.length;
|
|
33
|
+
const query = validAddresses.reduce((acc, curr, index) => {
|
|
34
|
+
const newPart = `${index === 0 ? "" : "&"}address=${curr}`;
|
|
35
|
+
if (acc.length + newPart.length > maxQueryLength) {
|
|
36
|
+
return acc;
|
|
37
|
+
}
|
|
38
|
+
return acc + newPart;
|
|
39
|
+
}, "");
|
|
40
|
+
if (query) {
|
|
41
|
+
url = baseUrl + query;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return url;
|
|
45
|
+
};
|
|
46
|
+
var useENS = (address) => {
|
|
47
|
+
const { ens, setENS } = useENSStore();
|
|
48
|
+
const url = ensUrl(ens, address);
|
|
49
|
+
const { data } = useSWR(url, () => sendRequestENSInfo(url), {
|
|
50
|
+
revalidateOnFocus: false
|
|
51
|
+
});
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (data) {
|
|
54
|
+
setENS(data);
|
|
55
|
+
}
|
|
56
|
+
}, [data]);
|
|
57
|
+
return { ens };
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export {
|
|
61
|
+
useENS
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=chunk-O6BP54O6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/hooks/useENS.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport useSWR from 'swr';\nimport { sendRequestENSInfo } from 'src/utils/request';\nimport { useENSStore } from '../../store';\nimport { ENSType } from '../../store/types';\nimport { isCoreMainOrTestAddress } from '../address';\nimport { apiPrefix } from '../constants';\n\nconst ensUrl = (ens: ENSType, value: string | null | string[]) => {\n if (!value) return null;\n if (typeof value === 'string' && ens[value]) return null;\n\n let url = null;\n\n if (typeof value === 'string' && isCoreMainOrTestAddress(value)) {\n url = `${apiPrefix}/ens/reverse/match?address=${value}`;\n } else if (Array.isArray(value) && value.length) {\n const validAddresses = value.filter(\n v => typeof v === 'string' && isCoreMainOrTestAddress(v) && !ens[v],\n );\n if (validAddresses.length === 0) return null;\n\n const baseUrl = `${apiPrefix}/ens/reverse/match?`;\n const maxQueryLength = 1800 - baseUrl.length;\n\n const query = validAddresses.reduce((acc, curr, index) => {\n const newPart = `${index === 0 ? '' : '&'}address=${curr}`;\n if (acc.length + newPart.length > maxQueryLength) {\n return acc;\n }\n return acc + newPart;\n }, '');\n\n if (query) {\n url = baseUrl + query;\n }\n }\n\n return url;\n};\n\nexport const useENS = (address: string | null | string[]) => {\n const { ens, setENS } = useENSStore();\n\n const url = ensUrl(ens, address);\n\n const { data } = useSWR(url, () => sendRequestENSInfo(url), {\n revalidateOnFocus: false,\n });\n\n useEffect(() => {\n if (data) {\n setENS(data);\n }\n }, [data]);\n\n return { ens };\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,iBAAiB;AAC1B,OAAO,YAAY;AAOnB,IAAM,SAAS,CAAC,KAAc,UAAoC;AAChE,MAAI,CAAC;AAAO,WAAO;AACnB,MAAI,OAAO,UAAU,YAAY,IAAI,KAAK;AAAG,WAAO;AAEpD,MAAI,MAAM;AAEV,MAAI,OAAO,UAAU,YAAY,wBAAwB,KAAK,GAAG;AAC/D,UAAM,GAAG,uCAAuC;AAAA,EAClD,WAAW,MAAM,QAAQ,KAAK,KAAK,MAAM,QAAQ;AAC/C,UAAM,iBAAiB,MAAM;AAAA,MAC3B,OAAK,OAAO,MAAM,YAAY,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC;AAAA,IACpE;AACA,QAAI,eAAe,WAAW;AAAG,aAAO;AAExC,UAAM,UAAU,GAAG;AACnB,UAAM,iBAAiB,OAAO,QAAQ;AAEtC,UAAM,QAAQ,eAAe,OAAO,CAAC,KAAK,MAAM,UAAU;AACxD,YAAM,UAAU,GAAG,UAAU,IAAI,KAAK,cAAc;AACpD,UAAI,IAAI,SAAS,QAAQ,SAAS,gBAAgB;AAChD,eAAO;AAAA,MACT;AACA,aAAO,MAAM;AAAA,IACf,GAAG,EAAE;AAEL,QAAI,OAAO;AACT,YAAM,UAAU;AAAA,IAClB;AAAA,EACF;AAEA,SAAO;AACT;AAEO,IAAM,SAAS,CAAC,YAAsC;AAC3D,QAAM,EAAE,KAAK,OAAO,IAAI,YAAY;AAEpC,QAAM,MAAM,OAAO,KAAK,OAAO;AAE/B,QAAM,EAAE,KAAK,IAAI,OAAO,KAAK,MAAM,mBAAmB,GAAG,GAAG;AAAA,IAC1D,mBAAmB;AAAA,EACrB,CAAC;AAED,YAAU,MAAM;AACd,QAAI,MAAM;AACR,aAAO,IAAI;AAAA,IACb;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AAET,SAAO,EAAE,IAAI;AACf;","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getContractDetail
|
|
3
|
+
} from "./chunk-E7FB4S3X.js";
|
|
4
|
+
|
|
5
|
+
// src/utils/hooks/useContractDetail.ts
|
|
6
|
+
import useSWRImmutable from "swr/immutable";
|
|
7
|
+
var useContractDetail = (contractAddress, fields = [], shouldFetch = true) => {
|
|
8
|
+
return useSWRImmutable(
|
|
9
|
+
shouldFetch && contractAddress ? `contract-detail-${contractAddress}-${fields.join(",")}` : null,
|
|
10
|
+
() => getContractDetail(contractAddress, fields)
|
|
11
|
+
);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export {
|
|
15
|
+
useContractDetail
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=chunk-OFAM2QTT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/hooks/useContractDetail.ts"],"sourcesContent":["import useSWRImmutable from 'swr/immutable';\nimport { getContractDetail } from '../request';\n\nexport const useContractDetail = <T extends string>(\n contractAddress?: string,\n fields: T[] = [],\n shouldFetch = true,\n) => {\n return useSWRImmutable(\n shouldFetch && contractAddress\n ? `contract-detail-${contractAddress}-${fields.join(',')}`\n : null,\n () => getContractDetail(contractAddress, fields),\n );\n};\n"],"mappings":";;;;;AAAA,OAAO,qBAAqB;AAGrB,IAAM,oBAAoB,CAC/B,iBACA,SAAc,CAAC,GACf,cAAc,SACX;AACH,SAAO;AAAA,IACL,eAAe,kBACX,mBAAmB,mBAAmB,OAAO,KAAK,GAAG,MACrD;AAAA,IACJ,MAAM,kBAAkB,iBAAiB,MAAM;AAAA,EACjD;AACF;","names":[]}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-MWAD4CIG.js";
|
|
7
7
|
import {
|
|
8
8
|
formatAddress
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BN3ATGHU.js";
|
|
10
10
|
|
|
11
11
|
// src/components/InputData/ContractDetail.tsx
|
|
12
12
|
import clsx from "clsx";
|
|
@@ -81,4 +81,4 @@ export {
|
|
|
81
81
|
formatContractAndTokenInfoMap,
|
|
82
82
|
ContractDetail
|
|
83
83
|
};
|
|
84
|
-
//# sourceMappingURL=chunk-
|
|
84
|
+
//# sourceMappingURL=chunk-OSPPP5W5.js.map
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GeneralDecode
|
|
3
|
+
} from "./chunk-OYESIV3F.js";
|
|
4
|
+
import {
|
|
5
|
+
JsonDecode
|
|
6
|
+
} from "./chunk-DASMAZXS.js";
|
|
7
|
+
import {
|
|
8
|
+
OptimizationDecode
|
|
9
|
+
} from "./chunk-MWSXXVVL.js";
|
|
10
|
+
import {
|
|
11
|
+
Original
|
|
12
|
+
} from "./chunk-5AM5HM3B.js";
|
|
13
|
+
import {
|
|
14
|
+
UTF8
|
|
15
|
+
} from "./chunk-UVRMLFMC.js";
|
|
16
|
+
|
|
17
|
+
// src/components/InputData/index.tsx
|
|
18
|
+
import { jsx } from "react/jsx-runtime";
|
|
19
|
+
var InputData = ({
|
|
20
|
+
decodedData,
|
|
21
|
+
dataType,
|
|
22
|
+
input,
|
|
23
|
+
space,
|
|
24
|
+
labelClassName,
|
|
25
|
+
success
|
|
26
|
+
}) => {
|
|
27
|
+
if (dataType === "utf8") {
|
|
28
|
+
return /* @__PURE__ */ jsx(UTF8, { data: input });
|
|
29
|
+
} else if (dataType === "json" && decodedData?.decodedParams && decodedData?.abiItem) {
|
|
30
|
+
return /* @__PURE__ */ jsx(
|
|
31
|
+
JsonDecode,
|
|
32
|
+
{
|
|
33
|
+
decodedParams: decodedData.decodedParams,
|
|
34
|
+
decodedResults: decodedData.decodedResults,
|
|
35
|
+
abiItem: decodedData.abiItem,
|
|
36
|
+
input,
|
|
37
|
+
success
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
} else if (dataType === "generalDecode") {
|
|
41
|
+
return /* @__PURE__ */ jsx(
|
|
42
|
+
GeneralDecode,
|
|
43
|
+
{
|
|
44
|
+
data: input,
|
|
45
|
+
fullName: decodedData?.fullName
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
} else if (dataType === "optimizationDecode" && decodedData?.decodedParams && decodedData?.abiItem) {
|
|
49
|
+
return /* @__PURE__ */ jsx(
|
|
50
|
+
OptimizationDecode,
|
|
51
|
+
{
|
|
52
|
+
decodedParams: decodedData.decodedParams,
|
|
53
|
+
abiItem: decodedData.abiItem,
|
|
54
|
+
input,
|
|
55
|
+
labelClassName,
|
|
56
|
+
space
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
return /* @__PURE__ */ jsx(Original, { data: input });
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export {
|
|
64
|
+
InputData
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=chunk-OT252GGM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,aAAa,iBACb,aAAa,SACb;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,aAAa;AAAA;AAAA,IACxB;AAAA,EAEL,WACE,aAAa,wBACb,aAAa,iBACb,aAAa,SACb;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":[]}
|