@talken/talkenkit 2.4.18 → 2.4.19

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.
@@ -0,0 +1,302 @@
1
+ "use client";
2
+ import {
3
+ createAbcEvmProvider
4
+ } from "./chunk-F5C6OZYF.js";
5
+ import {
6
+ createAbcWaasClient
7
+ } from "./chunk-BDM7TUVM.js";
8
+ import {
9
+ setGlobalDefaultBitcoinNetwork,
10
+ setGlobalDefaultChainId,
11
+ setGlobalDefaultSolanaNetwork
12
+ } from "./chunk-O4AU63LK.js";
13
+ import {
14
+ clearAuthState,
15
+ clearEncryptedTokens,
16
+ clearStorage,
17
+ loadAuthState,
18
+ loadFromStorage,
19
+ saveAuthState
20
+ } from "./chunk-6LH6ZME2.js";
21
+
22
+ // src/wallets/walletConnectors/abcWallet/abcConnector.ts
23
+ import { getTalkenApiClient } from "@talken/talkenkit";
24
+ import { createConnector } from "wagmi";
25
+ function abcConnector(options) {
26
+ const { config } = options;
27
+ if (config.defaultChainId) {
28
+ setGlobalDefaultChainId(config.defaultChainId);
29
+ }
30
+ if (config.defaultSolanaNetwork) {
31
+ setGlobalDefaultSolanaNetwork(config.defaultSolanaNetwork);
32
+ }
33
+ if (config.defaultBitcoinNetwork) {
34
+ setGlobalDefaultBitcoinNetwork(config.defaultBitcoinNetwork);
35
+ }
36
+ return createConnector((wagmiConfig) => {
37
+ const client = createAbcWaasClient(config);
38
+ const provider = createAbcEvmProvider(client);
39
+ let accountsChangedHandler;
40
+ let chainChangedHandler;
41
+ let disconnectHandler;
42
+ return {
43
+ id: "abc",
44
+ name: "ABC Wallet",
45
+ type: "abc",
46
+ /**
47
+ * Connect wallet
48
+ */
49
+ async connect() {
50
+ try {
51
+ const authState = loadAuthState();
52
+ if (!authState || !authState.isAuthenticated || !authState.wallet) {
53
+ throw new Error("ABC_LOGIN_REQUIRED");
54
+ }
55
+ provider.setWallet(authState.wallet);
56
+ if (authState.accessToken && authState.refreshToken && authState.expiresAt) {
57
+ client.setTokens(
58
+ authState.accessToken,
59
+ authState.refreshToken,
60
+ authState.expiresAt
61
+ );
62
+ }
63
+ const accounts = await provider.request({
64
+ method: "eth_requestAccounts"
65
+ });
66
+ let currentChainId = await provider.request({
67
+ method: "eth_chainId"
68
+ });
69
+ const currentChainIdNumber = Number(currentChainId);
70
+ const isChainSupported = wagmiConfig.chains.some(
71
+ (c) => c.id === currentChainIdNumber
72
+ );
73
+ if (!isChainSupported && wagmiConfig.chains.length > 0) {
74
+ const fallbackChainId = wagmiConfig.chains[0].id;
75
+ await provider.request({
76
+ method: "wallet_switchEthereumChain",
77
+ params: [{ chainId: `0x${fallbackChainId.toString(16)}` }]
78
+ });
79
+ currentChainId = `0x${fallbackChainId.toString(16)}`;
80
+ if (authState.wallet) {
81
+ authState.wallet.chainId = fallbackChainId;
82
+ saveAuthState(authState);
83
+ }
84
+ }
85
+ if (accountsChangedHandler) {
86
+ provider.removeListener("accountsChanged", accountsChangedHandler);
87
+ }
88
+ accountsChangedHandler = (accounts2) => {
89
+ wagmiConfig.emitter.emit("change", {
90
+ accounts: accounts2
91
+ });
92
+ };
93
+ provider.on("accountsChanged", accountsChangedHandler);
94
+ if (chainChangedHandler) {
95
+ provider.removeListener("chainChanged", chainChangedHandler);
96
+ }
97
+ chainChangedHandler = (chainId) => {
98
+ wagmiConfig.emitter.emit("change", {
99
+ chainId: Number(chainId)
100
+ });
101
+ };
102
+ provider.on("chainChanged", chainChangedHandler);
103
+ if (disconnectHandler) {
104
+ provider.removeListener("disconnect", disconnectHandler);
105
+ }
106
+ disconnectHandler = () => {
107
+ wagmiConfig.emitter.emit("disconnect");
108
+ this.onDisconnect();
109
+ };
110
+ provider.on("disconnect", disconnectHandler);
111
+ wagmiConfig.emitter.emit("connect", {
112
+ accounts,
113
+ chainId: Number(currentChainId)
114
+ });
115
+ return {
116
+ accounts,
117
+ chainId: Number(currentChainId)
118
+ };
119
+ } catch (error) {
120
+ console.error("\u274C ABC Connector connect() failed:", {
121
+ message: error.message,
122
+ code: error.code,
123
+ error
124
+ });
125
+ if (error.message === "ABC_LOGIN_REQUIRED") {
126
+ throw error;
127
+ }
128
+ throw error;
129
+ }
130
+ },
131
+ /**
132
+ * Disconnect wallet
133
+ */
134
+ async disconnect() {
135
+ if (accountsChangedHandler) {
136
+ provider.removeListener("accountsChanged", accountsChangedHandler);
137
+ accountsChangedHandler = void 0;
138
+ }
139
+ if (chainChangedHandler) {
140
+ provider.removeListener("chainChanged", chainChangedHandler);
141
+ chainChangedHandler = void 0;
142
+ }
143
+ if (disconnectHandler) {
144
+ provider.removeListener("disconnect", disconnectHandler);
145
+ disconnectHandler = void 0;
146
+ }
147
+ provider.clearWallet();
148
+ await client.logout();
149
+ let savedPinHash = null;
150
+ let savedEmail = null;
151
+ if (typeof window !== "undefined") {
152
+ savedPinHash = localStorage.getItem("talkenkit_abc_pin_hash");
153
+ savedEmail = localStorage.getItem("talkenkit_abc_saved_email");
154
+ }
155
+ clearAuthState();
156
+ clearEncryptedTokens();
157
+ if (typeof window !== "undefined") {
158
+ localStorage.removeItem("talkenkit_abc_enc_salt");
159
+ localStorage.removeItem("talkenkit_abc_enc_tokens");
160
+ if (savedPinHash) {
161
+ localStorage.setItem("talkenkit_abc_pin_hash", savedPinHash);
162
+ }
163
+ if (savedEmail) {
164
+ localStorage.setItem("talkenkit_abc_saved_email", savedEmail);
165
+ }
166
+ }
167
+ },
168
+ /**
169
+ * Get accounts
170
+ */
171
+ async getAccounts() {
172
+ const accounts = await provider.request({
173
+ method: "eth_accounts"
174
+ });
175
+ return accounts.map((account) => account);
176
+ },
177
+ /**
178
+ * Get chain ID
179
+ */
180
+ async getChainId() {
181
+ const chainId = await provider.request({
182
+ method: "eth_chainId"
183
+ });
184
+ return Number(chainId);
185
+ },
186
+ /**
187
+ * Get provider
188
+ */
189
+ async getProvider() {
190
+ return provider;
191
+ },
192
+ /**
193
+ * Check if authorized (has valid session)
194
+ * Auto-refreshes access token if expired but refresh token is valid
195
+ */
196
+ async isAuthorized() {
197
+ try {
198
+ const authState = loadAuthState();
199
+ if (!authState || !authState.isAuthenticated) {
200
+ return false;
201
+ }
202
+ if (!authState.wallet) {
203
+ return false;
204
+ }
205
+ if (client.isAuthenticated()) {
206
+ return true;
207
+ }
208
+ const refreshToken = loadFromStorage(
209
+ "refresh_token" /* REFRESH_TOKEN */
210
+ );
211
+ if (!refreshToken) {
212
+ clearStorage();
213
+ return false;
214
+ }
215
+ try {
216
+ const api = getTalkenApiClient();
217
+ if (!api) {
218
+ clearStorage();
219
+ return false;
220
+ }
221
+ const res = await api.auth.refresh();
222
+ client.setTokens(
223
+ res.accessToken,
224
+ res.refreshToken,
225
+ Date.now() + res.expiresIn * 1e3
226
+ );
227
+ const updatedState = loadAuthState();
228
+ return updatedState?.isAuthenticated ?? false;
229
+ } catch (error) {
230
+ console.error("[AbcConnector] Token refresh failed:", error);
231
+ clearStorage();
232
+ return false;
233
+ }
234
+ } catch (error) {
235
+ console.error(
236
+ "[AbcConnector] Unexpected error in isAuthorized:",
237
+ error
238
+ );
239
+ return false;
240
+ }
241
+ },
242
+ /**
243
+ * Switch chain
244
+ */
245
+ async switchChain({ chainId }) {
246
+ await provider.request({
247
+ method: "wallet_switchEthereumChain",
248
+ params: [{ chainId: `0x${chainId.toString(16)}` }]
249
+ });
250
+ const newChainId = await this.getChainId();
251
+ const authState = loadAuthState();
252
+ if (authState?.wallet) {
253
+ authState.wallet.chainId = newChainId;
254
+ saveAuthState(authState);
255
+ }
256
+ return wagmiConfig.chains.find((x) => x.id === chainId) ?? {
257
+ id: chainId,
258
+ name: `Chain ${chainId}`,
259
+ nativeCurrency: {
260
+ name: "Ether",
261
+ decimals: 18,
262
+ symbol: "ETH"
263
+ },
264
+ rpcUrls: {
265
+ default: { http: [""] }
266
+ }
267
+ };
268
+ },
269
+ /**
270
+ * Handle accounts changed
271
+ */
272
+ onAccountsChanged(accounts) {
273
+ if (accounts.length === 0) {
274
+ this.onDisconnect();
275
+ } else {
276
+ wagmiConfig.emitter.emit("change", {
277
+ accounts
278
+ });
279
+ }
280
+ },
281
+ /**
282
+ * Handle chain changed
283
+ */
284
+ onChainChanged(chain) {
285
+ const chainId = Number(chain);
286
+ wagmiConfig.emitter.emit("change", { chainId });
287
+ },
288
+ /**
289
+ * Handle disconnect
290
+ */
291
+ onDisconnect(_error) {
292
+ provider.clearWallet();
293
+ clearAuthState();
294
+ wagmiConfig.emitter.emit("disconnect");
295
+ }
296
+ };
297
+ });
298
+ }
299
+
300
+ export {
301
+ abcConnector
302
+ };
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ import {
3
+ createTalkenApiClient
4
+ } from "./chunk-BBD77PEX.js";
5
+ import {
6
+ abcConnector
7
+ } from "./chunk-37X7LFZU.js";
8
+ import {
9
+ ABC_WALLET_METADATA
10
+ } from "./chunk-DHHVIM22.js";
11
+
12
+ // src/wallets/walletConnectors/abcWallet/abcWallet.ts
13
+ import { setTalkenApiClient } from "@talken/talkenkit";
14
+ var abcWallet = (specificOptions) => ({ projectId }) => {
15
+ const talkenApiUrl = specificOptions?.talkenApiUrl || process.env.NEXT_PUBLIC_API_URL || "http://localhost:3001/api/v1";
16
+ const talkenApi = createTalkenApiClient({
17
+ baseUrl: talkenApiUrl,
18
+ debug: specificOptions?.environment === "development"
19
+ });
20
+ setTalkenApiClient(talkenApi);
21
+ const waasUrl = specificOptions?.waasUrl || process.env.NEXT_PUBLIC_ABC_WAAS_URL || process.env.VITE_ABC_WAAS_URL || "";
22
+ const config = {
23
+ waasUrl,
24
+ apiKey: specificOptions?.apiKey,
25
+ plain: specificOptions?.plain || "",
26
+ // Deprecated - not used (secure.ts uses random generation)
27
+ environment: specificOptions?.environment || "development",
28
+ defaultChainId: specificOptions?.defaultChainId,
29
+ defaultSolanaNetwork: specificOptions?.defaultSolanaNetwork,
30
+ defaultBitcoinNetwork: specificOptions?.defaultBitcoinNetwork,
31
+ projectId
32
+ };
33
+ return {
34
+ id: ABC_WALLET_METADATA.id,
35
+ name: ABC_WALLET_METADATA.name,
36
+ rdns: ABC_WALLET_METADATA.rdns,
37
+ iconUrl: async () => (await import("./abcWallet-AYWSIGAG.js")).default,
38
+ iconBackground: ABC_WALLET_METADATA.iconBackground,
39
+ // Embedded wallet - no installation required
40
+ installed: void 0,
41
+ // No download URLs for embedded wallet
42
+ downloadUrls: void 0,
43
+ // Create connector - wrapper function required by Wallet type
44
+ createConnector: (_walletDetails) => abcConnector({ config }),
45
+ // Embedded wallet always available
46
+ hidden: () => false
47
+ };
48
+ };
49
+
50
+ export {
51
+ abcWallet
52
+ };
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ import {
3
+ createTalkenApiClient
4
+ } from "./chunk-BBD77PEX.js";
5
+ import {
6
+ abcConnector
7
+ } from "./chunk-MEAJDFYT.js";
8
+ import {
9
+ ABC_WALLET_METADATA
10
+ } from "./chunk-DHHVIM22.js";
11
+
12
+ // src/wallets/walletConnectors/abcWallet/abcWallet.ts
13
+ import { setTalkenApiClient } from "@talken/talkenkit";
14
+ var abcWallet = (specificOptions) => ({ projectId }) => {
15
+ const talkenApiUrl = specificOptions?.talkenApiUrl || process.env.NEXT_PUBLIC_API_URL || "http://localhost:3001/api/v1";
16
+ const talkenApi = createTalkenApiClient({
17
+ baseUrl: talkenApiUrl,
18
+ debug: specificOptions?.environment === "development"
19
+ });
20
+ setTalkenApiClient(talkenApi);
21
+ const waasUrl = specificOptions?.waasUrl || process.env.NEXT_PUBLIC_ABC_WAAS_URL || process.env.VITE_ABC_WAAS_URL || "";
22
+ const config = {
23
+ waasUrl,
24
+ apiKey: specificOptions?.apiKey,
25
+ plain: specificOptions?.plain || "",
26
+ // Deprecated - not used (secure.ts uses random generation)
27
+ environment: specificOptions?.environment || "development",
28
+ defaultChainId: specificOptions?.defaultChainId,
29
+ defaultSolanaNetwork: specificOptions?.defaultSolanaNetwork,
30
+ defaultBitcoinNetwork: specificOptions?.defaultBitcoinNetwork,
31
+ projectId
32
+ };
33
+ return {
34
+ id: ABC_WALLET_METADATA.id,
35
+ name: ABC_WALLET_METADATA.name,
36
+ rdns: ABC_WALLET_METADATA.rdns,
37
+ iconUrl: async () => (await import("./abcWallet-AYWSIGAG.js")).default,
38
+ iconBackground: ABC_WALLET_METADATA.iconBackground,
39
+ // Embedded wallet - no installation required
40
+ installed: void 0,
41
+ // No download URLs for embedded wallet
42
+ downloadUrls: void 0,
43
+ // Create connector - wrapper function required by Wallet type
44
+ createConnector: (_walletDetails) => abcConnector({ config }),
45
+ // Embedded wallet always available
46
+ hidden: () => false
47
+ };
48
+ };
49
+
50
+ export {
51
+ abcWallet
52
+ };
@@ -1,19 +1,19 @@
1
1
  "use client";
2
2
  import {
3
3
  abcWallet
4
- } from "./chunk-QA3NATYL.js";
4
+ } from "./chunk-PYL7NUFJ.js";
5
5
  import "./chunk-BBD77PEX.js";
6
- import "./chunk-C6G5FPD6.js";
7
- import "./chunk-F5C6OZYF.js";
6
+ import "./chunk-37X7LFZU.js";
8
7
  import "./chunk-BDM7TUVM.js";
9
8
  import "./chunk-O4AU63LK.js";
9
+ import "./chunk-F5C6OZYF.js";
10
10
  import "./chunk-7QHCSJDN.js";
11
11
  import "./chunk-6LH6ZME2.js";
12
12
  import "./chunk-D5EFTEOM.js";
13
13
  import "./chunk-DHHVIM22.js";
14
14
  import {
15
- trustWallet
16
- } from "./chunk-EM6BREIH.js";
15
+ tokenaryWallet
16
+ } from "./chunk-U24COF36.js";
17
17
  import {
18
18
  uniswapWallet
19
19
  } from "./chunk-DLDZUVTB.js";
@@ -35,6 +35,9 @@ import {
35
35
  import {
36
36
  zerionWallet
37
37
  } from "./chunk-CCZUA25H.js";
38
+ import {
39
+ safeheronWallet
40
+ } from "./chunk-PHF4VWKP.js";
38
41
  import {
39
42
  safepalWallet
40
43
  } from "./chunk-LRYS2XBT.js";
@@ -44,27 +47,27 @@ import {
44
47
  import {
45
48
  subWallet
46
49
  } from "./chunk-OWSLCYOF.js";
47
- import {
48
- phantomWallet
49
- } from "./chunk-DMQ4RXIY.js";
50
50
  import {
51
51
  tahoWallet
52
52
  } from "./chunk-UXRQQZ2M.js";
53
- import {
54
- tokenPocketWallet
55
- } from "./chunk-RCZCJUTR.js";
56
53
  import {
57
54
  talismanWallet
58
55
  } from "./chunk-B4IG5R5M.js";
59
56
  import {
60
- tokenaryWallet
61
- } from "./chunk-U24COF36.js";
57
+ tokenPocketWallet
58
+ } from "./chunk-RCZCJUTR.js";
62
59
  import {
63
- metaMaskWallet
64
- } from "./chunk-VUMT22HL.js";
60
+ trustWallet
61
+ } from "./chunk-EM6BREIH.js";
62
+ import {
63
+ oneKeyWallet
64
+ } from "./chunk-6UGYPEQE.js";
65
65
  import {
66
66
  paraSwapWallet
67
67
  } from "./chunk-FF7ZXD5C.js";
68
+ import {
69
+ phantomWallet
70
+ } from "./chunk-DMQ4RXIY.js";
68
71
  import {
69
72
  rabbyWallet
70
73
  } from "./chunk-3RMYBZQG.js";
@@ -80,12 +83,12 @@ import {
80
83
  import {
81
84
  safeWallet
82
85
  } from "./chunk-Z2QCE6O6.js";
83
- import {
84
- safeheronWallet
85
- } from "./chunk-PHF4VWKP.js";
86
86
  import {
87
87
  magicEdenWallet
88
88
  } from "./chunk-WB7EEKPS.js";
89
+ import {
90
+ metaMaskWallet
91
+ } from "./chunk-VUMT22HL.js";
89
92
  import {
90
93
  mewWallet
91
94
  } from "./chunk-ZRY6ILYP.js";
@@ -104,9 +107,6 @@ import {
104
107
  import {
105
108
  oneInchWallet
106
109
  } from "./chunk-OJT577AY.js";
107
- import {
108
- oneKeyWallet
109
- } from "./chunk-6UGYPEQE.js";
110
110
  import {
111
111
  imTokenWallet
112
112
  } from "./chunk-EHE2536P.js";
@@ -117,17 +117,17 @@ import {
117
117
  iopayWallet
118
118
  } from "./chunk-A2XAHJNR.js";
119
119
  import {
120
- kaikasWallet
121
- } from "./chunk-MUJPEDFF.js";
120
+ kaiaWallet
121
+ } from "./chunk-KE6RMEB7.js";
122
122
  import {
123
123
  krakenWallet
124
124
  } from "./chunk-CYOZFCR6.js";
125
+ import {
126
+ kaikasWallet
127
+ } from "./chunk-MUJPEDFF.js";
125
128
  import {
126
129
  kresusWallet
127
130
  } from "./chunk-CM3VR7OM.js";
128
- import {
129
- kaiaWallet
130
- } from "./chunk-KE6RMEB7.js";
131
131
  import {
132
132
  ledgerWallet
133
133
  } from "./chunk-BF3VSNPL.js";
@@ -137,12 +137,12 @@ import {
137
137
  import {
138
138
  dawnWallet
139
139
  } from "./chunk-YMP3W2MO.js";
140
- import {
141
- enkryptWallet
142
- } from "./chunk-5QHPQU7J.js";
143
140
  import {
144
141
  desigWallet
145
142
  } from "./chunk-DVXPOWEC.js";
143
+ import {
144
+ enkryptWallet
145
+ } from "./chunk-5QHPQU7J.js";
146
146
  import {
147
147
  foxWallet
148
148
  } from "./chunk-E4UMOJTY.js";
@@ -158,21 +158,21 @@ import {
158
158
  import {
159
159
  bitverseWallet
160
160
  } from "./chunk-6HCSSBZY.js";
161
- import {
162
- bloomWallet
163
- } from "./chunk-3KPCADAF.js";
164
161
  import {
165
162
  braveWallet
166
163
  } from "./chunk-EYN3CVFM.js";
164
+ import {
165
+ bloomWallet
166
+ } from "./chunk-3KPCADAF.js";
167
167
  import {
168
168
  bybitWallet
169
169
  } from "./chunk-DW37ROR6.js";
170
- import {
171
- coin98Wallet
172
- } from "./chunk-ZFVYS64S.js";
173
170
  import {
174
171
  clvWallet
175
172
  } from "./chunk-DPME4O44.js";
173
+ import {
174
+ coin98Wallet
175
+ } from "./chunk-ZFVYS64S.js";
176
176
  import {
177
177
  coinbaseWallet
178
178
  } from "./chunk-PNEDRY6O.js";
@@ -182,9 +182,6 @@ import {
182
182
  import {
183
183
  argentWallet
184
184
  } from "./chunk-XT2WYPN5.js";
185
- import {
186
- berasigWallet
187
- } from "./chunk-UZWMFUJU.js";
188
185
  import {
189
186
  bestWallet
190
187
  } from "./chunk-OPAPBEA5.js";
@@ -192,11 +189,14 @@ import {
192
189
  bifrostWallet
193
190
  } from "./chunk-WXXI4WBF.js";
194
191
  import {
195
- bitgetWallet
196
- } from "./chunk-ITLTDJ3D.js";
192
+ berasigWallet
193
+ } from "./chunk-UZWMFUJU.js";
197
194
  import {
198
195
  binanceWallet
199
196
  } from "./chunk-TUDZHFVC.js";
197
+ import {
198
+ bitgetWallet
199
+ } from "./chunk-ITLTDJ3D.js";
200
200
  import "./chunk-RETKWSKD.js";
201
201
  import "./chunk-PODFK4OS.js";
202
202
  import {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talken/talkenkit",
3
- "version": "2.4.18",
3
+ "version": "2.4.19",
4
4
  "description": "The best way to connect a wallet 🌈 🧰",
5
5
  "files": [
6
6
  "dist",