@vechain/vechain-kit 1.5.11 → 1.5.13

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,12 +1,12 @@
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, DEFAULT_PRIVY_ECOSYSTEM_APPS, humanAddress, getPicassoImage, VECHAIN_PRIVY_APP_ID, compareAddresses, isValidAddress, TOKEN_LOGO_COMPONENTS, TOKEN_LOGOS, humanDomain, uploadBlobToIPFS, randomTransactionUser } from './chunk-RSEKQ6PP.js';
3
- export { getConfig } from './chunk-RSEKQ6PP.js';
4
- import { SimpleAccountFactoryABI, VechainLogo, VechainLogoLight, VechainLogoDark, VechainEnergy, PrivyLogo, SimpleAccountABI } from './chunk-3CI2FPCB.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-YPHGCDGO.js';
3
+ export { getConfig } from './chunk-YPHGCDGO.js';
4
+ import { SimpleAccountFactoryABI, VechainLogo, VechainLogoLight, VechainLogoDark, VechainEnergy, PrivyLogo, SimpleAccountABI } from './chunk-G7I2W6XJ.js';
5
5
  import './chunk-PZ5AY32C.js';
6
6
  import React10, { createContext, useState, useEffect, useMemo, useCallback, useRef, useContext } from 'react';
7
7
  import { useLoginWithOAuth, usePrivy, useLoginWithEmail, useMfaEnrollment, useSetWalletRecovery, useLoginWithPasskey as useLoginWithPasskey$1, PrivyProvider } from '@privy-io/react-auth';
8
8
  export { useMfaEnrollment, usePrivy, useSetWalletRecovery } from '@privy-io/react-auth';
9
- import { useConnex, useWallet as useWallet$1, useWalletModal, useVechainDomain as useVechainDomain$1, DAppKitProvider } from '@vechain/dapp-kit-react';
9
+ import { useConnex, useWallet as useWallet$1, useWalletModal, 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';
12
12
  import { ABIContract, Address, Clause } from '@vechain/sdk-core';
@@ -17,14 +17,14 @@ 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, toUtf8String, zeroPadValue, toBeHex, ZeroAddress, parseEther as parseEther$1, ethers } from 'ethers';
20
+ import { Interface, formatEther as formatEther$1, isAddress, ethers, namehash, toUtf8String, zeroPadValue, toBeHex, parseEther as parseEther$1 } 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
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, IoCogSharp, IoShieldOutline, IoOpenOutline, IoTrashBin, IoChevronUp, IoChevronDown, IoCloseOutline } from 'react-icons/io5';
27
+ import { IoChevronBack, IoCheckmarkOutline, IoCopyOutline, IoWalletOutline, IoCloseCircle, IoCogSharp, IoShieldOutline, IoOpenOutline, IoTrashBin, IoChevronUp, IoChevronDown, IoCloseOutline, IoTrashOutline } 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';
@@ -2808,25 +2808,27 @@ var fetchVechainDomain = async (thor, networkType, addressOrDomain) => {
2808
2808
  return {
2809
2809
  address: void 0,
2810
2810
  domain: void 0,
2811
- isValidAddressOrDomain: false
2811
+ isValidAddressOrDomain: false,
2812
+ isPrimaryDomain: false
2812
2813
  };
2813
2814
  }
2814
- const isValidAddress2 = isAddress(addressOrDomain);
2815
- if (isValidAddress2) {
2815
+ if (isAddress(addressOrDomain)) {
2816
2816
  try {
2817
2817
  const res = await thor.account(getConfig(networkType).vnsResolverAddress).method(getNamesABI).call([addressOrDomain]);
2818
2818
  const domainName = res.decoded.names?.[0];
2819
2819
  return {
2820
2820
  address: addressOrDomain,
2821
2821
  domain: domainName || void 0,
2822
- isValidAddressOrDomain: true
2822
+ isValidAddressOrDomain: true,
2823
+ isPrimaryDomain: true
2823
2824
  };
2824
2825
  } catch (err) {
2825
2826
  console.error("Error getting domain: ", err);
2826
2827
  return {
2827
2828
  address: addressOrDomain,
2828
2829
  domain: void 0,
2829
- isValidAddressOrDomain: true
2830
+ isValidAddressOrDomain: true,
2831
+ isPrimaryDomain: false
2830
2832
  };
2831
2833
  }
2832
2834
  }
@@ -2837,20 +2839,25 @@ var fetchVechainDomain = async (thor, networkType, addressOrDomain) => {
2837
2839
  return {
2838
2840
  address: void 0,
2839
2841
  domain: void 0,
2840
- isValidAddressOrDomain: false
2842
+ isValidAddressOrDomain: false,
2843
+ isPrimaryDomain: false
2841
2844
  };
2842
2845
  }
2846
+ const primaryDomainRes = await thor.account(getConfig(networkType).vnsResolverAddress).method(getNamesABI).call([domainAddress]);
2847
+ const primaryDomain = primaryDomainRes.decoded.names?.[0];
2843
2848
  return {
2844
2849
  address: domainAddress,
2845
2850
  domain: addressOrDomain,
2846
- isValidAddressOrDomain: true
2851
+ isValidAddressOrDomain: true,
2852
+ isPrimaryDomain: primaryDomain === addressOrDomain
2847
2853
  };
2848
2854
  } catch (err) {
2849
2855
  console.error("Error getting address: ", err);
2850
2856
  return {
2851
2857
  address: void 0,
2852
2858
  domain: void 0,
2853
- isValidAddressOrDomain: false
2859
+ isValidAddressOrDomain: false,
2860
+ isPrimaryDomain: false
2854
2861
  };
2855
2862
  }
2856
2863
  };
@@ -2864,11 +2871,7 @@ var useVechainDomain = (addressOrDomain) => {
2864
2871
  return useQuery({
2865
2872
  queryKey: getVechainDomainQueryKey(addressOrDomain),
2866
2873
  queryFn: () => fetchVechainDomain(thor, network.type, addressOrDomain),
2867
- enabled: !!thor && !!addressOrDomain,
2868
- staleTime: 24 * 60 * 60 * 1e3,
2869
- // 24 hours
2870
- gcTime: 24 * 60 * 60 * 1e3
2871
- // 24 hours
2874
+ enabled: !!thor && !!addressOrDomain
2872
2875
  });
2873
2876
  };
2874
2877
  var MockENSInterface = MockENS__factory.createInterface();
@@ -2894,6 +2897,83 @@ var useEnsRecordExists = (name) => {
2894
2897
  enabled: !!name
2895
2898
  });
2896
2899
  };
2900
+ var useRefreshMetadata = (domain, address) => {
2901
+ const queryClient = useQueryClient();
2902
+ const { network } = useVeChainKitConfig();
2903
+ const refresh = async () => {
2904
+ await queryClient.invalidateQueries({
2905
+ queryKey: getAvatarQueryKey(domain ?? "", network.type)
2906
+ });
2907
+ await queryClient.refetchQueries({
2908
+ queryKey: getAvatarQueryKey(domain ?? "", network.type)
2909
+ });
2910
+ await queryClient.invalidateQueries({
2911
+ queryKey: getTextRecordsQueryKey(domain, network.type)
2912
+ });
2913
+ await queryClient.refetchQueries({
2914
+ queryKey: getTextRecordsQueryKey(domain, network.type)
2915
+ });
2916
+ await queryClient.invalidateQueries({
2917
+ queryKey: getAvatarOfAddressQueryKey(address)
2918
+ });
2919
+ await queryClient.refetchQueries({
2920
+ queryKey: getAvatarOfAddressQueryKey(address)
2921
+ });
2922
+ };
2923
+ return { refresh };
2924
+ };
2925
+
2926
+ // src/hooks/api/vetDomains/utils/domainQueryUtils.ts
2927
+ var invalidateAndRefetchDomainQueries = async (queryClient, address, fullDomain, subdomain, domain, networkType) => {
2928
+ await Promise.all([
2929
+ queryClient.invalidateQueries({
2930
+ queryKey: getVechainDomainQueryKey(address)
2931
+ }),
2932
+ queryClient.invalidateQueries({
2933
+ queryKey: getVechainDomainQueryKey(fullDomain)
2934
+ }),
2935
+ queryClient.invalidateQueries({
2936
+ queryKey: getEnsRecordExistsQueryKey(subdomain)
2937
+ }),
2938
+ queryClient.invalidateQueries({
2939
+ queryKey: getDomainsOfAddressQueryKey(address, ".vet")
2940
+ }),
2941
+ queryClient.invalidateQueries({
2942
+ queryKey: getDomainsOfAddressQueryKey(address, ".veworld.vet")
2943
+ }),
2944
+ queryClient.invalidateQueries({
2945
+ queryKey: getTextRecordsQueryKey(fullDomain)
2946
+ })
2947
+ ]);
2948
+ await Promise.all([
2949
+ queryClient.refetchQueries({
2950
+ queryKey: getVechainDomainQueryKey(address)
2951
+ }),
2952
+ queryClient.refetchQueries({
2953
+ queryKey: getVechainDomainQueryKey(fullDomain)
2954
+ }),
2955
+ queryClient.refetchQueries({
2956
+ queryKey: getDomainsOfAddressQueryKey(address, ".vet")
2957
+ }),
2958
+ queryClient.refetchQueries({
2959
+ queryKey: getDomainsOfAddressQueryKey(address, ".veworld.vet")
2960
+ }),
2961
+ queryClient.refetchQueries({
2962
+ queryKey: getAvatarQueryKey(subdomain + "." + domain, networkType)
2963
+ }),
2964
+ queryClient.refetchQueries({
2965
+ queryKey: getTextRecordsQueryKey(fullDomain)
2966
+ }),
2967
+ queryClient.refetchQueries({
2968
+ queryKey: getEnsRecordExistsQueryKey(subdomain)
2969
+ }),
2970
+ queryClient.refetchQueries({
2971
+ queryKey: getAvatarOfAddressQueryKey(address)
2972
+ })
2973
+ ]);
2974
+ };
2975
+
2976
+ // src/hooks/api/vetDomains/useClaimVeWorldSubdomain.ts
2897
2977
  var SubdomainClaimerInterface = SubdomainClaimer__factory.createInterface();
2898
2978
  var ReverseRegistrarInterface = IReverseRegistrar__factory.createInterface();
2899
2979
  var useClaimVeWorldSubdomain = ({
@@ -2906,9 +2986,14 @@ var useClaimVeWorldSubdomain = ({
2906
2986
  const queryClient = useQueryClient();
2907
2987
  const { account } = useWallet();
2908
2988
  const { network } = useVeChainKitConfig();
2989
+ const { refresh: refreshMetadata } = useRefreshMetadata(
2990
+ subdomain + "." + domain,
2991
+ account?.address ?? ""
2992
+ );
2909
2993
  const buildClauses = useCallback(async () => {
2910
- if (!subdomain) throw new Error("Invalid subdomain");
2911
2994
  const clausesArray = [];
2995
+ if (!subdomain) throw new Error("Invalid subdomain");
2996
+ const fullDomain = `${subdomain}.${domain}`;
2912
2997
  clausesArray.push({
2913
2998
  to: getConfig(network.type).vetDomainsReverseRegistrarAddress,
2914
2999
  value: "0x0",
@@ -2920,88 +3005,190 @@ var useClaimVeWorldSubdomain = ({
2920
3005
  )}`,
2921
3006
  abi: ReverseRegistrarInterface.getFunction("setName")
2922
3007
  });
2923
- if (!alreadyOwned) {
3008
+ if (alreadyOwned) {
2924
3009
  clausesArray.push({
2925
- to: getConfig(network.type).veWorldSubdomainClaimerContractAddress,
3010
+ to: getConfig(network.type).vetDomainsReverseRegistrarAddress,
2926
3011
  value: "0x0",
2927
- data: SubdomainClaimerInterface.encodeFunctionData("claim", [
2928
- subdomain,
2929
- getConfig(network.type).vetDomainsPublicResolverAddress
3012
+ data: ReverseRegistrarInterface.encodeFunctionData("setName", [
3013
+ fullDomain
2930
3014
  ]),
2931
- comment: `Claim VeChain subdomain: ${subdomain}.${domain}`,
2932
- abi: SubdomainClaimerInterface.getFunction("claim")
3015
+ comment: `Setting your VeChain nickname to ${fullDomain}`,
3016
+ abi: ReverseRegistrarInterface.getFunction("setName")
2933
3017
  });
3018
+ const PublicResolverInterface = new ethers.Interface([
3019
+ "function setAddr(bytes32 node, address addr)"
3020
+ ]);
3021
+ const domainNode = ethers.namehash(fullDomain);
3022
+ clausesArray.push({
3023
+ to: getConfig(network.type).vetDomainsPublicResolverAddress,
3024
+ value: "0x0",
3025
+ data: PublicResolverInterface.encodeFunctionData("setAddr", [
3026
+ domainNode,
3027
+ account?.address || ""
3028
+ ]),
3029
+ comment: `Setting the address for ${fullDomain} to ${humanAddress(
3030
+ account?.address ?? "",
3031
+ 4,
3032
+ 4
3033
+ )}`,
3034
+ abi: PublicResolverInterface.getFunction("setAddr")
3035
+ });
3036
+ } else {
3037
+ if (isVeWorldDomain(domain)) {
3038
+ clausesArray.push({
3039
+ to: getConfig(network.type).veWorldSubdomainClaimerContractAddress,
3040
+ value: "0x0",
3041
+ data: SubdomainClaimerInterface.encodeFunctionData(
3042
+ "claim",
3043
+ [
3044
+ subdomain,
3045
+ getConfig(network.type).vetDomainsPublicResolverAddress
3046
+ ]
3047
+ ),
3048
+ comment: `Claim VeChain subdomain: ${subdomain}.${domain}`,
3049
+ abi: SubdomainClaimerInterface.getFunction("claim")
3050
+ });
3051
+ clausesArray.push({
3052
+ to: getConfig(network.type).vetDomainsReverseRegistrarAddress,
3053
+ value: "0x0",
3054
+ data: ReverseRegistrarInterface.encodeFunctionData(
3055
+ "setName",
3056
+ [subdomain + "." + domain]
3057
+ ),
3058
+ comment: `Set ${subdomain}.${domain} as the VeChain nickname of the account ${humanAddress(
3059
+ account?.address ?? "",
3060
+ 4,
3061
+ 4
3062
+ )}`,
3063
+ abi: ReverseRegistrarInterface.getFunction("setName")
3064
+ });
3065
+ } else {
3066
+ throw new Error(
3067
+ "This hook only supports .veworld.vet subdomains"
3068
+ );
3069
+ }
2934
3070
  }
2935
- clausesArray.push({
2936
- to: getConfig(network.type).vetDomainsReverseRegistrarAddress,
2937
- value: "0x0",
2938
- data: ReverseRegistrarInterface.encodeFunctionData("setName", [
2939
- subdomain + "." + domain
2940
- ]),
2941
- comment: `Set ${subdomain}.${domain} as the VeChain nickname of the account ${humanAddress(
2942
- account?.address ?? "",
2943
- 4,
2944
- 4
2945
- )}`,
2946
- abi: ReverseRegistrarInterface.getFunction("setName")
2947
- });
2948
3071
  return clausesArray;
2949
- }, [subdomain, domain, account?.address, alreadyOwned]);
3072
+ }, [subdomain, domain, alreadyOwned, account?.address, network.type]);
2950
3073
  const handleOnSuccess = useCallback(async () => {
2951
- queryClient.cancelQueries({
2952
- queryKey: getVechainDomainQueryKey(account?.address ?? ""),
2953
- refetchType: "none"
2954
- });
2955
- queryClient.cancelQueries({
2956
- queryKey: getVechainDomainQueryKey(subdomain + "." + domain),
2957
- refetchType: "none"
2958
- });
2959
- queryClient.cancelQueries({
2960
- queryKey: getEnsRecordExistsQueryKey(subdomain),
2961
- refetchType: "none"
2962
- });
2963
- queryClient.cancelQueries({
2964
- queryKey: getDomainsOfAddressQueryKey(
2965
- account?.address ?? "",
2966
- domain
2967
- ),
2968
- refetchType: "none"
2969
- });
2970
- setTimeout(() => {
2971
- queryClient.invalidateQueries({
2972
- queryKey: getVechainDomainQueryKey(account?.address ?? ""),
2973
- refetchType: "none"
2974
- });
2975
- queryClient.invalidateQueries({
2976
- queryKey: getVechainDomainQueryKey(subdomain + "." + domain),
2977
- refetchType: "none"
2978
- });
2979
- queryClient.refetchQueries({
2980
- queryKey: getVechainDomainQueryKey(account?.address ?? "")
2981
- });
2982
- queryClient.refetchQueries({
2983
- queryKey: getVechainDomainQueryKey(subdomain + "." + domain)
2984
- });
2985
- queryClient.invalidateQueries({
2986
- queryKey: getEnsRecordExistsQueryKey(subdomain)
2987
- });
2988
- queryClient.refetchQueries({
2989
- queryKey: getEnsRecordExistsQueryKey(subdomain)
3074
+ const fullDomain = `${subdomain}.${domain}`;
3075
+ const address = account?.address ?? "";
3076
+ await invalidateAndRefetchDomainQueries(
3077
+ queryClient,
3078
+ address,
3079
+ fullDomain,
3080
+ subdomain,
3081
+ domain,
3082
+ network.type
3083
+ );
3084
+ refreshMetadata();
3085
+ onSuccess?.();
3086
+ }, [
3087
+ onSuccess,
3088
+ subdomain,
3089
+ domain,
3090
+ queryClient,
3091
+ account,
3092
+ network.type,
3093
+ refreshMetadata
3094
+ ]);
3095
+ const result = useSendTransaction({
3096
+ signerAccountAddress: account?.address ?? "",
3097
+ privyUIOptions: {
3098
+ title: "Sign to claim your VeChain nickname",
3099
+ description: `Claim ${subdomain}.${domain} as your VeChain nickname`,
3100
+ buttonText: "Sign to continue"
3101
+ },
3102
+ onTxConfirmed: handleOnSuccess,
3103
+ onTxFailedOrCancelled: onError
3104
+ });
3105
+ return {
3106
+ ...result,
3107
+ sendTransaction: async () => {
3108
+ return result.sendTransaction(await buildClauses());
3109
+ }
3110
+ };
3111
+ };
3112
+ var isVeWorldDomain = (domain) => {
3113
+ return domain.endsWith("veworld.vet");
3114
+ };
3115
+ var ReverseRegistrarInterface2 = IReverseRegistrar__factory.createInterface();
3116
+ var useClaimVetDomain = ({
3117
+ domain,
3118
+ onSuccess,
3119
+ onError,
3120
+ alreadyOwned = false
3121
+ }) => {
3122
+ const queryClient = useQueryClient();
3123
+ const { account } = useWallet();
3124
+ const { network } = useVeChainKitConfig();
3125
+ const { refresh: refreshMetadata } = useRefreshMetadata(
3126
+ domain,
3127
+ account?.address ?? ""
3128
+ );
3129
+ const buildClauses = useCallback(async () => {
3130
+ const clausesArray = [];
3131
+ if (!domain) throw new Error("Invalid domain");
3132
+ const fullDomain = `${domain}.vet`;
3133
+ if (alreadyOwned) {
3134
+ clausesArray.push({
3135
+ to: getConfig(network.type).vetDomainsReverseRegistrarAddress,
3136
+ value: "0x0",
3137
+ data: ReverseRegistrarInterface2.encodeFunctionData("setName", [
3138
+ fullDomain
3139
+ ]),
3140
+ comment: `Setting your VeChain nickname to ${fullDomain}`,
3141
+ abi: ReverseRegistrarInterface2.getFunction("setName")
2990
3142
  });
2991
- queryClient.refetchQueries({
2992
- queryKey: getDomainsOfAddressQueryKey(
3143
+ const PublicResolverInterface = new ethers.Interface([
3144
+ "function setAddr(bytes32 node, address addr)"
3145
+ ]);
3146
+ const domainNode = ethers.namehash(fullDomain);
3147
+ clausesArray.push({
3148
+ to: getConfig(network.type).vetDomainsPublicResolverAddress,
3149
+ value: "0x0",
3150
+ data: PublicResolverInterface.encodeFunctionData("setAddr", [
3151
+ domainNode,
3152
+ account?.address || ""
3153
+ ]),
3154
+ comment: `Setting the address for ${fullDomain} to ${humanAddress(
2993
3155
  account?.address ?? "",
2994
- domain
2995
- )
3156
+ 4,
3157
+ 4
3158
+ )}`,
3159
+ abi: PublicResolverInterface.getFunction("setAddr")
2996
3160
  });
2997
- }, 2e3);
3161
+ } else {
3162
+ throw new Error("Primary .vet domains are not supported yet");
3163
+ }
3164
+ return clausesArray;
3165
+ }, [domain, alreadyOwned, account?.address, network.type]);
3166
+ const handleOnSuccess = useCallback(async () => {
3167
+ const address = account?.address ?? "";
3168
+ await invalidateAndRefetchDomainQueries(
3169
+ queryClient,
3170
+ address,
3171
+ domain,
3172
+ "",
3173
+ // No subdomain for primary domains
3174
+ domain.endsWith(".vet") ? domain : `${domain}.vet`,
3175
+ network.type
3176
+ );
3177
+ refreshMetadata();
2998
3178
  onSuccess?.();
2999
- }, [onSuccess, subdomain, domain, queryClient, account?.address]);
3179
+ }, [
3180
+ onSuccess,
3181
+ domain,
3182
+ queryClient,
3183
+ account,
3184
+ network.type,
3185
+ refreshMetadata
3186
+ ]);
3000
3187
  const result = useSendTransaction({
3001
3188
  signerAccountAddress: account?.address ?? "",
3002
3189
  privyUIOptions: {
3003
3190
  title: "Sign to claim your VeChain nickname",
3004
- description: `Claim ${subdomain} as your VeChain nickname`,
3191
+ description: `Claim ${domain} as your VeChain nickname`,
3005
3192
  buttonText: "Sign to continue"
3006
3193
  },
3007
3194
  onTxConfirmed: handleOnSuccess,
@@ -3076,173 +3263,48 @@ var useGetDomainsOfAddress = (address, parentDomain) => {
3076
3263
  enabled: !!address && !!network.type
3077
3264
  });
3078
3265
  };
3079
- var nameInterface = new Interface([
3080
- "function resolver(bytes32 node) returns (address resolverAddress)",
3081
- "function text(bytes32 node, string key) returns (string avatar)"
3082
- ]);
3083
- var erc721Interface = new Interface([
3084
- "function tokenURI(uint256 tokenId) view returns (string)",
3085
- "function uri(uint256 id) view returns (string)"
3086
- ]);
3087
- var getAvatar = async (networkType, nodeUrl, name) => {
3266
+ var getAvatar = async (name, networkType) => {
3088
3267
  if (!name) throw new Error("Name is required");
3089
- const node = namehash(name);
3090
3268
  try {
3091
- const resolverResponse = await fetch(`${nodeUrl}/accounts/*`, {
3092
- method: "POST",
3093
- headers: {
3094
- "content-type": "application/json"
3095
- },
3096
- body: JSON.stringify({
3097
- clauses: [
3098
- {
3099
- to: getConfig(networkType).vetDomainsContractAddress,
3100
- data: nameInterface.encodeFunctionData("resolver", [
3101
- node
3102
- ])
3103
- }
3104
- ]
3105
- })
3106
- });
3107
- const [{ data: resolverData, reverted: noResolver }] = await resolverResponse.json();
3108
- if (noResolver) {
3109
- return null;
3110
- }
3111
- const { resolverAddress } = nameInterface.decodeFunctionResult(
3112
- "resolver",
3113
- resolverData
3269
+ const response = await fetch(
3270
+ `${getConfig(networkType).vetDomainAvatarUrl}/${name}`
3114
3271
  );
3115
- const avatarResponse = await fetch(`${nodeUrl}/accounts/*`, {
3116
- method: "POST",
3117
- headers: {
3118
- "content-type": "application/json"
3119
- },
3120
- body: JSON.stringify({
3121
- clauses: [
3122
- {
3123
- to: resolverAddress,
3124
- data: nameInterface.encodeFunctionData("text", [
3125
- node,
3126
- "avatar"
3127
- ])
3128
- }
3129
- ]
3130
- })
3131
- });
3132
- const [{ data: lookupData, reverted: noLookup }] = await avatarResponse.json();
3133
- if (noLookup || lookupData === "0x") {
3134
- return null;
3135
- }
3136
- try {
3137
- const { avatar } = nameInterface.decodeFunctionResult(
3138
- "text",
3139
- lookupData
3140
- );
3141
- return avatar === "" ? null : avatar;
3142
- } catch (decodeError) {
3143
- console.error("Failed to decode avatar data:", decodeError);
3272
+ if (!response.ok) {
3144
3273
  return null;
3145
3274
  }
3275
+ const blob = await response.blob();
3276
+ return new Promise((resolve) => {
3277
+ const reader = new FileReader();
3278
+ reader.readAsDataURL(blob);
3279
+ reader.onloadend = () => {
3280
+ resolve(reader.result);
3281
+ };
3282
+ });
3146
3283
  } catch (error) {
3147
3284
  console.error("Error fetching avatar:", error);
3148
- throw error;
3285
+ return null;
3149
3286
  }
3150
3287
  };
3151
- var getAvatarQueryKey = (name) => [
3288
+ var getAvatarQueryKey = (name, networkType) => [
3152
3289
  "VECHAIN_KIT",
3153
3290
  "VET_DOMAINS",
3154
3291
  "AVATAR",
3155
- name
3292
+ name,
3293
+ networkType
3156
3294
  ];
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
- }
3227
3295
  var useGetAvatar = (name) => {
3228
3296
  const { network } = useVeChainKitConfig();
3229
- const nodeUrl = network.nodeUrl ?? getConfig(network.type).nodeUrl;
3230
3297
  const avatarQuery = useQuery({
3231
- queryKey: getAvatarQueryKey(name ?? ""),
3298
+ queryKey: getAvatarQueryKey(name ?? "", network.type),
3232
3299
  queryFn: async () => {
3233
3300
  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);
3301
+ return getAvatar(name, network.type);
3237
3302
  },
3238
- enabled: !!name && !!nodeUrl && !!network.type,
3239
- // Use the same caching strategy as the avatar query
3240
- staleTime: 5 * 60 * 1e3
3241
- // 5 minutes
3303
+ enabled: !!name && !!network.type
3242
3304
  });
3243
3305
  return avatarQuery;
3244
3306
  };
3245
- var nameInterface2 = new Interface([
3307
+ var nameInterface = new Interface([
3246
3308
  "function resolver(bytes32 node) returns (address resolverAddress)",
3247
3309
  "function text(bytes32 node, string key) view returns (string)"
3248
3310
  ]);
@@ -3259,7 +3321,7 @@ var getTextRecords = async (nodeUrl, network, domain) => {
3259
3321
  clauses: [
3260
3322
  {
3261
3323
  to: getConfig(network).vetDomainsContractAddress,
3262
- data: nameInterface2.encodeFunctionData("resolver", [
3324
+ data: nameInterface.encodeFunctionData("resolver", [
3263
3325
  node
3264
3326
  ])
3265
3327
  }
@@ -3270,7 +3332,7 @@ var getTextRecords = async (nodeUrl, network, domain) => {
3270
3332
  if (noResolver) {
3271
3333
  return {};
3272
3334
  }
3273
- const { resolverAddress } = nameInterface2.decodeFunctionResult(
3335
+ const { resolverAddress } = nameInterface.decodeFunctionResult(
3274
3336
  "resolver",
3275
3337
  resolverData
3276
3338
  );
@@ -3282,7 +3344,7 @@ var getTextRecords = async (nodeUrl, network, domain) => {
3282
3344
  body: JSON.stringify({
3283
3345
  clauses: ENS_TEXT_RECORDS.map((key) => ({
3284
3346
  to: resolverAddress,
3285
- data: nameInterface2.encodeFunctionData("text", [node, key])
3347
+ data: nameInterface.encodeFunctionData("text", [node, key])
3286
3348
  }))
3287
3349
  })
3288
3350
  });
@@ -3291,7 +3353,7 @@ var getTextRecords = async (nodeUrl, network, domain) => {
3291
3353
  (acc, { data, reverted }, index) => {
3292
3354
  if (!reverted && data && data !== "0x") {
3293
3355
  try {
3294
- const value = nameInterface2.decodeFunctionResult(
3356
+ const value = nameInterface.decodeFunctionResult(
3295
3357
  "text",
3296
3358
  data
3297
3359
  )[0];
@@ -3548,7 +3610,7 @@ var useSendTransaction = ({
3548
3610
  };
3549
3611
 
3550
3612
  // src/hooks/api/vetDomains/useUpdateTextRecord.ts
3551
- var nameInterface3 = new Interface([
3613
+ var nameInterface2 = new Interface([
3552
3614
  "function resolver(bytes32 node) returns (address resolverAddress)",
3553
3615
  "function setText(bytes32 node, string key, string value) external"
3554
3616
  ]);
@@ -3568,7 +3630,7 @@ var useUpdateTextRecord = ({
3568
3630
  const node = namehash(domain);
3569
3631
  clauses.push({
3570
3632
  to: resolverAddress,
3571
- data: nameInterface3.encodeFunctionData("setText", [
3633
+ data: nameInterface2.encodeFunctionData("setText", [
3572
3634
  node,
3573
3635
  key,
3574
3636
  value
@@ -3577,95 +3639,305 @@ var useUpdateTextRecord = ({
3577
3639
  comment: `Update ${key} record`
3578
3640
  });
3579
3641
  }
3580
- return clauses;
3642
+ return clauses;
3643
+ },
3644
+ [resolverAddress]
3645
+ );
3646
+ const result = useSendTransaction({
3647
+ signerAccountAddress,
3648
+ onTxConfirmed: onSuccess,
3649
+ onTxFailedOrCancelled: async () => {
3650
+ onError?.();
3651
+ },
3652
+ privyUIOptions: {
3653
+ title: "Update Profile Information",
3654
+ description: "Update the profile information associated with your domain",
3655
+ buttonText: "Sign to continue"
3656
+ }
3657
+ });
3658
+ return {
3659
+ ...result,
3660
+ sendTransaction: async (params) => {
3661
+ return result.sendTransaction(await buildClauses(params));
3662
+ }
3663
+ };
3664
+ };
3665
+ var nameInterface3 = new Interface([
3666
+ "function resolver(bytes32 node) returns (address resolverAddress)"
3667
+ ]);
3668
+ var getResolverAddress = async (nodeUrl, network, domain) => {
3669
+ if (!domain) throw new Error("Domain is required");
3670
+ const node = namehash(domain);
3671
+ const resolverResponse = await fetch(`${nodeUrl}/accounts/*`, {
3672
+ method: "POST",
3673
+ headers: { "content-type": "application/json" },
3674
+ body: JSON.stringify({
3675
+ clauses: [
3676
+ {
3677
+ to: getConfig(network).vetDomainsContractAddress,
3678
+ data: nameInterface3.encodeFunctionData("resolver", [node])
3679
+ }
3680
+ ]
3681
+ })
3682
+ });
3683
+ const [{ data: resolverData, reverted: noResolver }] = await resolverResponse.json();
3684
+ if (noResolver) throw new Error("Failed to get resolver address");
3685
+ const { resolverAddress } = nameInterface3.decodeFunctionResult(
3686
+ "resolver",
3687
+ resolverData
3688
+ );
3689
+ return resolverAddress;
3690
+ };
3691
+ var getResolverAddressQueryKey = (domain) => [
3692
+ "VECHAIN_KIT",
3693
+ "RESOLVER_ADDRESS",
3694
+ domain
3695
+ ];
3696
+ var useGetResolverAddress = (domain) => {
3697
+ const { network } = useVeChainKitConfig();
3698
+ const nodeUrl = network.nodeUrl ?? getConfig(network.type).nodeUrl;
3699
+ return useQuery({
3700
+ queryKey: getResolverAddressQueryKey(domain),
3701
+ queryFn: () => getResolverAddress(nodeUrl, network.type, domain),
3702
+ enabled: !!domain && !!nodeUrl && !!network.type
3703
+ });
3704
+ };
3705
+ var getAvatarOfAddressQueryKey = (address) => [
3706
+ "VECHAIN_KIT",
3707
+ "VET_DOMAINS",
3708
+ "AVATAR_OF_ADDRESS",
3709
+ address
3710
+ ];
3711
+ var useGetAvatarOfAddress = (address) => {
3712
+ const domainsQuery = useVechainDomain(address);
3713
+ const primaryDomain = domainsQuery.data?.domain;
3714
+ const avatarQuery = useGetAvatar(primaryDomain ?? "");
3715
+ return useQuery({
3716
+ queryKey: getAvatarOfAddressQueryKey(address),
3717
+ queryFn: async () => {
3718
+ if (!address) return getPicassoImage(address ?? "");
3719
+ const domains = await domainsQuery.refetch();
3720
+ if (!domains.data?.domain) return getPicassoImage(address);
3721
+ if (domains.data.domain && avatarQuery.data)
3722
+ return avatarQuery.data;
3723
+ return getPicassoImage(address);
3724
+ },
3725
+ enabled: !!address && domainsQuery.isSuccess && (primaryDomain ? avatarQuery.isSuccess : true)
3726
+ });
3727
+ };
3728
+ var nameInterface4 = new Interface([
3729
+ "function resolver(bytes32 node) returns (address resolverAddress)",
3730
+ "function text(bytes32 node, string key) returns (string avatar)"
3731
+ ]);
3732
+ var erc721Interface = new Interface([
3733
+ "function tokenURI(uint256 tokenId) view returns (string)",
3734
+ "function uri(uint256 id) view returns (string)"
3735
+ ]);
3736
+ var getAvatarLegacy = async (networkType, nodeUrl, name) => {
3737
+ if (!name) throw new Error("Name is required");
3738
+ const node = namehash(name);
3739
+ try {
3740
+ const resolverResponse = await fetch(`${nodeUrl}/accounts/*`, {
3741
+ method: "POST",
3742
+ headers: {
3743
+ "content-type": "application/json"
3744
+ },
3745
+ body: JSON.stringify({
3746
+ clauses: [
3747
+ {
3748
+ to: getConfig(networkType).vetDomainsContractAddress,
3749
+ data: nameInterface4.encodeFunctionData("resolver", [
3750
+ node
3751
+ ])
3752
+ }
3753
+ ]
3754
+ })
3755
+ });
3756
+ const [{ data: resolverData, reverted: noResolver }] = await resolverResponse.json();
3757
+ if (noResolver) {
3758
+ return null;
3759
+ }
3760
+ const { resolverAddress } = nameInterface4.decodeFunctionResult(
3761
+ "resolver",
3762
+ resolverData
3763
+ );
3764
+ const avatarResponse = await fetch(`${nodeUrl}/accounts/*`, {
3765
+ method: "POST",
3766
+ headers: {
3767
+ "content-type": "application/json"
3768
+ },
3769
+ body: JSON.stringify({
3770
+ clauses: [
3771
+ {
3772
+ to: resolverAddress,
3773
+ data: nameInterface4.encodeFunctionData("text", [
3774
+ node,
3775
+ "avatar"
3776
+ ])
3777
+ }
3778
+ ]
3779
+ })
3780
+ });
3781
+ const [{ data: lookupData, reverted: noLookup }] = await avatarResponse.json();
3782
+ if (noLookup || lookupData === "0x") {
3783
+ return null;
3784
+ }
3785
+ try {
3786
+ const { avatar } = nameInterface4.decodeFunctionResult(
3787
+ "text",
3788
+ lookupData
3789
+ );
3790
+ const avatarRecord = avatar === "" ? null : avatar;
3791
+ if (!avatarRecord) return null;
3792
+ return parseAvatarRecord(avatarRecord, networkType, nodeUrl);
3793
+ } catch (decodeError) {
3794
+ console.error("Failed to decode avatar data:", decodeError);
3795
+ return null;
3796
+ }
3797
+ } catch (error) {
3798
+ console.error("Error fetching avatar:", error);
3799
+ throw error;
3800
+ }
3801
+ };
3802
+ var getAvatarLegacyQueryKey = (name, networkType) => ["VECHAIN_KIT", "VET_DOMAINS", "AVATAR", "LEGACY", name, networkType];
3803
+ async function parseAvatarRecord(record, networkType, nodeUrl) {
3804
+ try {
3805
+ if (record.startsWith("http") || record.startsWith("ipfs://") || record.startsWith("ar://")) {
3806
+ return convertUriToUrl(record, networkType) || null;
3807
+ }
3808
+ const match = record.match(
3809
+ /eip155:(\d+)\/(?:erc721|erc1155):([^/]+)\/(\d+)/
3810
+ );
3811
+ if (match) {
3812
+ const [, chainId, contractAddress, tokenId] = match;
3813
+ const isErc1155 = record.includes("erc1155");
3814
+ if (!chainId || !contractAddress || tokenId === void 0) {
3815
+ return null;
3816
+ }
3817
+ const clauses = [
3818
+ {
3819
+ to: contractAddress,
3820
+ data: erc721Interface.encodeFunctionData(
3821
+ isErc1155 ? "uri" : "tokenURI",
3822
+ [BigInt(tokenId)]
3823
+ )
3824
+ }
3825
+ ];
3826
+ const [{ data, reverted }] = await fetch(`${nodeUrl}/accounts/*`, {
3827
+ method: "POST",
3828
+ headers: {
3829
+ "content-type": "application/json"
3830
+ },
3831
+ body: JSON.stringify({ clauses })
3832
+ }).then((res) => res.json());
3833
+ if (reverted) {
3834
+ console.error("Failed to fetch tokenURI");
3835
+ return null;
3836
+ }
3837
+ let tokenUri = "";
3838
+ try {
3839
+ tokenUri = erc721Interface.decodeFunctionResult(
3840
+ isErc1155 ? "uri" : "tokenURI",
3841
+ data
3842
+ )[0];
3843
+ } catch (e) {
3844
+ console.error("Failed to decode avatar data:", e);
3845
+ tokenUri = toUtf8String(data);
3846
+ }
3847
+ tokenUri = convertUriToUrl(tokenUri, networkType) || tokenUri;
3848
+ if (isErc1155) {
3849
+ tokenUri = tokenUri.replace(
3850
+ "{id}",
3851
+ zeroPadValue(toBeHex(BigInt(tokenId)), 32).slice(2)
3852
+ );
3853
+ }
3854
+ const metadataResponse = await fetch(tokenUri);
3855
+ if (!metadataResponse.ok) {
3856
+ console.error("Failed to fetch metadata");
3857
+ return null;
3858
+ }
3859
+ const metadata = await metadataResponse.json();
3860
+ const imageUrl = metadata.image || metadata.image_url || metadata.image_data;
3861
+ if (!imageUrl) {
3862
+ console.error("No image URL in metadata");
3863
+ return null;
3864
+ }
3865
+ return convertUriToUrl(imageUrl, networkType) || imageUrl;
3866
+ }
3867
+ return null;
3868
+ } catch (error) {
3869
+ console.error("Error parsing avatar record:", error);
3870
+ return null;
3871
+ }
3872
+ }
3873
+ var useGetAvatarLegacy = (name) => {
3874
+ const { network } = useVeChainKitConfig();
3875
+ const nodeUrl = network.nodeUrl ?? getConfig(network.type).nodeUrl;
3876
+ const avatarQuery = useQuery({
3877
+ queryKey: getAvatarLegacyQueryKey(name ?? "", network.type),
3878
+ queryFn: async () => {
3879
+ if (!name) return null;
3880
+ return getAvatarLegacy(network.type, nodeUrl, name);
3581
3881
  },
3582
- [resolverAddress]
3583
- );
3882
+ enabled: !!name && !!nodeUrl && !!network.type
3883
+ });
3884
+ return avatarQuery;
3885
+ };
3886
+ var ReverseRegistrarInterface3 = IReverseRegistrar__factory.createInterface();
3887
+ var useUnsetDomain = ({
3888
+ onSuccess,
3889
+ onError
3890
+ }) => {
3891
+ const queryClient = useQueryClient();
3892
+ const { account } = useWallet();
3893
+ const { network } = useVeChainKitConfig();
3894
+ const buildClauses = useCallback(async () => {
3895
+ const clausesArray = [];
3896
+ clausesArray.push({
3897
+ to: getConfig(network.type).vetDomainsReverseRegistrarAddress,
3898
+ value: "0x0",
3899
+ data: ReverseRegistrarInterface3.encodeFunctionData("setName", [""]),
3900
+ comment: `Unsetting your current VeChain nickname of the account ${humanAddress(
3901
+ account?.address ?? "",
3902
+ 4,
3903
+ 4
3904
+ )}`,
3905
+ abi: ReverseRegistrarInterface3.getFunction("setName")
3906
+ });
3907
+ return clausesArray;
3908
+ }, [account?.address, network.type]);
3909
+ const handleOnSuccess = useCallback(async () => {
3910
+ const address = account?.address ?? "";
3911
+ await invalidateAndRefetchDomainQueries(
3912
+ queryClient,
3913
+ address,
3914
+ "",
3915
+ // No domain being set
3916
+ "",
3917
+ // No subdomain
3918
+ "",
3919
+ // No full domain
3920
+ network.type
3921
+ );
3922
+ onSuccess?.();
3923
+ }, [onSuccess, queryClient, account, network.type]);
3584
3924
  const result = useSendTransaction({
3585
- signerAccountAddress,
3586
- onTxConfirmed: onSuccess,
3587
- onTxFailedOrCancelled: async () => {
3588
- onError?.();
3589
- },
3925
+ signerAccountAddress: account?.address ?? "",
3590
3926
  privyUIOptions: {
3591
- title: "Update Profile Information",
3592
- description: "Update the profile information associated with your domain",
3927
+ title: "Sign to unset your VeChain nickname",
3928
+ description: "Unset your current VeChain nickname",
3593
3929
  buttonText: "Sign to continue"
3594
- }
3930
+ },
3931
+ onTxConfirmed: handleOnSuccess,
3932
+ onTxFailedOrCancelled: onError
3595
3933
  });
3596
3934
  return {
3597
3935
  ...result,
3598
- sendTransaction: async (params) => {
3599
- return result.sendTransaction(await buildClauses(params));
3936
+ sendTransaction: async () => {
3937
+ return result.sendTransaction(await buildClauses());
3600
3938
  }
3601
3939
  };
3602
3940
  };
3603
- var nameInterface4 = new Interface([
3604
- "function resolver(bytes32 node) returns (address resolverAddress)"
3605
- ]);
3606
- var getResolverAddress = async (nodeUrl, network, domain) => {
3607
- if (!domain) throw new Error("Domain is required");
3608
- const node = namehash(domain);
3609
- const resolverResponse = await fetch(`${nodeUrl}/accounts/*`, {
3610
- method: "POST",
3611
- headers: { "content-type": "application/json" },
3612
- body: JSON.stringify({
3613
- clauses: [
3614
- {
3615
- to: getConfig(network).vetDomainsContractAddress,
3616
- data: nameInterface4.encodeFunctionData("resolver", [node])
3617
- }
3618
- ]
3619
- })
3620
- });
3621
- const [{ data: resolverData, reverted: noResolver }] = await resolverResponse.json();
3622
- if (noResolver) throw new Error("Failed to get resolver address");
3623
- const { resolverAddress } = nameInterface4.decodeFunctionResult(
3624
- "resolver",
3625
- resolverData
3626
- );
3627
- return resolverAddress;
3628
- };
3629
- var getResolverAddressQueryKey = (domain) => [
3630
- "VECHAIN_KIT",
3631
- "RESOLVER_ADDRESS",
3632
- domain
3633
- ];
3634
- var useGetResolverAddress = (domain) => {
3635
- const { network } = useVeChainKitConfig();
3636
- const nodeUrl = network.nodeUrl ?? getConfig(network.type).nodeUrl;
3637
- return useQuery({
3638
- queryKey: getResolverAddressQueryKey(domain),
3639
- queryFn: () => getResolverAddress(nodeUrl, network.type, domain),
3640
- enabled: !!domain && !!nodeUrl && !!network.type
3641
- });
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
- };
3669
3941
  var useBalances = ({ address = "" }) => {
3670
3942
  const { network } = useVeChainKitConfig();
3671
3943
  const config = getConfig(network.type);
@@ -3944,12 +4216,14 @@ var usePrivyCrossAppSdk = () => {
3944
4216
  // src/hooks/api/wallet/useWalletMetadata.ts
3945
4217
  var useWalletMetadata = (address, networkType) => {
3946
4218
  const { data: domain, isLoading: isLoadingVechainDomain } = useVechainDomain(address ?? "");
3947
- const { data: avatar, isLoading: isLoadingMetadata } = useGetAvatarOfAddress(address ?? "");
4219
+ const { data: avatar, isLoading: isLoadingMetadata } = useGetAvatar(
4220
+ domain?.domain ?? ""
4221
+ );
3948
4222
  const { data: textRecords, isLoading: isLoadingRecords } = useGetTextRecords(domain?.domain ?? "");
3949
4223
  const headerUrl = textRecords?.header ? convertUriToUrl(textRecords.header, networkType) : null;
3950
4224
  return {
3951
4225
  domain: domain?.domain,
3952
- image: avatar,
4226
+ image: avatar ?? getPicassoImage(address ?? ""),
3953
4227
  records: {
3954
4228
  ...textRecords,
3955
4229
  header: headerUrl
@@ -4014,10 +4288,9 @@ var useWallet = () => {
4014
4288
  const connectedWalletAddress = isConnectedWithDappKit ? dappKitAccount : isConnectedWithCrossApp ? crossAppAddress : privyEmbeddedWalletAddress;
4015
4289
  const { data: smartAccount } = useSmartAccount(connectedWalletAddress);
4016
4290
  const activeAddress = isConnectedWithDappKit ? dappKitAccount : smartAccount?.address;
4017
- const activeAccountDomain = useVechainDomain(activeAddress ?? "");
4018
- const activeAccountAvatar = useGetAvatarOfAddress(activeAddress ?? "");
4019
- const activeAccountTextRecords = useGetTextRecords(
4020
- activeAccountDomain?.data?.domain
4291
+ const activeAccountMetadata = useWalletMetadata(
4292
+ activeAddress ?? "",
4293
+ network.type
4021
4294
  );
4022
4295
  const connectedMetadata = useWalletMetadata(
4023
4296
  connectedWalletAddress ?? "",
@@ -4029,10 +4302,10 @@ var useWallet = () => {
4029
4302
  );
4030
4303
  const account = activeAddress ? {
4031
4304
  address: activeAddress,
4032
- domain: activeAccountDomain?.data?.domain,
4033
- image: activeAccountAvatar.data,
4034
- isLoadingMetadata: activeAccountAvatar?.isLoading || activeAccountDomain?.isLoading || activeAccountTextRecords?.isLoading,
4035
- metadata: activeAccountTextRecords?.data
4305
+ domain: activeAccountMetadata.domain,
4306
+ image: activeAccountMetadata.image,
4307
+ isLoadingMetadata: activeAccountMetadata.isLoading,
4308
+ metadata: activeAccountMetadata.records
4036
4309
  } : null;
4037
4310
  const connectedWallet = connectedWalletAddress ? {
4038
4311
  address: connectedWalletAddress,
@@ -4277,31 +4550,6 @@ var useAccountBalance = (address) => {
4277
4550
  refetchInterval: 1e4
4278
4551
  });
4279
4552
  };
4280
- var useRefreshMetadata = (domain, address) => {
4281
- const queryClient = useQueryClient();
4282
- const { network } = useVeChainKitConfig();
4283
- const refresh = async () => {
4284
- await queryClient.invalidateQueries({
4285
- queryKey: getAvatarQueryKey(domain ?? "")
4286
- });
4287
- await queryClient.refetchQueries({
4288
- queryKey: getAvatarQueryKey(domain ?? "")
4289
- });
4290
- await queryClient.invalidateQueries({
4291
- queryKey: getTextRecordsQueryKey(domain, network.type)
4292
- });
4293
- await queryClient.refetchQueries({
4294
- queryKey: getTextRecordsQueryKey(domain, network.type)
4295
- });
4296
- await queryClient.invalidateQueries({
4297
- queryKey: getAvatarOfAddressQueryKey(address)
4298
- });
4299
- await queryClient.refetchQueries({
4300
- queryKey: getAvatarOfAddressQueryKey(address)
4301
- });
4302
- };
4303
- return { refresh };
4304
- };
4305
4553
 
4306
4554
  // src/hooks/api/utility/useGetNodeUrl.ts
4307
4555
  var useGetNodeUrl = () => {
@@ -5262,7 +5510,7 @@ var AddressDisplay = ({
5262
5510
  // package.json
5263
5511
  var package_default = {
5264
5512
  name: "@vechain/vechain-kit",
5265
- version: "1.5.11",
5513
+ version: "1.5.13",
5266
5514
  private: false,
5267
5515
  homepage: "https://github.com/vechain/vechain-kit",
5268
5516
  repository: "github:vechain/vechain-kit",
@@ -5716,16 +5964,23 @@ var ScrollToTopWrapper = ({ children, ...props }) => {
5716
5964
  return /* @__PURE__ */ jsx(VStack, { ...props, children });
5717
5965
  };
5718
5966
  var AccountAvatar = ({ wallet, props }) => {
5719
- if (wallet?.isLoadingMetadata) {
5967
+ const previousImageRef = useRef(wallet?.image);
5968
+ useEffect(() => {
5969
+ if (wallet?.image && !wallet.isLoadingMetadata) {
5970
+ previousImageRef.current = wallet.image;
5971
+ }
5972
+ }, [wallet?.image, wallet?.isLoadingMetadata]);
5973
+ if (wallet?.isLoadingMetadata && !previousImageRef.current) {
5720
5974
  return /* @__PURE__ */ jsx(Spinner, { size: "sm" });
5721
5975
  }
5722
5976
  return /* @__PURE__ */ jsx(
5723
5977
  Image,
5724
5978
  {
5725
- src: props?.src || wallet?.image,
5979
+ src: props?.src || wallet?.image || previousImageRef.current,
5726
5980
  alt: props?.alt || wallet?.domain,
5727
5981
  objectFit: "cover",
5728
5982
  rounded: "full",
5983
+ fallbackSrc: getPicassoImage(wallet?.address ?? ""),
5729
5984
  ...props
5730
5985
  }
5731
5986
  );
@@ -7055,7 +7310,7 @@ var QuickActionsSection = ({ mt, setCurrentContent }) => {
7055
7310
  const hasUnreadNotifications = notifications.some((n) => !n.isRead);
7056
7311
  const showRedDot = connection.isConnectedWithPrivy && upgradeRequired || hasUnreadNotifications;
7057
7312
  return /* @__PURE__ */ jsxs(VStack, { w: "full", mt, spacing: 4, children: [
7058
- /* @__PURE__ */ jsx(Heading, { size: "xs", fontWeight: "500", w: "full", opacity: 0.5, children: t("Activities") }),
7313
+ /* @__PURE__ */ jsx(Heading, { size: "xs", fontWeight: "500", w: "full", opacity: 0.5, children: t("Tools") }),
7059
7314
  /* @__PURE__ */ jsx(Grid, { templateColumns: "repeat(3, 1fr)", gap: 2, w: "full", children: QUICK_ACTIONS.map((action) => /* @__PURE__ */ jsx(
7060
7315
  QuickActionButton,
7061
7316
  {
@@ -8342,7 +8597,7 @@ var SendTokenContent = ({
8342
8597
  mode: "onChange"
8343
8598
  });
8344
8599
  const { toAddressOrDomain } = watch();
8345
- const { domain: resolvedDomain, address: resolvedAddress } = useVechainDomain$1({ addressOrDomain: toAddressOrDomain });
8600
+ const { data: resolvedDomainData } = useVechainDomain(toAddressOrDomain);
8346
8601
  const handleSetMaxAmount = () => {
8347
8602
  if (selectedToken) {
8348
8603
  setValue("amount", selectedToken.numericBalance);
@@ -8350,7 +8605,7 @@ var SendTokenContent = ({
8350
8605
  };
8351
8606
  const onSubmit = async (data) => {
8352
8607
  if (!selectedToken) return;
8353
- const isValidReceiver = !compareAddresses(resolvedAddress ?? ZeroAddress, ZeroAddress) || isValidAddress(data.toAddressOrDomain);
8608
+ const isValidReceiver = resolvedDomainData?.isValidAddressOrDomain && (!resolvedDomainData?.domain || resolvedDomainData?.domain && resolvedDomainData?.isPrimaryDomain);
8354
8609
  if (!isValidReceiver) {
8355
8610
  setError("toAddressOrDomain", {
8356
8611
  type: "manual",
@@ -8374,8 +8629,8 @@ var SendTokenContent = ({
8374
8629
  type: "send-token-summary",
8375
8630
  props: {
8376
8631
  toAddressOrDomain: data.toAddressOrDomain,
8377
- resolvedDomain,
8378
- resolvedAddress,
8632
+ resolvedDomain: resolvedDomainData?.domain,
8633
+ resolvedAddress: resolvedDomainData?.address,
8379
8634
  amount: data.amount,
8380
8635
  selectedToken,
8381
8636
  setCurrentContent
@@ -8648,7 +8903,7 @@ var SendTokenSummaryContent = ({
8648
8903
  }) => {
8649
8904
  const { t } = useTranslation();
8650
8905
  const { account, connection, connectedWallet } = useWallet();
8651
- const { data: avatar } = useGetAvatar(resolvedDomain ?? "");
8906
+ const { data: avatar } = useGetAvatarOfAddress(resolvedAddress ?? "");
8652
8907
  const { network } = useVeChainKitConfig();
8653
8908
  const { data: upgradeRequired } = useUpgradeRequired(
8654
8909
  account?.address ?? "",
@@ -9037,9 +9292,76 @@ var DomainListItem = ({
9037
9292
  domain.name
9038
9293
  );
9039
9294
  };
9295
+ var UnsetDomainListItem = ({ onUnset }) => {
9296
+ const { darkMode: isDark } = useVeChainKitConfig();
9297
+ const { t } = useTranslation();
9298
+ return /* @__PURE__ */ jsx(
9299
+ ListItem,
9300
+ {
9301
+ p: 4,
9302
+ bg: isDark ? "#1f1f1e" : "white",
9303
+ borderRadius: "xl",
9304
+ cursor: "pointer",
9305
+ opacity: 1,
9306
+ border: `1px solid ${isDark ? "#2d2d2d" : "#eaeaea"}`,
9307
+ _hover: {
9308
+ bg: isDark ? "#252525" : "gray.50",
9309
+ borderColor: isDark ? "#3d3d3d" : "#dedede",
9310
+ color: "red.400"
9311
+ },
9312
+ onClick: onUnset,
9313
+ transition: "all 0.2s",
9314
+ role: "button",
9315
+ "aria-label": t("Unset current domain"),
9316
+ children: /* @__PURE__ */ jsxs(HStack, { spacing: 3, align: "center", children: [
9317
+ /* @__PURE__ */ jsx(
9318
+ Box,
9319
+ {
9320
+ width: "40px",
9321
+ height: "40px",
9322
+ borderRadius: "full",
9323
+ display: "flex",
9324
+ alignItems: "center",
9325
+ justifyContent: "center",
9326
+ bg: isDark ? "whiteAlpha.100" : "gray.100",
9327
+ children: /* @__PURE__ */ jsx(
9328
+ Icon,
9329
+ {
9330
+ as: IoTrashOutline,
9331
+ fontSize: "18px",
9332
+ color: isDark ? "red.300" : "red.500"
9333
+ }
9334
+ )
9335
+ }
9336
+ ),
9337
+ /* @__PURE__ */ jsxs(VStack, { align: "start", spacing: 0, flex: 1, children: [
9338
+ /* @__PURE__ */ jsx(
9339
+ Text,
9340
+ {
9341
+ color: isDark ? "whiteAlpha.900" : "gray.700",
9342
+ fontSize: "md",
9343
+ fontWeight: "500",
9344
+ children: t("Unset current domain")
9345
+ }
9346
+ ),
9347
+ /* @__PURE__ */ jsx(
9348
+ Text,
9349
+ {
9350
+ fontSize: "sm",
9351
+ color: isDark ? "whiteAlpha.600" : "blackAlpha.600",
9352
+ children: t("Remove your current domain name")
9353
+ }
9354
+ )
9355
+ ] })
9356
+ ] })
9357
+ },
9358
+ "unset-domain-list-item"
9359
+ );
9360
+ };
9040
9361
  var ExistingDomainsList = ({
9041
9362
  domains,
9042
9363
  onDomainSelect,
9364
+ onUnsetDomain,
9043
9365
  isLoading
9044
9366
  }) => {
9045
9367
  const { t } = useTranslation();
@@ -9073,15 +9395,23 @@ var ExistingDomainsList = ({
9073
9395
  ]
9074
9396
  }
9075
9397
  ),
9076
- /* @__PURE__ */ jsx(AccordionPanel, { pb: 4, pt: 2, children: /* @__PURE__ */ jsx(List, { spacing: 2, children: domains.map((domain) => /* @__PURE__ */ jsx(
9077
- DomainListItem,
9078
- {
9079
- domain,
9080
- isCurrentDomain: domain.name === account?.domain,
9081
- onSelect: onDomainSelect
9082
- },
9083
- domain.name
9084
- )) }) })
9398
+ /* @__PURE__ */ jsx(AccordionPanel, { pb: 4, pt: 2, children: /* @__PURE__ */ jsxs(List, { spacing: 2, children: [
9399
+ domains.map((domain) => /* @__PURE__ */ jsx(
9400
+ DomainListItem,
9401
+ {
9402
+ domain,
9403
+ isCurrentDomain: domain.name === account?.domain,
9404
+ onSelect: onDomainSelect
9405
+ },
9406
+ domain.name
9407
+ )),
9408
+ account?.domain && /* @__PURE__ */ jsx(
9409
+ UnsetDomainListItem,
9410
+ {
9411
+ onUnset: onUnsetDomain
9412
+ }
9413
+ )
9414
+ ] }) })
9085
9415
  ] }) }) });
9086
9416
  };
9087
9417
  var ChooseNameSearchContent = ({
@@ -9163,17 +9493,33 @@ var ChooseNameSearchContent = ({
9163
9493
  }
9164
9494
  };
9165
9495
  const handleDomainSelect = (selectedDomain) => {
9166
- const baseName = selectedDomain.split(".")[0];
9496
+ const parts3 = selectedDomain.split(".");
9497
+ const baseName = parts3[0];
9498
+ const domainType = parts3.length > 2 ? `${parts3[1]}.${parts3[2]}` : "vet";
9167
9499
  setCurrentContent({
9168
9500
  type: "choose-name-summary",
9169
9501
  props: {
9170
9502
  name: baseName,
9503
+ domainType,
9171
9504
  isOwnDomain: true,
9172
9505
  setCurrentContent,
9173
9506
  initialContentSource
9174
9507
  }
9175
9508
  });
9176
9509
  };
9510
+ const handleUnsetDomain = () => {
9511
+ setCurrentContent({
9512
+ type: "choose-name-summary",
9513
+ props: {
9514
+ name: "",
9515
+ domainType: "",
9516
+ isOwnDomain: false,
9517
+ isUnsetting: true,
9518
+ setCurrentContent,
9519
+ initialContentSource
9520
+ }
9521
+ });
9522
+ };
9177
9523
  return /* @__PURE__ */ jsxs(Fragment, { children: [
9178
9524
  /* @__PURE__ */ jsxs(StickyHeaderContainer, { children: [
9179
9525
  /* @__PURE__ */ jsx(ModalHeader, { children: t("Choose Name") }),
@@ -9191,6 +9537,7 @@ var ChooseNameSearchContent = ({
9191
9537
  {
9192
9538
  domains: allUserDomains,
9193
9539
  onDomainSelect: handleDomainSelect,
9540
+ onUnsetDomain: handleUnsetDomain,
9194
9541
  isLoading: isLoadingOwnedDomains
9195
9542
  }
9196
9543
  ),
@@ -9262,7 +9609,9 @@ var ChooseNameSearchContent = ({
9262
9609
  var ChooseNameSummaryContent = ({
9263
9610
  setCurrentContent,
9264
9611
  name,
9612
+ domainType = "veworld.vet",
9265
9613
  isOwnDomain,
9614
+ isUnsetting = false,
9266
9615
  initialContentSource = "settings"
9267
9616
  }) => {
9268
9617
  const { t } = useTranslation();
@@ -9273,34 +9622,45 @@ var ChooseNameSummaryContent = ({
9273
9622
  3
9274
9623
  );
9275
9624
  const { open: openUpgradeSmartAccountModal } = useUpgradeSmartAccountModal();
9625
+ const unsetDomainHook = useUnsetDomain({
9626
+ onSuccess: () => handleSuccess()
9627
+ });
9628
+ const isVeWorldSubdomain = domainType.endsWith("veworld.vet");
9629
+ const veWorldSubdomainHook = useClaimVeWorldSubdomain({
9630
+ subdomain: name,
9631
+ domain: domainType,
9632
+ alreadyOwned: isOwnDomain,
9633
+ onSuccess: () => handleSuccess()
9634
+ });
9635
+ const vetDomainHook = useClaimVetDomain({
9636
+ domain: name,
9637
+ alreadyOwned: isOwnDomain,
9638
+ onSuccess: () => handleSuccess()
9639
+ });
9276
9640
  const {
9277
9641
  sendTransaction,
9278
9642
  txReceipt,
9279
9643
  error: txError,
9280
9644
  isWaitingForWalletConfirmation,
9281
9645
  isTransactionPending
9282
- } = useClaimVeWorldSubdomain({
9283
- subdomain: name,
9284
- domain: "veworld.vet",
9285
- alreadyOwned: isOwnDomain,
9286
- onSuccess: () => {
9287
- setCurrentContent({
9288
- type: "successful-operation",
9289
- props: {
9290
- setCurrentContent,
9291
- txId: txReceipt?.meta.txID,
9292
- title: t("Name claimed"),
9293
- description: t(
9294
- `Your {{name}}.veworld.vet name has been claimed successfully.`,
9295
- { name }
9296
- ),
9297
- onDone: () => {
9298
- setCurrentContent(initialContentSource);
9299
- }
9646
+ } = isUnsetting ? unsetDomainHook : isVeWorldSubdomain ? veWorldSubdomainHook : vetDomainHook;
9647
+ const handleSuccess = () => {
9648
+ setCurrentContent({
9649
+ type: "successful-operation",
9650
+ props: {
9651
+ setCurrentContent,
9652
+ txId: txReceipt?.meta.txID,
9653
+ title: isUnsetting ? t("Domain unset") : t("Domain set"),
9654
+ description: isUnsetting ? t("Your domain has been unset successfully.") : t(
9655
+ `Your address has been successfully set to {{name}}.{{domainType}}.`,
9656
+ { name, domainType }
9657
+ ),
9658
+ onDone: () => {
9659
+ setCurrentContent(initialContentSource);
9300
9660
  }
9301
- });
9302
- }
9303
- });
9661
+ }
9662
+ });
9663
+ };
9304
9664
  const handleConfirm = async () => {
9305
9665
  if (upgradeRequired) {
9306
9666
  openUpgradeSmartAccountModal();
@@ -9314,7 +9674,7 @@ var ChooseNameSummaryContent = ({
9314
9674
  };
9315
9675
  return /* @__PURE__ */ jsxs(Fragment, { children: [
9316
9676
  /* @__PURE__ */ jsxs(StickyHeaderContainer, { children: [
9317
- /* @__PURE__ */ jsx(ModalHeader, { children: t("Confirm Name") }),
9677
+ /* @__PURE__ */ jsx(ModalHeader, { children: isUnsetting ? t("Confirm Unset Domain") : t("Confirm Name") }),
9318
9678
  /* @__PURE__ */ jsx(
9319
9679
  ModalBackButton,
9320
9680
  {
@@ -9332,8 +9692,12 @@ var ChooseNameSummaryContent = ({
9332
9692
  /* @__PURE__ */ jsx(ModalCloseButton, { isDisabled: isTransactionPending })
9333
9693
  ] }),
9334
9694
  /* @__PURE__ */ jsx(ModalBody, { children: /* @__PURE__ */ jsxs(VStack, { spacing: 4, w: "full", textAlign: "center", children: [
9335
- /* @__PURE__ */ jsx(Text, { fontSize: "lg", children: t("Are you sure you want to set your domain name to") }),
9336
- /* @__PURE__ */ jsx(Text, { fontSize: "xl", fontWeight: "bold", color: "blue.500", children: `${name}.veworld.vet` })
9695
+ /* @__PURE__ */ jsx(Text, { fontSize: "lg", children: isUnsetting ? t(
9696
+ "Are you sure you want to unset your current domain?"
9697
+ ) : t(
9698
+ "Are you sure you want to set your domain name to"
9699
+ ) }),
9700
+ !isUnsetting && /* @__PURE__ */ jsx(Text, { fontSize: "xl", fontWeight: "bold", color: "blue.500", children: `${name}.${domainType}` })
9337
9701
  ] }) }),
9338
9702
  /* @__PURE__ */ jsx(ModalFooter, { gap: 4, w: "full", children: /* @__PURE__ */ jsx(
9339
9703
  TransactionButtonAndStatus,
@@ -9342,7 +9706,7 @@ var ChooseNameSummaryContent = ({
9342
9706
  isSubmitting: isTransactionPending,
9343
9707
  isTxWaitingConfirmation: isWaitingForWalletConfirmation,
9344
9708
  onConfirm: handleConfirm,
9345
- transactionPendingText: t("Claiming name..."),
9709
+ transactionPendingText: isUnsetting ? t("Unsetting current domain...") : t("Claiming name..."),
9346
9710
  txReceipt,
9347
9711
  buttonText: t("Confirm"),
9348
9712
  isDisabled: isTransactionPending
@@ -9555,6 +9919,7 @@ var en_default = {
9555
9919
  "Are you sure you want to disconnect your wallet?": "Are you sure you want to disconnect your wallet?",
9556
9920
  "Are you sure you want to set your domain name to": "Are you sure you want to set your domain name to",
9557
9921
  "Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?": "Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?",
9922
+ "Are you sure you want to unset your current domain?": "Are you sure you want to unset your current domain?",
9558
9923
  Assets: "Assets",
9559
9924
  At: "At",
9560
9925
  "B3TR is the incentive token of VeBetterDAO, built on VechainThor blockchain. It has a capped supply of 1 billion tokens, emitted weekly over 12 years. B3TR is used for rewards, governance, and backing VOT3 tokens 1:1. It supports sustainability applications and DAO treasury management.": "B3TR is the incentive token of VeBetterDAO, built on VechainThor blockchain. It has a capped supply of 1 billion tokens, emitted weekly over 12 years. B3TR is used for rewards, governance, and backing VOT3 tokens 1:1. It supports sustainability applications and DAO treasury management.",
@@ -9594,6 +9959,7 @@ var en_default = {
9594
9959
  Confirm: "Confirm",
9595
9960
  "Confirm Changes": "Confirm Changes",
9596
9961
  "Confirm Name": "Confirm Name",
9962
+ "Confirm Unset Domain": "Confirm Unset Domain",
9597
9963
  "Confirm the transaction in your wallet to complete it.": "Confirm the transaction in your wallet to complete it.",
9598
9964
  "Confirm transaction": "Confirm transaction",
9599
9965
  "Connect Wallet": "Connect Wallet",
@@ -9647,6 +10013,8 @@ var en_default = {
9647
10013
  Discord: "Discord",
9648
10014
  "Display Name": "Display Name",
9649
10015
  "Display name must be less than 25 characters": "Display name must be less than 25 characters",
10016
+ "Domain set": "Domain set",
10017
+ "Domain unset": "Domain unset",
9650
10018
  Done: "Done",
9651
10019
  Ecosystem: "Ecosystem",
9652
10020
  "Ecosystem Login": "Ecosystem Login",
@@ -9804,6 +10172,7 @@ var en_default = {
9804
10172
  Remove: "Remove",
9805
10173
  "Remove Login Method": "Remove Login Method",
9806
10174
  "Remove from shortcuts": "Remove from shortcuts",
10175
+ "Remove your current domain name": "Remove your current domain name",
9807
10176
  "Resend code": "Resend code",
9808
10177
  Retry: "Retry",
9809
10178
  "Safari blocked the login window. Please try again, it should work now.": "Safari blocked the login window. Please try again, it should work now.",
@@ -9883,6 +10252,7 @@ var en_default = {
9883
10252
  "Token Contract Address": "Token Contract Address",
9884
10253
  "Token already added": "Token already added",
9885
10254
  "Tokens transferred successfully.": "Tokens transferred successfully.",
10255
+ Tools: "Tools",
9886
10256
  "Total balance": "Total balance",
9887
10257
  "Transaction completed!": "Transaction completed!",
9888
10258
  "Transaction failed": "Transaction failed",
@@ -9902,6 +10272,11 @@ var en_default = {
9902
10272
  "Unknown error": "Unknown error",
9903
10273
  "Unknown status": "Unknown status",
9904
10274
  "Unlink Login Method": "Unlink Login Method",
10275
+ "Unset current domain": "Unset current domain",
10276
+ "Unsetting current domain": "Unsetting current domain",
10277
+ "Unsetting current domain...": "Unsetting current domain...",
10278
+ "Unsetting your current VeChain nickname": "Unsetting your current VeChain nickname",
10279
+ "Unsetting your current domain": "Unsetting your current domain",
9905
10280
  "Update profile image": "Update profile image",
9906
10281
  "Upgrade Now": "Upgrade Now",
9907
10282
  "Upgrade Smart Account to V3": "Upgrade Smart Account to V3",
@@ -9969,8 +10344,10 @@ var en_default = {
9969
10344
  "You own a Smart Account and it has priority over your wallet.": "You own a Smart Account and it has priority over your wallet.",
9970
10345
  "Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.": "Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.",
9971
10346
  "Your accounts": "Your accounts",
10347
+ "Your address has been successfully set to {{name}}.{{domainType}}.": "Your address has been successfully set to {{name}}.{{domainType}}.",
9972
10348
  "Your changes have been saved successfully.": "Your changes have been saved successfully.",
9973
10349
  "Your customizations are linked to your .vet domain name, making them portable across different applications.": "Your customizations are linked to your .vet domain name, making them portable across different applications.",
10350
+ "Your domain has been unset successfully.": "Your domain has been unset successfully.",
9974
10351
  "Your embedded wallet": "Your embedded wallet",
9975
10352
  "Your existing domains": "Your existing domains",
9976
10353
  "Your mobile browser blocked the login window.": "Your mobile browser blocked the login window.",
@@ -9987,6 +10364,7 @@ var en_default = {
9987
10364
  "Your wallet is secured by a private key. The private key is a unique code that allows you to access your wallet. It is stored in your browser and is used to sign transactions. The private key is never shared with anyone, including the VeChain Foundation.": "Your wallet is secured by a private key. The private key is a unique code that allows you to access your wallet. It is stored in your browser and is used to sign transactions. The private key is never shared with anyone, including the VeChain Foundation.",
9988
10365
  "Your wallet security depends on how you access it. With self-custody options like the VeWorld extension, mobile app, or hardware wallet, you have complete control over your private keys. This extension itself has no access to your private keys. When logging in with social accounts or VeChain, your wallet is created and secured by Privy and managed by VeChain, providing an easier onboarding experience while maintaining security.": "Your wallet security depends on how you access it. With self-custody options like the VeWorld extension, mobile app, or hardware wallet, you have complete control over your private keys. This extension itself has no access to your private keys. When logging in with social accounts or VeChain, your wallet is created and secured by Privy and managed by VeChain, providing an easier onboarding experience while maintaining security.",
9989
10366
  "Your {{name}}.veworld.vet name has been claimed successfully.": "Your {{name}}.veworld.vet name has been claimed successfully.",
10367
+ "Your {{name}}.{{domainType}} name has been claimed successfully.": "Your {{name}}.{{domainType}} name has been claimed successfully.",
9990
10368
  here: "here",
9991
10369
  of: "of",
9992
10370
  on: "on",
@@ -10043,6 +10421,7 @@ var de_default = {
10043
10421
  "Are you sure you want to disconnect your wallet?": "Sind Sie sicher, dass Sie Ihr Wallet trennen m\xF6chten?",
10044
10422
  "Are you sure you want to set your domain name to": "Sind Sie sicher, dass Sie Ihren Domainnamen auf",
10045
10423
  "Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?": "Sind Sie sicher, dass Sie {{accountType}} als Anmeldemethode, die mit {{accountDescription}} verkn\xFCpft ist, trennen m\xF6chten?",
10424
+ "Are you sure you want to unset your current domain?": "Sind Sie sicher, dass Sie Ihre aktuelle Domain aufheben m\xF6chten?",
10046
10425
  Assets: "Verm\xF6genswerte",
10047
10426
  At: "Am",
10048
10427
  "B3TR is the incentive token of VeBetterDAO, built on VechainThor blockchain. It has a capped supply of 1 billion tokens, emitted weekly over 12 years. B3TR is used for rewards, governance, and backing VOT3 tokens 1:1. It supports sustainability applications and DAO treasury management.": "B3TR ist der Anreiz-Token von VeBetterDAO, aufgebaut auf der VechainThor-Blockchain. Es gibt eine Obergrenze von 1 Milliarde Tokens, die w\xF6chentlich \xFCber 12 Jahre hinweg ausgegeben werden. B3TR wird f\xFCr Belohnungen, Governance und die Unterst\xFCtzung von VOT3-Token im Verh\xE4ltnis 1:1 verwendet. Es unterst\xFCtzt Nachhaltigkeitsanwendungen und das Verwaltung der DAO-Kasse.",
@@ -10082,6 +10461,7 @@ var de_default = {
10082
10461
  Confirm: "Best\xE4tigen",
10083
10462
  "Confirm Changes": "\xC4nderungen best\xE4tigen",
10084
10463
  "Confirm Name": "Name best\xE4tigen",
10464
+ "Confirm Unset Domain": "L\xF6schung der Domain best\xE4tigen",
10085
10465
  "Confirm the transaction in your wallet to complete it.": "Best\xE4tigen Sie die Transaktion in Ihrer Wallet, um sie abzuschlie\xDFen.",
10086
10466
  "Confirm transaction": "Transaktion best\xE4tigen",
10087
10467
  "Connect Wallet": "Wallet verbinden",
@@ -10135,6 +10515,8 @@ var de_default = {
10135
10515
  Discord: "Discord",
10136
10516
  "Display Name": "Anzeigename",
10137
10517
  "Display name must be less than 25 characters": "Der Anzeigename muss weniger als 25 Zeichen umfassen",
10518
+ "Domain set": "Domain eingerichtet",
10519
+ "Domain unset": "Domain aufgehoben",
10138
10520
  Done: "Fertig",
10139
10521
  Ecosystem: "\xD6kosystem",
10140
10522
  "Ecosystem Login": "\xD6kosystem-Anmeldung",
@@ -10292,6 +10674,7 @@ var de_default = {
10292
10674
  Remove: "Entfernen",
10293
10675
  "Remove Login Method": "Anmeldemethode entfernen",
10294
10676
  "Remove from shortcuts": "Aus den Verkn\xFCpfungen entfernen",
10677
+ "Remove your current domain name": "Entfernen Sie Ihren aktuellen Domainnamen",
10295
10678
  "Resend code": "Code erneut senden",
10296
10679
  Retry: "Erneut versuchen",
10297
10680
  "Safari blocked the login window. Please try again, it should work now.": "Safari hat das Anmeldefenster blockiert. Bitte versuchen Sie es erneut, jetzt sollte es funktionieren.",
@@ -10371,6 +10754,7 @@ var de_default = {
10371
10754
  "Token Contract Address": "Token-Vertragsadresse",
10372
10755
  "Token already added": "Token bereits hinzugef\xFCgt",
10373
10756
  "Tokens transferred successfully.": "Tokens erfolgreich \xFCbertragen.",
10757
+ Tools: "Werkzeuge",
10374
10758
  "Total balance": "Gesamtguthaben",
10375
10759
  "Transaction completed!": "Transaktion abgeschlossen!",
10376
10760
  "Transaction failed": "Transaktion fehlgeschlagen",
@@ -10390,6 +10774,11 @@ var de_default = {
10390
10774
  "Unknown error": "Unbekannter Fehler",
10391
10775
  "Unknown status": "Unbekannter Status",
10392
10776
  "Unlink Login Method": "Anmeldemethode entfernen",
10777
+ "Unset current domain": "Aktuelle Domain aufheben",
10778
+ "Unsetting current domain": "Aufheben der aktuellen Domain",
10779
+ "Unsetting current domain...": "Aktuelle Domain wird aufgehoben...",
10780
+ "Unsetting your current VeChain nickname": "Aufheben Ihres aktuellen VeChain-Spitznamens",
10781
+ "Unsetting your current domain": "Aufheben Ihrer aktuellen Domain",
10393
10782
  "Update profile image": "Profilbild aktualisieren",
10394
10783
  "Upgrade Now": "Jetzt upgraden",
10395
10784
  "Upgrade Smart Account to V3": "Smart Account auf V3 upgraden",
@@ -10457,8 +10846,10 @@ var de_default = {
10457
10846
  "You own a Smart Account and it has priority over your wallet.": "Sie besitzen einen Smart Account und dieser hat Vorrang vor Ihrer Wallet.",
10458
10847
  "Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.": "Ihr Konto wurde erfolgreich auf die neueste Version aktualisiert. Sie k\xF6nnen nun eine bessere Benutzererfahrung, niedrigere Gaskosten und erh\xF6hte Sicherheit genie\xDFen.",
10459
10848
  "Your accounts": "Ihre Konten",
10849
+ "Your address has been successfully set to {{name}}.{{domainType}}.": "Ihre Adresse wurde erfolgreich auf {{name}}.{{domainType}} gesetzt.",
10460
10850
  "Your changes have been saved successfully.": "Ihre \xC4nderungen wurden erfolgreich gespeichert.",
10461
10851
  "Your customizations are linked to your .vet domain name, making them portable across different applications.": "Ihre Anpassungen sind mit Ihrem .vet-Domainnamen verkn\xFCpft, wodurch sie in verschiedenen Anwendungen tragbar sind.",
10852
+ "Your domain has been unset successfully.": "Ihre Domain wurde erfolgreich aufgehoben.",
10462
10853
  "Your embedded wallet": "Ihr eingebettetes Portemonnaie",
10463
10854
  "Your existing domains": "Ihre vorhandenen Domains",
10464
10855
  "Your mobile browser blocked the login window.": "Ihr mobiler Browser hat das Anmeldefenster blockiert.",
@@ -10475,6 +10866,7 @@ var de_default = {
10475
10866
  "Your wallet is secured by a private key. The private key is a unique code that allows you to access your wallet. It is stored in your browser and is used to sign transactions. The private key is never shared with anyone, including the VeChain Foundation.": "Ihr Wallet ist durch einen privaten Schl\xFCssel gesichert. Der private Schl\xFCssel ist ein einzigartiger Code, der es Ihnen erm\xF6glicht, auf Ihr Wallet zuzugreifen. Er wird in Ihrem Browser gespeichert und wird verwendet, um Transaktionen zu signieren. Der private Schl\xFCssel wird niemals mit jemandem geteilt, einschlie\xDFlich der VeChain Foundation.",
10476
10867
  "Your wallet security depends on how you access it. With self-custody options like the VeWorld extension, mobile app, or hardware wallet, you have complete control over your private keys. This extension itself has no access to your private keys. When logging in with social accounts or VeChain, your wallet is created and secured by Privy and managed by VeChain, providing an easier onboarding experience while maintaining security.": "Die Sicherheit Ihres Wallets h\xE4ngt davon ab, wie Sie darauf zugreifen. Mit Selbstverwaltungsoptionen wie der VeWorld-Erweiterung, der mobilen App oder einer Hardware-Wallet haben Sie die vollst\xE4ndige Kontrolle \xFCber Ihre privaten Schl\xFCssel. Diese Erweiterung selbst hat keinen Zugriff auf Ihre privaten Schl\xFCssel. Beim Einloggen mit sozialen Konten oder VeChain wird Ihr Wallet von Privy erstellt und gesichert und von VeChain verwaltet, was ein einfacheres Onboarding-Erlebnis bietet und gleichzeitig die Sicherheit gew\xE4hrleistet.",
10477
10868
  "Your {{name}}.veworld.vet name has been claimed successfully.": "Ihr {{name}}.veworld.vet-Name wurde erfolgreich beansprucht.",
10869
+ "Your {{name}}.{{domainType}} name has been claimed successfully.": "Ihr {{name}}.{{domainType}}-Name wurde erfolgreich beansprucht.",
10478
10870
  here: "hier",
10479
10871
  of: "von",
10480
10872
  on: "am",
@@ -10531,6 +10923,7 @@ var it_default = {
10531
10923
  "Are you sure you want to disconnect your wallet?": "Sei sicuro di voler disconnettere il tuo portafoglio?",
10532
10924
  "Are you sure you want to set your domain name to": "Sei sicuro di voler impostare il tuo nome di dominio su",
10533
10925
  "Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?": "Sei sicuro di voler scollegare {{accountType}} come metodo di accesso collegato a {{accountDescription}}?",
10926
+ "Are you sure you want to unset your current domain?": "Sei sicuro di voler rimuovere il tuo attuale dominio?",
10534
10927
  Assets: "Risorse",
10535
10928
  At: "Alle",
10536
10929
  "B3TR is the incentive token of VeBetterDAO, built on VechainThor blockchain. It has a capped supply of 1 billion tokens, emitted weekly over 12 years. B3TR is used for rewards, governance, and backing VOT3 tokens 1:1. It supports sustainability applications and DAO treasury management.": "B3TR \xE8 il token incentivo di VeBetterDAO, creato sulla blockchain VechainThor. Ha una fornitura massima di 1 miliardo di token, emessi settimanalmente per 12 anni. B3TR viene utilizzato per ricompense, governance e supporto dei token VOT3 1:1. Supporta applicazioni di sostenibilit\xE0 e gestione del tesoro del DAO.",
@@ -10570,6 +10963,7 @@ var it_default = {
10570
10963
  Confirm: "Conferma",
10571
10964
  "Confirm Changes": "Conferma Modifiche",
10572
10965
  "Confirm Name": "Conferma Nome",
10966
+ "Confirm Unset Domain": "Conferma Rimozione Dominio",
10573
10967
  "Confirm the transaction in your wallet to complete it.": "Conferma la transazione nel tuo portafoglio per completarla.",
10574
10968
  "Confirm transaction": "Conferma transazione",
10575
10969
  "Connect Wallet": "Collega Portafoglio",
@@ -10623,6 +11017,8 @@ var it_default = {
10623
11017
  Discord: "Discord",
10624
11018
  "Display Name": "Nome da visualizzare",
10625
11019
  "Display name must be less than 25 characters": "Il nome da visualizzare deve contenere meno di 25 caratteri",
11020
+ "Domain set": "Dominio impostato",
11021
+ "Domain unset": "Dominio rimosso",
10626
11022
  Done: "Fatto",
10627
11023
  Ecosystem: "Ecosistema",
10628
11024
  "Ecosystem Login": "Accesso Ecosistema",
@@ -10780,6 +11176,7 @@ var it_default = {
10780
11176
  Remove: "Rimuovi",
10781
11177
  "Remove Login Method": "Rimuovi metodo di accesso",
10782
11178
  "Remove from shortcuts": "Rimuovi dai collegamenti",
11179
+ "Remove your current domain name": "Rimuovi il tuo attuale nome di dominio",
10783
11180
  "Resend code": "Reinvia codice",
10784
11181
  Retry: "Riprova",
10785
11182
  "Safari blocked the login window. Please try again, it should work now.": "Safari ha bloccato la finestra di accesso. Si prega di riprovare, dovrebbe funzionare ora.",
@@ -10859,6 +11256,7 @@ var it_default = {
10859
11256
  "Token Contract Address": "Indirizzo del Contratto del Token",
10860
11257
  "Token already added": "Token gi\xE0 aggiunto",
10861
11258
  "Tokens transferred successfully.": "Token trasferiti con successo.",
11259
+ Tools: "Strumenti",
10862
11260
  "Total balance": "Saldo totale",
10863
11261
  "Transaction completed!": "Transazione completata!",
10864
11262
  "Transaction failed": "Transazione fallita",
@@ -10878,6 +11276,11 @@ var it_default = {
10878
11276
  "Unknown error": "Errore sconosciuto",
10879
11277
  "Unknown status": "Stato sconosciuto",
10880
11278
  "Unlink Login Method": "Scollega metodo di accesso",
11279
+ "Unset current domain": "Rimuovi dominio attuale",
11280
+ "Unsetting current domain": "Rimozione del dominio attuale",
11281
+ "Unsetting current domain...": "Rimozione del dominio attuale in corso...",
11282
+ "Unsetting your current VeChain nickname": "Rimozione del tuo attuale soprannome VeChain",
11283
+ "Unsetting your current domain": "Rimozione del tuo attuale dominio",
10881
11284
  "Update profile image": "Aggiorna immagine del profilo",
10882
11285
  "Upgrade Now": "Aggiorna Ora",
10883
11286
  "Upgrade Smart Account to V3": "Aggiorna Conto Smart a V3",
@@ -10945,8 +11348,10 @@ var it_default = {
10945
11348
  "You own a Smart Account and it has priority over your wallet.": "Possiedi un Account Smart e ha priorit\xE0 sul tuo portafoglio.",
10946
11349
  "Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.": "Il tuo account \xE8 stato aggiornato con successo all'ultima versione. Ora puoi godere di un'esperienza utente migliorata, costi del gas ridotti e maggiore sicurezza.",
10947
11350
  "Your accounts": "I tuoi account",
11351
+ "Your address has been successfully set to {{name}}.{{domainType}}.": "Il tuo indirizzo \xE8 stato impostato correttamente su {{name}}.{{domainType}}.",
10948
11352
  "Your changes have been saved successfully.": "Le tue modifiche sono state salvate con successo.",
10949
11353
  "Your customizations are linked to your .vet domain name, making them portable across different applications.": "Le tue personalizzazioni sono collegate al tuo nome di dominio .vet, rendendole portabili tra diverse applicazioni.",
11354
+ "Your domain has been unset successfully.": "Il tuo dominio \xE8 stato rimosso con successo.",
10950
11355
  "Your embedded wallet": "Il tuo portafoglio integrato",
10951
11356
  "Your existing domains": "I tuoi domini esistenti",
10952
11357
  "Your mobile browser blocked the login window.": "Il tuo browser mobile ha bloccato la finestra di accesso.",
@@ -10963,6 +11368,7 @@ var it_default = {
10963
11368
  "Your wallet is secured by a private key. The private key is a unique code that allows you to access your wallet. It is stored in your browser and is used to sign transactions. The private key is never shared with anyone, including the VeChain Foundation.": "Il tuo portafoglio \xE8 protetto da una chiave privata. La chiave privata \xE8 un codice unico che ti consente di accedere al tuo portafoglio. \xC8 memorizzata nel tuo browser e viene utilizzata per firmare le transazioni. La chiave privata non viene mai condivisa con nessuno, inclusa la Fondazione VeChain.",
10964
11369
  "Your wallet security depends on how you access it. With self-custody options like the VeWorld extension, mobile app, or hardware wallet, you have complete control over your private keys. This extension itself has no access to your private keys. When logging in with social accounts or VeChain, your wallet is created and secured by Privy and managed by VeChain, providing an easier onboarding experience while maintaining security.": "La sicurezza del tuo portafoglio dipende da come vi accedi. Con opzioni di autocustodia come l'estensione VeWorld, l'app mobile o il portafoglio hardware, hai il controllo completo sulle tue chiavi private. Questa estensione stessa non ha accesso alle tue chiavi private. Quando accedi con i social account o VeChain, il tuo portafoglio viene creato e protetto da Privy e gestito da VeChain, offrendo un'esperienza di onboarding pi\xF9 semplice mantenendo la sicurezza.",
10965
11370
  "Your {{name}}.veworld.vet name has been claimed successfully.": "Il tuo nome {{name}}.veworld.vet \xE8 stato rivendicato con successo.",
11371
+ "Your {{name}}.{{domainType}} name has been claimed successfully.": "Il tuo nome {{name}}.{{domainType}} \xE8 stato rivendicato con successo.",
10966
11372
  here: "qui",
10967
11373
  of: "di",
10968
11374
  on: "su",
@@ -11019,6 +11425,7 @@ var fr_default = {
11019
11425
  "Are you sure you want to disconnect your wallet?": "\xCAtes-vous s\xFBr de vouloir d\xE9connecter votre portefeuille ?",
11020
11426
  "Are you sure you want to set your domain name to": "\xCAtes-vous s\xFBr de vouloir d\xE9finir votre nom de domaine sur",
11021
11427
  "Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?": "\xCAtes-vous s\xFBr de vouloir dissocier {{accountType}} en tant que m\xE9thode de connexion li\xE9e \xE0 {{accountDescription}} ?",
11428
+ "Are you sure you want to unset your current domain?": "\xCAtes-vous s\xFBr de vouloir d\xE9s\xE9lectionner votre domaine actuel ?",
11022
11429
  Assets: "Actifs",
11023
11430
  At: "\xC0",
11024
11431
  "B3TR is the incentive token of VeBetterDAO, built on VechainThor blockchain. It has a capped supply of 1 billion tokens, emitted weekly over 12 years. B3TR is used for rewards, governance, and backing VOT3 tokens 1:1. It supports sustainability applications and DAO treasury management.": "B3TR est le token incitatif de VeBetterDAO, construit sur la blockchain VechainThor. Il a un approvisionnement limit\xE9 \xE0 1 milliard de tokens, \xE9mis de fa\xE7on hebdomadaire sur 12 ans. B3TR est utilis\xE9 pour les r\xE9compenses, la gouvernance et pour soutenir les tokens VOT3 \xE0 un taux de 1:1. Il soutient les applications de durabilit\xE9 et la gestion de la tr\xE9sorerie DAO.",
@@ -11058,6 +11465,7 @@ var fr_default = {
11058
11465
  Confirm: "Confirmer",
11059
11466
  "Confirm Changes": "Confirmer les modifications",
11060
11467
  "Confirm Name": "Confirmer le nom",
11468
+ "Confirm Unset Domain": "Confirmer la d\xE9s\xE9lection du domaine",
11061
11469
  "Confirm the transaction in your wallet to complete it.": "Confirmez la transaction dans votre portefeuille pour la terminer.",
11062
11470
  "Confirm transaction": "Confirmer la transaction",
11063
11471
  "Connect Wallet": "Connecter le portefeuille",
@@ -11111,6 +11519,8 @@ var fr_default = {
11111
11519
  Discord: "Discord",
11112
11520
  "Display Name": "Nom affich\xE9",
11113
11521
  "Display name must be less than 25 characters": "Le nom affich\xE9 doit comporter moins de 25 caract\xE8res",
11522
+ "Domain set": "Domaine d\xE9fini",
11523
+ "Domain unset": "Domaine d\xE9s\xE9lectionn\xE9",
11114
11524
  Done: "Fait",
11115
11525
  Ecosystem: "\xC9cosyst\xE8me",
11116
11526
  "Ecosystem Login": "Connexion \xE0 l'\xE9cosyst\xE8me",
@@ -11268,6 +11678,7 @@ var fr_default = {
11268
11678
  Remove: "Supprimer",
11269
11679
  "Remove Login Method": "Supprimer la m\xE9thode de connexion",
11270
11680
  "Remove from shortcuts": "Retirer des raccourcis",
11681
+ "Remove your current domain name": "Supprimer votre nom de domaine actuel",
11271
11682
  "Resend code": "Renvoyer le code",
11272
11683
  Retry: "R\xE9essayer",
11273
11684
  "Safari blocked the login window. Please try again, it should work now.": "Safari a bloqu\xE9 la fen\xEAtre de connexion. Veuillez r\xE9essayer, cela devrait fonctionner maintenant.",
@@ -11347,6 +11758,7 @@ var fr_default = {
11347
11758
  "Token Contract Address": "Adresse du contrat du jeton",
11348
11759
  "Token already added": "Jeton d\xE9j\xE0 ajout\xE9",
11349
11760
  "Tokens transferred successfully.": "Jetons transf\xE9r\xE9s avec succ\xE8s.",
11761
+ Tools: "Outils",
11350
11762
  "Total balance": "Solde total",
11351
11763
  "Transaction completed!": "Transaction termin\xE9e !",
11352
11764
  "Transaction failed": "La transaction a \xE9chou\xE9",
@@ -11366,6 +11778,11 @@ var fr_default = {
11366
11778
  "Unknown error": "Erreur inconnue",
11367
11779
  "Unknown status": "Statut inconnu",
11368
11780
  "Unlink Login Method": "Dissocier la m\xE9thode de connexion",
11781
+ "Unset current domain": "D\xE9s\xE9lectionner le domaine actuel",
11782
+ "Unsetting current domain": "D\xE9s\xE9lection du domaine actuel",
11783
+ "Unsetting current domain...": "D\xE9s\xE9lection du domaine actuel...",
11784
+ "Unsetting your current VeChain nickname": "D\xE9s\xE9lection de votre surnom VeChain actuel",
11785
+ "Unsetting your current domain": "D\xE9s\xE9lection de votre domaine actuel",
11369
11786
  "Update profile image": "Mettre \xE0 jour l'image de profil",
11370
11787
  "Upgrade Now": "Mettre \xE0 niveau maintenant",
11371
11788
  "Upgrade Smart Account to V3": "Mettre \xE0 niveau le compte intelligent vers V3",
@@ -11433,8 +11850,10 @@ var fr_default = {
11433
11850
  "You own a Smart Account and it has priority over your wallet.": "Vous poss\xE9dez un Smart Account et il a la priorit\xE9 sur votre portefeuille.",
11434
11851
  "Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.": "Votre compte a \xE9t\xE9 mis \xE0 niveau avec succ\xE8s vers la derni\xE8re version. Vous pouvez d\xE9sormais profiter d'une meilleure exp\xE9rience utilisateur, de co\xFBts de gaz r\xE9duits et d'une s\xE9curit\xE9 renforc\xE9e.",
11435
11852
  "Your accounts": "Vos comptes",
11853
+ "Your address has been successfully set to {{name}}.{{domainType}}.": "Votre adresse a \xE9t\xE9 d\xE9finie avec succ\xE8s sur {{name}}.{{domainType}}.",
11436
11854
  "Your changes have been saved successfully.": "Vos modifications ont \xE9t\xE9 enregistr\xE9es avec succ\xE8s.",
11437
11855
  "Your customizations are linked to your .vet domain name, making them portable across different applications.": "Vos personnalisations sont li\xE9es \xE0 votre nom de domaine .vet, ce qui les rend portables \xE0 travers diff\xE9rentes applications.",
11856
+ "Your domain has been unset successfully.": "Votre domaine a \xE9t\xE9 d\xE9s\xE9lectionn\xE9 avec succ\xE8s.",
11438
11857
  "Your embedded wallet": "Votre portefeuille int\xE9gr\xE9",
11439
11858
  "Your existing domains": "Vos domaines existants",
11440
11859
  "Your mobile browser blocked the login window.": "Votre navigateur mobile a bloqu\xE9 la fen\xEAtre de connexion.",
@@ -11451,6 +11870,7 @@ var fr_default = {
11451
11870
  "Your wallet is secured by a private key. The private key is a unique code that allows you to access your wallet. It is stored in your browser and is used to sign transactions. The private key is never shared with anyone, including the VeChain Foundation.": "Votre portefeuille est s\xE9curis\xE9 par une cl\xE9 priv\xE9e. La cl\xE9 priv\xE9e est un code unique qui vous permet d'acc\xE9der \xE0 votre portefeuille. Elle est stock\xE9e dans votre navigateur et est utilis\xE9e pour signer des transactions. La cl\xE9 priv\xE9e n'est jamais partag\xE9e avec qui que ce soit, y compris la Fondation VeChain.",
11452
11871
  "Your wallet security depends on how you access it. With self-custody options like the VeWorld extension, mobile app, or hardware wallet, you have complete control over your private keys. This extension itself has no access to your private keys. When logging in with social accounts or VeChain, your wallet is created and secured by Privy and managed by VeChain, providing an easier onboarding experience while maintaining security.": "La s\xE9curit\xE9 de votre portefeuille d\xE9pend de la fa\xE7on dont vous y acc\xE9dez. Avec des options d'auto-gardiennage comme l'extension VeWorld, l'application mobile ou le portefeuille mat\xE9riel, vous avez un contr\xF4le complet sur vos cl\xE9s priv\xE9es. Cette extension en elle-m\xEAme n'a pas acc\xE8s \xE0 vos cl\xE9s priv\xE9es. Lors de la connexion avec des comptes sociaux ou VeChain, votre portefeuille est cr\xE9\xE9 et s\xE9curis\xE9 par Privy et g\xE9r\xE9 par VeChain, offrant une exp\xE9rience d'int\xE9gration plus facile tout en maintenant la s\xE9curit\xE9.",
11453
11872
  "Your {{name}}.veworld.vet name has been claimed successfully.": "Votre nom {{name}}.veworld.vet a \xE9t\xE9 revendiqu\xE9 avec succ\xE8s.",
11873
+ "Your {{name}}.{{domainType}} name has been claimed successfully.": "Votre nom {{name}}.{{domainType}} a \xE9t\xE9 revendiqu\xE9 avec succ\xE8s.",
11454
11874
  here: "ici",
11455
11875
  of: "de",
11456
11876
  on: "le",
@@ -11507,6 +11927,7 @@ var es_default = {
11507
11927
  "Are you sure you want to disconnect your wallet?": "\xBFEst\xE1s seguro de que quieres desconectar tu billetera?",
11508
11928
  "Are you sure you want to set your domain name to": "\xBFEst\xE1s seguro de que quieres establecer tu nombre de dominio en",
11509
11929
  "Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?": "\xBFEst\xE1 seguro de que desea desvincular {{accountType}} como m\xE9todo de inicio de sesi\xF3n vinculado a {{accountDescription}}?",
11930
+ "Are you sure you want to unset your current domain?": "\xBFEst\xE1 seguro de que desea desactivar su dominio actual?",
11510
11931
  Assets: "Activos",
11511
11932
  At: "En",
11512
11933
  "B3TR is the incentive token of VeBetterDAO, built on VechainThor blockchain. It has a capped supply of 1 billion tokens, emitted weekly over 12 years. B3TR is used for rewards, governance, and backing VOT3 tokens 1:1. It supports sustainability applications and DAO treasury management.": "B3TR es el token de incentivo de VeBetterDAO, construido sobre la blockchain VechainThor. Tiene un suministro limitado de 1 mil millones de tokens, emitidos semanalmente durante 12 a\xF1os. B3TR se utiliza para recompensas, gobernanza y respaldar tokens VOT3 en una proporci\xF3n de 1:1. Apoya aplicaciones sostenibles y la gesti\xF3n del tesoro del DAO.",
@@ -11546,6 +11967,7 @@ var es_default = {
11546
11967
  Confirm: "Confirmar",
11547
11968
  "Confirm Changes": "Confirmar cambios",
11548
11969
  "Confirm Name": "Confirmar Nombre",
11970
+ "Confirm Unset Domain": "Confirmar desactivaci\xF3n de dominio",
11549
11971
  "Confirm the transaction in your wallet to complete it.": "Confirme la transacci\xF3n en su monedero para completarla.",
11550
11972
  "Confirm transaction": "Confirmar transacci\xF3n",
11551
11973
  "Connect Wallet": "Conectar Monedero",
@@ -11599,6 +12021,8 @@ var es_default = {
11599
12021
  Discord: "Discord",
11600
12022
  "Display Name": "Nombre para mostrar",
11601
12023
  "Display name must be less than 25 characters": "El nombre para mostrar debe tener menos de 25 caracteres",
12024
+ "Domain set": "Dominio configurado",
12025
+ "Domain unset": "Dominio desactivado",
11602
12026
  Done: "Hecho",
11603
12027
  Ecosystem: "Ecosistema",
11604
12028
  "Ecosystem Login": "Inicio de sesi\xF3n en el ecosistema",
@@ -11756,6 +12180,7 @@ var es_default = {
11756
12180
  Remove: "Eliminar",
11757
12181
  "Remove Login Method": "Eliminar m\xE9todo de inicio de sesi\xF3n",
11758
12182
  "Remove from shortcuts": "Eliminar de los accesos directos",
12183
+ "Remove your current domain name": "Eliminar su nombre de dominio actual",
11759
12184
  "Resend code": "Reenviar c\xF3digo",
11760
12185
  Retry: "Reintentar",
11761
12186
  "Safari blocked the login window. Please try again, it should work now.": "Safari bloque\xF3 la ventana de inicio de sesi\xF3n. Por favor, int\xE9ntelo de nuevo, deber\xEDa funcionar ahora.",
@@ -11835,6 +12260,7 @@ var es_default = {
11835
12260
  "Token Contract Address": "Direcci\xF3n del contrato del token",
11836
12261
  "Token already added": "Token ya agregado",
11837
12262
  "Tokens transferred successfully.": "Tokens transferidos exitosamente.",
12263
+ Tools: "Herramientas",
11838
12264
  "Total balance": "Saldo total",
11839
12265
  "Transaction completed!": "\xA1Transacci\xF3n completada!",
11840
12266
  "Transaction failed": "Transacci\xF3n fallida",
@@ -11854,6 +12280,11 @@ var es_default = {
11854
12280
  "Unknown error": "Error desconocido",
11855
12281
  "Unknown status": "Estado desconocido",
11856
12282
  "Unlink Login Method": "Desvincular m\xE9todo de inicio de sesi\xF3n",
12283
+ "Unset current domain": "Desactivar dominio actual",
12284
+ "Unsetting current domain": "Desactivando dominio actual",
12285
+ "Unsetting current domain...": "Desactivando dominio actual...",
12286
+ "Unsetting your current VeChain nickname": "Desactivando su apodo de VeChain actual",
12287
+ "Unsetting your current domain": "Desactivando su dominio actual",
11857
12288
  "Update profile image": "Actualizar imagen de perfil",
11858
12289
  "Upgrade Now": "Actualizar ahora",
11859
12290
  "Upgrade Smart Account to V3": "Actualizar cuenta inteligente a V3",
@@ -11921,8 +12352,10 @@ var es_default = {
11921
12352
  "You own a Smart Account and it has priority over your wallet.": "Posees una Smart Account y tiene prioridad sobre tu billetera.",
11922
12353
  "Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.": "Su cuenta ha sido actualizada exitosamente a la \xFAltima versi\xF3n. Ahora puede disfrutar de una mejor experiencia de usuario, menores costos de gas y mayor seguridad.",
11923
12354
  "Your accounts": "Tus cuentas",
12355
+ "Your address has been successfully set to {{name}}.{{domainType}}.": "Su direcci\xF3n ha sido configurada exitosamente a {{name}}.{{domainType}}.",
11924
12356
  "Your changes have been saved successfully.": "Tus cambios han sido guardados exitosamente.",
11925
12357
  "Your customizations are linked to your .vet domain name, making them portable across different applications.": "Tus personalizaciones est\xE1n vinculadas a tu nombre de dominio .vet, lo que las hace port\xE1tiles a trav\xE9s de diferentes aplicaciones.",
12358
+ "Your domain has been unset successfully.": "Su dominio ha sido desactivado exitosamente.",
11926
12359
  "Your embedded wallet": "Su billetera integrada",
11927
12360
  "Your existing domains": "Tus dominios existentes",
11928
12361
  "Your mobile browser blocked the login window.": "Tu navegador m\xF3vil bloque\xF3 la ventana de inicio de sesi\xF3n.",
@@ -11939,6 +12372,7 @@ var es_default = {
11939
12372
  "Your wallet is secured by a private key. The private key is a unique code that allows you to access your wallet. It is stored in your browser and is used to sign transactions. The private key is never shared with anyone, including the VeChain Foundation.": "Tu billetera est\xE1 protegida por una clave privada. La clave privada es un c\xF3digo \xFAnico que te permite acceder a tu billetera. Se almacena en tu navegador y se utiliza para firmar transacciones. La clave privada nunca se comparte con nadie, incluida la Fundaci\xF3n VeChain.",
11940
12373
  "Your wallet security depends on how you access it. With self-custody options like the VeWorld extension, mobile app, or hardware wallet, you have complete control over your private keys. This extension itself has no access to your private keys. When logging in with social accounts or VeChain, your wallet is created and secured by Privy and managed by VeChain, providing an easier onboarding experience while maintaining security.": "La seguridad de tu billetera depende de c\xF3mo accedas a ella. Con opciones de autocustodia como la extensi\xF3n VeWorld, la aplicaci\xF3n m\xF3vil o la billetera de hardware, tienes control total sobre tus claves privadas. Esta extensi\xF3n no tiene acceso a tus claves privadas. Al iniciar sesi\xF3n con cuentas sociales o VeChain, tu billetera es creada y asegurada por Privy y gestionada por VeChain, ofreciendo una experiencia de integraci\xF3n m\xE1s sencilla mientras se mantiene la seguridad.",
11941
12374
  "Your {{name}}.veworld.vet name has been claimed successfully.": "Tu nombre {{name}}.veworld.vet ha sido reclamado exitosamente.",
12375
+ "Your {{name}}.{{domainType}} name has been claimed successfully.": "Su nombre {{name}}.{{domainType}} ha sido reclamado exitosamente.",
11942
12376
  here: "aqu\xED",
11943
12377
  of: "de",
11944
12378
  on: "en",
@@ -11995,6 +12429,7 @@ var zh_default = {
11995
12429
  "Are you sure you want to disconnect your wallet?": "\u60A8\u786E\u5B9A\u8981\u65AD\u5F00\u94B1\u5305\u8FDE\u63A5\u5417\uFF1F",
11996
12430
  "Are you sure you want to set your domain name to": "\u60A8\u786E\u5B9A\u8981\u5C06\u60A8\u7684\u57DF\u540D\u8BBE\u7F6E\u4E3A",
11997
12431
  "Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?": "\u60A8\u786E\u5B9A\u8981\u53D6\u6D88\u94FE\u63A5 {{accountDescription}} \u4E2D\u4F5C\u4E3A\u767B\u5F55\u65B9\u5F0F\u4E4B\u4E00\u7684 {{accountType}} \u5417\uFF1F",
12432
+ "Are you sure you want to unset your current domain?": "\u60A8\u786E\u5B9A\u8981\u53D6\u6D88\u8BBE\u7F6E\u5F53\u524D\u57DF\u540D\u5417\uFF1F",
11998
12433
  Assets: "\u8D44\u4EA7",
11999
12434
  At: "\u5728",
12000
12435
  "B3TR is the incentive token of VeBetterDAO, built on VechainThor blockchain. It has a capped supply of 1 billion tokens, emitted weekly over 12 years. B3TR is used for rewards, governance, and backing VOT3 tokens 1:1. It supports sustainability applications and DAO treasury management.": "B3TR \u662F VeBetterDAO \u7684\u6FC0\u52B1\u6027\u4EE3\u5E01\uFF0C\u57FA\u4E8E VechainThor \u533A\u5757\u94FE\u6784\u5EFA\u3002\u5176\u4F9B\u5E94\u91CF\u4E0A\u9650\u4E3A 10 \u4EBF\u4E2A\u4EE3\u5E01\uFF0C\u5206 12 \u5E74\u6BCF\u5468\u53D1\u653E\u3002B3TR \u7528\u4E8E\u5956\u52B1\u3001\u6CBB\u7406\u4EE5\u53CA 1:1 \u652F\u6301 VOT3 \u4EE3\u5E01\u3002\u5B83\u652F\u6301\u53EF\u6301\u7EED\u6027\u5E94\u7528\u548C DAO \u8D22\u52A1\u7BA1\u7406\u3002",
@@ -12034,6 +12469,7 @@ var zh_default = {
12034
12469
  Confirm: "\u786E\u8BA4",
12035
12470
  "Confirm Changes": "\u786E\u8BA4\u66F4\u6539",
12036
12471
  "Confirm Name": "\u786E\u8BA4\u59D3\u540D",
12472
+ "Confirm Unset Domain": "\u786E\u8BA4\u53D6\u6D88\u8BBE\u7F6E\u57DF\u540D",
12037
12473
  "Confirm the transaction in your wallet to complete it.": "\u5728\u60A8\u7684\u94B1\u5305\u4E2D\u786E\u8BA4\u4EA4\u6613\u4EE5\u5B8C\u6210\u5B83\u3002",
12038
12474
  "Confirm transaction": "\u786E\u8BA4\u4EA4\u6613",
12039
12475
  "Connect Wallet": "\u8FDE\u63A5\u94B1\u5305",
@@ -12087,6 +12523,8 @@ var zh_default = {
12087
12523
  Discord: "Discord",
12088
12524
  "Display Name": "\u663E\u793A\u540D\u79F0",
12089
12525
  "Display name must be less than 25 characters": "\u663E\u793A\u540D\u79F0\u5FC5\u987B\u5C11\u4E8E25\u4E2A\u5B57\u7B26",
12526
+ "Domain set": "\u57DF\u540D\u5DF2\u8BBE\u7F6E",
12527
+ "Domain unset": "\u57DF\u540D\u5DF2\u53D6\u6D88\u8BBE\u7F6E",
12090
12528
  Done: "\u5B8C\u6210",
12091
12529
  Ecosystem: "\u751F\u6001\u7CFB\u7EDF",
12092
12530
  "Ecosystem Login": "\u751F\u6001\u7CFB\u7EDF\u767B\u5F55",
@@ -12244,6 +12682,7 @@ var zh_default = {
12244
12682
  Remove: "\u79FB\u9664",
12245
12683
  "Remove Login Method": "\u79FB\u9664\u767B\u5F55\u65B9\u5F0F",
12246
12684
  "Remove from shortcuts": "\u4ECE\u5FEB\u6377\u65B9\u5F0F\u4E2D\u79FB\u9664",
12685
+ "Remove your current domain name": "\u79FB\u9664\u5F53\u524D\u57DF\u540D",
12247
12686
  "Resend code": "\u91CD\u65B0\u53D1\u9001\u4EE3\u7801",
12248
12687
  Retry: "\u91CD\u8BD5",
12249
12688
  "Safari blocked the login window. Please try again, it should work now.": "Safari \u963B\u6B62\u4E86\u767B\u5F55\u7A97\u53E3\u3002\u8BF7\u518D\u6B21\u5C1D\u8BD5\uFF0C\u73B0\u5728\u5E94\u8BE5\u53EF\u4EE5\u6B63\u5E38\u5DE5\u4F5C\u3002",
@@ -12323,6 +12762,7 @@ var zh_default = {
12323
12762
  "Token Contract Address": "\u4EE3\u5E01\u5408\u7EA6\u5730\u5740",
12324
12763
  "Token already added": "\u4EE3\u5E01\u5DF2\u6DFB\u52A0",
12325
12764
  "Tokens transferred successfully.": "\u4EE3\u5E01\u8F6C\u79FB\u6210\u529F\u3002",
12765
+ Tools: "\u5DE5\u5177",
12326
12766
  "Total balance": "\u603B\u4F59\u989D",
12327
12767
  "Transaction completed!": "\u4EA4\u6613\u5B8C\u6210\uFF01",
12328
12768
  "Transaction failed": "\u4EA4\u6613\u5931\u8D25",
@@ -12342,6 +12782,11 @@ var zh_default = {
12342
12782
  "Unknown error": "\u672A\u77E5\u9519\u8BEF",
12343
12783
  "Unknown status": "\u672A\u77E5\u72B6\u6001",
12344
12784
  "Unlink Login Method": "\u53D6\u6D88\u94FE\u63A5\u767B\u5F55\u65B9\u5F0F",
12785
+ "Unset current domain": "\u53D6\u6D88\u8BBE\u7F6E\u5F53\u524D\u57DF\u540D",
12786
+ "Unsetting current domain": "\u6B63\u5728\u53D6\u6D88\u8BBE\u7F6E\u5F53\u524D\u57DF\u540D",
12787
+ "Unsetting current domain...": "\u6B63\u5728\u53D6\u6D88\u8BBE\u7F6E\u5F53\u524D\u57DF\u540D...",
12788
+ "Unsetting your current VeChain nickname": "\u53D6\u6D88\u8BBE\u7F6E\u60A8\u5F53\u524D\u7684VeChain\u6635\u79F0",
12789
+ "Unsetting your current domain": "\u53D6\u6D88\u8BBE\u7F6E\u60A8\u5F53\u524D\u7684\u57DF\u540D",
12345
12790
  "Update profile image": "\u66F4\u65B0\u8D44\u6599\u56FE\u7247",
12346
12791
  "Upgrade Now": "\u7ACB\u5373\u5347\u7EA7",
12347
12792
  "Upgrade Smart Account to V3": "\u5C06\u667A\u80FD\u8D26\u6237\u5347\u7EA7\u5230V3",
@@ -12409,8 +12854,10 @@ var zh_default = {
12409
12854
  "You own a Smart Account and it has priority over your wallet.": "\u60A8\u62E5\u6709\u4E00\u4E2A\u667A\u80FD\u8D26\u6237\uFF0C\u5B83\u4F18\u5148\u4E8E\u60A8\u7684\u94B1\u5305\u3002",
12410
12855
  "Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.": "\u60A8\u7684\u8D26\u6237\u5DF2\u6210\u529F\u5347\u7EA7\u5230\u6700\u65B0\u7248\u672C\u3002\u60A8\u73B0\u5728\u53EF\u4EE5\u4EAB\u53D7\u66F4\u597D\u7684\u7528\u6237\u4F53\u9A8C\u3001\u66F4\u4F4E\u7684\u71C3\u6C14\u8D39\u7528\u548C\u589E\u5F3A\u7684\u5B89\u5168\u6027\u3002",
12411
12856
  "Your accounts": "\u60A8\u7684\u8D26\u6237",
12857
+ "Your address has been successfully set to {{name}}.{{domainType}}.": "\u60A8\u7684\u5730\u5740\u5DF2\u6210\u529F\u8BBE\u7F6E\u4E3A{{name}}.{{domainType}}\u3002",
12412
12858
  "Your changes have been saved successfully.": "\u60A8\u7684\u66F4\u6539\u5DF2\u6210\u529F\u4FDD\u5B58\u3002",
12413
12859
  "Your customizations are linked to your .vet domain name, making them portable across different applications.": "\u60A8\u7684\u81EA\u5B9A\u4E49\u8BBE\u7F6E\u4E0E\u60A8\u7684.vet\u57DF\u540D\u76F8\u5173\u8054\uFF0C\u4F7F\u5176\u80FD\u591F\u5728\u4E0D\u540C\u7684\u5E94\u7528\u7A0B\u5E8F\u4E2D\u6D41\u7545\u4F7F\u7528\u3002",
12860
+ "Your domain has been unset successfully.": "\u60A8\u7684\u57DF\u540D\u5DF2\u6210\u529F\u53D6\u6D88\u8BBE\u7F6E\u3002",
12414
12861
  "Your embedded wallet": "\u60A8\u7684\u5D4C\u5165\u94B1\u5305",
12415
12862
  "Your existing domains": "\u60A8\u73B0\u6709\u7684\u57DF\u540D",
12416
12863
  "Your mobile browser blocked the login window.": "\u60A8\u7684\u79FB\u52A8\u6D4F\u89C8\u5668\u963B\u6B62\u4E86\u767B\u5F55\u7A97\u53E3\u3002",
@@ -12427,6 +12874,7 @@ var zh_default = {
12427
12874
  "Your wallet is secured by a private key. The private key is a unique code that allows you to access your wallet. It is stored in your browser and is used to sign transactions. The private key is never shared with anyone, including the VeChain Foundation.": "\u60A8\u7684\u94B1\u5305\u7531\u79C1\u94A5\u4FDD\u62A4\u3002\u79C1\u94A5\u662F\u4E00\u4E2A\u72EC\u7279\u7684\u4EE3\u7801\uFF0C\u5141\u8BB8\u60A8\u8BBF\u95EE\u60A8\u7684\u94B1\u5305\u3002\u5B83\u5B58\u50A8\u5728\u60A8\u7684\u6D4F\u89C8\u5668\u4E2D\uFF0C\u7528\u4E8E\u7B7E\u7F72\u4EA4\u6613\u3002\u79C1\u94A5\u4E0D\u4F1A\u4E0E\u4EFB\u4F55\u4EBA\u5171\u4EAB\uFF0C\u5305\u62EC\u552F\u94FE\u57FA\u91D1\u4F1A\u3002",
12428
12875
  "Your wallet security depends on how you access it. With self-custody options like the VeWorld extension, mobile app, or hardware wallet, you have complete control over your private keys. This extension itself has no access to your private keys. When logging in with social accounts or VeChain, your wallet is created and secured by Privy and managed by VeChain, providing an easier onboarding experience while maintaining security.": "\u60A8\u7684\u94B1\u5305\u5B89\u5168\u6027\u53D6\u51B3\u4E8E\u60A8\u5982\u4F55\u8BBF\u95EE\u5B83\u3002\u901A\u8FC7 VeWorld \u63D2\u4EF6\u3001\u79FB\u52A8\u5E94\u7528\u6216\u786C\u4EF6\u94B1\u5305\u7B49\u81EA\u6211\u6258\u7BA1\u9009\u9879\uFF0C\u60A8\u53EF\u4EE5\u5B8C\u5168\u63A7\u5236\u60A8\u7684\u79C1\u94A5\u3002\u6B64\u63D2\u4EF6\u672C\u8EAB\u65E0\u6CD5\u8BBF\u95EE\u60A8\u7684\u79C1\u94A5\u3002\u4F7F\u7528\u793E\u4EA4\u8D26\u6237\u6216\u552F\u94FE\u767B\u5F55\u65F6\uFF0C\u60A8\u7684\u94B1\u5305\u7531 Privy \u521B\u5EFA\u548C\u4FDD\u62A4\uFF0C\u5E76\u7531\u552F\u94FE\u7BA1\u7406\uFF0C\u63D0\u4F9B\u66F4\u7B80\u5355\u7684\u5165\u95E8\u4F53\u9A8C\uFF0C\u540C\u65F6\u4FDD\u6301\u5B89\u5168\u6027\u3002",
12429
12876
  "Your {{name}}.veworld.vet name has been claimed successfully.": "\u60A8\u7684 {{name}}.veworld.vet \u540D\u5B57\u5DF2\u6210\u529F\u6CE8\u518C\u3002",
12877
+ "Your {{name}}.{{domainType}} name has been claimed successfully.": "\u60A8\u7684{{name}}.{{domainType}}\u540D\u79F0\u5DF2\u6210\u529F\u7533\u8BF7\u3002",
12430
12878
  here: "\u8FD9\u91CC",
12431
12879
  of: "\u7684",
12432
12880
  on: "\u5F00\u542F",
@@ -12483,6 +12931,7 @@ var ja_default = {
12483
12931
  "Are you sure you want to disconnect your wallet?": "\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u5207\u65AD\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F",
12484
12932
  "Are you sure you want to set your domain name to": "\u30C9\u30E1\u30A4\u30F3\u540D\u3092\u8A2D\u5B9A\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B",
12485
12933
  "Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?": "{{accountDescription}}\u306B\u30EA\u30F3\u30AF\u3055\u308C\u305F\u30ED\u30B0\u30A4\u30F3\u65B9\u6CD5\u3068\u3057\u3066{{accountType}}\u306E\u30EA\u30F3\u30AF\u3092\u89E3\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F",
12934
+ "Are you sure you want to unset your current domain?": "\u73FE\u5728\u306E\u30C9\u30E1\u30A4\u30F3\u3092\u89E3\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F",
12486
12935
  Assets: "\u8CC7\u7523",
12487
12936
  At: "\u3067",
12488
12937
  "B3TR is the incentive token of VeBetterDAO, built on VechainThor blockchain. It has a capped supply of 1 billion tokens, emitted weekly over 12 years. B3TR is used for rewards, governance, and backing VOT3 tokens 1:1. It supports sustainability applications and DAO treasury management.": "B3TR\u306FVeBetterDAO\u306E\u30A4\u30F3\u30BB\u30F3\u30C6\u30A3\u30D6\u30C8\u30FC\u30AF\u30F3\u3067\u3042\u308A\u3001VechainThor\u30D6\u30ED\u30C3\u30AF\u30C1\u30A7\u30FC\u30F3\u4E0A\u306B\u69CB\u7BC9\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u7DCF\u4F9B\u7D66\u91CF\u306F10\u5104\u30C8\u30FC\u30AF\u30F3\u306B\u9650\u5B9A\u3055\u308C\u300112\u5E74\u9593\u306B\u308F\u305F\u3063\u3066\u6BCE\u9031\u767A\u884C\u3055\u308C\u307E\u3059\u3002B3TR\u306F\u5831\u916C\u3001\u30AC\u30D0\u30CA\u30F3\u30B9\u3001\u304A\u3088\u3073VOT3\u30C8\u30FC\u30AF\u30F3\u306E1:1\u306E\u4FDD\u8B77\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\u305D\u308C\u306F\u30B5\u30B9\u30C6\u30CA\u30D3\u30EA\u30C6\u30A3\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3068DAO\u30C8\u30EC\u30B8\u30E3\u30EA\u7BA1\u7406\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002",
@@ -12522,6 +12971,7 @@ var ja_default = {
12522
12971
  Confirm: "\u78BA\u8A8D",
12523
12972
  "Confirm Changes": "\u5909\u66F4\u3092\u78BA\u8A8D",
12524
12973
  "Confirm Name": "\u540D\u524D\u3092\u78BA\u8A8D",
12974
+ "Confirm Unset Domain": "\u30C9\u30E1\u30A4\u30F3\u89E3\u9664\u3092\u78BA\u8A8D",
12525
12975
  "Confirm the transaction in your wallet to complete it.": "\u30A6\u30A9\u30EC\u30C3\u30C8\u3067\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u78BA\u8A8D\u3057\u3066\u5B8C\u4E86\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
12526
12976
  "Confirm transaction": "\u53D6\u5F15\u3092\u78BA\u8A8D",
12527
12977
  "Connect Wallet": "\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u63A5\u7D9A",
@@ -12575,6 +13025,8 @@ var ja_default = {
12575
13025
  Discord: "\u30C7\u30A3\u30B9\u30B3\u30FC\u30C9",
12576
13026
  "Display Name": "\u8868\u793A\u540D",
12577
13027
  "Display name must be less than 25 characters": "\u8868\u793A\u540D\u306F25\u6587\u5B57\u672A\u6E80\u3067\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093",
13028
+ "Domain set": "\u30C9\u30E1\u30A4\u30F3\u304C\u8A2D\u5B9A\u3055\u308C\u307E\u3057\u305F",
13029
+ "Domain unset": "\u30C9\u30E1\u30A4\u30F3\u304C\u89E3\u9664\u3055\u308C\u307E\u3057\u305F",
12578
13030
  Done: "\u5B8C\u4E86",
12579
13031
  Ecosystem: "\u30A8\u30B3\u30B7\u30B9\u30C6\u30E0",
12580
13032
  "Ecosystem Login": "\u30A8\u30B3\u30B7\u30B9\u30C6\u30E0\u306B\u30ED\u30B0\u30A4\u30F3",
@@ -12732,6 +13184,7 @@ var ja_default = {
12732
13184
  Remove: "\u524A\u9664",
12733
13185
  "Remove Login Method": "\u30ED\u30B0\u30A4\u30F3\u65B9\u6CD5\u306E\u524A\u9664",
12734
13186
  "Remove from shortcuts": "\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u304B\u3089\u524A\u9664",
13187
+ "Remove your current domain name": "\u73FE\u5728\u306E\u30C9\u30E1\u30A4\u30F3\u540D\u3092\u524A\u9664\u3059\u308B",
12735
13188
  "Resend code": "\u30B3\u30FC\u30C9\u3092\u518D\u9001\u4FE1",
12736
13189
  Retry: "\u518D\u8A66\u884C",
12737
13190
  "Safari blocked the login window. Please try again, it should work now.": "Safari\u304C\u30ED\u30B0\u30A4\u30F3\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u30D6\u30ED\u30C3\u30AF\u3057\u307E\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002\u4ECA\u5EA6\u306F\u3046\u307E\u304F\u3044\u304F\u306F\u305A\u3067\u3059\u3002",
@@ -12811,6 +13264,7 @@ var ja_default = {
12811
13264
  "Token Contract Address": "\u30C8\u30FC\u30AF\u30F3\u5951\u7D04\u30A2\u30C9\u30EC\u30B9",
12812
13265
  "Token already added": "\u30C8\u30FC\u30AF\u30F3\u306F\u65E2\u306B\u8FFD\u52A0\u3055\u308C\u3066\u3044\u307E\u3059",
12813
13266
  "Tokens transferred successfully.": "\u30C8\u30FC\u30AF\u30F3\u306E\u8EE2\u9001\u304C\u6210\u529F\u3057\u307E\u3057\u305F\u3002",
13267
+ Tools: "\u30C4\u30FC\u30EB",
12814
13268
  "Total balance": "\u7DCF\u6B8B\u9AD8",
12815
13269
  "Transaction completed!": "\u53D6\u5F15\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\uFF01",
12816
13270
  "Transaction failed": "\u53D6\u5F15\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
@@ -12830,6 +13284,11 @@ var ja_default = {
12830
13284
  "Unknown error": "\u4E0D\u660E\u306A\u30A8\u30E9\u30FC",
12831
13285
  "Unknown status": "\u4E0D\u660E\u306A\u72B6\u614B",
12832
13286
  "Unlink Login Method": "\u30ED\u30B0\u30A4\u30F3\u65B9\u6CD5\u306E\u30EA\u30F3\u30AF\u89E3\u9664",
13287
+ "Unset current domain": "\u73FE\u5728\u306E\u30C9\u30E1\u30A4\u30F3\u3092\u89E3\u9664\u3059\u308B",
13288
+ "Unsetting current domain": "\u73FE\u5728\u306E\u30C9\u30E1\u30A4\u30F3\u3092\u89E3\u9664\u4E2D",
13289
+ "Unsetting current domain...": "\u73FE\u5728\u306E\u30C9\u30E1\u30A4\u30F3\u3092\u89E3\u9664\u4E2D...",
13290
+ "Unsetting your current VeChain nickname": "\u73FE\u5728\u306EVeChain\u30CB\u30C3\u30AF\u30CD\u30FC\u30E0\u3092\u89E3\u9664\u4E2D",
13291
+ "Unsetting your current domain": "\u73FE\u5728\u306E\u30C9\u30E1\u30A4\u30F3\u3092\u89E3\u9664\u4E2D",
12833
13292
  "Update profile image": "\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u753B\u50CF\u3092\u66F4\u65B0",
12834
13293
  "Upgrade Now": "\u4ECA\u3059\u3050\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9",
12835
13294
  "Upgrade Smart Account to V3": "\u30B9\u30DE\u30FC\u30C8\u30A2\u30AB\u30A6\u30F3\u30C8\u3092V3\u306B\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9",
@@ -12897,8 +13356,10 @@ var ja_default = {
12897
13356
  "You own a Smart Account and it has priority over your wallet.": "\u3042\u306A\u305F\u306F\u30B9\u30DE\u30FC\u30C8\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u6240\u6709\u3057\u3066\u304A\u308A\u3001\u305D\u308C\u306F\u3042\u306A\u305F\u306E\u30A6\u30A9\u30EC\u30C3\u30C8\u3088\u308A\u512A\u5148\u3055\u308C\u307E\u3059\u3002",
12898
13357
  "Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.": "\u3042\u306A\u305F\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u306F\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u6B63\u5E38\u306B\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u3055\u308C\u307E\u3057\u305F\u3002\u3088\u308A\u826F\u3044\u30E6\u30FC\u30B6\u30FC\u4F53\u9A13\u3001\u4F4E\u3044\u30AC\u30B9\u30B3\u30B9\u30C8\u3001\u5F37\u5316\u3055\u308C\u305F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3092\u304A\u697D\u3057\u307F\u304F\u3060\u3055\u3044\u3002",
12899
13358
  "Your accounts": "\u3042\u306A\u305F\u306E\u30A2\u30AB\u30A6\u30F3\u30C8",
13359
+ "Your address has been successfully set to {{name}}.{{domainType}}.": "\u3042\u306A\u305F\u306E\u30A2\u30C9\u30EC\u30B9\u306F{{name}}.{{domainType}}\u306B\u6B63\u5E38\u306B\u8A2D\u5B9A\u3055\u308C\u307E\u3057\u305F\u3002",
12900
13360
  "Your changes have been saved successfully.": "\u5909\u66F4\u306F\u6B63\u5E38\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F\u3002",
12901
13361
  "Your customizations are linked to your .vet domain name, making them portable across different applications.": "\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u306F.vet\u30C9\u30E1\u30A4\u30F3\u540D\u306B\u30EA\u30F3\u30AF\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u7570\u306A\u308B\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u9593\u3067\u6301\u3061\u904B\u3079\u307E\u3059\u3002",
13362
+ "Your domain has been unset successfully.": "\u3042\u306A\u305F\u306E\u30C9\u30E1\u30A4\u30F3\u306F\u6B63\u5E38\u306B\u89E3\u9664\u3055\u308C\u307E\u3057\u305F\u3002",
12902
13363
  "Your embedded wallet": "\u3042\u306A\u305F\u306E\u57CB\u3081\u8FBC\u307F\u30A6\u30A9\u30EC\u30C3\u30C8",
12903
13364
  "Your existing domains": "\u65E2\u5B58\u306E\u30C9\u30E1\u30A4\u30F3",
12904
13365
  "Your mobile browser blocked the login window.": "\u30E2\u30D0\u30A4\u30EB\u30D6\u30E9\u30A6\u30B6\u304C\u30ED\u30B0\u30A4\u30F3\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u30D6\u30ED\u30C3\u30AF\u3057\u307E\u3057\u305F\u3002",
@@ -12915,6 +13376,7 @@ var ja_default = {
12915
13376
  "Your wallet is secured by a private key. The private key is a unique code that allows you to access your wallet. It is stored in your browser and is used to sign transactions. The private key is never shared with anyone, including the VeChain Foundation.": "\u30A6\u30A9\u30EC\u30C3\u30C8\u306F\u79D8\u5BC6\u9375\u306B\u3088\u3063\u3066\u4FDD\u8B77\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u79D8\u5BC6\u9375\u306F\u30A6\u30A9\u30EC\u30C3\u30C8\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u53EF\u80FD\u306B\u3059\u308B\u4E00\u610F\u306E\u30B3\u30FC\u30C9\u3067\u3059\u3002\u3053\u308C\u306F\u30D6\u30E9\u30A6\u30B6\u306B\u4FDD\u5B58\u3055\u308C\u3001\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u7F72\u540D\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\u79D8\u5BC6\u9375\u306F\u3001VeChain\u306E\u8CA1\u56E3\u3092\u542B\u3080\u8AB0\u3068\u3082\u5171\u6709\u3055\u308C\u307E\u305B\u3093\u3002",
12916
13377
  "Your wallet security depends on how you access it. With self-custody options like the VeWorld extension, mobile app, or hardware wallet, you have complete control over your private keys. This extension itself has no access to your private keys. When logging in with social accounts or VeChain, your wallet is created and secured by Privy and managed by VeChain, providing an easier onboarding experience while maintaining security.": "\u30A6\u30A9\u30EC\u30C3\u30C8\u306E\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u306F\u3001\u30A2\u30AF\u30BB\u30B9\u65B9\u6CD5\u306B\u4F9D\u5B58\u3057\u307E\u3059\u3002VeWorld\u62E1\u5F35\u6A5F\u80FD\u3084\u30E2\u30D0\u30A4\u30EB\u30A2\u30D7\u30EA\u3001\u30CF\u30FC\u30C9\u30A6\u30A7\u30A2\u30A6\u30A9\u30EC\u30C3\u30C8\u306A\u3069\u306E\u81EA\u5DF1\u7BA1\u7406\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u3067\u3001\u79D8\u5BC6\u9375\u3092\u5B8C\u5168\u306B\u7BA1\u7406\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u62E1\u5F35\u6A5F\u80FD\u81EA\u4F53\u306F\u3042\u306A\u305F\u306E\u79D8\u5BC6\u9375\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30BD\u30FC\u30B7\u30E3\u30EB\u30A2\u30AB\u30A6\u30F3\u30C8\u3084VeChain\u3092\u4F7F\u7528\u3057\u3066\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u5834\u5408\u3001\u30A6\u30A9\u30EC\u30C3\u30C8\u306FPrivy\u306B\u3088\u3063\u3066\u4F5C\u6210\u3055\u308C\u3001\u4FDD\u8B77\u3055\u308C\u3001VeChain\u306B\u3088\u3063\u3066\u7BA1\u7406\u3055\u308C\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3092\u7DAD\u6301\u3057\u3064\u3064\u5BB9\u6613\u306A\u30AA\u30F3\u30DC\u30FC\u30C7\u30A3\u30F3\u30B0\u4F53\u9A13\u3092\u63D0\u4F9B\u3057\u307E\u3059\u3002",
12917
13378
  "Your {{name}}.veworld.vet name has been claimed successfully.": "\u3042\u306A\u305F\u306E{{name}}.veworld.vet\u540D\u304C\u6B63\u5E38\u306B\u8ACB\u6C42\u3055\u308C\u307E\u3057\u305F\u3002",
13379
+ "Your {{name}}.{{domainType}} name has been claimed successfully.": "\u3042\u306A\u305F\u306E{{name}}.{{domainType}}\u540D\u306F\u6B63\u5E38\u306B\u53D6\u5F97\u3055\u308C\u307E\u3057\u305F\u3002",
12918
13380
  here: "\u3053\u3061\u3089",
12919
13381
  of: "\u306E",
12920
13382
  on: "\u4E0A",
@@ -15886,22 +16348,17 @@ var ConnectPopover = ({
15886
16348
  };
15887
16349
  var WalletDisplay = ({ variant }) => {
15888
16350
  const { account } = useWallet();
15889
- const [isSmallMobile] = useMediaQuery("(max-width: 480px)");
15890
- const accountDomain = useMemo(() => {
15891
- const isLongDomain = account?.domain && account.domain.length > 18;
15892
- return isSmallMobile && isLongDomain ? humanDomain(account?.domain ?? "", 18, 0) : account?.domain;
15893
- }, [isSmallMobile, account?.domain]);
15894
16351
  if (!account) return /* @__PURE__ */ jsx(Spinner, {});
15895
16352
  if (variant === "icon") {
15896
16353
  return null;
15897
16354
  }
15898
16355
  if (variant === "iconAndDomain") {
15899
- return account.domain ? /* @__PURE__ */ jsx(Text, { fontSize: "sm", children: accountDomain }) : /* @__PURE__ */ jsx(Text, { fontSize: "sm", children: humanAddress(account.address ?? "", 6, 4) });
16356
+ return account.domain ? /* @__PURE__ */ jsx(Text, { fontSize: "sm", children: humanDomain(account?.domain ?? "", 16, 0) }) : /* @__PURE__ */ jsx(Text, { fontSize: "sm", children: humanAddress(account.address ?? "", 6, 4) });
15900
16357
  }
15901
16358
  if (variant === "iconDomainAndAssets") {
15902
16359
  return /* @__PURE__ */ jsxs(HStack, { spacing: 4, children: [
15903
16360
  /* @__PURE__ */ jsxs(VStack, { spacing: 0, alignItems: "flex-start", children: [
15904
- account.domain && /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "bold", children: accountDomain }),
16361
+ account.domain && /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "bold", children: humanDomain(account?.domain ?? "", 16, 0) }),
15905
16362
  /* @__PURE__ */ jsx(
15906
16363
  Text,
15907
16364
  {
@@ -15915,7 +16372,7 @@ var WalletDisplay = ({ variant }) => {
15915
16372
  ] });
15916
16373
  }
15917
16374
  return /* @__PURE__ */ jsxs(VStack, { spacing: 0, alignItems: "flex-start", children: [
15918
- account.domain && /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "bold", children: accountDomain }),
16375
+ account.domain && /* @__PURE__ */ jsx(Text, { fontSize: "sm", fontWeight: "bold", children: humanDomain(account?.domain ?? "", 16, 0) }),
15919
16376
  /* @__PURE__ */ jsx(
15920
16377
  Text,
15921
16378
  {
@@ -16542,14 +16999,11 @@ var ProfileCard = ({
16542
16999
  }) => {
16543
17000
  const { t } = useTranslation();
16544
17001
  const { account } = useWallet();
16545
- const activeAccountDomain = useVechainDomain(address);
16546
- const activeAccountAvatar = useGetAvatarOfAddress(address);
16547
- const activeAccountTextRecords = useGetTextRecords(
16548
- activeAccountDomain?.data?.domain
16549
- );
17002
+ const { network } = useVeChainKitConfig();
17003
+ const metadata = useWalletMetadata(address, network.type);
16550
17004
  const headerImageSvg = getPicassoImage(address);
16551
17005
  const isConnectedAccount = address === account?.address;
16552
- const hasLinks = activeAccountTextRecords?.data?.url || activeAccountTextRecords?.data?.["com.x"] || activeAccountTextRecords?.data?.email;
17006
+ const hasLinks = metadata?.records?.url || metadata?.records?.["com.x"] || metadata?.records?.email;
16553
17007
  return /* @__PURE__ */ jsxs(Card, { variant: "vechainKitBase", ...style?.card, children: [
16554
17008
  /* @__PURE__ */ jsx(
16555
17009
  Box,
@@ -16576,14 +17030,14 @@ var ProfileCard = ({
16576
17030
  {
16577
17031
  wallet: {
16578
17032
  address,
16579
- domain: activeAccountDomain?.data?.domain,
16580
- image: activeAccountAvatar.data,
16581
- isLoadingMetadata: activeAccountAvatar?.isLoading || activeAccountDomain?.isLoading || activeAccountTextRecords?.isLoading,
16582
- metadata: activeAccountTextRecords?.data
17033
+ domain: metadata?.domain,
17034
+ image: metadata?.image,
17035
+ isLoadingMetadata: metadata?.isLoading,
17036
+ metadata: metadata?.records
16583
17037
  },
16584
17038
  props: {
16585
- width: "100px",
16586
- height: "100px"
17039
+ width: "120px",
17040
+ height: "120px"
16587
17041
  // boxShadow: '0px 0px 3px 2px #00000024',
16588
17042
  }
16589
17043
  }
@@ -16593,12 +17047,12 @@ var ProfileCard = ({
16593
17047
  /* @__PURE__ */ jsx(
16594
17048
  CardBody,
16595
17049
  {
16596
- mt: 10,
17050
+ mt: "60px",
16597
17051
  backgroundColor: "none",
16598
17052
  border: "none",
16599
17053
  ...style?.body,
16600
17054
  children: /* @__PURE__ */ jsxs(VStack, { w: "full", spacing: 2, children: [
16601
- showDisplayName && activeAccountTextRecords?.data?.display && /* @__PURE__ */ jsx(
17055
+ showDisplayName && metadata?.records?.display && /* @__PURE__ */ jsx(
16602
17056
  Text,
16603
17057
  {
16604
17058
  fontSize: "xl",
@@ -16606,10 +17060,19 @@ var ProfileCard = ({
16606
17060
  w: "full",
16607
17061
  textAlign: "center",
16608
17062
  mt: 2,
16609
- children: activeAccountTextRecords?.data?.display
17063
+ children: metadata?.records?.display
17064
+ }
17065
+ ),
17066
+ showDescription && metadata?.records?.description && /* @__PURE__ */ jsx(
17067
+ Text,
17068
+ {
17069
+ fontSize: "sm",
17070
+ opacity: 0.7,
17071
+ w: "full",
17072
+ textAlign: "center",
17073
+ children: metadata?.records?.description
16610
17074
  }
16611
17075
  ),
16612
- showDescription && activeAccountTextRecords?.data?.description && /* @__PURE__ */ jsx(Text, { fontSize: "sm", opacity: 0.7, children: activeAccountTextRecords?.data?.description }),
16613
17076
  showLinks && hasLinks && /* @__PURE__ */ jsxs(
16614
17077
  HStack,
16615
17078
  {
@@ -16618,26 +17081,26 @@ var ProfileCard = ({
16618
17081
  spacing: 5,
16619
17082
  mt: 4,
16620
17083
  children: [
16621
- activeAccountTextRecords?.data?.email && /* @__PURE__ */ jsx(
17084
+ metadata?.records?.email && /* @__PURE__ */ jsx(
16622
17085
  Link,
16623
17086
  {
16624
- href: `mailto:${activeAccountTextRecords?.data?.email}`,
17087
+ href: `mailto:${metadata?.records?.email}`,
16625
17088
  target: "_blank",
16626
17089
  children: /* @__PURE__ */ jsx(Icon, { as: FaEnvelope })
16627
17090
  }
16628
17091
  ),
16629
- activeAccountTextRecords?.data?.url && /* @__PURE__ */ jsx(
17092
+ metadata?.records?.url && /* @__PURE__ */ jsx(
16630
17093
  Link,
16631
17094
  {
16632
- href: activeAccountTextRecords?.data?.url,
17095
+ href: metadata?.records?.url,
16633
17096
  target: "_blank",
16634
17097
  children: /* @__PURE__ */ jsx(Icon, { as: FaGlobe })
16635
17098
  }
16636
17099
  ),
16637
- activeAccountTextRecords?.data?.["com.x"] && /* @__PURE__ */ jsx(
17100
+ metadata?.records?.["com.x"] && /* @__PURE__ */ jsx(
16638
17101
  Link,
16639
17102
  {
16640
- href: `https://x.com/${activeAccountTextRecords?.data?.["com.x"]}`,
17103
+ href: `https://x.com/${metadata?.records?.["com.x"]}`,
16641
17104
  target: "_blank",
16642
17105
  children: /* @__PURE__ */ jsx(Icon, { as: FaXTwitter })
16643
17106
  }
@@ -16650,10 +17113,10 @@ var ProfileCard = ({
16650
17113
  {
16651
17114
  wallet: {
16652
17115
  address,
16653
- domain: activeAccountDomain?.data?.domain,
16654
- image: activeAccountAvatar.data,
16655
- isLoadingMetadata: activeAccountAvatar?.isLoading || activeAccountDomain?.isLoading || activeAccountTextRecords?.isLoading,
16656
- metadata: activeAccountTextRecords?.data
17116
+ domain: metadata?.domain,
17117
+ image: metadata?.image,
17118
+ isLoadingMetadata: metadata?.isLoading,
17119
+ metadata: metadata?.records
16657
17120
  },
16658
17121
  style: { mt: 4 }
16659
17122
  }
@@ -17585,7 +18048,7 @@ var useSignTypedData2 = () => {
17585
18048
  const privyWalletProvider = usePrivyWalletProvider();
17586
18049
  const { signTypedData: signTypedDataDappKit } = useWallet$1();
17587
18050
  const signTypedData = useCallback(
17588
- async (data) => {
18051
+ async (data, options) => {
17589
18052
  setIsSigningPending(true);
17590
18053
  setError(null);
17591
18054
  setSignature(null);
@@ -17599,7 +18062,8 @@ var useSignTypedData2 = () => {
17599
18062
  sig = await signTypedDataDappKit(
17600
18063
  domain,
17601
18064
  data.types,
17602
- data.message
18065
+ data.message,
18066
+ options
17603
18067
  );
17604
18068
  } else {
17605
18069
  sig = await privyWalletProvider.signTypedData(data);
@@ -17607,7 +18071,16 @@ var useSignTypedData2 = () => {
17607
18071
  setSignature(sig);
17608
18072
  return sig;
17609
18073
  } catch (err) {
17610
- const error2 = err instanceof Error ? err : new Error(String(err));
18074
+ if (err && typeof err === "object" && "statusCode" in err && err.statusCode === 4001) {
18075
+ const userRejectionError = new Error(
18076
+ "User denied signature request"
18077
+ );
18078
+ setError(userRejectionError);
18079
+ throw userRejectionError;
18080
+ }
18081
+ const error2 = err instanceof Error ? err : new Error(
18082
+ typeof err === "object" ? JSON.stringify(err) : String(err)
18083
+ );
17611
18084
  setError(error2);
17612
18085
  throw error2;
17613
18086
  } finally {
@@ -18708,6 +19181,6 @@ var VechainKitThemeProvider = ({
18708
19181
  ] });
18709
19182
  };
18710
19183
 
18711
- 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, decodeFunctionSignature, 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, getErc20Balance, getErc20BalanceQueryKey, 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, useDecodeFunctionSignature, useEcosystemShortcuts, useEnsRecordExists, useExploreEcosystemModal, useFAQModal, useFeatureAnnouncement, useFetchAppInfo, useFetchPrivyStatus, useGMBaseUri, useGMbalance, useGetAccountAddress, useGetAccountVersion, useGetAvatar, useGetAvatarOfAddress, useGetB3trBalance, useGetChainId, useGetCumulativeScoreWithDecay, useGetCustomTokenBalances, useGetCustomTokenInfo, useGetDelegatee, useGetDelegator, useGetDomainsOfAddress, useGetEntitiesLinkedToPassport, useGetErc20Balance, 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 };
19184
+ 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, decodeFunctionSignature, 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, getAvatarLegacy, getAvatarLegacyQueryKey, getAvatarOfAddressQueryKey, getAvatarQueryKey, getB3trBalance, getB3trBalanceQueryKey, getB3trDonatedQueryKey, getB3trToUpgradeQueryKey, getBalanceOf, getCallKey, getChainId, getChainIdQueryKey, getCurrentAccountImplementationVersion, getCurrentAccountImplementationVersionQueryKey, getCurrentAllocationsRoundId, getCurrentAllocationsRoundIdQueryKey, getCustomTokenBalance, getCustomTokenBalanceQueryKey, getCustomTokenInfo, getDelegateeQueryKey, getDelegatorQueryKey, getDomainsOfAddress, getDomainsOfAddressQueryKey, getEnsRecordExistsQueryKey, getEntitiesLinkedToPassportQueryKey, getErc20Balance, getErc20BalanceQueryKey, 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, useClaimVetDomain, useConnectModal, useCrossAppConnectionCache, useCurrentAccountImplementationVersion, useCurrentAllocationsRound, useCurrentAllocationsRoundId, useCurrentBlock, useDecodeFunctionSignature, useEcosystemShortcuts, useEnsRecordExists, useExploreEcosystemModal, useFAQModal, useFeatureAnnouncement, useFetchAppInfo, useFetchPrivyStatus, useGMBaseUri, useGMbalance, useGetAccountAddress, useGetAccountVersion, useGetAvatar, useGetAvatarLegacy, useGetAvatarOfAddress, useGetB3trBalance, useGetChainId, useGetCumulativeScoreWithDecay, useGetCustomTokenBalances, useGetCustomTokenInfo, useGetDelegatee, useGetDelegator, useGetDomainsOfAddress, useGetEntitiesLinkedToPassport, useGetErc20Balance, 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, useUnsetDomain, 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 };
18712
19185
  //# sourceMappingURL=index.js.map
18713
19186
  //# sourceMappingURL=index.js.map