@getpara/solana-wallet-connectors 1.7.1 → 2.0.0-alpha.3

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,3 +1,6 @@
1
- export { SolanaExternalWalletProvider, SolanaExternalWalletContext } from './providers/SolanaExternalWalletContext.js';
1
+ export { SolanaExternalWalletContext } from './providers/SolanaExternalWalletContext.js';
2
+ export type { SolanaExternalWalletContextType } from './providers/SolanaExternalWalletContext.js';
2
3
  export { ParaSolanaProvider } from './providers/ParaSolanaProvider.js';
4
+ export type { ParaSolanaProviderConfig, ParaSolanaProviderProps } from './providers/ParaSolanaProvider.js';
3
5
  export * from './wallets/connectors/index.js';
6
+ export type { WalletList } from './types/Wallet.js';
package/dist/index.js CHANGED
@@ -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) => {
@@ -37,99 +40,26 @@ var __async = (__this, __arguments, generator) => {
37
40
  };
38
41
 
39
42
  // src/providers/SolanaExternalWalletContext.tsx
40
- import { createContext as createContext2, useEffect as useEffect2, useMemo as useMemo2, useRef } from "react";
43
+ import { createContext, useEffect, useMemo, useRef } from "react";
41
44
  import { useWallet } from "@solana/wallet-adapter-react";
42
45
  import { WalletReadyState } from "@solana/wallet-adapter-base";
43
-
44
- // src/providers/ParaSolanaProvider.tsx
45
- import { createContext, useContext, useEffect, useMemo, useState } from "react";
46
- import { ConnectionProvider, WalletProvider as SolanaWalletProvider } from "@solana/wallet-adapter-react";
47
- import { useClient, useExternalWalletProviderStore } from "@getpara/react-sdk";
48
- import {
49
- createDefaultAddressSelector,
50
- createDefaultAuthorizationResultCache,
51
- createDefaultWalletNotFoundHandler,
52
- SolanaMobileWalletAdapter
53
- } from "@solana-mobile/wallet-adapter-mobile";
54
- import { jsx } from "react/jsx-runtime";
55
- var defaultWallet = {
56
- wallets: []
57
- };
58
- var ParaSolanaContext = createContext(defaultWallet);
59
- function ParaSolanaProvider({
60
- children,
61
- wallets: walletFns,
62
- endpoint,
63
- appIdentity,
64
- chain,
65
- connectionConfig,
66
- para: _para
67
- }) {
68
- const updateExternalWalletProviderState = useExternalWalletProviderStore((state) => state.updateState);
69
- const SolanaProvider = useExternalWalletProviderStore((state) => state.SolanaProvider);
70
- const solanaContext = useExternalWalletProviderStore((state) => state.solanaContext);
71
- const [shouldAutoConnect, setShouldAutoConnect] = useState(true);
72
- const para = _para != null ? _para : useClient();
73
- useEffect(() => {
74
- setShouldAutoConnect(false);
75
- }, []);
76
- useEffect(() => {
77
- if (!solanaContext || !SolanaProvider) {
78
- updateExternalWalletProviderState({
79
- SolanaProvider: SolanaExternalWalletProvider,
80
- solanaContext: SolanaExternalWalletContext
81
- });
82
- }
83
- }, []);
84
- const value = useMemo(() => ({ wallets: walletFns }), [walletFns]);
85
- if (!solanaContext || !SolanaProvider) {
86
- return null;
87
- }
88
- return /* @__PURE__ */ jsx(ConnectionProvider, { endpoint, config: connectionConfig, children: /* @__PURE__ */ jsx(
89
- SolanaWalletProvider,
90
- {
91
- wallets: [
92
- new SolanaMobileWalletAdapter({
93
- addressSelector: createDefaultAddressSelector(),
94
- appIdentity,
95
- authorizationResultCache: createDefaultAuthorizationResultCache(),
96
- chain,
97
- onWalletNotFound: createDefaultWalletNotFoundHandler()
98
- })
99
- ],
100
- localStorageKey: "paraSolanaExternal",
101
- autoConnect: (adapter) => __async(this, null, function* () {
102
- var _a;
103
- const hasParaExternalWallet = (_a = Object.values(para.externalWallets)) == null ? void 0 : _a.find((w) => w.name === adapter.name);
104
- if (shouldAutoConnect && hasParaExternalWallet) {
105
- if (!para.isExternalWalletAuth) {
106
- return true;
107
- } else if (para.isExternalWalletAuth && (yield para.isFullyLoggedIn())) {
108
- return true;
109
- }
110
- return false;
111
- }
112
- return false;
113
- }),
114
- children: /* @__PURE__ */ jsx(ParaSolanaContext.Provider, { value, children })
115
- }
116
- ) });
117
- }
118
- var useParaSolana = () => useContext(ParaSolanaContext);
119
-
120
- // src/providers/SolanaExternalWalletContext.tsx
121
46
  import { WalletType } from "@getpara/web-sdk";
122
- import { useExternalWalletProviderStore as useExternalWalletProviderStore2 } from "@getpara/react-sdk";
123
47
  import bs58 from "bs58";
124
- import { jsx as jsx2 } from "react/jsx-runtime";
48
+ import { jsx } from "react/jsx-runtime";
125
49
  var defaultSolanaExternalWallet = {
126
50
  wallets: [],
127
51
  disconnect: () => Promise.resolve(),
128
52
  signMessage: () => Promise.resolve({}),
129
53
  signVerificationMessage: () => Promise.resolve({})
130
54
  };
131
- var SolanaExternalWalletContext = createContext2(defaultSolanaExternalWallet);
132
- function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
55
+ var SolanaExternalWalletContext = createContext(defaultSolanaExternalWallet);
56
+ function SolanaExternalWalletProvider({
57
+ children,
58
+ wallets: walletFns,
59
+ onSwitchWallet,
60
+ para,
61
+ walletsWithFullAuth
62
+ }) {
133
63
  const {
134
64
  wallets: adapters,
135
65
  select: selectWallet,
@@ -137,26 +67,26 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
137
67
  publicKey: solanaAddress,
138
68
  wallet,
139
69
  connecting,
140
- signMessage: solanaSignMessage,
141
- connected
70
+ connected,
71
+ signMessage: solanaSignMessage
142
72
  } = useWallet();
143
- const { wallets: walletFns } = useParaSolana();
144
- const fullAuthWallets = useExternalWalletProviderStore2((state) => state.fullAuthWallets);
145
73
  const verificationMessage = useRef();
146
74
  const reset = () => __async(this, null, function* () {
147
75
  yield _disconnect();
148
76
  yield para.logout();
149
77
  });
150
- const login = (address, providerName) => __async(this, null, function* () {
78
+ const login = (_0) => __async(this, [_0], function* ({ address, providerName }) {
151
79
  var _a, _b;
152
80
  try {
153
- return yield para.externalWalletLogin({
154
- address,
155
- type: WalletType.SOLANA,
156
- provider: providerName,
157
- withFullParaAuth: fullAuthWallets == null ? void 0 : fullAuthWallets.includes(
158
- (_b = (_a = getWallet(providerName != null ? providerName : "")) == null ? void 0 : _a.id.toUpperCase()) != null ? _b : ""
159
- )
81
+ return yield para.loginExternalWallet({
82
+ externalWallet: {
83
+ address,
84
+ type: WalletType.SOLANA,
85
+ provider: providerName,
86
+ withFullParaAuth: walletsWithFullAuth == null ? void 0 : walletsWithFullAuth.includes(
87
+ (_b = (_a = getWallet(providerName != null ? providerName : "")) == null ? void 0 : _a.id.toUpperCase()) != null ? _b : ""
88
+ )
89
+ }
160
90
  });
161
91
  } catch (err) {
162
92
  yield reset();
@@ -170,32 +100,37 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
170
100
  yield para.logout();
171
101
  } else {
172
102
  try {
173
- yield login(address, (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name);
103
+ yield login({ address, providerName: (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name });
174
104
  } catch (err) {
175
105
  error = err;
176
106
  }
177
107
  }
178
108
  onSwitchWallet({ address, error });
179
109
  });
180
- useEffect2(() => {
110
+ useEffect(() => {
181
111
  var _a;
182
112
  const storedExternalWallet = para.externalWallets[(_a = solanaAddress == null ? void 0 : solanaAddress.toString()) != null ? _a : ""];
183
113
  if (!!solanaAddress && !storedExternalWallet) {
184
114
  reset();
185
115
  }
186
116
  }, []);
187
- useEffect2(() => {
117
+ useEffect(() => {
188
118
  const storedExternalWallet = Object.values(para.externalWallets || {})[0];
189
- if (!connecting && (storedExternalWallet == null ? void 0 : storedExternalWallet.type) === WalletType.SOLANA && (storedExternalWallet == null ? void 0 : storedExternalWallet.address) !== (solanaAddress == null ? void 0 : solanaAddress.toString())) {
119
+ if (!connecting && (!wallet || (wallet == null ? void 0 : wallet.adapter.connected)) && (storedExternalWallet == null ? void 0 : storedExternalWallet.type) === WalletType.SOLANA && (storedExternalWallet == null ? void 0 : storedExternalWallet.address) !== (solanaAddress == null ? void 0 : solanaAddress.toString())) {
190
120
  switchWallet(solanaAddress == null ? void 0 : solanaAddress.toString());
191
121
  }
192
- }, [solanaAddress, connecting]);
122
+ }, [solanaAddress, connecting, wallet]);
193
123
  const signMessage = (message) => __async(this, null, function* () {
124
+ var _a;
194
125
  try {
195
126
  const encodedMessage = new TextEncoder().encode(message);
196
127
  const signature = yield solanaSignMessage(encodedMessage);
197
128
  return {
198
- address: solanaAddress.toString(),
129
+ externalWallet: {
130
+ address: solanaAddress.toString(),
131
+ type: WalletType.SOLANA,
132
+ provider: (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name
133
+ },
199
134
  signature: bs58.encode(signature)
200
135
  };
201
136
  } catch (e) {
@@ -212,23 +147,20 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
212
147
  const connect = (adapter) => __async(this, null, function* () {
213
148
  yield _disconnect();
214
149
  if (!adapter) {
215
- return { address: void 0, error: "Adapter not found.", userExists: false, isVerified: false };
150
+ return { error: "Adapter not found." };
216
151
  }
217
152
  selectWallet(adapter.name);
218
153
  yield new Promise((resolve) => setTimeout(resolve, 100));
219
154
  let address;
220
155
  let error;
221
- let userExists = false;
222
- let isVerified = false;
156
+ let authState;
223
157
  try {
224
158
  yield adapter.connect();
225
159
  address = adapter.publicKey.toString();
226
160
  if (address) {
227
161
  try {
228
- const loginResp = yield login(address, adapter.name);
229
- userExists = loginResp.userExists;
230
- isVerified = loginResp.isVerified;
231
- verificationMessage.current = loginResp.signatureVerificationMessage;
162
+ authState = yield login({ address, providerName: adapter.name });
163
+ verificationMessage.current = authState.stage === "verify" ? authState.signatureVerificationMessage : void 0;
232
164
  } catch (err) {
233
165
  yield _disconnect();
234
166
  address = void 0;
@@ -249,12 +181,13 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
249
181
  }
250
182
  }
251
183
  }
252
- return { address, error, userExists, isVerified };
184
+ return { address, error, authState };
253
185
  });
254
186
  const getAdapter = (name) => {
255
187
  var _a;
256
188
  return (_a = adapters.find((a) => a.adapter.name === "Mobile Wallet Adapter" ? a : a.adapter.name === name ? a : false)) == null ? void 0 : _a.adapter;
257
189
  };
190
+ const getWallet = (name) => wallets.find((w) => w.name === name);
258
191
  const wallets = walletFns.map((walletFn) => {
259
192
  const metaData = walletFn();
260
193
  const adapter = getAdapter(metaData.name);
@@ -266,17 +199,16 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
266
199
  installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable)
267
200
  }, metaData);
268
201
  });
269
- const getWallet = (name) => wallets.find((w) => w.name === name);
270
202
  const disconnect = () => __async(this, null, function* () {
271
203
  yield _disconnect();
272
204
  if (connected) {
273
205
  typeof window !== void 0 && (window == null ? void 0 : window.location.reload());
274
206
  }
275
207
  });
276
- return /* @__PURE__ */ jsx2(
208
+ return /* @__PURE__ */ jsx(
277
209
  SolanaExternalWalletContext.Provider,
278
210
  {
279
- value: useMemo2(
211
+ value: useMemo(
280
212
  () => ({ wallets, disconnect, signMessage, signVerificationMessage }),
281
213
  [wallets, disconnect, signMessage, signVerificationMessage]
282
214
  ),
@@ -285,6 +217,41 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
285
217
  );
286
218
  }
287
219
 
220
+ // src/providers/ParaSolanaProvider.tsx
221
+ import { useMemo as useMemo2 } from "react";
222
+ import { ConnectionProvider, WalletProvider as SolanaWalletProvider } from "@solana/wallet-adapter-react";
223
+ import {
224
+ createDefaultAddressSelector,
225
+ createDefaultAuthorizationResultCache,
226
+ createDefaultWalletNotFoundHandler,
227
+ SolanaMobileWalletAdapter
228
+ } from "@solana-mobile/wallet-adapter-mobile";
229
+ import { jsx as jsx2 } from "react/jsx-runtime";
230
+ function ParaSolanaProvider({ children, config, internalConfig }) {
231
+ const { wallets: walletFns, endpoint, appIdentity, chain, connectionConfig } = config;
232
+ const solanaExternalWalletProviderProps = useMemo2(
233
+ () => __spreadValues({ wallets: walletFns }, internalConfig),
234
+ [walletFns, internalConfig]
235
+ );
236
+ return /* @__PURE__ */ jsx2(ConnectionProvider, { endpoint, config: connectionConfig, children: /* @__PURE__ */ jsx2(
237
+ SolanaWalletProvider,
238
+ {
239
+ wallets: [
240
+ new SolanaMobileWalletAdapter({
241
+ addressSelector: createDefaultAddressSelector(),
242
+ appIdentity,
243
+ authorizationResultCache: createDefaultAuthorizationResultCache(),
244
+ chain,
245
+ onWalletNotFound: createDefaultWalletNotFoundHandler()
246
+ })
247
+ ],
248
+ localStorageKey: "paraSolanaExternal",
249
+ autoConnect: true,
250
+ children: /* @__PURE__ */ jsx2(SolanaExternalWalletProvider, __spreadProps(__spreadValues({}, solanaExternalWalletProviderProps), { children }))
251
+ }
252
+ ) });
253
+ }
254
+
288
255
  // src/wallets/connectors/phantom/phantomIcon.ts
289
256
  var icon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTAzNl85NDApIj4KICAgIDxwYXRoIGQ9Ik0xMiAyNEMxOC42Mjc0IDI0IDI0IDE4LjYyNzQgMjQgMTJDMjQgNS4zNzI1OCAxOC42Mjc0IDAgMTIgMEM1LjM3MjU4IDAgMCA1LjM3MjU4IDAgMTJDMCAxOC42Mjc0IDUuMzcyNTggMjQgMTIgMjRaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMTAzNl85NDApIi8+CiAgICA8cGF0aCBkPSJNMjAuODgyMyAxMS44ODk3SDE4Ljc1NUMxOC43NTUgNy41MzIyMyAxNS4yMjgyIDQgMTAuODc3MyA0QzYuNTgwMzcgNCAzLjA4Njg5IDcuNDQ1NzYgMy4wMDEzOSAxMS43Mjg2QzIuOTEyOTMgMTYuMTU1NyA3LjA2MDAxIDIwIDExLjQ4MDkgMjBIMTIuMDM3QzE1LjkzNDUgMjAgMjEuMTU4NSAxNi45NDQzIDIxLjk3NDcgMTMuMjIxMUMyMi4xMjU0IDEyLjUzNDggMjEuNTg0MSAxMS44ODk3IDIwLjg4MjMgMTEuODg5N1pNNy43MTU5NiAxMi4wODM4QzcuNzE1OTYgMTIuNjY2NSA3LjI0MDA5IDEzLjE0MzEgNi42NTgyNyAxMy4xNDMxQzYuMDc2NDQgMTMuMTQzMSA1LjYwMDYgMTIuNjY2MyA1LjYwMDYgMTIuMDgzOFYxMC4zNzAxQzUuNjAwNiA5Ljc4NzQ0IDYuMDc2NDQgOS4zMTA4NCA2LjY1ODI3IDkuMzEwODRDNy4yNDAwOSA5LjMxMDg0IDcuNzE1OTYgOS43ODc0NCA3LjcxNTk2IDEwLjM3MDFWMTIuMDgzOFpNMTEuMzg4NiAxMi4wODM4QzExLjM4ODYgMTIuNjY2NSAxMC45MTI4IDEzLjE0MzEgMTAuMzMxIDEzLjE0MzFDOS43NDkxNCAxMy4xNDMxIDkuMjczMzIgMTIuNjY2MyA5LjI3MzMyIDEyLjA4MzhWMTAuMzcwMUM5LjI3MzMyIDkuNzg3NDQgOS43NDkzNSA5LjMxMDg0IDEwLjMzMSA5LjMxMDg0QzEwLjkxMjggOS4zMTA4NCAxMS4zODg2IDkuNzg3NDQgMTEuMzg4NiAxMC4zNzAxVjEyLjA4MzhaIiBmaWxsPSJ1cmwoI3BhaW50MV9saW5lYXJfMTAzNl85NDApIi8+CiAgPC9nPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzEwMzZfOTQwIiB4MT0iMTIiIHkxPSIwIiB4Mj0iMTIiIHkyPSIyNCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjNTM0QkIxIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzU1MUJGOSIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xMDM2Xzk0MCIgeDE9IjEyLjUiIHkxPSI0IiB4Mj0iMTIuNSIgeTI9IjIwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0id2hpdGUiIHN0b3Atb3BhY2l0eT0iMC44MiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcDBfMTAzNl85NDAiPgogICAgICA8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9IndoaXRlIi8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+";
290
257
 
@@ -332,10 +299,13 @@ var backpackWallet = () => {
332
299
  downloadUrl: "https://backpack.app/download"
333
300
  };
334
301
  };
302
+
303
+ // src/wallets/connectors/index.ts
304
+ var allWallets = [phantomWallet, glowWallet, backpackWallet];
335
305
  export {
336
306
  ParaSolanaProvider,
337
307
  SolanaExternalWalletContext,
338
- SolanaExternalWalletProvider,
308
+ allWallets,
339
309
  backpackWallet,
340
310
  glowWallet,
341
311
  phantomWallet
package/dist/index.js.br CHANGED
Binary file
package/dist/index.js.gz CHANGED
Binary file
@@ -1,16 +1,9 @@
1
- import { ReactNode } from 'react';
1
+ import { PropsWithChildren } from 'react';
2
2
  import { WalletList } from '../types/Wallet.js';
3
- import ParaWeb from '@getpara/react-sdk';
3
+ import { SolanaExternalWalletProviderConfig } from './SolanaExternalWalletContext.js';
4
4
  import { type ConnectionConfig } from '@solana/web3.js';
5
5
  import { Chain } from '@solana-mobile/mobile-wallet-adapter-protocol';
6
- export declare const defaultWallet: {
7
- wallets: any[];
8
- };
9
- export declare const ParaSolanaContext: import("react").Context<{
10
- wallets: WalletList;
11
- }>;
12
- interface ParaSolanaProviderProps {
13
- children: ReactNode;
6
+ export interface ParaSolanaProviderConfig {
14
7
  wallets: WalletList;
15
8
  /** Endpoint passed to the ConnectionProvider
16
9
  * Ref: https://solana-labs.github.io/solana-web3.js/classes/Connection.html
@@ -32,10 +25,9 @@ interface ParaSolanaProviderProps {
32
25
  * Ref: https://docs.solanamobile.com/reference/typescript/mobile-wallet-adapter#web3mobilewalletauthorize
33
26
  */
34
27
  chain: Chain;
35
- para?: ParaWeb;
36
28
  }
37
- export declare function ParaSolanaProvider({ children, wallets: walletFns, endpoint, appIdentity, chain, connectionConfig, para: _para, }: ParaSolanaProviderProps): import("react/jsx-runtime").JSX.Element;
38
- export declare const useParaSolana: () => {
39
- wallets: WalletList;
29
+ export type ParaSolanaProviderProps = {
30
+ config: ParaSolanaProviderConfig;
31
+ internalConfig: SolanaExternalWalletProviderConfig;
40
32
  };
41
- export {};
33
+ export declare function ParaSolanaProvider({ children, config, internalConfig }: ParaSolanaProviderProps & PropsWithChildren): import("react/jsx-runtime").JSX.Element;
@@ -1,13 +1,8 @@
1
- import { ReactNode } from 'react';
1
+ import { PropsWithChildren } from 'react';
2
2
  import ParaWeb from '@getpara/web-sdk';
3
- import { CommonWallet } from '@getpara/react-sdk';
4
- export declare const defaultSolanaExternalWallet: {
5
- wallets: any[];
6
- disconnect: () => Promise<void>;
7
- signMessage: () => Promise<{}>;
8
- signVerificationMessage: () => Promise<{}>;
9
- };
10
- export declare const SolanaExternalWalletContext: import("react").Context<{
3
+ import { WalletList } from '../types/Wallet.js';
4
+ import { TExternalWallet, type CommonWallet } from '@getpara/react-common';
5
+ export type SolanaExternalWalletContextType = {
11
6
  wallets: CommonWallet[];
12
7
  disconnect: () => Promise<void>;
13
8
  signMessage: (message: string) => Promise<{
@@ -19,14 +14,18 @@ export declare const SolanaExternalWalletContext: import("react").Context<{
19
14
  signature?: string;
20
15
  error?: string;
21
16
  }>;
22
- }>;
23
- interface SolanaExternalWalletProviderProps {
24
- children: ReactNode;
25
- para: ParaWeb;
26
- onSwitchWallet: (args: {
17
+ };
18
+ export declare const SolanaExternalWalletContext: import("react").Context<SolanaExternalWalletContextType>;
19
+ export type SolanaExternalWalletProviderConfig = {
20
+ onSwitchWallet?: (args: {
27
21
  address?: string;
28
22
  error?: string;
29
23
  }) => void;
30
- }
31
- export declare function SolanaExternalWalletProvider({ children, para, onSwitchWallet }: SolanaExternalWalletProviderProps): import("react/jsx-runtime").JSX.Element;
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;
32
31
  export {};
@@ -1,4 +1,4 @@
1
- import { WalletMetadata } from '@getpara/react-sdk';
1
+ import { type WalletMetadata } from '@getpara/react-common';
2
2
  export type Wallet = {
3
3
  getUri?: (uri: string) => string;
4
4
  } & WalletMetadata;
@@ -2,3 +2,4 @@ import { phantomWallet } from './phantom/phantom.js';
2
2
  import { glowWallet } from './glow/glow.js';
3
3
  import { backpackWallet } from './backpack/backpack.js';
4
4
  export { phantomWallet, glowWallet, backpackWallet };
5
+ export declare const allWallets: (() => import("../../types/Wallet.js").Wallet)[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpara/solana-wallet-connectors",
3
- "version": "1.7.1",
3
+ "version": "2.0.0-alpha.3",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,29 +8,26 @@
8
8
  ".": "./dist/index.js",
9
9
  "./connectors": "./dist/wallets/connectors/index.js"
10
10
  },
11
- "dependencies": {
12
- "@getpara/react-sdk": "1.7.1",
13
- "bs58": "6.0.0"
14
- },
15
11
  "scripts": {
16
12
  "build": "rm -rf dist && yarn typegen && node ./scripts/build.mjs",
17
13
  "typegen": "tsc --emitDeclarationOnly",
18
14
  "test": "vitest run --coverage"
19
15
  },
20
- "devDependencies": {
16
+ "dependencies": {
17
+ "@getpara/web-sdk": "2.0.0-alpha.3",
21
18
  "@solana-mobile/wallet-adapter-mobile": "2.1.3",
22
19
  "@solana/wallet-adapter-base": "0.9.23",
23
20
  "@solana/wallet-adapter-react": "0.15.35",
24
21
  "@solana/wallet-adapter-walletconnect": "0.1.16",
22
+ "bs58": "6.0.0"
23
+ },
24
+ "devDependencies": {
25
+ "@getpara/react-common": "2.0.0-alpha.3",
25
26
  "@types/react": "^18.0.31",
26
27
  "@types/react-dom": "^18.2.7",
27
28
  "typescript": "^5.4.3"
28
29
  },
29
30
  "peerDependencies": {
30
- "@solana-mobile/wallet-adapter-mobile": "2.1.x",
31
- "@solana/wallet-adapter-base": "0.9.x",
32
- "@solana/wallet-adapter-react": "0.15.x",
33
- "@solana/wallet-adapter-walletconnect": "0.1.x",
34
31
  "react": ">=18",
35
32
  "react-dom": ">=18"
36
33
  },
@@ -38,5 +35,5 @@
38
35
  "dist",
39
36
  "package.json"
40
37
  ],
41
- "gitHead": "767395af96d4a724946a092de760e9137a73369a"
38
+ "gitHead": "77a1e04b06258842ca9c81e3db2a2b0092517659"
42
39
  }