@getpara/solana-wallet-connectors 2.0.0-alpha.5 → 2.0.0-alpha.50

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/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { SolanaExternalWalletContext } from './providers/SolanaExternalWalletContext.js';
2
- export type { SolanaExternalWalletContextType } from './providers/SolanaExternalWalletContext.js';
2
+ export { type SolanaExternalWalletContextType } from './providers/SolanaExternalWalletContext.js';
3
3
  export { ParaSolanaProvider } from './providers/ParaSolanaProvider.js';
4
4
  export type { ParaSolanaProviderConfig, ParaSolanaProviderProps } from './providers/ParaSolanaProvider.js';
5
5
  export * from './wallets/connectors/index.js';
6
6
  export type { WalletList } from './types/Wallet.js';
7
+ export type { Adapter } from '@solana/wallet-adapter-base';
@@ -1,31 +1,10 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import ParaWeb from '@getpara/web-sdk';
3
- import { WalletList } from '../types/Wallet.js';
4
- import { TExternalWallet, type CommonWallet } from '@getpara/react-common';
5
- export type SolanaExternalWalletContextType = {
6
- wallets: CommonWallet[];
7
- disconnect: () => Promise<void>;
8
- signMessage: (message: string) => Promise<{
9
- signature?: string;
10
- error?: string;
11
- }>;
12
- signVerificationMessage: () => Promise<{
13
- address?: string;
14
- signature?: string;
15
- error?: string;
16
- }>;
17
- };
2
+ import { CreateWalletFn } from '../types/Wallet.js';
3
+ import { ExternalWalletContextType, ExternalWalletProviderConfig, ExternalWalletProviderConfigBase, FarcasterMiniAppManagement } from '@getpara/react-common';
4
+ import { TExternalHooks } from './externalHooks.js';
5
+ export type SolanaExternalWalletContextType = ExternalWalletContextType & TExternalHooks & FarcasterMiniAppManagement;
18
6
  export declare const SolanaExternalWalletContext: import("react").Context<SolanaExternalWalletContextType>;
19
- export type SolanaExternalWalletProviderConfig = {
20
- onSwitchWallet?: (args: {
21
- address?: string;
22
- error?: string;
23
- }) => void;
24
- para: ParaWeb;
25
- walletsWithFullAuth: TExternalWallet[];
26
- };
27
- type SolanaExternalWalletProviderConfigFull = {
28
- wallets: WalletList;
29
- } & SolanaExternalWalletProviderConfig;
30
- export declare function SolanaExternalWalletProvider({ children, wallets: walletFns, onSwitchWallet, para, walletsWithFullAuth, }: SolanaExternalWalletProviderConfigFull & PropsWithChildren): import("react/jsx-runtime").JSX.Element;
7
+ export type SolanaExternalWalletProviderConfig = ExternalWalletProviderConfigBase;
8
+ type SolanaExternalWalletProviderConfigFull = ExternalWalletProviderConfig<CreateWalletFn>;
9
+ export declare function SolanaExternalWalletProvider({ children, wallets: walletFns, onSwitchWallet, para, walletsWithFullAuth, includeWalletVerification, connectionOnly, }: SolanaExternalWalletProviderConfigFull & PropsWithChildren): import("react/jsx-runtime").JSX.Element;
31
10
  export {};
@@ -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,50 +39,64 @@ 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
- import { WalletReadyState } from "@solana/wallet-adapter-base";
44
+ import { isIosAndRedirectable, WalletReadyState } from "@solana/wallet-adapter-base";
45
+ import {
46
+ defaultSolanaExternalWallet
47
+ } from "@getpara/react-common";
42
48
  import bs58 from "bs58";
43
- const defaultSolanaExternalWallet = {
44
- wallets: [],
45
- disconnect: () => Promise.resolve(),
46
- signMessage: () => Promise.resolve({}),
47
- signVerificationMessage: () => Promise.resolve({})
48
- };
49
- const SolanaExternalWalletContext = createContext(defaultSolanaExternalWallet);
49
+ import { externalHooks } from "./externalHooks.js";
50
+ import { farcasterWallet } from "../wallets/connectors/index.js";
51
+ const SolanaExternalWalletContext = createContext(__spreadProps(__spreadValues({}, defaultSolanaExternalWallet), {
52
+ farcasterStatus: void 0
53
+ }));
50
54
  function SolanaExternalWalletProvider({
51
55
  children,
52
56
  wallets: walletFns,
53
57
  onSwitchWallet,
54
58
  para,
55
- walletsWithFullAuth
59
+ walletsWithFullAuth,
60
+ includeWalletVerification,
61
+ connectionOnly
56
62
  }) {
57
63
  const {
58
64
  wallets: adapters,
59
65
  select: selectWallet,
60
- disconnect: _disconnect,
66
+ disconnect,
61
67
  publicKey: solanaAddress,
62
68
  wallet,
63
69
  connecting,
64
- connected,
65
70
  signMessage: solanaSignMessage
66
71
  } = useWallet();
72
+ const isLinkingAccount = useRef(false);
73
+ const solanaSignMessageRef = useRef(solanaSignMessage);
74
+ const solanaAddressRef = useRef(solanaAddress);
67
75
  const verificationMessage = useRef();
76
+ const [isFarcasterSetup, setIsFarcasterSetup] = useState(false);
68
77
  const reset = () => __async(this, null, function* () {
69
- yield _disconnect();
78
+ yield disconnect();
70
79
  yield para.logout();
71
80
  });
72
- const login = (_0) => __async(this, [_0], function* ({ address, providerName }) {
81
+ const login = (_0) => __async(this, [_0], function* ({
82
+ address,
83
+ providerId,
84
+ providerName
85
+ }) {
73
86
  var _a, _b;
74
87
  try {
75
88
  return yield para.loginExternalWallet({
76
89
  externalWallet: {
90
+ partnerId: para.partnerId,
77
91
  address,
78
92
  type: "SOLANA",
79
93
  provider: providerName,
94
+ providerId,
80
95
  withFullParaAuth: walletsWithFullAuth == null ? void 0 : walletsWithFullAuth.includes(
81
96
  (_b = (_a = getWallet(providerName != null ? providerName : "")) == null ? void 0 : _a.id.toUpperCase()) != null ? _b : ""
82
- )
97
+ ),
98
+ withVerification: includeWalletVerification,
99
+ isConnectionOnly: connectionOnly
83
100
  }
84
101
  });
85
102
  } catch (err) {
@@ -88,15 +105,23 @@ function SolanaExternalWalletProvider({
88
105
  }
89
106
  });
90
107
  const switchWallet = (address) => __async(this, null, function* () {
91
- var _a;
108
+ var _a, _b, _c, _d;
92
109
  let error;
93
110
  if (!address) {
94
111
  yield para.logout();
95
112
  } else {
96
- try {
97
- yield login({ address, providerName: (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name });
98
- } catch (err) {
99
- error = err;
113
+ if (para.isExternalWalletAuth || para.isExternalWalletWithVerification) {
114
+ yield reset();
115
+ } else {
116
+ try {
117
+ yield login({
118
+ address,
119
+ providerId: (_c = getWallet((_b = (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name) != null ? _b : "")) == null ? void 0 : _c.id,
120
+ providerName: (_d = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _d.name
121
+ });
122
+ } catch (err) {
123
+ error = err;
124
+ }
100
125
  }
101
126
  }
102
127
  onSwitchWallet({ address, error });
@@ -104,59 +129,108 @@ function SolanaExternalWalletProvider({
104
129
  useEffect(() => {
105
130
  var _a;
106
131
  const storedExternalWallet = para.externalWallets[(_a = solanaAddress == null ? void 0 : solanaAddress.toString()) != null ? _a : ""];
107
- if (!!solanaAddress && !storedExternalWallet) {
132
+ if (!!solanaAddress && !storedExternalWallet && !isLinkingAccount.current) {
108
133
  reset();
109
134
  }
110
135
  }, []);
136
+ useEffect(() => {
137
+ solanaSignMessageRef.current = solanaSignMessage;
138
+ }, [solanaSignMessage]);
139
+ useEffect(() => {
140
+ solanaAddressRef.current = solanaAddress;
141
+ }, [solanaAddress]);
111
142
  useEffect(() => {
112
143
  const storedExternalWallet = Object.values(para.externalWallets || {})[0];
113
- if (!connecting && (!wallet || (wallet == null ? void 0 : wallet.adapter.connected)) && (storedExternalWallet == null ? void 0 : storedExternalWallet.type) === "SOLANA" && (storedExternalWallet == null ? void 0 : storedExternalWallet.address) !== (solanaAddress == null ? void 0 : solanaAddress.toString())) {
144
+ if (!connecting && (!wallet || (wallet == null ? void 0 : wallet.adapter.connected)) && (storedExternalWallet == null ? void 0 : storedExternalWallet.type) === "SOLANA" && (storedExternalWallet == null ? void 0 : storedExternalWallet.address) !== (solanaAddress == null ? void 0 : solanaAddress.toString()) && !isLinkingAccount.current) {
114
145
  switchWallet(solanaAddress == null ? void 0 : solanaAddress.toString());
115
146
  }
116
147
  }, [solanaAddress, connecting, wallet]);
117
- const signMessage = (message) => __async(this, null, function* () {
118
- var _a;
148
+ const signMessage = (_0) => __async(this, [_0], function* ({ message }) {
149
+ var _a, _b, _c, _d;
119
150
  try {
151
+ let solanaAddressNow = (_a = solanaAddressRef.current) != null ? _a : solanaAddress, solanaSignMessageNow = (_b = solanaSignMessageRef.current) != null ? _b : solanaSignMessage;
152
+ while (!solanaAddressNow || !solanaSignMessageNow) {
153
+ yield new Promise((resolve) => setTimeout(resolve, 100));
154
+ solanaAddressNow = (_c = solanaAddressRef.current) != null ? _c : solanaAddress;
155
+ solanaSignMessageNow = (_d = solanaSignMessageRef.current) != null ? _d : solanaSignMessage;
156
+ }
120
157
  const encodedMessage = new TextEncoder().encode(message);
121
- const signature = yield solanaSignMessage(encodedMessage);
158
+ const signature = yield solanaSignMessageNow(encodedMessage);
159
+ solanaAddressRef.current = void 0;
160
+ solanaSignMessageRef.current = void 0;
122
161
  return {
123
- externalWallet: {
124
- address: solanaAddress.toString(),
125
- type: "SOLANA",
126
- provider: (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name
127
- },
162
+ address: solanaAddressNow.toString(),
128
163
  signature: bs58.encode(signature)
129
164
  };
130
165
  } catch (e) {
166
+ console.error(e);
131
167
  if (e.message.includes("User rejected the request")) {
132
168
  return { error: "Signature request rejected" };
133
169
  }
170
+ console.error("Solana signature error:", e.message);
134
171
  return { error: "An unknown error occurred" };
135
172
  }
136
173
  });
137
174
  const signVerificationMessage = () => __async(this, null, function* () {
138
- const signature = yield signMessage(verificationMessage.current);
175
+ const signature = yield signMessage({ message: verificationMessage.current });
139
176
  return signature;
140
177
  });
141
- const connect = (adapter) => __async(this, null, function* () {
142
- yield _disconnect();
178
+ const connectBase = (adapter, _switchWallet = false) => __async(this, null, function* () {
143
179
  if (!adapter) {
144
- return { error: "Adapter not found." };
180
+ throw new Error("Adapter not found.");
145
181
  }
146
182
  selectWallet(adapter.name);
147
183
  yield new Promise((resolve) => setTimeout(resolve, 100));
148
184
  let address;
149
185
  let error;
150
- let authState;
151
186
  try {
152
187
  yield adapter.connect();
153
- address = adapter.publicKey.toString();
188
+ if (adapter.publicKey) {
189
+ address = adapter.publicKey.toString();
190
+ } else {
191
+ yield new Promise((resolve, reject) => {
192
+ adapter.once("connect", () => __async(this, null, function* () {
193
+ try {
194
+ address = adapter.publicKey.toString();
195
+ resolve();
196
+ } catch (err) {
197
+ reject(err);
198
+ }
199
+ }));
200
+ adapter.once("error", (err) => {
201
+ error = (err == null ? void 0 : err.message) || "An unknown error occurred";
202
+ reject(err);
203
+ });
204
+ adapter.once("disconnect", () => {
205
+ error = "Disconnected before connect event";
206
+ reject(new Error(error));
207
+ });
208
+ });
209
+ }
210
+ return address;
211
+ } catch (e) {
212
+ console.error(e);
213
+ yield adapter.disconnect();
214
+ throw e;
215
+ }
216
+ });
217
+ const connect = (adapter) => __async(this, null, function* () {
218
+ var _a;
219
+ if (isIosAndRedirectable()) {
220
+ return;
221
+ }
222
+ yield disconnect();
223
+ let address;
224
+ let error;
225
+ let authState;
226
+ try {
227
+ address = yield connectBase(adapter, true);
154
228
  if (address) {
155
229
  try {
156
- authState = yield login({ address, providerName: adapter.name });
230
+ authState = yield login({ address, providerId: (_a = getWallet(adapter.name)) == null ? void 0 : _a.id, providerName: adapter.name });
157
231
  verificationMessage.current = authState.stage === "verify" ? authState.signatureVerificationMessage : void 0;
158
232
  } catch (err) {
159
- yield _disconnect();
233
+ yield disconnect();
160
234
  address = void 0;
161
235
  error = err;
162
236
  }
@@ -170,6 +244,7 @@ function SolanaExternalWalletProvider({
170
244
  break;
171
245
  }
172
246
  default: {
247
+ console.error("Solana connection error:", err.message);
173
248
  error = "An unknown error occurred";
174
249
  break;
175
250
  }
@@ -177,34 +252,141 @@ function SolanaExternalWalletProvider({
177
252
  }
178
253
  return { address, error, authState };
179
254
  });
255
+ const requestInfo = (providerId) => __async(this, null, function* () {
256
+ var _a, _b;
257
+ const wallet2 = wallets.find((w) => w.id === providerId);
258
+ const adapter = getAdapter((_a = wallet2.name) != null ? _a : "");
259
+ isLinkingAccount.current = true;
260
+ try {
261
+ const address = yield connectBase(adapter);
262
+ const externalWallet = {
263
+ partnerId: para.partnerId,
264
+ address,
265
+ type: "SOLANA",
266
+ providerId: wallet2.id,
267
+ provider: wallet2.name
268
+ };
269
+ return externalWallet;
270
+ } catch (e) {
271
+ console.error("Error linking account:", e);
272
+ throw new Error((_b = e == null ? void 0 : e.message) != null ? _b : e);
273
+ }
274
+ });
275
+ const disconnectBase = (providerId) => __async(this, null, function* () {
276
+ var _a, _b;
277
+ const wallet2 = wallets.find((w) => w.id === providerId);
278
+ const adapter = getAdapter((_a = wallet2.name) != null ? _a : "");
279
+ if (!(adapter == null ? void 0 : adapter.connected)) {
280
+ return;
281
+ }
282
+ isLinkingAccount.current = true;
283
+ try {
284
+ yield adapter.disconnect();
285
+ } catch (e) {
286
+ console.error("Error disconnecting wallet:", e);
287
+ throw new Error((_b = e == null ? void 0 : e.message) != null ? _b : e);
288
+ }
289
+ });
180
290
  const getAdapter = (name) => {
181
291
  var _a;
182
292
  return (_a = adapters.find((a) => a.adapter.name === "Mobile Wallet Adapter" ? a : a.adapter.name === name ? a : false)) == null ? void 0 : _a.adapter;
183
293
  };
184
294
  const getWallet = (name) => wallets.find((w) => w.name === name);
185
- const wallets = walletFns.map((walletFn) => {
295
+ const createWallet = (walletFn) => {
186
296
  const metaData = walletFn();
187
297
  const adapter = getAdapter(metaData.name);
188
- return __spreadValues({
298
+ return __spreadProps(__spreadValues({
189
299
  connect: () => connect(adapter),
190
300
  connectMobile: () => connect(adapter),
191
- getQrUri: () => "",
192
301
  type: "SOLANA",
193
302
  installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable)
194
- }, metaData);
195
- });
196
- const disconnect = () => __async(this, null, function* () {
197
- yield _disconnect();
198
- if (connected) {
199
- typeof window !== void 0 && (window == null ? void 0 : window.location.reload());
303
+ }, metaData), {
304
+ // Using name here since that's the only common id across the networks
305
+ id: metaData.name
306
+ });
307
+ };
308
+ const [wallets, setWallets] = useState(() => walletFns.map(createWallet));
309
+ const farcasterStatus = useMemo(() => {
310
+ if (!isFarcasterSetup) {
311
+ return void 0;
200
312
  }
313
+ const farcasterAdapter = getAdapter("Farcaster");
314
+ if (!farcasterAdapter) {
315
+ return {
316
+ isPresent: false
317
+ };
318
+ }
319
+ return farcasterAdapter.connected && farcasterAdapter.publicKey ? {
320
+ isPresent: true,
321
+ isConnected: true,
322
+ address: farcasterAdapter.publicKey.toString()
323
+ } : {
324
+ isPresent: true,
325
+ isConnected: false
326
+ };
327
+ }, [isFarcasterSetup, adapters]);
328
+ useEffect(() => {
329
+ const detectFarcaster = () => __async(this, null, function* () {
330
+ if (para.isFarcasterMiniApp) {
331
+ try {
332
+ yield import("@farcaster/mini-app-solana");
333
+ } catch (e) {
334
+ }
335
+ }
336
+ });
337
+ detectFarcaster();
338
+ }, [para.isFarcasterMiniApp]);
339
+ useEffect(() => {
340
+ const setupFarcaster = () => __async(this, null, function* () {
341
+ const adapter = getAdapter("Farcaster");
342
+ if (para.isFarcasterMiniApp && !wallets.some((w) => w.internalId === "FARCASTER") && !!adapter) {
343
+ const wallet2 = createWallet(farcasterWallet);
344
+ setWallets((prev) => [...prev, wallet2]);
345
+ if (para.supportedWalletTypes.some(({ type }) => type === "SOLANA")) {
346
+ yield connectBase(adapter, true);
347
+ }
348
+ setIsFarcasterSetup(true);
349
+ }
350
+ });
351
+ setupFarcaster();
352
+ }, [para.isFarcasterMiniApp, wallets, adapters]);
353
+ const injectedWallets = adapters.filter((wallet2) => wallet2.adapter.name !== "Mobile Wallet Adapter" && !wallets.some((w) => w.name === wallet2.adapter.name)).map((wallet2) => {
354
+ const adapter = wallet2.adapter;
355
+ return {
356
+ connect: () => connect(adapter),
357
+ connectMobile: () => connect(adapter),
358
+ type: "SOLANA",
359
+ installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable),
360
+ name: adapter.name,
361
+ iconUrl: adapter.icon,
362
+ // Using name here since that's the only common id across the networks
363
+ id: adapter.name,
364
+ internalId: adapter.name
365
+ };
201
366
  });
367
+ const walletsWithInjected = [...wallets, ...injectedWallets];
202
368
  return /* @__PURE__ */ jsx(
203
369
  SolanaExternalWalletContext.Provider,
204
370
  {
205
371
  value: useMemo(
206
- () => ({ wallets, disconnect, signMessage, signVerificationMessage }),
207
- [wallets, disconnect, signMessage, signVerificationMessage]
372
+ () => __spreadValues({
373
+ wallets: walletsWithInjected,
374
+ disconnect,
375
+ signMessage,
376
+ signVerificationMessage,
377
+ requestInfo,
378
+ disconnectBase,
379
+ farcasterStatus
380
+ }, externalHooks),
381
+ [
382
+ walletsWithInjected,
383
+ disconnect,
384
+ signMessage,
385
+ signVerificationMessage,
386
+ requestInfo,
387
+ farcasterStatus,
388
+ disconnectBase
389
+ ]
208
390
  ),
209
391
  children
210
392
  }
@@ -0,0 +1,7 @@
1
+ import { useWallet } from '@solana/wallet-adapter-react';
2
+ export type TExternalHooks = {
3
+ useWallet: typeof useWallet;
4
+ };
5
+ export declare const externalHooks: {
6
+ useWallet: typeof useWallet;
7
+ };
@@ -0,0 +1,6 @@
1
+ "use client";
2
+ import { useWallet } from "@solana/wallet-adapter-react";
3
+ const externalHooks = { useWallet };
4
+ export {
5
+ externalHooks
6
+ };
@@ -1,6 +1,4 @@
1
1
  import { type WalletMetadata } from '@getpara/react-common';
2
- export type Wallet = {
3
- getUri?: (uri: string) => string;
4
- } & WalletMetadata;
2
+ export type Wallet = WalletMetadata;
5
3
  export type CreateWalletFn = () => Wallet;
6
4
  export type WalletList = CreateWalletFn[];
@@ -1,13 +1,43 @@
1
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 { isIosAndRedirectable } from "@solana/wallet-adapter-base";
2
23
  import { icon } from "./backpackIcon.js";
3
24
  const backpackWallet = () => {
4
25
  return {
5
26
  id: "backpack",
27
+ internalId: "BACKPACK",
6
28
  name: "Backpack",
7
29
  iconUrl: icon,
8
30
  isExtension: true,
9
31
  isMobile: true,
10
- getUri: () => "",
32
+ hasIosSafariExtension: false,
33
+ getQrUri: () => __async(void 0, null, function* () {
34
+ if (typeof window !== "undefined" && isIosAndRedirectable()) {
35
+ const url = encodeURIComponent(window.location.href);
36
+ const ref = encodeURIComponent(window.location.origin);
37
+ return `https://backpack.app/ul/v1/browse/${url}?ref=${ref}`;
38
+ }
39
+ return "";
40
+ }),
11
41
  downloadUrl: "https://backpack.app/download"
12
42
  };
13
43
  };
@@ -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,13 +1,15 @@
1
1
  "use client";
2
2
  import { icon } from "./glowIcon.js";
3
+ import { isIosAndRedirectable } from "@solana/wallet-adapter-base";
3
4
  const glowWallet = () => {
4
5
  return {
5
6
  id: "glow",
7
+ internalId: "GLOW",
6
8
  name: "Glow",
7
9
  iconUrl: icon,
8
10
  isExtension: true,
9
11
  isMobile: true,
10
- getUri: () => "",
12
+ hasIosSafariExtension: isIosAndRedirectable(),
11
13
  downloadUrl: "https://glow.app"
12
14
  };
13
15
  };
@@ -1,5 +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
- export { phantomWallet, glowWallet, backpackWallet };
5
+ import { solflareWallet } from './solflare/solflare.js';
6
+ export { farcasterWallet, phantomWallet, glowWallet, backpackWallet, solflareWallet };
5
7
  export declare const allWallets: (() => import("../../types/Wallet.js").Wallet)[];
@@ -1,11 +1,15 @@
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";
5
- const allWallets = [phantomWallet, glowWallet, backpackWallet];
6
+ import { solflareWallet } from "./solflare/solflare.js";
7
+ const allWallets = [phantomWallet, glowWallet, backpackWallet, solflareWallet];
6
8
  export {
7
9
  allWallets,
8
10
  backpackWallet,
11
+ farcasterWallet,
9
12
  glowWallet,
10
- phantomWallet
13
+ phantomWallet,
14
+ solflareWallet
11
15
  };
@@ -1,13 +1,43 @@
1
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 { isIosAndRedirectable } from "@solana/wallet-adapter-base";
2
23
  import { icon } from "./phantomIcon.js";
3
24
  const phantomWallet = () => {
4
25
  return {
5
26
  id: "phantom",
27
+ internalId: "PHANTOM",
6
28
  name: "Phantom",
7
29
  iconUrl: icon,
8
30
  isExtension: true,
9
31
  isMobile: true,
10
- getUri: () => "",
32
+ hasIosSafariExtension: false,
33
+ getQrUri: () => __async(void 0, null, function* () {
34
+ if (typeof window !== "undefined" && isIosAndRedirectable()) {
35
+ const url = encodeURIComponent(window.location.href);
36
+ const ref = encodeURIComponent(window.location.origin);
37
+ return `https://phantom.app/ul/browse/${url}?ref=${ref}`;
38
+ }
39
+ return "";
40
+ }),
11
41
  downloadUrl: "https://phantom.app/download"
12
42
  };
13
43
  };
@@ -0,0 +1,2 @@
1
+ import { Wallet } from '../../../types/Wallet.js';
2
+ export declare const solflareWallet: () => Wallet;
@@ -0,0 +1,46 @@
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 { isIosAndRedirectable } from "@solana/wallet-adapter-base";
23
+ import { icon } from "./solflareIcon.js";
24
+ const solflareWallet = () => {
25
+ return {
26
+ id: "solflare",
27
+ internalId: "SOLFLARE",
28
+ name: "Solflare",
29
+ iconUrl: icon,
30
+ isExtension: true,
31
+ isMobile: true,
32
+ hasIosSafariExtension: false,
33
+ getQrUri: () => __async(void 0, null, function* () {
34
+ if (typeof window !== "undefined" && isIosAndRedirectable()) {
35
+ const url = encodeURIComponent(window.location.href);
36
+ const ref = encodeURIComponent(window.location.origin);
37
+ return `https://solflare.com/ul/v1/browse/${url}?ref=${ref}`;
38
+ }
39
+ return "";
40
+ }),
41
+ downloadUrl: "https://www.solflare.com/download/"
42
+ };
43
+ };
44
+ export {
45
+ solflareWallet
46
+ };
@@ -0,0 +1 @@
1
+ export declare const icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE5NDc3XzMyMTMpIj4KPHBhdGggZD0iTTUuMTkxNDEgMC41SDE4LjgwODZDMjEuMzk5NSAwLjUgMjMuNSAyLjYwMDUgMjMuNSA1LjE5MTQxVjE4LjgwODZDMjMuNSAyMS4zOTk1IDIxLjM5OTUgMjMuNSAxOC44MDg2IDIzLjVINS4xOTE0MUMyLjYwMDUgMjMuNSAwLjUgMjEuMzk5NSAwLjUgMTguODA4NlY1LjE5MTQxQzAuNSAyLjYwMDUgMi42MDA1IDAuNSA1LjE5MTQxIDAuNVoiIGZpbGw9IiNGRkVGNDYiIHN0cm9rZT0iI0VFREEwRiIvPgo8cGF0aCBkPSJNMTEuNTU1OSAxMi42MzU1TDEyLjY1MzkgMTEuNTcwMUwxNC43MDEgMTIuMjQzQzE2LjA0MDkgMTIuNjkxNiAxNi43MTA5IDEzLjUxNCAxNi43MTA5IDE0LjY3MjlDMTYuNzEwOSAxNS41NTE0IDE2LjM3NTkgMTYuMTMwOSAxNS43MDYgMTYuODc4NUwxNS41MDEzIDE3LjEwMjhMMTUuNTc1NyAxNi41Nzk0QzE1Ljg3MzQgMTQuNjcyOSAxNS4zMTUyIDEzLjg1MDUgMTMuNDcyNyAxMy4yNTIzTDExLjU1NTkgMTIuNjM1NVpNOC44MDE0NyA2LjExMjE2TDE0LjM4NDYgNy45ODEzMUwxMy4xNzQ5IDkuMTQwMkwxMC4yNzE3IDguMTY4MjNDOS4yNjY3NyA3LjgzMTc4IDguOTMxNzcgNy4yODk3MiA4LjgwMTQ3IDYuMTQ5NTRWNi4xMTIxNlpNOC40NjY0NyAxNS42MDc1TDkuNzMyIDE0LjM5MjVMMTIuMTE0MiAxNS4xNzc2QzEzLjM2MSAxNS41ODg4IDEzLjc4OSAxNi4xMzA5IDEzLjY1ODggMTcuNDk1M0w4LjQ2NjQ3IDE1LjYwNzVaTTYuODY2IDEwLjE4NjlDNi44NjYgOS44MzE4MiA3LjA1MjEgOS40OTUzNSA3LjM2ODQ4IDkuMjE0OTNDNy43MDM0NyA5LjcwMDk1IDguMjgwMzkgMTAuMTMwOCA5LjE5MjI5IDEwLjQyOTlMMTEuMTY1IDExLjA4NDFMMTAuMDY3IDEyLjE0OTZMOC4xMzE1MSAxMS41MTRDNy4yMzgyMSAxMS4yMTUgNi44NjYgMTAuNzY2MyA2Ljg2NiAxMC4xODY5Wk0xMi43MDk3IDIwQzE2LjgwMzkgMTcuMjcxMSAxOSAxNS40MjA2IDE5IDEzLjE0MDJDMTkgMTEuNjI2MiAxOC4xMDY3IDEwLjc4NSAxNi4xMzQgMTAuMTMwOEwxNC42NDUyIDkuNjI2MTRMMTguNzIwOSA1LjcwMDk0TDE3LjkwMiA0LjgyMjQ0TDE2LjY5MjMgNS44ODc4NUwxMC45Nzg5IDRDOS4yMTA4OSA0LjU3OTQ0IDYuOTc3NjcgNi4yODAzNyA2Ljk3NzY3IDcuOTgxM0M2Ljk3NzY3IDguMTY4MjIgNi45OTYyOCA4LjM1NTE0IDcuMDUyMTEgOC41NjA3NkM1LjU4MTg4IDkuNDAxODUgNC45ODYzNSAxMC4xODY5IDQuOTg2MzUgMTEuMTU4OEM0Ljk4NjM1IDEyLjA3NDcgNS40NzAyMiAxMi45OTA2IDcuMDE0ODkgMTMuNDk1M0w4LjI0MzE3IDEzLjkwNjVMNCAxOEw0LjgxODg2IDE4Ljg3ODVMNi4xNDAyIDE3LjY2MzZMMTIuNzA5NyAyMFoiIGZpbGw9IiMwMjA1MEEiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTQ3N18zMjEzIj4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPg==";
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ const icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE5NDc3XzMyMTMpIj4KPHBhdGggZD0iTTUuMTkxNDEgMC41SDE4LjgwODZDMjEuMzk5NSAwLjUgMjMuNSAyLjYwMDUgMjMuNSA1LjE5MTQxVjE4LjgwODZDMjMuNSAyMS4zOTk1IDIxLjM5OTUgMjMuNSAxOC44MDg2IDIzLjVINS4xOTE0MUMyLjYwMDUgMjMuNSAwLjUgMjEuMzk5NSAwLjUgMTguODA4NlY1LjE5MTQxQzAuNSAyLjYwMDUgMi42MDA1IDAuNSA1LjE5MTQxIDAuNVoiIGZpbGw9IiNGRkVGNDYiIHN0cm9rZT0iI0VFREEwRiIvPgo8cGF0aCBkPSJNMTEuNTU1OSAxMi42MzU1TDEyLjY1MzkgMTEuNTcwMUwxNC43MDEgMTIuMjQzQzE2LjA0MDkgMTIuNjkxNiAxNi43MTA5IDEzLjUxNCAxNi43MTA5IDE0LjY3MjlDMTYuNzEwOSAxNS41NTE0IDE2LjM3NTkgMTYuMTMwOSAxNS43MDYgMTYuODc4NUwxNS41MDEzIDE3LjEwMjhMMTUuNTc1NyAxNi41Nzk0QzE1Ljg3MzQgMTQuNjcyOSAxNS4zMTUyIDEzLjg1MDUgMTMuNDcyNyAxMy4yNTIzTDExLjU1NTkgMTIuNjM1NVpNOC44MDE0NyA2LjExMjE2TDE0LjM4NDYgNy45ODEzMUwxMy4xNzQ5IDkuMTQwMkwxMC4yNzE3IDguMTY4MjNDOS4yNjY3NyA3LjgzMTc4IDguOTMxNzcgNy4yODk3MiA4LjgwMTQ3IDYuMTQ5NTRWNi4xMTIxNlpNOC40NjY0NyAxNS42MDc1TDkuNzMyIDE0LjM5MjVMMTIuMTE0MiAxNS4xNzc2QzEzLjM2MSAxNS41ODg4IDEzLjc4OSAxNi4xMzA5IDEzLjY1ODggMTcuNDk1M0w4LjQ2NjQ3IDE1LjYwNzVaTTYuODY2IDEwLjE4NjlDNi44NjYgOS44MzE4MiA3LjA1MjEgOS40OTUzNSA3LjM2ODQ4IDkuMjE0OTNDNy43MDM0NyA5LjcwMDk1IDguMjgwMzkgMTAuMTMwOCA5LjE5MjI5IDEwLjQyOTlMMTEuMTY1IDExLjA4NDFMMTAuMDY3IDEyLjE0OTZMOC4xMzE1MSAxMS41MTRDNy4yMzgyMSAxMS4yMTUgNi44NjYgMTAuNzY2MyA2Ljg2NiAxMC4xODY5Wk0xMi43MDk3IDIwQzE2LjgwMzkgMTcuMjcxMSAxOSAxNS40MjA2IDE5IDEzLjE0MDJDMTkgMTEuNjI2MiAxOC4xMDY3IDEwLjc4NSAxNi4xMzQgMTAuMTMwOEwxNC42NDUyIDkuNjI2MTRMMTguNzIwOSA1LjcwMDk0TDE3LjkwMiA0LjgyMjQ0TDE2LjY5MjMgNS44ODc4NUwxMC45Nzg5IDRDOS4yMTA4OSA0LjU3OTQ0IDYuOTc3NjcgNi4yODAzNyA2Ljk3NzY3IDcuOTgxM0M2Ljk3NzY3IDguMTY4MjIgNi45OTYyOCA4LjM1NTE0IDcuMDUyMTEgOC41NjA3NkM1LjU4MTg4IDkuNDAxODUgNC45ODYzNSAxMC4xODY5IDQuOTg2MzUgMTEuMTU4OEM0Ljk4NjM1IDEyLjA3NDcgNS40NzAyMiAxMi45OTA2IDcuMDE0ODkgMTMuNDk1M0w4LjI0MzE3IDEzLjkwNjVMNCAxOEw0LjgxODg2IDE4Ljg3ODVMNi4xNDAyIDE3LjY2MzZMMTIuNzA5NyAyMFoiIGZpbGw9IiMwMjA1MEEiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTQ3N18zMjEzIj4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPg==";
3
+ export {
4
+ icon
5
+ };
package/package.json CHANGED
@@ -1,39 +1,49 @@
1
1
  {
2
2
  "name": "@getpara/solana-wallet-connectors",
3
- "version": "2.0.0-alpha.5",
4
- "type": "module",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "exports": {
8
- ".": "./dist/index.js",
9
- "./connectors": "./dist/wallets/connectors/index.js"
10
- },
11
- "scripts": {
12
- "build": "rm -rf dist && yarn typegen && node ./scripts/build.mjs",
13
- "typegen": "tsc --emitDeclarationOnly",
14
- "test": "vitest run --coverage"
15
- },
3
+ "version": "2.0.0-alpha.50",
16
4
  "dependencies": {
17
- "@getpara/web-sdk": "2.0.0-alpha.5",
18
- "@solana-mobile/wallet-adapter-mobile": "2.1.3",
19
- "@solana/wallet-adapter-base": "0.9.23",
20
- "@solana/wallet-adapter-react": "0.15.35",
21
- "@solana/wallet-adapter-walletconnect": "0.1.16",
5
+ "@getpara/react-common": "2.0.0-alpha.50",
6
+ "@getpara/web-sdk": "2.0.0-alpha.50",
22
7
  "bs58": "6.0.0"
23
8
  },
24
9
  "devDependencies": {
25
- "@getpara/react-common": "2.0.0-alpha.5",
10
+ "@solana-mobile/wallet-adapter-mobile": "^2.2.0",
11
+ "@solana/wallet-adapter-base": "^0.9.27",
12
+ "@solana/wallet-adapter-react": "^0.15.39",
13
+ "@solana/wallet-adapter-walletconnect": "^0.1.21",
26
14
  "@types/react": "^18.0.31",
27
15
  "@types/react-dom": "^18.2.7",
28
- "typescript": "^5.4.3"
16
+ "typescript": "^5.8.3"
29
17
  },
30
- "peerDependencies": {
31
- "react": ">=18",
32
- "react-dom": ">=18"
18
+ "exports": {
19
+ ".": "./dist/index.js",
20
+ "./connectors": "./dist/wallets/connectors/index.js"
33
21
  },
34
22
  "files": [
35
23
  "dist",
36
24
  "package.json"
37
25
  ],
38
- "gitHead": "3ecfca088f24489f2e8fa5493d0f4459b08880e1"
26
+ "gitHead": "688b92a7ca207593a4a3be09cb5cc580092614fc",
27
+ "main": "dist/index.js",
28
+ "peerDependencies": {
29
+ "@farcaster/mini-app-solana": "^1.0.0",
30
+ "@solana-mobile/wallet-adapter-mobile": "2.x",
31
+ "@solana/wallet-adapter-base": "0.x",
32
+ "@solana/wallet-adapter-react": "0.x",
33
+ "@solana/wallet-adapter-walletconnect": "0.x",
34
+ "react": ">=18",
35
+ "react-dom": ">=18"
36
+ },
37
+ "peerDependenciesMeta": {
38
+ "@farcaster/mini-app-solana": {
39
+ "optional": true
40
+ }
41
+ },
42
+ "scripts": {
43
+ "build": "rm -rf dist && yarn typegen && node ./scripts/build.mjs",
44
+ "test": "vitest run --coverage",
45
+ "typegen": "tsc --emitDeclarationOnly"
46
+ },
47
+ "type": "module",
48
+ "types": "dist/index.d.ts"
39
49
  }