@cfxjs/sirius-next-common 0.2.15 → 0.2.16
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-ARQH6VQ4.js → chunk-5CDCNIBM.js} +3 -3
- package/dist/{chunk-IDGNYTHY.js → chunk-5M5ECKFB.js} +3 -3
- package/dist/{chunk-HJNIYZ62.js → chunk-7OSADJ6H.js} +1 -1
- package/dist/chunk-7OSADJ6H.js.map +1 -0
- package/dist/{chunk-WSDJ3XJ2.js → chunk-JRB53YY7.js} +2 -2
- package/dist/components/AddressContainer/CoreAddressContainer.js +3 -3
- package/dist/components/AddressContainer/EVMAddressContainer.js +3 -3
- package/dist/components/AddressContainer/addressSwitcher.js +2 -2
- package/dist/components/AddressContainer/addressView.js +1 -1
- package/dist/components/ProxyContractAddress/index.d.ts +2 -7
- package/dist/components/ProxyContractAddress/index.js +30 -8
- package/dist/components/ProxyContractAddress/index.js.map +1 -1
- package/dist/components/TransactionAction/coreTransactionAction.js +4 -4
- package/dist/components/TransactionAction/coreTransactionAction.js.map +1 -1
- package/dist/components/TransactionAction/evmTransactionAction.js +4 -4
- package/dist/components/TransactionAction/evmTransactionAction.js.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-HJNIYZ62.js.map +0 -1
- /package/dist/{chunk-ARQH6VQ4.js.map → chunk-5CDCNIBM.js.map} +0 -0
- /package/dist/{chunk-IDGNYTHY.js.map → chunk-5M5ECKFB.js.map} +0 -0
- /package/dist/{chunk-WSDJ3XJ2.js.map → chunk-JRB53YY7.js.map} +0 -0
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
ContractCreatedAddress,
|
|
4
4
|
InvalidAddress,
|
|
5
5
|
MyAddress
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-JRB53YY7.js";
|
|
7
7
|
import {
|
|
8
8
|
RenderAddress
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7OSADJ6H.js";
|
|
10
10
|
import {
|
|
11
11
|
convertCheckSum,
|
|
12
12
|
formatAddress,
|
|
@@ -105,4 +105,4 @@ var EVMAddressContainer = withTranslation()(
|
|
|
105
105
|
export {
|
|
106
106
|
EVMAddressContainer
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=chunk-
|
|
108
|
+
//# sourceMappingURL=chunk-5CDCNIBM.js.map
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
InvalidAddress,
|
|
9
9
|
MyAddress,
|
|
10
10
|
PosAddress
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-JRB53YY7.js";
|
|
12
12
|
import {
|
|
13
13
|
RenderAddress
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-7OSADJ6H.js";
|
|
15
15
|
import {
|
|
16
16
|
formatAddress,
|
|
17
17
|
isCoreAddress,
|
|
@@ -138,4 +138,4 @@ var CoreAddressContainer = withTranslation()(
|
|
|
138
138
|
export {
|
|
139
139
|
CoreAddressContainer
|
|
140
140
|
};
|
|
141
|
-
//# sourceMappingURL=chunk-
|
|
141
|
+
//# sourceMappingURL=chunk-5M5ECKFB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/AddressContainer/addressView.tsx"],"sourcesContent":["import { Translation } from 'react-i18next';\nimport { Text } from '../Text';\nimport { convertCheckSum } from '../../utils/address';\nimport { getTranslations } from '../../store';\nimport { TooltipContent, RenderAddressProps } from './types';\nimport { shortenAddress } from '@cfx-kit/dapp-utils/dist/address';\n\nconst defaultPCMaxWidth = 138;\n\n// common\nconst renderTooltipContent = (tooltipContent: TooltipContent) => {\n return Object.entries(tooltipContent)\n .map(([key, { label, value, hideLabel }]) => {\n if (value) {\n return (\n <div key={key}>\n {!hideLabel && (\n <span>\n <Translation>{t => t(label)}</Translation>\n </span>\n )}\n {value}\n </div>\n );\n }\n return null;\n })\n .filter(Boolean);\n};\n\n// common\nconst convertLink = ({\n link,\n type,\n hrefAddress,\n cfxAddress,\n}: RenderAddressProps) => {\n if (typeof link === 'string') {\n return link;\n }\n if (link === false) {\n return false;\n }\n\n const address = hrefAddress || cfxAddress;\n\n if (address && typeof address === 'string') {\n const pathname = window.location.pathname.toLowerCase();\n const addressLower = address.toLowerCase();\n if (pathname.includes('/address/' + addressLower)) {\n return false;\n }\n\n if (type === 'pow') {\n return `/address/${address}`;\n }\n\n if (type === 'pos') {\n return `/pos/accounts/${address}`;\n }\n }\n\n return false;\n};\n\n// common\nexport const RenderAddress = ({\n cfxAddress,\n alias,\n hoverValue,\n hrefAddress,\n content,\n link = '',\n isFull = false,\n isFullNameTag = false,\n style = {},\n maxWidth,\n prefix = null,\n ENSIcon = null,\n suffix = null,\n type = 'pow',\n addressLabel = '',\n ENSLabel = '',\n nametag = '',\n hideAliasPrefixInHover = false,\n}: RenderAddressProps) => {\n const translations = getTranslations();\n\n // Private name tags > Official tag/name > contract token name > contract tag > contract name > CNS/ENS\n const name = addressLabel || content || nametag || alias || ENSLabel;\n const isShowEns = !!ENSLabel && name === ENSLabel;\n\n const defaultStyle = {\n maxWidth: `${(name && isFullNameTag) || isFull ? 'auto' : (maxWidth || defaultPCMaxWidth) + 'px'}`,\n };\n\n const href = convertLink({ link, type, hrefAddress, cfxAddress });\n\n const Wrapper = href ? 'a' : 'div';\n\n const tooltipContent: TooltipContent = {\n ENSLabel: {\n label: (translations as any)?.ens?.tip,\n value: ENSLabel,\n },\n nametag: {\n label: translations?.nametag?.tip,\n value: nametag,\n },\n addressLabel: {\n label: translations?.profile.address.myNameTag,\n value: addressLabel,\n },\n alias: {\n label: translations?.profile.address.publicNameTag,\n value: alias,\n hideLabel: hideAliasPrefixInHover,\n },\n };\n\n const checksumAddress = convertCheckSum(cfxAddress);\n\n const cfxAddressLabel =\n typeof cfxAddress === 'string' && !isFull\n ? shortenAddress(checksumAddress!)\n : checksumAddress;\n\n return (\n <div className=\"inline-flex\">\n {prefix || (isShowEns ? ENSIcon : null)}\n <Text\n tag=\"span\"\n hoverValue={\n <>\n {renderTooltipContent(tooltipContent)}\n <div>{hoverValue || checksumAddress}</div>\n </>\n }\n >\n <Wrapper\n className=\"block relative align-bottom cursor-default truncate\"\n style={{ ...defaultStyle, ...style }}\n {...(href ? { href: String(href) } : {})}\n >\n {name || cfxAddressLabel}\n </Wrapper>\n </Text>\n {suffix}\n </div>\n );\n};\n"],"mappings":"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","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-MWAD4CIG.js";
|
|
4
4
|
import {
|
|
5
5
|
RenderAddress
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7OSADJ6H.js";
|
|
7
7
|
import {
|
|
8
8
|
formatAddress,
|
|
9
9
|
isInnerContractAddress
|
|
@@ -205,4 +205,4 @@ export {
|
|
|
205
205
|
MyAddress,
|
|
206
206
|
PosAddress
|
|
207
207
|
};
|
|
208
|
-
//# sourceMappingURL=chunk-
|
|
208
|
+
//# sourceMappingURL=chunk-JRB53YY7.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CoreAddressContainer
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-5M5ECKFB.js";
|
|
4
4
|
import "../../chunk-BUSBM33B.js";
|
|
5
|
-
import "../../chunk-
|
|
5
|
+
import "../../chunk-JRB53YY7.js";
|
|
6
6
|
import "../../chunk-MWAD4CIG.js";
|
|
7
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-7OSADJ6H.js";
|
|
8
8
|
import "../../chunk-CNF26YY7.js";
|
|
9
9
|
import "../../chunk-P4EE3QGM.js";
|
|
10
10
|
import "../../chunk-TOKKKTFG.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EVMAddressContainer
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-5CDCNIBM.js";
|
|
4
|
+
import "../../chunk-JRB53YY7.js";
|
|
5
5
|
import "../../chunk-MWAD4CIG.js";
|
|
6
|
-
import "../../chunk-
|
|
6
|
+
import "../../chunk-7OSADJ6H.js";
|
|
7
7
|
import "../../chunk-CNF26YY7.js";
|
|
8
8
|
import "../../chunk-P4EE3QGM.js";
|
|
9
9
|
import "../../chunk-TOKKKTFG.js";
|
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
InvalidAddress,
|
|
6
6
|
MyAddress,
|
|
7
7
|
PosAddress
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-JRB53YY7.js";
|
|
9
9
|
import "../../chunk-MWAD4CIG.js";
|
|
10
|
-
import "../../chunk-
|
|
10
|
+
import "../../chunk-7OSADJ6H.js";
|
|
11
11
|
import "../../chunk-CNF26YY7.js";
|
|
12
12
|
import "../../chunk-P4EE3QGM.js";
|
|
13
13
|
import "../../chunk-TOKKKTFG.js";
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ProxyType } from '../../utils/hooks/useTxTrace.js';
|
|
3
|
+
import { CoreAddressContainerProps } from '../AddressContainer/types.js';
|
|
3
4
|
import 'swr';
|
|
4
5
|
import '../../utils/sdk.js';
|
|
5
6
|
import 'viem';
|
|
6
7
|
import '../../utils/request.types.js';
|
|
7
8
|
|
|
8
|
-
declare const ProxyContractAddress: (props: {
|
|
9
|
-
address: string;
|
|
10
|
-
alias?: string;
|
|
11
|
-
isFull?: boolean;
|
|
12
|
-
verify?: boolean;
|
|
13
|
-
showIcon?: boolean;
|
|
14
|
-
showAddressLabel?: boolean;
|
|
9
|
+
declare const ProxyContractAddress: (props: Pick<CoreAddressContainerProps, 'value' | 'alias' | 'isFull' | 'verify' | 'showIcon' | 'showAddressLabel' | 'showENSLabel' | 'ensInfo' | 'showNametag' | 'nametagInfo'> & {
|
|
15
10
|
proxy: {
|
|
16
11
|
type: ProxyType;
|
|
17
12
|
implAddress: string;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useAddressLabel
|
|
3
3
|
} from "../../chunk-6H5A42YS.js";
|
|
4
|
+
import {
|
|
5
|
+
Link
|
|
6
|
+
} from "../../chunk-2Y57U43P.js";
|
|
7
|
+
import "../../chunk-TGK5LP2H.js";
|
|
4
8
|
import {
|
|
5
9
|
isInnerContractAddress
|
|
6
10
|
} from "../../chunk-CNF26YY7.js";
|
|
@@ -27,24 +31,42 @@ import InternalContractIcon from "../../internal-contract-icon-ZH2RG3CU.png";
|
|
|
27
31
|
import ContractIcon from "../../contract-icon-P3W2HUAA.png";
|
|
28
32
|
import VerifiedIcon from "../../verified-VJRHZNN7.png";
|
|
29
33
|
import { shortenAddress } from "@cfx-kit/dapp-utils/dist/address";
|
|
34
|
+
import { useMemo } from "react";
|
|
30
35
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
31
36
|
var ProxyContractAddress = (props) => {
|
|
32
37
|
const {
|
|
33
38
|
showIcon = true,
|
|
34
39
|
showAddressLabel = true,
|
|
35
40
|
verify,
|
|
36
|
-
|
|
41
|
+
value,
|
|
37
42
|
alias,
|
|
38
43
|
isFull = false,
|
|
39
44
|
proxy,
|
|
40
45
|
className,
|
|
41
|
-
style
|
|
46
|
+
style,
|
|
47
|
+
showENSLabel = true,
|
|
48
|
+
ensInfo,
|
|
49
|
+
showNametag = true,
|
|
50
|
+
nametagInfo
|
|
42
51
|
} = props;
|
|
43
52
|
const { t } = useTranslation();
|
|
44
53
|
const translations = getTranslations();
|
|
45
|
-
const addressLabel = useAddressLabel(
|
|
46
|
-
const text =
|
|
47
|
-
|
|
54
|
+
const addressLabel = useAddressLabel(value, showAddressLabel);
|
|
55
|
+
const text = useMemo(() => {
|
|
56
|
+
const ENSLabel = showENSLabel ? ensInfo?.[value]?.name : void 0;
|
|
57
|
+
const nametag = showNametag ? nametagInfo?.[value]?.nametag : void 0;
|
|
58
|
+
return addressLabel || nametag || alias || ENSLabel || (isFull ? value : shortenAddress(value));
|
|
59
|
+
}, [
|
|
60
|
+
nametagInfo,
|
|
61
|
+
value,
|
|
62
|
+
showNametag,
|
|
63
|
+
addressLabel,
|
|
64
|
+
alias,
|
|
65
|
+
isFull,
|
|
66
|
+
showENSLabel,
|
|
67
|
+
ensInfo
|
|
68
|
+
]);
|
|
69
|
+
const isInnerContract = value && isInnerContractAddress(value);
|
|
48
70
|
const typeText = t(
|
|
49
71
|
isInnerContract ? translations.general.internalContract : verify ? translations.general.verifiedContract : translations.general.unverifiedContract
|
|
50
72
|
);
|
|
@@ -81,7 +103,7 @@ var ProxyContractAddress = (props) => {
|
|
|
81
103
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
82
104
|
proxy.type,
|
|
83
105
|
": ",
|
|
84
|
-
|
|
106
|
+
value
|
|
85
107
|
] }),
|
|
86
108
|
proxy.beaconAddress && /* @__PURE__ */ jsxs("div", { children: [
|
|
87
109
|
"Beacon: ",
|
|
@@ -94,13 +116,13 @@ var ProxyContractAddress = (props) => {
|
|
|
94
116
|
] }),
|
|
95
117
|
containerClassName: "max-w-unset",
|
|
96
118
|
children: /* @__PURE__ */ jsxs(
|
|
97
|
-
|
|
119
|
+
Link,
|
|
98
120
|
{
|
|
99
121
|
className: cn(
|
|
100
122
|
"block relative align-bottom cursor-pointer truncate max-w-220px",
|
|
101
123
|
className
|
|
102
124
|
),
|
|
103
|
-
href: `/address/${
|
|
125
|
+
href: `/address/${value}`,
|
|
104
126
|
style,
|
|
105
127
|
children: [
|
|
106
128
|
text,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/ProxyContractAddress/index.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport { getTranslations } from 'src/store';\nimport { isInnerContractAddress } from 'src/utils/address';\nimport { Tooltip } from '../Tooltip';\nimport InternalContractIcon from '../../images/internal-contract-icon.png';\nimport ContractIcon from '../../images/contract-icon.png';\nimport VerifiedIcon from '../../images/verified.png';\nimport { shortenAddress } from '@cfx-kit/dapp-utils/dist/address';\nimport { cn } from 'src/utils';\nimport { ProxyType } from 'src/utils/hooks/useTxTrace';\nimport { useAddressLabel } from 'src/utils/hooks/useAddressLabel';\n\nexport const ProxyContractAddress = (props:
|
|
1
|
+
{"version":3,"sources":["../../../src/components/ProxyContractAddress/index.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport { getTranslations } from 'src/store';\nimport { isInnerContractAddress } from 'src/utils/address';\nimport { Tooltip } from '../Tooltip';\nimport InternalContractIcon from '../../images/internal-contract-icon.png';\nimport ContractIcon from '../../images/contract-icon.png';\nimport VerifiedIcon from '../../images/verified.png';\nimport { shortenAddress } from '@cfx-kit/dapp-utils/dist/address';\nimport { cn } from 'src/utils';\nimport { ProxyType } from 'src/utils/hooks/useTxTrace';\nimport { useAddressLabel } from 'src/utils/hooks/useAddressLabel';\nimport { getLabelInfo } from '../AddressContainer/label';\nimport { useMemo } from 'react';\nimport { Link } from '../Link';\nimport { CoreAddressContainerProps } from '../AddressContainer/types';\n\nexport const ProxyContractAddress = (\n props: Pick<\n CoreAddressContainerProps,\n | 'value'\n | 'alias'\n | 'isFull'\n | 'verify'\n | 'showIcon'\n | 'showAddressLabel'\n | 'showENSLabel'\n | 'ensInfo'\n | 'showNametag'\n | 'nametagInfo'\n > & {\n proxy: {\n type: ProxyType;\n implAddress: string;\n beaconAddress?: string;\n };\n style?: React.CSSProperties;\n className?: string;\n },\n) => {\n const {\n showIcon = true,\n showAddressLabel = true,\n verify,\n value,\n alias,\n isFull = false,\n proxy,\n className,\n style,\n showENSLabel = true,\n ensInfo,\n showNametag = true,\n nametagInfo,\n } = props;\n\n const { t } = useTranslation();\n const translations = getTranslations();\n const addressLabel = useAddressLabel(value, showAddressLabel);\n\n const text = useMemo(() => {\n const ENSLabel = showENSLabel ? ensInfo?.[value]?.name : undefined;\n const nametag = showNametag ? nametagInfo?.[value]?.nametag : undefined;\n\n // Private name tags > Official tag/name > contract token name > contract tag > contract name > CNS/ENS\n return (\n addressLabel ||\n nametag ||\n alias ||\n ENSLabel ||\n (isFull ? value : shortenAddress(value))\n );\n }, [\n nametagInfo,\n value,\n showNametag,\n addressLabel,\n alias,\n isFull,\n showENSLabel,\n ensInfo,\n ]);\n\n const isInnerContract = value && isInnerContractAddress(value);\n\n const typeText = t(\n isInnerContract\n ? translations.general.internalContract\n : verify\n ? translations.general.verifiedContract\n : translations.general.unverifiedContract,\n );\n\n return (\n <div className=\"inline-flex\">\n {showIcon && (\n <div className={`mr-[2px] flex-shrink-0`}>\n <Tooltip title={typeText}>\n <div className=\"relative w-[16px] h-[16px]\">\n {isInnerContract ? (\n <img\n className=\"w-[16px] h-[16px] align-bottom mb-[5px]\"\n src={InternalContractIcon}\n alt={typeText}\n />\n ) : (\n <>\n <img\n className=\"w-[16px] h-[16px] align-bottom mb-[5px]\"\n src={ContractIcon}\n alt={typeText}\n />\n {verify ? (\n <img\n className=\"w-[8px] h-[8px] absolute bottom-[-1px] right-[1px]\"\n src={VerifiedIcon}\n alt={''}\n />\n ) : (\n <></>\n )}\n </>\n )}\n </div>\n </Tooltip>\n </div>\n )}\n <Tooltip\n title={\n <div className=\"flex flex-col gap-5px\">\n <div>\n {proxy.type}: {value}\n </div>\n {proxy.beaconAddress && <div>Beacon: {proxy.beaconAddress}</div>}\n <div>Impl: {proxy.implAddress}</div>\n </div>\n }\n containerClassName=\"max-w-unset\"\n >\n <Link\n className={cn(\n 'block relative align-bottom cursor-pointer truncate max-w-220px',\n className,\n )}\n href={`/address/${value}`}\n style={style}\n >\n {text}({proxy.type})\n </Link>\n </Tooltip>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,sBAAsB;AAI/B,OAAO,0BAA0B;AACjC,OAAO,kBAAkB;AACzB,OAAO,kBAAkB;AACzB,SAAS,sBAAsB;AAK/B,SAAS,eAAe;AAuFR,SAmBI,UAnBJ,KAMA,YANA;AAnFT,IAAM,uBAAuB,CAClC,UAqBG;AACH,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA,cAAc;AAAA,IACd;AAAA,EACF,IAAI;AAEJ,QAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,QAAM,eAAe,gBAAgB;AACrC,QAAM,eAAe,gBAAgB,OAAO,gBAAgB;AAE5D,QAAM,OAAO,QAAQ,MAAM;AACzB,UAAM,WAAW,eAAe,UAAU,KAAK,GAAG,OAAO;AACzD,UAAM,UAAU,cAAc,cAAc,KAAK,GAAG,UAAU;AAG9D,WACE,gBACA,WACA,SACA,aACC,SAAS,QAAQ,eAAe,KAAK;AAAA,EAE1C,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,kBAAkB,SAAS,uBAAuB,KAAK;AAE7D,QAAM,WAAW;AAAA,IACf,kBACI,aAAa,QAAQ,mBACrB,SACE,aAAa,QAAQ,mBACrB,aAAa,QAAQ;AAAA,EAC7B;AAEA,SACE,qBAAC,SAAI,WAAU,eACZ;AAAA,gBACC,oBAAC,SAAI,WAAW,0BACd,8BAAC,WAAQ,OAAO,UACd,8BAAC,SAAI,WAAU,8BACZ,4BACC;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AAAA;AAAA,IACP,IAEA,iCACE;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,KAAK;AAAA,UACL,KAAK;AAAA;AAAA,MACP;AAAA,MACC,SACC;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,KAAK;AAAA,UACL,KAAK;AAAA;AAAA,MACP,IAEA,gCAAE;AAAA,OAEN,GAEJ,GACF,GACF;AAAA,IAEF;AAAA,MAAC;AAAA;AAAA,QACC,OACE,qBAAC,SAAI,WAAU,yBACb;AAAA,+BAAC,SACE;AAAA,kBAAM;AAAA,YAAK;AAAA,YAAG;AAAA,aACjB;AAAA,UACC,MAAM,iBAAiB,qBAAC,SAAI;AAAA;AAAA,YAAS,MAAM;AAAA,aAAc;AAAA,UAC1D,qBAAC,SAAI;AAAA;AAAA,YAAO,MAAM;AAAA,aAAY;AAAA,WAChC;AAAA,QAEF,oBAAmB;AAAA,QAEnB;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,YACA,MAAM,YAAY;AAAA,YAClB;AAAA,YAEC;AAAA;AAAA,cAAK;AAAA,cAAE,MAAM;AAAA,cAAK;AAAA;AAAA;AAAA,QACrB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -10,11 +10,11 @@ import {
|
|
|
10
10
|
import "../../chunk-TGK5LP2H.js";
|
|
11
11
|
import {
|
|
12
12
|
CoreAddressContainer
|
|
13
|
-
} from "../../chunk-
|
|
13
|
+
} from "../../chunk-5M5ECKFB.js";
|
|
14
14
|
import "../../chunk-BUSBM33B.js";
|
|
15
|
-
import "../../chunk-
|
|
15
|
+
import "../../chunk-JRB53YY7.js";
|
|
16
16
|
import "../../chunk-MWAD4CIG.js";
|
|
17
|
-
import "../../chunk-
|
|
17
|
+
import "../../chunk-7OSADJ6H.js";
|
|
18
18
|
import "../../chunk-CNF26YY7.js";
|
|
19
19
|
import "../../chunk-P4EE3QGM.js";
|
|
20
20
|
import "../../chunk-TOKKKTFG.js";
|
|
@@ -140,7 +140,7 @@ var AddressNameTagContainer = ({
|
|
|
140
140
|
CoreAddressContainer,
|
|
141
141
|
{
|
|
142
142
|
value,
|
|
143
|
-
alias: contractCache[value]?.
|
|
143
|
+
alias: contractCache[value]?.token?.name || contractCache[value]?.contract?.name,
|
|
144
144
|
isFullNameTag: true,
|
|
145
145
|
nametagInfo
|
|
146
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/TransactionAction/coreTransactionAction.tsx"],"sourcesContent":["import React, { useEffect, useCallback } from 'react';\nimport { formatBalance } from '../../utils';\nimport { Link } from '../Link';\nimport {\n decodeData,\n filterByTokenAddress,\n} from '@cfx-kit/dapp-utils/dist/decode-action';\nimport { CoreAddressContainer } from '../AddressContainer/CoreAddressContainer';\nimport { reqNametag, reqContractAndToken } from '../../utils/request';\nimport { useNametagCacheStore } from '../../store';\nimport {\n TransactionActionProps,\n AddressNameTagContainerProps,\n MultiAction,\n} from '@cfx-kit/dapp-utils/dist/decode-action';\n\nimport { TokenIcon, TokenName, TokenSymbol, TokenDecimals } from './constants';\n\nconst Token = (\n address: string,\n customInfo: any,\n tokenType: string,\n tokenExhibit: string[], // icon, name, symbol\n) => {\n const customInfoToken = filterByTokenAddress(customInfo.token || {}, address);\n return customInfoToken && customInfoToken['token'] ? (\n <>\n {tokenExhibit.includes('icon') ? (\n customInfoToken['token']['iconUrl'] ? (\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={customInfoToken['token']['iconUrl']}\n alt=\"icon\"\n />\n ) : (\n <>\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={TokenIcon}\n alt=\"icon\"\n />\n </>\n )\n ) : (\n <></>\n )}\n {tokenExhibit.includes('name') ? (\n <Link href={`/address/${address}`}>\n {customInfoToken['token']['name'] ? (\n `${customInfoToken['token']['name']}`\n ) : (\n <div>{TokenName}</div>\n )}{' '}\n </Link>\n ) : (\n <></>\n )}\n {tokenExhibit.includes('symbol') ? (\n <Link href={`/address/${address}`}>\n {customInfoToken['token']['symbol']\n ? customInfoToken['token']['symbol']\n : TokenSymbol}{' '}\n </Link>\n ) : (\n <></>\n )}\n </>\n ) : (\n <>\n {tokenExhibit.includes('icon') && (\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={TokenIcon}\n alt=\"icon\"\n />\n )}\n {tokenExhibit.includes('name') && <div>{TokenName}</div>}\n {tokenExhibit.includes('symbol') && <div>({TokenSymbol})</div>}\n </>\n );\n};\n\nconst AddressNameTagContainer: React.FC<AddressNameTagContainerProps> = ({\n value,\n}) => {\n const { nametagCache, contractCache, setNametagCache, setContractCache } =\n useNametagCacheStore(state => ({\n nametagCache: state.nametagCache,\n contractCache: state.contractCache,\n setNametagCache: state.setNametagCache,\n setContractCache: state.setContractCache,\n }));\n\n const fetchContractAndToken = useCallback(\n async (address: string) => {\n try {\n const data = (await reqContractAndToken([address]))?.map;\n if (data[address]) {\n setContractCache({ [address]: data[address] });\n }\n } catch (error) {\n console.error(error);\n }\n },\n [setContractCache],\n );\n\n const fetchNameTag = useCallback(\n async (address: string) => {\n try {\n const data = await reqNametag([address]);\n if (data[address]) {\n setNametagCache({ [address]: data[address] });\n }\n } catch (error) {\n console.error(error);\n }\n },\n [setNametagCache],\n );\n\n useEffect(() => {\n if (value && !contractCache[value]) {\n fetchContractAndToken(value);\n }\n\n if (value && !nametagCache[value]) {\n fetchNameTag(value);\n }\n }, [value, fetchContractAndToken, fetchNameTag, nametagCache, contractCache]);\n\n const nametagInfo = {\n [value]: {\n address: value,\n nametag: nametagCache[value]?.nameTag || '',\n },\n };\n\n return (\n <CoreAddressContainer\n value={value}\n alias={\n contractCache[value]?.contract?.name ||\n contractCache[value]?.token?.name\n }\n isFullNameTag={true}\n nametagInfo={nametagInfo}\n />\n );\n};\nconst customUI: MultiAction = {\n ERC20_Transfer: ({ address, toAddress, value, customInfo }) => {\n const customInfoToken = filterByTokenAddress(\n customInfo.token || {},\n address,\n );\n const decimals = customInfoToken?.token?.decimals ?? TokenDecimals;\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer\n <div className=\"font-extrabold\">\n {formatBalance(value, decimals, true)}\n </div>{' '}\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} to{' '}\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n </div>\n );\n },\n ERC20_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC20_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC721_Mint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Transfer: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Burn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_SafeTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked {Token(address, customInfo, 'ERC721', ['icon', 'symbol'])}\n from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC721_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved {Token(address, customInfo, 'ERC721', ['icon', 'symbol'])}\n for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved {Token(address, customInfo, 'ERC1155', ['icon', 'symbol'])}\n for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked {Token(address, customInfo, 'ERC1155', ['icon', 'symbol'])}\n from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Mint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_SafeTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_Burn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_Transfer: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_SafeBatchTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_BatchBurn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_BatchMint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n};\n\nexport const TransactionAction = ({\n transaction,\n event,\n customInfo,\n}: TransactionActionProps) => {\n const res = decodeData(transaction, event, customInfo, customUI);\n\n if (res && res.content && res.content.length > 0) {\n return {\n show: true,\n content: (\n <div className=\"max-h-[119px] overflow-y-auto\">\n {res.content.map((e: any, i) => {\n return <div key={i}>{e}</div>;\n })}\n </div>\n ),\n };\n }\n return {\n show: false,\n content: undefined,\n };\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/TransactionAction/coreTransactionAction.tsx"],"sourcesContent":["import React, { useEffect, useCallback } from 'react';\nimport { formatBalance } from '../../utils';\nimport { Link } from '../Link';\nimport {\n decodeData,\n filterByTokenAddress,\n} from '@cfx-kit/dapp-utils/dist/decode-action';\nimport { CoreAddressContainer } from '../AddressContainer/CoreAddressContainer';\nimport { reqNametag, reqContractAndToken } from '../../utils/request';\nimport { useNametagCacheStore } from '../../store';\nimport {\n TransactionActionProps,\n AddressNameTagContainerProps,\n MultiAction,\n} from '@cfx-kit/dapp-utils/dist/decode-action';\n\nimport { TokenIcon, TokenName, TokenSymbol, TokenDecimals } from './constants';\n\nconst Token = (\n address: string,\n customInfo: any,\n tokenType: string,\n tokenExhibit: string[], // icon, name, symbol\n) => {\n const customInfoToken = filterByTokenAddress(customInfo.token || {}, address);\n return customInfoToken && customInfoToken['token'] ? (\n <>\n {tokenExhibit.includes('icon') ? (\n customInfoToken['token']['iconUrl'] ? (\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={customInfoToken['token']['iconUrl']}\n alt=\"icon\"\n />\n ) : (\n <>\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={TokenIcon}\n alt=\"icon\"\n />\n </>\n )\n ) : (\n <></>\n )}\n {tokenExhibit.includes('name') ? (\n <Link href={`/address/${address}`}>\n {customInfoToken['token']['name'] ? (\n `${customInfoToken['token']['name']}`\n ) : (\n <div>{TokenName}</div>\n )}{' '}\n </Link>\n ) : (\n <></>\n )}\n {tokenExhibit.includes('symbol') ? (\n <Link href={`/address/${address}`}>\n {customInfoToken['token']['symbol']\n ? customInfoToken['token']['symbol']\n : TokenSymbol}{' '}\n </Link>\n ) : (\n <></>\n )}\n </>\n ) : (\n <>\n {tokenExhibit.includes('icon') && (\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={TokenIcon}\n alt=\"icon\"\n />\n )}\n {tokenExhibit.includes('name') && <div>{TokenName}</div>}\n {tokenExhibit.includes('symbol') && <div>({TokenSymbol})</div>}\n </>\n );\n};\n\nconst AddressNameTagContainer: React.FC<AddressNameTagContainerProps> = ({\n value,\n}) => {\n const { nametagCache, contractCache, setNametagCache, setContractCache } =\n useNametagCacheStore(state => ({\n nametagCache: state.nametagCache,\n contractCache: state.contractCache,\n setNametagCache: state.setNametagCache,\n setContractCache: state.setContractCache,\n }));\n\n const fetchContractAndToken = useCallback(\n async (address: string) => {\n try {\n const data = (await reqContractAndToken([address]))?.map;\n if (data[address]) {\n setContractCache({ [address]: data[address] });\n }\n } catch (error) {\n console.error(error);\n }\n },\n [setContractCache],\n );\n\n const fetchNameTag = useCallback(\n async (address: string) => {\n try {\n const data = await reqNametag([address]);\n if (data[address]) {\n setNametagCache({ [address]: data[address] });\n }\n } catch (error) {\n console.error(error);\n }\n },\n [setNametagCache],\n );\n\n useEffect(() => {\n if (value && !contractCache[value]) {\n fetchContractAndToken(value);\n }\n\n if (value && !nametagCache[value]) {\n fetchNameTag(value);\n }\n }, [value, fetchContractAndToken, fetchNameTag, nametagCache, contractCache]);\n\n const nametagInfo = {\n [value]: {\n address: value,\n nametag: nametagCache[value]?.nameTag || '',\n },\n };\n\n return (\n <CoreAddressContainer\n value={value}\n alias={\n contractCache[value]?.token?.name ||\n contractCache[value]?.contract?.name\n }\n isFullNameTag={true}\n nametagInfo={nametagInfo}\n />\n );\n};\nconst customUI: MultiAction = {\n ERC20_Transfer: ({ address, toAddress, value, customInfo }) => {\n const customInfoToken = filterByTokenAddress(\n customInfo.token || {},\n address,\n );\n const decimals = customInfoToken?.token?.decimals ?? TokenDecimals;\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer\n <div className=\"font-extrabold\">\n {formatBalance(value, decimals, true)}\n </div>{' '}\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} to{' '}\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n </div>\n );\n },\n ERC20_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC20_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC721_Mint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Transfer: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Burn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_SafeTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked {Token(address, customInfo, 'ERC721', ['icon', 'symbol'])}\n from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC721_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved {Token(address, customInfo, 'ERC721', ['icon', 'symbol'])}\n for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved {Token(address, customInfo, 'ERC1155', ['icon', 'symbol'])}\n for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked {Token(address, customInfo, 'ERC1155', ['icon', 'symbol'])}\n from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={toAddress} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Mint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_SafeTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_Burn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_Transfer: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_SafeBatchTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_BatchBurn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_BatchMint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n};\n\nexport const TransactionAction = ({\n transaction,\n event,\n customInfo,\n}: TransactionActionProps) => {\n const res = decodeData(transaction, event, customInfo, customUI);\n\n if (res && res.content && res.content.length > 0) {\n return {\n show: true,\n content: (\n <div className=\"max-h-[119px] overflow-y-auto\">\n {res.content.map((e: any, i) => {\n return <div key={i}>{e}</div>;\n })}\n </div>\n ),\n };\n }\n return {\n show: false,\n content: undefined,\n };\n};\n"],"mappings":"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","names":[]}
|
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
import "../../chunk-TGK5LP2H.js";
|
|
11
11
|
import {
|
|
12
12
|
EVMAddressContainer
|
|
13
|
-
} from "../../chunk-
|
|
14
|
-
import "../../chunk-
|
|
13
|
+
} from "../../chunk-5CDCNIBM.js";
|
|
14
|
+
import "../../chunk-JRB53YY7.js";
|
|
15
15
|
import "../../chunk-MWAD4CIG.js";
|
|
16
|
-
import "../../chunk-
|
|
16
|
+
import "../../chunk-7OSADJ6H.js";
|
|
17
17
|
import {
|
|
18
18
|
formatAddress
|
|
19
19
|
} from "../../chunk-CNF26YY7.js";
|
|
@@ -151,7 +151,7 @@ var AddressNameTagContainer = ({
|
|
|
151
151
|
EVMAddressContainer,
|
|
152
152
|
{
|
|
153
153
|
value,
|
|
154
|
-
alias: contractCache[value]?.
|
|
154
|
+
alias: contractCache[value]?.token?.name || contractCache[value]?.contract?.name,
|
|
155
155
|
isFullNameTag: true,
|
|
156
156
|
nametagInfo
|
|
157
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/TransactionAction/evmTransactionAction.tsx"],"sourcesContent":["import React, { useEffect, useCallback } from 'react';\nimport { formatBalance } from '../../utils';\nimport { formatAddress } from '../../utils/address';\nimport { Link } from '../Link';\nimport {\n decodeData,\n filterByTokenAddress,\n} from '@cfx-kit/dapp-utils/dist/decode-action';\nimport { EVMAddressContainer } from '../AddressContainer/EVMAddressContainer';\nimport { reqNametag, reqContractAndToken } from '../../utils/request';\nimport { useNametagCacheStore } from '../../store';\nimport type {\n TransactionActionProps,\n AddressNameTagContainerProps,\n MultiAction,\n} from '@cfx-kit/dapp-utils/dist/decode-action';\nimport { TokenIcon, TokenName, TokenSymbol, TokenDecimals } from './constants';\n\nconst Token = (\n address: string,\n customInfo: any,\n tokenType: string,\n tokenExhibit: string[], // icon, name, symbol\n) => {\n const customInfoToken = filterByTokenAddress(customInfo.token || {}, address);\n return customInfoToken && customInfoToken['token'] ? (\n <>\n {tokenExhibit.includes('icon') ? (\n customInfoToken['token']['iconUrl'] ? (\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={customInfoToken['token']['iconUrl']}\n alt=\"icon\"\n />\n ) : (\n <>\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={TokenIcon}\n alt=\"icon\"\n />\n </>\n )\n ) : (\n <></>\n )}\n {tokenExhibit.includes('name') ? (\n <Link href={`/address/${formatAddress(address, 'hex')}`}>\n {customInfoToken['token']['name'] ? (\n `${customInfoToken['token']['name']}`\n ) : (\n <div>{TokenName}</div>\n )}{' '}\n </Link>\n ) : (\n <></>\n )}\n {tokenExhibit.includes('symbol') ? (\n <Link href={`/address/${formatAddress(address, 'hex')}`}>\n {customInfoToken['token']['symbol']\n ? customInfoToken['token']['symbol']\n : TokenSymbol}{' '}\n </Link>\n ) : (\n <></>\n )}\n </>\n ) : (\n <>\n {tokenExhibit.includes('icon') && (\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={TokenIcon}\n alt=\"icon\"\n />\n )}\n {tokenExhibit.includes('name') && <div>{TokenName}</div>}\n {tokenExhibit.includes('symbol') && <div>({TokenSymbol})</div>}\n </>\n );\n};\n\n// TODO: When the evm api is changed to hex address, it can be deleted.\nconst convertMapKeysToHex = (\n data: Record<string, any>,\n): Record<string, any> => {\n const newMap: Record<string, any> = {};\n for (const [key, value] of Object.entries(data)) {\n const newKey = formatAddress(key, 'hex');\n newMap[newKey] = value;\n }\n return newMap;\n};\n\nconst AddressNameTagContainer: React.FC<AddressNameTagContainerProps> = ({\n value,\n}) => {\n const { nametagCache, contractCache, setNametagCache, setContractCache } =\n useNametagCacheStore(state => ({\n nametagCache: state.nametagCache,\n contractCache: state.contractCache,\n setNametagCache: state.setNametagCache,\n setContractCache: state.setContractCache,\n }));\n\n const fetchContractAndToken = useCallback(\n async (address: string) => {\n try {\n const data = (await reqContractAndToken([address]))?.map;\n const dataToHex = convertMapKeysToHex(data);\n if (dataToHex[address]) {\n setContractCache({ [address]: dataToHex[address] });\n }\n } catch (error) {\n console.error(error);\n }\n },\n [setContractCache],\n );\n\n const fetchNameTag = useCallback(\n async (address: string) => {\n try {\n const data = await reqNametag([address]);\n const dataToHex = convertMapKeysToHex(data);\n if (dataToHex[address]) {\n setNametagCache({ [address]: dataToHex[address] });\n }\n } catch (error) {\n console.error(error);\n }\n },\n [setNametagCache],\n );\n\n useEffect(() => {\n if (value && !contractCache[value]) {\n fetchContractAndToken(value);\n }\n\n if (value && !nametagCache[value]) {\n fetchNameTag(value);\n }\n }, [value, fetchContractAndToken, fetchNameTag, nametagCache, contractCache]);\n\n const nametagInfo = {\n [value]: {\n address: value,\n nametag: nametagCache[value]?.nameTag || '',\n },\n };\n\n return (\n <EVMAddressContainer\n value={value}\n alias={\n contractCache[value]?.contract?.name ||\n contractCache[value]?.token?.name\n }\n isFullNameTag={true}\n nametagInfo={nametagInfo}\n />\n );\n};\nconst customUI: MultiAction = {\n ERC20_Transfer: ({ address, toAddress, value, customInfo }) => {\n const customInfoToken = filterByTokenAddress(\n customInfo.token || {},\n address,\n );\n const decimals = customInfoToken?.token?.decimals ?? TokenDecimals;\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer\n <div className=\"font-extrabold\">\n {formatBalance(value, decimals, true)}\n </div>{' '}\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} to{' '}\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n </div>\n );\n },\n ERC20_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC20_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC721_Mint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Transfer: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Burn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_SafeTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked {Token(address, customInfo, 'ERC721', ['icon', 'symbol'])}\n from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC721_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved {Token(address, customInfo, 'ERC721', ['icon', 'symbol'])}\n for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved {Token(address, customInfo, 'ERC1155', ['icon', 'symbol'])}\n for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked {Token(address, customInfo, 'ERC1155', ['icon', 'symbol'])}\n from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Mint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_SafeTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_Burn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_Transfer: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_SafeBatchTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_BatchBurn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_BatchMint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n};\n\nexport const TransactionAction = ({\n transaction,\n event,\n customInfo,\n}: TransactionActionProps) => {\n const res = decodeData(transaction, event, customInfo, customUI);\n if (res && res.content && res.content.length > 0) {\n return {\n show: true,\n content: (\n <div className=\"max-h-[119px] overflow-y-auto\">\n {res.content.map((e: any, i) => {\n return <div key={i}>{e}</div>;\n })}\n </div>\n ),\n };\n }\n return {\n show: false,\n content: undefined,\n };\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/TransactionAction/evmTransactionAction.tsx"],"sourcesContent":["import React, { useEffect, useCallback } from 'react';\nimport { formatBalance } from '../../utils';\nimport { formatAddress } from '../../utils/address';\nimport { Link } from '../Link';\nimport {\n decodeData,\n filterByTokenAddress,\n} from '@cfx-kit/dapp-utils/dist/decode-action';\nimport { EVMAddressContainer } from '../AddressContainer/EVMAddressContainer';\nimport { reqNametag, reqContractAndToken } from '../../utils/request';\nimport { useNametagCacheStore } from '../../store';\nimport type {\n TransactionActionProps,\n AddressNameTagContainerProps,\n MultiAction,\n} from '@cfx-kit/dapp-utils/dist/decode-action';\nimport { TokenIcon, TokenName, TokenSymbol, TokenDecimals } from './constants';\n\nconst Token = (\n address: string,\n customInfo: any,\n tokenType: string,\n tokenExhibit: string[], // icon, name, symbol\n) => {\n const customInfoToken = filterByTokenAddress(customInfo.token || {}, address);\n return customInfoToken && customInfoToken['token'] ? (\n <>\n {tokenExhibit.includes('icon') ? (\n customInfoToken['token']['iconUrl'] ? (\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={customInfoToken['token']['iconUrl']}\n alt=\"icon\"\n />\n ) : (\n <>\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={TokenIcon}\n alt=\"icon\"\n />\n </>\n )\n ) : (\n <></>\n )}\n {tokenExhibit.includes('name') ? (\n <Link href={`/address/${formatAddress(address, 'hex')}`}>\n {customInfoToken['token']['name'] ? (\n `${customInfoToken['token']['name']}`\n ) : (\n <div>{TokenName}</div>\n )}{' '}\n </Link>\n ) : (\n <></>\n )}\n {tokenExhibit.includes('symbol') ? (\n <Link href={`/address/${formatAddress(address, 'hex')}`}>\n {customInfoToken['token']['symbol']\n ? customInfoToken['token']['symbol']\n : TokenSymbol}{' '}\n </Link>\n ) : (\n <></>\n )}\n </>\n ) : (\n <>\n {tokenExhibit.includes('icon') && (\n <img\n className=\"w-[16px] h-[16px] mt-[2px]\"\n src={TokenIcon}\n alt=\"icon\"\n />\n )}\n {tokenExhibit.includes('name') && <div>{TokenName}</div>}\n {tokenExhibit.includes('symbol') && <div>({TokenSymbol})</div>}\n </>\n );\n};\n\n// TODO: When the evm api is changed to hex address, it can be deleted.\nconst convertMapKeysToHex = (\n data: Record<string, any>,\n): Record<string, any> => {\n const newMap: Record<string, any> = {};\n for (const [key, value] of Object.entries(data)) {\n const newKey = formatAddress(key, 'hex');\n newMap[newKey] = value;\n }\n return newMap;\n};\n\nconst AddressNameTagContainer: React.FC<AddressNameTagContainerProps> = ({\n value,\n}) => {\n const { nametagCache, contractCache, setNametagCache, setContractCache } =\n useNametagCacheStore(state => ({\n nametagCache: state.nametagCache,\n contractCache: state.contractCache,\n setNametagCache: state.setNametagCache,\n setContractCache: state.setContractCache,\n }));\n\n const fetchContractAndToken = useCallback(\n async (address: string) => {\n try {\n const data = (await reqContractAndToken([address]))?.map;\n const dataToHex = convertMapKeysToHex(data);\n if (dataToHex[address]) {\n setContractCache({ [address]: dataToHex[address] });\n }\n } catch (error) {\n console.error(error);\n }\n },\n [setContractCache],\n );\n\n const fetchNameTag = useCallback(\n async (address: string) => {\n try {\n const data = await reqNametag([address]);\n const dataToHex = convertMapKeysToHex(data);\n if (dataToHex[address]) {\n setNametagCache({ [address]: dataToHex[address] });\n }\n } catch (error) {\n console.error(error);\n }\n },\n [setNametagCache],\n );\n\n useEffect(() => {\n if (value && !contractCache[value]) {\n fetchContractAndToken(value);\n }\n\n if (value && !nametagCache[value]) {\n fetchNameTag(value);\n }\n }, [value, fetchContractAndToken, fetchNameTag, nametagCache, contractCache]);\n\n const nametagInfo = {\n [value]: {\n address: value,\n nametag: nametagCache[value]?.nameTag || '',\n },\n };\n\n return (\n <EVMAddressContainer\n value={value}\n alias={\n contractCache[value]?.token?.name ||\n contractCache[value]?.contract?.name\n }\n isFullNameTag={true}\n nametagInfo={nametagInfo}\n />\n );\n};\nconst customUI: MultiAction = {\n ERC20_Transfer: ({ address, toAddress, value, customInfo }) => {\n const customInfoToken = filterByTokenAddress(\n customInfo.token || {},\n address,\n );\n const decimals = customInfoToken?.token?.decimals ?? TokenDecimals;\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer\n <div className=\"font-extrabold\">\n {formatBalance(value, decimals, true)}\n </div>{' '}\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} to{' '}\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n </div>\n );\n },\n ERC20_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC20_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked\n {Token(address, customInfo, 'ERC20', ['icon', 'symbol'])} from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC721_Mint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Transfer: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Burn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_SafeTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC721', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC721_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked {Token(address, customInfo, 'ERC721', ['icon', 'symbol'])}\n from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC721_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved {Token(address, customInfo, 'ERC721', ['icon', 'symbol'])}\n for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Approved: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Approved {Token(address, customInfo, 'ERC1155', ['icon', 'symbol'])}\n for\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Revoked: ({ address, toAddress, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Revoked {Token(address, customInfo, 'ERC1155', ['icon', 'symbol'])}\n from\n {toAddress && (\n <Link href={`/address/${toAddress}`}>\n <AddressNameTagContainer value={formatAddress(toAddress, 'hex')} />\n </Link>\n )}\n </div>\n );\n },\n ERC1155_Mint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_SafeTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_Burn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_Transfer: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_SafeBatchTransferFrom: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Transfer <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_BatchBurn: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Burn <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n ERC1155_BatchMint: ({ value, address, customInfo }) => {\n return (\n <div className=\"flex flex-wrap content-center gap-[5px]\">\n Mint <div className=\"font-extrabold\">{value}</div> of{' '}\n {Token(address, customInfo, 'ERC1155', ['icon', 'name', 'symbol'])}\n </div>\n );\n },\n};\n\nexport const TransactionAction = ({\n transaction,\n event,\n customInfo,\n}: TransactionActionProps) => {\n const res = decodeData(transaction, event, customInfo, customUI);\n if (res && res.content && res.content.length > 0) {\n return {\n show: true,\n content: (\n <div className=\"max-h-[119px] overflow-y-auto\">\n {res.content.map((e: any, i) => {\n return <div key={i}>{e}</div>;\n })}\n </div>\n ),\n };\n }\n return {\n show: false,\n content: undefined,\n };\n};\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cfxjs/sirius-next-common",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.16",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**"
|
|
@@ -78,9 +78,9 @@
|
|
|
78
78
|
"typescript": "^5.4.2",
|
|
79
79
|
"unocss": "0.58.6",
|
|
80
80
|
"vitest": "3.2.3",
|
|
81
|
-
"@cfxjs/sirius-next-
|
|
81
|
+
"@cfxjs/sirius-next-typescript-config": "0.0.0",
|
|
82
82
|
"@cfxjs/sirius-next-i18n": "0.2.9",
|
|
83
|
-
"@cfxjs/sirius-next-
|
|
83
|
+
"@cfxjs/sirius-next-eslint-config": "0.0.0"
|
|
84
84
|
},
|
|
85
85
|
"publishConfig": {
|
|
86
86
|
"access": "public"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/AddressContainer/addressView.tsx"],"sourcesContent":["import { Translation } from 'react-i18next';\nimport { Text } from '../Text';\nimport { convertCheckSum } from '../../utils/address';\nimport { getTranslations } from '../../store';\nimport { TooltipContent, RenderAddressProps } from './types';\nimport { shortenAddress } from '@cfx-kit/dapp-utils/dist/address';\n\nconst defaultPCMaxWidth = 138;\n\n// common\nconst renderTooltipContent = (tooltipContent: TooltipContent) => {\n return Object.entries(tooltipContent)\n .map(([key, { label, value, hideLabel }]) => {\n if (value) {\n return (\n <div key={key}>\n {!hideLabel && (\n <span>\n <Translation>{t => t(label)}</Translation>\n </span>\n )}\n {value}\n </div>\n );\n }\n return null;\n })\n .filter(Boolean);\n};\n\n// common\nconst convertLink = ({\n link,\n type,\n hrefAddress,\n cfxAddress,\n}: RenderAddressProps) => {\n if (typeof link === 'string') {\n return link;\n }\n if (link === false) {\n return false;\n }\n\n const address = hrefAddress || cfxAddress;\n\n if (address && typeof address === 'string') {\n const pathname = window.location.pathname.toLowerCase();\n const addressLower = address.toLowerCase();\n if (pathname.includes('/address/' + addressLower)) {\n return false;\n }\n\n if (type === 'pow') {\n return `/address/${address}`;\n }\n\n if (type === 'pos') {\n return `/pos/accounts/${address}`;\n }\n }\n\n return false;\n};\n\n// common\nexport const RenderAddress = ({\n cfxAddress,\n alias,\n hoverValue,\n hrefAddress,\n content,\n link = '',\n isFull = false,\n isFullNameTag = false,\n style = {},\n maxWidth,\n prefix = null,\n ENSIcon = null,\n suffix = null,\n type = 'pow',\n addressLabel = '',\n ENSLabel = '',\n nametag = '',\n hideAliasPrefixInHover = false,\n}: RenderAddressProps) => {\n const translations = getTranslations();\n\n // Private name tags >Official tag/name>contract token name > contract tag > contract name>CNS/ENS\n const name = addressLabel || content || nametag || alias || ENSLabel;\n const isShowEns = !!ENSLabel && name === ENSLabel;\n\n const defaultStyle = {\n maxWidth: `${(name && isFullNameTag) || isFull ? 'auto' : (maxWidth || defaultPCMaxWidth) + 'px'}`,\n };\n\n const href = convertLink({ link, type, hrefAddress, cfxAddress });\n\n const Wrapper = href ? 'a' : 'div';\n\n const tooltipContent: TooltipContent = {\n ENSLabel: {\n label: (translations as any)?.ens?.tip,\n value: ENSLabel,\n },\n nametag: {\n label: translations?.nametag?.tip,\n value: nametag,\n },\n addressLabel: {\n label: translations?.profile.address.myNameTag,\n value: addressLabel,\n },\n alias: {\n label: translations?.profile.address.publicNameTag,\n value: alias,\n hideLabel: hideAliasPrefixInHover,\n },\n };\n\n const checksumAddress = convertCheckSum(cfxAddress);\n\n const cfxAddressLabel =\n typeof cfxAddress === 'string' && !isFull\n ? shortenAddress(checksumAddress!)\n : checksumAddress;\n\n return (\n <div className=\"inline-flex\">\n {prefix || (isShowEns ? ENSIcon : null)}\n <Text\n tag=\"span\"\n hoverValue={\n <>\n {renderTooltipContent(tooltipContent)}\n <div>{hoverValue || checksumAddress}</div>\n </>\n }\n >\n <Wrapper\n className=\"block relative align-bottom cursor-default truncate\"\n style={{ ...defaultStyle, ...style }}\n {...(href ? { href: String(href) } : {})}\n >\n {name || cfxAddressLabel}\n </Wrapper>\n </Text>\n {suffix}\n </div>\n );\n};\n"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|