@talken/talkenkit 2.4.22 → 2.4.23
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 +159 -325
- package/dist/Arc-R3PUWRPJ.js +7 -0
- package/dist/Brave-24BM36UM.js +7 -0
- package/dist/Browser-4R4QKTV2.js +7 -0
- package/dist/Chrome-TLI42HDP.js +7 -0
- package/dist/Edge-AZ34LAFM.js +7 -0
- package/dist/Firefox-ZDK7RHKK.js +7 -0
- package/dist/Linux-VYP66PDO.js +7 -0
- package/dist/Macos-5QL4JBJE.js +7 -0
- package/dist/Opera-BKMCKUXC.js +7 -0
- package/dist/Safari-PXQIVS6N.js +7 -0
- package/dist/Windows-GTAT3OTE.js +7 -0
- package/dist/abcWallet-AYWSIGAG.js +7 -0
- package/dist/abcWallet-O4GH6RHS.js +181 -0
- package/dist/ar_AR-ZRPPM56D.js +7 -0
- package/dist/arbitrum-IA4OWRTN.js +7 -0
- package/dist/argentWallet-M6SBG4CU.js +7 -0
- package/dist/assets-NU2OP443.js +7 -0
- package/dist/avalanche-MXEFEDSW.js +7 -0
- package/dist/base-Z4LFBE5D.js +7 -0
- package/dist/berasigWallet-NNBFDHFK.js +7 -0
- package/dist/bestWallet-XRIABRUE.js +7 -0
- package/dist/bifrostWallet-ORF3DABG.js +7 -0
- package/dist/binanceWallet-BCWLBY3Q.js +7 -0
- package/dist/bitgetWallet-CLYTW54T.js +7 -0
- package/dist/bitskiWallet-X5NWL5CE.js +7 -0
- package/dist/bitverseWallet-6SGDFATJ.js +7 -0
- package/dist/blast-TN2WIMWF.js +7 -0
- package/dist/bloomWallet-MXLAOWS6.js +7 -0
- package/dist/braveWallet-6QAF4GDN.js +7 -0
- package/dist/bsc-RVE67I5L.js +7 -0
- package/dist/bybitWallet-GR4PFINZ.js +7 -0
- package/dist/celo-E6XU57FO.js +7 -0
- package/dist/chunk-N7AWNQBH.js +5319 -0
- package/dist/clvWallet-ZIMSRU5J.js +7 -0
- package/dist/coin98Wallet-RFXRNVWP.js +7 -0
- package/dist/coinbaseWallet-WWX6LF36.js +7 -0
- package/dist/compassWallet-3LBTWCKI.js +7 -0
- package/dist/connect-MR6XDLIE.js +7 -0
- package/dist/coreWallet-52SXITOT.js +7 -0
- package/dist/create-X4WFHLCW.js +7 -0
- package/dist/cronos-ROYR77VZ.js +7 -0
- package/dist/dawnWallet-ONVAA3S4.js +7 -0
- package/dist/de_DE-GYZFZXWH.js +7 -0
- package/dist/desigWallet-WJMSF3PS.js +7 -0
- package/dist/en_US-AV7YDYDW.js +7 -0
- package/dist/enkryptWallet-FR4QCDFK.js +7 -0
- package/dist/es_419-OGVOQEFZ.js +7 -0
- package/dist/ethereum-RFBAMUVK.js +7 -0
- package/dist/flow-NBCRNYVF.js +7 -0
- package/dist/foxWallet-5ESSNXJV.js +7 -0
- package/dist/fr_FR-Q5QBQBX2.js +1355 -0
- package/dist/frameWallet-FDBUY4AA.js +7 -0
- package/dist/frontierWallet-HNIG7QYQ.js +7 -0
- package/dist/gateWallet-ZVEZILRP.js +7 -0
- package/dist/gnosis-T7U5EW2Q.js +7 -0
- package/dist/hardhat-NEEC6JX7.js +7 -0
- package/dist/hi_IN-7I7LRHGW.js +7 -0
- package/dist/id_ID-ZMGZ2JFV.js +7 -0
- package/dist/imTokenWallet-N2MYFADO.js +7 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +168 -243
- package/dist/injectedWallet-H7LYKTQS.js +7 -0
- package/dist/iopayWallet-IJHJ7NYT.js +7 -0
- package/dist/ja_JP-NYBCHQTZ.js +7 -0
- package/dist/kaia-A33DVQBT.js +7 -0
- package/dist/kaiaWallet-5K6WZ3AH.js +7 -0
- package/dist/kaikasWallet-F6Z6IPWN.js +7 -0
- package/dist/ko_KR-67WE736M.js +7 -0
- package/dist/krakenWallet-DAOXUKWO.js +7 -0
- package/dist/kresusWallet-AUJWLAOF.js +7 -0
- package/dist/ledgerWallet-KZKJ5Q2S.js +7 -0
- package/dist/login-CWDTIDNK.js +7 -0
- package/dist/magicEden-PKT2ZXEQ.js +7 -0
- package/dist/manta-5V6W5D7G.js +7 -0
- package/dist/mantle-KBL3OIYT.js +7 -0
- package/dist/metaMaskWallet-YFHEHW7V.js +7 -0
- package/dist/mewWallet-6V4UZOQC.js +7 -0
- package/dist/ms_MY-65AJIBUS.js +7 -0
- package/dist/nestWallet-BFZZZYLV.js +7 -0
- package/dist/oktoWallet-GJFOPPEA.js +7 -0
- package/dist/okxWallet-GJMKZIND.js +7 -0
- package/dist/omniWallet-DEYUMT4A.js +7 -0
- package/dist/oneInchWallet-D7BQOLOO.js +7 -0
- package/dist/oneKeyWallet-4MM7G2SZ.js +7 -0
- package/dist/optimism-YWJ3IQHA.js +7 -0
- package/dist/paraSwapWallet-TMV5MUEF.js +7 -0
- package/dist/phantomWallet-IPGVKCAB.js +7 -0
- package/dist/polygon-WWEUOMKW.js +7 -0
- package/dist/pt_BR-DMJANC65.js +7 -0
- package/dist/rabbyWallet-FLVUU35F.js +7 -0
- package/dist/rainbowWallet-2SR6TVBF.js +7 -0
- package/dist/ramperWallet-AF5AKK2S.js +7 -0
- package/dist/refresh-HJGJRASX.js +7 -0
- package/dist/ronin-PNHX5V6H.js +7 -0
- package/dist/roninWallet-SAB5ESVK.js +7 -0
- package/dist/ru_RU-WER7RQ6A.js +1355 -0
- package/dist/safeWallet-VUYZPLY4.js +7 -0
- package/dist/safeheronWallet-6JG77AKC.js +7 -0
- package/dist/safepalWallet-KQJ4OCNH.js +7 -0
- package/dist/scan-DEOT2M37.js +7 -0
- package/dist/scroll-NMZWDUQH.js +7 -0
- package/dist/seifWallet-QATOS33A.js +7 -0
- package/dist/services/AbcAuthService.d.ts +11 -12
- package/dist/sign-A7IJEUT5.js +7 -0
- package/dist/subWallet-LOZELSAO.js +7 -0
- package/dist/tahoWallet-L6KHUNKD.js +7 -0
- package/dist/talismanWallet-BLXUHONV.js +7 -0
- package/dist/th_TH-JOSHEZ6D.js +1355 -0
- package/dist/themes/baseTheme.js +0 -1
- package/dist/themes/darkTheme.js +0 -1
- package/dist/themes/lightTheme.js +0 -1
- package/dist/themes/midnightTheme.js +0 -1
- package/dist/tokenPocketWallet-BVMBOYTC.js +7 -0
- package/dist/tokenaryWallet-Z2IGVXSA.js +7 -0
- package/dist/tr_TR-EAMG2YPO.js +1355 -0
- package/dist/trustWallet-E2GVGE4U.js +7 -0
- package/dist/uk_UA-GO2TRVWA.js +1355 -0
- package/dist/uniswapWallet-T26M44R7.js +7 -0
- package/dist/utils/apiClientFactory.d.ts +1 -6
- package/dist/utils/embeddedTxAdapter.d.ts +54 -0
- package/dist/valoraWallet-RX3ONO47.js +7 -0
- package/dist/vi_VN-5HLLSOJA.js +7 -0
- package/dist/walletConnectWallet-FNSU4KNU.js +7 -0
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.d.ts +0 -3
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.d.ts +1 -3
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +7 -6
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.d.ts +3 -4
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +3 -4
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.d.ts +4 -6
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +37 -44
- package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.d.ts +1 -2
- package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.d.ts +1 -3
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +8 -8
- package/dist/wallets/walletConnectors/abcWallet/api/GasApi.d.ts +1 -2
- package/dist/wallets/walletConnectors/abcWallet/api/GasApi.js +1 -5
- package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.js +2 -2
- package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiSingleton.js +4 -9
- package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.d.ts +2 -4
- package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.js +1 -5
- package/dist/wallets/walletConnectors/abcWallet/api/index.d.ts +3 -68
- package/dist/wallets/walletConnectors/abcWallet/api/index.js +6 -41
- package/dist/wallets/walletConnectors/abcWallet/constants.d.ts +1 -38
- package/dist/wallets/walletConnectors/abcWallet/constants.js +1 -7
- package/dist/wallets/walletConnectors/abcWallet/index.d.ts +3 -3
- package/dist/wallets/walletConnectors/abcWallet/index.js +33 -45
- package/dist/wallets/walletConnectors/abcWallet/resolveTalkenApiUrl.d.ts +1 -0
- package/dist/wallets/walletConnectors/abcWallet/resolveTalkenApiUrl.js +7 -0
- package/dist/wallets/walletConnectors/abcWallet/types.d.ts +4 -4
- package/dist/wallets/walletConnectors/abcWallet/utils.js +2 -2
- package/dist/wallets/walletConnectors/chunk-35RTM3PL.js +1 -0
- package/dist/wallets/walletConnectors/chunk-AFM6KHDP.js +314 -0
- package/dist/wallets/walletConnectors/chunk-AXMN57KP.js +1387 -0
- package/dist/wallets/walletConnectors/chunk-BYZ5QLMX.js +436 -0
- package/dist/wallets/walletConnectors/chunk-CC6GTQBN.js +148 -0
- package/dist/wallets/walletConnectors/chunk-FAVNVTIA.js +479 -0
- package/dist/wallets/walletConnectors/chunk-GFWUFYT2.js +16 -0
- package/dist/wallets/walletConnectors/chunk-QP36UXD5.js +54 -0
- package/dist/wallets/walletConnectors/chunk-R6ZE7JAZ.js +15 -0
- package/dist/wallets/walletConnectors/chunk-RIJTOH57.js +771 -0
- package/dist/wallets/walletConnectors/chunk-RY43MKRA.js +552 -0
- package/dist/wallets/walletConnectors/chunk-TQXCRSMS.js +199 -0
- package/dist/wallets/walletConnectors/chunk-URFU24K7.js +273 -0
- package/dist/wallets/walletConnectors/chunk-USS5CPXQ.js +54 -0
- package/dist/wallets/walletConnectors/chunk-VQYS4NXP.js +314 -0
- package/dist/wallets/walletConnectors/chunk-YPM7FC4M.js +104 -0
- package/dist/wallets/walletConnectors/chunk-Z3L3JJNU.js +356 -0
- package/dist/wallets/walletConnectors/index.js +76 -76
- package/dist/wigwamWallet-5GKUN7ZJ.js +7 -0
- package/dist/xdc-X7V4QFNF.js +7 -0
- package/dist/xdefiWallet-ZA65GDWS.js +7 -0
- package/dist/zealWallet-URNQ2AWF.js +7 -0
- package/dist/zerionWallet-CYFHB5PA.js +7 -0
- package/dist/zetachain-BMJKVYBN.js +7 -0
- package/dist/zh_CN-THPIFVWJ.js +7 -0
- package/dist/zh_HK-R7XP4TGF.js +7 -0
- package/dist/zh_TW-F5LD752V.js +7 -0
- package/dist/zkSync-JL26RB7U.js +7 -0
- package/dist/zora-YZH32HP3.js +7 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
# TalkenKit
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Enhanced wallet connection library with embedded wallet support
|
|
4
4
|
|
|
5
|
-
TalkenKit is a React library for wallet connection, forked from RainbowKit, with integrated ABC WaaS (Wallet-as-a-Service) support for embedded wallets
|
|
5
|
+
TalkenKit is a React library for wallet connection, forked from [RainbowKit](https://rainbowkit.com), with integrated ABC WaaS (Wallet-as-a-Service) support for embedded wallets.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- **Embedded Wallets
|
|
10
|
-
- **Traditional Wallets
|
|
11
|
-
- **Multi-Chain
|
|
12
|
-
- **MPC Security
|
|
13
|
-
- **
|
|
9
|
+
- 🔐 **Embedded Wallets** - Email and social login (Google, Apple, Telegram, X)
|
|
10
|
+
- 🌈 **Traditional Wallets** - 60+ wallet connectors (MetaMask, WalletConnect, etc.)
|
|
11
|
+
- ⛓️ **Multi-Chain** - EVM and Solana chains with auto-reconnect support
|
|
12
|
+
- 🔑 **MPC Security** - No seed phrases, MPC-based key management
|
|
13
|
+
- 🎨 **Customizable** - Built on wagmi and viem with full theming support
|
|
14
|
+
- 🔄 **Auto-Reconnect** - External wallets automatically reconnect after page refresh
|
|
14
15
|
|
|
15
|
-
##
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
### Create New App
|
|
19
|
+
|
|
20
|
+
Scaffold a new TalkenKit + wagmi + Next.js app:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm create @talken/talkenkit@latest
|
|
24
|
+
# or
|
|
25
|
+
pnpm create @talken/talkenkit@latest
|
|
26
|
+
# or
|
|
27
|
+
yarn create @talken/talkenkit
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Add to Existing App
|
|
16
31
|
|
|
17
32
|
```bash
|
|
18
33
|
npm install @talken/talkenkit wagmi viem @tanstack/react-query
|
|
@@ -20,21 +35,19 @@ npm install @talken/talkenkit wagmi viem @tanstack/react-query
|
|
|
20
35
|
pnpm add @talken/talkenkit wagmi viem @tanstack/react-query
|
|
21
36
|
```
|
|
22
37
|
|
|
23
|
-
##
|
|
24
|
-
|
|
25
|
-
### 1. Wrap Your App
|
|
38
|
+
## Basic Usage
|
|
26
39
|
|
|
27
40
|
```typescript
|
|
28
41
|
import '@talken/talkenkit/styles.css';
|
|
29
|
-
import { getDefaultConfig, TalkenKitProvider } from '@talken/talkenkit';
|
|
42
|
+
import { getDefaultConfig, TalkenKitProvider, ConnectButton } from '@talken/talkenkit';
|
|
30
43
|
import { WagmiProvider } from 'wagmi';
|
|
31
|
-
import { mainnet, polygon
|
|
32
|
-
import {
|
|
44
|
+
import { mainnet, polygon } from 'wagmi/chains';
|
|
45
|
+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
33
46
|
|
|
34
47
|
const config = getDefaultConfig({
|
|
35
48
|
appName: 'My App',
|
|
36
49
|
projectId: 'YOUR_WALLETCONNECT_PROJECT_ID',
|
|
37
|
-
chains: [mainnet, polygon
|
|
50
|
+
chains: [mainnet, polygon],
|
|
38
51
|
});
|
|
39
52
|
|
|
40
53
|
const queryClient = new QueryClient();
|
|
@@ -44,7 +57,7 @@ function App() {
|
|
|
44
57
|
<WagmiProvider config={config}>
|
|
45
58
|
<QueryClientProvider client={queryClient}>
|
|
46
59
|
<TalkenKitProvider>
|
|
47
|
-
|
|
60
|
+
<ConnectButton />
|
|
48
61
|
</TalkenKitProvider>
|
|
49
62
|
</QueryClientProvider>
|
|
50
63
|
</WagmiProvider>
|
|
@@ -52,382 +65,203 @@ function App() {
|
|
|
52
65
|
}
|
|
53
66
|
```
|
|
54
67
|
|
|
55
|
-
|
|
68
|
+
## ABC WaaS Integration
|
|
69
|
+
|
|
70
|
+
Enable embedded wallets with email and social login:
|
|
56
71
|
|
|
57
72
|
```typescript
|
|
58
|
-
import {
|
|
73
|
+
import { abcWallet } from '@talken/talkenkit/wallets';
|
|
59
74
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
75
|
+
const config = getDefaultConfig({
|
|
76
|
+
appName: 'My App',
|
|
77
|
+
projectId: 'YOUR_WALLETCONNECT_PROJECT_ID',
|
|
78
|
+
chains: [mainnet, polygon],
|
|
79
|
+
wallets: [{
|
|
80
|
+
groupName: 'Embedded',
|
|
81
|
+
wallets: [abcWallet()],
|
|
82
|
+
}],
|
|
83
|
+
});
|
|
63
84
|
```
|
|
64
85
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
### Environment Variables
|
|
68
|
-
|
|
69
|
-
TalkenKit can use environment variables for configuration convenience:
|
|
86
|
+
**Environment Variables:**
|
|
70
87
|
|
|
71
88
|
```bash
|
|
72
|
-
# ABC WaaS API endpoint
|
|
73
89
|
NEXT_PUBLIC_ABC_WAAS_URL=https://your-waas-url.com
|
|
74
|
-
|
|
75
|
-
# Talken API server
|
|
76
90
|
NEXT_PUBLIC_API_SERVER=https://your-api-server.com
|
|
77
91
|
```
|
|
78
92
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
```typescript
|
|
82
|
-
import { registerUser } from '@talken/talkenkit';
|
|
83
|
-
|
|
84
|
-
await registerUser(
|
|
85
|
-
{
|
|
86
|
-
username: email,
|
|
87
|
-
password: encryptedPassword,
|
|
88
|
-
secureChannel: secureChannelId,
|
|
89
|
-
emailCode: otpCode,
|
|
90
|
-
name: displayName,
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
waasUrl: 'https://your-waas-url.com',
|
|
94
|
-
environment: 'production',
|
|
95
|
-
}
|
|
96
|
-
);
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Authentication Services
|
|
93
|
+
For detailed configuration options, see [Configuration Guide](./docs/configuration.md).
|
|
100
94
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
#### Register New User
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
import { registerUser } from '@talken/talkenkit';
|
|
107
|
-
|
|
108
|
-
const result = await registerUser(
|
|
109
|
-
{
|
|
110
|
-
username: 'user@example.com',
|
|
111
|
-
password: encryptedPassword,
|
|
112
|
-
secureChannel: secureChannelId,
|
|
113
|
-
emailCode: '123456',
|
|
114
|
-
name: 'User Name',
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
waasUrl: 'https://your-waas-url.com',
|
|
118
|
-
environment: 'production',
|
|
119
|
-
}
|
|
120
|
-
);
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
#### Reset Password (Code 619 Flow)
|
|
124
|
-
|
|
125
|
-
```typescript
|
|
126
|
-
import { resetPassword } from '@talken/talkenkit';
|
|
127
|
-
|
|
128
|
-
await resetPassword(
|
|
129
|
-
{
|
|
130
|
-
username: 'user@example.com',
|
|
131
|
-
password: encryptedPassword,
|
|
132
|
-
secureChannel: secureChannelId,
|
|
133
|
-
emailCode: '123456',
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
waasUrl: 'https://your-waas-url.com',
|
|
137
|
-
environment: 'production',
|
|
138
|
-
}
|
|
139
|
-
);
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
#### Email Verification
|
|
143
|
-
|
|
144
|
-
```typescript
|
|
145
|
-
import { emailCheck, sendOtpCode, verifyOtpCode } from '@talken/talkenkit';
|
|
146
|
-
|
|
147
|
-
// Check if email exists
|
|
148
|
-
const checkResult = await emailCheck('user@example.com', config);
|
|
149
|
-
|
|
150
|
-
// Send OTP
|
|
151
|
-
await sendOtpCode('user@example.com', config);
|
|
152
|
-
|
|
153
|
-
// Verify OTP
|
|
154
|
-
const verifyResult = await verifyOtpCode('user@example.com', '123456', config);
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
### Encryption Utilities
|
|
158
|
-
|
|
159
|
-
TalkenKit provides secure encryption utilities for PIN-based authentication:
|
|
160
|
-
|
|
161
|
-
```typescript
|
|
162
|
-
import { hashPin, encryptWithPin, decryptWithPin } from '@talken/talkenkit';
|
|
163
|
-
|
|
164
|
-
// Hash PIN
|
|
165
|
-
const pinHash = await hashPin('123456');
|
|
95
|
+
## Documentation
|
|
166
96
|
|
|
167
|
-
|
|
168
|
-
const salt = crypto.getRandomValues(new Uint8Array(32));
|
|
169
|
-
const encrypted = await encryptWithPin(sensitiveData, pinHash, salt);
|
|
97
|
+
**Quick Start:**
|
|
170
98
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
99
|
+
- [Package API Reference](./packages/talkenkit/README.md)
|
|
100
|
+
- [ABC WaaS Integration Guide](./docs/abc-waas.md)
|
|
101
|
+
- [Configuration Guide](./docs/configuration.md)
|
|
174
102
|
|
|
175
|
-
**
|
|
103
|
+
**Technical:**
|
|
176
104
|
|
|
177
|
-
|
|
105
|
+
- [Architecture Documentation](./docs/abc-waas-architecture.md)
|
|
106
|
+
- [Development Guide](./CLAUDE.md)
|
|
178
107
|
|
|
179
|
-
|
|
108
|
+
**RainbowKit Compatibility:**
|
|
180
109
|
|
|
181
|
-
|
|
182
|
-
import { AbcAuthProvider, useAbcAuth } from '@talken/talkenkit';
|
|
110
|
+
- [RainbowKit Documentation](https://rainbowkit.com) - API compatible
|
|
183
111
|
|
|
184
|
-
|
|
185
|
-
return (
|
|
186
|
-
<AbcAuthProvider>
|
|
187
|
-
<YourApp />
|
|
188
|
-
</AbcAuthProvider>
|
|
189
|
-
);
|
|
190
|
-
}
|
|
112
|
+
## Examples
|
|
191
113
|
|
|
192
|
-
|
|
193
|
-
const {
|
|
194
|
-
isAuthenticated,
|
|
195
|
-
user,
|
|
196
|
-
tokens,
|
|
197
|
-
wallets,
|
|
198
|
-
login,
|
|
199
|
-
logout,
|
|
200
|
-
refreshTokens,
|
|
201
|
-
} = useAbcAuth();
|
|
202
|
-
|
|
203
|
-
// Use authentication state
|
|
204
|
-
}
|
|
205
|
-
```
|
|
114
|
+
Interactive examples in the [examples](./examples/) directory:
|
|
206
115
|
|
|
207
|
-
|
|
116
|
+
**ABC WaaS:**
|
|
208
117
|
|
|
209
|
-
|
|
118
|
+
- `with-demo` - Full-featured demo with ABC WaaS and multi-chain support
|
|
119
|
+
- `with-abc-wallet` - ABC Wallet integration example
|
|
210
120
|
|
|
211
|
-
|
|
212
|
-
import { AbcAuthModal } from '@talken/talkenkit';
|
|
121
|
+
**Framework Examples:**
|
|
213
122
|
|
|
214
|
-
|
|
215
|
-
|
|
123
|
+
- `with-next` - Next.js Pages Router
|
|
124
|
+
- `with-next-app` - Next.js App Router
|
|
125
|
+
- `with-vite` - Vite + React
|
|
126
|
+
- `with-create-react-app` - Create React App
|
|
127
|
+
- `with-remix` - Remix
|
|
216
128
|
|
|
217
|
-
|
|
218
|
-
console.log('Authenticated:', result);
|
|
219
|
-
// result contains: uid, email, pin, accessToken, refreshToken, evmWallet, solanaWallet
|
|
220
|
-
};
|
|
129
|
+
**Advanced:**
|
|
221
130
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
<AbcAuthModal
|
|
227
|
-
onClose={() => setShowAuth(false)}
|
|
228
|
-
onSuccess={handleAuthSuccess}
|
|
229
|
-
waasUrl={process.env.NEXT_PUBLIC_ABC_WAAS_URL}
|
|
230
|
-
environment="production"
|
|
231
|
-
evmChainId={1}
|
|
232
|
-
/>
|
|
233
|
-
)}
|
|
234
|
-
</>
|
|
235
|
-
);
|
|
236
|
-
}
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
## Configuration Patterns
|
|
240
|
-
|
|
241
|
-
### Pattern 1: Environment Variables (Recommended for Next.js)
|
|
242
|
-
|
|
243
|
-
```typescript
|
|
244
|
-
// .env.local
|
|
245
|
-
NEXT_PUBLIC_ABC_WAAS_URL=https://your-waas-url.com
|
|
246
|
-
NEXT_PUBLIC_API_SERVER=https://your-api-server.com
|
|
131
|
+
- `with-next-custom-button` - Custom connect button
|
|
132
|
+
- `with-next-mint-nft` - NFT minting example
|
|
133
|
+
- `with-next-siwe-next-auth` - Sign-In with Ethereum (NextAuth)
|
|
134
|
+
- `with-next-siwe-iron-session` - Sign-In with Ethereum (Iron Session)
|
|
247
135
|
|
|
248
|
-
|
|
249
|
-
await registerUser(params); // Uses environment variables automatically
|
|
250
|
-
```
|
|
136
|
+
### Running Examples
|
|
251
137
|
|
|
252
|
-
|
|
138
|
+
```bash
|
|
139
|
+
# Install dependencies
|
|
140
|
+
pnpm install
|
|
253
141
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
environment: 'production',
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
await registerUser(params, config);
|
|
261
|
-
await resetPassword(params, config);
|
|
262
|
-
await sendOtpCode(email, config);
|
|
142
|
+
# Run an example
|
|
143
|
+
cd examples/with-demo
|
|
144
|
+
pnpm run dev
|
|
263
145
|
```
|
|
264
146
|
|
|
265
|
-
|
|
147
|
+
Demo will be available at <http://localhost:3000>
|
|
266
148
|
|
|
267
|
-
|
|
268
|
-
import { AbcAuthProvider } from '@talken/talkenkit';
|
|
269
|
-
|
|
270
|
-
<AbcAuthProvider
|
|
271
|
-
config={{
|
|
272
|
-
waasUrl: 'https://your-waas-url.com',
|
|
273
|
-
apiServer: 'https://your-api-server.com',
|
|
274
|
-
}}
|
|
275
|
-
>
|
|
276
|
-
<YourApp />
|
|
277
|
-
</AbcAuthProvider>;
|
|
278
|
-
```
|
|
149
|
+
## Development
|
|
279
150
|
|
|
280
|
-
|
|
151
|
+
### Setup
|
|
281
152
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
import { useAccount, useSignMessage } from 'wagmi';
|
|
153
|
+
```bash
|
|
154
|
+
# Install dependencies
|
|
155
|
+
pnpm install
|
|
286
156
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
const { signMessage } = useSignMessage();
|
|
157
|
+
# Build all packages
|
|
158
|
+
pnpm run build
|
|
290
159
|
|
|
291
|
-
|
|
292
|
-
|
|
160
|
+
# Build TalkenKit only
|
|
161
|
+
pnpm --filter @talken/talkenkit build
|
|
293
162
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
}
|
|
163
|
+
# Development mode
|
|
164
|
+
pnpm run dev
|
|
297
165
|
```
|
|
298
166
|
|
|
299
|
-
###
|
|
300
|
-
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
167
|
+
### Project Structure
|
|
168
|
+
|
|
169
|
+
```text
|
|
170
|
+
talken-kit/
|
|
171
|
+
├── packages/
|
|
172
|
+
│ ├── talkenkit/ # Main library
|
|
173
|
+
│ ├── talken-button/ # Standalone button
|
|
174
|
+
│ └── create-talkenkit/ # CLI scaffolding
|
|
175
|
+
│
|
|
176
|
+
├── examples/ # Example applications
|
|
177
|
+
│ ├── with-demo/ # ABC WaaS demo
|
|
178
|
+
│ ├── with-next/ # Next.js example
|
|
179
|
+
│ └── ...
|
|
180
|
+
│
|
|
181
|
+
└── docs/ # Documentation
|
|
182
|
+
├── abc-waas.md
|
|
183
|
+
├── abc-waas-architecture.md
|
|
184
|
+
└── configuration.md
|
|
317
185
|
```
|
|
318
186
|
|
|
319
|
-
##
|
|
187
|
+
## Key Features
|
|
320
188
|
|
|
321
|
-
###
|
|
189
|
+
### Embedded Wallets (ABC WaaS)
|
|
322
190
|
|
|
323
|
-
-
|
|
324
|
-
-
|
|
325
|
-
-
|
|
326
|
-
-
|
|
327
|
-
-
|
|
328
|
-
- `verifyOtpCode(email, code, config?)` - Verify OTP code
|
|
329
|
-
- `loginWithPassword(params, apiServer?)` - Login with email + password
|
|
191
|
+
- Email/Social login integration
|
|
192
|
+
- Multi-chain support (EVM + Solana)
|
|
193
|
+
- MPC-based key management
|
|
194
|
+
- PIN-based security
|
|
195
|
+
- No seed phrases required
|
|
330
196
|
|
|
331
|
-
###
|
|
197
|
+
### Traditional Wallet Support
|
|
332
198
|
|
|
333
|
-
-
|
|
334
|
-
-
|
|
335
|
-
-
|
|
336
|
-
-
|
|
199
|
+
- 60+ wallet connectors
|
|
200
|
+
- WalletConnect v2
|
|
201
|
+
- EIP-6963 multi-injected provider support
|
|
202
|
+
- Automatic wallet detection
|
|
337
203
|
|
|
338
|
-
###
|
|
204
|
+
### Multi-Chain Support
|
|
339
205
|
|
|
340
|
-
-
|
|
341
|
-
-
|
|
342
|
-
-
|
|
343
|
-
-
|
|
206
|
+
- **EVM**: Ethereum, Polygon, Optimism, Arbitrum, and more
|
|
207
|
+
- **Solana**: Mainnet and Devnet support
|
|
208
|
+
- Dual wallet generation
|
|
209
|
+
- Unified signing interface
|
|
344
210
|
|
|
345
|
-
###
|
|
346
|
-
|
|
347
|
-
- `useAbcAuth()` - Authentication state and methods
|
|
348
|
-
- `useSolSignMessage()` - Sign Solana messages
|
|
349
|
-
- `useSolSignTransaction()` - Sign and send Solana transactions
|
|
350
|
-
|
|
351
|
-
## Documentation
|
|
211
|
+
### Developer Experience
|
|
352
212
|
|
|
353
|
-
-
|
|
354
|
-
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
See the [examples directory](../../examples) for complete implementations:
|
|
359
|
-
|
|
360
|
-
- **with-demo**: Full-featured demo with ABC WaaS integration
|
|
361
|
-
- **with-abc-wallet**: ABC Wallet integration example
|
|
362
|
-
- **with-next**: Next.js App Router example
|
|
363
|
-
- **with-vite**: Vite + React example
|
|
364
|
-
|
|
365
|
-
## Security
|
|
366
|
-
|
|
367
|
-
### PIN Security
|
|
368
|
-
|
|
369
|
-
- PINs are hashed with SHA-256 before storage
|
|
370
|
-
- Sensitive data encrypted with PBKDF2 (100,000 iterations) + AES-256-GCM
|
|
371
|
-
- Plain text PINs cleared from memory immediately after use
|
|
372
|
-
- Encrypted with secure channel (ECDH) before API transmission
|
|
373
|
-
|
|
374
|
-
### Token Management
|
|
375
|
-
|
|
376
|
-
- Access tokens: 10-minute expiry
|
|
377
|
-
- Refresh tokens: 60-minute expiry
|
|
378
|
-
- Automatic token refresh before expiration
|
|
379
|
-
- Encrypted storage with PIN-based encryption
|
|
380
|
-
|
|
381
|
-
### Wallet Security
|
|
382
|
-
|
|
383
|
-
- MPC-based key management (no seed phrases)
|
|
384
|
-
- Wallets encrypted with PIN hash
|
|
385
|
-
- Secure channel for all API communications
|
|
386
|
-
- Compatible with Android app (same encryption pattern)
|
|
213
|
+
- RainbowKit API compatible
|
|
214
|
+
- TypeScript support
|
|
215
|
+
- React 19 ready
|
|
216
|
+
- Built on Wagmi v2 and Viem v2
|
|
217
|
+
- Vanilla Extract for type-safe styling
|
|
387
218
|
|
|
388
219
|
## Migration from RainbowKit
|
|
389
220
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
TalkenKit is a **drop-in replacement** for RainbowKit with **zero breaking changes**:
|
|
221
|
+
TalkenKit is a drop-in replacement for RainbowKit:
|
|
393
222
|
|
|
394
223
|
```diff
|
|
395
224
|
- import '@rainbow-me/rainbowkit/styles.css';
|
|
396
|
-
- import { getDefaultConfig, RainbowKitProvider } from '@rainbow-me/rainbowkit';
|
|
225
|
+
- import { getDefaultConfig, RainbowKitProvider, ConnectButton } from '@rainbow-me/rainbowkit';
|
|
397
226
|
+ import '@talken/talkenkit/styles.css';
|
|
398
|
-
+ import { getDefaultConfig, TalkenKitProvider } from '@talken/talkenkit';
|
|
227
|
+
+ import { getDefaultConfig, TalkenKitProvider, ConnectButton } from '@talken/talkenkit';
|
|
399
228
|
```
|
|
400
229
|
|
|
401
|
-
|
|
230
|
+
**Note**: Both `TalkenKitProvider` and `RainbowKitProvider` work (they're the same component). Use `TalkenKitProvider` for TalkenKit branding, or keep `RainbowKitProvider` for RainbowKit compatibility.
|
|
231
|
+
|
|
232
|
+
See [CLAUDE.md](./CLAUDE.md) for detailed migration guide.
|
|
233
|
+
|
|
234
|
+
## Technology Stack
|
|
402
235
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
236
|
+
- **React** 19
|
|
237
|
+
- **TypeScript** 5.5
|
|
238
|
+
- **Wagmi** 2.14
|
|
239
|
+
- **Viem** 2.21
|
|
240
|
+
- **TanStack Query** 5
|
|
241
|
+
- **Vanilla Extract** - Type-safe CSS-in-JS
|
|
409
242
|
|
|
410
|
-
|
|
243
|
+
## Contributing
|
|
411
244
|
|
|
412
|
-
|
|
413
|
-
🎯 **Multi-Chain**: Solana support via useSolSignMessage/Transaction
|
|
414
|
-
🎯 **Zero-Config PIN**: Automatic PIN modal for ABC Wallet transactions
|
|
245
|
+
Please follow our [contributing guidelines](/.github/CONTRIBUTING.md).
|
|
415
246
|
|
|
416
|
-
|
|
247
|
+
## Security
|
|
417
248
|
|
|
418
|
-
|
|
419
|
-
2. ✅ Update imports: Change import paths only
|
|
420
|
-
3. ✅ (Optional) Rename provider: `RainbowKitProvider` → `TalkenKitProvider`
|
|
421
|
-
4. ✅ Test existing functionality: Should work without changes
|
|
422
|
-
5. ✅ (Optional) Add ABC Wallet for embedded wallet support
|
|
249
|
+
For security best practices and implementation details, see:
|
|
423
250
|
|
|
424
|
-
|
|
251
|
+
- [Security in Package README](./packages/talkenkit/README.md#security)
|
|
252
|
+
- [Architecture Security](./docs/abc-waas-architecture.md#security-architecture)
|
|
425
253
|
|
|
426
254
|
## License
|
|
427
255
|
|
|
428
|
-
MIT
|
|
256
|
+
Licensed under the MIT License, Copyright © 2022-present [Rainbow](https://rainbow.me).
|
|
257
|
+
|
|
258
|
+
Forked and enhanced by [Talken](https://talken.io).
|
|
259
|
+
|
|
260
|
+
See [LICENSE](/LICENSE) for more information.
|
|
429
261
|
|
|
430
262
|
## Links
|
|
431
263
|
|
|
432
|
-
- [
|
|
433
|
-
- [
|
|
264
|
+
- **Documentation**: [docs/](./docs/)
|
|
265
|
+
- **Package**: [@talken/talkenkit](./packages/talkenkit/)
|
|
266
|
+
- **Examples**: [examples/](./examples/)
|
|
267
|
+
- **RainbowKit**: [rainbowkit.com](https://rainbowkit.com)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/components/Icons/Arc.svg
|
|
4
|
+
var Arc_default = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" viewBox="0 0 78 78"><defs><path id="a" fill="%231A007F" fill-rule="evenodd" d="m26.722 56.452 6.608-13.904c-5.047-1.073-10.126-4.195-12.999-7.993l-6.91 14.529a39.257 39.257 0 0 0 13.3 7.368Z" clip-rule="evenodd"/><path id="b" fill="%234E000A" fill-rule="evenodd" d="M54.304 34.138c-3.32 4.07-7.931 7.087-12.864 8.263l6.588 13.863c4.809-1.623 9.304-4.245 13.185-7.608l-6.91-14.518Z" clip-rule="evenodd"/><path id="c" fill="%231A007F" fill-rule="evenodd" d="m13.422 49.084-3.455 7.265c-1.76 3.694-.437 8.242 3.184 10.167 3.84 2.04 8.566.448 10.419-3.434l3.152-6.63a39.427 39.427 0 0 1-13.3-7.368" clip-rule="evenodd"/><path id="d" fill="%23FF9396" fill-rule="evenodd" d="M68.02 18.277a7.586 7.586 0 0 0-8.93 5.952c-.729 3.642-2.436 7.035-4.787 9.92l6.9 14.528c6.369-5.527 11.074-13.052 12.759-21.471.823-4.122-1.842-8.117-5.943-8.93" clip-rule="evenodd"/><path id="e" fill="%23002DC8" fill-rule="evenodd" d="M41.438 42.403a19.312 19.312 0 0 1-4.496.54 17.33 17.33 0 0 1-3.61-.395c-5.048-1.072-10.128-4.194-13-7.993-.718-.947-1.301-1.936-1.706-2.945-1.572-3.882-5.996-5.756-9.878-4.195-3.881 1.572-5.755 5.995-4.194 9.877 1.78 4.414 4.923 8.462 8.867 11.791a39.377 39.377 0 0 0 13.291 7.37c3.341 1.071 6.807 1.665 10.22 1.665 3.788 0 7.525-.656 11.084-1.853l-6.578-13.862Z" clip-rule="evenodd"/><path id="f" fill="%23FF536A" fill-rule="evenodd" d="m64.846 56.316-3.643-7.66-6.9-14.518-.011.01s0-.01.011-.01L44.27 13.032a7.589 7.589 0 0 0-6.848-4.33 7.589 7.589 0 0 0-6.848 4.33L20.343 34.554c2.872 3.799 7.95 6.921 12.999 7.993l3.309-6.952a.866.866 0 0 1 1.561 0l3.238 6.806h.02-.02l6.588 13.863 3.236 6.807a7.576 7.576 0 0 0 6.858 4.33 7.44 7.44 0 0 0 2.02-.281c4.569-1.26 6.734-6.515 4.694-10.804" clip-rule="evenodd"/></defs><path fill="%23000" fill-rule="evenodd" d="M37.422 8.702a7.59 7.59 0 0 1 6.848 4.33l10.033 21.107s0 .01-.011.01c0 0 0-.011.01-.011 2.353-2.883 4.06-6.276 4.788-9.919.822-4.11 4.818-6.764 8.93-5.952a7.585 7.585 0 0 1 5.953 8.93c-1.686 8.419-6.39 15.944-12.76 21.47l3.643 7.66c2.019 4.246-.094 9.44-4.57 10.771l-.135.043a7.506 7.506 0 0 1-2.019.28 7.595 7.595 0 0 1-6.858-4.33l-3.238-6.805-6.587-13.863h.022-.022l-3.237-6.807a.865.865 0 0 0-1.56 0l-3.31 6.952c-5.048-1.07-10.127-4.194-13-7.993l10.231-21.523a7.55 7.55 0 0 1 6.848-4.35ZM8.749 27.414a7.582 7.582 0 0 1 9.876 4.195c.407 1.01.99 1.998 1.707 2.945l.01.011.344.436c.032.042.063.074.094.116l.093.114c.053.052.094.115.146.166.01.01.021.022.021.032l-.02-.032c.197.24.415.468.634.699.01.009.01.02.02.02a20.332 20.332 0 0 0 2.385 2.112c.405.313.822.603 1.248.895.042.021.073.052.115.074 2.404 1.58 5.162 2.767 7.91 3.35 1.165.25 2.33.386 3.465.396h.146c1.509 0 3.018-.188 4.495-.542l6.589 13.863c-3.56 1.198-7.296 1.853-11.084 1.853-3.414 0-6.869-.593-10.22-1.665l-3.154 6.63a7.583 7.583 0 0 1-10.418 3.434C9.53 64.59 8.207 60.053 9.967 56.348l3.455-7.264c-3.903-3.3-7.015-7.307-8.815-11.657l-.052-.135c-1.56-3.883.312-8.305 4.194-9.878Z" clip-rule="evenodd"/><path fill="%23fff" fill-rule="evenodd" stroke="%23fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="6.021" d="M37.422 8.702a7.59 7.59 0 0 1 6.848 4.33l10.033 21.107s0 .01-.011.01c0 0 0-.011.01-.011 2.353-2.883 4.06-6.276 4.788-9.919.822-4.11 4.818-6.764 8.93-5.952a7.585 7.585 0 0 1 5.953 8.93c-1.686 8.419-6.39 15.944-12.76 21.47l3.643 7.66c2.019 4.246-.094 9.44-4.57 10.771l-.135.043a7.506 7.506 0 0 1-2.019.28 7.595 7.595 0 0 1-6.858-4.33l-3.238-6.805-6.587-13.863h.022-.022l-3.237-6.807a.865.865 0 0 0-1.56 0l-3.31 6.952c-5.048-1.07-10.127-4.194-13-7.993l10.231-21.523a7.55 7.55 0 0 1 6.848-4.35h0ZM8.749 27.414a7.582 7.582 0 0 1 9.876 4.195c.407 1.01.99 1.998 1.707 2.945l.01.011.344.436c.032.042.063.074.094.116l.093.114c.053.052.094.115.146.166.01.01.021.022.021.032l-.02-.032c.197.24.415.468.634.699.01.009.01.02.02.02a20.332 20.332 0 0 0 2.385 2.112c.405.313.822.603 1.248.895.042.021.073.052.115.074 2.404 1.58 5.162 2.767 7.91 3.35 1.165.25 2.33.386 3.465.396h.146c1.509 0 3.018-.188 4.495-.542l6.589 13.863c-3.56 1.198-7.296 1.853-11.084 1.853-3.414 0-6.869-.593-10.22-1.665l-3.154 6.63a7.583 7.583 0 0 1-10.418 3.434C9.53 64.59 8.207 60.053 9.967 56.348l3.455-7.264c-3.903-3.3-7.015-7.307-8.815-11.657l-.052-.135c-1.56-3.883.312-8.305 4.194-9.878h0Z" clip-rule="evenodd"/><use xlink:href="%23a" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23b" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23c" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23d" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23e" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23f" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23a" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23b" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23c" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23d" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23e" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23f" fill-rule="evenodd" clip-rule="evenodd"/></svg>';
|
|
5
|
+
export {
|
|
6
|
+
Arc_default as default
|
|
7
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/components/Icons/Brave.svg
|
|
4
|
+
var Brave_default = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 78 78"><path fill="url(%23a)" fill-rule="evenodd" d="m67.81 19.54 1.69-4.2s-2.14-2.35-4.75-5c-2.6-2.65-8.1-1.09-8.1-1.09L50.37 2H28.34l-6.28 7.25s-5.5-1.56-8.1 1.1c-2.6 2.64-4.75 4.98-4.75 4.98l1.69 4.21-2.15 6.24s6.3 24.3 7.04 27.28c1.46 5.84 2.45 8.1 6.58 11.06a513.66 513.66 0 0 0 12.85 8.89c1.23.78 2.76 2.1 4.13 2.1 1.38 0 2.91-1.32 4.14-2.1 1.22-.78 8.72-5.92 12.85-8.89 4.13-2.96 5.12-5.22 6.58-11.06.74-2.97 7.04-27.28 7.04-27.28l-2.15-6.24Z" clip-rule="evenodd"/><path fill="%23fff" fill-rule="evenodd" d="M39.35 47.5c.42 0 3.11.97 5.27 2.1 2.15 1.14 3.72 1.95 4.22 2.26.5.32.2.92-.26 1.25-.46.33-6.57 5.15-7.17 5.69-.6.53-1.46 1.41-2.06 1.41-.59 0-1.46-.88-2.05-1.41-.6-.54-6.71-5.36-7.17-5.69-.45-.33-.76-.93-.26-1.25.5-.31 2.07-1.12 4.22-2.25 2.16-1.14 4.85-2.1 5.26-2.1Zm.04-34.36c.2.01 1.36.07 3.02.63 1.84.63 3.83 1.4 4.75 1.4.92 0 7.73-1.32 7.73-1.32s8.06 9.94 8.06 12.06c0 2.13-1.01 2.69-2.03 3.8l-6.05 6.54c-.57.62-1.77 1.55-1.06 3.24.7 1.7 1.73 3.84.58 6.03-1.15 2.18-3.12 3.63-4.38 3.4-1.26-.25-4.23-1.83-5.32-2.55-1.09-.72-4.54-3.62-4.54-4.73 0-1.11 3.57-3.1 4.23-3.56.66-.45 3.67-2.2 3.73-2.9.06-.69.04-.89-.85-2.59-.89-1.7-2.49-3.97-2.22-5.48.26-1.51 2.84-2.3 4.68-3 1.84-.71 5.39-2.05 5.83-2.26.44-.2.33-.4-1.01-.53s-5.15-.65-6.86-.16c-1.72.49-4.65 1.23-4.89 1.62-.24.4-.45.4-.2 1.76.24 1.36 1.5 7.87 1.62 9.02.12 1.16.36 1.92-.87 2.2-1.22.3-3.28.79-3.99.79-.7 0-2.76-.5-3.99-.78-1.22-.29-.98-1.05-.86-2.2.12-1.16 1.38-7.67 1.62-9.03.25-1.35.04-1.37-.2-1.76-.24-.4-3.17-1.13-4.89-1.62-1.71-.49-5.52.03-6.86.16-1.34.13-1.46.32-1.01.53.44.21 3.98 1.55 5.83 2.26 1.84.7 4.42 1.49 4.68 3 .27 1.51-1.33 3.78-2.22 5.48-.89 1.7-.91 1.9-.85 2.6.06.68 3.07 2.44 3.73 2.89.66.45 4.23 2.45 4.23 3.56 0 1.1-3.45 4.01-4.54 4.73-1.1.72-4.06 2.3-5.32 2.54-1.26.24-3.23-1.21-4.38-3.4-1.15-2.18-.12-4.33.58-6.02.7-1.69-.49-2.62-1.06-3.24L17.8 29.7c-1.02-1.1-2.04-1.66-2.04-3.79 0-2.12 8.07-12.06 8.07-12.06s6.81 1.33 7.73 1.33c.92 0 2.9-.78 4.74-1.4a11.3 11.3 0 0 1 3.03-.64h.07Z" clip-rule="evenodd"/><mask id="b" width="52" height="14" x="13" y="2" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="%23fff" d="M56.64 9.25 50.37 2H28.34l-6.28 7.25s-5.5-1.56-8.1 1.1c0 0 7.34-.68 9.86 3.5 0 0 6.81 1.33 7.73 1.33.92 0 2.9-.78 4.74-1.4 1.84-.63 3.06-.64 3.06-.64s1.23 0 3.06.63c1.84.63 3.83 1.4 4.75 1.4.92 0 7.73-1.32 7.73-1.32 2.52-4.18 9.86-3.5 9.86-3.5-2.6-2.66-8.1-1.1-8.1-1.1Z"/></mask><g mask="url(%23b)"><path fill="url(%23c)" d="M56.64 9.25 50.37 2H28.34l-6.28 7.25s-5.5-1.56-8.1 1.1c0 0 7.34-.68 9.86 3.5 0 0 6.81 1.33 7.73 1.33.92 0 2.9-.78 4.74-1.4 1.84-.63 3.06-.64 3.06-.64s1.23 0 3.06.63c1.84.63 3.83 1.4 4.75 1.4.92 0 7.73-1.32 7.73-1.32 2.52-4.18 9.86-3.5 9.86-3.5-2.6-2.66-8.1-1.1-8.1-1.1Z"/></g><defs><linearGradient id="a" x1="8.75" x2="69.96" y1="39.07" y2="39.07" gradientUnits="userSpaceOnUse"><stop stop-color="%23F50"/><stop offset=".41" stop-color="%23F50"/><stop offset=".58" stop-color="%23FF2000"/><stop offset="1" stop-color="%23FF2000"/></linearGradient><linearGradient id="c" x1="15.05" x2="64.75" y1="8.68" y2="8.68" gradientUnits="userSpaceOnUse"><stop stop-color="%23FF452A"/><stop offset="1" stop-color="%23FF2000"/></linearGradient></defs></svg>';
|
|
5
|
+
export {
|
|
6
|
+
Brave_default as default
|
|
7
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/components/Icons/Browser.svg
|
|
4
|
+
var Browser_default = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 78 78"><g fill-rule="evenodd" clip-rule="evenodd"><path fill="url(%23a)" d="M39 76c20.434 0 37-16.566 37-37S59.434 2 39 2 2 18.566 2 39s16.566 37 37 37Zm0-5c17.673 0 32-14.327 32-32C71 21.327 56.673 7 39 7 21.327 7 7 21.327 7 39c0 17.673 14.327 32 32 32Z"/><path fill="url(%23b)" d="M39 76c20.434 0 37-16.566 37-37S59.434 2 39 2 2 18.566 2 39s16.566 37 37 37Zm0-5c17.673 0 32-14.327 32-32C71 21.327 56.673 7 39 7 21.327 7 7 21.327 7 39c0 17.673 14.327 32 32 32Z"/></g><circle cx="39" cy="39" r="30" fill="url(%23c)"/><circle cx="39" cy="39" r="30" fill="url(%23d)" fill-opacity=".7" style="mix-blend-mode:screen"/><g filter="url(%23e)"><circle cx="39" cy="39" r="29.5" stroke="%23000"/></g><g filter="url(%23f)"><path fill="%23000" fill-opacity=".3" d="m55.681 53.597-8.973-18.865c-.54-1.147-1.316-1.924-2.429-2.463l-18.824-8.91c-2.429-1.147-4.25.607-3.103 3.105 1.147 2.497 8.94 18.831 8.94 18.831.505 1.08 1.248 1.822 2.428 2.43l18.858 8.943c2.361 1.114 4.183-.742 3.103-3.071Zm-12.38-13.6c0 2.328-1.923 4.252-4.25 4.252-2.328 0-4.251-1.924-4.251-4.252a4.255 4.255 0 0 1 4.25-4.252c2.328 0 4.25 1.89 4.25 4.252Z"/></g><path fill="%23000" fill-opacity=".8" d="m55.681 52.597-8.973-18.865c-.54-1.147-1.316-1.924-2.429-2.463l-18.824-8.91c-2.429-1.147-4.25.607-3.103 3.105 1.147 2.497 8.94 18.831 8.94 18.831.505 1.08 1.248 1.822 2.428 2.43l18.858 8.943c2.361 1.114 4.183-.742 3.103-3.071Zm-12.38-13.6c0 2.328-1.923 4.252-4.25 4.252-2.328 0-4.251-1.924-4.251-4.252a4.255 4.255 0 0 1 4.25-4.252c2.328 0 4.25 1.89 4.25 4.252Z"/><path fill="url(%23g)" d="m55.681 52.597-8.973-18.865c-.54-1.147-1.316-1.924-2.429-2.463l-18.824-8.91c-2.429-1.147-4.25.607-3.103 3.105 1.147 2.497 8.94 18.831 8.94 18.831.505 1.08 1.248 1.822 2.428 2.43l18.858 8.943c2.361 1.114 4.183-.742 3.103-3.071Zm-12.38-13.6c0 2.328-1.923 4.252-4.25 4.252-2.328 0-4.251-1.924-4.251-4.252a4.255 4.255 0 0 1 4.25-4.252c2.328 0 4.25 1.89 4.25 4.252Z" opacity=".14"/><path fill="url(%23h)" fill-opacity=".08" d="M61.248 56.008c.166-.217.25-.325.378-.66.754-1.95-1.183-3.95-3.157-3.26-.338.118-.904.522-2.035 1.332A29.863 29.863 0 0 1 39 59.003a29.863 29.863 0 0 1-17.425-5.577c-1.132-.809-1.697-1.213-2.035-1.331-1.974-.69-3.911 1.313-3.156 3.263.129.334.212.442.378.659 5.118 6.679 13.176 10.986 22.24 10.986 9.068 0 17.129-4.31 22.246-10.995Z"/><path fill="url(%23i)" fill-opacity=".2" d="M62.26 40.051C63.805 41.947 67 41.445 67 39c0-15.464-12.536-28-28-28S11 23.536 11 39c0 2.445 3.195 2.946 4.74 1.051C21.241 33.307 29.618 29 39 29c9.382 0 17.758 4.307 23.26 11.051Z"/><path fill="url(%23j)" d="M39 45a6 6 0 1 1 0-11.999 6 6 0 0 1 0 12Z"/><path stroke="%23fff" stroke-opacity=".24" stroke-width=".125" d="M36.728 44.486a5.938 5.938 0 1 0 4.545-10.971 5.938 5.938 0 0 0-4.545 10.971Z"/><g filter="url(%23k)"><path fill="%231A1B1F" d="M39 46a6 6 0 1 1 0-11.999 6 6 0 0 1 0 12Z"/></g><path fill="url(%23l)" d="M39 44.5a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11Z"/><path stroke="%23fff" stroke-opacity=".24" stroke-width=".25" d="M36.944 43.966a5.376 5.376 0 1 0 4.114-9.934 5.376 5.376 0 0 0-4.114 9.934Z"/><path fill="url(%23m)" fill-rule="evenodd" d="M36.704 44.544a6.002 6.002 0 0 0 8.297-5.543 6 6 0 1 0-8.297 5.543Zm.191-.463a5.5 5.5 0 1 0 4.21-10.163 5.5 5.5 0 0 0-4.21 10.163Z" clip-rule="evenodd"/><path fill="url(%23n)" fill-opacity=".06" d="M36.897 42.12A5.98 5.98 0 0 0 39 42.5c1.46 0 2.858-.526 3.89-1.464.256-.233.701-.022.54.285a5 5 0 0 1-9.049-.406c-.098-.238.237-.383.411-.195a5.565 5.565 0 0 0 2.103 1.4Z"/><g fill-rule="evenodd" clip-rule="evenodd"><path fill="url(%23o)" d="M39 71c17.673 0 32-14.327 32-32C71 21.327 56.673 7 39 7 21.327 7 7 21.327 7 39c0 17.673 14.327 32 32 32Zm0-2c16.569 0 30-13.431 30-30C69 22.431 55.569 9 39 9 22.431 9 9 22.431 9 39c0 16.569 13.431 30 30 30Z"/><path fill="url(%23p)" d="M39 71c17.673 0 32-14.327 32-32C71 21.327 56.673 7 39 7 21.327 7 7 21.327 7 39c0 17.673 14.327 32 32 32Zm0-2c16.569 0 30-13.431 30-30C69 22.431 55.569 9 39 9 22.431 9 9 22.431 9 39c0 16.569 13.431 30 30 30Z"/></g><path fill="url(%23q)" fill-rule="evenodd" d="M39 76c20.434 0 37-16.566 37-37S59.434 2 39 2 2 18.566 2 39s16.566 37 37 37Zm0-1c19.882 0 36-16.118 36-36S58.882 3 39 3 3 19.118 3 39s16.118 36 36 36Z" clip-rule="evenodd"/><circle cx="39" cy="39" r="32" stroke="%23fff" stroke-opacity=".3" stroke-width=".25"/><defs><linearGradient id="a" x1="39" x2="39" y1="2" y2="76" gradientUnits="userSpaceOnUse"><stop stop-color="%23174299"/><stop offset="1" stop-color="%23001E59"/></linearGradient><linearGradient id="b" x1="39" x2="39" y1="2" y2="76" gradientUnits="userSpaceOnUse"><stop stop-color="%23D2D8E4"/><stop offset="1" stop-color="%23C2C9D6"/></linearGradient><linearGradient id="g" x1="34" x2="46.5" y1="45.5" y2="33" gradientUnits="userSpaceOnUse"><stop stop-color="%23fff" stop-opacity="0"/><stop offset=".453" stop-color="%23fff" stop-opacity=".64"/><stop offset=".453" stop-color="%233B3B3B" stop-opacity=".233"/><stop offset="1" stop-opacity="0"/></linearGradient><linearGradient id="i" x1="39" x2="39" y1="11" y2="41.205" gradientUnits="userSpaceOnUse"><stop stop-color="%23fff"/><stop offset="1" stop-color="%23fff" stop-opacity="0"/></linearGradient><linearGradient id="j" x1="39.001" x2="38.751" y1="33" y2="45" gradientUnits="userSpaceOnUse"><stop stop-color="%23DCE1EA"/><stop offset="1" stop-color="%23BEC6D5"/></linearGradient><linearGradient id="l" x1="39.001" x2="38.772" y1="33.5" y2="44.5" gradientUnits="userSpaceOnUse"><stop stop-color="%23DCE1EA"/><stop offset="1" stop-color="%23BEC6D5"/></linearGradient><linearGradient id="m" x1="39" x2="39" y1="33" y2="45.001" gradientUnits="userSpaceOnUse"><stop stop-color="%23F2F4F7"/><stop offset="1" stop-color="%23A3ADC2"/></linearGradient><linearGradient id="o" x1="39" x2="39" y1="7" y2="71" gradientUnits="userSpaceOnUse"><stop stop-color="%23D2D8E4"/><stop offset="1" stop-color="%23C2C9D6"/></linearGradient><linearGradient id="p" x1="39" x2="39" y1="7" y2="71" gradientUnits="userSpaceOnUse"><stop stop-color="%239FACC6"/><stop offset="1" stop-color="%23E0E3EB"/></linearGradient><linearGradient id="q" x1="39" x2="39" y1="2" y2="76" gradientUnits="userSpaceOnUse"><stop stop-color="%23F2F4F7"/><stop offset="1" stop-color="%23A3ADC2"/></linearGradient><radialGradient id="c" cx="0" cy="0" r="1" gradientTransform="rotate(-40.077 108.556 65.416) scale(118.435)" gradientUnits="userSpaceOnUse"><stop offset=".276" stop-color="%2320FF4D"/><stop offset=".464" stop-color="%231499FF"/><stop offset=".755" stop-color="%23FF6FC6"/><stop offset="1" stop-color="%23BC67FF"/></radialGradient><radialGradient id="d" cx="0" cy="0" r="1" gradientTransform="rotate(45 .265 -.64) scale(98.1111)" gradientUnits="userSpaceOnUse"><stop stop-color="red"/><stop offset="1" stop-color="%2300A3FF"/></radialGradient><radialGradient id="h" cx="0" cy="0" r="1" gradientTransform="matrix(0 -29.3887 57.4838 0 38.999 67)" gradientUnits="userSpaceOnUse"><stop/><stop offset="1" stop-opacity="0"/></radialGradient><radialGradient id="n" cx="0" cy="0" r="1" gradientTransform="matrix(-.00135 -5.75038 8.42557 -.00199 39.002 44)" gradientUnits="userSpaceOnUse"><stop/><stop offset="1" stop-opacity="0"/></radialGradient><filter id="e" width="68" height="68" x="5" y="5" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2138_47895" stdDeviation="2"/></filter><filter id="f" width="38" height="38" x="20" y="21" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2138_47895" stdDeviation="1"/></filter><filter id="k" width="16" height="16" x="31.001" y="32" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2138_47895" stdDeviation="1"/></filter></defs></svg>';
|
|
5
|
+
export {
|
|
6
|
+
Browser_default as default
|
|
7
|
+
};
|