@vechain/vechain-kit 1.5.6 → 1.5.8

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/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { IVechainEnergyOracleV1__factory, IB3TR__factory, IVOT3__factory, GalaxyMember__factory, NodeManagement__factory, X2EarnApps__factory, XAllocationVoting__factory, XAllocationVotingGovernor__factory, XAllocationPool__factory, VoterRewards__factory, VeBetterPassport__factory, IERC20__factory, MockENS__factory, SubdomainClaimer__factory, IReverseRegistrar__factory, ERC20__factory, SimpleAccountFactory__factory, SimpleAccount__factory, Emissions__factory, X2EarnRewardsPool__factory } from './chunk-FOSPSOWT.js';
2
- import { getConfig, humanNumber, NodeStrengthLevelToImage, allNodeStrengthLevelToName, notFoundImage, convertUriToUrl, resolveMediaTypeFromMimeType, gmNfts, humanAddress, getPicassoImage, VECHAIN_PRIVY_APP_ID, compareAddresses, isValidAddress, TOKEN_LOGO_COMPONENTS, TOKEN_LOGOS, humanDomain, uploadBlobToIPFS, randomTransactionUser } from './chunk-EUQRNI5E.js';
3
- export { getConfig } from './chunk-EUQRNI5E.js';
4
- import { SimpleAccountFactoryABI, VechainLogo, VechainLogoLight, VechainLogoDark, PrivyLogo, SimpleAccountABI } from './chunk-DYI6ON4O.js';
2
+ import { getConfig, humanNumber, NodeStrengthLevelToImage, allNodeStrengthLevelToName, notFoundImage, convertUriToUrl, resolveMediaTypeFromMimeType, gmNfts, DEFAULT_PRIVY_ECOSYSTEM_APPS, humanAddress, getPicassoImage, VECHAIN_PRIVY_APP_ID, compareAddresses, isValidAddress, TOKEN_LOGO_COMPONENTS, TOKEN_LOGOS, humanDomain, uploadBlobToIPFS, randomTransactionUser } from './chunk-USAHFGIQ.js';
3
+ export { getConfig } from './chunk-USAHFGIQ.js';
4
+ import { SimpleAccountFactoryABI, VechainLogo, VechainLogoLight, VechainLogoDark, VechainEnergy, PrivyLogo, SimpleAccountABI } from './chunk-3CI2FPCB.js';
5
5
  import './chunk-PZ5AY32C.js';
6
6
  import React10, { createContext, useState, useEffect, useMemo, useCallback, useRef, useContext } from 'react';
7
- import { useLoginWithOAuth, usePrivy, useLoginWithEmail, useMfaEnrollment, useLoginWithPasskey as useLoginWithPasskey$1, PrivyProvider } from '@privy-io/react-auth';
8
- export { useMfaEnrollment, usePrivy } from '@privy-io/react-auth';
7
+ import { useLoginWithOAuth, usePrivy, useLoginWithEmail, useMfaEnrollment, useSetWalletRecovery, useLoginWithPasskey as useLoginWithPasskey$1, PrivyProvider } from '@privy-io/react-auth';
8
+ export { useMfaEnrollment, usePrivy, useSetWalletRecovery } from '@privy-io/react-auth';
9
9
  import { useConnex, useWallet as useWallet$1, useWalletModal, useVechainDomain as useVechainDomain$1, DAppKitProvider } from '@vechain/dapp-kit-react';
10
10
  export { WalletButton as DAppKitWalletButton, useConnex, useWallet as useDAppKitWallet, useWalletModal as useDAppKitWalletModal } from '@vechain/dapp-kit-react';
11
11
  import { defineChain, formatEther, parseEther, zeroAddress, keccak256, toBytes, concat, encodeFunctionData } from 'viem';
@@ -17,19 +17,19 @@ import { initReactI18next, useTranslation } from 'react-i18next';
17
17
  import { abi, Transaction } from 'thor-devkit';
18
18
  import imageCompression from 'browser-image-compression';
19
19
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
20
- import { Interface, formatEther as formatEther$1, isAddress, namehash, ZeroAddress, parseEther as parseEther$1, ethers } from 'ethers';
20
+ import { Interface, formatEther as formatEther$1, isAddress, namehash, toUtf8String, zeroPadValue, toBeHex, ZeroAddress, parseEther as parseEther$1, ethers } from 'ethers';
21
21
  import { z } from 'zod';
22
22
  import { useAccount, createConfig, http, WagmiProvider, useConnect, useSignTypedData, useSignMessage, useDisconnect } from 'wagmi';
23
23
  import { toPrivyWalletConnector } from '@privy-io/cross-app-connect/rainbow-kit';
24
24
  import { isMobile } from 'react-device-detect';
25
- import { createMultiStyleConfigHelpers, defineStyle, defineStyleConfig, extendTheme, createStandaloneToast, IconButton, VStack, Text, InputGroup, InputLeftElement, Icon, Input, InputRightElement, HStack, Link, Box, useMediaQuery, Modal, ModalOverlay, ModalContent, Button, Image, Skeleton, Spinner, useDisclosure, GridItem, ModalHeader, ModalCloseButton, ModalBody, ModalFooter, Tag, useColorMode, Heading, useColorModeValue, Tabs, TabList, Tab, TabPanels, TabPanel, Grid, Card, CardBody, Alert, AlertIcon, Divider, FormControl, Center, Container, Select, FormLabel, Textarea, Circle, AlertTitle, AlertDescription, Popover, PopoverTrigger, PopoverContent, PopoverBody, CardFooter, PinInput, PinInputField, Stack, Accordion, AccordionItem, AccordionButton, AccordionPanel, List, ListItem, ChakraProvider, ColorModeScript, Flex } from '@chakra-ui/react';
25
+ import { createMultiStyleConfigHelpers, defineStyle, defineStyleConfig, extendTheme, createStandaloneToast, IconButton, VStack, Text, InputGroup, InputLeftElement, Icon, Input, InputRightElement, HStack, Link, Box, useMediaQuery, Modal, ModalOverlay, ModalContent, Button, Image, Skeleton, Spinner, useDisclosure, GridItem, ModalHeader, ModalCloseButton, ModalBody, ModalFooter, Tag, Heading, useColorModeValue, Tabs, TabList, Tab, TabPanels, TabPanel, Grid, Card, CardBody, Alert, AlertIcon, CardHeader, Center, CardFooter, Divider, Container, FormControl, Select, FormLabel, Textarea, Circle, AlertTitle, AlertDescription, Popover, PopoverTrigger, PopoverContent, PopoverBody, PinInput, PinInputField, Stack, Accordion, AccordionItem, AccordionButton, AccordionPanel, List, ChakraProvider, ColorModeScript, ListItem, Flex } from '@chakra-ui/react';
26
26
  import { motion } from 'framer-motion';
27
- import { IoChevronBack, IoCheckmarkOutline, IoCopyOutline, IoWalletOutline, IoCloseCircle, IoShieldOutline, IoOpenOutline, IoTrashBin, IoChevronUp, IoChevronDown, IoCloseOutline } from 'react-icons/io5';
27
+ import { IoChevronBack, IoCheckmarkOutline, IoCopyOutline, IoWalletOutline, IoCloseCircle, IoCogSharp, IoShieldOutline, IoOpenOutline, IoTrashBin, IoChevronUp, IoChevronDown, IoCloseOutline } from 'react-icons/io5';
28
28
  import { FaRegAddressCard, FaExternalLinkAlt, FaGlobe, FaEnvelope, FaArrowRight, FaTelegramPlane, FaChevronDown, FaEdit, FaGoogle, FaTwitter, FaPhone, FaSpotify, FaApple, FaInstagram, FaTiktok, FaGithub, FaLinkedin, FaTelegram, FaDiscord as FaDiscord$1, FaWallet, FaPlus } from 'react-icons/fa';
29
29
  import { HiOutlineWallet, HiOutlineShieldCheck } from 'react-icons/hi2';
30
30
  import { BsQuestionCircle, BsBookmarkFill, BsBookmark } from 'react-icons/bs';
31
31
  import { LuMail, LuArrowDownToLine } from 'react-icons/lu';
32
- import { MdOutlineNavigateNext, MdPhotoCamera, MdOutlineRefresh, MdOutlineErrorOutline, MdEmail, MdSwapHoriz } from 'react-icons/md';
32
+ import { MdOutlineNavigateNext, MdOutlineSettingsBackupRestore, MdPhotoCamera, MdOutlineRefresh, MdOutlineErrorOutline, MdEmail, MdSwapHoriz } from 'react-icons/md';
33
33
  import { FcGoogle, FcCheckmark } from 'react-icons/fc';
34
34
  import { IoIosFingerPrint, IoIosArrowForward, IoMdApps, IoMdSettings, IoIosCheckmarkCircleOutline } from 'react-icons/io';
35
35
  import { AiOutlineUser } from 'react-icons/ai';
@@ -48,7 +48,7 @@ import { FaXTwitter, FaWhatsapp, FaDiscord } from 'react-icons/fa6';
48
48
  import { SiFarcaster } from 'react-icons/si';
49
49
  import { GoLinkExternal, GoPlus } from 'react-icons/go';
50
50
  import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
51
- import { modalAnatomy, popoverAnatomy } from '@chakra-ui/anatomy';
51
+ import { modalAnatomy, cardAnatomy, popoverAnatomy } from '@chakra-ui/anatomy';
52
52
 
53
53
  // src/types/Types.ts
54
54
  var NFTMediaType = /* @__PURE__ */ ((NFTMediaType2) => {
@@ -2748,7 +2748,19 @@ var useFetchAppInfo = (appIds) => {
2748
2748
  normalizedIds.map((id) => fetchPrivyAppInfo(id))
2749
2749
  );
2750
2750
  return Object.fromEntries(
2751
- results.map((result, index) => [normalizedIds[index], result])
2751
+ results.map((result, index) => {
2752
+ const id = normalizedIds[index];
2753
+ const defaultApp = DEFAULT_PRIVY_ECOSYSTEM_APPS.find(
2754
+ (app) => app.id === id
2755
+ );
2756
+ return [
2757
+ id,
2758
+ {
2759
+ ...result,
2760
+ website: defaultApp?.website
2761
+ }
2762
+ ];
2763
+ })
2752
2764
  );
2753
2765
  },
2754
2766
  enabled: normalizedIds.length > 0
@@ -3068,6 +3080,10 @@ var nameInterface = new Interface([
3068
3080
  "function resolver(bytes32 node) returns (address resolverAddress)",
3069
3081
  "function text(bytes32 node, string key) returns (string avatar)"
3070
3082
  ]);
3083
+ var erc721Interface = new Interface([
3084
+ "function tokenURI(uint256 tokenId) view returns (string)",
3085
+ "function uri(uint256 id) view returns (string)"
3086
+ ]);
3071
3087
  var getAvatar = async (networkType, nodeUrl, name) => {
3072
3088
  if (!name) throw new Error("Name is required");
3073
3089
  const node = namehash(name);
@@ -3138,15 +3154,89 @@ var getAvatarQueryKey = (name) => [
3138
3154
  "AVATAR",
3139
3155
  name
3140
3156
  ];
3157
+ async function parseAvatarRecord(record, networkType, nodeUrl) {
3158
+ try {
3159
+ if (record.startsWith("http") || record.startsWith("ipfs://") || record.startsWith("ar://")) {
3160
+ return convertUriToUrl(record, networkType) || null;
3161
+ }
3162
+ const match = record.match(
3163
+ /eip155:(\d+)\/(?:erc721|erc1155):([^/]+)\/(\d+)/
3164
+ );
3165
+ if (match) {
3166
+ const [, chainId, contractAddress, tokenId] = match;
3167
+ const isErc1155 = record.includes("erc1155");
3168
+ if (!chainId || !contractAddress || tokenId === void 0) {
3169
+ return null;
3170
+ }
3171
+ const clauses = [
3172
+ {
3173
+ to: contractAddress,
3174
+ data: erc721Interface.encodeFunctionData(
3175
+ isErc1155 ? "uri" : "tokenURI",
3176
+ [BigInt(tokenId)]
3177
+ )
3178
+ }
3179
+ ];
3180
+ const [{ data, reverted }] = await fetch(`${nodeUrl}/accounts/*`, {
3181
+ method: "POST",
3182
+ headers: {
3183
+ "content-type": "application/json"
3184
+ },
3185
+ body: JSON.stringify({ clauses })
3186
+ }).then((res) => res.json());
3187
+ if (reverted) {
3188
+ console.error("Failed to fetch tokenURI");
3189
+ return null;
3190
+ }
3191
+ let tokenUri = "";
3192
+ try {
3193
+ tokenUri = erc721Interface.decodeFunctionResult(
3194
+ isErc1155 ? "uri" : "tokenURI",
3195
+ data
3196
+ )[0];
3197
+ } catch (e) {
3198
+ console.error("Failed to decode avatar data:", e);
3199
+ tokenUri = toUtf8String(data);
3200
+ }
3201
+ tokenUri = convertUriToUrl(tokenUri, networkType) || tokenUri;
3202
+ if (isErc1155) {
3203
+ tokenUri = tokenUri.replace(
3204
+ "{id}",
3205
+ zeroPadValue(toBeHex(BigInt(tokenId)), 32).slice(2)
3206
+ );
3207
+ }
3208
+ const metadataResponse = await fetch(tokenUri);
3209
+ if (!metadataResponse.ok) {
3210
+ console.error("Failed to fetch metadata");
3211
+ return null;
3212
+ }
3213
+ const metadata = await metadataResponse.json();
3214
+ const imageUrl = metadata.image || metadata.image_url || metadata.image_data;
3215
+ if (!imageUrl) {
3216
+ console.error("No image URL in metadata");
3217
+ return null;
3218
+ }
3219
+ return convertUriToUrl(imageUrl, networkType) || imageUrl;
3220
+ }
3221
+ return null;
3222
+ } catch (error) {
3223
+ console.error("Error parsing avatar record:", error);
3224
+ return null;
3225
+ }
3226
+ }
3141
3227
  var useGetAvatar = (name) => {
3142
3228
  const { network } = useVeChainKitConfig();
3143
3229
  const nodeUrl = network.nodeUrl ?? getConfig(network.type).nodeUrl;
3144
3230
  const avatarQuery = useQuery({
3145
3231
  queryKey: getAvatarQueryKey(name ?? ""),
3146
- queryFn: () => getAvatar(network.type, nodeUrl, name),
3232
+ queryFn: async () => {
3233
+ if (!name) return null;
3234
+ const avatarRecord = await getAvatar(network.type, nodeUrl, name);
3235
+ if (!avatarRecord) return null;
3236
+ return parseAvatarRecord(avatarRecord, network.type, nodeUrl);
3237
+ },
3147
3238
  enabled: !!name && !!nodeUrl && !!network.type,
3148
- retry: 3,
3149
- retryDelay: (attemptIndex) => Math.min(1e3 * 2 ** attemptIndex, 3e4),
3239
+ // Use the same caching strategy as the avatar query
3150
3240
  staleTime: 5 * 60 * 1e3
3151
3241
  // 5 minutes
3152
3242
  });
@@ -3288,7 +3378,7 @@ var useSendTransaction = ({
3288
3378
  });
3289
3379
  }
3290
3380
  let transaction = vendor.sign("tx", clauses2);
3291
- if (feeDelegation.delegateAllTransactions) {
3381
+ if (feeDelegation?.delegateAllTransactions) {
3292
3382
  transaction = transaction.delegate(feeDelegation.delegatorUrl);
3293
3383
  }
3294
3384
  if (signerAccountAddress) {
@@ -3550,6 +3640,32 @@ var useGetResolverAddress = (domain) => {
3550
3640
  enabled: !!domain && !!nodeUrl && !!network.type
3551
3641
  });
3552
3642
  };
3643
+ var getAvatarOfAddressQueryKey = (address) => [
3644
+ "VECHAIN_KIT",
3645
+ "VET_DOMAINS",
3646
+ "AVATAR_OF_ADDRESS",
3647
+ address
3648
+ ];
3649
+ var useGetAvatarOfAddress = (address) => {
3650
+ const domainsQuery = useVechainDomain(address);
3651
+ const primaryDomain = domainsQuery.data?.domain;
3652
+ const avatarQuery = useGetAvatar(primaryDomain ?? "");
3653
+ return useQuery({
3654
+ queryKey: getAvatarOfAddressQueryKey(address),
3655
+ queryFn: async () => {
3656
+ if (!address) return getPicassoImage(address ?? "");
3657
+ const domains = await domainsQuery.refetch();
3658
+ if (!domains.data?.domain) return getPicassoImage(address);
3659
+ if (domains.data.domain && avatarQuery.data)
3660
+ return avatarQuery.data;
3661
+ return getPicassoImage(address);
3662
+ },
3663
+ enabled: !!address && domainsQuery.isSuccess && (primaryDomain ? avatarQuery.isSuccess : true),
3664
+ // Use the same caching strategy as the avatar query
3665
+ staleTime: 5 * 60 * 1e3
3666
+ // 5 minutes
3667
+ });
3668
+ };
3553
3669
  var useBalances = ({ address = "" }) => {
3554
3670
  const { network } = useVeChainKitConfig();
3555
3671
  const { data: vetData, isLoading: vetLoading } = useAccountBalance(address);
@@ -3817,15 +3933,12 @@ var usePrivyCrossAppSdk = () => {
3817
3933
  // src/hooks/api/wallet/useWalletMetadata.ts
3818
3934
  var useWalletMetadata = (address, networkType) => {
3819
3935
  const { data: domain, isLoading: isLoadingVechainDomain } = useVechainDomain(address ?? "");
3820
- const { data: avatar, isLoading: isLoadingMetadata } = useGetAvatar(
3821
- domain?.domain
3822
- );
3823
- const { data: textRecords, isLoading: isLoadingRecords } = useGetTextRecords(domain?.domain);
3824
- const avatarUrl = avatar ? convertUriToUrl(avatar, networkType) : null;
3936
+ const { data: avatar, isLoading: isLoadingMetadata } = useGetAvatarOfAddress(address ?? "");
3937
+ const { data: textRecords, isLoading: isLoadingRecords } = useGetTextRecords(domain?.domain ?? "");
3825
3938
  const headerUrl = textRecords?.header ? convertUriToUrl(textRecords.header, networkType) : null;
3826
3939
  return {
3827
3940
  domain: domain?.domain,
3828
- image: avatarUrl ?? getPicassoImage(address ?? ""),
3941
+ image: avatar,
3829
3942
  records: {
3830
3943
  ...textRecords,
3831
3944
  header: headerUrl
@@ -3891,7 +4004,7 @@ var useWallet = () => {
3891
4004
  const { data: smartAccount } = useSmartAccount(connectedWalletAddress);
3892
4005
  const activeAddress = isConnectedWithDappKit ? dappKitAccount : smartAccount?.address;
3893
4006
  const activeAccountDomain = useVechainDomain(activeAddress ?? "");
3894
- const activeAccountAvatar = useGetAvatar(activeAccountDomain?.data?.domain);
4007
+ const activeAccountAvatar = useGetAvatarOfAddress(activeAddress ?? "");
3895
4008
  const activeAccountTextRecords = useGetTextRecords(
3896
4009
  activeAccountDomain?.data?.domain
3897
4010
  );
@@ -3906,7 +4019,7 @@ var useWallet = () => {
3906
4019
  const account = activeAddress ? {
3907
4020
  address: activeAddress,
3908
4021
  domain: activeAccountDomain?.data?.domain,
3909
- image: activeAccountAvatar.data ? convertUriToUrl(activeAccountAvatar.data, network.type) : getPicassoImage(activeAddress ?? ""),
4022
+ image: activeAccountAvatar.data,
3910
4023
  isLoadingMetadata: activeAccountAvatar?.isLoading || activeAccountDomain?.isLoading || activeAccountTextRecords?.isLoading,
3911
4024
  metadata: activeAccountTextRecords?.data
3912
4025
  } : null;
@@ -3971,7 +4084,7 @@ var useWallet = () => {
3971
4084
  source: connectionSource,
3972
4085
  isInAppBrowser: (window.vechain && window.vechain.isInAppBrowser) ?? false,
3973
4086
  nodeUrl,
3974
- delegatorUrl: feeDelegation.delegatorUrl,
4087
+ delegatorUrl: feeDelegation?.delegatorUrl,
3975
4088
  chainId,
3976
4089
  network: network.type
3977
4090
  },
@@ -4153,7 +4266,7 @@ var useAccountBalance = (address) => {
4153
4266
  refetchInterval: 1e4
4154
4267
  });
4155
4268
  };
4156
- var useRefreshMetadata = (domain) => {
4269
+ var useRefreshMetadata = (domain, address) => {
4157
4270
  const queryClient = useQueryClient();
4158
4271
  const { network } = useVeChainKitConfig();
4159
4272
  const refresh = async () => {
@@ -4169,6 +4282,12 @@ var useRefreshMetadata = (domain) => {
4169
4282
  await queryClient.refetchQueries({
4170
4283
  queryKey: getTextRecordsQueryKey(domain, network.type)
4171
4284
  });
4285
+ await queryClient.invalidateQueries({
4286
+ queryKey: getAvatarOfAddressQueryKey(address)
4287
+ });
4288
+ await queryClient.refetchQueries({
4289
+ queryKey: getAvatarOfAddressQueryKey(address)
4290
+ });
4172
4291
  };
4173
4292
  return { refresh };
4174
4293
  };
@@ -4854,6 +4973,8 @@ var ModalBackButton = ({ onClick, ...props }) => {
4854
4973
  icon: /* @__PURE__ */ jsx(IoChevronBack, { fontSize: "20px" }),
4855
4974
  size: "sm",
4856
4975
  variant: "ghost",
4976
+ _hover: { bg: "blackAlpha.100" },
4977
+ _dark: { _hover: { bg: "whiteAlpha.100" } },
4857
4978
  position: "absolute",
4858
4979
  borderRadius: "50%",
4859
4980
  left: "10px",
@@ -4978,7 +5099,7 @@ var AddressDisplay = ({
4978
5099
  // package.json
4979
5100
  var package_default = {
4980
5101
  name: "@vechain/vechain-kit",
4981
- version: "1.5.6",
5102
+ version: "1.5.8",
4982
5103
  private: false,
4983
5104
  homepage: "https://github.com/vechain/vechain-kit",
4984
5105
  repository: "github:vechain/vechain-kit",
@@ -5161,7 +5282,7 @@ var StickyHeaderContainer = ({ children }) => {
5161
5282
  left: "0",
5162
5283
  w: "full",
5163
5284
  borderRadius: "24px 24px 0px 0px",
5164
- bg: isDark ? "rgb(24 24 27 / 90%)" : "rgba(255, 255, 255, 0.8)",
5285
+ bg: isDark ? "rgb(31 31 30 / 90%)" : "rgb(255 255 255 / 69%)",
5165
5286
  backdropFilter: "blur(12px)",
5166
5287
  style: { WebkitBackdropFilter: "blur(12px)" },
5167
5288
  zIndex: 1e3,
@@ -5188,7 +5309,7 @@ var StickyFooterContainer = ({ children }) => {
5188
5309
  bottom: "0",
5189
5310
  left: "0",
5190
5311
  right: "0",
5191
- bg: isDark ? "#18181b" : "white",
5312
+ bg: isDark ? "#1f1f1e" : "white",
5192
5313
  zIndex: "1000",
5193
5314
  p: 4,
5194
5315
  boxShadow: "0px -1px 6px -3px rgb(0 0 0 / 56%)",
@@ -5406,6 +5527,8 @@ var ModalFAQButton = ({ onClick, ...props }) => {
5406
5527
  icon: /* @__PURE__ */ jsx(Icon, { as: BsQuestionCircle, fontSize: "17px" }),
5407
5528
  size: "sm",
5408
5529
  variant: "ghost",
5530
+ _hover: { bg: "blackAlpha.100" },
5531
+ _dark: { _hover: { bg: "whiteAlpha.100" } },
5409
5532
  position: "absolute",
5410
5533
  borderRadius: "50%",
5411
5534
  left: "10px",
@@ -5431,13 +5554,11 @@ var AccountAvatar = ({ wallet, props }) => {
5431
5554
  if (wallet?.isLoadingMetadata) {
5432
5555
  return /* @__PURE__ */ jsx(Spinner, { size: "sm" });
5433
5556
  }
5434
- const fallbackImage = wallet?.address ? getPicassoImage(wallet.address) : void 0;
5435
5557
  return /* @__PURE__ */ jsx(
5436
5558
  Image,
5437
5559
  {
5438
- src: props?.src ?? wallet?.image,
5439
- fallbackSrc: fallbackImage,
5440
- alt: props?.alt ?? wallet?.domain,
5560
+ src: props?.src || wallet?.image,
5561
+ alt: props?.alt || wallet?.domain,
5441
5562
  objectFit: "cover",
5442
5563
  rounded: "full",
5443
5564
  ...props
@@ -6208,7 +6329,7 @@ var AccountDetailsButton = ({
6208
6329
  wordBreak: "break-word",
6209
6330
  whiteSpace: "normal",
6210
6331
  w: "full",
6211
- children: wallet?.domain ? humanDomain(wallet?.domain, 4, 11) : humanAddress(wallet?.address ?? "", 6, 4)
6332
+ children: wallet?.domain ? humanDomain(wallet?.domain ?? "", 18, 0) : humanAddress(wallet?.address ?? "", 6, 4)
6212
6333
  }
6213
6334
  )
6214
6335
  ] }),
@@ -6238,24 +6359,18 @@ var ActionButton = ({
6238
6359
  extraContent
6239
6360
  }) => {
6240
6361
  const { t } = useTranslation();
6241
- const { colorMode } = useColorMode();
6242
- const baseBackgroundColor = backgroundColor ?? colorMode === "dark" ? "#ffffff0a" : "#00000005";
6243
6362
  return /* @__PURE__ */ jsx(
6244
6363
  Button,
6245
6364
  {
6246
- w: "full",
6247
- minH: "70px",
6248
- h: "fit-content",
6365
+ variant: "actionButton",
6249
6366
  py: stacked ? 0 : 4,
6250
6367
  onClick,
6251
6368
  display: hide ? "none" : "flex",
6252
6369
  isDisabled: showComingSoon || isDisabled,
6253
6370
  isLoading,
6254
6371
  loadingText,
6255
- bgColor: baseBackgroundColor,
6256
- _hover: _hover ?? {
6257
- backgroundColor: colorMode === "dark" ? "#ffffff12" : "blackAlpha.200"
6258
- },
6372
+ bgColor: backgroundColor,
6373
+ _hover,
6259
6374
  ...style,
6260
6375
  children: /* @__PURE__ */ jsxs(HStack, { w: "full", justify: "space-between", children: [
6261
6376
  /* @__PURE__ */ jsx(Box, { minW: "40px", children: leftImage ? /* @__PURE__ */ jsx(
@@ -6278,7 +6393,7 @@ var ActionButton = ({
6278
6393
  flex: 1,
6279
6394
  justifyContent: "flex-start",
6280
6395
  alignItems: "flex-start",
6281
- children: /* @__PURE__ */ jsxs(HStack, { justify: "flex-start", children: [
6396
+ children: /* @__PURE__ */ jsxs(HStack, { justify: "flex-start", alignItems: "baseline", children: [
6282
6397
  /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "400", children: title }),
6283
6398
  showComingSoon && /* @__PURE__ */ jsx(Tag, { size: "sm", colorScheme: "red", children: t("Coming Soon!") }),
6284
6399
  extraContent
@@ -6340,7 +6455,7 @@ var AccountSelector = ({
6340
6455
  props: { width: 7, height: 7 }
6341
6456
  }
6342
6457
  ),
6343
- /* @__PURE__ */ jsx(Text, { fontSize: size, fontWeight: "500", children: humanDomain(wallet?.domain ?? "", 18, 0) || humanAddress(wallet?.address ?? "", 6, 4) })
6458
+ /* @__PURE__ */ jsx(Text, { fontSize: size, fontWeight: "500", children: humanDomain(wallet?.domain ?? "", 22, 0) || humanAddress(wallet?.address ?? "", 6, 4) })
6344
6459
  ] }),
6345
6460
  /* @__PURE__ */ jsx(
6346
6461
  Icon,
@@ -6725,7 +6840,8 @@ var QuickActionButton = ({
6725
6840
  icon,
6726
6841
  label,
6727
6842
  onClick,
6728
- isDisabled
6843
+ isDisabled,
6844
+ showRedDot
6729
6845
  }) => {
6730
6846
  const { t } = useTranslation();
6731
6847
  return /* @__PURE__ */ jsx(
@@ -6738,18 +6854,41 @@ var QuickActionButton = ({
6738
6854
  isDisabled,
6739
6855
  icon: /* @__PURE__ */ jsxs(VStack, { spacing: 4, children: [
6740
6856
  /* @__PURE__ */ jsx(Icon, { as: icon, boxSize: 5, opacity: 0.9 }),
6741
- /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "600", children: t(label, label) })
6857
+ /* @__PURE__ */ jsxs(HStack, { p: 0, alignItems: "baseline", spacing: 1, children: [
6858
+ /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "600", children: t(label, label) }),
6859
+ showRedDot && /* @__PURE__ */ jsx(
6860
+ Box,
6861
+ {
6862
+ minWidth: "8px",
6863
+ height: "8px",
6864
+ bg: "red.500",
6865
+ borderRadius: "full",
6866
+ display: "flex",
6867
+ alignItems: "center",
6868
+ justifyContent: "center"
6869
+ }
6870
+ )
6871
+ ] })
6742
6872
  ] }),
6743
6873
  onClick
6744
6874
  }
6745
6875
  );
6746
6876
  };
6747
6877
  var QuickActionsSection = ({ mt, setCurrentContent }) => {
6748
- const { account } = useWallet();
6878
+ const { account, smartAccount, connectedWallet, connection } = useWallet();
6749
6879
  const { totalBalance } = useBalances({
6750
6880
  address: account?.address ?? ""
6751
6881
  });
6752
6882
  const { t } = useTranslation();
6883
+ const { data: upgradeRequired } = useUpgradeRequired(
6884
+ smartAccount?.address ?? "",
6885
+ connectedWallet?.address ?? "",
6886
+ 3
6887
+ );
6888
+ const { getNotifications } = useNotifications();
6889
+ const notifications = getNotifications();
6890
+ const hasUnreadNotifications = notifications.some((n) => !n.isRead);
6891
+ const showRedDot = connection.isConnectedWithPrivy && upgradeRequired || hasUnreadNotifications;
6753
6892
  return /* @__PURE__ */ jsxs(VStack, { w: "full", mt, spacing: 4, children: [
6754
6893
  /* @__PURE__ */ jsx(Heading, { size: "xs", fontWeight: "500", w: "full", opacity: 0.5, children: t("Activities") }),
6755
6894
  /* @__PURE__ */ jsx(Grid, { templateColumns: "repeat(3, 1fr)", gap: 2, w: "full", children: QUICK_ACTIONS.map((action) => /* @__PURE__ */ jsx(
@@ -6758,7 +6897,8 @@ var QuickActionsSection = ({ mt, setCurrentContent }) => {
6758
6897
  icon: action.icon,
6759
6898
  label: action.label,
6760
6899
  onClick: () => action.onClick(setCurrentContent),
6761
- isDisabled: action.isDisabled?.(totalBalance)
6900
+ isDisabled: action.isDisabled?.(totalBalance),
6901
+ showRedDot: showRedDot && action.label === "Settings"
6762
6902
  },
6763
6903
  action.label
6764
6904
  )) })
@@ -6867,10 +7007,120 @@ var DomainRequiredAlert = () => {
6867
7007
  ) })
6868
7008
  ] }) }) });
6869
7009
  };
7010
+ var CrossAppConnectionSecurityCard = () => {
7011
+ const { t } = useTranslation();
7012
+ const { getConnectionCache } = useCrossAppConnectionCache();
7013
+ const connectionCache = getConnectionCache();
7014
+ return /* @__PURE__ */ jsxs(Card, { variant: "vechainKitBase", w: "full", children: [
7015
+ /* @__PURE__ */ jsxs(CardHeader, { p: 4, pl: 6, borderBottomWidth: "1px", children: [
7016
+ /* @__PURE__ */ jsx(Text, { fontWeight: "medium", opacity: 0.8, children: t("Security preferences") }),
7017
+ /* @__PURE__ */ jsx(Text, { fontSize: "xs", mt: 1, opacity: 0.7, children: t(
7018
+ "For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.",
7019
+ {
7020
+ appName: connectionCache?.ecosystemApp.name ?? "origin app"
7021
+ }
7022
+ ) })
7023
+ ] }),
7024
+ /* @__PURE__ */ jsx(CardBody, { borderRadius: "none", children: /* @__PURE__ */ jsxs(VStack, { spacing: 3, align: "stretch", children: [
7025
+ /* @__PURE__ */ jsxs(HStack, { spacing: 3, align: "center", children: [
7026
+ /* @__PURE__ */ jsx(
7027
+ Center,
7028
+ {
7029
+ w: "fit-content",
7030
+ h: "fit-content",
7031
+ p: 2,
7032
+ borderRadius: "full",
7033
+ bg: "blackAlpha.100",
7034
+ _dark: { bg: "blackAlpha.100" },
7035
+ flexShrink: 0,
7036
+ children: /* @__PURE__ */ jsx(Icon, { as: GrUserAdmin })
7037
+ }
7038
+ ),
7039
+ /* @__PURE__ */ jsxs(Box, { flex: 1, children: [
7040
+ /* @__PURE__ */ jsx(
7041
+ Text,
7042
+ {
7043
+ fontSize: "sm",
7044
+ fontWeight: "medium",
7045
+ lineHeight: "shorter",
7046
+ children: t("Login methods")
7047
+ }
7048
+ ),
7049
+ /* @__PURE__ */ jsx(
7050
+ Text,
7051
+ {
7052
+ fontSize: "xs",
7053
+ opacity: 0.7,
7054
+ lineHeight: "shorter",
7055
+ children: t("Manage your login methods and passkeys")
7056
+ }
7057
+ )
7058
+ ] })
7059
+ ] }),
7060
+ /* @__PURE__ */ jsxs(HStack, { spacing: 3, align: "center", children: [
7061
+ /* @__PURE__ */ jsx(
7062
+ Center,
7063
+ {
7064
+ w: "fit-content",
7065
+ h: "fit-content",
7066
+ p: 2,
7067
+ borderRadius: "full",
7068
+ bg: "blackAlpha.100",
7069
+ _dark: { bg: "blackAlpha.100" },
7070
+ flexShrink: 0,
7071
+ children: /* @__PURE__ */ jsx(Icon, { as: HiOutlineShieldCheck })
7072
+ }
7073
+ ),
7074
+ /* @__PURE__ */ jsxs(Box, { flex: 1, children: [
7075
+ /* @__PURE__ */ jsx(
7076
+ Text,
7077
+ {
7078
+ fontSize: "sm",
7079
+ fontWeight: "medium",
7080
+ lineHeight: "shorter",
7081
+ children: t("Security settings")
7082
+ }
7083
+ ),
7084
+ /* @__PURE__ */ jsx(
7085
+ Text,
7086
+ {
7087
+ fontSize: "xs",
7088
+ opacity: 0.7,
7089
+ lineHeight: "shorter",
7090
+ children: t(
7091
+ "Backup your wallet, configure MFA and set recovery options"
7092
+ )
7093
+ }
7094
+ )
7095
+ ] })
7096
+ ] })
7097
+ ] }) }),
7098
+ /* @__PURE__ */ jsx(CardFooter, { children: /* @__PURE__ */ jsxs(
7099
+ Button,
7100
+ {
7101
+ variant: "vechainKitSecondary",
7102
+ w: "full",
7103
+ onClick: () => {
7104
+ window.open(
7105
+ connectionCache?.ecosystemApp.website ?? "https://governance.vebetterdao.org/",
7106
+ "_blank"
7107
+ );
7108
+ },
7109
+ children: [
7110
+ t("Manage on {{appName}}", {
7111
+ appName: connectionCache?.ecosystemApp.name ?? "origin app"
7112
+ }),
7113
+ /* @__PURE__ */ jsx(Icon, { as: FaExternalLinkAlt, ml: 2 })
7114
+ ]
7115
+ }
7116
+ ) })
7117
+ ] });
7118
+ };
6870
7119
  var AccessAndSecurityContent = ({ setCurrentContent }) => {
6871
7120
  const { t } = useTranslation();
6872
7121
  const { exportWallet } = usePrivy();
6873
7122
  const { showMfaEnrollmentModal } = useMfaEnrollment();
7123
+ const { setWalletRecovery } = useSetWalletRecovery();
6874
7124
  const { connection, smartAccount, connectedWallet } = useWallet();
6875
7125
  const { data: upgradeRequired } = useUpgradeRequired(
6876
7126
  smartAccount?.address ?? "",
@@ -6896,72 +7146,17 @@ var AccessAndSecurityContent = ({ setCurrentContent }) => {
6896
7146
  align: "flex-start",
6897
7147
  w: "full",
6898
7148
  children: [
6899
- /* @__PURE__ */ jsxs(VStack, { w: "full", justifyContent: "center", spacing: 3, mb: 3, children: [
6900
- /* @__PURE__ */ jsx(
6901
- Icon,
6902
- {
6903
- opacity: 0.5,
6904
- as: IoShieldOutline,
6905
- fontSize: "50px"
6906
- }
6907
- ),
6908
- /* @__PURE__ */ jsx(
6909
- Text,
6910
- {
6911
- fontSize: "sm",
6912
- opacity: 0.5,
6913
- textAlign: "center",
6914
- children: t(
6915
- "Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets."
6916
- )
6917
- }
6918
- )
6919
- ] }),
6920
- /* @__PURE__ */ jsx(
6921
- ActionButton,
6922
- {
6923
- title: t("Your embedded wallet"),
6924
- onClick: () => {
6925
- setCurrentContent("embedded-wallet");
6926
- },
6927
- leftIcon: HiOutlineWallet,
6928
- rightIcon: MdOutlineNavigateNext
6929
- }
6930
- ),
6931
- /* @__PURE__ */ jsx(
6932
- ActionButton,
6933
- {
6934
- title: t("Login methods and Passkeys"),
6935
- onClick: () => {
6936
- setCurrentContent("privy-linked-accounts");
6937
- },
6938
- isDisabled: !connection.isConnectedWithSocialLogin,
6939
- leftIcon: GrUserAdmin,
6940
- rightIcon: MdOutlineNavigateNext
6941
- }
6942
- ),
6943
- /* @__PURE__ */ jsx(
6944
- ActionButton,
6945
- {
6946
- title: t("Backup your wallet"),
6947
- onClick: () => {
6948
- exportWallet();
6949
- },
6950
- isDisabled: !connection.isConnectedWithSocialLogin,
6951
- leftIcon: GiHouseKeys
6952
- }
6953
- ),
6954
- /* @__PURE__ */ jsx(
6955
- ActionButton,
7149
+ /* @__PURE__ */ jsx(VStack, { w: "full", justifyContent: "center", spacing: 3, mb: 3, children: /* @__PURE__ */ jsx(
7150
+ Text,
6956
7151
  {
6957
- title: t("Manage MFA"),
6958
- onClick: () => {
6959
- showMfaEnrollmentModal();
6960
- },
6961
- isDisabled: !connection.isConnectedWithSocialLogin,
6962
- leftIcon: HiOutlineShieldCheck
7152
+ fontSize: "sm",
7153
+ opacity: 0.5,
7154
+ textAlign: "center",
7155
+ children: t(
7156
+ "Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets."
7157
+ )
6963
7158
  }
6964
- ),
7159
+ ) }),
6965
7160
  upgradeRequired && /* @__PURE__ */ jsx(
6966
7161
  ActionButton,
6967
7162
  {
@@ -6978,28 +7173,80 @@ var AccessAndSecurityContent = ({ setCurrentContent }) => {
6978
7173
  }
6979
7174
  });
6980
7175
  },
6981
- leftIcon: HiOutlineShieldCheck
7176
+ leftIcon: IoCogSharp,
7177
+ extraContent: /* @__PURE__ */ jsx(
7178
+ Box,
7179
+ {
7180
+ minWidth: "8px",
7181
+ height: "8px",
7182
+ bg: "red.500",
7183
+ borderRadius: "full",
7184
+ display: "flex",
7185
+ alignItems: "center",
7186
+ justifyContent: "center",
7187
+ ml: 2
7188
+ }
7189
+ )
6982
7190
  }
6983
- )
7191
+ ),
7192
+ /* @__PURE__ */ jsx(
7193
+ ActionButton,
7194
+ {
7195
+ title: t("Your embedded wallet"),
7196
+ onClick: () => {
7197
+ setCurrentContent("embedded-wallet");
7198
+ },
7199
+ leftIcon: HiOutlineWallet,
7200
+ rightIcon: MdOutlineNavigateNext
7201
+ }
7202
+ ),
7203
+ connection.isConnectedWithSocialLogin ? /* @__PURE__ */ jsxs(Fragment, { children: [
7204
+ /* @__PURE__ */ jsx(
7205
+ ActionButton,
7206
+ {
7207
+ title: t("Login methods and Passkeys"),
7208
+ onClick: () => {
7209
+ setCurrentContent("privy-linked-accounts");
7210
+ },
7211
+ leftIcon: GrUserAdmin,
7212
+ rightIcon: MdOutlineNavigateNext
7213
+ }
7214
+ ),
7215
+ /* @__PURE__ */ jsx(
7216
+ ActionButton,
7217
+ {
7218
+ title: t("Backup your wallet"),
7219
+ onClick: () => {
7220
+ exportWallet();
7221
+ },
7222
+ leftIcon: GiHouseKeys
7223
+ }
7224
+ ),
7225
+ /* @__PURE__ */ jsx(
7226
+ ActionButton,
7227
+ {
7228
+ title: t("Manage MFA"),
7229
+ onClick: () => {
7230
+ showMfaEnrollmentModal();
7231
+ },
7232
+ leftIcon: HiOutlineShieldCheck
7233
+ }
7234
+ ),
7235
+ /* @__PURE__ */ jsx(
7236
+ ActionButton,
7237
+ {
7238
+ title: t("Manage Recovery"),
7239
+ onClick: () => {
7240
+ setWalletRecovery();
7241
+ },
7242
+ leftIcon: MdOutlineSettingsBackupRestore
7243
+ }
7244
+ )
7245
+ ] }) : /* @__PURE__ */ jsx(CrossAppConnectionSecurityCard, {})
6984
7246
  ]
6985
7247
  }
6986
7248
  ) }),
6987
- /* @__PURE__ */ jsx(ModalFooter, { w: "full", children: connection.isConnectedWithVeChain && connection.isConnectedWithCrossApp && /* @__PURE__ */ jsxs(
6988
- Button,
6989
- {
6990
- variant: "vechainKitSecondary",
6991
- onClick: () => {
6992
- window.open(
6993
- "https://governance.vebetterdao.org/",
6994
- "_blank"
6995
- );
6996
- },
6997
- children: [
6998
- t("Manage on VeBetterDAO"),
6999
- /* @__PURE__ */ jsx(Icon, { as: FaExternalLinkAlt, ml: 2 })
7000
- ]
7001
- }
7002
- ) })
7249
+ /* @__PURE__ */ jsx(ModalFooter, { pt: 0 })
7003
7250
  ] });
7004
7251
  };
7005
7252
  var DEFAULT_NOTIFICATIONS = [
@@ -7224,13 +7471,18 @@ var SettingsContent = ({
7224
7471
  const contentRef = useRef(null);
7225
7472
  const { t } = useTranslation();
7226
7473
  const { privy } = useVeChainKitConfig();
7227
- const { connection, disconnect, account } = useWallet();
7474
+ const { connection, disconnect, account, smartAccount, connectedWallet } = useWallet();
7228
7475
  const { getConnectionCache } = useCrossAppConnectionCache();
7229
7476
  const connectionCache = getConnectionCache();
7230
7477
  const { data: appInfo } = useFetchAppInfo(privy?.appId ?? "");
7231
7478
  const { getNotifications } = useNotifications();
7232
7479
  const notifications = getNotifications();
7233
7480
  const hasUnreadNotifications = notifications.some((n) => !n.isRead);
7481
+ const { data: upgradeRequired } = useUpgradeRequired(
7482
+ smartAccount?.address ?? "",
7483
+ connectedWallet?.address ?? "",
7484
+ 3
7485
+ );
7234
7486
  useEffect(() => {
7235
7487
  if (contentRef.current) {
7236
7488
  contentRef.current.scrollTop = 0;
@@ -7291,7 +7543,19 @@ var SettingsContent = ({
7291
7543
  setCurrentContent("access-and-security");
7292
7544
  },
7293
7545
  leftIcon: IoShieldOutline,
7294
- rightIcon: MdOutlineNavigateNext
7546
+ rightIcon: MdOutlineNavigateNext,
7547
+ extraContent: upgradeRequired && /* @__PURE__ */ jsx(
7548
+ Box,
7549
+ {
7550
+ minWidth: "8px",
7551
+ height: "8px",
7552
+ bg: "red.500",
7553
+ borderRadius: "full",
7554
+ display: "flex",
7555
+ alignItems: "center",
7556
+ justifyContent: "center"
7557
+ }
7558
+ )
7295
7559
  }
7296
7560
  ),
7297
7561
  /* @__PURE__ */ jsx(
@@ -7329,17 +7593,13 @@ var SettingsContent = ({
7329
7593
  extraContent: hasUnreadNotifications && /* @__PURE__ */ jsx(
7330
7594
  Box,
7331
7595
  {
7332
- minWidth: "16px",
7333
- height: "16px",
7596
+ minWidth: "8px",
7597
+ height: "8px",
7334
7598
  bg: "red.500",
7335
7599
  borderRadius: "full",
7336
7600
  display: "flex",
7337
7601
  alignItems: "center",
7338
- justifyContent: "center",
7339
- ml: 2,
7340
- children: /* @__PURE__ */ jsx(Text, { fontSize: "xs", color: "white", children: notifications.filter(
7341
- (n) => !n.isRead
7342
- ).length })
7602
+ justifyContent: "center"
7343
7603
  }
7344
7604
  )
7345
7605
  }
@@ -7638,7 +7898,7 @@ var WalletSecuredBy = () => {
7638
7898
  mt: 5,
7639
7899
  p: 3,
7640
7900
  borderRadius: "lg",
7641
- bg: isDark ? "whiteAlpha.100" : "blackAlpha.50",
7901
+ bg: isDark ? "#00000038" : "#f5f5f5",
7642
7902
  shadow: "sm",
7643
7903
  children: [
7644
7904
  /* @__PURE__ */ jsx(Text, { fontSize: "xs", fontWeight: "800", children: t("Wallet secured by") }),
@@ -7682,6 +7942,7 @@ var EmbeddedWalletContent = ({ setCurrentContent }) => {
7682
7942
  const walletImage = getPicassoImage(connectedWallet?.address ?? "");
7683
7943
  const { getConnectionCache } = useCrossAppConnectionCache();
7684
7944
  const connectionCache = getConnectionCache();
7945
+ const { darkMode: isDark } = useVeChainKitConfig();
7685
7946
  return /* @__PURE__ */ jsxs(ScrollToTopWrapper, { children: [
7686
7947
  /* @__PURE__ */ jsxs(StickyHeaderContainer, { children: [
7687
7948
  /* @__PURE__ */ jsx(ModalHeader, { children: t("Embedded wallet") }),
@@ -7749,7 +8010,7 @@ var EmbeddedWalletContent = ({ setCurrentContent }) => {
7749
8010
  {
7750
8011
  href: "https://www.veworld.net/",
7751
8012
  isExternal: true,
7752
- color: "blackAlpha.600",
8013
+ color: isDark ? "whiteAlpha.600" : "blackAlpha.600",
7753
8014
  fontSize: "14px",
7754
8015
  textDecoration: "underline",
7755
8016
  children: [
@@ -7769,7 +8030,7 @@ var EmbeddedWalletContent = ({ setCurrentContent }) => {
7769
8030
  {
7770
8031
  href: "https://docs.vechainkit.vechain.org/vechain-kit/embedded-wallets",
7771
8032
  isExternal: true,
7772
- color: "blackAlpha.600",
8033
+ color: isDark ? "whiteAlpha.600" : "blackAlpha.600",
7773
8034
  fontSize: "14px",
7774
8035
  textDecoration: "underline",
7775
8036
  children: t("here")
@@ -7817,7 +8078,7 @@ var SelectTokenContent = ({ onSelectToken, onBack }) => {
7817
8078
  /* @__PURE__ */ jsx(ModalBackButton, { onClick: onBack }),
7818
8079
  /* @__PURE__ */ jsx(ModalCloseButton, {})
7819
8080
  ] }),
7820
- /* @__PURE__ */ jsx(ModalBody, { children: /* @__PURE__ */ jsxs(VStack, { spacing: 4, align: "stretch", children: [
8081
+ /* @__PURE__ */ jsx(Container, { h: ["540px", "auto"], p: 0, children: /* @__PURE__ */ jsx(ModalBody, { children: /* @__PURE__ */ jsxs(VStack, { spacing: 4, align: "stretch", children: [
7821
8082
  /* @__PURE__ */ jsxs(InputGroup, { size: "lg", children: [
7822
8083
  /* @__PURE__ */ jsx(
7823
8084
  Input,
@@ -7867,7 +8128,9 @@ var SelectTokenContent = ({ onSelectToken, onBack }) => {
7867
8128
  AssetButton,
7868
8129
  {
7869
8130
  symbol: token.symbol,
7870
- amount: Number(token.numericBalance),
8131
+ amount: Number(
8132
+ token.numericBalance
8133
+ ),
7871
8134
  usdValue,
7872
8135
  onClick: () => onSelectToken(token),
7873
8136
  isDisabled: !hasBalance
@@ -7875,7 +8138,7 @@ var SelectTokenContent = ({ onSelectToken, onBack }) => {
7875
8138
  token.address
7876
8139
  );
7877
8140
  }) })
7878
- ] }) }),
8141
+ ] }) }) }),
7879
8142
  /* @__PURE__ */ jsx(ModalFooter, { pt: 0 })
7880
8143
  ] });
7881
8144
  };
@@ -7914,11 +8177,7 @@ var SendTokenContent = ({
7914
8177
  mode: "onChange"
7915
8178
  });
7916
8179
  const { toAddressOrDomain } = watch();
7917
- const {
7918
- domain: resolvedDomain,
7919
- address: resolvedAddress,
7920
- isLoading: isLoadingDomain
7921
- } = useVechainDomain$1({ addressOrDomain: toAddressOrDomain });
8180
+ const { domain: resolvedDomain, address: resolvedAddress } = useVechainDomain$1({ addressOrDomain: toAddressOrDomain });
7922
8181
  const handleSetMaxAmount = () => {
7923
8182
  if (selectedToken) {
7924
8183
  setValue("amount", selectedToken.numericBalance);
@@ -8196,8 +8455,8 @@ var SendTokenContent = ({
8196
8455
  /* @__PURE__ */ jsx(ModalFooter, { children: /* @__PURE__ */ jsx(
8197
8456
  Button,
8198
8457
  {
8199
- variant: "vechainKitSecondary",
8200
- isDisabled: !selectedToken || !isValid || isLoadingDomain,
8458
+ variant: "vechainKitPrimary",
8459
+ isDisabled: !selectedToken || !isValid,
8201
8460
  onClick: handleSubmit(onSubmit),
8202
8461
  children: selectedToken ? t("Send") : t("Select Token")
8203
8462
  }
@@ -8224,7 +8483,7 @@ var SendTokenSummaryContent = ({
8224
8483
  }) => {
8225
8484
  const { t } = useTranslation();
8226
8485
  const { account, connection, connectedWallet } = useWallet();
8227
- const { data: avatar } = useGetAvatar(resolvedDomain);
8486
+ const { data: avatar } = useGetAvatar(resolvedDomain ?? "");
8228
8487
  const { network } = useVeChainKitConfig();
8229
8488
  const { data: upgradeRequired } = useUpgradeRequired(
8230
8489
  account?.address ?? "",
@@ -8234,7 +8493,7 @@ var SendTokenSummaryContent = ({
8234
8493
  const { open: openUpgradeSmartAccountModal } = useUpgradeSmartAccountModal();
8235
8494
  const toImageSrc = useMemo(() => {
8236
8495
  if (avatar) {
8237
- return convertUriToUrl(avatar, network.type);
8496
+ return avatar;
8238
8497
  }
8239
8498
  return getPicassoImage(resolvedAddress || toAddressOrDomain);
8240
8499
  }, [avatar, network.type, resolvedAddress, toAddressOrDomain]);
@@ -8296,6 +8555,10 @@ var SendTokenSummaryContent = ({
8296
8555
  return selectedToken.symbol === "VET" ? transferVETReceipt : transferERC20Receipt;
8297
8556
  };
8298
8557
  const handleSend = async () => {
8558
+ if (upgradeRequired) {
8559
+ openUpgradeSmartAccountModal();
8560
+ return;
8561
+ }
8299
8562
  try {
8300
8563
  if (selectedToken.symbol === "VET") {
8301
8564
  await transferVET();
@@ -8308,11 +8571,6 @@ var SendTokenSummaryContent = ({
8308
8571
  };
8309
8572
  const isTxWaitingConfirmation = transferERC20WaitingForWalletConfirmation || transferVETWaitingForWalletConfirmation;
8310
8573
  const isSubmitting = isTxWaitingConfirmation || transferERC20Pending || transferVETPending;
8311
- useEffect(() => {
8312
- if (upgradeRequired) {
8313
- openUpgradeSmartAccountModal();
8314
- }
8315
- }, [upgradeRequired, openUpgradeSmartAccountModal]);
8316
8574
  return /* @__PURE__ */ jsxs(Fragment, { children: [
8317
8575
  /* @__PURE__ */ jsxs(StickyHeaderContainer, { children: [
8318
8576
  /* @__PURE__ */ jsx(ModalHeader, { children: "Send" }),
@@ -8411,7 +8669,7 @@ var SendTokenSummaryContent = ({
8411
8669
  transactionPendingText: t("Sending..."),
8412
8670
  txReceipt: getTxReceipt(),
8413
8671
  buttonText: t("Confirm"),
8414
- isDisabled: isSubmitting || upgradeRequired
8672
+ isDisabled: isSubmitting
8415
8673
  }
8416
8674
  ) })
8417
8675
  ] });
@@ -8524,23 +8782,95 @@ var ChooseNameContent = ({
8524
8782
  }
8525
8783
  )
8526
8784
  ] })
8527
- ] }) }),
8528
- /* @__PURE__ */ jsx(ModalFooter, { children: /* @__PURE__ */ jsx(
8529
- Button,
8530
- {
8531
- variant: "vechainKitPrimary",
8532
- onClick: () => setCurrentContent({
8533
- type: "choose-name-search",
8534
- props: {
8535
- name: "",
8536
- setCurrentContent,
8537
- initialContentSource
8538
- }
8539
- }),
8540
- children: t("Choose name")
8541
- }
8542
- ) })
8543
- ] });
8785
+ ] }) }),
8786
+ /* @__PURE__ */ jsx(ModalFooter, { children: /* @__PURE__ */ jsx(
8787
+ Button,
8788
+ {
8789
+ variant: "vechainKitPrimary",
8790
+ onClick: () => setCurrentContent({
8791
+ type: "choose-name-search",
8792
+ props: {
8793
+ name: "",
8794
+ setCurrentContent,
8795
+ initialContentSource
8796
+ }
8797
+ }),
8798
+ children: t("Choose name")
8799
+ }
8800
+ ) })
8801
+ ] });
8802
+ };
8803
+ var DomainListItem = ({
8804
+ domain,
8805
+ isCurrentDomain,
8806
+ onSelect
8807
+ }) => {
8808
+ const { darkMode: isDark } = useVeChainKitConfig();
8809
+ const { connection } = useWallet();
8810
+ const { t } = useTranslation();
8811
+ const metadata = useWalletMetadata(domain.name, connection.network);
8812
+ return /* @__PURE__ */ jsx(
8813
+ ListItem,
8814
+ {
8815
+ p: 4,
8816
+ bg: isDark ? "#1f1f1e" : "white",
8817
+ borderRadius: "xl",
8818
+ cursor: isCurrentDomain ? "default" : "pointer",
8819
+ opacity: isCurrentDomain ? 0.7 : 1,
8820
+ border: `1px solid ${isDark ? "#2d2d2d" : "#eaeaea"}`,
8821
+ _hover: {
8822
+ bg: isCurrentDomain ? isDark ? "#1f1f1e" : "white" : isDark ? "#252525" : "gray.50",
8823
+ borderColor: isDark ? "#3d3d3d" : "#dedede"
8824
+ },
8825
+ onClick: () => !isCurrentDomain && onSelect(domain.name),
8826
+ transition: "all 0.2s",
8827
+ children: /* @__PURE__ */ jsxs(HStack, { spacing: 3, align: "center", children: [
8828
+ /* @__PURE__ */ jsx(
8829
+ AccountAvatar,
8830
+ {
8831
+ props: {
8832
+ width: "40px",
8833
+ height: "40px",
8834
+ src: metadata.image ?? getPicassoImage(domain.name),
8835
+ alt: domain.name
8836
+ }
8837
+ }
8838
+ ),
8839
+ /* @__PURE__ */ jsxs(VStack, { align: "start", spacing: 0, flex: 1, children: [
8840
+ /* @__PURE__ */ jsx(
8841
+ Text,
8842
+ {
8843
+ color: isDark ? "whiteAlpha.900" : "gray.700",
8844
+ fontSize: "md",
8845
+ fontWeight: "500",
8846
+ children: domain.name
8847
+ }
8848
+ ),
8849
+ isCurrentDomain && /* @__PURE__ */ jsx(
8850
+ Text,
8851
+ {
8852
+ fontSize: "sm",
8853
+ color: isDark ? "whiteAlpha.600" : "blackAlpha.600",
8854
+ children: t("Current domain")
8855
+ }
8856
+ )
8857
+ ] }),
8858
+ isCurrentDomain && /* @__PURE__ */ jsx(
8859
+ Tag,
8860
+ {
8861
+ size: "sm",
8862
+ bg: isDark ? "#ffffff0a" : "whiteAlpha.100",
8863
+ color: isDark ? "whiteAlpha.900" : "blackAlpha.600",
8864
+ px: 3,
8865
+ py: 1,
8866
+ borderRadius: "full",
8867
+ children: t("Current")
8868
+ }
8869
+ )
8870
+ ] })
8871
+ },
8872
+ domain.name
8873
+ );
8544
8874
  };
8545
8875
  var ExistingDomainsList = ({
8546
8876
  domains,
@@ -8549,7 +8879,7 @@ var ExistingDomainsList = ({
8549
8879
  }) => {
8550
8880
  const { t } = useTranslation();
8551
8881
  const { darkMode: isDark } = useVeChainKitConfig();
8552
- const { account, connection } = useWallet();
8882
+ const { account } = useWallet();
8553
8883
  if (domains.length === 0 || isLoading) {
8554
8884
  return null;
8555
8885
  }
@@ -8578,85 +8908,15 @@ var ExistingDomainsList = ({
8578
8908
  ]
8579
8909
  }
8580
8910
  ),
8581
- /* @__PURE__ */ jsx(AccordionPanel, { pb: 4, pt: 2, children: /* @__PURE__ */ jsx(List, { spacing: 2, children: domains.map((domain) => {
8582
- const isCurrentDomain = domain.name === account?.domain;
8583
- const metadata = useWalletMetadata(
8584
- domain.name,
8585
- connection.network
8586
- );
8587
- return /* @__PURE__ */ jsx(
8588
- ListItem,
8589
- {
8590
- p: 4,
8591
- bg: isDark ? "#1f1f1e" : "white",
8592
- borderRadius: "xl",
8593
- cursor: isCurrentDomain ? "default" : "pointer",
8594
- opacity: isCurrentDomain ? 0.7 : 1,
8595
- border: `1px solid ${isDark ? "#2d2d2d" : "#eaeaea"}`,
8596
- _hover: {
8597
- bg: isCurrentDomain ? isDark ? "#1f1f1e" : "white" : isDark ? "#252525" : "gray.50",
8598
- borderColor: isDark ? "#3d3d3d" : "#dedede"
8599
- },
8600
- onClick: () => !isCurrentDomain && onDomainSelect(domain.name),
8601
- transition: "all 0.2s",
8602
- children: /* @__PURE__ */ jsxs(HStack, { spacing: 3, align: "center", children: [
8603
- /* @__PURE__ */ jsx(
8604
- AccountAvatar,
8605
- {
8606
- props: {
8607
- width: "40px",
8608
- height: "40px",
8609
- src: metadata.image,
8610
- alt: domain.name
8611
- }
8612
- }
8613
- ),
8614
- /* @__PURE__ */ jsxs(
8615
- VStack,
8616
- {
8617
- align: "start",
8618
- spacing: 0,
8619
- flex: 1,
8620
- children: [
8621
- /* @__PURE__ */ jsx(
8622
- Text,
8623
- {
8624
- color: isDark ? "whiteAlpha.900" : "gray.700",
8625
- fontSize: "md",
8626
- fontWeight: "500",
8627
- children: domain.name
8628
- }
8629
- ),
8630
- isCurrentDomain && /* @__PURE__ */ jsx(
8631
- Text,
8632
- {
8633
- fontSize: "sm",
8634
- color: isDark ? "whiteAlpha.600" : "blackAlpha.600",
8635
- children: t(
8636
- "Current domain"
8637
- )
8638
- }
8639
- )
8640
- ]
8641
- }
8642
- ),
8643
- isCurrentDomain && /* @__PURE__ */ jsx(
8644
- Tag,
8645
- {
8646
- size: "sm",
8647
- bg: isDark ? "#ffffff0a" : "whiteAlpha.100",
8648
- color: isDark ? "whiteAlpha.900" : "blackAlpha.600",
8649
- px: 3,
8650
- py: 1,
8651
- borderRadius: "full",
8652
- children: t("Current")
8653
- }
8654
- )
8655
- ] })
8656
- },
8657
- domain.name
8658
- );
8659
- }) }) })
8911
+ /* @__PURE__ */ jsx(AccordionPanel, { pb: 4, pt: 2, children: /* @__PURE__ */ jsx(List, { spacing: 2, children: domains.map((domain) => /* @__PURE__ */ jsx(
8912
+ DomainListItem,
8913
+ {
8914
+ domain,
8915
+ isCurrentDomain: domain.name === account?.domain,
8916
+ onSelect: onDomainSelect
8917
+ },
8918
+ domain.name
8919
+ )) }) })
8660
8920
  ] }) }) });
8661
8921
  };
8662
8922
  var ChooseNameSearchContent = ({
@@ -8826,7 +9086,7 @@ var ChooseNameSearchContent = ({
8826
9086
  /* @__PURE__ */ jsx(ModalFooter, { children: /* @__PURE__ */ jsx(
8827
9087
  Button,
8828
9088
  {
8829
- variant: "vechainKitSecondary",
9089
+ variant: "vechainKitPrimary",
8830
9090
  isDisabled: !isAvailable || !!error || isProtected || isFetchingDomainInfo,
8831
9091
  onClick: handleContinue,
8832
9092
  children: t("Continue")
@@ -8877,17 +9137,16 @@ var ChooseNameSummaryContent = ({
8877
9137
  }
8878
9138
  });
8879
9139
  const handleConfirm = async () => {
9140
+ if (upgradeRequired) {
9141
+ openUpgradeSmartAccountModal();
9142
+ return;
9143
+ }
8880
9144
  try {
8881
9145
  await sendTransaction();
8882
9146
  } catch (error) {
8883
9147
  console.error("Transaction failed:", error);
8884
9148
  }
8885
9149
  };
8886
- useEffect(() => {
8887
- if (upgradeRequired) {
8888
- openUpgradeSmartAccountModal();
8889
- }
8890
- }, [upgradeRequired, openUpgradeSmartAccountModal]);
8891
9150
  return /* @__PURE__ */ jsxs(Fragment, { children: [
8892
9151
  /* @__PURE__ */ jsxs(StickyHeaderContainer, { children: [
8893
9152
  /* @__PURE__ */ jsx(ModalHeader, { children: t("Confirm Name") }),
@@ -8921,7 +9180,7 @@ var ChooseNameSummaryContent = ({
8921
9180
  transactionPendingText: t("Claiming name..."),
8922
9181
  txReceipt,
8923
9182
  buttonText: t("Confirm"),
8924
- isDisabled: isTransactionPending || upgradeRequired
9183
+ isDisabled: isTransactionPending
8925
9184
  }
8926
9185
  ) })
8927
9186
  ] });
@@ -9139,6 +9398,7 @@ var en_default = {
9139
9398
  "Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.": "Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.",
9140
9399
  "Backup can be done only in the app securing your wallet.": "Backup can be done only in the app securing your wallet.",
9141
9400
  "Backup your wallet": "Backup your wallet",
9401
+ "Backup your wallet, configure MFA and set recovery options": "Backup your wallet, configure MFA and set recovery options",
9142
9402
  Balance: "Balance",
9143
9403
  "Balance:": "Balance:",
9144
9404
  "Benefits of this upgrade:": "Benefits of this upgrade:",
@@ -9251,6 +9511,7 @@ var en_default = {
9251
9511
  "Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.": "Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.",
9252
9512
  "Finally say goodbye to 0x addresses": "Finally say goodbye to 0x addresses",
9253
9513
  "For developers": "For developers",
9514
+ "For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.": "For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.",
9254
9515
  "Frequently asked questions": "Frequently asked questions",
9255
9516
  From: "From",
9256
9517
  Github: "Github",
@@ -9306,11 +9567,14 @@ var en_default = {
9306
9567
  Mainnet: "Mainnet",
9307
9568
  "Manage Custom Tokens": "Manage Custom Tokens",
9308
9569
  "Manage MFA": "Manage MFA",
9570
+ "Manage Recovery": "Manage Recovery",
9309
9571
  "Manage multi-factor authentication settings for your wallet.": "Manage multi-factor authentication settings for your wallet.",
9310
9572
  "Manage on VeBetterDAO": "Manage on VeBetterDAO",
9573
+ "Manage on {{appName}}": "Manage on {{appName}}",
9311
9574
  "Manage passkey login": "Manage passkey login",
9312
9575
  "Manage your embedded wallet security settings or back it up to a new device.": "Manage your embedded wallet security settings or back it up to a new device.",
9313
9576
  "Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.": "Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.",
9577
+ "Manage your login methods and passkeys": "Manage your login methods and passkeys",
9314
9578
  "Mobile browser may block the login window.": "Mobile browser may block the login window.",
9315
9579
  More: "More",
9316
9580
  "Multiclause Transaction temporary disabled": "Multiclause Transaction temporary disabled",
@@ -9387,6 +9651,8 @@ var en_default = {
9387
9651
  "Search dApps": "Search dApps",
9388
9652
  "Search for a domain": "Search for a domain",
9389
9653
  "Secured by": "Secured by",
9654
+ "Security preferences": "Security preferences",
9655
+ "Security settings": "Security settings",
9390
9656
  "Select Additional Login Method": "Select Additional Login Method",
9391
9657
  "Select Token": "Select Token",
9392
9658
  "Select an app": "Select an app",
@@ -9620,6 +9886,7 @@ var de_default = {
9620
9886
  "Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.": "Das Sichern Ihres Wallets ist entscheidend, da Sie der Einzige mit Zugriff auf Ihre privaten Schl\xFCssel sind. Wenn etwas schiefgeht, ist Ihr privater Schl\xFCssel der einzige Weg, um Ihre Verm\xF6genswerte wiederherzustellen. Die Art der Sicherung h\xE4ngt davon ab, wie Sie auf Ihr Wallet zugreifen: Wenn Sie VeWorld verwenden, ist die Sicherungsoption in der App verf\xFCgbar. F\xFCr Benutzer mit sozialem Login finden Sie Sicherungsoptionen im Wallet-Bereich. Wenn Sie \xFCber VeChain oder eine andere Ecosystem-App verbunden sind, m\xFCssen Sie die urspr\xFCngliche Website besuchen, sich anmelden und dort auf den Wallet-Bereich zugreifen.",
9621
9887
  "Backup can be done only in the app securing your wallet.": "Ein Backup kann nur in der App durchgef\xFChrt werden, die Ihr Wallet sichert.",
9622
9888
  "Backup your wallet": "Sichern Sie Ihr Wallet",
9889
+ "Backup your wallet, configure MFA and set recovery options": "Sichern Sie Ihre Wallet, konfigurieren Sie MFA und legen Sie Wiederherstellungsoptionen fest",
9623
9890
  Balance: "Guthaben",
9624
9891
  "Balance:": "Kontostand:",
9625
9892
  "Benefits of this upgrade:": "Vorteile dieses Upgrades:",
@@ -9732,6 +9999,7 @@ var de_default = {
9732
9999
  "Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.": "Fee Delegation ist ein einzigartiges Merkmal von VeChain, das es jemand anderem (einem Delegator) erm\xF6glicht, Ihre Transaktionsgeb\xFChren zu bezahlen. W\xE4hrend viele dApps und Dienstanbieter als Delegatoren fungieren, um neuen Benutzern den Einstieg zu erleichtern, k\xF6nnen bei einigen Transaktionen dennoch Geb\xFChren anfallen, die Sie mit Ihrem eigenen VTHO bezahlen m\xFCssen. Geb\xFChren sind notwendig, um Netzwerkmissbrauch zu verhindern und die Knoten zu entsch\xE4digen, die Transaktionen in der Blockchain verarbeiten und validieren. Wenn Sie die Geb\xFChren selbst bezahlen, k\xF6nnen Sie VTHO aus Ihren Verm\xF6genswerten ausw\xE4hlen, um die Transaktionskosten zu decken.",
9733
10000
  "Finally say goodbye to 0x addresses": "Sagen Sie endlich 0x-Adressen auf Wiedersehen",
9734
10001
  "For developers": "F\xFCr Entwickler",
10002
+ "For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.": "Aus Sicherheitsgr\xFCnden k\xF6nnen Sie die Einstellungen Ihrer eingebetteten Wallet nur auf der {{appName}} Plattform verwalten.",
9735
10003
  "Frequently asked questions": "H\xE4ufig gestellte Fragen",
9736
10004
  From: "Von",
9737
10005
  Github: "Github",
@@ -9787,11 +10055,14 @@ var de_default = {
9787
10055
  Mainnet: "Mainnet",
9788
10056
  "Manage Custom Tokens": "Benutzerdefinierte Token verwalten",
9789
10057
  "Manage MFA": "MFA verwalten",
10058
+ "Manage Recovery": "Wiederherstellung verwalten",
9790
10059
  "Manage multi-factor authentication settings for your wallet.": "Verwalten Sie die Einstellungen zur Multi-Faktor-Authentifizierung f\xFCr Ihr Wallet.",
9791
10060
  "Manage on VeBetterDAO": "Verwalten auf VeBetterDAO",
10061
+ "Manage on {{appName}}": "Verwalten auf {{appName}}",
9792
10062
  "Manage passkey login": "Passkey-Anmeldung verwalten",
9793
10063
  "Manage your embedded wallet security settings or back it up to a new device.": "Verwalten Sie die Sicherheitseinstellungen Ihres eingebetteten Wallets oder sichern Sie es auf einem neuen Ger\xE4t.",
9794
10064
  "Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.": "Verwalten Sie die Sicherheitseinstellungen Ihrer eingebetteten Wallet: Verwalten Sie Ihre Anmeldemethoden, f\xFCgen Sie einen Zugangsschl\xFCssel hinzu oder sichern Sie Ihre Wallet, um nie den Zugriff auf Ihre Assets zu verlieren.",
10065
+ "Manage your login methods and passkeys": "Verwalten Sie Ihre Anmeldemethoden und Zugangsschl\xFCssel",
9795
10066
  "Mobile browser may block the login window.": "Mobiler Browser kann das Anmeldefenster blockieren.",
9796
10067
  More: "Mehr",
9797
10068
  "Multiclause Transaction temporary disabled": "Multiclause-Transaktion vor\xFCbergehend deaktiviert",
@@ -9868,6 +10139,8 @@ var de_default = {
9868
10139
  "Search dApps": "dApps durchsuchen",
9869
10140
  "Search for a domain": "Nach einer Domain suchen",
9870
10141
  "Secured by": "Gesichert durch",
10142
+ "Security preferences": "Sicherheitseinstellungen",
10143
+ "Security settings": "Sicherheitseinstellungen",
9871
10144
  "Select Additional Login Method": "Zus\xE4tzliche Anmeldemethode ausw\xE4hlen",
9872
10145
  "Select Token": "Token ausw\xE4hlen",
9873
10146
  "Select an app": "W\xE4hlen Sie eine App",
@@ -10101,6 +10374,7 @@ var it_default = {
10101
10374
  "Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.": "Fare il backup del tuo portafoglio \xE8 fondamentale poich\xE9 sei l'unico ad avere accesso alle tue chiavi private. Se qualcosa va storto, avere la tua chiave privata \xE8 l'unico modo per recuperare i tuoi beni. Come fare il backup dipende da come accedi al tuo portafoglio: se usi VeWorld, l'opzione di backup \xE8 disponibile all'interno dell'app. Per gli utenti con accesso tramite login sociale, puoi trovare opzioni di backup nella sezione Portafoglio. Se sei connesso tramite VeChain o un'altra app dell'ecosistema, dovrai visitare il sito originale, accedere e raggiungere la sezione Portafoglio da l\xEC.",
10102
10375
  "Backup can be done only in the app securing your wallet.": "Il backup pu\xF2 essere effettuato solo nell'app che protegge il tuo portafoglio.",
10103
10376
  "Backup your wallet": "Esegui il backup del tuo portafoglio",
10377
+ "Backup your wallet, configure MFA and set recovery options": "Esegui il backup del tuo portafoglio, configura MFA e imposta le opzioni di recupero",
10104
10378
  Balance: "Saldo",
10105
10379
  "Balance:": "Saldo:",
10106
10380
  "Benefits of this upgrade:": "Vantaggi di questo aggiornamento:",
@@ -10213,6 +10487,7 @@ var it_default = {
10213
10487
  "Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.": "La delega delle commissioni \xE8 una funzione unica di VeChain che consente a qualcun altro (un delegante) di pagare le tue commissioni di transazione. Mentre molte dApp e fornitori di servizi agiscono come deleganti per facilitare l'inizio per i nuovi utenti, alcune transazioni potrebbero comunque richiedere che tu paghi le commissioni usando il tuo VTHO. Le commissioni sono necessarie per prevenire lo spam di rete e compensare i nodi che elaborano e convalidano le transazioni sulla blockchain. Quando paghi le commissioni di persona, potrai selezionare VTHO dai tuoi asset per coprire il costo della transazione.",
10214
10488
  "Finally say goodbye to 0x addresses": "Finalmente d\xEC addio agli indirizzi 0x",
10215
10489
  "For developers": "Per sviluppatori",
10490
+ "For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.": "Per motivi di sicurezza, puoi gestire le impostazioni del tuo portafoglio integrato solo sulla piattaforma {{appName}}.",
10216
10491
  "Frequently asked questions": "Domande frequenti",
10217
10492
  From: "Da",
10218
10493
  Github: "Github",
@@ -10268,11 +10543,14 @@ var it_default = {
10268
10543
  Mainnet: "Mainnet",
10269
10544
  "Manage Custom Tokens": "Gestisci Token Personalizzati",
10270
10545
  "Manage MFA": "Gestisci MFA",
10546
+ "Manage Recovery": "Gestisci Recupero",
10271
10547
  "Manage multi-factor authentication settings for your wallet.": "Gestisci le impostazioni di autenticazione a pi\xF9 fattori per il tuo portafoglio.",
10272
10548
  "Manage on VeBetterDAO": "Gestisci su VeBetterDAO",
10549
+ "Manage on {{appName}}": "Gestisci su {{appName}}",
10273
10550
  "Manage passkey login": "Gestisci login con chiave di accesso",
10274
10551
  "Manage your embedded wallet security settings or back it up to a new device.": "Gestisci le impostazioni di sicurezza del tuo portafoglio incorporato o esegui il backup su un nuovo dispositivo.",
10275
10552
  "Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.": "Gestisci le impostazioni di sicurezza del tuo portafoglio integrato: gestisci i tuoi metodi di accesso, aggiungi una chiave di accesso o esegui il backup del portafoglio per non perdere mai l'accesso ai tuoi beni.",
10553
+ "Manage your login methods and passkeys": "Gestisci i tuoi metodi di accesso e chiavi di accesso",
10276
10554
  "Mobile browser may block the login window.": "Il browser mobile potrebbe bloccare la finestra di accesso.",
10277
10555
  More: "Altro",
10278
10556
  "Multiclause Transaction temporary disabled": "Transazione multiclausola temporaneamente disabilitata",
@@ -10349,6 +10627,8 @@ var it_default = {
10349
10627
  "Search dApps": "Cerca dApp",
10350
10628
  "Search for a domain": "Cerca un dominio",
10351
10629
  "Secured by": "Protetto da",
10630
+ "Security preferences": "Preferenze di sicurezza",
10631
+ "Security settings": "Impostazioni di sicurezza",
10352
10632
  "Select Additional Login Method": "Seleziona metodo di accesso aggiuntivo",
10353
10633
  "Select Token": "Seleziona Token",
10354
10634
  "Select an app": "Seleziona un'app",
@@ -10582,6 +10862,7 @@ var fr_default = {
10582
10862
  "Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.": "Sauvegarder votre portefeuille est crucial puisque vous \xEAtes le seul \xE0 avoir acc\xE8s \xE0 vos cl\xE9s priv\xE9es. Si quelque chose ne va pas, avoir votre cl\xE9 priv\xE9e est le seul moyen de r\xE9cup\xE9rer vos actifs. La fa\xE7on de sauvegarder d\xE9pend de la mani\xE8re dont vous acc\xE9dez \xE0 votre portefeuille : si vous utilisez VeWorld, l'option de sauvegarde est disponible dans l'application. Pour les utilisateurs de connexion sociale, vous trouverez les options de sauvegarde dans la section Portefeuille. Si vous \xEAtes connect\xE9 via VeChain ou une autre application de l'\xE9cosyst\xE8me, vous devrez visiter le site web d'origine, vous connecter et acc\xE9der \xE0 la section Portefeuille \xE0 partir de l\xE0.",
10583
10863
  "Backup can be done only in the app securing your wallet.": "La sauvegarde ne peut \xEAtre effectu\xE9e que dans l'application s\xE9curisant votre portefeuille.",
10584
10864
  "Backup your wallet": "Sauvegardez votre portefeuille",
10865
+ "Backup your wallet, configure MFA and set recovery options": "Sauvegardez votre portefeuille, configurez l'authentification multi-facteurs et d\xE9finissez les options de r\xE9cup\xE9ration",
10585
10866
  Balance: "Solde",
10586
10867
  "Balance:": "Solde:",
10587
10868
  "Benefits of this upgrade:": "Avantages de cette mise \xE0 niveau :",
@@ -10694,6 +10975,7 @@ var fr_default = {
10694
10975
  "Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.": "La d\xE9l\xE9gation de frais est une fonctionnalit\xE9 unique de VeChain qui permet \xE0 quelqu'un d'autre (un d\xE9l\xE9gataire) de payer vos frais de transaction. Bien que de nombreuses dApps et prestataires de services agissent en tant que d\xE9l\xE9gataires pour faciliter le d\xE9marrage des nouveaux utilisateurs, certaines transactions peuvent encore n\xE9cessiter que vous payiez des frais en utilisant votre propre VTHO. Les frais sont n\xE9cessaires pour pr\xE9venir le spam sur le r\xE9seau et pour r\xE9mun\xE9rer les n\u0153uds qui traitent et valident les transactions sur la blockchain. Lorsque vous payez vous-m\xEAme les frais, vous pourrez s\xE9lectionner VTHO parmi vos actifs pour couvrir le co\xFBt de la transaction.",
10695
10976
  "Finally say goodbye to 0x addresses": "Enfin, dites adieu aux adresses 0x",
10696
10977
  "For developers": "Pour les d\xE9veloppeurs",
10978
+ "For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.": "Pour des raisons de s\xE9curit\xE9, vous pouvez g\xE9rer les param\xE8tres de votre portefeuille int\xE9gr\xE9 uniquement sur la plateforme {{appName}}.",
10697
10979
  "Frequently asked questions": "Questions fr\xE9quemment pos\xE9es",
10698
10980
  From: "De",
10699
10981
  Github: "Github",
@@ -10749,11 +11031,14 @@ var fr_default = {
10749
11031
  Mainnet: "Mainnet",
10750
11032
  "Manage Custom Tokens": "G\xE9rer les jetons personnalis\xE9s",
10751
11033
  "Manage MFA": "G\xE9rer la MFA",
11034
+ "Manage Recovery": "G\xE9rer la r\xE9cup\xE9ration",
10752
11035
  "Manage multi-factor authentication settings for your wallet.": "G\xE9rez les param\xE8tres d'authentification \xE0 plusieurs facteurs pour votre portefeuille.",
10753
11036
  "Manage on VeBetterDAO": "G\xE9rer sur VeBetterDAO",
11037
+ "Manage on {{appName}}": "G\xE9rer sur {{appName}}",
10754
11038
  "Manage passkey login": "G\xE9rer la connexion par cl\xE9 de passe",
10755
11039
  "Manage your embedded wallet security settings or back it up to a new device.": "G\xE9rez les param\xE8tres de s\xE9curit\xE9 de votre portefeuille int\xE9gr\xE9 ou sauvegardez-le sur un nouvel appareil.",
10756
11040
  "Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.": "G\xE9rez les param\xE8tres de s\xE9curit\xE9 de votre portefeuille int\xE9gr\xE9 : g\xE9rez vos m\xE9thodes de connexion, ajoutez une cl\xE9 d'acc\xE8s ou sauvegardez votre portefeuille pour ne jamais perdre l'acc\xE8s \xE0 vos actifs.",
11041
+ "Manage your login methods and passkeys": "G\xE9rez vos m\xE9thodes de connexion et cl\xE9s d'acc\xE8s",
10757
11042
  "Mobile browser may block the login window.": "Le navigateur mobile peut bloquer la fen\xEAtre de connexion.",
10758
11043
  More: "Plus",
10759
11044
  "Multiclause Transaction temporary disabled": "Transaction \xE0 clauses multiples temporairement d\xE9sactiv\xE9e",
@@ -10830,6 +11115,8 @@ var fr_default = {
10830
11115
  "Search dApps": "Rechercher des dApps",
10831
11116
  "Search for a domain": "Rechercher un domaine",
10832
11117
  "Secured by": "S\xE9curis\xE9 par",
11118
+ "Security preferences": "Pr\xE9f\xE9rences de s\xE9curit\xE9",
11119
+ "Security settings": "Param\xE8tres de s\xE9curit\xE9",
10833
11120
  "Select Additional Login Method": "S\xE9lectionner une m\xE9thode de connexion suppl\xE9mentaire",
10834
11121
  "Select Token": "S\xE9lectionner un jeton",
10835
11122
  "Select an app": "S\xE9lectionnez une application",
@@ -11063,6 +11350,7 @@ var es_default = {
11063
11350
  "Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.": "Respaldar tu billetera es crucial ya que eres el \xFAnico con acceso a tus claves privadas. Si algo sale mal, tener tu clave privada es la \xFAnica manera de recuperar tus activos. C\xF3mo hacer un respaldo depende de c\xF3mo accedas a tu billetera: Si usas VeWorld, la opci\xF3n de respaldo est\xE1 disponible dentro de la aplicaci\xF3n. Para usuarios de inicio de sesi\xF3n social, puedes encontrar opciones de respaldo en la secci\xF3n Billetera. Si est\xE1s conectado a trav\xE9s de VeChain u otra aplicaci\xF3n del ecosistema, necesitar\xE1s visitar el sitio web original, iniciar sesi\xF3n y acceder a la secci\xF3n de Billetera desde all\xED.",
11064
11351
  "Backup can be done only in the app securing your wallet.": "La copia de seguridad solo se puede hacer en la aplicaci\xF3n que asegura tu billetera.",
11065
11352
  "Backup your wallet": "Respalda tu billetera",
11353
+ "Backup your wallet, configure MFA and set recovery options": "Realiza una copia de seguridad de tu billetera, configura MFA y establece opciones de recuperaci\xF3n",
11066
11354
  Balance: "Saldo",
11067
11355
  "Balance:": "Saldo:",
11068
11356
  "Benefits of this upgrade:": "Beneficios de esta actualizaci\xF3n:",
@@ -11175,6 +11463,7 @@ var es_default = {
11175
11463
  "Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.": "La delegaci\xF3n de tarifas es una funci\xF3n \xFAnica de VeChain que permite que otra persona (un delegado) pague las tarifas de tus transacciones. Aunque muchas aplicaciones descentralizadas (dApps) y proveedores de servicios act\xFAan como delegados para facilitar a los nuevos usuarios el comienzo, es posible que algunas transacciones a\xFAn requieran que pagues tarifas usando tu propio VTHO. Las tarifas son necesarias para prevenir el spam en la red y compensar a los nodos que procesan y validan las transacciones en la cadena de bloques. Al pagar las tarifas t\xFA mismo, podr\xE1s seleccionar VTHO de tus activos para cubrir el costo de la transacci\xF3n.",
11176
11464
  "Finally say goodbye to 0x addresses": "Finalmente di adi\xF3s a las direcciones 0x",
11177
11465
  "For developers": "Para desarrolladores",
11466
+ "For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.": "Por razones de seguridad, puedes gestionar la configuraci\xF3n de tu billetera integrada solo en la plataforma {{appName}}.",
11178
11467
  "Frequently asked questions": "Preguntas frecuentes",
11179
11468
  From: "De",
11180
11469
  Github: "Github",
@@ -11230,11 +11519,14 @@ var es_default = {
11230
11519
  Mainnet: "Red principal",
11231
11520
  "Manage Custom Tokens": "Gestionar tokens personalizados",
11232
11521
  "Manage MFA": "Gestionar MFA",
11522
+ "Manage Recovery": "Gestionar la Recuperaci\xF3n",
11233
11523
  "Manage multi-factor authentication settings for your wallet.": "Gestionar configuraciones de autenticaci\xF3n multifactor para tu billetera.",
11234
11524
  "Manage on VeBetterDAO": "Gestionar en VeBetterDAO",
11525
+ "Manage on {{appName}}": "Gestionar en {{appName}}",
11235
11526
  "Manage passkey login": "Administrar inicio de sesi\xF3n con llave de acceso",
11236
11527
  "Manage your embedded wallet security settings or back it up to a new device.": "Gestiona la configuraci\xF3n de seguridad de tu monedero incrustado o haz una copia de seguridad en un nuevo dispositivo.",
11237
11528
  "Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.": "Administra la configuraci\xF3n de seguridad de tu billetera integrada: gestiona tus m\xE9todos de inicio de sesi\xF3n, a\xF1ade una clave de acceso o realiza una copia de seguridad de tu billetera para no perder nunca el acceso a tus activos.",
11529
+ "Manage your login methods and passkeys": "Gestiona tus m\xE9todos de inicio de sesi\xF3n y claves de acceso",
11238
11530
  "Mobile browser may block the login window.": "El navegador m\xF3vil puede bloquear la ventana de inicio de sesi\xF3n.",
11239
11531
  More: "M\xE1s",
11240
11532
  "Multiclause Transaction temporary disabled": "Transacci\xF3n con m\xFAltiples cl\xE1usulas temporalmente deshabilitada",
@@ -11311,6 +11603,8 @@ var es_default = {
11311
11603
  "Search dApps": "Buscar dApps",
11312
11604
  "Search for a domain": "Buscar un dominio",
11313
11605
  "Secured by": "Asegurado por",
11606
+ "Security preferences": "Preferencias de seguridad",
11607
+ "Security settings": "Configuraciones de seguridad",
11314
11608
  "Select Additional Login Method": "Seleccionar M\xE9todo de Inicio de Sesi\xF3n Adicional",
11315
11609
  "Select Token": "Seleccionar Token",
11316
11610
  "Select an app": "Seleccionar una aplicaci\xF3n",
@@ -11544,6 +11838,7 @@ var zh_default = {
11544
11838
  "Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.": "\u5907\u4EFD\u60A8\u7684\u94B1\u5305\u975E\u5E38\u91CD\u8981\uFF0C\u56E0\u4E3A\u60A8\u662F\u552F\u4E00\u80FD\u8BBF\u95EE\u60A8\u7684\u79C1\u94A5\u7684\u4EBA\u3002\u5982\u679C\u51FA\u73B0\u95EE\u9898\uFF0C\u62E5\u6709\u60A8\u7684\u79C1\u94A5\u662F\u6062\u590D\u8D44\u4EA7\u7684\u552F\u4E00\u65B9\u6CD5\u3002\u5907\u4EFD\u65B9\u5F0F\u53D6\u51B3\u4E8E\u60A8\u5982\u4F55\u8BBF\u95EE\u94B1\u5305\uFF1A\u5982\u679C\u4F7F\u7528 VeWorld\uFF0C\u5907\u4EFD\u9009\u9879\u5728\u5E94\u7528\u5185\u53EF\u7528\u3002\u5BF9\u4E8E\u793E\u4EA4\u767B\u5F55\u7528\u6237\uFF0C\u60A8\u53EF\u4EE5\u5728\u94B1\u5305\u90E8\u5206\u627E\u5230\u5907\u4EFD\u9009\u9879\u3002\u5982\u679C\u901A\u8FC7 VeChain \u6216\u5176\u4ED6\u751F\u6001\u7CFB\u7EDF\u5E94\u7528\u8FDE\u63A5\uFF0C\u60A8\u9700\u8981\u8BBF\u95EE\u539F\u59CB\u7F51\u7AD9\uFF0C\u767B\u5F55\u5E76\u4ECE\u90A3\u91CC\u8BBF\u95EE\u94B1\u5305\u90E8\u5206\u3002",
11545
11839
  "Backup can be done only in the app securing your wallet.": "\u5907\u4EFD\u53EA\u80FD\u5728\u4FDD\u62A4\u60A8\u94B1\u5305\u7684\u5E94\u7528\u4E2D\u5B8C\u6210\u3002",
11546
11840
  "Backup your wallet": "\u5907\u4EFD\u60A8\u7684\u94B1\u5305",
11841
+ "Backup your wallet, configure MFA and set recovery options": "\u5907\u4EFD\u60A8\u7684\u94B1\u5305\uFF0C\u914D\u7F6E\u591A\u56E0\u7D20\u8EAB\u4EFD\u9A8C\u8BC1\u5E76\u8BBE\u7F6E\u6062\u590D\u9009\u9879",
11547
11842
  Balance: "\u4F59\u989D",
11548
11843
  "Balance:": "\u4F59\u989D\uFF1A",
11549
11844
  "Benefits of this upgrade:": "\u6B64\u5347\u7EA7\u7684\u597D\u5904\uFF1A",
@@ -11656,6 +11951,7 @@ var zh_default = {
11656
11951
  "Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.": "\u8D39\u7528\u59D4\u6258\u662F\u552F\u94FE\uFF08VeChain\uFF09\u7684\u4E00\u4E2A\u72EC\u7279\u529F\u80FD\uFF0C\u5B83\u5141\u8BB8\u5176\u4ED6\u4EBA\uFF08\u5373\u59D4\u6258\u8005\uFF09\u4E3A\u60A8\u7684\u4EA4\u6613\u8D39\u7528\u4E70\u5355\u3002\u867D\u7136\u8BB8\u591AdApp\u548C\u670D\u52A1\u63D0\u4F9B\u5546\u5145\u5F53\u59D4\u6258\u8005\u4EE5\u65B9\u4FBF\u65B0\u7528\u6237\u4E0A\u624B\uFF0C\u4F46\u67D0\u4E9B\u4EA4\u6613\u53EF\u80FD\u4ECD\u9700\u8981\u60A8\u4F7F\u7528\u81EA\u5DF1\u7684VTHO\u652F\u4ED8\u8D39\u7528\u3002\u8D39\u7528\u662F\u9632\u6B62\u7F51\u7EDC\u5783\u573E\u53CA\u8865\u507F\u5904\u7406\u548C\u9A8C\u8BC1\u533A\u5757\u94FE\u4EA4\u6613\u7684\u8282\u70B9\u6240\u5FC5\u9700\u7684\u3002\u5728\u60A8\u81EA\u5DF1\u652F\u4ED8\u8D39\u7528\u65F6\uFF0C\u60A8\u53EF\u4EE5\u4ECE\u8D44\u4EA7\u4E2D\u9009\u62E9VTHO\u6765\u8986\u76D6\u4EA4\u6613\u6210\u672C\u3002",
11657
11952
  "Finally say goodbye to 0x addresses": "\u6700\u7EC8\u544A\u522B0x\u5730\u5740",
11658
11953
  "For developers": "\u4E3A\u5F00\u53D1\u8005",
11954
+ "For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.": "\u51FA\u4E8E\u5B89\u5168\u539F\u56E0\uFF0C\u60A8\u53EA\u80FD\u5728 {{appName}} \u5E73\u53F0\u4E0A\u7BA1\u7406\u5D4C\u5165\u5F0F\u94B1\u5305\u8BBE\u7F6E\u3002",
11659
11955
  "Frequently asked questions": "\u5E38\u89C1\u95EE\u9898\u89E3\u7B54",
11660
11956
  From: "\u81EA",
11661
11957
  Github: "Github",
@@ -11711,11 +12007,14 @@ var zh_default = {
11711
12007
  Mainnet: "\u4E3B\u7F51",
11712
12008
  "Manage Custom Tokens": "\u7BA1\u7406\u81EA\u5B9A\u4E49\u4EE3\u5E01",
11713
12009
  "Manage MFA": "\u7BA1\u7406\u591A\u56E0\u7D20\u8BA4\u8BC1",
12010
+ "Manage Recovery": "\u7BA1\u7406\u6062\u590D",
11714
12011
  "Manage multi-factor authentication settings for your wallet.": "\u7BA1\u7406\u60A8\u94B1\u5305\u7684\u591A\u56E0\u7D20\u8BA4\u8BC1\u8BBE\u7F6E\u3002",
11715
12012
  "Manage on VeBetterDAO": "\u5728VeBetterDAO\u4E0A\u7BA1\u7406",
12013
+ "Manage on {{appName}}": "\u5728 {{appName}} \u4E0A\u7BA1\u7406",
11716
12014
  "Manage passkey login": "\u7BA1\u7406\u5BC6\u7801\u767B\u5F55",
11717
12015
  "Manage your embedded wallet security settings or back it up to a new device.": "\u7BA1\u7406\u60A8\u7684\u5D4C\u5165\u94B1\u5305\u5B89\u5168\u8BBE\u7F6E\u6216\u5C06\u5176\u5907\u4EFD\u5230\u65B0\u8BBE\u5907\u3002",
11718
12016
  "Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.": "\u7BA1\u7406\u60A8\u7684\u5D4C\u5165\u5F0F\u94B1\u5305\u7684\u5B89\u5168\u8BBE\u7F6E\uFF1A\u5904\u7406\u60A8\u7684\u767B\u5F55\u65B9\u6CD5\uFF0C\u6DFB\u52A0\u5BC6\u7801\u94A5\u5319\u6216\u5907\u4EFD\u60A8\u7684\u94B1\u5305\uFF0C\u4EE5\u514D\u5931\u53BB\u5BF9\u8D44\u4EA7\u7684\u8BBF\u95EE\u3002",
12017
+ "Manage your login methods and passkeys": "\u7BA1\u7406\u60A8\u7684\u767B\u5F55\u65B9\u5F0F\u548C\u901A\u884C\u5BC6\u94A5",
11719
12018
  "Mobile browser may block the login window.": "\u79FB\u52A8\u6D4F\u89C8\u5668\u53EF\u80FD\u4F1A\u963B\u6B62\u767B\u5F55\u7A97\u53E3\u3002",
11720
12019
  More: "\u66F4\u591A",
11721
12020
  "Multiclause Transaction temporary disabled": "\u591A\u6761\u6B3E\u4EA4\u6613\u6682\u65F6\u7981\u7528",
@@ -11792,6 +12091,8 @@ var zh_default = {
11792
12091
  "Search dApps": "\u641C\u7D22 dApps",
11793
12092
  "Search for a domain": "\u641C\u7D22\u57DF\u540D",
11794
12093
  "Secured by": "\u5B89\u5168\u4FDD\u969C",
12094
+ "Security preferences": "\u5B89\u5168\u504F\u597D",
12095
+ "Security settings": "\u5B89\u5168\u8BBE\u7F6E",
11795
12096
  "Select Additional Login Method": "\u9009\u62E9\u5176\u4ED6\u767B\u5F55\u65B9\u5F0F",
11796
12097
  "Select Token": "\u9009\u62E9\u4EE3\u5E01",
11797
12098
  "Select an app": "\u9009\u62E9\u4E00\u4E2A\u5E94\u7528",
@@ -12025,6 +12326,7 @@ var ja_default = {
12025
12326
  "Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.": "\u30A6\u30A9\u30EC\u30C3\u30C8\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u306F\u975E\u5E38\u306B\u91CD\u8981\u3067\u3059\u3002\u306A\u305C\u306A\u3089\u3001\u3042\u306A\u305F\u3060\u3051\u304C\u79D8\u5BC6\u9375\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u308B\u304B\u3089\u3067\u3059\u3002\u4F55\u304B\u554F\u984C\u304C\u767A\u751F\u3057\u305F\u5834\u5408\u3001\u79D8\u5BC6\u9375\u3092\u6301\u3063\u3066\u3044\u308B\u3053\u3068\u304C\u8CC7\u7523\u3092\u56DE\u5FA9\u3059\u308B\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u306E\u65B9\u6CD5\u306F\u30A6\u30A9\u30EC\u30C3\u30C8\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u65B9\u6CD5\u306B\u3088\u308A\u307E\u3059\uFF1AVeWorld\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u5834\u5408\u3001\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u30A2\u30D7\u30EA\u5185\u3067\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u30BD\u30FC\u30B7\u30E3\u30EB\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u306E\u5834\u5408\u3001\u30A6\u30A9\u30EC\u30C3\u30C8\u30BB\u30AF\u30B7\u30E7\u30F3\u3067\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002VeChain\u307E\u305F\u306F\u5225\u306E\u30A8\u30B3\u30B7\u30B9\u30C6\u30E0\u30A2\u30D7\u30EA\u3092\u901A\u3058\u3066\u63A5\u7D9A\u3057\u3066\u3044\u308B\u5834\u5408\u3001\u5143\u306EWeb\u30B5\u30A4\u30C8\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u3001\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u30A6\u30A9\u30EC\u30C3\u30C8\u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002",
12026
12327
  "Backup can be done only in the app securing your wallet.": "\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u306F\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u4FDD\u8B77\u3057\u3066\u3044\u308B\u30A2\u30D7\u30EA\u3067\u306E\u307F\u884C\u3048\u307E\u3059\u3002",
12027
12328
  "Backup your wallet": "\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3059\u308B",
12329
+ "Backup your wallet, configure MFA and set recovery options": "\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u3001MFA\u3092\u8A2D\u5B9A\u3057\u3001\u56DE\u5FA9\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
12028
12330
  Balance: "\u6B8B\u9AD8",
12029
12331
  "Balance:": "\u6B8B\u9AD8\uFF1A",
12030
12332
  "Benefits of this upgrade:": "\u3053\u306E\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u306E\u5229\u70B9\uFF1A",
@@ -12137,6 +12439,7 @@ var ja_default = {
12137
12439
  "Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.": "\u624B\u6570\u6599\u30C7\u30EA\u30B2\u30FC\u30B7\u30E7\u30F3\u306F\u3001VeChain\u306E\u30E6\u30CB\u30FC\u30AF\u306A\u6A5F\u80FD\u3067\u3042\u308A\u3001\u4ED6\u306E\u8AB0\u304B\uFF08\u30C7\u30EA\u30B2\u30FC\u30BF\u30FC\uFF09\u304C\u3042\u306A\u305F\u306E\u53D6\u5F15\u624B\u6570\u6599\u3092\u652F\u6255\u3046\u3053\u3068\u3092\u53EF\u80FD\u306B\u3057\u307E\u3059\u3002\u591A\u304F\u306EdApps\u304A\u3088\u3073\u30B5\u30FC\u30D3\u30B9\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u30C7\u30EA\u30B2\u30FC\u30BF\u30FC\u3068\u3057\u3066\u6A5F\u80FD\u3057\u3001\u65B0\u898F\u30E6\u30FC\u30B6\u30FC\u304C\u958B\u59CB\u3057\u3084\u3059\u304F\u3057\u3066\u3044\u307E\u3059\u304C\u3001\u4E00\u90E8\u306E\u53D6\u5F15\u3067\u306F\u4F9D\u7136\u3068\u3057\u3066\u72EC\u81EA\u306EVTHO\u3092\u4F7F\u7528\u3057\u3066\u624B\u6570\u6599\u3092\u652F\u6255\u3046\u5FC5\u8981\u304C\u3042\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002\u624B\u6570\u6599\u306F\u3001\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30B9\u30D1\u30E0\u3092\u9632\u304E\u3001\u30D6\u30ED\u30C3\u30AF\u30C1\u30A7\u30FC\u30F3\u4E0A\u306E\u53D6\u5F15\u3092\u51E6\u7406\u304A\u3088\u3073\u691C\u8A3C\u3059\u308B\u30CE\u30FC\u30C9\u306B\u5831\u916C\u3092\u4E0E\u3048\u308B\u305F\u3081\u306B\u5FC5\u8981\u3067\u3059\u3002\u624B\u6570\u6599\u3092\u81EA\u5206\u3067\u652F\u6255\u3046\u5834\u5408\u306F\u3001\u8CC7\u7523\u304B\u3089VTHO\u3092\u9078\u629E\u3057\u3066\u53D6\u5F15\u30B3\u30B9\u30C8\u3092\u30AB\u30D0\u30FC\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002",
12138
12440
  "Finally say goodbye to 0x addresses": "\u3064\u3044\u306B0x\u30A2\u30C9\u30EC\u30B9\u306B\u304A\u5225\u308C\u3092\u8A00\u3044\u307E\u3057\u3087\u3046",
12139
12441
  "For developers": "\u958B\u767A\u8005\u5411\u3051",
12442
+ "For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.": "\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u4E0A\u306E\u7406\u7531\u304B\u3089\u3001\u57CB\u3081\u8FBC\u307F\u30A6\u30A9\u30EC\u30C3\u30C8\u306E\u8A2D\u5B9A\u306F{{appName}}\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306E\u307F\u7BA1\u7406\u3067\u304D\u307E\u3059\u3002",
12140
12443
  "Frequently asked questions": "\u3088\u304F\u3042\u308B\u8CEA\u554F",
12141
12444
  From: "\u9001\u4FE1\u5143",
12142
12445
  Github: "\u30AE\u30C3\u30C8\u30CF\u30D6",
@@ -12192,11 +12495,14 @@ var ja_default = {
12192
12495
  Mainnet: "\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8",
12193
12496
  "Manage Custom Tokens": "\u30AB\u30B9\u30BF\u30E0\u30C8\u30FC\u30AF\u30F3\u306E\u7BA1\u7406",
12194
12497
  "Manage MFA": "MFA\u3092\u7BA1\u7406\u3059\u308B",
12498
+ "Manage Recovery": "\u30EA\u30AB\u30D0\u30EA\u30FC\u306E\u7BA1\u7406",
12195
12499
  "Manage multi-factor authentication settings for your wallet.": "\u30A6\u30A9\u30EC\u30C3\u30C8\u306E\u591A\u8981\u7D20\u8A8D\u8A3C\u8A2D\u5B9A\u3092\u7BA1\u7406\u3059\u308B\u3002",
12196
12500
  "Manage on VeBetterDAO": "VeBetterDAO\u3067\u7BA1\u7406",
12501
+ "Manage on {{appName}}": "{{appName}}\u3067\u7BA1\u7406\u3059\u308B",
12197
12502
  "Manage passkey login": "\u30D1\u30B9\u30AD\u30FC\u306E\u30ED\u30B0\u30A4\u30F3\u3092\u7BA1\u7406",
12198
12503
  "Manage your embedded wallet security settings or back it up to a new device.": "\u7D44\u307F\u8FBC\u307F\u30A6\u30A9\u30EC\u30C3\u30C8\u306E\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u8A2D\u5B9A\u3092\u7BA1\u7406\u3057\u305F\u308A\u3001\u65B0\u3057\u3044\u30C7\u30D0\u30A4\u30B9\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u305F\u308A\u3057\u307E\u3059\u3002",
12199
12504
  "Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.": "\u57CB\u3081\u8FBC\u307F\u30A6\u30A9\u30EC\u30C3\u30C8\u306E\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u8A2D\u5B9A\u3092\u7BA1\u7406\u3057\u307E\u3059: \u30ED\u30B0\u30A4\u30F3\u65B9\u6CD5\u3092\u51E6\u7406\u3057\u305F\u308A\u3001\u30D1\u30B9\u30AD\u30FC\u3092\u8FFD\u52A0\u3057\u305F\u308A\u3001\u8CC7\u7523\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u5931\u308F\u306A\u3044\u3088\u3046\u306B\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u305F\u308A\u3057\u307E\u3059\u3002",
12505
+ "Manage your login methods and passkeys": "\u30ED\u30B0\u30A4\u30F3\u65B9\u6CD5\u3068\u30D1\u30B9\u30AD\u30FC\u3092\u7BA1\u7406\u3059\u308B",
12200
12506
  "Mobile browser may block the login window.": "\u30E2\u30D0\u30A4\u30EB\u30D6\u30E9\u30A6\u30B6\u306F\u30ED\u30B0\u30A4\u30F3\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u30D6\u30ED\u30C3\u30AF\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",
12201
12507
  More: "\u3082\u3063\u3068\u898B\u308B",
12202
12508
  "Multiclause Transaction temporary disabled": "\u8907\u6570\u6761\u9805\u306E\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306F\u4E00\u6642\u7684\u306B\u7121\u52B9\u5316\u3055\u308C\u3066\u3044\u307E\u3059\u3002",
@@ -12273,6 +12579,8 @@ var ja_default = {
12273
12579
  "Search dApps": "dApps\u3092\u691C\u7D22",
12274
12580
  "Search for a domain": "\u30C9\u30E1\u30A4\u30F3\u3092\u691C\u7D22",
12275
12581
  "Secured by": "\u306B\u3088\u3063\u3066\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u4FDD\u8B77\u3055\u308C\u3066\u3044\u307E\u3059",
12582
+ "Security preferences": "\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u8A2D\u5B9A",
12583
+ "Security settings": "\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u8A2D\u5B9A",
12276
12584
  "Select Additional Login Method": "\u8FFD\u52A0\u306E\u30ED\u30B0\u30A4\u30F3\u65B9\u6CD5\u3092\u9078\u629E",
12277
12585
  "Select Token": "\u30C8\u30FC\u30AF\u30F3\u3092\u9078\u629E",
12278
12586
  "Select an app": "\u30A2\u30D7\u30EA\u3092\u9078\u629E",
@@ -12596,7 +12904,7 @@ var CustomizationContent = ({
12596
12904
  setCurrentContent
12597
12905
  }) => {
12598
12906
  const { t } = useTranslation();
12599
- const { network, darkMode: isDark } = useVeChainKitConfig();
12907
+ const { network } = useVeChainKitConfig();
12600
12908
  const { account } = useWallet();
12601
12909
  const fileInputRef = useRef(null);
12602
12910
  const coverInputRef = useRef(null);
@@ -12638,20 +12946,22 @@ var CustomizationContent = ({
12638
12946
  setInitialEmail(metadata.email || "");
12639
12947
  setInitialWebsite(metadata.url || "");
12640
12948
  setInitialAvatarHash(
12641
- metadata.avatar ? metadata.avatar.replace("ipfs://", "") : null
12642
- );
12643
- setPreviewImageUrl(
12644
- convertUriToUrl(metadata.avatar ?? "", network.type) || null
12949
+ account.image ? account.image.replace("ipfs://", "") : null
12645
12950
  );
12951
+ setPreviewImageUrl((prev) => prev ?? account.image ?? null);
12646
12952
  }
12647
- }, [account?.metadata, network.type]);
12953
+ }, [account, network.type]);
12648
12954
  const formValues = watch();
12649
12955
  const handleImageUpload = async (event) => {
12650
12956
  const file = event.target.files?.[0];
12651
12957
  if (!file) return;
12652
12958
  try {
12653
12959
  setIsUploading(true);
12654
- setPreviewImageUrl(URL.createObjectURL(file));
12960
+ if (previewImageUrl) {
12961
+ URL.revokeObjectURL(previewImageUrl);
12962
+ }
12963
+ const newPreviewUrl = URL.createObjectURL(file);
12964
+ setPreviewImageUrl(newPreviewUrl);
12655
12965
  const uploadedImage = await onUpload(file);
12656
12966
  if (!uploadedImage) throw new Error("Failed to compress image");
12657
12967
  const ipfsHash = await uploadBlobToIPFS(
@@ -12712,9 +13022,7 @@ var CustomizationContent = ({
12712
13022
  /* @__PURE__ */ jsxs(
12713
13023
  Card,
12714
13024
  {
12715
- bg: isDark ? "#1e1e21" : "#00000005",
12716
- borderRadius: "xl",
12717
- width: "full",
13025
+ variant: "vechainKitBase",
12718
13026
  position: "relative",
12719
13027
  overflow: "visible",
12720
13028
  children: [
@@ -12751,7 +13059,7 @@ var CustomizationContent = ({
12751
13059
  width: "100px",
12752
13060
  height: "100px",
12753
13061
  boxShadow: "0px 0px 3px 2px #00000024",
12754
- src: previewImageUrl || void 0
13062
+ src: previewImageUrl ?? void 0
12755
13063
  }
12756
13064
  }
12757
13065
  ),
@@ -13046,7 +13354,8 @@ var CustomizationSummaryContent = ({
13046
13354
  const { darkMode: isDark } = useVeChainKitConfig();
13047
13355
  const { account, connectedWallet } = useWallet();
13048
13356
  const { refresh: refreshMetadata } = useRefreshMetadata(
13049
- account?.domain ?? ""
13357
+ account?.domain ?? "",
13358
+ account?.address ?? ""
13050
13359
  );
13051
13360
  const { data: upgradeRequired } = useUpgradeRequired(
13052
13361
  account?.address ?? "",
@@ -13071,6 +13380,7 @@ var CustomizationSummaryContent = ({
13071
13380
  } = useUpdateTextRecord({
13072
13381
  resolverAddress,
13073
13382
  // Pass the pre-fetched resolver address
13383
+ signerAccountAddress: account?.address ?? "",
13074
13384
  onSuccess: async () => {
13075
13385
  refreshMetadata();
13076
13386
  setCurrentContent({
@@ -13083,13 +13393,17 @@ var CustomizationSummaryContent = ({
13083
13393
  "Your changes have been saved successfully."
13084
13394
  ),
13085
13395
  onDone: () => {
13086
- setCurrentContent("settings");
13396
+ setCurrentContent("profile");
13087
13397
  }
13088
13398
  }
13089
13399
  });
13090
13400
  }
13091
13401
  });
13092
13402
  const onSubmit = async (data) => {
13403
+ if (upgradeRequired) {
13404
+ openUpgradeSmartAccountModal();
13405
+ return;
13406
+ }
13093
13407
  try {
13094
13408
  const domain2 = account?.domain ?? "";
13095
13409
  const CHANGES_TO_TEXT_RECORDS = {
@@ -13128,11 +13442,6 @@ var CustomizationSummaryContent = ({
13128
13442
  /* @__PURE__ */ jsx(Text, { fontSize: "md", children: value })
13129
13443
  ] });
13130
13444
  };
13131
- useEffect(() => {
13132
- if (upgradeRequired) {
13133
- openUpgradeSmartAccountModal();
13134
- }
13135
- }, [upgradeRequired, openUpgradeSmartAccountModal]);
13136
13445
  return /* @__PURE__ */ jsxs(Box, { as: "form", onSubmit: handleSubmit(onSubmit), children: [
13137
13446
  /* @__PURE__ */ jsxs(StickyHeaderContainer, { children: [
13138
13447
  /* @__PURE__ */ jsx(ModalHeader, { children: t("Confirm Changes") }),
@@ -13173,7 +13482,7 @@ var CustomizationSummaryContent = ({
13173
13482
  transactionPendingText: t("Saving changes..."),
13174
13483
  txReceipt,
13175
13484
  buttonText: t("Confirm"),
13176
- isDisabled: isTransactionPending || upgradeRequired
13485
+ isDisabled: isTransactionPending
13177
13486
  }
13178
13487
  ) })
13179
13488
  ] });
@@ -13203,6 +13512,15 @@ var ProfileContent = ({
13203
13512
  onEditClick: () => setCurrentContent("account-customization"),
13204
13513
  address: account?.address ?? "",
13205
13514
  showHeader: false,
13515
+ style: {
13516
+ card: {
13517
+ bg: "transparent",
13518
+ px: 0
13519
+ },
13520
+ footer: {
13521
+ px: 0
13522
+ }
13523
+ },
13206
13524
  onLogout: () => {
13207
13525
  setCurrentContent?.({
13208
13526
  type: "disconnect-confirm",
@@ -13662,7 +13980,7 @@ var ManageCustomTokenContent = ({
13662
13980
  /* @__PURE__ */ jsx(ModalFooter, { children: /* @__PURE__ */ jsx(
13663
13981
  Button,
13664
13982
  {
13665
- variant: "vechainKitSecondary",
13983
+ variant: "vechainKitPrimary",
13666
13984
  isDisabled: !isValid,
13667
13985
  onClick: handleSubmit(onSubmit),
13668
13986
  children: t("Add Token")
@@ -13680,16 +13998,7 @@ var BridgeContent = ({ setCurrentContent }) => {
13680
13998
  /* @__PURE__ */ jsx(ModalCloseButton, {})
13681
13999
  ] }),
13682
14000
  /* @__PURE__ */ jsx(Container, { maxW: "container.lg", children: /* @__PURE__ */ jsx(ModalBody, { children: /* @__PURE__ */ jsxs(VStack, { spacing: 6, align: "center", w: "full", children: [
13683
- /* @__PURE__ */ jsx(
13684
- Image,
13685
- {
13686
- src: isDark ? "https://static.vechain.energy/logo-dark.svg" : "https://static.vechain.energy/logo-light.svg",
13687
- alt: "bridge token",
13688
- w: "200px",
13689
- h: "200px",
13690
- borderRadius: "xl"
13691
- }
13692
- ),
14001
+ /* @__PURE__ */ jsx(VechainEnergy, { isDark, borderRadius: "xl" }),
13693
14002
  /* @__PURE__ */ jsx(Text, { fontSize: "sm", textAlign: "center", children: t(
13694
14003
  "Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens."
13695
14004
  ) })
@@ -13730,8 +14039,7 @@ var ConnectionDetailsContent = ({ onGoBack }) => {
13730
14039
  /* @__PURE__ */ jsxs(ModalBody, { w: "full", children: [
13731
14040
  connection.isConnectedWithCrossApp && connectionCache && /* @__PURE__ */ jsx(CrossAppConnectionCard, { connectionCache }),
13732
14041
  connection.isConnectedWithSocialLogin && /* @__PURE__ */ jsx(PrivyConnectionCard, {}),
13733
- connection.isConnectedWithDappKit && /* @__PURE__ */ jsx(DappKitConnectionCard, {}),
13734
- connection.isConnectedWithPrivy && /* @__PURE__ */ jsx(WalletSecuredBy, {})
14042
+ connection.isConnectedWithDappKit && /* @__PURE__ */ jsx(DappKitConnectionCard, {})
13735
14043
  ] }),
13736
14044
  /* @__PURE__ */ jsx(ModalFooter, { pt: 0 })
13737
14045
  ] });
@@ -14972,7 +15280,7 @@ var TransactionModalContent = ({
14972
15280
  {
14973
15281
  fontSize: status === "ready" ? "md" : "sm",
14974
15282
  textAlign: "center",
14975
- color: status === "error" ? "red" : "inherit",
15283
+ color: status === "error" ? "red.500" : "inherit",
14976
15284
  mt: 5,
14977
15285
  style: {
14978
15286
  lineBreak: "anywhere"
@@ -15413,17 +15721,22 @@ var ConnectPopover = ({
15413
15721
  };
15414
15722
  var WalletDisplay = ({ variant }) => {
15415
15723
  const { account } = useWallet();
15724
+ const [isSmallMobile] = useMediaQuery("(max-width: 480px)");
15416
15725
  if (!account) return /* @__PURE__ */ jsx(Spinner, {});
15417
15726
  if (variant === "icon") {
15418
15727
  return null;
15419
15728
  }
15729
+ const isLongDomain = account?.domain && account?.domain?.length > 18;
15730
+ const accountDomain = useMemo(() => {
15731
+ return isSmallMobile && isLongDomain ? humanDomain(account?.domain ?? "", 18, 0) : account?.domain;
15732
+ }, [isSmallMobile, account.domain]);
15420
15733
  if (variant === "iconAndDomain") {
15421
- return account.domain ? /* @__PURE__ */ jsx(Text, { fontSize: "sm", children: account.domain }) : /* @__PURE__ */ jsx(Text, { fontSize: "sm", children: humanAddress(account.address ?? "", 4, 4) });
15734
+ return account.domain ? /* @__PURE__ */ jsx(Text, { fontSize: "sm", children: accountDomain }) : /* @__PURE__ */ jsx(Text, { fontSize: "sm", children: humanAddress(account.address ?? "", 6, 4) });
15422
15735
  }
15423
15736
  if (variant === "iconDomainAndAssets") {
15424
- return /* @__PURE__ */ jsxs(HStack, { spacing: 2, children: [
15737
+ return /* @__PURE__ */ jsxs(HStack, { spacing: 4, children: [
15425
15738
  /* @__PURE__ */ jsxs(VStack, { spacing: 0, alignItems: "flex-start", children: [
15426
- account.domain && /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "bold", children: account.domain }),
15739
+ account.domain && /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "bold", children: accountDomain }),
15427
15740
  /* @__PURE__ */ jsx(
15428
15741
  Text,
15429
15742
  {
@@ -15433,18 +15746,11 @@ var WalletDisplay = ({ variant }) => {
15433
15746
  }
15434
15747
  )
15435
15748
  ] }),
15436
- /* @__PURE__ */ jsx(
15437
- AssetIcons,
15438
- {
15439
- ml: 2,
15440
- address: account.address ?? "",
15441
- maxIcons: 3
15442
- }
15443
- )
15749
+ /* @__PURE__ */ jsx(AssetIcons, { address: account.address ?? "", maxIcons: 3 })
15444
15750
  ] });
15445
15751
  }
15446
15752
  return /* @__PURE__ */ jsxs(VStack, { spacing: 0, alignItems: "flex-start", children: [
15447
- account.domain && /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "bold", children: account.domain }),
15753
+ account.domain && /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "bold", children: accountDomain }),
15448
15754
  /* @__PURE__ */ jsx(
15449
15755
  Text,
15450
15756
  {
@@ -15463,17 +15769,36 @@ var ConnectedWallet = ({
15463
15769
  }) => {
15464
15770
  const { account } = useWallet();
15465
15771
  const [isDesktop] = useMediaQuery("(min-width: 768px)");
15466
- return /* @__PURE__ */ jsx(Button, { ...buttonStyle, onClick: onOpen, p: "0px 13px", minH: "45px", children: /* @__PURE__ */ jsxs(HStack, { children: [
15467
- /* @__PURE__ */ jsx(
15468
- AccountAvatar,
15469
- {
15470
- wallet: account,
15471
- props: { width: 30, height: 30 }
15472
- }
15473
- ),
15474
- !isDesktop && /* @__PURE__ */ jsx(WalletDisplay, { variant: mobileVariant }),
15475
- isDesktop && /* @__PURE__ */ jsx(WalletDisplay, { variant: desktopVariant })
15476
- ] }) });
15772
+ return /* @__PURE__ */ jsx(
15773
+ Button,
15774
+ {
15775
+ ...buttonStyle,
15776
+ onClick: onOpen,
15777
+ w: "full",
15778
+ minH: "45px",
15779
+ maxW: "fit-content",
15780
+ children: /* @__PURE__ */ jsxs(HStack, { w: "full", minW: "fit-content", children: [
15781
+ /* @__PURE__ */ jsx(
15782
+ AccountAvatar,
15783
+ {
15784
+ wallet: account,
15785
+ props: {
15786
+ width: 30,
15787
+ height: 30,
15788
+ minWidth: 30,
15789
+ minHeight: 30
15790
+ }
15791
+ }
15792
+ ),
15793
+ /* @__PURE__ */ jsx(
15794
+ WalletDisplay,
15795
+ {
15796
+ variant: isDesktop ? desktopVariant : mobileVariant
15797
+ }
15798
+ )
15799
+ ] })
15800
+ }
15801
+ );
15477
15802
  };
15478
15803
  var WalletButton = ({
15479
15804
  mobileVariant = "iconAndDomain",
@@ -15631,7 +15956,7 @@ var TransactionToastContent = ({
15631
15956
  Icon,
15632
15957
  {
15633
15958
  as: MdOutlineErrorOutline,
15634
- color: "red",
15959
+ color: "red.500",
15635
15960
  fontSize: "40px"
15636
15961
  }
15637
15962
  ),
@@ -15906,7 +16231,8 @@ var EcosystemContent = ({ onClose, appsInfo, isLoading }) => {
15906
16231
  setConnectionCache({
15907
16232
  name: appName,
15908
16233
  logoUrl: appsInfo.find((app) => app.id === appId)?.logo_url,
15909
- appId
16234
+ appId,
16235
+ website: appsInfo.find((app) => app.id === appId)?.website
15910
16236
  });
15911
16237
  onClose();
15912
16238
  } catch (error) {
@@ -16046,72 +16372,67 @@ var ProfileCard = ({
16046
16372
  showLinks = true,
16047
16373
  showDescription = true,
16048
16374
  showDisplayName = true,
16049
- showEdit = true
16375
+ showEdit = true,
16376
+ style
16050
16377
  }) => {
16051
16378
  const { t } = useTranslation();
16052
- const { darkMode: isDark, network } = useVeChainKitConfig();
16053
16379
  const { account } = useWallet();
16054
16380
  const activeAccountDomain = useVechainDomain(address);
16055
- const activeAccountAvatar = useGetAvatar(activeAccountDomain?.data?.domain);
16381
+ const activeAccountAvatar = useGetAvatarOfAddress(address);
16056
16382
  const activeAccountTextRecords = useGetTextRecords(
16057
16383
  activeAccountDomain?.data?.domain
16058
16384
  );
16059
- const baseBackgroundColor = isDark ? "#1e1e21" : "#00000005";
16060
16385
  const headerImageSvg = getPicassoImage(address);
16061
16386
  const isConnectedAccount = address === account?.address;
16062
16387
  const hasLinks = activeAccountTextRecords?.data?.url || activeAccountTextRecords?.data?.["com.x"] || activeAccountTextRecords?.data?.email;
16063
- return /* @__PURE__ */ jsxs(
16064
- Card,
16065
- {
16066
- bg: baseBackgroundColor,
16067
- borderRadius: "xl",
16068
- width: "full",
16069
- position: "relative",
16070
- overflow: "visible",
16071
- children: [
16072
- /* @__PURE__ */ jsx(
16073
- Box,
16074
- {
16075
- p: 0,
16076
- backgroundSize: "100% !important",
16077
- backgroundPosition: "center",
16078
- position: "relative",
16079
- h: "80px",
16080
- background: showHeader ? `no-repeat url('${headerImageSvg}')` : "none",
16081
- w: "100%",
16082
- borderRadius: "14px 14px 0 0"
16083
- }
16084
- ),
16085
- /* @__PURE__ */ jsx(
16086
- Box,
16388
+ return /* @__PURE__ */ jsxs(Card, { variant: "vechainKitBase", ...style?.card, children: [
16389
+ /* @__PURE__ */ jsx(
16390
+ Box,
16391
+ {
16392
+ p: 0,
16393
+ backgroundSize: "100% !important",
16394
+ backgroundPosition: "center",
16395
+ position: "relative",
16396
+ h: "80px",
16397
+ background: showHeader ? `no-repeat url('${headerImageSvg}')` : "none",
16398
+ w: "100%",
16399
+ borderRadius: "14px 14px 0 0"
16400
+ }
16401
+ ),
16402
+ /* @__PURE__ */ jsx(
16403
+ Box,
16404
+ {
16405
+ position: "absolute",
16406
+ top: "30px",
16407
+ left: "50%",
16408
+ transform: "translateX(-50%)",
16409
+ children: /* @__PURE__ */ jsx(
16410
+ AccountAvatar,
16087
16411
  {
16088
- position: "absolute",
16089
- top: "30px",
16090
- left: "50%",
16091
- transform: "translateX(-50%)",
16092
- children: /* @__PURE__ */ jsx(
16093
- AccountAvatar,
16094
- {
16095
- wallet: {
16096
- address,
16097
- domain: activeAccountDomain?.data?.domain,
16098
- image: convertUriToUrl(
16099
- activeAccountAvatar?.data ?? "",
16100
- network.type
16101
- ) ?? getPicassoImage(address),
16102
- isLoadingMetadata: activeAccountAvatar?.isLoading || activeAccountDomain?.isLoading || activeAccountTextRecords?.isLoading,
16103
- metadata: activeAccountTextRecords?.data
16104
- },
16105
- props: {
16106
- width: "100px",
16107
- height: "100px",
16108
- boxShadow: "0px 0px 3px 2px #00000024"
16109
- }
16110
- }
16111
- )
16412
+ wallet: {
16413
+ address,
16414
+ domain: activeAccountDomain?.data?.domain,
16415
+ image: activeAccountAvatar.data,
16416
+ isLoadingMetadata: activeAccountAvatar?.isLoading || activeAccountDomain?.isLoading || activeAccountTextRecords?.isLoading,
16417
+ metadata: activeAccountTextRecords?.data
16418
+ },
16419
+ props: {
16420
+ width: "100px",
16421
+ height: "100px"
16422
+ // boxShadow: '0px 0px 3px 2px #00000024',
16423
+ }
16112
16424
  }
16113
- ),
16114
- /* @__PURE__ */ jsx(CardBody, { mt: 10, backgroundColor: "none", border: "none", children: /* @__PURE__ */ jsxs(VStack, { w: "full", spacing: 2, children: [
16425
+ )
16426
+ }
16427
+ ),
16428
+ /* @__PURE__ */ jsx(
16429
+ CardBody,
16430
+ {
16431
+ mt: 10,
16432
+ backgroundColor: "none",
16433
+ border: "none",
16434
+ ...style?.body,
16435
+ children: /* @__PURE__ */ jsxs(VStack, { w: "full", spacing: 2, children: [
16115
16436
  showDisplayName && activeAccountTextRecords?.data?.display && /* @__PURE__ */ jsx(
16116
16437
  Text,
16117
16438
  {
@@ -16165,51 +16486,48 @@ var ProfileCard = ({
16165
16486
  wallet: {
16166
16487
  address,
16167
16488
  domain: activeAccountDomain?.data?.domain,
16168
- image: convertUriToUrl(
16169
- activeAccountAvatar?.data ?? "",
16170
- network.type
16171
- ) ?? getPicassoImage(address),
16489
+ image: activeAccountAvatar.data,
16172
16490
  isLoadingMetadata: activeAccountAvatar?.isLoading || activeAccountDomain?.isLoading || activeAccountTextRecords?.isLoading,
16173
16491
  metadata: activeAccountTextRecords?.data
16174
16492
  },
16175
16493
  style: { mt: 4 }
16176
16494
  }
16177
16495
  )
16178
- ] }) }),
16179
- isConnectedAccount && showEdit && /* @__PURE__ */ jsx(CardFooter, { justify: "space-between", children: /* @__PURE__ */ jsxs(VStack, { w: "full", justify: "space-between", spacing: 4, children: [
16180
- /* @__PURE__ */ jsx(Divider, {}),
16181
- /* @__PURE__ */ jsxs(HStack, { w: "full", justify: "space-between", children: [
16182
- /* @__PURE__ */ jsx(
16183
- Button,
16184
- {
16185
- size: "md",
16186
- width: "full",
16187
- height: "40px",
16188
- variant: "ghost",
16189
- leftIcon: /* @__PURE__ */ jsx(Icon, { as: FaEdit }),
16190
- onClick: onEditClick ?? (() => {
16191
- }),
16192
- children: t("Customize")
16193
- }
16194
- ),
16195
- /* @__PURE__ */ jsx(
16196
- Button,
16197
- {
16198
- size: "md",
16199
- width: "full",
16200
- height: "40px",
16201
- variant: "ghost",
16202
- leftIcon: /* @__PURE__ */ jsx(Icon, { as: RiLogoutBoxLine }),
16203
- colorScheme: "red",
16204
- onClick: onLogout,
16205
- children: t("Logout")
16206
- }
16207
- )
16208
- ] })
16209
- ] }) })
16210
- ]
16211
- }
16212
- );
16496
+ ] })
16497
+ }
16498
+ ),
16499
+ isConnectedAccount && showEdit && /* @__PURE__ */ jsx(CardFooter, { justify: "space-between", ...style?.footer, children: /* @__PURE__ */ jsxs(VStack, { w: "full", justify: "space-between", spacing: 4, children: [
16500
+ /* @__PURE__ */ jsx(Divider, {}),
16501
+ /* @__PURE__ */ jsxs(HStack, { w: "full", justify: "space-between", children: [
16502
+ /* @__PURE__ */ jsx(
16503
+ Button,
16504
+ {
16505
+ size: "md",
16506
+ width: "full",
16507
+ height: "40px",
16508
+ variant: "ghost",
16509
+ leftIcon: /* @__PURE__ */ jsx(Icon, { as: FaEdit }),
16510
+ onClick: onEditClick ?? (() => {
16511
+ }),
16512
+ children: t("Customize")
16513
+ }
16514
+ ),
16515
+ /* @__PURE__ */ jsx(
16516
+ Button,
16517
+ {
16518
+ size: "md",
16519
+ width: "full",
16520
+ height: "40px",
16521
+ variant: "ghost",
16522
+ leftIcon: /* @__PURE__ */ jsx(Icon, { as: RiLogoutBoxLine }),
16523
+ colorScheme: "red",
16524
+ onClick: onLogout,
16525
+ children: t("Logout")
16526
+ }
16527
+ )
16528
+ ] })
16529
+ ] }) })
16530
+ ] });
16213
16531
  };
16214
16532
  var SuccessfulOperationContent2 = ({
16215
16533
  txId,
@@ -16923,6 +17241,21 @@ var useUpgradeSmartAccountModal = (style) => {
16923
17241
  var UpgradeSmartAccountModalProvider = ({
16924
17242
  children
16925
17243
  }) => /* @__PURE__ */ jsx(Fragment, { children });
17244
+ var useProfileModal = () => {
17245
+ const { openAccountModal, closeAccountModal, isAccountModalOpen } = useModal();
17246
+ const open = () => {
17247
+ openAccountModal("profile");
17248
+ };
17249
+ const close = () => {
17250
+ closeAccountModal();
17251
+ };
17252
+ return {
17253
+ open,
17254
+ close,
17255
+ isOpen: isAccountModalOpen
17256
+ };
17257
+ };
17258
+ var ProfileModalProvider = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });
16926
17259
  var ERC20Interface4 = ERC20__factory.createInterface();
16927
17260
  var useTransferERC20 = ({
16928
17261
  fromAddress,
@@ -17193,7 +17526,8 @@ var useLoginWithVeChain = () => {
17193
17526
  setConnectionCache({
17194
17527
  name: "VeChain",
17195
17528
  logoUrl: appsInfo?.[VECHAIN_PRIVY_APP_ID]?.logo_url,
17196
- appId: VECHAIN_PRIVY_APP_ID
17529
+ appId: VECHAIN_PRIVY_APP_ID,
17530
+ website: "https://governance.vebetterdao.org"
17197
17531
  });
17198
17532
  } catch (error) {
17199
17533
  throw handlePopupError({
@@ -17685,14 +18019,6 @@ var initializeI18n = (i18nInstance) => {
17685
18019
  }
17686
18020
  });
17687
18021
  };
17688
- var DEFAULT_PRIVY_ECOSYSTEM_APP_IDS = [
17689
- "clz41gcg00e4ay75dmq3uzzgr",
17690
- //cleanify
17691
- "cm153hrup0817axti38avlfyg",
17692
- //greencart
17693
- "clv9sfos20j6x1431ga80d95f"
17694
- //mughsot
17695
- ];
17696
18022
  var VeChainKitContext = createContext(null);
17697
18023
  var useVeChainKitConfig = () => {
17698
18024
  const context = useContext(VeChainKitContext);
@@ -17703,11 +18029,20 @@ var useVeChainKitConfig = () => {
17703
18029
  };
17704
18030
  var validateConfig = (props) => {
17705
18031
  const errors = [];
17706
- if (!props.feeDelegation) {
17707
- errors.push("feeDelegation configuration is required");
17708
- } else {
17709
- if (!props.feeDelegation.delegatorUrl) {
17710
- errors.push("feeDelegation.delegatorUrl is required");
18032
+ const requiresFeeDelegation = props.privy !== void 0 || props.loginMethods?.some(
18033
+ (method35) => method35.method === "vechain" || method35.method === "ecosystem"
18034
+ );
18035
+ if (requiresFeeDelegation) {
18036
+ if (!props.feeDelegation) {
18037
+ errors.push(
18038
+ "feeDelegation configuration is required when using Privy or vechain login method"
18039
+ );
18040
+ } else {
18041
+ if (!props.feeDelegation || !props.feeDelegation.delegatorUrl) {
18042
+ errors.push(
18043
+ "feeDelegation.delegatorUrl is required when using Privy or vechain login method"
18044
+ );
18045
+ }
17711
18046
  }
17712
18047
  }
17713
18048
  if (!props.network) {
@@ -17759,7 +18094,7 @@ var VeChainKitProvider = (props) => {
17759
18094
  const userEcosystemMethods = validatedLoginMethods?.find(
17760
18095
  (method35) => method35.method === "ecosystem"
17761
18096
  );
17762
- return userEcosystemMethods?.allowedApps ?? DEFAULT_PRIVY_ECOSYSTEM_APP_IDS;
18097
+ return userEcosystemMethods?.allowedApps ?? DEFAULT_PRIVY_ECOSYSTEM_APPS.map((app) => app.id);
17763
18098
  }, [validatedLoginMethods]);
17764
18099
  let privyAppId, privyClientId;
17765
18100
  if (!privy) {
@@ -17852,7 +18187,7 @@ var VeChainKitProvider = (props) => {
17852
18187
  "--vdk-modal-width": "22rem",
17853
18188
  "--vdk-modal-backdrop-filter": "blur(3px)",
17854
18189
  "--vdk-border-dark-source-card": `1px solid ${"#ffffff0a"}`,
17855
- "--vdk-border-light-source-card": `1px solid ${"#ebebeb"}`,
18190
+ "--vdk-border-light-source-card": `1px solid ${"#ebebeb"} !important`,
17856
18191
  // Dark mode colors
17857
18192
  "--vdk-color-dark-primary": "transparent",
17858
18193
  "--vdk-color-dark-primary-hover": "rgba(255, 255, 255, 0.05)",
@@ -17873,8 +18208,8 @@ var VeChainKitProvider = (props) => {
17873
18208
  PrivyWalletProvider,
17874
18209
  {
17875
18210
  nodeUrl: network.nodeUrl ?? getConfig(network.type).nodeUrl,
17876
- delegatorUrl: feeDelegation.delegatorUrl,
17877
- delegateAllTransactions: feeDelegation.delegateAllTransactions,
18211
+ delegatorUrl: feeDelegation?.delegatorUrl ?? "",
18212
+ delegateAllTransactions: feeDelegation?.delegateAllTransactions ?? false,
17878
18213
  children: /* @__PURE__ */ jsx(ModalProvider, { children })
17879
18214
  }
17880
18215
  )
@@ -17895,7 +18230,7 @@ var variants = {
17895
18230
  overflowX: "hidden",
17896
18231
  maxHeight: "550px",
17897
18232
  borderRadius: "24px",
17898
- backgroundColor: props.colorMode === "dark" ? "#18181b" : "white"
18233
+ backgroundColor: props.colorMode === "dark" ? "#1f1f1e" : "white"
17899
18234
  },
17900
18235
  closeButton: {
17901
18236
  borderRadius: "50%"
@@ -17921,7 +18256,7 @@ var variants = {
17921
18256
  pointerEvents: "auto",
17922
18257
  boxShadow: "0px 0px 10px 0px rgba(0, 0, 0, 0.1)",
17923
18258
  py: "10px",
17924
- backgroundColor: props.colorMode === "dark" ? "#18181b" : "white"
18259
+ backgroundColor: props.colorMode === "dark" ? "#1f1f1e" : "white"
17925
18260
  },
17926
18261
  closeButton: {
17927
18262
  borderRadius: "50%",
@@ -17937,17 +18272,27 @@ var modalTheme = defineMultiStyleConfig({
17937
18272
  variant: "vechainKitBase"
17938
18273
  }
17939
18274
  });
17940
- var { definePartsStyle: definePartsStyle2, defineMultiStyleConfig: defineMultiStyleConfig2 } = createMultiStyleConfigHelpers(modalAnatomy.keys);
18275
+ var { definePartsStyle: definePartsStyle2, defineMultiStyleConfig: defineMultiStyleConfig2 } = createMultiStyleConfigHelpers(cardAnatomy.keys);
17941
18276
  var variants2 = {
17942
18277
  vechainKitBase: (props) => definePartsStyle2({
18278
+ container: {
18279
+ backgroundColor: props.colorMode === "dark" ? "#1c1c1b" : "#f5f5f5",
18280
+ borderRadius: "14px",
18281
+ width: "full",
18282
+ border: "none"
18283
+ },
17943
18284
  body: {
17944
- borderRadius: "12px",
17945
- backgroundColor: props.colorMode === "dark" ? "#1f1f1e" : "white",
17946
- border: props.colorMode === "dark" ? "1px solid #2d2d2d" : "1px solid #eaeaea",
17947
- p: 5
18285
+ p: 5,
18286
+ width: "full"
18287
+ },
18288
+ header: {
18289
+ p: 5,
18290
+ width: "full",
18291
+ borderRadius: "14px 14px 0 0"
17948
18292
  },
17949
18293
  footer: {
17950
- p: 5
18294
+ width: "full",
18295
+ borderRadius: "0 0 14px 14px"
17951
18296
  }
17952
18297
  }),
17953
18298
  featureAnnouncement: (props) => definePartsStyle2({
@@ -18063,28 +18408,22 @@ var variants3 = {
18063
18408
  },
18064
18409
  transition: "all 0.2s"
18065
18410
  })),
18066
- vechainKitSecondary: defineStyle(() => ({
18411
+ vechainKitSecondary: defineStyle(({ colorMode }) => ({
18067
18412
  fontSize: "md",
18068
18413
  px: 4,
18069
18414
  width: "full",
18070
18415
  height: "60px",
18071
18416
  borderRadius: "xl",
18072
- bg: "transparent",
18073
- border: "1px solid",
18074
- borderColor: "gray.200",
18075
- color: "gray.700",
18417
+ backgroundColor: colorMode === "dark" ? "#ffffff0a" : "blackAlpha.50",
18076
18418
  _hover: {
18077
- bg: "gray.50",
18078
- _disabled: {
18079
- bg: "transparent"
18080
- }
18419
+ backgroundColor: colorMode === "dark" ? "#ffffff12" : "blackAlpha.200"
18081
18420
  },
18421
+ border: "1px solid",
18422
+ borderColor: "gray.200",
18423
+ color: "blackAlpha.900",
18082
18424
  _dark: {
18083
18425
  borderColor: "whiteAlpha.200",
18084
- color: "whiteAlpha.900",
18085
- _hover: {
18086
- bg: "whiteAlpha.50"
18087
- }
18426
+ color: "whiteAlpha.900"
18088
18427
  },
18089
18428
  transition: "all 0.2s"
18090
18429
  })),
@@ -18097,6 +18436,17 @@ var variants3 = {
18097
18436
  _hover: {
18098
18437
  backgroundColor: colorMode === "dark" ? "#ffffff12" : "blackAlpha.200"
18099
18438
  }
18439
+ })),
18440
+ actionButton: defineStyle(({ colorMode }) => ({
18441
+ width: "full",
18442
+ minHeight: "70px",
18443
+ height: "fit-content",
18444
+ backgroundColor: colorMode === "dark" ? "#ffffff0a" : "blackAlpha.50",
18445
+ borderRadius: "xl",
18446
+ _hover: {
18447
+ backgroundColor: colorMode === "dark" ? "#ffffff12" : "blackAlpha.200"
18448
+ },
18449
+ transition: "all 0.2s"
18100
18450
  }))
18101
18451
  };
18102
18452
  var buttonTheme = defineStyleConfig({
@@ -18193,6 +18543,6 @@ var VechainKitThemeProvider = ({
18193
18543
  ] });
18194
18544
  };
18195
18545
 
18196
- export { APP_SECURITY_LEVELS, AccessAndSecurityContent, AccessAndSecurityModalProvider, AccountAvatar, AccountCustomizationModalProvider, AccountDetailsButton, AccountMainContent, AccountModal, AccountModalProvider, AccountSelector, ActionButton, AddressDisplay, AddressDisplayCard, AssetButton, AssetsContent, AssetsSection, BalanceSection, BaseModal, BridgeContent, ChooseNameContent, ChooseNameModalProvider, ChooseNameSearchContent, ChooseNameSummaryContent, ConnectModal, ConnectModalProvider, ConnectPopover, ConnectionButton, CustomizationContent, CustomizationSummaryContent, DappKitButton, DomainRequiredAlert, ENS_TEXT_RECORDS, EcosystemButton, EcosystemModal, EmailLoginButton, EmbeddedWalletContent, ExchangeWarningAlert, ExploreEcosystemModalProvider, FAQContent, FAQModalProvider, FadeInView, FadeInViewFromBottom, FadeInViewFromLeft, FadeInViewFromRight, FeatureAnnouncementCard, LoginLoadingModal, LoginWithGoogleButton, MAX_IMAGE_SIZE, MainContent, ManageCustomTokenContent, ModalBackButton, ModalFAQButton, NFTMediaType, NotificationsModalProvider, PRICE_FEED_IDS, PasskeyLoginButton, PrivyButton, PrivyWalletProvider, ProfileCard, ProfileContent, QuickActionsSection, ReceiveModalProvider, ReceiveTokenContent, RoundState, ScrollToTopWrapper, SecurityLevel, SelectTokenContent, SendTokenContent, SendTokenModalProvider, SendTokenSummaryContent, SettingsContent, ShareButtons, SocialIcons, StickyFooterContainer, StickyHeaderContainer, SwapTokenContent, TransactionButtonAndStatus, TransactionModal, TransactionModalContent, TransactionModalProvider, TransactionToast, TransactionToastProvider, UpgradeSmartAccountContent, UpgradeSmartAccountModal, UpgradeSmartAccountModalProvider, VeChainKitContext, VeChainKitProvider, VeChainLoginButton, VeChainWithPrivyLoginButton, VePassportUserStatus, VechainKitThemeProvider, VersionFooter, WalletButton, WalletModalProvider, buildClaimRewardsTx, buildClaimRoundReward, compressImages, currentBlockQueryKey, fetchPrivyAppInfo, fetchPrivyStatus, fetchVechainDomain, getAccountAddress, getAccountAddressQueryKey, getAccountBalance, getAccountBalanceQueryKey, getAccountImplementationAddress, getAccountImplementationAddressQueryKey, getAccountVersion, getAccountVersionQueryKey, getAllEvents, getAllocationAmount, getAllocationAmountQueryKey, getAllocationsRoundState, getAllocationsRoundStateQueryKey, getAllocationsRoundsEvents, getAllocationsRoundsEventsQueryKey, getAppAdmin, getAppAdminQueryKey, getAppBalance, getAppBalanceQueryKey, getAppExistsQueryKey, getAppSecurityLevelQueryKey, getAppsEligibleInNextRound, getAppsEligibleInNextRoundQueryKey, getAppsShareClauses, getAvatar, getAvatarQueryKey, getB3trBalance, getB3trBalanceQueryKey, getB3trDonatedQueryKey, getB3trToUpgradeQueryKey, getBalanceOf, getCallKey, getChainId, getChainIdQueryKey, getCurrentAccountImplementationVersion, getCurrentAccountImplementationVersionQueryKey, getCurrentAllocationsRoundId, getCurrentAllocationsRoundIdQueryKey, getCustomTokenBalance, getCustomTokenBalanceQueryKey, getCustomTokenInfo, getDelegateeQueryKey, getDelegatorQueryKey, getDomainsOfAddress, getDomainsOfAddressQueryKey, getEnsRecordExistsQueryKey, getEntitiesLinkedToPassportQueryKey, getEvents, getGMBaseUriQueryKey, getGMLevel, getGMbalanceQueryKey, getGetCumulativeScoreWithDecayQueryKey, getHasV1SmartAccount, getHasV1SmartAccountQueryKey, getHasVotedInRound, getHasVotedInRoundQueryKey, getIpfsImage, getIpfsImageQueryKey, getIpfsMetadata, getIpfsMetadataQueryKey, getIsBlacklistedQueryKey, getIsDeployed, getIsDeployedQueryKey, getIsDomainProtectedQueryKey, getIsEntityQueryKey, getIsNodeHolder, getIsNodeHolderQueryKey, getIsPassportQueryKey, getIsPersonAtTimepointQueryKey, getIsPersonQueryKey, getIsWhitelistedQueryKey, getLevelGradient, getLevelMultiplierQueryKey, getLevelOfTokenQueryKey, getNFTMetadataUri, getNFTMetadataUriQueryKey, getNodeCheckCooldownQueryKey, getNodeManagerQueryKey, getParticipatedInGovernance, getParticipatedInGovernanceQueryKey, getParticipationScoreThresholdQueryKey, getPassportForEntityQueryKey, getPassportToggleQueryKey, getPendingDelegationsQueryKeyDelegateePOV, getPendingDelegationsQueryKeyDelegatorPOV, getPendingLinkingsQueryKey, getPrivyAppInfoQueryKey, getResolverAddress, getResolverAddressQueryKey, getRoundReward, getRoundRewardQueryKey, getRoundXApps, getRoundXAppsQueryKey, getSecurityMultiplierQueryKey, getSmartAccount, getSmartAccountQueryKey, getTextRecords, getTextRecordsQueryKey, getThresholdParticipationScoreAtTimepointQueryKey, getThresholdParticipationScoreQueryKey, getTokenIdByAccount, getTokenIdByAccountQueryKey, getTokenInfo, getTokenUsdPrice, getTokenUsdPriceQueryKey, getTokensInfoByOwnerQueryKey, getUpgradeRequired, getUpgradeRequiredForAccount, getUpgradeRequiredForAccountQueryKey, getUpgradeRequiredQueryKey, getUserBotSignalsQueryKey, getUserNodesQueryKey, getUserRoundScoreQueryKey, getUserVotesInRound, getUserVotesInRoundQueryKey, getUserXNodes, getUserXNodesQueryKey, getVeDelegateBalance, getVeDelegateBalanceQueryKey, getVechainDomainQueryKey, getVersion, getVersionQueryKey, getVot3Balance, getVot3BalanceQueryKey, getVotesInRoundQueryKey, getXAppMetadata, getXAppMetadataQueryKey, getXAppRoundEarnings, getXAppRoundEarningsQueryKey, getXAppTotalEarningsClauses, getXAppTotalEarningsQueryKey, getXAppVotes, getXAppVotesQf, getXAppVotesQfQueryKey, getXAppVotesQueryKey, getXApps, getXAppsMetadataBaseUri, getXAppsMetadataBaseUriQueryKey, getXAppsQueryKey, getXAppsSharesQueryKey, imageCompressionOptions, pollForReceipt, useAccessAndSecurityModal, useAccountBalance, useAccountCustomizationModal, useAccountImplementationAddress, useAccountLinking, useAccountModal, useAllocationAmount, useAllocationsRound, useAllocationsRoundState, useAllocationsRoundsEvents, useAppAdmin, useAppBalance, useAppExists, useAppSecurityLevel, useAppsEligibleInNextRound, useB3trDonated, useB3trToUpgrade, useBalances, useCall, useChooseNameModal, useClaimVeWorldSubdomain, useConnectModal, useCrossAppConnectionCache, useCurrentAccountImplementationVersion, useCurrentAllocationsRound, useCurrentAllocationsRoundId, useCurrentBlock, useEcosystemShortcuts, useEnsRecordExists, useExploreEcosystemModal, useFAQModal, useFeatureAnnouncement, useFetchAppInfo, useFetchPrivyStatus, useGMBaseUri, useGMbalance, useGetAccountAddress, useGetAccountVersion, useGetAvatar, useGetB3trBalance, useGetChainId, useGetCumulativeScoreWithDecay, useGetCustomTokenBalances, useGetCustomTokenInfo, useGetDelegatee, useGetDelegator, useGetDomainsOfAddress, useGetEntitiesLinkedToPassport, useGetNodeManager, useGetNodeUrl, useGetPassportForEntity, useGetPendingDelegationsDelegateePOV, useGetPendingDelegationsDelegatorPOV, useGetPendingLinkings, useGetResolverAddress, useGetTextRecords, useGetTokenUsdPrice, useGetTokensInfoByOwner, useGetUserEntitiesLinkedToPassport, useGetUserNode, useGetUserNodes, useGetUserPassportForEntity, useGetUserPendingLinkings, useGetVeDelegateBalance, useGetVot3Balance, useHasV1SmartAccount, useHasVotedInRound, useIpfsImage, useIpfsImageList, useIpfsMetadata, useIpfsMetadatas, useIsBlacklisted, useIsDomainProtected, useIsEntity, useIsGMclaimable, useIsNodeHolder, useIsPWA, useIsPassport, useIsPassportCheckEnabled, useIsPerson, useIsPersonAtTimepoint, useIsSmartAccountDeployed, useIsUserEntity, useIsUserPassport, useIsUserPerson, useIsWhitelisted, useLevelMultiplier, useLevelOfToken, useLocalStorage, useLoginModalContent, useLoginWithOAuth2 as useLoginWithOAuth, useLoginWithPasskey, useLoginWithVeChain, useMostVotedAppsInRound, useMultipleXAppRoundEarnings, useNFTImage, useNFTMetadataUri, useNotificationAlerts, useNotifications, useNotificationsModal, useParticipatedInGovernance, useParticipationScoreThreshold, usePassportChecks, usePrivyWalletProvider, useReceiveModal, useRefreshBalances, useRefreshMetadata, useRoundEarnings, useRoundReward, useRoundXApps, useScrollToTop, useSecurityMultiplier, useSelectedGmNft, useSendTokenModal, useSendTransaction, useSignMessage2 as useSignMessage, useSignTypedData2 as useSignTypedData, useSingleImageUpload, useSmartAccount, useSmartAccountVersion, useThresholdParticipationScore, useThresholdParticipationScoreAtTimepoint, useTokenIdByAccount, useTransactionModal, useTransactionToast, useTransferERC20, useTransferVET, useTxReceipt, useUpdateTextRecord, useUpgradeRequired, useUpgradeRequiredForAccount, useUpgradeSmartAccount, useUpgradeSmartAccountModal, useUploadImages, useUserBotSignals, useUserDelegation, useUserRoundScore, useUserStatus, useUserTopVotedApps, useUserVotesInAllRounds, useUserVotesInRound, useVeChainKitConfig, useVechainDomain, useVotesInRound, useVotingRewards, useWallet, useWalletMetadata, useWalletModal2 as useWalletModal, useXApp, useXAppMetadata, useXAppRoundEarnings, useXAppTotalEarnings, useXAppVotes, useXAppVotesQf, useXApps, useXAppsMetadataBaseUri, useXAppsShares, useXNode, useXNodeCheckCooldown, useXNodes };
18546
+ export { APP_SECURITY_LEVELS, AccessAndSecurityContent, AccessAndSecurityModalProvider, AccountAvatar, AccountCustomizationModalProvider, AccountDetailsButton, AccountMainContent, AccountModal, AccountModalProvider, AccountSelector, ActionButton, AddressDisplay, AddressDisplayCard, AssetButton, AssetsContent, AssetsSection, BalanceSection, BaseModal, BridgeContent, ChooseNameContent, ChooseNameModalProvider, ChooseNameSearchContent, ChooseNameSummaryContent, ConnectModal, ConnectModalProvider, ConnectPopover, ConnectionButton, CrossAppConnectionSecurityCard, CustomizationContent, CustomizationSummaryContent, DappKitButton, DomainRequiredAlert, ENS_TEXT_RECORDS, EcosystemButton, EcosystemModal, EmailLoginButton, EmbeddedWalletContent, ExchangeWarningAlert, ExploreEcosystemModalProvider, FAQContent, FAQModalProvider, FadeInView, FadeInViewFromBottom, FadeInViewFromLeft, FadeInViewFromRight, FeatureAnnouncementCard, LoginLoadingModal, LoginWithGoogleButton, MAX_IMAGE_SIZE, MainContent, ManageCustomTokenContent, ModalBackButton, ModalFAQButton, NFTMediaType, NotificationsModalProvider, PRICE_FEED_IDS, PasskeyLoginButton, PrivyButton, PrivyWalletProvider, ProfileCard, ProfileContent, ProfileModalProvider, QuickActionsSection, ReceiveModalProvider, ReceiveTokenContent, RoundState, ScrollToTopWrapper, SecurityLevel, SelectTokenContent, SendTokenContent, SendTokenModalProvider, SendTokenSummaryContent, SettingsContent, ShareButtons, SocialIcons, StickyFooterContainer, StickyHeaderContainer, SwapTokenContent, TransactionButtonAndStatus, TransactionModal, TransactionModalContent, TransactionModalProvider, TransactionToast, TransactionToastProvider, UpgradeSmartAccountContent, UpgradeSmartAccountModal, UpgradeSmartAccountModalProvider, VeChainKitContext, VeChainKitProvider, VeChainLoginButton, VeChainWithPrivyLoginButton, VePassportUserStatus, VechainKitThemeProvider, VersionFooter, WalletButton, WalletModalProvider, buildClaimRewardsTx, buildClaimRoundReward, compressImages, currentBlockQueryKey, fetchPrivyAppInfo, fetchPrivyStatus, fetchVechainDomain, getAccountAddress, getAccountAddressQueryKey, getAccountBalance, getAccountBalanceQueryKey, getAccountImplementationAddress, getAccountImplementationAddressQueryKey, getAccountVersion, getAccountVersionQueryKey, getAllEvents, getAllocationAmount, getAllocationAmountQueryKey, getAllocationsRoundState, getAllocationsRoundStateQueryKey, getAllocationsRoundsEvents, getAllocationsRoundsEventsQueryKey, getAppAdmin, getAppAdminQueryKey, getAppBalance, getAppBalanceQueryKey, getAppExistsQueryKey, getAppSecurityLevelQueryKey, getAppsEligibleInNextRound, getAppsEligibleInNextRoundQueryKey, getAppsShareClauses, getAvatar, getAvatarOfAddressQueryKey, getAvatarQueryKey, getB3trBalance, getB3trBalanceQueryKey, getB3trDonatedQueryKey, getB3trToUpgradeQueryKey, getBalanceOf, getCallKey, getChainId, getChainIdQueryKey, getCurrentAccountImplementationVersion, getCurrentAccountImplementationVersionQueryKey, getCurrentAllocationsRoundId, getCurrentAllocationsRoundIdQueryKey, getCustomTokenBalance, getCustomTokenBalanceQueryKey, getCustomTokenInfo, getDelegateeQueryKey, getDelegatorQueryKey, getDomainsOfAddress, getDomainsOfAddressQueryKey, getEnsRecordExistsQueryKey, getEntitiesLinkedToPassportQueryKey, getEvents, getGMBaseUriQueryKey, getGMLevel, getGMbalanceQueryKey, getGetCumulativeScoreWithDecayQueryKey, getHasV1SmartAccount, getHasV1SmartAccountQueryKey, getHasVotedInRound, getHasVotedInRoundQueryKey, getIpfsImage, getIpfsImageQueryKey, getIpfsMetadata, getIpfsMetadataQueryKey, getIsBlacklistedQueryKey, getIsDeployed, getIsDeployedQueryKey, getIsDomainProtectedQueryKey, getIsEntityQueryKey, getIsNodeHolder, getIsNodeHolderQueryKey, getIsPassportQueryKey, getIsPersonAtTimepointQueryKey, getIsPersonQueryKey, getIsWhitelistedQueryKey, getLevelGradient, getLevelMultiplierQueryKey, getLevelOfTokenQueryKey, getNFTMetadataUri, getNFTMetadataUriQueryKey, getNodeCheckCooldownQueryKey, getNodeManagerQueryKey, getParticipatedInGovernance, getParticipatedInGovernanceQueryKey, getParticipationScoreThresholdQueryKey, getPassportForEntityQueryKey, getPassportToggleQueryKey, getPendingDelegationsQueryKeyDelegateePOV, getPendingDelegationsQueryKeyDelegatorPOV, getPendingLinkingsQueryKey, getPrivyAppInfoQueryKey, getResolverAddress, getResolverAddressQueryKey, getRoundReward, getRoundRewardQueryKey, getRoundXApps, getRoundXAppsQueryKey, getSecurityMultiplierQueryKey, getSmartAccount, getSmartAccountQueryKey, getTextRecords, getTextRecordsQueryKey, getThresholdParticipationScoreAtTimepointQueryKey, getThresholdParticipationScoreQueryKey, getTokenIdByAccount, getTokenIdByAccountQueryKey, getTokenInfo, getTokenUsdPrice, getTokenUsdPriceQueryKey, getTokensInfoByOwnerQueryKey, getUpgradeRequired, getUpgradeRequiredForAccount, getUpgradeRequiredForAccountQueryKey, getUpgradeRequiredQueryKey, getUserBotSignalsQueryKey, getUserNodesQueryKey, getUserRoundScoreQueryKey, getUserVotesInRound, getUserVotesInRoundQueryKey, getUserXNodes, getUserXNodesQueryKey, getVeDelegateBalance, getVeDelegateBalanceQueryKey, getVechainDomainQueryKey, getVersion, getVersionQueryKey, getVot3Balance, getVot3BalanceQueryKey, getVotesInRoundQueryKey, getXAppMetadata, getXAppMetadataQueryKey, getXAppRoundEarnings, getXAppRoundEarningsQueryKey, getXAppTotalEarningsClauses, getXAppTotalEarningsQueryKey, getXAppVotes, getXAppVotesQf, getXAppVotesQfQueryKey, getXAppVotesQueryKey, getXApps, getXAppsMetadataBaseUri, getXAppsMetadataBaseUriQueryKey, getXAppsQueryKey, getXAppsSharesQueryKey, imageCompressionOptions, pollForReceipt, useAccessAndSecurityModal, useAccountBalance, useAccountCustomizationModal, useAccountImplementationAddress, useAccountLinking, useAccountModal, useAllocationAmount, useAllocationsRound, useAllocationsRoundState, useAllocationsRoundsEvents, useAppAdmin, useAppBalance, useAppExists, useAppSecurityLevel, useAppsEligibleInNextRound, useB3trDonated, useB3trToUpgrade, useBalances, useCall, useChooseNameModal, useClaimVeWorldSubdomain, useConnectModal, useCrossAppConnectionCache, useCurrentAccountImplementationVersion, useCurrentAllocationsRound, useCurrentAllocationsRoundId, useCurrentBlock, useEcosystemShortcuts, useEnsRecordExists, useExploreEcosystemModal, useFAQModal, useFeatureAnnouncement, useFetchAppInfo, useFetchPrivyStatus, useGMBaseUri, useGMbalance, useGetAccountAddress, useGetAccountVersion, useGetAvatar, useGetAvatarOfAddress, useGetB3trBalance, useGetChainId, useGetCumulativeScoreWithDecay, useGetCustomTokenBalances, useGetCustomTokenInfo, useGetDelegatee, useGetDelegator, useGetDomainsOfAddress, useGetEntitiesLinkedToPassport, useGetNodeManager, useGetNodeUrl, useGetPassportForEntity, useGetPendingDelegationsDelegateePOV, useGetPendingDelegationsDelegatorPOV, useGetPendingLinkings, useGetResolverAddress, useGetTextRecords, useGetTokenUsdPrice, useGetTokensInfoByOwner, useGetUserEntitiesLinkedToPassport, useGetUserNode, useGetUserNodes, useGetUserPassportForEntity, useGetUserPendingLinkings, useGetVeDelegateBalance, useGetVot3Balance, useHasV1SmartAccount, useHasVotedInRound, useIpfsImage, useIpfsImageList, useIpfsMetadata, useIpfsMetadatas, useIsBlacklisted, useIsDomainProtected, useIsEntity, useIsGMclaimable, useIsNodeHolder, useIsPWA, useIsPassport, useIsPassportCheckEnabled, useIsPerson, useIsPersonAtTimepoint, useIsSmartAccountDeployed, useIsUserEntity, useIsUserPassport, useIsUserPerson, useIsWhitelisted, useLevelMultiplier, useLevelOfToken, useLocalStorage, useLoginModalContent, useLoginWithOAuth2 as useLoginWithOAuth, useLoginWithPasskey, useLoginWithVeChain, useMostVotedAppsInRound, useMultipleXAppRoundEarnings, useNFTImage, useNFTMetadataUri, useNotificationAlerts, useNotifications, useNotificationsModal, useParticipatedInGovernance, useParticipationScoreThreshold, usePassportChecks, usePrivyWalletProvider, useProfileModal, useReceiveModal, useRefreshBalances, useRefreshMetadata, useRoundEarnings, useRoundReward, useRoundXApps, useScrollToTop, useSecurityMultiplier, useSelectedGmNft, useSendTokenModal, useSendTransaction, useSignMessage2 as useSignMessage, useSignTypedData2 as useSignTypedData, useSingleImageUpload, useSmartAccount, useSmartAccountVersion, useThresholdParticipationScore, useThresholdParticipationScoreAtTimepoint, useTokenIdByAccount, useTransactionModal, useTransactionToast, useTransferERC20, useTransferVET, useTxReceipt, useUpdateTextRecord, useUpgradeRequired, useUpgradeRequiredForAccount, useUpgradeSmartAccount, useUpgradeSmartAccountModal, useUploadImages, useUserBotSignals, useUserDelegation, useUserRoundScore, useUserStatus, useUserTopVotedApps, useUserVotesInAllRounds, useUserVotesInRound, useVeChainKitConfig, useVechainDomain, useVotesInRound, useVotingRewards, useWallet, useWalletMetadata, useWalletModal2 as useWalletModal, useXApp, useXAppMetadata, useXAppRoundEarnings, useXAppTotalEarnings, useXAppVotes, useXAppVotesQf, useXApps, useXAppsMetadataBaseUri, useXAppsShares, useXNode, useXNodeCheckCooldown, useXNodes };
18197
18547
  //# sourceMappingURL=index.js.map
18198
18548
  //# sourceMappingURL=index.js.map