@getpara/solana-wallet-connectors 2.0.0-alpha.32 → 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.
@@ -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
- const SolanaExternalWalletContext = createContext(defaultSolanaExternalWallet);
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 wallets = walletFns.map((walletFn) => {
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({ wallets, disconnect, signMessage, signVerificationMessage, requestInfo, disconnectBase }, externalHooks),
307
- [wallets, disconnect, signMessage, signVerificationMessage, requestInfo, disconnectBase]
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,2 @@
1
+ import { Wallet } from '../../../types/Wallet.js';
2
+ export declare const farcasterWallet: () => Wallet;
@@ -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.32",
3
+ "version": "2.0.0-alpha.33",
4
4
  "dependencies": {
5
- "@getpara/react-common": "2.0.0-alpha.32",
6
- "@getpara/web-sdk": "2.0.0-alpha.32",
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": "2c1a4e1ef169c177238c8b0358e84dc86f614614",
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",