@tuwaio/nova-connect 0.6.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -155
- package/dist/chunk-3LWAAUG4.js +1 -0
- package/dist/chunk-6EDQ7JRZ.js +1 -0
- package/dist/chunk-AGE6EFTV.js +1 -0
- package/dist/chunk-ENXSDTRV.js +2 -0
- package/dist/chunk-Q4FCNEIJ.cjs +2 -0
- package/dist/chunk-R5V3K52O.cjs +1 -0
- package/dist/chunk-YJRNNNR6.cjs +1 -0
- package/dist/chunk-ZVUCC2QP.cjs +1 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.cts +5140 -2914
- package/dist/components/index.d.ts +5140 -2914
- package/dist/components/index.js +1 -1
- package/dist/evm/index.cjs +1 -1
- package/dist/evm/index.d.cts +15 -9
- package/dist/evm/index.d.ts +15 -9
- package/dist/evm/index.js +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +76 -51
- package/dist/hooks/index.d.ts +76 -51
- package/dist/hooks/index.js +1 -1
- package/dist/i18n/index.cjs +1 -1
- package/dist/i18n/index.d.cts +1 -1
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.css +0 -22
- package/dist/index.d.cts +271 -879
- package/dist/index.d.ts +271 -879
- package/dist/index.js +1 -1
- package/dist/satellite/index.cjs +1 -1
- package/dist/satellite/index.d.cts +1 -1
- package/dist/satellite/index.d.ts +1 -1
- package/dist/satellite/index.js +1 -1
- package/dist/solana/index.cjs +1 -1
- package/dist/solana/index.d.cts +16 -9
- package/dist/solana/index.d.ts +16 -9
- package/dist/solana/index.js +1 -1
- package/dist/types-CnOiSyvZ.d.cts +400 -0
- package/dist/types-CnOiSyvZ.d.ts +400 -0
- package/dist/useWalletNativeBalance-CPK-PoXG.d.ts +918 -0
- package/dist/useWalletNativeBalance-DMPPRldX.d.cts +918 -0
- package/package.json +28 -68
- package/dist/chunk-5MOVHUHI.js +0 -2
- package/dist/chunk-7K4ENNWO.cjs +0 -2
- package/dist/chunk-7TYZT7ZD.cjs +0 -1
- package/dist/chunk-ARBYH7CW.js +0 -1
- package/dist/chunk-K44IHM6B.cjs +0 -1
- package/dist/chunk-MGBN4EIT.cjs +0 -1
- package/dist/chunk-NQ5AECZQ.js +0 -1
- package/dist/chunk-S3IRVZMG.js +0 -1
- package/dist/evm-DUQXCW22.js +0 -1
- package/dist/evm-KSA7PJIK.cjs +0 -1
- package/dist/getChainsListByConnectorType-QCNOPM6I.cjs +0 -1
- package/dist/getChainsListByConnectorType-YZZUYC6D.js +0 -1
- package/dist/solana-CVUSQUPL.cjs +0 -1
- package/dist/solana-GDE2KIT6.js +0 -1
- package/dist/types-DxUn8qmU.d.cts +0 -108
- package/dist/types-DxUn8qmU.d.ts +0 -108
- package/dist/useWalletNativeBalance-BuiJip3d.d.cts +0 -743
- package/dist/useWalletNativeBalance-DrgdoQa-.d.ts +0 -743
- /package/dist/{chunk-V6XDFRWV.cjs → chunk-EGATOYHY.cjs} +0 -0
- /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
|
[](https://www.npmjs.com/package/@tuwaio/nova-connect)
|
|
4
|
-
[](
|
|
4
|
+
[](https://github.com/TuwaIO/nova-uikit/blob/main/packages/nova-connect/LICENSE)
|
|
5
5
|
|
|
6
|
-
`@tuwaio/nova-connect` is the
|
|
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
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
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
|
-
#
|
|
31
|
-
pnpm add @tuwaio/
|
|
49
|
+
# EVM
|
|
50
|
+
pnpm add @tuwaio/orbit-evm @tuwaio/satellite-evm @wagmi/core viem
|
|
32
51
|
|
|
33
|
-
#
|
|
34
|
-
pnpm add @tuwaio/
|
|
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
|
-
|
|
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
|
-
|
|
40
|
-
|
|
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
|
-
## 🚀
|
|
46
|
-
|
|
47
|
-
### 1. Global Providers Integration
|
|
68
|
+
## 🚀 Usage
|
|
48
69
|
|
|
49
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
import {
|
|
55
|
-
import {
|
|
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 {
|
|
61
|
-
|
|
62
|
-
import {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
<
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
101
|
-
import { ConnectButton } from '@tuwaio/nova-connect/components';
|
|
102
|
-
|
|
103
|
-
export function NavigationHeader() {
|
|
108
|
+
export function Header() {
|
|
104
109
|
return (
|
|
105
|
-
<header
|
|
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
|
-
##
|
|
121
|
+
## 🗄️ Browser Storage
|
|
144
122
|
|
|
145
|
-
Nova Connect
|
|
123
|
+
Nova Connect reads and writes these `localStorage` keys through the helpers of `@tuwaio/orbit-core`:
|
|
146
124
|
|
|
147
|
-
|
|
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
|
-
|
|
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
|
-
|
|
152
|
-
import { NovaConnectProvider } from '@tuwaio/nova-connect';
|
|
153
|
-
import { NovaSiwxWatcher } from '@tuwaio/nova-connect/watchers';
|
|
132
|
+
---
|
|
154
133
|
|
|
155
|
-
|
|
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
|
-
|
|
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
|
-
|
|
138
|
+
---
|
|
184
139
|
|
|
185
|
-
|
|
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](
|
|
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};
|