@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
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
})
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
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.
|
|
3
|
+
"version": "2.24.0",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@getpara/react-common": "2.
|
|
6
|
-
"@getpara/web-sdk": "2.
|
|
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": "
|
|
26
|
+
"gitHead": "3ea729c9a5e550c2053c5fff07d1ca7d8a8f9ce9",
|
|
27
27
|
"main": "dist/index.js",
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@farcaster/mini-app-solana": "^1.0.5",
|