@getpara/solana-wallet-connectors 2.28.0 → 2.29.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.
- package/dist/providers/SolanaExternalWalletContext.js +22 -11
- package/dist/wallets/connectors/backpack/backpack.js +1 -0
- package/dist/wallets/connectors/index.d.ts +2 -1
- package/dist/wallets/connectors/index.js +3 -1
- package/dist/wallets/connectors/phantom/phantom.js +1 -0
- package/dist/wallets/connectors/seedVault/seedVault.d.ts +2 -0
- package/dist/wallets/connectors/seedVault/seedVault.js +43 -0
- package/dist/wallets/connectors/seedVault/seedVaultIcon.d.ts +1 -0
- package/dist/wallets/connectors/seedVault/seedVaultIcon.js +5 -0
- package/dist/wallets/connectors/solflare/solflare.js +1 -0
- package/package.json +4 -4
|
@@ -42,7 +42,10 @@ import { jsx } from "react/jsx-runtime";
|
|
|
42
42
|
import { createContext, useEffect, useMemo, useRef, useState } from "react";
|
|
43
43
|
import { useWallet } from "@solana/wallet-adapter-react";
|
|
44
44
|
import { isIosAndRedirectable, WalletReadyState } from "@solana/wallet-adapter-base";
|
|
45
|
-
import {
|
|
45
|
+
import {
|
|
46
|
+
isAndroid,
|
|
47
|
+
isAndroidChrome
|
|
48
|
+
} from "@getpara/web-sdk";
|
|
46
49
|
import {
|
|
47
50
|
defaultSolanaExternalWallet
|
|
48
51
|
} from "@getpara/react-common";
|
|
@@ -313,7 +316,7 @@ function SolanaExternalWalletProvider({
|
|
|
313
316
|
throw e;
|
|
314
317
|
}
|
|
315
318
|
});
|
|
316
|
-
const connectCallback = (adapter) => {
|
|
319
|
+
const connectCallback = (adapter, walletName) => {
|
|
317
320
|
return () => __async(this, null, function* () {
|
|
318
321
|
var _a, _b, _c, _d;
|
|
319
322
|
let address;
|
|
@@ -322,7 +325,7 @@ function SolanaExternalWalletProvider({
|
|
|
322
325
|
} catch (e) {
|
|
323
326
|
throw e;
|
|
324
327
|
}
|
|
325
|
-
const providerName = adapter.name;
|
|
328
|
+
const providerName = walletName != null ? walletName : adapter.name;
|
|
326
329
|
const providerId = (_b = (_a = getWallet(providerName != null ? providerName : "")) == null ? void 0 : _a.id) != null ? _b : "";
|
|
327
330
|
solanaAddressRef.current = address;
|
|
328
331
|
return {
|
|
@@ -340,13 +343,15 @@ function SolanaExternalWalletProvider({
|
|
|
340
343
|
};
|
|
341
344
|
});
|
|
342
345
|
};
|
|
343
|
-
const connect = (adapter) => __async(this, null, function* () {
|
|
346
|
+
const connect = (adapter, walletName) => __async(this, null, function* () {
|
|
344
347
|
var _a;
|
|
345
348
|
if (isIosAndRedirectable() && !isInSolanaWalletDappBrowser()) {
|
|
346
349
|
return;
|
|
347
350
|
}
|
|
348
351
|
if (isAndroid() && (adapter == null ? void 0 : adapter.name) === "Mobile Wallet Adapter") {
|
|
349
|
-
return;
|
|
352
|
+
if (!isAndroidChrome()) return;
|
|
353
|
+
const tappedWallet = getWallet(walletName != null ? walletName : "");
|
|
354
|
+
if (!(tappedWallet == null ? void 0 : tappedWallet.mwaSupported)) return;
|
|
350
355
|
}
|
|
351
356
|
if (adapter && (wallet == null ? void 0 : wallet.adapter) && wallet.adapter.name !== adapter.name) {
|
|
352
357
|
yield disconnect();
|
|
@@ -357,7 +362,7 @@ function SolanaExternalWalletProvider({
|
|
|
357
362
|
let error;
|
|
358
363
|
let authState;
|
|
359
364
|
try {
|
|
360
|
-
authState = yield para.connectExternalWallet({ connect: connectCallback(adapter) });
|
|
365
|
+
authState = yield para.connectExternalWallet({ connect: connectCallback(adapter, walletName) });
|
|
361
366
|
address = (_a = authState.externalWallet) == null ? void 0 : _a.address;
|
|
362
367
|
} catch (err) {
|
|
363
368
|
switch (err.message) {
|
|
@@ -430,23 +435,29 @@ function SolanaExternalWalletProvider({
|
|
|
430
435
|
const createWallet = (walletFn) => {
|
|
431
436
|
const metaData = walletFn();
|
|
432
437
|
const adapter = getAdapter(metaData.name);
|
|
438
|
+
const isMwaOnAndroidChrome = !!metaData.mwaSupported && isAndroidChrome();
|
|
433
439
|
return __spreadProps(__spreadValues({
|
|
434
|
-
connect: () => connect(adapter),
|
|
435
|
-
connectMobile: () => connect(adapter),
|
|
440
|
+
connect: () => connect(adapter, metaData.name),
|
|
441
|
+
connectMobile: () => connect(adapter, metaData.name),
|
|
436
442
|
type: "SOLANA",
|
|
437
|
-
installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable)
|
|
443
|
+
installed: isMwaOnAndroidChrome || adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable)
|
|
438
444
|
}, metaData), {
|
|
439
445
|
// Using name here since that's the only common id across the networks
|
|
440
446
|
id: metaData.name
|
|
441
447
|
});
|
|
442
448
|
};
|
|
443
|
-
const [wallets, setWallets] = useState(() =>
|
|
449
|
+
const [wallets, setWallets] = useState(() => {
|
|
450
|
+
const created = walletFns.map(createWallet);
|
|
451
|
+
if (isAndroidChrome()) return created;
|
|
452
|
+
return created.filter((w) => w.internalId !== "SEED_VAULT_WALLET");
|
|
453
|
+
});
|
|
444
454
|
useEffect(() => {
|
|
445
455
|
setWallets(
|
|
446
456
|
(prev) => prev.map((wallet2) => {
|
|
447
457
|
var _a;
|
|
448
458
|
const adapter = getAdapter((_a = wallet2.name) != null ? _a : "");
|
|
449
|
-
const
|
|
459
|
+
const isMwaOnAndroidChrome = !!wallet2.mwaSupported && isAndroidChrome();
|
|
460
|
+
const installed = isMwaOnAndroidChrome || !!adapter && (adapter.readyState === WalletReadyState.Installed || adapter.readyState === WalletReadyState.Loadable);
|
|
450
461
|
if (wallet2.installed !== installed) {
|
|
451
462
|
return __spreadProps(__spreadValues({}, wallet2), { installed });
|
|
452
463
|
}
|
|
@@ -30,6 +30,7 @@ const backpackWallet = () => {
|
|
|
30
30
|
isExtension: true,
|
|
31
31
|
isMobile: true,
|
|
32
32
|
hasIosSafariExtension: false,
|
|
33
|
+
mwaSupported: true,
|
|
33
34
|
getQrUri: () => __async(void 0, null, function* () {
|
|
34
35
|
if (typeof window !== "undefined" && isIosAndRedirectable()) {
|
|
35
36
|
const url = encodeURIComponent(window.location.href);
|
|
@@ -4,5 +4,6 @@ import { glowWallet } from './glow/glow.js';
|
|
|
4
4
|
import { backpackWallet } from './backpack/backpack.js';
|
|
5
5
|
import { solflareWallet } from './solflare/solflare.js';
|
|
6
6
|
import { metaMaskWallet } from './metaMask/metaMask.js';
|
|
7
|
-
|
|
7
|
+
import { seedVaultWallet } from './seedVault/seedVault.js';
|
|
8
|
+
export { farcasterWallet, phantomWallet, glowWallet, backpackWallet, solflareWallet, metaMaskWallet, seedVaultWallet };
|
|
8
9
|
export declare const allWallets: (() => import("../../types/Wallet.js").Wallet)[];
|
|
@@ -5,7 +5,8 @@ import { glowWallet } from "./glow/glow.js";
|
|
|
5
5
|
import { backpackWallet } from "./backpack/backpack.js";
|
|
6
6
|
import { solflareWallet } from "./solflare/solflare.js";
|
|
7
7
|
import { metaMaskWallet } from "./metaMask/metaMask.js";
|
|
8
|
-
|
|
8
|
+
import { seedVaultWallet } from "./seedVault/seedVault.js";
|
|
9
|
+
const allWallets = [phantomWallet, glowWallet, backpackWallet, solflareWallet, metaMaskWallet, seedVaultWallet];
|
|
9
10
|
export {
|
|
10
11
|
allWallets,
|
|
11
12
|
backpackWallet,
|
|
@@ -13,5 +14,6 @@ export {
|
|
|
13
14
|
glowWallet,
|
|
14
15
|
metaMaskWallet,
|
|
15
16
|
phantomWallet,
|
|
17
|
+
seedVaultWallet,
|
|
16
18
|
solflareWallet
|
|
17
19
|
};
|
|
@@ -30,6 +30,7 @@ const phantomWallet = () => {
|
|
|
30
30
|
isExtension: true,
|
|
31
31
|
isMobile: true,
|
|
32
32
|
hasIosSafariExtension: false,
|
|
33
|
+
mwaSupported: true,
|
|
33
34
|
getQrUri: () => __async(void 0, null, function* () {
|
|
34
35
|
if (typeof window !== "undefined" && isIosAndRedirectable()) {
|
|
35
36
|
const url = encodeURIComponent(window.location.href);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __async = (__this, __arguments, generator) => {
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
var fulfilled = (value) => {
|
|
5
|
+
try {
|
|
6
|
+
step(generator.next(value));
|
|
7
|
+
} catch (e) {
|
|
8
|
+
reject(e);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
var rejected = (value) => {
|
|
12
|
+
try {
|
|
13
|
+
step(generator.throw(value));
|
|
14
|
+
} catch (e) {
|
|
15
|
+
reject(e);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
19
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
import { icon } from "./seedVaultIcon.js";
|
|
23
|
+
const seedVaultWallet = () => {
|
|
24
|
+
return {
|
|
25
|
+
id: "seed_vault_wallet",
|
|
26
|
+
internalId: "SEED_VAULT_WALLET",
|
|
27
|
+
name: "Seed Vault Wallet",
|
|
28
|
+
iconUrl: icon,
|
|
29
|
+
isExtension: false,
|
|
30
|
+
isMobile: true,
|
|
31
|
+
hasIosSafariExtension: false,
|
|
32
|
+
mwaSupported: true,
|
|
33
|
+
// No QR / universal-link path: Seed Vault Wallet has no in-app browser and
|
|
34
|
+
// no `window.solana` injection. MWA is the only entry point.
|
|
35
|
+
getQrUri: () => __async(void 0, null, function* () {
|
|
36
|
+
return "";
|
|
37
|
+
}),
|
|
38
|
+
downloadUrl: "https://solanamobile.com/seeker"
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export {
|
|
42
|
+
seedVaultWallet
|
|
43
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const icon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAyNDUgMjQ1IiBmaWxsPSJub25lIj48Y2lyY2xlIGN4PSIxMjIuNSIgY3k9IjEyMi41IiByPSIxMjIuNSIgZmlsbD0iIzAwMDAwMCIvPjxwYXRoIGQ9Ik0xMjIuNSAwQzE5MC4xNTUgMCAyNDUgNTQuODQ1MSAyNDUgMTIyLjVDMjQ1IDE5MC4xNTUgMTkwLjE1NSAyNDUgMTIyLjUgMjQ1QzU1LjAxMTkgMjQ1IDAuMjcyMzYgMTkwLjQyNSAwLjAwMjkyOTY5IDEyM0gwQzAgMTIyLjkzNiAwLjAwMDcyMDUyIDEyMi44NzIgMC4wMDA5NzY1NjIgMTIyLjgwOEMwLjAwMDcyNDU4OCAxMjIuNzA1IDAgMTIyLjYwMyAwIDEyMi41QzAgNTQuODQ1MSA1NC44NDUxIDAgMTIyLjUgMFpNMTIyLjUgMjBDODQuOTY4MiAyMCA1Mi4xNDc2IDQwLjE3MTkgMzQuMjg5MSA3MC4yNjU2QzU2LjU3MTEgNTUuOTIyOCA4Ny44NTU5IDQ3IDEyMi41IDQ3QzEzNy4zNjQgNDcgMTUwLjY3IDQ5LjQ5NjEgMTY0IDU1QzE3Ny4zMyA2MC41MDM5IDE4OC43MTggNzAuOTQxIDE5NS43OTMgODQuNTkyOEMxNzcuNDEgNzQuMDIwMiAxNTEuNzAxIDY3IDEyMi41IDY3QzkxLjc5NDEgNjcgNjQuOTQ3OSA3NC43NjE4IDQ2LjQyMjkgODYuMjU0OUMzMi44MzEzIDk0LjY4NzIgMjUuMDkzNSAxMDQuMDg2IDIxLjg0MDggMTEzSDY2VjEzM0gyMC41MzEyQzI1Ljc4OTUgMTg0LjY3NyA2OS40MzU3IDIyNSAxMjIuNSAyMjVDMTU5LjQ0IDIyNSAxOTEuODE0IDIwNS40NTkgMjA5Ljg1MyAxNzYuMTVDMTg3LjYxNCAxOTAuMjQ5IDE1Ni42MDEgMTk5IDEyMi4yOTMgMTk5QzEwNy40MjkgMTk5IDk0LjEyMzQgMTk2LjUwNCA4MC43OTMgMTkxQzY3LjQ2MjUgMTg1LjQ5NiA1Ni4wNzUyIDE3NS4wNTkgNDkgMTYxLjQwN0M2Ny4zODI2IDE3MS45OCA5My4wOTIzIDE3OSAxMjIuMjkzIDE3OUMxNTIuOTk5IDE3OSAxNzkuODQ1IDE3MS4yMzggMTk4LjM3IDE1OS43NDVDMjExLjk2MiAxNTEuMzEzIDIxOS42OTkgMTQxLjkxNCAyMjIuOTUyIDEzM0gxNzlWMTEzSDIyNC41NjNDMjE5Ljc3IDYwLjg0NDYgMTc1LjkwNiAyMCAxMjIuNSAyMFpNMTIyLjUgODZDMTQyLjY1OCA4NiAxNTkgMTAyLjM0MiAxNTkgMTIyLjVDMTU5IDE0Mi42NTggMTQyLjY1OCAxNTkgMTIyLjUgMTU5QzEwMi4zNDIgMTU5IDg2IDE0Mi42NTggODYgMTIyLjVDODYgMTAyLjM0MiAxMDIuMzQyIDg2IDEyMi41IDg2Wk0xMjIuNSAxMDZDMTEzLjM4NyAxMDYgMTA2IDExMy4zODcgMTA2IDEyMi41QzEwNiAxMzEuNjEzIDExMy4zODcgMTM5IDEyMi41IDEzOUMxMzEuNjEzIDEzOSAxMzkgMTMxLjYxMyAxMzkgMTIyLjVDMTM5IDExMy4zODcgMTMxLjYxMyAxMDYgMTIyLjUgMTA2WiIgZmlsbD0iI0ZGRkZGRiIvPjwvc3ZnPgo=";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const icon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAyNDUgMjQ1IiBmaWxsPSJub25lIj48Y2lyY2xlIGN4PSIxMjIuNSIgY3k9IjEyMi41IiByPSIxMjIuNSIgZmlsbD0iIzAwMDAwMCIvPjxwYXRoIGQ9Ik0xMjIuNSAwQzE5MC4xNTUgMCAyNDUgNTQuODQ1MSAyNDUgMTIyLjVDMjQ1IDE5MC4xNTUgMTkwLjE1NSAyNDUgMTIyLjUgMjQ1QzU1LjAxMTkgMjQ1IDAuMjcyMzYgMTkwLjQyNSAwLjAwMjkyOTY5IDEyM0gwQzAgMTIyLjkzNiAwLjAwMDcyMDUyIDEyMi44NzIgMC4wMDA5NzY1NjIgMTIyLjgwOEMwLjAwMDcyNDU4OCAxMjIuNzA1IDAgMTIyLjYwMyAwIDEyMi41QzAgNTQuODQ1MSA1NC44NDUxIDAgMTIyLjUgMFpNMTIyLjUgMjBDODQuOTY4MiAyMCA1Mi4xNDc2IDQwLjE3MTkgMzQuMjg5MSA3MC4yNjU2QzU2LjU3MTEgNTUuOTIyOCA4Ny44NTU5IDQ3IDEyMi41IDQ3QzEzNy4zNjQgNDcgMTUwLjY3IDQ5LjQ5NjEgMTY0IDU1QzE3Ny4zMyA2MC41MDM5IDE4OC43MTggNzAuOTQxIDE5NS43OTMgODQuNTkyOEMxNzcuNDEgNzQuMDIwMiAxNTEuNzAxIDY3IDEyMi41IDY3QzkxLjc5NDEgNjcgNjQuOTQ3OSA3NC43NjE4IDQ2LjQyMjkgODYuMjU0OUMzMi44MzEzIDk0LjY4NzIgMjUuMDkzNSAxMDQuMDg2IDIxLjg0MDggMTEzSDY2VjEzM0gyMC41MzEyQzI1Ljc4OTUgMTg0LjY3NyA2OS40MzU3IDIyNSAxMjIuNSAyMjVDMTU5LjQ0IDIyNSAxOTEuODE0IDIwNS40NTkgMjA5Ljg1MyAxNzYuMTVDMTg3LjYxNCAxOTAuMjQ5IDE1Ni42MDEgMTk5IDEyMi4yOTMgMTk5QzEwNy40MjkgMTk5IDk0LjEyMzQgMTk2LjUwNCA4MC43OTMgMTkxQzY3LjQ2MjUgMTg1LjQ5NiA1Ni4wNzUyIDE3NS4wNTkgNDkgMTYxLjQwN0M2Ny4zODI2IDE3MS45OCA5My4wOTIzIDE3OSAxMjIuMjkzIDE3OUMxNTIuOTk5IDE3OSAxNzkuODQ1IDE3MS4yMzggMTk4LjM3IDE1OS43NDVDMjExLjk2MiAxNTEuMzEzIDIxOS42OTkgMTQxLjkxNCAyMjIuOTUyIDEzM0gxNzlWMTEzSDIyNC41NjNDMjE5Ljc3IDYwLjg0NDYgMTc1LjkwNiAyMCAxMjIuNSAyMFpNMTIyLjUgODZDMTQyLjY1OCA4NiAxNTkgMTAyLjM0MiAxNTkgMTIyLjVDMTU5IDE0Mi42NTggMTQyLjY1OCAxNTkgMTIyLjUgMTU5QzEwMi4zNDIgMTU5IDg2IDE0Mi42NTggODYgMTIyLjVDODYgMTAyLjM0MiAxMDIuMzQyIDg2IDEyMi41IDg2Wk0xMjIuNSAxMDZDMTEzLjM4NyAxMDYgMTA2IDExMy4zODcgMTA2IDEyMi41QzEwNiAxMzEuNjEzIDExMy4zODcgMTM5IDEyMi41IDEzOUMxMzEuNjEzIDEzOSAxMzkgMTMxLjYxMyAxMzkgMTIyLjVDMTM5IDExMy4zODcgMTMxLjYxMyAxMDYgMTIyLjUgMTA2WiIgZmlsbD0iI0ZGRkZGRiIvPjwvc3ZnPgo=";
|
|
3
|
+
export {
|
|
4
|
+
icon
|
|
5
|
+
};
|
|
@@ -30,6 +30,7 @@ const solflareWallet = () => {
|
|
|
30
30
|
isExtension: true,
|
|
31
31
|
isMobile: true,
|
|
32
32
|
hasIosSafariExtension: false,
|
|
33
|
+
mwaSupported: true,
|
|
33
34
|
getQrUri: () => __async(void 0, null, function* () {
|
|
34
35
|
if (typeof window !== "undefined" && isIosAndRedirectable()) {
|
|
35
36
|
const url = encodeURIComponent(window.location.href);
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getpara/solana-wallet-connectors",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.29.0",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@getpara/react-common": "2.
|
|
6
|
-
"@getpara/web-sdk": "2.
|
|
5
|
+
"@getpara/react-common": "2.29.0",
|
|
6
|
+
"@getpara/web-sdk": "2.29.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": "3fe797a65534cf466471441317763b1cef00b5b5",
|
|
27
27
|
"main": "dist/index.js",
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@farcaster/mini-app-solana": "^1.0.5",
|