@vechain/vechain-kit 2.6.1 → 2.6.3

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.
Files changed (83) hide show
  1. package/dist/assets/index.d.cts +1 -1
  2. package/dist/assets/index.d.mts +1 -1
  3. package/dist/{index-s3ccs5Id.d.cts → index--hSO7Xv4.d.mts} +4 -4
  4. package/dist/{index-s3ccs5Id.d.cts.map → index--hSO7Xv4.d.mts.map} +1 -1
  5. package/dist/{index-yh6UaaBN.d.mts → index-3EuDo9II.d.mts} +146 -146
  6. package/dist/{index-B71-RkVd.d.cts.map → index-3EuDo9II.d.mts.map} +1 -1
  7. package/dist/{index-Dc-RB9c2.d.mts → index-Cf1aBaTL.d.cts} +4 -4
  8. package/dist/{index-Dc-RB9c2.d.mts.map → index-Cf1aBaTL.d.cts.map} +1 -1
  9. package/dist/{index-B71-RkVd.d.cts → index-o92cc2nW.d.cts} +149 -149
  10. package/dist/{index-yh6UaaBN.d.mts.map → index-o92cc2nW.d.cts.map} +1 -1
  11. package/dist/index.cjs +8 -8
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.d.cts +2 -2
  14. package/dist/index.d.mts +2 -2
  15. package/dist/index.mjs +8 -8
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/utils/index.d.cts +2 -2
  18. package/dist/utils/index.d.mts +2 -2
  19. package/package.json +2 -3
  20. package/dist/de-BFiyX1GF.cjs +0 -2
  21. package/dist/de-BFiyX1GF.cjs.map +0 -1
  22. package/dist/de-CL456uk2.mjs +0 -2
  23. package/dist/de-CL456uk2.mjs.map +0 -1
  24. package/dist/es-BqNNKHB0.mjs +0 -2
  25. package/dist/es-BqNNKHB0.mjs.map +0 -1
  26. package/dist/es-lVekqJvu.cjs +0 -2
  27. package/dist/es-lVekqJvu.cjs.map +0 -1
  28. package/dist/fr-C5OuuOPh.cjs +0 -2
  29. package/dist/fr-C5OuuOPh.cjs.map +0 -1
  30. package/dist/fr-PQTnQtHc.mjs +0 -2
  31. package/dist/fr-PQTnQtHc.mjs.map +0 -1
  32. package/dist/hi-BQ2VZQlz.mjs +0 -2
  33. package/dist/hi-BQ2VZQlz.mjs.map +0 -1
  34. package/dist/hi-DyR8xd6m.cjs +0 -2
  35. package/dist/hi-DyR8xd6m.cjs.map +0 -1
  36. package/dist/it-CcvV1IlX.mjs +0 -2
  37. package/dist/it-CcvV1IlX.mjs.map +0 -1
  38. package/dist/it-CtyGT5hV.cjs +0 -2
  39. package/dist/it-CtyGT5hV.cjs.map +0 -1
  40. package/dist/ja-EfHF9V_o.cjs +0 -2
  41. package/dist/ja-EfHF9V_o.cjs.map +0 -1
  42. package/dist/ja-_mAa1fdP.mjs +0 -2
  43. package/dist/ja-_mAa1fdP.mjs.map +0 -1
  44. package/dist/ko-BeUiFlha.cjs +0 -2
  45. package/dist/ko-BeUiFlha.cjs.map +0 -1
  46. package/dist/ko-CfT-gn4I.mjs +0 -2
  47. package/dist/ko-CfT-gn4I.mjs.map +0 -1
  48. package/dist/nl-BqGKf8N1.cjs +0 -2
  49. package/dist/nl-BqGKf8N1.cjs.map +0 -1
  50. package/dist/nl-ls_GRrv6.mjs +0 -2
  51. package/dist/nl-ls_GRrv6.mjs.map +0 -1
  52. package/dist/pt-B-R-6Hdt.mjs +0 -2
  53. package/dist/pt-B-R-6Hdt.mjs.map +0 -1
  54. package/dist/pt-I1a6tTFu.cjs +0 -2
  55. package/dist/pt-I1a6tTFu.cjs.map +0 -1
  56. package/dist/ro-Ba8tFBmh.cjs +0 -2
  57. package/dist/ro-Ba8tFBmh.cjs.map +0 -1
  58. package/dist/ro-BoGXUy66.mjs +0 -2
  59. package/dist/ro-BoGXUy66.mjs.map +0 -1
  60. package/dist/ru-C0bvvCc8.cjs +0 -2
  61. package/dist/ru-C0bvvCc8.cjs.map +0 -1
  62. package/dist/ru-D-Dfg2x-.mjs +0 -2
  63. package/dist/ru-D-Dfg2x-.mjs.map +0 -1
  64. package/dist/sv-BBsWb8O5.mjs +0 -2
  65. package/dist/sv-BBsWb8O5.mjs.map +0 -1
  66. package/dist/sv-CDqUg0Wg.cjs +0 -2
  67. package/dist/sv-CDqUg0Wg.cjs.map +0 -1
  68. package/dist/tr-CUjmBjJO.cjs +0 -2
  69. package/dist/tr-CUjmBjJO.cjs.map +0 -1
  70. package/dist/tr-DRmU0qqA.mjs +0 -2
  71. package/dist/tr-DRmU0qqA.mjs.map +0 -1
  72. package/dist/tw-CGmTbBO2.mjs +0 -2
  73. package/dist/tw-CGmTbBO2.mjs.map +0 -1
  74. package/dist/tw-Ci_2P7in.cjs +0 -2
  75. package/dist/tw-Ci_2P7in.cjs.map +0 -1
  76. package/dist/vi-D6xwAgyf.cjs +0 -2
  77. package/dist/vi-D6xwAgyf.cjs.map +0 -1
  78. package/dist/vi-tNWk5jJK.mjs +0 -2
  79. package/dist/vi-tNWk5jJK.mjs.map +0 -1
  80. package/dist/zh-BY6GpEW-.cjs +0 -2
  81. package/dist/zh-BY6GpEW-.cjs.map +0 -1
  82. package/dist/zh-DqPPuL6F.mjs +0 -2
  83. package/dist/zh-DqPPuL6F.mjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const e=require(`./assets-DNJsQD7_.cjs`),t=require(`./utils-CzaSErgL.cjs`);let n=require(`@chakra-ui/react`),r=require(`react`);r=e.Q(r);let i=require(`react/jsx-runtime`),a=require(`bignumber.js`),o=require(`ethers`),s=require(`@vechain/sdk-core`),c=require(`i18next`);c=e.Q(c);let l=require(`react-i18next`),u=require(`i18next-resources-to-backend`);u=e.Q(u);let d=require(`@privy-io/react-auth`),f=require(`@tanstack/react-query-devtools`),p=require(`@vechain/dapp-kit-react`),m=require(`@tanstack/react-query`),h=require(`wagmi/query`),g=require(`framer-motion`),_=require(`react-icons/lu`),v=require(`vaul`),y=require(`@vechain/contract-getters`),b=require(`@vechain/vechain-contract-types`),x=require(`viem`),S=require(`zod`),C=require(`wagmi`),w=require(`@privy-io/cross-app-connect/rainbow-kit`),T=require(`react-device-detect`),E=require(`browser-image-compression`);E=e.Q(E);let D=require(`react-icons/fc`),O=require(`react-hook-form`),k=require(`@adraffy/ens-normalize`),A=require(`react-qrcode-logo`),j=require(`react-icons/go`),M=require(`react-icons/fa6`),N=require(`react-icons/si`),P=require(`react-icons/fa`),F=require(`@emotion/react`),I=require(`@emotion/cache`);I=e.Q(I);let L=require(`@chakra-ui/anatomy`),R=require(`@vechain/sdk-network`),z=require(`@noble/curves/abstract/utils`);z=e.Q(z);var B={" 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`,"Active Wallet":`Active Wallet`,"Add Login Method":`Add Login Method`,"Add New Wallet":`Add New Wallet`,"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 remove this wallet?":`Are you sure you want to remove this wallet?`,"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:`Backup`,"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 confirming, the following details attached to your name ({{domain}}) will be updated":`By confirming, the following details attached to your name ({{domain}}) will be updated`,"By confirming, your address will be set to {{domain}}":`By confirming, your address will be set to {{domain}}`,"By confirming, your current domain will be unset":`By confirming, your current domain will be unset`,"By continuing, you agree to":`By continuing, you agree to`,Cancel:`Cancel`,"Checking...":`Checking...`,"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.`,"Copied!":`Copied!`,"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`,"Explore ecosystem":`Explore ecosystem`,"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`,"Frequently asked questions":`Frequently asked questions`,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`,Hide:`Hide`,"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 quote...":`Loading quote...`,"Loading your domains...":`Loading your domains...`,"Loading...":`Loading...`,"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 Wallets":`Other Wallets`,"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 Wallet":`Remove Wallet`,"Remove from shortcuts":`Remove from shortcuts`,"Remove wallet":`Remove wallet`,"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 Wallet":`Select Wallet`,"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 Advanced Options":`Show Advanced Options`,"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...`,Switch:`Switch`,"Account Changed":`Account Changed`,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`};const V=[`en`,`de`,`it`,`fr`,`es`,`zh`,`ja`,`ru`,`ro`,`vi`,`nl`,`ko`,`sv`,`tw`,`tr`,`hi`,`pt`],ee={en:`English`,de:`Deutsch`,it:`Italiano`,fr:`Français`,es:`Español`,zh:`中文`,ja:`日本語`,ru:`Русский`,ro:`Română`,vi:`Tiếng Việt`,nl:`Nederlands`,ko:`한국어`,sv:`Svenska`,tw:`繁體中文`,tr:`Türkçe`,hi:`हिन्दी`,pt:`Português`},H={en:`en-US`,de:`de-DE`,it:`it-IT`,fr:`fr-FR`,es:`es-ES`,zh:`zh-CN`,ja:`ja-JP`,ru:`ru-RU`,ro:`ro-RO`,vi:`vi-VN`,nl:`nl-NL`,ko:`ko-KR`,sv:`sv-SE`,tw:`zh-TW`,tr:`tr-TR`,hi:`hi-IN`,pt:`pt-BR`},te={de:()=>Promise.resolve().then(()=>require(`./de-BFiyX1GF.cjs`)),it:()=>Promise.resolve().then(()=>require(`./it-CtyGT5hV.cjs`)),fr:()=>Promise.resolve().then(()=>require(`./fr-C5OuuOPh.cjs`)),es:()=>Promise.resolve().then(()=>require(`./es-lVekqJvu.cjs`)),zh:()=>Promise.resolve().then(()=>require(`./zh-BY6GpEW-.cjs`)),ja:()=>Promise.resolve().then(()=>require(`./ja-EfHF9V_o.cjs`)),ru:()=>Promise.resolve().then(()=>require(`./ru-C0bvvCc8.cjs`)),ro:()=>Promise.resolve().then(()=>require(`./ro-Ba8tFBmh.cjs`)),tw:()=>Promise.resolve().then(()=>require(`./tw-Ci_2P7in.cjs`)),vi:()=>Promise.resolve().then(()=>require(`./vi-D6xwAgyf.cjs`)),nl:()=>Promise.resolve().then(()=>require(`./nl-BqGKf8N1.cjs`)),ko:()=>Promise.resolve().then(()=>require(`./ko-BeUiFlha.cjs`)),sv:()=>Promise.resolve().then(()=>require(`./sv-CDqUg0Wg.cjs`)),tr:()=>Promise.resolve().then(()=>require(`./tr-CUjmBjJO.cjs`)),hi:()=>Promise.resolve().then(()=>require(`./hi-DyR8xd6m.cjs`)),pt:()=>Promise.resolve().then(()=>require(`./pt-I1a6tTFu.cjs`))},ne=async e=>{if(e===`en`||c.default.hasResourceBundle(e,`translation`))return;let t=te[e];if(t)try{let n=await t();c.default.addResourceBundle(e,`translation`,n.default,!0,!0)}catch(t){console.error(`[VeChainKit] Failed to load language "${e}":`,t)}},re={name:`customDetector`,lookup:e=>{if(typeof window<`u`){let e=localStorage.getItem(`i18nextLng`);if(e&&V.includes(e))return e}let t=e?.languages?.[0];if(t&&V.includes(t))return t;if(typeof window<`u`){let e=navigator.language,t=Object.entries(H).find(([,t])=>t.toLowerCase()===e.toLowerCase())?.[0];if(t&&V.includes(t))return t;let n=e.split(`-`)[0];if(n&&V.includes(n))return n}return`en`},cacheUserLanguage:e=>{typeof window<`u`&&localStorage.setItem(`i18nextLng`,e)}};c.default.use({type:`languageDetector`,async:!1,init:()=>{},detect:re.lookup,cacheUserLanguage:re.cacheUserLanguage}).use((0,u.default)(e=>{if(e===`en`)return;let t=te[e];if(t)return t()})).use(l.initReactI18next).init({resources:{en:{translation:B}},fallbackLng:`en`,interpolation:{escapeValue:!1}});var U=c.default;const ie=async e=>{let t=e.language;if(!t||t===`en`)return;let n=V.includes(t)?t:V.includes(t.split(`-`)[0])?t.split(`-`)[0]:null;n&&await ne(n)};function W(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 G(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 W(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 ae(e,t,n,r){let i=r||n;return{modal:e,card:G(e,.8),cardElevated:e,overlay:i,stickyHeader:G(e,.9)}}function oe(e,t){return{primary:e,secondary:G(e,.7),tertiary:G(e,.5),disabled:t?`#4A5568`:`#A0AEC0`}}function se(e,t,n){let r=t?`#ffffff`:`#000000`;return{default:G(r,.1),hover:G(r,.2),focus:t?`#3182CE`:`#2B6CB0`,button:G(r,.1),modal:n||`none`}}function ce(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:G(e,.1),color:t,border:`1px solid ${G(e,.1)}`}}return i.buttons.button}function le(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:i.buttons.primaryButton.color,border:`none`}:i.buttons.primaryButton}function ue(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 de(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 K(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(20px)`}.modal,modalOpacity:1,overlayOpacity:.4,stickyHeaderOpacity:.9}}const q={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:`#272A2E`,color:`white`,rounded:`full`,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}},fe={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:`white`,color:`blackAlpha.900`,border:`none`,rounded:`full`},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}},pe=e=>e?fe:q;function me(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 he(e,t){if(!e)return{};let n={},r=pe(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=ae(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=oe(e.textColor,t)),a?n.colors.border=se(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=K(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=G(a,i.modalOpacity),n.colors.background.stickyHeader=G(a,i.stickyHeaderOpacity);else{let e=r.colors.background.modal,t=r.colors.background.stickyHeader;n.colors.background.modal=G(e,i.modalOpacity),n.colors.background.stickyHeader=G(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=ce(a,e.textColor,t,e.buttons?.secondaryButton,r),n.buttons.primaryButton=le(a,e.textColor,t,e.buttons?.primaryButton,r),n.buttons.tertiaryButton=ue(a,e.textColor,t,e.buttons?.tertiaryButton,r),n.buttons.loginButton=de(a,e.textColor,t,e.buttons?.loginButton,r),n}function ge(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 _e(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 ve(e,t){let n=ge(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 ye(){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
+ const e=require(`./assets-DNJsQD7_.cjs`),t=require(`./utils-CzaSErgL.cjs`);let n=require(`@chakra-ui/react`),r=require(`react`);r=e.Q(r);let i=require(`react/jsx-runtime`),a=require(`bignumber.js`),o=require(`ethers`),s=require(`@vechain/sdk-core`),c=require(`i18next`);c=e.Q(c);let l=require(`react-i18next`),u=require(`@privy-io/react-auth`),d=require(`@tanstack/react-query-devtools`),f=require(`@vechain/dapp-kit-react`),p=require(`@tanstack/react-query`),m=require(`wagmi/query`),h=require(`framer-motion`),g=require(`react-icons/lu`),_=require(`vaul`),v=require(`@vechain/contract-getters`),y=require(`@vechain/vechain-contract-types`),b=require(`viem`),x=require(`zod`),S=require(`wagmi`),C=require(`@privy-io/cross-app-connect/rainbow-kit`),w=require(`react-device-detect`),T=require(`browser-image-compression`);T=e.Q(T);let E=require(`react-icons/fc`),D=require(`react-hook-form`),O=require(`@adraffy/ens-normalize`),k=require(`react-qrcode-logo`),A=require(`react-icons/go`),j=require(`react-icons/fa6`),M=require(`react-icons/si`),N=require(`react-icons/fa`),P=require(`@emotion/react`),F=require(`@emotion/cache`);F=e.Q(F);let I=require(`@chakra-ui/anatomy`),L=require(`@vechain/sdk-network`),R=require(`@noble/curves/abstract/utils`);R=e.Q(R);var z={" 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`,"Active Wallet":`Active Wallet`,"Add Login Method":`Add Login Method`,"Add New Wallet":`Add New Wallet`,"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 remove this wallet?":`Are you sure you want to remove this wallet?`,"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:`Backup`,"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 confirming, the following details attached to your name ({{domain}}) will be updated":`By confirming, the following details attached to your name ({{domain}}) will be updated`,"By confirming, your address will be set to {{domain}}":`By confirming, your address will be set to {{domain}}`,"By confirming, your current domain will be unset":`By confirming, your current domain will be unset`,"By continuing, you agree to":`By continuing, you agree to`,Cancel:`Cancel`,"Checking...":`Checking...`,"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.`,"Copied!":`Copied!`,"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`,"Explore ecosystem":`Explore ecosystem`,"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`,"Frequently asked questions":`Frequently asked questions`,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`,Hide:`Hide`,"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 quote...":`Loading quote...`,"Loading your domains...":`Loading your domains...`,"Loading...":`Loading...`,"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 Wallets":`Other Wallets`,"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 Wallet":`Remove Wallet`,"Remove from shortcuts":`Remove from shortcuts`,"Remove wallet":`Remove wallet`,"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 Wallet":`Select Wallet`,"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 Advanced Options":`Show Advanced Options`,"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...`,Switch:`Switch`,"Account Changed":`Account Changed`,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`},B={" 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 that help us enhance your experience.":`<bold>Ihre Privatsphäre ist wichtig.</bold> Sie haben die Kontrolle. Akzeptieren Sie, um optionale Funktionen wie Cookies zu aktivieren, 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`,"Active Wallet":`Aktive Brieftasche`,"Add Login Method":`Anmeldemethode hinzufügen`,"Add New Wallet":`Neue Brieftasche 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`,Apply:`Anwenden`,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 remove this wallet?":`Sind Sie sicher, dass Sie diese Brieftasche entfernen 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:`Backup`,"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 confirming, the following details attached to your name ({{domain}}) will be updated":`Mit Bestätigung werden die folgenden Angaben, die Ihrem Namen ({{domain}}) zugeordnet sind, aktualisiert`,"By confirming, your address will be set to {{domain}}":`Mit Bestätigung wird Ihre Adresse auf {{domain}} gesetzt`,"By confirming, your current domain will be unset":`Mit Bestätigung wird Ihre aktuelle Domain entfernt`,"By continuing, you agree to":`Indem Sie fortfahren, stimmen Sie zu`,Cancel:`Abbrechen`,"Checking...":`Überprüfen...`,"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 which tokens to use for transaction fees when the app is not covering them.":`Wählen Sie aus, welche Token für Transaktionsgebühren verwendet werden sollen, wenn die App diese nicht übernimmt.`,"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.`,"Copied!":`Kopiert!`,"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`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Ziehen, um die Reihenfolge zu ändern. Das System verwendet automatisch das Token mit der höchsten Priorität und ausreichendem Guthaben.`,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`,"Explore ecosystem":`Ökosystem erkunden`,"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:`Gebühr`,"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.`,"Fee token":`Gebührentoken`,"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`,"Frequently asked questions":`Häufig gestellte Fragen`,From:`Von`,"Gas Token Preferences":`Gas-Token-Einstellungen`,"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`,Hide:`Ausblenden`,"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 balance":`Unzureichendes Guthaben`,"Insufficient balance to claim this domain and cover gas fees.":`Unzureichendes Guthaben, um diese Domain zu beanspruchen und die Gasgebühren zu bezahlen.`,"Insufficient balance to complete this transaction and cover gas fees.":`Unzureichendes Guthaben, um diese Transaktion abzuschließen und die Gasgebühren zu bezahlen.`,"Insufficient balance to complete this transfer and cover gas fees.":`Unzureichendes Guthaben, um diese Überweisung abzuschließen und die Gasgebühren zu bezahlen.`,"Insufficient balance to update your profile and cover gas fees.":`Unzureichendes Guthaben, um Ihr Profil zu aktualisieren und die Gasgebühren zu bezahlen.`,"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 quote...":`Angebot wird geladen...`,"Loading your domains...":`Ihre Domains werden geladen...`,"Loading...":`Lädt...`,"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 Wallets":`Weitere Brieftaschen`,"Other options":`Weitere Optionen`,Passkey:`Passkey`,"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 Passkey-Authentifizierung 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":`Mehr lesen`,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 Wallet":`Brieftasche entfernen`,"Remove from shortcuts":`Aus den Verknüpfungen entfernen`,"Remove wallet":`Brieftasche 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 Wallet":`Brieftasche auswählen`,"Select currency":`Währung auswählen`,"Select language":`Sprache auswählen`,"Select the token to pay the fee with":`Wählen Sie das Token aus, mit dem Sie die Gebühr bezahlen möchten`,"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 Advanced Options":`Erweiterte Optionen anzeigen`,"Show Less":`Weniger anzeigen`,"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...`,Switch:`Wechseln`,"Account Changed":`Konto geändert`,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 Priority Order":`Token-Prioritätsreihenfolge`,"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`,"Use this token for future transactions":`Dieses Token für zukünftige Transaktionen 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, Ihren privaten Schlüssel zu exportieren, um Ihr Wallet zu sichern. Dies stellt sicher, dass Sie es bei Bedarf wiederherstellen oder in Eigenverwahrung übertragen können, indem Sie`,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 don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`Sie haben keine Gas-Token aktiviert. Bitte aktivieren Sie mindestens ein Gas-Token in den Gas-Token-Einstellungen.`,"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.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`Sie müssen mindestens ein Token aktivieren, um Transaktionen durchzuführen. Ohne aktivierte Token können Sie keine Gasgebühren bezahlen.`,"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:`Sammlerstücke`,defi:`DeFi`,games:`Spiele`,here:`hier`,marketplaces:`Marktplätze`,rate:`Kurs`,"to learn more about embedded wallets.":`um mehr über eingebettete Wallets zu erfahren.`,unavailable:`nicht verfügbar`,utilities:`Dienstprogramme`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},ee={" 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 that help us enhance your experience.":`<bold>La tua privacy è importante.</bold> Hai il controllo, accetta per abilitare funzionalità opzionali come i cookie 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`,"Active Wallet":`Portafoglio Attivo`,"Add Login Method":`Aggiungi metodo di accesso`,"Add New Wallet":`Aggiungi Nuovo Portafoglio`,"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`,Apply:`Applica`,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 remove this wallet?":`Sei sicuro di voler rimuovere questo portafoglio?`,"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:`Backup`,"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 confirming, the following details attached to your name ({{domain}}) will be updated":`Confermando, i seguenti dettagli collegati al tuo nome ({{domain}}) saranno aggiornati`,"By confirming, your address will be set to {{domain}}":`Confermando, il tuo indirizzo sarà impostato su {{domain}}`,"By confirming, your current domain will be unset":`Confermando, il tuo dominio attuale sarà rimosso`,"By continuing, you agree to":`Continuando, accetti di`,Cancel:`Annulla`,"Checking...":`Verifica in corso...`,"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 which tokens to use for transaction fees when the app is not covering them.":`Scegli quali token usare per le commissioni di transazione quando l'app non le copre.`,"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.`,"Copied!":`Copiato!`,"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`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Trascina per riordinare. Il sistema userà automaticamente il token con priorità più alta e saldo sufficiente.`,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`,"Explore ecosystem":`Esplora l'ecosistema`,"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:`Commissione`,"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.`,"Fee token":`Token di commissione`,"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`,"Frequently asked questions":`Domande frequenti`,From:`Da`,"Gas Token Preferences":`Preferenze token gas`,"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`,Hide:`Nascondi`,"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 balance":`Saldo insufficiente`,"Insufficient balance to claim this domain and cover gas fees.":`Saldo insufficiente per rivendicare questo dominio e coprire le commissioni di gas.`,"Insufficient balance to complete this transaction and cover gas fees.":`Saldo insufficiente per completare questa transazione e coprire le commissioni di gas.`,"Insufficient balance to complete this transfer and cover gas fees.":`Saldo insufficiente per completare questo trasferimento e coprire le commissioni di gas.`,"Insufficient balance to update your profile and cover gas fees.":`Saldo insufficiente per aggiornare il tuo profilo e coprire le commissioni di gas.`,"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 quote...":`Caricamento preventivo...`,"Loading your domains...":`Caricamento dei tuoi domini...`,"Loading...":`Caricamento...`,"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 Wallets":`Altri Portafogli`,"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":`Leggi di più`,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 Wallet":`Rimuovi Portafoglio`,"Remove from shortcuts":`Rimuovi dai collegamenti`,"Remove wallet":`Rimuovi portafoglio`,"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 Wallet":`Seleziona Portafoglio`,"Select currency":`Seleziona valuta`,"Select language":`Seleziona lingua`,"Select the token to pay the fee with":`Seleziona il token con cui pagare la commissione`,"Select token":`Seleziona token`,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 Advanced Options":`Mostra opzioni avanzate`,"Show Less":`Mostra meno`,"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...`,Switch:`Cambia`,"Account Changed":`Account cambiato`,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 Priority Order":`Ordine di priorità dei 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`,"Use this token for future transactions":`Usa questo token per le transazioni future`,"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 don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`Non hai nessun token gas abilitato. Abilita almeno un token gas nelle Preferenze Token Gas.`,"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.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`Devi abilitare almeno un token per eseguire transazioni. Senza alcun token abilitato, non potrai pagare le commissioni di gas.`,"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:`Collezioni`,defi:`DeFi`,games:`Giochi`,here:`qui`,marketplaces:`Mercati`,rate:`tariffa`,"to learn more about embedded wallets.":`per saperne di più sui portafogli integrati.`,unavailable:`non disponibile`,utilities:`Strumenti`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},V={" 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 that help us enhance your experience.":`<bold>Votre vie privée compte.</bold> Vous gardez le contrôle, acceptez d’activer des fonctionnalités optionnelles comme les cookies 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`,"Active Wallet":`Portefeuille actif`,"Add Login Method":`Ajouter une méthode de connexion`,"Add New Wallet":`Ajouter un nouveau portefeuille`,"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`,Apply:`Appliquer`,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 remove this wallet?":`Êtes-vous sûr de vouloir supprimer ce portefeuille ?`,"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:`Sauvegarder`,"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 confirming, the following details attached to your name ({{domain}}) will be updated":`En confirmant, les informations suivantes associées à votre nom ({{domain}}) seront mises à jour`,"By confirming, your address will be set to {{domain}}":`En confirmant, votre adresse sera définie sur {{domain}}`,"By confirming, your current domain will be unset":`En confirmant, votre domaine actuel sera désactivé`,"By continuing, you agree to":`En continuant, vous acceptez`,Cancel:`Annuler`,"Checking...":`Vérification...`,"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 which tokens to use for transaction fees when the app is not covering them.":`Choisissez quels jetons utiliser pour les frais de transaction lorsque l’application ne les prend pas en charge.`,"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.`,"Copied!":`Copié !`,"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`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Faites glisser pour réorganiser. Le système utilisera automatiquement le jeton de priorité la plus élevée avec un solde suffisant.`,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`,"Explore ecosystem":`Explorer l’écosystème`,"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:`Frais`,"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.`,"Fee token":`Jeton de frais`,"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`,"Frequently asked questions":`Foire aux questions`,From:`De`,"Gas Token Preferences":`Préférences de jetons de gaz`,"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`,Hide:`Masquer`,"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 balance":`Solde insuffisant`,"Insufficient balance to claim this domain and cover gas fees.":`Solde insuffisant pour réclamer ce domaine et couvrir les frais de gaz.`,"Insufficient balance to complete this transaction and cover gas fees.":`Solde insuffisant pour finaliser cette transaction et couvrir les frais de gaz.`,"Insufficient balance to complete this transfer and cover gas fees.":`Solde insuffisant pour effectuer ce transfert et couvrir les frais de gaz.`,"Insufficient balance to update your profile and cover gas fees.":`Solde insuffisant pour mettre à jour votre profil et couvrir les frais de gaz.`,"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 quote...":`Chargement du devis...`,"Loading your domains...":`Chargement de vos domaines...`,"Loading...":`Chargement...`,"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 Wallets":`Autres portefeuilles`,"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":`En savoir plus`,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 Wallet":`Supprimer le portefeuille`,"Remove from shortcuts":`Retirer des raccourcis`,"Remove wallet":`Supprimer le portefeuille`,"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 Wallet":`Sélectionner un portefeuille`,"Select currency":`Sélectionner la devise`,"Select language":`Sélectionner la langue`,"Select the token to pay the fee with":`Sélectionnez le jeton pour payer les frais`,"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 Advanced Options":`Afficher les options avancées`,"Show Less":`Voir moins`,"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...`,Switch:`Changer`,"Account Changed":`Compte modifié`,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 Priority Order":`Ordre de priorité des jetons`,"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`,"Use this token for future transactions":`Utiliser ce jeton pour les transactions futures`,"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 don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`Vous n'avez activé aucun jeton de gaz. Veuillez activer au moins un jeton de gaz dans les préférences des jetons de gaz.`,"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.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`Vous devez activer au moins un jeton pour effectuer des transactions. Sans aucun jeton activé, vous ne pourrez pas payer les frais de gaz.`,"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`},H={" 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 that help us enhance your experience.":`<bold>Tu privacidad importa.</bold> Tú tienes el control, acepta para habilitar funciones opcionales como cookies 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 tu perfil. Elige 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 tu cuenta inteligente. Por favor, dirígete a la sección 'Acceso y Seguridad' para actualizarlo.`,"A new version is available for your account":`Una nueva versión está disponible para tu 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 seleccionados`,"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`,"Active Wallet":`Billetera Activa`,"Add Login Method":`Agregar método de inicio de sesión`,"Add New Wallet":`Agregar Nueva Billetera`,"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`,Apply:`Aplicar`,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 remove this wallet?":`¿Estás seguro de que deseas eliminar esta billetera?`,"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ás seguro de que deseas desvincular {{accountType}} como método de inicio de sesión vinculado a {{accountDescription}}?`,"Are you sure you want to unset your current domain?":`¿Estás seguro de que deseas desactivar tu 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:`Respaldo`,"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 confirming, the following details attached to your name ({{domain}}) will be updated":`Al confirmar, se actualizarán los siguientes detalles asociados a tu nombre ({{domain}})`,"By confirming, your address will be set to {{domain}}":`Al confirmar, tu dirección se establecerá como {{domain}}`,"By confirming, your current domain will be unset":`Al confirmar, tu dominio actual será desasignado`,"By continuing, you agree to":`Al continuar, aceptas`,Cancel:`Cancelar`,"Checking...":`Comprobando...`,"Choose Name":`Elegir Nombre`,"Choose a name for your account.":`Elige un nombre para tu 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 which tokens to use for transaction fees when the app is not covering them.":`Elige qué tokens usar para las comisiones de transacción cuando la aplicación no las cubra.`,"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:`Haz clic`,"Click below to access {{ name }} and explore its features.":`Haz 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.":`Confirma la transacción en tu billetera 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.`,"Copied!":`¡Copiado!`,"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`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Arrastra para reordenar. El sistema usará automáticamente el token de mayor prioridad con saldo suficiente.`,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":`Ingresa tu 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`,"Explore ecosystem":`Explorar ecosistema`,"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:`Comisión`,"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.`,"Fee token":`Token de comisió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`,"Frequently asked questions":`Preguntas frecuentes`,From:`De`,"Gas Token Preferences":`Preferencias de tokens de gas`,"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`,Hide:`Ocultar`,"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 balance":`Saldo insuficiente`,"Insufficient balance to claim this domain and cover gas fees.":`Saldo insuficiente para reclamar este dominio y cubrir las tarifas de gas.`,"Insufficient balance to complete this transaction and cover gas fees.":`Saldo insuficiente para completar esta transacción y cubrir las tarifas de gas.`,"Insufficient balance to complete this transfer and cover gas fees.":`Saldo insuficiente para completar esta transferencia y cubrir las tarifas de gas.`,"Insufficient balance to update your profile and cover gas fees.":`Saldo insuficiente para actualizar tu perfil y cubrir las tarifas de gas.`,"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 quote...":`Cargando cotización...`,"Loading your domains...":`Cargando tus dominios...`,"Loading...":`Cargando...`,"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 Wallets":`Otras Billeteras`,"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úrate 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, ingresa un identificador de Twitter válido sin @`,"Please enter a valid contract address":`Por favor, ingresa una dirección de contrato válida`,"Please enter a valid email address":`Por favor, ingresa una dirección de correo electrónico válida`,"Please enter a valid number":`Por favor, ingresa un número válido`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Por favor, tómate 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":`Leer más`,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 Wallet":`Eliminar Billetera`,"Remove from shortcuts":`Eliminar de los accesos directos`,"Remove wallet":`Eliminar billetera`,"Remove your current domain name":`Eliminar tu 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 Wallet":`Seleccionar Billetera`,"Select currency":`Seleccionar moneda`,"Select language":`Seleccionar idioma`,"Select the token to pay the fee with":`Selecciona el token con el que pagar la tarifa`,"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 Advanced Options":`Mostrar opciones avanzadas`,"Show Less":`Mostrar menos`,"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...`,Switch:`Cambiar`,"Account Changed":`Cuenta cambiada`,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 tu 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 tu operación, tu cuenta inteligente debe actualizarse a la última versión (v3).`,"Token Contract Address":`Dirección del contrato del token`,"Token Priority Order":`Orden de prioridad de 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":`Intenta buscar con un término diferente`,Twitter:`Twitter`,"Twitter username":`Nombre de usuario de Twitter`,"Type the receiver address or domain":`Escribe 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`,"Use this token for future transactions":`Usar este token para transacciones futuras`,"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":`Te recomendamos encarecidamente exportar tu clave privada para respaldar tu billetera. Esto asegura que puedas 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 hayas 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}}":`Aceptaste 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 don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`No tienes ningún token de gas habilitado. Por favor, habilita al menos un token de gas en Preferencias de Token de Gas.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Tienes una cuenta inteligente activa asociada a esta billetera. Se ha establecido como tu identidad principal.`,"You may want to try establishing the connection again.":`Es posible que quieras intentar establecer la conexión nuevamente.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`Debes habilitar al menos un token para realizar transacciones. Sin ningún token habilitado, no podrás pagar las tarifas de gas.`,"Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.":`Tu cuenta ha sido actualizada exitosamente a la última versión. Ahora puedes 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.":`Tu dominio ha sido desactivado exitosamente.`,"Your embedded wallet":`Tu billetera integrada`,"Your existing domains":`Tus dominios existentes`,"Your smart account is already upgraded to this version.":`Tu cuenta inteligente ya está actualizada a esta versión.`,"Your smart account needs to be upgraded to the latest version (v3).":`Tu 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:`Coleccionables`,defi:`DeFi`,games:`Juegos`,here:`aquí`,marketplaces:`Mercados`,rate:`tasa`,"to learn more about embedded wallets.":`para saber más sobre carteras integradas.`,unavailable:`no disponible`,utilities:`Utilidades`,vebetter:`VeBetter`,"your@email.com":`tu@email.com`},te={" 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 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:`活跃`,"Active Wallet":`当前钱包`,"Add Login Method":`添加登录方式`,"Add New Wallet":`添加新钱包`,"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:`苹果`,Apply:`应用`,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 remove this wallet?":`您确定要移除此钱包吗?`,"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:`备份`,"Backup your wallet":`备份您的钱包`,"Backup your wallet, configure MFA and set recovery options":`备份您的钱包,配置多因素身份验证并设置恢复选项`,Balance:`余额`,"Benefits of this upgrade:":`此升级的好处:`,Best:`最佳`,"Better transaction handling":`更好的交易处理`,Bridge:`桥接`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`确认后,以下附加到您的名称({{domain}})的信息将被更新`,"By confirming, your address will be set to {{domain}}":`确认后,您的地址将被设置为 {{domain}}`,"By confirming, your current domain will be unset":`确认后,您当前的域名将被取消`,"By continuing, you agree to":`继续即表示您同意`,Cancel:`取消`,"Checking...":`正在检查...`,"Choose Name":`选择姓名`,"Choose a name for your account.":`为您的账户选择一个名称。`,"Choose a unique .vet domain name for your account.":`为您的帐户选择一个独特的 .vet 域名。`,"Choose account name":`选择账户名称`,"Choose name":`选择名称`,"Choose which tokens to use for transaction fees when the app is not covering them.":`请选择在应用未代付手续费时用于交易的币种。`,"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 和追踪技术的使用。`,"Copied!":`已复制!`,"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:`完成`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`拖拽以重新排序。系统会自动优先使用余额充足的优先级最高的币种。`,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":`现有自定义令牌`,"Explore ecosystem":`探索生态系统`,"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:`手续费`,"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来覆盖交易成本。`,"Fee token":`手续费币种`,"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":`找到以下汇率`,"Frequently asked questions":`常见问题`,From:`自`,"Gas Token Preferences":`Gas 代币偏好`,"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:`帮助`,Hide:`隐藏`,"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 balance":`余额不足`,"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 transfer and cover gas fees.":`余额不足,无法完成此转账并支付手续费。`,"Insufficient balance to update your profile and cover gas fees.":`余额不足,无法更新您的资料并支付手续费。`,"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 quote...":`正在加载报价…`,"Loading your domains...":`正在加载您的域名...`,"Loading...":`加载中...`,"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 Wallets":`其他钱包`,"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 Wallet":`移除钱包`,"Remove from shortcuts":`从快捷方式中移除`,"Remove wallet":`移除钱包`,"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 Wallet":`选择钱包`,"Select currency":`选择货币`,"Select language":`选择语言`,"Select the token to pay the fee with":`请选择用于支付手续费的代币`,"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 Advanced Options":`显示高级选项`,"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...":`正在兑换...`,Switch:`切换`,"Account Changed":`账户已更改`,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 Priority Order":`代币优先顺序`,"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进行社交登录`,"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是唯链网络的主要加密货币。它代表了唯链生态系统中的价值和所有权,类似于公司拥有股票。持有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 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 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.":`您必须至少启用一个代币才能进行交易。如未启用任何代币,将无法支付手续费。`,"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`},ne={" 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 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:`アクティブ`,"Active Wallet":`アクティブウォレット`,"Add Login Method":`ログイン方法を追加`,"Add New Wallet":`新しいウォレットを追加`,"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`,Apply:`適用`,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 remove this wallet?":`このウォレットを削除してもよろしいですか?`,"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:`バックアップ`,"Backup your wallet":`ウォレットをバックアップする`,"Backup your wallet, configure MFA and set recovery options":`ウォレットをバックアップし、MFAを設定し、回復オプションを設定してください。`,Balance:`残高`,"Benefits of this upgrade:":`このアップグレードの利点:`,Best:`最適`,"Better transaction handling":`より良いトランザクション処理`,Bridge:`ブリッジ`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`確認することで、あなたの名前({{domain}})に紐づく以下の情報が更新されます`,"By confirming, your address will be set to {{domain}}":`確認することで、あなたのアドレスが{{domain}}に設定されます`,"By confirming, your current domain will be unset":`確認することで、現在のドメイン設定が解除されます`,"By continuing, you agree to":`続行することで、あなたは以下に同意します`,Cancel:`キャンセル`,"Checking...":`確認中...`,"Choose Name":`名前を選択`,"Choose a name for your account.":`アカウントの名前を選んでください。`,"Choose a unique .vet domain name for your account.":`アカウントにユニークな.vetドメイン名を選択してください。`,"Choose account name":`アカウント名を選択`,"Choose name":`名前を選択`,"Choose which tokens to use for transaction fees when the app is not covering them.":`アプリが手数料を負担しない場合に、どのトークンを手数料支払いに使用するか選択してください。`,"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.":`クッキーと追跡技術の使用を説明するクッキーポリシー。`,"Copied!":`コピーしました!`,"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:`完了`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`ドラッグして並び替えてください。残高が十分な場合、システムは自動的に優先順位が最も高いトークンを使用します。`,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":`既存のカスタムトークン`,"Explore ecosystem":`エコシステムを見る`,"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:`手数料`,"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を選択して取引コストをカバーすることができます。`,"Fee token":`手数料トークン`,"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":`次のレートが見つかりました`,"Frequently asked questions":`よくある質問`,From:`送信元`,"Gas Token Preferences":`ガストークンの優先設定`,"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:`ヘルプ`,Hide:`非表示`,"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 balance":`残高不足`,"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 transfer and cover gas fees.":`この送金およびガス代を完了するための残高が不足しています。`,"Insufficient balance to update your profile and cover gas fees.":`プロフィールの更新およびガス代を支払うための残高が不足しています。`,"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 quote...":`見積もりを読み込み中...`,"Loading your domains...":`ドメインを読み込んでいます...`,"Loading...":`読み込み中...`,"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 Wallets":`その他のウォレット`,"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":`続きを読む`,Receive:`受け取る`,"Receive tokens":`トークンを受け取る`,"Reduced gas costs for operations":`オペレーションのガスコストを削減`,"Reject and logout":`拒否してログアウト`,Remove:`削除`,"Remove Login Method":`ログイン方法の削除`,"Remove Wallet":`ウォレットを削除`,"Remove from shortcuts":`ショートカットから削除`,"Remove wallet":`ウォレットを削除`,"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 Wallet":`ウォレットを選択`,"Select currency":`通貨を選択`,"Select language":`言語を選択`,"Select the token to pay the fee with":`手数料を支払うトークンを選択してください`,"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 Advanced Options":`詳細オプションを表示`,"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...":`スワップ中...`,Switch:`切り替え`,"Account Changed":`アカウントが変更されました`,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 Priority Order":`トークン優先順位`,"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でソーシャルログインを使用`,"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は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 don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`ガストークンが有効になっていません。ガストークン設定で少なくとも1つのガストークンを有効にしてください。`,"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 must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`取引を行うには少なくとも1つのトークンを有効にする必要があります。有効なトークンがない場合、ガス代を支払うことができません。`,"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:`コレクション`,defi:`DeFi`,games:`ゲーム`,here:`こちら`,marketplaces:`マーケットプレイス`,rate:`レート`,"to learn more about embedded wallets.":`埋め込みウォレットについて詳しくはこちらをご覧ください。`,unavailable:`利用不可`,utilities:`ユーティリティ`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},re={" and ":` и `,"'{{policyName}}' on connect":`'{{policyName}}' при подключении`,"'{{policyName}}' on {{date}}":`'{{policyName}}' от {{date}}`,"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.":`Smart Account — это кошелёк на основе смарт-контракта с улучшенной безопасностью и функциональностью. Он поддерживает социальное восстановление, группировку транзакций и многое другое.`,'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 (тестовая среда для разработчиков). Сеть, к которой вы подключены, отображается в верхней части этого окна.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Доступно новое обновление для вашего Smart 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.":`Кошелёк — это ваш доступ к блокчейну VeChain. Он хранит ваши приватные ключи и позволяет безопасно управлять цифровыми активами, отправлять и получать токены, а также взаимодействовать с децентрализованными приложениями. Считайте его своим цифровым банковским счётом для блокчейн-транзакций.`,AVAILABLE:`ДОСТУПНО`,Accept:`Принять`,"Accept all":`Принять все`,"Accept selected":`Принять выбранное`,"Access and security":`Доступ и безопасность`,"Account Upgrade Required":`Требуется обновление аккаунта`,"Account already upgraded":`Аккаунт уже обновлён`,"Account upgrade required":`Требуется обновление аккаунта`,Active:`Активный`,"Active Wallet":`Активный кошелёк`,"Add Login Method":`Добавить способ входа`,"Add New Wallet":`Добавить новый кошелёк`,"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.":`Приложение X2Earn в VeBetterDAO — это устойчивое приложение, которое вознаграждает пользователей токенами B3TR за экологичные действия. Эти приложения должны распределять B3TR, привязывать кошельки пользователей и предоставлять доказательства устойчивых действий. Они присоединяются к VeBetterDAO через одобрение и участвуют в еженедельных раундах распределения токенов.`,"An unexpected error occurred.":`Произошла непредвиденная ошибка.`,Apple:`Apple`,Apply:`Применить`,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 remove this wallet?":`Вы уверены, что хотите удалить этот кошелёк?`,"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}}?":`Вы уверены, что хотите отвязать {{accountType}} как способ входа, привязанный к {{accountDescription}}?`,"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. Его максимальное предложение составляет 1 миллиард токенов, выпускаемых еженедельно в течение 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 или другое экосистемное приложение, перейдите на исходный сайт, войдите и найдите раздел «Кошелёк».`,Backup:`Резервная копия`,"Backup your wallet":`Создайте резервную копию кошелька`,"Backup your wallet, configure MFA and set recovery options":`Создайте резервную копию кошелька, настройте MFA и параметры восстановления`,Balance:`Баланс`,"Benefits of this upgrade:":`Преимущества этого обновления:`,Best:`Лучший`,"Better transaction handling":`Улучшенная обработка транзакций`,Bridge:`Мост`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`При подтверждении следующие данные, привязанные к вашему имени ({{domain}}), будут обновлены`,"By confirming, your address will be set to {{domain}}":`При подтверждении ваш адрес будет установлен на {{domain}}`,"By confirming, your current domain will be unset":`При подтверждении ваш текущий домен будет сброшен`,"By continuing, you agree to":`Продолжая, вы соглашаетесь с`,Cancel:`Отмена`,"Checking...":`Проверка...`,"Choose Name":`Выбрать имя`,"Choose a name for your account.":`Выберите имя для вашего аккаунта.`,"Choose a unique .vet domain name for your account.":`Выберите уникальное доменное имя .vet для вашего аккаунта.`,"Choose account name":`Выберите имя аккаунта`,"Choose name":`Выберите имя`,"Choose which tokens to use for transaction fees when the app is not covering them.":`Выберите, какие токены использовать для оплаты комиссий, когда приложение их не покрывает.`,"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 и технологий отслеживания.`,"Copied!":`Скопировано!`,"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:`Discord`,"Display Name":`Отображаемое имя`,"Display name must be less than 25 characters":`Отображаемое имя должно быть менее 25 символов`,"Domain set":`Домен установлен`,"Domain unset":`Домен сброшен`,Done:`Готово`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Перетащите для изменения порядка. Система автоматически использует токен с наивысшим приоритетом и достаточным балансом.`,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":`Существующие пользовательские токены`,"Explore ecosystem":`Обзор экосистемы`,"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:`Комиссия`,"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 из своих активов для покрытия стоимости транзакции.`,"Fee token":`Токен для комиссии`,"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":`Найдены следующие курсы`,"Frequently asked questions":`Часто задаваемые вопросы`,From:`От`,"Gas Token Preferences":`Настройки токена для газа`,"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.":`Отличная новость! Мультиклаузные транзакции теперь полностью поддерживаются для Smart Account. Наслаждайтесь улучшенным пользовательским опытом, сниженными затратами на газ и повышенной безопасностью.`,Google:`Google`,Help:`Помощь`,Hide:`Скрыть`,"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 balance":`Недостаточный баланс`,"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 transfer and cover gas fees.":`Недостаточный баланс для завершения этого перевода и покрытия комиссий за газ.`,"Insufficient balance to update your profile and cover gas fees.":`Недостаточный баланс для обновления профиля и покрытия комиссий за газ.`,"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 quote...":`Загрузка котировки...`,"Loading your domains...":`Загрузка ваших доменов...`,"Loading...":`Загрузка...`,"Log in or sign up":`Войти или зарегистрироваться`,"Logged in with":`Вход выполнен через`,Login:`Вход`,"Login failed:":`Ошибка входа:`,"Login methods":`Способы входа`,"Login methods and Passkeys":`Способы входа и 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.":`Управляйте настройками безопасности встроенного кошелька: настройте способы входа, добавьте passkey или создайте резервную копию, чтобы никогда не потерять доступ к активам.`,"Manage your login methods and passkeys":`Управление способами входа и 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 Wallets":`Другие кошельки`,"Other options":`Другие варианты`,Passkey:`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...":`Завершите аутентификацию по passkey...`,"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":`Подробнее`,Receive:`Получить`,"Receive tokens":`Получить токены`,"Reduced gas costs for operations":`Сниженные затраты на газ для операций`,"Reject and logout":`Отклонить и выйти`,Remove:`Удалить`,"Remove Login Method":`Удалить способ входа`,"Remove Wallet":`Удалить кошелёк`,"Remove from shortcuts":`Удалить из избранного`,"Remove wallet":`Удалить кошелёк`,"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 Wallet":`Выберите кошелёк`,"Select currency":`Выберите валюту`,"Select language":`Выберите язык`,"Select the token to pay the fee with":`Выберите токен для оплаты комиссии`,"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":`Настроить Passkey`,"Set up a passkey for easier access":`Настройте passkey для удобного доступа`,Settings:`Настройки`,"Share on":`Поделиться в`,Shortcuts:`Избранное`,"Show Advanced Options":`Показать расширенные параметры`,"Show Less":`Показать меньше`,"Show More":`Показать больше`,"Slippage tolerance":`Допустимое проскальзывание`,"Smart Account":`Smart Account`,"Smart Account detected":`Обнаружен Smart Account`,"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...":`Обмен...`,Switch:`Переключить`,"Account Changed":`Аккаунт изменён`,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.":`Этот кошелёк является владельцем вашего Smart Account, который используется как ваша личность и шлюз для взаимодействия с блокчейном.`,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 и завершить операцию, необходимо обновить ваш Smart Account до последней версии (v3).`,"Token Contract Address":`Адрес контракта токена`,"Token Priority Order":`Порядок приоритета токенов`,"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":`Обновить Smart Account до V3`,"Upgrade Successful!":`Обновление успешно!`,"Upgrade account":`Обновить аккаунт`,"Upgrading...":`Обновление...`,"Use social login with VeChain":`Войти через социальные сети с VeChain`,"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 — основная криптовалюта сети 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, создавая двухтокенную систему, которая помогает поддерживать стабильность сети и управлять стоимостью транзакций.`,"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, ориентированная на устойчивое развитие. Участники управляют DAO, используя токены B3TR для вознаграждений и VOT3 для голосования по предложениям и еженедельным раундам распределения токенов.`,"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 со штаб-квартирой в Сан-Марино, Европа, — это передовая блокчейн-экосистема и создатель VeChainThor, первоклассной платформы смарт-контрактов, стимулирующей реальное внедрение блокчейна. Основанная в 2015 году Санни Лу, VeChain неизменно работает над созданием прозрачного, эффективного, масштабируемого и адаптируемого блокчейн-решения.`,"VeWorld Wallet":`Кошелёк VeWorld`,"Vechain Kit Policy":`Политика Vechain Kit`,"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?":`Что такое 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 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.":`У вас есть активный Smart Account, связанный с этим кошельком. Он установлен как ваша основная личность.`,"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.":`Необходимо включить хотя бы один токен для выполнения транзакций. Без включённых токенов вы не сможете оплачивать комиссии за газ.`,"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.":`Ваш Smart Account уже обновлён до этой версии.`,"Your smart account needs to be upgraded to the latest version (v3).":`Ваш Smart Account необходимо обновить до последней версии (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:`Коллекции`,defi:`DeFi`,games:`Игры`,here:`здесь`,marketplaces:`Маркетплейсы`,rate:`курс`,"to learn more about embedded wallets.":`чтобы узнать больше о встроенных кошельках.`,unavailable:`недоступно`,utilities:`Утилиты`,vebetter:`VeBetter`,"your@email.com":`your@email.com`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>Ваша конфиденциальность важна.</bold> Вы контролируете ситуацию, примите, чтобы включить дополнительные функции, такие как файлы cookie, которые помогают улучшить ваш опыт.`},U={" and ":` și `,"'{{policyName}}' on connect":`'{{policyName}}' la conectare`,"'{{policyName}}' on {{date}}":`'{{policyName}}' pe {{date}}`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Este necesar un domeniu .vet pentru a-ți personaliza profilul. Alege un nume de cont pentru a începe.`,"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 este un portofel bazat pe contract inteligent care oferă securitate și funcționalitate îmbunătățite. Permite funcții precum recuperarea socială, gruparea tranzacțiilor și multe altele.`,'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 nume de domeniu este un fel de pseudonim pentru adresa portofelului tău. Îți permite să îți identifici ușor portofelul și să interacționezi cu dApps folosind un nume ușor de citit. De exemplu, dacă adresa portofelului tău este 0x1234567890, pseudonimul tău ar putea fi "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.":`O rețea în blockchain se referă la mediul în care au loc tranzacțiile. VeChain are două rețele principale: Mainnet (rețeaua activă unde au loc tranzacții reale) și Testnet (un mediu de testare pentru dezvoltatori). Rețeaua la care ești conectat este afișată în partea de sus a acestui dialog.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`O nouă actualizare este disponibilă pentru Smart Account-ul tău. Te rugăm să mergi la secțiunea 'Acces și securitate' pentru a-l actualiza.`,"A new version is available for your account":`O nouă versiune este disponibilă pentru contul tău`,"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 portofel este poarta ta de acces la blockchain-ul VeChain. Stochează cheile tale private și îți permite să gestionezi în siguranță activele digitale, să trimiți și să primești tokenuri și să interacționezi cu aplicații descentralizate. Gândește-te la el ca la un cont bancar digital pentru tranzacții blockchain.`,AVAILABLE:`DISPONIBIL`,Accept:`Acceptă`,"Accept all":`Acceptă tot`,"Accept selected":`Acceptă selecția`,"Access and security":`Acces și securitate`,"Account Upgrade Required":`Actualizare cont necesară`,"Account already upgraded":`Contul este deja actualizat`,"Account upgrade required":`Actualizare cont necesară`,Active:`Activ`,"Active Wallet":`Portofel activ`,"Add Login Method":`Adaugă metodă de autentificare`,"Add New Wallet":`Adaugă portofel nou`,"Add Token":`Adaugă token`,"Add to shortcuts":`Adaugă la favorite`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Adăugarea mai multor conturi asociate crește securitatea împotriva pierderii accesului, dar introduce și vectori de atac suplimentari. Pentru securitate sporită, recomandăm activarea MFA.`,"Address is required":`Adresa este obligatorie`,All:`Toate`,"All apps":`Toate aplicațiile`,"All policies you have accepted":`Toate politicile pe care le-ai acceptat`,"All tokens":`Toate tokenurile`,"Already have an x2earn app wallet?":`Ai deja un portofel de aplicație x2earn?`,Amount:`Sumă`,"Amount is required":`Suma este obligatorie`,"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.":`O aplicație X2Earn în VeBetterDAO este o aplicație sustenabilă care recompensează utilizatorii cu tokenuri B3TR pentru acțiuni ecologice. Aceste aplicații trebuie să distribuie B3TR, să asocieze portofelele utilizatorilor și să furnizeze dovezi ale acțiunilor sustenabile. Se alătură VeBetterDAO prin susținere și participă la rundele săptămânale de alocare a tokenurilor.`,"An unexpected error occurred.":`A apărut o eroare neașteptată.`,Apple:`Apple`,Apply:`Aplică`,Archived:`Arhivate`,"Archived Notifications":`Notificări arhivate`,"Are you sure you want to disconnect your wallet?":`Ești sigur că vrei să deconectezi portofelul?`,"Are you sure you want to reject the policies and disconnect?":`Ești sigur că vrei să respingi politicile și să te deconectezi?`,"Are you sure you want to remove this wallet?":`Ești sigur că vrei să elimini acest portofel?`,"Are you sure you want to set your domain name to":`Ești sigur că vrei să setezi numele de domeniu la`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`Ești sigur că vrei să dezasociezi {{accountType}} ca metodă de autentificare asociată cu {{accountDescription}}?`,"Are you sure you want to unset your current domain?":`Ești sigur că vrei să resetezi domeniul curent?`,Assets:`Active`,At:`La`,"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 este tokenul de stimulare al VeBetterDAO, construit pe blockchain-ul VechainThor. Are o ofertă maximă de 1 miliard de tokenuri, emise săptămânal pe parcursul a 12 ani. B3TR este folosit pentru recompense, guvernanță și susținerea tokenurilor VOT3 în raport 1:1. Suportă aplicații de sustenabilitate și gestionarea trezoreriei 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.":`Crearea unei copii de rezervă a portofelului este esențială, deoarece doar tu ai acces la cheile tale private. Dacă ceva nu merge bine, cheia privată este singura modalitate de a-ți recupera activele. Modul de backup depinde de cum accesezi portofelul: dacă folosești VeWorld, opțiunea de backup este disponibilă în aplicație. Pentru utilizatorii cu autentificare socială, opțiunile de backup se găsesc în secțiunea Portofel. Dacă ești conectat printr-o aplicație VeChain sau din ecosistem, trebuie să vizitezi site-ul original, să te autentifici și să accesezi secțiunea Portofel de acolo.`,Backup:`Copie de rezervă`,"Backup your wallet":`Creează o copie de rezervă a portofelului`,"Backup your wallet, configure MFA and set recovery options":`Creează o copie de rezervă, configurează MFA și setează opțiunile de recuperare`,Balance:`Sold`,"Benefits of this upgrade:":`Beneficiile acestei actualizări:`,Best:`Cel mai bun`,"Better transaction handling":`Procesare îmbunătățită a tranzacțiilor`,Bridge:`Punte`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`Prin confirmare, următoarele detalii atașate numelui tău ({{domain}}) vor fi actualizate`,"By confirming, your address will be set to {{domain}}":`Prin confirmare, adresa ta va fi setată la {{domain}}`,"By confirming, your current domain will be unset":`Prin confirmare, domeniul tău curent va fi resetat`,"By continuing, you agree to":`Continuând, ești de acord cu`,Cancel:`Anulează`,"Checking...":`Verificare...`,"Choose Name":`Alege numele`,"Choose a name for your account.":`Alege un nume pentru contul tău.`,"Choose a unique .vet domain name for your account.":`Alege un nume de domeniu .vet unic pentru contul tău.`,"Choose account name":`Alege numele contului`,"Choose name":`Alege numele`,"Choose which tokens to use for transaction fees when the app is not covering them.":`Alege ce tokenuri să folosești pentru comisioanele de tranzacție când aplicația nu le acoperă.`,"Choose your account name":`Alege numele contului tău`,"Claim your vet domain!":`Revendică-ți domeniul vet!`,"Claiming name...":`Revendicare nume...`,"Clear all":`Șterge tot`,"Cleared notifications will appear here":`Notificările șterse vor apărea aici`,Click:`Apasă`,"Click below to access {{ name }} and explore its features.":`Apasă mai jos pentru a accesa {{ name }} și a explora funcționalitățile sale.`,Close:`Închide`,"Close and do this later":`Închide și fă asta mai târziu`,"Close announcement":`Închide anunțul`,"Coming Soon!":`În curând!`,"Coming soon":`În curând`,Confirm:`Confirmă`,"Confirm Changes":`Confirmă modificările`,"Confirm Name":`Confirmă numele`,"Confirm Unset Domain":`Confirmă resetarea domeniului`,"Confirm the transaction in your wallet to complete it.":`Confirmă tranzacția în portofel pentru a o finaliza.`,"Confirm transaction":`Confirmă tranzacția`,"Connect an external wallet for easier access":`Conectează un portofel extern pentru acces mai ușor`,"Connect wallet":`Conectează portofelul`,"Connect with VeWorld wallet":`Conectează-te cu portofelul VeWorld`,"Connect your Apple account for easier access":`Conectează-ți contul Apple pentru acces mai ușor`,"Connect your Discord account for easier access":`Conectează-ți contul Discord pentru acces mai ușor`,"Connect your Farcaster account for easier access":`Conectează-ți contul Farcaster pentru acces mai ușor`,"Connect your Github account for easier access":`Conectează-ți contul Github pentru acces mai ușor`,"Connect your Google account for easier access":`Conectează-ți contul Google pentru acces mai ușor`,"Connect your Instagram account for easier access":`Conectează-ți contul Instagram pentru acces mai ușor`,"Connect your LinkedIn account for easier access":`Conectează-ți contul LinkedIn pentru acces mai ușor`,"Connect your Spotify account for easier access":`Conectează-ți contul Spotify pentru acces mai ușor`,"Connect your Telegram account for easier access":`Conectează-ți contul Telegram pentru acces mai ușor`,"Connect your Tiktok account for easier access":`Conectează-ți contul Tiktok pentru acces mai ușor`,"Connect your Twitter account for easier access":`Conectează-ți contul Twitter pentru acces mai ușor`,"Connect your email for easier access":`Conectează-ți emailul pentru acces mai ușor`,"Connect your phone number for easier access":`Conectează-ți numărul de telefon pentru acces mai ușor`,"Connecting to VeChain":`Conectare la VeChain`,"Connecting with":`Conectare cu`,"Connecting with Passkey":`Conectare cu Passkey`,"Connecting...":`Conectare...`,"Connection Details":`Detalii conexiune`,"Connection Failed":`Conexiune eșuată`,"Connection Type":`Tip conexiune`,"Connection details":`Detalii conexiune`,Continue:`Continuă`,"Continue with Github":`Continuă cu Github`,"Continue with Google":`Continuă cu Google`,"Cookie Policy":`Politica de cookie-uri`,"Cookie policy outlining the use of cookies and tracking technologies.":`Politica de cookie-uri care descrie utilizarea cookie-urilor și a tehnologiilor de urmărire.`,"Copied!":`Copiat!`,"Copy your address or scan this QR code":`Copiază adresa sau scanează acest cod QR`,Currency:`Monedă`,Current:`Curent`,"Current domain":`Domeniu curent`,Customization:`Personalizare`,Customize:`Personalizează`,"Customize profile":`Personalizează profilul`,"Customize the appearance of your wallet.":`Personalizează aspectul portofelului tău.`,Description:`Descriere`,"Description must be less than 100 characters":`Descrierea trebuie să aibă mai puțin de 100 de caractere`,"Didn't get an email?":`Nu ai primit emailul?`,Discord:`Discord`,"Display Name":`Nume afișat`,"Display name must be less than 25 characters":`Numele afișat trebuie să aibă mai puțin de 25 de caractere`,"Domain set":`Domeniu setat`,"Domain unset":`Domeniu resetat`,Done:`Gata`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Trage pentru a reordona. Sistemul va folosi automat tokenul cu cea mai mare prioritate care are sold suficient.`,Ecosystem:`Ecosistem`,"Eg: DevRel @ ENS Labs":`Ex: DevRel @ ENS Labs`,Email:`Email`,"Email address":`Adresă de email`,"Embedded wallet":`Portofel integrat`,"Enhanced compatibility with dApps":`Compatibilitate îmbunătățită cu dApps`,"Enter confirmation code":`Introdu codul de confirmare`,"Enter your display name":`Introdu numele afișat`,"Enter your name":`Introdu numele tău`,"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.":`Schimbă-ți activele digitale între VeChain și alte rețele blockchain ușor și în siguranță. Schimburile sunt realizate prin parteneri care folosesc atât burse descentralizate, cât și centralizate pentru a converti tokenuri.`,"Existing Custom Tokens":`Tokenuri personalizate existente`,"Explore ecosystem":`Explorează ecosistemul`,"Failed to connect with Passkey":`Conectarea cu Passkey a eșuat`,"Failed to connect with VeChain":`Conectarea la VeChain a eșuat`,"Failed to connect with ecosystem app":`Conectarea la aplicația din ecosistem a eșuat`,"Failed to load App Hub apps":`Încărcarea aplicațiilor App Hub a eșuat`,Farcaster:`Farcaster`,Fee:`Comision`,"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.":`Delegarea comisioanelor este o funcție unică a VeChain care permite altcuiva (un delegator) să plătească comisioanele tale de tranzacție. Deși multe dApps și furnizori de servicii acționează ca delegatori pentru a facilita începutul noilor utilizatori, unele tranzacții pot necesita totuși plata comisioanelor cu propriul VTHO. Comisioanele sunt necesare pentru a preveni spam-ul în rețea și pentru a compensa nodurile care procesează și validează tranzacțiile pe blockchain. Când plătești singur comisioanele, vei putea selecta VTHO din activele tale pentru a acoperi costul tranzacției.`,"Fee token":`Token pentru comision`,"Filter by category":`Filtrează după categorie`,"Finally say goodbye to 0x addresses":`Spune în sfârșit adio adreselor 0x`,"For developers":`Pentru dezvoltatori`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Din motive de securitate, poți gestiona setările portofelului integrat doar pe platforma {{appName}}.`,"Found following rates":`S-au găsit următoarele cursuri`,"Frequently asked questions":`Întrebări frecvente`,From:`De la`,"Gas Token Preferences":`Preferințe token de gas`,"Gas fee":`Comision 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.":`Vești bune! Tranzacțiile multiclauză sunt acum complet suportate pentru conturile inteligente. Acum te poți bucura de o experiență mai bună, costuri de gas mai mici și securitate sporită.`,Google:`Google`,Help:`Ajutor`,Hide:`Ascunde`,"How do I backup my wallet?":`Cum fac o copie de rezervă a portofelului?`,"How do I send tokens?":`Cum trimit tokenuri?`,"How is my wallet secured?":`Cum este securizat portofelul meu?`,"I have read and agree to ":`Am citit și sunt de acord cu `,"Ignore and continue":`Ignoră și continuă`,"Improved security features":`Funcții de securitate îmbunătățite`,Instagram:`Instagram`,"Insufficient balance":`Sold insuficient`,"Insufficient balance to claim this domain and cover gas fees.":`Sold insuficient pentru a revendica acest domeniu și a acoperi comisioanele de gas.`,"Insufficient balance to complete this transaction and cover gas fees.":`Sold insuficient pentru a finaliza această tranzacție și a acoperi comisioanele de gas.`,"Insufficient balance to complete this transfer and cover gas fees.":`Sold insuficient pentru a finaliza acest transfer și a acoperi comisioanele de gas.`,"Insufficient balance to update your profile and cover gas fees.":`Sold insuficient pentru a actualiza profilul și a acoperi comisioanele de gas.`,"Insufficient {{symbol}} balance":`Sold {{symbol}} insuficient`,"Invalid address or domain":`Adresă sau domeniu invalid`,"Invalid contract address":`Adresă de contract invalidă`,"Invalid token address":`Adresă de token invalidă`,Language:`Limbă`,"Launch vechain.energy":`Lansează vechain.energy`,"Launch {{name}}":`Lansează {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Acord legal între tine, Vechain Kit și aplicația curentă, care stabilește regulile de utilizare a serviciilor de portofel.`,"Link Apple Account":`Asociază contul Apple`,"Link Discord Account":`Asociază contul Discord`,"Link Email Account":`Asociază contul de email`,"Link External Wallet":`Asociază portofel extern`,"Link Farcaster Account":`Asociază contul Farcaster`,"Link Github Account":`Asociază contul Github`,"Link Google Account":`Asociază contul Google`,"Link Instagram Account":`Asociază contul Instagram`,"Link LinkedIn Account":`Asociază contul LinkedIn`,"Link Phone Number":`Asociază numărul de telefon`,"Link Spotify Account":`Asociază contul Spotify`,"Link Telegram Account":`Asociază contul Telegram`,"Link Tiktok Account":`Asociază contul Tiktok`,"Link Twitter Account":`Asociază contul Twitter`,LinkedIn:`LinkedIn`,"Loading quote...":`Încărcare cotație...`,"Loading your domains...":`Încărcare domenii...`,"Loading...":`Încărcare...`,"Log in or sign up":`Autentifică-te sau înregistrează-te`,"Logged in with":`Autentificat cu`,Login:`Autentificare`,"Login failed:":`Autentificare eșuată:`,"Login methods":`Metode de autentificare`,"Login methods and Passkeys":`Metode de autentificare și Passkeys`,Logout:`Deconectare`,"Manage Custom Tokens":`Gestionează tokenuri personalizate`,"Manage MFA":`Gestionează MFA`,"Manage Recovery":`Gestionează recuperarea`,"Manage on {{appName}}":`Gestionează pe {{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.":`Gestionează setările de securitate ale portofelului integrat: configurează metodele de autentificare, adaugă un passkey sau creează o copie de rezervă pentru a nu pierde niciodată accesul la active.`,"Manage your login methods and passkeys":`Gestionează metodele de autentificare și passkeys`,"Manage your preferences for currency, language, and appearance.":`Gestionează preferințele de monedă, limbă și aspect.`,"Minimum {{symbol}} transfer is {{min}}":`Transferul minim de {{symbol}} este {{min}}`,More:`Mai mult`,"Multiclause Transactions Are Now Supported":`Tranzacțiile multiclauză sunt acum suportate`,"Name must be at least 3 characters long":`Numele trebuie să aibă cel puțin 3 caractere`,"Name your account to make it easier to exchange assets":`Denumește-ți contul pentru a facilita schimbul de active`,Network:`Rețea`,New:`Nou`,"New image selected":`Imagine nouă selectată`,"No additional accounts available to link":`Nu sunt disponibile conturi suplimentare pentru asociere`,"No application from VeChain ecosystem is available to login.":`Nu este disponibilă nicio aplicație din ecosistemul VeChain pentru autentificare.`,"No apps found in this category":`Nu s-au găsit aplicații în această categorie`,"No archived notifications":`Nu există notificări arhivate`,"No assets":`Fără active`,"No notifications":`Fără notificări`,"No policies accepted":`Nicio politică acceptată`,"No questions found":`Nu s-au găsit întrebări`,"No quotes available":`Nu sunt disponibile cotații`,"No tokens found":`Nu s-au găsit tokenuri`,"Node URL":`URL nod`,Notifications:`Notificări`,"Only letters, numbers, and hyphens are allowed":`Sunt permise doar litere, cifre și cratime`,Optional:`Opțional`,"Other Wallets":`Alte portofele`,"Other options":`Alte opțiuni`,Passkey:`Passkey`,"Phone Number":`Număr de telefon`,"Please approve the request in the connection request window...":`Te rugăm să aprobi cererea în fereastra de conectare...`,"Please be sure to keep this wallet safe and backed up.":`Asigură-te că portofelul este în siguranță și are o copie de rezervă.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Verifică {{email}} pentru un email de la privy.io și introdu codul mai jos.`,"Please complete the passkey authentication...":`Te rugăm să finalizezi autentificarea prin passkey...`,"Please confirm the transaction in your wallet.":`Te rugăm să confirmi tranzacția în portofel.`,"Please enter a valid Twitter handle without @":`Te rugăm să introduci un nume Twitter valid fără @`,"Please enter a valid contract address":`Te rugăm să introduci o adresă de contract validă`,"Please enter a valid email address":`Te rugăm să introduci o adresă de email validă`,"Please enter a valid number":`Te rugăm să introduci un număr valid`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Te rugăm să îți iei un moment pentru a revizui toate politicile, acceptarea lor fiind obligatorie pentru a continua.`,Policy:`Politică`,"Preparing changes...":`Pregătire modificări...`,"Privacy Policy":`Politica de confidențialitate`,"Privacy policy outlining the data collection and processing practices.":`Politica de confidențialitate care descrie practicile de colectare și procesare a datelor.`,"Privy Status":`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 construiește infrastructură de onboarding și portofele integrate pentru a permite produse mai bune construite pe tehnologie cripto. Aceasta înseamnă integrarea controlului activelor în aplicațiile în sine, permițând utilizatorilor, afacerilor sau mașinilor să folosească active digitale prin experiențe de produs fără întreruperi.`,"Processing transaction...":`Procesare tranzacție...`,Profile:`Profil`,"Profile Image":`Imagine profil`,"Profile Picture":`Poză de profil`,"Profile Updated":`Profil actualizat`,"Read More":`Citește mai mult`,Receive:`Primește`,"Receive tokens":`Primește tokenuri`,"Reduced gas costs for operations":`Costuri de gas reduse pentru operațiuni`,"Reject and logout":`Respinge și deconectează-te`,Remove:`Elimină`,"Remove Login Method":`Elimină metoda de autentificare`,"Remove Wallet":`Elimină portofelul`,"Remove from shortcuts":`Elimină din favorite`,"Remove wallet":`Elimină portofelul`,"Remove your current domain name":`Elimină numele de domeniu curent`,"Resend code":`Retrimite codul`,Retry:`Reîncearcă`,"Save Changes":`Salvează modificările`,"Saving changes...":`Salvare modificări...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Spune adio adreselor 0x, revendică-ți subdomeniul .veworld.vet gratuit acum!`,"Search Apps":`Caută aplicații`,"Search FAQ":`Caută în FAQ`,"Security preferences":`Preferințe de securitate`,"Security settings":`Setări de securitate`,"Select Additional Login Method":`Selectează metodă suplimentară de autentificare`,"Select Token":`Selectează token`,"Select Wallet":`Selectează portofel`,"Select currency":`Selectează moneda`,"Select language":`Selectează limba`,"Select the token to pay the fee with":`Selectează tokenul pentru plata comisionului`,"Select token":`Selectează token`,Send:`Trimite`,"Send all":`Trimite tot`,"Sending Transaction...":`Trimitere tranzacție...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Trimiterea către OceanX sau alte burse poate duce la pierderea fondurilor.`,"Sending...":`Trimitere...`,"Set a domain first":`Setează mai întâi un domeniu`,"Set up Passkey":`Configurează Passkey`,"Set up a passkey for easier access":`Configurează un passkey pentru acces mai ușor`,Settings:`Setări`,"Share on":`Distribuie pe`,Shortcuts:`Favorite`,"Show Advanced Options":`Afișează opțiuni avansate`,"Show Less":`Afișează mai puțin`,"Show More":`Afișează mai mult`,"Slippage tolerance":`Toleranță la derapaj`,"Smart Account":`Smart Account`,"Smart Account detected":`Smart Account detectat`,"Something went wrong":`Ceva nu a funcționat`,"Something went wrong. Please try again.":`Ceva nu a funcționat. Te rugăm să încerci din nou.`,Source:`Sursă`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Rămâi la curent cu viitoarea funcție de Activitate`,"Stay tuned for our upcoming NFT feature":`Rămâi la curent cu viitoarea funcție NFT`,Submit:`Trimite`,Swap:`Schimb`,"Swap all":`Schimbă tot`,"Swapping...":`Schimbare...`,Switch:`Comută`,"Account Changed":`Cont schimbat`,Telegram:`Telegram`,"Terms and Conditions":`Termeni și condiții`,"Terms and Policies":`Termeni și politici`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Aceste conturi sunt asociate portofelului tău integrat și pot fi folosite pentru a te autentifica și a accesa cheia privată.`,"This address only supports VeChain assets.":`Această adresă suportă doar active VeChain.`,"This domain is already taken":`Acest domeniu este deja ocupat`,"This domain is protected":`Acest domeniu este protejat`,"This is taking longer than expected.":`Acest lucru durează mai mult decât era de așteptat.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Acesta este portofelul tău principal, creat de {{element}} și securizat de Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Acest portofel este proprietarul Smart Account-ului tău, care este folosit ca identitate și ca poartă de acces pentru interacțiunile tale blockchain.`,Tiktok:`Tiktok`,To:`Către`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Pentru a continua să interacționezi cu blockchain-ul VeChain și a finaliza operațiunea, Smart Account-ul tău trebuie actualizat la ultima versiune (v3).`,"Token Contract Address":`Adresa contractului de token`,"Token Priority Order":`Ordinea de prioritate a tokenurilor`,"Token already added":`Token deja adăugat`,Tools:`Instrumente`,"Transaction failed":`Tranzacție eșuată`,"Transaction failed:":`Tranzacție eșuată:`,"Transaction is being processed, it can take up to 15 seconds.":`Tranzacția este în curs de procesare, poate dura până la 15 secunde.`,"Transaction successful":`Tranzacție reușită`,"Transaction successful!":`Tranzacție reușită!`,"Try again":`Încearcă din nou`,"Try searching with a different term":`Încearcă să cauți cu un alt termen`,Twitter:`Twitter`,"Twitter username":`Nume de utilizator Twitter`,"Type the receiver address or domain":`Introdu adresa destinatarului sau domeniul`,UNAVAILABLE:`INDISPONIBIL`,"Unable to fetch the price":`Nu s-a putut obține prețul`,"Unset current domain":`Resetează domeniul curent`,"Unsetting current domain...":`Resetare domeniu curent...`,"Upgrade Smart Account to V3":`Actualizează Smart Account la V3`,"Upgrade Successful!":`Actualizare reușită!`,"Upgrade account":`Actualizează contul`,"Upgrading...":`Actualizare...`,"Use social login with VeChain":`Autentifică-te social cu VeChain`,"Use this token for future transactions":`Folosește acest token pentru tranzacții viitoare`,"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 este criptomoneda principală a rețelei VeChain. Reprezintă valoare și proprietate în ecosistemul VeChain, similar modului în care acțiunile reprezintă proprietatea într-o companie. Deținerea de VET generează automat VTHO, necesar pentru plata tranzacțiilor în rețea.`,"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) este tokenul de energie sau 'gas' al rețelei VeChain. Este folosit pentru plata comisioanelor de tranzacție la interacțiunea cu blockchain-ul. VTHO este generat automat prin deținerea de tokenuri VET, creând un sistem cu două tokenuri care ajută la menținerea stabilității rețelei și gestionarea costurilor tranzacțiilor.`,"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 este o organizație descentralizată pe blockchain-ul VeChain axată pe sustenabilitate. Membrii participă la guvernanța DAO folosind tokenuri B3TR pentru recompense și VOT3 pentru votarea propunerilor și rundele săptămânale de alocare a tokenurilor.`,"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, cu sediul în San Marino, Europa, este un ecosistem blockchain inovator și creatorul VeChainThor, o platformă de contracte inteligente de clasă mondială care stimulează adoptarea blockchain-ului în lumea reală. Fondată în 2015 de Sunny Lu, VeChain a lucrat constant pentru a oferi o soluție blockchain transparentă, eficientă, scalabilă și adaptabilă.`,"VeWorld Wallet":`Portofel VeWorld`,"Vechain Kit Policy":`Politica Vechain Kit`,"View Current Policy":`Vezi politica curentă`,"View on explorer":`Vezi în explorer`,"View transaction on the explorer":`Vezi tranzacția în explorer`,"Waiting for confirmation":`Așteptare confirmare`,"Waiting for confirmation...":`Așteptare confirmare...`,"Waiting wallet confirmation...":`Așteptare confirmare portofel...`,Wallet:`Portofel`,"Wallet secured by":`Portofel securizat de`,"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":`Recomandăm cu tărie exportarea cheii private pentru a crea o copie de rezervă a portofelului. Aceasta asigură posibilitatea de restaurare sau transfer în auto-custodie folosind`,Website:`Website`,"Website URL":`URL website`,"Website URL must start with https://":`URL-ul website-ului trebuie să înceapă cu https://`,"What is B3TR?":`Ce este B3TR?`,"What is Privy?":`Ce este Privy?`,"What is VET?":`Ce este VET?`,"What is VTHO?":`Ce este VTHO?`,"What is VeBetterDAO?":`Ce este VeBetterDAO?`,"What is VeChain?":`Ce este VeChain?`,"What is a Smart Account?":`Ce este un Smart Account?`,"What is a domain name?":`Ce este un nume de domeniu?`,"What is a network?":`Ce este o rețea?`,"What is a wallet?":`Ce este un portofel?`,"What is an x2earn application?":`Ce este o aplicație x2earn?`,"What is fee delegation?":`Ce este delegarea comisioanelor?`,"When you have accepted a policy, it will appear here":`Când ai acceptat o politică, aceasta va apărea aici`,"When you have notifications, they will appear here":`Când ai notificări, acestea vor apărea aici`,"YOU OWN THIS":`DEȚII ACEST LUCRU`,"You accepted current policy on {{date}}":`Ai acceptat politica curentă pe {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Folosești un portofel integrat securizat prin metoda ta de autentificare socială, asigurând o experiență VeChain fără întreruperi.`,"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.":`Poți trimite tokenuri apăsând pe iconița de trimitere din secțiunea Acțiuni rapide. Introdu adresa destinatarului sau numele de domeniu VeChain, selectează tokenul și specifică suma pe care vrei să o trimiți.`,"You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`Nu ai niciun token de gas activat. Te rugăm să activezi cel puțin un token de gas în Preferințe token de gas.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Ai un Smart Account activ asociat acestui portofel. A fost setat ca identitatea ta principală.`,"You may want to try establishing the connection again.":`Poți încerca să stabilești conexiunea din nou.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`Trebuie să activezi cel puțin un token pentru a efectua tranzacții. Fără tokenuri activate, nu vei putea plăti comisioanele de gas.`,"Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.":`Contul tău a fost actualizat cu succes la ultima versiune. Acum te poți bucura de o experiență mai bună, costuri de gas mai mici și securitate sporită.`,"Your address has been successfully set to {{name}}":`Adresa ta a fost setată cu succes la {{name}}`,"Your changes have been saved successfully.":`Modificările tale au fost salvate cu succes.`,"Your domain has been unset successfully.":`Domeniul tău a fost resetat cu succes.`,"Your embedded wallet":`Portofelul tău integrat`,"Your existing domains":`Domeniile tale existente`,"Your smart account is already upgraded to this version.":`Smart Account-ul tău este deja actualizat la această versiune.`,"Your smart account needs to be upgraded to the latest version (v3).":`Smart Account-ul tău trebuie actualizat la ultima versiune (v3).`,"Your tokens":`Tokenurile tale`,"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.":`Securitatea portofelului tău depinde de modul în care îl accesezi. Cu opțiuni de auto-custodie precum extensia VeWorld, aplicația mobilă sau portofelul hardware, ai control complet asupra cheilor tale private. Această extensie nu are acces la cheile tale private. La autentificarea cu conturi sociale sau VeChain, portofelul tău este creat și securizat de Privy și gestionat de VeChain, oferind o experiență de onboarding mai ușoară, menținând în același timp securitatea.`,collectibles:`Colecții`,defi:`DeFi`,games:`Jocuri`,here:`aici`,marketplaces:`Piețe`,rate:`curs`,"to learn more about embedded wallets.":`pentru a afla mai multe despre portofelele integrate.`,unavailable:`indisponibil`,utilities:`Utilități`,vebetter:`VeBetter`,"your@email.com":`your@email.com`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>Confidențialitatea ta contează.</bold> Tu ai controlul, acceptă pentru a activa funcții opționale precum cookie-urile care ne ajută să îți îmbunătățim experiența.`},ie={" and ":` 和 `,"'{{policyName}}' on connect":`連接時接受「{{policyName}}」`,"'{{policyName}}' on {{date}}":`於 {{date}} 接受「{{policyName}}」`,"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".':`網域名稱是您錢包地址的暱稱。讓您輕鬆識別錢包並以易讀名稱與 dApp 互動。例如,若您的錢包地址為 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:`使用中`,"Active Wallet":`使用中錢包`,"Add Login Method":`新增登入方式`,"Add New Wallet":`新增錢包`,"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`,Apply:`套用`,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 remove this wallet?":`您確定要移除此錢包嗎?`,"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}}?":`您確定要取消將 {{accountType}} 連結為 {{accountDescription}} 的登入方式嗎?`,"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:`備份`,"Backup your wallet":`備份您的錢包`,"Backup your wallet, configure MFA and set recovery options":`備份錢包、設定 MFA 並設定恢復選項`,Balance:`餘額`,"Benefits of this upgrade:":`此升級的好處:`,Best:`最佳`,"Better transaction handling":`更好的交易處理`,Bridge:`跨鏈橋`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`確認後,與您名稱 ({{domain}}) 相關的以下資訊將被更新`,"By confirming, your address will be set to {{domain}}":`確認後,您的地址將設為 {{domain}}`,"By confirming, your current domain will be unset":`確認後,您目前的網域將被取消設定`,"By continuing, you agree to":`繼續即表示您同意`,Cancel:`取消`,"Checking...":`檢查中...`,"Choose Name":`選擇名稱`,"Choose a name for your account.":`為您的帳戶選擇名稱。`,"Choose a unique .vet domain name for your account.":`為您的帳戶選擇唯一的 .vet 網域名稱。`,"Choose account name":`選擇帳戶名稱`,"Choose name":`選擇名稱`,"Choose which tokens to use for transaction fees when the app is not covering them.":`選擇當應用程式未代付時用於交易手續費的代幣。`,"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 與追蹤技術使用方式的 Cookie 政策。`,"Copied!":`已複製!`,"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:`Discord`,"Display Name":`顯示名稱`,"Display name must be less than 25 characters":`顯示名稱不得超過 25 個字元`,"Domain set":`已設定網域`,"Domain unset":`已取消設定網域`,Done:`完成`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`拖曳以重新排序。系統將自動使用餘額足夠且優先順序最高的代幣。`,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":`現有自訂代幣`,"Explore ecosystem":`探索生態系統`,"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:`手續費`,"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 支付交易成本。`,"Fee token":`手續費代幣`,"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":`找到以下匯率`,"Frequently asked questions":`常見問題`,From:`從`,"Gas Token Preferences":`Gas 代幣偏好`,"Gas fee":`Gas 手續費`,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.":`好消息!智慧帳戶現已完整支援多子句交易。您可享有更好的使用體驗、更低的 gas 成本與更強的安全性。`,Google:`Google`,Help:`說明`,Hide:`隱藏`,"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 balance":`餘額不足`,"Insufficient balance to claim this domain and cover gas fees.":`餘額不足,無法領取此網域並支付 gas 手續費。`,"Insufficient balance to complete this transaction and cover gas fees.":`餘額不足,無法完成此交易並支付 gas 手續費。`,"Insufficient balance to complete this transfer and cover gas fees.":`餘額不足,無法完成此轉帳並支付 gas 手續費。`,"Insufficient balance to update your profile and cover gas fees.":`餘額不足,無法更新個人資料並支付 gas 手續費。`,"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 quote...":`載入報價中...`,"Loading your domains...":`載入您的網域中...`,"Loading...":`載入中...`,"Log in or sign up":`登入或註冊`,"Logged in with":`已透過登入`,Login:`登入`,"Login failed:":`登入失敗:`,"Login methods":`登入方式`,"Login methods and Passkeys":`登入方式與 Passkey`,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.":`管理內嵌錢包安全設定:管理登入方式、新增 Passkey 或備份錢包,確保永不失去資產存取權。`,"Manage your login methods and passkeys":`管理您的登入方式與 Passkey`,"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 Wallets":`其他錢包`,"Other options":`其他選項`,Passkey:`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...":`請完成 Passkey 驗證...`,"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":`閱讀更多`,Receive:`接收`,"Receive tokens":`接收代幣`,"Reduced gas costs for operations":`降低營運的 gas 成本`,"Reject and logout":`拒絕並登出`,Remove:`移除`,"Remove Login Method":`移除登入方式`,"Remove Wallet":`移除錢包`,"Remove from shortcuts":`從捷徑移除`,"Remove wallet":`移除錢包`,"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 Wallet":`選擇錢包`,"Select currency":`選擇貨幣`,"Select language":`選擇語言`,"Select the token to pay the fee with":`選擇用於支付手續費的代幣`,"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":`設定 Passkey`,"Set up a passkey for easier access":`設定 Passkey 以便存取`,Settings:`設定`,"Share on":`分享至`,Shortcuts:`捷徑`,"Show Advanced Options":`顯示進階選項`,"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...":`交換中...`,Switch:`切換`,"Account Changed":`已變更帳戶`,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 Priority Order":`代幣優先順序`,"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 社交登入`,"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 是 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 網路的能源或「gas」代幣。用於與區塊鏈互動時支付交易手續費。持有 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 是 VeChain 區塊鏈上的去中心化組織,專注於永續發展。成員使用 B3TR 代幣獲得獎勵、以 VOT3 參與提案投票與每週代幣分配。`,"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 總部位於歐洲聖馬利諾,是開創性的區塊鏈生態系統,也是推動實際區塊鏈應用的世界級智慧合約平台 VeChainThor 的創造者。由 Sunny Lu 於 2015 年創立,持續提供透明、高效、可擴展且具適應性的區塊鏈解決方案。`,"VeWorld Wallet":`VeWorld 錢包`,"Vechain Kit Policy":`Vechain Kit 政策`,"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 don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`您尚未啟用任何 gas 代幣。請在 Gas 代幣偏好中啟用至少一個 gas 代幣。`,"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 must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`您必須啟用至少一個代幣才能進行交易。若未啟用任何代幣,將無法支付 gas 手續費。`,"Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.":`您的帳戶已成功升級至最新版本。您現在可享有更好的使用體驗、更低的 gas 成本與更強的安全性。`,"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:`收藏品`,defi:`DeFi`,games:`遊戲`,here:`此處`,marketplaces:`市集`,rate:`匯率`,"to learn more about embedded wallets.":`以進一步了解內嵌錢包。`,unavailable:`不可用`,utilities:`工具`,vebetter:`VeBetter`,"your@email.com":`your@email.com`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>您的隱私很重要。</bold> 您掌握控制權,接受以啟用如 Cookie 等可選功能,協助我們提升您的使用體驗。`},W={" and ":` và `,"'{{policyName}}' on connect":`'{{policyName}}' khi kết nối`,"'{{policyName}}' on {{date}}":`'{{policyName}}' vào {{date}}`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Cần có tên miền .vet để tùy chỉnh hồ sơ. Chọn tên tài khoản để bắt đầu.`,"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.":`Smart Account là ví hợp đồng thông minh cung cấp bảo mật và chức năng nâng cao. Nó hỗ trợ các tính năng như khôi phục xã hội, gộp giao dịch và nhiều hơn nữa.`,'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".':`Tên miền là một dạng biệt danh cho địa chỉ ví của bạn. Nó cho phép bạn dễ dàng nhận dạng ví và tương tác với dApps bằng tên dễ đọc. Ví dụ, nếu địa chỉ ví của bạn là 0x1234567890, biệt danh có thể là "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.":`Mạng trong blockchain là môi trường diễn ra các giao dịch. VeChain có hai mạng chính: Mainnet (mạng chính nơi diễn ra giao dịch thật) và Testnet (môi trường thử nghiệm cho nhà phát triển). Mạng bạn đang kết nối được hiển thị ở đầu hộp thoại này.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Có bản nâng cấp mới cho Smart Account. Vui lòng đến phần 'Truy cập và Bảo mật' để nâng cấp.`,"A new version is available for your account":`Có phiên bản mới cho tài khoản của bạn`,"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.":`Ví là cổng truy cập blockchain VeChain của bạn. Nó lưu trữ khóa riêng và cho phép bạn quản lý an toàn tài sản số, gửi và nhận token, tương tác với ứng dụng phi tập trung. Hãy coi nó như tài khoản ngân hàng số cho các giao dịch blockchain.`,AVAILABLE:`KHẢ DỤNG`,Accept:`Chấp nhận`,"Accept all":`Chấp nhận tất cả`,"Accept selected":`Chấp nhận đã chọn`,"Access and security":`Truy cập và bảo mật`,"Account Upgrade Required":`Yêu cầu nâng cấp tài khoản`,"Account already upgraded":`Tài khoản đã được nâng cấp`,"Account upgrade required":`Yêu cầu nâng cấp tài khoản`,Active:`Đang hoạt động`,"Active Wallet":`Ví đang hoạt động`,"Add Login Method":`Thêm phương thức đăng nhập`,"Add New Wallet":`Thêm ví mới`,"Add Token":`Thêm token`,"Add to shortcuts":`Thêm vào lối tắ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.":`Thêm nhiều tài khoản liên kết tăng bảo mật chống mất quyền truy cập, nhưng cũng tạo thêm các vector tấn công tiềm năng. Để tăng cường bảo mật, chúng tôi khuyến nghị bật MFA.`,"Address is required":`Cần nhập địa chỉ`,All:`Tất cả`,"All apps":`Tất cả ứng dụng`,"All policies you have accepted":`Tất cả chính sách bạn đã chấp nhận`,"All tokens":`Tất cả token`,"Already have an x2earn app wallet?":`Đã có ví ứng dụng x2earn?`,Amount:`Số lượng`,"Amount is required":`Cần nhập số lượng`,"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.":`Ứng dụng X2Earn trong VeBetterDAO là ứng dụng bền vững thưởng cho người dùng token B3TR cho các hành động thân thiện với môi trường. Các ứng dụng này phải phân phối B3TR, liên kết ví người dùng và cung cấp bằng chứng hành động bền vững. Chúng tham gia VeBetterDAO thông qua sự chứng thực và tham gia các vòng phân bổ token hàng tuần.`,"An unexpected error occurred.":`Đã xảy ra lỗi không mong muốn.`,Apple:`Apple`,Apply:`Áp dụng`,Archived:`Đã lưu trữ`,"Archived Notifications":`Thông báo đã lưu trữ`,"Are you sure you want to disconnect your wallet?":`Bạn có chắc muốn ngắt kết nối ví?`,"Are you sure you want to reject the policies and disconnect?":`Bạn có chắc muốn từ chối chính sách và ngắt kết nối?`,"Are you sure you want to remove this wallet?":`Bạn có chắc muốn xóa ví này?`,"Are you sure you want to set your domain name to":`Bạn có chắc muốn đặt tên miền thành`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`Bạn có chắc muốn hủy liên kết {{accountType}} là phương thức đăng nhập liên kết với {{accountDescription}}?`,"Are you sure you want to unset your current domain?":`Bạn có chắc muốn hủy tên miền hiện tại?`,Assets:`Tài sản`,At:`Tại`,"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 là token khuyến khích của VeBetterDAO, được xây dựng trên blockchain VechainThor. Nó có tổng cung giới hạn 1 tỷ token, phát hành hàng tuần trong 12 năm. B3TR được sử dụng cho phần thưởng, quản trị và hỗ trợ token VOT3 theo tỷ lệ 1:1. Nó hỗ trợ các ứng dụng bền vững và quản lý kho bạc 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.":`Sao lưu ví rất quan trọng vì chỉ bạn mới có quyền truy cập khóa riêng. Nếu có sự cố, khóa riêng là cách duy nhất để khôi phục tài sản. Cách sao lưu phụ thuộc vào cách bạn truy cập ví: Nếu dùng VeWorld, tùy chọn sao lưu có trong ứng dụng. Người dùng đăng nhập xã hội có thể tìm tùy chọn sao lưu trong phần Ví. Nếu kết nối qua VeChain hoặc ứng dụng hệ sinh thái khác, bạn cần truy cập trang web gốc, đăng nhập và vào phần Ví từ đó.`,Backup:`Sao lưu`,"Backup your wallet":`Sao lưu ví của bạn`,"Backup your wallet, configure MFA and set recovery options":`Sao lưu ví, cấu hình MFA và thiết lập tùy chọn khôi phục`,Balance:`Số dư`,"Benefits of this upgrade:":`Lợi ích của bản nâng cấp này:`,Best:`Tốt nhất`,"Better transaction handling":`Xử lý giao dịch tốt hơn`,Bridge:`Cầu nối`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`Khi xác nhận, các chi tiết sau gắn với tên bạn ({{domain}}) sẽ được cập nhật`,"By confirming, your address will be set to {{domain}}":`Khi xác nhận, địa chỉ của bạn sẽ được đặt thành {{domain}}`,"By confirming, your current domain will be unset":`Khi xác nhận, tên miền hiện tại của bạn sẽ bị hủy`,"By continuing, you agree to":`Khi tiếp tục, bạn đồng ý với`,Cancel:`Hủy`,"Checking...":`Đang kiểm tra...`,"Choose Name":`Chọn tên`,"Choose a name for your account.":`Chọn tên cho tài khoản của bạn.`,"Choose a unique .vet domain name for your account.":`Chọn tên miền .vet duy nhất cho tài khoản của bạn.`,"Choose account name":`Chọn tên tài khoản`,"Choose name":`Chọn tên`,"Choose which tokens to use for transaction fees when the app is not covering them.":`Chọn token nào để trả phí giao dịch khi ứng dụng không chi trả.`,"Choose your account name":`Chọn tên tài khoản của bạn`,"Claim your vet domain!":`Nhận tên miền vet của bạn!`,"Claiming name...":`Đang nhận tên...`,"Clear all":`Xóa tất cả`,"Cleared notifications will appear here":`Thông báo đã xóa sẽ xuất hiện ở đây`,Click:`Nhấp`,"Click below to access {{ name }} and explore its features.":`Nhấp bên dưới để truy cập {{ name }} và khám phá các tính năng.`,Close:`Đóng`,"Close and do this later":`Đóng và làm sau`,"Close announcement":`Đóng thông báo`,"Coming Soon!":`Sắp ra mắt!`,"Coming soon":`Sắp ra mắt`,Confirm:`Xác nhận`,"Confirm Changes":`Xác nhận thay đổi`,"Confirm Name":`Xác nhận tên`,"Confirm Unset Domain":`Xác nhận hủy tên miền`,"Confirm the transaction in your wallet to complete it.":`Xác nhận giao dịch trong ví để hoàn tất.`,"Confirm transaction":`Xác nhận giao dịch`,"Connect an external wallet for easier access":`Kết nối ví bên ngoài để truy cập dễ hơn`,"Connect wallet":`Kết nối ví`,"Connect with VeWorld wallet":`Kết nối với ví VeWorld`,"Connect your Apple account for easier access":`Kết nối tài khoản Apple để truy cập dễ hơn`,"Connect your Discord account for easier access":`Kết nối tài khoản Discord để truy cập dễ hơn`,"Connect your Farcaster account for easier access":`Kết nối tài khoản Farcaster để truy cập dễ hơn`,"Connect your Github account for easier access":`Kết nối tài khoản Github để truy cập dễ hơn`,"Connect your Google account for easier access":`Kết nối tài khoản Google để truy cập dễ hơn`,"Connect your Instagram account for easier access":`Kết nối tài khoản Instagram để truy cập dễ hơn`,"Connect your LinkedIn account for easier access":`Kết nối tài khoản LinkedIn để truy cập dễ hơn`,"Connect your Spotify account for easier access":`Kết nối tài khoản Spotify để truy cập dễ hơn`,"Connect your Telegram account for easier access":`Kết nối tài khoản Telegram để truy cập dễ hơn`,"Connect your Tiktok account for easier access":`Kết nối tài khoản Tiktok để truy cập dễ hơn`,"Connect your Twitter account for easier access":`Kết nối tài khoản Twitter để truy cập dễ hơn`,"Connect your email for easier access":`Kết nối email để truy cập dễ hơn`,"Connect your phone number for easier access":`Kết nối số điện thoại để truy cập dễ hơn`,"Connecting to VeChain":`Đang kết nối với VeChain`,"Connecting with":`Đang kết nối với`,"Connecting with Passkey":`Đang kết nối với Passkey`,"Connecting...":`Đang kết nối...`,"Connection Details":`Chi tiết kết nối`,"Connection Failed":`Kết nối thất bại`,"Connection Type":`Loại kết nối`,"Connection details":`Chi tiết kết nối`,Continue:`Tiếp tục`,"Continue with Github":`Tiếp tục với Github`,"Continue with Google":`Tiếp tục với Google`,"Cookie Policy":`Chính sách cookie`,"Cookie policy outlining the use of cookies and tracking technologies.":`Chính sách cookie mô tả việc sử dụng cookie và công nghệ theo dõi.`,"Copied!":`Đã sao chép!`,"Copy your address or scan this QR code":`Sao chép địa chỉ hoặc quét mã QR này`,Currency:`Tiền tệ`,Current:`Hiện tại`,"Current domain":`Tên miền hiện tại`,Customization:`Tùy chỉnh`,Customize:`Tùy chỉnh`,"Customize profile":`Tùy chỉnh hồ sơ`,"Customize the appearance of your wallet.":`Tùy chỉnh giao diện ví của bạn.`,Description:`Mô tả`,"Description must be less than 100 characters":`Mô tả phải ít hơn 100 ký tự`,"Didn't get an email?":`Không nhận được email?`,Discord:`Discord`,"Display Name":`Tên hiển thị`,"Display name must be less than 25 characters":`Tên hiển thị phải ít hơn 25 ký tự`,"Domain set":`Đã đặt tên miền`,"Domain unset":`Đã hủy tên miền`,Done:`Hoàn tất`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Kéo để sắp xếp lại. Hệ thống sẽ tự động sử dụng token có ưu tiên cao nhất với số dư đủ.`,Ecosystem:`Hệ sinh thái`,"Eg: DevRel @ ENS Labs":`VD: DevRel @ ENS Labs`,Email:`Email`,"Email address":`Địa chỉ email`,"Embedded wallet":`Ví tích hợp`,"Enhanced compatibility with dApps":`Tương thích nâng cao với dApps`,"Enter confirmation code":`Nhập mã xác nhận`,"Enter your display name":`Nhập tên hiển thị`,"Enter your name":`Nhập tên của bạn`,"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.":`Trao đổi tài sản số giữa VeChain và các mạng blockchain khác một cách dễ dàng và an toàn. Giao dịch hoán đổi được thực hiện qua các đối tác sử dụng cả sàn phi tập trung và tập trung để chuyển đổi token.`,"Existing Custom Tokens":`Token tùy chỉnh hiện có`,"Explore ecosystem":`Khám phá hệ sinh thái`,"Failed to connect with Passkey":`Kết nối với Passkey thất bại`,"Failed to connect with VeChain":`Kết nối với VeChain thất bại`,"Failed to connect with ecosystem app":`Kết nối với ứng dụng hệ sinh thái thất bại`,"Failed to load App Hub apps":`Không tải được ứng dụng App Hub`,Farcaster:`Farcaster`,Fee:`Phí`,"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.":`Ủy quyền phí là tính năng độc đáo của VeChain cho phép người khác (người ủy quyền) trả phí giao dịch cho bạn. Nhiều dApps và nhà cung cấp dịch vụ đóng vai trò người ủy quyền để giúp người dùng mới bắt đầu dễ hơn, nhưng một số giao dịch vẫn có thể yêu cầu bạn trả phí bằng VTHO của mình. Phí cần thiết để ngăn spam mạng và bù đắp cho các nút xử lý và xác thực giao dịch trên blockchain. Khi tự trả phí, bạn có thể chọn VTHO từ tài sản của mình để trang trải chi phí giao dịch.`,"Fee token":`Token phí`,"Filter by category":`Lọc theo danh mục`,"Finally say goodbye to 0x addresses":`Cuối cùng cũng tạm biệt địa chỉ 0x`,"For developers":`Dành cho nhà phát triển`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Vì lý do bảo mật, bạn chỉ có thể quản lý cài đặt ví tích hợp trên nền tảng {{appName}}.`,"Found following rates":`Đã tìm thấy các tỷ giá sau`,"Frequently asked questions":`Câu hỏi thường gặp`,From:`Từ`,"Gas Token Preferences":`Tùy chọn token gas`,"Gas fee":`Phí gas`,General:`Chung`,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.":`Tin tốt! Giao dịch đa mệnh đề giờ đã được hỗ trợ đầy đủ cho tài khoản thông minh. Bạn có thể tận hưởng trải nghiệm tốt hơn, chi phí gas thấp hơn và bảo mật nâng cao.`,Google:`Google`,Help:`Trợ giúp`,Hide:`Ẩn`,"How do I backup my wallet?":`Làm thế nào để sao lưu ví?`,"How do I send tokens?":`Làm thế nào để gửi token?`,"How is my wallet secured?":`Ví của tôi được bảo mật như thế nào?`,"I have read and agree to ":`Tôi đã đọc và đồng ý với `,"Ignore and continue":`Bỏ qua và tiếp tục`,"Improved security features":`Tính năng bảo mật được cải thiện`,Instagram:`Instagram`,"Insufficient balance":`Số dư không đủ`,"Insufficient balance to claim this domain and cover gas fees.":`Số dư không đủ để nhận tên miền này và trả phí gas.`,"Insufficient balance to complete this transaction and cover gas fees.":`Số dư không đủ để hoàn tất giao dịch này và trả phí gas.`,"Insufficient balance to complete this transfer and cover gas fees.":`Số dư không đủ để hoàn tất chuyển khoản này và trả phí gas.`,"Insufficient balance to update your profile and cover gas fees.":`Số dư không đủ để cập nhật hồ sơ và trả phí gas.`,"Insufficient {{symbol}} balance":`Số dư {{symbol}} không đủ`,"Invalid address or domain":`Địa chỉ hoặc tên miền không hợp lệ`,"Invalid contract address":`Địa chỉ hợp đồng không hợp lệ`,"Invalid token address":`Địa chỉ token không hợp lệ`,Language:`Ngôn ngữ`,"Launch vechain.energy":`Mở vechain.energy`,"Launch {{name}}":`Mở {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Thỏa thuận pháp lý giữa bạn, Vechain Kit và ứng dụng hiện tại, nêu rõ các quy tắc sử dụng dịch vụ ví.`,"Link Apple Account":`Liên kết tài khoản Apple`,"Link Discord Account":`Liên kết tài khoản Discord`,"Link Email Account":`Liên kết tài khoản email`,"Link External Wallet":`Liên kết ví bên ngoài`,"Link Farcaster Account":`Liên kết tài khoản Farcaster`,"Link Github Account":`Liên kết tài khoản Github`,"Link Google Account":`Liên kết tài khoản Google`,"Link Instagram Account":`Liên kết tài khoản Instagram`,"Link LinkedIn Account":`Liên kết tài khoản LinkedIn`,"Link Phone Number":`Liên kết số điện thoại`,"Link Spotify Account":`Liên kết tài khoản Spotify`,"Link Telegram Account":`Liên kết tài khoản Telegram`,"Link Tiktok Account":`Liên kết tài khoản Tiktok`,"Link Twitter Account":`Liên kết tài khoản Twitter`,LinkedIn:`LinkedIn`,"Loading quote...":`Đang tải báo giá...`,"Loading your domains...":`Đang tải tên miền...`,"Loading...":`Đang tải...`,"Log in or sign up":`Đăng nhập hoặc đăng ký`,"Logged in with":`Đã đăng nhập với`,Login:`Đăng nhập`,"Login failed:":`Đăng nhập thất bại:`,"Login methods":`Phương thức đăng nhập`,"Login methods and Passkeys":`Phương thức đăng nhập và Passkeys`,Logout:`Đăng xuất`,"Manage Custom Tokens":`Quản lý token tùy chỉnh`,"Manage MFA":`Quản lý MFA`,"Manage Recovery":`Quản lý khôi phục`,"Manage on {{appName}}":`Quản lý trên {{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.":`Quản lý cài đặt bảo mật ví tích hợp: thiết lập phương thức đăng nhập, thêm passkey hoặc sao lưu ví để không bao giờ mất quyền truy cập tài sản.`,"Manage your login methods and passkeys":`Quản lý phương thức đăng nhập và passkeys`,"Manage your preferences for currency, language, and appearance.":`Quản lý tùy chọn tiền tệ, ngôn ngữ và giao diện.`,"Minimum {{symbol}} transfer is {{min}}":`Chuyển {{symbol}} tối thiểu là {{min}}`,More:`Thêm`,"Multiclause Transactions Are Now Supported":`Giao dịch đa mệnh đề giờ đã được hỗ trợ`,"Name must be at least 3 characters long":`Tên phải có ít nhất 3 ký tự`,"Name your account to make it easier to exchange assets":`Đặt tên tài khoản để dễ dàng trao đổi tài sản`,Network:`Mạng`,New:`Mới`,"New image selected":`Đã chọn hình ảnh mới`,"No additional accounts available to link":`Không có tài khoản bổ sung để liên kết`,"No application from VeChain ecosystem is available to login.":`Không có ứng dụng nào từ hệ sinh thái VeChain để đăng nhập.`,"No apps found in this category":`Không tìm thấy ứng dụng trong danh mục này`,"No archived notifications":`Không có thông báo đã lưu trữ`,"No assets":`Không có tài sản`,"No notifications":`Không có thông báo`,"No policies accepted":`Chưa chấp nhận chính sách nào`,"No questions found":`Không tìm thấy câu hỏi`,"No quotes available":`Không có báo giá`,"No tokens found":`Không tìm thấy token`,"Node URL":`URL nút`,Notifications:`Thông báo`,"Only letters, numbers, and hyphens are allowed":`Chỉ cho phép chữ cái, số và dấu gạch ngang`,Optional:`Tùy chọn`,"Other Wallets":`Ví khác`,"Other options":`Tùy chọn khác`,Passkey:`Passkey`,"Phone Number":`Số điện thoại`,"Please approve the request in the connection request window...":`Vui lòng chấp nhận yêu cầu trong cửa sổ kết nối...`,"Please be sure to keep this wallet safe and backed up.":`Hãy đảm bảo giữ ví an toàn và có bản sao lưu.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Vui lòng kiểm tra {{email}} để tìm email từ privy.io và nhập mã bên dưới.`,"Please complete the passkey authentication...":`Vui lòng hoàn tất xác thực passkey...`,"Please confirm the transaction in your wallet.":`Vui lòng xác nhận giao dịch trong ví.`,"Please enter a valid Twitter handle without @":`Vui lòng nhập tên Twitter hợp lệ không có @`,"Please enter a valid contract address":`Vui lòng nhập địa chỉ hợp đồng hợp lệ`,"Please enter a valid email address":`Vui lòng nhập địa chỉ email hợp lệ`,"Please enter a valid number":`Vui lòng nhập số hợp lệ`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Vui lòng dành thời gian xem xét tất cả chính sách, việc chấp nhận là bắt buộc để tiếp tục.`,Policy:`Chính sách`,"Preparing changes...":`Đang chuẩn bị thay đổi...`,"Privacy Policy":`Chính sách bảo mật`,"Privacy policy outlining the data collection and processing practices.":`Chính sách bảo mật mô tả các hoạt động thu thập và xử lý dữ liệu.`,"Privy Status":`Trạng thái 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 xây dựng cơ sở hạ tầng onboarding người dùng và ví tích hợp để tạo ra sản phẩm tốt hơn trên nền tảng crypto. Điều này có nghĩa là tích hợp kiểm soát tài sản vào chính ứng dụng để cho phép người dùng, doanh nghiệp hoặc máy móc sử dụng tài sản số thông qua trải nghiệm sản phẩm liền mạch.`,"Processing transaction...":`Đang xử lý giao dịch...`,Profile:`Hồ sơ`,"Profile Image":`Ảnh hồ sơ`,"Profile Picture":`Ảnh đại diện`,"Profile Updated":`Đã cập nhật hồ sơ`,"Read More":`Đọc thêm`,Receive:`Nhận`,"Receive tokens":`Nhận token`,"Reduced gas costs for operations":`Giảm chi phí gas cho các hoạt động`,"Reject and logout":`Từ chối và đăng xuất`,Remove:`Xóa`,"Remove Login Method":`Xóa phương thức đăng nhập`,"Remove Wallet":`Xóa ví`,"Remove from shortcuts":`Xóa khỏi lối tắt`,"Remove wallet":`Xóa ví`,"Remove your current domain name":`Xóa tên miền hiện tại`,"Resend code":`Gửi lại mã`,Retry:`Thử lại`,"Save Changes":`Lưu thay đổi`,"Saving changes...":`Đang lưu thay đổi...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Tạm biệt địa chỉ 0x, nhận tên miền phụ .veworld.vet miễn phí ngay!`,"Search Apps":`Tìm ứng dụng`,"Search FAQ":`Tìm trong FAQ`,"Security preferences":`Tùy chọn bảo mật`,"Security settings":`Cài đặt bảo mật`,"Select Additional Login Method":`Chọn phương thức đăng nhập bổ sung`,"Select Token":`Chọn token`,"Select Wallet":`Chọn ví`,"Select currency":`Chọn tiền tệ`,"Select language":`Chọn ngôn ngữ`,"Select the token to pay the fee with":`Chọn token để trả phí`,"Select token":`Chọn token`,Send:`Gửi`,"Send all":`Gửi tất cả`,"Sending Transaction...":`Đang gửi giao dịch...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Gửi đến OceanX hoặc sàn giao dịch khác có thể dẫn đến mất tiền.`,"Sending...":`Đang gửi...`,"Set a domain first":`Đặt tên miền trước`,"Set up Passkey":`Thiết lập Passkey`,"Set up a passkey for easier access":`Thiết lập passkey để truy cập dễ hơn`,Settings:`Cài đặt`,"Share on":`Chia sẻ trên`,Shortcuts:`Lối tắt`,"Show Advanced Options":`Hiện tùy chọn nâng cao`,"Show Less":`Hiện ít hơn`,"Show More":`Hiện thêm`,"Slippage tolerance":`Dung sai trượt giá`,"Smart Account":`Smart Account`,"Smart Account detected":`Phát hiện Smart Account`,"Something went wrong":`Đã xảy ra lỗi`,"Something went wrong. Please try again.":`Đã xảy ra lỗi. Vui lòng thử lại.`,Source:`Nguồn`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Hãy theo dõi tính năng Hoạt động sắp ra mắt`,"Stay tuned for our upcoming NFT feature":`Hãy theo dõi tính năng NFT sắp ra mắt`,Submit:`Gửi`,Swap:`Hoán đổi`,"Swap all":`Hoán đổi tất cả`,"Swapping...":`Đang hoán đổi...`,Switch:`Chuyển`,"Account Changed":`Đã đổi tài khoản`,Telegram:`Telegram`,"Terms and Conditions":`Điều khoản và điều kiện`,"Terms and Policies":`Điều khoản và chính sách`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Các tài khoản này được liên kết với ví tích hợp và có thể dùng để đăng nhập ví và truy cập khóa riêng.`,"This address only supports VeChain assets.":`Địa chỉ này chỉ hỗ trợ tài sản VeChain.`,"This domain is already taken":`Tên miền này đã được sử dụng`,"This domain is protected":`Tên miền này được bảo vệ`,"This is taking longer than expected.":`Việc này mất nhiều thời gian hơn dự kiến.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Đây là ví chính của bạn, được tạo bởi {{element}} và bảo mật bởi Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Ví này là chủ sở hữu Smart Account, được sử dụng làm danh tính và cổng truy cập cho các tương tác blockchain.`,Tiktok:`Tiktok`,To:`Đến`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Để tiếp tục tương tác với blockchain VeChain và hoàn tất thao tác, Smart Account cần được nâng cấp lên phiên bản mới nhất (v3).`,"Token Contract Address":`Địa chỉ hợp đồng token`,"Token Priority Order":`Thứ tự ưu tiên token`,"Token already added":`Token đã được thêm`,Tools:`Công cụ`,"Transaction failed":`Giao dịch thất bại`,"Transaction failed:":`Giao dịch thất bại:`,"Transaction is being processed, it can take up to 15 seconds.":`Giao dịch đang được xử lý, có thể mất đến 15 giây.`,"Transaction successful":`Giao dịch thành công`,"Transaction successful!":`Giao dịch thành công!`,"Try again":`Thử lại`,"Try searching with a different term":`Thử tìm kiếm với từ khóa khác`,Twitter:`Twitter`,"Twitter username":`Tên người dùng Twitter`,"Type the receiver address or domain":`Nhập địa chỉ người nhận hoặc tên miền`,UNAVAILABLE:`KHÔNG KHẢ DỤNG`,"Unable to fetch the price":`Không thể lấy giá`,"Unset current domain":`Hủy tên miền hiện tại`,"Unsetting current domain...":`Đang hủy tên miền hiện tại...`,"Upgrade Smart Account to V3":`Nâng cấp Smart Account lên V3`,"Upgrade Successful!":`Nâng cấp thành công!`,"Upgrade account":`Nâng cấp tài khoản`,"Upgrading...":`Đang nâng cấp...`,"Use social login with VeChain":`Đăng nhập xã hội với VeChain`,"Use this token for future transactions":`Sử dụng token này cho giao dịch trong tương lai`,"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 là tiền điện tử chính của mạng VeChain. Nó đại diện cho giá trị và quyền sở hữu trong hệ sinh thái VeChain, tương tự như cổ phiếu đại diện cho quyền sở hữu trong công ty. Nắm giữ VET tự động tạo ra VTHO, cần thiết để trả phí giao dịch trên mạng.`,"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) là token năng lượng hay 'gas' của mạng VeChain. Nó được sử dụng để trả phí giao dịch khi tương tác với blockchain. VTHO được tạo tự động khi nắm giữ token VET, tạo ra hệ thống hai token giúp duy trì ổn định mạng và quản lý chi phí giao dịch.`,"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 là tổ chức phi tập trung trên blockchain VeChain tập trung vào phát triển bền vững. Thành viên tham gia quản trị DAO sử dụng token B3TR cho phần thưởng và VOT3 để bỏ phiếu trong các đề xuất và vòng phân bổ token hàng tuần.`,"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, có trụ sở tại San Marino, Châu Âu, là hệ sinh thái blockchain tiên phong và là nhà sáng tạo VeChainThor, nền tảng hợp đồng thông minh đẳng cấp thế giới thúc đẩy việc áp dụng blockchain trong thực tế. Được thành lập năm 2015 bởi Sunny Lu, VeChain liên tục nỗ lực cung cấp giải pháp blockchain minh bạch, hiệu quả, có khả năng mở rộng và thích ứng.`,"VeWorld Wallet":`Ví VeWorld`,"Vechain Kit Policy":`Chính sách Vechain Kit`,"View Current Policy":`Xem chính sách hiện tại`,"View on explorer":`Xem trên trình khám phá`,"View transaction on the explorer":`Xem giao dịch trên trình khám phá`,"Waiting for confirmation":`Đang chờ xác nhận`,"Waiting for confirmation...":`Đang chờ xác nhận...`,"Waiting wallet confirmation...":`Đang chờ xác nhận ví...`,Wallet:`Ví`,"Wallet secured by":`Ví được bảo mật bởi`,"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":`Chúng tôi khuyến nghị xuất khóa riêng để sao lưu ví. Điều này đảm bảo bạn có thể khôi phục nếu cần hoặc chuyển sang tự quản lý bằng`,Website:`Trang web`,"Website URL":`URL trang web`,"Website URL must start with https://":`URL trang web phải bắt đầu bằng https://`,"What is B3TR?":`B3TR là gì?`,"What is Privy?":`Privy là gì?`,"What is VET?":`VET là gì?`,"What is VTHO?":`VTHO là gì?`,"What is VeBetterDAO?":`VeBetterDAO là gì?`,"What is VeChain?":`VeChain là gì?`,"What is a Smart Account?":`Smart Account là gì?`,"What is a domain name?":`Tên miền là gì?`,"What is a network?":`Mạng là gì?`,"What is a wallet?":`Ví là gì?`,"What is an x2earn application?":`Ứng dụng x2earn là gì?`,"What is fee delegation?":`Ủy quyền phí là gì?`,"When you have accepted a policy, it will appear here":`Khi bạn đã chấp nhận chính sách, nó sẽ xuất hiện ở đây`,"When you have notifications, they will appear here":`Khi bạn có thông báo, chúng sẽ xuất hiện ở đây`,"YOU OWN THIS":`BẠN SỞ HỮU CÁI NÀY`,"You accepted current policy on {{date}}":`Bạn đã chấp nhận chính sách hiện tại vào {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Bạn đang sử dụng Ví tích hợp được bảo mật bằng phương thức đăng nhập xã hội, đảm bảo trải nghiệm VeChain liền mạch.`,"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.":`Bạn có thể gửi token bằng cách nhấp vào biểu tượng gửi trong phần Thao tác nhanh. Nhập địa chỉ người nhận hoặc tên miền VeChain, chọn token và chỉ định số lượng muốn gửi.`,"You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`Bạn chưa bật token gas nào. Vui lòng bật ít nhất một token gas trong Tùy chọn token gas.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Bạn có Smart Account đang hoạt động liên kết với ví này. Nó đã được đặt làm danh tính chính của bạn.`,"You may want to try establishing the connection again.":`Bạn có thể thử thiết lập kết nối lại.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`Bạn phải bật ít nhất một token để thực hiện giao dịch. Không có token nào được bật, bạn sẽ không thể trả phí gas.`,"Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.":`Tài khoản đã được nâng cấp thành công lên phiên bản mới nhất. Bạn có thể tận hưởng trải nghiệm tốt hơn, chi phí gas thấp hơn và bảo mật nâng cao.`,"Your address has been successfully set to {{name}}":`Địa chỉ của bạn đã được đặt thành công thành {{name}}`,"Your changes have been saved successfully.":`Thay đổi của bạn đã được lưu thành công.`,"Your domain has been unset successfully.":`Tên miền của bạn đã được hủy thành công.`,"Your embedded wallet":`Ví tích hợp của bạn`,"Your existing domains":`Tên miền hiện có của bạn`,"Your smart account is already upgraded to this version.":`Smart Account đã được nâng cấp lên phiên bản này.`,"Your smart account needs to be upgraded to the latest version (v3).":`Smart Account cần được nâng cấp lên phiên bản mới nhất (v3).`,"Your tokens":`Token của bạn`,"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.":`Bảo mật ví phụ thuộc vào cách bạn truy cập. Với các tùy chọn tự quản lý như tiện ích VeWorld, ứng dụng di động hoặc ví phần cứng, bạn hoàn toàn kiểm soát khóa riêng. Tiện ích này không có quyền truy cập khóa riêng. Khi đăng nhập bằng tài khoản xã hội hoặc VeChain, ví được tạo và bảo mật bởi Privy, quản lý bởi VeChain, cung cấp trải nghiệm onboarding dễ dàng hơn trong khi vẫn duy trì bảo mật.`,collectibles:`Bộ sưu tập`,defi:`DeFi`,games:`Trò chơi`,here:`tại đây`,marketplaces:`Sàn giao dịch`,rate:`tỷ giá`,"to learn more about embedded wallets.":`để tìm hiểu thêm về ví tích hợp.`,unavailable:`không khả dụng`,utilities:`Tiện ích`,vebetter:`VeBetter`,"your@email.com":`your@email.com`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>Quyền riêng tư của bạn rất quan trọng.</bold> Bạn nắm quyền kiểm soát, chấp nhận để bật các tính năng tùy chọn như cookie giúp chúng tôi nâng cao trải nghiệm của bạn.`},ae={" and ":` en `,"'{{policyName}}' on connect":`'{{policyName}}' bij verbinding`,"'{{policyName}}' on {{date}}":`'{{policyName}}' op {{date}}`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Een .vet-domein is vereist om uw profiel aan te passen. Kies een accountnaam om te 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.":`Een Smart Account is een smart contract-wallet die verbeterde beveiliging en functionaliteit biedt. Het maakt functies mogelijk zoals sociaal herstel, transactiebundeling en meer.`,'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".':`Een domeinnaam is een soort bijnaam voor uw wallet-adres. Hiermee kunt u uw wallet gemakkelijk identificeren en communiceren met dApps met een leesbare naam. Als uw wallet-adres bijvoorbeeld 0x1234567890 is, kan uw bijnaam "alice.vechain" zijn.`,"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.":`Een netwerk in blockchain verwijst naar de omgeving waar transacties plaatsvinden. VeChain heeft twee hoofdnetwerken: Mainnet (het live netwerk waar echte transacties plaatsvinden) en Testnet (een testomgeving voor ontwikkelaars). Het netwerk waarmee u verbonden bent, wordt bovenaan dit venster weergegeven.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Er is een nieuwe upgrade beschikbaar voor uw Smart Account. Ga naar het gedeelte 'Toegang en beveiliging' om te upgraden.`,"A new version is available for your account":`Er is een nieuwe versie beschikbaar voor uw 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.":`Een wallet is uw toegang tot de VeChain-blockchain. Het slaat uw privésleutels op en stelt u in staat om veilig uw digitale activa te beheren, tokens te verzenden en ontvangen, en te communiceren met gedecentraliseerde applicaties. Beschouw het als uw digitale bankrekening voor blockchain-transacties.`,AVAILABLE:`BESCHIKBAAR`,Accept:`Accepteren`,"Accept all":`Alles accepteren`,"Accept selected":`Geselecteerde accepteren`,"Access and security":`Toegang en beveiliging`,"Account Upgrade Required":`Accountupgrade vereist`,"Account already upgraded":`Account al geüpgraded`,"Account upgrade required":`Accountupgrade vereist`,Active:`Actief`,"Active Wallet":`Actieve wallet`,"Add Login Method":`Inlogmethode toevoegen`,"Add New Wallet":`Nieuwe wallet toevoegen`,"Add Token":`Token toevoegen`,"Add to shortcuts":`Toevoegen aan snelkoppelingen`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Het toevoegen van meer gekoppelde accounts verhoogt de beveiliging tegen toegangsverlies, maar introduceert ook extra potentiële aanvalsvectoren. Voor verbeterde beveiliging raden we aan MFA in te schakelen.`,"Address is required":`Adres is vereist`,All:`Alle`,"All apps":`Alle apps`,"All policies you have accepted":`Alle beleidsregels die u heeft geaccepteerd`,"All tokens":`Alle tokens`,"Already have an x2earn app wallet?":`Heeft u al een x2earn app-wallet?`,Amount:`Bedrag`,"Amount is required":`Bedrag is vereist`,"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.":`Een X2Earn-applicatie in VeBetterDAO is een duurzame app die gebruikers beloont met B3TR-tokens voor milieuvriendelijke acties. Deze apps moeten B3TR distribueren, gebruikerswallets koppelen en bewijs leveren van duurzame acties. Ze sluiten zich aan bij VeBetterDAO door middel van goedkeuring en nemen deel aan wekelijkse tokenallocatierondes.`,"An unexpected error occurred.":`Er is een onverwachte fout opgetreden.`,Apple:`Apple`,Apply:`Toepassen`,Archived:`Gearchiveerd`,"Archived Notifications":`Gearchiveerde meldingen`,"Are you sure you want to disconnect your wallet?":`Weet u zeker dat u uw wallet wilt loskoppelen?`,"Are you sure you want to reject the policies and disconnect?":`Weet u zeker dat u het beleid wilt afwijzen en de verbinding wilt verbreken?`,"Are you sure you want to remove this wallet?":`Weet u zeker dat u deze wallet wilt verwijderen?`,"Are you sure you want to set your domain name to":`Weet u zeker dat u uw domeinnaam wilt instellen op`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`Weet u zeker dat u {{accountType}} als inlogmethode gekoppeld aan {{accountDescription}} wilt ontkoppelen?`,"Are you sure you want to unset your current domain?":`Weet u zeker dat u uw huidige domein wilt opheffen?`,Assets:`Activa`,At:`Op`,"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 het stimuleringstoken van VeBetterDAO, gebouwd op de VechainThor-blockchain. Het heeft een maximale voorraad van 1 miljard tokens, wekelijks uitgegeven over 12 jaar. B3TR wordt gebruikt voor beloningen, governance en het ondersteunen van VOT3-tokens 1:1. Het ondersteunt toepassingen op het gebied van duurzaamheid en het beheer van de DAO-treasury.`,"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.":`Het maken van een back-up van uw wallet is cruciaal omdat u de enige bent met toegang tot uw privésleutels. Als er iets misgaat, is uw privésleutel de enige manier om uw activa te herstellen. Hoe u een back-up maakt, hangt af van hoe u toegang heeft tot uw wallet: Bij VeWorld is de back-upoptie beschikbaar in de app. Voor gebruikers met sociale login vindt u back-upopties in het Wallet-gedeelte. Als u verbonden bent via VeChain of een andere ecosysteem-app, moet u de originele website bezoeken, inloggen en het Wallet-gedeelte openen.`,Backup:`Back-up`,"Backup your wallet":`Maak een back-up van uw wallet`,"Backup your wallet, configure MFA and set recovery options":`Maak een back-up, configureer MFA en stel herstelopties in`,Balance:`Saldo`,"Benefits of this upgrade:":`Voordelen van deze upgrade:`,Best:`Beste`,"Better transaction handling":`Betere transactieverwerking`,Bridge:`Brug`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`Door te bevestigen worden de volgende details gekoppeld aan uw naam ({{domain}}) bijgewerkt`,"By confirming, your address will be set to {{domain}}":`Door te bevestigen wordt uw adres ingesteld op {{domain}}`,"By confirming, your current domain will be unset":`Door te bevestigen wordt uw huidige domein opgeheven`,"By continuing, you agree to":`Door verder te gaan, stemt u in met`,Cancel:`Annuleren`,"Checking...":`Controleren...`,"Choose Name":`Naam kiezen`,"Choose a name for your account.":`Kies een naam voor uw account.`,"Choose a unique .vet domain name for your account.":`Kies een unieke .vet-domeinnaam voor uw account.`,"Choose account name":`Kies accountnaam`,"Choose name":`Kies naam`,"Choose which tokens to use for transaction fees when the app is not covering them.":`Kies welke tokens u wilt gebruiken voor transactiekosten wanneer de app deze niet dekt.`,"Choose your account name":`Kies uw accountnaam`,"Claim your vet domain!":`Claim uw vet-domein!`,"Claiming name...":`Naam claimen...`,"Clear all":`Alles wissen`,"Cleared notifications will appear here":`Gewiste meldingen verschijnen hier`,Click:`Klik`,"Click below to access {{ name }} and explore its features.":`Klik hieronder om {{ name }} te openen en de functies te verkennen.`,Close:`Sluiten`,"Close and do this later":`Sluiten en later doen`,"Close announcement":`Aankondiging sluiten`,"Coming Soon!":`Binnenkort!`,"Coming soon":`Binnenkort`,Confirm:`Bevestigen`,"Confirm Changes":`Wijzigingen bevestigen`,"Confirm Name":`Naam bevestigen`,"Confirm Unset Domain":`Domeinopheffing bevestigen`,"Confirm the transaction in your wallet to complete it.":`Bevestig de transactie in uw wallet om deze te voltooien.`,"Confirm transaction":`Transactie bevestigen`,"Connect an external wallet for easier access":`Verbind een externe wallet voor eenvoudigere toegang`,"Connect wallet":`Wallet verbinden`,"Connect with VeWorld wallet":`Verbinden met VeWorld-wallet`,"Connect your Apple account for easier access":`Verbind uw Apple-account voor eenvoudigere toegang`,"Connect your Discord account for easier access":`Verbind uw Discord-account voor eenvoudigere toegang`,"Connect your Farcaster account for easier access":`Verbind uw Farcaster-account voor eenvoudigere toegang`,"Connect your Github account for easier access":`Verbind uw Github-account voor eenvoudigere toegang`,"Connect your Google account for easier access":`Verbind uw Google-account voor eenvoudigere toegang`,"Connect your Instagram account for easier access":`Verbind uw Instagram-account voor eenvoudigere toegang`,"Connect your LinkedIn account for easier access":`Verbind uw LinkedIn-account voor eenvoudigere toegang`,"Connect your Spotify account for easier access":`Verbind uw Spotify-account voor eenvoudigere toegang`,"Connect your Telegram account for easier access":`Verbind uw Telegram-account voor eenvoudigere toegang`,"Connect your Tiktok account for easier access":`Verbind uw Tiktok-account voor eenvoudigere toegang`,"Connect your Twitter account for easier access":`Verbind uw Twitter-account voor eenvoudigere toegang`,"Connect your email for easier access":`Verbind uw e-mail voor eenvoudigere toegang`,"Connect your phone number for easier access":`Verbind uw telefoonnummer voor eenvoudigere toegang`,"Connecting to VeChain":`Verbinden met VeChain`,"Connecting with":`Verbinden met`,"Connecting with Passkey":`Verbinden met Passkey`,"Connecting...":`Verbinden...`,"Connection Details":`Verbindingsdetails`,"Connection Failed":`Verbinding mislukt`,"Connection Type":`Verbindingstype`,"Connection details":`Verbindingsdetails`,Continue:`Doorgaan`,"Continue with Github":`Doorgaan met Github`,"Continue with Google":`Doorgaan met Google`,"Cookie Policy":`Cookiebeleid`,"Cookie policy outlining the use of cookies and tracking technologies.":`Cookiebeleid over het gebruik van cookies en trackingtechnologieën.`,"Copied!":`Gekopieerd!`,"Copy your address or scan this QR code":`Kopieer uw adres of scan deze QR-code`,Currency:`Valuta`,Current:`Huidig`,"Current domain":`Huidig domein`,Customization:`Aanpassing`,Customize:`Aanpassen`,"Customize profile":`Profiel aanpassen`,"Customize the appearance of your wallet.":`Pas het uiterlijk van uw wallet aan.`,Description:`Beschrijving`,"Description must be less than 100 characters":`Beschrijving moet minder dan 100 tekens zijn`,"Didn't get an email?":`Geen e-mail ontvangen?`,Discord:`Discord`,"Display Name":`Weergavenaam`,"Display name must be less than 25 characters":`Weergavenaam moet minder dan 25 tekens zijn`,"Domain set":`Domein ingesteld`,"Domain unset":`Domein opgeheven`,Done:`Klaar`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Sleep om te herordenen. Het systeem gebruikt automatisch het token met de hoogste prioriteit met voldoende saldo.`,Ecosystem:`Ecosysteem`,"Eg: DevRel @ ENS Labs":`Bijv: DevRel @ ENS Labs`,Email:`E-mail`,"Email address":`E-mailadres`,"Embedded wallet":`Ingebouwde wallet`,"Enhanced compatibility with dApps":`Verbeterde compatibiliteit met dApps`,"Enter confirmation code":`Bevestigingscode invoeren`,"Enter your display name":`Voer uw weergavenaam in`,"Enter your name":`Voer uw naam in`,"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.":`Wissel uw digitale activa gemakkelijk en veilig uit tussen VeChain en andere blockchain-netwerken. Swaps worden uitgevoerd via partners die zowel gedecentraliseerde als gecentraliseerde exchanges gebruiken om tokens te converteren.`,"Existing Custom Tokens":`Bestaande aangepaste tokens`,"Explore ecosystem":`Ecosysteem verkennen`,"Failed to connect with Passkey":`Verbinding met Passkey mislukt`,"Failed to connect with VeChain":`Verbinding met VeChain mislukt`,"Failed to connect with ecosystem app":`Verbinding met ecosysteem-app mislukt`,"Failed to load App Hub apps":`Laden van App Hub-apps mislukt`,Farcaster:`Farcaster`,Fee:`Kosten`,"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-delegatie is een unieke functie van VeChain waarmee iemand anders (een delegator) uw transactiekosten kan betalen. Hoewel veel dApps en serviceproviders als delegators optreden om het voor nieuwe gebruikers gemakkelijker te maken, kunnen sommige transacties nog steeds vereisen dat u kosten betaalt met uw eigen VTHO. Kosten zijn noodzakelijk om netwerkspam te voorkomen en de nodes te compenseren die transacties op de blockchain verwerken en valideren. Wanneer u zelf kosten betaalt, kunt u VTHO uit uw bezittingen selecteren om de transactiekosten te dekken.`,"Fee token":`Kostentoken`,"Filter by category":`Filteren op categorie`,"Finally say goodbye to 0x addresses":`Zeg eindelijk vaarwel tegen 0x-adressen`,"For developers":`Voor ontwikkelaars`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Om veiligheidsredenen kunt u uw ingebouwde wallet-instellingen alleen beheren op het {{appName}}-platform.`,"Found following rates":`Volgende koersen gevonden`,"Frequently asked questions":`Veelgestelde vragen`,From:`Van`,"Gas Token Preferences":`Gas-tokenvoorkeuren`,"Gas fee":`Gaskosten`,General:`Algemeen`,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.":`Goed nieuws! Multiclause-transacties worden nu volledig ondersteund voor smart accounts. U kunt nu genieten van een betere gebruikerservaring, lagere gaskosten en verbeterde beveiliging.`,Google:`Google`,Help:`Help`,Hide:`Verbergen`,"How do I backup my wallet?":`Hoe maak ik een back-up van mijn wallet?`,"How do I send tokens?":`Hoe verstuur ik tokens?`,"How is my wallet secured?":`Hoe is mijn wallet beveiligd?`,"I have read and agree to ":`Ik heb gelezen en ga akkoord met `,"Ignore and continue":`Negeren en doorgaan`,"Improved security features":`Verbeterde beveiligingsfuncties`,Instagram:`Instagram`,"Insufficient balance":`Onvoldoende saldo`,"Insufficient balance to claim this domain and cover gas fees.":`Onvoldoende saldo om dit domein te claimen en gaskosten te dekken.`,"Insufficient balance to complete this transaction and cover gas fees.":`Onvoldoende saldo om deze transactie te voltooien en gaskosten te dekken.`,"Insufficient balance to complete this transfer and cover gas fees.":`Onvoldoende saldo om deze overdracht te voltooien en gaskosten te dekken.`,"Insufficient balance to update your profile and cover gas fees.":`Onvoldoende saldo om uw profiel bij te werken en gaskosten te dekken.`,"Insufficient {{symbol}} balance":`Onvoldoende {{symbol}}-saldo`,"Invalid address or domain":`Ongeldig adres of domein`,"Invalid contract address":`Ongeldig contractadres`,"Invalid token address":`Ongeldig tokenadres`,Language:`Taal`,"Launch vechain.energy":`Open vechain.energy`,"Launch {{name}}":`Open {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Juridische overeenkomst tussen u, Vechain Kit en de huidige app, met de regels voor het gebruik van walletdiensten.`,"Link Apple Account":`Apple-account koppelen`,"Link Discord Account":`Discord-account koppelen`,"Link Email Account":`E-mailaccount koppelen`,"Link External Wallet":`Externe wallet koppelen`,"Link Farcaster Account":`Farcaster-account koppelen`,"Link Github Account":`Github-account koppelen`,"Link Google Account":`Google-account koppelen`,"Link Instagram Account":`Instagram-account koppelen`,"Link LinkedIn Account":`LinkedIn-account koppelen`,"Link Phone Number":`Telefoonnummer koppelen`,"Link Spotify Account":`Spotify-account koppelen`,"Link Telegram Account":`Telegram-account koppelen`,"Link Tiktok Account":`Tiktok-account koppelen`,"Link Twitter Account":`Twitter-account koppelen`,LinkedIn:`LinkedIn`,"Loading quote...":`Offerte laden...`,"Loading your domains...":`Uw domeinen laden...`,"Loading...":`Laden...`,"Log in or sign up":`Inloggen of registreren`,"Logged in with":`Ingelogd met`,Login:`Inloggen`,"Login failed:":`Inloggen mislukt:`,"Login methods":`Inlogmethoden`,"Login methods and Passkeys":`Inlogmethoden en Passkeys`,Logout:`Uitloggen`,"Manage Custom Tokens":`Aangepaste tokens beheren`,"Manage MFA":`MFA beheren`,"Manage Recovery":`Herstel beheren`,"Manage on {{appName}}":`Beheren op {{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.":`Beheer uw beveiligingsinstellingen voor de ingebouwde wallet: beheer uw inlogmethoden, voeg een passkey toe of maak een back-up om nooit de toegang tot uw activa te verliezen.`,"Manage your login methods and passkeys":`Beheer uw inlogmethoden en passkeys`,"Manage your preferences for currency, language, and appearance.":`Beheer uw voorkeuren voor valuta, taal en uiterlijk.`,"Minimum {{symbol}} transfer is {{min}}":`Minimum {{symbol}}-overdracht is {{min}}`,More:`Meer`,"Multiclause Transactions Are Now Supported":`Multiclause-transacties worden nu ondersteund`,"Name must be at least 3 characters long":`Naam moet minstens 3 tekens lang zijn`,"Name your account to make it easier to exchange assets":`Geef uw account een naam om het uitwisselen van activa te vergemakkelijken`,Network:`Netwerk`,New:`Nieuw`,"New image selected":`Nieuwe afbeelding geselecteerd`,"No additional accounts available to link":`Geen extra accounts beschikbaar om te koppelen`,"No application from VeChain ecosystem is available to login.":`Geen applicatie uit het VeChain-ecosysteem beschikbaar om in te loggen.`,"No apps found in this category":`Geen apps gevonden in deze categorie`,"No archived notifications":`Geen gearchiveerde meldingen`,"No assets":`Geen activa`,"No notifications":`Geen meldingen`,"No policies accepted":`Geen beleid geaccepteerd`,"No questions found":`Geen vragen gevonden`,"No quotes available":`Geen offertes beschikbaar`,"No tokens found":`Geen tokens gevonden`,"Node URL":`Node-URL`,Notifications:`Meldingen`,"Only letters, numbers, and hyphens are allowed":`Alleen letters, cijfers en streepjes zijn toegestaan`,Optional:`Optioneel`,"Other Wallets":`Andere wallets`,"Other options":`Andere opties`,Passkey:`Passkey`,"Phone Number":`Telefoonnummer`,"Please approve the request in the connection request window...":`Keur het verzoek goed in het verbindingsverzoekvenster...`,"Please be sure to keep this wallet safe and backed up.":`Zorg ervoor dat u deze wallet veilig bewaart en een back-up maakt.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Controleer {{email}} op een e-mail van privy.io en voer uw code hieronder in.`,"Please complete the passkey authentication...":`Voltooi de passkey-authenticatie...`,"Please confirm the transaction in your wallet.":`Bevestig de transactie in uw wallet.`,"Please enter a valid Twitter handle without @":`Voer een geldig Twitter-handle in zonder @`,"Please enter a valid contract address":`Voer een geldig contractadres in`,"Please enter a valid email address":`Voer een geldig e-mailadres in`,"Please enter a valid number":`Voer een geldig nummer in`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Neem even de tijd om alle beleidsregels te bekijken, acceptatie is verplicht om door te gaan.`,Policy:`Beleid`,"Preparing changes...":`Wijzigingen voorbereiden...`,"Privacy Policy":`Privacybeleid`,"Privacy policy outlining the data collection and processing practices.":`Privacybeleid over de gegevensverzameling en verwerkingspraktijken.`,"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 bouwt gebruikers-onboarding en ingebouwde wallet-infrastructuur om betere producten mogelijk te maken op crypto-rails. Dit betekent het inbouwen van activabeheer in applicaties zelf, zodat gebruikers, bedrijven of machines digitale activa kunnen gebruiken via naadloze productervaringen.`,"Processing transaction...":`Transactie verwerken...`,Profile:`Profiel`,"Profile Image":`Profielafbeelding`,"Profile Picture":`Profielfoto`,"Profile Updated":`Profiel bijgewerkt`,"Read More":`Lees meer`,Receive:`Ontvangen`,"Receive tokens":`Tokens ontvangen`,"Reduced gas costs for operations":`Verlaagde gaskosten voor bewerkingen`,"Reject and logout":`Afwijzen en uitloggen`,Remove:`Verwijderen`,"Remove Login Method":`Inlogmethode verwijderen`,"Remove Wallet":`Wallet verwijderen`,"Remove from shortcuts":`Verwijderen uit snelkoppelingen`,"Remove wallet":`Wallet verwijderen`,"Remove your current domain name":`Verwijder uw huidige domeinnaam`,"Resend code":`Code opnieuw verzenden`,Retry:`Opnieuw proberen`,"Save Changes":`Wijzigingen opslaan`,"Saving changes...":`Wijzigingen opslaan...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Zeg vaarwel tegen 0x-adressen, claim nu gratis uw .veworld.vet-subdomein!`,"Search Apps":`Apps zoeken`,"Search FAQ":`FAQ doorzoeken`,"Security preferences":`Beveiligingsvoorkeuren`,"Security settings":`Beveiligingsinstellingen`,"Select Additional Login Method":`Selecteer extra inlogmethode`,"Select Token":`Token selecteren`,"Select Wallet":`Wallet selecteren`,"Select currency":`Valuta selecteren`,"Select language":`Taal selecteren`,"Select the token to pay the fee with":`Selecteer het token om de kosten mee te betalen`,"Select token":`Token selecteren`,Send:`Verzenden`,"Send all":`Alles verzenden`,"Sending Transaction...":`Transactie verzenden...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Verzenden naar OceanX of andere exchanges kan leiden tot verlies van fondsen.`,"Sending...":`Verzenden...`,"Set a domain first":`Stel eerst een domein in`,"Set up Passkey":`Passkey instellen`,"Set up a passkey for easier access":`Stel een passkey in voor eenvoudigere toegang`,Settings:`Instellingen`,"Share on":`Delen op`,Shortcuts:`Snelkoppelingen`,"Show Advanced Options":`Geavanceerde opties tonen`,"Show Less":`Minder tonen`,"Show More":`Meer tonen`,"Slippage tolerance":`Slippage-tolerantie`,"Smart Account":`Smart Account`,"Smart Account detected":`Smart Account gedetecteerd`,"Something went wrong":`Er is iets misgegaan`,"Something went wrong. Please try again.":`Er is iets misgegaan. Probeer het opnieuw.`,Source:`Bron`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Houd onze aankomende Activiteit-functie in de gaten`,"Stay tuned for our upcoming NFT feature":`Houd onze aankomende NFT-functie in de gaten`,Submit:`Verzenden`,Swap:`Ruilen`,"Swap all":`Alles ruilen`,"Swapping...":`Ruilen...`,Switch:`Wisselen`,"Account Changed":`Account gewijzigd`,Telegram:`Telegram`,"Terms and Conditions":`Algemene voorwaarden`,"Terms and Policies":`Voorwaarden en beleid`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Deze accounts zijn gekoppeld aan uw ingebouwde wallet en kunnen worden gebruikt om in te loggen en toegang te krijgen tot uw privésleutel.`,"This address only supports VeChain assets.":`Dit adres ondersteunt alleen VeChain-activa.`,"This domain is already taken":`Dit domein is al bezet`,"This domain is protected":`Dit domein is beschermd`,"This is taking longer than expected.":`Dit duurt langer dan verwacht.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Dit is uw hoofdwallet, aangemaakt door {{element}} en beveiligd door Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Deze wallet is de eigenaar van uw Smart Account, dat wordt gebruikt als uw identiteit en als toegang tot uw blockchain-interacties.`,Tiktok:`Tiktok`,To:`Naar`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`Om te blijven communiceren met de VeChain-blockchain en uw bewerking te voltooien, moet uw Smart Account worden geüpgraded naar de nieuwste versie (v3).`,"Token Contract Address":`Tokencontractadres`,"Token Priority Order":`Tokenprioriteitsvolgorde`,"Token already added":`Token al toegevoegd`,Tools:`Hulpmiddelen`,"Transaction failed":`Transactie mislukt`,"Transaction failed:":`Transactie mislukt:`,"Transaction is being processed, it can take up to 15 seconds.":`Transactie wordt verwerkt, dit kan tot 15 seconden duren.`,"Transaction successful":`Transactie geslaagd`,"Transaction successful!":`Transactie geslaagd!`,"Try again":`Opnieuw proberen`,"Try searching with a different term":`Probeer te zoeken met een andere term`,Twitter:`Twitter`,"Twitter username":`Twitter-gebruikersnaam`,"Type the receiver address or domain":`Typ het ontvangstadres of domein`,UNAVAILABLE:`NIET BESCHIKBAAR`,"Unable to fetch the price":`Kan de prijs niet ophalen`,"Unset current domain":`Huidig domein opheffen`,"Unsetting current domain...":`Huidig domein opheffen...`,"Upgrade Smart Account to V3":`Smart Account upgraden naar V3`,"Upgrade Successful!":`Upgrade geslaagd!`,"Upgrade account":`Account upgraden`,"Upgrading...":`Upgraden...`,"Use social login with VeChain":`Sociaal inloggen met VeChain`,"Use this token for future transactions":`Gebruik dit token voor toekomstige transacties`,"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 de primaire cryptocurrency van het VeChain-netwerk. Het vertegenwoordigt waarde en eigendom in het VeChain-ecosysteem, vergelijkbaar met hoe aandelen eigendom vertegenwoordigen in een bedrijf. Het aanhouden van VET genereert automatisch VTHO, dat nodig is om transacties op het netwerk te betalen.`,"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 het energie- of 'gas'-token van het VeChain-netwerk. Het wordt gebruikt om transactiekosten te betalen bij interactie met de blockchain. VTHO wordt automatisch gegenereerd door VET-tokens aan te houden, waardoor een twee-tokensysteem ontstaat dat helpt de netwerkstabiliteit te behouden en transactiekosten te beheren.`,"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 een gedecentraliseerde organisatie op de VeChain-blockchain gericht op duurzaamheid. Leden nemen deel aan het bestuur van de DAO met B3TR-tokens voor beloningen en VOT3 voor stemmen over voorstellen en wekelijkse tokenallocatierondes.`,"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, gevestigd in San Marino, Europa, is een baanbrekend blockchain-ecosysteem en maker van VeChainThor, een smart contract-platform van wereldklasse dat de adoptie van blockchain in de echte wereld stimuleert. Opgericht in 2015 door Sunny Lu, heeft VeChain consequent gewerkt aan een transparante, efficiënte, schaalbare en aanpasbare blockchain-oplossing.`,"VeWorld Wallet":`VeWorld-wallet`,"Vechain Kit Policy":`Vechain Kit-beleid`,"View Current Policy":`Huidig beleid bekijken`,"View on explorer":`Bekijken in explorer`,"View transaction on the explorer":`Transactie bekijken in explorer`,"Waiting for confirmation":`Wachten op bevestiging`,"Waiting for confirmation...":`Wachten op bevestiging...`,"Waiting wallet confirmation...":`Wachten op wallet-bevestiging...`,Wallet:`Wallet`,"Wallet secured by":`Wallet beveiligd door`,"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 raden sterk aan uw privésleutel te exporteren om een back-up te maken van uw wallet. Dit zorgt ervoor dat u deze kunt herstellen indien nodig of kunt overdragen naar zelfbeheer met`,Website:`Website`,"Website URL":`Website-URL`,"Website URL must start with https://":`Website-URL moet beginnen met https://`,"What is B3TR?":`Wat is B3TR?`,"What is Privy?":`Wat is Privy?`,"What is VET?":`Wat is VET?`,"What is VTHO?":`Wat is VTHO?`,"What is VeBetterDAO?":`Wat is VeBetterDAO?`,"What is VeChain?":`Wat is VeChain?`,"What is a Smart Account?":`Wat is een Smart Account?`,"What is a domain name?":`Wat is een domeinnaam?`,"What is a network?":`Wat is een netwerk?`,"What is a wallet?":`Wat is een wallet?`,"What is an x2earn application?":`Wat is een x2earn-applicatie?`,"What is fee delegation?":`Wat is fee-delegatie?`,"When you have accepted a policy, it will appear here":`Wanneer u een beleid heeft geaccepteerd, verschijnt het hier`,"When you have notifications, they will appear here":`Wanneer u meldingen heeft, verschijnen ze hier`,"YOU OWN THIS":`U BEZIT DIT`,"You accepted current policy on {{date}}":`U heeft het huidige beleid geaccepteerd op {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`U gebruikt een ingebouwde wallet beveiligd door uw sociale inlogmethode, voor een naadloze VeChain-ervaring.`,"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.":`U kunt tokens verzenden door op het verzendpictogram in het gedeelte Snelle acties te klikken. Voer het adres van de ontvanger of VeChain-domeinnaam in, selecteer het token en geef het bedrag op dat u wilt verzenden.`,"You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`U heeft geen gastokens ingeschakeld. Schakel ten minste één gastoken in bij Gas-tokenvoorkeuren.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`U heeft een actief Smart Account gekoppeld aan deze wallet. Het is ingesteld als uw hoofdidentiteit.`,"You may want to try establishing the connection again.":`U kunt proberen de verbinding opnieuw tot stand te brengen.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`U moet ten minste één token inschakelen om transacties uit te voeren. Zonder ingeschakelde tokens kunt u geen gaskosten betalen.`,"Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.":`Uw account is succesvol geüpgraded naar de nieuwste versie. U kunt nu genieten van een betere gebruikerservaring, lagere gaskosten en verbeterde beveiliging.`,"Your address has been successfully set to {{name}}":`Uw adres is succesvol ingesteld op {{name}}`,"Your changes have been saved successfully.":`Uw wijzigingen zijn succesvol opgeslagen.`,"Your domain has been unset successfully.":`Uw domein is succesvol opgeheven.`,"Your embedded wallet":`Uw ingebouwde wallet`,"Your existing domains":`Uw bestaande domeinen`,"Your smart account is already upgraded to this version.":`Uw Smart Account is al geüpgraded naar deze versie.`,"Your smart account needs to be upgraded to the latest version (v3).":`Uw Smart Account moet worden geüpgraded naar de nieuwste versie (v3).`,"Your tokens":`Uw 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.":`Uw walletbeveiliging hangt af van hoe u er toegang toe heeft. Met zelfbeheeropties zoals de VeWorld-extensie, mobiele app of hardware wallet, heeft u volledige controle over uw privésleutels. Deze extensie heeft zelf geen toegang tot uw privésleutels. Bij het inloggen met sociale accounts of VeChain wordt uw wallet aangemaakt en beveiligd door Privy en beheerd door VeChain, wat een eenvoudigere onboarding-ervaring biedt met behoud van beveiliging.`,collectibles:`Verzamelobjecten`,defi:`DeFi`,games:`Spellen`,here:`hier`,marketplaces:`Marktplaatsen`,rate:`koers`,"to learn more about embedded wallets.":`voor meer informatie over ingebouwde wallets.`,unavailable:`niet beschikbaar`,utilities:`Hulpprogramma's`,vebetter:`VeBetter`,"your@email.com":`your@email.com`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>Uw privacy is belangrijk.</bold> U heeft de controle, accepteer om optionele functies zoals cookies in te schakelen die ons helpen uw ervaring te verbeteren.`},oe={" and ":` 그리고 `,"'{{policyName}}' on connect":`연결 시 '{{policyName}}'`,"'{{policyName}}' on {{date}}":`{{date}}에 '{{policyName}}'`,"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.":`Smart Account는 향상된 보안과 기능을 제공하는 스마트 계약 지갑입니다. 소셜 복구, 거래 일괄 처리 등의 기능을 지원합니다.`,'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(개발자를 위한 테스트 환경). 연결된 네트워크는 이 대화 상자 상단에 표시됩니다.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Smart 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.":`지갑은 VeChain 블록체인의 관문입니다. 개인 키를 저장하고 디지털 자산을 안전하게 관리하며, 토큰을 보내고 받고, 탈중앙화 애플리케이션과 상호작용할 수 있습니다. 블록체인 거래를 위한 디지털 은행 계좌라고 생각하시면 됩니다.`,AVAILABLE:`사용 가능`,Accept:`수락`,"Accept all":`모두 수락`,"Accept selected":`선택 항목 수락`,"Access and security":`접근 및 보안`,"Account Upgrade Required":`계정 업그레이드 필요`,"Account already upgraded":`계정이 이미 업그레이드됨`,"Account upgrade required":`계정 업그레이드 필요`,Active:`활성`,"Active Wallet":`활성 지갑`,"Add Login Method":`로그인 방법 추가`,"Add New Wallet":`새 지갑 추가`,"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`,Apply:`적용`,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 remove this wallet?":`이 지갑을 삭제하시겠습니까?`,"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은 VechainThor 블록체인에 구축된 VeBetterDAO의 인센티브 토큰입니다. 총 공급량은 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 또는 다른 생태계 앱을 통해 연결된 경우 원래 웹사이트를 방문하여 로그인하고 지갑 섹션에 접근해야 합니다.`,Backup:`백업`,"Backup your wallet":`지갑 백업`,"Backup your wallet, configure MFA and set recovery options":`지갑을 백업하고 MFA를 구성하고 복구 옵션을 설정하세요`,Balance:`잔액`,"Benefits of this upgrade:":`이 업그레이드의 장점:`,Best:`최고`,"Better transaction handling":`향상된 거래 처리`,Bridge:`브리지`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`확인하면 이름({{domain}})에 첨부된 다음 세부정보가 업데이트됩니다`,"By confirming, your address will be set to {{domain}}":`확인하면 주소가 {{domain}}으로 설정됩니다`,"By confirming, your current domain will be unset":`확인하면 현재 도메인이 해제됩니다`,"By continuing, you agree to":`계속하면 다음에 동의합니다`,Cancel:`취소`,"Checking...":`확인 중...`,"Choose Name":`이름 선택`,"Choose a name for your account.":`계정 이름을 선택하세요.`,"Choose a unique .vet domain name for your account.":`계정의 고유한 .vet 도메인 이름을 선택하세요.`,"Choose account name":`계정 이름 선택`,"Choose name":`이름 선택`,"Choose which tokens to use for transaction fees when the app is not covering them.":`앱이 수수료를 부담하지 않을 때 거래 수수료에 사용할 토큰을 선택하세요.`,"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 policy outlining the use of cookies and tracking technologies.":`쿠키 및 추적 기술 사용을 설명하는 쿠키 정책.`,"Copied!":`복사됨!`,"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:`Discord`,"Display Name":`표시 이름`,"Display name must be less than 25 characters":`표시 이름은 25자 미만이어야 합니다`,"Domain set":`도메인 설정됨`,"Domain unset":`도메인 해제됨`,Done:`완료`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`드래그하여 순서를 변경하세요. 시스템은 충분한 잔액이 있는 가장 높은 우선순위 토큰을 자동으로 사용합니다.`,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":`기존 사용자 정의 토큰`,"Explore ecosystem":`생태계 탐색`,"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:`수수료`,"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를 선택하여 거래 비용을 충당할 수 있습니다.`,"Fee token":`수수료 토큰`,"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":`다음 환율을 찾았습니다`,"Frequently asked questions":`자주 묻는 질문`,From:`보내는 사람`,"Gas Token Preferences":`가스 토큰 환경설정`,"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:`도움말`,Hide:`숨기기`,"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 balance":`잔액 부족`,"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 transfer and cover gas fees.":`이 전송을 완료하고 가스 수수료를 충당하기에 잔액이 부족합니다.`,"Insufficient balance to update your profile and cover gas fees.":`프로필을 업데이트하고 가스 수수료를 충당하기에 잔액이 부족합니다.`,"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 quote...":`시세 로딩 중...`,"Loading your domains...":`도메인 로딩 중...`,"Loading...":`로딩 중...`,"Log in or sign up":`로그인 또는 가입`,"Logged in with":`로그인됨`,Login:`로그인`,"Login failed:":`로그인 실패:`,"Login methods":`로그인 방법`,"Login methods and Passkeys":`로그인 방법 및 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.":`내장 지갑 보안 설정을 관리하세요: 로그인 방법을 설정하고, passkey를 추가하거나 지갑을 백업하여 자산 접근 권한을 잃지 마세요.`,"Manage your login methods and passkeys":`로그인 방법 및 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 Wallets":`다른 지갑`,"Other options":`다른 옵션`,Passkey:`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...":`Passkey 인증을 완료하세요...`,"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":`더 보기`,Receive:`받기`,"Receive tokens":`토큰 받기`,"Reduced gas costs for operations":`운영 가스 비용 절감`,"Reject and logout":`거부 및 로그아웃`,Remove:`삭제`,"Remove Login Method":`로그인 방법 삭제`,"Remove Wallet":`지갑 삭제`,"Remove from shortcuts":`바로가기에서 삭제`,"Remove wallet":`지갑 삭제`,"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 Wallet":`지갑 선택`,"Select currency":`통화 선택`,"Select language":`언어 선택`,"Select the token to pay the fee with":`수수료를 지불할 토큰을 선택하세요`,"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":`Passkey 설정`,"Set up a passkey for easier access":`더 쉬운 접근을 위해 passkey를 설정하세요`,Settings:`설정`,"Share on":`공유`,Shortcuts:`바로가기`,"Show Advanced Options":`고급 옵션 표시`,"Show Less":`접기`,"Show More":`더 보기`,"Slippage tolerance":`슬리피지 허용 범위`,"Smart Account":`Smart Account`,"Smart Account detected":`Smart Account 감지됨`,"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...":`스왑 중...`,Switch:`전환`,"Account Changed":`계정 변경됨`,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.":`이 지갑은 Smart Account의 소유자이며, 신원 확인 및 블록체인 상호작용의 게이트웨이로 사용됩니다.`,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 블록체인과 계속 상호작용하고 작업을 완료하려면 Smart Account를 최신 버전(v3)으로 업그레이드해야 합니다.`,"Token Contract Address":`토큰 계약 주소`,"Token Priority Order":`토큰 우선순위 순서`,"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":`Smart Account를 V3로 업그레이드`,"Upgrade Successful!":`업그레이드 성공!`,"Upgrade account":`계정 업그레이드`,"Upgrading...":`업그레이드 중...`,"Use social login with VeChain":`VeChain으로 소셜 로그인`,"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는 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 토큰을 보유하면 자동으로 생성되며, 네트워크 안정성을 유지하고 거래 비용을 관리하는 이중 토큰 시스템을 구성합니다.`,"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 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은 선구적인 블록체인 생태계이자 실제 블록체인 채택을 추진하는 세계적 수준의 스마트 계약 플랫폼 VeChainThor의 창시자입니다. 2015년 Sunny Lu에 의해 설립된 VeChain은 투명하고 효율적이며 확장 가능하고 적응력 있는 블록체인 솔루션을 지속적으로 제공해 왔습니다.`,"VeWorld Wallet":`VeWorld 지갑`,"Vechain Kit Policy":`Vechain Kit 정책`,"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?":`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 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.":`이 지갑에 연결된 활성 Smart Account가 있습니다. 주요 신원으로 설정되었습니다.`,"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.":`거래를 수행하려면 최소 하나의 토큰을 활성화해야 합니다. 활성화된 토큰이 없으면 가스 수수료를 지불할 수 없습니다.`,"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.":`Smart Account가 이미 이 버전으로 업그레이드되었습니다.`,"Your smart account needs to be upgraded to the latest version (v3).":`Smart Account를 최신 버전(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:`수집품`,defi:`DeFi`,games:`게임`,here:`여기`,marketplaces:`마켓플레이스`,rate:`환율`,"to learn more about embedded wallets.":`내장 지갑에 대해 자세히 알아보세요.`,unavailable:`사용 불가`,utilities:`유틸리티`,vebetter:`VeBetter`,"your@email.com":`your@email.com`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>개인정보는 중요합니다.</bold> 당신이 통제합니다. 쿠키와 같은 선택적 기능을 활성화하려면 수락하세요.`},se={" and ":` och `,"'{{policyName}}' on connect":`'{{policyName}}' vid anslutning`,"'{{policyName}}' on {{date}}":`'{{policyName}}' den {{date}}`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`En .vet-domän krävs för att anpassa din profil. Välj ett kontonamn för att komma igång.`,"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.":`Ett Smart Account är en smart contract-plånbok som ger förbättrad säkerhet och funktionalitet. Det möjliggör funktioner som social återställning, transaktionsbuntning och mer.`,'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".':`Ett domännamn är en sorts smeknamn för din plånboksadress. Det gör att du enkelt kan identifiera din plånbok och interagera med dApps med ett läsbart namn. Till exempel, om din plånboksadress är 0x1234567890, kan ditt smeknamn vara "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.":`Ett nätverk i blockchain avser miljön där transaktioner äger rum. VeChain har två huvudnätverk: Mainnet (det aktiva nätverket där riktiga transaktioner sker) och Testnet (en testmiljö för utvecklare). Nätverket du är ansluten till visas högst upp i denna dialog.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`En ny uppgradering är tillgänglig för ditt Smart Account. Gå till avsnittet 'Åtkomst och säkerhet' för att uppgradera.`,"A new version is available for your account":`En ny version är tillgänglig för ditt konto`,"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.":`En plånbok är din ingång till VeChain-blockkedjan. Den lagrar dina privata nycklar och låter dig säkert hantera dina digitala tillgångar, skicka och ta emot tokens och interagera med decentraliserade applikationer.`,AVAILABLE:`TILLGÄNGLIG`,Accept:`Acceptera`,"Accept all":`Acceptera alla`,"Accept selected":`Acceptera valda`,"Access and security":`Åtkomst och säkerhet`,"Account Upgrade Required":`Kontouppgradering krävs`,"Account already upgraded":`Kontot är redan uppgraderat`,"Account upgrade required":`Kontouppgradering krävs`,Active:`Aktiv`,"Active Wallet":`Aktiv plånbok`,"Add Login Method":`Lägg till inloggningsmetod`,"Add New Wallet":`Lägg till ny plånbok`,"Add Token":`Lägg till token`,"Add to shortcuts":`Lägg till i genvägar`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Att lägga till fler länkade konton ökar säkerheten mot åtkomstförlust, men introducerar också ytterligare potentiella attackvektorer. För ökad säkerhet rekommenderar vi att aktivera MFA.`,"Address is required":`Adress krävs`,All:`Alla`,"All apps":`Alla appar`,"All policies you have accepted":`Alla policyer du har accepterat`,"All tokens":`Alla tokens`,"Already have an x2earn app wallet?":`Har du redan en x2earn-appplånbok?`,Amount:`Belopp`,"Amount is required":`Belopp krävs`,"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.":`En X2Earn-applikation i VeBetterDAO är en hållbar app som belönar användare med B3TR-tokens för miljövänliga åtgärder.`,"An unexpected error occurred.":`Ett oväntat fel uppstod.`,Apple:`Apple`,Apply:`Tillämpa`,Archived:`Arkiverade`,"Archived Notifications":`Arkiverade aviseringar`,"Are you sure you want to disconnect your wallet?":`Är du säker på att du vill koppla från din plånbok?`,"Are you sure you want to reject the policies and disconnect?":`Är du säker på att du vill avvisa policyerna och koppla från?`,"Are you sure you want to remove this wallet?":`Är du säker på att du vill ta bort denna plånbok?`,"Are you sure you want to set your domain name to":`Är du säker på att du vill ställa in ditt domännamn till`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`Är du säker på att du vill koppla bort {{accountType}} som inloggningsmetod kopplad till {{accountDescription}}?`,"Are you sure you want to unset your current domain?":`Är du säker på att du vill ta bort din nuvarande domän?`,Assets:`Tillgångar`,At:`Vid`,"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 är incitamentstoken för VeBetterDAO, byggt på VechainThor-blockkedjan. Det har ett tak på 1 miljard tokens, som emitteras veckovis under 12 år.`,"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.":`Att säkerhetskopiera din plånbok är avgörande eftersom du är den enda med tillgång till dina privata nycklar. Om något går fel är din privata nyckel det enda sättet att återställa dina tillgångar.`,Backup:`Säkerhetskopia`,"Backup your wallet":`Säkerhetskopiera din plånbok`,"Backup your wallet, configure MFA and set recovery options":`Säkerhetskopiera plånboken, konfigurera MFA och ställ in återställningsalternativ`,Balance:`Saldo`,"Benefits of this upgrade:":`Fördelar med denna uppgradering:`,Best:`Bäst`,"Better transaction handling":`Bättre transaktionshantering`,Bridge:`Brygga`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`Genom att bekräfta kommer följande uppgifter kopplade till ditt namn ({{domain}}) att uppdateras`,"By confirming, your address will be set to {{domain}}":`Genom att bekräfta ställs din adress in på {{domain}}`,"By confirming, your current domain will be unset":`Genom att bekräfta tas din nuvarande domän bort`,"By continuing, you agree to":`Genom att fortsätta godkänner du`,Cancel:`Avbryt`,"Checking...":`Kontrollerar...`,"Choose Name":`Välj namn`,"Choose a name for your account.":`Välj ett namn för ditt konto.`,"Choose a unique .vet domain name for your account.":`Välj ett unikt .vet-domännamn för ditt konto.`,"Choose account name":`Välj kontonamn`,"Choose name":`Välj namn`,"Choose which tokens to use for transaction fees when the app is not covering them.":`Välj vilka tokens som ska användas för transaktionsavgifter när appen inte täcker dem.`,"Choose your account name":`Välj ditt kontonamn`,"Claim your vet domain!":`Hämta din vet-domän!`,"Claiming name...":`Hämtar namn...`,"Clear all":`Rensa alla`,"Cleared notifications will appear here":`Rensade aviseringar visas här`,Click:`Klicka`,"Click below to access {{ name }} and explore its features.":`Klicka nedan för att komma åt {{ name }} och utforska dess funktioner.`,Close:`Stäng`,"Close and do this later":`Stäng och gör detta senare`,"Close announcement":`Stäng meddelande`,"Coming Soon!":`Kommer snart!`,"Coming soon":`Kommer snart`,Confirm:`Bekräfta`,"Confirm Changes":`Bekräfta ändringar`,"Confirm Name":`Bekräfta namn`,"Confirm Unset Domain":`Bekräfta borttagning av domän`,"Confirm the transaction in your wallet to complete it.":`Bekräfta transaktionen i din plånbok för att slutföra den.`,"Confirm transaction":`Bekräfta transaktion`,"Connect an external wallet for easier access":`Anslut en extern plånbok för enklare åtkomst`,"Connect wallet":`Anslut plånbok`,"Connect with VeWorld wallet":`Anslut med VeWorld-plånbok`,"Connect your Apple account for easier access":`Anslut ditt Apple-konto för enklare åtkomst`,"Connect your Discord account for easier access":`Anslut ditt Discord-konto för enklare åtkomst`,"Connect your Farcaster account for easier access":`Anslut ditt Farcaster-konto för enklare åtkomst`,"Connect your Github account for easier access":`Anslut ditt Github-konto för enklare åtkomst`,"Connect your Google account for easier access":`Anslut ditt Google-konto för enklare åtkomst`,"Connect your Instagram account for easier access":`Anslut ditt Instagram-konto för enklare åtkomst`,"Connect your LinkedIn account for easier access":`Anslut ditt LinkedIn-konto för enklare åtkomst`,"Connect your Spotify account for easier access":`Anslut ditt Spotify-konto för enklare åtkomst`,"Connect your Telegram account for easier access":`Anslut ditt Telegram-konto för enklare åtkomst`,"Connect your Tiktok account for easier access":`Anslut ditt Tiktok-konto för enklare åtkomst`,"Connect your Twitter account for easier access":`Anslut ditt Twitter-konto för enklare åtkomst`,"Connect your email for easier access":`Anslut din e-post för enklare åtkomst`,"Connect your phone number for easier access":`Anslut ditt telefonnummer för enklare åtkomst`,"Connecting to VeChain":`Ansluter till VeChain`,"Connecting with":`Ansluter med`,"Connecting with Passkey":`Ansluter med Passkey`,"Connecting...":`Ansluter...`,"Connection Details":`Anslutningsdetaljer`,"Connection Failed":`Anslutning misslyckades`,"Connection Type":`Anslutningstyp`,"Connection details":`Anslutningsdetaljer`,Continue:`Fortsätt`,"Continue with Github":`Fortsätt med Github`,"Continue with Google":`Fortsätt med Google`,"Cookie Policy":`Cookiepolicy`,"Cookie policy outlining the use of cookies and tracking technologies.":`Cookiepolicy som beskriver användningen av cookies och spårningsteknologier.`,"Copied!":`Kopierat!`,"Copy your address or scan this QR code":`Kopiera din adress eller skanna denna QR-kod`,Currency:`Valuta`,Current:`Nuvarande`,"Current domain":`Nuvarande domän`,Customization:`Anpassning`,Customize:`Anpassa`,"Customize profile":`Anpassa profil`,"Customize the appearance of your wallet.":`Anpassa utseendet på din plånbok.`,Description:`Beskrivning`,"Description must be less than 100 characters":`Beskrivningen måste vara mindre än 100 tecken`,"Didn't get an email?":`Fick du inget e-postmeddelande?`,Discord:`Discord`,"Display Name":`Visningsnamn`,"Display name must be less than 25 characters":`Visningsnamnet måste vara mindre än 25 tecken`,"Domain set":`Domän inställd`,"Domain unset":`Domän borttagen`,Done:`Klar`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Dra för att ändra ordning. Systemet använder automatiskt den högst prioriterade token med tillräckligt saldo.`,Ecosystem:`Ekosystem`,"Eg: DevRel @ ENS Labs":`T.ex: DevRel @ ENS Labs`,Email:`E-post`,"Email address":`E-postadress`,"Embedded wallet":`Inbäddad plånbok`,"Enhanced compatibility with dApps":`Förbättrad kompatibilitet med dApps`,"Enter confirmation code":`Ange bekräftelsekod`,"Enter your display name":`Ange ditt visningsnamn`,"Enter your name":`Ange ditt namn`,"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.":`Byt dina digitala tillgångar mellan VeChain och andra blockkedjenätverk enkelt och säkert.`,"Existing Custom Tokens":`Befintliga anpassade tokens`,"Explore ecosystem":`Utforska ekosystemet`,"Failed to connect with Passkey":`Anslutning med Passkey misslyckades`,"Failed to connect with VeChain":`Anslutning med VeChain misslyckades`,"Failed to connect with ecosystem app":`Anslutning med ekosystemapp misslyckades`,"Failed to load App Hub apps":`Kunde inte ladda App Hub-appar`,Farcaster:`Farcaster`,Fee:`Avgift`,"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.":`Avgiftsdelegering är en unik funktion i VeChain som gör att någon annan (en delegator) kan betala dina transaktionsavgifter.`,"Fee token":`Avgiftstoken`,"Filter by category":`Filtrera efter kategori`,"Finally say goodbye to 0x addresses":`Säg äntligen adjö till 0x-adresser`,"For developers":`För utvecklare`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Av säkerhetsskäl kan du hantera dina inbäddade plånboksinställningar endast på {{appName}}-plattformen.`,"Found following rates":`Hittade följande kurser`,"Frequently asked questions":`Vanliga frågor`,From:`Från`,"Gas Token Preferences":`Gastokeninställningar`,"Gas fee":`Gasavgift`,General:`Allmänt`,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.":`Goda nyheter! Multiklausultransaktioner stöds nu fullt ut för smarta konton.`,Google:`Google`,Help:`Hjälp`,Hide:`Dölj`,"How do I backup my wallet?":`Hur säkerhetskopierar jag min plånbok?`,"How do I send tokens?":`Hur skickar jag tokens?`,"How is my wallet secured?":`Hur är min plånbok säkrad?`,"I have read and agree to ":`Jag har läst och godkänner `,"Ignore and continue":`Ignorera och fortsätt`,"Improved security features":`Förbättrade säkerhetsfunktioner`,Instagram:`Instagram`,"Insufficient balance":`Otillräckligt saldo`,"Insufficient balance to claim this domain and cover gas fees.":`Otillräckligt saldo för att hämta denna domän och täcka gasavgifter.`,"Insufficient balance to complete this transaction and cover gas fees.":`Otillräckligt saldo för att slutföra denna transaktion och täcka gasavgifter.`,"Insufficient balance to complete this transfer and cover gas fees.":`Otillräckligt saldo för att slutföra denna överföring och täcka gasavgifter.`,"Insufficient balance to update your profile and cover gas fees.":`Otillräckligt saldo för att uppdatera din profil och täcka gasavgifter.`,"Insufficient {{symbol}} balance":`Otillräckligt {{symbol}}-saldo`,"Invalid address or domain":`Ogiltig adress eller domän`,"Invalid contract address":`Ogiltig kontraktsadress`,"Invalid token address":`Ogiltig tokenadress`,Language:`Språk`,"Launch vechain.energy":`Öppna vechain.energy`,"Launch {{name}}":`Öppna {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Juridiskt avtal mellan dig, Vechain Kit och den aktuella appen, som beskriver reglerna för användning av plånbokstjänster.`,"Link Apple Account":`Koppla Apple-konto`,"Link Discord Account":`Koppla Discord-konto`,"Link Email Account":`Koppla e-postkonto`,"Link External Wallet":`Koppla extern plånbok`,"Link Farcaster Account":`Koppla Farcaster-konto`,"Link Github Account":`Koppla Github-konto`,"Link Google Account":`Koppla Google-konto`,"Link Instagram Account":`Koppla Instagram-konto`,"Link LinkedIn Account":`Koppla LinkedIn-konto`,"Link Phone Number":`Koppla telefonnummer`,"Link Spotify Account":`Koppla Spotify-konto`,"Link Telegram Account":`Koppla Telegram-konto`,"Link Tiktok Account":`Koppla Tiktok-konto`,"Link Twitter Account":`Koppla Twitter-konto`,LinkedIn:`LinkedIn`,"Loading quote...":`Laddar offert...`,"Loading your domains...":`Laddar dina domäner...`,"Loading...":`Laddar...`,"Log in or sign up":`Logga in eller registrera dig`,"Logged in with":`Inloggad med`,Login:`Logga in`,"Login failed:":`Inloggning misslyckades:`,"Login methods":`Inloggningsmetoder`,"Login methods and Passkeys":`Inloggningsmetoder och Passkeys`,Logout:`Logga ut`,"Manage Custom Tokens":`Hantera anpassade tokens`,"Manage MFA":`Hantera MFA`,"Manage Recovery":`Hantera återställning`,"Manage on {{appName}}":`Hantera på {{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.":`Hantera säkerhetsinställningarna för din inbäddade plånbok: hantera inloggningsmetoder, lägg till en passkey eller säkerhetskopiera för att aldrig förlora åtkomst till dina tillgångar.`,"Manage your login methods and passkeys":`Hantera dina inloggningsmetoder och passkeys`,"Manage your preferences for currency, language, and appearance.":`Hantera dina inställningar för valuta, språk och utseende.`,"Minimum {{symbol}} transfer is {{min}}":`Minsta {{symbol}}-överföring är {{min}}`,More:`Mer`,"Multiclause Transactions Are Now Supported":`Multiklausultransaktioner stöds nu`,"Name must be at least 3 characters long":`Namnet måste vara minst 3 tecken långt`,"Name your account to make it easier to exchange assets":`Namnge ditt konto för att underlätta tillgångsutbyte`,Network:`Nätverk`,New:`Ny`,"New image selected":`Ny bild vald`,"No additional accounts available to link":`Inga ytterligare konton tillgängliga att koppla`,"No application from VeChain ecosystem is available to login.":`Ingen applikation från VeChain-ekosystemet är tillgänglig för inloggning.`,"No apps found in this category":`Inga appar hittades i denna kategori`,"No archived notifications":`Inga arkiverade aviseringar`,"No assets":`Inga tillgångar`,"No notifications":`Inga aviseringar`,"No policies accepted":`Inga policyer accepterade`,"No questions found":`Inga frågor hittades`,"No quotes available":`Inga offerter tillgängliga`,"No tokens found":`Inga tokens hittades`,"Node URL":`Nod-URL`,Notifications:`Aviseringar`,"Only letters, numbers, and hyphens are allowed":`Endast bokstäver, siffror och bindestreck är tillåtna`,Optional:`Valfritt`,"Other Wallets":`Andra plånböcker`,"Other options":`Andra alternativ`,Passkey:`Passkey`,"Phone Number":`Telefonnummer`,"Please approve the request in the connection request window...":`Godkänn begäran i anslutningsfönstret...`,"Please be sure to keep this wallet safe and backed up.":`Se till att hålla denna plånbok säker och säkerhetskopierad.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Kontrollera {{email}} för ett e-postmeddelande från privy.io och ange din kod nedan.`,"Please complete the passkey authentication...":`Slutför passkey-autentiseringen...`,"Please confirm the transaction in your wallet.":`Bekräfta transaktionen i din plånbok.`,"Please enter a valid Twitter handle without @":`Ange ett giltigt Twitter-handtag utan @`,"Please enter a valid contract address":`Ange en giltig kontraktsadress`,"Please enter a valid email address":`Ange en giltig e-postadress`,"Please enter a valid number":`Ange ett giltigt nummer`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Ta en stund att granska alla policyer, godkännande är obligatoriskt för att fortsätta.`,Policy:`Policy`,"Preparing changes...":`Förbereder ändringar...`,"Privacy Policy":`Integritetspolicy`,"Privacy policy outlining the data collection and processing practices.":`Integritetspolicy som beskriver datainsamlings- och bearbetningsmetoder.`,"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 bygger användar-onboarding och inbäddad plånboksinfrastruktur för att möjliggöra bättre produkter byggda på kryptoinfrastruktur.`,"Processing transaction...":`Bearbetar transaktion...`,Profile:`Profil`,"Profile Image":`Profilbild`,"Profile Picture":`Profilbild`,"Profile Updated":`Profil uppdaterad`,"Read More":`Läs mer`,Receive:`Ta emot`,"Receive tokens":`Ta emot tokens`,"Reduced gas costs for operations":`Minskade gaskostnader för operationer`,"Reject and logout":`Avvisa och logga ut`,Remove:`Ta bort`,"Remove Login Method":`Ta bort inloggningsmetod`,"Remove Wallet":`Ta bort plånbok`,"Remove from shortcuts":`Ta bort från genvägar`,"Remove wallet":`Ta bort plånbok`,"Remove your current domain name":`Ta bort ditt nuvarande domännamn`,"Resend code":`Skicka kod igen`,Retry:`Försök igen`,"Save Changes":`Spara ändringar`,"Saving changes...":`Sparar ändringar...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Säg adjö till 0x-adresser, hämta din .veworld.vet-subdomän gratis nu!`,"Search Apps":`Sök appar`,"Search FAQ":`Sök i FAQ`,"Security preferences":`Säkerhetsinställningar`,"Security settings":`Säkerhetsinställningar`,"Select Additional Login Method":`Välj ytterligare inloggningsmetod`,"Select Token":`Välj token`,"Select Wallet":`Välj plånbok`,"Select currency":`Välj valuta`,"Select language":`Välj språk`,"Select the token to pay the fee with":`Välj token för att betala avgiften`,"Select token":`Välj token`,Send:`Skicka`,"Send all":`Skicka alla`,"Sending Transaction...":`Skickar transaktion...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Att skicka till OceanX eller andra börser kan leda till förlust av medel.`,"Sending...":`Skickar...`,"Set a domain first":`Ställ in en domän först`,"Set up Passkey":`Konfigurera Passkey`,"Set up a passkey for easier access":`Konfigurera en passkey för enklare åtkomst`,Settings:`Inställningar`,"Share on":`Dela på`,Shortcuts:`Genvägar`,"Show Advanced Options":`Visa avancerade alternativ`,"Show Less":`Visa mindre`,"Show More":`Visa mer`,"Slippage tolerance":`Slippage-tolerans`,"Smart Account":`Smart Account`,"Smart Account detected":`Smart Account upptäckt`,"Something went wrong":`Något gick fel`,"Something went wrong. Please try again.":`Något gick fel. Försök igen.`,Source:`Källa`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Håll utkik efter vår kommande Aktivitetsfunktion`,"Stay tuned for our upcoming NFT feature":`Håll utkik efter vår kommande NFT-funktion`,Submit:`Skicka`,Swap:`Byt`,"Swap all":`Byt alla`,"Swapping...":`Byter...`,Switch:`Växla`,"Account Changed":`Konto ändrat`,Telegram:`Telegram`,"Terms and Conditions":`Villkor`,"Terms and Policies":`Villkor och policyer`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Dessa konton är kopplade till din inbäddade plånbok och kan användas för att logga in och komma åt din privata nyckel.`,"This address only supports VeChain assets.":`Denna adress stöder bara VeChain-tillgångar.`,"This domain is already taken":`Denna domän är redan tagen`,"This domain is protected":`Denna domän är skyddad`,"This is taking longer than expected.":`Det tar längre tid än förväntat.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Detta är din huvudplånbok, skapad av {{element}} och säkrad av Privy.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Denna plånbok är ägare till ditt Smart Account, som används som din identitet och gateway för dina blockkedjeinteraktioner.`,Tiktok:`Tiktok`,To:`Till`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`För att fortsätta interagera med VeChain-blockkedjan och slutföra din operation behöver ditt Smart Account uppgraderas till senaste versionen (v3).`,"Token Contract Address":`Tokenkontraktsadress`,"Token Priority Order":`Tokenprioriteringsordning`,"Token already added":`Token redan tillagd`,Tools:`Verktyg`,"Transaction failed":`Transaktion misslyckades`,"Transaction failed:":`Transaktion misslyckades:`,"Transaction is being processed, it can take up to 15 seconds.":`Transaktionen bearbetas, det kan ta upp till 15 sekunder.`,"Transaction successful":`Transaktion lyckades`,"Transaction successful!":`Transaktion lyckades!`,"Try again":`Försök igen`,"Try searching with a different term":`Försök söka med en annan term`,Twitter:`Twitter`,"Twitter username":`Twitter-användarnamn`,"Type the receiver address or domain":`Skriv mottagaradress eller domän`,UNAVAILABLE:`EJ TILLGÄNGLIG`,"Unable to fetch the price":`Kunde inte hämta priset`,"Unset current domain":`Ta bort nuvarande domän`,"Unsetting current domain...":`Tar bort nuvarande domän...`,"Upgrade Smart Account to V3":`Uppgradera Smart Account till V3`,"Upgrade Successful!":`Uppgradering lyckades!`,"Upgrade account":`Uppgradera konto`,"Upgrading...":`Uppgraderar...`,"Use social login with VeChain":`Social inloggning med VeChain`,"Use this token for future transactions":`Använd denna token för framtida transaktioner`,"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 är den primära kryptovalutan i VeChain-nätverket. Den representerar värde och ägande i VeChain-ekosystemet.`,"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) är energi- eller 'gas'-token i VeChain-nätverket.`,"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 är en decentraliserad organisation på VeChain-blockkedjan fokuserad på hållbarhet.`,"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, med huvudkontor i San Marino, Europa, är ett banbrytande blockkedjeekosystem och skapare av VeChainThor.`,"VeWorld Wallet":`VeWorld-plånbok`,"Vechain Kit Policy":`Vechain Kit-policy`,"View Current Policy":`Visa nuvarande policy`,"View on explorer":`Visa i utforskaren`,"View transaction on the explorer":`Visa transaktion i utforskaren`,"Waiting for confirmation":`Väntar på bekräftelse`,"Waiting for confirmation...":`Väntar på bekräftelse...`,"Waiting wallet confirmation...":`Väntar på plånboksbekräftelse...`,Wallet:`Plånbok`,"Wallet secured by":`Plånbok säkrad av`,"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":`Vi rekommenderar starkt att exportera din privata nyckel för att säkerhetskopiera din plånbok. Detta säkerställer att du kan återställa den vid behov eller överföra den till egenförvaring med`,Website:`Webbplats`,"Website URL":`Webbplats-URL`,"Website URL must start with https://":`Webbplats-URL måste börja med https://`,"What is B3TR?":`Vad är B3TR?`,"What is Privy?":`Vad är Privy?`,"What is VET?":`Vad är VET?`,"What is VTHO?":`Vad är VTHO?`,"What is VeBetterDAO?":`Vad är VeBetterDAO?`,"What is VeChain?":`Vad är VeChain?`,"What is a Smart Account?":`Vad är ett Smart Account?`,"What is a domain name?":`Vad är ett domännamn?`,"What is a network?":`Vad är ett nätverk?`,"What is a wallet?":`Vad är en plånbok?`,"What is an x2earn application?":`Vad är en x2earn-applikation?`,"What is fee delegation?":`Vad är avgiftsdelegering?`,"When you have accepted a policy, it will appear here":`När du har accepterat en policy visas den här`,"When you have notifications, they will appear here":`När du har aviseringar visas de här`,"YOU OWN THIS":`DU ÄGER DETTA`,"You accepted current policy on {{date}}":`Du accepterade nuvarande policy den {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Du använder en inbäddad plånbok säkrad av din sociala inloggningsmetod, vilket säkerställer en sömlös VeChain-upplevelse.`,"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.":`Du kan skicka tokens genom att klicka på skicka-ikonen i avsnittet Snabbåtgärder.`,"You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`Du har inga gastokens aktiverade. Aktivera minst en gastoken i Gastokeninställningar.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Du har ett aktivt Smart Account kopplat till denna plånbok. Det har ställts in som din huvudidentitet.`,"You may want to try establishing the connection again.":`Du kanske vill försöka upprätta anslutningen igen.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`Du måste aktivera minst en token för att utföra transaktioner.`,"Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.":`Ditt konto har uppgraderats till senaste versionen.`,"Your address has been successfully set to {{name}}":`Din adress har ställts in på {{name}}`,"Your changes have been saved successfully.":`Dina ändringar har sparats.`,"Your domain has been unset successfully.":`Din domän har tagits bort.`,"Your embedded wallet":`Din inbäddade plånbok`,"Your existing domains":`Dina befintliga domäner`,"Your smart account is already upgraded to this version.":`Ditt Smart Account är redan uppgraderat till denna version.`,"Your smart account needs to be upgraded to the latest version (v3).":`Ditt Smart Account behöver uppgraderas till senaste versionen (v3).`,"Your tokens":`Dina 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.":`Din plånbokssäkerhet beror på hur du kommer åt den.`,collectibles:`Samlarobjekt`,defi:`DeFi`,games:`Spel`,here:`här`,marketplaces:`Marknadsplatser`,rate:`kurs`,"to learn more about embedded wallets.":`för att lära dig mer om inbäddade plånböcker.`,unavailable:`ej tillgänglig`,utilities:`Verktyg`,vebetter:`VeBetter`,"your@email.com":`your@email.com`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>Din integritet är viktig.</bold> Du har kontrollen, acceptera för att aktivera valfria funktioner som cookies som hjälper oss förbättra din upplevelse.`},ce={" and ":` ve `,"'{{policyName}}' on connect":`'{{policyName}}' bağlanırken`,"'{{policyName}}' on {{date}}":`'{{policyName}}' {{date}} tarihinde`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Profilinizi özelleştirmek için .vet alan adı gereklidir. Başlamak için bir hesap adı seçin.`,"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.":`Smart Account, gelişmiş güvenlik ve işlevsellik sağlayan bir akıllı sözleşme cüzdanıdır. Sosyal kurtarma, işlem gruplandırma ve daha fazlası gibi özelliklere olanak tanır.`,'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".':`Alan adı, cüzdan adresiniz için bir tür takma addır. Cüzdanınızı kolayca tanımlamanıza ve dApps ile insan tarafından okunabilir bir ad kullanarak etkileşime girmenize olanak tanır. Örneğin, cüzdan adresiniz 0x1234567890 ise, takma adınız "alice.vechain" olabilir.`,"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.":`Blockchain'de ağ, işlemlerin gerçekleştiği ortamı ifade eder. VeChain'in iki ana ağı vardır: Mainnet (gerçek işlemlerin gerçekleştiği canlı ağ) ve Testnet (geliştiriciler için test ortamı). Bağlı olduğunuz ağ bu pencerenin üstünde gösterilir.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Smart Account'ınız için yeni bir güncelleme mevcut. Lütfen yükseltmek için 'Erişim ve Güvenlik' bölümüne gidin.`,"A new version is available for your account":`Hesabınız için yeni bir sürüm mevcut`,"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.":`Cüzdan, VeChain blockchain'ine açılan kapınızdır. Özel anahtarlarınızı saklar ve dijital varlıklarınızı güvenli bir şekilde yönetmenize, token gönderip almanıza ve merkezi olmayan uygulamalarla etkileşime girmenize olanak tanır. Blockchain işlemleri için dijital banka hesabınız olarak düşünün.`,AVAILABLE:`MEVCUT`,Accept:`Kabul Et`,"Accept all":`Tümünü kabul et`,"Accept selected":`Seçilenleri kabul et`,"Access and security":`Erişim ve güvenlik`,"Account Upgrade Required":`Hesap Yükseltmesi Gerekli`,"Account already upgraded":`Hesap zaten yükseltildi`,"Account upgrade required":`Hesap yükseltmesi gerekli`,Active:`Aktif`,"Active Wallet":`Aktif Cüzdan`,"Add Login Method":`Giriş Yöntemi Ekle`,"Add New Wallet":`Yeni Cüzdan Ekle`,"Add Token":`Token Ekle`,"Add to shortcuts":`Kısayollara ekle`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Daha fazla bağlı hesap eklemek, erişim kaybına karşı güvenliği artırır ancak ek potansiyel saldırı vektörleri de getirir. Gelişmiş güvenlik için MFA etkinleştirmenizi öneririz.`,"Address is required":`Adres gerekli`,All:`Tümü`,"All apps":`Tüm uygulamalar`,"All policies you have accepted":`Kabul ettiğiniz tüm politikalar`,"All tokens":`Tüm tokenler`,"Already have an x2earn app wallet?":`Zaten bir x2earn uygulama cüzdanınız var mı?`,Amount:`Miktar`,"Amount is required":`Miktar gerekli`,"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'da bir X2Earn uygulaması, çevre dostu eylemler için kullanıcıları B3TR tokenleri ile ödüllendiren sürdürülebilir bir uygulamadır. Bu uygulamalar B3TR dağıtmalı, kullanıcı cüzdanlarını bağlamalı ve sürdürülebilir eylemlerin kanıtını sağlamalıdır. Onay yoluyla VeBetterDAO'ya katılırlar ve haftalık token tahsis turlarına katılırlar.`,"An unexpected error occurred.":`Beklenmeyen bir hata oluştu.`,Apple:`Apple`,Apply:`Uygula`,Archived:`Arşivlendi`,"Archived Notifications":`Arşivlenen Bildirimler`,"Are you sure you want to disconnect your wallet?":`Cüzdanınızı bağlantısını kesmek istediğinizden emin misiniz?`,"Are you sure you want to reject the policies and disconnect?":`Politikaları reddedip bağlantıyı kesmek istediğinizden emin misiniz?`,"Are you sure you want to remove this wallet?":`Bu cüzdanı kaldırmak istediğinizden emin misiniz?`,"Are you sure you want to set your domain name to":`Alan adınızı şu şekilde ayarlamak istediğinizden emin misiniz`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`{{accountDescription}} ile bağlı giriş yöntemi olarak {{accountType}} bağlantısını kaldırmak istediğinizden emin misiniz?`,"Are you sure you want to unset your current domain?":`Mevcut alan adınızı kaldırmak istediğinizden emin misiniz?`,Assets:`Varlıklar`,At:`Tarihinde`,"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, VechainThor blockchain üzerinde inşa edilmiş VeBetterDAO'nun teşvik tokenidir. 12 yıl boyunca haftalık olarak dağıtılan 1 milyar token ile sınırlı bir arzı vardır. B3TR ödüller, yönetişim ve VOT3 tokenlerini 1:1 desteklemek için kullanılır. Sürdürülebilirlik uygulamalarını ve DAO hazine yönetimini destekler.`,"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.":`Cüzdanınızı yedeklemek çok önemlidir çünkü özel anahtarlarınıza erişimi olan tek kişi sizsiniz. Bir şeyler ters giderse, özel anahtarınız varlıklarınızı kurtarmanın tek yoludur. Yedekleme, cüzdanınıza nasıl eriştiğinize bağlıdır: VeWorld kullanıyorsanız, yedekleme seçeneği uygulama içinde mevcuttur. Sosyal giriş kullanıcıları için Cüzdan bölümünde yedekleme seçeneklerini bulabilirsiniz. VeChain veya başka bir ekosistem uygulaması üzerinden bağlıysanız, orijinal web sitesini ziyaret etmeniz, giriş yapmanız ve Cüzdan bölümüne oradan erişmeniz gerekir.`,Backup:`Yedekle`,"Backup your wallet":`Cüzdanınızı yedekleyin`,"Backup your wallet, configure MFA and set recovery options":`Cüzdanınızı yedekleyin, MFA yapılandırın ve kurtarma seçeneklerini ayarlayın`,Balance:`Bakiye`,"Benefits of this upgrade:":`Bu yükseltmenin faydaları:`,Best:`En iyi`,"Better transaction handling":`Daha iyi işlem yönetimi`,Bridge:`Köprü`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`Onaylayarak, adınıza ({{domain}}) bağlı aşağıdaki detaylar güncellenecektir`,"By confirming, your address will be set to {{domain}}":`Onaylayarak, adresiniz {{domain}} olarak ayarlanacaktır`,"By confirming, your current domain will be unset":`Onaylayarak, mevcut alan adınız kaldırılacaktır`,"By continuing, you agree to":`Devam ederek, aşağıdakileri kabul etmiş olursunuz`,Cancel:`İptal`,"Checking...":`Kontrol ediliyor...`,"Choose Name":`İsim Seç`,"Choose a name for your account.":`Hesabınız için bir isim seçin.`,"Choose a unique .vet domain name for your account.":`Hesabınız için benzersiz bir .vet alan adı seçin.`,"Choose account name":`Hesap adı seç`,"Choose name":`İsim seç`,"Choose which tokens to use for transaction fees when the app is not covering them.":`Uygulama karşılamadığında işlem ücretleri için hangi tokenlerin kullanılacağını seçin.`,"Choose your account name":`Hesap adınızı seçin`,"Claim your vet domain!":`Vet alan adınızı talep edin!`,"Claiming name...":`İsim talep ediliyor...`,"Clear all":`Tümünü temizle`,"Cleared notifications will appear here":`Temizlenen bildirimler burada görünecek`,Click:`Tıklayın`,"Click below to access {{ name }} and explore its features.":`{{ name }} erişmek ve özelliklerini keşfetmek için aşağıya tıklayın.`,Close:`Kapat`,"Close and do this later":`Kapat ve daha sonra yap`,"Close announcement":`Duyuruyu kapat`,"Coming Soon!":`Yakında!`,"Coming soon":`Yakında`,Confirm:`Onayla`,"Confirm Changes":`Değişiklikleri Onayla`,"Confirm Name":`İsmi Onayla`,"Confirm Unset Domain":`Alan Adını Kaldırmayı Onayla`,"Confirm the transaction in your wallet to complete it.":`Tamamlamak için işlemi cüzdanınızda onaylayın.`,"Confirm transaction":`İşlemi onayla`,"Connect an external wallet for easier access":`Daha kolay erişim için harici bir cüzdan bağlayın`,"Connect wallet":`Cüzdan bağla`,"Connect with VeWorld wallet":`VeWorld cüzdanı ile bağlan`,"Connect your Apple account for easier access":`Daha kolay erişim için Apple hesabınızı bağlayın`,"Connect your Discord account for easier access":`Daha kolay erişim için Discord hesabınızı bağlayın`,"Connect your Farcaster account for easier access":`Daha kolay erişim için Farcaster hesabınızı bağlayın`,"Connect your Github account for easier access":`Daha kolay erişim için Github hesabınızı bağlayın`,"Connect your Google account for easier access":`Daha kolay erişim için Google hesabınızı bağlayın`,"Connect your Instagram account for easier access":`Daha kolay erişim için Instagram hesabınızı bağlayın`,"Connect your LinkedIn account for easier access":`Daha kolay erişim için LinkedIn hesabınızı bağlayın`,"Connect your Spotify account for easier access":`Daha kolay erişim için Spotify hesabınızı bağlayın`,"Connect your Telegram account for easier access":`Daha kolay erişim için Telegram hesabınızı bağlayın`,"Connect your Tiktok account for easier access":`Daha kolay erişim için Tiktok hesabınızı bağlayın`,"Connect your Twitter account for easier access":`Daha kolay erişim için Twitter hesabınızı bağlayın`,"Connect your email for easier access":`Daha kolay erişim için e-postanızı bağlayın`,"Connect your phone number for easier access":`Daha kolay erişim için telefon numaranızı bağlayın`,"Connecting to VeChain":`VeChain'e bağlanılıyor`,"Connecting with":`Şununla bağlanılıyor`,"Connecting with Passkey":`Passkey ile bağlanılıyor`,"Connecting...":`Bağlanılıyor...`,"Connection Details":`Bağlantı Detayları`,"Connection Failed":`Bağlantı Başarısız`,"Connection Type":`Bağlantı Türü`,"Connection details":`Bağlantı detayları`,Continue:`Devam Et`,"Continue with Github":`Github ile devam et`,"Continue with Google":`Google ile devam et`,"Cookie Policy":`Çerez Politikası`,"Cookie policy outlining the use of cookies and tracking technologies.":`Çerezlerin ve izleme teknolojilerinin kullanımını özetleyen çerez politikası.`,"Copied!":`Kopyalandı!`,"Copy your address or scan this QR code":`Adresinizi kopyalayın veya bu QR kodunu tarayın`,Currency:`Para birimi`,Current:`Mevcut`,"Current domain":`Mevcut alan adı`,Customization:`Özelleştirme`,Customize:`Özelleştir`,"Customize profile":`Profili özelleştir`,"Customize the appearance of your wallet.":`Cüzdanınızın görünümünü özelleştirin.`,Description:`Açıklama`,"Description must be less than 100 characters":`Açıklama 100 karakterden az olmalıdır`,"Didn't get an email?":`E-posta almadınız mı?`,Discord:`Discord`,"Display Name":`Görünen Ad`,"Display name must be less than 25 characters":`Görünen ad 25 karakterden az olmalıdır`,"Domain set":`Alan adı ayarlandı`,"Domain unset":`Alan adı kaldırıldı`,Done:`Tamam`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Yeniden sıralamak için sürükleyin. Sistem otomatik olarak yeterli bakiyesi olan en yüksek öncelikli tokeni kullanacaktır.`,Ecosystem:`Ekosistem`,"Eg: DevRel @ ENS Labs":`Örn: DevRel @ ENS Labs`,Email:`E-posta`,"Email address":`E-posta adresi`,"Embedded wallet":`Gömülü cüzdan`,"Enhanced compatibility with dApps":`dApps ile gelişmiş uyumluluk`,"Enter confirmation code":`Onay kodunu girin`,"Enter your display name":`Görünen adınızı girin`,"Enter your name":`Adınızı girin`,"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.":`Dijital varlıklarınızı VeChain ve diğer blockchain ağları arasında kolay ve güvenli bir şekilde değiştirin. Takaslar, tokenleri dönüştürmek için hem merkezi olmayan hem de merkezi borsaları kullanan ortaklar aracılığıyla gerçekleştirilir.`,"Existing Custom Tokens":`Mevcut Özel Tokenler`,"Explore ecosystem":`Ekosistemi keşfet`,"Failed to connect with Passkey":`Passkey ile bağlantı başarısız`,"Failed to connect with VeChain":`VeChain ile bağlantı başarısız`,"Failed to connect with ecosystem app":`Ekosistem uygulaması ile bağlantı başarısız`,"Failed to load App Hub apps":`App Hub uygulamaları yüklenemedi`,Farcaster:`Farcaster`,Fee:`Ücret`,"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.":`Ücret delegasyonu, başka birinin (delegatör) işlem ücretlerinizi ödemesine olanak tanıyan VeChain'in benzersiz bir özelliğidir. Birçok dApp ve hizmet sağlayıcı yeni kullanıcıların başlamasını kolaylaştırmak için delegatör olarak hareket ederken, bazı işlemler hala kendi VTHO'nuzu kullanarak ücret ödemenizi gerektirebilir. Ücretler, ağ spam'ını önlemek ve blockchain'deki işlemleri işleyen ve doğrulayan düğümleri tazmin etmek için gereklidir. Ücretleri kendiniz ödediğinizde, işlem maliyetini karşılamak için varlıklarınızdan VTHO seçebileceksiniz.`,"Fee token":`Ücret tokeni`,"Filter by category":`Kategoriye göre filtrele`,"Finally say goodbye to 0x addresses":`0x adreslerine sonunda veda edin`,"For developers":`Geliştiriciler için`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Güvenlik nedenleriyle, gömülü cüzdan ayarlarınızı yalnızca {{appName}} platformunda yönetebilirsiniz.`,"Found following rates":`Aşağıdaki oranlar bulundu`,"Frequently asked questions":`Sık sorulan sorular`,From:`Gönderen`,"Gas Token Preferences":`Gaz Token Tercihleri`,"Gas fee":`Gaz ücreti`,General:`Genel`,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.":`İyi haber! Smart Account'lar için çok maddeli işlemler artık tam destekleniyor. Artık daha iyi kullanıcı deneyimi, daha düşük gaz maliyetleri ve gelişmiş güvenliğin keyfini çıkarabilirsiniz.`,Google:`Google`,Help:`Yardım`,Hide:`Gizle`,"How do I backup my wallet?":`Cüzdanımı nasıl yedeklerim?`,"How do I send tokens?":`Token nasıl gönderirim?`,"How is my wallet secured?":`Cüzdanım nasıl güvence altına alınır?`,"I have read and agree to ":`Okudum ve kabul ediyorum `,"Ignore and continue":`Yoksay ve devam et`,"Improved security features":`Geliştirilmiş güvenlik özellikleri`,Instagram:`Instagram`,"Insufficient balance":`Yetersiz bakiye`,"Insufficient balance to claim this domain and cover gas fees.":`Bu alan adını talep etmek ve gaz ücretlerini karşılamak için yetersiz bakiye.`,"Insufficient balance to complete this transaction and cover gas fees.":`Bu işlemi tamamlamak ve gaz ücretlerini karşılamak için yetersiz bakiye.`,"Insufficient balance to complete this transfer and cover gas fees.":`Bu transferi tamamlamak ve gaz ücretlerini karşılamak için yetersiz bakiye.`,"Insufficient balance to update your profile and cover gas fees.":`Profilinizi güncellemek ve gaz ücretlerini karşılamak için yetersiz bakiye.`,"Insufficient {{symbol}} balance":`Yetersiz {{symbol}} bakiyesi`,"Invalid address or domain":`Geçersiz adres veya alan adı`,"Invalid contract address":`Geçersiz sözleşme adresi`,"Invalid token address":`Geçersiz token adresi`,Language:`Dil`,"Launch vechain.energy":`vechain.energy'yi başlat`,"Launch {{name}}":`{{name}} başlat`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Siz, Vechain Kit ve mevcut uygulama arasında cüzdan hizmetlerini kullanma kurallarını özetleyen yasal sözleşme.`,"Link Apple Account":`Apple Hesabını Bağla`,"Link Discord Account":`Discord Hesabını Bağla`,"Link Email Account":`E-posta Hesabını Bağla`,"Link External Wallet":`Harici Cüzdan Bağla`,"Link Farcaster Account":`Farcaster Hesabını Bağla`,"Link Github Account":`Github Hesabını Bağla`,"Link Google Account":`Google Hesabını Bağla`,"Link Instagram Account":`Instagram Hesabını Bağla`,"Link LinkedIn Account":`LinkedIn Hesabını Bağla`,"Link Phone Number":`Telefon Numarasını Bağla`,"Link Spotify Account":`Spotify Hesabını Bağla`,"Link Telegram Account":`Telegram Hesabını Bağla`,"Link Tiktok Account":`Tiktok Hesabını Bağla`,"Link Twitter Account":`Twitter Hesabını Bağla`,LinkedIn:`LinkedIn`,"Loading quote...":`Teklif yükleniyor...`,"Loading your domains...":`Alan adlarınız yükleniyor...`,"Loading...":`Yükleniyor...`,"Log in or sign up":`Giriş yap veya kayıt ol`,"Logged in with":`Şununla giriş yapıldı`,Login:`Giriş`,"Login failed:":`Giriş başarısız:`,"Login methods":`Giriş yöntemleri`,"Login methods and Passkeys":`Giriş yöntemleri ve Passkey'ler`,Logout:`Çıkış`,"Manage Custom Tokens":`Özel Tokenleri Yönet`,"Manage MFA":`MFA Yönet`,"Manage Recovery":`Kurtarmayı Yönet`,"Manage on {{appName}}":`{{appName}} üzerinde yönet`,"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ömülü cüzdan güvenlik ayarlarınızı yönetin: giriş yöntemlerinizi yönetin, passkey ekleyin veya varlıklarınıza erişimi asla kaybetmemek için cüzdanınızı yedekleyin.`,"Manage your login methods and passkeys":`Giriş yöntemlerinizi ve passkey'lerinizi yönetin`,"Manage your preferences for currency, language, and appearance.":`Para birimi, dil ve görünüm tercihlerinizi yönetin.`,"Minimum {{symbol}} transfer is {{min}}":`Minimum {{symbol}} transferi {{min}}`,More:`Daha fazla`,"Multiclause Transactions Are Now Supported":`Çok Maddeli İşlemler Artık Destekleniyor`,"Name must be at least 3 characters long":`İsim en az 3 karakter uzunluğunda olmalıdır`,"Name your account to make it easier to exchange assets":`Varlık değişimini kolaylaştırmak için hesabınıza isim verin`,Network:`Ağ`,New:`Yeni`,"New image selected":`Yeni resim seçildi`,"No additional accounts available to link":`Bağlanacak ek hesap mevcut değil`,"No application from VeChain ecosystem is available to login.":`Giriş yapmak için VeChain ekosisteminden uygulama mevcut değil.`,"No apps found in this category":`Bu kategoride uygulama bulunamadı`,"No archived notifications":`Arşivlenmiş bildirim yok`,"No assets":`Varlık yok`,"No notifications":`Bildirim yok`,"No policies accepted":`Kabul edilen politika yok`,"No questions found":`Soru bulunamadı`,"No quotes available":`Teklif mevcut değil`,"No tokens found":`Token bulunamadı`,"Node URL":`Node URL`,Notifications:`Bildirimler`,"Only letters, numbers, and hyphens are allowed":`Yalnızca harfler, rakamlar ve tirelere izin verilir`,Optional:`İsteğe bağlı`,"Other Wallets":`Diğer Cüzdanlar`,"Other options":`Diğer seçenekler`,Passkey:`Passkey`,"Phone Number":`Telefon Numarası`,"Please approve the request in the connection request window...":`Lütfen bağlantı isteği penceresindeki isteği onaylayın...`,"Please be sure to keep this wallet safe and backed up.":`Lütfen bu cüzdanı güvende tuttuğunuzdan ve yedeklediğinizden emin olun.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Lütfen privy.io'dan gelen e-postayı {{email}} adresinde kontrol edin ve kodunuzu aşağıya girin.`,"Please complete the passkey authentication...":`Lütfen passkey kimlik doğrulamasını tamamlayın...`,"Please confirm the transaction in your wallet.":`Lütfen işlemi cüzdanınızda onaylayın.`,"Please enter a valid Twitter handle without @":`Lütfen @ olmadan geçerli bir Twitter kullanıcı adı girin`,"Please enter a valid contract address":`Lütfen geçerli bir sözleşme adresi girin`,"Please enter a valid email address":`Lütfen geçerli bir e-posta adresi girin`,"Please enter a valid number":`Lütfen geçerli bir sayı girin`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Devam etmek için kabul zorunlu olduğundan, lütfen tüm politikaları incelemek için bir dakikanızı ayırın.`,Policy:`Politika`,"Preparing changes...":`Değişiklikler hazırlanıyor...`,"Privacy Policy":`Gizlilik Politikası`,"Privacy policy outlining the data collection and processing practices.":`Veri toplama ve işleme uygulamalarını özetleyen gizlilik politikası.`,"Privy Status":`Privy Durumu`,"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, kripto altyapısı üzerine inşa edilmiş daha iyi ürünleri etkinleştirmek için kullanıcı katılımı ve gömülü cüzdan altyapısı oluşturur. Bu, kullanıcıların, işletmelerin veya makinelerin sorunsuz ürün deneyimleri aracılığıyla dijital varlıkları kullanmasını sağlamak için varlık kontrolünü uygulamaların kendisine gömülü hale getirmek anlamına gelir.`,"Processing transaction...":`İşlem işleniyor...`,Profile:`Profil`,"Profile Image":`Profil Resmi`,"Profile Picture":`Profil Fotoğrafı`,"Profile Updated":`Profil Güncellendi`,"Read More":`Devamını Oku`,Receive:`Al`,"Receive tokens":`Token al`,"Reduced gas costs for operations":`İşlemler için düşürülmüş gaz maliyetleri`,"Reject and logout":`Reddet ve çıkış yap`,Remove:`Kaldır`,"Remove Login Method":`Giriş Yöntemini Kaldır`,"Remove Wallet":`Cüzdanı Kaldır`,"Remove from shortcuts":`Kısayollardan kaldır`,"Remove wallet":`Cüzdanı kaldır`,"Remove your current domain name":`Mevcut alan adınızı kaldırın`,"Resend code":`Kodu tekrar gönder`,Retry:`Tekrar deneyin`,"Save Changes":`Değişiklikleri Kaydet`,"Saving changes...":`Değişiklikler kaydediliyor...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`0x adreslerine veda edin, .veworld.vet alt alan adınızı şimdi ücretsiz talep edin!`,"Search Apps":`Uygulama Ara`,"Search FAQ":`SSS Ara`,"Security preferences":`Güvenlik tercihleri`,"Security settings":`Güvenlik ayarları`,"Select Additional Login Method":`Ek Giriş Yöntemi Seç`,"Select Token":`Token Seç`,"Select Wallet":`Cüzdan Seç`,"Select currency":`Para birimi seç`,"Select language":`Dil seç`,"Select the token to pay the fee with":`Ücreti ödemek için tokeni seçin`,"Select token":`Token seç`,Send:`Gönder`,"Send all":`Tümünü gönder`,"Sending Transaction...":`İşlem Gönderiliyor...`,"Sending to OceanX or other exchanges may result in loss of funds.":`OceanX veya diğer borsalara göndermek fon kaybına neden olabilir.`,"Sending...":`Gönderiliyor...`,"Set a domain first":`Önce bir alan adı ayarlayın`,"Set up Passkey":`Passkey Kur`,"Set up a passkey for easier access":`Daha kolay erişim için passkey kurun`,Settings:`Ayarlar`,"Share on":`Şununla paylaş`,Shortcuts:`Kısayollar`,"Show Advanced Options":`Gelişmiş Seçenekleri Göster`,"Show Less":`Daha Az Göster`,"Show More":`Daha Fazla Göster`,"Slippage tolerance":`Kayma toleransı`,"Smart Account":`Smart Account`,"Smart Account detected":`Smart Account tespit edildi`,"Something went wrong":`Bir şeyler yanlış gitti`,"Something went wrong. Please try again.":`Bir şeyler yanlış gitti. Lütfen tekrar deneyin.`,Source:`Kaynak`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Yaklaşan Etkinlik özelliğimiz için bizi takip edin`,"Stay tuned for our upcoming NFT feature":`Yaklaşan NFT özelliğimiz için bizi takip edin`,Submit:`Gönder`,Swap:`Takas`,"Swap all":`Tümünü takas et`,"Swapping...":`Takas ediliyor...`,Switch:`Değiştir`,"Account Changed":`Hesap Değişti`,Telegram:`Telegram`,"Terms and Conditions":`Şartlar ve Koşullar`,"Terms and Policies":`Şartlar ve Politikalar`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Bu hesaplar gömülü cüzdanınıza bağlıdır ve cüzdanınıza giriş yapmak ve özel anahtarınıza erişmek için kullanılabilir.`,"This address only supports VeChain assets.":`Bu adres yalnızca VeChain varlıklarını destekler.`,"This domain is already taken":`Bu alan adı zaten alınmış`,"This domain is protected":`Bu alan adı korunuyor`,"This is taking longer than expected.":`Bu beklenenden daha uzun sürüyor.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Bu, {{element}} tarafından oluşturulan ve Privy tarafından güvence altına alınan ana cüzdanınızdır.`,"This wallet is the owner of your smart account, which is used as your identity and as a gateway for your blockchain interactions.":`Bu cüzdan, kimliğiniz ve blockchain etkileşimleriniz için bir geçit olarak kullanılan Smart Account'ınızın sahibidir.`,Tiktok:`Tiktok`,To:`Alıcı`,"To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).":`VeChain blockchain ile etkileşime devam etmek ve işleminizi tamamlamak için Smart Account'ınızın en son sürüme (v3) yükseltilmesi gerekiyor.`,"Token Contract Address":`Token Sözleşme Adresi`,"Token Priority Order":`Token Öncelik Sırası`,"Token already added":`Token zaten eklendi`,Tools:`Araçlar`,"Transaction failed":`İşlem başarısız`,"Transaction failed:":`İşlem başarısız:`,"Transaction is being processed, it can take up to 15 seconds.":`İşlem işleniyor, 15 saniyeye kadar sürebilir.`,"Transaction successful":`İşlem başarılı`,"Transaction successful!":`İşlem başarılı!`,"Try again":`Tekrar deneyin`,"Try searching with a different term":`Farklı bir terimle aramayı deneyin`,Twitter:`Twitter`,"Twitter username":`Twitter kullanıcı adı`,"Type the receiver address or domain":`Alıcı adresini veya alan adını yazın`,UNAVAILABLE:`MEVCUT DEĞİL`,"Unable to fetch the price":`Fiyat alınamadı`,"Unset current domain":`Mevcut alan adını kaldır`,"Unsetting current domain...":`Mevcut alan adı kaldırılıyor...`,"Upgrade Smart Account to V3":`Smart Account'ı V3'e Yükselt`,"Upgrade Successful!":`Yükseltme Başarılı!`,"Upgrade account":`Hesabı yükselt`,"Upgrading...":`Yükseltiliyor...`,"Use social login with VeChain":`VeChain ile sosyal giriş kullan`,"Use this token for future transactions":`Gelecek işlemler için bu tokeni kullan`,"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 ağının birincil kripto para birimidir. VeChain ekosisteminde değeri ve sahipliği temsil eder, tıpkı hisse senetlerinin bir şirketteki sahipliği temsil etmesi gibi. VET tutmak, ağdaki işlemleri ödemek için gereken VTHO'yu otomatik olarak üretir.`,"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 ağının enerji veya 'gaz' tokenidir. Blockchain ile etkileşimde işlem ücretlerini ödemek için kullanılır. VTHO, VET tokenleri tutarak otomatik olarak üretilir ve ağ istikrarını korumaya ve işlem maliyetlerini yönetmeye yardımcı olan iki tokenli bir sistem oluşturur.`,"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 blockchain üzerinde sürdürülebilirliğe odaklanan merkezi olmayan bir organizasyondur. Üyeler, ödüller için B3TR tokenleri ve önerilerde oy kullanmak ve haftalık token tahsis turları için VOT3 kullanarak DAO yönetişimine katılır.`,"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.":`Avrupa'daki San Marino merkezli VeChain, gerçek dünya blockchain benimsemesini yönlendiren dünya standartlarında bir akıllı sözleşme platformu olan VeChainThor'un öncü blockchain ekosistemi ve yaratıcısıdır. 2015 yılında Sunny Lu tarafından kurulan VeChain, şeffaf, verimli, ölçeklenebilir ve uyarlanabilir bir blockchain çözümü sunmak için tutarlı bir şekilde çalışmıştır.`,"VeWorld Wallet":`VeWorld Wallet`,"Vechain Kit Policy":`Vechain Kit Politikası`,"View Current Policy":`Mevcut Politikayı Görüntüle`,"View on explorer":`Explorer'da görüntüle`,"View transaction on the explorer":`İşlemi explorer'da görüntüle`,"Waiting for confirmation":`Onay bekleniyor`,"Waiting for confirmation...":`Onay bekleniyor...`,"Waiting wallet confirmation...":`Cüzdan onayı bekleniyor...`,Wallet:`Cüzdan`,"Wallet secured by":`Cüzdan şununla güvence altında`,"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":`Cüzdanınızı yedeklemek için özel anahtarınızı dışa aktarmanızı şiddetle tavsiye ederiz. Bu, gerekirse geri yükleyebilmenizi veya self-custody'ye aktarabilmenizi sağlar`,Website:`Web sitesi`,"Website URL":`Web sitesi URL`,"Website URL must start with https://":`Web sitesi URL'si https:// ile başlamalıdır`,"What is B3TR?":`B3TR nedir?`,"What is Privy?":`Privy nedir?`,"What is VET?":`VET nedir?`,"What is VTHO?":`VTHO nedir?`,"What is VeBetterDAO?":`VeBetterDAO nedir?`,"What is VeChain?":`VeChain nedir?`,"What is a Smart Account?":`Smart Account nedir?`,"What is a domain name?":`Alan adı nedir?`,"What is a network?":`Ağ nedir?`,"What is a wallet?":`Cüzdan nedir?`,"What is an x2earn application?":`x2earn uygulaması nedir?`,"What is fee delegation?":`Ücret delegasyonu nedir?`,"When you have accepted a policy, it will appear here":`Bir politikayı kabul ettiğinizde burada görünecektir`,"When you have notifications, they will appear here":`Bildirimleriniz olduğunda burada görünecektir`,"YOU OWN THIS":`BU SİZİN`,"You accepted current policy on {{date}}":`Mevcut politikayı {{date}} tarihinde kabul ettiniz`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Sorunsuz bir VeChain deneyimi sağlayan sosyal giriş yönteminizle güvence altına alınmış bir Gömülü Cüzdan kullanıyorsunuz.`,"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.":`Hızlı İşlemler bölümündeki gönder simgesine tıklayarak token gönderebilirsiniz. Alıcının adresini veya VeChain alan adını girin, tokeni seçin ve göndermek istediğiniz miktarı belirtin.`,"You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`Etkinleştirilmiş gaz tokeniniz yok. Lütfen Gaz Token Tercihlerinde en az bir gaz tokeni etkinleştirin.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Bu cüzdanla ilişkili aktif bir Smart Account'ınız var. Ana kimliğiniz olarak ayarlandı.`,"You may want to try establishing the connection again.":`Bağlantıyı tekrar kurmayı denemek isteyebilirsiniz.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`İşlem gerçekleştirmek için en az bir token etkinleştirmeniz gerekir. Etkinleştirilmiş token olmadan gaz ücretlerini ödeyemezsiniz.`,"Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.":`Hesabınız başarıyla en son sürüme yükseltildi. Artık daha iyi kullanıcı deneyimi, daha düşük gaz maliyetleri ve gelişmiş güvenliğin keyfini çıkarabilirsiniz.`,"Your address has been successfully set to {{name}}":`Adresiniz başarıyla {{name}} olarak ayarlandı`,"Your changes have been saved successfully.":`Değişiklikleriniz başarıyla kaydedildi.`,"Your domain has been unset successfully.":`Alan adınız başarıyla kaldırıldı.`,"Your embedded wallet":`Gömülü cüzdanınız`,"Your existing domains":`Mevcut alan adlarınız`,"Your smart account is already upgraded to this version.":`Smart Account'ınız zaten bu sürüme yükseltildi.`,"Your smart account needs to be upgraded to the latest version (v3).":`Smart Account'ınızın en son sürüme (v3) yükseltilmesi gerekiyor.`,"Your tokens":`Tokenleriniz`,"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.":`Cüzdan güvenliğiniz ona nasıl eriştiğinize bağlıdır. VeWorld uzantısı, mobil uygulama veya donanım cüzdanı gibi self-custody seçenekleriyle özel anahtarlarınız üzerinde tam kontrolünüz vardır. Bu uzantının kendisi özel anahtarlarınıza erişimi yoktur. Sosyal hesaplar veya VeChain ile giriş yaptığınızda, cüzdanınız Privy tarafından oluşturulur ve güvence altına alınır, VeChain tarafından yönetilir ve güvenliği korurken daha kolay bir katılım deneyimi sunar.`,collectibles:`Koleksiyonlar`,defi:`DeFi`,games:`Oyunlar`,here:`burada`,marketplaces:`Pazarlar`,rate:`oran`,"to learn more about embedded wallets.":`gömülü cüzdanlar hakkında daha fazla bilgi edinmek için.`,unavailable:`mevcut değil`,utilities:`Yardımcı programlar`,vebetter:`VeBetter`,"your@email.com":`your@email.com`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>Gizliliğiniz önemlidir.</bold> Kontrol sizde, deneyiminizi geliştirmemize yardımcı olan çerezler gibi isteğe bağlı özellikleri etkinleştirmek için kabul edin.`},le={" 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 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.":`Smart Account एक स्मार्ट कॉन्ट्रैक्ट वॉलेट है जो बेहतर सुरक्षा और कार्यक्षमता प्रदान करता है। इसमें सोशल रिकवरी, ट्रांजैक्शन बैचिंग आदि सुविधाएँ हैं।`,'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.":`blockchain में नेटवर्क उस वातावरण को संदर्भित करता है जहाँ लेनदेन होते हैं। VeChain के दो मुख्य नेटवर्क हैं: Mainnet (जीवंत नेटवर्क जहाँ वास्तविक लेनदेन होते हैं) और Testnet (डेवलपर्स के लिए परीक्षण वातावरण)। आप जिस नेटवर्क से जुड़े हैं वह इस मोडल के शीर्ष पर दिखाया गया है।`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`आपके Smart Account के लिए एक नया अपग्रेड उपलब्ध है। इसे अपग्रेड करने के लिए कृपया 'Access and Security' अनुभाग में जाएँ।`,"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 blockchain तक आपका प्रवेश द्वार है। यह आपकी निजी कुंजियाँ संग्रहीत करता है और आपको डिजिटल संपत्ति सुरक्षित रूप से प्रबंधित करने, टोकन भेजने और प्राप्त करने और विकेंद्रीकृत एप्लिकेशन के साथ इंटरैक्ट करने देता है। इसे blockchain लेनदेन के लिए अपने डिजिटल बैंक खाते के रूप में सोचें।`,AVAILABLE:`उपलब्ध`,Accept:`स्वीकार करें`,"Accept all":`सभी स्वीकार करें`,"Accept selected":`चयनित स्वीकार करें`,"Access and security":`पहुँच और सुरक्षा`,"Account Upgrade Required":`खाता अपग्रेड आवश्यक`,"Account already upgraded":`खाता पहले से अपग्रेड हो चुका है`,"Account upgrade required":`खाता अपग्रेड आवश्यक`,Active:`सक्रिय`,"Active Wallet":`सक्रिय वॉलेट`,"Add Login Method":`लॉगिन विधि जोड़ें`,"Add New Wallet":`नया वॉलेट जोड़ें`,"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`,Apply:`लागू करें`,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 remove this wallet?":`क्या आप वाकई इस वॉलेट को हटाना चाहते हैं?`,"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 blockchain पर निर्मित। इसमें 12 वर्षों में साप्ताहिक रूप से उत्सर्जित 1 अरब टोकन की सीमित आपूर्ति है। 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 उपयोग कर रहे हैं तो ऐप के भीतर बैकअप विकल्प उपलब्ध है। सोशल लॉगिन उपयोगकर्ताओं के लिए, आप Wallet अनुभाग में बैकअप विकल्प पा सकते हैं। यदि आप VeChain या किसी अन्य इकोसिस्टम ऐप के माध्यम से जुड़े हैं, तो आपको मूल वेबसाइट पर जाना, लॉग इन करना और वहाँ से Wallet अनुभाग तक पहुँचना होगा।`,Backup:`बैकअप`,"Backup your wallet":`अपने वॉलेट का बैकअप लें`,"Backup your wallet, configure MFA and set recovery options":`अपने वॉलेट का बैकअप लें, MFA कॉन्फ़िगर करें और रिकवरी विकल्प सेट करें`,Balance:`बैलेंस`,"Benefits of this upgrade:":`इस अपग्रेड के लाभ:`,Best:`सर्वश्रेष्ठ`,"Better transaction handling":`बेहतर लेनदेन प्रबंधन`,Bridge:`ब्रिज`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`पुष्टि करने पर, आपके नाम ({{domain}}) से जुड़े निम्नलिखित विवरण अपडेट होंगे`,"By confirming, your address will be set to {{domain}}":`पुष्टि करने पर, आपका पता {{domain}} पर सेट हो जाएगा`,"By confirming, your current domain will be unset":`पुष्टि करने पर, आपका वर्तमान डोमेन अनसेट हो जाएगा`,"By continuing, you agree to":`जारी रखकर, आप सहमत हैं`,Cancel:`रद्द करें`,"Checking...":`जाँच हो रही है...`,"Choose Name":`नाम चुनें`,"Choose a name for your account.":`अपने खाते के लिए एक नाम चुनें।`,"Choose a unique .vet domain name for your account.":`अपने खाते के लिए एक अद्वितीय .vet डोमेन नाम चुनें।`,"Choose account name":`खाता नाम चुनें`,"Choose name":`नाम चुनें`,"Choose which tokens to use for transaction fees when the app is not covering them.":`उन टोकन को चुनें जिनका उपयोग लेनदेन शुल्क के लिए करना है जब ऐप उन्हें कवर नहीं कर रहा है।`,"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 policy outlining the use of cookies and tracking technologies.":`कुकीज़ और ट्रैकिंग तकनीकों के उपयोग की रूपरेखा वाली कुकी नीति।`,"Copied!":`कॉपी हो गया!`,"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:`Discord`,"Display Name":`प्रदर्शन नाम`,"Display name must be less than 25 characters":`प्रदर्शन नाम 25 अक्षरों से कम होना चाहिए`,"Domain set":`डोमेन सेट हो गया`,"Domain unset":`डोमेन अनसेट हो गया`,Done:`हो गया`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`पुनः क्रमित करने के लिए खींचें। सिस्टम स्वचालित रूप से पर्याप्त बैलेंस वाले उच्चतम प्राथमिकता वाले टोकन का उपयोग करेगा।`,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 और अन्य blockchain नेटवर्क के बीच अपनी डिजिटल संपत्ति को आसानी से और सुरक्षित रूप से एक्सचेंज करें। स्वैप पार्टनरों के माध्यम से निष्पादित किए जाते हैं जो टोकन बदलने के लिए विकेंद्रीकृत और केंद्रीकृत एक्सचेंज दोनों का उपयोग करते हैं।`,"Existing Custom Tokens":`मौजूदा कस्टम टोकन`,"Explore ecosystem":`इकोसिस्टम अन्वेषण करें`,"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:`शुल्क`,"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 VeChain की एक अनूठी सुविधा है जो किसी और (एक डेलीगेटर) को आपके लेनदेन शुल्क का भुगतान करने देती है। जबकि कई dApps और सेवा प्रदाता नए उपयोगकर्ताओं को शुरू करने में आसानी के लिए डेलीगेटर के रूप में कार्य करते हैं, कुछ लेनदेन में अभी भी आपको अपने स्वयं के VTHO का उपयोग करके शुल्क का भुगतान करने की आवश्यकता हो सकती है। नेटवर्क स्पैम को रोकने और blockchain पर लेनदेन को संसाधित और मान्य करने वाले नोड्स को मुआवजा देने के लिए शुल्क आवश्यक हैं। जब आप स्वयं शुल्क का भुगतान करते हैं, तो आप लेनदेन लागत को कवर करने के लिए अपनी संपत्ति से VTHO चुन सकेंगे।`,"Fee token":`शुल्क टोकन`,"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":`निम्नलिखित दरें मिलीं`,"Frequently asked questions":`अक्सर पूछे जाने वाले प्रश्न`,From:`से`,"Gas Token Preferences":`गैस टोकन प्राथमिकताएँ`,"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.":`अच्छी खबर! Smart accounts के लिए मल्टीक्लॉज़ लेनदेन अब पूरी तरह से समर्थित हैं। अब आप बेहतर उपयोगकर्ता अनुभव, कम गैस लागत और बेहतर सुरक्षा का आनंद ले सकते हैं।`,Google:`Google`,Help:`सहायता`,Hide:`छिपाएँ`,"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 balance":`अपर्याप्त बैलेंस`,"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 transfer and cover gas fees.":`इस ट्रांसफर को पूरा करने और गैस शुल्क कवर करने के लिए अपर्याप्त बैलेंस।`,"Insufficient balance to update your profile and cover gas fees.":`अपनी प्रोफ़ाइल अपडेट करने और गैस शुल्क कवर करने के लिए अपर्याप्त बैलेंस।`,"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 quote...":`कोट लोड हो रहा है...`,"Loading your domains...":`आपके डोमेन लोड हो रहे हैं...`,"Loading...":`लोड हो रहा है...`,"Log in or sign up":`लॉग इन या साइन अप करें`,"Logged in with":`से लॉग इन`,Login:`लॉग इन`,"Login failed:":`लॉग इन विफल:`,"Login methods":`लॉगिन विधियाँ`,"Login methods and Passkeys":`लॉगिन विधियाँ और 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 Wallets":`अन्य वॉलेट`,"Other options":`अन्य विकल्प`,Passkey:`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.":`कृपया privy.io से ईमेल के लिए {{email}} जाँचें और नीचे अपना कोड दर्ज करें।`,"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":`और पढ़ें`,Receive:`प्राप्त करें`,"Receive tokens":`टोकन प्राप्त करें`,"Reduced gas costs for operations":`संचालन के लिए कम गैस लागत`,"Reject and logout":`अस्वीकार करें और लॉग आउट करें`,Remove:`हटाएँ`,"Remove Login Method":`लॉगिन विधि हटाएँ`,"Remove Wallet":`वॉलेट हटाएँ`,"Remove from shortcuts":`शॉर्टकट से हटाएँ`,"Remove wallet":`वॉलेट हटाएँ`,"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 Wallet":`वॉलेट चुनें`,"Select currency":`मुद्रा चुनें`,"Select language":`भाषा चुनें`,"Select the token to pay the fee with":`शुल्क भुगतान के लिए टोकन चुनें`,"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":`Passkey सेट अप करें`,"Set up a passkey for easier access":`आसान पहुँच के लिए पासकी सेट अप करें`,Settings:`सेटिंग्स`,"Share on":`पर साझा करें`,Shortcuts:`शॉर्टकट`,"Show Advanced Options":`उन्नत विकल्प दिखाएँ`,"Show Less":`कम दिखाएँ`,"Show More":`अधिक दिखाएँ`,"Slippage tolerance":`स्लिपेज सहनशीलता`,"Smart Account":`Smart Account`,"Smart Account detected":`Smart Account का पता चला`,"Something went wrong":`कुछ गलत हो गया`,"Something went wrong. Please try again.":`कुछ गलत हो गया। कृपया पुनः प्रयास करें।`,Source:`स्रोत`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`हमारी आगामी Activity सुविधा के लिए बने रहें`,"Stay tuned for our upcoming NFT feature":`हमारी आगामी NFT सुविधा के लिए बने रहें`,Submit:`जमा करें`,Swap:`स्वैप`,"Swap all":`सभी स्वैप करें`,"Swapping...":`स्वैप हो रहा है...`,Switch:`बदलें`,"Account Changed":`खाता बदल गया`,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.":`यह वॉलेट आपके Smart Account का मालिक है, जिसका उपयोग आपकी पहचान और आपके 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).":`VeChain blockchain के साथ इंटरैक्ट करना जारी रखने और अपना ऑपरेशन पूरा करने के लिए, आपके Smart Account को नवीनतम संस्करण (v3) में अपग्रेड करने की आवश्यकता है।`,"Token Contract Address":`टोकन कॉन्ट्रैक्ट पता`,"Token Priority Order":`टोकन प्राथमिकता क्रम`,"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":`Smart Account को V3 में अपग्रेड करें`,"Upgrade Successful!":`अपग्रेड सफल!`,"Upgrade account":`खाता अपग्रेड करें`,"Upgrading...":`अपग्रेड हो रहा है...`,"Use social login with VeChain":`VeChain के साथ सोशल लॉगिन उपयोग करें`,"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 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 नेटवर्क का ऊर्जा या 'गैस' टोकन है। blockchain के साथ इंटरैक्ट करते समय लेनदेन शुल्क का भुगतान करने के लिए इसका उपयोग किया जाता है। 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 स्थिरता पर केंद्रित VeChain blockchain पर एक विकेंद्रीकृत संगठन है। सदस्य B3TR टोकन से पुरस्कार और प्रस्तावों और साप्ताहिक टोकन आवंटन दौर में मतदान के लिए VOT3 का उपयोग करके DAO के शासन में भाग लेते हैं।`,"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, एक अग्रणी blockchain इकोसिस्टम और VeChainThor का निर्माता है, जो वास्तविक दुनिया में blockchain अपनाने को चलाने वाला विश्व-स्तरीय स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म है। 2015 में सनी लू द्वारा स्थापित, VeChain ने पारदर्शी, कुशल, स्केलेबल और अनुकूलनीय blockchain समाधान देने के लिए लगातार काम किया है।`,"VeWorld Wallet":`VeWorld Wallet`,"Vechain Kit Policy":`Vechain Kit नीति`,"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?":`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?":`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.":`आप Quick Actions अनुभाग में भेजें आइकन पर क्लिक करके टोकन भेज सकते हैं। प्राप्तकर्ता का पता या VeChain डोमेन नाम दर्ज करें, टोकन चुनें और वह राशि निर्दिष्ट करें जो आप भेजना चाहते हैं।`,"You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`आपके पास कोई गैस टोकन सक्षम नहीं है। कृपया Gas Token Preferences में कम से कम एक गैस टोकन सक्षम करें।`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`आपके पास इस वॉलेट से जुड़ा एक सक्रिय Smart Account है। इसे आपकी मुख्य पहचान के रूप में सेट किया गया है।`,"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.":`लेनदेन करने के लिए आपको कम से कम एक टोकन सक्षम करना होगा। बिना किसी सक्षम टोकन के, आप गैस शुल्क का भुगतान नहीं कर पाएंगे।`,"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.":`आपका Smart Account पहले से इस संस्करण में अपग्रेड हो चुका है।`,"Your smart account needs to be upgraded to the latest version (v3).":`आपके Smart Account को नवीनतम संस्करण (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:`कलेक्टिबल्स`,defi:`DeFi`,games:`गेम्स`,here:`यहाँ`,marketplaces:`मार्केटप्लेस`,rate:`दर`,"to learn more about embedded wallets.":`एम्बेडेड वॉलेट के बारे में अधिक जानने के लिए।`,unavailable:`अनुपलब्ध`,utilities:`उपयोगिताएँ`,vebetter:`VeBetter`,"your@email.com":`your@email.com`},ue={" and ":` e `,"'{{policyName}}' on connect":`'{{policyName}}' ao conectar`,"'{{policyName}}' on {{date}}":`'{{policyName}}' em {{date}}`,"<bold>Your privacy matters.</bold> You’re in control, accept to enable optional features like cookies that help us enhance your experience.":`<bold>Sua privacidade importa.</bold> Você está no controle, aceite para habilitar recursos opcionais como cookies que nos ajudam a melhorar sua experiência.`,"A .vet domain is required to customize your profile. Choose an account name to get started.":`Um domínio .vet é necessário para personalizar seu perfil. Escolha um nome de conta para começar.`,"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.":`Uma Smart Account é uma carteira de contrato inteligente que oferece segurança e funcionalidade aprimoradas. Permite recursos como recuperação social, agrupamento de transações e mais.`,'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".':`Um nome de domínio é uma espécie de apelido para seu endereço de carteira. Permite identificar facilmente sua carteira e interagir com dApps usando um nome legível. Por exemplo, se seu endereço é 0x1234567890, seu apelido pode 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.":`Uma rede em blockchain refere-se ao ambiente onde as transações ocorrem. VeChain tem duas redes principais: Mainnet (a rede ao vivo onde transações reais ocorrem) e Testnet (um ambiente de testes para desenvolvedores). A rede à qual você está conectado é exibida no topo deste modal.`,"A new upgrade is available for your smart account. Please head over to the 'Access and Security' section to upgrade it.":`Uma nova atualização está disponível para sua smart account. Acesse a seção 'Acesso e Segurança' para atualizá-la.`,"A new version is available for your account":`Uma nova versão está disponível para sua conta`,"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.":`Uma carteira é seu portal para a blockchain VeChain. Ela armazena suas chaves privadas e permite gerenciar com segurança seus ativos digitais, enviar e receber tokens e interagir com aplicações descentralizadas. Pense nela como sua conta bancária digital para transações blockchain.`,AVAILABLE:`DISPONÍVEL`,Accept:`Aceitar`,"Accept all":`Aceitar tudo`,"Accept selected":`Aceitar selecionados`,"Access and security":`Acesso e segurança`,"Account Upgrade Required":`Atualização de Conta Necessária`,"Account already upgraded":`Conta já atualizada`,"Account upgrade required":`Atualização de conta necessária`,Active:`Ativo`,"Active Wallet":`Carteira Ativa`,"Add Login Method":`Adicionar Método de Login`,"Add New Wallet":`Adicionar Nova Carteira`,"Add Token":`Adicionar Token`,"Add to shortcuts":`Adicionar aos atalhos`,"Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.":`Adicionar mais contas vinculadas aumenta a segurança contra perda de acesso, mas também introduz vetores de ataque adicionais. Para maior segurança, recomendamos habilitar MFA.`,"Address is required":`Endereço é obrigatório`,All:`Todos`,"All apps":`Todos os apps`,"All policies you have accepted":`Todas as políticas que você aceitou`,"All tokens":`Todos os tokens`,"Already have an x2earn app wallet?":`Já tem uma carteira de app x2earn?`,Amount:`Quantia`,"Amount is required":`Quantia é obrigatória`,"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.":`Um aplicativo X2Earn no VeBetterDAO é um app sustentável que recompensa usuários com tokens B3TR por ações ecológicas. Esses apps devem distribuir B3TR, vincular carteiras de usuários e fornecer prova de ações sustentáveis. Eles entram no VeBetterDAO por endosso e participam de rodadas semanais de alocação de tokens.`,"An unexpected error occurred.":`Ocorreu um erro inesperado.`,Apple:`Apple`,Apply:`Aplicar`,Archived:`Arquivado`,"Archived Notifications":`Notificações Arquivadas`,"Are you sure you want to disconnect your wallet?":`Tem certeza que deseja desconectar sua carteira?`,"Are you sure you want to reject the policies and disconnect?":`Tem certeza que deseja rejeitar as políticas e desconectar?`,"Are you sure you want to remove this wallet?":`Tem certeza que deseja remover esta carteira?`,"Are you sure you want to set your domain name to":`Tem certeza que deseja definir seu nome de domínio como`,"Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?":`Tem certeza que deseja desvincular {{accountType}} como método de login vinculado a {{accountDescription}}?`,"Are you sure you want to unset your current domain?":`Tem certeza que deseja remover seu domínio atual?`,Assets:`Ativos`,At:`Em`,"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 é o token de incentivo do VeBetterDAO, construído na blockchain VechainThor. Tem oferta limitada de 1 bilhão de tokens, emitidos semanalmente ao longo de 12 anos. B3TR é usado para recompensas, governança e lastro de tokens VOT3 1:1. Suporta aplicações de sustentabilidade e gestão do tesouro 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.":`Fazer backup da sua carteira é crucial, pois só você tem acesso às suas chaves privadas. Se algo der errado, ter sua chave privada é a única forma de recuperar seus ativos. Como fazer backup depende de como você acessa sua carteira: Se usar VeWorld, a opção de backup está disponível no app. Para usuários de login social, você pode encontrar opções de backup na seção Wallet. Se estiver conectado via VeChain ou outro app do ecossistema, você precisará visitar o site original, fazer login e acessar a seção Wallet de lá.`,Backup:`Backup`,"Backup your wallet":`Faça backup da sua carteira`,"Backup your wallet, configure MFA and set recovery options":`Faça backup da sua carteira, configure MFA e defina opções de recuperação`,Balance:`Saldo`,"Benefits of this upgrade:":`Benefícios desta atualização:`,Best:`Melhor`,"Better transaction handling":`Melhor tratamento de transações`,Bridge:`Bridge`,"By confirming, the following details attached to your name ({{domain}}) will be updated":`Ao confirmar, os seguintes detalhes vinculados ao seu nome ({{domain}}) serão atualizados`,"By confirming, your address will be set to {{domain}}":`Ao confirmar, seu endereço será definido como {{domain}}`,"By confirming, your current domain will be unset":`Ao confirmar, seu domínio atual será removido`,"By continuing, you agree to":`Ao continuar, você concorda com`,Cancel:`Cancelar`,"Checking...":`Verificando...`,"Choose Name":`Escolher Nome`,"Choose a name for your account.":`Escolha um nome para sua conta.`,"Choose a unique .vet domain name for your account.":`Escolha um nome de domínio .vet único para sua conta.`,"Choose account name":`Escolher nome da conta`,"Choose name":`Escolher nome`,"Choose which tokens to use for transaction fees when the app is not covering them.":`Escolha quais tokens usar para taxas de transação quando o app não estiver cobrindo.`,"Choose your account name":`Escolha o nome da sua conta`,"Claim your vet domain!":`Reivindique seu domínio vet!`,"Claiming name...":`Reivindicando nome...`,"Clear all":`Limpar tudo`,"Cleared notifications will appear here":`Notificações limpas aparecerão aqui`,Click:`Clique`,"Click below to access {{ name }} and explore its features.":`Clique abaixo para acessar {{ name }} e explorar seus recursos.`,Close:`Fechar`,"Close and do this later":`Fechar e fazer isso depois`,"Close announcement":`Fechar anúncio`,"Coming Soon!":`Em breve!`,"Coming soon":`Em breve`,Confirm:`Confirmar`,"Confirm Changes":`Confirmar Alterações`,"Confirm Name":`Confirmar Nome`,"Confirm Unset Domain":`Confirmar Remoção do Domínio`,"Confirm the transaction in your wallet to complete it.":`Confirme a transação na sua carteira para concluí-la.`,"Confirm transaction":`Confirmar transação`,"Connect an external wallet for easier access":`Conecte uma carteira externa para acesso mais fácil`,"Connect wallet":`Conectar carteira`,"Connect with VeWorld wallet":`Conectar com carteira VeWorld`,"Connect your Apple account for easier access":`Conecte sua conta Apple para acesso mais fácil`,"Connect your Discord account for easier access":`Conecte sua conta Discord para acesso mais fácil`,"Connect your Farcaster account for easier access":`Conecte sua conta Farcaster para acesso mais fácil`,"Connect your Github account for easier access":`Conecte sua conta Github para acesso mais fácil`,"Connect your Google account for easier access":`Conecte sua conta Google para acesso mais fácil`,"Connect your Instagram account for easier access":`Conecte sua conta Instagram para acesso mais fácil`,"Connect your LinkedIn account for easier access":`Conecte sua conta LinkedIn para acesso mais fácil`,"Connect your Spotify account for easier access":`Conecte sua conta Spotify para acesso mais fácil`,"Connect your Telegram account for easier access":`Conecte sua conta Telegram para acesso mais fácil`,"Connect your Tiktok account for easier access":`Conecte sua conta Tiktok para acesso mais fácil`,"Connect your Twitter account for easier access":`Conecte sua conta Twitter para acesso mais fácil`,"Connect your email for easier access":`Conecte seu email para acesso mais fácil`,"Connect your phone number for easier access":`Conecte seu número de telefone para acesso mais fácil`,"Connecting to VeChain":`Conectando ao VeChain`,"Connecting with":`Conectando com`,"Connecting with Passkey":`Conectando com Passkey`,"Connecting...":`Conectando...`,"Connection Details":`Detalhes da Conexão`,"Connection Failed":`Falha na Conexão`,"Connection Type":`Tipo de Conexão`,"Connection details":`Detalhes da conexão`,Continue:`Continuar`,"Continue with Github":`Continuar com Github`,"Continue with Google":`Continuar com Google`,"Cookie Policy":`Política de Cookies`,"Cookie policy outlining the use of cookies and tracking technologies.":`Política de cookies descrevendo o uso de cookies e tecnologias de rastreamento.`,"Copied!":`Copiado!`,"Copy your address or scan this QR code":`Copie seu endereço ou escaneie este código QR`,Currency:`Moeda`,Current:`Atual`,"Current domain":`Domínio atual`,Customization:`Personalização`,Customize:`Personalizar`,"Customize profile":`Personalizar perfil`,"Customize the appearance of your wallet.":`Personalize a aparência da sua carteira.`,Description:`Descrição`,"Description must be less than 100 characters":`A descrição deve ter menos de 100 caracteres`,"Didn't get an email?":`Não recebeu o email?`,Discord:`Discord`,"Display Name":`Nome de Exibição`,"Display name must be less than 25 characters":`O nome de exibição deve ter menos de 25 caracteres`,"Domain set":`Domínio definido`,"Domain unset":`Domínio removido`,Done:`Concluído`,"Drag to reorder. The system will automatically use the highest priority token with sufficient balance.":`Arraste para reordenar. O sistema usará automaticamente o token de maior prioridade com saldo suficiente.`,Ecosystem:`Ecossistema`,"Eg: DevRel @ ENS Labs":`Ex: DevRel @ ENS Labs`,Email:`Email`,"Email address":`Endereço de email`,"Embedded wallet":`Carteira incorporada`,"Enhanced compatibility with dApps":`Compatibilidade aprimorada com dApps`,"Enter confirmation code":`Digite o código de confirmação`,"Enter your display name":`Digite seu nome de exibição`,"Enter your name":`Digite seu 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.":`Troque seus ativos digitais entre VeChain e outras redes blockchain de forma fácil e segura. Swaps são executados por parceiros que utilizam exchanges descentralizadas e centralizadas para converter tokens.`,"Existing Custom Tokens":`Tokens Personalizados Existentes`,"Explore ecosystem":`Explorar ecossistema`,"Failed to connect with Passkey":`Falha ao conectar com Passkey`,"Failed to connect with VeChain":`Falha ao conectar com VeChain`,"Failed to connect with ecosystem app":`Falha ao conectar com app do ecossistema`,"Failed to load App Hub apps":`Falha ao carregar apps do App Hub`,Farcaster:`Farcaster`,Fee:`Taxa`,"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.":`Delegação de taxa é um recurso exclusivo do VeChain que permite que outra pessoa (um delegador) pague suas taxas de transação. Embora muitos dApps e provedores de serviço atuem como delegadores para facilitar o início para novos usuários, algumas transações ainda podem exigir que você pague taxas com seu próprio VTHO. Taxas são necessárias para prevenir spam na rede e compensar os nós que processam e validam transações na blockchain. Ao pagar taxas você mesmo, você poderá selecionar VTHO dos seus ativos para cobrir o custo da transação.`,"Fee token":`Token de taxa`,"Filter by category":`Filtrar por categoria`,"Finally say goodbye to 0x addresses":`Finalmente diga adeus aos endereços 0x`,"For developers":`Para desenvolvedores`,"For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.":`Por razões de segurança, você pode gerenciar as configurações da sua carteira incorporada apenas na plataforma {{appName}}.`,"Found following rates":`Encontradas as seguintes taxas`,"Frequently asked questions":`Perguntas frequentes`,From:`De`,"Gas Token Preferences":`Preferências de Token de Gas`,"Gas fee":`Taxa de gas`,General:`Geral`,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.":`Boas notícias! Transações multiclause agora são totalmente suportadas para smart accounts. Você pode desfrutar de melhor experiência do usuário, custos de gas menores e segurança aprimorada.`,Google:`Google`,Help:`Ajuda`,Hide:`Ocultar`,"How do I backup my wallet?":`Como faço backup da minha carteira?`,"How do I send tokens?":`Como envio tokens?`,"How is my wallet secured?":`Como minha carteira é protegida?`,"I have read and agree to ":`Li e concordo com `,"Ignore and continue":`Ignorar e continuar`,"Improved security features":`Recursos de segurança aprimorados`,Instagram:`Instagram`,"Insufficient balance":`Saldo insuficiente`,"Insufficient balance to claim this domain and cover gas fees.":`Saldo insuficiente para reivindicar este domínio e cobrir as taxas de gas.`,"Insufficient balance to complete this transaction and cover gas fees.":`Saldo insuficiente para concluir esta transação e cobrir as taxas de gas.`,"Insufficient balance to complete this transfer and cover gas fees.":`Saldo insuficiente para concluir esta transferência e cobrir as taxas de gas.`,"Insufficient balance to update your profile and cover gas fees.":`Saldo insuficiente para atualizar seu perfil e cobrir as taxas de gas.`,"Insufficient {{symbol}} balance":`Saldo de {{symbol}} insuficiente`,"Invalid address or domain":`Endereço ou domínio inválido`,"Invalid contract address":`Endereço de contrato inválido`,"Invalid token address":`Endereço de token inválido`,Language:`Idioma`,"Launch vechain.energy":`Abrir vechain.energy`,"Launch {{name}}":`Abrir {{name}}`,"Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.":`Acordo legal entre você, Vechain Kit e o app atual, descrevendo as regras para uso dos serviços de carteira.`,"Link Apple Account":`Vincular Conta Apple`,"Link Discord Account":`Vincular Conta Discord`,"Link Email Account":`Vincular Conta de Email`,"Link External Wallet":`Vincular Carteira Externa`,"Link Farcaster Account":`Vincular Conta Farcaster`,"Link Github Account":`Vincular Conta Github`,"Link Google Account":`Vincular Conta Google`,"Link Instagram Account":`Vincular Conta Instagram`,"Link LinkedIn Account":`Vincular Conta LinkedIn`,"Link Phone Number":`Vincular Número de Telefone`,"Link Spotify Account":`Vincular Conta Spotify`,"Link Telegram Account":`Vincular Conta Telegram`,"Link Tiktok Account":`Vincular Conta Tiktok`,"Link Twitter Account":`Vincular Conta Twitter`,LinkedIn:`LinkedIn`,"Loading quote...":`Carregando cotação...`,"Loading your domains...":`Carregando seus domínios...`,"Loading...":`Carregando...`,"Log in or sign up":`Entrar ou cadastrar`,"Logged in with":`Conectado com`,Login:`Login`,"Login failed:":`Falha no login:`,"Login methods":`Métodos de login`,"Login methods and Passkeys":`Métodos de login e Passkeys`,Logout:`Sair`,"Manage Custom Tokens":`Gerenciar Tokens Personalizados`,"Manage MFA":`Gerenciar MFA`,"Manage Recovery":`Gerenciar Recuperação`,"Manage on {{appName}}":`Gerenciar em {{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.":`Gerencie as configurações de segurança da sua carteira incorporada: gerencie seus métodos de login, adicione um passkey ou faça backup da sua carteira para nunca perder acesso aos seus ativos.`,"Manage your login methods and passkeys":`Gerencie seus métodos de login e passkeys`,"Manage your preferences for currency, language, and appearance.":`Gerencie suas preferências de moeda, idioma e aparência.`,"Minimum {{symbol}} transfer is {{min}}":`Transferência mínima de {{symbol}} é {{min}}`,More:`Mais`,"Multiclause Transactions Are Now Supported":`Transações Multiclause Agora Suportadas`,"Name must be at least 3 characters long":`O nome deve ter pelo menos 3 caracteres`,"Name your account to make it easier to exchange assets":`Nomeie sua conta para facilitar a troca de ativos`,Network:`Rede`,New:`Novo`,"New image selected":`Nova imagem selecionada`,"No additional accounts available to link":`Nenhuma conta adicional disponível para vincular`,"No application from VeChain ecosystem is available to login.":`Nenhum aplicativo do ecossistema VeChain está disponível para login.`,"No apps found in this category":`Nenhum app encontrado nesta categoria`,"No archived notifications":`Nenhuma notificação arquivada`,"No assets":`Nenhum ativo`,"No notifications":`Nenhuma notificação`,"No policies accepted":`Nenhuma política aceita`,"No questions found":`Nenhuma pergunta encontrada`,"No quotes available":`Nenhuma cotação disponível`,"No tokens found":`Nenhum token encontrado`,"Node URL":`URL do Nó`,Notifications:`Notificações`,"Only letters, numbers, and hyphens are allowed":`Apenas letras, números e hífens são permitidos`,Optional:`Opcional`,"Other Wallets":`Outras Carteiras`,"Other options":`Outras opções`,Passkey:`Passkey`,"Phone Number":`Número de Telefone`,"Please approve the request in the connection request window...":`Por favor, aprove o pedido na janela de solicitação de conexão...`,"Please be sure to keep this wallet safe and backed up.":`Certifique-se de manter esta carteira segura e com backup.`,"Please check {{email}} for an email from privy.io and enter your code below.":`Verifique {{email}} para um email de privy.io e digite seu código abaixo.`,"Please complete the passkey authentication...":`Por favor, complete a autenticação passkey...`,"Please confirm the transaction in your wallet.":`Por favor, confirme a transação na sua carteira.`,"Please enter a valid Twitter handle without @":`Por favor, digite um handle do Twitter válido sem @`,"Please enter a valid contract address":`Por favor, digite um endereço de contrato válido`,"Please enter a valid email address":`Por favor, digite um endereço de email válido`,"Please enter a valid number":`Por favor, digite um número válido`,"Please take a moment to review all the policies, with acceptance being mandatory to continue.":`Por favor, reserve um momento para revisar todas as políticas, sendo a aceitação obrigatória para continuar.`,Policy:`Política`,"Preparing changes...":`Preparando alterações...`,"Privacy Policy":`Política de Privacidade`,"Privacy policy outlining the data collection and processing practices.":`Política de privacidade descrevendo as práticas de coleta e processamento de dados.`,"Privy Status":`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 constrói infraestrutura de onboarding de usuários e carteira incorporada para permitir melhores produtos construídos em rails de cripto. Isso significa incorporar controle de ativos dentro das aplicações para permitir que usuários, empresas ou máquinas usem ativos digitais através de experiências de produto fluidas.`,"Processing transaction...":`Processando transação...`,Profile:`Perfil`,"Profile Image":`Imagem do Perfil`,"Profile Picture":`Foto do Perfil`,"Profile Updated":`Perfil Atualizado`,"Read More":`Leia mais`,Receive:`Receber`,"Receive tokens":`Receber tokens`,"Reduced gas costs for operations":`Custos de gas reduzidos para operações`,"Reject and logout":`Rejeitar e sair`,Remove:`Remover`,"Remove Login Method":`Remover Método de Login`,"Remove Wallet":`Remover Carteira`,"Remove from shortcuts":`Remover dos atalhos`,"Remove wallet":`Remover carteira`,"Remove your current domain name":`Remover seu nome de domínio atual`,"Resend code":`Reenviar código`,Retry:`Tentar novamente`,"Save Changes":`Salvar Alterações`,"Saving changes...":`Salvando alterações...`,"Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!":`Diga adeus aos endereços 0x, reivindique seu subdomínio .veworld.vet agora gratuitamente!`,"Search Apps":`Buscar Apps`,"Search FAQ":`Buscar FAQ`,"Security preferences":`Preferências de segurança`,"Security settings":`Configurações de segurança`,"Select Additional Login Method":`Selecionar Método de Login Adicional`,"Select Token":`Selecionar Token`,"Select Wallet":`Selecionar Carteira`,"Select currency":`Selecionar moeda`,"Select language":`Selecionar idioma`,"Select the token to pay the fee with":`Selecione o token para pagar a taxa`,"Select token":`Selecionar token`,Send:`Enviar`,"Send all":`Enviar tudo`,"Sending Transaction...":`Enviando Transação...`,"Sending to OceanX or other exchanges may result in loss of funds.":`Enviar para OceanX ou outras exchanges pode resultar em perda de fundos.`,"Sending...":`Enviando...`,"Set a domain first":`Defina um domínio primeiro`,"Set up Passkey":`Configurar Passkey`,"Set up a passkey for easier access":`Configure um passkey para acesso mais fácil`,Settings:`Configurações`,"Share on":`Compartilhar em`,Shortcuts:`Atalhos`,"Show Advanced Options":`Mostrar Opções Avançadas`,"Show Less":`Mostrar menos`,"Show More":`Mostrar mais`,"Slippage tolerance":`Tolerância de slippage`,"Smart Account":`Smart Account`,"Smart Account detected":`Smart Account detectada`,"Something went wrong":`Algo deu errado`,"Something went wrong. Please try again.":`Algo deu errado. Por favor, tente novamente.`,Source:`Origem`,Spotify:`Spotify`,"Stay tuned for our upcoming Activity feature":`Fique atento ao nosso recurso de Atividade em breve`,"Stay tuned for our upcoming NFT feature":`Fique atento ao nosso recurso de NFT em breve`,Submit:`Enviar`,Swap:`Trocar`,"Swap all":`Trocar tudo`,"Swapping...":`Trocando...`,Switch:`Trocar`,"Account Changed":`Conta Alterada`,Telegram:`Telegram`,"Terms and Conditions":`Termos e Condições`,"Terms and Policies":`Termos e Políticas`,"These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.":`Essas contas estão vinculadas à sua carteira incorporada e podem ser usadas para fazer login na sua carteira e acessar sua chave privada.`,"This address only supports VeChain assets.":`Este endereço suporta apenas ativos VeChain.`,"This domain is already taken":`Este domínio já está em uso`,"This domain is protected":`Este domínio está protegido`,"This is taking longer than expected.":`Isso está demorando mais do que o esperado.`,"This is your main wallet, created by {{element}} and secured by Privy.":`Esta é sua carteira principal, criada por {{element}} e protegida pelo 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 carteira é a proprietária da sua smart account, usada como sua identidade e como portal para suas interações 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 interagindo com a blockchain VeChain e concluir sua operação, sua smart account precisa ser atualizada para a versão mais recente (v3).`,"Token Contract Address":`Endereço do Contrato do Token`,"Token Priority Order":`Ordem de Prioridade de Tokens`,"Token already added":`Token já adicionado`,Tools:`Ferramentas`,"Transaction failed":`Transação falhou`,"Transaction failed:":`Transação falhou:`,"Transaction is being processed, it can take up to 15 seconds.":`A transação está sendo processada, pode levar até 15 segundos.`,"Transaction successful":`Transação bem-sucedida`,"Transaction successful!":`Transação bem-sucedida!`,"Try again":`Tentar novamente`,"Try searching with a different term":`Tente buscar com um termo diferente`,Twitter:`Twitter`,"Twitter username":`Nome de usuário do Twitter`,"Type the receiver address or domain":`Digite o endereço ou domínio do destinatário`,UNAVAILABLE:`INDISPONÍVEL`,"Unable to fetch the price":`Não foi possível obter o preço`,"Unset current domain":`Remover domínio atual`,"Unsetting current domain...":`Removendo domínio atual...`,"Upgrade Smart Account to V3":`Atualizar Smart Account para V3`,"Upgrade Successful!":`Atualização Bem-sucedida!`,"Upgrade account":`Atualizar conta`,"Upgrading...":`Atualizando...`,"Use social login with VeChain":`Use login social com VeChain`,"Use this token for future transactions":`Use este token para transações futuras`,"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 é a criptomoeda principal da rede VeChain. Representa valor e propriedade no ecossistema VeChain, similar a como ações representam propriedade em uma empresa. Manter VET gera automaticamente VTHO, necessário para pagar transações na rede.`,"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) é o token de energia ou 'gas' da rede VeChain. É usado para pagar taxas de transação ao interagir com a blockchain. VTHO é gerado automaticamente ao manter tokens VET, criando um sistema de dois tokens que ajuda a manter a estabilidade da rede e gerenciar custos de transação.`,"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 é uma organização descentralizada na blockchain VeChain focada em sustentabilidade. Membros participam da governança do DAO usando tokens B3TR para recompensas e VOT3 para votar em propostas e rodadas semanais de alocação 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, sediada em San Marino, Europa, é um ecossistema blockchain pioneiro e criadora do VeChainThor, uma plataforma de contratos inteligentes de classe mundial que impulsiona a adoção blockchain no mundo real. Fundada em 2015 por Sunny Lu, a VeChain tem trabalhado consistentemente para entregar uma solução blockchain transparente, eficiente, escalável e adaptável.`,"VeWorld Wallet":`Carteira VeWorld`,"Vechain Kit Policy":`Política Vechain Kit`,"View Current Policy":`Ver Política Atual`,"View on explorer":`Ver no explorer`,"View transaction on the explorer":`Ver transação no explorer`,"Waiting for confirmation":`Aguardando confirmação`,"Waiting for confirmation...":`Aguardando confirmação...`,"Waiting wallet confirmation...":`Aguardando confirmação da carteira...`,Wallet:`Carteira`,"Wallet secured by":`Carteira protegida 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":`Recomendamos fortemente exportar sua chave privada para fazer backup da sua carteira. Isso garante que você possa restaurá-la se necessário ou transferi-la para auto-custódia usando`,Website:`Site`,"Website URL":`URL do Site`,"Website URL must start with https://":`A URL do site deve começar com https://`,"What is B3TR?":`O que é B3TR?`,"What is Privy?":`O que é Privy?`,"What is VET?":`O que é VET?`,"What is VTHO?":`O que é VTHO?`,"What is VeBetterDAO?":`O que é VeBetterDAO?`,"What is VeChain?":`O que é VeChain?`,"What is a Smart Account?":`O que é uma Smart Account?`,"What is a domain name?":`O que é um nome de domínio?`,"What is a network?":`O que é uma rede?`,"What is a wallet?":`O que é uma carteira?`,"What is an x2earn application?":`O que é um aplicativo x2earn?`,"What is fee delegation?":`O que é delegação de taxa?`,"When you have accepted a policy, it will appear here":`Quando você aceitar uma política, ela aparecerá aqui`,"When you have notifications, they will appear here":`Quando você tiver notificações, elas aparecerão aqui`,"YOU OWN THIS":`VOCÊ POSSUI ISTO`,"You accepted current policy on {{date}}":`Você aceitou a política atual em {{date}}`,"You are using an Embedded Wallet secured by your social login method, ensuring a seamless VeChain experience.":`Você está usando uma Carteira Incorporada protegida pelo seu método de login social, garantindo uma experiência VeChain fluida.`,"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.":`Você pode enviar tokens clicando no ícone de enviar na seção Ações Rápidas. Digite o endereço do destinatário ou nome de domínio VeChain, selecione o token e especifique a quantia que deseja enviar.`,"You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.":`Você não tem nenhum token de gas habilitado. Por favor, habilite pelo menos um token de gas em Preferências de Token de Gas.`,"You have an active smart account associated to this wallet. It has been set as your main identity.":`Você tem uma smart account ativa associada a esta carteira. Ela foi definida como sua identidade principal.`,"You may want to try establishing the connection again.":`Você pode tentar estabelecer a conexão novamente.`,"You must enable at least one token to perform transactions. Without any enabled tokens, you will not be able to pay for gas fees.":`Você deve habilitar pelo menos um token para realizar transações. Sem tokens habilitados, você não poderá pagar taxas de gas.`,"Your account has been successfully upgraded to the latest version. You can now enjoy a better user experience, lower gas costs, and enhanced security.":`Sua conta foi atualizada com sucesso para a versão mais recente. Você pode desfrutar de melhor experiência do usuário, custos de gas menores e segurança aprimorada.`,"Your address has been successfully set to {{name}}":`Seu endereço foi definido com sucesso como {{name}}`,"Your changes have been saved successfully.":`Suas alterações foram salvas com sucesso.`,"Your domain has been unset successfully.":`Seu domínio foi removido com sucesso.`,"Your embedded wallet":`Sua carteira incorporada`,"Your existing domains":`Seus domínios existentes`,"Your smart account is already upgraded to this version.":`Sua smart account já está atualizada para esta versão.`,"Your smart account needs to be upgraded to the latest version (v3).":`Sua smart account precisa ser atualizada para a versão mais recente (v3).`,"Your tokens":`Seus 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.":`A segurança da sua carteira depende de como você acessa. Com opções de auto-custódia como a extensão VeWorld, app móvel ou hardware wallet, você tem controle total sobre suas chaves privadas. Esta extensão em si não tem acesso às suas chaves privadas. Ao fazer login com contas sociais ou VeChain, sua carteira é criada e protegida pelo Privy e gerenciada pelo VeChain, proporcionando uma experiência de onboarding mais fácil mantendo a segurança.`,collectibles:`Colecionáveis`,defi:`DeFi`,games:`Jogos`,here:`aqui`,marketplaces:`Marketplaces`,rate:`taxa`,"to learn more about embedded wallets.":`para saber mais sobre carteiras incorporadas.`,unavailable:`indisponível`,utilities:`Utilitários`,vebetter:`VeBetter`,"your@email.com":`seu@email.com`};const de=[`en`,`de`,`it`,`fr`,`es`,`zh`,`ja`,`ru`,`ro`,`vi`,`nl`,`ko`,`sv`,`tw`,`tr`,`hi`,`pt`],fe={en:{translation:z},de:{translation:B},it:{translation:ee},fr:{translation:V},es:{translation:H},zh:{translation:te},ja:{translation:ne},ru:{translation:re},ro:{translation:U},tw:{translation:ie},vi:{translation:W},nl:{translation:ae},ko:{translation:oe},sv:{translation:se},tr:{translation:ce},hi:{translation:le},pt:{translation:ue}},G={en:`English`,de:`Deutsch`,it:`Italiano`,fr:`Français`,es:`Español`,zh:`中文`,ja:`日本語`,ru:`Русский`,ro:`Română`,vi:`Tiếng Việt`,nl:`Nederlands`,ko:`한국어`,sv:`Svenska`,tw:`繁體中文`,tr:`Türkçe`,hi:`हिन्दी`,pt:`Português`},K={en:`en-US`,de:`de-DE`,it:`it-IT`,fr:`fr-FR`,es:`es-ES`,zh:`zh-CN`,ja:`ja-JP`,ru:`ru-RU`,ro:`ro-RO`,vi:`vi-VN`,nl:`nl-NL`,ko:`ko-KR`,sv:`sv-SE`,tw:`zh-TW`,tr:`tr-TR`,hi:`hi-IN`,pt:`pt-BR`},q={name:`customDetector`,lookup:e=>{if(typeof window<`u`){let e=localStorage.getItem(`i18nextLng`);if(e&&de.includes(e))return e}let t=e?.languages?.[0];if(t&&de.includes(t))return t;if(typeof window<`u`){let e=navigator.language,t=Object.entries(K).find(([,t])=>t.toLowerCase()===e.toLowerCase())?.[0];if(t&&de.includes(t))return t;let n=e.split(`-`)[0];if(n&&de.includes(n))return n}return`en`},cacheUserLanguage:e=>{typeof window<`u`&&localStorage.setItem(`i18nextLng`,e)}};c.default.use({type:`languageDetector`,async:!1,init:()=>{},detect:q.lookup,cacheUserLanguage:q.cacheUserLanguage}).use(l.initReactI18next).init({resources:fe,fallbackLng:`en`,interpolation:{escapeValue:!1}});var pe=c.default;const me=e=>{Object.keys(fe).forEach(t=>{e.hasResourceBundle(t,`translation`),e.addResourceBundle(t,`translation`,fe[t].translation,!0,!0)})};function he(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 ge(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 he(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 _e(e,t,n,r){let i=r||n;return{modal:e,card:ge(e,.8),cardElevated:e,overlay:i,stickyHeader:ge(e,.9)}}function ve(e,t){return{primary:e,secondary:ge(e,.7),tertiary:ge(e,.5),disabled:t?`#4A5568`:`#A0AEC0`}}function ye(e,t,n){let r=t?`#ffffff`:`#000000`;return{default:ge(r,.1),hover:ge(r,.2),focus:t?`#3182CE`:`#2B6CB0`,button:ge(r,.1),modal:n||`none`}}function be(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:ge(e,.1),color:t,border:`1px solid ${ge(e,.1)}`}}return i.buttons.button}function xe(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:i.buttons.primaryButton.color,border:`none`}:i.buttons.primaryButton}function Se(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 Ce(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 we(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(20px)`}.modal,modalOpacity:1,overlayOpacity:.4,stickyHeaderOpacity:.9}}const Te={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:`#272A2E`,color:`white`,rounded:`full`,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}},Ee={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:`white`,color:`blackAlpha.900`,border:`none`,rounded:`full`},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}},De=e=>e?Ee:Te;function Oe(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 ke(e,t){if(!e)return{};let n={},r=De(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=_e(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=ve(e.textColor,t)),a?n.colors.border=ye(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=we(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=ge(a,i.modalOpacity),n.colors.background.stickyHeader=ge(a,i.stickyHeaderOpacity);else{let e=r.colors.background.modal,t=r.colors.background.stickyHeader;n.colors.background.modal=ge(e,i.modalOpacity),n.colors.background.stickyHeader=ge(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=be(a,e.textColor,t,e.buttons?.secondaryButton,r),n.buttons.primaryButton=xe(a,e.textColor,t,e.buttons?.primaryButton,r),n.buttons.tertiaryButton=Se(a,e.textColor,t,e.buttons?.tertiaryButton,r),n.buttons.loginButton=Ce(a,e.textColor,t,e.buttons?.loginButton,r),n}function Ae(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 je(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 Me(e,t){let n=Ae(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 Ne(){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
  /* CRITICAL: Ensure dappkit modal always has pointer-events enabled */
3
3
  /* This fixes an issue where the modal becomes unclickable when opened on top of bottom sheet */
4
4
  vdk-modal,
@@ -74,7 +74,7 @@ const e=require(`./assets-DNJsQD7_.cjs`),t=require(`./utils-CzaSErgL.cjs`);let n
74
74
  [data-vdk-modal] [style*="cursor"][style*="pointer"]:active {
75
75
  opacity: 0.5 !important;
76
76
  }
77
- `,typeof MutationObserver<`u`){let e=new MutationObserver(()=>{let e=document.querySelectorAll(`vdk-modal, [data-vdk-modal], [id*="vdk-modal"]`);for(let t of e)t instanceof HTMLElement&&t.style.setProperty(`pointer-events`,`all`,`important`);let t=document.querySelectorAll(`[data-vdk-source-card], [class*="vdk-source-card"], [class*="source-card"], [data-vdk-modal] button, [data-vdk-modal] [role="button"]`);for(let e of t)e instanceof HTMLElement&&(e.style.setProperty(`opacity`,`1`,`important`),e.style.setProperty(`transition`,`opacity 0.2s ease`,`important`))});e.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=>{e.disconnect()},6e4)}}function be(e,t,n,r,i,a,o,s){if(typeof document>`u`)return;let c=document.documentElement;Object.entries(e).forEach(([e,t])=>{c.style.setProperty(e,t)});let l=`vechain-kit-privy-styles`,u=document.getElementById(l);u||(u=document.createElement(`style`),u.id=l,document.head.appendChild(u));let d=[];if(t&&d.push(`
77
+ `,typeof MutationObserver<`u`){let e=new MutationObserver(()=>{let e=document.querySelectorAll(`vdk-modal, [data-vdk-modal], [id*="vdk-modal"]`);for(let t of e)t instanceof HTMLElement&&t.style.setProperty(`pointer-events`,`all`,`important`);let t=document.querySelectorAll(`[data-vdk-source-card], [class*="vdk-source-card"], [class*="source-card"], [data-vdk-modal] button, [data-vdk-modal] [role="button"]`);for(let e of t)e instanceof HTMLElement&&(e.style.setProperty(`opacity`,`1`,`important`),e.style.setProperty(`transition`,`opacity 0.2s ease`,`important`))});e.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=>{e.disconnect()},6e4)}}function Pe(e,t,n,r,i,a,o,s){if(typeof document>`u`)return;let c=document.documentElement;Object.entries(e).forEach(([e,t])=>{c.style.setProperty(e,t)});let l=`vechain-kit-privy-styles`,u=document.getElementById(l);u||(u=document.createElement(`style`),u.id=l,document.head.appendChild(u));let d=[];if(t&&d.push(`
78
78
  [data-privy-dialog-overlay],
79
79
  [data-privy-dialog-content],
80
80
  .privy-dialog-overlay,
@@ -118,13 +118,13 @@ const e=require(`./assets-DNJsQD7_.cjs`),t=require(`./utils-CzaSErgL.cjs`);let n
118
118
  opacity: 0.5 !important;
119
119
  }
120
120
  `),d.length>0&&(u.textContent=d.join(`
121
- `))}let xe=null;function Se(){return xe||=new m.QueryClient({defaultOptions:{queries:{queryKeyHashFn:h.hashFn,retry:0,staleTime:3e4,refetchOnWindowFocus:!0,refetchOnMount:!0,refetchOnReconnect:!0,refetchInterval:!1,refetchIntervalInBackground:!1}}}),xe}const Ce=({children:e})=>{try{if(r.default.useContext(m.QueryClientContext))return(0,i.jsx)(i.Fragment,{children:e})}catch(e){console.log(e)}return(0,i.jsx)(m.QueryClientProvider,{client:Se(),children:e})},J=({onClick:e,...t})=>(0,i.jsx)(n.IconButton,{"aria-label":`Back`,icon:(0,i.jsx)(n.Icon,{as:_.LuChevronLeft,fontSize:`20px`}),size:`sm`,variant:`vechainKitHeaderIconButtons`,position:`absolute`,left:`10px`,top:`8px`,onClick:e,lineHeight:`0`,...t}),we=({wallet:e,label:a,style:o,showHumanAddress:s=!0,setCurrentContent:c,onLogout:u})=>{let{t:d}=(0,l.useTranslation)(),[f,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(!1),g=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),v=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),y=(0,n.useColorModeValue)(`#ebebeb`,`#ffffff0a`),b=(0,n.useColorModeValue)(`#ffffff`,`transparent`),x=async(e,n)=>{await t.lt(e)&&(n(!0),setTimeout(()=>{n(!1)},2e3))},S=()=>{c&&(e?.domain?c({type:`choose-name-search`,props:{name:``,setCurrentContent:c,initialContentSource:`profile`}}):c({type:`choose-name`,props:{setCurrentContent:c,initialContentSource:`profile`,onBack:()=>c(`profile`)}}))};return(0,i.jsx)(n.VStack,{w:`full`,justifyContent:`center`,...o,children:(0,i.jsxs)(n.VStack,{w:`full`,spacing:4,children:[a&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:v,children:a}),(0,i.jsxs)(n.VStack,{spacing:2,w:`full`,children:[e?.domain&&(0,i.jsxs)(n.HStack,{w:`full`,spacing:3,px:4,py:2,borderWidth:1,borderColor:y,borderRadius:`md`,bg:b,children:[(0,i.jsx)(n.Icon,{as:_.LuSquareUser,color:v}),(0,i.jsx)(n.Text,{flex:1,fontSize:`sm`,fontWeight:`700`,color:g,noOfLines:1,children:m?d(`Copied!`):e.domain}),(0,i.jsxs)(n.HStack,{spacing:2,children:[c&&(0,i.jsx)(n.IconButton,{icon:(0,i.jsx)(_.LuPencil,{}),height:`30px`,borderRadius:`5px`,variant:`vechainKitSecondary`,onClick:S,"aria-label":`Edit domain`}),(0,i.jsx)(n.IconButton,{icon:m?(0,i.jsx)(_.LuCheck,{}):(0,i.jsx)(_.LuCopy,{}),height:`30px`,borderRadius:`5px`,variant:`vechainKitSecondary`,onClick:()=>x(e.domain||``,h),"aria-label":`Copy domain`})]})]}),(0,i.jsxs)(n.HStack,{w:`full`,spacing:3,px:4,py:2,borderWidth:1,borderColor:y,borderRadius:`md`,bg:b,children:[(0,i.jsx)(n.Icon,{as:_.LuWallet,color:v}),(0,i.jsx)(n.Text,{flex:1,fontSize:`sm`,fontWeight:`700`,color:g,noOfLines:1,children:f?d(`Copied!`):s?t.W(e?.address??``,8,7):e?.address}),(0,i.jsxs)(n.HStack,{spacing:2,children:[(0,i.jsx)(n.IconButton,{icon:(0,i.jsx)(_.LuLogOut,{}),onClick:()=>c?.({type:`disconnect-confirm`,props:{onDisconnect:()=>u?.(),onBack:()=>c?.(`profile`)}}),variant:`vechainKitSecondary`,height:`30px`,w:`30px`,borderRadius:`5px`,"aria-label":`Copy address`}),(0,i.jsx)(n.IconButton,{icon:f?(0,i.jsx)(_.LuCheck,{}):(0,i.jsx)(_.LuCopy,{}),onClick:()=>x(e?.address??``,p),variant:`vechainKitSecondary`,height:`30px`,w:`30px`,borderRadius:`5px`,"aria-label":`Copy address`})]})]})]})]})})};var Te=`2.6.1`,Ee={"@adraffy/ens-normalize":`^1.11.0`,"@chakra-ui/react":`^2.8.2`,"@emotion/styled":`^11.14.1`,"@privy-io/cross-app-connect":`0.2.2`,"@privy-io/react-auth":`2.25.0`,"@solana/web3.js":`^1.98.0`,"@tanstack/react-query":`^5.64.2`,"@tanstack/react-query-devtools":`^5.64.1`,"@vechain/contract-getters":`1.1.0`,"@vechain/dapp-kit-react":`2.1.0-rc.5`,"@vechain/picasso":`^2.1.1`,"@vechain/vechain-contract-types":`1.6.0-rc`,"@wagmi/core":`^2.17.2`,"bignumber.js":`^9.1.2`,"browser-image-compression":`^2.0.2`,dotenv:`^16.4.7`,ethers:`^6.13.5`,"framer-motion":`^11.15.0`,i18next:`^24.2.1`,"i18next-browser-languagedetector":`^8.0.2`,"i18next-resources-to-backend":`^1.2.1`,net:`^1.0.2`,process:`^0.11.10`,react:`^18.2.0`,"react-device-detect":`^2.2.3`,"react-hook-form":`^7.54.2`,"react-i18next":`^15.4.0`,"react-icons":`^5.4.0`,"react-qrcode-logo":`^3.0.0`,vaul:`^1.1.2`,viem:`^2.29.3`,wagmi:`^2.15.4`},De={"@chakra-ui/react":`^2.8.2`,"@emotion/react":`^11.0.0`,"@emotion/styled":`^11.0.0`,"@tanstack/react-query":`^5.64.2`,"@vechain/dapp-kit-react":`2.1.0-rc.5`,"framer-motion":`^11.0.0`,react:`^18.0.0`,"react-dom":`^18.0.0`};const Oe=({...t})=>{let{darkMode:r}=$();return(0,i.jsxs)(n.HStack,{w:`full`,justifyContent:`center`,alignItems:`center`,spacing:0,...t,children:[(0,i.jsx)(e.J,{isDark:r,w:`70px`,h:`auto`,opacity:.4,mr:1,ml:`-16px`}),(0,i.jsxs)(n.Link,{fontSize:`11px`,fontWeight:`500`,opacity:.4,textAlign:`left`,href:`https://github.com/vechain/vechain-kit/releases/tag/${Te}`,isExternal:!0,pt:`1px`,children:[`v`,Te]})]})},ke=(0,r.createContext)({hasContentBelow:!1}),Ae=()=>(0,r.useContext)(ke),Y=({children:e})=>{let[t,a]=(0,r.useState)(!1),o=(0,r.useRef)(null),s=(0,r.useRef)(null),c=(0,r.useRef)(null),l=(0,r.useRef)(!0),{tokens:u}=Ka(),d=u?.effects?.backdropFilter?.stickyHeader??`blur(20px)`;return(0,r.useEffect)(()=>{let e=e=>{if(!e)return null;let t=e.parentElement;for(;t;){let e=window.getComputedStyle(t);if(e.overflowY===`auto`||e.overflowY===`scroll`||e.overflow===`auto`||e.overflow===`scroll`)return t;t=t.parentElement}return null},t=([e])=>{c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{if(l.current){l.current=!1,a(!1);return}a(!e.isIntersecting)},50)},n=e(s.current),r={threshold:0};n&&(r.root=n,r.rootMargin=`0px`);let i=new IntersectionObserver(t,r),u=setTimeout(()=>{o.current&&i.observe(o.current)},200);return()=>{clearTimeout(u),c.current&&clearTimeout(c.current),i.disconnect()}},[]),(0,i.jsxs)(ke.Provider,{value:{hasContentBelow:t},children:[(0,i.jsx)(n.Box,{ref:s,position:`sticky`,top:`0`,left:`0`,w:`full`,borderRadius:`24px 24px 0px 0px`,backdropFilter:t?d:`none`,style:{WebkitBackdropFilter:t?d:`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}),(0,i.jsx)(`div`,{ref:o,style:{height:`1px`,width:`100%`,pointerEvents:`none`,visibility:`hidden`,marginTop:`-1px`}})]})},je=({children:e})=>(0,i.jsx)(n.Box,{position:`absolute`,bottom:`0`,left:`0`,right:`0`,bg:(0,n.useToken)(`colors`,`vechain-kit-modal`),zIndex:`1000`,p:4,w:`full`,children:e}),Me=({scrollableContainerRef:e,observerRef:t})=>{let a=(0,n.useToken)(`colors`,`vechain-kit-border`),{tokens:o}=Ka(),s=o?.effects?.backdropFilter?.stickyHeader??`blur(20px)`,[c,l]=(0,r.useState)(!1),u=(0,r.useRef)(null),d=(0,r.useRef)(!0);return(0,r.useEffect)(()=>{let n=([e])=>{u.current&&clearTimeout(u.current),u.current=setTimeout(()=>{if(d.current){d.current=!1,l(!1);return}l(!e.isIntersecting)},50)},r={threshold:0};e.current&&(r.root=e.current,r.rootMargin=`0px`);let i=new IntersectionObserver(n,r),a=setTimeout(()=>{t.current&&i.observe(t.current)},200);return()=>{clearTimeout(a),u.current&&clearTimeout(u.current),i.disconnect()}},[e,t]),(0,i.jsx)(n.Box,{position:`sticky`,top:`0`,w:`full`,backdropFilter:c?s:`none`,style:{WebkitBackdropFilter:c?s:`none`},zIndex:999,transition:`backdrop-filter 0.2s ease-in-out`,children:(0,i.jsx)(n.Box,{mx:`auto`,w:`34px`,h:`5px`,bg:a,mt:4,rounded:`full`})})},Ne=({isOpen:e,onClose:t,children:a,ariaTitle:o,ariaDescription:s,isDismissable:c=!0,minHeight:l,maxHeight:u=`68vh`,closeThreshold:d=.5})=>{let f=(0,n.useToken)(`colors`,`vechain-kit-modal`),p=(0,n.useToken)(`colors`,`vechain-kit-overlay`),m=(0,r.useRef)(null),h=(0,r.useRef)(null),{tokens:g}=Ka(),_=g?.effects?.backdropFilter?.overlay,y=g?.colors?.border?.modal||`none`;return(0,i.jsx)(v.Drawer.Root,{dismissible:c,shouldScaleBackground:!0,repositionInputs:!1,open:e,closeThreshold:d,onOpenChange:e=>{e||t()},children:(0,i.jsxs)(v.Drawer.Portal,{children:[(0,i.jsx)(v.Drawer.Overlay,{style:{zIndex:100,position:`fixed`,top:0,right:0,bottom:0,left:0,backgroundColor:p,backdropFilter:_,WebkitBackdropFilter:_}}),(0,i.jsxs)(v.Drawer.Content,{"aria-description":s,style:{zIndex:101,backgroundColor:f,borderRadius:`24px 24px 0 0`,border:y,position:`fixed`,bottom:0,left:0,right:0,...l&&{minHeight:l},maxHeight:u,display:`flex`,flexDirection:`column`},children:[(0,i.jsx)(v.Drawer.Title,{style:{position:`absolute`,width:`1px`,height:`1px`,padding:0,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:0},children:o}),(0,i.jsxs)(n.Box,{ref:m,flex:`1`,overflowY:`auto`,children:[(0,i.jsx)(Me,{scrollableContainerRef:m,observerRef:h}),(0,i.jsx)(`div`,{ref:h,style:{height:`1px`,width:`100%`,visibility:`hidden`,marginTop:`-1px`}}),a]})]})]})})},Pe=({isOpen:e,onClose:t,children:r,size:a=`sm`,isCentered:o=!0,motionPreset:s=`slideInBottom`,closeOnOverlayClick:c=!0,blockScrollOnMount:l=!1,allowExternalFocus:u=!1,backdropFilter:d,isCloseable:f=!0,useBottomSheetOnMobile:p,mobileMinHeight:m,mobileMaxHeight:h=`57vh`,desktopMinHeight:g,desktopMaxHeight:_})=>{let[v]=(0,n.useMediaQuery)(`(min-width: 768px)`),{portalRootRef:y,themeConfig:b,tokens:x}=Ka(),S=p??b?.modal?.useBottomSheetOnMobile??!1,C=(0,n.useToken)(`colors`,`vechain-kit-modal`),w=(0,n.useToken)(`colors`,`vechain-kit-overlay`),T=x?.effects?.backdropFilter?.overlay,E=x?.effects?.backdropFilter?.modal,D=d??T??`blur(3px)`,O=v?{minHeight:g,maxHeight:_}:{position:`fixed`,bottom:`0`,mb:`0`,maxW:`2xl`,borderRadius:`24px 24px 0px 0px !important`,overflowY:`auto`,overflowX:`hidden`,scrollBehavior:`smooth`,minHeight:m,maxHeight:h},k=(0,i.jsxs)(n.Modal,{motionPreset:s,isOpen:e,onClose:t,isCentered:o,size:a,returnFocusOnClose:!1,blockScrollOnMount:l,closeOnOverlayClick:c&&f,preserveScrollBarGap:!0,portalProps:{containerRef:y},trapFocus:!u,autoFocus:!u,variant:`vechainKitBase`,children:[(0,i.jsx)(n.ModalOverlay,{bg:w,backdropFilter:D}),(0,i.jsx)(n.ModalContent,{role:`dialog`,"aria-modal":!u,bg:C,sx:{backdropFilter:E,WebkitBackdropFilter:E},...O,children:r})]});return(0,i.jsx)(i.Fragment,{children:!v&&S?(0,i.jsx)(n.Modal,{isOpen:e,onClose:t,size:a,blockScrollOnMount:!1,trapFocus:!1,children:(0,i.jsx)(Ne,{isOpen:e,onClose:t,ariaTitle:`Dialog`,ariaDescription:`Dialog content area`,isDismissable:f,minHeight:m,maxHeight:h,children:r})}):k})},Fe=async t=>{let n=new URL(`/api/v1/apps/${t}`,e.h),r=await fetch(n,{headers:{"privy-app-id":t}});if(!r.ok)throw Error(`Failed to fetch Privy app info`);return r.json()},Ie=e=>[`VECHAIN_KIT_PRIVY_APP_INFO`,...Array.isArray(e)?e:[e]],Le=e=>{let n=Array.isArray(e)?e:[e];return(0,m.useQuery)({queryKey:Ie(e),queryFn:async()=>{let e=await Promise.all(n.map(e=>Fe(e)));return Object.fromEntries(e.map((e,r)=>{let i=n[r],a=t.Y.find(e=>e.id===i);return[i,{...e,website:a?.website}]}))},enabled:n.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})},Re=async()=>{try{let t=new URL(`summary.json`,e.g),n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch Privy status`);return(await n.json()).page.status??`No data`}catch(e){return console.error(`Error fetching data:`,e),`Error fetching data`}},ze=()=>(0,m.useQuery)({queryKey:[`PRIVY_STATUS`],queryFn:Re,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}),X=e=>[`VECHAIN_KIT_DOMAIN`,e],Be=e=>{let{network:n}=$();return(0,m.useQuery)({queryKey:X(e),queryFn:async()=>{if(!e)throw Error(`Address or domain is required`);if(n.type!==`main`&&n.type!==`test`){let n=t.j(e);return{address:n?e:void 0,domain:void 0,isValidAddressOrDomain:n,isPrimaryDomain:!1}}let r=await(0,y.isValidDomain)(e,{networkUrl:n.nodeUrl}),i=t.j(e);if(!r&&!i)throw Error(`Input must be a valid domain or address`);let a=null,o=null,s=!1;return r?(a=await(0,y.getDomainAddress)(e,{networkUrl:n.nodeUrl}),o=e,a&&(s=await(0,y.isPrimaryDomain)(e,a,{networkUrl:n.nodeUrl}))):(o=await(0,y.getAddressDomain)(e,{networkUrl:n.nodeUrl}),a=e,o&&(s=await(0,y.isPrimaryDomain)(o,e,{networkUrl:n.nodeUrl}))),{address:a||void 0,domain:o||void 0,isValidAddressOrDomain:r||i,isPrimaryDomain:s}},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 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})},Ve=async(e,n,r)=>{let i=(0,x.keccak256)((0,x.concat)([`0x571e15b4bbf879cf28e5075190137be8e18500e3d38543bf0cbcdb54e00b02cc`,(0,x.keccak256)((0,x.toBytes)(r))])),a=await e.contracts.load(t.bt(n).vetDomainsContractAddress,b.VetDomainsRegistry__factory.abi).read.recordExists(i);if(!a)throw Error(`Failed to get ENS record exists for ${r}`);return a[0]},He=e=>[`VECHAIN_KIT_ENS_RECORD_VE_WORLD_EXISTS`,e],Ue=e=>{let t=(0,p.useThor)(),{network:n}=$();return(0,m.useQuery)({queryKey:He(e),queryFn:()=>Ve(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})},We=(e,t)=>{let n=(0,m.useQueryClient)(),{network:r}=$();return{refresh:async()=>{await Promise.all([n.invalidateQueries({queryKey:lt(e??``,r.type)}),n.invalidateQueries({queryKey:pt(e,r.type)}),n.invalidateQueries({queryKey:Ct(t)})])}}},Ge=async(e,t,n,r,i,a)=>{await Promise.all([e.invalidateQueries({queryKey:X(t)}),e.invalidateQueries({queryKey:X(n)}),e.invalidateQueries({queryKey:He(r)}),e.invalidateQueries({queryKey:st(t,`.vet`)}),e.invalidateQueries({queryKey:st(t,`.veworld.vet`)}),e.invalidateQueries({queryKey:pt(n)})]),await Promise.all([e.refetchQueries({queryKey:X(t)}),e.refetchQueries({queryKey:X(n)}),e.refetchQueries({queryKey:st(t,`.vet`)}),e.refetchQueries({queryKey:st(t,`.veworld.vet`)}),e.refetchQueries({queryKey:lt(r+`.`+i,a)}),e.refetchQueries({queryKey:pt(n)}),e.refetchQueries({queryKey:He(r)}),e.refetchQueries({queryKey:Ct(t)})])},Ke=b.VeworldSubdomainClaimer__factory.createInterface(),qe=b.VetDomainsReverseRegistrar__factory.createInterface(),Je=(e,n,r,i,a)=>{let s=[];if(!e)throw Error(`Invalid subdomain`);let c=`${e}.${n}`;if(s.push({to:t.bt(a.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:qe.encodeFunctionData(`setName`,[``]),comment:`Unsetting your current VeChain nickname of the account ${t.W(i?.address??``,4,4)}`,abi:qe.getFunction(`setName`)}),r){s.push({to:t.bt(a.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:qe.encodeFunctionData(`setName`,[c]),comment:`Setting your VeChain nickname to ${c}`,abi:qe.getFunction(`setName`)});let e=new o.ethers.Interface([`function setAddr(bytes32 node, address addr)`]),n=o.ethers.namehash(c);s.push({to:t.bt(a.type).vetDomainsPublicResolverAddress,value:`0x0`,data:e.encodeFunctionData(`setAddr`,[n,i?.address||``]),comment:`Setting the address for ${c} to ${t.W(i?.address??``,4,4)}`,abi:e.getFunction(`setAddr`)})}else if(Xe(n))s.push({to:t.bt(a.type).veWorldSubdomainClaimerContractAddress,value:`0x0`,data:Ke.encodeFunctionData(`claim`,[e,t.bt(a.type).vetDomainsPublicResolverAddress]),comment:`Claim VeChain subdomain: ${e}.${n}`,abi:Ke.getFunction(`claim`)}),s.push({to:t.bt(a.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:qe.encodeFunctionData(`setName`,[e+`.`+n]),comment:`Set ${e}.${n} as the VeChain nickname of the account ${t.W(i?.address??``,4,4)}`,abi:qe.getFunction(`setName`)});else throw Error(`This hook only supports .veworld.vet subdomains`);return s},Ye=({subdomain:e,domain:t,onSuccess:n,onError:i,alreadyOwned:a=!1})=>{let o=(0,m.useQueryClient)(),{account:s}=Z(),{network:c}=$(),{refresh:l}=We(e+`.`+t,s?.address??``),u=(0,r.useCallback)(()=>Je(e,t,a,s,c),[e,t,a,s,c]),d=(0,r.useCallback)(async()=>{let r=`${e}.${t}`;await Ge(o,s?.address??``,r,e,t,c.type),l(),n?.()},[n,e,t,o,s,c.type,l]),f=Jn({signerAccountAddress:s?.address??``,privyUIOptions:{title:`Sign to claim your VeChain nickname`,description:`Claim ${e}.${t} as your VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:d,onTxFailedOrCancelled:()=>{i?.()}});return{...f,clauses:u,sendTransaction:async()=>f.sendTransaction(u())}},Xe=e=>e.endsWith(`veworld.vet`),Ze=b.VetDomainsReverseRegistrar__factory.createInterface(),Qe=(e,n,r,i)=>{let a=[];if(!e)throw Error(`Invalid domain`);if(n){a.push({to:t.bt(i.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:Ze.encodeFunctionData(`setName`,[e]),comment:`Setting your VeChain nickname to ${e}`,abi:Ze.getFunction(`setName`)});let n=new o.ethers.Interface([`function setAddr(bytes32 node, address addr)`]),s=o.ethers.namehash(e);a.push({to:t.bt(i.type).vetDomainsPublicResolverAddress,value:`0x0`,data:n.encodeFunctionData(`setAddr`,[s,r?.address||``]),comment:`Setting the address for ${e} to ${t.W(r?.address??``,4,4)}`,abi:n.getFunction(`setAddr`)})}else throw Error(`Primary .vet domains are not supported yet`);return a},$e=({domain:e,onSuccess:t,onError:n,alreadyOwned:i=!1})=>{let{network:a}=$(),o=(0,m.useQueryClient)(),{account:s}=Z(),{refresh:c}=We(e,s?.address??``),l=(0,r.useCallback)(()=>Qe(e,i,s,a),[e,i,s,a]),u=(0,r.useCallback)(async()=>{await Ge(o,s?.address??``,e,``,e.endsWith(`.vet`)?e:`${e}.vet`,a.type),c(),t?.()},[t,e,o,s,a.type,c]),d=Jn({signerAccountAddress:s?.address??``,privyUIOptions:{title:`Sign to claim your VeChain nickname`,description:`Claim ${e} as your VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:u,onTxFailedOrCancelled:n});return{...d,clauses:l,sendTransaction:async()=>d.sendTransaction(l())}},et=e=>[`VECHAIN_KIT_DOMAIN`,e,`IS_DOMAIN_PROTECTED`],tt=s.ABIContract.ofAbi(b.VeworldSubdomainClaimer__factory.abi),nt=async(e,n,r)=>{let i=t.bt(n).veWorldSubdomainClaimerContractAddress;return(await e.contracts.load(i,tt.abi).read.isDomainProtected(r))[0]},rt=(e,t=!0)=>{let n=(0,p.useThor)(),{network:r}=$();return(0,m.useQuery)({queryKey:et(e),queryFn:()=>nt(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})},it=S.z.object({name:S.z.string()}),at=S.z.object({domains:S.z.array(it)}),ot=async(e,n,r)=>{if(!n)throw Error(`Address is required`);let i=t.bt(e).graphQlIndexerUrl,a=`query Registrations {
121
+ `))}let Fe=null;function Ie(){return Fe||=new p.QueryClient({defaultOptions:{queries:{queryKeyHashFn:m.hashFn,retry:0,staleTime:3e4,refetchOnWindowFocus:!0,refetchOnMount:!0,refetchOnReconnect:!0,refetchInterval:!1,refetchIntervalInBackground:!1}}}),Fe}const Le=({children:e})=>{try{if(r.default.useContext(p.QueryClientContext))return(0,i.jsx)(i.Fragment,{children:e})}catch(e){console.log(e)}return(0,i.jsx)(p.QueryClientProvider,{client:Ie(),children:e})},J=({onClick:e,...t})=>(0,i.jsx)(n.IconButton,{"aria-label":`Back`,icon:(0,i.jsx)(n.Icon,{as:g.LuChevronLeft,fontSize:`20px`}),size:`sm`,variant:`vechainKitHeaderIconButtons`,position:`absolute`,left:`10px`,top:`8px`,onClick:e,lineHeight:`0`,...t}),Re=({wallet:e,label:a,style:o,showHumanAddress:s=!0,setCurrentContent:c,onLogout:u})=>{let{t:d}=(0,l.useTranslation)(),[f,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(!1),_=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),v=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),y=(0,n.useColorModeValue)(`#ebebeb`,`#ffffff0a`),b=(0,n.useColorModeValue)(`#ffffff`,`transparent`),x=async(e,n)=>{await t.lt(e)&&(n(!0),setTimeout(()=>{n(!1)},2e3))},S=()=>{c&&(e?.domain?c({type:`choose-name-search`,props:{name:``,setCurrentContent:c,initialContentSource:`profile`}}):c({type:`choose-name`,props:{setCurrentContent:c,initialContentSource:`profile`,onBack:()=>c(`profile`)}}))};return(0,i.jsx)(n.VStack,{w:`full`,justifyContent:`center`,...o,children:(0,i.jsxs)(n.VStack,{w:`full`,spacing:4,children:[a&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:v,children:a}),(0,i.jsxs)(n.VStack,{spacing:2,w:`full`,children:[e?.domain&&(0,i.jsxs)(n.HStack,{w:`full`,spacing:3,px:4,py:2,borderWidth:1,borderColor:y,borderRadius:`md`,bg:b,children:[(0,i.jsx)(n.Icon,{as:g.LuSquareUser,color:v}),(0,i.jsx)(n.Text,{flex:1,fontSize:`sm`,fontWeight:`700`,color:_,noOfLines:1,children:m?d(`Copied!`):e.domain}),(0,i.jsxs)(n.HStack,{spacing:2,children:[c&&(0,i.jsx)(n.IconButton,{icon:(0,i.jsx)(g.LuPencil,{}),height:`30px`,borderRadius:`5px`,variant:`vechainKitSecondary`,onClick:S,"aria-label":`Edit domain`}),(0,i.jsx)(n.IconButton,{icon:m?(0,i.jsx)(g.LuCheck,{}):(0,i.jsx)(g.LuCopy,{}),height:`30px`,borderRadius:`5px`,variant:`vechainKitSecondary`,onClick:()=>x(e.domain||``,h),"aria-label":`Copy domain`})]})]}),(0,i.jsxs)(n.HStack,{w:`full`,spacing:3,px:4,py:2,borderWidth:1,borderColor:y,borderRadius:`md`,bg:b,children:[(0,i.jsx)(n.Icon,{as:g.LuWallet,color:v}),(0,i.jsx)(n.Text,{flex:1,fontSize:`sm`,fontWeight:`700`,color:_,noOfLines:1,children:f?d(`Copied!`):s?t.W(e?.address??``,8,7):e?.address}),(0,i.jsxs)(n.HStack,{spacing:2,children:[(0,i.jsx)(n.IconButton,{icon:(0,i.jsx)(g.LuLogOut,{}),onClick:()=>c?.({type:`disconnect-confirm`,props:{onDisconnect:()=>u?.(),onBack:()=>c?.(`profile`)}}),variant:`vechainKitSecondary`,height:`30px`,w:`30px`,borderRadius:`5px`,"aria-label":`Copy address`}),(0,i.jsx)(n.IconButton,{icon:f?(0,i.jsx)(g.LuCheck,{}):(0,i.jsx)(g.LuCopy,{}),onClick:()=>x(e?.address??``,p),variant:`vechainKitSecondary`,height:`30px`,w:`30px`,borderRadius:`5px`,"aria-label":`Copy address`})]})]})]})]})})};var ze=`2.6.3`,Be={"@adraffy/ens-normalize":`^1.11.0`,"@chakra-ui/react":`^2.8.2`,"@emotion/styled":`^11.14.1`,"@privy-io/cross-app-connect":`0.2.2`,"@privy-io/react-auth":`2.25.0`,"@solana/web3.js":`^1.98.0`,"@tanstack/react-query":`^5.64.2`,"@tanstack/react-query-devtools":`^5.64.1`,"@vechain/contract-getters":`1.3.0`,"@vechain/dapp-kit-react":`2.1.0-rc.5`,"@vechain/picasso":`^2.1.1`,"@vechain/vechain-contract-types":`1.6.0-rc`,"@wagmi/core":`^2.17.2`,"bignumber.js":`^9.1.2`,"browser-image-compression":`^2.0.2`,dotenv:`^16.4.7`,ethers:`^6.13.5`,"framer-motion":`^11.15.0`,i18next:`^24.2.1`,"i18next-browser-languagedetector":`^8.0.2`,net:`^1.0.2`,process:`^0.11.10`,react:`^18.2.0`,"react-device-detect":`^2.2.3`,"react-hook-form":`^7.54.2`,"react-i18next":`^15.4.0`,"react-icons":`^5.4.0`,"react-qrcode-logo":`^3.0.0`,vaul:`^1.1.2`,viem:`^2.29.3`,wagmi:`^2.15.4`},Ve={"@chakra-ui/react":`^2.8.2`,"@emotion/react":`^11.0.0`,"@emotion/styled":`^11.0.0`,"@tanstack/react-query":`^5.64.2`,"@vechain/dapp-kit-react":`2.1.0-rc.5`,"framer-motion":`^11.0.0`,react:`^18.0.0`,"react-dom":`^18.0.0`};const He=({...t})=>{let{darkMode:r}=$();return(0,i.jsxs)(n.HStack,{w:`full`,justifyContent:`center`,alignItems:`center`,spacing:0,...t,children:[(0,i.jsx)(e.J,{isDark:r,w:`70px`,h:`auto`,opacity:.4,mr:1,ml:`-16px`}),(0,i.jsxs)(n.Link,{fontSize:`11px`,fontWeight:`500`,opacity:.4,textAlign:`left`,href:`https://github.com/vechain/vechain-kit/releases/tag/${ze}`,isExternal:!0,pt:`1px`,children:[`v`,ze]})]})},Ue=(0,r.createContext)({hasContentBelow:!1}),We=()=>(0,r.useContext)(Ue),Y=({children:e})=>{let[t,a]=(0,r.useState)(!1),o=(0,r.useRef)(null),s=(0,r.useRef)(null),c=(0,r.useRef)(null),l=(0,r.useRef)(!0),{tokens:u}=so(),d=u?.effects?.backdropFilter?.stickyHeader??`blur(20px)`;return(0,r.useEffect)(()=>{let e=e=>{if(!e)return null;let t=e.parentElement;for(;t;){let e=window.getComputedStyle(t);if(e.overflowY===`auto`||e.overflowY===`scroll`||e.overflow===`auto`||e.overflow===`scroll`)return t;t=t.parentElement}return null},t=([e])=>{c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{if(l.current){l.current=!1,a(!1);return}a(!e.isIntersecting)},50)},n=e(s.current),r={threshold:0};n&&(r.root=n,r.rootMargin=`0px`);let i=new IntersectionObserver(t,r),u=setTimeout(()=>{o.current&&i.observe(o.current)},200);return()=>{clearTimeout(u),c.current&&clearTimeout(c.current),i.disconnect()}},[]),(0,i.jsxs)(Ue.Provider,{value:{hasContentBelow:t},children:[(0,i.jsx)(n.Box,{ref:s,position:`sticky`,top:`0`,left:`0`,w:`full`,borderRadius:`24px 24px 0px 0px`,backdropFilter:t?d:`none`,style:{WebkitBackdropFilter:t?d:`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}),(0,i.jsx)(`div`,{ref:o,style:{height:`1px`,width:`100%`,pointerEvents:`none`,visibility:`hidden`,marginTop:`-1px`}})]})},Ge=({children:e})=>(0,i.jsx)(n.Box,{position:`absolute`,bottom:`0`,left:`0`,right:`0`,bg:(0,n.useToken)(`colors`,`vechain-kit-modal`),zIndex:`1000`,p:4,w:`full`,children:e}),Ke=({scrollableContainerRef:e,observerRef:t})=>{let a=(0,n.useToken)(`colors`,`vechain-kit-border`),{tokens:o}=so(),s=o?.effects?.backdropFilter?.stickyHeader??`blur(20px)`,[c,l]=(0,r.useState)(!1),u=(0,r.useRef)(null),d=(0,r.useRef)(!0);return(0,r.useEffect)(()=>{let n=([e])=>{u.current&&clearTimeout(u.current),u.current=setTimeout(()=>{if(d.current){d.current=!1,l(!1);return}l(!e.isIntersecting)},50)},r={threshold:0};e.current&&(r.root=e.current,r.rootMargin=`0px`);let i=new IntersectionObserver(n,r),a=setTimeout(()=>{t.current&&i.observe(t.current)},200);return()=>{clearTimeout(a),u.current&&clearTimeout(u.current),i.disconnect()}},[e,t]),(0,i.jsx)(n.Box,{position:`sticky`,top:`0`,w:`full`,backdropFilter:c?s:`none`,style:{WebkitBackdropFilter:c?s:`none`},zIndex:999,transition:`backdrop-filter 0.2s ease-in-out`,children:(0,i.jsx)(n.Box,{mx:`auto`,w:`34px`,h:`5px`,bg:a,mt:4,rounded:`full`})})},qe=({isOpen:e,onClose:t,children:a,ariaTitle:o,ariaDescription:s,isDismissable:c=!0,minHeight:l,maxHeight:u=`68vh`,closeThreshold:d=.5})=>{let f=(0,n.useToken)(`colors`,`vechain-kit-modal`),p=(0,n.useToken)(`colors`,`vechain-kit-overlay`),m=(0,r.useRef)(null),h=(0,r.useRef)(null),{tokens:g}=so(),v=g?.effects?.backdropFilter?.overlay,y=g?.colors?.border?.modal||`none`;return(0,i.jsx)(_.Drawer.Root,{dismissible:c,shouldScaleBackground:!0,repositionInputs:!1,open:e,closeThreshold:d,onOpenChange:e=>{e||t()},children:(0,i.jsxs)(_.Drawer.Portal,{children:[(0,i.jsx)(_.Drawer.Overlay,{style:{zIndex:100,position:`fixed`,top:0,right:0,bottom:0,left:0,backgroundColor:p,backdropFilter:v,WebkitBackdropFilter:v}}),(0,i.jsxs)(_.Drawer.Content,{"aria-description":s,style:{zIndex:101,backgroundColor:f,borderRadius:`24px 24px 0 0`,border:y,position:`fixed`,bottom:0,left:0,right:0,...l&&{minHeight:l},maxHeight:u,display:`flex`,flexDirection:`column`},children:[(0,i.jsx)(_.Drawer.Title,{style:{position:`absolute`,width:`1px`,height:`1px`,padding:0,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:0},children:o}),(0,i.jsxs)(n.Box,{ref:m,flex:`1`,overflowY:`auto`,children:[(0,i.jsx)(Ke,{scrollableContainerRef:m,observerRef:h}),(0,i.jsx)(`div`,{ref:h,style:{height:`1px`,width:`100%`,visibility:`hidden`,marginTop:`-1px`}}),a]})]})]})})},Je=({isOpen:e,onClose:t,children:r,size:a=`sm`,isCentered:o=!0,motionPreset:s=`slideInBottom`,closeOnOverlayClick:c=!0,blockScrollOnMount:l=!1,allowExternalFocus:u=!1,backdropFilter:d,isCloseable:f=!0,useBottomSheetOnMobile:p,mobileMinHeight:m,mobileMaxHeight:h=`57vh`,desktopMinHeight:g,desktopMaxHeight:_})=>{let[v]=(0,n.useMediaQuery)(`(min-width: 768px)`),{portalRootRef:y,themeConfig:b,tokens:x}=so(),S=p??b?.modal?.useBottomSheetOnMobile??!1,C=(0,n.useToken)(`colors`,`vechain-kit-modal`),w=(0,n.useToken)(`colors`,`vechain-kit-overlay`),T=x?.effects?.backdropFilter?.overlay,E=x?.effects?.backdropFilter?.modal,D=d??T??`blur(3px)`,O=v?{minHeight:g,maxHeight:_}:{position:`fixed`,bottom:`0`,mb:`0`,maxW:`2xl`,borderRadius:`24px 24px 0px 0px !important`,overflowY:`auto`,overflowX:`hidden`,scrollBehavior:`smooth`,minHeight:m,maxHeight:h},k=(0,i.jsxs)(n.Modal,{motionPreset:s,isOpen:e,onClose:t,isCentered:o,size:a,returnFocusOnClose:!1,blockScrollOnMount:l,closeOnOverlayClick:c&&f,preserveScrollBarGap:!0,portalProps:{containerRef:y},trapFocus:!u,autoFocus:!u,variant:`vechainKitBase`,children:[(0,i.jsx)(n.ModalOverlay,{bg:w,backdropFilter:D}),(0,i.jsx)(n.ModalContent,{role:`dialog`,"aria-modal":!u,bg:C,sx:{backdropFilter:E,WebkitBackdropFilter:E},...O,children:r})]});return(0,i.jsx)(i.Fragment,{children:!v&&S?(0,i.jsx)(n.Modal,{isOpen:e,onClose:t,size:a,blockScrollOnMount:!1,trapFocus:!1,children:(0,i.jsx)(qe,{isOpen:e,onClose:t,ariaTitle:`Dialog`,ariaDescription:`Dialog content area`,isDismissable:f,minHeight:m,maxHeight:h,children:r})}):k})},Ye=async t=>{let n=new URL(`/api/v1/apps/${t}`,e.h),r=await fetch(n,{headers:{"privy-app-id":t}});if(!r.ok)throw Error(`Failed to fetch Privy app info`);return r.json()},Xe=e=>[`VECHAIN_KIT_PRIVY_APP_INFO`,...Array.isArray(e)?e:[e]],Ze=e=>{let n=Array.isArray(e)?e:[e];return(0,p.useQuery)({queryKey:Xe(e),queryFn:async()=>{let e=await Promise.all(n.map(e=>Ye(e)));return Object.fromEntries(e.map((e,r)=>{let i=n[r],a=t.Y.find(e=>e.id===i);return[i,{...e,website:a?.website}]}))},enabled:n.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})},Qe=async()=>{try{let t=new URL(`summary.json`,e.g),n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch Privy status`);return(await n.json()).page.status??`No data`}catch(e){return console.error(`Error fetching data:`,e),`Error fetching data`}},$e=()=>(0,p.useQuery)({queryKey:[`PRIVY_STATUS`],queryFn:Qe,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}),et=e=>[`VECHAIN_KIT_DOMAIN`,e],tt=e=>{let{network:n}=$();return(0,p.useQuery)({queryKey:et(e),queryFn:async()=>{if(!e)throw Error(`Address or domain is required`);if(n.type!==`main`&&n.type!==`test`){let n=t.j(e);return{address:n?e:void 0,domain:void 0,isValidAddressOrDomain:n,isPrimaryDomain:!1}}let r=await(0,v.isValidDomain)(e,{networkUrl:n.nodeUrl}),i=t.j(e);if(!r&&!i)throw Error(`Input must be a valid domain or address`);let a=null,o=null,s=!1;return r?(a=await(0,v.getDomainAddress)(e,{networkUrl:n.nodeUrl}),o=e,a&&(s=await(0,v.isPrimaryDomain)(e,a,{networkUrl:n.nodeUrl}))):(o=await(0,v.getAddressDomain)(e,{networkUrl:n.nodeUrl}),a=e,o&&(s=await(0,v.isPrimaryDomain)(o,e,{networkUrl:n.nodeUrl}))),{address:a||void 0,domain:o||void 0,isValidAddressOrDomain:r||i,isPrimaryDomain:s}},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 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})},nt=async(e,n,r)=>{let i=(0,b.keccak256)((0,b.concat)([`0x571e15b4bbf879cf28e5075190137be8e18500e3d38543bf0cbcdb54e00b02cc`,(0,b.keccak256)((0,b.toBytes)(r))])),a=await e.contracts.load(t.bt(n).vetDomainsContractAddress,y.VetDomainsRegistry__factory.abi).read.recordExists(i);if(!a)throw Error(`Failed to get ENS record exists for ${r}`);return a[0]},rt=e=>[`VECHAIN_KIT_ENS_RECORD_VE_WORLD_EXISTS`,e],it=e=>{let t=(0,f.useThor)(),{network:n}=$();return(0,p.useQuery)({queryKey:rt(e),queryFn:()=>nt(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})},at=(e,t)=>{let n=(0,p.useQueryClient)(),{network:r}=$();return{refresh:async()=>{await Promise.all([n.invalidateQueries({queryKey:wt(e??``,r.type)}),n.invalidateQueries({queryKey:Ot(e,r.type)}),n.invalidateQueries({queryKey:Rt(t)})])}}},ot=async(e,t,n,r,i,a)=>{await Promise.all([e.invalidateQueries({queryKey:et(t)}),e.invalidateQueries({queryKey:et(n)}),e.invalidateQueries({queryKey:rt(r)}),e.invalidateQueries({queryKey:St(t,`.vet`)}),e.invalidateQueries({queryKey:St(t,`.veworld.vet`)}),e.invalidateQueries({queryKey:Ot(n)})]),await Promise.all([e.refetchQueries({queryKey:et(t)}),e.refetchQueries({queryKey:et(n)}),e.refetchQueries({queryKey:St(t,`.vet`)}),e.refetchQueries({queryKey:St(t,`.veworld.vet`)}),e.refetchQueries({queryKey:wt(r+`.`+i,a)}),e.refetchQueries({queryKey:Ot(n)}),e.refetchQueries({queryKey:rt(r)}),e.refetchQueries({queryKey:Rt(t)})])},st=y.VeworldSubdomainClaimer__factory.createInterface(),ct=y.VetDomainsReverseRegistrar__factory.createInterface(),lt=(e,n,r,i,a)=>{let s=[];if(!e)throw Error(`Invalid subdomain`);let c=`${e}.${n}`;if(s.push({to:t.bt(a.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:ct.encodeFunctionData(`setName`,[``]),comment:`Unsetting your current VeChain nickname of the account ${t.W(i?.address??``,4,4)}`,abi:ct.getFunction(`setName`)}),r){s.push({to:t.bt(a.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:ct.encodeFunctionData(`setName`,[c]),comment:`Setting your VeChain nickname to ${c}`,abi:ct.getFunction(`setName`)});let e=new o.ethers.Interface([`function setAddr(bytes32 node, address addr)`]),n=o.ethers.namehash(c);s.push({to:t.bt(a.type).vetDomainsPublicResolverAddress,value:`0x0`,data:e.encodeFunctionData(`setAddr`,[n,i?.address||``]),comment:`Setting the address for ${c} to ${t.W(i?.address??``,4,4)}`,abi:e.getFunction(`setAddr`)})}else if(dt(n))s.push({to:t.bt(a.type).veWorldSubdomainClaimerContractAddress,value:`0x0`,data:st.encodeFunctionData(`claim`,[e,t.bt(a.type).vetDomainsPublicResolverAddress]),comment:`Claim VeChain subdomain: ${e}.${n}`,abi:st.getFunction(`claim`)}),s.push({to:t.bt(a.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:ct.encodeFunctionData(`setName`,[e+`.`+n]),comment:`Set ${e}.${n} as the VeChain nickname of the account ${t.W(i?.address??``,4,4)}`,abi:ct.getFunction(`setName`)});else throw Error(`This hook only supports .veworld.vet subdomains`);return s},ut=({subdomain:e,domain:t,onSuccess:n,onError:i,alreadyOwned:a=!1})=>{let o=(0,p.useQueryClient)(),{account:s}=X(),{network:c}=$(),{refresh:l}=at(e+`.`+t,s?.address??``),u=(0,r.useCallback)(()=>lt(e,t,a,s,c),[e,t,a,s,c]),d=(0,r.useCallback)(async()=>{let r=`${e}.${t}`;await ot(o,s?.address??``,r,e,t,c.type),l(),n?.()},[n,e,t,o,s,c.type,l]),f=lr({signerAccountAddress:s?.address??``,privyUIOptions:{title:`Sign to claim your VeChain nickname`,description:`Claim ${e}.${t} as your VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:d,onTxFailedOrCancelled:()=>{i?.()}});return{...f,clauses:u,sendTransaction:async()=>f.sendTransaction(u())}},dt=e=>e.endsWith(`veworld.vet`),ft=y.VetDomainsReverseRegistrar__factory.createInterface(),pt=(e,n,r,i)=>{let a=[];if(!e)throw Error(`Invalid domain`);if(n){a.push({to:t.bt(i.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:ft.encodeFunctionData(`setName`,[e]),comment:`Setting your VeChain nickname to ${e}`,abi:ft.getFunction(`setName`)});let n=new o.ethers.Interface([`function setAddr(bytes32 node, address addr)`]),s=o.ethers.namehash(e);a.push({to:t.bt(i.type).vetDomainsPublicResolverAddress,value:`0x0`,data:n.encodeFunctionData(`setAddr`,[s,r?.address||``]),comment:`Setting the address for ${e} to ${t.W(r?.address??``,4,4)}`,abi:n.getFunction(`setAddr`)})}else throw Error(`Primary .vet domains are not supported yet`);return a},mt=({domain:e,onSuccess:t,onError:n,alreadyOwned:i=!1})=>{let{network:a}=$(),o=(0,p.useQueryClient)(),{account:s}=X(),{refresh:c}=at(e,s?.address??``),l=(0,r.useCallback)(()=>pt(e,i,s,a),[e,i,s,a]),u=(0,r.useCallback)(async()=>{await ot(o,s?.address??``,e,``,e.endsWith(`.vet`)?e:`${e}.vet`,a.type),c(),t?.()},[t,e,o,s,a.type,c]),d=lr({signerAccountAddress:s?.address??``,privyUIOptions:{title:`Sign to claim your VeChain nickname`,description:`Claim ${e} as your VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:u,onTxFailedOrCancelled:n});return{...d,clauses:l,sendTransaction:async()=>d.sendTransaction(l())}},ht=e=>[`VECHAIN_KIT_DOMAIN`,e,`IS_DOMAIN_PROTECTED`],gt=s.ABIContract.ofAbi(y.VeworldSubdomainClaimer__factory.abi),_t=async(e,n,r)=>{let i=t.bt(n).veWorldSubdomainClaimerContractAddress;return(await e.contracts.load(i,gt.abi).read.isDomainProtected(r))[0]},vt=(e,t=!0)=>{let n=(0,f.useThor)(),{network:r}=$();return(0,p.useQuery)({queryKey:ht(e),queryFn:()=>_t(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})},yt=x.z.object({name:x.z.string()}),bt=x.z.object({domains:x.z.array(yt)}),xt=async(e,n,r)=>{if(!n)throw Error(`Address is required`);let i=t.bt(e).graphQlIndexerUrl,a=`query Registrations {
122
122
  domains(
123
123
  where: ${r?`{owner: "${n.toLowerCase()}", parent_: {name: "${r}"}}`:`{owner: "${n.toLowerCase()}"}`}
124
124
  ) {
125
125
  name
126
126
  }
127
- }`,o=await fetch(i,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({operationName:`Registrations`,query:a,extensions:{}})});if(!o.ok)throw Error(`Failed to fetch domains`);let s=await o.json();return s.data&&s.data.domains&&(s.data.domains=s.data.domains.filter(e=>!e.name.endsWith(`addr.reverse`))),at.parse(s.data)},st=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,e,t],ct=(e,t)=>{let{network:n}=$();return(0,m.useQuery)({queryKey:st(e,t),queryFn:()=>ot(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})},lt=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR`,e,t],ut=e=>{let{network:t}=$();return(0,m.useQuery)({queryKey:lt(e??``,t.type),queryFn:async()=>e?(0,y.getAvatar)(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})},dt=new o.Interface([`function resolver(bytes32 node) returns (address resolverAddress)`,`function text(bytes32 node, string key) view returns (string)`]),ft=async(e,n,r)=>{if(!r)return{};let i=(0,o.namehash)(r);try{let r=new URL(`accounts/*`,e),[{data:a,reverted:o}]=await(await fetch(r,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:t.bt(n).vetDomainsContractAddress,data:dt.encodeFunctionData(`resolver`,[i])}]})})).json();if(o)return{};let{resolverAddress:s}=dt.decodeFunctionResult(`resolver`,a);return(await(await fetch(r,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:t.S.map(e=>({to:s,data:dt.encodeFunctionData(`text`,[i,e])}))})})).json()).reduce((e,{data:n,reverted:r},i)=>{if(!r&&n&&n!==`0x`)try{let r=dt.decodeFunctionResult(`text`,n)[0];r&&(e[t.S[i]]=r)}catch(e){console.error(`Failed to decode text record for ${t.S[i]}:`,e)}return e},{})}catch(e){throw console.error(`Error fetching text records:`,e),e}},pt=(e,t)=>[`VECHAIN_KIT_TEXT_RECORDS`,e,t],mt=e=>{let{network:n}=$(),r=n.nodeUrl??t.bt(n.type).nodeUrl;return(0,m.useQuery)({queryKey:pt(e,n.type),queryFn:()=>ft(r,n.type,e),enabled:!!e&&!!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})},ht=new o.Interface([`function resolver(bytes32 node) returns (address resolverAddress)`,`function setText(bytes32 node, string key, string value) external`]),gt=(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=(0,o.namehash)(r);n.push({to:e,data:ht.encodeFunctionData(`setText`,[t,i,a]),value:`0`,comment:`Update ${i} record`})}return n},_t=({onSuccess:e,onError:t,signerAccountAddress:n,resolverAddress:i}={})=>{let a=(0,r.useCallback)(e=>{if(!i)throw Error(`Resolver address is required`);return gt(i,e)},[i]),o=Jn({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{...o,clauses:a,sendTransaction:async e=>o.sendTransaction(a(e))}},vt=e=>[`VECHAIN_KIT`,`RESOLVER_ADDRESS`,e],yt=e=>{let{network:n}=$();return Jo({address:t.bt(n.type).vetDomainsContractAddress,abi:b.VetDomainsRegistry__factory.abi,method:`resolver`,args:[e?(0,x.namehash)(e):`0x`],queryOptions:{select:e=>e[0],enabled:!!e}})},bt={Mugshot:new URL(`mugshot.png`,e.w).toString(),Greencart:new URL(`greencart.png`,e.w).toString(),Cleanify:new URL(`cleanify.png`,e.w).toString(),EVearn:new URL(`evearn.png`,e.w).toString()},xt=`vechain_kit_cross_app_connection`,St=()=>{let e=t.dt(`vechain_kit_cross_app_connection`);if(!e)return null;try{let t=JSON.parse(e)?.ecosystemApp?.name;return t?bt[t]??null:null}catch{return null}},Ct=e=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR_OF_ADDRESS`,e],wt=e=>{let{network:n}=$();return(0,m.useQuery)({queryKey:Ct(e),queryFn:async()=>{if(!e||!n.nodeUrl)return St()??t.U(e??``);if(n.type!==`main`&&n.type!==`test`)return St()??t.U(e);let r=await(0,y.getAddressDomain)(e,{networkUrl:n.nodeUrl});return r&&await(0,y.getAvatar)(r,{networkUrl:n.nodeUrl})||(St()??t.U(e??``))},enabled:!!e&&!!n.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})},Tt=new o.Interface([`function resolver(bytes32 node) returns (address resolverAddress)`,`function text(bytes32 node, string key) returns (string avatar)`]),Et=new o.Interface([`function tokenURI(uint256 tokenId) view returns (string)`,`function uri(uint256 id) view returns (string)`]),Dt=async(e,n,r)=>{if(!r)throw Error(`Name is required`);let i=(0,o.namehash)(r);try{let r=new URL(`accounts/*`,n),[{data:a,reverted:o}]=await(await fetch(r,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:t.bt(e).vetDomainsContractAddress,data:Tt.encodeFunctionData(`resolver`,[i])}]})})).json();if(o)return null;let{resolverAddress:s}=Tt.decodeFunctionResult(`resolver`,a),[{data:c,reverted:l}]=await(await fetch(r,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:s,data:Tt.encodeFunctionData(`text`,[i,`avatar`])}]})})).json();if(l||c===`0x`)return null;try{let{avatar:t}=Tt.decodeFunctionResult(`text`,c),r=t===``?null:t;return r?kt(r,e,n):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}},Ot=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR`,`LEGACY`,e,t];async function kt(e,n,r){try{if(e.startsWith(`http`)||e.startsWith(`ipfs://`)||e.startsWith(`ar://`))return t.g(e,n)||null;let i=e.match(/eip155:(\d+)\/(?:erc721|erc1155):([^/]+)\/(\d+)/);if(i){let[,a,s,c]=i,l=e.includes(`erc1155`);if(!a||!s||c===void 0)return null;let u=[{to:s,data:Et.encodeFunctionData(l?`uri`:`tokenURI`,[BigInt(c||0)])}],d=new URL(`accounts/*`,r),[{data:f,reverted:p}]=await fetch(d,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:u})}).then(e=>e.json());if(p)return console.error(`Failed to fetch tokenURI`),null;let m=``;try{m=Et.decodeFunctionResult(l?`uri`:`tokenURI`,f)[0]}catch(e){console.error(`Failed to decode avatar data:`,e),m=(0,o.toUtf8String)(f)}m=t.g(m,n)||m,l&&(m=m.replace(`{id}`,(0,o.zeroPadValue)((0,o.toBeHex)(BigInt(c||0)),32).slice(2)));let h=await fetch(m);if(!h.ok)return console.error(`Failed to fetch metadata`),null;let g=await h.json(),_=g.image||g.image_url||g.image_data;return _?t.g(_,n)||_:(console.error(`No image URL in metadata`),null)}return null}catch(e){return console.error(`Error parsing avatar record:`,e),null}}const At=e=>{let{network:n}=$(),r=n.nodeUrl??t.bt(n.type).nodeUrl;return(0,m.useQuery)({queryKey:Ot(e??``,n.type),queryFn:async()=>e?Dt(n.type,r,e):null,enabled:!!e&&!!r&&!!n.type})},jt=b.VetDomainsReverseRegistrar__factory.createInterface(),Mt=(e,n)=>{let r=[];return r.push({to:t.bt(n.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:jt.encodeFunctionData(`setName`,[``]),comment:`Unsetting your current VeChain nickname of the account ${t.W(e?.address??``,4,4)}`,abi:jt.getFunction(`setName`)}),r},Nt=({onSuccess:e,onError:t})=>{let n=(0,m.useQueryClient)(),{account:i}=Z(),{network:a}=$(),o=(0,r.useCallback)(()=>Mt(i,a),[i,a]),s=(0,r.useCallback)(async()=>{await Ge(n,i?.address??``,``,``,``,a.type),e?.()},[e,n,i,a.type]),c=Jn({signerAccountAddress:i?.address??``,privyUIOptions:{title:`Sign to unset your VeChain nickname`,description:`Unset your current VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:s,onTxFailedOrCancelled:t});return{...c,clauses:o,sendTransaction:async()=>c.sendTransaction(o())}},Pt=e=>{let{network:n,allowCommunityTokens:i}=$(),a=t.bt(n.type),{data:o,isLoading:s}=is(e),{data:c,isLoading:l}=rn(e),{data:u,isLoading:d}=un(e),{data:f,isLoading:p}=cn(a.veDelegateTokenContractAddress,e),{data:m,isLoading:h}=cn(a.sassContractAddress,e,{enabled:i}),g=on(e),_=g.map(e=>e.data).filter(Boolean),v=g.some(e=>e.isLoading);return{balances:(0,r.useMemo)(()=>{if(!e)return[];let t={vet:`0x`,vtho:a.vthoContractAddress,b3tr:a.b3trContractAddress,vot3:a.vot3ContractAddress,veDelegate:a.veDelegate},n=[{address:t.vet,symbol:`VET`,balance:o?.balance||`0`},{address:t.vtho,symbol:`VTHO`,balance:o?.energy||`0`},{address:t.b3tr,symbol:`B3TR`,balance:c?.scaled??`0`},{address:t.vot3,symbol:`VOT3`,balance:u?.scaled??`0`},{address:t.veDelegate,symbol:`veDelegate`,balance:f?.scaled??`0`}],r=_.map(e=>({address:e?.address||``,symbol:e?.symbol||``,balance:e?.scaled||`0`})),s=i?[{address:a.sassContractAddress,symbol:`SASS`,balance:m?.scaled??`0`}]:[];return[...n,...r,...s]},[e,o,c,u,f,_,i,m,a.sassContractAddress,n.type]),isLoading:s||l||d||p||i&&h||v}},Ft={B3TR:`0x623374722d757364000000000000000000000000000000000000000000000000`,VET:`0x7665742d75736400000000000000000000000000000000000000000000000000`,VTHO:`0x7674686f2d757364000000000000000000000000000000000000000000000000`,GBP:`0x6762702d75736400000000000000000000000000000000000000000000000000`,EUR:`0x657572742d757364000000000000000000000000000000000000000000000000`},It=async(e,n,r)=>{let i=await e.contracts.load(t.bt(r).oracleContractAddress,b.OracleVechainEnergy__factory.abi).read.getLatestValue(Ft[n]);if(!i)throw Error(`Failed to get price of ${n}`);return new a.BigNumber(i[0].toString()).div(0xe8d4a51000).toNumber()},Lt=e=>[`VECHAIN_KIT_PRICE`,e],Rt=e=>{let t=(0,p.useThor)(),{network:n}=$();return(0,m.useQuery)({queryKey:Lt(e),queryFn:async()=>It(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})},zt=()=>{let{network:e}=$(),n=t.bt(e.type),{data:i,isLoading:a}=Rt(`VET`),{data:o,isLoading:s}=Rt(`VTHO`),{data:c,isLoading:l}=Rt(`B3TR`),{data:u,isLoading:d}=Rt(`EUR`),{data:f,isLoading:p}=Rt(`GBP`);return{prices:(0,r.useMemo)(()=>{let e={vet:`0x`,vtho:n.vthoContractAddress,b3tr:n.b3trContractAddress,vot3:n.vot3ContractAddress,veDelegate:n.veDelegate,SASS:n.sassContractAddress};return{[e.vet]:i||0,[e.vtho]:o||0,[e.b3tr]:c||0,[e.vot3]:c||0,[e.veDelegate]:c||0,[e.SASS]:0}},[i,o,c,n.vthoContractAddress,n.b3trContractAddress,n.vot3ContractAddress,n.veDelegate,n.sassContractAddress]),exchangeRates:(0,r.useMemo)(()=>({eurUsdPrice:u||1,gbpUsdPrice:f||1}),[u,f]),isLoading:a||s||l||d||p}},Bt=(e,t,n)=>{switch(t){case`eur`:return e/n.eurUsdPrice;case`gbp`:return e/n.gbpUsdPrice;default:return e}},Vt=(e,t=`en`,n)=>{let r={style:`currency`,minimumFractionDigits:2,maximumFractionDigits:2,currency:n?.currency??`usd`,...n};return new Intl.NumberFormat(H[t],r).format(e)},Ht=(e,t)=>Vt(e,U.resolvedLanguage,{notation:`compact`,compactDisplay:`short`,currency:t?.currency??`usd`,...t}),Ut=`vechain_kit_currency`,Wt=[`usd`,`eur`,`gbp`],Gt=()=>{let{currentCurrency:e,setCurrency:n}=$();return(0,r.useEffect)(()=>{t.yt(`vechain_kit_currency`,e)},[e]),{currentCurrency:e,allCurrencies:Wt,changeCurrency:e=>{if(!Wt.includes(e)){console.error(`Invalid currency: ${e}`);return}n(e)}}},Kt=({address:e=``})=>{let{balances:t,isLoading:n}=Pt(e),{prices:i,exchangeRates:a,isLoading:o}=zt(),{currentCurrency:s}=Gt(),c=(0,r.useMemo)(()=>t.map(e=>{let t=i[e.address]||0,n=Number(e.balance)*t,r=Bt(n,s,a);return{...e,priceUsd:t,valueUsd:n,valueInCurrency:r}}),[t,i,s,a]),l=(0,r.useMemo)(()=>[...c].sort((e,t)=>t.valueInCurrency-e.valueInCurrency),[c]);return{tokens:c,sortedTokens:l,tokensWithBalance:(0,r.useMemo)(()=>l.filter(e=>Number(e.balance)>0),[l]),isLoading:n||o}},qt=({address:e=``})=>{let{tokensWithBalance:t,isLoading:n}=Kt({address:e}),{currentCurrency:i}=Gt(),a=(0,r.useMemo)(()=>t.reduce((e,t)=>e+t.valueInCurrency,0),[t]);return{totalBalanceInCurrency:a,totalBalanceUsd:(0,r.useMemo)(()=>t.reduce((e,t)=>e+t.valueUsd,0),[t]),formattedBalance:(0,r.useMemo)(()=>Ht(a,{currency:i}),[a,i]),isLoading:n,hasAnyBalance:t.length>0}},Jt=b.XAllocationVoting__factory.abi,Yt=`currentRoundId`,Xt=e=>Go({abi:Jt,address:e,method:Yt}),Zt=()=>{let{network:e}=$(),n=t.bt(e.type).xAllocationVotingContractAddress;return Jo({abi:Jt,address:n,method:Yt,args:[],queryOptions:{select:e=>e[0].toString()}})},Qt=async(e,t)=>(0,y.getTokenInfo)(e,{networkUrl:t}),$t=e=>[`VECHAIN_KIT_CUSTOM_TOKEN_INFO`,e],en=e=>{let{network:t}=$();return(0,m.useQuery)({queryKey:$t(e),queryFn:async()=>{if(!e)throw Error(`Token address is required`);if(!t.nodeUrl)throw Error(`Network node URL is required`);return Qt(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})},tn=()=>{let[e,n]=uc(lc.CUSTOM_TOKENS,[]),{network:r}=$(),i=async t=>{if(!o(t)&&!s(t)){if(!r.nodeUrl)throw Error(`Network node URL is required`);let i={...await Qt(t,r.nodeUrl),address:t};n([...e,i])}},a=t=>{n(e.filter(e=>e.address!==t))},o=n=>e.some(e=>t.k(e.address,n)),s=e=>{let n={vet:`0x`,vtho:t.bt(r.type).vthoContractAddress,b3tr:t.bt(r.type).b3trContractAddress,vot3:t.bt(r.type).vot3ContractAddress,veDelegate:t.bt(r.type).veDelegate};return Object.values(n).includes(e)};return{customTokens:e,addToken:i,removeToken:a,isTokenIncluded:o,isDefaultToken:s}},nn=e=>[`VEBETTERDAO_BALANCE`,e,`B3TR`],rn=e=>{let{network:n}=$();return(0,m.useQuery)({queryKey:nn(e),queryFn:async()=>{if(!e)throw Error(`Address is required`);let r=await(0,y.getB3trBalance)(e,{networkUrl:n.nodeUrl});if(!r)throw Error(`Failed to get b3tr balance`);let i=r[0];return t.H(i)},enabled:!!e&&!!n.type})},an=(e,t)=>[`VECHAIN_KIT_BALANCE`,t,`CUSTOM_TOKEN`,e],on=e=>{let{network:n}=$(),{customTokens:r}=tn();return(0,m.useQueries)({queries:r.map(r=>({queryKey:an(r.address,e),queryFn:async()=>{if(!r.address)throw Error(`Token address is required`);if(!e)throw Error(`Address is required`);if(!n.nodeUrl)throw Error(`Network node URL is required`);let i=await(0,y.getErc20Balance)(r.address,e,{networkUrl:n.nodeUrl});if(!i)throw Error(`Failed to get token balance`);let a=t.H(i[0]);return{...r,...a}}}))})},sn=(e,t)=>[`VECHAIN_KIT`,`BALANCE`,`ERC20`,e,t],cn=(e,n,r)=>{let{network:i}=$(),a=!!n&&!!i.type;return(0,m.useQuery)({queryKey:sn(e,n),queryFn:async()=>{if(!n)throw Error(`Address is required`);let r=await(0,y.getErc20Balance)(e,n,{networkUrl:i.nodeUrl});if(!r)throw Error(`Failed to get vot3 balance`);let a=r[0];return t.H(a)},enabled:a&&(r?.enabled??!0)})},ln=e=>[`VEBETTERDAO_BALANCE`,e,`VOT3`],un=e=>{let{network:n}=$();return(0,m.useQuery)({queryKey:ln(e),queryFn:async()=>{if(!e)throw Error(`Address is required`);let r=await(0,y.getVot3Balance)(e,{networkUrl:n.nodeUrl});if(!r)throw Error(`Failed to get vot3 balance`);let i=r[0];return t.H(i)},enabled:!!e&&!!n.type})},dn=(e,t)=>[`VECHAIN_KIT`,`IS_PERSON`,e,t],fn=e=>{let{network:t}=$();return(0,m.useQuery)({queryKey:dn(e??``,t.type),queryFn:async()=>{if(!e)throw Error(`User address is required`);return(0,y.getIsPerson)(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})},pn=b.XAllocationVoting__factory.abi,mn=`getAppsOfRound`,hn=(e,n)=>qo({abi:pn,address:t.bt(n).xAllocationVotingContractAddress,method:mn,args:[BigInt(e??0)]}),gn=e=>{let{network:n}=$(),r=t.bt(n.type).xAllocationVotingContractAddress;return Jo({abi:pn,address:r,method:mn,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()}))}})},_n=b.XAllocationPool__factory.abi,vn=`getAppShares`,yn=e=>[`VECHAIN_KIT`,`XApps`,`Shares`,e],bn=(e,n)=>{let r=(0,p.useThor)(),{network:i}=$(),a=t.bt(i.type).xAllocationPoolContractAddress;return(0,m.useQuery)({queryKey:yn(n),queryFn:async()=>(await t.r({thor:r,calls:e.map(e=>({abi:_n,functionName:`getAppShares`,address:a,args:[n,e]}))})).map((t,n)=>({app:e[n],share:Number(t[0]||0)/100,unallocatedShare:Number(t[1]||0)/100})),enabled:!!n&&!!e.length})},xn=e=>{let{data:t}=gn(e),n=bn(t?.map(e=>e.id)??[],e);return{data:(0,r.useMemo)(()=>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}},Sn=({error:e,mobileBrowserPopupMessage:n=`Mobile browser blocked the window. Please try again.`,rejectedMessage:r=`Request was cancelled.`,defaultMessage:i=`Operation failed`})=>{let a=e?.message;return T.isMobile&&a&&!t.a(a)?Error(n):a&&t.a(a)?Error(r):e instanceof Error?e:Error(i)},Cn=(0,x.defineChain)({id:`1176455790972829965191905223412607679856028701100105089447013101863`,name:`Vechain`,nativeCurrency:{name:`VeChain`,symbol:`VET`,decimals:18},rpcUrls:{default:{http:[e.E]}},blockExplorers:{default:{name:`Vechain Explorer`,url:e.S},vechainStats:{name:`Vechain Stats`,url:e.b}}}),wn=()=>(0,w.toPrivyWalletConnector)({id:t.at,name:`VeChain`,iconUrl:`https://imagedelivery.net/oHBRUd2clqykxgDWmeAyLg/661dd77c-2f9d-40e7-baa1-f4e24fd7bf00/icon`,smartWalletMode:!1}),Tn=({privyEcosystemAppIDS:e,children:t})=>(0,i.jsx)(C.WagmiProvider,{config:(0,r.useRef)((0,C.createConfig)({chains:[Cn],ssr:!0,connectors:[wn(),...e.map(e=>(0,w.toPrivyWalletConnector)({id:e,name:``,iconUrl:``}))],transports:{[Cn.id]:(0,C.http)()},multiInjectedProviderDiscovery:!1})).current,children:t}),En=()=>{let{connectAsync:e,connectors:n}=(0,C.useConnect)(),{signTypedDataAsync:i}=(0,C.useSignTypedData)(),{signMessageAsync:a}=(0,C.useSignMessage)(),{disconnectAsync:o}=(0,C.useDisconnect)(),{isConnected:s}=(0,C.useAccount)(),[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(null),f=(0,r.useCallback)(async()=>{try{s&&(await o(),t.mt()&&window.dispatchEvent(new Event(`wallet_disconnected`)))}catch(e){throw console.error(`Error during logout:`,e),e}},[o,s]);return{login:(0,r.useCallback)(async r=>{try{l(!0),d(null);let i=n.find(e=>e.id===(r||t.at));if(!i)throw Error(`Connector not found`);return await e({connector:i})}catch(e){throw d(e),e}finally{l(!1)}},[e,n]),logout:f,signMessage:(0,r.useCallback)(async e=>{try{return await a({message:e})}catch(e){throw Sn({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.`})}},[a]),signTypedData:(0,r.useCallback)(async e=>{try{return await i(e)}catch(e){throw Sn({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.`})}},[i]),isConnecting:c,connectionError:u}},Dn=(e,n)=>{let{data:r,isLoading:i}=Be(e??``),{data:a,isLoading:o}=wt(e??``),{data:s,isLoading:c}=mt(r?.domain??``),l=s?.header?t.g(s.header,n):null;return{domain:r?.domain,image:a,records:{...s,header:l},isLoading:i||o||c}},On=()=>{let{network:e}=$(),n=(0,r.useCallback)(e=>({wallets:`vechain_kit_wallets_${e}`,activeWallet:`vechain_kit_active_wallet_${e}`}),[]),i=(0,r.useCallback)(()=>{if(!t.mt())return[];let r=t.dt(n(e.type).wallets);return r?JSON.parse(r):[]},[e.type,n]),a=(0,r.useCallback)(()=>t.mt()?t.dt(n(e.type).activeWallet):null,[e.type,n]),o=(0,r.useCallback)(r=>{if(!t.mt())return;let a=n(e.type),o=i(),s=o.findIndex(e=>e.address.toLowerCase()===r.toLowerCase()),c={address:r,connectedAt:s>=0?o[s].connectedAt:Date.now(),isActive:!1};s>=0?o[s]=c:o.push(c),t.yt(a.wallets,JSON.stringify(o))},[e.type,n,i]),s=(0,r.useCallback)(r=>{if(!t.mt())return;let a=n(e.type),o=i().map(e=>({...e,isActive:e.address.toLowerCase()===r.toLowerCase()}));t.yt(a.wallets,JSON.stringify(o)),t.yt(a.activeWallet,r)},[e.type,n,i]);return{getStoredWallets:i,getActiveWallet:a,saveWallet:o,setActiveWallet:s,removeWallet:(0,r.useCallback)(r=>{if(!t.mt())return;let o=n(e.type),s=i().filter(e=>e.address.toLowerCase()!==r.toLowerCase());t.yt(o.wallets,JSON.stringify(s));let c=a();c&&c.toLowerCase()===r.toLowerCase()&&t.gt(o.activeWallet),t.mt()&&window.dispatchEvent(new CustomEvent(`wallet_removed`,{detail:{address:r}}))},[e.type,n,i,a]),initializeCurrentWallet:(0,r.useCallback)(e=>{t.mt()&&i().length===0&&(o(e),s(e))},[i,o,s])}},Z=()=>{let{address:e,isConnected:n,isConnecting:i,isReconnecting:a}=(0,C.useAccount)(),{logout:o}=En(),{loading:s}=(0,d.useLoginWithOAuth)({}),{feeDelegation:c,network:l,privy:u}=$(),{user:f,authenticated:m,logout:h,ready:g}=(0,d.usePrivy)(),{data:_}=Us(),{account:v,disconnect:y}=(0,p.useWallet)(),{getConnectionCache:b,clearConnectionCache:x}=Lo(),S=b(),{initializeCurrentWallet:w,getActiveWallet:T,saveWallet:E,getStoredWallets:D}=On(),O=$o(),k=(0,r.useMemo)(()=>t.mt()?!!window.vechain?.isInAppBrowser:!1,[]),A=!!v,j=m&&!!f,M=j||n,N=j&&u?.appId===t.at||n&&S?.ecosystemApp?.appId===t.at,P=i||a||s||!g,[F,I]=(0,r.useState)(!1),L=n?{type:`privy-cross-app`,displayName:`Ecosystem`}:A?{type:`wallet`,displayName:`Wallet`}:{type:`privy`,displayName:`Social Login`};(0,r.useEffect)(()=>{let e=A||j||n;F!==e&&(I(e),e||(x(),t.mt()&&window.dispatchEvent(new Event(`wallet_disconnected`))))},[A,j,n,x,F]);let R=f?.linkedAccounts?.find(e=>e.type===`wallet`&&e.connectorType===`embedded`)?.address,z=A?v:n?e:R,[B,V]=(0,r.useState)(()=>A&&!k?T():null);(0,r.useEffect)(()=>{V(A&&!k?T():null)},[A,k,T]);let[ee,H]=(0,r.useState)(!1);(0,r.useEffect)(()=>{if(!t.mt()||!A||k)return;let e=e=>{H(!0),V(e.detail.address),setTimeout(()=>{H(!1)},1e3)};return window.addEventListener(`wallet_switched`,e),()=>{window.removeEventListener(`wallet_switched`,e)}},[A,k]);let te=D().some(e=>e.address.toLowerCase()===z?.toLowerCase()),ne=A&&!k?T():null,re=ee&&ne||ne&&te?ne:z,{data:U}=ks(re??``),ie=A?re:U?.address,W=Dn(ie??``,l.type),G=Dn(re??``,l.type),ae=Dn(U?.address??``,l.type),{setActiveWallet:oe}=On(),se=(0,r.useRef)(new Set);(0,r.useEffect)(()=>{if(!t.mt()||!A||k)return;let e=e=>{se.current.add(e.detail.address.toLowerCase()),setTimeout(()=>{se.current.delete(e.detail.address.toLowerCase())},5e3)};return window.addEventListener(`wallet_removed`,e),()=>{window.removeEventListener(`wallet_removed`,e)}},[A,k]),(0,r.useEffect)(()=>{if(A&&!k&&z&&W&&!W.isLoading){if(se.current.has(z.toLowerCase()))return;let e=!D().some(e=>e.address.toLowerCase()===z.toLowerCase());w(z),E(z);let t=!B,n=B&&B.toLowerCase()===z.toLowerCase();(e||t||n)&&!ee&&oe(z)}},[A,k,z,W?.domain,W?.image,W?.isLoading,w,E,oe,B,D]),(0,r.useEffect)(()=>{A&&!k&&B&&B.toLowerCase()===re?.toLowerCase()&&E(B)},[A,k,B,re,E]);let ce=ie?{address:ie,domain:W.domain,image:W.image,isLoadingMetadata:W.isLoading,metadata:W.records}:null,le=z?{address:z,domain:G.domain,image:G.image,isLoadingMetadata:G.isLoading,metadata:G.records}:null,{data:ue}=gs(U?.address??``,le?.address??``),de=!!U?.address&&!!ce?.address&&t.k(U?.address,ce?.address),K=(0,r.useCallback)(async()=>{try{I(!1),A?y():j?await h():n&&await o(),x(),t.mt()&&window.dispatchEvent(new Event(`wallet_disconnected`))}catch(e){console.error(`Error during disconnect:`,e)}},[A,y,j,h,n,o,x]);return{account:ce,smartAccount:{address:U?.address??``,domain:ae.domain,image:ae.image,isDeployed:U?.isDeployed??!1,isActive:de,version:ue?.version??null,isLoadingMetadata:ae.isLoading,metadata:ae.records},connectedWallet:le,privyUser:f,connection:{isLoading:P,isConnected:F,isConnectedWithSocialLogin:j,isConnectedWithDappKit:A,isConnectedWithCrossApp:n,isConnectedWithPrivy:M,isConnectedWithVeChain:N,source:L,isInAppBrowser:k,nodeUrl:O,delegatorUrl:c?.delegatorUrl,chainId:_,network:l.type},disconnect:K}},kn=()=>{let e=(0,m.useQueryClient)(),{account:t}=Z();return{refresh:async()=>{let n=t?.address??``;await Promise.all([e.invalidateQueries({queryKey:[`VECHAIN_KIT_BALANCE`,n]}),e.invalidateQueries({queryKey:[`VECHAIN_KIT_PRICE`]})])}}},An=()=>{let{switchWallet:e}=(0,p.useWallet)(),{connection:n}=Z(),[i,a]=(0,r.useState)(!1),{getStoredWallets:o,setActiveWallet:s,removeWallet:c}=On(),l=n.isInAppBrowser;return{switchWallet:(0,r.useCallback)(async()=>{if(l){if(!e)return;a(!0);try{await e()}catch{}finally{a(!1)}}else return Promise.resolve()},[e,l]),isSwitching:i,getStoredWallets:o,setActiveWallet:(0,r.useCallback)(e=>{s(e),t.mt()&&window.dispatchEvent(new CustomEvent(`wallet_switched`,{detail:{address:e}}))},[s]),removeWallet:c,isInAppBrowser:l}},jn=async(e,n)=>{let r=t.g(e,n)||``,i=await fetch(r,{signal:AbortSignal.timeout(2e4)});if(!i.ok)throw Error(`HTTP error! status: ${i.status}`);return await i.json()},Mn=b.X2EarnApps__factory.abi,Nn=e=>{let n=(0,p.useThor)(),{network:r}=$();return(0,m.useQuery)({queryKey:[`xAppMetaData`,e],queryFn:async()=>{let i=t.bt(r.type).x2EarnAppsContractAddress,a=n.contracts.load(i,Mn),o=(await a.read.app(e))[0][3]?.toString()||``,[s]=await a.read.baseURI();return await jn(`${s}${o}`,r.type)},enabled:!!e})},Pn=async(e,n,r=!1)=>{if(!n)throw Error(`No URI provided`);let i=t.g(n,e);if(!i)throw Error(`Invalid URI`);let a=await(await fetch(i,{headers:{"X-Project-Id":`vechain-kit`}})).text();return r?JSON.parse(a):a},Fn=(e,t)=>[`VECHAIN_KIT`,`IPFS_METADATA`,e,t],In=(e,t=!1)=>{let{network:n}=$();return(0,m.useQuery)({queryKey:Fn(n.type,e),queryFn:()=>Pn(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})},Ln=1024*1024*10,Rn=async(e,n)=>{if(!n)throw Error(`IPFS URI is required`);let r=await fetch(t.g(n,e)??``,{headers:{"X-Project-Id":`vechain-kit`}});if(!r.ok)throw Error(`HTTP error! status: ${r.status}`);let i=await r.blob();if(![`image/jpeg`,`image/jpg`,`image/png`,`image/gif`,`image/bmp`,`image/tiff`,`image/webp`,`image/svg+xml`].includes(i.type))throw Error(`Unsupported MIME type: ${i.type}`);if(i.size>Ln)throw Error(`Image size exceeds maximum allowed size`);return new Promise((e,n)=>{let r=new FileReader;r.readAsDataURL(i),r.onloadend=()=>{e({image:r.result,mime:i.type,mediaType:t._(i.type)})},r.onerror=()=>{n(Error(`Error occurred while reading blob.`))}})},zn=(e,t)=>[`VECHAIN_KIT`,`IPFS_IMAGE`,e,t],Bn=e=>{let{network:t}=$();return(0,m.useQuery)({queryKey:zn(t.type,e),queryFn:()=>Rn(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})},Vn=e=>{let{network:t}=$();return(0,m.useQueries)({queries:e.map(e=>({queryKey:zn(t.type,e),queryFn:()=>Rn(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}))})},Hn=(e,t=!1)=>{let{network:n}=$();return(0,m.useQueries)({queries:e.map(e=>({queryKey:Fn(n.type,e),queryFn:async()=>Pn(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}))})},Un={maxSizeMB:.4,maxWidthOrHeight:1920,useWebWorker:!0},Wn=async e=>{let t=[];try{for(let n of e){let e=await(0,E.default)(n.file,Un);t.push(e)}return t}catch(e){throw console.error(`compress error`,e),e}},Gn=({compressImages:e,defaultImages:t})=>{let[n,i]=(0,r.useState)(t??[]);(0,r.useEffect)(()=>{t&&i(t)},[t]);let[a,o]=(0,r.useState)([]),s=(0,r.useCallback)(e=>i(t=>t.filter((t,n)=>n!==e)),[]);return{uploadedImages:n,setUploadedImages:i,onUpload:(0,r.useCallback)(async(t,n=!0)=>{o([]);let r=[];for(let n of t){let t=n;e&&(t=await(0,E.default)(n,Un));let i={file:t,image:URL.createObjectURL(n)};r.push(i)}i(e=>[...r,...n?e.filter(e=>!r.some(t=>t.file.name===e.file.name)):[]])},[e]),onRemove:s,invalidDateError:a}},Kn=({compressImage:e,defaultImage:t})=>{let[n,i]=(0,r.useState)(t);(0,r.useEffect)(()=>{t&&i(t)},[t]);let a=(0,r.useCallback)(()=>i(void 0),[]);return{uploadedImage:n,setUploadedImage:i,onUpload:(0,r.useCallback)(async t=>{let n=t;e&&(n=await(0,E.default)(n,Un));let r={file:n,image:URL.createObjectURL(n)};return i(r),r},[e]),onRemove:a}},qn=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)},Jn=({signerAccountAddress:e,clauses:t,onTxConfirmed:n,onTxFailedOrCancelled:i,suggestedMaxGas:a,privyUIOptions:o,gasPadding:c,delegationUrl:l})=>{let u=(0,p.useThor)(),{signer:d,requestTransaction:f}=(0,p.useWallet)(),{connection:m}=Z(),{feeDelegation:h}=$(),g=$o(),_=$c(),v=(0,r.useCallback)(async(t,n,r)=>{let i=typeof t==`function`?await t():t??[];if(m.isConnectedWithPrivy)return await _.sendTransaction({txClauses:i,...r,delegationUrl:n});if(!e)throw Error(`signerAccountAddress is required`);let o=0;try{o=await qn(u,[...i],e,{revision:s.Revision.NEXT,...c?{gasPadding:c}:{}})}catch(e){console.error(`Gas estimation failed`,e)}return(await f(i,{signer:m.isConnectedWithDappKit&&!m.isInAppBrowser&&e?e:d.address,gas:a??o,...h?.delegateAllTransactions||n?{delegator:{url:n??h?.delegatorUrl??``,signer:e}}:{}})).txid},[e,a,g,_,o,h,u,d,c,l,f,m.isConnectedWithDappKit,m.isInAppBrowser]),[y,b]=(0,r.useState)(null),[x,S]=(0,r.useState)(!1),[C,w]=(0,r.useState)(null),T=(0,r.useCallback)(async(e,n)=>{if(!e&&!t)throw Error(`clauses are required`);try{b(null),S(!0),w(null),j(void 0),b(await v(e??[],n,{...o}))}catch(e){w(e&&typeof e==`object`&&`message`in e?e.message:String(e)),i?.(e instanceof Error?e:Error(String(e)))}finally{S(!1)}},[v,t,o,l]),{data:E,isLoading:D,error:O}=tc(y??``),k=(0,r.useCallback)(async e=>{if(!(!e.reverted||!e.meta.txID))return await u.transactions.getRevertReason(e.meta.txID)},[u]),[A,j]=(0,r.useState)(),M=(0,r.useMemo)(()=>{if(x)return`pending`;if(C)return`error`;if(y){if(D)return`waitingConfirmation`;if(O)return`error`;if(E)return E.reverted?`error`:`success`}return`ready`},[D,C,x,y,E,O]);(0,r.useEffect)(()=>{if(M===`success`||M===`error`){if(C&&!A){j({type:`UserRejectedError`,reason:C});return}if(E?.reverted&&!A?.type){(async()=>{let e=await k(E);j({type:`RevertReasonError`,reason:e?`Transaction reverted with: `+e:`Transaction reverted`})})();return}E&&!E.reverted&&n?.()}},[M,E,n,k,C]);let N=(0,r.useCallback)(()=>{b(null),S(!1),w(null),j(void 0)},[]);return{sendTransaction:T,isTransactionPending:(0,r.useMemo)(()=>x||D||M===`pending`||M===`waitingConfirmation`,[x,D,M]),isWaitingForWalletConfirmation:(0,r.useMemo)(()=>M===`pending`,[x,M]),txReceipt:E??null,status:M,resetStatus:N,error:A}},Yn=(e,t)=>{let{account:n}=Z(),{t:i}=(0,l.useTranslation)(),{sendTransaction:a,isTransactionPending:o,isWaitingForWalletConfirmation:s,txReceipt:c,status:u,resetStatus:d,error:f}=Jn({signerAccountAddress:n?.address??``,privyUIOptions:{title:i(`ConfirmSwapTitle`,{defaultValue:`Confirm Swap`}),description:i(`ConfirmSwapDescription`,{defaultValue:`Please confirm the swap transaction in your wallet`}),buttonText:i(`Confirm`,{defaultValue:`Confirm`})}});return{executeSwap:(0,r.useCallback)(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 a(n)},[e,t,a]),isTransactionPending:o,isWaitingForWalletConfirmation:s,txReceipt:c,status:u,resetStatus:d,error:f}},Xn=e=>e===`0x`||e===x.zeroAddress,Zn=(e,t,n,r)=>{let i={},a=r.toLowerCase();for(let t of e)try{let e=(0,x.decodeEventLog)({abi:s.ERC20_ABI,eventName:`Transfer`,topics:t.topics,data:t.data}),n=e.args.from.toLowerCase(),r=e.args.to.toLowerCase(),o=e.args.value,c=typeof o==`bigint`?o:BigInt(o);if(n!==a&&r!==a)continue;let l=t.address.toLowerCase(),u=i[l]??{inflow:0n,outflow:0n};n===a&&(u.outflow+=c),r===a&&(u.inflow+=c),i[l]=u}catch{continue}if(n!==void 0){let e=BigInt(n);if(e>0n){let t=i[x.zeroAddress]??{inflow:0n,outflow:0n};t.outflow+=e,i[x.zeroAddress]=t}}for(let e of t){if(e.recipient.toLowerCase()!==a)continue;let t=BigInt(e.amount);if(t<=0n)continue;let n=i[x.zeroAddress]??{inflow:0n,outflow:0n};n.inflow+=t,i[x.zeroAddress]=n}return i},Qn=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=Zn(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=Xn(e.fromTokenAddress),d=Xn(e.toTokenAddress),f=BigInt(e.amountIn);if(u){let e=c[x.zeroAddress]??{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!==x.zeroAddress&&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===x.zeroAddress?`VET`:e} has outflow ${n.outflow.toString()}, expected 0`}}if(t.minimumOutputAmount&&t.minimumOutputAmount>0n)if(d){let e=c[x.zeroAddress]??{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`}}},$n=e=>e.startsWith(`0x`)?BigInt(e).toString():e,er=(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`}),tr=(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[er(t,e)]}return e},nr=e=>{try{let t=e.functionName||e.name;if(!t)throw Error(`Function name is required (either functionName or name must be provided)`);return(0,x.encodeFunctionData)({abi:tr(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`}`)}},rr=e=>{let t=nr(e.functionCall);return{to:e.to,value:$n(e.value),data:t,comment:e.comment||`Swap on aggregator`}},ir=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=new URL(e.apiBaseUrl);i.search=r.toString();let a=await fetch(i);if(!a.ok)throw Error(`API request failed: ${a.status} ${a.statusText}`);let o=await a.json(),s=o.clauses.map(rr),c=BigInt(o.amountOut),l=BigInt(o.amountOutMin);return{aggregatorName:e.name,aggregator:t,outputAmount:c,minimumOutputAmount:l,priceImpact:0,data:{clauses:s,path:o.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 Qn(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},ar={main:{supportedAddresses:[`0xE5fA980a6EfE5B79C2150a529da06AeF455963b6`,`0x7C755EC0165fCD926cC6faB10E7BB16a72E9f34A`]},test:{supportedAddresses:[]},solo:{supportedAddresses:[]}},or=e=>e===`0x`||e===`0x0000000000000000000000000000000000000000`,sr=t=>new URL(`api/quote/vck`,e.O).toString(),cr=t=>{let n=ar[t]??ar.main,i=ir({name:`VeTrade.vet`,apiBaseUrl:sr(t),network:t,getIcon:(t=`20px`)=>r.default.createElement(e.t,{boxSize:t}),supportedAddresses:n.supportedAddresses});return{...i,async simulateSwap(e,t,n){try{return Qn(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,t){let r=[],a=await i.buildSwapTransaction(e,t);if(!a||a.length===0)throw Error(`Failed to build swap transaction`);if(or(e.fromTokenAddress))a[0].value=e.amountIn;else{if(n.supportedAddresses.length===0)throw Error(`No supported addresses configured for VeTrade on this network`);let i=s.ABIContract.ofAbi(b.IERC20__factory.abi),o=s.Address.of(e.fromTokenAddress),c=BigInt(e.amountIn);r.push(s.Clause.callFunction(o,i.getFunction(`approve`),[a[0].to,c.toString()],s.VET.of(0n,s.Units.wei),{comment:`Approve ${t.aggregatorName} to access ${e.fromTokenAddress}`}))}return r.push(...a),r}}},lr=e=>e===`0x`||e===`0x0000000000000000000000000000000000000000`,ur=()=>BigInt(Math.floor(Date.now()/1e3)+1200),dr=e=>{let t={name:e.name,getIcon:e.getIcon,async getQuote(n,r){let i=[lr(n.fromTokenAddress)?e.wrappedVET:n.fromTokenAddress,lr(n.toTokenAddress)?e.wrappedVET:n.toTokenAddress],a=BigInt(n.amountIn);try{let[o]=await r.contracts.load(e.routerAddress,b.UniswapV2Router02__factory.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 Qn(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=ur();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=lr(t.fromTokenAddress),c=lr(t.toTokenAddress),l=s.ABIContract.ofAbi(b.UniswapV2Router02__factory.abi),u=[];if(o)u.push(s.Clause.callFunction(s.Address.of(e.routerAddress),l.getFunction(`swapExactETHForTokens`),[i.toString(),n.data.path,t.userAddress,r.toString()],s.VET.of(a,s.Units.wei),{comment:`Swap on ${n.aggregatorName}`}));else{let o=s.ABIContract.ofAbi(b.IERC20__factory.abi),d=s.Address.of(t.fromTokenAddress),f=s.Address.of(e.routerAddress);u.push(s.Clause.callFunction(d,o.getFunction(`approve`),[f.toString(),a.toString()],s.VET.of(0n,s.Units.wei),{comment:`Swap on ${n.aggregatorName}`})),c?u.push(s.Clause.callFunction(f,l.getFunction(`swapExactTokensForETH`),[a.toString(),i.toString(),n.data.path,t.userAddress,r.toString()],s.VET.of(0n,s.Units.wei),{comment:`Swap on ${n.aggregatorName}`})):u.push(s.Clause.callFunction(f,l.getFunction(`swapExactTokensForTokens`),[a.toString(),i.toString(),n.data.path,t.userAddress,r.toString()],s.VET.of(0n,s.Units.wei),{comment:`Swap on ${n.aggregatorName}`}))}return u}};return t},fr={main:{routerAddress:`0xf21Dd7108D93af56FaB07423EfB90F4a3604DA89`,wrappedVET:`0xf9b02b47694fd635A413F16dC7B38aF06Cc16fe5`},test:{routerAddress:x.zeroAddress,wrappedVET:x.zeroAddress},solo:{routerAddress:x.zeroAddress,wrappedVET:x.zeroAddress}},pr=t=>{let n=fr[t]??fr.main;return dr({name:`BetterSwap.io`,routerAddress:n.routerAddress,wrappedVET:n.wrappedVET,getIcon:(t=`20px`)=>r.default.createElement(e.n,{boxSize:t})})},mr=e=>[cr(e),pr(e)],hr=(e,t,n,i,a=1,o=!0)=>{let s=(0,p.useThor)(),{connection:c}=Z(),l=e?.address??null,u=t?.address??null,{data:d}=en(l===`0x`||l===x.zeroAddress||!l?``:l),{data:f}=en(u===`0x`||u===x.zeroAddress||!u?``:u),h=(0,r.useMemo)(()=>!l||l===`0x`||l===x.zeroAddress||!d?18:Number(d?.decimals??18),[l,d?.decimals]),g=(0,r.useMemo)(()=>!u||u===`0x`||u===x.zeroAddress||!f?18:Number(f?.decimals??18),[u,f?.decimals]),_=(0,r.useMemo)(()=>{if(!l||!u||!n||!i)return null;let e;try{e=(0,x.parseUnits)(n,h)}catch(e){return console.error(`Failed to parse amount:`,n,e),null}return e<=0n?null:{fromTokenAddress:l,toTokenAddress:u,amountIn:e.toString(),userAddress:i,slippageTolerance:a}},[l,u,n,i,a,h]),{data:v,isLoading:y,error:b}=(0,m.useQuery)({queryKey:[`unified-swap-quotes`,_,c.network],queryFn:async()=>{if(!_||!s||!c.network)return{quotes:[],best:null};let e=mr(c.network).map(async e=>{try{let t=await e.getQuote(_,s);try{let n=await e.simulateSwap(_,t,s);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:o&&_!==null&&s!=null,refetchInterval:1e4});return{bestQuote:v?.best??null,quotes:v?.quotes??[],isLoading:y,error:b,from:e?{...e,address:l??``,decimals:h}:null,to:t?{...t,address:u??``,decimals:g}:null}},gr=({email:e,onResend:t,isLoading:a,isOpen:o,onClose:s})=>{let{t:c}=(0,l.useTranslation)(),{darkMode:u}=$(),f=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),[p,m]=(0,r.useState)(``),[h,g]=(0,r.useState)(null),{createWallet:v}=(0,d.useCreateWallet)(),{loginWithCode:y}=(0,d.useLoginWithEmail)({onComplete:async({isNewUser:e})=>{e&&await v()}});return(0,r.useEffect)(()=>{p.length===6&&y({code:p}).then(()=>{s()}).catch(e=>{g(e.message)})},[p]),(0,i.jsxs)(Pe,{isOpen:o,onClose:s,trapFocus:!1,children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{alignItems:`center`,display:`flex`,gap:2,children:c(`Enter confirmation code`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.Container,{maxW:`container.lg`,children:[(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:2,children:[(0,i.jsx)(n.Icon,{as:_.LuMail,w:`48px`,h:`48px`,color:f}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:f,textAlign:`center`,children:c(`Please check {{email}} for an email from privy.io and enter your code below.`,{email:e})}),(0,i.jsx)(n.HStack,{spacing:2,justify:`center`,mt:4,children:(0,i.jsxs)(n.PinInput,{value:p,onChange:m,otp:!0,size:`lg`,isInvalid:!!h,errorBorderColor:`#ef4444`,children:[(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${u?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${u?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${u?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:u?`transparent`:`#ffffff`}),(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${u?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${u?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${u?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:u?`transparent`:`#ffffff`}),(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${u?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${u?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${u?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:u?`transparent`:`#ffffff`}),(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${u?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${u?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${u?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:u?`transparent`:`#ffffff`}),(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${u?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${u?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${u?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:u?`transparent`:`#ffffff`}),(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${u?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${u?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${u?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:u?`transparent`:`#ffffff`})]})}),h&&(0,i.jsx)(n.Text,{color:`#ef4444`,fontSize:`xs`,children:h})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsxs)(n.Text,{w:`100%`,textAlign:`center`,fontSize:`14px`,color:u?`whiteAlpha.700`:`gray.600`,children:[c(`Didn't get an email?`),` `,(0,i.jsx)(n.Button,{variant:`link`,color:`blue.500`,fontSize:`14px`,onClick:t,isLoading:a,children:c(`Resend code`)})]})})]})]})},_r=()=>{let{t:e}=(0,l.useTranslation)(),{darkMode:t}=$(),[a,o]=(0,r.useState)(``),{sendCode:s,state:c}=(0,d.useLoginWithEmail)({}),u=(0,n.useDisclosure)(),f=async()=>{await s({email:a}),u.onOpen()};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.GridItem,{colSpan:4,w:`full`,children:(0,i.jsx)(n.VStack,{spacing:3,w:`full`,children:(0,i.jsxs)(n.InputGroup,{size:`lg`,w:`full`,children:[(0,i.jsx)(n.InputLeftElement,{pointerEvents:`none`,height:`100%`,pl:4,children:(0,i.jsx)(n.Icon,{as:_.LuMail,color:t?`whiteAlpha.600`:`blackAlpha.700`,w:`20px`,h:`20px`})}),(0,i.jsx)(n.Input,{placeholder:e(`your@email.com`),value:a,onChange:e=>o(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}),(0,i.jsx)(n.Button,{"aria-label":`Send code`,position:`absolute`,right:2,top:`50%`,transform:`translateY(-50%)`,zIndex:2,variant:`ghost`,size:`sm`,px:6,borderRadius:`full`,isLoading:c.status===`sending-code`,onClick:f,children:e(`Submit`)})]})})}),(0,i.jsx)(gr,{isOpen:u.isOpen,onClose:u.onClose,onResend:()=>s({email:a}),email:a,isLoading:c.status===`sending-code`})]})},vr=({isDark:e,gridColumn:t})=>{let{t:r}=(0,l.useTranslation)(),{initOAuth:a}=Io();return(0,i.jsx)(n.GridItem,{colSpan:t??4,w:`full`,children:(0,i.jsx)(ua,{isDark:e,onClick:async()=>{await a({provider:`google`})},icon:D.FcGoogle,text:r(`Continue with Google`)})})},yr=({isDark:e,gridColumn:t})=>{let{t:r}=(0,l.useTranslation)(),{initOAuth:a}=Io();return(0,i.jsx)(n.GridItem,{colSpan:t??4,w:`full`,children:(0,i.jsx)(ua,{isDark:e,onClick:async()=>{await a({provider:`github`})},icon:_.LuGithub,text:r(`Continue with Github`)})})},br=({isDark:t,gridColumn:r})=>{let{t:a}=(0,l.useTranslation)(),{login:o}=(0,d.usePrivy)();return(0,i.jsx)(n.GridItem,{colSpan:r||4,w:`full`,children:(0,i.jsx)(ua,{isDark:t,onClick:o,icon:t?e.K:e.q,text:a(`Use social login with VeChain`),variant:`loginWithVechain`,rightIcon:(0,i.jsx)(ha,{})})})},xr=({isDark:t,gridColumn:r,setCurrentContent:a})=>{let{t:o}=(0,l.useTranslation)(),{login:s}=Ro(),c=async()=>{a({type:`loading`,props:{title:o(`Connecting to VeChain`),loadingText:o(`Please approve the request in the connection request window...`),onTryAgain:c}});try{await s()}catch(e){console.error(o(`Login failed:`),e),a({type:`error`,props:{error:e instanceof Error?e.message:o(`Failed to connect with VeChain`),onTryAgain:c}})}};return(0,i.jsx)(n.GridItem,{colSpan:r||4,w:`full`,children:(0,i.jsx)(ua,{isDark:t,onClick:c,icon:t?e.K:e.q,text:o(`Use social login with VeChain`),variant:`loginWithVechain`,rightIcon:(0,i.jsx)(ha,{})})})},Sr=({isDark:e,gridColumn:t,setCurrentContent:r})=>{let{t:a}=(0,l.useTranslation)(),{loginWithPasskey:o}=Po(),s=async()=>{r({type:`loading`,props:{title:a(`Connecting with Passkey`),loadingText:a(`Please complete the passkey authentication...`),onTryAgain:s}});try{await o()}catch(e){(e instanceof Error?e.message.toLowerCase():``).includes(`not found`)&&console.error(e),r({type:`error`,props:{error:e instanceof Error?e.message:a(`Failed to connect with Passkey`),onTryAgain:s}})}};return(0,i.jsx)(n.GridItem,{colSpan:t,w:`full`,children:(0,i.jsx)(ua,{isDark:e,onClick:s,icon:_.LuFingerprint,text:t&&t>=2?a(`Passkey`):void 0})})},Cr=({isDark:t,gridColumn:a=2})=>{let{t:o}=(0,l.useTranslation)(),{open:s,onConnectionStatusChange:c}=(0,p.useWalletModal)(),{dappKit:u}=$(),{source:d}=(0,p.useWallet)(),f=u?.allowedWallets?.includes(`sync2`)?o(`Connect wallet`):o(`Connect with VeWorld wallet`);return(0,r.useEffect)(()=>{c((e,t)=>{if(!e)return t?.message&&console.error(t?.message),{...d&&{source:d}}})},[c,d]),(0,i.jsx)(n.GridItem,{colSpan:a||2,w:`full`,children:(0,i.jsx)(ua,{isDark:t,onClick:()=>{s()},icon:u?.allowedWallets?.includes(`sync2`)?_.LuWallet:t?e.M:e.j,iconWidth:`27px`,text:a>=2?f:void 0,rightIcon:u?.allowedWallets?.includes(`sync2`)&&(0,i.jsx)(n.Icon,{as:_.LuArrowRight})||void 0})})},wr=({isDark:e,onViewMoreLogin:t,gridColumn:r})=>{let{t:a}=(0,l.useTranslation)();return(0,i.jsx)(n.GridItem,{colSpan:r,w:`full`,children:(0,i.jsx)(ua,{isDark:e,onClick:t,icon:_.LuEllipsis,text:r&&r>=2?a(`More`):void 0,rightIcon:(0,i.jsx)(n.Icon,{as:_.LuArrowRight})})})},Tr=({setCurrentContent:e})=>{let{loginMethods:t,darkMode:r}=$(),{login:a}=(0,d.usePrivy)(),{showGoogleLogin:o,showEmailLogin:s,showPasskey:c,showVeChainLogin:l,showDappKit:u,showMoreLogin:f,showGithubLogin:p,isOfficialVeChainApp:m}=To();return(0,i.jsx)(n.Stack,{spacing:4,w:`full`,align:`center`,children:(0,i.jsx)(n.Grid,{templateColumns:`repeat(4, 1fr)`,gap:2,w:`full`,children:t?.map(({method:t,gridColumn:n})=>{switch(t){case`email`:return s&&(0,i.jsx)(_r,{},`email`);case`google`:return o&&(0,i.jsx)(vr,{isDark:r,gridColumn:n},`google`);case`github`:return p&&(0,i.jsx)(yr,{isDark:r,gridColumn:n},`github`);case`vechain`:return l&&(m?(0,i.jsx)(br,{isDark:r,gridColumn:n},`vechain`):(0,i.jsx)(xr,{isDark:r,gridColumn:n,setCurrentContent:e},`vechain`));case`passkey`:return c&&(0,i.jsx)(Sr,{isDark:r,gridColumn:n,setCurrentContent:e},`passkey`);case`dappkit`:return u&&(0,i.jsx)(Cr,{isDark:r,gridColumn:n},`dappkit`);case`more`:return f&&(0,i.jsx)(wr,{isDark:r,onViewMoreLogin:a,gridColumn:n},`more`);default:return null}})})})},Er=({appsInfo:e,isLoading:t,setCurrentContent:r})=>{let{t:a}=(0,l.useTranslation)();return(0,i.jsx)(n.Button,{fontSize:`sm`,variant:`link`,onClick:()=>r({type:`ecosystem`,props:{appsInfo:e,isLoading:t}}),children:a(`Already have an x2earn app wallet?`)})},Dr=({setCurrentContent:e,onClose:t,preventAutoClose:a=!1})=>{let{t:o}=(0,l.useTranslation)(),{connection:s}=Z(),{loginModalUI:c,darkMode:u}=$(),{loginMethods:d,privyEcosystemAppIDS:f}=$(),{data:p,isLoading:m}=Le(f),h=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),g=()=>{e(`faq`)},_=d?.some(({method:e})=>e===`ecosystem`);return(0,r.useEffect)(()=>{s.isConnected&&!a&&t()},[s.isConnected,t,a]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(Ec,{onClick:g}),(0,i.jsx)(n.ModalHeader,{children:o(`Log in or sign up`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),c?.logo&&(0,i.jsx)(n.HStack,{justify:`center`,children:(0,i.jsx)(n.Image,{src:c.logo||`/images/favicon.png`,maxW:`180px`,maxH:`90px`,m:8,alt:`logo`})}),(0,i.jsxs)(n.ModalBody,{children:[c?.description&&(0,i.jsx)(n.HStack,{spacing:4,w:`full`,justify:`center`,mb:`24px`,px:4,children:(0,i.jsx)(n.Text,{color:h,fontSize:`sm`,textAlign:`center`,children:c?.description})}),(0,i.jsx)(Tr,{setCurrentContent:e})]}),_?(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(n.HStack,{justify:`center`,w:`full`,children:(0,i.jsx)(Er,{isDark:u,appsInfo:Object.values(p||{}),isLoading:m,setCurrentContent:e})})}):(0,i.jsx)(n.ModalFooter,{pt:0,pb:`5px`})]})},Or=({setCurrentContent:e,wallet:t,onClose:r,switchFeedback:a})=>{let{t:o}=(0,l.useTranslation)(),{network:s}=$(),{isolatedView:c}=Ar();return(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[!c&&(0,i.jsx)(J,{onClick:()=>{e(`profile`)}}),(0,i.jsxs)(n.ModalHeader,{children:[o(`Wallet`),s?.type!==`main`&&(0,i.jsx)(n.Tag,{size:`xs`,colorScheme:`orange`,fontSize:`2xs`,p:1,ml:1,textTransform:`uppercase`,children:`${s?.type}`})]}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{w:`full`,overflow:`hidden`,justifyContent:`flex-start`,spacing:8,children:[(0,i.jsx)(Ic,{showFeedback:a?.showFeedback}),(0,i.jsx)(qr,{style:{justifyContent:`flex-start`},onClick:()=>{e(`profile`)},setCurrentContent:e,onClose:r,wallet:t}),(0,i.jsx)(Yr,{onAssetsClick:()=>{e(`assets`)}}),(0,i.jsx)(Qr,{setCurrentContent:e})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},kr=({onSelectToken:e,onBack:a,showAllTokens:o=!1,excludedTokenSymbols:s=t.Z})=>{let{t:c}=(0,l.useTranslation)(),{darkMode:u}=$(),{currentCurrency:d}=Gt(),f=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),p=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),m=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),{account:h}=Z(),{tokensWithBalance:g,sortedTokens:v}=Kt({address:h?.address??``}),[y,b]=(0,r.useState)(``),x=(0,r.useMemo)(()=>{let e=e=>s.includes(e),t;if(o){let n=v.filter(t=>Number(t.balance)>0&&!e(t.symbol)),r=[...v.filter(t=>Number(t.balance)===0&&!e(t.symbol))].sort((e,t)=>e.symbol.localeCompare(t.symbol));t=[...n,...r]}else t=g.filter(t=>!e(t.symbol));return t},[o,v,g,s]).filter(({symbol:e})=>e.toLowerCase().includes(y.toLowerCase()));return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:c(`Select Token`)}),(0,i.jsx)(J,{onClick:a}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.Container,{h:[`540px`,`auto`],p:0,children:(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,children:[(0,i.jsxs)(n.InputGroup,{size:`lg`,children:[(0,i.jsx)(n.Input,{placeholder:`Search token`,bg:u?`vechain-kit-overlay`:`vechain-kit-card`,borderRadius:`xl`,height:`56px`,pl:12,value:y,onChange:e=>b(e.target.value),"data-testid":`search-token-input`}),(0,i.jsx)(n.InputLeftElement,{h:`56px`,w:`56px`,pl:4,children:(0,i.jsx)(_.LuSearch,{color:m})})]}),(0,i.jsx)(n.Text,{fontSize:`lg`,fontWeight:`semibold`,color:f,mt:4,children:c(o?`All tokens`:`Your tokens`)}),x.length===0?(0,i.jsxs)(n.VStack,{spacing:2,py:8,children:[(0,i.jsx)(n.Icon,{as:_.LuSlash,boxSize:12,color:m}),(0,i.jsx)(n.Text,{fontSize:`lg`,color:f,children:c(`No tokens found`)}),(0,i.jsx)(n.Text,{fontSize:`md`,color:p,children:c(`Try searching with a different term`)})]}):(0,i.jsx)(n.VStack,{spacing:2,align:`stretch`,children:x.map(t=>(0,i.jsx)(wc,{symbol:t.symbol,amount:Number(t.balance),currencyValue:t.valueInCurrency,currentCurrency:d,onClick:()=>e(t)},t.address))})]})})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},Ar=()=>{let{isolatedView:e,closeAccountModal:t}=Xa();return{isolatedView:e,closeAccountModal:t}},jr=({setCurrentContent:e,preselectedToken:a,initialAmount:s=``,initialToAddressOrDomain:c=``,onBack:u=()=>e(`main`)})=>{let{t:d}=(0,l.useTranslation)(),{darkMode:f,feeDelegation:p}=$(),{currentCurrency:m}=Gt(),h=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),g=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),v=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),y=(0,n.useToken)(`colors`,`vechain-kit-error`),b=(0,n.useToken)(`colors`,`vechain-kit-card`),{exchangeRates:x}=zt(),{account:S}=Z(),{isolatedView:C}=Ar(),{tokensWithBalance:w}=Kt({address:S?.address??``}),T=(0,r.useMemo)(()=>w.filter(e=>!t.Z.includes(e.symbol)),[w]),[E,D]=(0,r.useState)(()=>a&&!t.Z.includes(a.symbol)?a:T[0]??null),[A,j]=(0,r.useState)(!1);(0,r.useEffect)(()=>{!E&&T.length>0&&D(T[0])},[T,E]);let{register:M,watch:N,setValue:P,setError:F,formState:{errors:I,isValid:L},handleSubmit:R}=(0,O.useForm)({defaultValues:{amount:s,toAddressOrDomain:c},mode:`onChange`}),{toAddressOrDomain:z,amount:B}=N(),V=(0,r.useRef)(E);(0,r.useEffect)(()=>{V.current&&E&&V.current.address!==E.address&&P(`amount`,``),V.current=E},[E,P]);let ee=(0,r.useMemo)(()=>E?Ht(Bt(Number(B)*E.priceUsd,m,x),{currency:m}):``,[B,E,m,x]),{data:H,isLoading:te}=Be(z),ne=()=>{E&&P(`amount`,E.balance)},re=()=>{u()},U=async t=>{if(E){if(!(H?.isValidAddressOrDomain&&(!H?.domain||H?.domain&&H?.isPrimaryDomain))){F(`toAddressOrDomain`,{type:`manual`,message:d(`Invalid address or domain`)});return}if(E){let e=(0,o.parseEther)(t.amount),n=p?.b3trTransfers?.minAmountInEther;if(E.symbol===`B3TR`&&typeof n==`number`&&n>0)try{if(e<(0,o.parseEther)(String(n))){F(`amount`,{type:`manual`,message:d(`Minimum {{symbol}} transfer is {{min}}`,{symbol:E.symbol,min:n})});return}}catch{}if(e>(0,o.parseEther)(E.balance)){F(`amount`,{type:`manual`,message:d(`Insufficient {{symbol}} balance`,{symbol:E.symbol})});return}}e({type:`send-token-summary`,props:{toAddressOrDomain:t.toAddressOrDomain,resolvedDomain:H?.domain,resolvedAddress:H?.address,amount:t.amount,selectedToken:E,formattedTotalAmount:ee,setCurrentContent:e}})}};return A?(0,i.jsx)(kr,{setCurrentContent:e,onSelectToken:e=>{D(e),j(!1)},onBack:()=>{j(!1)}}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:d(`Send`)}),!C&&(0,i.jsx)(J,{onClick:re}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:2,align:`stretch`,position:`relative`,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,color:h,children:d(`Amount`)}),(0,i.jsxs)(n.Text,{cursor:`pointer`,_hover:{color:g,textDecoration:`underline`},onClick:ne,noOfLines:1,overflow:`hidden`,textOverflow:`ellipsis`,fontSize:`sm`,fontWeight:`medium`,color:g,children:[d(`Balance`),`:`,` `,Number(E?.balance??0).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]})]}),(0,i.jsx)(n.Box,{p:4,borderRadius:`2xl`,bg:b,children:(0,i.jsx)(n.VStack,{align:`stretch`,spacing:2,children:(0,i.jsxs)(n.FormControl,{isInvalid:!!I.amount,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsx)(n.Input,{...M(`amount`,{required:d(`Amount is required`),pattern:{value:/^\d*\.?\d*$/,message:d(`Please enter a valid number`)},validate:e=>{if(!e)return!0;let t=parseFloat(e);if(isNaN(t))return d(`Please enter a valid number`);let n=p?.b3trTransfers?.minAmountInEther;return E?.symbol===`B3TR`&&typeof n==`number`&&n>0&&t<n?d(`Minimum {{symbol}} transfer is {{min}}`,{symbol:E.symbol,min:n}):!0}}),onChange:e=>{let t=e.target.value.trim();e.target.value=t,P(`amount`,t,{shouldValidate:!0})},placeholder:`0`,variant:`unstyled`,fontSize:`4xl`,fontWeight:`bold`,"data-testid":`tx-amount-input`,type:`number`,inputMode:`decimal`,color:h}),E?(0,i.jsxs)(n.Button,{variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:g,borderColor:g,_hover:{bg:f?`whiteAlpha.300`:`blackAlpha.300`},onClick:()=>j(!0),leftIcon:t.et[E.symbol]?r.default.cloneElement(t.et[E.symbol],{boxSize:`20px`,borderRadius:`full`}):(0,i.jsx)(n.Image,{src:t.$[E.symbol],alt:`${E.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:(0,i.jsx)(n.Box,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Text,{fontSize:`8px`,fontWeight:`bold`,color:h,children:E.symbol.slice(0,3)})})}),children:[E.symbol,(0,i.jsx)(n.Icon,{as:_.LuChevronDown,boxSize:5,color:g})]}):(0,i.jsxs)(n.Button,{variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:g,borderColor:g,_hover:{bg:f?`whiteAlpha.300`:`blackAlpha.300`,color:v},onClick:()=>j(!0),children:[d(`Select token`),(0,i.jsx)(n.Icon,{as:_.LuChevronDown,boxSize:5,color:g})]})]}),E&&(0,i.jsx)(n.HStack,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:g,children:(0,i.jsxs)(n.Text,{color:g,children:[`≈ `,ee]})}),I.amount&&(0,i.jsx)(n.Text,{color:`#ef4444`,fontSize:`sm`,mt:1,"data-testid":`amount-error-msg`,children:I.amount.message})]})})}),(0,i.jsx)(n.HStack,{justify:`space-between`,mt:2,children:(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,color:h,children:d(`To`)})}),(0,i.jsx)(n.Box,{borderRadius:`2xl`,bg:b,children:(0,i.jsx)(n.VStack,{align:`stretch`,spacing:2,p:4,width:`100%`,children:(0,i.jsxs)(n.FormControl,{isInvalid:!!I.toAddressOrDomain,children:[(0,i.jsx)(n.Input,{...M(`toAddressOrDomain`,{required:d(`Address is required`)}),onChange:e=>{let t=e.target.value.trim(),n=t.includes(`.`)?(0,k.ens_normalize)(t):t;e.target.value=n,P(`toAddressOrDomain`,n,{shouldValidate:!0})},placeholder:d(`Type the receiver address or domain`),_placeholder:{fontSize:`md`,fontWeight:`normal`},fontSize:`lg`,fontWeight:`bold`,color:h,variant:`unstyled`,"data-testid":`tx-address-input`}),I.toAddressOrDomain&&(0,i.jsx)(n.Text,{color:y,fontSize:`sm`,"data-testid":`address-error-msg`,children:I.toAddressOrDomain.message})]})})})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,isDisabled:!E||!L,isLoading:te,onClick:R(U),"data-testid":`send-button`,children:d(E?`Send`:`Select Token`)})})]})},Mr=({setCurrentContent:e,toAddressOrDomain:a,resolvedDomain:o,resolvedAddress:s,amount:c,selectedToken:u,formattedTotalAmount:d})=>{let{t:f}=(0,l.useTranslation)(),{account:p,connection:m,connectedWallet:h}=Z(),{data:g}=wt(s??``),{network:_,feeDelegation:v}=$(),{preferences:y}=xc(),{isolatedView:b,closeAccountModal:x}=Ar(),S=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),C=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),{data:w}=Ms(p?.address??``,h?.address??``,3),{open:T}=Eo(),E=(0,r.useMemo)(()=>g||t.U(s||a),[g,_.type,s,a]),D=async()=>{if(w){T();return}try{u.symbol===`VET`?await F():await k()}catch(e){console.error(f(`Transaction failed:`),e)}},O=r.default.useCallback(t=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:t,title:f(`Transaction successful`),onDone:()=>{b?x():e(`main`)},showSocialButtons:!0}})},[e,f,b,x]),{sendTransaction:k,txReceipt:A,error:j,isWaitingForWalletConfirmation:M,isTransactionPending:N,clauses:P}=Ys({fromAddress:p?.address??``,receiverAddress:s||a,amount:c,tokenAddress:u.address,tokenName:u.symbol,onError:e=>{U(e??``)}}),{sendTransaction:F,txReceipt:I,error:L,isWaitingForWalletConfirmation:R,isTransactionPending:z,clauses:B}=Zs({fromAddress:p?.address??``,receiverAddress:s||a,amount:c,onError:e=>{U(e??``)}}),V=r.default.useCallback(()=>u.symbol===`VET`?I:A,[u.symbol,I,A]),ee=M||R,H=ee||N||z,[te,ne]=r.default.useState(!1);r.default.useEffect(()=>{let e=V();if(!e||e.reverted||te||H)return;let t=e.meta.txID;t&&(ne(!0),O(t))},[V,te,H,O]),r.default.useEffect(()=>{H&&ne(!1)},[H]);let re=()=>{e({type:`send-token`,props:{setCurrentContent:e,preselectedToken:u,initialAmount:c,initialToAddressOrDomain:a}})},U=e=>{console.error(`Transaction failed:`,e)},[ie,W]=r.default.useState(null),[G,ae]=r.default.useState(null),oe=y.availableGasTokens.length>0&&(m.isConnectedWithPrivy||m.isConnectedWithVeChain)&&!v?.delegatorUrl,{data:se,isLoading:ce,error:le,refetch:ue}=Sc({clauses:u.symbol===`VET`?B:P,tokens:ie?[ie]:y.availableGasTokens,sendingAmount:c,sendingTokenSymbol:u.symbol,enabled:oe&&!!v?.genericDelegatorUrl}),de=se?.usedToken,K=(ce||!se)&&m.isConnectedWithPrivy&&!v?.delegatorUrl,q=r.default.useCallback(e=>{W(e),ae(e),setTimeout(()=>ue(),100)},[ue]),fe=!!de&&!le;return r.default.useEffect(()=>{le&&ie&&W(null)},[le,ie]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:`Send`}),(0,i.jsx)(J,{isDisabled:H,onClick:re}),(0,i.jsx)(n.ModalCloseButton,{isDisabled:H})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsx)(n.VStack,{spacing:6,align:`stretch`,w:`full`,children:(0,i.jsxs)(n.VStack,{spacing:4,w:`full`,children:[(0,i.jsxs)(n.Box,{w:`full`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,mb:2,color:C,children:f(`From`)}),(0,i.jsx)(Tc,{address:p?.address??``,domain:p?.domain,imageSrc:p?.image??``,imageAlt:`From account`,balance:Number(u.balance),tokenAddress:u.address})]}),(0,i.jsxs)(n.Box,{w:`full`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,mb:2,color:C,children:f(`To`)}),(0,i.jsx)(Tc,{address:s||a,domain:o,imageSrc:E??``,imageAlt:`To account`,tokenAddress:u.address})]}),m.isConnectedWithPrivy&&(0,i.jsx)(Mc,{estimation:se,isLoading:ce,isLoadingTransaction:H,onTokenChange:q,clauses:u.symbol===`VET`?B:P,userSelectedToken:G}),(0,i.jsxs)(n.VStack,{spacing:0,w:`full`,justifyContent:`flex-start`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`light`,textAlign:`left`,w:`full`,color:C,children:f(`Amount`)}),(0,i.jsxs)(n.HStack,{justifyContent:`flex-start`,w:`full`,children:[(0,i.jsxs)(n.Text,{fontSize:`xl`,fontWeight:`semibold`,textAlign:`left`,"data-testid":`send-summary-amount`,color:S,children:[Number(c).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}),` `,u.symbol]}),(0,i.jsxs)(n.Text,{color:C,children:[`≈ `,d]})]})]})]})})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(kc,{transactionError:u.symbol===`VET`?L:j,isSubmitting:H,isTxWaitingConfirmation:ee,onConfirm:D,transactionPendingText:f(`Sending...`),txReceipt:V(),buttonText:f(`Confirm`),isDisabled:H||K,gasEstimationError:le,hasEnoughGasBalance:fe,isLoadingGasEstimation:ce,showGasEstimationError:!v?.delegatorUrl&&m.isConnectedWithPrivy,context:`send`})})]})},Nr=({setCurrentContent:e})=>{let{t}=(0,l.useTranslation)(),{account:r}=Z(),{isolatedView:a}=Ar(),o=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),s=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t(`Receive`)}),!a&&(0,i.jsx)(J,{onClick:()=>e(`main`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.Container,{maxW:`container.lg`,children:[(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:4,align:`center`,w:`full`,children:[(0,i.jsx)(A.QRCode,{value:r?.address??``,size:200,removeQrCodeBehindLogo:!0,eyeRadius:4,logoPaddingStyle:`circle`,style:{borderRadius:`16px`}}),(0,i.jsx)(we,{wallet:r,style:{w:`85%`}}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,color:o,children:t(`Copy your address or scan this QR code`)}),(0,i.jsx)(n.Text,{fontSize:`xs`,textAlign:`center`,color:s,children:t(`This address only supports VeChain assets.`)})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})]})},Pr=({quotes:e,selectedQuote:a,toTokenAddress:o,onSelectQuote:s,onBack:c})=>{let{t:u}=(0,l.useTranslation)(),{darkMode:d}=$(),{currentCurrency:f}=Gt(),{account:p}=Z(),{exchangeRates:m,prices:h}=zt(),{tokens:g}=Kt({address:p?.address??``}),[v,y]=(0,r.useState)(!1),b=(0,r.useMemo)(()=>o&&g.find(e=>t.k(e.address,o))||null,[o,g]),S=e.filter(e=>!e.reverted),C=e.filter(e=>e.reverted),w=(0,r.useMemo)(()=>S.length===0?null:S.reduce((e,t)=>{let n=BigInt(e.outputAmount||`0`);return BigInt(t.outputAmount||`0`)>n?t:e}),[S]),T=(0,r.useMemo)(()=>{let e=o&&h[o]||0;return S.map(t=>{let n=(0,x.formatEther)(BigInt(t.outputAmount||`0`)),r=Number(n)*e,i=Bt(r,f,m),a=w&&t.aggregatorName===w.aggregatorName,o=0;if(w&&!a){let e=BigInt(w.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)})},[S,o,h,f,m,w]);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:u(`Found following rates`)}),(0,i.jsx)(J,{onClick:c}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.Container,{h:[`540px`,`auto`],p:0,children:(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`stretch`,children:[T.length>0&&(0,i.jsx)(n.VStack,{spacing:2,align:`stretch`,children:T.map(e=>{let o=a?.aggregatorName===e.aggregatorName;return(0,i.jsxs)(n.Box,{p:2.5,borderRadius:`xl`,bg:d?`#00000038`:`gray.50`,borderWidth:1,borderColor:o?`blue.500`:d?`whiteAlpha.200`:`gray.200`,cursor:`pointer`,onClick:()=>s(e),_hover:{borderColor:o?`blue.500`:d?`whiteAlpha.400`:`gray.300`},position:`relative`,children:[(e.isBest||!e.isBest&&e.percentageDiff<0)&&(0,i.jsx)(n.Box,{position:`absolute`,top:-1,left:0,zIndex:1,children:e.isBest?(0,i.jsx)(n.Badge,{colorScheme:`purple`,borderRadius:`sm`,fontSize:`2xs`,px:1.5,py:.5,borderTopLeftRadius:`xl`,borderBottomRightRadius:`md`,children:u(`Best`)}):(0,i.jsxs)(n.Badge,{colorScheme:`red`,borderRadius:`xs`,fontSize:`2xs`,px:1.5,py:.5,borderTopLeftRadius:`xl`,borderBottomRightRadius:`md`,children:[e.percentageDiff.toFixed(2),`%`]})}),(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:1.5,marginTop:4,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,align:`center`,children:[(0,i.jsxs)(n.HStack,{spacing:1.5,align:`center`,children:[e.aggregator.getIcon(`20px`),(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,children:e.aggregatorName})]}),(0,i.jsx)(n.HStack,{align:`center`,spacing:1.5,children:b&&(0,i.jsxs)(i.Fragment,{children:[t.et[b.symbol]?r.default.cloneElement(t.et[b.symbol],{boxSize:`24px`,borderRadius:`full`}):t.$[b.symbol]?(0,i.jsx)(n.Image,{src:t.$[b.symbol],alt:`${b.symbol} logo`,boxSize:`24px`,borderRadius:`full`}):null,(0,i.jsx)(n.Tooltip,{label:Number(e.outputAmountFormatted).toLocaleString(void 0,{maximumFractionDigits:18}),hasArrow:!0,placement:`top`,children:(0,i.jsxs)(n.Text,{fontSize:`md`,fontWeight:`bold`,textAlign:`right`,whiteSpace:`nowrap`,children:[Number(e.outputAmountFormatted).toLocaleString(void 0,{minimumFractionDigits:4}),` `,b.symbol]})})]})})]}),(0,i.jsxs)(n.HStack,{justify:`space-between`,align:`center`,children:[(0,i.jsx)(n.Text,{fontSize:`xs`,color:d?`whiteAlpha.500`:`blackAlpha.500`,children:e.gasCostVTHO&&e.gasCostVTHO>0?`Gas: ${e.gasCostVTHO.toLocaleString(void 0,{maximumFractionDigits:2})} VTHO`:``}),e.valueUsd>0&&(0,i.jsxs)(n.Text,{fontSize:`xs`,color:d?`whiteAlpha.600`:`blackAlpha.600`,textAlign:`right`,whiteSpace:`nowrap`,children:[`≈ `,Ht(e.valueInCurrency,{currency:f})]})]})]})]},e.aggregatorName)})}),C.length>0&&(0,i.jsxs)(n.Box,{children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,cursor:`pointer`,onClick:()=>y(!v),py:2,children:[(0,i.jsxs)(n.Text,{fontSize:`sm`,color:d?`whiteAlpha.600`:`blackAlpha.600`,children:[C.length,` `,u(`rate`),C.length===1?``:`s`,` `,u(`unavailable`)]}),(0,i.jsx)(n.Icon,{as:v?_.LuChevronUp:_.LuChevronDown,boxSize:4,color:d?`whiteAlpha.600`:`blackAlpha.600`})]}),(0,i.jsx)(n.Collapse,{in:v,animateOpacity:!0,children:(0,i.jsx)(n.VStack,{spacing:2,align:`stretch`,pt:2,children:C.map(e=>(0,i.jsx)(n.Box,{p:2,borderRadius:`xl`,bg:d?`#00000038`:`gray.50`,opacity:.6,children:(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsxs)(n.HStack,{spacing:2,align:`center`,children:[e.aggregator.getIcon(`20px`),(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`medium`,children:e.aggregatorName})]}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:d?`whiteAlpha.500`:`blackAlpha.500`,children:u(`Unable to fetch the price`)})]})},e.aggregatorName))})})]}),T.length===0&&C.length===0&&(0,i.jsx)(n.VStack,{spacing:2,py:8,color:d?`whiteAlpha.600`:`blackAlpha.600`,children:(0,i.jsx)(n.Text,{fontSize:`lg`,children:u(`No quotes available`)})})]})})}),(0,i.jsx)(n.ModalFooter,{})]})},Fr=e=>e===`0x`||e===x.zeroAddress||!e,Ir=(e,t,n,r)=>{if(!e||!t||!n||!r)return null;let i=t.toLowerCase(),a=n.toLowerCase(),o=r.toLowerCase(),s=Fr(n),c=Fr(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=b.IERC20__factory.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=(0,x.decodeEventLog)({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}},Lr=({setCurrentContent:e,fromTokenAddress:a,toTokenAddress:o})=>{let{t:s}=(0,l.useTranslation)(),{account:c,connection:u}=Z(),{currentCurrency:d}=Gt(),{network:f,feeDelegation:p,darkMode:m}=$(),{isolatedView:h,closeAccountModal:g}=Ar(),v=(0,n.useToken)(`colors`,`vechain-kit-card`),y=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),b=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),S=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),C=(0,n.useToken)(`colors`,`vechain-kit-button-primary-bg`),w=(0,n.useToken)(`colors`,`vechain-kit-button-primary-color`),{preferences:T}=xc(),{sortedTokens:E}=Kt({address:c?.address??``}),[D,O]=(0,r.useState)(`main`),[k,A]=(0,r.useState)(null),[j,M]=(0,r.useState)(null),[N,P]=(0,r.useState)(``),[F,I]=(0,r.useState)(!1),[L,R]=(0,r.useState)(1),[z,B]=(0,r.useState)(`1`),[V,ee]=(0,r.useState)(null),[H,te]=r.default.useState(null),[ne,re]=r.default.useState(null),[U,ie]=r.default.useState([]),{prices:W,exchangeRates:G}=zt(),ae=L===1;r.default.useEffect(()=>{B(L===1?`1`:L===.5?`0.5`:L===3?`3`:L.toString())},[L]),r.default.useEffect(()=>{if(E.length!==0){if((a||o)&&(!k||!j)){if(a&&!k){let e=E.find(e=>t.k(e.address,a));e&&!t.Z.includes(e.symbol)&&A(e)}if(o&&!j){let e=E.find(e=>t.k(e.address,o));e&&!t.Z.includes(e.symbol)&&M(e)}return}if(!k&&!j){let e=E.find(e=>e.symbol===`VET`);e&&A(e);let n=E.find(e=>e.symbol===`B3TR`);if(!n)try{let e=t.bt(f.type).b3trContractAddress;e&&(n=E.find(n=>t.k(n.address,e)))}catch(e){console.warn(`Failed to get B3TR address from config:`,e)}n&&M(n)}}},[E,k,j,a,o,f.type]),r.default.useEffect(()=>{ee(null)},[k?.address,j?.address,N]);let{bestQuote:oe,quotes:se,isLoading:ce,from:le,to:ue}=hr(k,j,N,c?.address??``,L,!!k&&!!j&&Number(N)>0),de=(0,r.useMemo)(()=>{if(!N||Number(N)<=0||!le)return 0n;try{return(0,x.parseUnits)(N,le.decimals)}catch{return 0n}},[N,le?.decimals]),K=V||oe,q=(0,r.useMemo)(()=>{if(!K?.outputAmount||!ue)return`0`;try{return(0,x.formatUnits)(K.outputAmount,ue.decimals)}catch{return`0`}},[K,ue?.decimals]),fe=(0,r.useMemo)(()=>{if(!k||!N)return 0;let e=W[k.address]||0;return Bt(Number(N)*e,d,G)},[k?.address,N,W,d,G]),pe=(0,r.useMemo)(()=>{if(!j||!q)return 0;let e=W[j.address]||0;return Bt(Number(q)*e,d,G)},[j?.address,q,W,d,G]),me=(0,r.useMemo)(()=>!k||!j||!c?.address||de===0n?null:{fromTokenAddress:k.address,toTokenAddress:j.address,amountIn:de.toString(),userAddress:c.address,slippageTolerance:L},[k,j,c?.address,de,L]),he=K?.gasCostVTHO??0;r.default.useEffect(()=>{(async()=>{if(!K||!me||!K.aggregator){ie([]);return}try{ie(await K.aggregator.buildSwapTransaction(me,K))}catch(e){console.error(`Failed to build swap clauses for gas estimation:`,e),ie([])}})()},[K,me]);let ge=T.availableGasTokens.length>0&&(u.isConnectedWithPrivy||u.isConnectedWithVeChain)&&!p?.delegatorUrl,{data:_e,isLoading:ve,error:ye,refetch:be}=Sc({clauses:U,tokens:H?[H]:T.availableGasTokens,sendingAmount:N,sendingTokenSymbol:k?.symbol??``,enabled:ge&&!!p?.genericDelegatorUrl&&U.length>0}),xe=_e?.usedToken,Se=(ve||!_e)&&u.isConnectedWithPrivy&&!p?.delegatorUrl,Ce=r.default.useCallback(e=>{te(e),re(e),setTimeout(()=>be(),100)},[be]),we=!!xe&&!ye;r.default.useEffect(()=>{ye&&H&&te(null)},[ye,H]);let{executeSwap:Te,isTransactionPending:Ee,isWaitingForWalletConfirmation:De,txReceipt:Oe,status:ke,error:Ae}=Yn(me,K),je=(0,r.useCallback)(()=>{let t=Oe?.meta.txID??``,n=s(`Swap successful`,{defaultValue:`Swap successful`}),r;if(Oe&&k&&j&&c?.address){let e=Ir(Oe,c.address,k.address,j.address);if(e&&le&&ue)try{let t=le.decimals,n=ue.decimals,i=(0,x.formatUnits)(e.fromAmount,t),a=(0,x.formatUnits)(e.toAmount,n),o=e=>{let t=Number(e);return t>=1e3?t.toLocaleString(void 0,{maximumFractionDigits:2}):t.toLocaleString(void 0,{maximumFractionDigits:6,minimumFractionDigits:0})};r=s(`You successfully swapped {fromAmount} {fromSymbol} for {toAmount} {toSymbol}`,{fromAmount:o(i),fromSymbol:k.symbol,toAmount:o(a),toSymbol:j.symbol,defaultValue:`You successfully swapped ${o(i)} ${k.symbol} for ${o(a)} ${j.symbol}`})}catch(e){console.warn(`Failed to format swap amounts:`,e)}}!r&&k&&j&&(r=s(`You successfully swapped {fromToken} for {toToken}`,{fromToken:k.symbol,toToken:j.symbol,defaultValue:`You successfully swapped ${k.symbol} for ${j.symbol}`})),e({type:`successful-operation`,props:{setCurrentContent:e,txId:t,title:n,description:r,onDone:()=>{h?g():e(`main`)},showSocialButtons:!0}})},[k,j,N,K,Oe,c?.address,e,s,h,g]),Me=(0,r.useCallback)(e=>{let t=typeof e==`string`?e:e.message;console.error(`Swap failed:`,t)},[k,j,N]),[Ne,Pe]=r.default.useState(!1);r.default.useEffect(()=>{if(ke===`ready`){Pe(!1);return}Ne||(ke===`success`&&Oe&&!Oe.reverted?(Pe(!0),je()):ke===`error`&&Ae?Me(Ae?.reason||Ae?.message||String(Ae)):Oe?.reverted&&Me(`Transaction reverted`))},[ke,Oe,Ae,je,Me,Ne]);let Fe=(0,r.useCallback)(e=>{if(A(e),e.symbol===`VET`&&!j){let e=E.find(e=>e.symbol===`B3TR`);if(!e)try{let n=t.bt(f.type).b3trContractAddress;n&&(e=E.find(e=>t.k(e.address,n)))}catch(e){console.warn(`Failed to get B3TR address from config:`,e)}e&&M(e)}O(`main`)},[j,E,f.type]),Ie=(0,r.useCallback)(e=>{M(e),O(`main`)},[]),Le=(0,r.useCallback)(e=>{(/^\d*\.?\d*$/.test(e)||e===``)&&P(e)},[]),Re=(0,r.useCallback)(()=>{k&&P(k.balance)},[k]),ze=e=>{if(!e)return null;let n=t.et[e.symbol],r=t.$[e.symbol];return{symbol:e.symbol,logoComponent:n,logoUrl:r,balance:e.balance,value:e.valueInCurrency}},X=ze(k),Be=ze(j);return D===`select-from-token`?(0,i.jsx)(kr,{setCurrentContent:e,onSelectToken:Fe,onBack:()=>O(`main`),showAllTokens:!1}):D===`select-quote`?(0,i.jsx)(Pr,{quotes:se,selectedQuote:K,toTokenAddress:j?.address??null,onSelectQuote:e=>{ee(e),O(`main`)},onBack:()=>O(`main`)}):D===`select-to-token`?(0,i.jsx)(kr,{setCurrentContent:e,onSelectToken:Ie,onBack:()=>O(`main`),showAllTokens:!0}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:s(`Swap`)}),!h&&(0,i.jsx)(J,{onClick:()=>e(`main`),isDisabled:Ee||De}),(0,i.jsx)(n.ModalCloseButton,{isDisabled:Ee||De})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:2,align:`stretch`,w:`full`,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,color:y,children:s(`From`)}),X&&(0,i.jsxs)(n.Text,{cursor:`pointer`,_hover:{color:b,textDecoration:`underline`},onClick:Re,noOfLines:1,overflow:`hidden`,textOverflow:`ellipsis`,fontSize:`sm`,fontWeight:`medium`,color:b,children:[s(`Balance`),`:`,` `,Number(X.balance??0).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]})]}),(0,i.jsx)(n.Box,{p:4,borderRadius:`2xl`,bg:v,children:(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:2,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsx)(n.Input,{placeholder:`0`,value:N,onChange:e=>Le(e.target.value),fontSize:`4xl`,fontWeight:`bold`,variant:`unstyled`,"data-testid":`swap-amount-input`,type:`number`,inputMode:`decimal`,color:X&&N&&Number(N)>Number(X.balance)?`red.500`:y}),X?(0,i.jsxs)(n.Button,{onClick:()=>O(`select-from-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:b,borderColor:b,_hover:{bg:m?`whiteAlpha.300`:`blackAlpha.300`},leftIcon:X.logoComponent?r.default.cloneElement(X.logoComponent,{boxSize:`20px`,borderRadius:`full`}):X.logoUrl?(0,i.jsx)(n.Image,{src:X.logoUrl,alt:`${X.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:(0,i.jsx)(n.Box,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Text,{fontSize:`8px`,fontWeight:`bold`,color:y,children:X.symbol.slice(0,3)})})}):void 0,children:[X.symbol,(0,i.jsx)(n.Icon,{as:_.LuChevronDown,boxSize:5,color:b})]}):(0,i.jsxs)(n.Button,{onClick:()=>O(`select-from-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:b,borderColor:b,_hover:{bg:m?`whiteAlpha.300`:`blackAlpha.300`,color:S},children:[s(`Select token`),(0,i.jsx)(n.Icon,{as:_.LuChevronDown,boxSize:5,color:b})]})]}),(0,i.jsx)(n.HStack,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:b,children:(0,i.jsx)(n.HStack,{spacing:2,alignItems:`center`,children:(0,i.jsxs)(n.Text,{color:b,children:[`≈`,` `,Ht(fe??0,{currency:d})]})})})]})}),(0,i.jsx)(n.HStack,{justify:`space-between`,mt:4,children:(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,color:y,children:s(`To`)})}),(0,i.jsx)(n.Box,{borderRadius:`2xl`,bg:v,p:4,children:(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:2,width:`100%`,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,alignItems:`center`,children:[(0,i.jsx)(n.Input,{value:Number(q).toLocaleString(void 0,{maximumFractionDigits:Number(q)>1e4?0:2}),readOnly:!0,variant:`unstyled`,fontSize:`4xl`,fontWeight:`bold`,"data-testid":`swap-output-amount`,color:y}),Be?(0,i.jsxs)(n.Button,{onClick:()=>O(`select-to-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:b,borderColor:b,_hover:{bg:m?`whiteAlpha.300`:`blackAlpha.300`},leftIcon:Be.logoComponent?r.default.cloneElement(Be.logoComponent,{boxSize:`20px`,borderRadius:`full`}):Be.logoUrl?(0,i.jsx)(n.Image,{src:Be.logoUrl,alt:`${Be.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:(0,i.jsx)(n.Box,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Text,{fontSize:`8px`,fontWeight:`bold`,color:y,children:Be.symbol.slice(0,3)})})}):void 0,children:[Be.symbol,(0,i.jsx)(n.Icon,{as:_.LuChevronDown,boxSize:5,color:b})]}):(0,i.jsxs)(n.Button,{onClick:()=>O(`select-to-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:b,borderColor:b,_hover:{bg:m?`whiteAlpha.300`:`blackAlpha.300`,color:S},children:[s(`Select token`),(0,i.jsx)(n.Icon,{as:_.LuChevronDown,boxSize:5,color:b})]})]}),(0,i.jsxs)(n.HStack,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:b,children:[(0,i.jsx)(n.HStack,{spacing:2,alignItems:`center`,children:(0,i.jsxs)(n.Text,{color:b,children:[`≈`,` `,Ht(pe??0,{currency:d})]})}),Be&&(0,i.jsxs)(n.Text,{noOfLines:1,overflow:`hidden`,textOverflow:`ellipsis`,fontSize:`sm`,fontWeight:`medium`,color:b,children:[s(`Balance`),`:`,` `,Number(Be.balance??0).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]})]})]})}),(0,i.jsx)(n.Collapse,{in:F&&!!K,animateOpacity:!0,children:(0,i.jsxs)(n.VStack,{spacing:1,align:`stretch`,p:4,borderRadius:`2xl`,bg:v,children:[K&&(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsxs)(n.Text,{fontSize:`xs`,color:b,children:[s(`Source`),`:`]}),(0,i.jsx)(n.Button,{variant:`outline`,size:`xs`,borderRadius:`full`,px:3,h:`auto`,py:1,cursor:`pointer`,onClick:()=>O(`select-quote`),color:b,borderColor:b,_hover:{bg:m?`whiteAlpha.300`:`blackAlpha.300`},leftIcon:K.aggregator?.getIcon(`12px`),children:(0,i.jsx)(n.Text,{fontSize:`xs`,color:y,children:K.aggregatorName})})]}),(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:2,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsxs)(n.Text,{fontSize:`xs`,color:b,children:[s(`Slippage tolerance`),`:`]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,fontWeight:`medium`,color:y,children:[L,`%`]})]}),(0,i.jsx)(n.VStack,{spacing:3,align:`stretch`,pt:2,children:(0,i.jsxs)(n.HStack,{spacing:2,children:[(0,i.jsx)(n.Button,{size:`sm`,variant:`outline`,onClick:()=>{R(1)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,bg:ae?C:`transparent`,color:ae?w:b,borderColor:ae?C:b,_hover:{bg:ae?C:m?`whiteAlpha.300`:`blackAlpha.300`,opacity:ae?.8:1},children:`Auto`}),(0,i.jsx)(n.Button,{size:`sm`,variant:`outline`,onClick:()=>{R(.5)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,bg:L===.5?C:`transparent`,color:L===.5?w:b,borderColor:L===.5?C:b,_hover:{bg:L===.5?C:m?`whiteAlpha.300`:`blackAlpha.300`,opacity:L===.5?.8:1},children:`0.5%`}),(0,i.jsx)(n.Button,{size:`sm`,variant:`outline`,onClick:()=>{R(3)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,bg:L===3?C:`transparent`,color:L===3?w:b,borderColor:L===3?C:b,_hover:{bg:L===3?C:m?`whiteAlpha.300`:`blackAlpha.300`,opacity:L===3?.8:1},children:`3%`}),(0,i.jsxs)(n.InputGroup,{size:`sm`,flex:1,children:[(0,i.jsx)(n.Input,{value:z,onChange:e=>{let t=e.target.value;if(/^\d*\.?\d*$/.test(t)||t===``)if(B(t),t!==``){let e=parseFloat(t);!isNaN(e)&&e>=0&&e<=100&&R(e)}else R(1)},placeholder:`1`,borderRadius:`md`,textAlign:`right`,pr:8,fontSize:`xs`,color:y}),(0,i.jsx)(n.InputRightElement,{width:`2rem`,pointerEvents:`none`,children:(0,i.jsx)(n.Text,{fontSize:`2xs`,color:b,children:`%`})})]})]})})]}),(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsxs)(n.Text,{fontSize:`xs`,color:b,children:[s(`Fee`),`:`]}),(0,i.jsx)(n.Text,{fontSize:`xs`,fontWeight:`medium`,color:y,children:he>0?`${he.toLocaleString(void 0,{maximumFractionDigits:2})} VTHO`:`-`})]})]})}),K&&(0,i.jsx)(n.Box,{minH:`24px`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Button,{variant:`ghost`,size:`xs`,onClick:()=>I(!F),rightIcon:(0,i.jsx)(n.Icon,{color:S,_hover:{color:b},as:F?_.LuArrowUp:_.LuArrowDown}),fontSize:`xs`,fontWeight:`light`,color:S,_hover:{color:b},children:s(F?`Hide`:`Show Advanced Options`)})}),U.length>0&&u.isConnectedWithPrivy&&(0,i.jsx)(Mc,{estimation:_e,isLoading:ve,isLoadingTransaction:Ee,onTokenChange:Ce,clauses:U,userSelectedToken:ne})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(kc,{buttonText:s(ce?`Loading quote...`:`Swap`),onConfirm:Te,isSubmitting:Ee,isTxWaitingConfirmation:De,transactionPendingText:s(`Swapping...`),txReceipt:Oe,transactionError:Ae,onError:e=>{Me(e)},isDisabled:!k||!j||!N||Number(N)<=0||ce||!K||K?.reverted===!0||!!(X&&N&&Number(N)>Number(X.balance))||Se,gasEstimationError:ye,hasEnoughGasBalance:we,isLoadingGasEstimation:ve,showGasEstimationError:!p?.delegatorUrl&&u.isConnectedWithPrivy,context:`transaction`})})]})},Rr=({setCurrentContent:e,onBack:t=()=>e(`settings`),initialContentSource:r=`settings`})=>{let{t:a}=(0,l.useTranslation)(),{isolatedView:o}=Ar(),s=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),c=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),u=()=>{t()};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{"data-testid":`modal-title`,children:a(`Choose your account name`)}),!o&&(0,i.jsx)(J,{onClick:u}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,py:8,children:[(0,i.jsx)(n.Icon,{as:_.LuSquareUser,boxSize:16,color:c}),(0,i.jsxs)(n.VStack,{spacing:2,children:[(0,i.jsx)(n.Text,{fontSize:`lg`,fontWeight:`500`,textAlign:`center`,color:s,children:a(`Finally say goodbye to 0x addresses`)}),(0,i.jsx)(n.Text,{fontSize:`md`,color:c,textAlign:`center`,px:4,children:a(`Name your account to make it easier to exchange assets`)})]})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,onClick:()=>e({type:`choose-name-search`,props:{name:``,setCurrentContent:e,initialContentSource:r}}),"data-testid":`choose-name-button`,children:a(`Choose name`)})})]})},zr=({domain:e,isCurrentDomain:r,onSelect:a})=>{let{connection:o}=Z(),{t:s}=(0,l.useTranslation)(),c=Dn(e.name,o.network),u=(0,n.useToken)(`colors`,`vechain-kit-card`),d=(0,n.useToken)(`colors`,`vechain-kit-card-hover`),f=(0,n.useToken)(`colors`,`vechain-kit-border`),p=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),m=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),h=(0,n.useToken)(`colors`,`vechain-kit-card`);return(0,i.jsx)(n.ListItem,{p:4,bg:u,borderRadius:`xl`,cursor:r?`default`:`pointer`,opacity:r?.7:1,border:`1px solid ${f}`,_hover:{bg:r?d:u,borderColor:f},onClick:()=>!r&&a(e.name),transition:`all 0.2s`,children:(0,i.jsxs)(n.HStack,{spacing:3,align:`center`,children:[(0,i.jsx)(Oc,{props:{width:`40px`,height:`40px`,src:c.image??t.U(e.name),alt:e.name}}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,flex:1,children:[(0,i.jsx)(n.Text,{color:p,fontSize:`md`,fontWeight:`500`,children:t.G(e.name,24,0)}),r&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:m,children:s(`Current domain`)})]}),r&&(0,i.jsx)(n.Tag,{size:`sm`,bg:h,color:p,px:3,py:1,borderRadius:`full`,children:s(`Current`)})]})},e.name)},Br=({onUnset:e})=>{let t=(0,n.useToken)(`colors`,`vechain-kit-card`),r=(0,n.useToken)(`colors`,`vechain-kit-card-hover`),a=(0,n.useToken)(`colors`,`vechain-kit-border`),o=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),s=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),c=(0,n.useToken)(`colors`,`vechain-kit-error`),{t:u}=(0,l.useTranslation)();return(0,i.jsx)(n.ListItem,{p:4,bg:t,borderRadius:`xl`,cursor:`pointer`,opacity:1,border:`1px solid ${a}`,_hover:{bg:r,borderColor:a,color:`red.400`},onClick:e,transition:`all 0.2s`,role:`button`,"aria-label":u(`Unset current domain`),children:(0,i.jsxs)(n.HStack,{spacing:3,align:`center`,children:[(0,i.jsx)(n.Box,{width:`40px`,height:`40px`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`,bg:t,children:(0,i.jsx)(n.Icon,{as:_.LuTrash2,fontSize:`18px`,color:c})}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,flex:1,children:[(0,i.jsx)(n.Text,{color:o,fontSize:`md`,fontWeight:`500`,children:u(`Unset current domain`)}),(0,i.jsx)(n.Text,{fontSize:`sm`,color:s,children:u(`Remove your current domain name`)})]})]})},`unset-domain-list-item`)},Vr=({domains:e,onDomainSelect:t,onUnsetDomain:r,isLoading:a})=>{let{t:o}=(0,l.useTranslation)(),{account:s}=Z(),c=(0,n.useToken)(`colors`,`vechain-kit-card`),u=(0,n.useToken)(`colors`,`vechain-kit-card-hover`),d=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),f=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`);return e.length===0||a?null:(0,i.jsx)(n.Accordion,{allowToggle:!0,children:(0,i.jsx)(n.AccordionItem,{border:`none`,children:({isExpanded:l})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.AccordionButton,{bg:c,borderRadius:`xl`,_hover:{bg:u},opacity:a?.7:1,transition:`all 0.2s`,disabled:a,children:[(0,i.jsx)(n.Box,{flex:`1`,textAlign:`left`,py:2,children:(0,i.jsx)(n.Text,{fontWeight:`500`,color:d,children:a?o(`Loading your domains...`):`${o(`Your existing domains`)} (${e.length})`})}),(0,i.jsx)(n.Icon,{as:l?_.LuChevronUp:_.LuChevronDown,fontSize:`20px`,color:f})]}),(0,i.jsx)(n.AccordionPanel,{pb:4,pt:2,children:(0,i.jsxs)(n.List,{spacing:2,children:[e.map(e=>(0,i.jsx)(zr,{domain:e,isCurrentDomain:e.name===s?.domain,onSelect:t},e.name)),s?.domain&&(0,i.jsx)(Br,{onUnset:r})]})})]})})})},Hr=({name:e,setCurrentContent:t,initialContentSource:a=`settings`})=>{let{t:o}=(0,l.useTranslation)(),{account:s}=Z(),{darkMode:c}=$(),{isolatedView:u}=Ar(),[d,f]=(0,r.useState)((0,k.ens_normalize)(e)),[p,m]=(0,r.useState)(null),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(!1),x=(0,n.useToken)(`colors`,`vechain-kit-error`),S=(0,n.useToken)(`colors`,`vechain-kit-success`),C=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),{data:w,isLoading:T}=Ue(d),{data:E,isLoading:D}=Be(`${d}.veworld.vet`),{data:O,isLoading:A}=rt(d),{data:j,isLoading:M}=ct(s?.address,``),N=T||D||A;(0,r.useEffect)(()=>{if(!y)return;let e=/[^a-zA-Z0-9-]|\s/.test(d);d.length<3?(m(o(`Name must be at least 3 characters long`)),v(!1),g(!1)):e?(m(o(`Only letters, numbers, and hyphens are allowed`)),v(!1),g(!1)):O?(m(o(`This domain is protected`)),v(!1),g(!1)):w?E?.address?.toLowerCase()===s?.address?.toLowerCase()?(m(null),v(!0),g(!0)):(m(o(`This domain is already taken`)),v(!1),g(!1)):T||(m(null),v(!0),g(!1))},[d,y,w,T,E,s?.address,O,_,N]);let P=()=>{_&&!p&&t({type:`choose-name-summary`,props:{fullDomain:d+`.veworld.vet`,isOwnDomain:h,setCurrentContent:t,initialContentSource:a}})},F=e=>{let n=e.split(`.`);t({type:`choose-name-summary`,props:{fullDomain:e,domainType:n.length>2?`${n[1]}.${n[2]}`:`vet`,isOwnDomain:!0,setCurrentContent:t,initialContentSource:a}})},I=()=>{t({type:`choose-name-summary`,props:{fullDomain:``,domainType:``,isOwnDomain:!1,isUnsetting:!0,setCurrentContent:t,initialContentSource:a}})},L=()=>{t(a)};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{"data-testid":`modal-title`,children:o(`Choose Name`)}),!u&&(0,i.jsx)(J,{onClick:L}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,children:[(0,i.jsx)(Vr,{domains:j?.domains||[],onDomainSelect:F,onUnsetDomain:I,isLoading:M}),(0,i.jsxs)(n.InputGroup,{size:`lg`,children:[(0,i.jsx)(n.Input,{placeholder:o(`Enter your name`),value:d,onChange:e=>{f((0,k.ens_normalize)(e.target.value)),y||b(!0)},paddingRight:`120px`,fontSize:`lg`,height:`60px`,bg:c?`#00000038`:`white`,border:`1px solid ${c?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${c?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${c?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},isInvalid:!!p,"data-testid":`domain-input`}),(0,i.jsx)(n.InputRightElement,{width:`auto`,paddingRight:`12px`,h:`full`,children:(0,i.jsx)(n.Box,{mr:4,fontSize:`sm`,color:C,children:`.veworld.vet`})})]}),p&&y&&(0,i.jsx)(n.Text,{color:x,fontSize:`sm`,"data-testid":`domain-availability-status`,children:p}),!p&&y&&d.length>=3&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:_?S:x,fontWeight:`500`,"data-testid":`domain-availability-status`,children:o(h?`YOU OWN THIS`:_?`AVAILABLE`:`UNAVAILABLE`)})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,isDisabled:!_||!!p||O||N,isLoading:N,onClick:P,loadingText:o(`Checking...`),"data-testid":`continue-button`,children:o(`Continue`)})})]})},Ur=({setCurrentContent:e,fullDomain:t,domainType:a=`veworld.vet`,isOwnDomain:o,isUnsetting:s=!1,initialContentSource:c=`settings`})=>{let{t:u}=(0,l.useTranslation)(),d=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),{isolatedView:f,closeAccountModal:p}=Ar(),{account:m,connectedWallet:h,connection:g}=Z(),{data:v}=Ms(m?.address??``,h?.address??``,3),{open:y}=Eo(),{preferences:b}=xc(),{feeDelegation:x}=$(),S=e=>{console.error(`Transaction failed:`,e)},C=Nt({onSuccess:()=>N()}),w=a.endsWith(`veworld.vet`),T=Ye({subdomain:t.split(`.veworld.vet`)[0],domain:a,alreadyOwned:o,onSuccess:()=>N()}),E=$e({domain:!s&&!w?t:``,alreadyOwned:o,onSuccess:()=>N()}),{sendTransaction:D,txReceipt:O,error:k,isWaitingForWalletConfirmation:A,isTransactionPending:j,clauses:M}=s?C:w?T:E,N=()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:O?.meta.txID,title:u(s?`Domain unset`:`Domain set`),description:s?u(`Your domain has been unset successfully.`):u(`Your address has been successfully set to {{name}}`,{name:t}),onDone:()=>{f?p():e(c)}}})},P=async()=>{if(v){y();return}try{await D()}catch(e){console.error(`Transaction failed:`,e)}},F=()=>{P()},I=()=>{e({type:`choose-name-search`,props:{setCurrentContent:e,name:t,initialContentSource:c}})},[L,R]=r.default.useState(null),[z,B]=r.default.useState(null),V=b.availableGasTokens.length>0&&(g.isConnectedWithPrivy||g.isConnectedWithVeChain)&&!x?.delegatorUrl,{data:ee,isLoading:H,error:te,refetch:ne}=Sc({clauses:M(),tokens:L?[L]:b.availableGasTokens,enabled:V&&!!x?.genericDelegatorUrl}),re=ee?.usedToken,U=(H||!ee)&&g.isConnectedWithPrivy&&!x?.delegatorUrl,ie=r.default.useCallback(e=>{R(e),B(e),setTimeout(()=>ne(),100)},[ne]),W=!!re&&!te;return r.default.useEffect(()=>{te&&L&&R(null)},[te,L]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{"data-testid":`confirm-domain`,children:u(s?`Confirm Unset Domain`:`Confirm Name`)}),(0,i.jsx)(J,{onClick:I,isDisabled:j}),(0,i.jsx)(n.ModalCloseButton,{isDisabled:j})]}),(0,i.jsxs)(n.ModalBody,{children:[(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,mt:10,children:[(0,i.jsx)(n.Icon,{as:_.LuSquareUser,color:d,fontSize:`60px`,opacity:.5}),(0,i.jsx)(n.Text,{fontSize:`md`,textAlign:`center`,color:d,children:s?u(`By confirming, your current domain will be unset`):u(`By confirming, your address will be set to {{domain}}`,{domain:t})})]}),!s&&(0,i.jsx)(n.VStack,{spacing:4,align:`stretch`,mt:6,children:(0,i.jsx)(n.Text,{fontSize:`xl`,fontWeight:`bold`,color:d,textAlign:`center`,"data-testid":`preconfirm-domain-val`,children:t})}),g.isConnectedWithPrivy&&(0,i.jsx)(Mc,{estimation:ee,isLoading:H,isLoadingTransaction:j,onTokenChange:ie,clauses:M(),userSelectedToken:z})]}),(0,i.jsx)(n.ModalFooter,{gap:4,w:`full`,children:(0,i.jsx)(kc,{transactionError:k,isSubmitting:j,isTxWaitingConfirmation:A,onConfirm:P,onRetry:F,transactionPendingText:u(s?`Unsetting current domain...`:`Claiming name...`),txReceipt:O,buttonText:u(`Confirm`),isDisabled:j||U,onError:S,gasEstimationError:te,hasEnoughGasBalance:W,isLoadingGasEstimation:H,showGasEstimationError:!x?.delegatorUrl&&g.isConnectedWithPrivy,context:`domain`})})]})},Wr=()=>{let{t:e}=(0,l.useTranslation)(),[t,a]=(0,r.useState)(``),o=(0,n.useToken)(`colors`,`vechain-kit-card`),s=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),c=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),u=(0,n.useToken)(`colors`,`vechain-kit-card`),d=(0,n.useToken)(`colors`,`vechain-kit-card-elevated`),f=[{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(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,children:[(0,i.jsxs)(n.InputGroup,{size:`lg`,children:[(0,i.jsx)(n.Input,{placeholder:e(`Search FAQ`),bg:o,borderRadius:`xl`,height:`56px`,pl:12,value:t,onChange:e=>a(e.target.value)}),(0,i.jsx)(n.InputLeftElement,{h:`56px`,w:`56px`,pl:4,children:(0,i.jsx)(_.LuSearch,{color:c})})]}),f.length===0?(0,i.jsxs)(n.VStack,{spacing:2,py:8,color:s,children:[(0,i.jsx)(n.Icon,{as:_.LuSlash,boxSize:12,opacity:.5}),(0,i.jsx)(n.Text,{fontSize:`lg`,children:e(`No questions found`)}),(0,i.jsx)(n.Text,{fontSize:`md`,children:e(`Try searching with a different term`)})]}):(0,i.jsx)(n.Accordion,{allowMultiple:!0,children:f.map((e,t)=>(0,i.jsx)(n.AccordionItem,{border:`none`,mb:2,children:({isExpanded:t})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.AccordionButton,{bg:u,borderRadius:`xl`,color:s,_hover:{bg:d},children:[(0,i.jsx)(n.Box,{flex:`1`,textAlign:`left`,py:2,children:(0,i.jsx)(n.Text,{fontWeight:`500`,color:s,children:e.question})}),(0,i.jsx)(n.Icon,{as:t?_.LuChevronUp:_.LuChevronDown,fontSize:`20px`,opacity:.5})]}),(0,i.jsx)(n.AccordionPanel,{pb:4,children:(0,i.jsx)(n.Text,{fontSize:`sm`,color:s,opacity:.8,children:e.answer})})]})},t))})]})},Gr=({onGoBack:t,showLanguageSelector:r=!0})=>{let{i18n:a,t:o}=(0,l.useTranslation)(),{isolatedView:s}=Ar(),c=(0,n.useToken)(`colors`,`vechain-kit-card`),u=(0,n.useToken)(`colors`,`vechain-kit-border`),d=(0,n.useToken)(`colors`,`vechain-kit-border-hover`);return(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:o(`Help`)}),!s&&(0,i.jsx)(J,{onClick:t}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{spacing:6,align:`stretch`,children:[r&&(0,i.jsx)(n.Select,{borderRadius:`md`,size:`sm`,width:`auto`,value:a.language,onChange:async e=>{let t=e.target.value;try{await ne(t),a.changeLanguage(t)}catch(e){console.error(`[VeChainKit] Failed to switch language to "${t}":`,e)}},bg:c,borderColor:u,_hover:{borderColor:d},children:V.map(e=>(0,i.jsx)(`option`,{value:e,children:ee[e]},e))}),(0,i.jsx)(n.Button,{as:n.Link,href:e.C,isExternal:!0,variant:`vechainKitSecondary`,rightIcon:(0,i.jsx)(n.Icon,{as:_.LuExternalLink}),children:o(`For developers`)}),(0,i.jsx)(Wr,{})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},Kr=({leftIcon:e,rightIcon:r,title:a,wallet:o,onClick:s,leftImage:c,isActive:u=!1})=>{let{t:d}=(0,l.useTranslation)(),{darkMode:f}=$();return(0,i.jsx)(n.Button,{w:`full`,minH:`70px`,h:`fit-content`,py:4,onClick:s,backgroundColor:`transparent`,border:`1px solid ${f?`#ffffff29`:`#ebebeb`}`,children:(0,i.jsxs)(n.HStack,{w:`full`,justify:`space-between`,children:[(0,i.jsx)(n.Box,{minW:`40px`,justifyContent:`center`,children:c?(0,i.jsx)(n.Image,{justifySelf:`center`,src:c,w:`28px`,alt:`left-image`}):(0,i.jsx)(n.Icon,{as:e,fontSize:`28px`})}),(0,i.jsxs)(n.VStack,{textAlign:`left`,w:`full`,flex:1,children:[(0,i.jsx)(n.HStack,{w:`full`,spacing:2,justifyContent:`flex-start`,children:(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`400`,children:a})}),(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`500`,opacity:.5,overflowWrap:`break-word`,wordBreak:`break-word`,whiteSpace:`normal`,w:`full`,children:o?.domain?t.G(o?.domain??``,18,0):t.W(o?.address??``,6,4)})]}),(0,i.jsx)(n.VStack,{minW:`40px`,justifyContent:`flex-end`,children:(0,i.jsxs)(n.HStack,{justifyContent:`flex-end`,minW:`40px`,children:[u&&(0,i.jsx)(n.Tag,{size:`sm`,colorScheme:`green`,children:d(`Active`)}),(0,i.jsx)(n.Icon,{as:r,fontSize:`20px`,opacity:.5})]})})]})})},Q=({leftIcon:e,rightIcon:t,title:r,onClick:a,leftImage:o,hide:s=!1,showComingSoon:c=!1,backgroundColor:u,_hover:d,isDisabled:f=!1,stacked:p=!1,isLoading:m,loadingText:h,style:g,extraContent:_,dataTestId:v,variant:y=`actionButton`})=>{let{t:b}=(0,l.useTranslation)();return(0,i.jsx)(n.Button,{variant:y===`actionButton`?`vechainKitSecondary`:y,py:p?0:2,minHeight:`50px`,height:`fit-content`,p:0,onClick:a,display:s?`none`:`flex`,isDisabled:c||f,isLoading:m,loadingText:h,bgColor:u,_hover:d,"data-testid":v,...g,children:(0,i.jsxs)(n.HStack,{w:`full`,justify:`space-between`,alignItems:`center`,children:[(0,i.jsx)(n.Box,{minW:`40px`,h:`20px`,children:o?(0,i.jsx)(n.Image,{src:o,w:`30px`,h:`30px`,borderRadius:`full`,alt:`left-image`,alignSelf:`end`,objectFit:`cover`}):(0,i.jsx)(n.Icon,{as:e,fontSize:`20px`,h:`full`,alignContent:`center`})}),(0,i.jsx)(n.VStack,{textAlign:`left`,w:`full`,flex:1,justifyContent:`flex-start`,alignItems:`flex-start`,children:(0,i.jsxs)(n.HStack,{justify:`flex-start`,alignItems:`baseline`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`400`,children:r}),c&&(0,i.jsx)(n.Tag,{size:`sm`,colorScheme:`red`,children:b(`Coming Soon!`)}),_]})}),t&&(0,i.jsx)(n.VStack,{minW:`40px`,justifyContent:`flex-end`,children:(0,i.jsx)(n.Icon,{as:t,fontSize:`20px`,opacity:.5})})]})})},qr=({wallet:e,setCurrentContent:a,size:o=`md`,onClick:s,onClose:c,mt:u,style:d})=>{let{t:f}=(0,l.useTranslation)(),{connection:m}=Z(),{switchWallet:h,isSwitching:g,isInAppBrowser:v}=An(),{isSwitchWalletEnabled:y}=(0,p.useWallet)(),[b,x]=(0,r.useState)(!1),S=async()=>{await t.lt(e?.domain??e?.address??``)&&(x(!0),setTimeout(()=>{x(!1)},2e3))},C=()=>{v?h():a?.({type:`select-wallet`,props:{setCurrentContent:a,onClose:c,returnTo:`main`,onLogoutSuccess:c}})};return(0,i.jsxs)(n.HStack,{mt:u,w:`full`,...d,justifyContent:`flex-start`,alignItems:`center`,children:[(0,i.jsx)(n.Button,{w:`full`,h:12,"aria-label":`Wallet`,onClick:s,variant:`vechainKitSecondary`,p:3,"data-testid":`profile-button`,children:(0,i.jsxs)(n.HStack,{spacing:2,align:`center`,justifyContent:`space-between`,w:`full`,children:[(0,i.jsxs)(n.HStack,{spacing:2,justifyContent:`flex-start`,children:[(0,i.jsx)(Oc,{wallet:e,props:{width:7,height:7}}),(0,i.jsx)(n.Text,{fontSize:o,fontWeight:`500`,children:b?f(`Copied!`):t.G(e?.domain??``,22,0)||t.W(e?.address??``,6,4)})]}),(0,i.jsx)(n.Icon,{boxSize:5,as:_.LuChevronRight,cursor:`pointer`,opacity:.5})]})}),m.isInAppBrowser&&y||!m.isInAppBrowser&&m.isConnectedWithDappKit?(0,i.jsx)(n.IconButton,{"aria-label":`Switch wallet`,icon:(0,i.jsx)(n.Icon,{as:_.LuArrowLeftRight}),onClick:C,w:`60px`,h:12,variant:`vechainKitSecondary`,p:3,isLoading:g,isDisabled:g,"data-testid":`switch-wallet-button`}):(0,i.jsx)(n.IconButton,{"aria-label":`Copy address`,icon:(0,i.jsx)(n.Icon,{as:b?_.LuCheck:_.LuCopy}),onClick:S,w:`60px`,h:12,variant:`vechainKitSecondary`,p:3})]})},Jr=({address:e,maxIcons:a=3,iconSize:o=20,ml:s=0,style:c,iconsGap:u=0,rightIcon:d,showNoAssetsWarning:f=!1,onClick:p})=>{let{t:m}=(0,l.useTranslation)(),{tokensWithBalance:h}=Kt({address:e}),{darkMode:g}=$(),_=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),v=u<1?`-${o/2}px`:`${u}px`,y=h.slice(0,a),b=h.length-a;return!e||h.length===0&&!f?null:(0,i.jsxs)(n.HStack,{spacing:0,ml:s,...c,onClick:p,children:[(0,i.jsxs)(n.HStack,{spacing:0,children:[y.map((e,a)=>(0,i.jsx)(n.Circle,{ml:a>0?v:`0`,zIndex:a,size:`${o}px`,borderRadius:`full`,bg:g?`gray.100`:`gray.600`,border:`2px solid #00000024`,alignItems:`center`,justifyContent:`center`,children:t.et[e.symbol]?r.default.cloneElement(t.et[e.symbol],{width:`${o*.8}px`,height:`${o*.8}px`,rounded:`full`}):t.$[e.symbol]?(0,i.jsx)(n.Image,{src:t.$[e.symbol],alt:`${e.symbol} logo`,width:`${o*.8}px`,height:`${o*.8}px`,rounded:`full`}):(0,i.jsx)(n.Text,{fontSize:`${o*.4}px`,fontWeight:`bold`,color:g?`black`:`white`,children:e.symbol.slice(0,3)})},e.symbol)),b>0&&(0,i.jsx)(n.Circle,{ml:v,zIndex:y.length,size:`${o}px`,borderRadius:`full`,bg:g?`gray.100`:`gray.700`,display:`flex`,alignItems:`center`,justifyContent:`center`,border:`2px solid`,children:(0,i.jsxs)(n.Text,{fontSize:`${o*.4}px`,fontWeight:`bold`,color:g?`black`:`white`,children:[`+`,b]})}),h.length===0&&f&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:_,fontWeight:`700`,children:m(`No assets`)})]}),d]})},Yr=({mb:e,mt:t,onAssetsClick:a})=>{let{t:o}=(0,l.useTranslation)(),{account:s}=Z(),{formattedBalance:c,isLoading:u}=qt({address:s?.address??``}),{refresh:d}=kn(),[f,p]=(0,r.useState)(!1),m=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),h=async()=>{p(!0),await d(),setTimeout(()=>{p(!1)},1500)},[g,v]=uc(lc.SHOW_ASSETS,!0);return(0,i.jsxs)(n.VStack,{w:`full`,justifyContent:`start`,spacing:1,mt:t,mb:e,children:[(0,i.jsxs)(n.HStack,{w:`full`,justifyContent:`space-between`,alignItems:`center`,spacing:0,role:`group`,children:[(0,i.jsx)(n.Heading,{size:`xs`,fontWeight:`800`,color:m,textTransform:`uppercase`,letterSpacing:1.2,ml:`5px`,children:o(`Assets`)}),(0,i.jsxs)(n.HStack,{spacing:0,alignItems:`center`,children:[(0,i.jsx)(n.IconButton,{"aria-label":`Refresh balances`,variant:`ghost`,size:`sm`,opacity:.5,_hover:{opacity:.8},onClick:h,icon:(0,i.jsx)(n.Icon,{as:_.LuRefreshCw,boxSize:4}),isLoading:u||f,sx:{"& > span.chakra-button__spinner":{width:`16px`,height:`16px`,position:`absolute`}}}),(0,i.jsx)(n.IconButton,{"aria-label":`Show/hide assets`,variant:`ghost`,size:`sm`,opacity:.5,_hover:{opacity:.8},onClick:()=>v(!g),icon:(0,i.jsx)(n.Icon,{as:g?j.GoEye:j.GoEyeClosed,boxSize:4})})]})]}),(0,i.jsx)(n.Button,{onClick:a,h:`fit-content`,variant:`vechainKitSecondary`,children:(0,i.jsxs)(n.VStack,{spacing:2,w:`full`,justifyContent:`flex-start`,alignItems:`flex-start`,mt:4,mb:4,children:[(0,i.jsx)(n.Heading,{size:`2xl`,fontWeight:`700`,children:g?c:`$****`}),(0,i.jsx)(n.HStack,{w:`full`,justifyContent:`flex-start`,"data-testid":`all-assets-button`,mt:2,children:(0,i.jsx)(Jr,{style:{width:`100%`,justifyContent:`space-between`},maxIcons:10,iconSize:26,iconsGap:3,address:s?.address??``,showNoAssetsWarning:!0,rightIcon:(0,i.jsx)(n.Icon,{as:_.LuChevronRight,boxSize:5,opacity:.5,marginLeft:2})})})]})})]})},Xr=[{icon:_.LuArrowUpFromLine,label:`Send`,onClick:e=>e({type:`send-token`,props:{setCurrentContent:e}}),isDisabled:e=>!e},{icon:_.LuArrowLeftRight,label:`Swap`,onClick:e=>{e(`swap-token`)},isDisabled:e=>!e},{icon:_.LuArrowDownToLine,label:`Receive`,onClick:e=>{e(`receive-token`)}}],Zr=({icon:e,label:t,onClick:r,isDisabled:a,showRedDot:o})=>{let{t:s}=(0,l.useTranslation)();return(0,i.jsx)(n.IconButton,{variant:`vechainKitSecondary`,h:`80px`,w:`full`,"aria-label":t,isDisabled:a,p:3,icon:(0,i.jsxs)(n.VStack,{spacing:4,children:[(0,i.jsx)(n.Icon,{as:e,boxSize:5,opacity:.9}),(0,i.jsxs)(n.HStack,{p:0,alignItems:`baseline`,spacing:1,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`600`,"data-testid":`${t.toLowerCase()}-button-label`,children:s(t,t)}),o&&(0,i.jsx)(n.Box,{minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`})]})]}),onClick:r})},Qr=({mt:e,setCurrentContent:t})=>{let{account:r,smartAccount:a,connectedWallet:o,connection:s}=Z(),{hasAnyBalance:c}=qt({address:r?.address??``}),{data:l}=Ms(a?.address??``,o?.address??``,3),u=s.isConnectedWithPrivy&&l;return(0,i.jsx)(n.Grid,{templateColumns:`repeat(3, 1fr)`,gap:2,w:`full`,mt:e,children:Xr.map(e=>(0,i.jsx)(Zr,{icon:e.icon,label:e.label,onClick:()=>e.onClick(t),isDisabled:e.isDisabled?.(c),showRedDot:u&&e.label===`Settings`},e.label))})},$r=({setCurrentContent:e})=>{let{t}=(0,l.useTranslation)(),r=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),a=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`);return(0,i.jsx)(n.Card,{w:`full`,variant:`featureAnnouncement`,overflow:`hidden`,onClick:()=>{e({type:`choose-name`,props:{setCurrentContent:e,onBack:()=>e(`profile`),initialContentSource:`profile`}})},cursor:`pointer`,_hover:{opacity:.8},children:(0,i.jsx)(n.CardBody,{p:4,children:(0,i.jsx)(n.HStack,{justify:`space-between`,align:`flex-start`,spacing:3,children:(0,i.jsxs)(n.VStack,{align:`flex-start`,spacing:1,children:[(0,i.jsxs)(n.HStack,{spacing:2,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`400`,color:r,children:t(`Claim your vet domain!`)}),(0,i.jsx)(n.Tag,{size:`sm`,colorScheme:`red`,children:t(`New`)})]}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:a,children:t(`Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!`)})]})})})})},ei=()=>{let{t:e}=(0,l.useTranslation)();return(0,i.jsx)(n.Alert,{status:`warning`,fontSize:`xs`,borderRadius:`xl`,p:2,children:(0,i.jsx)(n.VStack,{spacing:1,align:`stretch`,w:`full`,children:(0,i.jsxs)(n.HStack,{spacing:2,align:`flex-start`,children:[(0,i.jsx)(n.AlertIcon,{boxSize:4,mt:`10px`}),(0,i.jsx)(n.Text,{w:`full`,children:e(`Sending to OceanX or other exchanges may result in loss of funds.`)})]})})})},ti=()=>{let{t:e}=(0,l.useTranslation)();return(0,i.jsx)(n.Alert,{status:`warning`,fontSize:`xs`,borderRadius:`xl`,p:2,children:(0,i.jsx)(n.VStack,{spacing:1,align:`stretch`,w:`full`,children:(0,i.jsxs)(n.HStack,{spacing:2,align:`flex-start`,children:[(0,i.jsx)(n.AlertIcon,{boxSize:4,mt:`10px`}),(0,i.jsx)(n.Text,{w:`full`,children:e(`A .vet domain is required to customize your profile. Choose an account name to get started.`)})]})})})},ni=()=>{let{t}=(0,l.useTranslation)(),{getConnectionCache:r}=Lo(),a=r();return(0,i.jsxs)(n.Card,{variant:`vechainKitBase`,w:`full`,children:[(0,i.jsxs)(n.CardHeader,{p:4,pl:6,borderBottomWidth:`1px`,children:[(0,i.jsx)(n.Text,{fontWeight:`medium`,opacity:.8,children:t(`Security preferences`)}),(0,i.jsx)(n.Text,{fontSize:`xs`,mt:1,opacity:.7,children:t(`For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.`,{appName:a?.ecosystemApp.name??`origin app`})})]}),(0,i.jsx)(n.CardBody,{borderRadius:`none`,children:(0,i.jsxs)(n.VStack,{spacing:3,align:`stretch`,children:[(0,i.jsxs)(n.HStack,{spacing:3,align:`center`,children:[(0,i.jsx)(n.Center,{w:`fit-content`,h:`fit-content`,p:2,borderRadius:`full`,bg:`blackAlpha.100`,flexShrink:0,children:(0,i.jsx)(n.Icon,{as:_.LuUserCog})}),(0,i.jsxs)(n.Box,{flex:1,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,lineHeight:`shorter`,children:t(`Login methods`)}),(0,i.jsx)(n.Text,{fontSize:`xs`,opacity:.7,lineHeight:`shorter`,children:t(`Manage your login methods and passkeys`)})]})]}),(0,i.jsxs)(n.HStack,{spacing:3,align:`center`,children:[(0,i.jsx)(n.Center,{w:`fit-content`,h:`fit-content`,p:2,borderRadius:`full`,bg:`blackAlpha.100`,flexShrink:0,children:(0,i.jsx)(n.Icon,{as:_.LuShieldCheck})}),(0,i.jsxs)(n.Box,{flex:1,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,lineHeight:`shorter`,children:t(`Security settings`)}),(0,i.jsx)(n.Text,{fontSize:`xs`,opacity:.7,lineHeight:`shorter`,children:t(`Backup your wallet, configure MFA and set recovery options`)})]})]})]})}),(0,i.jsx)(n.CardFooter,{children:(0,i.jsxs)(n.Button,{variant:`vechainKitSecondary`,w:`full`,onClick:()=>{window.open(a?.ecosystemApp.website??e.y,`_blank`)},children:[t(`Manage on {{appName}}`,{appName:a?.ecosystemApp.name??`origin app`}),(0,i.jsx)(n.Icon,{as:_.LuExternalLink,ml:2})]})})]})},ri=({setCurrentContent:e,initialContentSource:a=`profile`})=>{let{t:o}=(0,l.useTranslation)(),{network:s}=$(),{account:c}=Z(),u=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),d=(0,n.useToken)(`colors`,`vechain-kit-error`),f=(0,n.useToken)(`colors`,`vechain-kit-card`),p=(0,r.useRef)(null),m=(0,r.useRef)(null),[h,g]=(0,r.useState)(!1),{onUpload:v}=Kn({compressImage:!0}),[y,b]=(0,r.useState)(null),[x,S]=(0,r.useState)(null),C=!!c?.domain,[w,T]=(0,r.useState)(null),[E,D]=(0,r.useState)(``),[k,A]=(0,r.useState)(``),{register:j,watch:M,formState:{errors:N,isValid:P}}=(0,O.useForm)({defaultValues:{displayName:c?.metadata?.display||``,description:c?.metadata?.description||``},mode:`onChange`});(0,r.useEffect)(()=>{if(c?.metadata){let e=c.metadata;D(e.display||``),A(e.description||``),T(c.image?c.image.replace(`ipfs://`,``):null),b(e=>e??c.image??null)}},[c,s.type]);let F=M(),I=async e=>{let n=e.target.files?.[0];if(n)try{g(!0),y&&URL.revokeObjectURL(y),b(URL.createObjectURL(n));let e=await v(n);if(!e)throw Error(`Failed to compress image`);S(await t.D(e.file,n.name,s.type))}catch(e){console.error(`Error uploading image:`,e),b(null)}finally{g(!1)}};(0,r.useEffect)(()=>()=>{y&&URL.revokeObjectURL(y)},[y]);let L=()=>{let e={};return x!==w&&x&&(e.avatarIpfsHash=x),F.displayName!==E&&(e.displayName=F.displayName),F.description!==k&&(e.description=F.description),e},R=(0,r.useMemo)(()=>{let e=L();return Object.keys(e).length>0},[L]),z=()=>{e({type:`account-customization-summary`,props:{setCurrentContent:e,changes:L(),onDoneRedirectContent:a}})},B=()=>{e(a)};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{"data-testid":`modal-title`,children:o(`Customization`)}),(0,i.jsx)(J,{onClick:B}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.ModalBody,{children:[(0,i.jsxs)(n.Box,{cursor:C?`pointer`:`default`,pt:2,display:`flex`,justifyContent:`center`,position:`relative`,onClick:()=>C&&p.current?.click(),children:[(0,i.jsx)(Oc,{wallet:c,props:{width:`100px`,height:`100px`,boxShadow:`0px 0px 3px 2px #00000024`,src:y??void 0}}),C&&(0,i.jsx)(n.Icon,{as:_.LuCamera,position:`absolute`,top:`80px`,left:`60%`,bg:f,color:u,p:`1`,borderRadius:`full`,boxSize:`6`}),h&&(0,i.jsx)(n.Box,{display:`flex`,alignItems:`center`,justifyContent:`center`,backgroundColor:`rgba(0, 0, 0, 0.5)`,position:`absolute`,transform:`translateX(0%)`,width:`100px`,height:`100px`,borderRadius:`full`,zIndex:10,children:(0,i.jsx)(n.Text,{fontSize:`xs`,color:`white`,children:h?`Uploading...`:`Processing...`})})]}),(0,i.jsxs)(n.VStack,{spacing:6,mt:4,children:[!C&&(0,i.jsx)(ti,{}),(0,i.jsx)(Q,{title:c?.domain??o(`Choose account name`),description:o(`Choose a unique .vet domain name for your account.`),onClick:()=>{c?.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:_.LuSquareUser,rightIcon:_.LuChevronRight,dataTestId:`set-domain-name-button`}),(0,i.jsxs)(n.FormControl,{isDisabled:!C,isInvalid:!!N.displayName,children:[(0,i.jsx)(n.FormLabel,{fontSize:`sm`,fontWeight:`medium`,color:u,children:o(`Display Name`)}),(0,i.jsx)(n.Input,{...j(`displayName`,{maxLength:{value:25,message:o(`Display name must be less than 25 characters`)}}),placeholder:o(C?`Enter your display name`:`Set a domain first`),fontWeight:`medium`,color:u,"data-testid":`display-name-input`}),N.displayName&&(0,i.jsx)(n.Text,{color:d,fontSize:`sm`,mt:1,fontWeight:`medium`,children:N.displayName.message})]}),(0,i.jsxs)(n.FormControl,{isDisabled:!C,isInvalid:!!N.description,children:[(0,i.jsx)(n.FormLabel,{fontSize:`sm`,fontWeight:`medium`,color:u,children:o(`Description`)}),(0,i.jsx)(n.Textarea,{...j(`description`,{maxLength:{value:100,message:o(`Description must be less than 100 characters`)}}),placeholder:o(`Eg: DevRel @ ENS Labs`),fontWeight:`medium`,color:u,"data-testid":`description-input`,minH:`50px`}),N.description&&(0,i.jsx)(n.Text,{color:d,mt:1,fontSize:`sm`,fontWeight:`medium`,children:N.description.message})]})]}),(0,i.jsx)(`input`,{type:`file`,ref:p,hidden:!0,accept:`image/*`,onChange:async e=>await I(e)}),(0,i.jsx)(`input`,{type:`file`,ref:m,hidden:!0,accept:`image/*`,onChange:async e=>{e.preventDefault()}})]}),(0,i.jsx)(n.ModalFooter,{w:`full`,children:(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,onClick:z,isDisabled:!C||!R||!P,isLoading:h,loadingText:o(`Preparing changes...`),"data-testid":`save-changes-button`,children:o(`Save Changes`)})})]})},ii=({setCurrentContent:e,changes:a,onDoneRedirectContent:o})=>{let{t:s}=(0,l.useTranslation)(),{darkMode:c,network:u,feeDelegation:d}=$(),f=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),{account:p,connectedWallet:h,connection:g}=Z(),{preferences:v}=xc(),{data:y}=Ms(p?.address??``,h?.address??``,3),{open:b}=Eo(),{handleSubmit:x}=(0,O.useForm)({defaultValues:{...a,avatarIpfsHash:a.avatarIpfsHash??void 0}}),S=p?.domain??``,{data:C}=yt(S),w=(0,m.useQueryClient)(),{sendTransaction:T,txReceipt:E,error:D,isWaitingForWalletConfirmation:k,isTransactionPending:A,clauses:j}=_t({resolverAddress:C,signerAccountAddress:p?.address??``,onSuccess:async()=>{try{await se()}catch(e){console.error(`Error refreshing data:`,e)}},onError:e=>{console.error(`Error updating text record:`,e)}}),[M,N]=r.default.useState(!1);r.default.useEffect(()=>{if(!E||E.reverted||M||A)return;let t=E.meta.txID;t&&(N(!0),e({type:`successful-operation`,props:{setCurrentContent:e,txId:t,title:s(`Profile Updated`),description:s(`Your changes have been saved successfully.`),onDone:()=>{e(o)}}}))},[E,M,A,e,s,o]),r.default.useEffect(()=>{A&&N(!1)},[A]);let P=(0,r.useMemo)(()=>{let e=p?.domain??``,t={displayName:`display`,description:`description`,twitter:`com.x`,website:`url`,email:`email`,avatarIpfsHash:`avatar`};return Object.entries(a).filter(e=>e[1]!==void 0&&e[1]!==null).map(([n,r])=>({domain:e,key:t[n],value:n===`avatarIpfsHash`?`ipfs://${r}`:r}))},[a,p?.domain]),F=(0,r.useMemo)(()=>{try{return!C||P.length===0||!j?[]:j(P)}catch(e){return console.error(`Error building clauses:`,e),[]}},[P,j,C]),[I,L]=r.default.useState(null),[R,z]=r.default.useState(null),B=v.availableGasTokens.length>0&&(g.isConnectedWithPrivy||g.isConnectedWithVeChain)&&!d?.delegatorUrl,{data:V,isLoading:ee,error:H,refetch:te}=Sc({clauses:F,tokens:I?[I]:v.availableGasTokens,enabled:B&&!!d?.genericDelegatorUrl}),ne=V?.usedToken,re=(ee||!V)&&g.isConnectedWithPrivy&&!d?.delegatorUrl,U=r.default.useCallback(e=>{L(e),z(e),setTimeout(()=>te(),100)},[te]),ie=!!ne&&!H;r.default.useEffect(()=>{H&&I&&L(null)},[H,I]);let W=async()=>{if(y){b();return}try{P.length>0&&await T(P)}catch(e){console.error(`Error saving changes:`,e)}},G=(e,t)=>t?.trim()?(0,i.jsxs)(n.VStack,{align:`flex-start`,w:`full`,spacing:1,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,color:c?`whiteAlpha.600`:`blackAlpha.600`,children:e}),(0,i.jsx)(n.Text,{fontSize:`md`,children:t})]}):null,ae=()=>{x(W)()},oe=()=>{e({type:`account-customization`,props:{setCurrentContent:e}})},se=async()=>{a.avatarIpfsHash&&(w.setQueryData(lt(S,u.type),t.g(`ipfs://`+a.avatarIpfsHash,u.type)),w.setQueryData(Ct(p?.address??``),t.g(`ipfs://`+a.avatarIpfsHash,u.type))),await w.invalidateQueries({queryKey:pt(S,u.type)}),await w.refetchQueries({queryKey:pt(S,u.type)})};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:s(`Confirm Changes`)}),(0,i.jsx)(J,{isDisabled:A,onClick:oe}),(0,i.jsx)(n.ModalCloseButton,{isDisabled:A})]}),(0,i.jsxs)(n.ModalBody,{children:[(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,mt:10,children:[(0,i.jsx)(n.Icon,{as:_.LuFileText,color:f,fontSize:`60px`,opacity:.5}),(0,i.jsx)(n.Text,{fontSize:`md`,textAlign:`center`,color:f,children:s(`By confirming, the following details attached to your name ({{domain}}) will be updated`,{domain:S})})]}),(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,mt:6,children:[a.avatarIpfsHash&&(0,i.jsxs)(n.VStack,{align:`flex-start`,w:`full`,spacing:1,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,color:c?`whiteAlpha.600`:`blackAlpha.600`,children:s(`Profile Image`)}),(0,i.jsx)(n.Text,{fontSize:`md`,children:s(`New image selected`)})]}),a.displayName&&G(s(`Display Name`),a.displayName),a.description&&G(s(`Description`),a.description),a.twitter&&G(s(`Twitter`),a.twitter),a.website&&G(s(`Website`),a.website),a.email&&G(s(`Email`),a.email)]}),g.isConnectedWithPrivy&&(0,i.jsx)(Mc,{estimation:V,isLoading:ee,isLoadingTransaction:A,onTokenChange:U,clauses:F,userSelectedToken:R})]}),(0,i.jsx)(n.ModalFooter,{gap:4,w:`full`,children:(0,i.jsx)(kc,{transactionError:D,isSubmitting:A,isTxWaitingConfirmation:k,onConfirm:x(W),onRetry:ae,transactionPendingText:s(`Saving changes...`),txReceipt:E,buttonText:s(`Confirm`),isDisabled:A||re,gasEstimationError:H,hasEnoughGasBalance:ie,isLoadingGasEstimation:ee,showGasEstimationError:!d?.delegatorUrl&&g.isConnectedWithPrivy,context:`customization`})})]})},ai=({address:e,showHeader:r=!0,showLinks:a=!0,showDescription:o=!0,showDisplayName:s=!0,reserveNameDescriptionSpace:c=!1,setCurrentContent:l,onLogout:u})=>{let{network:d}=$(),f=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),p=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),m=(0,n.useToken)(`colors`,`vechain-kit-card`),h=Dn(e,d.type),g=t.U(e),v=h?.records?.url||h?.records?.[`com.x`]||h?.records?.email,y=e=>{try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`?t.toString():null}catch{return null}};return(0,i.jsxs)(n.VStack,{spacing:0,w:`full`,children:[(0,i.jsx)(n.Box,{p:0,backgroundSize:`100% !important`,backgroundPosition:`center`,position:`relative`,background:r?`no-repeat url('${g}')`:`none`,w:`100%`,borderRadius:`14px 14px 0 0`}),(0,i.jsxs)(n.Box,{position:`relative`,display:`inline-block`,cursor:l?`pointer`:`default`,onClick:l?()=>{l({type:`account-customization`,props:{setCurrentContent:l,initialContentSource:`profile`}})}:void 0,children:[(0,i.jsx)(Oc,{wallet:{address:e,domain:h?.domain,image:h?.image,isLoadingMetadata:h?.isLoading,metadata:h?.records},props:{width:`120px`,height:`120px`}}),l&&(0,i.jsx)(n.Icon,{as:_.LuPencil,position:`absolute`,bottom:`0`,right:`0`,bg:m,color:f,p:`1`,borderRadius:`full`,boxSize:`6`,border:`2px solid`,borderColor:m})]}),(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,children:[s&&(h?.records?.display?(0,i.jsx)(n.Text,{fontSize:`xl`,color:f,fontWeight:`bold`,w:`full`,textAlign:`center`,mt:2,"data-testid":`display-name-val`,children:h?.records?.display}):c&&(0,i.jsx)(n.Box,{mt:2,minH:`28px`,"aria-hidden":!0})),o&&(h?.records?.description?(0,i.jsx)(n.Text,{fontSize:`sm`,color:p,w:`full`,textAlign:`center`,"data-testid":`description-val`,children:h?.records?.description}):c&&(0,i.jsx)(n.Box,{minH:`20px`,"aria-hidden":!0})),a&&v&&(0,i.jsxs)(n.HStack,{w:`full`,justify:`center`,spacing:5,mt:4,children:[h?.records?.email&&(0,i.jsx)(n.Link,{href:`mailto:${h?.records?.email}`,target:`_blank`,"data-testid":`mail-link`,children:(0,i.jsx)(n.Icon,{as:_.LuMail,color:f})}),h?.records?.url&&(0,i.jsx)(n.Link,{href:y(h.records.url)??void 0,target:`_blank`,rel:`noopener noreferrer`,"data-testid":`website-link`,children:(0,i.jsx)(n.Icon,{as:_.LuGlobe,color:f})}),h?.records?.[`com.x`]&&(0,i.jsx)(n.Link,{href:`https://x.com/${encodeURIComponent(String(h.records[`com.x`]))}`,target:`_blank`,rel:`noopener noreferrer`,"data-testid":`twitter-link`,children:(0,i.jsx)(n.Icon,{as:M.FaXTwitter,color:f})})]}),(0,i.jsx)(we,{onLogout:u,wallet:{address:e,domain:h?.domain,image:h?.image,isLoadingMetadata:h?.isLoading,metadata:h?.records},style:{mt:4},setCurrentContent:l})]})]})},oi=({onClick:e,...t})=>{let{smartAccount:a,connectedWallet:o,connection:s}=Z(),[c,l]=(0,r.useState)(!1);(0,r.useEffect)(()=>{l(!localStorage.getItem(`app-first-visit`))},[]);let{data:u}=Ms(a?.address??``,o?.address??``,3),d=s.isConnectedWithPrivy&&u,f=()=>{c&&(localStorage.setItem(`app-first-visit`,`true`),l(!1)),e()};return(0,i.jsx)(n.IconButton,{"aria-label":`Settings`,size:`sm`,variant:`vechainKitHeaderIconButtons`,position:`absolute`,left:`10px`,top:`8px`,lineHeight:`0`,onClick:f,icon:(0,i.jsxs)(n.Box,{position:`relative`,children:[(0,i.jsx)(n.Icon,{as:_.LuSettings2,fontSize:`18px`}),d&&(0,i.jsx)(n.Box,{position:`absolute`,top:`-1px`,right:`-1px`,minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`})]}),...t})},si=({setCurrentContent:e,onLogoutSuccess:t,switchFeedback:r})=>{let{t:a}=(0,l.useTranslation)(),{account:o,disconnect:s,connection:c}=Z(),{switchWallet:u,isSwitching:d,isInAppBrowser:f}=An(),{isSwitchWalletEnabled:m}=(0,p.useWallet)(),{hasAnyBalance:h,formattedBalance:g}=qt({address:o?.address}),[v]=uc(lc.SHOW_ASSETS,!0),y=()=>{f?u():e({type:`select-wallet`,props:{setCurrentContent:e,onClose:()=>{},returnTo:`profile`,onLogoutSuccess:t}})};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{"data-testid":`modal-title`,children:a(`Profile`)}),(0,i.jsx)(oi,{onClick:()=>{e(`settings`)},"data-testid":`settings-button`}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{w:`full`,spacing:6,children:[(0,i.jsx)(Ic,{showFeedback:r?.showFeedback}),!o?.domain&&(0,i.jsx)($r,{setCurrentContent:e}),(0,i.jsx)(ai,{reserveNameDescriptionSpace:!!o?.domain,onEditClick:()=>{e({type:`account-customization`,props:{setCurrentContent:e,initialContentSource:`profile`}})},address:o?.address??``,showHeader:!1,setCurrentContent:e,onLogout:()=>{s(),t?.()}})]})}),(0,i.jsx)(n.ModalFooter,{w:`full`,children:(0,i.jsxs)(n.HStack,{w:`full`,justify:`space-between`,spacing:4,mt:4,children:[(0,i.jsx)(n.Button,{size:`md`,width:`full`,height:`40px`,variant:`vechainKitSecondary`,leftIcon:h?void 0:(0,i.jsx)(n.Icon,{as:_.LuWalletCards}),onClick:()=>e(`main`),"data-testid":`wallet-button`,children:h?(0,i.jsxs)(n.HStack,{spacing:2,w:`full`,justify:`center`,children:[(0,i.jsx)(Jr,{address:o?.address??``,maxIcons:2}),(0,i.jsx)(n.Text,{fontWeight:`600`,children:v?g:`$****`})]}):a(`Wallet`)}),c.isInAppBrowser&&m||!c.isInAppBrowser&&c.isConnectedWithDappKit?(0,i.jsx)(n.Button,{size:`md`,width:`full`,height:`40px`,variant:`vechainKitSecondary`,leftIcon:(0,i.jsx)(n.Icon,{as:_.LuArrowLeftRight}),colorScheme:`red`,onClick:async()=>{y()},isLoading:d,isDisabled:d,"data-testid":`switch-wallet-button`,children:a(`Switch`)}):(0,i.jsx)(n.Button,{size:`md`,width:`full`,height:`40px`,variant:`vechainKitSecondary`,leftIcon:(0,i.jsx)(n.Icon,{as:_.LuLogOut}),colorScheme:`red`,onClick:()=>e({type:`disconnect-confirm`,props:{onDisconnect:()=>{s(),t?.()},onBack:()=>e?.(`profile`)}}),"data-testid":`logout-button`,children:a(`Logout`)})]})})]})},ci=({setCurrentContent:e,handleClose:t,initialContent:r=`settings`})=>{let{t:a}=(0,l.useTranslation)(),{smartAccount:o,connectedWallet:s}=Z(),{data:c}=Ms(o?.address??``,s?.address??``,3),{sendTransaction:u,isTransactionPending:d,isWaitingForWalletConfirmation:f,error:p,txReceipt:m}=Ls({smartAccountAddress:o?.address??``,targetVersion:3,onSuccess:()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:m?.meta.txID,title:a(`Upgrade Successful!`),description:a(`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(r)},showSocialButtons:!1}})},onError:()=>{console.error(`Error upgrading Smart Account`)}});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Account upgrade required`)}),(0,i.jsx)(J,{onClick:()=>{e(r)}}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:10,align:`stretch`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:a(c?`Your smart account needs to be upgraded to the latest version (v3).`:`Your smart account is already upgraded to this version.`)}),(0,i.jsxs)(n.HStack,{align:`center`,justifyContent:`space-evenly`,rounded:`md`,children:[(0,i.jsxs)(n.Box,{position:`relative`,display:`inline-block`,children:[(0,i.jsx)(n.Circle,{size:`60px`,bg:`gray.200`,children:(0,i.jsx)(n.Image,{borderRadius:`full`,src:o?.image,alt:a(`Profile Picture`),w:`100%`,h:`100%`,objectFit:`cover`})}),(0,i.jsx)(n.Heading,{position:`absolute`,top:`-5`,right:`-5`,color:`#D23F63`,fontSize:`28px`,children:`v1`})]}),(0,i.jsx)(n.Icon,{as:_.LuArrowRight,color:`#3DBA67`}),(0,i.jsxs)(n.Box,{position:`relative`,display:`inline-block`,children:[(0,i.jsx)(n.Circle,{size:`60px`,bg:`gray.200`,children:(0,i.jsx)(n.Image,{borderRadius:`full`,src:o?.image,alt:a(`Profile Picture`),w:`100%`,h:`100%`,objectFit:`cover`})}),(0,i.jsx)(n.Heading,{position:`absolute`,top:`-5`,right:`-5`,color:`#3DBA67`,fontSize:`28px`,children:`v3`})]})]}),(0,i.jsxs)(n.Alert,{status:`info`,borderRadius:`md`,children:[(0,i.jsx)(n.AlertIcon,{}),(0,i.jsxs)(n.Box,{children:[(0,i.jsx)(n.AlertTitle,{fontSize:`sm`,children:a(`Benefits of this upgrade:`)}),(0,i.jsx)(n.AlertDescription,{fontSize:`xs`,children:(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,mt:1,children:[(0,i.jsxs)(n.Text,{fontSize:`xs`,lineHeight:`1.2`,children:[`• `,a(`Improved security features`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`• `,a(`Better transaction handling`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`•`,` `,a(`Enhanced compatibility with dApps`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`•`,` `,a(`Reduced gas costs for operations`)]})]})})]})]})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.VStack,{spacing:3,w:`full`,children:[(0,i.jsx)(kc,{buttonText:a(c?`Upgrade account`:`Account already upgraded`),onConfirm:async()=>{try{await u()}catch(e){console.error(`Failed to upgrade Smart Account:`,e)}},isTxWaitingConfirmation:f,isSubmitting:d,transactionPendingText:a(`Upgrading...`),txReceipt:m,transactionError:p,isDisabled:!c}),(0,i.jsx)(n.Button,{mt:2,variant:`link`,onClick:()=>{t?t():e(r)},isDisabled:d,children:a(c?`Close and do this later`:`Close`)})]})})]})},li=({setCurrentContent:e})=>{let{account:a}=Z(),{sortedTokens:o}=Kt({address:a?.address}),{allowCustomTokens:s,darkMode:c}=$(),{currentCurrency:u}=Gt(),d=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),{t:f}=(0,l.useTranslation)(),{isolatedView:p}=Ar(),[m,h]=(0,r.useState)(``),g=t=>{e({type:`send-token`,props:{setCurrentContent:e,preselectedToken:t,onBack:()=>e(`assets`)}})},v=o.filter(({symbol:e})=>e.toLowerCase().includes(m.toLowerCase()));return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:f(`Assets`)}),!p&&(0,i.jsx)(J,{onClick:()=>e(`main`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.Container,{h:[`540px`,`auto`],p:0,children:[(0,i.jsxs)(n.ModalBody,{children:[(0,i.jsxs)(n.InputGroup,{size:`lg`,children:[(0,i.jsx)(n.Input,{placeholder:`Search token`,bg:c?`#00000038`:`gray.50`,borderRadius:`xl`,height:`56px`,pl:12,value:m,onChange:e=>h(e.target.value),"data-testid":`search-token-input`}),(0,i.jsx)(n.InputLeftElement,{h:`56px`,w:`56px`,pl:4,children:(0,i.jsx)(_.LuSearch,{color:d})})]}),(0,i.jsx)(n.VStack,{spacing:2,align:`stretch`,mt:2,children:v.map(e=>{let n=Number(e.balance)>0,r=t.Z.includes(e.symbol);return(0,i.jsx)(wc,{symbol:e.symbol,amount:Number(e.balance),currencyValue:e.valueInCurrency,currentCurrency:u,onClick:()=>g(e),isDisabled:!n||r},e.address)})})]}),(0,i.jsx)(n.ModalFooter,{children:s&&(0,i.jsx)(n.Button,{variant:`vechainKitSecondary`,leftIcon:(0,i.jsx)(n.Icon,{as:_.LuPencil,boxSize:4}),onClick:()=>e(`add-custom-token`),children:f(`Manage Custom Tokens`)})})]})]})},ui=({setCurrentContent:e})=>{let{t:r}=(0,l.useTranslation)(),a=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),o=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),s=(0,n.useToken)(`colors`,`vechain-kit-card`),c=(0,n.useToken)(`colors`,`vechain-kit-overlay`),{addToken:u,removeToken:d,isTokenIncluded:f,isDefaultToken:p,customTokens:m}=tn(),{register:h,setError:g,setValue:v,formState:{errors:y,isValid:b},handleSubmit:x}=(0,O.useForm)({defaultValues:{newTokenAddress:``},mode:`onChange`}),S=async e=>{if(e.newTokenAddress){if(f(e.newTokenAddress)||p(e.newTokenAddress))return g(`newTokenAddress`,{type:`manual`,message:r(`Token already added`)});try{await u(e.newTokenAddress),v(`newTokenAddress`,``)}catch(e){console.error(`Error adding token 2:`,e),g(`newTokenAddress`,{type:`manual`,message:r(`Invalid token address`)})}}};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r(`Manage Custom Tokens`)}),(0,i.jsx)(J,{onClick:()=>e(`assets`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,position:`relative`,children:[(0,i.jsx)(n.Box,{p:6,borderRadius:`xl`,bg:s,children:(0,i.jsx)(n.VStack,{align:`stretch`,spacing:2,children:(0,i.jsxs)(n.FormControl,{isInvalid:!!y.newTokenAddress,children:[(0,i.jsx)(n.FormLabel,{fontSize:`sm`,fontWeight:`medium`,color:a,children:r(`Token Contract Address`)}),(0,i.jsx)(n.Input,{...h(`newTokenAddress`,{required:r(`Address is required`),pattern:{value:/^0x[a-fA-F0-9]{40}$/,message:r(`Please enter a valid contract address`)},validate:e=>/^0x[a-fA-F0-9]{40}$/.test(e)||r(`Invalid contract address`)}),onChange:e=>{let t=e.target.value.trim();e.target.value=t,v(`newTokenAddress`,t,{shouldValidate:!0})},placeholder:`0x...`,variant:`outline`,fontSize:`md`,fontWeight:`medium`}),y.newTokenAddress&&(0,i.jsx)(n.Text,{color:`#ef4444`,fontSize:`sm`,children:y.newTokenAddress.message})]})})}),m.length>0&&(0,i.jsxs)(n.Box,{p:4,borderRadius:`xl`,bg:c,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,mb:2,children:r(`Existing Custom Tokens`)}),(0,i.jsx)(n.VStack,{align:`stretch`,spacing:2,children:m.map(e=>(0,i.jsxs)(n.HStack,{justify:`space-between`,fontSize:`sm`,p:2,borderRadius:`md`,bg:s,children:[(0,i.jsxs)(n.HStack,{children:[(0,i.jsx)(n.Image,{src:t.$[e?.symbol],alt:`${e.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:(0,i.jsx)(n.Box,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Text,{fontSize:`8px`,fontWeight:`bold`,color:a,children:e.symbol?.slice(0,3)})})}),(0,i.jsx)(n.Text,{fontWeight:`medium`,color:a,children:e.symbol??`Unknown`})]}),(0,i.jsx)(n.Text,{color:o,children:t.W(e.address??``,4,4)}),(0,i.jsx)(n.Button,{size:`sm`,variant:`ghost`,color:a,borderRadius:`md`,p:2,onClick:()=>d(e.address),children:(0,i.jsx)(_.LuTrash2,{size:16,color:a})})]},e.address))})]})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,isDisabled:!b,onClick:x(S),children:r(`Add Token`)})})]})},di=({setCurrentContent:t})=>{let{t:r}=(0,l.useTranslation)(),{darkMode:a}=$(),{isolatedView:o}=Ar();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r(`Bridge`)}),!o&&(0,i.jsx)(J,{onClick:()=>t(`main`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.Container,{maxW:`container.lg`,children:(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,w:`full`,children:[(0,i.jsx)(e.r,{isDark:a,borderRadius:`xl`}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:r(`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.`)})]})})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsxs)(n.Button,{variant:`vechainKitSecondary`,onClick:()=>{window.open(e.x,`_blank`)},children:[r(`Launch vechain.energy`),(0,i.jsx)(n.Icon,{as:_.LuExternalLink,ml:2})]})})]})},fi=({setCurrentContent:e})=>{let{t:a}=(0,l.useTranslation)(),{currentCurrency:o,changeCurrency:s,allCurrencies:c}=Gt(),u=(0,n.useColorModeValue)(`rgba(0, 0, 0, 0.1)`,`rgba(255, 255, 255, 0.05)`);(0,r.useEffect)(()=>{t.yt(`settings-currency-visited`,`true`)},[]);let d=e=>{let r=o===e;return(0,i.jsxs)(n.Button,{w:`full`,variant:`ghost`,justifyContent:`space-between`,onClick:()=>s(e),py:6,px:4,bg:r?u:void 0,children:[(0,i.jsxs)(n.HStack,{spacing:3,children:[(0,i.jsx)(n.Text,{fontSize:`xl`,children:t.C[e]}),(0,i.jsx)(n.Text,{children:e.toUpperCase()})]}),r&&(0,i.jsx)(n.Icon,{as:_.LuCheck,boxSize:5,color:`blue.500`})]},e)};return(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Select currency`)}),(0,i.jsx)(J,{onClick:()=>e(`settings`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsx)(n.VStack,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:c.map(e=>d(e))})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},pi=({setCurrentContent:e})=>{let{t,i18n:a}=(0,l.useTranslation)(),o=(0,r.useRef)(0),s=(0,n.useColorModeValue)(`rgba(0, 0, 0, 0.1)`,`rgba(255, 255, 255, 0.05)`),c=async e=>{let t=++o.current;try{if(await ne(e),t!==o.current)return;a.changeLanguage(e)}catch(t){console.error(`[VeChainKit] Failed to switch language to "${e}":`,t)}},u=e=>{let t=a.language===e;return(0,i.jsxs)(n.Button,{w:`full`,variant:`ghost`,justifyContent:`space-between`,onClick:()=>c(e),py:6,px:4,bg:t?s:void 0,children:[(0,i.jsx)(n.Text,{children:ee[e]}),t&&(0,i.jsx)(n.Icon,{as:_.LuCheck,boxSize:5,color:`blue.500`})]},e)};return(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t(`Select language`)}),(0,i.jsx)(J,{onClick:()=>e(`settings`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsx)(n.VStack,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:V.map(e=>u(e))})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},mi=({token:e,index:r,isExcluded:a,onToggleExclusion:o,onDragStart:s,onDragOver:c,onDrop:l,onTouchStart:u,onTouchMove:d,onTouchEnd:f,isDragging:p,isDraggedOver:m})=>{let h=t.Q[e],{darkMode:g}=$(),v=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),y=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),b=(0,n.useToken)(`colors`,`vechain-kit-card`);return(0,i.jsx)(n.Box,{bg:g?`#ffffff0a`:`blackAlpha.50`,borderRadius:`md`,border:`1px`,borderColor:p?g?`blue.500`:`blue.300`:m?g?`blue.400`:`blue.200`:b,p:3,mb:2,opacity:p||a?.5:1,cursor:`move`,transition:`background-color 0.2s ease, border-color 0.2s ease`,draggable:!0,onDragStart:()=>s(r),onDragOver:e=>{e.preventDefault(),c(r)},onDrop:()=>l(r),onTouchStart:e=>u(r,e),onTouchMove:d,onTouchEnd:f,_hover:{backgroundColor:g?`#ffffff12`:`blackAlpha.200`},children:(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsxs)(n.HStack,{opacity:a?.5:1,children:[(0,i.jsx)(n.Box,{cursor:`grab`,_active:{cursor:`grabbing`},pointerEvents:`none`,children:(0,i.jsx)(n.Icon,{as:_.LuGripVertical,color:y})}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,children:[(0,i.jsx)(n.Text,{fontWeight:`medium`,color:v,children:h.name}),(0,i.jsx)(n.Text,{fontSize:`sm`,color:y,children:h.description})]})]}),(0,i.jsx)(n.Switch,{isChecked:!a,onChange:()=>o(e),colorScheme:`blue`,size:`sm`})]})})},hi=({tokens:e,excludedTokens:t,onReorder:a,onToggleExclusion:o})=>{let[s,c]=(0,r.useState)(null),[l,u]=(0,r.useState)(null),d=(0,r.useRef)([]),f=(0,r.useRef)(0),p=e=>{c(e)},m=e=>{u(e)},h=t=>{if(s===null||s===t){c(null),u(null);return}let n=[...e],r=n[s];n.splice(s,1),n.splice(t,0,r),a(n),c(null),u(null)},g=(e,t)=>{f.current=t.touches[0].clientY,c(e)},_=e=>{if(s===null)return;let t=e.touches[0].clientY;for(let e=0;e<d.current.length;e++){let n=d.current[e];if(!n)continue;let r=n.getBoundingClientRect();if(t>=r.top&&t<=r.bottom){u(e);break}}},v=()=>{if(s!==null&&l!==null&&s!==l){let t=[...e],n=t[s];t.splice(s,1),t.splice(l,0,n),a(t)}c(null),u(null),f.current=0};return(0,i.jsx)(n.Box,{w:`full`,children:e.map((e,r)=>(0,i.jsx)(n.Box,{ref:e=>{d.current[r]=e},children:(0,i.jsx)(mi,{token:e,index:r,isExcluded:t.includes(e),onToggleExclusion:o,onDragStart:p,onDragOver:m,onDrop:h,onTouchStart:g,onTouchMove:_,onTouchEnd:v,isDragging:s===r,isDraggedOver:l===r})},e))})},gi=({setCurrentContent:e})=>{let{t}=(0,l.useTranslation)(),{preferences:a,reorderTokenPriority:o,toggleTokenExclusion:s}=xc(),c=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),u=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),d=(0,r.useCallback)(e=>{o(e)},[o]);return(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t(`Gas Token Preferences`)}),(0,i.jsx)(J,{onClick:()=>e(`settings`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{justify:`center`,spacing:6,align:`flex-start`,w:`full`,children:[(0,i.jsx)(n.VStack,{w:`full`,justifyContent:`center`,spacing:3,mb:3,children:(0,i.jsx)(n.Text,{fontSize:`sm`,color:u,textAlign:`center`,children:t(`Choose which tokens to use for transaction fees when the app is not covering them.`)})}),a.availableGasTokens.length===0&&(0,i.jsxs)(n.Alert,{status:`warning`,borderRadius:`md`,children:[(0,i.jsx)(n.AlertIcon,{}),(0,i.jsx)(n.AlertDescription,{fontSize:`sm`,color:u,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.`)})]}),(0,i.jsxs)(n.VStack,{w:`full`,align:`start`,spacing:3,children:[(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`semibold`,color:c,children:t(`Token Priority Order`)}),(0,i.jsx)(n.Text,{fontSize:`sm`,color:u,children:t(`Drag to reorder. The system will automatically use the highest priority token with sufficient balance.`)}),(0,i.jsx)(hi,{tokens:a.tokenPriority,excludedTokens:a.excludedTokens,onReorder:d,onToggleExclusion:s})]})]})})]})},_i=({setCurrentContent:e,onLogoutSuccess:t})=>{let{t:r}=(0,l.useTranslation)(),{isolatedView:a}=Ar(),{exportWallet:o,linkPasskey:s}=(0,d.usePrivy)(),{showMfaEnrollmentModal:c}=(0,d.useMfaEnrollment)(),{feeDelegation:u}=$(),{connection:f,disconnect:p,smartAccount:m,connectedWallet:h}=Z(),{data:g}=Ms(m?.address??``,h?.address??``,3),v=()=>{e({type:`upgrade-smart-account`,props:{setCurrentContent:e,initialContent:`settings`}})},y=()=>{e(`connection-details`)},b=()=>{p(),t()},x=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r(`Settings`)}),!a&&(0,i.jsx)(J,{onClick:()=>e(`profile`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.ModalBody,{w:`full`,children:[(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,color:x,textAlign:`left`,w:`full`,children:r(`General`)}),(0,i.jsx)(Q,{title:r(`Currency`),onClick:()=>{e(`change-currency`)},leftIcon:_.LuDollarSign,rightIcon:_.LuChevronRight}),(0,i.jsx)(Q,{title:r(`Language`),onClick:()=>{e(`change-language`)},leftIcon:_.LuLanguages,rightIcon:_.LuChevronRight}),f.isConnectedWithPrivy&&!u?.delegatorUrl&&(0,i.jsx)(Q,{title:r(`Gas Token Preferences`),onClick:()=>{e(`gas-token-settings`)},leftIcon:_.LuFuel,rightIcon:_.LuChevronRight}),(0,i.jsx)(Q,{title:r(`Terms and Policies`),onClick:()=>{e({type:`terms-and-privacy`,props:{onGoBack:()=>e(`settings`)}})},leftIcon:_.LuShield,rightIcon:_.LuChevronRight}),(0,i.jsx)(Q,{title:r(`Logout`),onClick:()=>e({type:`disconnect-confirm`,props:{onDisconnect:b,onBack:()=>e(`settings`)}}),leftIcon:_.LuLogOut})]}),g&&(0,i.jsx)(n.VStack,{w:`full`,spacing:2,mt:4,children:(0,i.jsx)(Q,{title:r(`Upgrade Smart Account to V3`),description:r(`A new version is available for your account`),onClick:v,leftIcon:_.LuSettings2,extraContent:(0,i.jsx)(n.Box,{minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`,ml:2})})}),f.isConnectedWithSocialLogin&&(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,mt:4,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,color:x,textAlign:`left`,w:`full`,children:r(`Access and security`)}),(0,i.jsx)(Q,{title:r(`Passkey`),onClick:()=>s(),leftIcon:_.LuFingerprint}),(0,i.jsx)(Q,{title:r(`Backup`),onClick:()=>{o()},leftIcon:_.LuKey}),(0,i.jsx)(Q,{title:r(`Manage MFA`),onClick:()=>{c()},leftIcon:_.LuShieldCheck}),(0,i.jsx)(Q,{title:r(`Login methods`),onClick:()=>{e(`privy-linked-accounts`)},leftIcon:_.LuUserCog,rightIcon:_.LuChevronRight})]}),(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,mt:4,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,color:x,textAlign:`left`,w:`full`,children:r(`Help`)}),(0,i.jsx)(Q,{title:r(`Connection details`),onClick:y,leftIcon:_.LuUnlink,rightIcon:_.LuChevronRight}),(0,i.jsx)(Q,{title:r(`Explore ecosystem`),onClick:()=>e(`ecosystem`),leftIcon:_.LuLayoutGrid,rightIcon:_.LuChevronRight}),(0,i.jsx)(Q,{title:r(`Frequently asked questions`),onClick:()=>e({type:`faq`,props:{onGoBack:()=>e(`settings`),showLanguageSelector:!1}}),leftIcon:_.LuCircleHelp,rightIcon:_.LuChevronRight})]})]}),(0,i.jsx)(n.ModalFooter,{p:0})]})},vi=({title:e,description:t,icon:r})=>{let a=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),o=(0,n.useToken)(`colors`,`vechain-kit-text-primary`);return(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,py:8,children:[(0,i.jsx)(n.Icon,{as:r,boxSize:16,color:a}),(0,i.jsxs)(n.VStack,{spacing:2,children:[(0,i.jsx)(n.Text,{fontSize:`lg`,fontWeight:`500`,textAlign:`center`,color:o,children:e}),(0,i.jsx)(n.Text,{fontSize:`md`,color:a,textAlign:`center`,px:4,children:t})]})]})},yi=(e,t=`en-US`)=>new Intl.DateTimeFormat(t,{month:`short`,day:`numeric`}).format(new Date(e)),bi=({document:e})=>{let{t:r}=(0,l.useTranslation)(),a=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),o=e.documentSource===t.v.VECHAIN_KIT&&e.documentType===t.y.TERMS;return(0,i.jsxs)(n.HStack,{children:[(0,i.jsxs)(n.Tag,{size:`sm`,borderRadius:`full`,color:a,children:[`v`,e.version]}),(0,i.jsx)(n.Text,{fontSize:`xs`,cursor:`pointer`,color:a,onClick:()=>{window.open(e.url,`_blank`)},_hover:{textDecoration:`underline`},children:o?r(`'{{policyName}}' on connect`,{policyName:e.displayName??r(`Vechain Kit Policy`)}):r(`'{{policyName}}' on {{date}}`,{policyName:e.displayName??r(`Policy`),date:yi(e.timestamp)})})]})},xi=({title:e,description:t,documents:r,bg:a,hoverBg:o,currentPolicy:s})=>{let{t:c}=(0,l.useTranslation)(),u=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),d=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),f=r?.length>0,p=r?.find(e=>e.id===s?.id);return f?(0,i.jsx)(n.AccordionItem,{border:`none`,mb:3,children:({isExpanded:l})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.AccordionButton,{bg:a,borderRadius:`xl`,_hover:{bg:o},children:[(0,i.jsxs)(n.VStack,{w:`full`,align:`flex-start`,textAlign:`left`,children:[(0,i.jsx)(n.Text,{fontWeight:`700`,color:u,children:e}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:d,children:t})]}),(0,i.jsx)(n.Icon,{as:l?_.LuChevronUp:_.LuChevronDown,fontSize:`20px`,color:d})]}),(0,i.jsx)(n.AccordionPanel,{pb:4,pt:3,children:(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:4,children:[p?.id?(0,i.jsxs)(n.HStack,{w:`full`,children:[(0,i.jsx)(n.Icon,{as:_.LuCheck,color:u}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:d,children:c(`You accepted current policy on {{date}}`,{date:yi(p.timestamp)})})]}):null,(0,i.jsx)(n.HStack,{w:`full`,textAlign:`left`,children:(0,i.jsx)(n.Text,{fontSize:`xs`,fontWeight:`bold`,color:d,children:c(`All policies you have accepted`)})}),(0,i.jsx)(n.HStack,{w:`full`,gap:2,children:(0,i.jsx)(n.VStack,{align:`stretch`,spacing:2,children:r.map(e=>(0,i.jsx)(bi,{document:e},e.id))})}),s&&(0,i.jsx)(n.Button,{variant:`outline`,size:`xs`,alignSelf:`flex-end`,onClick:()=>{window.open(s.url,`_blank`)},children:c(`View Current Policy`)})]})})]})}):null},Si=()=>{let{account:e}=Z(),{t:a}=(0,l.useTranslation)(),{darkMode:o}=$(),{agreements:s,documents:c}=Yc(),u=(0,r.useMemo)(()=>{let n=s?.filter(n=>t.k(n.walletAddress,e?.address));return[{id:`vechain-kit-terms`,...t.it,documentType:t.y.TERMS,documentSource:t.v.VECHAIN_KIT,walletAddress:e?.address??``,timestamp:new Date().getTime()},...n]?.reduce((e,t)=>(e[t.documentType]=[...e[t.documentType]||[],t],e),{})},[s,e?.address]),d=(0,r.useMemo)(()=>c.reduce((e,t)=>{let n=t.documentType;return(!e[n]||t.version>e[n].version)&&(e[n]=t),e},{}),[c]),f=(0,r.useMemo)(()=>Object.values(u).some(e=>e.length>0),[u]),p=o?`whiteAlpha.50`:`blackAlpha.50`,m=o?`whiteAlpha.100`:`blackAlpha.100`,h=(0,r.useMemo)(()=>{let e=[];return u[t.y.TERMS]?.length>0&&e.push(0),u[t.y.PRIVACY]?.length>0&&e.push(1),u[t.y.COOKIES]?.length>0&&e.push(2),e},[u]);return f?(0,i.jsx)(n.VStack,{spacing:4,align:`stretch`,children:(0,i.jsxs)(n.Accordion,{allowMultiple:!0,defaultIndex:h,children:[(0,i.jsx)(xi,{title:a(`Terms and Conditions`),description:a(`Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.`),documents:u[t.y.TERMS],bg:p,hoverBg:m,currentPolicy:d[t.y.TERMS]}),(0,i.jsx)(xi,{title:a(`Privacy Policy`),description:a(`Privacy policy outlining the data collection and processing practices.`),documents:u[t.y.PRIVACY],bg:p,hoverBg:m,currentPolicy:d[t.y.PRIVACY]}),(0,i.jsx)(xi,{title:a(`Cookie Policy`),description:a(`Cookie policy outlining the use of cookies and tracking technologies.`),documents:u[t.y.COOKIES],bg:p,hoverBg:m,currentPolicy:d[t.y.COOKIES]})]})}):(0,i.jsx)(vi,{title:a(`No policies accepted`),description:a(`When you have accepted a policy, it will appear here`),icon:_.LuGavel})},Ci=({onGoBack:e})=>{let{t}=(0,l.useTranslation)();return(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t(`Terms and Policies`)}),(0,i.jsx)(J,{onClick:e}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsx)(n.VStack,{spacing:6,align:`stretch`,children:(0,i.jsx)(Si,{})})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},wi=({onDisconnect:e,onBack:t,onClose:r,showCloseButton:a=!0,text:o})=>{let{t:s}=(0,l.useTranslation)(),c=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),u=o??s(`Are you sure you want to disconnect your wallet?`);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:s(`Logout`)}),(0,i.jsx)(J,{onClick:t}),a?(0,i.jsx)(n.ModalCloseButton,{onClick:r}):null]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,mt:10,children:[(0,i.jsx)(n.Icon,{as:_.LuLogOut,color:`#ef4444`,fontSize:`60px`,opacity:.5}),(0,i.jsx)(n.Text,{fontSize:`md`,textAlign:`center`,color:c,children:u})]})}),(0,i.jsx)(n.ModalFooter,{w:`full`,mt:4,children:(0,i.jsxs)(n.VStack,{spacing:3,w:`full`,children:[(0,i.jsx)(n.Button,{onClick:e,"data-testid":`disconnect-button`,variant:`vechainKitLogout`,children:s(`Confirm`)}),(0,i.jsx)(n.Button,{variant:`vechainKitSecondary`,onClick:t,"data-testid":`cancel-logout-button`,children:s(`Cancel`)})]})})]})},Ti=({wallet:e,isActive:r,onSelect:a,onRemove:o,showRemove:s=!0})=>{let{t:c}=(0,l.useTranslation)(),{network:u}=$(),{formattedBalance:d,isLoading:f}=qt({address:e.address}),{domain:p,image:m,isLoading:h}=Dn(e.address,u.type),g=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),v=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),y=(0,n.useToken)(`colors`,`vechain-kit-border`),b=f||h;return(0,i.jsx)(n.Card,{variant:`vechainKitWalletCard`,onClick:a,borderWidth:r?`2px`:`1px`,borderColor:r?`vechain-kit-primary`:y,_hover:{borderColor:r?`vechain-kit-primary`:`vechain-kit-text-secondary`},children:(0,i.jsx)(n.CardBody,{p:4,children:(0,i.jsxs)(n.HStack,{spacing:3,w:`full`,justifyContent:`space-between`,children:[(0,i.jsxs)(n.HStack,{spacing:3,flex:1,minW:0,children:[(0,i.jsx)(Oc,{wallet:{address:e.address,domain:p??void 0,image:m??void 0,isLoadingMetadata:h},props:{width:10,height:10}}),(0,i.jsxs)(n.VStack,{spacing:0,alignItems:`flex-start`,flex:1,minW:0,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,color:g,noOfLines:1,children:p?t.G(p,22,0):t.W(e.address,6,4)}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:v,noOfLines:1,children:b?c(`Loading...`):d})]})]}),r&&(0,i.jsx)(n.Box,{children:(0,i.jsx)(n.Icon,{as:_.LuCheck,boxSize:5,color:`vechain-kit-primary`})}),s&&!r&&(0,i.jsx)(n.IconButton,{"aria-label":c(`Remove wallet`),icon:(0,i.jsx)(n.Icon,{as:_.LuTrash2}),variant:`vechainKitSecondary`,height:`30px`,w:`30px`,borderRadius:`5px`,onClick:e=>{e.stopPropagation(),o()}})]})})})},Ei=e=>t.o(e.map(e=>e.address.toLowerCase()).sort().join(`|`)),Di=({setCurrentContent:e,returnTo:t=`main`,onLogoutSuccess:a})=>{let{t:o}=(0,l.useTranslation)(),{isolatedView:s}=Ar(),{account:c,disconnect:u}=Z(),{disconnect:d}=(0,p.useWallet)(),{open:f}=(0,p.useWalletModal)(),{getStoredWallets:m,setActiveWallet:h,removeWallet:g}=An(),{saveWallet:v}=On(),{refresh:y}=kn(),b=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),[x,S]=(0,r.useState)(m()),C=(0,r.useRef)(Ei(m())),w=(0,r.useCallback)(()=>{let e=m();S(e),C.current=Ei(e)},[m]);(0,r.useEffect)(()=>{w()},[w,c?.address]),(0,r.useEffect)(()=>{let e=()=>{setTimeout(()=>{w()},100)};if(typeof window<`u`)return window.addEventListener(`wallet_switched`,e),()=>{window.removeEventListener(`wallet_switched`,e)}},[w]),(0,r.useEffect)(()=>{let e=setInterval(()=>{Ei(m())!==C.current&&w()},200);return()=>clearInterval(e)},[m,w]);let T=(0,r.useMemo)(()=>{let e=x.find(e=>e.isActive);return e?e.address:c?.address??null},[x,c?.address]),E=(0,r.useMemo)(()=>x.find(e=>e.address.toLowerCase()===T?.toLowerCase()),[x,T]),D=(0,r.useMemo)(()=>x.filter(e=>e.address.toLowerCase()!==T?.toLowerCase()),[x,T]),O=(0,r.useCallback)(n=>{n.toLowerCase()!==T?.toLowerCase()&&(E&&v(E.address),h(n),setTimeout(()=>{w()},50),y(),e({type:t,props:{switchFeedback:{showFeedback:!0}}}))},[T,E,c,h,y,e,w,v]),k=(0,r.useCallback)(n=>{let r=n.address.toLowerCase()===T?.toLowerCase(),i=x.filter(e=>e.address.toLowerCase()!==n.address.toLowerCase());e({type:`remove-wallet-confirm`,props:{walletAddress:n.address,walletDomain:null,onConfirm:async()=>{if(r&&i.length>0){let e=i[0];h(e.address)}else if(r&&i.length===0)try{await d()}catch(e){console.error(`Error disconnecting:`,e)}if(g(n.address),setTimeout(()=>{w()},50),i.length===0){a&&a();return}e({type:`select-wallet`,props:{setCurrentContent:e,onClose:()=>{},returnTo:t,onLogoutSuccess:a}})},onBack:()=>{e({type:`select-wallet`,props:{setCurrentContent:e,onClose:()=>{},returnTo:t,onLogoutSuccess:a}})}}})},[g,w,e,t,a,T,x,h,d]),A=(0,r.useCallback)(()=>{f()},[f]),j=()=>{u(),a?.()};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[!s&&(0,i.jsx)(J,{onClick:()=>{e(t)}}),(0,i.jsx)(n.ModalHeader,{children:o(`Select Wallet`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{w:`full`,spacing:4,children:[E&&(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,alignItems:`flex-start`,children:[(0,i.jsx)(n.Heading,{size:`sm`,color:b,children:o(`Active Wallet`)}),(0,i.jsx)(Ti,{wallet:E,isActive:!0,onSelect:()=>{},onRemove:()=>k(E),showRemove:x.length>1})]}),D.length>0&&(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,alignItems:`flex-start`,children:[(0,i.jsx)(n.Heading,{size:`sm`,color:b,children:o(`Other Wallets`)}),D.map(e=>(0,i.jsx)(Ti,{wallet:e,isActive:!1,onSelect:()=>O(e.address),onRemove:()=>k(e),showRemove:!0},e.address))]})]})}),(0,i.jsx)(n.ModalFooter,{w:`full`,children:(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,children:[(0,i.jsx)(n.Button,{w:`full`,leftIcon:(0,i.jsx)(_.LuPlus,{}),variant:`vechainKitSecondary`,onClick:A,children:o(`Add New Wallet`)}),(0,i.jsx)(n.Button,{w:`full`,leftIcon:(0,i.jsx)(_.LuLogOut,{}),variant:`vechainKitLogout`,onClick:()=>e({type:`disconnect-confirm`,props:{onDisconnect:j,onBack:()=>e({type:`select-wallet`,props:{setCurrentContent:e,onClose:()=>{},returnTo:t,onLogoutSuccess:a}})}}),children:o(`Logout`)})]})})]})},Oi=({walletAddress:e,walletDomain:r,onConfirm:a,onBack:o,onClose:s})=>{let{t:c}=(0,l.useTranslation)(),{network:u}=$(),{domain:d}=Dn(e,u.type),f=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),p=d?t.G(d,20,0):t.W(e,6,4);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:c(`Remove`)}),(0,i.jsx)(J,{onClick:o}),s&&(0,i.jsx)(n.ModalCloseButton,{onClick:s})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,mt:10,children:[(0,i.jsx)(n.Icon,{as:_.LuTrash2,color:`#ef4444`,fontSize:`60px`,opacity:.5}),(0,i.jsx)(n.Text,{fontSize:`md`,textAlign:`center`,color:f,children:c(`Are you sure you want to remove this wallet?`)}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,color:`vechain-kit-text-secondary`,fontWeight:`600`,children:p}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,color:`vechain-kit-text-secondary`,children:t.W(e,8,7)})]})}),(0,i.jsx)(n.ModalFooter,{w:`full`,mt:4,children:(0,i.jsxs)(n.VStack,{spacing:3,w:`full`,children:[(0,i.jsx)(n.Button,{onClick:a,"data-testid":`remove-wallet-button`,variant:`vechainKitLogout`,children:c(`Remove`)}),(0,i.jsx)(n.Button,{variant:`vechainKitSecondary`,onClick:o,"data-testid":`cancel-remove-button`,children:c(`Cancel`)})]})})]})},ki=Ee[`@vechain/dapp-kit-react`]||De[`@vechain/dapp-kit-react`]||`unknown`,Ai=Ee[`@privy-io/react-auth`]||`unknown`,ji=({connectionCache:e})=>{let{t:r}=(0,l.useTranslation)(),{connection:a,smartAccount:o,connectedWallet:s}=Z(),{source:c}=(0,p.useWallet)(),{privy:u,network:d}=$(),f=u?.appId,{data:m,isLoading:h}=Le(f||[]),{onCopy:g,hasCopied:v}=(0,n.useClipboard)(``),{data:y,isLoading:b}=ze(),{data:x,isLoading:S}=gs(o.address??``,s?.address??``),C=(0,n.useToken)(`colors`,`vechain-kit-card`),w=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),T=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),E=(()=>a.isConnectedWithCrossApp&&e?.ecosystemApp?e.ecosystemApp.name:a.isConnectedWithSocialLogin&&m?Object.values(m)[0]?.name??null:a.isConnectedWithDappKit&&c?c:null)(),D=a.isConnectedWithSocialLogin&&h,O=({label:e,value:t,isLoading:r=!1,href:a})=>(0,i.jsxs)(n.HStack,{w:`full`,justifyContent:`space-between`,children:[(0,i.jsxs)(n.Text,{fontSize:`sm`,color:T,children:[e,`:`]}),(0,i.jsx)(n.Text,{fontSize:`sm`,as:a?`a`:void 0,href:a,target:`_blank`,rel:`noopener noreferrer`,style:{textDecoration:a?`underline`:`none`},color:w,children:r?`Loading...`:t})]});return D?(0,i.jsx)(n.VStack,{w:`full`,h:`full`,justify:`center`,align:`center`,minH:`200px`,borderRadius:`xl`,bg:C,children:(0,i.jsx)(n.Spinner,{})}):E?(0,i.jsxs)(n.VStack,{p:4,bg:C,borderRadius:`xl`,spacing:4,w:`full`,justifyContent:`space-between`,children:[(0,i.jsx)(O,{label:r(`Logged in with`),value:E}),a.isConnectedWithCrossApp&&e?.timestamp&&(0,i.jsx)(O,{label:r(`At`),value:new Date(e.timestamp).toLocaleString()}),(0,i.jsx)(O,{label:r(`Connection Type`),value:a.source.type,isLoading:a.isLoading}),(0,i.jsx)(n.Divider,{}),(0,i.jsx)(O,{label:r(`Network`),value:d.type}),(0,i.jsx)(O,{label:r(`Node URL`),value:d.nodeUrl||t.bt(d.type).nodeUrl}),a.isConnectedWithPrivy&&(0,i.jsx)(n.Divider,{}),a.isConnectedWithPrivy&&(0,i.jsxs)(n.HStack,{w:`full`,justifyContent:`space-between`,children:[(0,i.jsxs)(n.Text,{fontSize:`sm`,color:T,children:[r(`Embedded wallet`),`:`]}),(0,i.jsxs)(n.HStack,{children:[(0,i.jsx)(n.Text,{fontSize:`sm`,color:w,children:s?.address?t.W(s.address,8,7):`-`}),(0,i.jsx)(n.Icon,{color:w,onClick:()=>{s?.address&&g(s.address)},opacity:s?.address?1:.4,pointerEvents:s?.address?`auto`:`none`,cursor:`pointer`,as:v?_.LuCheck:_.LuCopy})]})]}),a.isConnectedWithPrivy?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(O,{label:r(`Smart Account`),value:`v${x?.version??``} ${x?.isDeployed?``:`(not deployed)`}`,isLoading:S}),(0,i.jsx)(O,{label:r(`Privy Status`),value:y||``,isLoading:b})]}):o.isDeployed&&(0,i.jsx)(O,{label:r(`Smart Account`),value:`v${x?.version??``}`,isLoading:S}),(0,i.jsx)(n.Divider,{}),(0,i.jsx)(O,{label:r(`VeChain Kit`),value:Te,href:`https://github.com/vechain/vechain-kit/releases/tag/${Te}`}),(0,i.jsx)(O,{label:`DAppKit`,value:ki}),(0,i.jsx)(O,{label:`Privy`,value:Ai})]}):null},Mi=()=>{let{connection:t}=Z(),{t:r}=(0,l.useTranslation)(),{privy:a,darkMode:o}=$(),{getConnectionCache:s}=Lo(),c=s(),u=(0,n.useToken)(`colors`,`vechain-kit-card`);return t.isConnectedWithPrivy?(0,i.jsxs)(n.VStack,{w:`full`,align:`stretch`,textAlign:`center`,mt:5,p:3,borderRadius:`lg`,bg:u,shadow:`sm`,children:[(0,i.jsx)(n.Text,{fontSize:`xs`,fontWeight:`800`,children:r(`Wallet secured by`)}),(0,i.jsxs)(n.HStack,{justify:`center`,children:[(0,i.jsx)(e.i,{isDark:o,w:`50px`}),(0,i.jsx)(n.Icon,{as:_.LuMinus,ml:3}),t.isConnectedWithVeChain?(0,i.jsx)(e.J,{isDark:o,w:`80px`,h:`auto`,mb:`3px`}):t.isConnectedWithCrossApp&&c&&(0,i.jsx)(n.Image,{src:c.ecosystemApp.logoUrl,alt:c.ecosystemApp.name,maxW:`40px`,borderRadius:`md`}),t.isConnectedWithSocialLogin&&!t.isConnectedWithVeChain&&(0,i.jsx)(n.Image,{src:a?.appearance.logo,alt:a?.appearance.logo,maxW:`40px`,borderRadius:`md`})]})]}):null},Ni=({onGoBack:e})=>{let{t}=(0,l.useTranslation)(),{getConnectionCache:r}=Lo(),a=r()??void 0;return(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t(`Connection Details`)}),(0,i.jsx)(J,{onClick:()=>{e()}}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.ModalBody,{w:`full`,children:[(0,i.jsx)(ji,{connectionCache:a}),(0,i.jsx)(Mi,{})]}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},Pi=({accountType:e,accountDescription:t,isLoading:r,onConfirm:a,onCancel:o})=>{let{t:s}=(0,l.useTranslation)();return(0,i.jsxs)(n.VStack,{spacing:6,align:`stretch`,children:[(0,i.jsx)(n.Text,{fontSize:`md`,textAlign:`center`,color:(0,n.useToken)(`colors`,`vechain-kit-text-primary`),children:s(`Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?`,{accountType:e,accountDescription:t})}),(0,i.jsxs)(n.VStack,{spacing:3,w:`full`,children:[(0,i.jsx)(n.Button,{height:`60px`,colorScheme:`red`,w:`full`,onClick:a,isLoading:r,children:s(`Remove Login Method`)}),(0,i.jsx)(n.Button,{isLoading:r,height:`60px`,w:`full`,onClick:o,children:s(`Cancel`)})]})]})},Fi=({onBack:e})=>{let{t:a}=(0,l.useTranslation)(),{privy:o,dappKit:s}=$(),[c,u]=(0,r.useState)(null),[f,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(!1),[g,v]=(0,r.useState)(!1),y=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),b=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),{user:x,linkEmail:S,linkGoogle:C,linkTwitter:w,linkPhone:T,linkSpotify:E,linkApple:O,linkInstagram:k,linkTiktok:A,linkGithub:j,linkLinkedIn:F,linkTelegram:I,linkFarcaster:L,linkPasskey:R,linkDiscord:z,unlinkEmail:B,unlinkGoogle:V,unlinkApple:ee,unlinkSpotify:H,unlinkInstagram:te,unlinkTiktok:ne,unlinkGithub:re,unlinkLinkedIn:U,unlinkTelegram:ie,unlinkFarcaster:W,unlinkPhone:G,unlinkPasskey:ae,unlinkDiscord:oe,linkWallet:se}=(0,d.usePrivy)(),ce=(0,r.useMemo)(()=>{let e=o?.loginMethods?.filter(e=>[`rabby_wallet`,`coinbase_wallet`,`rainbow`,`phantom`,`metamask`].includes(e))??[],t=s?.allowedWallets??[];return e.length>0||t.length>0},[o?.loginMethods,s?.allowedWallets]),le=e=>{switch(e){case`google_oauth`:return D.FcGoogle;case`email`:return _.LuMail;case`passkey`:return _.LuFingerprint;case`wallet`:return _.LuWallet;case`twitter_oauth`:return M.FaXTwitter;case`phone`:return _.LuPhone;case`spotify_oauth`:return P.FaSpotify;case`apple_oauth`:return P.FaApple;case`instagram_oauth`:return P.FaInstagram;case`tiktok_oauth`:return P.FaTiktok;case`github_oauth`:return _.LuGithub;case`linkedin_oauth`:return P.FaLinkedin;case`telegram`:return P.FaTelegram;case`farcaster`:return N.SiFarcaster;case`discord_oauth`:return P.FaDiscord;default:return}},ue=()=>{let e=x?.linkedAccounts?.filter(e=>e.type!==`wallet`||e.type===`wallet`&&e.connectorType!==`embedded`);return e&&e?.length>1},de=async e=>{if(ue()){v(!0);try{switch(e.type){case`google_oauth`:await V(e.subject);break;case`email`:await B(e.address);break;case`passkey`:await ae(e.subject);break;case`phone`:await G(e.number);break;case`spotify_oauth`:await H(e.subject);break;case`apple_oauth`:await ee(e.subject);break;case`instagram_oauth`:await te(e.subject);break;case`tiktok_oauth`:await ne(e.subject);break;case`github_oauth`:await re(e.subject);break;case`linkedin_oauth`:await U(e.subject);break;case`telegram`:await ie(e.subject);break;case`farcaster`:await W(e.subject);break;case`discord_oauth`:await oe(e.subject);break;default:break}}catch(e){console.error(e)}finally{v(!1),u(null)}}},K=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`${t.W(e.address)} - ${e.walletClientType}`;default:return``}},q=x?.linkedAccounts?.map(e=>e.type)||[],fe=o?.loginMethods||[],pe=!q.includes(`google_oauth`)&&fe.includes(`google`),me=!q.includes(`email`)&&fe.includes(`email`),he=!q.includes(`twitter_oauth`)&&fe.includes(`twitter`),ge=!q.includes(`phone`)&&fe.includes(`sms`),_e=!q.includes(`spotify_oauth`)&&fe.includes(`spotify`),ve=!q.includes(`apple_oauth`)&&fe.includes(`apple`),ye=!q.includes(`instagram_oauth`)&&fe.includes(`instagram`),be=!q.includes(`tiktok_oauth`)&&fe.includes(`tiktok`),xe=!q.includes(`github_oauth`)&&fe.includes(`github`),Se=!q.includes(`linkedin_oauth`)&&fe.includes(`linkedin`),Ce=!q.includes(`telegram`)&&fe.includes(`telegram`),we=!q.includes(`farcaster`)&&fe.includes(`farcaster`),Te=!q.includes(`discord_oauth`)&&fe.includes(`discord`);return f?(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Select Additional Login Method`)}),(0,i.jsx)(J,{onClick:()=>p(!1)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{spacing:3,align:`stretch`,w:`full`,children:[(0,i.jsx)(Q,{title:a(`Set up Passkey`),description:a(`Set up a passkey for easier access`),onClick:()=>R(),leftIcon:_.LuFingerprint}),pe&&(0,i.jsx)(Q,{title:a(`Link Google Account`),description:a(`Connect your Google account for easier access`),onClick:()=>C(),leftIcon:D.FcGoogle}),me&&(0,i.jsx)(Q,{title:a(`Link Email Account`),description:a(`Connect your email for easier access`),onClick:()=>S(),leftIcon:_.LuMail,stacked:!0}),he&&(0,i.jsx)(Q,{title:a(`Link Twitter Account`),description:a(`Connect your Twitter account for easier access`),onClick:()=>w(),leftIcon:M.FaXTwitter}),ge&&(0,i.jsx)(Q,{title:a(`Link Phone Number`),description:a(`Connect your phone number for easier access`),onClick:()=>T(),leftIcon:_.LuPhone}),_e&&(0,i.jsx)(Q,{title:a(`Link Spotify Account`),description:a(`Connect your Spotify account for easier access`),onClick:()=>E(),leftIcon:P.FaSpotify}),ve&&(0,i.jsx)(Q,{title:a(`Link Apple Account`),description:a(`Connect your Apple account for easier access`),onClick:()=>O(),leftIcon:P.FaApple}),ye&&(0,i.jsx)(Q,{title:a(`Link Instagram Account`),description:a(`Connect your Instagram account for easier access`),onClick:()=>k(),leftIcon:P.FaInstagram}),be&&(0,i.jsx)(Q,{title:a(`Link Tiktok Account`),description:a(`Connect your Tiktok account for easier access`),onClick:()=>A(),leftIcon:P.FaTiktok}),xe&&(0,i.jsx)(Q,{title:a(`Link Github Account`),description:a(`Connect your Github account for easier access`),onClick:()=>j(),leftIcon:_.LuGithub}),Se&&(0,i.jsx)(Q,{title:a(`Link LinkedIn Account`),description:a(`Connect your LinkedIn account for easier access`),onClick:()=>F(),leftIcon:P.FaLinkedin}),Ce&&(0,i.jsx)(Q,{title:a(`Link Telegram Account`),description:a(`Connect your Telegram account for easier access`),onClick:()=>I(),leftIcon:P.FaTelegram}),we&&(0,i.jsx)(Q,{title:a(`Link Farcaster Account`),description:a(`Connect your Farcaster account for easier access`),onClick:()=>L(),leftIcon:N.SiFarcaster}),Te&&(0,i.jsx)(Q,{title:a(`Link Discord Account`),description:a(`Connect your Discord account for easier access`),onClick:()=>z(),leftIcon:P.FaDiscord}),ce&&(0,i.jsx)(Q,{title:a(`Link External Wallet`),description:a(`Connect an external wallet for easier access`),onClick:()=>se(),leftIcon:_.LuWallet}),!pe&&!me&&!he&&!ge&&!_e&&!ve&&!ye&&!be&&!xe&&!Se&&!Ce&&!we&&!Te&&(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,opacity:.7,children:a(`No additional accounts available to link`)})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]}):c?(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Remove Login Method`)}),(0,i.jsx)(J,{onClick:()=>u(null)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsx)(Pi,{accountType:c.type,accountDescription:K(c),isLoading:g,onConfirm:()=>de(c),onCancel:()=>u(null)})}),(0,i.jsx)(n.ModalFooter,{pt:0})]}):(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Login methods`)}),(0,i.jsx)(J,{onClick:e}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{spacing:3,align:`center`,w:`full`,justify:`center`,children:[(0,i.jsxs)(n.VStack,{spacing:1,justify:`flex-start`,alignItems:`flex-start`,mb:5,textAlign:`left`,w:`full`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,color:b,children:a(`These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.`)}),m&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:b,children:a(`Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.`)}),(0,i.jsx)(n.Button,{variant:`link`,mt:0,size:`sm`,onClick:()=>h(!m),color:y,children:a(m?`Show Less`:`Read More`)})]}),x?.linkedAccounts?.filter(e=>e.type!==`wallet`||e.type===`wallet`&&e.connectorType!==`embedded`).map(e=>(0,i.jsxs)(n.Flex,{p:4,borderWidth:`1px`,borderRadius:`md`,align:`center`,justify:`space-between`,w:`full`,children:[(0,i.jsxs)(n.Flex,{align:`center`,gap:3,children:[(0,i.jsx)(n.Icon,{as:le(e.type),color:y}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,children:[(0,i.jsx)(n.Text,{fontWeight:`500`,color:y,children:e.type===`google_oauth`?a(`Google`):e.type===`email`?a(`Email`):e.type===`passkey`?a(`Passkey`):e.type===`twitter_oauth`?a(`Twitter`):e.type===`phone`?a(`Phone Number`):e.type===`spotify_oauth`?a(`Spotify`):e.type===`apple_oauth`?a(`Apple`):e.type===`instagram_oauth`?a(`Instagram`):e.type===`tiktok_oauth`?a(`Tiktok`):e.type===`github_oauth`?a(`Github`):e.type===`linkedin_oauth`?a(`LinkedIn`):e.type===`telegram`?a(`Telegram`):e.type===`farcaster`?a(`Farcaster`):e.type===`discord_oauth`?a(`Discord`):a(`Wallet`)}),(0,i.jsx)(n.Text,{fontSize:`sm`,color:b,children:K(e)})]})]}),(0,i.jsx)(n.Button,{size:`sm`,variant:`ghost`,colorScheme:`red`,isDisabled:!ue(),onClick:()=>{e.type===`passkey`?R():u(e)},children:a(`Remove`)})]},e.type))]})}),(0,i.jsx)(n.ModalFooter,{w:`full`,children:(0,i.jsx)(n.Button,{w:`full`,variant:`vechainKitPrimary`,onClick:()=>p(!0),leftIcon:(0,i.jsx)(n.Icon,{as:_.LuPlus}),isDisabled:!pe&&!me&&!he&&!ge&&!_e&&!ve&&!ye&&!be&&!xe&&!Se&&!Ce&&!we&&!Te,children:a(`Add Login Method`)})})]})},Ii=[{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}],Li=()=>{let{t:e}=(0,l.useTranslation)(),{account:t,connection:n,smartAccount:i}=Z(),{addNotification:a,getNotifications:o}=Ri(),{data:s}=Fs(i?.address??``,3);(0,r.useEffect)(()=>{if(!n.isConnectedWithPrivy||!t?.address)return;let r=o(),i=`smart_account_upgrade_${t.address.toLowerCase()}`;!r.some(e=>e.id===i)&&s&&a({id:i,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,s]),(0,r.useEffect)(()=>{!n.isConnectedWithPrivy||!t?.address||o().some(e=>e.id===`smart_account_${t.address.toLowerCase()}`)||a({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]),(0,r.useEffect)(()=>{if(!n.isConnectedWithPrivy||!t?.address)return;let r=o(),i=r.some(e=>e.id===`multiclause_warning_${t.address.toLowerCase()}`),s=r.some(e=>e.id===`multiclause_support_${t.address.toLowerCase()}`);i&&!s&&a({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])},Ri=()=>{let{account:e}=Z(),n=(0,r.useCallback)(e=>{let t=e?.toLowerCase();return{notifications:`vechain_kit_notifications_${t}`,archived:`vechain_kit_archived_notifications_${t}`,initialized:`vechain_kit_notifications_initialized_${t}`}},[]),i=(0,r.useCallback)(()=>{if(!e?.address||!t.mt())return;let r=n(e.address);t.dt(r.initialized)||(t.yt(r.notifications,JSON.stringify(Ii)),t.yt(r.initialized,`true`))},[e?.address,n]);(0,r.useEffect)(()=>{i()},[i]);let a=(0,r.useCallback)(()=>{if(!e?.address||!t.mt())return[];let r=t.dt(n(e.address).notifications);return r?JSON.parse(r):[]},[e?.address,n]),o=(0,r.useCallback)(()=>{if(!e?.address||!t.mt())return[];let r=t.dt(n(e.address).archived);return r?JSON.parse(r):[]},[e?.address,n]),s=(0,r.useCallback)(r=>{if(!e?.address||!t.mt())return;let i=n(e.address),o=a(),s=t.dt(i.archived),c=s?JSON.parse(s):[];if([...o,...c].some(e=>e.title===r.title))return;let l={...r,id:r.id||Math.random().toString(36).substring(7),timestamp:Date.now(),isRead:!1};t.yt(i.notifications,JSON.stringify([l,...o]))},[e?.address,a,n]),c=(0,r.useCallback)(r=>{if(!e?.address||!t.mt())return;let i=n(e.address),o=a().filter(e=>e.id!==r);t.yt(i.notifications,JSON.stringify(o))},[e?.address,a,n]);return{getNotifications:a,getArchivedNotifications:o,addNotification:s,clearAllNotifications:(0,r.useCallback)(()=>{if(!e?.address||!t.mt())return;let r=n(e.address),i=a();t.yt(r.archived,JSON.stringify([...o(),...i])),t.yt(r.notifications,JSON.stringify([]))},[e?.address,a,o,n]),markAsRead:(0,r.useCallback)(r=>{if(!e?.address||!t.mt())return;let i=n(e.address),s=a(),c=o(),l=s.find(e=>e.id===r),u=s.filter(e=>e.id!==r);if(l){let e=[{...l,isRead:!0},...c];t.yt(i.notifications,JSON.stringify(u)),t.yt(i.archived,JSON.stringify(e))}},[e?.address,a,o,n]),deleteNotification:c}},zi=({showArchived:e})=>{let{t}=(0,l.useTranslation)();return(0,i.jsx)(vi,{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?_.LuArchive:_.LuBell})},Bi=({notification:e,isArchiveView:t,onMarkAsRead:r})=>{let{t:a}=(0,l.useTranslation)(),o=()=>{r(e.id)};return e.isRead&&!t?null:(0,i.jsxs)(n.Alert,{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:[(0,i.jsx)(n.AlertIcon,{boxSize:`16px`}),(0,i.jsxs)(n.Box,{children:[(0,i.jsx)(n.AlertTitle,{fontSize:`sm`,"data-testid":`notification-title`,children:a(e.title)}),(0,i.jsx)(n.AlertDescription,{fontSize:`xs`,lineHeight:`1.2`,"data-testid":`notification-text`,children:a(e.description)})]}),!t&&!e.isRead&&(0,i.jsx)(n.IconButton,{position:`absolute`,right:1,top:1,size:`sm`,variant:`ghost`,icon:(0,i.jsx)(_.LuCircleX,{}),onClick:e=>{e.stopPropagation(),o()},"aria-label":`Mark as read and archive`,"data-testid":`remove-notification-button`})]},e.id)},Vi=({setCurrentContent:e})=>{let{t}=(0,l.useTranslation)(),{isolatedView:a}=Ar(),{getNotifications:o,getArchivedNotifications:s,clearAllNotifications:c,markAsRead:u}=Ri(),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(o()),[h,g]=(0,r.useState)(s()),v=()=>{c(),g([...h,...p]),m([])},y=e=>{u(e);let t=p.find(t=>t.id===e);m(p.filter(t=>t.id!==e)),t&&g([{...t,isRead:!0},...h])},b=()=>{f(!d)},x=d?h:p,S=[...x].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(0,i.jsxs)(Dc,{children:[(0,i.jsxs)(Y,{children:[!a&&(0,i.jsx)(J,{onClick:()=>e(`main`)}),(0,i.jsx)(n.ModalHeader,{"data-testid":`modal-title`,children:t(d?`Archived Notifications`:`Notifications`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.Container,{h:[`540px`,`auto`],p:0,children:[(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,w:`full`,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsx)(n.Button,{variant:`ghost`,leftIcon:(0,i.jsx)(n.Icon,{as:d?_.LuBell:_.LuArchive}),size:`sm`,onClick:b,"data-testid":`toggle-view-button`,children:t(d?`Current`:`Archived`)}),!d&&p.length>0&&(0,i.jsx)(n.Button,{variant:`ghost`,size:`sm`,onClick:v,"data-testid":`clear-all-button`,children:t(`Clear all`)})]}),x.length===0?(0,i.jsx)(zi,{showArchived:d}):(0,i.jsx)(n.VStack,{spacing:3,children:S.map(e=>(0,i.jsx)(Bi,{notification:e,isArchiveView:d,onMarkAsRead:y},e.id))})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})]})},Hi=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`}},Ui=({category:e,...t})=>{let{t:r}=(0,l.useTranslation)(),a=e.toLowerCase();return(0,i.jsx)(n.Tag,{size:`sm`,colorScheme:Hi(a),borderRadius:`full`,px:2,...t,children:r(a)})},Wi=({name:e,imageUrl:r,logoComponent:a,category:o,onClick:s,size:c=`md`})=>(0,i.jsxs)(n.Card,{variant:`vechainKitAppCard`,_hover:{opacity:.8},cursor:`pointer`,onClick:s,position:`relative`,children:[o&&(0,i.jsx)(n.Box,{position:`absolute`,top:`2`,right:`2`,zIndex:`1`,children:(0,i.jsx)(Ui,{category:o})}),(0,i.jsx)(n.CardBody,{p:c===`sm`?2:4,alignItems:`center`,children:(0,i.jsxs)(n.VStack,{spacing:2,h:`100%`,justifyContent:`space-between`,children:[a||r&&(0,i.jsx)(n.Image,{src:r,fallbackSrc:t.ct,alt:e,height:`90px`,objectFit:`contain`,rounded:`full`}),e&&(0,i.jsx)(n.Text,{fontWeight:`medium`,wordBreak:`break-word`,noOfLines:1,textAlign:`center`,w:`full`,children:e})]})})]}),Gi=({xApp:e,setCurrentContent:t,selectedCategory:r})=>{let{data:a,isLoading:o}=Nn(e.id),{data:s,isLoading:c}=Bn(a?.logo);return(0,i.jsx)(n.Skeleton,{isLoaded:!o&&!c,borderRadius:`md`,height:`100%`,children:(0,i.jsx)(Wi,{name:a?.name??``,imageUrl:s?.image??``,linkUrl:a?.external_url??``,category:`vebetter`,onClick:()=>{a?.name&&t({type:`app-overview`,props:{name:a.name,image:s?.image??``,url:a?.external_url??``,description:a?.description??``,category:`vebetter`,selectedCategory:r,setCurrentContent:t}})}})})},Ki=({name:e,image:t,url:n,description:r,category:a,logoComponent:o,selectedCategory:s,setCurrentContent:c})=>(0,i.jsx)(Wi,{name:e,imageUrl:t,linkUrl:n,category:a,onClick:()=>{c({type:`app-overview`,props:{name:e,image:t,url:n,description:r,category:a,logoComponent:o,selectedCategory:s,setCurrentContent:c}})},...o&&{logoComponent:o}}),qi=({})=>{let{t:e}=(0,l.useTranslation)(),{shortcuts:r}=pc();return r.length===0?null:(0,i.jsxs)(n.VStack,{w:`full`,align:`flex-start`,spacing:2,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`500`,children:e(`Shortcuts`)}),(0,i.jsx)(n.Grid,{templateColumns:`repeat(4, 1fr)`,gap:2,w:`full`,children:r.map(e=>(0,i.jsx)(n.GridItem,{children:(0,i.jsx)(n.Card,{_hover:{opacity:.8},cursor:`pointer`,onClick:()=>window.open(e.url,`_blank`),children:(0,i.jsx)(n.CardBody,{p:2,alignItems:`center`,children:(0,i.jsx)(n.Image,{src:e.image,fallbackSrc:t.ct,alt:e.name,objectFit:`contain`,rounded:`full`})})})},e.url))})]})},Ji=({selectedCategory:e,onCategoryChange:t,categories:r,darkMode:a})=>{let{t:o}=(0,l.useTranslation)();return(0,i.jsxs)(n.Box,{width:`full`,mb:4,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`500`,mb:2,children:o(`Filter by category`)}),(0,i.jsxs)(n.Wrap,{spacing:2,children:[(0,i.jsx)(n.WrapItem,{children:(0,i.jsx)(n.Tag,{size:`md`,borderRadius:`full`,variant:e===null?`solid`:`outline`,colorScheme:a?`gray`:`blackAlpha`,cursor:`pointer`,onClick:()=>t(null),children:o(`All`)})}),r.map(r=>(0,i.jsx)(n.WrapItem,{children:(0,i.jsx)(Ui,{category:r,size:`md`,variant:e===r?`solid`:`outline`,cursor:`pointer`,onClick:()=>t(r)})},r))]})]})},Yi=[{name:`VeBetterDAO`,description:`Engage, earn and prosper by doing sustainable actions.`,external_url:e.y,logo:new URL(`/static/img/coins/64x64/33509.png`,e.c).toString(),banner:new URL(`/static/img/icons/vbd.png`,e.c).toString(),screenshots:[],social_urls:[],app_urls:[],tweets:[],ve_world:{banner:new URL(`/static/img/icons/vbd.png`,e.c).toString()},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:e.k,logo:new URL(`/assets/walletconnect.png`,e.k).toString(),banner:new URL(`/assets/walletconnect.png`,e.k).toString(),screenshots:[],social_urls:[],app_urls:[],tweets:[],ve_world:{banner:new URL(`/assets/walletconnect.png`,e.k).toString()},categories:[]}],Xi=({setCurrentContent:e,selectedCategory:t})=>{let{t:a}=(0,l.useTranslation)(),{darkMode:o,network:s}=$(),{isolatedView:c}=Ar(),u=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),[d,f]=(0,r.useState)(``),[p,m]=(0,r.useState)(t||null);(0,r.useEffect)(()=>{t!==void 0&&m(t)},[t]);let{data:h}=Zt(),{data:g}=xn(h?(parseInt(h)-1).toString():`1`),{data:v,isLoading:y,error:b}=Wo(),x=(0,r.useMemo)(()=>{let e=new Set;return s.type===`main`&&g&&g.length>0&&e.add(`vebetter`),v&&v.forEach(t=>{t.category&&e.add(t.category)}),Array.from(e).sort()},[v,g,s.type]),S=s.type===`main`?g.filter(e=>e.app.name.toLowerCase().includes(d.toLowerCase())):[],C=Yi.filter(e=>e.name.toLowerCase().includes(d.toLowerCase())),w=v?.filter(e=>(e.name.toLowerCase().includes(d.toLowerCase())||e.description.toLowerCase().includes(d.toLowerCase())||e.tags.some(e=>e.toLowerCase().includes(d.toLowerCase())))&&(p===null||e.category===p))||[],T=p===null,E=p===null||p===`vebetter`,{shortcuts:D}=pc();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Ecosystem`)}),!c&&(0,i.jsx)(J,{onClick:()=>e(`settings`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{overflowY:`auto`,minH:`300px`,children:(0,i.jsxs)(n.VStack,{spacing:6,w:`full`,children:[(0,i.jsx)(qi,{setCurrentContent:e}),D.length>0&&(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`500`,w:`full`,textAlign:`left`,children:a(`All apps`)}),(0,i.jsxs)(n.InputGroup,{size:`lg`,children:[(0,i.jsx)(n.Input,{placeholder:a(`Search Apps`),value:d,onChange:e=>{f(e.target.value)},bg:o?`#00000038`:`gray.50`,borderRadius:`xl`,height:`56px`,pl:12}),(0,i.jsx)(n.InputLeftElement,{h:`56px`,w:`56px`,pl:4,children:(0,i.jsx)(_.LuSearch,{color:u})})]}),x.length>0&&(0,i.jsx)(Ji,{selectedCategory:p,onCategoryChange:e=>{m(e)},categories:x,darkMode:o}),(0,i.jsxs)(n.Grid,{templateColumns:`repeat(2, 1fr)`,gap:4,w:`full`,children:[T&&C.length>0&&(0,i.jsx)(i.Fragment,{children:C.map(t=>(0,i.jsx)(n.GridItem,{children:(0,i.jsx)(Ki,{name:t.name,image:t.logo,url:t.external_url,setCurrentContent:e,description:t.description,selectedCategory:p})},t.name))}),E&&S.length>0&&(0,i.jsx)(i.Fragment,{children:S.map(t=>(0,i.jsx)(n.GridItem,{children:(0,i.jsx)(Gi,{xApp:t.app,setCurrentContent:e,selectedCategory:p})},t.id))}),y?(0,i.jsx)(n.GridItem,{colSpan:2,children:(0,i.jsx)(n.Center,{py:4,children:(0,i.jsx)(n.Spinner,{})})}):b?(0,i.jsx)(n.GridItem,{colSpan:2,children:(0,i.jsx)(n.Text,{color:`red.500`,textAlign:`center`,children:a(`Failed to load App Hub apps`)})}):w.length>0?w.map(t=>(0,i.jsx)(n.GridItem,{children:(0,i.jsx)(Ki,{name:t.name,image:t.logo,url:t.url,setCurrentContent:e,description:t.description,category:t.category,selectedCategory:p})},t.id)):p&&!E&&(0,i.jsx)(n.GridItem,{colSpan:2,children:(0,i.jsx)(n.Center,{py:4,children:(0,i.jsx)(n.Text,{children:a(`No apps found in this category`)})})})]})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},Zi=({name:e,image:t,url:r,description:a})=>{let{t:o}=(0,l.useTranslation)(),{isShortcut:s,addShortcut:c,removeShortcut:u}=pc(),d=s(r);return(0,i.jsx)(n.Button,{px:4,width:`full`,height:`45px`,variant:`vechainKitSecondary`,borderRadius:`xl`,onClick:()=>{d?u(r):c({name:e,image:t,url:r,description:a})},leftIcon:(0,i.jsx)(n.Icon,{as:d?_.LuBookmarkCheck:_.LuBookmark}),children:o(d?`Remove from shortcuts`:`Add to shortcuts`)})},Qi=({setCurrentContent:e,name:t,image:r,url:a,description:o,category:s,selectedCategory:c,logoComponent:u})=>{let{t:d}=(0,l.useTranslation)();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t}),(0,i.jsx)(J,{onClick:()=>{e(c?{type:`ecosystem-with-category`,props:{selectedCategory:c,setCurrentContent:e}}:`ecosystem`)}}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,w:`full`,children:[(0,i.jsxs)(n.Flex,{direction:`column`,align:`center`,children:[u||(0,i.jsx)(n.Image,{src:r,alt:t,w:`200px`,h:`200px`,objectFit:`contain`,borderRadius:`xl`}),s&&(0,i.jsx)(n.HStack,{mt:2,children:(0,i.jsx)(Ui,{category:s})})]}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:o}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:d(`Click below to access {{ name }} and explore its features.`,{name:t})})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsxs)(n.VStack,{w:`full`,spacing:4,children:[(0,i.jsxs)(n.Button,{variant:`vechainKitSecondary`,onClick:()=>{window.open(a,`_blank`)},children:[d(`Launch {{name}}`,{name:t}),(0,i.jsx)(n.Icon,{as:_.LuExternalLink,ml:2})]}),(0,i.jsx)(Zi,{name:t,image:r,url:a,description:o})]})})]})},$i=({children:e})=>(0,i.jsx)(g.motion.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}),ea=({description:t})=>{let{darkMode:r}=$(),a=new URL(`intent/tweet`,e.v);a.searchParams.set(`text`,t);let o=new URL(`share/url`,e._);o.searchParams.set(`url`,t);let s=new URL(``,e.A);return s.searchParams.set(`text`,t),(0,i.jsxs)(n.HStack,{gap:2,children:[(0,i.jsx)($i,{children:(0,i.jsx)(n.Link,{href:a.toString(),isExternal:!0,children:(0,i.jsx)(n.Box,{bg:r?`blackAlpha.700`:`lightgrey`,p:2,borderRadius:`full`,children:(0,i.jsx)(M.FaXTwitter,{size:22})})})}),(0,i.jsx)($i,{children:(0,i.jsx)(n.Link,{href:o.toString(),isExternal:!0,children:(0,i.jsx)(n.Box,{bg:`#30abec`,p:2,borderRadius:`full`,children:(0,i.jsx)(P.FaTelegramPlane,{color:`white`,size:22})})})}),(0,i.jsx)($i,{children:(0,i.jsx)(n.Link,{href:s.toString(),isExternal:!0,children:(0,i.jsx)(n.Box,{bg:`#01cb37`,p:2,borderRadius:`full`,children:(0,i.jsx)(P.FaWhatsapp,{size:22,color:`white`})})})})]})},ta=({status:e,uiConfig:a,onTryAgain:o,txReceipt:s,txError:c,onClose:u})=>{let{t:d}=(0,l.useTranslation)(),{network:f}=$(),p=(0,n.useToken)(`colors`,`vechain-kit-error`),m=(0,n.useToken)(`colors`,`vechain-kit-success`),h=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),g=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),v=(0,r.useMemo)(()=>c?c.reason||d(`Something went wrong. Please try again.`):null,[c,d]),y=(()=>{let t=e===`waitingConfirmation`;switch(t&&(e=`pending`),e){case`pending`:return{title:a?.title??d(t?`Sending Transaction...`:`Waiting for confirmation`),icon:a?.loadingIcon??(0,i.jsx)(n.Spinner,{size:`xl`,"data-testid":`pending-spinner-modal`}),description:t?d(`Transaction is being processed, it can take up to 15 seconds.`):a?.description??d(`Please confirm the transaction in your wallet.`)};case`error`:return{title:d(`Something went wrong`),icon:a?.errorIcon??(0,i.jsx)(n.Icon,{as:_.LuCircleAlert,color:p,fontSize:`100px`,"data-testid":`error-icon-modal`}),description:v??d(`An unexpected error occurred.`)};case`success`:return{title:d(`Transaction successful!`),icon:a?.successIcon??(0,i.jsx)(n.Icon,{as:_.LuCircleCheck,color:m,fontSize:`100px`,"data-testid":`success-icon-modal`}),description:``};case`ready`:return{title:a?.title??d(`Confirm transaction`),icon:null,description:a?.description??d(`Confirm the transaction in your wallet to complete it.`)};default:return{title:``,icon:null,description:``}}})(),b=`${t.bt(f.type).explorerUrl}/${s?.meta.txID}`;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:y.title}),(0,i.jsx)(n.ModalCloseButton,{isDisabled:e===`pending`&&!a?.isClosable})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`center`,p:6,spacing:3,children:[y.icon,e===`success`&&a?.showShareOnSocials&&(0,i.jsxs)(n.VStack,{mt:2,spacing:3,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,color:g,children:d(`Share on`)}),(0,i.jsx)(ea,{description:b})]}),y.description&&(0,i.jsx)(n.Text,{fontSize:e===`ready`?`md`:`sm`,textAlign:`center`,color:e===`error`?p:h,mt:5,style:{lineBreak:`anywhere`},children:y.description})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.VStack,{width:`full`,spacing:4,children:[e===`error`&&!!o&&(0,i.jsxs)(n.Button,{variant:`vechainKitPrimary`,onClick:o,width:`full`,children:[(0,i.jsx)(n.Icon,{mr:2,as:_.LuRefreshCw}),d(`Try again`)]}),e===`ready`&&(0,i.jsx)(n.Button,{onClick:o,variant:`vechainKitPrimary`,width:`full`,children:d(`Confirm`)}),(e===`success`||e===`error`||e===`ready`)&&(0,i.jsx)(n.Button,{onClick:u,variant:`ghost`,width:`full`,children:d(`Close`)}),a?.showExplorerButton&&s?.meta.txID&&(0,i.jsx)(n.Link,{href:`${t.bt(f.type).explorerUrl}/${s?.meta.txID}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:(0,i.jsxs)(n.HStack,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[(0,i.jsx)(n.Text,{color:g,children:d(`View transaction on the explorer`)}),(0,i.jsx)(n.Icon,{size:`sm`,as:_.LuExternalLink,color:g})]})})]})})]})},na=({isOpen:e,onClose:t,status:n,uiConfig:r,txReceipt:a,txError:o,onTryAgain:s})=>{let{darkMode:c,theme:l}=$();return e?(0,i.jsx)(Ja,{darkMode:c,theme:l,children:(0,i.jsx)(Pe,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,closeOnOverlayClick:n!==`pending`&&r?.isClosable,children:(0,i.jsx)(ta,{status:n,onTryAgain:s,uiConfig:r,txReceipt:a,onClose:t,txError:o})})}):null},ra=({txId:e,title:r,description:a,onDone:o,showSocialButtons:s=!1})=>{let{t:c}=(0,l.useTranslation)(),{network:u}=$(),d=t.bt(u.type).explorerUrl,f=`${d}/${e}`,p=(0,n.useToken)(`colors`,`vechain-kit-success`),m=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),h=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`center`,p:6,spacing:3,children:[(0,i.jsx)(n.Icon,{as:_.LuCircleCheck,fontSize:`100px`,color:p,"data-testid":`success-icon`}),a&&(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,color:m,children:a}),s&&e&&(0,i.jsxs)(n.VStack,{mt:2,spacing:3,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,color:h,children:c(`Share on`)}),(0,i.jsx)(ea,{description:f})]})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.VStack,{width:`full`,spacing:4,children:[(0,i.jsx)(n.Button,{onClick:o,variant:`vechainKitSecondary`,width:`full`,children:c(`Done`)}),e&&(0,i.jsx)(n.Link,{href:`${d}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:(0,i.jsxs)(n.HStack,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[(0,i.jsx)(n.Text,{color:h,children:c(`View transaction on the explorer`)}),(0,i.jsx)(n.Icon,{size:16,as:_.LuExternalLink})]})})]})})]})},ia=({txId:e,title:r,description:a,onDone:o})=>{let{t:s}=(0,l.useTranslation)(),{network:c,darkMode:u}=$(),d=t.bt(c.type).explorerUrl;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`center`,p:6,spacing:3,children:[(0,i.jsx)(n.Icon,{as:_.LuCircleAlert,fontSize:`100px`,color:u?`red.400`:`red.500`,"data-testid":`error-icon`}),a&&(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:a})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.VStack,{width:`full`,spacing:4,children:[(0,i.jsx)(n.Button,{onClick:o,variant:`vechainKitSecondary`,width:`full`,children:s(`Done`)}),e&&(0,i.jsx)(n.Link,{href:`${d}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:(0,i.jsxs)(n.HStack,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[(0,i.jsx)(n.Text,{children:s(`View transaction on the explorer`)}),(0,i.jsx)(n.Icon,{size:16,as:_.LuExternalLink})]})})]})})]})},aa=({isOpen:e,onClose:t,initialContent:n=`profile`})=>{let{account:a}=Z(),{themeConfig:o}=Ka(),{accountModalContent:s,setAccountModalContent:c}=Xa();return(0,r.useEffect)(()=>{e&&c(n)},[e,n,c]),(0,i.jsx)(Pe,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,mobileMinHeight:o?.modal?.useBottomSheetOnMobile?`520px`:`510px`,mobileMaxHeight:o?.modal?.useBottomSheetOnMobile?`520px`:`510px`,desktopMinHeight:`485px`,desktopMaxHeight:`485px`,children:(()=>{if(typeof s==`object`)switch(s.type){case`send-token`:return(0,i.jsx)(jr,{...s.props});case`send-token-summary`:return(0,i.jsx)(Mr,{...s.props});case`swap-token`:return(0,i.jsx)(Lr,{...s.props});case`choose-name`:return(0,i.jsx)(Rr,{...s.props});case`choose-name-search`:return(0,i.jsx)(Hr,{...s.props});case`choose-name-summary`:return(0,i.jsx)(Ur,{...s.props});case`app-overview`:return(0,i.jsx)(Qi,{...s.props,setCurrentContent:c});case`disconnect-confirm`:return(0,i.jsx)(wi,{...s.props});case`remove-wallet-confirm`:return(0,i.jsx)(Oi,{...s.props});case`account-customization`:return(0,i.jsx)(ri,{...s.props});case`account-customization-summary`:return(0,i.jsx)(ii,{...s.props});case`successful-operation`:return(0,i.jsx)(ra,{...s.props});case`failed-operation`:return(0,i.jsx)(ia,{...s.props});case`upgrade-smart-account`:return(0,i.jsx)(ci,{...s.props});case`faq`:return(0,i.jsx)(Gr,{...s.props});case`terms-and-privacy`:return(0,i.jsx)(Ci,{...s.props});case`ecosystem-with-category`:return(0,i.jsx)(Xi,{setCurrentContent:c,selectedCategory:s.props.selectedCategory});case`select-wallet`:return(0,i.jsx)(Di,{setCurrentContent:c,onClose:t,returnTo:s.props.returnTo,onLogoutSuccess:s.props.onLogoutSuccess});case`main`:return(0,i.jsx)(Or,{setCurrentContent:c,onClose:t,wallet:a,switchFeedback:s.props?.switchFeedback});case`profile`:return(0,i.jsx)(si,{setCurrentContent:c,onLogoutSuccess:()=>{t()},switchFeedback:s.props?.switchFeedback})}switch(s){case`main`:return(0,i.jsx)(Or,{setCurrentContent:c,onClose:t,wallet:a});case`settings`:return(0,i.jsx)(_i,{setCurrentContent:c,onLogoutSuccess:()=>{t()}});case`profile`:return(0,i.jsx)(si,{setCurrentContent:c,onLogoutSuccess:()=>{t()}});case`assets`:return(0,i.jsx)(li,{setCurrentContent:c});case`notifications`:return(0,i.jsx)(Vi,{setCurrentContent:c});case`receive-token`:return(0,i.jsx)(Nr,{setCurrentContent:c});case`swap-token`:return(0,i.jsx)(Lr,{setCurrentContent:c});case`connection-details`:return(0,i.jsx)(Ni,{onGoBack:()=>c(`settings`)});case`privy-linked-accounts`:return(0,i.jsx)(Fi,{onBack:()=>c(`settings`)});case`ecosystem`:return(0,i.jsx)(Xi,{setCurrentContent:c});case`add-custom-token`:return(0,i.jsx)(ui,{setCurrentContent:c});case`change-currency`:return(0,i.jsx)(fi,{setCurrentContent:c});case`change-language`:return(0,i.jsx)(pi,{setCurrentContent:c});case`gas-token-settings`:return(0,i.jsx)(gi,{setCurrentContent:c});default:return null}})()})},oa=({loadingText:e,title:t,onTryAgain:a,onClose:o,onGoBack:s,showBackButton:c=!0})=>{let{t:u}=(0,l.useTranslation)(),[d,f]=r.default.useState(!1);return r.default.useEffect(()=>{let e=setTimeout(()=>{f(!0)},7e3);return()=>clearTimeout(e)},[]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Y,{children:(0,i.jsxs)(n.ModalHeader,{children:[c&&(0,i.jsx)(J,{onClick:s}),t??u(`Connecting...`),(0,i.jsx)(n.ModalCloseButton,{onClick:o})]})}),(0,i.jsxs)(n.ModalBody,{children:[(0,i.jsx)(n.VStack,{align:`center`,p:6,gap:0,w:`full`,justifyContent:`center`,minH:`150px`,children:(0,i.jsx)(n.Spinner,{size:`xl`})}),e&&!d&&(0,i.jsx)(n.Text,{size:`sm`,textAlign:`center`,children:e}),d&&(0,i.jsxs)(n.VStack,{mt:4,spacing:2,children:[(0,i.jsx)(n.Text,{color:`orange.300`,size:`sm`,textAlign:`center`,children:u(`This is taking longer than expected.`)}),(0,i.jsx)(n.Text,{size:`sm`,textAlign:`center`,children:u(`You may want to try establishing the connection again.`)})]})]}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:d&&(0,i.jsxs)(n.Button,{variant:`vechainKitPrimary`,onClick:a,children:[(0,i.jsx)(n.Icon,{mr:2,as:_.LuRefreshCw}),u(`Try again`)]})})]})},sa=({error:e,onClose:t,onTryAgain:r,onGoBack:a})=>{let{t:o}=(0,l.useTranslation)(),s=(0,g.useReducedMotion)();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Y,{children:(0,i.jsxs)(n.ModalHeader,{children:[(0,i.jsx)(J,{onClick:a}),o(`Connection Failed`),(0,i.jsx)(n.ModalCloseButton,{onClick:t})]})}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`center`,p:6,w:`full`,justifyContent:`center`,minH:`100px`,gap:4,children:[(0,i.jsx)(g.motion.div,{transition:{duration:4,ease:`easeInOut`,repeat:s?0:1/0},animate:{scale:s?[1]:[1,1.1,1]},children:(0,i.jsx)(n.Icon,{as:_.LuCircleAlert,color:`#ef4444`,fontSize:`60px`,opacity:.5})}),(0,i.jsx)(n.Text,{w:`full`,size:`sm`,textAlign:`center`,children:e})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.Button,{variant:`vechainKitPrimary`,onClick:r,children:[(0,i.jsx)(n.Icon,{mr:2,as:_.LuRefreshCw}),o(`Try again`)]})})]})},ca=({onClose:e,appsInfo:r,isLoading:a,setCurrentContent:o,showBackButton:s=!0})=>{let{t:c}=(0,l.useTranslation)(),u=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),{setConnectionCache:d}=Lo(),{login:f}=En(),p=async(n,i)=>{o({type:`loading`,props:{title:`${c(`Connecting with`)} ${i}`,loadingText:c(`Please approve the request in the connection request window...`),onTryAgain:()=>{p(n,i)}}});try{await f(n),d({name:i,logoUrl:r.find(e=>e.id===n)?.logo_url,appId:n,website:r.find(e=>e.id===n)?.website}),e()}catch(e){let a=e?.message;if(a&&t.a(a)){o({type:`ecosystem`,props:{appsInfo:r,isLoading:!1}});return}o({type:`error`,props:{error:(e instanceof Error?e:Error(`An unexpected issue occurred while logging in with this app. Please try again or contact support.`)).message,onTryAgain:()=>{p(n,i)}}})}};return(0,i.jsx)(n.Box,{children:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Y,{children:(0,i.jsxs)(n.ModalHeader,{children:[s&&(0,i.jsx)(J,{onClick:()=>o(`main`)}),c(`Already have an x2earn app wallet?`),(0,i.jsx)(n.ModalCloseButton,{onClick:e})]})}),(0,i.jsxs)(n.ModalBody,{children:[a&&(0,i.jsx)(n.VStack,{minH:`200px`,w:`full`,justifyContent:`center`,children:(0,i.jsx)(n.Spinner,{})}),!a&&r&&(0,i.jsx)(n.VStack,{spacing:4,w:`full`,pb:6,children:r.map(e=>(0,i.jsxs)(n.Button,{variant:`loginIn`,fontSize:`14px`,fontWeight:`400`,p:6,borderRadius:16,w:`full`,onClick:()=>{p(e.id,e.name)},justifyContent:`flex-start`,children:[(0,i.jsx)(n.Image,{src:e.logo_url,alt:e.name,w:`30px`}),(0,i.jsx)(n.Text,{ml:5,children:e.name})]},e.id))}),!a&&!r&&(0,i.jsx)(n.Text,{textAlign:`center`,color:u,children:c(`No application from VeChain ecosystem is available to login.`)})]}),(0,i.jsx)(n.ModalFooter,{pt:0})]})})},la=({isOpen:e,onClose:t,initialContent:n=`main`,preventAutoClose:a=!1})=>{let[o,s]=(0,r.useState)(n);(0,r.useEffect)(()=>{e&&s(n)},[e,n,s]);let c=(()=>{if(!o)return(0,i.jsx)(Dr,{setCurrentContent:s,onClose:t,preventAutoClose:a});switch(o){case`main`:return(0,i.jsx)(Dr,{setCurrentContent:s,onClose:t,preventAutoClose:a});case`faq`:return(0,i.jsx)(Gr,{onGoBack:()=>s(`main`)})}if(typeof o==`object`&&`type`in o)switch(o.type){case`ecosystem`:return(0,i.jsx)(ca,{onClose:t,appsInfo:o.props.appsInfo,isLoading:o.props.isLoading,setCurrentContent:s,showBackButton:o.props.showBackButton});case`loading`:return(0,i.jsx)(oa,{title:o.props.title,loadingText:o.props.loadingText,onTryAgain:o.props.onTryAgain,onClose:t,onGoBack:()=>s(`main`),showBackButton:o.props.showBackButton});case`error`:return(0,i.jsx)(sa,{error:o.props.error,onClose:t,onTryAgain:o.props.onTryAgain,onGoBack:()=>s(`main`)})}return null})();return c?(0,i.jsx)(Pe,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,mobileMinHeight:`260px`,mobileMaxHeight:`400px`,desktopMinHeight:`250px`,desktopMaxHeight:`400px`,children:c}):(0,i.jsx)(Pe,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,mobileMinHeight:`260px`,mobileMaxHeight:`400px`,desktopMinHeight:`250px`,desktopMaxHeight:`400px`,children:(0,i.jsx)(Dr,{setCurrentContent:s,onClose:t})})},ua=({onClick:e,text:t,icon:r,customIcon:a,rightIcon:o,style:s,variant:c=`loginIn`,iconWidth:l=`25px`})=>t?t?(0,i.jsxs)(n.Button,{...s,variant:c,w:`full`,onClick:e,children:[(0,i.jsxs)(n.HStack,{w:`full`,justify:`flex-start`,gap:2,children:[a||(0,i.jsx)(n.Icon,{as:r,w:l,h:l}),(0,i.jsx)(n.Text,{opacity:.9,children:t})]}),o]}):null:(0,i.jsx)(n.Button,{...s,variant:c,w:`full`,onClick:e,children:a||(0,i.jsx)(n.Icon,{as:r,w:`20px`,h:`20px`})}),da=({isLoading:e,buttonStyle:t})=>{let{t:a}=(0,l.useTranslation)(),{loginMethods:o,darkMode:s,privyEcosystemAppIDS:c}=$(),u=o?.some(({method:e})=>e===`ecosystem`),{open:d}=Qa(),{data:f,isLoading:p}=Le(c),m=(0,r.useCallback)(e=>{let t=typeof e==`function`?e(`main`):e;typeof t==`object`&&`type`in t?t.type===`ecosystem`?d({type:`ecosystem`,props:{...t.props,showBackButton:!1}}):t.type===`loading`?d({type:`loading`,props:{...t.props,showBackButton:!1}}):d(t):d(t)},[d]);return(0,i.jsx)(n.Popover,{placement:`bottom-start`,size:`xl`,closeOnBlur:!1,variant:`vechainKitBase`,children:({isOpen:r})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.PopoverTrigger,{children:(0,i.jsxs)(n.Button,{isLoading:e,...t,isActive:r,children:[a(`Login`),(0,i.jsx)(n.Icon,{ml:2,as:_.LuChevronDown,transform:r?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 0.2s`})]})}),(0,i.jsxs)(n.PopoverContent,{children:[(0,i.jsx)(n.PopoverBody,{children:(0,i.jsx)(Tr,{setCurrentContent:m})}),(0,i.jsx)(n.PopoverFooter,{borderTop:`none`,pb:`15px`,children:u&&(0,i.jsx)(n.HStack,{justify:`center`,w:`full`,children:(0,i.jsx)(Er,{isDark:s,appsInfo:Object.values(f||{}),isLoading:p,setCurrentContent:m})})})]})]})})},fa=({variant:e})=>{let{account:r}=Z();return r?e===`icon`?null:e===`iconAndDomain`?r.domain?(0,i.jsx)(n.Text,{fontSize:`sm`,children:t.G(r?.domain??``,16,0)}):(0,i.jsx)(n.Text,{fontSize:`sm`,children:t.W(r.address??``,6,4)}):e===`iconDomainAndAssets`?(0,i.jsxs)(n.HStack,{spacing:4,children:[(0,i.jsxs)(n.VStack,{spacing:0,alignItems:`flex-start`,children:[r.domain&&(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,children:t.G(r?.domain??``,16,0)}),(0,i.jsx)(n.Text,{fontSize:r.domain?`xs`:`sm`,opacity:r.domain?.5:1,"data-testid":`trimmed-address`,children:t.W(r.address??``,4,4)})]}),(0,i.jsx)(Jr,{address:r.address??``,maxIcons:3})]}):(0,i.jsxs)(n.VStack,{spacing:0,alignItems:`flex-start`,children:[r.domain&&(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,children:t.G(r?.domain??``,16,0)}),(0,i.jsx)(n.Text,{fontSize:r.domain?`xs`:`sm`,opacity:r.domain?.5:1,children:t.W(r.address??``,4,4)})]}):(0,i.jsx)(n.Spinner,{})},pa=({mobileVariant:e=`iconAndDomain`,desktopVariant:t=`iconAndDomain`,onOpen:r,buttonStyle:a={}})=>{let{account:o}=Z(),[s]=(0,n.useMediaQuery)(`(min-width: 768px)`);return(0,i.jsx)(n.Button,{...a,onClick:r,w:`full`,minH:`45px`,maxW:`fit-content`,"data-testid":`wallet-button`,children:(0,i.jsxs)(n.HStack,{w:`full`,minW:`fit-content`,children:[(0,i.jsx)(Oc,{wallet:o,props:{width:30,height:30,minWidth:30,minHeight:30}}),(0,i.jsx)(fa,{variant:s?t:e})]})})},ma=({mobileVariant:e=`iconAndDomain`,desktopVariant:t=`iconDomainAndAddress`,buttonStyle:r,connectionVariant:a=`modal`,label:o=`Login`})=>{let{darkMode:s,loginMethods:c,theme:l}=$(),u=c?.length===1&&c[0].method===`dappkit`,{connection:d,account:f}=Z(),{setSource:m,connectV2:h}=(0,p.useWallet)(),[g]=(0,n.useMediaQuery)(`(max-width: 768px)`),_=(0,n.useDisclosure)(),v=(0,n.useDisclosure)(),{open:y}=(0,p.useWalletModal)();return(0,i.jsxs)(Ja,{darkMode:s,theme:l,children:[d.isConnected&&f?(0,i.jsx)(pa,{mobileVariant:e,desktopVariant:t,onOpen:v.onOpen,buttonStyle:r}):a===`popover`&&!g?(0,i.jsx)(da,{isLoading:d.isLoading,buttonStyle:r}):(0,i.jsx)(n.Button,{isLoading:d.isLoading,onClick:()=>{d.isInAppBrowser?(m(`veworld`),h(null)):u?y():_.onOpen()},...r,children:o}),(0,i.jsx)(la,{isOpen:_.isOpen,onClose:_.onClose}),(0,i.jsx)(aa,{isOpen:v.isOpen,onClose:v.onClose})]})},ha=()=>{let{darkMode:e}=$(),t=25/2,[r]=(0,n.useMediaQuery)(`(max-width: 280px)`),[a]=(0,n.useMediaQuery)(`(max-width: 380px)`);return(0,i.jsxs)(n.HStack,{spacing:0,ml:0,children:[(0,i.jsx)(n.Circle,{size:`25px`,borderRadius:`full`,bg:`#F8F8F8`,p:2,alignItems:`center`,justifyContent:`center`,zIndex:3,children:(0,i.jsx)(n.Icon,{as:D.FcGoogle,fontSize:`20px`})}),!r&&(0,i.jsx)(n.Circle,{ml:`-${t}px`,size:`25px`,borderRadius:`full`,bg:`black`,p:2,alignItems:`center`,justifyContent:`center`,zIndex:2,children:(0,i.jsx)(n.Icon,{as:M.FaXTwitter,color:`white`,fontSize:`20px`})}),!r&&!a&&(0,i.jsx)(n.Circle,{ml:`-${t}px`,zIndex:1,size:`25px`,borderRadius:`full`,bg:`#5865F2`,p:2,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Icon,{as:M.FaDiscord,color:`white`,fontSize:`20px`})}),(0,i.jsx)(n.Icon,{zIndex:1,as:_.LuPlus,color:e?`black`:`white`,fontSize:`15px`})]})},ga=({status:e,txReceipt:a,txError:o,onTryAgain:s,description:c,onClose:u})=>{let{t:d}=(0,l.useTranslation)(),{network:f}=$(),p=t.bt(f.type).explorerUrl,m=(0,r.useMemo)(()=>o?o.reason||d(`Something went wrong. Please try again.`):null,[o,d]),h=(()=>{let t=e===`waitingConfirmation`;switch(t&&(e=`pending`),e){case`pending`:return{icon:(0,i.jsx)(n.Spinner,{size:`md`,"data-testid":`pending-spinner-toast`}),title:d(t?`Processing transaction...`:`Waiting for confirmation...`),closeDisabled:!0,description:t?d(`Transaction is being processed, it can take up to 15 seconds.`):c??d(`Please confirm the transaction in your wallet.`)};case`error`:return{icon:(0,i.jsx)(n.Icon,{as:_.LuCircleAlert,color:`red.500`,fontSize:`40px`,"data-testid":`error-icon-toast`}),title:d(`Transaction failed`),closeDisabled:!1,description:m};case`success`:return{icon:(0,i.jsx)(n.Icon,{as:_.LuCircleCheck,color:`green.500`,fontSize:`40px`,"data-testid":`success-icon-toast`}),title:d(`Transaction successful!`),closeDisabled:!1,description:void 0};case`ready`:return{icon:null,title:d(`Confirm transaction`),closeDisabled:!1,description:c??d(`Confirm the transaction in your wallet to complete it.`)};default:return{icon:null,title:``,closeDisabled:!1,description:``}}})();return h?(0,i.jsxs)(n.HStack,{justify:`space-between`,alignItems:`flex-start`,w:`full`,children:[(0,i.jsx)(n.VStack,{spacing:4,children:(0,i.jsxs)(n.HStack,{spacing:4,w:`full`,justifyContent:`flex-start`,alignItems:`flex-start`,children:[h.icon,(0,i.jsxs)(n.VStack,{w:`full`,align:`flex-start`,spacing:2,children:[(0,i.jsxs)(n.VStack,{spacing:1,w:`full`,children:[(0,i.jsx)(n.Heading,{w:`full`,size:`xs`,children:h.title}),h.description&&(0,i.jsx)(n.Text,{fontSize:`xs`,children:h.description})]}),(e===`error`||e===`ready`)&&(0,i.jsx)(n.Button,{size:`xs`,onClick:s,children:e===`error`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Icon,{mr:2,as:_.LuRefreshCw}),d(`Try again`)]}):d(`Confirm`)}),a&&e!==`pending`&&(0,i.jsxs)(n.Link,{fontSize:`xs`,isExternal:!0,href:`${p}/${a.meta.txID}`,children:[d(`View on explorer`),` `,(0,i.jsx)(n.Icon,{as:_.LuExternalLink})]})]})]})}),!h.closeDisabled&&(0,i.jsx)(n.IconButton,{onClick:u,size:`sm`,borderRadius:`full`,"aria-label":`Close`,icon:(0,i.jsx)(n.Icon,{as:_.LuX,boxSize:4})})]}):null},_a=({isOpen:e,onClose:t,status:r,txReceipt:a,txError:o,onTryAgain:s,description:c})=>{let{darkMode:l}=$();return e?(0,i.jsx)(n.Box,{position:`fixed`,bottom:`5`,left:`5`,zIndex:`11111`,bg:l?`#1f1f1e`:`white`,borderRadius:`md`,p:5,boxShadow:`lg`,maxW:`sm`,minW:`300px`,children:(0,i.jsx)(ga,{status:r,txReceipt:a,txError:o,onTryAgain:s,description:c,onClose:t})}):null},va=({txId:e,title:r,description:a,onDone:o,showSocialButtons:s=!1})=>{let{t:c}=(0,l.useTranslation)(),{network:u}=$(),d=t.bt(u.type).explorerUrl,f=`${d}/${e}`,p=(0,n.useToken)(`colors`,`vechain-kit-success`);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`center`,p:6,spacing:3,children:[(0,i.jsx)(g.motion.div,{transition:{duration:4,ease:`easeInOut`,repeat:1/0},animate:{scale:[1,1.1,1]},children:(0,i.jsx)(n.Icon,{as:_.LuCircleCheck,fontSize:`100px`,color:p})}),a&&(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:a}),s&&e&&(0,i.jsxs)(n.VStack,{mt:2,children:[(0,i.jsx)(n.Text,{fontSize:`xs`,children:c(`Share on`)}),(0,i.jsx)(ea,{description:f})]})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.VStack,{width:`full`,spacing:4,children:[(0,i.jsx)(n.Button,{onClick:o,variant:`vechainKitSecondary`,width:`full`,children:c(`Done`)}),e&&(0,i.jsx)(n.Link,{href:`${d}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:(0,i.jsxs)(n.HStack,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[(0,i.jsx)(n.Text,{children:c(`View transaction on the explorer`)}),(0,i.jsx)(n.Icon,{size:16,as:_.LuExternalLink})]})})]})})]})},ya=({setCurrentContent:e,handleClose:t,style:r})=>{let{t:a}=(0,l.useTranslation)(),{smartAccount:o,connectedWallet:s}=Z(),{data:c}=Ms(o?.address??``,s?.address??``,3),{sendTransaction:u,isTransactionPending:d,isWaitingForWalletConfirmation:f,error:p,txReceipt:m}=Ls({smartAccountAddress:o?.address??``,targetVersion:3,onSuccess:()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:m?.meta.txID,title:a(`Upgrade Successful!`),description:a(`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(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Account upgrade required`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:10,align:`stretch`,justifyContent:`center`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:a(`To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).`)}),(0,i.jsxs)(n.HStack,{align:`center`,justifyContent:`space-evenly`,rounded:`md`,children:[(0,i.jsxs)(n.Box,{position:`relative`,display:`inline-block`,children:[(0,i.jsx)(n.Circle,{size:`60px`,bg:`gray.200`,children:(0,i.jsx)(n.Image,{src:o?.image,alt:a(`Profile Picture`),w:`100%`,h:`100%`,borderRadius:`full`,objectFit:`cover`})}),(0,i.jsx)(n.Heading,{position:`absolute`,top:`-5`,right:`-5`,color:`#D23F63`,fontSize:`28px`,children:`v1`})]}),(0,i.jsx)(n.Icon,{as:_.LuArrowRight,color:`#3DBA67`}),(0,i.jsxs)(n.Box,{position:`relative`,display:`inline-block`,children:[(0,i.jsx)(n.Circle,{size:`60px`,bg:`gray.200`,children:(0,i.jsx)(n.Image,{src:o?.image,alt:a(`Profile Picture`),w:`100%`,h:`100%`,borderRadius:`full`,objectFit:`cover`})}),(0,i.jsx)(n.Heading,{position:`absolute`,top:`-5`,right:`-5`,color:`#3DBA67`,fontSize:`28px`,children:`v3`})]})]}),(0,i.jsxs)(n.Alert,{status:`info`,borderRadius:`md`,children:[(0,i.jsx)(n.AlertIcon,{}),(0,i.jsxs)(n.Box,{children:[(0,i.jsx)(n.AlertTitle,{fontSize:`sm`,children:a(`Benefits of this upgrade:`)}),(0,i.jsx)(n.AlertDescription,{fontSize:`xs`,children:(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,mt:1,children:[(0,i.jsxs)(n.Text,{fontSize:`xs`,lineHeight:`1.2`,children:[`• `,a(`Improved security features`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`• `,a(`Better transaction handling`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`•`,` `,a(`Enhanced compatibility with dApps`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`•`,` `,a(`Reduced gas costs for operations`)]})]})})]})]})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsx)(n.VStack,{spacing:3,w:`full`,children:(0,i.jsx)(kc,{style:r,buttonText:a(c?`Upgrade account`:`Account already upgraded`),onConfirm:async()=>{try{await u()}catch(e){console.error(`Failed to upgrade Smart Account:`,e)}},isTxWaitingConfirmation:f,isSubmitting:d,transactionPendingText:a(`Upgrading...`),txReceipt:m,transactionError:p,isDisabled:!c})})})]})},ba=({isOpen:e,onClose:t,style:n})=>{let[a,o]=(0,r.useState)(`upgrade-smart-account`);return(0,r.useEffect)(()=>{e&&o(`upgrade-smart-account`)},[e]),(0,i.jsx)(Pe,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,size:n?.modalSize,children:(()=>{if(typeof a==`object`)switch(a.type){case`successful-operation`:return(0,i.jsx)(va,{...a.props})}else if(a===`upgrade-smart-account`)return(0,i.jsx)(ya,{setCurrentContent:o,handleClose:t,style:n})})()})},{definePartsStyle:xa,defineMultiStyleConfig:Sa}=(0,n.createMultiStyleConfigHelpers)(L.modalAnatomy.keys),Ca=e=>({vechainKitBase:xa({dialog:{scrollbarWidth:`none`,overflow:`scroll`,overflowX:`hidden`,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:{...e.buttons.button.hoverBg?{bg:e.buttons.button.hoverBg}:{opacity:.8}},_active:{bg:e.buttons.button.bg,opacity:.8}},header:{w:`full`,color:e.colors.text.primary,fontSize:e.fonts.sizes.large,fontWeight:e.fonts.weights.bold,textAlign:`center`,paddingBottom:5,paddingTop:5}})}),wa=e=>Sa({variants:Ca(e),defaultProps:{variant:`vechainKitBase`}}),{definePartsStyle:Ta,defineMultiStyleConfig:Ea}=(0,n.createMultiStyleConfigHelpers)(L.cardAnatomy.keys),Da=e=>({vechainKitBase:Ta({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}`}}),vechainKitWalletCard:Ta({container:{backgroundColor:e.colors.background.card,borderRadius:e.borders.radius.medium,width:`full`,cursor:`pointer`,position:`relative`}}),featureAnnouncement:Ta({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:Ta({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`}})}),Oa=e=>Ea({variants:Da(e),defaultProps:{variant:`vechainKitBase`}}),ka=(0,n.defineStyle)({borderRadius:`12px`}),Aa=e=>({loginIn:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({px:4,width:`full`,height:`60px`,rounded:e.buttons.button.rounded??e.borders.radius.large,bg:e.colors.error+`1f`,color:e.colors.error,border:e.buttons.button.border===`none`?`none`:e.buttons.button.border,backdropFilter:e.buttons.button.backdropFilter,_hover:{opacity:.8,_disabled:{opacity:.5,bg:e.colors.error+`1f`}},_disabled:{opacity:.5,cursor:`not-allowed`},transition:`all 0.2s`})),vechainKitHeaderIconButtons:(0,n.defineStyle)(()=>({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`,rounded:`full`,mt:`8px`})),actionButton:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({color:e.colors.text.primary,_hover:{color:e.colors.text.secondary,textDecoration:`underline`},_active:{color:e.colors.text.primary},transition:`all 0.2s`}))}),ja=e=>(0,n.defineStyleConfig)({baseStyle:ka,variants:Aa(e)}),Ma=e=>(0,n.defineStyleConfig)({baseStyle:ka,variants:Aa(e)}),Na=e=>(0,n.defineStyleConfig)({baseStyle:ka,variants:Aa(e),defaultProps:{variant:`vechainKitHeaderIconButtons`}}),{definePartsStyle:Pa,defineMultiStyleConfig:Fa}=(0,n.createMultiStyleConfigHelpers)(L.popoverAnatomy.keys),Ia=e=>({vechainKitBase:Pa({popper:{zIndex:1e3},content:{borderRadius:e.borders.radius.xl,border:e.colors.border.modal,backgroundColor:e.colors.background.modal,backdropFilter:e.effects.backdropFilter.modal,boxShadow:`0px 4px 16px rgba(0, 0, 0, 0.12)`,minWidth:`380px`},body:{padding:`16px`}})}),La=e=>Fa({variants:Ia(e),defaultProps:{variant:`vechainKitBase`}}),Ra=(e,t)=>({useSystemColorMode:!1,disableTransitionOnChange:!1,components:{Modal:wa(t),Card:Oa(t),Button:ja(t),IconButton:Ma(t),CloseButton:Na(t),Popover:La(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,"vechain-kit-button-primary-bg":t.buttons.primaryButton.bg,"vechain-kit-button-primary-color":t.buttons.primaryButton.color},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:n.theme.fonts,fontSizes:{...n.theme.fontSizes,sm:t.fonts.sizes.small,md:t.fonts.sizes.medium,lg:t.fonts.sizes.large},fontWeights:{...n.theme.fontWeights,normal:t.fonts.weights.normal,medium:t.fonts.weights.medium,bold:t.fonts.weights.bold},colors:n.theme.colors,space:n.theme.space}),za=(e,t)=>{let r=(0,n.extendTheme)(Ra(e,me(pe(e),he(t,e))));return r.styles.global=()=>({}),r.__cssVars&&(r.__cssVars.global=()=>({})),r},{ToastContainer:Ba}=(0,n.createStandaloneToast)(),Va=()=>(0,I.default)({key:`vechain-kit`,prepend:!0}),Ha=({bodyFont:e,headingFont:t})=>(0,i.jsx)(F.Global,{styles:F.css`
127
+ }`,o=await fetch(i,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({operationName:`Registrations`,query:a,extensions:{}})});if(!o.ok)throw Error(`Failed to fetch domains`);let s=await o.json();return s.data&&s.data.domains&&(s.data.domains=s.data.domains.filter(e=>!e.name.endsWith(`addr.reverse`))),bt.parse(s.data)},St=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,e,t],Ct=(e,t)=>{let{network:n}=$();return(0,p.useQuery)({queryKey:St(e,t),queryFn:()=>xt(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})},wt=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR`,e,t],Tt=e=>{let{network:t}=$();return(0,p.useQuery)({queryKey:wt(e??``,t.type),queryFn:async()=>e?(0,v.getAvatar)(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})},Et=new o.Interface([`function resolver(bytes32 node) returns (address resolverAddress)`,`function text(bytes32 node, string key) view returns (string)`]),Dt=async(e,n,r)=>{if(!r)return{};let i=(0,o.namehash)(r);try{let r=new URL(`accounts/*`,e),[{data:a,reverted:o}]=await(await fetch(r,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:t.bt(n).vetDomainsContractAddress,data:Et.encodeFunctionData(`resolver`,[i])}]})})).json();if(o)return{};let{resolverAddress:s}=Et.decodeFunctionResult(`resolver`,a);return(await(await fetch(r,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:t.S.map(e=>({to:s,data:Et.encodeFunctionData(`text`,[i,e])}))})})).json()).reduce((e,{data:n,reverted:r},i)=>{if(!r&&n&&n!==`0x`)try{let r=Et.decodeFunctionResult(`text`,n)[0];r&&(e[t.S[i]]=r)}catch(e){console.error(`Failed to decode text record for ${t.S[i]}:`,e)}return e},{})}catch(e){throw console.error(`Error fetching text records:`,e),e}},Ot=(e,t)=>[`VECHAIN_KIT_TEXT_RECORDS`,e,t],kt=e=>{let{network:n}=$(),r=n.nodeUrl??t.bt(n.type).nodeUrl;return(0,p.useQuery)({queryKey:Ot(e,n.type),queryFn:()=>Dt(r,n.type,e),enabled:!!e&&!!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})},At=new o.Interface([`function resolver(bytes32 node) returns (address resolverAddress)`,`function setText(bytes32 node, string key, string value) external`]),jt=(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=(0,o.namehash)(r);n.push({to:e,data:At.encodeFunctionData(`setText`,[t,i,a]),value:`0`,comment:`Update ${i} record`})}return n},Mt=({onSuccess:e,onError:t,signerAccountAddress:n,resolverAddress:i}={})=>{let a=(0,r.useCallback)(e=>{if(!i)throw Error(`Resolver address is required`);return jt(i,e)},[i]),o=lr({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{...o,clauses:a,sendTransaction:async e=>o.sendTransaction(a(e))}},Nt=e=>[`VECHAIN_KIT`,`RESOLVER_ADDRESS`,e],Pt=e=>{let{network:n}=$();return cs({address:t.bt(n.type).vetDomainsContractAddress,abi:y.VetDomainsRegistry__factory.abi,method:`resolver`,args:[e?(0,b.namehash)(e):`0x`],queryOptions:{select:e=>e[0],enabled:!!e}})},Ft={Mugshot:new URL(`mugshot.png`,e.w).toString(),Greencart:new URL(`greencart.png`,e.w).toString(),Cleanify:new URL(`cleanify.png`,e.w).toString(),EVearn:new URL(`evearn.png`,e.w).toString()},It=`vechain_kit_cross_app_connection`,Lt=()=>{let e=t.dt(`vechain_kit_cross_app_connection`);if(!e)return null;try{let t=JSON.parse(e)?.ecosystemApp?.name;return t?Ft[t]??null:null}catch{return null}},Rt=e=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR_OF_ADDRESS`,e],zt=e=>{let{network:n}=$();return(0,p.useQuery)({queryKey:Rt(e),queryFn:async()=>{if(!e||!n.nodeUrl)return Lt()??t.U(e??``);if(n.type!==`main`&&n.type!==`test`)return Lt()??t.U(e);let r=await(0,v.getAddressDomain)(e,{networkUrl:n.nodeUrl});return r&&await(0,v.getAvatar)(r,{networkUrl:n.nodeUrl})||(Lt()??t.U(e??``))},enabled:!!e&&!!n.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})},Bt=new o.Interface([`function resolver(bytes32 node) returns (address resolverAddress)`,`function text(bytes32 node, string key) returns (string avatar)`]),Vt=new o.Interface([`function tokenURI(uint256 tokenId) view returns (string)`,`function uri(uint256 id) view returns (string)`]),Ht=async(e,n,r)=>{if(!r)throw Error(`Name is required`);let i=(0,o.namehash)(r);try{let r=new URL(`accounts/*`,n),[{data:a,reverted:o}]=await(await fetch(r,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:t.bt(e).vetDomainsContractAddress,data:Bt.encodeFunctionData(`resolver`,[i])}]})})).json();if(o)return null;let{resolverAddress:s}=Bt.decodeFunctionResult(`resolver`,a),[{data:c,reverted:l}]=await(await fetch(r,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:[{to:s,data:Bt.encodeFunctionData(`text`,[i,`avatar`])}]})})).json();if(l||c===`0x`)return null;try{let{avatar:t}=Bt.decodeFunctionResult(`text`,c),r=t===``?null:t;return r?Wt(r,e,n):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}},Ut=(e,t)=>[`VECHAIN_KIT`,`VET_DOMAINS`,`AVATAR`,`LEGACY`,e,t];async function Wt(e,n,r){try{if(e.startsWith(`http`)||e.startsWith(`ipfs://`)||e.startsWith(`ar://`))return t.g(e,n)||null;let i=e.match(/eip155:(\d+)\/(?:erc721|erc1155):([^/]+)\/(\d+)/);if(i){let[,a,s,c]=i,l=e.includes(`erc1155`);if(!a||!s||c===void 0)return null;let u=[{to:s,data:Vt.encodeFunctionData(l?`uri`:`tokenURI`,[BigInt(c||0)])}],d=new URL(`accounts/*`,r),[{data:f,reverted:p}]=await fetch(d,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({clauses:u})}).then(e=>e.json());if(p)return console.error(`Failed to fetch tokenURI`),null;let m=``;try{m=Vt.decodeFunctionResult(l?`uri`:`tokenURI`,f)[0]}catch(e){console.error(`Failed to decode avatar data:`,e),m=(0,o.toUtf8String)(f)}m=t.g(m,n)||m,l&&(m=m.replace(`{id}`,(0,o.zeroPadValue)((0,o.toBeHex)(BigInt(c||0)),32).slice(2)));let h=await fetch(m);if(!h.ok)return console.error(`Failed to fetch metadata`),null;let g=await h.json(),_=g.image||g.image_url||g.image_data;return _?t.g(_,n)||_:(console.error(`No image URL in metadata`),null)}return null}catch(e){return console.error(`Error parsing avatar record:`,e),null}}const Gt=e=>{let{network:n}=$(),r=n.nodeUrl??t.bt(n.type).nodeUrl;return(0,p.useQuery)({queryKey:Ut(e??``,n.type),queryFn:async()=>e?Ht(n.type,r,e):null,enabled:!!e&&!!r&&!!n.type})},Kt=y.VetDomainsReverseRegistrar__factory.createInterface(),qt=(e,n)=>{let r=[];return r.push({to:t.bt(n.type).vetDomainsReverseRegistrarAddress,value:`0x0`,data:Kt.encodeFunctionData(`setName`,[``]),comment:`Unsetting your current VeChain nickname of the account ${t.W(e?.address??``,4,4)}`,abi:Kt.getFunction(`setName`)}),r},Jt=({onSuccess:e,onError:t})=>{let n=(0,p.useQueryClient)(),{account:i}=X(),{network:a}=$(),o=(0,r.useCallback)(()=>qt(i,a),[i,a]),s=(0,r.useCallback)(async()=>{await ot(n,i?.address??``,``,``,``,a.type),e?.()},[e,n,i,a.type]),c=lr({signerAccountAddress:i?.address??``,privyUIOptions:{title:`Sign to unset your VeChain nickname`,description:`Unset your current VeChain nickname`,buttonText:`Sign to continue`},onTxConfirmed:s,onTxFailedOrCancelled:t});return{...c,clauses:o,sendTransaction:async()=>c.sendTransaction(o())}},Yt=e=>{let{network:n,allowCommunityTokens:i}=$(),a=t.bt(n.type),{data:o,isLoading:s}=vs(e),{data:c,isLoading:l}=yn(e),{data:u,isLoading:d}=Tn(e),{data:f,isLoading:p}=Cn(a.veDelegateTokenContractAddress,e),{data:m,isLoading:h}=Cn(a.sassContractAddress,e,{enabled:i}),g=xn(e),_=g.map(e=>e.data).filter(Boolean),v=g.some(e=>e.isLoading);return{balances:(0,r.useMemo)(()=>{if(!e)return[];let t={vet:`0x`,vtho:a.vthoContractAddress,b3tr:a.b3trContractAddress,vot3:a.vot3ContractAddress,veDelegate:a.veDelegate},n=[{address:t.vet,symbol:`VET`,balance:o?.balance||`0`},{address:t.vtho,symbol:`VTHO`,balance:o?.energy||`0`},{address:t.b3tr,symbol:`B3TR`,balance:c?.scaled??`0`},{address:t.vot3,symbol:`VOT3`,balance:u?.scaled??`0`},{address:t.veDelegate,symbol:`veDelegate`,balance:f?.scaled??`0`}],r=_.map(e=>({address:e?.address||``,symbol:e?.symbol||``,balance:e?.scaled||`0`})),s=i?[{address:a.sassContractAddress,symbol:`SASS`,balance:m?.scaled??`0`}]:[];return[...n,...r,...s]},[e,o,c,u,f,_,i,m,a.sassContractAddress,n.type]),isLoading:s||l||d||p||i&&h||v}},Xt={B3TR:`0x623374722d757364000000000000000000000000000000000000000000000000`,VET:`0x7665742d75736400000000000000000000000000000000000000000000000000`,VTHO:`0x7674686f2d757364000000000000000000000000000000000000000000000000`,GBP:`0x6762702d75736400000000000000000000000000000000000000000000000000`,EUR:`0x657572742d757364000000000000000000000000000000000000000000000000`},Zt=async(e,n,r)=>{let i=await e.contracts.load(t.bt(r).oracleContractAddress,y.OracleVechainEnergy__factory.abi).read.getLatestValue(Xt[n]);if(!i)throw Error(`Failed to get price of ${n}`);return new a.BigNumber(i[0].toString()).div(0xe8d4a51000).toNumber()},Qt=e=>[`VECHAIN_KIT_PRICE`,e],$t=e=>{let t=(0,f.useThor)(),{network:n}=$();return(0,p.useQuery)({queryKey:Qt(e),queryFn:async()=>Zt(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})},en=()=>{let{network:e}=$(),n=t.bt(e.type),{data:i,isLoading:a}=$t(`VET`),{data:o,isLoading:s}=$t(`VTHO`),{data:c,isLoading:l}=$t(`B3TR`),{data:u,isLoading:d}=$t(`EUR`),{data:f,isLoading:p}=$t(`GBP`);return{prices:(0,r.useMemo)(()=>{let e={vet:`0x`,vtho:n.vthoContractAddress,b3tr:n.b3trContractAddress,vot3:n.vot3ContractAddress,veDelegate:n.veDelegate,SASS:n.sassContractAddress};return{[e.vet]:i||0,[e.vtho]:o||0,[e.b3tr]:c||0,[e.vot3]:c||0,[e.veDelegate]:c||0,[e.SASS]:0}},[i,o,c,n.vthoContractAddress,n.b3trContractAddress,n.vot3ContractAddress,n.veDelegate,n.sassContractAddress]),exchangeRates:(0,r.useMemo)(()=>({eurUsdPrice:u||1,gbpUsdPrice:f||1}),[u,f]),isLoading:a||s||l||d||p}},tn=(e,t,n)=>{switch(t){case`eur`:return e/n.eurUsdPrice;case`gbp`:return e/n.gbpUsdPrice;default:return e}},nn=(e,t=`en`,n)=>{let r={style:`currency`,minimumFractionDigits:2,maximumFractionDigits:2,currency:n?.currency??`usd`,...n};return new Intl.NumberFormat(K[t],r).format(e)},rn=(e,t)=>nn(e,pe.resolvedLanguage,{notation:`compact`,compactDisplay:`short`,currency:t?.currency??`usd`,...t}),an=`vechain_kit_currency`,on=[`usd`,`eur`,`gbp`],sn=()=>{let{currentCurrency:e,setCurrency:n}=$();return(0,r.useEffect)(()=>{t.yt(`vechain_kit_currency`,e)},[e]),{currentCurrency:e,allCurrencies:on,changeCurrency:e=>{if(!on.includes(e)){console.error(`Invalid currency: ${e}`);return}n(e)}}},cn=({address:e=``})=>{let{balances:t,isLoading:n}=Yt(e),{prices:i,exchangeRates:a,isLoading:o}=en(),{currentCurrency:s}=sn(),c=(0,r.useMemo)(()=>t.map(e=>{let t=i[e.address]||0,n=Number(e.balance)*t,r=tn(n,s,a);return{...e,priceUsd:t,valueUsd:n,valueInCurrency:r}}),[t,i,s,a]),l=(0,r.useMemo)(()=>[...c].sort((e,t)=>t.valueInCurrency-e.valueInCurrency),[c]);return{tokens:c,sortedTokens:l,tokensWithBalance:(0,r.useMemo)(()=>l.filter(e=>Number(e.balance)>0),[l]),isLoading:n||o}},ln=({address:e=``})=>{let{tokensWithBalance:t,isLoading:n}=cn({address:e}),{currentCurrency:i}=sn(),a=(0,r.useMemo)(()=>t.reduce((e,t)=>e+t.valueInCurrency,0),[t]);return{totalBalanceInCurrency:a,totalBalanceUsd:(0,r.useMemo)(()=>t.reduce((e,t)=>e+t.valueUsd,0),[t]),formattedBalance:(0,r.useMemo)(()=>rn(a,{currency:i}),[a,i]),isLoading:n,hasAnyBalance:t.length>0}},un=y.XAllocationVoting__factory.abi,dn=`currentRoundId`,fn=e=>as({abi:un,address:e,method:dn}),pn=()=>{let{network:e}=$(),n=t.bt(e.type).xAllocationVotingContractAddress;return cs({abi:un,address:n,method:dn,args:[],queryOptions:{select:e=>e[0].toString()}})},mn=async(e,t)=>(0,v.getTokenInfo)(e,{networkUrl:t}),hn=e=>[`VECHAIN_KIT_CUSTOM_TOKEN_INFO`,e],gn=e=>{let{network:t}=$();return(0,p.useQuery)({queryKey:hn(e),queryFn:async()=>{if(!e)throw Error(`Token address is required`);if(!t.nodeUrl)throw Error(`Network node URL is required`);return mn(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})},_n=()=>{let[e,n]=wc(Cc.CUSTOM_TOKENS,[]),{network:r}=$(),i=async t=>{if(!o(t)&&!s(t)){if(!r.nodeUrl)throw Error(`Network node URL is required`);let i={...await mn(t,r.nodeUrl),address:t};n([...e,i])}},a=t=>{n(e.filter(e=>e.address!==t))},o=n=>e.some(e=>t.k(e.address,n)),s=e=>{let n={vet:`0x`,vtho:t.bt(r.type).vthoContractAddress,b3tr:t.bt(r.type).b3trContractAddress,vot3:t.bt(r.type).vot3ContractAddress,veDelegate:t.bt(r.type).veDelegate};return Object.values(n).includes(e)};return{customTokens:e,addToken:i,removeToken:a,isTokenIncluded:o,isDefaultToken:s}},vn=e=>[`VEBETTERDAO_BALANCE`,e,`B3TR`],yn=e=>{let{network:n}=$();return(0,p.useQuery)({queryKey:vn(e),queryFn:async()=>{if(!e)throw Error(`Address is required`);let r=await(0,v.getB3trBalance)(e,{networkUrl:n.nodeUrl});if(!r)throw Error(`Failed to get b3tr balance`);let i=r[0];return t.H(i)},enabled:!!e&&!!n.type})},bn=(e,t)=>[`VECHAIN_KIT_BALANCE`,t,`CUSTOM_TOKEN`,e],xn=e=>{let{network:n}=$(),{customTokens:r}=_n();return(0,p.useQueries)({queries:r.map(r=>({queryKey:bn(r.address,e),queryFn:async()=>{if(!r.address)throw Error(`Token address is required`);if(!e)throw Error(`Address is required`);if(!n.nodeUrl)throw Error(`Network node URL is required`);let i=await(0,v.getErc20Balance)(r.address,e,{networkUrl:n.nodeUrl});if(!i)throw Error(`Failed to get token balance`);let a=t.H(i[0]);return{...r,...a}}}))})},Sn=(e,t)=>[`VECHAIN_KIT`,`BALANCE`,`ERC20`,e,t],Cn=(e,n,r)=>{let{network:i}=$(),a=!!n&&!!i.type;return(0,p.useQuery)({queryKey:Sn(e,n),queryFn:async()=>{if(!n)throw Error(`Address is required`);let r=await(0,v.getErc20Balance)(e,n,{networkUrl:i.nodeUrl});if(!r)throw Error(`Failed to get vot3 balance`);let a=r[0];return t.H(a)},enabled:a&&(r?.enabled??!0)})},wn=e=>[`VEBETTERDAO_BALANCE`,e,`VOT3`],Tn=e=>{let{network:n}=$();return(0,p.useQuery)({queryKey:wn(e),queryFn:async()=>{if(!e)throw Error(`Address is required`);let r=await(0,v.getVot3Balance)(e,{networkUrl:n.nodeUrl});if(!r)throw Error(`Failed to get vot3 balance`);let i=r[0];return t.H(i)},enabled:!!e&&!!n.type})},En=(e,t)=>[`VECHAIN_KIT`,`IS_PERSON`,e,t],Dn=e=>{let{network:t}=$();return(0,p.useQuery)({queryKey:En(e??``,t.type),queryFn:async()=>{if(!e)throw Error(`User address is required`);return(0,v.getIsPerson)(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})},On=y.XAllocationVoting__factory.abi,kn=`getAppsOfRound`,An=(e,n)=>ss({abi:On,address:t.bt(n).xAllocationVotingContractAddress,method:kn,args:[BigInt(e??0)]}),jn=e=>{let{network:n}=$(),r=t.bt(n.type).xAllocationVotingContractAddress;return cs({abi:On,address:r,method:kn,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()}))}})},Mn=y.XAllocationPool__factory.abi,Nn=`getAppShares`,Pn=e=>[`VECHAIN_KIT`,`XApps`,`Shares`,e],Fn=(e,n)=>{let r=(0,f.useThor)(),{network:i}=$(),a=t.bt(i.type).xAllocationPoolContractAddress;return(0,p.useQuery)({queryKey:Pn(n),queryFn:async()=>(await t.r({thor:r,calls:e.map(e=>({abi:Mn,functionName:`getAppShares`,address:a,args:[n,e]}))})).map((t,n)=>({app:e[n],share:Number(t[0]||0)/100,unallocatedShare:Number(t[1]||0)/100})),enabled:!!n&&!!e.length})},In=e=>{let{data:t}=jn(e),n=Fn(t?.map(e=>e.id)??[],e);return{data:(0,r.useMemo)(()=>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}},Ln=({error:e,mobileBrowserPopupMessage:n=`Mobile browser blocked the window. Please try again.`,rejectedMessage:r=`Request was cancelled.`,defaultMessage:i=`Operation failed`})=>{let a=e?.message;return w.isMobile&&a&&!t.a(a)?Error(n):a&&t.a(a)?Error(r):e instanceof Error?e:Error(i)},Rn=(0,b.defineChain)({id:`1176455790972829965191905223412607679856028701100105089447013101863`,name:`Vechain`,nativeCurrency:{name:`VeChain`,symbol:`VET`,decimals:18},rpcUrls:{default:{http:[e.E]}},blockExplorers:{default:{name:`Vechain Explorer`,url:e.S},vechainStats:{name:`Vechain Stats`,url:e.b}}}),zn=()=>(0,C.toPrivyWalletConnector)({id:t.at,name:`VeChain`,iconUrl:`https://imagedelivery.net/oHBRUd2clqykxgDWmeAyLg/661dd77c-2f9d-40e7-baa1-f4e24fd7bf00/icon`,smartWalletMode:!1}),Bn=({privyEcosystemAppIDS:e,children:t})=>(0,i.jsx)(S.WagmiProvider,{config:(0,r.useRef)((0,S.createConfig)({chains:[Rn],ssr:!0,connectors:[zn(),...e.map(e=>(0,C.toPrivyWalletConnector)({id:e,name:``,iconUrl:``}))],transports:{[Rn.id]:(0,S.http)()},multiInjectedProviderDiscovery:!1})).current,children:t}),Vn=()=>{let{connectAsync:e,connectors:n}=(0,S.useConnect)(),{signTypedDataAsync:i}=(0,S.useSignTypedData)(),{signMessageAsync:a}=(0,S.useSignMessage)(),{disconnectAsync:o}=(0,S.useDisconnect)(),{isConnected:s}=(0,S.useAccount)(),[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(null),f=(0,r.useCallback)(async()=>{try{s&&(await o(),t.mt()&&window.dispatchEvent(new Event(`wallet_disconnected`)))}catch(e){throw console.error(`Error during logout:`,e),e}},[o,s]);return{login:(0,r.useCallback)(async r=>{try{l(!0),d(null);let i=n.find(e=>e.id===(r||t.at));if(!i)throw Error(`Connector not found`);return await e({connector:i})}catch(e){throw d(e),e}finally{l(!1)}},[e,n]),logout:f,signMessage:(0,r.useCallback)(async e=>{try{return await a({message:e})}catch(e){throw Ln({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.`})}},[a]),signTypedData:(0,r.useCallback)(async e=>{try{return await i(e)}catch(e){throw Ln({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.`})}},[i]),isConnecting:c,connectionError:u}},Hn=(e,n)=>{let{data:r,isLoading:i}=tt(e??``),{data:a,isLoading:o}=zt(e??``),{data:s,isLoading:c}=kt(r?.domain??``),l=s?.header?t.g(s.header,n):null;return{domain:r?.domain,image:a,records:{...s,header:l},isLoading:i||o||c}},Un=()=>{let{network:e}=$(),n=(0,r.useCallback)(e=>({wallets:`vechain_kit_wallets_${e}`,activeWallet:`vechain_kit_active_wallet_${e}`}),[]),i=(0,r.useCallback)(()=>{if(!t.mt())return[];let r=t.dt(n(e.type).wallets);return r?JSON.parse(r):[]},[e.type,n]),a=(0,r.useCallback)(()=>t.mt()?t.dt(n(e.type).activeWallet):null,[e.type,n]),o=(0,r.useCallback)(r=>{if(!t.mt())return;let a=n(e.type),o=i(),s=o.findIndex(e=>e.address.toLowerCase()===r.toLowerCase()),c={address:r,connectedAt:s>=0?o[s].connectedAt:Date.now(),isActive:!1};s>=0?o[s]=c:o.push(c),t.yt(a.wallets,JSON.stringify(o))},[e.type,n,i]),s=(0,r.useCallback)(r=>{if(!t.mt())return;let a=n(e.type),o=i().map(e=>({...e,isActive:e.address.toLowerCase()===r.toLowerCase()}));t.yt(a.wallets,JSON.stringify(o)),t.yt(a.activeWallet,r)},[e.type,n,i]);return{getStoredWallets:i,getActiveWallet:a,saveWallet:o,setActiveWallet:s,removeWallet:(0,r.useCallback)(r=>{if(!t.mt())return;let o=n(e.type),s=i().filter(e=>e.address.toLowerCase()!==r.toLowerCase());t.yt(o.wallets,JSON.stringify(s));let c=a();c&&c.toLowerCase()===r.toLowerCase()&&t.gt(o.activeWallet),t.mt()&&window.dispatchEvent(new CustomEvent(`wallet_removed`,{detail:{address:r}}))},[e.type,n,i,a]),initializeCurrentWallet:(0,r.useCallback)(e=>{t.mt()&&i().length===0&&(o(e),s(e))},[i,o,s])}},X=()=>{let{address:e,isConnected:n,isConnecting:i,isReconnecting:a}=(0,S.useAccount)(),{logout:o}=Vn(),{loading:s}=(0,u.useLoginWithOAuth)({}),{feeDelegation:c,network:l,privy:d}=$(),{user:p,authenticated:m,logout:h,ready:g}=(0,u.usePrivy)(),{data:_}=rc(),{account:v,disconnect:y}=(0,f.useWallet)(),{getConnectionCache:b,clearConnectionCache:x}=Zo(),C=b(),{initializeCurrentWallet:w,getActiveWallet:T,saveWallet:E,getStoredWallets:D}=Un(),O=ps(),k=(0,r.useMemo)(()=>t.mt()?!!window.vechain?.isInAppBrowser:!1,[]),A=!!v,j=m&&!!p,M=j||n,N=j&&d?.appId===t.at||n&&C?.ecosystemApp?.appId===t.at,P=i||a||s||!g,[F,I]=(0,r.useState)(!1),L=n?{type:`privy-cross-app`,displayName:`Ecosystem`}:A?{type:`wallet`,displayName:`Wallet`}:{type:`privy`,displayName:`Social Login`};(0,r.useEffect)(()=>{let e=A||j||n;F!==e&&(I(e),e||(x(),t.mt()&&window.dispatchEvent(new Event(`wallet_disconnected`))))},[A,j,n,x,F]);let R=p?.linkedAccounts?.find(e=>e.type===`wallet`&&e.connectorType===`embedded`)?.address,z=A?v:n?e:R,[B,ee]=(0,r.useState)(()=>A&&!k?T():null);(0,r.useEffect)(()=>{ee(A&&!k?T():null)},[A,k,T]);let[V,H]=(0,r.useState)(!1);(0,r.useEffect)(()=>{if(!t.mt()||!A||k)return;let e=e=>{H(!0),ee(e.detail.address),setTimeout(()=>{H(!1)},1e3)};return window.addEventListener(`wallet_switched`,e),()=>{window.removeEventListener(`wallet_switched`,e)}},[A,k]);let te=D().some(e=>e.address.toLowerCase()===z?.toLowerCase()),ne=A&&!k?T():null,re=V&&ne||ne&&te?ne:z,{data:U}=Us(re??``),ie=A?re:U?.address,W=Hn(ie??``,l.type),ae=Hn(re??``,l.type),oe=Hn(U?.address??``,l.type),{setActiveWallet:se}=Un(),ce=(0,r.useRef)(new Set);(0,r.useEffect)(()=>{if(!t.mt()||!A||k)return;let e=e=>{ce.current.add(e.detail.address.toLowerCase()),setTimeout(()=>{ce.current.delete(e.detail.address.toLowerCase())},5e3)};return window.addEventListener(`wallet_removed`,e),()=>{window.removeEventListener(`wallet_removed`,e)}},[A,k]),(0,r.useEffect)(()=>{if(A&&!k&&z&&W&&!W.isLoading){if(ce.current.has(z.toLowerCase()))return;let e=!D().some(e=>e.address.toLowerCase()===z.toLowerCase());w(z),E(z);let t=!B,n=B&&B.toLowerCase()===z.toLowerCase();(e||t||n)&&!V&&se(z)}},[A,k,z,W?.domain,W?.image,W?.isLoading,w,E,se,B,D]),(0,r.useEffect)(()=>{A&&!k&&B&&B.toLowerCase()===re?.toLowerCase()&&E(B)},[A,k,B,re,E]);let le=ie?{address:ie,domain:W.domain,image:W.image,isLoadingMetadata:W.isLoading,metadata:W.records}:null,ue=z?{address:z,domain:ae.domain,image:ae.image,isLoadingMetadata:ae.isLoading,metadata:ae.records}:null,{data:de}=As(U?.address??``,ue?.address??``),fe=!!U?.address&&!!le?.address&&t.k(U?.address,le?.address),G=(0,r.useCallback)(async()=>{try{I(!1),A?y():j?await h():n&&await o(),x(),t.mt()&&window.dispatchEvent(new Event(`wallet_disconnected`))}catch(e){console.error(`Error during disconnect:`,e)}},[A,y,j,h,n,o,x]);return{account:le,smartAccount:{address:U?.address??``,domain:oe.domain,image:oe.image,isDeployed:U?.isDeployed??!1,isActive:fe,version:de?.version??null,isLoadingMetadata:oe.isLoading,metadata:oe.records},connectedWallet:ue,privyUser:p,connection:{isLoading:P,isConnected:F,isConnectedWithSocialLogin:j,isConnectedWithDappKit:A,isConnectedWithCrossApp:n,isConnectedWithPrivy:M,isConnectedWithVeChain:N,source:L,isInAppBrowser:k,nodeUrl:O,delegatorUrl:c?.delegatorUrl,chainId:_,network:l.type},disconnect:G}},Wn=()=>{let e=(0,p.useQueryClient)(),{account:t}=X();return{refresh:async()=>{let n=t?.address??``;await Promise.all([e.invalidateQueries({queryKey:[`VECHAIN_KIT_BALANCE`,n]}),e.invalidateQueries({queryKey:[`VECHAIN_KIT_PRICE`]})])}}},Gn=()=>{let{switchWallet:e}=(0,f.useWallet)(),{connection:n}=X(),[i,a]=(0,r.useState)(!1),{getStoredWallets:o,setActiveWallet:s,removeWallet:c}=Un(),l=n.isInAppBrowser;return{switchWallet:(0,r.useCallback)(async()=>{if(l){if(!e)return;a(!0);try{await e()}catch{}finally{a(!1)}}else return Promise.resolve()},[e,l]),isSwitching:i,getStoredWallets:o,setActiveWallet:(0,r.useCallback)(e=>{s(e),t.mt()&&window.dispatchEvent(new CustomEvent(`wallet_switched`,{detail:{address:e}}))},[s]),removeWallet:c,isInAppBrowser:l}},Kn=async(e,n)=>{let r=t.g(e,n)||``,i=await fetch(r,{signal:AbortSignal.timeout(2e4)});if(!i.ok)throw Error(`HTTP error! status: ${i.status}`);return await i.json()},qn=y.X2EarnApps__factory.abi,Jn=e=>{let n=(0,f.useThor)(),{network:r}=$();return(0,p.useQuery)({queryKey:[`xAppMetaData`,e],queryFn:async()=>{let i=t.bt(r.type).x2EarnAppsContractAddress,a=n.contracts.load(i,qn),o=(await a.read.app(e))[0][3]?.toString()||``,[s]=await a.read.baseURI();return await Kn(`${s}${o}`,r.type)},enabled:!!e})},Yn=async(e,n,r=!1)=>{if(!n)throw Error(`No URI provided`);let i=t.g(n,e);if(!i)throw Error(`Invalid URI`);let a=await(await fetch(i,{headers:{"X-Project-Id":`vechain-kit`}})).text();return r?JSON.parse(a):a},Xn=(e,t)=>[`VECHAIN_KIT`,`IPFS_METADATA`,e,t],Zn=(e,t=!1)=>{let{network:n}=$();return(0,p.useQuery)({queryKey:Xn(n.type,e),queryFn:()=>Yn(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})},Qn=1024*1024*10,$n=async(e,n)=>{if(!n)throw Error(`IPFS URI is required`);let r=await fetch(t.g(n,e)??``,{headers:{"X-Project-Id":`vechain-kit`}});if(!r.ok)throw Error(`HTTP error! status: ${r.status}`);let i=await r.blob();if(![`image/jpeg`,`image/jpg`,`image/png`,`image/gif`,`image/bmp`,`image/tiff`,`image/webp`,`image/svg+xml`].includes(i.type))throw Error(`Unsupported MIME type: ${i.type}`);if(i.size>Qn)throw Error(`Image size exceeds maximum allowed size`);return new Promise((e,n)=>{let r=new FileReader;r.readAsDataURL(i),r.onloadend=()=>{e({image:r.result,mime:i.type,mediaType:t._(i.type)})},r.onerror=()=>{n(Error(`Error occurred while reading blob.`))}})},er=(e,t)=>[`VECHAIN_KIT`,`IPFS_IMAGE`,e,t],tr=e=>{let{network:t}=$();return(0,p.useQuery)({queryKey:er(t.type,e),queryFn:()=>$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`)||e===`ipfs uri is required`)return!1}return e<2},staleTime:1/0})},nr=e=>{let{network:t}=$();return(0,p.useQueries)({queries:e.map(e=>({queryKey:er(t.type,e),queryFn:()=>$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`)||e===`ipfs uri is required`)return!1}return e<2},staleTime:1/0}))})},rr=(e,t=!1)=>{let{network:n}=$();return(0,p.useQueries)({queries:e.map(e=>({queryKey:Xn(n.type,e),queryFn:async()=>Yn(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}))})},ir={maxSizeMB:.4,maxWidthOrHeight:1920,useWebWorker:!0},ar=async e=>{let t=[];try{for(let n of e){let e=await(0,T.default)(n.file,ir);t.push(e)}return t}catch(e){throw console.error(`compress error`,e),e}},or=({compressImages:e,defaultImages:t})=>{let[n,i]=(0,r.useState)(t??[]);(0,r.useEffect)(()=>{t&&i(t)},[t]);let[a,o]=(0,r.useState)([]),s=(0,r.useCallback)(e=>i(t=>t.filter((t,n)=>n!==e)),[]);return{uploadedImages:n,setUploadedImages:i,onUpload:(0,r.useCallback)(async(t,n=!0)=>{o([]);let r=[];for(let n of t){let t=n;e&&(t=await(0,T.default)(n,ir));let i={file:t,image:URL.createObjectURL(n)};r.push(i)}i(e=>[...r,...n?e.filter(e=>!r.some(t=>t.file.name===e.file.name)):[]])},[e]),onRemove:s,invalidDateError:a}},sr=({compressImage:e,defaultImage:t})=>{let[n,i]=(0,r.useState)(t);(0,r.useEffect)(()=>{t&&i(t)},[t]);let a=(0,r.useCallback)(()=>i(void 0),[]);return{uploadedImage:n,setUploadedImage:i,onUpload:(0,r.useCallback)(async t=>{let n=t;e&&(n=await(0,T.default)(n,ir));let r={file:n,image:URL.createObjectURL(n)};return i(r),r},[e]),onRemove:a}},cr=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)},lr=({signerAccountAddress:e,clauses:t,onTxConfirmed:n,onTxFailedOrCancelled:i,suggestedMaxGas:a,privyUIOptions:o,gasPadding:c,delegationUrl:l})=>{let u=(0,f.useThor)(),{signer:d,requestTransaction:p}=(0,f.useWallet)(),{connection:m}=X(),{feeDelegation:h}=$(),g=ps(),_=pl(),v=(0,r.useCallback)(async(t,n,r)=>{let i=typeof t==`function`?await t():t??[];if(m.isConnectedWithPrivy)return await _.sendTransaction({txClauses:i,...r,delegationUrl:n});if(!e)throw Error(`signerAccountAddress is required`);let o=0;try{o=await cr(u,[...i],e,{revision:s.Revision.NEXT,...c?{gasPadding:c}:{}})}catch(e){console.error(`Gas estimation failed`,e)}return(await p(i,{signer:m.isConnectedWithDappKit&&!m.isInAppBrowser&&e?e:d.address,gas:a??o,...h?.delegateAllTransactions||n?{delegator:{url:n??h?.delegatorUrl??``,signer:e}}:{}})).txid},[e,a,g,_,o,h,u,d,c,l,p,m.isConnectedWithDappKit,m.isInAppBrowser]),[y,b]=(0,r.useState)(null),[x,S]=(0,r.useState)(!1),[C,w]=(0,r.useState)(null),T=(0,r.useCallback)(async(e,n)=>{if(!e&&!t)throw Error(`clauses are required`);try{b(null),S(!0),w(null),j(void 0),b(await v(e??[],n,{...o}))}catch(e){w(e&&typeof e==`object`&&`message`in e?e.message:String(e)),i?.(e instanceof Error?e:Error(String(e)))}finally{S(!1)}},[v,t,o,l]),{data:E,isLoading:D,error:O}=hc(y??``),k=(0,r.useCallback)(async e=>{if(!(!e.reverted||!e.meta.txID))return await u.transactions.getRevertReason(e.meta.txID)},[u]),[A,j]=(0,r.useState)(),M=(0,r.useMemo)(()=>{if(x)return`pending`;if(C)return`error`;if(y){if(D)return`waitingConfirmation`;if(O)return`error`;if(E)return E.reverted?`error`:`success`}return`ready`},[D,C,x,y,E,O]);(0,r.useEffect)(()=>{if(M===`success`||M===`error`){if(C&&!A){j({type:`UserRejectedError`,reason:C});return}if(E?.reverted&&!A?.type){(async()=>{let e=await k(E);j({type:`RevertReasonError`,reason:e?`Transaction reverted with: `+e:`Transaction reverted`})})();return}E&&!E.reverted&&n?.()}},[M,E,n,k,C]);let N=(0,r.useCallback)(()=>{b(null),S(!1),w(null),j(void 0)},[]);return{sendTransaction:T,isTransactionPending:(0,r.useMemo)(()=>x||D||M===`pending`||M===`waitingConfirmation`,[x,D,M]),isWaitingForWalletConfirmation:(0,r.useMemo)(()=>M===`pending`,[x,M]),txReceipt:E??null,status:M,resetStatus:N,error:A}},ur=(e,t)=>{let{account:n}=X(),{t:i}=(0,l.useTranslation)(),{sendTransaction:a,isTransactionPending:o,isWaitingForWalletConfirmation:s,txReceipt:c,status:u,resetStatus:d,error:f}=lr({signerAccountAddress:n?.address??``,privyUIOptions:{title:i(`ConfirmSwapTitle`,{defaultValue:`Confirm Swap`}),description:i(`ConfirmSwapDescription`,{defaultValue:`Please confirm the swap transaction in your wallet`}),buttonText:i(`Confirm`,{defaultValue:`Confirm`})}});return{executeSwap:(0,r.useCallback)(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 a(n)},[e,t,a]),isTransactionPending:o,isWaitingForWalletConfirmation:s,txReceipt:c,status:u,resetStatus:d,error:f}},dr=e=>e===`0x`||e===b.zeroAddress,fr=(e,t,n,r)=>{let i={},a=r.toLowerCase();for(let t of e)try{let e=(0,b.decodeEventLog)({abi:s.ERC20_ABI,eventName:`Transfer`,topics:t.topics,data:t.data}),n=e.args.from.toLowerCase(),r=e.args.to.toLowerCase(),o=e.args.value,c=typeof o==`bigint`?o:BigInt(o);if(n!==a&&r!==a)continue;let l=t.address.toLowerCase(),u=i[l]??{inflow:0n,outflow:0n};n===a&&(u.outflow+=c),r===a&&(u.inflow+=c),i[l]=u}catch{continue}if(n!==void 0){let e=BigInt(n);if(e>0n){let t=i[b.zeroAddress]??{inflow:0n,outflow:0n};t.outflow+=e,i[b.zeroAddress]=t}}for(let e of t){if(e.recipient.toLowerCase()!==a)continue;let t=BigInt(e.amount);if(t<=0n)continue;let n=i[b.zeroAddress]??{inflow:0n,outflow:0n};n.inflow+=t,i[b.zeroAddress]=n}return i},pr=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=fr(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=dr(e.fromTokenAddress),d=dr(e.toTokenAddress),f=BigInt(e.amountIn);if(u){let e=c[b.zeroAddress]??{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!==b.zeroAddress&&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===b.zeroAddress?`VET`:e} has outflow ${n.outflow.toString()}, expected 0`}}if(t.minimumOutputAmount&&t.minimumOutputAmount>0n)if(d){let e=c[b.zeroAddress]??{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`}}},mr=e=>e.startsWith(`0x`)?BigInt(e).toString():e,hr=(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`}),gr=(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[hr(t,e)]}return e},_r=e=>{try{let t=e.functionName||e.name;if(!t)throw Error(`Function name is required (either functionName or name must be provided)`);return(0,b.encodeFunctionData)({abi:gr(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`}`)}},vr=e=>{let t=_r(e.functionCall);return{to:e.to,value:mr(e.value),data:t,comment:e.comment||`Swap on aggregator`}},yr=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=new URL(e.apiBaseUrl);i.search=r.toString();let a=await fetch(i);if(!a.ok)throw Error(`API request failed: ${a.status} ${a.statusText}`);let o=await a.json(),s=o.clauses.map(vr),c=BigInt(o.amountOut),l=BigInt(o.amountOutMin);return{aggregatorName:e.name,aggregator:t,outputAmount:c,minimumOutputAmount:l,priceImpact:0,data:{clauses:s,path:o.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 pr(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},br={main:{supportedAddresses:[`0xE5fA980a6EfE5B79C2150a529da06AeF455963b6`,`0x7C755EC0165fCD926cC6faB10E7BB16a72E9f34A`]},test:{supportedAddresses:[]},solo:{supportedAddresses:[]}},xr=e=>e===`0x`||e===`0x0000000000000000000000000000000000000000`,Sr=t=>new URL(`api/quote/vck`,e.O).toString(),Cr=t=>{let n=br[t]??br.main,i=yr({name:`VeTrade.vet`,apiBaseUrl:Sr(t),network:t,getIcon:(t=`20px`)=>r.default.createElement(e.t,{boxSize:t}),supportedAddresses:n.supportedAddresses});return{...i,async simulateSwap(e,t,n){try{return pr(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,t){let r=[],a=await i.buildSwapTransaction(e,t);if(!a||a.length===0)throw Error(`Failed to build swap transaction`);if(xr(e.fromTokenAddress))a[0].value=e.amountIn;else{if(n.supportedAddresses.length===0)throw Error(`No supported addresses configured for VeTrade on this network`);let i=s.ABIContract.ofAbi(y.IERC20__factory.abi),o=s.Address.of(e.fromTokenAddress),c=BigInt(e.amountIn);r.push(s.Clause.callFunction(o,i.getFunction(`approve`),[a[0].to,c.toString()],s.VET.of(0n,s.Units.wei),{comment:`Approve ${t.aggregatorName} to access ${e.fromTokenAddress}`}))}return r.push(...a),r}}},wr=e=>e===`0x`||e===`0x0000000000000000000000000000000000000000`,Tr=()=>BigInt(Math.floor(Date.now()/1e3)+1200),Er=e=>{let t={name:e.name,getIcon:e.getIcon,async getQuote(n,r){let i=[wr(n.fromTokenAddress)?e.wrappedVET:n.fromTokenAddress,wr(n.toTokenAddress)?e.wrappedVET:n.toTokenAddress],a=BigInt(n.amountIn);try{let[o]=await r.contracts.load(e.routerAddress,y.UniswapV2Router02__factory.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 pr(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=Tr();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=wr(t.fromTokenAddress),c=wr(t.toTokenAddress),l=s.ABIContract.ofAbi(y.UniswapV2Router02__factory.abi),u=[];if(o)u.push(s.Clause.callFunction(s.Address.of(e.routerAddress),l.getFunction(`swapExactETHForTokens`),[i.toString(),n.data.path,t.userAddress,r.toString()],s.VET.of(a,s.Units.wei),{comment:`Swap on ${n.aggregatorName}`}));else{let o=s.ABIContract.ofAbi(y.IERC20__factory.abi),d=s.Address.of(t.fromTokenAddress),f=s.Address.of(e.routerAddress);u.push(s.Clause.callFunction(d,o.getFunction(`approve`),[f.toString(),a.toString()],s.VET.of(0n,s.Units.wei),{comment:`Swap on ${n.aggregatorName}`})),c?u.push(s.Clause.callFunction(f,l.getFunction(`swapExactTokensForETH`),[a.toString(),i.toString(),n.data.path,t.userAddress,r.toString()],s.VET.of(0n,s.Units.wei),{comment:`Swap on ${n.aggregatorName}`})):u.push(s.Clause.callFunction(f,l.getFunction(`swapExactTokensForTokens`),[a.toString(),i.toString(),n.data.path,t.userAddress,r.toString()],s.VET.of(0n,s.Units.wei),{comment:`Swap on ${n.aggregatorName}`}))}return u}};return t},Dr={main:{routerAddress:`0xf21Dd7108D93af56FaB07423EfB90F4a3604DA89`,wrappedVET:`0xf9b02b47694fd635A413F16dC7B38aF06Cc16fe5`},test:{routerAddress:b.zeroAddress,wrappedVET:b.zeroAddress},solo:{routerAddress:b.zeroAddress,wrappedVET:b.zeroAddress}},Or=t=>{let n=Dr[t]??Dr.main;return Er({name:`BetterSwap.io`,routerAddress:n.routerAddress,wrappedVET:n.wrappedVET,getIcon:(t=`20px`)=>r.default.createElement(e.n,{boxSize:t})})},kr=e=>[Cr(e),Or(e)],Ar=(e,t,n,i,a=1,o=!0)=>{let s=(0,f.useThor)(),{connection:c}=X(),l=e?.address??null,u=t?.address??null,{data:d}=gn(l===`0x`||l===b.zeroAddress||!l?``:l),{data:m}=gn(u===`0x`||u===b.zeroAddress||!u?``:u),h=(0,r.useMemo)(()=>!l||l===`0x`||l===b.zeroAddress||!d?18:Number(d?.decimals??18),[l,d?.decimals]),g=(0,r.useMemo)(()=>!u||u===`0x`||u===b.zeroAddress||!m?18:Number(m?.decimals??18),[u,m?.decimals]),_=(0,r.useMemo)(()=>{if(!l||!u||!n||!i)return null;let e;try{e=(0,b.parseUnits)(n,h)}catch(e){return console.error(`Failed to parse amount:`,n,e),null}return e<=0n?null:{fromTokenAddress:l,toTokenAddress:u,amountIn:e.toString(),userAddress:i,slippageTolerance:a}},[l,u,n,i,a,h]),{data:v,isLoading:y,error:x}=(0,p.useQuery)({queryKey:[`unified-swap-quotes`,_,c.network],queryFn:async()=>{if(!_||!s||!c.network)return{quotes:[],best:null};let e=kr(c.network).map(async e=>{try{let t=await e.getQuote(_,s);try{let n=await e.simulateSwap(_,t,s);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:o&&_!==null&&s!=null,refetchInterval:1e4});return{bestQuote:v?.best??null,quotes:v?.quotes??[],isLoading:y,error:x,from:e?{...e,address:l??``,decimals:h}:null,to:t?{...t,address:u??``,decimals:g}:null}},jr=({email:e,onResend:t,isLoading:a,isOpen:o,onClose:s})=>{let{t:c}=(0,l.useTranslation)(),{darkMode:d}=$(),f=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),[p,m]=(0,r.useState)(``),[h,_]=(0,r.useState)(null),{createWallet:v}=(0,u.useCreateWallet)(),{loginWithCode:y}=(0,u.useLoginWithEmail)({onComplete:async({isNewUser:e})=>{e&&await v()}});return(0,r.useEffect)(()=>{p.length===6&&y({code:p}).then(()=>{s()}).catch(e=>{_(e.message)})},[p]),(0,i.jsxs)(Je,{isOpen:o,onClose:s,trapFocus:!1,children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{alignItems:`center`,display:`flex`,gap:2,children:c(`Enter confirmation code`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.Container,{maxW:`container.lg`,children:[(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:2,children:[(0,i.jsx)(n.Icon,{as:g.LuMail,w:`48px`,h:`48px`,color:f}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:f,textAlign:`center`,children:c(`Please check {{email}} for an email from privy.io and enter your code below.`,{email:e})}),(0,i.jsx)(n.HStack,{spacing:2,justify:`center`,mt:4,children:(0,i.jsxs)(n.PinInput,{value:p,onChange:m,otp:!0,size:`lg`,isInvalid:!!h,errorBorderColor:`#ef4444`,children:[(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${d?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${d?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${d?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:d?`transparent`:`#ffffff`}),(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${d?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${d?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${d?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:d?`transparent`:`#ffffff`}),(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${d?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${d?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${d?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:d?`transparent`:`#ffffff`}),(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${d?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${d?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${d?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:d?`transparent`:`#ffffff`}),(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${d?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${d?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${d?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:d?`transparent`:`#ffffff`}),(0,i.jsx)(n.PinInputField,{borderRadius:`12px`,border:`1px solid ${d?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${d?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${d?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},backgroundColor:d?`transparent`:`#ffffff`})]})}),h&&(0,i.jsx)(n.Text,{color:`#ef4444`,fontSize:`xs`,children:h})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsxs)(n.Text,{w:`100%`,textAlign:`center`,fontSize:`14px`,color:d?`whiteAlpha.700`:`gray.600`,children:[c(`Didn't get an email?`),` `,(0,i.jsx)(n.Button,{variant:`link`,color:`blue.500`,fontSize:`14px`,onClick:t,isLoading:a,children:c(`Resend code`)})]})})]})]})},Mr=()=>{let{t:e}=(0,l.useTranslation)(),{darkMode:t}=$(),[a,o]=(0,r.useState)(``),{sendCode:s,state:c}=(0,u.useLoginWithEmail)({}),d=(0,n.useDisclosure)(),f=async()=>{await s({email:a}),d.onOpen()};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.GridItem,{colSpan:4,w:`full`,children:(0,i.jsx)(n.VStack,{spacing:3,w:`full`,children:(0,i.jsxs)(n.InputGroup,{size:`lg`,w:`full`,children:[(0,i.jsx)(n.InputLeftElement,{pointerEvents:`none`,height:`100%`,pl:4,children:(0,i.jsx)(n.Icon,{as:g.LuMail,color:t?`whiteAlpha.600`:`blackAlpha.700`,w:`20px`,h:`20px`})}),(0,i.jsx)(n.Input,{placeholder:e(`your@email.com`),value:a,onChange:e=>o(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}),(0,i.jsx)(n.Button,{"aria-label":`Send code`,position:`absolute`,right:2,top:`50%`,transform:`translateY(-50%)`,zIndex:2,variant:`ghost`,size:`sm`,px:6,borderRadius:`full`,isLoading:c.status===`sending-code`,onClick:f,children:e(`Submit`)})]})})}),(0,i.jsx)(jr,{isOpen:d.isOpen,onClose:d.onClose,onResend:()=>s({email:a}),email:a,isLoading:c.status===`sending-code`})]})},Nr=({isDark:e,gridColumn:t})=>{let{t:r}=(0,l.useTranslation)(),{initOAuth:a}=Xo();return(0,i.jsx)(n.GridItem,{colSpan:t??4,w:`full`,children:(0,i.jsx)(Ta,{isDark:e,onClick:async()=>{await a({provider:`google`})},icon:E.FcGoogle,text:r(`Continue with Google`)})})},Pr=({isDark:e,gridColumn:t})=>{let{t:r}=(0,l.useTranslation)(),{initOAuth:a}=Xo();return(0,i.jsx)(n.GridItem,{colSpan:t??4,w:`full`,children:(0,i.jsx)(Ta,{isDark:e,onClick:async()=>{await a({provider:`github`})},icon:g.LuGithub,text:r(`Continue with Github`)})})},Fr=({isDark:t,gridColumn:r})=>{let{t:a}=(0,l.useTranslation)(),{login:o}=(0,u.usePrivy)();return(0,i.jsx)(n.GridItem,{colSpan:r||4,w:`full`,children:(0,i.jsx)(Ta,{isDark:t,onClick:o,icon:t?e.K:e.q,text:a(`Use social login with VeChain`),variant:`loginWithVechain`,rightIcon:(0,i.jsx)(Aa,{})})})},Ir=({isDark:t,gridColumn:r,setCurrentContent:a})=>{let{t:o}=(0,l.useTranslation)(),{login:s}=Qo(),c=async()=>{a({type:`loading`,props:{title:o(`Connecting to VeChain`),loadingText:o(`Please approve the request in the connection request window...`),onTryAgain:c}});try{await s()}catch(e){console.error(o(`Login failed:`),e),a({type:`error`,props:{error:e instanceof Error?e.message:o(`Failed to connect with VeChain`),onTryAgain:c}})}};return(0,i.jsx)(n.GridItem,{colSpan:r||4,w:`full`,children:(0,i.jsx)(Ta,{isDark:t,onClick:c,icon:t?e.K:e.q,text:o(`Use social login with VeChain`),variant:`loginWithVechain`,rightIcon:(0,i.jsx)(Aa,{})})})},Lr=({isDark:e,gridColumn:t,setCurrentContent:r})=>{let{t:a}=(0,l.useTranslation)(),{loginWithPasskey:o}=Jo(),s=async()=>{r({type:`loading`,props:{title:a(`Connecting with Passkey`),loadingText:a(`Please complete the passkey authentication...`),onTryAgain:s}});try{await o()}catch(e){(e instanceof Error?e.message.toLowerCase():``).includes(`not found`)&&console.error(e),r({type:`error`,props:{error:e instanceof Error?e.message:a(`Failed to connect with Passkey`),onTryAgain:s}})}};return(0,i.jsx)(n.GridItem,{colSpan:t,w:`full`,children:(0,i.jsx)(Ta,{isDark:e,onClick:s,icon:g.LuFingerprint,text:t&&t>=2?a(`Passkey`):void 0})})},Rr=({isDark:t,gridColumn:a=2})=>{let{t:o}=(0,l.useTranslation)(),{open:s,onConnectionStatusChange:c}=(0,f.useWalletModal)(),{dappKit:u}=$(),{source:d}=(0,f.useWallet)(),p=u?.allowedWallets?.includes(`sync2`)?o(`Connect wallet`):o(`Connect with VeWorld wallet`);return(0,r.useEffect)(()=>{c((e,t)=>{if(!e)return t?.message&&console.error(t?.message),{...d&&{source:d}}})},[c,d]),(0,i.jsx)(n.GridItem,{colSpan:a||2,w:`full`,children:(0,i.jsx)(Ta,{isDark:t,onClick:()=>{s()},icon:u?.allowedWallets?.includes(`sync2`)?g.LuWallet:t?e.M:e.j,iconWidth:`27px`,text:a>=2?p:void 0,rightIcon:u?.allowedWallets?.includes(`sync2`)&&(0,i.jsx)(n.Icon,{as:g.LuArrowRight})||void 0})})},zr=({isDark:e,onViewMoreLogin:t,gridColumn:r})=>{let{t:a}=(0,l.useTranslation)();return(0,i.jsx)(n.GridItem,{colSpan:r,w:`full`,children:(0,i.jsx)(Ta,{isDark:e,onClick:t,icon:g.LuEllipsis,text:r&&r>=2?a(`More`):void 0,rightIcon:(0,i.jsx)(n.Icon,{as:g.LuArrowRight})})})},Br=({setCurrentContent:e})=>{let{loginMethods:t,darkMode:r}=$(),{login:a}=(0,u.usePrivy)(),{showGoogleLogin:o,showEmailLogin:s,showPasskey:c,showVeChainLogin:l,showDappKit:d,showMoreLogin:f,showGithubLogin:p,isOfficialVeChainApp:m}=zo();return(0,i.jsx)(n.Stack,{spacing:4,w:`full`,align:`center`,children:(0,i.jsx)(n.Grid,{templateColumns:`repeat(4, 1fr)`,gap:2,w:`full`,children:t?.map(({method:t,gridColumn:n})=>{switch(t){case`email`:return s&&(0,i.jsx)(Mr,{},`email`);case`google`:return o&&(0,i.jsx)(Nr,{isDark:r,gridColumn:n},`google`);case`github`:return p&&(0,i.jsx)(Pr,{isDark:r,gridColumn:n},`github`);case`vechain`:return l&&(m?(0,i.jsx)(Fr,{isDark:r,gridColumn:n},`vechain`):(0,i.jsx)(Ir,{isDark:r,gridColumn:n,setCurrentContent:e},`vechain`));case`passkey`:return c&&(0,i.jsx)(Lr,{isDark:r,gridColumn:n,setCurrentContent:e},`passkey`);case`dappkit`:return d&&(0,i.jsx)(Rr,{isDark:r,gridColumn:n},`dappkit`);case`more`:return f&&(0,i.jsx)(zr,{isDark:r,onViewMoreLogin:a,gridColumn:n},`more`);default:return null}})})})},Vr=({appsInfo:e,isLoading:t,setCurrentContent:r})=>{let{t:a}=(0,l.useTranslation)();return(0,i.jsx)(n.Button,{fontSize:`sm`,variant:`link`,onClick:()=>r({type:`ecosystem`,props:{appsInfo:e,isLoading:t}}),children:a(`Already have an x2earn app wallet?`)})},Hr=({setCurrentContent:e,onClose:t,preventAutoClose:a=!1})=>{let{t:o}=(0,l.useTranslation)(),{connection:s}=X(),{loginModalUI:c,darkMode:u}=$(),{loginMethods:d,privyEcosystemAppIDS:f}=$(),{data:p,isLoading:m}=Ze(f),h=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),g=()=>{e(`faq`)},_=d?.some(({method:e})=>e===`ecosystem`);return(0,r.useEffect)(()=>{s.isConnected&&!a&&t()},[s.isConnected,t,a]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(Bc,{onClick:g}),(0,i.jsx)(n.ModalHeader,{children:o(`Log in or sign up`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),c?.logo&&(0,i.jsx)(n.HStack,{justify:`center`,children:(0,i.jsx)(n.Image,{src:c.logo||`/images/favicon.png`,maxW:`180px`,maxH:`90px`,m:8,alt:`logo`})}),(0,i.jsxs)(n.ModalBody,{children:[c?.description&&(0,i.jsx)(n.HStack,{spacing:4,w:`full`,justify:`center`,mb:`24px`,px:4,children:(0,i.jsx)(n.Text,{color:h,fontSize:`sm`,textAlign:`center`,children:c?.description})}),(0,i.jsx)(Br,{setCurrentContent:e})]}),_?(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(n.HStack,{justify:`center`,w:`full`,children:(0,i.jsx)(Vr,{isDark:u,appsInfo:Object.values(p||{}),isLoading:m,setCurrentContent:e})})}):(0,i.jsx)(n.ModalFooter,{pt:0,pb:`5px`})]})},Ur=({setCurrentContent:e,wallet:t,onClose:r,switchFeedback:a})=>{let{t:o}=(0,l.useTranslation)(),{network:s}=$(),{isolatedView:c}=Gr();return(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[!c&&(0,i.jsx)(J,{onClick:()=>{e(`profile`)}}),(0,i.jsxs)(n.ModalHeader,{children:[o(`Wallet`),s?.type!==`main`&&(0,i.jsx)(n.Tag,{size:`xs`,colorScheme:`orange`,fontSize:`2xs`,p:1,ml:1,textTransform:`uppercase`,children:`${s?.type}`})]}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{w:`full`,overflow:`hidden`,justifyContent:`flex-start`,spacing:8,children:[(0,i.jsx)(Xc,{showFeedback:a?.showFeedback}),(0,i.jsx)(ci,{style:{justifyContent:`flex-start`},onClick:()=>{e(`profile`)},setCurrentContent:e,onClose:r,wallet:t}),(0,i.jsx)(ui,{onAssetsClick:()=>{e(`assets`)}}),(0,i.jsx)(pi,{setCurrentContent:e})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},Wr=({onSelectToken:e,onBack:a,showAllTokens:o=!1,excludedTokenSymbols:s=t.Z})=>{let{t:c}=(0,l.useTranslation)(),{darkMode:u}=$(),{currentCurrency:d}=sn(),f=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),p=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),m=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),{account:h}=X(),{tokensWithBalance:_,sortedTokens:v}=cn({address:h?.address??``}),[y,b]=(0,r.useState)(``),x=(0,r.useMemo)(()=>{let e=e=>s.includes(e),t;if(o){let n=v.filter(t=>Number(t.balance)>0&&!e(t.symbol)),r=[...v.filter(t=>Number(t.balance)===0&&!e(t.symbol))].sort((e,t)=>e.symbol.localeCompare(t.symbol));t=[...n,...r]}else t=_.filter(t=>!e(t.symbol));return t},[o,v,_,s]).filter(({symbol:e})=>e.toLowerCase().includes(y.toLowerCase()));return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:c(`Select Token`)}),(0,i.jsx)(J,{onClick:a}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.Container,{h:[`540px`,`auto`],p:0,children:(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,children:[(0,i.jsxs)(n.InputGroup,{size:`lg`,children:[(0,i.jsx)(n.Input,{placeholder:`Search token`,bg:u?`vechain-kit-overlay`:`vechain-kit-card`,borderRadius:`xl`,height:`56px`,pl:12,value:y,onChange:e=>b(e.target.value),"data-testid":`search-token-input`}),(0,i.jsx)(n.InputLeftElement,{h:`56px`,w:`56px`,pl:4,children:(0,i.jsx)(g.LuSearch,{color:m})})]}),(0,i.jsx)(n.Text,{fontSize:`lg`,fontWeight:`semibold`,color:f,mt:4,children:c(o?`All tokens`:`Your tokens`)}),x.length===0?(0,i.jsxs)(n.VStack,{spacing:2,py:8,children:[(0,i.jsx)(n.Icon,{as:g.LuSlash,boxSize:12,color:m}),(0,i.jsx)(n.Text,{fontSize:`lg`,color:f,children:c(`No tokens found`)}),(0,i.jsx)(n.Text,{fontSize:`md`,color:p,children:c(`Try searching with a different term`)})]}):(0,i.jsx)(n.VStack,{spacing:2,align:`stretch`,children:x.map(t=>(0,i.jsx)(Rc,{symbol:t.symbol,amount:Number(t.balance),currencyValue:t.valueInCurrency,currentCurrency:d,onClick:()=>e(t)},t.address))})]})})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},Gr=()=>{let{isolatedView:e,closeAccountModal:t}=Q();return{isolatedView:e,closeAccountModal:t}},Kr=({setCurrentContent:e,preselectedToken:a,initialAmount:s=``,initialToAddressOrDomain:c=``,onBack:u=()=>e(`main`)})=>{let{t:d}=(0,l.useTranslation)(),{darkMode:f,feeDelegation:p}=$(),{currentCurrency:m}=sn(),h=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),_=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),v=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),y=(0,n.useToken)(`colors`,`vechain-kit-error`),b=(0,n.useToken)(`colors`,`vechain-kit-card`),{exchangeRates:x}=en(),{account:S}=X(),{isolatedView:C}=Gr(),{tokensWithBalance:w}=cn({address:S?.address??``}),T=(0,r.useMemo)(()=>w.filter(e=>!t.Z.includes(e.symbol)),[w]),[E,k]=(0,r.useState)(()=>a&&!t.Z.includes(a.symbol)?a:T[0]??null),[A,j]=(0,r.useState)(!1);(0,r.useEffect)(()=>{!E&&T.length>0&&k(T[0])},[T,E]);let{register:M,watch:N,setValue:P,setError:F,formState:{errors:I,isValid:L},handleSubmit:R}=(0,D.useForm)({defaultValues:{amount:s,toAddressOrDomain:c},mode:`onChange`}),{toAddressOrDomain:z,amount:B}=N(),ee=(0,r.useRef)(E);(0,r.useEffect)(()=>{ee.current&&E&&ee.current.address!==E.address&&P(`amount`,``),ee.current=E},[E,P]);let V=(0,r.useMemo)(()=>E?rn(tn(Number(B)*E.priceUsd,m,x),{currency:m}):``,[B,E,m,x]),{data:H,isLoading:te}=tt(z),ne=()=>{E&&P(`amount`,E.balance)},re=()=>{u()},U=async t=>{if(E){if(!(H?.isValidAddressOrDomain&&(!H?.domain||H?.domain&&H?.isPrimaryDomain))){F(`toAddressOrDomain`,{type:`manual`,message:d(`Invalid address or domain`)});return}if(E){let e=(0,o.parseEther)(t.amount),n=p?.b3trTransfers?.minAmountInEther;if(E.symbol===`B3TR`&&typeof n==`number`&&n>0)try{if(e<(0,o.parseEther)(String(n))){F(`amount`,{type:`manual`,message:d(`Minimum {{symbol}} transfer is {{min}}`,{symbol:E.symbol,min:n})});return}}catch{}if(e>(0,o.parseEther)(E.balance)){F(`amount`,{type:`manual`,message:d(`Insufficient {{symbol}} balance`,{symbol:E.symbol})});return}}e({type:`send-token-summary`,props:{toAddressOrDomain:t.toAddressOrDomain,resolvedDomain:H?.domain,resolvedAddress:H?.address,amount:t.amount,selectedToken:E,formattedTotalAmount:V,setCurrentContent:e}})}};return A?(0,i.jsx)(Wr,{setCurrentContent:e,onSelectToken:e=>{k(e),j(!1)},onBack:()=>{j(!1)}}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:d(`Send`)}),!C&&(0,i.jsx)(J,{onClick:re}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:2,align:`stretch`,position:`relative`,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,color:h,children:d(`Amount`)}),(0,i.jsxs)(n.Text,{cursor:`pointer`,_hover:{color:_,textDecoration:`underline`},onClick:ne,noOfLines:1,overflow:`hidden`,textOverflow:`ellipsis`,fontSize:`sm`,fontWeight:`medium`,color:_,children:[d(`Balance`),`:`,` `,Number(E?.balance??0).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]})]}),(0,i.jsx)(n.Box,{p:4,borderRadius:`2xl`,bg:b,children:(0,i.jsx)(n.VStack,{align:`stretch`,spacing:2,children:(0,i.jsxs)(n.FormControl,{isInvalid:!!I.amount,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsx)(n.Input,{...M(`amount`,{required:d(`Amount is required`),pattern:{value:/^\d*\.?\d*$/,message:d(`Please enter a valid number`)},validate:e=>{if(!e)return!0;let t=parseFloat(e);if(isNaN(t))return d(`Please enter a valid number`);let n=p?.b3trTransfers?.minAmountInEther;return E?.symbol===`B3TR`&&typeof n==`number`&&n>0&&t<n?d(`Minimum {{symbol}} transfer is {{min}}`,{symbol:E.symbol,min:n}):!0}}),onChange:e=>{let t=e.target.value.trim();e.target.value=t,P(`amount`,t,{shouldValidate:!0})},placeholder:`0`,variant:`unstyled`,fontSize:`4xl`,fontWeight:`bold`,"data-testid":`tx-amount-input`,type:`number`,inputMode:`decimal`,color:h}),E?(0,i.jsxs)(n.Button,{variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:_,borderColor:_,_hover:{bg:f?`whiteAlpha.300`:`blackAlpha.300`},onClick:()=>j(!0),leftIcon:t.et[E.symbol]?r.default.cloneElement(t.et[E.symbol],{boxSize:`20px`,borderRadius:`full`}):(0,i.jsx)(n.Image,{src:t.$[E.symbol],alt:`${E.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:(0,i.jsx)(n.Box,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Text,{fontSize:`8px`,fontWeight:`bold`,color:h,children:E.symbol.slice(0,3)})})}),children:[E.symbol,(0,i.jsx)(n.Icon,{as:g.LuChevronDown,boxSize:5,color:_})]}):(0,i.jsxs)(n.Button,{variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:_,borderColor:_,_hover:{bg:f?`whiteAlpha.300`:`blackAlpha.300`,color:v},onClick:()=>j(!0),children:[d(`Select token`),(0,i.jsx)(n.Icon,{as:g.LuChevronDown,boxSize:5,color:_})]})]}),E&&(0,i.jsx)(n.HStack,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:_,children:(0,i.jsxs)(n.Text,{color:_,children:[`≈ `,V]})}),I.amount&&(0,i.jsx)(n.Text,{color:`#ef4444`,fontSize:`sm`,mt:1,"data-testid":`amount-error-msg`,children:I.amount.message})]})})}),(0,i.jsx)(n.HStack,{justify:`space-between`,mt:2,children:(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,color:h,children:d(`To`)})}),(0,i.jsx)(n.Box,{borderRadius:`2xl`,bg:b,children:(0,i.jsx)(n.VStack,{align:`stretch`,spacing:2,p:4,width:`100%`,children:(0,i.jsxs)(n.FormControl,{isInvalid:!!I.toAddressOrDomain,children:[(0,i.jsx)(n.Input,{...M(`toAddressOrDomain`,{required:d(`Address is required`)}),onChange:e=>{let t=e.target.value.trim(),n=t.includes(`.`)?(0,O.ens_normalize)(t):t;e.target.value=n,P(`toAddressOrDomain`,n,{shouldValidate:!0})},placeholder:d(`Type the receiver address or domain`),_placeholder:{fontSize:`md`,fontWeight:`normal`},fontSize:`lg`,fontWeight:`bold`,color:h,variant:`unstyled`,"data-testid":`tx-address-input`}),I.toAddressOrDomain&&(0,i.jsx)(n.Text,{color:y,fontSize:`sm`,"data-testid":`address-error-msg`,children:I.toAddressOrDomain.message})]})})})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,isDisabled:!E||!L,isLoading:te,onClick:R(U),"data-testid":`send-button`,children:d(E?`Send`:`Select Token`)})})]})},qr=({setCurrentContent:e,toAddressOrDomain:a,resolvedDomain:o,resolvedAddress:s,amount:c,selectedToken:u,formattedTotalAmount:d})=>{let{t:f}=(0,l.useTranslation)(),{account:p,connection:m,connectedWallet:h}=X(),{data:g}=zt(s??``),{network:_,feeDelegation:v}=$(),{preferences:y}=Fc(),{isolatedView:b,closeAccountModal:x}=Gr(),S=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),C=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),{data:w}=Ks(p?.address??``,h?.address??``,3),{open:T}=Bo(),E=(0,r.useMemo)(()=>g||t.U(s||a),[g,_.type,s,a]),D=async()=>{if(w){T();return}try{u.symbol===`VET`?await F():await k()}catch(e){console.error(f(`Transaction failed:`),e)}},O=r.default.useCallback(t=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:t,title:f(`Transaction successful`),onDone:()=>{b?x():e(`main`)},showSocialButtons:!0}})},[e,f,b,x]),{sendTransaction:k,txReceipt:A,error:j,isWaitingForWalletConfirmation:M,isTransactionPending:N,clauses:P}=lc({fromAddress:p?.address??``,receiverAddress:s||a,amount:c,tokenAddress:u.address,tokenName:u.symbol,onError:e=>{U(e??``)}}),{sendTransaction:F,txReceipt:I,error:L,isWaitingForWalletConfirmation:R,isTransactionPending:z,clauses:B}=dc({fromAddress:p?.address??``,receiverAddress:s||a,amount:c,onError:e=>{U(e??``)}}),ee=r.default.useCallback(()=>u.symbol===`VET`?I:A,[u.symbol,I,A]),V=M||R,H=V||N||z,[te,ne]=r.default.useState(!1);r.default.useEffect(()=>{let e=ee();if(!e||e.reverted||te||H)return;let t=e.meta.txID;t&&(ne(!0),O(t))},[ee,te,H,O]),r.default.useEffect(()=>{H&&ne(!1)},[H]);let re=()=>{e({type:`send-token`,props:{setCurrentContent:e,preselectedToken:u,initialAmount:c,initialToAddressOrDomain:a}})},U=e=>{console.error(`Transaction failed:`,e)},[ie,W]=r.default.useState(null),[ae,oe]=r.default.useState(null),se=y.availableGasTokens.length>0&&(m.isConnectedWithPrivy||m.isConnectedWithVeChain)&&!v?.delegatorUrl,{data:ce,isLoading:le,error:ue,refetch:de}=Ic({clauses:u.symbol===`VET`?B:P,tokens:ie?[ie]:y.availableGasTokens,sendingAmount:c,sendingTokenSymbol:u.symbol,enabled:se&&!!v?.genericDelegatorUrl}),fe=ce?.usedToken,G=(le||!ce)&&m.isConnectedWithPrivy&&!v?.delegatorUrl,K=r.default.useCallback(e=>{W(e),oe(e),setTimeout(()=>de(),100)},[de]),q=!!fe&&!ue;return r.default.useEffect(()=>{ue&&ie&&W(null)},[ue,ie]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:`Send`}),(0,i.jsx)(J,{isDisabled:H,onClick:re}),(0,i.jsx)(n.ModalCloseButton,{isDisabled:H})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsx)(n.VStack,{spacing:6,align:`stretch`,w:`full`,children:(0,i.jsxs)(n.VStack,{spacing:4,w:`full`,children:[(0,i.jsxs)(n.Box,{w:`full`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,mb:2,color:C,children:f(`From`)}),(0,i.jsx)(zc,{address:p?.address??``,domain:p?.domain,imageSrc:p?.image??``,imageAlt:`From account`,balance:Number(u.balance),tokenAddress:u.address})]}),(0,i.jsxs)(n.Box,{w:`full`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,mb:2,color:C,children:f(`To`)}),(0,i.jsx)(zc,{address:s||a,domain:o,imageSrc:E??``,imageAlt:`To account`,tokenAddress:u.address})]}),m.isConnectedWithPrivy&&(0,i.jsx)(Kc,{estimation:ce,isLoading:le,isLoadingTransaction:H,onTokenChange:K,clauses:u.symbol===`VET`?B:P,userSelectedToken:ae}),(0,i.jsxs)(n.VStack,{spacing:0,w:`full`,justifyContent:`flex-start`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`light`,textAlign:`left`,w:`full`,color:C,children:f(`Amount`)}),(0,i.jsxs)(n.HStack,{justifyContent:`flex-start`,w:`full`,children:[(0,i.jsxs)(n.Text,{fontSize:`xl`,fontWeight:`semibold`,textAlign:`left`,"data-testid":`send-summary-amount`,color:S,children:[Number(c).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}),` `,u.symbol]}),(0,i.jsxs)(n.Text,{color:C,children:[`≈ `,d]})]})]})]})})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(Uc,{transactionError:u.symbol===`VET`?L:j,isSubmitting:H,isTxWaitingConfirmation:V,onConfirm:D,transactionPendingText:f(`Sending...`),txReceipt:ee(),buttonText:f(`Confirm`),isDisabled:H||G,gasEstimationError:ue,hasEnoughGasBalance:q,isLoadingGasEstimation:le,showGasEstimationError:!v?.delegatorUrl&&m.isConnectedWithPrivy,context:`send`})})]})},Jr=({setCurrentContent:e})=>{let{t}=(0,l.useTranslation)(),{account:r}=X(),{isolatedView:a}=Gr(),o=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),s=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t(`Receive`)}),!a&&(0,i.jsx)(J,{onClick:()=>e(`main`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.Container,{maxW:`container.lg`,children:[(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:4,align:`center`,w:`full`,children:[(0,i.jsx)(k.QRCode,{value:r?.address??``,size:200,removeQrCodeBehindLogo:!0,eyeRadius:4,logoPaddingStyle:`circle`,style:{borderRadius:`16px`}}),(0,i.jsx)(Re,{wallet:r,style:{w:`85%`}}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,color:o,children:t(`Copy your address or scan this QR code`)}),(0,i.jsx)(n.Text,{fontSize:`xs`,textAlign:`center`,color:s,children:t(`This address only supports VeChain assets.`)})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})]})},Yr=({quotes:e,selectedQuote:a,toTokenAddress:o,onSelectQuote:s,onBack:c})=>{let{t:u}=(0,l.useTranslation)(),{darkMode:d}=$(),{currentCurrency:f}=sn(),{account:p}=X(),{exchangeRates:m,prices:h}=en(),{tokens:_}=cn({address:p?.address??``}),[v,y]=(0,r.useState)(!1),x=(0,r.useMemo)(()=>o&&_.find(e=>t.k(e.address,o))||null,[o,_]),S=e.filter(e=>!e.reverted),C=e.filter(e=>e.reverted),w=(0,r.useMemo)(()=>S.length===0?null:S.reduce((e,t)=>{let n=BigInt(e.outputAmount||`0`);return BigInt(t.outputAmount||`0`)>n?t:e}),[S]),T=(0,r.useMemo)(()=>{let e=o&&h[o]||0;return S.map(t=>{let n=(0,b.formatEther)(BigInt(t.outputAmount||`0`)),r=Number(n)*e,i=tn(r,f,m),a=w&&t.aggregatorName===w.aggregatorName,o=0;if(w&&!a){let e=BigInt(w.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)})},[S,o,h,f,m,w]);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:u(`Found following rates`)}),(0,i.jsx)(J,{onClick:c}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.Container,{h:[`540px`,`auto`],p:0,children:(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`stretch`,children:[T.length>0&&(0,i.jsx)(n.VStack,{spacing:2,align:`stretch`,children:T.map(e=>{let o=a?.aggregatorName===e.aggregatorName;return(0,i.jsxs)(n.Box,{p:2.5,borderRadius:`xl`,bg:d?`#00000038`:`gray.50`,borderWidth:1,borderColor:o?`blue.500`:d?`whiteAlpha.200`:`gray.200`,cursor:`pointer`,onClick:()=>s(e),_hover:{borderColor:o?`blue.500`:d?`whiteAlpha.400`:`gray.300`},position:`relative`,children:[(e.isBest||!e.isBest&&e.percentageDiff<0)&&(0,i.jsx)(n.Box,{position:`absolute`,top:-1,left:0,zIndex:1,children:e.isBest?(0,i.jsx)(n.Badge,{colorScheme:`purple`,borderRadius:`sm`,fontSize:`2xs`,px:1.5,py:.5,borderTopLeftRadius:`xl`,borderBottomRightRadius:`md`,children:u(`Best`)}):(0,i.jsxs)(n.Badge,{colorScheme:`red`,borderRadius:`xs`,fontSize:`2xs`,px:1.5,py:.5,borderTopLeftRadius:`xl`,borderBottomRightRadius:`md`,children:[e.percentageDiff.toFixed(2),`%`]})}),(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:1.5,marginTop:4,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,align:`center`,children:[(0,i.jsxs)(n.HStack,{spacing:1.5,align:`center`,children:[e.aggregator.getIcon(`20px`),(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,children:e.aggregatorName})]}),(0,i.jsx)(n.HStack,{align:`center`,spacing:1.5,children:x&&(0,i.jsxs)(i.Fragment,{children:[t.et[x.symbol]?r.default.cloneElement(t.et[x.symbol],{boxSize:`24px`,borderRadius:`full`}):t.$[x.symbol]?(0,i.jsx)(n.Image,{src:t.$[x.symbol],alt:`${x.symbol} logo`,boxSize:`24px`,borderRadius:`full`}):null,(0,i.jsx)(n.Tooltip,{label:Number(e.outputAmountFormatted).toLocaleString(void 0,{maximumFractionDigits:18}),hasArrow:!0,placement:`top`,children:(0,i.jsxs)(n.Text,{fontSize:`md`,fontWeight:`bold`,textAlign:`right`,whiteSpace:`nowrap`,children:[Number(e.outputAmountFormatted).toLocaleString(void 0,{minimumFractionDigits:4}),` `,x.symbol]})})]})})]}),(0,i.jsxs)(n.HStack,{justify:`space-between`,align:`center`,children:[(0,i.jsx)(n.Text,{fontSize:`xs`,color:d?`whiteAlpha.500`:`blackAlpha.500`,children:e.gasCostVTHO&&e.gasCostVTHO>0?`Gas: ${e.gasCostVTHO.toLocaleString(void 0,{maximumFractionDigits:2})} VTHO`:``}),e.valueUsd>0&&(0,i.jsxs)(n.Text,{fontSize:`xs`,color:d?`whiteAlpha.600`:`blackAlpha.600`,textAlign:`right`,whiteSpace:`nowrap`,children:[`≈ `,rn(e.valueInCurrency,{currency:f})]})]})]})]},e.aggregatorName)})}),C.length>0&&(0,i.jsxs)(n.Box,{children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,cursor:`pointer`,onClick:()=>y(!v),py:2,children:[(0,i.jsxs)(n.Text,{fontSize:`sm`,color:d?`whiteAlpha.600`:`blackAlpha.600`,children:[C.length,` `,u(`rate`),C.length===1?``:`s`,` `,u(`unavailable`)]}),(0,i.jsx)(n.Icon,{as:v?g.LuChevronUp:g.LuChevronDown,boxSize:4,color:d?`whiteAlpha.600`:`blackAlpha.600`})]}),(0,i.jsx)(n.Collapse,{in:v,animateOpacity:!0,children:(0,i.jsx)(n.VStack,{spacing:2,align:`stretch`,pt:2,children:C.map(e=>(0,i.jsx)(n.Box,{p:2,borderRadius:`xl`,bg:d?`#00000038`:`gray.50`,opacity:.6,children:(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsxs)(n.HStack,{spacing:2,align:`center`,children:[e.aggregator.getIcon(`20px`),(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`medium`,children:e.aggregatorName})]}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:d?`whiteAlpha.500`:`blackAlpha.500`,children:u(`Unable to fetch the price`)})]})},e.aggregatorName))})})]}),T.length===0&&C.length===0&&(0,i.jsx)(n.VStack,{spacing:2,py:8,color:d?`whiteAlpha.600`:`blackAlpha.600`,children:(0,i.jsx)(n.Text,{fontSize:`lg`,children:u(`No quotes available`)})})]})})}),(0,i.jsx)(n.ModalFooter,{})]})},Xr=e=>e===`0x`||e===b.zeroAddress||!e,Zr=(e,t,n,r)=>{if(!e||!t||!n||!r)return null;let i=t.toLowerCase(),a=n.toLowerCase(),o=r.toLowerCase(),s=Xr(n),c=Xr(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=y.IERC20__factory.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=(0,b.decodeEventLog)({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}},Qr=({setCurrentContent:e,fromTokenAddress:a,toTokenAddress:o})=>{let{t:s}=(0,l.useTranslation)(),{account:c,connection:u}=X(),{currentCurrency:d}=sn(),{network:f,feeDelegation:p,darkMode:m}=$(),{isolatedView:h,closeAccountModal:_}=Gr(),v=(0,n.useToken)(`colors`,`vechain-kit-card`),y=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),x=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),S=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),C=(0,n.useToken)(`colors`,`vechain-kit-button-primary-bg`),w=(0,n.useToken)(`colors`,`vechain-kit-button-primary-color`),{preferences:T}=Fc(),{sortedTokens:E}=cn({address:c?.address??``}),[D,O]=(0,r.useState)(`main`),[k,A]=(0,r.useState)(null),[j,M]=(0,r.useState)(null),[N,P]=(0,r.useState)(``),[F,I]=(0,r.useState)(!1),[L,R]=(0,r.useState)(1),[z,B]=(0,r.useState)(`1`),[ee,V]=(0,r.useState)(null),[H,te]=r.default.useState(null),[ne,re]=r.default.useState(null),[U,ie]=r.default.useState([]),{prices:W,exchangeRates:ae}=en(),oe=L===1;r.default.useEffect(()=>{B(L===1?`1`:L===.5?`0.5`:L===3?`3`:L.toString())},[L]),r.default.useEffect(()=>{if(E.length!==0){if((a||o)&&(!k||!j)){if(a&&!k){let e=E.find(e=>t.k(e.address,a));e&&!t.Z.includes(e.symbol)&&A(e)}if(o&&!j){let e=E.find(e=>t.k(e.address,o));e&&!t.Z.includes(e.symbol)&&M(e)}return}if(!k&&!j){let e=E.find(e=>e.symbol===`VET`);e&&A(e);let n=E.find(e=>e.symbol===`B3TR`);if(!n)try{let e=t.bt(f.type).b3trContractAddress;e&&(n=E.find(n=>t.k(n.address,e)))}catch(e){console.warn(`Failed to get B3TR address from config:`,e)}n&&M(n)}}},[E,k,j,a,o,f.type]),r.default.useEffect(()=>{V(null)},[k?.address,j?.address,N]);let{bestQuote:se,quotes:ce,isLoading:le,from:ue,to:de}=Ar(k,j,N,c?.address??``,L,!!k&&!!j&&Number(N)>0),fe=(0,r.useMemo)(()=>{if(!N||Number(N)<=0||!ue)return 0n;try{return(0,b.parseUnits)(N,ue.decimals)}catch{return 0n}},[N,ue?.decimals]),G=ee||se,K=(0,r.useMemo)(()=>{if(!G?.outputAmount||!de)return`0`;try{return(0,b.formatUnits)(G.outputAmount,de.decimals)}catch{return`0`}},[G,de?.decimals]),q=(0,r.useMemo)(()=>{if(!k||!N)return 0;let e=W[k.address]||0;return tn(Number(N)*e,d,ae)},[k?.address,N,W,d,ae]),pe=(0,r.useMemo)(()=>{if(!j||!K)return 0;let e=W[j.address]||0;return tn(Number(K)*e,d,ae)},[j?.address,K,W,d,ae]),me=(0,r.useMemo)(()=>!k||!j||!c?.address||fe===0n?null:{fromTokenAddress:k.address,toTokenAddress:j.address,amountIn:fe.toString(),userAddress:c.address,slippageTolerance:L},[k,j,c?.address,fe,L]),he=G?.gasCostVTHO??0;r.default.useEffect(()=>{(async()=>{if(!G||!me||!G.aggregator){ie([]);return}try{ie(await G.aggregator.buildSwapTransaction(me,G))}catch(e){console.error(`Failed to build swap clauses for gas estimation:`,e),ie([])}})()},[G,me]);let ge=T.availableGasTokens.length>0&&(u.isConnectedWithPrivy||u.isConnectedWithVeChain)&&!p?.delegatorUrl,{data:_e,isLoading:ve,error:ye,refetch:be}=Ic({clauses:U,tokens:H?[H]:T.availableGasTokens,sendingAmount:N,sendingTokenSymbol:k?.symbol??``,enabled:ge&&!!p?.genericDelegatorUrl&&U.length>0}),xe=_e?.usedToken,Se=(ve||!_e)&&u.isConnectedWithPrivy&&!p?.delegatorUrl,Ce=r.default.useCallback(e=>{te(e),re(e),setTimeout(()=>be(),100)},[be]),we=!!xe&&!ye;r.default.useEffect(()=>{ye&&H&&te(null)},[ye,H]);let{executeSwap:Te,isTransactionPending:Ee,isWaitingForWalletConfirmation:De,txReceipt:Oe,status:ke,error:Ae}=ur(me,G),je=(0,r.useCallback)(()=>{let t=Oe?.meta.txID??``,n=s(`Swap successful`,{defaultValue:`Swap successful`}),r;if(Oe&&k&&j&&c?.address){let e=Zr(Oe,c.address,k.address,j.address);if(e&&ue&&de)try{let t=ue.decimals,n=de.decimals,i=(0,b.formatUnits)(e.fromAmount,t),a=(0,b.formatUnits)(e.toAmount,n),o=e=>{let t=Number(e);return t>=1e3?t.toLocaleString(void 0,{maximumFractionDigits:2}):t.toLocaleString(void 0,{maximumFractionDigits:6,minimumFractionDigits:0})};r=s(`You successfully swapped {fromAmount} {fromSymbol} for {toAmount} {toSymbol}`,{fromAmount:o(i),fromSymbol:k.symbol,toAmount:o(a),toSymbol:j.symbol,defaultValue:`You successfully swapped ${o(i)} ${k.symbol} for ${o(a)} ${j.symbol}`})}catch(e){console.warn(`Failed to format swap amounts:`,e)}}!r&&k&&j&&(r=s(`You successfully swapped {fromToken} for {toToken}`,{fromToken:k.symbol,toToken:j.symbol,defaultValue:`You successfully swapped ${k.symbol} for ${j.symbol}`})),e({type:`successful-operation`,props:{setCurrentContent:e,txId:t,title:n,description:r,onDone:()=>{h?_():e(`main`)},showSocialButtons:!0}})},[k,j,N,G,Oe,c?.address,e,s,h,_]),Me=(0,r.useCallback)(e=>{let t=typeof e==`string`?e:e.message;console.error(`Swap failed:`,t)},[k,j,N]),[Ne,Pe]=r.default.useState(!1);r.default.useEffect(()=>{if(ke===`ready`){Pe(!1);return}Ne||(ke===`success`&&Oe&&!Oe.reverted?(Pe(!0),je()):ke===`error`&&Ae?Me(Ae?.reason||Ae?.message||String(Ae)):Oe?.reverted&&Me(`Transaction reverted`))},[ke,Oe,Ae,je,Me,Ne]);let Fe=(0,r.useCallback)(e=>{if(A(e),e.symbol===`VET`&&!j){let e=E.find(e=>e.symbol===`B3TR`);if(!e)try{let n=t.bt(f.type).b3trContractAddress;n&&(e=E.find(e=>t.k(e.address,n)))}catch(e){console.warn(`Failed to get B3TR address from config:`,e)}e&&M(e)}O(`main`)},[j,E,f.type]),Ie=(0,r.useCallback)(e=>{M(e),O(`main`)},[]),Le=(0,r.useCallback)(e=>{(/^\d*\.?\d*$/.test(e)||e===``)&&P(e)},[]),Re=(0,r.useCallback)(()=>{k&&P(k.balance)},[k]),ze=e=>{if(!e)return null;let n=t.et[e.symbol],r=t.$[e.symbol];return{symbol:e.symbol,logoComponent:n,logoUrl:r,balance:e.balance,value:e.valueInCurrency}},Be=ze(k),Ve=ze(j);return D===`select-from-token`?(0,i.jsx)(Wr,{setCurrentContent:e,onSelectToken:Fe,onBack:()=>O(`main`),showAllTokens:!1}):D===`select-quote`?(0,i.jsx)(Yr,{quotes:ce,selectedQuote:G,toTokenAddress:j?.address??null,onSelectQuote:e=>{V(e),O(`main`)},onBack:()=>O(`main`)}):D===`select-to-token`?(0,i.jsx)(Wr,{setCurrentContent:e,onSelectToken:Ie,onBack:()=>O(`main`),showAllTokens:!0}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:s(`Swap`)}),!h&&(0,i.jsx)(J,{onClick:()=>e(`main`),isDisabled:Ee||De}),(0,i.jsx)(n.ModalCloseButton,{isDisabled:Ee||De})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:2,align:`stretch`,w:`full`,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,color:y,children:s(`From`)}),Be&&(0,i.jsxs)(n.Text,{cursor:`pointer`,_hover:{color:x,textDecoration:`underline`},onClick:Re,noOfLines:1,overflow:`hidden`,textOverflow:`ellipsis`,fontSize:`sm`,fontWeight:`medium`,color:x,children:[s(`Balance`),`:`,` `,Number(Be.balance??0).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]})]}),(0,i.jsx)(n.Box,{p:4,borderRadius:`2xl`,bg:v,children:(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:2,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsx)(n.Input,{placeholder:`0`,value:N,onChange:e=>Le(e.target.value),fontSize:`4xl`,fontWeight:`bold`,variant:`unstyled`,"data-testid":`swap-amount-input`,type:`number`,inputMode:`decimal`,color:Be&&N&&Number(N)>Number(Be.balance)?`red.500`:y}),Be?(0,i.jsxs)(n.Button,{onClick:()=>O(`select-from-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:x,borderColor:x,_hover:{bg:m?`whiteAlpha.300`:`blackAlpha.300`},leftIcon:Be.logoComponent?r.default.cloneElement(Be.logoComponent,{boxSize:`20px`,borderRadius:`full`}):Be.logoUrl?(0,i.jsx)(n.Image,{src:Be.logoUrl,alt:`${Be.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:(0,i.jsx)(n.Box,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Text,{fontSize:`8px`,fontWeight:`bold`,color:y,children:Be.symbol.slice(0,3)})})}):void 0,children:[Be.symbol,(0,i.jsx)(n.Icon,{as:g.LuChevronDown,boxSize:5,color:x})]}):(0,i.jsxs)(n.Button,{onClick:()=>O(`select-from-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:x,borderColor:x,_hover:{bg:m?`whiteAlpha.300`:`blackAlpha.300`,color:S},children:[s(`Select token`),(0,i.jsx)(n.Icon,{as:g.LuChevronDown,boxSize:5,color:x})]})]}),(0,i.jsx)(n.HStack,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:x,children:(0,i.jsx)(n.HStack,{spacing:2,alignItems:`center`,children:(0,i.jsxs)(n.Text,{color:x,children:[`≈`,` `,rn(q??0,{currency:d})]})})})]})}),(0,i.jsx)(n.HStack,{justify:`space-between`,mt:4,children:(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,color:y,children:s(`To`)})}),(0,i.jsx)(n.Box,{borderRadius:`2xl`,bg:v,p:4,children:(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:2,width:`100%`,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,alignItems:`center`,children:[(0,i.jsx)(n.Input,{value:Number(K).toLocaleString(void 0,{maximumFractionDigits:Number(K)>1e4?0:2}),readOnly:!0,variant:`unstyled`,fontSize:`4xl`,fontWeight:`bold`,"data-testid":`swap-output-amount`,color:y}),Ve?(0,i.jsxs)(n.Button,{onClick:()=>O(`select-to-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:x,borderColor:x,_hover:{bg:m?`whiteAlpha.300`:`blackAlpha.300`},leftIcon:Ve.logoComponent?r.default.cloneElement(Ve.logoComponent,{boxSize:`20px`,borderRadius:`full`}):Ve.logoUrl?(0,i.jsx)(n.Image,{src:Ve.logoUrl,alt:`${Ve.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:(0,i.jsx)(n.Box,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Text,{fontSize:`8px`,fontWeight:`bold`,color:y,children:Ve.symbol.slice(0,3)})})}):void 0,children:[Ve.symbol,(0,i.jsx)(n.Icon,{as:g.LuChevronDown,boxSize:5,color:x})]}):(0,i.jsxs)(n.Button,{onClick:()=>O(`select-to-token`),variant:`outline`,size:`sm`,borderRadius:`full`,px:6,color:x,borderColor:x,_hover:{bg:m?`whiteAlpha.300`:`blackAlpha.300`,color:S},children:[s(`Select token`),(0,i.jsx)(n.Icon,{as:g.LuChevronDown,boxSize:5,color:x})]})]}),(0,i.jsxs)(n.HStack,{spacing:1,fontSize:`sm`,justifyContent:`space-between`,color:x,children:[(0,i.jsx)(n.HStack,{spacing:2,alignItems:`center`,children:(0,i.jsxs)(n.Text,{color:x,children:[`≈`,` `,rn(pe??0,{currency:d})]})}),Ve&&(0,i.jsxs)(n.Text,{noOfLines:1,overflow:`hidden`,textOverflow:`ellipsis`,fontSize:`sm`,fontWeight:`medium`,color:x,children:[s(`Balance`),`:`,` `,Number(Ve.balance??0).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]})]})]})}),(0,i.jsx)(n.Collapse,{in:F&&!!G,animateOpacity:!0,children:(0,i.jsxs)(n.VStack,{spacing:1,align:`stretch`,p:4,borderRadius:`2xl`,bg:v,children:[G&&(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsxs)(n.Text,{fontSize:`xs`,color:x,children:[s(`Source`),`:`]}),(0,i.jsx)(n.Button,{variant:`outline`,size:`xs`,borderRadius:`full`,px:3,h:`auto`,py:1,cursor:`pointer`,onClick:()=>O(`select-quote`),color:x,borderColor:x,_hover:{bg:m?`whiteAlpha.300`:`blackAlpha.300`},leftIcon:G.aggregator?.getIcon(`12px`),children:(0,i.jsx)(n.Text,{fontSize:`xs`,color:y,children:G.aggregatorName})})]}),(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:2,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsxs)(n.Text,{fontSize:`xs`,color:x,children:[s(`Slippage tolerance`),`:`]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,fontWeight:`medium`,color:y,children:[L,`%`]})]}),(0,i.jsx)(n.VStack,{spacing:3,align:`stretch`,pt:2,children:(0,i.jsxs)(n.HStack,{spacing:2,children:[(0,i.jsx)(n.Button,{size:`sm`,variant:`outline`,onClick:()=>{R(1)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,bg:oe?C:`transparent`,color:oe?w:x,borderColor:oe?C:x,_hover:{bg:oe?C:m?`whiteAlpha.300`:`blackAlpha.300`,opacity:oe?.8:1},children:`Auto`}),(0,i.jsx)(n.Button,{size:`sm`,variant:`outline`,onClick:()=>{R(.5)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,bg:L===.5?C:`transparent`,color:L===.5?w:x,borderColor:L===.5?C:x,_hover:{bg:L===.5?C:m?`whiteAlpha.300`:`blackAlpha.300`,opacity:L===.5?.8:1},children:`0.5%`}),(0,i.jsx)(n.Button,{size:`sm`,variant:`outline`,onClick:()=>{R(3)},flex:`0 0 auto`,minW:`60px`,borderRadius:`md`,fontSize:`xs`,bg:L===3?C:`transparent`,color:L===3?w:x,borderColor:L===3?C:x,_hover:{bg:L===3?C:m?`whiteAlpha.300`:`blackAlpha.300`,opacity:L===3?.8:1},children:`3%`}),(0,i.jsxs)(n.InputGroup,{size:`sm`,flex:1,children:[(0,i.jsx)(n.Input,{value:z,onChange:e=>{let t=e.target.value;if(/^\d*\.?\d*$/.test(t)||t===``)if(B(t),t!==``){let e=parseFloat(t);!isNaN(e)&&e>=0&&e<=100&&R(e)}else R(1)},placeholder:`1`,borderRadius:`md`,textAlign:`right`,pr:8,fontSize:`xs`,color:y}),(0,i.jsx)(n.InputRightElement,{width:`2rem`,pointerEvents:`none`,children:(0,i.jsx)(n.Text,{fontSize:`2xs`,color:x,children:`%`})})]})]})})]}),(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsxs)(n.Text,{fontSize:`xs`,color:x,children:[s(`Fee`),`:`]}),(0,i.jsx)(n.Text,{fontSize:`xs`,fontWeight:`medium`,color:y,children:he>0?`${he.toLocaleString(void 0,{maximumFractionDigits:2})} VTHO`:`-`})]})]})}),G&&(0,i.jsx)(n.Box,{minH:`24px`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Button,{variant:`ghost`,size:`xs`,onClick:()=>I(!F),rightIcon:(0,i.jsx)(n.Icon,{color:S,_hover:{color:x},as:F?g.LuArrowUp:g.LuArrowDown}),fontSize:`xs`,fontWeight:`light`,color:S,_hover:{color:x},children:s(F?`Hide`:`Show Advanced Options`)})}),U.length>0&&u.isConnectedWithPrivy&&(0,i.jsx)(Kc,{estimation:_e,isLoading:ve,isLoadingTransaction:Ee,onTokenChange:Ce,clauses:U,userSelectedToken:ne})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(Uc,{buttonText:s(le?`Loading quote...`:`Swap`),onConfirm:Te,isSubmitting:Ee,isTxWaitingConfirmation:De,transactionPendingText:s(`Swapping...`),txReceipt:Oe,transactionError:Ae,onError:e=>{Me(e)},isDisabled:!k||!j||!N||Number(N)<=0||le||!G||G?.reverted===!0||!!(Be&&N&&Number(N)>Number(Be.balance))||Se,gasEstimationError:ye,hasEnoughGasBalance:we,isLoadingGasEstimation:ve,showGasEstimationError:!p?.delegatorUrl&&u.isConnectedWithPrivy,context:`transaction`})})]})},$r=({setCurrentContent:e,onBack:t=()=>e(`settings`),initialContentSource:r=`settings`})=>{let{t:a}=(0,l.useTranslation)(),{isolatedView:o}=Gr(),s=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),c=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),u=()=>{t()};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{"data-testid":`modal-title`,children:a(`Choose your account name`)}),!o&&(0,i.jsx)(J,{onClick:u}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,py:8,children:[(0,i.jsx)(n.Icon,{as:g.LuSquareUser,boxSize:16,color:c}),(0,i.jsxs)(n.VStack,{spacing:2,children:[(0,i.jsx)(n.Text,{fontSize:`lg`,fontWeight:`500`,textAlign:`center`,color:s,children:a(`Finally say goodbye to 0x addresses`)}),(0,i.jsx)(n.Text,{fontSize:`md`,color:c,textAlign:`center`,px:4,children:a(`Name your account to make it easier to exchange assets`)})]})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,onClick:()=>e({type:`choose-name-search`,props:{name:``,setCurrentContent:e,initialContentSource:r}}),"data-testid":`choose-name-button`,children:a(`Choose name`)})})]})},ei=({domain:e,isCurrentDomain:r,onSelect:a})=>{let{connection:o}=X(),{t:s}=(0,l.useTranslation)(),c=Hn(e.name,o.network),u=(0,n.useToken)(`colors`,`vechain-kit-card`),d=(0,n.useToken)(`colors`,`vechain-kit-card-hover`),f=(0,n.useToken)(`colors`,`vechain-kit-border`),p=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),m=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),h=(0,n.useToken)(`colors`,`vechain-kit-card`);return(0,i.jsx)(n.ListItem,{p:4,bg:u,borderRadius:`xl`,cursor:r?`default`:`pointer`,opacity:r?.7:1,border:`1px solid ${f}`,_hover:{bg:r?d:u,borderColor:f},onClick:()=>!r&&a(e.name),transition:`all 0.2s`,children:(0,i.jsxs)(n.HStack,{spacing:3,align:`center`,children:[(0,i.jsx)(Hc,{props:{width:`40px`,height:`40px`,src:c.image??t.U(e.name),alt:e.name}}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,flex:1,children:[(0,i.jsx)(n.Text,{color:p,fontSize:`md`,fontWeight:`500`,children:t.G(e.name,24,0)}),r&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:m,children:s(`Current domain`)})]}),r&&(0,i.jsx)(n.Tag,{size:`sm`,bg:h,color:p,px:3,py:1,borderRadius:`full`,children:s(`Current`)})]})},e.name)},ti=({onUnset:e})=>{let t=(0,n.useToken)(`colors`,`vechain-kit-card`),r=(0,n.useToken)(`colors`,`vechain-kit-card-hover`),a=(0,n.useToken)(`colors`,`vechain-kit-border`),o=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),s=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),c=(0,n.useToken)(`colors`,`vechain-kit-error`),{t:u}=(0,l.useTranslation)();return(0,i.jsx)(n.ListItem,{p:4,bg:t,borderRadius:`xl`,cursor:`pointer`,opacity:1,border:`1px solid ${a}`,_hover:{bg:r,borderColor:a,color:`red.400`},onClick:e,transition:`all 0.2s`,role:`button`,"aria-label":u(`Unset current domain`),children:(0,i.jsxs)(n.HStack,{spacing:3,align:`center`,children:[(0,i.jsx)(n.Box,{width:`40px`,height:`40px`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`,bg:t,children:(0,i.jsx)(n.Icon,{as:g.LuTrash2,fontSize:`18px`,color:c})}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,flex:1,children:[(0,i.jsx)(n.Text,{color:o,fontSize:`md`,fontWeight:`500`,children:u(`Unset current domain`)}),(0,i.jsx)(n.Text,{fontSize:`sm`,color:s,children:u(`Remove your current domain name`)})]})]})},`unset-domain-list-item`)},ni=({domains:e,onDomainSelect:t,onUnsetDomain:r,isLoading:a})=>{let{t:o}=(0,l.useTranslation)(),{account:s}=X(),c=(0,n.useToken)(`colors`,`vechain-kit-card`),u=(0,n.useToken)(`colors`,`vechain-kit-card-hover`),d=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),f=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`);return e.length===0||a?null:(0,i.jsx)(n.Accordion,{allowToggle:!0,children:(0,i.jsx)(n.AccordionItem,{border:`none`,children:({isExpanded:l})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.AccordionButton,{bg:c,borderRadius:`xl`,_hover:{bg:u},opacity:a?.7:1,transition:`all 0.2s`,disabled:a,children:[(0,i.jsx)(n.Box,{flex:`1`,textAlign:`left`,py:2,children:(0,i.jsx)(n.Text,{fontWeight:`500`,color:d,children:a?o(`Loading your domains...`):`${o(`Your existing domains`)} (${e.length})`})}),(0,i.jsx)(n.Icon,{as:l?g.LuChevronUp:g.LuChevronDown,fontSize:`20px`,color:f})]}),(0,i.jsx)(n.AccordionPanel,{pb:4,pt:2,children:(0,i.jsxs)(n.List,{spacing:2,children:[e.map(e=>(0,i.jsx)(ei,{domain:e,isCurrentDomain:e.name===s?.domain,onSelect:t},e.name)),s?.domain&&(0,i.jsx)(ti,{onUnset:r})]})})]})})})},ri=({name:e,setCurrentContent:t,initialContentSource:a=`settings`})=>{let{t:o}=(0,l.useTranslation)(),{account:s}=X(),{darkMode:c}=$(),{isolatedView:u}=Gr(),[d,f]=(0,r.useState)((0,O.ens_normalize)(e)),[p,m]=(0,r.useState)(null),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(!1),x=(0,n.useToken)(`colors`,`vechain-kit-error`),S=(0,n.useToken)(`colors`,`vechain-kit-success`),C=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),{data:w,isLoading:T}=it(d),{data:E,isLoading:D}=tt(`${d}.veworld.vet`),{data:k,isLoading:A}=vt(d),{data:j,isLoading:M}=Ct(s?.address,``),N=T||D||A;(0,r.useEffect)(()=>{if(!y)return;let e=/[^a-zA-Z0-9-]|\s/.test(d);d.length<3?(m(o(`Name must be at least 3 characters long`)),v(!1),g(!1)):e?(m(o(`Only letters, numbers, and hyphens are allowed`)),v(!1),g(!1)):k?(m(o(`This domain is protected`)),v(!1),g(!1)):w?E?.address?.toLowerCase()===s?.address?.toLowerCase()?(m(null),v(!0),g(!0)):(m(o(`This domain is already taken`)),v(!1),g(!1)):T||(m(null),v(!0),g(!1))},[d,y,w,T,E,s?.address,k,_,N]);let P=()=>{_&&!p&&t({type:`choose-name-summary`,props:{fullDomain:d+`.veworld.vet`,isOwnDomain:h,setCurrentContent:t,initialContentSource:a}})},F=e=>{let n=e.split(`.`);t({type:`choose-name-summary`,props:{fullDomain:e,domainType:n.length>2?`${n[1]}.${n[2]}`:`vet`,isOwnDomain:!0,setCurrentContent:t,initialContentSource:a}})},I=()=>{t({type:`choose-name-summary`,props:{fullDomain:``,domainType:``,isOwnDomain:!1,isUnsetting:!0,setCurrentContent:t,initialContentSource:a}})},L=()=>{t(a)};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{"data-testid":`modal-title`,children:o(`Choose Name`)}),!u&&(0,i.jsx)(J,{onClick:L}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,children:[(0,i.jsx)(ni,{domains:j?.domains||[],onDomainSelect:F,onUnsetDomain:I,isLoading:M}),(0,i.jsxs)(n.InputGroup,{size:`lg`,children:[(0,i.jsx)(n.Input,{placeholder:o(`Enter your name`),value:d,onChange:e=>{f((0,O.ens_normalize)(e.target.value)),y||b(!0)},paddingRight:`120px`,fontSize:`lg`,height:`60px`,bg:c?`#00000038`:`white`,border:`1px solid ${c?`#ffffff29`:`#ebebeb`}`,_hover:{border:`1px solid ${c?`#ffffff40`:`#e0e0e0`}`},_focus:{border:`1px solid ${c?`#ffffff60`:`#d0d0d0`}`,boxShadow:`none`},isInvalid:!!p,"data-testid":`domain-input`}),(0,i.jsx)(n.InputRightElement,{width:`auto`,paddingRight:`12px`,h:`full`,children:(0,i.jsx)(n.Box,{mr:4,fontSize:`sm`,color:C,children:`.veworld.vet`})})]}),p&&y&&(0,i.jsx)(n.Text,{color:x,fontSize:`sm`,"data-testid":`domain-availability-status`,children:p}),!p&&y&&d.length>=3&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:_?S:x,fontWeight:`500`,"data-testid":`domain-availability-status`,children:o(h?`YOU OWN THIS`:_?`AVAILABLE`:`UNAVAILABLE`)})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,isDisabled:!_||!!p||k||N,isLoading:N,onClick:P,loadingText:o(`Checking...`),"data-testid":`continue-button`,children:o(`Continue`)})})]})},ii=({setCurrentContent:e,fullDomain:t,domainType:a=`veworld.vet`,isOwnDomain:o,isUnsetting:s=!1,initialContentSource:c=`settings`})=>{let{t:u}=(0,l.useTranslation)(),d=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),{isolatedView:f,closeAccountModal:p}=Gr(),{account:m,connectedWallet:h,connection:_}=X(),{data:v}=Ks(m?.address??``,h?.address??``,3),{open:y}=Bo(),{preferences:b}=Fc(),{feeDelegation:x}=$(),S=e=>{console.error(`Transaction failed:`,e)},C=Jt({onSuccess:()=>N()}),w=a.endsWith(`veworld.vet`),T=ut({subdomain:t.split(`.veworld.vet`)[0],domain:a,alreadyOwned:o,onSuccess:()=>N()}),E=mt({domain:!s&&!w?t:``,alreadyOwned:o,onSuccess:()=>N()}),{sendTransaction:D,txReceipt:O,error:k,isWaitingForWalletConfirmation:A,isTransactionPending:j,clauses:M}=s?C:w?T:E,N=()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:O?.meta.txID,title:u(s?`Domain unset`:`Domain set`),description:s?u(`Your domain has been unset successfully.`):u(`Your address has been successfully set to {{name}}`,{name:t}),onDone:()=>{f?p():e(c)}}})},P=async()=>{if(v){y();return}try{await D()}catch(e){console.error(`Transaction failed:`,e)}},F=()=>{P()},I=()=>{e({type:`choose-name-search`,props:{setCurrentContent:e,name:t,initialContentSource:c}})},[L,R]=r.default.useState(null),[z,B]=r.default.useState(null),ee=b.availableGasTokens.length>0&&(_.isConnectedWithPrivy||_.isConnectedWithVeChain)&&!x?.delegatorUrl,{data:V,isLoading:H,error:te,refetch:ne}=Ic({clauses:M(),tokens:L?[L]:b.availableGasTokens,enabled:ee&&!!x?.genericDelegatorUrl}),re=V?.usedToken,U=(H||!V)&&_.isConnectedWithPrivy&&!x?.delegatorUrl,ie=r.default.useCallback(e=>{R(e),B(e),setTimeout(()=>ne(),100)},[ne]),W=!!re&&!te;return r.default.useEffect(()=>{te&&L&&R(null)},[te,L]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{"data-testid":`confirm-domain`,children:u(s?`Confirm Unset Domain`:`Confirm Name`)}),(0,i.jsx)(J,{onClick:I,isDisabled:j}),(0,i.jsx)(n.ModalCloseButton,{isDisabled:j})]}),(0,i.jsxs)(n.ModalBody,{children:[(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,mt:10,children:[(0,i.jsx)(n.Icon,{as:g.LuSquareUser,color:d,fontSize:`60px`,opacity:.5}),(0,i.jsx)(n.Text,{fontSize:`md`,textAlign:`center`,color:d,children:s?u(`By confirming, your current domain will be unset`):u(`By confirming, your address will be set to {{domain}}`,{domain:t})})]}),!s&&(0,i.jsx)(n.VStack,{spacing:4,align:`stretch`,mt:6,children:(0,i.jsx)(n.Text,{fontSize:`xl`,fontWeight:`bold`,color:d,textAlign:`center`,"data-testid":`preconfirm-domain-val`,children:t})}),_.isConnectedWithPrivy&&(0,i.jsx)(Kc,{estimation:V,isLoading:H,isLoadingTransaction:j,onTokenChange:ie,clauses:M(),userSelectedToken:z})]}),(0,i.jsx)(n.ModalFooter,{gap:4,w:`full`,children:(0,i.jsx)(Uc,{transactionError:k,isSubmitting:j,isTxWaitingConfirmation:A,onConfirm:P,onRetry:F,transactionPendingText:u(s?`Unsetting current domain...`:`Claiming name...`),txReceipt:O,buttonText:u(`Confirm`),isDisabled:j||U,onError:S,gasEstimationError:te,hasEnoughGasBalance:W,isLoadingGasEstimation:H,showGasEstimationError:!x?.delegatorUrl&&_.isConnectedWithPrivy,context:`domain`})})]})},ai=()=>{let{t:e}=(0,l.useTranslation)(),[t,a]=(0,r.useState)(``),o=(0,n.useToken)(`colors`,`vechain-kit-card`),s=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),c=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),u=(0,n.useToken)(`colors`,`vechain-kit-card`),d=(0,n.useToken)(`colors`,`vechain-kit-card-elevated`),f=[{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(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,children:[(0,i.jsxs)(n.InputGroup,{size:`lg`,children:[(0,i.jsx)(n.Input,{placeholder:e(`Search FAQ`),bg:o,borderRadius:`xl`,height:`56px`,pl:12,value:t,onChange:e=>a(e.target.value)}),(0,i.jsx)(n.InputLeftElement,{h:`56px`,w:`56px`,pl:4,children:(0,i.jsx)(g.LuSearch,{color:c})})]}),f.length===0?(0,i.jsxs)(n.VStack,{spacing:2,py:8,color:s,children:[(0,i.jsx)(n.Icon,{as:g.LuSlash,boxSize:12,opacity:.5}),(0,i.jsx)(n.Text,{fontSize:`lg`,children:e(`No questions found`)}),(0,i.jsx)(n.Text,{fontSize:`md`,children:e(`Try searching with a different term`)})]}):(0,i.jsx)(n.Accordion,{allowMultiple:!0,children:f.map((e,t)=>(0,i.jsx)(n.AccordionItem,{border:`none`,mb:2,children:({isExpanded:t})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.AccordionButton,{bg:u,borderRadius:`xl`,color:s,_hover:{bg:d},children:[(0,i.jsx)(n.Box,{flex:`1`,textAlign:`left`,py:2,children:(0,i.jsx)(n.Text,{fontWeight:`500`,color:s,children:e.question})}),(0,i.jsx)(n.Icon,{as:t?g.LuChevronUp:g.LuChevronDown,fontSize:`20px`,opacity:.5})]}),(0,i.jsx)(n.AccordionPanel,{pb:4,children:(0,i.jsx)(n.Text,{fontSize:`sm`,color:s,opacity:.8,children:e.answer})})]})},t))})]})},oi=({onGoBack:t,showLanguageSelector:r=!0})=>{let{i18n:a,t:o}=(0,l.useTranslation)(),{isolatedView:s}=Gr(),c=(0,n.useToken)(`colors`,`vechain-kit-card`),u=(0,n.useToken)(`colors`,`vechain-kit-border`),d=(0,n.useToken)(`colors`,`vechain-kit-border-hover`);return(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:o(`Help`)}),!s&&(0,i.jsx)(J,{onClick:t}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{spacing:6,align:`stretch`,children:[r&&(0,i.jsx)(n.Select,{borderRadius:`md`,size:`sm`,width:`auto`,value:a.language,onChange:e=>{a.changeLanguage(e.target.value)},bg:c,borderColor:u,_hover:{borderColor:d},children:de.map(e=>(0,i.jsx)(`option`,{value:e,children:G[e]},e))}),(0,i.jsx)(n.Button,{as:n.Link,href:e.C,isExternal:!0,variant:`vechainKitSecondary`,rightIcon:(0,i.jsx)(n.Icon,{as:g.LuExternalLink}),children:o(`For developers`)}),(0,i.jsx)(ai,{})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},si=({leftIcon:e,rightIcon:r,title:a,wallet:o,onClick:s,leftImage:c,isActive:u=!1})=>{let{t:d}=(0,l.useTranslation)(),{darkMode:f}=$();return(0,i.jsx)(n.Button,{w:`full`,minH:`70px`,h:`fit-content`,py:4,onClick:s,backgroundColor:`transparent`,border:`1px solid ${f?`#ffffff29`:`#ebebeb`}`,children:(0,i.jsxs)(n.HStack,{w:`full`,justify:`space-between`,children:[(0,i.jsx)(n.Box,{minW:`40px`,justifyContent:`center`,children:c?(0,i.jsx)(n.Image,{justifySelf:`center`,src:c,w:`28px`,alt:`left-image`}):(0,i.jsx)(n.Icon,{as:e,fontSize:`28px`})}),(0,i.jsxs)(n.VStack,{textAlign:`left`,w:`full`,flex:1,children:[(0,i.jsx)(n.HStack,{w:`full`,spacing:2,justifyContent:`flex-start`,children:(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`400`,children:a})}),(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`500`,opacity:.5,overflowWrap:`break-word`,wordBreak:`break-word`,whiteSpace:`normal`,w:`full`,children:o?.domain?t.G(o?.domain??``,18,0):t.W(o?.address??``,6,4)})]}),(0,i.jsx)(n.VStack,{minW:`40px`,justifyContent:`flex-end`,children:(0,i.jsxs)(n.HStack,{justifyContent:`flex-end`,minW:`40px`,children:[u&&(0,i.jsx)(n.Tag,{size:`sm`,colorScheme:`green`,children:d(`Active`)}),(0,i.jsx)(n.Icon,{as:r,fontSize:`20px`,opacity:.5})]})})]})})},Z=({leftIcon:e,rightIcon:t,title:r,onClick:a,leftImage:o,hide:s=!1,showComingSoon:c=!1,backgroundColor:u,_hover:d,isDisabled:f=!1,stacked:p=!1,isLoading:m,loadingText:h,style:g,extraContent:_,dataTestId:v,variant:y=`actionButton`})=>{let{t:b}=(0,l.useTranslation)();return(0,i.jsx)(n.Button,{variant:y===`actionButton`?`vechainKitSecondary`:y,py:p?0:2,minHeight:`50px`,height:`fit-content`,p:0,onClick:a,display:s?`none`:`flex`,isDisabled:c||f,isLoading:m,loadingText:h,bgColor:u,_hover:d,"data-testid":v,...g,children:(0,i.jsxs)(n.HStack,{w:`full`,justify:`space-between`,alignItems:`center`,children:[(0,i.jsx)(n.Box,{minW:`40px`,h:`20px`,children:o?(0,i.jsx)(n.Image,{src:o,w:`30px`,h:`30px`,borderRadius:`full`,alt:`left-image`,alignSelf:`end`,objectFit:`cover`}):(0,i.jsx)(n.Icon,{as:e,fontSize:`20px`,h:`full`,alignContent:`center`})}),(0,i.jsx)(n.VStack,{textAlign:`left`,w:`full`,flex:1,justifyContent:`flex-start`,alignItems:`flex-start`,children:(0,i.jsxs)(n.HStack,{justify:`flex-start`,alignItems:`baseline`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`400`,children:r}),c&&(0,i.jsx)(n.Tag,{size:`sm`,colorScheme:`red`,children:b(`Coming Soon!`)}),_]})}),t&&(0,i.jsx)(n.VStack,{minW:`40px`,justifyContent:`flex-end`,children:(0,i.jsx)(n.Icon,{as:t,fontSize:`20px`,opacity:.5})})]})})},ci=({wallet:e,setCurrentContent:a,size:o=`md`,onClick:s,onClose:c,mt:u,style:d})=>{let{t:p}=(0,l.useTranslation)(),{connection:m}=X(),{switchWallet:h,isSwitching:_,isInAppBrowser:v}=Gn(),{isSwitchWalletEnabled:y}=(0,f.useWallet)(),[b,x]=(0,r.useState)(!1),S=async()=>{await t.lt(e?.domain??e?.address??``)&&(x(!0),setTimeout(()=>{x(!1)},2e3))},C=()=>{v?h():a?.({type:`select-wallet`,props:{setCurrentContent:a,onClose:c,returnTo:`main`,onLogoutSuccess:c}})};return(0,i.jsxs)(n.HStack,{mt:u,w:`full`,...d,justifyContent:`flex-start`,alignItems:`center`,children:[(0,i.jsx)(n.Button,{w:`full`,h:12,"aria-label":`Wallet`,onClick:s,variant:`vechainKitSecondary`,p:3,"data-testid":`profile-button`,children:(0,i.jsxs)(n.HStack,{spacing:2,align:`center`,justifyContent:`space-between`,w:`full`,children:[(0,i.jsxs)(n.HStack,{spacing:2,justifyContent:`flex-start`,children:[(0,i.jsx)(Hc,{wallet:e,props:{width:7,height:7}}),(0,i.jsx)(n.Text,{fontSize:o,fontWeight:`500`,children:b?p(`Copied!`):t.G(e?.domain??``,22,0)||t.W(e?.address??``,6,4)})]}),(0,i.jsx)(n.Icon,{boxSize:5,as:g.LuChevronRight,cursor:`pointer`,opacity:.5})]})}),m.isInAppBrowser&&y||!m.isInAppBrowser&&m.isConnectedWithDappKit?(0,i.jsx)(n.IconButton,{"aria-label":`Switch wallet`,icon:(0,i.jsx)(n.Icon,{as:g.LuArrowLeftRight}),onClick:C,w:`60px`,h:12,variant:`vechainKitSecondary`,p:3,isLoading:_,isDisabled:_,"data-testid":`switch-wallet-button`}):(0,i.jsx)(n.IconButton,{"aria-label":`Copy address`,icon:(0,i.jsx)(n.Icon,{as:b?g.LuCheck:g.LuCopy}),onClick:S,w:`60px`,h:12,variant:`vechainKitSecondary`,p:3})]})},li=({address:e,maxIcons:a=3,iconSize:o=20,ml:s=0,style:c,iconsGap:u=0,rightIcon:d,showNoAssetsWarning:f=!1,onClick:p})=>{let{t:m}=(0,l.useTranslation)(),{tokensWithBalance:h}=cn({address:e}),{darkMode:g}=$(),_=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),v=u<1?`-${o/2}px`:`${u}px`,y=h.slice(0,a),b=h.length-a;return!e||h.length===0&&!f?null:(0,i.jsxs)(n.HStack,{spacing:0,ml:s,...c,onClick:p,children:[(0,i.jsxs)(n.HStack,{spacing:0,children:[y.map((e,a)=>(0,i.jsx)(n.Circle,{ml:a>0?v:`0`,zIndex:a,size:`${o}px`,borderRadius:`full`,bg:g?`gray.100`:`gray.600`,border:`2px solid #00000024`,alignItems:`center`,justifyContent:`center`,children:t.et[e.symbol]?r.default.cloneElement(t.et[e.symbol],{width:`${o*.8}px`,height:`${o*.8}px`,rounded:`full`}):t.$[e.symbol]?(0,i.jsx)(n.Image,{src:t.$[e.symbol],alt:`${e.symbol} logo`,width:`${o*.8}px`,height:`${o*.8}px`,rounded:`full`}):(0,i.jsx)(n.Text,{fontSize:`${o*.4}px`,fontWeight:`bold`,color:g?`black`:`white`,children:e.symbol.slice(0,3)})},e.symbol)),b>0&&(0,i.jsx)(n.Circle,{ml:v,zIndex:y.length,size:`${o}px`,borderRadius:`full`,bg:g?`gray.100`:`gray.700`,display:`flex`,alignItems:`center`,justifyContent:`center`,border:`2px solid`,children:(0,i.jsxs)(n.Text,{fontSize:`${o*.4}px`,fontWeight:`bold`,color:g?`black`:`white`,children:[`+`,b]})}),h.length===0&&f&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:_,fontWeight:`700`,children:m(`No assets`)})]}),d]})},ui=({mb:e,mt:t,onAssetsClick:a})=>{let{t:o}=(0,l.useTranslation)(),{account:s}=X(),{formattedBalance:c,isLoading:u}=ln({address:s?.address??``}),{refresh:d}=Wn(),[f,p]=(0,r.useState)(!1),m=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),h=async()=>{p(!0),await d(),setTimeout(()=>{p(!1)},1500)},[_,v]=wc(Cc.SHOW_ASSETS,!0);return(0,i.jsxs)(n.VStack,{w:`full`,justifyContent:`start`,spacing:1,mt:t,mb:e,children:[(0,i.jsxs)(n.HStack,{w:`full`,justifyContent:`space-between`,alignItems:`center`,spacing:0,role:`group`,children:[(0,i.jsx)(n.Heading,{size:`xs`,fontWeight:`800`,color:m,textTransform:`uppercase`,letterSpacing:1.2,ml:`5px`,children:o(`Assets`)}),(0,i.jsxs)(n.HStack,{spacing:0,alignItems:`center`,children:[(0,i.jsx)(n.IconButton,{"aria-label":`Refresh balances`,variant:`ghost`,size:`sm`,opacity:.5,_hover:{opacity:.8},onClick:h,icon:(0,i.jsx)(n.Icon,{as:g.LuRefreshCw,boxSize:4}),isLoading:u||f,sx:{"& > span.chakra-button__spinner":{width:`16px`,height:`16px`,position:`absolute`}}}),(0,i.jsx)(n.IconButton,{"aria-label":`Show/hide assets`,variant:`ghost`,size:`sm`,opacity:.5,_hover:{opacity:.8},onClick:()=>v(!_),icon:(0,i.jsx)(n.Icon,{as:_?A.GoEye:A.GoEyeClosed,boxSize:4})})]})]}),(0,i.jsx)(n.Button,{onClick:a,h:`fit-content`,variant:`vechainKitSecondary`,children:(0,i.jsxs)(n.VStack,{spacing:2,w:`full`,justifyContent:`flex-start`,alignItems:`flex-start`,mt:4,mb:4,children:[(0,i.jsx)(n.Heading,{size:`2xl`,fontWeight:`700`,children:_?c:`$****`}),(0,i.jsx)(n.HStack,{w:`full`,justifyContent:`flex-start`,"data-testid":`all-assets-button`,mt:2,children:(0,i.jsx)(li,{style:{width:`100%`,justifyContent:`space-between`},maxIcons:10,iconSize:26,iconsGap:3,address:s?.address??``,showNoAssetsWarning:!0,rightIcon:(0,i.jsx)(n.Icon,{as:g.LuChevronRight,boxSize:5,opacity:.5,marginLeft:2})})})]})})]})},di=[{icon:g.LuArrowUpFromLine,label:`Send`,onClick:e=>e({type:`send-token`,props:{setCurrentContent:e}}),isDisabled:e=>!e},{icon:g.LuArrowLeftRight,label:`Swap`,onClick:e=>{e(`swap-token`)},isDisabled:e=>!e},{icon:g.LuArrowDownToLine,label:`Receive`,onClick:e=>{e(`receive-token`)}}],fi=({icon:e,label:t,onClick:r,isDisabled:a,showRedDot:o})=>{let{t:s}=(0,l.useTranslation)();return(0,i.jsx)(n.IconButton,{variant:`vechainKitSecondary`,h:`80px`,w:`full`,"aria-label":t,isDisabled:a,p:3,icon:(0,i.jsxs)(n.VStack,{spacing:4,children:[(0,i.jsx)(n.Icon,{as:e,boxSize:5,opacity:.9}),(0,i.jsxs)(n.HStack,{p:0,alignItems:`baseline`,spacing:1,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`600`,"data-testid":`${t.toLowerCase()}-button-label`,children:s(t,t)}),o&&(0,i.jsx)(n.Box,{minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`})]})]}),onClick:r})},pi=({mt:e,setCurrentContent:t})=>{let{account:r,smartAccount:a,connectedWallet:o,connection:s}=X(),{hasAnyBalance:c}=ln({address:r?.address??``}),{data:l}=Ks(a?.address??``,o?.address??``,3),u=s.isConnectedWithPrivy&&l;return(0,i.jsx)(n.Grid,{templateColumns:`repeat(3, 1fr)`,gap:2,w:`full`,mt:e,children:di.map(e=>(0,i.jsx)(fi,{icon:e.icon,label:e.label,onClick:()=>e.onClick(t),isDisabled:e.isDisabled?.(c),showRedDot:u&&e.label===`Settings`},e.label))})},mi=({setCurrentContent:e})=>{let{t}=(0,l.useTranslation)(),r=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),a=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`);return(0,i.jsx)(n.Card,{w:`full`,variant:`featureAnnouncement`,overflow:`hidden`,onClick:()=>{e({type:`choose-name`,props:{setCurrentContent:e,onBack:()=>e(`profile`),initialContentSource:`profile`}})},cursor:`pointer`,_hover:{opacity:.8},children:(0,i.jsx)(n.CardBody,{p:4,children:(0,i.jsx)(n.HStack,{justify:`space-between`,align:`flex-start`,spacing:3,children:(0,i.jsxs)(n.VStack,{align:`flex-start`,spacing:1,children:[(0,i.jsxs)(n.HStack,{spacing:2,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`400`,color:r,children:t(`Claim your vet domain!`)}),(0,i.jsx)(n.Tag,{size:`sm`,colorScheme:`red`,children:t(`New`)})]}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:a,children:t(`Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!`)})]})})})})},hi=()=>{let{t:e}=(0,l.useTranslation)();return(0,i.jsx)(n.Alert,{status:`warning`,fontSize:`xs`,borderRadius:`xl`,p:2,children:(0,i.jsx)(n.VStack,{spacing:1,align:`stretch`,w:`full`,children:(0,i.jsxs)(n.HStack,{spacing:2,align:`flex-start`,children:[(0,i.jsx)(n.AlertIcon,{boxSize:4,mt:`10px`}),(0,i.jsx)(n.Text,{w:`full`,children:e(`Sending to OceanX or other exchanges may result in loss of funds.`)})]})})})},gi=()=>{let{t:e}=(0,l.useTranslation)();return(0,i.jsx)(n.Alert,{status:`warning`,fontSize:`xs`,borderRadius:`xl`,p:2,children:(0,i.jsx)(n.VStack,{spacing:1,align:`stretch`,w:`full`,children:(0,i.jsxs)(n.HStack,{spacing:2,align:`flex-start`,children:[(0,i.jsx)(n.AlertIcon,{boxSize:4,mt:`10px`}),(0,i.jsx)(n.Text,{w:`full`,children:e(`A .vet domain is required to customize your profile. Choose an account name to get started.`)})]})})})},_i=()=>{let{t}=(0,l.useTranslation)(),{getConnectionCache:r}=Zo(),a=r();return(0,i.jsxs)(n.Card,{variant:`vechainKitBase`,w:`full`,children:[(0,i.jsxs)(n.CardHeader,{p:4,pl:6,borderBottomWidth:`1px`,children:[(0,i.jsx)(n.Text,{fontWeight:`medium`,opacity:.8,children:t(`Security preferences`)}),(0,i.jsx)(n.Text,{fontSize:`xs`,mt:1,opacity:.7,children:t(`For security reasons, you can manage your embedded wallet settings only on the {{appName}} platform.`,{appName:a?.ecosystemApp.name??`origin app`})})]}),(0,i.jsx)(n.CardBody,{borderRadius:`none`,children:(0,i.jsxs)(n.VStack,{spacing:3,align:`stretch`,children:[(0,i.jsxs)(n.HStack,{spacing:3,align:`center`,children:[(0,i.jsx)(n.Center,{w:`fit-content`,h:`fit-content`,p:2,borderRadius:`full`,bg:`blackAlpha.100`,flexShrink:0,children:(0,i.jsx)(n.Icon,{as:g.LuUserCog})}),(0,i.jsxs)(n.Box,{flex:1,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,lineHeight:`shorter`,children:t(`Login methods`)}),(0,i.jsx)(n.Text,{fontSize:`xs`,opacity:.7,lineHeight:`shorter`,children:t(`Manage your login methods and passkeys`)})]})]}),(0,i.jsxs)(n.HStack,{spacing:3,align:`center`,children:[(0,i.jsx)(n.Center,{w:`fit-content`,h:`fit-content`,p:2,borderRadius:`full`,bg:`blackAlpha.100`,flexShrink:0,children:(0,i.jsx)(n.Icon,{as:g.LuShieldCheck})}),(0,i.jsxs)(n.Box,{flex:1,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,lineHeight:`shorter`,children:t(`Security settings`)}),(0,i.jsx)(n.Text,{fontSize:`xs`,opacity:.7,lineHeight:`shorter`,children:t(`Backup your wallet, configure MFA and set recovery options`)})]})]})]})}),(0,i.jsx)(n.CardFooter,{children:(0,i.jsxs)(n.Button,{variant:`vechainKitSecondary`,w:`full`,onClick:()=>{window.open(a?.ecosystemApp.website??e.y,`_blank`)},children:[t(`Manage on {{appName}}`,{appName:a?.ecosystemApp.name??`origin app`}),(0,i.jsx)(n.Icon,{as:g.LuExternalLink,ml:2})]})})]})},vi=({setCurrentContent:e,initialContentSource:a=`profile`})=>{let{t:o}=(0,l.useTranslation)(),{network:s}=$(),{account:c}=X(),u=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),d=(0,n.useToken)(`colors`,`vechain-kit-error`),f=(0,n.useToken)(`colors`,`vechain-kit-card`),p=(0,r.useRef)(null),m=(0,r.useRef)(null),[h,_]=(0,r.useState)(!1),{onUpload:v}=sr({compressImage:!0}),[y,b]=(0,r.useState)(null),[x,S]=(0,r.useState)(null),C=!!c?.domain,[w,T]=(0,r.useState)(null),[E,O]=(0,r.useState)(``),[k,A]=(0,r.useState)(``),{register:j,watch:M,formState:{errors:N,isValid:P}}=(0,D.useForm)({defaultValues:{displayName:c?.metadata?.display||``,description:c?.metadata?.description||``},mode:`onChange`});(0,r.useEffect)(()=>{if(c?.metadata){let e=c.metadata;O(e.display||``),A(e.description||``),T(c.image?c.image.replace(`ipfs://`,``):null),b(e=>e??c.image??null)}},[c,s.type]);let F=M(),I=async e=>{let n=e.target.files?.[0];if(n)try{_(!0),y&&URL.revokeObjectURL(y),b(URL.createObjectURL(n));let e=await v(n);if(!e)throw Error(`Failed to compress image`);S(await t.D(e.file,n.name,s.type))}catch(e){console.error(`Error uploading image:`,e),b(null)}finally{_(!1)}};(0,r.useEffect)(()=>()=>{y&&URL.revokeObjectURL(y)},[y]);let L=()=>{let e={};return x!==w&&x&&(e.avatarIpfsHash=x),F.displayName!==E&&(e.displayName=F.displayName),F.description!==k&&(e.description=F.description),e},R=(0,r.useMemo)(()=>{let e=L();return Object.keys(e).length>0},[L]),z=()=>{e({type:`account-customization-summary`,props:{setCurrentContent:e,changes:L(),onDoneRedirectContent:a}})},B=()=>{e(a)};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{"data-testid":`modal-title`,children:o(`Customization`)}),(0,i.jsx)(J,{onClick:B}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.ModalBody,{children:[(0,i.jsxs)(n.Box,{cursor:C?`pointer`:`default`,pt:2,display:`flex`,justifyContent:`center`,position:`relative`,onClick:()=>C&&p.current?.click(),children:[(0,i.jsx)(Hc,{wallet:c,props:{width:`100px`,height:`100px`,boxShadow:`0px 0px 3px 2px #00000024`,src:y??void 0}}),C&&(0,i.jsx)(n.Icon,{as:g.LuCamera,position:`absolute`,top:`80px`,left:`60%`,bg:f,color:u,p:`1`,borderRadius:`full`,boxSize:`6`}),h&&(0,i.jsx)(n.Box,{display:`flex`,alignItems:`center`,justifyContent:`center`,backgroundColor:`rgba(0, 0, 0, 0.5)`,position:`absolute`,transform:`translateX(0%)`,width:`100px`,height:`100px`,borderRadius:`full`,zIndex:10,children:(0,i.jsx)(n.Text,{fontSize:`xs`,color:`white`,children:h?`Uploading...`:`Processing...`})})]}),(0,i.jsxs)(n.VStack,{spacing:6,mt:4,children:[!C&&(0,i.jsx)(gi,{}),(0,i.jsx)(Z,{title:c?.domain??o(`Choose account name`),description:o(`Choose a unique .vet domain name for your account.`),onClick:()=>{c?.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:g.LuSquareUser,rightIcon:g.LuChevronRight,dataTestId:`set-domain-name-button`}),(0,i.jsxs)(n.FormControl,{isDisabled:!C,isInvalid:!!N.displayName,children:[(0,i.jsx)(n.FormLabel,{fontSize:`sm`,fontWeight:`medium`,color:u,children:o(`Display Name`)}),(0,i.jsx)(n.Input,{...j(`displayName`,{maxLength:{value:25,message:o(`Display name must be less than 25 characters`)}}),placeholder:o(C?`Enter your display name`:`Set a domain first`),fontWeight:`medium`,color:u,"data-testid":`display-name-input`}),N.displayName&&(0,i.jsx)(n.Text,{color:d,fontSize:`sm`,mt:1,fontWeight:`medium`,children:N.displayName.message})]}),(0,i.jsxs)(n.FormControl,{isDisabled:!C,isInvalid:!!N.description,children:[(0,i.jsx)(n.FormLabel,{fontSize:`sm`,fontWeight:`medium`,color:u,children:o(`Description`)}),(0,i.jsx)(n.Textarea,{...j(`description`,{maxLength:{value:100,message:o(`Description must be less than 100 characters`)}}),placeholder:o(`Eg: DevRel @ ENS Labs`),fontWeight:`medium`,color:u,"data-testid":`description-input`,minH:`50px`}),N.description&&(0,i.jsx)(n.Text,{color:d,mt:1,fontSize:`sm`,fontWeight:`medium`,children:N.description.message})]})]}),(0,i.jsx)(`input`,{type:`file`,ref:p,hidden:!0,accept:`image/*`,onChange:async e=>await I(e)}),(0,i.jsx)(`input`,{type:`file`,ref:m,hidden:!0,accept:`image/*`,onChange:async e=>{e.preventDefault()}})]}),(0,i.jsx)(n.ModalFooter,{w:`full`,children:(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,onClick:z,isDisabled:!C||!R||!P,isLoading:h,loadingText:o(`Preparing changes...`),"data-testid":`save-changes-button`,children:o(`Save Changes`)})})]})},yi=({setCurrentContent:e,changes:a,onDoneRedirectContent:o})=>{let{t:s}=(0,l.useTranslation)(),{darkMode:c,network:u,feeDelegation:d}=$(),f=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),{account:m,connectedWallet:h,connection:_}=X(),{preferences:v}=Fc(),{data:y}=Ks(m?.address??``,h?.address??``,3),{open:b}=Bo(),{handleSubmit:x}=(0,D.useForm)({defaultValues:{...a,avatarIpfsHash:a.avatarIpfsHash??void 0}}),S=m?.domain??``,{data:C}=Pt(S),w=(0,p.useQueryClient)(),{sendTransaction:T,txReceipt:E,error:O,isWaitingForWalletConfirmation:k,isTransactionPending:A,clauses:j}=Mt({resolverAddress:C,signerAccountAddress:m?.address??``,onSuccess:async()=>{try{await ce()}catch(e){console.error(`Error refreshing data:`,e)}},onError:e=>{console.error(`Error updating text record:`,e)}}),[M,N]=r.default.useState(!1);r.default.useEffect(()=>{if(!E||E.reverted||M||A)return;let t=E.meta.txID;t&&(N(!0),e({type:`successful-operation`,props:{setCurrentContent:e,txId:t,title:s(`Profile Updated`),description:s(`Your changes have been saved successfully.`),onDone:()=>{e(o)}}}))},[E,M,A,e,s,o]),r.default.useEffect(()=>{A&&N(!1)},[A]);let P=(0,r.useMemo)(()=>{let e=m?.domain??``,t={displayName:`display`,description:`description`,twitter:`com.x`,website:`url`,email:`email`,avatarIpfsHash:`avatar`};return Object.entries(a).filter(e=>e[1]!==void 0&&e[1]!==null).map(([n,r])=>({domain:e,key:t[n],value:n===`avatarIpfsHash`?`ipfs://${r}`:r}))},[a,m?.domain]),F=(0,r.useMemo)(()=>{try{return!C||P.length===0||!j?[]:j(P)}catch(e){return console.error(`Error building clauses:`,e),[]}},[P,j,C]),[I,L]=r.default.useState(null),[R,z]=r.default.useState(null),B=v.availableGasTokens.length>0&&(_.isConnectedWithPrivy||_.isConnectedWithVeChain)&&!d?.delegatorUrl,{data:ee,isLoading:V,error:H,refetch:te}=Ic({clauses:F,tokens:I?[I]:v.availableGasTokens,enabled:B&&!!d?.genericDelegatorUrl}),ne=ee?.usedToken,re=(V||!ee)&&_.isConnectedWithPrivy&&!d?.delegatorUrl,U=r.default.useCallback(e=>{L(e),z(e),setTimeout(()=>te(),100)},[te]),ie=!!ne&&!H;r.default.useEffect(()=>{H&&I&&L(null)},[H,I]);let W=async()=>{if(y){b();return}try{P.length>0&&await T(P)}catch(e){console.error(`Error saving changes:`,e)}},ae=(e,t)=>t?.trim()?(0,i.jsxs)(n.VStack,{align:`flex-start`,w:`full`,spacing:1,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,color:c?`whiteAlpha.600`:`blackAlpha.600`,children:e}),(0,i.jsx)(n.Text,{fontSize:`md`,children:t})]}):null,oe=()=>{x(W)()},se=()=>{e({type:`account-customization`,props:{setCurrentContent:e}})},ce=async()=>{a.avatarIpfsHash&&(w.setQueryData(wt(S,u.type),t.g(`ipfs://`+a.avatarIpfsHash,u.type)),w.setQueryData(Rt(m?.address??``),t.g(`ipfs://`+a.avatarIpfsHash,u.type))),await w.invalidateQueries({queryKey:Ot(S,u.type)}),await w.refetchQueries({queryKey:Ot(S,u.type)})};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:s(`Confirm Changes`)}),(0,i.jsx)(J,{isDisabled:A,onClick:se}),(0,i.jsx)(n.ModalCloseButton,{isDisabled:A})]}),(0,i.jsxs)(n.ModalBody,{children:[(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,mt:10,children:[(0,i.jsx)(n.Icon,{as:g.LuFileText,color:f,fontSize:`60px`,opacity:.5}),(0,i.jsx)(n.Text,{fontSize:`md`,textAlign:`center`,color:f,children:s(`By confirming, the following details attached to your name ({{domain}}) will be updated`,{domain:S})})]}),(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,mt:6,children:[a.avatarIpfsHash&&(0,i.jsxs)(n.VStack,{align:`flex-start`,w:`full`,spacing:1,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,color:c?`whiteAlpha.600`:`blackAlpha.600`,children:s(`Profile Image`)}),(0,i.jsx)(n.Text,{fontSize:`md`,children:s(`New image selected`)})]}),a.displayName&&ae(s(`Display Name`),a.displayName),a.description&&ae(s(`Description`),a.description),a.twitter&&ae(s(`Twitter`),a.twitter),a.website&&ae(s(`Website`),a.website),a.email&&ae(s(`Email`),a.email)]}),_.isConnectedWithPrivy&&(0,i.jsx)(Kc,{estimation:ee,isLoading:V,isLoadingTransaction:A,onTokenChange:U,clauses:F,userSelectedToken:R})]}),(0,i.jsx)(n.ModalFooter,{gap:4,w:`full`,children:(0,i.jsx)(Uc,{transactionError:O,isSubmitting:A,isTxWaitingConfirmation:k,onConfirm:x(W),onRetry:oe,transactionPendingText:s(`Saving changes...`),txReceipt:E,buttonText:s(`Confirm`),isDisabled:A||re,gasEstimationError:H,hasEnoughGasBalance:ie,isLoadingGasEstimation:V,showGasEstimationError:!d?.delegatorUrl&&_.isConnectedWithPrivy,context:`customization`})})]})},bi=({address:e,showHeader:r=!0,showLinks:a=!0,showDescription:o=!0,showDisplayName:s=!0,reserveNameDescriptionSpace:c=!1,setCurrentContent:l,onLogout:u})=>{let{network:d}=$(),f=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),p=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),m=(0,n.useToken)(`colors`,`vechain-kit-card`),h=Hn(e,d.type),_=t.U(e),v=h?.records?.url||h?.records?.[`com.x`]||h?.records?.email,y=e=>{try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`?t.toString():null}catch{return null}};return(0,i.jsxs)(n.VStack,{spacing:0,w:`full`,children:[(0,i.jsx)(n.Box,{p:0,backgroundSize:`100% !important`,backgroundPosition:`center`,position:`relative`,background:r?`no-repeat url('${_}')`:`none`,w:`100%`,borderRadius:`14px 14px 0 0`}),(0,i.jsxs)(n.Box,{position:`relative`,display:`inline-block`,cursor:l?`pointer`:`default`,onClick:l?()=>{l({type:`account-customization`,props:{setCurrentContent:l,initialContentSource:`profile`}})}:void 0,children:[(0,i.jsx)(Hc,{wallet:{address:e,domain:h?.domain,image:h?.image,isLoadingMetadata:h?.isLoading,metadata:h?.records},props:{width:`120px`,height:`120px`}}),l&&(0,i.jsx)(n.Icon,{as:g.LuPencil,position:`absolute`,bottom:`0`,right:`0`,bg:m,color:f,p:`1`,borderRadius:`full`,boxSize:`6`,border:`2px solid`,borderColor:m})]}),(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,children:[s&&(h?.records?.display?(0,i.jsx)(n.Text,{fontSize:`xl`,color:f,fontWeight:`bold`,w:`full`,textAlign:`center`,mt:2,"data-testid":`display-name-val`,children:h?.records?.display}):c&&(0,i.jsx)(n.Box,{mt:2,minH:`28px`,"aria-hidden":!0})),o&&(h?.records?.description?(0,i.jsx)(n.Text,{fontSize:`sm`,color:p,w:`full`,textAlign:`center`,"data-testid":`description-val`,children:h?.records?.description}):c&&(0,i.jsx)(n.Box,{minH:`20px`,"aria-hidden":!0})),a&&v&&(0,i.jsxs)(n.HStack,{w:`full`,justify:`center`,spacing:5,mt:4,children:[h?.records?.email&&(0,i.jsx)(n.Link,{href:`mailto:${h?.records?.email}`,target:`_blank`,"data-testid":`mail-link`,children:(0,i.jsx)(n.Icon,{as:g.LuMail,color:f})}),h?.records?.url&&(0,i.jsx)(n.Link,{href:y(h.records.url)??void 0,target:`_blank`,rel:`noopener noreferrer`,"data-testid":`website-link`,children:(0,i.jsx)(n.Icon,{as:g.LuGlobe,color:f})}),h?.records?.[`com.x`]&&(0,i.jsx)(n.Link,{href:`https://x.com/${encodeURIComponent(String(h.records[`com.x`]))}`,target:`_blank`,rel:`noopener noreferrer`,"data-testid":`twitter-link`,children:(0,i.jsx)(n.Icon,{as:j.FaXTwitter,color:f})})]}),(0,i.jsx)(Re,{onLogout:u,wallet:{address:e,domain:h?.domain,image:h?.image,isLoadingMetadata:h?.isLoading,metadata:h?.records},style:{mt:4},setCurrentContent:l})]})]})},xi=({onClick:e,...t})=>{let{smartAccount:a,connectedWallet:o,connection:s}=X(),[c,l]=(0,r.useState)(!1);(0,r.useEffect)(()=>{l(!localStorage.getItem(`app-first-visit`))},[]);let{data:u}=Ks(a?.address??``,o?.address??``,3),d=s.isConnectedWithPrivy&&u,f=()=>{c&&(localStorage.setItem(`app-first-visit`,`true`),l(!1)),e()};return(0,i.jsx)(n.IconButton,{"aria-label":`Settings`,size:`sm`,variant:`vechainKitHeaderIconButtons`,position:`absolute`,left:`10px`,top:`8px`,lineHeight:`0`,onClick:f,icon:(0,i.jsxs)(n.Box,{position:`relative`,children:[(0,i.jsx)(n.Icon,{as:g.LuSettings2,fontSize:`18px`}),d&&(0,i.jsx)(n.Box,{position:`absolute`,top:`-1px`,right:`-1px`,minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`})]}),...t})},Si=({setCurrentContent:e,onLogoutSuccess:t,switchFeedback:r})=>{let{t:a}=(0,l.useTranslation)(),{account:o,disconnect:s,connection:c}=X(),{switchWallet:u,isSwitching:d,isInAppBrowser:p}=Gn(),{isSwitchWalletEnabled:m}=(0,f.useWallet)(),{hasAnyBalance:h,formattedBalance:_}=ln({address:o?.address}),[v]=wc(Cc.SHOW_ASSETS,!0),y=()=>{p?u():e({type:`select-wallet`,props:{setCurrentContent:e,onClose:()=>{},returnTo:`profile`,onLogoutSuccess:t}})};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{"data-testid":`modal-title`,children:a(`Profile`)}),(0,i.jsx)(xi,{onClick:()=>{e(`settings`)},"data-testid":`settings-button`}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{w:`full`,spacing:6,children:[(0,i.jsx)(Xc,{showFeedback:r?.showFeedback}),!o?.domain&&(0,i.jsx)(mi,{setCurrentContent:e}),(0,i.jsx)(bi,{reserveNameDescriptionSpace:!!o?.domain,onEditClick:()=>{e({type:`account-customization`,props:{setCurrentContent:e,initialContentSource:`profile`}})},address:o?.address??``,showHeader:!1,setCurrentContent:e,onLogout:()=>{s(),t?.()}})]})}),(0,i.jsx)(n.ModalFooter,{w:`full`,children:(0,i.jsxs)(n.HStack,{w:`full`,justify:`space-between`,spacing:4,mt:4,children:[(0,i.jsx)(n.Button,{size:`md`,width:`full`,height:`40px`,variant:`vechainKitSecondary`,leftIcon:h?void 0:(0,i.jsx)(n.Icon,{as:g.LuWalletCards}),onClick:()=>e(`main`),"data-testid":`wallet-button`,children:h?(0,i.jsxs)(n.HStack,{spacing:2,w:`full`,justify:`center`,children:[(0,i.jsx)(li,{address:o?.address??``,maxIcons:2}),(0,i.jsx)(n.Text,{fontWeight:`600`,children:v?_:`$****`})]}):a(`Wallet`)}),c.isInAppBrowser&&m||!c.isInAppBrowser&&c.isConnectedWithDappKit?(0,i.jsx)(n.Button,{size:`md`,width:`full`,height:`40px`,variant:`vechainKitSecondary`,leftIcon:(0,i.jsx)(n.Icon,{as:g.LuArrowLeftRight}),colorScheme:`red`,onClick:async()=>{y()},isLoading:d,isDisabled:d,"data-testid":`switch-wallet-button`,children:a(`Switch`)}):(0,i.jsx)(n.Button,{size:`md`,width:`full`,height:`40px`,variant:`vechainKitSecondary`,leftIcon:(0,i.jsx)(n.Icon,{as:g.LuLogOut}),colorScheme:`red`,onClick:()=>e({type:`disconnect-confirm`,props:{onDisconnect:()=>{s(),t?.()},onBack:()=>e?.(`profile`)}}),"data-testid":`logout-button`,children:a(`Logout`)})]})})]})},Ci=({setCurrentContent:e,handleClose:t,initialContent:r=`settings`})=>{let{t:a}=(0,l.useTranslation)(),{smartAccount:o,connectedWallet:s}=X(),{data:c}=Ks(o?.address??``,s?.address??``,3),{sendTransaction:u,isTransactionPending:d,isWaitingForWalletConfirmation:f,error:p,txReceipt:m}=Zs({smartAccountAddress:o?.address??``,targetVersion:3,onSuccess:()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:m?.meta.txID,title:a(`Upgrade Successful!`),description:a(`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(r)},showSocialButtons:!1}})},onError:()=>{console.error(`Error upgrading Smart Account`)}});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Account upgrade required`)}),(0,i.jsx)(J,{onClick:()=>{e(r)}}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:10,align:`stretch`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:a(c?`Your smart account needs to be upgraded to the latest version (v3).`:`Your smart account is already upgraded to this version.`)}),(0,i.jsxs)(n.HStack,{align:`center`,justifyContent:`space-evenly`,rounded:`md`,children:[(0,i.jsxs)(n.Box,{position:`relative`,display:`inline-block`,children:[(0,i.jsx)(n.Circle,{size:`60px`,bg:`gray.200`,children:(0,i.jsx)(n.Image,{borderRadius:`full`,src:o?.image,alt:a(`Profile Picture`),w:`100%`,h:`100%`,objectFit:`cover`})}),(0,i.jsx)(n.Heading,{position:`absolute`,top:`-5`,right:`-5`,color:`#D23F63`,fontSize:`28px`,children:`v1`})]}),(0,i.jsx)(n.Icon,{as:g.LuArrowRight,color:`#3DBA67`}),(0,i.jsxs)(n.Box,{position:`relative`,display:`inline-block`,children:[(0,i.jsx)(n.Circle,{size:`60px`,bg:`gray.200`,children:(0,i.jsx)(n.Image,{borderRadius:`full`,src:o?.image,alt:a(`Profile Picture`),w:`100%`,h:`100%`,objectFit:`cover`})}),(0,i.jsx)(n.Heading,{position:`absolute`,top:`-5`,right:`-5`,color:`#3DBA67`,fontSize:`28px`,children:`v3`})]})]}),(0,i.jsxs)(n.Alert,{status:`info`,borderRadius:`md`,children:[(0,i.jsx)(n.AlertIcon,{}),(0,i.jsxs)(n.Box,{children:[(0,i.jsx)(n.AlertTitle,{fontSize:`sm`,children:a(`Benefits of this upgrade:`)}),(0,i.jsx)(n.AlertDescription,{fontSize:`xs`,children:(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,mt:1,children:[(0,i.jsxs)(n.Text,{fontSize:`xs`,lineHeight:`1.2`,children:[`• `,a(`Improved security features`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`• `,a(`Better transaction handling`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`•`,` `,a(`Enhanced compatibility with dApps`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`•`,` `,a(`Reduced gas costs for operations`)]})]})})]})]})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.VStack,{spacing:3,w:`full`,children:[(0,i.jsx)(Uc,{buttonText:a(c?`Upgrade account`:`Account already upgraded`),onConfirm:async()=>{try{await u()}catch(e){console.error(`Failed to upgrade Smart Account:`,e)}},isTxWaitingConfirmation:f,isSubmitting:d,transactionPendingText:a(`Upgrading...`),txReceipt:m,transactionError:p,isDisabled:!c}),(0,i.jsx)(n.Button,{mt:2,variant:`link`,onClick:()=>{t?t():e(r)},isDisabled:d,children:a(c?`Close and do this later`:`Close`)})]})})]})},wi=({setCurrentContent:e})=>{let{account:a}=X(),{sortedTokens:o}=cn({address:a?.address}),{allowCustomTokens:s,darkMode:c}=$(),{currentCurrency:u}=sn(),d=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),{t:f}=(0,l.useTranslation)(),{isolatedView:p}=Gr(),[m,h]=(0,r.useState)(``),_=t=>{e({type:`send-token`,props:{setCurrentContent:e,preselectedToken:t,onBack:()=>e(`assets`)}})},v=o.filter(({symbol:e})=>e.toLowerCase().includes(m.toLowerCase()));return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:f(`Assets`)}),!p&&(0,i.jsx)(J,{onClick:()=>e(`main`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.Container,{h:[`540px`,`auto`],p:0,children:[(0,i.jsxs)(n.ModalBody,{children:[(0,i.jsxs)(n.InputGroup,{size:`lg`,children:[(0,i.jsx)(n.Input,{placeholder:`Search token`,bg:c?`#00000038`:`gray.50`,borderRadius:`xl`,height:`56px`,pl:12,value:m,onChange:e=>h(e.target.value),"data-testid":`search-token-input`}),(0,i.jsx)(n.InputLeftElement,{h:`56px`,w:`56px`,pl:4,children:(0,i.jsx)(g.LuSearch,{color:d})})]}),(0,i.jsx)(n.VStack,{spacing:2,align:`stretch`,mt:2,children:v.map(e=>{let n=Number(e.balance)>0,r=t.Z.includes(e.symbol);return(0,i.jsx)(Rc,{symbol:e.symbol,amount:Number(e.balance),currencyValue:e.valueInCurrency,currentCurrency:u,onClick:()=>_(e),isDisabled:!n||r},e.address)})})]}),(0,i.jsx)(n.ModalFooter,{children:s&&(0,i.jsx)(n.Button,{variant:`vechainKitSecondary`,leftIcon:(0,i.jsx)(n.Icon,{as:g.LuPencil,boxSize:4}),onClick:()=>e(`add-custom-token`),children:f(`Manage Custom Tokens`)})})]})]})},Ti=({setCurrentContent:e})=>{let{t:r}=(0,l.useTranslation)(),a=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),o=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),s=(0,n.useToken)(`colors`,`vechain-kit-card`),c=(0,n.useToken)(`colors`,`vechain-kit-overlay`),{addToken:u,removeToken:d,isTokenIncluded:f,isDefaultToken:p,customTokens:m}=_n(),{register:h,setError:_,setValue:v,formState:{errors:y,isValid:b},handleSubmit:x}=(0,D.useForm)({defaultValues:{newTokenAddress:``},mode:`onChange`}),S=async e=>{if(e.newTokenAddress){if(f(e.newTokenAddress)||p(e.newTokenAddress))return _(`newTokenAddress`,{type:`manual`,message:r(`Token already added`)});try{await u(e.newTokenAddress),v(`newTokenAddress`,``)}catch(e){console.error(`Error adding token 2:`,e),_(`newTokenAddress`,{type:`manual`,message:r(`Invalid token address`)})}}};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r(`Manage Custom Tokens`)}),(0,i.jsx)(J,{onClick:()=>e(`assets`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,position:`relative`,children:[(0,i.jsx)(n.Box,{p:6,borderRadius:`xl`,bg:s,children:(0,i.jsx)(n.VStack,{align:`stretch`,spacing:2,children:(0,i.jsxs)(n.FormControl,{isInvalid:!!y.newTokenAddress,children:[(0,i.jsx)(n.FormLabel,{fontSize:`sm`,fontWeight:`medium`,color:a,children:r(`Token Contract Address`)}),(0,i.jsx)(n.Input,{...h(`newTokenAddress`,{required:r(`Address is required`),pattern:{value:/^0x[a-fA-F0-9]{40}$/,message:r(`Please enter a valid contract address`)},validate:e=>/^0x[a-fA-F0-9]{40}$/.test(e)||r(`Invalid contract address`)}),onChange:e=>{let t=e.target.value.trim();e.target.value=t,v(`newTokenAddress`,t,{shouldValidate:!0})},placeholder:`0x...`,variant:`outline`,fontSize:`md`,fontWeight:`medium`}),y.newTokenAddress&&(0,i.jsx)(n.Text,{color:`#ef4444`,fontSize:`sm`,children:y.newTokenAddress.message})]})})}),m.length>0&&(0,i.jsxs)(n.Box,{p:4,borderRadius:`xl`,bg:c,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,mb:2,children:r(`Existing Custom Tokens`)}),(0,i.jsx)(n.VStack,{align:`stretch`,spacing:2,children:m.map(e=>(0,i.jsxs)(n.HStack,{justify:`space-between`,fontSize:`sm`,p:2,borderRadius:`md`,bg:s,children:[(0,i.jsxs)(n.HStack,{children:[(0,i.jsx)(n.Image,{src:t.$[e?.symbol],alt:`${e.symbol} logo`,boxSize:`20px`,borderRadius:`full`,fallback:(0,i.jsx)(n.Box,{boxSize:`20px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Text,{fontSize:`8px`,fontWeight:`bold`,color:a,children:e.symbol?.slice(0,3)})})}),(0,i.jsx)(n.Text,{fontWeight:`medium`,color:a,children:e.symbol??`Unknown`})]}),(0,i.jsx)(n.Text,{color:o,children:t.W(e.address??``,4,4)}),(0,i.jsx)(n.Button,{size:`sm`,variant:`ghost`,color:a,borderRadius:`md`,p:2,onClick:()=>d(e.address),children:(0,i.jsx)(g.LuTrash2,{size:16,color:a})})]},e.address))})]})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,isDisabled:!b,onClick:x(S),children:r(`Add Token`)})})]})},Ei=({setCurrentContent:t})=>{let{t:r}=(0,l.useTranslation)(),{darkMode:a}=$(),{isolatedView:o}=Gr();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r(`Bridge`)}),!o&&(0,i.jsx)(J,{onClick:()=>t(`main`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.Container,{maxW:`container.lg`,children:(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,w:`full`,children:[(0,i.jsx)(e.r,{isDark:a,borderRadius:`xl`}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:r(`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.`)})]})})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsxs)(n.Button,{variant:`vechainKitSecondary`,onClick:()=>{window.open(e.x,`_blank`)},children:[r(`Launch vechain.energy`),(0,i.jsx)(n.Icon,{as:g.LuExternalLink,ml:2})]})})]})},Di=({setCurrentContent:e})=>{let{t:a}=(0,l.useTranslation)(),{currentCurrency:o,changeCurrency:s,allCurrencies:c}=sn(),u=(0,n.useColorModeValue)(`rgba(0, 0, 0, 0.1)`,`rgba(255, 255, 255, 0.05)`);(0,r.useEffect)(()=>{t.yt(`settings-currency-visited`,`true`)},[]);let d=e=>{let r=o===e;return(0,i.jsxs)(n.Button,{w:`full`,variant:`ghost`,justifyContent:`space-between`,onClick:()=>s(e),py:6,px:4,bg:r?u:void 0,children:[(0,i.jsxs)(n.HStack,{spacing:3,children:[(0,i.jsx)(n.Text,{fontSize:`xl`,children:t.C[e]}),(0,i.jsx)(n.Text,{children:e.toUpperCase()})]}),r&&(0,i.jsx)(n.Icon,{as:g.LuCheck,boxSize:5,color:`blue.500`})]},e)};return(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Select currency`)}),(0,i.jsx)(J,{onClick:()=>e(`settings`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsx)(n.VStack,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:c.map(e=>d(e))})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},Oi=({setCurrentContent:e})=>{let{t,i18n:r}=(0,l.useTranslation)(),a=(0,n.useColorModeValue)(`rgba(0, 0, 0, 0.1)`,`rgba(255, 255, 255, 0.05)`),o=e=>{r.changeLanguage(e)},s=e=>{let t=r.language===e;return(0,i.jsxs)(n.Button,{w:`full`,variant:`ghost`,justifyContent:`space-between`,onClick:()=>o(e),py:6,px:4,bg:t?a:void 0,children:[(0,i.jsx)(n.Text,{children:G[e]}),t&&(0,i.jsx)(n.Icon,{as:g.LuCheck,boxSize:5,color:`blue.500`})]},e)};return(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t(`Select language`)}),(0,i.jsx)(J,{onClick:()=>e(`settings`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsx)(n.VStack,{justify:`center`,spacing:3,align:`flex-start`,w:`full`,children:de.map(e=>s(e))})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},ki=({token:e,index:r,isExcluded:a,onToggleExclusion:o,onDragStart:s,onDragOver:c,onDrop:l,onTouchStart:u,onTouchMove:d,onTouchEnd:f,isDragging:p,isDraggedOver:m})=>{let h=t.Q[e],{darkMode:_}=$(),v=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),y=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),b=(0,n.useToken)(`colors`,`vechain-kit-card`);return(0,i.jsx)(n.Box,{bg:_?`#ffffff0a`:`blackAlpha.50`,borderRadius:`md`,border:`1px`,borderColor:p?_?`blue.500`:`blue.300`:m?_?`blue.400`:`blue.200`:b,p:3,mb:2,opacity:p||a?.5:1,cursor:`move`,transition:`background-color 0.2s ease, border-color 0.2s ease`,draggable:!0,onDragStart:()=>s(r),onDragOver:e=>{e.preventDefault(),c(r)},onDrop:()=>l(r),onTouchStart:e=>u(r,e),onTouchMove:d,onTouchEnd:f,_hover:{backgroundColor:_?`#ffffff12`:`blackAlpha.200`},children:(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsxs)(n.HStack,{opacity:a?.5:1,children:[(0,i.jsx)(n.Box,{cursor:`grab`,_active:{cursor:`grabbing`},pointerEvents:`none`,children:(0,i.jsx)(n.Icon,{as:g.LuGripVertical,color:y})}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,children:[(0,i.jsx)(n.Text,{fontWeight:`medium`,color:v,children:h.name}),(0,i.jsx)(n.Text,{fontSize:`sm`,color:y,children:h.description})]})]}),(0,i.jsx)(n.Switch,{isChecked:!a,onChange:()=>o(e),colorScheme:`blue`,size:`sm`})]})})},Ai=({tokens:e,excludedTokens:t,onReorder:a,onToggleExclusion:o})=>{let[s,c]=(0,r.useState)(null),[l,u]=(0,r.useState)(null),d=(0,r.useRef)([]),f=(0,r.useRef)(0),p=e=>{c(e)},m=e=>{u(e)},h=t=>{if(s===null||s===t){c(null),u(null);return}let n=[...e],r=n[s];n.splice(s,1),n.splice(t,0,r),a(n),c(null),u(null)},g=(e,t)=>{f.current=t.touches[0].clientY,c(e)},_=e=>{if(s===null)return;let t=e.touches[0].clientY;for(let e=0;e<d.current.length;e++){let n=d.current[e];if(!n)continue;let r=n.getBoundingClientRect();if(t>=r.top&&t<=r.bottom){u(e);break}}},v=()=>{if(s!==null&&l!==null&&s!==l){let t=[...e],n=t[s];t.splice(s,1),t.splice(l,0,n),a(t)}c(null),u(null),f.current=0};return(0,i.jsx)(n.Box,{w:`full`,children:e.map((e,r)=>(0,i.jsx)(n.Box,{ref:e=>{d.current[r]=e},children:(0,i.jsx)(ki,{token:e,index:r,isExcluded:t.includes(e),onToggleExclusion:o,onDragStart:p,onDragOver:m,onDrop:h,onTouchStart:g,onTouchMove:_,onTouchEnd:v,isDragging:s===r,isDraggedOver:l===r})},e))})},ji=({setCurrentContent:e})=>{let{t}=(0,l.useTranslation)(),{preferences:a,reorderTokenPriority:o,toggleTokenExclusion:s}=Fc(),c=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),u=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),d=(0,r.useCallback)(e=>{o(e)},[o]);return(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t(`Gas Token Preferences`)}),(0,i.jsx)(J,{onClick:()=>e(`settings`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{justify:`center`,spacing:6,align:`flex-start`,w:`full`,children:[(0,i.jsx)(n.VStack,{w:`full`,justifyContent:`center`,spacing:3,mb:3,children:(0,i.jsx)(n.Text,{fontSize:`sm`,color:u,textAlign:`center`,children:t(`Choose which tokens to use for transaction fees when the app is not covering them.`)})}),a.availableGasTokens.length===0&&(0,i.jsxs)(n.Alert,{status:`warning`,borderRadius:`md`,children:[(0,i.jsx)(n.AlertIcon,{}),(0,i.jsx)(n.AlertDescription,{fontSize:`sm`,color:u,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.`)})]}),(0,i.jsxs)(n.VStack,{w:`full`,align:`start`,spacing:3,children:[(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`semibold`,color:c,children:t(`Token Priority Order`)}),(0,i.jsx)(n.Text,{fontSize:`sm`,color:u,children:t(`Drag to reorder. The system will automatically use the highest priority token with sufficient balance.`)}),(0,i.jsx)(Ai,{tokens:a.tokenPriority,excludedTokens:a.excludedTokens,onReorder:d,onToggleExclusion:s})]})]})})]})},Mi=({setCurrentContent:e,onLogoutSuccess:t})=>{let{t:r}=(0,l.useTranslation)(),{isolatedView:a}=Gr(),{exportWallet:o,linkPasskey:s}=(0,u.usePrivy)(),{showMfaEnrollmentModal:c}=(0,u.useMfaEnrollment)(),{feeDelegation:d}=$(),{connection:f,disconnect:p,smartAccount:m,connectedWallet:h}=X(),{data:_}=Ks(m?.address??``,h?.address??``,3),v=()=>{e({type:`upgrade-smart-account`,props:{setCurrentContent:e,initialContent:`settings`}})},y=()=>{e(`connection-details`)},b=()=>{p(),t()},x=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r(`Settings`)}),!a&&(0,i.jsx)(J,{onClick:()=>e(`profile`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.ModalBody,{w:`full`,children:[(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,color:x,textAlign:`left`,w:`full`,children:r(`General`)}),(0,i.jsx)(Z,{title:r(`Currency`),onClick:()=>{e(`change-currency`)},leftIcon:g.LuDollarSign,rightIcon:g.LuChevronRight}),(0,i.jsx)(Z,{title:r(`Language`),onClick:()=>{e(`change-language`)},leftIcon:g.LuLanguages,rightIcon:g.LuChevronRight}),f.isConnectedWithPrivy&&!d?.delegatorUrl&&(0,i.jsx)(Z,{title:r(`Gas Token Preferences`),onClick:()=>{e(`gas-token-settings`)},leftIcon:g.LuFuel,rightIcon:g.LuChevronRight}),(0,i.jsx)(Z,{title:r(`Terms and Policies`),onClick:()=>{e({type:`terms-and-privacy`,props:{onGoBack:()=>e(`settings`)}})},leftIcon:g.LuShield,rightIcon:g.LuChevronRight}),(0,i.jsx)(Z,{title:r(`Logout`),onClick:()=>e({type:`disconnect-confirm`,props:{onDisconnect:b,onBack:()=>e(`settings`)}}),leftIcon:g.LuLogOut})]}),_&&(0,i.jsx)(n.VStack,{w:`full`,spacing:2,mt:4,children:(0,i.jsx)(Z,{title:r(`Upgrade Smart Account to V3`),description:r(`A new version is available for your account`),onClick:v,leftIcon:g.LuSettings2,extraContent:(0,i.jsx)(n.Box,{minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`,display:`flex`,alignItems:`center`,justifyContent:`center`,ml:2})})}),f.isConnectedWithSocialLogin&&(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,mt:4,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,color:x,textAlign:`left`,w:`full`,children:r(`Access and security`)}),(0,i.jsx)(Z,{title:r(`Passkey`),onClick:()=>s(),leftIcon:g.LuFingerprint}),(0,i.jsx)(Z,{title:r(`Backup`),onClick:()=>{o()},leftIcon:g.LuKey}),(0,i.jsx)(Z,{title:r(`Manage MFA`),onClick:()=>{c()},leftIcon:g.LuShieldCheck}),(0,i.jsx)(Z,{title:r(`Login methods`),onClick:()=>{e(`privy-linked-accounts`)},leftIcon:g.LuUserCog,rightIcon:g.LuChevronRight})]}),(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,mt:4,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,color:x,textAlign:`left`,w:`full`,children:r(`Help`)}),(0,i.jsx)(Z,{title:r(`Connection details`),onClick:y,leftIcon:g.LuUnlink,rightIcon:g.LuChevronRight}),(0,i.jsx)(Z,{title:r(`Explore ecosystem`),onClick:()=>e(`ecosystem`),leftIcon:g.LuLayoutGrid,rightIcon:g.LuChevronRight}),(0,i.jsx)(Z,{title:r(`Frequently asked questions`),onClick:()=>e({type:`faq`,props:{onGoBack:()=>e(`settings`),showLanguageSelector:!1}}),leftIcon:g.LuCircleHelp,rightIcon:g.LuChevronRight})]})]}),(0,i.jsx)(n.ModalFooter,{p:0})]})},Ni=({title:e,description:t,icon:r})=>{let a=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),o=(0,n.useToken)(`colors`,`vechain-kit-text-primary`);return(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,py:8,children:[(0,i.jsx)(n.Icon,{as:r,boxSize:16,color:a}),(0,i.jsxs)(n.VStack,{spacing:2,children:[(0,i.jsx)(n.Text,{fontSize:`lg`,fontWeight:`500`,textAlign:`center`,color:o,children:e}),(0,i.jsx)(n.Text,{fontSize:`md`,color:a,textAlign:`center`,px:4,children:t})]})]})},Pi=(e,t=`en-US`)=>new Intl.DateTimeFormat(t,{month:`short`,day:`numeric`}).format(new Date(e)),Fi=({document:e})=>{let{t:r}=(0,l.useTranslation)(),a=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),o=e.documentSource===t.v.VECHAIN_KIT&&e.documentType===t.y.TERMS;return(0,i.jsxs)(n.HStack,{children:[(0,i.jsxs)(n.Tag,{size:`sm`,borderRadius:`full`,color:a,children:[`v`,e.version]}),(0,i.jsx)(n.Text,{fontSize:`xs`,cursor:`pointer`,color:a,onClick:()=>{window.open(e.url,`_blank`)},_hover:{textDecoration:`underline`},children:o?r(`'{{policyName}}' on connect`,{policyName:e.displayName??r(`Vechain Kit Policy`)}):r(`'{{policyName}}' on {{date}}`,{policyName:e.displayName??r(`Policy`),date:Pi(e.timestamp)})})]})},Ii=({title:e,description:t,documents:r,bg:a,hoverBg:o,currentPolicy:s})=>{let{t:c}=(0,l.useTranslation)(),u=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),d=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),f=r?.length>0,p=r?.find(e=>e.id===s?.id);return f?(0,i.jsx)(n.AccordionItem,{border:`none`,mb:3,children:({isExpanded:l})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.AccordionButton,{bg:a,borderRadius:`xl`,_hover:{bg:o},children:[(0,i.jsxs)(n.VStack,{w:`full`,align:`flex-start`,textAlign:`left`,children:[(0,i.jsx)(n.Text,{fontWeight:`700`,color:u,children:e}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:d,children:t})]}),(0,i.jsx)(n.Icon,{as:l?g.LuChevronUp:g.LuChevronDown,fontSize:`20px`,color:d})]}),(0,i.jsx)(n.AccordionPanel,{pb:4,pt:3,children:(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:4,children:[p?.id?(0,i.jsxs)(n.HStack,{w:`full`,children:[(0,i.jsx)(n.Icon,{as:g.LuCheck,color:u}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:d,children:c(`You accepted current policy on {{date}}`,{date:Pi(p.timestamp)})})]}):null,(0,i.jsx)(n.HStack,{w:`full`,textAlign:`left`,children:(0,i.jsx)(n.Text,{fontSize:`xs`,fontWeight:`bold`,color:d,children:c(`All policies you have accepted`)})}),(0,i.jsx)(n.HStack,{w:`full`,gap:2,children:(0,i.jsx)(n.VStack,{align:`stretch`,spacing:2,children:r.map(e=>(0,i.jsx)(Fi,{document:e},e.id))})}),s&&(0,i.jsx)(n.Button,{variant:`outline`,size:`xs`,alignSelf:`flex-end`,onClick:()=>{window.open(s.url,`_blank`)},children:c(`View Current Policy`)})]})})]})}):null},Li=()=>{let{account:e}=X(),{t:a}=(0,l.useTranslation)(),{darkMode:o}=$(),{agreements:s,documents:c}=ll(),u=(0,r.useMemo)(()=>{let n=s?.filter(n=>t.k(n.walletAddress,e?.address));return[{id:`vechain-kit-terms`,...t.it,documentType:t.y.TERMS,documentSource:t.v.VECHAIN_KIT,walletAddress:e?.address??``,timestamp:new Date().getTime()},...n]?.reduce((e,t)=>(e[t.documentType]=[...e[t.documentType]||[],t],e),{})},[s,e?.address]),d=(0,r.useMemo)(()=>c.reduce((e,t)=>{let n=t.documentType;return(!e[n]||t.version>e[n].version)&&(e[n]=t),e},{}),[c]),f=(0,r.useMemo)(()=>Object.values(u).some(e=>e.length>0),[u]),p=o?`whiteAlpha.50`:`blackAlpha.50`,m=o?`whiteAlpha.100`:`blackAlpha.100`,h=(0,r.useMemo)(()=>{let e=[];return u[t.y.TERMS]?.length>0&&e.push(0),u[t.y.PRIVACY]?.length>0&&e.push(1),u[t.y.COOKIES]?.length>0&&e.push(2),e},[u]);return f?(0,i.jsx)(n.VStack,{spacing:4,align:`stretch`,children:(0,i.jsxs)(n.Accordion,{allowMultiple:!0,defaultIndex:h,children:[(0,i.jsx)(Ii,{title:a(`Terms and Conditions`),description:a(`Legal agreement between you, Vechain Kit and the current app, outlining the rules for using wallet services.`),documents:u[t.y.TERMS],bg:p,hoverBg:m,currentPolicy:d[t.y.TERMS]}),(0,i.jsx)(Ii,{title:a(`Privacy Policy`),description:a(`Privacy policy outlining the data collection and processing practices.`),documents:u[t.y.PRIVACY],bg:p,hoverBg:m,currentPolicy:d[t.y.PRIVACY]}),(0,i.jsx)(Ii,{title:a(`Cookie Policy`),description:a(`Cookie policy outlining the use of cookies and tracking technologies.`),documents:u[t.y.COOKIES],bg:p,hoverBg:m,currentPolicy:d[t.y.COOKIES]})]})}):(0,i.jsx)(Ni,{title:a(`No policies accepted`),description:a(`When you have accepted a policy, it will appear here`),icon:g.LuGavel})},Ri=({onGoBack:e})=>{let{t}=(0,l.useTranslation)();return(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t(`Terms and Policies`)}),(0,i.jsx)(J,{onClick:e}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsx)(n.VStack,{spacing:6,align:`stretch`,children:(0,i.jsx)(Li,{})})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},zi=({onDisconnect:e,onBack:t,onClose:r,showCloseButton:a=!0,text:o})=>{let{t:s}=(0,l.useTranslation)(),c=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),u=o??s(`Are you sure you want to disconnect your wallet?`);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:s(`Logout`)}),(0,i.jsx)(J,{onClick:t}),a?(0,i.jsx)(n.ModalCloseButton,{onClick:r}):null]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,mt:10,children:[(0,i.jsx)(n.Icon,{as:g.LuLogOut,color:`#ef4444`,fontSize:`60px`,opacity:.5}),(0,i.jsx)(n.Text,{fontSize:`md`,textAlign:`center`,color:c,children:u})]})}),(0,i.jsx)(n.ModalFooter,{w:`full`,mt:4,children:(0,i.jsxs)(n.VStack,{spacing:3,w:`full`,children:[(0,i.jsx)(n.Button,{onClick:e,"data-testid":`disconnect-button`,variant:`vechainKitLogout`,children:s(`Confirm`)}),(0,i.jsx)(n.Button,{variant:`vechainKitSecondary`,onClick:t,"data-testid":`cancel-logout-button`,children:s(`Cancel`)})]})})]})},Bi=({wallet:e,isActive:r,onSelect:a,onRemove:o,showRemove:s=!0})=>{let{t:c}=(0,l.useTranslation)(),{network:u}=$(),{formattedBalance:d,isLoading:f}=ln({address:e.address}),{domain:p,image:m,isLoading:h}=Hn(e.address,u.type),_=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),v=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),y=(0,n.useToken)(`colors`,`vechain-kit-border`),b=f||h;return(0,i.jsx)(n.Card,{variant:`vechainKitWalletCard`,onClick:a,borderWidth:r?`2px`:`1px`,borderColor:r?`vechain-kit-primary`:y,_hover:{borderColor:r?`vechain-kit-primary`:`vechain-kit-text-secondary`},children:(0,i.jsx)(n.CardBody,{p:4,children:(0,i.jsxs)(n.HStack,{spacing:3,w:`full`,justifyContent:`space-between`,children:[(0,i.jsxs)(n.HStack,{spacing:3,flex:1,minW:0,children:[(0,i.jsx)(Hc,{wallet:{address:e.address,domain:p??void 0,image:m??void 0,isLoadingMetadata:h},props:{width:10,height:10}}),(0,i.jsxs)(n.VStack,{spacing:0,alignItems:`flex-start`,flex:1,minW:0,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,color:_,noOfLines:1,children:p?t.G(p,22,0):t.W(e.address,6,4)}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:v,noOfLines:1,children:b?c(`Loading...`):d})]})]}),r&&(0,i.jsx)(n.Box,{children:(0,i.jsx)(n.Icon,{as:g.LuCheck,boxSize:5,color:`vechain-kit-primary`})}),s&&!r&&(0,i.jsx)(n.IconButton,{"aria-label":c(`Remove wallet`),icon:(0,i.jsx)(n.Icon,{as:g.LuTrash2}),variant:`vechainKitSecondary`,height:`30px`,w:`30px`,borderRadius:`5px`,onClick:e=>{e.stopPropagation(),o()}})]})})})},Vi=e=>t.o(e.map(e=>e.address.toLowerCase()).sort().join(`|`)),Hi=({setCurrentContent:e,returnTo:t=`main`,onLogoutSuccess:a})=>{let{t:o}=(0,l.useTranslation)(),{isolatedView:s}=Gr(),{account:c,disconnect:u}=X(),{disconnect:d}=(0,f.useWallet)(),{open:p}=(0,f.useWalletModal)(),{getStoredWallets:m,setActiveWallet:h,removeWallet:_}=Gn(),{saveWallet:v}=Un(),{refresh:y}=Wn(),b=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),[x,S]=(0,r.useState)(m()),C=(0,r.useRef)(Vi(m())),w=(0,r.useCallback)(()=>{let e=m();S(e),C.current=Vi(e)},[m]);(0,r.useEffect)(()=>{w()},[w,c?.address]),(0,r.useEffect)(()=>{let e=()=>{setTimeout(()=>{w()},100)};if(typeof window<`u`)return window.addEventListener(`wallet_switched`,e),()=>{window.removeEventListener(`wallet_switched`,e)}},[w]),(0,r.useEffect)(()=>{let e=setInterval(()=>{Vi(m())!==C.current&&w()},200);return()=>clearInterval(e)},[m,w]);let T=(0,r.useMemo)(()=>{let e=x.find(e=>e.isActive);return e?e.address:c?.address??null},[x,c?.address]),E=(0,r.useMemo)(()=>x.find(e=>e.address.toLowerCase()===T?.toLowerCase()),[x,T]),D=(0,r.useMemo)(()=>x.filter(e=>e.address.toLowerCase()!==T?.toLowerCase()),[x,T]),O=(0,r.useCallback)(n=>{n.toLowerCase()!==T?.toLowerCase()&&(E&&v(E.address),h(n),setTimeout(()=>{w()},50),y(),e({type:t,props:{switchFeedback:{showFeedback:!0}}}))},[T,E,c,h,y,e,w,v]),k=(0,r.useCallback)(n=>{let r=n.address.toLowerCase()===T?.toLowerCase(),i=x.filter(e=>e.address.toLowerCase()!==n.address.toLowerCase());e({type:`remove-wallet-confirm`,props:{walletAddress:n.address,walletDomain:null,onConfirm:async()=>{if(r&&i.length>0){let e=i[0];h(e.address)}else if(r&&i.length===0)try{await d()}catch(e){console.error(`Error disconnecting:`,e)}if(_(n.address),setTimeout(()=>{w()},50),i.length===0){a&&a();return}e({type:`select-wallet`,props:{setCurrentContent:e,onClose:()=>{},returnTo:t,onLogoutSuccess:a}})},onBack:()=>{e({type:`select-wallet`,props:{setCurrentContent:e,onClose:()=>{},returnTo:t,onLogoutSuccess:a}})}}})},[_,w,e,t,a,T,x,h,d]),A=(0,r.useCallback)(()=>{p()},[p]),j=()=>{u(),a?.()};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[!s&&(0,i.jsx)(J,{onClick:()=>{e(t)}}),(0,i.jsx)(n.ModalHeader,{children:o(`Select Wallet`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{w:`full`,spacing:4,children:[E&&(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,alignItems:`flex-start`,children:[(0,i.jsx)(n.Heading,{size:`sm`,color:b,children:o(`Active Wallet`)}),(0,i.jsx)(Bi,{wallet:E,isActive:!0,onSelect:()=>{},onRemove:()=>k(E),showRemove:x.length>1})]}),D.length>0&&(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,alignItems:`flex-start`,children:[(0,i.jsx)(n.Heading,{size:`sm`,color:b,children:o(`Other Wallets`)}),D.map(e=>(0,i.jsx)(Bi,{wallet:e,isActive:!1,onSelect:()=>O(e.address),onRemove:()=>k(e),showRemove:!0},e.address))]})]})}),(0,i.jsx)(n.ModalFooter,{w:`full`,children:(0,i.jsxs)(n.VStack,{w:`full`,spacing:2,children:[(0,i.jsx)(n.Button,{w:`full`,leftIcon:(0,i.jsx)(g.LuPlus,{}),variant:`vechainKitSecondary`,onClick:A,children:o(`Add New Wallet`)}),(0,i.jsx)(n.Button,{w:`full`,leftIcon:(0,i.jsx)(g.LuLogOut,{}),variant:`vechainKitLogout`,onClick:()=>e({type:`disconnect-confirm`,props:{onDisconnect:j,onBack:()=>e({type:`select-wallet`,props:{setCurrentContent:e,onClose:()=>{},returnTo:t,onLogoutSuccess:a}})}}),children:o(`Logout`)})]})})]})},Ui=({walletAddress:e,walletDomain:r,onConfirm:a,onBack:o,onClose:s})=>{let{t:c}=(0,l.useTranslation)(),{network:u}=$(),{domain:d}=Hn(e,u.type),f=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),p=d?t.G(d,20,0):t.W(e,6,4);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:c(`Remove`)}),(0,i.jsx)(J,{onClick:o}),s&&(0,i.jsx)(n.ModalCloseButton,{onClick:s})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,mt:10,children:[(0,i.jsx)(n.Icon,{as:g.LuTrash2,color:`#ef4444`,fontSize:`60px`,opacity:.5}),(0,i.jsx)(n.Text,{fontSize:`md`,textAlign:`center`,color:f,children:c(`Are you sure you want to remove this wallet?`)}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,color:`vechain-kit-text-secondary`,fontWeight:`600`,children:p}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,color:`vechain-kit-text-secondary`,children:t.W(e,8,7)})]})}),(0,i.jsx)(n.ModalFooter,{w:`full`,mt:4,children:(0,i.jsxs)(n.VStack,{spacing:3,w:`full`,children:[(0,i.jsx)(n.Button,{onClick:a,"data-testid":`remove-wallet-button`,variant:`vechainKitLogout`,children:c(`Remove`)}),(0,i.jsx)(n.Button,{variant:`vechainKitSecondary`,onClick:o,"data-testid":`cancel-remove-button`,children:c(`Cancel`)})]})})]})},Wi=Be[`@vechain/dapp-kit-react`]||Ve[`@vechain/dapp-kit-react`]||`unknown`,Gi=Be[`@privy-io/react-auth`]||`unknown`,Ki=({connectionCache:e})=>{let{t:r}=(0,l.useTranslation)(),{connection:a,smartAccount:o,connectedWallet:s}=X(),{source:c}=(0,f.useWallet)(),{privy:u,network:d}=$(),p=u?.appId,{data:m,isLoading:h}=Ze(p||[]),{onCopy:_,hasCopied:v}=(0,n.useClipboard)(``),{data:y,isLoading:b}=$e(),{data:x,isLoading:S}=As(o.address??``,s?.address??``),C=(0,n.useToken)(`colors`,`vechain-kit-card`),w=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),T=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),E=(()=>a.isConnectedWithCrossApp&&e?.ecosystemApp?e.ecosystemApp.name:a.isConnectedWithSocialLogin&&m?Object.values(m)[0]?.name??null:a.isConnectedWithDappKit&&c?c:null)(),D=a.isConnectedWithSocialLogin&&h,O=({label:e,value:t,isLoading:r=!1,href:a})=>(0,i.jsxs)(n.HStack,{w:`full`,justifyContent:`space-between`,children:[(0,i.jsxs)(n.Text,{fontSize:`sm`,color:T,children:[e,`:`]}),(0,i.jsx)(n.Text,{fontSize:`sm`,as:a?`a`:void 0,href:a,target:`_blank`,rel:`noopener noreferrer`,style:{textDecoration:a?`underline`:`none`},color:w,children:r?`Loading...`:t})]});return D?(0,i.jsx)(n.VStack,{w:`full`,h:`full`,justify:`center`,align:`center`,minH:`200px`,borderRadius:`xl`,bg:C,children:(0,i.jsx)(n.Spinner,{})}):E?(0,i.jsxs)(n.VStack,{p:4,bg:C,borderRadius:`xl`,spacing:4,w:`full`,justifyContent:`space-between`,children:[(0,i.jsx)(O,{label:r(`Logged in with`),value:E}),a.isConnectedWithCrossApp&&e?.timestamp&&(0,i.jsx)(O,{label:r(`At`),value:new Date(e.timestamp).toLocaleString()}),(0,i.jsx)(O,{label:r(`Connection Type`),value:a.source.type,isLoading:a.isLoading}),(0,i.jsx)(n.Divider,{}),(0,i.jsx)(O,{label:r(`Network`),value:d.type}),(0,i.jsx)(O,{label:r(`Node URL`),value:d.nodeUrl||t.bt(d.type).nodeUrl}),a.isConnectedWithPrivy&&(0,i.jsx)(n.Divider,{}),a.isConnectedWithPrivy&&(0,i.jsxs)(n.HStack,{w:`full`,justifyContent:`space-between`,children:[(0,i.jsxs)(n.Text,{fontSize:`sm`,color:T,children:[r(`Embedded wallet`),`:`]}),(0,i.jsxs)(n.HStack,{children:[(0,i.jsx)(n.Text,{fontSize:`sm`,color:w,children:s?.address?t.W(s.address,8,7):`-`}),(0,i.jsx)(n.Icon,{color:w,onClick:()=>{s?.address&&_(s.address)},opacity:s?.address?1:.4,pointerEvents:s?.address?`auto`:`none`,cursor:`pointer`,as:v?g.LuCheck:g.LuCopy})]})]}),a.isConnectedWithPrivy?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(O,{label:r(`Smart Account`),value:`v${x?.version??``} ${x?.isDeployed?``:`(not deployed)`}`,isLoading:S}),(0,i.jsx)(O,{label:r(`Privy Status`),value:y||``,isLoading:b})]}):o.isDeployed&&(0,i.jsx)(O,{label:r(`Smart Account`),value:`v${x?.version??``}`,isLoading:S}),(0,i.jsx)(n.Divider,{}),(0,i.jsx)(O,{label:r(`VeChain Kit`),value:ze,href:`https://github.com/vechain/vechain-kit/releases/tag/${ze}`}),(0,i.jsx)(O,{label:`DAppKit`,value:Wi}),(0,i.jsx)(O,{label:`Privy`,value:Gi})]}):null},qi=()=>{let{connection:t}=X(),{t:r}=(0,l.useTranslation)(),{privy:a,darkMode:o}=$(),{getConnectionCache:s}=Zo(),c=s(),u=(0,n.useToken)(`colors`,`vechain-kit-card`);return t.isConnectedWithPrivy?(0,i.jsxs)(n.VStack,{w:`full`,align:`stretch`,textAlign:`center`,mt:5,p:3,borderRadius:`lg`,bg:u,shadow:`sm`,children:[(0,i.jsx)(n.Text,{fontSize:`xs`,fontWeight:`800`,children:r(`Wallet secured by`)}),(0,i.jsxs)(n.HStack,{justify:`center`,children:[(0,i.jsx)(e.i,{isDark:o,w:`50px`}),(0,i.jsx)(n.Icon,{as:g.LuMinus,ml:3}),t.isConnectedWithVeChain?(0,i.jsx)(e.J,{isDark:o,w:`80px`,h:`auto`,mb:`3px`}):t.isConnectedWithCrossApp&&c&&(0,i.jsx)(n.Image,{src:c.ecosystemApp.logoUrl,alt:c.ecosystemApp.name,maxW:`40px`,borderRadius:`md`}),t.isConnectedWithSocialLogin&&!t.isConnectedWithVeChain&&(0,i.jsx)(n.Image,{src:a?.appearance.logo,alt:a?.appearance.logo,maxW:`40px`,borderRadius:`md`})]})]}):null},Ji=({onGoBack:e})=>{let{t}=(0,l.useTranslation)(),{getConnectionCache:r}=Zo(),a=r()??void 0;return(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t(`Connection Details`)}),(0,i.jsx)(J,{onClick:()=>{e()}}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.ModalBody,{w:`full`,children:[(0,i.jsx)(Ki,{connectionCache:a}),(0,i.jsx)(qi,{})]}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},Yi=({accountType:e,accountDescription:t,isLoading:r,onConfirm:a,onCancel:o})=>{let{t:s}=(0,l.useTranslation)();return(0,i.jsxs)(n.VStack,{spacing:6,align:`stretch`,children:[(0,i.jsx)(n.Text,{fontSize:`md`,textAlign:`center`,color:(0,n.useToken)(`colors`,`vechain-kit-text-primary`),children:s(`Are you sure you want to unlink {{accountType}} as a login method linked to {{accountDescription}}?`,{accountType:e,accountDescription:t})}),(0,i.jsxs)(n.VStack,{spacing:3,w:`full`,children:[(0,i.jsx)(n.Button,{height:`60px`,colorScheme:`red`,w:`full`,onClick:a,isLoading:r,children:s(`Remove Login Method`)}),(0,i.jsx)(n.Button,{isLoading:r,height:`60px`,w:`full`,onClick:o,children:s(`Cancel`)})]})]})},Xi=({onBack:e})=>{let{t:a}=(0,l.useTranslation)(),{privy:o,dappKit:s}=$(),[c,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(!1),[_,v]=(0,r.useState)(!1),y=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),b=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),{user:x,linkEmail:S,linkGoogle:C,linkTwitter:w,linkPhone:T,linkSpotify:D,linkApple:O,linkInstagram:k,linkTiktok:A,linkGithub:P,linkLinkedIn:F,linkTelegram:I,linkFarcaster:L,linkPasskey:R,linkDiscord:z,unlinkEmail:B,unlinkGoogle:ee,unlinkApple:V,unlinkSpotify:H,unlinkInstagram:te,unlinkTiktok:ne,unlinkGithub:re,unlinkLinkedIn:U,unlinkTelegram:ie,unlinkFarcaster:W,unlinkPhone:ae,unlinkPasskey:oe,unlinkDiscord:se,linkWallet:ce}=(0,u.usePrivy)(),le=(0,r.useMemo)(()=>{let e=o?.loginMethods?.filter(e=>[`rabby_wallet`,`coinbase_wallet`,`rainbow`,`phantom`,`metamask`].includes(e))??[],t=s?.allowedWallets??[];return e.length>0||t.length>0},[o?.loginMethods,s?.allowedWallets]),ue=e=>{switch(e){case`google_oauth`:return E.FcGoogle;case`email`:return g.LuMail;case`passkey`:return g.LuFingerprint;case`wallet`:return g.LuWallet;case`twitter_oauth`:return j.FaXTwitter;case`phone`:return g.LuPhone;case`spotify_oauth`:return N.FaSpotify;case`apple_oauth`:return N.FaApple;case`instagram_oauth`:return N.FaInstagram;case`tiktok_oauth`:return N.FaTiktok;case`github_oauth`:return g.LuGithub;case`linkedin_oauth`:return N.FaLinkedin;case`telegram`:return N.FaTelegram;case`farcaster`:return M.SiFarcaster;case`discord_oauth`:return N.FaDiscord;default:return}},de=()=>{let e=x?.linkedAccounts?.filter(e=>e.type!==`wallet`||e.type===`wallet`&&e.connectorType!==`embedded`);return e&&e?.length>1},fe=async e=>{if(de()){v(!0);try{switch(e.type){case`google_oauth`:await ee(e.subject);break;case`email`:await B(e.address);break;case`passkey`:await oe(e.subject);break;case`phone`:await ae(e.number);break;case`spotify_oauth`:await H(e.subject);break;case`apple_oauth`:await V(e.subject);break;case`instagram_oauth`:await te(e.subject);break;case`tiktok_oauth`:await ne(e.subject);break;case`github_oauth`:await re(e.subject);break;case`linkedin_oauth`:await U(e.subject);break;case`telegram`:await ie(e.subject);break;case`farcaster`:await W(e.subject);break;case`discord_oauth`:await se(e.subject);break;default:break}}catch(e){console.error(e)}finally{v(!1),d(null)}}},G=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`${t.W(e.address)} - ${e.walletClientType}`;default:return``}},K=x?.linkedAccounts?.map(e=>e.type)||[],q=o?.loginMethods||[],pe=!K.includes(`google_oauth`)&&q.includes(`google`),me=!K.includes(`email`)&&q.includes(`email`),he=!K.includes(`twitter_oauth`)&&q.includes(`twitter`),ge=!K.includes(`phone`)&&q.includes(`sms`),_e=!K.includes(`spotify_oauth`)&&q.includes(`spotify`),ve=!K.includes(`apple_oauth`)&&q.includes(`apple`),ye=!K.includes(`instagram_oauth`)&&q.includes(`instagram`),be=!K.includes(`tiktok_oauth`)&&q.includes(`tiktok`),xe=!K.includes(`github_oauth`)&&q.includes(`github`),Se=!K.includes(`linkedin_oauth`)&&q.includes(`linkedin`),Ce=!K.includes(`telegram`)&&q.includes(`telegram`),we=!K.includes(`farcaster`)&&q.includes(`farcaster`),Te=!K.includes(`discord_oauth`)&&q.includes(`discord`);return f?(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Select Additional Login Method`)}),(0,i.jsx)(J,{onClick:()=>p(!1)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{spacing:3,align:`stretch`,w:`full`,children:[(0,i.jsx)(Z,{title:a(`Set up Passkey`),description:a(`Set up a passkey for easier access`),onClick:()=>R(),leftIcon:g.LuFingerprint}),pe&&(0,i.jsx)(Z,{title:a(`Link Google Account`),description:a(`Connect your Google account for easier access`),onClick:()=>C(),leftIcon:E.FcGoogle}),me&&(0,i.jsx)(Z,{title:a(`Link Email Account`),description:a(`Connect your email for easier access`),onClick:()=>S(),leftIcon:g.LuMail,stacked:!0}),he&&(0,i.jsx)(Z,{title:a(`Link Twitter Account`),description:a(`Connect your Twitter account for easier access`),onClick:()=>w(),leftIcon:j.FaXTwitter}),ge&&(0,i.jsx)(Z,{title:a(`Link Phone Number`),description:a(`Connect your phone number for easier access`),onClick:()=>T(),leftIcon:g.LuPhone}),_e&&(0,i.jsx)(Z,{title:a(`Link Spotify Account`),description:a(`Connect your Spotify account for easier access`),onClick:()=>D(),leftIcon:N.FaSpotify}),ve&&(0,i.jsx)(Z,{title:a(`Link Apple Account`),description:a(`Connect your Apple account for easier access`),onClick:()=>O(),leftIcon:N.FaApple}),ye&&(0,i.jsx)(Z,{title:a(`Link Instagram Account`),description:a(`Connect your Instagram account for easier access`),onClick:()=>k(),leftIcon:N.FaInstagram}),be&&(0,i.jsx)(Z,{title:a(`Link Tiktok Account`),description:a(`Connect your Tiktok account for easier access`),onClick:()=>A(),leftIcon:N.FaTiktok}),xe&&(0,i.jsx)(Z,{title:a(`Link Github Account`),description:a(`Connect your Github account for easier access`),onClick:()=>P(),leftIcon:g.LuGithub}),Se&&(0,i.jsx)(Z,{title:a(`Link LinkedIn Account`),description:a(`Connect your LinkedIn account for easier access`),onClick:()=>F(),leftIcon:N.FaLinkedin}),Ce&&(0,i.jsx)(Z,{title:a(`Link Telegram Account`),description:a(`Connect your Telegram account for easier access`),onClick:()=>I(),leftIcon:N.FaTelegram}),we&&(0,i.jsx)(Z,{title:a(`Link Farcaster Account`),description:a(`Connect your Farcaster account for easier access`),onClick:()=>L(),leftIcon:M.SiFarcaster}),Te&&(0,i.jsx)(Z,{title:a(`Link Discord Account`),description:a(`Connect your Discord account for easier access`),onClick:()=>z(),leftIcon:N.FaDiscord}),le&&(0,i.jsx)(Z,{title:a(`Link External Wallet`),description:a(`Connect an external wallet for easier access`),onClick:()=>ce(),leftIcon:g.LuWallet}),!pe&&!me&&!he&&!ge&&!_e&&!ve&&!ye&&!be&&!xe&&!Se&&!Ce&&!we&&!Te&&(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,opacity:.7,children:a(`No additional accounts available to link`)})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]}):c?(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Remove Login Method`)}),(0,i.jsx)(J,{onClick:()=>d(null)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsx)(Yi,{accountType:c.type,accountDescription:G(c),isLoading:_,onConfirm:()=>fe(c),onCancel:()=>d(null)})}),(0,i.jsx)(n.ModalFooter,{pt:0})]}):(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Login methods`)}),(0,i.jsx)(J,{onClick:e}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{w:`full`,children:(0,i.jsxs)(n.VStack,{spacing:3,align:`center`,w:`full`,justify:`center`,children:[(0,i.jsxs)(n.VStack,{spacing:1,justify:`flex-start`,alignItems:`flex-start`,mb:5,textAlign:`left`,w:`full`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,color:b,children:a(`These accounts are linked to your embedded wallet and can be used to login to your wallet and access your private key.`)}),m&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:b,children:a(`Adding more linked accounts increases security against loss of access, but also introduces additional potential attack vectors. For enhanced security, we recommend enabling MFA.`)}),(0,i.jsx)(n.Button,{variant:`link`,mt:0,size:`sm`,onClick:()=>h(!m),color:y,children:a(m?`Show Less`:`Read More`)})]}),x?.linkedAccounts?.filter(e=>e.type!==`wallet`||e.type===`wallet`&&e.connectorType!==`embedded`).map(e=>(0,i.jsxs)(n.Flex,{p:4,borderWidth:`1px`,borderRadius:`md`,align:`center`,justify:`space-between`,w:`full`,children:[(0,i.jsxs)(n.Flex,{align:`center`,gap:3,children:[(0,i.jsx)(n.Icon,{as:ue(e.type),color:y}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,children:[(0,i.jsx)(n.Text,{fontWeight:`500`,color:y,children:e.type===`google_oauth`?a(`Google`):e.type===`email`?a(`Email`):e.type===`passkey`?a(`Passkey`):e.type===`twitter_oauth`?a(`Twitter`):e.type===`phone`?a(`Phone Number`):e.type===`spotify_oauth`?a(`Spotify`):e.type===`apple_oauth`?a(`Apple`):e.type===`instagram_oauth`?a(`Instagram`):e.type===`tiktok_oauth`?a(`Tiktok`):e.type===`github_oauth`?a(`Github`):e.type===`linkedin_oauth`?a(`LinkedIn`):e.type===`telegram`?a(`Telegram`):e.type===`farcaster`?a(`Farcaster`):e.type===`discord_oauth`?a(`Discord`):a(`Wallet`)}),(0,i.jsx)(n.Text,{fontSize:`sm`,color:b,children:G(e)})]})]}),(0,i.jsx)(n.Button,{size:`sm`,variant:`ghost`,colorScheme:`red`,isDisabled:!de(),onClick:()=>{e.type===`passkey`?R():d(e)},children:a(`Remove`)})]},e.type))]})}),(0,i.jsx)(n.ModalFooter,{w:`full`,children:(0,i.jsx)(n.Button,{w:`full`,variant:`vechainKitPrimary`,onClick:()=>p(!0),leftIcon:(0,i.jsx)(n.Icon,{as:g.LuPlus}),isDisabled:!pe&&!me&&!he&&!ge&&!_e&&!ve&&!ye&&!be&&!xe&&!Se&&!Ce&&!we&&!Te,children:a(`Add Login Method`)})})]})},Zi=[{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}],Qi=()=>{let{t:e}=(0,l.useTranslation)(),{account:t,connection:n,smartAccount:i}=X(),{addNotification:a,getNotifications:o}=$i(),{data:s}=Ys(i?.address??``,3);(0,r.useEffect)(()=>{if(!n.isConnectedWithPrivy||!t?.address)return;let r=o(),i=`smart_account_upgrade_${t.address.toLowerCase()}`;!r.some(e=>e.id===i)&&s&&a({id:i,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,s]),(0,r.useEffect)(()=>{!n.isConnectedWithPrivy||!t?.address||o().some(e=>e.id===`smart_account_${t.address.toLowerCase()}`)||a({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]),(0,r.useEffect)(()=>{if(!n.isConnectedWithPrivy||!t?.address)return;let r=o(),i=r.some(e=>e.id===`multiclause_warning_${t.address.toLowerCase()}`),s=r.some(e=>e.id===`multiclause_support_${t.address.toLowerCase()}`);i&&!s&&a({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])},$i=()=>{let{account:e}=X(),n=(0,r.useCallback)(e=>{let t=e?.toLowerCase();return{notifications:`vechain_kit_notifications_${t}`,archived:`vechain_kit_archived_notifications_${t}`,initialized:`vechain_kit_notifications_initialized_${t}`}},[]),i=(0,r.useCallback)(()=>{if(!e?.address||!t.mt())return;let r=n(e.address);t.dt(r.initialized)||(t.yt(r.notifications,JSON.stringify(Zi)),t.yt(r.initialized,`true`))},[e?.address,n]);(0,r.useEffect)(()=>{i()},[i]);let a=(0,r.useCallback)(()=>{if(!e?.address||!t.mt())return[];let r=t.dt(n(e.address).notifications);return r?JSON.parse(r):[]},[e?.address,n]),o=(0,r.useCallback)(()=>{if(!e?.address||!t.mt())return[];let r=t.dt(n(e.address).archived);return r?JSON.parse(r):[]},[e?.address,n]),s=(0,r.useCallback)(r=>{if(!e?.address||!t.mt())return;let i=n(e.address),o=a(),s=t.dt(i.archived),c=s?JSON.parse(s):[];if([...o,...c].some(e=>e.title===r.title))return;let l={...r,id:r.id||Math.random().toString(36).substring(7),timestamp:Date.now(),isRead:!1};t.yt(i.notifications,JSON.stringify([l,...o]))},[e?.address,a,n]),c=(0,r.useCallback)(r=>{if(!e?.address||!t.mt())return;let i=n(e.address),o=a().filter(e=>e.id!==r);t.yt(i.notifications,JSON.stringify(o))},[e?.address,a,n]);return{getNotifications:a,getArchivedNotifications:o,addNotification:s,clearAllNotifications:(0,r.useCallback)(()=>{if(!e?.address||!t.mt())return;let r=n(e.address),i=a();t.yt(r.archived,JSON.stringify([...o(),...i])),t.yt(r.notifications,JSON.stringify([]))},[e?.address,a,o,n]),markAsRead:(0,r.useCallback)(r=>{if(!e?.address||!t.mt())return;let i=n(e.address),s=a(),c=o(),l=s.find(e=>e.id===r),u=s.filter(e=>e.id!==r);if(l){let e=[{...l,isRead:!0},...c];t.yt(i.notifications,JSON.stringify(u)),t.yt(i.archived,JSON.stringify(e))}},[e?.address,a,o,n]),deleteNotification:c}},ea=({showArchived:e})=>{let{t}=(0,l.useTranslation)();return(0,i.jsx)(Ni,{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?g.LuArchive:g.LuBell})},ta=({notification:e,isArchiveView:t,onMarkAsRead:r})=>{let{t:a}=(0,l.useTranslation)(),o=()=>{r(e.id)};return e.isRead&&!t?null:(0,i.jsxs)(n.Alert,{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:[(0,i.jsx)(n.AlertIcon,{boxSize:`16px`}),(0,i.jsxs)(n.Box,{children:[(0,i.jsx)(n.AlertTitle,{fontSize:`sm`,"data-testid":`notification-title`,children:a(e.title)}),(0,i.jsx)(n.AlertDescription,{fontSize:`xs`,lineHeight:`1.2`,"data-testid":`notification-text`,children:a(e.description)})]}),!t&&!e.isRead&&(0,i.jsx)(n.IconButton,{position:`absolute`,right:1,top:1,size:`sm`,variant:`ghost`,icon:(0,i.jsx)(g.LuCircleX,{}),onClick:e=>{e.stopPropagation(),o()},"aria-label":`Mark as read and archive`,"data-testid":`remove-notification-button`})]},e.id)},na=({setCurrentContent:e})=>{let{t}=(0,l.useTranslation)(),{isolatedView:a}=Gr(),{getNotifications:o,getArchivedNotifications:s,clearAllNotifications:c,markAsRead:u}=$i(),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(o()),[h,_]=(0,r.useState)(s()),v=()=>{c(),_([...h,...p]),m([])},y=e=>{u(e);let t=p.find(t=>t.id===e);m(p.filter(t=>t.id!==e)),t&&_([{...t,isRead:!0},...h])},b=()=>{f(!d)},x=d?h:p,S=[...x].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(0,i.jsxs)(Vc,{children:[(0,i.jsxs)(Y,{children:[!a&&(0,i.jsx)(J,{onClick:()=>e(`main`)}),(0,i.jsx)(n.ModalHeader,{"data-testid":`modal-title`,children:t(d?`Archived Notifications`:`Notifications`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsxs)(n.Container,{h:[`540px`,`auto`],p:0,children:[(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:4,align:`stretch`,w:`full`,children:[(0,i.jsxs)(n.HStack,{justify:`space-between`,children:[(0,i.jsx)(n.Button,{variant:`ghost`,leftIcon:(0,i.jsx)(n.Icon,{as:d?g.LuBell:g.LuArchive}),size:`sm`,onClick:b,"data-testid":`toggle-view-button`,children:t(d?`Current`:`Archived`)}),!d&&p.length>0&&(0,i.jsx)(n.Button,{variant:`ghost`,size:`sm`,onClick:v,"data-testid":`clear-all-button`,children:t(`Clear all`)})]}),x.length===0?(0,i.jsx)(ea,{showArchived:d}):(0,i.jsx)(n.VStack,{spacing:3,children:S.map(e=>(0,i.jsx)(ta,{notification:e,isArchiveView:d,onMarkAsRead:y},e.id))})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})]})},ra=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`}},ia=({category:e,...t})=>{let{t:r}=(0,l.useTranslation)(),a=e.toLowerCase();return(0,i.jsx)(n.Tag,{size:`sm`,colorScheme:ra(a),borderRadius:`full`,px:2,...t,children:r(a)})},aa=({name:e,imageUrl:r,logoComponent:a,category:o,onClick:s,size:c=`md`})=>(0,i.jsxs)(n.Card,{variant:`vechainKitAppCard`,_hover:{opacity:.8},cursor:`pointer`,onClick:s,position:`relative`,children:[o&&(0,i.jsx)(n.Box,{position:`absolute`,top:`2`,right:`2`,zIndex:`1`,children:(0,i.jsx)(ia,{category:o})}),(0,i.jsx)(n.CardBody,{p:c===`sm`?2:4,alignItems:`center`,children:(0,i.jsxs)(n.VStack,{spacing:2,h:`100%`,justifyContent:`space-between`,children:[a||r&&(0,i.jsx)(n.Image,{src:r,fallbackSrc:t.ct,alt:e,height:`90px`,objectFit:`contain`,rounded:`full`}),e&&(0,i.jsx)(n.Text,{fontWeight:`medium`,wordBreak:`break-word`,noOfLines:1,textAlign:`center`,w:`full`,children:e})]})})]}),oa=({xApp:e,setCurrentContent:t,selectedCategory:r})=>{let{data:a,isLoading:o}=Jn(e.id),{data:s,isLoading:c}=tr(a?.logo);return(0,i.jsx)(n.Skeleton,{isLoaded:!o&&!c,borderRadius:`md`,height:`100%`,children:(0,i.jsx)(aa,{name:a?.name??``,imageUrl:s?.image??``,linkUrl:a?.external_url??``,category:`vebetter`,onClick:()=>{a?.name&&t({type:`app-overview`,props:{name:a.name,image:s?.image??``,url:a?.external_url??``,description:a?.description??``,category:`vebetter`,selectedCategory:r,setCurrentContent:t}})}})})},sa=({name:e,image:t,url:n,description:r,category:a,logoComponent:o,selectedCategory:s,setCurrentContent:c})=>(0,i.jsx)(aa,{name:e,imageUrl:t,linkUrl:n,category:a,onClick:()=>{c({type:`app-overview`,props:{name:e,image:t,url:n,description:r,category:a,logoComponent:o,selectedCategory:s,setCurrentContent:c}})},...o&&{logoComponent:o}}),ca=({})=>{let{t:e}=(0,l.useTranslation)(),{shortcuts:r}=Dc();return r.length===0?null:(0,i.jsxs)(n.VStack,{w:`full`,align:`flex-start`,spacing:2,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`500`,children:e(`Shortcuts`)}),(0,i.jsx)(n.Grid,{templateColumns:`repeat(4, 1fr)`,gap:2,w:`full`,children:r.map(e=>(0,i.jsx)(n.GridItem,{children:(0,i.jsx)(n.Card,{_hover:{opacity:.8},cursor:`pointer`,onClick:()=>window.open(e.url,`_blank`),children:(0,i.jsx)(n.CardBody,{p:2,alignItems:`center`,children:(0,i.jsx)(n.Image,{src:e.image,fallbackSrc:t.ct,alt:e.name,objectFit:`contain`,rounded:`full`})})})},e.url))})]})},la=({selectedCategory:e,onCategoryChange:t,categories:r,darkMode:a})=>{let{t:o}=(0,l.useTranslation)();return(0,i.jsxs)(n.Box,{width:`full`,mb:4,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`500`,mb:2,children:o(`Filter by category`)}),(0,i.jsxs)(n.Wrap,{spacing:2,children:[(0,i.jsx)(n.WrapItem,{children:(0,i.jsx)(n.Tag,{size:`md`,borderRadius:`full`,variant:e===null?`solid`:`outline`,colorScheme:a?`gray`:`blackAlpha`,cursor:`pointer`,onClick:()=>t(null),children:o(`All`)})}),r.map(r=>(0,i.jsx)(n.WrapItem,{children:(0,i.jsx)(ia,{category:r,size:`md`,variant:e===r?`solid`:`outline`,cursor:`pointer`,onClick:()=>t(r)})},r))]})]})},ua=[{name:`VeBetterDAO`,description:`Engage, earn and prosper by doing sustainable actions.`,external_url:e.y,logo:new URL(`/static/img/coins/64x64/33509.png`,e.c).toString(),banner:new URL(`/static/img/icons/vbd.png`,e.c).toString(),screenshots:[],social_urls:[],app_urls:[],tweets:[],ve_world:{banner:new URL(`/static/img/icons/vbd.png`,e.c).toString()},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:e.k,logo:new URL(`/assets/walletconnect.png`,e.k).toString(),banner:new URL(`/assets/walletconnect.png`,e.k).toString(),screenshots:[],social_urls:[],app_urls:[],tweets:[],ve_world:{banner:new URL(`/assets/walletconnect.png`,e.k).toString()},categories:[]}],da=({setCurrentContent:e,selectedCategory:t})=>{let{t:a}=(0,l.useTranslation)(),{darkMode:o,network:s}=$(),{isolatedView:c}=Gr(),u=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),[d,f]=(0,r.useState)(``),[p,m]=(0,r.useState)(t||null);(0,r.useEffect)(()=>{t!==void 0&&m(t)},[t]);let{data:h}=pn(),{data:_}=In(h?(parseInt(h)-1).toString():`1`),{data:v,isLoading:y,error:b}=is(),x=(0,r.useMemo)(()=>{let e=new Set;return s.type===`main`&&_&&_.length>0&&e.add(`vebetter`),v&&v.forEach(t=>{t.category&&e.add(t.category)}),Array.from(e).sort()},[v,_,s.type]),S=s.type===`main`?_.filter(e=>e.app.name.toLowerCase().includes(d.toLowerCase())):[],C=ua.filter(e=>e.name.toLowerCase().includes(d.toLowerCase())),w=v?.filter(e=>(e.name.toLowerCase().includes(d.toLowerCase())||e.description.toLowerCase().includes(d.toLowerCase())||e.tags.some(e=>e.toLowerCase().includes(d.toLowerCase())))&&(p===null||e.category===p))||[],T=p===null,E=p===null||p===`vebetter`,{shortcuts:D}=Dc();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Ecosystem`)}),!c&&(0,i.jsx)(J,{onClick:()=>e(`settings`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{overflowY:`auto`,minH:`300px`,children:(0,i.jsxs)(n.VStack,{spacing:6,w:`full`,children:[(0,i.jsx)(ca,{setCurrentContent:e}),D.length>0&&(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`500`,w:`full`,textAlign:`left`,children:a(`All apps`)}),(0,i.jsxs)(n.InputGroup,{size:`lg`,children:[(0,i.jsx)(n.Input,{placeholder:a(`Search Apps`),value:d,onChange:e=>{f(e.target.value)},bg:o?`#00000038`:`gray.50`,borderRadius:`xl`,height:`56px`,pl:12}),(0,i.jsx)(n.InputLeftElement,{h:`56px`,w:`56px`,pl:4,children:(0,i.jsx)(g.LuSearch,{color:u})})]}),x.length>0&&(0,i.jsx)(la,{selectedCategory:p,onCategoryChange:e=>{m(e)},categories:x,darkMode:o}),(0,i.jsxs)(n.Grid,{templateColumns:`repeat(2, 1fr)`,gap:4,w:`full`,children:[T&&C.length>0&&(0,i.jsx)(i.Fragment,{children:C.map(t=>(0,i.jsx)(n.GridItem,{children:(0,i.jsx)(sa,{name:t.name,image:t.logo,url:t.external_url,setCurrentContent:e,description:t.description,selectedCategory:p})},t.name))}),E&&S.length>0&&(0,i.jsx)(i.Fragment,{children:S.map(t=>(0,i.jsx)(n.GridItem,{children:(0,i.jsx)(oa,{xApp:t.app,setCurrentContent:e,selectedCategory:p})},t.id))}),y?(0,i.jsx)(n.GridItem,{colSpan:2,children:(0,i.jsx)(n.Center,{py:4,children:(0,i.jsx)(n.Spinner,{})})}):b?(0,i.jsx)(n.GridItem,{colSpan:2,children:(0,i.jsx)(n.Text,{color:`red.500`,textAlign:`center`,children:a(`Failed to load App Hub apps`)})}):w.length>0?w.map(t=>(0,i.jsx)(n.GridItem,{children:(0,i.jsx)(sa,{name:t.name,image:t.logo,url:t.url,setCurrentContent:e,description:t.description,category:t.category,selectedCategory:p})},t.id)):p&&!E&&(0,i.jsx)(n.GridItem,{colSpan:2,children:(0,i.jsx)(n.Center,{py:4,children:(0,i.jsx)(n.Text,{children:a(`No apps found in this category`)})})})]})]})}),(0,i.jsx)(n.ModalFooter,{pt:0})]})},fa=({name:e,image:t,url:r,description:a})=>{let{t:o}=(0,l.useTranslation)(),{isShortcut:s,addShortcut:c,removeShortcut:u}=Dc(),d=s(r);return(0,i.jsx)(n.Button,{px:4,width:`full`,height:`45px`,variant:`vechainKitSecondary`,borderRadius:`xl`,onClick:()=>{d?u(r):c({name:e,image:t,url:r,description:a})},leftIcon:(0,i.jsx)(n.Icon,{as:d?g.LuBookmarkCheck:g.LuBookmark}),children:o(d?`Remove from shortcuts`:`Add to shortcuts`)})},pa=({setCurrentContent:e,name:t,image:r,url:a,description:o,category:s,selectedCategory:c,logoComponent:u})=>{let{t:d}=(0,l.useTranslation)();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:t}),(0,i.jsx)(J,{onClick:()=>{e(c?{type:`ecosystem-with-category`,props:{selectedCategory:c,setCurrentContent:e}}:`ecosystem`)}}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:6,align:`center`,w:`full`,children:[(0,i.jsxs)(n.Flex,{direction:`column`,align:`center`,children:[u||(0,i.jsx)(n.Image,{src:r,alt:t,w:`200px`,h:`200px`,objectFit:`contain`,borderRadius:`xl`}),s&&(0,i.jsx)(n.HStack,{mt:2,children:(0,i.jsx)(ia,{category:s})})]}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:o}),(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:d(`Click below to access {{ name }} and explore its features.`,{name:t})})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsxs)(n.VStack,{w:`full`,spacing:4,children:[(0,i.jsxs)(n.Button,{variant:`vechainKitSecondary`,onClick:()=>{window.open(a,`_blank`)},children:[d(`Launch {{name}}`,{name:t}),(0,i.jsx)(n.Icon,{as:g.LuExternalLink,ml:2})]}),(0,i.jsx)(fa,{name:t,image:r,url:a,description:o})]})})]})},ma=({children:e})=>(0,i.jsx)(h.motion.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}),ha=({description:t})=>{let{darkMode:r}=$(),a=new URL(`intent/tweet`,e.v);a.searchParams.set(`text`,t);let o=new URL(`share/url`,e._);o.searchParams.set(`url`,t);let s=new URL(``,e.A);return s.searchParams.set(`text`,t),(0,i.jsxs)(n.HStack,{gap:2,children:[(0,i.jsx)(ma,{children:(0,i.jsx)(n.Link,{href:a.toString(),isExternal:!0,children:(0,i.jsx)(n.Box,{bg:r?`blackAlpha.700`:`lightgrey`,p:2,borderRadius:`full`,children:(0,i.jsx)(j.FaXTwitter,{size:22})})})}),(0,i.jsx)(ma,{children:(0,i.jsx)(n.Link,{href:o.toString(),isExternal:!0,children:(0,i.jsx)(n.Box,{bg:`#30abec`,p:2,borderRadius:`full`,children:(0,i.jsx)(N.FaTelegramPlane,{color:`white`,size:22})})})}),(0,i.jsx)(ma,{children:(0,i.jsx)(n.Link,{href:s.toString(),isExternal:!0,children:(0,i.jsx)(n.Box,{bg:`#01cb37`,p:2,borderRadius:`full`,children:(0,i.jsx)(N.FaWhatsapp,{size:22,color:`white`})})})})]})},ga=({status:e,uiConfig:a,onTryAgain:o,txReceipt:s,txError:c,onClose:u})=>{let{t:d}=(0,l.useTranslation)(),{network:f}=$(),p=(0,n.useToken)(`colors`,`vechain-kit-error`),m=(0,n.useToken)(`colors`,`vechain-kit-success`),h=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),_=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),v=(0,r.useMemo)(()=>c?c.reason||d(`Something went wrong. Please try again.`):null,[c,d]),y=(()=>{let t=e===`waitingConfirmation`;switch(t&&(e=`pending`),e){case`pending`:return{title:a?.title??d(t?`Sending Transaction...`:`Waiting for confirmation`),icon:a?.loadingIcon??(0,i.jsx)(n.Spinner,{size:`xl`,"data-testid":`pending-spinner-modal`}),description:t?d(`Transaction is being processed, it can take up to 15 seconds.`):a?.description??d(`Please confirm the transaction in your wallet.`)};case`error`:return{title:d(`Something went wrong`),icon:a?.errorIcon??(0,i.jsx)(n.Icon,{as:g.LuCircleAlert,color:p,fontSize:`100px`,"data-testid":`error-icon-modal`}),description:v??d(`An unexpected error occurred.`)};case`success`:return{title:d(`Transaction successful!`),icon:a?.successIcon??(0,i.jsx)(n.Icon,{as:g.LuCircleCheck,color:m,fontSize:`100px`,"data-testid":`success-icon-modal`}),description:``};case`ready`:return{title:a?.title??d(`Confirm transaction`),icon:null,description:a?.description??d(`Confirm the transaction in your wallet to complete it.`)};default:return{title:``,icon:null,description:``}}})(),b=`${t.bt(f.type).explorerUrl}/${s?.meta.txID}`;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:y.title}),(0,i.jsx)(n.ModalCloseButton,{isDisabled:e===`pending`&&!a?.isClosable})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`center`,p:6,spacing:3,children:[y.icon,e===`success`&&a?.showShareOnSocials&&(0,i.jsxs)(n.VStack,{mt:2,spacing:3,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,color:_,children:d(`Share on`)}),(0,i.jsx)(ha,{description:b})]}),y.description&&(0,i.jsx)(n.Text,{fontSize:e===`ready`?`md`:`sm`,textAlign:`center`,color:e===`error`?p:h,mt:5,style:{lineBreak:`anywhere`},children:y.description})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.VStack,{width:`full`,spacing:4,children:[e===`error`&&!!o&&(0,i.jsxs)(n.Button,{variant:`vechainKitPrimary`,onClick:o,width:`full`,children:[(0,i.jsx)(n.Icon,{mr:2,as:g.LuRefreshCw}),d(`Try again`)]}),e===`ready`&&(0,i.jsx)(n.Button,{onClick:o,variant:`vechainKitPrimary`,width:`full`,children:d(`Confirm`)}),(e===`success`||e===`error`||e===`ready`)&&(0,i.jsx)(n.Button,{onClick:u,variant:`ghost`,width:`full`,children:d(`Close`)}),a?.showExplorerButton&&s?.meta.txID&&(0,i.jsx)(n.Link,{href:`${t.bt(f.type).explorerUrl}/${s?.meta.txID}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:(0,i.jsxs)(n.HStack,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[(0,i.jsx)(n.Text,{color:_,children:d(`View transaction on the explorer`)}),(0,i.jsx)(n.Icon,{size:`sm`,as:g.LuExternalLink,color:_})]})})]})})]})},_a=({isOpen:e,onClose:t,status:n,uiConfig:r,txReceipt:a,txError:o,onTryAgain:s})=>{let{darkMode:c,theme:l}=$();return e?(0,i.jsx)(lo,{darkMode:c,theme:l,children:(0,i.jsx)(Je,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,closeOnOverlayClick:n!==`pending`&&r?.isClosable,children:(0,i.jsx)(ga,{status:n,onTryAgain:s,uiConfig:r,txReceipt:a,onClose:t,txError:o})})}):null},va=({txId:e,title:r,description:a,onDone:o,showSocialButtons:s=!1})=>{let{t:c}=(0,l.useTranslation)(),{network:u}=$(),d=t.bt(u.type).explorerUrl,f=`${d}/${e}`,p=(0,n.useToken)(`colors`,`vechain-kit-success`),m=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),h=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`center`,p:6,spacing:3,children:[(0,i.jsx)(n.Icon,{as:g.LuCircleCheck,fontSize:`100px`,color:p,"data-testid":`success-icon`}),a&&(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,color:m,children:a}),s&&e&&(0,i.jsxs)(n.VStack,{mt:2,spacing:3,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,color:h,children:c(`Share on`)}),(0,i.jsx)(ha,{description:f})]})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.VStack,{width:`full`,spacing:4,children:[(0,i.jsx)(n.Button,{onClick:o,variant:`vechainKitSecondary`,width:`full`,children:c(`Done`)}),e&&(0,i.jsx)(n.Link,{href:`${d}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:(0,i.jsxs)(n.HStack,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[(0,i.jsx)(n.Text,{color:h,children:c(`View transaction on the explorer`)}),(0,i.jsx)(n.Icon,{size:16,as:g.LuExternalLink})]})})]})})]})},ya=({txId:e,title:r,description:a,onDone:o})=>{let{t:s}=(0,l.useTranslation)(),{network:c,darkMode:u}=$(),d=t.bt(c.type).explorerUrl;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`center`,p:6,spacing:3,children:[(0,i.jsx)(n.Icon,{as:g.LuCircleAlert,fontSize:`100px`,color:u?`red.400`:`red.500`,"data-testid":`error-icon`}),a&&(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:a})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.VStack,{width:`full`,spacing:4,children:[(0,i.jsx)(n.Button,{onClick:o,variant:`vechainKitSecondary`,width:`full`,children:s(`Done`)}),e&&(0,i.jsx)(n.Link,{href:`${d}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:(0,i.jsxs)(n.HStack,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[(0,i.jsx)(n.Text,{children:s(`View transaction on the explorer`)}),(0,i.jsx)(n.Icon,{size:16,as:g.LuExternalLink})]})})]})})]})},ba=({isOpen:e,onClose:t,initialContent:n=`profile`})=>{let{account:a}=X(),{themeConfig:o}=so(),{accountModalContent:s,setAccountModalContent:c}=Q();return(0,r.useEffect)(()=>{e&&c(n)},[e,n,c]),(0,i.jsx)(Je,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,mobileMinHeight:o?.modal?.useBottomSheetOnMobile?`520px`:`510px`,mobileMaxHeight:o?.modal?.useBottomSheetOnMobile?`520px`:`510px`,desktopMinHeight:`485px`,desktopMaxHeight:`485px`,children:(()=>{if(typeof s==`object`)switch(s.type){case`send-token`:return(0,i.jsx)(Kr,{...s.props});case`send-token-summary`:return(0,i.jsx)(qr,{...s.props});case`swap-token`:return(0,i.jsx)(Qr,{...s.props});case`choose-name`:return(0,i.jsx)($r,{...s.props});case`choose-name-search`:return(0,i.jsx)(ri,{...s.props});case`choose-name-summary`:return(0,i.jsx)(ii,{...s.props});case`app-overview`:return(0,i.jsx)(pa,{...s.props,setCurrentContent:c});case`disconnect-confirm`:return(0,i.jsx)(zi,{...s.props});case`remove-wallet-confirm`:return(0,i.jsx)(Ui,{...s.props});case`account-customization`:return(0,i.jsx)(vi,{...s.props});case`account-customization-summary`:return(0,i.jsx)(yi,{...s.props});case`successful-operation`:return(0,i.jsx)(va,{...s.props});case`failed-operation`:return(0,i.jsx)(ya,{...s.props});case`upgrade-smart-account`:return(0,i.jsx)(Ci,{...s.props});case`faq`:return(0,i.jsx)(oi,{...s.props});case`terms-and-privacy`:return(0,i.jsx)(Ri,{...s.props});case`ecosystem-with-category`:return(0,i.jsx)(da,{setCurrentContent:c,selectedCategory:s.props.selectedCategory});case`select-wallet`:return(0,i.jsx)(Hi,{setCurrentContent:c,onClose:t,returnTo:s.props.returnTo,onLogoutSuccess:s.props.onLogoutSuccess});case`main`:return(0,i.jsx)(Ur,{setCurrentContent:c,onClose:t,wallet:a,switchFeedback:s.props?.switchFeedback});case`profile`:return(0,i.jsx)(Si,{setCurrentContent:c,onLogoutSuccess:()=>{t()},switchFeedback:s.props?.switchFeedback})}switch(s){case`main`:return(0,i.jsx)(Ur,{setCurrentContent:c,onClose:t,wallet:a});case`settings`:return(0,i.jsx)(Mi,{setCurrentContent:c,onLogoutSuccess:()=>{t()}});case`profile`:return(0,i.jsx)(Si,{setCurrentContent:c,onLogoutSuccess:()=>{t()}});case`assets`:return(0,i.jsx)(wi,{setCurrentContent:c});case`notifications`:return(0,i.jsx)(na,{setCurrentContent:c});case`receive-token`:return(0,i.jsx)(Jr,{setCurrentContent:c});case`swap-token`:return(0,i.jsx)(Qr,{setCurrentContent:c});case`connection-details`:return(0,i.jsx)(Ji,{onGoBack:()=>c(`settings`)});case`privy-linked-accounts`:return(0,i.jsx)(Xi,{onBack:()=>c(`settings`)});case`ecosystem`:return(0,i.jsx)(da,{setCurrentContent:c});case`add-custom-token`:return(0,i.jsx)(Ti,{setCurrentContent:c});case`change-currency`:return(0,i.jsx)(Di,{setCurrentContent:c});case`change-language`:return(0,i.jsx)(Oi,{setCurrentContent:c});case`gas-token-settings`:return(0,i.jsx)(ji,{setCurrentContent:c});default:return null}})()})},xa=({loadingText:e,title:t,onTryAgain:a,onClose:o,onGoBack:s,showBackButton:c=!0})=>{let{t:u}=(0,l.useTranslation)(),[d,f]=r.default.useState(!1);return r.default.useEffect(()=>{let e=setTimeout(()=>{f(!0)},7e3);return()=>clearTimeout(e)},[]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Y,{children:(0,i.jsxs)(n.ModalHeader,{children:[c&&(0,i.jsx)(J,{onClick:s}),t??u(`Connecting...`),(0,i.jsx)(n.ModalCloseButton,{onClick:o})]})}),(0,i.jsxs)(n.ModalBody,{children:[(0,i.jsx)(n.VStack,{align:`center`,p:6,gap:0,w:`full`,justifyContent:`center`,minH:`150px`,children:(0,i.jsx)(n.Spinner,{size:`xl`})}),e&&!d&&(0,i.jsx)(n.Text,{size:`sm`,textAlign:`center`,children:e}),d&&(0,i.jsxs)(n.VStack,{mt:4,spacing:2,children:[(0,i.jsx)(n.Text,{color:`orange.300`,size:`sm`,textAlign:`center`,children:u(`This is taking longer than expected.`)}),(0,i.jsx)(n.Text,{size:`sm`,textAlign:`center`,children:u(`You may want to try establishing the connection again.`)})]})]}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:d&&(0,i.jsxs)(n.Button,{variant:`vechainKitPrimary`,onClick:a,children:[(0,i.jsx)(n.Icon,{mr:2,as:g.LuRefreshCw}),u(`Try again`)]})})]})},Sa=({error:e,onClose:t,onTryAgain:r,onGoBack:a})=>{let{t:o}=(0,l.useTranslation)(),s=(0,h.useReducedMotion)();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Y,{children:(0,i.jsxs)(n.ModalHeader,{children:[(0,i.jsx)(J,{onClick:a}),o(`Connection Failed`),(0,i.jsx)(n.ModalCloseButton,{onClick:t})]})}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`center`,p:6,w:`full`,justifyContent:`center`,minH:`100px`,gap:4,children:[(0,i.jsx)(h.motion.div,{transition:{duration:4,ease:`easeInOut`,repeat:s?0:1/0},animate:{scale:s?[1]:[1,1.1,1]},children:(0,i.jsx)(n.Icon,{as:g.LuCircleAlert,color:`#ef4444`,fontSize:`60px`,opacity:.5})}),(0,i.jsx)(n.Text,{w:`full`,size:`sm`,textAlign:`center`,children:e})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.Button,{variant:`vechainKitPrimary`,onClick:r,children:[(0,i.jsx)(n.Icon,{mr:2,as:g.LuRefreshCw}),o(`Try again`)]})})]})},Ca=({onClose:e,appsInfo:r,isLoading:a,setCurrentContent:o,showBackButton:s=!0})=>{let{t:c}=(0,l.useTranslation)(),u=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),{setConnectionCache:d}=Zo(),{login:f}=Vn(),p=async(n,i)=>{o({type:`loading`,props:{title:`${c(`Connecting with`)} ${i}`,loadingText:c(`Please approve the request in the connection request window...`),onTryAgain:()=>{p(n,i)}}});try{await f(n),d({name:i,logoUrl:r.find(e=>e.id===n)?.logo_url,appId:n,website:r.find(e=>e.id===n)?.website}),e()}catch(e){let a=e?.message;if(a&&t.a(a)){o({type:`ecosystem`,props:{appsInfo:r,isLoading:!1}});return}o({type:`error`,props:{error:(e instanceof Error?e:Error(`An unexpected issue occurred while logging in with this app. Please try again or contact support.`)).message,onTryAgain:()=>{p(n,i)}}})}};return(0,i.jsx)(n.Box,{children:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Y,{children:(0,i.jsxs)(n.ModalHeader,{children:[s&&(0,i.jsx)(J,{onClick:()=>o(`main`)}),c(`Already have an x2earn app wallet?`),(0,i.jsx)(n.ModalCloseButton,{onClick:e})]})}),(0,i.jsxs)(n.ModalBody,{children:[a&&(0,i.jsx)(n.VStack,{minH:`200px`,w:`full`,justifyContent:`center`,children:(0,i.jsx)(n.Spinner,{})}),!a&&r&&(0,i.jsx)(n.VStack,{spacing:4,w:`full`,pb:6,children:r.map(e=>(0,i.jsxs)(n.Button,{variant:`loginIn`,fontSize:`14px`,fontWeight:`400`,p:6,borderRadius:16,w:`full`,onClick:()=>{p(e.id,e.name)},justifyContent:`flex-start`,children:[(0,i.jsx)(n.Image,{src:e.logo_url,alt:e.name,w:`30px`}),(0,i.jsx)(n.Text,{ml:5,children:e.name})]},e.id))}),!a&&!r&&(0,i.jsx)(n.Text,{textAlign:`center`,color:u,children:c(`No application from VeChain ecosystem is available to login.`)})]}),(0,i.jsx)(n.ModalFooter,{pt:0})]})})},wa=({isOpen:e,onClose:t,initialContent:n=`main`,preventAutoClose:a=!1})=>{let[o,s]=(0,r.useState)(n);(0,r.useEffect)(()=>{e&&s(n)},[e,n,s]);let c=(()=>{if(!o)return(0,i.jsx)(Hr,{setCurrentContent:s,onClose:t,preventAutoClose:a});switch(o){case`main`:return(0,i.jsx)(Hr,{setCurrentContent:s,onClose:t,preventAutoClose:a});case`faq`:return(0,i.jsx)(oi,{onGoBack:()=>s(`main`)})}if(typeof o==`object`&&`type`in o)switch(o.type){case`ecosystem`:return(0,i.jsx)(Ca,{onClose:t,appsInfo:o.props.appsInfo,isLoading:o.props.isLoading,setCurrentContent:s,showBackButton:o.props.showBackButton});case`loading`:return(0,i.jsx)(xa,{title:o.props.title,loadingText:o.props.loadingText,onTryAgain:o.props.onTryAgain,onClose:t,onGoBack:()=>s(`main`),showBackButton:o.props.showBackButton});case`error`:return(0,i.jsx)(Sa,{error:o.props.error,onClose:t,onTryAgain:o.props.onTryAgain,onGoBack:()=>s(`main`)})}return null})();return c?(0,i.jsx)(Je,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,mobileMinHeight:`260px`,mobileMaxHeight:`400px`,desktopMinHeight:`250px`,desktopMaxHeight:`400px`,children:c}):(0,i.jsx)(Je,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,mobileMinHeight:`260px`,mobileMaxHeight:`400px`,desktopMinHeight:`250px`,desktopMaxHeight:`400px`,children:(0,i.jsx)(Hr,{setCurrentContent:s,onClose:t})})},Ta=({onClick:e,text:t,icon:r,customIcon:a,rightIcon:o,style:s,variant:c=`loginIn`,iconWidth:l=`25px`})=>t?t?(0,i.jsxs)(n.Button,{...s,variant:c,w:`full`,onClick:e,children:[(0,i.jsxs)(n.HStack,{w:`full`,justify:`flex-start`,gap:2,children:[a||(0,i.jsx)(n.Icon,{as:r,w:l,h:l}),(0,i.jsx)(n.Text,{opacity:.9,children:t})]}),o]}):null:(0,i.jsx)(n.Button,{...s,variant:c,w:`full`,onClick:e,children:a||(0,i.jsx)(n.Icon,{as:r,w:`20px`,h:`20px`})}),Ea=({isLoading:e,buttonStyle:t})=>{let{t:a}=(0,l.useTranslation)(),{loginMethods:o,darkMode:s,privyEcosystemAppIDS:c}=$(),u=o?.some(({method:e})=>e===`ecosystem`),{open:d}=po(),{data:f,isLoading:p}=Ze(c),m=(0,r.useCallback)(e=>{let t=typeof e==`function`?e(`main`):e;typeof t==`object`&&`type`in t?t.type===`ecosystem`?d({type:`ecosystem`,props:{...t.props,showBackButton:!1}}):t.type===`loading`?d({type:`loading`,props:{...t.props,showBackButton:!1}}):d(t):d(t)},[d]);return(0,i.jsx)(n.Popover,{placement:`bottom-start`,size:`xl`,closeOnBlur:!1,variant:`vechainKitBase`,children:({isOpen:r})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.PopoverTrigger,{children:(0,i.jsxs)(n.Button,{isLoading:e,...t,isActive:r,children:[a(`Login`),(0,i.jsx)(n.Icon,{ml:2,as:g.LuChevronDown,transform:r?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 0.2s`})]})}),(0,i.jsxs)(n.PopoverContent,{children:[(0,i.jsx)(n.PopoverBody,{children:(0,i.jsx)(Br,{setCurrentContent:m})}),(0,i.jsx)(n.PopoverFooter,{borderTop:`none`,pb:`15px`,children:u&&(0,i.jsx)(n.HStack,{justify:`center`,w:`full`,children:(0,i.jsx)(Vr,{isDark:s,appsInfo:Object.values(f||{}),isLoading:p,setCurrentContent:m})})})]})]})})},Da=({variant:e})=>{let{account:r}=X();return r?e===`icon`?null:e===`iconAndDomain`?r.domain?(0,i.jsx)(n.Text,{fontSize:`sm`,children:t.G(r?.domain??``,16,0)}):(0,i.jsx)(n.Text,{fontSize:`sm`,children:t.W(r.address??``,6,4)}):e===`iconDomainAndAssets`?(0,i.jsxs)(n.HStack,{spacing:4,children:[(0,i.jsxs)(n.VStack,{spacing:0,alignItems:`flex-start`,children:[r.domain&&(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,children:t.G(r?.domain??``,16,0)}),(0,i.jsx)(n.Text,{fontSize:r.domain?`xs`:`sm`,opacity:r.domain?.5:1,"data-testid":`trimmed-address`,children:t.W(r.address??``,4,4)})]}),(0,i.jsx)(li,{address:r.address??``,maxIcons:3})]}):(0,i.jsxs)(n.VStack,{spacing:0,alignItems:`flex-start`,children:[r.domain&&(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`bold`,children:t.G(r?.domain??``,16,0)}),(0,i.jsx)(n.Text,{fontSize:r.domain?`xs`:`sm`,opacity:r.domain?.5:1,children:t.W(r.address??``,4,4)})]}):(0,i.jsx)(n.Spinner,{})},Oa=({mobileVariant:e=`iconAndDomain`,desktopVariant:t=`iconAndDomain`,onOpen:r,buttonStyle:a={}})=>{let{account:o}=X(),[s]=(0,n.useMediaQuery)(`(min-width: 768px)`);return(0,i.jsx)(n.Button,{...a,onClick:r,w:`full`,minH:`45px`,maxW:`fit-content`,"data-testid":`wallet-button`,children:(0,i.jsxs)(n.HStack,{w:`full`,minW:`fit-content`,children:[(0,i.jsx)(Hc,{wallet:o,props:{width:30,height:30,minWidth:30,minHeight:30}}),(0,i.jsx)(Da,{variant:s?t:e})]})})},ka=({mobileVariant:e=`iconAndDomain`,desktopVariant:t=`iconDomainAndAddress`,buttonStyle:r,connectionVariant:a=`modal`,label:o=`Login`})=>{let{darkMode:s,loginMethods:c,theme:l}=$(),u=c?.length===1&&c[0].method===`dappkit`,{connection:d,account:p}=X(),{setSource:m,connectV2:h}=(0,f.useWallet)(),[g]=(0,n.useMediaQuery)(`(max-width: 768px)`),_=(0,n.useDisclosure)(),v=(0,n.useDisclosure)(),{open:y}=(0,f.useWalletModal)();return(0,i.jsxs)(lo,{darkMode:s,theme:l,children:[d.isConnected&&p?(0,i.jsx)(Oa,{mobileVariant:e,desktopVariant:t,onOpen:v.onOpen,buttonStyle:r}):a===`popover`&&!g?(0,i.jsx)(Ea,{isLoading:d.isLoading,buttonStyle:r}):(0,i.jsx)(n.Button,{isLoading:d.isLoading,onClick:()=>{d.isInAppBrowser?(m(`veworld`),h(null)):u?y():_.onOpen()},...r,children:o}),(0,i.jsx)(wa,{isOpen:_.isOpen,onClose:_.onClose}),(0,i.jsx)(ba,{isOpen:v.isOpen,onClose:v.onClose})]})},Aa=()=>{let{darkMode:e}=$(),t=25/2,[r]=(0,n.useMediaQuery)(`(max-width: 280px)`),[a]=(0,n.useMediaQuery)(`(max-width: 380px)`);return(0,i.jsxs)(n.HStack,{spacing:0,ml:0,children:[(0,i.jsx)(n.Circle,{size:`25px`,borderRadius:`full`,bg:`#F8F8F8`,p:2,alignItems:`center`,justifyContent:`center`,zIndex:3,children:(0,i.jsx)(n.Icon,{as:E.FcGoogle,fontSize:`20px`})}),!r&&(0,i.jsx)(n.Circle,{ml:`-${t}px`,size:`25px`,borderRadius:`full`,bg:`black`,p:2,alignItems:`center`,justifyContent:`center`,zIndex:2,children:(0,i.jsx)(n.Icon,{as:j.FaXTwitter,color:`white`,fontSize:`20px`})}),!r&&!a&&(0,i.jsx)(n.Circle,{ml:`-${t}px`,zIndex:1,size:`25px`,borderRadius:`full`,bg:`#5865F2`,p:2,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Icon,{as:j.FaDiscord,color:`white`,fontSize:`20px`})}),(0,i.jsx)(n.Icon,{zIndex:1,as:g.LuPlus,color:e?`black`:`white`,fontSize:`15px`})]})},ja=({status:e,txReceipt:a,txError:o,onTryAgain:s,description:c,onClose:u})=>{let{t:d}=(0,l.useTranslation)(),{network:f}=$(),p=t.bt(f.type).explorerUrl,m=(0,r.useMemo)(()=>o?o.reason||d(`Something went wrong. Please try again.`):null,[o,d]),h=(()=>{let t=e===`waitingConfirmation`;switch(t&&(e=`pending`),e){case`pending`:return{icon:(0,i.jsx)(n.Spinner,{size:`md`,"data-testid":`pending-spinner-toast`}),title:d(t?`Processing transaction...`:`Waiting for confirmation...`),closeDisabled:!0,description:t?d(`Transaction is being processed, it can take up to 15 seconds.`):c??d(`Please confirm the transaction in your wallet.`)};case`error`:return{icon:(0,i.jsx)(n.Icon,{as:g.LuCircleAlert,color:`red.500`,fontSize:`40px`,"data-testid":`error-icon-toast`}),title:d(`Transaction failed`),closeDisabled:!1,description:m};case`success`:return{icon:(0,i.jsx)(n.Icon,{as:g.LuCircleCheck,color:`green.500`,fontSize:`40px`,"data-testid":`success-icon-toast`}),title:d(`Transaction successful!`),closeDisabled:!1,description:void 0};case`ready`:return{icon:null,title:d(`Confirm transaction`),closeDisabled:!1,description:c??d(`Confirm the transaction in your wallet to complete it.`)};default:return{icon:null,title:``,closeDisabled:!1,description:``}}})();return h?(0,i.jsxs)(n.HStack,{justify:`space-between`,alignItems:`flex-start`,w:`full`,children:[(0,i.jsx)(n.VStack,{spacing:4,children:(0,i.jsxs)(n.HStack,{spacing:4,w:`full`,justifyContent:`flex-start`,alignItems:`flex-start`,children:[h.icon,(0,i.jsxs)(n.VStack,{w:`full`,align:`flex-start`,spacing:2,children:[(0,i.jsxs)(n.VStack,{spacing:1,w:`full`,children:[(0,i.jsx)(n.Heading,{w:`full`,size:`xs`,children:h.title}),h.description&&(0,i.jsx)(n.Text,{fontSize:`xs`,children:h.description})]}),(e===`error`||e===`ready`)&&(0,i.jsx)(n.Button,{size:`xs`,onClick:s,children:e===`error`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Icon,{mr:2,as:g.LuRefreshCw}),d(`Try again`)]}):d(`Confirm`)}),a&&e!==`pending`&&(0,i.jsxs)(n.Link,{fontSize:`xs`,isExternal:!0,href:`${p}/${a.meta.txID}`,children:[d(`View on explorer`),` `,(0,i.jsx)(n.Icon,{as:g.LuExternalLink})]})]})]})}),!h.closeDisabled&&(0,i.jsx)(n.IconButton,{onClick:u,size:`sm`,borderRadius:`full`,"aria-label":`Close`,icon:(0,i.jsx)(n.Icon,{as:g.LuX,boxSize:4})})]}):null},Ma=({isOpen:e,onClose:t,status:r,txReceipt:a,txError:o,onTryAgain:s,description:c})=>{let{darkMode:l}=$();return e?(0,i.jsx)(n.Box,{position:`fixed`,bottom:`5`,left:`5`,zIndex:`11111`,bg:l?`#1f1f1e`:`white`,borderRadius:`md`,p:5,boxShadow:`lg`,maxW:`sm`,minW:`300px`,children:(0,i.jsx)(ja,{status:r,txReceipt:a,txError:o,onTryAgain:s,description:c,onClose:t})}):null},Na=({txId:e,title:r,description:a,onDone:o,showSocialButtons:s=!1})=>{let{t:c}=(0,l.useTranslation)(),{network:u}=$(),d=t.bt(u.type).explorerUrl,f=`${d}/${e}`,p=(0,n.useToken)(`colors`,`vechain-kit-success`);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:r}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`center`,p:6,spacing:3,children:[(0,i.jsx)(h.motion.div,{transition:{duration:4,ease:`easeInOut`,repeat:1/0},animate:{scale:[1,1.1,1]},children:(0,i.jsx)(n.Icon,{as:g.LuCircleCheck,fontSize:`100px`,color:p})}),a&&(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:a}),s&&e&&(0,i.jsxs)(n.VStack,{mt:2,children:[(0,i.jsx)(n.Text,{fontSize:`xs`,children:c(`Share on`)}),(0,i.jsx)(ha,{description:f})]})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsxs)(n.VStack,{width:`full`,spacing:4,children:[(0,i.jsx)(n.Button,{onClick:o,variant:`vechainKitSecondary`,width:`full`,children:c(`Done`)}),e&&(0,i.jsx)(n.Link,{href:`${d}/${e}`,isExternal:!0,opacity:.5,fontSize:`14px`,textDecoration:`underline`,children:(0,i.jsxs)(n.HStack,{spacing:1,alignItems:`center`,w:`full`,justifyContent:`center`,children:[(0,i.jsx)(n.Text,{children:c(`View transaction on the explorer`)}),(0,i.jsx)(n.Icon,{size:16,as:g.LuExternalLink})]})})]})})]})},Pa=({setCurrentContent:e,handleClose:t,style:r})=>{let{t:a}=(0,l.useTranslation)(),{smartAccount:o,connectedWallet:s}=X(),{data:c}=Ks(o?.address??``,s?.address??``,3),{sendTransaction:u,isTransactionPending:d,isWaitingForWalletConfirmation:f,error:p,txReceipt:m}=Zs({smartAccountAddress:o?.address??``,targetVersion:3,onSuccess:()=>{e({type:`successful-operation`,props:{setCurrentContent:e,txId:m?.meta.txID,title:a(`Upgrade Successful!`),description:a(`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(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(Y,{children:[(0,i.jsx)(n.ModalHeader,{children:a(`Account upgrade required`)}),(0,i.jsx)(n.ModalCloseButton,{})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:10,align:`stretch`,justifyContent:`center`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,textAlign:`center`,children:a(`To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3).`)}),(0,i.jsxs)(n.HStack,{align:`center`,justifyContent:`space-evenly`,rounded:`md`,children:[(0,i.jsxs)(n.Box,{position:`relative`,display:`inline-block`,children:[(0,i.jsx)(n.Circle,{size:`60px`,bg:`gray.200`,children:(0,i.jsx)(n.Image,{src:o?.image,alt:a(`Profile Picture`),w:`100%`,h:`100%`,borderRadius:`full`,objectFit:`cover`})}),(0,i.jsx)(n.Heading,{position:`absolute`,top:`-5`,right:`-5`,color:`#D23F63`,fontSize:`28px`,children:`v1`})]}),(0,i.jsx)(n.Icon,{as:g.LuArrowRight,color:`#3DBA67`}),(0,i.jsxs)(n.Box,{position:`relative`,display:`inline-block`,children:[(0,i.jsx)(n.Circle,{size:`60px`,bg:`gray.200`,children:(0,i.jsx)(n.Image,{src:o?.image,alt:a(`Profile Picture`),w:`100%`,h:`100%`,borderRadius:`full`,objectFit:`cover`})}),(0,i.jsx)(n.Heading,{position:`absolute`,top:`-5`,right:`-5`,color:`#3DBA67`,fontSize:`28px`,children:`v3`})]})]}),(0,i.jsxs)(n.Alert,{status:`info`,borderRadius:`md`,children:[(0,i.jsx)(n.AlertIcon,{}),(0,i.jsxs)(n.Box,{children:[(0,i.jsx)(n.AlertTitle,{fontSize:`sm`,children:a(`Benefits of this upgrade:`)}),(0,i.jsx)(n.AlertDescription,{fontSize:`xs`,children:(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,mt:1,children:[(0,i.jsxs)(n.Text,{fontSize:`xs`,lineHeight:`1.2`,children:[`• `,a(`Improved security features`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`• `,a(`Better transaction handling`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`•`,` `,a(`Enhanced compatibility with dApps`)]}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[`•`,` `,a(`Reduced gas costs for operations`)]})]})})]})]})]})}),(0,i.jsx)(n.ModalFooter,{justifyContent:`center`,children:(0,i.jsx)(n.VStack,{spacing:3,w:`full`,children:(0,i.jsx)(Uc,{style:r,buttonText:a(c?`Upgrade account`:`Account already upgraded`),onConfirm:async()=>{try{await u()}catch(e){console.error(`Failed to upgrade Smart Account:`,e)}},isTxWaitingConfirmation:f,isSubmitting:d,transactionPendingText:a(`Upgrading...`),txReceipt:m,transactionError:p,isDisabled:!c})})})]})},Fa=({isOpen:e,onClose:t,style:n})=>{let[a,o]=(0,r.useState)(`upgrade-smart-account`);return(0,r.useEffect)(()=>{e&&o(`upgrade-smart-account`)},[e]),(0,i.jsx)(Je,{isOpen:e,onClose:t,allowExternalFocus:!0,blockScrollOnMount:!0,size:n?.modalSize,children:(()=>{if(typeof a==`object`)switch(a.type){case`successful-operation`:return(0,i.jsx)(Na,{...a.props})}else if(a===`upgrade-smart-account`)return(0,i.jsx)(Pa,{setCurrentContent:o,handleClose:t,style:n})})()})},{definePartsStyle:Ia,defineMultiStyleConfig:La}=(0,n.createMultiStyleConfigHelpers)(I.modalAnatomy.keys),Ra=e=>({vechainKitBase:Ia({dialog:{scrollbarWidth:`none`,overflow:`scroll`,overflowX:`hidden`,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:{...e.buttons.button.hoverBg?{bg:e.buttons.button.hoverBg}:{opacity:.8}},_active:{bg:e.buttons.button.bg,opacity:.8}},header:{w:`full`,color:e.colors.text.primary,fontSize:e.fonts.sizes.large,fontWeight:e.fonts.weights.bold,textAlign:`center`,paddingBottom:5,paddingTop:5}})}),za=e=>La({variants:Ra(e),defaultProps:{variant:`vechainKitBase`}}),{definePartsStyle:Ba,defineMultiStyleConfig:Va}=(0,n.createMultiStyleConfigHelpers)(I.cardAnatomy.keys),Ha=e=>({vechainKitBase:Ba({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}`}}),vechainKitWalletCard:Ba({container:{backgroundColor:e.colors.background.card,borderRadius:e.borders.radius.medium,width:`full`,cursor:`pointer`,position:`relative`}}),featureAnnouncement:Ba({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:Ba({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`}})}),Ua=e=>Va({variants:Ha(e),defaultProps:{variant:`vechainKitBase`}}),Wa=(0,n.defineStyle)({borderRadius:`12px`}),Ga=e=>({loginIn:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({px:4,width:`full`,height:`60px`,rounded:e.buttons.button.rounded??e.borders.radius.large,bg:e.colors.error+`1f`,color:e.colors.error,border:e.buttons.button.border===`none`?`none`:e.buttons.button.border,backdropFilter:e.buttons.button.backdropFilter,_hover:{opacity:.8,_disabled:{opacity:.5,bg:e.colors.error+`1f`}},_disabled:{opacity:.5,cursor:`not-allowed`},transition:`all 0.2s`})),vechainKitHeaderIconButtons:(0,n.defineStyle)(()=>({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`,rounded:`full`,mt:`8px`})),actionButton:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({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:(0,n.defineStyle)(()=>({color:e.colors.text.primary,_hover:{color:e.colors.text.secondary,textDecoration:`underline`},_active:{color:e.colors.text.primary},transition:`all 0.2s`}))}),Ka=e=>(0,n.defineStyleConfig)({baseStyle:Wa,variants:Ga(e)}),qa=e=>(0,n.defineStyleConfig)({baseStyle:Wa,variants:Ga(e)}),Ja=e=>(0,n.defineStyleConfig)({baseStyle:Wa,variants:Ga(e),defaultProps:{variant:`vechainKitHeaderIconButtons`}}),{definePartsStyle:Ya,defineMultiStyleConfig:Xa}=(0,n.createMultiStyleConfigHelpers)(I.popoverAnatomy.keys),Za=e=>({vechainKitBase:Ya({popper:{zIndex:1e3},content:{borderRadius:e.borders.radius.xl,border:e.colors.border.modal,backgroundColor:e.colors.background.modal,backdropFilter:e.effects.backdropFilter.modal,boxShadow:`0px 4px 16px rgba(0, 0, 0, 0.12)`,minWidth:`380px`},body:{padding:`16px`}})}),Qa=e=>Xa({variants:Za(e),defaultProps:{variant:`vechainKitBase`}}),$a=(e,t)=>({useSystemColorMode:!1,disableTransitionOnChange:!1,components:{Modal:za(t),Card:Ua(t),Button:Ka(t),IconButton:qa(t),CloseButton:Ja(t),Popover:Qa(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,"vechain-kit-button-primary-bg":t.buttons.primaryButton.bg,"vechain-kit-button-primary-color":t.buttons.primaryButton.color},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:n.theme.fonts,fontSizes:{...n.theme.fontSizes,sm:t.fonts.sizes.small,md:t.fonts.sizes.medium,lg:t.fonts.sizes.large},fontWeights:{...n.theme.fontWeights,normal:t.fonts.weights.normal,medium:t.fonts.weights.medium,bold:t.fonts.weights.bold},colors:n.theme.colors,space:n.theme.space}),eo=(e,t)=>{let r=(0,n.extendTheme)($a(e,Oe(De(e),ke(t,e))));return r.styles.global=()=>({}),r.__cssVars&&(r.__cssVars.global=()=>({})),r},{ToastContainer:to}=(0,n.createStandaloneToast)(),no=()=>(0,F.default)({key:`vechain-kit`,prepend:!0}),ro=({bodyFont:e,headingFont:t})=>(0,i.jsx)(P.Global,{styles:P.css`
128
128
  /* define CSS layers with proper priority order */
129
129
  @layer vechain-kit, host-app;
130
130
 
@@ -197,7 +197,7 @@ const e=require(`./assets-DNJsQD7_.cjs`),t=require(`./utils-CzaSErgL.cjs`);let n
197
197
  font-family: ${t} !important;
198
198
  }
199
199
  }
200
- `}),Ua=({children:e,theme:t,bodyFont:a,headingFont:o})=>(0,i.jsxs)(F.CacheProvider,{value:(0,r.useMemo)(()=>Va(),[]),children:[(0,i.jsx)(Ha,{bodyFont:a,headingFont:o}),(0,i.jsx)(n.ChakraProvider,{theme:t,resetCSS:!1,portalZIndex:void 0,children:e})]}),Wa=({darkMode:e})=>{try{if(t._t(`[data-chakra-color-mode]`))return null}catch(e){console.error(e)}return(0,i.jsx)(n.ColorModeScript,{initialColorMode:e?`dark`:`light`})},Ga=(0,r.createContext)({portalRootRef:void 0,tokens:void 0,themeConfig:void 0}),Ka=()=>{let e=(0,r.useContext)(Ga);if(!e)throw Error(`useVechainKitTheme must be used within a VechainKitThemeProvider`);return e},qa=({darkMode:e=!1})=>{let{setColorMode:t,colorMode:a}=(0,n.useColorMode)();return(0,r.useEffect)(()=>{let n=e?`dark`:`light`;a!==n&&t(n)},[e]),(0,i.jsx)(i.Fragment,{})},Ja=({children:e,darkMode:t=!1,theme:a})=>{let o=(0,r.useRef)(null),s=(0,r.useContext)(el),c=s?s.theme:void 0,l=a??c,u=(0,r.useMemo)(()=>me(pe(t),he(l,t)),[t,l]),d=(0,r.useMemo)(()=>({...za(t,l),config:{...za(t,l).config,initialColorMode:t?`dark`:`light`}}),[t,l]);return(0,i.jsxs)(Ga.Provider,{value:{portalRootRef:o,tokens:u,themeConfig:l},children:[(0,i.jsx)(Wa,{darkMode:t}),(0,i.jsxs)(Ua,{theme:d,bodyFont:u.fonts.body,headingFont:u.fonts.heading,children:[(0,i.jsx)(qa,{darkMode:t}),(0,i.jsx)(n.Box,{id:`vechain-kit-root`,ref:o,bg:`transparent`,borderRadius:`12px`,children:e})]}),(0,i.jsx)(Ba,{})]})},Ya=(0,r.createContext)(null),Xa=()=>{let e=(0,r.useContext)(Ya);if(!e)throw Error(`useModal must be used within ModalProvider`);return e},Za=({children:e})=>{let{darkMode:n,theme:a}=$(),[o,s]=(0,r.useState)(!1),[c,l]=(0,r.useState)(`main`),[u,d]=(0,r.useState)(!1),{setSource:f,connectV2:m}=(0,p.useWallet)(),h=(0,r.useCallback)((e,n)=>{t.mt()&&window.vechain&&window.vechain.isInAppBrowser?(f(`veworld`),m(null)):(l(e??`main`),d(n??!1),s(!0))},[]),g=(0,r.useCallback)(()=>{s(!1),l(`main`),d(!1)},[]),[_,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(!1),[x,S]=(0,r.useState)(`main`),C=(0,r.useCallback)((e,t)=>{S(e??`main`),b(t?.isolatedView??!1),v(!0)},[]),w=(0,r.useCallback)(()=>{v(!1),S(`main`),setTimeout(()=>{b(!1)},300)},[]),[T,E]=(0,r.useState)(!1),D=(0,r.useCallback)(()=>E(!0),[]),O=(0,r.useCallback)(()=>E(!1),[]),[k,A]=(0,r.useState)(!1),j=(0,r.useCallback)(()=>A(!0),[]),M=(0,r.useCallback)(()=>A(!1),[]),[N,P]=(0,r.useState)(!1),[F,I]=(0,r.useState)(void 0),L=(0,r.useCallback)(e=>{I(e),P(!0)},[]),R=(0,r.useCallback)(()=>P(!1),[]);return(0,i.jsxs)(Ya.Provider,{value:{openConnectModal:h,closeConnectModal:g,isConnectModalOpen:o,connectModalContent:c,setConnectModalContent:l,connectModalPreventAutoClose:u,setConnectModalPreventAutoClose:d,openAccountModal:C,closeAccountModal:w,isAccountModalOpen:_,setAccountModalContent:S,accountModalContent:x,isolatedView:y,openTransactionModal:D,closeTransactionModal:O,isTransactionModalOpen:T,openTransactionToast:j,closeTransactionToast:M,isTransactionToastOpen:k,openUpgradeSmartAccountModal:L,closeUpgradeSmartAccountModal:R,isUpgradeSmartAccountModalOpen:N},children:[e,(0,i.jsxs)(Ja,{darkMode:n,theme:a,children:[(0,i.jsx)(la,{isOpen:o,onClose:g,initialContent:c,preventAutoClose:u}),(0,i.jsx)(aa,{isOpen:_,onClose:w,initialContent:x}),(0,i.jsx)(ba,{isOpen:N,onClose:R,style:F})]})]})},Qa=()=>{let{loginMethods:e}=$(),t=e?.length===1&&e[0].method===`dappkit`,{openConnectModal:n,closeConnectModal:r,isConnectModalOpen:i}=Xa(),{open:a,close:o}=(0,p.useWalletModal)();return{open:t?a:e=>n(e),close:t?o:r,isOpen:t?!1:i}},$a=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),eo=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Xa();return{open:()=>e(),close:t,isOpen:n}},to=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),no=()=>{let{openTransactionModal:e,closeTransactionModal:t,isTransactionModalOpen:n}=Xa();return{open:e,close:t,isOpen:n}},ro=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),io=()=>{let{openTransactionToast:e,closeTransactionToast:t,isTransactionToastOpen:n}=Xa();return{open:e,close:t,isOpen:n}},ao=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),oo=()=>{let{connection:e}=Z(),{openConnectModal:t,closeConnectModal:n,isConnectModalOpen:r,openAccountModal:i,closeAccountModal:a,isAccountModalOpen:o}=Xa();return{open:n=>{e.isConnected?i(void 0,n):t()},close:()=>{o&&a(),r&&n()},isOpen:r||o}},so=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),co=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=Xa();return{open:t=>{e({type:`choose-name`,props:{setCurrentContent:r,onBack:()=>r(`main`),initialContentSource:`main`}},t)},close:()=>{t()},isOpen:n}},lo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),uo=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=Xa();return{open:t=>{e({type:`send-token`,props:{setCurrentContent:r}},t)},close:()=>{t()},isOpen:n}},fo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),po=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=Xa();return{open:t=>{e({type:`swap-token`,props:{setCurrentContent:r,fromTokenAddress:t?.fromTokenAddress,toTokenAddress:t?.toTokenAddress}},{isolatedView:t?.isolatedView})},close:()=>{t()},isOpen:n}},mo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),ho=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Xa();return{open:t=>{e(`ecosystem`,t)},close:()=>{t()},isOpen:n}},go=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),_o=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Xa();return{open:t=>{e(`notifications`,t)},close:()=>{t()},isOpen:n}},vo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),yo=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=Xa();return{open:t=>{e({type:`faq`,props:{onGoBack:()=>r(`main`),showLanguageSelector:!1}},t)},close:()=>{t()},isOpen:n}},bo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),xo=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=Xa();return{open:()=>{e({type:`account-customization`,props:{setCurrentContent:r}})},close:()=>{t()},isOpen:n}},So=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Co=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Xa();return{open:t=>{e(`receive-token`,t)},close:()=>{t()},isOpen:n}},wo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),To=()=>{let{privy:e,loginMethods:n}=$(),i=e?.appId===t.at,a=e=>n?Array.isArray(e)?e.some(e=>n.some(t=>t.method===e)):n.some(t=>t.method===e):!0,o=(0,r.useMemo)(()=>n?n.length===0||a(`ecosystem`):!0,[n]),s=(0,r.useMemo)(()=>a(`vechain`),[n]),c=(0,r.useMemo)(()=>a(`dappkit`),[n]),l=(0,r.useMemo)(()=>a(`passkey`),[n]),u=(0,r.useMemo)(()=>a(`email`),[n]),d={showGoogleLogin:(0,r.useMemo)(()=>a(`google`),[n]),showEmailLogin:u,showPasskey:l,showVeChainLogin:s,showDappKit:c,showEcosystem:o,showMoreLogin:(0,r.useMemo)(()=>a(`more`),[n]),showGithubLogin:(0,r.useMemo)(()=>a(`github`),[n]),isOfficialVeChainApp:!1};return e?i?{...d,isOfficialVeChainApp:!0}:{...d}:{...d,showGoogleLogin:!1,showEmailLogin:!1,showPasskey:!1,showMoreLogin:!1}},Eo=e=>{let{openUpgradeSmartAccountModal:t,closeUpgradeSmartAccountModal:n,isUpgradeSmartAccountModalOpen:r}=Xa();return{open:()=>t(e),close:n,isOpen:r}},Do=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Oo=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Xa();return{open:t=>{e(`profile`,t)},close:()=>{t()},isOpen:n}},ko=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Ao=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Xa();return{open:t=>{e(`settings`,t)},close:()=>{t()},isOpen:n}},jo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Mo=()=>{let[e,t]=(0,r.useState)(!1),[n,i]=(0,r.useState)(null),[a,o]=(0,r.useState)(null),{connection:s,account:c}=Z(),{requestCertificate:l}=(0,p.useWallet)(),u=$c();return{signMessage:(0,r.useCallback)(async e=>{if(!c)throw Error(`Account not found`);t(!0),o(null),i(null);try{let t=null;return t=s.isConnectedWithDappKit?(await l({purpose:`agreement`,payload:{type:`text`,content:e}},{signer:c.address})).signature:await u.signMessage(e),i(t),t}catch(e){let t=e instanceof Error?e:Error(String(e));throw o(t),t}finally{t(!1)}},[s,u,c?.address]),isSigningPending:e,signature:n,error:a,reset:(0,r.useCallback)(()=>{t(!1),i(null),o(null)},[])}},No=()=>{let[e,t]=(0,r.useState)(!1),[n,i]=(0,r.useState)(null),[a,o]=(0,r.useState)(null),{signer:s}=(0,p.useWallet)(),{connection:c}=Z(),l=$c();return{signTypedData:(0,r.useCallback)(async(e,n)=>{t(!0),o(null),i(null);try{let t;if(c.isConnectedWithDappKit){let r={...e.domain,salt:e.domain?.salt?Buffer.from(e.domain.salt).toString(`hex`):void 0};t=await s.signTypedData(r,e.types,e.message,void 0,n)}else t=await l.signTypedData(e);return i(t),t}catch(e){if(e&&typeof e==`object`&&`statusCode`in e&&e.statusCode===4001){let e=Error(`User denied signature request`);throw o(e),e}let t=e instanceof Error?e:Error(typeof e==`object`?JSON.stringify(e):String(e));throw console.error(t),o(t),t}finally{t(!1)}},[c,l]),isSigningPending:e,signature:n,error:a,reset:(0,r.useCallback)(()=>{t(!1),i(null),o(null)},[])}},Po=()=>{let{loginWithPasskey:e}=(0,d.useLoginWithPasskey)();return{loginWithPasskey:async()=>{try{await e()}catch(e){throw e}}}};let Fo=!1;const Io=()=>{let{createWallet:e}=(0,d.useCreateWallet)(),{initOAuth:t}=(0,d.useLoginWithOAuth)({onComplete:(0,r.useCallback)(async({isNewUser:t})=>{if(t&&!Fo){Fo=!0;try{await e()}catch(e){throw Fo=!1,console.error(`Failed to create wallet:`,e),e}}},[e])});return{initOAuth:async({provider:e})=>{try{await t({provider:e})}catch(e){throw e}}}},Lo=()=>{let e=`vechain_kit_cross_app_connection`;return{setConnectionCache:(0,r.useCallback)(n=>{let r={timestamp:Date.now(),ecosystemApp:n};t.yt(e,JSON.stringify(r))},[]),getConnectionCache:(0,r.useCallback)(()=>{let n=t.dt(e);return n?JSON.parse(n):null},[]),clearConnectionCache:(0,r.useCallback)(()=>{t.gt(e)},[])}},Ro=()=>{let{login:n}=En(),{setConnectionCache:r}=Lo(),{data:i}=Le([t.at]);return{login:async()=>{try{await n(t.at),r({name:`VeChain`,logoUrl:i?.[t.at]?.logo_url,appId:t.at,website:e.y})}catch(e){throw Sn({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.`})}}}},zo=`vechain-kit-app-hub-apps`,Bo=`vechain-kit-app-hub-apps-expiry`,Vo=1440*60*1e3,Ho=()=>[`VECHAIN_KIT`,`appHub`,`apps`],Uo=async()=>{if(typeof window<`u`)try{let e=t.dt(zo),n=t.dt(Bo);if(e&&n){let t=parseInt(n,10);if(Date.now()<t)return JSON.parse(e)}}catch{console.warn(`Invalid app-hub cache, fetching fresh data`)}let n=new URL(`contents/apps`,e.a),r=await fetch(n);if(!r.ok)throw Error(`Failed to fetch app directories`);let i=(await r.json()).map(async t=>{if(t.type!==`dir`)return null;let n=new URL(`master/apps/${t.name}/manifest.json`,e.o),r=await fetch(n);if(!r.ok)return console.warn(`Failed to fetch manifest for ${t.name}`),null;try{let n=await r.json(),i=new URL(`master/apps/${t.name}/logo.png`,e.o);return{id:t.name,name:n.name,description:n.desc,url:n.href,logo:i.toString(),category:n.category,tags:n.tags||[],isVeWorldSupported:n.isVeWorldSupported||!1,repo:n.repo,contracts:n.contracts,veBetterDaoId:n.veBetterDaoId}}catch(e){return console.warn(`Error parsing manifest for ${t.name}:`,e),null}}),a=(await Promise.all(i)).filter(e=>e!==null);if(typeof window<`u`)try{t.yt(zo,JSON.stringify(a)),t.yt(Bo,(Date.now()+864e5).toString())}catch(e){console.warn(`Failed to cache app-hub data:`,e)}return a},Wo=()=>(0,m.useQuery)({queryKey:Ho(),queryFn:async()=>{try{return await Uo()}catch(e){let t=localStorage.getItem(zo);if(t)return JSON.parse(t);throw e}},staleTime:1e3*60*60,retry:2}),Go=({abi:e,address:t,method:n})=>[`callClause`,t,n],Ko=e=>e.map(e=>typeof e==`bigint`?e.toString():Array.isArray(e)?Ko(e):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,typeof t==`bigint`?t.toString():t])):e),qo=({abi:e,address:t,method:n,args:r})=>[`callClause`,t,n,...r?.length?Ko(r):[]],Jo=({address:e,abi:n,method:r,args:i,queryOptions:a})=>{let o=(0,p.useThor)();return(0,m.useQuery)({queryKey:qo({abi:n,address:e,method:r,args:i}),queryFn:async()=>t.n({thor:o,contractAddress:e,abi:n,method:r,args:i}),...a})},Yo=({thor:e,calls:n,queryKey:r,enabled:i=!0})=>(0,m.useQuery)({queryKey:r,queryFn:()=>t.r({thor:e,calls:n}),enabled:i}),Xo=()=>{let{currentLanguage:e,setLanguage:t}=$();return{currentLanguage:e,setLanguage:t}},Zo=()=>{let{currentCurrency:e,setCurrency:t}=$();return{currentCurrency:e,setCurrency:t}},Qo=()=>{let[e,n]=(0,r.useState)(!0),i=`vechain_kit_feature_announcement_closed`;return(0,r.useEffect)(()=>{t.dt(i)&&n(!1)},[]),{isVisible:e,closeAnnouncement:()=>{t.yt(i,`true`),n(!1)}}},$o=()=>{let{network:e}=$();return e.nodeUrl??t.bt(e.type).nodeUrl},es=()=>{let[e,n]=(0,r.useState)(!0);return(0,r.useEffect)(()=>{if(!t.mt()){n(!1);return}let e=()=>{n(window.matchMedia(`(display-mode: standalone)`).matches||window.standalone||document.referrer.includes(`android-app://`))};return e(),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]),e},ts=()=>{(0,r.useEffect)(()=>{let e=document.querySelector(`.chakra-modal__content`);e&&(e.scrollTop=0)},[])},ns=async(e,t)=>{if(!t)throw Error(`Address is required`);let n=await e.accounts.getAccount(s.Address.of(t));return{balance:(0,x.formatEther)(BigInt(n.balance)).toString(),energy:(0,x.formatEther)(BigInt(n.energy)).toString()}},rs=e=>[`VECHAIN_KIT_BALANCE`,e],is=e=>{let t=(0,p.useThor)();return(0,m.useQuery)({queryKey:rs(e),queryFn:()=>ns(t,e),enabled:!!e&&s.Address.isValid(e),refetchInterval:1e4})},as=async(e,n,r)=>{if(!r)throw Error(`Network type is required`);if(!n)throw Error(`Version is required`);let i=e.contracts.load(t.bt(r).accountFactoryAddress,b.SocialLoginSmartAccountFactory__factory.abi),a;switch(n){case 1:case 2:a=i.read.accountImplementationV1();break;case 3:a=i.read.accountImplementationV3();break;default:throw Error(`Invalid version, must be between 1 and 3`)}let o=await a;if(!o)throw Error(`Failed to get account implementation address`);return o[0].toString()},os=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`IMPLEMENTATION_ADDRESS`,e,t],ss=e=>{let t=(0,p.useThor)(),{network:n}=$();return(0,m.useQuery)({queryKey:os(e,n.type),queryFn:async()=>as(t,e,n.type),enabled:!!t&&!!e&&!!n})},cs=async(e,n)=>{if(!n)throw Error(`Network type is required`);let r=await e.contracts.load(t.bt(n).accountFactoryAddress,b.SocialLoginSmartAccountFactory__factory.abi).read.currentAccountImplementationVersion();if(!r)throw Error(`Failed to get current account implementation version`);return parseInt(r[0].toString())},ls=e=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`CURRENT_ACCOUNT_IMPLEMENTATION_VERSION`,e],us=()=>{let e=(0,p.useThor)(),{network:t}=$();return(0,m.useQuery)({queryKey:ls(t.type),queryFn:async()=>cs(e,t.type),enabled:!!e&&!!t})},ds=async(e,n,r)=>{if(!n)throw Error(`Owner address is required`);if(!r)throw Error(`Network type is required`);let i=await e.contracts.load(t.bt(r).accountFactoryAddress,b.SocialLoginSmartAccountFactory__factory.abi).read.getAccountAddress(n);if(!i)throw Error(`Failed to get account address of ${n}`);return i[0].toString()},fs=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`ADDRESS`,e,t],ps=e=>{let t=(0,p.useThor)(),{network:n}=$();return(0,m.useQuery)({queryKey:fs(e,n.type),queryFn:async()=>ds(t,e,n.type),enabled:!!t&&!!e&&!!n})},ms=b.SocialLoginSmartAccountFactory__factory.abi,hs=(e,n,r)=>qo({abi:ms,address:t.bt(r).accountFactoryAddress,method:`getAccountVersion`,args:[e,n]}),gs=(e,n)=>{let{network:r}=$();return Jo({address:t.bt(r.type).accountFactoryAddress,abi:ms,method:`getAccountVersion`,args:[e,n],queryOptions:{select:e=>({version:parseInt(e[0].toString()),isDeployed:e[1]}),enabled:!!e&&!!n}})},_s=b.SocialLoginSmartAccountFactory__factory.abi,vs=`hasLegacyAccount`,ys=async(e,n,r)=>{if(!n)throw Error(`Owner address is required`);if(!r)throw Error(`Network type is required`);let[i]=await t.n({thor:e,abi:_s,contractAddress:t.bt(r).accountFactoryAddress,method:`hasLegacyAccount`,args:[n]});return i},bs=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`HAS_V1_SMART_ACCOUNT`,e,t],xs=e=>{let t=(0,p.useThor)(),{network:n}=$();return(0,m.useQuery)({queryKey:bs(e,n.type),queryFn:async()=>ys(t,e,n.type),enabled:!!t&&!!e&&!!n})},Ss=async(e,t)=>{if(!t)throw Error(`Account address is required`);let n=await e.accounts.getAccount(s.Address.of(String(t)));if(!n)throw Error(`Account not found`);return n.hasCode},Cs=e=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`IS_DEPLOYED`,e],ws=e=>{let t=$o(),n=R.ThorClient.at(t);return(0,m.useQuery)({queryKey:Cs(e),queryFn:async()=>Ss(n,e),enabled:!!n&&!!e})},Ts=()=>{let e=(0,m.useQueryClient)(),{connectedWallet:t,smartAccount:n}=Z(),{network:r}=$();return{refresh:async()=>{let i=t?.address??``,a=n?.address??``;await Promise.all([e.cancelQueries({queryKey:fs(i,r.type)}),e.cancelQueries({queryKey:hs(a,i,r.type)}),e.cancelQueries({queryKey:bs(i,r.type)}),e.cancelQueries({queryKey:ls(r.type)}),e.cancelQueries({queryKey:js(a,i,3,r.type)}),e.cancelQueries({queryKey:Ps(a,3,r.type)}),e.cancelQueries({queryKey:os(3,r.type)})]),await Promise.all([e.refetchQueries({queryKey:fs(i,r.type)}),e.refetchQueries({queryKey:hs(a,i,r.type)}),e.refetchQueries({queryKey:bs(i,r.type)}),e.refetchQueries({queryKey:ls(r.type)}),e.refetchQueries({queryKey:js(a,i,3,r.type)}),e.refetchQueries({queryKey:Ps(a,3,r.type)}),e.refetchQueries({queryKey:os(3,r.type)})])}}},Es=()=>{let e=(0,m.useQueryClient)(),{smartAccount:t}=Z();return{refresh:async()=>{let n=t?.address??``;await Promise.all([e.cancelQueries({queryKey:Os(n)}),e.cancelQueries({queryKey:Cs(n)})]),await Promise.all([e.refetchQueries({queryKey:Os(n)}),e.refetchQueries({queryKey:Cs(n)})])}}},Ds=async(e,n,r)=>{if(!r)return{address:void 0};let i=await e.contracts.load(t.bt(n).accountFactoryAddress,b.SocialLoginSmartAccountFactory__factory.abi).read.getAccountAddress(r);if(!i)throw Error(`Failed to get account address of ${r}`);let a=s.Address.of(i[0].toString()),o=await e.accounts.getAccount(a);if(!o)throw Error(`Failed to get account detail of ${a}`);return{address:a.toString(),isDeployed:o.hasCode}},Os=e=>[`VECHAIN_KIT_SMART_ACCOUNT`,e],ks=e=>{let{network:t}=$(),n=(0,p.useThor)();return(0,m.useQuery)({queryKey:Os(e),queryFn:()=>Ds(n,t.type,e),enabled:!!e&&!!t.type&&!!n})},As=async(e,n,r,i,a)=>{let o=await e.contracts.load(t.bt(a).accountFactoryAddress,b.SocialLoginSmartAccountFactory__factory.abi).read.upgradeRequired(n,r,BigInt(i));if(!o)throw Error(`Failed to get upgrade required of contract address ${t.bt(a).accountFactoryAddress}`);return o[0]},js=(e,t,n,r)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`UPGRADE_REQUIRED`,e,t,n,r],Ms=(e,t,n)=>{let r=(0,p.useThor)(),{network:i}=$();return(0,m.useQuery)({queryKey:js(e,t,n,i.type),queryFn:async()=>As(r,e,t,n,i.type),enabled:!!r&&!!e&&!!t&&!!i.type})},Ns=async(e,n,r,i)=>{let a=await e.contracts.load(t.bt(i).accountFactoryAddress,b.SocialLoginSmartAccountFactory__factory.abi).read.upgradeRequiredForAccount(n,BigInt(r));if(!a)throw Error(`Failed to get upgrade required for contract address ${n}`);return a[0]},Ps=(e,t,n)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`NEEDS_UPGRADE_FOR_ACCOUNT`,e,t,n],Fs=(e,t)=>{let n=(0,p.useThor)(),{network:r}=$();return(0,m.useQuery)({queryKey:Ps(e,t,r.type),queryFn:async()=>Ns(n,e,t,r.type),enabled:!!n&&!!r&&!!e&&!!t&&e!==``})},Is=b.SocialLoginSmartAccount__factory.createInterface(),Ls=({smartAccountAddress:e,targetVersion:n,onSuccess:i,onError:a})=>{let{refresh:o}=Ts(),{refresh:s}=Es(),{data:c}=ss(n),l=(0,r.useCallback)(async()=>{if(!e||!t.j(e))throw Error(`Invalid smart account address`);if(!c)throw Error(`Unable to fetch implementation address for version ${n}`);return[{to:e,value:`0x0`,data:Is.encodeFunctionData(`upgradeToAndCall`,[c,`0x`]),comment:`Upgrade account to version ${n}`,abi:Is.getFunction(`upgradeToAndCall`).format(`json`)}]},[e,c,n]),u=Jn({privyUIOptions:{title:`Upgrade Smart Account`,description:`Upgrading your account at ${t.W(e)} to version ${n}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{await Promise.all([o(),s()]),i?.()},onTxFailedOrCancelled:async()=>{a?.()}});return{...u,sendTransaction:async()=>u.sendTransaction(await l())}},Rs=()=>[`VECHAIN_KIT`,`CURRENT_BLOCK`],zs=10*t.s.SECOND,Bs=()=>{let e=(0,p.useThor)();return(0,m.useQuery)({queryKey:Rs(),queryFn:async()=>{let t=await e.blocks.getBestBlockExpanded();if(!t)throw Error(`Failed to fetch current block`);return t},staleTime:1e3*60,refetchInterval:zs})},Vs=async e=>{let t=await e.blocks.getGenesisBlock();if(!t)throw Error(`Genesis block not found`);return t.id},Hs=()=>[`VECHAIN_KIT_CHAIN_ID`],Us=()=>{let e=(0,p.useThor)();return(0,m.useQuery)({queryKey:Hs(),queryFn:()=>Vs(e),enabled:!!e})},Ws=1e3,Gs=async({thor:e,order:t=`asc`,offset:n=0,limit:r=Ws,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},Ks=async({nodeUrl:e,thor:t,order:n=`asc`,from:r=0,to:i,filterCriteria:a})=>{let o=[],s=0;for(;;){let c=await Gs({nodeUrl:e,thor:t,filterCriteria:a,from:r,to:i??2**53-1,limit:Ws,order:n,offset:s});if(o.push(...c),c.length<Ws)return o;s+=Ws}},qs=b.IERC20__factory.createInterface(),Js=(e,n,r,i)=>{if(!e||!n||!t.j(e))throw Error(`Invalid receiver address or amount`);let a=[];return a.push({to:r,value:`0x0`,data:qs.encodeFunctionData(`transfer`,[e,(0,x.parseEther)(n)]),comment:`Transfer ${n} ${i} to ${e}`,abi:qs.getFunction(`transfer`)}),a},Ys=({fromAddress:e,receiverAddress:n,amount:i,tokenAddress:a,tokenName:o,onSuccess:s,onError:c})=>{let{refresh:l}=kn(),u=(0,r.useMemo)(()=>Js(n,i,a,o),[n,i,a,o]),d=Jn({signerAccountAddress:e,privyUIOptions:{title:`Confirm Transfer`,description:`Transfer ${i} ${o} to ${t.W(n)}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{l(),s?.()},onTxFailedOrCancelled:async e=>{c?.(e instanceof Error?e.message:String(e))}});return{...d,clauses:u,sendTransaction:async()=>d.sendTransaction(u)}},Xs=(e,n)=>{if(!e||!n||!t.j(e))throw Error(`Invalid receiver address or amount`);if(isNaN(Number(n)))throw Error(`Invalid amount`);let r=[];try{r.push({to:e,value:(0,x.parseEther)(n).toString(),data:`0x`,comment:`Transfer ${n} VET to ${e}`})}catch(e){throw console.error(`Error building clauses:`,e),Error(`Invalid amount format`)}return r},Zs=({fromAddress:e,receiverAddress:n,amount:i,onSuccess:a,onError:o})=>{let{refresh:s}=kn(),c=(0,r.useMemo)(()=>Xs(n,i),[n,i]),l=Jn({signerAccountAddress:e,privyUIOptions:{title:`Confirm Transfer`,description:`Transfer ${i} VET to ${t.W(n)}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{s(),a?.()},onTxFailedOrCancelled:async e=>{o?.(e instanceof Error?e.message:String(e))}});return{...l,clauses:c,sendTransaction:async()=>l.sendTransaction(c)}},Qs=({clauseBuilder:e,refetchQueryKeys:t,invalidateCache:n=!0,onSuccess:i,onFailure:a,suggestedMaxGas:o,gasPadding:s,delegationUrl:c})=>{let{account:l}=Z(),u=(0,m.useQueryClient)(),d=(0,r.useCallback)(async()=>{n&&t?.forEach(async e=>{await u.cancelQueries({queryKey:e}),await u.refetchQueries({queryKey:e})}),i?.()},[n,i,u,t]),f=Jn({signerAccountAddress:l?.address,onTxConfirmed:d,suggestedMaxGas:o,onTxFailedOrCancelled:a,gasPadding:s,delegationUrl:c}),p=(0,r.useCallback)(async t=>{f.sendTransaction(e(t),c)},[e,f,c]);return{...f,sendTransaction:p}},$s=10*t.s.SECOND,ec=e=>[`VECHAIN_KIT`,`TX_RECEIPT`,e],tc=(e,t=5)=>{let n=(0,p.useThor)();return(0,m.useQuery)({queryKey:ec(e),queryFn:async()=>{let r=await n.transactions.waitForTransaction(e,{timeoutMs:t*$s,intervalMs:3e3});if(!r)throw Error(`Transaction receipt not found`);return r},enabled:!!e})},nc=(e,t)=>{let n=(0,x.decodeEventLog)({abi:t,data:e.data.toString(),topics:e.topics.map(e=>e.toString())});return{meta:e.meta,decodedData:n}},rc=({eventName:e,filterParams:t})=>[e,t?JSON.stringify(t):`all`],ic=({abi:e,contractAddress:t,eventName:n,filterParams:i,mapResponse:a,nodeUrl:o})=>{let s=(0,p.useThor)();return(0,m.useQuery)({queryFn:(0,r.useCallback)(async()=>{if(!s)return[];let r=s.contracts.load(t,e).getEventAbi(n),c=r.encodeFilterTopicsNoNull(i??{}),l=(await Ks({thor:s,nodeUrl:o,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:r}]})).map(t=>nc(t,e));if(l.some(({decodedData:e})=>e.eventName!==n))throw Error(`Unknown event`);return l.map(e=>a({meta:e.meta,decodedData:e.decodedData}))},[s,t,e,n,i,a,o]),queryKey:(0,r.useMemo)(()=>rc({eventName:n,filterParams:i}),[n,i]),enabled:!!s})};function ac({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((0,x.encodeFunctionData)(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:o.ethers.hexlify(o.ethers.randomBytes(32))}}}function oc({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?(0,x.encodeFunctionData)(e.data):e.data)||`0x`}}}function sc(){let{connection:e,connectedWallet:t}=Z(),{signTypedData:n}=En(),{signTypedData:r}=(0,d.usePrivy)(),{network:i}=$(),{data:a}=Us();return{connection:e,connectedWallet:t,signTypedDataWithCrossApp:n,signTypedDataPrivy:r,network:i,chainId:a}}const cc=()=>{let{connection:e,connectedWallet:n,signTypedDataWithCrossApp:r,signTypedDataPrivy:i,network:a,chainId:o}=sc(),c=async e=>{let{version:t}=e;return t&&t<3?await l(e):await u(e)};async function l(c){let{clauses:l,smartAccount:u,title:d=`Sign Transaction`,description:f,buttonText:p=`Sign`}=c,m=[],h=l.map(e=>oc({clause:e,chainId:o,smartAccount:u})),g=[];for(let t=0;t<h.length;t++){let a=h[t],o=l[t];if(!o)throw Error(`Transaction clause at index ${t} is undefined`);if(e.isConnectedWithCrossApp){let e=await r({...a,address:n?.address,types:Object.fromEntries(Object.entries(a.types).map(([e,t])=>[e,[...t]]))});g.push(e);continue}let s=o.data,c=(await i(a,{uiOptions:{title:d,description:f??(l[t].comment||(typeof s==`object`&&s&&`functionName`in s?s.functionName:` `)),buttonText:p}})).signature;g.push(c)}return u.isDeployed||m.push(s.Clause.callFunction(s.Address.of(t.bt(a.type).accountFactoryAddress),s.ABIContract.ofAbi(b.SocialLoginSmartAccountFactory__factory.abi).getFunction(`createAccount`),[n?.address??``])),h.forEach((e,t)=>{m.push(s.Clause.callFunction(s.Address.of(u.address??``),s.ABIContract.ofAbi(b.SocialLoginSmartAccount__factory.abi).getFunction(`executeWithAuthorization`),[e.message.to,BigInt(e.message.value),e.message.data,BigInt(e.message.validAfter),BigInt(e.message.validBefore),g[t]]))}),m}async function u(c){let{clauses:l,smartAccount:u,title:d,description:f,buttonText:p=`Sign`}=c,m=[],h=ac({clauses:l,chainId:o,verifyingContract:u.address??``}),g;return g=e.isConnectedWithCrossApp?await r({...h,address:n?.address}):(await i(h,{uiOptions:{title:d,description:f,buttonText:p}})).signature,u.isDeployed||m.push(s.Clause.callFunction(s.Address.of(t.bt(a.type).accountFactoryAddress),s.ABIContract.ofAbi(b.SocialLoginSmartAccountFactory__factory.abi).getFunction(`createAccount`),[n?.address??``])),m.push(s.Clause.callFunction(s.Address.of(u.address??``),s.ABIContract.ofAbi(b.SocialLoginSmartAccount__factory.abi).getFunction(`executeBatchWithAuthorization`),[h.message.to,h.message.value?.map(e=>BigInt(e))??0,h.message.data,BigInt(h.message.validAfter),BigInt(h.message.validBefore),h.message.nonce,g])),m}return{buildClausesWithAuth:c}};let lc=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.SHOW_ASSETS=`vechain_kit_show_assets`,e}({});const uc=(e,n)=>{let[i,a]=(0,r.useState)(()=>{try{let r=t.dt(e);return r?JSON.parse(r):n}catch(e){return console.error(e),n}});return(0,r.useEffect)(()=>{t.yt(e,JSON.stringify(i))},[e,i]),[i,a]},dc=`vechain-kit-storage-change`,fc=(e,t)=>{let[n,i]=(0,r.useState)(()=>{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}}),a=(0,r.useRef)(!1);return(0,r.useEffect)(()=>{if(!(typeof window>`u`)){if(a.current){a.current=!1;return}try{window.localStorage.setItem(e,JSON.stringify(n)),window.dispatchEvent(new CustomEvent(dc,{detail:{key:e,value:n}}))}catch(e){console.error(`Error writing to localStorage:`,e)}}},[e,n]),(0,r.useEffect)(()=>{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)&&(a.current=!0,i(e))}catch(e){console.error(`Error parsing storage value:`,e)}},r=(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)&&(a.current=!0,i(e))}}catch(e){console.error(`Error parsing storage value:`,e)}});return window.addEventListener(`storage`,t),window.addEventListener(dc,r),()=>{window.removeEventListener(`storage`,t),window.removeEventListener(dc,r)}},[e,n]),[n,i,(0,r.useCallback)(()=>{if(!(typeof window>`u`))try{let r=window.localStorage.getItem(e),a=r?JSON.parse(r):t;JSON.stringify(a)!==JSON.stringify(n)&&i(a)}catch(e){console.error(`Error syncing localStorage:`,e)}},[e,t,n]),(0,r.useCallback)(()=>{if(typeof window>`u`)return t;let n=window.localStorage.getItem(e);return n?JSON.parse(n):t},[e,t])]},pc=()=>{let[e,t]=uc(lc.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)}},mc=async(e,t,n,r,i)=>{let a=new URL(`estimate/clauses/${r.toLowerCase()}`,t);return a.searchParams.set(`type`,`smartaccount`),a.searchParams.set(`speed`,i),await(await fetch(a,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({clauses:n,signer:e})})).json()},hc=async e=>{let t=new URL(`deposit/account`,e);return await(await fetch(t,{method:`GET`,headers:{"Content-Type":`application/json`}})).json()},gc=async(e,t,n,r)=>{let i=new URL(`sign/transaction/authorized/${n.toLowerCase()}`,r);return await(await fetch(i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({raw:e,origin:t,token:n.toLowerCase()})})).json()},_c=async(e,t,n,r)=>{let i=await t.gas.estimateGas(e,n?.address??``),a=Math.max(i.totalGas,0);return await t.transactions.buildTransactionBody(e,a,{isDelegated:r})};function vc(e,t){return s.Transaction.of(e.body,z.concatBytes(e.signature??new Uint8Array,s.HexUInt.of(t.slice(2)).bytes))}function yc(e,t){return s.Transaction.decode(s.HexUInt.of(e.slice(2)).bytes,t)}const bc=()=>{let{connectedWallet:e}=Z(),{data:n}=ks(e?.address??``),{data:i}=gs(n?.address??``,e?.address??``),{preferences:a}=xc(),o=b.IERC20__factory.createInterface(),{network:c}=$(),{buildClausesWithAuth:l}=cc(),u=R.ThorClient.at(t.bt(c.type).nodeUrl);return{sendTransactionUsingGenericDelegator:(0,r.useCallback)(async({clauses:e,genericDelegatorUrl:r})=>{try{let c=a.gasTokenToUse,d=await mc(n?.address??``,r,e,c,`medium`),f=await hc(r),p={to:c===`VET`?f.depositAccount:t.Q[c].address,value:c===`VET`?(0,x.parseEther)(d.transactionCost?.toString()??`0`).toString():`0x0`,data:c===`VET`?`0x`:o.encodeFunctionData(`transfer`,[f.depositAccount,(0,x.parseEther)(d.transactionCost?.toString()??`0`)]),comment:`Transfer ${d.transactionCost} ${c} to ${f.depositAccount}`,abi:c===`VET`?void 0:o.getFunction(`transfer`)},m=await l({clauses:[...e,p],smartAccount:n,version:i?.version??0}),h=await _c(m,u,t.V,!0),g=await s.Transaction.of(h).signAsSender(s.HexUInt.of(t.V.privateKey).bytes),_=await gc(s.HexUInt.of(g.encoded).toString(),t.V.address,c,r),v=vc(g,_.signature),y={clauses:m,simulateTransactionOptions:{caller:t.V.address??``,gasPayer:_.address}},b=await u.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 u.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`)},[a,n,i,l,u,t.V])}},xc=()=>{let[e,n]=fc(lc.GAS_TOKEN_PREFERENCES,t.J);return{preferences:e,supportedTokens:t.Q,updatePreferences:(0,r.useCallback)(e=>{n(t=>({...t,...e}))},[n]),reorderTokenPriority:(0,r.useCallback)(e=>{n(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}})},[n]),toggleTokenExclusion:(0,r.useCallback)(e=>{n(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}})},[n])}},Sc=({clauses:e,enabled:t=!0,tokens:n,sendingAmount:r,sendingTokenSymbol:i})=>{let{connectedWallet:a,account:o}=Z(),{data:s}=ks(a?.address??``),{feeDelegation:c}=$(),{balances:l}=Pt(o?.address??``),{updatePreferences:u}=xc();return(0,m.useQuery)({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 mc(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})},Cc=({clauses:e,tokens:t,enabled:n=!0})=>{let{connectedWallet:r}=Z(),{data:i}=ks(r?.address??``),{feeDelegation:a}=$();return(0,m.useQuery)({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 mc(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})},wc=({symbol:e,amount:a,currencyValue:o,currentCurrency:s,isDisabled:c,onClick:l,...u})=>{let d=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),f=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),[p]=uc(lc.SHOW_ASSETS,!0);return(0,i.jsxs)(n.Button,{height:`72px`,variant:`ghost`,justifyContent:`space-between`,isDisabled:c,p:4,w:`100%`,_disabled:{cursor:`not-allowed`,opacity:.5},onClick:l,"data-testid":`asset-${e}`,...u,children:[(0,i.jsxs)(n.HStack,{children:[t.et[e]?r.default.cloneElement(t.et[e],{boxSize:`24px`,borderRadius:`full`}):(0,i.jsx)(n.Image,{src:t.$[e],alt:`${e} logo`,boxSize:`24px`,borderRadius:`full`,fallback:(0,i.jsx)(n.Box,{boxSize:`24px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Text,{fontSize:`10px`,fontWeight:`bold`,color:d,children:e.slice(0,3)})})}),(0,i.jsx)(n.Text,{color:d,children:e})]}),(0,i.jsxs)(n.VStack,{align:`flex-end`,spacing:0,children:[(0,i.jsxs)(n.Text,{color:d,children:[p?a.toLocaleString(void 0,{maximumFractionDigits:2}):`*`.repeat(4),` `]}),(0,i.jsx)(n.Text,{fontSize:`sm`,color:f,"data-testid":`${e}-balance`,children:p?Ht(o,{currency:s}):`*`.repeat(4)})]})]})},Tc=({address:e,domain:a,imageSrc:o,imageAlt:s=`Account`,hideAddress:c=!1,balance:u,tokenAddress:d})=>{let{t:f}=(0,l.useTranslation)(),p=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),m=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),h=(0,n.useToken)(`colors`,`vechain-kit-card`),{isLoading:g}=qt({address:e}),{tokens:_,isLoading:v}=Kt({address:e}),y=(0,r.useMemo)(()=>d?_.find(e=>e.address===d):null,[_,d]),b=(0,r.useMemo)(()=>u===void 0?y?Number(y.balance):0:u,[u,y]),x=y?.symbol||``;return g||v?(0,i.jsxs)(n.HStack,{minH:`50px`,justify:`space-between`,p:4,borderRadius:`2xl`,bg:h,children:[(0,i.jsxs)(n.HStack,{children:[(0,i.jsx)(n.Skeleton,{boxSize:`40px`,borderRadius:`full`}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,children:[(0,i.jsx)(n.Skeleton,{height:`16px`,width:`120px`,borderRadius:`md`}),!c&&(0,i.jsx)(n.Skeleton,{mt:2,height:`12px`,width:`100px`,borderRadius:`md`})]})]}),(0,i.jsxs)(n.VStack,{justify:`flex-start`,align:`flex-end`,spacing:0,mr:2,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,color:p,children:f(`Balance`)}),(0,i.jsx)(n.Skeleton,{height:`12px`,width:`80px`,borderRadius:`md`})]})]}):(0,i.jsxs)(n.HStack,{minH:`50px`,justify:`space-between`,p:4,borderRadius:`2xl`,bg:h,children:[(0,i.jsxs)(n.HStack,{children:[(0,i.jsx)(n.Image,{src:o,alt:s,boxSize:`40px`,borderRadius:`full`,objectFit:`cover`}),(0,i.jsx)(n.VStack,{align:`start`,spacing:0,children:a?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Text,{fontWeight:`medium`,fontSize:`sm`,color:p,children:a}),!c&&(0,i.jsx)(n.Text,{fontSize:`xs`,color:m,children:t.W(e,6,4)})]}):(0,i.jsx)(n.Text,{fontWeight:`medium`,fontSize:`sm`,color:p,children:t.W(e,6,4)})})]}),(0,i.jsxs)(n.VStack,{justify:`flex-start`,align:`flex-end`,spacing:0,mr:2,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,color:p,children:f(`Balance`)}),(0,i.jsxs)(n.Text,{fontSize:`xs`,color:m,children:[b.toLocaleString(void 0,{maximumFractionDigits:2}),x&&` ${x}`]})]})]})},Ec=({onClick:e,...t})=>(0,i.jsx)(n.IconButton,{"aria-label":`FAQ`,icon:(0,i.jsx)(n.Icon,{as:_.LuCircleHelp,fontSize:`17px`}),size:`sm`,variant:`vechainKitHeaderIconButtons`,position:`absolute`,lineHeight:`normal`,left:`10px`,top:`8px`,onClick:e,...t}),Dc=({children:e,...t})=>(ts(),(0,i.jsx)(n.VStack,{...t,children:e})),Oc=({wallet:e,props:t})=>{let a=(0,r.useRef)(e?.image),o=(0,r.useRef)(e?.address);return(0,r.useEffect)(()=>{o.current!==e?.address&&(a.current=e?.image,o.current=e?.address)},[e?.address]),(0,r.useEffect)(()=>{e?.image&&!e.isLoadingMetadata&&(a.current=e.image)},[e?.image,e?.isLoadingMetadata]),!t?.src&&!e?.image&&!a.current||e?.isLoadingMetadata?(0,i.jsx)(n.Skeleton,{rounded:`full`,width:t?.width,height:t?.height}):(0,i.jsx)(n.Image,{src:t?.src||e?.image||a.current,alt:t?.alt||e?.domain,objectFit:`cover`,rounded:`full`,...t})},kc=({transactionError:e,isSubmitting:a,isTxWaitingConfirmation:o,onConfirm:s,onRetry:c,transactionPendingText:u,txReceipt:d,isSubmitForm:f=!1,buttonText:p,isDisabled:m=!1,style:h,onError:g,gasEstimationError:_,hasEnoughGasBalance:v=!0,isLoadingGasEstimation:y=!1,showGasEstimationError:b=!1,context:x=`transaction`})=>{let{t:S}=(0,l.useTranslation)(),{darkMode:C}=$(),{network:w}=$(),T=(0,r.useMemo)(()=>e?e.reason||S(`Something went wrong. Please try again.`):null,[e,S]);(0,r.useEffect)(()=>{T&&g?.(T)},[T,g]);let E=(0,r.useMemo)(()=>{if(h?.accentColor)return`${h.accentColor} !important`},[h?.accentColor]),D=(0,r.useMemo)(()=>{if(!b||y||!(_||v))return null;if(!v&&!_)return{message:S(`You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.`)};if(_){let e=``;switch(x){case`send`:e=S(`Insufficient balance to complete this transfer and cover gas fees.`);break;case`customization`:e=S(`Insufficient balance to update your profile and cover gas fees.`);break;case`domain`:e=S(`Insufficient balance to claim this domain and cover gas fees.`);break;default:e=S(`Insufficient balance to complete this transaction and cover gas fees.`)}return{message:e}}return null},[_,v,y,b,x,S]);return(0,i.jsxs)(n.VStack,{width:`full`,spacing:4,children:[T&&(0,i.jsx)(n.Box,{p:3,borderRadius:`md`,bg:C?`rgba(218, 90, 90, 0.1)`:`rgba(218, 90, 90, 0.05)`,borderWidth:`1px`,borderColor:C?`rgba(218, 90, 90, 0.3)`:`rgba(218, 90, 90, 0.2)`,w:`full`,children:(0,i.jsx)(n.Text,{color:`#da5a5a`,fontSize:`sm`,fontWeight:`medium`,"data-testid":`tx-send-error-msg`,children:T})}),D&&!T&&(0,i.jsx)(n.Box,{p:3,borderRadius:`md`,bg:C?`rgba(218, 90, 90, 0.1)`:`rgba(218, 90, 90, 0.05)`,borderWidth:`1px`,borderColor:C?`rgba(218, 90, 90, 0.3)`:`rgba(218, 90, 90, 0.2)`,w:`full`,children:(0,i.jsx)(n.Text,{color:`#da5a5a`,fontSize:`sm`,fontWeight:`medium`,"data-testid":`gas-estimation-error`,children:D.message})}),(0,i.jsx)(n.Button,{px:4,variant:T?`vechainKitSecondary`:`vechainKitPrimary`,bg:E,onClick:()=>T&&c?c():s(),type:f?`submit`:`button`,isLoading:a,isDisabled:m,loadingText:o?S(`Waiting wallet confirmation...`):u,"data-testid":`confirm-button`,children:T?S(`Retry`):p||S(`Confirm`)}),T&&d?.meta.txID&&(0,i.jsx)(n.Link,{isExternal:!0,fontSize:`sm`,color:C?`whiteAlpha.600`:`blackAlpha.600`,textAlign:`center`,width:`full`,href:`${t.bt(w.type).explorerUrl}/${d?.meta.txID}`,target:`_blank`,rel:`noopener noreferrer`,children:S(`View transaction on the explorer`)})]})},Ac=({onClick:e,hasUnreadNotifications:t,...r})=>(0,i.jsx)(n.IconButton,{"aria-label":`Notifications`,size:`sm`,variant:`ghost`,position:`absolute`,borderRadius:`50%`,left:`10px`,top:`10px`,onClick:e,icon:(0,i.jsxs)(n.Box,{position:`relative`,children:[(0,i.jsx)(_.LuBell,{fontSize:`20px`}),t&&(0,i.jsx)(n.Box,{position:`absolute`,top:`-1px`,right:`-1px`,minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`})]}),...r}),jc=({isOpen:e,onClose:a,selectedToken:o,onTokenSelect:s,availableTokens:c,tokenEstimations:u,walletAddress:d})=>{let{t:f}=(0,l.useTranslation)(),{balances:p}=Pt(d),[m,h]=r.default.useState(o),[g,_]=r.default.useState(!1),v=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),y=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),b=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),x=(0,n.useToken)(`colors`,`vechain-kit-error`),S=e=>e?b:`transparent`,C=e=>e?v:`transparent`;r.default.useEffect(()=>{e&&(h(o),_(!1))},[e,o]);let w=()=>{s(m,g),a()},T=e=>{let t=p.find(t=>t.symbol===e);return t?Number(t.balance).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}):`0.00`},E=e=>{let t=p.find(t=>t.symbol===e),n=u[e];return!t||!n?!1:Number(t.balance)<n.cost};return(0,i.jsxs)(Pe,{isOpen:e,onClose:a,size:`sm`,children:[(0,i.jsxs)(n.ModalHeader,{children:[(0,i.jsx)(n.Text,{fontSize:`lg`,fontWeight:`semibold`,color:v,children:f(`Fee token`)}),(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`normal`,color:y,mt:1,children:f(`Select the token to pay the fee with`)})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:2,align:`stretch`,children:[c.map(e=>{let a=t.Q[e],o=m===e,s=u[e]||{cost:0,loading:!0},c=E(e);return(0,i.jsx)(n.Box,{cursor:c?`not-allowed`:`pointer`,bg:S(o),border:`1px`,borderColor:C(o),borderRadius:`md`,p:3,transition:`all 0.2s ease`,_hover:{backgroundColor:c?S(o):y&&`#ffffff12`,borderColor:c?C(o):y},opacity:c?.5:1,onClick:()=>!c&&h(e),children:(0,i.jsxs)(n.HStack,{spacing:3,justify:`space-between`,children:[(0,i.jsxs)(n.HStack,{spacing:3,flex:1,children:[r.default.cloneElement(t.et[e],{boxSize:`36px`,borderRadius:`full`}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,children:[(0,i.jsx)(n.Text,{fontWeight:`medium`,color:v,children:a.symbol}),(0,i.jsxs)(n.Text,{fontSize:`xs`,color:y,children:[f(`Balance`),`:`,` `,T(e)]}),c&&(0,i.jsx)(n.Text,{fontSize:`xs`,color:x,children:f(`Insufficient balance`)})]})]}),(0,i.jsx)(n.VStack,{align:`end`,spacing:0,children:s.loading?(0,i.jsx)(n.Skeleton,{height:`16px`,width:`60px`}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`semibold`,color:v,children:t.x(s.cost,2)}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:y,children:a.symbol})]})})]})},e)}),m!==o&&(0,i.jsxs)(n.FormControl,{display:`flex`,alignItems:`center`,justifyContent:`space-between`,children:[(0,i.jsx)(n.FormLabel,{htmlFor:`remember-choice`,mb:`0`,fontSize:`sm`,color:v,children:f(`Use this token for future transactions`)}),(0,i.jsx)(n.Switch,{id:`remember-choice`,isChecked:g,onChange:e=>_(e.target.checked),color:v})]})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsxs)(n.VStack,{spacing:3,w:`full`,children:[(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,onClick:w,isDisabled:E(m),children:f(`Apply`)}),(0,i.jsx)(n.Button,{variant:`ghost`,width:`full`,onClick:a,children:f(`Cancel`)})]})})]})},Mc=({estimation:e,isLoading:a,isLoadingTransaction:o,onTokenChange:s,clauses:c=[],userSelectedToken:u})=>{let{t:d}=(0,l.useTranslation)(),{feeDelegation:f}=$(),{connection:p,account:m}=Z(),{preferences:h,reorderTokenPriority:g}=xc(),{isOpen:v,onOpen:y,onClose:b}=(0,n.useDisclosure)(),x=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),S=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),[C,w]=(0,r.useState)(()=>{let e={};return h.availableGasTokens.forEach(t=>{e[t]={cost:0,loading:!0}}),e}),{data:T,isLoading:E}=Cc({clauses:c,tokens:h.availableGasTokens,enabled:c.length>0});(0,r.useEffect)(()=>{!E&&T&&w(T)},[T,E]),(0,r.useEffect)(()=>{e&&w(t=>({...t,[e.usedToken]:{cost:e.transactionCost||0,loading:!1}}))},[e]),(0,r.useEffect)(()=>{E&&w(h.availableGasTokens.reduce((e,t)=>(e[t]={cost:0,loading:!0},e),{}))},[E,h.availableGasTokens]);let D=(0,r.useCallback)((t,n)=>{n&&g([t,...h.tokenPriority.filter(e=>e!==t)]),s&&t!==e?.usedToken&&s(t)},[e,s,g,h.tokenPriority]);if(f?.delegatorUrl||p.isConnectedWithDappKit||h.availableGasTokens.length===0)return null;let{balances:O}=Pt(m?.address??``),k=e=>{let t=O.find(t=>t.symbol===e),n=C[e];return!t||!n||n.loading?!0:Number(t.balance)<n.cost},A=e?.usedToken,j=h.availableGasTokens,M;A?M=A:u&&j.includes(u)?M=u:(M=j.find(e=>C[e]&&!C[e].loading&&!k(e)),M||=j.find(e=>C[e]&&!C[e].loading),M||=j[0]);let N=M?C[M]:void 0,P=A&&e?.transactionCost?e.transactionCost:N?.cost||0,F=M?t.Q[M]:void 0;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Divider,{mt:3}),(0,i.jsxs)(n.HStack,{mt:3,w:`full`,justifyContent:`start`,alignItems:`center`,children:[(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,w:`full`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`light`,textAlign:`left`,w:`full`,color:S,children:d(`Fee`)}),(0,i.jsx)(n.HStack,{align:`start`,justifyContent:`space-between`,spacing:0,w:`full`,children:(0,i.jsx)(n.HStack,{justifyContent:`flex-start`,w:`full`,children:a||!A&&(!N||N.loading)||!F?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Skeleton,{height:`16px`,width:`120px`,borderRadius:`md`}),(0,i.jsx)(n.Skeleton,{height:`16px`,width:`60px`,borderRadius:`md`})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.Text,{color:x,fontSize:`sm`,fontWeight:`semibold`,children:[t.x(P,2),` `,F.symbol]}),(0,i.jsxs)(n.Text,{color:S,fontSize:`xs`,children:[`≈`,` $`,(P*.01).toFixed(2)]})]})})})]}),(0,i.jsxs)(n.Button,{onClick:y,variant:`outline`,size:`sm`,borderRadius:`full`,px:6,disabled:o,color:S,borderColor:S,_hover:{bg:S},leftIcon:r.default.cloneElement(t.et[M||h.availableGasTokens[0]],{boxSize:`20px`,borderRadius:`full`}),children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`semibold`,children:M||h.availableGasTokens[0]}),(0,i.jsx)(n.Icon,{as:_.LuChevronDown,boxSize:5,color:S})]})]}),(0,i.jsx)(jc,{isOpen:v,onClose:b,selectedToken:M||h.availableGasTokens[0],onTokenSelect:D,availableTokens:h.availableGasTokens,tokenEstimations:C,walletAddress:m?.address??``})]})},Nc=F.keyframes`
200
+ `}),io=({children:e,theme:t,bodyFont:a,headingFont:o})=>(0,i.jsxs)(P.CacheProvider,{value:(0,r.useMemo)(()=>no(),[]),children:[(0,i.jsx)(ro,{bodyFont:a,headingFont:o}),(0,i.jsx)(n.ChakraProvider,{theme:t,resetCSS:!1,portalZIndex:void 0,children:e})]}),ao=({darkMode:e})=>{try{if(t._t(`[data-chakra-color-mode]`))return null}catch(e){console.error(e)}return(0,i.jsx)(n.ColorModeScript,{initialColorMode:e?`dark`:`light`})},oo=(0,r.createContext)({portalRootRef:void 0,tokens:void 0,themeConfig:void 0}),so=()=>{let e=(0,r.useContext)(oo);if(!e)throw Error(`useVechainKitTheme must be used within a VechainKitThemeProvider`);return e},co=({darkMode:e=!1})=>{let{setColorMode:t,colorMode:a}=(0,n.useColorMode)();return(0,r.useEffect)(()=>{let n=e?`dark`:`light`;a!==n&&t(n)},[e]),(0,i.jsx)(i.Fragment,{})},lo=({children:e,darkMode:t=!1,theme:a})=>{let o=(0,r.useRef)(null),s=(0,r.useContext)(ml),c=s?s.theme:void 0,l=a??c,u=(0,r.useMemo)(()=>Oe(De(t),ke(l,t)),[t,l]),d=(0,r.useMemo)(()=>({...eo(t,l),config:{...eo(t,l).config,initialColorMode:t?`dark`:`light`}}),[t,l]);return(0,i.jsxs)(oo.Provider,{value:{portalRootRef:o,tokens:u,themeConfig:l},children:[(0,i.jsx)(ao,{darkMode:t}),(0,i.jsxs)(io,{theme:d,bodyFont:u.fonts.body,headingFont:u.fonts.heading,children:[(0,i.jsx)(co,{darkMode:t}),(0,i.jsx)(n.Box,{id:`vechain-kit-root`,ref:o,bg:`transparent`,borderRadius:`12px`,children:e})]}),(0,i.jsx)(to,{})]})},uo=(0,r.createContext)(null),Q=()=>{let e=(0,r.useContext)(uo);if(!e)throw Error(`useModal must be used within ModalProvider`);return e},fo=({children:e})=>{let{darkMode:n,theme:a}=$(),[o,s]=(0,r.useState)(!1),[c,l]=(0,r.useState)(`main`),[u,d]=(0,r.useState)(!1),{setSource:p,connectV2:m}=(0,f.useWallet)(),h=(0,r.useCallback)((e,n)=>{t.mt()&&window.vechain&&window.vechain.isInAppBrowser?(p(`veworld`),m(null)):(l(e??`main`),d(n??!1),s(!0))},[]),g=(0,r.useCallback)(()=>{s(!1),l(`main`),d(!1)},[]),[_,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(!1),[x,S]=(0,r.useState)(`main`),C=(0,r.useCallback)((e,t)=>{S(e??`main`),b(t?.isolatedView??!1),v(!0)},[]),w=(0,r.useCallback)(()=>{v(!1),S(`main`),setTimeout(()=>{b(!1)},300)},[]),[T,E]=(0,r.useState)(!1),D=(0,r.useCallback)(()=>E(!0),[]),O=(0,r.useCallback)(()=>E(!1),[]),[k,A]=(0,r.useState)(!1),j=(0,r.useCallback)(()=>A(!0),[]),M=(0,r.useCallback)(()=>A(!1),[]),[N,P]=(0,r.useState)(!1),[F,I]=(0,r.useState)(void 0),L=(0,r.useCallback)(e=>{I(e),P(!0)},[]),R=(0,r.useCallback)(()=>P(!1),[]);return(0,i.jsxs)(uo.Provider,{value:{openConnectModal:h,closeConnectModal:g,isConnectModalOpen:o,connectModalContent:c,setConnectModalContent:l,connectModalPreventAutoClose:u,setConnectModalPreventAutoClose:d,openAccountModal:C,closeAccountModal:w,isAccountModalOpen:_,setAccountModalContent:S,accountModalContent:x,isolatedView:y,openTransactionModal:D,closeTransactionModal:O,isTransactionModalOpen:T,openTransactionToast:j,closeTransactionToast:M,isTransactionToastOpen:k,openUpgradeSmartAccountModal:L,closeUpgradeSmartAccountModal:R,isUpgradeSmartAccountModalOpen:N},children:[e,(0,i.jsxs)(lo,{darkMode:n,theme:a,children:[(0,i.jsx)(wa,{isOpen:o,onClose:g,initialContent:c,preventAutoClose:u}),(0,i.jsx)(ba,{isOpen:_,onClose:w,initialContent:x}),(0,i.jsx)(Fa,{isOpen:N,onClose:R,style:F})]})]})},po=()=>{let{loginMethods:e}=$(),t=e?.length===1&&e[0].method===`dappkit`,{openConnectModal:n,closeConnectModal:r,isConnectModalOpen:i}=Q(),{open:a,close:o}=(0,f.useWalletModal)();return{open:t?a:e=>n(e),close:t?o:r,isOpen:t?!1:i}},mo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),ho=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Q();return{open:()=>e(),close:t,isOpen:n}},go=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),_o=()=>{let{openTransactionModal:e,closeTransactionModal:t,isTransactionModalOpen:n}=Q();return{open:e,close:t,isOpen:n}},vo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),yo=()=>{let{openTransactionToast:e,closeTransactionToast:t,isTransactionToastOpen:n}=Q();return{open:e,close:t,isOpen:n}},bo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),xo=()=>{let{connection:e}=X(),{openConnectModal:t,closeConnectModal:n,isConnectModalOpen:r,openAccountModal:i,closeAccountModal:a,isAccountModalOpen:o}=Q();return{open:n=>{e.isConnected?i(void 0,n):t()},close:()=>{o&&a(),r&&n()},isOpen:r||o}},So=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Co=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=Q();return{open:t=>{e({type:`choose-name`,props:{setCurrentContent:r,onBack:()=>r(`main`),initialContentSource:`main`}},t)},close:()=>{t()},isOpen:n}},wo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),To=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=Q();return{open:t=>{e({type:`send-token`,props:{setCurrentContent:r}},t)},close:()=>{t()},isOpen:n}},Eo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Do=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=Q();return{open:t=>{e({type:`swap-token`,props:{setCurrentContent:r,fromTokenAddress:t?.fromTokenAddress,toTokenAddress:t?.toTokenAddress}},{isolatedView:t?.isolatedView})},close:()=>{t()},isOpen:n}},Oo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),ko=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Q();return{open:t=>{e(`ecosystem`,t)},close:()=>{t()},isOpen:n}},Ao=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),jo=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Q();return{open:t=>{e(`notifications`,t)},close:()=>{t()},isOpen:n}},Mo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),No=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=Q();return{open:t=>{e({type:`faq`,props:{onGoBack:()=>r(`main`),showLanguageSelector:!1}},t)},close:()=>{t()},isOpen:n}},Po=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Fo=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n,setAccountModalContent:r}=Q();return{open:()=>{e({type:`account-customization`,props:{setCurrentContent:r}})},close:()=>{t()},isOpen:n}},Io=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Lo=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Q();return{open:t=>{e(`receive-token`,t)},close:()=>{t()},isOpen:n}},Ro=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),zo=()=>{let{privy:e,loginMethods:n}=$(),i=e?.appId===t.at,a=e=>n?Array.isArray(e)?e.some(e=>n.some(t=>t.method===e)):n.some(t=>t.method===e):!0,o=(0,r.useMemo)(()=>n?n.length===0||a(`ecosystem`):!0,[n]),s=(0,r.useMemo)(()=>a(`vechain`),[n]),c=(0,r.useMemo)(()=>a(`dappkit`),[n]),l=(0,r.useMemo)(()=>a(`passkey`),[n]),u=(0,r.useMemo)(()=>a(`email`),[n]),d={showGoogleLogin:(0,r.useMemo)(()=>a(`google`),[n]),showEmailLogin:u,showPasskey:l,showVeChainLogin:s,showDappKit:c,showEcosystem:o,showMoreLogin:(0,r.useMemo)(()=>a(`more`),[n]),showGithubLogin:(0,r.useMemo)(()=>a(`github`),[n]),isOfficialVeChainApp:!1};return e?i?{...d,isOfficialVeChainApp:!0}:{...d}:{...d,showGoogleLogin:!1,showEmailLogin:!1,showPasskey:!1,showMoreLogin:!1}},Bo=e=>{let{openUpgradeSmartAccountModal:t,closeUpgradeSmartAccountModal:n,isUpgradeSmartAccountModalOpen:r}=Q();return{open:()=>t(e),close:n,isOpen:r}},Vo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Ho=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Q();return{open:t=>{e(`profile`,t)},close:()=>{t()},isOpen:n}},Uo=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Wo=()=>{let{openAccountModal:e,closeAccountModal:t,isAccountModalOpen:n}=Q();return{open:t=>{e(`settings`,t)},close:()=>{t()},isOpen:n}},Go=({children:e})=>(0,i.jsx)(i.Fragment,{children:e}),Ko=()=>{let[e,t]=(0,r.useState)(!1),[n,i]=(0,r.useState)(null),[a,o]=(0,r.useState)(null),{connection:s,account:c}=X(),{requestCertificate:l}=(0,f.useWallet)(),u=pl();return{signMessage:(0,r.useCallback)(async e=>{if(!c)throw Error(`Account not found`);t(!0),o(null),i(null);try{let t=null;return t=s.isConnectedWithDappKit?(await l({purpose:`agreement`,payload:{type:`text`,content:e}},{signer:c.address})).signature:await u.signMessage(e),i(t),t}catch(e){let t=e instanceof Error?e:Error(String(e));throw o(t),t}finally{t(!1)}},[s,u,c?.address]),isSigningPending:e,signature:n,error:a,reset:(0,r.useCallback)(()=>{t(!1),i(null),o(null)},[])}},qo=()=>{let[e,t]=(0,r.useState)(!1),[n,i]=(0,r.useState)(null),[a,o]=(0,r.useState)(null),{signer:s}=(0,f.useWallet)(),{connection:c}=X(),l=pl();return{signTypedData:(0,r.useCallback)(async(e,n)=>{t(!0),o(null),i(null);try{let t;if(c.isConnectedWithDappKit){let r={...e.domain,salt:e.domain?.salt?Buffer.from(e.domain.salt).toString(`hex`):void 0};t=await s.signTypedData(r,e.types,e.message,void 0,n)}else t=await l.signTypedData(e);return i(t),t}catch(e){if(e&&typeof e==`object`&&`statusCode`in e&&e.statusCode===4001){let e=Error(`User denied signature request`);throw o(e),e}let t=e instanceof Error?e:Error(typeof e==`object`?JSON.stringify(e):String(e));throw console.error(t),o(t),t}finally{t(!1)}},[c,l]),isSigningPending:e,signature:n,error:a,reset:(0,r.useCallback)(()=>{t(!1),i(null),o(null)},[])}},Jo=()=>{let{loginWithPasskey:e}=(0,u.useLoginWithPasskey)();return{loginWithPasskey:async()=>{try{await e()}catch(e){throw e}}}};let Yo=!1;const Xo=()=>{let{createWallet:e}=(0,u.useCreateWallet)(),{initOAuth:t}=(0,u.useLoginWithOAuth)({onComplete:(0,r.useCallback)(async({isNewUser:t})=>{if(t&&!Yo){Yo=!0;try{await e()}catch(e){throw Yo=!1,console.error(`Failed to create wallet:`,e),e}}},[e])});return{initOAuth:async({provider:e})=>{try{await t({provider:e})}catch(e){throw e}}}},Zo=()=>{let e=`vechain_kit_cross_app_connection`;return{setConnectionCache:(0,r.useCallback)(n=>{let r={timestamp:Date.now(),ecosystemApp:n};t.yt(e,JSON.stringify(r))},[]),getConnectionCache:(0,r.useCallback)(()=>{let n=t.dt(e);return n?JSON.parse(n):null},[]),clearConnectionCache:(0,r.useCallback)(()=>{t.gt(e)},[])}},Qo=()=>{let{login:n}=Vn(),{setConnectionCache:r}=Zo(),{data:i}=Ze([t.at]);return{login:async()=>{try{await n(t.at),r({name:`VeChain`,logoUrl:i?.[t.at]?.logo_url,appId:t.at,website:e.y})}catch(e){throw Ln({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.`})}}}},$o=`vechain-kit-app-hub-apps`,es=`vechain-kit-app-hub-apps-expiry`,ts=1440*60*1e3,ns=()=>[`VECHAIN_KIT`,`appHub`,`apps`],rs=async()=>{if(typeof window<`u`)try{let e=t.dt($o),n=t.dt(es);if(e&&n){let t=parseInt(n,10);if(Date.now()<t)return JSON.parse(e)}}catch{console.warn(`Invalid app-hub cache, fetching fresh data`)}let n=new URL(`contents/apps`,e.a),r=await fetch(n);if(!r.ok)throw Error(`Failed to fetch app directories`);let i=(await r.json()).map(async t=>{if(t.type!==`dir`)return null;let n=new URL(`master/apps/${t.name}/manifest.json`,e.o),r=await fetch(n);if(!r.ok)return console.warn(`Failed to fetch manifest for ${t.name}`),null;try{let n=await r.json(),i=new URL(`master/apps/${t.name}/logo.png`,e.o);return{id:t.name,name:n.name,description:n.desc,url:n.href,logo:i.toString(),category:n.category,tags:n.tags||[],isVeWorldSupported:n.isVeWorldSupported||!1,repo:n.repo,contracts:n.contracts,veBetterDaoId:n.veBetterDaoId}}catch(e){return console.warn(`Error parsing manifest for ${t.name}:`,e),null}}),a=(await Promise.all(i)).filter(e=>e!==null);if(typeof window<`u`)try{t.yt($o,JSON.stringify(a)),t.yt(es,(Date.now()+864e5).toString())}catch(e){console.warn(`Failed to cache app-hub data:`,e)}return a},is=()=>(0,p.useQuery)({queryKey:ns(),queryFn:async()=>{try{return await rs()}catch(e){let t=localStorage.getItem($o);if(t)return JSON.parse(t);throw e}},staleTime:1e3*60*60,retry:2}),as=({abi:e,address:t,method:n})=>[`callClause`,t,n],os=e=>e.map(e=>typeof e==`bigint`?e.toString():Array.isArray(e)?os(e):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,typeof t==`bigint`?t.toString():t])):e),ss=({abi:e,address:t,method:n,args:r})=>[`callClause`,t,n,...r?.length?os(r):[]],cs=({address:e,abi:n,method:r,args:i,queryOptions:a})=>{let o=(0,f.useThor)();return(0,p.useQuery)({queryKey:ss({abi:n,address:e,method:r,args:i}),queryFn:async()=>t.n({thor:o,contractAddress:e,abi:n,method:r,args:i}),...a})},ls=({thor:e,calls:n,queryKey:r,enabled:i=!0})=>(0,p.useQuery)({queryKey:r,queryFn:()=>t.r({thor:e,calls:n}),enabled:i}),us=()=>{let{currentLanguage:e,setLanguage:t}=$();return{currentLanguage:e,setLanguage:t}},ds=()=>{let{currentCurrency:e,setCurrency:t}=$();return{currentCurrency:e,setCurrency:t}},fs=()=>{let[e,n]=(0,r.useState)(!0),i=`vechain_kit_feature_announcement_closed`;return(0,r.useEffect)(()=>{t.dt(i)&&n(!1)},[]),{isVisible:e,closeAnnouncement:()=>{t.yt(i,`true`),n(!1)}}},ps=()=>{let{network:e}=$();return e.nodeUrl??t.bt(e.type).nodeUrl},ms=()=>{let[e,n]=(0,r.useState)(!0);return(0,r.useEffect)(()=>{if(!t.mt()){n(!1);return}let e=()=>{n(window.matchMedia(`(display-mode: standalone)`).matches||window.standalone||document.referrer.includes(`android-app://`))};return e(),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]),e},hs=()=>{(0,r.useEffect)(()=>{let e=document.querySelector(`.chakra-modal__content`);e&&(e.scrollTop=0)},[])},gs=async(e,t)=>{if(!t)throw Error(`Address is required`);let n=await e.accounts.getAccount(s.Address.of(t));return{balance:(0,b.formatEther)(BigInt(n.balance)).toString(),energy:(0,b.formatEther)(BigInt(n.energy)).toString()}},_s=e=>[`VECHAIN_KIT_BALANCE`,e],vs=e=>{let t=(0,f.useThor)();return(0,p.useQuery)({queryKey:_s(e),queryFn:()=>gs(t,e),enabled:!!e&&s.Address.isValid(e),refetchInterval:1e4})},ys=async(e,n,r)=>{if(!r)throw Error(`Network type is required`);if(!n)throw Error(`Version is required`);let i=e.contracts.load(t.bt(r).accountFactoryAddress,y.SocialLoginSmartAccountFactory__factory.abi),a;switch(n){case 1:case 2:a=i.read.accountImplementationV1();break;case 3:a=i.read.accountImplementationV3();break;default:throw Error(`Invalid version, must be between 1 and 3`)}let o=await a;if(!o)throw Error(`Failed to get account implementation address`);return o[0].toString()},bs=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`IMPLEMENTATION_ADDRESS`,e,t],xs=e=>{let t=(0,f.useThor)(),{network:n}=$();return(0,p.useQuery)({queryKey:bs(e,n.type),queryFn:async()=>ys(t,e,n.type),enabled:!!t&&!!e&&!!n})},Ss=async(e,n)=>{if(!n)throw Error(`Network type is required`);let r=await e.contracts.load(t.bt(n).accountFactoryAddress,y.SocialLoginSmartAccountFactory__factory.abi).read.currentAccountImplementationVersion();if(!r)throw Error(`Failed to get current account implementation version`);return parseInt(r[0].toString())},Cs=e=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`CURRENT_ACCOUNT_IMPLEMENTATION_VERSION`,e],ws=()=>{let e=(0,f.useThor)(),{network:t}=$();return(0,p.useQuery)({queryKey:Cs(t.type),queryFn:async()=>Ss(e,t.type),enabled:!!e&&!!t})},Ts=async(e,n,r)=>{if(!n)throw Error(`Owner address is required`);if(!r)throw Error(`Network type is required`);let i=await e.contracts.load(t.bt(r).accountFactoryAddress,y.SocialLoginSmartAccountFactory__factory.abi).read.getAccountAddress(n);if(!i)throw Error(`Failed to get account address of ${n}`);return i[0].toString()},Es=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`ADDRESS`,e,t],Ds=e=>{let t=(0,f.useThor)(),{network:n}=$();return(0,p.useQuery)({queryKey:Es(e,n.type),queryFn:async()=>Ts(t,e,n.type),enabled:!!t&&!!e&&!!n})},Os=y.SocialLoginSmartAccountFactory__factory.abi,ks=(e,n,r)=>ss({abi:Os,address:t.bt(r).accountFactoryAddress,method:`getAccountVersion`,args:[e,n]}),As=(e,n)=>{let{network:r}=$();return cs({address:t.bt(r.type).accountFactoryAddress,abi:Os,method:`getAccountVersion`,args:[e,n],queryOptions:{select:e=>({version:parseInt(e[0].toString()),isDeployed:e[1]}),enabled:!!e&&!!n}})},js=y.SocialLoginSmartAccountFactory__factory.abi,Ms=`hasLegacyAccount`,Ns=async(e,n,r)=>{if(!n)throw Error(`Owner address is required`);if(!r)throw Error(`Network type is required`);let[i]=await t.n({thor:e,abi:js,contractAddress:t.bt(r).accountFactoryAddress,method:`hasLegacyAccount`,args:[n]});return i},Ps=(e,t)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`HAS_V1_SMART_ACCOUNT`,e,t],Fs=e=>{let t=(0,f.useThor)(),{network:n}=$();return(0,p.useQuery)({queryKey:Ps(e,n.type),queryFn:async()=>Ns(t,e,n.type),enabled:!!t&&!!e&&!!n})},Is=async(e,t)=>{if(!t)throw Error(`Account address is required`);let n=await e.accounts.getAccount(s.Address.of(String(t)));if(!n)throw Error(`Account not found`);return n.hasCode},Ls=e=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`IS_DEPLOYED`,e],Rs=e=>{let t=ps(),n=L.ThorClient.at(t);return(0,p.useQuery)({queryKey:Ls(e),queryFn:async()=>Is(n,e),enabled:!!n&&!!e})},zs=()=>{let e=(0,p.useQueryClient)(),{connectedWallet:t,smartAccount:n}=X(),{network:r}=$();return{refresh:async()=>{let i=t?.address??``,a=n?.address??``;await Promise.all([e.cancelQueries({queryKey:Es(i,r.type)}),e.cancelQueries({queryKey:ks(a,i,r.type)}),e.cancelQueries({queryKey:Ps(i,r.type)}),e.cancelQueries({queryKey:Cs(r.type)}),e.cancelQueries({queryKey:Gs(a,i,3,r.type)}),e.cancelQueries({queryKey:Js(a,3,r.type)}),e.cancelQueries({queryKey:bs(3,r.type)})]),await Promise.all([e.refetchQueries({queryKey:Es(i,r.type)}),e.refetchQueries({queryKey:ks(a,i,r.type)}),e.refetchQueries({queryKey:Ps(i,r.type)}),e.refetchQueries({queryKey:Cs(r.type)}),e.refetchQueries({queryKey:Gs(a,i,3,r.type)}),e.refetchQueries({queryKey:Js(a,3,r.type)}),e.refetchQueries({queryKey:bs(3,r.type)})])}}},Bs=()=>{let e=(0,p.useQueryClient)(),{smartAccount:t}=X();return{refresh:async()=>{let n=t?.address??``;await Promise.all([e.cancelQueries({queryKey:Hs(n)}),e.cancelQueries({queryKey:Ls(n)})]),await Promise.all([e.refetchQueries({queryKey:Hs(n)}),e.refetchQueries({queryKey:Ls(n)})])}}},Vs=async(e,n,r)=>{if(!r)return{address:void 0};let i=await e.contracts.load(t.bt(n).accountFactoryAddress,y.SocialLoginSmartAccountFactory__factory.abi).read.getAccountAddress(r);if(!i)throw Error(`Failed to get account address of ${r}`);let a=s.Address.of(i[0].toString()),o=await e.accounts.getAccount(a);if(!o)throw Error(`Failed to get account detail of ${a}`);return{address:a.toString(),isDeployed:o.hasCode}},Hs=e=>[`VECHAIN_KIT_SMART_ACCOUNT`,e],Us=e=>{let{network:t}=$(),n=(0,f.useThor)();return(0,p.useQuery)({queryKey:Hs(e),queryFn:()=>Vs(n,t.type,e),enabled:!!e&&!!t.type&&!!n})},Ws=async(e,n,r,i,a)=>{let o=await e.contracts.load(t.bt(a).accountFactoryAddress,y.SocialLoginSmartAccountFactory__factory.abi).read.upgradeRequired(n,r,BigInt(i));if(!o)throw Error(`Failed to get upgrade required of contract address ${t.bt(a).accountFactoryAddress}`);return o[0]},Gs=(e,t,n,r)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`UPGRADE_REQUIRED`,e,t,n,r],Ks=(e,t,n)=>{let r=(0,f.useThor)(),{network:i}=$();return(0,p.useQuery)({queryKey:Gs(e,t,n,i.type),queryFn:async()=>Ws(r,e,t,n,i.type),enabled:!!r&&!!e&&!!t&&!!i.type})},qs=async(e,n,r,i)=>{let a=await e.contracts.load(t.bt(i).accountFactoryAddress,y.SocialLoginSmartAccountFactory__factory.abi).read.upgradeRequiredForAccount(n,BigInt(r));if(!a)throw Error(`Failed to get upgrade required for contract address ${n}`);return a[0]},Js=(e,t,n)=>[`VECHAIN_KIT`,`SMART_ACCOUNT`,`FACTORY`,`NEEDS_UPGRADE_FOR_ACCOUNT`,e,t,n],Ys=(e,t)=>{let n=(0,f.useThor)(),{network:r}=$();return(0,p.useQuery)({queryKey:Js(e,t,r.type),queryFn:async()=>qs(n,e,t,r.type),enabled:!!n&&!!r&&!!e&&!!t&&e!==``})},Xs=y.SocialLoginSmartAccount__factory.createInterface(),Zs=({smartAccountAddress:e,targetVersion:n,onSuccess:i,onError:a})=>{let{refresh:o}=zs(),{refresh:s}=Bs(),{data:c}=xs(n),l=(0,r.useCallback)(async()=>{if(!e||!t.j(e))throw Error(`Invalid smart account address`);if(!c)throw Error(`Unable to fetch implementation address for version ${n}`);return[{to:e,value:`0x0`,data:Xs.encodeFunctionData(`upgradeToAndCall`,[c,`0x`]),comment:`Upgrade account to version ${n}`,abi:Xs.getFunction(`upgradeToAndCall`).format(`json`)}]},[e,c,n]),u=lr({privyUIOptions:{title:`Upgrade Smart Account`,description:`Upgrading your account at ${t.W(e)} to version ${n}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{await Promise.all([o(),s()]),i?.()},onTxFailedOrCancelled:async()=>{a?.()}});return{...u,sendTransaction:async()=>u.sendTransaction(await l())}},Qs=()=>[`VECHAIN_KIT`,`CURRENT_BLOCK`],$s=10*t.s.SECOND,ec=()=>{let e=(0,f.useThor)();return(0,p.useQuery)({queryKey:Qs(),queryFn:async()=>{let t=await e.blocks.getBestBlockExpanded();if(!t)throw Error(`Failed to fetch current block`);return t},staleTime:1e3*60,refetchInterval:$s})},tc=async e=>{let t=await e.blocks.getGenesisBlock();if(!t)throw Error(`Genesis block not found`);return t.id},nc=()=>[`VECHAIN_KIT_CHAIN_ID`],rc=()=>{let e=(0,f.useThor)();return(0,p.useQuery)({queryKey:nc(),queryFn:()=>tc(e),enabled:!!e})},ic=1e3,ac=async({thor:e,order:t=`asc`,offset:n=0,limit:r=ic,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},oc=async({nodeUrl:e,thor:t,order:n=`asc`,from:r=0,to:i,filterCriteria:a})=>{let o=[],s=0;for(;;){let c=await ac({nodeUrl:e,thor:t,filterCriteria:a,from:r,to:i??2**53-1,limit:ic,order:n,offset:s});if(o.push(...c),c.length<ic)return o;s+=ic}},sc=y.IERC20__factory.createInterface(),cc=(e,n,r,i)=>{if(!e||!n||!t.j(e))throw Error(`Invalid receiver address or amount`);let a=[];return a.push({to:r,value:`0x0`,data:sc.encodeFunctionData(`transfer`,[e,(0,b.parseEther)(n)]),comment:`Transfer ${n} ${i} to ${e}`,abi:sc.getFunction(`transfer`)}),a},lc=({fromAddress:e,receiverAddress:n,amount:i,tokenAddress:a,tokenName:o,onSuccess:s,onError:c})=>{let{refresh:l}=Wn(),u=(0,r.useMemo)(()=>cc(n,i,a,o),[n,i,a,o]),d=lr({signerAccountAddress:e,privyUIOptions:{title:`Confirm Transfer`,description:`Transfer ${i} ${o} to ${t.W(n)}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{l(),s?.()},onTxFailedOrCancelled:async e=>{c?.(e instanceof Error?e.message:String(e))}});return{...d,clauses:u,sendTransaction:async()=>d.sendTransaction(u)}},uc=(e,n)=>{if(!e||!n||!t.j(e))throw Error(`Invalid receiver address or amount`);if(isNaN(Number(n)))throw Error(`Invalid amount`);let r=[];try{r.push({to:e,value:(0,b.parseEther)(n).toString(),data:`0x`,comment:`Transfer ${n} VET to ${e}`})}catch(e){throw console.error(`Error building clauses:`,e),Error(`Invalid amount format`)}return r},dc=({fromAddress:e,receiverAddress:n,amount:i,onSuccess:a,onError:o})=>{let{refresh:s}=Wn(),c=(0,r.useMemo)(()=>uc(n,i),[n,i]),l=lr({signerAccountAddress:e,privyUIOptions:{title:`Confirm Transfer`,description:`Transfer ${i} VET to ${t.W(n)}`,buttonText:`Sign to continue`},onTxConfirmed:async()=>{s(),a?.()},onTxFailedOrCancelled:async e=>{o?.(e instanceof Error?e.message:String(e))}});return{...l,clauses:c,sendTransaction:async()=>l.sendTransaction(c)}},fc=({clauseBuilder:e,refetchQueryKeys:t,invalidateCache:n=!0,onSuccess:i,onFailure:a,suggestedMaxGas:o,gasPadding:s,delegationUrl:c})=>{let{account:l}=X(),u=(0,p.useQueryClient)(),d=(0,r.useCallback)(async()=>{n&&t?.forEach(async e=>{await u.cancelQueries({queryKey:e}),await u.refetchQueries({queryKey:e})}),i?.()},[n,i,u,t]),f=lr({signerAccountAddress:l?.address,onTxConfirmed:d,suggestedMaxGas:o,onTxFailedOrCancelled:a,gasPadding:s,delegationUrl:c}),m=(0,r.useCallback)(async t=>{f.sendTransaction(e(t),c)},[e,f,c]);return{...f,sendTransaction:m}},pc=10*t.s.SECOND,mc=e=>[`VECHAIN_KIT`,`TX_RECEIPT`,e],hc=(e,t=5)=>{let n=(0,f.useThor)();return(0,p.useQuery)({queryKey:mc(e),queryFn:async()=>{let r=await n.transactions.waitForTransaction(e,{timeoutMs:t*pc,intervalMs:3e3});if(!r)throw Error(`Transaction receipt not found`);return r},enabled:!!e})},gc=(e,t)=>{let n=(0,b.decodeEventLog)({abi:t,data:e.data.toString(),topics:e.topics.map(e=>e.toString())});return{meta:e.meta,decodedData:n}},_c=({eventName:e,filterParams:t})=>[e,t?JSON.stringify(t):`all`],vc=({abi:e,contractAddress:t,eventName:n,filterParams:i,mapResponse:a,nodeUrl:o})=>{let s=(0,f.useThor)();return(0,p.useQuery)({queryFn:(0,r.useCallback)(async()=>{if(!s)return[];let r=s.contracts.load(t,e).getEventAbi(n),c=r.encodeFilterTopicsNoNull(i??{}),l=(await oc({thor:s,nodeUrl:o,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:r}]})).map(t=>gc(t,e));if(l.some(({decodedData:e})=>e.eventName!==n))throw Error(`Unknown event`);return l.map(e=>a({meta:e.meta,decodedData:e.decodedData}))},[s,t,e,n,i,a,o]),queryKey:(0,r.useMemo)(()=>_c({eventName:n,filterParams:i}),[n,i]),enabled:!!s})};function yc({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((0,b.encodeFunctionData)(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:o.ethers.hexlify(o.ethers.randomBytes(32))}}}function bc({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?(0,b.encodeFunctionData)(e.data):e.data)||`0x`}}}function xc(){let{connection:e,connectedWallet:t}=X(),{signTypedData:n}=Vn(),{signTypedData:r}=(0,u.usePrivy)(),{network:i}=$(),{data:a}=rc();return{connection:e,connectedWallet:t,signTypedDataWithCrossApp:n,signTypedDataPrivy:r,network:i,chainId:a}}const Sc=()=>{let{connection:e,connectedWallet:n,signTypedDataWithCrossApp:r,signTypedDataPrivy:i,network:a,chainId:o}=xc(),c=async e=>{let{version:t}=e;return t&&t<3?await l(e):await u(e)};async function l(c){let{clauses:l,smartAccount:u,title:d=`Sign Transaction`,description:f,buttonText:p=`Sign`}=c,m=[],h=l.map(e=>bc({clause:e,chainId:o,smartAccount:u})),g=[];for(let t=0;t<h.length;t++){let a=h[t],o=l[t];if(!o)throw Error(`Transaction clause at index ${t} is undefined`);if(e.isConnectedWithCrossApp){let e=await r({...a,address:n?.address,types:Object.fromEntries(Object.entries(a.types).map(([e,t])=>[e,[...t]]))});g.push(e);continue}let s=o.data,c=(await i(a,{uiOptions:{title:d,description:f??(l[t].comment||(typeof s==`object`&&s&&`functionName`in s?s.functionName:` `)),buttonText:p}})).signature;g.push(c)}return u.isDeployed||m.push(s.Clause.callFunction(s.Address.of(t.bt(a.type).accountFactoryAddress),s.ABIContract.ofAbi(y.SocialLoginSmartAccountFactory__factory.abi).getFunction(`createAccount`),[n?.address??``])),h.forEach((e,t)=>{m.push(s.Clause.callFunction(s.Address.of(u.address??``),s.ABIContract.ofAbi(y.SocialLoginSmartAccount__factory.abi).getFunction(`executeWithAuthorization`),[e.message.to,BigInt(e.message.value),e.message.data,BigInt(e.message.validAfter),BigInt(e.message.validBefore),g[t]]))}),m}async function u(c){let{clauses:l,smartAccount:u,title:d,description:f,buttonText:p=`Sign`}=c,m=[],h=yc({clauses:l,chainId:o,verifyingContract:u.address??``}),g;return g=e.isConnectedWithCrossApp?await r({...h,address:n?.address}):(await i(h,{uiOptions:{title:d,description:f,buttonText:p}})).signature,u.isDeployed||m.push(s.Clause.callFunction(s.Address.of(t.bt(a.type).accountFactoryAddress),s.ABIContract.ofAbi(y.SocialLoginSmartAccountFactory__factory.abi).getFunction(`createAccount`),[n?.address??``])),m.push(s.Clause.callFunction(s.Address.of(u.address??``),s.ABIContract.ofAbi(y.SocialLoginSmartAccount__factory.abi).getFunction(`executeBatchWithAuthorization`),[h.message.to,h.message.value?.map(e=>BigInt(e))??0,h.message.data,BigInt(h.message.validAfter),BigInt(h.message.validBefore),h.message.nonce,g])),m}return{buildClausesWithAuth:c}};let Cc=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.SHOW_ASSETS=`vechain_kit_show_assets`,e}({});const wc=(e,n)=>{let[i,a]=(0,r.useState)(()=>{try{let r=t.dt(e);return r?JSON.parse(r):n}catch(e){return console.error(e),n}});return(0,r.useEffect)(()=>{t.yt(e,JSON.stringify(i))},[e,i]),[i,a]},Tc=`vechain-kit-storage-change`,Ec=(e,t)=>{let[n,i]=(0,r.useState)(()=>{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}}),a=(0,r.useRef)(!1);return(0,r.useEffect)(()=>{if(!(typeof window>`u`)){if(a.current){a.current=!1;return}try{window.localStorage.setItem(e,JSON.stringify(n)),window.dispatchEvent(new CustomEvent(Tc,{detail:{key:e,value:n}}))}catch(e){console.error(`Error writing to localStorage:`,e)}}},[e,n]),(0,r.useEffect)(()=>{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)&&(a.current=!0,i(e))}catch(e){console.error(`Error parsing storage value:`,e)}},r=(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)&&(a.current=!0,i(e))}}catch(e){console.error(`Error parsing storage value:`,e)}});return window.addEventListener(`storage`,t),window.addEventListener(Tc,r),()=>{window.removeEventListener(`storage`,t),window.removeEventListener(Tc,r)}},[e,n]),[n,i,(0,r.useCallback)(()=>{if(!(typeof window>`u`))try{let r=window.localStorage.getItem(e),a=r?JSON.parse(r):t;JSON.stringify(a)!==JSON.stringify(n)&&i(a)}catch(e){console.error(`Error syncing localStorage:`,e)}},[e,t,n]),(0,r.useCallback)(()=>{if(typeof window>`u`)return t;let n=window.localStorage.getItem(e);return n?JSON.parse(n):t},[e,t])]},Dc=()=>{let[e,t]=wc(Cc.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)}},Oc=async(e,t,n,r,i)=>{let a=new URL(`estimate/clauses/${r.toLowerCase()}`,t);return a.searchParams.set(`type`,`smartaccount`),a.searchParams.set(`speed`,i),await(await fetch(a,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({clauses:n,signer:e})})).json()},kc=async e=>{let t=new URL(`deposit/account`,e);return await(await fetch(t,{method:`GET`,headers:{"Content-Type":`application/json`}})).json()},Ac=async(e,t,n,r)=>{let i=new URL(`sign/transaction/authorized/${n.toLowerCase()}`,r);return await(await fetch(i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({raw:e,origin:t,token:n.toLowerCase()})})).json()},jc=async(e,t,n,r)=>{let i=await t.gas.estimateGas(e,n?.address??``,{gasPadding:1}),a=Math.max(i.totalGas,0);return await t.transactions.buildTransactionBody(e,a,{isDelegated:r})};function Mc(e,t){return s.Transaction.of(e.body,R.concatBytes(e.signature??new Uint8Array,s.HexUInt.of(t.slice(2)).bytes))}function Nc(e,t){return s.Transaction.decode(s.HexUInt.of(e.slice(2)).bytes,t)}const Pc=()=>{let{connectedWallet:e}=X(),{data:n}=Us(e?.address??``),{data:i}=As(n?.address??``,e?.address??``),{preferences:a}=Fc(),o=y.IERC20__factory.createInterface(),{network:c}=$(),{buildClausesWithAuth:l}=Sc(),u=L.ThorClient.at(t.bt(c.type).nodeUrl);return{sendTransactionUsingGenericDelegator:(0,r.useCallback)(async({clauses:e,genericDelegatorUrl:r})=>{try{let c=a.gasTokenToUse,d=await Oc(n?.address??``,r,e,c,`medium`),f=await kc(r),p={to:c===`VET`?f.depositAccount:t.Q[c].address,value:c===`VET`?(0,b.parseEther)(d.transactionCost?.toString()??`0`).toString():`0x0`,data:c===`VET`?`0x`:o.encodeFunctionData(`transfer`,[f.depositAccount,(0,b.parseEther)(d.transactionCost?.toString()??`0`)]),comment:`Transfer ${d.transactionCost} ${c} to ${f.depositAccount}`,abi:c===`VET`?void 0:o.getFunction(`transfer`)},m=await l({clauses:[...e,p],smartAccount:n,version:i?.version??0}),h=await jc(m,u,t.V,!0),g=await s.Transaction.of(h).signAsSender(s.HexUInt.of(t.V.privateKey).bytes),_=await Ac(s.HexUInt.of(g.encoded).toString(),t.V.address,c,r),v=Mc(g,_.signature),y={clauses:m,simulateTransactionOptions:{caller:t.V.address??``,gasPayer:_.address}},x=await u.transactions.simulateTransaction(y.clauses,{...y.simulateTransactionOptions});for(let e=0;e<x.length;e++)if(x[e].reverted)throw Error(x[e].vmError);return(await u.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`)},[a,n,i,l,u,t.V])}},Fc=()=>{let[e,n]=Ec(Cc.GAS_TOKEN_PREFERENCES,t.J);return{preferences:e,supportedTokens:t.Q,updatePreferences:(0,r.useCallback)(e=>{n(t=>({...t,...e}))},[n]),reorderTokenPriority:(0,r.useCallback)(e=>{n(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}})},[n]),toggleTokenExclusion:(0,r.useCallback)(e=>{n(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}})},[n])}},Ic=({clauses:e,enabled:t=!0,tokens:n,sendingAmount:r,sendingTokenSymbol:i})=>{let{connectedWallet:a,account:o}=X(),{data:s}=Us(a?.address??``),{feeDelegation:c}=$(),{balances:l}=Yt(o?.address??``),{updatePreferences:u}=Fc();return(0,p.useQuery)({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 Oc(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})},Lc=({clauses:e,tokens:t,enabled:n=!0})=>{let{connectedWallet:r}=X(),{data:i}=Us(r?.address??``),{feeDelegation:a}=$();return(0,p.useQuery)({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 Oc(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})},Rc=({symbol:e,amount:a,currencyValue:o,currentCurrency:s,isDisabled:c,onClick:l,...u})=>{let d=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),f=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),[p]=wc(Cc.SHOW_ASSETS,!0);return(0,i.jsxs)(n.Button,{height:`72px`,variant:`ghost`,justifyContent:`space-between`,isDisabled:c,p:4,w:`100%`,_disabled:{cursor:`not-allowed`,opacity:.5},onClick:l,"data-testid":`asset-${e}`,...u,children:[(0,i.jsxs)(n.HStack,{children:[t.et[e]?r.default.cloneElement(t.et[e],{boxSize:`24px`,borderRadius:`full`}):(0,i.jsx)(n.Image,{src:t.$[e],alt:`${e} logo`,boxSize:`24px`,borderRadius:`full`,fallback:(0,i.jsx)(n.Box,{boxSize:`24px`,borderRadius:`full`,bg:`whiteAlpha.200`,display:`flex`,alignItems:`center`,justifyContent:`center`,children:(0,i.jsx)(n.Text,{fontSize:`10px`,fontWeight:`bold`,color:d,children:e.slice(0,3)})})}),(0,i.jsx)(n.Text,{color:d,children:e})]}),(0,i.jsxs)(n.VStack,{align:`flex-end`,spacing:0,children:[(0,i.jsxs)(n.Text,{color:d,children:[p?a.toLocaleString(void 0,{maximumFractionDigits:2}):`*`.repeat(4),` `]}),(0,i.jsx)(n.Text,{fontSize:`sm`,color:f,"data-testid":`${e}-balance`,children:p?rn(o,{currency:s}):`*`.repeat(4)})]})]})},zc=({address:e,domain:a,imageSrc:o,imageAlt:s=`Account`,hideAddress:c=!1,balance:u,tokenAddress:d})=>{let{t:f}=(0,l.useTranslation)(),p=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),m=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),h=(0,n.useToken)(`colors`,`vechain-kit-card`),{isLoading:g}=ln({address:e}),{tokens:_,isLoading:v}=cn({address:e}),y=(0,r.useMemo)(()=>d?_.find(e=>e.address===d):null,[_,d]),b=(0,r.useMemo)(()=>u===void 0?y?Number(y.balance):0:u,[u,y]),x=y?.symbol||``;return g||v?(0,i.jsxs)(n.HStack,{minH:`50px`,justify:`space-between`,p:4,borderRadius:`2xl`,bg:h,children:[(0,i.jsxs)(n.HStack,{children:[(0,i.jsx)(n.Skeleton,{boxSize:`40px`,borderRadius:`full`}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,children:[(0,i.jsx)(n.Skeleton,{height:`16px`,width:`120px`,borderRadius:`md`}),!c&&(0,i.jsx)(n.Skeleton,{mt:2,height:`12px`,width:`100px`,borderRadius:`md`})]})]}),(0,i.jsxs)(n.VStack,{justify:`flex-start`,align:`flex-end`,spacing:0,mr:2,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,color:p,children:f(`Balance`)}),(0,i.jsx)(n.Skeleton,{height:`12px`,width:`80px`,borderRadius:`md`})]})]}):(0,i.jsxs)(n.HStack,{minH:`50px`,justify:`space-between`,p:4,borderRadius:`2xl`,bg:h,children:[(0,i.jsxs)(n.HStack,{children:[(0,i.jsx)(n.Image,{src:o,alt:s,boxSize:`40px`,borderRadius:`full`,objectFit:`cover`}),(0,i.jsx)(n.VStack,{align:`start`,spacing:0,children:a?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Text,{fontWeight:`medium`,fontSize:`sm`,color:p,children:a}),!c&&(0,i.jsx)(n.Text,{fontSize:`xs`,color:m,children:t.W(e,6,4)})]}):(0,i.jsx)(n.Text,{fontWeight:`medium`,fontSize:`sm`,color:p,children:t.W(e,6,4)})})]}),(0,i.jsxs)(n.VStack,{justify:`flex-start`,align:`flex-end`,spacing:0,mr:2,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`medium`,color:p,children:f(`Balance`)}),(0,i.jsxs)(n.Text,{fontSize:`xs`,color:m,children:[b.toLocaleString(void 0,{maximumFractionDigits:2}),x&&` ${x}`]})]})]})},Bc=({onClick:e,...t})=>(0,i.jsx)(n.IconButton,{"aria-label":`FAQ`,icon:(0,i.jsx)(n.Icon,{as:g.LuCircleHelp,fontSize:`17px`}),size:`sm`,variant:`vechainKitHeaderIconButtons`,position:`absolute`,lineHeight:`normal`,left:`10px`,top:`8px`,onClick:e,...t}),Vc=({children:e,...t})=>(hs(),(0,i.jsx)(n.VStack,{...t,children:e})),Hc=({wallet:e,props:t})=>{let a=(0,r.useRef)(e?.image),o=(0,r.useRef)(e?.address);return(0,r.useEffect)(()=>{o.current!==e?.address&&(a.current=e?.image,o.current=e?.address)},[e?.address]),(0,r.useEffect)(()=>{e?.image&&!e.isLoadingMetadata&&(a.current=e.image)},[e?.image,e?.isLoadingMetadata]),!t?.src&&!e?.image&&!a.current||e?.isLoadingMetadata?(0,i.jsx)(n.Skeleton,{rounded:`full`,width:t?.width,height:t?.height}):(0,i.jsx)(n.Image,{src:t?.src||e?.image||a.current,alt:t?.alt||e?.domain,objectFit:`cover`,rounded:`full`,...t})},Uc=({transactionError:e,isSubmitting:a,isTxWaitingConfirmation:o,onConfirm:s,onRetry:c,transactionPendingText:u,txReceipt:d,isSubmitForm:f=!1,buttonText:p,isDisabled:m=!1,style:h,onError:g,gasEstimationError:_,hasEnoughGasBalance:v=!0,isLoadingGasEstimation:y=!1,showGasEstimationError:b=!1,context:x=`transaction`})=>{let{t:S}=(0,l.useTranslation)(),{darkMode:C}=$(),{network:w}=$(),T=(0,r.useMemo)(()=>e?e.reason||S(`Something went wrong. Please try again.`):null,[e,S]);(0,r.useEffect)(()=>{T&&g?.(T)},[T,g]);let E=(0,r.useMemo)(()=>{if(h?.accentColor)return`${h.accentColor} !important`},[h?.accentColor]),D=(0,r.useMemo)(()=>{if(!b||y||!(_||v))return null;if(!v&&!_)return{message:S(`You don't have any gas tokens enabled. Please enable at least one gas token in Gas Token Preferences.`)};if(_){let e=``;switch(x){case`send`:e=S(`Insufficient balance to complete this transfer and cover gas fees.`);break;case`customization`:e=S(`Insufficient balance to update your profile and cover gas fees.`);break;case`domain`:e=S(`Insufficient balance to claim this domain and cover gas fees.`);break;default:e=S(`Insufficient balance to complete this transaction and cover gas fees.`)}return{message:e}}return null},[_,v,y,b,x,S]);return(0,i.jsxs)(n.VStack,{width:`full`,spacing:4,children:[T&&(0,i.jsx)(n.Box,{p:3,borderRadius:`md`,bg:C?`rgba(218, 90, 90, 0.1)`:`rgba(218, 90, 90, 0.05)`,borderWidth:`1px`,borderColor:C?`rgba(218, 90, 90, 0.3)`:`rgba(218, 90, 90, 0.2)`,w:`full`,children:(0,i.jsx)(n.Text,{color:`#da5a5a`,fontSize:`sm`,fontWeight:`medium`,"data-testid":`tx-send-error-msg`,children:T})}),D&&!T&&(0,i.jsx)(n.Box,{p:3,borderRadius:`md`,bg:C?`rgba(218, 90, 90, 0.1)`:`rgba(218, 90, 90, 0.05)`,borderWidth:`1px`,borderColor:C?`rgba(218, 90, 90, 0.3)`:`rgba(218, 90, 90, 0.2)`,w:`full`,children:(0,i.jsx)(n.Text,{color:`#da5a5a`,fontSize:`sm`,fontWeight:`medium`,"data-testid":`gas-estimation-error`,children:D.message})}),(0,i.jsx)(n.Button,{px:4,variant:T?`vechainKitSecondary`:`vechainKitPrimary`,bg:E,onClick:()=>T&&c?c():s(),type:f?`submit`:`button`,isLoading:a,isDisabled:m,loadingText:o?S(`Waiting wallet confirmation...`):u,"data-testid":`confirm-button`,children:T?S(`Retry`):p||S(`Confirm`)}),T&&d?.meta.txID&&(0,i.jsx)(n.Link,{isExternal:!0,fontSize:`sm`,color:C?`whiteAlpha.600`:`blackAlpha.600`,textAlign:`center`,width:`full`,href:`${t.bt(w.type).explorerUrl}/${d?.meta.txID}`,target:`_blank`,rel:`noopener noreferrer`,children:S(`View transaction on the explorer`)})]})},Wc=({onClick:e,hasUnreadNotifications:t,...r})=>(0,i.jsx)(n.IconButton,{"aria-label":`Notifications`,size:`sm`,variant:`ghost`,position:`absolute`,borderRadius:`50%`,left:`10px`,top:`10px`,onClick:e,icon:(0,i.jsxs)(n.Box,{position:`relative`,children:[(0,i.jsx)(g.LuBell,{fontSize:`20px`}),t&&(0,i.jsx)(n.Box,{position:`absolute`,top:`-1px`,right:`-1px`,minWidth:`8px`,height:`8px`,bg:`red.500`,borderRadius:`full`})]}),...r}),Gc=({isOpen:e,onClose:a,selectedToken:o,onTokenSelect:s,availableTokens:c,tokenEstimations:u,walletAddress:d})=>{let{t:f}=(0,l.useTranslation)(),{balances:p}=Yt(d),[m,h]=r.default.useState(o),[g,_]=r.default.useState(!1),v=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),y=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),b=(0,n.useToken)(`colors`,`vechain-kit-text-tertiary`),x=(0,n.useToken)(`colors`,`vechain-kit-error`),S=e=>e?b:`transparent`,C=e=>e?v:`transparent`;r.default.useEffect(()=>{e&&(h(o),_(!1))},[e,o]);let w=()=>{s(m,g),a()},T=e=>{let t=p.find(t=>t.symbol===e);return t?Number(t.balance).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}):`0.00`},E=e=>{let t=p.find(t=>t.symbol===e),n=u[e];return!t||!n?!1:Number(t.balance)<n.cost};return(0,i.jsxs)(Je,{isOpen:e,onClose:a,size:`sm`,children:[(0,i.jsxs)(n.ModalHeader,{children:[(0,i.jsx)(n.Text,{fontSize:`lg`,fontWeight:`semibold`,color:v,children:f(`Fee token`)}),(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`normal`,color:y,mt:1,children:f(`Select the token to pay the fee with`)})]}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{spacing:2,align:`stretch`,children:[c.map(e=>{let a=t.Q[e],o=m===e,s=u[e]||{cost:0,loading:!0},c=E(e);return(0,i.jsx)(n.Box,{cursor:c?`not-allowed`:`pointer`,bg:S(o),border:`1px`,borderColor:C(o),borderRadius:`md`,p:3,transition:`all 0.2s ease`,_hover:{backgroundColor:c?S(o):y&&`#ffffff12`,borderColor:c?C(o):y},opacity:c?.5:1,onClick:()=>!c&&h(e),children:(0,i.jsxs)(n.HStack,{spacing:3,justify:`space-between`,children:[(0,i.jsxs)(n.HStack,{spacing:3,flex:1,children:[r.default.cloneElement(t.et[e],{boxSize:`36px`,borderRadius:`full`}),(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,children:[(0,i.jsx)(n.Text,{fontWeight:`medium`,color:v,children:a.symbol}),(0,i.jsxs)(n.Text,{fontSize:`xs`,color:y,children:[f(`Balance`),`:`,` `,T(e)]}),c&&(0,i.jsx)(n.Text,{fontSize:`xs`,color:x,children:f(`Insufficient balance`)})]})]}),(0,i.jsx)(n.VStack,{align:`end`,spacing:0,children:s.loading?(0,i.jsx)(n.Skeleton,{height:`16px`,width:`60px`}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`semibold`,color:v,children:t.x(s.cost,2)}),(0,i.jsx)(n.Text,{fontSize:`xs`,color:y,children:a.symbol})]})})]})},e)}),m!==o&&(0,i.jsxs)(n.FormControl,{display:`flex`,alignItems:`center`,justifyContent:`space-between`,children:[(0,i.jsx)(n.FormLabel,{htmlFor:`remember-choice`,mb:`0`,fontSize:`sm`,color:v,children:f(`Use this token for future transactions`)}),(0,i.jsx)(n.Switch,{id:`remember-choice`,isChecked:g,onChange:e=>_(e.target.checked),color:v})]})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsxs)(n.VStack,{spacing:3,w:`full`,children:[(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,onClick:w,isDisabled:E(m),children:f(`Apply`)}),(0,i.jsx)(n.Button,{variant:`ghost`,width:`full`,onClick:a,children:f(`Cancel`)})]})})]})},Kc=({estimation:e,isLoading:a,isLoadingTransaction:o,onTokenChange:s,clauses:c=[],userSelectedToken:u})=>{let{t:d}=(0,l.useTranslation)(),{feeDelegation:f}=$(),{connection:p,account:m}=X(),{preferences:h,reorderTokenPriority:_}=Fc(),{isOpen:v,onOpen:y,onClose:b}=(0,n.useDisclosure)(),x=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),S=(0,n.useToken)(`colors`,`vechain-kit-text-secondary`),[C,w]=(0,r.useState)(()=>{let e={};return h.availableGasTokens.forEach(t=>{e[t]={cost:0,loading:!0}}),e}),{data:T,isLoading:E}=Lc({clauses:c,tokens:h.availableGasTokens,enabled:c.length>0});(0,r.useEffect)(()=>{!E&&T&&w(T)},[T,E]),(0,r.useEffect)(()=>{e&&w(t=>({...t,[e.usedToken]:{cost:e.transactionCost||0,loading:!1}}))},[e]),(0,r.useEffect)(()=>{E&&w(h.availableGasTokens.reduce((e,t)=>(e[t]={cost:0,loading:!0},e),{}))},[E,h.availableGasTokens]);let D=(0,r.useCallback)((t,n)=>{n&&_([t,...h.tokenPriority.filter(e=>e!==t)]),s&&t!==e?.usedToken&&s(t)},[e,s,_,h.tokenPriority]);if(f?.delegatorUrl||p.isConnectedWithDappKit||h.availableGasTokens.length===0)return null;let{balances:O}=Yt(m?.address??``),k=e=>{let t=O.find(t=>t.symbol===e),n=C[e];return!t||!n||n.loading?!0:Number(t.balance)<n.cost},A=e?.usedToken,j=h.availableGasTokens,M;A?M=A:u&&j.includes(u)?M=u:(M=j.find(e=>C[e]&&!C[e].loading&&!k(e)),M||=j.find(e=>C[e]&&!C[e].loading),M||=j[0]);let N=M?C[M]:void 0,P=A&&e?.transactionCost?e.transactionCost:N?.cost||0,F=M?t.Q[M]:void 0;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Divider,{mt:3}),(0,i.jsxs)(n.HStack,{mt:3,w:`full`,justifyContent:`start`,alignItems:`center`,children:[(0,i.jsxs)(n.VStack,{align:`start`,spacing:0,w:`full`,children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`light`,textAlign:`left`,w:`full`,color:S,children:d(`Fee`)}),(0,i.jsx)(n.HStack,{align:`start`,justifyContent:`space-between`,spacing:0,w:`full`,children:(0,i.jsx)(n.HStack,{justifyContent:`flex-start`,w:`full`,children:a||!A&&(!N||N.loading)||!F?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Skeleton,{height:`16px`,width:`120px`,borderRadius:`md`}),(0,i.jsx)(n.Skeleton,{height:`16px`,width:`60px`,borderRadius:`md`})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.Text,{color:x,fontSize:`sm`,fontWeight:`semibold`,children:[t.x(P,2),` `,F.symbol]}),(0,i.jsxs)(n.Text,{color:S,fontSize:`xs`,children:[`≈`,` $`,(P*.01).toFixed(2)]})]})})})]}),(0,i.jsxs)(n.Button,{onClick:y,variant:`outline`,size:`sm`,borderRadius:`full`,px:6,disabled:o,color:S,borderColor:S,_hover:{bg:S},leftIcon:r.default.cloneElement(t.et[M||h.availableGasTokens[0]],{boxSize:`20px`,borderRadius:`full`}),children:[(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`semibold`,children:M||h.availableGasTokens[0]}),(0,i.jsx)(n.Icon,{as:g.LuChevronDown,boxSize:5,color:S})]})]}),(0,i.jsx)(Gc,{isOpen:v,onClose:b,selectedToken:M||h.availableGasTokens[0],onTokenSelect:D,availableTokens:h.availableGasTokens,tokenEstimations:C,walletAddress:m?.address??``})]})},qc=P.keyframes`
201
201
  from {
202
202
  transform: translateY(-100%);
203
203
  opacity: 0;
@@ -206,7 +206,7 @@ const e=require(`./assets-DNJsQD7_.cjs`),t=require(`./utils-CzaSErgL.cjs`);let n
206
206
  transform: translateY(0);
207
207
  opacity: 1;
208
208
  }
209
- `,Pc=F.keyframes`
209
+ `,Jc=P.keyframes`
210
210
  from {
211
211
  transform: translateY(0);
212
212
  opacity: 1;
@@ -215,7 +215,7 @@ const e=require(`./assets-DNJsQD7_.cjs`),t=require(`./utils-CzaSErgL.cjs`);let n
215
215
  transform: translateY(-100%);
216
216
  opacity: 0;
217
217
  }
218
- `,Fc=({message:e,duration:t=2e3,onClose:a})=>{let[o,s]=(0,r.useState)(!0),c=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),l=(0,n.useColorModeValue)(`#f0f9ff`,`#0000009e`),u=(0,n.useColorModeValue)(`#bfdbfe`,`#3b3b3b`),d=(0,n.useToken)(`colors`,`vechain-kit-primary`);return(0,r.useEffect)(()=>{let e=setTimeout(()=>{s(!1),setTimeout(()=>{a?.()},300)},t);return()=>clearTimeout(e)},[t,a]),(0,i.jsx)(n.Box,{position:`absolute`,w:`fit-content`,margin:`auto`,animation:`${o?Nc:Pc} 0.3s ease-in-out`,zIndex:10,children:(0,i.jsx)(n.Box,{bg:l,borderWidth:1,borderColor:u,borderRadius:`md`,px:4,py:3,mx:4,mt:2,children:(0,i.jsxs)(n.HStack,{spacing:3,align:`center`,children:[(0,i.jsx)(n.Icon,{as:_.LuCheck,boxSize:5,color:d,flexShrink:0}),(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`500`,color:c,flex:1,children:e})]})})})},Ic=({showFeedback:e=!1})=>{let{t}=(0,l.useTranslation)(),[n,a]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{a(!!e)},[e]),n?(0,i.jsx)(Fc,{message:t(`Account Changed`),duration:2e3,onClose:()=>{a(!1)}}):null},Lc=({isOpen:e,onClose:t,steps:r,activeStep:a,goToPrevious:o,setActiveStep:s,disableBackButton:c,disableCloseButton:l,closeOnOverlayClick:u=!0,isCloseable:d=!0})=>{let f=()=>{s(0),t()},[p]=(0,n.useMediaQuery)(`(min-width: 1060px)`),m=r[a],h=a===0,_=!h&&!c||m?.title||p&&!l;return m?(0,i.jsx)(Pe,{closeOnOverlayClick:u,isOpen:e,onClose:f,isCloseable:d,blockScrollOnMount:!0,children:(0,i.jsx)(n.Card,{p:0,bg:`none`,children:(0,i.jsxs)(n.CardBody,{p:0,children:[_?(0,i.jsxs)(Y,{children:[m?.title?(0,i.jsx)(n.ModalHeader,{children:m.title}):null,!h&&!c?(0,i.jsx)(J,{onClick:o}):null,p&&!l?(0,i.jsx)(n.ModalCloseButton,{onClick:t}):null]}):null,m?.description?(0,i.jsx)(n.Text,{fontSize:{base:14,md:16},fontWeight:400,px:4,children:m?.description}):null,(0,i.jsx)(g.motion.div,{initial:`hidden`,animate:`visible`,style:{width:`100%`},children:m.content},m.key)]})})}):null},Rc=({document:e,register:t,isText:r=!1})=>{let{t:a}=(0,l.useTranslation)(),{darkMode:o}=$(),s=e.displayName??a(`Policy`),c=o?`whiteAlpha.400`:`blackAlpha.400`,u=o?`blue.300`:`blue.500`,d=o?`blue.200`:`blue.700`,f=(()=>{if(!e.documentType)return s;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 r?(0,i.jsxs)(n.Link,{href:e.url,isExternal:!0,color:`blue.500`,textDecoration:`underline`,_hover:{color:`blue.300`,textDecoration:`underline`},fontWeight:`medium`,display:`contents`,alignItems:`center`,children:[(0,i.jsx)(n.Input,{...t(e.id,{required:e.required}),type:`checkbox`,hidden:!0}),f,(0,i.jsx)(n.Icon,{as:_.LuExternalLink,ml:1,boxSize:3})]},e.id):(0,i.jsx)(n.HStack,{width:`full`,borderRadius:`md`,transition:`all 0.2s`,children:(0,i.jsxs)(n.HStack,{align:`flex-start`,spacing:3,width:`full`,children:[(0,i.jsx)(n.Checkbox,{mt:`2px`,size:`md`,colorScheme:`blue`,borderColor:c,...t(e.id,{required:e.required}),"data-testid":`tnc-checkbox`}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[a(`I have read and agree to `),(0,i.jsxs)(n.Link,{href:e.url,isExternal:!0,color:u,textDecoration:`underline`,_hover:{color:d,textDecoration:`underline`},fontWeight:`medium`,display:`contents`,alignItems:`center`,children:[f,(0,i.jsx)(n.Icon,{as:_.LuExternalLink,ml:1})]}),e.required&&(0,i.jsx)(n.Text,{as:`span`,color:`red.500`,fontWeight:`bold`,children:`*`})]})]})},e.id)},zc=({onAgree:e,onReject:t,onlyOptionalDocuments:a=!1})=>{let{t:o}=(0,l.useTranslation)(),{darkMode:s}=$(),{documentsNotAgreed:c}=Yc(),{requiredDocuments:u,optionalDocuments:d}=(0,r.useMemo)(()=>c.reduce((e,t)=>(t.required?e.requiredDocuments.push(t):e.optionalDocuments.push(t),e),{requiredDocuments:[],optionalDocuments:[]}),[c]),{handleSubmit:f,register:p,formState:{isValid:m},watch:h}=(0,O.useForm)({defaultValues:(0,r.useMemo)(()=>c.reduce((e,t)=>(e[t.id]=t.required,e),{}),[c])}),g=h(),_=(0,r.useMemo)(()=>c.filter(e=>g[e.id]),[c,g]),v=c?.length===_.length,y=(0,r.useCallback)(t=>{let n=new Set(Object.entries(t).filter(([e,t])=>t).map(([e])=>e));return e(c.filter(e=>n.has(e.id)))},[c,e]),b=s?`#3a3a3a`:`#eaeaea`,x=s?`#2a2a2a`:`#f5f5f5`,S=s?`gray.300`:`gray.600`,C=s?`0 2px 8px rgba(0, 0, 0, 0.2)`:`0 2px 8px rgba(0, 0, 0, 0.05)`,w=u.length>0,T=d.length>0,E=(0,r.useMemo)(()=>{let e=d.filter(e=>g[e.id]).length;return o(v?`Accept all`:a&&e===0?`Ignore and continue`:w&&!T||w&&e===0?`Accept`:`Accept selected`)},[a,v,d,g]),D=e=>e===u.length-2&&u.length>1?o(` and `):`, `;return(0,i.jsx)(n.Stack,{width:`full`,children:(0,i.jsxs)(`form`,{onSubmit:f(y),children:[(0,i.jsx)(Y,{children:(0,i.jsx)(n.ModalHeader,{children:o(`Terms and Policies`)})}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:5,width:`full`,children:[w&&(0,i.jsxs)(n.Text,{as:`span`,fontSize:`sm`,children:[o(`By continuing, you agree to`),` `,u.map((e,t)=>(0,i.jsxs)(r.Fragment,{children:[(0,i.jsx)(Rc,{document:e,register:p,isText:!0},e.id),t<u.length-1?D(t):null]},e.id)),`.`,` `,o(`Please take a moment to review all the policies, with acceptance being mandatory to continue.`)]}),a&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:S,mb:3,children:(0,i.jsx)(l.Trans,{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:(0,i.jsx)(n.Text,{as:`span`,fontWeight:`semibold`,color:S})}})}),T&&(0,i.jsxs)(n.Stack,{p:4,borderRadius:`xl`,bg:x,borderWidth:`1px`,borderColor:b,boxShadow:C,spacing:5,children:[(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,color:S,children:o(`Optional`)}),(0,i.jsx)(n.VStack,{align:`stretch`,spacing:4,children:d.map(e=>(0,i.jsx)(Rc,{document:e,register:p},e.id))})]})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsxs)(n.VStack,{width:`full`,spacing:3,children:[(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,width:`full`,type:`submit`,isDisabled:!m,"data-testid":`accept-tnc-button`,children:E}),!a&&(0,i.jsx)(n.Button,{variant:`ghost`,width:`full`,onClick:t,"data-testid":`reject-tnc-button`,colorScheme:`red`,children:o(`Reject and logout`)})]})})]})})};var Bc=function(e){return e.REVIEW_DOCUMENTS=`REVIEW_DOCUMENTS`,e.REJECT_DOCUMENTS=`REJECT_DOCUMENTS`,e}(Bc||{});const Vc=({isOpen:e,onAgree:t,handleLogout:a,onlyOptionalDocuments:o})=>{let{t:s}=(0,l.useTranslation)(),{activeStep:c,goToPrevious:u,setActiveStep:d,goToNext:f}=(0,n.useSteps)({index:0,count:Object.keys(Bc).length}),p=()=>{d(0)},m=()=>{f()},h=()=>{a(),p()};return(0,i.jsx)(Lc,{isOpen:e,onClose:()=>{},goToPrevious:u,goToNext:f,setActiveStep:d,steps:(0,r.useMemo)(()=>[{key:Bc.REVIEW_DOCUMENTS,content:(0,i.jsx)(zc,{onAgree:t,onReject:m,onlyOptionalDocuments:o})},{key:Bc.REJECT_DOCUMENTS,content:(0,i.jsx)(wi,{onDisconnect:h,onBack:u,onClose:u,text:s(`Are you sure you want to reject the policies and disconnect?`),showCloseButton:!1})}],[zc,wi,t,h]),disableCloseButton:!0,disableBackButton:!0,isCloseable:!1,closeOnOverlayClick:!1,activeStep:c})},Hc=`vechain-kit-legal-documents`,Uc=`vechain-kit-legal-documents-optional-reject`,Wc=e=>`${e.documentType}-${e.url.replace(/[^\w-]+/g,`-`)}-v${e.version}`,Gc=e=>e.map(e=>({...e,id:Wc(e)})),Kc=e=>e.filter(e=>!e.required),qc=(e,t)=>{let n=Date.now();return e.map(e=>({...e,walletAddress:t,timestamp:n}))},Jc=(0,r.createContext)(void 0),Yc=()=>(0,r.useContext)(Jc)||{hasAgreedToRequiredDocuments:!0,agreements:[],walletAddress:void 0,documents:[],documentsNotAgreed:[]},Xc=({children:e})=>{let{connection:n,account:a,disconnect:o}=Z(),{darkMode:s,legalDocuments:c,theme:l}=$(),[u,d]=fc(`vechain-kit-legal-documents`,[]),[f,p]=fc(`vechain-kit-legal-documents-optional-reject`,[]),[m,h]=(0,r.useState)(!1),g=(0,r.useCallback)((e,n)=>f.some(r=>t.k(r.walletAddress,n)&&r.id===e.id),[f]),[_,v]=(0,r.useMemo)(()=>{let e=Gc([{items:c?.cookiePolicy||[],type:t.y.COOKIES,source:t.v.APPLICATION},{items:c?.privacyPolicy||[],type:t.y.PRIVACY,source:t.v.APPLICATION},{items:c?.termsAndConditions||[],type:t.y.TERMS,source:t.v.APPLICATION}].flatMap(e=>e.items.map(t=>({...t,documentType:e.type,documentSource:e.source}))));return[e,e.filter(e=>e.required)]},[c]),y=(0,r.useMemo)(()=>a?.address?_.filter(e=>u.some(n=>t.k(n.walletAddress,a.address)&&n.id===e.id)?!1:!f.some(n=>t.k(n.walletAddress,a.address)&&n.id===e.id)):[],[_,a?.address,u,f]),b=(0,r.useMemo)(()=>!v.length||!a?.address?!0:v.every(e=>u.some(n=>t.k(n.walletAddress,a.address)&&n.id===e.id)),[v,u,a?.address]),x=(0,r.useMemo)(()=>{if(!a?.address||!y?.length)return!1;let e=Kc(y);return e.length===0?!1:e.some(e=>!g(e,a.address))},[y,a?.address,Kc,g]),S=(0,r.useMemo)(()=>b&&x,[b,x]);(0,r.useMemo)(()=>{let e=new Set(u.map(e=>e.id));return _.some(t=>e.has(t.id))},[_,u]),(0,r.useEffect)(()=>{n.isConnected&&a?.address?h(!b||x):h(!1)},[n.isConnected,a?.address,b,x]);let C=(0,r.useCallback)((e,n)=>{let r=Array.isArray(e)?e:[e];if(!r.length)return;let i=qc(r,n);d([...u.filter(e=>!t.k(e.walletAddress,n)||!r.some(t=>t.id===e.id)),...i])},[u,qc]),w=(0,r.useCallback)(e=>{if(!a?.address)return;let t=Kc(y);if(t.length===0)return;let n=e.map(e=>e.id),r=t.filter(e=>!n.includes(e.id));if(!r?.length)return;let i=qc(r,a.address);p(e=>[...e,...i])},[a?.address,y,Kc,qc]),T=(0,r.useCallback)(e=>{if(!a?.address)return;let t=Array.isArray(e)?e:[e];t.length>0&&C(t,a.address),w(t),h(!1)},[a?.address,C,w]);return(0,i.jsxs)(Jc.Provider,{value:{hasAgreedToRequiredDocuments:b,agreements:u,walletAddress:a?.address,documents:_,documentsNotAgreed:y},children:[e,(0,i.jsx)(Ja,{darkMode:s,theme:l,children:(0,i.jsx)(Vc,{isOpen:m,onAgree:T,handleLogout:S?()=>{}:()=>{o(),h(!1)},onlyOptionalDocuments:S})})]})},Zc=(0,r.createContext)(null),Qc=({children:e,nodeUrl:n,delegatorUrl:a=t.st(),delegateAllTransactions:o,genericDelegator:s})=>{let{signTypedData:c,exportWallet:l,signMessage:u}=(0,d.usePrivy)(),{signTypedData:f,signMessage:p}=En(),{connection:m,connectedWallet:h}=Z(),{network:g}=$(),{data:_}=ks(h?.address??``),{data:v}=gs(_?.address??``,h?.address??``),{data:y}=xs(h?.address??``),{buildClausesWithAuth:b}=cc(),{sendTransactionUsingGenericDelegator:x}=bc(),S=R.ThorClient.at(n),C=async(e,r,i,o)=>{if(!_?.address)throw Error(`Smart account address is not set`);let s=new R.VeChainProvider(S,i??new R.ProviderInternalBaseWallet([{privateKey:Buffer.from(t.V.privateKey.slice(2),`hex`),address:t.V.address}],{gasPayer:{gasPayerServiceUrl:r??a}}),!0),c=o??await s.getSigner(t.V.address),l=R.signerUtils.transactionBodyToTransactionRequestInput(e,t.V.address),u=await c.signTransaction(l),d=new URL(`transactions`,n),{id:f}=await fetch(d,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({raw:u})}).then(e=>e.json());return f},w=(0,r.useCallback)(async({txClauses:e=[],title:n=`Sign Transaction`,description:r,buttonText:i=`Sign`,delegationUrl:o})=>{if(!_||_&&!_.address||!h||h&&!h.address)throw Error(`Address or embedded wallet is missing`);if(s&&!o)return await x({clauses:e,genericDelegatorUrl:a??``});let c=await b({clauses:e,smartAccount:_,version:y?1:v?.version??3,title:n,description:r,buttonText:i}),l={clauses:c,simulateTransactionOptions:{caller:t.V.address}},u=await S.transactions.simulateTransaction(l.clauses,{...l.simulateTransactionOptions});for(let e=0;e<u.length;e++)if(u[e].reverted)return console.error(`simulatedTx1[i].vmError: ${u[e].vmError}`),u[e].vmError;return await C(await _c(c,S,t.V,!0),o)},[x,s,_,h,a,b,y,v,S]);return(0,i.jsx)(Zc.Provider,{value:{accountFactory:t.bt(g.type).accountFactoryAddress,sendTransaction:w,signMessage:async e=>m.isConnectedWithCrossApp?await p(e):(await u({message:e})).signature,signTypedData:async e=>m.isConnectedWithCrossApp?await f({...e,address:h?.address,types:Object.fromEntries(Object.entries(e.types).map(([e,t])=>[e,[...t]]))}):(await c(e)).signature,exportWallet:l,delegateAllTransactions:o},children:e})},$c=()=>{let e=(0,r.useContext)(Zc);if(!e)throw Error(`usePrivyWalletProvider must be used within a PrivyWalletProvider`);return e},el=(0,r.createContext)(null),$=()=>{let e=(0,r.useContext)(el);if(!e)throw Error(`useVeChainKitConfig must be used within VeChainKit`);return e},tl=e=>{let n=[],r={...e};if(r.dappKit||={allowedWallets:[`veworld`]},(r.privy!==void 0||r.loginMethods?.some(e=>e.method===`vechain`||e.method===`ecosystem`))&&(r.feeDelegation?!r.feeDelegation.delegatorUrl&&!r.feeDelegation.genericDelegatorUrl&&(r.feeDelegation.genericDelegatorUrl=t.st()):r.feeDelegation={genericDelegatorUrl:t.st()}),!r.network||!r.network.type)r.network={type:`main`};else{let e=r.network.type;[`main`,`test`,`solo`].includes(e)||n.push(`network.type must be either "main", "test" or "solo"`)}if(r.loginMethods||=[{method:`vechain`,gridColumn:4},{method:`ecosystem`,gridColumn:4},{method:`dappkit`,gridColumn:4}],r.loginMethods&&!r.privy){let e=r.loginMethods.filter(e=>[`email`,`google`,`passkey`,`more`].includes(e.method));e.length>0&&n.push(`Login methods ${e.map(e=>`"${e.method}"`).join(`, `)} require Privy configuration. Please either remove these methods or configure the privy prop.`)}if(r?.legalDocuments&&(r.legalDocuments.termsAndConditions&&r.legalDocuments.termsAndConditions.forEach(e=>{t.i(e.url)||n.push(`legalDocuments.termsAndConditions.url is invalid: ${e.url}`)}),r.legalDocuments.privacyPolicy&&r.legalDocuments.privacyPolicy.forEach(e=>{t.i(e.url)||n.push(`legalDocuments.privacyPolicy.url is invalid: ${e.url}`)}),r.legalDocuments.cookiePolicy&&r.legalDocuments.cookiePolicy.forEach(e=>{t.i(e.url)||n.push(`legalDocuments.cookiePolicy.url is invalid: ${e.url}`)})),n.length>0)throw Error(`VeChainKit Configuration Error:
218
+ `,Yc=({message:e,duration:t=2e3,onClose:a})=>{let[o,s]=(0,r.useState)(!0),c=(0,n.useToken)(`colors`,`vechain-kit-text-primary`),l=(0,n.useColorModeValue)(`#f0f9ff`,`#0000009e`),u=(0,n.useColorModeValue)(`#bfdbfe`,`#3b3b3b`),d=(0,n.useToken)(`colors`,`vechain-kit-primary`);return(0,r.useEffect)(()=>{let e=setTimeout(()=>{s(!1),setTimeout(()=>{a?.()},300)},t);return()=>clearTimeout(e)},[t,a]),(0,i.jsx)(n.Box,{position:`absolute`,w:`fit-content`,margin:`auto`,animation:`${o?qc:Jc} 0.3s ease-in-out`,zIndex:10,children:(0,i.jsx)(n.Box,{bg:l,borderWidth:1,borderColor:u,borderRadius:`md`,px:4,py:3,mx:4,mt:2,children:(0,i.jsxs)(n.HStack,{spacing:3,align:`center`,children:[(0,i.jsx)(n.Icon,{as:g.LuCheck,boxSize:5,color:d,flexShrink:0}),(0,i.jsx)(n.Text,{fontSize:`sm`,fontWeight:`500`,color:c,flex:1,children:e})]})})})},Xc=({showFeedback:e=!1})=>{let{t}=(0,l.useTranslation)(),[n,a]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{a(!!e)},[e]),n?(0,i.jsx)(Yc,{message:t(`Account Changed`),duration:2e3,onClose:()=>{a(!1)}}):null},Zc=({isOpen:e,onClose:t,steps:r,activeStep:a,goToPrevious:o,setActiveStep:s,disableBackButton:c,disableCloseButton:l,closeOnOverlayClick:u=!0,isCloseable:d=!0})=>{let f=()=>{s(0),t()},[p]=(0,n.useMediaQuery)(`(min-width: 1060px)`),m=r[a],g=a===0,_=!g&&!c||m?.title||p&&!l;return m?(0,i.jsx)(Je,{closeOnOverlayClick:u,isOpen:e,onClose:f,isCloseable:d,blockScrollOnMount:!0,children:(0,i.jsx)(n.Card,{p:0,bg:`none`,children:(0,i.jsxs)(n.CardBody,{p:0,children:[_?(0,i.jsxs)(Y,{children:[m?.title?(0,i.jsx)(n.ModalHeader,{children:m.title}):null,!g&&!c?(0,i.jsx)(J,{onClick:o}):null,p&&!l?(0,i.jsx)(n.ModalCloseButton,{onClick:t}):null]}):null,m?.description?(0,i.jsx)(n.Text,{fontSize:{base:14,md:16},fontWeight:400,px:4,children:m?.description}):null,(0,i.jsx)(h.motion.div,{initial:`hidden`,animate:`visible`,style:{width:`100%`},children:m.content},m.key)]})})}):null},Qc=({document:e,register:t,isText:r=!1})=>{let{t:a}=(0,l.useTranslation)(),{darkMode:o}=$(),s=e.displayName??a(`Policy`),c=o?`whiteAlpha.400`:`blackAlpha.400`,u=o?`blue.300`:`blue.500`,d=o?`blue.200`:`blue.700`,f=(()=>{if(!e.documentType)return s;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 r?(0,i.jsxs)(n.Link,{href:e.url,isExternal:!0,color:`blue.500`,textDecoration:`underline`,_hover:{color:`blue.300`,textDecoration:`underline`},fontWeight:`medium`,display:`contents`,alignItems:`center`,children:[(0,i.jsx)(n.Input,{...t(e.id,{required:e.required}),type:`checkbox`,hidden:!0}),f,(0,i.jsx)(n.Icon,{as:g.LuExternalLink,ml:1,boxSize:3})]},e.id):(0,i.jsx)(n.HStack,{width:`full`,borderRadius:`md`,transition:`all 0.2s`,children:(0,i.jsxs)(n.HStack,{align:`flex-start`,spacing:3,width:`full`,children:[(0,i.jsx)(n.Checkbox,{mt:`2px`,size:`md`,colorScheme:`blue`,borderColor:c,...t(e.id,{required:e.required}),"data-testid":`tnc-checkbox`}),(0,i.jsxs)(n.Text,{fontSize:`xs`,children:[a(`I have read and agree to `),(0,i.jsxs)(n.Link,{href:e.url,isExternal:!0,color:u,textDecoration:`underline`,_hover:{color:d,textDecoration:`underline`},fontWeight:`medium`,display:`contents`,alignItems:`center`,children:[f,(0,i.jsx)(n.Icon,{as:g.LuExternalLink,ml:1})]}),e.required&&(0,i.jsx)(n.Text,{as:`span`,color:`red.500`,fontWeight:`bold`,children:`*`})]})]})},e.id)},$c=({onAgree:e,onReject:t,onlyOptionalDocuments:a=!1})=>{let{t:o}=(0,l.useTranslation)(),{darkMode:s}=$(),{documentsNotAgreed:c}=ll(),{requiredDocuments:u,optionalDocuments:d}=(0,r.useMemo)(()=>c.reduce((e,t)=>(t.required?e.requiredDocuments.push(t):e.optionalDocuments.push(t),e),{requiredDocuments:[],optionalDocuments:[]}),[c]),{handleSubmit:f,register:p,formState:{isValid:m},watch:h}=(0,D.useForm)({defaultValues:(0,r.useMemo)(()=>c.reduce((e,t)=>(e[t.id]=t.required,e),{}),[c])}),g=h(),_=(0,r.useMemo)(()=>c.filter(e=>g[e.id]),[c,g]),v=c?.length===_.length,y=(0,r.useCallback)(t=>{let n=new Set(Object.entries(t).filter(([e,t])=>t).map(([e])=>e));return e(c.filter(e=>n.has(e.id)))},[c,e]),b=s?`#3a3a3a`:`#eaeaea`,x=s?`#2a2a2a`:`#f5f5f5`,S=s?`gray.300`:`gray.600`,C=s?`0 2px 8px rgba(0, 0, 0, 0.2)`:`0 2px 8px rgba(0, 0, 0, 0.05)`,w=u.length>0,T=d.length>0,E=(0,r.useMemo)(()=>{let e=d.filter(e=>g[e.id]).length;return o(v?`Accept all`:a&&e===0?`Ignore and continue`:w&&!T||w&&e===0?`Accept`:`Accept selected`)},[a,v,d,g]),O=e=>e===u.length-2&&u.length>1?o(` and `):`, `;return(0,i.jsx)(n.Stack,{width:`full`,children:(0,i.jsxs)(`form`,{onSubmit:f(y),children:[(0,i.jsx)(Y,{children:(0,i.jsx)(n.ModalHeader,{children:o(`Terms and Policies`)})}),(0,i.jsx)(n.ModalBody,{children:(0,i.jsxs)(n.VStack,{align:`stretch`,spacing:5,width:`full`,children:[w&&(0,i.jsxs)(n.Text,{as:`span`,fontSize:`sm`,children:[o(`By continuing, you agree to`),` `,u.map((e,t)=>(0,i.jsxs)(r.Fragment,{children:[(0,i.jsx)(Qc,{document:e,register:p,isText:!0},e.id),t<u.length-1?O(t):null]},e.id)),`.`,` `,o(`Please take a moment to review all the policies, with acceptance being mandatory to continue.`)]}),a&&(0,i.jsx)(n.Text,{fontSize:`sm`,color:S,mb:3,children:(0,i.jsx)(l.Trans,{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:(0,i.jsx)(n.Text,{as:`span`,fontWeight:`semibold`,color:S})}})}),T&&(0,i.jsxs)(n.Stack,{p:4,borderRadius:`xl`,bg:x,borderWidth:`1px`,borderColor:b,boxShadow:C,spacing:5,children:[(0,i.jsx)(n.Text,{fontSize:`md`,fontWeight:`bold`,color:S,children:o(`Optional`)}),(0,i.jsx)(n.VStack,{align:`stretch`,spacing:4,children:d.map(e=>(0,i.jsx)(Qc,{document:e,register:p},e.id))})]})]})}),(0,i.jsx)(n.ModalFooter,{children:(0,i.jsxs)(n.VStack,{width:`full`,spacing:3,children:[(0,i.jsx)(n.Button,{variant:`vechainKitPrimary`,width:`full`,type:`submit`,isDisabled:!m,"data-testid":`accept-tnc-button`,children:E}),!a&&(0,i.jsx)(n.Button,{variant:`ghost`,width:`full`,onClick:t,"data-testid":`reject-tnc-button`,colorScheme:`red`,children:o(`Reject and logout`)})]})})]})})};var el=function(e){return e.REVIEW_DOCUMENTS=`REVIEW_DOCUMENTS`,e.REJECT_DOCUMENTS=`REJECT_DOCUMENTS`,e}(el||{});const tl=({isOpen:e,onAgree:t,handleLogout:a,onlyOptionalDocuments:o})=>{let{t:s}=(0,l.useTranslation)(),{activeStep:c,goToPrevious:u,setActiveStep:d,goToNext:f}=(0,n.useSteps)({index:0,count:Object.keys(el).length}),p=()=>{d(0)},m=()=>{f()},h=()=>{a(),p()};return(0,i.jsx)(Zc,{isOpen:e,onClose:()=>{},goToPrevious:u,goToNext:f,setActiveStep:d,steps:(0,r.useMemo)(()=>[{key:el.REVIEW_DOCUMENTS,content:(0,i.jsx)($c,{onAgree:t,onReject:m,onlyOptionalDocuments:o})},{key:el.REJECT_DOCUMENTS,content:(0,i.jsx)(zi,{onDisconnect:h,onBack:u,onClose:u,text:s(`Are you sure you want to reject the policies and disconnect?`),showCloseButton:!1})}],[$c,zi,t,h]),disableCloseButton:!0,disableBackButton:!0,isCloseable:!1,closeOnOverlayClick:!1,activeStep:c})},nl=`vechain-kit-legal-documents`,rl=`vechain-kit-legal-documents-optional-reject`,il=e=>`${e.documentType}-${e.url.replace(/[^\w-]+/g,`-`)}-v${e.version}`,al=e=>e.map(e=>({...e,id:il(e)})),ol=e=>e.filter(e=>!e.required),sl=(e,t)=>{let n=Date.now();return e.map(e=>({...e,walletAddress:t,timestamp:n}))},cl=(0,r.createContext)(void 0),ll=()=>(0,r.useContext)(cl)||{hasAgreedToRequiredDocuments:!0,agreements:[],walletAddress:void 0,documents:[],documentsNotAgreed:[]},ul=({children:e})=>{let{connection:n,account:a,disconnect:o}=X(),{darkMode:s,legalDocuments:c,theme:l}=$(),[u,d]=Ec(`vechain-kit-legal-documents`,[]),[f,p]=Ec(`vechain-kit-legal-documents-optional-reject`,[]),[m,h]=(0,r.useState)(!1),g=(0,r.useCallback)((e,n)=>f.some(r=>t.k(r.walletAddress,n)&&r.id===e.id),[f]),[_,v]=(0,r.useMemo)(()=>{let e=al([{items:c?.cookiePolicy||[],type:t.y.COOKIES,source:t.v.APPLICATION},{items:c?.privacyPolicy||[],type:t.y.PRIVACY,source:t.v.APPLICATION},{items:c?.termsAndConditions||[],type:t.y.TERMS,source:t.v.APPLICATION}].flatMap(e=>e.items.map(t=>({...t,documentType:e.type,documentSource:e.source}))));return[e,e.filter(e=>e.required)]},[c]),y=(0,r.useMemo)(()=>a?.address?_.filter(e=>u.some(n=>t.k(n.walletAddress,a.address)&&n.id===e.id)?!1:!f.some(n=>t.k(n.walletAddress,a.address)&&n.id===e.id)):[],[_,a?.address,u,f]),b=(0,r.useMemo)(()=>!v.length||!a?.address?!0:v.every(e=>u.some(n=>t.k(n.walletAddress,a.address)&&n.id===e.id)),[v,u,a?.address]),x=(0,r.useMemo)(()=>{if(!a?.address||!y?.length)return!1;let e=ol(y);return e.length===0?!1:e.some(e=>!g(e,a.address))},[y,a?.address,ol,g]),S=(0,r.useMemo)(()=>b&&x,[b,x]);(0,r.useMemo)(()=>{let e=new Set(u.map(e=>e.id));return _.some(t=>e.has(t.id))},[_,u]),(0,r.useEffect)(()=>{n.isConnected&&a?.address?h(!b||x):h(!1)},[n.isConnected,a?.address,b,x]);let C=(0,r.useCallback)((e,n)=>{let r=Array.isArray(e)?e:[e];if(!r.length)return;let i=sl(r,n);d([...u.filter(e=>!t.k(e.walletAddress,n)||!r.some(t=>t.id===e.id)),...i])},[u,sl]),w=(0,r.useCallback)(e=>{if(!a?.address)return;let t=ol(y);if(t.length===0)return;let n=e.map(e=>e.id),r=t.filter(e=>!n.includes(e.id));if(!r?.length)return;let i=sl(r,a.address);p(e=>[...e,...i])},[a?.address,y,ol,sl]),T=(0,r.useCallback)(e=>{if(!a?.address)return;let t=Array.isArray(e)?e:[e];t.length>0&&C(t,a.address),w(t),h(!1)},[a?.address,C,w]);return(0,i.jsxs)(cl.Provider,{value:{hasAgreedToRequiredDocuments:b,agreements:u,walletAddress:a?.address,documents:_,documentsNotAgreed:y},children:[e,(0,i.jsx)(lo,{darkMode:s,theme:l,children:(0,i.jsx)(tl,{isOpen:m,onAgree:T,handleLogout:S?()=>{}:()=>{o(),h(!1)},onlyOptionalDocuments:S})})]})},dl=(0,r.createContext)(null),fl=({children:e,nodeUrl:n,delegatorUrl:a=t.st(),delegateAllTransactions:o,genericDelegator:s})=>{let{signTypedData:c,exportWallet:l,signMessage:d}=(0,u.usePrivy)(),{signTypedData:f,signMessage:p}=Vn(),{connection:m,connectedWallet:h}=X(),{network:g}=$(),{data:_}=Us(h?.address??``),{data:v}=As(_?.address??``,h?.address??``),{data:y}=Fs(h?.address??``),{buildClausesWithAuth:b}=Sc(),{sendTransactionUsingGenericDelegator:x}=Pc(),S=L.ThorClient.at(n),C=async(e,r,i,o)=>{if(!_?.address)throw Error(`Smart account address is not set`);let s=new L.VeChainProvider(S,i??new L.ProviderInternalBaseWallet([{privateKey:Buffer.from(t.V.privateKey.slice(2),`hex`),address:t.V.address}],{gasPayer:{gasPayerServiceUrl:r??a}}),!0),c=o??await s.getSigner(t.V.address),l=L.signerUtils.transactionBodyToTransactionRequestInput(e,t.V.address),u=await c.signTransaction(l),d=new URL(`transactions`,n),{id:f}=await fetch(d,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({raw:u})}).then(e=>e.json());return f},w=(0,r.useCallback)(async({txClauses:e=[],title:n=`Sign Transaction`,description:r,buttonText:i=`Sign`,delegationUrl:o})=>{if(!_||_&&!_.address||!h||h&&!h.address)throw Error(`Address or embedded wallet is missing`);if(s&&!o)return await x({clauses:e,genericDelegatorUrl:a??``});let c=await b({clauses:e,smartAccount:_,version:v?.version??(y?1:3),title:n,description:r,buttonText:i}),l={clauses:c,simulateTransactionOptions:{caller:t.V.address}},u=await S.transactions.simulateTransaction(l.clauses,{...l.simulateTransactionOptions});for(let e=0;e<u.length;e++)if(u[e].reverted)return console.error(`simulatedTx1[i].vmError: ${u[e].vmError}`),u[e].vmError;return await C(await jc(c,S,t.V,!0),o)},[x,s,_,h,a,b,y,v,S]);return(0,i.jsx)(dl.Provider,{value:{accountFactory:t.bt(g.type).accountFactoryAddress,sendTransaction:w,signMessage:async e=>m.isConnectedWithCrossApp?await p(e):(await d({message:e})).signature,signTypedData:async e=>m.isConnectedWithCrossApp?await f({...e,address:h?.address,types:Object.fromEntries(Object.entries(e.types).map(([e,t])=>[e,[...t]]))}):(await c(e)).signature,exportWallet:l,delegateAllTransactions:o},children:e})},pl=()=>{let e=(0,r.useContext)(dl);if(!e)throw Error(`usePrivyWalletProvider must be used within a PrivyWalletProvider`);return e},ml=(0,r.createContext)(null),$=()=>{let e=(0,r.useContext)(ml);if(!e)throw Error(`useVeChainKitConfig must be used within VeChainKit`);return e},hl=e=>{let n=[],r={...e};if(r.dappKit||={allowedWallets:[`veworld`]},(r.privy!==void 0||r.loginMethods?.some(e=>e.method===`vechain`||e.method===`ecosystem`))&&(r.feeDelegation?!r.feeDelegation.delegatorUrl&&!r.feeDelegation.genericDelegatorUrl&&(r.feeDelegation.genericDelegatorUrl=t.st()):r.feeDelegation={genericDelegatorUrl:t.st()}),!r.network||!r.network.type)r.network={type:`main`};else{let e=r.network.type;[`main`,`test`,`solo`].includes(e)||n.push(`network.type must be either "main", "test" or "solo"`)}if(r.loginMethods||=[{method:`vechain`,gridColumn:4},{method:`ecosystem`,gridColumn:4},{method:`dappkit`,gridColumn:4}],r.loginMethods&&!r.privy){let e=r.loginMethods.filter(e=>[`email`,`google`,`passkey`,`more`].includes(e.method));e.length>0&&n.push(`Login methods ${e.map(e=>`"${e.method}"`).join(`, `)} require Privy configuration. Please either remove these methods or configure the privy prop.`)}if(r?.legalDocuments&&(r.legalDocuments.termsAndConditions&&r.legalDocuments.termsAndConditions.forEach(e=>{t.i(e.url)||n.push(`legalDocuments.termsAndConditions.url is invalid: ${e.url}`)}),r.legalDocuments.privacyPolicy&&r.legalDocuments.privacyPolicy.forEach(e=>{t.i(e.url)||n.push(`legalDocuments.privacyPolicy.url is invalid: ${e.url}`)}),r.legalDocuments.cookiePolicy&&r.legalDocuments.cookiePolicy.forEach(e=>{t.i(e.url)||n.push(`legalDocuments.cookiePolicy.url is invalid: ${e.url}`)})),n.length>0)throw Error(`VeChainKit Configuration Error:
219
219
  `+n.join(`
220
- `));return r},nl=`vechain_kit_currency`,rl=e=>{let{children:n,privy:a,feeDelegation:o,dappKit:s,loginModalUI:c,loginMethods:l,darkMode:u=!1,i18n:m,language:h=`en`,network:g,allowCustomTokens:_,allowCommunityTokens:v=!1,legalDocuments:y,defaultCurrency:b=`usd`,theme:x,onLanguageChange:S,onCurrencyChange:C}=tl(e),w=g?.type??`main`,T=g?.nodeUrl??t.bt(w).nodeUrl,E={...g,type:w,nodeUrl:T},D=s??{allowedWallets:[`veworld`]},[O,k]=(0,r.useState)(()=>typeof window<`u`&&t.dt(`i18nextLng`)||h),[A,j]=(0,r.useState)(()=>{try{return t.dt(nl)||b}catch{return b}}),M=(0,r.useRef)(!1),N=(0,r.useRef)(!1),P=l,F=(0,r.useMemo)(()=>P?.find(e=>e.method===`ecosystem`)?.allowedApps??t.Y.map(e=>e.id),[P]),I,L;a?(I=a.appId,L=a.clientId):(I=`clzdb5k0b02b9qvzjm6jpknsc`,L=`client-WY2oy87y6KNrHFnpXuwVsiFMkwPZKTYpExtjvUQuMbCMF`),(0,r.useEffect)(()=>{(async()=>{try{let e=(typeof window<`u`?t.dt(`i18nextLng`):null)||O;await ie(U),m&&Object.keys(m).forEach(e=>{U.addResourceBundle(e,`translation`,m[e],!0,!0)});let n=V.includes(e)?e:V.includes(e.split(`-`)[0])?e.split(`-`)[0]:null;if(n&&U.language!==n){M.current=!0;try{await ne(n),U.changeLanguage(n),n!==O&&k(n)}finally{M.current=!1}}}catch(e){console.error(`[VeChainKit] Failed to initialize i18n:`,e)}})()},[]),(0,r.useEffect)(()=>{let e=typeof window<`u`?t.dt(`i18nextLng`):null;h&&!e&&h!==O&&(M.current=!0,ne(h).then(()=>{U.changeLanguage(h),k(h)}).catch(e=>{console.error(`[VeChainKit] Failed to sync language prop "${h}":`,e)}).finally(()=>{M.current=!1}))},[h,O]),(0,r.useEffect)(()=>{let e=e=>{!M.current&&e!==O&&(k(e),S?.(e))};return U.on(`languageChanged`,e),()=>{U.off(`languageChanged`,e)}},[O,S]),(0,r.useEffect)(()=>{let e=t.dt(nl);b&&!e&&b!==A&&(N.current=!0,j(b),t.yt(nl,b),N.current=!1)},[b,A]),(0,r.useEffect)(()=>{let e=()=>{try{let e=t.dt(nl);if(e&&e!==A&&!N.current){let t=e;j(t),C?.(t)}}catch{}};e();let n=t=>{t.key===nl&&t.newValue&&e()};window.addEventListener(`storage`,n);let r=setInterval(e,500);return()=>{window.removeEventListener(`storage`,n),clearInterval(r)}},[A,C]);let R=e=>{M.current=!0,ne(e).then(()=>{U.changeLanguage(e),k(e)}).catch(t=>{console.error(`[VeChainKit] Failed to set language "${e}":`,t)}).finally(()=>{M.current=!1})},z=e=>{N.current=!0,j(e),t.yt(nl,e),N.current=!1};(0,r.useEffect)(()=>{t.yt(t.rt.NETWORK,w)},[w]);let B=(0,r.useMemo)(()=>me(pe(u),he(x,u)),[x,u]),ee=(0,r.useMemo)(()=>_e(B,u),[B,u]),H=(0,r.useMemo)(()=>ve(B,u),[B,u]);return(0,r.useEffect)(()=>{let e=ge(B.colors.background.card,u),t=ge(B.colors.background.cardElevated,u),n=u?`transparent`:`#ffffff`,r=u?`transparent`:`#ffffff`,i=u?`transparent`:`#ffffff`;be(H,B.effects.backdropFilter.modal,e,t,n,r,i,B.colors.border.default)},[H,B.effects.backdropFilter.modal,B.colors.background.card,B.colors.background.cardElevated,B.colors.border.default,u]),(0,r.useEffect)(()=>{ye()},[]),(0,i.jsxs)(Ce,{children:[(0,i.jsx)(f.ReactQueryDevtools,{initialIsOpen:!1}),(0,i.jsx)(Tn,{privyEcosystemAppIDS:F,children:(0,i.jsx)(el.Provider,{value:{privy:a,privyEcosystemAppIDS:F,feeDelegation:o,dappKit:D,loginModalUI:c,loginMethods:P,darkMode:u,i18n:m,currentLanguage:O,network:E,allowCustomTokens:_,allowCommunityTokens:v,legalDocuments:y,currentCurrency:A,theme:x,setLanguage:R,setCurrency:z},children:(0,i.jsx)(d.PrivyProvider,{appId:I,clientId:L,config:{loginMethodsAndOrder:{primary:a?.loginMethods.slice(0,4)??[],overflow:a?.loginMethods.slice(4)??[]},externalWallets:{walletConnect:{enabled:!1}},appearance:{theme:u?`dark`:`light`,accentColor:a?.appearance.accentColor??(B.buttons.primaryButton.bg?.startsWith(`#`)?B.buttons.primaryButton.bg:u?`#3182CE`:`#2B6CB0`),loginMessage:a?.appearance.loginMessage,logo:a?.appearance.logo},embeddedWallets:{createOnLogin:a?.embeddedWallets?.createOnLogin??`all-users`},passkeys:{shouldUnlinkOnUnenrollMfa:!1},customOAuthRedirectUrl:a?.customOAuthRedirectUrl},children:(0,i.jsx)(p.DAppKitProvider,{node:E.nodeUrl,alwaysShowConnect:!0,v2Api:{enabled:D.v2Api?.enabled??!0,external:D.v2Api?.external??!1},language:O,logLevel:D.logLevel,modalParent:D.modalParent,onSourceClick:D.onSourceClick,usePersistence:D.usePersistence??!0,allowedWallets:D.allowedWallets,walletConnectOptions:D.walletConnectOptions,themeMode:u?`DARK`:`LIGHT`,themeVariables:D.themeVariables?{...ee,...D.themeVariables}:ee,children:(0,i.jsx)(Qc,{nodeUrl:E.nodeUrl,delegatorUrl:o?.delegatorUrl??o?.genericDelegatorUrl,delegateAllTransactions:o?.delegateAllTransactions??!1,genericDelegator:!!(!o?.delegatorUrl&&o?.genericDelegatorUrl),children:(0,i.jsx)(Za,{children:(0,i.jsx)(Xc,{children:n})})})})})})})]})};exports.AccountAvatar=Oc,exports.AccountCustomizationModalProvider=So,exports.AccountDetailsButton=Kr,exports.AccountMainContent=Or,exports.AccountModal=aa,exports.AccountModalProvider=to,exports.AccountSelector=qr,exports.ActionButton=Q,exports.AddressDisplay=we,exports.AddressDisplayCard=Tc,exports.AssetButton=wc,exports.AssetsContent=li,exports.BalanceSection=Yr,exports.BaseModal=Pe,exports.BetterSwapLogo=e.n,exports.BridgeContent=di,exports.CURRENCY_SYMBOLS=t.C,exports.ChangeCurrencyContent=fi,exports.ChooseNameContent=Rr,exports.ChooseNameModalProvider=lo,exports.ChooseNameSearchContent=Hr,exports.ChooseNameSummaryContent=Ur,exports.ColorModeSync=qa,exports.ConnectModal=la,exports.ConnectModalProvider=$a,exports.ConnectPopover=da,exports.ConnectionButton=ua,exports.CrossAppConnectionSecurityCard=ni,exports.CustomizationContent=ri,exports.CustomizationSummaryContent=ii,Object.defineProperty(exports,`DAppKitWalletButton`,{enumerable:!0,get:function(){return p.WalletButton}}),exports.DappKitButton=Cr,exports.DisconnectConfirmContent=wi,exports.DomainRequiredAlert=ti,exports.ENS_TEXT_RECORDS=t.S,exports.EcosystemButton=Er,exports.EcosystemContent=ca,exports.EmailLoginButton=_r,exports.ErrorContent=sa,exports.ExchangeWarningAlert=ei,exports.ExploreEcosystemModalProvider=go,exports.FAQContent=Gr,exports.FAQModalProvider=bo,exports.FeatureAnnouncementCard=$r,exports.GasFeeSummary=Mc,exports.GasFeeTokenSelector=jc,exports.GasTokenSettingsContent=gi,exports.GitHubLogo=e.X,exports.GoogleLogo=e.Z,exports.InlineFeedback=Fc,exports.LanguageSettingsContent=pi,exports.LegalDocumentItem=Rc,exports.LegalDocumentSource=t.v,exports.LegalDocumentType=t.y,exports.LegalDocumentsModal=Vc,exports.LegalDocumentsProvider=Xc,exports.LoadingContent=oa,exports.LocalStorageKey=lc,exports.LoginWithGithubButton=yr,exports.LoginWithGoogleButton=vr,exports.MAX_IMAGE_SIZE=Ln,exports.MainContent=Dr,exports.ManageCustomTokenContent=ui,exports.ModalBackButton=J,exports.ModalFAQButton=Ec,exports.ModalNotificationButton=Ac,exports.ModalProvider=Za,exports.NFTMediaType=t.w,exports.NotificationsModalProvider=vo,exports.PRICE_FEED_IDS=Ft,exports.PasskeyLoginButton=Sr,exports.PrivyButton=wr,exports.PrivyLogo=e.i,exports.PrivyWalletProvider=Qc,exports.ProfileContent=si,exports.ProfileModalProvider=ko,exports.QuickActionsSection=Qr,exports.ReceiveModalProvider=wo,exports.ReceiveTokenContent=Nr,exports.RemoveWalletConfirmContent=Oi,exports.ScrollToTopWrapper=Dc,exports.SelectTokenContent=kr,exports.SelectWalletContent=Di,exports.SendTokenContent=jr,exports.SendTokenModalProvider=fo,exports.SendTokenSummaryContent=Mr,exports.SettingsContent=_i,exports.SettingsModalProvider=jo,exports.ShareButtons=ea,exports.SocialIcons=ha,exports.StickyFooterContainer=je,exports.StickyHeaderContainer=Y,exports.SwapTokenContent=Lr,exports.SwapTokenModalProvider=mo,exports.TermsAndPrivacyContent=Ci,Object.defineProperty(exports,`ThorClient`,{enumerable:!0,get:function(){return R.ThorClient}}),exports.TransactionButtonAndStatus=kc,exports.TransactionModal=na,exports.TransactionModalContent=ta,exports.TransactionModalProvider=ro,exports.TransactionToast=_a,exports.TransactionToastProvider=ao,exports.TwitterLogo=e.Y,exports.UpgradeSmartAccountContent=ci,exports.UpgradeSmartAccountModal=ba,exports.UpgradeSmartAccountModalProvider=Do,exports.VETLogo=e.P,exports.VTHOLogo=e.N,exports.VeBetterIcon=e.F,exports.VeBetterIconDark=e.I,exports.VeBetterIconLight=e.L,exports.VeBetterLogo=e.R,exports.VeBetterLogoDark=e.z,exports.VeBetterLogoLight=e.B,exports.VeChainKitContext=el,exports.VeChainKitProvider=rl,exports.VeChainLoginButton=xr,exports.VeChainWithPrivyLoginButton=br,exports.VePassportUserStatus=t.T,exports.VeTradeLogo=e.t,exports.VeWorldLogoDark=e.j,exports.VeWorldLogoLight=e.M,exports.VechainEnergy=e.r,exports.VechainIcon=e.V,exports.VechainIconDark=e.H,exports.VechainIconLight=e.U,exports.VechainKitThemeProvider=Ja,exports.VechainLogo=e.J,exports.VechainLogoDark=e.q,exports.VechainLogoHorizontalDark=e.G,exports.VechainLogoHorizontalLight=e.W,exports.VechainLogoLight=e.K,exports.VersionFooter=Oe,exports.WalletButton=ma,exports.WalletModalProvider=so,exports.WalletSwitchFeedback=Ic,exports.buildBatchAuthorizationTypedData=ac,exports.buildCallClauses=t.t,exports.buildClauses=gt,exports.buildERC20Clauses=Js,exports.buildSingleAuthorizationTypedData=oc,exports.buildVETClauses=Xs,exports.buildVetDomainClauses=Qe,exports.calculateTotalCost=t.b,exports.compressImages=Wn,exports.currentBlockQueryKey=Rs,exports.decodeEventLog=nc,exports.decodeRawTx=yc,exports.delegateAuthorized=gc,exports.estimateAndBuildTxBody=_c,exports.estimateGas=mc,exports.executeCallClause=t.n,exports.executeMultipleClausesCall=t.r,exports.fetchAppHubApps=Uo,exports.fetchPrivyAppInfo=Fe,exports.fetchPrivyStatus=Re,exports.formatGasCost=t.x,exports.getAccountAddress=ds,exports.getAccountAddressQueryKey=fs,exports.getAccountBalance=ns,exports.getAccountBalanceQueryKey=rs,exports.getAccountImplementationAddress=as,exports.getAccountImplementationAddressQueryKey=os,exports.getAccountVersionQueryKey=hs,exports.getAllEventLogs=Ks,exports.getAppHubAppsQueryKey=Ho,exports.getAvatarLegacy=Dt,exports.getAvatarLegacyQueryKey=Ot,exports.getAvatarOfAddressQueryKey=Ct,exports.getAvatarQueryKey=lt,exports.getB3trBalanceQueryKey=nn,exports.getCallClauseQueryKey=Go,exports.getCallClauseQueryKeyWithArgs=qo,exports.getChainId=Vs,exports.getChainIdQueryKey=Hs,exports.getConfig=t.bt,exports.getCurrentAccountImplementationVersion=cs,exports.getCurrentAccountImplementationVersionQueryKey=ls,exports.getCurrentAllocationsRoundIdQueryKey=Xt,exports.getCustomTokenBalanceQueryKey=an,exports.getCustomTokenInfoQueryKey=$t,exports.getDepositAccount=hc,exports.getDomainsOfAddress=ot,exports.getDomainsOfAddressQueryKey=st,exports.getEnsRecordExistsQueryKey=He,exports.getErc20BalanceQueryKey=sn,exports.getEventLogs=Gs,exports.getEventsKey=rc,exports.getHasV1SmartAccount=ys,exports.getHasV1SmartAccountQueryKey=bs,exports.getIpfsImage=Rn,exports.getIpfsImageQueryKey=zn,exports.getIpfsMetadata=Pn,exports.getIpfsMetadataQueryKey=Fn,exports.getIsDeployed=Ss,exports.getIsDeployedQueryKey=Cs,exports.getIsDomainProtectedQueryKey=et,exports.getIsPersonQueryKey=dn,exports.getPrivyAppInfoQueryKey=Ie,exports.getResolverAddressQueryKey=vt,exports.getRoundXAppsQueryKey=hn,exports.getSmartAccount=Ds,exports.getSmartAccountQueryKey=Os,exports.getTextRecords=ft,exports.getTextRecordsQueryKey=pt,exports.getTokenInfo=Qt,exports.getTokenUsdPrice=It,exports.getTokenUsdPriceQueryKey=Lt,exports.getUpgradeRequired=As,exports.getUpgradeRequiredForAccount=Ns,exports.getUpgradeRequiredForAccountQueryKey=Ps,exports.getUpgradeRequiredQueryKey=js,exports.getVechainDomainQueryKey=X,exports.getVot3BalanceQueryKey=ln,exports.getXAppMetadata=jn,exports.getXAppsSharesQueryKey=yn,exports.imageCompressionOptions=Un,exports.signVip191Transaction=vc,exports.txReceiptQueryKey=ec,exports.useAccountBalance=is,exports.useAccountCustomizationModal=xo,exports.useAccountImplementationAddress=ss,exports.useAccountModal=eo,exports.useAccountModalOptions=Ar,exports.useAppHubApps=Wo,exports.useBuildClauses=cc,exports.useBuildTransaction=Qs,exports.useCallClause=Jo,exports.useChooseNameModal=co,exports.useClaimVeWorldSubdomain=Ye,exports.useClaimVetDomain=$e,exports.useConnectModal=Qa,exports.useCrossAppConnectionCache=Lo,exports.useCurrency=Gt,exports.useCurrentAccountImplementationVersion=us,exports.useCurrentAllocationsRoundId=Zt,exports.useCurrentBlock=Bs,exports.useCurrentCurrency=Zo,exports.useCurrentLanguage=Xo,exports.useCustomTokens=tn,Object.defineProperty(exports,`useDAppKitWallet`,{enumerable:!0,get:function(){return p.useWallet}}),Object.defineProperty(exports,`useDAppKitWalletModal`,{enumerable:!0,get:function(){return p.useWalletModal}}),exports.useEcosystemShortcuts=pc,exports.useEnsRecordExists=Ue,exports.useEstimateAllTokens=Cc,exports.useEvents=ic,exports.useExploreEcosystemModal=ho,exports.useFAQModal=yo,exports.useFeatureAnnouncement=Qo,exports.useFetchAppInfo=Le,exports.useFetchPrivyStatus=ze,exports.useGasEstimate=qn,exports.useGasTokenSelection=xc,exports.useGenericDelegator=bc,exports.useGenericDelegatorFeeEstimation=Sc,exports.useGetAccountAddress=ps,exports.useGetAccountVersion=gs,exports.useGetAvatar=ut,exports.useGetAvatarLegacy=At,exports.useGetAvatarOfAddress=wt,exports.useGetB3trBalance=rn,exports.useGetChainId=Us,exports.useGetCustomTokenBalances=on,exports.useGetCustomTokenInfo=en,exports.useGetDomainsOfAddress=ct,exports.useGetErc20Balance=cn,exports.useGetNodeUrl=$o,exports.useGetResolverAddress=yt,exports.useGetTextRecords=mt,exports.useGetTokenUsdPrice=Rt,exports.useGetVot3Balance=un,exports.useHasV1SmartAccount=xs,exports.useIpfsImage=Bn,exports.useIpfsImageList=Vn,exports.useIpfsMetadata=In,exports.useIpfsMetadatas=Hn,exports.useIsDomainProtected=rt,exports.useIsPWA=es,exports.useIsPerson=fn,exports.useIsSmartAccountDeployed=ws,exports.useLegalDocuments=Yc,exports.useLocalStorage=uc,exports.useLoginModalContent=To,exports.useLoginWithOAuth=Io,exports.useLoginWithPasskey=Po,exports.useLoginWithVeChain=Ro,Object.defineProperty(exports,`useMfaEnrollment`,{enumerable:!0,get:function(){return d.useMfaEnrollment}}),exports.useModal=Xa,exports.useMostVotedAppsInRound=xn,exports.useMultipleClausesCall=Yo,exports.useNotificationAlerts=Li,exports.useNotifications=Ri,exports.useNotificationsModal=_o,Object.defineProperty(exports,`usePrivy`,{enumerable:!0,get:function(){return d.usePrivy}}),exports.usePrivyWalletProvider=$c,exports.useProfileModal=Oo,exports.useReceiveModal=Co,exports.useRefreshBalances=kn,exports.useRefreshFactoryQueries=Ts,exports.useRefreshMetadata=We,exports.useRefreshSmartAccountQueries=Es,exports.useRoundXApps=gn,exports.useScrollToTop=ts,exports.useSendTokenModal=uo,exports.useSendTransaction=Jn,Object.defineProperty(exports,`useSetWalletRecovery`,{enumerable:!0,get:function(){return d.useSetWalletRecovery}}),exports.useSettingsModal=Ao,exports.useSignMessage=Mo,exports.useSignTypedData=No,exports.useSingleImageUpload=Kn,exports.useSmartAccount=ks,exports.useStickyHeaderContext=Ae,exports.useSwapQuotes=hr,exports.useSwapTokenModal=po,exports.useSwapTransaction=Yn,exports.useSwitchWallet=An,exports.useSyncableLocalStorage=fc,Object.defineProperty(exports,`useThor`,{enumerable:!0,get:function(){return p.useThor}}),exports.useTokenBalances=Pt,exports.useTokenPrices=zt,exports.useTokensWithValues=Kt,exports.useTotalBalance=qt,exports.useTransactionModal=no,exports.useTransactionToast=io,exports.useTransferERC20=Ys,exports.useTransferVET=Zs,exports.useTxReceipt=tc,exports.useUnsetDomain=Nt,exports.useUpdateTextRecord=_t,exports.useUpgradeRequired=Ms,exports.useUpgradeRequiredForAccount=Fs,exports.useUpgradeSmartAccount=Ls,exports.useUpgradeSmartAccountModal=Eo,exports.useUploadImages=Gn,exports.useVeChainKitConfig=$,exports.useVechainDomain=Be,exports.useVechainKitThemeConfig=Ka,exports.useWallet=Z,exports.useWalletMetadata=Dn,exports.useWalletModal=oo,exports.useWalletStorage=On,exports.useXAppMetadata=Nn,exports.useXAppsShares=bn;
220
+ `));return r},gl=`vechain_kit_currency`,_l=e=>{let{children:n,privy:a,feeDelegation:o,dappKit:s,loginModalUI:c,loginMethods:l,darkMode:p=!1,i18n:m,language:h=`en`,network:g,allowCustomTokens:_,allowCommunityTokens:v=!1,legalDocuments:y,defaultCurrency:b=`usd`,theme:x,onLanguageChange:S,onCurrencyChange:C}=hl(e),w=g?.type??`main`,T=g?.nodeUrl??t.bt(w).nodeUrl,E={...g,type:w,nodeUrl:T},D=s??{allowedWallets:[`veworld`]},[O,k]=(0,r.useState)(()=>typeof window<`u`&&t.dt(`i18nextLng`)||h),[A,j]=(0,r.useState)(()=>{try{return t.dt(gl)||b}catch{return b}}),M=(0,r.useRef)(!1),N=(0,r.useRef)(!1),P=l,F=(0,r.useMemo)(()=>P?.find(e=>e.method===`ecosystem`)?.allowedApps??t.Y.map(e=>e.id),[P]),I,L;a?(I=a.appId,L=a.clientId):(I=`clzdb5k0b02b9qvzjm6jpknsc`,L=`client-WY2oy87y6KNrHFnpXuwVsiFMkwPZKTYpExtjvUQuMbCMF`),(0,r.useEffect)(()=>{me(pe),m&&Object.keys(m).forEach(e=>{pe.addResourceBundle(e,`translation`,m[e],!0,!0)});let e=(typeof window<`u`?t.dt(`i18nextLng`):null)||O;e&&pe.language!==e&&(M.current=!0,pe.changeLanguage(e),e!==O&&k(e),M.current=!1)},[]),(0,r.useEffect)(()=>{let e=typeof window<`u`?t.dt(`i18nextLng`):null;h&&!e&&h!==O&&(M.current=!0,pe.changeLanguage(h),k(h),M.current=!1)},[h,O]),(0,r.useEffect)(()=>{let e=e=>{!M.current&&e!==O&&(k(e),S?.(e))};return pe.on(`languageChanged`,e),()=>{pe.off(`languageChanged`,e)}},[O,S]),(0,r.useEffect)(()=>{let e=t.dt(gl);b&&!e&&b!==A&&(N.current=!0,j(b),t.yt(gl,b),N.current=!1)},[b,A]),(0,r.useEffect)(()=>{let e=()=>{try{let e=t.dt(gl);if(e&&e!==A&&!N.current){let t=e;j(t),C?.(t)}}catch{}};e();let n=t=>{t.key===gl&&t.newValue&&e()};window.addEventListener(`storage`,n);let r=setInterval(e,500);return()=>{window.removeEventListener(`storage`,n),clearInterval(r)}},[A,C]);let R=e=>{M.current=!0,pe.changeLanguage(e),k(e),M.current=!1},z=e=>{N.current=!0,j(e),t.yt(gl,e),N.current=!1};(0,r.useEffect)(()=>{t.yt(t.rt.NETWORK,w)},[w]);let B=(0,r.useMemo)(()=>Oe(De(p),ke(x,p)),[x,p]),ee=(0,r.useMemo)(()=>je(B,p),[B,p]),V=(0,r.useMemo)(()=>Me(B,p),[B,p]);return(0,r.useEffect)(()=>{let e=Ae(B.colors.background.card,p),t=Ae(B.colors.background.cardElevated,p),n=p?`transparent`:`#ffffff`,r=p?`transparent`:`#ffffff`,i=p?`transparent`:`#ffffff`;Pe(V,B.effects.backdropFilter.modal,e,t,n,r,i,B.colors.border.default)},[V,B.effects.backdropFilter.modal,B.colors.background.card,B.colors.background.cardElevated,B.colors.border.default,p]),(0,r.useEffect)(()=>{Ne()},[]),(0,i.jsxs)(Le,{children:[(0,i.jsx)(d.ReactQueryDevtools,{initialIsOpen:!1}),(0,i.jsx)(Bn,{privyEcosystemAppIDS:F,children:(0,i.jsx)(ml.Provider,{value:{privy:a,privyEcosystemAppIDS:F,feeDelegation:o,dappKit:D,loginModalUI:c,loginMethods:P,darkMode:p,i18n:m,currentLanguage:O,network:E,allowCustomTokens:_,allowCommunityTokens:v,legalDocuments:y,currentCurrency:A,theme:x,setLanguage:R,setCurrency:z},children:(0,i.jsx)(u.PrivyProvider,{appId:I,clientId:L,config:{loginMethodsAndOrder:{primary:a?.loginMethods.slice(0,4)??[],overflow:a?.loginMethods.slice(4)??[]},externalWallets:{walletConnect:{enabled:!1}},appearance:{theme:p?`dark`:`light`,accentColor:a?.appearance.accentColor??(B.buttons.primaryButton.bg?.startsWith(`#`)?B.buttons.primaryButton.bg:p?`#3182CE`:`#2B6CB0`),loginMessage:a?.appearance.loginMessage,logo:a?.appearance.logo},embeddedWallets:{createOnLogin:a?.embeddedWallets?.createOnLogin??`all-users`},passkeys:{shouldUnlinkOnUnenrollMfa:!1},customOAuthRedirectUrl:a?.customOAuthRedirectUrl},children:(0,i.jsx)(f.DAppKitProvider,{node:E.nodeUrl,alwaysShowConnect:!0,v2Api:{enabled:D.v2Api?.enabled??!0,external:D.v2Api?.external??!1},language:O,logLevel:D.logLevel,modalParent:D.modalParent,onSourceClick:D.onSourceClick,usePersistence:D.usePersistence??!0,allowedWallets:D.allowedWallets,walletConnectOptions:D.walletConnectOptions,themeMode:p?`DARK`:`LIGHT`,themeVariables:D.themeVariables?{...ee,...D.themeVariables}:ee,children:(0,i.jsx)(fl,{nodeUrl:E.nodeUrl,delegatorUrl:o?.delegatorUrl??o?.genericDelegatorUrl,delegateAllTransactions:o?.delegateAllTransactions??!1,genericDelegator:!!(!o?.delegatorUrl&&o?.genericDelegatorUrl),children:(0,i.jsx)(fo,{children:(0,i.jsx)(ul,{children:n})})})})})})})]})};exports.AccountAvatar=Hc,exports.AccountCustomizationModalProvider=Io,exports.AccountDetailsButton=si,exports.AccountMainContent=Ur,exports.AccountModal=ba,exports.AccountModalProvider=go,exports.AccountSelector=ci,exports.ActionButton=Z,exports.AddressDisplay=Re,exports.AddressDisplayCard=zc,exports.AssetButton=Rc,exports.AssetsContent=wi,exports.BalanceSection=ui,exports.BaseModal=Je,exports.BetterSwapLogo=e.n,exports.BridgeContent=Ei,exports.CURRENCY_SYMBOLS=t.C,exports.ChangeCurrencyContent=Di,exports.ChooseNameContent=$r,exports.ChooseNameModalProvider=wo,exports.ChooseNameSearchContent=ri,exports.ChooseNameSummaryContent=ii,exports.ColorModeSync=co,exports.ConnectModal=wa,exports.ConnectModalProvider=mo,exports.ConnectPopover=Ea,exports.ConnectionButton=Ta,exports.CrossAppConnectionSecurityCard=_i,exports.CustomizationContent=vi,exports.CustomizationSummaryContent=yi,Object.defineProperty(exports,`DAppKitWalletButton`,{enumerable:!0,get:function(){return f.WalletButton}}),exports.DappKitButton=Rr,exports.DisconnectConfirmContent=zi,exports.DomainRequiredAlert=gi,exports.ENS_TEXT_RECORDS=t.S,exports.EcosystemButton=Vr,exports.EcosystemContent=Ca,exports.EmailLoginButton=Mr,exports.ErrorContent=Sa,exports.ExchangeWarningAlert=hi,exports.ExploreEcosystemModalProvider=Ao,exports.FAQContent=oi,exports.FAQModalProvider=Po,exports.FeatureAnnouncementCard=mi,exports.GasFeeSummary=Kc,exports.GasFeeTokenSelector=Gc,exports.GasTokenSettingsContent=ji,exports.GitHubLogo=e.X,exports.GoogleLogo=e.Z,exports.InlineFeedback=Yc,exports.LanguageSettingsContent=Oi,exports.LegalDocumentItem=Qc,exports.LegalDocumentSource=t.v,exports.LegalDocumentType=t.y,exports.LegalDocumentsModal=tl,exports.LegalDocumentsProvider=ul,exports.LoadingContent=xa,exports.LocalStorageKey=Cc,exports.LoginWithGithubButton=Pr,exports.LoginWithGoogleButton=Nr,exports.MAX_IMAGE_SIZE=Qn,exports.MainContent=Hr,exports.ManageCustomTokenContent=Ti,exports.ModalBackButton=J,exports.ModalFAQButton=Bc,exports.ModalNotificationButton=Wc,exports.ModalProvider=fo,exports.NFTMediaType=t.w,exports.NotificationsModalProvider=Mo,exports.PRICE_FEED_IDS=Xt,exports.PasskeyLoginButton=Lr,exports.PrivyButton=zr,exports.PrivyLogo=e.i,exports.PrivyWalletProvider=fl,exports.ProfileContent=Si,exports.ProfileModalProvider=Uo,exports.QuickActionsSection=pi,exports.ReceiveModalProvider=Ro,exports.ReceiveTokenContent=Jr,exports.RemoveWalletConfirmContent=Ui,exports.ScrollToTopWrapper=Vc,exports.SelectTokenContent=Wr,exports.SelectWalletContent=Hi,exports.SendTokenContent=Kr,exports.SendTokenModalProvider=Eo,exports.SendTokenSummaryContent=qr,exports.SettingsContent=Mi,exports.SettingsModalProvider=Go,exports.ShareButtons=ha,exports.SocialIcons=Aa,exports.StickyFooterContainer=Ge,exports.StickyHeaderContainer=Y,exports.SwapTokenContent=Qr,exports.SwapTokenModalProvider=Oo,exports.TermsAndPrivacyContent=Ri,Object.defineProperty(exports,`ThorClient`,{enumerable:!0,get:function(){return L.ThorClient}}),exports.TransactionButtonAndStatus=Uc,exports.TransactionModal=_a,exports.TransactionModalContent=ga,exports.TransactionModalProvider=vo,exports.TransactionToast=Ma,exports.TransactionToastProvider=bo,exports.TwitterLogo=e.Y,exports.UpgradeSmartAccountContent=Ci,exports.UpgradeSmartAccountModal=Fa,exports.UpgradeSmartAccountModalProvider=Vo,exports.VETLogo=e.P,exports.VTHOLogo=e.N,exports.VeBetterIcon=e.F,exports.VeBetterIconDark=e.I,exports.VeBetterIconLight=e.L,exports.VeBetterLogo=e.R,exports.VeBetterLogoDark=e.z,exports.VeBetterLogoLight=e.B,exports.VeChainKitContext=ml,exports.VeChainKitProvider=_l,exports.VeChainLoginButton=Ir,exports.VeChainWithPrivyLoginButton=Fr,exports.VePassportUserStatus=t.T,exports.VeTradeLogo=e.t,exports.VeWorldLogoDark=e.j,exports.VeWorldLogoLight=e.M,exports.VechainEnergy=e.r,exports.VechainIcon=e.V,exports.VechainIconDark=e.H,exports.VechainIconLight=e.U,exports.VechainKitThemeProvider=lo,exports.VechainLogo=e.J,exports.VechainLogoDark=e.q,exports.VechainLogoHorizontalDark=e.G,exports.VechainLogoHorizontalLight=e.W,exports.VechainLogoLight=e.K,exports.VersionFooter=He,exports.WalletButton=ka,exports.WalletModalProvider=So,exports.WalletSwitchFeedback=Xc,exports.buildBatchAuthorizationTypedData=yc,exports.buildCallClauses=t.t,exports.buildClauses=jt,exports.buildERC20Clauses=cc,exports.buildSingleAuthorizationTypedData=bc,exports.buildVETClauses=uc,exports.buildVetDomainClauses=pt,exports.calculateTotalCost=t.b,exports.compressImages=ar,exports.currentBlockQueryKey=Qs,exports.decodeEventLog=gc,exports.decodeRawTx=Nc,exports.delegateAuthorized=Ac,exports.estimateAndBuildTxBody=jc,exports.estimateGas=Oc,exports.executeCallClause=t.n,exports.executeMultipleClausesCall=t.r,exports.fetchAppHubApps=rs,exports.fetchPrivyAppInfo=Ye,exports.fetchPrivyStatus=Qe,exports.formatGasCost=t.x,exports.getAccountAddress=Ts,exports.getAccountAddressQueryKey=Es,exports.getAccountBalance=gs,exports.getAccountBalanceQueryKey=_s,exports.getAccountImplementationAddress=ys,exports.getAccountImplementationAddressQueryKey=bs,exports.getAccountVersionQueryKey=ks,exports.getAllEventLogs=oc,exports.getAppHubAppsQueryKey=ns,exports.getAvatarLegacy=Ht,exports.getAvatarLegacyQueryKey=Ut,exports.getAvatarOfAddressQueryKey=Rt,exports.getAvatarQueryKey=wt,exports.getB3trBalanceQueryKey=vn,exports.getCallClauseQueryKey=as,exports.getCallClauseQueryKeyWithArgs=ss,exports.getChainId=tc,exports.getChainIdQueryKey=nc,exports.getConfig=t.bt,exports.getCurrentAccountImplementationVersion=Ss,exports.getCurrentAccountImplementationVersionQueryKey=Cs,exports.getCurrentAllocationsRoundIdQueryKey=fn,exports.getCustomTokenBalanceQueryKey=bn,exports.getCustomTokenInfoQueryKey=hn,exports.getDepositAccount=kc,exports.getDomainsOfAddress=xt,exports.getDomainsOfAddressQueryKey=St,exports.getEnsRecordExistsQueryKey=rt,exports.getErc20BalanceQueryKey=Sn,exports.getEventLogs=ac,exports.getEventsKey=_c,exports.getHasV1SmartAccount=Ns,exports.getHasV1SmartAccountQueryKey=Ps,exports.getIpfsImage=$n,exports.getIpfsImageQueryKey=er,exports.getIpfsMetadata=Yn,exports.getIpfsMetadataQueryKey=Xn,exports.getIsDeployed=Is,exports.getIsDeployedQueryKey=Ls,exports.getIsDomainProtectedQueryKey=ht,exports.getIsPersonQueryKey=En,exports.getPrivyAppInfoQueryKey=Xe,exports.getResolverAddressQueryKey=Nt,exports.getRoundXAppsQueryKey=An,exports.getSmartAccount=Vs,exports.getSmartAccountQueryKey=Hs,exports.getTextRecords=Dt,exports.getTextRecordsQueryKey=Ot,exports.getTokenInfo=mn,exports.getTokenUsdPrice=Zt,exports.getTokenUsdPriceQueryKey=Qt,exports.getUpgradeRequired=Ws,exports.getUpgradeRequiredForAccount=qs,exports.getUpgradeRequiredForAccountQueryKey=Js,exports.getUpgradeRequiredQueryKey=Gs,exports.getVechainDomainQueryKey=et,exports.getVot3BalanceQueryKey=wn,exports.getXAppMetadata=Kn,exports.getXAppsSharesQueryKey=Pn,exports.imageCompressionOptions=ir,exports.signVip191Transaction=Mc,exports.txReceiptQueryKey=mc,exports.useAccountBalance=vs,exports.useAccountCustomizationModal=Fo,exports.useAccountImplementationAddress=xs,exports.useAccountModal=ho,exports.useAccountModalOptions=Gr,exports.useAppHubApps=is,exports.useBuildClauses=Sc,exports.useBuildTransaction=fc,exports.useCallClause=cs,exports.useChooseNameModal=Co,exports.useClaimVeWorldSubdomain=ut,exports.useClaimVetDomain=mt,exports.useConnectModal=po,exports.useCrossAppConnectionCache=Zo,exports.useCurrency=sn,exports.useCurrentAccountImplementationVersion=ws,exports.useCurrentAllocationsRoundId=pn,exports.useCurrentBlock=ec,exports.useCurrentCurrency=ds,exports.useCurrentLanguage=us,exports.useCustomTokens=_n,Object.defineProperty(exports,`useDAppKitWallet`,{enumerable:!0,get:function(){return f.useWallet}}),Object.defineProperty(exports,`useDAppKitWalletModal`,{enumerable:!0,get:function(){return f.useWalletModal}}),exports.useEcosystemShortcuts=Dc,exports.useEnsRecordExists=it,exports.useEstimateAllTokens=Lc,exports.useEvents=vc,exports.useExploreEcosystemModal=ko,exports.useFAQModal=No,exports.useFeatureAnnouncement=fs,exports.useFetchAppInfo=Ze,exports.useFetchPrivyStatus=$e,exports.useGasEstimate=cr,exports.useGasTokenSelection=Fc,exports.useGenericDelegator=Pc,exports.useGenericDelegatorFeeEstimation=Ic,exports.useGetAccountAddress=Ds,exports.useGetAccountVersion=As,exports.useGetAvatar=Tt,exports.useGetAvatarLegacy=Gt,exports.useGetAvatarOfAddress=zt,exports.useGetB3trBalance=yn,exports.useGetChainId=rc,exports.useGetCustomTokenBalances=xn,exports.useGetCustomTokenInfo=gn,exports.useGetDomainsOfAddress=Ct,exports.useGetErc20Balance=Cn,exports.useGetNodeUrl=ps,exports.useGetResolverAddress=Pt,exports.useGetTextRecords=kt,exports.useGetTokenUsdPrice=$t,exports.useGetVot3Balance=Tn,exports.useHasV1SmartAccount=Fs,exports.useIpfsImage=tr,exports.useIpfsImageList=nr,exports.useIpfsMetadata=Zn,exports.useIpfsMetadatas=rr,exports.useIsDomainProtected=vt,exports.useIsPWA=ms,exports.useIsPerson=Dn,exports.useIsSmartAccountDeployed=Rs,exports.useLegalDocuments=ll,exports.useLocalStorage=wc,exports.useLoginModalContent=zo,exports.useLoginWithOAuth=Xo,exports.useLoginWithPasskey=Jo,exports.useLoginWithVeChain=Qo,Object.defineProperty(exports,`useMfaEnrollment`,{enumerable:!0,get:function(){return u.useMfaEnrollment}}),exports.useModal=Q,exports.useMostVotedAppsInRound=In,exports.useMultipleClausesCall=ls,exports.useNotificationAlerts=Qi,exports.useNotifications=$i,exports.useNotificationsModal=jo,Object.defineProperty(exports,`usePrivy`,{enumerable:!0,get:function(){return u.usePrivy}}),exports.usePrivyWalletProvider=pl,exports.useProfileModal=Ho,exports.useReceiveModal=Lo,exports.useRefreshBalances=Wn,exports.useRefreshFactoryQueries=zs,exports.useRefreshMetadata=at,exports.useRefreshSmartAccountQueries=Bs,exports.useRoundXApps=jn,exports.useScrollToTop=hs,exports.useSendTokenModal=To,exports.useSendTransaction=lr,Object.defineProperty(exports,`useSetWalletRecovery`,{enumerable:!0,get:function(){return u.useSetWalletRecovery}}),exports.useSettingsModal=Wo,exports.useSignMessage=Ko,exports.useSignTypedData=qo,exports.useSingleImageUpload=sr,exports.useSmartAccount=Us,exports.useStickyHeaderContext=We,exports.useSwapQuotes=Ar,exports.useSwapTokenModal=Do,exports.useSwapTransaction=ur,exports.useSwitchWallet=Gn,exports.useSyncableLocalStorage=Ec,Object.defineProperty(exports,`useThor`,{enumerable:!0,get:function(){return f.useThor}}),exports.useTokenBalances=Yt,exports.useTokenPrices=en,exports.useTokensWithValues=cn,exports.useTotalBalance=ln,exports.useTransactionModal=_o,exports.useTransactionToast=yo,exports.useTransferERC20=lc,exports.useTransferVET=dc,exports.useTxReceipt=hc,exports.useUnsetDomain=Jt,exports.useUpdateTextRecord=Mt,exports.useUpgradeRequired=Ks,exports.useUpgradeRequiredForAccount=Ys,exports.useUpgradeSmartAccount=Zs,exports.useUpgradeSmartAccountModal=Bo,exports.useUploadImages=or,exports.useVeChainKitConfig=$,exports.useVechainDomain=tt,exports.useVechainKitThemeConfig=so,exports.useWallet=X,exports.useWalletMetadata=Hn,exports.useWalletModal=xo,exports.useWalletStorage=Un,exports.useXAppMetadata=Jn,exports.useXAppsShares=Fn;
221
221
  //# sourceMappingURL=index.cjs.map