@tuwaio/nova-connect 0.6.0 → 0.7.0

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 (63) hide show
  1. package/README.md +93 -155
  2. package/dist/chunk-3LWAAUG4.js +1 -0
  3. package/dist/chunk-6EDQ7JRZ.js +1 -0
  4. package/dist/chunk-AGE6EFTV.js +1 -0
  5. package/dist/chunk-ENXSDTRV.js +2 -0
  6. package/dist/chunk-Q4FCNEIJ.cjs +2 -0
  7. package/dist/chunk-R5V3K52O.cjs +1 -0
  8. package/dist/chunk-YJRNNNR6.cjs +1 -0
  9. package/dist/chunk-ZVUCC2QP.cjs +1 -0
  10. package/dist/components/index.cjs +1 -1
  11. package/dist/components/index.d.cts +5140 -2914
  12. package/dist/components/index.d.ts +5140 -2914
  13. package/dist/components/index.js +1 -1
  14. package/dist/evm/index.cjs +1 -1
  15. package/dist/evm/index.d.cts +15 -9
  16. package/dist/evm/index.d.ts +15 -9
  17. package/dist/evm/index.js +1 -1
  18. package/dist/hooks/index.cjs +1 -1
  19. package/dist/hooks/index.d.cts +76 -51
  20. package/dist/hooks/index.d.ts +76 -51
  21. package/dist/hooks/index.js +1 -1
  22. package/dist/i18n/index.cjs +1 -1
  23. package/dist/i18n/index.d.cts +1 -1
  24. package/dist/i18n/index.d.ts +1 -1
  25. package/dist/i18n/index.js +1 -1
  26. package/dist/index.cjs +1 -1
  27. package/dist/index.css +0 -22
  28. package/dist/index.d.cts +271 -879
  29. package/dist/index.d.ts +271 -879
  30. package/dist/index.js +1 -1
  31. package/dist/satellite/index.cjs +1 -1
  32. package/dist/satellite/index.d.cts +1 -1
  33. package/dist/satellite/index.d.ts +1 -1
  34. package/dist/satellite/index.js +1 -1
  35. package/dist/solana/index.cjs +1 -1
  36. package/dist/solana/index.d.cts +16 -9
  37. package/dist/solana/index.d.ts +16 -9
  38. package/dist/solana/index.js +1 -1
  39. package/dist/types-CnOiSyvZ.d.cts +400 -0
  40. package/dist/types-CnOiSyvZ.d.ts +400 -0
  41. package/dist/useWalletNativeBalance-CPK-PoXG.d.ts +918 -0
  42. package/dist/useWalletNativeBalance-DMPPRldX.d.cts +918 -0
  43. package/package.json +28 -68
  44. package/dist/chunk-5MOVHUHI.js +0 -2
  45. package/dist/chunk-7K4ENNWO.cjs +0 -2
  46. package/dist/chunk-7TYZT7ZD.cjs +0 -1
  47. package/dist/chunk-ARBYH7CW.js +0 -1
  48. package/dist/chunk-K44IHM6B.cjs +0 -1
  49. package/dist/chunk-MGBN4EIT.cjs +0 -1
  50. package/dist/chunk-NQ5AECZQ.js +0 -1
  51. package/dist/chunk-S3IRVZMG.js +0 -1
  52. package/dist/evm-DUQXCW22.js +0 -1
  53. package/dist/evm-KSA7PJIK.cjs +0 -1
  54. package/dist/getChainsListByConnectorType-QCNOPM6I.cjs +0 -1
  55. package/dist/getChainsListByConnectorType-YZZUYC6D.js +0 -1
  56. package/dist/solana-CVUSQUPL.cjs +0 -1
  57. package/dist/solana-GDE2KIT6.js +0 -1
  58. package/dist/types-DxUn8qmU.d.cts +0 -108
  59. package/dist/types-DxUn8qmU.d.ts +0 -108
  60. package/dist/useWalletNativeBalance-BuiJip3d.d.cts +0 -743
  61. package/dist/useWalletNativeBalance-DrgdoQa-.d.ts +0 -743
  62. /package/dist/{chunk-V6XDFRWV.cjs → chunk-EGATOYHY.cjs} +0 -0
  63. /package/dist/{chunk-EYP534IS.js → chunk-ZVADGOGQ.js} +0 -0
package/README.md CHANGED
@@ -1,208 +1,146 @@
1
1
  # @tuwaio/nova-connect
2
2
 
3
3
  [![NPM Version](https://img.shields.io/npm/v/@tuwaio/nova-connect.svg)](https://www.npmjs.com/package/@tuwaio/nova-connect)
4
- [![License](https://img.shields.io/npm/l/@tuwaio/nova-connect.svg)](./LICENSE)
4
+ [![License](https://img.shields.io/npm/l/@tuwaio/nova-connect.svg)](https://github.com/TuwaIO/nova-uikit/blob/main/packages/nova-connect/LICENSE)
5
5
 
6
- `@tuwaio/nova-connect` is the **UI Components (L7)** package of the TUWA Ecosystem wallet connectivity layer. It translates the headless connection status of `@tuwaio/satellite-react` into beautiful, accessible, and highly customizable React user interface elements.
7
-
8
- Nova Connect natively supports both EVM and Solana wallet standard connectors, providing ready-made buttons, dialog selectors, network switchers, and balance widgets while keeping styling decisions decoupled from the underlying connection state store.
6
+ `@tuwaio/nova-connect` is the wallet connection Layer 7 (L7) package of **Nova UI Kit**, the user interface project of TUWA Stage 4 ("User Interface"). Built on **`react`**, **`framer-motion`**, **Radix UI** and [`@tuwaio/nova-core`](https://stories.tuwa.io/?path=/docs/packages-nova-core-overview--docs), it renders the state of a [Satellite Connect](https://satellite.docs.tuwa.io) store: a connect button, a connect modal with the wallets of every configured chain, a connected-wallet modal with the balance, the connections, the chain selector and recent transactions, and error toasts. The wallet state stays in Satellite Connect; Nova Connect keeps only the UI state (open modals, the selected screen).
9
7
 
10
8
  ---
11
9
 
12
10
  ## 🏛️ Core Capabilities
13
11
 
14
- - **🔌 Plug-and-Play Widgets:** Ready-to-use wallet components (`ConnectButton`, `ConnectCard`, `DisconnectButton`, `AccountImpersonationIndicator`).
15
- - **💰 Robust Balance Parsing (`ConnectedContent`):** Validates and formats account balances across chains using `Number.isFinite`, safely handling `@solana/kit` fixed-point decimal strings and EVM balances while preventing `NaN` or `[object Object]` display bugs.
16
- - **🛡️ CAIP-122 Multi-Chain Auto-Auth (`NovaSiwxWatcher`):** Automatically triggers off-chain authentication upon wallet connection via `@tuwaio/siwx-react`.
17
- - **⛓️ Cohesive Multi-Chain Interface:** Consistently handles EVM wallets (via `@tuwaio/satellite-evm` and `wagmi`) and Solana standard wallets (via `@tuwaio/satellite-solana` and `@solana/kit`).
18
- - **🎨 Deep Customization:** Change typography, borders, and margins using the `customization` prop or override colors via the `@tuwaio/nova-core` token variables.
19
- - **♿ Built-in Accessibility:** Dialog primitives powered by Radix UI, featuring complete keyboard navigation, viewport trapping, and screen reader announcements.
20
- - **🌍 Internationalization (i18n):** Overridable labels configuration for localizing connection prompts and wallet state tags.
21
-
22
- > [!WARNING]
23
- > **SIWX Migration Notice**: Legacy `siwe` options inside `EVMConnectorsWatcher` and `NovaConnectProvider` are **deprecated**. Migrate to the `siwx` prop or `<NovaSiwxWatcher />` component powered by `@tuwaio/siwx-react` and `@tuwaio/siwx-server` for multi-chain CAIP-122 authentication.
12
+ - **Provider:** `NovaConnectProvider` renders the connect and connected modals and the error toasts of Satellite Connect, gives its UI state to the components through `useNovaConnect`, and merges the `labels` prop with the English defaults. The modals are rendered only when `appChains` or `solanaRPCUrls` is set; a wallet connects to the first EVM chain or the first Solana cluster of these lists.
13
+ - **Components** (`/components`): `ConnectButton` opens the connect modal, or shows the active wallet (avatar, name, balance and chain when `withBalance` and `withChain` are set) and opens the connected modal. The modal screens (wallet list grouped into installed, popular and custom groups, network selection, connecting state, "about wallets", "get a wallet", address impersonation when `withImpersonated` is set, legal disclaimer) and their parts are exported too. Most components take a `customization` prop with class name functions, handlers and replacement components for their parts.
14
+ - **Chains:** EVM and Solana wallets are listed from the Satellite adapters of the store. The chain selector lists `appChains` for EVM wallets and the clusters of `solanaRPCUrls` for Solana wallets, and switches the network through the store. The root entry point imports no EVM or Solana package: importing `/evm` or `/solana` registers the chain helpers of that network and types `appChains` (viem chains) or `solanaRPCUrls` (cluster monikers), so an app installs only the packages of the networks it uses.
15
+ - **Transactions:** with the `transactionPool` and `pulsarAdapter` of a [Pulsar](https://pulsar.docs.tuwa.io) store, `NovaConnectProvider` shows the transaction history in the connected modal (rendered by `@tuwaio/nova-transactions`, loaded on demand). `ConnectButton` takes its own `transactionPool` prop to show the status of the latest transaction.
16
+ - **SIWX:** with the `siwx` prop (a verifier, and optionally `getNonce`, `destroyer` and the message fields), the provider renders `NovaSiwxWatcher`, which asks the connected wallet to sign in with [`@tuwaio/siwx-react`](https://siwx.docs.tuwa.io/packages/siwx-react) once per address and disconnects the wallet when the sign-in is rejected or fails. When the wallet is disconnected, it clears the session and calls `destroyer`; after a page load it keeps the session restored by `@tuwaio/siwx-react` until Satellite Connect has finished reconnecting (`isAutoConnectFinished`). `useNovaSiwx` signs in and out on demand. Do not also pass `siwx` to the Satellite watchers: they would disconnect the wallet on an account change instead of asking the new account to sign in.
17
+ - **Labels:** English (`defaultLabels`) and Ukrainian (`ukrainianLabels`) labels in `/i18n`; `useNovaConnectLabels` reads them in custom components.
18
+ - **Re-exports:** `/satellite` re-exports the provider, hooks and types of `@tuwaio/satellite-react`, and `/evm` and `/solana` re-export its chain watchers and add the chain connection types to `AllConnections`, so the app and Nova Connect use one copy of Satellite Connect.
24
19
 
25
20
  ---
26
21
 
27
22
  ## 💾 Installation
28
23
 
24
+ The package has seven entry points:
25
+
26
+ | Import path | Provides |
27
+ | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
28
+ | `@tuwaio/nova-connect` | `NovaConnectProvider`, `NovaSiwxWatcher`, the hooks, the chain configuration types |
29
+ | `@tuwaio/nova-connect/components` | `ConnectButton`, the modals and their parts |
30
+ | `@tuwaio/nova-connect/hooks` | `useNovaConnect`, `useNovaConnectLabels`, `useNovaSiwx`, balance, chain and name hooks |
31
+ | `@tuwaio/nova-connect/i18n` | `defaultLabels`, `ukrainianLabels`, `NovaConnectLabels` |
32
+ | `@tuwaio/nova-connect/satellite` | `SatelliteConnectProvider`, `useSatelliteConnectStore` and the types of `@tuwaio/satellite-react` |
33
+ | `@tuwaio/nova-connect/evm` | `EVMConnectorsWatcher`, `EVMConnection`, `ConnectorEVM`, `Chain`; registers the EVM chain helpers |
34
+ | `@tuwaio/nova-connect/solana` | `SolanaConnectorsWatcher`, `SolanaConnection`, `ConnectorSolana`, `SolanaClusterMoniker`; registers the Solana chain helpers |
35
+
36
+ Install the Nova packages with their peer dependencies and the Satellite Connect, SIWX and Pulsar packages. `@tuwaio/nova-transactions` is required: the connected modal renders the transaction history with it (loaded on demand).
37
+
38
+ ```bash
39
+ pnpm add @tuwaio/nova-connect @tuwaio/nova-core @tuwaio/nova-transactions \
40
+ @tuwaio/orbit-core @tuwaio/satellite-core @tuwaio/satellite-react \
41
+ @tuwaio/siwx-react @tuwaio/siwx-core @tuwaio/pulsar-core \
42
+ react react-dom react-toastify framer-motion @heroicons/react @radix-ui/react-dialog @radix-ui/react-select \
43
+ @web3icons/react @web3icons/common ethereum-blockies-base64 clsx tailwind-merge dayjs zustand immer
44
+ ```
45
+
46
+ Then add the packages of the networks your app uses and import their entry points (`@tuwaio/nova-connect/evm`, `@tuwaio/nova-connect/solana`). The packages of the other network are neither imported nor bundled.
47
+
29
48
  ```bash
30
- # 1. Core Nova Connect & UI Primitives (Mandatory)
31
- pnpm add @tuwaio/nova-connect @tuwaio/nova-core @tuwaio/satellite-core @tuwaio/satellite-react @tuwaio/orbit-core react zustand immer @radix-ui/react-dialog @radix-ui/react-select @heroicons/react @web3icons/react @web3icons/common framer-motion react-toastify @emotion/is-prop-valid ethereum-blockies-base64
49
+ # EVM
50
+ pnpm add @tuwaio/orbit-evm @tuwaio/satellite-evm @wagmi/core viem
32
51
 
33
- # 2. EVM Support (Optional)
34
- pnpm add @tuwaio/satellite-evm @tuwaio/orbit-evm @wagmi/core viem
52
+ # Solana
53
+ pnpm add @tuwaio/orbit-solana @tuwaio/satellite-solana @solana/kit @wallet-standard/react \
54
+ @wallet-standard/base @wallet-standard/features @wallet-standard/ui @wallet-standard/ui-registry \
55
+ @wallet-standard/app @wallet-standard/ui-core
56
+ ```
35
57
 
36
- # 3. Solana Support (Optional)
37
- pnpm add @tuwaio/satellite-solana @tuwaio/orbit-solana @solana/kit @wallet-standard/react
58
+ Import the stylesheets of `@tuwaio/nova-core` (theme variables) and of this package (the component styles, Tailwind CSS v4 utilities prefixed with `novacon:`), and of `@tuwaio/nova-transactions` when you show transactions:
38
59
 
39
- # 4. SIWX Authentication Support (Optional)
40
- pnpm add @tuwaio/siwx-react
60
+ ```css
61
+ @import '@tuwaio/nova-core/dist/index.css';
62
+ @import '@tuwaio/nova-connect/dist/index.css';
63
+ @import '@tuwaio/nova-transactions/dist/index.css';
41
64
  ```
42
65
 
43
66
  ---
44
67
 
45
- ## 🚀 Quick Start Setup
46
-
47
- ### 1. Global Providers Integration
68
+ ## 🚀 Usage
48
69
 
49
- Wrap your React tree with the Wagmi configuration, Satellite logic connection provider, and Nova Connect layout provider:
70
+ Render the Satellite provider, the chain watchers and `NovaConnectProvider` once, around your app, and place `ConnectButton` in your layout. This app has EVM and Solana wallets; for one network, leave out the imports, the adapter, the watcher and the chain configuration of the other.
50
71
 
51
72
  ```tsx
52
- import { ReactNode } from 'react';
53
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
54
- import { WagmiProvider } from 'wagmi';
55
- import { satelliteEVMAdapter } from '@tuwaio/satellite-evm';
56
- import { satelliteSolanaAdapter } from '@tuwaio/satellite-solana';
57
- import { SatelliteConnectProvider } from '@tuwaio/nova-connect/satellite';
73
+ 'use client';
74
+
75
+ import { NovaConnectProvider } from '@tuwaio/nova-connect';
76
+ import { ConnectButton } from '@tuwaio/nova-connect/components';
58
77
  import { EVMConnectorsWatcher } from '@tuwaio/nova-connect/evm';
78
+ import { SatelliteConnectProvider } from '@tuwaio/nova-connect/satellite';
59
79
  import { SolanaConnectorsWatcher } from '@tuwaio/nova-connect/solana';
60
- import { NovaConnectProvider } from '@tuwaio/nova-connect';
61
-
62
- import { wagmiConfig, appEVMChains, solanaRPCUrls } from './config/appConfig';
63
-
64
- const queryClient = new QueryClient();
65
-
66
- export function Web3Providers({ children }: { children: ReactNode }) {
80
+ import { satelliteEVMAdapter } from '@tuwaio/satellite-evm';
81
+ import { satelliteSolanaAdapter } from '@tuwaio/satellite-solana';
82
+ import { createConfig, http, injected } from '@wagmi/core';
83
+ import type { ReactNode } from 'react';
84
+ import { mainnet, sepolia } from 'viem/chains';
85
+
86
+ const appChains = [mainnet, sepolia] as const;
87
+ const solanaRPCUrls = { devnet: 'https://api.devnet.solana.com' };
88
+ const wagmiConfig = createConfig({
89
+ chains: appChains,
90
+ connectors: [injected()],
91
+ transports: { [mainnet.id]: http(), [sepolia.id]: http() },
92
+ });
93
+ // Created once: the provider passes a new `adapter` value to its store on every change
94
+ const adapters = [satelliteEVMAdapter(wagmiConfig, appChains), satelliteSolanaAdapter({ rpcUrls: solanaRPCUrls })];
95
+
96
+ export function Providers({ children }: { children: ReactNode }) {
67
97
  return (
68
- <WagmiProvider config={wagmiConfig}>
69
- <QueryClientProvider client={queryClient}>
70
- {/* Layer 1: Headless Connection logic */}
71
- <SatelliteConnectProvider
72
- adapter={[satelliteEVMAdapter(wagmiConfig, appEVMChains), satelliteSolanaAdapter({ rpcUrls: solanaRPCUrls })]}
73
- autoConnect={true}
74
- >
75
- {/* Watchers sync native connector states to the store */}
76
- <EVMConnectorsWatcher wagmiConfig={wagmiConfig} />
77
- <SolanaConnectorsWatcher />
78
-
79
- {/* Layer 2: Visual Connection component provider */}
80
- <NovaConnectProvider
81
- appChains={appEVMChains}
82
- solanaRPCUrls={solanaRPCUrls}
83
- withBalance
84
- withChain
85
- withImpersonated
86
- >
87
- {children}
88
- </NovaConnectProvider>
89
- </SatelliteConnectProvider>
90
- </QueryClientProvider>
91
- </WagmiProvider>
98
+ <SatelliteConnectProvider adapter={adapters} autoConnect>
99
+ <EVMConnectorsWatcher wagmiConfig={wagmiConfig} />
100
+ <SolanaConnectorsWatcher />
101
+ <NovaConnectProvider appChains={appChains} solanaRPCUrls={solanaRPCUrls} withBalance withChain>
102
+ {children}
103
+ </NovaConnectProvider>
104
+ </SatelliteConnectProvider>
92
105
  );
93
106
  }
94
- ```
95
-
96
- ### 2. Rendering the Connection Button
97
-
98
- Place the component in your header or navigation bar:
99
107
 
100
- ```tsx
101
- import { ConnectButton } from '@tuwaio/nova-connect/components';
102
-
103
- export function NavigationHeader() {
108
+ export function Header() {
104
109
  return (
105
- <header className="flex justify-between items-center p-4 border-b border-[var(--tuwa-border-primary)]">
106
- <span className="font-bold">My dApp</span>
110
+ <header>
107
111
  <ConnectButton />
108
112
  </header>
109
113
  );
110
114
  }
111
115
  ```
112
116
 
113
- ---
114
-
115
- ## 🎨 Component Customization
116
-
117
- Pass class names and layout overrides using the `customization` property to match components with your custom UI:
118
-
119
- ```tsx
120
- import { ConnectButton } from '@tuwaio/nova-connect/components';
121
- import { cn } from '@tuwaio/nova-core';
122
-
123
- export function CustomHeader() {
124
- return (
125
- <ConnectButton
126
- customization={{
127
- classNames: {
128
- connectButton: () =>
129
- cn(
130
- 'px-6 py-2 rounded-full font-mono text-sm uppercase transition-all duration-300',
131
- 'bg-emerald-500 text-slate-950 hover:bg-emerald-600 focus:ring-2 focus:ring-emerald-500',
132
- ),
133
- walletName: () => 'text-xs text-slate-300 font-semibold',
134
- },
135
- }}
136
- />
137
- );
138
- }
139
- ```
117
+ A full app with Nova Transactions, SIWX and a Pulsar store synced with a server is in the **[TUWA SDK documentation](https://sdk.docs.tuwa.io/full-stack)**. Every component, with its customization options, can be tried in [Storybook](https://stories.tuwa.io/?path=/docs/introduction--docs).
140
118
 
141
119
  ---
142
120
 
143
- ## 🔐 SIWX Auto-Authentication (`NovaSiwxWatcher` & `useNovaSiwx`)
121
+ ## 🗄️ Browser Storage
144
122
 
145
- Nova Connect includes native integration with `@tuwaio/siwx-react` for CAIP-122 multi-chain authentication:
123
+ Nova Connect reads and writes these `localStorage` keys through the helpers of `@tuwaio/orbit-core`:
146
124
 
147
- ### 1. Auto-Authentication via `NovaSiwxWatcher`
125
+ | Key | Read or written by |
126
+ | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
127
+ | `orbit-core:recentlyConnectedConnectorsListHelpers` | Read by the connect modal and the connected modal to show recently used wallets; an entry is removed when the user removes the wallet from the recent list of the connected modal |
128
+ | `satellite-connect:impersonatedAddress` | Written by the impersonation form before it connects the impersonated wallet |
148
129
 
149
- Pass `siwx` configuration into `NovaConnectProvider` or render `<NovaSiwxWatcher />` directly inside your provider tree:
130
+ Satellite Connect writes the last connection and the recent wallets (see [`@tuwaio/satellite-core`](https://satellite.docs.tuwa.io/packages/satellite-core)), and `@tuwaio/siwx-react` keeps the SIWX session. Nova Connect saves no other state.
150
131
 
151
- ```tsx
152
- import { NovaConnectProvider } from '@tuwaio/nova-connect';
153
- import { NovaSiwxWatcher } from '@tuwaio/nova-connect/watchers';
132
+ ---
154
133
 
155
- export function Web3Providers({ children }: { children: ReactNode }) {
156
- return (
157
- <NovaConnectProvider
158
- appChains={appEVMChains}
159
- siwx={{
160
- enabled: true,
161
- statement: 'Sign in to TUWA Ecosystem.',
162
- verifier: async (payload) => {
163
- const res = await fetch('/api/siwx/verify', {
164
- method: 'POST',
165
- headers: { 'Content-Type': 'application/json' },
166
- body: JSON.stringify(payload),
167
- });
168
- return res.ok ? res.json() : null;
169
- },
170
- destroyer: async () => {
171
- await fetch('/api/siwx/logout', { method: 'POST' });
172
- },
173
- }}
174
- >
175
- {children}
176
- </NovaConnectProvider>
177
- );
178
- }
179
- ```
134
+ ## 🌐 External Services
180
135
 
181
- ### 2. Manual Sign-In Controls via `useNovaSiwx`
136
+ Nova Connect sends no request of its own. It shows data that the Satellite adapters of the store load: native balances (through the RPC of each chain), ENS names and avatars on Ethereum Mainnet, SNS names and avatars (Bonfida), and the ENS name typed in the impersonation form. Missing network and wallet icons are fetched from GitHub by `@tuwaio/nova-core`. Links to block explorers and to wallet guides are opened by the browser only when clicked.
182
137
 
183
- For custom login buttons or gated actions:
138
+ ---
184
139
 
185
- ```tsx
186
- import { useNovaSiwx } from '@tuwaio/nova-connect/hooks';
187
-
188
- export function CustomLoginButton() {
189
- const { signIn, signOut } = useNovaSiwx({
190
- verifier: async (payload) => {
191
- const res = await fetch('/api/siwx/verify', {
192
- method: 'POST',
193
- headers: { 'Content-Type': 'application/json' },
194
- body: JSON.stringify(payload),
195
- });
196
- return res.ok ? res.json() : null;
197
- },
198
- });
199
-
200
- return <button onClick={() => signIn()}>Sign In with Wallet</button>;
201
- }
202
- ```
140
+ ## 📚 API Reference
203
141
 
204
- ---
142
+ Every export, with signatures and types generated from the source, is documented at **[stories.tuwa.io → Packages → nova-connect](https://stories.tuwa.io/?path=/docs/packages-nova-connect-overview--docs)**.
205
143
 
206
144
  ## 📄 License
207
145
 
208
- Licensed under the **Apache-2.0 License**. See the [LICENSE](./LICENSE) file for details.
146
+ Licensed under the **Apache-2.0 License**. See the [LICENSE](https://github.com/TuwaIO/nova-uikit/blob/main/packages/nova-connect/LICENSE) file for details.
@@ -0,0 +1 @@
1
+ var r=Symbol.for("tuwaio.nova-connect.chainAdapters"),a=globalThis;function e(){return a[r]||(a[r]=new Map)}function i(t,n){e().set(t,n);}function o(t){return e().get(t)}export{i as a,o as b};
@@ -0,0 +1 @@
1
+ var e={connectWallet:"Connect Wallet",disconnect:"Disconnect",disconnectAll:"Disconnect all",connecting:"Connecting...",connected:"Connected",tryAgain:"Try again",back:"Back",connect:"Connect",all:"All",active:"Active",connectors:"Connectors",connectNewWallet:"Connect new wallet",connectionError:"Connection error",connectedSuccessfully:"Connected successfully!",connectingTo:"Connecting to",errorWhenChainSwitching:"Error when chain switching",cannotConnectWallet:"Cannot connect to the wallet. Please try again or use another connector.",success:"Success",error:"Error",replaced:"Replaced",recent:"Recent",transactionLoading:"Transaction loading",transactionSuccess:"Transaction successful",transactionError:"Transaction failed",transactionReplaced:"Transaction replaced",aboutWallets:"About wallets",getWallet:"Get a wallet",connectImpersonatedWallet:"Connect impersonated wallet",transactionsInApp:"Transactions in app",switchNetwork:"Switch network",switchNetworks:"Switch Networks",connectingEllipsis:"Connecting...",connectedWallets:"Connected Wallets",installed:"Installed",popular:"Popular",impersonate:"Impersonate",readOnlyMode:"Read-only mode",whatIsWallet:"What is a wallet?",walletDescription:"Wallets are essential for managing your crypto\u2014they let you send, receive, and securely hold digital assets. Connecting your wallet grants you safe access and interaction with decentralized applications (dApps).",whatIsNetwork:"What is a network?",networkDescription:"A network (or blockchain) is a decentralized digital ledger that records transactions. Selecting a network lets you choose which blockchain you want to connect to.",learnMore:"Learn more",listOfNetworks:"List of networks",viewOnExplorer:"View on explorer",viewTransactions:"View transactions",enterWalletAddressOrAddressName:"Enter wallet address or address name to impersonate",walletAddressPlaceholder:"0x...",noConnectorsFound:"No Connectors Found",noConnectorsDescription:"We couldn't find any wallets or connection methods for the selected network.",somethingWentWrong:"Something went wrong",networkPickingError:"Something went wrong with wallet network selection. Please go back and try again.",pulsarAdapterRequired:"Pulsar Adapter Required",pulsarAdapterDescription:"Additional configuration is needed for viewing transactions in app. Please contact your admin.",selectAvailableNetwork:"Select one of available network",startExploringWeb3:"Start Exploring Web3",walletKeyToDigitalWorld:"Your wallet is the key to the digital world and the technology that makes exploring web3 possible.",iDontHaveWallet:"I don't have a wallet",choseWallet:"Choose a wallet",keyToNewInternet:"The Key to a New Internet",keyToNewInternetDescription:"Your wallet is more than just storage. Think of it as your digital passport that lets you truly own, display, and exchange every digital asset you hold, from crypto tokens to unique NFTs.",logInWithoutHassle:"Log In Without the Hassle",logInWithoutHassleDescription:"Skip the endless sign-up forms! Your wallet is your unique access pass. Just connect it, and the website instantly recognizes you. It saves you time and protects your privacy.",copyRawError:"Copy raw error",copied:"Copied!",chainSelector:"Chain Selector",closeModal:"Close modal",selectChain:"Select chain",chainOption:"Chain option",openChainSelector:"Open chain selector",currentChain:"Current chain",scrollToTop:"Scroll to top",scrollToBottom:"Scroll to bottom",chainListContainer:"Chain list container",walletControls:"Wallet controls",openWalletModal:"Open wallet modal",walletConnected:"Wallet connected",walletNotConnected:"Wallet not connected",walletBalance:"Wallet balance",walletAddress:"Wallet address",transactionStatus:"Transaction status",successIcon:"Success icon",errorIcon:"Error icon",replacedIcon:"Replaced icon",statusIcon:"Status icon",loading:"Loading",unknownWallet:"Unknown wallet",walletAvatar:"Wallet avatar",ensAvatar:"ENS avatar",walletIcon:"Wallet icon",impersonateAddressEmpty:"Enter a wallet address or name to impersonate.",impersonateAddressNotCorrect:"Entered wallet address or name is not correct. Please try again.",impersonateAddressConnected:"First disconnect the wallet to impersonate another address.",legalIntro:"By connecting your wallet, you agree to our",legalTerms:"Terms of Service",legalPrivacy:"Privacy Policy",legalAnd:"and",carousel:"carousel",carouselNavigation:"Slide navigation",goToSlide:"Go to slide {index}: {title}",slideOfTotal:"Slide {index} of {total}",autoPlaying:"Auto-playing",paused:"Paused",carouselInstructions:"Use the arrow keys to change slides, Space or Enter to pause or resume auto-play, Home and End to go to the first and the last slide. Swipe left or right on touch devices.",networkIcon:"Network {name}",backToPreviousStep:"Back to previous step",opensWalletSelectionPage:"Opens external wallet selection page",opensDocumentation:"Opens external documentation",connectsImpersonatedWallet:"Connects with impersonated wallet address",retriesConnection:"Retries wallet connection",connectionStatus:"Connection status: {status}",disclaimerLabel:"{title} disclaimer",disclaimerAdditionalInformation:"Additional disclaimer information",disclaimerActions:"Disclaimer actions",actionAbout:"{action} about {topic}",viewAction:"View {action}",disclaimerSummary:"Disclaimer about {topic}.",actionAvailable:"{action} action available.",walletIconsAnimation:"Wallet icons animation",popularWalletIcons:"Popular wallet icons",walletAddressOrEnsPlaceholder:"{address} or ENS name (.eth)",walletAddressOrSnsPlaceholder:"{address} or SNS name (.sol)",availableNetworks:"Available networks",networkNameIcon:"{name} network icon",networkSelectionTabs:"Network selection tabs",networkTab:"{name} network",currentlySelected:"currently selected",unknown:"Unknown",walletIconsDescription:"Popular wallets including {wallets} are displayed with floating animations to illustrate wallet variety.",getWalletSummary:"Introduction to Web3 wallets. This section explains the importance of wallets for digital asset management and Web3 exploration. Various popular wallet options are visually represented above.",additionalNetworks:"{count} additional networks",noConnectorsAvailable:"No connectors available",connectingDetails:"Wallet: {wallet}, Network: {network}, Status: {status}",connectorsSection:"{title} wallet connectors section",connectorsList:"{title} wallet connectors",noGroupConnectors:"No {title} connectors available",noGroupWallets:"No {title} wallets available",availableWalletConnectors:"Available wallet connectors",opensInNewTab:"(opens in new tab)",resolvingName:"Resolving {service} name...",resolvedTo:"Resolved to: {address}",legalInformation:"Legal information",disconnectAllDescription:"Disconnect all wallets and close the modal",explorerLinkDescription:"Opens in a new tab: the wallet address {address} on the blockchain explorer",explorerNotAvailable:"Blockchain explorer is not available for this network",connectWalletsAvailable:"Connect Wallet - {count} wallets available",switchNetworkNetworksAvailable:"Switch network - {count} networks available",transactionsInAppCount:"Transactions in app - {count} transactions",transactionsAvailable:"{count} transactions available",noTransactionsForWallet:"No transactions found for this wallet",walletName:"Wallet name: {name}",loadingWalletName:"Loading wallet name",copyWalletAddress:"Copy wallet address",refreshBalance:"Refresh balance",noBalanceAvailable:"No balance information available",balanceUpdated:"Balance updated: {balance}",transactionHistoryNotAvailable:"Transaction history is not available",transactionHistoryLoadError:"The transaction history could not be loaded. Please try again later.",transactionsInAppFor:"Transactions in app for {address}",networkWithId:"Network: {chainId}",walletWithName:"{name} wallet",networkSelector:"network selector",buttonRole:"button",loadingState:"loading",disabledState:"disabled",buttonDisabled:"Button is disabled",selectWalletOptions:"Click to select {name} options",selectOptions:"Click to select options",walletInformation:"Wallet information",noConnectionsFound:"No connections found",walletConnectionsManager:"Wallet connections manager",switchedToWallet:"Switched to {name} wallet",disconnectedWallet:"Disconnected {name} wallet",connectedWallet:"Connected {name} wallet",copyAddress:"Copy address",copy:"Copy",explorer:"Explorer",removeFromRecent:"Remove {name} from recent wallets"};var n={connectWallet:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438 \u0413\u0430\u043C\u0430\u043D\u0435\u0446\u044C",disconnect:"\u0412\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438",disconnectAll:"\u0412\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438 \u0432\u0441\u0456",connecting:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F...",connected:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E",tryAgain:"\u0421\u043F\u0440\u043E\u0431\u0443\u0432\u0430\u0442\u0438 \u0437\u043D\u043E\u0432\u0443",back:"\u041D\u0430\u0437\u0430\u0434",connect:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438",all:"\u0412\u0441\u0456",active:"\u0410\u043A\u0442\u0438\u0432\u043D\u0438\u0439",connectors:"\u041A\u043E\u043D\u0435\u043A\u0442\u043E\u0440\u0438",connectNewWallet:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438 \u043D\u043E\u0432\u0438\u0439 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C",connectionError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F",connectedSuccessfully:"\u0423\u0441\u043F\u0456\u0448\u043D\u043E \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E!",connectingTo:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F \u0434\u043E",errorWhenChainSwitching:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u043F\u0435\u0440\u0435\u043C\u0438\u043A\u0430\u043D\u043D\u0456 \u043C\u0435\u0440\u0435\u0436\u0456",cannotConnectWallet:"\u041D\u0435 \u0432\u0434\u0430\u0454\u0442\u044C\u0441\u044F \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438\u0441\u044C \u0434\u043E \u0433\u0430\u043C\u0430\u043D\u0446\u044F. \u0421\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0437\u043D\u043E\u0432\u0443 \u0430\u0431\u043E \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u0456\u043D\u0448\u0438\u0439 \u0437'\u0454\u0434\u043D\u0443\u0432\u0430\u0447.",success:"\u0423\u0441\u043F\u0456\u0445",error:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430",replaced:"\u0417\u0430\u043C\u0456\u043D\u0435\u043D\u043E",recent:"\u041E\u0441\u0442\u0430\u043D\u043D\u0456",transactionLoading:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0457",transactionSuccess:"\u0422\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u044F \u0443\u0441\u043F\u0456\u0448\u043D\u0430",transactionError:"\u0422\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u044F \u043D\u0435 \u0432\u0434\u0430\u043B\u0430\u0441\u044C",transactionReplaced:"\u0422\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u044F \u0437\u0430\u043C\u0456\u043D\u0435\u043D\u0430",aboutWallets:"\u041F\u0440\u043E \u0433\u0430\u043C\u0430\u043D\u0446\u0456",getWallet:"\u041E\u0442\u0440\u0438\u043C\u0430\u0442\u0438 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C",connectImpersonatedWallet:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438 \u0456\u043C\u0456\u0442\u043E\u0432\u0430\u043D\u0438\u0439 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C",transactionsInApp:"\u0422\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0457 \u0432 \u0434\u043E\u0434\u0430\u0442\u043A\u0443",switchNetwork:"\u0417\u043C\u0456\u043D\u0438\u0442\u0438 \u043C\u0435\u0440\u0435\u0436\u0443",switchNetworks:"\u0417\u043C\u0456\u043D\u0438\u0442\u0438 \u041C\u0435\u0440\u0435\u0436\u0456",connectingEllipsis:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F...",connectedWallets:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0456 \u0413\u0430\u043C\u0430\u043D\u0446\u0456",installed:"\u0412\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0456",popular:"\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u0456",impersonate:"\u0406\u043C\u0456\u0442\u0443\u0432\u0430\u0442\u0438",readOnlyMode:"\u0420\u0435\u0436\u0438\u043C \u0442\u0456\u043B\u044C\u043A\u0438 \u0447\u0438\u0442\u0430\u043D\u043D\u044F",whatIsWallet:"\u0429\u043E \u0442\u0430\u043A\u0435 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C?",walletDescription:"\u0413\u0430\u043C\u0430\u043D\u0446\u0456 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u0456 \u0434\u043B\u044F \u0443\u043F\u0440\u0430\u0432\u043B\u0456\u043D\u043D\u044F \u0432\u0430\u0448\u043E\u044E \u043A\u0440\u0438\u043F\u0442\u043E\u0432\u0430\u043B\u044E\u0442\u043E\u044E \u2014 \u0432\u043E\u043D\u0438 \u0434\u043E\u0437\u0432\u043E\u043B\u044F\u044E\u0442\u044C \u043D\u0430\u0434\u0441\u0438\u043B\u0430\u0442\u0438, \u043E\u0442\u0440\u0438\u043C\u0443\u0432\u0430\u0442\u0438 \u0442\u0430 \u0431\u0435\u0437\u043F\u0435\u0447\u043D\u043E \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u0442\u0438 \u0446\u0438\u0444\u0440\u043E\u0432\u0456 \u0430\u043A\u0442\u0438\u0432\u0438. \u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F \u0433\u0430\u043C\u0430\u043D\u0446\u044F \u043D\u0430\u0434\u0430\u0454 \u0432\u0430\u043C \u0431\u0435\u0437\u043F\u0435\u0447\u043D\u0438\u0439 \u0434\u043E\u0441\u0442\u0443\u043F \u0442\u0430 \u0432\u0437\u0430\u0454\u043C\u043E\u0434\u0456\u044E \u0437 \u0434\u0435\u0446\u0435\u043D\u0442\u0440\u0430\u043B\u0456\u0437\u043E\u0432\u0430\u043D\u0438\u043C\u0438 \u0434\u043E\u0434\u0430\u0442\u043A\u0430\u043C\u0438 (dApps).",whatIsNetwork:"\u0429\u043E \u0442\u0430\u043A\u0435 \u043C\u0435\u0440\u0435\u0436\u0430?",networkDescription:"\u041C\u0435\u0440\u0435\u0436\u0430 (\u0430\u0431\u043E \u0431\u043B\u043E\u043A\u0447\u0435\u0439\u043D) \u2014 \u0446\u0435 \u0434\u0435\u0446\u0435\u043D\u0442\u0440\u0430\u043B\u0456\u0437\u043E\u0432\u0430\u043D\u0438\u0439 \u0446\u0438\u0444\u0440\u043E\u0432\u0438\u0439 \u0440\u0435\u0454\u0441\u0442\u0440, \u044F\u043A\u0438\u0439 \u0437\u0430\u043F\u0438\u0441\u0443\u0454 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0457. \u0412\u0438\u0431\u0456\u0440 \u043C\u0435\u0440\u0435\u0436\u0456 \u0434\u043E\u0437\u0432\u043E\u043B\u044F\u0454 \u0432\u0430\u043C \u043E\u0431\u0440\u0430\u0442\u0438, \u0434\u043E \u044F\u043A\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0447\u0435\u0439\u043D\u0443 \u0432\u0438 \u0445\u043E\u0447\u0435\u0442\u0435 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438\u0441\u044C.",learnMore:"\u0414\u0456\u0437\u043D\u0430\u0442\u0438\u0441\u044F \u0431\u0456\u043B\u044C\u0448\u0435",listOfNetworks:"\u0421\u043F\u0438\u0441\u043E\u043A \u043C\u0435\u0440\u0435\u0436",viewOnExplorer:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0432 \u043F\u0440\u043E\u0432\u0456\u0434\u043D\u0438\u043A\u0443",viewTransactions:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0457",enterWalletAddressOrAddressName:"\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0430\u0434\u0440\u0435\u0441\u0443 \u0433\u0430\u043C\u0430\u043D\u0446\u044F \u0430\u0431\u043E \u0439\u043E\u0433\u043E \u0456\u043C\u044F \u0434\u043B\u044F \u0456\u043C\u0456\u0442\u0430\u0446\u0456\u0457",walletAddressPlaceholder:"0x...",noConnectorsFound:"\u0417'\u0454\u0434\u043D\u0443\u0432\u0430\u0447\u0456 \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0456",noConnectorsDescription:"\u041C\u0438 \u043D\u0435 \u0437\u043C\u043E\u0433\u043B\u0438 \u0437\u043D\u0430\u0439\u0442\u0438 \u0436\u043E\u0434\u043D\u0438\u0445 \u0433\u0430\u043C\u0430\u043D\u0446\u0456\u0432 \u0430\u0431\u043E \u043C\u0435\u0442\u043E\u0434\u0456\u0432 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F \u0434\u043B\u044F \u043E\u0431\u0440\u0430\u043D\u043E\u0457 \u043C\u0435\u0440\u0435\u0436\u0456.",somethingWentWrong:"\u0429\u043E\u0441\u044C \u043F\u0456\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A",networkPickingError:"\u0429\u043E\u0441\u044C \u043F\u0456\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A \u0437 \u0432\u0438\u0431\u043E\u0440\u043E\u043C \u043C\u0435\u0440\u0435\u0436\u0456 \u0433\u0430\u043C\u0430\u043D\u0446\u044F. \u041F\u043E\u0432\u0435\u0440\u043D\u0456\u0442\u044C\u0441\u044F \u043D\u0430\u0437\u0430\u0434 \u0456 \u0441\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0437\u043D\u043E\u0432\u0443.",pulsarAdapterRequired:"\u041F\u043E\u0442\u0440\u0456\u0431\u0435\u043D Pulsar \u0410\u0434\u0430\u043F\u0442\u0435\u0440",pulsarAdapterDescription:"\u041F\u043E\u0442\u0440\u0456\u0431\u043D\u0430 \u0434\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u0430 \u043A\u043E\u043D\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u0456\u044F \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0433\u043B\u044F\u0434\u0443 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0439 \u0432 \u0434\u043E\u0434\u0430\u0442\u043A\u0443. \u0417\u0432\u0435\u0440\u043D\u0456\u0442\u044C\u0441\u044F \u0434\u043E \u0432\u0430\u0448\u043E\u0433\u043E \u0430\u0434\u043C\u0456\u043D\u0456\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u0430.",selectAvailableNetwork:"\u041E\u0431\u0435\u0440\u0456\u0442\u044C \u043E\u0434\u043D\u0443 \u0437 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0445 \u043C\u0435\u0440\u0435\u0436",startExploringWeb3:"\u041F\u043E\u0447\u043D\u0456\u0442\u044C \u0434\u043E\u0441\u043B\u0456\u0434\u0436\u0443\u0432\u0430\u0442\u0438 Web3",walletKeyToDigitalWorld:"\u0412\u0430\u0448 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C \u2014 \u0446\u0435 \u043A\u043B\u044E\u0447 \u0434\u043E \u0446\u0438\u0444\u0440\u043E\u0432\u043E\u0433\u043E \u0441\u0432\u0456\u0442\u0443 \u0442\u0430 \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0456\u044F, \u044F\u043A\u0430 \u0440\u043E\u0431\u0438\u0442\u044C \u043C\u043E\u0436\u043B\u0438\u0432\u0438\u043C \u0434\u043E\u0441\u043B\u0456\u0434\u0436\u0435\u043D\u043D\u044F web3.",iDontHaveWallet:"\u0423 \u043C\u0435\u043D\u0435 \u043D\u0435\u043C\u0430\u0454 \u0433\u0430\u043C\u0430\u043D\u0446\u044F",choseWallet:"\u041E\u0431\u0435\u0440\u0456\u0442\u044C \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C",keyToNewInternet:"\u041A\u043B\u044E\u0447 \u0434\u043E \u043D\u043E\u0432\u043E\u0433\u043E \u0406\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0443",keyToNewInternetDescription:"\u0412\u0430\u0448 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C \u2014 \u0446\u0435 \u0431\u0456\u043B\u044C\u0448\u0435 \u043D\u0456\u0436 \u043F\u0440\u043E\u0441\u0442\u043E \u0441\u0445\u043E\u0432\u0438\u0449\u0435. \u0414\u0443\u043C\u0430\u0439\u0442\u0435 \u043F\u0440\u043E \u043D\u044C\u043E\u0433\u043E \u044F\u043A \u043F\u0440\u043E \u0441\u0432\u0456\u0439 \u0446\u0438\u0444\u0440\u043E\u0432\u0438\u0439 \u043F\u0430\u0441\u043F\u043E\u0440\u0442, \u044F\u043A\u0438\u0439 \u0434\u043E\u0437\u0432\u043E\u043B\u044F\u0454 \u0432\u0430\u043C \u0441\u043F\u0440\u0430\u0432\u0434\u0456 \u0432\u043E\u043B\u043E\u0434\u0456\u0442\u0438, \u043F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u0442\u0430 \u043E\u0431\u043C\u0456\u043D\u044E\u0432\u0430\u0442\u0438 \u043A\u043E\u0436\u0435\u043D \u0446\u0438\u0444\u0440\u043E\u0432\u0438\u0439 \u0430\u043A\u0442\u0438\u0432, \u044F\u043A\u0438\u0439 \u0443 \u0432\u0430\u0441 \u0454, \u0432\u0456\u0434 \u043A\u0440\u0438\u043F\u0442\u043E-\u0442\u043E\u043A\u0435\u043D\u0456\u0432 \u0434\u043E \u0443\u043D\u0456\u043A\u0430\u043B\u044C\u043D\u0438\u0445 NFT.",logInWithoutHassle:"\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044C \u0431\u0435\u0437 \u043A\u043B\u043E\u043F\u043E\u0442\u0443",logInWithoutHassleDescription:"\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0456\u0442\u044C \u043D\u0435\u0441\u043A\u0456\u043D\u0447\u0435\u043D\u043D\u0456 \u0444\u043E\u0440\u043C\u0438 \u0440\u0435\u0454\u0441\u0442\u0440\u0430\u0446\u0456\u0457! \u0412\u0430\u0448 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C \u2014 \u0446\u0435 \u0432\u0430\u0448 \u0443\u043D\u0456\u043A\u0430\u043B\u044C\u043D\u0438\u0439 \u043F\u0440\u043E\u043F\u0443\u0441\u043A. \u041F\u0440\u043E\u0441\u0442\u043E \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0456\u0442\u044C \u0439\u043E\u0433\u043E, \u0456 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 \u043C\u0438\u0442\u0442\u0454\u0432\u043E \u0432\u0430\u0441 \u0432\u043F\u0456\u0437\u043D\u0430\u0454. \u0426\u0435 \u0437\u0430\u043E\u0449\u0430\u0434\u0436\u0443\u0454 \u0432\u0430\u0448 \u0447\u0430\u0441 \u0456 \u0437\u0430\u0445\u0438\u0449\u0430\u0454 \u0432\u0430\u0448\u0443 \u043A\u043E\u043D\u0444\u0456\u0434\u0435\u043D\u0446\u0456\u0439\u043D\u0456\u0441\u0442\u044C.",copyRawError:"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u043D\u0435\u043E\u0431\u0440\u043E\u0431\u043B\u0435\u043D\u0443 \u043F\u043E\u043C\u0438\u043B\u043A\u0443",copied:"\u0421\u043A\u043E\u043F\u0456\u0439\u043E\u0432\u0430\u043D\u043E!",chainSelector:"\u0421\u0435\u043B\u0435\u043A\u0442\u043E\u0440 \u041B\u0430\u043D\u0446\u044E\u0433\u0430",closeModal:"\u0417\u0430\u043A\u0440\u0438\u0442\u0438 \u043C\u043E\u0434\u0430\u043B\u044C\u043D\u0435 \u0432\u0456\u043A\u043D\u043E",selectChain:"\u041E\u0431\u0435\u0440\u0456\u0442\u044C \u043B\u0430\u043D\u0446\u044E\u0433",chainOption:"\u0412\u0430\u0440\u0456\u0430\u043D\u0442 \u043B\u0430\u043D\u0446\u044E\u0433\u0430",openChainSelector:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0441\u0435\u043B\u0435\u043A\u0442\u043E\u0440 \u043B\u0430\u043D\u0446\u044E\u0433\u0430",currentChain:"\u041F\u043E\u0442\u043E\u0447\u043D\u0438\u0439 \u043B\u0430\u043D\u0446\u044E\u0433",scrollToTop:"\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u0438 \u0432\u0433\u043E\u0440\u0443",scrollToBottom:"\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u0438 \u0432\u043D\u0438\u0437",chainListContainer:"\u041A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440 \u0441\u043F\u0438\u0441\u043A\u0443 \u043B\u0430\u043D\u0446\u044E\u0433\u0456\u0432",walletControls:"\u041A\u0435\u0440\u0443\u0432\u0430\u043D\u043D\u044F \u0433\u0430\u043C\u0430\u043D\u0446\u0435\u043C",openWalletModal:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u043C\u043E\u0434\u0430\u043B\u044C\u043D\u0435 \u0432\u0456\u043A\u043D\u043E \u0433\u0430\u043C\u0430\u043D\u0446\u044F",walletConnected:"\u0413\u0430\u043C\u0430\u043D\u0435\u0446\u044C \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E",walletNotConnected:"\u0413\u0430\u043C\u0430\u043D\u0435\u0446\u044C \u043D\u0435 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E",walletBalance:"\u0411\u0430\u043B\u0430\u043D\u0441 \u0433\u0430\u043C\u0430\u043D\u0446\u044F",walletAddress:"\u0410\u0434\u0440\u0435\u0441\u0430 \u0433\u0430\u043C\u0430\u043D\u0446\u044F",transactionStatus:"\u0421\u0442\u0430\u0442\u0443\u0441 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0457",successIcon:"\u0406\u043A\u043E\u043D\u043A\u0430 \u0443\u0441\u043F\u0456\u0445\u0443",errorIcon:"\u0406\u043A\u043E\u043D\u043A\u0430 \u043F\u043E\u043C\u0438\u043B\u043A\u0438",replacedIcon:"\u0406\u043A\u043E\u043D\u043A\u0430 \u0437\u0430\u043C\u0456\u043D\u0438",statusIcon:"\u0406\u043A\u043E\u043D\u043A\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443",loading:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",unknownWallet:"\u041D\u0435\u0432\u0456\u0434\u043E\u043C\u0438\u0439 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C",walletAvatar:"\u0410\u0432\u0430\u0442\u0430\u0440 \u0433\u0430\u043C\u0430\u043D\u0446\u044F",ensAvatar:"ENS \u0430\u0432\u0430\u0442\u0430\u0440",walletIcon:"\u0406\u043A\u043E\u043D\u043A\u0430 \u0433\u0430\u043C\u0430\u043D\u0446\u044F",impersonateAddressEmpty:"\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0430\u0434\u0440\u0435\u0441\u0443 \u0430\u0431\u043E \u0456\u043C\u044F \u0433\u0430\u043C\u0430\u043D\u0446\u044F \u0434\u043B\u044F \u0456\u043C\u0456\u0442\u0430\u0446\u0456\u0457.",impersonateAddressNotCorrect:"\u0412\u0432\u0435\u0434\u0435\u043D\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u0430\u0431\u043E \u0456\u043C\u044F \u0433\u0430\u043C\u0430\u043D\u0446\u044F \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430. \u0421\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0437\u043D\u043E\u0432\u0443.",impersonateAddressConnected:"\u0421\u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u0432\u0456\u0434\u043A\u043B\u044E\u0447\u0456\u0442\u044C \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C \u0434\u043B\u044F \u0456\u043C\u0456\u0442\u0430\u0446\u0456\u0457 \u0456\u043D\u0448\u043E\u0457 \u0430\u0434\u0440\u0435\u0441\u0438.",legalIntro:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0430\u044E\u0447\u0438 \u0441\u0432\u0456\u0439 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C, \u0432\u0438 \u043F\u043E\u0433\u043E\u0434\u0436\u0443\u0454\u0442\u0435\u0441\u044C \u0437 \u043D\u0430\u0448\u0438\u043C\u0438",legalTerms:"\u0423\u043C\u043E\u0432\u0430\u043C\u0438 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F",legalPrivacy:"\u041F\u043E\u043B\u0456\u0442\u0438\u043A\u043E\u044E \u043A\u043E\u043D\u0444\u0456\u0434\u0435\u043D\u0446\u0456\u0439\u043D\u043E\u0441\u0442\u0456",legalAnd:"\u0442\u0430",carousel:"\u043A\u0430\u0440\u0443\u0441\u0435\u043B\u044C",carouselNavigation:"\u041D\u0430\u0432\u0456\u0433\u0430\u0446\u0456\u044F \u0441\u043B\u0430\u0439\u0434\u0430\u043C\u0438",goToSlide:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u0434\u043E \u0441\u043B\u0430\u0439\u0434\u0430 {index}: {title}",slideOfTotal:"\u0421\u043B\u0430\u0439\u0434 {index} \u0437 {total}",autoPlaying:"\u0410\u0432\u0442\u043E\u043F\u0440\u043E\u0433\u0440\u0430\u0432\u0430\u043D\u043D\u044F",paused:"\u041F\u0440\u0438\u0437\u0443\u043F\u0438\u043D\u0435\u043D\u043E",carouselInstructions:"\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0439\u0442\u0435 \u043A\u043B\u0430\u0432\u0456\u0448\u0456 \u0437\u0456 \u0441\u0442\u0440\u0456\u043B\u043A\u0430\u043C\u0438, \u0449\u043E\u0431 \u043F\u0435\u0440\u0435\u043C\u0438\u043A\u0430\u0442\u0438 \u0441\u043B\u0430\u0439\u0434\u0438, Space \u0430\u0431\u043E Enter, \u0449\u043E\u0431 \u043F\u0440\u0438\u0437\u0443\u043F\u0438\u043D\u0438\u0442\u0438 \u0447\u0438 \u0432\u0456\u0434\u043D\u043E\u0432\u0438\u0442\u0438 \u0430\u0432\u0442\u043E\u043F\u0440\u043E\u0433\u0440\u0430\u0432\u0430\u043D\u043D\u044F, Home \u0456 End, \u0449\u043E\u0431 \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u0434\u043E \u043F\u0435\u0440\u0448\u043E\u0433\u043E \u0439 \u043E\u0441\u0442\u0430\u043D\u043D\u044C\u043E\u0433\u043E \u0441\u043B\u0430\u0439\u0434\u0430. \u041D\u0430 \u0441\u0435\u043D\u0441\u043E\u0440\u043D\u0438\u0445 \u043F\u0440\u0438\u0441\u0442\u0440\u043E\u044F\u0445 \u0433\u043E\u0440\u0442\u0430\u0439\u0442\u0435 \u043B\u0456\u0432\u043E\u0440\u0443\u0447 \u0430\u0431\u043E \u043F\u0440\u0430\u0432\u043E\u0440\u0443\u0447.",networkIcon:"\u041C\u0435\u0440\u0435\u0436\u0430 {name}",backToPreviousStep:"\u041D\u0430\u0437\u0430\u0434 \u0434\u043E \u043F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u044C\u043E\u0433\u043E \u043A\u0440\u043E\u043A\u0443",opensWalletSelectionPage:"\u0412\u0456\u0434\u043A\u0440\u0438\u0432\u0430\u0454 \u0437\u043E\u0432\u043D\u0456\u0448\u043D\u044E \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0443 \u0432\u0438\u0431\u043E\u0440\u0443 \u0433\u0430\u043C\u0430\u043D\u0446\u044F",opensDocumentation:"\u0412\u0456\u0434\u043A\u0440\u0438\u0432\u0430\u0454 \u0437\u043E\u0432\u043D\u0456\u0448\u043D\u044E \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0456\u044E",connectsImpersonatedWallet:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0430\u0454 \u0430\u0434\u0440\u0435\u0441\u0443 \u0433\u0430\u043C\u0430\u043D\u0446\u044F \u0434\u043B\u044F \u0456\u043C\u043F\u0435\u0440\u0441\u043E\u043D\u0430\u0446\u0456\u0457",retriesConnection:"\u041F\u043E\u0432\u0442\u043E\u0440\u044E\u0454 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F \u0433\u0430\u043C\u0430\u043D\u0446\u044F",connectionStatus:"\u0421\u0442\u0430\u043D \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F: {status}",disclaimerLabel:"\u0417\u0430\u0441\u0442\u0435\u0440\u0435\u0436\u0435\u043D\u043D\u044F: {title}",disclaimerAdditionalInformation:"\u0414\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u0430 \u0456\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u044F \u0437\u0430\u0441\u0442\u0435\u0440\u0435\u0436\u0435\u043D\u043D\u044F",disclaimerActions:"\u0414\u0456\u0457 \u0437\u0430\u0441\u0442\u0435\u0440\u0435\u0436\u0435\u043D\u043D\u044F",actionAbout:"{action}: {topic}",viewAction:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438: {action}",disclaimerSummary:"\u0417\u0430\u0441\u0442\u0435\u0440\u0435\u0436\u0435\u043D\u043D\u044F: {topic}.",actionAvailable:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u0434\u0456\u044F: {action}.",walletIconsAnimation:"\u0410\u043D\u0456\u043C\u0430\u0446\u0456\u044F \u0456\u043A\u043E\u043D\u043E\u043A \u0433\u0430\u043C\u0430\u043D\u0446\u0456\u0432",popularWalletIcons:"\u0406\u043A\u043E\u043D\u043A\u0438 \u043F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u0438\u0445 \u0433\u0430\u043C\u0430\u043D\u0446\u0456\u0432",walletAddressOrEnsPlaceholder:"{address} \u0430\u0431\u043E ENS-\u0456\u043C'\u044F (.eth)",walletAddressOrSnsPlaceholder:"{address} \u0430\u0431\u043E SNS-\u0456\u043C'\u044F (.sol)",availableNetworks:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0456 \u043C\u0435\u0440\u0435\u0436\u0456",networkNameIcon:"\u0406\u043A\u043E\u043D\u043A\u0430 \u043C\u0435\u0440\u0435\u0436\u0456 {name}",networkSelectionTabs:"\u0412\u043A\u043B\u0430\u0434\u043A\u0438 \u0432\u0438\u0431\u043E\u0440\u0443 \u043C\u0435\u0440\u0435\u0436\u0456",networkTab:"\u041C\u0435\u0440\u0435\u0436\u0430 {name}",currentlySelected:"\u0432\u0438\u0431\u0440\u0430\u043D\u043E",unknown:"\u041D\u0435\u0432\u0456\u0434\u043E\u043C\u0430",walletIconsDescription:"\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u0456 \u0433\u0430\u043C\u0430\u043D\u0446\u0456, \u0437\u043E\u043A\u0440\u0435\u043C\u0430 {wallets}, \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u043E \u0437 \u0430\u043D\u0456\u043C\u0430\u0446\u0456\u0454\u044E, \u0449\u043E\u0431 \u043F\u0440\u043E\u0456\u043B\u044E\u0441\u0442\u0440\u0443\u0432\u0430\u0442\u0438 \u0457\u0445\u043D\u044E \u0440\u0456\u0437\u043D\u043E\u043C\u0430\u043D\u0456\u0442\u043D\u0456\u0441\u0442\u044C.",getWalletSummary:"\u0417\u043D\u0430\u0439\u043E\u043C\u0441\u0442\u0432\u043E \u0437 \u0433\u0430\u043C\u0430\u043D\u0446\u044F\u043C\u0438 Web3. \u0426\u0435\u0439 \u0440\u043E\u0437\u0434\u0456\u043B \u043F\u043E\u044F\u0441\u043D\u044E\u0454, \u0447\u043E\u043C\u0443 \u0433\u0430\u043C\u0430\u043D\u0446\u0456 \u0432\u0430\u0436\u043B\u0438\u0432\u0456 \u0434\u043B\u044F \u043A\u0435\u0440\u0443\u0432\u0430\u043D\u043D\u044F \u0446\u0438\u0444\u0440\u043E\u0432\u0438\u043C\u0438 \u0430\u043A\u0442\u0438\u0432\u0430\u043C\u0438 \u0442\u0430 \u0434\u043E\u0441\u043B\u0456\u0434\u0436\u0435\u043D\u043D\u044F Web3. \u0412\u0438\u0449\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u043E \u043A\u0456\u043B\u044C\u043A\u0430 \u043F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u0438\u0445 \u0433\u0430\u043C\u0430\u043D\u0446\u0456\u0432.",additionalNetworks:"\u0429\u0435 \u043C\u0435\u0440\u0435\u0436: {count}",noConnectorsAvailable:"\u041D\u0435\u043C\u0430\u0454 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0445 \u043A\u043E\u043D\u0435\u043A\u0442\u043E\u0440\u0456\u0432",connectingDetails:"\u0413\u0430\u043C\u0430\u043D\u0435\u0446\u044C: {wallet}, \u043C\u0435\u0440\u0435\u0436\u0430: {network}, \u0441\u0442\u0430\u043D: {status}",connectorsSection:"\u0420\u043E\u0437\u0434\u0456\u043B \u0433\u0430\u043C\u0430\u043D\u0446\u0456\u0432: {title}",connectorsList:"\u0413\u0430\u043C\u0430\u043D\u0446\u0456: {title}",noGroupConnectors:"\u041D\u0435\u043C\u0430\u0454 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0445 \u043A\u043E\u043D\u0435\u043A\u0442\u043E\u0440\u0456\u0432: {title}",noGroupWallets:"\u041D\u0435\u043C\u0430\u0454 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0445 \u0433\u0430\u043C\u0430\u043D\u0446\u0456\u0432: {title}",availableWalletConnectors:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0456 \u043A\u043E\u043D\u0435\u043A\u0442\u043E\u0440\u0438 \u0433\u0430\u043C\u0430\u043D\u0446\u0456\u0432",opensInNewTab:"(\u0432\u0456\u0434\u043A\u0440\u0438\u0432\u0430\u0454\u0442\u044C\u0441\u044F \u0432 \u043D\u043E\u0432\u0456\u0439 \u0432\u043A\u043B\u0430\u0434\u0446\u0456)",resolvingName:"\u0412\u0438\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F {service}-\u0456\u043C\u0435\u043D\u0456...",resolvedTo:"\u0410\u0434\u0440\u0435\u0441\u0430: {address}",legalInformation:"\u042E\u0440\u0438\u0434\u0438\u0447\u043D\u0430 \u0456\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u044F",disconnectAllDescription:"\u0412\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438 \u0432\u0441\u0456 \u0433\u0430\u043C\u0430\u043D\u0446\u0456 \u0439 \u0437\u0430\u043A\u0440\u0438\u0442\u0438 \u0432\u0456\u043A\u043D\u043E",explorerLinkDescription:"\u0412\u0456\u0434\u043A\u0440\u0438\u0432\u0430\u0454 \u0432 \u043D\u043E\u0432\u0456\u0439 \u0432\u043A\u043B\u0430\u0434\u0446\u0456 \u0430\u0434\u0440\u0435\u0441\u0443 \u0433\u0430\u043C\u0430\u043D\u0446\u044F {address} \u0432 \u043E\u0433\u043B\u044F\u0434\u0430\u0447\u0456 \u0431\u043B\u043E\u043A\u0447\u0435\u0439\u043D\u0443",explorerNotAvailable:"\u041E\u0433\u043B\u044F\u0434\u0430\u0447 \u0431\u043B\u043E\u043A\u0447\u0435\u0439\u043D\u0443 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439 \u0434\u043B\u044F \u0446\u0456\u0454\u0457 \u043C\u0435\u0440\u0435\u0436\u0456",connectWalletsAvailable:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C: \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u0433\u0430\u043C\u0430\u043D\u0446\u0456\u0432 \u2014 {count}",switchNetworkNetworksAvailable:"\u0417\u043C\u0456\u043D\u0438\u0442\u0438 \u043C\u0435\u0440\u0435\u0436\u0443: \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u043C\u0435\u0440\u0435\u0436 \u2014 {count}",transactionsInAppCount:"\u0422\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0457 \u0432 \u0437\u0430\u0441\u0442\u043E\u0441\u0443\u043D\u043A\u0443: {count}",transactionsAvailable:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0439: {count}",noTransactionsForWallet:"\u0414\u043B\u044F \u0446\u044C\u043E\u0433\u043E \u0433\u0430\u043C\u0430\u043D\u0446\u044F \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0439 \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E",walletName:"\u0406\u043C'\u044F \u0433\u0430\u043C\u0430\u043D\u0446\u044F: {name}",loadingWalletName:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u0456\u043C\u0435\u043D\u0456 \u0433\u0430\u043C\u0430\u043D\u0446\u044F",copyWalletAddress:"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0443 \u0433\u0430\u043C\u0430\u043D\u0446\u044F",refreshBalance:"\u041E\u043D\u043E\u0432\u0438\u0442\u0438 \u0431\u0430\u043B\u0430\u043D\u0441",noBalanceAvailable:"\u041D\u0435\u043C\u0430\u0454 \u0434\u0430\u043D\u0438\u0445 \u043F\u0440\u043E \u0431\u0430\u043B\u0430\u043D\u0441",balanceUpdated:"\u0411\u0430\u043B\u0430\u043D\u0441 \u043E\u043D\u043E\u0432\u043B\u0435\u043D\u043E: {balance}",transactionHistoryNotAvailable:"\u0406\u0441\u0442\u043E\u0440\u0456\u044F \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0439 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430",transactionHistoryLoadError:"\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0456\u0441\u0442\u043E\u0440\u0456\u044E \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0439. \u0421\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u0456\u0437\u043D\u0456\u0448\u0435.",transactionsInAppFor:"\u0422\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0456\u0457 \u0432 \u0437\u0430\u0441\u0442\u043E\u0441\u0443\u043D\u043A\u0443 \u0434\u043B\u044F {address}",networkWithId:"\u041C\u0435\u0440\u0435\u0436\u0430: {chainId}",walletWithName:"\u0413\u0430\u043C\u0430\u043D\u0435\u0446\u044C {name}",networkSelector:"\u0432\u0438\u0431\u0456\u0440 \u043C\u0435\u0440\u0435\u0436\u0456",buttonRole:"\u043A\u043D\u043E\u043F\u043A\u0430",loadingState:"\u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",disabledState:"\u0432\u0438\u043C\u043A\u043D\u0435\u043D\u043E",buttonDisabled:"\u041A\u043D\u043E\u043F\u043A\u0430 \u0432\u0438\u043C\u043A\u043D\u0435\u043D\u0430",selectWalletOptions:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u0432\u0438\u0431\u0440\u0430\u0442\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0438 {name}",selectOptions:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u0432\u0438\u0431\u0440\u0430\u0442\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0438",walletInformation:"\u0406\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u044F \u043F\u0440\u043E \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C",noConnectionsFound:"\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u044C \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E",walletConnectionsManager:"\u041A\u0435\u0440\u0443\u0432\u0430\u043D\u043D\u044F \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F\u043C\u0438 \u0433\u0430\u043C\u0430\u043D\u0446\u0456\u0432",switchedToWallet:"\u041F\u0435\u0440\u0435\u043C\u043A\u043D\u0435\u043D\u043E \u043D\u0430 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C {name}",disconnectedWallet:"\u0413\u0430\u043C\u0430\u043D\u0435\u0446\u044C {name} \u0432\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E",connectedWallet:"\u0413\u0430\u043C\u0430\u043D\u0435\u0446\u044C {name} \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E",copyAddress:"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0443",copy:"\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438",explorer:"\u041E\u0433\u043B\u044F\u0434\u0430\u0447",removeFromRecent:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 {name} \u0437 \u043D\u0435\u0449\u043E\u0434\u0430\u0432\u043D\u0456\u0445 \u0433\u0430\u043C\u0430\u043D\u0446\u0456\u0432"};export{e as a,n as b};
@@ -0,0 +1 @@
1
+ import {a}from'./chunk-6EDQ7JRZ.js';import {d}from'./chunk-ZVADGOGQ.js';import {b as b$1}from'./chunk-3LWAAUG4.js';import {textCenterEllipsis}from'@tuwaio/nova-core';import {OrbitAdapter,getAdapterFromConnectorType,formatConnectorName}from'@tuwaio/orbit-core';import {createContext,useState,useRef,useCallback,useEffect,useContext,useMemo}from'react';import {useSiwx,getSatelliteSiwxFields}from'@tuwaio/siwx-react';function ve(e){let{abbreviateSymbols:t=12,maxNameLength:o=30,autoRetry:n=false,retryDelay:a=3e3}=e,r=d(L=>L.activeConnection),l=d(L=>L.getAdapter),i=r?.address,d$1=r?.connectorType,s=d$1?l(getAdapterFromConnectorType(d$1)):null,[u,f]=useState(null),[O,p]=useState(null),[v,C]=useState(false),[A,g]=useState(null),N=useRef(null),w=useRef(null),D=!!(s&&"getName"in s&&typeof s.getName=="function"),U=!!(s&&"getAvatar"in s&&typeof s.getAvatar=="function"),h=useCallback(()=>{N.current&&(N.current.abort(),N.current=null),w.current!==null&&(clearTimeout(w.current),w.current=null);},[]),T=useCallback(async function L(){if(h(),!i||!s||!D){f(null),p(null),C(false),g(null);return}N.current=new AbortController;let{signal:x}=N.current;C(true),g(null),f(null),p(null);try{if(x.aborted)return;let y=await s.getName?.(i);if(x.aborted)return;if(y&&(f(y),U))try{let S=await s.getAvatar?.(y);x.aborted||p(S??null);}catch(S){console.warn("Failed to fetch avatar:",S),x.aborted||p(null);}}catch(y){if(x.aborted)return;let S=y instanceof Error?y.message:"Failed to fetch name service data";console.error("Failed to fetch name service data:",y),g(S),f(null),p(null),n&&(w.current=setTimeout(()=>{L();},a));}finally{x.aborted||C(false);}},[i,s,D,U,n,a,h]),Y=useCallback(()=>{g(null),T();},[T]);useEffect(()=>(T(),h),[T,h]),useEffect(()=>h,[h]);let Z=u?u.length>o?textCenterEllipsis(u,t,t):u:i?textCenterEllipsis(i,t,t):void 0;return {ensName:u,ensAvatar:O,isLoading:v,ensNameAbbreviated:Z,error:A,retry:Y}}var M=class extends Error{constructor(t="useNovaConnect must be used within NovaConnectProvider"){super(t),this.name="NovaConnectProviderError";}},R=createContext(void 0),Ae=()=>{let e=useContext(R);if(!e)throw new M;return e},Ne=()=>useContext(R)!==void 0,Le=()=>useContext(R)??null;var re=createContext(a),G=()=>useContext(re),ke=e=>G()[e],Ie=e=>{let t=G(),o={};for(let n of e)o[n]=t[n];return o},Ee=(e,t)=>!!e[t]?.trim(),Be=e=>{let t=G(),n={actions:["connectWallet","disconnect","connecting","connected","tryAgain","back","connect"],states:["success","error","replaced","loading"],accessibility:["chainSelector","closeModal","selectChain","walletControls","openWalletModal"],transactions:["transactionLoading","transactionSuccess","transactionError","transactionReplaced","recent"]}[e],a={};for(let r of n)a[r]=t[r];return a},Pe=e=>e===a,Me=(e,t,o)=>{let n=e[t];return n&&n.trim()?n:o||a[t]||t.toString()},We=(e,t)=>{let o={};for(let n of t)o[n]=e[n];return o};function Ue(e){let t=d(i=>i.activeConnection),{signIn:o,signOut:n}=useSiwx(),a=useCallback(async(i,d)=>{let s=i??t;if(!s?.address||!s?.chainId)throw new Error("[useNovaSiwx] No active connection available.");if(!s.signMessage)throw new Error("[useNovaSiwx] Connection missing signMessage capability.");let u=d??e?.verifier;if(!u)throw new Error("[useNovaSiwx] Verifier callback required to complete SIWX sign in.");let f={address:String(s.address),chainId:s.chainId,signMessage:s.signMessage,isConnected:s.isConnected},O=getSatelliteSiwxFields(f,e);return o({signer:s.signMessage,verifier:u,fields:O})},[t,o,e]),r=e?.destroyer,l=useCallback(async()=>{if(n(),r)try{await r();}catch(i){console.warn("[useNovaSiwx] Failed to execute session destroyer on signOut:",i);}},[n,r]);return {signIn:a,signOut:l}}function ce(e,t){switch(e){case OrbitAdapter.EVM:return (t.appChains??[]).map(o=>o.id).filter(o=>typeof o=="number");case OrbitAdapter.SOLANA:return t.solanaRPCUrls?Object.keys(t.solanaRPCUrls):[];default:return []}}function $(e){let{connectorType:t,chains:o,...n}=e;if(!t)return console.warn("getChainsListByConnectorType: connectorType is required"),[];let a=getAdapterFromConnectorType(t),r=b$1(a);if(r)try{return r.getChains(n,o)}catch(l){console.warn(`getChainsListByConnectorType: the ${a} chain helpers failed:`,l);}return ce(a,n)}function qe(e){let t=b$1(OrbitAdapter.EVM);return t?t.isChainList(e):e.length>0&&e.every(o=>typeof o=="number")}function He(e){let t=b$1(OrbitAdapter.SOLANA);return t?t.isChainList(e):e.length>0&&e.every(o=>typeof o=="string")}function q(e){if(!e||typeof e!="object"||!("connectedWallet"in e))return;let{connectedWallet:t}=e;if(!t||typeof t!="object"||!("chains"in t))return;let{chains:o}=t;if(Array.isArray(o))return o.filter(n=>typeof n=="string"||typeof n=="number")}var b={[OrbitAdapter.EVM]:1,[OrbitAdapter.SOLANA]:"mainnet",[OrbitAdapter.Starknet]:"0x534e5f4d41494e"};function Je({selectedAdapter:e,appChains:t,solanaRPCUrls:o}){switch(e){case OrbitAdapter.EVM:{let n=t?.[0];return n?.id&&typeof n.id=="number"?n.id:(process.env.NODE_ENV==="development"&&!t?.length&&console.warn("getConnectChainId: No EVM chains configured, using Ethereum Mainnet"),b[OrbitAdapter.EVM])}case OrbitAdapter.SOLANA:{if(o&&typeof o=="object"){let n=Object.keys(o);if(n.length>0)return n[0]}return process.env.NODE_ENV==="development"&&!o&&console.warn("getConnectChainId: No Solana RPC URLs configured, using mainnet"),b[OrbitAdapter.SOLANA]}case OrbitAdapter.Starknet:return process.env.NODE_ENV==="development"&&console.info("getConnectChainId: Using default Starknet chain ID"),b[OrbitAdapter.Starknet];default:return process.env.NODE_ENV==="development"&&console.error("getConnectChainId: Unknown adapter:",e),b[OrbitAdapter.EVM]}}function Qe({selectedAdapter:e,appChains:t,solanaRPCUrls:o}){switch(e){case OrbitAdapter.EVM:{let n=t?.map(a=>a.id).filter(Boolean);return n&&n.length>0?n:[b[OrbitAdapter.EVM]]}case OrbitAdapter.SOLANA:{let n=o?Object.keys(o):[];return n.length>0?n:[b[OrbitAdapter.SOLANA]]}case OrbitAdapter.Starknet:return [b[OrbitAdapter.Starknet]];default:return [b[OrbitAdapter.EVM]]}}function le(e,t){if(!e||typeof e!="object")return null;let o=e;if(!o.name||typeof o.name!="string")return null;let n;if("icon"in o){let a=o.icon;if(typeof a=="string")n=a;else if(a&&typeof a=="object"&&"toString"in a&&typeof a.toString=="function")try{n=a.toString();}catch{}}return {name:o.name,icon:n,adapter:t,originalConnector:o}}function H({connectors:e,excludeConnectors:t=["injected"]}={connectors:{}}){if(!e||Object.keys(e).length===0)return [];let o=new Set(t.map(r=>formatConnectorName(r))),n=[];Object.entries(e).forEach(([r,l])=>{if(Array.isArray(l)){let i=r;l.forEach(d=>{let s=le(d,i);if(s){let u=formatConnectorName(s.name);o.has(u)||n.push(s);}});}});let a=new Map;return n.forEach(r=>{let l=formatConnectorName(r.name);a.has(l)||a.set(l,{name:r.name,icon:r.icon,adapters:[],connectors:[]});let i=a.get(l);i.adapters.includes(r.adapter)||i.adapters.push(r.adapter);let d=Object.assign({},r.originalConnector,{adapter:r.adapter});i.connectors.push(d),!i.icon&&r.icon&&(i.icon=r.icon);}),Array.from(a.values()).sort((r,l)=>r.name.localeCompare(l.name,void 0,{sensitivity:"base"}))}function tt(e){return Object.values(e).some(t=>Array.isArray(t)&&t.length>0)}function de(e){try{if(e&&typeof e=="object"&&"adapter"in e)return e.adapter}catch{}}function X(e,t){return de(e)===t}function at({connectors:e,selectedAdapter:t}){if(!e||Object.keys(e).length===0)return [];let o=H({connectors:e});return t?o.filter(n=>n.adapters.includes(t)&&n.connectors.some(a=>X(a,t))).map(n=>{let a=n.connectors.filter(r=>X(r,t));return {...n,adapters:[t],connectors:a}}).filter(n=>n.connectors.length>0):o}function it(e,t){let o=e[t];return Array.isArray(o)&&o.length>0}function gt({activeConnection:e,appChains:t,solanaRPCUrls:o}){return {chainsList:useMemo(()=>$({connectorType:e?e.connectorType:`${OrbitAdapter.EVM}:not-connected`,appChains:t,solanaRPCUrls:o,chains:q(e)}),[e,t,o])}}function At(){let[e,t]=useState({}),[o,n]=useState(false),a=useRef(null),r=d(p=>p.activeConnection),l=d(p=>p.getAdapter),i=r?.chainId&&r?.address?`${r.address}-${r.chainId}`:null,d$1=r?.connectorType?l(getAdapterFromConnectorType(r.connectorType)):null,s=d$1&&"getBalance"in d$1&&typeof d$1.getBalance=="function",u=useCallback(async(p=false)=>{if(!r?.address||!d$1||!r?.chainId||!i||!s){n(false);return}let v=`${i}-${Date.now()}`;if(a.current=v,!p&&e[i]){n(false);return}n(true);try{let C=await d$1.getBalance(r.address,r.chainId);a.current===v&&t(A=>({...A,[i]:C}));}catch(C){console.error(`Failed to fetch native balance for ${i}:`,C),p&&a.current===v&&t(A=>{let g={...A};return delete g[i],g});}finally{a.current===v&&n(false);}},[r,d$1,i,s,e]),f=useCallback(()=>{u(true);},[u]);return useEffect(()=>{i&&s&&!e[i]?u(false):(!i||!s)&&n(false);},[i,s,e,u]),useEffect(()=>()=>{a.current=null;},[]),{balance:i&&e[i]||null,isLoading:o,refetch:f}}export{gt as A,At as B,ve as a,M as b,R as c,Ae as d,Ne as e,Le as f,re as g,G as h,ke as i,Ie as j,Ee as k,Be as l,Pe as m,Me as n,We as o,Ue as p,$ as q,qe as r,He as s,q as t,Je as u,Qe as v,H as w,tt as x,at as y,it as z};