@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.
@@ -3,10 +3,10 @@ import {
3
3
  ContractCreatedAddress,
4
4
  InvalidAddress,
5
5
  MyAddress
6
- } from "./chunk-WSDJ3XJ2.js";
6
+ } from "./chunk-JRB53YY7.js";
7
7
  import {
8
8
  RenderAddress
9
- } from "./chunk-HJNIYZ62.js";
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-ARQH6VQ4.js.map
108
+ //# sourceMappingURL=chunk-5CDCNIBM.js.map
@@ -8,10 +8,10 @@ import {
8
8
  InvalidAddress,
9
9
  MyAddress,
10
10
  PosAddress
11
- } from "./chunk-WSDJ3XJ2.js";
11
+ } from "./chunk-JRB53YY7.js";
12
12
  import {
13
13
  RenderAddress
14
- } from "./chunk-HJNIYZ62.js";
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-IDGNYTHY.js.map
141
+ //# sourceMappingURL=chunk-5M5ECKFB.js.map
@@ -129,4 +129,4 @@ var RenderAddress = ({
129
129
  export {
130
130
  RenderAddress
131
131
  };
132
- //# sourceMappingURL=chunk-HJNIYZ62.js.map
132
+ //# sourceMappingURL=chunk-7OSADJ6H.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-HJNIYZ62.js";
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-WSDJ3XJ2.js.map
208
+ //# sourceMappingURL=chunk-JRB53YY7.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  CoreAddressContainer
3
- } from "../../chunk-IDGNYTHY.js";
3
+ } from "../../chunk-5M5ECKFB.js";
4
4
  import "../../chunk-BUSBM33B.js";
5
- import "../../chunk-WSDJ3XJ2.js";
5
+ import "../../chunk-JRB53YY7.js";
6
6
  import "../../chunk-MWAD4CIG.js";
7
- import "../../chunk-HJNIYZ62.js";
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-ARQH6VQ4.js";
4
- import "../../chunk-WSDJ3XJ2.js";
3
+ } from "../../chunk-5CDCNIBM.js";
4
+ import "../../chunk-JRB53YY7.js";
5
5
  import "../../chunk-MWAD4CIG.js";
6
- import "../../chunk-HJNIYZ62.js";
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-WSDJ3XJ2.js";
8
+ } from "../../chunk-JRB53YY7.js";
9
9
  import "../../chunk-MWAD4CIG.js";
10
- import "../../chunk-HJNIYZ62.js";
10
+ import "../../chunk-7OSADJ6H.js";
11
11
  import "../../chunk-CNF26YY7.js";
12
12
  import "../../chunk-P4EE3QGM.js";
13
13
  import "../../chunk-TOKKKTFG.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RenderAddress
3
- } from "../../chunk-HJNIYZ62.js";
3
+ } from "../../chunk-7OSADJ6H.js";
4
4
  import "../../chunk-CNF26YY7.js";
5
5
  import "../../chunk-P4EE3QGM.js";
6
6
  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
- address,
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(address, showAddressLabel);
46
- const text = addressLabel || alias || (isFull ? address : shortenAddress(address));
47
- const isInnerContract = address && isInnerContractAddress(address);
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
- address
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
- "a",
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/${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: {\n address: string;\n alias?: string;\n isFull?: boolean;\n verify?: boolean;\n showIcon?: boolean;\n showAddressLabel?: boolean;\n proxy: {\n type: ProxyType;\n implAddress: string;\n beaconAddress?: string;\n };\n style?: React.CSSProperties;\n className?: string;\n}) => {\n const {\n showIcon = true,\n showAddressLabel = true,\n verify,\n address,\n alias,\n isFull = false,\n proxy,\n className,\n style,\n } = props;\n\n const { t } = useTranslation();\n const translations = getTranslations();\n const addressLabel = useAddressLabel(address, showAddressLabel);\n const text =\n addressLabel || alias || (isFull ? address : shortenAddress(address));\n\n const isInnerContract = address && isInnerContractAddress(address);\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}: {address}\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 <a\n className={cn(\n 'block relative align-bottom cursor-pointer truncate max-w-220px',\n className,\n )}\n href={`/address/${address}`}\n style={style}\n >\n {text}({proxy.type})\n </a>\n </Tooltip>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,sBAAsB;AAI/B,OAAO,0BAA0B;AACjC,OAAO,kBAAkB;AACzB,OAAO,kBAAkB;AACzB,SAAS,sBAAsB;AAuDf,SAmBI,UAnBJ,KAMA,YANA;AAlDT,IAAM,uBAAuB,CAAC,UAc/B;AACJ,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,QAAM,eAAe,gBAAgB;AACrC,QAAM,eAAe,gBAAgB,SAAS,gBAAgB;AAC9D,QAAM,OACJ,gBAAgB,UAAU,SAAS,UAAU,eAAe,OAAO;AAErE,QAAM,kBAAkB,WAAW,uBAAuB,OAAO;AAEjE,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":[]}
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-IDGNYTHY.js";
13
+ } from "../../chunk-5M5ECKFB.js";
14
14
  import "../../chunk-BUSBM33B.js";
15
- import "../../chunk-WSDJ3XJ2.js";
15
+ import "../../chunk-JRB53YY7.js";
16
16
  import "../../chunk-MWAD4CIG.js";
17
- import "../../chunk-HJNIYZ62.js";
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]?.contract?.name || contractCache[value]?.token?.name,
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-ARQH6VQ4.js";
14
- import "../../chunk-WSDJ3XJ2.js";
13
+ } from "../../chunk-5CDCNIBM.js";
14
+ import "../../chunk-JRB53YY7.js";
15
15
  import "../../chunk-MWAD4CIG.js";
16
- import "../../chunk-HJNIYZ62.js";
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]?.contract?.name || contractCache[value]?.token?.name,
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.15",
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-eslint-config": "0.0.0",
81
+ "@cfxjs/sirius-next-typescript-config": "0.0.0",
82
82
  "@cfxjs/sirius-next-i18n": "0.2.9",
83
- "@cfxjs/sirius-next-typescript-config": "0.0.0"
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":[]}