@vechain/vechain-kit 2.0.4 → 2.1.1
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/assets/index.d.cts +1 -1
- package/dist/assets/index.d.mts +1 -1
- package/dist/{index-C8Uj8ple.d.cts → index--hSO7Xv4.d.mts} +4 -4
- package/dist/{index-C8Uj8ple.d.cts.map → index--hSO7Xv4.d.mts.map} +1 -1
- package/dist/{index-DWGrsVoL.d.mts → index-9Nctr1tw.d.mts} +164 -58
- package/dist/index-9Nctr1tw.d.mts.map +1 -0
- package/dist/{index-CozseDtf.d.cts → index-CoM8jwiv.d.cts} +259 -153
- package/dist/index-CoM8jwiv.d.cts.map +1 -0
- package/dist/{index-BQ0ary2b.d.mts → index-I8fe7GR2.d.cts} +4 -4
- package/dist/{index-BQ0ary2b.d.mts.map → index-I8fe7GR2.d.cts.map} +1 -1
- package/dist/index.cjs +5 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.map +1 -1
- package/dist/utils/index.d.cts +2 -2
- package/dist/utils/index.d.mts +2 -2
- package/package.json +1 -1
- package/dist/index-CozseDtf.d.cts.map +0 -1
- package/dist/index-DWGrsVoL.d.mts.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,E as r,H as i,J as a,O as o,Q as s,S as c,U as l,V as u,W as d,X as f,Z as p,_ as m,_t as h,a as g,at as _,b as v,ft as y,g as b,h as x,ht as S,i as C,lt as w,mt as ee,n as T,nt as E,o as D,ot as te,q as ne,r as re,rt as O,st as ie,t as ae,tt as oe,v as se,vt as k,w as ce,x as le,y as ue}from"./utils-DAs6kMGs.mjs";import{C as de,S as fe,T as pe,_ as me,a as he,b as ge,c as _e,d as ve,f as ye,g as be,h as xe,i as Se,l as Ce,m as we,n as Te,o as Ee,p as De,r as Oe,s as ke,t as Ae,u as je,v as Me,w as Ne,x as Pe,y as Fe}from"./assets-aAdDxPJu.mjs";import{Accordion as Ie,AccordionButton as Le,AccordionItem as Re,AccordionPanel as ze,Alert as Be,AlertDescription as Ve,AlertIcon as He,AlertTitle as Ue,Badge as We,Box as A,Button as j,Card as Ge,CardBody as Ke,CardFooter as qe,CardHeader as Je,Center as Ye,ChakraProvider as Xe,Checkbox as Ze,Circle as Qe,Collapse as $e,ColorModeScript as et,Container as tt,Divider as nt,Flex as rt,FormControl as it,FormLabel as at,Grid as ot,GridItem as st,HStack as M,Heading as ct,Icon as N,IconButton as lt,Image as ut,Input as dt,InputGroup as ft,InputLeftElement as pt,InputRightElement as mt,Link as ht,List as gt,ListItem as _t,Modal as vt,ModalBody as P,ModalCloseButton as F,ModalContent as yt,ModalFooter as I,ModalHeader as L,ModalOverlay as bt,PinInput as xt,PinInputField as St,Popover as Ct,PopoverBody as wt,PopoverContent as Tt,PopoverFooter as Et,PopoverTrigger as Dt,Select as Ot,Skeleton as kt,Spinner as At,Stack as jt,Switch as Mt,Tag as Nt,Text as R,Textarea as Pt,Tooltip as Ft,VStack as z,Wrap as It,WrapItem as Lt,createMultiStyleConfigHelpers as Rt,createStandaloneToast as zt,defineStyle as Bt,defineStyleConfig as Vt,extendTheme as Ht,theme as Ut,useColorMode as Wt,useDisclosure as Gt,useMediaQuery as Kt,useSteps as qt,useToken as B}from"@chakra-ui/react";import V,{Fragment as Jt,createContext as Yt,useCallback as H,useContext as Xt,useEffect as U,useMemo as W,useRef as Zt,useState as G}from"react";import{Fragment as K,jsx as q,jsxs as J}from"react/jsx-runtime";import{BigNumber as Qt}from"bignumber.js";import{Interface as $t,ethers as en,namehash as tn,parseEther as nn,toBeHex as rn,toUtf8String as an,zeroPadValue as on}from"ethers";import{ABIContract as sn,Address as cn,Clause as ln,HexUInt as un,Revision as dn,Transaction as fn,Units as pn,VET as mn}from"@vechain/sdk-core";import hn from"i18next";import{Trans as gn,initReactI18next as _n,useTranslation as Y}from"react-i18next";import{PrivyProvider as vn,useCreateWallet as yn,useLoginWithEmail as bn,useLoginWithOAuth as xn,useLoginWithPasskey as Sn,useMfaEnrollment as Cn,usePrivy as wn,usePrivy as Tn,useSetWalletRecovery as En}from"@privy-io/react-auth";import{ReactQueryDevtools as Dn}from"@tanstack/react-query-devtools";import{DAppKitProvider as On,WalletButton as kn,useThor as An,useThor as jn,useWallet as Mn,useWallet as Nn,useWalletModal as Pn}from"@vechain/dapp-kit-react";import{QueryClient as Fn,QueryClientContext as In,QueryClientProvider as Ln,useQueries as Rn,useQuery as X,useQueryClient as zn}from"@tanstack/react-query";import{hashFn as Bn}from"wagmi/query";import{motion as Vn}from"framer-motion";import{LuArchive as Hn,LuArrowDown as Un,LuArrowDownToLine as Wn,LuArrowDownUp as Gn,LuArrowLeftRight as Kn,LuArrowRight as qn,LuArrowUp as Jn,LuArrowUpFromLine as Yn,LuBell as Xn,LuBookmark as Zn,LuBookmarkCheck as Qn,LuCamera as $n,LuCheck as er,LuChevronDown as tr,LuChevronLeft as nr,LuChevronRight as rr,LuChevronUp as ir,LuCircleAlert as ar,LuCircleCheck as or,LuCircleHelp as sr,LuCircleX as cr,LuCopy as lr,LuDollarSign as ur,LuEllipsis as dr,LuExternalLink as fr,LuFingerprint as pr,LuFuel as mr,LuGavel as hr,LuGithub as gr,LuGlobe as _r,LuGripVertical as vr,LuKey as yr,LuLanguages as br,LuLogOut as xr,LuMail as Sr,LuMinus as Cr,LuPencil as wr,LuPhone as Tr,LuPlus as Er,LuRefreshCw as Dr,LuRotateCcw as Or,LuSearch as kr,LuSettings as Ar,LuSettings2 as jr,LuShield as Mr,LuShieldCheck as Nr,LuSlash as Pr,LuSquareUser as Fr,LuTrash2 as Ir,LuUnlink as Lr,LuUser as Rr,LuUserCog as zr,LuWallet as Br,LuX as Vr}from"react-icons/lu";import{getAddressDomain as Hr,getAvatar as Ur,getB3trBalance as Wr,getDomainAddress as Gr,getErc20Balance as Kr,getIsPerson as qr,getTokenInfo as Jr,getVot3Balance as Yr,isPrimaryDomain as Xr,isValidDomain as Zr}from"@vechain/contract-getters";import{MyERC20__factory as Qr,OracleVechainEnergy__factory as $r,SocialLoginSmartAccountFactory__factory as ei,SocialLoginSmartAccountFactory__factory as ti,SocialLoginSmartAccount__factory as ni,SocialLoginSmartAccount__factory as ri,UniswapV2Router02__factory as ii,VetDomainsRegistry__factory as ai,VetDomainsRegistry__factory as oi,VetDomainsReverseRegistrar__factory as si,VeworldSubdomainClaimer__factory as ci,X2EarnApps__factory as li,XAllocationPool__factory as ui,XAllocationVoting__factory as di}from"@vechain/vechain-contract-types";import{concat as fi,decodeEventLog as pi,defineChain as mi,encodeFunctionData as hi,formatEther as gi,formatUnits as _i,keccak256 as vi,namehash as yi,parseEther as bi,parseUnits as xi,toBytes as Si,zeroAddress as Ci}from"viem";import{z as wi}from"zod";import{WagmiProvider as Ti,createConfig as Ei,http as Di,useAccount as Oi,useConnect as ki,useDisconnect as Ai,useSignMessage as ji,useSignTypedData as Mi}from"wagmi";import{toPrivyWalletConnector as Ni}from"@privy-io/cross-app-connect/rainbow-kit";import{isMobile as Pi}from"react-device-detect";import Fi from"browser-image-compression";import{ProviderInternalBaseWallet as Ii,ThorClient as Li,ThorClient as Ri,VeChainProvider as zi,signerUtils as Bi}from"@vechain/sdk-network";import{FcGoogle as Vi}from"react-icons/fc";import{useForm as Hi}from"react-hook-form";import{ens_normalize as Ui}from"@adraffy/ens-normalize";import{QRCode as Wi}from"react-qrcode-logo";import{FaDiscord as Gi,FaXTwitter as Ki}from"react-icons/fa6";import{SiFarcaster as qi}from"react-icons/si";import{FaApple as Ji,FaDiscord as Yi,FaInstagram as Xi,FaLinkedin as Zi,FaSpotify as Qi,FaTelegram as $i,FaTelegramPlane as ea,FaTiktok as ta,FaWhatsapp as na}from"react-icons/fa";import{CacheProvider as ra,Global as ia,css as aa}from"@emotion/react";import oa from"@emotion/cache";import{cardAnatomy as sa,modalAnatomy as ca,popoverAnatomy as la}from"@chakra-ui/anatomy";import*as ua from"@noble/curves/abstract/utils";var da={" and ":` and `,"'{{policyName}}' on connect":`'{{policyName}}' on connect`,"'{{policyName}}' on {{date}}":`'{{policyName}}' on {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`A .vet domain is required to customize your profile. Choose an account name to get started.`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.`,"A new version is available for your account":`A new version is available for your account`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.`,AVAILABLE:`AVAILABLE`,Accept:`Accept`,"Accept all":`Accept all`,"Accept selected":`Accept selected`,"Access and security":`Access and security`,"Account Upgrade Required":`Account Upgrade Required`,"Account already upgraded":`Account already upgraded`,"Account upgrade required":`Account upgrade required`,Active:`Active`,"Add Login Method":`Add Login Method`,"Add Token":`Add Token`,"Add to shortcuts":`Add to shortcuts`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.`,"Address is required":`Address is required`,All:`All`,"All apps":`All apps`,"All policies you have accepted":`All policies you have accepted`,"All tokens":`All tokens`,"Already have an x2earn app wallet?":`Already have an x2earn app wallet?`,Amount:`Amount`,"Amount is required":`Amount is required`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.`,"An unexpected error occurred.":`An unexpected error occurred.`,Apple:`Apple`,Apply:`Apply`,Archived:`Archived`,"Archived Notifications":`Archived Notifications`,"Are you sure you want to disconnect your wallet?":`Are you sure you want to disconnect your wallet?`,"Are you sure you want to reject the policies and disconnect?":`Are you sure you want to reject the policies and disconnect?`,"Are you sure you want to set your domain name to":`Are you sure you want to set your domain name to`,"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}}?`,"Are you sure you want to unset your current domain?":`Are you sure you want to unset your current domain?`,Assets:`Assets`,At:`At`,"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.`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.`,"Backup your wallet":`Backup your wallet`,"Backup your wallet, configure MFA and set recovery options":`Backup your wallet, configure MFA and set recovery options`,Balance:`Balance`,"Benefits of this upgrade:":`Benefits of this upgrade:`,Best:`Best`,"Better transaction handling":`Better transaction handling`,Bridge:`Bridge`,"By continuing, you agree to":`By continuing, you agree to`,Cancel:`Cancel`,"Choose Name":`Choose Name`,"Choose a name for your account.":`Choose a name for your account.`,"Choose a unique .vet domain name for your account.":`Choose a unique .vet domain name for your account.`,"Choose account name":`Choose account name`,"Choose name":`Choose name`,"Choose which tokens to use for transaction fees when the app is not covering them.":`Choose which tokens to use for transaction fees when the app is not covering them.`,"Choose your account name":`Choose your account name`,"Claim your vet domain!":`Claim your vet domain!`,"Claiming name...":`Claiming name...`,"Clear all":`Clear all`,"Cleared notifications will appear here":`Cleared notifications will appear here`,Click:`Click`,"Click below to access {{ name }} and explore its features.":`Click below to access {{ name }} and explore its features.`,Close:`Close`,"Close and do this later":`Close and do this later`,"Close announcement":`Close announcement`,"Coming Soon!":`Coming Soon!`,"Coming soon":`Coming soon`,Confirm:`Confirm`,"Confirm Changes":`Confirm Changes`,"Confirm Name":`Confirm Name`,"Confirm Unset Domain":`Confirm Unset Domain`,"Confirm the transaction in your wallet to complete it.":`Confirm the transaction in your wallet to complete it.`,"Confirm transaction":`Confirm transaction`,"Connect an external wallet for easier access":`Connect an external wallet for easier access`,"Connect wallet":`Connect wallet`,"Connect with VeWorld wallet":`Connect with VeWorld wallet`,"Connect your Apple account for easier access":`Connect your Apple account for easier access`,"Connect your Discord account for easier access":`Connect your Discord account for easier access`,"Connect your Farcaster account for easier access":`Connect your Farcaster account for easier access`,"Connect your Github account for easier access":`Connect your Github account for easier access`,"Connect your Google account for easier access":`Connect your Google account for easier access`,"Connect your Instagram account for easier access":`Connect your Instagram account for easier access`,"Connect your LinkedIn account for easier access":`Connect your LinkedIn account for easier access`,"Connect your Spotify account for easier access":`Connect your Spotify account for easier access`,"Connect your Telegram account for easier access":`Connect your Telegram account for easier access`,"Connect your Tiktok account for easier access":`Connect your Tiktok account for easier access`,"Connect your Twitter account for easier access":`Connect your Twitter account for easier access`,"Connect your email for easier access":`Connect your email for easier access`,"Connect your phone number for easier access":`Connect your phone number for easier access`,"Connecting to VeChain":`Connecting to VeChain`,"Connecting with":`Connecting with`,"Connecting with Passkey":`Connecting with Passkey`,"Connecting...":`Connecting...`,"Connection Details":`Connection Details`,"Connection Failed":`Connection Failed`,"Connection Type":`Connection Type`,"Connection details":`Connection details`,Continue:`Continue`,"Continue with Github":`Continue with Github`,"Continue with Google":`Continue with Google`,"Cookie Policy":`Cookie Policy`,"Cookie policy outlining the use of cookies and tracking technologies.":`Cookie policy outlining the use of cookies and tracking technologies.`,"Copy your address or scan this QR code":`Copy your address or scan this QR code`,Currency:`Currency`,Current:`Current`,"Current domain":`Current domain`,Customization:`Customization`,Customize:`Customize`,"Customize profile":`Customize profile`,"Customize the appearance of your wallet.":`Customize the appearance of your wallet.`,Description:`Description`,"Description must be less than 100 characters":`Description must be less than 100 characters`,"Didn't get an email?":`Didn't get an email?`,Discord:`Discord`,"Display Name":`Display Name`,"Display name must be less than 25 characters":`Display name must be less than 25 characters`,"Domain set":`Domain set`,"Domain unset":`Domain unset`,Done:`Done`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Drag to reorder. The system will automatically use the highest priority token with sufficient balance.`,Ecosystem:`Ecosystem`,"Eg: DevRel @ ENS Labs":`Eg: DevRel @ ENS Labs`,Email:`Email`,"Email address":`Email address`,"Embedded wallet":`Embedded wallet`,"Enhanced compatibility with dApps":`Enhanced compatibility with dApps`,"Enter confirmation code":`Enter confirmation code`,"Enter your display name":`Enter your display name`,"Enter your name":`Enter your name`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.`,"Existing Custom Tokens":`Existing Custom Tokens`,"Failed to connect with Passkey":`Failed to connect with Passkey`,"Failed to connect with VeChain":`Failed to connect with VeChain`,"Failed to connect with ecosystem app":`Failed to connect with ecosystem app`,"Failed to load App Hub apps":`Failed to load App Hub apps`,Farcaster:`Farcaster`,Fee:`Fee`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.`,"Fee token":`Fee token`,"Filter by category":`Filter by category`,"Finally say goodbye to 0x addresses":`Finally say goodbye to 0x addresses`,"For developers":`For developers`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.`,"Found following rates":`Found following rates`,From:`From`,"Gas Token Preferences":`Gas Token Preferences`,"Gas fee":`Gas fee`,General:`General`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.`,Google:`Google`,Help:`Help`,"How do I backup my wallet?":`How do I backup my wallet?`,"How do I send tokens?":`How do I send tokens?`,"How is my wallet secured?":`How is my wallet secured?`,"I have read and agree to ":`I have read and agree to `,"Ignore and continue":`Ignore and continue`,"Improved security features":`Improved security features`,Instagram:`Instagram`,"Insufficient balance":`Insufficient balance`,"Insufficient balance to claim this domain and cover gas fees.":`Insufficient balance to claim this domain and cover gas fees.`,"Insufficient balance to complete this transaction and cover gas fees.":`Insufficient balance to complete this transaction and cover gas fees.`,"Insufficient balance to complete this transfer and cover gas fees.":`Insufficient balance to complete this transfer and cover gas fees.`,"Insufficient balance to update your profile and cover gas fees.":`Insufficient balance to update your profile and cover gas fees.`,"Insufficient {{symbol}} balance":`Insufficient {{symbol}} balance`,"Invalid address or domain":`Invalid address or domain`,"Invalid contract address":`Invalid contract address`,"Invalid token address":`Invalid token address`,Language:`Language`,"Launch vechain.energy":`Launch vechain.energy`,"Launch {{name}}":`Launch {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.`,"Link Apple Account":`Link Apple Account`,"Link Discord Account":`Link Discord Account`,"Link Email Account":`Link Email Account`,"Link External Wallet":`Link External Wallet`,"Link Farcaster Account":`Link Farcaster Account`,"Link Github Account":`Link Github Account`,"Link Google Account":`Link Google Account`,"Link Instagram Account":`Link Instagram Account`,"Link LinkedIn Account":`Link LinkedIn Account`,"Link Phone Number":`Link Phone Number`,"Link Spotify Account":`Link Spotify Account`,"Link Telegram Account":`Link Telegram Account`,"Link Tiktok Account":`Link Tiktok Account`,"Link Twitter Account":`Link Twitter Account`,LinkedIn:`LinkedIn`,"Loading your domains...":`Loading your domains...`,"Log in or sign up":`Log in or sign up`,"Logged in with":`Logged in with`,Login:`Login`,"Login failed:":`Login failed:`,"Login methods":`Login methods`,"Login methods and Passkeys":`Login methods and Passkeys`,Logout:`Logout`,"Manage Custom Tokens":`Manage Custom Tokens`,"Manage MFA":`Manage MFA`,"Manage Recovery":`Manage Recovery`,"Manage on {{appName}}":`Manage on {{appName}}`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.`,"Manage your login methods and passkeys":`Manage your login methods and passkeys`,"Manage your preferences for currency, language, and appearance.":`Manage your preferences for currency, language, and appearance.`,"Minimum {{symbol}} transfer is {{min}}":`Minimum {{symbol}} transfer is {{min}}`,More:`More`,"Multiclause Transactions Are Now Supported":`Multiclause Transactions Are Now Supported`,"Name must be at least 3 characters long":`Name must be at least 3 characters long`,"Name your account to make it easier to exchange assets":`Name your account to make it easier to exchange assets`,Network:`Network`,New:`New`,"New image selected":`New image selected`,"No additional accounts available to link":`No additional accounts available to link`,"No application from VeChain ecosystem is available to login.":`No application from VeChain ecosystem is available to login.`,"No apps found in this category":`No apps found in this category`,"No archived notifications":`No archived notifications`,"No assets":`No assets`,"No notifications":`No notifications`,"No policies accepted":`No policies accepted`,"No questions found":`No questions found`,"No quotes available":`No quotes available`,"No tokens found":`No tokens found`,"Node URL":`Node URL`,Notifications:`Notifications`,"Only letters, numbers, and hyphens are allowed":`Only letters, numbers, and hyphens are allowed`,Optional:`Optional`,"Other options":`Other options`,Passkey:`Passkey`,"Phone Number":`Phone Number`,"Please approve the request in the connection request window...":`Please approve the request in the connection request window...`,"Please be sure to keep this wallet safe and backed up.":`Please be sure to keep this wallet safe and backed up.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Please check {{email}} for an email from privy.io and enter your code below.`,"Please complete the passkey authentication...":`Please complete the passkey authentication...`,"Please confirm the transaction in your wallet.":`Please confirm the transaction in your wallet.`,"Please enter a valid Twitter handle without @":`Please enter a valid Twitter handle without @`,"Please enter a valid contract address":`Please enter a valid contract address`,"Please enter a valid email address":`Please enter a valid email address`,"Please enter a valid number":`Please enter a valid number`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Please take a moment to review all the policies, with acceptance being mandatory to continue.`,Policy:`Policy`,"Preparing changes...":`Preparing changes...`,"Privacy Policy":`Privacy Policy`,"Privacy policy outlining the data collection and processing practices.":`Privacy policy outlining the data collection and processing practices.`,"Privy Status":`Privy Status`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.`,"Processing transaction...":`Processing transaction...`,Profile:`Profile`,"Profile Image":`Profile Image`,"Profile Picture":`Profile Picture`,"Profile Updated":`Profile Updated`,"Read More":`Read More`,Receive:`Receive`,"Receive tokens":`Receive tokens`,"Reduced gas costs for operations":`Reduced gas costs for operations`,"Reject and logout":`Reject and logout`,Remove:`Remove`,"Remove Login Method":`Remove Login Method`,"Remove from shortcuts":`Remove from shortcuts`,"Remove your current domain name":`Remove your current domain name`,"Resend code":`Resend code`,Retry:`Retry`,"Save Changes":`Save Changes`,"Saving changes...":`Saving changes...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!`,"Search Apps":`Search Apps`,"Search FAQ":`Search FAQ`,"Security preferences":`Security preferences`,"Security settings":`Security settings`,"Select Additional Login Method":`Select Additional Login Method`,"Select Token":`Select Token`,"Select currency":`Select currency`,"Select language":`Select language`,"Select the token to pay the fee with":`Select the token to pay the fee with`,"Select token":`Select token`,Send:`Send`,"Send all":`Send all`,"Sending Transaction...":`Sending Transaction...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Sending to OceanX or other exchanges may result in loss of funds.`,"Sending...":`Sending...`,"Set a domain first":`Set a domain first`,"Set up Passkey":`Set up Passkey`,"Set up a passkey for easier access":`Set up a passkey for easier access`,Settings:`Settings`,"Share on":`Share on`,Shortcuts:`Shortcuts`,"Show Less":`Show Less`,"Show More":`Show More`,"Slippage tolerance":`Slippage tolerance`,"Smart Account":`Smart Account`,"Smart Account detected":`Smart Account detected`,"Something went wrong":`Something went wrong`,"Something went wrong. Please try again.":`Something went wrong. Please try again.`,Source:`Source`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Stay tuned for our upcoming Activity feature`,"Stay tuned for our upcoming NFT feature":`Stay tuned for our upcoming NFT feature`,Submit:`Submit`,Swap:`Swap`,"Swap all":`Swap all`,"Swapping...":`Swapping...`,Telegram:`Telegram`,"Terms and Conditions":`Terms and Conditions`,"Terms and Policies":`Terms and Policies`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.`,"This address only supports VeChain assets.":`This address only supports VeChain assets.`,"This domain is already taken":`This domain is already taken`,"This domain is protected":`This domain is protected`,"This is taking longer than expected.":`This is taking longer than expected.`,"This is your main wallet, created by {{element}} and secured by Privy.":`This is your main wallet, created by {{element}} and secured by Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.`,Tiktok:`Tiktok`,To:`To`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).`,"Token Contract Address":`Token Contract Address`,"Token Priority Order":`Token Priority Order`,"Token already added":`Token already added`,Tools:`Tools`,"Transaction failed":`Transaction failed`,"Transaction failed:":`Transaction failed:`,"Transaction is being processed, it can take up to 15 seconds.":`Transaction is being processed, it can take up to 15 seconds.`,"Transaction successful":`Transaction successful`,"Transaction successful!":`Transaction successful!`,"Try again":`Try again`,"Try searching with a different term":`Try searching with a different term`,Twitter:`Twitter`,"Twitter username":`Twitter username`,"Type the receiver address or domain":`Type the receiver address or domain`,UNAVAILABLE:`UNAVAILABLE`,"Unable to fetch the price":`Unable to fetch the price`,"Unset current domain":`Unset current domain`,"Unsetting current domain...":`Unsetting current domain...`,"Upgrade Smart Account to V3":`Upgrade Smart Account to V3`,"Upgrade Successful!":`Upgrade Successful!`,"Upgrade account":`Upgrade account`,"Upgrading...":`Upgrading...`,"Use social login with VeChain":`Use social login with VeChain`,"Use this token for future transactions":`Use this token for future transactions`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.`,"VeChain Kit":`VeChain Kit`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.`,"VeWorld Wallet":`VeWorld Wallet`,"Vechain Kit Policy":`Vechain Kit Policy`,"View Current Policy":`View Current Policy`,"View on explorer":`View on explorer`,"View transaction on the explorer":`View transaction on the explorer`,"Waiting for confirmation":`Waiting for confirmation`,"Waiting for confirmation...":`Waiting for confirmation...`,"Waiting wallet confirmation...":`Waiting wallet confirmation...`,Wallet:`Wallet`,"Wallet secured by":`Wallet secured by`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using`,Website:`Website`,"Website URL":`Website URL`,"Website URL must start with https://":`Website URL must start with https://`,"What is B3TR?":`What is B3TR?`,"What is Privy?":`What is Privy?`,"What is VET?":`What is VET?`,"What is VTHO?":`What is VTHO?`,"What is VeBetterDAO?":`What is VeBetterDAO?`,"What is VeChain?":`What is VeChain?`,"What is a Smart Account?":`What is a Smart Account?`,"What is a domain name?":`What is a domain name?`,"What is a network?":`What is a network?`,"What is a wallet?":`What is a wallet?`,"What is an x2earn application?":`What is an x2earn application?`,"What is fee delegation?":`What is fee delegation?`,"When you have accepted a policy, it will appear here":`When you have accepted a policy, it will appear here`,"When you have notifications, they will appear here":`When you have notifications, they will appear here`,"YOU OWN THIS":`YOU OWN THIS`,"You accepted current policy on {{date}}":`You accepted current policy on {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.`,"You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`You have an active smart account associated to this wallet. It has been set as your main identity.`,"You may want to try establishing the connection again.":`You may want to try establishing the connection again.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.`,"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.`,"Your address has been successfully set to {{name}}":`Your address has been successfully set to {{name}}`,"Your changes have been saved successfully.":`Your changes have been saved successfully.`,"Your domain has been unset successfully.":`Your domain has been unset successfully.`,"Your embedded wallet":`Your embedded wallet`,"Your existing domains":`Your existing domains`,"Your smart account is already upgraded to this version.":`Your smart account is already upgraded to this version.`,"Your smart account needs to be upgraded to the latest version (v3).":`Your smart account needs to be upgraded to the latest version (v3).`,"Your tokens":`Your tokens`,"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.`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`here`,marketplaces:`Marketplaces`,rate:`rate`,"to learn more about embedded wallets.":`to learn more about embedded wallets.`,unavailable:`unavailable`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},fa={" and ":` und `,"'{{policyName}}' on connect":`'{{policyName}}' bei Verbindung`,"'{{policyName}}' on {{date}}":`'{{policyName}}' am {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>Ihre Privatsphäre ist wichtig.</bold> Sie haben die Kontrolle, akzeptieren Sie optionale Funktionen wie Cookies und Analysen, die uns helfen, Ihr Erlebnis zu verbessern.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Eine .vet-Domain ist erforderlich, um Ihr Profil anzupassen. Wählen Sie einen Kontonamen, um zu beginnen.`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`Ein Smart Account ist eine Smart-Contract-Wallet, die erweiterte Sicherheit und Funktionalität bietet. Sie ermöglicht Funktionen wie soziale Wiederherstellung, Transaktionsbündelung und mehr.`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`Ein Domain-Name ist eine Art Spitzname für Ihre Wallet-Adresse. Er ermöglicht es Ihnen, Ihre Wallet leicht zu identifizieren und mit dApps über einen menschenlesbaren Namen zu interagieren. Zum Beispiel könnte bei einer Wallet-Adresse von 0x1234567890 Ihr Spitzname "alice.vechain" sein.`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`Ein Netzwerk in der Blockchain bezieht sich auf die Umgebung, in der Transaktionen stattfinden. VeChain hat zwei Hauptnetzwerke: Mainnet (das Live-Netzwerk, in dem echte Transaktionen stattfinden) und Testnet (eine Testumgebung für Entwickler). Das Netzwerk, mit dem Sie verbunden sind, wird oben in diesem Modal angezeigt.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Ein neues Upgrade ist für Ihr Smart-Konto verfügbar. Bitte wechseln Sie zum Abschnitt 'Zugang und Sicherheit', um es zu aktualisieren.`,"A new version is available for your account":`Eine neue Version ist für Ihr Konto verfügbar`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`Eine Wallet ist Ihr Zugang zur VeChain-Blockchain. Sie speichert Ihre privaten Schlüssel und ermöglicht es Ihnen, Ihre digitalen Vermögenswerte sicher zu verwalten, Tokens zu senden und zu empfangen und mit dezentralen Anwendungen zu interagieren. Denken Sie daran als Ihr digitales Bankkonto für Blockchain-Transaktionen.`,AVAILABLE:`VERFÜGBAR`,Accept:`Akzeptieren`,"Accept all":`Alle akzeptieren`,"Accept selected":`Auswahl akzeptieren`,"Access and security":`Zugang und Sicherheit`,"Account Upgrade Required":`Kontoupdate erforderlich`,"Account already upgraded":`Konto bereits aktualisiert`,"Account upgrade required":`Kontoupgrade erforderlich`,Active:`Aktiv`,"Add Login Method":`Anmeldemethode hinzufügen`,"Add Token":`Token hinzufügen`,"Add to shortcuts":`Zu den Verknüpfungen hinzufügen`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Das Hinzufügen weiterer verknüpfter Konten erhöht die Sicherheit gegen Verlust des Zugangs, bringt aber auch zusätzliche potenzielle Angriffsvektoren mit sich. Für verbesserte Sicherheit empfehlen wir die Aktivierung von MFA.`,"Address is required":`Adresse ist erforderlich`,All:`Alle`,"All apps":`Alle Apps`,"All policies you have accepted":`Alle akzeptierten Richtlinien`,"All tokens":`Alle Token`,"Already have an x2earn app wallet?":`Haben Sie bereits eine x2earn-App-Wallet?`,Amount:`Betrag`,"Amount is required":`Betrag ist erforderlich`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`Eine X2Earn-Anwendung in VeBetterDAO ist eine nachhaltige App, die Benutzer für umweltfreundliche Aktionen mit B3TR-Token belohnt. Diese Apps müssen B3TR verteilen, Benutzer-Wallets verknüpfen und den Nachweis nachhaltiger Aktionen erbringen. Sie treten VeBetterDAO durch Unterstützung bei und nehmen an wöchentlichen Token-Zuweisungsrunden teil.`,"An unexpected error occurred.":`Ein unerwarteter Fehler ist aufgetreten.`,Apple:`Apple`,Archived:`Archiviert`,"Archived Notifications":`Archivierte Benachrichtigungen`,"Are you sure you want to disconnect your wallet?":`Sind Sie sicher, dass Sie Ihr Wallet trennen möchten?`,"Are you sure you want to reject the policies and disconnect?":`Sind Sie sicher, dass Sie die Richtlinien ablehnen und die Verbindung trennen möchten?`,"Are you sure you want to set your domain name to":`Sind Sie sicher, dass Sie Ihren Domainnamen auf`,"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üpft ist, trennen möchten?`,"Are you sure you want to unset your current domain?":`Sind Sie sicher, dass Sie Ihre aktuelle Domain aufheben möchten?`,Assets:`Vermögenswerte`,At:`Am`,"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öchentlich über 12 Jahre hinweg ausgegeben werden. B3TR wird für Belohnungen, Governance und die Unterstützung von VOT3-Token im Verhältnis 1:1 verwendet. Es unterstützt Nachhaltigkeitsanwendungen und das Verwaltung der DAO-Kasse.`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`Das Sichern Ihres Wallets ist entscheidend, da Sie der Einzige mit Zugriff auf Ihre privaten Schlüssel sind. Wenn etwas schiefgeht, ist Ihr privater Schlüssel der einzige Weg, um Ihre Vermögenswerte wiederherzustellen. Die Art der Sicherung hängt davon ab, wie Sie auf Ihr Wallet zugreifen: Wenn Sie VeWorld verwenden, ist die Sicherungsoption in der App verfügbar. Für Benutzer mit sozialem Login finden Sie Sicherungsoptionen im Wallet-Bereich. Wenn Sie über VeChain oder eine andere Ecosystem-App verbunden sind, müssen Sie die ursprüngliche Website besuchen, sich anmelden und dort auf den Wallet-Bereich zugreifen.`,"Backup your wallet":`Sichern Sie Ihr Wallet`,"Backup your wallet, configure MFA and set recovery options":`Sichern Sie Ihre Wallet, konfigurieren Sie MFA und legen Sie Wiederherstellungsoptionen fest`,Balance:`Guthaben`,"Benefits of this upgrade:":`Vorteile dieses Upgrades:`,Best:`Beste`,"Better transaction handling":`Bessere Transaktionsabwicklung`,Bridge:`Brücke`,"By continuing, you agree to":`Indem Sie fortfahren, stimmen Sie zu`,Cancel:`Abbrechen`,"Choose Name":`Namen wählen`,"Choose a name for your account.":`Wählen Sie einen Namen für Ihr Konto.`,"Choose a unique .vet domain name for your account.":`Wählen Sie einen eindeutigen .vet-Domainnamen für Ihr Konto.`,"Choose account name":`Kontonamen wählen`,"Choose name":`Namen wählen`,"Choose your account name":`Wählen Sie Ihren Kontonamen`,"Claim your vet domain!":`Beanspruchen Sie Ihre Vet-Domain!`,"Claiming name...":`Name wird beansprucht...`,"Clear all":`Alle löschen`,"Cleared notifications will appear here":`Gelöschte Benachrichtigungen werden hier angezeigt`,Click:`Klicken`,"Click below to access {{ name }} and explore its features.":`Klicken Sie unten, um auf {{ name }} zuzugreifen und dessen Funktionen zu erkunden.`,Close:`Schließen`,"Close and do this later":`Schließen und später erledigen`,"Close announcement":`Ankündigung schließen`,"Coming Soon!":`Kommt bald!`,"Coming soon":`Demnächst`,Confirm:`Bestätigen`,"Confirm Changes":`Änderungen bestätigen`,"Confirm Name":`Name bestätigen`,"Confirm Unset Domain":`Löschung der Domain bestätigen`,"Confirm the transaction in your wallet to complete it.":`Bestätigen Sie die Transaktion in Ihrer Wallet, um sie abzuschließen.`,"Confirm transaction":`Transaktion bestätigen`,"Connect an external wallet for easier access":`Verbinden Sie eine externe Wallet für einfacheren Zugang`,"Connect wallet":`Wallet verbinden`,"Connect with VeWorld wallet":`Mit VeWorld Wallet verbinden`,"Connect your Apple account for easier access":`Verbinden Sie Ihr Apple-Konto für einfacheren Zugriff`,"Connect your Discord account for easier access":`Verbinden Sie Ihr Discord-Konto für einen einfacheren Zugriff`,"Connect your Farcaster account for easier access":`Verbinden Sie Ihr Farcaster-Konto für einfacheren Zugriff`,"Connect your Github account for easier access":`Verbinden Sie Ihr Github-Konto für einfacheren Zugriff`,"Connect your Google account for easier access":`Verbinden Sie Ihr Google-Konto für einfacheren Zugriff`,"Connect your Instagram account for easier access":`Verbinden Sie Ihr Instagram-Konto für einfacheren Zugriff`,"Connect your LinkedIn account for easier access":`Verbinden Sie Ihr LinkedIn-Konto für einfacheren Zugriff`,"Connect your Spotify account for easier access":`Verbinden Sie Ihr Spotify-Konto für einfacheren Zugriff`,"Connect your Telegram account for easier access":`Verbinden Sie Ihr Telegram-Konto für einfacheren Zugriff`,"Connect your Tiktok account for easier access":`Verbinden Sie Ihr Tiktok-Konto für einfacheren Zugriff`,"Connect your Twitter account for easier access":`Verbinden Sie Ihr Twitter-Konto für einfacheren Zugriff`,"Connect your email for easier access":`Verbinden Sie Ihre E-Mail für einfacheren Zugriff`,"Connect your phone number for easier access":`Verbinden Sie Ihre Telefonnummer für einfacheren Zugriff`,"Connecting to VeChain":`Verbindung zu VeChain wird hergestellt`,"Connecting with":`Verbinden mit`,"Connecting with Passkey":`Verbinden mit Passkey`,"Connecting...":`Verbinden...`,"Connection Details":`Verbindungsdetails`,"Connection Failed":`Verbindung fehlgeschlagen`,"Connection Type":`Verbindungstyp`,"Connection details":`Verbindungsdetails`,Continue:`Fortfahren`,"Continue with Github":`Weiter mit Github`,"Continue with Google":`Mit Google fortfahren`,"Cookie Policy":`Cookie-Richtlinie`,"Cookie policy outlining the use of cookies and tracking technologies.":`Cookie-Richtlinie, die die Verwendung von Cookies und Tracking-Technologien beschreibt.`,"Copy your address or scan this QR code":`Kopieren Sie Ihre Adresse oder scannen Sie diesen QR-Code`,Currency:`Währung`,Current:`Aktuell`,"Current domain":`Aktuelle Domain`,Customization:`Anpassung`,Customize:`Anpassen`,"Customize profile":`Profil anpassen`,"Customize the appearance of your wallet.":`Passen Sie das Erscheinungsbild Ihrer Geldbörse an.`,Description:`Beschreibung`,"Description must be less than 100 characters":`Die Beschreibung muss weniger als 100 Zeichen umfassen`,"Didn't get an email?":`Keine E-Mail erhalten?`,Discord:`Discord`,"Display Name":`Anzeigename`,"Display name must be less than 25 characters":`Der Anzeigename muss weniger als 25 Zeichen umfassen`,"Domain set":`Domain eingerichtet`,"Domain unset":`Domain aufgehoben`,Done:`Fertig`,Ecosystem:`Ökosystem`,"Eg: DevRel @ ENS Labs":`Z.B.: DevRel @ ENS Labs`,Email:`E-Mail`,"Email address":`E-Mail-Adresse`,"Embedded wallet":`Eingebettetes Wallet`,"Enhanced compatibility with dApps":`Erhöhte Kompatibilität mit dApps`,"Enter confirmation code":`Bestätigungscode eingeben`,"Enter your display name":`Geben Sie Ihren Anzeigenamen ein`,"Enter your name":`Geben Sie Ihren Namen ein`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`Tauschen Sie Ihre digitalen Assets einfach und sicher zwischen VeChain und anderen Blockchain-Netzwerken aus. Swaps werden über Partner durchgeführt, die sowohl dezentrale als auch zentrale Börsen nutzen, um Token zu konvertieren.`,"Existing Custom Tokens":`Vorhandene benutzerdefinierte Tokens`,"Failed to connect with Passkey":`Verbindung mit Passkey fehlgeschlagen`,"Failed to connect with VeChain":`Verbindung mit VeChain fehlgeschlagen`,"Failed to connect with ecosystem app":`Verbindung mit der Ökosystem-App fehlgeschlagen`,"Failed to load App Hub apps":`Fehler beim Laden der App Hub-Apps`,Farcaster:`Farcaster`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`Fee Delegation ist ein einzigartiges Merkmal von VeChain, das es jemand anderem (einem Delegator) ermöglicht, Ihre Transaktionsgebühren zu bezahlen. Während viele dApps und Dienstanbieter als Delegatoren fungieren, um neuen Benutzern den Einstieg zu erleichtern, können bei einigen Transaktionen dennoch Gebühren anfallen, die Sie mit Ihrem eigenen VTHO bezahlen müssen. Gebühren sind notwendig, um Netzwerkmissbrauch zu verhindern und die Knoten zu entschädigen, die Transaktionen in der Blockchain verarbeiten und validieren. Wenn Sie die Gebühren selbst bezahlen, können Sie VTHO aus Ihren Vermögenswerten auswählen, um die Transaktionskosten zu decken.`,"Filter by category":`Nach Kategorie filtern`,"Finally say goodbye to 0x addresses":`Sagen Sie endlich 0x-Adressen auf Wiedersehen`,"For developers":`Für Entwickler`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Aus Sicherheitsgründen können Sie die Einstellungen Ihrer eingebetteten Wallet nur auf der {{appName}} Plattform verwalten.`,"Found following rates":`Folgende Kurse gefunden`,From:`Von`,"Gas fee":`Gasgebühr`,General:`Allgemein`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`Gute Neuigkeiten! Multiclause-Transaktionen werden jetzt vollständig für Smart-Accounts unterstützt. Sie können jetzt von einer besseren Benutzererfahrung, niedrigeren Gaskosten und erhöhter Sicherheit profitieren.`,Google:`Google`,Help:`Hilfe`,"How do I backup my wallet?":`Wie sichere ich meine Brieftasche?`,"How do I send tokens?":`Wie sende ich Tokens?`,"How is my wallet secured?":`Wie ist meine Brieftasche gesichert?`,"I have read and agree to ":`Ich habe gelesen und stimme zu `,"Ignore and continue":`Ignorieren und fortfahren`,"Improved security features":`Verbesserte Sicherheitsfunktionen`,Instagram:`Instagram`,"Insufficient {{symbol}} balance":`Unzureichendes {{symbol}} Guthaben`,"Invalid address or domain":`Ungültige Adresse oder Domain`,"Invalid contract address":`Ungültige Vertragsadresse`,"Invalid token address":`Ungültige Token-Adresse`,Language:`Sprache`,"Launch vechain.energy":`Starte vechain.energy`,"Launch {{name}}":`Starte {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Rechtsvereinbarung zwischen Ihnen, Vechain Kit und der aktuellen App, die die Regeln für die Nutzung von Wallet-Diensten beschreibt.`,"Link Apple Account":`Apple-Konto verknüpfen`,"Link Discord Account":`Discord-Konto verknüpfen`,"Link Email Account":`E-Mail-Konto verknüpfen`,"Link External Wallet":`Externe Brieftasche verknüpfen`,"Link Farcaster Account":`Farcaster-Konto verknüpfen`,"Link Github Account":`Github-Konto verknüpfen`,"Link Google Account":`Google-Konto verknüpfen`,"Link Instagram Account":`Instagram-Konto verknüpfen`,"Link LinkedIn Account":`LinkedIn-Konto verknüpfen`,"Link Phone Number":`Telefonnummer verknüpfen`,"Link Spotify Account":`Spotify-Konto verknüpfen`,"Link Telegram Account":`Telegram-Konto verknüpfen`,"Link Tiktok Account":`Tiktok-Konto verknüpfen`,"Link Twitter Account":`Twitter-Konto verknüpfen`,LinkedIn:`LinkedIn`,"Loading your domains...":`Ihre Domains werden geladen...`,"Log in or sign up":`Einloggen oder anmelden`,"Logged in with":`Angemeldet mit`,Login:`Einloggen`,"Login failed:":`Anmeldung fehlgeschlagen:`,"Login methods":`Anmeldemethoden`,"Login methods and Passkeys":`Anmeldeverfahren und Zugangsschlüssel`,Logout:`Ausloggen`,"Manage Custom Tokens":`Benutzerdefinierte Token verwalten`,"Manage MFA":`MFA verwalten`,"Manage Recovery":`Wiederherstellung verwalten`,"Manage on {{appName}}":`Verwalten auf {{appName}}`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`Verwalten Sie die Sicherheitseinstellungen Ihrer eingebetteten Wallet: Verwalten Sie Ihre Anmeldemethoden, fügen Sie einen Zugangsschlüssel hinzu oder sichern Sie Ihre Wallet, um nie den Zugriff auf Ihre Assets zu verlieren.`,"Manage your login methods and passkeys":`Verwalten Sie Ihre Anmeldemethoden und Zugangsschlüssel`,"Manage your preferences for currency, language, and appearance.":`Verwalten Sie Ihre Einstellungen für Währung, Sprache und Erscheinungsbild.`,"Minimum {{symbol}} transfer is {{min}}":`Die Mindestübertragung von {{symbol}} beträgt {{min}}`,More:`Mehr`,"Multiclause Transactions Are Now Supported":`Multiclause-Transaktionen werden jetzt unterstützt`,"Name must be at least 3 characters long":`Der Name muss mindestens 3 Zeichen lang sein`,"Name your account to make it easier to exchange assets":`Geben Sie Ihrem Konto einen Namen, um den Austausch von Vermögenswerten zu erleichtern`,Network:`Netzwerk`,New:`Neu`,"New image selected":`Neues Bild ausgewählt`,"No additional accounts available to link":`Keine zusätzlichen Konten zum Verknüpfen verfügbar`,"No application from VeChain ecosystem is available to login.":`Keine Anwendung aus dem VeChain-Ökosystem ist zur Anmeldung verfügbar.`,"No apps found in this category":`Keine Apps in dieser Kategorie gefunden`,"No archived notifications":`Keine archivierten Benachrichtigungen`,"No assets":`Keine Vermögenswerte`,"No notifications":`Keine Benachrichtigungen`,"No policies accepted":`Keine akzeptierten Richtlinien`,"No questions found":`Keine Fragen gefunden`,"No quotes available":`Keine Angebote verfügbar`,"No tokens found":`Keine Token gefunden`,"Node URL":`Knoten-URL`,Notifications:`Benachrichtigungen`,"Only letters, numbers, and hyphens are allowed":`Es sind nur Buchstaben, Zahlen und Bindestriche erlaubt`,Optional:`Optional`,"Other options":`Weitere Optionen`,Passkey:`Passwort`,"Phone Number":`Telefonnummer`,"Please approve the request in the connection request window...":`Bitte genehmigen Sie die Anfrage im Verbindungsanfragefenster...`,"Please be sure to keep this wallet safe and backed up.":`Bitte stellen Sie sicher, dass diese Brieftasche sicher und gesichert aufbewahrt wird.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Bitte überprüfen Sie {{email}} auf eine E-Mail von privy.io und geben Sie Ihren Code unten ein.`,"Please complete the passkey authentication...":`Bitte schließen Sie die Passworthauthentifizierung ab...`,"Please confirm the transaction in your wallet.":`Bitte bestätigen Sie die Transaktion in Ihrem Wallet.`,"Please enter a valid Twitter handle without @":`Bitte geben Sie einen gültigen Twitter-Handle ohne @ ein`,"Please enter a valid contract address":`Bitte geben Sie eine gültige Vertragsadresse ein`,"Please enter a valid email address":`Bitte geben Sie eine gültige E-Mail-Adresse ein`,"Please enter a valid number":`Bitte geben Sie eine gültige Nummer ein`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Bitte nehmen Sie sich einen Moment Zeit, um alle Richtlinien zu überprüfen. Die Annahme ist zwingend erforderlich, um fortzufahren.`,Policy:`Richtlinie`,"Preparing changes...":`Änderungen werden vorbereitet...`,"Privacy Policy":`Datenschutzrichtlinie`,"Privacy policy outlining the data collection and processing practices.":`Datenschutzrichtlinie, die die Praktiken zur Datenerfassung und -verarbeitung umreißt.`,"Privy Status":`Privy Status`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy entwickelt Infrastruktur für die Benutzeranmeldung und eingebettete Wallets, um bessere Produkte auf Krypto-Basis zu ermöglichen. Das bedeutet, dass die Kontrolle über Vermögenswerte direkt in die Anwendungen eingebettet wird, um es Benutzern, Unternehmen oder Maschinen zu ermöglichen, digitale Vermögenswerte durch nahtlose Produkterfahrungen zu nutzen.`,"Processing transaction...":`Transaktion wird verarbeitet...`,Profile:`Profil`,"Profile Image":`Profilbild`,"Profile Picture":`Profilbild`,"Profile Updated":`Profil aktualisiert`,"Read More":`Read More`,Receive:`Empfangen`,"Receive tokens":`Token empfangen`,"Reduced gas costs for operations":`Reduzierte Gaskosten für Operationen`,"Reject and logout":`Ablehnen und abmelden`,Remove:`Entfernen`,"Remove Login Method":`Anmeldemethode entfernen`,"Remove from shortcuts":`Aus den Verknüpfungen entfernen`,"Remove your current domain name":`Entfernen Sie Ihren aktuellen Domainnamen`,"Resend code":`Code erneut senden`,Retry:`Erneut versuchen`,"Save Changes":`Änderungen speichern`,"Saving changes...":`Änderungen werden gespeichert...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Verabschieden Sie sich von 0x-Adressen, beanspruchen Sie Ihre .veworld.vet-Subdomain jetzt kostenlos!`,"Search Apps":`Apps durchsuchen`,"Search FAQ":`FAQ durchsuchen`,"Security preferences":`Sicherheitseinstellungen`,"Security settings":`Sicherheitseinstellungen`,"Select Additional Login Method":`Zusätzliche Anmeldemethode auswählen`,"Select Token":`Token auswählen`,"Select currency":`Währung auswählen`,"Select language":`Sprache auswählen`,"Select token":`Token auswählen`,Send:`Senden`,"Send all":`Alle senden`,"Sending Transaction...":`Transaktion wird gesendet...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Das Senden an OceanX oder andere Börsen kann zu einem Verlust von Geldern führen.`,"Sending...":`Senden...`,"Set a domain first":`Legen Sie zuerst eine Domain fest`,"Set up Passkey":`Passkey einrichten`,"Set up a passkey for easier access":`Richten Sie einen Passkey für einfacheren Zugriff ein`,Settings:`Einstellungen`,"Share on":`Teilen auf`,Shortcuts:`Kurzbefehle`,"Show Less":`Show Less`,"Show More":`Mehr anzeigen`,"Slippage tolerance":`Slippage-Toleranz`,"Smart Account":`Smartes Konto`,"Smart Account detected":`Smart-Konto erkannt`,"Something went wrong":`Etwas ist schiefgelaufen`,"Something went wrong. Please try again.":`Etwas ist schiefgelaufen. Bitte versuchen Sie es erneut.`,Source:`Quelle`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Bleiben Sie dran für unser kommendes Aktivitäts-Feature`,"Stay tuned for our upcoming NFT feature":`Bleiben Sie dran für unser kommendes NFT-Feature`,Submit:`Absenden`,Swap:`Tauschen`,"Swap all":`Alle tauschen`,"Swapping...":`Tauschen...`,Telegram:`Telegram`,"Terms and Conditions":`Allgemeine Geschäftsbedingungen`,"Terms and Policies":`Bedingungen und Richtlinien`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Diese Konten sind mit Ihrem eingebetteten Wallet verknüpft und können verwendet werden, um sich in Ihrem Wallet anzumelden und auf Ihren private Schlüssel zuzugreifen.`,"This address only supports VeChain assets.":`Diese Adresse unterstützt nur VeChain-Vermögenswerte.`,"This domain is already taken":`Diese Domain ist bereits vergeben`,"This domain is protected":`Diese Domain ist geschützt`,"This is taking longer than expected.":`Dies dauert länger als erwartet.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Dies ist Ihre Hauptbrieftasche, erstellt von {{element}} und gesichert durch Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Dieses Wallet ist der Besitzer Ihres Smart-Accounts, der als Ihre Identität und als Tor für Ihre Blockchain-Interaktionen verwendet wird.`,Tiktok:`Tiktok`,To:`Zu`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Um weiterhin mit der VeChain-Blockchain zu interagieren und Ihre Operation abzuschließen, muss Ihr Smart Account auf die neueste Version (v3) aktualisiert werden.`,"Token Contract Address":`Token-Vertragsadresse`,"Token already added":`Token bereits hinzugefügt`,Tools:`Werkzeuge`,"Transaction failed":`Transaktion fehlgeschlagen`,"Transaction failed:":`Transaktion fehlgeschlagen:`,"Transaction is being processed, it can take up to 15 seconds.":`Die Transaktion wird bearbeitet, es kann bis zu 15 Sekunden dauern.`,"Transaction successful":`Transaktion erfolgreich`,"Transaction successful!":`Transaktion erfolgreich!`,"Try again":`Erneut versuchen`,"Try searching with a different term":`Versuchen Sie, mit einem anderen Begriff zu suchen`,Twitter:`Twitter`,"Twitter username":`Twitter-Benutzername`,"Type the receiver address or domain":`Geben Sie die Empfängeradresse oder Domain ein`,UNAVAILABLE:`NICHT VERFÜGBAR`,"Unable to fetch the price":`Preis konnte nicht abgerufen werden`,"Unset current domain":`Aktuelle Domain aufheben`,"Unsetting current domain...":`Aktuelle Domain wird aufgehoben...`,"Upgrade Smart Account to V3":`Smart Account auf V3 upgraden`,"Upgrade Successful!":`Upgrade erfolgreich!`,"Upgrade account":`Account upgraden`,"Upgrading...":`Aktualisierung...`,"Use social login with VeChain":`Soziale Anmeldung mit VeChain verwenden`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VET ist die primäre Kryptowährung des VeChain-Netzwerks. Es repräsentiert Wert und Eigentum im VeChain-Ökosystem, ähnlich wie Aktien Eigentum in einem Unternehmen darstellen. Das Halten von VET generiert automatisch VTHO, das benötigt wird, um Transaktionen im Netzwerk zu bezahlen.`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO (VeThor) ist der Energie- oder 'Gas'-Token des VeChain-Netzwerks. Es wird verwendet, um Transaktionsgebühren bei der Interaktion mit der Blockchain zu zahlen. VTHO wird automatisch durch das Halten von VET-Tokens erzeugt und schafft ein Zwei-Token-System, das zur Aufrechterhaltung der Netzwerkstabilität und zur Verwaltung der Transaktionskosten beiträgt.`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO ist eine dezentrale Organisation auf der VeChain-Blockchain, die sich auf Nachhaltigkeit konzentriert. Mitglieder beteiligen sich an der Governance des DAO, indem sie B3TR-Tokens für Belohnungen und VOT3 für Abstimmungen bei Vorschlägen und wöchentlichen Token-Zuteilungsrunden nutzen.`,"VeChain Kit":`VeChain Kit`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`VeChain, mit Hauptsitz in San Marino, Europa, ist ein wegweisendes Blockchain-Ökosystem und Schöpfer von VeChainThor, einer erstklassigen Smart-Contract-Plattform, die die reale Akzeptanz von Blockchain vorantreibt. Gegründet im Jahr 2015 von Sunny Lu, hat sich VeChain kontinuierlich dafür eingesetzt, eine transparente, effiziente, skalierbare und anpassungsfähige Blockchain-Lösung zu liefern.`,"VeWorld Wallet":`VeWorld Wallet`,"Vechain Kit Policy":`Vechain Kit-Richtlinie`,"View Current Policy":`Aktuelle Richtlinie anzeigen`,"View on explorer":`Im Explorer ansehen`,"View transaction on the explorer":`Transaktion im Explorer ansehen`,"Waiting for confirmation":`Warten auf Bestätigung`,"Waiting for confirmation...":`Warten auf Bestätigung...`,"Waiting wallet confirmation...":`Warten auf Bestätigung der Wallet...`,Wallet:`Wallet`,"Wallet secured by":`Wallet gesichert durch`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`Wir empfehlen dringend, deinen privaten Schlüssel zu exportieren, um dein Wallet zu sichern. Dies stellt sicher, dass du es bei Bedarf wiederherstellen oder in Eigenverwahrung übertragen kannst, indem du`,Website:`Webseite`,"Website URL":`Webseiten-URL`,"Website URL must start with https://":`Webseiten-URL muss mit https:// beginnen`,"What is B3TR?":`Was ist B3TR?`,"What is Privy?":`Was ist Privy?`,"What is VET?":`Was ist VET?`,"What is VTHO?":`Was ist VTHO?`,"What is VeBetterDAO?":`Was ist VeBetterDAO?`,"What is VeChain?":`Was ist VeChain?`,"What is a Smart Account?":`Was ist ein Smart Account?`,"What is a domain name?":`Was ist ein Domainname?`,"What is a network?":`Was ist ein Netzwerk?`,"What is a wallet?":`Was ist eine Wallet?`,"What is an x2earn application?":`Was ist eine x2earn-Anwendung?`,"What is fee delegation?":`Was ist Gebührendelegation?`,"When you have accepted a policy, it will appear here":`Wenn Sie eine Richtlinie akzeptiert haben, wird sie hier angezeigt`,"When you have notifications, they will appear here":`Wenn Sie Benachrichtigungen haben, werden sie hier angezeigt`,"YOU OWN THIS":`DAS GEHÖRT IHNEN`,"You accepted current policy on {{date}}":`Sie haben die aktuelle Richtlinie am {{date}} akzeptiert`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Sie verwenden ein eingebettetes Wallet, das durch Ihre soziale Anmeldemethode gesichert ist und ein nahtloses VeChain-Erlebnis bietet.`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`Sie können Tokens senden, indem Sie das Senden-Symbol im Bereich Schnelle Aktionen anklicken. Geben Sie die Adresse oder den VeChain-Domainnamen des Empfängers ein, wählen Sie das Token aus und geben Sie den Betrag an, den Sie senden möchten.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Sie haben ein aktives Smart-Konto, das mit dieser Wallet verbunden ist. Es wurde als Ihre Hauptidentität festgelegt.`,"You may want to try establishing the connection again.":`Sie sollten möglicherweise versuchen, die Verbindung erneut herzustellen.`,"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önnen nun eine bessere Benutzererfahrung, niedrigere Gaskosten und erhöhte Sicherheit genießen.`,"Your address has been successfully set to {{name}}":`Ihre Adresse wurde erfolgreich auf {{name}} gesetzt`,"Your changes have been saved successfully.":`Ihre Änderungen wurden erfolgreich gespeichert.`,"Your domain has been unset successfully.":`Ihre Domain wurde erfolgreich aufgehoben.`,"Your embedded wallet":`Ihr eingebettetes Portemonnaie`,"Your existing domains":`Ihre vorhandenen Domains`,"Your smart account is already upgraded to this version.":`Ihr Smart-Konto ist bereits auf diese Version aktualisiert.`,"Your smart account needs to be upgraded to the latest version (v3).":`Ihr Smart-Konto muss auf die neueste Version (v3) aktualisiert werden.`,"Your tokens":`Ihre Token`,"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ängt davon ab, wie Sie darauf zugreifen. Mit Selbstverwaltungsoptionen wie der VeWorld-Erweiterung, der mobilen App oder einer Hardware-Wallet haben Sie die vollständige Kontrolle über Ihre privaten Schlüssel. Diese Erweiterung selbst hat keinen Zugriff auf Ihre privaten Schlüssel. 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ährleistet.`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`hier`,marketplaces:`Marketplaces`,rate:`Kurs`,"to learn more about embedded wallets.":`um mehr über eingebettete Wallets zu erfahren.`,unavailable:`nicht verfügbar`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},pa={" and ":` e `,"'{{policyName}}' on connect":`'{{policyName}}' su connessione`,"'{{policyName}}' on {{date}}":`'{{policyName}}' il {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>La tua privacy è importante.</bold> Hai il controllo, accetta per abilitare funzionalità opzionali come cookie e analisi che ci aiutano a migliorare la tua esperienza.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`È richiesto un dominio .vet per personalizzare il tuo profilo. Scegli un nome per l'account per iniziare.`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`Un Smart Account è un portafoglio smart contract che offre una maggiore sicurezza e funzionalità. Permette caratteristiche come il recupero sociale, il raggruppamento delle transazioni e altro ancora.`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`Un nome di dominio è una sorta di soprannome per il tuo indirizzo del portafoglio. Ti consente di identificare facilmente il tuo portafoglio e interagire con le dApp utilizzando un nome leggibile dall'uomo. Ad esempio, se il tuo indirizzo del portafoglio è 0x1234567890, il tuo soprannome potrebbe essere "alice.vechain".`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`Una rete nella blockchain si riferisce all'ambiente in cui avvengono le transazioni. VeChain ha due reti principali: Mainnet (la rete live dove avvengono le transazioni reali) e Testnet (un ambiente di test per gli sviluppatori). La rete a cui sei connesso è visualizzata nella parte superiore di questo modulo.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Un nuovo aggiornamento è disponibile per il tuo account intelligente. Vai alla sezione 'Accesso e Sicurezza' per aggiornarlo.`,"A new version is available for your account":`Una nuova versione è disponibile per il tuo account`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`Un portafoglio è il tuo gateway alla blockchain di VeChain. Conserva le tue chiavi private e ti permette di gestire in modo sicuro i tuoi asset digitali, inviare e ricevere token, e interagire con applicazioni decentralizzate. Pensalo come il tuo conto bancario digitale per le transazioni blockchain.`,AVAILABLE:`DISPONIBILE`,Accept:`Accetta`,"Accept all":`Accetta tutto`,"Accept selected":`Accetta selezionati`,"Access and security":`Accesso e sicurezza`,"Account Upgrade Required":`Aggiornamento dell'account richiesto`,"Account already upgraded":`Account già aggiornato`,"Account upgrade required":`Aggiornamento dell'account richiesto`,Active:`Attivo`,"Add Login Method":`Aggiungi metodo di accesso`,"Add Token":`Aggiungi Token`,"Add to shortcuts":`Aggiungi ai collegamenti`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Aggiungere più account collegati aumenta la sicurezza contro la perdita di accesso, ma introduce anche ulteriori potenziali vettori di attacco. Per una maggiore sicurezza, raccomandiamo di abilitare l'MFA.`,"Address is required":`L'indirizzo è richiesto`,All:`Tutti`,"All apps":`Tutte le app`,"All policies you have accepted":`Tutte le politiche che hai accettato`,"All tokens":`Tutti i token`,"Already have an x2earn app wallet?":`Hai già un portafoglio x2earn app?`,Amount:`Importo`,"Amount is required":`È richiesto l'importo`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`Un'applicazione X2Earn in VeBetterDAO è un'app sostenibile che premia gli utenti con token B3TR per azioni ecologiche. Queste app devono distribuire B3TR, collegare i portafogli degli utenti e fornire la prova delle azioni sostenibili. Si uniscono a VeBetterDAO tramite sponsorizzazione e partecipano a turni settimanali di allocazione dei token.`,"An unexpected error occurred.":`Si è verificato un errore inaspettato.`,Apple:`Apple`,Archived:`Archiviato`,"Archived Notifications":`Notifiche archiviate`,"Are you sure you want to disconnect your wallet?":`Sei sicuro di voler disconnettere il tuo portafoglio?`,"Are you sure you want to reject the policies and disconnect?":`Sei sicuro di voler rifiutare le politiche e disconnetterti?`,"Are you sure you want to set your domain name to":`Sei sicuro di voler impostare il tuo nome di dominio su`,"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}}?`,"Are you sure you want to unset your current domain?":`Sei sicuro di voler rimuovere il tuo attuale dominio?`,Assets:`Risorse`,At:`Alle`,"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 è 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à e gestione del tesoro del DAO.`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`Fare il backup del tuo portafoglio è fondamentale poiché sei l'unico ad avere accesso alle tue chiavi private. Se qualcosa va storto, avere la tua chiave privata è l'unico modo per recuperare i tuoi beni. Come fare il backup dipende da come accedi al tuo portafoglio: se usi VeWorld, l'opzione di backup è disponibile all'interno dell'app. Per gli utenti con accesso tramite login sociale, puoi trovare opzioni di backup nella sezione Portafoglio. Se sei connesso tramite VeChain o un'altra app dell'ecosistema, dovrai visitare il sito originale, accedere e raggiungere la sezione Portafoglio da lì.`,"Backup your wallet":`Esegui il backup del tuo portafoglio`,"Backup your wallet, configure MFA and set recovery options":`Esegui il backup del tuo portafoglio, configura MFA e imposta le opzioni di recupero`,Balance:`Saldo`,"Benefits of this upgrade:":`Vantaggi di questo aggiornamento:`,Best:`Migliore`,"Better transaction handling":`Gestione migliore delle transazioni`,Bridge:`Ponte`,"By continuing, you agree to":`Continuando, accetti di`,Cancel:`Annulla`,"Choose Name":`Scegli Nome`,"Choose a name for your account.":`Scegli un nome per il tuo account.`,"Choose a unique .vet domain name for your account.":`Scegli un nome di dominio .vet unico per il tuo account.`,"Choose account name":`Scegli nome account`,"Choose name":`Scegli nome`,"Choose your account name":`Scegli il nome del tuo account`,"Claim your vet domain!":`Richiedi il tuo dominio vet!`,"Claiming name...":`Reclamo del nome in corso...`,"Clear all":`Cancella tutto`,"Cleared notifications will appear here":`Le notifiche cancellate appariranno qui`,Click:`Clicca`,"Click below to access {{ name }} and explore its features.":`Clicca qui sotto per accedere a {{ name }} ed esplorarne le funzionalità.`,Close:`Chiudi`,"Close and do this later":`Chiudi e fallo più tardi`,"Close announcement":`Chiudi annuncio`,"Coming Soon!":`Prossimamente!`,"Coming soon":`Prossimamente`,Confirm:`Conferma`,"Confirm Changes":`Conferma Modifiche`,"Confirm Name":`Conferma Nome`,"Confirm Unset Domain":`Conferma Rimozione Dominio`,"Confirm the transaction in your wallet to complete it.":`Conferma la transazione nel tuo portafoglio per completarla.`,"Confirm transaction":`Conferma transazione`,"Connect an external wallet for easier access":`Collega un portafoglio esterno per un accesso più semplice`,"Connect wallet":`Connetti portafoglio`,"Connect with VeWorld wallet":`Connettiti con il portafoglio VeWorld`,"Connect your Apple account for easier access":`Collega il tuo account Apple per un accesso più facile`,"Connect your Discord account for easier access":`Collega il tuo account Discord per accedere più facilmente`,"Connect your Farcaster account for easier access":`Collega il tuo account Farcaster per un accesso più facile`,"Connect your Github account for easier access":`Collega il tuo account Github per un accesso più facile`,"Connect your Google account for easier access":`Collega il tuo account Google per un accesso più facile`,"Connect your Instagram account for easier access":`Collega il tuo account Instagram per un accesso più facile`,"Connect your LinkedIn account for easier access":`Collega il tuo account LinkedIn per un accesso più facile`,"Connect your Spotify account for easier access":`Collega il tuo account Spotify per un accesso più facile`,"Connect your Telegram account for easier access":`Collega il tuo account Telegram per un accesso più facile`,"Connect your Tiktok account for easier access":`Collega il tuo account Tiktok per un accesso più facile`,"Connect your Twitter account for easier access":`Collega il tuo account Twitter per un accesso più facile`,"Connect your email for easier access":`Collega la tua email per un accesso più facile`,"Connect your phone number for easier access":`Collega il tuo numero di telefono per un accesso più facile`,"Connecting to VeChain":`Connessione a VeChain`,"Connecting with":`Collegamento con`,"Connecting with Passkey":`Collegamento con Passkey`,"Connecting...":`Collegamento...`,"Connection Details":`Dettagli di Connessione`,"Connection Failed":`Connessione Fallita`,"Connection Type":`Tipo di connessione`,"Connection details":`Dettagli della connessione`,Continue:`Continua`,"Continue with Github":`Continua con Github`,"Continue with Google":`Continua con Google`,"Cookie Policy":`Politica sui cookie`,"Cookie policy outlining the use of cookies and tracking technologies.":`Politica sui cookie che descrive l'uso di cookie e tecnologie di tracciamento.`,"Copy your address or scan this QR code":`Copia il tuo indirizzo o scansiona questo codice QR`,Currency:`Valuta`,Current:`Attuale`,"Current domain":`Dominio attuale`,Customization:`Personalizzazione`,Customize:`Personalizza`,"Customize profile":`Personalizza profilo`,"Customize the appearance of your wallet.":`Personalizza l'aspetto del tuo portafoglio.`,Description:`Descrizione`,"Description must be less than 100 characters":`La descrizione deve contenere meno di 100 caratteri`,"Didn't get an email?":`Non hai ricevuto un'email?`,Discord:`Discord`,"Display Name":`Nome da visualizzare`,"Display name must be less than 25 characters":`Il nome da visualizzare deve contenere meno di 25 caratteri`,"Domain set":`Dominio impostato`,"Domain unset":`Dominio rimosso`,Done:`Fatto`,Ecosystem:`Ecosistema`,"Eg: DevRel @ ENS Labs":`Es: DevRel @ ENS Labs`,Email:`Email`,"Email address":`Indirizzo email`,"Embedded wallet":`Portafoglio incorporato`,"Enhanced compatibility with dApps":`Compatibilità migliorata con dApps`,"Enter confirmation code":`Inserisci il codice di conferma`,"Enter your display name":`Inserisci il tuo nome da visualizzare`,"Enter your name":`Inserisci il tuo nome`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`Scambia i tuoi beni digitali tra VeChain e altre reti blockchain in modo facile e sicuro. Gli scambi sono eseguiti tramite partner che utilizzano sia exchange decentralizzati che centralizzati per convertire i token.`,"Existing Custom Tokens":`Token personalizzati esistenti`,"Failed to connect with Passkey":`Connessione fallita con Passkey`,"Failed to connect with VeChain":`Connessione fallita con VeChain`,"Failed to connect with ecosystem app":`Connessione fallita con l'app dell'ecosistema`,"Failed to load App Hub apps":`Caricamento delle app di App Hub non riuscito`,Farcaster:`Farcaster`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`La delega delle commissioni è una funzione unica di VeChain che consente a qualcun altro (un delegante) di pagare le tue commissioni di transazione. Mentre molte dApp e fornitori di servizi agiscono come deleganti per facilitare l'inizio per i nuovi utenti, alcune transazioni potrebbero comunque richiedere che tu paghi le commissioni usando il tuo VTHO. Le commissioni sono necessarie per prevenire lo spam di rete e compensare i nodi che elaborano e convalidano le transazioni sulla blockchain. Quando paghi le commissioni di persona, potrai selezionare VTHO dai tuoi asset per coprire il costo della transazione.`,"Filter by category":`Filtra per categoria`,"Finally say goodbye to 0x addresses":`Finalmente dì addio agli indirizzi 0x`,"For developers":`Per sviluppatori`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Per motivi di sicurezza, puoi gestire le impostazioni del tuo portafoglio integrato solo sulla piattaforma {{appName}}.`,"Found following rates":`Trovate le seguenti tariffe`,From:`Da`,"Gas fee":`Commissione gas`,General:`Generale`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`Buone notizie! Le transazioni multi-clausola sono ora completamente supportate per gli account intelligenti. Ora puoi godere di una migliore esperienza utente, costi di gas ridotti e maggiore sicurezza.`,Google:`Google`,Help:`Aiuto`,"How do I backup my wallet?":`Come faccio a fare il backup del mio portafoglio?`,"How do I send tokens?":`Come posso inviare token?`,"How is my wallet secured?":`Come è protetto il mio portafoglio?`,"I have read and agree to ":`Ho letto e accetto `,"Ignore and continue":`Ignora e continua`,"Improved security features":`Funzionalità di sicurezza migliorate`,Instagram:`Instagram`,"Insufficient {{symbol}} balance":`Saldo insufficiente di {{symbol}}`,"Invalid address or domain":`Indirizzo o dominio non valido`,"Invalid contract address":`Indirizzo del contratto non valido`,"Invalid token address":`Indirizzo del token non valido`,Language:`Lingua`,"Launch vechain.energy":`Avvia vechain.energy`,"Launch {{name}}":`Avvia {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Accordo legale tra te, Vechain Kit e l'app corrente, che descrive le regole per l'utilizzo dei servizi del wallet.`,"Link Apple Account":`Collega account Apple`,"Link Discord Account":`Collega account Discord`,"Link Email Account":`Collega account Email`,"Link External Wallet":`Collega Portafoglio Esterno`,"Link Farcaster Account":`Collega account Farcaster`,"Link Github Account":`Collega account Github`,"Link Google Account":`Collega account Google`,"Link Instagram Account":`Collega account Instagram`,"Link LinkedIn Account":`Collega account LinkedIn`,"Link Phone Number":`Collega numero di telefono`,"Link Spotify Account":`Collega account Spotify`,"Link Telegram Account":`Collega account Telegram`,"Link Tiktok Account":`Collega account Tiktok`,"Link Twitter Account":`Collega account Twitter`,LinkedIn:`LinkedIn`,"Loading your domains...":`Caricamento dei tuoi domini...`,"Log in or sign up":`Accedi o registrati`,"Logged in with":`Accesso effettuato con`,Login:`Accedi`,"Login failed:":`Accesso fallito:`,"Login methods":`Metodi di accesso`,"Login methods and Passkeys":`Metodi di accesso e Chiavi di accesso`,Logout:`Esci`,"Manage Custom Tokens":`Gestisci Token Personalizzati`,"Manage MFA":`Gestisci MFA`,"Manage Recovery":`Gestisci Recupero`,"Manage on {{appName}}":`Gestisci su {{appName}}`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`Gestisci le impostazioni di sicurezza del tuo portafoglio integrato: gestisci i tuoi metodi di accesso, aggiungi una chiave di accesso o esegui il backup del portafoglio per non perdere mai l'accesso ai tuoi beni.`,"Manage your login methods and passkeys":`Gestisci i tuoi metodi di accesso e chiavi di accesso`,"Manage your preferences for currency, language, and appearance.":`Gestisci le tue preferenze per valuta, lingua e aspetto.`,"Minimum {{symbol}} transfer is {{min}}":`Il trasferimento minimo di {{symbol}} è {{min}}`,More:`Altro`,"Multiclause Transactions Are Now Supported":`Le transazioni multi-clausola sono ora supportate`,"Name must be at least 3 characters long":`Il nome deve essere lungo almeno 3 caratteri`,"Name your account to make it easier to exchange assets":`Dai un nome al tuo account per semplificare lo scambio di beni`,Network:`Rete`,New:`Nuovo`,"New image selected":`Nuova immagine selezionata`,"No additional accounts available to link":`Nessun account aggiuntivo disponibile da collegare`,"No application from VeChain ecosystem is available to login.":`Nessuna applicazione dell'ecosistema VeChain è disponibile per l'accesso.`,"No apps found in this category":`Nessuna app trovata in questa categoria`,"No archived notifications":`Nessuna notifica archiviata`,"No assets":`Nessun bene`,"No notifications":`Nessuna notifica`,"No policies accepted":`Nessuna politica accettata`,"No questions found":`Nessuna domanda trovata`,"No quotes available":`Nessuna quotazione disponibile`,"No tokens found":`Nessun token trovato`,"Node URL":`URL del nodo`,Notifications:`Notifiche`,"Only letters, numbers, and hyphens are allowed":`Sono ammessi solo lettere, numeri e trattini`,Optional:`Opzionale`,"Other options":`Altre opzioni`,Passkey:`Chiave di accesso`,"Phone Number":`Numero di telefono`,"Please approve the request in the connection request window...":`Si prega di approvare la richiesta nella finestra della richiesta di connessione...`,"Please be sure to keep this wallet safe and backed up.":`Si prega di assicurarsi che questo portafoglio sia al sicuro e con un backup.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Controlla {{email}} per un'email da privy.io e inserisci il tuo codice qui sotto.`,"Please complete the passkey authentication...":`Si prega di completare l'autenticazione con chiave di accesso...`,"Please confirm the transaction in your wallet.":`Si prega di confermare la transazione nel proprio wallet.`,"Please enter a valid Twitter handle without @":`Inserisci un handle Twitter valido senza @`,"Please enter a valid contract address":`Inserisci un indirizzo di contratto valido`,"Please enter a valid email address":`Inserisci un indirizzo email valido`,"Please enter a valid number":`Per favore inserisci un numero valido`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Per favore, prenditi un momento per esaminare tutte le politiche, la cui accettazione è obbligatoria per continuare.`,Policy:`Politica`,"Preparing changes...":`Preparazione delle modifiche...`,"Privacy Policy":`Informativa sulla privacy`,"Privacy policy outlining the data collection and processing practices.":`Informativa sulla privacy che delinea le pratiche di raccolta e trattamento dei dati.`,"Privy Status":`Privy Status`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy costruisce infrastrutture per l'onboarding degli utenti e per wallet integrati, per abilitare prodotti migliori basati su crypto. Questo significa incorporare il controllo degli asset all'interno delle applicazioni stesse per permettere a utenti, imprese o macchine di utilizzare asset digitali attraverso esperienze di prodotto fluide.`,"Processing transaction...":`Elaborazione della transazione...`,Profile:`Profilo`,"Profile Image":`Immagine del profilo`,"Profile Picture":`Immagine del Profilo`,"Profile Updated":`Profilo aggiornato`,"Read More":`Read More`,Receive:`Ricevi`,"Receive tokens":`Ricevi token`,"Reduced gas costs for operations":`Costi del gas ridotti per le operazioni`,"Reject and logout":`Rifiuta e disconnetti`,Remove:`Rimuovi`,"Remove Login Method":`Rimuovi metodo di accesso`,"Remove from shortcuts":`Rimuovi dai collegamenti`,"Remove your current domain name":`Rimuovi il tuo attuale nome di dominio`,"Resend code":`Reinvia codice`,Retry:`Riprova`,"Save Changes":`Salva modifiche`,"Saving changes...":`Salvataggio delle modifiche...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Dì addio agli indirizzi 0x, richiedi il tuo sottodominio .veworld.vet ora gratuitamente!`,"Search Apps":`Cerca App`,"Search FAQ":`Cerca FAQ`,"Security preferences":`Preferenze di sicurezza`,"Security settings":`Impostazioni di sicurezza`,"Select Additional Login Method":`Seleziona metodo di accesso aggiuntivo`,"Select Token":`Seleziona Token`,"Select currency":`Seleziona valuta`,"Select language":`Seleziona lingua`,"Select token":`Seleziona`,Send:`Invia`,"Send all":`Invia tutto`,"Sending Transaction...":`Invio Transazione...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Inviare a OceanX o ad altri exchange potrebbe comportare la perdita di fondi.`,"Sending...":`Invio...`,"Set a domain first":`Imposta prima un dominio`,"Set up Passkey":`Configura Chiave di Accesso`,"Set up a passkey for easier access":`Configura una chiave di accesso per un accesso più semplice`,Settings:`Impostazioni`,"Share on":`Condividi su`,Shortcuts:`Scorciatoie`,"Show Less":`Show Less`,"Show More":`Mostra di più`,"Slippage tolerance":`Tolleranza allo slippage`,"Smart Account":`Account Smart`,"Smart Account detected":`Account smart rilevato`,"Something went wrong":`Qualcosa è andato storto`,"Something went wrong. Please try again.":`Qualcosa è andato storto. Per favore riprova.`,Source:`Fonte`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Resta sintonizzato per la nostra prossima funzionalità Attività`,"Stay tuned for our upcoming NFT feature":`Resta sintonizzato per la nostra prossima funzionalità NFT`,Submit:`Invia`,Swap:`Scambia`,"Swap all":`Scambia tutto`,"Swapping...":`Scambio in corso...`,Telegram:`Telegram`,"Terms and Conditions":`Termini e condizioni`,"Terms and Policies":`Termini e politiche`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Questi account sono collegati al tuo portafoglio integrato e possono essere utilizzati per accedere al tuo portafoglio e alla tua chiave privata.`,"This address only supports VeChain assets.":`Questo indirizzo supporta solo i beni VeChain.`,"This domain is already taken":`Questo dominio è già stato preso`,"This domain is protected":`Questo dominio è protetto`,"This is taking longer than expected.":`Sta richiedendo più tempo del previsto.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Questo è il tuo portafoglio principale, creato da {{element}} e protetto da Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Questo portafoglio è il proprietario del tuo account smart, che è utilizzato come la tua identità e come un gateway per le tue interazioni con la blockchain.`,Tiktok:`Tiktok`,To:`A`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Per continuare a interagire con la blockchain VeChain e completare la tua operazione, il tuo conto smart deve essere aggiornato all'ultima versione (v3).`,"Token Contract Address":`Indirizzo del Contratto del Token`,"Token already added":`Token già aggiunto`,Tools:`Strumenti`,"Transaction failed":`Transazione fallita`,"Transaction failed:":`Transazione fallita:`,"Transaction is being processed, it can take up to 15 seconds.":`La transazione è in fase di elaborazione, può richiedere fino a 15 secondi.`,"Transaction successful":`Transazione avvenuta con successo`,"Transaction successful!":`Transazione avvenuta con successo!`,"Try again":`Riprovare`,"Try searching with a different term":`Prova a cercare con un termine diverso`,Twitter:`Twitter`,"Twitter username":`Nome utente Twitter`,"Type the receiver address or domain":`Inserisci l'indirizzo o il dominio del destinatario`,UNAVAILABLE:`NON DISPONIBILE`,"Unable to fetch the price":`Impossibile recuperare il prezzo`,"Unset current domain":`Rimuovi dominio attuale`,"Unsetting current domain...":`Rimozione del dominio attuale in corso...`,"Upgrade Smart Account to V3":`Aggiorna Conto Smart a V3`,"Upgrade Successful!":`Aggiornamento Riuscito!`,"Upgrade account":`Aggiorna conto`,"Upgrading...":`Aggiornamento in corso...`,"Use social login with VeChain":`Usa il login social con VeChain`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VET è la criptovaluta principale della rete VeChain. Rappresenta valore e proprietà nell'ecosistema VeChain, simile a come le azioni rappresentano la proprietà in un'azienda. Possedere VET genera automaticamente VTHO, che è necessario per pagare le transazioni sulla rete.`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO (VeThor) è il token energetico o 'gas' della rete VeChain. Viene utilizzato per pagare le commissioni di transazione quando si interagisce con la blockchain. VTHO viene generato automaticamente detenendo token VET, creando un sistema a due token che aiuta a mantenere la stabilità della rete e gestire i costi di transazione.`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO è un'organizzazione decentralizzata sulla blockchain VeChain focalizzata sulla sostenibilità. I membri partecipano alla governance del DAO utilizzando token B3TR per le ricompense e VOT3 per votare nelle proposte e nei turni di allocazione settimanale dei token.`,"VeChain Kit":`Kit VeChain`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`VeChain, con sede a San Marino, Europa, è un ecosistema blockchain pionieristico e creatore di VeChainThor, una piattaforma di smart contract di classe mondiale che promuove l'adozione della blockchain nel mondo reale. Fondata nel 2015 da Sunny Lu, VeChain ha costantemente lavorato per offrire una soluzione blockchain trasparente, efficiente, scalabile e adattabile.`,"VeWorld Wallet":`Portafoglio VeWorld`,"Vechain Kit Policy":`Politica del Vechain Kit`,"View Current Policy":`Visualizza politica corrente`,"View on explorer":`Visualizza sull'explorer`,"View transaction on the explorer":`Visualizza la transazione sull'explorer`,"Waiting for confirmation":`In attesa di conferma`,"Waiting for confirmation...":`In attesa di conferma...`,"Waiting wallet confirmation...":`In attesa di conferma del portafoglio...`,Wallet:`Portafoglio`,"Wallet secured by":`Portafoglio protetto da`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`Consigliamo vivamente di esportare la tua chiave privata per eseguire il backup del tuo portafoglio. Questo garantisce che tu possa ripristinarlo se necessario o trasferirlo in self-custody utilizzando`,Website:`Sito web`,"Website URL":`URL del sito web`,"Website URL must start with https://":`L'URL del sito web deve iniziare con https://`,"What is B3TR?":`Cos'è B3TR?`,"What is Privy?":`Cos'è Privy?`,"What is VET?":`Che cos'è VET?`,"What is VTHO?":`Che cos'è VTHO?`,"What is VeBetterDAO?":`Che cos'è VeBetterDAO?`,"What is VeChain?":`Che cos'è VeChain?`,"What is a Smart Account?":`Cos'è un Account Smart?`,"What is a domain name?":`Cos'è un nome di dominio?`,"What is a network?":`Che cos'è una rete?`,"What is a wallet?":`Che cos'è un portafoglio?`,"What is an x2earn application?":`Cos'è un'applicazione x2earn?`,"What is fee delegation?":`Che cos'è la delega delle commissioni?`,"When you have accepted a policy, it will appear here":`Quando avrai accettato una politica, apparirà qui`,"When you have notifications, they will appear here":`Quando hai notifiche, appariranno qui`,"YOU OWN THIS":`QUESTO È TUO`,"You accepted current policy on {{date}}":`Hai accettato la politica corrente il {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Stai usando un Portafoglio Integrato protetto dal tuo metodo di accesso sociale, garantendo un'esperienza VeChain senza interruzioni.`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`Puoi inviare token cliccando sull'icona di invio nella sezione Azioni Rapide. Inserisci l'indirizzo del destinatario o il nome di dominio VeChain, seleziona il token e specifica l'importo che desideri inviare.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Hai un account smart attivo associato a questo wallet. È stato impostato come la tua identità principale.`,"You may want to try establishing the connection again.":`Potresti voler provare a stabilire nuovamente la connessione.`,"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 è stato aggiornato con successo all'ultima versione. Ora puoi godere di un'esperienza utente migliorata, costi del gas ridotti e maggiore sicurezza.`,"Your address has been successfully set to {{name}}":`Il tuo indirizzo è stato impostato correttamente su {{name}}`,"Your changes have been saved successfully.":`Le tue modifiche sono state salvate con successo.`,"Your domain has been unset successfully.":`Il tuo dominio è stato rimosso con successo.`,"Your embedded wallet":`Il tuo portafoglio integrato`,"Your existing domains":`I tuoi domini esistenti`,"Your smart account is already upgraded to this version.":`Il tuo account smart è già stato aggiornato a questa versione.`,"Your smart account needs to be upgraded to the latest version (v3).":`Il tuo account smart deve essere aggiornato all'ultima versione (v3).`,"Your tokens":`I tuoi token`,"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ù semplice mantenendo la sicurezza.`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`qui`,marketplaces:`Marketplaces`,rate:`tariffa`,"to learn more about embedded wallets.":`per saperne di più sui portafogli integrati.`,unavailable:`non disponibile`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},ma={" and ":` et `,"'{{policyName}}' on connect":`'{{policyName}}' lors de la connexion`,"'{{policyName}}' on {{date}}":`'{{policyName}}' le {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>Votre confidentialité est importante.</bold> Vous contrôlez, acceptez pour activer des fonctionnalités optionnelles telles que les cookies et les analyses qui nous aident à améliorer votre expérience.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Un domaine .vet est requis pour personnaliser votre profil. Choisissez un nom de compte pour commencer.`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`Un compte intelligent est un portefeuille de contrat intelligent offrant une sécurité et des fonctionnalités améliorées. Il permet des fonctionnalités telles que la récupération sociale, le regroupement de transactions, et plus encore.`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`Un nom de domaine est une sorte de surnom pour votre adresse de portefeuille. Il vous permet d'identifier facilement votre portefeuille et d'interagir avec des dApps en utilisant un nom lisible par l'homme. Par exemple, si votre adresse de portefeuille est 0x1234567890, votre surnom pourrait être "alice.vechain".`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`Un réseau dans la blockchain se réfère à l'environnement où les transactions ont lieu. VeChain dispose de deux réseaux principaux : Mainnet (le réseau actif où les transactions réelles se produisent) et Testnet (un environnement de test pour les développeurs). Le réseau auquel vous êtes connecté est affiché en haut de cette fenêtre modale.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Une nouvelle mise à niveau est disponible pour votre compte intelligent. Veuillez vous rendre dans la section 'Accès et Sécurité' pour le mettre à niveau.`,"A new version is available for your account":`Une nouvelle version est disponible pour votre compte`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`Un portefeuille est votre passerelle vers la blockchain VeChain. Il stocke vos clés privées et vous permet de gérer en toute sécurité vos actifs numériques, d'envoyer et de recevoir des tokens, et d'interagir avec des applications décentralisées. Considérez-le comme votre compte bancaire numérique pour les transactions blockchain.`,AVAILABLE:`DISPONIBLE`,Accept:`Accepter`,"Accept all":`Tout accepter`,"Accept selected":`Accepter la sélection`,"Access and security":`Accès et sécurité`,"Account Upgrade Required":`Mise à niveau du compte requise`,"Account already upgraded":`Compte déjà mis à niveau`,"Account upgrade required":`Mise à niveau du compte requise`,Active:`Actif`,"Add Login Method":`Ajouter une méthode de connexion`,"Add Token":`Ajouter un jeton`,"Add to shortcuts":`Ajouter aux raccourcis`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Ajouter plus de comptes liés augmente la sécurité contre la perte d'accès, mais introduit également des vecteurs d'attaque potentiels supplémentaires. Pour une sécurité accrue, nous vous recommandons d'activer l'authentification multifacteur (MFA).`,"Address is required":`L'adresse est requise`,All:`Tout`,"All apps":`Toutes les applications`,"All policies you have accepted":`Toutes les politiques que vous avez acceptées`,"All tokens":`Tous les jetons`,"Already have an x2earn app wallet?":`Vous avez déjà un portefeuille d'application x2earn ?`,Amount:`Montant`,"Amount is required":`Le montant est requis`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`Une application X2Earn dans VeBetterDAO est une application durable qui récompense les utilisateurs avec des tokens B3TR pour des actions écologiques. Ces applications doivent distribuer B3TR, lier les portefeuilles utilisateurs et fournir une preuve des actions durables. Elles rejoignent VeBetterDAO par recommandation et participent à des rondes d’allocation de tokens hebdomadaires.`,"An unexpected error occurred.":`Une erreur inattendue est survenue.`,Apple:`Apple`,Archived:`Archivé`,"Archived Notifications":`Notifications archivées`,"Are you sure you want to disconnect your wallet?":`Êtes-vous sûr de vouloir déconnecter votre portefeuille ?`,"Are you sure you want to reject the policies and disconnect?":`Êtes-vous sûr de vouloir rejeter les politiques et vous déconnecter ?`,"Are you sure you want to set your domain name to":`Êtes-vous sûr de vouloir définir votre nom de domaine sur`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`Êtes-vous sûr de vouloir dissocier {{accountType}} en tant que méthode de connexion liée à {{accountDescription}} ?`,"Are you sure you want to unset your current domain?":`Êtes-vous sûr de vouloir désélectionner votre domaine actuel ?`,Assets:`Actifs`,At:`À`,"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é à 1 milliard de tokens, émis de façon hebdomadaire sur 12 ans. B3TR est utilisé pour les récompenses, la gouvernance et pour soutenir les tokens VOT3 à un taux de 1:1. Il soutient les applications de durabilité et la gestion de la trésorerie DAO.`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`Sauvegarder votre portefeuille est crucial puisque vous êtes le seul à avoir accès à vos clés privées. Si quelque chose ne va pas, avoir votre clé privée est le seul moyen de récupérer vos actifs. La façon de sauvegarder dépend de la manière dont vous accédez à votre portefeuille : si vous utilisez VeWorld, l'option de sauvegarde est disponible dans l'application. Pour les utilisateurs de connexion sociale, vous trouverez les options de sauvegarde dans la section Portefeuille. Si vous êtes connecté via VeChain ou une autre application de l'écosystème, vous devrez visiter le site web d'origine, vous connecter et accéder à la section Portefeuille à partir de là.`,"Backup your wallet":`Sauvegardez votre portefeuille`,"Backup your wallet, configure MFA and set recovery options":`Sauvegardez votre portefeuille, configurez l'authentification multi-facteurs et définissez les options de récupération`,Balance:`Solde`,"Benefits of this upgrade:":`Avantages de cette mise à niveau :`,Best:`Meilleur`,"Better transaction handling":`Meilleure gestion des transactions`,Bridge:`Pont`,"By continuing, you agree to":`En continuant, vous acceptez`,Cancel:`Annuler`,"Choose Name":`Choisir le nom`,"Choose a name for your account.":`Choisissez un nom pour votre compte.`,"Choose a unique .vet domain name for your account.":`Choisissez un nom de domaine .vet unique pour votre compte.`,"Choose account name":`Choisir le nom du compte`,"Choose name":`Choisir un nom`,"Choose your account name":`Choisissez le nom de votre compte`,"Claim your vet domain!":`Réclamez votre domaine vet !`,"Claiming name...":`Réclamation du nom...`,"Clear all":`Tout effacer`,"Cleared notifications will appear here":`Les notifications effacées apparaîtront ici`,Click:`Cliquez`,"Click below to access {{ name }} and explore its features.":`Cliquez ci-dessous pour accéder à {{ name }} et explorer ses fonctionnalités.`,Close:`Fermer`,"Close and do this later":`Fermer et faire ceci plus tard`,"Close announcement":`Fermer l'annonce`,"Coming Soon!":`Bientôt disponible !`,"Coming soon":`Bientôt disponible`,Confirm:`Confirmer`,"Confirm Changes":`Confirmer les modifications`,"Confirm Name":`Confirmer le nom`,"Confirm Unset Domain":`Confirmer la désélection du domaine`,"Confirm the transaction in your wallet to complete it.":`Confirmez la transaction dans votre portefeuille pour la terminer.`,"Confirm transaction":`Confirmer la transaction`,"Connect an external wallet for easier access":`Connectez un portefeuille externe pour un accès plus facile`,"Connect wallet":`Connecter le portefeuille`,"Connect with VeWorld wallet":`Connectez-vous avec le portefeuille VeWorld`,"Connect your Apple account for easier access":`Connectez votre compte Apple pour un accès plus facile`,"Connect your Discord account for easier access":`Connectez votre compte Discord pour un accès plus facile`,"Connect your Farcaster account for easier access":`Connectez votre compte Farcaster pour un accès plus facile`,"Connect your Github account for easier access":`Connectez votre compte Github pour un accès plus facile`,"Connect your Google account for easier access":`Connectez votre compte Google pour un accès plus facile`,"Connect your Instagram account for easier access":`Connectez votre compte Instagram pour un accès plus facile`,"Connect your LinkedIn account for easier access":`Connectez votre compte LinkedIn pour un accès plus facile`,"Connect your Spotify account for easier access":`Connectez votre compte Spotify pour un accès plus facile`,"Connect your Telegram account for easier access":`Connectez votre compte Telegram pour un accès plus facile`,"Connect your Tiktok account for easier access":`Connectez votre compte Tiktok pour un accès plus facile`,"Connect your Twitter account for easier access":`Connectez votre compte Twitter pour un accès plus facile`,"Connect your email for easier access":`Connectez votre email pour un accès facilité`,"Connect your phone number for easier access":`Connectez votre numéro de téléphone pour un accès facilité`,"Connecting to VeChain":`Connexion à VeChain`,"Connecting with":`Connexion avec`,"Connecting with Passkey":`Connexion avec Passkey`,"Connecting...":`Connexion...`,"Connection Details":`Détails de la connexion`,"Connection Failed":`Échec de la connexion`,"Connection Type":`Type de connexion`,"Connection details":`Détails de la connexion`,Continue:`Continuer`,"Continue with Github":`Continuer avec Github`,"Continue with Google":`Continuer avec Google`,"Cookie Policy":`Politique de cookies`,"Cookie policy outlining the use of cookies and tracking technologies.":`Politique de cookies décrivant l'utilisation des cookies et des technologies de suivi.`,"Copy your address or scan this QR code":`Copiez votre adresse ou scannez ce code QR`,Currency:`Devise`,Current:`Actuel`,"Current domain":`Domaine actuel`,Customization:`Personnalisation`,Customize:`Personnaliser`,"Customize profile":`Personnaliser le profil`,"Customize the appearance of your wallet.":`Personnalisez l'apparence de votre portefeuille.`,Description:`Description`,"Description must be less than 100 characters":`La description doit comporter moins de 100 caractères`,"Didn't get an email?":`Vous n'avez pas reçu d'e-mail ?`,Discord:`Discord`,"Display Name":`Nom affiché`,"Display name must be less than 25 characters":`Le nom affiché doit comporter moins de 25 caractères`,"Domain set":`Domaine défini`,"Domain unset":`Domaine désélectionné`,Done:`Fait`,Ecosystem:`Écosystème`,"Eg: DevRel @ ENS Labs":`Ex : DevRel @ ENS Labs`,Email:`Email`,"Email address":`Adresse électronique`,"Embedded wallet":`Portefeuille intégré`,"Enhanced compatibility with dApps":`Compatibilité améliorée avec les dApps`,"Enter confirmation code":`Entrez le code de confirmation`,"Enter your display name":`Entrez votre nom affiché`,"Enter your name":`Entrez votre nom`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`Échangez vos actifs numériques entre VeChain et d'autres réseaux blockchain facilement et en toute sécurité. Les échanges sont effectués par des partenaires qui utilisent à la fois des échanges décentralisés et centralisés pour convertir les jetons.`,"Existing Custom Tokens":`Jetons personnalisés existants`,"Failed to connect with Passkey":`Échec de la connexion avec Passkey`,"Failed to connect with VeChain":`Échec de la connexion avec VeChain`,"Failed to connect with ecosystem app":`Échec de la connexion avec l'application écosystème`,"Failed to load App Hub apps":`Échec du chargement des applications App Hub`,Farcaster:`Farcaster`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`La délégation de frais est une fonctionnalité unique de VeChain qui permet à quelqu'un d'autre (un délégataire) de payer vos frais de transaction. Bien que de nombreuses dApps et prestataires de services agissent en tant que délégataires pour faciliter le démarrage des nouveaux utilisateurs, certaines transactions peuvent encore nécessiter que vous payiez des frais en utilisant votre propre VTHO. Les frais sont nécessaires pour prévenir le spam sur le réseau et pour rémunérer les nœuds qui traitent et valident les transactions sur la blockchain. Lorsque vous payez vous-même les frais, vous pourrez sélectionner VTHO parmi vos actifs pour couvrir le coût de la transaction.`,"Filter by category":`Filtrer par catégorie`,"Finally say goodbye to 0x addresses":`Enfin, dites adieu aux adresses 0x`,"For developers":`Pour les développeurs`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Pour des raisons de sécurité, vous pouvez gérer les paramètres de votre portefeuille intégré uniquement sur la plateforme {{appName}}.`,"Found following rates":`Taux suivants trouvés`,From:`De`,"Gas fee":`Frais de gaz`,General:`Général`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`Bonne nouvelle ! Les transactions multiclause sont désormais entièrement prises en charge pour les comptes intelligents. Vous pouvez désormais profiter d'une meilleure expérience utilisateur, de frais de gaz réduits et d'une sécurité renforcée.`,Google:`Google`,Help:`Aide`,"How do I backup my wallet?":`Comment sauvegarder mon portefeuille ?`,"How do I send tokens?":`Comment envoyer des jetons ?`,"How is my wallet secured?":`Comment mon portefeuille est-il sécurisé ?`,"I have read and agree to ":`J'ai lu et j'accepte `,"Ignore and continue":`Ignorer et continuer`,"Improved security features":`Fonctionnalités de sécurité améliorées`,Instagram:`Instagram`,"Insufficient {{symbol}} balance":`Solde {{symbol}} insuffisant`,"Invalid address or domain":`Adresse ou domaine invalide`,"Invalid contract address":`Adresse de contrat invalide`,"Invalid token address":`Adresse de jeton invalide`,Language:`Langue`,"Launch vechain.energy":`Lancer vechain.energy`,"Launch {{name}}":`Lancer {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Accord juridique entre vous, Vechain Kit et l'application actuelle, décrivant les règles d'utilisation des services de portefeuille.`,"Link Apple Account":`Lier le compte Apple`,"Link Discord Account":`Lier le compte Discord`,"Link Email Account":`Lier le compte Email`,"Link External Wallet":`Lier un portefeuille externe`,"Link Farcaster Account":`Lier le compte Farcaster`,"Link Github Account":`Lier le compte Github`,"Link Google Account":`Lier le compte Google`,"Link Instagram Account":`Lier le compte Instagram`,"Link LinkedIn Account":`Lier le compte LinkedIn`,"Link Phone Number":`Lier le numéro de téléphone`,"Link Spotify Account":`Lier le compte Spotify`,"Link Telegram Account":`Lier le compte Telegram`,"Link Tiktok Account":`Lier le compte Tiktok`,"Link Twitter Account":`Lier le compte Twitter`,LinkedIn:`LinkedIn`,"Loading your domains...":`Chargement de vos domaines...`,"Log in or sign up":`Connexion ou inscription`,"Logged in with":`Connecté avec`,Login:`Connexion`,"Login failed:":`Échec de la connexion :`,"Login methods":`Méthodes de connexion`,"Login methods and Passkeys":`Méthodes de connexion et clés d'accès`,Logout:`Déconnexion`,"Manage Custom Tokens":`Gérer les jetons personnalisés`,"Manage MFA":`Gérer la MFA`,"Manage Recovery":`Gérer la récupération`,"Manage on {{appName}}":`Gérer sur {{appName}}`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`Gérez les paramètres de sécurité de votre portefeuille intégré : gérez vos méthodes de connexion, ajoutez une clé d'accès ou sauvegardez votre portefeuille pour ne jamais perdre l'accès à vos actifs.`,"Manage your login methods and passkeys":`Gérez vos méthodes de connexion et clés d'accès`,"Manage your preferences for currency, language, and appearance.":`Gérez vos préférences de devise, de langue et d'apparence.`,"Minimum {{symbol}} transfer is {{min}}":`Le transfert minimum {{symbol}} est {{min}}`,More:`Plus`,"Multiclause Transactions Are Now Supported":`Les transactions multiclause sont désormais prises en charge`,"Name must be at least 3 characters long":`Le nom doit comporter au moins 3 caractères`,"Name your account to make it easier to exchange assets":`Nommez votre compte pour faciliter l'échange d'actifs`,Network:`Réseau`,New:`Nouveau`,"New image selected":`Nouvelle image sélectionnée`,"No additional accounts available to link":`Aucun compte supplémentaire disponible à lier`,"No application from VeChain ecosystem is available to login.":`Aucune application de l'écosystème VeChain n'est disponible pour se connecter.`,"No apps found in this category":`Aucune application trouvée dans cette catégorie`,"No archived notifications":`Aucune notification archivée`,"No assets":`Aucun actif`,"No notifications":`Aucune notification`,"No policies accepted":`Aucune politique acceptée`,"No questions found":`Aucune question trouvée`,"No quotes available":`Aucun prix disponible`,"No tokens found":`Aucun jeton trouvé`,"Node URL":`URL du nœud`,Notifications:`Notifications`,"Only letters, numbers, and hyphens are allowed":`Seules les lettres, les chiffres et les tirets sont autorisés`,Optional:`Facultatif`,"Other options":`Autres options`,Passkey:`Clé de passe`,"Phone Number":`Numéro de téléphone`,"Please approve the request in the connection request window...":`Veuillez approuver la demande dans la fenêtre de demande de connexion...`,"Please be sure to keep this wallet safe and backed up.":`Veuillez vous assurer que ce portefeuille est en sécurité et sauvegardé.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Veuillez vérifier {{email}} pour un email de privy.io et entrez votre code ci-dessous.`,"Please complete the passkey authentication...":`Veuillez compléter l'authentification par clé de passe...`,"Please confirm the transaction in your wallet.":`Veuillez confirmer la transaction dans votre portefeuille.`,"Please enter a valid Twitter handle without @":`Veuillez entrer un identifiant Twitter valide sans @`,"Please enter a valid contract address":`Veuillez entrer une adresse de contrat valide`,"Please enter a valid email address":`Veuillez entrer une adresse e-mail valide`,"Please enter a valid number":`Veuillez entrer un numéro valide`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Veuillez prendre un moment pour examiner toutes les politiques, l'acceptation étant obligatoire pour continuer.`,Policy:`Politique`,"Preparing changes...":`Préparation des modifications...`,"Privacy Policy":`Politique de confidentialité`,"Privacy policy outlining the data collection and processing practices.":`Politique de confidentialité décrivant les pratiques de collecte et de traitement des données.`,"Privy Status":`Statut Privy`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy construit l'infrastructure d'intégration des utilisateurs et de portefeuilles intégrés pour permettre de meilleurs produits construits sur les rails crypto. Cela signifie intégrer le contrôle des actifs au sein même des applications pour permettre aux utilisateurs, entreprises ou machines de gérer des actifs numériques via des expériences produits fluides.`,"Processing transaction...":`Traitement de la transaction...`,Profile:`Profil`,"Profile Image":`Image de profil`,"Profile Picture":`Image de profil`,"Profile Updated":`Profil mis à jour`,"Read More":`Read More`,Receive:`Recevoir`,"Receive tokens":`Recevoir des jetons`,"Reduced gas costs for operations":`Réduction des coûts de gaz pour les opérations`,"Reject and logout":`Rejeter et se déconnecter`,Remove:`Supprimer`,"Remove Login Method":`Supprimer la méthode de connexion`,"Remove from shortcuts":`Retirer des raccourcis`,"Remove your current domain name":`Supprimer votre nom de domaine actuel`,"Resend code":`Renvoyer le code`,Retry:`Réessayer`,"Save Changes":`Enregistrer les modifications`,"Saving changes...":`Enregistrement des modifications...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Dites adieu aux adresses 0x, réclamez dès maintenant votre sous-domaine .veworld.vet gratuitement!`,"Search Apps":`Rechercher des applications`,"Search FAQ":`Rechercher dans la FAQ`,"Security preferences":`Préférences de sécurité`,"Security settings":`Paramètres de sécurité`,"Select Additional Login Method":`Sélectionner une méthode de connexion supplémentaire`,"Select Token":`Sélectionner un jeton`,"Select currency":`Sélectionner la devise`,"Select language":`Sélectionner la langue`,"Select token":`Sélectionner un jeton`,Send:`Envoyer`,"Send all":`Tout envoyer`,"Sending Transaction...":`Envoi de la transaction...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Envoyer à OceanX ou à d'autres échanges peut entraîner une perte de fonds.`,"Sending...":`Envoi...`,"Set a domain first":`Définissez d'abord un domaine`,"Set up Passkey":`Configurer une clé d'accès`,"Set up a passkey for easier access":`Configurer une clé d'accès pour un accès plus facile`,Settings:`Paramètres`,"Share on":`Partager sur`,Shortcuts:`Raccourcis`,"Show Less":`Show Less`,"Show More":`Afficher plus`,"Slippage tolerance":`Tolérance au slippage`,"Smart Account":`Compte intelligent`,"Smart Account detected":`Compte intelligent détecté`,"Something went wrong":`Quelque chose a mal tourné`,"Something went wrong. Please try again.":`Un problème est survenu. Veuillez réessayer.`,Source:`Source`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Restez à l'écoute pour notre prochaine fonctionnalité Activité`,"Stay tuned for our upcoming NFT feature":`Restez à l'écoute pour notre prochaine fonctionnalité NFT`,Submit:`Soumettre`,Swap:`Échanger`,"Swap all":`Tout échanger`,"Swapping...":`Échange en cours...`,Telegram:`Telegram`,"Terms and Conditions":`Conditions générales`,"Terms and Policies":`Conditions et politiques`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Ces comptes sont liés à votre portefeuille intégré et peuvent être utilisés pour se connecter à votre portefeuille et accéder à votre clé privée.`,"This address only supports VeChain assets.":`Cette adresse ne prend en charge que les actifs VeChain.`,"This domain is already taken":`Ce domaine est déjà pris`,"This domain is protected":`Ce domaine est protégé`,"This is taking longer than expected.":`Cela prend plus de temps que prévu.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Ceci est votre portefeuille principal, créé par {{element}} et sécurisé par Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Ce portefeuille est le propriétaire de votre compte intelligent, qui est utilisé comme votre identité et comme une passerelle pour vos interactions blockchain.`,Tiktok:`Tiktok`,To:`À`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Pour continuer à interagir avec la blockchain VeChain et terminer votre opération, votre compte intelligent doit être mis à niveau vers la dernière version (v3).`,"Token Contract Address":`Adresse du contrat du jeton`,"Token already added":`Jeton déjà ajouté`,Tools:`Outils`,"Transaction failed":`La transaction a échoué`,"Transaction failed:":`La transaction a échoué :`,"Transaction is being processed, it can take up to 15 seconds.":`La transaction est en cours de traitement, cela peut prendre jusqu'à 15 secondes.`,"Transaction successful":`Transaction réussie`,"Transaction successful!":`Transaction réussie !`,"Try again":`Réessayer`,"Try searching with a different term":`Essayez de chercher avec un terme différent`,Twitter:`Twitter`,"Twitter username":`Nom d'utilisateur Twitter`,"Type the receiver address or domain":`Tapez l'adresse du destinataire ou le domaine`,UNAVAILABLE:`INDISPONIBLE`,"Unable to fetch the price":`Impossible de récupérer le prix`,"Unset current domain":`Désélectionner le domaine actuel`,"Unsetting current domain...":`Désélection du domaine actuel...`,"Upgrade Smart Account to V3":`Mettre à niveau le compte intelligent vers V3`,"Upgrade Successful!":`Mise à niveau réussie !`,"Upgrade account":`Mettre à niveau le compte`,"Upgrading...":`Mise à niveau...`,"Use social login with VeChain":`Utiliser la connexion sociale avec VeChain`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`Le VET est la cryptomonnaie principale du réseau VeChain. Il représente la valeur et la propriété dans l'écosystème VeChain, similaire à la façon dont les actions représentent la propriété dans une entreprise. Détenir du VET génère automatiquement du VTHO, nécessaire pour payer les transactions sur le réseau.`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`Le VTHO (VeThor) est le jeton d'énergie ou de 'gaz' du réseau VeChain. Il est utilisé pour payer les frais de transaction lors de l'interaction avec la blockchain. Le VTHO est automatiquement généré en détenant des jetons VET, créant un système à deux jetons qui aide à maintenir la stabilité du réseau et à gérer les coûts de transaction.`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO est une organisation décentralisée sur la blockchain VeChain axée sur la durabilité. Les membres participent à la gouvernance du DAO en utilisant des jetons B3TR pour les récompenses et VOT3 pour voter sur les propositions et les cycles d'allocation de jetons hebdomadaires.`,"VeChain Kit":`Kit VeChain`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`VeChain, dont le siège est à Saint-Marin, en Europe, est un écosystème blockchain pionnier et créateur de VeChainThor, une plateforme de contrats intelligents de classe mondiale favorisant l'adoption de la blockchain dans le monde réel. Fondée en 2015 par Sunny Lu, VeChain s'efforce constamment de fournir une solution blockchain transparente, efficace, évolutive et adaptable.`,"VeWorld Wallet":`Portefeuille VeWorld`,"Vechain Kit Policy":`Politique du kit Vechain`,"View Current Policy":`Afficher la politique actuelle`,"View on explorer":`Voir sur l'explorateur`,"View transaction on the explorer":`Voir la transaction sur l'explorateur`,"Waiting for confirmation":`En attente de confirmation`,"Waiting for confirmation...":`En attente de confirmation...`,"Waiting wallet confirmation...":`En attente de la confirmation du portefeuille...`,Wallet:`Portefeuille`,"Wallet secured by":`Portefeuille sécurisé par`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`Nous vous recommandons vivement d'exporter votre clé privée pour sauvegarder votre portefeuille. Cela garantit que vous pouvez le restaurer si nécessaire ou le transférer en gestion autonome en utilisant`,Website:`Site web`,"Website URL":`URL du site web`,"Website URL must start with https://":`L'URL du site web doit commencer par https://`,"What is B3TR?":`Qu'est-ce que le B3TR ?`,"What is Privy?":`Qu'est-ce que Privy ?`,"What is VET?":`Qu'est-ce que VET ?`,"What is VTHO?":`Qu'est-ce que VTHO ?`,"What is VeBetterDAO?":`Qu'est-ce que VeBetterDAO ?`,"What is VeChain?":`Qu'est-ce que VeChain ?`,"What is a Smart Account?":`Qu'est-ce qu'un Smart Account ?`,"What is a domain name?":`Qu'est-ce qu'un nom de domaine ?`,"What is a network?":`Qu'est-ce qu'un réseau ?`,"What is a wallet?":`Qu'est-ce qu'un portefeuille ?`,"What is an x2earn application?":`Qu'est-ce qu'une application x2earn ?`,"What is fee delegation?":`Qu'est-ce que la délégation de frais ?`,"When you have accepted a policy, it will appear here":`Lorsque vous avez accepté une politique, elle apparaîtra ici`,"When you have notifications, they will appear here":`Lorsque vous avez des notifications, elles apparaîtront ici`,"YOU OWN THIS":`VOUS POSSÉDEZ CECI`,"You accepted current policy on {{date}}":`Vous avez accepté la politique actuelle le {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Vous utilisez un portefeuille intégré sécurisé par votre méthode de connexion sociale, garantissant une expérience VeChain fluide.`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`Vous pouvez envoyer des jetons en cliquant sur l'icône d'envoi dans la section Actions rapides. Entrez l'adresse du destinataire ou le nom de domaine VeChain, sélectionnez le jeton et spécifiez le montant que vous souhaitez envoyer.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Vous avez un compte intelligent actif associé à ce portefeuille. Il a été défini comme votre identité principale.`,"You may want to try establishing the connection again.":`Vous voudrez peut-être essayer d'établir la connexion à nouveau.`,"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 été mis à niveau avec succès vers la dernière version. Vous pouvez désormais profiter d'une meilleure expérience utilisateur, de coûts de gaz réduits et d'une sécurité renforcée.`,"Your address has been successfully set to {{name}}":`Votre adresse a été correctement définie sur {{name}}`,"Your changes have been saved successfully.":`Vos modifications ont été enregistrées avec succès.`,"Your domain has been unset successfully.":`Votre domaine a été désélectionné avec succès.`,"Your embedded wallet":`Votre portefeuille intégré`,"Your existing domains":`Vos domaines existants`,"Your smart account is already upgraded to this version.":`Votre compte intelligent est déjà mis à jour vers cette version.`,"Your smart account needs to be upgraded to the latest version (v3).":`Votre compte intelligent doit être mis à niveau vers la dernière version (v3).`,"Your tokens":`Vos jetons`,"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écurité de votre portefeuille dépend de la façon dont vous y accédez. Avec des options d'auto-gardiennage comme l'extension VeWorld, l'application mobile ou le portefeuille matériel, vous avez un contrôle complet sur vos clés privées. Cette extension en elle-même n'a pas accès à vos clés privées. Lors de la connexion avec des comptes sociaux ou VeChain, votre portefeuille est créé et sécurisé par Privy et géré par VeChain, offrant une expérience d'intégration plus facile tout en maintenant la sécurité.`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`ici`,marketplaces:`Marketplaces`,rate:`taux`,"to learn more about embedded wallets.":`pour en savoir plus sur les portefeuilles intégrés.`,unavailable:`indisponible`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`votre@email.com`},ha={" and ":` y `,"'{{policyName}}' on connect":`'{{policyName}}' al conectarse`,"'{{policyName}}' on {{date}}":`'{{policyName}}' el {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>Tu privacidad es importante.</bold> Tienes el control, acepta para habilitar funciones opcionales como cookies y analíticas que nos ayudan a mejorar tu experiencia.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Se requiere un dominio .vet para personalizar su perfil. Elija un nombre de cuenta para comenzar.`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`Una Cuenta Inteligente es una billetera de contrato inteligente que proporciona seguridad y funcionalidad mejoradas. Permite características como la recuperación social, el procesamiento por lotes de transacciones y más.`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`Un nombre de dominio es una especie de apodo para tu dirección de cartera. Te permite identificar fácilmente tu cartera e interactuar con aplicaciones descentralizadas utilizando un nombre legible por humanos. Por ejemplo, si tu dirección de cartera es 0x1234567890, tu apodo podría ser "alice.vechain".`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`Una red en blockchain se refiere al entorno donde ocurren las transacciones. VeChain tiene dos redes principales: Mainnet (la red en vivo donde ocurren transacciones reales) y Testnet (un entorno de prueba para desarrolladores). La red a la que estás conectado se muestra en la parte superior de este modal.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Hay una nueva actualización disponible para su cuenta inteligente. Por favor, diríjase a la sección 'Acceso y Seguridad' para actualizarlo.`,"A new version is available for your account":`Una nueva versión está disponible para su cuenta`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`Una billetera es tu puerta de entrada a la blockchain de VeChain. Almacena tus claves privadas y te permite gestionar de manera segura tus activos digitales, enviar y recibir tokens, e interactuar con aplicaciones descentralizadas. Piensa en ella como tu cuenta bancaria digital para transacciones blockchain.`,AVAILABLE:`DISPONIBLE`,Accept:`Aceptar`,"Accept all":`Aceptar todo`,"Accept selected":`Aceptar seleccionado`,"Access and security":`Acceso y seguridad`,"Account Upgrade Required":`Actualización de cuenta necesaria`,"Account already upgraded":`Cuenta ya actualizada`,"Account upgrade required":`Actualización de cuenta requerida`,Active:`Activo`,"Add Login Method":`Agregar método de inicio de sesión`,"Add Token":`Agregar Token`,"Add to shortcuts":`Agregar a accesos directos`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Agregar más cuentas vinculadas aumenta la seguridad contra la pérdida de acceso, pero también introduce vectores de ataque adicionales potenciales. Para una mayor seguridad, recomendamos habilitar MFA.`,"Address is required":`Se requiere dirección`,All:`Todo`,"All apps":`Todas las aplicaciones`,"All policies you have accepted":`Todas las políticas que has aceptado`,"All tokens":`Todos los tokens`,"Already have an x2earn app wallet?":`¿Ya tienes una billetera de aplicación x2earn?`,Amount:`Cantidad`,"Amount is required":`Se requiere un monto`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`Una aplicación X2Earn en VeBetterDAO es una app sostenible que recompensa a los usuarios con tokens B3TR por acciones ecológicas. Estas aplicaciones deben distribuir B3TR, vincular las billeteras de los usuarios y proporcionar pruebas de acciones sostenibles. Se unen a VeBetterDAO a través de la recomendación y participan en rondas semanales de asignación de tokens.`,"An unexpected error occurred.":`Ocurrió un error inesperado.`,Apple:`Apple`,Archived:`Archivado`,"Archived Notifications":`Notificaciones archivadas`,"Are you sure you want to disconnect your wallet?":`¿Estás seguro de que quieres desconectar tu billetera?`,"Are you sure you want to reject the policies and disconnect?":`¿Estás seguro de que deseas rechazar las políticas y desconectar?`,"Are you sure you want to set your domain name to":`¿Estás seguro de que quieres establecer tu nombre de dominio en`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`¿Está seguro de que desea desvincular {{accountType}} como método de inicio de sesión vinculado a {{accountDescription}}?`,"Are you sure you want to unset your current domain?":`¿Está seguro de que desea desactivar su dominio actual?`,Assets:`Activos`,At:`En`,"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ños. B3TR se utiliza para recompensas, gobernanza y respaldar tokens VOT3 en una proporción de 1:1. Apoya aplicaciones sostenibles y la gestión del tesoro del DAO.`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`Respaldar tu billetera es crucial ya que eres el único con acceso a tus claves privadas. Si algo sale mal, tener tu clave privada es la única manera de recuperar tus activos. Cómo hacer un respaldo depende de cómo accedas a tu billetera: Si usas VeWorld, la opción de respaldo está disponible dentro de la aplicación. Para usuarios de inicio de sesión social, puedes encontrar opciones de respaldo en la sección Billetera. Si estás conectado a través de VeChain u otra aplicación del ecosistema, necesitarás visitar el sitio web original, iniciar sesión y acceder a la sección de Billetera desde allí.`,"Backup your wallet":`Respalda tu billetera`,"Backup your wallet, configure MFA and set recovery options":`Realiza una copia de seguridad de tu billetera, configura MFA y establece opciones de recuperación`,Balance:`Saldo`,"Benefits of this upgrade:":`Beneficios de esta actualización:`,Best:`Mejor`,"Better transaction handling":`Mejor manejo de transacciones`,Bridge:`Puente`,"By continuing, you agree to":`Al continuar, aceptas`,Cancel:`Cancelar`,"Choose Name":`Elegir Nombre`,"Choose a name for your account.":`Elija un nombre para su cuenta.`,"Choose a unique .vet domain name for your account.":`Elige un nombre de dominio único .vet para tu cuenta.`,"Choose account name":`Elige el nombre de la cuenta`,"Choose name":`Elige nombre`,"Choose your account name":`Elige el nombre de tu cuenta`,"Claim your vet domain!":`¡Reclama tu dominio vet!`,"Claiming name...":`Reclamando nombre...`,"Clear all":`Borrar todo`,"Cleared notifications will appear here":`Las notificaciones borradas aparecerán aquí`,Click:`Haga clic`,"Click below to access {{ name }} and explore its features.":`Haga clic abajo para acceder a {{ name }} y explorar sus características.`,Close:`Cerrar`,"Close and do this later":`Cerrar y hacer esto después`,"Close announcement":`Cerrar anuncio`,"Coming Soon!":`¡Próximamente!`,"Coming soon":`Próximamente`,Confirm:`Confirmar`,"Confirm Changes":`Confirmar cambios`,"Confirm Name":`Confirmar Nombre`,"Confirm Unset Domain":`Confirmar desactivación de dominio`,"Confirm the transaction in your wallet to complete it.":`Confirme la transacción en su monedero para completarla.`,"Confirm transaction":`Confirmar transacción`,"Connect an external wallet for easier access":`Conectar una billetera externa para un acceso más fácil`,"Connect wallet":`Conectar billetera`,"Connect with VeWorld wallet":`Conectar con la billetera VeWorld`,"Connect your Apple account for easier access":`Conecta tu cuenta de Apple para un acceso más fácil`,"Connect your Discord account for easier access":`Conecta tu cuenta de Discord para un acceso más fácil`,"Connect your Farcaster account for easier access":`Conecta tu cuenta de Farcaster para un acceso más fácil`,"Connect your Github account for easier access":`Conecta tu cuenta de Github para un acceso más fácil`,"Connect your Google account for easier access":`Conecta tu cuenta de Google para un acceso más fácil`,"Connect your Instagram account for easier access":`Conecta tu cuenta de Instagram para un acceso más fácil`,"Connect your LinkedIn account for easier access":`Conecta tu cuenta de LinkedIn para un acceso más fácil`,"Connect your Spotify account for easier access":`Conecta tu cuenta de Spotify para un acceso más fácil`,"Connect your Telegram account for easier access":`Conecta tu cuenta de Telegram para un acceso más fácil`,"Connect your Tiktok account for easier access":`Conecta tu cuenta de Tiktok para un acceso más fácil`,"Connect your Twitter account for easier access":`Conecta tu cuenta de Twitter para un acceso más fácil`,"Connect your email for easier access":`Conecta tu correo electrónico para un acceso más fácil`,"Connect your phone number for easier access":`Conecta tu número de teléfono para un acceso más fácil`,"Connecting to VeChain":`Conectando a VeChain`,"Connecting with":`Conectando con`,"Connecting with Passkey":`Conectando con Passkey`,"Connecting...":`Conectando...`,"Connection Details":`Detalles de la Conexión`,"Connection Failed":`Conexión Fallida`,"Connection Type":`Tipo de Conexión`,"Connection details":`Detalles de conexión`,Continue:`Continuar`,"Continue with Github":`Continuar con Github`,"Continue with Google":`Continuar con Google`,"Cookie Policy":`Política de Cookies`,"Cookie policy outlining the use of cookies and tracking technologies.":`Política de cookies que describe el uso de cookies y tecnologías de seguimiento.`,"Copy your address or scan this QR code":`Copia tu dirección o escanea este código QR`,Currency:`Moneda`,Current:`Actual`,"Current domain":`Dominio actual`,Customization:`Personalización`,Customize:`Personalizar`,"Customize profile":`Personalizar perfil`,"Customize the appearance of your wallet.":`Personaliza la apariencia de tu billetera.`,Description:`Descripción`,"Description must be less than 100 characters":`La descripción debe tener menos de 100 caracteres`,"Didn't get an email?":`¿No recibiste un correo electrónico?`,Discord:`Discord`,"Display Name":`Nombre para mostrar`,"Display name must be less than 25 characters":`El nombre para mostrar debe tener menos de 25 caracteres`,"Domain set":`Dominio configurado`,"Domain unset":`Dominio desactivado`,Done:`Hecho`,Ecosystem:`Ecosistema`,"Eg: DevRel @ ENS Labs":`Ej: DevRel @ ENS Labs`,Email:`Correo Electrónico`,"Email address":`Dirección de correo electrónico`,"Embedded wallet":`Cartera integrada`,"Enhanced compatibility with dApps":`Compatibilidad mejorada con dApps`,"Enter confirmation code":`Introducir código de confirmación`,"Enter your display name":`Introduce tu nombre para mostrar`,"Enter your name":`Ingrese su nombre`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`Intercambia tus activos digitales entre VeChain y otras redes blockchain de manera fácil y segura. Los intercambios se ejecutan a través de socios que aprovechan tanto intercambios descentralizados como centralizados para convertir tokens.`,"Existing Custom Tokens":`Tokens Personalizados Existentes`,"Failed to connect with Passkey":`Error al conectar con Passkey`,"Failed to connect with VeChain":`Error al conectar con VeChain`,"Failed to connect with ecosystem app":`Error al conectar con la aplicación del ecosistema`,"Failed to load App Hub apps":`Error al cargar aplicaciones de App Hub`,Farcaster:`Farcaster`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`La delegación de tarifas es una función única de VeChain que permite que otra persona (un delegado) pague las tarifas de tus transacciones. Aunque muchas aplicaciones descentralizadas (dApps) y proveedores de servicios actúan como delegados para facilitar a los nuevos usuarios el comienzo, es posible que algunas transacciones aún requieran que pagues tarifas usando tu propio VTHO. Las tarifas son necesarias para prevenir el spam en la red y compensar a los nodos que procesan y validan las transacciones en la cadena de bloques. Al pagar las tarifas tú mismo, podrás seleccionar VTHO de tus activos para cubrir el costo de la transacción.`,"Filter by category":`Filtrar por categoría`,"Finally say goodbye to 0x addresses":`Finalmente di adiós a las direcciones 0x`,"For developers":`Para desarrolladores`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Por razones de seguridad, puedes gestionar la configuración de tu billetera integrada solo en la plataforma {{appName}}.`,"Found following rates":`Se encontraron las siguientes tasas`,From:`De`,"Gas fee":`Tarifa de gas`,General:`General`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`¡Buenas noticias! Las transacciones multicláusula ahora son totalmente compatibles con las cuentas inteligentes. Ahora puedes disfrutar de una mejor experiencia de usuario, menores costos de gas y mayor seguridad.`,Google:`Google`,Help:`Ayuda`,"How do I backup my wallet?":`¿Cómo hago una copia de seguridad de mi billetera?`,"How do I send tokens?":`¿Cómo envío tokens?`,"How is my wallet secured?":`¿Cómo está asegurada mi billetera?`,"I have read and agree to ":`He leído y acepto `,"Ignore and continue":`Ignorar y continuar`,"Improved security features":`Funciones de seguridad mejoradas`,Instagram:`Instagram`,"Insufficient {{symbol}} balance":`Saldo insuficiente de {{symbol}}`,"Invalid address or domain":`Dirección o dominio no válido`,"Invalid contract address":`Dirección de contrato inválida`,"Invalid token address":`Dirección de token no válida`,Language:`Idioma`,"Launch vechain.energy":`Lanzar vechain.energy`,"Launch {{name}}":`Lanzar {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Acuerdo legal entre tú, Vechain Kit y la aplicación actual, que describe las reglas para usar los servicios de billetera.`,"Link Apple Account":`Vincular cuenta de Apple`,"Link Discord Account":`Vincular Cuenta de Discord`,"Link Email Account":`Vincular cuenta de correo electrónico`,"Link External Wallet":`Vincular monedero externo`,"Link Farcaster Account":`Vincular cuenta de Farcaster`,"Link Github Account":`Vincular cuenta de Github`,"Link Google Account":`Vincular cuenta de Google`,"Link Instagram Account":`Vincular cuenta de Instagram`,"Link LinkedIn Account":`Vincular cuenta de LinkedIn`,"Link Phone Number":`Vincular número de teléfono`,"Link Spotify Account":`Vincular cuenta de Spotify`,"Link Telegram Account":`Vincular cuenta de Telegram`,"Link Tiktok Account":`Vincular cuenta de Tiktok`,"Link Twitter Account":`Vincular cuenta de Twitter`,LinkedIn:`LinkedIn`,"Loading your domains...":`Cargando tus dominios...`,"Log in or sign up":`Iniciar sesión o registrarse`,"Logged in with":`Conectado con`,Login:`Iniciar sesión`,"Login failed:":`Error de inicio de sesión:`,"Login methods":`Métodos de inicio de sesión`,"Login methods and Passkeys":`Métodos de inicio de sesión y claves de acceso`,Logout:`Cerrar sesión`,"Manage Custom Tokens":`Gestionar tokens personalizados`,"Manage MFA":`Gestionar MFA`,"Manage Recovery":`Gestionar la Recuperación`,"Manage on {{appName}}":`Gestionar en {{appName}}`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`Administra la configuración de seguridad de tu billetera integrada: gestiona tus métodos de inicio de sesión, añade una clave de acceso o realiza una copia de seguridad de tu billetera para no perder nunca el acceso a tus activos.`,"Manage your login methods and passkeys":`Gestiona tus métodos de inicio de sesión y claves de acceso`,"Manage your preferences for currency, language, and appearance.":`Administra tus preferencias de moneda, idioma y apariencia.`,"Minimum {{symbol}} transfer is {{min}}":`La transferencia mínima de {{symbol}} es {{min}}`,More:`Más`,"Multiclause Transactions Are Now Supported":`Las transacciones multicláusula ahora son compatibles`,"Name must be at least 3 characters long":`El nombre debe tener al menos 3 caracteres`,"Name your account to make it easier to exchange assets":`Nombra tu cuenta para facilitar el intercambio de activos`,Network:`Red`,New:`Nuevo`,"New image selected":`Nueva imagen seleccionada`,"No additional accounts available to link":`No hay cuentas adicionales disponibles para vincular`,"No application from VeChain ecosystem is available to login.":`No hay ninguna aplicación del ecosistema VeChain disponible para iniciar sesión.`,"No apps found in this category":`No se encontraron aplicaciones en esta categoría`,"No archived notifications":`No hay notificaciones archivadas`,"No assets":`Sin activos`,"No notifications":`No hay notificaciones`,"No policies accepted":`Ninguna política aceptada`,"No questions found":`No se encontraron preguntas`,"No quotes available":`No hay cotizaciones disponibles`,"No tokens found":`No se encontraron fichas`,"Node URL":`URL del nodo`,Notifications:`Notificaciones`,"Only letters, numbers, and hyphens are allowed":`Solo se permiten letras, números y guiones`,Optional:`Opcional`,"Other options":`Otras opciones`,Passkey:`Clave de acceso`,"Phone Number":`Número de teléfono`,"Please approve the request in the connection request window...":`Por favor, aprueba la solicitud en la ventana de solicitud de conexión...`,"Please be sure to keep this wallet safe and backed up.":`Por favor, asegúrese de mantener esta billetera segura y respaldada.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Por favor, revisa {{email}} para un correo electrónico de privy.io e ingresa tu código a continuación.`,"Please complete the passkey authentication...":`Por favor, completa la autenticación de clave de acceso...`,"Please confirm the transaction in your wallet.":`Por favor, confirma la transacción en tu billetera.`,"Please enter a valid Twitter handle without @":`Por favor, ingrese un identificador de Twitter válido sin @`,"Please enter a valid contract address":`Por favor, ingrese una dirección de contrato válida`,"Please enter a valid email address":`Por favor, ingrese una dirección de correo electrónico válida`,"Please enter a valid number":`Por favor, ingrese un número válido`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Por favor, tómese un momento para revisar todas las políticas, siendo la aceptación obligatoria para continuar.`,Policy:`Política`,"Preparing changes...":`Preparando cambios...`,"Privacy Policy":`Política de privacidad`,"Privacy policy outlining the data collection and processing practices.":`Política de privacidad que describe las prácticas de recopilación y procesamiento de datos.`,"Privy Status":`Privy Status`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy construye la infraestructura de incorporación de usuarios y billetera incrustada para permitir mejores productos construidos sobre rieles de criptomonedas. Esto significa integrar el control de activos dentro de las aplicaciones mismas para permitir que usuarios, empresas o máquinas usen activos digitales a través de experiencias de producto fluidas.`,"Processing transaction...":`Procesando transacción...`,Profile:`Perfil`,"Profile Image":`Imagen de perfil`,"Profile Picture":`Imagen de Perfil`,"Profile Updated":`Perfil actualizado`,"Read More":`Read More`,Receive:`Recibir`,"Receive tokens":`Recibir tokens`,"Reduced gas costs for operations":`Reducción de costos de gas para operaciones`,"Reject and logout":`Rechazar y cerrar sesión`,Remove:`Eliminar`,"Remove Login Method":`Eliminar método de inicio de sesión`,"Remove from shortcuts":`Eliminar de los accesos directos`,"Remove your current domain name":`Eliminar su nombre de dominio actual`,"Resend code":`Reenviar código`,Retry:`Reintentar`,"Save Changes":`Guardar cambios`,"Saving changes...":`Guardando cambios...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Despídete de las direcciones 0x, ¡reclama tu subdominio .veworld.vet ahora gratis!`,"Search Apps":`Buscar aplicaciones`,"Search FAQ":`Buscar en las preguntas frecuentes`,"Security preferences":`Preferencias de seguridad`,"Security settings":`Configuraciones de seguridad`,"Select Additional Login Method":`Seleccionar Método de Inicio de Sesión Adicional`,"Select Token":`Seleccionar Token`,"Select currency":`Seleccionar moneda`,"Select language":`Seleccionar idioma`,"Select token":`Seleccionar token`,Send:`Enviar`,"Send all":`Enviar todo`,"Sending Transaction...":`Enviando Transacción...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Enviar a OceanX u otros intercambios puede resultar en la pérdida de fondos.`,"Sending...":`Enviando...`,"Set a domain first":`Primero establece un dominio`,"Set up Passkey":`Configurar clave de acceso`,"Set up a passkey for easier access":`Configura una clave de acceso para facilitar el acceso`,Settings:`Configuración`,"Share on":`Compartir en`,Shortcuts:`Atajos`,"Show Less":`Show Less`,"Show More":`Mostrar más`,"Slippage tolerance":`Tolerancia al deslizamiento`,"Smart Account":`Cuenta Inteligente`,"Smart Account detected":`Cuenta inteligente detectada`,"Something went wrong":`Algo salió mal`,"Something went wrong. Please try again.":`Algo salió mal. Por favor intenta de nuevo.`,Source:`Fuente`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Mantente atento a nuestra próxima función de Actividad`,"Stay tuned for our upcoming NFT feature":`Mantente atento a nuestra próxima función de NFT`,Submit:`Enviar`,Swap:`Intercambiar`,"Swap all":`Intercambiar todo`,"Swapping...":`Intercambiando...`,Telegram:`Telegram`,"Terms and Conditions":`Términos y condiciones`,"Terms and Policies":`Términos y políticas`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Estas cuentas están vinculadas a tu cartera integrada y se pueden usar para iniciar sesión en tu cartera y acceder a tu clave privada.`,"This address only supports VeChain assets.":`Esta dirección solo admite activos de VeChain.`,"This domain is already taken":`Este dominio ya está en uso`,"This domain is protected":`Este dominio está protegido`,"This is taking longer than expected.":`Esto está tardando más de lo esperado.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Esta es su billetera principal, creada por {{element}} y asegurada por Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Esta billetera es la propietaria de tu cuenta inteligente, la cual se utiliza como tu identidad y como puerta de entrada para tus interacciones con la blockchain.`,Tiktok:`Tiktok`,To:`Para`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Para continuar interactuando con la blockchain de VeChain y completar su operación, su cuenta inteligente debe actualizarse a la última versión (v3).`,"Token Contract Address":`Dirección del contrato del token`,"Token already added":`Token ya agregado`,Tools:`Herramientas`,"Transaction failed":`Transacción fallida`,"Transaction failed:":`Transacción fallida:`,"Transaction is being processed, it can take up to 15 seconds.":`La transacción está siendo procesada, puede tardar hasta 15 segundos.`,"Transaction successful":`Transacción exitosa`,"Transaction successful!":`¡Transacción exitosa!`,"Try again":`Inténtalo de nuevo`,"Try searching with a different term":`Intente buscar con un término diferente`,Twitter:`Twitter`,"Twitter username":`Nombre de usuario de Twitter`,"Type the receiver address or domain":`Escriba la dirección o dominio del destinatario`,UNAVAILABLE:`NO DISPONIBLE`,"Unable to fetch the price":`No se puede obtener el precio`,"Unset current domain":`Desactivar dominio actual`,"Unsetting current domain...":`Desactivando dominio actual...`,"Upgrade Smart Account to V3":`Actualizar cuenta inteligente a V3`,"Upgrade Successful!":`¡Actualización exitosa!`,"Upgrade account":`Actualizar cuenta`,"Upgrading...":`Actualizando...`,"Use social login with VeChain":`Usa inicio de sesión social con VeChain`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VET es la criptomoneda principal de la red VeChain. Representa valor y propiedad en el ecosistema VeChain, similar a cómo las acciones representan propiedad en una empresa. Mantener VET genera automáticamente VTHO, que es necesario para pagar las transacciones en la red.`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO (VeThor) es el token de energía o 'gas' de la red VeChain. Se utiliza para pagar las tarifas de transacción al interactuar con la blockchain. VTHO se genera automáticamente al mantener tokens VET, creando un sistema de dos tokens que ayuda a mantener la estabilidad de la red y gestionar los costos de transacción.`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO es una organización descentralizada en la blockchain de VeChain enfocada en la sostenibilidad. Los miembros participan en la gobernanza de la DAO usando tokens B3TR para recompensas y VOT3 para votar en propuestas y rondas semanales de asignación de tokens.`,"VeChain Kit":`VeChain Kit`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`VeChain, con sede en San Marino, Europa, es un ecosistema pionero de blockchain y creador de VeChainThor, una plataforma de contratos inteligentes de clase mundial que impulsa la adopción de blockchain en el mundo real. Fundada en 2015 por Sunny Lu, VeChain ha trabajado constantemente para ofrecer una solución blockchain transparente, eficiente, escalable y adaptable.`,"VeWorld Wallet":`Billetera VeWorld`,"Vechain Kit Policy":`Política del Kit Vechain`,"View Current Policy":`Ver política actual`,"View on explorer":`Ver en el explorador`,"View transaction on the explorer":`Ver transacción en el explorador`,"Waiting for confirmation":`Esperando confirmación`,"Waiting for confirmation...":`Esperando confirmación...`,"Waiting wallet confirmation...":`Esperando confirmación de la billetera...`,Wallet:`Billetera`,"Wallet secured by":`Billetera asegurada por`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`Le recomendamos encarecidamente exportar su clave privada para respaldar su billetera. Esto asegura que pueda restaurarla si es necesario o transferirla a autocustodia usando`,Website:`Sitio web`,"Website URL":`URL del sitio web`,"Website URL must start with https://":`La URL del sitio web debe comenzar con https://`,"What is B3TR?":`¿Qué es B3TR?`,"What is Privy?":`¿Qué es Privy?`,"What is VET?":`¿Qué es VET?`,"What is VTHO?":`¿Qué es VTHO?`,"What is VeBetterDAO?":`¿Qué es VeBetterDAO?`,"What is VeChain?":`¿Qué es VeChain?`,"What is a Smart Account?":`¿Qué es una Smart Account?`,"What is a domain name?":`¿Qué es un nombre de dominio?`,"What is a network?":`¿Qué es una red?`,"What is a wallet?":`¿Qué es una billetera?`,"What is an x2earn application?":`¿Qué es una aplicación x2earn?`,"What is fee delegation?":`¿Qué es la delegación de tarifas?`,"When you have accepted a policy, it will appear here":`Cuando haya aceptado una política, aparecerá aquí`,"When you have notifications, they will appear here":`Cuando tengas notificaciones, aparecerán aquí`,"YOU OWN THIS":`ESTO ES TUYO`,"You accepted current policy on {{date}}":`Aceptó la política actual el {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Estás usando una Cartera Integrada asegurada por tu método de inicio de sesión social, asegurando una experiencia VeChain sin problemas.`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`Puedes enviar tokens haciendo clic en el icono de enviar en la sección de Acciones Rápidas. Ingresa la dirección del destinatario o el nombre de dominio de VeChain, selecciona el token y especifica la cantidad que deseas enviar.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Tiene una cuenta inteligente activa asociada a esta billetera. Se ha establecido como su identidad principal.`,"You may want to try establishing the connection again.":`Es posible que quieras intentar establecer la conexión nuevamente.`,"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 última versión. Ahora puede disfrutar de una mejor experiencia de usuario, menores costos de gas y mayor seguridad.`,"Your address has been successfully set to {{name}}":`Tu dirección se ha configurado exitosamente a {{name}}`,"Your changes have been saved successfully.":`Tus cambios han sido guardados exitosamente.`,"Your domain has been unset successfully.":`Su dominio ha sido desactivado exitosamente.`,"Your embedded wallet":`Su billetera integrada`,"Your existing domains":`Tus dominios existentes`,"Your smart account is already upgraded to this version.":`Su cuenta inteligente ya está actualizada a esta versión.`,"Your smart account needs to be upgraded to the latest version (v3).":`Su cuenta inteligente necesita ser actualizada a la última versión (v3).`,"Your tokens":`Tus tokens`,"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ómo accedas a ella. Con opciones de autocustodia como la extensión VeWorld, la aplicación móvil o la billetera de hardware, tienes control total sobre tus claves privadas. Esta extensión no tiene acceso a tus claves privadas. Al iniciar sesión con cuentas sociales o VeChain, tu billetera es creada y asegurada por Privy y gestionada por VeChain, ofreciendo una experiencia de integración más sencilla mientras se mantiene la seguridad.`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`aquí`,marketplaces:`Marketplaces`,rate:`tasa`,"to learn more about embedded wallets.":`para saber más sobre carteras integradas.`,unavailable:`no disponible`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`tu@email.com`},ga={" and ":` 和 `,"'{{policyName}}' on connect":`连接时的'{{policyName}}'`,"'{{policyName}}' on {{date}}":`'{{policyName}}' 于 {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>您的隐私至关重要。</bold> 您掌控一切,接受以启用诸如 cookies 和分析之类的可选功能,以帮助我们提升您的体验。`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`需要一个 .vet 域名来自定义您的个人资料。选择一个账户名称以开始。`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`智能账户是一种智能合约钱包,提供增强的安全性和功能。它支持社交恢复、交易批处理等功能。`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`域名是您钱包地址的一种昵称。它可以帮助您轻松识别钱包并使用人性化的名称与dApps进行交互。例如,如果您的钱包地址是0x1234567890,您的昵称可能是“alice.vechain”。`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`区块链中的网络是指交易发生的环境。VeChain有两个主要网络:主网(真实交易发生的活跃网络)和测试网(供开发人员使用的测试环境)。您连接的网络显示在此模态框的顶部。`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`您的智能账户有新的升级可用。请访问“访问和安全”部分以进行升级。`,"A new version is available for your account":`您的账户有新版本可用`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`钱包是您访问VeChain区块链的门户。它存储您的私钥,允许您安全地管理数字资产,发送和接收代币,并与去中心化应用程序交互。可以将其视为区块链交易的数字银行账户。`,AVAILABLE:`可用`,Accept:`接受`,"Accept all":`全部接受`,"Accept selected":`接受已选择`,"Access and security":`访问和安全`,"Account Upgrade Required":`需要账户升级`,"Account already upgraded":`账户已升级`,"Account upgrade required":`需要账户升级`,Active:`活跃`,"Add Login Method":`添加登录方式`,"Add Token":`添加令牌`,"Add to shortcuts":`添加到快捷方式`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`添加更多关联账户可以增强防止访问丢失的安全性,但也引入了额外的潜在攻击向量。为了增强安全性,我们建议启用多因素认证(MFA)。`,"Address is required":`地址是必需的`,All:`所有`,"All apps":`所有应用`,"All policies you have accepted":`您已接受的所有政策`,"All tokens":`所有代币`,"Already have an x2earn app wallet?":`已经有一个x2earn应用钱包了吗?`,Amount:`金额`,"Amount is required":`金额是必需的`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`VeBetterDAO 的 X2Earn 应用程序是一款可持续发展的应用程序,用户因生态友好行为而获得 B3TR 代币奖励。这些应用程序必须分发 B3TR,链接用户钱包并提供可持续行动的证明。它们通过背书加入 VeBetterDAO,并参与每周的代币分配轮次。`,"An unexpected error occurred.":`发生了意外错误。`,Apple:`苹果`,Archived:`已归档`,"Archived Notifications":`已归档通知`,"Are you sure you want to disconnect your wallet?":`您确定要断开钱包连接吗?`,"Are you sure you want to reject the policies and disconnect?":`您确定要拒绝这些政策并断开连接吗?`,"Are you sure you want to set your domain name to":`您确定要将您的域名设置为`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`您确定要取消链接 {{accountDescription}} 中作为登录方式之一的 {{accountType}} 吗?`,"Are you sure you want to unset your current domain?":`您确定要取消设置当前域名吗?`,Assets:`资产`,At:`在`,"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 是 VeBetterDAO 的激励性代币,基于 VechainThor 区块链构建。其供应量上限为 10 亿个代币,分 12 年每周发放。B3TR 用于奖励、治理以及 1:1 支持 VOT3 代币。它支持可持续性应用和 DAO 财务管理。`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`备份您的钱包非常重要,因为您是唯一能访问您的私钥的人。如果出现问题,拥有您的私钥是恢复资产的唯一方法。备份方式取决于您如何访问钱包:如果使用 VeWorld,备份选项在应用内可用。对于社交登录用户,您可以在钱包部分找到备份选项。如果通过 VeChain 或其他生态系统应用连接,您需要访问原始网站,登录并从那里访问钱包部分。`,"Backup your wallet":`备份您的钱包`,"Backup your wallet, configure MFA and set recovery options":`备份您的钱包,配置多因素身份验证并设置恢复选项`,Balance:`余额`,"Benefits of this upgrade:":`此升级的好处:`,Best:`最佳`,"Better transaction handling":`更好的交易处理`,Bridge:`桥接`,"By continuing, you agree to":`继续即表示您同意`,Cancel:`取消`,"Choose Name":`选择姓名`,"Choose a name for your account.":`为您的账户选择一个名称。`,"Choose a unique .vet domain name for your account.":`为您的帐户选择一个独特的 .vet 域名。`,"Choose account name":`选择账户名称`,"Choose name":`选择名称`,"Choose your account name":`选择您的账户名称`,"Claim your vet domain!":`领取您的 vet 域名!`,"Claiming name...":`认领名称...`,"Clear all":`清除全部`,"Cleared notifications will appear here":`已清除的通知将显示在这里`,Click:`点击`,"Click below to access {{ name }} and explore its features.":`点击下方以访问 {{ name }} 并探索其功能。`,Close:`关闭`,"Close and do this later":`关闭并稍后处理`,"Close announcement":`关闭公告`,"Coming Soon!":`敬请期待!`,"Coming soon":`即将推出`,Confirm:`确认`,"Confirm Changes":`确认更改`,"Confirm Name":`确认姓名`,"Confirm Unset Domain":`确认取消设置域名`,"Confirm the transaction in your wallet to complete it.":`在您的钱包中确认交易以完成它。`,"Confirm transaction":`确认交易`,"Connect an external wallet for easier access":`连接外部钱包以便更轻松访问`,"Connect wallet":`连接钱包`,"Connect with VeWorld wallet":`连接到 VeWorld 钱包`,"Connect your Apple account for easier access":`连接您的 Apple 账户以便更轻松地访问`,"Connect your Discord account for easier access":`连接您的 Discord 帐号以更轻松地访问`,"Connect your Farcaster account for easier access":`连接您的 Farcaster 账户以便更轻松地访问`,"Connect your Github account for easier access":`连接您的 Github 账户以便更轻松地访问`,"Connect your Google account for easier access":`连接您的 Google 账户以便更轻松地访问`,"Connect your Instagram account for easier access":`连接您的 Instagram 账户以便更轻松地访问`,"Connect your LinkedIn account for easier access":`连接您的 LinkedIn 账户以便更轻松地访问`,"Connect your Spotify account for easier access":`连接您的 Spotify 账户以便更轻松地访问`,"Connect your Telegram account for easier access":`连接您的 Telegram 账户以便更轻松地访问`,"Connect your Tiktok account for easier access":`连接您的 Tiktok 账户以便更轻松地访问`,"Connect your Twitter account for easier access":`连接您的 Twitter 账户以便更轻松地访问`,"Connect your email for easier access":`连接您的电子邮件以便更轻松地访问`,"Connect your phone number for easier access":`连接您的电话号码以便更轻松地访问`,"Connecting to VeChain":`正在连接到 VeChain`,"Connecting with":`连接中`,"Connecting with Passkey":`通过Passkey连接`,"Connecting...":`正在连接...`,"Connection Details":`连接详情`,"Connection Failed":`连接失败`,"Connection Type":`连接类型`,"Connection details":`连接详情`,Continue:`继续`,"Continue with Github":`继续使用 Github`,"Continue with Google":`通过Google继续`,"Cookie Policy":`Cookie 政策`,"Cookie policy outlining the use of cookies and tracking technologies.":`Cookie 政策详述了对 cookies 和追踪技术的使用。`,"Copy your address or scan this QR code":`复制您的地址或扫描此二维码`,Currency:`货币`,Current:`当前`,"Current domain":`当前域名`,Customization:`自定义`,Customize:`自定义`,"Customize profile":`自定义个人资料`,"Customize the appearance of your wallet.":`自定义您的钱包外观。`,Description:`描述`,"Description must be less than 100 characters":`描述必须少于100个字符`,"Didn't get an email?":`没有收到电子邮件?`,Discord:`Discord`,"Display Name":`显示名称`,"Display name must be less than 25 characters":`显示名称必须少于25个字符`,"Domain set":`域名已设置`,"Domain unset":`域名已取消设置`,Done:`完成`,Ecosystem:`生态系统`,"Eg: DevRel @ ENS Labs":`例如:DevRel @ ENS Labs`,Email:`电子邮件`,"Email address":`电子邮件地址`,"Embedded wallet":`嵌入式钱包`,"Enhanced compatibility with dApps":`增强的dApp兼容性`,"Enter confirmation code":`输入确认码`,"Enter your display name":`输入您的显示名称`,"Enter your name":`输入你的名字`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`轻松、安全地在VeChain和其他区块链网络之间交换您的数字资产。兑换通过利用去中心化和中心化交易所的合作伙伴执行,以转换代币。`,"Existing Custom Tokens":`现有自定义令牌`,"Failed to connect with Passkey":`无法连接到Passkey`,"Failed to connect with VeChain":`无法连接到唯链(VeChain)`,"Failed to connect with ecosystem app":`无法连接到生态系统应用程序`,"Failed to load App Hub apps":`加载 App Hub 应用失败`,Farcaster:`Farcaster`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`费用委托是唯链(VeChain)的一个独特功能,它允许其他人(即委托者)为您的交易费用买单。虽然许多dApp和服务提供商充当委托者以方便新用户上手,但某些交易可能仍需要您使用自己的VTHO支付费用。费用是防止网络垃圾及补偿处理和验证区块链交易的节点所必需的。在您自己支付费用时,您可以从资产中选择VTHO来覆盖交易成本。`,"Filter by category":`按类别筛选`,"Finally say goodbye to 0x addresses":`最终告别0x地址`,"For developers":`为开发者`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`出于安全原因,您只能在 {{appName}} 平台上管理嵌入式钱包设置。`,"Found following rates":`找到以下汇率`,From:`自`,"Gas fee":`燃料费`,General:`常规`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`好消息!多条款交易现在已完全支持智能账户。您现在可以享受更好的用户体验、更低的燃气成本和更高的安全性。`,Google:`Google`,Help:`帮助`,"How do I backup my wallet?":`如何备份我的钱包?`,"How do I send tokens?":`我如何发送代币?`,"How is my wallet secured?":`我的钱包如何保证安全?`,"I have read and agree to ":`我已阅读并同意`,"Ignore and continue":`忽略并继续`,"Improved security features":`改进的安全功能`,Instagram:`Instagram`,"Insufficient {{symbol}} balance":`{{symbol}}余额不足`,"Invalid address or domain":`无效的地址或域名`,"Invalid contract address":`无效的合约地址`,"Invalid token address":`令牌地址无效`,Language:`语言`,"Launch vechain.energy":`启动vechain.energy`,"Launch {{name}}":`启动 {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`您、Vechain Kit 和当前应用之间的法律协议,详细说明了使用钱包服务的规则。`,"Link Apple Account":`关联 Apple 账户`,"Link Discord Account":`关联 Discord 帐号`,"Link Email Account":`关联电子邮件账户`,"Link External Wallet":`链接外部钱包`,"Link Farcaster Account":`关联 Farcaster 账户`,"Link Github Account":`关联 Github 账户`,"Link Google Account":`关联 Google 账户`,"Link Instagram Account":`关联 Instagram 账户`,"Link LinkedIn Account":`关联 LinkedIn 账户`,"Link Phone Number":`关联电话号码`,"Link Spotify Account":`关联 Spotify 账户`,"Link Telegram Account":`关联 Telegram 账户`,"Link Tiktok Account":`关联 Tiktok 账户`,"Link Twitter Account":`关联 Twitter 账户`,LinkedIn:`LinkedIn`,"Loading your domains...":`正在加载您的域名...`,"Log in or sign up":`登录或注册`,"Logged in with":`登录方式`,Login:`登录`,"Login failed:":`登录失败:`,"Login methods":`登录方式`,"Login methods and Passkeys":`登录方法和密码钥匙`,Logout:`登出`,"Manage Custom Tokens":`管理自定义代币`,"Manage MFA":`管理多因素认证`,"Manage Recovery":`管理恢复`,"Manage on {{appName}}":`在 {{appName}} 上管理`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`管理您的嵌入式钱包的安全设置:处理您的登录方法,添加密码钥匙或备份您的钱包,以免失去对资产的访问。`,"Manage your login methods and passkeys":`管理您的登录方式和通行密钥`,"Manage your preferences for currency, language, and appearance.":`管理您对货币、语言和外观的偏好。`,"Minimum {{symbol}} transfer is {{min}}":`{{symbol}}的最小转账金额为{{min}}`,More:`更多`,"Multiclause Transactions Are Now Supported":`现在支持多条款交易`,"Name must be at least 3 characters long":`名称必须至少包含3个字符`,"Name your account to make it easier to exchange assets":`命名您的账户以便于交换资产`,Network:`网络`,New:`新`,"New image selected":`已选择新图像`,"No additional accounts available to link":`没有可链接的其他账户`,"No application from VeChain ecosystem is available to login.":`没有可供登录的VeChain生态系统应用程序。`,"No apps found in this category":`此类别中未找到应用程序`,"No archived notifications":`没有归档通知`,"No assets":`没有资产`,"No notifications":`没有通知`,"No policies accepted":`未接受任何政策`,"No questions found":`未找到问题`,"No quotes available":`没有可用报价`,"No tokens found":`未找到代币`,"Node URL":`节点 URL`,Notifications:`通知`,"Only letters, numbers, and hyphens are allowed":`只允许使用字母、数字和连字符`,Optional:`可选`,"Other options":`其他选项`,Passkey:`通行密钥`,"Phone Number":`电话号码`,"Please approve the request in the connection request window...":`请在连接请求窗口中批准请求...`,"Please be sure to keep this wallet safe and backed up.":`请务必保证此钱包的安全并进行备份。`,"Please check {{email}} for an email from privy.io and enter your code below.":`请查看 {{email}} 是否有来自 privy.io 的电子邮件,并在下方输入您的代码。`,"Please complete the passkey authentication...":`请完成通行密钥认证...`,"Please confirm the transaction in your wallet.":`请在钱包中确认交易。`,"Please enter a valid Twitter handle without @":`请输入有效的 Twitter 用户名,不要加 @`,"Please enter a valid contract address":`请输入有效的合约地址`,"Please enter a valid email address":`请输入有效的电子邮件地址`,"Please enter a valid number":`请输入有效的号码`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`请花一点时间查看所有政策,接受是继续的必要条件。`,Policy:`政策`,"Preparing changes...":`正在准备更改...`,"Privacy Policy":`隐私政策`,"Privacy policy outlining the data collection and processing practices.":`隐私政策概述了数据收集和处理的做法。`,"Privy Status":`Privy 状态`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy构建用户引导和嵌入式钱包基础设施,以支持基于加密技术的更好产品。这意味着在应用程序中嵌入资产控制,从而使用户、企业或机器能够通过无缝的产品体验使用数字资产。`,"Processing transaction...":`正在处理交易...`,Profile:`个人资料`,"Profile Image":`个人资料图片`,"Profile Picture":`个人资料图片`,"Profile Updated":`个人资料已更新`,"Read More":`Read More`,Receive:`接收`,"Receive tokens":`接收代币`,"Reduced gas costs for operations":`降低操作的燃气成本`,"Reject and logout":`拒绝并登出`,Remove:`移除`,"Remove Login Method":`移除登录方式`,"Remove from shortcuts":`从快捷方式中移除`,"Remove your current domain name":`移除当前域名`,"Resend code":`重新发送代码`,Retry:`重试`,"Save Changes":`保存更改`,"Saving changes...":`正在保存更改...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`告别 0x 地址,立即免费领取您的 .veworld.vet 子域名!`,"Search Apps":`搜索应用`,"Search FAQ":`搜索常见问题`,"Security preferences":`安全偏好`,"Security settings":`安全设置`,"Select Additional Login Method":`选择其他登录方式`,"Select Token":`选择代币`,"Select currency":`选择货币`,"Select language":`选择语言`,"Select token":`选择代币`,Send:`发送`,"Send all":`全部发送`,"Sending Transaction...":`正在发送交易...`,"Sending to OceanX or other exchanges may result in loss of funds.":`发送到OceanX或其他交易所可能导致资金损失。`,"Sending...":`正在发送...`,"Set a domain first":`首先设置一个域名`,"Set up Passkey":`设置通行密钥`,"Set up a passkey for easier access":`设置通行密钥以方便访问`,Settings:`设置`,"Share on":`分享至`,Shortcuts:`快捷键`,"Show Less":`Show Less`,"Show More":`显示更多`,"Slippage tolerance":`滑点容差`,"Smart Account":`智能账户`,"Smart Account detected":`检测到智能账户`,"Something went wrong":`出现错误`,"Something went wrong. Please try again.":`出了点问题,请重试。`,Source:`来源`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`敬请期待我们即将推出的活动功能`,"Stay tuned for our upcoming NFT feature":`敬请期待我们即将推出的 NFT 功能`,Submit:`提交`,Swap:`交换`,"Swap all":`全部交换`,"Swapping...":`正在兑换...`,Telegram:`Telegram`,"Terms and Conditions":`条款和条件`,"Terms and Policies":`条款和政策`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`这些账户与您的嵌入钱包相关联,可以用于登录您的钱包并访问您的私钥。`,"This address only supports VeChain assets.":`此地址仅支持唯链资产。`,"This domain is already taken":`该域名已被占用`,"This domain is protected":`该域名已受保护`,"This is taking longer than expected.":`这比预期花费的时间更长。`,"This is your main wallet, created by {{element}} and secured by Privy.":`这是您的主钱包,由{{element}}创建,并由Privy保护。`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`此钱包是您的智能账户所有者,用作您的身份标识以及区块链交互的网关。`,Tiktok:`Tiktok`,To:`到`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`要继续与VeChain区块链交互并完成您的操作,您的智能账户需要升级到最新版本(v3)。`,"Token Contract Address":`代币合约地址`,"Token already added":`代币已添加`,Tools:`工具`,"Transaction failed":`交易失败`,"Transaction failed:":`交易失败:`,"Transaction is being processed, it can take up to 15 seconds.":`交易正在处理中,可能需要长达15秒。`,"Transaction successful":`交易成功`,"Transaction successful!":`交易成功!`,"Try again":`重试`,"Try searching with a different term":`尝试使用不同的词搜索`,Twitter:`Twitter`,"Twitter username":`Twitter用户名`,"Type the receiver address or domain":`输入接收者地址或域名`,UNAVAILABLE:`不可用`,"Unable to fetch the price":`无法获取价格`,"Unset current domain":`取消设置当前域名`,"Unsetting current domain...":`正在取消设置当前域名...`,"Upgrade Smart Account to V3":`将智能账户升级到V3`,"Upgrade Successful!":`升级成功!`,"Upgrade account":`升级账户`,"Upgrading...":`正在升级...`,"Use social login with VeChain":`使用VeChain进行社交登录`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VET是唯链网络的主要加密货币。它代表了唯链生态系统中的价值和所有权,类似于公司拥有股票。持有VET会自动生成VTHO,而VTHO是用于支付网络交易费用所需的。`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO(唯链能量)是唯链网络的能量或“燃料”代币。它用于支付与区块链交互时的交易费用。通过持有VET代币,VTHO会自动生成,从而形成一个双代币系统,有助于维护网络稳定性和管理交易成本。`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO是一个在唯链区块链上的去中心化组织,专注于可持续发展。成员通过B3TR代币参与DAO的治理以获取奖励,并使用VOT3对提案及每周代币分配轮次进行投票。`,"VeChain Kit":`唯链工具包`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`唯链,总部位于欧洲圣马力诺,是一个开创性的区块链生态系统,也是VeChainThor的创造者,这是一个世界级的智能合约平台,推动现实世界的区块链应用。唯链由陆扬于2015年创立,始终致力于提供透明、高效、可扩展和适应的区块链解决方案。`,"VeWorld Wallet":`VeWorld 钱包`,"Vechain Kit Policy":`唯链工具包政策`,"View Current Policy":`查看当前政策`,"View on explorer":`在浏览器中查看`,"View transaction on the explorer":`在浏览器中查看交易`,"Waiting for confirmation":`等待确认`,"Waiting for confirmation...":`等待确认...`,"Waiting wallet confirmation...":`等待钱包确认...`,Wallet:`钱包`,"Wallet secured by":`钱包安全由`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`我们强烈建议导出您的私钥以备份钱包。这确保您可以在需要时恢复钱包,或将其转移到自托管。`,Website:`网站`,"Website URL":`网站网址`,"Website URL must start with https://":`网站网址必须以 https:// 开头`,"What is B3TR?":`什么是B3TR?`,"What is Privy?":`什么是Privy?`,"What is VET?":`什么是VET?`,"What is VTHO?":`什么是VTHO?`,"What is VeBetterDAO?":`什么是VeBetterDAO?`,"What is VeChain?":`什么是唯链?`,"What is a Smart Account?":`什么是智能账户?`,"What is a domain name?":`什么是域名?`,"What is a network?":`什么是网络?`,"What is a wallet?":`什么是钱包?`,"What is an x2earn application?":`什么是x2earn应用?`,"What is fee delegation?":`什么是费用委托?`,"When you have accepted a policy, it will appear here":`当您接受一项政策时,它将显示在此处`,"When you have notifications, they will appear here":`您有通知时,会显示在这里`,"YOU OWN THIS":`这是你的`,"You accepted current policy on {{date}}":`您在 {{date}} 接受了当前的政策`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`您正在使用一个通过社交登录方式确保安全的嵌入式钱包,确保您顺畅的唯链体验。`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`您可以通过点击快速操作部分的发送图标来发送代币。输入接收者的地址或唯链域名,选择代币,并指定您想要发送的数量。`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`您有一个活跃的智能账户与此钱包关联。它已被设为您的主要身份。`,"You may want to try establishing the connection again.":`您可能需要尝试重新建立连接。`,"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 address has been successfully set to {{name}}":`您的地址已成功设置为{{name}}`,"Your changes have been saved successfully.":`您的更改已成功保存。`,"Your domain has been unset successfully.":`您的域名已成功取消设置。`,"Your embedded wallet":`您的嵌入钱包`,"Your existing domains":`您现有的域名`,"Your smart account is already upgraded to this version.":`您的智能账户已升级到此版本。`,"Your smart account needs to be upgraded to the latest version (v3).":`您的智能账户需要升级到最新版本 (v3)。`,"Your tokens":`您的代币`,"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.":`您的钱包安全性取决于您如何访问它。通过 VeWorld 插件、移动应用或硬件钱包等自我托管选项,您可以完全控制您的私钥。此插件本身无法访问您的私钥。使用社交账户或唯链登录时,您的钱包由 Privy 创建和保护,并由唯链管理,提供更简单的入门体验,同时保持安全性。`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`这里`,marketplaces:`Marketplaces`,rate:`汇率`,"to learn more about embedded wallets.":`了解更多关于嵌入式钱包的信息。`,unavailable:`不可用`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},_a={" and ":` と `,"'{{policyName}}' on connect":`接続時の'{{policyName}}'`,"'{{policyName}}' on {{date}}":`{{date}}の'{{policyName}}'`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>あなたのプライバシーは重要です。</bold> あなたがコントロールします。クッキーや分析などのオプション機能を有効にするには、受け入れてください。これにより、体験を向上させることができます。`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`.vet ドメインはプロフィールをカスタマイズするために必要です。アカウント名を選択して開始してください。`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`スマートアカウントは、セキュリティと機能が強化されたスマートコントラクトウォレットです。ソーシャルリカバリー、トランザクションのバッチ処理などの機能を利用できます。`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`ドメイン名はウォレットアドレスのニックネームのようなもので、人間が読める名前を使用してウォレットを簡単に識別し、dAppsとインタラクションすることができます。例えば、ウォレットアドレスが 0x1234567890 なら、ニックネームは "alice.vechain" となります。`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`ブロックチェーンにおけるネットワークとは、トランザクションが行われる環境のことです。VeChainには、Mainnet(実際のトランザクションが行われるライブネットワーク)とTestnet(開発者向けのテスト環境)の2つの主要なネットワークがあります。接続中のネットワークは、このモーダルの上部に表示されます。`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`スマートアカウントに新しいアップグレードが利用可能です。「アクセスとセキュリティ」セクションに移動してアップグレードしてください。`,"A new version is available for your account":`アカウントの新バージョンが利用可能です`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`ウォレットはVeChainブロックチェーンへのゲートウェイです。プライベートキーを保存し、デジタル資産を安全に管理し、トークンを送受信し、分散型アプリケーションとやり取りすることができます。これを、ブロックチェーントランザクションのためのデジタル銀行口座と考えてください。`,AVAILABLE:`利用可能`,Accept:`承諾`,"Accept all":`すべて承諾`,"Accept selected":`選択を受け入れる`,"Access and security":`アクセスとセキュリティ`,"Account Upgrade Required":`アカウントのアップグレードが必要です`,"Account already upgraded":`アカウントはすでにアップグレードされています`,"Account upgrade required":`アカウントのアップグレードが必要です`,Active:`アクティブ`,"Add Login Method":`ログイン方法を追加`,"Add Token":`トークンを追加`,"Add to shortcuts":`ショートカットに追加`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`リンクされたアカウントを追加することで、アクセス喪失に対するセキュリティが向上しますが、新たな攻撃の可能性も生じます。セキュリティを強化するために、MFAを有効にすることをお勧めします。`,"Address is required":`アドレスが必要です`,All:`すべて`,"All apps":`すべてのアプリ`,"All policies you have accepted":`あなたが承諾したすべてのポリシー`,"All tokens":`すべてのトークン`,"Already have an x2earn app wallet?":`既にx2earnアプリのウォレットをお持ちですか?`,Amount:`金額`,"Amount is required":`金額が必要です`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`VeBetterDAOのX2Earnアプリケーションは、環境に優しい行動をとるユーザーにB3TRトークンを報酬として提供する持続可能なアプリです。これらのアプリはB3TRを配布し、ユーザのウォレットをリンクし、持続可能な行動の証明を提供しなければなりません。これらは推薦を通じてVeBetterDAOに参加し、週ごとのトークン割り当てラウンドに参加します。`,"An unexpected error occurred.":`予期せぬエラーが発生しました。`,Apple:`Apple`,Archived:`アーカイブ済み`,"Archived Notifications":`アーカイブされた通知`,"Are you sure you want to disconnect your wallet?":`ウォレットを切断してもよろしいですか?`,"Are you sure you want to reject the policies and disconnect?":`ポリシーを拒否して切断してもよろしいですか?`,"Are you sure you want to set your domain name to":`ドメイン名を設定してもよろしいですか`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`{{accountDescription}}にリンクされたログイン方法として{{accountType}}のリンクを解除してもよろしいですか?`,"Are you sure you want to unset your current domain?":`現在のドメインを解除してもよろしいですか?`,Assets:`資産`,At:`で`,"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はVeBetterDAOのインセンティブトークンであり、VechainThorブロックチェーン上に構築されています。総供給量は10億トークンに限定され、12年間にわたって毎週発行されます。B3TRは報酬、ガバナンス、およびVOT3トークンの1:1の保護に使用されます。それはサステナビリティアプリケーションとDAOトレジャリ管理をサポートします。`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`ウォレットのバックアップは非常に重要です。なぜなら、あなただけが秘密鍵にアクセスできるからです。何か問題が発生した場合、秘密鍵を持っていることが資産を回復する唯一の手段です。バックアップの方法はウォレットへのアクセス方法によります:VeWorldを使用している場合、バックアップオプションはアプリ内で利用可能です。ソーシャルログインユーザーの場合、ウォレットセクションでバックアップオプションを見つけることができます。VeChainまたは別のエコシステムアプリを通じて接続している場合、元のWebサイトにアクセスし、ログインしてウォレットセクションにアクセスする必要があります。`,"Backup your wallet":`ウォレットをバックアップする`,"Backup your wallet, configure MFA and set recovery options":`ウォレットをバックアップし、MFAを設定し、回復オプションを設定してください。`,Balance:`残高`,"Benefits of this upgrade:":`このアップグレードの利点:`,Best:`最適`,"Better transaction handling":`より良いトランザクション処理`,Bridge:`ブリッジ`,"By continuing, you agree to":`続行することで、あなたは以下に同意します`,Cancel:`キャンセル`,"Choose Name":`名前を選択`,"Choose a name for your account.":`アカウントの名前を選んでください。`,"Choose a unique .vet domain name for your account.":`アカウントにユニークな.vetドメイン名を選択してください。`,"Choose account name":`アカウント名を選択`,"Choose name":`名前を選択`,"Choose your account name":`アカウント名を選択`,"Claim your vet domain!":`あなたのvetドメインを取得しましょう!`,"Claiming name...":`名前をクレーム中...`,"Clear all":`すべてクリア`,"Cleared notifications will appear here":`クリアされた通知はここに表示されます`,Click:`クリック`,"Click below to access {{ name }} and explore its features.":`以下をクリックして{{ name }}にアクセスし、その機能を探索してください。`,Close:`閉じる`,"Close and do this later":`閉じて後でやる`,"Close announcement":`お知らせを閉じる`,"Coming Soon!":`近日公開!`,"Coming soon":`近日公開`,Confirm:`確認`,"Confirm Changes":`変更を確認`,"Confirm Name":`名前を確認`,"Confirm Unset Domain":`ドメイン解除を確認`,"Confirm the transaction in your wallet to complete it.":`ウォレットでトランザクションを確認して完了してください。`,"Confirm transaction":`取引を確認`,"Connect an external wallet for easier access":`外部ウォレットを接続して簡単にアクセス`,"Connect wallet":`ウォレットを接続`,"Connect with VeWorld wallet":`VeWorldウォレットと接続`,"Connect your Apple account for easier access":`Appleアカウントを接続して簡単にアクセス`,"Connect your Discord account for easier access":`簡単なアクセスのためにあなたのDiscordアカウントを接続してください`,"Connect your Farcaster account for easier access":`Farcasterアカウントを接続して簡単にアクセス`,"Connect your Github account for easier access":`Githubアカウントを接続して簡単にアクセス`,"Connect your Google account for easier access":`Googleアカウントを接続して簡単にアクセス`,"Connect your Instagram account for easier access":`Instagramアカウントを接続して簡単にアクセス`,"Connect your LinkedIn account for easier access":`LinkedInアカウントを接続して簡単にアクセス`,"Connect your Spotify account for easier access":`Spotifyアカウントを接続して簡単にアクセス`,"Connect your Telegram account for easier access":`Telegramアカウントを接続して簡単にアクセス`,"Connect your Tiktok account for easier access":`Tiktokアカウントを接続して簡単にアクセス`,"Connect your Twitter account for easier access":`Twitterアカウントを接続して簡単にアクセス`,"Connect your email for easier access":`メールを接続して簡単にアクセス`,"Connect your phone number for easier access":`電話番号を接続して簡単にアクセス`,"Connecting to VeChain":`VeChainに接続中`,"Connecting with":`で接続中`,"Connecting with Passkey":`パスキーで接続中`,"Connecting...":`接続中...`,"Connection Details":`接続の詳細`,"Connection Failed":`接続に失敗しました`,"Connection Type":`接続タイプ`,"Connection details":`接続の詳細`,Continue:`続ける`,"Continue with Github":`Githubで続行`,"Continue with Google":`Googleで続行`,"Cookie Policy":`クッキーポリシー`,"Cookie policy outlining the use of cookies and tracking technologies.":`クッキーと追跡技術の使用を説明するクッキーポリシー。`,"Copy your address or scan this QR code":`アドレスをコピーするか、このQRコードをスキャンしてください`,Currency:`通貨`,Current:`現在`,"Current domain":`現在のドメイン`,Customization:`カスタマイズ`,Customize:`カスタマイズ`,"Customize profile":`プロフィールをカスタマイズ`,"Customize the appearance of your wallet.":`ウォレットの外観をカスタマイズします。`,Description:`説明`,"Description must be less than 100 characters":`説明は100文字未満でなければなりません`,"Didn't get an email?":`メールを受け取りませんでしたか?`,Discord:`ディスコード`,"Display Name":`表示名`,"Display name must be less than 25 characters":`表示名は25文字未満でなければなりません`,"Domain set":`ドメインが設定されました`,"Domain unset":`ドメインが解除されました`,Done:`完了`,Ecosystem:`エコシステム`,"Eg: DevRel @ ENS Labs":`例: DevRel @ ENS Labs`,Email:`メール`,"Email address":`メールアドレス`,"Embedded wallet":`埋め込みウォレット`,"Enhanced compatibility with dApps":`dAppsとの互換性の強化`,"Enter confirmation code":`確認コードを入力`,"Enter your display name":`表示名を入力してください`,"Enter your name":`お名前を入力してください`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`デジタル資産を、VeChainと他のブロックチェーンネットワーク間で簡単かつ安全に交換できます。スワップは、トークンを変換するために、非中央集権型と中央集権型の両方の取引所を活用するパートナーを通じて実行されます。`,"Existing Custom Tokens":`既存のカスタムトークン`,"Failed to connect with Passkey":`パスキーとの接続に失敗しました`,"Failed to connect with VeChain":`VeChainとの接続に失敗しました`,"Failed to connect with ecosystem app":`エコシステムアプリとの接続に失敗しました`,"Failed to load App Hub apps":`App Hubアプリの読み込みに失敗しました`,Farcaster:`ファーカスター`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`手数料デリゲーションは、VeChainのユニークな機能であり、他の誰か(デリゲーター)があなたの取引手数料を支払うことを可能にします。多くのdAppsおよびサービスプロバイダーがデリゲーターとして機能し、新規ユーザーが開始しやすくしていますが、一部の取引では依然として独自のVTHOを使用して手数料を支払う必要がある場合があります。手数料は、ネットワークスパムを防ぎ、ブロックチェーン上の取引を処理および検証するノードに報酬を与えるために必要です。手数料を自分で支払う場合は、資産からVTHOを選択して取引コストをカバーすることができます。`,"Filter by category":`カテゴリでフィルター`,"Finally say goodbye to 0x addresses":`ついに0xアドレスにお別れを言いましょう`,"For developers":`開発者向け`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`セキュリティ上の理由から、埋め込みウォレットの設定は{{appName}}プラットフォームでのみ管理できます。`,"Found following rates":`次のレートが見つかりました`,From:`送信元`,"Gas fee":`ガス代`,General:`一般`,Github:`ギットハブ`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`朗報です!スマートアカウントのために、マルチクローズ取引が完全にサポートされるようになりました。これで、より良いユーザー体験、低コストのガス、そして強化されたセキュリティを楽しむことができます。`,Google:`グーグル`,Help:`ヘルプ`,"How do I backup my wallet?":`ウォレットのバックアップはどうすればいいですか?`,"How do I send tokens?":`トークンを送信するにはどうすればよいですか?`,"How is my wallet secured?":`ウォレットはどのようにして保護されていますか?`,"I have read and agree to ":`私は読み、同意します `,"Ignore and continue":`無視して続行`,"Improved security features":`改善されたセキュリティ機能`,Instagram:`インスタグラム`,"Insufficient {{symbol}} balance":`残高が不足しています ({{symbol}})`,"Invalid address or domain":`無効なアドレスまたはドメイン`,"Invalid contract address":`無効なコントラクトアドレス`,"Invalid token address":`無効なトークンアドレス`,Language:`言語`,"Launch vechain.energy":`vechain.energyを起動`,"Launch {{name}}":`{{name}}を起動`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`あなた、Vechain Kit、および現在のアプリ間のウォレットサービスの使用規則を説明する法的契約。`,"Link Apple Account":`Appleアカウントをリンク`,"Link Discord Account":`ディスコードアカウントをリンクする`,"Link Email Account":`メールアカウントをリンク`,"Link External Wallet":`外部ウォレットをリンクする`,"Link Farcaster Account":`Farcasterアカウントをリンク`,"Link Github Account":`Githubアカウントをリンク`,"Link Google Account":`Googleアカウントをリンク`,"Link Instagram Account":`Instagramアカウントをリンク`,"Link LinkedIn Account":`LinkedInアカウントをリンク`,"Link Phone Number":`電話番号をリンク`,"Link Spotify Account":`Spotifyアカウントをリンク`,"Link Telegram Account":`Telegramアカウントをリンク`,"Link Tiktok Account":`Tiktokアカウントをリンク`,"Link Twitter Account":`Twitterアカウントをリンク`,LinkedIn:`リンクトイン`,"Loading your domains...":`ドメインを読み込んでいます...`,"Log in or sign up":`ログインまたはサインアップ`,"Logged in with":`でログイン`,Login:`ログイン`,"Login failed:":`ログインに失敗しました:`,"Login methods":`ログイン方法`,"Login methods and Passkeys":`ログイン方法とパスキー`,Logout:`ログアウト`,"Manage Custom Tokens":`カスタムトークンの管理`,"Manage MFA":`MFAを管理する`,"Manage Recovery":`リカバリーの管理`,"Manage on {{appName}}":`{{appName}}で管理する`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`埋め込みウォレットのセキュリティ設定を管理します: ログイン方法を処理したり、パスキーを追加したり、資産へのアクセスを失わないようにウォレットをバックアップしたりします。`,"Manage your login methods and passkeys":`ログイン方法とパスキーを管理する`,"Manage your preferences for currency, language, and appearance.":`通貨、言語、外観の設定を管理します。`,"Minimum {{symbol}} transfer is {{min}}":`最小{{symbol}}転送量は{{min}}です`,More:`もっと見る`,"Multiclause Transactions Are Now Supported":`マルチクローズ取引がサポートされました`,"Name must be at least 3 characters long":`名前は少なくとも3文字以上必要です`,"Name your account to make it easier to exchange assets":`資産の交換を簡単にするためにアカウントに名前を付けてください。`,Network:`ネットワーク`,New:`新規`,"New image selected":`新しい画像が選択されました`,"No additional accounts available to link":`リンク可能な追加アカウントはありません`,"No application from VeChain ecosystem is available to login.":`VeChainエコシステムからはログイン可能なアプリケーションがありません。`,"No apps found in this category":`このカテゴリにはアプリが見つかりません`,"No archived notifications":`アーカイブされた通知はありません`,"No assets":`資産なし`,"No notifications":`通知はありません`,"No policies accepted":`承認されたポリシーはありません`,"No questions found":`質問が見つかりませんでした`,"No quotes available":`利用可能な見積もりがありません`,"No tokens found":`トークンが見つかりません`,"Node URL":`ノードURL`,Notifications:`通知`,"Only letters, numbers, and hyphens are allowed":`使用できるのは文字、数字、ハイフンのみです`,Optional:`任意`,"Other options":`その他のオプション`,Passkey:`パスキー`,"Phone Number":`電話番号`,"Please approve the request in the connection request window...":`接続リクエストウィンドウでリクエストを承認してください...`,"Please be sure to keep this wallet safe and backed up.":`このウォレットを安全に保管し、バックアップを取るようにしてください。`,"Please check {{email}} for an email from privy.io and enter your code below.":`{{email}} に privy.io からのメールが届いていることを確認し、以下にコードを入力してください。`,"Please complete the passkey authentication...":`パスキー認証を完了してください...`,"Please confirm the transaction in your wallet.":`ウォレットでトランザクションを確認してください。`,"Please enter a valid Twitter handle without @":`@を付けずに有効なTwitterハンドルを入力してください`,"Please enter a valid contract address":`有効な契約アドレスを入力してください`,"Please enter a valid email address":`有効なメールアドレスを入力してください`,"Please enter a valid number":`有効な番号を入力してください`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`すべてのポリシーを確認する時間を取ってください。続行するには承認が必須です。`,Policy:`ポリシー`,"Preparing changes...":`変更を準備しています...`,"Privacy Policy":`プライバシーポリシー`,"Privacy policy outlining the data collection and processing practices.":`データ収集と処理の実践についてのプライバシーポリシー。`,"Privy Status":`Privy ステータス`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy は、暗号化レールに基づいて構築されたより良い製品を実現するために、ユーザーオンボーディングと組み込みウォレットのインフラストラクチャを構築します。 つまり、アプリケーション自体に資産管理を組み込むことにより、ユーザー、企業、または機械がシームレスな製品体験を通じてデジタル資産を使用できるようにします。`,"Processing transaction...":`トランザクションを処理しています...`,Profile:`プロフィール`,"Profile Image":`プロフィール画像`,"Profile Picture":`プロフィール画像`,"Profile Updated":`プロフィールが更新されました`,"Read More":`Read More`,Receive:`受け取る`,"Receive tokens":`トークンを受け取る`,"Reduced gas costs for operations":`オペレーションのガスコストを削減`,"Reject and logout":`拒否してログアウト`,Remove:`削除`,"Remove Login Method":`ログイン方法の削除`,"Remove from shortcuts":`ショートカットから削除`,"Remove your current domain name":`現在のドメイン名を削除する`,"Resend code":`コードを再送信`,Retry:`再試行`,"Save Changes":`変更を保存`,"Saving changes...":`変更を保存しています...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`0xアドレスに別れを告げ、今すぐ無料で.veworld.vetサブドメインを取得しましょう!`,"Search Apps":`アプリを検索`,"Search FAQ":`FAQを検索`,"Security preferences":`セキュリティ設定`,"Security settings":`セキュリティ設定`,"Select Additional Login Method":`追加のログイン方法を選択`,"Select Token":`トークンを選択`,"Select currency":`通貨を選択`,"Select language":`言語を選択`,"Select token":`トークンを選択`,Send:`送る`,"Send all":`すべて送信`,"Sending Transaction...":`取引を送信中...`,"Sending to OceanX or other exchanges may result in loss of funds.":`OceanXまたは他の取引所に送ると資金を失う可能性があります。`,"Sending...":`送信中...`,"Set a domain first":`先にドメインを設定してください`,"Set up Passkey":`パスキーを設定`,"Set up a passkey for easier access":`簡単にアクセスするためにパスキーを設定`,Settings:`設定`,"Share on":`共有する`,Shortcuts:`ショートカット`,"Show Less":`Show Less`,"Show More":`さらに表示`,"Slippage tolerance":`スリッページ許容範囲`,"Smart Account":`スマートアカウント`,"Smart Account detected":`スマートアカウントが検出されました。`,"Something went wrong":`何かがうまくいきませんでした`,"Something went wrong. Please try again.":`問題が発生しました。もう一度お試しください。`,Source:`ソース`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`今後のアクティビティ機能にご期待ください`,"Stay tuned for our upcoming NFT feature":`今後のNFT機能にご期待ください`,Submit:`送信する`,Swap:`スワップ`,"Swap all":`すべてスワップ`,"Swapping...":`スワップ中...`,Telegram:`Telegram`,"Terms and Conditions":`利用規約`,"Terms and Policies":`利用規約とポリシー`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`これらのアカウントは埋め込みウォレットにリンクされており、ウォレットへのログインや秘密鍵へのアクセスに使用できます。`,"This address only supports VeChain assets.":`このアドレスはVeChain資産のみをサポートしています。`,"This domain is already taken":`このドメインは既に使用されています`,"This domain is protected":`このドメインは保護されています`,"This is taking longer than expected.":`予想以上に時間がかかっています。`,"This is your main wallet, created by {{element}} and secured by Privy.":`これは、{{element}}によって作成され、Privyによって保護されたあなたのメインウォレットです。`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`このウォレットは、アイデンティティとして使用されるスマートアカウントの所有者であり、ブロックチェーンとのやり取りのゲートウェイとして機能します。`,Tiktok:`Tiktok`,To:`宛先`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`VeChainブロックチェーンと対話しオペレーションを完了するためには、スマートアカウントを最新バージョン(v3)にアップグレードする必要があります。`,"Token Contract Address":`トークン契約アドレス`,"Token already added":`トークンは既に追加されています`,Tools:`ツール`,"Transaction failed":`取引に失敗しました`,"Transaction failed:":`取引に失敗しました:`,"Transaction is being processed, it can take up to 15 seconds.":`トランザクションを処理しています。最大で15秒かかる可能性があります。`,"Transaction successful":`取引が成功しました`,"Transaction successful!":`取引に成功しました!`,"Try again":`再試行する`,"Try searching with a different term":`別の用語で検索してみてください`,Twitter:`Twitter`,"Twitter username":`Twitterユーザー名`,"Type the receiver address or domain":`受信者のアドレスまたはドメインを入力してください`,UNAVAILABLE:`利用不可`,"Unable to fetch the price":`価格を取得できません`,"Unset current domain":`現在のドメインを解除する`,"Unsetting current domain...":`現在のドメインを解除中...`,"Upgrade Smart Account to V3":`スマートアカウントをV3にアップグレード`,"Upgrade Successful!":`アップグレード成功!`,"Upgrade account":`アカウントをアップグレード`,"Upgrading...":`アップグレード中...`,"Use social login with VeChain":`VeChainでソーシャルログインを使用`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VETはVeChainネットワークの主要な暗号通貨です。それはVeChainエコシステムでの価値と所有権を表し、株が企業での所有権を表すのと似ています。VETを保有すると、ネットワークのトランザクションに必要なVTHOが自動的に生成されます。`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO(VeThor)はVeChainネットワークのエネルギーまたは「ガス」トークンです。ブロックチェーンとやり取りする際のトランザクション手数料を支払うために使用されます。VTHOはVETトークンを保有することで自動的に生成され、ネットワークの安定性を維持し、トランザクションコストを管理するための2トークンシステムが作成されます。`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAOはVeChainブロックチェーン上の持続可能性に焦点を当てた分散型組織です。メンバーは、報酬としてB3TRトークンを使用し、提案での投票や週次トークン配分ラウンドでVOT3を使用してDAOのガバナンスに参加します。`,"VeChain Kit":`VeChainキット`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`ヨーロッパのサンマリノに本社を置くVeChainは、画期的なブロックチェーンエコシステムであり、実世界のブロックチェーンの採用を推進する世界クラスのスマートコントラクトプラットフォームVeChainThorの開発者です。2015年にSunny Luによって設立されたVeChainは、透明で効率的、拡張可能で適応性のあるブロックチェーンソリューションの提供に一貫して取り組んでいます。`,"VeWorld Wallet":`VeWorldウォレット`,"Vechain Kit Policy":`Vechainキットポリシー`,"View Current Policy":`現在のポリシーを見る`,"View on explorer":`エクスプローラーで表示`,"View transaction on the explorer":`エクスプローラーでトランザクションを表示`,"Waiting for confirmation":`確認待ち`,"Waiting for confirmation...":`確認を待っています...`,"Waiting wallet confirmation...":`ウォレットの確認を待っています...`,Wallet:`ウォレット`,"Wallet secured by":`によって保護されたウォレット`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`ウォレットをバックアップするために、秘密鍵をエクスポートすることを強くお勧めします。これにより、必要に応じて復元するか、自己管理に移行することができます。`,Website:`ウェブサイト`,"Website URL":`ウェブサイトURL`,"Website URL must start with https://":`ウェブサイトのURLはhttps://で始まる必要があります`,"What is B3TR?":`B3TRとは?`,"What is Privy?":`Privyとは何ですか?`,"What is VET?":`VETとは何ですか?`,"What is VTHO?":`VTHOとは何ですか?`,"What is VeBetterDAO?":`VeBetterDAOとは何ですか?`,"What is VeChain?":`VeChainとは何ですか?`,"What is a Smart Account?":`スマートアカウントとは何ですか?`,"What is a domain name?":`ドメイン名とは何ですか?`,"What is a network?":`ネットワークとは何ですか?`,"What is a wallet?":`ウォレットとは何ですか?`,"What is an x2earn application?":`x2earnアプリケーションとは何ですか?`,"What is fee delegation?":`料金の委任とは何ですか?`,"When you have accepted a policy, it will appear here":`ポリシーを承認すると、ここに表示されます`,"When you have notifications, they will appear here":`通知がある場合、ここに表示されます`,"YOU OWN THIS":`所有しています`,"You accepted current policy on {{date}}":`あなたは{{date}}に現在のポリシーを承認しました`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`ソーシャルログイン方法で保護された埋め込みウォレットを使用して、スムーズなVeChain体験を確保しています。`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`クイックアクションセクションの送信アイコンをクリックしてトークンを送信できます。受取人のアドレスまたはVeChainのドメイン名を入力し、トークンを選択し、送信したい金額を指定します。`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`このウォレットに関連付けられたアクティブなスマートアカウントがあります。これがあなたの主要な身元として設定されています。`,"You may want to try establishing the connection again.":`接続の再確立を試みてください。`,"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 address has been successfully set to {{name}}":`あなたのアドレスは正常に{{name}}に設定されました`,"Your changes have been saved successfully.":`変更は正常に保存されました。`,"Your domain has been unset successfully.":`あなたのドメインは正常に解除されました。`,"Your embedded wallet":`あなたの埋め込みウォレット`,"Your existing domains":`既存のドメイン`,"Your smart account is already upgraded to this version.":`あなたのスマートアカウントはすでにこのバージョンにアップグレードされています。`,"Your smart account needs to be upgraded to the latest version (v3).":`あなたのスマートアカウントは最新バージョン(v3)にアップグレードする必要があります。`,"Your tokens":`あなたのトークン`,"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.":`ウォレットのセキュリティは、アクセス方法に依存します。VeWorld拡張機能やモバイルアプリ、ハードウェアウォレットなどの自己管理オプションを使用することで、秘密鍵を完全に管理できます。この拡張機能自体はあなたの秘密鍵にアクセスすることはありません。ソーシャルアカウントやVeChainを使用してログインする場合、ウォレットはPrivyによって作成され、保護され、VeChainによって管理され、セキュリティを維持しつつ容易なオンボーディング体験を提供します。`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`こちら`,marketplaces:`Marketplaces`,rate:`レート`,"to learn more about embedded wallets.":`埋め込みウォレットについて詳しくはこちらをご覧ください。`,unavailable:`利用不可`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`your@email.com`};const va=[`en`,`de`,`it`,`fr`,`es`,`zh`,`ja`],ya={en:{translation:da},de:{translation:fa},it:{translation:pa},fr:{translation:ma},es:{translation:ha},zh:{translation:ga},ja:{translation:_a}},ba={en:`English`,de:`Deutsch`,it:`Italiano`,fr:`Français`,es:`Español`,zh:`中文`,ja:`日本語`},xa={en:`en-US`,de:`de-DE`,it:`it-IT`,fr:`fr-FR`,es:`es-ES`,zh:`zh-CN`,ja:`ja-JP`},Sa={name:`customDetector`,lookup:e=>{let t=e?.languages?.[0];if(t&&va.includes(t))return t;if(typeof window<`u`){let e=navigator.language.split(`-`)[0];if(e&&va.includes(e))return e}return`en`},cacheUserLanguage:e=>{typeof window<`u`&&localStorage.setItem(`i18nextLng`,e)}};hn.use({type:`languageDetector`,async:!1,init:()=>{},detect:Sa.lookup,cacheUserLanguage:Sa.cacheUserLanguage}).use(_n).init({resources:ya,fallbackLng:`en`,interpolation:{escapeValue:!1}});var Ca=hn;const wa=e=>{Object.keys(ya).forEach(t=>{e.hasResourceBundle(t,`translation`),e.addResourceBundle(t,`translation`,ya[t].translation,!0,!0)})};function Ta(e,t){return e=e.replace(`#`,``),`rgba(${parseInt(e.substring(0,2),16)}, ${parseInt(e.substring(2,4),16)}, ${parseInt(e.substring(4,6),16)}, ${t})`}function Ea(e,t){let n=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/);if(n)return`rgba(${n[1]}, ${n[2]}, ${n[3]}, ${t})`;if(e.startsWith(`#`))return Ta(e,t);if(typeof window<`u`&&typeof document<`u`&&document.body)try{let n=document.createElement(`div`);n.style.color=e,document.body.appendChild(n);let r=window.getComputedStyle(n).color;document.body.removeChild(n);let i=r.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/);if(i)return`rgba(${i[1]}, ${i[2]}, ${i[3]}, ${t})`}catch{}return e}function Da(e,t,n,r){let i=r||n;return{modal:e,card:Ea(e,.8),cardElevated:e,overlay:i,stickyHeader:Ea(e,.9)}}function Oa(e,t){return{primary:e,secondary:Ea(e,.7),tertiary:Ea(e,.5),disabled:t?`#4A5568`:`#A0AEC0`}}function ka(e,t,n){let r=t?`#ffffff`:`#000000`;return{default:Ea(r,.1),hover:Ea(r,.2),focus:t?`#3182CE`:`#2B6CB0`,button:Ea(r,.1),modal:n||`none`}}function Aa(e,t,n,r,i){if(r)return{bg:r.bg||i.buttons.button.bg,color:r.color||i.buttons.button.color,border:r.border||i.buttons.button.border,hoverBg:r.hoverBg};if(e&&t){let e=n?`#ffffff`:`#000000`;return{bg:Ea(e,.1),color:t,border:`1px solid ${Ea(e,.1)}`}}return i.buttons.button}function ja(e,t,n,r,i){return r?{bg:r.bg||i.buttons.primaryButton.bg,color:r.color||i.buttons.primaryButton.color,border:r.border||i.buttons.primaryButton.border,hoverBg:r.hoverBg}:e&&t?{bg:i.buttons.primaryButton.bg,color:`white`,border:`none`}:i.buttons.primaryButton}function Ma(e,t,n,r,i){return r?{bg:r.bg||i.buttons.tertiaryButton.bg,color:r.color||i.buttons.tertiaryButton.color,border:r.border||i.buttons.tertiaryButton.border}:e&&t?{bg:`transparent`,color:t,border:`none`}:i.buttons.tertiaryButton}function Na(e,t,n,r,i){return r?{bg:r.bg||i.buttons.loginButton.bg,color:r.color||i.buttons.loginButton.color,border:r.border||i.buttons.loginButton.border}:i.buttons.loginButton}function Pa(e,t){return t?{low:{blur:`blur(4px)`,modalOpacity:.4,overlayOpacity:.3,stickyHeaderOpacity:.7},medium:{blur:`blur(4px)`,modalOpacity:.6,overlayOpacity:.4,stickyHeaderOpacity:.8},high:{blur:`blur(5px)`,modalOpacity:.8,overlayOpacity:.5,stickyHeaderOpacity:.85}}[e]:{blur:{modal:`blur(3px)`,overlay:`blur(3px)`,stickyHeader:`blur(12px)`}.modal,modalOpacity:1,overlayOpacity:.4,stickyHeaderOpacity:.9}}const Fa={colors:{background:{modal:`#ffffff`,overlay:`rgba(0, 0, 0, 0.4)`,card:`#f5f5f5`,cardElevated:`#ffffff`,stickyHeader:`rgba(255, 255, 255, 0.69)`},text:{primary:`#2e2e2e`,secondary:`#4d4d4d`,tertiary:`#718096`,disabled:`#A0AEC0`},border:{default:`transparent`,hover:`#d0d0d0`,focus:`#2B6CB0`,button:`#ebebeb`,modal:`none`},success:`#10ba3e`,error:`#ef4444`,warning:`#F6AD55`},buttons:{button:{bg:`rgba(0, 0, 0, 0.1)`,color:`#2e2e2e`,border:`none`},primaryButton:{bg:`rgb(96 66 221)`,color:`white`,border:`none`},tertiaryButton:{bg:`transparent`,color:`#2e2e2e`,border:`none`},loginButton:{bg:`white`,color:`#1a1a1a`,border:`1px solid transparent`}},effects:{backdropFilter:{modal:`blur(3px)`,overlay:`blur(3px)`,stickyHeader:`blur(12px)`},glassOpacity:{modal:1,overlay:.4,stickyHeader:.69}},fonts:{body:`Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,heading:`Satoshi, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,sizes:{small:`12px`,medium:`14px`,large:`16px`},weights:{normal:400,medium:500,bold:700}},borders:{radius:{small:`8px`,medium:`12px`,large:`16px`,xl:`24px`,full:`9999px`}}},Ia={colors:{background:{modal:`#151515`,overlay:`rgba(0, 0, 0, 0.6)`,card:`rgba(0, 0, 0, 0.3)`,cardElevated:`#2a2a2a`,stickyHeader:`rgba(31, 31, 30, 0.9)`},text:{primary:`rgb(223, 223, 221)`,secondary:`rgba(223, 223, 221, 0.6)`,tertiary:`rgba(223, 223, 221, 0.4)`,disabled:`rgba(223, 223, 221, 0.2)`},border:{default:`rgba(255, 255, 255, 0.1)`,hover:`rgba(255, 255, 255, 0.2)`,focus:`#3182CE`,button:`rgba(255, 255, 255, 0.1)`,modal:`none`},success:`#00ff45de`,error:`#ef4444`,warning:`#F6AD55`},buttons:{button:{bg:`rgba(255, 255, 255, 0.05)`,color:`rgb(223, 223, 221)`,border:`none`},primaryButton:{bg:`rgb(96 66 221)`,color:`white`,border:`none`},tertiaryButton:{bg:`transparent`,color:`rgb(223, 223, 221)`,border:`none`},loginButton:{bg:`transparent`,color:`white`,border:`1px solid rgba(255, 255, 255, 0.1)`}},effects:{backdropFilter:{modal:`blur(3px)`,overlay:`blur(3px)`,stickyHeader:`blur(12px)`},glassOpacity:{modal:1,overlay:.6,stickyHeader:.9}},fonts:{body:`Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,heading:`Satoshi, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,sizes:{small:`12px`,medium:`14px`,large:`16px`},weights:{normal:400,medium:500,bold:700}},borders:{radius:{small:`8px`,medium:`12px`,large:`16px`,xl:`24px`,full:`9999px`}}},La=e=>e?Ia:Fa;function Ra(e,t){let n={...e};return t.colors&&(n.colors={...e.colors,...t.colors},t.colors.background&&(n.colors.background={...e.colors.background,...t.colors.background}),t.colors.text&&(n.colors.text={...e.colors.text,...t.colors.text}),t.colors.border&&(n.colors.border={...e.colors.border,...t.colors.border},t.colors.border.button||(n.colors.border.button=e.colors.border.button))),t.effects&&(n.effects={...e.effects,...t.effects},t.effects.backdropFilter&&(n.effects.backdropFilter={...e.effects.backdropFilter,...t.effects.backdropFilter}),t.effects.glassOpacity&&(n.effects.glassOpacity={...e.effects.glassOpacity,...t.effects.glassOpacity})),t.fonts&&(n.fonts={...e.fonts,...t.fonts},t.fonts.body&&(n.fonts.body=t.fonts.body),t.fonts.heading&&(n.fonts.heading=t.fonts.heading),t.fonts.sizes&&(n.fonts.sizes={...e.fonts.sizes,...t.fonts.sizes}),t.fonts.weights&&(n.fonts.weights={...e.fonts.weights,...t.fonts.weights})),t.borders&&(n.borders={...e.borders,...t.borders},t.borders.radius&&(n.borders.radius={...e.borders.radius,...t.borders.radius})),t.buttons&&(n.buttons={...e.buttons,...t.buttons},t.buttons.button&&(n.buttons.button={...e.buttons.button,...t.buttons.button}),t.buttons.primaryButton&&(n.buttons.primaryButton={...e.buttons.primaryButton,...t.buttons.primaryButton}),t.buttons.tertiaryButton&&(n.buttons.tertiaryButton={...e.buttons.tertiaryButton,...t.buttons.tertiaryButton}),t.buttons.loginButton&&(n.buttons.loginButton={...e.buttons.loginButton,...t.buttons.loginButton})),n}function za(e,t){if(!e)return{};let n={},r=La(t),i=e.overlay?.backgroundColor,a=e.modal?.backgroundColor;if(a||e.textColor||i||e.buttons||e.modal){if(n.colors={},a)n.colors.background=Da(a,t,r.colors.background.overlay,i);else if(i){let e=r.colors.background;n.colors.background={...e,overlay:i}}else n.colors.background=r.colors.background;e.textColor&&(n.colors.text=Oa(e.textColor,t)),a?n.colors.border=ka(a,t,e.modal?.border):e.modal?.border&&(n.colors.border={...r.colors.border,modal:e.modal.border}),n.colors.error=r.colors.error,n.colors.success=r.colors.success,n.colors.warning=r.colors.warning}if(n.effects={},e.effects){let t=e.effects.glass?.enabled===void 0?!0:e.effects.glass.enabled,i=Pa(e.effects.glass?.intensity||`medium`,t),o=e.overlay?.blur||e.effects.backdropFilter?.overlay;if(n.effects.backdropFilter={modal:e.effects.backdropFilter?.modal||(t?i.blur:r.effects.backdropFilter.modal),overlay:o||(t?i.blur:r.effects.backdropFilter.overlay),stickyHeader:t?i.blur:r.effects.backdropFilter.stickyHeader},n.effects.glassOpacity={modal:i.modalOpacity,overlay:i.overlayOpacity,stickyHeader:i.stickyHeaderOpacity},t)if(n.colors||={},n.colors.background||(n.colors.background={...r.colors.background}),a)n.colors.background.modal=Ea(a,i.modalOpacity),n.colors.background.stickyHeader=Ea(a,i.stickyHeaderOpacity);else{let e=r.colors.background.modal,t=r.colors.background.stickyHeader;n.colors.background.modal=Ea(e,i.modalOpacity),n.colors.background.stickyHeader=Ea(t,i.stickyHeaderOpacity)}}else{let t=e.overlay?.blur;n.effects.backdropFilter={...r.effects.backdropFilter,overlay:t||r.effects.backdropFilter.overlay},n.effects.glassOpacity=r.effects.glassOpacity}if(i&&n.colors?.background&&(n.colors.background.overlay=i),e.fonts){n.fonts={};let t=r.fonts;e.fonts.family?(n.fonts.body=e.fonts.family,n.fonts.heading=e.fonts.family):(n.fonts.body=e.fonts.body??t.body,n.fonts.heading=e.fonts.heading??t.heading),n.fonts.sizes={small:e.fonts.sizes?.small??t.sizes.small,medium:e.fonts.sizes?.medium??t.sizes.medium,large:e.fonts.sizes?.large??t.sizes.large},n.fonts.weights={normal:e.fonts.weights?.normal??t.weights.normal,medium:e.fonts.weights?.medium??t.weights.medium,bold:e.fonts.weights?.bold??t.weights.bold}}return n.buttons={},n.buttons.button=Aa(a,e.textColor,t,e.buttons?.secondaryButton,r),n.buttons.primaryButton=ja(a,e.textColor,t,e.buttons?.primaryButton,r),n.buttons.tertiaryButton=Ma(a,e.textColor,t,e.buttons?.tertiaryButton,r),n.buttons.loginButton=Na(a,e.textColor,t,e.buttons?.loginButton,r),n}function Ba(e,t){if(!e.includes(`rgba`)&&!e.includes(`hsla`))return e;let n=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);if(n){let r=parseInt(n[1],10),i=parseInt(n[2],10),a=parseInt(n[3],10),o=n[4]?parseFloat(n[4]):1;if(o>=.9)return e;let s=t?.9:.91;return`rgba(${r}, ${i}, ${a}, ${Math.min(Math.max(o+.15,s),.91)})`}return e}function Va(e,t){let n={"--vdk-modal-z-index":`10000`,"--vdk-modal-width":`22rem`,"--vdk-modal-backdrop-filter":e.effects.backdropFilter.modal,"--vdk-border-dark-source-card":`1px solid ${e.colors.border.default}`,"--vdk-border-light-source-card":`1px solid ${e.colors.border.default}`,"--vdk-font-family":e.fonts.body,"--vdk-font-size-medium":e.fonts.sizes.medium,"--vdk-font-size-large":e.fonts.sizes.large,"--vdk-font-weight-medium":e.fonts.weights.medium.toString()};return t?(n[`--vdk-color-dark-primary`]=`transparent`,n[`--vdk-color-dark-primary-hover`]=`rgba(255, 255, 255, 0.05)`,n[`--vdk-color-dark-primary-active`]=`rgba(255, 255, 255, 0.1)`,n[`--vdk-color-dark-secondary`]=e.colors.background.modal,n[`--vdk-color-dark-tertiary`]=e.colors.text.primary):(n[`--vdk-color-light-primary`]=`#ffffff`,n[`--vdk-color-light-primary-hover`]=`rgba(245, 245, 245, 0.8)`,n[`--vdk-color-light-primary-active`]=`rgba(240, 240, 240, 0.8)`,n[`--vdk-color-light-secondary`]=e.colors.background.modal,n[`--vdk-color-light-tertiary`]=e.colors.text.primary),n}function Ha(e,t){let n=Ba(e.colors.background.modal,t),r=t?`transparent`:`#ffffff`,i=t?`transparent`:`#ffffff`,a=t?`transparent`:`#ffffff`;return{"--privy-border-radius-sm":e.borders.radius.small,"--privy-border-radius-md":e.borders.radius.medium,"--privy-border-radius-lg":e.borders.radius.large,"--privy-border-radius-full":e.borders.radius.full,"--privy-color-background":n,"--privy-color-background-2":i,"--privy-color-background-3":a,"--privy-color-foreground":e.colors.text.primary,"--privy-color-foreground-2":e.colors.text.primary,"--privy-color-foreground-3":e.colors.text.secondary,"--privy-color-foreground-4":e.colors.text.tertiary,"--privy-color-foreground-accent":t?`#ffffff`:`#1a1a1a`,"--privy-color-accent":r,"--privy-color-accent-light":i,"--privy-color-accent-lightest":a,"--privy-color-accent-dark":i,"--privy-color-accent-darkest":a,"--privy-color-success":e.colors.success,"--privy-color-error":e.colors.error,"--privy-color-error-light":e.colors.error+`33`}}function Ua(){if(typeof document>`u`)return;let e=`vechain-kit-dappkit-button-styles`,t=document.getElementById(e);if(t||(t=document.createElement(`style`),t.id=e,document.head.appendChild(t)),t.textContent=`
|
|
1
|
+
import{A as e,B as t,C as n,E as r,H as i,J as a,O as o,Q as s,S as c,U as l,V as u,W as d,X as f,Z as p,_ as m,_t as h,a as g,at as _,b as v,ft as y,g as b,h as x,ht as S,i as C,lt as w,mt as ee,n as T,nt as E,o as D,ot as te,q as ne,r as re,rt as O,st as ie,t as ae,tt as oe,v as se,vt as k,w as ce,x as le,y as ue}from"./utils-DAs6kMGs.mjs";import{C as de,S as fe,T as pe,_ as me,a as he,b as ge,c as _e,d as ve,f as ye,g as be,h as xe,i as Se,l as Ce,m as we,n as Te,o as Ee,p as De,r as Oe,s as ke,t as Ae,u as je,v as Me,w as Ne,x as Pe,y as Fe}from"./assets-aAdDxPJu.mjs";import{Accordion as Ie,AccordionButton as Le,AccordionItem as Re,AccordionPanel as ze,Alert as Be,AlertDescription as Ve,AlertIcon as He,AlertTitle as Ue,Badge as We,Box as A,Button as j,Card as Ge,CardBody as Ke,CardFooter as qe,CardHeader as Je,Center as Ye,ChakraProvider as Xe,Checkbox as Ze,Circle as Qe,Collapse as $e,ColorModeScript as et,Container as tt,Divider as nt,Flex as rt,FormControl as it,FormLabel as at,Grid as ot,GridItem as st,HStack as M,Heading as ct,Icon as N,IconButton as lt,Image as ut,Input as dt,InputGroup as ft,InputLeftElement as pt,InputRightElement as mt,Link as ht,List as gt,ListItem as _t,Modal as vt,ModalBody as P,ModalCloseButton as F,ModalContent as yt,ModalFooter as I,ModalHeader as L,ModalOverlay as bt,PinInput as xt,PinInputField as St,Popover as Ct,PopoverBody as wt,PopoverContent as Tt,PopoverFooter as Et,PopoverTrigger as Dt,Select as Ot,Skeleton as kt,Spinner as At,Stack as jt,Switch as Mt,Tag as Nt,Text as R,Textarea as Pt,Tooltip as Ft,VStack as z,Wrap as It,WrapItem as Lt,createMultiStyleConfigHelpers as Rt,createStandaloneToast as zt,defineStyle as Bt,defineStyleConfig as Vt,extendTheme as Ht,theme as Ut,useColorMode as Wt,useDisclosure as Gt,useMediaQuery as Kt,useSteps as qt,useToken as B}from"@chakra-ui/react";import V,{Fragment as Jt,createContext as Yt,useCallback as H,useContext as Xt,useEffect as U,useMemo as W,useRef as Zt,useState as G}from"react";import{Fragment as K,jsx as q,jsxs as J}from"react/jsx-runtime";import{BigNumber as Qt}from"bignumber.js";import{Interface as $t,ethers as en,namehash as tn,parseEther as nn,toBeHex as rn,toUtf8String as an,zeroPadValue as on}from"ethers";import{ABIContract as sn,Address as cn,Clause as ln,HexUInt as un,Revision as dn,Transaction as fn,Units as pn,VET as mn}from"@vechain/sdk-core";import hn from"i18next";import{Trans as gn,initReactI18next as _n,useTranslation as Y}from"react-i18next";import{PrivyProvider as vn,useCreateWallet as yn,useLoginWithEmail as bn,useLoginWithOAuth as xn,useLoginWithPasskey as Sn,useMfaEnrollment as Cn,usePrivy as wn,usePrivy as Tn,useSetWalletRecovery as En}from"@privy-io/react-auth";import{ReactQueryDevtools as Dn}from"@tanstack/react-query-devtools";import{DAppKitProvider as On,WalletButton as kn,useThor as An,useThor as jn,useWallet as Mn,useWallet as Nn,useWalletModal as Pn}from"@vechain/dapp-kit-react";import{QueryClient as Fn,QueryClientContext as In,QueryClientProvider as Ln,useQueries as Rn,useQuery as X,useQueryClient as zn}from"@tanstack/react-query";import{hashFn as Bn}from"wagmi/query";import{motion as Vn}from"framer-motion";import{LuArchive as Hn,LuArrowDown as Un,LuArrowDownToLine as Wn,LuArrowDownUp as Gn,LuArrowLeftRight as Kn,LuArrowRight as qn,LuArrowUp as Jn,LuArrowUpFromLine as Yn,LuBell as Xn,LuBookmark as Zn,LuBookmarkCheck as Qn,LuCamera as $n,LuCheck as er,LuChevronDown as tr,LuChevronLeft as nr,LuChevronRight as rr,LuChevronUp as ir,LuCircleAlert as ar,LuCircleCheck as or,LuCircleHelp as sr,LuCircleX as cr,LuCopy as lr,LuDollarSign as ur,LuEllipsis as dr,LuExternalLink as fr,LuFingerprint as pr,LuFuel as mr,LuGavel as hr,LuGithub as gr,LuGlobe as _r,LuGripVertical as vr,LuKey as yr,LuLanguages as br,LuLogOut as xr,LuMail as Sr,LuMinus as Cr,LuPencil as wr,LuPhone as Tr,LuPlus as Er,LuRefreshCw as Dr,LuRotateCcw as Or,LuSearch as kr,LuSettings as Ar,LuSettings2 as jr,LuShield as Mr,LuShieldCheck as Nr,LuSlash as Pr,LuSquareUser as Fr,LuTrash2 as Ir,LuUnlink as Lr,LuUser as Rr,LuUserCog as zr,LuWallet as Br,LuX as Vr}from"react-icons/lu";import{getAddressDomain as Hr,getAvatar as Ur,getB3trBalance as Wr,getDomainAddress as Gr,getErc20Balance as Kr,getIsPerson as qr,getTokenInfo as Jr,getVot3Balance as Yr,isPrimaryDomain as Xr,isValidDomain as Zr}from"@vechain/contract-getters";import{MyERC20__factory as Qr,OracleVechainEnergy__factory as $r,SocialLoginSmartAccountFactory__factory as ei,SocialLoginSmartAccountFactory__factory as ti,SocialLoginSmartAccount__factory as ni,SocialLoginSmartAccount__factory as ri,UniswapV2Router02__factory as ii,VetDomainsRegistry__factory as ai,VetDomainsRegistry__factory as oi,VetDomainsReverseRegistrar__factory as si,VeworldSubdomainClaimer__factory as ci,X2EarnApps__factory as li,XAllocationPool__factory as ui,XAllocationVoting__factory as di}from"@vechain/vechain-contract-types";import{concat as fi,decodeEventLog as pi,defineChain as mi,encodeFunctionData as hi,formatEther as gi,formatUnits as _i,keccak256 as vi,namehash as yi,parseEther as bi,parseUnits as xi,toBytes as Si,zeroAddress as Ci}from"viem";import{z as wi}from"zod";import{WagmiProvider as Ti,createConfig as Ei,http as Di,useAccount as Oi,useConnect as ki,useDisconnect as Ai,useSignMessage as ji,useSignTypedData as Mi}from"wagmi";import{toPrivyWalletConnector as Ni}from"@privy-io/cross-app-connect/rainbow-kit";import{isMobile as Pi}from"react-device-detect";import Fi from"browser-image-compression";import{ProviderInternalBaseWallet as Ii,ThorClient as Li,ThorClient as Ri,VeChainProvider as zi,signerUtils as Bi}from"@vechain/sdk-network";import{FcGoogle as Vi}from"react-icons/fc";import{useForm as Hi}from"react-hook-form";import{ens_normalize as Ui}from"@adraffy/ens-normalize";import{QRCode as Wi}from"react-qrcode-logo";import{FaDiscord as Gi,FaXTwitter as Ki}from"react-icons/fa6";import{SiFarcaster as qi}from"react-icons/si";import{FaApple as Ji,FaDiscord as Yi,FaInstagram as Xi,FaLinkedin as Zi,FaSpotify as Qi,FaTelegram as $i,FaTelegramPlane as ea,FaTiktok as ta,FaWhatsapp as na}from"react-icons/fa";import{CacheProvider as ra,Global as ia,css as aa}from"@emotion/react";import oa from"@emotion/cache";import{cardAnatomy as sa,modalAnatomy as ca,popoverAnatomy as la}from"@chakra-ui/anatomy";import*as ua from"@noble/curves/abstract/utils";var da={" and ":` and `,"'{{policyName}}' on connect":`'{{policyName}}' on connect`,"'{{policyName}}' on {{date}}":`'{{policyName}}' on {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`A .vet domain is required to customize your profile. Choose an account name to get started.`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.`,"A new version is available for your account":`A new version is available for your account`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.`,AVAILABLE:`AVAILABLE`,Accept:`Accept`,"Accept all":`Accept all`,"Accept selected":`Accept selected`,"Access and security":`Access and security`,"Account Upgrade Required":`Account Upgrade Required`,"Account already upgraded":`Account already upgraded`,"Account upgrade required":`Account upgrade required`,Active:`Active`,"Add Login Method":`Add Login Method`,"Add Token":`Add Token`,"Add to shortcuts":`Add to shortcuts`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.`,"Address is required":`Address is required`,All:`All`,"All apps":`All apps`,"All policies you have accepted":`All policies you have accepted`,"All tokens":`All tokens`,"Already have an x2earn app wallet?":`Already have an x2earn app wallet?`,Amount:`Amount`,"Amount is required":`Amount is required`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.`,"An unexpected error occurred.":`An unexpected error occurred.`,Apple:`Apple`,Apply:`Apply`,Archived:`Archived`,"Archived Notifications":`Archived Notifications`,"Are you sure you want to disconnect your wallet?":`Are you sure you want to disconnect your wallet?`,"Are you sure you want to reject the policies and disconnect?":`Are you sure you want to reject the policies and disconnect?`,"Are you sure you want to set your domain name to":`Are you sure you want to set your domain name to`,"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}}?`,"Are you sure you want to unset your current domain?":`Are you sure you want to unset your current domain?`,Assets:`Assets`,At:`At`,"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.`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.`,"Backup your wallet":`Backup your wallet`,"Backup your wallet, configure MFA and set recovery options":`Backup your wallet, configure MFA and set recovery options`,Balance:`Balance`,"Benefits of this upgrade:":`Benefits of this upgrade:`,Best:`Best`,"Better transaction handling":`Better transaction handling`,Bridge:`Bridge`,"By continuing, you agree to":`By continuing, you agree to`,Cancel:`Cancel`,"Choose Name":`Choose Name`,"Choose a name for your account.":`Choose a name for your account.`,"Choose a unique .vet domain name for your account.":`Choose a unique .vet domain name for your account.`,"Choose account name":`Choose account name`,"Choose name":`Choose name`,"Choose which tokens to use for transaction fees when the app is not covering them.":`Choose which tokens to use for transaction fees when the app is not covering them.`,"Choose your account name":`Choose your account name`,"Claim your vet domain!":`Claim your vet domain!`,"Claiming name...":`Claiming name...`,"Clear all":`Clear all`,"Cleared notifications will appear here":`Cleared notifications will appear here`,Click:`Click`,"Click below to access {{ name }} and explore its features.":`Click below to access {{ name }} and explore its features.`,Close:`Close`,"Close and do this later":`Close and do this later`,"Close announcement":`Close announcement`,"Coming Soon!":`Coming Soon!`,"Coming soon":`Coming soon`,Confirm:`Confirm`,"Confirm Changes":`Confirm Changes`,"Confirm Name":`Confirm Name`,"Confirm Unset Domain":`Confirm Unset Domain`,"Confirm the transaction in your wallet to complete it.":`Confirm the transaction in your wallet to complete it.`,"Confirm transaction":`Confirm transaction`,"Connect an external wallet for easier access":`Connect an external wallet for easier access`,"Connect wallet":`Connect wallet`,"Connect with VeWorld wallet":`Connect with VeWorld wallet`,"Connect your Apple account for easier access":`Connect your Apple account for easier access`,"Connect your Discord account for easier access":`Connect your Discord account for easier access`,"Connect your Farcaster account for easier access":`Connect your Farcaster account for easier access`,"Connect your Github account for easier access":`Connect your Github account for easier access`,"Connect your Google account for easier access":`Connect your Google account for easier access`,"Connect your Instagram account for easier access":`Connect your Instagram account for easier access`,"Connect your LinkedIn account for easier access":`Connect your LinkedIn account for easier access`,"Connect your Spotify account for easier access":`Connect your Spotify account for easier access`,"Connect your Telegram account for easier access":`Connect your Telegram account for easier access`,"Connect your Tiktok account for easier access":`Connect your Tiktok account for easier access`,"Connect your Twitter account for easier access":`Connect your Twitter account for easier access`,"Connect your email for easier access":`Connect your email for easier access`,"Connect your phone number for easier access":`Connect your phone number for easier access`,"Connecting to VeChain":`Connecting to VeChain`,"Connecting with":`Connecting with`,"Connecting with Passkey":`Connecting with Passkey`,"Connecting...":`Connecting...`,"Connection Details":`Connection Details`,"Connection Failed":`Connection Failed`,"Connection Type":`Connection Type`,"Connection details":`Connection details`,Continue:`Continue`,"Continue with Github":`Continue with Github`,"Continue with Google":`Continue with Google`,"Cookie Policy":`Cookie Policy`,"Cookie policy outlining the use of cookies and tracking technologies.":`Cookie policy outlining the use of cookies and tracking technologies.`,"Copy your address or scan this QR code":`Copy your address or scan this QR code`,Currency:`Currency`,Current:`Current`,"Current domain":`Current domain`,Customization:`Customization`,Customize:`Customize`,"Customize profile":`Customize profile`,"Customize the appearance of your wallet.":`Customize the appearance of your wallet.`,Description:`Description`,"Description must be less than 100 characters":`Description must be less than 100 characters`,"Didn't get an email?":`Didn't get an email?`,Discord:`Discord`,"Display Name":`Display Name`,"Display name must be less than 25 characters":`Display name must be less than 25 characters`,"Domain set":`Domain set`,"Domain unset":`Domain unset`,Done:`Done`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Drag to reorder. The system will automatically use the highest priority token with sufficient balance.`,Ecosystem:`Ecosystem`,"Eg: DevRel @ ENS Labs":`Eg: DevRel @ ENS Labs`,Email:`Email`,"Email address":`Email address`,"Embedded wallet":`Embedded wallet`,"Enhanced compatibility with dApps":`Enhanced compatibility with dApps`,"Enter confirmation code":`Enter confirmation code`,"Enter your display name":`Enter your display name`,"Enter your name":`Enter your name`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.`,"Existing Custom Tokens":`Existing Custom Tokens`,"Failed to connect with Passkey":`Failed to connect with Passkey`,"Failed to connect with VeChain":`Failed to connect with VeChain`,"Failed to connect with ecosystem app":`Failed to connect with ecosystem app`,"Failed to load App Hub apps":`Failed to load App Hub apps`,Farcaster:`Farcaster`,Fee:`Fee`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.`,"Fee token":`Fee token`,"Filter by category":`Filter by category`,"Finally say goodbye to 0x addresses":`Finally say goodbye to 0x addresses`,"For developers":`For developers`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.`,"Found following rates":`Found following rates`,From:`From`,"Gas Token Preferences":`Gas Token Preferences`,"Gas fee":`Gas fee`,General:`General`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.`,Google:`Google`,Help:`Help`,"How do I backup my wallet?":`How do I backup my wallet?`,"How do I send tokens?":`How do I send tokens?`,"How is my wallet secured?":`How is my wallet secured?`,"I have read and agree to ":`I have read and agree to `,"Ignore and continue":`Ignore and continue`,"Improved security features":`Improved security features`,Instagram:`Instagram`,"Insufficient balance":`Insufficient balance`,"Insufficient balance to claim this domain and cover gas fees.":`Insufficient balance to claim this domain and cover gas fees.`,"Insufficient balance to complete this transaction and cover gas fees.":`Insufficient balance to complete this transaction and cover gas fees.`,"Insufficient balance to complete this transfer and cover gas fees.":`Insufficient balance to complete this transfer and cover gas fees.`,"Insufficient balance to update your profile and cover gas fees.":`Insufficient balance to update your profile and cover gas fees.`,"Insufficient {{symbol}} balance":`Insufficient {{symbol}} balance`,"Invalid address or domain":`Invalid address or domain`,"Invalid contract address":`Invalid contract address`,"Invalid token address":`Invalid token address`,Language:`Language`,"Launch vechain.energy":`Launch vechain.energy`,"Launch {{name}}":`Launch {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.`,"Link Apple Account":`Link Apple Account`,"Link Discord Account":`Link Discord Account`,"Link Email Account":`Link Email Account`,"Link External Wallet":`Link External Wallet`,"Link Farcaster Account":`Link Farcaster Account`,"Link Github Account":`Link Github Account`,"Link Google Account":`Link Google Account`,"Link Instagram Account":`Link Instagram Account`,"Link LinkedIn Account":`Link LinkedIn Account`,"Link Phone Number":`Link Phone Number`,"Link Spotify Account":`Link Spotify Account`,"Link Telegram Account":`Link Telegram Account`,"Link Tiktok Account":`Link Tiktok Account`,"Link Twitter Account":`Link Twitter Account`,LinkedIn:`LinkedIn`,"Loading your domains...":`Loading your domains...`,"Log in or sign up":`Log in or sign up`,"Logged in with":`Logged in with`,Login:`Login`,"Login failed:":`Login failed:`,"Login methods":`Login methods`,"Login methods and Passkeys":`Login methods and Passkeys`,Logout:`Logout`,"Manage Custom Tokens":`Manage Custom Tokens`,"Manage MFA":`Manage MFA`,"Manage Recovery":`Manage Recovery`,"Manage on {{appName}}":`Manage on {{appName}}`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.`,"Manage your login methods and passkeys":`Manage your login methods and passkeys`,"Manage your preferences for currency, language, and appearance.":`Manage your preferences for currency, language, and appearance.`,"Minimum {{symbol}} transfer is {{min}}":`Minimum {{symbol}} transfer is {{min}}`,More:`More`,"Multiclause Transactions Are Now Supported":`Multiclause Transactions Are Now Supported`,"Name must be at least 3 characters long":`Name must be at least 3 characters long`,"Name your account to make it easier to exchange assets":`Name your account to make it easier to exchange assets`,Network:`Network`,New:`New`,"New image selected":`New image selected`,"No additional accounts available to link":`No additional accounts available to link`,"No application from VeChain ecosystem is available to login.":`No application from VeChain ecosystem is available to login.`,"No apps found in this category":`No apps found in this category`,"No archived notifications":`No archived notifications`,"No assets":`No assets`,"No notifications":`No notifications`,"No policies accepted":`No policies accepted`,"No questions found":`No questions found`,"No quotes available":`No quotes available`,"No tokens found":`No tokens found`,"Node URL":`Node URL`,Notifications:`Notifications`,"Only letters, numbers, and hyphens are allowed":`Only letters, numbers, and hyphens are allowed`,Optional:`Optional`,"Other options":`Other options`,Passkey:`Passkey`,"Phone Number":`Phone Number`,"Please approve the request in the connection request window...":`Please approve the request in the connection request window...`,"Please be sure to keep this wallet safe and backed up.":`Please be sure to keep this wallet safe and backed up.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Please check {{email}} for an email from privy.io and enter your code below.`,"Please complete the passkey authentication...":`Please complete the passkey authentication...`,"Please confirm the transaction in your wallet.":`Please confirm the transaction in your wallet.`,"Please enter a valid Twitter handle without @":`Please enter a valid Twitter handle without @`,"Please enter a valid contract address":`Please enter a valid contract address`,"Please enter a valid email address":`Please enter a valid email address`,"Please enter a valid number":`Please enter a valid number`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Please take a moment to review all the policies, with acceptance being mandatory to continue.`,Policy:`Policy`,"Preparing changes...":`Preparing changes...`,"Privacy Policy":`Privacy Policy`,"Privacy policy outlining the data collection and processing practices.":`Privacy policy outlining the data collection and processing practices.`,"Privy Status":`Privy Status`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.`,"Processing transaction...":`Processing transaction...`,Profile:`Profile`,"Profile Image":`Profile Image`,"Profile Picture":`Profile Picture`,"Profile Updated":`Profile Updated`,"Read More":`Read More`,Receive:`Receive`,"Receive tokens":`Receive tokens`,"Reduced gas costs for operations":`Reduced gas costs for operations`,"Reject and logout":`Reject and logout`,Remove:`Remove`,"Remove Login Method":`Remove Login Method`,"Remove from shortcuts":`Remove from shortcuts`,"Remove your current domain name":`Remove your current domain name`,"Resend code":`Resend code`,Retry:`Retry`,"Save Changes":`Save Changes`,"Saving changes...":`Saving changes...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!`,"Search Apps":`Search Apps`,"Search FAQ":`Search FAQ`,"Security preferences":`Security preferences`,"Security settings":`Security settings`,"Select Additional Login Method":`Select Additional Login Method`,"Select Token":`Select Token`,"Select currency":`Select currency`,"Select language":`Select language`,"Select the token to pay the fee with":`Select the token to pay the fee with`,"Select token":`Select token`,Send:`Send`,"Send all":`Send all`,"Sending Transaction...":`Sending Transaction...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Sending to OceanX or other exchanges may result in loss of funds.`,"Sending...":`Sending...`,"Set a domain first":`Set a domain first`,"Set up Passkey":`Set up Passkey`,"Set up a passkey for easier access":`Set up a passkey for easier access`,Settings:`Settings`,"Share on":`Share on`,Shortcuts:`Shortcuts`,"Show Less":`Show Less`,"Show More":`Show More`,"Slippage tolerance":`Slippage tolerance`,"Smart Account":`Smart Account`,"Smart Account detected":`Smart Account detected`,"Something went wrong":`Something went wrong`,"Something went wrong. Please try again.":`Something went wrong. Please try again.`,Source:`Source`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Stay tuned for our upcoming Activity feature`,"Stay tuned for our upcoming NFT feature":`Stay tuned for our upcoming NFT feature`,Submit:`Submit`,Swap:`Swap`,"Swap all":`Swap all`,"Swapping...":`Swapping...`,Telegram:`Telegram`,"Terms and Conditions":`Terms and Conditions`,"Terms and Policies":`Terms and Policies`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.`,"This address only supports VeChain assets.":`This address only supports VeChain assets.`,"This domain is already taken":`This domain is already taken`,"This domain is protected":`This domain is protected`,"This is taking longer than expected.":`This is taking longer than expected.`,"This is your main wallet, created by {{element}} and secured by Privy.":`This is your main wallet, created by {{element}} and secured by Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.`,Tiktok:`Tiktok`,To:`To`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).`,"Token Contract Address":`Token Contract Address`,"Token Priority Order":`Token Priority Order`,"Token already added":`Token already added`,Tools:`Tools`,"Transaction failed":`Transaction failed`,"Transaction failed:":`Transaction failed:`,"Transaction is being processed, it can take up to 15 seconds.":`Transaction is being processed, it can take up to 15 seconds.`,"Transaction successful":`Transaction successful`,"Transaction successful!":`Transaction successful!`,"Try again":`Try again`,"Try searching with a different term":`Try searching with a different term`,Twitter:`Twitter`,"Twitter username":`Twitter username`,"Type the receiver address or domain":`Type the receiver address or domain`,UNAVAILABLE:`UNAVAILABLE`,"Unable to fetch the price":`Unable to fetch the price`,"Unset current domain":`Unset current domain`,"Unsetting current domain...":`Unsetting current domain...`,"Upgrade Smart Account to V3":`Upgrade Smart Account to V3`,"Upgrade Successful!":`Upgrade Successful!`,"Upgrade account":`Upgrade account`,"Upgrading...":`Upgrading...`,"Use social login with VeChain":`Use social login with VeChain`,"Use this token for future transactions":`Use this token for future transactions`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.`,"VeChain Kit":`VeChain Kit`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.`,"VeWorld Wallet":`VeWorld Wallet`,"Vechain Kit Policy":`Vechain Kit Policy`,"View Current Policy":`View Current Policy`,"View on explorer":`View on explorer`,"View transaction on the explorer":`View transaction on the explorer`,"Waiting for confirmation":`Waiting for confirmation`,"Waiting for confirmation...":`Waiting for confirmation...`,"Waiting wallet confirmation...":`Waiting wallet confirmation...`,Wallet:`Wallet`,"Wallet secured by":`Wallet secured by`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using`,Website:`Website`,"Website URL":`Website URL`,"Website URL must start with https://":`Website URL must start with https://`,"What is B3TR?":`What is B3TR?`,"What is Privy?":`What is Privy?`,"What is VET?":`What is VET?`,"What is VTHO?":`What is VTHO?`,"What is VeBetterDAO?":`What is VeBetterDAO?`,"What is VeChain?":`What is VeChain?`,"What is a Smart Account?":`What is a Smart Account?`,"What is a domain name?":`What is a domain name?`,"What is a network?":`What is a network?`,"What is a wallet?":`What is a wallet?`,"What is an x2earn application?":`What is an x2earn application?`,"What is fee delegation?":`What is fee delegation?`,"When you have accepted a policy, it will appear here":`When you have accepted a policy, it will appear here`,"When you have notifications, they will appear here":`When you have notifications, they will appear here`,"YOU OWN THIS":`YOU OWN THIS`,"You accepted current policy on {{date}}":`You accepted current policy on {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.`,"You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`You have an active smart account associated to this wallet. It has been set as your main identity.`,"You may want to try establishing the connection again.":`You may want to try establishing the connection again.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.`,"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.`,"Your address has been successfully set to {{name}}":`Your address has been successfully set to {{name}}`,"Your changes have been saved successfully.":`Your changes have been saved successfully.`,"Your domain has been unset successfully.":`Your domain has been unset successfully.`,"Your embedded wallet":`Your embedded wallet`,"Your existing domains":`Your existing domains`,"Your smart account is already upgraded to this version.":`Your smart account is already upgraded to this version.`,"Your smart account needs to be upgraded to the latest version (v3).":`Your smart account needs to be upgraded to the latest version (v3).`,"Your tokens":`Your tokens`,"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.`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`here`,marketplaces:`Marketplaces`,rate:`rate`,"to learn more about embedded wallets.":`to learn more about embedded wallets.`,unavailable:`unavailable`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},fa={" and ":` und `,"'{{policyName}}' on connect":`'{{policyName}}' bei Verbindung`,"'{{policyName}}' on {{date}}":`'{{policyName}}' am {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>Ihre Privatsphäre ist wichtig.</bold> Sie haben die Kontrolle, akzeptieren Sie optionale Funktionen wie Cookies und Analysen, die uns helfen, Ihr Erlebnis zu verbessern.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Eine .vet-Domain ist erforderlich, um Ihr Profil anzupassen. Wählen Sie einen Kontonamen, um zu beginnen.`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`Ein Smart Account ist eine Smart-Contract-Wallet, die erweiterte Sicherheit und Funktionalität bietet. Sie ermöglicht Funktionen wie soziale Wiederherstellung, Transaktionsbündelung und mehr.`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`Ein Domain-Name ist eine Art Spitzname für Ihre Wallet-Adresse. Er ermöglicht es Ihnen, Ihre Wallet leicht zu identifizieren und mit dApps über einen menschenlesbaren Namen zu interagieren. Zum Beispiel könnte bei einer Wallet-Adresse von 0x1234567890 Ihr Spitzname "alice.vechain" sein.`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`Ein Netzwerk in der Blockchain bezieht sich auf die Umgebung, in der Transaktionen stattfinden. VeChain hat zwei Hauptnetzwerke: Mainnet (das Live-Netzwerk, in dem echte Transaktionen stattfinden) und Testnet (eine Testumgebung für Entwickler). Das Netzwerk, mit dem Sie verbunden sind, wird oben in diesem Modal angezeigt.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Ein neues Upgrade ist für Ihr Smart-Konto verfügbar. Bitte wechseln Sie zum Abschnitt 'Zugang und Sicherheit', um es zu aktualisieren.`,"A new version is available for your account":`Eine neue Version ist für Ihr Konto verfügbar`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`Eine Wallet ist Ihr Zugang zur VeChain-Blockchain. Sie speichert Ihre privaten Schlüssel und ermöglicht es Ihnen, Ihre digitalen Vermögenswerte sicher zu verwalten, Tokens zu senden und zu empfangen und mit dezentralen Anwendungen zu interagieren. Denken Sie daran als Ihr digitales Bankkonto für Blockchain-Transaktionen.`,AVAILABLE:`VERFÜGBAR`,Accept:`Akzeptieren`,"Accept all":`Alle akzeptieren`,"Accept selected":`Auswahl akzeptieren`,"Access and security":`Zugang und Sicherheit`,"Account Upgrade Required":`Kontoupdate erforderlich`,"Account already upgraded":`Konto bereits aktualisiert`,"Account upgrade required":`Kontoupgrade erforderlich`,Active:`Aktiv`,"Add Login Method":`Anmeldemethode hinzufügen`,"Add Token":`Token hinzufügen`,"Add to shortcuts":`Zu den Verknüpfungen hinzufügen`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Das Hinzufügen weiterer verknüpfter Konten erhöht die Sicherheit gegen Verlust des Zugangs, bringt aber auch zusätzliche potenzielle Angriffsvektoren mit sich. Für verbesserte Sicherheit empfehlen wir die Aktivierung von MFA.`,"Address is required":`Adresse ist erforderlich`,All:`Alle`,"All apps":`Alle Apps`,"All policies you have accepted":`Alle akzeptierten Richtlinien`,"All tokens":`Alle Token`,"Already have an x2earn app wallet?":`Haben Sie bereits eine x2earn-App-Wallet?`,Amount:`Betrag`,"Amount is required":`Betrag ist erforderlich`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`Eine X2Earn-Anwendung in VeBetterDAO ist eine nachhaltige App, die Benutzer für umweltfreundliche Aktionen mit B3TR-Token belohnt. Diese Apps müssen B3TR verteilen, Benutzer-Wallets verknüpfen und den Nachweis nachhaltiger Aktionen erbringen. Sie treten VeBetterDAO durch Unterstützung bei und nehmen an wöchentlichen Token-Zuweisungsrunden teil.`,"An unexpected error occurred.":`Ein unerwarteter Fehler ist aufgetreten.`,Apple:`Apple`,Archived:`Archiviert`,"Archived Notifications":`Archivierte Benachrichtigungen`,"Are you sure you want to disconnect your wallet?":`Sind Sie sicher, dass Sie Ihr Wallet trennen möchten?`,"Are you sure you want to reject the policies and disconnect?":`Sind Sie sicher, dass Sie die Richtlinien ablehnen und die Verbindung trennen möchten?`,"Are you sure you want to set your domain name to":`Sind Sie sicher, dass Sie Ihren Domainnamen auf`,"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üpft ist, trennen möchten?`,"Are you sure you want to unset your current domain?":`Sind Sie sicher, dass Sie Ihre aktuelle Domain aufheben möchten?`,Assets:`Vermögenswerte`,At:`Am`,"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öchentlich über 12 Jahre hinweg ausgegeben werden. B3TR wird für Belohnungen, Governance und die Unterstützung von VOT3-Token im Verhältnis 1:1 verwendet. Es unterstützt Nachhaltigkeitsanwendungen und das Verwaltung der DAO-Kasse.`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`Das Sichern Ihres Wallets ist entscheidend, da Sie der Einzige mit Zugriff auf Ihre privaten Schlüssel sind. Wenn etwas schiefgeht, ist Ihr privater Schlüssel der einzige Weg, um Ihre Vermögenswerte wiederherzustellen. Die Art der Sicherung hängt davon ab, wie Sie auf Ihr Wallet zugreifen: Wenn Sie VeWorld verwenden, ist die Sicherungsoption in der App verfügbar. Für Benutzer mit sozialem Login finden Sie Sicherungsoptionen im Wallet-Bereich. Wenn Sie über VeChain oder eine andere Ecosystem-App verbunden sind, müssen Sie die ursprüngliche Website besuchen, sich anmelden und dort auf den Wallet-Bereich zugreifen.`,"Backup your wallet":`Sichern Sie Ihr Wallet`,"Backup your wallet, configure MFA and set recovery options":`Sichern Sie Ihre Wallet, konfigurieren Sie MFA und legen Sie Wiederherstellungsoptionen fest`,Balance:`Guthaben`,"Benefits of this upgrade:":`Vorteile dieses Upgrades:`,Best:`Beste`,"Better transaction handling":`Bessere Transaktionsabwicklung`,Bridge:`Brücke`,"By continuing, you agree to":`Indem Sie fortfahren, stimmen Sie zu`,Cancel:`Abbrechen`,"Choose Name":`Namen wählen`,"Choose a name for your account.":`Wählen Sie einen Namen für Ihr Konto.`,"Choose a unique .vet domain name for your account.":`Wählen Sie einen eindeutigen .vet-Domainnamen für Ihr Konto.`,"Choose account name":`Kontonamen wählen`,"Choose name":`Namen wählen`,"Choose your account name":`Wählen Sie Ihren Kontonamen`,"Claim your vet domain!":`Beanspruchen Sie Ihre Vet-Domain!`,"Claiming name...":`Name wird beansprucht...`,"Clear all":`Alle löschen`,"Cleared notifications will appear here":`Gelöschte Benachrichtigungen werden hier angezeigt`,Click:`Klicken`,"Click below to access {{ name }} and explore its features.":`Klicken Sie unten, um auf {{ name }} zuzugreifen und dessen Funktionen zu erkunden.`,Close:`Schließen`,"Close and do this later":`Schließen und später erledigen`,"Close announcement":`Ankündigung schließen`,"Coming Soon!":`Kommt bald!`,"Coming soon":`Demnächst`,Confirm:`Bestätigen`,"Confirm Changes":`Änderungen bestätigen`,"Confirm Name":`Name bestätigen`,"Confirm Unset Domain":`Löschung der Domain bestätigen`,"Confirm the transaction in your wallet to complete it.":`Bestätigen Sie die Transaktion in Ihrer Wallet, um sie abzuschließen.`,"Confirm transaction":`Transaktion bestätigen`,"Connect an external wallet for easier access":`Verbinden Sie eine externe Wallet für einfacheren Zugang`,"Connect wallet":`Wallet verbinden`,"Connect with VeWorld wallet":`Mit VeWorld Wallet verbinden`,"Connect your Apple account for easier access":`Verbinden Sie Ihr Apple-Konto für einfacheren Zugriff`,"Connect your Discord account for easier access":`Verbinden Sie Ihr Discord-Konto für einen einfacheren Zugriff`,"Connect your Farcaster account for easier access":`Verbinden Sie Ihr Farcaster-Konto für einfacheren Zugriff`,"Connect your Github account for easier access":`Verbinden Sie Ihr Github-Konto für einfacheren Zugriff`,"Connect your Google account for easier access":`Verbinden Sie Ihr Google-Konto für einfacheren Zugriff`,"Connect your Instagram account for easier access":`Verbinden Sie Ihr Instagram-Konto für einfacheren Zugriff`,"Connect your LinkedIn account for easier access":`Verbinden Sie Ihr LinkedIn-Konto für einfacheren Zugriff`,"Connect your Spotify account for easier access":`Verbinden Sie Ihr Spotify-Konto für einfacheren Zugriff`,"Connect your Telegram account for easier access":`Verbinden Sie Ihr Telegram-Konto für einfacheren Zugriff`,"Connect your Tiktok account for easier access":`Verbinden Sie Ihr Tiktok-Konto für einfacheren Zugriff`,"Connect your Twitter account for easier access":`Verbinden Sie Ihr Twitter-Konto für einfacheren Zugriff`,"Connect your email for easier access":`Verbinden Sie Ihre E-Mail für einfacheren Zugriff`,"Connect your phone number for easier access":`Verbinden Sie Ihre Telefonnummer für einfacheren Zugriff`,"Connecting to VeChain":`Verbindung zu VeChain wird hergestellt`,"Connecting with":`Verbinden mit`,"Connecting with Passkey":`Verbinden mit Passkey`,"Connecting...":`Verbinden...`,"Connection Details":`Verbindungsdetails`,"Connection Failed":`Verbindung fehlgeschlagen`,"Connection Type":`Verbindungstyp`,"Connection details":`Verbindungsdetails`,Continue:`Fortfahren`,"Continue with Github":`Weiter mit Github`,"Continue with Google":`Mit Google fortfahren`,"Cookie Policy":`Cookie-Richtlinie`,"Cookie policy outlining the use of cookies and tracking technologies.":`Cookie-Richtlinie, die die Verwendung von Cookies und Tracking-Technologien beschreibt.`,"Copy your address or scan this QR code":`Kopieren Sie Ihre Adresse oder scannen Sie diesen QR-Code`,Currency:`Währung`,Current:`Aktuell`,"Current domain":`Aktuelle Domain`,Customization:`Anpassung`,Customize:`Anpassen`,"Customize profile":`Profil anpassen`,"Customize the appearance of your wallet.":`Passen Sie das Erscheinungsbild Ihrer Geldbörse an.`,Description:`Beschreibung`,"Description must be less than 100 characters":`Die Beschreibung muss weniger als 100 Zeichen umfassen`,"Didn't get an email?":`Keine E-Mail erhalten?`,Discord:`Discord`,"Display Name":`Anzeigename`,"Display name must be less than 25 characters":`Der Anzeigename muss weniger als 25 Zeichen umfassen`,"Domain set":`Domain eingerichtet`,"Domain unset":`Domain aufgehoben`,Done:`Fertig`,Ecosystem:`Ökosystem`,"Eg: DevRel @ ENS Labs":`Z.B.: DevRel @ ENS Labs`,Email:`E-Mail`,"Email address":`E-Mail-Adresse`,"Embedded wallet":`Eingebettetes Wallet`,"Enhanced compatibility with dApps":`Erhöhte Kompatibilität mit dApps`,"Enter confirmation code":`Bestätigungscode eingeben`,"Enter your display name":`Geben Sie Ihren Anzeigenamen ein`,"Enter your name":`Geben Sie Ihren Namen ein`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`Tauschen Sie Ihre digitalen Assets einfach und sicher zwischen VeChain und anderen Blockchain-Netzwerken aus. Swaps werden über Partner durchgeführt, die sowohl dezentrale als auch zentrale Börsen nutzen, um Token zu konvertieren.`,"Existing Custom Tokens":`Vorhandene benutzerdefinierte Tokens`,"Failed to connect with Passkey":`Verbindung mit Passkey fehlgeschlagen`,"Failed to connect with VeChain":`Verbindung mit VeChain fehlgeschlagen`,"Failed to connect with ecosystem app":`Verbindung mit der Ökosystem-App fehlgeschlagen`,"Failed to load App Hub apps":`Fehler beim Laden der App Hub-Apps`,Farcaster:`Farcaster`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`Fee Delegation ist ein einzigartiges Merkmal von VeChain, das es jemand anderem (einem Delegator) ermöglicht, Ihre Transaktionsgebühren zu bezahlen. Während viele dApps und Dienstanbieter als Delegatoren fungieren, um neuen Benutzern den Einstieg zu erleichtern, können bei einigen Transaktionen dennoch Gebühren anfallen, die Sie mit Ihrem eigenen VTHO bezahlen müssen. Gebühren sind notwendig, um Netzwerkmissbrauch zu verhindern und die Knoten zu entschädigen, die Transaktionen in der Blockchain verarbeiten und validieren. Wenn Sie die Gebühren selbst bezahlen, können Sie VTHO aus Ihren Vermögenswerten auswählen, um die Transaktionskosten zu decken.`,"Filter by category":`Nach Kategorie filtern`,"Finally say goodbye to 0x addresses":`Sagen Sie endlich 0x-Adressen auf Wiedersehen`,"For developers":`Für Entwickler`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Aus Sicherheitsgründen können Sie die Einstellungen Ihrer eingebetteten Wallet nur auf der {{appName}} Plattform verwalten.`,"Found following rates":`Folgende Kurse gefunden`,From:`Von`,"Gas fee":`Gasgebühr`,General:`Allgemein`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`Gute Neuigkeiten! Multiclause-Transaktionen werden jetzt vollständig für Smart-Accounts unterstützt. Sie können jetzt von einer besseren Benutzererfahrung, niedrigeren Gaskosten und erhöhter Sicherheit profitieren.`,Google:`Google`,Help:`Hilfe`,"How do I backup my wallet?":`Wie sichere ich meine Brieftasche?`,"How do I send tokens?":`Wie sende ich Tokens?`,"How is my wallet secured?":`Wie ist meine Brieftasche gesichert?`,"I have read and agree to ":`Ich habe gelesen und stimme zu `,"Ignore and continue":`Ignorieren und fortfahren`,"Improved security features":`Verbesserte Sicherheitsfunktionen`,Instagram:`Instagram`,"Insufficient {{symbol}} balance":`Unzureichendes {{symbol}} Guthaben`,"Invalid address or domain":`Ungültige Adresse oder Domain`,"Invalid contract address":`Ungültige Vertragsadresse`,"Invalid token address":`Ungültige Token-Adresse`,Language:`Sprache`,"Launch vechain.energy":`Starte vechain.energy`,"Launch {{name}}":`Starte {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Rechtsvereinbarung zwischen Ihnen, Vechain Kit und der aktuellen App, die die Regeln für die Nutzung von Wallet-Diensten beschreibt.`,"Link Apple Account":`Apple-Konto verknüpfen`,"Link Discord Account":`Discord-Konto verknüpfen`,"Link Email Account":`E-Mail-Konto verknüpfen`,"Link External Wallet":`Externe Brieftasche verknüpfen`,"Link Farcaster Account":`Farcaster-Konto verknüpfen`,"Link Github Account":`Github-Konto verknüpfen`,"Link Google Account":`Google-Konto verknüpfen`,"Link Instagram Account":`Instagram-Konto verknüpfen`,"Link LinkedIn Account":`LinkedIn-Konto verknüpfen`,"Link Phone Number":`Telefonnummer verknüpfen`,"Link Spotify Account":`Spotify-Konto verknüpfen`,"Link Telegram Account":`Telegram-Konto verknüpfen`,"Link Tiktok Account":`Tiktok-Konto verknüpfen`,"Link Twitter Account":`Twitter-Konto verknüpfen`,LinkedIn:`LinkedIn`,"Loading your domains...":`Ihre Domains werden geladen...`,"Log in or sign up":`Einloggen oder anmelden`,"Logged in with":`Angemeldet mit`,Login:`Einloggen`,"Login failed:":`Anmeldung fehlgeschlagen:`,"Login methods":`Anmeldemethoden`,"Login methods and Passkeys":`Anmeldeverfahren und Zugangsschlüssel`,Logout:`Ausloggen`,"Manage Custom Tokens":`Benutzerdefinierte Token verwalten`,"Manage MFA":`MFA verwalten`,"Manage Recovery":`Wiederherstellung verwalten`,"Manage on {{appName}}":`Verwalten auf {{appName}}`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`Verwalten Sie die Sicherheitseinstellungen Ihrer eingebetteten Wallet: Verwalten Sie Ihre Anmeldemethoden, fügen Sie einen Zugangsschlüssel hinzu oder sichern Sie Ihre Wallet, um nie den Zugriff auf Ihre Assets zu verlieren.`,"Manage your login methods and passkeys":`Verwalten Sie Ihre Anmeldemethoden und Zugangsschlüssel`,"Manage your preferences for currency, language, and appearance.":`Verwalten Sie Ihre Einstellungen für Währung, Sprache und Erscheinungsbild.`,"Minimum {{symbol}} transfer is {{min}}":`Die Mindestübertragung von {{symbol}} beträgt {{min}}`,More:`Mehr`,"Multiclause Transactions Are Now Supported":`Multiclause-Transaktionen werden jetzt unterstützt`,"Name must be at least 3 characters long":`Der Name muss mindestens 3 Zeichen lang sein`,"Name your account to make it easier to exchange assets":`Geben Sie Ihrem Konto einen Namen, um den Austausch von Vermögenswerten zu erleichtern`,Network:`Netzwerk`,New:`Neu`,"New image selected":`Neues Bild ausgewählt`,"No additional accounts available to link":`Keine zusätzlichen Konten zum Verknüpfen verfügbar`,"No application from VeChain ecosystem is available to login.":`Keine Anwendung aus dem VeChain-Ökosystem ist zur Anmeldung verfügbar.`,"No apps found in this category":`Keine Apps in dieser Kategorie gefunden`,"No archived notifications":`Keine archivierten Benachrichtigungen`,"No assets":`Keine Vermögenswerte`,"No notifications":`Keine Benachrichtigungen`,"No policies accepted":`Keine akzeptierten Richtlinien`,"No questions found":`Keine Fragen gefunden`,"No quotes available":`Keine Angebote verfügbar`,"No tokens found":`Keine Token gefunden`,"Node URL":`Knoten-URL`,Notifications:`Benachrichtigungen`,"Only letters, numbers, and hyphens are allowed":`Es sind nur Buchstaben, Zahlen und Bindestriche erlaubt`,Optional:`Optional`,"Other options":`Weitere Optionen`,Passkey:`Passwort`,"Phone Number":`Telefonnummer`,"Please approve the request in the connection request window...":`Bitte genehmigen Sie die Anfrage im Verbindungsanfragefenster...`,"Please be sure to keep this wallet safe and backed up.":`Bitte stellen Sie sicher, dass diese Brieftasche sicher und gesichert aufbewahrt wird.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Bitte überprüfen Sie {{email}} auf eine E-Mail von privy.io und geben Sie Ihren Code unten ein.`,"Please complete the passkey authentication...":`Bitte schließen Sie die Passworthauthentifizierung ab...`,"Please confirm the transaction in your wallet.":`Bitte bestätigen Sie die Transaktion in Ihrem Wallet.`,"Please enter a valid Twitter handle without @":`Bitte geben Sie einen gültigen Twitter-Handle ohne @ ein`,"Please enter a valid contract address":`Bitte geben Sie eine gültige Vertragsadresse ein`,"Please enter a valid email address":`Bitte geben Sie eine gültige E-Mail-Adresse ein`,"Please enter a valid number":`Bitte geben Sie eine gültige Nummer ein`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Bitte nehmen Sie sich einen Moment Zeit, um alle Richtlinien zu überprüfen. Die Annahme ist zwingend erforderlich, um fortzufahren.`,Policy:`Richtlinie`,"Preparing changes...":`Änderungen werden vorbereitet...`,"Privacy Policy":`Datenschutzrichtlinie`,"Privacy policy outlining the data collection and processing practices.":`Datenschutzrichtlinie, die die Praktiken zur Datenerfassung und -verarbeitung umreißt.`,"Privy Status":`Privy Status`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy entwickelt Infrastruktur für die Benutzeranmeldung und eingebettete Wallets, um bessere Produkte auf Krypto-Basis zu ermöglichen. Das bedeutet, dass die Kontrolle über Vermögenswerte direkt in die Anwendungen eingebettet wird, um es Benutzern, Unternehmen oder Maschinen zu ermöglichen, digitale Vermögenswerte durch nahtlose Produkterfahrungen zu nutzen.`,"Processing transaction...":`Transaktion wird verarbeitet...`,Profile:`Profil`,"Profile Image":`Profilbild`,"Profile Picture":`Profilbild`,"Profile Updated":`Profil aktualisiert`,"Read More":`Read More`,Receive:`Empfangen`,"Receive tokens":`Token empfangen`,"Reduced gas costs for operations":`Reduzierte Gaskosten für Operationen`,"Reject and logout":`Ablehnen und abmelden`,Remove:`Entfernen`,"Remove Login Method":`Anmeldemethode entfernen`,"Remove from shortcuts":`Aus den Verknüpfungen entfernen`,"Remove your current domain name":`Entfernen Sie Ihren aktuellen Domainnamen`,"Resend code":`Code erneut senden`,Retry:`Erneut versuchen`,"Save Changes":`Änderungen speichern`,"Saving changes...":`Änderungen werden gespeichert...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Verabschieden Sie sich von 0x-Adressen, beanspruchen Sie Ihre .veworld.vet-Subdomain jetzt kostenlos!`,"Search Apps":`Apps durchsuchen`,"Search FAQ":`FAQ durchsuchen`,"Security preferences":`Sicherheitseinstellungen`,"Security settings":`Sicherheitseinstellungen`,"Select Additional Login Method":`Zusätzliche Anmeldemethode auswählen`,"Select Token":`Token auswählen`,"Select currency":`Währung auswählen`,"Select language":`Sprache auswählen`,"Select token":`Token auswählen`,Send:`Senden`,"Send all":`Alle senden`,"Sending Transaction...":`Transaktion wird gesendet...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Das Senden an OceanX oder andere Börsen kann zu einem Verlust von Geldern führen.`,"Sending...":`Senden...`,"Set a domain first":`Legen Sie zuerst eine Domain fest`,"Set up Passkey":`Passkey einrichten`,"Set up a passkey for easier access":`Richten Sie einen Passkey für einfacheren Zugriff ein`,Settings:`Einstellungen`,"Share on":`Teilen auf`,Shortcuts:`Kurzbefehle`,"Show Less":`Show Less`,"Show More":`Mehr anzeigen`,"Slippage tolerance":`Slippage-Toleranz`,"Smart Account":`Smartes Konto`,"Smart Account detected":`Smart-Konto erkannt`,"Something went wrong":`Etwas ist schiefgelaufen`,"Something went wrong. Please try again.":`Etwas ist schiefgelaufen. Bitte versuchen Sie es erneut.`,Source:`Quelle`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Bleiben Sie dran für unser kommendes Aktivitäts-Feature`,"Stay tuned for our upcoming NFT feature":`Bleiben Sie dran für unser kommendes NFT-Feature`,Submit:`Absenden`,Swap:`Tauschen`,"Swap all":`Alle tauschen`,"Swapping...":`Tauschen...`,Telegram:`Telegram`,"Terms and Conditions":`Allgemeine Geschäftsbedingungen`,"Terms and Policies":`Bedingungen und Richtlinien`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Diese Konten sind mit Ihrem eingebetteten Wallet verknüpft und können verwendet werden, um sich in Ihrem Wallet anzumelden und auf Ihren private Schlüssel zuzugreifen.`,"This address only supports VeChain assets.":`Diese Adresse unterstützt nur VeChain-Vermögenswerte.`,"This domain is already taken":`Diese Domain ist bereits vergeben`,"This domain is protected":`Diese Domain ist geschützt`,"This is taking longer than expected.":`Dies dauert länger als erwartet.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Dies ist Ihre Hauptbrieftasche, erstellt von {{element}} und gesichert durch Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Dieses Wallet ist der Besitzer Ihres Smart-Accounts, der als Ihre Identität und als Tor für Ihre Blockchain-Interaktionen verwendet wird.`,Tiktok:`Tiktok`,To:`Zu`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Um weiterhin mit der VeChain-Blockchain zu interagieren und Ihre Operation abzuschließen, muss Ihr Smart Account auf die neueste Version (v3) aktualisiert werden.`,"Token Contract Address":`Token-Vertragsadresse`,"Token already added":`Token bereits hinzugefügt`,Tools:`Werkzeuge`,"Transaction failed":`Transaktion fehlgeschlagen`,"Transaction failed:":`Transaktion fehlgeschlagen:`,"Transaction is being processed, it can take up to 15 seconds.":`Die Transaktion wird bearbeitet, es kann bis zu 15 Sekunden dauern.`,"Transaction successful":`Transaktion erfolgreich`,"Transaction successful!":`Transaktion erfolgreich!`,"Try again":`Erneut versuchen`,"Try searching with a different term":`Versuchen Sie, mit einem anderen Begriff zu suchen`,Twitter:`Twitter`,"Twitter username":`Twitter-Benutzername`,"Type the receiver address or domain":`Geben Sie die Empfängeradresse oder Domain ein`,UNAVAILABLE:`NICHT VERFÜGBAR`,"Unable to fetch the price":`Preis konnte nicht abgerufen werden`,"Unset current domain":`Aktuelle Domain aufheben`,"Unsetting current domain...":`Aktuelle Domain wird aufgehoben...`,"Upgrade Smart Account to V3":`Smart Account auf V3 upgraden`,"Upgrade Successful!":`Upgrade erfolgreich!`,"Upgrade account":`Account upgraden`,"Upgrading...":`Aktualisierung...`,"Use social login with VeChain":`Soziale Anmeldung mit VeChain verwenden`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VET ist die primäre Kryptowährung des VeChain-Netzwerks. Es repräsentiert Wert und Eigentum im VeChain-Ökosystem, ähnlich wie Aktien Eigentum in einem Unternehmen darstellen. Das Halten von VET generiert automatisch VTHO, das benötigt wird, um Transaktionen im Netzwerk zu bezahlen.`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO (VeThor) ist der Energie- oder 'Gas'-Token des VeChain-Netzwerks. Es wird verwendet, um Transaktionsgebühren bei der Interaktion mit der Blockchain zu zahlen. VTHO wird automatisch durch das Halten von VET-Tokens erzeugt und schafft ein Zwei-Token-System, das zur Aufrechterhaltung der Netzwerkstabilität und zur Verwaltung der Transaktionskosten beiträgt.`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO ist eine dezentrale Organisation auf der VeChain-Blockchain, die sich auf Nachhaltigkeit konzentriert. Mitglieder beteiligen sich an der Governance des DAO, indem sie B3TR-Tokens für Belohnungen und VOT3 für Abstimmungen bei Vorschlägen und wöchentlichen Token-Zuteilungsrunden nutzen.`,"VeChain Kit":`VeChain Kit`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`VeChain, mit Hauptsitz in San Marino, Europa, ist ein wegweisendes Blockchain-Ökosystem und Schöpfer von VeChainThor, einer erstklassigen Smart-Contract-Plattform, die die reale Akzeptanz von Blockchain vorantreibt. Gegründet im Jahr 2015 von Sunny Lu, hat sich VeChain kontinuierlich dafür eingesetzt, eine transparente, effiziente, skalierbare und anpassungsfähige Blockchain-Lösung zu liefern.`,"VeWorld Wallet":`VeWorld Wallet`,"Vechain Kit Policy":`Vechain Kit-Richtlinie`,"View Current Policy":`Aktuelle Richtlinie anzeigen`,"View on explorer":`Im Explorer ansehen`,"View transaction on the explorer":`Transaktion im Explorer ansehen`,"Waiting for confirmation":`Warten auf Bestätigung`,"Waiting for confirmation...":`Warten auf Bestätigung...`,"Waiting wallet confirmation...":`Warten auf Bestätigung der Wallet...`,Wallet:`Wallet`,"Wallet secured by":`Wallet gesichert durch`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`Wir empfehlen dringend, deinen privaten Schlüssel zu exportieren, um dein Wallet zu sichern. Dies stellt sicher, dass du es bei Bedarf wiederherstellen oder in Eigenverwahrung übertragen kannst, indem du`,Website:`Webseite`,"Website URL":`Webseiten-URL`,"Website URL must start with https://":`Webseiten-URL muss mit https:// beginnen`,"What is B3TR?":`Was ist B3TR?`,"What is Privy?":`Was ist Privy?`,"What is VET?":`Was ist VET?`,"What is VTHO?":`Was ist VTHO?`,"What is VeBetterDAO?":`Was ist VeBetterDAO?`,"What is VeChain?":`Was ist VeChain?`,"What is a Smart Account?":`Was ist ein Smart Account?`,"What is a domain name?":`Was ist ein Domainname?`,"What is a network?":`Was ist ein Netzwerk?`,"What is a wallet?":`Was ist eine Wallet?`,"What is an x2earn application?":`Was ist eine x2earn-Anwendung?`,"What is fee delegation?":`Was ist Gebührendelegation?`,"When you have accepted a policy, it will appear here":`Wenn Sie eine Richtlinie akzeptiert haben, wird sie hier angezeigt`,"When you have notifications, they will appear here":`Wenn Sie Benachrichtigungen haben, werden sie hier angezeigt`,"YOU OWN THIS":`DAS GEHÖRT IHNEN`,"You accepted current policy on {{date}}":`Sie haben die aktuelle Richtlinie am {{date}} akzeptiert`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Sie verwenden ein eingebettetes Wallet, das durch Ihre soziale Anmeldemethode gesichert ist und ein nahtloses VeChain-Erlebnis bietet.`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`Sie können Tokens senden, indem Sie das Senden-Symbol im Bereich Schnelle Aktionen anklicken. Geben Sie die Adresse oder den VeChain-Domainnamen des Empfängers ein, wählen Sie das Token aus und geben Sie den Betrag an, den Sie senden möchten.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Sie haben ein aktives Smart-Konto, das mit dieser Wallet verbunden ist. Es wurde als Ihre Hauptidentität festgelegt.`,"You may want to try establishing the connection again.":`Sie sollten möglicherweise versuchen, die Verbindung erneut herzustellen.`,"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önnen nun eine bessere Benutzererfahrung, niedrigere Gaskosten und erhöhte Sicherheit genießen.`,"Your address has been successfully set to {{name}}":`Ihre Adresse wurde erfolgreich auf {{name}} gesetzt`,"Your changes have been saved successfully.":`Ihre Änderungen wurden erfolgreich gespeichert.`,"Your domain has been unset successfully.":`Ihre Domain wurde erfolgreich aufgehoben.`,"Your embedded wallet":`Ihr eingebettetes Portemonnaie`,"Your existing domains":`Ihre vorhandenen Domains`,"Your smart account is already upgraded to this version.":`Ihr Smart-Konto ist bereits auf diese Version aktualisiert.`,"Your smart account needs to be upgraded to the latest version (v3).":`Ihr Smart-Konto muss auf die neueste Version (v3) aktualisiert werden.`,"Your tokens":`Ihre Token`,"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ängt davon ab, wie Sie darauf zugreifen. Mit Selbstverwaltungsoptionen wie der VeWorld-Erweiterung, der mobilen App oder einer Hardware-Wallet haben Sie die vollständige Kontrolle über Ihre privaten Schlüssel. Diese Erweiterung selbst hat keinen Zugriff auf Ihre privaten Schlüssel. 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ährleistet.`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`hier`,marketplaces:`Marketplaces`,rate:`Kurs`,"to learn more about embedded wallets.":`um mehr über eingebettete Wallets zu erfahren.`,unavailable:`nicht verfügbar`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},pa={" and ":` e `,"'{{policyName}}' on connect":`'{{policyName}}' su connessione`,"'{{policyName}}' on {{date}}":`'{{policyName}}' il {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>La tua privacy è importante.</bold> Hai il controllo, accetta per abilitare funzionalità opzionali come cookie e analisi che ci aiutano a migliorare la tua esperienza.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`È richiesto un dominio .vet per personalizzare il tuo profilo. Scegli un nome per l'account per iniziare.`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`Un Smart Account è un portafoglio smart contract che offre una maggiore sicurezza e funzionalità. Permette caratteristiche come il recupero sociale, il raggruppamento delle transazioni e altro ancora.`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`Un nome di dominio è una sorta di soprannome per il tuo indirizzo del portafoglio. Ti consente di identificare facilmente il tuo portafoglio e interagire con le dApp utilizzando un nome leggibile dall'uomo. Ad esempio, se il tuo indirizzo del portafoglio è 0x1234567890, il tuo soprannome potrebbe essere "alice.vechain".`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`Una rete nella blockchain si riferisce all'ambiente in cui avvengono le transazioni. VeChain ha due reti principali: Mainnet (la rete live dove avvengono le transazioni reali) e Testnet (un ambiente di test per gli sviluppatori). La rete a cui sei connesso è visualizzata nella parte superiore di questo modulo.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Un nuovo aggiornamento è disponibile per il tuo account intelligente. Vai alla sezione 'Accesso e Sicurezza' per aggiornarlo.`,"A new version is available for your account":`Una nuova versione è disponibile per il tuo account`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`Un portafoglio è il tuo gateway alla blockchain di VeChain. Conserva le tue chiavi private e ti permette di gestire in modo sicuro i tuoi asset digitali, inviare e ricevere token, e interagire con applicazioni decentralizzate. Pensalo come il tuo conto bancario digitale per le transazioni blockchain.`,AVAILABLE:`DISPONIBILE`,Accept:`Accetta`,"Accept all":`Accetta tutto`,"Accept selected":`Accetta selezionati`,"Access and security":`Accesso e sicurezza`,"Account Upgrade Required":`Aggiornamento dell'account richiesto`,"Account already upgraded":`Account già aggiornato`,"Account upgrade required":`Aggiornamento dell'account richiesto`,Active:`Attivo`,"Add Login Method":`Aggiungi metodo di accesso`,"Add Token":`Aggiungi Token`,"Add to shortcuts":`Aggiungi ai collegamenti`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Aggiungere più account collegati aumenta la sicurezza contro la perdita di accesso, ma introduce anche ulteriori potenziali vettori di attacco. Per una maggiore sicurezza, raccomandiamo di abilitare l'MFA.`,"Address is required":`L'indirizzo è richiesto`,All:`Tutti`,"All apps":`Tutte le app`,"All policies you have accepted":`Tutte le politiche che hai accettato`,"All tokens":`Tutti i token`,"Already have an x2earn app wallet?":`Hai già un portafoglio x2earn app?`,Amount:`Importo`,"Amount is required":`È richiesto l'importo`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`Un'applicazione X2Earn in VeBetterDAO è un'app sostenibile che premia gli utenti con token B3TR per azioni ecologiche. Queste app devono distribuire B3TR, collegare i portafogli degli utenti e fornire la prova delle azioni sostenibili. Si uniscono a VeBetterDAO tramite sponsorizzazione e partecipano a turni settimanali di allocazione dei token.`,"An unexpected error occurred.":`Si è verificato un errore inaspettato.`,Apple:`Apple`,Archived:`Archiviato`,"Archived Notifications":`Notifiche archiviate`,"Are you sure you want to disconnect your wallet?":`Sei sicuro di voler disconnettere il tuo portafoglio?`,"Are you sure you want to reject the policies and disconnect?":`Sei sicuro di voler rifiutare le politiche e disconnetterti?`,"Are you sure you want to set your domain name to":`Sei sicuro di voler impostare il tuo nome di dominio su`,"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}}?`,"Are you sure you want to unset your current domain?":`Sei sicuro di voler rimuovere il tuo attuale dominio?`,Assets:`Risorse`,At:`Alle`,"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 è 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à e gestione del tesoro del DAO.`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`Fare il backup del tuo portafoglio è fondamentale poiché sei l'unico ad avere accesso alle tue chiavi private. Se qualcosa va storto, avere la tua chiave privata è l'unico modo per recuperare i tuoi beni. Come fare il backup dipende da come accedi al tuo portafoglio: se usi VeWorld, l'opzione di backup è disponibile all'interno dell'app. Per gli utenti con accesso tramite login sociale, puoi trovare opzioni di backup nella sezione Portafoglio. Se sei connesso tramite VeChain o un'altra app dell'ecosistema, dovrai visitare il sito originale, accedere e raggiungere la sezione Portafoglio da lì.`,"Backup your wallet":`Esegui il backup del tuo portafoglio`,"Backup your wallet, configure MFA and set recovery options":`Esegui il backup del tuo portafoglio, configura MFA e imposta le opzioni di recupero`,Balance:`Saldo`,"Benefits of this upgrade:":`Vantaggi di questo aggiornamento:`,Best:`Migliore`,"Better transaction handling":`Gestione migliore delle transazioni`,Bridge:`Ponte`,"By continuing, you agree to":`Continuando, accetti di`,Cancel:`Annulla`,"Choose Name":`Scegli Nome`,"Choose a name for your account.":`Scegli un nome per il tuo account.`,"Choose a unique .vet domain name for your account.":`Scegli un nome di dominio .vet unico per il tuo account.`,"Choose account name":`Scegli nome account`,"Choose name":`Scegli nome`,"Choose your account name":`Scegli il nome del tuo account`,"Claim your vet domain!":`Richiedi il tuo dominio vet!`,"Claiming name...":`Reclamo del nome in corso...`,"Clear all":`Cancella tutto`,"Cleared notifications will appear here":`Le notifiche cancellate appariranno qui`,Click:`Clicca`,"Click below to access {{ name }} and explore its features.":`Clicca qui sotto per accedere a {{ name }} ed esplorarne le funzionalità.`,Close:`Chiudi`,"Close and do this later":`Chiudi e fallo più tardi`,"Close announcement":`Chiudi annuncio`,"Coming Soon!":`Prossimamente!`,"Coming soon":`Prossimamente`,Confirm:`Conferma`,"Confirm Changes":`Conferma Modifiche`,"Confirm Name":`Conferma Nome`,"Confirm Unset Domain":`Conferma Rimozione Dominio`,"Confirm the transaction in your wallet to complete it.":`Conferma la transazione nel tuo portafoglio per completarla.`,"Confirm transaction":`Conferma transazione`,"Connect an external wallet for easier access":`Collega un portafoglio esterno per un accesso più semplice`,"Connect wallet":`Connetti portafoglio`,"Connect with VeWorld wallet":`Connettiti con il portafoglio VeWorld`,"Connect your Apple account for easier access":`Collega il tuo account Apple per un accesso più facile`,"Connect your Discord account for easier access":`Collega il tuo account Discord per accedere più facilmente`,"Connect your Farcaster account for easier access":`Collega il tuo account Farcaster per un accesso più facile`,"Connect your Github account for easier access":`Collega il tuo account Github per un accesso più facile`,"Connect your Google account for easier access":`Collega il tuo account Google per un accesso più facile`,"Connect your Instagram account for easier access":`Collega il tuo account Instagram per un accesso più facile`,"Connect your LinkedIn account for easier access":`Collega il tuo account LinkedIn per un accesso più facile`,"Connect your Spotify account for easier access":`Collega il tuo account Spotify per un accesso più facile`,"Connect your Telegram account for easier access":`Collega il tuo account Telegram per un accesso più facile`,"Connect your Tiktok account for easier access":`Collega il tuo account Tiktok per un accesso più facile`,"Connect your Twitter account for easier access":`Collega il tuo account Twitter per un accesso più facile`,"Connect your email for easier access":`Collega la tua email per un accesso più facile`,"Connect your phone number for easier access":`Collega il tuo numero di telefono per un accesso più facile`,"Connecting to VeChain":`Connessione a VeChain`,"Connecting with":`Collegamento con`,"Connecting with Passkey":`Collegamento con Passkey`,"Connecting...":`Collegamento...`,"Connection Details":`Dettagli di Connessione`,"Connection Failed":`Connessione Fallita`,"Connection Type":`Tipo di connessione`,"Connection details":`Dettagli della connessione`,Continue:`Continua`,"Continue with Github":`Continua con Github`,"Continue with Google":`Continua con Google`,"Cookie Policy":`Politica sui cookie`,"Cookie policy outlining the use of cookies and tracking technologies.":`Politica sui cookie che descrive l'uso di cookie e tecnologie di tracciamento.`,"Copy your address or scan this QR code":`Copia il tuo indirizzo o scansiona questo codice QR`,Currency:`Valuta`,Current:`Attuale`,"Current domain":`Dominio attuale`,Customization:`Personalizzazione`,Customize:`Personalizza`,"Customize profile":`Personalizza profilo`,"Customize the appearance of your wallet.":`Personalizza l'aspetto del tuo portafoglio.`,Description:`Descrizione`,"Description must be less than 100 characters":`La descrizione deve contenere meno di 100 caratteri`,"Didn't get an email?":`Non hai ricevuto un'email?`,Discord:`Discord`,"Display Name":`Nome da visualizzare`,"Display name must be less than 25 characters":`Il nome da visualizzare deve contenere meno di 25 caratteri`,"Domain set":`Dominio impostato`,"Domain unset":`Dominio rimosso`,Done:`Fatto`,Ecosystem:`Ecosistema`,"Eg: DevRel @ ENS Labs":`Es: DevRel @ ENS Labs`,Email:`Email`,"Email address":`Indirizzo email`,"Embedded wallet":`Portafoglio incorporato`,"Enhanced compatibility with dApps":`Compatibilità migliorata con dApps`,"Enter confirmation code":`Inserisci il codice di conferma`,"Enter your display name":`Inserisci il tuo nome da visualizzare`,"Enter your name":`Inserisci il tuo nome`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`Scambia i tuoi beni digitali tra VeChain e altre reti blockchain in modo facile e sicuro. Gli scambi sono eseguiti tramite partner che utilizzano sia exchange decentralizzati che centralizzati per convertire i token.`,"Existing Custom Tokens":`Token personalizzati esistenti`,"Failed to connect with Passkey":`Connessione fallita con Passkey`,"Failed to connect with VeChain":`Connessione fallita con VeChain`,"Failed to connect with ecosystem app":`Connessione fallita con l'app dell'ecosistema`,"Failed to load App Hub apps":`Caricamento delle app di App Hub non riuscito`,Farcaster:`Farcaster`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`La delega delle commissioni è una funzione unica di VeChain che consente a qualcun altro (un delegante) di pagare le tue commissioni di transazione. Mentre molte dApp e fornitori di servizi agiscono come deleganti per facilitare l'inizio per i nuovi utenti, alcune transazioni potrebbero comunque richiedere che tu paghi le commissioni usando il tuo VTHO. Le commissioni sono necessarie per prevenire lo spam di rete e compensare i nodi che elaborano e convalidano le transazioni sulla blockchain. Quando paghi le commissioni di persona, potrai selezionare VTHO dai tuoi asset per coprire il costo della transazione.`,"Filter by category":`Filtra per categoria`,"Finally say goodbye to 0x addresses":`Finalmente dì addio agli indirizzi 0x`,"For developers":`Per sviluppatori`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Per motivi di sicurezza, puoi gestire le impostazioni del tuo portafoglio integrato solo sulla piattaforma {{appName}}.`,"Found following rates":`Trovate le seguenti tariffe`,From:`Da`,"Gas fee":`Commissione gas`,General:`Generale`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`Buone notizie! Le transazioni multi-clausola sono ora completamente supportate per gli account intelligenti. Ora puoi godere di una migliore esperienza utente, costi di gas ridotti e maggiore sicurezza.`,Google:`Google`,Help:`Aiuto`,"How do I backup my wallet?":`Come faccio a fare il backup del mio portafoglio?`,"How do I send tokens?":`Come posso inviare token?`,"How is my wallet secured?":`Come è protetto il mio portafoglio?`,"I have read and agree to ":`Ho letto e accetto `,"Ignore and continue":`Ignora e continua`,"Improved security features":`Funzionalità di sicurezza migliorate`,Instagram:`Instagram`,"Insufficient {{symbol}} balance":`Saldo insufficiente di {{symbol}}`,"Invalid address or domain":`Indirizzo o dominio non valido`,"Invalid contract address":`Indirizzo del contratto non valido`,"Invalid token address":`Indirizzo del token non valido`,Language:`Lingua`,"Launch vechain.energy":`Avvia vechain.energy`,"Launch {{name}}":`Avvia {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Accordo legale tra te, Vechain Kit e l'app corrente, che descrive le regole per l'utilizzo dei servizi del wallet.`,"Link Apple Account":`Collega account Apple`,"Link Discord Account":`Collega account Discord`,"Link Email Account":`Collega account Email`,"Link External Wallet":`Collega Portafoglio Esterno`,"Link Farcaster Account":`Collega account Farcaster`,"Link Github Account":`Collega account Github`,"Link Google Account":`Collega account Google`,"Link Instagram Account":`Collega account Instagram`,"Link LinkedIn Account":`Collega account LinkedIn`,"Link Phone Number":`Collega numero di telefono`,"Link Spotify Account":`Collega account Spotify`,"Link Telegram Account":`Collega account Telegram`,"Link Tiktok Account":`Collega account Tiktok`,"Link Twitter Account":`Collega account Twitter`,LinkedIn:`LinkedIn`,"Loading your domains...":`Caricamento dei tuoi domini...`,"Log in or sign up":`Accedi o registrati`,"Logged in with":`Accesso effettuato con`,Login:`Accedi`,"Login failed:":`Accesso fallito:`,"Login methods":`Metodi di accesso`,"Login methods and Passkeys":`Metodi di accesso e Chiavi di accesso`,Logout:`Esci`,"Manage Custom Tokens":`Gestisci Token Personalizzati`,"Manage MFA":`Gestisci MFA`,"Manage Recovery":`Gestisci Recupero`,"Manage on {{appName}}":`Gestisci su {{appName}}`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`Gestisci le impostazioni di sicurezza del tuo portafoglio integrato: gestisci i tuoi metodi di accesso, aggiungi una chiave di accesso o esegui il backup del portafoglio per non perdere mai l'accesso ai tuoi beni.`,"Manage your login methods and passkeys":`Gestisci i tuoi metodi di accesso e chiavi di accesso`,"Manage your preferences for currency, language, and appearance.":`Gestisci le tue preferenze per valuta, lingua e aspetto.`,"Minimum {{symbol}} transfer is {{min}}":`Il trasferimento minimo di {{symbol}} è {{min}}`,More:`Altro`,"Multiclause Transactions Are Now Supported":`Le transazioni multi-clausola sono ora supportate`,"Name must be at least 3 characters long":`Il nome deve essere lungo almeno 3 caratteri`,"Name your account to make it easier to exchange assets":`Dai un nome al tuo account per semplificare lo scambio di beni`,Network:`Rete`,New:`Nuovo`,"New image selected":`Nuova immagine selezionata`,"No additional accounts available to link":`Nessun account aggiuntivo disponibile da collegare`,"No application from VeChain ecosystem is available to login.":`Nessuna applicazione dell'ecosistema VeChain è disponibile per l'accesso.`,"No apps found in this category":`Nessuna app trovata in questa categoria`,"No archived notifications":`Nessuna notifica archiviata`,"No assets":`Nessun bene`,"No notifications":`Nessuna notifica`,"No policies accepted":`Nessuna politica accettata`,"No questions found":`Nessuna domanda trovata`,"No quotes available":`Nessuna quotazione disponibile`,"No tokens found":`Nessun token trovato`,"Node URL":`URL del nodo`,Notifications:`Notifiche`,"Only letters, numbers, and hyphens are allowed":`Sono ammessi solo lettere, numeri e trattini`,Optional:`Opzionale`,"Other options":`Altre opzioni`,Passkey:`Chiave di accesso`,"Phone Number":`Numero di telefono`,"Please approve the request in the connection request window...":`Si prega di approvare la richiesta nella finestra della richiesta di connessione...`,"Please be sure to keep this wallet safe and backed up.":`Si prega di assicurarsi che questo portafoglio sia al sicuro e con un backup.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Controlla {{email}} per un'email da privy.io e inserisci il tuo codice qui sotto.`,"Please complete the passkey authentication...":`Si prega di completare l'autenticazione con chiave di accesso...`,"Please confirm the transaction in your wallet.":`Si prega di confermare la transazione nel proprio wallet.`,"Please enter a valid Twitter handle without @":`Inserisci un handle Twitter valido senza @`,"Please enter a valid contract address":`Inserisci un indirizzo di contratto valido`,"Please enter a valid email address":`Inserisci un indirizzo email valido`,"Please enter a valid number":`Per favore inserisci un numero valido`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Per favore, prenditi un momento per esaminare tutte le politiche, la cui accettazione è obbligatoria per continuare.`,Policy:`Politica`,"Preparing changes...":`Preparazione delle modifiche...`,"Privacy Policy":`Informativa sulla privacy`,"Privacy policy outlining the data collection and processing practices.":`Informativa sulla privacy che delinea le pratiche di raccolta e trattamento dei dati.`,"Privy Status":`Privy Status`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy costruisce infrastrutture per l'onboarding degli utenti e per wallet integrati, per abilitare prodotti migliori basati su crypto. Questo significa incorporare il controllo degli asset all'interno delle applicazioni stesse per permettere a utenti, imprese o macchine di utilizzare asset digitali attraverso esperienze di prodotto fluide.`,"Processing transaction...":`Elaborazione della transazione...`,Profile:`Profilo`,"Profile Image":`Immagine del profilo`,"Profile Picture":`Immagine del Profilo`,"Profile Updated":`Profilo aggiornato`,"Read More":`Read More`,Receive:`Ricevi`,"Receive tokens":`Ricevi token`,"Reduced gas costs for operations":`Costi del gas ridotti per le operazioni`,"Reject and logout":`Rifiuta e disconnetti`,Remove:`Rimuovi`,"Remove Login Method":`Rimuovi metodo di accesso`,"Remove from shortcuts":`Rimuovi dai collegamenti`,"Remove your current domain name":`Rimuovi il tuo attuale nome di dominio`,"Resend code":`Reinvia codice`,Retry:`Riprova`,"Save Changes":`Salva modifiche`,"Saving changes...":`Salvataggio delle modifiche...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Dì addio agli indirizzi 0x, richiedi il tuo sottodominio .veworld.vet ora gratuitamente!`,"Search Apps":`Cerca App`,"Search FAQ":`Cerca FAQ`,"Security preferences":`Preferenze di sicurezza`,"Security settings":`Impostazioni di sicurezza`,"Select Additional Login Method":`Seleziona metodo di accesso aggiuntivo`,"Select Token":`Seleziona Token`,"Select currency":`Seleziona valuta`,"Select language":`Seleziona lingua`,"Select token":`Seleziona`,Send:`Invia`,"Send all":`Invia tutto`,"Sending Transaction...":`Invio Transazione...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Inviare a OceanX o ad altri exchange potrebbe comportare la perdita di fondi.`,"Sending...":`Invio...`,"Set a domain first":`Imposta prima un dominio`,"Set up Passkey":`Configura Chiave di Accesso`,"Set up a passkey for easier access":`Configura una chiave di accesso per un accesso più semplice`,Settings:`Impostazioni`,"Share on":`Condividi su`,Shortcuts:`Scorciatoie`,"Show Less":`Show Less`,"Show More":`Mostra di più`,"Slippage tolerance":`Tolleranza allo slippage`,"Smart Account":`Account Smart`,"Smart Account detected":`Account smart rilevato`,"Something went wrong":`Qualcosa è andato storto`,"Something went wrong. Please try again.":`Qualcosa è andato storto. Per favore riprova.`,Source:`Fonte`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Resta sintonizzato per la nostra prossima funzionalità Attività`,"Stay tuned for our upcoming NFT feature":`Resta sintonizzato per la nostra prossima funzionalità NFT`,Submit:`Invia`,Swap:`Scambia`,"Swap all":`Scambia tutto`,"Swapping...":`Scambio in corso...`,Telegram:`Telegram`,"Terms and Conditions":`Termini e condizioni`,"Terms and Policies":`Termini e politiche`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Questi account sono collegati al tuo portafoglio integrato e possono essere utilizzati per accedere al tuo portafoglio e alla tua chiave privata.`,"This address only supports VeChain assets.":`Questo indirizzo supporta solo i beni VeChain.`,"This domain is already taken":`Questo dominio è già stato preso`,"This domain is protected":`Questo dominio è protetto`,"This is taking longer than expected.":`Sta richiedendo più tempo del previsto.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Questo è il tuo portafoglio principale, creato da {{element}} e protetto da Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Questo portafoglio è il proprietario del tuo account smart, che è utilizzato come la tua identità e come un gateway per le tue interazioni con la blockchain.`,Tiktok:`Tiktok`,To:`A`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Per continuare a interagire con la blockchain VeChain e completare la tua operazione, il tuo conto smart deve essere aggiornato all'ultima versione (v3).`,"Token Contract Address":`Indirizzo del Contratto del Token`,"Token already added":`Token già aggiunto`,Tools:`Strumenti`,"Transaction failed":`Transazione fallita`,"Transaction failed:":`Transazione fallita:`,"Transaction is being processed, it can take up to 15 seconds.":`La transazione è in fase di elaborazione, può richiedere fino a 15 secondi.`,"Transaction successful":`Transazione avvenuta con successo`,"Transaction successful!":`Transazione avvenuta con successo!`,"Try again":`Riprovare`,"Try searching with a different term":`Prova a cercare con un termine diverso`,Twitter:`Twitter`,"Twitter username":`Nome utente Twitter`,"Type the receiver address or domain":`Inserisci l'indirizzo o il dominio del destinatario`,UNAVAILABLE:`NON DISPONIBILE`,"Unable to fetch the price":`Impossibile recuperare il prezzo`,"Unset current domain":`Rimuovi dominio attuale`,"Unsetting current domain...":`Rimozione del dominio attuale in corso...`,"Upgrade Smart Account to V3":`Aggiorna Conto Smart a V3`,"Upgrade Successful!":`Aggiornamento Riuscito!`,"Upgrade account":`Aggiorna conto`,"Upgrading...":`Aggiornamento in corso...`,"Use social login with VeChain":`Usa il login social con VeChain`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VET è la criptovaluta principale della rete VeChain. Rappresenta valore e proprietà nell'ecosistema VeChain, simile a come le azioni rappresentano la proprietà in un'azienda. Possedere VET genera automaticamente VTHO, che è necessario per pagare le transazioni sulla rete.`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO (VeThor) è il token energetico o 'gas' della rete VeChain. Viene utilizzato per pagare le commissioni di transazione quando si interagisce con la blockchain. VTHO viene generato automaticamente detenendo token VET, creando un sistema a due token che aiuta a mantenere la stabilità della rete e gestire i costi di transazione.`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO è un'organizzazione decentralizzata sulla blockchain VeChain focalizzata sulla sostenibilità. I membri partecipano alla governance del DAO utilizzando token B3TR per le ricompense e VOT3 per votare nelle proposte e nei turni di allocazione settimanale dei token.`,"VeChain Kit":`Kit VeChain`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`VeChain, con sede a San Marino, Europa, è un ecosistema blockchain pionieristico e creatore di VeChainThor, una piattaforma di smart contract di classe mondiale che promuove l'adozione della blockchain nel mondo reale. Fondata nel 2015 da Sunny Lu, VeChain ha costantemente lavorato per offrire una soluzione blockchain trasparente, efficiente, scalabile e adattabile.`,"VeWorld Wallet":`Portafoglio VeWorld`,"Vechain Kit Policy":`Politica del Vechain Kit`,"View Current Policy":`Visualizza politica corrente`,"View on explorer":`Visualizza sull'explorer`,"View transaction on the explorer":`Visualizza la transazione sull'explorer`,"Waiting for confirmation":`In attesa di conferma`,"Waiting for confirmation...":`In attesa di conferma...`,"Waiting wallet confirmation...":`In attesa di conferma del portafoglio...`,Wallet:`Portafoglio`,"Wallet secured by":`Portafoglio protetto da`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`Consigliamo vivamente di esportare la tua chiave privata per eseguire il backup del tuo portafoglio. Questo garantisce che tu possa ripristinarlo se necessario o trasferirlo in self-custody utilizzando`,Website:`Sito web`,"Website URL":`URL del sito web`,"Website URL must start with https://":`L'URL del sito web deve iniziare con https://`,"What is B3TR?":`Cos'è B3TR?`,"What is Privy?":`Cos'è Privy?`,"What is VET?":`Che cos'è VET?`,"What is VTHO?":`Che cos'è VTHO?`,"What is VeBetterDAO?":`Che cos'è VeBetterDAO?`,"What is VeChain?":`Che cos'è VeChain?`,"What is a Smart Account?":`Cos'è un Account Smart?`,"What is a domain name?":`Cos'è un nome di dominio?`,"What is a network?":`Che cos'è una rete?`,"What is a wallet?":`Che cos'è un portafoglio?`,"What is an x2earn application?":`Cos'è un'applicazione x2earn?`,"What is fee delegation?":`Che cos'è la delega delle commissioni?`,"When you have accepted a policy, it will appear here":`Quando avrai accettato una politica, apparirà qui`,"When you have notifications, they will appear here":`Quando hai notifiche, appariranno qui`,"YOU OWN THIS":`QUESTO È TUO`,"You accepted current policy on {{date}}":`Hai accettato la politica corrente il {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Stai usando un Portafoglio Integrato protetto dal tuo metodo di accesso sociale, garantendo un'esperienza VeChain senza interruzioni.`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`Puoi inviare token cliccando sull'icona di invio nella sezione Azioni Rapide. Inserisci l'indirizzo del destinatario o il nome di dominio VeChain, seleziona il token e specifica l'importo che desideri inviare.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Hai un account smart attivo associato a questo wallet. È stato impostato come la tua identità principale.`,"You may want to try establishing the connection again.":`Potresti voler provare a stabilire nuovamente la connessione.`,"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 è stato aggiornato con successo all'ultima versione. Ora puoi godere di un'esperienza utente migliorata, costi del gas ridotti e maggiore sicurezza.`,"Your address has been successfully set to {{name}}":`Il tuo indirizzo è stato impostato correttamente su {{name}}`,"Your changes have been saved successfully.":`Le tue modifiche sono state salvate con successo.`,"Your domain has been unset successfully.":`Il tuo dominio è stato rimosso con successo.`,"Your embedded wallet":`Il tuo portafoglio integrato`,"Your existing domains":`I tuoi domini esistenti`,"Your smart account is already upgraded to this version.":`Il tuo account smart è già stato aggiornato a questa versione.`,"Your smart account needs to be upgraded to the latest version (v3).":`Il tuo account smart deve essere aggiornato all'ultima versione (v3).`,"Your tokens":`I tuoi token`,"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ù semplice mantenendo la sicurezza.`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`qui`,marketplaces:`Marketplaces`,rate:`tariffa`,"to learn more about embedded wallets.":`per saperne di più sui portafogli integrati.`,unavailable:`non disponibile`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},ma={" and ":` et `,"'{{policyName}}' on connect":`'{{policyName}}' lors de la connexion`,"'{{policyName}}' on {{date}}":`'{{policyName}}' le {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>Votre confidentialité est importante.</bold> Vous contrôlez, acceptez pour activer des fonctionnalités optionnelles telles que les cookies et les analyses qui nous aident à améliorer votre expérience.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Un domaine .vet est requis pour personnaliser votre profil. Choisissez un nom de compte pour commencer.`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`Un compte intelligent est un portefeuille de contrat intelligent offrant une sécurité et des fonctionnalités améliorées. Il permet des fonctionnalités telles que la récupération sociale, le regroupement de transactions, et plus encore.`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`Un nom de domaine est une sorte de surnom pour votre adresse de portefeuille. Il vous permet d'identifier facilement votre portefeuille et d'interagir avec des dApps en utilisant un nom lisible par l'homme. Par exemple, si votre adresse de portefeuille est 0x1234567890, votre surnom pourrait être "alice.vechain".`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`Un réseau dans la blockchain se réfère à l'environnement où les transactions ont lieu. VeChain dispose de deux réseaux principaux : Mainnet (le réseau actif où les transactions réelles se produisent) et Testnet (un environnement de test pour les développeurs). Le réseau auquel vous êtes connecté est affiché en haut de cette fenêtre modale.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Une nouvelle mise à niveau est disponible pour votre compte intelligent. Veuillez vous rendre dans la section 'Accès et Sécurité' pour le mettre à niveau.`,"A new version is available for your account":`Une nouvelle version est disponible pour votre compte`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`Un portefeuille est votre passerelle vers la blockchain VeChain. Il stocke vos clés privées et vous permet de gérer en toute sécurité vos actifs numériques, d'envoyer et de recevoir des tokens, et d'interagir avec des applications décentralisées. Considérez-le comme votre compte bancaire numérique pour les transactions blockchain.`,AVAILABLE:`DISPONIBLE`,Accept:`Accepter`,"Accept all":`Tout accepter`,"Accept selected":`Accepter la sélection`,"Access and security":`Accès et sécurité`,"Account Upgrade Required":`Mise à niveau du compte requise`,"Account already upgraded":`Compte déjà mis à niveau`,"Account upgrade required":`Mise à niveau du compte requise`,Active:`Actif`,"Add Login Method":`Ajouter une méthode de connexion`,"Add Token":`Ajouter un jeton`,"Add to shortcuts":`Ajouter aux raccourcis`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Ajouter plus de comptes liés augmente la sécurité contre la perte d'accès, mais introduit également des vecteurs d'attaque potentiels supplémentaires. Pour une sécurité accrue, nous vous recommandons d'activer l'authentification multifacteur (MFA).`,"Address is required":`L'adresse est requise`,All:`Tout`,"All apps":`Toutes les applications`,"All policies you have accepted":`Toutes les politiques que vous avez acceptées`,"All tokens":`Tous les jetons`,"Already have an x2earn app wallet?":`Vous avez déjà un portefeuille d'application x2earn ?`,Amount:`Montant`,"Amount is required":`Le montant est requis`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`Une application X2Earn dans VeBetterDAO est une application durable qui récompense les utilisateurs avec des tokens B3TR pour des actions écologiques. Ces applications doivent distribuer B3TR, lier les portefeuilles utilisateurs et fournir une preuve des actions durables. Elles rejoignent VeBetterDAO par recommandation et participent à des rondes d’allocation de tokens hebdomadaires.`,"An unexpected error occurred.":`Une erreur inattendue est survenue.`,Apple:`Apple`,Archived:`Archivé`,"Archived Notifications":`Notifications archivées`,"Are you sure you want to disconnect your wallet?":`Êtes-vous sûr de vouloir déconnecter votre portefeuille ?`,"Are you sure you want to reject the policies and disconnect?":`Êtes-vous sûr de vouloir rejeter les politiques et vous déconnecter ?`,"Are you sure you want to set your domain name to":`Êtes-vous sûr de vouloir définir votre nom de domaine sur`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`Êtes-vous sûr de vouloir dissocier {{accountType}} en tant que méthode de connexion liée à {{accountDescription}} ?`,"Are you sure you want to unset your current domain?":`Êtes-vous sûr de vouloir désélectionner votre domaine actuel ?`,Assets:`Actifs`,At:`À`,"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é à 1 milliard de tokens, émis de façon hebdomadaire sur 12 ans. B3TR est utilisé pour les récompenses, la gouvernance et pour soutenir les tokens VOT3 à un taux de 1:1. Il soutient les applications de durabilité et la gestion de la trésorerie DAO.`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`Sauvegarder votre portefeuille est crucial puisque vous êtes le seul à avoir accès à vos clés privées. Si quelque chose ne va pas, avoir votre clé privée est le seul moyen de récupérer vos actifs. La façon de sauvegarder dépend de la manière dont vous accédez à votre portefeuille : si vous utilisez VeWorld, l'option de sauvegarde est disponible dans l'application. Pour les utilisateurs de connexion sociale, vous trouverez les options de sauvegarde dans la section Portefeuille. Si vous êtes connecté via VeChain ou une autre application de l'écosystème, vous devrez visiter le site web d'origine, vous connecter et accéder à la section Portefeuille à partir de là.`,"Backup your wallet":`Sauvegardez votre portefeuille`,"Backup your wallet, configure MFA and set recovery options":`Sauvegardez votre portefeuille, configurez l'authentification multi-facteurs et définissez les options de récupération`,Balance:`Solde`,"Benefits of this upgrade:":`Avantages de cette mise à niveau :`,Best:`Meilleur`,"Better transaction handling":`Meilleure gestion des transactions`,Bridge:`Pont`,"By continuing, you agree to":`En continuant, vous acceptez`,Cancel:`Annuler`,"Choose Name":`Choisir le nom`,"Choose a name for your account.":`Choisissez un nom pour votre compte.`,"Choose a unique .vet domain name for your account.":`Choisissez un nom de domaine .vet unique pour votre compte.`,"Choose account name":`Choisir le nom du compte`,"Choose name":`Choisir un nom`,"Choose your account name":`Choisissez le nom de votre compte`,"Claim your vet domain!":`Réclamez votre domaine vet !`,"Claiming name...":`Réclamation du nom...`,"Clear all":`Tout effacer`,"Cleared notifications will appear here":`Les notifications effacées apparaîtront ici`,Click:`Cliquez`,"Click below to access {{ name }} and explore its features.":`Cliquez ci-dessous pour accéder à {{ name }} et explorer ses fonctionnalités.`,Close:`Fermer`,"Close and do this later":`Fermer et faire ceci plus tard`,"Close announcement":`Fermer l'annonce`,"Coming Soon!":`Bientôt disponible !`,"Coming soon":`Bientôt disponible`,Confirm:`Confirmer`,"Confirm Changes":`Confirmer les modifications`,"Confirm Name":`Confirmer le nom`,"Confirm Unset Domain":`Confirmer la désélection du domaine`,"Confirm the transaction in your wallet to complete it.":`Confirmez la transaction dans votre portefeuille pour la terminer.`,"Confirm transaction":`Confirmer la transaction`,"Connect an external wallet for easier access":`Connectez un portefeuille externe pour un accès plus facile`,"Connect wallet":`Connecter le portefeuille`,"Connect with VeWorld wallet":`Connectez-vous avec le portefeuille VeWorld`,"Connect your Apple account for easier access":`Connectez votre compte Apple pour un accès plus facile`,"Connect your Discord account for easier access":`Connectez votre compte Discord pour un accès plus facile`,"Connect your Farcaster account for easier access":`Connectez votre compte Farcaster pour un accès plus facile`,"Connect your Github account for easier access":`Connectez votre compte Github pour un accès plus facile`,"Connect your Google account for easier access":`Connectez votre compte Google pour un accès plus facile`,"Connect your Instagram account for easier access":`Connectez votre compte Instagram pour un accès plus facile`,"Connect your LinkedIn account for easier access":`Connectez votre compte LinkedIn pour un accès plus facile`,"Connect your Spotify account for easier access":`Connectez votre compte Spotify pour un accès plus facile`,"Connect your Telegram account for easier access":`Connectez votre compte Telegram pour un accès plus facile`,"Connect your Tiktok account for easier access":`Connectez votre compte Tiktok pour un accès plus facile`,"Connect your Twitter account for easier access":`Connectez votre compte Twitter pour un accès plus facile`,"Connect your email for easier access":`Connectez votre email pour un accès facilité`,"Connect your phone number for easier access":`Connectez votre numéro de téléphone pour un accès facilité`,"Connecting to VeChain":`Connexion à VeChain`,"Connecting with":`Connexion avec`,"Connecting with Passkey":`Connexion avec Passkey`,"Connecting...":`Connexion...`,"Connection Details":`Détails de la connexion`,"Connection Failed":`Échec de la connexion`,"Connection Type":`Type de connexion`,"Connection details":`Détails de la connexion`,Continue:`Continuer`,"Continue with Github":`Continuer avec Github`,"Continue with Google":`Continuer avec Google`,"Cookie Policy":`Politique de cookies`,"Cookie policy outlining the use of cookies and tracking technologies.":`Politique de cookies décrivant l'utilisation des cookies et des technologies de suivi.`,"Copy your address or scan this QR code":`Copiez votre adresse ou scannez ce code QR`,Currency:`Devise`,Current:`Actuel`,"Current domain":`Domaine actuel`,Customization:`Personnalisation`,Customize:`Personnaliser`,"Customize profile":`Personnaliser le profil`,"Customize the appearance of your wallet.":`Personnalisez l'apparence de votre portefeuille.`,Description:`Description`,"Description must be less than 100 characters":`La description doit comporter moins de 100 caractères`,"Didn't get an email?":`Vous n'avez pas reçu d'e-mail ?`,Discord:`Discord`,"Display Name":`Nom affiché`,"Display name must be less than 25 characters":`Le nom affiché doit comporter moins de 25 caractères`,"Domain set":`Domaine défini`,"Domain unset":`Domaine désélectionné`,Done:`Fait`,Ecosystem:`Écosystème`,"Eg: DevRel @ ENS Labs":`Ex : DevRel @ ENS Labs`,Email:`Email`,"Email address":`Adresse électronique`,"Embedded wallet":`Portefeuille intégré`,"Enhanced compatibility with dApps":`Compatibilité améliorée avec les dApps`,"Enter confirmation code":`Entrez le code de confirmation`,"Enter your display name":`Entrez votre nom affiché`,"Enter your name":`Entrez votre nom`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`Échangez vos actifs numériques entre VeChain et d'autres réseaux blockchain facilement et en toute sécurité. Les échanges sont effectués par des partenaires qui utilisent à la fois des échanges décentralisés et centralisés pour convertir les jetons.`,"Existing Custom Tokens":`Jetons personnalisés existants`,"Failed to connect with Passkey":`Échec de la connexion avec Passkey`,"Failed to connect with VeChain":`Échec de la connexion avec VeChain`,"Failed to connect with ecosystem app":`Échec de la connexion avec l'application écosystème`,"Failed to load App Hub apps":`Échec du chargement des applications App Hub`,Farcaster:`Farcaster`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`La délégation de frais est une fonctionnalité unique de VeChain qui permet à quelqu'un d'autre (un délégataire) de payer vos frais de transaction. Bien que de nombreuses dApps et prestataires de services agissent en tant que délégataires pour faciliter le démarrage des nouveaux utilisateurs, certaines transactions peuvent encore nécessiter que vous payiez des frais en utilisant votre propre VTHO. Les frais sont nécessaires pour prévenir le spam sur le réseau et pour rémunérer les nœuds qui traitent et valident les transactions sur la blockchain. Lorsque vous payez vous-même les frais, vous pourrez sélectionner VTHO parmi vos actifs pour couvrir le coût de la transaction.`,"Filter by category":`Filtrer par catégorie`,"Finally say goodbye to 0x addresses":`Enfin, dites adieu aux adresses 0x`,"For developers":`Pour les développeurs`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Pour des raisons de sécurité, vous pouvez gérer les paramètres de votre portefeuille intégré uniquement sur la plateforme {{appName}}.`,"Found following rates":`Taux suivants trouvés`,From:`De`,"Gas fee":`Frais de gaz`,General:`Général`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`Bonne nouvelle ! Les transactions multiclause sont désormais entièrement prises en charge pour les comptes intelligents. Vous pouvez désormais profiter d'une meilleure expérience utilisateur, de frais de gaz réduits et d'une sécurité renforcée.`,Google:`Google`,Help:`Aide`,"How do I backup my wallet?":`Comment sauvegarder mon portefeuille ?`,"How do I send tokens?":`Comment envoyer des jetons ?`,"How is my wallet secured?":`Comment mon portefeuille est-il sécurisé ?`,"I have read and agree to ":`J'ai lu et j'accepte `,"Ignore and continue":`Ignorer et continuer`,"Improved security features":`Fonctionnalités de sécurité améliorées`,Instagram:`Instagram`,"Insufficient {{symbol}} balance":`Solde {{symbol}} insuffisant`,"Invalid address or domain":`Adresse ou domaine invalide`,"Invalid contract address":`Adresse de contrat invalide`,"Invalid token address":`Adresse de jeton invalide`,Language:`Langue`,"Launch vechain.energy":`Lancer vechain.energy`,"Launch {{name}}":`Lancer {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Accord juridique entre vous, Vechain Kit et l'application actuelle, décrivant les règles d'utilisation des services de portefeuille.`,"Link Apple Account":`Lier le compte Apple`,"Link Discord Account":`Lier le compte Discord`,"Link Email Account":`Lier le compte Email`,"Link External Wallet":`Lier un portefeuille externe`,"Link Farcaster Account":`Lier le compte Farcaster`,"Link Github Account":`Lier le compte Github`,"Link Google Account":`Lier le compte Google`,"Link Instagram Account":`Lier le compte Instagram`,"Link LinkedIn Account":`Lier le compte LinkedIn`,"Link Phone Number":`Lier le numéro de téléphone`,"Link Spotify Account":`Lier le compte Spotify`,"Link Telegram Account":`Lier le compte Telegram`,"Link Tiktok Account":`Lier le compte Tiktok`,"Link Twitter Account":`Lier le compte Twitter`,LinkedIn:`LinkedIn`,"Loading your domains...":`Chargement de vos domaines...`,"Log in or sign up":`Connexion ou inscription`,"Logged in with":`Connecté avec`,Login:`Connexion`,"Login failed:":`Échec de la connexion :`,"Login methods":`Méthodes de connexion`,"Login methods and Passkeys":`Méthodes de connexion et clés d'accès`,Logout:`Déconnexion`,"Manage Custom Tokens":`Gérer les jetons personnalisés`,"Manage MFA":`Gérer la MFA`,"Manage Recovery":`Gérer la récupération`,"Manage on {{appName}}":`Gérer sur {{appName}}`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`Gérez les paramètres de sécurité de votre portefeuille intégré : gérez vos méthodes de connexion, ajoutez une clé d'accès ou sauvegardez votre portefeuille pour ne jamais perdre l'accès à vos actifs.`,"Manage your login methods and passkeys":`Gérez vos méthodes de connexion et clés d'accès`,"Manage your preferences for currency, language, and appearance.":`Gérez vos préférences de devise, de langue et d'apparence.`,"Minimum {{symbol}} transfer is {{min}}":`Le transfert minimum {{symbol}} est {{min}}`,More:`Plus`,"Multiclause Transactions Are Now Supported":`Les transactions multiclause sont désormais prises en charge`,"Name must be at least 3 characters long":`Le nom doit comporter au moins 3 caractères`,"Name your account to make it easier to exchange assets":`Nommez votre compte pour faciliter l'échange d'actifs`,Network:`Réseau`,New:`Nouveau`,"New image selected":`Nouvelle image sélectionnée`,"No additional accounts available to link":`Aucun compte supplémentaire disponible à lier`,"No application from VeChain ecosystem is available to login.":`Aucune application de l'écosystème VeChain n'est disponible pour se connecter.`,"No apps found in this category":`Aucune application trouvée dans cette catégorie`,"No archived notifications":`Aucune notification archivée`,"No assets":`Aucun actif`,"No notifications":`Aucune notification`,"No policies accepted":`Aucune politique acceptée`,"No questions found":`Aucune question trouvée`,"No quotes available":`Aucun prix disponible`,"No tokens found":`Aucun jeton trouvé`,"Node URL":`URL du nœud`,Notifications:`Notifications`,"Only letters, numbers, and hyphens are allowed":`Seules les lettres, les chiffres et les tirets sont autorisés`,Optional:`Facultatif`,"Other options":`Autres options`,Passkey:`Clé de passe`,"Phone Number":`Numéro de téléphone`,"Please approve the request in the connection request window...":`Veuillez approuver la demande dans la fenêtre de demande de connexion...`,"Please be sure to keep this wallet safe and backed up.":`Veuillez vous assurer que ce portefeuille est en sécurité et sauvegardé.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Veuillez vérifier {{email}} pour un email de privy.io et entrez votre code ci-dessous.`,"Please complete the passkey authentication...":`Veuillez compléter l'authentification par clé de passe...`,"Please confirm the transaction in your wallet.":`Veuillez confirmer la transaction dans votre portefeuille.`,"Please enter a valid Twitter handle without @":`Veuillez entrer un identifiant Twitter valide sans @`,"Please enter a valid contract address":`Veuillez entrer une adresse de contrat valide`,"Please enter a valid email address":`Veuillez entrer une adresse e-mail valide`,"Please enter a valid number":`Veuillez entrer un numéro valide`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Veuillez prendre un moment pour examiner toutes les politiques, l'acceptation étant obligatoire pour continuer.`,Policy:`Politique`,"Preparing changes...":`Préparation des modifications...`,"Privacy Policy":`Politique de confidentialité`,"Privacy policy outlining the data collection and processing practices.":`Politique de confidentialité décrivant les pratiques de collecte et de traitement des données.`,"Privy Status":`Statut Privy`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy construit l'infrastructure d'intégration des utilisateurs et de portefeuilles intégrés pour permettre de meilleurs produits construits sur les rails crypto. Cela signifie intégrer le contrôle des actifs au sein même des applications pour permettre aux utilisateurs, entreprises ou machines de gérer des actifs numériques via des expériences produits fluides.`,"Processing transaction...":`Traitement de la transaction...`,Profile:`Profil`,"Profile Image":`Image de profil`,"Profile Picture":`Image de profil`,"Profile Updated":`Profil mis à jour`,"Read More":`Read More`,Receive:`Recevoir`,"Receive tokens":`Recevoir des jetons`,"Reduced gas costs for operations":`Réduction des coûts de gaz pour les opérations`,"Reject and logout":`Rejeter et se déconnecter`,Remove:`Supprimer`,"Remove Login Method":`Supprimer la méthode de connexion`,"Remove from shortcuts":`Retirer des raccourcis`,"Remove your current domain name":`Supprimer votre nom de domaine actuel`,"Resend code":`Renvoyer le code`,Retry:`Réessayer`,"Save Changes":`Enregistrer les modifications`,"Saving changes...":`Enregistrement des modifications...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Dites adieu aux adresses 0x, réclamez dès maintenant votre sous-domaine .veworld.vet gratuitement!`,"Search Apps":`Rechercher des applications`,"Search FAQ":`Rechercher dans la FAQ`,"Security preferences":`Préférences de sécurité`,"Security settings":`Paramètres de sécurité`,"Select Additional Login Method":`Sélectionner une méthode de connexion supplémentaire`,"Select Token":`Sélectionner un jeton`,"Select currency":`Sélectionner la devise`,"Select language":`Sélectionner la langue`,"Select token":`Sélectionner un jeton`,Send:`Envoyer`,"Send all":`Tout envoyer`,"Sending Transaction...":`Envoi de la transaction...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Envoyer à OceanX ou à d'autres échanges peut entraîner une perte de fonds.`,"Sending...":`Envoi...`,"Set a domain first":`Définissez d'abord un domaine`,"Set up Passkey":`Configurer une clé d'accès`,"Set up a passkey for easier access":`Configurer une clé d'accès pour un accès plus facile`,Settings:`Paramètres`,"Share on":`Partager sur`,Shortcuts:`Raccourcis`,"Show Less":`Show Less`,"Show More":`Afficher plus`,"Slippage tolerance":`Tolérance au slippage`,"Smart Account":`Compte intelligent`,"Smart Account detected":`Compte intelligent détecté`,"Something went wrong":`Quelque chose a mal tourné`,"Something went wrong. Please try again.":`Un problème est survenu. Veuillez réessayer.`,Source:`Source`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Restez à l'écoute pour notre prochaine fonctionnalité Activité`,"Stay tuned for our upcoming NFT feature":`Restez à l'écoute pour notre prochaine fonctionnalité NFT`,Submit:`Soumettre`,Swap:`Échanger`,"Swap all":`Tout échanger`,"Swapping...":`Échange en cours...`,Telegram:`Telegram`,"Terms and Conditions":`Conditions générales`,"Terms and Policies":`Conditions et politiques`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Ces comptes sont liés à votre portefeuille intégré et peuvent être utilisés pour se connecter à votre portefeuille et accéder à votre clé privée.`,"This address only supports VeChain assets.":`Cette adresse ne prend en charge que les actifs VeChain.`,"This domain is already taken":`Ce domaine est déjà pris`,"This domain is protected":`Ce domaine est protégé`,"This is taking longer than expected.":`Cela prend plus de temps que prévu.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Ceci est votre portefeuille principal, créé par {{element}} et sécurisé par Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Ce portefeuille est le propriétaire de votre compte intelligent, qui est utilisé comme votre identité et comme une passerelle pour vos interactions blockchain.`,Tiktok:`Tiktok`,To:`À`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Pour continuer à interagir avec la blockchain VeChain et terminer votre opération, votre compte intelligent doit être mis à niveau vers la dernière version (v3).`,"Token Contract Address":`Adresse du contrat du jeton`,"Token already added":`Jeton déjà ajouté`,Tools:`Outils`,"Transaction failed":`La transaction a échoué`,"Transaction failed:":`La transaction a échoué :`,"Transaction is being processed, it can take up to 15 seconds.":`La transaction est en cours de traitement, cela peut prendre jusqu'à 15 secondes.`,"Transaction successful":`Transaction réussie`,"Transaction successful!":`Transaction réussie !`,"Try again":`Réessayer`,"Try searching with a different term":`Essayez de chercher avec un terme différent`,Twitter:`Twitter`,"Twitter username":`Nom d'utilisateur Twitter`,"Type the receiver address or domain":`Tapez l'adresse du destinataire ou le domaine`,UNAVAILABLE:`INDISPONIBLE`,"Unable to fetch the price":`Impossible de récupérer le prix`,"Unset current domain":`Désélectionner le domaine actuel`,"Unsetting current domain...":`Désélection du domaine actuel...`,"Upgrade Smart Account to V3":`Mettre à niveau le compte intelligent vers V3`,"Upgrade Successful!":`Mise à niveau réussie !`,"Upgrade account":`Mettre à niveau le compte`,"Upgrading...":`Mise à niveau...`,"Use social login with VeChain":`Utiliser la connexion sociale avec VeChain`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`Le VET est la cryptomonnaie principale du réseau VeChain. Il représente la valeur et la propriété dans l'écosystème VeChain, similaire à la façon dont les actions représentent la propriété dans une entreprise. Détenir du VET génère automatiquement du VTHO, nécessaire pour payer les transactions sur le réseau.`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`Le VTHO (VeThor) est le jeton d'énergie ou de 'gaz' du réseau VeChain. Il est utilisé pour payer les frais de transaction lors de l'interaction avec la blockchain. Le VTHO est automatiquement généré en détenant des jetons VET, créant un système à deux jetons qui aide à maintenir la stabilité du réseau et à gérer les coûts de transaction.`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO est une organisation décentralisée sur la blockchain VeChain axée sur la durabilité. Les membres participent à la gouvernance du DAO en utilisant des jetons B3TR pour les récompenses et VOT3 pour voter sur les propositions et les cycles d'allocation de jetons hebdomadaires.`,"VeChain Kit":`Kit VeChain`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`VeChain, dont le siège est à Saint-Marin, en Europe, est un écosystème blockchain pionnier et créateur de VeChainThor, une plateforme de contrats intelligents de classe mondiale favorisant l'adoption de la blockchain dans le monde réel. Fondée en 2015 par Sunny Lu, VeChain s'efforce constamment de fournir une solution blockchain transparente, efficace, évolutive et adaptable.`,"VeWorld Wallet":`Portefeuille VeWorld`,"Vechain Kit Policy":`Politique du kit Vechain`,"View Current Policy":`Afficher la politique actuelle`,"View on explorer":`Voir sur l'explorateur`,"View transaction on the explorer":`Voir la transaction sur l'explorateur`,"Waiting for confirmation":`En attente de confirmation`,"Waiting for confirmation...":`En attente de confirmation...`,"Waiting wallet confirmation...":`En attente de la confirmation du portefeuille...`,Wallet:`Portefeuille`,"Wallet secured by":`Portefeuille sécurisé par`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`Nous vous recommandons vivement d'exporter votre clé privée pour sauvegarder votre portefeuille. Cela garantit que vous pouvez le restaurer si nécessaire ou le transférer en gestion autonome en utilisant`,Website:`Site web`,"Website URL":`URL du site web`,"Website URL must start with https://":`L'URL du site web doit commencer par https://`,"What is B3TR?":`Qu'est-ce que le B3TR ?`,"What is Privy?":`Qu'est-ce que Privy ?`,"What is VET?":`Qu'est-ce que VET ?`,"What is VTHO?":`Qu'est-ce que VTHO ?`,"What is VeBetterDAO?":`Qu'est-ce que VeBetterDAO ?`,"What is VeChain?":`Qu'est-ce que VeChain ?`,"What is a Smart Account?":`Qu'est-ce qu'un Smart Account ?`,"What is a domain name?":`Qu'est-ce qu'un nom de domaine ?`,"What is a network?":`Qu'est-ce qu'un réseau ?`,"What is a wallet?":`Qu'est-ce qu'un portefeuille ?`,"What is an x2earn application?":`Qu'est-ce qu'une application x2earn ?`,"What is fee delegation?":`Qu'est-ce que la délégation de frais ?`,"When you have accepted a policy, it will appear here":`Lorsque vous avez accepté une politique, elle apparaîtra ici`,"When you have notifications, they will appear here":`Lorsque vous avez des notifications, elles apparaîtront ici`,"YOU OWN THIS":`VOUS POSSÉDEZ CECI`,"You accepted current policy on {{date}}":`Vous avez accepté la politique actuelle le {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Vous utilisez un portefeuille intégré sécurisé par votre méthode de connexion sociale, garantissant une expérience VeChain fluide.`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`Vous pouvez envoyer des jetons en cliquant sur l'icône d'envoi dans la section Actions rapides. Entrez l'adresse du destinataire ou le nom de domaine VeChain, sélectionnez le jeton et spécifiez le montant que vous souhaitez envoyer.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Vous avez un compte intelligent actif associé à ce portefeuille. Il a été défini comme votre identité principale.`,"You may want to try establishing the connection again.":`Vous voudrez peut-être essayer d'établir la connexion à nouveau.`,"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 été mis à niveau avec succès vers la dernière version. Vous pouvez désormais profiter d'une meilleure expérience utilisateur, de coûts de gaz réduits et d'une sécurité renforcée.`,"Your address has been successfully set to {{name}}":`Votre adresse a été correctement définie sur {{name}}`,"Your changes have been saved successfully.":`Vos modifications ont été enregistrées avec succès.`,"Your domain has been unset successfully.":`Votre domaine a été désélectionné avec succès.`,"Your embedded wallet":`Votre portefeuille intégré`,"Your existing domains":`Vos domaines existants`,"Your smart account is already upgraded to this version.":`Votre compte intelligent est déjà mis à jour vers cette version.`,"Your smart account needs to be upgraded to the latest version (v3).":`Votre compte intelligent doit être mis à niveau vers la dernière version (v3).`,"Your tokens":`Vos jetons`,"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écurité de votre portefeuille dépend de la façon dont vous y accédez. Avec des options d'auto-gardiennage comme l'extension VeWorld, l'application mobile ou le portefeuille matériel, vous avez un contrôle complet sur vos clés privées. Cette extension en elle-même n'a pas accès à vos clés privées. Lors de la connexion avec des comptes sociaux ou VeChain, votre portefeuille est créé et sécurisé par Privy et géré par VeChain, offrant une expérience d'intégration plus facile tout en maintenant la sécurité.`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`ici`,marketplaces:`Marketplaces`,rate:`taux`,"to learn more about embedded wallets.":`pour en savoir plus sur les portefeuilles intégrés.`,unavailable:`indisponible`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`votre@email.com`},ha={" and ":` y `,"'{{policyName}}' on connect":`'{{policyName}}' al conectarse`,"'{{policyName}}' on {{date}}":`'{{policyName}}' el {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>Tu privacidad es importante.</bold> Tienes el control, acepta para habilitar funciones opcionales como cookies y analíticas que nos ayudan a mejorar tu experiencia.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Se requiere un dominio .vet para personalizar su perfil. Elija un nombre de cuenta para comenzar.`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`Una Cuenta Inteligente es una billetera de contrato inteligente que proporciona seguridad y funcionalidad mejoradas. Permite características como la recuperación social, el procesamiento por lotes de transacciones y más.`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`Un nombre de dominio es una especie de apodo para tu dirección de cartera. Te permite identificar fácilmente tu cartera e interactuar con aplicaciones descentralizadas utilizando un nombre legible por humanos. Por ejemplo, si tu dirección de cartera es 0x1234567890, tu apodo podría ser "alice.vechain".`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`Una red en blockchain se refiere al entorno donde ocurren las transacciones. VeChain tiene dos redes principales: Mainnet (la red en vivo donde ocurren transacciones reales) y Testnet (un entorno de prueba para desarrolladores). La red a la que estás conectado se muestra en la parte superior de este modal.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Hay una nueva actualización disponible para su cuenta inteligente. Por favor, diríjase a la sección 'Acceso y Seguridad' para actualizarlo.`,"A new version is available for your account":`Una nueva versión está disponible para su cuenta`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`Una billetera es tu puerta de entrada a la blockchain de VeChain. Almacena tus claves privadas y te permite gestionar de manera segura tus activos digitales, enviar y recibir tokens, e interactuar con aplicaciones descentralizadas. Piensa en ella como tu cuenta bancaria digital para transacciones blockchain.`,AVAILABLE:`DISPONIBLE`,Accept:`Aceptar`,"Accept all":`Aceptar todo`,"Accept selected":`Aceptar seleccionado`,"Access and security":`Acceso y seguridad`,"Account Upgrade Required":`Actualización de cuenta necesaria`,"Account already upgraded":`Cuenta ya actualizada`,"Account upgrade required":`Actualización de cuenta requerida`,Active:`Activo`,"Add Login Method":`Agregar método de inicio de sesión`,"Add Token":`Agregar Token`,"Add to shortcuts":`Agregar a accesos directos`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Agregar más cuentas vinculadas aumenta la seguridad contra la pérdida de acceso, pero también introduce vectores de ataque adicionales potenciales. Para una mayor seguridad, recomendamos habilitar MFA.`,"Address is required":`Se requiere dirección`,All:`Todo`,"All apps":`Todas las aplicaciones`,"All policies you have accepted":`Todas las políticas que has aceptado`,"All tokens":`Todos los tokens`,"Already have an x2earn app wallet?":`¿Ya tienes una billetera de aplicación x2earn?`,Amount:`Cantidad`,"Amount is required":`Se requiere un monto`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`Una aplicación X2Earn en VeBetterDAO es una app sostenible que recompensa a los usuarios con tokens B3TR por acciones ecológicas. Estas aplicaciones deben distribuir B3TR, vincular las billeteras de los usuarios y proporcionar pruebas de acciones sostenibles. Se unen a VeBetterDAO a través de la recomendación y participan en rondas semanales de asignación de tokens.`,"An unexpected error occurred.":`Ocurrió un error inesperado.`,Apple:`Apple`,Archived:`Archivado`,"Archived Notifications":`Notificaciones archivadas`,"Are you sure you want to disconnect your wallet?":`¿Estás seguro de que quieres desconectar tu billetera?`,"Are you sure you want to reject the policies and disconnect?":`¿Estás seguro de que deseas rechazar las políticas y desconectar?`,"Are you sure you want to set your domain name to":`¿Estás seguro de que quieres establecer tu nombre de dominio en`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`¿Está seguro de que desea desvincular {{accountType}} como método de inicio de sesión vinculado a {{accountDescription}}?`,"Are you sure you want to unset your current domain?":`¿Está seguro de que desea desactivar su dominio actual?`,Assets:`Activos`,At:`En`,"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ños. B3TR se utiliza para recompensas, gobernanza y respaldar tokens VOT3 en una proporción de 1:1. Apoya aplicaciones sostenibles y la gestión del tesoro del DAO.`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`Respaldar tu billetera es crucial ya que eres el único con acceso a tus claves privadas. Si algo sale mal, tener tu clave privada es la única manera de recuperar tus activos. Cómo hacer un respaldo depende de cómo accedas a tu billetera: Si usas VeWorld, la opción de respaldo está disponible dentro de la aplicación. Para usuarios de inicio de sesión social, puedes encontrar opciones de respaldo en la sección Billetera. Si estás conectado a través de VeChain u otra aplicación del ecosistema, necesitarás visitar el sitio web original, iniciar sesión y acceder a la sección de Billetera desde allí.`,"Backup your wallet":`Respalda tu billetera`,"Backup your wallet, configure MFA and set recovery options":`Realiza una copia de seguridad de tu billetera, configura MFA y establece opciones de recuperación`,Balance:`Saldo`,"Benefits of this upgrade:":`Beneficios de esta actualización:`,Best:`Mejor`,"Better transaction handling":`Mejor manejo de transacciones`,Bridge:`Puente`,"By continuing, you agree to":`Al continuar, aceptas`,Cancel:`Cancelar`,"Choose Name":`Elegir Nombre`,"Choose a name for your account.":`Elija un nombre para su cuenta.`,"Choose a unique .vet domain name for your account.":`Elige un nombre de dominio único .vet para tu cuenta.`,"Choose account name":`Elige el nombre de la cuenta`,"Choose name":`Elige nombre`,"Choose your account name":`Elige el nombre de tu cuenta`,"Claim your vet domain!":`¡Reclama tu dominio vet!`,"Claiming name...":`Reclamando nombre...`,"Clear all":`Borrar todo`,"Cleared notifications will appear here":`Las notificaciones borradas aparecerán aquí`,Click:`Haga clic`,"Click below to access {{ name }} and explore its features.":`Haga clic abajo para acceder a {{ name }} y explorar sus características.`,Close:`Cerrar`,"Close and do this later":`Cerrar y hacer esto después`,"Close announcement":`Cerrar anuncio`,"Coming Soon!":`¡Próximamente!`,"Coming soon":`Próximamente`,Confirm:`Confirmar`,"Confirm Changes":`Confirmar cambios`,"Confirm Name":`Confirmar Nombre`,"Confirm Unset Domain":`Confirmar desactivación de dominio`,"Confirm the transaction in your wallet to complete it.":`Confirme la transacción en su monedero para completarla.`,"Confirm transaction":`Confirmar transacción`,"Connect an external wallet for easier access":`Conectar una billetera externa para un acceso más fácil`,"Connect wallet":`Conectar billetera`,"Connect with VeWorld wallet":`Conectar con la billetera VeWorld`,"Connect your Apple account for easier access":`Conecta tu cuenta de Apple para un acceso más fácil`,"Connect your Discord account for easier access":`Conecta tu cuenta de Discord para un acceso más fácil`,"Connect your Farcaster account for easier access":`Conecta tu cuenta de Farcaster para un acceso más fácil`,"Connect your Github account for easier access":`Conecta tu cuenta de Github para un acceso más fácil`,"Connect your Google account for easier access":`Conecta tu cuenta de Google para un acceso más fácil`,"Connect your Instagram account for easier access":`Conecta tu cuenta de Instagram para un acceso más fácil`,"Connect your LinkedIn account for easier access":`Conecta tu cuenta de LinkedIn para un acceso más fácil`,"Connect your Spotify account for easier access":`Conecta tu cuenta de Spotify para un acceso más fácil`,"Connect your Telegram account for easier access":`Conecta tu cuenta de Telegram para un acceso más fácil`,"Connect your Tiktok account for easier access":`Conecta tu cuenta de Tiktok para un acceso más fácil`,"Connect your Twitter account for easier access":`Conecta tu cuenta de Twitter para un acceso más fácil`,"Connect your email for easier access":`Conecta tu correo electrónico para un acceso más fácil`,"Connect your phone number for easier access":`Conecta tu número de teléfono para un acceso más fácil`,"Connecting to VeChain":`Conectando a VeChain`,"Connecting with":`Conectando con`,"Connecting with Passkey":`Conectando con Passkey`,"Connecting...":`Conectando...`,"Connection Details":`Detalles de la Conexión`,"Connection Failed":`Conexión Fallida`,"Connection Type":`Tipo de Conexión`,"Connection details":`Detalles de conexión`,Continue:`Continuar`,"Continue with Github":`Continuar con Github`,"Continue with Google":`Continuar con Google`,"Cookie Policy":`Política de Cookies`,"Cookie policy outlining the use of cookies and tracking technologies.":`Política de cookies que describe el uso de cookies y tecnologías de seguimiento.`,"Copy your address or scan this QR code":`Copia tu dirección o escanea este código QR`,Currency:`Moneda`,Current:`Actual`,"Current domain":`Dominio actual`,Customization:`Personalización`,Customize:`Personalizar`,"Customize profile":`Personalizar perfil`,"Customize the appearance of your wallet.":`Personaliza la apariencia de tu billetera.`,Description:`Descripción`,"Description must be less than 100 characters":`La descripción debe tener menos de 100 caracteres`,"Didn't get an email?":`¿No recibiste un correo electrónico?`,Discord:`Discord`,"Display Name":`Nombre para mostrar`,"Display name must be less than 25 characters":`El nombre para mostrar debe tener menos de 25 caracteres`,"Domain set":`Dominio configurado`,"Domain unset":`Dominio desactivado`,Done:`Hecho`,Ecosystem:`Ecosistema`,"Eg: DevRel @ ENS Labs":`Ej: DevRel @ ENS Labs`,Email:`Correo Electrónico`,"Email address":`Dirección de correo electrónico`,"Embedded wallet":`Cartera integrada`,"Enhanced compatibility with dApps":`Compatibilidad mejorada con dApps`,"Enter confirmation code":`Introducir código de confirmación`,"Enter your display name":`Introduce tu nombre para mostrar`,"Enter your name":`Ingrese su nombre`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`Intercambia tus activos digitales entre VeChain y otras redes blockchain de manera fácil y segura. Los intercambios se ejecutan a través de socios que aprovechan tanto intercambios descentralizados como centralizados para convertir tokens.`,"Existing Custom Tokens":`Tokens Personalizados Existentes`,"Failed to connect with Passkey":`Error al conectar con Passkey`,"Failed to connect with VeChain":`Error al conectar con VeChain`,"Failed to connect with ecosystem app":`Error al conectar con la aplicación del ecosistema`,"Failed to load App Hub apps":`Error al cargar aplicaciones de App Hub`,Farcaster:`Farcaster`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`La delegación de tarifas es una función única de VeChain que permite que otra persona (un delegado) pague las tarifas de tus transacciones. Aunque muchas aplicaciones descentralizadas (dApps) y proveedores de servicios actúan como delegados para facilitar a los nuevos usuarios el comienzo, es posible que algunas transacciones aún requieran que pagues tarifas usando tu propio VTHO. Las tarifas son necesarias para prevenir el spam en la red y compensar a los nodos que procesan y validan las transacciones en la cadena de bloques. Al pagar las tarifas tú mismo, podrás seleccionar VTHO de tus activos para cubrir el costo de la transacción.`,"Filter by category":`Filtrar por categoría`,"Finally say goodbye to 0x addresses":`Finalmente di adiós a las direcciones 0x`,"For developers":`Para desarrolladores`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Por razones de seguridad, puedes gestionar la configuración de tu billetera integrada solo en la plataforma {{appName}}.`,"Found following rates":`Se encontraron las siguientes tasas`,From:`De`,"Gas fee":`Tarifa de gas`,General:`General`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`¡Buenas noticias! Las transacciones multicláusula ahora son totalmente compatibles con las cuentas inteligentes. Ahora puedes disfrutar de una mejor experiencia de usuario, menores costos de gas y mayor seguridad.`,Google:`Google`,Help:`Ayuda`,"How do I backup my wallet?":`¿Cómo hago una copia de seguridad de mi billetera?`,"How do I send tokens?":`¿Cómo envío tokens?`,"How is my wallet secured?":`¿Cómo está asegurada mi billetera?`,"I have read and agree to ":`He leído y acepto `,"Ignore and continue":`Ignorar y continuar`,"Improved security features":`Funciones de seguridad mejoradas`,Instagram:`Instagram`,"Insufficient {{symbol}} balance":`Saldo insuficiente de {{symbol}}`,"Invalid address or domain":`Dirección o dominio no válido`,"Invalid contract address":`Dirección de contrato inválida`,"Invalid token address":`Dirección de token no válida`,Language:`Idioma`,"Launch vechain.energy":`Lanzar vechain.energy`,"Launch {{name}}":`Lanzar {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Acuerdo legal entre tú, Vechain Kit y la aplicación actual, que describe las reglas para usar los servicios de billetera.`,"Link Apple Account":`Vincular cuenta de Apple`,"Link Discord Account":`Vincular Cuenta de Discord`,"Link Email Account":`Vincular cuenta de correo electrónico`,"Link External Wallet":`Vincular monedero externo`,"Link Farcaster Account":`Vincular cuenta de Farcaster`,"Link Github Account":`Vincular cuenta de Github`,"Link Google Account":`Vincular cuenta de Google`,"Link Instagram Account":`Vincular cuenta de Instagram`,"Link LinkedIn Account":`Vincular cuenta de LinkedIn`,"Link Phone Number":`Vincular número de teléfono`,"Link Spotify Account":`Vincular cuenta de Spotify`,"Link Telegram Account":`Vincular cuenta de Telegram`,"Link Tiktok Account":`Vincular cuenta de Tiktok`,"Link Twitter Account":`Vincular cuenta de Twitter`,LinkedIn:`LinkedIn`,"Loading your domains...":`Cargando tus dominios...`,"Log in or sign up":`Iniciar sesión o registrarse`,"Logged in with":`Conectado con`,Login:`Iniciar sesión`,"Login failed:":`Error de inicio de sesión:`,"Login methods":`Métodos de inicio de sesión`,"Login methods and Passkeys":`Métodos de inicio de sesión y claves de acceso`,Logout:`Cerrar sesión`,"Manage Custom Tokens":`Gestionar tokens personalizados`,"Manage MFA":`Gestionar MFA`,"Manage Recovery":`Gestionar la Recuperación`,"Manage on {{appName}}":`Gestionar en {{appName}}`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`Administra la configuración de seguridad de tu billetera integrada: gestiona tus métodos de inicio de sesión, añade una clave de acceso o realiza una copia de seguridad de tu billetera para no perder nunca el acceso a tus activos.`,"Manage your login methods and passkeys":`Gestiona tus métodos de inicio de sesión y claves de acceso`,"Manage your preferences for currency, language, and appearance.":`Administra tus preferencias de moneda, idioma y apariencia.`,"Minimum {{symbol}} transfer is {{min}}":`La transferencia mínima de {{symbol}} es {{min}}`,More:`Más`,"Multiclause Transactions Are Now Supported":`Las transacciones multicláusula ahora son compatibles`,"Name must be at least 3 characters long":`El nombre debe tener al menos 3 caracteres`,"Name your account to make it easier to exchange assets":`Nombra tu cuenta para facilitar el intercambio de activos`,Network:`Red`,New:`Nuevo`,"New image selected":`Nueva imagen seleccionada`,"No additional accounts available to link":`No hay cuentas adicionales disponibles para vincular`,"No application from VeChain ecosystem is available to login.":`No hay ninguna aplicación del ecosistema VeChain disponible para iniciar sesión.`,"No apps found in this category":`No se encontraron aplicaciones en esta categoría`,"No archived notifications":`No hay notificaciones archivadas`,"No assets":`Sin activos`,"No notifications":`No hay notificaciones`,"No policies accepted":`Ninguna política aceptada`,"No questions found":`No se encontraron preguntas`,"No quotes available":`No hay cotizaciones disponibles`,"No tokens found":`No se encontraron fichas`,"Node URL":`URL del nodo`,Notifications:`Notificaciones`,"Only letters, numbers, and hyphens are allowed":`Solo se permiten letras, números y guiones`,Optional:`Opcional`,"Other options":`Otras opciones`,Passkey:`Clave de acceso`,"Phone Number":`Número de teléfono`,"Please approve the request in the connection request window...":`Por favor, aprueba la solicitud en la ventana de solicitud de conexión...`,"Please be sure to keep this wallet safe and backed up.":`Por favor, asegúrese de mantener esta billetera segura y respaldada.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Por favor, revisa {{email}} para un correo electrónico de privy.io e ingresa tu código a continuación.`,"Please complete the passkey authentication...":`Por favor, completa la autenticación de clave de acceso...`,"Please confirm the transaction in your wallet.":`Por favor, confirma la transacción en tu billetera.`,"Please enter a valid Twitter handle without @":`Por favor, ingrese un identificador de Twitter válido sin @`,"Please enter a valid contract address":`Por favor, ingrese una dirección de contrato válida`,"Please enter a valid email address":`Por favor, ingrese una dirección de correo electrónico válida`,"Please enter a valid number":`Por favor, ingrese un número válido`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Por favor, tómese un momento para revisar todas las políticas, siendo la aceptación obligatoria para continuar.`,Policy:`Política`,"Preparing changes...":`Preparando cambios...`,"Privacy Policy":`Política de privacidad`,"Privacy policy outlining the data collection and processing practices.":`Política de privacidad que describe las prácticas de recopilación y procesamiento de datos.`,"Privy Status":`Privy Status`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy construye la infraestructura de incorporación de usuarios y billetera incrustada para permitir mejores productos construidos sobre rieles de criptomonedas. Esto significa integrar el control de activos dentro de las aplicaciones mismas para permitir que usuarios, empresas o máquinas usen activos digitales a través de experiencias de producto fluidas.`,"Processing transaction...":`Procesando transacción...`,Profile:`Perfil`,"Profile Image":`Imagen de perfil`,"Profile Picture":`Imagen de Perfil`,"Profile Updated":`Perfil actualizado`,"Read More":`Read More`,Receive:`Recibir`,"Receive tokens":`Recibir tokens`,"Reduced gas costs for operations":`Reducción de costos de gas para operaciones`,"Reject and logout":`Rechazar y cerrar sesión`,Remove:`Eliminar`,"Remove Login Method":`Eliminar método de inicio de sesión`,"Remove from shortcuts":`Eliminar de los accesos directos`,"Remove your current domain name":`Eliminar su nombre de dominio actual`,"Resend code":`Reenviar código`,Retry:`Reintentar`,"Save Changes":`Guardar cambios`,"Saving changes...":`Guardando cambios...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Despídete de las direcciones 0x, ¡reclama tu subdominio .veworld.vet ahora gratis!`,"Search Apps":`Buscar aplicaciones`,"Search FAQ":`Buscar en las preguntas frecuentes`,"Security preferences":`Preferencias de seguridad`,"Security settings":`Configuraciones de seguridad`,"Select Additional Login Method":`Seleccionar Método de Inicio de Sesión Adicional`,"Select Token":`Seleccionar Token`,"Select currency":`Seleccionar moneda`,"Select language":`Seleccionar idioma`,"Select token":`Seleccionar token`,Send:`Enviar`,"Send all":`Enviar todo`,"Sending Transaction...":`Enviando Transacción...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Enviar a OceanX u otros intercambios puede resultar en la pérdida de fondos.`,"Sending...":`Enviando...`,"Set a domain first":`Primero establece un dominio`,"Set up Passkey":`Configurar clave de acceso`,"Set up a passkey for easier access":`Configura una clave de acceso para facilitar el acceso`,Settings:`Configuración`,"Share on":`Compartir en`,Shortcuts:`Atajos`,"Show Less":`Show Less`,"Show More":`Mostrar más`,"Slippage tolerance":`Tolerancia al deslizamiento`,"Smart Account":`Cuenta Inteligente`,"Smart Account detected":`Cuenta inteligente detectada`,"Something went wrong":`Algo salió mal`,"Something went wrong. Please try again.":`Algo salió mal. Por favor intenta de nuevo.`,Source:`Fuente`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Mantente atento a nuestra próxima función de Actividad`,"Stay tuned for our upcoming NFT feature":`Mantente atento a nuestra próxima función de NFT`,Submit:`Enviar`,Swap:`Intercambiar`,"Swap all":`Intercambiar todo`,"Swapping...":`Intercambiando...`,Telegram:`Telegram`,"Terms and Conditions":`Términos y condiciones`,"Terms and Policies":`Términos y políticas`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Estas cuentas están vinculadas a tu cartera integrada y se pueden usar para iniciar sesión en tu cartera y acceder a tu clave privada.`,"This address only supports VeChain assets.":`Esta dirección solo admite activos de VeChain.`,"This domain is already taken":`Este dominio ya está en uso`,"This domain is protected":`Este dominio está protegido`,"This is taking longer than expected.":`Esto está tardando más de lo esperado.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Esta es su billetera principal, creada por {{element}} y asegurada por Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Esta billetera es la propietaria de tu cuenta inteligente, la cual se utiliza como tu identidad y como puerta de entrada para tus interacciones con la blockchain.`,Tiktok:`Tiktok`,To:`Para`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Para continuar interactuando con la blockchain de VeChain y completar su operación, su cuenta inteligente debe actualizarse a la última versión (v3).`,"Token Contract Address":`Dirección del contrato del token`,"Token already added":`Token ya agregado`,Tools:`Herramientas`,"Transaction failed":`Transacción fallida`,"Transaction failed:":`Transacción fallida:`,"Transaction is being processed, it can take up to 15 seconds.":`La transacción está siendo procesada, puede tardar hasta 15 segundos.`,"Transaction successful":`Transacción exitosa`,"Transaction successful!":`¡Transacción exitosa!`,"Try again":`Inténtalo de nuevo`,"Try searching with a different term":`Intente buscar con un término diferente`,Twitter:`Twitter`,"Twitter username":`Nombre de usuario de Twitter`,"Type the receiver address or domain":`Escriba la dirección o dominio del destinatario`,UNAVAILABLE:`NO DISPONIBLE`,"Unable to fetch the price":`No se puede obtener el precio`,"Unset current domain":`Desactivar dominio actual`,"Unsetting current domain...":`Desactivando dominio actual...`,"Upgrade Smart Account to V3":`Actualizar cuenta inteligente a V3`,"Upgrade Successful!":`¡Actualización exitosa!`,"Upgrade account":`Actualizar cuenta`,"Upgrading...":`Actualizando...`,"Use social login with VeChain":`Usa inicio de sesión social con VeChain`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VET es la criptomoneda principal de la red VeChain. Representa valor y propiedad en el ecosistema VeChain, similar a cómo las acciones representan propiedad en una empresa. Mantener VET genera automáticamente VTHO, que es necesario para pagar las transacciones en la red.`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO (VeThor) es el token de energía o 'gas' de la red VeChain. Se utiliza para pagar las tarifas de transacción al interactuar con la blockchain. VTHO se genera automáticamente al mantener tokens VET, creando un sistema de dos tokens que ayuda a mantener la estabilidad de la red y gestionar los costos de transacción.`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO es una organización descentralizada en la blockchain de VeChain enfocada en la sostenibilidad. Los miembros participan en la gobernanza de la DAO usando tokens B3TR para recompensas y VOT3 para votar en propuestas y rondas semanales de asignación de tokens.`,"VeChain Kit":`VeChain Kit`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`VeChain, con sede en San Marino, Europa, es un ecosistema pionero de blockchain y creador de VeChainThor, una plataforma de contratos inteligentes de clase mundial que impulsa la adopción de blockchain en el mundo real. Fundada en 2015 por Sunny Lu, VeChain ha trabajado constantemente para ofrecer una solución blockchain transparente, eficiente, escalable y adaptable.`,"VeWorld Wallet":`Billetera VeWorld`,"Vechain Kit Policy":`Política del Kit Vechain`,"View Current Policy":`Ver política actual`,"View on explorer":`Ver en el explorador`,"View transaction on the explorer":`Ver transacción en el explorador`,"Waiting for confirmation":`Esperando confirmación`,"Waiting for confirmation...":`Esperando confirmación...`,"Waiting wallet confirmation...":`Esperando confirmación de la billetera...`,Wallet:`Billetera`,"Wallet secured by":`Billetera asegurada por`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`Le recomendamos encarecidamente exportar su clave privada para respaldar su billetera. Esto asegura que pueda restaurarla si es necesario o transferirla a autocustodia usando`,Website:`Sitio web`,"Website URL":`URL del sitio web`,"Website URL must start with https://":`La URL del sitio web debe comenzar con https://`,"What is B3TR?":`¿Qué es B3TR?`,"What is Privy?":`¿Qué es Privy?`,"What is VET?":`¿Qué es VET?`,"What is VTHO?":`¿Qué es VTHO?`,"What is VeBetterDAO?":`¿Qué es VeBetterDAO?`,"What is VeChain?":`¿Qué es VeChain?`,"What is a Smart Account?":`¿Qué es una Smart Account?`,"What is a domain name?":`¿Qué es un nombre de dominio?`,"What is a network?":`¿Qué es una red?`,"What is a wallet?":`¿Qué es una billetera?`,"What is an x2earn application?":`¿Qué es una aplicación x2earn?`,"What is fee delegation?":`¿Qué es la delegación de tarifas?`,"When you have accepted a policy, it will appear here":`Cuando haya aceptado una política, aparecerá aquí`,"When you have notifications, they will appear here":`Cuando tengas notificaciones, aparecerán aquí`,"YOU OWN THIS":`ESTO ES TUYO`,"You accepted current policy on {{date}}":`Aceptó la política actual el {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Estás usando una Cartera Integrada asegurada por tu método de inicio de sesión social, asegurando una experiencia VeChain sin problemas.`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`Puedes enviar tokens haciendo clic en el icono de enviar en la sección de Acciones Rápidas. Ingresa la dirección del destinatario o el nombre de dominio de VeChain, selecciona el token y especifica la cantidad que deseas enviar.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Tiene una cuenta inteligente activa asociada a esta billetera. Se ha establecido como su identidad principal.`,"You may want to try establishing the connection again.":`Es posible que quieras intentar establecer la conexión nuevamente.`,"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 última versión. Ahora puede disfrutar de una mejor experiencia de usuario, menores costos de gas y mayor seguridad.`,"Your address has been successfully set to {{name}}":`Tu dirección se ha configurado exitosamente a {{name}}`,"Your changes have been saved successfully.":`Tus cambios han sido guardados exitosamente.`,"Your domain has been unset successfully.":`Su dominio ha sido desactivado exitosamente.`,"Your embedded wallet":`Su billetera integrada`,"Your existing domains":`Tus dominios existentes`,"Your smart account is already upgraded to this version.":`Su cuenta inteligente ya está actualizada a esta versión.`,"Your smart account needs to be upgraded to the latest version (v3).":`Su cuenta inteligente necesita ser actualizada a la última versión (v3).`,"Your tokens":`Tus tokens`,"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ómo accedas a ella. Con opciones de autocustodia como la extensión VeWorld, la aplicación móvil o la billetera de hardware, tienes control total sobre tus claves privadas. Esta extensión no tiene acceso a tus claves privadas. Al iniciar sesión con cuentas sociales o VeChain, tu billetera es creada y asegurada por Privy y gestionada por VeChain, ofreciendo una experiencia de integración más sencilla mientras se mantiene la seguridad.`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`aquí`,marketplaces:`Marketplaces`,rate:`tasa`,"to learn more about embedded wallets.":`para saber más sobre carteras integradas.`,unavailable:`no disponible`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`tu@email.com`},ga={" and ":` 和 `,"'{{policyName}}' on connect":`连接时的'{{policyName}}'`,"'{{policyName}}' on {{date}}":`'{{policyName}}' 于 {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>您的隐私至关重要。</bold> 您掌控一切,接受以启用诸如 cookies 和分析之类的可选功能,以帮助我们提升您的体验。`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`需要一个 .vet 域名来自定义您的个人资料。选择一个账户名称以开始。`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`智能账户是一种智能合约钱包,提供增强的安全性和功能。它支持社交恢复、交易批处理等功能。`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`域名是您钱包地址的一种昵称。它可以帮助您轻松识别钱包并使用人性化的名称与dApps进行交互。例如,如果您的钱包地址是0x1234567890,您的昵称可能是“alice.vechain”。`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`区块链中的网络是指交易发生的环境。VeChain有两个主要网络:主网(真实交易发生的活跃网络)和测试网(供开发人员使用的测试环境)。您连接的网络显示在此模态框的顶部。`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`您的智能账户有新的升级可用。请访问“访问和安全”部分以进行升级。`,"A new version is available for your account":`您的账户有新版本可用`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`钱包是您访问VeChain区块链的门户。它存储您的私钥,允许您安全地管理数字资产,发送和接收代币,并与去中心化应用程序交互。可以将其视为区块链交易的数字银行账户。`,AVAILABLE:`可用`,Accept:`接受`,"Accept all":`全部接受`,"Accept selected":`接受已选择`,"Access and security":`访问和安全`,"Account Upgrade Required":`需要账户升级`,"Account already upgraded":`账户已升级`,"Account upgrade required":`需要账户升级`,Active:`活跃`,"Add Login Method":`添加登录方式`,"Add Token":`添加令牌`,"Add to shortcuts":`添加到快捷方式`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`添加更多关联账户可以增强防止访问丢失的安全性,但也引入了额外的潜在攻击向量。为了增强安全性,我们建议启用多因素认证(MFA)。`,"Address is required":`地址是必需的`,All:`所有`,"All apps":`所有应用`,"All policies you have accepted":`您已接受的所有政策`,"All tokens":`所有代币`,"Already have an x2earn app wallet?":`已经有一个x2earn应用钱包了吗?`,Amount:`金额`,"Amount is required":`金额是必需的`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`VeBetterDAO 的 X2Earn 应用程序是一款可持续发展的应用程序,用户因生态友好行为而获得 B3TR 代币奖励。这些应用程序必须分发 B3TR,链接用户钱包并提供可持续行动的证明。它们通过背书加入 VeBetterDAO,并参与每周的代币分配轮次。`,"An unexpected error occurred.":`发生了意外错误。`,Apple:`苹果`,Archived:`已归档`,"Archived Notifications":`已归档通知`,"Are you sure you want to disconnect your wallet?":`您确定要断开钱包连接吗?`,"Are you sure you want to reject the policies and disconnect?":`您确定要拒绝这些政策并断开连接吗?`,"Are you sure you want to set your domain name to":`您确定要将您的域名设置为`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`您确定要取消链接 {{accountDescription}} 中作为登录方式之一的 {{accountType}} 吗?`,"Are you sure you want to unset your current domain?":`您确定要取消设置当前域名吗?`,Assets:`资产`,At:`在`,"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 是 VeBetterDAO 的激励性代币,基于 VechainThor 区块链构建。其供应量上限为 10 亿个代币,分 12 年每周发放。B3TR 用于奖励、治理以及 1:1 支持 VOT3 代币。它支持可持续性应用和 DAO 财务管理。`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`备份您的钱包非常重要,因为您是唯一能访问您的私钥的人。如果出现问题,拥有您的私钥是恢复资产的唯一方法。备份方式取决于您如何访问钱包:如果使用 VeWorld,备份选项在应用内可用。对于社交登录用户,您可以在钱包部分找到备份选项。如果通过 VeChain 或其他生态系统应用连接,您需要访问原始网站,登录并从那里访问钱包部分。`,"Backup your wallet":`备份您的钱包`,"Backup your wallet, configure MFA and set recovery options":`备份您的钱包,配置多因素身份验证并设置恢复选项`,Balance:`余额`,"Benefits of this upgrade:":`此升级的好处:`,Best:`最佳`,"Better transaction handling":`更好的交易处理`,Bridge:`桥接`,"By continuing, you agree to":`继续即表示您同意`,Cancel:`取消`,"Choose Name":`选择姓名`,"Choose a name for your account.":`为您的账户选择一个名称。`,"Choose a unique .vet domain name for your account.":`为您的帐户选择一个独特的 .vet 域名。`,"Choose account name":`选择账户名称`,"Choose name":`选择名称`,"Choose your account name":`选择您的账户名称`,"Claim your vet domain!":`领取您的 vet 域名!`,"Claiming name...":`认领名称...`,"Clear all":`清除全部`,"Cleared notifications will appear here":`已清除的通知将显示在这里`,Click:`点击`,"Click below to access {{ name }} and explore its features.":`点击下方以访问 {{ name }} 并探索其功能。`,Close:`关闭`,"Close and do this later":`关闭并稍后处理`,"Close announcement":`关闭公告`,"Coming Soon!":`敬请期待!`,"Coming soon":`即将推出`,Confirm:`确认`,"Confirm Changes":`确认更改`,"Confirm Name":`确认姓名`,"Confirm Unset Domain":`确认取消设置域名`,"Confirm the transaction in your wallet to complete it.":`在您的钱包中确认交易以完成它。`,"Confirm transaction":`确认交易`,"Connect an external wallet for easier access":`连接外部钱包以便更轻松访问`,"Connect wallet":`连接钱包`,"Connect with VeWorld wallet":`连接到 VeWorld 钱包`,"Connect your Apple account for easier access":`连接您的 Apple 账户以便更轻松地访问`,"Connect your Discord account for easier access":`连接您的 Discord 帐号以更轻松地访问`,"Connect your Farcaster account for easier access":`连接您的 Farcaster 账户以便更轻松地访问`,"Connect your Github account for easier access":`连接您的 Github 账户以便更轻松地访问`,"Connect your Google account for easier access":`连接您的 Google 账户以便更轻松地访问`,"Connect your Instagram account for easier access":`连接您的 Instagram 账户以便更轻松地访问`,"Connect your LinkedIn account for easier access":`连接您的 LinkedIn 账户以便更轻松地访问`,"Connect your Spotify account for easier access":`连接您的 Spotify 账户以便更轻松地访问`,"Connect your Telegram account for easier access":`连接您的 Telegram 账户以便更轻松地访问`,"Connect your Tiktok account for easier access":`连接您的 Tiktok 账户以便更轻松地访问`,"Connect your Twitter account for easier access":`连接您的 Twitter 账户以便更轻松地访问`,"Connect your email for easier access":`连接您的电子邮件以便更轻松地访问`,"Connect your phone number for easier access":`连接您的电话号码以便更轻松地访问`,"Connecting to VeChain":`正在连接到 VeChain`,"Connecting with":`连接中`,"Connecting with Passkey":`通过Passkey连接`,"Connecting...":`正在连接...`,"Connection Details":`连接详情`,"Connection Failed":`连接失败`,"Connection Type":`连接类型`,"Connection details":`连接详情`,Continue:`继续`,"Continue with Github":`继续使用 Github`,"Continue with Google":`通过Google继续`,"Cookie Policy":`Cookie 政策`,"Cookie policy outlining the use of cookies and tracking technologies.":`Cookie 政策详述了对 cookies 和追踪技术的使用。`,"Copy your address or scan this QR code":`复制您的地址或扫描此二维码`,Currency:`货币`,Current:`当前`,"Current domain":`当前域名`,Customization:`自定义`,Customize:`自定义`,"Customize profile":`自定义个人资料`,"Customize the appearance of your wallet.":`自定义您的钱包外观。`,Description:`描述`,"Description must be less than 100 characters":`描述必须少于100个字符`,"Didn't get an email?":`没有收到电子邮件?`,Discord:`Discord`,"Display Name":`显示名称`,"Display name must be less than 25 characters":`显示名称必须少于25个字符`,"Domain set":`域名已设置`,"Domain unset":`域名已取消设置`,Done:`完成`,Ecosystem:`生态系统`,"Eg: DevRel @ ENS Labs":`例如:DevRel @ ENS Labs`,Email:`电子邮件`,"Email address":`电子邮件地址`,"Embedded wallet":`嵌入式钱包`,"Enhanced compatibility with dApps":`增强的dApp兼容性`,"Enter confirmation code":`输入确认码`,"Enter your display name":`输入您的显示名称`,"Enter your name":`输入你的名字`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`轻松、安全地在VeChain和其他区块链网络之间交换您的数字资产。兑换通过利用去中心化和中心化交易所的合作伙伴执行,以转换代币。`,"Existing Custom Tokens":`现有自定义令牌`,"Failed to connect with Passkey":`无法连接到Passkey`,"Failed to connect with VeChain":`无法连接到唯链(VeChain)`,"Failed to connect with ecosystem app":`无法连接到生态系统应用程序`,"Failed to load App Hub apps":`加载 App Hub 应用失败`,Farcaster:`Farcaster`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`费用委托是唯链(VeChain)的一个独特功能,它允许其他人(即委托者)为您的交易费用买单。虽然许多dApp和服务提供商充当委托者以方便新用户上手,但某些交易可能仍需要您使用自己的VTHO支付费用。费用是防止网络垃圾及补偿处理和验证区块链交易的节点所必需的。在您自己支付费用时,您可以从资产中选择VTHO来覆盖交易成本。`,"Filter by category":`按类别筛选`,"Finally say goodbye to 0x addresses":`最终告别0x地址`,"For developers":`为开发者`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`出于安全原因,您只能在 {{appName}} 平台上管理嵌入式钱包设置。`,"Found following rates":`找到以下汇率`,From:`自`,"Gas fee":`燃料费`,General:`常规`,Github:`Github`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`好消息!多条款交易现在已完全支持智能账户。您现在可以享受更好的用户体验、更低的燃气成本和更高的安全性。`,Google:`Google`,Help:`帮助`,"How do I backup my wallet?":`如何备份我的钱包?`,"How do I send tokens?":`我如何发送代币?`,"How is my wallet secured?":`我的钱包如何保证安全?`,"I have read and agree to ":`我已阅读并同意`,"Ignore and continue":`忽略并继续`,"Improved security features":`改进的安全功能`,Instagram:`Instagram`,"Insufficient {{symbol}} balance":`{{symbol}}余额不足`,"Invalid address or domain":`无效的地址或域名`,"Invalid contract address":`无效的合约地址`,"Invalid token address":`令牌地址无效`,Language:`语言`,"Launch vechain.energy":`启动vechain.energy`,"Launch {{name}}":`启动 {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`您、Vechain Kit 和当前应用之间的法律协议,详细说明了使用钱包服务的规则。`,"Link Apple Account":`关联 Apple 账户`,"Link Discord Account":`关联 Discord 帐号`,"Link Email Account":`关联电子邮件账户`,"Link External Wallet":`链接外部钱包`,"Link Farcaster Account":`关联 Farcaster 账户`,"Link Github Account":`关联 Github 账户`,"Link Google Account":`关联 Google 账户`,"Link Instagram Account":`关联 Instagram 账户`,"Link LinkedIn Account":`关联 LinkedIn 账户`,"Link Phone Number":`关联电话号码`,"Link Spotify Account":`关联 Spotify 账户`,"Link Telegram Account":`关联 Telegram 账户`,"Link Tiktok Account":`关联 Tiktok 账户`,"Link Twitter Account":`关联 Twitter 账户`,LinkedIn:`LinkedIn`,"Loading your domains...":`正在加载您的域名...`,"Log in or sign up":`登录或注册`,"Logged in with":`登录方式`,Login:`登录`,"Login failed:":`登录失败:`,"Login methods":`登录方式`,"Login methods and Passkeys":`登录方法和密码钥匙`,Logout:`登出`,"Manage Custom Tokens":`管理自定义代币`,"Manage MFA":`管理多因素认证`,"Manage Recovery":`管理恢复`,"Manage on {{appName}}":`在 {{appName}} 上管理`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`管理您的嵌入式钱包的安全设置:处理您的登录方法,添加密码钥匙或备份您的钱包,以免失去对资产的访问。`,"Manage your login methods and passkeys":`管理您的登录方式和通行密钥`,"Manage your preferences for currency, language, and appearance.":`管理您对货币、语言和外观的偏好。`,"Minimum {{symbol}} transfer is {{min}}":`{{symbol}}的最小转账金额为{{min}}`,More:`更多`,"Multiclause Transactions Are Now Supported":`现在支持多条款交易`,"Name must be at least 3 characters long":`名称必须至少包含3个字符`,"Name your account to make it easier to exchange assets":`命名您的账户以便于交换资产`,Network:`网络`,New:`新`,"New image selected":`已选择新图像`,"No additional accounts available to link":`没有可链接的其他账户`,"No application from VeChain ecosystem is available to login.":`没有可供登录的VeChain生态系统应用程序。`,"No apps found in this category":`此类别中未找到应用程序`,"No archived notifications":`没有归档通知`,"No assets":`没有资产`,"No notifications":`没有通知`,"No policies accepted":`未接受任何政策`,"No questions found":`未找到问题`,"No quotes available":`没有可用报价`,"No tokens found":`未找到代币`,"Node URL":`节点 URL`,Notifications:`通知`,"Only letters, numbers, and hyphens are allowed":`只允许使用字母、数字和连字符`,Optional:`可选`,"Other options":`其他选项`,Passkey:`通行密钥`,"Phone Number":`电话号码`,"Please approve the request in the connection request window...":`请在连接请求窗口中批准请求...`,"Please be sure to keep this wallet safe and backed up.":`请务必保证此钱包的安全并进行备份。`,"Please check {{email}} for an email from privy.io and enter your code below.":`请查看 {{email}} 是否有来自 privy.io 的电子邮件,并在下方输入您的代码。`,"Please complete the passkey authentication...":`请完成通行密钥认证...`,"Please confirm the transaction in your wallet.":`请在钱包中确认交易。`,"Please enter a valid Twitter handle without @":`请输入有效的 Twitter 用户名,不要加 @`,"Please enter a valid contract address":`请输入有效的合约地址`,"Please enter a valid email address":`请输入有效的电子邮件地址`,"Please enter a valid number":`请输入有效的号码`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`请花一点时间查看所有政策,接受是继续的必要条件。`,Policy:`政策`,"Preparing changes...":`正在准备更改...`,"Privacy Policy":`隐私政策`,"Privacy policy outlining the data collection and processing practices.":`隐私政策概述了数据收集和处理的做法。`,"Privy Status":`Privy 状态`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy构建用户引导和嵌入式钱包基础设施,以支持基于加密技术的更好产品。这意味着在应用程序中嵌入资产控制,从而使用户、企业或机器能够通过无缝的产品体验使用数字资产。`,"Processing transaction...":`正在处理交易...`,Profile:`个人资料`,"Profile Image":`个人资料图片`,"Profile Picture":`个人资料图片`,"Profile Updated":`个人资料已更新`,"Read More":`Read More`,Receive:`接收`,"Receive tokens":`接收代币`,"Reduced gas costs for operations":`降低操作的燃气成本`,"Reject and logout":`拒绝并登出`,Remove:`移除`,"Remove Login Method":`移除登录方式`,"Remove from shortcuts":`从快捷方式中移除`,"Remove your current domain name":`移除当前域名`,"Resend code":`重新发送代码`,Retry:`重试`,"Save Changes":`保存更改`,"Saving changes...":`正在保存更改...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`告别 0x 地址,立即免费领取您的 .veworld.vet 子域名!`,"Search Apps":`搜索应用`,"Search FAQ":`搜索常见问题`,"Security preferences":`安全偏好`,"Security settings":`安全设置`,"Select Additional Login Method":`选择其他登录方式`,"Select Token":`选择代币`,"Select currency":`选择货币`,"Select language":`选择语言`,"Select token":`选择代币`,Send:`发送`,"Send all":`全部发送`,"Sending Transaction...":`正在发送交易...`,"Sending to OceanX or other exchanges may result in loss of funds.":`发送到OceanX或其他交易所可能导致资金损失。`,"Sending...":`正在发送...`,"Set a domain first":`首先设置一个域名`,"Set up Passkey":`设置通行密钥`,"Set up a passkey for easier access":`设置通行密钥以方便访问`,Settings:`设置`,"Share on":`分享至`,Shortcuts:`快捷键`,"Show Less":`Show Less`,"Show More":`显示更多`,"Slippage tolerance":`滑点容差`,"Smart Account":`智能账户`,"Smart Account detected":`检测到智能账户`,"Something went wrong":`出现错误`,"Something went wrong. Please try again.":`出了点问题,请重试。`,Source:`来源`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`敬请期待我们即将推出的活动功能`,"Stay tuned for our upcoming NFT feature":`敬请期待我们即将推出的 NFT 功能`,Submit:`提交`,Swap:`交换`,"Swap all":`全部交换`,"Swapping...":`正在兑换...`,Telegram:`Telegram`,"Terms and Conditions":`条款和条件`,"Terms and Policies":`条款和政策`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`这些账户与您的嵌入钱包相关联,可以用于登录您的钱包并访问您的私钥。`,"This address only supports VeChain assets.":`此地址仅支持唯链资产。`,"This domain is already taken":`该域名已被占用`,"This domain is protected":`该域名已受保护`,"This is taking longer than expected.":`这比预期花费的时间更长。`,"This is your main wallet, created by {{element}} and secured by Privy.":`这是您的主钱包,由{{element}}创建,并由Privy保护。`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`此钱包是您的智能账户所有者,用作您的身份标识以及区块链交互的网关。`,Tiktok:`Tiktok`,To:`到`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`要继续与VeChain区块链交互并完成您的操作,您的智能账户需要升级到最新版本(v3)。`,"Token Contract Address":`代币合约地址`,"Token already added":`代币已添加`,Tools:`工具`,"Transaction failed":`交易失败`,"Transaction failed:":`交易失败:`,"Transaction is being processed, it can take up to 15 seconds.":`交易正在处理中,可能需要长达15秒。`,"Transaction successful":`交易成功`,"Transaction successful!":`交易成功!`,"Try again":`重试`,"Try searching with a different term":`尝试使用不同的词搜索`,Twitter:`Twitter`,"Twitter username":`Twitter用户名`,"Type the receiver address or domain":`输入接收者地址或域名`,UNAVAILABLE:`不可用`,"Unable to fetch the price":`无法获取价格`,"Unset current domain":`取消设置当前域名`,"Unsetting current domain...":`正在取消设置当前域名...`,"Upgrade Smart Account to V3":`将智能账户升级到V3`,"Upgrade Successful!":`升级成功!`,"Upgrade account":`升级账户`,"Upgrading...":`正在升级...`,"Use social login with VeChain":`使用VeChain进行社交登录`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VET是唯链网络的主要加密货币。它代表了唯链生态系统中的价值和所有权,类似于公司拥有股票。持有VET会自动生成VTHO,而VTHO是用于支付网络交易费用所需的。`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO(唯链能量)是唯链网络的能量或“燃料”代币。它用于支付与区块链交互时的交易费用。通过持有VET代币,VTHO会自动生成,从而形成一个双代币系统,有助于维护网络稳定性和管理交易成本。`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAO是一个在唯链区块链上的去中心化组织,专注于可持续发展。成员通过B3TR代币参与DAO的治理以获取奖励,并使用VOT3对提案及每周代币分配轮次进行投票。`,"VeChain Kit":`唯链工具包`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`唯链,总部位于欧洲圣马力诺,是一个开创性的区块链生态系统,也是VeChainThor的创造者,这是一个世界级的智能合约平台,推动现实世界的区块链应用。唯链由陆扬于2015年创立,始终致力于提供透明、高效、可扩展和适应的区块链解决方案。`,"VeWorld Wallet":`VeWorld 钱包`,"Vechain Kit Policy":`唯链工具包政策`,"View Current Policy":`查看当前政策`,"View on explorer":`在浏览器中查看`,"View transaction on the explorer":`在浏览器中查看交易`,"Waiting for confirmation":`等待确认`,"Waiting for confirmation...":`等待确认...`,"Waiting wallet confirmation...":`等待钱包确认...`,Wallet:`钱包`,"Wallet secured by":`钱包安全由`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`我们强烈建议导出您的私钥以备份钱包。这确保您可以在需要时恢复钱包,或将其转移到自托管。`,Website:`网站`,"Website URL":`网站网址`,"Website URL must start with https://":`网站网址必须以 https:// 开头`,"What is B3TR?":`什么是B3TR?`,"What is Privy?":`什么是Privy?`,"What is VET?":`什么是VET?`,"What is VTHO?":`什么是VTHO?`,"What is VeBetterDAO?":`什么是VeBetterDAO?`,"What is VeChain?":`什么是唯链?`,"What is a Smart Account?":`什么是智能账户?`,"What is a domain name?":`什么是域名?`,"What is a network?":`什么是网络?`,"What is a wallet?":`什么是钱包?`,"What is an x2earn application?":`什么是x2earn应用?`,"What is fee delegation?":`什么是费用委托?`,"When you have accepted a policy, it will appear here":`当您接受一项政策时,它将显示在此处`,"When you have notifications, they will appear here":`您有通知时,会显示在这里`,"YOU OWN THIS":`这是你的`,"You accepted current policy on {{date}}":`您在 {{date}} 接受了当前的政策`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`您正在使用一个通过社交登录方式确保安全的嵌入式钱包,确保您顺畅的唯链体验。`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`您可以通过点击快速操作部分的发送图标来发送代币。输入接收者的地址或唯链域名,选择代币,并指定您想要发送的数量。`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`您有一个活跃的智能账户与此钱包关联。它已被设为您的主要身份。`,"You may want to try establishing the connection again.":`您可能需要尝试重新建立连接。`,"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 address has been successfully set to {{name}}":`您的地址已成功设置为{{name}}`,"Your changes have been saved successfully.":`您的更改已成功保存。`,"Your domain has been unset successfully.":`您的域名已成功取消设置。`,"Your embedded wallet":`您的嵌入钱包`,"Your existing domains":`您现有的域名`,"Your smart account is already upgraded to this version.":`您的智能账户已升级到此版本。`,"Your smart account needs to be upgraded to the latest version (v3).":`您的智能账户需要升级到最新版本 (v3)。`,"Your tokens":`您的代币`,"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.":`您的钱包安全性取决于您如何访问它。通过 VeWorld 插件、移动应用或硬件钱包等自我托管选项,您可以完全控制您的私钥。此插件本身无法访问您的私钥。使用社交账户或唯链登录时,您的钱包由 Privy 创建和保护,并由唯链管理,提供更简单的入门体验,同时保持安全性。`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`这里`,marketplaces:`Marketplaces`,rate:`汇率`,"to learn more about embedded wallets.":`了解更多关于嵌入式钱包的信息。`,unavailable:`不可用`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},_a={" and ":` と `,"'{{policyName}}' on connect":`接続時の'{{policyName}}'`,"'{{policyName}}' on {{date}}":`{{date}}の'{{policyName}}'`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies and analytics that help us enhance your experience.":`<bold>あなたのプライバシーは重要です。</bold> あなたがコントロールします。クッキーや分析などのオプション機能を有効にするには、受け入れてください。これにより、体験を向上させることができます。`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`.vet ドメインはプロフィールをカスタマイズするために必要です。アカウント名を選択して開始してください。`,"A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.":`スマートアカウントは、セキュリティと機能が強化されたスマートコントラクトウォレットです。ソーシャルリカバリー、トランザクションのバッチ処理などの機能を利用できます。`,'A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".':`ドメイン名はウォレットアドレスのニックネームのようなもので、人間が読める名前を使用してウォレットを簡単に識別し、dAppsとインタラクションすることができます。例えば、ウォレットアドレスが 0x1234567890 なら、ニックネームは "alice.vechain" となります。`,"A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.":`ブロックチェーンにおけるネットワークとは、トランザクションが行われる環境のことです。VeChainには、Mainnet(実際のトランザクションが行われるライブネットワーク)とTestnet(開発者向けのテスト環境)の2つの主要なネットワークがあります。接続中のネットワークは、このモーダルの上部に表示されます。`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`スマートアカウントに新しいアップグレードが利用可能です。「アクセスとセキュリティ」セクションに移動してアップグレードしてください。`,"A new version is available for your account":`アカウントの新バージョンが利用可能です`,"A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.":`ウォレットはVeChainブロックチェーンへのゲートウェイです。プライベートキーを保存し、デジタル資産を安全に管理し、トークンを送受信し、分散型アプリケーションとやり取りすることができます。これを、ブロックチェーントランザクションのためのデジタル銀行口座と考えてください。`,AVAILABLE:`利用可能`,Accept:`承諾`,"Accept all":`すべて承諾`,"Accept selected":`選択を受け入れる`,"Access and security":`アクセスとセキュリティ`,"Account Upgrade Required":`アカウントのアップグレードが必要です`,"Account already upgraded":`アカウントはすでにアップグレードされています`,"Account upgrade required":`アカウントのアップグレードが必要です`,Active:`アクティブ`,"Add Login Method":`ログイン方法を追加`,"Add Token":`トークンを追加`,"Add to shortcuts":`ショートカットに追加`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`リンクされたアカウントを追加することで、アクセス喪失に対するセキュリティが向上しますが、新たな攻撃の可能性も生じます。セキュリティを強化するために、MFAを有効にすることをお勧めします。`,"Address is required":`アドレスが必要です`,All:`すべて`,"All apps":`すべてのアプリ`,"All policies you have accepted":`あなたが承諾したすべてのポリシー`,"All tokens":`すべてのトークン`,"Already have an x2earn app wallet?":`既にx2earnアプリのウォレットをお持ちですか?`,Amount:`金額`,"Amount is required":`金額が必要です`,"An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.":`VeBetterDAOのX2Earnアプリケーションは、環境に優しい行動をとるユーザーにB3TRトークンを報酬として提供する持続可能なアプリです。これらのアプリはB3TRを配布し、ユーザのウォレットをリンクし、持続可能な行動の証明を提供しなければなりません。これらは推薦を通じてVeBetterDAOに参加し、週ごとのトークン割り当てラウンドに参加します。`,"An unexpected error occurred.":`予期せぬエラーが発生しました。`,Apple:`Apple`,Archived:`アーカイブ済み`,"Archived Notifications":`アーカイブされた通知`,"Are you sure you want to disconnect your wallet?":`ウォレットを切断してもよろしいですか?`,"Are you sure you want to reject the policies and disconnect?":`ポリシーを拒否して切断してもよろしいですか?`,"Are you sure you want to set your domain name to":`ドメイン名を設定してもよろしいですか`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`{{accountDescription}}にリンクされたログイン方法として{{accountType}}のリンクを解除してもよろしいですか?`,"Are you sure you want to unset your current domain?":`現在のドメインを解除してもよろしいですか?`,Assets:`資産`,At:`で`,"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はVeBetterDAOのインセンティブトークンであり、VechainThorブロックチェーン上に構築されています。総供給量は10億トークンに限定され、12年間にわたって毎週発行されます。B3TRは報酬、ガバナンス、およびVOT3トークンの1:1の保護に使用されます。それはサステナビリティアプリケーションとDAOトレジャリ管理をサポートします。`,"Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.":`ウォレットのバックアップは非常に重要です。なぜなら、あなただけが秘密鍵にアクセスできるからです。何か問題が発生した場合、秘密鍵を持っていることが資産を回復する唯一の手段です。バックアップの方法はウォレットへのアクセス方法によります:VeWorldを使用している場合、バックアップオプションはアプリ内で利用可能です。ソーシャルログインユーザーの場合、ウォレットセクションでバックアップオプションを見つけることができます。VeChainまたは別のエコシステムアプリを通じて接続している場合、元のWebサイトにアクセスし、ログインしてウォレットセクションにアクセスする必要があります。`,"Backup your wallet":`ウォレットをバックアップする`,"Backup your wallet, configure MFA and set recovery options":`ウォレットをバックアップし、MFAを設定し、回復オプションを設定してください。`,Balance:`残高`,"Benefits of this upgrade:":`このアップグレードの利点:`,Best:`最適`,"Better transaction handling":`より良いトランザクション処理`,Bridge:`ブリッジ`,"By continuing, you agree to":`続行することで、あなたは以下に同意します`,Cancel:`キャンセル`,"Choose Name":`名前を選択`,"Choose a name for your account.":`アカウントの名前を選んでください。`,"Choose a unique .vet domain name for your account.":`アカウントにユニークな.vetドメイン名を選択してください。`,"Choose account name":`アカウント名を選択`,"Choose name":`名前を選択`,"Choose your account name":`アカウント名を選択`,"Claim your vet domain!":`あなたのvetドメインを取得しましょう!`,"Claiming name...":`名前をクレーム中...`,"Clear all":`すべてクリア`,"Cleared notifications will appear here":`クリアされた通知はここに表示されます`,Click:`クリック`,"Click below to access {{ name }} and explore its features.":`以下をクリックして{{ name }}にアクセスし、その機能を探索してください。`,Close:`閉じる`,"Close and do this later":`閉じて後でやる`,"Close announcement":`お知らせを閉じる`,"Coming Soon!":`近日公開!`,"Coming soon":`近日公開`,Confirm:`確認`,"Confirm Changes":`変更を確認`,"Confirm Name":`名前を確認`,"Confirm Unset Domain":`ドメイン解除を確認`,"Confirm the transaction in your wallet to complete it.":`ウォレットでトランザクションを確認して完了してください。`,"Confirm transaction":`取引を確認`,"Connect an external wallet for easier access":`外部ウォレットを接続して簡単にアクセス`,"Connect wallet":`ウォレットを接続`,"Connect with VeWorld wallet":`VeWorldウォレットと接続`,"Connect your Apple account for easier access":`Appleアカウントを接続して簡単にアクセス`,"Connect your Discord account for easier access":`簡単なアクセスのためにあなたのDiscordアカウントを接続してください`,"Connect your Farcaster account for easier access":`Farcasterアカウントを接続して簡単にアクセス`,"Connect your Github account for easier access":`Githubアカウントを接続して簡単にアクセス`,"Connect your Google account for easier access":`Googleアカウントを接続して簡単にアクセス`,"Connect your Instagram account for easier access":`Instagramアカウントを接続して簡単にアクセス`,"Connect your LinkedIn account for easier access":`LinkedInアカウントを接続して簡単にアクセス`,"Connect your Spotify account for easier access":`Spotifyアカウントを接続して簡単にアクセス`,"Connect your Telegram account for easier access":`Telegramアカウントを接続して簡単にアクセス`,"Connect your Tiktok account for easier access":`Tiktokアカウントを接続して簡単にアクセス`,"Connect your Twitter account for easier access":`Twitterアカウントを接続して簡単にアクセス`,"Connect your email for easier access":`メールを接続して簡単にアクセス`,"Connect your phone number for easier access":`電話番号を接続して簡単にアクセス`,"Connecting to VeChain":`VeChainに接続中`,"Connecting with":`で接続中`,"Connecting with Passkey":`パスキーで接続中`,"Connecting...":`接続中...`,"Connection Details":`接続の詳細`,"Connection Failed":`接続に失敗しました`,"Connection Type":`接続タイプ`,"Connection details":`接続の詳細`,Continue:`続ける`,"Continue with Github":`Githubで続行`,"Continue with Google":`Googleで続行`,"Cookie Policy":`クッキーポリシー`,"Cookie policy outlining the use of cookies and tracking technologies.":`クッキーと追跡技術の使用を説明するクッキーポリシー。`,"Copy your address or scan this QR code":`アドレスをコピーするか、このQRコードをスキャンしてください`,Currency:`通貨`,Current:`現在`,"Current domain":`現在のドメイン`,Customization:`カスタマイズ`,Customize:`カスタマイズ`,"Customize profile":`プロフィールをカスタマイズ`,"Customize the appearance of your wallet.":`ウォレットの外観をカスタマイズします。`,Description:`説明`,"Description must be less than 100 characters":`説明は100文字未満でなければなりません`,"Didn't get an email?":`メールを受け取りませんでしたか?`,Discord:`ディスコード`,"Display Name":`表示名`,"Display name must be less than 25 characters":`表示名は25文字未満でなければなりません`,"Domain set":`ドメインが設定されました`,"Domain unset":`ドメインが解除されました`,Done:`完了`,Ecosystem:`エコシステム`,"Eg: DevRel @ ENS Labs":`例: DevRel @ ENS Labs`,Email:`メール`,"Email address":`メールアドレス`,"Embedded wallet":`埋め込みウォレット`,"Enhanced compatibility with dApps":`dAppsとの互換性の強化`,"Enter confirmation code":`確認コードを入力`,"Enter your display name":`表示名を入力してください`,"Enter your name":`お名前を入力してください`,"Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.":`デジタル資産を、VeChainと他のブロックチェーンネットワーク間で簡単かつ安全に交換できます。スワップは、トークンを変換するために、非中央集権型と中央集権型の両方の取引所を活用するパートナーを通じて実行されます。`,"Existing Custom Tokens":`既存のカスタムトークン`,"Failed to connect with Passkey":`パスキーとの接続に失敗しました`,"Failed to connect with VeChain":`VeChainとの接続に失敗しました`,"Failed to connect with ecosystem app":`エコシステムアプリとの接続に失敗しました`,"Failed to load App Hub apps":`App Hubアプリの読み込みに失敗しました`,Farcaster:`ファーカスター`,"Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.":`手数料デリゲーションは、VeChainのユニークな機能であり、他の誰か(デリゲーター)があなたの取引手数料を支払うことを可能にします。多くのdAppsおよびサービスプロバイダーがデリゲーターとして機能し、新規ユーザーが開始しやすくしていますが、一部の取引では依然として独自のVTHOを使用して手数料を支払う必要がある場合があります。手数料は、ネットワークスパムを防ぎ、ブロックチェーン上の取引を処理および検証するノードに報酬を与えるために必要です。手数料を自分で支払う場合は、資産からVTHOを選択して取引コストをカバーすることができます。`,"Filter by category":`カテゴリでフィルター`,"Finally say goodbye to 0x addresses":`ついに0xアドレスにお別れを言いましょう`,"For developers":`開発者向け`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`セキュリティ上の理由から、埋め込みウォレットの設定は{{appName}}プラットフォームでのみ管理できます。`,"Found following rates":`次のレートが見つかりました`,From:`送信元`,"Gas fee":`ガス代`,General:`一般`,Github:`ギットハブ`,"Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.":`朗報です!スマートアカウントのために、マルチクローズ取引が完全にサポートされるようになりました。これで、より良いユーザー体験、低コストのガス、そして強化されたセキュリティを楽しむことができます。`,Google:`グーグル`,Help:`ヘルプ`,"How do I backup my wallet?":`ウォレットのバックアップはどうすればいいですか?`,"How do I send tokens?":`トークンを送信するにはどうすればよいですか?`,"How is my wallet secured?":`ウォレットはどのようにして保護されていますか?`,"I have read and agree to ":`私は読み、同意します `,"Ignore and continue":`無視して続行`,"Improved security features":`改善されたセキュリティ機能`,Instagram:`インスタグラム`,"Insufficient {{symbol}} balance":`残高が不足しています ({{symbol}})`,"Invalid address or domain":`無効なアドレスまたはドメイン`,"Invalid contract address":`無効なコントラクトアドレス`,"Invalid token address":`無効なトークンアドレス`,Language:`言語`,"Launch vechain.energy":`vechain.energyを起動`,"Launch {{name}}":`{{name}}を起動`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`あなた、Vechain Kit、および現在のアプリ間のウォレットサービスの使用規則を説明する法的契約。`,"Link Apple Account":`Appleアカウントをリンク`,"Link Discord Account":`ディスコードアカウントをリンクする`,"Link Email Account":`メールアカウントをリンク`,"Link External Wallet":`外部ウォレットをリンクする`,"Link Farcaster Account":`Farcasterアカウントをリンク`,"Link Github Account":`Githubアカウントをリンク`,"Link Google Account":`Googleアカウントをリンク`,"Link Instagram Account":`Instagramアカウントをリンク`,"Link LinkedIn Account":`LinkedInアカウントをリンク`,"Link Phone Number":`電話番号をリンク`,"Link Spotify Account":`Spotifyアカウントをリンク`,"Link Telegram Account":`Telegramアカウントをリンク`,"Link Tiktok Account":`Tiktokアカウントをリンク`,"Link Twitter Account":`Twitterアカウントをリンク`,LinkedIn:`リンクトイン`,"Loading your domains...":`ドメインを読み込んでいます...`,"Log in or sign up":`ログインまたはサインアップ`,"Logged in with":`でログイン`,Login:`ログイン`,"Login failed:":`ログインに失敗しました:`,"Login methods":`ログイン方法`,"Login methods and Passkeys":`ログイン方法とパスキー`,Logout:`ログアウト`,"Manage Custom Tokens":`カスタムトークンの管理`,"Manage MFA":`MFAを管理する`,"Manage Recovery":`リカバリーの管理`,"Manage on {{appName}}":`{{appName}}で管理する`,"Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.":`埋め込みウォレットのセキュリティ設定を管理します: ログイン方法を処理したり、パスキーを追加したり、資産へのアクセスを失わないようにウォレットをバックアップしたりします。`,"Manage your login methods and passkeys":`ログイン方法とパスキーを管理する`,"Manage your preferences for currency, language, and appearance.":`通貨、言語、外観の設定を管理します。`,"Minimum {{symbol}} transfer is {{min}}":`最小{{symbol}}転送量は{{min}}です`,More:`もっと見る`,"Multiclause Transactions Are Now Supported":`マルチクローズ取引がサポートされました`,"Name must be at least 3 characters long":`名前は少なくとも3文字以上必要です`,"Name your account to make it easier to exchange assets":`資産の交換を簡単にするためにアカウントに名前を付けてください。`,Network:`ネットワーク`,New:`新規`,"New image selected":`新しい画像が選択されました`,"No additional accounts available to link":`リンク可能な追加アカウントはありません`,"No application from VeChain ecosystem is available to login.":`VeChainエコシステムからはログイン可能なアプリケーションがありません。`,"No apps found in this category":`このカテゴリにはアプリが見つかりません`,"No archived notifications":`アーカイブされた通知はありません`,"No assets":`資産なし`,"No notifications":`通知はありません`,"No policies accepted":`承認されたポリシーはありません`,"No questions found":`質問が見つかりませんでした`,"No quotes available":`利用可能な見積もりがありません`,"No tokens found":`トークンが見つかりません`,"Node URL":`ノードURL`,Notifications:`通知`,"Only letters, numbers, and hyphens are allowed":`使用できるのは文字、数字、ハイフンのみです`,Optional:`任意`,"Other options":`その他のオプション`,Passkey:`パスキー`,"Phone Number":`電話番号`,"Please approve the request in the connection request window...":`接続リクエストウィンドウでリクエストを承認してください...`,"Please be sure to keep this wallet safe and backed up.":`このウォレットを安全に保管し、バックアップを取るようにしてください。`,"Please check {{email}} for an email from privy.io and enter your code below.":`{{email}} に privy.io からのメールが届いていることを確認し、以下にコードを入力してください。`,"Please complete the passkey authentication...":`パスキー認証を完了してください...`,"Please confirm the transaction in your wallet.":`ウォレットでトランザクションを確認してください。`,"Please enter a valid Twitter handle without @":`@を付けずに有効なTwitterハンドルを入力してください`,"Please enter a valid contract address":`有効な契約アドレスを入力してください`,"Please enter a valid email address":`有効なメールアドレスを入力してください`,"Please enter a valid number":`有効な番号を入力してください`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`すべてのポリシーを確認する時間を取ってください。続行するには承認が必須です。`,Policy:`ポリシー`,"Preparing changes...":`変更を準備しています...`,"Privacy Policy":`プライバシーポリシー`,"Privacy policy outlining the data collection and processing practices.":`データ収集と処理の実践についてのプライバシーポリシー。`,"Privy Status":`Privy ステータス`,"Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.":`Privy は、暗号化レールに基づいて構築されたより良い製品を実現するために、ユーザーオンボーディングと組み込みウォレットのインフラストラクチャを構築します。 つまり、アプリケーション自体に資産管理を組み込むことにより、ユーザー、企業、または機械がシームレスな製品体験を通じてデジタル資産を使用できるようにします。`,"Processing transaction...":`トランザクションを処理しています...`,Profile:`プロフィール`,"Profile Image":`プロフィール画像`,"Profile Picture":`プロフィール画像`,"Profile Updated":`プロフィールが更新されました`,"Read More":`Read More`,Receive:`受け取る`,"Receive tokens":`トークンを受け取る`,"Reduced gas costs for operations":`オペレーションのガスコストを削減`,"Reject and logout":`拒否してログアウト`,Remove:`削除`,"Remove Login Method":`ログイン方法の削除`,"Remove from shortcuts":`ショートカットから削除`,"Remove your current domain name":`現在のドメイン名を削除する`,"Resend code":`コードを再送信`,Retry:`再試行`,"Save Changes":`変更を保存`,"Saving changes...":`変更を保存しています...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`0xアドレスに別れを告げ、今すぐ無料で.veworld.vetサブドメインを取得しましょう!`,"Search Apps":`アプリを検索`,"Search FAQ":`FAQを検索`,"Security preferences":`セキュリティ設定`,"Security settings":`セキュリティ設定`,"Select Additional Login Method":`追加のログイン方法を選択`,"Select Token":`トークンを選択`,"Select currency":`通貨を選択`,"Select language":`言語を選択`,"Select token":`トークンを選択`,Send:`送る`,"Send all":`すべて送信`,"Sending Transaction...":`取引を送信中...`,"Sending to OceanX or other exchanges may result in loss of funds.":`OceanXまたは他の取引所に送ると資金を失う可能性があります。`,"Sending...":`送信中...`,"Set a domain first":`先にドメインを設定してください`,"Set up Passkey":`パスキーを設定`,"Set up a passkey for easier access":`簡単にアクセスするためにパスキーを設定`,Settings:`設定`,"Share on":`共有する`,Shortcuts:`ショートカット`,"Show Less":`Show Less`,"Show More":`さらに表示`,"Slippage tolerance":`スリッページ許容範囲`,"Smart Account":`スマートアカウント`,"Smart Account detected":`スマートアカウントが検出されました。`,"Something went wrong":`何かがうまくいきませんでした`,"Something went wrong. Please try again.":`問題が発生しました。もう一度お試しください。`,Source:`ソース`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`今後のアクティビティ機能にご期待ください`,"Stay tuned for our upcoming NFT feature":`今後のNFT機能にご期待ください`,Submit:`送信する`,Swap:`スワップ`,"Swap all":`すべてスワップ`,"Swapping...":`スワップ中...`,Telegram:`Telegram`,"Terms and Conditions":`利用規約`,"Terms and Policies":`利用規約とポリシー`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`これらのアカウントは埋め込みウォレットにリンクされており、ウォレットへのログインや秘密鍵へのアクセスに使用できます。`,"This address only supports VeChain assets.":`このアドレスはVeChain資産のみをサポートしています。`,"This domain is already taken":`このドメインは既に使用されています`,"This domain is protected":`このドメインは保護されています`,"This is taking longer than expected.":`予想以上に時間がかかっています。`,"This is your main wallet, created by {{element}} and secured by Privy.":`これは、{{element}}によって作成され、Privyによって保護されたあなたのメインウォレットです。`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`このウォレットは、アイデンティティとして使用されるスマートアカウントの所有者であり、ブロックチェーンとのやり取りのゲートウェイとして機能します。`,Tiktok:`Tiktok`,To:`宛先`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`VeChainブロックチェーンと対話しオペレーションを完了するためには、スマートアカウントを最新バージョン(v3)にアップグレードする必要があります。`,"Token Contract Address":`トークン契約アドレス`,"Token already added":`トークンは既に追加されています`,Tools:`ツール`,"Transaction failed":`取引に失敗しました`,"Transaction failed:":`取引に失敗しました:`,"Transaction is being processed, it can take up to 15 seconds.":`トランザクションを処理しています。最大で15秒かかる可能性があります。`,"Transaction successful":`取引が成功しました`,"Transaction successful!":`取引に成功しました!`,"Try again":`再試行する`,"Try searching with a different term":`別の用語で検索してみてください`,Twitter:`Twitter`,"Twitter username":`Twitterユーザー名`,"Type the receiver address or domain":`受信者のアドレスまたはドメインを入力してください`,UNAVAILABLE:`利用不可`,"Unable to fetch the price":`価格を取得できません`,"Unset current domain":`現在のドメインを解除する`,"Unsetting current domain...":`現在のドメインを解除中...`,"Upgrade Smart Account to V3":`スマートアカウントをV3にアップグレード`,"Upgrade Successful!":`アップグレード成功!`,"Upgrade account":`アカウントをアップグレード`,"Upgrading...":`アップグレード中...`,"Use social login with VeChain":`VeChainでソーシャルログインを使用`,"VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.":`VETはVeChainネットワークの主要な暗号通貨です。それはVeChainエコシステムでの価値と所有権を表し、株が企業での所有権を表すのと似ています。VETを保有すると、ネットワークのトランザクションに必要なVTHOが自動的に生成されます。`,"VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.":`VTHO(VeThor)はVeChainネットワークのエネルギーまたは「ガス」トークンです。ブロックチェーンとやり取りする際のトランザクション手数料を支払うために使用されます。VTHOはVETトークンを保有することで自動的に生成され、ネットワークの安定性を維持し、トランザクションコストを管理するための2トークンシステムが作成されます。`,"VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.":`VeBetterDAOはVeChainブロックチェーン上の持続可能性に焦点を当てた分散型組織です。メンバーは、報酬としてB3TRトークンを使用し、提案での投票や週次トークン配分ラウンドでVOT3を使用してDAOのガバナンスに参加します。`,"VeChain Kit":`VeChainキット`,"VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.":`ヨーロッパのサンマリノに本社を置くVeChainは、画期的なブロックチェーンエコシステムであり、実世界のブロックチェーンの採用を推進する世界クラスのスマートコントラクトプラットフォームVeChainThorの開発者です。2015年にSunny Luによって設立されたVeChainは、透明で効率的、拡張可能で適応性のあるブロックチェーンソリューションの提供に一貫して取り組んでいます。`,"VeWorld Wallet":`VeWorldウォレット`,"Vechain Kit Policy":`Vechainキットポリシー`,"View Current Policy":`現在のポリシーを見る`,"View on explorer":`エクスプローラーで表示`,"View transaction on the explorer":`エクスプローラーでトランザクションを表示`,"Waiting for confirmation":`確認待ち`,"Waiting for confirmation...":`確認を待っています...`,"Waiting wallet confirmation...":`ウォレットの確認を待っています...`,Wallet:`ウォレット`,"Wallet secured by":`によって保護されたウォレット`,"We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using":`ウォレットをバックアップするために、秘密鍵をエクスポートすることを強くお勧めします。これにより、必要に応じて復元するか、自己管理に移行することができます。`,Website:`ウェブサイト`,"Website URL":`ウェブサイトURL`,"Website URL must start with https://":`ウェブサイトのURLはhttps://で始まる必要があります`,"What is B3TR?":`B3TRとは?`,"What is Privy?":`Privyとは何ですか?`,"What is VET?":`VETとは何ですか?`,"What is VTHO?":`VTHOとは何ですか?`,"What is VeBetterDAO?":`VeBetterDAOとは何ですか?`,"What is VeChain?":`VeChainとは何ですか?`,"What is a Smart Account?":`スマートアカウントとは何ですか?`,"What is a domain name?":`ドメイン名とは何ですか?`,"What is a network?":`ネットワークとは何ですか?`,"What is a wallet?":`ウォレットとは何ですか?`,"What is an x2earn application?":`x2earnアプリケーションとは何ですか?`,"What is fee delegation?":`料金の委任とは何ですか?`,"When you have accepted a policy, it will appear here":`ポリシーを承認すると、ここに表示されます`,"When you have notifications, they will appear here":`通知がある場合、ここに表示されます`,"YOU OWN THIS":`所有しています`,"You accepted current policy on {{date}}":`あなたは{{date}}に現在のポリシーを承認しました`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`ソーシャルログイン方法で保護された埋め込みウォレットを使用して、スムーズなVeChain体験を確保しています。`,"You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.":`クイックアクションセクションの送信アイコンをクリックしてトークンを送信できます。受取人のアドレスまたはVeChainのドメイン名を入力し、トークンを選択し、送信したい金額を指定します。`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`このウォレットに関連付けられたアクティブなスマートアカウントがあります。これがあなたの主要な身元として設定されています。`,"You may want to try establishing the connection again.":`接続の再確立を試みてください。`,"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 address has been successfully set to {{name}}":`あなたのアドレスは正常に{{name}}に設定されました`,"Your changes have been saved successfully.":`変更は正常に保存されました。`,"Your domain has been unset successfully.":`あなたのドメインは正常に解除されました。`,"Your embedded wallet":`あなたの埋め込みウォレット`,"Your existing domains":`既存のドメイン`,"Your smart account is already upgraded to this version.":`あなたのスマートアカウントはすでにこのバージョンにアップグレードされています。`,"Your smart account needs to be upgraded to the latest version (v3).":`あなたのスマートアカウントは最新バージョン(v3)にアップグレードする必要があります。`,"Your tokens":`あなたのトークン`,"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.":`ウォレットのセキュリティは、アクセス方法に依存します。VeWorld拡張機能やモバイルアプリ、ハードウェアウォレットなどの自己管理オプションを使用することで、秘密鍵を完全に管理できます。この拡張機能自体はあなたの秘密鍵にアクセスすることはありません。ソーシャルアカウントやVeChainを使用してログインする場合、ウォレットはPrivyによって作成され、保護され、VeChainによって管理され、セキュリティを維持しつつ容易なオンボーディング体験を提供します。`,collectibles:`Collectibles`,defi:`DeFi`,games:`Games`,here:`こちら`,marketplaces:`Marketplaces`,rate:`レート`,"to learn more about embedded wallets.":`埋め込みウォレットについて詳しくはこちらをご覧ください。`,unavailable:`利用不可`,utilities:`Utilities`,vebetter:`VeBetter`,"your@email.com":`your@email.com`};const va=[`en`,`de`,`it`,`fr`,`es`,`zh`,`ja`],ya={en:{translation:da},de:{translation:fa},it:{translation:pa},fr:{translation:ma},es:{translation:ha},zh:{translation:ga},ja:{translation:_a}},ba={en:`English`,de:`Deutsch`,it:`Italiano`,fr:`Français`,es:`Español`,zh:`中文`,ja:`日本語`},xa={en:`en-US`,de:`de-DE`,it:`it-IT`,fr:`fr-FR`,es:`es-ES`,zh:`zh-CN`,ja:`ja-JP`},Sa={name:`customDetector`,lookup:e=>{if(typeof window<`u`){let e=localStorage.getItem(`i18nextLng`);if(e&&va.includes(e))return e}let t=e?.languages?.[0];if(t&&va.includes(t))return t;if(typeof window<`u`){let e=navigator.language.split(`-`)[0];if(e&&va.includes(e))return e}return`en`},cacheUserLanguage:e=>{typeof window<`u`&&localStorage.setItem(`i18nextLng`,e)}};hn.use({type:`languageDetector`,async:!1,init:()=>{},detect:Sa.lookup,cacheUserLanguage:Sa.cacheUserLanguage}).use(_n).init({resources:ya,fallbackLng:`en`,interpolation:{escapeValue:!1}});var Ca=hn;const wa=e=>{Object.keys(ya).forEach(t=>{e.hasResourceBundle(t,`translation`),e.addResourceBundle(t,`translation`,ya[t].translation,!0,!0)})};function Ta(e,t){return e=e.replace(`#`,``),`rgba(${parseInt(e.substring(0,2),16)}, ${parseInt(e.substring(2,4),16)}, ${parseInt(e.substring(4,6),16)}, ${t})`}function Ea(e,t){let n=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/);if(n)return`rgba(${n[1]}, ${n[2]}, ${n[3]}, ${t})`;if(e.startsWith(`#`))return Ta(e,t);if(typeof window<`u`&&typeof document<`u`&&document.body)try{let n=document.createElement(`div`);n.style.color=e,document.body.appendChild(n);let r=window.getComputedStyle(n).color;document.body.removeChild(n);let i=r.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/);if(i)return`rgba(${i[1]}, ${i[2]}, ${i[3]}, ${t})`}catch{}return e}function Da(e,t,n,r){let i=r||n;return{modal:e,card:Ea(e,.8),cardElevated:e,overlay:i,stickyHeader:Ea(e,.9)}}function Oa(e,t){return{primary:e,secondary:Ea(e,.7),tertiary:Ea(e,.5),disabled:t?`#4A5568`:`#A0AEC0`}}function ka(e,t,n){let r=t?`#ffffff`:`#000000`;return{default:Ea(r,.1),hover:Ea(r,.2),focus:t?`#3182CE`:`#2B6CB0`,button:Ea(r,.1),modal:n||`none`}}function Aa(e,t,n,r,i){if(r)return{bg:r.bg||i.buttons.button.bg,color:r.color||i.buttons.button.color,border:r.border||i.buttons.button.border,hoverBg:r.hoverBg,backdropFilter:r.backdropFilter,rounded:r.rounded};if(e&&t){let e=n?`#ffffff`:`#000000`;return{bg:Ea(e,.1),color:t,border:`1px solid ${Ea(e,.1)}`}}return i.buttons.button}function ja(e,t,n,r,i){return r?{bg:r.bg||i.buttons.primaryButton.bg,color:r.color||i.buttons.primaryButton.color,border:r.border||i.buttons.primaryButton.border,hoverBg:r.hoverBg,backdropFilter:r.backdropFilter,rounded:r.rounded}:e&&t?{bg:i.buttons.primaryButton.bg,color:`white`,border:`none`}:i.buttons.primaryButton}function Ma(e,t,n,r,i){return r?{bg:r.bg||i.buttons.tertiaryButton.bg,color:r.color||i.buttons.tertiaryButton.color,border:r.border||i.buttons.tertiaryButton.border,backdropFilter:r.backdropFilter,rounded:r.rounded}:e&&t?{bg:`transparent`,color:t,border:`none`}:i.buttons.tertiaryButton}function Na(e,t,n,r,i){return r?{bg:r.bg||i.buttons.loginButton.bg,color:r.color||i.buttons.loginButton.color,border:r.border||i.buttons.loginButton.border,backdropFilter:r.backdropFilter,rounded:r.rounded}:i.buttons.loginButton}function Pa(e,t){return t?{low:{blur:`blur(4px)`,modalOpacity:.4,overlayOpacity:.3,stickyHeaderOpacity:.7},medium:{blur:`blur(4px)`,modalOpacity:.6,overlayOpacity:.4,stickyHeaderOpacity:.8},high:{blur:`blur(5px)`,modalOpacity:.8,overlayOpacity:.5,stickyHeaderOpacity:.85}}[e]:{blur:{modal:`blur(3px)`,overlay:`blur(3px)`,stickyHeader:`blur(12px)`}.modal,modalOpacity:1,overlayOpacity:.4,stickyHeaderOpacity:.9}}const Fa={colors:{background:{modal:`#ffffff`,overlay:`rgba(0, 0, 0, 0.4)`,card:`#f5f5f5`,cardElevated:`#ffffff`,stickyHeader:`rgba(255, 255, 255, 0.69)`},text:{primary:`#2e2e2e`,secondary:`#4d4d4d`,tertiary:`#718096`,disabled:`#A0AEC0`},border:{default:`transparent`,hover:`#d0d0d0`,focus:`#2B6CB0`,button:`#ebebeb`,modal:`none`},success:`#10ba3e`,error:`#ef4444`,warning:`#F6AD55`},buttons:{button:{bg:`rgba(0, 0, 0, 0.1)`,color:`#2e2e2e`,border:`none`},primaryButton:{bg:`rgb(96 66 221)`,color:`white`,border:`none`},tertiaryButton:{bg:`transparent`,color:`#2e2e2e`,border:`none`},loginButton:{bg:`white`,color:`#1a1a1a`,border:`1px solid transparent`}},effects:{backdropFilter:{modal:`blur(3px)`,overlay:`blur(3px)`,stickyHeader:`blur(12px)`},glassOpacity:{modal:1,overlay:.4,stickyHeader:.69}},fonts:{body:`Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,heading:`Satoshi, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,sizes:{small:`12px`,medium:`14px`,large:`16px`},weights:{normal:400,medium:500,bold:700}},borders:{radius:{small:`8px`,medium:`12px`,large:`16px`,xl:`24px`,full:`9999px`,modal:`24px`}},modal:{rounded:void 0}},Ia={colors:{background:{modal:`#151515`,overlay:`rgba(0, 0, 0, 0.6)`,card:`rgba(0, 0, 0, 0.3)`,cardElevated:`#2a2a2a`,stickyHeader:`rgba(31, 31, 30, 0.9)`},text:{primary:`rgb(223, 223, 221)`,secondary:`rgba(223, 223, 221, 0.6)`,tertiary:`rgba(223, 223, 221, 0.4)`,disabled:`rgba(223, 223, 221, 0.2)`},border:{default:`rgba(255, 255, 255, 0.1)`,hover:`rgba(255, 255, 255, 0.2)`,focus:`#3182CE`,button:`rgba(255, 255, 255, 0.1)`,modal:`none`},success:`#00ff45de`,error:`#ef4444`,warning:`#F6AD55`},buttons:{button:{bg:`rgba(255, 255, 255, 0.05)`,color:`rgb(223, 223, 221)`,border:`none`},primaryButton:{bg:`rgb(96 66 221)`,color:`white`,border:`none`},tertiaryButton:{bg:`transparent`,color:`rgb(223, 223, 221)`,border:`none`},loginButton:{bg:`transparent`,color:`white`,border:`1px solid rgba(255, 255, 255, 0.1)`}},effects:{backdropFilter:{modal:`blur(3px)`,overlay:`blur(3px)`,stickyHeader:`blur(12px)`},glassOpacity:{modal:1,overlay:.6,stickyHeader:.9}},fonts:{body:`Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,heading:`Satoshi, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,sizes:{small:`12px`,medium:`14px`,large:`16px`},weights:{normal:400,medium:500,bold:700}},borders:{radius:{small:`8px`,medium:`12px`,large:`16px`,xl:`24px`,full:`9999px`,modal:`24px`}},modal:{rounded:void 0}},La=e=>e?Ia:Fa;function Ra(e,t){let n={...e};return t.colors&&(n.colors={...e.colors,...t.colors},t.colors.background&&(n.colors.background={...e.colors.background,...t.colors.background}),t.colors.text&&(n.colors.text={...e.colors.text,...t.colors.text}),t.colors.border&&(n.colors.border={...e.colors.border,...t.colors.border},t.colors.border.button||(n.colors.border.button=e.colors.border.button))),t.effects&&(n.effects={...e.effects,...t.effects},t.effects.backdropFilter&&(n.effects.backdropFilter={...e.effects.backdropFilter,...t.effects.backdropFilter}),t.effects.glassOpacity&&(n.effects.glassOpacity={...e.effects.glassOpacity,...t.effects.glassOpacity})),t.fonts&&(n.fonts={...e.fonts,...t.fonts},t.fonts.body&&(n.fonts.body=t.fonts.body),t.fonts.heading&&(n.fonts.heading=t.fonts.heading),t.fonts.sizes&&(n.fonts.sizes={...e.fonts.sizes,...t.fonts.sizes}),t.fonts.weights&&(n.fonts.weights={...e.fonts.weights,...t.fonts.weights})),t.borders&&(n.borders={...e.borders,...t.borders},t.borders.radius&&(n.borders.radius={...e.borders.radius,...t.borders.radius})),t.buttons&&(n.buttons={...e.buttons,...t.buttons},t.buttons.button&&(n.buttons.button={...e.buttons.button,...t.buttons.button}),t.buttons.primaryButton&&(n.buttons.primaryButton={...e.buttons.primaryButton,...t.buttons.primaryButton}),t.buttons.tertiaryButton&&(n.buttons.tertiaryButton={...e.buttons.tertiaryButton,...t.buttons.tertiaryButton}),t.buttons.loginButton&&(n.buttons.loginButton={...e.buttons.loginButton,...t.buttons.loginButton})),n}function za(e,t){if(!e)return{};let n={},r=La(t),i=e.overlay?.backgroundColor,a=e.modal?.backgroundColor;if(a||e.textColor||i||e.buttons||e.modal){if(n.colors={},a)n.colors.background=Da(a,t,r.colors.background.overlay,i);else if(i){let e=r.colors.background;n.colors.background={...e,overlay:i}}else n.colors.background=r.colors.background;e.textColor&&(n.colors.text=Oa(e.textColor,t)),a?n.colors.border=ka(a,t,e.modal?.border):e.modal?.border&&(n.colors.border={...r.colors.border,modal:e.modal.border}),n.colors.error=r.colors.error,n.colors.success=r.colors.success,n.colors.warning=r.colors.warning}let o=e.modal?.rounded??e.modal?.borderRadius;if(o){n.borders||={...r.borders};let e=typeof o==`number`?`${o}px`:o;n.borders.radius={...r.borders.radius,...n.borders.radius,modal:e}}if(n.modal={rounded:e.modal?.rounded??r.modal.rounded},n.effects={},e.effects){let t=e.effects.glass?.enabled===void 0?!0:e.effects.glass.enabled,i=Pa(e.effects.glass?.intensity||`medium`,t),o=e.overlay?.blur||e.effects.backdropFilter?.overlay,s=e.modal?.backdropFilter||e.effects.backdropFilter?.modal||(t?i.blur:r.effects.backdropFilter.modal);if(n.effects.backdropFilter={modal:s,overlay:o||(t?i.blur:r.effects.backdropFilter.overlay),stickyHeader:t?i.blur:r.effects.backdropFilter.stickyHeader},n.effects.glassOpacity={modal:i.modalOpacity,overlay:i.overlayOpacity,stickyHeader:i.stickyHeaderOpacity},t)if(n.colors||={},n.colors.background||(n.colors.background={...r.colors.background}),a)n.colors.background.modal=Ea(a,i.modalOpacity),n.colors.background.stickyHeader=Ea(a,i.stickyHeaderOpacity);else{let e=r.colors.background.modal,t=r.colors.background.stickyHeader;n.colors.background.modal=Ea(e,i.modalOpacity),n.colors.background.stickyHeader=Ea(t,i.stickyHeaderOpacity)}}else{let t=e.overlay?.blur;n.effects.backdropFilter={...r.effects.backdropFilter,modal:e.modal?.backdropFilter||r.effects.backdropFilter.modal,overlay:t||r.effects.backdropFilter.overlay},n.effects.glassOpacity=r.effects.glassOpacity}if(i&&n.colors?.background&&(n.colors.background.overlay=i),e.fonts){n.fonts={};let t=r.fonts;e.fonts.family?(n.fonts.body=e.fonts.family,n.fonts.heading=e.fonts.family):(n.fonts.body=e.fonts.body??t.body,n.fonts.heading=e.fonts.heading??t.heading),n.fonts.sizes={small:e.fonts.sizes?.small??t.sizes.small,medium:e.fonts.sizes?.medium??t.sizes.medium,large:e.fonts.sizes?.large??t.sizes.large},n.fonts.weights={normal:e.fonts.weights?.normal??t.weights.normal,medium:e.fonts.weights?.medium??t.weights.medium,bold:e.fonts.weights?.bold??t.weights.bold}}return n.buttons={},n.buttons.button=Aa(a,e.textColor,t,e.buttons?.secondaryButton,r),n.buttons.primaryButton=ja(a,e.textColor,t,e.buttons?.primaryButton,r),n.buttons.tertiaryButton=Ma(a,e.textColor,t,e.buttons?.tertiaryButton,r),n.buttons.loginButton=Na(a,e.textColor,t,e.buttons?.loginButton,r),n}function Ba(e,t){if(!e.includes(`rgba`)&&!e.includes(`hsla`))return e;let n=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);if(n){let r=parseInt(n[1],10),i=parseInt(n[2],10),a=parseInt(n[3],10),o=n[4]?parseFloat(n[4]):1;if(o>=.9)return e;let s=t?.9:.91;return`rgba(${r}, ${i}, ${a}, ${Math.min(Math.max(o+.15,s),.91)})`}return e}function Va(e,t){let n={"--vdk-modal-z-index":`10000`,"--vdk-modal-width":`22rem`,"--vdk-modal-backdrop-filter":e.effects.backdropFilter.modal,"--vdk-border-dark-source-card":`1px solid ${e.colors.border.default}`,"--vdk-border-light-source-card":`1px solid ${e.colors.border.default}`,"--vdk-font-family":e.fonts.body,"--vdk-font-size-medium":e.fonts.sizes.medium,"--vdk-font-size-large":e.fonts.sizes.large,"--vdk-font-weight-medium":e.fonts.weights.medium.toString()};return t?(n[`--vdk-color-dark-primary`]=`transparent`,n[`--vdk-color-dark-primary-hover`]=`rgba(255, 255, 255, 0.05)`,n[`--vdk-color-dark-primary-active`]=`rgba(255, 255, 255, 0.1)`,n[`--vdk-color-dark-secondary`]=e.colors.background.modal,n[`--vdk-color-dark-tertiary`]=e.colors.text.primary):(n[`--vdk-color-light-primary`]=`#ffffff`,n[`--vdk-color-light-primary-hover`]=`rgba(245, 245, 245, 0.8)`,n[`--vdk-color-light-primary-active`]=`rgba(240, 240, 240, 0.8)`,n[`--vdk-color-light-secondary`]=e.colors.background.modal,n[`--vdk-color-light-tertiary`]=e.colors.text.primary),n}function Ha(e,t){let n=Ba(e.colors.background.modal,t),r=t?`transparent`:`#ffffff`,i=t?`transparent`:`#ffffff`,a=t?`transparent`:`#ffffff`;return{"--privy-border-radius-sm":e.borders.radius.small,"--privy-border-radius-md":e.borders.radius.medium,"--privy-border-radius-lg":e.borders.radius.large,"--privy-border-radius-full":e.borders.radius.full,"--privy-color-background":n,"--privy-color-background-2":i,"--privy-color-background-3":a,"--privy-color-foreground":e.colors.text.primary,"--privy-color-foreground-2":e.colors.text.primary,"--privy-color-foreground-3":e.colors.text.secondary,"--privy-color-foreground-4":e.colors.text.tertiary,"--privy-color-foreground-accent":t?`#ffffff`:`#1a1a1a`,"--privy-color-accent":r,"--privy-color-accent-light":i,"--privy-color-accent-lightest":a,"--privy-color-accent-dark":i,"--privy-color-accent-darkest":a,"--privy-color-success":e.colors.success,"--privy-color-error":e.colors.error,"--privy-color-error-light":e.colors.error+`33`}}function Ua(){if(typeof document>`u`)return;let e=`vechain-kit-dappkit-button-styles`,t=document.getElementById(e);if(t||(t=document.createElement(`style`),t.id=e,document.head.appendChild(t)),t.textContent=`
|
|
2
2
|
/* DAppKit wallet source buttons - apply loginIn hover style */
|
|
3
3
|
/* Target all button-like elements within DAppKit containers */
|
|
4
4
|
[class*="vdk"] button,
|
|
@@ -110,13 +110,13 @@ import{A as e,B as t,C as n,E as r,H as i,J as a,O as o,Q as s,S as c,U as l,V a
|
|
|
110
110
|
opacity: 0.5 !important;
|
|
111
111
|
}
|
|
112
112
|
`),d.length>0&&(u.textContent=d.join(`
|
|
113
|
-
`))}let Ga=null;function Ka(){return Ga||=new Fn({defaultOptions:{queries:{queryKeyHashFn:Bn,retry:0,staleTime:3e4,refetchOnWindowFocus:!0,refetchOnMount:!0,refetchOnReconnect:!0,refetchInterval:!1,refetchIntervalInBackground:!1}}}),Ga}const qa=({children:e})=>{try{if(V.useContext(In))return q(K,{children:e})}catch(e){console.log(e)}return q(Ln,{client:Ka(),children:e})},Ja=({onClick:e,...t})=>q(lt,{"aria-label":`Back`,icon:q(N,{as:nr,fontSize:`20px`}),size:`sm`,variant:`ghost`,position:`absolute`,borderRadius:`50%`,left:`10px`,top:`10px`,onClick:e,...t}),Ya=({wallet:e,label:t,style:n,showHumanAddress:r=!0})=>{let[i,a]=G(!1),[o,s]=G(!1),c=B(`colors`,`vechain-kit-text-primary`),u=B(`colors`,`vechain-kit-text-secondary`),d=async(e,t)=>{await ie(e)&&(t(!0),setTimeout(()=>{t(!1)},2e3))};return q(z,{w:`full`,justifyContent:`center`,...n,children:J(z,{w:`full`,spacing:4,children:[t&&q(R,{fontSize:`sm`,color:u,children:t}),e?.domain?J(z,{spacing:2,w:`full`,children:[J(ft,{children:[q(pt,{children:q(N,{as:Fr,color:u})}),q(dt,{cursor:`pointer`,value:e.domain,readOnly:!0,fontSize:`sm`,fontWeight:`700`,color:c,onClick:()=>d(e.domain||``,s)}),q(mt,{children:q(N,{color:u,onClick:()=>d(e.domain||``,s),cursor:`pointer`,as:o?er:lr})})]}),J(ft,{children:[q(pt,{children:q(N,{as:Br,color:u})}),q(dt,{cursor:`pointer`,value:r?l(e.address??``,8,7):e.address,readOnly:!0,fontSize:`sm`,fontWeight:`700`,color:c,onClick:()=>d(e.address??``,a)}),q(mt,{children:q(N,{color:u,cursor:`pointer`,onClick:()=>d(e.address??``,a),as:i?er:lr})})]})]}):J(ft,{children:[q(pt,{children:q(N,{as:Br,color:u})}),q(dt,{cursor:`pointer`,value:r?l(e?.address??``,6,4):e?.address,readOnly:!0,fontSize:`sm`,fontWeight:`700`,color:c,onClick:()=>d(e?.address??``,a)}),q(mt,{children:q(N,{color:u,onClick:()=>d(e?.address??``,a),cursor:`pointer`,as:i?er:lr})})]})]})})};var Xa=`2.0.4`;const Za=({...e})=>{let{darkMode:t}=$();return J(M,{w:`full`,justifyContent:`center`,alignItems:`center`,spacing:0,...e,children:[q(fe,{isDark:t,w:`70px`,h:`auto`,opacity:.4,mr:1,ml:`-16px`}),J(ht,{fontSize:`11px`,fontWeight:`500`,opacity:.4,textAlign:`left`,href:`https://github.com/vechain/vechain-kit/releases/tag/${Xa}`,isExternal:!0,pt:`1px`,children:[`v`,Xa]})]})},Z=({children:e})=>{let[t,n]=G(!1),r=Zt(null),{tokens:i}=$u(),a=i?.effects?.backdropFilter?.stickyHeader??`blur(12px)`,o=B(`colors`,`vechain-kit-sticky-header`);return U(()=>{let e=new IntersectionObserver(([e])=>{n(!e.isIntersecting)},{threshold:0});return r.current&&e.observe(r.current),()=>e.disconnect()},[]),J(K,{children:[q(A,{position:`sticky`,top:`0`,left:`0`,w:`full`,borderRadius:`24px 24px 0px 0px`,bg:t?o:`transparent`,backdropFilter:t?a:`none`,style:{WebkitBackdropFilter:t?a:`none`},zIndex:1e3,boxShadow:t?`0px 2px 4px 1px rgb(0 0 0 / 10%)`:`none`,transition:`box-shadow 0.2s ease-in-out`,children:e}),q(`div`,{ref:r,style:{position:`absolute`,top:`25px`}})]})},Qa=({children:e})=>q(A,{position:`sticky`,bottom:`0`,left:`0`,right:`0`,bg:B(`colors`,`vechain-kit-modal`),zIndex:`1000`,p:4,boxShadow:`0px -1px 6px -3px rgb(0 0 0 / 56%)`,transition:`box-shadow 0.2s ease-in-out`,children:e}),$a=({isOpen:e,onClose:t,children:n,size:r=`sm`,isCentered:i=!0,motionPreset:a=`slideInBottom`,closeOnOverlayClick:o=!0,blockScrollOnMount:s=!1,allowExternalFocus:c=!1,backdropFilter:l,isCloseable:u=!0})=>{let[d]=Kt(`(min-width: 768px)`),{portalRootRef:f}=$u(),p=B(`colors`,`vechain-kit-modal`),m=B(`colors`,`vechain-kit-overlay`),{tokens:h}=$u(),g=h?.effects?.backdropFilter?.overlay,_=h?.effects?.backdropFilter?.modal,v=l??g??`blur(3px)`,y=d?{}:{position:`fixed`,bottom:`0`,mb:`0`,maxW:`2xl`,borderRadius:`24px 24px 0px 0px !important`,overflowY:`auto`,overflowX:`hidden`,scrollBehavior:`smooth`};return J(vt,{motionPreset:a,isOpen:e,onClose:t,isCentered:i,size:r,returnFocusOnClose:!1,blockScrollOnMount:s,closeOnOverlayClick:o&&u,preserveScrollBarGap:!0,portalProps:{containerRef:f},trapFocus:!c,autoFocus:!c,children:[q(bt,{bg:m,backdropFilter:v}),q(yt,{role:`dialog`,"aria-modal":!c,bg:p,variant:`vechainKitBase`,sx:{backdropFilter:_,WebkitBackdropFilter:_},...y,children:n})]})},eo=(e,t,n)=>{switch(t){case`eur`:return e/n.eurUsdPrice;case`gbp`:return e/n.gbpUsdPrice;default:return e}},to=(e,t=`en`,n)=>{let r={style:`currency`,minimumFractionDigits:2,maximumFractionDigits:2,currency:n?.currency??`usd`,...n};return new Intl.NumberFormat(xa[t],r).format(e)},no=(e,t)=>to(e,Ca.resolvedLanguage,{notation:`compact`,compactDisplay:`short`,currency:t?.currency??`usd`,...t}),ro=({symbol:e,amount:t,currencyValue:n,currentCurrency:r,isDisabled:i,onClick:a,...o})=>{let c=B(`colors`,`vechain-kit-text-primary`),l=B(`colors`,`vechain-kit-text-secondary`);return J(j,{height:`72px`,variant:`ghost`,justifyContent:`space-between`,isDisabled:i,p:4,w:`100%`,_disabled:{cursor:`not-allowed`,opacity:.5},onClick:a,"data-testid":`asset-${e}`,...o,children:[J(M,{children:[s[e]?V.cloneElement(s[e],{boxSize:`24px`,borderRadius:`full`}):q(ut,{src:p[e],alt:`${e} logo`,boxSize:`24px`,borderRadius:`full`,fallback:q(A,{boxSize:`24px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:q(R,{fontSize:`10px`,fontWeight:`bold`,color:c,children:e.slice(0,3)})})}),q(R,{color:c,children:e})]}),J(z,{align:`flex-end`,spacing:0,children:[J(R,{color:c,children:[t.toLocaleString(void 0,{maximumFractionDigits:2}),` `]}),q(R,{fontSize:`sm`,color:l,"data-testid":`${e}-balance`,children:no(n,{currency:r})})]})]})},io=async e=>{let t=await fetch(`https://auth.privy.io/api/v1/apps/${e}`,{headers:{"privy-app-id":e}});if(!t.ok)throw Error(`Failed to fetch Privy app info`);return t.json()},ao=e=>[`VECHAIN_KIT_PRIVY_APP_INFO`,...Array.isArray(e)?e:[e]],oo=e=>{let t=Array.isArray(e)?e:[e];return X({queryKey:ao(e),queryFn:async()=>{let e=await Promise.all(t.map(e=>io(e)));return Object.fromEntries(e.map((e,n)=>{let r=t[n],i=a.find(e=>e.id===r);return[r,{...e,website:i?.website}]}))},enabled:t.length>0,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},so=async()=>{try{let e=await fetch(`https://status.privy.io/summary.json`);if(!e.ok)throw Error(`Failed to fetch Privy status`);return(await e.json()).page.status??`No data`}catch(e){return console.error(`Error fetching data:`,e),`Error fetching data`}},co=()=>X({queryKey:[`PRIVY_STATUS`],queryFn:so,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60}),lo=e=>[`VECHAIN_KIT_DOMAIN`,e],uo=t=>{let{network:n}=$();return X({queryKey:lo(t),queryFn:async()=>{if(!t)throw Error(`Address or domain is required`);let r=await Zr(t,{networkUrl:n.nodeUrl}),i=e(t);if(!r&&!i)throw Error(`Input must be a valid domain or address`);let a=null,o=null,s=!1;return r?(a=await Gr(t,{networkUrl:n.nodeUrl}),o=t,a&&(s=await Xr(t,a,{networkUrl:n.nodeUrl}))):(o=await Hr(t,{networkUrl:n.nodeUrl}),a=t,o&&(s=await Xr(o,t,{networkUrl:n.nodeUrl}))),{address:a||void 0,domain:o||void 0,isValidAddressOrDomain:r||i,isPrimaryDomain:s}},enabled:!!t&&!!n.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`address or domain is required`||e===`input must be a valid domain or address`)return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},fo=async(e,t,n)=>{let r=vi(fi([`0x571e15b4bbf879cf28e5075190137be8e18500e3d38543bf0cbcdb54e00b02cc`,vi(Si(n))])),i=await e.contracts.load(k(t).vetDomainsContractAddress,oi.abi).read.recordExists(r);if(!i)throw Error(`Failed to get ENS record exists for ${n}`);return i[0]},po=e=>[`VECHAIN_KIT_ENS_RECORD_VE_WORLD_EXISTS`,e],mo=e=>{let t=jn(),{network:n}=$();return X({queryKey:po(e),queryFn:()=>fo(t,n.type,e),enabled:!!e,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},ho=(e,t)=>{let n=zn(),{network:r}=$();return{refresh:async()=>{await Promise.all([n.invalidateQueries({queryKey:Po(e??``,r.type)}),n.invalidateQueries({queryKey:Ro(e,r.type)}),n.invalidateQueries({queryKey:Go(t)})])}}},go=async(e,t,n,r,i,a)=>{await Promise.all([e.invalidateQueries({queryKey:lo(t)}),e.invalidateQueries({queryKey:lo(n)}),e.invalidateQueries({queryKey:po(r)}),e.invalidateQueries({queryKey:Mo(t,`.vet`)}),e.invalidateQueries({queryKey:Mo(t,`.veworld.vet`)}),e.invalidateQueries({queryKey:Ro(n)})]),await Promise.all([e.refetchQueries({queryKey:lo(t)}),e.refetchQueries({queryKey:lo(n)}),e.refetchQueries({queryKey:Mo(t,`.vet`)}),e.refetchQueries({queryKey:Mo(t,`.veworld.vet`)}),e.refetchQueries({queryKey:Po(r+`.`+i,a)}),e.refetchQueries({queryKey:Ro(n)}),e.refetchQueries({queryKey:po(r)}),e.refetchQueries({queryKey:Go(t)})])},_o=ci.createInterface(),vo=si.createInterface(),yo=(e,t,n,r,i)=>{let a=[];if(!e)throw Error(`Invalid subdomain`);let o=`${e}.${t}`;if(a.push({to:k(i.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:vo.encodeFunctionData(`setName`,[``]),comment:`Unsetting your current VeChain nickname of the account ${l(r?.address??``,4,4)}`,abi:vo.getFunction(`setName`)}),n){a.push({to:k(i.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:vo.encodeFunctionData(`setName`,[o]),comment:`Setting your VeChain nickname to ${o}`,abi:vo.getFunction(`setName`)});let e=new en.Interface([`function setAddr(bytes32 node, address addr)`]),t=en.namehash(o);a.push({to:k(i.type).vetDomainsPublicResolverAddress,value:`0x0`,data:e.encodeFunctionData(`setAddr`,[t,r?.address||``]),comment:`Setting the address for ${o} to ${l(r?.address??``,4,4)}`,abi:e.getFunction(`setAddr`)})}else if(xo(t))a.push({to:k(i.type).veWorldSubdomainClaimerContractAddress,value:`0x0`,data:_o.encodeFunctionData(`claim`,[e,k(i.type).vetDomainsPublicResolverAddress]),comment:`Claim VeChain subdomain: ${e}.${t}`,abi:_o.getFunction(`claim`)}),a.push({to:k(i.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:vo.encodeFunctionData(`setName`,[e+`.`+t]),comment:`Set ${e}.${t} as the VeChain nickname of the account ${l(r?.address??``,4,4)}`,abi:vo.getFunction(`setName`)});else throw Error(`This hook only supports .veworld.vet subdomains`);return a},bo=({subdomain:e,domain:t,onSuccess:n,onError:r,alreadyOwned:i=!1})=>{let a=zn(),{account:o}=Q(),{network:s}=$(),{refresh:c}=ho(e+`.`+t,o?.address??``),l=H(()=>yo(e,t,i,o,s),[e,t,i,o,s]),u=H(async()=>{let r=`${e}.${t}`;await go(a,o?.address??``,r,e,t,s.type),c(),n?.()},[n,e,t,a,o,s.type,c]),d=lc({signerAccountAddress:o?.address??``,privyUIOptions:{title:`Sign to claim your VeChain nickname`,description:`Claim ${e}.${t} as your VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:u,onTxFailedOrCancelled:()=>{r?.()}});return{...d,clauses:l,sendTransaction:async()=>d.sendTransaction(l())}},xo=e=>e.endsWith(`veworld.vet`),So=si.createInterface(),Co=(e,t,n,r)=>{let i=[];if(!e)throw Error(`Invalid domain`);if(t){i.push({to:k(r.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:So.encodeFunctionData(`setName`,[e]),comment:`Setting your VeChain nickname to ${e}`,abi:So.getFunction(`setName`)});let t=new en.Interface([`function setAddr(bytes32 node, address addr)`]),a=en.namehash(e);i.push({to:k(r.type).vetDomainsPublicResolverAddress,value:`0x0`,data:t.encodeFunctionData(`setAddr`,[a,n?.address||``]),comment:`Setting the address for ${e} to ${l(n?.address??``,4,4)}`,abi:t.getFunction(`setAddr`)})}else throw Error(`Primary .vet domains are not supported yet`);return i},wo=({domain:e,onSuccess:t,onError:n,alreadyOwned:r=!1})=>{let{network:i}=$(),a=zn(),{account:o}=Q(),{refresh:s}=ho(e,o?.address??``),c=H(()=>Co(e,r,o,i),[e,r,o,i]),l=H(async()=>{await go(a,o?.address??``,e,``,e.endsWith(`.vet`)?e:`${e}.vet`,i.type),s(),t?.()},[t,e,a,o,i.type,s]),u=lc({signerAccountAddress:o?.address??``,privyUIOptions:{title:`Sign to claim your VeChain nickname`,description:`Claim ${e} as your VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:l,onTxFailedOrCancelled:n});return{...u,clauses:c,sendTransaction:async()=>u.sendTransaction(c())}},To=e=>[`VECHAIN_KIT_DOMAIN`,e,`IS_DOMAIN_PROTECTED`],Eo=sn.ofAbi(ci.abi),Do=async(e,t,n)=>{let r=k(t).veWorldSubdomainClaimerContractAddress;return(await e.contracts.load(r,Eo.abi).read.isDomainProtected(n))[0]},Oo=(e,t=!0)=>{let n=jn(),{network:r}=$();return X({queryKey:To(e),queryFn:()=>Do(n,r.type,e),enabled:!!e&&t&&!!r.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},ko=wi.object({name:wi.string()}),Ao=wi.object({domains:wi.array(ko)}),jo=async(e,t,n)=>{if(!t)throw Error(`Address is required`);let r=k(e).graphQlIndexerUrl,i=`query Registrations {
|
|
113
|
+
`))}let Ga=null;function Ka(){return Ga||=new Fn({defaultOptions:{queries:{queryKeyHashFn:Bn,retry:0,staleTime:3e4,refetchOnWindowFocus:!0,refetchOnMount:!0,refetchOnReconnect:!0,refetchInterval:!1,refetchIntervalInBackground:!1}}}),Ga}const qa=({children:e})=>{try{if(V.useContext(In))return q(K,{children:e})}catch(e){console.log(e)}return q(Ln,{client:Ka(),children:e})},Ja=({onClick:e,...t})=>q(lt,{"aria-label":`Back`,icon:q(N,{as:nr,fontSize:`20px`}),size:`sm`,variant:`ghost`,position:`absolute`,borderRadius:`50%`,left:`10px`,top:`10px`,onClick:e,...t}),Ya=({wallet:e,label:t,style:n,showHumanAddress:r=!0})=>{let[i,a]=G(!1),[o,s]=G(!1),c=B(`colors`,`vechain-kit-text-primary`),u=B(`colors`,`vechain-kit-text-secondary`),d=async(e,t)=>{await ie(e)&&(t(!0),setTimeout(()=>{t(!1)},2e3))};return q(z,{w:`full`,justifyContent:`center`,...n,children:J(z,{w:`full`,spacing:4,children:[t&&q(R,{fontSize:`sm`,color:u,children:t}),e?.domain?J(z,{spacing:2,w:`full`,children:[J(ft,{children:[q(pt,{children:q(N,{as:Fr,color:u})}),q(dt,{cursor:`pointer`,value:e.domain,readOnly:!0,fontSize:`sm`,fontWeight:`700`,color:c,onClick:()=>d(e.domain||``,s)}),q(mt,{children:q(N,{color:u,onClick:()=>d(e.domain||``,s),cursor:`pointer`,as:o?er:lr})})]}),J(ft,{children:[q(pt,{children:q(N,{as:Br,color:u})}),q(dt,{cursor:`pointer`,value:r?l(e.address??``,8,7):e.address,readOnly:!0,fontSize:`sm`,fontWeight:`700`,color:c,onClick:()=>d(e.address??``,a)}),q(mt,{children:q(N,{color:u,cursor:`pointer`,onClick:()=>d(e.address??``,a),as:i?er:lr})})]})]}):J(ft,{children:[q(pt,{children:q(N,{as:Br,color:u})}),q(dt,{cursor:`pointer`,value:r?l(e?.address??``,6,4):e?.address,readOnly:!0,fontSize:`sm`,fontWeight:`700`,color:c,onClick:()=>d(e?.address??``,a)}),q(mt,{children:q(N,{color:u,onClick:()=>d(e?.address??``,a),cursor:`pointer`,as:i?er:lr})})]})]})})};var Xa=`2.1.1`;const Za=({...e})=>{let{darkMode:t}=$();return J(M,{w:`full`,justifyContent:`center`,alignItems:`center`,spacing:0,...e,children:[q(fe,{isDark:t,w:`70px`,h:`auto`,opacity:.4,mr:1,ml:`-16px`}),J(ht,{fontSize:`11px`,fontWeight:`500`,opacity:.4,textAlign:`left`,href:`https://github.com/vechain/vechain-kit/releases/tag/${Xa}`,isExternal:!0,pt:`1px`,children:[`v`,Xa]})]})},Z=({children:e})=>{let[t,n]=G(!1),r=Zt(null),{tokens:i}=ld(),a=i?.effects?.backdropFilter?.stickyHeader??`blur(12px)`,o=B(`colors`,`vechain-kit-sticky-header`);return U(()=>{let e=new IntersectionObserver(([e])=>{n(!e.isIntersecting)},{threshold:0});return r.current&&e.observe(r.current),()=>e.disconnect()},[]),J(K,{children:[q(A,{position:`sticky`,top:`0`,left:`0`,w:`full`,borderRadius:`24px 24px 0px 0px`,bg:t?o:`transparent`,backdropFilter:t?a:`none`,style:{WebkitBackdropFilter:t?a:`none`},zIndex:1e3,boxShadow:t?`0px 2px 4px 1px rgb(0 0 0 / 10%)`:`none`,transition:`box-shadow 0.2s ease-in-out`,children:e}),q(`div`,{ref:r,style:{position:`absolute`,top:`25px`}})]})},Qa=({children:e})=>q(A,{position:`sticky`,bottom:`0`,left:`0`,right:`0`,bg:B(`colors`,`vechain-kit-modal`),zIndex:`1000`,p:4,boxShadow:`0px -1px 6px -3px rgb(0 0 0 / 56%)`,transition:`box-shadow 0.2s ease-in-out`,children:e}),$a=({isOpen:e,onClose:t,children:n,size:r=`sm`,isCentered:i=!0,motionPreset:a=`slideInBottom`,closeOnOverlayClick:o=!0,blockScrollOnMount:s=!1,allowExternalFocus:c=!1,backdropFilter:l,isCloseable:u=!0})=>{let[d]=Kt(`(min-width: 768px)`),{portalRootRef:f}=ld(),p=B(`colors`,`vechain-kit-modal`),m=B(`colors`,`vechain-kit-overlay`),{tokens:h}=ld(),g=h?.effects?.backdropFilter?.overlay,_=h?.effects?.backdropFilter?.modal,v=l??g??`blur(3px)`,y=d?{}:{position:`fixed`,bottom:`0`,mb:`0`,maxW:`2xl`,borderRadius:`24px 24px 0px 0px !important`,overflowY:`auto`,overflowX:`hidden`,scrollBehavior:`smooth`};return J(vt,{motionPreset:a,isOpen:e,onClose:t,isCentered:i,size:r,returnFocusOnClose:!1,blockScrollOnMount:s,closeOnOverlayClick:o&&u,preserveScrollBarGap:!0,portalProps:{containerRef:f},trapFocus:!c,autoFocus:!c,children:[q(bt,{bg:m,backdropFilter:v}),q(yt,{role:`dialog`,"aria-modal":!c,bg:p,variant:`vechainKitBase`,sx:{backdropFilter:_,WebkitBackdropFilter:_},...y,children:n})]})},eo=(e,t,n)=>{switch(t){case`eur`:return e/n.eurUsdPrice;case`gbp`:return e/n.gbpUsdPrice;default:return e}},to=(e,t=`en`,n)=>{let r={style:`currency`,minimumFractionDigits:2,maximumFractionDigits:2,currency:n?.currency??`usd`,...n};return new Intl.NumberFormat(xa[t],r).format(e)},no=(e,t)=>to(e,Ca.resolvedLanguage,{notation:`compact`,compactDisplay:`short`,currency:t?.currency??`usd`,...t}),ro=({symbol:e,amount:t,currencyValue:n,currentCurrency:r,isDisabled:i,onClick:a,...o})=>{let c=B(`colors`,`vechain-kit-text-primary`),l=B(`colors`,`vechain-kit-text-secondary`);return J(j,{height:`72px`,variant:`ghost`,justifyContent:`space-between`,isDisabled:i,p:4,w:`100%`,_disabled:{cursor:`not-allowed`,opacity:.5},onClick:a,"data-testid":`asset-${e}`,...o,children:[J(M,{children:[s[e]?V.cloneElement(s[e],{boxSize:`24px`,borderRadius:`full`}):q(ut,{src:p[e],alt:`${e} logo`,boxSize:`24px`,borderRadius:`full`,fallback:q(A,{boxSize:`24px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:q(R,{fontSize:`10px`,fontWeight:`bold`,color:c,children:e.slice(0,3)})})}),q(R,{color:c,children:e})]}),J(z,{align:`flex-end`,spacing:0,children:[J(R,{color:c,children:[t.toLocaleString(void 0,{maximumFractionDigits:2}),` `]}),q(R,{fontSize:`sm`,color:l,"data-testid":`${e}-balance`,children:no(n,{currency:r})})]})]})},io=async e=>{let t=await fetch(`https://auth.privy.io/api/v1/apps/${e}`,{headers:{"privy-app-id":e}});if(!t.ok)throw Error(`Failed to fetch Privy app info`);return t.json()},ao=e=>[`VECHAIN_KIT_PRIVY_APP_INFO`,...Array.isArray(e)?e:[e]],oo=e=>{let t=Array.isArray(e)?e:[e];return X({queryKey:ao(e),queryFn:async()=>{let e=await Promise.all(t.map(e=>io(e)));return Object.fromEntries(e.map((e,n)=>{let r=t[n],i=a.find(e=>e.id===r);return[r,{...e,website:i?.website}]}))},enabled:t.length>0,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},so=async()=>{try{let e=await fetch(`https://status.privy.io/summary.json`);if(!e.ok)throw Error(`Failed to fetch Privy status`);return(await e.json()).page.status??`No data`}catch(e){return console.error(`Error fetching data:`,e),`Error fetching data`}},co=()=>X({queryKey:[`PRIVY_STATUS`],queryFn:so,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60}),lo=e=>[`VECHAIN_KIT_DOMAIN`,e],uo=t=>{let{network:n}=$();return X({queryKey:lo(t),queryFn:async()=>{if(!t)throw Error(`Address or domain is required`);let r=await Zr(t,{networkUrl:n.nodeUrl}),i=e(t);if(!r&&!i)throw Error(`Input must be a valid domain or address`);let a=null,o=null,s=!1;return r?(a=await Gr(t,{networkUrl:n.nodeUrl}),o=t,a&&(s=await Xr(t,a,{networkUrl:n.nodeUrl}))):(o=await Hr(t,{networkUrl:n.nodeUrl}),a=t,o&&(s=await Xr(o,t,{networkUrl:n.nodeUrl}))),{address:a||void 0,domain:o||void 0,isValidAddressOrDomain:r||i,isPrimaryDomain:s}},enabled:!!t&&!!n.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`address or domain is required`||e===`input must be a valid domain or address`)return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},fo=async(e,t,n)=>{let r=vi(fi([`0x571e15b4bbf879cf28e5075190137be8e18500e3d38543bf0cbcdb54e00b02cc`,vi(Si(n))])),i=await e.contracts.load(k(t).vetDomainsContractAddress,oi.abi).read.recordExists(r);if(!i)throw Error(`Failed to get ENS record exists for ${n}`);return i[0]},po=e=>[`VECHAIN_KIT_ENS_RECORD_VE_WORLD_EXISTS`,e],mo=e=>{let t=jn(),{network:n}=$();return X({queryKey:po(e),queryFn:()=>fo(t,n.type,e),enabled:!!e,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},ho=(e,t)=>{let n=zn(),{network:r}=$();return{refresh:async()=>{await Promise.all([n.invalidateQueries({queryKey:Po(e??``,r.type)}),n.invalidateQueries({queryKey:Ro(e,r.type)}),n.invalidateQueries({queryKey:Go(t)})])}}},go=async(e,t,n,r,i,a)=>{await Promise.all([e.invalidateQueries({queryKey:lo(t)}),e.invalidateQueries({queryKey:lo(n)}),e.invalidateQueries({queryKey:po(r)}),e.invalidateQueries({queryKey:Mo(t,`.vet`)}),e.invalidateQueries({queryKey:Mo(t,`.veworld.vet`)}),e.invalidateQueries({queryKey:Ro(n)})]),await Promise.all([e.refetchQueries({queryKey:lo(t)}),e.refetchQueries({queryKey:lo(n)}),e.refetchQueries({queryKey:Mo(t,`.vet`)}),e.refetchQueries({queryKey:Mo(t,`.veworld.vet`)}),e.refetchQueries({queryKey:Po(r+`.`+i,a)}),e.refetchQueries({queryKey:Ro(n)}),e.refetchQueries({queryKey:po(r)}),e.refetchQueries({queryKey:Go(t)})])},_o=ci.createInterface(),vo=si.createInterface(),yo=(e,t,n,r,i)=>{let a=[];if(!e)throw Error(`Invalid subdomain`);let o=`${e}.${t}`;if(a.push({to:k(i.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:vo.encodeFunctionData(`setName`,[``]),comment:`Unsetting your current VeChain nickname of the account ${l(r?.address??``,4,4)}`,abi:vo.getFunction(`setName`)}),n){a.push({to:k(i.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:vo.encodeFunctionData(`setName`,[o]),comment:`Setting your VeChain nickname to ${o}`,abi:vo.getFunction(`setName`)});let e=new en.Interface([`function setAddr(bytes32 node, address addr)`]),t=en.namehash(o);a.push({to:k(i.type).vetDomainsPublicResolverAddress,value:`0x0`,data:e.encodeFunctionData(`setAddr`,[t,r?.address||``]),comment:`Setting the address for ${o} to ${l(r?.address??``,4,4)}`,abi:e.getFunction(`setAddr`)})}else if(xo(t))a.push({to:k(i.type).veWorldSubdomainClaimerContractAddress,value:`0x0`,data:_o.encodeFunctionData(`claim`,[e,k(i.type).vetDomainsPublicResolverAddress]),comment:`Claim VeChain subdomain: ${e}.${t}`,abi:_o.getFunction(`claim`)}),a.push({to:k(i.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:vo.encodeFunctionData(`setName`,[e+`.`+t]),comment:`Set ${e}.${t} as the VeChain nickname of the account ${l(r?.address??``,4,4)}`,abi:vo.getFunction(`setName`)});else throw Error(`This hook only supports .veworld.vet subdomains`);return a},bo=({subdomain:e,domain:t,onSuccess:n,onError:r,alreadyOwned:i=!1})=>{let a=zn(),{account:o}=Q(),{network:s}=$(),{refresh:c}=ho(e+`.`+t,o?.address??``),l=H(()=>yo(e,t,i,o,s),[e,t,i,o,s]),u=H(async()=>{let r=`${e}.${t}`;await go(a,o?.address??``,r,e,t,s.type),c(),n?.()},[n,e,t,a,o,s.type,c]),d=cc({signerAccountAddress:o?.address??``,privyUIOptions:{title:`Sign to claim your VeChain nickname`,description:`Claim ${e}.${t} as your VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:u,onTxFailedOrCancelled:()=>{r?.()}});return{...d,clauses:l,sendTransaction:async()=>d.sendTransaction(l())}},xo=e=>e.endsWith(`veworld.vet`),So=si.createInterface(),Co=(e,t,n,r)=>{let i=[];if(!e)throw Error(`Invalid domain`);if(t){i.push({to:k(r.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:So.encodeFunctionData(`setName`,[e]),comment:`Setting your VeChain nickname to ${e}`,abi:So.getFunction(`setName`)});let t=new en.Interface([`function setAddr(bytes32 node, address addr)`]),a=en.namehash(e);i.push({to:k(r.type).vetDomainsPublicResolverAddress,value:`0x0`,data:t.encodeFunctionData(`setAddr`,[a,n?.address||``]),comment:`Setting the address for ${e} to ${l(n?.address??``,4,4)}`,abi:t.getFunction(`setAddr`)})}else throw Error(`Primary .vet domains are not supported yet`);return i},wo=({domain:e,onSuccess:t,onError:n,alreadyOwned:r=!1})=>{let{network:i}=$(),a=zn(),{account:o}=Q(),{refresh:s}=ho(e,o?.address??``),c=H(()=>Co(e,r,o,i),[e,r,o,i]),l=H(async()=>{await go(a,o?.address??``,e,``,e.endsWith(`.vet`)?e:`${e}.vet`,i.type),s(),t?.()},[t,e,a,o,i.type,s]),u=cc({signerAccountAddress:o?.address??``,privyUIOptions:{title:`Sign to claim your VeChain nickname`,description:`Claim ${e} as your VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:l,onTxFailedOrCancelled:n});return{...u,clauses:c,sendTransaction:async()=>u.sendTransaction(c())}},To=e=>[`VECHAIN_KIT_DOMAIN`,e,`IS_DOMAIN_PROTECTED`],Eo=sn.ofAbi(ci.abi),Do=async(e,t,n)=>{let r=k(t).veWorldSubdomainClaimerContractAddress;return(await e.contracts.load(r,Eo.abi).read.isDomainProtected(n))[0]},Oo=(e,t=!0)=>{let n=jn(),{network:r}=$();return X({queryKey:To(e),queryFn:()=>Do(n,r.type,e),enabled:!!e&&t&&!!r.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},ko=wi.object({name:wi.string()}),Ao=wi.object({domains:wi.array(ko)}),jo=async(e,t,n)=>{if(!t)throw Error(`Address is required`);let r=k(e).graphQlIndexerUrl,i=`query Registrations {
|
|
114
114
|
domains(
|
|
115
115
|
where: ${n?`{owner: "${t.toLowerCase()}", parent_: {name: "${n}"}}`:`{owner: "${t.toLowerCase()}"}`}
|
|
116
116
|
) {
|
|
117
117
|
name
|
|
118
118
|
}
|
|
119
|
-
}`,a=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({operationName:`Registrations`,query:i,extensions:{}})});if(!a.ok)throw Error(`Failed to fetch domains`);let o=await a.json();return o.data&&o.data.domains&&(o.data.domains=o.data.domains.filter(e=>!e.name.endsWith(`addr.reverse`))),Ao.parse(o.data)},Mo=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,e,t],No=(e,t)=>{let{network:n}=$();return X({queryKey:Mo(e,t),queryFn:()=>jo(n.type,e,t),enabled:!!e&&!!n.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`address is required`)return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},Po=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR`,e,t],Fo=e=>{let{network:t}=$();return X({queryKey:Po(e??``,t.type),queryFn:async()=>e?Ur(e,{networkUrl:t.nodeUrl}):null,enabled:!!e&&!!t.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},Io=new $t([`function resolver(bytes32 node) returns (address resolverAddress)`,`function text(bytes32 node, string key) view returns (string)`]),Lo=async(e,t,n)=>{if(!n)return{};let r=tn(n);try{let[{data:n,reverted:i}]=await(await fetch(`${e}/accounts/*`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:k(t).vetDomainsContractAddress,data:Io.encodeFunctionData(`resolver`,[r])}]})})).json();if(i)return{};let{resolverAddress:a}=Io.decodeFunctionResult(`resolver`,n);return(await(await fetch(`${e}/accounts/*`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:le.map(e=>({to:a,data:Io.encodeFunctionData(`text`,[r,e])}))})})).json()).reduce((e,{data:t,reverted:n},r)=>{if(!n&&t&&t!==`0x`)try{let n=Io.decodeFunctionResult(`text`,t)[0];n&&(e[le[r]]=n)}catch(e){console.error(`Failed to decode text record for ${le[r]}:`,e)}return e},{})}catch(e){throw console.error(`Error fetching text records:`,e),e}},Ro=(e,t)=>[`VECHAIN_KIT_TEXT_RECORDS`,e,t],zo=e=>{let{network:t}=$(),n=t.nodeUrl??k(t.type).nodeUrl;return X({queryKey:Ro(e,t.type),queryFn:()=>Lo(n,t.type,e),enabled:!!e&&!!t.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},Bo=new $t([`function resolver(bytes32 node) returns (address resolverAddress)`,`function setText(bytes32 node, string key, string value) external`]),Vo=(e,t)=>{let n=[];for(let{domain:r,key:i,value:a}of t){if(!r)throw Error(`Domain is required`);if(!e)throw Error(`Resolver address is required`);let t=tn(r);n.push({to:e,data:Bo.encodeFunctionData(`setText`,[t,i,a]),value:`0`,comment:`Update ${i} record`})}return n},Ho=({onSuccess:e,onError:t,signerAccountAddress:n,resolverAddress:r}={})=>{let i=H(e=>{if(!r)throw Error(`Resolver address is required`);return Vo(r,e)},[r]),a=lc({signerAccountAddress:n,onTxConfirmed:async()=>{await e?.()},onTxFailedOrCancelled:async()=>{await t?.()},privyUIOptions:{title:`Update Profile Information`,description:`Update the profile information associated with your domain`,buttonText:`Sign to continue`}});return{...a,clauses:i,sendTransaction:async e=>a.sendTransaction(i(e))}},Uo=e=>[`VECHAIN_KIT`,`RESOLVER_ADDRESS`,e],Wo=e=>{let{network:t}=$();return $d({address:k(t.type).vetDomainsContractAddress,abi:ai.abi,method:`resolver`,args:[e?yi(e):`0x`],queryOptions:{select:e=>e[0],enabled:!!e}})},Go=e=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR_OF_ADDRESS`,e],Ko=e=>{let{network:t}=$();return X({queryKey:Go(e),queryFn:async()=>{if(!e||!t.nodeUrl)return i(e??``);let n=await Hr(e,{networkUrl:t.nodeUrl});return n&&await Ur(n,{networkUrl:t.nodeUrl})||i(e??``)},enabled:!!e&&!!t.nodeUrl,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},qo=new $t([`function resolver(bytes32 node) returns (address resolverAddress)`,`function text(bytes32 node, string key) returns (string avatar)`]),Jo=new $t([`function tokenURI(uint256 tokenId) view returns (string)`,`function uri(uint256 id) view returns (string)`]),Yo=async(e,t,n)=>{if(!n)throw Error(`Name is required`);let r=tn(n);try{let[{data:n,reverted:i}]=await(await fetch(`${t}/accounts/*`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:k(e).vetDomainsContractAddress,data:qo.encodeFunctionData(`resolver`,[r])}]})})).json();if(i)return null;let{resolverAddress:a}=qo.decodeFunctionResult(`resolver`,n),[{data:o,reverted:s}]=await(await fetch(`${t}/accounts/*`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:a,data:qo.encodeFunctionData(`text`,[r,`avatar`])}]})})).json();if(s||o===`0x`)return null;try{let{avatar:n}=qo.decodeFunctionResult(`text`,o),r=n===``?null:n;return r?Zo(r,e,t):null}catch(e){return console.error(`Failed to decode avatar data:`,e),null}}catch(e){throw console.error(`Error fetching avatar using legacy API:`,e),e}},Xo=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR`,`LEGACY`,e,t];async function Zo(e,t,n){try{if(e.startsWith(`http`)||e.startsWith(`ipfs://`)||e.startsWith(`ar://`))return x(e,t)||null;let r=e.match(/eip155:(\d+)\/(?:erc721|erc1155):([^/]+)\/(\d+)/);if(r){let[,i,a,o]=r,s=e.includes(`erc1155`);if(!i||!a||o===void 0)return null;let c=[{to:a,data:Jo.encodeFunctionData(s?`uri`:`tokenURI`,[BigInt(o||0)])}],[{data:l,reverted:u}]=await fetch(`${n}/accounts/*`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:c})}).then(e=>e.json());if(u)return console.error(`Failed to fetch tokenURI`),null;let d=``;try{d=Jo.decodeFunctionResult(s?`uri`:`tokenURI`,l)[0]}catch(e){console.error(`Failed to decode avatar data:`,e),d=an(l)}d=x(d,t)||d,s&&(d=d.replace(`{id}`,on(rn(BigInt(o||0)),32).slice(2)));let f=await fetch(d);if(!f.ok)return console.error(`Failed to fetch metadata`),null;let p=await f.json(),m=p.image||p.image_url||p.image_data;return m?x(m,t)||m:(console.error(`No image URL in metadata`),null)}return null}catch(e){return console.error(`Error parsing avatar record:`,e),null}}const Qo=e=>{let{network:t}=$(),n=t.nodeUrl??k(t.type).nodeUrl;return X({queryKey:Xo(e??``,t.type),queryFn:async()=>e?Yo(t.type,n,e):null,enabled:!!e&&!!n&&!!t.type})},$o=si.createInterface(),es=(e,t)=>{let n=[];return n.push({to:k(t.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:$o.encodeFunctionData(`setName`,[``]),comment:`Unsetting your current VeChain nickname of the account ${l(e?.address??``,4,4)}`,abi:$o.getFunction(`setName`)}),n},ts=({onSuccess:e,onError:t})=>{let n=zn(),{account:r}=Q(),{network:i}=$(),a=H(()=>es(r,i),[r,i]),o=H(async()=>{await go(n,r?.address??``,``,``,``,i.type),e?.()},[e,n,r,i.type]),s=lc({signerAccountAddress:r?.address??``,privyUIOptions:{title:`Sign to unset your VeChain nickname`,description:`Unset your current VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:o,onTxFailedOrCancelled:t});return{...s,clauses:a,sendTransaction:async()=>s.sendTransaction(a())}},ns=e=>{let{network:t}=$(),n=k(t.type),{data:r,isLoading:i}=sf(e),{data:a,isLoading:o}=Ss(e),{data:s,isLoading:c}=Os(e),{data:l,isLoading:u}=Es(n.veDelegateTokenContractAddress,e),{data:d,isLoading:f}=Es(n.gloDollarContractAddress,e),p=ws(e),m=p.map(e=>e.data).filter(Boolean),h=p.some(e=>e.isLoading);return{balances:W(()=>{if(!e)return[];let t={vet:`0x`,vtho:n.vthoContractAddress,b3tr:n.b3trContractAddress,vot3:n.vot3ContractAddress,veDelegate:n.veDelegate,USDGLO:n.gloDollarContractAddress},i=[{address:t.vet,symbol:`VET`,balance:r?.balance||`0`},{address:t.vtho,symbol:`VTHO`,balance:r?.energy||`0`},{address:t.b3tr,symbol:`B3TR`,balance:a?.scaled??`0`},{address:t.vot3,symbol:`VOT3`,balance:s?.scaled??`0`},{address:t.veDelegate,symbol:`veDelegate`,balance:l?.scaled??`0`},{address:t.USDGLO,symbol:`USDGLO`,balance:d?.scaled??`0`}],o=m.map(e=>({address:e?.address||``,symbol:e?.symbol||``,balance:e?.scaled||`0`}));return[...i,...o]},[e,r,a,s,l,d,m,t.type]),isLoading:i||o||c||u||f||h}},rs={B3TR:`0x623374722d757364000000000000000000000000000000000000000000000000`,VET:`0x7665742d75736400000000000000000000000000000000000000000000000000`,VTHO:`0x7674686f2d757364000000000000000000000000000000000000000000000000`,GBP:`0x6762702d75736400000000000000000000000000000000000000000000000000`,EUR:`0x657572742d757364000000000000000000000000000000000000000000000000`},is=async(e,t,n)=>{let r=await e.contracts.load(k(n).oracleContractAddress,$r.abi).read.getLatestValue(rs[t]);if(!r)throw Error(`Failed to get price of ${t}`);return new Qt(r[0].toString()).div(0xe8d4a51000).toNumber()},as=e=>[`VECHAIN_KIT_PRICE`,e],os=e=>{let t=jn(),{network:n}=$();return X({queryKey:as(e),queryFn:async()=>is(t,e,n.type),enabled:!!t&&!!n.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},ss=()=>{let{network:e}=$(),t=k(e.type),{data:n,isLoading:r}=os(`VET`),{data:i,isLoading:a}=os(`VTHO`),{data:o,isLoading:s}=os(`B3TR`),{data:c,isLoading:l}=os(`EUR`),{data:u,isLoading:d}=os(`GBP`);return{prices:W(()=>{let e={vet:`0x`,vtho:t.vthoContractAddress,b3tr:t.b3trContractAddress,vot3:t.vot3ContractAddress,veDelegate:t.veDelegate,USDGLO:t.gloDollarContractAddress};return{[e.vet]:n||0,[e.vtho]:i||0,[e.b3tr]:o||0,[e.vot3]:o||0,[e.veDelegate]:o||0,[e.USDGLO]:1}},[n,i,o,t.vthoContractAddress,t.b3trContractAddress,t.vot3ContractAddress,t.veDelegate,t.gloDollarContractAddress]),exchangeRates:W(()=>({eurUsdPrice:c||1,gbpUsdPrice:u||1}),[c,u]),isLoading:r||a||s||l||d}},cs=`vechain_kit_currency`,ls=[`usd`,`eur`,`gbp`],us=()=>{let{defaultCurrency:e=`usd`}=$(),[t,n]=G(()=>{try{return w(cs)||e}catch(t){return console.error(t),e}});return U(()=>{h(cs,t)},[t]),{currentCurrency:t,allCurrencies:ls,changeCurrency:e=>{if(!ls.includes(e)){console.error(`Invalid currency: ${e}`);return}n(e)}}},ds=({address:e=``})=>{let{balances:t,isLoading:n}=ns(e),{prices:r,exchangeRates:i,isLoading:a}=ss(),{currentCurrency:o}=us(),s=W(()=>t.map(e=>{let t=r[e.address]||0,n=Number(e.balance)*t,a=eo(n,o,i);return{...e,priceUsd:t,valueUsd:n,valueInCurrency:a}}),[t,r,o,i]),c=W(()=>[...s].sort((e,t)=>t.valueInCurrency-e.valueInCurrency),[s]);return{tokens:s,sortedTokens:c,tokensWithBalance:W(()=>c.filter(e=>Number(e.balance)>0),[c]),isLoading:n||a}},fs=({address:e=``})=>{let{tokensWithBalance:t,isLoading:n}=ds({address:e}),{currentCurrency:r}=us(),i=W(()=>t.reduce((e,t)=>e+t.valueInCurrency,0),[t]);return{totalBalanceInCurrency:i,totalBalanceUsd:W(()=>t.reduce((e,t)=>e+t.valueUsd,0),[t]),formattedBalance:W(()=>no(i,{currency:r}),[i,r]),isLoading:n,hasAnyBalance:t.length>0}},ps=di.abi,ms=`currentRoundId`,hs=e=>Zd({abi:ps,address:e,method:ms}),gs=()=>{let{network:e}=$(),t=k(e.type).xAllocationVotingContractAddress;return $d({abi:ps,address:t,method:ms,args:[],queryOptions:{select:e=>e[0].toString()}})},_s=async(e,t)=>Jr(e,{networkUrl:t}),vs=e=>[`VECHAIN_KIT_CUSTOM_TOKEN_INFO`,e],ys=e=>{let{network:t}=$();return X({queryKey:vs(e),queryFn:async()=>{if(!e)throw Error(`Token address is required`);if(!t.nodeUrl)throw Error(`Network node URL is required`);return _s(e,t.nodeUrl)},enabled:!!t.type&&!!e,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`token address is required`||e===`network node url is required`)return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},bs=()=>{let[e,t]=fp(dp.CUSTOM_TOKENS,[]),{network:n}=$(),r=async r=>{if(!a(r)&&!s(r)){if(!n.nodeUrl)throw Error(`Network node URL is required`);let i={...await _s(r,n.nodeUrl),address:r};t([...e,i])}},i=n=>{t(e.filter(e=>e.address!==n))},a=t=>e.some(e=>o(e.address,t)),s=e=>{let t={vet:`0x`,vtho:k(n.type).vthoContractAddress,b3tr:k(n.type).b3trContractAddress,vot3:k(n.type).vot3ContractAddress,veDelegate:k(n.type).veDelegate};return Object.values(t).includes(e)};return{customTokens:e,addToken:r,removeToken:i,isTokenIncluded:a,isDefaultToken:s}},xs=e=>[`VEBETTERDAO_BALANCE`,e,`B3TR`],Ss=e=>{let{network:t}=$();return X({queryKey:xs(e),queryFn:async()=>{if(!e)throw Error(`Address is required`);let n=await Wr(e,{networkUrl:t.nodeUrl});if(!n)throw Error(`Failed to get b3tr balance`);let r=n[0];return u(r)},enabled:!!e&&!!t.type})},Cs=(e,t)=>[`VECHAIN_KIT_BALANCE`,t,`CUSTOM_TOKEN`,e],ws=e=>{let{network:t}=$(),{customTokens:n}=bs();return Rn({queries:n.map(n=>({queryKey:Cs(n.address,e),queryFn:async()=>{if(!n.address)throw Error(`Token address is required`);if(!e)throw Error(`Address is required`);if(!t.nodeUrl)throw Error(`Network node URL is required`);let r=await Kr(n.address,e,{networkUrl:t.nodeUrl});if(!r)throw Error(`Failed to get token balance`);let i=u(r[0]);return{...n,...i}}}))})},Ts=(e,t)=>[`VECHAIN_KIT`,`BALANCE`,`ERC20`,e,t],Es=(e,t)=>{let{network:n}=$();return X({queryKey:Ts(e,t),queryFn:async()=>{if(!t)throw Error(`Address is required`);let r=await Kr(e,t,{networkUrl:n.nodeUrl});if(!r)throw Error(`Failed to get vot3 balance`);let i=r[0];return u(i)},enabled:!!t&&!!n.type})},Ds=e=>[`VEBETTERDAO_BALANCE`,e,`VOT3`],Os=e=>{let{network:t}=$();return X({queryKey:Ds(e),queryFn:async()=>{if(!e)throw Error(`Address is required`);let n=await Yr(e,{networkUrl:t.nodeUrl});if(!n)throw Error(`Failed to get vot3 balance`);let r=n[0];return u(r)},enabled:!!e&&!!t.type})},ks=(e,t)=>[`VECHAIN_KIT`,`IS_PERSON`,e,t],As=e=>{let{network:t}=$();return X({queryKey:ks(e??``,t.type),queryFn:async()=>{if(!e)throw Error(`User address is required`);return qr(e,{networkUrl:t.nodeUrl})},enabled:!!e&&!!t.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`user address is required`)return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},js=di.abi,Ms=`getAppsOfRound`,Ns=(e,t)=>Qd({abi:js,address:k(t).xAllocationVotingContractAddress,method:Ms,args:[BigInt(e??0)]}),Ps=e=>{let{network:t}=$(),n=k(t.type).xAllocationVotingContractAddress;return $d({abi:js,address:n,method:Ms,args:[BigInt(e??0)],queryOptions:{enabled:!!e,select:e=>e[0].map(e=>({id:e.id.toString(),teamWalletAddress:e.teamWalletAddress,name:e.name,metadataURI:e.metadataURI,createdAtTimestamp:e.createdAtTimestamp.toString()}))}})},Fs=ui.abi,Is=e=>[`VECHAIN_KIT`,`XApps`,`Shares`,e],Ls=(e,t)=>{let n=jn(),{network:r}=$(),i=k(r.type).xAllocationPoolContractAddress;return X({queryKey:Is(t),queryFn:async()=>(await re({thor:n,calls:e.map(e=>({abi:Fs,functionName:`getAppShares`,address:i,args:[t,e]}))})).map((t,n)=>({app:e[n],share:Number(t[0]||0)/100,unallocatedShare:Number(t[1]||0)/100})),enabled:!!t&&!!e.length})},Rs=e=>{let{data:t}=Ps(e),n=Ls(t?.map(e=>e.id)??[],e);return{data:W(()=>n.data?.map(e=>({percentage:e.share+e.unallocatedShare,id:t?.find(t=>t.id===e.app)?.id??``,app:t?.find(t=>t.id===e.app)??{}})).sort((e,t)=>Number(t.percentage)-Number(e.percentage))??[],[n.data,t]),isLoading:n.isLoading}},zs=({error:e,mobileBrowserPopupMessage:t=`Mobile browser blocked the window. Please try again.`,rejectedMessage:n=`Request was cancelled.`,defaultMessage:r=`Operation failed`})=>{let i=e?.message;return Pi&&i&&!g(i)?Error(t):i&&g(i)?Error(n):e instanceof Error?e:Error(r)},Bs=mi({id:`1176455790972829965191905223412607679856028701100105089447013101863`,name:`Vechain`,nativeCurrency:{name:`VeChain`,symbol:`VET`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.vechain.org`]}},blockExplorers:{default:{name:`Vechain Explorer`,url:`https://explore.vechain.org`},vechainStats:{name:`Vechain Stats`,url:`https://vechainstats.com`}}}),Vs=()=>Ni({id:O,name:`VeChain`,iconUrl:`https://imagedelivery.net/oHBRUd2clqykxgDWmeAyLg/661dd77c-2f9d-40e7-baa1-f4e24fd7bf00/icon`,smartWalletMode:!1}),Hs=({privyEcosystemAppIDS:e,children:t})=>q(Ti,{config:Zt(Ei({chains:[Bs],ssr:!0,connectors:[Vs(),...e.map(e=>Ni({id:e,name:``,iconUrl:``}))],transports:{[Bs.id]:Di()},multiInjectedProviderDiscovery:!1})).current,children:t}),Us=()=>{let{connectAsync:e,connectors:t}=ki(),{signTypedDataAsync:n}=Mi(),{signMessageAsync:r}=ji(),{disconnectAsync:i}=Ai(),{isConnected:a}=Oi(),[o,s]=G(!1),[c,l]=G(null),u=H(async()=>{try{a&&(await i(),y()&&window.dispatchEvent(new Event(`wallet_disconnected`)))}catch(e){throw console.error(`Error during logout:`,e),e}},[i,a]);return{login:H(async n=>{try{s(!0),l(null);let r=t.find(e=>e.id===(n||O));if(!r)throw Error(`Connector not found`);return await e({connector:r})}catch(e){throw l(e),e}finally{s(!1)}},[e,t]),logout:u,signMessage:H(async e=>{try{return await r({message:e})}catch(e){throw zs({error:e,mobileBrowserPopupMessage:`Your mobile browser blocked the signing window. Please click 'Try again' to open the signing window or change your browser settings.`,rejectedMessage:`Signing request was cancelled.`,defaultMessage:`An unexpected issue occurred while signing a message. Please try again or contact support.`})}},[r]),signTypedData:H(async e=>{try{return await n(e)}catch(e){throw zs({error:e,mobileBrowserPopupMessage:`Your mobile browser blocked the signing window. Please click 'Try again' to open the signing window or change your browser settings.`,rejectedMessage:`Signing request was cancelled.`,defaultMessage:`An unexpected issue occurred while signing typed data. Please try again or contact support.`})}},[n]),isConnecting:o,connectionError:c}},Ws=(e,t)=>{let{data:n,isLoading:r}=uo(e??``),{data:i,isLoading:a}=Ko(e??``),{data:o,isLoading:s}=zo(n?.domain??``),c=o?.header?x(o.header,t):null;return{domain:n?.domain,image:i,records:{...o,header:c},isLoading:r||a||s}},Q=()=>{let{address:e,isConnected:t,isConnecting:n,isReconnecting:r}=Oi(),{logout:i}=Us(),{loading:a}=xn({}),{feeDelegation:s,network:c,privy:l}=$(),{user:u,authenticated:d,logout:f,ready:p}=Tn(),{data:m}=Gf(),{account:h,disconnect:g}=Mn(),{getConnectionCache:_,clearConnectionCache:v}=Ud(),b=_(),x=tf(),S=!!h,C=d&&!!u,w=C||t,ee=C&&l?.appId===O||t&&b?.ecosystemApp?.appId===O,T=n||r||a||!p,[E,D]=G(!1),te=t?{type:`privy-cross-app`,displayName:`Ecosystem`}:S?{type:`wallet`,displayName:`Wallet`}:{type:`privy`,displayName:`Social Login`};U(()=>{let e=S||C||t;E!==e&&(D(e),e||(v(),y()&&window.dispatchEvent(new Event(`wallet_disconnected`))))},[S,C,t,v,E]);let ne=u?.linkedAccounts?.find(e=>e.type===`wallet`&&e.connectorType===`embedded`)?.address,re=S?h:t?e:ne,{data:ie}=jf(re),ae=S?h:ie?.address,oe=Ws(ae??``,c.type),se=Ws(re??``,c.type),k=Ws(ie?.address??``,c.type),ce=ae?{address:ae,domain:oe.domain,image:oe.image,isLoadingMetadata:oe.isLoading,metadata:oe.records}:null,le=re?{address:re,domain:se.domain,image:se.image,isLoadingMetadata:se.isLoading,metadata:se.records}:null,{data:ue}=yf(ie?.address??``,le?.address??``),de=!!ie?.address&&!!ce?.address&&o(ie?.address,ce?.address),fe=H(async()=>{try{D(!1),S?g():C?await f():t&&await i(),v(),y()&&window.dispatchEvent(new Event(`wallet_disconnected`))}catch(e){console.error(`Error during disconnect:`,e)}},[S,g,C,f,t,i,v]);return{account:ce,smartAccount:{address:ie?.address??``,domain:k.domain,image:k.image,isDeployed:ie?.isDeployed??!1,isActive:de,version:ue?.version??null,isLoadingMetadata:k.isLoading,metadata:k.records},connectedWallet:le,privyUser:u,connection:{isLoading:T,isConnected:E,isConnectedWithSocialLogin:C,isConnectedWithDappKit:S,isConnectedWithCrossApp:t,isConnectedWithPrivy:w,isConnectedWithVeChain:ee,source:te,isInAppBrowser:(y()&&window.vechain&&window.vechain.isInAppBrowser)??!1,nodeUrl:x,delegatorUrl:s?.delegatorUrl,chainId:m,network:c.type},disconnect:fe}},Gs=()=>{let e=zn(),{account:t}=Q();return{refresh:async()=>{let n=t?.address??``;await Promise.all([e.invalidateQueries({queryKey:[`VECHAIN_KIT_BALANCE`,n]}),e.invalidateQueries({queryKey:[`VECHAIN_KIT_PRICE`]})])}}},Ks=async(e,t)=>{let n=x(e,t)||``,r=await fetch(n,{signal:AbortSignal.timeout(2e4)});if(!r.ok)throw Error(`HTTP error! status: ${r.status}`);return await r.json()},qs=li.abi,Js=e=>{let t=jn(),{network:n}=$();return X({queryKey:[`xAppMetaData`,e],queryFn:async()=>{let r=k(n.type).x2EarnAppsContractAddress,i=t.contracts.load(r,qs),[a]=await i.read.app(e),o=a.metadataURI||``,[s]=await i.read.baseURI();return await Ks(`${s}${o}`,n.type)}})},Ys=async(e,t,n=!1)=>{if(!t)throw Error(`No URI provided`);let r=x(t,e);if(!r)throw Error(`Invalid URI`);let i=await(await fetch(r,{headers:{"X-Project-Id":`vechain-kit`}})).text();return n?JSON.parse(i):i},Xs=(e,t)=>[`VECHAIN_KIT`,`IPFS_METADATA`,e,t],Zs=(e,t=!1)=>{let{network:n}=$();return X({queryKey:Xs(n.type,e),queryFn:()=>Ys(n.type,e,t),enabled:!!e&&!!n.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`no uri provided`||e===`invalid uri`)return!1}return e<2},staleTime:1/0})},Qs=1024*1024*10,$s=async(e,t)=>{if(!t)throw Error(`IPFS URI is required`);let n=await fetch(x(t,e)??``,{headers:{"X-Project-Id":`vechain-kit`}});if(!n.ok)throw Error(`HTTP error! status: ${n.status}`);let r=await n.blob();if(![`image/jpeg`,`image/jpg`,`image/png`,`image/gif`,`image/bmp`,`image/tiff`,`image/webp`,`image/svg+xml`].includes(r.type))throw Error(`Unsupported MIME type: ${r.type}`);if(r.size>Qs)throw Error(`Image size exceeds maximum allowed size`);return new Promise((e,t)=>{let n=new FileReader;n.readAsDataURL(r),n.onloadend=()=>{e({image:n.result,mime:r.type,mediaType:b(r.type)})},n.onerror=()=>{t(Error(`Error occurred while reading blob.`))}})},ec=(e,t)=>[`VECHAIN_KIT`,`IPFS_IMAGE`,e,t],tc=e=>{let{network:t}=$();return X({queryKey:ec(t.type,e),queryFn:()=>$s(t.type,e),enabled:!!e&&!!t.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`ipfs uri is required`)return!1}return e<2},staleTime:1/0})},nc=e=>{let{network:t}=$();return Rn({queries:e.map(e=>({queryKey:ec(t.type,e),queryFn:()=>$s(t.type,e),enabled:!!e&&!!t.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`ipfs uri is required`)return!1}return e<2},staleTime:1/0}))})},rc=(e,t=!1)=>{let{network:n}=$();return Rn({queries:e.map(e=>({queryKey:Xs(n.type,e),queryFn:async()=>Ys(n.type,e,t),enabled:!!e&&!!n.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`no uri provided`||e===`invalid uri`)return!1}return e<2},staleTime:1/0}))})},ic={maxSizeMB:.4,maxWidthOrHeight:1920,useWebWorker:!0},ac=async e=>{let t=[];try{for(let n of e){let e=await Fi(n.file,ic);t.push(e)}return t}catch(e){throw console.error(`compress error`,e),e}},oc=({compressImages:e,defaultImages:t})=>{let[n,r]=G(t??[]);U(()=>{t&&r(t)},[t]);let[i,a]=G([]),o=H(e=>r(t=>t.filter((t,n)=>n!==e)),[]);return{uploadedImages:n,setUploadedImages:r,onUpload:H(async(t,n=!0)=>{a([]);let i=[];for(let n of t){let t=n;e&&(t=await Fi(n,ic));let r={file:t,image:URL.createObjectURL(n)};i.push(r)}r(e=>[...i,...n?e.filter(e=>!i.some(t=>t.file.name===e.file.name)):[]])},[e]),onRemove:o,invalidDateError:i}},sc=({compressImage:e,defaultImage:t})=>{let[n,r]=G(t);U(()=>{t&&r(t)},[t]);let i=H(()=>r(void 0),[]);return{uploadedImage:n,setUploadedImage:r,onUpload:H(async t=>{let n=t;e&&(n=await Fi(n,ic));let i={file:n,image:URL.createObjectURL(n)};return r(i),i},[e]),onRemove:i}},cc=async(e,t,n,r)=>{let i=await e.transactions.estimateGas(t,n,r);if(i.reverted)throw Error(`Failed to estimate gas`);let a=i?.totalGas??0;return(!a||Number.isNaN(a))&&(a=0),Math.ceil(a)},lc=({signerAccountAddress:e,clauses:t,onTxConfirmed:n,onTxFailedOrCancelled:r,suggestedMaxGas:i,privyUIOptions:a,gasPadding:o})=>{let s=jn(),{signer:c}=Nn(),{connection:l}=Q(),{feeDelegation:u}=$(),d=tf(),f=Jp(),p=H(async(t,n)=>{let r=typeof t==`function`?await t():t??[];if(l.isConnectedWithPrivy)return await f.sendTransaction({txClauses:r,...a,...n});if(!e)throw Error(`signerAccountAddress is required`);let d=0;try{d=await cc(s,[...r],e,{revision:dn.NEXT,...o?{gasPadding:o}:{}})}catch(e){console.error(`Gas estimation failed`,e)}let p=await s.transactions.buildTransactionBody(r,i??d,{isDelegated:u?.delegateAllTransactions}),m=Bi.transactionBodyToTransactionRequestInput(p,e);return c.sendTransaction({...m,maxPriorityFeePerGas:m.maxPriorityFeePerGas?.toString(),maxFeePerGas:m.maxFeePerGas?.toString()})},[e,i,d,f,a]),[m,h]=G(null),[g,_]=G(!1),[v,y]=G(null),b=H(async e=>{if(!e&&!t)throw Error(`clauses are required`);try{h(null),_(!0),y(null),T(void 0),h(await p(e??[],{...a}))}catch(e){y(e&&typeof e==`object`&&`message`in e?e.message:String(e)),r?.(e instanceof Error?e:Error(String(e)))}finally{_(!1)}},[p,t,a]),{data:x,isLoading:S,error:C}=rp(m??``),w=H(async e=>{if(!(!e.reverted||!e.meta.txID))return await s.transactions.getRevertReason(e.meta.txID)},[s]),[ee,T]=G(),E=W(()=>{if(g)return`pending`;if(v)return`error`;if(m){if(S)return`waitingConfirmation`;if(C)return`error`;if(x)return x.reverted?`error`:`success`}return`ready`},[S,v,g,m,x,C]);U(()=>{if(E===`success`||E===`error`){if(v&&!ee){T({type:`UserRejectedError`,reason:v});return}if(x?.reverted&&!ee?.type){(async()=>{let e=await w(x);T({type:`RevertReasonError`,reason:e?`Transaction reverted with: `+e:`Transaction reverted`})})();return}x&&!x.reverted&&n?.()}},[E,x,n,w,v]);let D=H(()=>{h(null),_(!1),y(null),T(void 0)},[]);return{sendTransaction:b,isTransactionPending:W(()=>g||S||E===`pending`||E===`waitingConfirmation`,[g,S,E]),isWaitingForWalletConfirmation:W(()=>E===`pending`,[g,E]),txReceipt:x??null,status:E,resetStatus:D,error:ee}},uc=(e,t)=>{let{account:n}=Q(),{t:r}=Y(),{sendTransaction:i,isTransactionPending:a,isWaitingForWalletConfirmation:o,txReceipt:s,status:c,resetStatus:l,error:u}=lc({signerAccountAddress:n?.address??``,privyUIOptions:{title:r(`ConfirmSwapTitle`,{defaultValue:`Confirm Swap`}),description:r(`ConfirmSwapDescription`,{defaultValue:`Please confirm the swap transaction in your wallet`}),buttonText:r(`Confirm`,{defaultValue:`Confirm`})}});return{executeSwap:H(async()=>{if(!e||!t)throw Error(`Missing swap parameters or quote`);if(!t.aggregator)throw Error(`Aggregator not found for quote from ${t.aggregatorName}`);let n=await t.aggregator.buildSwapTransaction(e,t);if(n.length===0)throw Error(`Failed to build swap transaction`);await i(n)},[e,t,i]),isTransactionPending:a,isWaitingForWalletConfirmation:o,txReceipt:s,status:c,resetStatus:l,error:u}},dc=e=>e===`0x`||e===`0x0000000000000000000000000000000000000000`,fc=()=>BigInt(Math.floor(Date.now()/1e3)+1200),pc=e=>{let t={name:e.name,getIcon:e.getIcon,async getQuote(n,r){let i=[dc(n.fromTokenAddress)?e.wrappedVET:n.fromTokenAddress,dc(n.toTokenAddress)?e.wrappedVET:n.toTokenAddress],a=BigInt(n.amountIn);try{let[o]=await r.contracts.load(e.routerAddress,ii.abi).read.getAmountsOut(a,i),s=Array.isArray(o)?o:[o],c=s[s.length-1];if(!c||c===0n)throw Error(`Output amount is zero or invalid`);if(typeof c!=`bigint`)throw Error(`Output amount is not a valid bigint`);let l=n.slippageTolerance||1,u=c*BigInt(1e4-l*100)/BigInt(1e4);return{aggregatorName:e.name,aggregator:t,outputAmount:c,priceImpact:0,minimumOutputAmount:u,data:{path:i,routerAddress:e.routerAddress}}}catch(n){return console.error(`${e.name} getQuote failed:`,n),{aggregatorName:e.name,aggregator:t,outputAmount:0n,priceImpact:0,minimumOutputAmount:0n,data:{path:i,routerAddress:e.routerAddress}}}},async simulateSwap(e,t,n){try{let r=await this.buildSwapTransaction(e,t);if(r.length===0)return{gasCostVTHO:0,success:!1,error:`Failed to build transaction clauses`};let i=await n.transactions.simulateTransaction(r,{caller:e.userAddress}),a=!1,o,s=2e5;for(let e=0;e<i.length;e++){let t=i[e];if(t.reverted){a=!0,o=t.vmError||`Transaction reverted`;break}s+=t.gasUsed}let c=s/1e5;return a?{gasCostVTHO:0,success:!1,error:o||`Transaction reverted`}:{gasCostVTHO:c,success:!0}}catch(e){return{gasCostVTHO:0,success:!1,error:e instanceof Error?e.message:`Simulation failed`}}},async buildSwapTransaction(t,n){if(!n.data||typeof n.data!=`object`||!(`path`in n.data))throw Error(`Invalid quote data`);let r=fc();if(!n.minimumOutputAmount||n.minimumOutputAmount===0n)throw Error(`Invalid quote: minimumOutputAmount is missing or zero`);let i=n.minimumOutputAmount,a=BigInt(t.amountIn);if(i===0n)throw Error(`Invalid quote: minimumOutputAmount is zero`);let o=dc(t.fromTokenAddress),s=dc(t.toTokenAddress),c=sn.ofAbi(ii.abi),l=[];if(o)l.push(ln.callFunction(cn.of(e.routerAddress),c.getFunction(`swapExactETHForTokens`),[i.toString(),n.data.path,t.userAddress,r.toString()],mn.of(a,pn.wei),{comment:`Swap on ${n.aggregatorName}`}));else{let o=sn.ofAbi(Qr.abi),u=cn.of(t.fromTokenAddress),d=cn.of(e.routerAddress);l.push(ln.callFunction(u,o.getFunction(`approve`),[d.toString(),a.toString()],mn.of(0n,pn.wei),{comment:`Swap on ${n.aggregatorName}`})),s?l.push(ln.callFunction(d,c.getFunction(`swapExactTokensForETH`),[a.toString(),i.toString(),n.data.path,t.userAddress,r.toString()],mn.of(0n,pn.wei),{comment:`Swap on ${n.aggregatorName}`})):l.push(ln.callFunction(d,c.getFunction(`swapExactTokensForTokens`),[a.toString(),i.toString(),n.data.path,t.userAddress,r.toString()],mn.of(0n,pn.wei),{comment:`Swap on ${n.aggregatorName}`}))}return l}};return t},mc={main:{routerAddress:`0xf21Dd7108D93af56FaB07423EfB90F4a3604DA89`,wrappedVET:`0xf9b02b47694fd635A413F16dC7B38aF06Cc16fe5`},test:{routerAddress:Ci,wrappedVET:Ci},solo:{routerAddress:Ci,wrappedVET:Ci}},hc=e=>{let t=mc[e]??mc.main;return pc({name:`BetterSwap.io`,routerAddress:t.routerAddress,wrappedVET:t.wrappedVET,getIcon:(e=`20px`)=>V.createElement(Te,{boxSize:e})})},gc={main:{routerAddress:`0xE5fA980a6EfE5B79C2150a529da06AeF455963b6`,wrappedVET:Ci},test:{routerAddress:Ci,wrappedVET:Ci},solo:{routerAddress:Ci,wrappedVET:Ci}},_c=e=>{let t=gc[e]??gc.main;return pc({name:`VeTrade.vet`,routerAddress:t.routerAddress,wrappedVET:t.wrappedVET,getIcon:(e=`20px`)=>V.createElement(Ae,{boxSize:e})})},vc=e=>[hc(e),_c(e)],yc=(e,t,n,r,i=1,a=!0)=>{let o=jn(),{connection:s}=Q(),c=e?.address??null,l=t?.address??null,{data:u}=ys(c===`0x`||c===Ci||!c?``:c),{data:d}=ys(l===`0x`||l===Ci||!l?``:l),f=W(()=>!c||c===`0x`||c===Ci||!u?18:Number(u?.decimals??18),[c,u?.decimals]),p=W(()=>!l||l===`0x`||l===Ci||!d?18:Number(d?.decimals??18),[l,d?.decimals]),m=W(()=>{if(!c||!l||!n||!r)return null;let e;try{e=xi(n,f)}catch(e){return console.error(`Failed to parse amount:`,n,e),null}return e<=0n?null:{fromTokenAddress:c,toTokenAddress:l,amountIn:e.toString(),userAddress:r,slippageTolerance:i}},[c,l,n,r,i,f]),{data:h,isLoading:g,error:_}=X({queryKey:[`unified-swap-quotes`,m,s.network],queryFn:async()=>{if(!m||!o||!s.network)return{quotes:[],best:null};let e=vc(s.network).map(async e=>{try{let t=await e.getQuote(m,o);try{let n=await e.simulateSwap(m,t,o);return{...t,aggregator:e,reverted:!n.success,revertReason:n.error,gasCostVTHO:n.gasCostVTHO}}catch(n){return console.error(`Failed to simulate swap for ${e.name}:`,n),{...t,aggregator:e,reverted:!0,revertReason:n instanceof Error?n.message:`Simulation failed`,gasCostVTHO:0}}}catch(t){return console.error(`Failed to get quote from ${e.name}:`,t),null}}),t=(await Promise.all(e)).filter(e=>e!==null&&e.outputAmount!==0n),n=null;if(t.length>0){let e=t.filter(e=>!(e.reverted??!1));n=(e.length>0?e:t).reduce((e,t)=>{let n=BigInt(e.outputAmount||`0`);return BigInt(t.outputAmount||`0`)>n?t:e})}return{quotes:t,best:n}},enabled:a&&m!==null&&o!=null,refetchInterval:1e4});return{bestQuote:h?.best??null,quotes:h?.quotes??[],isLoading:g,error:_,from:e?{...e,address:c??``,decimals:f}:null,to:t?{...t,address:l??``,decimals:p}:null}},bc=({email:e,onResend:t,isLoading:n,isOpen:r,onClose:i})=>{let{t:a}=Y(),{darkMode:o}=$(),s=B(`colors`,`vechain-kit-text-secondary`),[c,l]=G(``),[u,d]=G(null),{createWallet:f}=yn(),{loginWithCode:p}=bn({onComplete:async({isNewUser:e})=>{e&&await f()}});return U(()=>{c.length===6&&p({code:c}).then(()=>{i()}).catch(e=>{d(e.message)})},[c]),J($a,{isOpen:r,onClose:i,trapFocus:!1,children:[J(Z,{children:[q(L,{alignItems:`center`,display:`flex`,gap:2,children:a(`Enter confirmation code`)}),q(F,{})]}),J(tt,{maxW:`container.lg`,children:[q(P,{children:J(z,{spacing:2,children:[q(N,{as:Sr,w:`48px`,h:`48px`,color:s}),q(R,{fontSize:`xs`,color:s,textAlign:`center`,children:a(`Please check {{email}} for an email from privy.io and enter your code below.`,{email:e})}),q(M,{spacing:2,justify:`center`,mt:4,children:J(xt,{value:c,onChange:l,otp:!0,size:`lg`,isInvalid:!!u,errorBorderColor:`#ef4444`,children:[q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`}),q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`}),q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`}),q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`}),q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`}),q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`})]})}),u&&q(R,{color:`#ef4444`,fontSize:`xs`,children:u})]})}),q(I,{children:J(R,{w:`100%`,textAlign:`center`,fontSize:`14px`,color:o?`whiteAlpha.700`:`gray.600`,children:[a(`Didn't get an email?`),` `,q(j,{variant:`link`,color:`blue.500`,fontSize:`14px`,onClick:t,isLoading:n,children:a(`Resend code`)})]})})]})]})},xc=()=>{let{t:e}=Y(),{darkMode:t}=$(),[n,r]=G(``),{sendCode:i,state:a}=bn({}),o=Gt(),s=async()=>{await i({email:n}),o.onOpen()};return J(K,{children:[q(st,{colSpan:4,w:`full`,children:q(z,{spacing:3,w:`full`,children:J(ft,{size:`lg`,w:`full`,children:[q(pt,{pointerEvents:`none`,height:`100%`,pl:4,children:q(N,{as:Sr,color:t?`whiteAlpha.600`:`blackAlpha.700`,w:`20px`,h:`20px`})}),q(dt,{placeholder:e(`your@email.com`),value:n,onChange:e=>r(e.target.value),fontSize:`16px`,fontWeight:`400`,backgroundColor:t?`transparent`:`#ffffff`,border:`1px solid ${t?`#ffffff0a`:`#ebebeb`}`,p:6,borderRadius:16,w:`full`,pl:12}),q(j,{"aria-label":`Send code`,position:`absolute`,right:2,top:`50%`,transform:`translateY(-50%)`,zIndex:2,variant:`ghost`,size:`sm`,px:6,borderRadius:`full`,isLoading:a.status===`sending-code`,onClick:s,children:e(`Submit`)})]})})}),q(bc,{isOpen:o.isOpen,onClose:o.onClose,onResend:()=>i({email:n}),email:n,isLoading:a.status===`sending-code`})]})},Sc=({isDark:e,gridColumn:t})=>{let{t:n}=Y(),{initOAuth:r}=Hd();return q(st,{colSpan:t??4,w:`full`,children:q(mu,{isDark:e,onClick:async()=>{await r({provider:`google`})},icon:Vi,text:n(`Continue with Google`)})})},Cc=({isDark:e,gridColumn:t})=>{let{t:n}=Y(),{initOAuth:r}=Hd();return q(st,{colSpan:t??4,w:`full`,children:q(mu,{isDark:e,onClick:async()=>{await r({provider:`github`})},icon:gr,text:n(`Continue with Github`)})})},wc=({isDark:e,gridColumn:t})=>{let{t:n}=Y(),{login:r}=wn();return q(st,{colSpan:t||4,w:`full`,children:q(mu,{isDark:e,onClick:r,icon:e?ge:Pe,text:n(`Use social login with VeChain`),variant:`loginWithVechain`,rightIcon:q(yu,{})})})},Tc=({isDark:e,gridColumn:t})=>{let{t:n}=Y(),{login:r}=Wd(),[i,a]=G(),o=Gt(),s=async()=>{o.onOpen();try{a(void 0),await r(),o.onClose()}catch(e){console.error(n(`Login failed:`),e),a(e instanceof Error?e.message:n(`Failed to connect with VeChain`))}};return J(K,{children:[q(st,{colSpan:t||4,w:`full`,children:q(mu,{isDark:e,onClick:s,icon:e?ge:Pe,text:n(`Use social login with VeChain`),variant:`loginWithVechain`,rightIcon:q(yu,{})})}),q(Su,{isOpen:o.isOpen,onClose:()=>{o.onClose()},onTryAgain:()=>{s()},error:i,title:n(`Connecting to VeChain`),loadingText:n(`Please approve the request in the connection request window...`)})]})},Ec=({isDark:e,gridColumn:t})=>{let{t:n}=Y(),{loginWithPasskey:r}=Bd(),[i,a]=G(),o=Gt(),s=async()=>{o.onOpen();try{a(void 0),await r(),o.onClose()}catch(e){(e instanceof Error?e.message.toLowerCase():``).includes(`not found`)&&(console.error(e),a(e instanceof Error?e.message:n(`Failed to connect with Passkey`)))}};return J(K,{children:[q(st,{colSpan:t,w:`full`,children:q(mu,{isDark:e,onClick:s,icon:pr,text:t&&t>=2?n(`Passkey`):void 0})}),q(Su,{isOpen:o.isOpen,onClose:()=>{o.onClose()},error:i,title:n(`Connecting with Passkey`),loadingText:n(`Please complete the passkey authentication...`),onTryAgain:()=>{s()}})]})},Dc=({isDark:e,gridColumn:t=2})=>{let{t:n}=Y(),{open:r,onConnectionStatusChange:i}=Pn(),{dappKit:a}=$(),{source:o}=Nn(),s=a?.allowedWallets?.includes(`sync2`)?n(`Connect wallet`):n(`Connect with VeWorld wallet`);return U(()=>{i((e,t)=>{if(!e)return t?.message&&console.error(t?.message),{...o&&{source:o}}})},[i]),q(st,{colSpan:t||2,w:`full`,children:q(mu,{isDark:e,onClick:()=>{r()},icon:a?.allowedWallets?.includes(`sync2`)?Br:e?Ee:he,iconWidth:`27px`,text:t>=2?s:void 0,rightIcon:a?.allowedWallets?.includes(`sync2`)&&q(N,{as:qn})||void 0})})},Oc=({isDark:e,onViewMoreLogin:t,gridColumn:n})=>{let{t:r}=Y();return q(st,{colSpan:n,w:`full`,children:q(mu,{isDark:e,onClick:t,icon:dr,text:n&&n>=2?r(`More`):void 0,rightIcon:q(N,{as:qn})})})},kc=()=>{let{loginMethods:e,darkMode:t}=$(),{login:n}=wn(),{showGoogleLogin:r,showEmailLogin:i,showPasskey:a,showVeChainLogin:o,showDappKit:s,showMoreLogin:c,showGithubLogin:l,isOfficialVeChainApp:u}=Nd();return q(jt,{spacing:4,w:`full`,align:`center`,children:q(ot,{templateColumns:`repeat(4, 1fr)`,gap:2,w:`full`,children:e?.map(({method:e,gridColumn:d})=>{switch(e){case`email`:return i&&q(xc,{},`email`);case`google`:return r&&q(Sc,{isDark:t,gridColumn:d},`google`);case`github`:return l&&q(Cc,{isDark:t,gridColumn:d},`github`);case`vechain`:return o&&q(u?wc:Tc,{isDark:t,gridColumn:d},`vechain`);case`passkey`:return a&&q(Ec,{isDark:t,gridColumn:d},`passkey`);case`dappkit`:return s&&q(Dc,{isDark:t,gridColumn:d},`dappkit`);case`more`:return c&&q(Oc,{isDark:t,onViewMoreLogin:n,gridColumn:d},`more`);default:return null}})})})},Ac=({appsInfo:e,isLoading:t})=>{let{t:n}=Y(),r=Gt();return J(K,{children:[q(j,{fontSize:`sm`,variant:`link`,onClick:()=>{r.onOpen()},children:n(`Already have an x2earn app wallet?`)}),q(Eu,{isOpen:r.isOpen,onClose:r.onClose,appsInfo:e,isLoading:t})]})},jc=({setCurrentContent:e,onClose:t})=>{let{t:n}=Y(),{connection:r}=Q(),{loginModalUI:i,darkMode:a}=$(),{loginMethods:o,privyEcosystemAppIDS:s}=$(),{data:c,isLoading:l}=oo(s),u=B(`colors`,`vechain-kit-text-secondary`),d=()=>{e(`faq`)};U(()=>{r.isConnected&&t()},[r.isConnected,t]);let f=o?.some(({method:e})=>e===`ecosystem`);return J(K,{children:[J(Z,{children:[q(Dp,{onClick:d}),q(L,{children:n(`Log in or sign up`)}),q(F,{})]}),i?.logo&&q(M,{justify:`center`,children:q(ut,{src:i.logo||`/images/favicon.png`,maxW:`180px`,maxH:`90px`,m:8,alt:`logo`})}),J(P,{children:[i?.description&&q(M,{spacing:4,w:`full`,justify:`center`,mb:`24px`,px:4,children:q(R,{color:u,fontSize:`sm`,textAlign:`center`,children:i?.description})}),q(kc,{})]}),f?q(I,{children:q(M,{justify:`center`,w:`full`,children:q(Ac,{isDark:a,appsInfo:Object.values(c||{}),isLoading:l})})}):q(I,{pt:0,pb:`5px`})]})},Mc=({onClick:e,...t})=>{let{smartAccount:n,connectedWallet:r,connection:i}=Q(),[a,o]=G(!1);U(()=>{o(!localStorage.getItem(`app-first-visit`))},[]);let{data:s}=Pf(n?.address??``,r?.address??``,3),c=i.isConnectedWithPrivy&&s,l=()=>{a&&(localStorage.setItem(`app-first-visit`,`true`),o(!1)),e()};return q(lt,{"aria-label":`Notifications`,size:`sm`,variant:`ghost`,position:`absolute`,borderRadius:`50%`,left:`10px`,top:`10px`,onClick:l,icon:J(A,{position:`relative`,children:[q(N,{as:jr,fontSize:`18px`}),c&&q(A,{position:`absolute`,top:`-1px`,right:`-1px`,minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`})]}),...t})},Nc=({setCurrentContent:e,wallet:t,onClose:n})=>{let{t:r}=Y(),{network:i}=$();return J(Op,{children:[J(Z,{children:[q(Mc,{onClick:()=>{e(`settings`)},"data-testid":`settings-button`}),J(L,{children:[r(`Wallet`),i?.type!==`main`&&q(Nt,{size:`xs`,colorScheme:`orange`,fontSize:`2xs`,p:1,ml:1,textTransform:`uppercase`,children:`${i?.type}`})]}),q(F,{})]}),q(P,{w:`full`,children:J(z,{w:`full`,overflow:`hidden`,justifyContent:`flex-start`,spacing:6,children:[q(Ic,{style:{justifyContent:`flex-start`},onClick:()=>{e(`profile`)},setCurrentContent:e,onClose:n,wallet:t}),q(Rc,{onAssetsClick:()=>{e(`assets`)}}),q(Vc,{setCurrentContent:e})]})}),q(I,{pt:0})]})},Pc=({leftIcon:e,rightIcon:t,title:n,wallet:r,onClick:i,leftImage:a,isActive:o=!1})=>{let{t:s}=Y(),{darkMode:c}=$();return q(j,{w:`full`,minH:`70px`,h:`fit-content`,py:4,onClick:i,backgroundColor:`transparent`,border:`1px solid ${c?`#ffffff29`:`#ebebeb`}`,children:J(M,{w:`full`,justify:`space-between`,children:[q(A,{minW:`40px`,justifyContent:`center`,children:a?q(ut,{justifySelf:`center`,src:a,w:`28px`,alt:`left-image`}):q(N,{as:e,fontSize:`28px`})}),J(z,{textAlign:`left`,w:`full`,flex:1,children:[q(M,{w:`full`,spacing:2,justifyContent:`flex-start`,children:q(R,{fontSize:`sm`,fontWeight:`400`,children:n})}),q(R,{fontSize:`sm`,fontWeight:`500`,opacity:.5,overflowWrap:`break-word`,wordBreak:`break-word`,whiteSpace:`normal`,w:`full`,children:r?.domain?d(r?.domain??``,18,0):l(r?.address??``,6,4)})]}),q(z,{minW:`40px`,justifyContent:`flex-end`,children:J(M,{justifyContent:`flex-end`,minW:`40px`,children:[o&&q(Nt,{size:`sm`,colorScheme:`green`,children:s(`Active`)}),q(N,{as:t,fontSize:`20px`,opacity:.5})]})})]})})},Fc=({leftIcon:e,rightIcon:t,title:n,onClick:r,leftImage:i,hide:a=!1,showComingSoon:o=!1,backgroundColor:s,_hover:c,isDisabled:l=!1,stacked:u=!1,isLoading:d,loadingText:f,style:p,extraContent:m,dataTestId:h,variant:g=`actionButton`})=>{let{t:_}=Y();return q(j,{variant:g===`actionButton`?`vechainKitSecondary`:g,py:u?0:2,minHeight:`50px`,height:`fit-content`,p:0,onClick:r,display:a?`none`:`flex`,isDisabled:o||l,isLoading:d,loadingText:f,bgColor:s,_hover:c,"data-testid":h,...p,children:J(M,{w:`full`,justify:`space-between`,alignItems:`center`,children:[q(A,{minW:`40px`,h:`20px`,children:i?q(ut,{src:i,w:`30px`,h:`30px`,borderRadius:`full`,alt:`left-image`,alignSelf:`end`,objectFit:`cover`}):q(N,{as:e,fontSize:`20px`,h:`full`,alignContent:`center`})}),q(z,{textAlign:`left`,w:`full`,flex:1,justifyContent:`flex-start`,alignItems:`flex-start`,children:J(M,{justify:`flex-start`,alignItems:`baseline`,children:[q(R,{fontSize:`sm`,fontWeight:`400`,children:n}),o&&q(Nt,{size:`sm`,colorScheme:`red`,children:_(`Coming Soon!`)}),m]})}),t&&q(z,{minW:`40px`,justifyContent:`flex-end`,children:q(N,{as:t,fontSize:`20px`,opacity:.5})})]})})},Ic=({wallet:e,setCurrentContent:t,size:n=`md`,onClick:r,onClose:i,mt:a,style:o})=>{let[s,c]=G(!1),{disconnect:u}=Q(),f=async()=>{await ie(e?.domain??e?.address??``)&&(c(!0),setTimeout(()=>{c(!1)},2e3))},p=()=>{u(),i()};return J(M,{mt:a,w:`full`,...o,justifyContent:`flex-start`,alignItems:`center`,children:[q(j,{w:`full`,h:12,"aria-label":`Wallet`,onClick:r,variant:`vechainKitSecondary`,p:3,"data-testid":`profile-button`,children:J(M,{spacing:2,align:`center`,justifyContent:`space-between`,w:`full`,children:[J(M,{spacing:2,justifyContent:`flex-start`,children:[q(kp,{wallet:e,props:{width:7,height:7}}),q(R,{fontSize:n,fontWeight:`500`,children:d(e?.domain??``,22,0)||l(e?.address??``,6,4)})]}),q(N,{boxSize:5,as:rr,cursor:`pointer`,opacity:.5})]})}),q(lt,{"aria-label":`Copy address`,icon:q(N,{as:s?er:lr}),onClick:f,variant:`ghost`,size:`sm`,opacity:.5,_hover:{opacity:.8}}),q(lt,{"aria-label":`Logout`,icon:q(N,{as:xr}),onClick:()=>t({type:`disconnect-confirm`,props:{onDisconnect:p,onBack:()=>t(`main`)}}),variant:`ghost`,size:`sm`,opacity:.5,_hover:{opacity:.8},colorScheme:`red`})]})},Lc=({address:e,maxIcons:t=3,iconSize:n=20,ml:r=0,style:i,iconsGap:a=0,rightIcon:o,showNoAssetsWarning:c=!1,onClick:l})=>{let{t:u}=Y(),{tokensWithBalance:d}=ds({address:e}),{darkMode:f}=$(),m=B(`colors`,`vechain-kit-text-secondary`),h=a<1?`-${n/2}px`:`${a}px`,g=d.slice(0,t),_=d.length-t;return!e||d.length===0&&!c?null:J(M,{spacing:0,ml:r,...i,onClick:l,children:[J(M,{spacing:0,children:[g.map((e,t)=>q(Qe,{ml:t>0?h:`0`,zIndex:t,size:`${n}px`,borderRadius:`full`,bg:f?`gray.100`:`gray.600`,border:`2px solid #00000024`,alignItems:`center`,justifyContent:`center`,children:s[e.symbol]?V.cloneElement(s[e.symbol],{width:`${n*.8}px`,height:`${n*.8}px`,rounded:`full`}):p[e.symbol]?q(ut,{src:p[e.symbol],alt:`${e.symbol} logo`,width:`${n*.8}px`,height:`${n*.8}px`,rounded:`full`}):q(R,{fontSize:`${n*.4}px`,fontWeight:`bold`,color:f?`black`:`white`,children:e.symbol.slice(0,3)})},e.symbol)),_>0&&q(Qe,{ml:h,zIndex:g.length,size:`${n}px`,borderRadius:`full`,bg:f?`gray.100`:`gray.700`,display:`flex`,alignItems:`center`,justifyContent:`center`,border:`2px solid`,children:J(R,{fontSize:`${n*.4}px`,fontWeight:`bold`,color:f?`black`:`white`,children:[`+`,_]})}),d.length===0&&c&&q(R,{fontSize:`sm`,color:m,fontWeight:`700`,children:u(`No assets`)})]}),o]})},Rc=({mb:e,mt:t,onAssetsClick:n})=>{let{t:r}=Y(),{account:i}=Q(),{formattedBalance:a,isLoading:o}=fs({address:i?.address??``}),{refresh:s}=Gs(),[c,l]=G(!1),u=B(`colors`,`vechain-kit-text-secondary`),d=async()=>{l(!0),await s(),setTimeout(()=>{l(!1)},1500)};return J(z,{w:`full`,justifyContent:`start`,spacing:1,mt:t,mb:e,children:[J(M,{w:`full`,justifyContent:`flex-start`,alignItems:`center`,spacing:2,role:`group`,children:[q(ct,{size:`xs`,fontWeight:`500`,color:u,children:r(`Assets`)}),q(A,{display:`flex`,alignItems:`center`,justifyContent:`center`,w:`32px`,h:`32px`,children:q(lt,{"aria-label":`Refresh balances`,variant:`ghost`,size:`sm`,opacity:.5,_hover:{opacity:.8},onClick:d,icon:q(N,{as:Dr,boxSize:4}),isLoading:o||c,sx:{"& > span.chakra-button__spinner":{width:`16px`,height:`16px`,position:`absolute`}}})})]}),q(j,{onClick:n,h:`fit-content`,variant:`vechainKitSecondary`,children:J(z,{spacing:2,w:`full`,justifyContent:`flex-start`,alignItems:`flex-start`,mt:4,mb:4,children:[q(ct,{size:`2xl`,fontWeight:`700`,children:a}),q(M,{w:`full`,justifyContent:`flex-start`,"data-testid":`all-assets-button`,mt:2,children:q(Lc,{style:{width:`100%`,justifyContent:`space-between`},maxIcons:10,iconSize:26,iconsGap:3,address:i?.address??``,showNoAssetsWarning:!0,rightIcon:q(N,{as:rr,boxSize:5,opacity:.5,marginLeft:2})})})]})})]})},zc=[{icon:Yn,label:`Send`,onClick:e=>e({type:`send-token`,props:{setCurrentContent:e}}),isDisabled:e=>!e},{icon:Kn,label:`Swap`,onClick:e=>{e(`swap-token`)},isDisabled:e=>!e},{icon:Wn,label:`Receive`,onClick:e=>{e(`receive-token`)}}],Bc=({icon:e,label:t,onClick:n,isDisabled:r,showRedDot:i})=>{let{t:a}=Y();return q(lt,{variant:`vechainKitSecondary`,h:`80px`,w:`full`,"aria-label":t,isDisabled:r,p:3,icon:J(z,{spacing:4,children:[q(N,{as:e,boxSize:5,opacity:.9}),J(M,{p:0,alignItems:`baseline`,spacing:1,children:[q(R,{fontSize:`sm`,fontWeight:`600`,"data-testid":`${t.toLowerCase()}-button-label`,children:a(t,t)}),i&&q(A,{minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`})]})]}),onClick:n})},Vc=({mt:e,setCurrentContent:t})=>{let{account:n,smartAccount:r,connectedWallet:i,connection:a}=Q(),{hasAnyBalance:o}=fs({address:n?.address??``}),{data:s}=Pf(r?.address??``,i?.address??``,3),c=a.isConnectedWithPrivy&&s;return q(ot,{templateColumns:`repeat(3, 1fr)`,gap:2,w:`full`,mt:e,children:zc.map(e=>q(Bc,{icon:e.icon,label:e.label,onClick:()=>e.onClick(t),isDisabled:e.isDisabled?.(o),showRedDot:c&&e.label===`Settings`},e.label))})},Hc=()=>{let[e,t]=G(!0),n=`vechain_kit_feature_announcement_closed`;return U(()=>{w(n)&&t(!1)},[]),{isVisible:e,closeAnnouncement:()=>{h(n,`true`),t(!1)}}},Uc=({setCurrentContent:e})=>{let{t}=Y(),{isVisible:n,closeAnnouncement:r}=Hc(),i=B(`colors`,`vechain-kit-text-primary`),a=B(`colors`,`vechain-kit-text-secondary`);return n?q(Ge,{w:`full`,variant:`featureAnnouncement`,overflow:`hidden`,onClick:()=>{e({type:`choose-name`,props:{setCurrentContent:e,onBack:()=>e(`main`),initialContentSource:`main`}}),r()},cursor:`pointer`,_hover:{opacity:.8},children:q(Ke,{p:4,children:J(M,{justify:`space-between`,align:`flex-start`,spacing:3,children:[J(z,{align:`flex-start`,spacing:1,children:[J(M,{spacing:2,children:[q(R,{fontSize:`sm`,fontWeight:`400`,color:i,children:t(`Claim your vet domain!`)}),q(Nt,{size:`sm`,colorScheme:`red`,children:t(`New`)})]}),q(R,{fontSize:`xs`,color:a,children:t(`Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!`)})]}),q(lt,{size:`sm`,variant:`ghost`,colorScheme:`gray`,icon:q(cr,{}),onClick:e=>{e.stopPropagation(),r()},"aria-label":t(`Close announcement`)})]})})}):null},Wc=()=>{let{t:e}=Y();return q(Be,{status:`warning`,fontSize:`xs`,borderRadius:`xl`,p:2,children:q(z,{spacing:1,align:`stretch`,w:`full`,children:J(M,{spacing:2,align:`flex-start`,children:[q(He,{boxSize:4,mt:`10px`}),q(R,{w:`full`,children:e(`Sending to OceanX or other exchanges may result in loss of funds.`)})]})})})},Gc=()=>{let{t:e}=Y();return q(Be,{status:`warning`,fontSize:`xs`,borderRadius:`xl`,p:2,children:q(z,{spacing:1,align:`stretch`,w:`full`,children:J(M,{spacing:2,align:`flex-start`,children:[q(He,{boxSize:4,mt:`10px`}),q(R,{w:`full`,children:e(`A .vet domain is required to customize your profile. Choose an account name to get started.`)})]})})})},Kc=()=>{let{t:e}=Y(),{getConnectionCache:t}=Ud(),n=t();return J(Ge,{variant:`vechainKitBase`,w:`full`,children:[J(Je,{p:4,pl:6,borderBottomWidth:`1px`,children:[q(R,{fontWeight:`medium`,opacity:.8,children:e(`Security preferences`)}),q(R,{fontSize:`xs`,mt:1,opacity:.7,children:e(`For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.`,{appName:n?.ecosystemApp.name??`origin app`})})]}),q(Ke,{borderRadius:`none`,children:J(z,{spacing:3,align:`stretch`,children:[J(M,{spacing:3,align:`center`,children:[q(Ye,{w:`fit-content`,h:`fit-content`,p:2,borderRadius:`full`,bg:`blackAlpha.100`,flexShrink:0,children:q(N,{as:zr})}),J(A,{flex:1,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,lineHeight:`shorter`,children:e(`Login methods`)}),q(R,{fontSize:`xs`,opacity:.7,lineHeight:`shorter`,children:e(`Manage your login methods and passkeys`)})]})]}),J(M,{spacing:3,align:`center`,children:[q(Ye,{w:`fit-content`,h:`fit-content`,p:2,borderRadius:`full`,bg:`blackAlpha.100`,flexShrink:0,children:q(N,{as:Nr})}),J(A,{flex:1,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,lineHeight:`shorter`,children:e(`Security settings`)}),q(R,{fontSize:`xs`,opacity:.7,lineHeight:`shorter`,children:e(`Backup your wallet, configure MFA and set recovery options`)})]})]})]})}),q(qe,{children:J(j,{variant:`vechainKitSecondary`,w:`full`,onClick:()=>{window.open(n?.ecosystemApp.website??`https://governance.vebetterdao.org/`,`_blank`)},children:[e(`Manage on {{appName}}`,{appName:n?.ecosystemApp.name??`origin app`}),q(N,{as:fr,ml:2})]})})]})},qc=({setCurrentContent:e})=>{let{t}=Y(),{exportWallet:n}=wn(),{showMfaEnrollmentModal:r}=Cn(),{setWalletRecovery:i}=En(),{connection:a,smartAccount:o,connectedWallet:s}=Q(),c=B(`colors`,`vechain-kit-text-secondary`),{data:l}=Pf(o?.address??``,s?.address??``,3);return J(Op,{children:[J(Z,{children:[q(L,{children:t(`Access and security`)}),q(Ja,{onClick:()=>e(`settings`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:[q(z,{w:`full`,justifyContent:`center`,spacing:3,mb:3,children:q(R,{fontSize:`sm`,color:c,textAlign:`center`,children:t(`Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.`)})}),l&&q(Fc,{title:t(`Upgrade Smart Account to V3`),description:t(`A new version is available for your account`),onClick:()=>{e({type:`upgrade-smart-account`,props:{setCurrentContent:e,initialContent:`access-and-security`}})},leftIcon:jr,extraContent:q(A,{minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`,ml:2})}),q(Fc,{title:t(`Your embedded wallet`),onClick:()=>{e(`embedded-wallet`)},leftIcon:Br,rightIcon:rr}),a.isConnectedWithSocialLogin?J(z,{w:`full`,justifyContent:`center`,spacing:0,children:[q(Fc,{title:t(`Login methods and Passkeys`),style:{borderBottomRadius:`0px`},onClick:()=>{e(`privy-linked-accounts`)},leftIcon:zr,rightIcon:rr}),q(Fc,{title:t(`Backup your wallet`),style:{borderTopRadius:`0px`,borderBottomRadius:`0px`},onClick:()=>{n()},leftIcon:yr}),q(Fc,{title:t(`Manage MFA`),style:{borderTopRadius:`0px`,borderBottomRadius:`0px`},onClick:()=>{r()},leftIcon:Nr}),q(Fc,{title:t(`Manage Recovery`),style:{borderTopRadius:`0px`},onClick:()=>{i()},leftIcon:Or})]}):q(Kc,{})]})}),q(I,{pt:0})]})},Jc=()=>{let{isolatedView:e,closeAccountModal:t}=rd();return{isolatedView:e,closeAccountModal:t}},Yc=({setCurrentContent:e,onLogoutSuccess:t})=>{let n=Zt(null),{t:r}=Y(),{isolatedView:i}=Jc(),{connection:a,disconnect:o,smartAccount:s,connectedWallet:c,account:l}=Q(),{data:u}=Pf(s?.address??``,c?.address??``,3);U(()=>{n.current&&(n.current.scrollTop=0)},[]);let d=()=>{e({type:`account-customization`,props:{setCurrentContent:e,initialContentSource:`settings`}})},f=()=>{l?.domain?e({type:`choose-name-search`,props:{name:``,setCurrentContent:e,initialContentSource:`settings`}}):e({type:`choose-name`,props:{setCurrentContent:e,initialContentSource:`settings`,onBack:()=>e(`settings`)}})},p=()=>{e(`access-and-security`)},m=()=>{e(`connection-details`)},h=()=>{e(`general-settings`)},g=()=>{o(),t()};return J(A,{children:[J(Z,{children:[q(L,{children:r(`Settings`)}),!i&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{w:`full`,spacing:4,children:[J(z,{w:`full`,spacing:0,children:[q(Fc,{style:{marginTop:`10px`,borderBottomRadius:`0px`},title:r(`Customize profile`),onClick:d,leftIcon:Rr,rightIcon:rr}),q(Fc,{style:{borderTopRadius:`0px`},title:r(`Choose account name`),description:r(`Choose a name for your account.`),onClick:f,leftIcon:Fr,rightIcon:rr})]}),J(z,{w:`full`,spacing:0,children:[a.isConnectedWithPrivy&&q(Fc,{style:{borderBottomRadius:`0px`},title:r(`Access and security`),onClick:p,leftIcon:Mr,rightIcon:rr,extraContent:u&&q(A,{minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`})}),q(Fc,{style:a.isConnectedWithPrivy?{borderTopRadius:`0px`,borderBottomRadius:`0px`}:{borderTopRadius:`12px`,borderBottomRadius:`0px`},title:r(`General`),onClick:h,leftIcon:Ar,rightIcon:rr}),q(Fc,{title:r(`Help`),onClick:()=>e({type:`faq`,props:{onGoBack:()=>e(`settings`),showLanguageSelector:!1}}),leftIcon:sr,rightIcon:rr,style:{borderTopRadius:`0px`}})]}),J(z,{w:`full`,spacing:0,children:[q(Fc,{style:{borderBottomRadius:`0px`},title:r(`Connection details`),onClick:m,leftIcon:Lr,rightIcon:rr}),q(Fc,{style:{borderTopRadius:`0px`},title:r(`Logout`),onClick:()=>e({type:`disconnect-confirm`,props:{onDisconnect:g,onBack:()=>e(`settings`)}}),leftIcon:xr})]})]})}),q(I,{pt:0})]})},Xc=()=>{let{t:e}=Y(),{network:t}=$(),{connection:n,smartAccount:r,connectedWallet:i}=Q(),{data:a,isLoading:o}=co(),{data:s,isLoading:c}=yf(r.address??``,i?.address??``),l=B(`colors`,`vechain-kit-text-primary`),u=B(`colors`,`vechain-kit-text-secondary`),d=({label:e,value:t,isLoading:n=!1,href:r})=>J(M,{w:`full`,justifyContent:`space-between`,children:[J(R,{fontSize:`sm`,color:l,children:[e,`:`]}),q(R,{fontSize:`sm`,as:r?`a`:void 0,href:r,target:`_blank`,rel:`noopener noreferrer`,style:{textDecoration:r?`underline`:`none`},color:u,children:n?`Loading...`:t})]});return J(K,{children:[q(d,{label:e(`Connection Type`),value:n.source.type,isLoading:n.isLoading}),q(d,{label:e(`Network`),value:t.type}),q(d,{label:e(`Node URL`),value:t.nodeUrl||k(t.type).nodeUrl}),n.isConnectedWithPrivy?J(K,{children:[q(d,{label:e(`Smart Account`),value:`v${s?.version??``} ${s?.isDeployed?``:`(not deployed)`}`,isLoading:c}),q(d,{label:e(`Privy Status`),value:a||``,isLoading:o})]}):r.isDeployed&&q(d,{label:e(`Smart Account`),value:`v${s?.version??``}`,isLoading:c}),q(d,{label:e(`VeChain Kit`),value:Xa,href:`https://github.com/vechain/vechain-kit/releases/tag/${Xa}`})]})},Zc=({connectionCache:e})=>{let{t}=Y(),n=B(`colors`,`vechain-kit-card`),r=B(`colors`,`vechain-kit-text-secondary`),i=B(`colors`,`vechain-kit-text-primary`);return q(K,{children:e.ecosystemApp&&J(z,{p:4,bg:n,borderRadius:`xl`,spacing:4,w:`full`,children:[J(M,{w:`full`,justifyContent:`space-between`,children:[J(R,{fontSize:`sm`,color:i,children:[t(`Logged in with`),`:`]}),q(R,{fontSize:`sm`,color:r,children:e.ecosystemApp.name})]}),J(M,{w:`full`,justifyContent:`space-between`,children:[J(R,{fontSize:`sm`,color:i,children:[t(`At`),`:`]}),q(R,{fontSize:`sm`,color:r,children:new Date(e.timestamp).toLocaleString()})]}),q(Xc,{})]})})},Qc=()=>{let{t:e}=Y(),{source:t}=Nn(),n=B(`colors`,`vechain-kit-card`),r=B(`colors`,`vechain-kit-text-secondary`),i=B(`colors`,`vechain-kit-text-primary`);return q(K,{children:t&&J(z,{p:4,bg:n,borderRadius:`xl`,spacing:4,w:`full`,justifyContent:`space-between`,children:[J(M,{w:`full`,justifyContent:`space-between`,children:[J(R,{fontSize:`sm`,color:i,children:[e(`Logged in with`),`:`]}),q(R,{fontSize:`sm`,color:r,children:t})]}),q(Xc,{})]})})},$c=()=>{let{t:e}=Y(),{privy:t}=$(),{data:n,isLoading:r}=oo(t?.appId??``),i=B(`colors`,`vechain-kit-card`),a=B(`colors`,`vechain-kit-text-primary`),o=B(`colors`,`vechain-kit-text-secondary`);return r?q(z,{w:`full`,h:`full`,justify:`center`,align:`center`,children:q(At,{})}):q(K,{children:n&&J(z,{p:4,bg:i,borderRadius:`xl`,spacing:4,w:`full`,justifyContent:`space-between`,children:[J(M,{w:`full`,justifyContent:`space-between`,children:[J(R,{fontSize:`sm`,color:a,children:[e(`Logged in with`),`:`]}),q(R,{fontSize:`sm`,color:o,children:Object.values(n)[0].name})]}),q(Xc,{})]})})},el=()=>{let{connection:e}=Q(),{t}=Y(),{privy:n,darkMode:r}=$(),{getConnectionCache:i}=Ud(),a=i();return J(z,{w:`full`,align:`stretch`,textAlign:`center`,mt:5,p:3,borderRadius:`lg`,bg:B(`colors`,`vechain-kit-card`),shadow:`sm`,children:[q(R,{fontSize:`xs`,fontWeight:`800`,children:t(`Wallet secured by`)}),J(M,{justify:`center`,children:[q(Se,{isDark:r,w:`50px`}),q(N,{as:Cr,ml:3}),e.isConnectedWithVeChain?q(fe,{isDark:r,w:`80px`,h:`auto`,mb:`3px`}):e.isConnectedWithCrossApp&&a&&q(ut,{src:a.ecosystemApp.logoUrl,alt:a.ecosystemApp.name,maxW:`40px`,borderRadius:`md`}),e.isConnectedWithSocialLogin&&!e.isConnectedWithVeChain&&q(ut,{src:n?.appearance.logo,alt:n?.appearance.logo,maxW:`40px`,borderRadius:`md`})]})]})},tl=({setCurrentContent:e})=>{let{t}=Y(),{connectedWallet:n,connection:r}=Q(),a=i(n?.address??``),{getConnectionCache:o}=Ud(),s=o(),c=B(`colors`,`vechain-kit-text-secondary`);return J(Op,{children:[J(Z,{children:[q(L,{children:t(`Embedded wallet`)}),q(Ja,{onClick:()=>e(`access-and-security`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:[J(z,{justify:`center`,align:`center`,w:`full`,children:[q(ut,{src:a,maxW:`100px`,borderRadius:`50%`}),q(Ya,{wallet:n,style:{mt:2},showHumanAddress:!1})]}),r.isConnectedWithCrossApp&&J(K,{children:[q(R,{fontSize:`sm`,color:c,children:t(`This is your main wallet, created by {{element}} and secured by Privy.`,{element:s?.ecosystemApp?.name})}),q(R,{fontSize:`sm`,color:c,children:t(`This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.`)}),q(R,{fontSize:`sm`,color:c,children:t(`Please be sure to keep this wallet safe and backed up.`)})]}),r.isConnectedWithSocialLogin&&J(K,{children:[q(R,{fontSize:`sm`,color:c,children:t(`You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.`)}),q(R,{fontSize:`sm`,color:c,children:t(`This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.`)}),J(R,{fontSize:`sm`,color:c,children:[t(`We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using`),J(ht,{href:`https://www.veworld.net/`,isExternal:!0,color:c,fontSize:`14px`,textDecoration:`underline`,children:[` `,t(`VeWorld Wallet`),q(N,{ml:1,as:fr})]}),`.`]}),J(R,{fontSize:`sm`,color:c,children:[t(`Click`),` `,q(ht,{href:`https://docs.vechainkit.vechain.org/vechain-kit/embedded-wallets`,isExternal:!0,color:c,fontSize:`14px`,textDecoration:`underline`,children:t(`here`)}),` `,t(`to learn more about embedded wallets.`)]})]})]})}),q(I,{w:`full`,children:J(z,{w:`full`,children:[q(nt,{}),r.isConnectedWithPrivy&&q(el,{})]})})]})},nl=({onDisconnect:e,onBack:t,onClose:n,showCloseButton:r=!0,text:i})=>{let{t:a}=Y(),o=B(`colors`,`vechain-kit-text-primary`),s=i??a(`Are you sure you want to disconnect your wallet?`);return J(Op,{children:[J(Z,{children:[q(L,{children:a(`Logout`)}),q(Ja,{onClick:t}),r?q(F,{onClick:n}):null]}),q(P,{children:q(z,{spacing:6,align:`stretch`,children:q(R,{fontSize:`md`,textAlign:`center`,color:o,children:s})})}),q(I,{w:`full`,children:J(z,{spacing:3,w:`full`,children:[q(j,{height:`60px`,colorScheme:`red`,w:`full`,onClick:e,"data-testid":`disconnect-button`,children:a(`Confirm`)}),q(j,{variant:`vechainKitSecondary`,onClick:t,"data-testid":`cancel-logout-button`,children:a(`Cancel`)})]})})]})},rl=({onSelectToken:e,onBack:t,showAllTokens:n=!1})=>{let{t:r}=Y(),{darkMode:i}=$(),{currentCurrency:a}=us(),o=B(`colors`,`vechain-kit-text-primary`),s=B(`colors`,`vechain-kit-text-secondary`),c=B(`colors`,`vechain-kit-text-tertiary`),{account:l}=Q(),{tokensWithBalance:u,sortedTokens:d}=ds({address:l?.address??``}),[f,p]=G(``),m=W(()=>{if(n){let e=d.filter(e=>Number(e.balance)>0),t=[...d.filter(e=>Number(e.balance)===0)].sort((e,t)=>e.symbol.localeCompare(t.symbol));return[...e,...t]}return u},[n,d,u]).filter(({symbol:e})=>e.toLowerCase().includes(f.toLowerCase()));return J(K,{children:[J(Z,{children:[q(L,{children:r(`Select Token`)}),q(Ja,{onClick:t}),q(F,{})]}),q(tt,{h:[`540px`,`auto`],p:0,children:q(P,{children:J(z,{spacing:4,align:`stretch`,children:[J(ft,{size:`lg`,children:[q(dt,{placeholder:`Search token`,bg:i?`vechain-kit-overlay`:`vechain-kit-card`,borderRadius:`xl`,height:`56px`,pl:12,value:f,onChange:e=>p(e.target.value),"data-testid":`search-token-input`}),q(pt,{h:`56px`,w:`56px`,pl:4,children:q(kr,{color:c})})]}),q(R,{fontSize:`lg`,fontWeight:`semibold`,color:o,mt:4,children:r(n?`All tokens`:`Your tokens`)}),m.length===0?J(z,{spacing:2,py:8,children:[q(N,{as:Pr,boxSize:12,color:c}),q(R,{fontSize:`lg`,color:o,children:r(`No tokens found`)}),q(R,{fontSize:`md`,color:s,children:r(`Try searching with a different term`)})]}):q(z,{spacing:2,align:`stretch`,children:m.map(t=>q(ro,{symbol:t.symbol,amount:Number(t.balance),currencyValue:t.valueInCurrency,currentCurrency:a,onClick:()=>e(t)},t.address))})]})})}),q(I,{pt:0})]})},il=({setCurrentContent:e,preselectedToken:t,initialAmount:n=``,initialToAddressOrDomain:r=``,onBack:i=()=>e(`main`)})=>{let{t:a}=Y(),{darkMode:o,feeDelegation:c}=$(),{currentCurrency:l}=us(),u=B(`colors`,`vechain-kit-text-primary`),d=B(`colors`,`vechain-kit-text-secondary`),f=B(`colors`,`vechain-kit-text-tertiary`),m=B(`colors`,`vechain-kit-error`),h=B(`colors`,`vechain-kit-card`),{exchangeRates:g}=ss(),{account:_}=Q(),{isolatedView:v}=Jc(),{tokensWithBalance:y}=ds({address:_?.address??``}),[b,x]=G(t??y[0]??null),[S,C]=G(!1);U(()=>{!t&&!b&&y.length>0&&x(y[0])},[y,t,b]);let{register:w,watch:ee,setValue:T,setError:E,formState:{errors:D,isValid:te},handleSubmit:ne}=Hi({defaultValues:{amount:n,toAddressOrDomain:r},mode:`onChange`}),{toAddressOrDomain:re,amount:O}=ee(),ie=Zt(b);U(()=>{ie.current&&b&&ie.current.address!==b.address&&T(`amount`,``),ie.current=b},[b,T]);let ae=W(()=>b?no(eo(Number(O)*b.priceUsd,l,g),{currency:l}):``,[O,b,l,g]),{data:oe,isLoading:se}=uo(re),k=()=>{b&&T(`amount`,b.balance)},ce=()=>{i()},le=async t=>{if(b){if(!(oe?.isValidAddressOrDomain&&(!oe?.domain||oe?.domain&&oe?.isPrimaryDomain))){E(`toAddressOrDomain`,{type:`manual`,message:a(`Invalid address or domain`)});return}if(b){let e=nn(t.amount),n=c?.b3trTransfers?.minAmountInEther;if(b.symbol===`B3TR`&&typeof n==`number`&&n>0)try{if(e<nn(String(n))){E(`amount`,{type:`manual`,message:a(`Minimum {{symbol}} transfer is {{min}}`,{symbol:b.symbol,min:n})});return}}catch{}if(e>nn(b.balance)){E(`amount`,{type:`manual`,message:a(`Insufficient {{symbol}} balance`,{symbol:b.symbol})});return}}e({type:`send-token-summary`,props:{toAddressOrDomain:t.toAddressOrDomain,resolvedDomain:oe?.domain,resolvedAddress:oe?.address,amount:t.amount,selectedToken:b,formattedTotalAmount:ae,setCurrentContent:e}})}};return S?q(rl,{setCurrentContent:e,onSelectToken:e=>{x(e),C(!1)},onBack:()=>{C(!1)}}):J(K,{children:[J(Z,{children:[q(L,{children:a(`Send`)}),!v&&q(Ja,{onClick:ce}),q(F,{})]}),q(P,{children:J(z,{spacing:1,align:`stretch`,position:`relative`,children:[J(A,{p:6,borderRadius:`xl`,bg:h,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:u,mb:2,children:a(`Amount`)}),q(z,{align:`stretch`,spacing:2,children:J(it,{isInvalid:!!D.amount,children:[J(M,{justify:`space-between`,children:[q(dt,{...w(`amount`,{required:a(`Amount is required`),pattern:{value:/^\d*\.?\d*$/,message:a(`Please enter a valid number`)},validate:e=>{if(!e)return!0;let t=parseFloat(e);if(isNaN(t))return a(`Please enter a valid number`);let n=c?.b3trTransfers?.minAmountInEther;return b?.symbol===`B3TR`&&typeof n==`number`&&n>0&&t<n?a(`Minimum {{symbol}} transfer is {{min}}`,{symbol:b.symbol,min:n}):!0}}),onChange:e=>{let t=e.target.value.trim();e.target.value=t,T(`amount`,t,{shouldValidate:!0})},placeholder:`0`,variant:`unstyled`,fontSize:`4xl`,fontWeight:`bold`,"data-testid":`tx-amount-input`,type:`number`,inputMode:`decimal`,color:u}),b?J(j,{variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:d,borderColor:d,_hover:{bg:o?`whiteAlpha.300`:`blackAlpha.300`},onClick:()=>C(!0),leftIcon:s[b.symbol]?V.cloneElement(s[b.symbol],{boxSize:`20px`,borderRadius:`full`}):q(ut,{src:p[b.symbol],alt:`${b.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:q(A,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:q(R,{fontSize:`8px`,fontWeight:`bold`,color:u,children:b.symbol.slice(0,3)})})}),children:[b.symbol,q(N,{as:tr,boxSize:5,color:d})]}):J(j,{variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:d,borderColor:d,_hover:{bg:o?`whiteAlpha.300`:`blackAlpha.300`,color:f},onClick:()=>C(!0),children:[a(`Select token`),q(N,{as:tr,boxSize:5,color:d})]})]}),b&&J(M,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:d,children:[J(R,{color:d,children:[`≈ `,ae]}),q(R,{cursor:`pointer`,_hover:{color:d,textDecoration:`underline`},onClick:k,noOfLines:1,overflow:`hidden`,textOverflow:`ellipsis`,children:a(`Send all`)})]}),D.amount&&q(R,{color:`#ef4444`,fontSize:`sm`,mt:1,"data-testid":`amount-error-msg`,children:D.amount.message})]})})]}),J(A,{borderRadius:`xl`,bg:h,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:u,mb:2,px:6,pt:6,children:a(`To`)}),q(z,{align:`stretch`,spacing:2,p:6,pt:2,width:`100%`,children:J(it,{isInvalid:!!D.toAddressOrDomain,children:[q(dt,{...w(`toAddressOrDomain`,{required:a(`Address is required`)}),onChange:e=>{let t=e.target.value.trim(),n=t.includes(`.`)?Ui(t):t;e.target.value=n,T(`toAddressOrDomain`,n,{shouldValidate:!0})},placeholder:a(`Type the receiver address or domain`),_placeholder:{fontSize:`md`,fontWeight:`normal`},fontSize:`lg`,fontWeight:`bold`,color:u,variant:`unstyled`,"data-testid":`tx-address-input`}),D.toAddressOrDomain&&q(R,{color:m,fontSize:`sm`,"data-testid":`address-error-msg`,children:D.toAddressOrDomain.message})]})})]})]})}),q(I,{children:q(j,{variant:`vechainKitPrimary`,isDisabled:!b||!te,isLoading:se,onClick:ne(le),"data-testid":`send-button`,children:a(b?`Send`:`Select Token`)})})]})},al=({setCurrentContent:e,toAddressOrDomain:t,resolvedDomain:n,resolvedAddress:r,amount:a,selectedToken:o,formattedTotalAmount:s})=>{let{t:c}=Y(),{account:l,connection:u,connectedWallet:d}=Q(),{data:f}=Ko(r??``),{network:p,feeDelegation:m}=$(),{preferences:h}=Cp(),{isolatedView:g,closeAccountModal:_}=Jc(),v=B(`colors`,`vechain-kit-text-primary`),y=B(`colors`,`vechain-kit-text-secondary`),{data:b}=Pf(l?.address??``,d?.address??``,3),{open:x}=Pd(),S=W(()=>f||i(r||t),[f,p.type,r,t]),C=async()=>{if(b){x();return}try{o.symbol===`VET`?await re():await ee()}catch(e){console.error(c(`Transaction failed:`),e)}},w=t=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:t,title:c(`Transaction successful`),onDone:()=>{g?_():e(`main`)},showSocialButtons:!0}})},{sendTransaction:ee,txReceipt:T,error:E,isWaitingForWalletConfirmation:D,isTransactionPending:te,clauses:ne}=Zf({fromAddress:l?.address??``,receiverAddress:r||t,amount:a,tokenAddress:o.address,tokenName:o.symbol,onSuccess:()=>{w(T?.meta.txID??``)},onError:e=>{de(e??``)}}),{sendTransaction:re,txReceipt:O,error:ie,isWaitingForWalletConfirmation:ae,isTransactionPending:oe,clauses:se}=$f({fromAddress:l?.address??``,receiverAddress:r||t,amount:a,onSuccess:()=>{w(O?.meta.txID??``)},onError:e=>{de(e??``)}}),k=()=>o.symbol===`VET`?O:T,ce=D||ae,le=ce||te||oe,ue=()=>{e({type:`send-token`,props:{setCurrentContent:e,preselectedToken:o,initialAmount:a,initialToAddressOrDomain:t}})},de=e=>{console.error(`Transaction failed:`,e)},[fe,pe]=V.useState(null),[me,he]=V.useState(null),ge=h.availableGasTokens.length>0&&(u.isConnectedWithPrivy||u.isConnectedWithVeChain)&&!m?.delegatorUrl,{data:_e,isLoading:ve,error:ye,refetch:be}=wp({clauses:o.symbol===`VET`?se:ne,tokens:fe?[fe]:h.availableGasTokens,sendingAmount:a,sendingTokenSymbol:o.symbol,enabled:ge&&!!m?.genericDelegatorUrl}),xe=_e?.usedToken,Se=(ve||!_e)&&u.isConnectedWithPrivy&&!m?.delegatorUrl,Ce=V.useCallback(e=>{pe(e),he(e),setTimeout(()=>be(),100)},[be]),we=!!xe&&!ye;return V.useEffect(()=>{ye&&fe&&pe(null)},[ye,fe]),J(K,{children:[J(Z,{children:[q(L,{children:`Send`}),q(Ja,{isDisabled:le,onClick:ue}),q(F,{isDisabled:le})]}),q(P,{children:q(z,{spacing:6,align:`stretch`,w:`full`,children:J(z,{spacing:4,w:`full`,children:[q(Ep,{label:c(`From`),address:l?.address??``,domain:l?.domain,imageSrc:l?.image??``,imageAlt:`From account`,balance:Number(o.balance),tokenAddress:o.address}),q(Ep,{label:c(`To`),address:r||t,domain:n,imageSrc:S??``,imageAlt:`To account`,tokenAddress:o.address}),u.isConnectedWithPrivy&&q(Np,{estimation:_e,isLoading:ve,isLoadingTransaction:le,onTokenChange:Ce,clauses:o.symbol===`VET`?se:ne,userSelectedToken:me}),J(z,{spacing:0,w:`full`,justifyContent:`flex-start`,children:[q(R,{fontSize:`sm`,fontWeight:`light`,textAlign:`left`,w:`full`,color:y,children:c(`Amount`)}),J(M,{justifyContent:`flex-start`,w:`full`,children:[J(R,{fontSize:`xl`,fontWeight:`semibold`,textAlign:`left`,"data-testid":`send-summary-amount`,color:v,children:[Number(a).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}),` `,o.symbol]}),J(R,{color:y,children:[`≈ `,s]})]})]})]})})}),q(I,{children:q(Ap,{transactionError:o.symbol===`VET`?ie:E,isSubmitting:le,isTxWaitingConfirmation:ce,onConfirm:C,transactionPendingText:c(`Sending...`),txReceipt:k(),buttonText:c(`Confirm`),isDisabled:le||Se,gasEstimationError:ye,hasEnoughGasBalance:we,isLoadingGasEstimation:ve,showGasEstimationError:!m?.delegatorUrl&&u.isConnectedWithPrivy,context:`send`})})]})},ol=({setCurrentContent:e})=>{let{t}=Y(),{account:n}=Q(),{isolatedView:r}=Jc(),i=B(`colors`,`vechain-kit-text-primary`),a=B(`colors`,`vechain-kit-text-secondary`);return J(K,{children:[J(Z,{children:[q(L,{children:t(`Receive`)}),!r&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),J(tt,{maxW:`container.lg`,children:[q(P,{children:J(z,{spacing:4,align:`center`,w:`full`,children:[q(Wi,{value:n?.address??``,size:200,removeQrCodeBehindLogo:!0,eyeRadius:4,logoPaddingStyle:`circle`,style:{borderRadius:`16px`}}),q(Ya,{wallet:n,style:{w:`85%`}}),q(R,{fontSize:`sm`,textAlign:`center`,color:i,children:t(`Copy your address or scan this QR code`)}),q(R,{fontSize:`xs`,textAlign:`center`,color:a,children:t(`This address only supports VeChain assets.`)})]})}),q(I,{pt:0})]})]})},sl=({quotes:e,selectedQuote:t,toTokenAddress:n,onSelectQuote:r,onBack:i})=>{let{t:a}=Y(),{darkMode:c}=$(),{currentCurrency:l}=us(),{account:u}=Q(),{exchangeRates:d,prices:f}=ss(),{tokens:m}=ds({address:u?.address??``}),[h,g]=G(!1),_=W(()=>n&&m.find(e=>o(e.address,n))||null,[n,m]),v=e.filter(e=>!e.reverted),y=e.filter(e=>e.reverted),b=W(()=>v.length===0?null:v.reduce((e,t)=>{let n=BigInt(e.outputAmount||`0`);return BigInt(t.outputAmount||`0`)>n?t:e}),[v]),x=W(()=>{let e=n&&f[n]||0;return v.map(t=>{let n=gi(BigInt(t.outputAmount||`0`)),r=Number(n)*e,i=eo(r,l,d),a=b&&t.aggregatorName===b.aggregatorName,o=0;if(b&&!a){let e=BigInt(b.outputAmount||`0`),n=BigInt(t.outputAmount||`0`);o=Number(n-e)/Number(e)*100}return{...t,outputAmountFormatted:n,valueUsd:r,valueInCurrency:i,isBest:a,percentageDiff:o}}).sort((e,t)=>{let n=BigInt(e.outputAmount||`0`),r=BigInt(t.outputAmount||`0`);return Number(r-n)})},[v,n,f,l,d,b]);return J(K,{children:[J(Z,{children:[q(L,{children:a(`Found following rates`)}),q(Ja,{onClick:i}),q(F,{})]}),q(tt,{h:[`540px`,`auto`],p:0,children:q(P,{children:J(z,{spacing:6,align:`stretch`,children:[x.length>0&&q(z,{spacing:2,align:`stretch`,children:x.map(e=>{let n=t?.aggregatorName===e.aggregatorName;return J(A,{p:2.5,borderRadius:`xl`,bg:c?`#00000038`:`gray.50`,borderWidth:1,borderColor:n?`blue.500`:c?`whiteAlpha.200`:`gray.200`,cursor:`pointer`,onClick:()=>r(e),_hover:{borderColor:n?`blue.500`:c?`whiteAlpha.400`:`gray.300`},position:`relative`,children:[(e.isBest||!e.isBest&&e.percentageDiff<0)&&q(A,{position:`absolute`,top:-1,left:0,zIndex:1,children:e.isBest?q(We,{colorScheme:`purple`,borderRadius:`sm`,fontSize:`2xs`,px:1.5,py:.5,borderTopLeftRadius:`xl`,borderBottomRightRadius:`md`,children:a(`Best`)}):J(We,{colorScheme:`red`,borderRadius:`xs`,fontSize:`2xs`,px:1.5,py:.5,borderTopLeftRadius:`xl`,borderBottomRightRadius:`md`,children:[e.percentageDiff.toFixed(2),`%`]})}),J(z,{align:`stretch`,spacing:1.5,marginTop:4,children:[J(M,{justify:`space-between`,align:`center`,children:[J(M,{spacing:1.5,align:`center`,children:[e.aggregator.getIcon(`20px`),q(R,{fontSize:`md`,fontWeight:`bold`,children:e.aggregatorName})]}),q(M,{align:`center`,spacing:1.5,children:_&&J(K,{children:[s[_.symbol]?V.cloneElement(s[_.symbol],{boxSize:`24px`,borderRadius:`full`}):p[_.symbol]?q(ut,{src:p[_.symbol],alt:`${_.symbol} logo`,boxSize:`24px`,borderRadius:`full`}):null,q(Ft,{label:Number(e.outputAmountFormatted).toLocaleString(void 0,{maximumFractionDigits:18}),hasArrow:!0,placement:`top`,children:J(R,{fontSize:`md`,fontWeight:`bold`,textAlign:`right`,whiteSpace:`nowrap`,children:[Number(e.outputAmountFormatted).toLocaleString(void 0,{minimumFractionDigits:4}),` `,_.symbol]})})]})})]}),J(M,{justify:`space-between`,align:`center`,children:[q(R,{fontSize:`xs`,color:c?`whiteAlpha.500`:`blackAlpha.500`,children:e.gasCostVTHO&&e.gasCostVTHO>0?`Gas: ${e.gasCostVTHO.toLocaleString(void 0,{maximumFractionDigits:2})} VTHO`:``}),e.valueUsd>0&&J(R,{fontSize:`xs`,color:c?`whiteAlpha.600`:`blackAlpha.600`,textAlign:`right`,whiteSpace:`nowrap`,children:[`≈ `,no(e.valueInCurrency,{currency:l})]})]})]})]},e.aggregatorName)})}),y.length>0&&J(A,{children:[J(M,{justify:`space-between`,cursor:`pointer`,onClick:()=>g(!h),py:2,children:[J(R,{fontSize:`sm`,color:c?`whiteAlpha.600`:`blackAlpha.600`,children:[y.length,` `,a(`rate`),y.length===1?``:`s`,` `,a(`unavailable`)]}),q(N,{as:h?ir:tr,boxSize:4,color:c?`whiteAlpha.600`:`blackAlpha.600`})]}),q($e,{in:h,animateOpacity:!0,children:q(z,{spacing:2,align:`stretch`,pt:2,children:y.map(e=>q(A,{p:2,borderRadius:`xl`,bg:c?`#00000038`:`gray.50`,opacity:.6,children:J(M,{justify:`space-between`,children:[J(M,{spacing:2,align:`center`,children:[e.aggregator.getIcon(`20px`),q(R,{fontSize:`md`,fontWeight:`medium`,children:e.aggregatorName})]}),q(R,{fontSize:`xs`,color:c?`whiteAlpha.500`:`blackAlpha.500`,children:a(`Unable to fetch the price`)})]})},e.aggregatorName))})})]}),x.length===0&&y.length===0&&q(z,{spacing:2,py:8,color:c?`whiteAlpha.600`:`blackAlpha.600`,children:q(R,{fontSize:`lg`,children:a(`No quotes available`)})})]})})}),q(I,{})]})},cl=e=>e===`0x`||e===Ci||!e,ll=(e,t,n,r)=>{if(!e||!t||!n||!r)return null;let i=t.toLowerCase(),a=n.toLowerCase(),o=r.toLowerCase(),s=cl(n),c=cl(r),l=[],u=[];if(e.outputs&&Array.isArray(e.outputs))for(let t of e.outputs)t.events&&Array.isArray(t.events)&&l.push(...t.events),t.transfers&&Array.isArray(t.transfers)&&u.push(...t.transfers);let d=Qr.createInterface().getEvent(`Transfer`),f=d.topicHash.toLowerCase(),p=l.filter(e=>e.topics&&e.topics.length>0&&e.topics[0]?.toString().toLowerCase()===f),m=null,h=null;if(s){for(let e of u)if(e.sender?.toLowerCase()===i&&e.amount&&e.amount!==`0x0`&&e.amount!==`0x`){let t=BigInt(e.amount);if(t>0n){m=t;break}}}if(c){for(let e of u)if(e.recipient?.toLowerCase()===i&&e.amount&&e.amount!==`0x0`&&e.amount!==`0x`){let t=BigInt(e.amount);if(t>0n){h=t;break}}}if(p.length>0)for(let e of p)try{let t=pi({abi:[d],data:e.data.toString(),topics:e.topics.map(e=>e.toString())});if(!t.args||!(`from`in t.args)||!(`to`in t.args)||!(`value`in t.args))continue;let n=t.args.from?.toString().toLowerCase(),r=t.args.to?.toString().toLowerCase(),l=t.args.value,u=e.address.toLowerCase();!s&&n===i&&u&&u===a&&l>0n&&m===null&&(m=l),!c&&r===i&&u&&u===o&&l>0n&&h===null&&(h=l)}catch(e){console.warn(`Failed to decode transfer event:`,e);continue}return{fromAmount:m??0n,toAmount:h??0n}},ul=({setCurrentContent:e,fromTokenAddress:t,toTokenAddress:n})=>{let{t:r}=Y(),{account:i,connection:a}=Q(),{currentCurrency:c}=us(),{network:l,feeDelegation:u}=$(),{isolatedView:d,closeAccountModal:f}=Jc(),m=B(`colors`,`vechain-kit-card`),h=B(`colors`,`vechain-kit-card-hover`),g=B(`colors`,`vechain-kit-border`),_=B(`colors`,`vechain-kit-text-primary`),v=B(`colors`,`vechain-kit-text-secondary`),y=B(`colors`,`vechain-kit-text-tertiary`),{preferences:b}=Cp(),{sortedTokens:x}=ds({address:i?.address??``}),[S,C]=G(`main`),[w,ee]=G(null),[T,E]=G(null),[D,te]=G(``),[ne,re]=G(!1),[O,ie]=G(1),[ae,oe]=G(!1),[se,ce]=G(`1`),[le,ue]=G(null),[de,fe]=V.useState(null),[pe,me]=V.useState(null),[he,ge]=V.useState([]),{prices:_e,exchangeRates:ve}=ss(),ye=O===1;V.useEffect(()=>{ce(O===1?`1`:O===.5?`0.5`:O===3?`3`:O.toString())},[O]),V.useEffect(()=>{if(x.length!==0){if((t||n)&&(!w||!T)){if(t&&!w){let e=x.find(e=>o(e.address,t));e&&ee(e)}if(n&&!T){let e=x.find(e=>o(e.address,n));e&&E(e)}return}if(!w&&!T){let e=x.find(e=>e.symbol===`VET`);e&&ee(e);let t=x.find(e=>e.symbol===`B3TR`);if(!t)try{let e=k(l.type).b3trContractAddress;e&&(t=x.find(t=>o(t.address,e)))}catch(e){console.warn(`Failed to get B3TR address from config:`,e)}t&&E(t)}}},[x,w,T,t,n,l.type]);let be=H(()=>{if(w&&T){let e=w;ee(T),E(e),te(``)}},[w,T]);V.useEffect(()=>{ue(null)},[w?.address,T?.address,D]);let{bestQuote:xe,quotes:Se,isLoading:Ce,from:we,to:Te}=yc(w,T,D,i?.address??``,O,!!w&&!!T&&Number(D)>0),Ee=W(()=>{if(!D||Number(D)<=0||!we)return 0n;try{return xi(D,we.decimals)}catch{return 0n}},[D,we?.decimals]),De=le||xe,Oe=W(()=>{if(!De?.outputAmount||!Te)return`0`;try{return _i(De.outputAmount,Te.decimals)}catch{return`0`}},[De,Te?.decimals]),ke=W(()=>{if(!w||!D)return 0;let e=_e[w.address]||0;return eo(Number(D)*e,c,ve)},[w?.address,D,_e,c,ve]),Ae=W(()=>{if(!T||!Oe)return 0;let e=_e[T.address]||0;return eo(Number(Oe)*e,c,ve)},[T?.address,Oe,_e,c,ve]),je=W(()=>!w||!T||!i?.address||Ee===0n?null:{fromTokenAddress:w.address,toTokenAddress:T.address,amountIn:Ee.toString(),userAddress:i.address,slippageTolerance:O},[w,T,i?.address,Ee,O]),Me=De?.gasCostVTHO??0;V.useEffect(()=>{(async()=>{if(!De||!je||!De.aggregator){ge([]);return}try{ge(await De.aggregator.buildSwapTransaction(je,De))}catch(e){console.error(`Failed to build swap clauses for gas estimation:`,e),ge([])}})()},[De,je]);let Ne=b.availableGasTokens.length>0&&(a.isConnectedWithPrivy||a.isConnectedWithVeChain)&&!u?.delegatorUrl,{data:Pe,isLoading:Fe,error:Ie,refetch:Le}=wp({clauses:he,tokens:de?[de]:b.availableGasTokens,sendingAmount:D,sendingTokenSymbol:w?.symbol??``,enabled:Ne&&!!u?.genericDelegatorUrl&&he.length>0}),Re=Pe?.usedToken,ze=(Fe||!Pe)&&a.isConnectedWithPrivy&&!u?.delegatorUrl,Be=V.useCallback(e=>{fe(e),me(e),setTimeout(()=>Le(),100)},[Le]),Ve=!!Re&&!Ie;V.useEffect(()=>{Ie&&de&&fe(null)},[Ie,de]);let{executeSwap:He,isTransactionPending:Ue,isWaitingForWalletConfirmation:We,txReceipt:Ge,status:Ke,error:qe}=uc(je,De),Je=H(()=>{let t=Ge?.meta.txID??``,n=r(`Swap successful`,{defaultValue:`Swap successful`}),a;if(Ge&&w&&T&&i?.address){let e=ll(Ge,i.address,w.address,T.address);if(e&&we&&Te)try{let t=we.decimals,n=Te.decimals,i=_i(e.fromAmount,t),o=_i(e.toAmount,n),s=e=>{let t=Number(e);return t>=1e3?t.toLocaleString(void 0,{maximumFractionDigits:2}):t.toLocaleString(void 0,{maximumFractionDigits:6,minimumFractionDigits:0})};a=r(`You successfully swapped {fromAmount} {fromSymbol} for {toAmount} {toSymbol}`,{fromAmount:s(i),fromSymbol:w.symbol,toAmount:s(o),toSymbol:T.symbol,defaultValue:`You successfully swapped ${s(i)} ${w.symbol} for ${s(o)} ${T.symbol}`})}catch(e){console.warn(`Failed to format swap amounts:`,e)}}!a&&w&&T&&(a=r(`You successfully swapped {fromToken} for {toToken}`,{fromToken:w.symbol,toToken:T.symbol,defaultValue:`You successfully swapped ${w.symbol} for ${T.symbol}`})),e({type:`successful-operation`,props:{setCurrentContent:e,txId:t,title:n,description:a,onDone:()=>{d?f():e(`main`)},showSocialButtons:!0}})},[w,T,D,De,Ge,i?.address,e,r,d,f]),Xe=H(e=>{let t=typeof e==`string`?e:e.message;console.error(`Swap failed:`,t)},[w,T,D]),[Ze,Qe]=V.useState(!1);V.useEffect(()=>{if(Ke===`ready`){Qe(!1);return}Ze||(Ke===`success`&&Ge&&!Ge.reverted?(Qe(!0),Je()):Ke===`error`&&qe?Xe(qe?.reason||qe?.message||String(qe)):Ge?.reverted&&Xe(`Transaction reverted`))},[Ke,Ge,qe,Je,Xe,Ze]);let et=H(e=>{if(ee(e),e.symbol===`VET`&&!T){let e=x.find(e=>e.symbol===`B3TR`);if(!e)try{let t=k(l.type).b3trContractAddress;t&&(e=x.find(e=>o(e.address,t)))}catch(e){console.warn(`Failed to get B3TR address from config:`,e)}e&&E(e)}C(`main`)},[T,x,l.type]),nt=H(e=>{E(e),C(`main`)},[]),rt=H(e=>{(/^\d*\.?\d*$/.test(e)||e===``)&&te(e)},[]),it=H(()=>{w&&te(w.balance)},[w]),at=e=>{if(!e)return null;let t=s[e.symbol],n=p[e.symbol];return{symbol:e.symbol,logoComponent:t,logoUrl:n,balance:e.balance,value:e.valueInCurrency}},ot=at(w),st=at(T);return S===`select-from-token`?q(rl,{setCurrentContent:e,onSelectToken:et,onBack:()=>C(`main`),showAllTokens:!1}):S===`select-quote`?q(sl,{quotes:Se,selectedQuote:De,toTokenAddress:T?.address??null,onSelectQuote:e=>{ue(e),C(`main`)},onBack:()=>C(`main`)}):S===`select-to-token`?q(rl,{setCurrentContent:e,onSelectToken:nt,onBack:()=>C(`main`),showAllTokens:!0}):J(K,{children:[J(Z,{children:[q(L,{children:r(`Swap`)}),!d&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),q(tt,{maxW:`container.lg`,p:0,children:q(P,{children:J(z,{spacing:2,align:`stretch`,w:`full`,children:[J(A,{px:6,py:a.isConnectedWithPrivy?2:6,borderRadius:`xl`,bg:m,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:v,mb:2,children:r(`From`)}),J(z,{align:`stretch`,spacing:2,children:[J(M,{justify:`space-between`,children:[q(dt,{placeholder:`0`,value:D,onChange:e=>rt(e.target.value),fontSize:`4xl`,fontWeight:`bold`,variant:`unstyled`,"data-testid":`swap-amount-input`,type:`number`,inputMode:`decimal`,color:ot&&D&&Number(D)>Number(ot.balance)?`red.500`:_}),ot?J(j,{onClick:()=>C(`select-from-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:v,borderColor:g,_hover:{bg:h,borderColor:g},leftIcon:ot.logoComponent?V.cloneElement(ot.logoComponent,{boxSize:`20px`,borderRadius:`full`}):ot.logoUrl?q(ut,{src:ot.logoUrl,alt:`${ot.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:q(A,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:q(R,{fontSize:`8px`,fontWeight:`bold`,color:_,children:ot.symbol.slice(0,3)})})}):void 0,children:[ot.symbol,q(N,{as:tr,boxSize:5,color:v})]}):J(j,{onClick:()=>C(`select-from-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:v,borderColor:g,_hover:{bg:h,borderColor:g,color:v},children:[r(`Select token`),q(N,{as:tr,boxSize:5,color:v})]})]}),ot&&J(M,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:v,children:[q(M,{spacing:2,alignItems:`center`,children:ke>0&&J(R,{color:v,children:[`≈`,` `,no(ke,{currency:c})]})}),q(R,{cursor:`pointer`,_hover:{color:v,textDecoration:`underline`},onClick:it,noOfLines:1,overflow:`hidden`,textOverflow:`ellipsis`,children:r(`Swap all`,{defaultValue:`Swap all`})})]})]})]}),q(Ye,{position:`relative`,marginTop:`-20px`,marginBottom:`-20px`,marginX:`auto`,bg:m,borderRadius:`xl`,w:`40px`,h:`40px`,zIndex:2,cursor:!w||!T||Ce?`not-allowed`:`pointer`,onClick:!w||!T||Ce?void 0:be,opacity:!w||!T||Ce?.5:1,children:Ce?q(At,{size:`sm`}):q(N,{as:Gn,boxSize:5,color:v})}),J(A,{px:6,py:a.isConnectedWithPrivy?2:6,borderRadius:`xl`,bg:m,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:v,mb:2,children:r(`To`)}),J(z,{align:`stretch`,spacing:2,children:[J(M,{justify:`space-between`,alignItems:`center`,children:[q(dt,{value:Number(Oe).toLocaleString(void 0,{maximumFractionDigits:Number(Oe)>1e4?0:2}),readOnly:!0,variant:`unstyled`,fontSize:`4xl`,fontWeight:`bold`,"data-testid":`swap-output-amount`,color:_}),st?J(j,{onClick:()=>C(`select-to-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:v,borderColor:g,_hover:{bg:h,borderColor:g},leftIcon:st.logoComponent?V.cloneElement(st.logoComponent,{boxSize:`20px`,borderRadius:`full`}):st.logoUrl?q(ut,{src:st.logoUrl,alt:`${st.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:q(A,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:q(R,{fontSize:`8px`,fontWeight:`bold`,color:_,children:st.symbol.slice(0,3)})})}):void 0,children:[st.symbol,q(N,{as:tr,boxSize:5,color:v})]}):J(j,{onClick:()=>C(`select-to-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:v,borderColor:g,_hover:{bg:h,borderColor:g,color:v},children:[r(`Select token`),q(N,{as:tr,boxSize:5,color:v})]})]}),st&&J(M,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:v,children:[q(M,{spacing:2,alignItems:`center`,children:Ae>0&&J(R,{color:v,children:[`≈`,` `,no(Ae,{currency:c})]})}),q(A,{})]})]})]}),q($e,{in:ne&&!!De,animateOpacity:!0,children:J(z,{spacing:1,align:`stretch`,p:4,borderRadius:`xl`,bg:m,children:[De&&J(M,{justify:`space-between`,children:[J(R,{fontSize:`xs`,color:v,children:[r(`Source`),`:`]}),J(M,{spacing:1.5,cursor:`pointer`,onClick:()=>C(`select-quote`),_hover:{opacity:.8},alignItems:`center`,children:[De.aggregator?.getIcon(`12px`),q(R,{fontSize:`xs`,color:_,children:De.aggregatorName})]})]}),J(z,{align:`stretch`,spacing:2,children:[J(M,{justify:`space-between`,cursor:`pointer`,onClick:()=>oe(!ae),children:[J(R,{fontSize:`xs`,color:v,children:[r(`Slippage tolerance`),`:`]}),J(R,{fontSize:`xs`,fontWeight:`medium`,color:_,children:[O,`%`]})]}),q($e,{in:ae,animateOpacity:!0,children:q(z,{spacing:3,align:`stretch`,pt:2,children:J(M,{spacing:2,children:[q(j,{size:`sm`,variant:ye?`solid`:`outline`,colorScheme:ye?`blue`:`gray`,onClick:()=>{ie(1)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,color:_,children:`Auto`}),q(j,{size:`sm`,variant:O===.5?`solid`:`outline`,colorScheme:O===.5?`blue`:`gray`,onClick:()=>{ie(.5)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,color:_,children:`0.5%`}),q(j,{size:`sm`,variant:O===3?`solid`:`outline`,colorScheme:O===3?`blue`:`gray`,onClick:()=>{ie(3)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,color:_,children:`3%`}),J(ft,{size:`sm`,flex:1,children:[q(dt,{value:se,onChange:e=>{let t=e.target.value;if((/^\d*\.?\d*$/.test(t)||t===``)&&(ce(t),t!==``)){let e=parseFloat(t);!isNaN(e)&&e>=0&&e<=100&&ie(e)}},placeholder:`1`,borderRadius:`md`,textAlign:`right`,pr:8,fontSize:`xs`,color:_}),q(mt,{width:`2rem`,pointerEvents:`none`,children:q(R,{fontSize:`2xs`,color:v,children:`%`})})]})]})})})]}),J(M,{justify:`space-between`,children:[J(R,{fontSize:`xs`,color:v,children:[r(`Gas fee`),`:`]}),q(R,{fontSize:`xs`,fontWeight:`medium`,color:_,children:Me>0?`${Me.toLocaleString(void 0,{maximumFractionDigits:2})} VTHO`:`-`})]})]})}),q(A,{minH:`24px`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:De&&q(j,{variant:`ghost`,size:`xs`,onClick:()=>re(!ne),rightIcon:q(N,{color:y,_hover:{color:v},as:ne?Jn:Un}),fontSize:`xs`,fontWeight:`light`,color:y,_hover:{color:v},children:r(ne?`Show Less`:`Show More`)})}),he.length>0&&a.isConnectedWithPrivy&&q(Np,{estimation:Pe,isLoading:Fe,isLoadingTransaction:Ue,onTokenChange:Be,clauses:he,userSelectedToken:pe})]})})}),q(I,{children:q(Ap,{buttonText:r(`Swap`),onConfirm:He,isSubmitting:Ue,isTxWaitingConfirmation:We,transactionPendingText:r(`Swapping...`),txReceipt:Ge,transactionError:qe,onError:e=>{Xe(e)},isDisabled:!w||!T||!D||Number(D)<=0||Ce||!De||De?.reverted===!0||!!(ot&&D&&Number(D)>Number(ot.balance))||ze,gasEstimationError:Ie,hasEnoughGasBalance:Ve,isLoadingGasEstimation:Fe,showGasEstimationError:!u?.delegatorUrl&&a.isConnectedWithPrivy,context:`transaction`})})]})},dl=({setCurrentContent:e,onBack:t=()=>e(`settings`),initialContentSource:n=`settings`})=>{let{t:r}=Y(),{isolatedView:i}=Jc(),a=B(`colors`,`vechain-kit-text-primary`),o=B(`colors`,`vechain-kit-text-secondary`),s=()=>{t()};return J(K,{children:[J(Z,{children:[q(L,{"data-testid":`modal-title`,children:r(`Choose your account name`)}),!i&&q(Ja,{onClick:s}),q(F,{})]}),q(P,{children:J(z,{spacing:6,align:`center`,py:8,children:[q(N,{as:Fr,boxSize:16,color:o}),J(z,{spacing:2,children:[q(R,{fontSize:`lg`,fontWeight:`500`,textAlign:`center`,color:a,children:r(`Finally say goodbye to 0x addresses`)}),q(R,{fontSize:`md`,color:o,textAlign:`center`,px:4,children:r(`Name your account to make it easier to exchange assets`)})]})]})}),q(I,{children:q(j,{variant:`vechainKitPrimary`,onClick:()=>e({type:`choose-name-search`,props:{name:``,setCurrentContent:e,initialContentSource:n}}),"data-testid":`choose-name-button`,children:r(`Choose name`)})})]})},fl=({domain:e,isCurrentDomain:t,onSelect:n})=>{let{connection:r}=Q(),{t:a}=Y(),o=Ws(e.name,r.network),s=B(`colors`,`vechain-kit-card`),c=B(`colors`,`vechain-kit-card-hover`),l=B(`colors`,`vechain-kit-border`),u=B(`colors`,`vechain-kit-text-primary`),f=B(`colors`,`vechain-kit-text-secondary`),p=B(`colors`,`vechain-kit-card`);return q(_t,{p:4,bg:s,borderRadius:`xl`,cursor:t?`default`:`pointer`,opacity:t?.7:1,border:`1px solid ${l}`,_hover:{bg:t?c:s,borderColor:l},onClick:()=>!t&&n(e.name),transition:`all 0.2s`,children:J(M,{spacing:3,align:`center`,children:[q(kp,{props:{width:`40px`,height:`40px`,src:o.image??i(e.name),alt:e.name}}),J(z,{align:`start`,spacing:0,flex:1,children:[q(R,{color:u,fontSize:`md`,fontWeight:`500`,children:d(e.name,24,0)}),t&&q(R,{fontSize:`sm`,color:f,children:a(`Current domain`)})]}),t&&q(Nt,{size:`sm`,bg:p,color:u,px:3,py:1,borderRadius:`full`,children:a(`Current`)})]})},e.name)},pl=({onUnset:e})=>{let t=B(`colors`,`vechain-kit-card`),n=B(`colors`,`vechain-kit-card-hover`),r=B(`colors`,`vechain-kit-border`),i=B(`colors`,`vechain-kit-text-primary`),a=B(`colors`,`vechain-kit-text-secondary`),o=B(`colors`,`vechain-kit-error`),{t:s}=Y();return q(_t,{p:4,bg:t,borderRadius:`xl`,cursor:`pointer`,opacity:1,border:`1px solid ${r}`,_hover:{bg:n,borderColor:r,color:`red.400`},onClick:e,transition:`all 0.2s`,role:`button`,"aria-label":s(`Unset current domain`),children:J(M,{spacing:3,align:`center`,children:[q(A,{width:`40px`,height:`40px`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`,bg:t,children:q(N,{as:Ir,fontSize:`18px`,color:o})}),J(z,{align:`start`,spacing:0,flex:1,children:[q(R,{color:i,fontSize:`md`,fontWeight:`500`,children:s(`Unset current domain`)}),q(R,{fontSize:`sm`,color:a,children:s(`Remove your current domain name`)})]})]})},`unset-domain-list-item`)},ml=({domains:e,onDomainSelect:t,onUnsetDomain:n,isLoading:r})=>{let{t:i}=Y(),{account:a}=Q(),o=B(`colors`,`vechain-kit-card`),s=B(`colors`,`vechain-kit-card-hover`),c=B(`colors`,`vechain-kit-text-primary`),l=B(`colors`,`vechain-kit-text-secondary`);return e.length===0||r?null:q(Ie,{allowToggle:!0,children:q(Re,{border:`none`,children:({isExpanded:u})=>J(K,{children:[J(Le,{bg:o,borderRadius:`xl`,_hover:{bg:s},opacity:r?.7:1,transition:`all 0.2s`,disabled:r,children:[q(A,{flex:`1`,textAlign:`left`,py:2,children:q(R,{fontWeight:`500`,color:c,children:r?i(`Loading your domains...`):`${i(`Your existing domains`)} (${e.length})`})}),q(N,{as:u?ir:tr,fontSize:`20px`,color:l})]}),q(ze,{pb:4,pt:2,children:J(gt,{spacing:2,children:[e.map(e=>q(fl,{domain:e,isCurrentDomain:e.name===a?.domain,onSelect:t},e.name)),a?.domain&&q(pl,{onUnset:n})]})})]})})})},hl=({name:e,setCurrentContent:t,initialContentSource:n=`settings`})=>{let{t:r}=Y(),{account:i}=Q(),{darkMode:a}=$(),{isolatedView:o}=Jc(),[s,c]=G(Ui(e)),[l,u]=G(null),[d,f]=G(!1),[p,m]=G(!1),[h,g]=G(!1),_=B(`colors`,`vechain-kit-error`),v=B(`colors`,`vechain-kit-success`),y=B(`colors`,`vechain-kit-text-secondary`),{data:b,isLoading:x}=mo(s),{data:S,isLoading:C}=uo(`${s}.veworld.vet`),{data:w,isLoading:ee}=Oo(s),{data:T,isLoading:E}=No(i?.address,``),D=x||C||ee;U(()=>{if(!h)return;let e=/[^a-zA-Z0-9-]|\s/.test(s);s.length<3?(u(r(`Name must be at least 3 characters long`)),m(!1),f(!1)):e?(u(r(`Only letters, numbers, and hyphens are allowed`)),m(!1),f(!1)):w?(u(r(`This domain is protected`)),m(!1),f(!1)):b?S?.address?.toLowerCase()===i?.address?.toLowerCase()?(u(null),m(!0),f(!0)):(u(r(`This domain is already taken`)),m(!1),f(!1)):x||(u(null),m(!0),f(!1))},[s,h,b,x,S,i?.address,w,p,D]);let te=()=>{p&&!l&&t({type:`choose-name-summary`,props:{fullDomain:s+`.veworld.vet`,isOwnDomain:d,setCurrentContent:t,initialContentSource:n}})},ne=e=>{let r=e.split(`.`);t({type:`choose-name-summary`,props:{fullDomain:e,domainType:r.length>2?`${r[1]}.${r[2]}`:`vet`,isOwnDomain:!0,setCurrentContent:t,initialContentSource:n}})},re=()=>{t({type:`choose-name-summary`,props:{fullDomain:``,domainType:``,isOwnDomain:!1,isUnsetting:!0,setCurrentContent:t,initialContentSource:n}})},O=()=>{t(n)};return J(K,{children:[J(Z,{children:[q(L,{"data-testid":`modal-title`,children:r(`Choose Name`)}),!o&&q(Ja,{onClick:O}),q(F,{})]}),q(P,{children:J(z,{spacing:4,align:`stretch`,children:[q(ml,{domains:T?.domains||[],onDomainSelect:ne,onUnsetDomain:re,isLoading:E}),J(ft,{size:`lg`,children:[q(dt,{placeholder:r(`Enter your name`),value:s,onChange:e=>{c(Ui(e.target.value)),h||g(!0)},paddingRight:`120px`,fontSize:`lg`,height:`60px`,bg:a?`#00000038`:`white`,border:`1px solid ${a?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${a?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${a?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},isInvalid:!!l,"data-testid":`domain-input`}),q(mt,{width:`auto`,paddingRight:`12px`,h:`full`,children:q(A,{mr:4,fontSize:`sm`,color:y,children:`.veworld.vet`})})]}),l&&h&&q(R,{color:_,fontSize:`sm`,"data-testid":`domain-availability-status`,children:l}),!l&&h&&s.length>=3&&q(R,{fontSize:`sm`,color:p?v:_,fontWeight:`500`,"data-testid":`domain-availability-status`,children:r(d?`YOU OWN THIS`:p?`AVAILABLE`:`UNAVAILABLE`)})]})}),q(I,{children:q(j,{variant:`vechainKitPrimary`,isDisabled:!p||!!l||w||D,onClick:te,"data-testid":`continue-button`,children:r(`Continue`)})})]})},gl=({setCurrentContent:e,fullDomain:t,domainType:n=`veworld.vet`,isOwnDomain:r,isUnsetting:i=!1,initialContentSource:a=`settings`})=>{let{t:o}=Y(),s=B(`colors`,`vechain-kit-text-primary`),{isolatedView:c,closeAccountModal:l}=Jc(),{account:u,connectedWallet:d,connection:f}=Q(),{data:p}=Pf(u?.address??``,d?.address??``,3),{open:m}=Pd(),{preferences:h}=Cp(),{feeDelegation:g}=$(),_=e=>{console.error(`Transaction failed:`,e)},v=ts({onSuccess:()=>D()}),y=n.endsWith(`veworld.vet`),b=bo({subdomain:t.split(`.veworld.vet`)[0],domain:n,alreadyOwned:r,onSuccess:()=>D()}),x=wo({domain:!i&&!y?t:``,alreadyOwned:r,onSuccess:()=>D()}),{sendTransaction:S,txReceipt:C,error:w,isWaitingForWalletConfirmation:ee,isTransactionPending:T,clauses:E}=i?v:y?b:x,D=()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:C?.meta.txID,title:o(i?`Domain unset`:`Domain set`),description:i?o(`Your domain has been unset successfully.`):o(`Your address has been successfully set to {{name}}`,{name:t}),onDone:()=>{c?l():e(a)}}})},te=async()=>{if(p){m();return}try{await S()}catch(e){console.error(`Transaction failed:`,e)}},ne=()=>{te()},re=()=>{e({type:`choose-name-search`,props:{setCurrentContent:e,name:t,initialContentSource:a}})},[O,ie]=V.useState(null),[ae,oe]=V.useState(null),se=h.availableGasTokens.length>0&&(f.isConnectedWithPrivy||f.isConnectedWithVeChain)&&!g?.delegatorUrl,{data:k,isLoading:ce,error:le,refetch:ue}=wp({clauses:E(),tokens:O?[O]:h.availableGasTokens,enabled:se&&!!g?.genericDelegatorUrl}),de=k?.usedToken,fe=(ce||!k)&&f.isConnectedWithPrivy&&!g?.delegatorUrl,pe=V.useCallback(e=>{ie(e),oe(e),setTimeout(()=>ue(),100)},[ue]),me=!!de&&!le;return V.useEffect(()=>{le&&O&&ie(null)},[le,O]),J(K,{children:[J(Z,{children:[q(L,{"data-testid":`confirm-domain`,children:o(i?`Confirm Unset Domain`:`Confirm Name`)}),q(Ja,{onClick:re,isDisabled:T}),q(F,{isDisabled:T})]}),J(P,{children:[J(z,{spacing:4,w:`full`,textAlign:`center`,children:[q(R,{fontSize:`lg`,color:s,children:o(i?`Are you sure you want to unset your current domain?`:`Are you sure you want to set your domain name to`)}),!i&&q(R,{fontSize:`xl`,fontWeight:`bold`,color:s,"data-testid":`preconfirm-domain-val`,children:`${t}`})]}),f.isConnectedWithPrivy&&q(Np,{estimation:k,isLoading:ce,isLoadingTransaction:T,onTokenChange:pe,clauses:E(),userSelectedToken:ae})]}),q(I,{gap:4,w:`full`,children:q(Ap,{transactionError:w,isSubmitting:T,isTxWaitingConfirmation:ee,onConfirm:te,onRetry:ne,transactionPendingText:o(i?`Unsetting current domain...`:`Claiming name...`),txReceipt:C,buttonText:o(`Confirm`),isDisabled:T||fe,onError:_,gasEstimationError:le,hasEnoughGasBalance:me,isLoadingGasEstimation:ce,showGasEstimationError:!g?.delegatorUrl&&f.isConnectedWithPrivy,context:`domain`})})]})},_l=()=>{let{t:e}=Y(),[t,n]=G(``),r=B(`colors`,`vechain-kit-card`),i=B(`colors`,`vechain-kit-text-secondary`),a=B(`colors`,`vechain-kit-text-tertiary`),o=B(`colors`,`vechain-kit-card`),s=B(`colors`,`vechain-kit-card-elevated`),c=[{question:e(`What is VeChain?`),answer:e(`VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.`)},{question:e(`What is a wallet?`),answer:e(`A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.`)},{question:e(`What is a Smart Account?`),answer:e(`A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.`)},{question:e(`How is my wallet secured?`),answer:e(`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.`)},{question:e(`How do I backup my wallet?`),answer:e(`Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.`)},{question:e(`What is a network?`),answer:e(`A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.`)},{question:e(`What is a domain name?`),answer:e(`A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".`)},{question:e(`What is Privy?`),answer:e(`Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.`)},{question:e(`What is VeBetterDAO?`),answer:e(`VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.`)},{question:e(`What is an x2earn application?`),answer:e(`An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.`)},{question:e(`What is B3TR?`),answer:e(`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.`)},{question:e(`What is VET?`),answer:e(`VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.`)},{question:e(`What is VTHO?`),answer:e(`VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.`)},{question:e(`How do I send tokens?`),answer:e(`You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.`)},{question:e(`What is fee delegation?`),answer:e(`Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.`)}].filter(e=>e.question.toLowerCase().includes(t.toLowerCase())||typeof e.answer==`string`&&e.answer.toLowerCase().includes(t.toLowerCase()));return J(z,{spacing:4,align:`stretch`,children:[J(ft,{size:`lg`,children:[q(dt,{placeholder:e(`Search FAQ`),bg:r,borderRadius:`xl`,height:`56px`,pl:12,value:t,onChange:e=>n(e.target.value)}),q(pt,{h:`56px`,w:`56px`,pl:4,children:q(kr,{color:a})})]}),c.length===0?J(z,{spacing:2,py:8,color:i,children:[q(N,{as:Pr,boxSize:12,opacity:.5}),q(R,{fontSize:`lg`,children:e(`No questions found`)}),q(R,{fontSize:`md`,children:e(`Try searching with a different term`)})]}):q(Ie,{allowMultiple:!0,children:c.map((e,t)=>q(Re,{border:`none`,mb:2,children:({isExpanded:t})=>J(K,{children:[J(Le,{bg:o,borderRadius:`xl`,color:i,_hover:{bg:s},children:[q(A,{flex:`1`,textAlign:`left`,py:2,children:q(R,{fontWeight:`500`,color:i,children:e.question})}),q(N,{as:t?ir:tr,fontSize:`20px`,opacity:.5})]}),q(ze,{pb:4,children:q(R,{fontSize:`sm`,color:i,opacity:.8,children:e.answer})})]})},t))})]})},vl=({onGoBack:e,showLanguageSelector:t=!0})=>{let{i18n:n,t:r}=Y(),{isolatedView:i}=Jc(),a=B(`colors`,`vechain-kit-card`),o=B(`colors`,`vechain-kit-border`),s=B(`colors`,`vechain-kit-border-hover`);return J(Op,{children:[J(Z,{children:[q(L,{children:r(`Help`)}),!i&&q(Ja,{onClick:e}),q(F,{})]}),q(P,{w:`full`,children:J(z,{spacing:6,align:`stretch`,children:[t&&q(Ot,{borderRadius:`md`,size:`sm`,width:`auto`,value:n.language,onChange:e=>{n.changeLanguage(e.target.value)},bg:a,borderColor:o,_hover:{borderColor:s},children:va.map(e=>q(`option`,{value:e,children:ba[e]},e))}),q(j,{as:ht,href:`https://docs.vechainkit.vechain.org/`,isExternal:!0,variant:`vechainKitSecondary`,rightIcon:q(N,{as:fr}),children:r(`For developers`)}),q(_l,{})]})}),q(I,{pt:0})]})},yl=({setCurrentContent:e,initialContentSource:t=`profile`})=>{let{t:n}=Y(),{network:i}=$(),{account:a}=Q(),o=B(`colors`,`vechain-kit-text-primary`),s=B(`colors`,`vechain-kit-error`),c=B(`colors`,`vechain-kit-card`),l=Zt(null),u=Zt(null),[d,f]=G(!1),{onUpload:p}=sc({compressImage:!0}),[m,h]=G(null),[g,_]=G(null),v=!!a?.domain,[y,b]=G(null),[x,S]=G(``),[C,w]=G(``),{register:ee,watch:T,formState:{errors:E,isValid:D}}=Hi({defaultValues:{displayName:a?.metadata?.display||``,description:a?.metadata?.description||``},mode:`onChange`});U(()=>{if(a?.metadata){let e=a.metadata;S(e.display||``),w(e.description||``),b(a.image?a.image.replace(`ipfs://`,``):null),h(e=>e??a.image??null)}},[a,i.type]);let te=T(),ne=async e=>{let t=e.target.files?.[0];if(t)try{f(!0),m&&URL.revokeObjectURL(m),h(URL.createObjectURL(t));let e=await p(t);if(!e)throw Error(`Failed to compress image`);_(await r(e.file,t.name,i.type))}catch(e){console.error(`Error uploading image:`,e),h(null)}finally{f(!1)}};U(()=>()=>{m&&URL.revokeObjectURL(m)},[m]);let re=()=>{let e={};return g!==y&&g&&(e.avatarIpfsHash=g),te.displayName!==x&&(e.displayName=te.displayName),te.description!==C&&(e.description=te.description),e},O=W(()=>{let e=re();return Object.keys(e).length>0},[re]),ie=()=>{e({type:`account-customization-summary`,props:{setCurrentContent:e,changes:re(),onDoneRedirectContent:t}})},ae=()=>{e(t)};return J(A,{children:[J(Z,{children:[q(L,{"data-testid":`modal-title`,children:n(`Customization`)}),q(Ja,{onClick:ae}),q(F,{})]}),J(P,{children:[J(Ge,{variant:`vechainKitBase`,position:`relative`,overflow:`visible`,justifyContent:`center`,alignItems:`center`,children:[J(A,{cursor:v?`pointer`:`default`,pt:2,onClick:()=>v&&l.current?.click(),children:[q(kp,{wallet:a,props:{width:`100px`,height:`100px`,boxShadow:`0px 0px 3px 2px #00000024`,src:m??void 0}}),v&&q(N,{as:$n,position:`absolute`,top:`80px`,left:`60%`,bg:c,color:o,p:`1`,borderRadius:`full`,boxSize:`6`}),d&&q(A,{display:`flex`,alignItems:`center`,justifyContent:`center`,backgroundColor:`rgba(0, 0, 0, 0.5)`,borderRadius:`full`,children:q(R,{fontSize:`xs`,color:`white`,children:d?`Uploading...`:`Processing...`})})]}),q(Ke,{w:`full`,backgroundColor:`none`,border:`none`,children:J(z,{spacing:6,children:[!v&&q(Gc,{}),q(Fc,{title:a?.domain??n(`Choose account name`),description:n(`Choose a unique .vet domain name for your account.`),onClick:()=>{a?.domain?e({type:`choose-name-search`,props:{name:``,setCurrentContent:e,initialContentSource:{type:`account-customization`,props:{setCurrentContent:e}}}}):e({type:`choose-name`,props:{setCurrentContent:e,initialContentSource:{type:`account-customization`,props:{setCurrentContent:e}},onBack:()=>e({type:`account-customization`,props:{setCurrentContent:e}})}})},leftIcon:Fr,rightIcon:rr,dataTestId:`set-domain-name-button`}),J(it,{isDisabled:!v,isInvalid:!!E.displayName,children:[q(at,{fontSize:`sm`,fontWeight:`medium`,color:o,children:n(`Display Name`)}),q(dt,{...ee(`displayName`,{maxLength:{value:25,message:n(`Display name must be less than 25 characters`)}}),placeholder:n(v?`Enter your display name`:`Set a domain first`),fontWeight:`medium`,color:o,"data-testid":`display-name-input`}),E.displayName&&q(R,{color:s,fontSize:`sm`,mt:1,fontWeight:`medium`,children:E.displayName.message})]}),J(it,{isDisabled:!v,isInvalid:!!E.description,children:[q(at,{fontSize:`sm`,fontWeight:`medium`,color:o,children:n(`Description`)}),q(Pt,{...ee(`description`,{maxLength:{value:100,message:n(`Description must be less than 100 characters`)}}),placeholder:n(`Eg: DevRel @ ENS Labs`),fontWeight:`medium`,color:o,"data-testid":`description-input`,minH:`50px`}),E.description&&q(R,{color:s,mt:1,fontSize:`sm`,fontWeight:`medium`,children:E.description.message})]})]})})]}),q(`input`,{type:`file`,ref:l,hidden:!0,accept:`image/*`,onChange:async e=>await ne(e)}),q(`input`,{type:`file`,ref:u,hidden:!0,accept:`image/*`,onChange:async e=>{e.preventDefault()}})]}),q(I,{w:`full`,children:q(j,{variant:`vechainKitPrimary`,onClick:ie,isDisabled:!v||!O||!D,isLoading:d,loadingText:n(`Preparing changes...`),"data-testid":`save-changes-button`,children:n(`Save Changes`)})})]})},bl=({setCurrentContent:e,changes:t,onDoneRedirectContent:n})=>{let{t:r}=Y(),{darkMode:i,network:a,feeDelegation:o}=$(),{account:s,connectedWallet:c,connection:l}=Q(),{preferences:u}=Cp(),{data:d}=Pf(s?.address??``,c?.address??``,3),{open:f}=Pd(),{handleSubmit:p}=Hi({defaultValues:{...t,avatarIpfsHash:t.avatarIpfsHash??void 0}}),m=s?.domain??``,{data:h}=Wo(m),g=zn(),{sendTransaction:_,txReceipt:v,error:y,isWaitingForWalletConfirmation:b,isTransactionPending:S,clauses:C}=Ho({resolverAddress:h,signerAccountAddress:s?.address??``,onSuccess:async()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:v?.meta.txID,title:r(`Profile Updated`),description:r(`Your changes have been saved successfully.`),onDone:()=>{e(n)}}});try{await pe()}catch(e){console.error(`Error refreshing data:`,e)}},onError:e=>{console.error(`Error updating text record:`,e)}}),w=W(()=>{let e=s?.domain??``,n={displayName:`display`,description:`description`,twitter:`com.x`,website:`url`,email:`email`,avatarIpfsHash:`avatar`};return Object.entries(t).filter(e=>e[1]!==void 0&&e[1]!==null).map(([t,r])=>({domain:e,key:n[t],value:t===`avatarIpfsHash`?`ipfs://${r}`:r}))},[t,s?.domain]),ee=W(()=>{try{return!h||w.length===0||!C?[]:C(w)}catch(e){return console.error(`Error building clauses:`,e),[]}},[w,C,h]),[T,E]=V.useState(null),[D,te]=V.useState(null),ne=u.availableGasTokens.length>0&&(l.isConnectedWithPrivy||l.isConnectedWithVeChain)&&!o?.delegatorUrl,{data:re,isLoading:O,error:ie,refetch:ae}=wp({clauses:ee,tokens:T?[T]:u.availableGasTokens,enabled:ne&&!!o?.genericDelegatorUrl}),oe=re?.usedToken,se=(O||!re)&&l.isConnectedWithPrivy&&!o?.delegatorUrl,k=V.useCallback(e=>{E(e),te(e),setTimeout(()=>ae(),100)},[ae]),ce=!!oe&&!ie;V.useEffect(()=>{ie&&T&&E(null)},[ie,T]);let le=async()=>{if(d){f();return}try{w.length>0&&await _(w)}catch(e){console.error(`Error saving changes:`,e)}},ue=(e,t)=>t?.trim()?J(z,{align:`flex-start`,w:`full`,spacing:1,children:[q(R,{fontSize:`sm`,color:i?`whiteAlpha.600`:`blackAlpha.600`,children:e}),q(R,{fontSize:`md`,children:t})]}):null,de=()=>{p(le)()},fe=()=>{e({type:`account-customization`,props:{setCurrentContent:e}})},pe=async()=>{t.avatarIpfsHash&&(g.setQueryData(Po(m,a.type),x(`ipfs://`+t.avatarIpfsHash,a.type)),g.setQueryData(Go(s?.address??``),x(`ipfs://`+t.avatarIpfsHash,a.type))),await g.invalidateQueries({queryKey:Ro(m,a.type)}),await g.refetchQueries({queryKey:Ro(m,a.type)})};return J(A,{as:`form`,onSubmit:p(le),children:[J(Z,{children:[q(L,{children:r(`Confirm Changes`)}),q(Ja,{isDisabled:S,onClick:fe}),q(F,{isDisabled:S})]}),J(P,{children:[J(z,{spacing:4,align:`stretch`,children:[t.avatarIpfsHash&&J(z,{align:`flex-start`,w:`full`,spacing:1,children:[q(R,{fontSize:`sm`,color:i?`whiteAlpha.600`:`blackAlpha.600`,children:r(`Profile Image`)}),q(R,{fontSize:`md`,children:r(`New image selected`)})]}),t.displayName&&ue(r(`Display Name`),t.displayName),t.description&&ue(r(`Description`),t.description),t.twitter&&ue(r(`Twitter`),t.twitter),t.website&&ue(r(`Website`),t.website),t.email&&ue(r(`Email`),t.email)]}),l.isConnectedWithPrivy&&q(Np,{estimation:re,isLoading:O,isLoadingTransaction:S,onTokenChange:k,clauses:ee,userSelectedToken:D})]}),q(I,{gap:4,w:`full`,children:q(Ap,{transactionError:y,isSubmitting:S,isTxWaitingConfirmation:b,onConfirm:p(le),onRetry:de,transactionPendingText:r(`Saving changes...`),txReceipt:v,buttonText:r(`Confirm`),isDisabled:S||se,gasEstimationError:ie,hasEnoughGasBalance:ce,isLoadingGasEstimation:O,showGasEstimationError:!o?.delegatorUrl&&l.isConnectedWithPrivy,context:`customization`})})]})},xl=({onEditClick:e,address:t,showHeader:n=!0,onLogout:r,showLinks:a=!0,showDescription:o=!0,showDisplayName:s=!0,showEdit:c=!0,style:l})=>{let{t:u}=Y(),{account:d,disconnect:f}=Q(),{network:p}=$(),{openAccountModal:m,closeAccountModal:h}=rd(),g=B(`colors`,`vechain-kit-text-primary`),_=B(`colors`,`vechain-kit-text-secondary`),v=Ws(t,p.type),y=i(t),b=t===d?.address,x=v?.records?.url||v?.records?.[`com.x`]||v?.records?.email;return J(Ge,{variant:`vechainKitBase`,...l?.card,children:[q(A,{p:0,backgroundSize:`100% !important`,backgroundPosition:`center`,position:`relative`,h:`80px`,background:n?`no-repeat url('${y}')`:`none`,w:`100%`,borderRadius:`14px 14px 0 0`}),q(A,{position:`absolute`,top:`30px`,left:`50%`,transform:`translateX(-50%)`,children:q(kp,{wallet:{address:t,domain:v?.domain,image:v?.image,isLoadingMetadata:v?.isLoading,metadata:v?.records},props:{width:`120px`,height:`120px`}})}),q(Ke,{mt:`60px`,backgroundColor:`none`,border:`none`,...l?.body,children:J(z,{w:`full`,spacing:2,children:[s&&v?.records?.display&&q(R,{fontSize:`xl`,color:g,fontWeight:`bold`,w:`full`,textAlign:`center`,mt:2,"data-testid":`display-name-val`,children:v?.records?.display}),o&&v?.records?.description&&q(R,{fontSize:`sm`,color:_,w:`full`,textAlign:`center`,"data-testid":`description-val`,children:v?.records?.description}),a&&x&&J(M,{w:`full`,justify:`center`,spacing:5,mt:4,children:[v?.records?.email&&q(ht,{href:`mailto:${v?.records?.email}`,target:`_blank`,"data-testid":`mail-link`,children:q(N,{as:Sr,color:g})}),v?.records?.url&&q(ht,{href:v?.records?.url,target:`_blank`,"data-testid":`website-link`,children:q(N,{as:_r,color:g})}),v?.records?.[`com.x`]&&q(ht,{href:`https://x.com/${v?.records?.[`com.x`]}`,target:`_blank`,"data-testid":`twitter-link`,children:q(N,{as:Ki,color:g})})]}),q(Ya,{wallet:{address:t,domain:v?.domain,image:v?.image,isLoadingMetadata:v?.isLoading,metadata:v?.records},style:{mt:4}})]})}),b&&c&&q(qe,{justify:`space-between`,...l?.footer,children:J(z,{w:`full`,justify:`space-between`,spacing:4,children:[q(nt,{}),J(M,{w:`full`,justify:`space-between`,children:[q(j,{size:`md`,width:`full`,height:`40px`,variant:`ghost`,leftIcon:q(N,{as:wr}),onClick:e??(()=>{m({type:`account-customization`,props:{setCurrentContent:()=>h()}})}),"data-testid":`customize-button`,children:u(`Customize`)}),q(j,{size:`md`,width:`full`,height:`40px`,variant:`ghost`,leftIcon:q(N,{as:xr}),colorScheme:`red`,onClick:r??(()=>{m({type:`disconnect-confirm`,props:{onDisconnect:()=>{f(),h()},onBack:()=>h()}})}),"data-testid":`logout-button`,children:u(`Logout`)})]})]})})]})},Sl=({setCurrentContent:e,onLogoutSuccess:t})=>{let{t:n}=Y(),{isolatedView:r}=Jc(),{account:i,disconnect:a}=Q();return J(A,{children:[J(Z,{children:[q(L,{"data-testid":`modal-title`,children:n(`Profile`)}),!r&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{w:`full`,spacing:2,children:[!i?.domain&&q(Uc,{setCurrentContent:e}),q(xl,{onEditClick:()=>{e({type:`account-customization`,props:{setCurrentContent:e,initialContentSource:`profile`}})},address:i?.address??``,showHeader:!1,style:{card:{bg:`transparent`,px:0},footer:{px:0}},onLogout:()=>{e?.({type:`disconnect-confirm`,props:{onDisconnect:()=>{a(),t?.()},onBack:()=>e?.(`profile`)}})}})]})}),q(I,{pt:0})]})},Cl=({setCurrentContent:e,handleClose:t,initialContent:n=`access-and-security`})=>{let{t:r}=Y(),{smartAccount:i,connectedWallet:a}=Q(),{data:o}=Pf(i?.address??``,a?.address??``,3),{sendTransaction:s,isTransactionPending:c,isWaitingForWalletConfirmation:l,error:u,txReceipt:d}=zf({smartAccountAddress:i?.address??``,targetVersion:3,onSuccess:()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:d?.meta.txID,title:r(`Upgrade Successful!`),description:r(`Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.`),onDone:()=>{t?t():e(n)},showSocialButtons:!1}})},onError:()=>{console.error(`Error upgrading Smart Account`)}});return J(K,{children:[J(Z,{children:[q(L,{children:r(`Account upgrade required`)}),q(Ja,{onClick:()=>{e(n)}}),q(F,{})]}),q(P,{children:J(z,{spacing:10,align:`stretch`,children:[q(R,{fontSize:`sm`,textAlign:`center`,children:r(o?`Your smart account needs to be upgraded to the latest version (v3).`:`Your smart account is already upgraded to this version.`)}),J(M,{align:`center`,justifyContent:`space-evenly`,rounded:`md`,children:[J(A,{position:`relative`,display:`inline-block`,children:[q(Qe,{size:`60px`,bg:`gray.200`,children:q(ut,{borderRadius:`full`,src:i?.image,alt:r(`Profile Picture`),w:`100%`,h:`100%`,objectFit:`cover`})}),q(ct,{position:`absolute`,top:`-5`,right:`-5`,color:`#D23F63`,fontSize:`28px`,children:`v1`})]}),q(N,{as:qn,color:`#3DBA67`}),J(A,{position:`relative`,display:`inline-block`,children:[q(Qe,{size:`60px`,bg:`gray.200`,children:q(ut,{borderRadius:`full`,src:i?.image,alt:r(`Profile Picture`),w:`100%`,h:`100%`,objectFit:`cover`})}),q(ct,{position:`absolute`,top:`-5`,right:`-5`,color:`#3DBA67`,fontSize:`28px`,children:`v3`})]})]}),J(Be,{status:`info`,borderRadius:`md`,children:[q(He,{}),J(A,{children:[q(Ue,{fontSize:`sm`,children:r(`Benefits of this upgrade:`)}),q(Ve,{fontSize:`xs`,children:J(z,{align:`start`,spacing:0,mt:1,children:[J(R,{fontSize:`xs`,lineHeight:`1.2`,children:[`• `,r(`Improved security features`)]}),J(R,{fontSize:`xs`,children:[`• `,r(`Better transaction handling`)]}),J(R,{fontSize:`xs`,children:[`•`,` `,r(`Enhanced compatibility with dApps`)]}),J(R,{fontSize:`xs`,children:[`•`,` `,r(`Reduced gas costs for operations`)]})]})})]})]})]})}),q(I,{justifyContent:`center`,children:J(z,{spacing:3,w:`full`,children:[q(Ap,{buttonText:r(o?`Upgrade account`:`Account already upgraded`),onConfirm:async()=>{try{await s()}catch(e){console.error(`Failed to upgrade Smart Account:`,e)}},isTxWaitingConfirmation:l,isSubmitting:c,transactionPendingText:r(`Upgrading...`),txReceipt:d,transactionError:u,isDisabled:!o}),q(j,{mt:2,variant:`link`,onClick:()=>{t?t():e(n)},isDisabled:c,children:r(o?`Close and do this later`:`Close`)})]})})]})},wl=({setCurrentContent:e})=>{let{account:t}=Q(),{sortedTokens:n}=ds({address:t?.address}),{allowCustomTokens:r,darkMode:i}=$(),{currentCurrency:a}=us(),o=B(`colors`,`vechain-kit-text-tertiary`),{t:s}=Y(),{isolatedView:c}=Jc(),[l,u]=G(``),d=t=>{e({type:`send-token`,props:{setCurrentContent:e,preselectedToken:t,onBack:()=>e(`assets`)}})},f=n.filter(({symbol:e})=>e.toLowerCase().includes(l.toLowerCase()));return J(K,{children:[J(Z,{children:[q(L,{children:s(`Assets`)}),!c&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),J(tt,{h:[`540px`,`auto`],p:0,children:[J(P,{children:[J(ft,{size:`lg`,children:[q(dt,{placeholder:`Search token`,bg:i?`#00000038`:`gray.50`,borderRadius:`xl`,height:`56px`,pl:12,value:l,onChange:e=>u(e.target.value),"data-testid":`search-token-input`}),q(pt,{h:`56px`,w:`56px`,pl:4,children:q(kr,{color:o})})]}),q(z,{spacing:2,align:`stretch`,mt:2,children:f.map(e=>{let t=Number(e.balance)>0;return q(ro,{symbol:e.symbol,amount:Number(e.balance),currencyValue:e.valueInCurrency,currentCurrency:a,onClick:()=>d(e),isDisabled:!t},e.address)})})]}),q(I,{children:r&&q(j,{variant:`vechainKitSecondary`,leftIcon:q(N,{as:wr,boxSize:4}),onClick:()=>e(`add-custom-token`),children:s(`Manage Custom Tokens`)})})]})]})},Tl=({setCurrentContent:e})=>{let{t}=Y(),n=B(`colors`,`vechain-kit-text-primary`),r=B(`colors`,`vechain-kit-text-secondary`),i=B(`colors`,`vechain-kit-card`),a=B(`colors`,`vechain-kit-overlay`),{addToken:o,removeToken:s,isTokenIncluded:c,isDefaultToken:u,customTokens:d}=bs(),{register:f,setError:m,setValue:h,formState:{errors:g,isValid:_},handleSubmit:v}=Hi({defaultValues:{newTokenAddress:``},mode:`onChange`}),y=async e=>{if(e.newTokenAddress){if(c(e.newTokenAddress)||u(e.newTokenAddress))return m(`newTokenAddress`,{type:`manual`,message:t(`Token already added`)});try{await o(e.newTokenAddress),h(`newTokenAddress`,``)}catch(e){console.error(`Error adding token 2:`,e),m(`newTokenAddress`,{type:`manual`,message:t(`Invalid token address`)})}}};return J(K,{children:[J(Z,{children:[q(L,{children:t(`Manage Custom Tokens`)}),q(Ja,{onClick:()=>e(`assets`)}),q(F,{})]}),q(P,{children:J(z,{spacing:4,align:`stretch`,position:`relative`,children:[q(A,{p:6,borderRadius:`xl`,bg:i,children:q(z,{align:`stretch`,spacing:2,children:J(it,{isInvalid:!!g.newTokenAddress,children:[q(at,{fontSize:`sm`,fontWeight:`medium`,color:n,children:t(`Token Contract Address`)}),q(dt,{...f(`newTokenAddress`,{required:t(`Address is required`),pattern:{value:/^0x[a-fA-F0-9]{40}$/,message:t(`Please enter a valid contract address`)},validate:e=>/^0x[a-fA-F0-9]{40}$/.test(e)||t(`Invalid contract address`)}),onChange:e=>{let t=e.target.value.trim();e.target.value=t,h(`newTokenAddress`,t,{shouldValidate:!0})},placeholder:`0x...`,variant:`outline`,fontSize:`md`,fontWeight:`medium`}),g.newTokenAddress&&q(R,{color:`#ef4444`,fontSize:`sm`,children:g.newTokenAddress.message})]})})}),d.length>0&&J(A,{p:4,borderRadius:`xl`,bg:a,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,mb:2,children:t(`Existing Custom Tokens`)}),q(z,{align:`stretch`,spacing:2,children:d.map(e=>J(M,{justify:`space-between`,fontSize:`sm`,p:2,borderRadius:`md`,bg:i,children:[J(M,{children:[q(ut,{src:p[e?.symbol],alt:`${e.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:q(A,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:q(R,{fontSize:`8px`,fontWeight:`bold`,color:n,children:e.symbol?.slice(0,3)})})}),q(R,{fontWeight:`medium`,color:n,children:e.symbol??`Unknown`})]}),q(R,{color:r,children:l(e.address??``,4,4)}),q(j,{size:`sm`,variant:`ghost`,color:n,borderRadius:`md`,p:2,onClick:()=>s(e.address),children:q(Ir,{size:16,color:n})})]},e.address))})]})]})}),q(I,{children:q(j,{variant:`vechainKitPrimary`,isDisabled:!_,onClick:v(y),children:t(`Add Token`)})})]})},El=({setCurrentContent:e})=>{let{t}=Y(),{darkMode:n}=$(),{isolatedView:r}=Jc();return J(K,{children:[J(Z,{children:[q(L,{children:t(`Bridge`)}),!r&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),q(tt,{maxW:`container.lg`,children:q(P,{children:J(z,{spacing:6,align:`center`,w:`full`,children:[q(Oe,{isDark:n,borderRadius:`xl`}),q(R,{fontSize:`sm`,textAlign:`center`,children:t(`Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.`)})]})})}),q(I,{children:J(j,{variant:`vechainKitSecondary`,onClick:()=>{window.open(`https://swap.vechain.energy/`,`_blank`)},children:[t(`Launch vechain.energy`),q(N,{as:fr,ml:2})]})})]})},Dl=({setCurrentContent:e})=>{let{t}=Y(),{currentCurrency:n,changeCurrency:r,allCurrencies:i}=us();U(()=>{h(`settings-currency-visited`,`true`)},[]);let a=e=>J(j,{w:`full`,variant:`ghost`,justifyContent:`space-between`,onClick:()=>r(e),py:6,px:4,children:[J(M,{spacing:3,children:[q(R,{fontSize:`xl`,children:c[e]}),q(R,{children:e.toUpperCase()})]}),n===e&&q(N,{as:er,boxSize:5,color:`blue.500`})]},e);return J(Op,{children:[J(Z,{children:[q(L,{children:t(`Select currency`)}),q(Ja,{onClick:()=>e(`general-settings`)}),q(F,{})]}),q(P,{w:`full`,children:q(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:i.map(e=>a(e))})}),q(I,{pt:0})]})},Ol=({setCurrentContent:e})=>{let{connection:t}=Q(),{t:n}=Y(),{feeDelegation:r}=$(),i=B(`colors`,`vechain-kit-text-secondary`);return J(Op,{children:[J(Z,{children:[q(L,{children:n(`General`)}),q(Ja,{onClick:()=>e(`settings`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:[q(z,{w:`full`,justifyContent:`center`,spacing:3,mb:3,children:q(R,{fontSize:`sm`,color:i,textAlign:`center`,children:n(`Manage your preferences for currency, language, and appearance.`)})}),J(z,{w:`full`,justifyContent:`center`,spacing:0,children:[q(Fc,{title:n(`Currency`),style:{borderBottomRadius:`0px`},onClick:()=>{e(`change-currency`)},leftIcon:ur,rightIcon:rr}),q(Fc,{title:n(`Language`),style:{borderTopRadius:`0px`,...t.isConnectedWithPrivy?{borderBottomRadius:`0px`}:{}},onClick:()=>{e(`change-language`)},leftIcon:br,rightIcon:rr}),t.isConnectedWithPrivy&&!r?.delegatorUrl&&q(Fc,{title:n(`Gas Token Preferences`),style:{borderTopRadius:`0px`},onClick:()=>{e(`gas-token-settings`)},leftIcon:mr,rightIcon:rr})]}),q(Fc,{title:n(`Terms and Policies`),onClick:()=>{e({type:`terms-and-privacy`,props:{onGoBack:()=>e(`settings`)}})},leftIcon:Mr,rightIcon:rr})]})}),q(I,{pt:0})]})},kl=({setCurrentContent:e})=>{let{t,i18n:n}=Y(),r=e=>{n.changeLanguage(e)},i=e=>J(j,{w:`full`,variant:`ghost`,justifyContent:`space-between`,onClick:()=>r(e),py:6,px:4,children:[q(R,{children:ba[e]}),n.language===e&&q(N,{as:er,boxSize:5,color:`blue.500`})]},e);return J(Op,{children:[J(Z,{children:[q(L,{children:t(`Select language`)}),q(Ja,{onClick:()=>e(`general-settings`)}),q(F,{})]}),q(P,{w:`full`,children:q(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:va.map(e=>i(e))})}),q(I,{pt:0})]})},Al=({setCurrentContent:e})=>{let{t}=Y();return J(Op,{children:[J(Z,{children:[q(L,{children:t(`General`)}),q(Ja,{onClick:()=>e(`general-settings`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:[q(z,{w:`full`,justifyContent:`center`,spacing:3,mb:3,children:q(R,{fontSize:`sm`,opacity:.5,textAlign:`center`,children:t(`Customize the appearance of your wallet.`)})}),q(z,{w:`full`,justifyContent:`center`,spacing:0})]})}),q(I,{pt:0})]})},jl=({token:e,index:t,isExcluded:n,onToggleExclusion:r,onDragStart:i,onDragOver:a,onDrop:o,onTouchStart:s,onTouchMove:c,onTouchEnd:l,isDragging:u,isDraggedOver:d})=>{let p=f[e],{darkMode:m}=$(),h=B(`colors`,`vechain-kit-text-primary`),g=B(`colors`,`vechain-kit-text-secondary`),_=B(`colors`,`vechain-kit-card`);return q(A,{bg:m?`#ffffff0a`:`blackAlpha.50`,borderRadius:`md`,border:`1px`,borderColor:u?m?`blue.500`:`blue.300`:d?m?`blue.400`:`blue.200`:_,p:3,mb:2,opacity:u||n?.5:1,cursor:`move`,transition:`background-color 0.2s ease, border-color 0.2s ease`,draggable:!0,onDragStart:()=>i(t),onDragOver:e=>{e.preventDefault(),a(t)},onDrop:()=>o(t),onTouchStart:e=>s(t,e),onTouchMove:c,onTouchEnd:l,_hover:{backgroundColor:m?`#ffffff12`:`blackAlpha.200`},children:J(M,{justify:`space-between`,children:[J(M,{opacity:n?.5:1,children:[q(A,{cursor:`grab`,_active:{cursor:`grabbing`},pointerEvents:`none`,children:q(N,{as:vr,color:g})}),J(z,{align:`start`,spacing:0,children:[q(R,{fontWeight:`medium`,color:h,children:p.name}),q(R,{fontSize:`sm`,color:g,children:p.description})]})]}),q(Mt,{isChecked:!n,onChange:()=>r(e),colorScheme:`blue`,size:`sm`})]})})},Ml=({tokens:e,excludedTokens:t,onReorder:n,onToggleExclusion:r})=>{let[i,a]=G(null),[o,s]=G(null),c=Zt([]),l=Zt(0),u=e=>{a(e)},d=e=>{s(e)},f=t=>{if(i===null||i===t){a(null),s(null);return}let r=[...e],o=r[i];r.splice(i,1),r.splice(t,0,o),n(r),a(null),s(null)},p=(e,t)=>{l.current=t.touches[0].clientY,a(e)},m=e=>{if(i===null)return;let t=e.touches[0].clientY;for(let e=0;e<c.current.length;e++){let n=c.current[e];if(!n)continue;let r=n.getBoundingClientRect();if(t>=r.top&&t<=r.bottom){s(e);break}}},h=()=>{if(i!==null&&o!==null&&i!==o){let t=[...e],r=t[i];t.splice(i,1),t.splice(o,0,r),n(t)}a(null),s(null),l.current=0};return q(A,{w:`full`,children:e.map((e,n)=>q(A,{ref:e=>{c.current[n]=e},children:q(jl,{token:e,index:n,isExcluded:t.includes(e),onToggleExclusion:r,onDragStart:u,onDragOver:d,onDrop:f,onTouchStart:p,onTouchMove:m,onTouchEnd:h,isDragging:i===n,isDraggedOver:o===n})},e))})},Nl=({setCurrentContent:e})=>{let{t}=Y(),{preferences:n,reorderTokenPriority:r,toggleTokenExclusion:i}=Cp(),a=B(`colors`,`vechain-kit-text-primary`),o=B(`colors`,`vechain-kit-text-secondary`),s=H(e=>{r(e)},[r]);return J(Op,{children:[J(Z,{children:[q(L,{children:t(`Gas Token Preferences`)}),q(Ja,{onClick:()=>e(`general-settings`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{justify:`center`,spacing:6,align:`flex-start`,w:`full`,children:[q(z,{w:`full`,justifyContent:`center`,spacing:3,mb:3,children:q(R,{fontSize:`sm`,color:o,textAlign:`center`,children:t(`Choose which tokens to use for transaction fees when the app is not covering them.`)})}),n.availableGasTokens.length===0&&J(Be,{status:`warning`,borderRadius:`md`,children:[q(He,{}),q(Ve,{fontSize:`sm`,color:o,children:t(`You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.`)})]}),J(z,{w:`full`,align:`start`,spacing:3,children:[q(R,{fontSize:`md`,fontWeight:`semibold`,color:a,children:t(`Token Priority Order`)}),q(R,{fontSize:`sm`,color:o,children:t(`Drag to reorder. The system will automatically use the highest priority token with sufficient balance.`)}),q(Ml,{tokens:n.tokenPriority,excludedTokens:n.excludedTokens,onReorder:s,onToggleExclusion:i})]})]})})]})},Pl=({title:e,description:t,icon:n})=>{let r=B(`colors`,`vechain-kit-text-secondary`),i=B(`colors`,`vechain-kit-text-primary`);return J(z,{spacing:6,align:`center`,py:8,children:[q(N,{as:n,boxSize:16,color:r}),J(z,{spacing:2,children:[q(R,{fontSize:`lg`,fontWeight:`500`,textAlign:`center`,color:i,children:e}),q(R,{fontSize:`md`,color:r,textAlign:`center`,px:4,children:t})]})]})},Fl=(e,t=`en-US`)=>new Intl.DateTimeFormat(t,{month:`short`,day:`numeric`}).format(new Date(e)),Il=({document:e})=>{let{t}=Y(),n=B(`colors`,`vechain-kit-text-secondary`),r=e.documentSource===m.VECHAIN_KIT&&e.documentType===se.TERMS;return J(M,{children:[J(Nt,{size:`sm`,borderRadius:`full`,color:n,children:[`v`,e.version]}),q(R,{fontSize:`xs`,cursor:`pointer`,color:n,onClick:()=>{window.open(e.url,`_blank`)},_hover:{textDecoration:`underline`},children:r?t(`'{{policyName}}' on connect`,{policyName:e.displayName??t(`Vechain Kit Policy`)}):t(`'{{policyName}}' on {{date}}`,{policyName:e.displayName??t(`Policy`),date:Fl(e.timestamp)})})]})},Ll=({title:e,description:t,documents:n,bg:r,hoverBg:i,currentPolicy:a})=>{let{t:o}=Y(),s=B(`colors`,`vechain-kit-text-primary`),c=B(`colors`,`vechain-kit-text-secondary`),l=n?.length>0,u=n?.find(e=>e.id===a?.id);return l?q(Re,{border:`none`,mb:3,children:({isExpanded:l})=>J(K,{children:[J(Le,{bg:r,borderRadius:`xl`,_hover:{bg:i},children:[J(z,{w:`full`,align:`flex-start`,textAlign:`left`,children:[q(R,{fontWeight:`700`,color:s,children:e}),q(R,{fontSize:`xs`,color:c,children:t})]}),q(N,{as:l?ir:tr,fontSize:`20px`,color:c})]}),q(ze,{pb:4,pt:3,children:J(z,{align:`stretch`,spacing:4,children:[u?.id?J(M,{w:`full`,children:[q(N,{as:er,color:s}),q(R,{fontSize:`xs`,color:c,children:o(`You accepted current policy on {{date}}`,{date:Fl(u.timestamp)})})]}):null,q(M,{w:`full`,textAlign:`left`,children:q(R,{fontSize:`xs`,fontWeight:`bold`,color:c,children:o(`All policies you have accepted`)})}),q(M,{w:`full`,gap:2,children:q(z,{align:`stretch`,spacing:2,children:n.map(e=>q(Il,{document:e},e.id))})}),a&&q(j,{variant:`outline`,size:`xs`,alignSelf:`flex-end`,onClick:()=>{window.open(a.url,`_blank`)},children:o(`View Current Policy`)})]})})]})}):null},Rl=()=>{let{account:e}=Q(),{t}=Y(),{darkMode:n}=$(),{agreements:r,documents:i}=Wp(),a=W(()=>{let t=r?.filter(t=>o(t.walletAddress,e?.address));return[{id:`vechain-kit-terms`,...E,documentType:se.TERMS,documentSource:m.VECHAIN_KIT,walletAddress:e?.address??``,timestamp:new Date().getTime()},...t]?.reduce((e,t)=>(e[t.documentType]=[...e[t.documentType]||[],t],e),{})},[r,e?.address]),s=W(()=>i.reduce((e,t)=>{let n=t.documentType;return(!e[n]||t.version>e[n].version)&&(e[n]=t),e},{}),[i]),c=W(()=>Object.values(a).some(e=>e.length>0),[a]),l=n?`whiteAlpha.50`:`blackAlpha.50`,u=n?`whiteAlpha.100`:`blackAlpha.100`;return c?q(z,{spacing:4,align:`stretch`,children:J(Ie,{allowMultiple:!0,children:[q(Ll,{title:t(`Terms and Conditions`),description:t(`Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.`),documents:a[se.TERMS],bg:l,hoverBg:u,currentPolicy:s[se.TERMS]}),q(Ll,{title:t(`Privacy Policy`),description:t(`Privacy policy outlining the data collection and processing practices.`),documents:a[se.PRIVACY],bg:l,hoverBg:u,currentPolicy:s[se.PRIVACY]}),q(Ll,{title:t(`Cookie Policy`),description:t(`Cookie policy outlining the use of cookies and tracking technologies.`),documents:a[se.COOKIES],bg:l,hoverBg:u,currentPolicy:s[se.COOKIES]})]})}):q(Pl,{title:t(`No policies accepted`),description:t(`When you have accepted a policy, it will appear here`),icon:hr})},zl=({onGoBack:e})=>{let{t}=Y();return J(Op,{children:[J(Z,{children:[q(L,{children:t(`Terms and Policies`)}),q(Ja,{onClick:e}),q(F,{})]}),q(P,{w:`full`,children:q(z,{spacing:6,align:`stretch`,children:q(Rl,{})})}),q(I,{pt:0})]})},Bl=({onGoBack:e})=>{let{t}=Y(),{getConnectionCache:n}=Ud(),{connection:r}=Q(),i=n();return J(Op,{children:[J(Z,{children:[q(L,{children:t(`Connection Details`)}),q(Ja,{onClick:()=>{e()}}),q(F,{})]}),J(P,{w:`full`,children:[r.isConnectedWithCrossApp&&i&&q(Zc,{connectionCache:i}),r.isConnectedWithSocialLogin&&q($c,{}),r.isConnectedWithDappKit&&q(Qc,{})]}),q(I,{pt:0})]})},Vl=({accountType:e,accountDescription:t,isLoading:n,onConfirm:r,onCancel:i})=>{let{t:a}=Y();return J(z,{spacing:6,align:`stretch`,children:[q(R,{fontSize:`md`,textAlign:`center`,color:B(`colors`,`vechain-kit-text-primary`),children:a(`Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?`,{accountType:e,accountDescription:t})}),J(z,{spacing:3,w:`full`,children:[q(j,{height:`60px`,colorScheme:`red`,w:`full`,onClick:r,isLoading:n,children:a(`Remove Login Method`)}),q(j,{isLoading:n,height:`60px`,w:`full`,onClick:i,children:a(`Cancel`)})]})]})},Hl=({onBack:e})=>{let{t}=Y(),{privy:n,dappKit:r}=$(),[i,a]=G(null),[o,s]=G(!1),[c,u]=G(!1),[d,f]=G(!1),p=B(`colors`,`vechain-kit-text-primary`),m=B(`colors`,`vechain-kit-text-secondary`),{user:h,linkEmail:g,linkGoogle:_,linkTwitter:v,linkPhone:y,linkSpotify:b,linkApple:x,linkInstagram:S,linkTiktok:C,linkGithub:w,linkLinkedIn:ee,linkTelegram:T,linkFarcaster:E,linkPasskey:D,linkDiscord:te,unlinkEmail:ne,unlinkGoogle:re,unlinkApple:O,unlinkSpotify:ie,unlinkInstagram:ae,unlinkTiktok:oe,unlinkGithub:se,unlinkLinkedIn:k,unlinkTelegram:ce,unlinkFarcaster:le,unlinkPhone:ue,unlinkPasskey:de,unlinkDiscord:fe,linkWallet:pe}=Tn(),me=W(()=>{let e=n?.loginMethods?.filter(e=>[`rabby_wallet`,`coinbase_wallet`,`rainbow`,`phantom`,`metamask`].includes(e))??[],t=r?.allowedWallets??[];return e.length>0||t.length>0},[n?.loginMethods,r?.allowedWallets]),he=e=>{switch(e){case`google_oauth`:return Vi;case`email`:return Sr;case`passkey`:return pr;case`wallet`:return Br;case`twitter_oauth`:return Ki;case`phone`:return Tr;case`spotify_oauth`:return Qi;case`apple_oauth`:return Ji;case`instagram_oauth`:return Xi;case`tiktok_oauth`:return ta;case`github_oauth`:return gr;case`linkedin_oauth`:return Zi;case`telegram`:return $i;case`farcaster`:return qi;case`discord_oauth`:return Yi;default:return}},ge=()=>{let e=h?.linkedAccounts?.filter(e=>e.type!==`wallet`||e.type===`wallet`&&e.connectorType!==`embedded`);return e&&e?.length>1},_e=async e=>{if(ge()){f(!0);try{switch(e.type){case`google_oauth`:await re(e.subject);break;case`email`:await ne(e.address);break;case`passkey`:await de(e.subject);break;case`phone`:await ue(e.number);break;case`spotify_oauth`:await ie(e.subject);break;case`apple_oauth`:await O(e.subject);break;case`instagram_oauth`:await ae(e.subject);break;case`tiktok_oauth`:await oe(e.subject);break;case`github_oauth`:await se(e.subject);break;case`linkedin_oauth`:await k(e.subject);break;case`telegram`:await ce(e.subject);break;case`farcaster`:await le(e.subject);break;case`discord_oauth`:await fe(e.subject);break;default:break}}catch(e){console.error(e)}finally{f(!1),a(null)}}},ve=e=>{switch(e.type){case`google_oauth`:return e.email;case`email`:return e.address;case`passkey`:return`${e.authenticatorName} - ${e.createdWithBrowser}`;case`phone`:return e.number;case`wallet`:return`${l(e.address)} - ${e.walletClientType}`;default:return``}},ye=h?.linkedAccounts?.map(e=>e.type)||[],be=n?.loginMethods||[],xe=!ye.includes(`google_oauth`)&&be.includes(`google`),Se=!ye.includes(`email`)&&be.includes(`email`),Ce=!ye.includes(`twitter_oauth`)&&be.includes(`twitter`),we=!ye.includes(`phone`)&&be.includes(`sms`),Te=!ye.includes(`spotify_oauth`)&&be.includes(`spotify`),Ee=!ye.includes(`apple_oauth`)&&be.includes(`apple`),De=!ye.includes(`instagram_oauth`)&&be.includes(`instagram`),Oe=!ye.includes(`tiktok_oauth`)&&be.includes(`tiktok`),ke=!ye.includes(`github_oauth`)&&be.includes(`github`),Ae=!ye.includes(`linkedin_oauth`)&&be.includes(`linkedin`),je=!ye.includes(`telegram`)&&be.includes(`telegram`),Me=!ye.includes(`farcaster`)&&be.includes(`farcaster`),Ne=!ye.includes(`discord_oauth`)&&be.includes(`discord`);return o?J(Op,{children:[J(Z,{children:[q(L,{children:t(`Select Additional Login Method`)}),q(Ja,{onClick:()=>s(!1)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{spacing:3,align:`stretch`,w:`full`,children:[q(Fc,{title:t(`Set up Passkey`),description:t(`Set up a passkey for easier access`),onClick:()=>D(),leftIcon:pr}),xe&&q(Fc,{title:t(`Link Google Account`),description:t(`Connect your Google account for easier access`),onClick:()=>_(),leftIcon:Vi}),Se&&q(Fc,{title:t(`Link Email Account`),description:t(`Connect your email for easier access`),onClick:()=>g(),leftIcon:Sr,stacked:!0}),Ce&&q(Fc,{title:t(`Link Twitter Account`),description:t(`Connect your Twitter account for easier access`),onClick:()=>v(),leftIcon:Ki}),we&&q(Fc,{title:t(`Link Phone Number`),description:t(`Connect your phone number for easier access`),onClick:()=>y(),leftIcon:Tr}),Te&&q(Fc,{title:t(`Link Spotify Account`),description:t(`Connect your Spotify account for easier access`),onClick:()=>b(),leftIcon:Qi}),Ee&&q(Fc,{title:t(`Link Apple Account`),description:t(`Connect your Apple account for easier access`),onClick:()=>x(),leftIcon:Ji}),De&&q(Fc,{title:t(`Link Instagram Account`),description:t(`Connect your Instagram account for easier access`),onClick:()=>S(),leftIcon:Xi}),Oe&&q(Fc,{title:t(`Link Tiktok Account`),description:t(`Connect your Tiktok account for easier access`),onClick:()=>C(),leftIcon:ta}),ke&&q(Fc,{title:t(`Link Github Account`),description:t(`Connect your Github account for easier access`),onClick:()=>w(),leftIcon:gr}),Ae&&q(Fc,{title:t(`Link LinkedIn Account`),description:t(`Connect your LinkedIn account for easier access`),onClick:()=>ee(),leftIcon:Zi}),je&&q(Fc,{title:t(`Link Telegram Account`),description:t(`Connect your Telegram account for easier access`),onClick:()=>T(),leftIcon:$i}),Me&&q(Fc,{title:t(`Link Farcaster Account`),description:t(`Connect your Farcaster account for easier access`),onClick:()=>E(),leftIcon:qi}),Ne&&q(Fc,{title:t(`Link Discord Account`),description:t(`Connect your Discord account for easier access`),onClick:()=>te(),leftIcon:Yi}),me&&q(Fc,{title:t(`Link External Wallet`),description:t(`Connect an external wallet for easier access`),onClick:()=>pe(),leftIcon:Br}),!xe&&!Se&&!Ce&&!we&&!Te&&!Ee&&!De&&!Oe&&!ke&&!Ae&&!je&&!Me&&!Ne&&q(R,{fontSize:`sm`,textAlign:`center`,opacity:.7,children:t(`No additional accounts available to link`)})]})}),q(I,{pt:0})]}):i?J(Op,{children:[J(Z,{children:[q(L,{children:t(`Remove Login Method`)}),q(Ja,{onClick:()=>a(null)}),q(F,{})]}),q(P,{children:q(Vl,{accountType:i.type,accountDescription:ve(i),isLoading:d,onConfirm:()=>_e(i),onCancel:()=>a(null)})}),q(I,{pt:0})]}):J(Op,{children:[J(Z,{children:[q(L,{children:t(`Login methods`)}),q(Ja,{onClick:e}),q(F,{})]}),q(P,{w:`full`,children:J(z,{spacing:3,align:`center`,w:`full`,justify:`center`,children:[J(z,{spacing:1,justify:`flex-start`,alignItems:`flex-start`,mb:5,textAlign:`left`,w:`full`,children:[q(R,{fontSize:`sm`,color:m,children:t(`These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.`)}),c&&q(R,{fontSize:`sm`,color:m,children:t(`Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.`)}),q(j,{variant:`link`,mt:0,size:`sm`,onClick:()=>u(!c),color:p,children:t(c?`Show Less`:`Read More`)})]}),h?.linkedAccounts?.filter(e=>e.type!==`wallet`||e.type===`wallet`&&e.connectorType!==`embedded`).map(e=>J(rt,{p:4,borderWidth:`1px`,borderRadius:`md`,align:`center`,justify:`space-between`,w:`full`,children:[J(rt,{align:`center`,gap:3,children:[q(N,{as:he(e.type),color:p}),J(z,{align:`start`,spacing:0,children:[q(R,{fontWeight:`500`,color:p,children:e.type===`google_oauth`?t(`Google`):e.type===`email`?t(`Email`):e.type===`passkey`?t(`Passkey`):e.type===`twitter_oauth`?t(`Twitter`):e.type===`phone`?t(`Phone Number`):e.type===`spotify_oauth`?t(`Spotify`):e.type===`apple_oauth`?t(`Apple`):e.type===`instagram_oauth`?t(`Instagram`):e.type===`tiktok_oauth`?t(`Tiktok`):e.type===`github_oauth`?t(`Github`):e.type===`linkedin_oauth`?t(`LinkedIn`):e.type===`telegram`?t(`Telegram`):e.type===`farcaster`?t(`Farcaster`):e.type===`discord_oauth`?t(`Discord`):t(`Wallet`)}),q(R,{fontSize:`sm`,color:m,children:ve(e)})]})]}),q(j,{size:`sm`,variant:`ghost`,colorScheme:`red`,isDisabled:!ge(),onClick:()=>{e.type===`passkey`?D():a(e)},children:t(`Remove`)})]},e.type))]})}),q(I,{w:`full`,children:q(j,{w:`full`,variant:`vechainKitPrimary`,onClick:()=>s(!0),leftIcon:q(N,{as:Er}),isDisabled:!xe&&!Se&&!Ce&&!we&&!Te&&!Ee&&!De&&!Oe&&!ke&&!Ae&&!je&&!Me&&!Ne,children:t(`Add Login Method`)})})]})},Ul=[{id:`welcome`,title:`Welcome to the VeChain`,description:`Welcome! Here you can manage your wallet, send tokens, and interact with the VeChain blockchain and its applications.`,timestamp:Date.now(),status:`success`,isRead:!1}],Wl=()=>{let{t:e}=Y(),{account:t,connection:n,smartAccount:r}=Q(),{addNotification:i,getNotifications:a}=Gl(),{data:o}=Lf(r?.address??``,3);U(()=>{if(!n.isConnectedWithPrivy||!t?.address)return;let r=a(),s=`smart_account_upgrade_${t.address.toLowerCase()}`;!r.some(e=>e.id===s)&&o&&i({id:s,title:e(`Account Upgrade Required`),description:e(`A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.`),status:`warning`})},[n.isConnectedWithPrivy,t?.address,o]),U(()=>{!n.isConnectedWithPrivy||!t?.address||a().some(e=>e.id===`smart_account_${t.address.toLowerCase()}`)||i({id:`smart_account_${t.address.toLowerCase()}`,title:e(`Smart Account detected`),description:e(`You have an active smart account associated to this wallet. It has been set as your main identity.`),status:`info`})},[n.isConnectedWithPrivy,t?.address]),U(()=>{if(!n.isConnectedWithPrivy||!t?.address)return;let r=a(),o=r.some(e=>e.id===`multiclause_warning_${t.address.toLowerCase()}`),s=r.some(e=>e.id===`multiclause_support_${t.address.toLowerCase()}`);o&&!s&&i({id:`multiclause_support_${t.address.toLowerCase()}`,title:e(`Multiclause Transactions Are Now Supported`),description:e(`Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.`),status:`info`})},[n.isConnectedWithPrivy,t?.address])},Gl=()=>{let{account:e}=Q(),t=H(e=>{let t=e?.toLowerCase();return{notifications:`vechain_kit_notifications_${t}`,archived:`vechain_kit_archived_notifications_${t}`,initialized:`vechain_kit_notifications_initialized_${t}`}},[]),n=H(()=>{if(!e?.address||!y())return;let n=t(e.address);w(n.initialized)||(h(n.notifications,JSON.stringify(Ul)),h(n.initialized,`true`))},[e?.address,t]);U(()=>{n()},[n]);let r=H(()=>{if(!e?.address||!y())return[];let n=w(t(e.address).notifications);return n?JSON.parse(n):[]},[e?.address,t]),i=H(()=>{if(!e?.address||!y())return[];let n=w(t(e.address).archived);return n?JSON.parse(n):[]},[e?.address,t]),a=H(n=>{if(!e?.address||!y())return;let i=t(e.address),a=r(),o=w(i.archived),s=o?JSON.parse(o):[];if([...a,...s].some(e=>e.title===n.title))return;let c={...n,id:n.id||Math.random().toString(36).substring(7),timestamp:Date.now(),isRead:!1};h(i.notifications,JSON.stringify([c,...a]))},[e?.address,r,t]),o=H(n=>{if(!e?.address||!y())return;let i=t(e.address),a=r().filter(e=>e.id!==n);h(i.notifications,JSON.stringify(a))},[e?.address,r,t]);return{getNotifications:r,getArchivedNotifications:i,addNotification:a,clearAllNotifications:H(()=>{if(!e?.address||!y())return;let n=t(e.address),a=r();h(n.archived,JSON.stringify([...i(),...a])),h(n.notifications,JSON.stringify([]))},[e?.address,r,i,t]),markAsRead:H(n=>{if(!e?.address||!y())return;let a=t(e.address),o=r(),s=i(),c=o.find(e=>e.id===n),l=o.filter(e=>e.id!==n);if(c){let e=[{...c,isRead:!0},...s];h(a.notifications,JSON.stringify(l)),h(a.archived,JSON.stringify(e))}},[e?.address,r,i,t]),deleteNotification:o}},Kl=({showArchived:e})=>{let{t}=Y();return q(Pl,{title:t(e?`No archived notifications`:`No notifications`),description:t(e?`Cleared notifications will appear here`:`When you have notifications, they will appear here`),icon:e?Hn:Xn})},ql=({notification:e,isArchiveView:t,onMarkAsRead:n})=>{let{t:r}=Y(),i=()=>{n(e.id)};return e.isRead&&!t?null:J(Be,{status:e.status,variant:`subtle`,borderRadius:`lg`,pr:8,position:`relative`,opacity:e.isRead?.7:1,cursor:`pointer`,_hover:{opacity:.8},"data-testid":`notification-item`,children:[q(He,{boxSize:`16px`}),J(A,{children:[q(Ue,{fontSize:`sm`,"data-testid":`notification-title`,children:r(e.title)}),q(Ve,{fontSize:`xs`,lineHeight:`1.2`,"data-testid":`notification-text`,children:r(e.description)})]}),!t&&!e.isRead&&q(lt,{position:`absolute`,right:1,top:1,size:`sm`,variant:`ghost`,icon:q(cr,{}),onClick:e=>{e.stopPropagation(),i()},"aria-label":`Mark as read and archive`,"data-testid":`remove-notification-button`})]},e.id)},Jl=({setCurrentContent:e})=>{let{t}=Y(),{isolatedView:n}=Jc(),{getNotifications:r,getArchivedNotifications:i,clearAllNotifications:a,markAsRead:o}=Gl(),[s,c]=G(!1),[l,u]=G(r()),[d,f]=G(i()),p=()=>{a(),f([...d,...l]),u([])},m=e=>{o(e);let t=l.find(t=>t.id===e);u(l.filter(t=>t.id!==e)),t&&f([{...t,isRead:!0},...d])},h=()=>{c(!s)},g=s?d:l,_=[...g].sort((e,t)=>e.id===`welcome`?-1:t.id===`welcome`?1:e.id===`smart-account`?-1:t.id===`smart-account`?1:e.id===`multiclause`?-1:t.id===`multiclause`?1:t.timestamp-e.timestamp);return J(Op,{children:[J(Z,{children:[!n&&q(Ja,{onClick:()=>e(`main`)}),q(L,{"data-testid":`modal-title`,children:t(s?`Archived Notifications`:`Notifications`)}),q(F,{})]}),J(tt,{h:[`540px`,`auto`],p:0,children:[q(P,{children:J(z,{spacing:4,align:`stretch`,w:`full`,children:[J(M,{justify:`space-between`,children:[q(j,{variant:`ghost`,leftIcon:q(N,{as:s?Xn:Hn}),size:`sm`,onClick:h,"data-testid":`toggle-view-button`,children:t(s?`Current`:`Archived`)}),!s&&l.length>0&&q(j,{variant:`ghost`,size:`sm`,onClick:p,"data-testid":`clear-all-button`,children:t(`Clear all`)})]}),g.length===0?q(Kl,{showArchived:s}):q(z,{spacing:3,children:_.map(e=>q(ql,{notification:e,isArchiveView:s,onMarkAsRead:m},e.id))})]})}),q(I,{pt:0})]})]})},Yl=e=>{switch(e){case`defi`:return`blue`;case`games`:return`green`;case`collectibles`:return`purple`;case`marketplaces`:return`orange`;case`utilities`:return`cyan`;default:return`gray`}},Xl=({category:e,...t})=>{let{t:n}=Y(),r=e.toLowerCase();return q(Nt,{size:`sm`,colorScheme:Yl(r),borderRadius:`full`,px:2,...t,children:n(r)})},Zl=({name:e,imageUrl:t,logoComponent:n,category:r,onClick:i,size:a=`md`})=>J(Ge,{variant:`vechainKitAppCard`,_hover:{opacity:.8},cursor:`pointer`,onClick:i,position:`relative`,children:[r&&q(A,{position:`absolute`,top:`2`,right:`2`,zIndex:`1`,children:q(Xl,{category:r})}),q(Ke,{p:a===`sm`?2:4,alignItems:`center`,children:J(z,{spacing:2,h:`100%`,justifyContent:`space-between`,children:[n||t&&q(ut,{src:t,fallbackSrc:te,alt:e,height:`90px`,objectFit:`contain`,rounded:`full`}),e&&q(R,{fontWeight:`medium`,wordBreak:`break-word`,noOfLines:1,textAlign:`center`,w:`full`,children:e})]})})]}),Ql=({xApp:e,setCurrentContent:t,selectedCategory:n})=>{let{data:r,isLoading:i}=Js(e.id),{data:a,isLoading:o}=tc(r?.logo);return q(kt,{isLoaded:!i&&!o,borderRadius:`md`,height:`100%`,children:q(Zl,{name:r?.name??``,imageUrl:a?.image??``,linkUrl:r?.external_url??``,category:`vebetter`,onClick:()=>{r?.name&&t({type:`app-overview`,props:{name:r.name,image:a?.image??``,url:r?.external_url??``,description:r?.description??``,category:`vebetter`,selectedCategory:n,setCurrentContent:t}})}})})},$l=({name:e,image:t,url:n,description:r,category:i,logoComponent:a,selectedCategory:o,setCurrentContent:s})=>q(Zl,{name:e,imageUrl:t,linkUrl:n,category:i,onClick:()=>{s({type:`app-overview`,props:{name:e,image:t,url:n,description:r,category:i,logoComponent:a,selectedCategory:o,setCurrentContent:s}})},...a&&{logoComponent:a}}),eu=({})=>{let{t:e}=Y(),{shortcuts:t}=hp();return t.length===0?null:J(z,{w:`full`,align:`flex-start`,spacing:2,children:[q(R,{fontSize:`sm`,fontWeight:`500`,children:e(`Shortcuts`)}),q(ot,{templateColumns:`repeat(4, 1fr)`,gap:2,w:`full`,children:t.map(e=>q(st,{children:q(Ge,{_hover:{opacity:.8},cursor:`pointer`,onClick:()=>window.open(e.url,`_blank`),children:q(Ke,{p:2,alignItems:`center`,children:q(ut,{src:e.image,fallbackSrc:te,alt:e.name,objectFit:`contain`,rounded:`full`})})})},e.url))})]})},tu=({selectedCategory:e,onCategoryChange:t,categories:n,darkMode:r})=>{let{t:i}=Y();return J(A,{width:`full`,mb:4,children:[q(R,{fontSize:`sm`,fontWeight:`500`,mb:2,children:i(`Filter by category`)}),J(It,{spacing:2,children:[q(Lt,{children:q(Nt,{size:`md`,borderRadius:`full`,variant:e===null?`solid`:`outline`,colorScheme:r?`gray`:`blackAlpha`,cursor:`pointer`,onClick:()=>t(null),children:i(`All`)})}),n.map(n=>q(Lt,{children:q(Xl,{category:n,size:`md`,variant:e===n?`solid`:`outline`,cursor:`pointer`,onClick:()=>t(n)})},n))]})]})},nu=[{name:`VeBetterDAO`,description:`Engage, earn and prosper by doing sustainable actions.`,external_url:`https://governance.vebetterdao.org/`,logo:`https://i.ibb.co/cgJBj83/vbd.png`,banner:`https://i.ibb.co/cgJBj83/vbd.png`,screenshots:[],social_urls:[],app_urls:[],tweets:[],ve_world:{banner:`https://i.ibb.co/cgJBj83/vbd.png`},categories:[]},{name:`vet.domains`,description:`.vet.domains provides a unique and unchangeable identity for Vechain users by linking information to their wallet addresses. It becomes easier for people to use the blockchain by replacing complicated wallet addresses with easy-to-remember names.`,external_url:`https://vet.domains`,logo:`https://vet.domains/assets/walletconnect.png`,banner:`https://vet.domains/assets/walletconnect.png`,screenshots:[],social_urls:[],app_urls:[],tweets:[],ve_world:{banner:`https://vet.domains/assets/walletconnect.png`},categories:[]}],ru=({setCurrentContent:e,selectedCategory:t})=>{let{t:n}=Y(),{darkMode:r,network:i}=$(),{isolatedView:a}=Jc(),o=B(`colors`,`vechain-kit-text-tertiary`),[s,c]=G(``),[l,u]=G(t||null);U(()=>{t!==void 0&&u(t)},[t]);let{data:d}=gs(),{data:f}=Rs(d?(parseInt(d)-1).toString():`1`),{data:p,isLoading:m,error:h}=Xd(),g=W(()=>{let e=new Set;return i.type===`main`&&f&&f.length>0&&e.add(`vebetter`),p&&p.forEach(t=>{t.category&&e.add(t.category)}),Array.from(e).sort()},[p,f,i.type]),_=i.type===`main`?f.filter(e=>e.app.name.toLowerCase().includes(s.toLowerCase())):[],v=nu.filter(e=>e.name.toLowerCase().includes(s.toLowerCase())),y=p?.filter(e=>(e.name.toLowerCase().includes(s.toLowerCase())||e.description.toLowerCase().includes(s.toLowerCase())||e.tags.some(e=>e.toLowerCase().includes(s.toLowerCase())))&&(l===null||e.category===l))||[],b=l===null,x=l===null||l===`vebetter`,{shortcuts:S}=hp();return J(A,{children:[J(Z,{children:[q(L,{children:n(`Ecosystem`)}),!a&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),q(P,{overflowY:`auto`,minH:`300px`,children:J(z,{spacing:6,w:`full`,children:[q(eu,{setCurrentContent:e}),S.length>0&&q(R,{fontSize:`sm`,fontWeight:`500`,w:`full`,textAlign:`left`,children:n(`All apps`)}),J(ft,{size:`lg`,children:[q(dt,{placeholder:n(`Search Apps`),value:s,onChange:e=>{c(e.target.value)},bg:r?`#00000038`:`gray.50`,borderRadius:`xl`,height:`56px`,pl:12}),q(pt,{h:`56px`,w:`56px`,pl:4,children:q(kr,{color:o})})]}),g.length>0&&q(tu,{selectedCategory:l,onCategoryChange:e=>{u(e)},categories:g,darkMode:r}),J(ot,{templateColumns:`repeat(2, 1fr)`,gap:4,w:`full`,children:[b&&v.length>0&&q(K,{children:v.map(t=>q(st,{children:q($l,{name:t.name,image:t.logo,url:t.external_url,setCurrentContent:e,description:t.description,selectedCategory:l})},t.name))}),x&&_.length>0&&q(K,{children:_.map(t=>q(st,{children:q(Ql,{xApp:t.app,setCurrentContent:e,selectedCategory:l})},t.id))}),m?q(st,{colSpan:2,children:q(Ye,{py:4,children:q(At,{})})}):h?q(st,{colSpan:2,children:q(R,{color:`red.500`,textAlign:`center`,children:n(`Failed to load App Hub apps`)})}):y.length>0?y.map(t=>q(st,{children:q($l,{name:t.name,image:t.logo,url:t.url,setCurrentContent:e,description:t.description,category:t.category,selectedCategory:l})},t.id)):l&&!x&&q(st,{colSpan:2,children:q(Ye,{py:4,children:q(R,{children:n(`No apps found in this category`)})})})]})]})}),q(I,{pt:0})]})},iu=({name:e,image:t,url:n,description:r})=>{let{t:i}=Y(),{isShortcut:a,addShortcut:o,removeShortcut:s}=hp(),c=a(n);return q(j,{px:4,width:`full`,height:`45px`,variant:`vechainKitSecondary`,borderRadius:`xl`,onClick:()=>{c?s(n):o({name:e,image:t,url:n,description:r})},leftIcon:q(N,{as:c?Qn:Zn}),children:i(c?`Remove from shortcuts`:`Add to shortcuts`)})},au=({setCurrentContent:e,name:t,image:n,url:r,description:i,category:a,selectedCategory:o,logoComponent:s})=>{let{t:c}=Y();return J(A,{children:[J(Z,{children:[q(L,{children:t}),q(Ja,{onClick:()=>{e(o?{type:`ecosystem-with-category`,props:{selectedCategory:o,setCurrentContent:e}}:`ecosystem`)}}),q(F,{})]}),q(P,{children:J(z,{spacing:6,align:`center`,w:`full`,children:[J(rt,{direction:`column`,align:`center`,children:[s||q(ut,{src:n,alt:t,w:`200px`,h:`200px`,objectFit:`contain`,borderRadius:`xl`}),a&&q(M,{mt:2,children:q(Xl,{category:a})})]}),q(R,{fontSize:`sm`,textAlign:`center`,children:i}),q(R,{fontSize:`sm`,textAlign:`center`,children:c(`Click below to access {{ name }} and explore its features.`,{name:t})})]})}),q(I,{children:J(z,{w:`full`,spacing:4,children:[J(j,{variant:`vechainKitSecondary`,onClick:()=>{window.open(r,`_blank`)},children:[c(`Launch {{name}}`,{name:t}),q(N,{as:fr,ml:2})]}),q(iu,{name:t,image:n,url:r,description:i})]})})]})},ou=({children:e})=>q(Vn.div,{whileHover:{scale:1.1},transition:{duration:.5,ease:`easeInOut`,repeat:1/0,repeatDelay:crypto.getRandomValues(new Uint32Array(1))[0]/2**32*5},animate:{y:[0,-2,0],rotate:[0,10,-10,0]},children:e}),su=({descriptionEncoded:e})=>{let{darkMode:t}=$();return J(M,{gap:2,children:[q(ou,{children:q(ht,{href:`https://twitter.com/intent/tweet?text=${e}`,isExternal:!0,children:q(A,{bg:t?`blackAlpha.700`:`lightgrey`,p:2,borderRadius:`full`,children:q(Ki,{size:22})})})}),q(ou,{children:q(ht,{href:`https://telegram.me/share/url?url=${e}`,isExternal:!0,children:q(A,{bg:`#30abec`,p:2,borderRadius:`full`,children:q(ea,{color:`white`,size:22})})})}),q(ou,{children:q(ht,{href:`https://wa.me/?text=${e}`,isExternal:!0,children:q(A,{bg:`#01cb37`,p:2,borderRadius:`full`,children:q(na,{size:22,color:`white`})})})})]})},cu=({status:e,uiConfig:t,onTryAgain:n,txReceipt:r,txError:i,onClose:a})=>{let{t:o}=Y(),{network:s}=$(),c=B(`colors`,`vechain-kit-error`),l=B(`colors`,`vechain-kit-success`),u=B(`colors`,`vechain-kit-text-primary`),d=B(`colors`,`vechain-kit-text-secondary`),f=W(()=>i?i.reason||o(`Something went wrong. Please try again.`):null,[i,o]),p=(()=>{let n=e===`waitingConfirmation`;switch(n&&(e=`pending`),e){case`pending`:return{title:t?.title??o(n?`Sending Transaction...`:`Waiting for confirmation`),icon:t?.loadingIcon??q(At,{size:`xl`,"data-testid":`pending-spinner-modal`}),description:n?o(`Transaction is being processed, it can take up to 15 seconds.`):t?.description??o(`Please confirm the transaction in your wallet.`)};case`error`:return{title:o(`Something went wrong`),icon:t?.errorIcon??q(N,{as:ar,color:c,fontSize:`100px`,"data-testid":`error-icon-modal`}),description:f??o(`An unexpected error occurred.`)};case`success`:return{title:o(`Transaction successful!`),icon:t?.successIcon??q(N,{as:or,color:l,fontSize:`100px`,"data-testid":`success-icon-modal`}),description:``};case`ready`:return{title:t?.title??o(`Confirm transaction`),icon:null,description:t?.description??o(`Confirm the transaction in your wallet to complete it.`)};default:return{title:``,icon:null,description:``}}})(),m=`${k(s.type).explorerUrl}/${r?.meta.txID}`;return J(A,{children:[J(Z,{children:[q(L,{children:p.title}),q(F,{isDisabled:e===`pending`&&!t?.isClosable})]}),q(P,{children:J(z,{align:`center`,p:6,spacing:3,children:[p.icon,e===`success`&&t?.showShareOnSocials&&J(z,{mt:2,spacing:3,children:[q(R,{fontSize:`sm`,fontWeight:`bold`,color:d,children:o(`Share on`)}),q(su,{descriptionEncoded:m})]}),p.description&&q(R,{fontSize:e===`ready`?`md`:`sm`,textAlign:`center`,color:e===`error`?c:u,mt:5,style:{lineBreak:`anywhere`},children:p.description})]})}),q(I,{justifyContent:`center`,children:J(z,{width:`full`,spacing:4,children:[e===`error`&&!!n&&J(j,{variant:`vechainKitPrimary`,onClick:n,width:`full`,children:[q(N,{mr:2,as:Dr}),o(`Try again`)]}),e===`ready`&&q(j,{onClick:n,variant:`vechainKitPrimary`,width:`full`,children:o(`Confirm`)}),(e===`success`||e===`error`||e===`ready`)&&q(j,{onClick:a,variant:`vechainKitSecondary`,width:`full`,children:o(`Close`)}),t?.showExplorerButton&&r?.meta.txID&&q(ht,{href:`${k(s.type).explorerUrl}/${r?.meta.txID}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:J(M,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[q(R,{color:d,children:o(`View transaction on the explorer`)}),q(N,{size:`sm`,as:fr,color:d})]})})]})})]})},lu=({isOpen:e,onClose:t,status:n,uiConfig:r,txReceipt:i,txError:a,onTryAgain:o})=>q($a,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,closeOnOverlayClick:n!==`pending`&&r?.isClosable,children:q(cu,{status:n,onTryAgain:o,uiConfig:r,txReceipt:i,onClose:t,txError:a})}),uu=({txId:e,title:t,description:n,onDone:r,showSocialButtons:i=!1})=>{let{t:a}=Y(),{network:o}=$(),s=k(o.type).explorerUrl,c=`${s}/${e}`,l=B(`colors`,`vechain-kit-success`),u=B(`colors`,`vechain-kit-text-primary`),d=B(`colors`,`vechain-kit-text-secondary`);return J(A,{children:[J(Z,{children:[q(L,{children:t}),q(F,{})]}),q(P,{children:J(z,{align:`center`,p:6,spacing:3,children:[q(N,{as:or,fontSize:`100px`,color:l,"data-testid":`success-icon`}),n&&q(R,{fontSize:`sm`,textAlign:`center`,color:u,children:n}),i&&e&&J(z,{mt:2,spacing:3,children:[q(R,{fontSize:`sm`,fontWeight:`bold`,color:d,children:a(`Share on`)}),q(su,{descriptionEncoded:c})]})]})}),q(I,{justifyContent:`center`,children:J(z,{width:`full`,spacing:4,children:[q(j,{onClick:r,variant:`vechainKitSecondary`,width:`full`,children:a(`Done`)}),e&&q(ht,{href:`${s}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:J(M,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[q(R,{color:d,children:a(`View transaction on the explorer`)}),q(N,{size:16,as:fr})]})})]})})]})},du=({txId:e,title:t,description:n,onDone:r})=>{let{t:i}=Y(),{network:a,darkMode:o}=$(),s=k(a.type).explorerUrl;return J(A,{children:[J(Z,{children:[q(L,{children:t}),q(F,{})]}),q(P,{children:J(z,{align:`center`,p:6,spacing:3,children:[q(N,{as:ar,fontSize:`100px`,color:o?`red.400`:`red.500`,"data-testid":`error-icon`}),n&&q(R,{fontSize:`sm`,textAlign:`center`,children:n})]})}),q(I,{justifyContent:`center`,children:J(z,{width:`full`,spacing:4,children:[q(j,{onClick:r,variant:`vechainKitSecondary`,width:`full`,children:i(`Done`)}),e&&q(ht,{href:`${s}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:J(M,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[q(R,{children:i(`View transaction on the explorer`)}),q(N,{size:16,as:fr})]})})]})})]})},fu=({isOpen:e,onClose:t,initialContent:n=`main`})=>{Wl();let{account:r}=Q(),{accountModalContent:i,setAccountModalContent:a}=rd();return U(()=>{e&&n&&a(n)},[e,n,a]),q($a,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,children:(()=>{if(typeof i==`object`)switch(i.type){case`send-token`:return q(il,{...i.props});case`send-token-summary`:return q(al,{...i.props});case`swap-token`:return q(ul,{...i.props});case`choose-name`:return q(dl,{...i.props});case`choose-name-search`:return q(hl,{...i.props});case`choose-name-summary`:return q(gl,{...i.props});case`app-overview`:return q(au,{...i.props,setCurrentContent:a});case`disconnect-confirm`:return q(nl,{...i.props});case`account-customization`:return q(yl,{...i.props});case`account-customization-summary`:return q(bl,{...i.props});case`successful-operation`:return q(uu,{...i.props});case`failed-operation`:return q(du,{...i.props});case`upgrade-smart-account`:return q(Cl,{...i.props});case`faq`:return q(vl,{...i.props});case`terms-and-privacy`:return q(zl,{...i.props});case`ecosystem-with-category`:return q(ru,{setCurrentContent:a,selectedCategory:i.props.selectedCategory})}switch(i){case`main`:return q(Nc,{setCurrentContent:a,onClose:t,wallet:r});case`settings`:return q(Yc,{setCurrentContent:a,onLogoutSuccess:()=>{t()}});case`profile`:return q(Sl,{setCurrentContent:a,onLogoutSuccess:()=>{t()}});case`assets`:return q(wl,{setCurrentContent:a});case`bridge`:return q(El,{setCurrentContent:a});case`notifications`:return q(Jl,{setCurrentContent:a});case`access-and-security`:return q(qc,{setCurrentContent:a});case`receive-token`:return q(ol,{setCurrentContent:a});case`swap-token`:return q(ul,{setCurrentContent:a});case`connection-details`:return q(Bl,{onGoBack:()=>a(`settings`)});case`privy-linked-accounts`:return q(Hl,{onBack:()=>a(`access-and-security`)});case`ecosystem`:return q(ru,{setCurrentContent:a});case`embedded-wallet`:return q(tl,{setCurrentContent:a});case`add-custom-token`:return q(Tl,{setCurrentContent:a});case`change-currency`:return q(Dl,{setCurrentContent:a});case`general-settings`:return q(Ol,{setCurrentContent:a});case`change-language`:return q(kl,{setCurrentContent:a});case`appearance-settings`:return q(Al,{setCurrentContent:a});case`gas-token-settings`:return q(Nl,{setCurrentContent:a});default:return null}})()})},pu=({isOpen:e,onClose:t})=>{let[n,r]=G(`main`);return U(()=>{e&&r(`main`)},[e]),q($a,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,children:(()=>{switch(n){case`main`:return q(jc,{setCurrentContent:r,onClose:t});case`faq`:return q(vl,{onGoBack:()=>r(`main`)})}})()})},mu=({onClick:e,text:t,icon:n,customIcon:r,rightIcon:i,style:a,variant:o=`loginIn`,iconWidth:s=`25px`})=>t?t?J(j,{...a,variant:o,w:`full`,onClick:e,children:[J(M,{w:`full`,justify:`flex-start`,gap:2,children:[r||q(N,{as:n,w:s,h:s}),q(R,{opacity:.9,children:t})]}),i]}):null:q(j,{...a,variant:o,w:`full`,onClick:e,children:r||q(N,{as:n,w:`20px`,h:`20px`})}),hu=({isLoading:e,buttonStyle:t})=>{let{t:n}=Y(),{loginMethods:r,darkMode:i,privyEcosystemAppIDS:a}=$(),o=r?.some(({method:e})=>e===`ecosystem`),{data:s,isLoading:c}=oo(a);return q(Ct,{placement:`bottom-start`,size:`xl`,closeOnBlur:!1,variant:`vechainKitBase`,children:({isOpen:r})=>J(K,{children:[q(Dt,{children:J(j,{isLoading:e,...t,isActive:r,children:[n(`Login`),q(N,{ml:2,as:tr,transform:r?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 0.2s`})]})}),J(Tt,{children:[q(wt,{children:q(kc,{})}),q(Et,{borderTop:`none`,pb:`15px`,children:o&&q(M,{justify:`center`,w:`full`,children:q(Ac,{isDark:i,appsInfo:Object.values(s||{}),isLoading:c})})})]})]})})},gu=({variant:e})=>{let{account:t}=Q();return t?e===`icon`?null:e===`iconAndDomain`?t.domain?q(R,{fontSize:`sm`,children:d(t?.domain??``,16,0)}):q(R,{fontSize:`sm`,children:l(t.address??``,6,4)}):e===`iconDomainAndAssets`?J(M,{spacing:4,children:[J(z,{spacing:0,alignItems:`flex-start`,children:[t.domain&&q(R,{fontSize:`sm`,fontWeight:`bold`,children:d(t?.domain??``,16,0)}),q(R,{fontSize:t.domain?`xs`:`sm`,opacity:t.domain?.5:1,"data-testid":`trimmed-address`,children:l(t.address??``,4,4)})]}),q(Lc,{address:t.address??``,maxIcons:3})]}):J(z,{spacing:0,alignItems:`flex-start`,children:[t.domain&&q(R,{fontSize:`sm`,fontWeight:`bold`,children:d(t?.domain??``,16,0)}),q(R,{fontSize:t.domain?`xs`:`sm`,opacity:t.domain?.5:1,children:l(t.address??``,4,4)})]}):q(At,{})},_u=({mobileVariant:e=`iconAndDomain`,desktopVariant:t=`iconAndDomain`,onOpen:n,buttonStyle:r={}})=>{let{account:i}=Q(),[a]=Kt(`(min-width: 768px)`);return q(j,{...r,onClick:n,w:`full`,minH:`45px`,maxW:`fit-content`,"data-testid":`wallet-button`,children:J(M,{w:`full`,minW:`fit-content`,children:[q(kp,{wallet:i,props:{width:30,height:30,minWidth:30,minHeight:30}}),q(gu,{variant:a?t:e})]})})},vu=({mobileVariant:e=`iconAndDomain`,desktopVariant:t=`iconDomainAndAddress`,buttonStyle:n,connectionVariant:r=`modal`})=>{let{t:i}=Y(),{darkMode:a,loginMethods:o}=$(),s=o?.length===1&&o[0].method===`dappkit`,{connection:c,account:l}=Q(),{setSource:u,connectV2:d}=Mn(),[f]=Kt(`(max-width: 768px)`),p=Gt(),m=Gt(),{open:h}=Pn();return J(td,{darkMode:a,children:[c.isConnected&&l?q(_u,{mobileVariant:e,desktopVariant:t,onOpen:m.onOpen,buttonStyle:n}):r===`popover`&&!f?q(hu,{isLoading:c.isLoading,buttonStyle:n}):q(j,{isLoading:c.isLoading,onClick:()=>{c.isInAppBrowser?(u(`veworld`),d(null)):s?h():p.onOpen()},...n,children:i(`Login`)}),q(pu,{isOpen:p.isOpen,onClose:p.onClose}),q(fu,{isOpen:m.isOpen,onClose:m.onClose})]})},yu=()=>{let{darkMode:e}=$(),t=25/2,[n]=Kt(`(max-width: 280px)`),[r]=Kt(`(max-width: 380px)`);return J(M,{spacing:0,ml:0,children:[q(Qe,{size:`25px`,borderRadius:`full`,bg:`#F8F8F8`,p:2,alignItems:`center`,justifyContent:`center`,zIndex:3,children:q(N,{as:Vi,fontSize:`20px`})}),!n&&q(Qe,{ml:`-${t}px`,size:`25px`,borderRadius:`full`,bg:`black`,p:2,alignItems:`center`,justifyContent:`center`,zIndex:2,children:q(N,{as:Ki,color:`white`,fontSize:`20px`})}),!n&&!r&&q(Qe,{ml:`-${t}px`,zIndex:1,size:`25px`,borderRadius:`full`,bg:`#5865F2`,p:2,alignItems:`center`,justifyContent:`center`,children:q(N,{as:Gi,color:`white`,fontSize:`20px`})}),q(N,{zIndex:1,as:Er,color:e?`black`:`white`,fontSize:`15px`})]})},bu=({status:e,txReceipt:t,txError:n,onTryAgain:r,description:i,onClose:a})=>{let{t:o}=Y(),{network:s}=$(),c=k(s.type).explorerUrl,l=W(()=>n?n.reason||o(`Something went wrong. Please try again.`):null,[n,o]),u=(()=>{let t=e===`waitingConfirmation`;switch(t&&(e=`pending`),e){case`pending`:return{icon:q(At,{size:`md`,"data-testid":`pending-spinner-toast`}),title:o(t?`Processing transaction...`:`Waiting for confirmation...`),closeDisabled:!0,description:t?o(`Transaction is being processed, it can take up to 15 seconds.`):i??o(`Please confirm the transaction in your wallet.`)};case`error`:return{icon:q(N,{as:ar,color:`red.500`,fontSize:`40px`,"data-testid":`error-icon-toast`}),title:o(`Transaction failed`),closeDisabled:!1,description:l};case`success`:return{icon:q(N,{as:or,color:`green.500`,fontSize:`40px`,"data-testid":`success-icon-toast`}),title:o(`Transaction successful!`),closeDisabled:!1,description:void 0};case`ready`:return{icon:null,title:o(`Confirm transaction`),closeDisabled:!1,description:i??o(`Confirm the transaction in your wallet to complete it.`)};default:return{icon:null,title:``,closeDisabled:!1,description:``}}})();return u?J(M,{justify:`space-between`,alignItems:`flex-start`,w:`full`,children:[q(z,{spacing:4,children:J(M,{spacing:4,w:`full`,justifyContent:`flex-start`,alignItems:`flex-start`,children:[u.icon,J(z,{w:`full`,align:`flex-start`,spacing:2,children:[J(z,{spacing:1,w:`full`,children:[q(ct,{w:`full`,size:`xs`,children:u.title}),u.description&&q(R,{fontSize:`xs`,children:u.description})]}),(e===`error`||e===`ready`)&&q(j,{size:`xs`,onClick:r,children:o(e===`error`?`Try again`:`Confirm`)}),t&&e!==`pending`&&J(ht,{fontSize:`xs`,isExternal:!0,href:`${c}/${t.meta.txID}`,children:[o(`View on explorer`),` `,q(N,{as:fr})]})]})]})}),!u.closeDisabled&&q(lt,{onClick:a,variant:`ghost`,size:`sm`,borderRadius:`full`,"aria-label":`Close`,icon:q(N,{as:Vr,boxSize:4})})]}):null},xu=({isOpen:e,onClose:t,status:n,txReceipt:r,txError:i,onTryAgain:a,description:o})=>{let{darkMode:s}=$();return e?q(A,{position:`fixed`,bottom:`5`,left:`5`,zIndex:`11111`,bg:s?`#1f1f1e`:`white`,borderRadius:`md`,p:5,boxShadow:`lg`,maxW:`sm`,minW:`300px`,children:q(bu,{status:n,txReceipt:r,txError:i,onTryAgain:a,description:o,onClose:t})}):null},Su=({isOpen:e,onClose:t,error:n,title:r,loadingText:i,onTryAgain:a=()=>{}})=>q($a,{isOpen:e,onClose:t,trapFocus:!1,autoFocus:!1,backdropFilter:`blur(3px)`,children:n?q(wu,{error:n,onClose:t,onTryAgain:a}):q(Cu,{loadingText:i,title:r,onTryAgain:a})}),Cu=({loadingText:e,title:t,onTryAgain:n})=>{let{t:r}=Y(),[i,a]=V.useState(!1);return V.useEffect(()=>{let e=setTimeout(()=>{a(!0)},7e3);return()=>clearTimeout(e)},[Pi]),J(K,{children:[q(Z,{children:q(L,{children:t??r(`Connecting...`)})}),J(P,{children:[q(z,{align:`center`,p:6,gap:0,w:`full`,justifyContent:`center`,minH:`150px`,children:q(At,{size:`xl`})}),e&&!i&&q(R,{size:`sm`,textAlign:`center`,children:e}),i&&J(z,{mt:4,spacing:2,children:[q(R,{color:`orange.300`,size:`sm`,textAlign:`center`,children:r(`This is taking longer than expected.`)}),q(R,{size:`sm`,textAlign:`center`,children:r(`You may want to try establishing the connection again.`)})]})]}),q(I,{justifyContent:`center`,children:i&&J(j,{variant:`vechainKitPrimary`,onClick:n,children:[q(N,{mr:2,as:Dr}),r(`Try again`)]})})]})},wu=({error:e,onClose:t,onTryAgain:n})=>{let{t:r}=Y();return J(K,{children:[J(Z,{children:[q(L,{children:r(`Connection Failed`)}),q(F,{onClick:()=>{t()}})]}),q(P,{children:J(z,{align:`center`,p:6,w:`full`,justifyContent:`center`,minH:`100px`,gap:4,children:[q(Vn.div,{transition:{duration:4,ease:`easeInOut`,repeat:1/0},animate:{scale:[1,1.1,1]},children:q(N,{as:ar,color:`#ef4444`,fontSize:`60px`,opacity:.5})}),q(R,{w:`full`,size:`sm`,textAlign:`center`,children:e})]})}),q(I,{justifyContent:`center`,children:J(j,{variant:`vechainKitPrimary`,onClick:n,children:[q(N,{mr:2,as:Dr}),r(`Try again`)]})})]})},Tu=({onClose:e,appsInfo:t,isLoading:n})=>{let{t:r}=Y(),i=B(`colors`,`vechain-kit-text-primary`),[a,o]=G(),[s,c]=G(),l=Gt(),{setConnectionCache:u}=Ud(),{login:d}=Us(),f=async(n,i)=>{l.onOpen();try{o(void 0),c(i);try{await d(n),l.onClose(),u({name:i,logoUrl:t.find(e=>e.id===n)?.logo_url,appId:n,website:t.find(e=>e.id===n)?.website}),e()}catch(e){let t=e?.message;if(t&&g(t))return Error(`Login request was cancelled.`);o((e instanceof Error?e:Error(`'An unexpected issue occurred while logging in with this app. Please try again or contact support.',`)).message)}}catch(e){console.error(r(`Login failed:`),e),o(e instanceof Error?e.message:r(`Failed to connect with ecosystem app`))}};return J(A,{children:[J(K,{children:[q(Z,{children:J(L,{children:[r(`Already have an x2earn app wallet?`),q(F,{onClick:()=>{e()}})]})}),J(P,{children:[n&&q(z,{minH:`200px`,w:`full`,justifyContent:`center`,children:q(At,{})}),!n&&t&&q(z,{spacing:4,w:`full`,pb:6,children:t.map(e=>J(j,{variant:`loginIn`,fontSize:`14px`,fontWeight:`400`,p:6,borderRadius:16,w:`full`,onClick:()=>{f(e.id,e.name)},justifyContent:`flex-start`,children:[q(ut,{src:e.logo_url,alt:e.name,w:`30px`}),q(R,{ml:5,children:e.name})]},e.id))}),!n&&!t&&q(R,{textAlign:`center`,color:i,children:r(`No application from VeChain ecosystem is available to login.`)})]}),q(I,{pt:0})]}),q(Su,{isOpen:l.isOpen,onClose:()=>{l.onClose()},error:a,title:`${r(`Connecting with`)} ${s}`,loadingText:r(`Please approve the request in the connection request window...`),onTryAgain:()=>{if(s){let e=t.find(e=>e.name===s);e&&f(e.id,e.name)}}})]})},Eu=({isOpen:e,onClose:t,appsInfo:n,isLoading:r})=>q($a,{isOpen:e,onClose:t,backdropFilter:`blur(3px)`,children:q(Tu,{onClose:t,appsInfo:n,isLoading:r})}),Du=({txId:e,title:t,description:n,onDone:r,showSocialButtons:i=!1})=>{let{t:a}=Y(),{network:o}=$(),s=k(o.type).explorerUrl,c=`${s}/${e}`,l=B(`colors`,`vechain-kit-success`);return J(A,{children:[J(Z,{children:[q(L,{children:t}),q(F,{})]}),q(P,{children:J(z,{align:`center`,p:6,spacing:3,children:[q(Vn.div,{transition:{duration:4,ease:`easeInOut`,repeat:1/0},animate:{scale:[1,1.1,1]},children:q(N,{as:or,fontSize:`100px`,color:l})}),n&&q(R,{fontSize:`sm`,textAlign:`center`,children:n}),i&&e&&J(z,{mt:2,children:[q(R,{fontSize:`xs`,children:a(`Share on`)}),q(su,{descriptionEncoded:c})]})]})}),q(I,{justifyContent:`center`,children:J(z,{width:`full`,spacing:4,children:[q(j,{onClick:r,variant:`vechainKitSecondary`,width:`full`,children:a(`Done`)}),e&&q(ht,{href:`${s}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:J(M,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[q(R,{children:a(`View transaction on the explorer`)}),q(N,{size:16,as:fr})]})})]})})]})},Ou=({setCurrentContent:e,handleClose:t,style:n})=>{let{t:r}=Y(),{smartAccount:i,connectedWallet:a}=Q(),{data:o}=Pf(i?.address??``,a?.address??``,3),{sendTransaction:s,isTransactionPending:c,isWaitingForWalletConfirmation:l,error:u,txReceipt:d}=zf({smartAccountAddress:i?.address??``,targetVersion:3,onSuccess:()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:d?.meta.txID,title:r(`Upgrade Successful!`),description:r(`Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.`),onDone:()=>{t()},showSocialButtons:!1}})},onError:()=>{console.error(`Error upgrading Smart Account`)}});return J(K,{children:[J(Z,{children:[q(L,{children:r(`Account upgrade required`)}),q(F,{})]}),q(P,{children:J(z,{spacing:10,align:`stretch`,justifyContent:`center`,children:[q(R,{fontSize:`sm`,textAlign:`center`,children:r(`To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).`)}),J(M,{align:`center`,justifyContent:`space-evenly`,rounded:`md`,children:[J(A,{position:`relative`,display:`inline-block`,children:[q(Qe,{size:`60px`,bg:`gray.200`,children:q(ut,{src:i?.image,alt:r(`Profile Picture`),w:`100%`,h:`100%`,borderRadius:`full`,objectFit:`cover`})}),q(ct,{position:`absolute`,top:`-5`,right:`-5`,color:`#D23F63`,fontSize:`28px`,children:`v1`})]}),q(N,{as:qn,color:`#3DBA67`}),J(A,{position:`relative`,display:`inline-block`,children:[q(Qe,{size:`60px`,bg:`gray.200`,children:q(ut,{src:i?.image,alt:r(`Profile Picture`),w:`100%`,h:`100%`,borderRadius:`full`,objectFit:`cover`})}),q(ct,{position:`absolute`,top:`-5`,right:`-5`,color:`#3DBA67`,fontSize:`28px`,children:`v3`})]})]}),J(Be,{status:`info`,borderRadius:`md`,children:[q(He,{}),J(A,{children:[q(Ue,{fontSize:`sm`,children:r(`Benefits of this upgrade:`)}),q(Ve,{fontSize:`xs`,children:J(z,{align:`start`,spacing:0,mt:1,children:[J(R,{fontSize:`xs`,lineHeight:`1.2`,children:[`• `,r(`Improved security features`)]}),J(R,{fontSize:`xs`,children:[`• `,r(`Better transaction handling`)]}),J(R,{fontSize:`xs`,children:[`•`,` `,r(`Enhanced compatibility with dApps`)]}),J(R,{fontSize:`xs`,children:[`•`,` `,r(`Reduced gas costs for operations`)]})]})})]})]})]})}),q(I,{justifyContent:`center`,children:q(z,{spacing:3,w:`full`,children:q(Ap,{style:n,buttonText:r(o?`Upgrade account`:`Account already upgraded`),onConfirm:async()=>{try{await s()}catch(e){console.error(`Failed to upgrade Smart Account:`,e)}},isTxWaitingConfirmation:l,isSubmitting:c,transactionPendingText:r(`Upgrading...`),txReceipt:d,transactionError:u,isDisabled:!o})})})]})},ku=({isOpen:e,onClose:t,style:n})=>{let[r,i]=G(`upgrade-smart-account`);return U(()=>{e&&i(`upgrade-smart-account`)},[e]),q($a,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,size:n?.modalSize,children:(()=>{if(typeof r==`object`)switch(r.type){case`successful-operation`:return q(Du,{...r.props})}else if(r===`upgrade-smart-account`)return q(Ou,{setCurrentContent:i,handleClose:t,style:n})})()})},{definePartsStyle:Au,defineMultiStyleConfig:ju}=Rt(ca.keys),Mu=e=>({vechainKitBase:Au({dialog:{scrollbarWidth:`none`,overflow:`scroll`,overflowX:`hidden`,maxHeight:`550px`,borderRadius:e.borders.radius.xl,backgroundColor:e.colors.background.modal,backdropFilter:e.effects.backdropFilter.modal,border:e.colors.border.modal},overlay:{backgroundColor:e.colors.background.overlay,backdropFilter:e.effects.backdropFilter.overlay},closeButton:{borderRadius:e.borders.radius.full,color:e.colors.text.primary,_hover:{bg:e.buttons.button.bg},_active:{bg:e.buttons.button.bg,opacity:.8}},header:{w:`full`,color:e.colors.text.primary,fontSize:e.fonts.sizes.medium,fontWeight:e.fonts.weights.bold,textAlign:`center`}})}),Nu=e=>ju({variants:Mu(e),defaultProps:{variant:`vechainKitBase`}}),{definePartsStyle:Pu,defineMultiStyleConfig:Fu}=Rt(sa.keys),Iu=e=>({vechainKitBase:Pu({container:{backgroundColor:e.colors.background.card,borderRadius:e.borders.radius.medium,width:`full`,border:`none`},body:{p:5,width:`full`},header:{p:5,width:`full`,borderRadius:`${e.borders.radius.medium} ${e.borders.radius.medium} 0 0`},footer:{width:`full`,borderRadius:`0 0 ${e.borders.radius.medium} ${e.borders.radius.medium}`}}),featureAnnouncement:Pu({body:{backgroundColor:e.buttons.button.bg,borderRadius:e.borders.radius.medium,color:e.colors.text.secondary},container:{borderRadius:e.borders.radius.medium,backgroundColor:`transparent`}}),vechainKitAppCard:Pu({body:{height:`full`,borderRadius:e.borders.radius.medium,backgroundColor:e.colors.background.cardElevated,border:`1px solid ${e.colors.border.default}`},container:{height:`150px`,borderRadius:e.borders.radius.medium,backgroundColor:`transparent`}})}),Lu=e=>Fu({variants:Iu(e),defaultProps:{variant:`vechainKitBase`}}),Ru=Bt({borderRadius:`12px`}),zu=e=>({loginIn:Bt(()=>({bg:e.buttons.loginButton.bg,color:e.buttons.loginButton.color,border:e.buttons.loginButton.border,fontSize:e.fonts.sizes.medium,fontWeight:e.fonts.weights.normal,py:6,px:3,borderRadius:e.borders.radius.large,_hover:{opacity:.5,_disabled:{opacity:.5,bg:e.buttons.loginButton.bg}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:e.buttons.loginButton.bg},transition:`all 0.2s`})),loginWithVechain:Bt(()=>({color:`white`,bg:`#1a1a1a`,fontSize:e.fonts.sizes.medium,fontWeight:e.fonts.weights.normal,py:6,px:3,borderRadius:e.borders.radius.large,border:`1px solid ${e.colors.border.button}`,_hover:{opacity:.5,_disabled:{opacity:.5,bg:`#1a1a1a`}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:`#1a1a1a`},_dark:{color:`#1a1a1a`,bg:`white`,_hover:{_disabled:{bg:`white`}},_disabled:{bg:`white`}},transition:`all 0.2s`})),vechainKitPrimary:Bt(()=>({fontSize:e.fonts.sizes.medium,px:4,width:`full`,height:`60px`,borderRadius:e.borders.radius.large,bg:e.buttons.primaryButton.bg,color:e.buttons.primaryButton.color,border:e.buttons.primaryButton.border,_hover:{...e.buttons.primaryButton.hoverBg?{bg:e.buttons.primaryButton.hoverBg}:{opacity:.8},_disabled:{opacity:.5,bg:e.buttons.primaryButton.bg}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:e.buttons.primaryButton.bg},transition:`all 0.2s`})),vechainKitSecondary:Bt(()=>({fontSize:e.fonts.sizes.medium,px:4,width:`full`,height:`60px`,borderRadius:e.borders.radius.large,bg:e.buttons.button.bg,color:e.buttons.button.color,border:e.buttons.button.border===`none`?`none`:e.buttons.button.border,_hover:{...e.buttons.button.hoverBg?{bg:e.buttons.button.hoverBg}:{opacity:.8},_disabled:{opacity:.5,bg:e.buttons.button.bg}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:e.buttons.button.bg},transition:`all 0.2s`})),vechainKitTertiary:Bt(()=>({fontSize:e.fonts.sizes.medium,px:4,width:`full`,height:`60px`,borderRadius:e.borders.radius.large,bg:e.buttons.tertiaryButton.bg,color:e.buttons.tertiaryButton.color,border:e.buttons.tertiaryButton.border===`none`?`none`:e.buttons.tertiaryButton.border,_hover:{opacity:.8,_disabled:{opacity:.5,bg:e.buttons.tertiaryButton.bg}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:e.buttons.tertiaryButton.bg},transition:`all 0.2s`})),vechainKitLogout:Bt(()=>({width:`full`,minHeight:`50px`,height:`fit-content`,borderRadius:e.borders.radius.xl,p:0,bg:e.colors.error+`1f`,_hover:{bg:e.colors.error+`5e`,color:e.colors.error},transition:`all 0.2s`,color:e.colors.error})),actionButton:Bt(()=>({width:`full`,minHeight:`50px`,height:`fit-content`,bg:e.buttons.button.bg,borderRadius:e.borders.radius.xl,p:0,color:e.buttons.button.color,border:e.buttons.button.border===`none`?`1px solid ${e.colors.border.button}`:e.buttons.button.border,_hover:{opacity:.8,_disabled:{opacity:.5,bg:e.buttons.button.bg}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:e.buttons.button.bg},transition:`all 0.2s`})),ghost:Bt(()=>({bg:`transparent`,color:e.colors.text.primary,border:`none`,_hover:{bg:e.buttons.button.bg},_active:{bg:e.buttons.button.bg,opacity:.8},transition:`all 0.2s`})),link:Bt(()=>({color:e.colors.text.primary,_hover:{color:e.colors.text.secondary,textDecoration:`underline`},_active:{color:e.colors.text.primary},transition:`all 0.2s`}))}),Bu=e=>Vt({baseStyle:Ru,variants:zu(e)}),{definePartsStyle:Vu,defineMultiStyleConfig:Hu}=Rt(la.keys),Uu=e=>({vechainKitBase:Vu({popper:{zIndex:1e3},content:{borderRadius:e.borders.radius.xl,border:`none`,backgroundColor:e.colors.background.modal,boxShadow:`0px 4px 16px rgba(0, 0, 0, 0.12)`,minWidth:`380px`},body:{padding:`16px`}})}),Wu=e=>Hu({variants:Uu(e),defaultProps:{variant:`vechainKitBase`}}),Gu=(e,t)=>({useSystemColorMode:!1,disableTransitionOnChange:!1,components:{Modal:Nu(t),Card:Lu(t),Button:Bu(t),Popover:Wu(t)},styles:{global:()=>({})},semanticTokens:{colors:{"chakra-placeholder-color":t.colors.text.tertiary,"vechain-kit-modal":t.colors.background.modal,"vechain-kit-overlay":t.colors.background.overlay,"vechain-kit-card":e?`rgba(0, 0, 0, 0.3)`:`rgba(0, 0, 0, 0.05)`,"vechain-kit-card-elevated":e?`rgba(0, 0, 0, 0.4)`:`rgba(0, 0, 0, 0.08)`,"vechain-kit-sticky-header":t.colors.background.stickyHeader,"vechain-kit-text-primary":t.colors.text.primary,"vechain-kit-text-secondary":t.colors.text.secondary,"vechain-kit-text-tertiary":t.colors.text.tertiary,"vechain-kit-border":t.colors.border.default,"vechain-kit-border-hover":t.colors.border.hover,"vechain-kit-border-focus":t.colors.border.focus,"vechain-kit-success":t.colors.success,"vechain-kit-error":t.colors.error,"vechain-kit-warning":t.colors.warning},effects:{"vechain-kit-backdrop-filter-modal":t.effects.backdropFilter.modal,"vechain-kit-backdrop-filter-overlay":t.effects.backdropFilter.overlay,"vechain-kit-backdrop-filter-sticky-header":t.effects.backdropFilter.stickyHeader},config:{cssVarPrefix:`vechain-kit`}},fonts:Ut.fonts,fontSizes:{...Ut.fontSizes,sm:t.fonts.sizes.small,md:t.fonts.sizes.medium,lg:t.fonts.sizes.large},fontWeights:{...Ut.fontWeights,normal:t.fonts.weights.normal,medium:t.fonts.weights.medium,bold:t.fonts.weights.bold},colors:Ut.colors,space:Ut.space}),Ku=(e,t)=>{let n=Ht(Gu(e,Ra(La(e),za(t,e))));return n.styles.global=()=>({}),n.__cssVars&&(n.__cssVars.global=()=>({})),n},{ToastContainer:qu}=zt(),Ju=()=>oa({key:`vechain-kit`,prepend:!0}),Yu=({bodyFont:e,headingFont:t})=>q(ia,{styles:aa`
|
|
119
|
+
}`,a=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({operationName:`Registrations`,query:i,extensions:{}})});if(!a.ok)throw Error(`Failed to fetch domains`);let o=await a.json();return o.data&&o.data.domains&&(o.data.domains=o.data.domains.filter(e=>!e.name.endsWith(`addr.reverse`))),Ao.parse(o.data)},Mo=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,e,t],No=(e,t)=>{let{network:n}=$();return X({queryKey:Mo(e,t),queryFn:()=>jo(n.type,e,t),enabled:!!e&&!!n.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`address is required`)return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},Po=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR`,e,t],Fo=e=>{let{network:t}=$();return X({queryKey:Po(e??``,t.type),queryFn:async()=>e?Ur(e,{networkUrl:t.nodeUrl}):null,enabled:!!e&&!!t.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},Io=new $t([`function resolver(bytes32 node) returns (address resolverAddress)`,`function text(bytes32 node, string key) view returns (string)`]),Lo=async(e,t,n)=>{if(!n)return{};let r=tn(n);try{let[{data:n,reverted:i}]=await(await fetch(`${e}/accounts/*`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:k(t).vetDomainsContractAddress,data:Io.encodeFunctionData(`resolver`,[r])}]})})).json();if(i)return{};let{resolverAddress:a}=Io.decodeFunctionResult(`resolver`,n);return(await(await fetch(`${e}/accounts/*`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:le.map(e=>({to:a,data:Io.encodeFunctionData(`text`,[r,e])}))})})).json()).reduce((e,{data:t,reverted:n},r)=>{if(!n&&t&&t!==`0x`)try{let n=Io.decodeFunctionResult(`text`,t)[0];n&&(e[le[r]]=n)}catch(e){console.error(`Failed to decode text record for ${le[r]}:`,e)}return e},{})}catch(e){throw console.error(`Error fetching text records:`,e),e}},Ro=(e,t)=>[`VECHAIN_KIT_TEXT_RECORDS`,e,t],zo=e=>{let{network:t}=$(),n=t.nodeUrl??k(t.type).nodeUrl;return X({queryKey:Ro(e,t.type),queryFn:()=>Lo(n,t.type,e),enabled:!!e&&!!t.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},Bo=new $t([`function resolver(bytes32 node) returns (address resolverAddress)`,`function setText(bytes32 node, string key, string value) external`]),Vo=(e,t)=>{let n=[];for(let{domain:r,key:i,value:a}of t){if(!r)throw Error(`Domain is required`);if(!e)throw Error(`Resolver address is required`);let t=tn(r);n.push({to:e,data:Bo.encodeFunctionData(`setText`,[t,i,a]),value:`0`,comment:`Update ${i} record`})}return n},Ho=({onSuccess:e,onError:t,signerAccountAddress:n,resolverAddress:r}={})=>{let i=H(e=>{if(!r)throw Error(`Resolver address is required`);return Vo(r,e)},[r]),a=cc({signerAccountAddress:n,onTxConfirmed:async()=>{await e?.()},onTxFailedOrCancelled:async()=>{await t?.()},privyUIOptions:{title:`Update Profile Information`,description:`Update the profile information associated with your domain`,buttonText:`Sign to continue`}});return{...a,clauses:i,sendTransaction:async e=>a.sendTransaction(i(e))}},Uo=e=>[`VECHAIN_KIT`,`RESOLVER_ADDRESS`,e],Wo=e=>{let{network:t}=$();return uf({address:k(t.type).vetDomainsContractAddress,abi:ai.abi,method:`resolver`,args:[e?yi(e):`0x`],queryOptions:{select:e=>e[0],enabled:!!e}})},Go=e=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR_OF_ADDRESS`,e],Ko=e=>{let{network:t}=$();return X({queryKey:Go(e),queryFn:async()=>{if(!e||!t.nodeUrl)return i(e??``);let n=await Hr(e,{networkUrl:t.nodeUrl});return n&&await Ur(n,{networkUrl:t.nodeUrl})||i(e??``)},enabled:!!e&&!!t.nodeUrl,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},qo=new $t([`function resolver(bytes32 node) returns (address resolverAddress)`,`function text(bytes32 node, string key) returns (string avatar)`]),Jo=new $t([`function tokenURI(uint256 tokenId) view returns (string)`,`function uri(uint256 id) view returns (string)`]),Yo=async(e,t,n)=>{if(!n)throw Error(`Name is required`);let r=tn(n);try{let[{data:n,reverted:i}]=await(await fetch(`${t}/accounts/*`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:k(e).vetDomainsContractAddress,data:qo.encodeFunctionData(`resolver`,[r])}]})})).json();if(i)return null;let{resolverAddress:a}=qo.decodeFunctionResult(`resolver`,n),[{data:o,reverted:s}]=await(await fetch(`${t}/accounts/*`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:a,data:qo.encodeFunctionData(`text`,[r,`avatar`])}]})})).json();if(s||o===`0x`)return null;try{let{avatar:n}=qo.decodeFunctionResult(`text`,o),r=n===``?null:n;return r?Zo(r,e,t):null}catch(e){return console.error(`Failed to decode avatar data:`,e),null}}catch(e){throw console.error(`Error fetching avatar using legacy API:`,e),e}},Xo=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR`,`LEGACY`,e,t];async function Zo(e,t,n){try{if(e.startsWith(`http`)||e.startsWith(`ipfs://`)||e.startsWith(`ar://`))return x(e,t)||null;let r=e.match(/eip155:(\d+)\/(?:erc721|erc1155):([^/]+)\/(\d+)/);if(r){let[,i,a,o]=r,s=e.includes(`erc1155`);if(!i||!a||o===void 0)return null;let c=[{to:a,data:Jo.encodeFunctionData(s?`uri`:`tokenURI`,[BigInt(o||0)])}],[{data:l,reverted:u}]=await fetch(`${n}/accounts/*`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:c})}).then(e=>e.json());if(u)return console.error(`Failed to fetch tokenURI`),null;let d=``;try{d=Jo.decodeFunctionResult(s?`uri`:`tokenURI`,l)[0]}catch(e){console.error(`Failed to decode avatar data:`,e),d=an(l)}d=x(d,t)||d,s&&(d=d.replace(`{id}`,on(rn(BigInt(o||0)),32).slice(2)));let f=await fetch(d);if(!f.ok)return console.error(`Failed to fetch metadata`),null;let p=await f.json(),m=p.image||p.image_url||p.image_data;return m?x(m,t)||m:(console.error(`No image URL in metadata`),null)}return null}catch(e){return console.error(`Error parsing avatar record:`,e),null}}const Qo=e=>{let{network:t}=$(),n=t.nodeUrl??k(t.type).nodeUrl;return X({queryKey:Xo(e??``,t.type),queryFn:async()=>e?Yo(t.type,n,e):null,enabled:!!e&&!!n&&!!t.type})},$o=si.createInterface(),es=(e,t)=>{let n=[];return n.push({to:k(t.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:$o.encodeFunctionData(`setName`,[``]),comment:`Unsetting your current VeChain nickname of the account ${l(e?.address??``,4,4)}`,abi:$o.getFunction(`setName`)}),n},ts=({onSuccess:e,onError:t})=>{let n=zn(),{account:r}=Q(),{network:i}=$(),a=H(()=>es(r,i),[r,i]),o=H(async()=>{await go(n,r?.address??``,``,``,``,i.type),e?.()},[e,n,r,i.type]),s=cc({signerAccountAddress:r?.address??``,privyUIOptions:{title:`Sign to unset your VeChain nickname`,description:`Unset your current VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:o,onTxFailedOrCancelled:t});return{...s,clauses:a,sendTransaction:async()=>s.sendTransaction(a())}},ns=e=>{let{network:t}=$(),n=k(t.type),{data:r,isLoading:i}=yf(e),{data:a,isLoading:o}=xs(e),{data:s,isLoading:c}=Ds(e),{data:l,isLoading:u}=Ts(n.veDelegateTokenContractAddress,e),{data:d,isLoading:f}=Ts(n.gloDollarContractAddress,e),p=Cs(e),m=p.map(e=>e.data).filter(Boolean),h=p.some(e=>e.isLoading);return{balances:W(()=>{if(!e)return[];let t={vet:`0x`,vtho:n.vthoContractAddress,b3tr:n.b3trContractAddress,vot3:n.vot3ContractAddress,veDelegate:n.veDelegate,USDGLO:n.gloDollarContractAddress},i=[{address:t.vet,symbol:`VET`,balance:r?.balance||`0`},{address:t.vtho,symbol:`VTHO`,balance:r?.energy||`0`},{address:t.b3tr,symbol:`B3TR`,balance:a?.scaled??`0`},{address:t.vot3,symbol:`VOT3`,balance:s?.scaled??`0`},{address:t.veDelegate,symbol:`veDelegate`,balance:l?.scaled??`0`},{address:t.USDGLO,symbol:`USDGLO`,balance:d?.scaled??`0`}],o=m.map(e=>({address:e?.address||``,symbol:e?.symbol||``,balance:e?.scaled||`0`}));return[...i,...o]},[e,r,a,s,l,d,m,t.type]),isLoading:i||o||c||u||f||h}},rs={B3TR:`0x623374722d757364000000000000000000000000000000000000000000000000`,VET:`0x7665742d75736400000000000000000000000000000000000000000000000000`,VTHO:`0x7674686f2d757364000000000000000000000000000000000000000000000000`,GBP:`0x6762702d75736400000000000000000000000000000000000000000000000000`,EUR:`0x657572742d757364000000000000000000000000000000000000000000000000`},is=async(e,t,n)=>{let r=await e.contracts.load(k(n).oracleContractAddress,$r.abi).read.getLatestValue(rs[t]);if(!r)throw Error(`Failed to get price of ${t}`);return new Qt(r[0].toString()).div(0xe8d4a51000).toNumber()},as=e=>[`VECHAIN_KIT_PRICE`,e],os=e=>{let t=jn(),{network:n}=$();return X({queryKey:as(e),queryFn:async()=>is(t,e,n.type),enabled:!!t&&!!n.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`))return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},ss=()=>{let{network:e}=$(),t=k(e.type),{data:n,isLoading:r}=os(`VET`),{data:i,isLoading:a}=os(`VTHO`),{data:o,isLoading:s}=os(`B3TR`),{data:c,isLoading:l}=os(`EUR`),{data:u,isLoading:d}=os(`GBP`);return{prices:W(()=>{let e={vet:`0x`,vtho:t.vthoContractAddress,b3tr:t.b3trContractAddress,vot3:t.vot3ContractAddress,veDelegate:t.veDelegate,USDGLO:t.gloDollarContractAddress};return{[e.vet]:n||0,[e.vtho]:i||0,[e.b3tr]:o||0,[e.vot3]:o||0,[e.veDelegate]:o||0,[e.USDGLO]:1}},[n,i,o,t.vthoContractAddress,t.b3trContractAddress,t.vot3ContractAddress,t.veDelegate,t.gloDollarContractAddress]),exchangeRates:W(()=>({eurUsdPrice:c||1,gbpUsdPrice:u||1}),[c,u]),isLoading:r||a||s||l||d}},cs=[`usd`,`eur`,`gbp`],ls=()=>{let{currentCurrency:e,setCurrency:t}=$();return U(()=>{h(`vechain_kit_currency`,e)},[e]),{currentCurrency:e,allCurrencies:cs,changeCurrency:e=>{if(!cs.includes(e)){console.error(`Invalid currency: ${e}`);return}t(e)}}},us=({address:e=``})=>{let{balances:t,isLoading:n}=ns(e),{prices:r,exchangeRates:i,isLoading:a}=ss(),{currentCurrency:o}=ls(),s=W(()=>t.map(e=>{let t=r[e.address]||0,n=Number(e.balance)*t,a=eo(n,o,i);return{...e,priceUsd:t,valueUsd:n,valueInCurrency:a}}),[t,r,o,i]),c=W(()=>[...s].sort((e,t)=>t.valueInCurrency-e.valueInCurrency),[s]);return{tokens:s,sortedTokens:c,tokensWithBalance:W(()=>c.filter(e=>Number(e.balance)>0),[c]),isLoading:n||a}},ds=({address:e=``})=>{let{tokensWithBalance:t,isLoading:n}=us({address:e}),{currentCurrency:r}=ls(),i=W(()=>t.reduce((e,t)=>e+t.valueInCurrency,0),[t]);return{totalBalanceInCurrency:i,totalBalanceUsd:W(()=>t.reduce((e,t)=>e+t.valueUsd,0),[t]),formattedBalance:W(()=>no(i,{currency:r}),[i,r]),isLoading:n,hasAnyBalance:t.length>0}},fs=di.abi,ps=`currentRoundId`,ms=e=>cf({abi:fs,address:e,method:ps}),hs=()=>{let{network:e}=$(),t=k(e.type).xAllocationVotingContractAddress;return uf({abi:fs,address:t,method:ps,args:[],queryOptions:{select:e=>e[0].toString()}})},gs=async(e,t)=>Jr(e,{networkUrl:t}),_s=e=>[`VECHAIN_KIT_CUSTOM_TOKEN_INFO`,e],vs=e=>{let{network:t}=$();return X({queryKey:_s(e),queryFn:async()=>{if(!e)throw Error(`Token address is required`);if(!t.nodeUrl)throw Error(`Network node URL is required`);return gs(e,t.nodeUrl)},enabled:!!t.type&&!!e,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`token address is required`||e===`network node url is required`)return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},ys=()=>{let[e,t]=wp(Cp.CUSTOM_TOKENS,[]),{network:n}=$(),r=async r=>{if(!a(r)&&!s(r)){if(!n.nodeUrl)throw Error(`Network node URL is required`);let i={...await gs(r,n.nodeUrl),address:r};t([...e,i])}},i=n=>{t(e.filter(e=>e.address!==n))},a=t=>e.some(e=>o(e.address,t)),s=e=>{let t={vet:`0x`,vtho:k(n.type).vthoContractAddress,b3tr:k(n.type).b3trContractAddress,vot3:k(n.type).vot3ContractAddress,veDelegate:k(n.type).veDelegate};return Object.values(t).includes(e)};return{customTokens:e,addToken:r,removeToken:i,isTokenIncluded:a,isDefaultToken:s}},bs=e=>[`VEBETTERDAO_BALANCE`,e,`B3TR`],xs=e=>{let{network:t}=$();return X({queryKey:bs(e),queryFn:async()=>{if(!e)throw Error(`Address is required`);let n=await Wr(e,{networkUrl:t.nodeUrl});if(!n)throw Error(`Failed to get b3tr balance`);let r=n[0];return u(r)},enabled:!!e&&!!t.type})},Ss=(e,t)=>[`VECHAIN_KIT_BALANCE`,t,`CUSTOM_TOKEN`,e],Cs=e=>{let{network:t}=$(),{customTokens:n}=ys();return Rn({queries:n.map(n=>({queryKey:Ss(n.address,e),queryFn:async()=>{if(!n.address)throw Error(`Token address is required`);if(!e)throw Error(`Address is required`);if(!t.nodeUrl)throw Error(`Network node URL is required`);let r=await Kr(n.address,e,{networkUrl:t.nodeUrl});if(!r)throw Error(`Failed to get token balance`);let i=u(r[0]);return{...n,...i}}}))})},ws=(e,t)=>[`VECHAIN_KIT`,`BALANCE`,`ERC20`,e,t],Ts=(e,t)=>{let{network:n}=$();return X({queryKey:ws(e,t),queryFn:async()=>{if(!t)throw Error(`Address is required`);let r=await Kr(e,t,{networkUrl:n.nodeUrl});if(!r)throw Error(`Failed to get vot3 balance`);let i=r[0];return u(i)},enabled:!!t&&!!n.type})},Es=e=>[`VEBETTERDAO_BALANCE`,e,`VOT3`],Ds=e=>{let{network:t}=$();return X({queryKey:Es(e),queryFn:async()=>{if(!e)throw Error(`Address is required`);let n=await Yr(e,{networkUrl:t.nodeUrl});if(!n)throw Error(`Failed to get vot3 balance`);let r=n[0];return u(r)},enabled:!!e&&!!t.type})},Os=(e,t)=>[`VECHAIN_KIT`,`IS_PERSON`,e,t],ks=e=>{let{network:t}=$();return X({queryKey:Os(e??``,t.type),queryFn:async()=>{if(!e)throw Error(`User address is required`);return qr(e,{networkUrl:t.nodeUrl})},enabled:!!e&&!!t.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`user address is required`)return!1}return e<2},gcTime:1e3*60*5,staleTime:1e3*60})},As=di.abi,js=`getAppsOfRound`,Ms=(e,t)=>lf({abi:As,address:k(t).xAllocationVotingContractAddress,method:js,args:[BigInt(e??0)]}),Ns=e=>{let{network:t}=$(),n=k(t.type).xAllocationVotingContractAddress;return uf({abi:As,address:n,method:js,args:[BigInt(e??0)],queryOptions:{enabled:!!e,select:e=>e[0].map(e=>({id:e.id.toString(),teamWalletAddress:e.teamWalletAddress,name:e.name,metadataURI:e.metadataURI,createdAtTimestamp:e.createdAtTimestamp.toString()}))}})},Ps=ui.abi,Fs=e=>[`VECHAIN_KIT`,`XApps`,`Shares`,e],Is=(e,t)=>{let n=jn(),{network:r}=$(),i=k(r.type).xAllocationPoolContractAddress;return X({queryKey:Fs(t),queryFn:async()=>(await re({thor:n,calls:e.map(e=>({abi:Ps,functionName:`getAppShares`,address:i,args:[t,e]}))})).map((t,n)=>({app:e[n],share:Number(t[0]||0)/100,unallocatedShare:Number(t[1]||0)/100})),enabled:!!t&&!!e.length})},Ls=e=>{let{data:t}=Ns(e),n=Is(t?.map(e=>e.id)??[],e);return{data:W(()=>n.data?.map(e=>({percentage:e.share+e.unallocatedShare,id:t?.find(t=>t.id===e.app)?.id??``,app:t?.find(t=>t.id===e.app)??{}})).sort((e,t)=>Number(t.percentage)-Number(e.percentage))??[],[n.data,t]),isLoading:n.isLoading}},Rs=({error:e,mobileBrowserPopupMessage:t=`Mobile browser blocked the window. Please try again.`,rejectedMessage:n=`Request was cancelled.`,defaultMessage:r=`Operation failed`})=>{let i=e?.message;return Pi&&i&&!g(i)?Error(t):i&&g(i)?Error(n):e instanceof Error?e:Error(r)},zs=mi({id:`1176455790972829965191905223412607679856028701100105089447013101863`,name:`Vechain`,nativeCurrency:{name:`VeChain`,symbol:`VET`,decimals:18},rpcUrls:{default:{http:[`https://mainnet.vechain.org`]}},blockExplorers:{default:{name:`Vechain Explorer`,url:`https://explore.vechain.org`},vechainStats:{name:`Vechain Stats`,url:`https://vechainstats.com`}}}),Bs=()=>Ni({id:O,name:`VeChain`,iconUrl:`https://imagedelivery.net/oHBRUd2clqykxgDWmeAyLg/661dd77c-2f9d-40e7-baa1-f4e24fd7bf00/icon`,smartWalletMode:!1}),Vs=({privyEcosystemAppIDS:e,children:t})=>q(Ti,{config:Zt(Ei({chains:[zs],ssr:!0,connectors:[Bs(),...e.map(e=>Ni({id:e,name:``,iconUrl:``}))],transports:{[zs.id]:Di()},multiInjectedProviderDiscovery:!1})).current,children:t}),Hs=()=>{let{connectAsync:e,connectors:t}=ki(),{signTypedDataAsync:n}=Mi(),{signMessageAsync:r}=ji(),{disconnectAsync:i}=Ai(),{isConnected:a}=Oi(),[o,s]=G(!1),[c,l]=G(null),u=H(async()=>{try{a&&(await i(),y()&&window.dispatchEvent(new Event(`wallet_disconnected`)))}catch(e){throw console.error(`Error during logout:`,e),e}},[i,a]);return{login:H(async n=>{try{s(!0),l(null);let r=t.find(e=>e.id===(n||O));if(!r)throw Error(`Connector not found`);return await e({connector:r})}catch(e){throw l(e),e}finally{s(!1)}},[e,t]),logout:u,signMessage:H(async e=>{try{return await r({message:e})}catch(e){throw Rs({error:e,mobileBrowserPopupMessage:`Your mobile browser blocked the signing window. Please click 'Try again' to open the signing window or change your browser settings.`,rejectedMessage:`Signing request was cancelled.`,defaultMessage:`An unexpected issue occurred while signing a message. Please try again or contact support.`})}},[r]),signTypedData:H(async e=>{try{return await n(e)}catch(e){throw Rs({error:e,mobileBrowserPopupMessage:`Your mobile browser blocked the signing window. Please click 'Try again' to open the signing window or change your browser settings.`,rejectedMessage:`Signing request was cancelled.`,defaultMessage:`An unexpected issue occurred while signing typed data. Please try again or contact support.`})}},[n]),isConnecting:o,connectionError:c}},Us=(e,t)=>{let{data:n,isLoading:r}=uo(e??``),{data:i,isLoading:a}=Ko(e??``),{data:o,isLoading:s}=zo(n?.domain??``),c=o?.header?x(o.header,t):null;return{domain:n?.domain,image:i,records:{...o,header:c},isLoading:r||a||s}},Q=()=>{let{address:e,isConnected:t,isConnecting:n,isReconnecting:r}=Oi(),{logout:i}=Hs(),{loading:a}=xn({}),{feeDelegation:s,network:c,privy:l}=$(),{user:u,authenticated:d,logout:f,ready:p}=Tn(),{data:m}=rp(),{account:h,disconnect:g}=Mn(),{getConnectionCache:_,clearConnectionCache:v}=$d(),b=_(),x=mf(),S=!!h,C=d&&!!u,w=C||t,ee=C&&l?.appId===O||t&&b?.ecosystemApp?.appId===O,T=n||r||a||!p,[E,D]=G(!1),te=t?{type:`privy-cross-app`,displayName:`Ecosystem`}:S?{type:`wallet`,displayName:`Wallet`}:{type:`privy`,displayName:`Social Login`};U(()=>{let e=S||C||t;E!==e&&(D(e),e||(v(),y()&&window.dispatchEvent(new Event(`wallet_disconnected`))))},[S,C,t,v,E]);let ne=u?.linkedAccounts?.find(e=>e.type===`wallet`&&e.connectorType===`embedded`)?.address,re=S?h:t?e:ne,{data:ie}=Uf(re),ae=S?h:ie?.address,oe=Us(ae??``,c.type),se=Us(re??``,c.type),k=Us(ie?.address??``,c.type),ce=ae?{address:ae,domain:oe.domain,image:oe.image,isLoadingMetadata:oe.isLoading,metadata:oe.records}:null,le=re?{address:re,domain:se.domain,image:se.image,isLoadingMetadata:se.isLoading,metadata:se.records}:null,{data:ue}=jf(ie?.address??``,le?.address??``),de=!!ie?.address&&!!ce?.address&&o(ie?.address,ce?.address),fe=H(async()=>{try{D(!1),S?g():C?await f():t&&await i(),v(),y()&&window.dispatchEvent(new Event(`wallet_disconnected`))}catch(e){console.error(`Error during disconnect:`,e)}},[S,g,C,f,t,i,v]);return{account:ce,smartAccount:{address:ie?.address??``,domain:k.domain,image:k.image,isDeployed:ie?.isDeployed??!1,isActive:de,version:ue?.version??null,isLoadingMetadata:k.isLoading,metadata:k.records},connectedWallet:le,privyUser:u,connection:{isLoading:T,isConnected:E,isConnectedWithSocialLogin:C,isConnectedWithDappKit:S,isConnectedWithCrossApp:t,isConnectedWithPrivy:w,isConnectedWithVeChain:ee,source:te,isInAppBrowser:(y()&&window.vechain&&window.vechain.isInAppBrowser)??!1,nodeUrl:x,delegatorUrl:s?.delegatorUrl,chainId:m,network:c.type},disconnect:fe}},Ws=()=>{let e=zn(),{account:t}=Q();return{refresh:async()=>{let n=t?.address??``;await Promise.all([e.invalidateQueries({queryKey:[`VECHAIN_KIT_BALANCE`,n]}),e.invalidateQueries({queryKey:[`VECHAIN_KIT_PRICE`]})])}}},Gs=async(e,t)=>{let n=x(e,t)||``,r=await fetch(n,{signal:AbortSignal.timeout(2e4)});if(!r.ok)throw Error(`HTTP error! status: ${r.status}`);return await r.json()},Ks=li.abi,qs=e=>{let t=jn(),{network:n}=$();return X({queryKey:[`xAppMetaData`,e],queryFn:async()=>{let r=k(n.type).x2EarnAppsContractAddress,i=t.contracts.load(r,Ks),[a]=await i.read.app(e),o=a.metadataURI||``,[s]=await i.read.baseURI();return await Gs(`${s}${o}`,n.type)}})},Js=async(e,t,n=!1)=>{if(!t)throw Error(`No URI provided`);let r=x(t,e);if(!r)throw Error(`Invalid URI`);let i=await(await fetch(r,{headers:{"X-Project-Id":`vechain-kit`}})).text();return n?JSON.parse(i):i},Ys=(e,t)=>[`VECHAIN_KIT`,`IPFS_METADATA`,e,t],Xs=(e,t=!1)=>{let{network:n}=$();return X({queryKey:Ys(n.type,e),queryFn:()=>Js(n.type,e,t),enabled:!!e&&!!n.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`no uri provided`||e===`invalid uri`)return!1}return e<2},staleTime:1/0})},Zs=1024*1024*10,Qs=async(e,t)=>{if(!t)throw Error(`IPFS URI is required`);let n=await fetch(x(t,e)??``,{headers:{"X-Project-Id":`vechain-kit`}});if(!n.ok)throw Error(`HTTP error! status: ${n.status}`);let r=await n.blob();if(![`image/jpeg`,`image/jpg`,`image/png`,`image/gif`,`image/bmp`,`image/tiff`,`image/webp`,`image/svg+xml`].includes(r.type))throw Error(`Unsupported MIME type: ${r.type}`);if(r.size>Zs)throw Error(`Image size exceeds maximum allowed size`);return new Promise((e,t)=>{let n=new FileReader;n.readAsDataURL(r),n.onloadend=()=>{e({image:n.result,mime:r.type,mediaType:b(r.type)})},n.onerror=()=>{t(Error(`Error occurred while reading blob.`))}})},$s=(e,t)=>[`VECHAIN_KIT`,`IPFS_IMAGE`,e,t],ec=e=>{let{network:t}=$();return X({queryKey:$s(t.type,e),queryFn:()=>Qs(t.type,e),enabled:!!e&&!!t.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`ipfs uri is required`)return!1}return e<2},staleTime:1/0})},tc=e=>{let{network:t}=$();return Rn({queries:e.map(e=>({queryKey:$s(t.type,e),queryFn:()=>Qs(t.type,e),enabled:!!e&&!!t.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`ipfs uri is required`)return!1}return e<2},staleTime:1/0}))})},nc=(e,t=!1)=>{let{network:n}=$();return Rn({queries:e.map(e=>({queryKey:Ys(n.type,e),queryFn:async()=>Js(n.type,e,t),enabled:!!e&&!!n.type,retry:(e,t)=>{if(t instanceof Error){let e=t.message.toLowerCase();if(e.includes(`cancel`)||e.includes(`abort`)||e===`no uri provided`||e===`invalid uri`)return!1}return e<2},staleTime:1/0}))})},rc={maxSizeMB:.4,maxWidthOrHeight:1920,useWebWorker:!0},ic=async e=>{let t=[];try{for(let n of e){let e=await Fi(n.file,rc);t.push(e)}return t}catch(e){throw console.error(`compress error`,e),e}},ac=({compressImages:e,defaultImages:t})=>{let[n,r]=G(t??[]);U(()=>{t&&r(t)},[t]);let[i,a]=G([]),o=H(e=>r(t=>t.filter((t,n)=>n!==e)),[]);return{uploadedImages:n,setUploadedImages:r,onUpload:H(async(t,n=!0)=>{a([]);let i=[];for(let n of t){let t=n;e&&(t=await Fi(n,rc));let r={file:t,image:URL.createObjectURL(n)};i.push(r)}r(e=>[...i,...n?e.filter(e=>!i.some(t=>t.file.name===e.file.name)):[]])},[e]),onRemove:o,invalidDateError:i}},oc=({compressImage:e,defaultImage:t})=>{let[n,r]=G(t);U(()=>{t&&r(t)},[t]);let i=H(()=>r(void 0),[]);return{uploadedImage:n,setUploadedImage:r,onUpload:H(async t=>{let n=t;e&&(n=await Fi(n,rc));let i={file:n,image:URL.createObjectURL(n)};return r(i),i},[e]),onRemove:i}},sc=async(e,t,n,r)=>{let i=await e.transactions.estimateGas(t,n,r);if(i.reverted)throw Error(`Failed to estimate gas`);let a=i?.totalGas??0;return(!a||Number.isNaN(a))&&(a=0),Math.ceil(a)},cc=({signerAccountAddress:e,clauses:t,onTxConfirmed:n,onTxFailedOrCancelled:r,suggestedMaxGas:i,privyUIOptions:a,gasPadding:o})=>{let s=jn(),{signer:c}=Nn(),{connection:l}=Q(),{feeDelegation:u}=$(),d=mf(),f=om(),p=H(async(t,n)=>{let r=typeof t==`function`?await t():t??[];if(l.isConnectedWithPrivy)return await f.sendTransaction({txClauses:r,...a,...n});if(!e)throw Error(`signerAccountAddress is required`);let d=0;try{d=await sc(s,[...r],e,{revision:dn.NEXT,...o?{gasPadding:o}:{}})}catch(e){console.error(`Gas estimation failed`,e)}let p=await s.transactions.buildTransactionBody(r,i??d,{isDelegated:u?.delegateAllTransactions}),m=Bi.transactionBodyToTransactionRequestInput(p,e);return c.sendTransaction({...m,maxPriorityFeePerGas:m.maxPriorityFeePerGas?.toString(),maxFeePerGas:m.maxFeePerGas?.toString()})},[e,i,d,f,a]),[m,h]=G(null),[g,_]=G(!1),[v,y]=G(null),b=H(async e=>{if(!e&&!t)throw Error(`clauses are required`);try{h(null),_(!0),y(null),T(void 0),h(await p(e??[],{...a}))}catch(e){y(e&&typeof e==`object`&&`message`in e?e.message:String(e)),r?.(e instanceof Error?e:Error(String(e)))}finally{_(!1)}},[p,t,a]),{data:x,isLoading:S,error:C}=hp(m??``),w=H(async e=>{if(!(!e.reverted||!e.meta.txID))return await s.transactions.getRevertReason(e.meta.txID)},[s]),[ee,T]=G(),E=W(()=>{if(g)return`pending`;if(v)return`error`;if(m){if(S)return`waitingConfirmation`;if(C)return`error`;if(x)return x.reverted?`error`:`success`}return`ready`},[S,v,g,m,x,C]);U(()=>{if(E===`success`||E===`error`){if(v&&!ee){T({type:`UserRejectedError`,reason:v});return}if(x?.reverted&&!ee?.type){(async()=>{let e=await w(x);T({type:`RevertReasonError`,reason:e?`Transaction reverted with: `+e:`Transaction reverted`})})();return}x&&!x.reverted&&n?.()}},[E,x,n,w,v]);let D=H(()=>{h(null),_(!1),y(null),T(void 0)},[]);return{sendTransaction:b,isTransactionPending:W(()=>g||S||E===`pending`||E===`waitingConfirmation`,[g,S,E]),isWaitingForWalletConfirmation:W(()=>E===`pending`,[g,E]),txReceipt:x??null,status:E,resetStatus:D,error:ee}},lc=(e,t)=>{let{account:n}=Q(),{t:r}=Y(),{sendTransaction:i,isTransactionPending:a,isWaitingForWalletConfirmation:o,txReceipt:s,status:c,resetStatus:l,error:u}=cc({signerAccountAddress:n?.address??``,privyUIOptions:{title:r(`ConfirmSwapTitle`,{defaultValue:`Confirm Swap`}),description:r(`ConfirmSwapDescription`,{defaultValue:`Please confirm the swap transaction in your wallet`}),buttonText:r(`Confirm`,{defaultValue:`Confirm`})}});return{executeSwap:H(async()=>{if(!e||!t)throw Error(`Missing swap parameters or quote`);if(!t.aggregator)throw Error(`Aggregator not found for quote from ${t.aggregatorName}`);let n=await t.aggregator.buildSwapTransaction(e,t);if(n.length===0)throw Error(`Failed to build swap transaction`);await i(n)},[e,t,i]),isTransactionPending:a,isWaitingForWalletConfirmation:o,txReceipt:s,status:c,resetStatus:l,error:u}},uc=e=>e===`0x`||e===Ci,dc=(e,t,n,r)=>{let i={},a=r.toLowerCase();for(let t of e)try{let e=pi({abi:Qr.abi,eventName:`Transfer`,topics:t.topics,data:t.data}),n=e.args.from.toLowerCase(),r=e.args.to.toLowerCase(),o=e.args.value,s=typeof o==`bigint`?o:BigInt(o);if(n!==a&&r!==a)continue;let c=t.address.toLowerCase(),l=i[c]??{inflow:0n,outflow:0n};n===a&&(l.outflow+=s),r===a&&(l.inflow+=s),i[c]=l}catch{continue}if(n!==void 0){let e=BigInt(n);if(e>0n){let t=i[Ci]??{inflow:0n,outflow:0n};t.outflow+=e,i[Ci]=t}}for(let e of t){if(e.recipient.toLowerCase()!==a)continue;let t=BigInt(e.amount);if(t<=0n)continue;let n=i[Ci]??{inflow:0n,outflow:0n};n.inflow+=t,i[Ci]=n}return i},fc=async(e,t,n,r)=>{try{if(n.length===0)return{gasCostVTHO:0,success:!1,error:`No clauses found for simulation`};let i=await r.transactions.simulateTransaction(n,{caller:e.userAddress}),a=!1,o,s=2e5,c={};for(let t=0;t<i.length;t++){let r=i[t];r.reverted&&(a=!0,o=r.vmError||`Transaction reverted`),s+=r.gasUsed;let l=n[t],u=dc(r.events,r.transfers,l?.value,e.userAddress);for(let[e,t]of Object.entries(u)){let n=c[e]??{inflow:0n,outflow:0n};c[e]={inflow:n.inflow+t.inflow,outflow:n.outflow+t.outflow}}}if(a)return{gasCostVTHO:0,success:!1,error:o||`Transaction reverted`};let l=s/1e5,u=uc(e.fromTokenAddress),d=uc(e.toTokenAddress),f=BigInt(e.amountIn);if(u){let e=c[Ci]??{inflow:0n,outflow:0n};if(e.outflow>f)return{gasCostVTHO:l,success:!1,error:`VET outflow mismatch: expected ${f.toString()}, got ${e.outflow.toString()}`};for(let[e,t]of Object.entries(c))if(e!==Ci&&t.outflow>0n)return{gasCostVTHO:l,success:!1,error:`Unexpected token outflow: token ${e} has outflow ${t.outflow.toString()}, expected 0`}}else{let t=e.fromTokenAddress.toLowerCase(),n=c[t]??{inflow:0n,outflow:0n};if(n.outflow>f)return{gasCostVTHO:l,success:!1,error:`Token outflow mismatch: expected ${f.toString()}, got ${n.outflow.toString()}`};for(let[e,n]of Object.entries(c))if(e!==t&&n.outflow>0n)return{gasCostVTHO:l,success:!1,error:`Unexpected token outflow: ${e===Ci?`VET`:e} has outflow ${n.outflow.toString()}, expected 0`}}if(t.minimumOutputAmount&&t.minimumOutputAmount>0n)if(d){let e=c[Ci]??{inflow:0n,outflow:0n};if(e.inflow<t.minimumOutputAmount)return{gasCostVTHO:l,success:!1,error:`VET inflow mismatch: expected ${t.minimumOutputAmount.toString()}, got ${e.inflow.toString()}`}}else{let n=c[e.toTokenAddress.toLowerCase()]??{inflow:0n,outflow:0n};if(n.inflow<t.minimumOutputAmount)return{gasCostVTHO:l,success:!1,error:`Token inflow mismatch: expected ${t.minimumOutputAmount.toString()}, got ${n.inflow.toString()}`}}return{gasCostVTHO:l,success:!0}}catch(e){return{gasCostVTHO:0,success:!1,error:e instanceof Error?e.message:`Simulation failed`}}},pc=e=>e.startsWith(`0x`)?BigInt(e).toString():e,mc=(e,t)=>({name:e,type:`function`,inputs:t.map(e=>({name:e.name,type:e.type,internalType:e.internalType,components:e.components})),outputs:[],stateMutability:`nonpayable`}),hc=(e,t)=>{if(Array.isArray(e)&&e.length>0){let n=e[0];if(typeof n==`object`&&`name`in n&&`type`in n&&n.type===`function`)return e;if(typeof n==`object`&&`name`in n&&`type`in n&&!(`stateMutability`in n||`outputs`in n))return[mc(t,e)]}return e},gc=e=>{try{let t=e.functionName||e.name;if(!t)throw Error(`Function name is required (either functionName or name must be provided)`);return hi({abi:hc(e.abi,t),functionName:t,args:e.args})}catch(t){console.error(`Failed to encode function call:`,t);let n=e.functionName||e.name||`unknown`;throw Error(`Failed to encode function call ${n}: ${t instanceof Error?t.message:`Unknown error`}`)}},_c=e=>{let t=gc(e.functionCall);return{to:e.to,value:pc(e.value),data:t,comment:e.comment||`Swap on aggregator`}},vc=e=>{let t={name:e.name,getIcon:e.getIcon,async getQuote(n,r){try{let r=new URLSearchParams({fromAddress:n.fromTokenAddress,toAddress:n.toTokenAddress,amountIn:n.amountIn,recipient:n.userAddress,slippageBps:String((n.slippageTolerance||1)*100),network:e.network}),i=await fetch(`${e.apiBaseUrl}?${r.toString()}`);if(!i.ok)throw Error(`API request failed: ${i.status} ${i.statusText}`);let a=await i.json(),o=a.clauses.map(_c),s=BigInt(a.amountOut),c=BigInt(a.amountOutMin);return{aggregatorName:e.name,aggregator:t,outputAmount:s,minimumOutputAmount:c,priceImpact:0,data:{clauses:o,path:a.path}}}catch(n){return console.error(`${e.name} getQuote failed:`,n),{aggregatorName:e.name,aggregator:t,outputAmount:0n,priceImpact:0,minimumOutputAmount:0n,data:{clauses:[],path:[]}}}},async simulateSwap(e,t,n){try{return fc(e,t,await this.buildSwapTransaction(e,t),n)}catch(e){return{gasCostVTHO:0,success:!1,error:e instanceof Error?e.message:`Failed to build swap transaction for simulation`}}},async buildSwapTransaction(t,n){if(!n.data||typeof n.data!=`object`||!(`clauses`in n.data))throw Error(`Invalid quote data: clauses not found`);let r=n.data.clauses;if(r.length===0)throw Error(`No clauses found in quote`);if(e.supportedAddresses&&e.supportedAddresses.length>0){let t=e.supportedAddresses.map(e=>e.toLowerCase());if(r=r.filter(e=>e.to?t.includes(e.to.toLowerCase()):!1),r.length===0)throw Error(`No clauses found matching supported addresses`)}if(!n.minimumOutputAmount||n.minimumOutputAmount===0n)throw Error(`Invalid quote: minimumOutputAmount is missing or zero`);return r}};return t},yc={main:{supportedAddresses:[`0xE5fA980a6EfE5B79C2150a529da06AeF455963b6`,`0x7C755EC0165fCD926cC6faB10E7BB16a72E9f34A`]},test:{supportedAddresses:[]},solo:{supportedAddresses:[]}},bc=e=>e===`0x`||e===`0x0000000000000000000000000000000000000000`,xc=e=>{let t={main:`https://vetrade.vet/api/quote/vck`,test:`https://vetrade.vet/api/quote/vck`,solo:`https://vetrade.vet/api/quote/vck`};return t[e]||t.main},Sc=e=>{let t=yc[e]??yc.main,n=vc({name:`VeTrade.vet`,apiBaseUrl:xc(e),network:e,getIcon:(e=`20px`)=>V.createElement(Ae,{boxSize:e}),supportedAddresses:t.supportedAddresses});return{...n,async simulateSwap(e,t,n){try{return fc(e,t,await this.buildSwapTransaction(e,t),n)}catch(e){return{gasCostVTHO:0,success:!1,error:e instanceof Error?e.message:`Simulation failed`}}},async buildSwapTransaction(e,r){let i=[],a=await n.buildSwapTransaction(e,r);if(!a||a.length===0)throw Error(`Failed to build swap transaction`);if(bc(e.fromTokenAddress))a[0].value=e.amountIn;else{if(t.supportedAddresses.length===0)throw Error(`No supported addresses configured for VeTrade on this network`);let n=sn.ofAbi(Qr.abi),o=cn.of(e.fromTokenAddress),s=BigInt(e.amountIn);i.push(ln.callFunction(o,n.getFunction(`approve`),[a[0].to,s.toString()],mn.of(0n,pn.wei),{comment:`Approve ${r.aggregatorName} to access ${e.fromTokenAddress}`}))}return i.push(...a),i}}},Cc=e=>e===`0x`||e===`0x0000000000000000000000000000000000000000`,wc=()=>BigInt(Math.floor(Date.now()/1e3)+1200),Tc=e=>{let t={name:e.name,getIcon:e.getIcon,async getQuote(n,r){let i=[Cc(n.fromTokenAddress)?e.wrappedVET:n.fromTokenAddress,Cc(n.toTokenAddress)?e.wrappedVET:n.toTokenAddress],a=BigInt(n.amountIn);try{let[o]=await r.contracts.load(e.routerAddress,ii.abi).read.getAmountsOut(a,i),s=Array.isArray(o)?o:[o],c=s[s.length-1];if(!c||c===0n)throw Error(`Output amount is zero or invalid`);if(typeof c!=`bigint`)throw Error(`Output amount is not a valid bigint`);let l=n.slippageTolerance||1,u=c*BigInt(1e4-l*100)/BigInt(1e4);return{aggregatorName:e.name,aggregator:t,outputAmount:c,priceImpact:0,minimumOutputAmount:u,data:{path:i,routerAddress:e.routerAddress}}}catch(n){return console.error(`${e.name} getQuote failed:`,n),{aggregatorName:e.name,aggregator:t,outputAmount:0n,priceImpact:0,minimumOutputAmount:0n,data:{path:i,routerAddress:e.routerAddress}}}},async simulateSwap(e,t,n){return fc(e,t,await this.buildSwapTransaction(e,t),n)},async buildSwapTransaction(t,n){if(!n.data||typeof n.data!=`object`||!(`path`in n.data))throw Error(`Invalid quote data`);let r=wc();if(!n.minimumOutputAmount||n.minimumOutputAmount===0n)throw Error(`Invalid quote: minimumOutputAmount is missing or zero`);let i=n.minimumOutputAmount,a=BigInt(t.amountIn);if(i===0n)throw Error(`Invalid quote: minimumOutputAmount is zero`);let o=Cc(t.fromTokenAddress),s=Cc(t.toTokenAddress),c=sn.ofAbi(ii.abi),l=[];if(o)l.push(ln.callFunction(cn.of(e.routerAddress),c.getFunction(`swapExactETHForTokens`),[i.toString(),n.data.path,t.userAddress,r.toString()],mn.of(a,pn.wei),{comment:`Swap on ${n.aggregatorName}`}));else{let o=sn.ofAbi(Qr.abi),u=cn.of(t.fromTokenAddress),d=cn.of(e.routerAddress);l.push(ln.callFunction(u,o.getFunction(`approve`),[d.toString(),a.toString()],mn.of(0n,pn.wei),{comment:`Swap on ${n.aggregatorName}`})),s?l.push(ln.callFunction(d,c.getFunction(`swapExactTokensForETH`),[a.toString(),i.toString(),n.data.path,t.userAddress,r.toString()],mn.of(0n,pn.wei),{comment:`Swap on ${n.aggregatorName}`})):l.push(ln.callFunction(d,c.getFunction(`swapExactTokensForTokens`),[a.toString(),i.toString(),n.data.path,t.userAddress,r.toString()],mn.of(0n,pn.wei),{comment:`Swap on ${n.aggregatorName}`}))}return l}};return t},Ec={main:{routerAddress:`0xf21Dd7108D93af56FaB07423EfB90F4a3604DA89`,wrappedVET:`0xf9b02b47694fd635A413F16dC7B38aF06Cc16fe5`},test:{routerAddress:Ci,wrappedVET:Ci},solo:{routerAddress:Ci,wrappedVET:Ci}},Dc=e=>{let t=Ec[e]??Ec.main;return Tc({name:`BetterSwap.io`,routerAddress:t.routerAddress,wrappedVET:t.wrappedVET,getIcon:(e=`20px`)=>V.createElement(Te,{boxSize:e})})},Oc=e=>[Sc(e),Dc(e)],kc=(e,t,n,r,i=1,a=!0)=>{let o=jn(),{connection:s}=Q(),c=e?.address??null,l=t?.address??null,{data:u}=vs(c===`0x`||c===Ci||!c?``:c),{data:d}=vs(l===`0x`||l===Ci||!l?``:l),f=W(()=>!c||c===`0x`||c===Ci||!u?18:Number(u?.decimals??18),[c,u?.decimals]),p=W(()=>!l||l===`0x`||l===Ci||!d?18:Number(d?.decimals??18),[l,d?.decimals]),m=W(()=>{if(!c||!l||!n||!r)return null;let e;try{e=xi(n,f)}catch(e){return console.error(`Failed to parse amount:`,n,e),null}return e<=0n?null:{fromTokenAddress:c,toTokenAddress:l,amountIn:e.toString(),userAddress:r,slippageTolerance:i}},[c,l,n,r,i,f]),{data:h,isLoading:g,error:_}=X({queryKey:[`unified-swap-quotes`,m,s.network],queryFn:async()=>{if(!m||!o||!s.network)return{quotes:[],best:null};let e=Oc(s.network).map(async e=>{try{let t=await e.getQuote(m,o);try{let n=await e.simulateSwap(m,t,o);return{...t,aggregator:e,reverted:!n.success,revertReason:n.error,gasCostVTHO:n.gasCostVTHO}}catch(n){return console.error(`Failed to simulate swap for ${e.name}:`,n),{...t,aggregator:e,reverted:!0,revertReason:n instanceof Error?n.message:`Simulation failed`,gasCostVTHO:0}}}catch(t){return console.error(`Failed to get quote from ${e.name}:`,t),null}}),t=(await Promise.all(e)).filter(e=>e!==null&&e.outputAmount!==0n),n=null;if(t.length>0){let e=t.filter(e=>!(e.reverted??!1));n=(e.length>0?e:t).reduce((e,t)=>{let n=BigInt(e.outputAmount||`0`);return BigInt(t.outputAmount||`0`)>n?t:e})}return{quotes:t,best:n}},enabled:a&&m!==null&&o!=null,refetchInterval:1e4});return{bestQuote:h?.best??null,quotes:h?.quotes??[],isLoading:g,error:_,from:e?{...e,address:c??``,decimals:f}:null,to:t?{...t,address:l??``,decimals:p}:null}},Ac=({email:e,onResend:t,isLoading:n,isOpen:r,onClose:i})=>{let{t:a}=Y(),{darkMode:o}=$(),s=B(`colors`,`vechain-kit-text-secondary`),[c,l]=G(``),[u,d]=G(null),{createWallet:f}=yn(),{loginWithCode:p}=bn({onComplete:async({isNewUser:e})=>{e&&await f()}});return U(()=>{c.length===6&&p({code:c}).then(()=>{i()}).catch(e=>{d(e.message)})},[c]),J($a,{isOpen:r,onClose:i,trapFocus:!1,children:[J(Z,{children:[q(L,{alignItems:`center`,display:`flex`,gap:2,children:a(`Enter confirmation code`)}),q(F,{})]}),J(tt,{maxW:`container.lg`,children:[q(P,{children:J(z,{spacing:2,children:[q(N,{as:Sr,w:`48px`,h:`48px`,color:s}),q(R,{fontSize:`xs`,color:s,textAlign:`center`,children:a(`Please check {{email}} for an email from privy.io and enter your code below.`,{email:e})}),q(M,{spacing:2,justify:`center`,mt:4,children:J(xt,{value:c,onChange:l,otp:!0,size:`lg`,isInvalid:!!u,errorBorderColor:`#ef4444`,children:[q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`}),q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`}),q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`}),q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`}),q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`}),q(St,{borderRadius:`12px`,border:`1px solid ${o?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${o?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${o?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:o?`transparent`:`#ffffff`})]})}),u&&q(R,{color:`#ef4444`,fontSize:`xs`,children:u})]})}),q(I,{children:J(R,{w:`100%`,textAlign:`center`,fontSize:`14px`,color:o?`whiteAlpha.700`:`gray.600`,children:[a(`Didn't get an email?`),` `,q(j,{variant:`link`,color:`blue.500`,fontSize:`14px`,onClick:t,isLoading:n,children:a(`Resend code`)})]})})]})]})},jc=()=>{let{t:e}=Y(),{darkMode:t}=$(),[n,r]=G(``),{sendCode:i,state:a}=bn({}),o=Gt(),s=async()=>{await i({email:n}),o.onOpen()};return J(K,{children:[q(st,{colSpan:4,w:`full`,children:q(z,{spacing:3,w:`full`,children:J(ft,{size:`lg`,w:`full`,children:[q(pt,{pointerEvents:`none`,height:`100%`,pl:4,children:q(N,{as:Sr,color:t?`whiteAlpha.600`:`blackAlpha.700`,w:`20px`,h:`20px`})}),q(dt,{placeholder:e(`your@email.com`),value:n,onChange:e=>r(e.target.value),fontSize:`16px`,fontWeight:`400`,backgroundColor:t?`transparent`:`#ffffff`,border:`1px solid ${t?`#ffffff0a`:`#ebebeb`}`,p:6,borderRadius:16,w:`full`,pl:12}),q(j,{"aria-label":`Send code`,position:`absolute`,right:2,top:`50%`,transform:`translateY(-50%)`,zIndex:2,variant:`ghost`,size:`sm`,px:6,borderRadius:`full`,isLoading:a.status===`sending-code`,onClick:s,children:e(`Submit`)})]})})}),q(Ac,{isOpen:o.isOpen,onClose:o.onClose,onResend:()=>i({email:n}),email:n,isLoading:a.status===`sending-code`})]})},Mc=({isDark:e,gridColumn:t})=>{let{t:n}=Y(),{initOAuth:r}=Qd();return q(st,{colSpan:t??4,w:`full`,children:q(wu,{isDark:e,onClick:async()=>{await r({provider:`google`})},icon:Vi,text:n(`Continue with Google`)})})},Nc=({isDark:e,gridColumn:t})=>{let{t:n}=Y(),{initOAuth:r}=Qd();return q(st,{colSpan:t??4,w:`full`,children:q(wu,{isDark:e,onClick:async()=>{await r({provider:`github`})},icon:gr,text:n(`Continue with Github`)})})},Pc=({isDark:e,gridColumn:t})=>{let{t:n}=Y(),{login:r}=wn();return q(st,{colSpan:t||4,w:`full`,children:q(wu,{isDark:e,onClick:r,icon:e?ge:Pe,text:n(`Use social login with VeChain`),variant:`loginWithVechain`,rightIcon:q(ku,{})})})},Fc=({isDark:e,gridColumn:t})=>{let{t:n}=Y(),{login:r}=ef(),[i,a]=G(),o=Gt(),s=async()=>{o.onOpen();try{a(void 0),await r(),o.onClose()}catch(e){console.error(n(`Login failed:`),e),a(e instanceof Error?e.message:n(`Failed to connect with VeChain`))}};return J(K,{children:[q(st,{colSpan:t||4,w:`full`,children:q(wu,{isDark:e,onClick:s,icon:e?ge:Pe,text:n(`Use social login with VeChain`),variant:`loginWithVechain`,rightIcon:q(ku,{})})}),q(Mu,{isOpen:o.isOpen,onClose:()=>{o.onClose()},onTryAgain:()=>{s()},error:i,title:n(`Connecting to VeChain`),loadingText:n(`Please approve the request in the connection request window...`)})]})},Ic=({isDark:e,gridColumn:t})=>{let{t:n}=Y(),{loginWithPasskey:r}=Xd(),[i,a]=G(),o=Gt(),s=async()=>{o.onOpen();try{a(void 0),await r(),o.onClose()}catch(e){(e instanceof Error?e.message.toLowerCase():``).includes(`not found`)&&(console.error(e),a(e instanceof Error?e.message:n(`Failed to connect with Passkey`)))}};return J(K,{children:[q(st,{colSpan:t,w:`full`,children:q(wu,{isDark:e,onClick:s,icon:pr,text:t&&t>=2?n(`Passkey`):void 0})}),q(Mu,{isOpen:o.isOpen,onClose:()=>{o.onClose()},error:i,title:n(`Connecting with Passkey`),loadingText:n(`Please complete the passkey authentication...`),onTryAgain:()=>{s()}})]})},Lc=({isDark:e,gridColumn:t=2})=>{let{t:n}=Y(),{open:r,onConnectionStatusChange:i}=Pn(),{dappKit:a}=$(),{source:o}=Nn(),s=a?.allowedWallets?.includes(`sync2`)?n(`Connect wallet`):n(`Connect with VeWorld wallet`);return U(()=>{i((e,t)=>{if(!e)return t?.message&&console.error(t?.message),{...o&&{source:o}}})},[i]),q(st,{colSpan:t||2,w:`full`,children:q(wu,{isDark:e,onClick:()=>{r()},icon:a?.allowedWallets?.includes(`sync2`)?Br:e?Ee:he,iconWidth:`27px`,text:t>=2?s:void 0,rightIcon:a?.allowedWallets?.includes(`sync2`)&&q(N,{as:qn})||void 0})})},Rc=({isDark:e,onViewMoreLogin:t,gridColumn:n})=>{let{t:r}=Y();return q(st,{colSpan:n,w:`full`,children:q(wu,{isDark:e,onClick:t,icon:dr,text:n&&n>=2?r(`More`):void 0,rightIcon:q(N,{as:qn})})})},zc=()=>{let{loginMethods:e,darkMode:t}=$(),{login:n}=wn(),{showGoogleLogin:r,showEmailLogin:i,showPasskey:a,showVeChainLogin:o,showDappKit:s,showMoreLogin:c,showGithubLogin:l,isOfficialVeChainApp:u}=Ud();return q(jt,{spacing:4,w:`full`,align:`center`,children:q(ot,{templateColumns:`repeat(4, 1fr)`,gap:2,w:`full`,children:e?.map(({method:e,gridColumn:d})=>{switch(e){case`email`:return i&&q(jc,{},`email`);case`google`:return r&&q(Mc,{isDark:t,gridColumn:d},`google`);case`github`:return l&&q(Nc,{isDark:t,gridColumn:d},`github`);case`vechain`:return o&&q(u?Pc:Fc,{isDark:t,gridColumn:d},`vechain`);case`passkey`:return a&&q(Ic,{isDark:t,gridColumn:d},`passkey`);case`dappkit`:return s&&q(Lc,{isDark:t,gridColumn:d},`dappkit`);case`more`:return c&&q(Rc,{isDark:t,onViewMoreLogin:n,gridColumn:d},`more`);default:return null}})})})},Bc=({appsInfo:e,isLoading:t})=>{let{t:n}=Y(),r=Gt();return J(K,{children:[q(j,{fontSize:`sm`,variant:`link`,onClick:()=>{r.onOpen()},children:n(`Already have an x2earn app wallet?`)}),q(Iu,{isOpen:r.isOpen,onClose:r.onClose,appsInfo:e,isLoading:t})]})},Vc=({setCurrentContent:e,onClose:t})=>{let{t:n}=Y(),{connection:r}=Q(),{loginModalUI:i,darkMode:a}=$(),{loginMethods:o,privyEcosystemAppIDS:s}=$(),{data:c,isLoading:l}=oo(s),u=B(`colors`,`vechain-kit-text-secondary`),d=()=>{e(`faq`)};U(()=>{r.isConnected&&t()},[r.isConnected,t]);let f=o?.some(({method:e})=>e===`ecosystem`);return J(K,{children:[J(Z,{children:[q(zp,{onClick:d}),q(L,{children:n(`Log in or sign up`)}),q(F,{})]}),i?.logo&&q(M,{justify:`center`,children:q(ut,{src:i.logo||`/images/favicon.png`,maxW:`180px`,maxH:`90px`,m:8,alt:`logo`})}),J(P,{children:[i?.description&&q(M,{spacing:4,w:`full`,justify:`center`,mb:`24px`,px:4,children:q(R,{color:u,fontSize:`sm`,textAlign:`center`,children:i?.description})}),q(zc,{})]}),f?q(I,{children:q(M,{justify:`center`,w:`full`,children:q(Bc,{isDark:a,appsInfo:Object.values(c||{}),isLoading:l})})}):q(I,{pt:0,pb:`5px`})]})},Hc=({onClick:e,...t})=>{let{smartAccount:n,connectedWallet:r,connection:i}=Q(),[a,o]=G(!1);U(()=>{o(!localStorage.getItem(`app-first-visit`))},[]);let{data:s}=Kf(n?.address??``,r?.address??``,3),c=i.isConnectedWithPrivy&&s,l=()=>{a&&(localStorage.setItem(`app-first-visit`,`true`),o(!1)),e()};return q(lt,{"aria-label":`Notifications`,size:`sm`,variant:`ghost`,position:`absolute`,borderRadius:`50%`,left:`10px`,top:`10px`,onClick:l,icon:J(A,{position:`relative`,children:[q(N,{as:jr,fontSize:`18px`}),c&&q(A,{position:`absolute`,top:`-1px`,right:`-1px`,minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`})]}),...t})},Uc=({setCurrentContent:e,wallet:t,onClose:n})=>{let{t:r}=Y(),{network:i}=$();return J(Bp,{children:[J(Z,{children:[q(Hc,{onClick:()=>{e(`settings`)},"data-testid":`settings-button`}),J(L,{children:[r(`Wallet`),i?.type!==`main`&&q(Nt,{size:`xs`,colorScheme:`orange`,fontSize:`2xs`,p:1,ml:1,textTransform:`uppercase`,children:`${i?.type}`})]}),q(F,{})]}),q(P,{w:`full`,children:J(z,{w:`full`,overflow:`hidden`,justifyContent:`flex-start`,spacing:6,children:[q(Kc,{style:{justifyContent:`flex-start`},onClick:()=>{e(`profile`)},setCurrentContent:e,onClose:n,wallet:t}),q(Jc,{onAssetsClick:()=>{e(`assets`)}}),q(Zc,{setCurrentContent:e})]})}),q(I,{pt:0})]})},Wc=({leftIcon:e,rightIcon:t,title:n,wallet:r,onClick:i,leftImage:a,isActive:o=!1})=>{let{t:s}=Y(),{darkMode:c}=$();return q(j,{w:`full`,minH:`70px`,h:`fit-content`,py:4,onClick:i,backgroundColor:`transparent`,border:`1px solid ${c?`#ffffff29`:`#ebebeb`}`,children:J(M,{w:`full`,justify:`space-between`,children:[q(A,{minW:`40px`,justifyContent:`center`,children:a?q(ut,{justifySelf:`center`,src:a,w:`28px`,alt:`left-image`}):q(N,{as:e,fontSize:`28px`})}),J(z,{textAlign:`left`,w:`full`,flex:1,children:[q(M,{w:`full`,spacing:2,justifyContent:`flex-start`,children:q(R,{fontSize:`sm`,fontWeight:`400`,children:n})}),q(R,{fontSize:`sm`,fontWeight:`500`,opacity:.5,overflowWrap:`break-word`,wordBreak:`break-word`,whiteSpace:`normal`,w:`full`,children:r?.domain?d(r?.domain??``,18,0):l(r?.address??``,6,4)})]}),q(z,{minW:`40px`,justifyContent:`flex-end`,children:J(M,{justifyContent:`flex-end`,minW:`40px`,children:[o&&q(Nt,{size:`sm`,colorScheme:`green`,children:s(`Active`)}),q(N,{as:t,fontSize:`20px`,opacity:.5})]})})]})})},Gc=({leftIcon:e,rightIcon:t,title:n,onClick:r,leftImage:i,hide:a=!1,showComingSoon:o=!1,backgroundColor:s,_hover:c,isDisabled:l=!1,stacked:u=!1,isLoading:d,loadingText:f,style:p,extraContent:m,dataTestId:h,variant:g=`actionButton`})=>{let{t:_}=Y();return q(j,{variant:g===`actionButton`?`vechainKitSecondary`:g,py:u?0:2,minHeight:`50px`,height:`fit-content`,p:0,onClick:r,display:a?`none`:`flex`,isDisabled:o||l,isLoading:d,loadingText:f,bgColor:s,_hover:c,"data-testid":h,...p,children:J(M,{w:`full`,justify:`space-between`,alignItems:`center`,children:[q(A,{minW:`40px`,h:`20px`,children:i?q(ut,{src:i,w:`30px`,h:`30px`,borderRadius:`full`,alt:`left-image`,alignSelf:`end`,objectFit:`cover`}):q(N,{as:e,fontSize:`20px`,h:`full`,alignContent:`center`})}),q(z,{textAlign:`left`,w:`full`,flex:1,justifyContent:`flex-start`,alignItems:`flex-start`,children:J(M,{justify:`flex-start`,alignItems:`baseline`,children:[q(R,{fontSize:`sm`,fontWeight:`400`,children:n}),o&&q(Nt,{size:`sm`,colorScheme:`red`,children:_(`Coming Soon!`)}),m]})}),t&&q(z,{minW:`40px`,justifyContent:`flex-end`,children:q(N,{as:t,fontSize:`20px`,opacity:.5})})]})})},Kc=({wallet:e,setCurrentContent:t,size:n=`md`,onClick:r,onClose:i,mt:a,style:o})=>{let[s,c]=G(!1),{disconnect:u}=Q(),f=async()=>{await ie(e?.domain??e?.address??``)&&(c(!0),setTimeout(()=>{c(!1)},2e3))},p=()=>{u(),i()};return J(M,{mt:a,w:`full`,...o,justifyContent:`flex-start`,alignItems:`center`,children:[q(j,{w:`full`,h:12,"aria-label":`Wallet`,onClick:r,variant:`vechainKitSecondary`,p:3,"data-testid":`profile-button`,children:J(M,{spacing:2,align:`center`,justifyContent:`space-between`,w:`full`,children:[J(M,{spacing:2,justifyContent:`flex-start`,children:[q(Vp,{wallet:e,props:{width:7,height:7}}),q(R,{fontSize:n,fontWeight:`500`,children:d(e?.domain??``,22,0)||l(e?.address??``,6,4)})]}),q(N,{boxSize:5,as:rr,cursor:`pointer`,opacity:.5})]})}),q(lt,{"aria-label":`Copy address`,icon:q(N,{as:s?er:lr}),onClick:f,variant:`ghost`,size:`sm`,opacity:.5,_hover:{opacity:.8}}),q(lt,{"aria-label":`Logout`,icon:q(N,{as:xr}),onClick:()=>t({type:`disconnect-confirm`,props:{onDisconnect:p,onBack:()=>t(`main`)}}),variant:`ghost`,size:`sm`,opacity:.5,_hover:{opacity:.8},colorScheme:`red`})]})},qc=({address:e,maxIcons:t=3,iconSize:n=20,ml:r=0,style:i,iconsGap:a=0,rightIcon:o,showNoAssetsWarning:c=!1,onClick:l})=>{let{t:u}=Y(),{tokensWithBalance:d}=us({address:e}),{darkMode:f}=$(),m=B(`colors`,`vechain-kit-text-secondary`),h=a<1?`-${n/2}px`:`${a}px`,g=d.slice(0,t),_=d.length-t;return!e||d.length===0&&!c?null:J(M,{spacing:0,ml:r,...i,onClick:l,children:[J(M,{spacing:0,children:[g.map((e,t)=>q(Qe,{ml:t>0?h:`0`,zIndex:t,size:`${n}px`,borderRadius:`full`,bg:f?`gray.100`:`gray.600`,border:`2px solid #00000024`,alignItems:`center`,justifyContent:`center`,children:s[e.symbol]?V.cloneElement(s[e.symbol],{width:`${n*.8}px`,height:`${n*.8}px`,rounded:`full`}):p[e.symbol]?q(ut,{src:p[e.symbol],alt:`${e.symbol} logo`,width:`${n*.8}px`,height:`${n*.8}px`,rounded:`full`}):q(R,{fontSize:`${n*.4}px`,fontWeight:`bold`,color:f?`black`:`white`,children:e.symbol.slice(0,3)})},e.symbol)),_>0&&q(Qe,{ml:h,zIndex:g.length,size:`${n}px`,borderRadius:`full`,bg:f?`gray.100`:`gray.700`,display:`flex`,alignItems:`center`,justifyContent:`center`,border:`2px solid`,children:J(R,{fontSize:`${n*.4}px`,fontWeight:`bold`,color:f?`black`:`white`,children:[`+`,_]})}),d.length===0&&c&&q(R,{fontSize:`sm`,color:m,fontWeight:`700`,children:u(`No assets`)})]}),o]})},Jc=({mb:e,mt:t,onAssetsClick:n})=>{let{t:r}=Y(),{account:i}=Q(),{formattedBalance:a,isLoading:o}=ds({address:i?.address??``}),{refresh:s}=Ws(),[c,l]=G(!1),u=B(`colors`,`vechain-kit-text-secondary`),d=async()=>{l(!0),await s(),setTimeout(()=>{l(!1)},1500)};return J(z,{w:`full`,justifyContent:`start`,spacing:1,mt:t,mb:e,children:[J(M,{w:`full`,justifyContent:`flex-start`,alignItems:`center`,spacing:2,role:`group`,children:[q(ct,{size:`xs`,fontWeight:`500`,color:u,children:r(`Assets`)}),q(A,{display:`flex`,alignItems:`center`,justifyContent:`center`,w:`32px`,h:`32px`,children:q(lt,{"aria-label":`Refresh balances`,variant:`ghost`,size:`sm`,opacity:.5,_hover:{opacity:.8},onClick:d,icon:q(N,{as:Dr,boxSize:4}),isLoading:o||c,sx:{"& > span.chakra-button__spinner":{width:`16px`,height:`16px`,position:`absolute`}}})})]}),q(j,{onClick:n,h:`fit-content`,variant:`vechainKitSecondary`,children:J(z,{spacing:2,w:`full`,justifyContent:`flex-start`,alignItems:`flex-start`,mt:4,mb:4,children:[q(ct,{size:`2xl`,fontWeight:`700`,children:a}),q(M,{w:`full`,justifyContent:`flex-start`,"data-testid":`all-assets-button`,mt:2,children:q(qc,{style:{width:`100%`,justifyContent:`space-between`},maxIcons:10,iconSize:26,iconsGap:3,address:i?.address??``,showNoAssetsWarning:!0,rightIcon:q(N,{as:rr,boxSize:5,opacity:.5,marginLeft:2})})})]})})]})},Yc=[{icon:Yn,label:`Send`,onClick:e=>e({type:`send-token`,props:{setCurrentContent:e}}),isDisabled:e=>!e},{icon:Kn,label:`Swap`,onClick:e=>{e(`swap-token`)},isDisabled:e=>!e},{icon:Wn,label:`Receive`,onClick:e=>{e(`receive-token`)}}],Xc=({icon:e,label:t,onClick:n,isDisabled:r,showRedDot:i})=>{let{t:a}=Y();return q(lt,{variant:`vechainKitSecondary`,h:`80px`,w:`full`,"aria-label":t,isDisabled:r,p:3,icon:J(z,{spacing:4,children:[q(N,{as:e,boxSize:5,opacity:.9}),J(M,{p:0,alignItems:`baseline`,spacing:1,children:[q(R,{fontSize:`sm`,fontWeight:`600`,"data-testid":`${t.toLowerCase()}-button-label`,children:a(t,t)}),i&&q(A,{minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`})]})]}),onClick:n})},Zc=({mt:e,setCurrentContent:t})=>{let{account:n,smartAccount:r,connectedWallet:i,connection:a}=Q(),{hasAnyBalance:o}=ds({address:n?.address??``}),{data:s}=Kf(r?.address??``,i?.address??``,3),c=a.isConnectedWithPrivy&&s;return q(ot,{templateColumns:`repeat(3, 1fr)`,gap:2,w:`full`,mt:e,children:Yc.map(e=>q(Xc,{icon:e.icon,label:e.label,onClick:()=>e.onClick(t),isDisabled:e.isDisabled?.(o),showRedDot:c&&e.label===`Settings`},e.label))})},Qc=()=>{let[e,t]=G(!0),n=`vechain_kit_feature_announcement_closed`;return U(()=>{w(n)&&t(!1)},[]),{isVisible:e,closeAnnouncement:()=>{h(n,`true`),t(!1)}}},$c=({setCurrentContent:e})=>{let{t}=Y(),{isVisible:n,closeAnnouncement:r}=Qc(),i=B(`colors`,`vechain-kit-text-primary`),a=B(`colors`,`vechain-kit-text-secondary`);return n?q(Ge,{w:`full`,variant:`featureAnnouncement`,overflow:`hidden`,onClick:()=>{e({type:`choose-name`,props:{setCurrentContent:e,onBack:()=>e(`main`),initialContentSource:`main`}}),r()},cursor:`pointer`,_hover:{opacity:.8},children:q(Ke,{p:4,children:J(M,{justify:`space-between`,align:`flex-start`,spacing:3,children:[J(z,{align:`flex-start`,spacing:1,children:[J(M,{spacing:2,children:[q(R,{fontSize:`sm`,fontWeight:`400`,color:i,children:t(`Claim your vet domain!`)}),q(Nt,{size:`sm`,colorScheme:`red`,children:t(`New`)})]}),q(R,{fontSize:`xs`,color:a,children:t(`Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!`)})]}),q(lt,{size:`sm`,variant:`ghost`,colorScheme:`gray`,icon:q(cr,{}),onClick:e=>{e.stopPropagation(),r()},"aria-label":t(`Close announcement`)})]})})}):null},el=()=>{let{t:e}=Y();return q(Be,{status:`warning`,fontSize:`xs`,borderRadius:`xl`,p:2,children:q(z,{spacing:1,align:`stretch`,w:`full`,children:J(M,{spacing:2,align:`flex-start`,children:[q(He,{boxSize:4,mt:`10px`}),q(R,{w:`full`,children:e(`Sending to OceanX or other exchanges may result in loss of funds.`)})]})})})},tl=()=>{let{t:e}=Y();return q(Be,{status:`warning`,fontSize:`xs`,borderRadius:`xl`,p:2,children:q(z,{spacing:1,align:`stretch`,w:`full`,children:J(M,{spacing:2,align:`flex-start`,children:[q(He,{boxSize:4,mt:`10px`}),q(R,{w:`full`,children:e(`A .vet domain is required to customize your profile. Choose an account name to get started.`)})]})})})},nl=()=>{let{t:e}=Y(),{getConnectionCache:t}=$d(),n=t();return J(Ge,{variant:`vechainKitBase`,w:`full`,children:[J(Je,{p:4,pl:6,borderBottomWidth:`1px`,children:[q(R,{fontWeight:`medium`,opacity:.8,children:e(`Security preferences`)}),q(R,{fontSize:`xs`,mt:1,opacity:.7,children:e(`For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.`,{appName:n?.ecosystemApp.name??`origin app`})})]}),q(Ke,{borderRadius:`none`,children:J(z,{spacing:3,align:`stretch`,children:[J(M,{spacing:3,align:`center`,children:[q(Ye,{w:`fit-content`,h:`fit-content`,p:2,borderRadius:`full`,bg:`blackAlpha.100`,flexShrink:0,children:q(N,{as:zr})}),J(A,{flex:1,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,lineHeight:`shorter`,children:e(`Login methods`)}),q(R,{fontSize:`xs`,opacity:.7,lineHeight:`shorter`,children:e(`Manage your login methods and passkeys`)})]})]}),J(M,{spacing:3,align:`center`,children:[q(Ye,{w:`fit-content`,h:`fit-content`,p:2,borderRadius:`full`,bg:`blackAlpha.100`,flexShrink:0,children:q(N,{as:Nr})}),J(A,{flex:1,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,lineHeight:`shorter`,children:e(`Security settings`)}),q(R,{fontSize:`xs`,opacity:.7,lineHeight:`shorter`,children:e(`Backup your wallet, configure MFA and set recovery options`)})]})]})]})}),q(qe,{children:J(j,{variant:`vechainKitSecondary`,w:`full`,onClick:()=>{window.open(n?.ecosystemApp.website??`https://governance.vebetterdao.org/`,`_blank`)},children:[e(`Manage on {{appName}}`,{appName:n?.ecosystemApp.name??`origin app`}),q(N,{as:fr,ml:2})]})})]})},rl=({setCurrentContent:e})=>{let{t}=Y(),{exportWallet:n}=wn(),{showMfaEnrollmentModal:r}=Cn(),{setWalletRecovery:i}=En(),{connection:a,smartAccount:o,connectedWallet:s}=Q(),c=B(`colors`,`vechain-kit-text-secondary`),{data:l}=Kf(o?.address??``,s?.address??``,3);return J(Bp,{children:[J(Z,{children:[q(L,{children:t(`Access and security`)}),q(Ja,{onClick:()=>e(`settings`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:[q(z,{w:`full`,justifyContent:`center`,spacing:3,mb:3,children:q(R,{fontSize:`sm`,color:c,textAlign:`center`,children:t(`Manage your embedded wallet security settings: handle your login methods, add a passkey or back up your wallet to never lose access to your assets.`)})}),l&&q(Gc,{title:t(`Upgrade Smart Account to V3`),description:t(`A new version is available for your account`),onClick:()=>{e({type:`upgrade-smart-account`,props:{setCurrentContent:e,initialContent:`access-and-security`}})},leftIcon:jr,extraContent:q(A,{minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`,ml:2})}),q(Gc,{title:t(`Your embedded wallet`),onClick:()=>{e(`embedded-wallet`)},leftIcon:Br,rightIcon:rr}),a.isConnectedWithSocialLogin?J(z,{w:`full`,justifyContent:`center`,spacing:0,children:[q(Gc,{title:t(`Login methods and Passkeys`),style:{borderBottomRadius:`0px`},onClick:()=>{e(`privy-linked-accounts`)},leftIcon:zr,rightIcon:rr}),q(Gc,{title:t(`Backup your wallet`),style:{borderTopRadius:`0px`,borderBottomRadius:`0px`},onClick:()=>{n()},leftIcon:yr}),q(Gc,{title:t(`Manage MFA`),style:{borderTopRadius:`0px`,borderBottomRadius:`0px`},onClick:()=>{r()},leftIcon:Nr}),q(Gc,{title:t(`Manage Recovery`),style:{borderTopRadius:`0px`},onClick:()=>{i()},leftIcon:Or})]}):q(nl,{})]})}),q(I,{pt:0})]})},il=()=>{let{isolatedView:e,closeAccountModal:t}=pd();return{isolatedView:e,closeAccountModal:t}},al=({setCurrentContent:e,onLogoutSuccess:t})=>{let n=Zt(null),{t:r}=Y(),{isolatedView:i}=il(),{connection:a,disconnect:o,smartAccount:s,connectedWallet:c,account:l}=Q(),{data:u}=Kf(s?.address??``,c?.address??``,3);U(()=>{n.current&&(n.current.scrollTop=0)},[]);let d=()=>{e({type:`account-customization`,props:{setCurrentContent:e,initialContentSource:`settings`}})},f=()=>{l?.domain?e({type:`choose-name-search`,props:{name:``,setCurrentContent:e,initialContentSource:`settings`}}):e({type:`choose-name`,props:{setCurrentContent:e,initialContentSource:`settings`,onBack:()=>e(`settings`)}})},p=()=>{e(`access-and-security`)},m=()=>{e(`connection-details`)},h=()=>{e(`general-settings`)},g=()=>{o(),t()};return J(A,{children:[J(Z,{children:[q(L,{children:r(`Settings`)}),!i&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{w:`full`,spacing:4,children:[J(z,{w:`full`,spacing:0,children:[q(Gc,{style:{marginTop:`10px`,borderBottomRadius:`0px`},title:r(`Customize profile`),onClick:d,leftIcon:Rr,rightIcon:rr}),q(Gc,{style:{borderTopRadius:`0px`},title:r(`Choose account name`),description:r(`Choose a name for your account.`),onClick:f,leftIcon:Fr,rightIcon:rr})]}),J(z,{w:`full`,spacing:0,children:[a.isConnectedWithPrivy&&q(Gc,{style:{borderBottomRadius:`0px`},title:r(`Access and security`),onClick:p,leftIcon:Mr,rightIcon:rr,extraContent:u&&q(A,{minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`})}),q(Gc,{style:a.isConnectedWithPrivy?{borderTopRadius:`0px`,borderBottomRadius:`0px`}:{borderTopRadius:`12px`,borderBottomRadius:`0px`},title:r(`General`),onClick:h,leftIcon:Ar,rightIcon:rr}),q(Gc,{title:r(`Help`),onClick:()=>e({type:`faq`,props:{onGoBack:()=>e(`settings`),showLanguageSelector:!1}}),leftIcon:sr,rightIcon:rr,style:{borderTopRadius:`0px`}})]}),J(z,{w:`full`,spacing:0,children:[q(Gc,{style:{borderBottomRadius:`0px`},title:r(`Connection details`),onClick:m,leftIcon:Lr,rightIcon:rr}),q(Gc,{style:{borderTopRadius:`0px`},title:r(`Logout`),onClick:()=>e({type:`disconnect-confirm`,props:{onDisconnect:g,onBack:()=>e(`settings`)}}),leftIcon:xr})]})]})}),q(I,{pt:0})]})},ol=()=>{let{t:e}=Y(),{network:t}=$(),{connection:n,smartAccount:r,connectedWallet:i}=Q(),{data:a,isLoading:o}=co(),{data:s,isLoading:c}=jf(r.address??``,i?.address??``),l=B(`colors`,`vechain-kit-text-primary`),u=B(`colors`,`vechain-kit-text-secondary`),d=({label:e,value:t,isLoading:n=!1,href:r})=>J(M,{w:`full`,justifyContent:`space-between`,children:[J(R,{fontSize:`sm`,color:l,children:[e,`:`]}),q(R,{fontSize:`sm`,as:r?`a`:void 0,href:r,target:`_blank`,rel:`noopener noreferrer`,style:{textDecoration:r?`underline`:`none`},color:u,children:n?`Loading...`:t})]});return J(K,{children:[q(d,{label:e(`Connection Type`),value:n.source.type,isLoading:n.isLoading}),q(d,{label:e(`Network`),value:t.type}),q(d,{label:e(`Node URL`),value:t.nodeUrl||k(t.type).nodeUrl}),n.isConnectedWithPrivy?J(K,{children:[q(d,{label:e(`Smart Account`),value:`v${s?.version??``} ${s?.isDeployed?``:`(not deployed)`}`,isLoading:c}),q(d,{label:e(`Privy Status`),value:a||``,isLoading:o})]}):r.isDeployed&&q(d,{label:e(`Smart Account`),value:`v${s?.version??``}`,isLoading:c}),q(d,{label:e(`VeChain Kit`),value:Xa,href:`https://github.com/vechain/vechain-kit/releases/tag/${Xa}`})]})},sl=({connectionCache:e})=>{let{t}=Y(),n=B(`colors`,`vechain-kit-card`),r=B(`colors`,`vechain-kit-text-secondary`),i=B(`colors`,`vechain-kit-text-primary`);return q(K,{children:e.ecosystemApp&&J(z,{p:4,bg:n,borderRadius:`xl`,spacing:4,w:`full`,children:[J(M,{w:`full`,justifyContent:`space-between`,children:[J(R,{fontSize:`sm`,color:i,children:[t(`Logged in with`),`:`]}),q(R,{fontSize:`sm`,color:r,children:e.ecosystemApp.name})]}),J(M,{w:`full`,justifyContent:`space-between`,children:[J(R,{fontSize:`sm`,color:i,children:[t(`At`),`:`]}),q(R,{fontSize:`sm`,color:r,children:new Date(e.timestamp).toLocaleString()})]}),q(ol,{})]})})},cl=()=>{let{t:e}=Y(),{source:t}=Nn(),n=B(`colors`,`vechain-kit-card`),r=B(`colors`,`vechain-kit-text-secondary`),i=B(`colors`,`vechain-kit-text-primary`);return q(K,{children:t&&J(z,{p:4,bg:n,borderRadius:`xl`,spacing:4,w:`full`,justifyContent:`space-between`,children:[J(M,{w:`full`,justifyContent:`space-between`,children:[J(R,{fontSize:`sm`,color:i,children:[e(`Logged in with`),`:`]}),q(R,{fontSize:`sm`,color:r,children:t})]}),q(ol,{})]})})},ll=()=>{let{t:e}=Y(),{privy:t}=$(),{data:n,isLoading:r}=oo(t?.appId??``),i=B(`colors`,`vechain-kit-card`),a=B(`colors`,`vechain-kit-text-primary`),o=B(`colors`,`vechain-kit-text-secondary`);return r?q(z,{w:`full`,h:`full`,justify:`center`,align:`center`,children:q(At,{})}):q(K,{children:n&&J(z,{p:4,bg:i,borderRadius:`xl`,spacing:4,w:`full`,justifyContent:`space-between`,children:[J(M,{w:`full`,justifyContent:`space-between`,children:[J(R,{fontSize:`sm`,color:a,children:[e(`Logged in with`),`:`]}),q(R,{fontSize:`sm`,color:o,children:Object.values(n)[0].name})]}),q(ol,{})]})})},ul=()=>{let{connection:e}=Q(),{t}=Y(),{privy:n,darkMode:r}=$(),{getConnectionCache:i}=$d(),a=i();return J(z,{w:`full`,align:`stretch`,textAlign:`center`,mt:5,p:3,borderRadius:`lg`,bg:B(`colors`,`vechain-kit-card`),shadow:`sm`,children:[q(R,{fontSize:`xs`,fontWeight:`800`,children:t(`Wallet secured by`)}),J(M,{justify:`center`,children:[q(Se,{isDark:r,w:`50px`}),q(N,{as:Cr,ml:3}),e.isConnectedWithVeChain?q(fe,{isDark:r,w:`80px`,h:`auto`,mb:`3px`}):e.isConnectedWithCrossApp&&a&&q(ut,{src:a.ecosystemApp.logoUrl,alt:a.ecosystemApp.name,maxW:`40px`,borderRadius:`md`}),e.isConnectedWithSocialLogin&&!e.isConnectedWithVeChain&&q(ut,{src:n?.appearance.logo,alt:n?.appearance.logo,maxW:`40px`,borderRadius:`md`})]})]})},dl=({setCurrentContent:e})=>{let{t}=Y(),{connectedWallet:n,connection:r}=Q(),a=i(n?.address??``),{getConnectionCache:o}=$d(),s=o(),c=B(`colors`,`vechain-kit-text-secondary`);return J(Bp,{children:[J(Z,{children:[q(L,{children:t(`Embedded wallet`)}),q(Ja,{onClick:()=>e(`access-and-security`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:[J(z,{justify:`center`,align:`center`,w:`full`,children:[q(ut,{src:a,maxW:`100px`,borderRadius:`50%`}),q(Ya,{wallet:n,style:{mt:2},showHumanAddress:!1})]}),r.isConnectedWithCrossApp&&J(K,{children:[q(R,{fontSize:`sm`,color:c,children:t(`This is your main wallet, created by {{element}} and secured by Privy.`,{element:s?.ecosystemApp?.name})}),q(R,{fontSize:`sm`,color:c,children:t(`This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.`)}),q(R,{fontSize:`sm`,color:c,children:t(`Please be sure to keep this wallet safe and backed up.`)})]}),r.isConnectedWithSocialLogin&&J(K,{children:[q(R,{fontSize:`sm`,color:c,children:t(`You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.`)}),q(R,{fontSize:`sm`,color:c,children:t(`This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.`)}),J(R,{fontSize:`sm`,color:c,children:[t(`We highly recommend exporting your private key to back up your wallet. This ensures you can restore it if needed or transfer it to self-custody using`),J(ht,{href:`https://www.veworld.net/`,isExternal:!0,color:c,fontSize:`14px`,textDecoration:`underline`,children:[` `,t(`VeWorld Wallet`),q(N,{ml:1,as:fr})]}),`.`]}),J(R,{fontSize:`sm`,color:c,children:[t(`Click`),` `,q(ht,{href:`https://docs.vechainkit.vechain.org/vechain-kit/embedded-wallets`,isExternal:!0,color:c,fontSize:`14px`,textDecoration:`underline`,children:t(`here`)}),` `,t(`to learn more about embedded wallets.`)]})]})]})}),q(I,{w:`full`,children:J(z,{w:`full`,children:[q(nt,{}),r.isConnectedWithPrivy&&q(ul,{})]})})]})},fl=({onDisconnect:e,onBack:t,onClose:n,showCloseButton:r=!0,text:i})=>{let{t:a}=Y(),o=B(`colors`,`vechain-kit-text-primary`),s=i??a(`Are you sure you want to disconnect your wallet?`);return J(Bp,{children:[J(Z,{children:[q(L,{children:a(`Logout`)}),q(Ja,{onClick:t}),r?q(F,{onClick:n}):null]}),q(P,{children:q(z,{spacing:6,align:`stretch`,children:q(R,{fontSize:`md`,textAlign:`center`,color:o,children:s})})}),q(I,{w:`full`,children:J(z,{spacing:3,w:`full`,children:[q(j,{height:`60px`,colorScheme:`red`,w:`full`,onClick:e,"data-testid":`disconnect-button`,children:a(`Confirm`)}),q(j,{variant:`vechainKitSecondary`,onClick:t,"data-testid":`cancel-logout-button`,children:a(`Cancel`)})]})})]})},pl=({onSelectToken:e,onBack:t,showAllTokens:n=!1})=>{let{t:r}=Y(),{darkMode:i}=$(),{currentCurrency:a}=ls(),o=B(`colors`,`vechain-kit-text-primary`),s=B(`colors`,`vechain-kit-text-secondary`),c=B(`colors`,`vechain-kit-text-tertiary`),{account:l}=Q(),{tokensWithBalance:u,sortedTokens:d}=us({address:l?.address??``}),[f,p]=G(``),m=W(()=>{if(n){let e=d.filter(e=>Number(e.balance)>0),t=[...d.filter(e=>Number(e.balance)===0)].sort((e,t)=>e.symbol.localeCompare(t.symbol));return[...e,...t]}return u},[n,d,u]).filter(({symbol:e})=>e.toLowerCase().includes(f.toLowerCase()));return J(K,{children:[J(Z,{children:[q(L,{children:r(`Select Token`)}),q(Ja,{onClick:t}),q(F,{})]}),q(tt,{h:[`540px`,`auto`],p:0,children:q(P,{children:J(z,{spacing:4,align:`stretch`,children:[J(ft,{size:`lg`,children:[q(dt,{placeholder:`Search token`,bg:i?`vechain-kit-overlay`:`vechain-kit-card`,borderRadius:`xl`,height:`56px`,pl:12,value:f,onChange:e=>p(e.target.value),"data-testid":`search-token-input`}),q(pt,{h:`56px`,w:`56px`,pl:4,children:q(kr,{color:c})})]}),q(R,{fontSize:`lg`,fontWeight:`semibold`,color:o,mt:4,children:r(n?`All tokens`:`Your tokens`)}),m.length===0?J(z,{spacing:2,py:8,children:[q(N,{as:Pr,boxSize:12,color:c}),q(R,{fontSize:`lg`,color:o,children:r(`No tokens found`)}),q(R,{fontSize:`md`,color:s,children:r(`Try searching with a different term`)})]}):q(z,{spacing:2,align:`stretch`,children:m.map(t=>q(ro,{symbol:t.symbol,amount:Number(t.balance),currencyValue:t.valueInCurrency,currentCurrency:a,onClick:()=>e(t)},t.address))})]})})}),q(I,{pt:0})]})},ml=({setCurrentContent:e,preselectedToken:t,initialAmount:n=``,initialToAddressOrDomain:r=``,onBack:i=()=>e(`main`)})=>{let{t:a}=Y(),{darkMode:o,feeDelegation:c}=$(),{currentCurrency:l}=ls(),u=B(`colors`,`vechain-kit-text-primary`),d=B(`colors`,`vechain-kit-text-secondary`),f=B(`colors`,`vechain-kit-text-tertiary`),m=B(`colors`,`vechain-kit-error`),h=B(`colors`,`vechain-kit-card`),{exchangeRates:g}=ss(),{account:_}=Q(),{isolatedView:v}=il(),{tokensWithBalance:y}=us({address:_?.address??``}),[b,x]=G(t??y[0]??null),[S,C]=G(!1);U(()=>{!t&&!b&&y.length>0&&x(y[0])},[y,t,b]);let{register:w,watch:ee,setValue:T,setError:E,formState:{errors:D,isValid:te},handleSubmit:ne}=Hi({defaultValues:{amount:n,toAddressOrDomain:r},mode:`onChange`}),{toAddressOrDomain:re,amount:O}=ee(),ie=Zt(b);U(()=>{ie.current&&b&&ie.current.address!==b.address&&T(`amount`,``),ie.current=b},[b,T]);let ae=W(()=>b?no(eo(Number(O)*b.priceUsd,l,g),{currency:l}):``,[O,b,l,g]),{data:oe,isLoading:se}=uo(re),k=()=>{b&&T(`amount`,b.balance)},ce=()=>{i()},le=async t=>{if(b){if(!(oe?.isValidAddressOrDomain&&(!oe?.domain||oe?.domain&&oe?.isPrimaryDomain))){E(`toAddressOrDomain`,{type:`manual`,message:a(`Invalid address or domain`)});return}if(b){let e=nn(t.amount),n=c?.b3trTransfers?.minAmountInEther;if(b.symbol===`B3TR`&&typeof n==`number`&&n>0)try{if(e<nn(String(n))){E(`amount`,{type:`manual`,message:a(`Minimum {{symbol}} transfer is {{min}}`,{symbol:b.symbol,min:n})});return}}catch{}if(e>nn(b.balance)){E(`amount`,{type:`manual`,message:a(`Insufficient {{symbol}} balance`,{symbol:b.symbol})});return}}e({type:`send-token-summary`,props:{toAddressOrDomain:t.toAddressOrDomain,resolvedDomain:oe?.domain,resolvedAddress:oe?.address,amount:t.amount,selectedToken:b,formattedTotalAmount:ae,setCurrentContent:e}})}};return S?q(pl,{setCurrentContent:e,onSelectToken:e=>{x(e),C(!1)},onBack:()=>{C(!1)}}):J(K,{children:[J(Z,{children:[q(L,{children:a(`Send`)}),!v&&q(Ja,{onClick:ce}),q(F,{})]}),q(P,{children:J(z,{spacing:1,align:`stretch`,position:`relative`,children:[J(A,{p:6,borderRadius:`xl`,bg:h,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:u,mb:2,children:a(`Amount`)}),q(z,{align:`stretch`,spacing:2,children:J(it,{isInvalid:!!D.amount,children:[J(M,{justify:`space-between`,children:[q(dt,{...w(`amount`,{required:a(`Amount is required`),pattern:{value:/^\d*\.?\d*$/,message:a(`Please enter a valid number`)},validate:e=>{if(!e)return!0;let t=parseFloat(e);if(isNaN(t))return a(`Please enter a valid number`);let n=c?.b3trTransfers?.minAmountInEther;return b?.symbol===`B3TR`&&typeof n==`number`&&n>0&&t<n?a(`Minimum {{symbol}} transfer is {{min}}`,{symbol:b.symbol,min:n}):!0}}),onChange:e=>{let t=e.target.value.trim();e.target.value=t,T(`amount`,t,{shouldValidate:!0})},placeholder:`0`,variant:`unstyled`,fontSize:`4xl`,fontWeight:`bold`,"data-testid":`tx-amount-input`,type:`number`,inputMode:`decimal`,color:u}),b?J(j,{variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:d,borderColor:d,_hover:{bg:o?`whiteAlpha.300`:`blackAlpha.300`},onClick:()=>C(!0),leftIcon:s[b.symbol]?V.cloneElement(s[b.symbol],{boxSize:`20px`,borderRadius:`full`}):q(ut,{src:p[b.symbol],alt:`${b.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:q(A,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:q(R,{fontSize:`8px`,fontWeight:`bold`,color:u,children:b.symbol.slice(0,3)})})}),children:[b.symbol,q(N,{as:tr,boxSize:5,color:d})]}):J(j,{variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:d,borderColor:d,_hover:{bg:o?`whiteAlpha.300`:`blackAlpha.300`,color:f},onClick:()=>C(!0),children:[a(`Select token`),q(N,{as:tr,boxSize:5,color:d})]})]}),b&&J(M,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:d,children:[J(R,{color:d,children:[`≈ `,ae]}),q(R,{cursor:`pointer`,_hover:{color:d,textDecoration:`underline`},onClick:k,noOfLines:1,overflow:`hidden`,textOverflow:`ellipsis`,children:a(`Send all`)})]}),D.amount&&q(R,{color:`#ef4444`,fontSize:`sm`,mt:1,"data-testid":`amount-error-msg`,children:D.amount.message})]})})]}),J(A,{borderRadius:`xl`,bg:h,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:u,mb:2,px:6,pt:6,children:a(`To`)}),q(z,{align:`stretch`,spacing:2,p:6,pt:2,width:`100%`,children:J(it,{isInvalid:!!D.toAddressOrDomain,children:[q(dt,{...w(`toAddressOrDomain`,{required:a(`Address is required`)}),onChange:e=>{let t=e.target.value.trim(),n=t.includes(`.`)?Ui(t):t;e.target.value=n,T(`toAddressOrDomain`,n,{shouldValidate:!0})},placeholder:a(`Type the receiver address or domain`),_placeholder:{fontSize:`md`,fontWeight:`normal`},fontSize:`lg`,fontWeight:`bold`,color:u,variant:`unstyled`,"data-testid":`tx-address-input`}),D.toAddressOrDomain&&q(R,{color:m,fontSize:`sm`,"data-testid":`address-error-msg`,children:D.toAddressOrDomain.message})]})})]})]})}),q(I,{children:q(j,{variant:`vechainKitPrimary`,isDisabled:!b||!te,isLoading:se,onClick:ne(le),"data-testid":`send-button`,children:a(b?`Send`:`Select Token`)})})]})},hl=({setCurrentContent:e,toAddressOrDomain:t,resolvedDomain:n,resolvedAddress:r,amount:a,selectedToken:o,formattedTotalAmount:s})=>{let{t:c}=Y(),{account:l,connection:u,connectedWallet:d}=Q(),{data:f}=Ko(r??``),{network:p,feeDelegation:m}=$(),{preferences:h}=Fp(),{isolatedView:g,closeAccountModal:_}=il(),v=B(`colors`,`vechain-kit-text-primary`),y=B(`colors`,`vechain-kit-text-secondary`),{data:b}=Kf(l?.address??``,d?.address??``,3),{open:x}=Wd(),S=W(()=>f||i(r||t),[f,p.type,r,t]),C=async()=>{if(b){x();return}try{o.symbol===`VET`?await re():await ee()}catch(e){console.error(c(`Transaction failed:`),e)}},w=t=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:t,title:c(`Transaction successful`),onDone:()=>{g?_():e(`main`)},showSocialButtons:!0}})},{sendTransaction:ee,txReceipt:T,error:E,isWaitingForWalletConfirmation:D,isTransactionPending:te,clauses:ne}=lp({fromAddress:l?.address??``,receiverAddress:r||t,amount:a,tokenAddress:o.address,tokenName:o.symbol,onSuccess:()=>{w(T?.meta.txID??``)},onError:e=>{de(e??``)}}),{sendTransaction:re,txReceipt:O,error:ie,isWaitingForWalletConfirmation:ae,isTransactionPending:oe,clauses:se}=dp({fromAddress:l?.address??``,receiverAddress:r||t,amount:a,onSuccess:()=>{w(O?.meta.txID??``)},onError:e=>{de(e??``)}}),k=()=>o.symbol===`VET`?O:T,ce=D||ae,le=ce||te||oe,ue=()=>{e({type:`send-token`,props:{setCurrentContent:e,preselectedToken:o,initialAmount:a,initialToAddressOrDomain:t}})},de=e=>{console.error(`Transaction failed:`,e)},[fe,pe]=V.useState(null),[me,he]=V.useState(null),ge=h.availableGasTokens.length>0&&(u.isConnectedWithPrivy||u.isConnectedWithVeChain)&&!m?.delegatorUrl,{data:_e,isLoading:ve,error:ye,refetch:be}=Ip({clauses:o.symbol===`VET`?se:ne,tokens:fe?[fe]:h.availableGasTokens,sendingAmount:a,sendingTokenSymbol:o.symbol,enabled:ge&&!!m?.genericDelegatorUrl}),xe=_e?.usedToken,Se=(ve||!_e)&&u.isConnectedWithPrivy&&!m?.delegatorUrl,Ce=V.useCallback(e=>{pe(e),he(e),setTimeout(()=>be(),100)},[be]),we=!!xe&&!ye;return V.useEffect(()=>{ye&&fe&&pe(null)},[ye,fe]),J(K,{children:[J(Z,{children:[q(L,{children:`Send`}),q(Ja,{isDisabled:le,onClick:ue}),q(F,{isDisabled:le})]}),q(P,{children:q(z,{spacing:6,align:`stretch`,w:`full`,children:J(z,{spacing:4,w:`full`,children:[q(Rp,{label:c(`From`),address:l?.address??``,domain:l?.domain,imageSrc:l?.image??``,imageAlt:`From account`,balance:Number(o.balance),tokenAddress:o.address}),q(Rp,{label:c(`To`),address:r||t,domain:n,imageSrc:S??``,imageAlt:`To account`,tokenAddress:o.address}),u.isConnectedWithPrivy&&q(Gp,{estimation:_e,isLoading:ve,isLoadingTransaction:le,onTokenChange:Ce,clauses:o.symbol===`VET`?se:ne,userSelectedToken:me}),J(z,{spacing:0,w:`full`,justifyContent:`flex-start`,children:[q(R,{fontSize:`sm`,fontWeight:`light`,textAlign:`left`,w:`full`,color:y,children:c(`Amount`)}),J(M,{justifyContent:`flex-start`,w:`full`,children:[J(R,{fontSize:`xl`,fontWeight:`semibold`,textAlign:`left`,"data-testid":`send-summary-amount`,color:v,children:[Number(a).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}),` `,o.symbol]}),J(R,{color:y,children:[`≈ `,s]})]})]})]})})}),q(I,{children:q(Hp,{transactionError:o.symbol===`VET`?ie:E,isSubmitting:le,isTxWaitingConfirmation:ce,onConfirm:C,transactionPendingText:c(`Sending...`),txReceipt:k(),buttonText:c(`Confirm`),isDisabled:le||Se,gasEstimationError:ye,hasEnoughGasBalance:we,isLoadingGasEstimation:ve,showGasEstimationError:!m?.delegatorUrl&&u.isConnectedWithPrivy,context:`send`})})]})},gl=({setCurrentContent:e})=>{let{t}=Y(),{account:n}=Q(),{isolatedView:r}=il(),i=B(`colors`,`vechain-kit-text-primary`),a=B(`colors`,`vechain-kit-text-secondary`);return J(K,{children:[J(Z,{children:[q(L,{children:t(`Receive`)}),!r&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),J(tt,{maxW:`container.lg`,children:[q(P,{children:J(z,{spacing:4,align:`center`,w:`full`,children:[q(Wi,{value:n?.address??``,size:200,removeQrCodeBehindLogo:!0,eyeRadius:4,logoPaddingStyle:`circle`,style:{borderRadius:`16px`}}),q(Ya,{wallet:n,style:{w:`85%`}}),q(R,{fontSize:`sm`,textAlign:`center`,color:i,children:t(`Copy your address or scan this QR code`)}),q(R,{fontSize:`xs`,textAlign:`center`,color:a,children:t(`This address only supports VeChain assets.`)})]})}),q(I,{pt:0})]})]})},_l=({quotes:e,selectedQuote:t,toTokenAddress:n,onSelectQuote:r,onBack:i})=>{let{t:a}=Y(),{darkMode:c}=$(),{currentCurrency:l}=ls(),{account:u}=Q(),{exchangeRates:d,prices:f}=ss(),{tokens:m}=us({address:u?.address??``}),[h,g]=G(!1),_=W(()=>n&&m.find(e=>o(e.address,n))||null,[n,m]),v=e.filter(e=>!e.reverted),y=e.filter(e=>e.reverted),b=W(()=>v.length===0?null:v.reduce((e,t)=>{let n=BigInt(e.outputAmount||`0`);return BigInt(t.outputAmount||`0`)>n?t:e}),[v]),x=W(()=>{let e=n&&f[n]||0;return v.map(t=>{let n=gi(BigInt(t.outputAmount||`0`)),r=Number(n)*e,i=eo(r,l,d),a=b&&t.aggregatorName===b.aggregatorName,o=0;if(b&&!a){let e=BigInt(b.outputAmount||`0`),n=BigInt(t.outputAmount||`0`);o=Number(n-e)/Number(e)*100}return{...t,outputAmountFormatted:n,valueUsd:r,valueInCurrency:i,isBest:a,percentageDiff:o}}).sort((e,t)=>{let n=BigInt(e.outputAmount||`0`),r=BigInt(t.outputAmount||`0`);return Number(r-n)})},[v,n,f,l,d,b]);return J(K,{children:[J(Z,{children:[q(L,{children:a(`Found following rates`)}),q(Ja,{onClick:i}),q(F,{})]}),q(tt,{h:[`540px`,`auto`],p:0,children:q(P,{children:J(z,{spacing:6,align:`stretch`,children:[x.length>0&&q(z,{spacing:2,align:`stretch`,children:x.map(e=>{let n=t?.aggregatorName===e.aggregatorName;return J(A,{p:2.5,borderRadius:`xl`,bg:c?`#00000038`:`gray.50`,borderWidth:1,borderColor:n?`blue.500`:c?`whiteAlpha.200`:`gray.200`,cursor:`pointer`,onClick:()=>r(e),_hover:{borderColor:n?`blue.500`:c?`whiteAlpha.400`:`gray.300`},position:`relative`,children:[(e.isBest||!e.isBest&&e.percentageDiff<0)&&q(A,{position:`absolute`,top:-1,left:0,zIndex:1,children:e.isBest?q(We,{colorScheme:`purple`,borderRadius:`sm`,fontSize:`2xs`,px:1.5,py:.5,borderTopLeftRadius:`xl`,borderBottomRightRadius:`md`,children:a(`Best`)}):J(We,{colorScheme:`red`,borderRadius:`xs`,fontSize:`2xs`,px:1.5,py:.5,borderTopLeftRadius:`xl`,borderBottomRightRadius:`md`,children:[e.percentageDiff.toFixed(2),`%`]})}),J(z,{align:`stretch`,spacing:1.5,marginTop:4,children:[J(M,{justify:`space-between`,align:`center`,children:[J(M,{spacing:1.5,align:`center`,children:[e.aggregator.getIcon(`20px`),q(R,{fontSize:`md`,fontWeight:`bold`,children:e.aggregatorName})]}),q(M,{align:`center`,spacing:1.5,children:_&&J(K,{children:[s[_.symbol]?V.cloneElement(s[_.symbol],{boxSize:`24px`,borderRadius:`full`}):p[_.symbol]?q(ut,{src:p[_.symbol],alt:`${_.symbol} logo`,boxSize:`24px`,borderRadius:`full`}):null,q(Ft,{label:Number(e.outputAmountFormatted).toLocaleString(void 0,{maximumFractionDigits:18}),hasArrow:!0,placement:`top`,children:J(R,{fontSize:`md`,fontWeight:`bold`,textAlign:`right`,whiteSpace:`nowrap`,children:[Number(e.outputAmountFormatted).toLocaleString(void 0,{minimumFractionDigits:4}),` `,_.symbol]})})]})})]}),J(M,{justify:`space-between`,align:`center`,children:[q(R,{fontSize:`xs`,color:c?`whiteAlpha.500`:`blackAlpha.500`,children:e.gasCostVTHO&&e.gasCostVTHO>0?`Gas: ${e.gasCostVTHO.toLocaleString(void 0,{maximumFractionDigits:2})} VTHO`:``}),e.valueUsd>0&&J(R,{fontSize:`xs`,color:c?`whiteAlpha.600`:`blackAlpha.600`,textAlign:`right`,whiteSpace:`nowrap`,children:[`≈ `,no(e.valueInCurrency,{currency:l})]})]})]})]},e.aggregatorName)})}),y.length>0&&J(A,{children:[J(M,{justify:`space-between`,cursor:`pointer`,onClick:()=>g(!h),py:2,children:[J(R,{fontSize:`sm`,color:c?`whiteAlpha.600`:`blackAlpha.600`,children:[y.length,` `,a(`rate`),y.length===1?``:`s`,` `,a(`unavailable`)]}),q(N,{as:h?ir:tr,boxSize:4,color:c?`whiteAlpha.600`:`blackAlpha.600`})]}),q($e,{in:h,animateOpacity:!0,children:q(z,{spacing:2,align:`stretch`,pt:2,children:y.map(e=>q(A,{p:2,borderRadius:`xl`,bg:c?`#00000038`:`gray.50`,opacity:.6,children:J(M,{justify:`space-between`,children:[J(M,{spacing:2,align:`center`,children:[e.aggregator.getIcon(`20px`),q(R,{fontSize:`md`,fontWeight:`medium`,children:e.aggregatorName})]}),q(R,{fontSize:`xs`,color:c?`whiteAlpha.500`:`blackAlpha.500`,children:a(`Unable to fetch the price`)})]})},e.aggregatorName))})})]}),x.length===0&&y.length===0&&q(z,{spacing:2,py:8,color:c?`whiteAlpha.600`:`blackAlpha.600`,children:q(R,{fontSize:`lg`,children:a(`No quotes available`)})})]})})}),q(I,{})]})},vl=e=>e===`0x`||e===Ci||!e,yl=(e,t,n,r)=>{if(!e||!t||!n||!r)return null;let i=t.toLowerCase(),a=n.toLowerCase(),o=r.toLowerCase(),s=vl(n),c=vl(r),l=[],u=[];if(e.outputs&&Array.isArray(e.outputs))for(let t of e.outputs)t.events&&Array.isArray(t.events)&&l.push(...t.events),t.transfers&&Array.isArray(t.transfers)&&u.push(...t.transfers);let d=Qr.createInterface().getEvent(`Transfer`),f=d.topicHash.toLowerCase(),p=l.filter(e=>e.topics&&e.topics.length>0&&e.topics[0]?.toString().toLowerCase()===f),m=null,h=null;if(s){for(let e of u)if(e.sender?.toLowerCase()===i&&e.amount&&e.amount!==`0x0`&&e.amount!==`0x`){let t=BigInt(e.amount);if(t>0n){m=t;break}}}if(c){for(let e of u)if(e.recipient?.toLowerCase()===i&&e.amount&&e.amount!==`0x0`&&e.amount!==`0x`){let t=BigInt(e.amount);if(t>0n){h=t;break}}}if(p.length>0)for(let e of p)try{let t=pi({abi:[d],data:e.data.toString(),topics:e.topics.map(e=>e.toString())});if(!t.args||!(`from`in t.args)||!(`to`in t.args)||!(`value`in t.args))continue;let n=t.args.from?.toString().toLowerCase(),r=t.args.to?.toString().toLowerCase(),l=t.args.value,u=e.address.toLowerCase();!s&&n===i&&u&&u===a&&l>0n&&m===null&&(m=l),!c&&r===i&&u&&u===o&&l>0n&&h===null&&(h=l)}catch(e){console.warn(`Failed to decode transfer event:`,e);continue}return{fromAmount:m??0n,toAmount:h??0n}},bl=({setCurrentContent:e,fromTokenAddress:t,toTokenAddress:n})=>{let{t:r}=Y(),{account:i,connection:a}=Q(),{currentCurrency:c}=ls(),{network:l,feeDelegation:u}=$(),{isolatedView:d,closeAccountModal:f}=il(),m=B(`colors`,`vechain-kit-card`),h=B(`colors`,`vechain-kit-card-hover`),g=B(`colors`,`vechain-kit-border`),_=B(`colors`,`vechain-kit-text-primary`),v=B(`colors`,`vechain-kit-text-secondary`),y=B(`colors`,`vechain-kit-text-tertiary`),{preferences:b}=Fp(),{sortedTokens:x}=us({address:i?.address??``}),[S,C]=G(`main`),[w,ee]=G(null),[T,E]=G(null),[D,te]=G(``),[ne,re]=G(!1),[O,ie]=G(1),[ae,oe]=G(!1),[se,ce]=G(`1`),[le,ue]=G(null),[de,fe]=V.useState(null),[pe,me]=V.useState(null),[he,ge]=V.useState([]),{prices:_e,exchangeRates:ve}=ss(),ye=O===1;V.useEffect(()=>{ce(O===1?`1`:O===.5?`0.5`:O===3?`3`:O.toString())},[O]),V.useEffect(()=>{if(x.length!==0){if((t||n)&&(!w||!T)){if(t&&!w){let e=x.find(e=>o(e.address,t));e&&ee(e)}if(n&&!T){let e=x.find(e=>o(e.address,n));e&&E(e)}return}if(!w&&!T){let e=x.find(e=>e.symbol===`VET`);e&&ee(e);let t=x.find(e=>e.symbol===`B3TR`);if(!t)try{let e=k(l.type).b3trContractAddress;e&&(t=x.find(t=>o(t.address,e)))}catch(e){console.warn(`Failed to get B3TR address from config:`,e)}t&&E(t)}}},[x,w,T,t,n,l.type]);let be=H(()=>{if(w&&T){let e=w;ee(T),E(e),te(``)}},[w,T]);V.useEffect(()=>{ue(null)},[w?.address,T?.address,D]);let{bestQuote:xe,quotes:Se,isLoading:Ce,from:we,to:Te}=kc(w,T,D,i?.address??``,O,!!w&&!!T&&Number(D)>0),Ee=W(()=>{if(!D||Number(D)<=0||!we)return 0n;try{return xi(D,we.decimals)}catch{return 0n}},[D,we?.decimals]),De=le||xe,Oe=W(()=>{if(!De?.outputAmount||!Te)return`0`;try{return _i(De.outputAmount,Te.decimals)}catch{return`0`}},[De,Te?.decimals]),ke=W(()=>{if(!w||!D)return 0;let e=_e[w.address]||0;return eo(Number(D)*e,c,ve)},[w?.address,D,_e,c,ve]),Ae=W(()=>{if(!T||!Oe)return 0;let e=_e[T.address]||0;return eo(Number(Oe)*e,c,ve)},[T?.address,Oe,_e,c,ve]),je=W(()=>!w||!T||!i?.address||Ee===0n?null:{fromTokenAddress:w.address,toTokenAddress:T.address,amountIn:Ee.toString(),userAddress:i.address,slippageTolerance:O},[w,T,i?.address,Ee,O]),Me=De?.gasCostVTHO??0;V.useEffect(()=>{(async()=>{if(!De||!je||!De.aggregator){ge([]);return}try{ge(await De.aggregator.buildSwapTransaction(je,De))}catch(e){console.error(`Failed to build swap clauses for gas estimation:`,e),ge([])}})()},[De,je]);let Ne=b.availableGasTokens.length>0&&(a.isConnectedWithPrivy||a.isConnectedWithVeChain)&&!u?.delegatorUrl,{data:Pe,isLoading:Fe,error:Ie,refetch:Le}=Ip({clauses:he,tokens:de?[de]:b.availableGasTokens,sendingAmount:D,sendingTokenSymbol:w?.symbol??``,enabled:Ne&&!!u?.genericDelegatorUrl&&he.length>0}),Re=Pe?.usedToken,ze=(Fe||!Pe)&&a.isConnectedWithPrivy&&!u?.delegatorUrl,Be=V.useCallback(e=>{fe(e),me(e),setTimeout(()=>Le(),100)},[Le]),Ve=!!Re&&!Ie;V.useEffect(()=>{Ie&&de&&fe(null)},[Ie,de]);let{executeSwap:He,isTransactionPending:Ue,isWaitingForWalletConfirmation:We,txReceipt:Ge,status:Ke,error:qe}=lc(je,De),Je=H(()=>{let t=Ge?.meta.txID??``,n=r(`Swap successful`,{defaultValue:`Swap successful`}),a;if(Ge&&w&&T&&i?.address){let e=yl(Ge,i.address,w.address,T.address);if(e&&we&&Te)try{let t=we.decimals,n=Te.decimals,i=_i(e.fromAmount,t),o=_i(e.toAmount,n),s=e=>{let t=Number(e);return t>=1e3?t.toLocaleString(void 0,{maximumFractionDigits:2}):t.toLocaleString(void 0,{maximumFractionDigits:6,minimumFractionDigits:0})};a=r(`You successfully swapped {fromAmount} {fromSymbol} for {toAmount} {toSymbol}`,{fromAmount:s(i),fromSymbol:w.symbol,toAmount:s(o),toSymbol:T.symbol,defaultValue:`You successfully swapped ${s(i)} ${w.symbol} for ${s(o)} ${T.symbol}`})}catch(e){console.warn(`Failed to format swap amounts:`,e)}}!a&&w&&T&&(a=r(`You successfully swapped {fromToken} for {toToken}`,{fromToken:w.symbol,toToken:T.symbol,defaultValue:`You successfully swapped ${w.symbol} for ${T.symbol}`})),e({type:`successful-operation`,props:{setCurrentContent:e,txId:t,title:n,description:a,onDone:()=>{d?f():e(`main`)},showSocialButtons:!0}})},[w,T,D,De,Ge,i?.address,e,r,d,f]),Xe=H(e=>{let t=typeof e==`string`?e:e.message;console.error(`Swap failed:`,t)},[w,T,D]),[Ze,Qe]=V.useState(!1);V.useEffect(()=>{if(Ke===`ready`){Qe(!1);return}Ze||(Ke===`success`&&Ge&&!Ge.reverted?(Qe(!0),Je()):Ke===`error`&&qe?Xe(qe?.reason||qe?.message||String(qe)):Ge?.reverted&&Xe(`Transaction reverted`))},[Ke,Ge,qe,Je,Xe,Ze]);let et=H(e=>{if(ee(e),e.symbol===`VET`&&!T){let e=x.find(e=>e.symbol===`B3TR`);if(!e)try{let t=k(l.type).b3trContractAddress;t&&(e=x.find(e=>o(e.address,t)))}catch(e){console.warn(`Failed to get B3TR address from config:`,e)}e&&E(e)}C(`main`)},[T,x,l.type]),nt=H(e=>{E(e),C(`main`)},[]),rt=H(e=>{(/^\d*\.?\d*$/.test(e)||e===``)&&te(e)},[]),it=H(()=>{w&&te(w.balance)},[w]),at=e=>{if(!e)return null;let t=s[e.symbol],n=p[e.symbol];return{symbol:e.symbol,logoComponent:t,logoUrl:n,balance:e.balance,value:e.valueInCurrency}},ot=at(w),st=at(T);return S===`select-from-token`?q(pl,{setCurrentContent:e,onSelectToken:et,onBack:()=>C(`main`),showAllTokens:!1}):S===`select-quote`?q(_l,{quotes:Se,selectedQuote:De,toTokenAddress:T?.address??null,onSelectQuote:e=>{ue(e),C(`main`)},onBack:()=>C(`main`)}):S===`select-to-token`?q(pl,{setCurrentContent:e,onSelectToken:nt,onBack:()=>C(`main`),showAllTokens:!0}):J(K,{children:[J(Z,{children:[q(L,{children:r(`Swap`)}),!d&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),q(tt,{maxW:`container.lg`,p:0,children:q(P,{children:J(z,{spacing:2,align:`stretch`,w:`full`,children:[J(A,{px:6,py:a.isConnectedWithPrivy?2:6,borderRadius:`xl`,bg:m,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:v,mb:2,children:r(`From`)}),J(z,{align:`stretch`,spacing:2,children:[J(M,{justify:`space-between`,children:[q(dt,{placeholder:`0`,value:D,onChange:e=>rt(e.target.value),fontSize:`4xl`,fontWeight:`bold`,variant:`unstyled`,"data-testid":`swap-amount-input`,type:`number`,inputMode:`decimal`,color:ot&&D&&Number(D)>Number(ot.balance)?`red.500`:_}),ot?J(j,{onClick:()=>C(`select-from-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:v,borderColor:g,_hover:{bg:h,borderColor:g},leftIcon:ot.logoComponent?V.cloneElement(ot.logoComponent,{boxSize:`20px`,borderRadius:`full`}):ot.logoUrl?q(ut,{src:ot.logoUrl,alt:`${ot.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:q(A,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:q(R,{fontSize:`8px`,fontWeight:`bold`,color:_,children:ot.symbol.slice(0,3)})})}):void 0,children:[ot.symbol,q(N,{as:tr,boxSize:5,color:v})]}):J(j,{onClick:()=>C(`select-from-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:v,borderColor:g,_hover:{bg:h,borderColor:g,color:v},children:[r(`Select token`),q(N,{as:tr,boxSize:5,color:v})]})]}),ot&&J(M,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:v,children:[q(M,{spacing:2,alignItems:`center`,children:ke>0&&J(R,{color:v,children:[`≈`,` `,no(ke,{currency:c})]})}),q(R,{cursor:`pointer`,_hover:{color:v,textDecoration:`underline`},onClick:it,noOfLines:1,overflow:`hidden`,textOverflow:`ellipsis`,children:r(`Swap all`,{defaultValue:`Swap all`})})]})]})]}),q(Ye,{position:`relative`,marginTop:`-20px`,marginBottom:`-20px`,marginX:`auto`,bg:m,borderRadius:`xl`,w:`40px`,h:`40px`,zIndex:2,cursor:!w||!T||Ce?`not-allowed`:`pointer`,onClick:!w||!T||Ce?void 0:be,opacity:!w||!T||Ce?.5:1,children:Ce?q(At,{size:`sm`}):q(N,{as:Gn,boxSize:5,color:v})}),J(A,{px:6,py:a.isConnectedWithPrivy?2:6,borderRadius:`xl`,bg:m,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:v,mb:2,children:r(`To`)}),J(z,{align:`stretch`,spacing:2,children:[J(M,{justify:`space-between`,alignItems:`center`,children:[q(dt,{value:Number(Oe).toLocaleString(void 0,{maximumFractionDigits:Number(Oe)>1e4?0:2}),readOnly:!0,variant:`unstyled`,fontSize:`4xl`,fontWeight:`bold`,"data-testid":`swap-output-amount`,color:_}),st?J(j,{onClick:()=>C(`select-to-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:v,borderColor:g,_hover:{bg:h,borderColor:g},leftIcon:st.logoComponent?V.cloneElement(st.logoComponent,{boxSize:`20px`,borderRadius:`full`}):st.logoUrl?q(ut,{src:st.logoUrl,alt:`${st.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:q(A,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:q(R,{fontSize:`8px`,fontWeight:`bold`,color:_,children:st.symbol.slice(0,3)})})}):void 0,children:[st.symbol,q(N,{as:tr,boxSize:5,color:v})]}):J(j,{onClick:()=>C(`select-to-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:v,borderColor:g,_hover:{bg:h,borderColor:g,color:v},children:[r(`Select token`),q(N,{as:tr,boxSize:5,color:v})]})]}),st&&J(M,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:v,children:[q(M,{spacing:2,alignItems:`center`,children:Ae>0&&J(R,{color:v,children:[`≈`,` `,no(Ae,{currency:c})]})}),q(A,{})]})]})]}),q($e,{in:ne&&!!De,animateOpacity:!0,children:J(z,{spacing:1,align:`stretch`,p:4,borderRadius:`xl`,bg:m,children:[De&&J(M,{justify:`space-between`,children:[J(R,{fontSize:`xs`,color:v,children:[r(`Source`),`:`]}),J(M,{spacing:1.5,cursor:`pointer`,onClick:()=>C(`select-quote`),_hover:{opacity:.8},alignItems:`center`,children:[De.aggregator?.getIcon(`12px`),q(R,{fontSize:`xs`,color:_,children:De.aggregatorName})]})]}),J(z,{align:`stretch`,spacing:2,children:[J(M,{justify:`space-between`,cursor:`pointer`,onClick:()=>oe(!ae),children:[J(R,{fontSize:`xs`,color:v,children:[r(`Slippage tolerance`),`:`]}),J(R,{fontSize:`xs`,fontWeight:`medium`,color:_,children:[O,`%`]})]}),q($e,{in:ae,animateOpacity:!0,children:q(z,{spacing:3,align:`stretch`,pt:2,children:J(M,{spacing:2,children:[q(j,{size:`sm`,variant:ye?`solid`:`outline`,colorScheme:ye?`blue`:`gray`,onClick:()=>{ie(1)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,color:_,children:`Auto`}),q(j,{size:`sm`,variant:O===.5?`solid`:`outline`,colorScheme:O===.5?`blue`:`gray`,onClick:()=>{ie(.5)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,color:_,children:`0.5%`}),q(j,{size:`sm`,variant:O===3?`solid`:`outline`,colorScheme:O===3?`blue`:`gray`,onClick:()=>{ie(3)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,color:_,children:`3%`}),J(ft,{size:`sm`,flex:1,children:[q(dt,{value:se,onChange:e=>{let t=e.target.value;if((/^\d*\.?\d*$/.test(t)||t===``)&&(ce(t),t!==``)){let e=parseFloat(t);!isNaN(e)&&e>=0&&e<=100&&ie(e)}},placeholder:`1`,borderRadius:`md`,textAlign:`right`,pr:8,fontSize:`xs`,color:_}),q(mt,{width:`2rem`,pointerEvents:`none`,children:q(R,{fontSize:`2xs`,color:v,children:`%`})})]})]})})})]}),J(M,{justify:`space-between`,children:[J(R,{fontSize:`xs`,color:v,children:[r(`Gas fee`),`:`]}),q(R,{fontSize:`xs`,fontWeight:`medium`,color:_,children:Me>0?`${Me.toLocaleString(void 0,{maximumFractionDigits:2})} VTHO`:`-`})]})]})}),q(A,{minH:`24px`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:De&&q(j,{variant:`ghost`,size:`xs`,onClick:()=>re(!ne),rightIcon:q(N,{color:y,_hover:{color:v},as:ne?Jn:Un}),fontSize:`xs`,fontWeight:`light`,color:y,_hover:{color:v},children:r(ne?`Show Less`:`Show More`)})}),he.length>0&&a.isConnectedWithPrivy&&q(Gp,{estimation:Pe,isLoading:Fe,isLoadingTransaction:Ue,onTokenChange:Be,clauses:he,userSelectedToken:pe})]})})}),q(I,{children:q(Hp,{buttonText:r(`Swap`),onConfirm:He,isSubmitting:Ue,isTxWaitingConfirmation:We,transactionPendingText:r(`Swapping...`),txReceipt:Ge,transactionError:qe,onError:e=>{Xe(e)},isDisabled:!w||!T||!D||Number(D)<=0||Ce||!De||De?.reverted===!0||!!(ot&&D&&Number(D)>Number(ot.balance))||ze,gasEstimationError:Ie,hasEnoughGasBalance:Ve,isLoadingGasEstimation:Fe,showGasEstimationError:!u?.delegatorUrl&&a.isConnectedWithPrivy,context:`transaction`})})]})},xl=({setCurrentContent:e,onBack:t=()=>e(`settings`),initialContentSource:n=`settings`})=>{let{t:r}=Y(),{isolatedView:i}=il(),a=B(`colors`,`vechain-kit-text-primary`),o=B(`colors`,`vechain-kit-text-secondary`),s=()=>{t()};return J(K,{children:[J(Z,{children:[q(L,{"data-testid":`modal-title`,children:r(`Choose your account name`)}),!i&&q(Ja,{onClick:s}),q(F,{})]}),q(P,{children:J(z,{spacing:6,align:`center`,py:8,children:[q(N,{as:Fr,boxSize:16,color:o}),J(z,{spacing:2,children:[q(R,{fontSize:`lg`,fontWeight:`500`,textAlign:`center`,color:a,children:r(`Finally say goodbye to 0x addresses`)}),q(R,{fontSize:`md`,color:o,textAlign:`center`,px:4,children:r(`Name your account to make it easier to exchange assets`)})]})]})}),q(I,{children:q(j,{variant:`vechainKitPrimary`,onClick:()=>e({type:`choose-name-search`,props:{name:``,setCurrentContent:e,initialContentSource:n}}),"data-testid":`choose-name-button`,children:r(`Choose name`)})})]})},Sl=({domain:e,isCurrentDomain:t,onSelect:n})=>{let{connection:r}=Q(),{t:a}=Y(),o=Us(e.name,r.network),s=B(`colors`,`vechain-kit-card`),c=B(`colors`,`vechain-kit-card-hover`),l=B(`colors`,`vechain-kit-border`),u=B(`colors`,`vechain-kit-text-primary`),f=B(`colors`,`vechain-kit-text-secondary`),p=B(`colors`,`vechain-kit-card`);return q(_t,{p:4,bg:s,borderRadius:`xl`,cursor:t?`default`:`pointer`,opacity:t?.7:1,border:`1px solid ${l}`,_hover:{bg:t?c:s,borderColor:l},onClick:()=>!t&&n(e.name),transition:`all 0.2s`,children:J(M,{spacing:3,align:`center`,children:[q(Vp,{props:{width:`40px`,height:`40px`,src:o.image??i(e.name),alt:e.name}}),J(z,{align:`start`,spacing:0,flex:1,children:[q(R,{color:u,fontSize:`md`,fontWeight:`500`,children:d(e.name,24,0)}),t&&q(R,{fontSize:`sm`,color:f,children:a(`Current domain`)})]}),t&&q(Nt,{size:`sm`,bg:p,color:u,px:3,py:1,borderRadius:`full`,children:a(`Current`)})]})},e.name)},Cl=({onUnset:e})=>{let t=B(`colors`,`vechain-kit-card`),n=B(`colors`,`vechain-kit-card-hover`),r=B(`colors`,`vechain-kit-border`),i=B(`colors`,`vechain-kit-text-primary`),a=B(`colors`,`vechain-kit-text-secondary`),o=B(`colors`,`vechain-kit-error`),{t:s}=Y();return q(_t,{p:4,bg:t,borderRadius:`xl`,cursor:`pointer`,opacity:1,border:`1px solid ${r}`,_hover:{bg:n,borderColor:r,color:`red.400`},onClick:e,transition:`all 0.2s`,role:`button`,"aria-label":s(`Unset current domain`),children:J(M,{spacing:3,align:`center`,children:[q(A,{width:`40px`,height:`40px`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`,bg:t,children:q(N,{as:Ir,fontSize:`18px`,color:o})}),J(z,{align:`start`,spacing:0,flex:1,children:[q(R,{color:i,fontSize:`md`,fontWeight:`500`,children:s(`Unset current domain`)}),q(R,{fontSize:`sm`,color:a,children:s(`Remove your current domain name`)})]})]})},`unset-domain-list-item`)},wl=({domains:e,onDomainSelect:t,onUnsetDomain:n,isLoading:r})=>{let{t:i}=Y(),{account:a}=Q(),o=B(`colors`,`vechain-kit-card`),s=B(`colors`,`vechain-kit-card-hover`),c=B(`colors`,`vechain-kit-text-primary`),l=B(`colors`,`vechain-kit-text-secondary`);return e.length===0||r?null:q(Ie,{allowToggle:!0,children:q(Re,{border:`none`,children:({isExpanded:u})=>J(K,{children:[J(Le,{bg:o,borderRadius:`xl`,_hover:{bg:s},opacity:r?.7:1,transition:`all 0.2s`,disabled:r,children:[q(A,{flex:`1`,textAlign:`left`,py:2,children:q(R,{fontWeight:`500`,color:c,children:r?i(`Loading your domains...`):`${i(`Your existing domains`)} (${e.length})`})}),q(N,{as:u?ir:tr,fontSize:`20px`,color:l})]}),q(ze,{pb:4,pt:2,children:J(gt,{spacing:2,children:[e.map(e=>q(Sl,{domain:e,isCurrentDomain:e.name===a?.domain,onSelect:t},e.name)),a?.domain&&q(Cl,{onUnset:n})]})})]})})})},Tl=({name:e,setCurrentContent:t,initialContentSource:n=`settings`})=>{let{t:r}=Y(),{account:i}=Q(),{darkMode:a}=$(),{isolatedView:o}=il(),[s,c]=G(Ui(e)),[l,u]=G(null),[d,f]=G(!1),[p,m]=G(!1),[h,g]=G(!1),_=B(`colors`,`vechain-kit-error`),v=B(`colors`,`vechain-kit-success`),y=B(`colors`,`vechain-kit-text-secondary`),{data:b,isLoading:x}=mo(s),{data:S,isLoading:C}=uo(`${s}.veworld.vet`),{data:w,isLoading:ee}=Oo(s),{data:T,isLoading:E}=No(i?.address,``),D=x||C||ee;U(()=>{if(!h)return;let e=/[^a-zA-Z0-9-]|\s/.test(s);s.length<3?(u(r(`Name must be at least 3 characters long`)),m(!1),f(!1)):e?(u(r(`Only letters, numbers, and hyphens are allowed`)),m(!1),f(!1)):w?(u(r(`This domain is protected`)),m(!1),f(!1)):b?S?.address?.toLowerCase()===i?.address?.toLowerCase()?(u(null),m(!0),f(!0)):(u(r(`This domain is already taken`)),m(!1),f(!1)):x||(u(null),m(!0),f(!1))},[s,h,b,x,S,i?.address,w,p,D]);let te=()=>{p&&!l&&t({type:`choose-name-summary`,props:{fullDomain:s+`.veworld.vet`,isOwnDomain:d,setCurrentContent:t,initialContentSource:n}})},ne=e=>{let r=e.split(`.`);t({type:`choose-name-summary`,props:{fullDomain:e,domainType:r.length>2?`${r[1]}.${r[2]}`:`vet`,isOwnDomain:!0,setCurrentContent:t,initialContentSource:n}})},re=()=>{t({type:`choose-name-summary`,props:{fullDomain:``,domainType:``,isOwnDomain:!1,isUnsetting:!0,setCurrentContent:t,initialContentSource:n}})},O=()=>{t(n)};return J(K,{children:[J(Z,{children:[q(L,{"data-testid":`modal-title`,children:r(`Choose Name`)}),!o&&q(Ja,{onClick:O}),q(F,{})]}),q(P,{children:J(z,{spacing:4,align:`stretch`,children:[q(wl,{domains:T?.domains||[],onDomainSelect:ne,onUnsetDomain:re,isLoading:E}),J(ft,{size:`lg`,children:[q(dt,{placeholder:r(`Enter your name`),value:s,onChange:e=>{c(Ui(e.target.value)),h||g(!0)},paddingRight:`120px`,fontSize:`lg`,height:`60px`,bg:a?`#00000038`:`white`,border:`1px solid ${a?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${a?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${a?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},isInvalid:!!l,"data-testid":`domain-input`}),q(mt,{width:`auto`,paddingRight:`12px`,h:`full`,children:q(A,{mr:4,fontSize:`sm`,color:y,children:`.veworld.vet`})})]}),l&&h&&q(R,{color:_,fontSize:`sm`,"data-testid":`domain-availability-status`,children:l}),!l&&h&&s.length>=3&&q(R,{fontSize:`sm`,color:p?v:_,fontWeight:`500`,"data-testid":`domain-availability-status`,children:r(d?`YOU OWN THIS`:p?`AVAILABLE`:`UNAVAILABLE`)})]})}),q(I,{children:q(j,{variant:`vechainKitPrimary`,isDisabled:!p||!!l||w||D,onClick:te,"data-testid":`continue-button`,children:r(`Continue`)})})]})},El=({setCurrentContent:e,fullDomain:t,domainType:n=`veworld.vet`,isOwnDomain:r,isUnsetting:i=!1,initialContentSource:a=`settings`})=>{let{t:o}=Y(),s=B(`colors`,`vechain-kit-text-primary`),{isolatedView:c,closeAccountModal:l}=il(),{account:u,connectedWallet:d,connection:f}=Q(),{data:p}=Kf(u?.address??``,d?.address??``,3),{open:m}=Wd(),{preferences:h}=Fp(),{feeDelegation:g}=$(),_=e=>{console.error(`Transaction failed:`,e)},v=ts({onSuccess:()=>D()}),y=n.endsWith(`veworld.vet`),b=bo({subdomain:t.split(`.veworld.vet`)[0],domain:n,alreadyOwned:r,onSuccess:()=>D()}),x=wo({domain:!i&&!y?t:``,alreadyOwned:r,onSuccess:()=>D()}),{sendTransaction:S,txReceipt:C,error:w,isWaitingForWalletConfirmation:ee,isTransactionPending:T,clauses:E}=i?v:y?b:x,D=()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:C?.meta.txID,title:o(i?`Domain unset`:`Domain set`),description:i?o(`Your domain has been unset successfully.`):o(`Your address has been successfully set to {{name}}`,{name:t}),onDone:()=>{c?l():e(a)}}})},te=async()=>{if(p){m();return}try{await S()}catch(e){console.error(`Transaction failed:`,e)}},ne=()=>{te()},re=()=>{e({type:`choose-name-search`,props:{setCurrentContent:e,name:t,initialContentSource:a}})},[O,ie]=V.useState(null),[ae,oe]=V.useState(null),se=h.availableGasTokens.length>0&&(f.isConnectedWithPrivy||f.isConnectedWithVeChain)&&!g?.delegatorUrl,{data:k,isLoading:ce,error:le,refetch:ue}=Ip({clauses:E(),tokens:O?[O]:h.availableGasTokens,enabled:se&&!!g?.genericDelegatorUrl}),de=k?.usedToken,fe=(ce||!k)&&f.isConnectedWithPrivy&&!g?.delegatorUrl,pe=V.useCallback(e=>{ie(e),oe(e),setTimeout(()=>ue(),100)},[ue]),me=!!de&&!le;return V.useEffect(()=>{le&&O&&ie(null)},[le,O]),J(K,{children:[J(Z,{children:[q(L,{"data-testid":`confirm-domain`,children:o(i?`Confirm Unset Domain`:`Confirm Name`)}),q(Ja,{onClick:re,isDisabled:T}),q(F,{isDisabled:T})]}),J(P,{children:[J(z,{spacing:4,w:`full`,textAlign:`center`,children:[q(R,{fontSize:`lg`,color:s,children:o(i?`Are you sure you want to unset your current domain?`:`Are you sure you want to set your domain name to`)}),!i&&q(R,{fontSize:`xl`,fontWeight:`bold`,color:s,"data-testid":`preconfirm-domain-val`,children:`${t}`})]}),f.isConnectedWithPrivy&&q(Gp,{estimation:k,isLoading:ce,isLoadingTransaction:T,onTokenChange:pe,clauses:E(),userSelectedToken:ae})]}),q(I,{gap:4,w:`full`,children:q(Hp,{transactionError:w,isSubmitting:T,isTxWaitingConfirmation:ee,onConfirm:te,onRetry:ne,transactionPendingText:o(i?`Unsetting current domain...`:`Claiming name...`),txReceipt:C,buttonText:o(`Confirm`),isDisabled:T||fe,onError:_,gasEstimationError:le,hasEnoughGasBalance:me,isLoadingGasEstimation:ce,showGasEstimationError:!g?.delegatorUrl&&f.isConnectedWithPrivy,context:`domain`})})]})},Dl=()=>{let{t:e}=Y(),[t,n]=G(``),r=B(`colors`,`vechain-kit-card`),i=B(`colors`,`vechain-kit-text-secondary`),a=B(`colors`,`vechain-kit-text-tertiary`),o=B(`colors`,`vechain-kit-card`),s=B(`colors`,`vechain-kit-card-elevated`),c=[{question:e(`What is VeChain?`),answer:e(`VeChain, headquartered in San Marino, Europe, is a pioneering blockchain ecosystem and creator of VeChainThor, a world-class smart contract platform driving real-world blockchain adoption. Founded in 2015 by Sunny Lu, VeChain has consistently worked to deliver a transparent, efficient, scalable, and adaptable blockchain solution.`)},{question:e(`What is a wallet?`),answer:e(`A wallet is your gateway to the VeChain blockchain. It stores your private keys and allows you to securely manage your digital assets, send and receive tokens, and interact with decentralized applications. Think of it as your digital bank account for blockchain transactions.`)},{question:e(`What is a Smart Account?`),answer:e(`A Smart Account is a smart contract wallet that provides enhanced security and functionality. It allows for features like social recovery, transaction batching, and more.`)},{question:e(`How is my wallet secured?`),answer:e(`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.`)},{question:e(`How do I backup my wallet?`),answer:e(`Backing up your wallet is crucial as you are the only one with access to your private keys. If something goes wrong, having your private key is the only way to recover your assets. How to backup depends on how you access your wallet: If using VeWorld, the backup option is available within the app. For social login users, you can find backup options in the Wallet section. If you're connected through VeChain or another ecosystem app, you'll need to visit the original website, log in, and access the Wallet section from there.`)},{question:e(`What is a network?`),answer:e(`A network in blockchain refers to the environment where transactions take place. VeChain has two main networks: Mainnet (the live network where real transactions occur) and Testnet (a testing environment for developers). The network you're connected to is displayed at the top of this modal.`)},{question:e(`What is a domain name?`),answer:e(`A domain name is a sort of nickname for your wallet address. It allows you to easily identify your wallet and interact with dApps using a human-readable name. For example, if your wallet address is 0x1234567890, your nickname could be "alice.vechain".`)},{question:e(`What is Privy?`),answer:e(`Privy builds user onboarding and embedded wallet infrastructure to enable better products built on crypto rails. This means embedding asset control within applications themselves to enable users, businesses or machines to use digital assets through seamless product experiences.`)},{question:e(`What is VeBetterDAO?`),answer:e(`VeBetterDAO is a decentralized organization on VeChain blockchain focused on sustainability. Members participate in the governance of the DAO using B3TR tokens for rewards and VOT3 for voting in proposals and weekly token allocation rounds.`)},{question:e(`What is an x2earn application?`),answer:e(`An X2Earn application in VeBetterDAO is a sustainable app that rewards users with B3TR tokens for eco-friendly actions. These apps must distribute B3TR, link user wallets, and provide proof of sustainable actions. They join VeBetterDAO through endorsement and participate in weekly token allocation rounds.`)},{question:e(`What is B3TR?`),answer:e(`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.`)},{question:e(`What is VET?`),answer:e(`VET is the primary cryptocurrency of the VeChain network. It represents value and ownership in the VeChain ecosystem, similar to how stocks represent ownership in a company. Holding VET automatically generates VTHO, which is needed to pay for transactions on the network.`)},{question:e(`What is VTHO?`),answer:e(`VTHO (VeThor) is the energy or 'gas' token of the VeChain network. It's used to pay for transaction fees when interacting with the blockchain. VTHO is automatically generated by holding VET tokens, creating a two-token system that helps maintain network stability and manage transaction costs.`)},{question:e(`How do I send tokens?`),answer:e(`You can send tokens by clicking the send icon in the Quick Actions section. Enter the recipient's address or VeChain domain name, select the token, and specify the amount you want to send.`)},{question:e(`What is fee delegation?`),answer:e(`Fee delegation is a unique feature of VeChain that allows someone else (a delegator) to pay for your transaction fees. While many dApps and service providers act as delegators to make it easier for new users to get started, some transactions may still require you to pay fees using your own VTHO. Fees are necessary to prevent network spam and compensate the nodes that process and validate transactions on the blockchain. When paying fees yourself, you'll be able to select VTHO from your assets to cover the transaction cost.`)}].filter(e=>e.question.toLowerCase().includes(t.toLowerCase())||typeof e.answer==`string`&&e.answer.toLowerCase().includes(t.toLowerCase()));return J(z,{spacing:4,align:`stretch`,children:[J(ft,{size:`lg`,children:[q(dt,{placeholder:e(`Search FAQ`),bg:r,borderRadius:`xl`,height:`56px`,pl:12,value:t,onChange:e=>n(e.target.value)}),q(pt,{h:`56px`,w:`56px`,pl:4,children:q(kr,{color:a})})]}),c.length===0?J(z,{spacing:2,py:8,color:i,children:[q(N,{as:Pr,boxSize:12,opacity:.5}),q(R,{fontSize:`lg`,children:e(`No questions found`)}),q(R,{fontSize:`md`,children:e(`Try searching with a different term`)})]}):q(Ie,{allowMultiple:!0,children:c.map((e,t)=>q(Re,{border:`none`,mb:2,children:({isExpanded:t})=>J(K,{children:[J(Le,{bg:o,borderRadius:`xl`,color:i,_hover:{bg:s},children:[q(A,{flex:`1`,textAlign:`left`,py:2,children:q(R,{fontWeight:`500`,color:i,children:e.question})}),q(N,{as:t?ir:tr,fontSize:`20px`,opacity:.5})]}),q(ze,{pb:4,children:q(R,{fontSize:`sm`,color:i,opacity:.8,children:e.answer})})]})},t))})]})},Ol=({onGoBack:e,showLanguageSelector:t=!0})=>{let{i18n:n,t:r}=Y(),{isolatedView:i}=il(),a=B(`colors`,`vechain-kit-card`),o=B(`colors`,`vechain-kit-border`),s=B(`colors`,`vechain-kit-border-hover`);return J(Bp,{children:[J(Z,{children:[q(L,{children:r(`Help`)}),!i&&q(Ja,{onClick:e}),q(F,{})]}),q(P,{w:`full`,children:J(z,{spacing:6,align:`stretch`,children:[t&&q(Ot,{borderRadius:`md`,size:`sm`,width:`auto`,value:n.language,onChange:e=>{n.changeLanguage(e.target.value)},bg:a,borderColor:o,_hover:{borderColor:s},children:va.map(e=>q(`option`,{value:e,children:ba[e]},e))}),q(j,{as:ht,href:`https://docs.vechainkit.vechain.org/`,isExternal:!0,variant:`vechainKitSecondary`,rightIcon:q(N,{as:fr}),children:r(`For developers`)}),q(Dl,{})]})}),q(I,{pt:0})]})},kl=({setCurrentContent:e,initialContentSource:t=`profile`})=>{let{t:n}=Y(),{network:i}=$(),{account:a}=Q(),o=B(`colors`,`vechain-kit-text-primary`),s=B(`colors`,`vechain-kit-error`),c=B(`colors`,`vechain-kit-card`),l=Zt(null),u=Zt(null),[d,f]=G(!1),{onUpload:p}=oc({compressImage:!0}),[m,h]=G(null),[g,_]=G(null),v=!!a?.domain,[y,b]=G(null),[x,S]=G(``),[C,w]=G(``),{register:ee,watch:T,formState:{errors:E,isValid:D}}=Hi({defaultValues:{displayName:a?.metadata?.display||``,description:a?.metadata?.description||``},mode:`onChange`});U(()=>{if(a?.metadata){let e=a.metadata;S(e.display||``),w(e.description||``),b(a.image?a.image.replace(`ipfs://`,``):null),h(e=>e??a.image??null)}},[a,i.type]);let te=T(),ne=async e=>{let t=e.target.files?.[0];if(t)try{f(!0),m&&URL.revokeObjectURL(m),h(URL.createObjectURL(t));let e=await p(t);if(!e)throw Error(`Failed to compress image`);_(await r(e.file,t.name,i.type))}catch(e){console.error(`Error uploading image:`,e),h(null)}finally{f(!1)}};U(()=>()=>{m&&URL.revokeObjectURL(m)},[m]);let re=()=>{let e={};return g!==y&&g&&(e.avatarIpfsHash=g),te.displayName!==x&&(e.displayName=te.displayName),te.description!==C&&(e.description=te.description),e},O=W(()=>{let e=re();return Object.keys(e).length>0},[re]),ie=()=>{e({type:`account-customization-summary`,props:{setCurrentContent:e,changes:re(),onDoneRedirectContent:t}})},ae=()=>{e(t)};return J(A,{children:[J(Z,{children:[q(L,{"data-testid":`modal-title`,children:n(`Customization`)}),q(Ja,{onClick:ae}),q(F,{})]}),J(P,{children:[J(Ge,{variant:`vechainKitBase`,position:`relative`,overflow:`visible`,justifyContent:`center`,alignItems:`center`,children:[J(A,{cursor:v?`pointer`:`default`,pt:2,onClick:()=>v&&l.current?.click(),children:[q(Vp,{wallet:a,props:{width:`100px`,height:`100px`,boxShadow:`0px 0px 3px 2px #00000024`,src:m??void 0}}),v&&q(N,{as:$n,position:`absolute`,top:`80px`,left:`60%`,bg:c,color:o,p:`1`,borderRadius:`full`,boxSize:`6`}),d&&q(A,{display:`flex`,alignItems:`center`,justifyContent:`center`,backgroundColor:`rgba(0, 0, 0, 0.5)`,borderRadius:`full`,children:q(R,{fontSize:`xs`,color:`white`,children:d?`Uploading...`:`Processing...`})})]}),q(Ke,{w:`full`,backgroundColor:`none`,border:`none`,children:J(z,{spacing:6,children:[!v&&q(tl,{}),q(Gc,{title:a?.domain??n(`Choose account name`),description:n(`Choose a unique .vet domain name for your account.`),onClick:()=>{a?.domain?e({type:`choose-name-search`,props:{name:``,setCurrentContent:e,initialContentSource:{type:`account-customization`,props:{setCurrentContent:e}}}}):e({type:`choose-name`,props:{setCurrentContent:e,initialContentSource:{type:`account-customization`,props:{setCurrentContent:e}},onBack:()=>e({type:`account-customization`,props:{setCurrentContent:e}})}})},leftIcon:Fr,rightIcon:rr,dataTestId:`set-domain-name-button`}),J(it,{isDisabled:!v,isInvalid:!!E.displayName,children:[q(at,{fontSize:`sm`,fontWeight:`medium`,color:o,children:n(`Display Name`)}),q(dt,{...ee(`displayName`,{maxLength:{value:25,message:n(`Display name must be less than 25 characters`)}}),placeholder:n(v?`Enter your display name`:`Set a domain first`),fontWeight:`medium`,color:o,"data-testid":`display-name-input`}),E.displayName&&q(R,{color:s,fontSize:`sm`,mt:1,fontWeight:`medium`,children:E.displayName.message})]}),J(it,{isDisabled:!v,isInvalid:!!E.description,children:[q(at,{fontSize:`sm`,fontWeight:`medium`,color:o,children:n(`Description`)}),q(Pt,{...ee(`description`,{maxLength:{value:100,message:n(`Description must be less than 100 characters`)}}),placeholder:n(`Eg: DevRel @ ENS Labs`),fontWeight:`medium`,color:o,"data-testid":`description-input`,minH:`50px`}),E.description&&q(R,{color:s,mt:1,fontSize:`sm`,fontWeight:`medium`,children:E.description.message})]})]})})]}),q(`input`,{type:`file`,ref:l,hidden:!0,accept:`image/*`,onChange:async e=>await ne(e)}),q(`input`,{type:`file`,ref:u,hidden:!0,accept:`image/*`,onChange:async e=>{e.preventDefault()}})]}),q(I,{w:`full`,children:q(j,{variant:`vechainKitPrimary`,onClick:ie,isDisabled:!v||!O||!D,isLoading:d,loadingText:n(`Preparing changes...`),"data-testid":`save-changes-button`,children:n(`Save Changes`)})})]})},Al=({setCurrentContent:e,changes:t,onDoneRedirectContent:n})=>{let{t:r}=Y(),{darkMode:i,network:a,feeDelegation:o}=$(),{account:s,connectedWallet:c,connection:l}=Q(),{preferences:u}=Fp(),{data:d}=Kf(s?.address??``,c?.address??``,3),{open:f}=Wd(),{handleSubmit:p}=Hi({defaultValues:{...t,avatarIpfsHash:t.avatarIpfsHash??void 0}}),m=s?.domain??``,{data:h}=Wo(m),g=zn(),{sendTransaction:_,txReceipt:v,error:y,isWaitingForWalletConfirmation:b,isTransactionPending:S,clauses:C}=Ho({resolverAddress:h,signerAccountAddress:s?.address??``,onSuccess:async()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:v?.meta.txID,title:r(`Profile Updated`),description:r(`Your changes have been saved successfully.`),onDone:()=>{e(n)}}});try{await pe()}catch(e){console.error(`Error refreshing data:`,e)}},onError:e=>{console.error(`Error updating text record:`,e)}}),w=W(()=>{let e=s?.domain??``,n={displayName:`display`,description:`description`,twitter:`com.x`,website:`url`,email:`email`,avatarIpfsHash:`avatar`};return Object.entries(t).filter(e=>e[1]!==void 0&&e[1]!==null).map(([t,r])=>({domain:e,key:n[t],value:t===`avatarIpfsHash`?`ipfs://${r}`:r}))},[t,s?.domain]),ee=W(()=>{try{return!h||w.length===0||!C?[]:C(w)}catch(e){return console.error(`Error building clauses:`,e),[]}},[w,C,h]),[T,E]=V.useState(null),[D,te]=V.useState(null),ne=u.availableGasTokens.length>0&&(l.isConnectedWithPrivy||l.isConnectedWithVeChain)&&!o?.delegatorUrl,{data:re,isLoading:O,error:ie,refetch:ae}=Ip({clauses:ee,tokens:T?[T]:u.availableGasTokens,enabled:ne&&!!o?.genericDelegatorUrl}),oe=re?.usedToken,se=(O||!re)&&l.isConnectedWithPrivy&&!o?.delegatorUrl,k=V.useCallback(e=>{E(e),te(e),setTimeout(()=>ae(),100)},[ae]),ce=!!oe&&!ie;V.useEffect(()=>{ie&&T&&E(null)},[ie,T]);let le=async()=>{if(d){f();return}try{w.length>0&&await _(w)}catch(e){console.error(`Error saving changes:`,e)}},ue=(e,t)=>t?.trim()?J(z,{align:`flex-start`,w:`full`,spacing:1,children:[q(R,{fontSize:`sm`,color:i?`whiteAlpha.600`:`blackAlpha.600`,children:e}),q(R,{fontSize:`md`,children:t})]}):null,de=()=>{p(le)()},fe=()=>{e({type:`account-customization`,props:{setCurrentContent:e}})},pe=async()=>{t.avatarIpfsHash&&(g.setQueryData(Po(m,a.type),x(`ipfs://`+t.avatarIpfsHash,a.type)),g.setQueryData(Go(s?.address??``),x(`ipfs://`+t.avatarIpfsHash,a.type))),await g.invalidateQueries({queryKey:Ro(m,a.type)}),await g.refetchQueries({queryKey:Ro(m,a.type)})};return J(A,{as:`form`,onSubmit:p(le),children:[J(Z,{children:[q(L,{children:r(`Confirm Changes`)}),q(Ja,{isDisabled:S,onClick:fe}),q(F,{isDisabled:S})]}),J(P,{children:[J(z,{spacing:4,align:`stretch`,children:[t.avatarIpfsHash&&J(z,{align:`flex-start`,w:`full`,spacing:1,children:[q(R,{fontSize:`sm`,color:i?`whiteAlpha.600`:`blackAlpha.600`,children:r(`Profile Image`)}),q(R,{fontSize:`md`,children:r(`New image selected`)})]}),t.displayName&&ue(r(`Display Name`),t.displayName),t.description&&ue(r(`Description`),t.description),t.twitter&&ue(r(`Twitter`),t.twitter),t.website&&ue(r(`Website`),t.website),t.email&&ue(r(`Email`),t.email)]}),l.isConnectedWithPrivy&&q(Gp,{estimation:re,isLoading:O,isLoadingTransaction:S,onTokenChange:k,clauses:ee,userSelectedToken:D})]}),q(I,{gap:4,w:`full`,children:q(Hp,{transactionError:y,isSubmitting:S,isTxWaitingConfirmation:b,onConfirm:p(le),onRetry:de,transactionPendingText:r(`Saving changes...`),txReceipt:v,buttonText:r(`Confirm`),isDisabled:S||se,gasEstimationError:ie,hasEnoughGasBalance:ce,isLoadingGasEstimation:O,showGasEstimationError:!o?.delegatorUrl&&l.isConnectedWithPrivy,context:`customization`})})]})},jl=({onEditClick:e,address:t,showHeader:n=!0,onLogout:r,showLinks:a=!0,showDescription:o=!0,showDisplayName:s=!0,showEdit:c=!0,style:l})=>{let{t:u}=Y(),{account:d,disconnect:f}=Q(),{network:p}=$(),{openAccountModal:m,closeAccountModal:h}=pd(),g=B(`colors`,`vechain-kit-text-primary`),_=B(`colors`,`vechain-kit-text-secondary`),v=Us(t,p.type),y=i(t),b=t===d?.address,x=v?.records?.url||v?.records?.[`com.x`]||v?.records?.email;return J(Ge,{variant:`vechainKitBase`,...l?.card,children:[q(A,{p:0,backgroundSize:`100% !important`,backgroundPosition:`center`,position:`relative`,h:`80px`,background:n?`no-repeat url('${y}')`:`none`,w:`100%`,borderRadius:`14px 14px 0 0`}),q(A,{position:`absolute`,top:`30px`,left:`50%`,transform:`translateX(-50%)`,children:q(Vp,{wallet:{address:t,domain:v?.domain,image:v?.image,isLoadingMetadata:v?.isLoading,metadata:v?.records},props:{width:`120px`,height:`120px`}})}),q(Ke,{mt:`60px`,backgroundColor:`none`,border:`none`,...l?.body,children:J(z,{w:`full`,spacing:2,children:[s&&v?.records?.display&&q(R,{fontSize:`xl`,color:g,fontWeight:`bold`,w:`full`,textAlign:`center`,mt:2,"data-testid":`display-name-val`,children:v?.records?.display}),o&&v?.records?.description&&q(R,{fontSize:`sm`,color:_,w:`full`,textAlign:`center`,"data-testid":`description-val`,children:v?.records?.description}),a&&x&&J(M,{w:`full`,justify:`center`,spacing:5,mt:4,children:[v?.records?.email&&q(ht,{href:`mailto:${v?.records?.email}`,target:`_blank`,"data-testid":`mail-link`,children:q(N,{as:Sr,color:g})}),v?.records?.url&&q(ht,{href:v?.records?.url,target:`_blank`,"data-testid":`website-link`,children:q(N,{as:_r,color:g})}),v?.records?.[`com.x`]&&q(ht,{href:`https://x.com/${v?.records?.[`com.x`]}`,target:`_blank`,"data-testid":`twitter-link`,children:q(N,{as:Ki,color:g})})]}),q(Ya,{wallet:{address:t,domain:v?.domain,image:v?.image,isLoadingMetadata:v?.isLoading,metadata:v?.records},style:{mt:4}})]})}),b&&c&&q(qe,{justify:`space-between`,...l?.footer,children:J(z,{w:`full`,justify:`space-between`,spacing:4,children:[q(nt,{}),J(M,{w:`full`,justify:`space-between`,children:[q(j,{size:`md`,width:`full`,height:`40px`,variant:`ghost`,leftIcon:q(N,{as:wr}),onClick:e??(()=>{m({type:`account-customization`,props:{setCurrentContent:()=>h()}})}),"data-testid":`customize-button`,children:u(`Customize`)}),q(j,{size:`md`,width:`full`,height:`40px`,variant:`ghost`,leftIcon:q(N,{as:xr}),colorScheme:`red`,onClick:r??(()=>{m({type:`disconnect-confirm`,props:{onDisconnect:()=>{f(),h()},onBack:()=>h()}})}),"data-testid":`logout-button`,children:u(`Logout`)})]})]})})]})},Ml=({setCurrentContent:e,onLogoutSuccess:t})=>{let{t:n}=Y(),{isolatedView:r}=il(),{account:i,disconnect:a}=Q();return J(A,{children:[J(Z,{children:[q(L,{"data-testid":`modal-title`,children:n(`Profile`)}),!r&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{w:`full`,spacing:2,children:[!i?.domain&&q($c,{setCurrentContent:e}),q(jl,{onEditClick:()=>{e({type:`account-customization`,props:{setCurrentContent:e,initialContentSource:`profile`}})},address:i?.address??``,showHeader:!1,style:{card:{bg:`transparent`,px:0},footer:{px:0}},onLogout:()=>{e?.({type:`disconnect-confirm`,props:{onDisconnect:()=>{a(),t?.()},onBack:()=>e?.(`profile`)}})}})]})}),q(I,{pt:0})]})},Nl=({setCurrentContent:e,handleClose:t,initialContent:n=`access-and-security`})=>{let{t:r}=Y(),{smartAccount:i,connectedWallet:a}=Q(),{data:o}=Kf(i?.address??``,a?.address??``,3),{sendTransaction:s,isTransactionPending:c,isWaitingForWalletConfirmation:l,error:u,txReceipt:d}=Zf({smartAccountAddress:i?.address??``,targetVersion:3,onSuccess:()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:d?.meta.txID,title:r(`Upgrade Successful!`),description:r(`Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.`),onDone:()=>{t?t():e(n)},showSocialButtons:!1}})},onError:()=>{console.error(`Error upgrading Smart Account`)}});return J(K,{children:[J(Z,{children:[q(L,{children:r(`Account upgrade required`)}),q(Ja,{onClick:()=>{e(n)}}),q(F,{})]}),q(P,{children:J(z,{spacing:10,align:`stretch`,children:[q(R,{fontSize:`sm`,textAlign:`center`,children:r(o?`Your smart account needs to be upgraded to the latest version (v3).`:`Your smart account is already upgraded to this version.`)}),J(M,{align:`center`,justifyContent:`space-evenly`,rounded:`md`,children:[J(A,{position:`relative`,display:`inline-block`,children:[q(Qe,{size:`60px`,bg:`gray.200`,children:q(ut,{borderRadius:`full`,src:i?.image,alt:r(`Profile Picture`),w:`100%`,h:`100%`,objectFit:`cover`})}),q(ct,{position:`absolute`,top:`-5`,right:`-5`,color:`#D23F63`,fontSize:`28px`,children:`v1`})]}),q(N,{as:qn,color:`#3DBA67`}),J(A,{position:`relative`,display:`inline-block`,children:[q(Qe,{size:`60px`,bg:`gray.200`,children:q(ut,{borderRadius:`full`,src:i?.image,alt:r(`Profile Picture`),w:`100%`,h:`100%`,objectFit:`cover`})}),q(ct,{position:`absolute`,top:`-5`,right:`-5`,color:`#3DBA67`,fontSize:`28px`,children:`v3`})]})]}),J(Be,{status:`info`,borderRadius:`md`,children:[q(He,{}),J(A,{children:[q(Ue,{fontSize:`sm`,children:r(`Benefits of this upgrade:`)}),q(Ve,{fontSize:`xs`,children:J(z,{align:`start`,spacing:0,mt:1,children:[J(R,{fontSize:`xs`,lineHeight:`1.2`,children:[`• `,r(`Improved security features`)]}),J(R,{fontSize:`xs`,children:[`• `,r(`Better transaction handling`)]}),J(R,{fontSize:`xs`,children:[`•`,` `,r(`Enhanced compatibility with dApps`)]}),J(R,{fontSize:`xs`,children:[`•`,` `,r(`Reduced gas costs for operations`)]})]})})]})]})]})}),q(I,{justifyContent:`center`,children:J(z,{spacing:3,w:`full`,children:[q(Hp,{buttonText:r(o?`Upgrade account`:`Account already upgraded`),onConfirm:async()=>{try{await s()}catch(e){console.error(`Failed to upgrade Smart Account:`,e)}},isTxWaitingConfirmation:l,isSubmitting:c,transactionPendingText:r(`Upgrading...`),txReceipt:d,transactionError:u,isDisabled:!o}),q(j,{mt:2,variant:`link`,onClick:()=>{t?t():e(n)},isDisabled:c,children:r(o?`Close and do this later`:`Close`)})]})})]})},Pl=({setCurrentContent:e})=>{let{account:t}=Q(),{sortedTokens:n}=us({address:t?.address}),{allowCustomTokens:r,darkMode:i}=$(),{currentCurrency:a}=ls(),o=B(`colors`,`vechain-kit-text-tertiary`),{t:s}=Y(),{isolatedView:c}=il(),[l,u]=G(``),d=t=>{e({type:`send-token`,props:{setCurrentContent:e,preselectedToken:t,onBack:()=>e(`assets`)}})},f=n.filter(({symbol:e})=>e.toLowerCase().includes(l.toLowerCase()));return J(K,{children:[J(Z,{children:[q(L,{children:s(`Assets`)}),!c&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),J(tt,{h:[`540px`,`auto`],p:0,children:[J(P,{children:[J(ft,{size:`lg`,children:[q(dt,{placeholder:`Search token`,bg:i?`#00000038`:`gray.50`,borderRadius:`xl`,height:`56px`,pl:12,value:l,onChange:e=>u(e.target.value),"data-testid":`search-token-input`}),q(pt,{h:`56px`,w:`56px`,pl:4,children:q(kr,{color:o})})]}),q(z,{spacing:2,align:`stretch`,mt:2,children:f.map(e=>{let t=Number(e.balance)>0;return q(ro,{symbol:e.symbol,amount:Number(e.balance),currencyValue:e.valueInCurrency,currentCurrency:a,onClick:()=>d(e),isDisabled:!t},e.address)})})]}),q(I,{children:r&&q(j,{variant:`vechainKitSecondary`,leftIcon:q(N,{as:wr,boxSize:4}),onClick:()=>e(`add-custom-token`),children:s(`Manage Custom Tokens`)})})]})]})},Fl=({setCurrentContent:e})=>{let{t}=Y(),n=B(`colors`,`vechain-kit-text-primary`),r=B(`colors`,`vechain-kit-text-secondary`),i=B(`colors`,`vechain-kit-card`),a=B(`colors`,`vechain-kit-overlay`),{addToken:o,removeToken:s,isTokenIncluded:c,isDefaultToken:u,customTokens:d}=ys(),{register:f,setError:m,setValue:h,formState:{errors:g,isValid:_},handleSubmit:v}=Hi({defaultValues:{newTokenAddress:``},mode:`onChange`}),y=async e=>{if(e.newTokenAddress){if(c(e.newTokenAddress)||u(e.newTokenAddress))return m(`newTokenAddress`,{type:`manual`,message:t(`Token already added`)});try{await o(e.newTokenAddress),h(`newTokenAddress`,``)}catch(e){console.error(`Error adding token 2:`,e),m(`newTokenAddress`,{type:`manual`,message:t(`Invalid token address`)})}}};return J(K,{children:[J(Z,{children:[q(L,{children:t(`Manage Custom Tokens`)}),q(Ja,{onClick:()=>e(`assets`)}),q(F,{})]}),q(P,{children:J(z,{spacing:4,align:`stretch`,position:`relative`,children:[q(A,{p:6,borderRadius:`xl`,bg:i,children:q(z,{align:`stretch`,spacing:2,children:J(it,{isInvalid:!!g.newTokenAddress,children:[q(at,{fontSize:`sm`,fontWeight:`medium`,color:n,children:t(`Token Contract Address`)}),q(dt,{...f(`newTokenAddress`,{required:t(`Address is required`),pattern:{value:/^0x[a-fA-F0-9]{40}$/,message:t(`Please enter a valid contract address`)},validate:e=>/^0x[a-fA-F0-9]{40}$/.test(e)||t(`Invalid contract address`)}),onChange:e=>{let t=e.target.value.trim();e.target.value=t,h(`newTokenAddress`,t,{shouldValidate:!0})},placeholder:`0x...`,variant:`outline`,fontSize:`md`,fontWeight:`medium`}),g.newTokenAddress&&q(R,{color:`#ef4444`,fontSize:`sm`,children:g.newTokenAddress.message})]})})}),d.length>0&&J(A,{p:4,borderRadius:`xl`,bg:a,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,mb:2,children:t(`Existing Custom Tokens`)}),q(z,{align:`stretch`,spacing:2,children:d.map(e=>J(M,{justify:`space-between`,fontSize:`sm`,p:2,borderRadius:`md`,bg:i,children:[J(M,{children:[q(ut,{src:p[e?.symbol],alt:`${e.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:q(A,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:q(R,{fontSize:`8px`,fontWeight:`bold`,color:n,children:e.symbol?.slice(0,3)})})}),q(R,{fontWeight:`medium`,color:n,children:e.symbol??`Unknown`})]}),q(R,{color:r,children:l(e.address??``,4,4)}),q(j,{size:`sm`,variant:`ghost`,color:n,borderRadius:`md`,p:2,onClick:()=>s(e.address),children:q(Ir,{size:16,color:n})})]},e.address))})]})]})}),q(I,{children:q(j,{variant:`vechainKitPrimary`,isDisabled:!_,onClick:v(y),children:t(`Add Token`)})})]})},Il=({setCurrentContent:e})=>{let{t}=Y(),{darkMode:n}=$(),{isolatedView:r}=il();return J(K,{children:[J(Z,{children:[q(L,{children:t(`Bridge`)}),!r&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),q(tt,{maxW:`container.lg`,children:q(P,{children:J(z,{spacing:6,align:`center`,w:`full`,children:[q(Oe,{isDark:n,borderRadius:`xl`}),q(R,{fontSize:`sm`,textAlign:`center`,children:t(`Exchange your digital assets between VeChain and other blockchain networks easily and securely. Swaps are executed through partners that leverage both decentralized and centralized exchanges to convert tokens.`)})]})})}),q(I,{children:J(j,{variant:`vechainKitSecondary`,onClick:()=>{window.open(`https://swap.vechain.energy/`,`_blank`)},children:[t(`Launch vechain.energy`),q(N,{as:fr,ml:2})]})})]})},Ll=({setCurrentContent:e})=>{let{t}=Y(),{currentCurrency:n,changeCurrency:r,allCurrencies:i}=ls();U(()=>{h(`settings-currency-visited`,`true`)},[]);let a=e=>J(j,{w:`full`,variant:`ghost`,justifyContent:`space-between`,onClick:()=>r(e),py:6,px:4,children:[J(M,{spacing:3,children:[q(R,{fontSize:`xl`,children:c[e]}),q(R,{children:e.toUpperCase()})]}),n===e&&q(N,{as:er,boxSize:5,color:`blue.500`})]},e);return J(Bp,{children:[J(Z,{children:[q(L,{children:t(`Select currency`)}),q(Ja,{onClick:()=>e(`general-settings`)}),q(F,{})]}),q(P,{w:`full`,children:q(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:i.map(e=>a(e))})}),q(I,{pt:0})]})},Rl=({setCurrentContent:e})=>{let{connection:t}=Q(),{t:n}=Y(),{feeDelegation:r}=$(),i=B(`colors`,`vechain-kit-text-secondary`);return J(Bp,{children:[J(Z,{children:[q(L,{children:n(`General`)}),q(Ja,{onClick:()=>e(`settings`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:[q(z,{w:`full`,justifyContent:`center`,spacing:3,mb:3,children:q(R,{fontSize:`sm`,color:i,textAlign:`center`,children:n(`Manage your preferences for currency, language, and appearance.`)})}),J(z,{w:`full`,justifyContent:`center`,spacing:0,children:[q(Gc,{title:n(`Currency`),style:{borderBottomRadius:`0px`},onClick:()=>{e(`change-currency`)},leftIcon:ur,rightIcon:rr}),q(Gc,{title:n(`Language`),style:{borderTopRadius:`0px`,...t.isConnectedWithPrivy?{borderBottomRadius:`0px`}:{}},onClick:()=>{e(`change-language`)},leftIcon:br,rightIcon:rr}),t.isConnectedWithPrivy&&!r?.delegatorUrl&&q(Gc,{title:n(`Gas Token Preferences`),style:{borderTopRadius:`0px`},onClick:()=>{e(`gas-token-settings`)},leftIcon:mr,rightIcon:rr})]}),q(Gc,{title:n(`Terms and Policies`),onClick:()=>{e({type:`terms-and-privacy`,props:{onGoBack:()=>e(`settings`)}})},leftIcon:Mr,rightIcon:rr})]})}),q(I,{pt:0})]})},zl=({setCurrentContent:e})=>{let{t,i18n:n}=Y(),r=e=>{n.changeLanguage(e)},i=e=>J(j,{w:`full`,variant:`ghost`,justifyContent:`space-between`,onClick:()=>r(e),py:6,px:4,children:[q(R,{children:ba[e]}),n.language===e&&q(N,{as:er,boxSize:5,color:`blue.500`})]},e);return J(Bp,{children:[J(Z,{children:[q(L,{children:t(`Select language`)}),q(Ja,{onClick:()=>e(`general-settings`)}),q(F,{})]}),q(P,{w:`full`,children:q(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:va.map(e=>i(e))})}),q(I,{pt:0})]})},Bl=({setCurrentContent:e})=>{let{t}=Y();return J(Bp,{children:[J(Z,{children:[q(L,{children:t(`General`)}),q(Ja,{onClick:()=>e(`general-settings`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:[q(z,{w:`full`,justifyContent:`center`,spacing:3,mb:3,children:q(R,{fontSize:`sm`,opacity:.5,textAlign:`center`,children:t(`Customize the appearance of your wallet.`)})}),q(z,{w:`full`,justifyContent:`center`,spacing:0})]})}),q(I,{pt:0})]})},Vl=({token:e,index:t,isExcluded:n,onToggleExclusion:r,onDragStart:i,onDragOver:a,onDrop:o,onTouchStart:s,onTouchMove:c,onTouchEnd:l,isDragging:u,isDraggedOver:d})=>{let p=f[e],{darkMode:m}=$(),h=B(`colors`,`vechain-kit-text-primary`),g=B(`colors`,`vechain-kit-text-secondary`),_=B(`colors`,`vechain-kit-card`);return q(A,{bg:m?`#ffffff0a`:`blackAlpha.50`,borderRadius:`md`,border:`1px`,borderColor:u?m?`blue.500`:`blue.300`:d?m?`blue.400`:`blue.200`:_,p:3,mb:2,opacity:u||n?.5:1,cursor:`move`,transition:`background-color 0.2s ease, border-color 0.2s ease`,draggable:!0,onDragStart:()=>i(t),onDragOver:e=>{e.preventDefault(),a(t)},onDrop:()=>o(t),onTouchStart:e=>s(t,e),onTouchMove:c,onTouchEnd:l,_hover:{backgroundColor:m?`#ffffff12`:`blackAlpha.200`},children:J(M,{justify:`space-between`,children:[J(M,{opacity:n?.5:1,children:[q(A,{cursor:`grab`,_active:{cursor:`grabbing`},pointerEvents:`none`,children:q(N,{as:vr,color:g})}),J(z,{align:`start`,spacing:0,children:[q(R,{fontWeight:`medium`,color:h,children:p.name}),q(R,{fontSize:`sm`,color:g,children:p.description})]})]}),q(Mt,{isChecked:!n,onChange:()=>r(e),colorScheme:`blue`,size:`sm`})]})})},Hl=({tokens:e,excludedTokens:t,onReorder:n,onToggleExclusion:r})=>{let[i,a]=G(null),[o,s]=G(null),c=Zt([]),l=Zt(0),u=e=>{a(e)},d=e=>{s(e)},f=t=>{if(i===null||i===t){a(null),s(null);return}let r=[...e],o=r[i];r.splice(i,1),r.splice(t,0,o),n(r),a(null),s(null)},p=(e,t)=>{l.current=t.touches[0].clientY,a(e)},m=e=>{if(i===null)return;let t=e.touches[0].clientY;for(let e=0;e<c.current.length;e++){let n=c.current[e];if(!n)continue;let r=n.getBoundingClientRect();if(t>=r.top&&t<=r.bottom){s(e);break}}},h=()=>{if(i!==null&&o!==null&&i!==o){let t=[...e],r=t[i];t.splice(i,1),t.splice(o,0,r),n(t)}a(null),s(null),l.current=0};return q(A,{w:`full`,children:e.map((e,n)=>q(A,{ref:e=>{c.current[n]=e},children:q(Vl,{token:e,index:n,isExcluded:t.includes(e),onToggleExclusion:r,onDragStart:u,onDragOver:d,onDrop:f,onTouchStart:p,onTouchMove:m,onTouchEnd:h,isDragging:i===n,isDraggedOver:o===n})},e))})},Ul=({setCurrentContent:e})=>{let{t}=Y(),{preferences:n,reorderTokenPriority:r,toggleTokenExclusion:i}=Fp(),a=B(`colors`,`vechain-kit-text-primary`),o=B(`colors`,`vechain-kit-text-secondary`),s=H(e=>{r(e)},[r]);return J(Bp,{children:[J(Z,{children:[q(L,{children:t(`Gas Token Preferences`)}),q(Ja,{onClick:()=>e(`general-settings`)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{justify:`center`,spacing:6,align:`flex-start`,w:`full`,children:[q(z,{w:`full`,justifyContent:`center`,spacing:3,mb:3,children:q(R,{fontSize:`sm`,color:o,textAlign:`center`,children:t(`Choose which tokens to use for transaction fees when the app is not covering them.`)})}),n.availableGasTokens.length===0&&J(Be,{status:`warning`,borderRadius:`md`,children:[q(He,{}),q(Ve,{fontSize:`sm`,color:o,children:t(`You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.`)})]}),J(z,{w:`full`,align:`start`,spacing:3,children:[q(R,{fontSize:`md`,fontWeight:`semibold`,color:a,children:t(`Token Priority Order`)}),q(R,{fontSize:`sm`,color:o,children:t(`Drag to reorder. The system will automatically use the highest priority token with sufficient balance.`)}),q(Hl,{tokens:n.tokenPriority,excludedTokens:n.excludedTokens,onReorder:s,onToggleExclusion:i})]})]})})]})},Wl=({title:e,description:t,icon:n})=>{let r=B(`colors`,`vechain-kit-text-secondary`),i=B(`colors`,`vechain-kit-text-primary`);return J(z,{spacing:6,align:`center`,py:8,children:[q(N,{as:n,boxSize:16,color:r}),J(z,{spacing:2,children:[q(R,{fontSize:`lg`,fontWeight:`500`,textAlign:`center`,color:i,children:e}),q(R,{fontSize:`md`,color:r,textAlign:`center`,px:4,children:t})]})]})},Gl=(e,t=`en-US`)=>new Intl.DateTimeFormat(t,{month:`short`,day:`numeric`}).format(new Date(e)),Kl=({document:e})=>{let{t}=Y(),n=B(`colors`,`vechain-kit-text-secondary`),r=e.documentSource===m.VECHAIN_KIT&&e.documentType===se.TERMS;return J(M,{children:[J(Nt,{size:`sm`,borderRadius:`full`,color:n,children:[`v`,e.version]}),q(R,{fontSize:`xs`,cursor:`pointer`,color:n,onClick:()=>{window.open(e.url,`_blank`)},_hover:{textDecoration:`underline`},children:r?t(`'{{policyName}}' on connect`,{policyName:e.displayName??t(`Vechain Kit Policy`)}):t(`'{{policyName}}' on {{date}}`,{policyName:e.displayName??t(`Policy`),date:Gl(e.timestamp)})})]})},ql=({title:e,description:t,documents:n,bg:r,hoverBg:i,currentPolicy:a})=>{let{t:o}=Y(),s=B(`colors`,`vechain-kit-text-primary`),c=B(`colors`,`vechain-kit-text-secondary`),l=n?.length>0,u=n?.find(e=>e.id===a?.id);return l?q(Re,{border:`none`,mb:3,children:({isExpanded:l})=>J(K,{children:[J(Le,{bg:r,borderRadius:`xl`,_hover:{bg:i},children:[J(z,{w:`full`,align:`flex-start`,textAlign:`left`,children:[q(R,{fontWeight:`700`,color:s,children:e}),q(R,{fontSize:`xs`,color:c,children:t})]}),q(N,{as:l?ir:tr,fontSize:`20px`,color:c})]}),q(ze,{pb:4,pt:3,children:J(z,{align:`stretch`,spacing:4,children:[u?.id?J(M,{w:`full`,children:[q(N,{as:er,color:s}),q(R,{fontSize:`xs`,color:c,children:o(`You accepted current policy on {{date}}`,{date:Gl(u.timestamp)})})]}):null,q(M,{w:`full`,textAlign:`left`,children:q(R,{fontSize:`xs`,fontWeight:`bold`,color:c,children:o(`All policies you have accepted`)})}),q(M,{w:`full`,gap:2,children:q(z,{align:`stretch`,spacing:2,children:n.map(e=>q(Kl,{document:e},e.id))})}),a&&q(j,{variant:`outline`,size:`xs`,alignSelf:`flex-end`,onClick:()=>{window.open(a.url,`_blank`)},children:o(`View Current Policy`)})]})})]})}):null},Jl=()=>{let{account:e}=Q(),{t}=Y(),{darkMode:n}=$(),{agreements:r,documents:i}=nm(),a=W(()=>{let t=r?.filter(t=>o(t.walletAddress,e?.address));return[{id:`vechain-kit-terms`,...E,documentType:se.TERMS,documentSource:m.VECHAIN_KIT,walletAddress:e?.address??``,timestamp:new Date().getTime()},...t]?.reduce((e,t)=>(e[t.documentType]=[...e[t.documentType]||[],t],e),{})},[r,e?.address]),s=W(()=>i.reduce((e,t)=>{let n=t.documentType;return(!e[n]||t.version>e[n].version)&&(e[n]=t),e},{}),[i]),c=W(()=>Object.values(a).some(e=>e.length>0),[a]),l=n?`whiteAlpha.50`:`blackAlpha.50`,u=n?`whiteAlpha.100`:`blackAlpha.100`;return c?q(z,{spacing:4,align:`stretch`,children:J(Ie,{allowMultiple:!0,children:[q(ql,{title:t(`Terms and Conditions`),description:t(`Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.`),documents:a[se.TERMS],bg:l,hoverBg:u,currentPolicy:s[se.TERMS]}),q(ql,{title:t(`Privacy Policy`),description:t(`Privacy policy outlining the data collection and processing practices.`),documents:a[se.PRIVACY],bg:l,hoverBg:u,currentPolicy:s[se.PRIVACY]}),q(ql,{title:t(`Cookie Policy`),description:t(`Cookie policy outlining the use of cookies and tracking technologies.`),documents:a[se.COOKIES],bg:l,hoverBg:u,currentPolicy:s[se.COOKIES]})]})}):q(Wl,{title:t(`No policies accepted`),description:t(`When you have accepted a policy, it will appear here`),icon:hr})},Yl=({onGoBack:e})=>{let{t}=Y();return J(Bp,{children:[J(Z,{children:[q(L,{children:t(`Terms and Policies`)}),q(Ja,{onClick:e}),q(F,{})]}),q(P,{w:`full`,children:q(z,{spacing:6,align:`stretch`,children:q(Jl,{})})}),q(I,{pt:0})]})},Xl=({onGoBack:e})=>{let{t}=Y(),{getConnectionCache:n}=$d(),{connection:r}=Q(),i=n();return J(Bp,{children:[J(Z,{children:[q(L,{children:t(`Connection Details`)}),q(Ja,{onClick:()=>{e()}}),q(F,{})]}),J(P,{w:`full`,children:[r.isConnectedWithCrossApp&&i&&q(sl,{connectionCache:i}),r.isConnectedWithSocialLogin&&q(ll,{}),r.isConnectedWithDappKit&&q(cl,{})]}),q(I,{pt:0})]})},Zl=({accountType:e,accountDescription:t,isLoading:n,onConfirm:r,onCancel:i})=>{let{t:a}=Y();return J(z,{spacing:6,align:`stretch`,children:[q(R,{fontSize:`md`,textAlign:`center`,color:B(`colors`,`vechain-kit-text-primary`),children:a(`Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?`,{accountType:e,accountDescription:t})}),J(z,{spacing:3,w:`full`,children:[q(j,{height:`60px`,colorScheme:`red`,w:`full`,onClick:r,isLoading:n,children:a(`Remove Login Method`)}),q(j,{isLoading:n,height:`60px`,w:`full`,onClick:i,children:a(`Cancel`)})]})]})},Ql=({onBack:e})=>{let{t}=Y(),{privy:n,dappKit:r}=$(),[i,a]=G(null),[o,s]=G(!1),[c,u]=G(!1),[d,f]=G(!1),p=B(`colors`,`vechain-kit-text-primary`),m=B(`colors`,`vechain-kit-text-secondary`),{user:h,linkEmail:g,linkGoogle:_,linkTwitter:v,linkPhone:y,linkSpotify:b,linkApple:x,linkInstagram:S,linkTiktok:C,linkGithub:w,linkLinkedIn:ee,linkTelegram:T,linkFarcaster:E,linkPasskey:D,linkDiscord:te,unlinkEmail:ne,unlinkGoogle:re,unlinkApple:O,unlinkSpotify:ie,unlinkInstagram:ae,unlinkTiktok:oe,unlinkGithub:se,unlinkLinkedIn:k,unlinkTelegram:ce,unlinkFarcaster:le,unlinkPhone:ue,unlinkPasskey:de,unlinkDiscord:fe,linkWallet:pe}=Tn(),me=W(()=>{let e=n?.loginMethods?.filter(e=>[`rabby_wallet`,`coinbase_wallet`,`rainbow`,`phantom`,`metamask`].includes(e))??[],t=r?.allowedWallets??[];return e.length>0||t.length>0},[n?.loginMethods,r?.allowedWallets]),he=e=>{switch(e){case`google_oauth`:return Vi;case`email`:return Sr;case`passkey`:return pr;case`wallet`:return Br;case`twitter_oauth`:return Ki;case`phone`:return Tr;case`spotify_oauth`:return Qi;case`apple_oauth`:return Ji;case`instagram_oauth`:return Xi;case`tiktok_oauth`:return ta;case`github_oauth`:return gr;case`linkedin_oauth`:return Zi;case`telegram`:return $i;case`farcaster`:return qi;case`discord_oauth`:return Yi;default:return}},ge=()=>{let e=h?.linkedAccounts?.filter(e=>e.type!==`wallet`||e.type===`wallet`&&e.connectorType!==`embedded`);return e&&e?.length>1},_e=async e=>{if(ge()){f(!0);try{switch(e.type){case`google_oauth`:await re(e.subject);break;case`email`:await ne(e.address);break;case`passkey`:await de(e.subject);break;case`phone`:await ue(e.number);break;case`spotify_oauth`:await ie(e.subject);break;case`apple_oauth`:await O(e.subject);break;case`instagram_oauth`:await ae(e.subject);break;case`tiktok_oauth`:await oe(e.subject);break;case`github_oauth`:await se(e.subject);break;case`linkedin_oauth`:await k(e.subject);break;case`telegram`:await ce(e.subject);break;case`farcaster`:await le(e.subject);break;case`discord_oauth`:await fe(e.subject);break;default:break}}catch(e){console.error(e)}finally{f(!1),a(null)}}},ve=e=>{switch(e.type){case`google_oauth`:return e.email;case`email`:return e.address;case`passkey`:return`${e.authenticatorName} - ${e.createdWithBrowser}`;case`phone`:return e.number;case`wallet`:return`${l(e.address)} - ${e.walletClientType}`;default:return``}},ye=h?.linkedAccounts?.map(e=>e.type)||[],be=n?.loginMethods||[],xe=!ye.includes(`google_oauth`)&&be.includes(`google`),Se=!ye.includes(`email`)&&be.includes(`email`),Ce=!ye.includes(`twitter_oauth`)&&be.includes(`twitter`),we=!ye.includes(`phone`)&&be.includes(`sms`),Te=!ye.includes(`spotify_oauth`)&&be.includes(`spotify`),Ee=!ye.includes(`apple_oauth`)&&be.includes(`apple`),De=!ye.includes(`instagram_oauth`)&&be.includes(`instagram`),Oe=!ye.includes(`tiktok_oauth`)&&be.includes(`tiktok`),ke=!ye.includes(`github_oauth`)&&be.includes(`github`),Ae=!ye.includes(`linkedin_oauth`)&&be.includes(`linkedin`),je=!ye.includes(`telegram`)&&be.includes(`telegram`),Me=!ye.includes(`farcaster`)&&be.includes(`farcaster`),Ne=!ye.includes(`discord_oauth`)&&be.includes(`discord`);return o?J(Bp,{children:[J(Z,{children:[q(L,{children:t(`Select Additional Login Method`)}),q(Ja,{onClick:()=>s(!1)}),q(F,{})]}),q(P,{w:`full`,children:J(z,{spacing:3,align:`stretch`,w:`full`,children:[q(Gc,{title:t(`Set up Passkey`),description:t(`Set up a passkey for easier access`),onClick:()=>D(),leftIcon:pr}),xe&&q(Gc,{title:t(`Link Google Account`),description:t(`Connect your Google account for easier access`),onClick:()=>_(),leftIcon:Vi}),Se&&q(Gc,{title:t(`Link Email Account`),description:t(`Connect your email for easier access`),onClick:()=>g(),leftIcon:Sr,stacked:!0}),Ce&&q(Gc,{title:t(`Link Twitter Account`),description:t(`Connect your Twitter account for easier access`),onClick:()=>v(),leftIcon:Ki}),we&&q(Gc,{title:t(`Link Phone Number`),description:t(`Connect your phone number for easier access`),onClick:()=>y(),leftIcon:Tr}),Te&&q(Gc,{title:t(`Link Spotify Account`),description:t(`Connect your Spotify account for easier access`),onClick:()=>b(),leftIcon:Qi}),Ee&&q(Gc,{title:t(`Link Apple Account`),description:t(`Connect your Apple account for easier access`),onClick:()=>x(),leftIcon:Ji}),De&&q(Gc,{title:t(`Link Instagram Account`),description:t(`Connect your Instagram account for easier access`),onClick:()=>S(),leftIcon:Xi}),Oe&&q(Gc,{title:t(`Link Tiktok Account`),description:t(`Connect your Tiktok account for easier access`),onClick:()=>C(),leftIcon:ta}),ke&&q(Gc,{title:t(`Link Github Account`),description:t(`Connect your Github account for easier access`),onClick:()=>w(),leftIcon:gr}),Ae&&q(Gc,{title:t(`Link LinkedIn Account`),description:t(`Connect your LinkedIn account for easier access`),onClick:()=>ee(),leftIcon:Zi}),je&&q(Gc,{title:t(`Link Telegram Account`),description:t(`Connect your Telegram account for easier access`),onClick:()=>T(),leftIcon:$i}),Me&&q(Gc,{title:t(`Link Farcaster Account`),description:t(`Connect your Farcaster account for easier access`),onClick:()=>E(),leftIcon:qi}),Ne&&q(Gc,{title:t(`Link Discord Account`),description:t(`Connect your Discord account for easier access`),onClick:()=>te(),leftIcon:Yi}),me&&q(Gc,{title:t(`Link External Wallet`),description:t(`Connect an external wallet for easier access`),onClick:()=>pe(),leftIcon:Br}),!xe&&!Se&&!Ce&&!we&&!Te&&!Ee&&!De&&!Oe&&!ke&&!Ae&&!je&&!Me&&!Ne&&q(R,{fontSize:`sm`,textAlign:`center`,opacity:.7,children:t(`No additional accounts available to link`)})]})}),q(I,{pt:0})]}):i?J(Bp,{children:[J(Z,{children:[q(L,{children:t(`Remove Login Method`)}),q(Ja,{onClick:()=>a(null)}),q(F,{})]}),q(P,{children:q(Zl,{accountType:i.type,accountDescription:ve(i),isLoading:d,onConfirm:()=>_e(i),onCancel:()=>a(null)})}),q(I,{pt:0})]}):J(Bp,{children:[J(Z,{children:[q(L,{children:t(`Login methods`)}),q(Ja,{onClick:e}),q(F,{})]}),q(P,{w:`full`,children:J(z,{spacing:3,align:`center`,w:`full`,justify:`center`,children:[J(z,{spacing:1,justify:`flex-start`,alignItems:`flex-start`,mb:5,textAlign:`left`,w:`full`,children:[q(R,{fontSize:`sm`,color:m,children:t(`These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.`)}),c&&q(R,{fontSize:`sm`,color:m,children:t(`Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.`)}),q(j,{variant:`link`,mt:0,size:`sm`,onClick:()=>u(!c),color:p,children:t(c?`Show Less`:`Read More`)})]}),h?.linkedAccounts?.filter(e=>e.type!==`wallet`||e.type===`wallet`&&e.connectorType!==`embedded`).map(e=>J(rt,{p:4,borderWidth:`1px`,borderRadius:`md`,align:`center`,justify:`space-between`,w:`full`,children:[J(rt,{align:`center`,gap:3,children:[q(N,{as:he(e.type),color:p}),J(z,{align:`start`,spacing:0,children:[q(R,{fontWeight:`500`,color:p,children:e.type===`google_oauth`?t(`Google`):e.type===`email`?t(`Email`):e.type===`passkey`?t(`Passkey`):e.type===`twitter_oauth`?t(`Twitter`):e.type===`phone`?t(`Phone Number`):e.type===`spotify_oauth`?t(`Spotify`):e.type===`apple_oauth`?t(`Apple`):e.type===`instagram_oauth`?t(`Instagram`):e.type===`tiktok_oauth`?t(`Tiktok`):e.type===`github_oauth`?t(`Github`):e.type===`linkedin_oauth`?t(`LinkedIn`):e.type===`telegram`?t(`Telegram`):e.type===`farcaster`?t(`Farcaster`):e.type===`discord_oauth`?t(`Discord`):t(`Wallet`)}),q(R,{fontSize:`sm`,color:m,children:ve(e)})]})]}),q(j,{size:`sm`,variant:`ghost`,colorScheme:`red`,isDisabled:!ge(),onClick:()=>{e.type===`passkey`?D():a(e)},children:t(`Remove`)})]},e.type))]})}),q(I,{w:`full`,children:q(j,{w:`full`,variant:`vechainKitPrimary`,onClick:()=>s(!0),leftIcon:q(N,{as:Er}),isDisabled:!xe&&!Se&&!Ce&&!we&&!Te&&!Ee&&!De&&!Oe&&!ke&&!Ae&&!je&&!Me&&!Ne,children:t(`Add Login Method`)})})]})},$l=[{id:`welcome`,title:`Welcome to the VeChain`,description:`Welcome! Here you can manage your wallet, send tokens, and interact with the VeChain blockchain and its applications.`,timestamp:Date.now(),status:`success`,isRead:!1}],eu=()=>{let{t:e}=Y(),{account:t,connection:n,smartAccount:r}=Q(),{addNotification:i,getNotifications:a}=tu(),{data:o}=Yf(r?.address??``,3);U(()=>{if(!n.isConnectedWithPrivy||!t?.address)return;let r=a(),s=`smart_account_upgrade_${t.address.toLowerCase()}`;!r.some(e=>e.id===s)&&o&&i({id:s,title:e(`Account Upgrade Required`),description:e(`A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.`),status:`warning`})},[n.isConnectedWithPrivy,t?.address,o]),U(()=>{!n.isConnectedWithPrivy||!t?.address||a().some(e=>e.id===`smart_account_${t.address.toLowerCase()}`)||i({id:`smart_account_${t.address.toLowerCase()}`,title:e(`Smart Account detected`),description:e(`You have an active smart account associated to this wallet. It has been set as your main identity.`),status:`info`})},[n.isConnectedWithPrivy,t?.address]),U(()=>{if(!n.isConnectedWithPrivy||!t?.address)return;let r=a(),o=r.some(e=>e.id===`multiclause_warning_${t.address.toLowerCase()}`),s=r.some(e=>e.id===`multiclause_support_${t.address.toLowerCase()}`);o&&!s&&i({id:`multiclause_support_${t.address.toLowerCase()}`,title:e(`Multiclause Transactions Are Now Supported`),description:e(`Good news! Multiclause transactions are now fully supported for smart accounts. You can now enjoy a better user experience, lower gas costs, and enchanced security.`),status:`info`})},[n.isConnectedWithPrivy,t?.address])},tu=()=>{let{account:e}=Q(),t=H(e=>{let t=e?.toLowerCase();return{notifications:`vechain_kit_notifications_${t}`,archived:`vechain_kit_archived_notifications_${t}`,initialized:`vechain_kit_notifications_initialized_${t}`}},[]),n=H(()=>{if(!e?.address||!y())return;let n=t(e.address);w(n.initialized)||(h(n.notifications,JSON.stringify($l)),h(n.initialized,`true`))},[e?.address,t]);U(()=>{n()},[n]);let r=H(()=>{if(!e?.address||!y())return[];let n=w(t(e.address).notifications);return n?JSON.parse(n):[]},[e?.address,t]),i=H(()=>{if(!e?.address||!y())return[];let n=w(t(e.address).archived);return n?JSON.parse(n):[]},[e?.address,t]),a=H(n=>{if(!e?.address||!y())return;let i=t(e.address),a=r(),o=w(i.archived),s=o?JSON.parse(o):[];if([...a,...s].some(e=>e.title===n.title))return;let c={...n,id:n.id||Math.random().toString(36).substring(7),timestamp:Date.now(),isRead:!1};h(i.notifications,JSON.stringify([c,...a]))},[e?.address,r,t]),o=H(n=>{if(!e?.address||!y())return;let i=t(e.address),a=r().filter(e=>e.id!==n);h(i.notifications,JSON.stringify(a))},[e?.address,r,t]);return{getNotifications:r,getArchivedNotifications:i,addNotification:a,clearAllNotifications:H(()=>{if(!e?.address||!y())return;let n=t(e.address),a=r();h(n.archived,JSON.stringify([...i(),...a])),h(n.notifications,JSON.stringify([]))},[e?.address,r,i,t]),markAsRead:H(n=>{if(!e?.address||!y())return;let a=t(e.address),o=r(),s=i(),c=o.find(e=>e.id===n),l=o.filter(e=>e.id!==n);if(c){let e=[{...c,isRead:!0},...s];h(a.notifications,JSON.stringify(l)),h(a.archived,JSON.stringify(e))}},[e?.address,r,i,t]),deleteNotification:o}},nu=({showArchived:e})=>{let{t}=Y();return q(Wl,{title:t(e?`No archived notifications`:`No notifications`),description:t(e?`Cleared notifications will appear here`:`When you have notifications, they will appear here`),icon:e?Hn:Xn})},ru=({notification:e,isArchiveView:t,onMarkAsRead:n})=>{let{t:r}=Y(),i=()=>{n(e.id)};return e.isRead&&!t?null:J(Be,{status:e.status,variant:`subtle`,borderRadius:`lg`,pr:8,position:`relative`,opacity:e.isRead?.7:1,cursor:`pointer`,_hover:{opacity:.8},"data-testid":`notification-item`,children:[q(He,{boxSize:`16px`}),J(A,{children:[q(Ue,{fontSize:`sm`,"data-testid":`notification-title`,children:r(e.title)}),q(Ve,{fontSize:`xs`,lineHeight:`1.2`,"data-testid":`notification-text`,children:r(e.description)})]}),!t&&!e.isRead&&q(lt,{position:`absolute`,right:1,top:1,size:`sm`,variant:`ghost`,icon:q(cr,{}),onClick:e=>{e.stopPropagation(),i()},"aria-label":`Mark as read and archive`,"data-testid":`remove-notification-button`})]},e.id)},iu=({setCurrentContent:e})=>{let{t}=Y(),{isolatedView:n}=il(),{getNotifications:r,getArchivedNotifications:i,clearAllNotifications:a,markAsRead:o}=tu(),[s,c]=G(!1),[l,u]=G(r()),[d,f]=G(i()),p=()=>{a(),f([...d,...l]),u([])},m=e=>{o(e);let t=l.find(t=>t.id===e);u(l.filter(t=>t.id!==e)),t&&f([{...t,isRead:!0},...d])},h=()=>{c(!s)},g=s?d:l,_=[...g].sort((e,t)=>e.id===`welcome`?-1:t.id===`welcome`?1:e.id===`smart-account`?-1:t.id===`smart-account`?1:e.id===`multiclause`?-1:t.id===`multiclause`?1:t.timestamp-e.timestamp);return J(Bp,{children:[J(Z,{children:[!n&&q(Ja,{onClick:()=>e(`main`)}),q(L,{"data-testid":`modal-title`,children:t(s?`Archived Notifications`:`Notifications`)}),q(F,{})]}),J(tt,{h:[`540px`,`auto`],p:0,children:[q(P,{children:J(z,{spacing:4,align:`stretch`,w:`full`,children:[J(M,{justify:`space-between`,children:[q(j,{variant:`ghost`,leftIcon:q(N,{as:s?Xn:Hn}),size:`sm`,onClick:h,"data-testid":`toggle-view-button`,children:t(s?`Current`:`Archived`)}),!s&&l.length>0&&q(j,{variant:`ghost`,size:`sm`,onClick:p,"data-testid":`clear-all-button`,children:t(`Clear all`)})]}),g.length===0?q(nu,{showArchived:s}):q(z,{spacing:3,children:_.map(e=>q(ru,{notification:e,isArchiveView:s,onMarkAsRead:m},e.id))})]})}),q(I,{pt:0})]})]})},au=e=>{switch(e){case`defi`:return`blue`;case`games`:return`green`;case`collectibles`:return`purple`;case`marketplaces`:return`orange`;case`utilities`:return`cyan`;default:return`gray`}},ou=({category:e,...t})=>{let{t:n}=Y(),r=e.toLowerCase();return q(Nt,{size:`sm`,colorScheme:au(r),borderRadius:`full`,px:2,...t,children:n(r)})},su=({name:e,imageUrl:t,logoComponent:n,category:r,onClick:i,size:a=`md`})=>J(Ge,{variant:`vechainKitAppCard`,_hover:{opacity:.8},cursor:`pointer`,onClick:i,position:`relative`,children:[r&&q(A,{position:`absolute`,top:`2`,right:`2`,zIndex:`1`,children:q(ou,{category:r})}),q(Ke,{p:a===`sm`?2:4,alignItems:`center`,children:J(z,{spacing:2,h:`100%`,justifyContent:`space-between`,children:[n||t&&q(ut,{src:t,fallbackSrc:te,alt:e,height:`90px`,objectFit:`contain`,rounded:`full`}),e&&q(R,{fontWeight:`medium`,wordBreak:`break-word`,noOfLines:1,textAlign:`center`,w:`full`,children:e})]})})]}),cu=({xApp:e,setCurrentContent:t,selectedCategory:n})=>{let{data:r,isLoading:i}=qs(e.id),{data:a,isLoading:o}=ec(r?.logo);return q(kt,{isLoaded:!i&&!o,borderRadius:`md`,height:`100%`,children:q(su,{name:r?.name??``,imageUrl:a?.image??``,linkUrl:r?.external_url??``,category:`vebetter`,onClick:()=>{r?.name&&t({type:`app-overview`,props:{name:r.name,image:a?.image??``,url:r?.external_url??``,description:r?.description??``,category:`vebetter`,selectedCategory:n,setCurrentContent:t}})}})})},lu=({name:e,image:t,url:n,description:r,category:i,logoComponent:a,selectedCategory:o,setCurrentContent:s})=>q(su,{name:e,imageUrl:t,linkUrl:n,category:i,onClick:()=>{s({type:`app-overview`,props:{name:e,image:t,url:n,description:r,category:i,logoComponent:a,selectedCategory:o,setCurrentContent:s}})},...a&&{logoComponent:a}}),uu=({})=>{let{t:e}=Y(),{shortcuts:t}=Dp();return t.length===0?null:J(z,{w:`full`,align:`flex-start`,spacing:2,children:[q(R,{fontSize:`sm`,fontWeight:`500`,children:e(`Shortcuts`)}),q(ot,{templateColumns:`repeat(4, 1fr)`,gap:2,w:`full`,children:t.map(e=>q(st,{children:q(Ge,{_hover:{opacity:.8},cursor:`pointer`,onClick:()=>window.open(e.url,`_blank`),children:q(Ke,{p:2,alignItems:`center`,children:q(ut,{src:e.image,fallbackSrc:te,alt:e.name,objectFit:`contain`,rounded:`full`})})})},e.url))})]})},du=({selectedCategory:e,onCategoryChange:t,categories:n,darkMode:r})=>{let{t:i}=Y();return J(A,{width:`full`,mb:4,children:[q(R,{fontSize:`sm`,fontWeight:`500`,mb:2,children:i(`Filter by category`)}),J(It,{spacing:2,children:[q(Lt,{children:q(Nt,{size:`md`,borderRadius:`full`,variant:e===null?`solid`:`outline`,colorScheme:r?`gray`:`blackAlpha`,cursor:`pointer`,onClick:()=>t(null),children:i(`All`)})}),n.map(n=>q(Lt,{children:q(ou,{category:n,size:`md`,variant:e===n?`solid`:`outline`,cursor:`pointer`,onClick:()=>t(n)})},n))]})]})},fu=[{name:`VeBetterDAO`,description:`Engage, earn and prosper by doing sustainable actions.`,external_url:`https://governance.vebetterdao.org/`,logo:`https://i.ibb.co/cgJBj83/vbd.png`,banner:`https://i.ibb.co/cgJBj83/vbd.png`,screenshots:[],social_urls:[],app_urls:[],tweets:[],ve_world:{banner:`https://i.ibb.co/cgJBj83/vbd.png`},categories:[]},{name:`vet.domains`,description:`.vet.domains provides a unique and unchangeable identity for Vechain users by linking information to their wallet addresses. It becomes easier for people to use the blockchain by replacing complicated wallet addresses with easy-to-remember names.`,external_url:`https://vet.domains`,logo:`https://vet.domains/assets/walletconnect.png`,banner:`https://vet.domains/assets/walletconnect.png`,screenshots:[],social_urls:[],app_urls:[],tweets:[],ve_world:{banner:`https://vet.domains/assets/walletconnect.png`},categories:[]}],pu=({setCurrentContent:e,selectedCategory:t})=>{let{t:n}=Y(),{darkMode:r,network:i}=$(),{isolatedView:a}=il(),o=B(`colors`,`vechain-kit-text-tertiary`),[s,c]=G(``),[l,u]=G(t||null);U(()=>{t!==void 0&&u(t)},[t]);let{data:d}=hs(),{data:f}=Ls(d?(parseInt(d)-1).toString():`1`),{data:p,isLoading:m,error:h}=sf(),g=W(()=>{let e=new Set;return i.type===`main`&&f&&f.length>0&&e.add(`vebetter`),p&&p.forEach(t=>{t.category&&e.add(t.category)}),Array.from(e).sort()},[p,f,i.type]),_=i.type===`main`?f.filter(e=>e.app.name.toLowerCase().includes(s.toLowerCase())):[],v=fu.filter(e=>e.name.toLowerCase().includes(s.toLowerCase())),y=p?.filter(e=>(e.name.toLowerCase().includes(s.toLowerCase())||e.description.toLowerCase().includes(s.toLowerCase())||e.tags.some(e=>e.toLowerCase().includes(s.toLowerCase())))&&(l===null||e.category===l))||[],b=l===null,x=l===null||l===`vebetter`,{shortcuts:S}=Dp();return J(A,{children:[J(Z,{children:[q(L,{children:n(`Ecosystem`)}),!a&&q(Ja,{onClick:()=>e(`main`)}),q(F,{})]}),q(P,{overflowY:`auto`,minH:`300px`,children:J(z,{spacing:6,w:`full`,children:[q(uu,{setCurrentContent:e}),S.length>0&&q(R,{fontSize:`sm`,fontWeight:`500`,w:`full`,textAlign:`left`,children:n(`All apps`)}),J(ft,{size:`lg`,children:[q(dt,{placeholder:n(`Search Apps`),value:s,onChange:e=>{c(e.target.value)},bg:r?`#00000038`:`gray.50`,borderRadius:`xl`,height:`56px`,pl:12}),q(pt,{h:`56px`,w:`56px`,pl:4,children:q(kr,{color:o})})]}),g.length>0&&q(du,{selectedCategory:l,onCategoryChange:e=>{u(e)},categories:g,darkMode:r}),J(ot,{templateColumns:`repeat(2, 1fr)`,gap:4,w:`full`,children:[b&&v.length>0&&q(K,{children:v.map(t=>q(st,{children:q(lu,{name:t.name,image:t.logo,url:t.external_url,setCurrentContent:e,description:t.description,selectedCategory:l})},t.name))}),x&&_.length>0&&q(K,{children:_.map(t=>q(st,{children:q(cu,{xApp:t.app,setCurrentContent:e,selectedCategory:l})},t.id))}),m?q(st,{colSpan:2,children:q(Ye,{py:4,children:q(At,{})})}):h?q(st,{colSpan:2,children:q(R,{color:`red.500`,textAlign:`center`,children:n(`Failed to load App Hub apps`)})}):y.length>0?y.map(t=>q(st,{children:q(lu,{name:t.name,image:t.logo,url:t.url,setCurrentContent:e,description:t.description,category:t.category,selectedCategory:l})},t.id)):l&&!x&&q(st,{colSpan:2,children:q(Ye,{py:4,children:q(R,{children:n(`No apps found in this category`)})})})]})]})}),q(I,{pt:0})]})},mu=({name:e,image:t,url:n,description:r})=>{let{t:i}=Y(),{isShortcut:a,addShortcut:o,removeShortcut:s}=Dp(),c=a(n);return q(j,{px:4,width:`full`,height:`45px`,variant:`vechainKitSecondary`,borderRadius:`xl`,onClick:()=>{c?s(n):o({name:e,image:t,url:n,description:r})},leftIcon:q(N,{as:c?Qn:Zn}),children:i(c?`Remove from shortcuts`:`Add to shortcuts`)})},hu=({setCurrentContent:e,name:t,image:n,url:r,description:i,category:a,selectedCategory:o,logoComponent:s})=>{let{t:c}=Y();return J(A,{children:[J(Z,{children:[q(L,{children:t}),q(Ja,{onClick:()=>{e(o?{type:`ecosystem-with-category`,props:{selectedCategory:o,setCurrentContent:e}}:`ecosystem`)}}),q(F,{})]}),q(P,{children:J(z,{spacing:6,align:`center`,w:`full`,children:[J(rt,{direction:`column`,align:`center`,children:[s||q(ut,{src:n,alt:t,w:`200px`,h:`200px`,objectFit:`contain`,borderRadius:`xl`}),a&&q(M,{mt:2,children:q(ou,{category:a})})]}),q(R,{fontSize:`sm`,textAlign:`center`,children:i}),q(R,{fontSize:`sm`,textAlign:`center`,children:c(`Click below to access {{ name }} and explore its features.`,{name:t})})]})}),q(I,{children:J(z,{w:`full`,spacing:4,children:[J(j,{variant:`vechainKitSecondary`,onClick:()=>{window.open(r,`_blank`)},children:[c(`Launch {{name}}`,{name:t}),q(N,{as:fr,ml:2})]}),q(mu,{name:t,image:n,url:r,description:i})]})})]})},gu=({children:e})=>q(Vn.div,{whileHover:{scale:1.1},transition:{duration:.5,ease:`easeInOut`,repeat:1/0,repeatDelay:crypto.getRandomValues(new Uint32Array(1))[0]/2**32*5},animate:{y:[0,-2,0],rotate:[0,10,-10,0]},children:e}),_u=({descriptionEncoded:e})=>{let{darkMode:t}=$();return J(M,{gap:2,children:[q(gu,{children:q(ht,{href:`https://twitter.com/intent/tweet?text=${e}`,isExternal:!0,children:q(A,{bg:t?`blackAlpha.700`:`lightgrey`,p:2,borderRadius:`full`,children:q(Ki,{size:22})})})}),q(gu,{children:q(ht,{href:`https://telegram.me/share/url?url=${e}`,isExternal:!0,children:q(A,{bg:`#30abec`,p:2,borderRadius:`full`,children:q(ea,{color:`white`,size:22})})})}),q(gu,{children:q(ht,{href:`https://wa.me/?text=${e}`,isExternal:!0,children:q(A,{bg:`#01cb37`,p:2,borderRadius:`full`,children:q(na,{size:22,color:`white`})})})})]})},vu=({status:e,uiConfig:t,onTryAgain:n,txReceipt:r,txError:i,onClose:a})=>{let{t:o}=Y(),{network:s}=$(),c=B(`colors`,`vechain-kit-error`),l=B(`colors`,`vechain-kit-success`),u=B(`colors`,`vechain-kit-text-primary`),d=B(`colors`,`vechain-kit-text-secondary`),f=W(()=>i?i.reason||o(`Something went wrong. Please try again.`):null,[i,o]),p=(()=>{let n=e===`waitingConfirmation`;switch(n&&(e=`pending`),e){case`pending`:return{title:t?.title??o(n?`Sending Transaction...`:`Waiting for confirmation`),icon:t?.loadingIcon??q(At,{size:`xl`,"data-testid":`pending-spinner-modal`}),description:n?o(`Transaction is being processed, it can take up to 15 seconds.`):t?.description??o(`Please confirm the transaction in your wallet.`)};case`error`:return{title:o(`Something went wrong`),icon:t?.errorIcon??q(N,{as:ar,color:c,fontSize:`100px`,"data-testid":`error-icon-modal`}),description:f??o(`An unexpected error occurred.`)};case`success`:return{title:o(`Transaction successful!`),icon:t?.successIcon??q(N,{as:or,color:l,fontSize:`100px`,"data-testid":`success-icon-modal`}),description:``};case`ready`:return{title:t?.title??o(`Confirm transaction`),icon:null,description:t?.description??o(`Confirm the transaction in your wallet to complete it.`)};default:return{title:``,icon:null,description:``}}})(),m=`${k(s.type).explorerUrl}/${r?.meta.txID}`;return J(A,{children:[J(Z,{children:[q(L,{children:p.title}),q(F,{isDisabled:e===`pending`&&!t?.isClosable})]}),q(P,{children:J(z,{align:`center`,p:6,spacing:3,children:[p.icon,e===`success`&&t?.showShareOnSocials&&J(z,{mt:2,spacing:3,children:[q(R,{fontSize:`sm`,fontWeight:`bold`,color:d,children:o(`Share on`)}),q(_u,{descriptionEncoded:m})]}),p.description&&q(R,{fontSize:e===`ready`?`md`:`sm`,textAlign:`center`,color:e===`error`?c:u,mt:5,style:{lineBreak:`anywhere`},children:p.description})]})}),q(I,{justifyContent:`center`,children:J(z,{width:`full`,spacing:4,children:[e===`error`&&!!n&&J(j,{variant:`vechainKitPrimary`,onClick:n,width:`full`,children:[q(N,{mr:2,as:Dr}),o(`Try again`)]}),e===`ready`&&q(j,{onClick:n,variant:`vechainKitPrimary`,width:`full`,children:o(`Confirm`)}),(e===`success`||e===`error`||e===`ready`)&&q(j,{onClick:a,variant:`vechainKitSecondary`,width:`full`,children:o(`Close`)}),t?.showExplorerButton&&r?.meta.txID&&q(ht,{href:`${k(s.type).explorerUrl}/${r?.meta.txID}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:J(M,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[q(R,{color:d,children:o(`View transaction on the explorer`)}),q(N,{size:`sm`,as:fr,color:d})]})})]})})]})},yu=({isOpen:e,onClose:t,status:n,uiConfig:r,txReceipt:i,txError:a,onTryAgain:o})=>q($a,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,closeOnOverlayClick:n!==`pending`&&r?.isClosable,children:q(vu,{status:n,onTryAgain:o,uiConfig:r,txReceipt:i,onClose:t,txError:a})}),bu=({txId:e,title:t,description:n,onDone:r,showSocialButtons:i=!1})=>{let{t:a}=Y(),{network:o}=$(),s=k(o.type).explorerUrl,c=`${s}/${e}`,l=B(`colors`,`vechain-kit-success`),u=B(`colors`,`vechain-kit-text-primary`),d=B(`colors`,`vechain-kit-text-secondary`);return J(A,{children:[J(Z,{children:[q(L,{children:t}),q(F,{})]}),q(P,{children:J(z,{align:`center`,p:6,spacing:3,children:[q(N,{as:or,fontSize:`100px`,color:l,"data-testid":`success-icon`}),n&&q(R,{fontSize:`sm`,textAlign:`center`,color:u,children:n}),i&&e&&J(z,{mt:2,spacing:3,children:[q(R,{fontSize:`sm`,fontWeight:`bold`,color:d,children:a(`Share on`)}),q(_u,{descriptionEncoded:c})]})]})}),q(I,{justifyContent:`center`,children:J(z,{width:`full`,spacing:4,children:[q(j,{onClick:r,variant:`vechainKitSecondary`,width:`full`,children:a(`Done`)}),e&&q(ht,{href:`${s}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:J(M,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[q(R,{color:d,children:a(`View transaction on the explorer`)}),q(N,{size:16,as:fr})]})})]})})]})},xu=({txId:e,title:t,description:n,onDone:r})=>{let{t:i}=Y(),{network:a,darkMode:o}=$(),s=k(a.type).explorerUrl;return J(A,{children:[J(Z,{children:[q(L,{children:t}),q(F,{})]}),q(P,{children:J(z,{align:`center`,p:6,spacing:3,children:[q(N,{as:ar,fontSize:`100px`,color:o?`red.400`:`red.500`,"data-testid":`error-icon`}),n&&q(R,{fontSize:`sm`,textAlign:`center`,children:n})]})}),q(I,{justifyContent:`center`,children:J(z,{width:`full`,spacing:4,children:[q(j,{onClick:r,variant:`vechainKitSecondary`,width:`full`,children:i(`Done`)}),e&&q(ht,{href:`${s}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:J(M,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[q(R,{children:i(`View transaction on the explorer`)}),q(N,{size:16,as:fr})]})})]})})]})},Su=({isOpen:e,onClose:t,initialContent:n=`main`})=>{eu();let{account:r}=Q(),{accountModalContent:i,setAccountModalContent:a}=pd();return U(()=>{e&&n&&a(n)},[e,n,a]),q($a,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,children:(()=>{if(typeof i==`object`)switch(i.type){case`send-token`:return q(ml,{...i.props});case`send-token-summary`:return q(hl,{...i.props});case`swap-token`:return q(bl,{...i.props});case`choose-name`:return q(xl,{...i.props});case`choose-name-search`:return q(Tl,{...i.props});case`choose-name-summary`:return q(El,{...i.props});case`app-overview`:return q(hu,{...i.props,setCurrentContent:a});case`disconnect-confirm`:return q(fl,{...i.props});case`account-customization`:return q(kl,{...i.props});case`account-customization-summary`:return q(Al,{...i.props});case`successful-operation`:return q(bu,{...i.props});case`failed-operation`:return q(xu,{...i.props});case`upgrade-smart-account`:return q(Nl,{...i.props});case`faq`:return q(Ol,{...i.props});case`terms-and-privacy`:return q(Yl,{...i.props});case`ecosystem-with-category`:return q(pu,{setCurrentContent:a,selectedCategory:i.props.selectedCategory})}switch(i){case`main`:return q(Uc,{setCurrentContent:a,onClose:t,wallet:r});case`settings`:return q(al,{setCurrentContent:a,onLogoutSuccess:()=>{t()}});case`profile`:return q(Ml,{setCurrentContent:a,onLogoutSuccess:()=>{t()}});case`assets`:return q(Pl,{setCurrentContent:a});case`bridge`:return q(Il,{setCurrentContent:a});case`notifications`:return q(iu,{setCurrentContent:a});case`access-and-security`:return q(rl,{setCurrentContent:a});case`receive-token`:return q(gl,{setCurrentContent:a});case`swap-token`:return q(bl,{setCurrentContent:a});case`connection-details`:return q(Xl,{onGoBack:()=>a(`settings`)});case`privy-linked-accounts`:return q(Ql,{onBack:()=>a(`access-and-security`)});case`ecosystem`:return q(pu,{setCurrentContent:a});case`embedded-wallet`:return q(dl,{setCurrentContent:a});case`add-custom-token`:return q(Fl,{setCurrentContent:a});case`change-currency`:return q(Ll,{setCurrentContent:a});case`general-settings`:return q(Rl,{setCurrentContent:a});case`change-language`:return q(zl,{setCurrentContent:a});case`appearance-settings`:return q(Bl,{setCurrentContent:a});case`gas-token-settings`:return q(Ul,{setCurrentContent:a});default:return null}})()})},Cu=({isOpen:e,onClose:t})=>{let[n,r]=G(`main`);return U(()=>{e&&r(`main`)},[e]),q($a,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,children:(()=>{switch(n){case`main`:return q(Vc,{setCurrentContent:r,onClose:t});case`faq`:return q(Ol,{onGoBack:()=>r(`main`)})}})()})},wu=({onClick:e,text:t,icon:n,customIcon:r,rightIcon:i,style:a,variant:o=`loginIn`,iconWidth:s=`25px`})=>t?t?J(j,{...a,variant:o,w:`full`,onClick:e,children:[J(M,{w:`full`,justify:`flex-start`,gap:2,children:[r||q(N,{as:n,w:s,h:s}),q(R,{opacity:.9,children:t})]}),i]}):null:q(j,{...a,variant:o,w:`full`,onClick:e,children:r||q(N,{as:n,w:`20px`,h:`20px`})}),Tu=({isLoading:e,buttonStyle:t})=>{let{t:n}=Y(),{loginMethods:r,darkMode:i,privyEcosystemAppIDS:a}=$(),o=r?.some(({method:e})=>e===`ecosystem`),{data:s,isLoading:c}=oo(a);return q(Ct,{placement:`bottom-start`,size:`xl`,closeOnBlur:!1,variant:`vechainKitBase`,children:({isOpen:r})=>J(K,{children:[q(Dt,{children:J(j,{isLoading:e,...t,isActive:r,children:[n(`Login`),q(N,{ml:2,as:tr,transform:r?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 0.2s`})]})}),J(Tt,{children:[q(wt,{children:q(zc,{})}),q(Et,{borderTop:`none`,pb:`15px`,children:o&&q(M,{justify:`center`,w:`full`,children:q(Bc,{isDark:i,appsInfo:Object.values(s||{}),isLoading:c})})})]})]})})},Eu=({variant:e})=>{let{account:t}=Q();return t?e===`icon`?null:e===`iconAndDomain`?t.domain?q(R,{fontSize:`sm`,children:d(t?.domain??``,16,0)}):q(R,{fontSize:`sm`,children:l(t.address??``,6,4)}):e===`iconDomainAndAssets`?J(M,{spacing:4,children:[J(z,{spacing:0,alignItems:`flex-start`,children:[t.domain&&q(R,{fontSize:`sm`,fontWeight:`bold`,children:d(t?.domain??``,16,0)}),q(R,{fontSize:t.domain?`xs`:`sm`,opacity:t.domain?.5:1,"data-testid":`trimmed-address`,children:l(t.address??``,4,4)})]}),q(qc,{address:t.address??``,maxIcons:3})]}):J(z,{spacing:0,alignItems:`flex-start`,children:[t.domain&&q(R,{fontSize:`sm`,fontWeight:`bold`,children:d(t?.domain??``,16,0)}),q(R,{fontSize:t.domain?`xs`:`sm`,opacity:t.domain?.5:1,children:l(t.address??``,4,4)})]}):q(At,{})},Du=({mobileVariant:e=`iconAndDomain`,desktopVariant:t=`iconAndDomain`,onOpen:n,buttonStyle:r={}})=>{let{account:i}=Q(),[a]=Kt(`(min-width: 768px)`);return q(j,{...r,onClick:n,w:`full`,minH:`45px`,maxW:`fit-content`,"data-testid":`wallet-button`,children:J(M,{w:`full`,minW:`fit-content`,children:[q(Vp,{wallet:i,props:{width:30,height:30,minWidth:30,minHeight:30}}),q(Eu,{variant:a?t:e})]})})},Ou=({mobileVariant:e=`iconAndDomain`,desktopVariant:t=`iconDomainAndAddress`,buttonStyle:n,connectionVariant:r=`modal`})=>{let{t:i}=Y(),{darkMode:a,loginMethods:o}=$(),s=o?.length===1&&o[0].method===`dappkit`,{connection:c,account:l}=Q(),{setSource:u,connectV2:d}=Mn(),[f]=Kt(`(max-width: 768px)`),p=Gt(),m=Gt(),{open:h}=Pn();return J(dd,{darkMode:a,children:[c.isConnected&&l?q(Du,{mobileVariant:e,desktopVariant:t,onOpen:m.onOpen,buttonStyle:n}):r===`popover`&&!f?q(Tu,{isLoading:c.isLoading,buttonStyle:n}):q(j,{isLoading:c.isLoading,onClick:()=>{c.isInAppBrowser?(u(`veworld`),d(null)):s?h():p.onOpen()},...n,children:i(`Login`)}),q(Cu,{isOpen:p.isOpen,onClose:p.onClose}),q(Su,{isOpen:m.isOpen,onClose:m.onClose})]})},ku=()=>{let{darkMode:e}=$(),t=25/2,[n]=Kt(`(max-width: 280px)`),[r]=Kt(`(max-width: 380px)`);return J(M,{spacing:0,ml:0,children:[q(Qe,{size:`25px`,borderRadius:`full`,bg:`#F8F8F8`,p:2,alignItems:`center`,justifyContent:`center`,zIndex:3,children:q(N,{as:Vi,fontSize:`20px`})}),!n&&q(Qe,{ml:`-${t}px`,size:`25px`,borderRadius:`full`,bg:`black`,p:2,alignItems:`center`,justifyContent:`center`,zIndex:2,children:q(N,{as:Ki,color:`white`,fontSize:`20px`})}),!n&&!r&&q(Qe,{ml:`-${t}px`,zIndex:1,size:`25px`,borderRadius:`full`,bg:`#5865F2`,p:2,alignItems:`center`,justifyContent:`center`,children:q(N,{as:Gi,color:`white`,fontSize:`20px`})}),q(N,{zIndex:1,as:Er,color:e?`black`:`white`,fontSize:`15px`})]})},Au=({status:e,txReceipt:t,txError:n,onTryAgain:r,description:i,onClose:a})=>{let{t:o}=Y(),{network:s}=$(),c=k(s.type).explorerUrl,l=W(()=>n?n.reason||o(`Something went wrong. Please try again.`):null,[n,o]),u=(()=>{let t=e===`waitingConfirmation`;switch(t&&(e=`pending`),e){case`pending`:return{icon:q(At,{size:`md`,"data-testid":`pending-spinner-toast`}),title:o(t?`Processing transaction...`:`Waiting for confirmation...`),closeDisabled:!0,description:t?o(`Transaction is being processed, it can take up to 15 seconds.`):i??o(`Please confirm the transaction in your wallet.`)};case`error`:return{icon:q(N,{as:ar,color:`red.500`,fontSize:`40px`,"data-testid":`error-icon-toast`}),title:o(`Transaction failed`),closeDisabled:!1,description:l};case`success`:return{icon:q(N,{as:or,color:`green.500`,fontSize:`40px`,"data-testid":`success-icon-toast`}),title:o(`Transaction successful!`),closeDisabled:!1,description:void 0};case`ready`:return{icon:null,title:o(`Confirm transaction`),closeDisabled:!1,description:i??o(`Confirm the transaction in your wallet to complete it.`)};default:return{icon:null,title:``,closeDisabled:!1,description:``}}})();return u?J(M,{justify:`space-between`,alignItems:`flex-start`,w:`full`,children:[q(z,{spacing:4,children:J(M,{spacing:4,w:`full`,justifyContent:`flex-start`,alignItems:`flex-start`,children:[u.icon,J(z,{w:`full`,align:`flex-start`,spacing:2,children:[J(z,{spacing:1,w:`full`,children:[q(ct,{w:`full`,size:`xs`,children:u.title}),u.description&&q(R,{fontSize:`xs`,children:u.description})]}),(e===`error`||e===`ready`)&&q(j,{size:`xs`,onClick:r,children:o(e===`error`?`Try again`:`Confirm`)}),t&&e!==`pending`&&J(ht,{fontSize:`xs`,isExternal:!0,href:`${c}/${t.meta.txID}`,children:[o(`View on explorer`),` `,q(N,{as:fr})]})]})]})}),!u.closeDisabled&&q(lt,{onClick:a,variant:`ghost`,size:`sm`,borderRadius:`full`,"aria-label":`Close`,icon:q(N,{as:Vr,boxSize:4})})]}):null},ju=({isOpen:e,onClose:t,status:n,txReceipt:r,txError:i,onTryAgain:a,description:o})=>{let{darkMode:s}=$();return e?q(A,{position:`fixed`,bottom:`5`,left:`5`,zIndex:`11111`,bg:s?`#1f1f1e`:`white`,borderRadius:`md`,p:5,boxShadow:`lg`,maxW:`sm`,minW:`300px`,children:q(Au,{status:n,txReceipt:r,txError:i,onTryAgain:a,description:o,onClose:t})}):null},Mu=({isOpen:e,onClose:t,error:n,title:r,loadingText:i,onTryAgain:a=()=>{}})=>q($a,{isOpen:e,onClose:t,trapFocus:!1,autoFocus:!1,backdropFilter:`blur(3px)`,children:n?q(Pu,{error:n,onClose:t,onTryAgain:a}):q(Nu,{loadingText:i,title:r,onTryAgain:a})}),Nu=({loadingText:e,title:t,onTryAgain:n})=>{let{t:r}=Y(),[i,a]=V.useState(!1);return V.useEffect(()=>{let e=setTimeout(()=>{a(!0)},7e3);return()=>clearTimeout(e)},[Pi]),J(K,{children:[q(Z,{children:q(L,{children:t??r(`Connecting...`)})}),J(P,{children:[q(z,{align:`center`,p:6,gap:0,w:`full`,justifyContent:`center`,minH:`150px`,children:q(At,{size:`xl`})}),e&&!i&&q(R,{size:`sm`,textAlign:`center`,children:e}),i&&J(z,{mt:4,spacing:2,children:[q(R,{color:`orange.300`,size:`sm`,textAlign:`center`,children:r(`This is taking longer than expected.`)}),q(R,{size:`sm`,textAlign:`center`,children:r(`You may want to try establishing the connection again.`)})]})]}),q(I,{justifyContent:`center`,children:i&&J(j,{variant:`vechainKitPrimary`,onClick:n,children:[q(N,{mr:2,as:Dr}),r(`Try again`)]})})]})},Pu=({error:e,onClose:t,onTryAgain:n})=>{let{t:r}=Y();return J(K,{children:[J(Z,{children:[q(L,{children:r(`Connection Failed`)}),q(F,{onClick:()=>{t()}})]}),q(P,{children:J(z,{align:`center`,p:6,w:`full`,justifyContent:`center`,minH:`100px`,gap:4,children:[q(Vn.div,{transition:{duration:4,ease:`easeInOut`,repeat:1/0},animate:{scale:[1,1.1,1]},children:q(N,{as:ar,color:`#ef4444`,fontSize:`60px`,opacity:.5})}),q(R,{w:`full`,size:`sm`,textAlign:`center`,children:e})]})}),q(I,{justifyContent:`center`,children:J(j,{variant:`vechainKitPrimary`,onClick:n,children:[q(N,{mr:2,as:Dr}),r(`Try again`)]})})]})},Fu=({onClose:e,appsInfo:t,isLoading:n})=>{let{t:r}=Y(),i=B(`colors`,`vechain-kit-text-primary`),[a,o]=G(),[s,c]=G(),l=Gt(),{setConnectionCache:u}=$d(),{login:d}=Hs(),f=async(n,i)=>{l.onOpen();try{o(void 0),c(i);try{await d(n),l.onClose(),u({name:i,logoUrl:t.find(e=>e.id===n)?.logo_url,appId:n,website:t.find(e=>e.id===n)?.website}),e()}catch(e){let t=e?.message;if(t&&g(t))return Error(`Login request was cancelled.`);o((e instanceof Error?e:Error(`'An unexpected issue occurred while logging in with this app. Please try again or contact support.',`)).message)}}catch(e){console.error(r(`Login failed:`),e),o(e instanceof Error?e.message:r(`Failed to connect with ecosystem app`))}};return J(A,{children:[J(K,{children:[q(Z,{children:J(L,{children:[r(`Already have an x2earn app wallet?`),q(F,{onClick:()=>{e()}})]})}),J(P,{children:[n&&q(z,{minH:`200px`,w:`full`,justifyContent:`center`,children:q(At,{})}),!n&&t&&q(z,{spacing:4,w:`full`,pb:6,children:t.map(e=>J(j,{variant:`loginIn`,fontSize:`14px`,fontWeight:`400`,p:6,borderRadius:16,w:`full`,onClick:()=>{f(e.id,e.name)},justifyContent:`flex-start`,children:[q(ut,{src:e.logo_url,alt:e.name,w:`30px`}),q(R,{ml:5,children:e.name})]},e.id))}),!n&&!t&&q(R,{textAlign:`center`,color:i,children:r(`No application from VeChain ecosystem is available to login.`)})]}),q(I,{pt:0})]}),q(Mu,{isOpen:l.isOpen,onClose:()=>{l.onClose()},error:a,title:`${r(`Connecting with`)} ${s}`,loadingText:r(`Please approve the request in the connection request window...`),onTryAgain:()=>{if(s){let e=t.find(e=>e.name===s);e&&f(e.id,e.name)}}})]})},Iu=({isOpen:e,onClose:t,appsInfo:n,isLoading:r})=>q($a,{isOpen:e,onClose:t,backdropFilter:`blur(3px)`,children:q(Fu,{onClose:t,appsInfo:n,isLoading:r})}),Lu=({txId:e,title:t,description:n,onDone:r,showSocialButtons:i=!1})=>{let{t:a}=Y(),{network:o}=$(),s=k(o.type).explorerUrl,c=`${s}/${e}`,l=B(`colors`,`vechain-kit-success`);return J(A,{children:[J(Z,{children:[q(L,{children:t}),q(F,{})]}),q(P,{children:J(z,{align:`center`,p:6,spacing:3,children:[q(Vn.div,{transition:{duration:4,ease:`easeInOut`,repeat:1/0},animate:{scale:[1,1.1,1]},children:q(N,{as:or,fontSize:`100px`,color:l})}),n&&q(R,{fontSize:`sm`,textAlign:`center`,children:n}),i&&e&&J(z,{mt:2,children:[q(R,{fontSize:`xs`,children:a(`Share on`)}),q(_u,{descriptionEncoded:c})]})]})}),q(I,{justifyContent:`center`,children:J(z,{width:`full`,spacing:4,children:[q(j,{onClick:r,variant:`vechainKitSecondary`,width:`full`,children:a(`Done`)}),e&&q(ht,{href:`${s}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:J(M,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[q(R,{children:a(`View transaction on the explorer`)}),q(N,{size:16,as:fr})]})})]})})]})},Ru=({setCurrentContent:e,handleClose:t,style:n})=>{let{t:r}=Y(),{smartAccount:i,connectedWallet:a}=Q(),{data:o}=Kf(i?.address??``,a?.address??``,3),{sendTransaction:s,isTransactionPending:c,isWaitingForWalletConfirmation:l,error:u,txReceipt:d}=Zf({smartAccountAddress:i?.address??``,targetVersion:3,onSuccess:()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:d?.meta.txID,title:r(`Upgrade Successful!`),description:r(`Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.`),onDone:()=>{t()},showSocialButtons:!1}})},onError:()=>{console.error(`Error upgrading Smart Account`)}});return J(K,{children:[J(Z,{children:[q(L,{children:r(`Account upgrade required`)}),q(F,{})]}),q(P,{children:J(z,{spacing:10,align:`stretch`,justifyContent:`center`,children:[q(R,{fontSize:`sm`,textAlign:`center`,children:r(`To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).`)}),J(M,{align:`center`,justifyContent:`space-evenly`,rounded:`md`,children:[J(A,{position:`relative`,display:`inline-block`,children:[q(Qe,{size:`60px`,bg:`gray.200`,children:q(ut,{src:i?.image,alt:r(`Profile Picture`),w:`100%`,h:`100%`,borderRadius:`full`,objectFit:`cover`})}),q(ct,{position:`absolute`,top:`-5`,right:`-5`,color:`#D23F63`,fontSize:`28px`,children:`v1`})]}),q(N,{as:qn,color:`#3DBA67`}),J(A,{position:`relative`,display:`inline-block`,children:[q(Qe,{size:`60px`,bg:`gray.200`,children:q(ut,{src:i?.image,alt:r(`Profile Picture`),w:`100%`,h:`100%`,borderRadius:`full`,objectFit:`cover`})}),q(ct,{position:`absolute`,top:`-5`,right:`-5`,color:`#3DBA67`,fontSize:`28px`,children:`v3`})]})]}),J(Be,{status:`info`,borderRadius:`md`,children:[q(He,{}),J(A,{children:[q(Ue,{fontSize:`sm`,children:r(`Benefits of this upgrade:`)}),q(Ve,{fontSize:`xs`,children:J(z,{align:`start`,spacing:0,mt:1,children:[J(R,{fontSize:`xs`,lineHeight:`1.2`,children:[`• `,r(`Improved security features`)]}),J(R,{fontSize:`xs`,children:[`• `,r(`Better transaction handling`)]}),J(R,{fontSize:`xs`,children:[`•`,` `,r(`Enhanced compatibility with dApps`)]}),J(R,{fontSize:`xs`,children:[`•`,` `,r(`Reduced gas costs for operations`)]})]})})]})]})]})}),q(I,{justifyContent:`center`,children:q(z,{spacing:3,w:`full`,children:q(Hp,{style:n,buttonText:r(o?`Upgrade account`:`Account already upgraded`),onConfirm:async()=>{try{await s()}catch(e){console.error(`Failed to upgrade Smart Account:`,e)}},isTxWaitingConfirmation:l,isSubmitting:c,transactionPendingText:r(`Upgrading...`),txReceipt:d,transactionError:u,isDisabled:!o})})})]})},zu=({isOpen:e,onClose:t,style:n})=>{let[r,i]=G(`upgrade-smart-account`);return U(()=>{e&&i(`upgrade-smart-account`)},[e]),q($a,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,size:n?.modalSize,children:(()=>{if(typeof r==`object`)switch(r.type){case`successful-operation`:return q(Lu,{...r.props})}else if(r===`upgrade-smart-account`)return q(Ru,{setCurrentContent:i,handleClose:t,style:n})})()})},{definePartsStyle:Bu,defineMultiStyleConfig:Vu}=Rt(ca.keys),Hu=e=>({vechainKitBase:Bu({dialog:{scrollbarWidth:`none`,overflow:`scroll`,overflowX:`hidden`,maxHeight:`550px`,rounded:e.modal.rounded??e.borders.radius.modal,backgroundColor:e.colors.background.modal,backdropFilter:e.effects.backdropFilter.modal,border:e.colors.border.modal},overlay:{backgroundColor:e.colors.background.overlay,backdropFilter:e.effects.backdropFilter.overlay},closeButton:{borderRadius:e.borders.radius.full,color:e.colors.text.primary,_hover:{bg:e.buttons.button.bg},_active:{bg:e.buttons.button.bg,opacity:.8}},header:{w:`full`,color:e.colors.text.primary,fontSize:e.fonts.sizes.medium,fontWeight:e.fonts.weights.bold,textAlign:`center`}})}),Uu=e=>Vu({variants:Hu(e),defaultProps:{variant:`vechainKitBase`}}),{definePartsStyle:Wu,defineMultiStyleConfig:Gu}=Rt(sa.keys),Ku=e=>({vechainKitBase:Wu({container:{backgroundColor:e.colors.background.card,borderRadius:e.borders.radius.medium,width:`full`,border:`none`},body:{p:5,width:`full`},header:{p:5,width:`full`,borderRadius:`${e.borders.radius.medium} ${e.borders.radius.medium} 0 0`},footer:{width:`full`,borderRadius:`0 0 ${e.borders.radius.medium} ${e.borders.radius.medium}`}}),featureAnnouncement:Wu({body:{backgroundColor:e.buttons.button.bg,borderRadius:e.borders.radius.medium,color:e.colors.text.secondary},container:{borderRadius:e.borders.radius.medium,backgroundColor:`transparent`}}),vechainKitAppCard:Wu({body:{height:`full`,borderRadius:e.borders.radius.medium,backgroundColor:e.colors.background.cardElevated,border:`1px solid ${e.colors.border.default}`},container:{height:`150px`,borderRadius:e.borders.radius.medium,backgroundColor:`transparent`}})}),qu=e=>Gu({variants:Ku(e),defaultProps:{variant:`vechainKitBase`}}),Ju=Bt({borderRadius:`12px`}),Yu=e=>({loginIn:Bt(()=>({bg:e.buttons.loginButton.bg,color:e.buttons.loginButton.color,border:e.buttons.loginButton.border,fontSize:e.fonts.sizes.medium,fontWeight:e.fonts.weights.normal,py:6,px:3,rounded:e.buttons.loginButton.rounded??e.borders.radius.large,backdropFilter:e.buttons.loginButton.backdropFilter,_hover:{opacity:.5,_disabled:{opacity:.5,bg:e.buttons.loginButton.bg}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:e.buttons.loginButton.bg},transition:`all 0.2s`})),loginWithVechain:Bt(()=>({color:`white`,bg:`#1a1a1a`,fontSize:e.fonts.sizes.medium,fontWeight:e.fonts.weights.normal,py:6,px:3,borderRadius:e.borders.radius.large,border:`1px solid ${e.colors.border.button}`,_hover:{opacity:.5,_disabled:{opacity:.5,bg:`#1a1a1a`}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:`#1a1a1a`},_dark:{color:`#1a1a1a`,bg:`white`,_hover:{_disabled:{bg:`white`}},_disabled:{bg:`white`}},transition:`all 0.2s`})),vechainKitPrimary:Bt(()=>({fontSize:e.fonts.sizes.medium,px:4,width:`full`,height:`60px`,rounded:e.buttons.primaryButton.rounded??e.borders.radius.large,bg:e.buttons.primaryButton.bg,color:e.buttons.primaryButton.color,border:e.buttons.primaryButton.border,backdropFilter:e.buttons.primaryButton.backdropFilter,_hover:{...e.buttons.primaryButton.hoverBg?{bg:e.buttons.primaryButton.hoverBg}:{opacity:.8},_disabled:{opacity:.5,bg:e.buttons.primaryButton.bg}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:e.buttons.primaryButton.bg},transition:`all 0.2s`})),vechainKitSecondary:Bt(()=>({fontSize:e.fonts.sizes.medium,px:4,width:`full`,height:`60px`,rounded:e.buttons.button.rounded??e.borders.radius.large,bg:e.buttons.button.bg,color:e.buttons.button.color,border:e.buttons.button.border===`none`?`none`:e.buttons.button.border,backdropFilter:e.buttons.button.backdropFilter,_hover:{...e.buttons.button.hoverBg?{bg:e.buttons.button.hoverBg}:{opacity:.8},_disabled:{opacity:.5,bg:e.buttons.button.bg}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:e.buttons.button.bg},transition:`all 0.2s`})),vechainKitTertiary:Bt(()=>({fontSize:e.fonts.sizes.medium,px:4,width:`full`,height:`60px`,rounded:e.buttons.tertiaryButton.rounded??e.borders.radius.large,bg:e.buttons.tertiaryButton.bg,color:e.buttons.tertiaryButton.color,border:e.buttons.tertiaryButton.border===`none`?`none`:e.buttons.tertiaryButton.border,backdropFilter:e.buttons.tertiaryButton.backdropFilter,_hover:{opacity:.8,_disabled:{opacity:.5,bg:e.buttons.tertiaryButton.bg}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:e.buttons.tertiaryButton.bg},transition:`all 0.2s`})),vechainKitLogout:Bt(()=>({width:`full`,minHeight:`50px`,height:`fit-content`,borderRadius:e.borders.radius.xl,p:0,bg:e.colors.error+`1f`,_hover:{bg:e.colors.error+`5e`,color:e.colors.error},transition:`all 0.2s`,color:e.colors.error})),actionButton:Bt(()=>({width:`full`,minHeight:`50px`,height:`fit-content`,bg:e.buttons.button.bg,borderRadius:e.borders.radius.xl,p:0,color:e.buttons.button.color,border:e.buttons.button.border===`none`?`1px solid ${e.colors.border.button}`:e.buttons.button.border,_hover:{opacity:.8,_disabled:{opacity:.5,bg:e.buttons.button.bg}},_disabled:{opacity:.5,cursor:`not-allowed`,bg:e.buttons.button.bg},transition:`all 0.2s`})),ghost:Bt(()=>({bg:`transparent`,color:e.colors.text.primary,border:`none`,_hover:{bg:e.buttons.button.bg},_active:{bg:e.buttons.button.bg,opacity:.8},transition:`all 0.2s`})),link:Bt(()=>({color:e.colors.text.primary,_hover:{color:e.colors.text.secondary,textDecoration:`underline`},_active:{color:e.colors.text.primary},transition:`all 0.2s`}))}),Xu=e=>Vt({baseStyle:Ju,variants:Yu(e)}),{definePartsStyle:Zu,defineMultiStyleConfig:Qu}=Rt(la.keys),$u=e=>({vechainKitBase:Zu({popper:{zIndex:1e3},content:{borderRadius:e.borders.radius.xl,border:`none`,backgroundColor:e.colors.background.modal,boxShadow:`0px 4px 16px rgba(0, 0, 0, 0.12)`,minWidth:`380px`},body:{padding:`16px`}})}),ed=e=>Qu({variants:$u(e),defaultProps:{variant:`vechainKitBase`}}),td=(e,t)=>({useSystemColorMode:!1,disableTransitionOnChange:!1,components:{Modal:Uu(t),Card:qu(t),Button:Xu(t),Popover:ed(t)},styles:{global:()=>({})},semanticTokens:{colors:{"chakra-placeholder-color":t.colors.text.tertiary,"vechain-kit-modal":t.colors.background.modal,"vechain-kit-overlay":t.colors.background.overlay,"vechain-kit-card":e?`rgba(0, 0, 0, 0.3)`:`rgba(0, 0, 0, 0.05)`,"vechain-kit-card-elevated":e?`rgba(0, 0, 0, 0.4)`:`rgba(0, 0, 0, 0.08)`,"vechain-kit-sticky-header":t.colors.background.stickyHeader,"vechain-kit-text-primary":t.colors.text.primary,"vechain-kit-text-secondary":t.colors.text.secondary,"vechain-kit-text-tertiary":t.colors.text.tertiary,"vechain-kit-border":t.colors.border.default,"vechain-kit-border-hover":t.colors.border.hover,"vechain-kit-border-focus":t.colors.border.focus,"vechain-kit-success":t.colors.success,"vechain-kit-error":t.colors.error,"vechain-kit-warning":t.colors.warning},effects:{"vechain-kit-backdrop-filter-modal":t.effects.backdropFilter.modal,"vechain-kit-backdrop-filter-overlay":t.effects.backdropFilter.overlay,"vechain-kit-backdrop-filter-sticky-header":t.effects.backdropFilter.stickyHeader},config:{cssVarPrefix:`vechain-kit`}},fonts:Ut.fonts,fontSizes:{...Ut.fontSizes,sm:t.fonts.sizes.small,md:t.fonts.sizes.medium,lg:t.fonts.sizes.large},fontWeights:{...Ut.fontWeights,normal:t.fonts.weights.normal,medium:t.fonts.weights.medium,bold:t.fonts.weights.bold},colors:Ut.colors,space:Ut.space}),nd=(e,t)=>{let n=Ht(td(e,Ra(La(e),za(t,e))));return n.styles.global=()=>({}),n.__cssVars&&(n.__cssVars.global=()=>({})),n},{ToastContainer:rd}=zt(),id=()=>oa({key:`vechain-kit`,prepend:!0}),ad=({bodyFont:e,headingFont:t})=>q(ia,{styles:aa`
|
|
120
120
|
/* define CSS layers with proper priority order */
|
|
121
121
|
@layer vechain-kit, host-app;
|
|
122
122
|
|
|
@@ -189,7 +189,7 @@ import{A as e,B as t,C as n,E as r,H as i,J as a,O as o,Q as s,S as c,U as l,V a
|
|
|
189
189
|
font-family: ${t} !important;
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
`}),Xu=({children:e,theme:t,bodyFont:n,headingFont:r})=>J(ra,{value:W(()=>Ju(),[]),children:[q(Yu,{bodyFont:n,headingFont:r}),q(Xe,{theme:t,resetCSS:!1,portalZIndex:void 0,children:e})]}),Zu=({darkMode:e})=>{try{if(S(`[data-chakra-color-mode]`))return null}catch(e){console.error(e)}return q(et,{initialColorMode:e?`dark`:`light`})},Qu=Yt({portalRootRef:void 0,tokens:void 0}),$u=()=>{let e=Xt(Qu);if(!e)throw Error(`useVechainKitTheme must be used within a VechainKitThemeProvider`);return e},ed=({darkMode:e=!1})=>{let{setColorMode:t,colorMode:n}=Wt();return U(()=>{let r=e?`dark`:`light`;n!==r&&t(r)},[e]),q(K,{})},td=({children:e,darkMode:t=!1,theme:n})=>{let r=Zt(null),i=Xt(Yp),a=i?i.theme:void 0,o=n??a,s=W(()=>Ra(La(t),za(o,t)),[t,o]),c=W(()=>({...Ku(t,o),config:{...Ku(t,o).config,initialColorMode:t?`dark`:`light`}}),[t,o]);return J(Qu.Provider,{value:{portalRootRef:r,tokens:s},children:[q(Zu,{darkMode:t}),J(Xu,{theme:c,bodyFont:s.fonts.body,headingFont:s.fonts.heading,children:[q(ed,{darkMode:t}),q(A,{id:`vechain-kit-root`,ref:r,bg:`transparent`,borderRadius:`12px`,children:e})]}),q(qu,{})]})},nd=Yt(null),rd=()=>{let e=Xt(nd);if(!e)throw Error(`useModal must be used within ModalProvider`);return e},id=({children:e})=>{let{darkMode:t,theme:n}=$(),[r,i]=G(!1),{setSource:a,connectV2:o}=Mn(),s=H(()=>{y()&&window.vechain&&window.vechain.isInAppBrowser?(a(`veworld`),o(null)):i(!0)},[]),c=H(()=>i(!1),[]),[l,u]=G(!1),[d,f]=G(!1),p=H((e,t)=>{re(e??`main`),f(t?.isolatedView??!1),u(!0)},[]),m=H(()=>{u(!1),setTimeout(()=>{f(!1)},300)},[]),[h,g]=G(!1),_=H(()=>g(!0),[]),v=H(()=>g(!1),[]),[b,x]=G(!1),S=H(()=>x(!0),[]),C=H(()=>x(!1),[]),[w,ee]=G(!1),[T,E]=G(void 0),D=H(e=>{E(e),ee(!0)},[]),te=H(()=>ee(!1),[]),[ne,re]=G(`main`);return J(nd.Provider,{value:{openConnectModal:s,closeConnectModal:c,isConnectModalOpen:r,openAccountModal:p,closeAccountModal:m,isAccountModalOpen:l,setAccountModalContent:re,accountModalContent:ne,isolatedView:d,openTransactionModal:_,closeTransactionModal:v,isTransactionModalOpen:h,openTransactionToast:S,closeTransactionToast:C,isTransactionToastOpen:b,openUpgradeSmartAccountModal:D,closeUpgradeSmartAccountModal:te,isUpgradeSmartAccountModalOpen:w},children:[e,J(td,{darkMode:t,theme:n,children:[q(pu,{isOpen:r,onClose:c}),q(fu,{isOpen:l,onClose:m,initialContent:ne}),q(ku,{isOpen:w,onClose:te,style:T})]})]})},ad=()=>{let{loginMethods:e}=$(),t=e?.length===1&&e[0].method===`dappkit`,{openConnectModal:n,closeConnectModal:r,isConnectModalOpen:i}=rd(),{open:a,close:o}=Pn();return{open:t?a:n,close:t?o:r,isOpen:t?!1:i}},od=({children:e})=>q(K,{children:e}),sd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=rd();return{open:()=>e(),close:t,isOpen:n}},cd=({children:e})=>q(K,{children:e}),ld=()=>{let{openTransactionModal:e,closeTransactionModal:t,isTransactionModalOpen:n}=rd();return{open:e,close:t,isOpen:n}},ud=({children:e})=>q(K,{children:e}),dd=()=>{let{openTransactionToast:e,closeTransactionToast:t,isTransactionToastOpen:n}=rd();return{open:e,close:t,isOpen:n}},fd=({children:e})=>q(K,{children:e}),pd=()=>{let{connection:e}=Q(),{openConnectModal:t,closeConnectModal:n,isConnectModalOpen:r,openAccountModal:i,closeAccountModal:a,isAccountModalOpen:o}=rd();return{open:()=>{e.isConnected?i():t()},close:()=>{o&&a(),r&&n()},isOpen:r||o}},md=({children:e})=>q(K,{children:e}),hd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=rd();return{open:t=>{e({type:`choose-name`,props:{setCurrentContent:r,onBack:()=>r(`main`),initialContentSource:`main`}},t)},close:()=>{t()},isOpen:n}},gd=({children:e})=>q(K,{children:e}),_d=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=rd();return{open:t=>{e({type:`send-token`,props:{setCurrentContent:r}},t)},close:()=>{t()},isOpen:n}},vd=({children:e})=>q(K,{children:e}),yd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=rd();return{open:t=>{e({type:`swap-token`,props:{setCurrentContent:r,fromTokenAddress:t?.fromTokenAddress,toTokenAddress:t?.toTokenAddress}},{isolatedView:t?.isolatedView})},close:()=>{t()},isOpen:n}},bd=({children:e})=>q(K,{children:e}),xd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=rd();return{open:t=>{e(`access-and-security`,t)},close:()=>{t()},isOpen:n}},Sd=({children:e})=>q(K,{children:e}),Cd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=rd();return{open:t=>{e(`ecosystem`,t)},close:()=>{t()},isOpen:n}},wd=({children:e})=>q(K,{children:e}),Td=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=rd();return{open:t=>{e(`notifications`,t)},close:()=>{t()},isOpen:n}},Ed=({children:e})=>q(K,{children:e}),Dd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=rd();return{open:t=>{e({type:`faq`,props:{onGoBack:()=>r(`main`),showLanguageSelector:!1}},t)},close:()=>{t()},isOpen:n}},Od=({children:e})=>q(K,{children:e}),kd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=rd();return{open:()=>{e({type:`account-customization`,props:{setCurrentContent:r}})},close:()=>{t()},isOpen:n}},Ad=({children:e})=>q(K,{children:e}),jd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=rd();return{open:t=>{e(`receive-token`,t)},close:()=>{t()},isOpen:n}},Md=({children:e})=>q(K,{children:e}),Nd=()=>{let{privy:e,loginMethods:t}=$(),n=e?.appId===O,r=e=>t?Array.isArray(e)?e.some(e=>t.some(t=>t.method===e)):t.some(t=>t.method===e):!0,i=W(()=>t?t.length===0||r(`ecosystem`):!0,[t]),a=W(()=>r(`vechain`),[t]),o=W(()=>r(`dappkit`),[t]),s=W(()=>r(`passkey`),[t]),c=W(()=>r(`email`),[t]),l={showGoogleLogin:W(()=>r(`google`),[t]),showEmailLogin:c,showPasskey:s,showVeChainLogin:a,showDappKit:o,showEcosystem:i,showMoreLogin:W(()=>r(`more`),[t]),showGithubLogin:W(()=>r(`github`),[t]),isOfficialVeChainApp:!1};return e?n?{...l,isOfficialVeChainApp:!0}:{...l}:{...l,showGoogleLogin:!1,showEmailLogin:!1,showPasskey:!1,showMoreLogin:!1}},Pd=e=>{let{openUpgradeSmartAccountModal:t,closeUpgradeSmartAccountModal:n,isUpgradeSmartAccountModalOpen:r}=rd();return{open:()=>t(e),close:n,isOpen:r}},Fd=({children:e})=>q(K,{children:e}),Id=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=rd();return{open:t=>{e(`profile`,t)},close:()=>{t()},isOpen:n}},Ld=({children:e})=>q(K,{children:e}),Rd=()=>{let[e,t]=G(!1),[n,r]=G(null),[i,a]=G(null),{connection:o,account:s}=Q(),{requestCertificate:c}=Nn(),l=Jp();return{signMessage:H(async e=>{if(!s)throw Error(`Account not found`);t(!0),a(null),r(null);try{let t=null;return t=o.isConnectedWithDappKit?(await c({purpose:`agreement`,payload:{type:`text`,content:e}},{signer:s.address})).signature:await l.signMessage(e),r(t),t}catch(e){let t=e instanceof Error?e:Error(String(e));throw a(t),t}finally{t(!1)}},[o,l]),isSigningPending:e,signature:n,error:i,reset:H(()=>{t(!1),r(null),a(null)},[])}},zd=()=>{let[e,t]=G(!1),[n,r]=G(null),[i,a]=G(null),{signer:o}=Mn(),{connection:s}=Q(),c=Jp();return{signTypedData:H(async(e,n)=>{t(!0),a(null),r(null);try{let t;if(s.isConnectedWithDappKit){let r={...e.domain,salt:e.domain?.salt?Buffer.from(e.domain.salt).toString(`hex`):void 0};t=await o.signTypedData(r,e.types,e.message,void 0,n)}else t=await c.signTypedData(e);return r(t),t}catch(e){if(e&&typeof e==`object`&&`statusCode`in e&&e.statusCode===4001){let e=Error(`User denied signature request`);throw a(e),e}let t=e instanceof Error?e:Error(typeof e==`object`?JSON.stringify(e):String(e));throw console.error(t),a(t),t}finally{t(!1)}},[s,c]),isSigningPending:e,signature:n,error:i,reset:H(()=>{t(!1),r(null),a(null)},[])}},Bd=()=>{let{loginWithPasskey:e}=Sn();return{loginWithPasskey:async()=>{try{await e()}catch(e){throw e}}}};let Vd=!1;const Hd=()=>{let{createWallet:e}=yn(),{initOAuth:t}=xn({onComplete:H(async({isNewUser:t})=>{if(t&&!Vd){Vd=!0;try{await e()}catch(e){throw Vd=!1,console.error(`Failed to create wallet:`,e),e}}},[e])});return{initOAuth:async({provider:e})=>{try{await t({provider:e})}catch(e){throw e}}}},Ud=()=>{let e=`vechain_kit_cross_app_connection`;return{setConnectionCache:H(t=>{let n={timestamp:Date.now(),ecosystemApp:t};h(e,JSON.stringify(n))},[]),getConnectionCache:H(()=>{let t=w(e);return t?JSON.parse(t):null},[]),clearConnectionCache:H(()=>{ee(e)},[])}},Wd=()=>{let{login:e}=Us(),{setConnectionCache:t}=Ud(),{data:n}=oo([O]);return{login:async()=>{try{await e(O),t({name:`VeChain`,logoUrl:n?.[O]?.logo_url,appId:O,website:`https://governance.vebetterdao.org`})}catch(e){throw zs({error:e,mobileBrowserPopupMessage:`Your mobile browser blocked the login window. Please click 'Try again' to open the login window or change your browser settings.`,rejectedMessage:`Login request was cancelled.`,defaultMessage:`There was an unexpected issue logging in with VeChain. Please try again or contact support.`})}}}},Gd=`vechain-kit-app-hub-apps`,Kd=`vechain-kit-app-hub-apps-expiry`,qd=`https://raw.githubusercontent.com/vechain/app-hub/master`,Jd=()=>[`VECHAIN_KIT`,`appHub`,`apps`],Yd=async()=>{if(typeof window<`u`)try{let e=w(Gd),t=w(Kd);if(e&&t){let n=parseInt(t,10);if(Date.now()<n)return JSON.parse(e)}}catch{console.warn(`Invalid app-hub cache, fetching fresh data`)}let e=await fetch(`https://api.github.com/repos/vechain/app-hub/contents/apps`);if(!e.ok)throw Error(`Failed to fetch app directories`);let t=(await e.json()).map(async e=>{if(e.type!==`dir`)return null;let t=`${qd}/apps/${e.name}/manifest.json`,n=await fetch(t);if(!n.ok)return console.warn(`Failed to fetch manifest for ${e.name}`),null;try{let t=await n.json();return{id:e.name,name:t.name,description:t.desc,url:t.href,logo:`${qd}/apps/${e.name}/logo.png`,category:t.category,tags:t.tags||[],isVeWorldSupported:t.isVeWorldSupported||!1,repo:t.repo,contracts:t.contracts,veBetterDaoId:t.veBetterDaoId}}catch(t){return console.warn(`Error parsing manifest for ${e.name}:`,t),null}}),n=(await Promise.all(t)).filter(e=>e!==null);if(typeof window<`u`)try{h(Gd,JSON.stringify(n)),h(Kd,(Date.now()+864e5).toString())}catch(e){console.warn(`Failed to cache app-hub data:`,e)}return n},Xd=()=>X({queryKey:Jd(),queryFn:async()=>{try{return await Yd()}catch(e){let t=localStorage.getItem(Gd);if(t)return JSON.parse(t);throw e}},staleTime:1e3*60*60,retry:2}),Zd=({abi:e,address:t,method:n})=>[`callClause`,t,n],Qd=({abi:e,address:t,method:n,args:r})=>[`callClause`,t,n,...r?.length?[r]:[]],$d=({address:e,abi:t,method:n,args:r,queryOptions:i})=>{let a=jn();return X({queryKey:Qd({abi:t,address:e,method:n,args:r}),queryFn:async()=>T({thor:a,contractAddress:e,abi:t,method:n,args:r}),...i})},ef=({thor:e,calls:t,queryKey:n,enabled:r=!0})=>X({queryKey:n,queryFn:()=>re({thor:e,calls:t}),enabled:r}),tf=()=>{let{network:e}=$();return e.nodeUrl??k(e.type).nodeUrl},nf=()=>{let[e,t]=G(!0);return U(()=>{if(!y()){t(!1);return}let e=()=>{t(window.matchMedia(`(display-mode: standalone)`).matches||window.standalone||document.referrer.includes(`android-app://`))};return e(),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]),e},rf=()=>{U(()=>{let e=document.querySelector(`.chakra-modal__content`);e&&(e.scrollTop=0)},[])},af=async(e,t)=>{if(!t)throw Error(`Address is required`);let n=await e.accounts.getAccount(cn.of(t));return{balance:gi(BigInt(n.balance)).toString(),energy:gi(BigInt(n.energy)).toString()}},of=e=>[`VECHAIN_KIT_BALANCE`,e],sf=e=>{let t=jn();return X({queryKey:of(e),queryFn:()=>af(t,e),enabled:!!e&&cn.isValid(e),refetchInterval:1e4})},cf=async(e,t,n)=>{if(!n)throw Error(`Network type is required`);if(!t)throw Error(`Version is required`);let r=e.contracts.load(k(n).accountFactoryAddress,ti.abi),i;switch(t){case 1:case 2:i=r.read.accountImplementationV1();break;case 3:i=r.read.accountImplementationV3();break;default:throw Error(`Invalid version, must be between 1 and 3`)}let a=await i;if(!a)throw Error(`Failed to get account implementation address`);return a[0].toString()},lf=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`IMPLEMENTATION_ADDRESS`,e,t],uf=e=>{let t=jn(),{network:n}=$();return X({queryKey:lf(e,n.type),queryFn:async()=>cf(t,e,n.type),enabled:!!t&&!!e&&!!n})},df=async(e,t)=>{if(!t)throw Error(`Network type is required`);let n=await e.contracts.load(k(t).accountFactoryAddress,ti.abi).read.currentAccountImplementationVersion();if(!n)throw Error(`Failed to get current account implementation version`);return parseInt(n[0].toString())},ff=e=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`CURRENT_ACCOUNT_IMPLEMENTATION_VERSION`,e],pf=()=>{let e=jn(),{network:t}=$();return X({queryKey:ff(t.type),queryFn:async()=>df(e,t.type),enabled:!!e&&!!t})},mf=async(e,t,n)=>{if(!t)throw Error(`Owner address is required`);if(!n)throw Error(`Network type is required`);let r=await e.contracts.load(k(n).accountFactoryAddress,ti.abi).read.getAccountAddress(t);if(!r)throw Error(`Failed to get account address of ${t}`);return r[0].toString()},hf=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`ADDRESS`,e,t],gf=e=>{let t=jn(),{network:n}=$();return X({queryKey:hf(e,n.type),queryFn:async()=>mf(t,e,n.type),enabled:!!t&&!!e&&!!n})},_f=ti.abi,vf=(e,t,n)=>Qd({abi:_f,address:k(n).accountFactoryAddress,method:`getAccountVersion`,args:[e,t]}),yf=(e,t)=>{let{network:n}=$();return $d({address:k(n.type).accountFactoryAddress,abi:_f,method:`getAccountVersion`,args:[e,t],queryOptions:{select:e=>({version:parseInt(e[0].toString()),isDeployed:e[1]})}})},bf=ti.abi,xf=async(e,t,n)=>{if(!t)throw Error(`Owner address is required`);if(!n)throw Error(`Network type is required`);let[r]=await T({thor:e,abi:bf,contractAddress:k(n).accountFactoryAddress,method:`hasLegacyAccount`,args:[t]});return r},Sf=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`HAS_V1_SMART_ACCOUNT`,e,t],Cf=e=>{let t=jn(),{network:n}=$();return X({queryKey:Sf(e,n.type),queryFn:async()=>xf(t,e,n.type),enabled:!!t&&!!e&&!!n})},wf=async(e,t)=>{if(!t)throw Error(`Account address is required`);let n=await e.accounts.getAccount(cn.of(String(t)));if(!n)throw Error(`Account not found`);return n.hasCode},Tf=e=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`IS_DEPLOYED`,e],Ef=e=>{let t=tf(),n=Ri.at(t);return X({queryKey:Tf(e),queryFn:async()=>wf(n,e),enabled:!!n&&!!e})},Df=()=>{let e=zn(),{connectedWallet:t,smartAccount:n}=Q(),{network:r}=$();return{refresh:async()=>{let i=t?.address??``,a=n?.address??``;await Promise.all([e.cancelQueries({queryKey:hf(i,r.type)}),e.cancelQueries({queryKey:vf(a,i,r.type)}),e.cancelQueries({queryKey:Sf(i,r.type)}),e.cancelQueries({queryKey:ff(r.type)}),e.cancelQueries({queryKey:Nf(a,i,3,r.type)}),e.cancelQueries({queryKey:If(a,3,r.type)}),e.cancelQueries({queryKey:lf(3,r.type)})]),await Promise.all([e.refetchQueries({queryKey:hf(i,r.type)}),e.refetchQueries({queryKey:vf(a,i,r.type)}),e.refetchQueries({queryKey:Sf(i,r.type)}),e.refetchQueries({queryKey:ff(r.type)}),e.refetchQueries({queryKey:Nf(a,i,3,r.type)}),e.refetchQueries({queryKey:If(a,3,r.type)}),e.refetchQueries({queryKey:lf(3,r.type)})])}}},Of=()=>{let e=zn(),{smartAccount:t}=Q();return{refresh:async()=>{let n=t?.address??``;await Promise.all([e.cancelQueries({queryKey:Af(n)}),e.cancelQueries({queryKey:Tf(n)})]),await Promise.all([e.refetchQueries({queryKey:Af(n)}),e.refetchQueries({queryKey:Tf(n)})])}}},kf=async(e,t,n)=>{if(!n)return{address:void 0};let r=await e.contracts.load(k(t).accountFactoryAddress,ti.abi).read.getAccountAddress(n);if(!r)throw Error(`Failed to get account address of ${n}`);let i=cn.of(r[0].toString()),a=await e.accounts.getAccount(i);if(!a)throw Error(`Failed to get account detail of ${i}`);return{address:i.toString(),isDeployed:a.hasCode}},Af=e=>[`VECHAIN_KIT_SMART_ACCOUNT`,e],jf=e=>{let{network:t}=$(),n=jn();return X({queryKey:Af(e),queryFn:()=>kf(n,t.type,e),enabled:!!e&&!!t.type&&!!n})},Mf=async(e,t,n,r,i)=>{let a=await e.contracts.load(k(i).accountFactoryAddress,ti.abi).read.upgradeRequired(t,n,BigInt(r));if(!a)throw Error(`Failed to get upgrade required of contract address ${k(i).accountFactoryAddress}`);return a[0]},Nf=(e,t,n,r)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`UPGRADE_REQUIRED`,e,t,n,r],Pf=(e,t,n)=>{let r=jn(),{network:i}=$();return X({queryKey:Nf(e,t,n,i.type),queryFn:async()=>Mf(r,e,t,n,i.type),enabled:!!r&&!!e&&!!t&&!!i.type})},Ff=async(e,t,n,r)=>{let i=await e.contracts.load(k(r).accountFactoryAddress,ti.abi).read.upgradeRequiredForAccount(t,BigInt(n));if(!i)throw Error(`Failed to get upgrade required for contract address ${t}`);return i[0]},If=(e,t,n)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`NEEDS_UPGRADE_FOR_ACCOUNT`,e,t,n],Lf=(e,t)=>{let n=jn(),{network:r}=$();return X({queryKey:If(e,t,r.type),queryFn:async()=>Ff(n,e,t,r.type),enabled:!!n&&!!r&&!!e&&!!t&&e!==``})},Rf=ri.createInterface(),zf=({smartAccountAddress:t,targetVersion:n,onSuccess:r,onError:i})=>{let{refresh:a}=Df(),{refresh:o}=Of(),{data:s}=uf(n),c=H(async()=>{if(!t||!e(t))throw Error(`Invalid smart account address`);if(!s)throw Error(`Unable to fetch implementation address for version ${n}`);return[{to:t,value:`0x0`,data:Rf.encodeFunctionData(`upgradeToAndCall`,[s,`0x`]),comment:`Upgrade account to version ${n}`,abi:Rf.getFunction(`upgradeToAndCall`).format(`json`)}]},[t,s,n]),u=lc({privyUIOptions:{title:`Upgrade Smart Account`,description:`Upgrading your account at ${l(t)} to version ${n}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{await Promise.all([a(),o()]),r?.()},onTxFailedOrCancelled:async()=>{i?.()}});return{...u,sendTransaction:async()=>u.sendTransaction(await c())}},Bf=()=>[`VECHAIN_KIT`,`CURRENT_BLOCK`],Vf=10*D.SECOND,Hf=()=>{let e=jn();return X({queryKey:Bf(),queryFn:async()=>{let t=await e.blocks.getBestBlockExpanded();if(!t)throw Error(`Failed to fetch current block`);return t},staleTime:1e3*60,refetchInterval:Vf})},Uf=async e=>{let t=await e.blocks.getGenesisBlock();if(!t)throw Error(`Genesis block not found`);return t.id},Wf=()=>[`VECHAIN_KIT_CHAIN_ID`],Gf=()=>{let e=jn();return X({queryKey:Wf(),queryFn:()=>Uf(e),enabled:!!e})},Kf=1e3,qf=async({thor:e,order:t=`asc`,offset:n=0,limit:r=Kf,from:i=0,to:a=e.blocks.getHeadBlock()?.number,filterCriteria:o})=>{let s=await e.logs.filterEventLogs({range:{from:i,to:a,unit:`block`},options:{offset:n,limit:r},order:t,criteriaSet:o});if(!s)throw Error(`Failed to fetch events`);return s},Jf=async({nodeUrl:e,thor:t,order:n=`asc`,from:r=0,to:i,filterCriteria:a})=>{let o=[],s=0;for(;;){let c=await qf({nodeUrl:e,thor:t,filterCriteria:a,from:r,to:i??2**53-1,limit:Kf,order:n,offset:s});if(o.push(...c),c.length<Kf)return o;s+=Kf}},Yf=Qr.createInterface(),Xf=(t,n,r,i)=>{if(!t||!n||!e(t))throw Error(`Invalid receiver address or amount`);let a=[];return a.push({to:r,value:`0x0`,data:Yf.encodeFunctionData(`transfer`,[t,bi(n)]),comment:`Transfer ${n} ${i} to ${t}`,abi:Yf.getFunction(`transfer`)}),a},Zf=({fromAddress:e,receiverAddress:t,amount:n,tokenAddress:r,tokenName:i,onSuccess:a,onError:o})=>{let{refresh:s}=Gs(),c=W(()=>Xf(t,n,r,i),[t,n,r,i]),u=lc({signerAccountAddress:e,privyUIOptions:{title:`Confirm Transfer`,description:`Transfer ${n} ${i} to ${l(t)}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{s(),a?.()},onTxFailedOrCancelled:async e=>{o?.(e instanceof Error?e.message:String(e))}});return{...u,clauses:c,sendTransaction:async()=>u.sendTransaction(c)}},Qf=(t,n)=>{if(!t||!n||!e(t))throw Error(`Invalid receiver address or amount`);if(isNaN(Number(n)))throw Error(`Invalid amount`);let r=[];try{r.push({to:t,value:bi(n).toString(),data:`0x`,comment:`Transfer ${n} VET to ${t}`})}catch(e){throw console.error(`Error building clauses:`,e),Error(`Invalid amount format`)}return r},$f=({fromAddress:e,receiverAddress:t,amount:n,onSuccess:r,onError:i})=>{let{refresh:a}=Gs(),o=W(()=>Qf(t,n),[t,n]),s=lc({signerAccountAddress:e,privyUIOptions:{title:`Confirm Transfer`,description:`Transfer ${n} VET to ${l(t)}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{a(),r?.()},onTxFailedOrCancelled:async e=>{i?.(e instanceof Error?e.message:String(e))}});return{...s,clauses:o,sendTransaction:async()=>s.sendTransaction(o)}},ep=({clauseBuilder:e,refetchQueryKeys:t,invalidateCache:n=!0,onSuccess:r,onFailure:i,suggestedMaxGas:a,gasPadding:o})=>{let{account:s}=Q(),c=zn(),l=H(async()=>{n&&t?.forEach(async e=>{await c.cancelQueries({queryKey:e}),await c.refetchQueries({queryKey:e})}),r?.()},[n,r,c,t]),u=lc({signerAccountAddress:s?.address,onTxConfirmed:l,suggestedMaxGas:a,onTxFailedOrCancelled:i,gasPadding:o}),d=H(async t=>{u.sendTransaction(e(t))},[e,u]);return{...u,sendTransaction:d}},tp=10*D.SECOND,np=e=>[`VECHAIN_KIT`,`TX_RECEIPT`,e],rp=(e,t=5)=>{let n=jn();return X({queryKey:np(e),queryFn:async()=>{let r=await n.transactions.waitForTransaction(e,{timeoutMs:t*tp,intervalMs:3e3});if(!r)throw Error(`Transaction receipt not found`);return r},enabled:!!e})},ip=(e,t)=>{let n=pi({abi:t,data:e.data.toString(),topics:e.topics.map(e=>e.toString())});return{meta:e.meta,decodedData:n}},ap=({eventName:e,filterParams:t})=>[e,t?JSON.stringify(t):`all`],op=({abi:e,contractAddress:t,eventName:n,filterParams:r,mapResponse:i,nodeUrl:a})=>{let o=jn();return X({queryFn:H(async()=>{if(!o)return[];let s=o.contracts.load(t,e).getEventAbi(n),c=s.encodeFilterTopicsNoNull(r??{}),l=(await Jf({thor:o,nodeUrl:a,filterCriteria:[{criteria:{address:t,topic0:c[0]??void 0,topic1:c[1]??void 0,topic2:c[2]??void 0,topic3:c[3]??void 0,topic4:c[4]??void 0},eventAbi:s}]})).map(t=>ip(t,e));if(l.some(({decodedData:e})=>e.eventName!==n))throw Error(`Unknown event`);return l.map(e=>i({meta:e.meta,decodedData:e.decodedData}))},[o,t,e,n,r,i,a]),queryKey:W(()=>ap({eventName:n,filterParams:r}),[n,r]),enabled:!!o})};function sp({clauses:e,chainId:t,verifyingContract:n}){let r=[],i=[],a=[];return e.forEach(e=>{r.push(e.to??``),i.push(String(e.value)),typeof e.data==`object`&&`abi`in e.data?a.push(hi(e.data)):a.push(e.data||`0x`)}),{domain:{name:`Wallet`,version:`1`,chainId:t,verifyingContract:n},types:{ExecuteBatchWithAuthorization:[{name:`to`,type:`address[]`},{name:`value`,type:`uint256[]`},{name:`data`,type:`bytes[]`},{name:`validAfter`,type:`uint256`},{name:`validBefore`,type:`uint256`},{name:`nonce`,type:`bytes32`}],EIP712Domain:[{name:`name`,type:`string`},{name:`version`,type:`string`},{name:`chainId`,type:`uint256`},{name:`verifyingContract`,type:`address`}]},primaryType:`ExecuteBatchWithAuthorization`,message:{to:r,value:i,data:a,validAfter:0,validBefore:Math.floor(Date.now()/1e3)+300,nonce:en.hexlify(en.randomBytes(32))}}}function cp({clause:e,chainId:t,smartAccount:n}){return{domain:{name:`Wallet`,version:`1`,chainId:t,verifyingContract:n.address??``},types:{ExecuteWithAuthorization:[{name:`to`,type:`address`},{name:`value`,type:`uint256`},{name:`data`,type:`bytes`},{name:`validAfter`,type:`uint256`},{name:`validBefore`,type:`uint256`}],EIP712Domain:[{name:`name`,type:`string`},{name:`version`,type:`string`},{name:`chainId`,type:`uint256`},{name:`verifyingContract`,type:`address`}]},primaryType:`ExecuteWithAuthorization`,message:{validAfter:0,validBefore:Math.floor(Date.now()/1e3)+60,to:e.to,value:String(e.value),data:(typeof e.data==`object`&&`abi`in e.data?hi(e.data):e.data)||`0x`}}}function lp(){let{connection:e,connectedWallet:t}=Q(),{signTypedData:n}=Us(),{signTypedData:r}=Tn(),{network:i}=$(),{data:a}=Gf();return{connection:e,connectedWallet:t,signTypedDataWithCrossApp:n,signTypedDataPrivy:r,network:i,chainId:a}}const up=()=>{let{connection:e,connectedWallet:t,signTypedDataWithCrossApp:n,signTypedDataPrivy:r,network:i,chainId:a}=lp(),o=async e=>{let{version:t}=e;return t&&t<3?await s(e):await c(e)};async function s(o){let{clauses:s,smartAccount:c,title:l=`Sign Transaction`,description:u,buttonText:d=`Sign`}=o,f=[],p=s.map(e=>cp({clause:e,chainId:a,smartAccount:c})),m=[];for(let i=0;i<p.length;i++){let a=p[i],o=s[i];if(!o)throw Error(`Transaction clause at index ${i} is undefined`);if(e.isConnectedWithCrossApp){let e=await n({...a,address:t?.address,types:Object.fromEntries(Object.entries(a.types).map(([e,t])=>[e,[...t]]))});m.push(e);continue}let c=o.data,f=(await r(a,{uiOptions:{title:l,description:u??(s[i].comment||(typeof c==`object`&&c&&`functionName`in c?c.functionName:` `)),buttonText:d}})).signature;m.push(f)}return c.isDeployed||f.push(ln.callFunction(cn.of(k(i.type).accountFactoryAddress),sn.ofAbi(ei.abi).getFunction(`createAccount`),[t?.address??``])),p.forEach((e,t)=>{f.push(ln.callFunction(cn.of(c.address??``),sn.ofAbi(ni.abi).getFunction(`executeWithAuthorization`),[e.message.to,BigInt(e.message.value),e.message.data,BigInt(e.message.validAfter),BigInt(e.message.validBefore),m[t]]))}),f}async function c(o){let{clauses:s,smartAccount:c,title:l,description:u,buttonText:d=`Sign`}=o,f=[],p=sp({clauses:s,chainId:a,verifyingContract:c.address??``}),m;return m=e.isConnectedWithCrossApp?await n({...p,address:t?.address}):(await r(p,{uiOptions:{title:l,description:u,buttonText:d}})).signature,c.isDeployed||f.push(ln.callFunction(cn.of(k(i.type).accountFactoryAddress),sn.ofAbi(ei.abi).getFunction(`createAccount`),[t?.address??``])),f.push(ln.callFunction(cn.of(c.address??``),sn.ofAbi(ni.abi).getFunction(`executeBatchWithAuthorization`),[p.message.to,p.message.value?.map(e=>BigInt(e))??0,p.message.data,BigInt(p.message.validAfter),BigInt(p.message.validBefore),p.message.nonce,m])),f}return{buildClausesWithAuth:o}};let dp=function(e){return e.CUSTOM_TOKENS=`vechain_kit_custom_tokens`,e.ECOSYSTEM_SHORTCUTS=`vechain-kit-ecosystem-shortcuts`,e.CURRENCY=`vechain_kit_currency`,e.NODE_URL=`vechain_kit_node_url`,e.NETWORK=`vechain_kit_network`,e.GAS_TOKEN_PREFERENCES=`vechain_kit_gas_token_preferences`,e}({});const fp=(e,t)=>{let[n,r]=G(()=>{try{let n=w(e);return n?JSON.parse(n):t}catch(e){return console.error(e),t}});return U(()=>{h(e,JSON.stringify(n))},[e,n]),[n,r]},pp=`vechain-kit-storage-change`,mp=(e,t)=>{let[n,r]=G(()=>{if(typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);return n?JSON.parse(n):t}catch(e){return console.error(`Error loading from localStorage:`,e),t}}),i=Zt(!1);return U(()=>{if(!(typeof window>`u`)){if(i.current){i.current=!1;return}try{window.localStorage.setItem(e,JSON.stringify(n)),window.dispatchEvent(new CustomEvent(pp,{detail:{key:e,value:n}}))}catch(e){console.error(`Error writing to localStorage:`,e)}}},[e,n]),U(()=>{if(typeof window>`u`)return;let t=t=>{if(t.key===e&&t.newValue)try{let e=JSON.parse(t.newValue);JSON.stringify(e)!==JSON.stringify(n)&&(i.current=!0,r(e))}catch(e){console.error(`Error parsing storage value:`,e)}},a=(t=>{if(t.detail.key===e)try{let t=window.localStorage.getItem(e);if(t){let e=JSON.parse(t);JSON.stringify(e)!==JSON.stringify(n)&&(i.current=!0,r(e))}}catch(e){console.error(`Error parsing storage value:`,e)}});return window.addEventListener(`storage`,t),window.addEventListener(pp,a),()=>{window.removeEventListener(`storage`,t),window.removeEventListener(pp,a)}},[e,n]),[n,r,H(()=>{if(!(typeof window>`u`))try{let i=window.localStorage.getItem(e),a=i?JSON.parse(i):t;JSON.stringify(a)!==JSON.stringify(n)&&r(a)}catch(e){console.error(`Error syncing localStorage:`,e)}},[e,t,n]),H(()=>{if(typeof window>`u`)return t;let n=window.localStorage.getItem(e);return n?JSON.parse(n):t},[e,t])]},hp=()=>{let[e,t]=fp(dp.ECOSYSTEM_SHORTCUTS,[]);return{shortcuts:e,addShortcut:n=>{e.some(e=>e.url===n.url)||t([...e,n])},removeShortcut:n=>{t(e.filter(e=>e.url!==n))},isShortcut:t=>e.some(e=>e.url===t)}},gp=async(e,t,n,r,i)=>await(await fetch(t+`estimate/clauses/`+r.toLowerCase()+`?type=smartaccount&speed=`+i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({clauses:n,signer:e})})).json(),_p=async e=>await(await fetch(e+`deposit/account`,{method:`GET`,headers:{"Content-Type":`application/json`}})).json(),vp=async(e,t,n,r)=>await(await fetch(r+`sign/transaction/authorized/`+n.toLowerCase(),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({raw:e,origin:t,token:n.toLowerCase()})})).json(),yp=async(e,t,n,r)=>{let i=await t.gas.estimateGas(e,n?.address??``),a=Math.max(i.totalGas,0);return r?await t.transactions.buildTransactionBody(e,a,{isDelegated:r}):await t.transactions.buildTransactionBody(e,a)};function bp(e,t){return fn.of(e.body,ua.concatBytes(e.signature??new Uint8Array,un.of(t.slice(2)).bytes))}function xp(e,t){return fn.decode(un.of(e.slice(2)).bytes,t)}const Sp=()=>{let{connectedWallet:e}=Q(),{data:n}=jf(e?.address??``),{data:r}=yf(n?.address??``,e?.address??``),{preferences:i}=Cp(),a=Qr.createInterface(),{network:o}=$(),{buildClausesWithAuth:s}=up(),c=Ri.at(k(o.type).nodeUrl);return{sendTransactionUsingGenericDelegator:H(async({clauses:e,genericDelegatorUrl:o})=>{try{let l=i.gasTokenToUse,u=await gp(n?.address??``,o,e,l,`medium`),d=await _p(o),p={to:l===`VET`?d.depositAccount:f[l].address,value:l===`VET`?bi(u.transactionCost?.toString()??`0`).toString():`0x0`,data:l===`VET`?`0x`:a.encodeFunctionData(`transfer`,[d.depositAccount,bi(u.transactionCost?.toString()??`0`)]),comment:`Transfer ${u.transactionCost} ${l} to ${d.depositAccount}`,abi:l===`VET`?void 0:a.getFunction(`transfer`)},m=await s({clauses:[...e,p],smartAccount:n,version:r?.version??0}),h=await yp(m,c,t,!0),g=await fn.of(h).signAsSender(un.of(t.privateKey).bytes),_=await vp(un.of(g.encoded).toString(),t.address,l,o),v=bp(g,_.signature),y={clauses:m,simulateTransactionOptions:{caller:t.address??``,gasPayer:_.address}},b=await c.transactions.simulateTransaction(y.clauses,{...y.simulateTransactionOptions});for(let e=0;e<b.length;e++)if(b[e].reverted)throw Error(b[e].vmError);return(await c.transactions.sendTransaction(v)).id}catch(e){console.error(`Error sending transaction using generic delegator`,e)}throw Error(`Failed to send transaction using generic delegator, no gas tokens have sufficient balance or are enabled in Gas Token Preferences`)},[i,n,r,s,c,t])}},Cp=()=>{let[e,t]=mp(dp.GAS_TOKEN_PREFERENCES,ne);return{preferences:e,supportedTokens:f,updatePreferences:H(e=>{t(t=>({...t,...e}))},[t]),reorderTokenPriority:H(e=>{t(t=>{let n=e.filter(e=>t.availableGasTokens.includes(e)&&!t.excludedTokens.includes(e));return{...t,tokenPriority:e,availableGasTokens:n,gasTokenToUse:n[0]??t.gasTokenToUse}})},[t]),toggleTokenExclusion:H(e=>{t(t=>{let n=t.excludedTokens.includes(e),r=n?t.excludedTokens.filter(t=>t!==e):[...t.excludedTokens,e],i=t.tokenPriority.indexOf(e),a=n?[...t.availableGasTokens.slice(0,i),e,...t.availableGasTokens.slice(i)]:t.availableGasTokens.filter(t=>t!==e);return{...t,excludedTokens:r,availableGasTokens:a,gasTokenToUse:a[0]??t.gasTokenToUse}})},[t])}},wp=({clauses:e,enabled:t=!0,tokens:n,sendingAmount:r,sendingTokenSymbol:i})=>{let{connectedWallet:a,account:o}=Q(),{data:s}=jf(a?.address??``),{feeDelegation:c}=$(),{balances:l}=ns(o?.address??``),{updatePreferences:u}=Cp();return X({queryKey:[`gas-estimation`,JSON.stringify(e),JSON.stringify(n),r,i],queryFn:async()=>{let t=null;for(let a of n)try{let n=await gp(s?.address??``,c?.genericDelegatorUrl??``,e,a,`medium`),o=n.transactionCost,d=Number(l.find(e=>e.symbol===a)?.balance||0),f=o+(r&&i&&a===i?Number(r):0);if(d>=f)return u({gasTokenToUse:a}),{...n,usedToken:a};t=Error(`Insufficient ${a} balance: has ${d}, needs ${f}`)}catch(e){t=e}throw t||Error(`All gas tokens failed estimation or have insufficient balance`)},enabled:t&&e.length>0&&!!s?.address&&!!c?.genericDelegatorUrl&&n.length>0&&l.length>0,staleTime:30*1e3,gcTime:300*1e3,refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchOnMount:!1,retry:!1,retryDelay:1e3})},Tp=({clauses:e,tokens:t,enabled:n=!0})=>{let{connectedWallet:r}=Q(),{data:i}=jf(r?.address??``),{feeDelegation:a}=$();return X({queryKey:[`gas-estimation-all-tokens`,JSON.stringify(e),JSON.stringify(t)],queryFn:async()=>{let n={};return await Promise.all(t.map(async t=>{try{n[t]={cost:(await gp(i?.address??``,a?.genericDelegatorUrl??``,e,t,`medium`)).transactionCost||0,loading:!1}}catch(e){n[t]={cost:0,loading:!1,error:e instanceof Error?e.message:`Unknown error`}}})),n},enabled:n&&e.length>0&&!!i?.address&&!!a?.genericDelegatorUrl&&t.length>0,staleTime:30*1e3,gcTime:300*1e3,refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchOnMount:!1})},Ep=({label:e,address:t,domain:n,imageSrc:r,imageAlt:i=`Account`,hideAddress:a=!1,balance:o,tokenAddress:s})=>{let{t:c}=Y(),u=B(`colors`,`vechain-kit-text-primary`),d=B(`colors`,`vechain-kit-text-secondary`),f=B(`colors`,`vechain-kit-card`),{isLoading:p}=fs({address:t}),{tokens:m,isLoading:h}=ds({address:t}),g=W(()=>s?m.find(e=>e.address===s):null,[m,s]),_=W(()=>o===void 0?g?Number(g.balance):0:o,[o,g]),v=g?.symbol||``;return p||h?J(A,{w:`full`,p:2,borderRadius:`lg`,bg:f,children:[q(R,{fontSize:`sm`,fontWeight:`bold`,mb:2,color:u,children:e}),J(M,{minH:`50px`,justify:`space-between`,children:[J(M,{children:[q(kt,{boxSize:`40px`,borderRadius:`xl`}),J(z,{align:`start`,spacing:0,children:[q(kt,{height:`16px`,width:`120px`,borderRadius:`md`}),!a&&q(kt,{mt:2,height:`12px`,width:`100px`,borderRadius:`md`})]})]}),J(z,{justify:`flex-start`,align:`flex-end`,spacing:0,mr:2,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:u,children:c(`Balance`)}),q(kt,{height:`12px`,width:`80px`,borderRadius:`md`})]})]})]}):J(A,{w:`full`,p:2,borderRadius:`lg`,bg:f,wordBreak:`break-word`,children:[q(R,{fontSize:`sm`,fontWeight:`bold`,mb:2,color:u,children:e}),J(M,{minH:`50px`,justify:`space-between`,children:[J(M,{children:[q(ut,{src:r,alt:i,boxSize:`40px`,borderRadius:`xl`,objectFit:`cover`}),q(z,{align:`start`,spacing:0,children:n?J(K,{children:[q(R,{fontWeight:`medium`,fontSize:`sm`,color:u,"data-testid":`${e.toLowerCase()}-domain`,children:n}),!a&&q(R,{fontSize:`xs`,color:d,"data-testid":`${e.toLowerCase()}-address`,children:l(t,6,4)})]}):q(R,{fontWeight:`medium`,fontSize:`sm`,color:u,"data-testid":`${e.toLowerCase()}-address`,children:l(t,6,4)})})]}),J(z,{justify:`flex-start`,align:`flex-end`,spacing:0,mr:2,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:u,children:c(`Balance`)}),J(R,{fontSize:`xs`,color:d,children:[_.toLocaleString(void 0,{maximumFractionDigits:2}),v&&` ${v}`]})]})]})]})},Dp=({onClick:e,...t})=>q(lt,{"aria-label":`FAQ`,icon:q(N,{as:sr,fontSize:`17px`}),size:`sm`,variant:`ghost`,position:`absolute`,borderRadius:`50%`,left:`10px`,top:`10px`,onClick:e,...t}),Op=({children:e,...t})=>(rf(),q(z,{...t,children:e})),kp=({wallet:e,props:t})=>{let n=Zt(e?.image);return U(()=>{e?.image&&!e.isLoadingMetadata&&(n.current=e.image)},[e?.image,e?.isLoadingMetadata]),!t?.src&&!e?.image&&!n.current||e?.isLoadingMetadata?q(kt,{rounded:`full`,width:t?.width,height:t?.height}):q(ut,{src:t?.src||e?.image||n.current,alt:t?.alt||e?.domain,objectFit:`cover`,rounded:`full`,...t})},Ap=({transactionError:e,isSubmitting:t,isTxWaitingConfirmation:n,onConfirm:r,onRetry:i,transactionPendingText:a,txReceipt:o,isSubmitForm:s=!1,buttonText:c,isDisabled:l=!1,style:u,onError:d,gasEstimationError:f,hasEnoughGasBalance:p=!0,isLoadingGasEstimation:m=!1,showGasEstimationError:h=!1,context:g=`transaction`})=>{let{t:_}=Y(),{darkMode:v}=$(),{network:y}=$(),b=W(()=>e?e.reason||_(`Something went wrong. Please try again.`):null,[e,_]);U(()=>{b&&d?.(b)},[b,d]);let x=W(()=>{if(u?.accentColor)return`${u.accentColor} !important`},[u?.accentColor]),S=W(()=>{if(!h||m||!(f||p))return null;if(!p&&!f)return{message:_(`You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.`)};if(f){let e=``;switch(g){case`send`:e=_(`Insufficient balance to complete this transfer and cover gas fees.`);break;case`customization`:e=_(`Insufficient balance to update your profile and cover gas fees.`);break;case`domain`:e=_(`Insufficient balance to claim this domain and cover gas fees.`);break;default:e=_(`Insufficient balance to complete this transaction and cover gas fees.`)}return{message:e}}return null},[f,p,m,h,g,_]);return J(z,{width:`full`,spacing:4,children:[b&&q(A,{p:3,borderRadius:`md`,bg:v?`rgba(218, 90, 90, 0.1)`:`rgba(218, 90, 90, 0.05)`,borderWidth:`1px`,borderColor:v?`rgba(218, 90, 90, 0.3)`:`rgba(218, 90, 90, 0.2)`,w:`full`,children:q(R,{color:`#da5a5a`,fontSize:`sm`,fontWeight:`medium`,"data-testid":`tx-send-error-msg`,children:b})}),S&&!b&&q(A,{p:3,borderRadius:`md`,bg:v?`rgba(218, 90, 90, 0.1)`:`rgba(218, 90, 90, 0.05)`,borderWidth:`1px`,borderColor:v?`rgba(218, 90, 90, 0.3)`:`rgba(218, 90, 90, 0.2)`,w:`full`,children:q(R,{color:`#da5a5a`,fontSize:`sm`,fontWeight:`medium`,"data-testid":`gas-estimation-error`,children:S.message})}),q(j,{px:4,variant:b?`vechainKitSecondary`:`vechainKitPrimary`,bg:x,onClick:()=>b&&i?i():r(),type:s?`submit`:`button`,isLoading:t,isDisabled:l,loadingText:n?_(`Waiting wallet confirmation...`):a,"data-testid":`confirm-button`,children:b?_(`Retry`):c||_(`Confirm`)}),b&&o?.meta.txID&&q(ht,{isExternal:!0,fontSize:`sm`,color:v?`whiteAlpha.600`:`blackAlpha.600`,textAlign:`center`,width:`full`,href:`${k(y.type).explorerUrl}/${o?.meta.txID}`,target:`_blank`,rel:`noopener noreferrer`,children:_(`View transaction on the explorer`)})]})},jp=({onClick:e,hasUnreadNotifications:t,...n})=>q(lt,{"aria-label":`Notifications`,size:`sm`,variant:`ghost`,position:`absolute`,borderRadius:`50%`,left:`10px`,top:`10px`,onClick:e,icon:J(A,{position:`relative`,children:[q(Xn,{fontSize:`20px`}),t&&q(A,{position:`absolute`,top:`-1px`,right:`-1px`,minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`})]}),...n}),Mp=({isOpen:e,onClose:t,selectedToken:n,onTokenSelect:r,availableTokens:i,tokenEstimations:a,walletAddress:o})=>{let{t:c}=Y(),{balances:l}=ns(o),[u,d]=V.useState(n),[p,m]=V.useState(!1),h=B(`colors`,`vechain-kit-text-primary`),g=B(`colors`,`vechain-kit-text-secondary`),_=B(`colors`,`vechain-kit-text-tertiary`),y=B(`colors`,`vechain-kit-error`),b=e=>e?_:`transparent`,x=e=>e?h:`transparent`;V.useEffect(()=>{e&&(d(n),m(!1))},[e,n]);let S=()=>{r(u,p),t()},C=e=>{let t=l.find(t=>t.symbol===e);return t?Number(t.balance).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}):`0.00`},w=e=>{let t=l.find(t=>t.symbol===e),n=a[e];return!t||!n?!1:Number(t.balance)<n.cost};return J($a,{isOpen:e,onClose:t,size:`sm`,children:[J(L,{children:[q(R,{fontSize:`lg`,fontWeight:`semibold`,color:h,children:c(`Fee token`)}),q(R,{fontSize:`sm`,fontWeight:`normal`,color:g,mt:1,children:c(`Select the token to pay the fee with`)})]}),q(P,{children:J(z,{spacing:2,align:`stretch`,children:[i.map(e=>{let t=f[e],n=u===e,r=a[e]||{cost:0,loading:!0},i=w(e);return q(A,{cursor:i?`not-allowed`:`pointer`,bg:b(n),border:`1px`,borderColor:x(n),borderRadius:`md`,p:3,transition:`all 0.2s ease`,_hover:{backgroundColor:i?b(n):g&&`#ffffff12`,borderColor:i?x(n):g},opacity:i?.5:1,onClick:()=>!i&&d(e),children:J(M,{spacing:3,justify:`space-between`,children:[J(M,{spacing:3,flex:1,children:[V.cloneElement(s[e],{boxSize:`36px`,borderRadius:`full`}),J(z,{align:`start`,spacing:0,children:[q(R,{fontWeight:`medium`,color:h,children:t.symbol}),J(R,{fontSize:`xs`,color:g,children:[c(`Balance`),`:`,` `,C(e)]}),i&&q(R,{fontSize:`xs`,color:y,children:c(`Insufficient balance`)})]})]}),q(z,{align:`end`,spacing:0,children:r.loading?q(kt,{height:`16px`,width:`60px`}):J(K,{children:[q(R,{fontSize:`sm`,fontWeight:`semibold`,color:h,children:v(r.cost,2)}),q(R,{fontSize:`xs`,color:g,children:t.symbol})]})})]})},e)}),u!==n&&J(it,{display:`flex`,alignItems:`center`,justifyContent:`space-between`,children:[q(at,{htmlFor:`remember-choice`,mb:`0`,fontSize:`sm`,color:h,children:c(`Use this token for future transactions`)}),q(Mt,{id:`remember-choice`,isChecked:p,onChange:e=>m(e.target.checked),color:h})]})]})}),q(I,{children:J(z,{spacing:3,w:`full`,children:[q(j,{variant:`vechainKitPrimary`,onClick:S,isDisabled:w(u),children:c(`Apply`)}),q(j,{variant:`ghost`,width:`full`,onClick:t,children:c(`Cancel`)})]})})]})},Np=({estimation:e,isLoading:t,isLoadingTransaction:n,onTokenChange:r,clauses:i=[],userSelectedToken:a})=>{let{t:o}=Y(),{feeDelegation:c}=$(),{connection:l,account:u}=Q(),{preferences:d,reorderTokenPriority:p}=Cp(),{isOpen:m,onOpen:h,onClose:g}=Gt(),_=B(`colors`,`vechain-kit-text-primary`),y=B(`colors`,`vechain-kit-text-secondary`),[b,x]=G(()=>{let e={};return d.availableGasTokens.forEach(t=>{e[t]={cost:0,loading:!0}}),e}),{data:S,isLoading:C}=Tp({clauses:i,tokens:d.availableGasTokens,enabled:i.length>0});U(()=>{!C&&S&&x(S)},[S,C]),U(()=>{e&&x(t=>({...t,[e.usedToken]:{cost:e.transactionCost||0,loading:!1}}))},[e]),U(()=>{C&&x(d.availableGasTokens.reduce((e,t)=>(e[t]={cost:0,loading:!0},e),{}))},[C,d.availableGasTokens]);let w=H((t,n)=>{n&&p([t,...d.tokenPriority.filter(e=>e!==t)]),r&&t!==e?.usedToken&&r(t)},[e,r,p,d.tokenPriority]);if(c?.delegatorUrl||l.isConnectedWithDappKit||d.availableGasTokens.length===0)return null;let{balances:ee}=ns(u?.address??``),T=e=>{let t=ee.find(t=>t.symbol===e),n=b[e];return!t||!n||n.loading?!0:Number(t.balance)<n.cost},E=e?.usedToken,D=d.availableGasTokens,te;E?te=E:a&&D.includes(a)?te=a:(te=D.find(e=>b[e]&&!b[e].loading&&!T(e)),te||=D.find(e=>b[e]&&!b[e].loading),te||=D[0]);let ne=te?b[te]:void 0,re=E&&e?.transactionCost?e.transactionCost:ne?.cost||0,O=te?f[te]:void 0;return J(K,{children:[q(nt,{mt:3}),J(M,{mt:3,w:`full`,justifyContent:`start`,alignItems:`center`,children:[J(z,{align:`start`,spacing:0,w:`full`,children:[q(R,{fontSize:`sm`,fontWeight:`light`,textAlign:`left`,w:`full`,color:y,children:o(`Fee`)}),q(M,{align:`start`,justifyContent:`space-between`,spacing:0,w:`full`,children:q(M,{justifyContent:`flex-start`,w:`full`,children:t||!E&&(!ne||ne.loading)||!O?J(K,{children:[q(kt,{height:`16px`,width:`120px`,borderRadius:`md`}),q(kt,{height:`16px`,width:`60px`,borderRadius:`md`})]}):J(K,{children:[J(R,{color:_,fontSize:`sm`,fontWeight:`semibold`,children:[v(re,2),` `,O.symbol]}),J(R,{color:y,fontSize:`xs`,children:[`≈`,` $`,(re*.01).toFixed(2)]})]})})})]}),J(j,{onClick:h,variant:`outline`,size:`sm`,borderRadius:`full`,px:6,disabled:n,color:y,borderColor:y,_hover:{bg:y},leftIcon:V.cloneElement(s[te||d.availableGasTokens[0]],{boxSize:`20px`,borderRadius:`full`}),children:[q(R,{fontSize:`sm`,fontWeight:`semibold`,children:te||d.availableGasTokens[0]}),q(N,{as:tr,boxSize:5,color:y})]})]}),q(Mp,{isOpen:m,onClose:g,selectedToken:te||d.availableGasTokens[0],onTokenSelect:w,availableTokens:d.availableGasTokens,tokenEstimations:b,walletAddress:u?.address??``})]})},Pp=({isOpen:e,onClose:t,steps:n,activeStep:r,goToPrevious:i,setActiveStep:a,disableBackButton:o,disableCloseButton:s,closeOnOverlayClick:c=!0,isCloseable:l=!0})=>{let u=()=>{a(0),t()},[d]=Kt(`(min-width: 1060px)`),f=n[r],p=r===0,m=!p&&!o||f?.title||d&&!s;return f?q($a,{closeOnOverlayClick:c,isOpen:e,onClose:u,isCloseable:l,blockScrollOnMount:!0,children:q(Ge,{p:0,bg:`none`,children:J(Ke,{p:0,children:[m?J(Z,{children:[f?.title?q(L,{children:f.title}):null,!p&&!o?q(Ja,{onClick:i}):null,d&&!s?q(F,{onClick:t}):null]}):null,f?.description?q(R,{fontSize:{base:14,md:16},fontWeight:400,px:4,children:f?.description}):null,q(Vn.div,{initial:`hidden`,animate:`visible`,style:{width:`100%`},children:f.content},f.key)]})})}):null},Fp=({document:e,register:t,isText:n=!1})=>{let{t:r}=Y(),{darkMode:i}=$(),a=e.displayName??r(`Policy`),o=i?`whiteAlpha.400`:`blackAlpha.400`,s=i?`blue.300`:`blue.500`,c=i?`blue.200`:`blue.700`,l=(()=>{if(!e.documentType)return a;switch(e.documentType){case`terms`:return e.displayName||`Terms of Service`;case`privacy`:return e.displayName||`Privacy Policy`;case`cookies`:return e.displayName||`Cookie Policy`;default:return e.displayName||`Legal Document`}})();return n?J(ht,{href:e.url,isExternal:!0,color:`blue.500`,textDecoration:`underline`,_hover:{color:`blue.300`,textDecoration:`underline`},fontWeight:`medium`,display:`contents`,alignItems:`center`,children:[q(dt,{...t(e.id,{required:e.required}),type:`checkbox`,hidden:!0}),l,q(N,{as:fr,ml:1,boxSize:3})]},e.id):q(M,{width:`full`,borderRadius:`md`,transition:`all 0.2s`,children:J(M,{align:`flex-start`,spacing:3,width:`full`,children:[q(Ze,{mt:`2px`,size:`md`,colorScheme:`blue`,borderColor:o,...t(e.id,{required:e.required}),"data-testid":`tnc-checkbox`}),J(R,{fontSize:`xs`,children:[r(`I have read and agree to `),J(ht,{href:e.url,isExternal:!0,color:s,textDecoration:`underline`,_hover:{color:c,textDecoration:`underline`},fontWeight:`medium`,display:`contents`,alignItems:`center`,children:[l,q(N,{as:fr,ml:1})]}),e.required&&q(R,{as:`span`,color:`red.500`,fontWeight:`bold`,children:`*`})]})]})},e.id)},Ip=({onAgree:e,onReject:t,onlyOptionalDocuments:n=!1})=>{let{t:r}=Y(),{darkMode:i}=$(),{documentsNotAgreed:a}=Wp(),{requiredDocuments:o,optionalDocuments:s}=W(()=>a.reduce((e,t)=>(t.required?e.requiredDocuments.push(t):e.optionalDocuments.push(t),e),{requiredDocuments:[],optionalDocuments:[]}),[a]),{handleSubmit:c,register:l,formState:{isValid:u},watch:d}=Hi({defaultValues:W(()=>a.reduce((e,t)=>(e[t.id]=t.required,e),{}),[a])}),f=d(),p=W(()=>a.filter(e=>f[e.id]),[a,f]),m=a?.length===p.length,h=H(t=>{let n=new Set(Object.entries(t).filter(([e,t])=>t).map(([e])=>e));return e(a.filter(e=>n.has(e.id)))},[a,e]),g=i?`#3a3a3a`:`#eaeaea`,_=i?`#2a2a2a`:`#f5f5f5`,v=i?`gray.300`:`gray.600`,y=i?`0 2px 8px rgba(0, 0, 0, 0.2)`:`0 2px 8px rgba(0, 0, 0, 0.05)`,b=o.length>0,x=s.length>0,S=W(()=>{let e=s.filter(e=>f[e.id]).length;return r(m?`Accept all`:n&&e===0?`Ignore and continue`:b&&!x||b&&e===0?`Accept`:`Accept selected`)},[n,m,s,f]),C=e=>e===o.length-2&&o.length>1?r(` and `):`, `;return q(jt,{width:`full`,children:J(`form`,{onSubmit:c(h),children:[q(Z,{children:q(L,{children:r(`Terms and Policies`)})}),q(P,{children:J(z,{align:`stretch`,spacing:5,width:`full`,children:[b&&J(R,{as:`span`,fontSize:`sm`,children:[r(`By continuing, you agree to`),` `,o.map((e,t)=>J(Jt,{children:[q(Fp,{document:e,register:l,isText:!0},e.id),t<o.length-1?C(t):null]},e.id)),`.`,` `,r(`Please take a moment to review all the policies, with acceptance being mandatory to continue.`)]}),n&&q(R,{fontSize:`sm`,color:v,mb:3,children:q(gn,{i18nKey:`<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.`,components:{bold:q(R,{as:`span`,fontWeight:`semibold`,color:v})}})}),x&&J(jt,{p:4,borderRadius:`xl`,bg:_,borderWidth:`1px`,borderColor:g,boxShadow:y,spacing:5,children:[q(R,{fontSize:`md`,fontWeight:`bold`,color:v,children:r(`Optional`)}),q(z,{align:`stretch`,spacing:4,children:s.map(e=>q(Fp,{document:e,register:l},e.id))})]})]})}),q(I,{children:J(z,{width:`full`,spacing:3,children:[q(j,{variant:`vechainKitPrimary`,width:`full`,type:`submit`,isDisabled:!u,"data-testid":`accept-tnc-button`,children:S}),!n&&q(j,{variant:`ghost`,width:`full`,onClick:t,"data-testid":`reject-tnc-button`,colorScheme:`red`,children:r(`Reject and logout`)})]})})]})})};var Lp=function(e){return e.REVIEW_DOCUMENTS=`REVIEW_DOCUMENTS`,e.REJECT_DOCUMENTS=`REJECT_DOCUMENTS`,e}(Lp||{});const Rp=({isOpen:e,onAgree:t,handleLogout:n,onlyOptionalDocuments:r})=>{let{t:i}=Y(),{activeStep:a,goToPrevious:o,setActiveStep:s,goToNext:c}=qt({index:0,count:Object.keys(Lp).length}),l=()=>{s(0)},u=()=>{c()},d=()=>{n(),l()};return q(Pp,{isOpen:e,onClose:()=>{},goToPrevious:o,goToNext:c,setActiveStep:s,steps:W(()=>[{key:Lp.REVIEW_DOCUMENTS,content:q(Ip,{onAgree:t,onReject:u,onlyOptionalDocuments:r})},{key:Lp.REJECT_DOCUMENTS,content:q(nl,{onDisconnect:d,onBack:o,onClose:o,text:i(`Are you sure you want to reject the policies and disconnect?`),showCloseButton:!1})}],[Ip,nl,t,d]),disableCloseButton:!0,disableBackButton:!0,isCloseable:!1,closeOnOverlayClick:!1,activeStep:a})},zp=e=>`${e.documentType}-${e.url.replace(/[^\w-]+/g,`-`)}-v${e.version}`,Bp=e=>e.map(e=>({...e,id:zp(e)})),Vp=e=>e.filter(e=>!e.required),Hp=(e,t)=>{let n=Date.now();return e.map(e=>({...e,walletAddress:t,timestamp:n}))},Up=Yt(void 0),Wp=()=>Xt(Up)||{hasAgreedToRequiredDocuments:!0,agreements:[],walletAddress:void 0,documents:[],documentsNotAgreed:[]},Gp=({children:e})=>{let{connection:t,account:n,disconnect:r}=Q(),{darkMode:i,legalDocuments:a,theme:s}=$(),[c,l]=mp(`vechain-kit-legal-documents`,[]),[u,d]=mp(`vechain-kit-legal-documents-optional-reject`,[]),[f,p]=G(!1),h=H((e,t)=>u.some(n=>o(n.walletAddress,t)&&n.id===e.id),[u]),[g,_]=W(()=>{let e=Bp([{items:a?.cookiePolicy||[],type:se.COOKIES,source:m.APPLICATION},{items:a?.privacyPolicy||[],type:se.PRIVACY,source:m.APPLICATION},{items:a?.termsAndConditions||[],type:se.TERMS,source:m.APPLICATION}].flatMap(e=>e.items.map(t=>({...t,documentType:e.type,documentSource:e.source}))));return[e,e.filter(e=>e.required)]},[a]),v=W(()=>n?.address?g.filter(e=>c.some(t=>o(t.walletAddress,n.address)&&t.id===e.id)?!1:!u.some(t=>o(t.walletAddress,n.address)&&t.id===e.id)):[],[g,n?.address,c,u]),y=W(()=>!_.length||!n?.address?!0:_.every(e=>c.some(t=>o(t.walletAddress,n.address)&&t.id===e.id)),[_,c,n?.address]),b=W(()=>{if(!n?.address||!v?.length)return!1;let e=Vp(v);return e.length===0?!1:e.some(e=>!h(e,n.address))},[v,n?.address,Vp,h]),x=W(()=>y&&b,[y,b]);W(()=>{let e=new Set(c.map(e=>e.id));return g.some(t=>e.has(t.id))},[g,c]),U(()=>{t.isConnected&&n?.address?p(!y||b):p(!1)},[t.isConnected,n?.address,y,b]);let S=H((e,t)=>{let n=Array.isArray(e)?e:[e];if(!n.length)return;let r=Hp(n,t);l([...c.filter(e=>!o(e.walletAddress,t)||!n.some(t=>t.id===e.id)),...r])},[c,Hp]),C=H(e=>{if(!n?.address)return;let t=Vp(v);if(t.length===0)return;let r=e.map(e=>e.id),i=t.filter(e=>!r.includes(e.id));if(!i?.length)return;let a=Hp(i,n.address);d(e=>[...e,...a])},[n?.address,v,Vp,Hp]),w=H(e=>{if(!n?.address)return;let t=Array.isArray(e)?e:[e];t.length>0&&S(t,n.address),C(t),p(!1)},[n?.address,S,C]);return J(Up.Provider,{value:{hasAgreedToRequiredDocuments:y,agreements:c,walletAddress:n?.address,documents:g,documentsNotAgreed:v},children:[e,q(td,{darkMode:i,theme:s,children:q(Rp,{isOpen:f,onAgree:w,handleLogout:x?()=>{}:()=>{r(),p(!1)},onlyOptionalDocuments:x})})]})},Kp=Yt(null),qp=({children:e,nodeUrl:n,delegatorUrl:r=_(),delegateAllTransactions:i,genericDelegator:a})=>{let{signTypedData:o,exportWallet:s,signMessage:c}=Tn(),{signTypedData:l,signMessage:u}=Us(),{connection:d,connectedWallet:f}=Q(),{network:p}=$(),{data:m}=jf(f?.address??``),{data:h}=yf(m?.address??``,f?.address??``),{data:g}=Cf(f?.address??``),{buildClausesWithAuth:v}=up(),{sendTransactionUsingGenericDelegator:y}=Sp(),b=Ri.at(n),x=async(e,i,a)=>{if(!m?.address)throw Error(`Smart account address is not set`);let o=new zi(b,i??new Ii([{privateKey:Buffer.from(t.privateKey.slice(2),`hex`),address:t.address}],{gasPayer:{gasPayerServiceUrl:r}}),!0),s=a??await o.getSigner(t.address),c=Bi.transactionBodyToTransactionRequestInput(e,t.address),l=await s.signTransaction(c),{id:u}=await fetch(`${n}/transactions`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({raw:l})}).then(e=>e.json());return u},S=H(async({txClauses:e=[],title:n=`Sign Transaction`,description:i,buttonText:o=`Sign`})=>{if(!m||m&&!m.address||!f||f&&!f.address)throw Error(`Address or embedded wallet is missing`);if(a)return await y({clauses:e,genericDelegatorUrl:r??``});let s=await v({clauses:e,smartAccount:m,version:g?1:h?.version??3,title:n,description:i,buttonText:o}),c={clauses:s,simulateTransactionOptions:{caller:t.address}},l=await b.transactions.simulateTransaction(c.clauses,{...c.simulateTransactionOptions});for(let e=0;e<l.length;e++)if(l[e].reverted)return console.error(`simulatedTx1[i].vmError: ${l[e].vmError}`),l[e].vmError;return await x(await yp(s,b,t,!0))},[y,a,m,f,r,v,g,h,b]);return q(Kp.Provider,{value:{accountFactory:k(p.type).accountFactoryAddress,sendTransaction:S,signMessage:async e=>d.isConnectedWithCrossApp?await u(e):(await c({message:e})).signature,signTypedData:async e=>d.isConnectedWithCrossApp?await l({...e,address:f?.address,types:Object.fromEntries(Object.entries(e.types).map(([e,t])=>[e,[...t]]))}):(await o(e)).signature,exportWallet:s,delegateAllTransactions:i},children:e})},Jp=()=>{let e=Xt(Kp);if(!e)throw Error(`usePrivyWalletProvider must be used within a PrivyWalletProvider`);return e},Yp=Yt(null),$=()=>{let e=Xt(Yp);if(!e)throw Error(`useVeChainKitConfig must be used within VeChainKit`);return e},Xp=e=>{let t=[],n={...e};if(n.dappKit||={allowedWallets:[`veworld`]},(n.privy!==void 0||n.loginMethods?.some(e=>e.method===`vechain`||e.method===`ecosystem`))&&(n.feeDelegation?!n.feeDelegation.delegatorUrl&&!n.feeDelegation.genericDelegatorUrl&&(n.feeDelegation.genericDelegatorUrl=_()):n.feeDelegation={genericDelegatorUrl:_()}),!n.network||!n.network.type)n.network={type:`main`};else{let e=n.network.type;[`main`,`test`,`solo`].includes(e)||t.push(`network.type must be either "main", "test" or "solo"`)}if(n.loginMethods||=[{method:`vechain`,gridColumn:4},{method:`ecosystem`,gridColumn:4},{method:`dappkit`,gridColumn:4}],n.loginMethods&&!n.privy){let e=n.loginMethods.filter(e=>[`email`,`google`,`passkey`,`more`].includes(e.method));e.length>0&&t.push(`Login methods ${e.map(e=>`"${e.method}"`).join(`, `)} require Privy configuration. Please either remove these methods or configure the privy prop.`)}if(n?.legalDocuments&&(n.legalDocuments.termsAndConditions&&n.legalDocuments.termsAndConditions.forEach(e=>{C(e.url)||t.push(`legalDocuments.termsAndConditions.url is invalid: ${e.url}`)}),n.legalDocuments.privacyPolicy&&n.legalDocuments.privacyPolicy.forEach(e=>{C(e.url)||t.push(`legalDocuments.privacyPolicy.url is invalid: ${e.url}`)}),n.legalDocuments.cookiePolicy&&n.legalDocuments.cookiePolicy.forEach(e=>{C(e.url)||t.push(`legalDocuments.cookiePolicy.url is invalid: ${e.url}`)})),t.length>0)throw Error(`VeChainKit Configuration Error:
|
|
192
|
+
`}),od=({children:e,theme:t,bodyFont:n,headingFont:r})=>J(ra,{value:W(()=>id(),[]),children:[q(ad,{bodyFont:n,headingFont:r}),q(Xe,{theme:t,resetCSS:!1,portalZIndex:void 0,children:e})]}),sd=({darkMode:e})=>{try{if(S(`[data-chakra-color-mode]`))return null}catch(e){console.error(e)}return q(et,{initialColorMode:e?`dark`:`light`})},cd=Yt({portalRootRef:void 0,tokens:void 0}),ld=()=>{let e=Xt(cd);if(!e)throw Error(`useVechainKitTheme must be used within a VechainKitThemeProvider`);return e},ud=({darkMode:e=!1})=>{let{setColorMode:t,colorMode:n}=Wt();return U(()=>{let r=e?`dark`:`light`;n!==r&&t(r)},[e]),q(K,{})},dd=({children:e,darkMode:t=!1,theme:n})=>{let r=Zt(null),i=Xt(sm),a=i?i.theme:void 0,o=n??a,s=W(()=>Ra(La(t),za(o,t)),[t,o]),c=W(()=>({...nd(t,o),config:{...nd(t,o).config,initialColorMode:t?`dark`:`light`}}),[t,o]);return J(cd.Provider,{value:{portalRootRef:r,tokens:s},children:[q(sd,{darkMode:t}),J(od,{theme:c,bodyFont:s.fonts.body,headingFont:s.fonts.heading,children:[q(ud,{darkMode:t}),q(A,{id:`vechain-kit-root`,ref:r,bg:`transparent`,borderRadius:`12px`,children:e})]}),q(rd,{})]})},fd=Yt(null),pd=()=>{let e=Xt(fd);if(!e)throw Error(`useModal must be used within ModalProvider`);return e},md=({children:e})=>{let{darkMode:t,theme:n}=$(),[r,i]=G(!1),{setSource:a,connectV2:o}=Mn(),s=H(()=>{y()&&window.vechain&&window.vechain.isInAppBrowser?(a(`veworld`),o(null)):i(!0)},[]),c=H(()=>i(!1),[]),[l,u]=G(!1),[d,f]=G(!1),p=H((e,t)=>{re(e??`main`),f(t?.isolatedView??!1),u(!0)},[]),m=H(()=>{u(!1),setTimeout(()=>{f(!1)},300)},[]),[h,g]=G(!1),_=H(()=>g(!0),[]),v=H(()=>g(!1),[]),[b,x]=G(!1),S=H(()=>x(!0),[]),C=H(()=>x(!1),[]),[w,ee]=G(!1),[T,E]=G(void 0),D=H(e=>{E(e),ee(!0)},[]),te=H(()=>ee(!1),[]),[ne,re]=G(`main`);return J(fd.Provider,{value:{openConnectModal:s,closeConnectModal:c,isConnectModalOpen:r,openAccountModal:p,closeAccountModal:m,isAccountModalOpen:l,setAccountModalContent:re,accountModalContent:ne,isolatedView:d,openTransactionModal:_,closeTransactionModal:v,isTransactionModalOpen:h,openTransactionToast:S,closeTransactionToast:C,isTransactionToastOpen:b,openUpgradeSmartAccountModal:D,closeUpgradeSmartAccountModal:te,isUpgradeSmartAccountModalOpen:w},children:[e,J(dd,{darkMode:t,theme:n,children:[q(Cu,{isOpen:r,onClose:c}),q(Su,{isOpen:l,onClose:m,initialContent:ne}),q(zu,{isOpen:w,onClose:te,style:T})]})]})},hd=()=>{let{loginMethods:e}=$(),t=e?.length===1&&e[0].method===`dappkit`,{openConnectModal:n,closeConnectModal:r,isConnectModalOpen:i}=pd(),{open:a,close:o}=Pn();return{open:t?a:n,close:t?o:r,isOpen:t?!1:i}},gd=({children:e})=>q(K,{children:e}),_d=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=pd();return{open:()=>e(),close:t,isOpen:n}},vd=({children:e})=>q(K,{children:e}),yd=()=>{let{openTransactionModal:e,closeTransactionModal:t,isTransactionModalOpen:n}=pd();return{open:e,close:t,isOpen:n}},bd=({children:e})=>q(K,{children:e}),xd=()=>{let{openTransactionToast:e,closeTransactionToast:t,isTransactionToastOpen:n}=pd();return{open:e,close:t,isOpen:n}},Sd=({children:e})=>q(K,{children:e}),Cd=()=>{let{connection:e}=Q(),{openConnectModal:t,closeConnectModal:n,isConnectModalOpen:r,openAccountModal:i,closeAccountModal:a,isAccountModalOpen:o}=pd();return{open:()=>{e.isConnected?i():t()},close:()=>{o&&a(),r&&n()},isOpen:r||o}},wd=({children:e})=>q(K,{children:e}),Td=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=pd();return{open:t=>{e({type:`choose-name`,props:{setCurrentContent:r,onBack:()=>r(`main`),initialContentSource:`main`}},t)},close:()=>{t()},isOpen:n}},Ed=({children:e})=>q(K,{children:e}),Dd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=pd();return{open:t=>{e({type:`send-token`,props:{setCurrentContent:r}},t)},close:()=>{t()},isOpen:n}},Od=({children:e})=>q(K,{children:e}),kd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=pd();return{open:t=>{e({type:`swap-token`,props:{setCurrentContent:r,fromTokenAddress:t?.fromTokenAddress,toTokenAddress:t?.toTokenAddress}},{isolatedView:t?.isolatedView})},close:()=>{t()},isOpen:n}},Ad=({children:e})=>q(K,{children:e}),jd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=pd();return{open:t=>{e(`access-and-security`,t)},close:()=>{t()},isOpen:n}},Md=({children:e})=>q(K,{children:e}),Nd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=pd();return{open:t=>{e(`ecosystem`,t)},close:()=>{t()},isOpen:n}},Pd=({children:e})=>q(K,{children:e}),Fd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=pd();return{open:t=>{e(`notifications`,t)},close:()=>{t()},isOpen:n}},Id=({children:e})=>q(K,{children:e}),Ld=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=pd();return{open:t=>{e({type:`faq`,props:{onGoBack:()=>r(`main`),showLanguageSelector:!1}},t)},close:()=>{t()},isOpen:n}},Rd=({children:e})=>q(K,{children:e}),zd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=pd();return{open:()=>{e({type:`account-customization`,props:{setCurrentContent:r}})},close:()=>{t()},isOpen:n}},Bd=({children:e})=>q(K,{children:e}),Vd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=pd();return{open:t=>{e(`receive-token`,t)},close:()=>{t()},isOpen:n}},Hd=({children:e})=>q(K,{children:e}),Ud=()=>{let{privy:e,loginMethods:t}=$(),n=e?.appId===O,r=e=>t?Array.isArray(e)?e.some(e=>t.some(t=>t.method===e)):t.some(t=>t.method===e):!0,i=W(()=>t?t.length===0||r(`ecosystem`):!0,[t]),a=W(()=>r(`vechain`),[t]),o=W(()=>r(`dappkit`),[t]),s=W(()=>r(`passkey`),[t]),c=W(()=>r(`email`),[t]),l={showGoogleLogin:W(()=>r(`google`),[t]),showEmailLogin:c,showPasskey:s,showVeChainLogin:a,showDappKit:o,showEcosystem:i,showMoreLogin:W(()=>r(`more`),[t]),showGithubLogin:W(()=>r(`github`),[t]),isOfficialVeChainApp:!1};return e?n?{...l,isOfficialVeChainApp:!0}:{...l}:{...l,showGoogleLogin:!1,showEmailLogin:!1,showPasskey:!1,showMoreLogin:!1}},Wd=e=>{let{openUpgradeSmartAccountModal:t,closeUpgradeSmartAccountModal:n,isUpgradeSmartAccountModalOpen:r}=pd();return{open:()=>t(e),close:n,isOpen:r}},Gd=({children:e})=>q(K,{children:e}),Kd=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=pd();return{open:t=>{e(`profile`,t)},close:()=>{t()},isOpen:n}},qd=({children:e})=>q(K,{children:e}),Jd=()=>{let[e,t]=G(!1),[n,r]=G(null),[i,a]=G(null),{connection:o,account:s}=Q(),{requestCertificate:c}=Nn(),l=om();return{signMessage:H(async e=>{if(!s)throw Error(`Account not found`);t(!0),a(null),r(null);try{let t=null;return t=o.isConnectedWithDappKit?(await c({purpose:`agreement`,payload:{type:`text`,content:e}},{signer:s.address})).signature:await l.signMessage(e),r(t),t}catch(e){let t=e instanceof Error?e:Error(String(e));throw a(t),t}finally{t(!1)}},[o,l]),isSigningPending:e,signature:n,error:i,reset:H(()=>{t(!1),r(null),a(null)},[])}},Yd=()=>{let[e,t]=G(!1),[n,r]=G(null),[i,a]=G(null),{signer:o}=Mn(),{connection:s}=Q(),c=om();return{signTypedData:H(async(e,n)=>{t(!0),a(null),r(null);try{let t;if(s.isConnectedWithDappKit){let r={...e.domain,salt:e.domain?.salt?Buffer.from(e.domain.salt).toString(`hex`):void 0};t=await o.signTypedData(r,e.types,e.message,void 0,n)}else t=await c.signTypedData(e);return r(t),t}catch(e){if(e&&typeof e==`object`&&`statusCode`in e&&e.statusCode===4001){let e=Error(`User denied signature request`);throw a(e),e}let t=e instanceof Error?e:Error(typeof e==`object`?JSON.stringify(e):String(e));throw console.error(t),a(t),t}finally{t(!1)}},[s,c]),isSigningPending:e,signature:n,error:i,reset:H(()=>{t(!1),r(null),a(null)},[])}},Xd=()=>{let{loginWithPasskey:e}=Sn();return{loginWithPasskey:async()=>{try{await e()}catch(e){throw e}}}};let Zd=!1;const Qd=()=>{let{createWallet:e}=yn(),{initOAuth:t}=xn({onComplete:H(async({isNewUser:t})=>{if(t&&!Zd){Zd=!0;try{await e()}catch(e){throw Zd=!1,console.error(`Failed to create wallet:`,e),e}}},[e])});return{initOAuth:async({provider:e})=>{try{await t({provider:e})}catch(e){throw e}}}},$d=()=>{let e=`vechain_kit_cross_app_connection`;return{setConnectionCache:H(t=>{let n={timestamp:Date.now(),ecosystemApp:t};h(e,JSON.stringify(n))},[]),getConnectionCache:H(()=>{let t=w(e);return t?JSON.parse(t):null},[]),clearConnectionCache:H(()=>{ee(e)},[])}},ef=()=>{let{login:e}=Hs(),{setConnectionCache:t}=$d(),{data:n}=oo([O]);return{login:async()=>{try{await e(O),t({name:`VeChain`,logoUrl:n?.[O]?.logo_url,appId:O,website:`https://governance.vebetterdao.org`})}catch(e){throw Rs({error:e,mobileBrowserPopupMessage:`Your mobile browser blocked the login window. Please click 'Try again' to open the login window or change your browser settings.`,rejectedMessage:`Login request was cancelled.`,defaultMessage:`There was an unexpected issue logging in with VeChain. Please try again or contact support.`})}}}},tf=`vechain-kit-app-hub-apps`,nf=`vechain-kit-app-hub-apps-expiry`,rf=`https://raw.githubusercontent.com/vechain/app-hub/master`,af=()=>[`VECHAIN_KIT`,`appHub`,`apps`],of=async()=>{if(typeof window<`u`)try{let e=w(tf),t=w(nf);if(e&&t){let n=parseInt(t,10);if(Date.now()<n)return JSON.parse(e)}}catch{console.warn(`Invalid app-hub cache, fetching fresh data`)}let e=await fetch(`https://api.github.com/repos/vechain/app-hub/contents/apps`);if(!e.ok)throw Error(`Failed to fetch app directories`);let t=(await e.json()).map(async e=>{if(e.type!==`dir`)return null;let t=`${rf}/apps/${e.name}/manifest.json`,n=await fetch(t);if(!n.ok)return console.warn(`Failed to fetch manifest for ${e.name}`),null;try{let t=await n.json();return{id:e.name,name:t.name,description:t.desc,url:t.href,logo:`${rf}/apps/${e.name}/logo.png`,category:t.category,tags:t.tags||[],isVeWorldSupported:t.isVeWorldSupported||!1,repo:t.repo,contracts:t.contracts,veBetterDaoId:t.veBetterDaoId}}catch(t){return console.warn(`Error parsing manifest for ${e.name}:`,t),null}}),n=(await Promise.all(t)).filter(e=>e!==null);if(typeof window<`u`)try{h(tf,JSON.stringify(n)),h(nf,(Date.now()+864e5).toString())}catch(e){console.warn(`Failed to cache app-hub data:`,e)}return n},sf=()=>X({queryKey:af(),queryFn:async()=>{try{return await of()}catch(e){let t=localStorage.getItem(tf);if(t)return JSON.parse(t);throw e}},staleTime:1e3*60*60,retry:2}),cf=({abi:e,address:t,method:n})=>[`callClause`,t,n],lf=({abi:e,address:t,method:n,args:r})=>[`callClause`,t,n,...r?.length?[r]:[]],uf=({address:e,abi:t,method:n,args:r,queryOptions:i})=>{let a=jn();return X({queryKey:lf({abi:t,address:e,method:n,args:r}),queryFn:async()=>T({thor:a,contractAddress:e,abi:t,method:n,args:r}),...i})},df=({thor:e,calls:t,queryKey:n,enabled:r=!0})=>X({queryKey:n,queryFn:()=>re({thor:e,calls:t}),enabled:r}),ff=()=>{let{currentLanguage:e,setLanguage:t}=$();return{currentLanguage:e,setLanguage:t}},pf=()=>{let{currentCurrency:e,setCurrency:t}=$();return{currentCurrency:e,setCurrency:t}},mf=()=>{let{network:e}=$();return e.nodeUrl??k(e.type).nodeUrl},hf=()=>{let[e,t]=G(!0);return U(()=>{if(!y()){t(!1);return}let e=()=>{t(window.matchMedia(`(display-mode: standalone)`).matches||window.standalone||document.referrer.includes(`android-app://`))};return e(),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]),e},gf=()=>{U(()=>{let e=document.querySelector(`.chakra-modal__content`);e&&(e.scrollTop=0)},[])},_f=async(e,t)=>{if(!t)throw Error(`Address is required`);let n=await e.accounts.getAccount(cn.of(t));return{balance:gi(BigInt(n.balance)).toString(),energy:gi(BigInt(n.energy)).toString()}},vf=e=>[`VECHAIN_KIT_BALANCE`,e],yf=e=>{let t=jn();return X({queryKey:vf(e),queryFn:()=>_f(t,e),enabled:!!e&&cn.isValid(e),refetchInterval:1e4})},bf=async(e,t,n)=>{if(!n)throw Error(`Network type is required`);if(!t)throw Error(`Version is required`);let r=e.contracts.load(k(n).accountFactoryAddress,ti.abi),i;switch(t){case 1:case 2:i=r.read.accountImplementationV1();break;case 3:i=r.read.accountImplementationV3();break;default:throw Error(`Invalid version, must be between 1 and 3`)}let a=await i;if(!a)throw Error(`Failed to get account implementation address`);return a[0].toString()},xf=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`IMPLEMENTATION_ADDRESS`,e,t],Sf=e=>{let t=jn(),{network:n}=$();return X({queryKey:xf(e,n.type),queryFn:async()=>bf(t,e,n.type),enabled:!!t&&!!e&&!!n})},Cf=async(e,t)=>{if(!t)throw Error(`Network type is required`);let n=await e.contracts.load(k(t).accountFactoryAddress,ti.abi).read.currentAccountImplementationVersion();if(!n)throw Error(`Failed to get current account implementation version`);return parseInt(n[0].toString())},wf=e=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`CURRENT_ACCOUNT_IMPLEMENTATION_VERSION`,e],Tf=()=>{let e=jn(),{network:t}=$();return X({queryKey:wf(t.type),queryFn:async()=>Cf(e,t.type),enabled:!!e&&!!t})},Ef=async(e,t,n)=>{if(!t)throw Error(`Owner address is required`);if(!n)throw Error(`Network type is required`);let r=await e.contracts.load(k(n).accountFactoryAddress,ti.abi).read.getAccountAddress(t);if(!r)throw Error(`Failed to get account address of ${t}`);return r[0].toString()},Df=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`ADDRESS`,e,t],Of=e=>{let t=jn(),{network:n}=$();return X({queryKey:Df(e,n.type),queryFn:async()=>Ef(t,e,n.type),enabled:!!t&&!!e&&!!n})},kf=ti.abi,Af=(e,t,n)=>lf({abi:kf,address:k(n).accountFactoryAddress,method:`getAccountVersion`,args:[e,t]}),jf=(e,t)=>{let{network:n}=$();return uf({address:k(n.type).accountFactoryAddress,abi:kf,method:`getAccountVersion`,args:[e,t],queryOptions:{select:e=>({version:parseInt(e[0].toString()),isDeployed:e[1]})}})},Mf=ti.abi,Nf=async(e,t,n)=>{if(!t)throw Error(`Owner address is required`);if(!n)throw Error(`Network type is required`);let[r]=await T({thor:e,abi:Mf,contractAddress:k(n).accountFactoryAddress,method:`hasLegacyAccount`,args:[t]});return r},Pf=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`HAS_V1_SMART_ACCOUNT`,e,t],Ff=e=>{let t=jn(),{network:n}=$();return X({queryKey:Pf(e,n.type),queryFn:async()=>Nf(t,e,n.type),enabled:!!t&&!!e&&!!n})},If=async(e,t)=>{if(!t)throw Error(`Account address is required`);let n=await e.accounts.getAccount(cn.of(String(t)));if(!n)throw Error(`Account not found`);return n.hasCode},Lf=e=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`IS_DEPLOYED`,e],Rf=e=>{let t=mf(),n=Ri.at(t);return X({queryKey:Lf(e),queryFn:async()=>If(n,e),enabled:!!n&&!!e})},zf=()=>{let e=zn(),{connectedWallet:t,smartAccount:n}=Q(),{network:r}=$();return{refresh:async()=>{let i=t?.address??``,a=n?.address??``;await Promise.all([e.cancelQueries({queryKey:Df(i,r.type)}),e.cancelQueries({queryKey:Af(a,i,r.type)}),e.cancelQueries({queryKey:Pf(i,r.type)}),e.cancelQueries({queryKey:wf(r.type)}),e.cancelQueries({queryKey:Gf(a,i,3,r.type)}),e.cancelQueries({queryKey:Jf(a,3,r.type)}),e.cancelQueries({queryKey:xf(3,r.type)})]),await Promise.all([e.refetchQueries({queryKey:Df(i,r.type)}),e.refetchQueries({queryKey:Af(a,i,r.type)}),e.refetchQueries({queryKey:Pf(i,r.type)}),e.refetchQueries({queryKey:wf(r.type)}),e.refetchQueries({queryKey:Gf(a,i,3,r.type)}),e.refetchQueries({queryKey:Jf(a,3,r.type)}),e.refetchQueries({queryKey:xf(3,r.type)})])}}},Bf=()=>{let e=zn(),{smartAccount:t}=Q();return{refresh:async()=>{let n=t?.address??``;await Promise.all([e.cancelQueries({queryKey:Hf(n)}),e.cancelQueries({queryKey:Lf(n)})]),await Promise.all([e.refetchQueries({queryKey:Hf(n)}),e.refetchQueries({queryKey:Lf(n)})])}}},Vf=async(e,t,n)=>{if(!n)return{address:void 0};let r=await e.contracts.load(k(t).accountFactoryAddress,ti.abi).read.getAccountAddress(n);if(!r)throw Error(`Failed to get account address of ${n}`);let i=cn.of(r[0].toString()),a=await e.accounts.getAccount(i);if(!a)throw Error(`Failed to get account detail of ${i}`);return{address:i.toString(),isDeployed:a.hasCode}},Hf=e=>[`VECHAIN_KIT_SMART_ACCOUNT`,e],Uf=e=>{let{network:t}=$(),n=jn();return X({queryKey:Hf(e),queryFn:()=>Vf(n,t.type,e),enabled:!!e&&!!t.type&&!!n})},Wf=async(e,t,n,r,i)=>{let a=await e.contracts.load(k(i).accountFactoryAddress,ti.abi).read.upgradeRequired(t,n,BigInt(r));if(!a)throw Error(`Failed to get upgrade required of contract address ${k(i).accountFactoryAddress}`);return a[0]},Gf=(e,t,n,r)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`UPGRADE_REQUIRED`,e,t,n,r],Kf=(e,t,n)=>{let r=jn(),{network:i}=$();return X({queryKey:Gf(e,t,n,i.type),queryFn:async()=>Wf(r,e,t,n,i.type),enabled:!!r&&!!e&&!!t&&!!i.type})},qf=async(e,t,n,r)=>{let i=await e.contracts.load(k(r).accountFactoryAddress,ti.abi).read.upgradeRequiredForAccount(t,BigInt(n));if(!i)throw Error(`Failed to get upgrade required for contract address ${t}`);return i[0]},Jf=(e,t,n)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`NEEDS_UPGRADE_FOR_ACCOUNT`,e,t,n],Yf=(e,t)=>{let n=jn(),{network:r}=$();return X({queryKey:Jf(e,t,r.type),queryFn:async()=>qf(n,e,t,r.type),enabled:!!n&&!!r&&!!e&&!!t&&e!==``})},Xf=ri.createInterface(),Zf=({smartAccountAddress:t,targetVersion:n,onSuccess:r,onError:i})=>{let{refresh:a}=zf(),{refresh:o}=Bf(),{data:s}=Sf(n),c=H(async()=>{if(!t||!e(t))throw Error(`Invalid smart account address`);if(!s)throw Error(`Unable to fetch implementation address for version ${n}`);return[{to:t,value:`0x0`,data:Xf.encodeFunctionData(`upgradeToAndCall`,[s,`0x`]),comment:`Upgrade account to version ${n}`,abi:Xf.getFunction(`upgradeToAndCall`).format(`json`)}]},[t,s,n]),u=cc({privyUIOptions:{title:`Upgrade Smart Account`,description:`Upgrading your account at ${l(t)} to version ${n}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{await Promise.all([a(),o()]),r?.()},onTxFailedOrCancelled:async()=>{i?.()}});return{...u,sendTransaction:async()=>u.sendTransaction(await c())}},Qf=()=>[`VECHAIN_KIT`,`CURRENT_BLOCK`],$f=10*D.SECOND,ep=()=>{let e=jn();return X({queryKey:Qf(),queryFn:async()=>{let t=await e.blocks.getBestBlockExpanded();if(!t)throw Error(`Failed to fetch current block`);return t},staleTime:1e3*60,refetchInterval:$f})},tp=async e=>{let t=await e.blocks.getGenesisBlock();if(!t)throw Error(`Genesis block not found`);return t.id},np=()=>[`VECHAIN_KIT_CHAIN_ID`],rp=()=>{let e=jn();return X({queryKey:np(),queryFn:()=>tp(e),enabled:!!e})},ip=1e3,ap=async({thor:e,order:t=`asc`,offset:n=0,limit:r=ip,from:i=0,to:a=e.blocks.getHeadBlock()?.number,filterCriteria:o})=>{let s=await e.logs.filterEventLogs({range:{from:i,to:a,unit:`block`},options:{offset:n,limit:r},order:t,criteriaSet:o});if(!s)throw Error(`Failed to fetch events`);return s},op=async({nodeUrl:e,thor:t,order:n=`asc`,from:r=0,to:i,filterCriteria:a})=>{let o=[],s=0;for(;;){let c=await ap({nodeUrl:e,thor:t,filterCriteria:a,from:r,to:i??2**53-1,limit:ip,order:n,offset:s});if(o.push(...c),c.length<ip)return o;s+=ip}},sp=Qr.createInterface(),cp=(t,n,r,i)=>{if(!t||!n||!e(t))throw Error(`Invalid receiver address or amount`);let a=[];return a.push({to:r,value:`0x0`,data:sp.encodeFunctionData(`transfer`,[t,bi(n)]),comment:`Transfer ${n} ${i} to ${t}`,abi:sp.getFunction(`transfer`)}),a},lp=({fromAddress:e,receiverAddress:t,amount:n,tokenAddress:r,tokenName:i,onSuccess:a,onError:o})=>{let{refresh:s}=Ws(),c=W(()=>cp(t,n,r,i),[t,n,r,i]),u=cc({signerAccountAddress:e,privyUIOptions:{title:`Confirm Transfer`,description:`Transfer ${n} ${i} to ${l(t)}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{s(),a?.()},onTxFailedOrCancelled:async e=>{o?.(e instanceof Error?e.message:String(e))}});return{...u,clauses:c,sendTransaction:async()=>u.sendTransaction(c)}},up=(t,n)=>{if(!t||!n||!e(t))throw Error(`Invalid receiver address or amount`);if(isNaN(Number(n)))throw Error(`Invalid amount`);let r=[];try{r.push({to:t,value:bi(n).toString(),data:`0x`,comment:`Transfer ${n} VET to ${t}`})}catch(e){throw console.error(`Error building clauses:`,e),Error(`Invalid amount format`)}return r},dp=({fromAddress:e,receiverAddress:t,amount:n,onSuccess:r,onError:i})=>{let{refresh:a}=Ws(),o=W(()=>up(t,n),[t,n]),s=cc({signerAccountAddress:e,privyUIOptions:{title:`Confirm Transfer`,description:`Transfer ${n} VET to ${l(t)}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{a(),r?.()},onTxFailedOrCancelled:async e=>{i?.(e instanceof Error?e.message:String(e))}});return{...s,clauses:o,sendTransaction:async()=>s.sendTransaction(o)}},fp=({clauseBuilder:e,refetchQueryKeys:t,invalidateCache:n=!0,onSuccess:r,onFailure:i,suggestedMaxGas:a,gasPadding:o})=>{let{account:s}=Q(),c=zn(),l=H(async()=>{n&&t?.forEach(async e=>{await c.cancelQueries({queryKey:e}),await c.refetchQueries({queryKey:e})}),r?.()},[n,r,c,t]),u=cc({signerAccountAddress:s?.address,onTxConfirmed:l,suggestedMaxGas:a,onTxFailedOrCancelled:i,gasPadding:o}),d=H(async t=>{u.sendTransaction(e(t))},[e,u]);return{...u,sendTransaction:d}},pp=10*D.SECOND,mp=e=>[`VECHAIN_KIT`,`TX_RECEIPT`,e],hp=(e,t=5)=>{let n=jn();return X({queryKey:mp(e),queryFn:async()=>{let r=await n.transactions.waitForTransaction(e,{timeoutMs:t*pp,intervalMs:3e3});if(!r)throw Error(`Transaction receipt not found`);return r},enabled:!!e})},gp=(e,t)=>{let n=pi({abi:t,data:e.data.toString(),topics:e.topics.map(e=>e.toString())});return{meta:e.meta,decodedData:n}},_p=({eventName:e,filterParams:t})=>[e,t?JSON.stringify(t):`all`],vp=({abi:e,contractAddress:t,eventName:n,filterParams:r,mapResponse:i,nodeUrl:a})=>{let o=jn();return X({queryFn:H(async()=>{if(!o)return[];let s=o.contracts.load(t,e).getEventAbi(n),c=s.encodeFilterTopicsNoNull(r??{}),l=(await op({thor:o,nodeUrl:a,filterCriteria:[{criteria:{address:t,topic0:c[0]??void 0,topic1:c[1]??void 0,topic2:c[2]??void 0,topic3:c[3]??void 0,topic4:c[4]??void 0},eventAbi:s}]})).map(t=>gp(t,e));if(l.some(({decodedData:e})=>e.eventName!==n))throw Error(`Unknown event`);return l.map(e=>i({meta:e.meta,decodedData:e.decodedData}))},[o,t,e,n,r,i,a]),queryKey:W(()=>_p({eventName:n,filterParams:r}),[n,r]),enabled:!!o})};function yp({clauses:e,chainId:t,verifyingContract:n}){let r=[],i=[],a=[];return e.forEach(e=>{r.push(e.to??``),i.push(String(e.value)),typeof e.data==`object`&&`abi`in e.data?a.push(hi(e.data)):a.push(e.data||`0x`)}),{domain:{name:`Wallet`,version:`1`,chainId:t,verifyingContract:n},types:{ExecuteBatchWithAuthorization:[{name:`to`,type:`address[]`},{name:`value`,type:`uint256[]`},{name:`data`,type:`bytes[]`},{name:`validAfter`,type:`uint256`},{name:`validBefore`,type:`uint256`},{name:`nonce`,type:`bytes32`}],EIP712Domain:[{name:`name`,type:`string`},{name:`version`,type:`string`},{name:`chainId`,type:`uint256`},{name:`verifyingContract`,type:`address`}]},primaryType:`ExecuteBatchWithAuthorization`,message:{to:r,value:i,data:a,validAfter:0,validBefore:Math.floor(Date.now()/1e3)+300,nonce:en.hexlify(en.randomBytes(32))}}}function bp({clause:e,chainId:t,smartAccount:n}){return{domain:{name:`Wallet`,version:`1`,chainId:t,verifyingContract:n.address??``},types:{ExecuteWithAuthorization:[{name:`to`,type:`address`},{name:`value`,type:`uint256`},{name:`data`,type:`bytes`},{name:`validAfter`,type:`uint256`},{name:`validBefore`,type:`uint256`}],EIP712Domain:[{name:`name`,type:`string`},{name:`version`,type:`string`},{name:`chainId`,type:`uint256`},{name:`verifyingContract`,type:`address`}]},primaryType:`ExecuteWithAuthorization`,message:{validAfter:0,validBefore:Math.floor(Date.now()/1e3)+60,to:e.to,value:String(e.value),data:(typeof e.data==`object`&&`abi`in e.data?hi(e.data):e.data)||`0x`}}}function xp(){let{connection:e,connectedWallet:t}=Q(),{signTypedData:n}=Hs(),{signTypedData:r}=Tn(),{network:i}=$(),{data:a}=rp();return{connection:e,connectedWallet:t,signTypedDataWithCrossApp:n,signTypedDataPrivy:r,network:i,chainId:a}}const Sp=()=>{let{connection:e,connectedWallet:t,signTypedDataWithCrossApp:n,signTypedDataPrivy:r,network:i,chainId:a}=xp(),o=async e=>{let{version:t}=e;return t&&t<3?await s(e):await c(e)};async function s(o){let{clauses:s,smartAccount:c,title:l=`Sign Transaction`,description:u,buttonText:d=`Sign`}=o,f=[],p=s.map(e=>bp({clause:e,chainId:a,smartAccount:c})),m=[];for(let i=0;i<p.length;i++){let a=p[i],o=s[i];if(!o)throw Error(`Transaction clause at index ${i} is undefined`);if(e.isConnectedWithCrossApp){let e=await n({...a,address:t?.address,types:Object.fromEntries(Object.entries(a.types).map(([e,t])=>[e,[...t]]))});m.push(e);continue}let c=o.data,f=(await r(a,{uiOptions:{title:l,description:u??(s[i].comment||(typeof c==`object`&&c&&`functionName`in c?c.functionName:` `)),buttonText:d}})).signature;m.push(f)}return c.isDeployed||f.push(ln.callFunction(cn.of(k(i.type).accountFactoryAddress),sn.ofAbi(ei.abi).getFunction(`createAccount`),[t?.address??``])),p.forEach((e,t)=>{f.push(ln.callFunction(cn.of(c.address??``),sn.ofAbi(ni.abi).getFunction(`executeWithAuthorization`),[e.message.to,BigInt(e.message.value),e.message.data,BigInt(e.message.validAfter),BigInt(e.message.validBefore),m[t]]))}),f}async function c(o){let{clauses:s,smartAccount:c,title:l,description:u,buttonText:d=`Sign`}=o,f=[],p=yp({clauses:s,chainId:a,verifyingContract:c.address??``}),m;return m=e.isConnectedWithCrossApp?await n({...p,address:t?.address}):(await r(p,{uiOptions:{title:l,description:u,buttonText:d}})).signature,c.isDeployed||f.push(ln.callFunction(cn.of(k(i.type).accountFactoryAddress),sn.ofAbi(ei.abi).getFunction(`createAccount`),[t?.address??``])),f.push(ln.callFunction(cn.of(c.address??``),sn.ofAbi(ni.abi).getFunction(`executeBatchWithAuthorization`),[p.message.to,p.message.value?.map(e=>BigInt(e))??0,p.message.data,BigInt(p.message.validAfter),BigInt(p.message.validBefore),p.message.nonce,m])),f}return{buildClausesWithAuth:o}};let Cp=function(e){return e.CUSTOM_TOKENS=`vechain_kit_custom_tokens`,e.ECOSYSTEM_SHORTCUTS=`vechain-kit-ecosystem-shortcuts`,e.CURRENCY=`vechain_kit_currency`,e.NODE_URL=`vechain_kit_node_url`,e.NETWORK=`vechain_kit_network`,e.GAS_TOKEN_PREFERENCES=`vechain_kit_gas_token_preferences`,e}({});const wp=(e,t)=>{let[n,r]=G(()=>{try{let n=w(e);return n?JSON.parse(n):t}catch(e){return console.error(e),t}});return U(()=>{h(e,JSON.stringify(n))},[e,n]),[n,r]},Tp=`vechain-kit-storage-change`,Ep=(e,t)=>{let[n,r]=G(()=>{if(typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);return n?JSON.parse(n):t}catch(e){return console.error(`Error loading from localStorage:`,e),t}}),i=Zt(!1);return U(()=>{if(!(typeof window>`u`)){if(i.current){i.current=!1;return}try{window.localStorage.setItem(e,JSON.stringify(n)),window.dispatchEvent(new CustomEvent(Tp,{detail:{key:e,value:n}}))}catch(e){console.error(`Error writing to localStorage:`,e)}}},[e,n]),U(()=>{if(typeof window>`u`)return;let t=t=>{if(t.key===e&&t.newValue)try{let e=JSON.parse(t.newValue);JSON.stringify(e)!==JSON.stringify(n)&&(i.current=!0,r(e))}catch(e){console.error(`Error parsing storage value:`,e)}},a=(t=>{if(t.detail.key===e)try{let t=window.localStorage.getItem(e);if(t){let e=JSON.parse(t);JSON.stringify(e)!==JSON.stringify(n)&&(i.current=!0,r(e))}}catch(e){console.error(`Error parsing storage value:`,e)}});return window.addEventListener(`storage`,t),window.addEventListener(Tp,a),()=>{window.removeEventListener(`storage`,t),window.removeEventListener(Tp,a)}},[e,n]),[n,r,H(()=>{if(!(typeof window>`u`))try{let i=window.localStorage.getItem(e),a=i?JSON.parse(i):t;JSON.stringify(a)!==JSON.stringify(n)&&r(a)}catch(e){console.error(`Error syncing localStorage:`,e)}},[e,t,n]),H(()=>{if(typeof window>`u`)return t;let n=window.localStorage.getItem(e);return n?JSON.parse(n):t},[e,t])]},Dp=()=>{let[e,t]=wp(Cp.ECOSYSTEM_SHORTCUTS,[]);return{shortcuts:e,addShortcut:n=>{e.some(e=>e.url===n.url)||t([...e,n])},removeShortcut:n=>{t(e.filter(e=>e.url!==n))},isShortcut:t=>e.some(e=>e.url===t)}},Op=async(e,t,n,r,i)=>await(await fetch(t+`estimate/clauses/`+r.toLowerCase()+`?type=smartaccount&speed=`+i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({clauses:n,signer:e})})).json(),kp=async e=>await(await fetch(e+`deposit/account`,{method:`GET`,headers:{"Content-Type":`application/json`}})).json(),Ap=async(e,t,n,r)=>await(await fetch(r+`sign/transaction/authorized/`+n.toLowerCase(),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({raw:e,origin:t,token:n.toLowerCase()})})).json(),jp=async(e,t,n,r)=>{let i=await t.gas.estimateGas(e,n?.address??``),a=Math.max(i.totalGas,0);return r?await t.transactions.buildTransactionBody(e,a,{isDelegated:r}):await t.transactions.buildTransactionBody(e,a)};function Mp(e,t){return fn.of(e.body,ua.concatBytes(e.signature??new Uint8Array,un.of(t.slice(2)).bytes))}function Np(e,t){return fn.decode(un.of(e.slice(2)).bytes,t)}const Pp=()=>{let{connectedWallet:e}=Q(),{data:n}=Uf(e?.address??``),{data:r}=jf(n?.address??``,e?.address??``),{preferences:i}=Fp(),a=Qr.createInterface(),{network:o}=$(),{buildClausesWithAuth:s}=Sp(),c=Ri.at(k(o.type).nodeUrl);return{sendTransactionUsingGenericDelegator:H(async({clauses:e,genericDelegatorUrl:o})=>{try{let l=i.gasTokenToUse,u=await Op(n?.address??``,o,e,l,`medium`),d=await kp(o),p={to:l===`VET`?d.depositAccount:f[l].address,value:l===`VET`?bi(u.transactionCost?.toString()??`0`).toString():`0x0`,data:l===`VET`?`0x`:a.encodeFunctionData(`transfer`,[d.depositAccount,bi(u.transactionCost?.toString()??`0`)]),comment:`Transfer ${u.transactionCost} ${l} to ${d.depositAccount}`,abi:l===`VET`?void 0:a.getFunction(`transfer`)},m=await s({clauses:[...e,p],smartAccount:n,version:r?.version??0}),h=await jp(m,c,t,!0),g=await fn.of(h).signAsSender(un.of(t.privateKey).bytes),_=await Ap(un.of(g.encoded).toString(),t.address,l,o),v=Mp(g,_.signature),y={clauses:m,simulateTransactionOptions:{caller:t.address??``,gasPayer:_.address}},b=await c.transactions.simulateTransaction(y.clauses,{...y.simulateTransactionOptions});for(let e=0;e<b.length;e++)if(b[e].reverted)throw Error(b[e].vmError);return(await c.transactions.sendTransaction(v)).id}catch(e){console.error(`Error sending transaction using generic delegator`,e)}throw Error(`Failed to send transaction using generic delegator, no gas tokens have sufficient balance or are enabled in Gas Token Preferences`)},[i,n,r,s,c,t])}},Fp=()=>{let[e,t]=Ep(Cp.GAS_TOKEN_PREFERENCES,ne);return{preferences:e,supportedTokens:f,updatePreferences:H(e=>{t(t=>({...t,...e}))},[t]),reorderTokenPriority:H(e=>{t(t=>{let n=e.filter(e=>t.availableGasTokens.includes(e)&&!t.excludedTokens.includes(e));return{...t,tokenPriority:e,availableGasTokens:n,gasTokenToUse:n[0]??t.gasTokenToUse}})},[t]),toggleTokenExclusion:H(e=>{t(t=>{let n=t.excludedTokens.includes(e),r=n?t.excludedTokens.filter(t=>t!==e):[...t.excludedTokens,e],i=t.tokenPriority.indexOf(e),a=n?[...t.availableGasTokens.slice(0,i),e,...t.availableGasTokens.slice(i)]:t.availableGasTokens.filter(t=>t!==e);return{...t,excludedTokens:r,availableGasTokens:a,gasTokenToUse:a[0]??t.gasTokenToUse}})},[t])}},Ip=({clauses:e,enabled:t=!0,tokens:n,sendingAmount:r,sendingTokenSymbol:i})=>{let{connectedWallet:a,account:o}=Q(),{data:s}=Uf(a?.address??``),{feeDelegation:c}=$(),{balances:l}=ns(o?.address??``),{updatePreferences:u}=Fp();return X({queryKey:[`gas-estimation`,JSON.stringify(e),JSON.stringify(n),r,i],queryFn:async()=>{let t=null;for(let a of n)try{let n=await Op(s?.address??``,c?.genericDelegatorUrl??``,e,a,`medium`),o=n.transactionCost,d=Number(l.find(e=>e.symbol===a)?.balance||0),f=o+(r&&i&&a===i?Number(r):0);if(d>=f)return u({gasTokenToUse:a}),{...n,usedToken:a};t=Error(`Insufficient ${a} balance: has ${d}, needs ${f}`)}catch(e){t=e}throw t||Error(`All gas tokens failed estimation or have insufficient balance`)},enabled:t&&e.length>0&&!!s?.address&&!!c?.genericDelegatorUrl&&n.length>0&&l.length>0,staleTime:30*1e3,gcTime:300*1e3,refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchOnMount:!1,retry:!1,retryDelay:1e3})},Lp=({clauses:e,tokens:t,enabled:n=!0})=>{let{connectedWallet:r}=Q(),{data:i}=Uf(r?.address??``),{feeDelegation:a}=$();return X({queryKey:[`gas-estimation-all-tokens`,JSON.stringify(e),JSON.stringify(t)],queryFn:async()=>{let n={};return await Promise.all(t.map(async t=>{try{n[t]={cost:(await Op(i?.address??``,a?.genericDelegatorUrl??``,e,t,`medium`)).transactionCost||0,loading:!1}}catch(e){n[t]={cost:0,loading:!1,error:e instanceof Error?e.message:`Unknown error`}}})),n},enabled:n&&e.length>0&&!!i?.address&&!!a?.genericDelegatorUrl&&t.length>0,staleTime:30*1e3,gcTime:300*1e3,refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchOnMount:!1})},Rp=({label:e,address:t,domain:n,imageSrc:r,imageAlt:i=`Account`,hideAddress:a=!1,balance:o,tokenAddress:s})=>{let{t:c}=Y(),u=B(`colors`,`vechain-kit-text-primary`),d=B(`colors`,`vechain-kit-text-secondary`),f=B(`colors`,`vechain-kit-card`),{isLoading:p}=ds({address:t}),{tokens:m,isLoading:h}=us({address:t}),g=W(()=>s?m.find(e=>e.address===s):null,[m,s]),_=W(()=>o===void 0?g?Number(g.balance):0:o,[o,g]),v=g?.symbol||``;return p||h?J(A,{w:`full`,p:2,borderRadius:`lg`,bg:f,children:[q(R,{fontSize:`sm`,fontWeight:`bold`,mb:2,color:u,children:e}),J(M,{minH:`50px`,justify:`space-between`,children:[J(M,{children:[q(kt,{boxSize:`40px`,borderRadius:`xl`}),J(z,{align:`start`,spacing:0,children:[q(kt,{height:`16px`,width:`120px`,borderRadius:`md`}),!a&&q(kt,{mt:2,height:`12px`,width:`100px`,borderRadius:`md`})]})]}),J(z,{justify:`flex-start`,align:`flex-end`,spacing:0,mr:2,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:u,children:c(`Balance`)}),q(kt,{height:`12px`,width:`80px`,borderRadius:`md`})]})]})]}):J(A,{w:`full`,p:2,borderRadius:`lg`,bg:f,wordBreak:`break-word`,children:[q(R,{fontSize:`sm`,fontWeight:`bold`,mb:2,color:u,children:e}),J(M,{minH:`50px`,justify:`space-between`,children:[J(M,{children:[q(ut,{src:r,alt:i,boxSize:`40px`,borderRadius:`xl`,objectFit:`cover`}),q(z,{align:`start`,spacing:0,children:n?J(K,{children:[q(R,{fontWeight:`medium`,fontSize:`sm`,color:u,"data-testid":`${e.toLowerCase()}-domain`,children:n}),!a&&q(R,{fontSize:`xs`,color:d,"data-testid":`${e.toLowerCase()}-address`,children:l(t,6,4)})]}):q(R,{fontWeight:`medium`,fontSize:`sm`,color:u,"data-testid":`${e.toLowerCase()}-address`,children:l(t,6,4)})})]}),J(z,{justify:`flex-start`,align:`flex-end`,spacing:0,mr:2,children:[q(R,{fontSize:`sm`,fontWeight:`medium`,color:u,children:c(`Balance`)}),J(R,{fontSize:`xs`,color:d,children:[_.toLocaleString(void 0,{maximumFractionDigits:2}),v&&` ${v}`]})]})]})]})},zp=({onClick:e,...t})=>q(lt,{"aria-label":`FAQ`,icon:q(N,{as:sr,fontSize:`17px`}),size:`sm`,variant:`ghost`,position:`absolute`,borderRadius:`50%`,left:`10px`,top:`10px`,onClick:e,...t}),Bp=({children:e,...t})=>(gf(),q(z,{...t,children:e})),Vp=({wallet:e,props:t})=>{let n=Zt(e?.image);return U(()=>{e?.image&&!e.isLoadingMetadata&&(n.current=e.image)},[e?.image,e?.isLoadingMetadata]),!t?.src&&!e?.image&&!n.current||e?.isLoadingMetadata?q(kt,{rounded:`full`,width:t?.width,height:t?.height}):q(ut,{src:t?.src||e?.image||n.current,alt:t?.alt||e?.domain,objectFit:`cover`,rounded:`full`,...t})},Hp=({transactionError:e,isSubmitting:t,isTxWaitingConfirmation:n,onConfirm:r,onRetry:i,transactionPendingText:a,txReceipt:o,isSubmitForm:s=!1,buttonText:c,isDisabled:l=!1,style:u,onError:d,gasEstimationError:f,hasEnoughGasBalance:p=!0,isLoadingGasEstimation:m=!1,showGasEstimationError:h=!1,context:g=`transaction`})=>{let{t:_}=Y(),{darkMode:v}=$(),{network:y}=$(),b=W(()=>e?e.reason||_(`Something went wrong. Please try again.`):null,[e,_]);U(()=>{b&&d?.(b)},[b,d]);let x=W(()=>{if(u?.accentColor)return`${u.accentColor} !important`},[u?.accentColor]),S=W(()=>{if(!h||m||!(f||p))return null;if(!p&&!f)return{message:_(`You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.`)};if(f){let e=``;switch(g){case`send`:e=_(`Insufficient balance to complete this transfer and cover gas fees.`);break;case`customization`:e=_(`Insufficient balance to update your profile and cover gas fees.`);break;case`domain`:e=_(`Insufficient balance to claim this domain and cover gas fees.`);break;default:e=_(`Insufficient balance to complete this transaction and cover gas fees.`)}return{message:e}}return null},[f,p,m,h,g,_]);return J(z,{width:`full`,spacing:4,children:[b&&q(A,{p:3,borderRadius:`md`,bg:v?`rgba(218, 90, 90, 0.1)`:`rgba(218, 90, 90, 0.05)`,borderWidth:`1px`,borderColor:v?`rgba(218, 90, 90, 0.3)`:`rgba(218, 90, 90, 0.2)`,w:`full`,children:q(R,{color:`#da5a5a`,fontSize:`sm`,fontWeight:`medium`,"data-testid":`tx-send-error-msg`,children:b})}),S&&!b&&q(A,{p:3,borderRadius:`md`,bg:v?`rgba(218, 90, 90, 0.1)`:`rgba(218, 90, 90, 0.05)`,borderWidth:`1px`,borderColor:v?`rgba(218, 90, 90, 0.3)`:`rgba(218, 90, 90, 0.2)`,w:`full`,children:q(R,{color:`#da5a5a`,fontSize:`sm`,fontWeight:`medium`,"data-testid":`gas-estimation-error`,children:S.message})}),q(j,{px:4,variant:b?`vechainKitSecondary`:`vechainKitPrimary`,bg:x,onClick:()=>b&&i?i():r(),type:s?`submit`:`button`,isLoading:t,isDisabled:l,loadingText:n?_(`Waiting wallet confirmation...`):a,"data-testid":`confirm-button`,children:b?_(`Retry`):c||_(`Confirm`)}),b&&o?.meta.txID&&q(ht,{isExternal:!0,fontSize:`sm`,color:v?`whiteAlpha.600`:`blackAlpha.600`,textAlign:`center`,width:`full`,href:`${k(y.type).explorerUrl}/${o?.meta.txID}`,target:`_blank`,rel:`noopener noreferrer`,children:_(`View transaction on the explorer`)})]})},Up=({onClick:e,hasUnreadNotifications:t,...n})=>q(lt,{"aria-label":`Notifications`,size:`sm`,variant:`ghost`,position:`absolute`,borderRadius:`50%`,left:`10px`,top:`10px`,onClick:e,icon:J(A,{position:`relative`,children:[q(Xn,{fontSize:`20px`}),t&&q(A,{position:`absolute`,top:`-1px`,right:`-1px`,minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`})]}),...n}),Wp=({isOpen:e,onClose:t,selectedToken:n,onTokenSelect:r,availableTokens:i,tokenEstimations:a,walletAddress:o})=>{let{t:c}=Y(),{balances:l}=ns(o),[u,d]=V.useState(n),[p,m]=V.useState(!1),h=B(`colors`,`vechain-kit-text-primary`),g=B(`colors`,`vechain-kit-text-secondary`),_=B(`colors`,`vechain-kit-text-tertiary`),y=B(`colors`,`vechain-kit-error`),b=e=>e?_:`transparent`,x=e=>e?h:`transparent`;V.useEffect(()=>{e&&(d(n),m(!1))},[e,n]);let S=()=>{r(u,p),t()},C=e=>{let t=l.find(t=>t.symbol===e);return t?Number(t.balance).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}):`0.00`},w=e=>{let t=l.find(t=>t.symbol===e),n=a[e];return!t||!n?!1:Number(t.balance)<n.cost};return J($a,{isOpen:e,onClose:t,size:`sm`,children:[J(L,{children:[q(R,{fontSize:`lg`,fontWeight:`semibold`,color:h,children:c(`Fee token`)}),q(R,{fontSize:`sm`,fontWeight:`normal`,color:g,mt:1,children:c(`Select the token to pay the fee with`)})]}),q(P,{children:J(z,{spacing:2,align:`stretch`,children:[i.map(e=>{let t=f[e],n=u===e,r=a[e]||{cost:0,loading:!0},i=w(e);return q(A,{cursor:i?`not-allowed`:`pointer`,bg:b(n),border:`1px`,borderColor:x(n),borderRadius:`md`,p:3,transition:`all 0.2s ease`,_hover:{backgroundColor:i?b(n):g&&`#ffffff12`,borderColor:i?x(n):g},opacity:i?.5:1,onClick:()=>!i&&d(e),children:J(M,{spacing:3,justify:`space-between`,children:[J(M,{spacing:3,flex:1,children:[V.cloneElement(s[e],{boxSize:`36px`,borderRadius:`full`}),J(z,{align:`start`,spacing:0,children:[q(R,{fontWeight:`medium`,color:h,children:t.symbol}),J(R,{fontSize:`xs`,color:g,children:[c(`Balance`),`:`,` `,C(e)]}),i&&q(R,{fontSize:`xs`,color:y,children:c(`Insufficient balance`)})]})]}),q(z,{align:`end`,spacing:0,children:r.loading?q(kt,{height:`16px`,width:`60px`}):J(K,{children:[q(R,{fontSize:`sm`,fontWeight:`semibold`,color:h,children:v(r.cost,2)}),q(R,{fontSize:`xs`,color:g,children:t.symbol})]})})]})},e)}),u!==n&&J(it,{display:`flex`,alignItems:`center`,justifyContent:`space-between`,children:[q(at,{htmlFor:`remember-choice`,mb:`0`,fontSize:`sm`,color:h,children:c(`Use this token for future transactions`)}),q(Mt,{id:`remember-choice`,isChecked:p,onChange:e=>m(e.target.checked),color:h})]})]})}),q(I,{children:J(z,{spacing:3,w:`full`,children:[q(j,{variant:`vechainKitPrimary`,onClick:S,isDisabled:w(u),children:c(`Apply`)}),q(j,{variant:`ghost`,width:`full`,onClick:t,children:c(`Cancel`)})]})})]})},Gp=({estimation:e,isLoading:t,isLoadingTransaction:n,onTokenChange:r,clauses:i=[],userSelectedToken:a})=>{let{t:o}=Y(),{feeDelegation:c}=$(),{connection:l,account:u}=Q(),{preferences:d,reorderTokenPriority:p}=Fp(),{isOpen:m,onOpen:h,onClose:g}=Gt(),_=B(`colors`,`vechain-kit-text-primary`),y=B(`colors`,`vechain-kit-text-secondary`),[b,x]=G(()=>{let e={};return d.availableGasTokens.forEach(t=>{e[t]={cost:0,loading:!0}}),e}),{data:S,isLoading:C}=Lp({clauses:i,tokens:d.availableGasTokens,enabled:i.length>0});U(()=>{!C&&S&&x(S)},[S,C]),U(()=>{e&&x(t=>({...t,[e.usedToken]:{cost:e.transactionCost||0,loading:!1}}))},[e]),U(()=>{C&&x(d.availableGasTokens.reduce((e,t)=>(e[t]={cost:0,loading:!0},e),{}))},[C,d.availableGasTokens]);let w=H((t,n)=>{n&&p([t,...d.tokenPriority.filter(e=>e!==t)]),r&&t!==e?.usedToken&&r(t)},[e,r,p,d.tokenPriority]);if(c?.delegatorUrl||l.isConnectedWithDappKit||d.availableGasTokens.length===0)return null;let{balances:ee}=ns(u?.address??``),T=e=>{let t=ee.find(t=>t.symbol===e),n=b[e];return!t||!n||n.loading?!0:Number(t.balance)<n.cost},E=e?.usedToken,D=d.availableGasTokens,te;E?te=E:a&&D.includes(a)?te=a:(te=D.find(e=>b[e]&&!b[e].loading&&!T(e)),te||=D.find(e=>b[e]&&!b[e].loading),te||=D[0]);let ne=te?b[te]:void 0,re=E&&e?.transactionCost?e.transactionCost:ne?.cost||0,O=te?f[te]:void 0;return J(K,{children:[q(nt,{mt:3}),J(M,{mt:3,w:`full`,justifyContent:`start`,alignItems:`center`,children:[J(z,{align:`start`,spacing:0,w:`full`,children:[q(R,{fontSize:`sm`,fontWeight:`light`,textAlign:`left`,w:`full`,color:y,children:o(`Fee`)}),q(M,{align:`start`,justifyContent:`space-between`,spacing:0,w:`full`,children:q(M,{justifyContent:`flex-start`,w:`full`,children:t||!E&&(!ne||ne.loading)||!O?J(K,{children:[q(kt,{height:`16px`,width:`120px`,borderRadius:`md`}),q(kt,{height:`16px`,width:`60px`,borderRadius:`md`})]}):J(K,{children:[J(R,{color:_,fontSize:`sm`,fontWeight:`semibold`,children:[v(re,2),` `,O.symbol]}),J(R,{color:y,fontSize:`xs`,children:[`≈`,` $`,(re*.01).toFixed(2)]})]})})})]}),J(j,{onClick:h,variant:`outline`,size:`sm`,borderRadius:`full`,px:6,disabled:n,color:y,borderColor:y,_hover:{bg:y},leftIcon:V.cloneElement(s[te||d.availableGasTokens[0]],{boxSize:`20px`,borderRadius:`full`}),children:[q(R,{fontSize:`sm`,fontWeight:`semibold`,children:te||d.availableGasTokens[0]}),q(N,{as:tr,boxSize:5,color:y})]})]}),q(Wp,{isOpen:m,onClose:g,selectedToken:te||d.availableGasTokens[0],onTokenSelect:w,availableTokens:d.availableGasTokens,tokenEstimations:b,walletAddress:u?.address??``})]})},Kp=({isOpen:e,onClose:t,steps:n,activeStep:r,goToPrevious:i,setActiveStep:a,disableBackButton:o,disableCloseButton:s,closeOnOverlayClick:c=!0,isCloseable:l=!0})=>{let u=()=>{a(0),t()},[d]=Kt(`(min-width: 1060px)`),f=n[r],p=r===0,m=!p&&!o||f?.title||d&&!s;return f?q($a,{closeOnOverlayClick:c,isOpen:e,onClose:u,isCloseable:l,blockScrollOnMount:!0,children:q(Ge,{p:0,bg:`none`,children:J(Ke,{p:0,children:[m?J(Z,{children:[f?.title?q(L,{children:f.title}):null,!p&&!o?q(Ja,{onClick:i}):null,d&&!s?q(F,{onClick:t}):null]}):null,f?.description?q(R,{fontSize:{base:14,md:16},fontWeight:400,px:4,children:f?.description}):null,q(Vn.div,{initial:`hidden`,animate:`visible`,style:{width:`100%`},children:f.content},f.key)]})})}):null},qp=({document:e,register:t,isText:n=!1})=>{let{t:r}=Y(),{darkMode:i}=$(),a=e.displayName??r(`Policy`),o=i?`whiteAlpha.400`:`blackAlpha.400`,s=i?`blue.300`:`blue.500`,c=i?`blue.200`:`blue.700`,l=(()=>{if(!e.documentType)return a;switch(e.documentType){case`terms`:return e.displayName||`Terms of Service`;case`privacy`:return e.displayName||`Privacy Policy`;case`cookies`:return e.displayName||`Cookie Policy`;default:return e.displayName||`Legal Document`}})();return n?J(ht,{href:e.url,isExternal:!0,color:`blue.500`,textDecoration:`underline`,_hover:{color:`blue.300`,textDecoration:`underline`},fontWeight:`medium`,display:`contents`,alignItems:`center`,children:[q(dt,{...t(e.id,{required:e.required}),type:`checkbox`,hidden:!0}),l,q(N,{as:fr,ml:1,boxSize:3})]},e.id):q(M,{width:`full`,borderRadius:`md`,transition:`all 0.2s`,children:J(M,{align:`flex-start`,spacing:3,width:`full`,children:[q(Ze,{mt:`2px`,size:`md`,colorScheme:`blue`,borderColor:o,...t(e.id,{required:e.required}),"data-testid":`tnc-checkbox`}),J(R,{fontSize:`xs`,children:[r(`I have read and agree to `),J(ht,{href:e.url,isExternal:!0,color:s,textDecoration:`underline`,_hover:{color:c,textDecoration:`underline`},fontWeight:`medium`,display:`contents`,alignItems:`center`,children:[l,q(N,{as:fr,ml:1})]}),e.required&&q(R,{as:`span`,color:`red.500`,fontWeight:`bold`,children:`*`})]})]})},e.id)},Jp=({onAgree:e,onReject:t,onlyOptionalDocuments:n=!1})=>{let{t:r}=Y(),{darkMode:i}=$(),{documentsNotAgreed:a}=nm(),{requiredDocuments:o,optionalDocuments:s}=W(()=>a.reduce((e,t)=>(t.required?e.requiredDocuments.push(t):e.optionalDocuments.push(t),e),{requiredDocuments:[],optionalDocuments:[]}),[a]),{handleSubmit:c,register:l,formState:{isValid:u},watch:d}=Hi({defaultValues:W(()=>a.reduce((e,t)=>(e[t.id]=t.required,e),{}),[a])}),f=d(),p=W(()=>a.filter(e=>f[e.id]),[a,f]),m=a?.length===p.length,h=H(t=>{let n=new Set(Object.entries(t).filter(([e,t])=>t).map(([e])=>e));return e(a.filter(e=>n.has(e.id)))},[a,e]),g=i?`#3a3a3a`:`#eaeaea`,_=i?`#2a2a2a`:`#f5f5f5`,v=i?`gray.300`:`gray.600`,y=i?`0 2px 8px rgba(0, 0, 0, 0.2)`:`0 2px 8px rgba(0, 0, 0, 0.05)`,b=o.length>0,x=s.length>0,S=W(()=>{let e=s.filter(e=>f[e.id]).length;return r(m?`Accept all`:n&&e===0?`Ignore and continue`:b&&!x||b&&e===0?`Accept`:`Accept selected`)},[n,m,s,f]),C=e=>e===o.length-2&&o.length>1?r(` and `):`, `;return q(jt,{width:`full`,children:J(`form`,{onSubmit:c(h),children:[q(Z,{children:q(L,{children:r(`Terms and Policies`)})}),q(P,{children:J(z,{align:`stretch`,spacing:5,width:`full`,children:[b&&J(R,{as:`span`,fontSize:`sm`,children:[r(`By continuing, you agree to`),` `,o.map((e,t)=>J(Jt,{children:[q(qp,{document:e,register:l,isText:!0},e.id),t<o.length-1?C(t):null]},e.id)),`.`,` `,r(`Please take a moment to review all the policies, with acceptance being mandatory to continue.`)]}),n&&q(R,{fontSize:`sm`,color:v,mb:3,children:q(gn,{i18nKey:`<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.`,components:{bold:q(R,{as:`span`,fontWeight:`semibold`,color:v})}})}),x&&J(jt,{p:4,borderRadius:`xl`,bg:_,borderWidth:`1px`,borderColor:g,boxShadow:y,spacing:5,children:[q(R,{fontSize:`md`,fontWeight:`bold`,color:v,children:r(`Optional`)}),q(z,{align:`stretch`,spacing:4,children:s.map(e=>q(qp,{document:e,register:l},e.id))})]})]})}),q(I,{children:J(z,{width:`full`,spacing:3,children:[q(j,{variant:`vechainKitPrimary`,width:`full`,type:`submit`,isDisabled:!u,"data-testid":`accept-tnc-button`,children:S}),!n&&q(j,{variant:`ghost`,width:`full`,onClick:t,"data-testid":`reject-tnc-button`,colorScheme:`red`,children:r(`Reject and logout`)})]})})]})})};var Yp=function(e){return e.REVIEW_DOCUMENTS=`REVIEW_DOCUMENTS`,e.REJECT_DOCUMENTS=`REJECT_DOCUMENTS`,e}(Yp||{});const Xp=({isOpen:e,onAgree:t,handleLogout:n,onlyOptionalDocuments:r})=>{let{t:i}=Y(),{activeStep:a,goToPrevious:o,setActiveStep:s,goToNext:c}=qt({index:0,count:Object.keys(Yp).length}),l=()=>{s(0)},u=()=>{c()},d=()=>{n(),l()};return q(Kp,{isOpen:e,onClose:()=>{},goToPrevious:o,goToNext:c,setActiveStep:s,steps:W(()=>[{key:Yp.REVIEW_DOCUMENTS,content:q(Jp,{onAgree:t,onReject:u,onlyOptionalDocuments:r})},{key:Yp.REJECT_DOCUMENTS,content:q(fl,{onDisconnect:d,onBack:o,onClose:o,text:i(`Are you sure you want to reject the policies and disconnect?`),showCloseButton:!1})}],[Jp,fl,t,d]),disableCloseButton:!0,disableBackButton:!0,isCloseable:!1,closeOnOverlayClick:!1,activeStep:a})},Zp=e=>`${e.documentType}-${e.url.replace(/[^\w-]+/g,`-`)}-v${e.version}`,Qp=e=>e.map(e=>({...e,id:Zp(e)})),$p=e=>e.filter(e=>!e.required),em=(e,t)=>{let n=Date.now();return e.map(e=>({...e,walletAddress:t,timestamp:n}))},tm=Yt(void 0),nm=()=>Xt(tm)||{hasAgreedToRequiredDocuments:!0,agreements:[],walletAddress:void 0,documents:[],documentsNotAgreed:[]},rm=({children:e})=>{let{connection:t,account:n,disconnect:r}=Q(),{darkMode:i,legalDocuments:a,theme:s}=$(),[c,l]=Ep(`vechain-kit-legal-documents`,[]),[u,d]=Ep(`vechain-kit-legal-documents-optional-reject`,[]),[f,p]=G(!1),h=H((e,t)=>u.some(n=>o(n.walletAddress,t)&&n.id===e.id),[u]),[g,_]=W(()=>{let e=Qp([{items:a?.cookiePolicy||[],type:se.COOKIES,source:m.APPLICATION},{items:a?.privacyPolicy||[],type:se.PRIVACY,source:m.APPLICATION},{items:a?.termsAndConditions||[],type:se.TERMS,source:m.APPLICATION}].flatMap(e=>e.items.map(t=>({...t,documentType:e.type,documentSource:e.source}))));return[e,e.filter(e=>e.required)]},[a]),v=W(()=>n?.address?g.filter(e=>c.some(t=>o(t.walletAddress,n.address)&&t.id===e.id)?!1:!u.some(t=>o(t.walletAddress,n.address)&&t.id===e.id)):[],[g,n?.address,c,u]),y=W(()=>!_.length||!n?.address?!0:_.every(e=>c.some(t=>o(t.walletAddress,n.address)&&t.id===e.id)),[_,c,n?.address]),b=W(()=>{if(!n?.address||!v?.length)return!1;let e=$p(v);return e.length===0?!1:e.some(e=>!h(e,n.address))},[v,n?.address,$p,h]),x=W(()=>y&&b,[y,b]);W(()=>{let e=new Set(c.map(e=>e.id));return g.some(t=>e.has(t.id))},[g,c]),U(()=>{t.isConnected&&n?.address?p(!y||b):p(!1)},[t.isConnected,n?.address,y,b]);let S=H((e,t)=>{let n=Array.isArray(e)?e:[e];if(!n.length)return;let r=em(n,t);l([...c.filter(e=>!o(e.walletAddress,t)||!n.some(t=>t.id===e.id)),...r])},[c,em]),C=H(e=>{if(!n?.address)return;let t=$p(v);if(t.length===0)return;let r=e.map(e=>e.id),i=t.filter(e=>!r.includes(e.id));if(!i?.length)return;let a=em(i,n.address);d(e=>[...e,...a])},[n?.address,v,$p,em]),w=H(e=>{if(!n?.address)return;let t=Array.isArray(e)?e:[e];t.length>0&&S(t,n.address),C(t),p(!1)},[n?.address,S,C]);return J(tm.Provider,{value:{hasAgreedToRequiredDocuments:y,agreements:c,walletAddress:n?.address,documents:g,documentsNotAgreed:v},children:[e,q(dd,{darkMode:i,theme:s,children:q(Xp,{isOpen:f,onAgree:w,handleLogout:x?()=>{}:()=>{r(),p(!1)},onlyOptionalDocuments:x})})]})},im=Yt(null),am=({children:e,nodeUrl:n,delegatorUrl:r=_(),delegateAllTransactions:i,genericDelegator:a})=>{let{signTypedData:o,exportWallet:s,signMessage:c}=Tn(),{signTypedData:l,signMessage:u}=Hs(),{connection:d,connectedWallet:f}=Q(),{network:p}=$(),{data:m}=Uf(f?.address??``),{data:h}=jf(m?.address??``,f?.address??``),{data:g}=Ff(f?.address??``),{buildClausesWithAuth:v}=Sp(),{sendTransactionUsingGenericDelegator:y}=Pp(),b=Ri.at(n),x=async(e,i,a)=>{if(!m?.address)throw Error(`Smart account address is not set`);let o=new zi(b,i??new Ii([{privateKey:Buffer.from(t.privateKey.slice(2),`hex`),address:t.address}],{gasPayer:{gasPayerServiceUrl:r}}),!0),s=a??await o.getSigner(t.address),c=Bi.transactionBodyToTransactionRequestInput(e,t.address),l=await s.signTransaction(c),{id:u}=await fetch(`${n}/transactions`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({raw:l})}).then(e=>e.json());return u},S=H(async({txClauses:e=[],title:n=`Sign Transaction`,description:i,buttonText:o=`Sign`})=>{if(!m||m&&!m.address||!f||f&&!f.address)throw Error(`Address or embedded wallet is missing`);if(a)return await y({clauses:e,genericDelegatorUrl:r??``});let s=await v({clauses:e,smartAccount:m,version:g?1:h?.version??3,title:n,description:i,buttonText:o}),c={clauses:s,simulateTransactionOptions:{caller:t.address}},l=await b.transactions.simulateTransaction(c.clauses,{...c.simulateTransactionOptions});for(let e=0;e<l.length;e++)if(l[e].reverted)return console.error(`simulatedTx1[i].vmError: ${l[e].vmError}`),l[e].vmError;return await x(await jp(s,b,t,!0))},[y,a,m,f,r,v,g,h,b]);return q(im.Provider,{value:{accountFactory:k(p.type).accountFactoryAddress,sendTransaction:S,signMessage:async e=>d.isConnectedWithCrossApp?await u(e):(await c({message:e})).signature,signTypedData:async e=>d.isConnectedWithCrossApp?await l({...e,address:f?.address,types:Object.fromEntries(Object.entries(e.types).map(([e,t])=>[e,[...t]]))}):(await o(e)).signature,exportWallet:s,delegateAllTransactions:i},children:e})},om=()=>{let e=Xt(im);if(!e)throw Error(`usePrivyWalletProvider must be used within a PrivyWalletProvider`);return e},sm=Yt(null),$=()=>{let e=Xt(sm);if(!e)throw Error(`useVeChainKitConfig must be used within VeChainKit`);return e},cm=e=>{let t=[],n={...e};if(n.dappKit||={allowedWallets:[`veworld`]},(n.privy!==void 0||n.loginMethods?.some(e=>e.method===`vechain`||e.method===`ecosystem`))&&(n.feeDelegation?!n.feeDelegation.delegatorUrl&&!n.feeDelegation.genericDelegatorUrl&&(n.feeDelegation.genericDelegatorUrl=_()):n.feeDelegation={genericDelegatorUrl:_()}),!n.network||!n.network.type)n.network={type:`main`};else{let e=n.network.type;[`main`,`test`,`solo`].includes(e)||t.push(`network.type must be either "main", "test" or "solo"`)}if(n.loginMethods||=[{method:`vechain`,gridColumn:4},{method:`ecosystem`,gridColumn:4},{method:`dappkit`,gridColumn:4}],n.loginMethods&&!n.privy){let e=n.loginMethods.filter(e=>[`email`,`google`,`passkey`,`more`].includes(e.method));e.length>0&&t.push(`Login methods ${e.map(e=>`"${e.method}"`).join(`, `)} require Privy configuration. Please either remove these methods or configure the privy prop.`)}if(n?.legalDocuments&&(n.legalDocuments.termsAndConditions&&n.legalDocuments.termsAndConditions.forEach(e=>{C(e.url)||t.push(`legalDocuments.termsAndConditions.url is invalid: ${e.url}`)}),n.legalDocuments.privacyPolicy&&n.legalDocuments.privacyPolicy.forEach(e=>{C(e.url)||t.push(`legalDocuments.privacyPolicy.url is invalid: ${e.url}`)}),n.legalDocuments.cookiePolicy&&n.legalDocuments.cookiePolicy.forEach(e=>{C(e.url)||t.push(`legalDocuments.cookiePolicy.url is invalid: ${e.url}`)})),t.length>0)throw Error(`VeChainKit Configuration Error:
|
|
193
193
|
`+t.join(`
|
|
194
|
-
`));return n},Zp=e=>{let{children:t,privy:n,feeDelegation:r,dappKit:i,loginModalUI:o,loginMethods:s,darkMode:c=!1,i18n:l,language:u=`en`,network:d,allowCustomTokens:f,legalDocuments:p,defaultCurrency:m=`usd`,theme:g}=Xp(e),_=d?.type??`main`,v=d?.nodeUrl??k(_).nodeUrl,y={...d,type:_,nodeUrl:v},b=i??{allowedWallets:[`veworld`]},x=s,S=W(()=>x?.find(e=>e.method===`ecosystem`)?.allowedApps??a.map(e=>e.id),[x]),C,w;n?(C=n.appId,w=n.clientId):(C=`clzdb5k0b02b9qvzjm6jpknsc`,w=`client-WY2oy87y6KNrHFnpXuwVsiFMkwPZKTYpExtjvUQuMbCMF`),U(()=>{wa(Ca),u&&Ca.changeLanguage(u),l&&Object.keys(l).forEach(e=>{Ca.addResourceBundle(e,`translation`,l[e],!0,!0)})},[u,l]),U(()=>{h(oe.NETWORK,_)},[_]);let ee=W(()=>Ra(La(c),za(g,c)),[g,c]),T=W(()=>Va(ee,c),[ee,c]),E=W(()=>Ha(ee,c),[ee,c]);return U(()=>{let e=Ba(ee.colors.background.card,c),t=Ba(ee.colors.background.cardElevated,c),n=c?`transparent`:`#ffffff`,r=c?`transparent`:`#ffffff`,i=c?`transparent`:`#ffffff`;Wa(E,ee.effects.backdropFilter.modal,e,t,n,r,i,ee.colors.border.default)},[E,ee.effects.backdropFilter.modal,ee.colors.background.card,ee.colors.background.cardElevated,ee.colors.border.default,c]),U(()=>{Ua()},[]),J(qa,{children:[q(Dn,{initialIsOpen:!1}),q(Hs,{privyEcosystemAppIDS:S,children:q(Yp.Provider,{value:{privy:n,privyEcosystemAppIDS:S,feeDelegation:r,dappKit:b,loginModalUI:o,loginMethods:x,darkMode:c,i18n:l,language:u,network:y,allowCustomTokens:f,legalDocuments:p,defaultCurrency:m,theme:g},children:q(vn,{appId:C,clientId:w,config:{loginMethodsAndOrder:{primary:n?.loginMethods.slice(0,4)??[],overflow:n?.loginMethods.slice(4)??[]},externalWallets:{walletConnect:{enabled:!1}},appearance:{theme:c?`dark`:`light`,accentColor:n?.appearance.accentColor??(ee.buttons.primaryButton.bg?.startsWith(`#`)?ee.buttons.primaryButton.bg:c?`#3182CE`:`#2B6CB0`),loginMessage:n?.appearance.loginMessage,logo:n?.appearance.logo},embeddedWallets:{createOnLogin:n?.embeddedWallets?.createOnLogin??`all-users`},passkeys:{shouldUnlinkOnUnenrollMfa:!1}},children:q(On,{node:y.nodeUrl,v2Api:{enabled:b.v2Api?.enabled??!0,external:b.v2Api?.external??!1},i18n:l,language:u,logLevel:b.logLevel,modalParent:b.modalParent,onSourceClick:b.onSourceClick,usePersistence:b.usePersistence??!0,allowedWallets:b.allowedWallets,walletConnectOptions:b.walletConnectOptions,themeMode:c?`DARK`:`LIGHT`,themeVariables:b.themeVariables?{...T,...b.themeVariables}:T,children:q(qp,{nodeUrl:y.nodeUrl,delegatorUrl:r?.delegatorUrl??r?.genericDelegatorUrl,delegateAllTransactions:r?.delegateAllTransactions??!1,genericDelegator:!!(!r?.delegatorUrl&&r?.genericDelegatorUrl),children:q(id,{children:q(Gp,{children:t})})})})})})})]})};export{qc as AccessAndSecurityContent,Sd as AccessAndSecurityModalProvider,kp as AccountAvatar,Ad as AccountCustomizationModalProvider,Pc as AccountDetailsButton,Nc as AccountMainContent,fu as AccountModal,cd as AccountModalProvider,Ic as AccountSelector,Fc as ActionButton,Ya as AddressDisplay,Ep as AddressDisplayCard,Al as AppearanceSettingsContent,ro as AssetButton,wl as AssetsContent,Rc as BalanceSection,$a as BaseModal,Te as BetterSwapLogo,El as BridgeContent,c as CURRENCY_SYMBOLS,Dl as ChangeCurrencyContent,dl as ChooseNameContent,gd as ChooseNameModalProvider,hl as ChooseNameSearchContent,gl as ChooseNameSummaryContent,ed as ColorModeSync,pu as ConnectModal,od as ConnectModalProvider,hu as ConnectPopover,mu as ConnectionButton,Kc as CrossAppConnectionSecurityCard,yl as CustomizationContent,bl as CustomizationSummaryContent,kn as DAppKitWalletButton,Dc as DappKitButton,nl as DisconnectConfirmContent,Gc as DomainRequiredAlert,le as ENS_TEXT_RECORDS,Ac as EcosystemButton,Eu as EcosystemModal,xc as EmailLoginButton,tl as EmbeddedWalletContent,Wc as ExchangeWarningAlert,wd as ExploreEcosystemModalProvider,vl as FAQContent,Od as FAQModalProvider,Uc as FeatureAnnouncementCard,Np as GasFeeSummary,Mp as GasFeeTokenSelector,Nl as GasTokenSettingsContent,Ol as GeneralSettingsContent,Ne as GitHubLogo,pe as GoogleLogo,kl as LanguageSettingsContent,Fp as LegalDocumentItem,m as LegalDocumentSource,se as LegalDocumentType,Rp as LegalDocumentsModal,Gp as LegalDocumentsProvider,dp as LocalStorageKey,Su as LoginLoadingModal,Cc as LoginWithGithubButton,Sc as LoginWithGoogleButton,Qs as MAX_IMAGE_SIZE,jc as MainContent,Tl as ManageCustomTokenContent,Ja as ModalBackButton,Dp as ModalFAQButton,jp as ModalNotificationButton,id as ModalProvider,n as NFTMediaType,Ed as NotificationsModalProvider,rs as PRICE_FEED_IDS,Ec as PasskeyLoginButton,Oc as PrivyButton,Se as PrivyLogo,qp as PrivyWalletProvider,Sl as ProfileContent,Ld as ProfileModalProvider,Vc as QuickActionsSection,Md as ReceiveModalProvider,ol as ReceiveTokenContent,Op as ScrollToTopWrapper,rl as SelectTokenContent,il as SendTokenContent,vd as SendTokenModalProvider,al as SendTokenSummaryContent,Yc as SettingsContent,su as ShareButtons,yu as SocialIcons,Qa as StickyFooterContainer,Z as StickyHeaderContainer,ul as SwapTokenContent,bd as SwapTokenModalProvider,zl as TermsAndPrivacyContent,Li as ThorClient,Ap as TransactionButtonAndStatus,lu as TransactionModal,cu as TransactionModalContent,ud as TransactionModalProvider,xu as TransactionToast,fd as TransactionToastProvider,de as TwitterLogo,Cl as UpgradeSmartAccountContent,ku as UpgradeSmartAccountModal,Fd as UpgradeSmartAccountModalProvider,_e as VETLogo,ke as VTHOLogo,Ce as VeBetterIcon,je as VeBetterIconDark,ve as VeBetterIconLight,ye as VeBetterLogo,De as VeBetterLogoDark,we as VeBetterLogoLight,Yp as VeChainKitContext,Zp as VeChainKitProvider,Tc as VeChainLoginButton,wc as VeChainWithPrivyLoginButton,ce as VePassportUserStatus,Ae as VeTradeLogo,he as VeWorldLogoDark,Ee as VeWorldLogoLight,Oe as VechainEnergy,xe as VechainIcon,be as VechainIconDark,me as VechainIconLight,td as VechainKitThemeProvider,fe as VechainLogo,Pe as VechainLogoDark,Fe as VechainLogoHorizontalDark,Me as VechainLogoHorizontalLight,ge as VechainLogoLight,Za as VersionFooter,vu as WalletButton,md as WalletModalProvider,sp as buildBatchAuthorizationTypedData,ae as buildCallClauses,Vo as buildClauses,Xf as buildERC20Clauses,cp as buildSingleAuthorizationTypedData,Qf as buildVETClauses,Co as buildVetDomainClauses,ue as calculateTotalCost,ac as compressImages,Bf as currentBlockQueryKey,ip as decodeEventLog,xp as decodeRawTx,vp as delegateAuthorized,yp as estimateAndBuildTxBody,gp as estimateGas,T as executeCallClause,re as executeMultipleClausesCall,Yd as fetchAppHubApps,io as fetchPrivyAppInfo,so as fetchPrivyStatus,v as formatGasCost,mf as getAccountAddress,hf as getAccountAddressQueryKey,af as getAccountBalance,of as getAccountBalanceQueryKey,cf as getAccountImplementationAddress,lf as getAccountImplementationAddressQueryKey,vf as getAccountVersionQueryKey,Jf as getAllEventLogs,Jd as getAppHubAppsQueryKey,Yo as getAvatarLegacy,Xo as getAvatarLegacyQueryKey,Go as getAvatarOfAddressQueryKey,Po as getAvatarQueryKey,xs as getB3trBalanceQueryKey,Zd as getCallClauseQueryKey,Qd as getCallClauseQueryKeyWithArgs,Uf as getChainId,Wf as getChainIdQueryKey,k as getConfig,df as getCurrentAccountImplementationVersion,ff as getCurrentAccountImplementationVersionQueryKey,hs as getCurrentAllocationsRoundIdQueryKey,Cs as getCustomTokenBalanceQueryKey,vs as getCustomTokenInfoQueryKey,_p as getDepositAccount,jo as getDomainsOfAddress,Mo as getDomainsOfAddressQueryKey,po as getEnsRecordExistsQueryKey,Ts as getErc20BalanceQueryKey,qf as getEventLogs,ap as getEventsKey,xf as getHasV1SmartAccount,Sf as getHasV1SmartAccountQueryKey,$s as getIpfsImage,ec as getIpfsImageQueryKey,Ys as getIpfsMetadata,Xs as getIpfsMetadataQueryKey,wf as getIsDeployed,Tf as getIsDeployedQueryKey,To as getIsDomainProtectedQueryKey,ks as getIsPersonQueryKey,ao as getPrivyAppInfoQueryKey,Uo as getResolverAddressQueryKey,Ns as getRoundXAppsQueryKey,kf as getSmartAccount,Af as getSmartAccountQueryKey,Lo as getTextRecords,Ro as getTextRecordsQueryKey,_s as getTokenInfo,is as getTokenUsdPrice,as as getTokenUsdPriceQueryKey,Mf as getUpgradeRequired,Ff as getUpgradeRequiredForAccount,If as getUpgradeRequiredForAccountQueryKey,Nf as getUpgradeRequiredQueryKey,lo as getVechainDomainQueryKey,Ds as getVot3BalanceQueryKey,Ks as getXAppMetadata,Is as getXAppsSharesQueryKey,ic as imageCompressionOptions,bp as signVip191Transaction,np as txReceiptQueryKey,xd as useAccessAndSecurityModal,sf as useAccountBalance,kd as useAccountCustomizationModal,uf as useAccountImplementationAddress,sd as useAccountModal,Jc as useAccountModalOptions,Xd as useAppHubApps,up as useBuildClauses,ep as useBuildTransaction,$d as useCallClause,hd as useChooseNameModal,bo as useClaimVeWorldSubdomain,wo as useClaimVetDomain,ad as useConnectModal,Ud as useCrossAppConnectionCache,us as useCurrency,pf as useCurrentAccountImplementationVersion,gs as useCurrentAllocationsRoundId,Hf as useCurrentBlock,bs as useCustomTokens,Mn as useDAppKitWallet,Pn as useDAppKitWalletModal,hp as useEcosystemShortcuts,mo as useEnsRecordExists,Tp as useEstimateAllTokens,op as useEvents,Cd as useExploreEcosystemModal,Dd as useFAQModal,Hc as useFeatureAnnouncement,oo as useFetchAppInfo,co as useFetchPrivyStatus,wp as useGasEstimation,Cp as useGasTokenSelection,Sp as useGenericDelegator,gf as useGetAccountAddress,yf as useGetAccountVersion,Fo as useGetAvatar,Qo as useGetAvatarLegacy,Ko as useGetAvatarOfAddress,Ss as useGetB3trBalance,Gf as useGetChainId,ws as useGetCustomTokenBalances,ys as useGetCustomTokenInfo,No as useGetDomainsOfAddress,Es as useGetErc20Balance,tf as useGetNodeUrl,Wo as useGetResolverAddress,zo as useGetTextRecords,os as useGetTokenUsdPrice,Os as useGetVot3Balance,Cf as useHasV1SmartAccount,tc as useIpfsImage,nc as useIpfsImageList,Zs as useIpfsMetadata,rc as useIpfsMetadatas,Oo as useIsDomainProtected,nf as useIsPWA,As as useIsPerson,Ef as useIsSmartAccountDeployed,Wp as useLegalDocuments,fp as useLocalStorage,Nd as useLoginModalContent,Hd as useLoginWithOAuth,Bd as useLoginWithPasskey,Wd as useLoginWithVeChain,Cn as useMfaEnrollment,rd as useModal,Rs as useMostVotedAppsInRound,ef as useMultipleClausesCall,Wl as useNotificationAlerts,Gl as useNotifications,Td as useNotificationsModal,wn as usePrivy,Jp as usePrivyWalletProvider,Id as useProfileModal,jd as useReceiveModal,Gs as useRefreshBalances,Df as useRefreshFactoryQueries,ho as useRefreshMetadata,Of as useRefreshSmartAccountQueries,Ps as useRoundXApps,rf as useScrollToTop,_d as useSendTokenModal,lc as useSendTransaction,En as useSetWalletRecovery,Rd as useSignMessage,zd as useSignTypedData,sc as useSingleImageUpload,jf as useSmartAccount,yc as useSwapQuotes,yd as useSwapTokenModal,uc as useSwapTransaction,mp as useSyncableLocalStorage,An as useThor,ns as useTokenBalances,ss as useTokenPrices,ds as useTokensWithValues,fs as useTotalBalance,ld as useTransactionModal,dd as useTransactionToast,Zf as useTransferERC20,$f as useTransferVET,rp as useTxReceipt,ts as useUnsetDomain,Ho as useUpdateTextRecord,Pf as useUpgradeRequired,Lf as useUpgradeRequiredForAccount,zf as useUpgradeSmartAccount,Pd as useUpgradeSmartAccountModal,oc as useUploadImages,$ as useVeChainKitConfig,uo as useVechainDomain,$u as useVechainKitThemeConfig,Q as useWallet,Ws as useWalletMetadata,pd as useWalletModal,Js as useXAppMetadata,Ls as useXAppsShares};
|
|
194
|
+
`));return n},lm=`vechain_kit_currency`,um=e=>{let{children:t,privy:n,feeDelegation:r,dappKit:i,loginModalUI:o,loginMethods:s,darkMode:c=!1,i18n:l,language:u=`en`,network:d,allowCustomTokens:f,legalDocuments:p,defaultCurrency:m=`usd`,theme:g,onLanguageChange:_,onCurrencyChange:v}=cm(e),y=d?.type??`main`,b=d?.nodeUrl??k(y).nodeUrl,x={...d,type:y,nodeUrl:b},S=i??{allowedWallets:[`veworld`]},[C,ee]=G(()=>typeof window<`u`&&w(`i18nextLng`)||u),[T,E]=G(()=>{try{return w(lm)||m}catch{return m}}),D=Zt(!1),te=Zt(!1),ne=s,re=W(()=>ne?.find(e=>e.method===`ecosystem`)?.allowedApps??a.map(e=>e.id),[ne]),O,ie;n?(O=n.appId,ie=n.clientId):(O=`clzdb5k0b02b9qvzjm6jpknsc`,ie=`client-WY2oy87y6KNrHFnpXuwVsiFMkwPZKTYpExtjvUQuMbCMF`),U(()=>{wa(Ca),l&&Object.keys(l).forEach(e=>{Ca.addResourceBundle(e,`translation`,l[e],!0,!0)});let e=(typeof window<`u`?w(`i18nextLng`):null)||C;e&&Ca.language!==e&&(D.current=!0,Ca.changeLanguage(e),e!==C&&ee(e),D.current=!1)},[]),U(()=>{let e=typeof window<`u`?w(`i18nextLng`):null;u&&!e&&u!==C&&(D.current=!0,Ca.changeLanguage(u),ee(u),D.current=!1)},[u,C]),U(()=>{let e=e=>{!D.current&&e!==C&&(ee(e),_?.(e))};return Ca.on(`languageChanged`,e),()=>{Ca.off(`languageChanged`,e)}},[C,_]),U(()=>{let e=w(lm);m&&!e&&m!==T&&(te.current=!0,E(m),h(lm,m),te.current=!1)},[m,T]),U(()=>{let e=()=>{try{let e=w(lm);if(e&&e!==T&&!te.current){let t=e;E(t),v?.(t)}}catch{}};e();let t=t=>{t.key===lm&&t.newValue&&e()};window.addEventListener(`storage`,t);let n=setInterval(e,500);return()=>{window.removeEventListener(`storage`,t),clearInterval(n)}},[T,v]);let ae=e=>{D.current=!0,Ca.changeLanguage(e),ee(e),D.current=!1},se=e=>{te.current=!0,E(e),h(lm,e),te.current=!1};U(()=>{h(oe.NETWORK,y)},[y]);let ce=W(()=>Ra(La(c),za(g,c)),[g,c]),le=W(()=>Va(ce,c),[ce,c]),ue=W(()=>Ha(ce,c),[ce,c]);return U(()=>{let e=Ba(ce.colors.background.card,c),t=Ba(ce.colors.background.cardElevated,c),n=c?`transparent`:`#ffffff`,r=c?`transparent`:`#ffffff`,i=c?`transparent`:`#ffffff`;Wa(ue,ce.effects.backdropFilter.modal,e,t,n,r,i,ce.colors.border.default)},[ue,ce.effects.backdropFilter.modal,ce.colors.background.card,ce.colors.background.cardElevated,ce.colors.border.default,c]),U(()=>{Ua()},[]),J(qa,{children:[q(Dn,{initialIsOpen:!1}),q(Vs,{privyEcosystemAppIDS:re,children:q(sm.Provider,{value:{privy:n,privyEcosystemAppIDS:re,feeDelegation:r,dappKit:S,loginModalUI:o,loginMethods:ne,darkMode:c,i18n:l,currentLanguage:C,network:x,allowCustomTokens:f,legalDocuments:p,currentCurrency:T,theme:g,setLanguage:ae,setCurrency:se},children:q(vn,{appId:O,clientId:ie,config:{loginMethodsAndOrder:{primary:n?.loginMethods.slice(0,4)??[],overflow:n?.loginMethods.slice(4)??[]},externalWallets:{walletConnect:{enabled:!1}},appearance:{theme:c?`dark`:`light`,accentColor:n?.appearance.accentColor??(ce.buttons.primaryButton.bg?.startsWith(`#`)?ce.buttons.primaryButton.bg:c?`#3182CE`:`#2B6CB0`),loginMessage:n?.appearance.loginMessage,logo:n?.appearance.logo},embeddedWallets:{createOnLogin:n?.embeddedWallets?.createOnLogin??`all-users`},passkeys:{shouldUnlinkOnUnenrollMfa:!1}},children:q(On,{node:x.nodeUrl,v2Api:{enabled:S.v2Api?.enabled??!0,external:S.v2Api?.external??!1},i18n:l,language:C,logLevel:S.logLevel,modalParent:S.modalParent,onSourceClick:S.onSourceClick,usePersistence:S.usePersistence??!0,allowedWallets:S.allowedWallets,walletConnectOptions:S.walletConnectOptions,themeMode:c?`DARK`:`LIGHT`,themeVariables:S.themeVariables?{...le,...S.themeVariables}:le,children:q(am,{nodeUrl:x.nodeUrl,delegatorUrl:r?.delegatorUrl??r?.genericDelegatorUrl,delegateAllTransactions:r?.delegateAllTransactions??!1,genericDelegator:!!(!r?.delegatorUrl&&r?.genericDelegatorUrl),children:q(md,{children:q(rm,{children:t})})})})})})})]})};export{rl as AccessAndSecurityContent,Md as AccessAndSecurityModalProvider,Vp as AccountAvatar,Bd as AccountCustomizationModalProvider,Wc as AccountDetailsButton,Uc as AccountMainContent,Su as AccountModal,vd as AccountModalProvider,Kc as AccountSelector,Gc as ActionButton,Ya as AddressDisplay,Rp as AddressDisplayCard,Bl as AppearanceSettingsContent,ro as AssetButton,Pl as AssetsContent,Jc as BalanceSection,$a as BaseModal,Te as BetterSwapLogo,Il as BridgeContent,c as CURRENCY_SYMBOLS,Ll as ChangeCurrencyContent,xl as ChooseNameContent,Ed as ChooseNameModalProvider,Tl as ChooseNameSearchContent,El as ChooseNameSummaryContent,ud as ColorModeSync,Cu as ConnectModal,gd as ConnectModalProvider,Tu as ConnectPopover,wu as ConnectionButton,nl as CrossAppConnectionSecurityCard,kl as CustomizationContent,Al as CustomizationSummaryContent,kn as DAppKitWalletButton,Lc as DappKitButton,fl as DisconnectConfirmContent,tl as DomainRequiredAlert,le as ENS_TEXT_RECORDS,Bc as EcosystemButton,Iu as EcosystemModal,jc as EmailLoginButton,dl as EmbeddedWalletContent,el as ExchangeWarningAlert,Pd as ExploreEcosystemModalProvider,Ol as FAQContent,Rd as FAQModalProvider,$c as FeatureAnnouncementCard,Gp as GasFeeSummary,Wp as GasFeeTokenSelector,Ul as GasTokenSettingsContent,Rl as GeneralSettingsContent,Ne as GitHubLogo,pe as GoogleLogo,zl as LanguageSettingsContent,qp as LegalDocumentItem,m as LegalDocumentSource,se as LegalDocumentType,Xp as LegalDocumentsModal,rm as LegalDocumentsProvider,Cp as LocalStorageKey,Mu as LoginLoadingModal,Nc as LoginWithGithubButton,Mc as LoginWithGoogleButton,Zs as MAX_IMAGE_SIZE,Vc as MainContent,Fl as ManageCustomTokenContent,Ja as ModalBackButton,zp as ModalFAQButton,Up as ModalNotificationButton,md as ModalProvider,n as NFTMediaType,Id as NotificationsModalProvider,rs as PRICE_FEED_IDS,Ic as PasskeyLoginButton,Rc as PrivyButton,Se as PrivyLogo,am as PrivyWalletProvider,Ml as ProfileContent,qd as ProfileModalProvider,Zc as QuickActionsSection,Hd as ReceiveModalProvider,gl as ReceiveTokenContent,Bp as ScrollToTopWrapper,pl as SelectTokenContent,ml as SendTokenContent,Od as SendTokenModalProvider,hl as SendTokenSummaryContent,al as SettingsContent,_u as ShareButtons,ku as SocialIcons,Qa as StickyFooterContainer,Z as StickyHeaderContainer,bl as SwapTokenContent,Ad as SwapTokenModalProvider,Yl as TermsAndPrivacyContent,Li as ThorClient,Hp as TransactionButtonAndStatus,yu as TransactionModal,vu as TransactionModalContent,bd as TransactionModalProvider,ju as TransactionToast,Sd as TransactionToastProvider,de as TwitterLogo,Nl as UpgradeSmartAccountContent,zu as UpgradeSmartAccountModal,Gd as UpgradeSmartAccountModalProvider,_e as VETLogo,ke as VTHOLogo,Ce as VeBetterIcon,je as VeBetterIconDark,ve as VeBetterIconLight,ye as VeBetterLogo,De as VeBetterLogoDark,we as VeBetterLogoLight,sm as VeChainKitContext,um as VeChainKitProvider,Fc as VeChainLoginButton,Pc as VeChainWithPrivyLoginButton,ce as VePassportUserStatus,Ae as VeTradeLogo,he as VeWorldLogoDark,Ee as VeWorldLogoLight,Oe as VechainEnergy,xe as VechainIcon,be as VechainIconDark,me as VechainIconLight,dd as VechainKitThemeProvider,fe as VechainLogo,Pe as VechainLogoDark,Fe as VechainLogoHorizontalDark,Me as VechainLogoHorizontalLight,ge as VechainLogoLight,Za as VersionFooter,Ou as WalletButton,wd as WalletModalProvider,yp as buildBatchAuthorizationTypedData,ae as buildCallClauses,Vo as buildClauses,cp as buildERC20Clauses,bp as buildSingleAuthorizationTypedData,up as buildVETClauses,Co as buildVetDomainClauses,ue as calculateTotalCost,ic as compressImages,Qf as currentBlockQueryKey,gp as decodeEventLog,Np as decodeRawTx,Ap as delegateAuthorized,jp as estimateAndBuildTxBody,Op as estimateGas,T as executeCallClause,re as executeMultipleClausesCall,of as fetchAppHubApps,io as fetchPrivyAppInfo,so as fetchPrivyStatus,v as formatGasCost,Ef as getAccountAddress,Df as getAccountAddressQueryKey,_f as getAccountBalance,vf as getAccountBalanceQueryKey,bf as getAccountImplementationAddress,xf as getAccountImplementationAddressQueryKey,Af as getAccountVersionQueryKey,op as getAllEventLogs,af as getAppHubAppsQueryKey,Yo as getAvatarLegacy,Xo as getAvatarLegacyQueryKey,Go as getAvatarOfAddressQueryKey,Po as getAvatarQueryKey,bs as getB3trBalanceQueryKey,cf as getCallClauseQueryKey,lf as getCallClauseQueryKeyWithArgs,tp as getChainId,np as getChainIdQueryKey,k as getConfig,Cf as getCurrentAccountImplementationVersion,wf as getCurrentAccountImplementationVersionQueryKey,ms as getCurrentAllocationsRoundIdQueryKey,Ss as getCustomTokenBalanceQueryKey,_s as getCustomTokenInfoQueryKey,kp as getDepositAccount,jo as getDomainsOfAddress,Mo as getDomainsOfAddressQueryKey,po as getEnsRecordExistsQueryKey,ws as getErc20BalanceQueryKey,ap as getEventLogs,_p as getEventsKey,Nf as getHasV1SmartAccount,Pf as getHasV1SmartAccountQueryKey,Qs as getIpfsImage,$s as getIpfsImageQueryKey,Js as getIpfsMetadata,Ys as getIpfsMetadataQueryKey,If as getIsDeployed,Lf as getIsDeployedQueryKey,To as getIsDomainProtectedQueryKey,Os as getIsPersonQueryKey,ao as getPrivyAppInfoQueryKey,Uo as getResolverAddressQueryKey,Ms as getRoundXAppsQueryKey,Vf as getSmartAccount,Hf as getSmartAccountQueryKey,Lo as getTextRecords,Ro as getTextRecordsQueryKey,gs as getTokenInfo,is as getTokenUsdPrice,as as getTokenUsdPriceQueryKey,Wf as getUpgradeRequired,qf as getUpgradeRequiredForAccount,Jf as getUpgradeRequiredForAccountQueryKey,Gf as getUpgradeRequiredQueryKey,lo as getVechainDomainQueryKey,Es as getVot3BalanceQueryKey,Gs as getXAppMetadata,Fs as getXAppsSharesQueryKey,rc as imageCompressionOptions,Mp as signVip191Transaction,mp as txReceiptQueryKey,jd as useAccessAndSecurityModal,yf as useAccountBalance,zd as useAccountCustomizationModal,Sf as useAccountImplementationAddress,_d as useAccountModal,il as useAccountModalOptions,sf as useAppHubApps,Sp as useBuildClauses,fp as useBuildTransaction,uf as useCallClause,Td as useChooseNameModal,bo as useClaimVeWorldSubdomain,wo as useClaimVetDomain,hd as useConnectModal,$d as useCrossAppConnectionCache,ls as useCurrency,Tf as useCurrentAccountImplementationVersion,hs as useCurrentAllocationsRoundId,ep as useCurrentBlock,pf as useCurrentCurrency,ff as useCurrentLanguage,ys as useCustomTokens,Mn as useDAppKitWallet,Pn as useDAppKitWalletModal,Dp as useEcosystemShortcuts,mo as useEnsRecordExists,Lp as useEstimateAllTokens,vp as useEvents,Nd as useExploreEcosystemModal,Ld as useFAQModal,Qc as useFeatureAnnouncement,oo as useFetchAppInfo,co as useFetchPrivyStatus,Ip as useGasEstimation,Fp as useGasTokenSelection,Pp as useGenericDelegator,Of as useGetAccountAddress,jf as useGetAccountVersion,Fo as useGetAvatar,Qo as useGetAvatarLegacy,Ko as useGetAvatarOfAddress,xs as useGetB3trBalance,rp as useGetChainId,Cs as useGetCustomTokenBalances,vs as useGetCustomTokenInfo,No as useGetDomainsOfAddress,Ts as useGetErc20Balance,mf as useGetNodeUrl,Wo as useGetResolverAddress,zo as useGetTextRecords,os as useGetTokenUsdPrice,Ds as useGetVot3Balance,Ff as useHasV1SmartAccount,ec as useIpfsImage,tc as useIpfsImageList,Xs as useIpfsMetadata,nc as useIpfsMetadatas,Oo as useIsDomainProtected,hf as useIsPWA,ks as useIsPerson,Rf as useIsSmartAccountDeployed,nm as useLegalDocuments,wp as useLocalStorage,Ud as useLoginModalContent,Qd as useLoginWithOAuth,Xd as useLoginWithPasskey,ef as useLoginWithVeChain,Cn as useMfaEnrollment,pd as useModal,Ls as useMostVotedAppsInRound,df as useMultipleClausesCall,eu as useNotificationAlerts,tu as useNotifications,Fd as useNotificationsModal,wn as usePrivy,om as usePrivyWalletProvider,Kd as useProfileModal,Vd as useReceiveModal,Ws as useRefreshBalances,zf as useRefreshFactoryQueries,ho as useRefreshMetadata,Bf as useRefreshSmartAccountQueries,Ns as useRoundXApps,gf as useScrollToTop,Dd as useSendTokenModal,cc as useSendTransaction,En as useSetWalletRecovery,Jd as useSignMessage,Yd as useSignTypedData,oc as useSingleImageUpload,Uf as useSmartAccount,kc as useSwapQuotes,kd as useSwapTokenModal,lc as useSwapTransaction,Ep as useSyncableLocalStorage,An as useThor,ns as useTokenBalances,ss as useTokenPrices,us as useTokensWithValues,ds as useTotalBalance,yd as useTransactionModal,xd as useTransactionToast,lp as useTransferERC20,dp as useTransferVET,hp as useTxReceipt,ts as useUnsetDomain,Ho as useUpdateTextRecord,Kf as useUpgradeRequired,Yf as useUpgradeRequiredForAccount,Zf as useUpgradeSmartAccount,Wd as useUpgradeSmartAccountModal,ac as useUploadImages,$ as useVeChainKitConfig,uo as useVechainDomain,ld as useVechainKitThemeConfig,Q as useWallet,Us as useWalletMetadata,Cd as useWalletModal,qs as useXAppMetadata,Is as useXAppsShares};
|
|
195
195
|
//# sourceMappingURL=index.mjs.map
|