@getpara/solana-wallet-connectors 2.0.0-alpha.31 → 2.0.0-alpha.33
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.d.ts +2 -2
- package/dist/providers/SolanaExternalWalletContext.js +68 -6
- package/dist/wallets/connectors/farcaster/farcaster.d.ts +2 -0
- package/dist/wallets/connectors/farcaster/farcaster.js +16 -0
- package/dist/wallets/connectors/farcaster/farcasterIcon.d.ts +1 -0
- package/dist/wallets/connectors/farcaster/farcasterIcon.js +5 -0
- package/dist/wallets/connectors/index.d.ts +2 -1
- package/dist/wallets/connectors/index.js +2 -0
- package/package.json +10 -4
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
2
|
import { CreateWalletFn } from '../types/Wallet.js';
|
|
3
|
-
import { ExternalWalletContextType, ExternalWalletProviderConfig, ExternalWalletProviderConfigBase } from '@getpara/react-common';
|
|
3
|
+
import { ExternalWalletContextType, ExternalWalletProviderConfig, ExternalWalletProviderConfigBase, FarcasterMiniAppManagement } from '@getpara/react-common';
|
|
4
4
|
import { TExternalHooks } from './externalHooks.js';
|
|
5
|
-
export type SolanaExternalWalletContextType = ExternalWalletContextType & TExternalHooks;
|
|
5
|
+
export type SolanaExternalWalletContextType = ExternalWalletContextType & TExternalHooks & FarcasterMiniAppManagement;
|
|
6
6
|
export declare const SolanaExternalWalletContext: import("react").Context<SolanaExternalWalletContextType>;
|
|
7
7
|
export type SolanaExternalWalletProviderConfig = ExternalWalletProviderConfigBase;
|
|
8
8
|
type SolanaExternalWalletProviderConfigFull = ExternalWalletProviderConfig<CreateWalletFn>;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
3
5
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
7
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
@@ -15,6 +17,7 @@ var __spreadValues = (a, b) => {
|
|
|
15
17
|
}
|
|
16
18
|
return a;
|
|
17
19
|
};
|
|
20
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
18
21
|
var __async = (__this, __arguments, generator) => {
|
|
19
22
|
return new Promise((resolve, reject) => {
|
|
20
23
|
var fulfilled = (value) => {
|
|
@@ -36,7 +39,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
36
39
|
});
|
|
37
40
|
};
|
|
38
41
|
import { jsx } from "react/jsx-runtime";
|
|
39
|
-
import { createContext, useEffect, useMemo, useRef } from "react";
|
|
42
|
+
import { createContext, useEffect, useMemo, useRef, useState } from "react";
|
|
40
43
|
import { useWallet } from "@solana/wallet-adapter-react";
|
|
41
44
|
import { isIosAndRedirectable, WalletReadyState } from "@solana/wallet-adapter-base";
|
|
42
45
|
import {
|
|
@@ -44,7 +47,10 @@ import {
|
|
|
44
47
|
} from "@getpara/react-common";
|
|
45
48
|
import bs58 from "bs58";
|
|
46
49
|
import { externalHooks } from "./externalHooks.js";
|
|
47
|
-
|
|
50
|
+
import { farcasterWallet } from "../wallets/connectors/index.js";
|
|
51
|
+
const SolanaExternalWalletContext = createContext(__spreadProps(__spreadValues({}, defaultSolanaExternalWallet), {
|
|
52
|
+
farcasterStatus: void 0
|
|
53
|
+
}));
|
|
48
54
|
function SolanaExternalWalletProvider({
|
|
49
55
|
children,
|
|
50
56
|
wallets: walletFns,
|
|
@@ -67,6 +73,7 @@ function SolanaExternalWalletProvider({
|
|
|
67
73
|
const solanaSignMessageRef = useRef(solanaSignMessage);
|
|
68
74
|
const solanaAddressRef = useRef(solanaAddress);
|
|
69
75
|
const verificationMessage = useRef();
|
|
76
|
+
const [isFarcasterSetup, setIsFarcasterSetup] = useState(false);
|
|
70
77
|
const reset = () => __async(this, null, function* () {
|
|
71
78
|
yield disconnect();
|
|
72
79
|
yield para.logout();
|
|
@@ -86,6 +93,7 @@ function SolanaExternalWalletProvider({
|
|
|
86
93
|
try {
|
|
87
94
|
return yield para.loginExternalWallet({
|
|
88
95
|
externalWallet: {
|
|
96
|
+
partnerId: para.partnerId,
|
|
89
97
|
address,
|
|
90
98
|
type: "SOLANA",
|
|
91
99
|
provider: providerName,
|
|
@@ -258,6 +266,7 @@ function SolanaExternalWalletProvider({
|
|
|
258
266
|
try {
|
|
259
267
|
const address = yield connectBase(adapter);
|
|
260
268
|
const externalWallet = {
|
|
269
|
+
partnerId: para.partnerId,
|
|
261
270
|
address,
|
|
262
271
|
type: "SOLANA",
|
|
263
272
|
providerId: wallet2.internalId,
|
|
@@ -289,7 +298,7 @@ function SolanaExternalWalletProvider({
|
|
|
289
298
|
return (_a = adapters.find((a) => a.adapter.name === "Mobile Wallet Adapter" ? a : a.adapter.name === name ? a : false)) == null ? void 0 : _a.adapter;
|
|
290
299
|
};
|
|
291
300
|
const getWallet = (name) => wallets.find((w) => w.name === name);
|
|
292
|
-
const
|
|
301
|
+
const createWallet = (walletFn) => {
|
|
293
302
|
const metaData = walletFn();
|
|
294
303
|
const adapter = getAdapter(metaData.name);
|
|
295
304
|
return __spreadValues({
|
|
@@ -298,13 +307,66 @@ function SolanaExternalWalletProvider({
|
|
|
298
307
|
type: "SOLANA",
|
|
299
308
|
installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable)
|
|
300
309
|
}, metaData);
|
|
301
|
-
}
|
|
310
|
+
};
|
|
311
|
+
const [wallets, setWallets] = useState(() => walletFns.map(createWallet));
|
|
312
|
+
const farcasterStatus = useMemo(() => {
|
|
313
|
+
if (!isFarcasterSetup) {
|
|
314
|
+
return void 0;
|
|
315
|
+
}
|
|
316
|
+
const farcasterAdapter = getAdapter("Farcaster");
|
|
317
|
+
if (!farcasterAdapter) {
|
|
318
|
+
return {
|
|
319
|
+
isPresent: false
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
return farcasterAdapter.connected && farcasterAdapter.publicKey ? {
|
|
323
|
+
isPresent: true,
|
|
324
|
+
isConnected: true,
|
|
325
|
+
address: farcasterAdapter.publicKey.toString()
|
|
326
|
+
} : {
|
|
327
|
+
isPresent: true,
|
|
328
|
+
isConnected: false
|
|
329
|
+
};
|
|
330
|
+
}, [isFarcasterSetup, adapters]);
|
|
331
|
+
useEffect(() => {
|
|
332
|
+
const detectFarcaster = () => __async(this, null, function* () {
|
|
333
|
+
if (para.isFarcasterMiniApp) {
|
|
334
|
+
try {
|
|
335
|
+
yield import("@farcaster/mini-app-solana");
|
|
336
|
+
} catch (e) {
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
detectFarcaster();
|
|
341
|
+
}, [para.isFarcasterMiniApp]);
|
|
342
|
+
useEffect(() => {
|
|
343
|
+
const setupFarcaster = () => __async(this, null, function* () {
|
|
344
|
+
const adapter = getAdapter("Farcaster");
|
|
345
|
+
if (para.isFarcasterMiniApp && !wallets.some((w) => w.internalId === "FARCASTER") && !!adapter) {
|
|
346
|
+
const wallet2 = createWallet(farcasterWallet);
|
|
347
|
+
setWallets((prev) => [...prev, wallet2]);
|
|
348
|
+
if (para.supportedWalletTypes.some(({ type }) => type === "SOLANA")) {
|
|
349
|
+
yield connectBase(adapter, true);
|
|
350
|
+
}
|
|
351
|
+
setIsFarcasterSetup(true);
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
setupFarcaster();
|
|
355
|
+
}, [para.isFarcasterMiniApp, wallets, adapters]);
|
|
302
356
|
return /* @__PURE__ */ jsx(
|
|
303
357
|
SolanaExternalWalletContext.Provider,
|
|
304
358
|
{
|
|
305
359
|
value: useMemo(
|
|
306
|
-
() => __spreadValues({
|
|
307
|
-
|
|
360
|
+
() => __spreadValues({
|
|
361
|
+
wallets,
|
|
362
|
+
disconnect,
|
|
363
|
+
signMessage,
|
|
364
|
+
signVerificationMessage,
|
|
365
|
+
requestInfo,
|
|
366
|
+
disconnectBase,
|
|
367
|
+
farcasterStatus
|
|
368
|
+
}, externalHooks),
|
|
369
|
+
[wallets, disconnect, signMessage, signVerificationMessage, requestInfo, farcasterStatus, disconnectBase]
|
|
308
370
|
),
|
|
309
371
|
children
|
|
310
372
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { icon } from "./farcasterIcon.js";
|
|
3
|
+
const farcasterWallet = () => {
|
|
4
|
+
return {
|
|
5
|
+
id: "farcaster",
|
|
6
|
+
internalId: "FARCASTER",
|
|
7
|
+
name: "Farcaster",
|
|
8
|
+
iconUrl: icon,
|
|
9
|
+
isExtension: true,
|
|
10
|
+
hasIosSafariExtension: false,
|
|
11
|
+
downloadUrl: "https://farcaster.xyz"
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
farcasterWallet
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swXzEzNDFfMzQiIHN0eWxlPSJtYXNrLXR5cGU6bHVtaW5hbmNlIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI0IiB5PSIwIiB3aWR0aD0iMTciIGhlaWdodD0iMjQiPgo8cGF0aCBkPSJNMjAuNSAwSDRWMjRIMjAuNVYwWiIgZmlsbD0id2hpdGUiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzEzNDFfMzQpIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy44MTMgMS44ODcwOEMxNC42ODUzIDEuODg3MDggMTUuNTAzNSAyLjAwNDAyIDE2LjI2MTIgMi4yMjA4OUMxNS41MTk1IDAuNDkyMjU0IDEzLjk3OTUgMCAxMi4yNjU2IDBDMTAuNTQ4MyAwIDkuMDA1NjUgMC40OTQxODggOC4yNjU2MiAyLjIzMTA3QzkuMDE3NjUgMi4wMDY1NyA5LjgzMjM2IDEuODg3MDggMTAuNzAxNyAxLjg4NzA4SDEzLjgxM1pNMTAuNTAyMiAzLjYyMjU2QzYuMzYwMDMgMy42MjI1NiA0IDYuODgxMTQgNCAxMC45MDA4VjE1LjAzQzQgMTUuNDMyIDQuMzM1NzkgMTUuNzUgNC43NSAxNS43NUgxOS43NUMyMC4xNjQyIDE1Ljc1IDIwLjUgMTUuNDMyIDIwLjUgMTUuMDNWMTAuOTAwOEMyMC41IDYuODgxMTQgMTcuNzU1NiAzLjYyMjU2IDEzLjYxMzUgMy42MjI1NkgxMC41MDIyWk0xMi4yNDQxIDEwLjkzNjVDMTMuNjkzOSAxMC45MzY1IDE0Ljg2OTIgOS43NjEyMyAxNC44NjkyIDguMzExNTNDMTQuODY5MiA2Ljg2MTc4IDEzLjY5MzkgNS42ODY1MyAxMi4yNDQxIDUuNjg2NTNDMTAuNzk0NCA1LjY4NjUzIDkuNjE5MTQgNi44NjE3OCA5LjYxOTE0IDguMzExNTNDOS42MTkxNCA5Ljc2MTIzIDEwLjc5NDQgMTAuOTM2NSAxMi4yNDQxIDEwLjkzNjVaTTQgMTguMTc3MUM0IDE3Ljc3NTEgNC4zMzU3OSAxNy40NDkyIDQuNzUgMTcuNDQ5MkgxOS43NUMyMC4xNjQyIDE3LjQ0OTIgMjAuNSAxNy43NzUxIDIwLjUgMTguMTc3MVYyMi41NDRDMjAuNSAyMy4zNDc5IDE5LjgyODQgMjMuOTk5NyAxOSAyMy45OTk3SDUuNUM0LjY3MTU3IDIzLjk5OTcgNCAyMy4zNDc5IDQgMjIuNTQ0VjE4LjE3NzFaIiBmaWxsPSIjRTMzRTNGIi8+CjwvZz4KPC9zdmc+Cg==";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swXzEzNDFfMzQiIHN0eWxlPSJtYXNrLXR5cGU6bHVtaW5hbmNlIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI0IiB5PSIwIiB3aWR0aD0iMTciIGhlaWdodD0iMjQiPgo8cGF0aCBkPSJNMjAuNSAwSDRWMjRIMjAuNVYwWiIgZmlsbD0id2hpdGUiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzEzNDFfMzQpIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy44MTMgMS44ODcwOEMxNC42ODUzIDEuODg3MDggMTUuNTAzNSAyLjAwNDAyIDE2LjI2MTIgMi4yMjA4OUMxNS41MTk1IDAuNDkyMjU0IDEzLjk3OTUgMCAxMi4yNjU2IDBDMTAuNTQ4MyAwIDkuMDA1NjUgMC40OTQxODggOC4yNjU2MiAyLjIzMTA3QzkuMDE3NjUgMi4wMDY1NyA5LjgzMjM2IDEuODg3MDggMTAuNzAxNyAxLjg4NzA4SDEzLjgxM1pNMTAuNTAyMiAzLjYyMjU2QzYuMzYwMDMgMy42MjI1NiA0IDYuODgxMTQgNCAxMC45MDA4VjE1LjAzQzQgMTUuNDMyIDQuMzM1NzkgMTUuNzUgNC43NSAxNS43NUgxOS43NUMyMC4xNjQyIDE1Ljc1IDIwLjUgMTUuNDMyIDIwLjUgMTUuMDNWMTAuOTAwOEMyMC41IDYuODgxMTQgMTcuNzU1NiAzLjYyMjU2IDEzLjYxMzUgMy42MjI1NkgxMC41MDIyWk0xMi4yNDQxIDEwLjkzNjVDMTMuNjkzOSAxMC45MzY1IDE0Ljg2OTIgOS43NjEyMyAxNC44NjkyIDguMzExNTNDMTQuODY5MiA2Ljg2MTc4IDEzLjY5MzkgNS42ODY1MyAxMi4yNDQxIDUuNjg2NTNDMTAuNzk0NCA1LjY4NjUzIDkuNjE5MTQgNi44NjE3OCA5LjYxOTE0IDguMzExNTNDOS42MTkxNCA5Ljc2MTIzIDEwLjc5NDQgMTAuOTM2NSAxMi4yNDQxIDEwLjkzNjVaTTQgMTguMTc3MUM0IDE3Ljc3NTEgNC4zMzU3OSAxNy40NDkyIDQuNzUgMTcuNDQ5MkgxOS43NUMyMC4xNjQyIDE3LjQ0OTIgMjAuNSAxNy43NzUxIDIwLjUgMTguMTc3MVYyMi41NDRDMjAuNSAyMy4zNDc5IDE5LjgyODQgMjMuOTk5NyAxOSAyMy45OTk3SDUuNUM0LjY3MTU3IDIzLjk5OTcgNCAyMy4zNDc5IDQgMjIuNTQ0VjE4LjE3NzFaIiBmaWxsPSIjRTMzRTNGIi8+CjwvZz4KPC9zdmc+Cg==";
|
|
3
|
+
export {
|
|
4
|
+
icon
|
|
5
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { farcasterWallet } from './farcaster/farcaster.js';
|
|
1
2
|
import { phantomWallet } from './phantom/phantom.js';
|
|
2
3
|
import { glowWallet } from './glow/glow.js';
|
|
3
4
|
import { backpackWallet } from './backpack/backpack.js';
|
|
4
5
|
import { solflareWallet } from './solflare/solflare.js';
|
|
5
|
-
export { phantomWallet, glowWallet, backpackWallet, solflareWallet };
|
|
6
|
+
export { farcasterWallet, phantomWallet, glowWallet, backpackWallet, solflareWallet };
|
|
6
7
|
export declare const allWallets: (() => import("../../types/Wallet.js").Wallet)[];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { farcasterWallet } from "./farcaster/farcaster.js";
|
|
2
3
|
import { phantomWallet } from "./phantom/phantom.js";
|
|
3
4
|
import { glowWallet } from "./glow/glow.js";
|
|
4
5
|
import { backpackWallet } from "./backpack/backpack.js";
|
|
@@ -7,6 +8,7 @@ const allWallets = [phantomWallet, glowWallet, backpackWallet, solflareWallet];
|
|
|
7
8
|
export {
|
|
8
9
|
allWallets,
|
|
9
10
|
backpackWallet,
|
|
11
|
+
farcasterWallet,
|
|
10
12
|
glowWallet,
|
|
11
13
|
phantomWallet,
|
|
12
14
|
solflareWallet
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getpara/solana-wallet-connectors",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.33",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@getpara/react-common": "2.0.0-alpha.
|
|
6
|
-
"@getpara/web-sdk": "2.0.0-alpha.
|
|
5
|
+
"@getpara/react-common": "2.0.0-alpha.33",
|
|
6
|
+
"@getpara/web-sdk": "2.0.0-alpha.33",
|
|
7
7
|
"bs58": "6.0.0"
|
|
8
8
|
},
|
|
9
9
|
"devDependencies": {
|
|
@@ -23,9 +23,10 @@
|
|
|
23
23
|
"dist",
|
|
24
24
|
"package.json"
|
|
25
25
|
],
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "f338306fa30497d2190f8da2ff72ddd8d9d9032f",
|
|
27
27
|
"main": "dist/index.js",
|
|
28
28
|
"peerDependencies": {
|
|
29
|
+
"@farcaster/mini-app-solana": "^1.0.0",
|
|
29
30
|
"@solana-mobile/wallet-adapter-mobile": "2.x",
|
|
30
31
|
"@solana/wallet-adapter-base": "0.x",
|
|
31
32
|
"@solana/wallet-adapter-react": "0.x",
|
|
@@ -33,6 +34,11 @@
|
|
|
33
34
|
"react": ">=18",
|
|
34
35
|
"react-dom": ">=18"
|
|
35
36
|
},
|
|
37
|
+
"peerDependenciesMeta": {
|
|
38
|
+
"@farcaster/mini-app-solana": {
|
|
39
|
+
"optional": true
|
|
40
|
+
}
|
|
41
|
+
},
|
|
36
42
|
"scripts": {
|
|
37
43
|
"build": "rm -rf dist && yarn typegen && node ./scripts/build.mjs",
|
|
38
44
|
"test": "vitest run --coverage",
|