@getpara/solana-wallet-connectors 2.22.0 → 2.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -49,6 +49,13 @@ import {
49
49
  import bs58 from "bs58";
50
50
  import { externalHooks } from "./externalHooks.js";
51
51
  import { farcasterWallet } from "../wallets/connectors/index.js";
52
+ const CONNECT_EVENT_TIMEOUT_MS = 3e4;
53
+ const isInSolanaWalletDappBrowser = () => {
54
+ var _a, _b;
55
+ if (typeof window === "undefined") return false;
56
+ const w = window;
57
+ return !!((_a = w == null ? void 0 : w.phantom) == null ? void 0 : _a.solana) || !!(w == null ? void 0 : w.solflare) || !!(w == null ? void 0 : w.backpack) || !!(w == null ? void 0 : w.glowSolana) || !!((_b = w == null ? void 0 : w.ethereum) == null ? void 0 : _b.isMetaMask);
58
+ };
52
59
  const SolanaExternalWalletContext = createContext(__spreadProps(__spreadValues({}, defaultSolanaExternalWallet), {
53
60
  farcasterStatus: void 0
54
61
  }));
@@ -199,7 +206,7 @@ function SolanaExternalWalletProvider({
199
206
  throw new Error("Adapter not found.");
200
207
  }
201
208
  const wallet2 = getWallet(adapter.name);
202
- if (wallet2 == null ? void 0 : wallet2.getQrUri) {
209
+ if ((wallet2 == null ? void 0 : wallet2.getQrUri) && !isInSolanaWalletDappBrowser()) {
203
210
  const qrUri = yield wallet2.getQrUri();
204
211
  if (qrUri) {
205
212
  window.dispatchEvent(new CustomEvent("PARA_WALLETCONNECT_URI_READY", { detail: qrUri }));
@@ -214,24 +221,29 @@ function SolanaExternalWalletProvider({
214
221
  if (adapter.publicKey) {
215
222
  address = adapter.publicKey.toString();
216
223
  } else {
217
- yield new Promise((resolve, reject) => {
218
- adapter.once("connect", () => __async(this, null, function* () {
219
- try {
220
- address = adapter.publicKey.toString();
221
- resolve();
222
- } catch (err) {
224
+ yield Promise.race([
225
+ new Promise((resolve, reject) => {
226
+ adapter.once("connect", () => __async(this, null, function* () {
227
+ try {
228
+ address = adapter.publicKey.toString();
229
+ resolve();
230
+ } catch (err) {
231
+ reject(err);
232
+ }
233
+ }));
234
+ adapter.once("error", (err) => {
235
+ error = (err == null ? void 0 : err.message) || "An unknown error occurred";
223
236
  reject(err);
224
- }
225
- }));
226
- adapter.once("error", (err) => {
227
- error = (err == null ? void 0 : err.message) || "An unknown error occurred";
228
- reject(err);
229
- });
230
- adapter.once("disconnect", () => {
231
- error = "Disconnected before connect event";
232
- reject(new Error(error));
233
- });
234
- });
237
+ });
238
+ adapter.once("disconnect", () => {
239
+ error = "Disconnected before connect event";
240
+ reject(new Error(error));
241
+ });
242
+ }),
243
+ new Promise(
244
+ (_, reject) => setTimeout(() => reject(new Error("Connection timed out")), CONNECT_EVENT_TIMEOUT_MS)
245
+ )
246
+ ]);
235
247
  }
236
248
  return address;
237
249
  } catch (e) {
@@ -269,7 +281,7 @@ function SolanaExternalWalletProvider({
269
281
  };
270
282
  const connect = (adapter) => __async(this, null, function* () {
271
283
  var _a;
272
- if (isIosAndRedirectable()) {
284
+ if (isIosAndRedirectable() && !isInSolanaWalletDappBrowser()) {
273
285
  return;
274
286
  }
275
287
  if (isAndroid() && (adapter == null ? void 0 : adapter.name) === "Mobile Wallet Adapter") {
@@ -291,6 +303,10 @@ function SolanaExternalWalletProvider({
291
303
  error = "Connection request rejected";
292
304
  break;
293
305
  }
306
+ case "Connection timed out": {
307
+ error = "Connection timed out. Please try again.";
308
+ break;
309
+ }
294
310
  default: {
295
311
  console.error("Solana connection error:", err.message);
296
312
  error = "An unknown error occurred";
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@getpara/solana-wallet-connectors",
3
- "version": "2.22.0",
3
+ "version": "2.24.0",
4
4
  "dependencies": {
5
- "@getpara/react-common": "2.22.0",
6
- "@getpara/web-sdk": "2.22.0",
5
+ "@getpara/react-common": "2.24.0",
6
+ "@getpara/web-sdk": "2.24.0",
7
7
  "bs58": "^6.0.0"
8
8
  },
9
9
  "devDependencies": {
@@ -23,7 +23,7 @@
23
23
  "dist",
24
24
  "package.json"
25
25
  ],
26
- "gitHead": "7191b8c823ec592eb1da16c9a085f8e69c6bf377",
26
+ "gitHead": "3ea729c9a5e550c2053c5fff07d1ca7d8a8f9ce9",
27
27
  "main": "dist/index.js",
28
28
  "peerDependencies": {
29
29
  "@farcaster/mini-app-solana": "^1.0.5",